(0) Obligation:

Clauses:

h(X) :- ','(f(X), g(X)).
f(c(0, X1)) :- !.
f(c(X, Y)) :- ','(p(X, P), f(c(P, s(Y)))).
g(c(X2, 0)) :- !.
g(c(X, Y)) :- ','(p(Y, P), g(c(s(X), P))).
p(0, 0).
p(s(X), X).

Query: h(g)

(1) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)

Built complexity over-approximating cdt problems from derivation graph.

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in(z0) → U1(f7_in(z0), z0)
U1(f7_out1, z0) → f1_out1
f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
f13_in(c(z0, 0)) → f13_out1
f13_in(c(z0, s(z1))) → U3(f13_in(c(s(z0), z1)), c(z0, s(z1)))
U3(f13_out1, c(z0, s(z1))) → f13_out1
f7_in(z0) → U4(f12_in(z0), z0)
U4(f12_out1, z0) → U5(f13_in(z0), z0)
U5(f13_out1, z0) → f7_out1
Tuples:

F1_IN(z0) → c1(U1'(f7_in(z0), z0), F7_IN(z0))
F12_IN(c(s(z0), z1)) → c4(U2'(f12_in(c(z0, s(z1))), c(s(z0), z1)), F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(U3'(f13_in(c(s(z0), z1)), c(z0, s(z1))), F13_IN(c(s(z0), z1)))
F7_IN(z0) → c9(U4'(f12_in(z0), z0), F12_IN(z0))
U4'(f12_out1, z0) → c10(U5'(f13_in(z0), z0), F13_IN(z0))
S tuples:

F1_IN(z0) → c1(U1'(f7_in(z0), z0), F7_IN(z0))
F12_IN(c(s(z0), z1)) → c4(U2'(f12_in(c(z0, s(z1))), c(s(z0), z1)), F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(U3'(f13_in(c(s(z0), z1)), c(z0, s(z1))), F13_IN(c(s(z0), z1)))
F7_IN(z0) → c9(U4'(f12_in(z0), z0), F12_IN(z0))
U4'(f12_out1, z0) → c10(U5'(f13_in(z0), z0), F13_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f12_in, U2, f13_in, U3, f7_in, U4, U5

Defined Pair Symbols:

F1_IN, F12_IN, F13_IN, F7_IN, U4'

Compound Symbols:

c1, c4, c7, c9, c10

(3) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in(z0) → U1(f7_in(z0), z0)
U1(f7_out1, z0) → f1_out1
f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
f13_in(c(z0, 0)) → f13_out1
f13_in(c(z0, s(z1))) → U3(f13_in(c(s(z0), z1)), c(z0, s(z1)))
U3(f13_out1, c(z0, s(z1))) → f13_out1
f7_in(z0) → U4(f12_in(z0), z0)
U4(f12_out1, z0) → U5(f13_in(z0), z0)
U5(f13_out1, z0) → f7_out1
Tuples:

F12_IN(c(s(z0), z1)) → c4(U2'(f12_in(c(z0, s(z1))), c(s(z0), z1)), F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(U3'(f13_in(c(s(z0), z1)), c(z0, s(z1))), F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2(U1'(f7_in(z0), z0))
F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(U5'(f13_in(z0), z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
S tuples:

F12_IN(c(s(z0), z1)) → c4(U2'(f12_in(c(z0, s(z1))), c(s(z0), z1)), F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(U3'(f13_in(c(s(z0), z1)), c(z0, s(z1))), F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2(U1'(f7_in(z0), z0))
F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(U5'(f13_in(z0), z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f12_in, U2, f13_in, U3, f7_in, U4, U5

Defined Pair Symbols:

F12_IN, F13_IN, F1_IN, F7_IN, U4'

Compound Symbols:

c4, c7, c2

(5) CdtGraphRemoveTrailingTuplepartsProof (BOTH BOUNDS(ID, ID) transformation)

Removed 4 trailing tuple parts

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in(z0) → U1(f7_in(z0), z0)
U1(f7_out1, z0) → f1_out1
f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
f13_in(c(z0, 0)) → f13_out1
f13_in(c(z0, s(z1))) → U3(f13_in(c(s(z0), z1)), c(z0, s(z1)))
U3(f13_out1, c(z0, s(z1))) → f13_out1
f7_in(z0) → U4(f12_in(z0), z0)
U4(f12_out1, z0) → U5(f13_in(z0), z0)
U5(f13_out1, z0) → f7_out1
Tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
S tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
K tuples:none
Defined Rule Symbols:

f1_in, U1, f12_in, U2, f13_in, U3, f7_in, U4, U5

Defined Pair Symbols:

F1_IN, F7_IN, U4', F12_IN, F13_IN

Compound Symbols:

c2, c4, c7, c2

(7) CdtKnowledgeProof (EQUIVALENT transformation)

The following tuples could be moved from S to K by knowledge propagation:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
U4'(f12_out1, z0) → c2

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in(z0) → U1(f7_in(z0), z0)
U1(f7_out1, z0) → f1_out1
f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
f13_in(c(z0, 0)) → f13_out1
f13_in(c(z0, s(z1))) → U3(f13_in(c(s(z0), z1)), c(z0, s(z1)))
U3(f13_out1, c(z0, s(z1))) → f13_out1
f7_in(z0) → U4(f12_in(z0), z0)
U4(f12_out1, z0) → U5(f13_in(z0), z0)
U5(f13_out1, z0) → f7_out1
Tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
S tuples:

F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
K tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
Defined Rule Symbols:

f1_in, U1, f12_in, U2, f13_in, U3, f7_in, U4, U5

Defined Pair Symbols:

F1_IN, F7_IN, U4', F12_IN, F13_IN

Compound Symbols:

c2, c4, c7, c2

(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
We considered the (Usable) Rules:

f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
And the Tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(F12_IN(x1)) = [2]   
POL(F13_IN(x1)) = [2] + x1   
POL(F1_IN(x1)) = [3] + [3]x1   
POL(F7_IN(x1)) = [3] + [3]x1   
POL(U2(x1, x2)) = 0   
POL(U4'(x1, x2)) = [2] + [2]x2   
POL(c(x1, x2)) = x2   
POL(c2) = 0   
POL(c2(x1)) = x1   
POL(c4(x1)) = x1   
POL(c7(x1)) = x1   
POL(f12_in(x1)) = 0   
POL(f12_out1) = 0   
POL(s(x1)) = [1] + x1   

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in(z0) → U1(f7_in(z0), z0)
U1(f7_out1, z0) → f1_out1
f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
f13_in(c(z0, 0)) → f13_out1
f13_in(c(z0, s(z1))) → U3(f13_in(c(s(z0), z1)), c(z0, s(z1)))
U3(f13_out1, c(z0, s(z1))) → f13_out1
f7_in(z0) → U4(f12_in(z0), z0)
U4(f12_out1, z0) → U5(f13_in(z0), z0)
U5(f13_out1, z0) → f7_out1
Tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
S tuples:

F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
K tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
Defined Rule Symbols:

f1_in, U1, f12_in, U2, f13_in, U3, f7_in, U4, U5

Defined Pair Symbols:

F1_IN, F7_IN, U4', F12_IN, F13_IN

Compound Symbols:

c2, c4, c7, c2

(11) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
We considered the (Usable) Rules:

f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
And the Tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(F12_IN(x1)) = [1] + x1   
POL(F13_IN(x1)) = 0   
POL(F1_IN(x1)) = [1] + [2]x1   
POL(F7_IN(x1)) = [1] + [2]x1   
POL(U2(x1, x2)) = 0   
POL(U4'(x1, x2)) = 0   
POL(c(x1, x2)) = x1   
POL(c2) = 0   
POL(c2(x1)) = x1   
POL(c4(x1)) = x1   
POL(c7(x1)) = x1   
POL(f12_in(x1)) = 0   
POL(f12_out1) = 0   
POL(s(x1)) = [1] + x1   

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in(z0) → U1(f7_in(z0), z0)
U1(f7_out1, z0) → f1_out1
f12_in(c(0, z0)) → f12_out1
f12_in(c(s(z0), z1)) → U2(f12_in(c(z0, s(z1))), c(s(z0), z1))
U2(f12_out1, c(s(z0), z1)) → f12_out1
f13_in(c(z0, 0)) → f13_out1
f13_in(c(z0, s(z1))) → U3(f13_in(c(s(z0), z1)), c(z0, s(z1)))
U3(f13_out1, c(z0, s(z1))) → f13_out1
f7_in(z0) → U4(f12_in(z0), z0)
U4(f12_out1, z0) → U5(f13_in(z0), z0)
U5(f13_out1, z0) → f7_out1
Tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
S tuples:none
K tuples:

F1_IN(z0) → c2(F7_IN(z0))
F7_IN(z0) → c2(U4'(f12_in(z0), z0))
F7_IN(z0) → c2(F12_IN(z0))
U4'(f12_out1, z0) → c2(F13_IN(z0))
F1_IN(z0) → c2
U4'(f12_out1, z0) → c2
F13_IN(c(z0, s(z1))) → c7(F13_IN(c(s(z0), z1)))
F12_IN(c(s(z0), z1)) → c4(F12_IN(c(z0, s(z1))))
Defined Rule Symbols:

f1_in, U1, f12_in, U2, f13_in, U3, f7_in, U4, U5

Defined Pair Symbols:

F1_IN, F7_IN, U4', F12_IN, F13_IN

Compound Symbols:

c2, c4, c7, c2

(13) SIsEmptyProof (EQUIVALENT transformation)

The set S is empty

(14) BOUNDS(O(1), O(1))

(15) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)

Built complexity over-approximating cdt problems from derivation graph.

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(c(0, 0)) → f2_out1
f2_in(c(0, s(0))) → f2_out1
f2_in(c(0, s(s(0)))) → f2_out1
f2_in(c(0, s(s(s(0))))) → f2_out1
f2_in(c(0, s(s(s(s(0)))))) → f2_out1
f2_in(c(0, s(s(s(s(s(0))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(0)))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(0))))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → U1(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0))))))))))
f2_in(c(s(z0), z1)) → U2(f150_in(z0, z1), c(s(z0), z1))
U1(f135_out1, c(0, s(s(s(s(s(s(s(s(z0)))))))))) → f2_out1
U2(f150_out1, c(s(z0), z1)) → f2_out1
f135_in(z0, 0) → f135_out1
f135_in(z0, s(z1)) → U3(f135_in(s(z0), z1), z0, s(z1))
U3(f135_out1, z0, s(z1)) → f135_out1
f152_in(0, z0) → f152_out1
f152_in(s(z0), z1) → U4(f152_in(z0, s(z1)), s(z0), z1)
U4(f152_out1, s(z0), z1) → f152_out1
f150_in(z0, z1) → U5(f152_in(z0, z1), z0, z1)
U5(f152_out1, z0, z1) → U6(f135_in(z0, z1), z0, z1)
U6(f135_out1, z0, z1) → f150_out1
Tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c9(U1'(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0)))))))))), F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c10(U2'(f150_in(z0, z1), c(s(z0), z1)), F150_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(U3'(f135_in(s(z0), z1), z0, s(z1)), F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(U4'(f152_in(z0, s(z1)), s(z0), z1), F152_IN(z0, s(z1)))
F150_IN(z0, z1) → c19(U5'(f152_in(z0, z1), z0, z1), F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c20(U6'(f135_in(z0, z1), z0, z1), F135_IN(z0, z1))
S tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c9(U1'(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0)))))))))), F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c10(U2'(f150_in(z0, z1), c(s(z0), z1)), F150_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(U3'(f135_in(s(z0), z1), z0, s(z1)), F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(U4'(f152_in(z0, s(z1)), s(z0), z1), F152_IN(z0, s(z1)))
F150_IN(z0, z1) → c19(U5'(f152_in(z0, z1), z0, z1), F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c20(U6'(f135_in(z0, z1), z0, z1), F135_IN(z0, z1))
K tuples:none
Defined Rule Symbols:

f2_in, U1, U2, f135_in, U3, f152_in, U4, f150_in, U5, U6

Defined Pair Symbols:

F2_IN, F135_IN, F152_IN, F150_IN, U5'

Compound Symbols:

c9, c10, c14, c17, c19, c20

(17) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)

Split RHS of tuples not part of any SCC

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(c(0, 0)) → f2_out1
f2_in(c(0, s(0))) → f2_out1
f2_in(c(0, s(s(0)))) → f2_out1
f2_in(c(0, s(s(s(0))))) → f2_out1
f2_in(c(0, s(s(s(s(0)))))) → f2_out1
f2_in(c(0, s(s(s(s(s(0))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(0)))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(0))))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → U1(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0))))))))))
f2_in(c(s(z0), z1)) → U2(f150_in(z0, z1), c(s(z0), z1))
U1(f135_out1, c(0, s(s(s(s(s(s(s(s(z0)))))))))) → f2_out1
U2(f150_out1, c(s(z0), z1)) → f2_out1
f135_in(z0, 0) → f135_out1
f135_in(z0, s(z1)) → U3(f135_in(s(z0), z1), z0, s(z1))
U3(f135_out1, z0, s(z1)) → f135_out1
f152_in(0, z0) → f152_out1
f152_in(s(z0), z1) → U4(f152_in(z0, s(z1)), s(z0), z1)
U4(f152_out1, s(z0), z1) → f152_out1
f150_in(z0, z1) → U5(f152_in(z0, z1), z0, z1)
U5(f152_out1, z0, z1) → U6(f135_in(z0, z1), z0, z1)
U6(f135_out1, z0, z1) → f150_out1
Tuples:

