0 CpxTRS
↳1 RcToIrcProof (BOTH BOUNDS(ID, ID), 6 ms)
↳2 CpxTRS
↳3 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CdtProblem
↳5 CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)), 138 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)), 0 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), s(y)) → f(x, s(c(s(y))))
The duplicating contexts are:
f(x, c([]))
The defined contexts are:
f(x0, s([]))
f(x0, s(c(s([]))))
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), s(y)) → f(x, s(c(s(y))))
Tuples:
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), s(z1)) → f(z0, s(c(s(z1))))
S tuples:
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), s(z1)) → c2(F(z0, s(c(s(z1)))))
K tuples:none
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → c2(F(z0, s(c(s(z1)))))
POL(F(x1, x2)) = [3]x2
POL(c(x1)) = [3] + x1
POL(c1(x1, x2)) = x1 + x2
POL(c2(x1)) = x1
POL(f(x1, x2)) = [3]x2
POL(s(x1)) = [2]
Tuples:
f(z0, c(z1)) → f(z0, s(f(z1, z1)))
f(s(z0), s(z1)) → f(z0, s(c(s(z1))))
S tuples:
F(z0, c(z1)) → c1(F(z0, s(f(z1, z1))), F(z1, z1))
F(s(z0), s(z1)) → c2(F(z0, s(c(s(z1)))))
K tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → f(z0, s(c(s(z1))))
S tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(z1)))))
F(c(z1), c(z1)) → c1(F(c(z1), s(f(z1, z1))), F(z1, z1))
K tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → f(z0, s(c(s(z1))))
S tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(z1)))))
F(c(z1), c(z1)) → c1(F(z1, z1))
K tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → f(z0, s(c(s(z1))))
S tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(z1)))))
F(c(z1), c(z1)) → c1(F(z1, z1))
K tuples:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → c2(F(z0, s(c(s(z1)))))
The order we found is given by the following interpretation:
F(s(z0), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → c2(F(z0, s(c(s(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), s(z1)) → c2(F(z0, s(c(s(z1)))))
F
c2, c1