(0) Obligation:

Clauses:

f(A, [], RES) :- g(A, [], RES).
f(.(A, As), .(B, Bs), RES) :- f(.(B, .(A, As)), Bs, RES).
g([], RES, RES).
g(.(C, Cs), D, RES) :- g(Cs, .(C, D), RES).

Query: f(g,g,a)

(1) LPReorderTransformerProof (EQUIVALENT transformation)

Reordered facts before rules in definite LP [PROLOG].

(2) Obligation:

Clauses:

g([], RES, RES).
f(A, [], RES) :- g(A, [], RES).
f(.(A, As), .(B, Bs), RES) :- f(.(B, .(A, As)), Bs, RES).
g(.(C, Cs), D, RES) :- g(Cs, .(C, D), RES).

Query: f(g,g,a)

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

Built complexity over-approximating cdt problems from derivation graph.

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(z0, z1) → U1(f3_in(z0, z1), z0, z1)
U1(f3_out1(z0), z1, z2) → f2_out1(z0)
U1(f3_out2(z0), z1, z2) → f2_out1(z0)
f127_in([], z0, z1) → f127_out1(.(z0, z1))
f127_in(.(z0, z1), z2, z3) → U2(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U2(f127_out1(z0), .(z1, z2), z3, z4) → f127_out1(z0)
f5_in([], []) → f5_out1([])
f5_in(.(z0, []), []) → f5_out1(.(z0, []))
f5_in(.(z0, .(z1, [])), []) → f5_out1(.(z1, .(z0, [])))
f5_in(.(z0, .(z1, .(z2, []))), []) → f5_out1(.(z2, .(z1, .(z0, []))))
f5_in(.(z0, .(z1, .(z2, .(z3, [])))), []) → f5_out1(.(z3, .(z2, .(z1, .(z0, [])))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), []) → f5_out1(.(z4, .(z3, .(z2, .(z1, .(z0, []))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), []) → f5_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, []))))))), []) → f5_out1(.(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, []))))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → U3(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), [])
U3(f127_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, .(z8, z9)))))))), []) → f5_out1(z0)
f6_in(.(z0, z1), .(z2, z3)) → U4(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3))
U4(f2_out1(z0), .(z1, z2), .(z3, z4)) → f6_out1(z0)
f3_in(z0, z1) → U5(f5_in(z0, z1), f6_in(z0, z1), z0, z1)
U5(f5_out1(z0), z1, z2, z3) → f3_out1(z0)
U5(z0, f6_out1(z1), z2, z3) → f3_out2(z1)
Tuples:

F2_IN(z0, z1) → c(U1'(f3_in(z0, z1), z0, z1), F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(U2'(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F127_IN(z1, z0, .(z2, z3)))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c14(U3'(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []), F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F6_IN(.(z0, z1), .(z2, z3)) → c16(U4'(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3)), F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(U5'(f5_in(z0, z1), f6_in(z0, z1), z0, z1), F5_IN(z0, z1), F6_IN(z0, z1))
S tuples:

F2_IN(z0, z1) → c(U1'(f3_in(z0, z1), z0, z1), F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(U2'(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F127_IN(z1, z0, .(z2, z3)))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c14(U3'(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []), F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F6_IN(.(z0, z1), .(z2, z3)) → c16(U4'(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3)), F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(U5'(f5_in(z0, z1), f6_in(z0, z1), z0, z1), F5_IN(z0, z1), F6_IN(z0, z1))
K tuples:none
Defined Rule Symbols:

f2_in, U1, f127_in, U2, f5_in, U3, f6_in, U4, f3_in, U5

Defined Pair Symbols:

F2_IN, F127_IN, F5_IN, F6_IN, F3_IN

Compound Symbols:

c, c4, c14, c16, c18

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

Split RHS of tuples not part of any SCC

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(z0, z1) → U1(f3_in(z0, z1), z0, z1)
U1(f3_out1(z0), z1, z2) → f2_out1(z0)
U1(f3_out2(z0), z1, z2) → f2_out1(z0)
f127_in([], z0, z1) → f127_out1(.(z0, z1))
f127_in(.(z0, z1), z2, z3) → U2(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U2(f127_out1(z0), .(z1, z2), z3, z4) → f127_out1(z0)
f5_in([], []) → f5_out1([])
f5_in(.(z0, []), []) → f5_out1(.(z0, []))
f5_in(.(z0, .(z1, [])), []) → f5_out1(.(z1, .(z0, [])))
f5_in(.(z0, .(z1, .(z2, []))), []) → f5_out1(.(z2, .(z1, .(z0, []))))
f5_in(.(z0, .(z1, .(z2, .(z3, [])))), []) → f5_out1(.(z3, .(z2, .(z1, .(z0, [])))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), []) → f5_out1(.(z4, .(z3, .(z2, .(z1, .(z0, []))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), []) → f5_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, []))))))), []) → f5_out1(.(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, []))))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → U3(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), [])
U3(f127_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, .(z8, z9)))))))), []) → f5_out1(z0)
f6_in(.(z0, z1), .(z2, z3)) → U4(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3))
U4(f2_out1(z0), .(z1, z2), .(z3, z4)) → f6_out1(z0)
f3_in(z0, z1) → U5(f5_in(z0, z1), f6_in(z0, z1), z0, z1)
U5(f5_out1(z0), z1, z2, z3) → f3_out1(z0)
U5(z0, f6_out1(z1), z2, z3) → f3_out2(z1)
Tuples:

