(0) Obligation:

Clauses:

flat([], []).
flat(.([], T), R) :- flat(T, R).
flat(.(.(H, T), TT), .(H, R)) :- flat(.(T, TT), R).

Query: flat(g,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([]) → f1_out1([])
f1_in(z0) → U1(f9_in(z0), z0)
U1(f9_out1(z0), z1) → f1_out1(z0)
U1(f9_out2(z0), z1) → f1_out1(z0)
f15_in(.([], z0)) → U2(f1_in(z0), .([], z0))
U2(f1_out1(z0), .([], z1)) → f15_out1(z0)
f16_in(.(.(z0, z1), z2)) → U3(f1_in(.(z1, z2)), .(.(z0, z1), z2))
U3(f1_out1(z0), .(.(z1, z2), z3)) → f16_out1(.(z1, z0))
f9_in(z0) → U4(f15_in(z0), f16_in(z0), z0)
U4(f15_out1(z0), z1, z2) → f9_out1(z0)
U4(z0, f16_out1(z1), z2) → f9_out2(z1)
Tuples:

F1_IN(z0) → c1(U1'(f9_in(z0), z0), F9_IN(z0))
F15_IN(.([], z0)) → c4(U2'(f1_in(z0), .([], z0)), F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(U3'(f1_in(.(z1, z2)), .(.(z0, z1), z2)), F1_IN(.(z1, z2)))
F9_IN(z0) → c8(U4'(f15_in(z0), f16_in(z0), z0), F15_IN(z0), F16_IN(z0))
S tuples:

F1_IN(z0) → c1(U1'(f9_in(z0), z0), F9_IN(z0))
F15_IN(.([], z0)) → c4(U2'(f1_in(z0), .([], z0)), F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(U3'(f1_in(.(z1, z2)), .(.(z0, z1), z2)), F1_IN(.(z1, z2)))
F9_IN(z0) → c8(U4'(f15_in(z0), f16_in(z0), z0), F15_IN(z0), F16_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f15_in, U2, f16_in, U3, f9_in, U4

Defined Pair Symbols:

F1_IN, F15_IN, F16_IN, F9_IN

Compound Symbols:

c1, c4, c6, c8

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

Removed 4 trailing tuple parts

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1([])
f1_in(z0) → U1(f9_in(z0), z0)
U1(f9_out1(z0), z1) → f1_out1(z0)
U1(f9_out2(z0), z1) → f1_out1(z0)
f15_in(.([], z0)) → U2(f1_in(z0), .([], z0))
U2(f1_out1(z0), .([], z1)) → f15_out1(z0)
f16_in(.(.(z0, z1), z2)) → U3(f1_in(.(z1, z2)), .(.(z0, z1), z2))
U3(f1_out1(z0), .(.(z1, z2), z3)) → f16_out1(.(z1, z0))
f9_in(z0) → U4(f15_in(z0), f16_in(z0), z0)
U4(f15_out1(z0), z1, z2) → f9_out1(z0)
U4(z0, f16_out1(z1), z2) → f9_out2(z1)
Tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(z0) → c8(F15_IN(z0), F16_IN(z0))
S tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(z0) → c8(F15_IN(z0), F16_IN(z0))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f15_in, U2, f16_in, U3, f9_in, U4

Defined Pair Symbols:

F1_IN, F15_IN, F16_IN, F9_IN

Compound Symbols:

c1, c4, c6, c8

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

Use forward instantiation to replace F9_IN(z0) → c8(F15_IN(z0), F16_IN(z0)) by

F9_IN(.([], y0)) → c8(F15_IN(.([], y0)), F16_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F15_IN(.(.(y0, y1), y2)), F16_IN(.(.(y0, y1), y2)))

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1([])
f1_in(z0) → U1(f9_in(z0), z0)
U1(f9_out1(z0), z1) → f1_out1(z0)
U1(f9_out2(z0), z1) → f1_out1(z0)
f15_in(.([], z0)) → U2(f1_in(z0), .([], z0))
U2(f1_out1(z0), .([], z1)) → f15_out1(z0)
f16_in(.(.(z0, z1), z2)) → U3(f1_in(.(z1, z2)), .(.(z0, z1), z2))
U3(f1_out1(z0), .(.(z1, z2), z3)) → f16_out1(.(z1, z0))
f9_in(z0) → U4(f15_in(z0), f16_in(z0), z0)
U4(f15_out1(z0), z1, z2) → f9_out1(z0)
U4(z0, f16_out1(z1), z2) → f9_out2(z1)
Tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)), F16_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F15_IN(.(.(y0, y1), y2)), F16_IN(.(.(y0, y1), y2)))
S tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)), F16_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F15_IN(.(.(y0, y1), y2)), F16_IN(.(.(y0, y1), y2)))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f15_in, U2, f16_in, U3, f9_in, U4

