0 CpxTRS
↳1 RcToIrcProof (BOTH BOUNDS(ID, ID), 13 ms)
↳2 CpxTRS
↳3 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CdtProblem
↳5 CdtLeafRemovalProof (BOTH BOUNDS(ID, ID), 0 ms)
↳6 CdtProblem
↳7 CdtUsableRulesProof (⇔, 0 ms)
↳8 CdtProblem
↳9 CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)), 61 ms)
↳10 CdtProblem
↳11 CdtKnowledgeProof (⇔, 0 ms)
↳12 BOUNDS(1, 1)
div(0, y) → 0
div(x, y) → quot(x, y, y)
quot(0, s(y), z) → 0
quot(s(x), s(y), z) → quot(x, y, z)
quot(x, 0, s(z)) → s(div(x, s(z)))
As the TRS does not nest defined symbols, we have rc = irc.
div(0, y) → 0
div(x, y) → quot(x, y, y)
quot(0, s(y), z) → 0
quot(s(x), s(y), z) → quot(x, y, z)
quot(x, 0, s(z)) → s(div(x, s(z)))
Tuples:
div(0, z0) → 0
div(z0, z1) → quot(z0, z1, z1)
quot(0, s(z0), z1) → 0
quot(s(z0), s(z1), z2) → quot(z0, z1, z2)
quot(z0, 0, s(z1)) → s(div(z0, s(z1)))
S tuples:
DIV(0, z0) → c
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(0, s(z0), z1) → c2
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
K tuples:none
DIV(0, z0) → c
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(0, s(z0), z1) → c2
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
div, quot
DIV, QUOT
c, c1, c2, c3, c4
QUOT(0, s(z0), z1) → c2
DIV(0, z0) → c
Tuples:
div(0, z0) → 0
div(z0, z1) → quot(z0, z1, z1)
quot(0, s(z0), z1) → 0
quot(s(z0), s(z1), z2) → quot(z0, z1, z2)
quot(z0, 0, s(z1)) → s(div(z0, s(z1)))
S tuples:
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
K tuples:none
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
div, quot
DIV, QUOT
c1, c3, c4
div(0, z0) → 0
div(z0, z1) → quot(z0, z1, z1)
quot(0, s(z0), z1) → 0
quot(s(z0), s(z1), z2) → quot(z0, z1, z2)
quot(z0, 0, s(z1)) → s(div(z0, s(z1)))
S tuples:
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
K tuples:none
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
DIV, QUOT
c1, c3, c4
We considered the (Usable) Rules:none
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
The order we found is given by the following interpretation:
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
POL(0) = 0
POL(DIV(x1, x2)) = x1
POL(QUOT(x1, x2, x3)) = x1
POL(c1(x1)) = x1
POL(c3(x1)) = x1
POL(c4(x1)) = x1
POL(s(x1)) = [1] + x1
S tuples:
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
K tuples:
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
Defined Rule Symbols:none
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))
DIV, QUOT
c1, c3, c4
Now S is empty
QUOT(z0, 0, s(z1)) → c4(DIV(z0, s(z1)))
DIV(z0, z1) → c1(QUOT(z0, z1, z1))
QUOT(s(z0), s(z1), z2) → c3(QUOT(z0, z1, z2))