F135_IN(z0, s(z1)) → c14(U3'(f135_in(s(z0), z1), z0, s(z1)), F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(U4'(f152_in(z0, s(z1)), s(z0), z1), F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(U1'(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0)))))))))))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(U2'(f150_in(z0, z1), c(s(z0), z1)))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(U6'(f135_in(z0, z1), z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
S tuples:

F135_IN(z0, s(z1)) → c14(U3'(f135_in(s(z0), z1), z0, s(z1)), F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(U4'(f152_in(z0, s(z1)), s(z0), z1), F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(U1'(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0)))))))))))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(U2'(f150_in(z0, z1), c(s(z0), z1)))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(U6'(f135_in(z0, z1), z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
K tuples:none
Defined Rule Symbols:

f2_in, U1, U2, f135_in, U3, f152_in, U4, f150_in, U5, U6

Defined Pair Symbols:

F135_IN, F152_IN, F2_IN, F150_IN, U5'

Compound Symbols:

c14, c17, c1

(19) CdtGraphRemoveTrailingTuplepartsProof (BOTH BOUNDS(ID, ID) transformation)

Removed 5 trailing tuple parts

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(c(0, 0)) → f2_out1
f2_in(c(0, s(0))) → f2_out1
f2_in(c(0, s(s(0)))) → f2_out1
f2_in(c(0, s(s(s(0))))) → f2_out1
f2_in(c(0, s(s(s(s(0)))))) → f2_out1
f2_in(c(0, s(s(s(s(s(0))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(0)))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(0))))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → U1(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0))))))))))
f2_in(c(s(z0), z1)) → U2(f150_in(z0, z1), c(s(z0), z1))
U1(f135_out1, c(0, s(s(s(s(s(s(s(s(z0)))))))))) → f2_out1
U2(f150_out1, c(s(z0), z1)) → f2_out1
f135_in(z0, 0) → f135_out1
f135_in(z0, s(z1)) → U3(f135_in(s(z0), z1), z0, s(z1))
U3(f135_out1, z0, s(z1)) → f135_out1
f152_in(0, z0) → f152_out1
f152_in(s(z0), z1) → U4(f152_in(z0, s(z1)), s(z0), z1)
U4(f152_out1, s(z0), z1) → f152_out1
f150_in(z0, z1) → U5(f152_in(z0, z1), z0, z1)
U5(f152_out1, z0, z1) → U6(f135_in(z0, z1), z0, z1)
U6(f135_out1, z0, z1) → f150_out1
Tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
S tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
K tuples:none
Defined Rule Symbols:

f2_in, U1, U2, f135_in, U3, f152_in, U4, f150_in, U5, U6

Defined Pair Symbols:

F2_IN, F150_IN, U5', F135_IN, F152_IN

Compound Symbols:

c1, c14, c17, c1

(21) CdtKnowledgeProof (EQUIVALENT transformation)

The following tuples could be moved from S to K by knowledge propagation:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(c(0, 0)) → f2_out1
f2_in(c(0, s(0))) → f2_out1
f2_in(c(0, s(s(0)))) → f2_out1
f2_in(c(0, s(s(s(0))))) → f2_out1
f2_in(c(0, s(s(s(s(0)))))) → f2_out1
f2_in(c(0, s(s(s(s(s(0))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(0)))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(0))))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → U1(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0))))))))))
f2_in(c(s(z0), z1)) → U2(f150_in(z0, z1), c(s(z0), z1))
U1(f135_out1, c(0, s(s(s(s(s(s(s(s(z0)))))))))) → f2_out1
U2(f150_out1, c(s(z0), z1)) → f2_out1
f135_in(z0, 0) → f135_out1
f135_in(z0, s(z1)) → U3(f135_in(s(z0), z1), z0, s(z1))
U3(f135_out1, z0, s(z1)) → f135_out1
f152_in(0, z0) → f152_out1
f152_in(s(z0), z1) → U4(f152_in(z0, s(z1)), s(z0), z1)
U4(f152_out1, s(z0), z1) → f152_out1
f150_in(z0, z1) → U5(f152_in(z0, z1), z0, z1)
U5(f152_out1, z0, z1) → U6(f135_in(z0, z1), z0, z1)
U6(f135_out1, z0, z1) → f150_out1
Tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
S tuples:

F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
K tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
Defined Rule Symbols:

f2_in, U1, U2, f135_in, U3, f152_in, U4, f150_in, U5, U6

Defined Pair Symbols:

F2_IN, F150_IN, U5', F135_IN, F152_IN

Compound Symbols:

c1, c14, c17, c1

(23) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
We considered the (Usable) Rules:

f152_in(0, z0) → f152_out1
f152_in(s(z0), z1) → U4(f152_in(z0, s(z1)), s(z0), z1)
U4(f152_out1, s(z0), z1) → f152_out1
And the Tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(0) = 0   
POL(F135_IN(x1, x2)) = 0   
POL(F150_IN(x1, x2)) = [1] + [2]x1   
POL(F152_IN(x1, x2)) = [1] + x1   
POL(F2_IN(x1)) = [2]x1   
POL(U4(x1, x2, x3)) = 0   
POL(U5'(x1, x2, x3)) = 0   
POL(c(x1, x2)) = x1   
POL(c1) = 0   
POL(c1(x1)) = x1   
POL(c14(x1)) = x1   
POL(c17(x1)) = x1   
POL(f152_in(x1, x2)) = [3] + [2]x1   
POL(f152_out1) = 0   
POL(s(x1)) = [1] + x1   

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(c(0, 0)) → f2_out1
f2_in(c(0, s(0))) → f2_out1
f2_in(c(0, s(s(0)))) → f2_out1
f2_in(c(0, s(s(s(0))))) → f2_out1
f2_in(c(0, s(s(s(s(0)))))) → f2_out1
f2_in(c(0, s(s(s(s(s(0))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(0)))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(0))))))))) → f2_out1
f2_in(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → U1(f135_in(s(s(s(s(s(s(s(0))))))), z0), c(0, s(s(s(s(s(s(s(s(z0))))))))))
f2_in(c(s(z0), z1)) → U2(f150_in(z0, z1), c(s(z0), z1))
U1(f135_out1, c(0, s(s(s(s(s(s(s(s(z0)))))))))) → f2_out1
U2(f150_out1, c(s(z0), z1)) → f2_out1
f135_in(z0, 0) → f135_out1
f135_in(z0, s(z1)) → U3(f135_in(s(z0), z1), z0, s(z1))
U3(f135_out1, z0, s(z1)) → f135_out1
f152_in(0, z0) → f152_out1
f152_in(s(z0), z1) → U4(f152_in(z0, s(z1)), s(z0), z1)
U4(f152_out1, s(z0), z1) → f152_out1
f150_in(z0, z1) → U5(f152_in(z0, z1), z0, z1)
U5(f152_out1, z0, z1) → U6(f135_in(z0, z1), z0, z1)
U6(f135_out1, z0, z1) → f150_out1
Tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
S tuples:

F135_IN(z0, s(z1)) → c14(F135_IN(s(z0), z1))
K tuples:

F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1(F135_IN(s(s(s(s(s(s(s(0))))))), z0))
F2_IN(c(s(z0), z1)) → c1(F150_IN(z0, z1))
F150_IN(z0, z1) → c1(U5'(f152_in(z0, z1), z0, z1))
F150_IN(z0, z1) → c1(F152_IN(z0, z1))
U5'(f152_out1, z0, z1) → c1(F135_IN(z0, z1))
F2_IN(c(0, s(s(s(s(s(s(s(s(z0)))))))))) → c1
F2_IN(c(s(z0), z1)) → c1
U5'(f152_out1, z0, z1) → c1
F152_IN(s(z0), z1) → c17(F152_IN(z0, s(z1)))
Defined Rule Symbols:

f2_in, U1, U2, f135_in, U3, f152_in, U4, f150_in, U5, U6

Defined Pair Symbols:

F2_IN, F150_IN, U5', F135_IN, F152_IN

Compound Symbols:

c1, c14, c17, c1