Defined Pair Symbols:

F1_IN, F15_IN, F16_IN, F9_IN

Compound Symbols:

c1, c4, c6, c8

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

Removed 2 trailing tuple parts

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1([])
f1_in(z0) → U1(f9_in(z0), z0)
U1(f9_out1(z0), z1) → f1_out1(z0)
U1(f9_out2(z0), z1) → f1_out1(z0)
f15_in(.([], z0)) → U2(f1_in(z0), .([], z0))
U2(f1_out1(z0), .([], z1)) → f15_out1(z0)
f16_in(.(.(z0, z1), z2)) → U3(f1_in(.(z1, z2)), .(.(z0, z1), z2))
U3(f1_out1(z0), .(.(z1, z2), z3)) → f16_out1(.(z1, z0))
f9_in(z0) → U4(f15_in(z0), f16_in(z0), z0)
U4(f15_out1(z0), z1, z2) → f9_out1(z0)
U4(z0, f16_out1(z1), z2) → f9_out2(z1)
Tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
S tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
K tuples:none
Defined Rule Symbols:

f1_in, U1, f15_in, U2, f16_in, U3, f9_in, U4

Defined Pair Symbols:

F1_IN, F15_IN, F16_IN, F9_IN

Compound Symbols:

c1, c4, c6, c8

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

F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
We considered the (Usable) Rules:none
And the Tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(.(x1, x2)) = [2] + x1 + x2   
POL(F15_IN(x1)) = [2]x1   
POL(F16_IN(x1)) = [2]x1   
POL(F1_IN(x1)) = [2]x1   
POL(F9_IN(x1)) = [2]x1   
POL([]) = 0   
POL(c1(x1)) = x1   
POL(c4(x1)) = x1   
POL(c6(x1)) = x1   
POL(c8(x1)) = x1   

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

f1_in([]) → f1_out1([])
f1_in(z0) → U1(f9_in(z0), z0)
U1(f9_out1(z0), z1) → f1_out1(z0)
U1(f9_out2(z0), z1) → f1_out1(z0)
f15_in(.([], z0)) → U2(f1_in(z0), .([], z0))
U2(f1_out1(z0), .([], z1)) → f15_out1(z0)
f16_in(.(.(z0, z1), z2)) → U3(f1_in(.(z1, z2)), .(.(z0, z1), z2))
U3(f1_out1(z0), .(.(z1, z2), z3)) → f16_out1(.(z1, z0))
f9_in(z0) → U4(f15_in(z0), f16_in(z0), z0)
U4(f15_out1(z0), z1, z2) → f9_out1(z0)
U4(z0, f16_out1(z1), z2) → f9_out2(z1)
Tuples:

F1_IN(z0) → c1(F9_IN(z0))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
S tuples:

F1_IN(z0) → c1(F9_IN(z0))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
K tuples:

F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
Defined Rule Symbols:

f1_in, U1, f15_in, U2, f16_in, U3, f9_in, U4

Defined Pair Symbols:

F1_IN, F15_IN, F16_IN, F9_IN

Compound Symbols:

c1, c4, c6, c8

(11) CdtKnowledgeProof (EQUIVALENT transformation)

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

F1_IN(z0) → c1(F9_IN(z0))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
F9_IN(.([], y0)) → c8(F15_IN(.([], y0)))
F9_IN(.(.(y0, y1), y2)) → c8(F16_IN(.(.(y0, y1), y2)))
F15_IN(.([], z0)) → c4(F1_IN(z0))
F16_IN(.(.(z0, z1), z2)) → c6(F1_IN(.(z1, z2)))
Now S is empty

(12) BOUNDS(O(1), O(1))

(13) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)

