(0) Obligation:

Clauses:

len1([], 0).
len1(.(X1, Ts), N) :- ','(len1(Ts, M), eq(N, s(M))).
eq(X, X).

Query: len1(g,a)

(1) LPReorderTransformerProof (EQUIVALENT transformation)

Reordered facts before rules in definite LP [PROLOG].

(2) Obligation:

Clauses:

len1([], 0).
eq(X, X).
len1(.(X1, Ts), N) :- ','(len1(Ts, M), eq(N, s(M))).

Query: len1(g,a)

(3) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)

Built complexity over-approximating cdt problems from derivation graph.

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1(0)
f1_in(.(z0, z1)) → U1(f16_in(z1), .(z0, z1))
U1(f16_out1(z0, z1), .(z2, z3)) → f1_out1(z1)
f31_in([]) → f31_out1(0)
f31_in(.(z0, z1)) → U2(f46_in(z1), .(z0, z1))
U2(f46_out1(z0, z1), .(z2, z3)) → f31_out1(z1)
f33_in(z0) → f33_out1(s(z0))
f51_in(z0) → f51_out1(s(z0))
f16_in(z0) → U3(f31_in(z0), z0)
U3(f31_out1(z0), z1) → U4(f33_in(z0), z1, z0)
U4(f33_out1(z0), z1, z2) → f16_out1(z2, z0)
f46_in(z0) → U5(f31_in(z0), z0)
U5(f31_out1(z0), z1) → U6(f51_in(z0), z1, z0)
U6(f51_out1(z0), z1, z2) → f46_out1(z2, z0)
Tuples:

F1_IN(.(z0, z1)) → c1(U1'(f16_in(z1), .(z0, z1)), F16_IN(z1))
F31_IN(.(z0, z1)) → c4(U2'(f46_in(z1), .(z0, z1)), F46_IN(z1))
F16_IN(z0) → c8(U3'(f31_in(z0), z0), F31_IN(z0))
U3'(f31_out1(z0), z1) → c9(U4'(f33_in(z0), z1, z0), F33_IN(z0))
F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
U5'(f31_out1(z0), z1) → c12(U6'(f51_in(z0), z1, z0), F51_IN(z0))
S tuples:

F1_IN(.(z0, z1)) → c1(U1'(f16_in(z1), .(z0, z1)), F16_IN(z1))
F31_IN(.(z0, z1)) → c4(U2'(f46_in(z1), .(z0, z1)), F46_IN(z1))
F16_IN(z0) → c8(U3'(f31_in(z0), z0), F31_IN(z0))
U3'(f31_out1(z0), z1) → c9(U4'(f33_in(z0), z1, z0), F33_IN(z0))
F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
U5'(f31_out1(z0), z1) → c12(U6'(f51_in(z0), z1, z0), F51_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f31_in, U2, f33_in, f51_in, f16_in, U3, U4, f46_in, U5, U6

Defined Pair Symbols:

F1_IN, F31_IN, F16_IN, U3', F46_IN, U5'

Compound Symbols:

c1, c4, c8, c9, c11, c12

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

Split RHS of tuples not part of any SCC

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1(0)
f1_in(.(z0, z1)) → U1(f16_in(z1), .(z0, z1))
U1(f16_out1(z0, z1), .(z2, z3)) → f1_out1(z1)
f31_in([]) → f31_out1(0)
f31_in(.(z0, z1)) → U2(f46_in(z1), .(z0, z1))
U2(f46_out1(z0, z1), .(z2, z3)) → f31_out1(z1)
f33_in(z0) → f33_out1(s(z0))
f51_in(z0) → f51_out1(s(z0))
f16_in(z0) → U3(f31_in(z0), z0)
U3(f31_out1(z0), z1) → U4(f33_in(z0), z1, z0)
U4(f33_out1(z0), z1, z2) → f16_out1(z2, z0)
f46_in(z0) → U5(f31_in(z0), z0)
U5(f31_out1(z0), z1) → U6(f51_in(z0), z1, z0)
U6(f51_out1(z0), z1, z2) → f46_out1(z2, z0)
Tuples:

F31_IN(.(z0, z1)) → c4(U2'(f46_in(z1), .(z0, z1)), F46_IN(z1))
F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(U1'(f16_in(z1), .(z0, z1)))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
U3'(f31_out1(z0), z1) → c(U4'(f33_in(z0), z1, z0))
U3'(f31_out1(z0), z1) → c(F33_IN(z0))
U5'(f31_out1(z0), z1) → c(U6'(f51_in(z0), z1, z0))
U5'(f31_out1(z0), z1) → c(F51_IN(z0))
S tuples:

F31_IN(.(z0, z1)) → c4(U2'(f46_in(z1), .(z0, z1)), F46_IN(z1))
F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(U1'(f16_in(z1), .(z0, z1)))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
U3'(f31_out1(z0), z1) → c(U4'(f33_in(z0), z1, z0))
U3'(f31_out1(z0), z1) → c(F33_IN(z0))
U5'(f31_out1(z0), z1) → c(U6'(f51_in(z0), z1, z0))
U5'(f31_out1(z0), z1) → c(F51_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f31_in, U2, f33_in, f51_in, f16_in, U3, U4, f46_in, U5, U6

Defined Pair Symbols:

F31_IN, F46_IN, F1_IN, F16_IN, U3', U5'

Compound Symbols:

c4, c11, c

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

Removed 6 trailing tuple parts

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1(0)
f1_in(.(z0, z1)) → U1(f16_in(z1), .(z0, z1))
U1(f16_out1(z0, z1), .(z2, z3)) → f1_out1(z1)
f31_in([]) → f31_out1(0)
f31_in(.(z0, z1)) → U2(f46_in(z1), .(z0, z1))
U2(f46_out1(z0, z1), .(z2, z3)) → f31_out1(z1)
f33_in(z0) → f33_out1(s(z0))
f51_in(z0) → f51_out1(s(z0))
f16_in(z0) → U3(f31_in(z0), z0)
U3(f31_out1(z0), z1) → U4(f33_in(z0), z1, z0)
U4(f33_out1(z0), z1, z2) → f16_out1(z2, z0)
f46_in(z0) → U5(f31_in(z0), z0)
U5(f31_out1(z0), z1) → U6(f51_in(z0), z1, z0)
U6(f51_out1(z0), z1, z2) → f46_out1(z2, z0)
Tuples:

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
U5'(f31_out1(z0), z1) → c
S tuples:

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
U5'(f31_out1(z0), z1) → c
K tuples:none
Defined Rule Symbols:

f1_in, U1, f31_in, U2, f33_in, f51_in, f16_in, U3, U4, f46_in, U5, U6

Defined Pair Symbols:

F46_IN, F1_IN, F16_IN, F31_IN, U3', U5'

Compound Symbols:

c11, c, c4, c

(9) CdtKnowledgeProof (EQUIVALENT transformation)

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

F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
U3'(f31_out1(z0), z1) → c
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
U3'(f31_out1(z0), z1) → c
U3'(f31_out1(z0), z1) → c

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1(0)
f1_in(.(z0, z1)) → U1(f16_in(z1), .(z0, z1))
U1(f16_out1(z0, z1), .(z2, z3)) → f1_out1(z1)
f31_in([]) → f31_out1(0)
f31_in(.(z0, z1)) → U2(f46_in(z1), .(z0, z1))
U2(f46_out1(z0, z1), .(z2, z3)) → f31_out1(z1)
f33_in(z0) → f33_out1(s(z0))
f51_in(z0) → f51_out1(s(z0))
f16_in(z0) → U3(f31_in(z0), z0)
U3(f31_out1(z0), z1) → U4(f33_in(z0), z1, z0)
U4(f33_out1(z0), z1, z2) → f16_out1(z2, z0)
f46_in(z0) → U5(f31_in(z0), z0)
U5(f31_out1(z0), z1) → U6(f51_in(z0), z1, z0)
U6(f51_out1(z0), z1, z2) → f46_out1(z2, z0)
Tuples:

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
U5'(f31_out1(z0), z1) → c
S tuples:

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
U5'(f31_out1(z0), z1) → c
K tuples:

F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
Defined Rule Symbols:

f1_in, U1, f31_in, U2, f33_in, f51_in, f16_in, U3, U4, f46_in, U5, U6

Defined Pair Symbols:

F46_IN, F1_IN, F16_IN, F31_IN, U3', U5'

Compound Symbols:

c11, c, c4, c

(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.

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
We considered the (Usable) Rules:

f31_in([]) → f31_out1(0)
f31_in(.(z0, z1)) → U2(f46_in(z1), .(z0, z1))
f46_in(z0) → U5(f31_in(z0), z0)
U2(f46_out1(z0, z1), .(z2, z3)) → f31_out1(z1)
U5(f31_out1(z0), z1) → U6(f51_in(z0), z1, z0)
f51_in(z0) → f51_out1(s(z0))
U6(f51_out1(z0), z1, z2) → f46_out1(z2, z0)
And the Tuples:

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
U5'(f31_out1(z0), z1) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = [3] + x2   
POL(0) = 0   
POL(F16_IN(x1)) = [2] + [2]x1   
POL(F1_IN(x1)) = [3] + [2]x1   
POL(F31_IN(x1)) = [1] + x1   
POL(F46_IN(x1)) = [2] + x1   
POL(U2(x1, x2)) = 0   
POL(U3'(x1, x2)) = [1] + x2   
POL(U5(x1, x2)) = [3]x1 + [2]x2   
POL(U5'(x1, x2)) = 0   
POL(U6(x1, x2, x3)) = [2] + [2]x1 + x2 + [2]x3   
POL([]) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c11(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   
POL(f31_in(x1)) = 0   
POL(f31_out1(x1)) = [3] + x1   
POL(f46_in(x1)) = [2] + [3]x1   
POL(f46_out1(x1, x2)) = [2] + x1   
POL(f51_in(x1)) = [2]   
POL(f51_out1(x1)) = x1   
POL(s(x1)) = 0   

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1(0)
f1_in(.(z0, z1)) → U1(f16_in(z1), .(z0, z1))
U1(f16_out1(z0, z1), .(z2, z3)) → f1_out1(z1)
f31_in([]) → f31_out1(0)
f31_in(.(z0, z1)) → U2(f46_in(z1), .(z0, z1))
U2(f46_out1(z0, z1), .(z2, z3)) → f31_out1(z1)
f33_in(z0) → f33_out1(s(z0))
f51_in(z0) → f51_out1(s(z0))
f16_in(z0) → U3(f31_in(z0), z0)
U3(f31_out1(z0), z1) → U4(f33_in(z0), z1, z0)
U4(f33_out1(z0), z1, z2) → f16_out1(z2, z0)
f46_in(z0) → U5(f31_in(z0), z0)
U5(f31_out1(z0), z1) → U6(f51_in(z0), z1, z0)
U6(f51_out1(z0), z1, z2) → f46_out1(z2, z0)
Tuples:

F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
U5'(f31_out1(z0), z1) → c
S tuples:

U5'(f31_out1(z0), z1) → c
K tuples:

F1_IN(.(z0, z1)) → c(F16_IN(z1))
F16_IN(z0) → c(U3'(f31_in(z0), z0))
F16_IN(z0) → c(F31_IN(z0))
F1_IN(.(z0, z1)) → c
U3'(f31_out1(z0), z1) → c
F46_IN(z0) → c11(U5'(f31_in(z0), z0), F31_IN(z0))
F31_IN(.(z0, z1)) → c4(F46_IN(z1))
Defined Rule Symbols:

f1_in, U1, f31_in, U2, f33_in, f51_in, f16_in, U3, U4, f46_in, U5, U6

Defined Pair Symbols:

F46_IN, F1_IN, F16_IN, F31_IN, U3', U5'

Compound Symbols:

c11, c, c4, c

(13) CdtKnowledgeProof (EQUIVALENT transformation)

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

U5'(f31_out1(z0), z1) → c
U5'(f31_out1(z0), z1) → c
Now 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([]) → f2_out1(0)
f2_in(.(z0, [])) → f2_out1(s(0))
f2_in(.(z0, .(z1, z2))) → U1(f28_in(z2), .(z0, .(z1, z2)))
U1(f28_out1(z0, z1, z2), .(z3, .(z4, z5))) → f2_out1(z2)
f30_in([]) → f30_out1(0)
f30_in(.(z0, z1)) → U2(f44_in(z1), .(z0, z1))
U2(f44_out1(z0, z1), .(z2, z3)) → f30_out1(z1)
f32_in(z0) → f32_out1(s(z0), s(s(z0)))
f49_in(z0) → f49_out1(s(z0))
f28_in(z0) → U3(f30_in(z0), z0)
U3(f30_out1(z0), z1) → U4(f32_in(z0), z1, z0)
U4(f32_out1(z0, z1), z2, z3) → f28_out1(z3, z0, z1)
f44_in(z0) → U5(f30_in(z0), z0)
U5(f30_out1(z0), z1) → U6(f49_in(z0), z1, z0)
U6(f49_out1(z0), z1, z2) → f44_out1(z2, z0)
Tuples:

F2_IN(.(z0, .(z1, z2))) → c2(U1'(f28_in(z2), .(z0, .(z1, z2))), F28_IN(z2))
F30_IN(.(z0, z1)) → c5(U2'(f44_in(z1), .(z0, z1)), F44_IN(z1))
F28_IN(z0) → c9(U3'(f30_in(z0), z0), F30_IN(z0))
U3'(f30_out1(z0), z1) → c10(U4'(f32_in(z0), z1, z0), F32_IN(z0))
F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
U5'(f30_out1(z0), z1) → c13(U6'(f49_in(z0), z1, z0), F49_IN(z0))
S tuples:

F2_IN(.(z0, .(z1, z2))) → c2(U1'(f28_in(z2), .(z0, .(z1, z2))), F28_IN(z2))
F30_IN(.(z0, z1)) → c5(U2'(f44_in(z1), .(z0, z1)), F44_IN(z1))
F28_IN(z0) → c9(U3'(f30_in(z0), z0), F30_IN(z0))
U3'(f30_out1(z0), z1) → c10(U4'(f32_in(z0), z1, z0), F32_IN(z0))
F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
U5'(f30_out1(z0), z1) → c13(U6'(f49_in(z0), z1, z0), F49_IN(z0))
K tuples:none
Defined Rule Symbols:

f2_in, U1, f30_in, U2, f32_in, f49_in, f28_in, U3, U4, f44_in, U5, U6

Defined Pair Symbols:

F2_IN, F30_IN, F28_IN, U3', F44_IN, U5'

Compound Symbols:

c2, c5, c9, c10, c12, c13

(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([]) → f2_out1(0)
f2_in(.(z0, [])) → f2_out1(s(0))
f2_in(.(z0, .(z1, z2))) → U1(f28_in(z2), .(z0, .(z1, z2)))
U1(f28_out1(z0, z1, z2), .(z3, .(z4, z5))) → f2_out1(z2)
f30_in([]) → f30_out1(0)
f30_in(.(z0, z1)) → U2(f44_in(z1), .(z0, z1))
U2(f44_out1(z0, z1), .(z2, z3)) → f30_out1(z1)
f32_in(z0) → f32_out1(s(z0), s(s(z0)))
f49_in(z0) → f49_out1(s(z0))
f28_in(z0) → U3(f30_in(z0), z0)
U3(f30_out1(z0), z1) → U4(f32_in(z0), z1, z0)
U4(f32_out1(z0, z1), z2, z3) → f28_out1(z3, z0, z1)
f44_in(z0) → U5(f30_in(z0), z0)
U5(f30_out1(z0), z1) → U6(f49_in(z0), z1, z0)
U6(f49_out1(z0), z1, z2) → f44_out1(z2, z0)
Tuples:

F30_IN(.(z0, z1)) → c5(U2'(f44_in(z1), .(z0, z1)), F44_IN(z1))
F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(U1'(f28_in(z2), .(z0, .(z1, z2))))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
U3'(f30_out1(z0), z1) → c(U4'(f32_in(z0), z1, z0))
U3'(f30_out1(z0), z1) → c(F32_IN(z0))
U5'(f30_out1(z0), z1) → c(U6'(f49_in(z0), z1, z0))
U5'(f30_out1(z0), z1) → c(F49_IN(z0))
S tuples:

F30_IN(.(z0, z1)) → c5(U2'(f44_in(z1), .(z0, z1)), F44_IN(z1))
F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(U1'(f28_in(z2), .(z0, .(z1, z2))))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
U3'(f30_out1(z0), z1) → c(U4'(f32_in(z0), z1, z0))
U3'(f30_out1(z0), z1) → c(F32_IN(z0))
U5'(f30_out1(z0), z1) → c(U6'(f49_in(z0), z1, z0))
U5'(f30_out1(z0), z1) → c(F49_IN(z0))
K tuples:none
Defined Rule Symbols:

f2_in, U1, f30_in, U2, f32_in, f49_in, f28_in, U3, U4, f44_in, U5, U6

Defined Pair Symbols:

F30_IN, F44_IN, F2_IN, F28_IN, U3', U5'

Compound Symbols:

c5, c12, c

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

Removed 6 trailing tuple parts

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in([]) → f2_out1(0)
f2_in(.(z0, [])) → f2_out1(s(0))
f2_in(.(z0, .(z1, z2))) → U1(f28_in(z2), .(z0, .(z1, z2)))
U1(f28_out1(z0, z1, z2), .(z3, .(z4, z5))) → f2_out1(z2)
f30_in([]) → f30_out1(0)
f30_in(.(z0, z1)) → U2(f44_in(z1), .(z0, z1))
U2(f44_out1(z0, z1), .(z2, z3)) → f30_out1(z1)
f32_in(z0) → f32_out1(s(z0), s(s(z0)))
f49_in(z0) → f49_out1(s(z0))
f28_in(z0) → U3(f30_in(z0), z0)
U3(f30_out1(z0), z1) → U4(f32_in(z0), z1, z0)
U4(f32_out1(z0, z1), z2, z3) → f28_out1(z3, z0, z1)
f44_in(z0) → U5(f30_in(z0), z0)
U5(f30_out1(z0), z1) → U6(f49_in(z0), z1, z0)
U6(f49_out1(z0), z1, z2) → f44_out1(z2, z0)
Tuples:

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F30_IN(.(z0, z1)) → c5(F44_IN(z1))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
U5'(f30_out1(z0), z1) → c
S tuples:

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F30_IN(.(z0, z1)) → c5(F44_IN(z1))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
U5'(f30_out1(z0), z1) → c
K tuples:none
Defined Rule Symbols:

f2_in, U1, f30_in, U2, f32_in, f49_in, f28_in, U3, U4, f44_in, U5, U6

Defined Pair Symbols:

F44_IN, F2_IN, F28_IN, F30_IN, U3', U5'

Compound Symbols:

c12, c, c5, c

(21) CdtKnowledgeProof (EQUIVALENT transformation)

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

F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
U3'(f30_out1(z0), z1) → c
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
U3'(f30_out1(z0), z1) → c
U3'(f30_out1(z0), z1) → c

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in([]) → f2_out1(0)
f2_in(.(z0, [])) → f2_out1(s(0))
f2_in(.(z0, .(z1, z2))) → U1(f28_in(z2), .(z0, .(z1, z2)))
U1(f28_out1(z0, z1, z2), .(z3, .(z4, z5))) → f2_out1(z2)
f30_in([]) → f30_out1(0)
f30_in(.(z0, z1)) → U2(f44_in(z1), .(z0, z1))
U2(f44_out1(z0, z1), .(z2, z3)) → f30_out1(z1)
f32_in(z0) → f32_out1(s(z0), s(s(z0)))
f49_in(z0) → f49_out1(s(z0))
f28_in(z0) → U3(f30_in(z0), z0)
U3(f30_out1(z0), z1) → U4(f32_in(z0), z1, z0)
U4(f32_out1(z0, z1), z2, z3) → f28_out1(z3, z0, z1)
f44_in(z0) → U5(f30_in(z0), z0)
U5(f30_out1(z0), z1) → U6(f49_in(z0), z1, z0)
U6(f49_out1(z0), z1, z2) → f44_out1(z2, z0)
Tuples:

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F30_IN(.(z0, z1)) → c5(F44_IN(z1))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
U5'(f30_out1(z0), z1) → c
S tuples:

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F30_IN(.(z0, z1)) → c5(F44_IN(z1))
U5'(f30_out1(z0), z1) → c
K tuples:

F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
Defined Rule Symbols:

f2_in, U1, f30_in, U2, f32_in, f49_in, f28_in, U3, U4, f44_in, U5, U6

Defined Pair Symbols:

F44_IN, F2_IN, F28_IN, F30_IN, U3', U5'

Compound Symbols:

c12, c, c5, c

(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.

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
We considered the (Usable) Rules:

f30_in([]) → f30_out1(0)
f30_in(.(z0, z1)) → U2(f44_in(z1), .(z0, z1))
f44_in(z0) → U5(f30_in(z0), z0)
U2(f44_out1(z0, z1), .(z2, z3)) → f30_out1(z1)
U5(f30_out1(z0), z1) → U6(f49_in(z0), z1, z0)
f49_in(z0) → f49_out1(s(z0))
U6(f49_out1(z0), z1, z2) → f44_out1(z2, z0)
And the Tuples:

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F30_IN(.(z0, z1)) → c5(F44_IN(z1))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
U5'(f30_out1(z0), z1) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = [1] + x2   
POL(0) = 0   
POL(F28_IN(x1)) = [2] + [2]x1   
POL(F2_IN(x1)) = [3]x1   
POL(F30_IN(x1)) = [2]x1   
POL(F44_IN(x1)) = [2] + [2]x1   
POL(U2(x1, x2)) = 0   
POL(U3'(x1, x2)) = [1]   
POL(U5(x1, x2)) = [2] + x2   
POL(U5'(x1, x2)) = 0   
POL(U6(x1, x2, x3)) = [2]x1   
POL([]) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c12(x1, x2)) = x1 + x2   
POL(c5(x1)) = x1   
POL(f30_in(x1)) = 0   
POL(f30_out1(x1)) = 0   
POL(f44_in(x1)) = [2] + x1   
POL(f44_out1(x1, x2)) = x2   
POL(f49_in(x1)) = [1]   
POL(f49_out1(x1)) = x1   
POL(s(x1)) = 0   

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in([]) → f2_out1(0)
f2_in(.(z0, [])) → f2_out1(s(0))
f2_in(.(z0, .(z1, z2))) → U1(f28_in(z2), .(z0, .(z1, z2)))
U1(f28_out1(z0, z1, z2), .(z3, .(z4, z5))) → f2_out1(z2)
f30_in([]) → f30_out1(0)
f30_in(.(z0, z1)) → U2(f44_in(z1), .(z0, z1))
U2(f44_out1(z0, z1), .(z2, z3)) → f30_out1(z1)
f32_in(z0) → f32_out1(s(z0), s(s(z0)))
f49_in(z0) → f49_out1(s(z0))
f28_in(z0) → U3(f30_in(z0), z0)
U3(f30_out1(z0), z1) → U4(f32_in(z0), z1, z0)
U4(f32_out1(z0, z1), z2, z3) → f28_out1(z3, z0, z1)
f44_in(z0) → U5(f30_in(z0), z0)
U5(f30_out1(z0), z1) → U6(f49_in(z0), z1, z0)
U6(f49_out1(z0), z1, z2) → f44_out1(z2, z0)
Tuples:

F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F30_IN(.(z0, z1)) → c5(F44_IN(z1))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
U5'(f30_out1(z0), z1) → c
S tuples:

F30_IN(.(z0, z1)) → c5(F44_IN(z1))
U5'(f30_out1(z0), z1) → c
K tuples:

F2_IN(.(z0, .(z1, z2))) → c(F28_IN(z2))
F28_IN(z0) → c(U3'(f30_in(z0), z0))
F28_IN(z0) → c(F30_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c
U3'(f30_out1(z0), z1) → c
F44_IN(z0) → c12(U5'(f30_in(z0), z0), F30_IN(z0))
Defined Rule Symbols:

f2_in, U1, f30_in, U2, f32_in, f49_in, f28_in, U3, U4, f44_in, U5, U6

Defined Pair Symbols:

F44_IN, F2_IN, F28_IN, F30_IN, U3', U5'

Compound Symbols:

c12, c, c5, c