(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
active(from(X)) → mark(cons(X, from(s(X))))
active(2ndspos(0, Z)) → mark(rnil)
active(2ndspos(s(N), cons(X, Z))) → mark(2ndspos(s(N), cons2(X, Z)))
active(2ndspos(s(N), cons2(X, cons(Y, Z)))) → mark(rcons(posrecip(Y), 2ndsneg(N, Z)))
active(2ndsneg(0, Z)) → mark(rnil)
active(2ndsneg(s(N), cons(X, Z))) → mark(2ndsneg(s(N), cons2(X, Z)))
active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) → mark(rcons(negrecip(Y), 2ndspos(N, Z)))
active(pi(X)) → mark(2ndspos(X, from(0)))
active(plus(0, Y)) → mark(Y)
active(plus(s(X), Y)) → mark(s(plus(X, Y)))
active(times(0, Y)) → mark(0)
active(times(s(X), Y)) → mark(plus(Y, times(X, Y)))
active(square(X)) → mark(times(X, X))
active(s(X)) → s(active(X))
active(posrecip(X)) → posrecip(active(X))
active(negrecip(X)) → negrecip(active(X))
active(cons(X1, X2)) → cons(active(X1), X2)
active(cons2(X1, X2)) → cons2(X1, active(X2))
active(rcons(X1, X2)) → rcons(active(X1), X2)
active(rcons(X1, X2)) → rcons(X1, active(X2))
active(from(X)) → from(active(X))
active(2ndspos(X1, X2)) → 2ndspos(active(X1), X2)
active(2ndspos(X1, X2)) → 2ndspos(X1, active(X2))
active(2ndsneg(X1, X2)) → 2ndsneg(active(X1), X2)
active(2ndsneg(X1, X2)) → 2ndsneg(X1, active(X2))
active(pi(X)) → pi(active(X))
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(times(X1, X2)) → times(active(X1), X2)
active(times(X1, X2)) → times(X1, active(X2))
active(square(X)) → square(active(X))
s(mark(X)) → mark(s(X))
posrecip(mark(X)) → mark(posrecip(X))
negrecip(mark(X)) → mark(negrecip(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
cons2(X1, mark(X2)) → mark(cons2(X1, X2))
rcons(mark(X1), X2) → mark(rcons(X1, X2))
rcons(X1, mark(X2)) → mark(rcons(X1, X2))
from(mark(X)) → mark(from(X))
2ndspos(mark(X1), X2) → mark(2ndspos(X1, X2))
2ndspos(X1, mark(X2)) → mark(2ndspos(X1, X2))
2ndsneg(mark(X1), X2) → mark(2ndsneg(X1, X2))
2ndsneg(X1, mark(X2)) → mark(2ndsneg(X1, X2))
pi(mark(X)) → mark(pi(X))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
times(mark(X1), X2) → mark(times(X1, X2))
times(X1, mark(X2)) → mark(times(X1, X2))
square(mark(X)) → mark(square(X))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
proper(posrecip(X)) → posrecip(proper(X))
proper(negrecip(X)) → negrecip(proper(X))
proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(cons2(X1, X2)) → cons2(proper(X1), proper(X2))
proper(rnil) → ok(rnil)
proper(rcons(X1, X2)) → rcons(proper(X1), proper(X2))
proper(from(X)) → from(proper(X))
proper(2ndspos(X1, X2)) → 2ndspos(proper(X1), proper(X2))
proper(2ndsneg(X1, X2)) → 2ndsneg(proper(X1), proper(X2))
proper(pi(X)) → pi(proper(X))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(times(X1, X2)) → times(proper(X1), proper(X2))
proper(square(X)) → square(proper(X))
s(ok(X)) → ok(s(X))
posrecip(ok(X)) → ok(posrecip(X))
negrecip(ok(X)) → ok(negrecip(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
cons2(ok(X1), ok(X2)) → ok(cons2(X1, X2))
rcons(ok(X1), ok(X2)) → ok(rcons(X1, X2))
from(ok(X)) → ok(from(X))
2ndspos(ok(X1), ok(X2)) → ok(2ndspos(X1, X2))
2ndsneg(ok(X1), ok(X2)) → ok(2ndsneg(X1, X2))
pi(ok(X)) → ok(pi(X))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
times(ok(X1), ok(X2)) → ok(times(X1, X2))
square(ok(X)) → ok(square(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
ACTIVE(from(z0)) → c(CONS(z0, from(s(z0))), FROM(s(z0)), S(z0))
ACTIVE(2ndspos(s(z0), cons(z1, z2))) → c2(2NDSPOS(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)), FROM(0))
ACTIVE(plus(s(z0), z1)) → c9(S(plus(z0, z1)), PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(PLUS(z1, times(z0, z1)), TIMES(z0, z1))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
S tuples:
ACTIVE(from(z0)) → c(CONS(z0, from(s(z0))), FROM(s(z0)), S(z0))
ACTIVE(2ndspos(s(z0), cons(z1, z2))) → c2(2NDSPOS(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)), FROM(0))
ACTIVE(plus(s(z0), z1)) → c9(S(plus(z0, z1)), PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(PLUS(z1, times(z0, z1)), TIMES(z0, z1))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
ACTIVE, S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, PROPER, TOP
Compound Symbols:
c, c2, c3, c5, c6, c7, c9, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78, c79
(3) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)
Removed 5 trailing tuple parts
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
ACTIVE(2ndspos(s(z0), cons(z1, z2))) → c2(2NDSPOS(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
S tuples:
ACTIVE(2ndspos(s(z0), cons(z1, z2))) → c2(2NDSPOS(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
ACTIVE, S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, PROPER, TOP
Compound Symbols:
c2, c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78, c79, c, c7, c9, c11
(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
ACTIVE(
2ndspos(
s(
z0),
cons(
z1,
z2))) →
c2(
2NDSPOS(
s(
z0),
cons2(
z1,
z2)),
S(
z0),
CONS2(
z1,
z2)) by
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(ok(z0), ok(z1)))) → c2(2NDSPOS(s(x0), ok(cons2(z0, z1))), S(x0), CONS2(ok(z0), ok(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(ok(z0), ok(z1)))) → c2(2NDSPOS(s(x0), ok(cons2(z0, z1))), S(x0), CONS2(ok(z0), ok(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
S tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(ok(z0), ok(z1)))) → c2(2NDSPOS(s(x0), ok(cons2(z0, z1))), S(x0), CONS2(ok(z0), ok(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
ACTIVE, S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, PROPER, TOP
Compound Symbols:
c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78, c79, c, c7, c9, c11, c2, c2
(7) CdtUnreachableProof (EQUIVALENT transformation)
The following tuples could be removed as they are not reachable from basic start terms:
ACTIVE(2ndspos(s(x0), cons(ok(z0), ok(z1)))) → c2(2NDSPOS(s(x0), ok(cons2(z0, z1))), S(x0), CONS2(ok(z0), ok(z1)))
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
S tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(z0)) → c78(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, TOP, ACTIVE, PROPER
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c78, c79, c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c, c7, c9, c11, c2, c2, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77
(9) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
TOP(
mark(
z0)) →
c78(
TOP(
proper(
z0)),
PROPER(
z0)) by
TOP(mark(0)) → c78(TOP(ok(0)), PROPER(0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(nil)) → c78(TOP(ok(nil)), PROPER(nil))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)), PROPER(rnil))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(x0)) → c78
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(0)) → c78(TOP(ok(0)), PROPER(0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(nil)) → c78(TOP(ok(nil)), PROPER(nil))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)), PROPER(rnil))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(x0)) → c78
S tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
TOP(mark(0)) → c78(TOP(ok(0)), PROPER(0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(nil)) → c78(TOP(ok(nil)), PROPER(nil))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)), PROPER(rnil))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(x0)) → c78
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, TOP, ACTIVE, PROPER
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c79, c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c, c7, c9, c11, c2, c2, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78, c78
(11) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
TOP(mark(x0)) → c78
(12) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(0)) → c78(TOP(ok(0)), PROPER(0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(nil)) → c78(TOP(ok(nil)), PROPER(nil))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)), PROPER(rnil))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
S tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
TOP(mark(0)) → c78(TOP(ok(0)), PROPER(0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(nil)) → c78(TOP(ok(nil)), PROPER(nil))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)), PROPER(rnil))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, TOP, ACTIVE, PROPER
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c79, c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c, c7, c9, c11, c2, c2, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78
(13) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)
Removed 3 trailing tuple parts
(14) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
S tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c79(TOP(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, TOP, ACTIVE, PROPER
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c79, c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c, c7, c9, c11, c2, c2, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78, c78
(15) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
TOP(
ok(
z0)) →
c79(
TOP(
active(
z0)),
ACTIVE(
z0)) by
TOP(ok(from(z0))) → c79(TOP(mark(cons(z0, from(s(z0))))), ACTIVE(from(z0)))
TOP(ok(2ndspos(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndspos(0, z0)))
TOP(ok(2ndspos(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndspos(s(z0), cons2(z1, z2)))), ACTIVE(2ndspos(s(z0), cons(z1, z2))))
TOP(ok(2ndspos(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))), ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(2ndsneg(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndsneg(0, z0)))
TOP(ok(2ndsneg(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndsneg(s(z0), cons2(z1, z2)))), ACTIVE(2ndsneg(s(z0), cons(z1, z2))))
TOP(ok(2ndsneg(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(negrecip(z2), 2ndspos(z0, z3)))), ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(pi(z0))) → c79(TOP(mark(2ndspos(z0, from(0)))), ACTIVE(pi(z0)))
TOP(ok(plus(0, z0))) → c79(TOP(mark(z0)), ACTIVE(plus(0, z0)))
TOP(ok(plus(s(z0), z1))) → c79(TOP(mark(s(plus(z0, z1)))), ACTIVE(plus(s(z0), z1)))
TOP(ok(times(0, z0))) → c79(TOP(mark(0)), ACTIVE(times(0, z0)))
TOP(ok(times(s(z0), z1))) → c79(TOP(mark(plus(z1, times(z0, z1)))), ACTIVE(times(s(z0), z1)))
TOP(ok(square(z0))) → c79(TOP(mark(times(z0, z0))), ACTIVE(square(z0)))
TOP(ok(s(z0))) → c79(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(posrecip(z0))) → c79(TOP(posrecip(active(z0))), ACTIVE(posrecip(z0)))
TOP(ok(negrecip(z0))) → c79(TOP(negrecip(active(z0))), ACTIVE(negrecip(z0)))
TOP(ok(cons(z0, z1))) → c79(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(cons2(z0, z1))) → c79(TOP(cons2(z0, active(z1))), ACTIVE(cons2(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(active(z0), z1)), ACTIVE(rcons(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(z0, active(z1))), ACTIVE(rcons(z0, z1)))
TOP(ok(from(z0))) → c79(TOP(from(active(z0))), ACTIVE(from(z0)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(active(z0), z1)), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(z0, active(z1))), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(active(z0), z1)), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(z0, active(z1))), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(pi(z0))) → c79(TOP(pi(active(z0))), ACTIVE(pi(z0)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(active(z0), z1)), ACTIVE(plus(z0, z1)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(z0, active(z1))), ACTIVE(plus(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(active(z0), z1)), ACTIVE(times(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(z0, active(z1))), ACTIVE(times(z0, z1)))
TOP(ok(square(z0))) → c79(TOP(square(active(z0))), ACTIVE(square(z0)))
TOP(ok(x0)) → c79
(16) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
TOP(ok(from(z0))) → c79(TOP(mark(cons(z0, from(s(z0))))), ACTIVE(from(z0)))
TOP(ok(2ndspos(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndspos(0, z0)))
TOP(ok(2ndspos(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndspos(s(z0), cons2(z1, z2)))), ACTIVE(2ndspos(s(z0), cons(z1, z2))))
TOP(ok(2ndspos(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))), ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(2ndsneg(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndsneg(0, z0)))
TOP(ok(2ndsneg(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndsneg(s(z0), cons2(z1, z2)))), ACTIVE(2ndsneg(s(z0), cons(z1, z2))))
TOP(ok(2ndsneg(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(negrecip(z2), 2ndspos(z0, z3)))), ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(pi(z0))) → c79(TOP(mark(2ndspos(z0, from(0)))), ACTIVE(pi(z0)))
TOP(ok(plus(0, z0))) → c79(TOP(mark(z0)), ACTIVE(plus(0, z0)))
TOP(ok(plus(s(z0), z1))) → c79(TOP(mark(s(plus(z0, z1)))), ACTIVE(plus(s(z0), z1)))
TOP(ok(times(0, z0))) → c79(TOP(mark(0)), ACTIVE(times(0, z0)))
TOP(ok(times(s(z0), z1))) → c79(TOP(mark(plus(z1, times(z0, z1)))), ACTIVE(times(s(z0), z1)))
TOP(ok(square(z0))) → c79(TOP(mark(times(z0, z0))), ACTIVE(square(z0)))
TOP(ok(s(z0))) → c79(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(posrecip(z0))) → c79(TOP(posrecip(active(z0))), ACTIVE(posrecip(z0)))
TOP(ok(negrecip(z0))) → c79(TOP(negrecip(active(z0))), ACTIVE(negrecip(z0)))
TOP(ok(cons(z0, z1))) → c79(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(cons2(z0, z1))) → c79(TOP(cons2(z0, active(z1))), ACTIVE(cons2(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(active(z0), z1)), ACTIVE(rcons(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(z0, active(z1))), ACTIVE(rcons(z0, z1)))
TOP(ok(from(z0))) → c79(TOP(from(active(z0))), ACTIVE(from(z0)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(active(z0), z1)), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(z0, active(z1))), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(active(z0), z1)), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(z0, active(z1))), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(pi(z0))) → c79(TOP(pi(active(z0))), ACTIVE(pi(z0)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(active(z0), z1)), ACTIVE(plus(z0, z1)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(z0, active(z1))), ACTIVE(plus(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(active(z0), z1)), ACTIVE(times(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(z0, active(z1))), ACTIVE(times(z0, z1)))
TOP(ok(square(z0))) → c79(TOP(square(active(z0))), ACTIVE(square(z0)))
TOP(ok(x0)) → c79
S tuples:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
TOP(ok(from(z0))) → c79(TOP(mark(cons(z0, from(s(z0))))), ACTIVE(from(z0)))
TOP(ok(2ndspos(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndspos(0, z0)))
TOP(ok(2ndspos(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndspos(s(z0), cons2(z1, z2)))), ACTIVE(2ndspos(s(z0), cons(z1, z2))))
TOP(ok(2ndspos(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))), ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(2ndsneg(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndsneg(0, z0)))
TOP(ok(2ndsneg(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndsneg(s(z0), cons2(z1, z2)))), ACTIVE(2ndsneg(s(z0), cons(z1, z2))))
TOP(ok(2ndsneg(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(negrecip(z2), 2ndspos(z0, z3)))), ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(pi(z0))) → c79(TOP(mark(2ndspos(z0, from(0)))), ACTIVE(pi(z0)))
TOP(ok(plus(0, z0))) → c79(TOP(mark(z0)), ACTIVE(plus(0, z0)))
TOP(ok(plus(s(z0), z1))) → c79(TOP(mark(s(plus(z0, z1)))), ACTIVE(plus(s(z0), z1)))
TOP(ok(times(0, z0))) → c79(TOP(mark(0)), ACTIVE(times(0, z0)))
TOP(ok(times(s(z0), z1))) → c79(TOP(mark(plus(z1, times(z0, z1)))), ACTIVE(times(s(z0), z1)))
TOP(ok(square(z0))) → c79(TOP(mark(times(z0, z0))), ACTIVE(square(z0)))
TOP(ok(s(z0))) → c79(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(posrecip(z0))) → c79(TOP(posrecip(active(z0))), ACTIVE(posrecip(z0)))
TOP(ok(negrecip(z0))) → c79(TOP(negrecip(active(z0))), ACTIVE(negrecip(z0)))
TOP(ok(cons(z0, z1))) → c79(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(cons2(z0, z1))) → c79(TOP(cons2(z0, active(z1))), ACTIVE(cons2(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(active(z0), z1)), ACTIVE(rcons(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(z0, active(z1))), ACTIVE(rcons(z0, z1)))
TOP(ok(from(z0))) → c79(TOP(from(active(z0))), ACTIVE(from(z0)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(active(z0), z1)), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(z0, active(z1))), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(active(z0), z1)), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(z0, active(z1))), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(pi(z0))) → c79(TOP(pi(active(z0))), ACTIVE(pi(z0)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(active(z0), z1)), ACTIVE(plus(z0, z1)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(z0, active(z1))), ACTIVE(plus(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(active(z0), z1)), ACTIVE(times(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(z0, active(z1))), ACTIVE(times(z0, z1)))
TOP(ok(square(z0))) → c79(TOP(square(active(z0))), ACTIVE(square(z0)))
TOP(ok(x0)) → c79
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, ACTIVE, PROPER, TOP
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c3, c5, c6, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c, c7, c9, c11, c2, c2, c63, c64, c65, c67, c68, c70, c71, c72, c73, c74, c75, c76, c77, c78, c78, c79, c79
(17) CdtUnreachableProof (EQUIVALENT transformation)
The following tuples could be removed as they are not reachable from basic start terms:
ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → c3(RCONS(posrecip(z2), 2ndsneg(z0, z3)), POSRECIP(z2), 2NDSNEG(z0, z3))
ACTIVE(2ndsneg(s(z0), cons(z1, z2))) → c5(2NDSNEG(s(z0), cons2(z1, z2)), S(z0), CONS2(z1, z2))
ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → c6(RCONS(negrecip(z2), 2ndspos(z0, z3)), NEGRECIP(z2), 2NDSPOS(z0, z3))
ACTIVE(square(z0)) → c12(TIMES(z0, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(posrecip(z0)) → c14(POSRECIP(active(z0)), ACTIVE(z0))
ACTIVE(negrecip(z0)) → c15(NEGRECIP(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c16(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(cons2(z0, z1)) → c17(CONS2(z0, active(z1)), ACTIVE(z1))
ACTIVE(rcons(z0, z1)) → c18(RCONS(active(z0), z1), ACTIVE(z0))
ACTIVE(rcons(z0, z1)) → c19(RCONS(z0, active(z1)), ACTIVE(z1))
ACTIVE(from(z0)) → c20(FROM(active(z0)), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c21(2NDSPOS(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndspos(z0, z1)) → c22(2NDSPOS(z0, active(z1)), ACTIVE(z1))
ACTIVE(2ndsneg(z0, z1)) → c23(2NDSNEG(active(z0), z1), ACTIVE(z0))
ACTIVE(2ndsneg(z0, z1)) → c24(2NDSNEG(z0, active(z1)), ACTIVE(z1))
ACTIVE(pi(z0)) → c25(PI(active(z0)), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c26(PLUS(active(z0), z1), ACTIVE(z0))
ACTIVE(plus(z0, z1)) → c27(PLUS(z0, active(z1)), ACTIVE(z1))
ACTIVE(times(z0, z1)) → c28(TIMES(active(z0), z1), ACTIVE(z0))
ACTIVE(times(z0, z1)) → c29(TIMES(z0, active(z1)), ACTIVE(z1))
ACTIVE(square(z0)) → c30(SQUARE(active(z0)), ACTIVE(z0))
ACTIVE(from(z0)) → c(S(z0))
ACTIVE(pi(z0)) → c7(2NDSPOS(z0, from(0)))
ACTIVE(plus(s(z0), z1)) → c9(PLUS(z0, z1))
ACTIVE(times(s(z0), z1)) → c11(TIMES(z0, z1))
ACTIVE(2ndspos(s(x0), cons(z0, mark(z1)))) → c2(2NDSPOS(s(x0), mark(cons2(z0, z1))), S(x0), CONS2(z0, mark(z1)))
ACTIVE(2ndspos(s(x0), cons(x1, x2))) → c2(S(x0))
PROPER(s(z0)) → c63(S(proper(z0)), PROPER(z0))
PROPER(posrecip(z0)) → c64(POSRECIP(proper(z0)), PROPER(z0))
PROPER(negrecip(z0)) → c65(NEGRECIP(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c67(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(cons2(z0, z1)) → c68(CONS2(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(rcons(z0, z1)) → c70(RCONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(from(z0)) → c71(FROM(proper(z0)), PROPER(z0))
PROPER(2ndspos(z0, z1)) → c72(2NDSPOS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(2ndsneg(z0, z1)) → c73(2NDSNEG(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(pi(z0)) → c74(PI(proper(z0)), PROPER(z0))
PROPER(plus(z0, z1)) → c75(PLUS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(times(z0, z1)) → c76(TIMES(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(square(z0)) → c77(SQUARE(proper(z0)), PROPER(z0))
TOP(mark(s(z0))) → c78(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(posrecip(z0))) → c78(TOP(posrecip(proper(z0))), PROPER(posrecip(z0)))
TOP(mark(negrecip(z0))) → c78(TOP(negrecip(proper(z0))), PROPER(negrecip(z0)))
TOP(mark(cons(z0, z1))) → c78(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(cons2(z0, z1))) → c78(TOP(cons2(proper(z0), proper(z1))), PROPER(cons2(z0, z1)))
TOP(mark(rcons(z0, z1))) → c78(TOP(rcons(proper(z0), proper(z1))), PROPER(rcons(z0, z1)))
TOP(mark(from(z0))) → c78(TOP(from(proper(z0))), PROPER(from(z0)))
TOP(mark(2ndspos(z0, z1))) → c78(TOP(2ndspos(proper(z0), proper(z1))), PROPER(2ndspos(z0, z1)))
TOP(mark(2ndsneg(z0, z1))) → c78(TOP(2ndsneg(proper(z0), proper(z1))), PROPER(2ndsneg(z0, z1)))
TOP(mark(pi(z0))) → c78(TOP(pi(proper(z0))), PROPER(pi(z0)))
TOP(mark(plus(z0, z1))) → c78(TOP(plus(proper(z0), proper(z1))), PROPER(plus(z0, z1)))
TOP(mark(times(z0, z1))) → c78(TOP(times(proper(z0), proper(z1))), PROPER(times(z0, z1)))
TOP(mark(square(z0))) → c78(TOP(square(proper(z0))), PROPER(square(z0)))
TOP(ok(from(z0))) → c79(TOP(mark(cons(z0, from(s(z0))))), ACTIVE(from(z0)))
TOP(ok(2ndspos(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndspos(0, z0)))
TOP(ok(2ndspos(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndspos(s(z0), cons2(z1, z2)))), ACTIVE(2ndspos(s(z0), cons(z1, z2))))
TOP(ok(2ndspos(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))), ACTIVE(2ndspos(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(2ndsneg(0, z0))) → c79(TOP(mark(rnil)), ACTIVE(2ndsneg(0, z0)))
TOP(ok(2ndsneg(s(z0), cons(z1, z2)))) → c79(TOP(mark(2ndsneg(s(z0), cons2(z1, z2)))), ACTIVE(2ndsneg(s(z0), cons(z1, z2))))
TOP(ok(2ndsneg(s(z0), cons2(z1, cons(z2, z3))))) → c79(TOP(mark(rcons(negrecip(z2), 2ndspos(z0, z3)))), ACTIVE(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))))
TOP(ok(pi(z0))) → c79(TOP(mark(2ndspos(z0, from(0)))), ACTIVE(pi(z0)))
TOP(ok(plus(0, z0))) → c79(TOP(mark(z0)), ACTIVE(plus(0, z0)))
TOP(ok(plus(s(z0), z1))) → c79(TOP(mark(s(plus(z0, z1)))), ACTIVE(plus(s(z0), z1)))
TOP(ok(times(0, z0))) → c79(TOP(mark(0)), ACTIVE(times(0, z0)))
TOP(ok(times(s(z0), z1))) → c79(TOP(mark(plus(z1, times(z0, z1)))), ACTIVE(times(s(z0), z1)))
TOP(ok(square(z0))) → c79(TOP(mark(times(z0, z0))), ACTIVE(square(z0)))
TOP(ok(s(z0))) → c79(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(posrecip(z0))) → c79(TOP(posrecip(active(z0))), ACTIVE(posrecip(z0)))
TOP(ok(negrecip(z0))) → c79(TOP(negrecip(active(z0))), ACTIVE(negrecip(z0)))
TOP(ok(cons(z0, z1))) → c79(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(cons2(z0, z1))) → c79(TOP(cons2(z0, active(z1))), ACTIVE(cons2(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(active(z0), z1)), ACTIVE(rcons(z0, z1)))
TOP(ok(rcons(z0, z1))) → c79(TOP(rcons(z0, active(z1))), ACTIVE(rcons(z0, z1)))
TOP(ok(from(z0))) → c79(TOP(from(active(z0))), ACTIVE(from(z0)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(active(z0), z1)), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndspos(z0, z1))) → c79(TOP(2ndspos(z0, active(z1))), ACTIVE(2ndspos(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(active(z0), z1)), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(2ndsneg(z0, z1))) → c79(TOP(2ndsneg(z0, active(z1))), ACTIVE(2ndsneg(z0, z1)))
TOP(ok(pi(z0))) → c79(TOP(pi(active(z0))), ACTIVE(pi(z0)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(active(z0), z1)), ACTIVE(plus(z0, z1)))
TOP(ok(plus(z0, z1))) → c79(TOP(plus(z0, active(z1))), ACTIVE(plus(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(active(z0), z1)), ACTIVE(times(z0, z1)))
TOP(ok(times(z0, z1))) → c79(TOP(times(z0, active(z1))), ACTIVE(times(z0, z1)))
TOP(ok(square(z0))) → c79(TOP(square(active(z0))), ACTIVE(square(z0)))
(18) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
TOP(ok(x0)) → c79
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
TOP(ok(x0)) → c79
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE, TOP
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c78, c79
(19) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 4 trailing nodes:
TOP(mark(0)) → c78(TOP(ok(0)))
TOP(mark(nil)) → c78(TOP(ok(nil)))
TOP(mark(rnil)) → c78(TOP(ok(rnil)))
TOP(ok(x0)) → c79
(20) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:none
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(21) 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.
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = x1
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = [4]x2
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
(22) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(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.
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = [4]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [2]
POL(ok(x1)) = [2] + x1
(24) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(25) 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.
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = [4]x2
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = [2]x1
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
(26) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(27) 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.
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = x22
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = 0
POL(ok(x1)) = [1] + x1
(28) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(29) 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.
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [3]x2
POL(CONS2(x1, x2)) = [2]x1 + [2]x2
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
(30) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(31) 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.
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [4]x2
POL(CONS2(x1, x2)) = [2]x1 + [2]x2
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = [4]x1
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [2] + x1
POL(ok(x1)) = [2] + x1
(32) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(33) 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.
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = x1
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = x1
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
(34) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(35) 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.
PI(ok(z0)) → c53(PI(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = [5]x1
POL(PI(x1)) = [2]x1
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [1] + x1
(36) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(37) 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.
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [3]x2
POL(CONS2(x1, x2)) = [2]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = [4]x1
POL(PI(x1)) = [4]x1
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = [2]x1
POL(RCONS(x1, x2)) = [4]x2
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
(38) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(39) 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.
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [3]x2
POL(CONS2(x1, x2)) = [3]x2
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = [4]x1
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = [4]x2
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [1] + x1
(40) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(41) 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.
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = [4]x1 + [4]x2
POL(CONS(x1, x2)) = [3]x2
POL(CONS2(x1, x2)) = [3]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = x1
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [2] + x1
(42) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(43) 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.
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [2]x2 + [2]x1·x2
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = [3]x12
POL(TIMES(x1, x2)) = [3]x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [3] + x1
POL(ok(x1)) = [1] + x1
(44) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(45) 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.
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = [4]x1
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [2]x2
POL(CONS2(x1, x2)) = [2]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = [4]x1
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = [2]x1
POL(S(x1)) = 0
POL(SQUARE(x1)) = [2]x1
POL(TIMES(x1, x2)) = [3]x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = [1] + x1
(46) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
S(mark(z0)) → c31(S(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(47) 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.
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = [2]x2
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [4]x1
POL(CONS2(x1, x2)) = [3]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = [3]x1
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = [4]x2
POL(S(x1)) = [2]x1
POL(SQUARE(x1)) = [2]x1
POL(TIMES(x1, x2)) = [4]x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = [4] + x1
(48) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(49) 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.
FROM(mark(z0)) → c44(FROM(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = [4]x1
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = [2]x1
POL(NEGRECIP(x1)) = [2]x1
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = [4]x1
POL(TIMES(x1, x2)) = 0
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
(50) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(51) 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.
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = [3]x1
POL(2NDSPOS(x1, x2)) = x2
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = [2]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = [4]x1
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = [4]x1 + [2]x2
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = [4]x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
(52) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
FROM(ok(z0)) → c45(FROM(z0))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(53) 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.
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = [2]x1
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = [5]x2
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = [2]x1
POL(PLUS(x1, x2)) = 0
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = [4]x1
POL(S(x1)) = x1
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = [4]x1 + x2
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
(54) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
FROM(ok(z0)) → c45(FROM(z0))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(55) 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.
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = [2]x1
POL(2NDSPOS(x1, x2)) = [4]x2
POL(CONS(x1, x2)) = [4]x2
POL(CONS2(x1, x2)) = [5]x1
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = x1
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = [2]x1
POL(S(x1)) = 0
POL(SQUARE(x1)) = [2]x1
POL(TIMES(x1, x2)) = [4]x2
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [4] + x1
(56) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
FROM(ok(z0)) → c45(FROM(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(57) 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.
FROM(ok(z0)) → c45(FROM(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = [4]x2
POL(2NDSPOS(x1, x2)) = 0
POL(CONS(x1, x2)) = [2]x2
POL(CONS2(x1, x2)) = 0
POL(FROM(x1)) = x1
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = [2]x1
POL(PLUS(x1, x2)) = [2]x1 + [3]x2
POL(POSRECIP(x1)) = 0
POL(RCONS(x1, x2)) = [2]x2
POL(S(x1)) = 0
POL(SQUARE(x1)) = 0
POL(TIMES(x1, x2)) = [4]x1 + [2]x2
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [1] + x1
(58) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
FROM(ok(z0)) → c45(FROM(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(59) 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.
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
We considered the (Usable) Rules:none
And the Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(2NDSNEG(x1, x2)) = 0
POL(2NDSPOS(x1, x2)) = [4]x1
POL(CONS(x1, x2)) = 0
POL(CONS2(x1, x2)) = [2]x1 + [4]x2
POL(FROM(x1)) = 0
POL(NEGRECIP(x1)) = 0
POL(PI(x1)) = 0
POL(PLUS(x1, x2)) = [3]x1 + [2]x2
POL(POSRECIP(x1)) = [2]x1
POL(RCONS(x1, x2)) = 0
POL(S(x1)) = 0
POL(SQUARE(x1)) = [4]x1
POL(TIMES(x1, x2)) = [4]x1 + [4]x2
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(c60(x1)) = x1
POL(c61(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [1] + x1
(60) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(from(z0)) → mark(cons(z0, from(s(z0))))
active(2ndspos(0, z0)) → mark(rnil)
active(2ndspos(s(z0), cons(z1, z2))) → mark(2ndspos(s(z0), cons2(z1, z2)))
active(2ndspos(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(posrecip(z2), 2ndsneg(z0, z3)))
active(2ndsneg(0, z0)) → mark(rnil)
active(2ndsneg(s(z0), cons(z1, z2))) → mark(2ndsneg(s(z0), cons2(z1, z2)))
active(2ndsneg(s(z0), cons2(z1, cons(z2, z3)))) → mark(rcons(negrecip(z2), 2ndspos(z0, z3)))
active(pi(z0)) → mark(2ndspos(z0, from(0)))
active(plus(0, z0)) → mark(z0)
active(plus(s(z0), z1)) → mark(s(plus(z0, z1)))
active(times(0, z0)) → mark(0)
active(times(s(z0), z1)) → mark(plus(z1, times(z0, z1)))
active(square(z0)) → mark(times(z0, z0))
active(s(z0)) → s(active(z0))
active(posrecip(z0)) → posrecip(active(z0))
active(negrecip(z0)) → negrecip(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(cons2(z0, z1)) → cons2(z0, active(z1))
active(rcons(z0, z1)) → rcons(active(z0), z1)
active(rcons(z0, z1)) → rcons(z0, active(z1))
active(from(z0)) → from(active(z0))
active(2ndspos(z0, z1)) → 2ndspos(active(z0), z1)
active(2ndspos(z0, z1)) → 2ndspos(z0, active(z1))
active(2ndsneg(z0, z1)) → 2ndsneg(active(z0), z1)
active(2ndsneg(z0, z1)) → 2ndsneg(z0, active(z1))
active(pi(z0)) → pi(active(z0))
active(plus(z0, z1)) → plus(active(z0), z1)
active(plus(z0, z1)) → plus(z0, active(z1))
active(times(z0, z1)) → times(active(z0), z1)
active(times(z0, z1)) → times(z0, active(z1))
active(square(z0)) → square(active(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
posrecip(mark(z0)) → mark(posrecip(z0))
posrecip(ok(z0)) → ok(posrecip(z0))
negrecip(mark(z0)) → mark(negrecip(z0))
negrecip(ok(z0)) → ok(negrecip(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
cons2(z0, mark(z1)) → mark(cons2(z0, z1))
cons2(ok(z0), ok(z1)) → ok(cons2(z0, z1))
rcons(mark(z0), z1) → mark(rcons(z0, z1))
rcons(z0, mark(z1)) → mark(rcons(z0, z1))
rcons(ok(z0), ok(z1)) → ok(rcons(z0, z1))
from(mark(z0)) → mark(from(z0))
from(ok(z0)) → ok(from(z0))
2ndspos(mark(z0), z1) → mark(2ndspos(z0, z1))
2ndspos(z0, mark(z1)) → mark(2ndspos(z0, z1))
2ndspos(ok(z0), ok(z1)) → ok(2ndspos(z0, z1))
2ndsneg(mark(z0), z1) → mark(2ndsneg(z0, z1))
2ndsneg(z0, mark(z1)) → mark(2ndsneg(z0, z1))
2ndsneg(ok(z0), ok(z1)) → ok(2ndsneg(z0, z1))
pi(mark(z0)) → mark(pi(z0))
pi(ok(z0)) → ok(pi(z0))
plus(mark(z0), z1) → mark(plus(z0, z1))
plus(z0, mark(z1)) → mark(plus(z0, z1))
plus(ok(z0), ok(z1)) → ok(plus(z0, z1))
times(mark(z0), z1) → mark(times(z0, z1))
times(z0, mark(z1)) → mark(times(z0, z1))
times(ok(z0), ok(z1)) → ok(times(z0, z1))
square(mark(z0)) → mark(square(z0))
square(ok(z0)) → ok(square(z0))
proper(0) → ok(0)
proper(s(z0)) → s(proper(z0))
proper(posrecip(z0)) → posrecip(proper(z0))
proper(negrecip(z0)) → negrecip(proper(z0))
proper(nil) → ok(nil)
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(cons2(z0, z1)) → cons2(proper(z0), proper(z1))
proper(rnil) → ok(rnil)
proper(rcons(z0, z1)) → rcons(proper(z0), proper(z1))
proper(from(z0)) → from(proper(z0))
proper(2ndspos(z0, z1)) → 2ndspos(proper(z0), proper(z1))
proper(2ndsneg(z0, z1)) → 2ndsneg(proper(z0), proper(z1))
proper(pi(z0)) → pi(proper(z0))
proper(plus(z0, z1)) → plus(proper(z0), proper(z1))
proper(times(z0, z1)) → times(proper(z0), proper(z1))
proper(square(z0)) → square(proper(z0))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
S(mark(z0)) → c31(S(z0))
S(ok(z0)) → c32(S(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
FROM(ok(z0)) → c45(FROM(z0))
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
PI(mark(z0)) → c52(PI(z0))
PI(ok(z0)) → c53(PI(z0))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
S tuples:none
K tuples:
2NDSPOS(mark(z0), z1) → c46(2NDSPOS(z0, z1))
PLUS(z0, mark(z1)) → c55(PLUS(z0, z1))
CONS2(ok(z0), ok(z1)) → c40(CONS2(z0, z1))
NEGRECIP(mark(z0)) → c35(NEGRECIP(z0))
2NDSNEG(z0, mark(z1)) → c50(2NDSNEG(z0, z1))
CONS(ok(z0), ok(z1)) → c38(CONS(z0, z1))
CONS2(z0, mark(z1)) → c39(CONS2(z0, z1))
NEGRECIP(ok(z0)) → c36(NEGRECIP(z0))
2NDSNEG(mark(z0), z1) → c49(2NDSNEG(z0, z1))
PI(ok(z0)) → c53(PI(z0))
POSRECIP(mark(z0)) → c33(POSRECIP(z0))
RCONS(z0, mark(z1)) → c42(RCONS(z0, z1))
PI(mark(z0)) → c52(PI(z0))
TIMES(ok(z0), ok(z1)) → c59(TIMES(z0, z1))
S(ok(z0)) → c32(S(z0))
2NDSPOS(ok(z0), ok(z1)) → c48(2NDSPOS(z0, z1))
TIMES(mark(z0), z1) → c57(TIMES(z0, z1))
SQUARE(mark(z0)) → c60(SQUARE(z0))
SQUARE(ok(z0)) → c61(SQUARE(z0))
RCONS(mark(z0), z1) → c41(RCONS(z0, z1))
RCONS(ok(z0), ok(z1)) → c43(RCONS(z0, z1))
2NDSNEG(ok(z0), ok(z1)) → c51(2NDSNEG(z0, z1))
S(mark(z0)) → c31(S(z0))
CONS(mark(z0), z1) → c37(CONS(z0, z1))
FROM(mark(z0)) → c44(FROM(z0))
2NDSPOS(z0, mark(z1)) → c47(2NDSPOS(z0, z1))
PLUS(mark(z0), z1) → c54(PLUS(z0, z1))
TIMES(z0, mark(z1)) → c58(TIMES(z0, z1))
PLUS(ok(z0), ok(z1)) → c56(PLUS(z0, z1))
FROM(ok(z0)) → c45(FROM(z0))
POSRECIP(ok(z0)) → c34(POSRECIP(z0))
Defined Rule Symbols:
active, s, posrecip, negrecip, cons, cons2, rcons, from, 2ndspos, 2ndsneg, pi, plus, times, square, proper, top
Defined Pair Symbols:
S, POSRECIP, NEGRECIP, CONS, CONS2, RCONS, FROM, 2NDSPOS, 2NDSNEG, PI, PLUS, TIMES, SQUARE
Compound Symbols:
c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61
(61) SIsEmptyProof (EQUIVALENT transformation)
The set S is empty
(62) BOUNDS(O(1), O(1))