(0) Obligation:
Clauses:
ordered([]) :- !.
ordered(.(X1, [])) :- !.
ordered(Xs) :- ','(head(Xs, X), ','(tail(Xs, Ys), ','(head(Ys, Y), ','(tail(Ys, Zs), ','(less(X, s(Y)), ordered(.(Y, Zs))))))).
head([], X2).
head(.(X, X3), X).
tail([], []).
tail(.(X4, Xs), Xs).
less(0, Y) :- ','(!, eq(Y, s(X5))).
less(X, Y) :- ','(p(X, Px), ','(p(Y, Py), less(Px, Py))).
p(0, 0).
p(s(X), X).
eq(X, X).
Query: ordered(g)
(1) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)
Built complexity over-approximating cdt problems from derivation graph.
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in([]) → f2_out1
f2_in(.(z0, [])) → f2_out1
f2_in(.(z0, .(z1, z2))) → U1(f50_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f50_out1, .(z0, .(z1, z2))) → f2_out1
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
U5(f85_out1, s(z0), z1) → f53_out1
f50_in(z0, z1, z2) → U6(f53_in(z0, z1), z0, z1, z2)
U6(f53_out1, z0, z1, z2) → U7(f2_in(.(z1, z2)), z0, z1, z2)
U7(f2_out1, z0, z1, z2) → f50_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U8(f119_out1, z0, z1) → f115_out1
U8(z0, f120_out1(z1), z2) → f115_out2(z1)
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U9(f119_out1, z0, z1) → f148_out1
U9(z0, f150_out1(z1), z2) → f148_out2(z1)
Tuples:
F2_IN(.(z0, .(z1, z2))) → c2(U1'(f50_in(z0, z1, z2), .(z0, .(z1, z2))), F50_IN(z0, z1, z2))
F85_IN(s(z0), 0) → c5(U2'(f115_in(z0), s(z0), 0), F115_IN(z0))
F85_IN(s(z0), s(z1)) → c6(U3'(f85_in(z0, z1), s(z0), s(z1)), F85_IN(z0, z1))
F119_IN(s(z0)) → c10(U4'(f148_in(z0), s(z0)), F148_IN(z0))
F53_IN(s(z0), z1) → c14(U5'(f85_in(z0, z1), s(z0), z1), F85_IN(z0, z1))
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
U6'(f53_out1, z0, z1, z2) → c17(U7'(f2_in(.(z1, z2)), z0, z1, z2), F2_IN(.(z1, z2)))
F115_IN(z0) → c19(U8'(f119_in(z0), f120_in(z0), z0), F119_IN(z0))
F148_IN(z0) → c22(U9'(f119_in(z0), f150_in(z0), z0), F119_IN(z0))
S tuples:
F2_IN(.(z0, .(z1, z2))) → c2(U1'(f50_in(z0, z1, z2), .(z0, .(z1, z2))), F50_IN(z0, z1, z2))
F85_IN(s(z0), 0) → c5(U2'(f115_in(z0), s(z0), 0), F115_IN(z0))
F85_IN(s(z0), s(z1)) → c6(U3'(f85_in(z0, z1), s(z0), s(z1)), F85_IN(z0, z1))
F119_IN(s(z0)) → c10(U4'(f148_in(z0), s(z0)), F148_IN(z0))
F53_IN(s(z0), z1) → c14(U5'(f85_in(z0, z1), s(z0), z1), F85_IN(z0, z1))
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
U6'(f53_out1, z0, z1, z2) → c17(U7'(f2_in(.(z1, z2)), z0, z1, z2), F2_IN(.(z1, z2)))
F115_IN(z0) → c19(U8'(f119_in(z0), f120_in(z0), z0), F119_IN(z0))
F148_IN(z0) → c22(U9'(f119_in(z0), f150_in(z0), z0), F119_IN(z0))
K tuples:none
Defined Rule Symbols:
f2_in, U1, f85_in, U2, U3, f119_in, U4, f53_in, U5, f50_in, U6, U7, f115_in, U8, f148_in, U9
Defined Pair Symbols:
F2_IN, F85_IN, F119_IN, F53_IN, F50_IN, U6', F115_IN, F148_IN
Compound Symbols:
c2, c5, c6, c10, c14, c16, c17, c19, c22
(3) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)
Split RHS of tuples not part of any SCC
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in([]) → f2_out1
f2_in(.(z0, [])) → f2_out1
f2_in(.(z0, .(z1, z2))) → U1(f50_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f50_out1, .(z0, .(z1, z2))) → f2_out1
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
U5(f85_out1, s(z0), z1) → f53_out1
f50_in(z0, z1, z2) → U6(f53_in(z0, z1), z0, z1, z2)
U6(f53_out1, z0, z1, z2) → U7(f2_in(.(z1, z2)), z0, z1, z2)
U7(f2_out1, z0, z1, z2) → f50_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U8(f119_out1, z0, z1) → f115_out1
U8(z0, f120_out1(z1), z2) → f115_out2(z1)
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U9(f119_out1, z0, z1) → f148_out1
U9(z0, f150_out1(z1), z2) → f148_out2(z1)
Tuples:
F2_IN(.(z0, .(z1, z2))) → c2(U1'(f50_in(z0, z1, z2), .(z0, .(z1, z2))), F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(U3'(f85_in(z0, z1), s(z0), s(z1)), F85_IN(z0, z1))
F119_IN(s(z0)) → c10(U4'(f148_in(z0), s(z0)), F148_IN(z0))
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
U6'(f53_out1, z0, z1, z2) → c17(U7'(f2_in(.(z1, z2)), z0, z1, z2), F2_IN(.(z1, z2)))
F148_IN(z0) → c22(U9'(f119_in(z0), f150_in(z0), z0), F119_IN(z0))
F85_IN(s(z0), 0) → c(U2'(f115_in(z0), s(z0), 0))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(U5'(f85_in(z0, z1), s(z0), z1))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(U8'(f119_in(z0), f120_in(z0), z0))
F115_IN(z0) → c(F119_IN(z0))
S tuples:
F2_IN(.(z0, .(z1, z2))) → c2(U1'(f50_in(z0, z1, z2), .(z0, .(z1, z2))), F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(U3'(f85_in(z0, z1), s(z0), s(z1)), F85_IN(z0, z1))
F119_IN(s(z0)) → c10(U4'(f148_in(z0), s(z0)), F148_IN(z0))
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
U6'(f53_out1, z0, z1, z2) → c17(U7'(f2_in(.(z1, z2)), z0, z1, z2), F2_IN(.(z1, z2)))
F148_IN(z0) → c22(U9'(f119_in(z0), f150_in(z0), z0), F119_IN(z0))
F85_IN(s(z0), 0) → c(U2'(f115_in(z0), s(z0), 0))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(U5'(f85_in(z0, z1), s(z0), z1))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(U8'(f119_in(z0), f120_in(z0), z0))
F115_IN(z0) → c(F119_IN(z0))
K tuples:none
Defined Rule Symbols:
f2_in, U1, f85_in, U2, U3, f119_in, U4, f53_in, U5, f50_in, U6, U7, f115_in, U8, f148_in, U9
Defined Pair Symbols:
F2_IN, F85_IN, F119_IN, F50_IN, U6', F148_IN, F53_IN, F115_IN
Compound Symbols:
c2, c6, c10, c16, c17, c22, c
(5) CdtGraphRemoveTrailingTuplepartsProof (BOTH BOUNDS(ID, ID) transformation)
Removed 8 trailing tuple parts
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in([]) → f2_out1
f2_in(.(z0, [])) → f2_out1
f2_in(.(z0, .(z1, z2))) → U1(f50_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f50_out1, .(z0, .(z1, z2))) → f2_out1
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
U5(f85_out1, s(z0), z1) → f53_out1
f50_in(z0, z1, z2) → U6(f53_in(z0, z1), z0, z1, z2)
U6(f53_out1, z0, z1, z2) → U7(f2_in(.(z1, z2)), z0, z1, z2)
U7(f2_out1, z0, z1, z2) → f50_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U8(f119_out1, z0, z1) → f115_out1
U8(z0, f120_out1(z1), z2) → f115_out2(z1)
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U9(f119_out1, z0, z1) → f148_out1
U9(z0, f150_out1(z1), z2) → f148_out2(z1)
Tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
S tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
K tuples:none
Defined Rule Symbols:
f2_in, U1, f85_in, U2, U3, f119_in, U4, f53_in, U5, f50_in, U6, U7, f115_in, U8, f148_in, U9
Defined Pair Symbols:
F50_IN, F85_IN, F53_IN, F115_IN, F2_IN, F119_IN, U6', F148_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, c
(7) 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.
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
We considered the (Usable) Rules:
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U5(f85_out1, s(z0), z1) → f53_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U8(f119_out1, z0, z1) → f115_out1
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
U9(f119_out1, z0, z1) → f148_out1
And the Tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(.(x1, x2)) = [1] + x1 + x2
POL(0) = 0
POL(F115_IN(x1)) = [3] + x1
POL(F119_IN(x1)) = x1
POL(F148_IN(x1)) = x1
POL(F2_IN(x1)) = x1
POL(F50_IN(x1, x2, x3)) = [2] + x1 + x2 + x3
POL(F53_IN(x1, x2)) = [1] + x1
POL(F85_IN(x1, x2)) = [2] + x1
POL(U2(x1, x2, x3)) = 0
POL(U3(x1, x2, x3)) = 0
POL(U4(x1, x2)) = [3]x2
POL(U5(x1, x2, x3)) = 0
POL(U6'(x1, x2, x3, x4)) = [1] + x3 + x4
POL(U8(x1, x2, x3)) = 0
POL(U9(x1, x2, x3)) = 0
POL(c) = 0
POL(c(x1)) = x1
POL(c10(x1)) = x1
POL(c16(x1, x2)) = x1 + x2
POL(c17(x1)) = x1
POL(c2(x1)) = x1
POL(c22(x1)) = x1
POL(c6(x1)) = x1
POL(f115_in(x1)) = 0
POL(f115_out1) = 0
POL(f115_out2(x1)) = 0
POL(f119_in(x1)) = [2] + [3]x1
POL(f119_out1) = 0
POL(f120_in(x1)) = 0
POL(f148_in(x1)) = 0
POL(f148_out1) = 0
POL(f148_out2(x1)) = 0
POL(f150_in(x1)) = 0
POL(f53_in(x1, x2)) = 0
POL(f53_out1) = 0
POL(f85_in(x1, x2)) = 0
POL(f85_out1) = 0
POL(s(x1)) = [2] + x1
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in([]) → f2_out1
f2_in(.(z0, [])) → f2_out1
f2_in(.(z0, .(z1, z2))) → U1(f50_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f50_out1, .(z0, .(z1, z2))) → f2_out1
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
U5(f85_out1, s(z0), z1) → f53_out1
f50_in(z0, z1, z2) → U6(f53_in(z0, z1), z0, z1, z2)
U6(f53_out1, z0, z1, z2) → U7(f2_in(.(z1, z2)), z0, z1, z2)
U7(f2_out1, z0, z1, z2) → f50_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U8(f119_out1, z0, z1) → f115_out1
U8(z0, f120_out1(z1), z2) → f115_out2(z1)
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U9(f119_out1, z0, z1) → f148_out1
U9(z0, f150_out1(z1), z2) → f148_out2(z1)
Tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
S tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
K tuples:
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
Defined Rule Symbols:
f2_in, U1, f85_in, U2, U3, f119_in, U4, f53_in, U5, f50_in, U6, U7, f115_in, U8, f148_in, U9
Defined Pair Symbols:
F50_IN, F85_IN, F53_IN, F115_IN, F2_IN, F119_IN, U6', F148_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, c
(9) CdtKnowledgeProof (EQUIVALENT transformation)
The following tuples could be moved from S to K by knowledge propagation:
F148_IN(z0) → c22(F119_IN(z0))
F119_IN(s(z0)) → c10(F148_IN(z0))
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in([]) → f2_out1
f2_in(.(z0, [])) → f2_out1
f2_in(.(z0, .(z1, z2))) → U1(f50_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f50_out1, .(z0, .(z1, z2))) → f2_out1
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
U5(f85_out1, s(z0), z1) → f53_out1
f50_in(z0, z1, z2) → U6(f53_in(z0, z1), z0, z1, z2)
U6(f53_out1, z0, z1, z2) → U7(f2_in(.(z1, z2)), z0, z1, z2)
U7(f2_out1, z0, z1, z2) → f50_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U8(f119_out1, z0, z1) → f115_out1
U8(z0, f120_out1(z1), z2) → f115_out2(z1)
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U9(f119_out1, z0, z1) → f148_out1
U9(z0, f150_out1(z1), z2) → f148_out2(z1)
Tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
S tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
K tuples:
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
F148_IN(z0) → c22(F119_IN(z0))
Defined Rule Symbols:
f2_in, U1, f85_in, U2, U3, f119_in, U4, f53_in, U5, f50_in, U6, U7, f115_in, U8, f148_in, U9
Defined Pair Symbols:
F50_IN, F85_IN, F53_IN, F115_IN, F2_IN, F119_IN, U6', F148_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, 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.
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
We considered the (Usable) Rules:
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U5(f85_out1, s(z0), z1) → f53_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U8(f119_out1, z0, z1) → f115_out1
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
U9(f119_out1, z0, z1) → f148_out1
And the Tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(.(x1, x2)) = [1] + x2
POL(0) = 0
POL(F115_IN(x1)) = 0
POL(F119_IN(x1)) = 0
POL(F148_IN(x1)) = 0
POL(F2_IN(x1)) = x1
POL(F50_IN(x1, x2, x3)) = [1] + x3
POL(F53_IN(x1, x2)) = 0
POL(F85_IN(x1, x2)) = 0
POL(U2(x1, x2, x3)) = 0
POL(U3(x1, x2, x3)) = 0
POL(U4(x1, x2)) = 0
POL(U5(x1, x2, x3)) = 0
POL(U6'(x1, x2, x3, x4)) = [1] + x4
POL(U8(x1, x2, x3)) = 0
POL(U9(x1, x2, x3)) = x1
POL(c) = 0
POL(c(x1)) = x1
POL(c10(x1)) = x1
POL(c16(x1, x2)) = x1 + x2
POL(c17(x1)) = x1
POL(c2(x1)) = x1
POL(c22(x1)) = x1
POL(c6(x1)) = x1
POL(f115_in(x1)) = [3] + x1
POL(f115_out1) = 0
POL(f115_out2(x1)) = 0
POL(f119_in(x1)) = [1] + x1
POL(f119_out1) = 0
POL(f120_in(x1)) = 0
POL(f148_in(x1)) = [1] + [2]x1
POL(f148_out1) = 0
POL(f148_out2(x1)) = 0
POL(f150_in(x1)) = 0
POL(f53_in(x1, x2)) = 0
POL(f53_out1) = 0
POL(f85_in(x1, x2)) = 0
POL(f85_out1) = 0
POL(s(x1)) = 0
(12) Obligation:
Complexity Dependency Tuples Problem
Rules:
f2_in([]) → f2_out1
f2_in(.(z0, [])) → f2_out1
f2_in(.(z0, .(z1, z2))) → U1(f50_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f50_out1, .(z0, .(z1, z2))) → f2_out1
f85_in(0, s(z0)) → f85_out1
f85_in(s(z0), 0) → U2(f115_in(z0), s(z0), 0)
f85_in(s(z0), s(z1)) → U3(f85_in(z0, z1), s(z0), s(z1))
U2(f115_out1, s(z0), 0) → f85_out1
U2(f115_out2(z0), s(z1), 0) → f85_out1
U3(f85_out1, s(z0), s(z1)) → f85_out1
f119_in(s(z0)) → U4(f148_in(z0), s(z0))
U4(f148_out1, s(z0)) → f119_out1
U4(f148_out2(z0), s(z1)) → f119_out1
f53_in(0, z0) → f53_out1
f53_in(s(z0), z1) → U5(f85_in(z0, z1), s(z0), z1)
U5(f85_out1, s(z0), z1) → f53_out1
f50_in(z0, z1, z2) → U6(f53_in(z0, z1), z0, z1, z2)
U6(f53_out1, z0, z1, z2) → U7(f2_in(.(z1, z2)), z0, z1, z2)
U7(f2_out1, z0, z1, z2) → f50_out1
f115_in(z0) → U8(f119_in(z0), f120_in(z0), z0)
U8(f119_out1, z0, z1) → f115_out1
U8(z0, f120_out1(z1), z2) → f115_out2(z1)
f148_in(z0) → U9(f119_in(z0), f150_in(z0), z0)
U9(f119_out1, z0, z1) → f148_out1
U9(z0, f150_out1(z1), z2) → f148_out2(z1)
Tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
F148_IN(z0) → c22(F119_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
S tuples:
F50_IN(z0, z1, z2) → c16(U6'(f53_in(z0, z1), z0, z1, z2), F53_IN(z0, z1))
U6'(f53_out1, z0, z1, z2) → c17(F2_IN(.(z1, z2)))
K tuples:
F85_IN(s(z0), 0) → c(F115_IN(z0))
F53_IN(s(z0), z1) → c(F85_IN(z0, z1))
F115_IN(z0) → c(F119_IN(z0))
F85_IN(s(z0), s(z1)) → c6(F85_IN(z0, z1))
F119_IN(s(z0)) → c10(F148_IN(z0))
F85_IN(s(z0), 0) → c
F53_IN(s(z0), z1) → c
F115_IN(z0) → c
F148_IN(z0) → c22(F119_IN(z0))
F2_IN(.(z0, .(z1, z2))) → c2(F50_IN(z0, z1, z2))
Defined Rule Symbols:
f2_in, U1, f85_in, U2, U3, f119_in, U4, f53_in, U5, f50_in, U6, U7, f115_in, U8, f148_in, U9
Defined Pair Symbols:
F50_IN, F85_IN, F53_IN, F115_IN, F2_IN, F119_IN, U6', F148_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, c
(13) PrologToCdtProblemTransformerProof (UPPER BOUND (ID) transformation)
Built complexity over-approximating cdt problems from derivation graph.
(14) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in([]) → f1_out1
f1_in(.(z0, [])) → f1_out1
f1_in(.(z0, .(z1, z2))) → U1(f45_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f45_out1, .(z0, .(z1, z2))) → f1_out1
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
U5(f83_out1, s(z0), z1) → f51_out1
f45_in(z0, z1, z2) → U6(f51_in(z0, z1), z0, z1, z2)
U6(f51_out1, z0, z1, z2) → U7(f1_in(.(z1, z2)), z0, z1, z2)
U7(f1_out1, z0, z1, z2) → f45_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U8(f116_out1, z0, z1) → f110_out1
U8(z0, f117_out1(z1), z2) → f110_out2(z1)
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U9(f116_out1, z0, z1) → f144_out1
U9(z0, f147_out1(z1), z2) → f144_out2(z1)
Tuples:
F1_IN(.(z0, .(z1, z2))) → c2(U1'(f45_in(z0, z1, z2), .(z0, .(z1, z2))), F45_IN(z0, z1, z2))
F83_IN(s(z0), 0) → c5(U2'(f110_in(z0), s(z0), 0), F110_IN(z0))
F83_IN(s(z0), s(z1)) → c6(U3'(f83_in(z0, z1), s(z0), s(z1)), F83_IN(z0, z1))
F116_IN(s(z0)) → c10(U4'(f144_in(z0), s(z0)), F144_IN(z0))
F51_IN(s(z0), z1) → c14(U5'(f83_in(z0, z1), s(z0), z1), F83_IN(z0, z1))
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(U7'(f1_in(.(z1, z2)), z0, z1, z2), F1_IN(.(z1, z2)))
F110_IN(z0) → c19(U8'(f116_in(z0), f117_in(z0), z0), F116_IN(z0))
F144_IN(z0) → c22(U9'(f116_in(z0), f147_in(z0), z0), F116_IN(z0))
S tuples:
F1_IN(.(z0, .(z1, z2))) → c2(U1'(f45_in(z0, z1, z2), .(z0, .(z1, z2))), F45_IN(z0, z1, z2))
F83_IN(s(z0), 0) → c5(U2'(f110_in(z0), s(z0), 0), F110_IN(z0))
F83_IN(s(z0), s(z1)) → c6(U3'(f83_in(z0, z1), s(z0), s(z1)), F83_IN(z0, z1))
F116_IN(s(z0)) → c10(U4'(f144_in(z0), s(z0)), F144_IN(z0))
F51_IN(s(z0), z1) → c14(U5'(f83_in(z0, z1), s(z0), z1), F83_IN(z0, z1))
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(U7'(f1_in(.(z1, z2)), z0, z1, z2), F1_IN(.(z1, z2)))
F110_IN(z0) → c19(U8'(f116_in(z0), f117_in(z0), z0), F116_IN(z0))
F144_IN(z0) → c22(U9'(f116_in(z0), f147_in(z0), z0), F116_IN(z0))
K tuples:none
Defined Rule Symbols:
f1_in, U1, f83_in, U2, U3, f116_in, U4, f51_in, U5, f45_in, U6, U7, f110_in, U8, f144_in, U9
Defined Pair Symbols:
F1_IN, F83_IN, F116_IN, F51_IN, F45_IN, U6', F110_IN, F144_IN
Compound Symbols:
c2, c5, c6, c10, c14, c16, c17, c19, c22
(15) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID) transformation)
Split RHS of tuples not part of any SCC
(16) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in([]) → f1_out1
f1_in(.(z0, [])) → f1_out1
f1_in(.(z0, .(z1, z2))) → U1(f45_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f45_out1, .(z0, .(z1, z2))) → f1_out1
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
U5(f83_out1, s(z0), z1) → f51_out1
f45_in(z0, z1, z2) → U6(f51_in(z0, z1), z0, z1, z2)
U6(f51_out1, z0, z1, z2) → U7(f1_in(.(z1, z2)), z0, z1, z2)
U7(f1_out1, z0, z1, z2) → f45_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U8(f116_out1, z0, z1) → f110_out1
U8(z0, f117_out1(z1), z2) → f110_out2(z1)
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U9(f116_out1, z0, z1) → f144_out1
U9(z0, f147_out1(z1), z2) → f144_out2(z1)
Tuples:
F1_IN(.(z0, .(z1, z2))) → c2(U1'(f45_in(z0, z1, z2), .(z0, .(z1, z2))), F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(U3'(f83_in(z0, z1), s(z0), s(z1)), F83_IN(z0, z1))
F116_IN(s(z0)) → c10(U4'(f144_in(z0), s(z0)), F144_IN(z0))
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(U7'(f1_in(.(z1, z2)), z0, z1, z2), F1_IN(.(z1, z2)))
F144_IN(z0) → c22(U9'(f116_in(z0), f147_in(z0), z0), F116_IN(z0))
F83_IN(s(z0), 0) → c(U2'(f110_in(z0), s(z0), 0))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(U5'(f83_in(z0, z1), s(z0), z1))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(U8'(f116_in(z0), f117_in(z0), z0))
F110_IN(z0) → c(F116_IN(z0))
S tuples:
F1_IN(.(z0, .(z1, z2))) → c2(U1'(f45_in(z0, z1, z2), .(z0, .(z1, z2))), F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(U3'(f83_in(z0, z1), s(z0), s(z1)), F83_IN(z0, z1))
F116_IN(s(z0)) → c10(U4'(f144_in(z0), s(z0)), F144_IN(z0))
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(U7'(f1_in(.(z1, z2)), z0, z1, z2), F1_IN(.(z1, z2)))
F144_IN(z0) → c22(U9'(f116_in(z0), f147_in(z0), z0), F116_IN(z0))
F83_IN(s(z0), 0) → c(U2'(f110_in(z0), s(z0), 0))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(U5'(f83_in(z0, z1), s(z0), z1))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(U8'(f116_in(z0), f117_in(z0), z0))
F110_IN(z0) → c(F116_IN(z0))
K tuples:none
Defined Rule Symbols:
f1_in, U1, f83_in, U2, U3, f116_in, U4, f51_in, U5, f45_in, U6, U7, f110_in, U8, f144_in, U9
Defined Pair Symbols:
F1_IN, F83_IN, F116_IN, F45_IN, U6', F144_IN, F51_IN, F110_IN
Compound Symbols:
c2, c6, c10, c16, c17, c22, c
(17) CdtGraphRemoveTrailingTuplepartsProof (BOTH BOUNDS(ID, ID) transformation)
Removed 8 trailing tuple parts
(18) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in([]) → f1_out1
f1_in(.(z0, [])) → f1_out1
f1_in(.(z0, .(z1, z2))) → U1(f45_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f45_out1, .(z0, .(z1, z2))) → f1_out1
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
U5(f83_out1, s(z0), z1) → f51_out1
f45_in(z0, z1, z2) → U6(f51_in(z0, z1), z0, z1, z2)
U6(f51_out1, z0, z1, z2) → U7(f1_in(.(z1, z2)), z0, z1, z2)
U7(f1_out1, z0, z1, z2) → f45_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U8(f116_out1, z0, z1) → f110_out1
U8(z0, f117_out1(z1), z2) → f110_out2(z1)
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U9(f116_out1, z0, z1) → f144_out1
U9(z0, f147_out1(z1), z2) → f144_out2(z1)
Tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
S tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
K tuples:none
Defined Rule Symbols:
f1_in, U1, f83_in, U2, U3, f116_in, U4, f51_in, U5, f45_in, U6, U7, f110_in, U8, f144_in, U9
Defined Pair Symbols:
F45_IN, F83_IN, F51_IN, F110_IN, F1_IN, F116_IN, U6', F144_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, c
(19) 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.
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
We considered the (Usable) Rules:
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U5(f83_out1, s(z0), z1) → f51_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U8(f116_out1, z0, z1) → f110_out1
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
U9(f116_out1, z0, z1) → f144_out1
And the Tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(.(x1, x2)) = [1] + x1 + x2
POL(0) = 0
POL(F110_IN(x1)) = [3] + x1
POL(F116_IN(x1)) = x1
POL(F144_IN(x1)) = x1
POL(F1_IN(x1)) = x1
POL(F45_IN(x1, x2, x3)) = [2] + x1 + x2 + x3
POL(F51_IN(x1, x2)) = [1] + x1
POL(F83_IN(x1, x2)) = [2] + x1
POL(U2(x1, x2, x3)) = 0
POL(U3(x1, x2, x3)) = 0
POL(U4(x1, x2)) = [3]x2
POL(U5(x1, x2, x3)) = 0
POL(U6'(x1, x2, x3, x4)) = [1] + x3 + x4
POL(U8(x1, x2, x3)) = 0
POL(U9(x1, x2, x3)) = 0
POL(c) = 0
POL(c(x1)) = x1
POL(c10(x1)) = x1
POL(c16(x1, x2)) = x1 + x2
POL(c17(x1)) = x1
POL(c2(x1)) = x1
POL(c22(x1)) = x1
POL(c6(x1)) = x1
POL(f110_in(x1)) = 0
POL(f110_out1) = 0
POL(f110_out2(x1)) = 0
POL(f116_in(x1)) = [2] + [3]x1
POL(f116_out1) = 0
POL(f117_in(x1)) = 0
POL(f144_in(x1)) = 0
POL(f144_out1) = 0
POL(f144_out2(x1)) = 0
POL(f147_in(x1)) = 0
POL(f51_in(x1, x2)) = 0
POL(f51_out1) = 0
POL(f83_in(x1, x2)) = 0
POL(f83_out1) = 0
POL(s(x1)) = [2] + x1
(20) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in([]) → f1_out1
f1_in(.(z0, [])) → f1_out1
f1_in(.(z0, .(z1, z2))) → U1(f45_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f45_out1, .(z0, .(z1, z2))) → f1_out1
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
U5(f83_out1, s(z0), z1) → f51_out1
f45_in(z0, z1, z2) → U6(f51_in(z0, z1), z0, z1, z2)
U6(f51_out1, z0, z1, z2) → U7(f1_in(.(z1, z2)), z0, z1, z2)
U7(f1_out1, z0, z1, z2) → f45_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U8(f116_out1, z0, z1) → f110_out1
U8(z0, f117_out1(z1), z2) → f110_out2(z1)
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U9(f116_out1, z0, z1) → f144_out1
U9(z0, f147_out1(z1), z2) → f144_out2(z1)
Tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
S tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
K tuples:
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
Defined Rule Symbols:
f1_in, U1, f83_in, U2, U3, f116_in, U4, f51_in, U5, f45_in, U6, U7, f110_in, U8, f144_in, U9
Defined Pair Symbols:
F45_IN, F83_IN, F51_IN, F110_IN, F1_IN, F116_IN, U6', F144_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, c
(21) CdtKnowledgeProof (EQUIVALENT transformation)
The following tuples could be moved from S to K by knowledge propagation:
F144_IN(z0) → c22(F116_IN(z0))
F116_IN(s(z0)) → c10(F144_IN(z0))
(22) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in([]) → f1_out1
f1_in(.(z0, [])) → f1_out1
f1_in(.(z0, .(z1, z2))) → U1(f45_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f45_out1, .(z0, .(z1, z2))) → f1_out1
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
U5(f83_out1, s(z0), z1) → f51_out1
f45_in(z0, z1, z2) → U6(f51_in(z0, z1), z0, z1, z2)
U6(f51_out1, z0, z1, z2) → U7(f1_in(.(z1, z2)), z0, z1, z2)
U7(f1_out1, z0, z1, z2) → f45_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U8(f116_out1, z0, z1) → f110_out1
U8(z0, f117_out1(z1), z2) → f110_out2(z1)
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U9(f116_out1, z0, z1) → f144_out1
U9(z0, f147_out1(z1), z2) → f144_out2(z1)
Tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
S tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
K tuples:
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
F144_IN(z0) → c22(F116_IN(z0))
Defined Rule Symbols:
f1_in, U1, f83_in, U2, U3, f116_in, U4, f51_in, U5, f45_in, U6, U7, f110_in, U8, f144_in, U9
Defined Pair Symbols:
F45_IN, F83_IN, F51_IN, F110_IN, F1_IN, F116_IN, U6', F144_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, 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.
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
We considered the (Usable) Rules:
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U5(f83_out1, s(z0), z1) → f51_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U8(f116_out1, z0, z1) → f110_out1
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
U9(f116_out1, z0, z1) → f144_out1
And the Tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(.(x1, x2)) = [1] + x2
POL(0) = 0
POL(F110_IN(x1)) = 0
POL(F116_IN(x1)) = 0
POL(F144_IN(x1)) = 0
POL(F1_IN(x1)) = x1
POL(F45_IN(x1, x2, x3)) = [1] + x3
POL(F51_IN(x1, x2)) = 0
POL(F83_IN(x1, x2)) = 0
POL(U2(x1, x2, x3)) = 0
POL(U3(x1, x2, x3)) = 0
POL(U4(x1, x2)) = 0
POL(U5(x1, x2, x3)) = 0
POL(U6'(x1, x2, x3, x4)) = [1] + x4
POL(U8(x1, x2, x3)) = 0
POL(U9(x1, x2, x3)) = x1
POL(c) = 0
POL(c(x1)) = x1
POL(c10(x1)) = x1
POL(c16(x1, x2)) = x1 + x2
POL(c17(x1)) = x1
POL(c2(x1)) = x1
POL(c22(x1)) = x1
POL(c6(x1)) = x1
POL(f110_in(x1)) = [3] + x1
POL(f110_out1) = 0
POL(f110_out2(x1)) = 0
POL(f116_in(x1)) = [1] + x1
POL(f116_out1) = 0
POL(f117_in(x1)) = 0
POL(f144_in(x1)) = [1] + [2]x1
POL(f144_out1) = 0
POL(f144_out2(x1)) = 0
POL(f147_in(x1)) = 0
POL(f51_in(x1, x2)) = 0
POL(f51_out1) = 0
POL(f83_in(x1, x2)) = 0
POL(f83_out1) = 0
POL(s(x1)) = 0
(24) Obligation:
Complexity Dependency Tuples Problem
Rules:
f1_in([]) → f1_out1
f1_in(.(z0, [])) → f1_out1
f1_in(.(z0, .(z1, z2))) → U1(f45_in(z0, z1, z2), .(z0, .(z1, z2)))
U1(f45_out1, .(z0, .(z1, z2))) → f1_out1
f83_in(0, s(z0)) → f83_out1
f83_in(s(z0), 0) → U2(f110_in(z0), s(z0), 0)
f83_in(s(z0), s(z1)) → U3(f83_in(z0, z1), s(z0), s(z1))
U2(f110_out1, s(z0), 0) → f83_out1
U2(f110_out2(z0), s(z1), 0) → f83_out1
U3(f83_out1, s(z0), s(z1)) → f83_out1
f116_in(s(z0)) → U4(f144_in(z0), s(z0))
U4(f144_out1, s(z0)) → f116_out1
U4(f144_out2(z0), s(z1)) → f116_out1
f51_in(0, z0) → f51_out1
f51_in(s(z0), z1) → U5(f83_in(z0, z1), s(z0), z1)
U5(f83_out1, s(z0), z1) → f51_out1
f45_in(z0, z1, z2) → U6(f51_in(z0, z1), z0, z1, z2)
U6(f51_out1, z0, z1, z2) → U7(f1_in(.(z1, z2)), z0, z1, z2)
U7(f1_out1, z0, z1, z2) → f45_out1
f110_in(z0) → U8(f116_in(z0), f117_in(z0), z0)
U8(f116_out1, z0, z1) → f110_out1
U8(z0, f117_out1(z1), z2) → f110_out2(z1)
f144_in(z0) → U9(f116_in(z0), f147_in(z0), z0)
U9(f116_out1, z0, z1) → f144_out1
U9(z0, f147_out1(z1), z2) → f144_out2(z1)
Tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F144_IN(z0) → c22(F116_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
S tuples:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
K tuples:
F83_IN(s(z0), 0) → c(F110_IN(z0))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
F110_IN(z0) → c(F116_IN(z0))
F83_IN(s(z0), s(z1)) → c6(F83_IN(z0, z1))
F116_IN(s(z0)) → c10(F144_IN(z0))
F83_IN(s(z0), 0) → c
F51_IN(s(z0), z1) → c
F110_IN(z0) → c
F144_IN(z0) → c22(F116_IN(z0))
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
Defined Rule Symbols:
f1_in, U1, f83_in, U2, U3, f116_in, U4, f51_in, U5, f45_in, U6, U7, f110_in, U8, f144_in, U9
Defined Pair Symbols:
F45_IN, F83_IN, F51_IN, F110_IN, F1_IN, F116_IN, U6', F144_IN
Compound Symbols:
c16, c, c2, c6, c10, c17, c22, c
(25) CdtKnowledgeProof (EQUIVALENT transformation)
The following tuples could be moved from S to K by knowledge propagation:
F45_IN(z0, z1, z2) → c16(U6'(f51_in(z0, z1), z0, z1, z2), F51_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F51_IN(s(z0), z1) → c(F83_IN(z0, z1))
U6'(f51_out1, z0, z1, z2) → c17(F1_IN(.(z1, z2)))
F51_IN(s(z0), z1) → c
F1_IN(.(z0, .(z1, z2))) → c2(F45_IN(z0, z1, z2))
Now S is empty
(26) BOUNDS(O(1), O(1))