(0) Obligation:
Clauses:
div(X1, 0, X2, X3) :- ','(!, failure(a)).
div(0, X4, Z, R) :- ','(!, ','(eq(Z, 0), eq(R, 0))).
div(X, Y, s(Z), R) :- ','(minus(X, Y, U), ','(!, div(U, Y, Z, R))).
div(X, X5, X6, X).
minus(X, 0, X).
minus(s(X), s(Y), Z) :- minus(X, Y, Z).
failure(b).
eq(X, X).
Query: div(g,g,a,a)
(1) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)
Built complexity over-approximating cdt problems from derivation graph.
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in(0, z0) → f1_out1
f1_in(z0, z1) → U1(f19_in(z0, z1), z0, z1)
U1(f19_out1, z0, z1) → f1_out1
U1(f19_out2, z0, z1) → f1_out1
f60_in(z0, 0) → f60_out1(z0)
f60_in(s(z0), s(z1)) → U2(f60_in(z0, z1), s(z0), s(z1))
U2(f60_out1(z0), s(z1), s(z2)) → f60_out1(z0)
f49_in(s(z0), s(z1)) → U3(f60_in(z0, z1), s(z0), s(z1))
U3(f60_out1(z0), s(z1), s(z2)) → f49_out1(z0)
f50_in(z0, z1) → U4(f1_in(z0, z1), z0, z1)
U4(f1_out1, z0, z1) → f50_out1
f35_in(z0, z1) → U5(f41_in(z0, z1), z0, z1)
U5(f41_out1(z0), z1, z2) → f35_out1
f37_in(z0, z1) → f37_out1
f41_in(z0, z1) → U6(f49_in(z0, z1), z0, z1)
U6(f49_out1(z0), z1, z2) → U7(f50_in(z0, z2), z1, z2, z0)
U7(f50_out1, z0, z1, z2) → f41_out1(z2)
f19_in(z0, z1) → U8(f35_in(z0, z1), f37_in(z0, z1), z0, z1)
U8(f35_out1, z0, z1, z2) → f19_out1
U8(z0, f37_out1, z1, z2) → f19_out2
Tuples:
F1_IN(z0, z1) → c1(U1'(f19_in(z0, z1), z0, z1), F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(U2'(f60_in(z0, z1), s(z0), s(z1)), F60_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c7(U3'(f60_in(z0, z1), s(z0), s(z1)), F60_IN(z0, z1))
F50_IN(z0, z1) → c9(U4'(f1_in(z0, z1), z0, z1), F1_IN(z0, z1))
F35_IN(z0, z1) → c11(U5'(f41_in(z0, z1), z0, z1), F41_IN(z0, z1))
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(U7'(f50_in(z0, z2), z1, z2, z0), F50_IN(z0, z2))
F19_IN(z0, z1) → c17(U8'(f35_in(z0, z1), f37_in(z0, z1), z0, z1), F35_IN(z0, z1), F37_IN(z0, z1))
S tuples:
F1_IN(z0, z1) → c1(U1'(f19_in(z0, z1), z0, z1), F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(U2'(f60_in(z0, z1), s(z0), s(z1)), F60_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c7(U3'(f60_in(z0, z1), s(z0), s(z1)), F60_IN(z0, z1))
F50_IN(z0, z1) → c9(U4'(f1_in(z0, z1), z0, z1), F1_IN(z0, z1))
F35_IN(z0, z1) → c11(U5'(f41_in(z0, z1), z0, z1), F41_IN(z0, z1))
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(U7'(f50_in(z0, z2), z1, z2, z0), F50_IN(z0, z2))
F19_IN(z0, z1) → c17(U8'(f35_in(z0, z1), f37_in(z0, z1), z0, z1), F35_IN(z0, z1), F37_IN(z0, z1))
K tuples:none
Defined Rule Symbols:
f1_in, U1, f60_in, U2, f49_in, U3, f50_in, U4, f35_in, U5, f37_in, f41_in, U6, U7, f19_in, U8
Defined Pair Symbols:
F1_IN, F60_IN, F49_IN, F50_IN, F35_IN, F41_IN, U6', F19_IN
Compound Symbols:
c1, c5, c7, c9, c11, c14, c15, c17
(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(0, z0) → f1_out1
f1_in(z0, z1) → U1(f19_in(z0, z1), z0, z1)
U1(f19_out1, z0, z1) → f1_out1
U1(f19_out2, z0, z1) → f1_out1
f60_in(z0, 0) → f60_out1(z0)
f60_in(s(z0), s(z1)) → U2(f60_in(z0, z1), s(z0), s(z1))
U2(f60_out1(z0), s(z1), s(z2)) → f60_out1(z0)
f49_in(s(z0), s(z1)) → U3(f60_in(z0, z1), s(z0), s(z1))
U3(f60_out1(z0), s(z1), s(z2)) → f49_out1(z0)
f50_in(z0, z1) → U4(f1_in(z0, z1), z0, z1)
U4(f1_out1, z0, z1) → f50_out1
f35_in(z0, z1) → U5(f41_in(z0, z1), z0, z1)
U5(f41_out1(z0), z1, z2) → f35_out1
f37_in(z0, z1) → f37_out1
f41_in(z0, z1) → U6(f49_in(z0, z1), z0, z1)
U6(f49_out1(z0), z1, z2) → U7(f50_in(z0, z2), z1, z2, z0)
U7(f50_out1, z0, z1, z2) → f41_out1(z2)
f19_in(z0, z1) → U8(f35_in(z0, z1), f37_in(z0, z1), z0, z1)
U8(f35_out1, z0, z1, z2) → f19_out1
U8(z0, f37_out1, z1, z2) → f19_out2
Tuples:
F1_IN(z0, z1) → c1(U1'(f19_in(z0, z1), z0, z1), F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(U2'(f60_in(z0, z1), s(z0), s(z1)), F60_IN(z0, z1))
F50_IN(z0, z1) → c9(U4'(f1_in(z0, z1), z0, z1), F1_IN(z0, z1))
F35_IN(z0, z1) → c11(U5'(f41_in(z0, z1), z0, z1), F41_IN(z0, z1))
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(U7'(f50_in(z0, z2), z1, z2, z0), F50_IN(z0, z2))
F19_IN(z0, z1) → c17(U8'(f35_in(z0, z1), f37_in(z0, z1), z0, z1), F35_IN(z0, z1), F37_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(U3'(f60_in(z0, z1), s(z0), s(z1)))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
S tuples:
F1_IN(z0, z1) → c1(U1'(f19_in(z0, z1), z0, z1), F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(U2'(f60_in(z0, z1), s(z0), s(z1)), F60_IN(z0, z1))
F50_IN(z0, z1) → c9(U4'(f1_in(z0, z1), z0, z1), F1_IN(z0, z1))
F35_IN(z0, z1) → c11(U5'(f41_in(z0, z1), z0, z1), F41_IN(z0, z1))
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(U7'(f50_in(z0, z2), z1, z2, z0), F50_IN(z0, z2))
F19_IN(z0, z1) → c17(U8'(f35_in(z0, z1), f37_in(z0, z1), z0, z1), F35_IN(z0, z1), F37_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(U3'(f60_in(z0, z1), s(z0), s(z1)))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
K tuples:none
Defined Rule Symbols:
f1_in, U1, f60_in, U2, f49_in, U3, f50_in, U4, f35_in, U5, f37_in, f41_in, U6, U7, f19_in, U8
Defined Pair Symbols:
F1_IN, F60_IN, F50_IN, F35_IN, F41_IN, U6', F19_IN, F49_IN
Compound Symbols:
c1, c5, c9, c11, c14, c15, c17, c
(5) CdtGraphRemoveTrailingTuplepartsProof (BOTH BOUNDS(ID, ID) transformation)
Removed 8 trailing tuple parts
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in(0, z0) → f1_out1
f1_in(z0, z1) → U1(f19_in(z0, z1), z0, z1)
U1(f19_out1, z0, z1) → f1_out1
U1(f19_out2, z0, z1) → f1_out1
f60_in(z0, 0) → f60_out1(z0)
f60_in(s(z0), s(z1)) → U2(f60_in(z0, z1), s(z0), s(z1))
U2(f60_out1(z0), s(z1), s(z2)) → f60_out1(z0)
f49_in(s(z0), s(z1)) → U3(f60_in(z0, z1), s(z0), s(z1))
U3(f60_out1(z0), s(z1), s(z2)) → f49_out1(z0)
f50_in(z0, z1) → U4(f1_in(z0, z1), z0, z1)
U4(f1_out1, z0, z1) → f50_out1
f35_in(z0, z1) → U5(f41_in(z0, z1), z0, z1)
U5(f41_out1(z0), z1, z2) → f35_out1
f37_in(z0, z1) → f37_out1
f41_in(z0, z1) → U6(f49_in(z0, z1), z0, z1)
U6(f49_out1(z0), z1, z2) → U7(f50_in(z0, z2), z1, z2, z0)
U7(f50_out1, z0, z1, z2) → f41_out1(z2)
f19_in(z0, z1) → U8(f35_in(z0, z1), f37_in(z0, z1), z0, z1)
U8(f35_out1, z0, z1, z2) → f19_out1
U8(z0, f37_out1, z1, z2) → f19_out2
Tuples:
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c
S tuples:
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c
K tuples:none
Defined Rule Symbols:
f1_in, U1, f60_in, U2, f49_in, U3, f50_in, U4, f35_in, U5, f37_in, f41_in, U6, U7, f19_in, U8
Defined Pair Symbols:
F41_IN, F49_IN, F1_IN, F60_IN, F50_IN, F35_IN, U6', F19_IN
Compound Symbols:
c14, c, c1, c5, c9, c11, c15, c17, c
(7) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
We considered the (Usable) Rules:
f49_in(s(z0), s(z1)) → U3(f60_in(z0, z1), s(z0), s(z1))
f60_in(z0, 0) → f60_out1(z0)
f60_in(s(z0), s(z1)) → U2(f60_in(z0, z1), s(z0), s(z1))
U3(f60_out1(z0), s(z1), s(z2)) → f49_out1(z0)
U2(f60_out1(z0), s(z1), s(z2)) → f60_out1(z0)
And the Tuples:
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(0) = 0
POL(F19_IN(x1, x2)) = x22 + x12
POL(F1_IN(x1, x2)) = [1] + x22 + x12
POL(F35_IN(x1, x2)) = x22 + x12
POL(F41_IN(x1, x2)) = x22 + x12
POL(F49_IN(x1, x2)) = 0
POL(F50_IN(x1, x2)) = [1] + x22 + x12
POL(F60_IN(x1, x2)) = 0
POL(U2(x1, x2, x3)) = x1
POL(U3(x1, x2, x3)) = [1] + x1
POL(U6'(x1, x2, x3)) = x32 + x12
POL(c) = 0
POL(c(x1)) = x1
POL(c1(x1)) = x1
POL(c11(x1)) = x1
POL(c14(x1, x2)) = x1 + x2
POL(c15(x1)) = x1
POL(c17(x1)) = x1
POL(c5(x1)) = x1
POL(c9(x1)) = x1
POL(f49_in(x1, x2)) = x1
POL(f49_out1(x1)) = [1] + x1
POL(f60_in(x1, x2)) = x1
POL(f60_out1(x1)) = x1
POL(s(x1)) = [1] + x1
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in(0, z0) → f1_out1
f1_in(z0, z1) → U1(f19_in(z0, z1), z0, z1)
U1(f19_out1, z0, z1) → f1_out1
U1(f19_out2, z0, z1) → f1_out1
f60_in(z0, 0) → f60_out1(z0)
f60_in(s(z0), s(z1)) → U2(f60_in(z0, z1), s(z0), s(z1))
U2(f60_out1(z0), s(z1), s(z2)) → f60_out1(z0)
f49_in(s(z0), s(z1)) → U3(f60_in(z0, z1), s(z0), s(z1))
U3(f60_out1(z0), s(z1), s(z2)) → f49_out1(z0)
f50_in(z0, z1) → U4(f1_in(z0, z1), z0, z1)
U4(f1_out1, z0, z1) → f50_out1
f35_in(z0, z1) → U5(f41_in(z0, z1), z0, z1)
U5(f41_out1(z0), z1, z2) → f35_out1
f37_in(z0, z1) → f37_out1
f41_in(z0, z1) → U6(f49_in(z0, z1), z0, z1)
U6(f49_out1(z0), z1, z2) → U7(f50_in(z0, z2), z1, z2, z0)
U7(f50_out1, z0, z1, z2) → f41_out1(z2)
f19_in(z0, z1) → U8(f35_in(z0, z1), f37_in(z0, z1), z0, z1)
U8(f35_out1, z0, z1, z2) → f19_out1
U8(z0, f37_out1, z1, z2) → f19_out2
Tuples:
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c
S tuples:
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c
K tuples:
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
Defined Rule Symbols:
f1_in, U1, f60_in, U2, f49_in, U3, f50_in, U4, f35_in, U5, f37_in, f41_in, U6, U7, f19_in, U8
Defined Pair Symbols:
F41_IN, F49_IN, F1_IN, F60_IN, F50_IN, F35_IN, U6', F19_IN
Compound Symbols:
c14, c, c1, c5, c9, c11, c15, c17, c
(9) CdtKnowledgeProof (EQUIVALENT transformation)
The following tuples could be moved from S to K by knowledge propagation:
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F49_IN(s(z0), s(z1)) → c
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in(0, z0) → f1_out1
f1_in(z0, z1) → U1(f19_in(z0, z1), z0, z1)
U1(f19_out1, z0, z1) → f1_out1
U1(f19_out2, z0, z1) → f1_out1
f60_in(z0, 0) → f60_out1(z0)
f60_in(s(z0), s(z1)) → U2(f60_in(z0, z1), s(z0), s(z1))
U2(f60_out1(z0), s(z1), s(z2)) → f60_out1(z0)
f49_in(s(z0), s(z1)) → U3(f60_in(z0, z1), s(z0), s(z1))
U3(f60_out1(z0), s(z1), s(z2)) → f49_out1(z0)
f50_in(z0, z1) → U4(f1_in(z0, z1), z0, z1)
U4(f1_out1, z0, z1) → f50_out1
f35_in(z0, z1) → U5(f41_in(z0, z1), z0, z1)
U5(f41_out1(z0), z1, z2) → f35_out1
f37_in(z0, z1) → f37_out1
f41_in(z0, z1) → U6(f49_in(z0, z1), z0, z1)
U6(f49_out1(z0), z1, z2) → U7(f50_in(z0, z2), z1, z2, z0)
U7(f50_out1, z0, z1, z2) → f41_out1(z2)
f19_in(z0, z1) → U8(f35_in(z0, z1), f37_in(z0, z1), z0, z1)
U8(f35_out1, z0, z1, z2) → f19_out1
U8(z0, f37_out1, z1, z2) → f19_out2
Tuples:
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c
S tuples:
F60_IN(s(z0), s(z1)) → c5(F60_IN(z0, z1))
K tuples:
F1_IN(z0, z1) → c1(F19_IN(z0, z1))
F19_IN(z0, z1) → c17(F35_IN(z0, z1))
F35_IN(z0, z1) → c11(F41_IN(z0, z1))
F41_IN(z0, z1) → c14(U6'(f49_in(z0, z1), z0, z1), F49_IN(z0, z1))
F49_IN(s(z0), s(z1)) → c(F60_IN(z0, z1))
U6'(f49_out1(z0), z1, z2) → c15(F50_IN(z0, z2))
F49_IN(s(z0), s(z1)) → c
F50_IN(z0, z1) → c9(F1_IN(z0, z1))
Defined Rule Symbols:
f1_in, U1, f60_in, U2, f49_in, U3, f50_in, U4, f35_in, U5, f37_in, f41_in, U6, U7, f19_in, U8
Defined Pair Symbols:
F41_IN, F49_IN, F1_IN, F60_IN, F50_IN, F35_IN, U6', F19_IN
Compound Symbols:
c14, c, c1, c5, c9, c11, c15, c17, c
(11) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)
Built complexity over-approximating cdt problems from derivation graph.
(12) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in(0, z0) → f2_out1
f2_in(z0, z1) → U1(f40_in(z0, z1), z0, z1)
f2_in(z0, z1) → f2_out1
U1(f40_out1(z0), z1, z2) → f2_out1
U1(f40_out3, z0, z1) → f2_out1
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
f48_in(z0, z1) → U3(f2_in(z0, s(z1)), z0, z1)
U3(f2_out1, z0, z1) → f48_out1
f42_in(s(z0), s(z1)) → U4(f45_in(z0, z1), s(z0), s(z1))
U4(f45_out1(z0), s(z1), s(z2)) → f42_out1(z0)
f43_in(z0, z1) → f43_out2
f45_in(z0, z1) → U5(f47_in(z0, z1), z0, z1)
U5(f47_out1(z0), z1, z2) → U6(f48_in(z0, z2), z1, z2, z0)
U6(f48_out1, z0, z1, z2) → f45_out1(z2)
f40_in(z0, z1) → U7(f42_in(z0, z1), f43_in(z0, z1), z0, z1)
U7(f42_out1(z0), z1, z2, z3) → f40_out1(z0)
U7(z0, f43_out2, z1, z2) → f40_out3
Tuples:
F2_IN(z0, z1) → c1(U1'(f40_in(z0, z1), z0, z1), F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(U2'(f47_in(z0, z1), s(z0), s(z1)), F47_IN(z0, z1))
F48_IN(z0, z1) → c8(U3'(f2_in(z0, s(z1)), z0, z1), F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(U4'(f45_in(z0, z1), s(z0), s(z1)), F45_IN(z0, z1))
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(U6'(f48_in(z0, z2), z1, z2, z0), F48_IN(z0, z2))
F40_IN(z0, z1) → c16(U7'(f42_in(z0, z1), f43_in(z0, z1), z0, z1), F42_IN(z0, z1), F43_IN(z0, z1))
S tuples:
F2_IN(z0, z1) → c1(U1'(f40_in(z0, z1), z0, z1), F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(U2'(f47_in(z0, z1), s(z0), s(z1)), F47_IN(z0, z1))
F48_IN(z0, z1) → c8(U3'(f2_in(z0, s(z1)), z0, z1), F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(U4'(f45_in(z0, z1), s(z0), s(z1)), F45_IN(z0, z1))
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(U6'(f48_in(z0, z2), z1, z2, z0), F48_IN(z0, z2))
F40_IN(z0, z1) → c16(U7'(f42_in(z0, z1), f43_in(z0, z1), z0, z1), F42_IN(z0, z1), F43_IN(z0, z1))
K tuples:none
Defined Rule Symbols:
f2_in, U1, f47_in, U2, f48_in, U3, f42_in, U4, f43_in, f45_in, U5, U6, f40_in, U7
Defined Pair Symbols:
F2_IN, F47_IN, F48_IN, F42_IN, F45_IN, U5', F40_IN
Compound Symbols:
c1, c6, c8, c10, c13, c14, c16
(13) CdtGraphRemoveTrailingTuplepartsProof (BOTH BOUNDS(ID, ID) transformation)
Removed 7 trailing tuple parts
(14) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in(0, z0) → f2_out1
f2_in(z0, z1) → U1(f40_in(z0, z1), z0, z1)
f2_in(z0, z1) → f2_out1
U1(f40_out1(z0), z1, z2) → f2_out1
U1(f40_out3, z0, z1) → f2_out1
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
f48_in(z0, z1) → U3(f2_in(z0, s(z1)), z0, z1)
U3(f2_out1, z0, z1) → f48_out1
f42_in(s(z0), s(z1)) → U4(f45_in(z0, z1), s(z0), s(z1))
U4(f45_out1(z0), s(z1), s(z2)) → f42_out1(z0)
f43_in(z0, z1) → f43_out2
f45_in(z0, z1) → U5(f47_in(z0, z1), z0, z1)
U5(f47_out1(z0), z1, z2) → U6(f48_in(z0, z2), z1, z2, z0)
U6(f48_out1, z0, z1, z2) → f45_out1(z2)
f40_in(z0, z1) → U7(f42_in(z0, z1), f43_in(z0, z1), z0, z1)
U7(f42_out1(z0), z1, z2, z3) → f40_out1(z0)
U7(z0, f43_out2, z1, z2) → f40_out3
Tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
S tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
K tuples:none
Defined Rule Symbols:
f2_in, U1, f47_in, U2, f48_in, U3, f42_in, U4, f43_in, f45_in, U5, U6, f40_in, U7
Defined Pair Symbols:
F45_IN, F2_IN, F47_IN, F48_IN, F42_IN, U5', F40_IN
Compound Symbols:
c13, c1, c6, c8, c10, c14, c16
(15) 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.
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
We considered the (Usable) Rules:
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
And the Tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(0) = 0
POL(F2_IN(x1, x2)) = x1 + x2
POL(F40_IN(x1, x2)) = x1 + x2
POL(F42_IN(x1, x2)) = x1 + x2
POL(F45_IN(x1, x2)) = [1] + x1 + x2
POL(F47_IN(x1, x2)) = 0
POL(F48_IN(x1, x2)) = [1] + x1 + x2
POL(U2(x1, x2, x3)) = x1
POL(U5'(x1, x2, x3)) = x1 + x3
POL(c1(x1)) = x1
POL(c10(x1)) = x1
POL(c13(x1, x2)) = x1 + x2
POL(c14(x1)) = x1
POL(c16(x1)) = x1
POL(c6(x1)) = x1
POL(c8(x1)) = x1
POL(f47_in(x1, x2)) = [1] + x1
POL(f47_out1(x1)) = [1] + x1
POL(s(x1)) = [1] + x1
(16) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in(0, z0) → f2_out1
f2_in(z0, z1) → U1(f40_in(z0, z1), z0, z1)
f2_in(z0, z1) → f2_out1
U1(f40_out1(z0), z1, z2) → f2_out1
U1(f40_out3, z0, z1) → f2_out1
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
f48_in(z0, z1) → U3(f2_in(z0, s(z1)), z0, z1)
U3(f2_out1, z0, z1) → f48_out1
f42_in(s(z0), s(z1)) → U4(f45_in(z0, z1), s(z0), s(z1))
U4(f45_out1(z0), s(z1), s(z2)) → f42_out1(z0)
f43_in(z0, z1) → f43_out2
f45_in(z0, z1) → U5(f47_in(z0, z1), z0, z1)
U5(f47_out1(z0), z1, z2) → U6(f48_in(z0, z2), z1, z2, z0)
U6(f48_out1, z0, z1, z2) → f45_out1(z2)
f40_in(z0, z1) → U7(f42_in(z0, z1), f43_in(z0, z1), z0, z1)
U7(f42_out1(z0), z1, z2, z3) → f40_out1(z0)
U7(z0, f43_out2, z1, z2) → f40_out3
Tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
S tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
K tuples:
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
Defined Rule Symbols:
f2_in, U1, f47_in, U2, f48_in, U3, f42_in, U4, f43_in, f45_in, U5, U6, f40_in, U7
Defined Pair Symbols:
F45_IN, F2_IN, F47_IN, F48_IN, F42_IN, U5', F40_IN
Compound Symbols:
c13, c1, c6, c8, c10, c14, c16
(17) CdtKnowledgeProof (EQUIVALENT transformation)
The following tuples could be moved from S to K by knowledge propagation:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
(18) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in(0, z0) → f2_out1
f2_in(z0, z1) → U1(f40_in(z0, z1), z0, z1)
f2_in(z0, z1) → f2_out1
U1(f40_out1(z0), z1, z2) → f2_out1
U1(f40_out3, z0, z1) → f2_out1
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
f48_in(z0, z1) → U3(f2_in(z0, s(z1)), z0, z1)
U3(f2_out1, z0, z1) → f48_out1
f42_in(s(z0), s(z1)) → U4(f45_in(z0, z1), s(z0), s(z1))
U4(f45_out1(z0), s(z1), s(z2)) → f42_out1(z0)
f43_in(z0, z1) → f43_out2
f45_in(z0, z1) → U5(f47_in(z0, z1), z0, z1)
U5(f47_out1(z0), z1, z2) → U6(f48_in(z0, z2), z1, z2, z0)
U6(f48_out1, z0, z1, z2) → f45_out1(z2)
f40_in(z0, z1) → U7(f42_in(z0, z1), f43_in(z0, z1), z0, z1)
U7(f42_out1(z0), z1, z2, z3) → f40_out1(z0)
U7(z0, f43_out2, z1, z2) → f40_out3
Tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
S tuples:
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
K tuples:
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
Defined Rule Symbols:
f2_in, U1, f47_in, U2, f48_in, U3, f42_in, U4, f43_in, f45_in, U5, U6, f40_in, U7
Defined Pair Symbols:
F45_IN, F2_IN, F47_IN, F48_IN, F42_IN, U5', F40_IN
Compound Symbols:
c13, c1, c6, c8, c10, c14, c16
(19) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
We considered the (Usable) Rules:
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
And the Tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(0) = 0
POL(F2_IN(x1, x2)) = x12
POL(F40_IN(x1, x2)) = x12
POL(F42_IN(x1, x2)) = x12
POL(F45_IN(x1, x2)) = [1] + x1 + x12
POL(F47_IN(x1, x2)) = x1
POL(F48_IN(x1, x2)) = x12
POL(U2(x1, x2, x3)) = x1
POL(U5'(x1, x2, x3)) = x12
POL(c1(x1)) = x1
POL(c10(x1)) = x1
POL(c13(x1, x2)) = x1 + x2
POL(c14(x1)) = x1
POL(c16(x1)) = x1
POL(c6(x1)) = x1
POL(c8(x1)) = x1
POL(f47_in(x1, x2)) = x1
POL(f47_out1(x1)) = x1
POL(s(x1)) = [1] + x1
(20) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in(0, z0) → f2_out1
f2_in(z0, z1) → U1(f40_in(z0, z1), z0, z1)
f2_in(z0, z1) → f2_out1
U1(f40_out1(z0), z1, z2) → f2_out1
U1(f40_out3, z0, z1) → f2_out1
f47_in(z0, 0) → f47_out1(z0)
f47_in(s(z0), s(z1)) → U2(f47_in(z0, z1), s(z0), s(z1))
U2(f47_out1(z0), s(z1), s(z2)) → f47_out1(z0)
f48_in(z0, z1) → U3(f2_in(z0, s(z1)), z0, z1)
U3(f2_out1, z0, z1) → f48_out1
f42_in(s(z0), s(z1)) → U4(f45_in(z0, z1), s(z0), s(z1))
U4(f45_out1(z0), s(z1), s(z2)) → f42_out1(z0)
f43_in(z0, z1) → f43_out2
f45_in(z0, z1) → U5(f47_in(z0, z1), z0, z1)
U5(f47_out1(z0), z1, z2) → U6(f48_in(z0, z2), z1, z2, z0)
U6(f48_out1, z0, z1, z2) → f45_out1(z2)
f40_in(z0, z1) → U7(f42_in(z0, z1), f43_in(z0, z1), z0, z1)
U7(f42_out1(z0), z1, z2, z3) → f40_out1(z0)
U7(z0, f43_out2, z1, z2) → f40_out3
Tuples:
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
S tuples:none
K tuples:
F42_IN(s(z0), s(z1)) → c10(F45_IN(z0, z1))
F45_IN(z0, z1) → c13(U5'(f47_in(z0, z1), z0, z1), F47_IN(z0, z1))
U5'(f47_out1(z0), z1, z2) → c14(F48_IN(z0, z2))
F48_IN(z0, z1) → c8(F2_IN(z0, s(z1)))
F2_IN(z0, z1) → c1(F40_IN(z0, z1))
F40_IN(z0, z1) → c16(F42_IN(z0, z1))
F47_IN(s(z0), s(z1)) → c6(F47_IN(z0, z1))
Defined Rule Symbols:
f2_in, U1, f47_in, U2, f48_in, U3, f42_in, U4, f43_in, f45_in, U5, U6, f40_in, U7
Defined Pair Symbols:
F45_IN, F2_IN, F47_IN, F48_IN, F42_IN, U5', F40_IN
Compound Symbols:
c13, c1, c6, c8, c10, c14, c16
(21) SIsEmptyProof (EQUIVALENT transformation)
The set S is empty
(22) BOUNDS(O(1), O(1))