0 CpxTRS
↳1 RcToIrcProof (BOTH BOUNDS(ID, ID), 16 ms)
↳2 CpxTRS
↳3 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CdtProblem
↳5 CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)), 119 ms)
↳6 CdtProblem
↳7 CdtInstantiationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CdtProblem
↳9 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳10 CdtProblem
↳11 CdtUsableRulesProof (⇔, 0 ms)
↳12 CdtProblem
↳13 CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)), 9 ms)
↳14 CdtProblem
↳15 SIsEmptyProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 BOUNDS(1, 1)
f(x, c(y)) → f(x, s(f(y, y)))
f(s(x), y) → f(x, s(c(y)))
The duplicating contexts are:
f(x, c([]))
The defined contexts are:
f(x0, s([]))
f(x0, s(c([])))
As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc.
f(x, c(y)) → f(x, s(f(y, y)))
f(s(x), y) → f(x, s(c(y)))
Tuples:
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), z1) → f(z0, s(c(z1)))
S tuples:
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), z1) → c2(F(z0, s(c(z1))))
K tuples:none
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), z1) → c2(F(z0, s(c(z1))))
f
F
c1, c2
We considered the (Usable) Rules:none
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
The order we found is given by the following interpretation:
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), z1) → c2(F(z0, s(c(z1))))
POL(F(x1, x2)) = x2
POL(c(x1)) = [1] + x1
POL(c1(x1, x2)) = x1 + x2
POL(c2(x1)) = x1
POL(f(x1, x2)) = x2 + x22 + x1·x2
POL(s(x1)) = 0
Tuples:
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), z1) → f(z0, s(c(z1)))
S tuples:
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), z1) → c2(F(z0, s(c(z1))))
K tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
Defined Rule Symbols:
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
f
F
c1, c2
F(c(z1), c(z1)) → c1(F(c(z1), s(f(z1, z1))), F(z1, z1))
Tuples:
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), z1) → f(z0, s(c(z1)))
S tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
F(c(z1), c(z1)) → c1(F(c(z1), s(f(z1, z1))), F(z1, z1))
K tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
Defined Rule Symbols:
F(c(z1), c(z1)) → c1(F(c(z1), s(f(z1, z1))), F(z1, z1))
f
F
c2, c1
Tuples:
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), z1) → f(z0, s(c(z1)))
S tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
F(c(z1), c(z1)) → c1(F(z1, z1))
K tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
Defined Rule Symbols:
F(c(z1), c(z1)) → c1(F(z1, z1))
f
F
c2, c1
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), z1) → f(z0, s(c(z1)))
S tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
F(c(z1), c(z1)) → c1(F(z1, z1))
K tuples:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
Defined Rule Symbols:none
F(c(z1), c(z1)) → c1(F(z1, z1))
F
c2, c1
We considered the (Usable) Rules:none
F(s(z0), z1) → c2(F(z0, s(c(z1))))
The order we found is given by the following interpretation:
F(s(z0), z1) → c2(F(z0, s(c(z1))))
F(c(z1), c(z1)) → c1(F(z1, z1))
POL(F(x1, x2)) = x1
POL(c(x1)) = x1
POL(c1(x1)) = x1
POL(c2(x1)) = x1
POL(s(x1)) = [1] + x1
S tuples:none
F(s(z0), z1) → c2(F(z0, s(c(z1))))
F(c(z1), c(z1)) → c1(F(z1, z1))
Defined Rule Symbols:none
F(c(z1), c(z1)) → c1(F(z1, z1))
F(s(z0), z1) → c2(F(z0, s(c(z1))))
F
c2, c1