(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