Built complexity over-approximating cdt problems from derivation graph.

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in([]) → f2_out1([])
f2_in(.([], [])) → f2_out1([])
f2_in(.([], z0)) → U1(f23_in(z0), .([], z0))
f2_in(.(.(z0, z1), z2)) → U2(f44_in(z1, z2), .(.(z0, z1), z2))
U1(f23_out1(z0), .([], z1)) → f2_out1(z0)
U1(f23_out2(z0), .([], z1)) → f2_out1(z0)
U1(f23_out4(z0), .([], z1)) → f2_out1(z0)
U2(f44_out1(z0), .(.(z1, z2), z3)) → f2_out1(.(z1, z0))
U2(f44_out2(z0), .(.(z1, z2), z3)) → f2_out1(.(z1, z0))
f29_in(.([], z0)) → U3(f2_in(z0), .([], z0))
U3(f2_out1(z0), .([], z1)) → f29_out1(z0)
f33_in(.(.(z0, z1), z2)) → U4(f2_in(.(z1, z2)), .(.(z0, z1), z2))
U4(f2_out1(z0), .(.(z1, z2), z3)) → f33_out1(.(z1, z0))
f45_in([], z0) → U5(f2_in(z0), [], z0)
U5(f2_out1(z0), [], z1) → f45_out1(z0)
f46_in(.(z0, z1), z2) → U6(f2_in(.(z1, z2)), .(z0, z1), z2)
U6(f2_out1(z0), .(z1, z2), z3) → f46_out1(.(z1, z0))
f23_in(z0) → U7(f29_in(z0), f30_in(z0), z0)
U7(f29_out1(z0), z1, z2) → f23_out1(z0)
U7(z0, f30_out1(z1), z2) → f23_out2(z1)
U7(z0, f30_out3(z1), z2) → f23_out4(z1)
f30_in(z0) → U8(f33_in(z0), f34_in(z0), z0)
U8(f33_out1(z0), z1, z2) → f30_out1(z0)
U8(z0, f34_out2(z1), z2) → f30_out3(z1)
f44_in(z0, z1) → U9(f45_in(z0, z1), f46_in(z0, z1), z0, z1)
U9(f45_out1(z0), z1, z2, z3) → f44_out1(z0)
U9(z0, f46_out1(z1), z2, z3) → f44_out2(z1)
Tuples:

F2_IN(.([], z0)) → c2(U1'(f23_in(z0), .([], z0)), F23_IN(z0))
F2_IN(.(.(z0, z1), z2)) → c3(U2'(f44_in(z1, z2), .(.(z0, z1), z2)), F44_IN(z1, z2))
F29_IN(.([], z0)) → c9(U3'(f2_in(z0), .([], z0)), F2_IN(z0))
F33_IN(.(.(z0, z1), z2)) → c11(U4'(f2_in(.(z1, z2)), .(.(z0, z1), z2)), F2_IN(.(z1, z2)))
F45_IN([], z0) → c13(U5'(f2_in(z0), [], z0), F2_IN(z0))
F46_IN(.(z0, z1), z2) → c15(U6'(f2_in(.(z1, z2)), .(z0, z1), z2), F2_IN(.(z1, z2)))
F23_IN(z0) → c17(U7'(f29_in(z0), f30_in(z0), z0), F29_IN(z0), F30_IN(z0))
F30_IN(z0) → c21(U8'(f33_in(z0), f34_in(z0), z0), F33_IN(z0))
F44_IN(z0, z1) → c24(U9'(f45_in(z0, z1), f46_in(z0, z1), z0, z1), F45_IN(z0, z1), F46_IN(z0, z1))
S tuples:

F2_IN(.([], z0)) → c2(U1'(f23_in(z0), .([], z0)), F23_IN(z0))
F2_IN(.(.(z0, z1), z2)) → c3(U2'(f44_in(z1, z2), .(.(z0, z1), z2)), F44_IN(z1, z2))
F29_IN(.([], z0)) → c9(U3'(f2_in(z0), .([], z0)), F2_IN(z0))
F33_IN(.(.(z0, z1), z2)) → c11(U4'(f2_in(.(z1, z2)), .(.(z0, z1), z2)), F2_IN(.(z1, z2)))
F45_IN([], z0) → c13(U5'(f2_in(z0), [], z0), F2_IN(z0))
F46_IN(.(z0, z1), z2) → c15(U6'(f2_in(.(z1, z2)), .(z0, z1), z2), F2_IN(.(z1, z2)))
F23_IN(z0) → c17(U7'(f29_in(z0), f30_in(z0), z0), F29_IN(z0), F30_IN(z0))
F30_IN(z0) → c21(U8'(f33_in(z0), f34_in(z0), z0), F33_IN(z0))
F44_IN(z0, z1) → c24(U9'(f45_in(z0, z1), f46_in(z0, z1), z0, z1), F45_IN(z0, z1), F46_IN(z0, z1))
K tuples:none
Defined Rule Symbols:

f2_in, U1, U2, f29_in, U3, f33_in, U4, f45_in, U5, f46_in, U6, f23_in, U7, f30_in, U8, f44_in, U9

Defined Pair Symbols:

F2_IN, F29_IN, F33_IN, F45_IN, F46_IN, F23_IN, F30_IN, F44_IN

Compound Symbols:

c2, c3, c9, c11, c13, c15, c17, c21, c24

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

Removed 9 trailing tuple parts

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in([]) → f2_out1([])
f2_in(.([], [])) → f2_out1([])
f2_in(.([], z0)) → U1(f23_in(z0), .([], z0))
f2_in(.(.(z0, z1), z2)) → U2(f44_in(z1, z2), .(.(z0, z1), z2))
U1(f23_out1(z0), .([], z1)) → f2_out1(z0)
U1(f23_out2(z0), .([], z1)) → f2_out1(z0)
U1(f23_out4(z0), .([], z1)) → f2_out1(z0)
U2(f44_out1(z0), .(.(z1, z2), z3)) → f2_out1(.(z1, z0))
U2(f44_out2(z0), .(.(z1, z2), z3)) → f2_out1(.(z1, z0))
f29_in(.([], z0)) → U3(f2_in(z0), .([], z0))
U3(f2_out1(z0), .([], z1)) → f29_out1(z0)
f33_in(.(.(z0, z1), z2)) → U4(f2_in(.(z1, z2)), .(.(z0, z1), z2))
U4(f2_out1(z0), .(.(z1, z2), z3)) → f33_out1(.(z1, z0))
f45_in([], z0) → U5(f2_in(z0), [], z0)
U5(f2_out1(z0), [], z1) → f45_out1(z0)
f46_in(.(z0, z1), z2) → U6(f2_in(.(z1, z2)), .(z0, z1), z2)
U6(f2_out1(z0), .(z1, z2), z3) → f46_out1(.(z1, z0))
f23_in(z0) → U7(f29_in(z0), f30_in(z0), z0)
U7(f29_out1(z0), z1, z2) → f23_out1(z0)
U7(z0, f30_out1(z1), z2) → f23_out2(z1)
U7(z0, f30_out3(z1), z2) → f23_out4(z1)
f30_in(z0) → U8(f33_in(z0), f34_in(z0), z0)
U8(f33_out1(z0), z1, z2) → f30_out1(z0)
U8(z0, f34_out2(z1), z2) → f30_out3(z1)
f44_in(z0, z1) → U9(f45_in(z0, z1), f46_in(z0, z1), z0, z1)
U9(f45_out1(z0), z1, z2, z3) → f44_out1(z0)
U9(z0, f46_out1(z1), z2, z3) → f44_out2(z1)
Tuples:

F2_IN(.([], z0)) → c2(F23_IN(z0))
F2_IN(.(.(z0, z1), z2)) → c3(F44_IN(z1, z2))
F29_IN(.([], z0)) → c9(F2_IN(z0))
F33_IN(.(.(z0, z1), z2)) → c11(F2_IN(.(z1, z2)))
F45_IN([], z0) → c13(F2_IN(z0))
F46_IN(.(z0, z1), z2) → c15(F2_IN(.(z1, z2)))
F23_IN(z0) → c17(F29_IN(z0), F30_IN(z0))
F30_IN(z0) → c21(F33_IN(z0))
F44_IN(z0, z1) → c24(F45_IN(z0, z1), F46_IN(z0, z1))
S tuples:

F2_IN(.([], z0)) → c2(F23_IN(z0))
F2_IN(.(.(z0, z1), z2)) → c3(F44_IN(z1, z2))
F29_IN(.([], z0)) → c9(F2_IN(z0))
F33_IN(.(.(z0, z1), z2)) → c11(F2_IN(.(z1, z2)))
F45_IN([], z0) → c13(F2_IN(z0))
F46_IN(.(z0, z1), z2) → c15(F2_IN(.(z1, z2)))
F23_IN(z0) → c17(F29_IN(z0), F30_IN(z0))
F30_IN(z0) → c21(F33_IN(z0))
F44_IN(z0, z1) → c24(F45_IN(z0, z1), F46_IN(z0, z1))
K tuples:none
Defined Rule Symbols:

f2_in, U1, U2, f29_in, U3, f33_in, U4, f45_in, U5, f46_in, U6, f23_in, U7, f30_in, U8, f44_in, U9

Defined Pair Symbols:

F2_IN, F29_IN, F33_IN, F45_IN, F46_IN, F23_IN, F30_IN, F44_IN

Compound Symbols:

c2, c3, c9, c11, c13, c15, c17, c21, c24

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

Use forward instantiation to replace F29_IN(.([], z0)) → c9(F2_IN(z0)) by

F29_IN(.([], .([], y0))) → c9(F2_IN(.([], y0)))
F29_IN(.([], .(.(y0, y1), y2))) → c9(F2_IN(.(.(y0, y1), y2)))

(18) Obligation:

Complexity Dependency Tuples Problem
Rules:

f2_in([]) → f2_out1([])
f2_in(.([], [])) → f2_out1([])
f2_in(.([], z0)) → U1(f23_in(z0), .([], z0))
f2_in(.(.(z0, z1), z2)) → U2(f44_in(z1, z2), .(.(z0, z1), z2))
U1(f23_out1(z0), .([], z1)) → f2_out1(z0)
U1(f23_out2(z0), .([], z1)) → f2_out1(z0)
U1(f23_out4(z0), .([], z1)) → f2_out1(z0)
U2(f44_out1(z0), .(.(z1, z2), z3)) → f2_out1(.(z1, z0))
U2(f44_out2(z0), .(.(z1, z2), z3)) → f2_out1(.(z1, z0))
f29_in(.([], z0)) → U3(f2_in(z0), .([], z0))
U3(f2_out1(z0), .([], z1)) → f29_out1(z0)
f33_in(.(.(z0, z1), z2)) → U4(f2_in(.(z1, z2)), .(.(z0, z1), z2))
U4(f2_out1(z0), .(.(z1, z2), z3)) → f33_out1(.(z1, z0))
f45_in([], z0) → U5(f2_in(z0), [], z0)
U5(f2_out1(z0), [], z1) → f45_out1(z0)
f46_in(.(z0, z1), z2) → U6(f2_in(.(z1, z2)), .(z0, z1), z2)
U6(f2_out1(z0), .(z1, z2), z3) → f46_out1(.(z1, z0))
f23_in(z0) → U7(f29_in(z0), f30_in(z0), z0)
U7(f29_out1(z0), z1, z2) → f23_out1(z0)
U7(z0, f30_out1(z1), z2) → f23_out2(z1)
U7(z0, f30_out3(z1), z2) → f23_out4(z1)
f30_in(z0) → U8(f33_in(z0), f34_in(z0), z0)
U8(f33_out1(z0), z1, z2) → f30_out1(z0)
U8(z0, f34_out2(z1), z2) → f30_out3(z1)
f44_in(z0, z1) → U9(f45_in(z0, z1), f46_in(z0, z1), z0, z1)
U9(f45_out1(z0), z1, z2, z3) → f44_out1(z0)
U9(z0, f46_out1(z1), z2, z3) → f44_out2(z1)
Tuples:

F2_IN(.([], z0)) → c2(F23_IN(z0))
F2_IN(.(.(z0, z1), z2)) → c3(F44_IN(z1, z2))
F33_IN(.(.(z0, z1), z2)) → c11(F2_IN(.(z1, z2)))
F45_IN([], z0) → c13(F2_IN(z0))
F46_IN(.(z0, z1), z2) → c15(F2_IN(.(z1, z2)))
F23_IN(z0) → c17(F29_IN(z0), F30_IN(z0))
F30_IN(z0) → c21(F33_IN(z0))
F44_IN(z0, z1) → c24(F45_IN(z0, z1), F46_IN(z0, z1))
F29_IN(.([], .([], y0))) → c9(F2_IN(.([], y0)))
F29_IN(.([], .(.(y0, y1), y2))) → c9(F2_IN(.(.(y0, y1), y2)))
S tuples:

F2_IN(.([], z0)) → c2(F23_IN(z0))
F2_IN(.(.(z0, z1), z2)) → c3(F44_IN(z1, z2))
F33_IN(.(.(z0, z1), z2)) → c11(F2_IN(.(z1, z2)))
F45_IN([], z0) → c13(F2_IN(z0))
F46_IN(.(z0, z1), z2) → c15(F2_IN(.(z1, z2)))
F23_IN(z0) → c17(F29_IN(z0), F30_IN(z0))
F30_IN(z0) → c21(F33_IN(z0))
F44_IN(z0, z1) → c24(F45_IN(z0, z1), F46_IN(z0, z1))
F29_IN(.([], .([], y0))) → c9(F2_IN(.([], y0)))
F29_IN(.([], .(.(y0, y1), y2))) → c9(F2_IN(.(.(y0, y1), y2)))
K tuples:none
Defined Rule Symbols:

f2_in, U1, U2, f29_in, U3, f33_in, U4, f45_in, U5, f46_in, U6, f23_in, U7, f30_in, U8, f44_in, U9

Defined Pair Symbols:

F2_IN, F33_IN, F45_IN, F46_IN, F23_IN, F30_IN, F44_IN, F29_IN

Compound Symbols:

c2, c3, c11, c13, c15, c17, c21, c24, c9