F2_IN(z0, z1) → c(U1'(f3_in(z0, z1), z0, z1), F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(U2'(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(U4'(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3)), F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(U5'(f5_in(z0, z1), f6_in(z0, z1), z0, z1), F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(U3'(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
S tuples:

F2_IN(z0, z1) → c(U1'(f3_in(z0, z1), z0, z1), F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(U2'(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(U4'(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3)), F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(U5'(f5_in(z0, z1), f6_in(z0, z1), z0, z1), F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(U3'(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
K tuples:none
Defined Rule Symbols:

f2_in, U1, f127_in, U2, f5_in, U3, f6_in, U4, f3_in, U5

Defined Pair Symbols:

F2_IN, F127_IN, F6_IN, F3_IN, F5_IN

Compound Symbols:

c, c4, c16, c18, c1

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

Removed 5 trailing tuple parts

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(z0, z1) → U1(f3_in(z0, z1), z0, z1)
U1(f3_out1(z0), z1, z2) → f2_out1(z0)
U1(f3_out2(z0), z1, z2) → f2_out1(z0)
f127_in([], z0, z1) → f127_out1(.(z0, z1))
f127_in(.(z0, z1), z2, z3) → U2(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U2(f127_out1(z0), .(z1, z2), z3, z4) → f127_out1(z0)
f5_in([], []) → f5_out1([])
f5_in(.(z0, []), []) → f5_out1(.(z0, []))
f5_in(.(z0, .(z1, [])), []) → f5_out1(.(z1, .(z0, [])))
f5_in(.(z0, .(z1, .(z2, []))), []) → f5_out1(.(z2, .(z1, .(z0, []))))
f5_in(.(z0, .(z1, .(z2, .(z3, [])))), []) → f5_out1(.(z3, .(z2, .(z1, .(z0, [])))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), []) → f5_out1(.(z4, .(z3, .(z2, .(z1, .(z0, []))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), []) → f5_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, []))))))), []) → f5_out1(.(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, []))))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → U3(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), [])
U3(f127_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, .(z8, z9)))))))), []) → f5_out1(z0)
f6_in(.(z0, z1), .(z2, z3)) → U4(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3))
U4(f2_out1(z0), .(z1, z2), .(z3, z4)) → f6_out1(z0)
f3_in(z0, z1) → U5(f5_in(z0, z1), f6_in(z0, z1), z0, z1)
U5(f5_out1(z0), z1, z2, z3) → f3_out1(z0)
U5(z0, f6_out1(z1), z2, z3) → f3_out2(z1)
Tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
S tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
K tuples:none
Defined Rule Symbols:

f2_in, U1, f127_in, U2, f5_in, U3, f6_in, U4, f3_in, U5

Defined Pair Symbols:

F5_IN, F2_IN, F127_IN, F6_IN, F3_IN

Compound Symbols:

c1, c, c4, c16, c18, c1

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

F2_IN(z0, z1) → c(F3_IN(z0, z1))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
We considered the (Usable) Rules:none
And the Tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = [2] + x2   
POL(F127_IN(x1, x2, x3)) = 0   
POL(F2_IN(x1, x2)) = [1] + x2   
POL(F3_IN(x1, x2)) = x2   
POL(F5_IN(x1, x2)) = 0   
POL(F6_IN(x1, x2)) = x2   
POL([]) = 0   
POL(c(x1)) = x1   
POL(c1) = 0   
POL(c1(x1)) = x1   
POL(c16(x1)) = x1   
POL(c18(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(z0, z1) → U1(f3_in(z0, z1), z0, z1)
U1(f3_out1(z0), z1, z2) → f2_out1(z0)
U1(f3_out2(z0), z1, z2) → f2_out1(z0)
f127_in([], z0, z1) → f127_out1(.(z0, z1))
f127_in(.(z0, z1), z2, z3) → U2(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U2(f127_out1(z0), .(z1, z2), z3, z4) → f127_out1(z0)
f5_in([], []) → f5_out1([])
f5_in(.(z0, []), []) → f5_out1(.(z0, []))
f5_in(.(z0, .(z1, [])), []) → f5_out1(.(z1, .(z0, [])))
f5_in(.(z0, .(z1, .(z2, []))), []) → f5_out1(.(z2, .(z1, .(z0, []))))
f5_in(.(z0, .(z1, .(z2, .(z3, [])))), []) → f5_out1(.(z3, .(z2, .(z1, .(z0, [])))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), []) → f5_out1(.(z4, .(z3, .(z2, .(z1, .(z0, []))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), []) → f5_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, []))))))), []) → f5_out1(.(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, []))))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → U3(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), [])
U3(f127_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, .(z8, z9)))))))), []) → f5_out1(z0)
f6_in(.(z0, z1), .(z2, z3)) → U4(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3))
U4(f2_out1(z0), .(z1, z2), .(z3, z4)) → f6_out1(z0)
f3_in(z0, z1) → U5(f5_in(z0, z1), f6_in(z0, z1), z0, z1)
U5(f5_out1(z0), z1, z2, z3) → f3_out1(z0)
U5(z0, f6_out1(z1), z2, z3) → f3_out2(z1)
Tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
S tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
K tuples:

F2_IN(z0, z1) → c(F3_IN(z0, z1))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
Defined Rule Symbols:

f2_in, U1, f127_in, U2, f5_in, U3, f6_in, U4, f3_in, U5

Defined Pair Symbols:

F5_IN, F2_IN, F127_IN, F6_IN, F3_IN

Compound Symbols:

c1, c, c4, c16, c18, c1

(11) CdtKnowledgeProof (EQUIVALENT transformation)

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

F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(z0, z1) → U1(f3_in(z0, z1), z0, z1)
U1(f3_out1(z0), z1, z2) → f2_out1(z0)
U1(f3_out2(z0), z1, z2) → f2_out1(z0)
f127_in([], z0, z1) → f127_out1(.(z0, z1))
f127_in(.(z0, z1), z2, z3) → U2(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U2(f127_out1(z0), .(z1, z2), z3, z4) → f127_out1(z0)
f5_in([], []) → f5_out1([])
f5_in(.(z0, []), []) → f5_out1(.(z0, []))
f5_in(.(z0, .(z1, [])), []) → f5_out1(.(z1, .(z0, [])))
f5_in(.(z0, .(z1, .(z2, []))), []) → f5_out1(.(z2, .(z1, .(z0, []))))
f5_in(.(z0, .(z1, .(z2, .(z3, [])))), []) → f5_out1(.(z3, .(z2, .(z1, .(z0, [])))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), []) → f5_out1(.(z4, .(z3, .(z2, .(z1, .(z0, []))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), []) → f5_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, []))))))), []) → f5_out1(.(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, []))))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → U3(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), [])
U3(f127_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, .(z8, z9)))))))), []) → f5_out1(z0)
f6_in(.(z0, z1), .(z2, z3)) → U4(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3))
U4(f2_out1(z0), .(z1, z2), .(z3, z4)) → f6_out1(z0)
f3_in(z0, z1) → U5(f5_in(z0, z1), f6_in(z0, z1), z0, z1)
U5(f5_out1(z0), z1, z2, z3) → f3_out1(z0)
U5(z0, f6_out1(z1), z2, z3) → f3_out2(z1)
Tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
S tuples:

