0 CpxTRS
↳1 RcToIrcProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxTRS
↳3 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID), 1 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^2)), 71 ms)
↳10 CdtProblem
↳11 SIsEmptyProof (BOTH BOUNDS(ID, ID), 0 ms)
↳12 BOUNDS(1, 1)
rev(a) → a
rev(b) → b
rev(++(x, y)) → ++(rev(y), rev(x))
rev(++(x, x)) → rev(x)
As the TRS does not nest defined symbols, we have rc = irc.
rev(a) → a
rev(b) → b
rev(++(x, y)) → ++(rev(y), rev(x))
rev(++(x, x)) → rev(x)
Tuples:
rev(a) → a
rev(b) → b
rev(++(z0, z1)) → ++(rev(z1), rev(z0))
rev(++(z0, z0)) → rev(z0)
S tuples:
REV(a) → c
REV(b) → c1
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
K tuples:none
REV(a) → c
REV(b) → c1
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
rev
REV
c, c1, c2, c3
REV(b) → c1
REV(a) → c
Tuples:
rev(a) → a
rev(b) → b
rev(++(z0, z1)) → ++(rev(z1), rev(z0))
rev(++(z0, z0)) → rev(z0)
S tuples:
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
K tuples:none
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
rev
REV
c2, c3
rev(a) → a
rev(b) → b
rev(++(z0, z1)) → ++(rev(z1), rev(z0))
rev(++(z0, z0)) → rev(z0)
S tuples:
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
K tuples:none
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
REV
c2, c3
We considered the (Usable) Rules:none
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
The order we found is given by the following interpretation:
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
POL(++(x1, x2)) = [1] + x1 + x2
POL(REV(x1)) = x1 + x12
POL(c2(x1, x2)) = x1 + x2
POL(c3(x1)) = x1
S tuples:none
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
Defined Rule Symbols:none
REV(++(z0, z1)) → c2(REV(z1), REV(z0))
REV(++(z0, z0)) → c3(REV(z0))
REV
c2, c3