YES(O(1), O(n^1)) 6.72/2.15 YES(O(1), O(n^1)) 6.72/2.19 6.72/2.19 6.72/2.19
6.72/2.19 6.72/2.190 CpxRelTRS6.72/2.19
↳1 CpxRelTrsToCDT (UPPER BOUND (ID))6.72/2.19
↳2 CdtProblem6.72/2.19
↳3 CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID))6.72/2.19
↳4 CdtProblem6.72/2.19
↳5 CdtLeafRemovalProof (ComplexityIfPolyImplication)6.72/2.19
↳6 CdtProblem6.72/2.19
↳7 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))6.72/2.19
↳8 CdtProblem6.72/2.19
↳9 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))6.72/2.19
↳10 CdtProblem6.72/2.19
↳11 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))6.72/2.19
↳12 CdtProblem6.72/2.19
↳13 SIsEmptyProof (BOTH BOUNDS(ID, ID))6.72/2.19
↳14 BOUNDS(O(1), O(1))6.72/2.19
lt0(Nil, Cons(x', xs)) → True 6.72/2.19
lt0(Cons(x', xs'), Cons(x, xs)) → lt0(xs', xs) 6.72/2.19
g(x, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 6.72/2.19
f(x, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 6.72/2.19
notEmpty(Cons(x, xs)) → True 6.72/2.19
notEmpty(Nil) → False 6.72/2.19
lt0(x, Nil) → False 6.72/2.19
g(x, Cons(x', xs)) → g[Ite][False][Ite](lt0(x, Cons(Nil, Nil)), x, Cons(x', xs)) 6.72/2.19
f(x, Cons(x', xs)) → f[Ite][False][Ite](lt0(x, Cons(Nil, Nil)), x, Cons(x', xs)) 6.72/2.19
number4(n) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 6.72/2.19
goal(x, y) → Cons(f(x, y), Cons(g(x, y), Nil))
g[Ite][False][Ite](False, Cons(x, xs), y) → g(xs, Cons(Cons(Nil, Nil), y)) 6.72/2.19
g[Ite][False][Ite](True, x', Cons(x, xs)) → g(x', xs) 6.72/2.19
f[Ite][False][Ite](False, Cons(x, xs), y) → f(xs, Cons(Cons(Nil, Nil), y)) 7.17/2.22
f[Ite][False][Ite](True, x', Cons(x, xs)) → f(x', xs)
Tuples:
g[Ite][False][Ite](False, Cons(z0, z1), z2) → g(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.22
g[Ite][False][Ite](True, z0, Cons(z1, z2)) → g(z0, z2) 7.17/2.22
f[Ite][False][Ite](False, Cons(z0, z1), z2) → f(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.22
f[Ite][False][Ite](True, z0, Cons(z1, z2)) → f(z0, z2) 7.17/2.22
lt0(Nil, Cons(z0, z1)) → True 7.17/2.22
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.22
lt0(z0, Nil) → False 7.17/2.22
g(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.22
g(z0, Cons(z1, z2)) → g[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.22
f(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.22
f(z0, Cons(z1, z2)) → f[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.22
notEmpty(Cons(z0, z1)) → True 7.17/2.22
notEmpty(Nil) → False 7.17/2.22
number4(z0) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.22
goal(z0, z1) → Cons(f(z0, z1), Cons(g(z0, z1), Nil))
S tuples:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.22
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.22
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.22
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.22
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.22
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
GOAL(z0, z1) → c14(F(z0, z1), G(z0, z1))
K tuples:none
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.22
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
GOAL(z0, z1) → c14(F(z0, z1), G(z0, z1))
lt0, g, f, notEmpty, number4, goal, g[Ite][False][Ite], f[Ite][False][Ite]
G[ITE][FALSE][ITE], F[ITE][FALSE][ITE], LT0, G, F, GOAL
c, c1, c2, c3, c5, c8, c10, c14
Tuples:
g[Ite][False][Ite](False, Cons(z0, z1), z2) → g(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.22
g[Ite][False][Ite](True, z0, Cons(z1, z2)) → g(z0, z2) 7.17/2.22
f[Ite][False][Ite](False, Cons(z0, z1), z2) → f(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.22
f[Ite][False][Ite](True, z0, Cons(z1, z2)) → f(z0, z2) 7.17/2.22
lt0(Nil, Cons(z0, z1)) → True 7.17/2.22
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.22
lt0(z0, Nil) → False 7.17/2.22
g(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.22
g(z0, Cons(z1, z2)) → g[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.22
f(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.22
f(z0, Cons(z1, z2)) → f[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.22
notEmpty(Cons(z0, z1)) → True 7.17/2.22
notEmpty(Nil) → False 7.17/2.22
number4(z0) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.22
goal(z0, z1) → Cons(f(z0, z1), Cons(g(z0, z1), Nil))
S tuples:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.22
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.22
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.22
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.22
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.22
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
GOAL(z0, z1) → c4(F(z0, z1)) 7.17/2.22
GOAL(z0, z1) → c4(G(z0, z1))
K tuples:none
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.22
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.22
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.25
GOAL(z0, z1) → c4(F(z0, z1)) 7.17/2.25
GOAL(z0, z1) → c4(G(z0, z1))
lt0, g, f, notEmpty, number4, goal, g[Ite][False][Ite], f[Ite][False][Ite]
G[ITE][FALSE][ITE], F[ITE][FALSE][ITE], LT0, G, F, GOAL
c, c1, c2, c3, c5, c8, c10, c4
GOAL(z0, z1) → c4(G(z0, z1)) 7.17/2.25
GOAL(z0, z1) → c4(F(z0, z1))
Tuples:
g[Ite][False][Ite](False, Cons(z0, z1), z2) → g(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.25
g[Ite][False][Ite](True, z0, Cons(z1, z2)) → g(z0, z2) 7.17/2.25
f[Ite][False][Ite](False, Cons(z0, z1), z2) → f(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.25
f[Ite][False][Ite](True, z0, Cons(z1, z2)) → f(z0, z2) 7.17/2.25
lt0(Nil, Cons(z0, z1)) → True 7.17/2.25
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.25
lt0(z0, Nil) → False 7.17/2.25
g(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.25
g(z0, Cons(z1, z2)) → g[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.25
f(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.25
f(z0, Cons(z1, z2)) → f[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.25
notEmpty(Cons(z0, z1)) → True 7.17/2.25
notEmpty(Nil) → False 7.17/2.25
number4(z0) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.25
goal(z0, z1) → Cons(f(z0, z1), Cons(g(z0, z1), Nil))
S tuples:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.25
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.25
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.25
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.25
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
K tuples:none
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.25
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.25
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
lt0, g, f, notEmpty, number4, goal, g[Ite][False][Ite], f[Ite][False][Ite]
G[ITE][FALSE][ITE], F[ITE][FALSE][ITE], LT0, G, F
c, c1, c2, c3, c5, c8, c10
We considered the (Usable) Rules:
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
And the Tuples:
lt0(Nil, Cons(z0, z1)) → True 7.17/2.25
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.25
lt0(z0, Nil) → False
The order we found is given by the following interpretation:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.25
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.25
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.25
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.25
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
POL(Cons(x1, x2)) = [1] + x2 7.17/2.25
POL(F(x1, x2)) = 0 7.17/2.25
POL(F[ITE][FALSE][ITE](x1, x2, x3)) = 0 7.17/2.25
POL(False) = 0 7.17/2.25
POL(G(x1, x2)) = [2] + [5]x1 + x2 7.17/2.25
POL(G[ITE][FALSE][ITE](x1, x2, x3)) = [1] + [5]x2 + x3 7.17/2.25
POL(LT0(x1, x2)) = 0 7.17/2.25
POL(Nil) = 0 7.17/2.25
POL(True) = 0 7.17/2.25
POL(c(x1)) = x1 7.17/2.25
POL(c1(x1)) = x1 7.17/2.25
POL(c10(x1, x2)) = x1 + x2 7.17/2.25
POL(c2(x1)) = x1 7.17/2.25
POL(c3(x1)) = x1 7.17/2.25
POL(c5(x1)) = x1 7.17/2.25
POL(c8(x1, x2)) = x1 + x2 7.17/2.25
POL(lt0(x1, x2)) = 0
Tuples:
g[Ite][False][Ite](False, Cons(z0, z1), z2) → g(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.25
g[Ite][False][Ite](True, z0, Cons(z1, z2)) → g(z0, z2) 7.17/2.25
f[Ite][False][Ite](False, Cons(z0, z1), z2) → f(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.25
f[Ite][False][Ite](True, z0, Cons(z1, z2)) → f(z0, z2) 7.17/2.25
lt0(Nil, Cons(z0, z1)) → True 7.17/2.25
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.25
lt0(z0, Nil) → False 7.17/2.25
g(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.25
g(z0, Cons(z1, z2)) → g[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.25
f(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.25
f(z0, Cons(z1, z2)) → f[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.25
notEmpty(Cons(z0, z1)) → True 7.17/2.25
notEmpty(Nil) → False 7.17/2.25
number4(z0) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.25
goal(z0, z1) → Cons(f(z0, z1), Cons(g(z0, z1), Nil))
S tuples:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.25
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.25
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.25
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.25
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
K tuples:
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.25
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
Defined Rule Symbols:
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
lt0, g, f, notEmpty, number4, goal, g[Ite][False][Ite], f[Ite][False][Ite]
G[ITE][FALSE][ITE], F[ITE][FALSE][ITE], LT0, G, F
c, c1, c2, c3, c5, c8, c10
We considered the (Usable) Rules:
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
And the Tuples:
lt0(Nil, Cons(z0, z1)) → True 7.17/2.25
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.25
lt0(z0, Nil) → False
The order we found is given by the following interpretation:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.25
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.25
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.25
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.25
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.25
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
POL(Cons(x1, x2)) = [4] + x2 7.17/2.25
POL(F(x1, x2)) = [4] + [2]x1 + x2 7.17/2.25
POL(F[ITE][FALSE][ITE](x1, x2, x3)) = [2]x2 + x3 7.17/2.25
POL(False) = 0 7.17/2.25
POL(G(x1, x2)) = [3] + [2]x1 + x2 7.17/2.25
POL(G[ITE][FALSE][ITE](x1, x2, x3)) = [2]x2 + x3 7.17/2.25
POL(LT0(x1, x2)) = [3] 7.17/2.25
POL(Nil) = 0 7.17/2.25
POL(True) = 0 7.17/2.25
POL(c(x1)) = x1 7.17/2.25
POL(c1(x1)) = x1 7.17/2.25
POL(c10(x1, x2)) = x1 + x2 7.17/2.25
POL(c2(x1)) = x1 7.17/2.25
POL(c3(x1)) = x1 7.17/2.25
POL(c5(x1)) = x1 7.17/2.25
POL(c8(x1, x2)) = x1 + x2 7.17/2.26
POL(lt0(x1, x2)) = 0
Tuples:
g[Ite][False][Ite](False, Cons(z0, z1), z2) → g(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.26
g[Ite][False][Ite](True, z0, Cons(z1, z2)) → g(z0, z2) 7.17/2.26
f[Ite][False][Ite](False, Cons(z0, z1), z2) → f(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.26
f[Ite][False][Ite](True, z0, Cons(z1, z2)) → f(z0, z2) 7.17/2.26
lt0(Nil, Cons(z0, z1)) → True 7.17/2.26
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.26
lt0(z0, Nil) → False 7.17/2.26
g(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.26
g(z0, Cons(z1, z2)) → g[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.26
f(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.26
f(z0, Cons(z1, z2)) → f[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.26
notEmpty(Cons(z0, z1)) → True 7.17/2.26
notEmpty(Nil) → False 7.17/2.26
number4(z0) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.26
goal(z0, z1) → Cons(f(z0, z1), Cons(g(z0, z1), Nil))
S tuples:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.26
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.26
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.26
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.26
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.26
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.26
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
K tuples:
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3))
Defined Rule Symbols:
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.26
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
lt0, g, f, notEmpty, number4, goal, g[Ite][False][Ite], f[Ite][False][Ite]
G[ITE][FALSE][ITE], F[ITE][FALSE][ITE], LT0, G, F
c, c1, c2, c3, c5, c8, c10
We considered the (Usable) Rules:
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3))
And the Tuples:
lt0(Nil, Cons(z0, z1)) → True 7.17/2.26
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.26
lt0(z0, Nil) → False
The order we found is given by the following interpretation:
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.26
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.26
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.26
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.26
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.26
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.26
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
POL(Cons(x1, x2)) = [4] + x2 7.17/2.26
POL(F(x1, x2)) = [4] + [2]x1 + x2 7.17/2.26
POL(F[ITE][FALSE][ITE](x1, x2, x3)) = [2]x2 + x3 7.17/2.26
POL(False) = 0 7.17/2.26
POL(G(x1, x2)) = [4] + [5]x1 + [4]x2 7.17/2.26
POL(G[ITE][FALSE][ITE](x1, x2, x3)) = [5]x2 + [4]x3 7.17/2.26
POL(LT0(x1, x2)) = x2 7.17/2.26
POL(Nil) = 0 7.17/2.26
POL(True) = 0 7.17/2.26
POL(c(x1)) = x1 7.17/2.26
POL(c1(x1)) = x1 7.17/2.26
POL(c10(x1, x2)) = x1 + x2 7.17/2.26
POL(c2(x1)) = x1 7.17/2.26
POL(c3(x1)) = x1 7.17/2.26
POL(c5(x1)) = x1 7.17/2.26
POL(c8(x1, x2)) = x1 + x2 7.17/2.26
POL(lt0(x1, x2)) = 0
Tuples:
g[Ite][False][Ite](False, Cons(z0, z1), z2) → g(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.26
g[Ite][False][Ite](True, z0, Cons(z1, z2)) → g(z0, z2) 7.17/2.26
f[Ite][False][Ite](False, Cons(z0, z1), z2) → f(z1, Cons(Cons(Nil, Nil), z2)) 7.17/2.26
f[Ite][False][Ite](True, z0, Cons(z1, z2)) → f(z0, z2) 7.17/2.26
lt0(Nil, Cons(z0, z1)) → True 7.17/2.26
lt0(Cons(z0, z1), Cons(z2, z3)) → lt0(z1, z3) 7.17/2.26
lt0(z0, Nil) → False 7.17/2.26
g(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.26
g(z0, Cons(z1, z2)) → g[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.26
f(z0, Nil) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.26
f(z0, Cons(z1, z2)) → f[Ite][False][Ite](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)) 7.17/2.26
notEmpty(Cons(z0, z1)) → True 7.17/2.26
notEmpty(Nil) → False 7.17/2.26
number4(z0) → Cons(Nil, Cons(Nil, Cons(Nil, Cons(Nil, Nil)))) 7.17/2.26
goal(z0, z1) → Cons(f(z0, z1), Cons(g(z0, z1), Nil))
S tuples:none
G[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c(G(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.26
G[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c1(G(z0, z2)) 7.17/2.26
F[ITE][FALSE][ITE](False, Cons(z0, z1), z2) → c2(F(z1, Cons(Cons(Nil, Nil), z2))) 7.17/2.26
F[ITE][FALSE][ITE](True, z0, Cons(z1, z2)) → c3(F(z0, z2)) 7.17/2.26
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3)) 7.17/2.26
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.26
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil)))
Defined Rule Symbols:
G(z0, Cons(z1, z2)) → c8(G[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.26
F(z0, Cons(z1, z2)) → c10(F[ITE][FALSE][ITE](lt0(z0, Cons(Nil, Nil)), z0, Cons(z1, z2)), LT0(z0, Cons(Nil, Nil))) 7.17/2.26
LT0(Cons(z0, z1), Cons(z2, z3)) → c5(LT0(z1, z3))
lt0, g, f, notEmpty, number4, goal, g[Ite][False][Ite], f[Ite][False][Ite]
G[ITE][FALSE][ITE], F[ITE][FALSE][ITE], LT0, G, F
c, c1, c2, c3, c5, c8, c10