F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
K tuples:

F2_IN(z0, z1) → c(F3_IN(z0, z1))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
Defined Rule Symbols:

f2_in, U1, f127_in, U2, f5_in, U3, f6_in, U4, f3_in, U5

Defined Pair Symbols:

F5_IN, F2_IN, F127_IN, F6_IN, F3_IN

Compound Symbols:

c1, c, c4, c16, c18, c1

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

F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
We considered the (Usable) Rules:none
And the Tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = [1] + x2   
POL(F127_IN(x1, x2, x3)) = x1   
POL(F2_IN(x1, x2)) = x1 + x2 + x22 + x1·x2   
POL(F3_IN(x1, x2)) = x1 + x2 + x22 + x1·x2   
POL(F5_IN(x1, x2)) = x1   
POL(F6_IN(x1, x2)) = x2 + x22 + x1·x2   
POL([]) = 0   
POL(c(x1)) = x1   
POL(c1) = 0   
POL(c1(x1)) = x1   
POL(c16(x1)) = x1   
POL(c18(x1, x2)) = x1 + x2   
POL(c4(x1)) = x1   

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in(z0, z1) → U1(f3_in(z0, z1), z0, z1)
U1(f3_out1(z0), z1, z2) → f2_out1(z0)
U1(f3_out2(z0), z1, z2) → f2_out1(z0)
f127_in([], z0, z1) → f127_out1(.(z0, z1))
f127_in(.(z0, z1), z2, z3) → U2(f127_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U2(f127_out1(z0), .(z1, z2), z3, z4) → f127_out1(z0)
f5_in([], []) → f5_out1([])
f5_in(.(z0, []), []) → f5_out1(.(z0, []))
f5_in(.(z0, .(z1, [])), []) → f5_out1(.(z1, .(z0, [])))
f5_in(.(z0, .(z1, .(z2, []))), []) → f5_out1(.(z2, .(z1, .(z0, []))))
f5_in(.(z0, .(z1, .(z2, .(z3, [])))), []) → f5_out1(.(z3, .(z2, .(z1, .(z0, [])))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), []) → f5_out1(.(z4, .(z3, .(z2, .(z1, .(z0, []))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), []) → f5_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, []))))))), []) → f5_out1(.(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, []))))))))
f5_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → U3(f127_in(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), [])
U3(f127_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, .(z8, z9)))))))), []) → f5_out1(z0)
f6_in(.(z0, z1), .(z2, z3)) → U4(f2_in(.(z2, .(z0, z1)), z3), .(z0, z1), .(z2, z3))
U4(f2_out1(z0), .(z1, z2), .(z3, z4)) → f6_out1(z0)
f3_in(z0, z1) → U5(f5_in(z0, z1), f6_in(z0, z1), z0, z1)
U5(f5_out1(z0), z1, z2, z3) → f3_out1(z0)
U5(z0, f6_out1(z1), z2, z3) → f3_out2(z1)
Tuples:

F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F2_IN(z0, z1) → c(F3_IN(z0, z1))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
S tuples:none
K tuples:

F2_IN(z0, z1) → c(F3_IN(z0, z1))
F6_IN(.(z0, z1), .(z2, z3)) → c16(F2_IN(.(z2, .(z0, z1)), z3))
F3_IN(z0, z1) → c18(F5_IN(z0, z1), F6_IN(z0, z1))
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1
F5_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8)))))))), []) → c1(F127_IN(z8, z7, .(z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, [])))))))))
F127_IN(.(z0, z1), z2, z3) → c4(F127_IN(z1, z0, .(z2, z3)))
Defined Rule Symbols:

f2_in, U1, f127_in, U2, f5_in, U3, f6_in, U4, f3_in, U5

Defined Pair Symbols:

F5_IN, F2_IN, F127_IN, F6_IN, F3_IN

Compound Symbols:

c1, c, c4, c16, c18, c1

(15) SIsEmptyProof (EQUIVALENT transformation)

The set S is empty

(16) BOUNDS(O(1), O(1))

(17) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)

Built complexity over-approximating cdt problems from derivation graph.

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(z0, []) → c1(U1'(f13_in(z0), z0, []), F13_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(U2'(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3)), F149_IN(z2, z0, z1, z3))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c14(U3'(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8), F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F128_IN(.(z0, z1), z2, z3) → c17(U4'(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F128_IN(z1, z0, .(z2, z3)))
F18_IN(.(z0, z1)) → c19(U5'(f24_in(z1, z0), .(z0, z1)), F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c21(U6'(f24_in(.(z1, z2), z0), z0, z1, z2, []), F24_IN(.(z1, z2), z0))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(U7'(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4)), F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F13_IN(z0) → c25(U8'(f18_in(z0), f19_in(z0), z0), F18_IN(z0))
F149_IN(z0, z1, z2, z3) → c28(U9'(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3), F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
S tuples:

F1_IN(z0, []) → c1(U1'(f13_in(z0), z0, []), F13_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(U2'(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3)), F149_IN(z2, z0, z1, z3))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c14(U3'(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8), F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F128_IN(.(z0, z1), z2, z3) → c17(U4'(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F128_IN(z1, z0, .(z2, z3)))
F18_IN(.(z0, z1)) → c19(U5'(f24_in(z1, z0), .(z0, z1)), F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c21(U6'(f24_in(.(z1, z2), z0), z0, z1, z2, []), F24_IN(.(z1, z2), z0))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(U7'(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4)), F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F13_IN(z0) → c25(U8'(f18_in(z0), f19_in(z0), z0), F18_IN(z0))
F149_IN(z0, z1, z2, z3) → c28(U9'(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3), F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
K tuples:none
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F24_IN, F128_IN, F18_IN, F150_IN, F151_IN, F13_IN, F149_IN

Compound Symbols:

c1, c2, c14, c17, c19, c21, c23, c25, c28

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

Split RHS of tuples not part of any SCC

(20) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(.(z0, z1), .(z2, z3)) → c2(U2'(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3)), F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(U4'(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(U7'(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4)), F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(U9'(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3), F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c(U1'(f13_in(z0), z0, []))
F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(U3'(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(U5'(f24_in(z1, z0), .(z0, z1)))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(U6'(f24_in(.(z1, z2), z0), z0, z1, z2, []))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(U8'(f18_in(z0), f19_in(z0), z0))
F13_IN(z0) → c(F18_IN(z0))
S tuples:

F1_IN(.(z0, z1), .(z2, z3)) → c2(U2'(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3)), F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(U4'(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3), F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(U7'(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4)), F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(U9'(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3), F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c(U1'(f13_in(z0), z0, []))
F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(U3'(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(U5'(f24_in(z1, z0), .(z0, z1)))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(U6'(f24_in(.(z1, z2), z0), z0, z1, z2, []))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(U8'(f18_in(z0), f19_in(z0), z0))
F13_IN(z0) → c(F18_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F128_IN, F151_IN, F149_IN, F24_IN, F18_IN, F150_IN, F13_IN

Compound Symbols:

c2, c17, c23, c28, c

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

Removed 9 trailing tuple parts

(22) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
S tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
K tuples:none
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F24_IN, F18_IN, F150_IN, F13_IN, F128_IN, F151_IN, F149_IN

Compound Symbols:

c, c2, c17, c23, c28, 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.

F13_IN(z0) → c(F18_IN(z0))
F1_IN(z0, []) → c
F13_IN(z0) → c
We considered the (Usable) Rules:none
And the Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = 0   
POL(F128_IN(x1, x2, x3)) = [2]x3   
POL(F13_IN(x1)) = [1] + x1   
POL(F149_IN(x1, x2, x3, x4)) = [1]   
POL(F150_IN(x1, x2, x3, x4)) = 0   
POL(F151_IN(x1, x2, x3, x4)) = [1]   
POL(F18_IN(x1)) = x1   
POL(F1_IN(x1, x2)) = [1] + x1   
POL(F24_IN(x1, x2)) = 0   
POL([]) = 0   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c17(x1)) = x1   
POL(c2(x1)) = x1   
POL(c23(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   

(24) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
S tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
K tuples:

F13_IN(z0) → c(F18_IN(z0))
F1_IN(z0, []) → c
F13_IN(z0) → c
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F24_IN, F18_IN, F150_IN, F13_IN, F128_IN, F151_IN, F149_IN

Compound Symbols:

c, c2, c17, c23, c28, c

(25) CdtKnowledgeProof (EQUIVALENT transformation)

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

F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F18_IN(.(z0, z1)) → c

(26) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
S tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F150_IN(z0, z1, z2, []) → c
K tuples:

F13_IN(z0) → c(F18_IN(z0))
F1_IN(z0, []) → c
F13_IN(z0) → c
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F18_IN(.(z0, z1)) → c
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F24_IN, F18_IN, F150_IN, F13_IN, F128_IN, F151_IN, F149_IN

Compound Symbols:

c, c2, c17, c23, c28, c

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

F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F150_IN(z0, z1, z2, []) → c
We considered the (Usable) Rules:none
And the Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = [2] + x2   
POL(F128_IN(x1, x2, x3)) = 0   
POL(F13_IN(x1)) = [2]   
POL(F149_IN(x1, x2, x3, x4)) = [1] + x4   
POL(F150_IN(x1, x2, x3, x4)) = [1]   
POL(F151_IN(x1, x2, x3, x4)) = x4   
POL(F18_IN(x1)) = [2]   
POL(F1_IN(x1, x2)) = x2   
POL(F24_IN(x1, x2)) = [1]   
POL([]) = [2]   
POL(c) = 0   
POL(c(x1)) = x1   
POL(c17(x1)) = x1   
POL(c2(x1)) = x1   
POL(c23(x1)) = x1   
POL(c28(x1, x2)) = x1 + x2   

(28) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
S tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
K tuples:

F13_IN(z0) → c(F18_IN(z0))
F1_IN(z0, []) → c
F13_IN(z0) → c
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F18_IN(.(z0, z1)) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F150_IN(z0, z1, z2, []) → c
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F24_IN, F18_IN, F150_IN, F13_IN, F128_IN, F151_IN, F149_IN

Compound Symbols:

c, c2, c17, c23, c28, c

(29) CdtKnowledgeProof (EQUIVALENT transformation)

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

F1_IN(z0, []) → c(F13_IN(z0))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F13_IN(z0) → c(F18_IN(z0))
F13_IN(z0) → c
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F150_IN(z0, z1, z2, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c

(30) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([], []) → f1_out1([])
f1_in(z0, []) → U1(f13_in(z0), z0, [])
f1_in(.(z0, z1), .(z2, z3)) → U2(f149_in(z2, z0, z1, z3), .(z0, z1), .(z2, z3))
U1(f13_out1(z0), z1, []) → f1_out1(z0)
U1(f13_out3(z0), z1, []) → f1_out1(z0)
U2(f149_out1(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
U2(f149_out2(z0), .(z1, z2), .(z3, z4)) → f1_out1(z0)
f24_in([], z0) → f24_out1(.(z0, []))
f24_in(.(z0, []), z1) → f24_out1(.(z0, .(z1, [])))
f24_in(.(z0, .(z1, [])), z2) → f24_out1(.(z1, .(z0, .(z2, []))))
f24_in(.(z0, .(z1, .(z2, []))), z3) → f24_out1(.(z2, .(z1, .(z0, .(z3, [])))))
f24_in(.(z0, .(z1, .(z2, .(z3, [])))), z4) → f24_out1(.(z3, .(z2, .(z1, .(z0, .(z4, []))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, []))))), z5) → f24_out1(.(z4, .(z3, .(z2, .(z1, .(z0, .(z5, [])))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, [])))))), z6) → f24_out1(.(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z6, []))))))))
f24_in(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → U3(f128_in(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))), .(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8)
U3(f128_out1(z0), .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, .(z7, z8))))))), z9) → f24_out1(z0)
f128_in([], z0, z1) → f128_out1(.(z0, z1))
f128_in(.(z0, z1), z2, z3) → U4(f128_in(z1, z0, .(z2, z3)), .(z0, z1), z2, z3)
U4(f128_out1(z0), .(z1, z2), z3, z4) → f128_out1(z0)
f18_in(.(z0, z1)) → U5(f24_in(z1, z0), .(z0, z1))
U5(f24_out1(z0), .(z1, z2)) → f18_out1(z0)
f150_in(z0, z1, z2, []) → U6(f24_in(.(z1, z2), z0), z0, z1, z2, [])
U6(f24_out1(z0), z1, z2, z3, []) → f150_out1(z0)
f151_in(z0, z1, z2, .(z3, z4)) → U7(f1_in(.(z3, .(z0, .(z1, z2))), z4), z0, z1, z2, .(z3, z4))
U7(f1_out1(z0), z1, z2, z3, .(z4, z5)) → f151_out1(z0)
f13_in(z0) → U8(f18_in(z0), f19_in(z0), z0)
U8(f18_out1(z0), z1, z2) → f13_out1(z0)
U8(z0, f19_out2(z1), z2) → f13_out3(z1)
f149_in(z0, z1, z2, z3) → U9(f150_in(z0, z1, z2, z3), f151_in(z0, z1, z2, z3), z0, z1, z2, z3)
U9(f150_out1(z0), z1, z2, z3, z4, z5) → f149_out1(z0)
U9(z0, f151_out1(z1), z2, z3, z4, z5) → f149_out2(z1)
Tuples:

F1_IN(z0, []) → c(F13_IN(z0))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
F13_IN(z0) → c(F18_IN(z0))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F1_IN(z0, []) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F18_IN(.(z0, z1)) → c
F150_IN(z0, z1, z2, []) → c
F13_IN(z0) → c
S tuples:

F128_IN(.(z0, z1), z2, z3) → c17(F128_IN(z1, z0, .(z2, z3)))
K tuples:

F13_IN(z0) → c(F18_IN(z0))
F1_IN(z0, []) → c
F13_IN(z0) → c
F18_IN(.(z0, z1)) → c(F24_IN(z1, z0))
F18_IN(.(z0, z1)) → c
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c(F128_IN(z7, z6, .(z5, .(z4, .(z3, .(z2, .(z1, .(z0, .(z8, [])))))))))
F1_IN(.(z0, z1), .(z2, z3)) → c2(F149_IN(z2, z0, z1, z3))
F151_IN(z0, z1, z2, .(z3, z4)) → c23(F1_IN(.(z3, .(z0, .(z1, z2))), z4))
F24_IN(.(z0, .(z1, .(z2, .(z3, .(z4, .(z5, .(z6, z7))))))), z8) → c
F150_IN(z0, z1, z2, []) → c
F1_IN(z0, []) → c(F13_IN(z0))
F149_IN(z0, z1, z2, z3) → c28(F150_IN(z0, z1, z2, z3), F151_IN(z0, z1, z2, z3))
F150_IN(z0, z1, z2, []) → c(F24_IN(.(z1, z2), z0))
Defined Rule Symbols:

f1_in, U1, U2, f24_in, U3, f128_in, U4, f18_in, U5, f150_in, U6, f151_in, U7, f13_in, U8, f149_in, U9

Defined Pair Symbols:

F1_IN, F24_IN, F18_IN, F150_IN, F13_IN, F128_IN, F151_IN, F149_IN

Compound Symbols:

c, c2, c17, c23, c28, c