(0) Obligation:

Q restricted rewrite system:
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))

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(from(X)) → CONS(X, from(s(X)))
ACTIVE(from(X)) → FROM(s(X))
ACTIVE(from(X)) → S(X)
ACTIVE(2ndspos(s(N), cons(X, Z))) → 2NDSPOS(s(N), cons2(X, Z))
ACTIVE(2ndspos(s(N), cons(X, Z))) → CONS2(X, Z)
ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) → RCONS(posrecip(Y), 2ndsneg(N, Z))
ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) → POSRECIP(Y)
ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) → 2NDSNEG(N, Z)
ACTIVE(2ndsneg(s(N), cons(X, Z))) → 2NDSNEG(s(N), cons2(X, Z))
ACTIVE(2ndsneg(s(N), cons(X, Z))) → CONS2(X, Z)
ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) → RCONS(negrecip(Y), 2ndspos(N, Z))
ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) → NEGRECIP(Y)
ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) → 2NDSPOS(N, Z)
ACTIVE(pi(X)) → 2NDSPOS(X, from(0))
ACTIVE(pi(X)) → FROM(0)
ACTIVE(plus(s(X), Y)) → S(plus(X, Y))
ACTIVE(plus(s(X), Y)) → PLUS(X, Y)
ACTIVE(times(s(X), Y)) → PLUS(Y, times(X, Y))
ACTIVE(times(s(X), Y)) → TIMES(X, Y)
ACTIVE(square(X)) → TIMES(X, X)
ACTIVE(s(X)) → S(active(X))
ACTIVE(s(X)) → ACTIVE(X)
ACTIVE(posrecip(X)) → POSRECIP(active(X))
ACTIVE(posrecip(X)) → ACTIVE(X)
ACTIVE(negrecip(X)) → NEGRECIP(active(X))
ACTIVE(negrecip(X)) → ACTIVE(X)
ACTIVE(cons(X1, X2)) → CONS(active(X1), X2)
ACTIVE(cons(X1, X2)) → ACTIVE(X1)
ACTIVE(cons2(X1, X2)) → CONS2(X1, active(X2))
ACTIVE(cons2(X1, X2)) → ACTIVE(X2)
ACTIVE(rcons(X1, X2)) → RCONS(active(X1), X2)
ACTIVE(rcons(X1, X2)) → ACTIVE(X1)
ACTIVE(rcons(X1, X2)) → RCONS(X1, active(X2))
ACTIVE(rcons(X1, X2)) → ACTIVE(X2)
ACTIVE(from(X)) → FROM(active(X))
ACTIVE(from(X)) → ACTIVE(X)
ACTIVE(2ndspos(X1, X2)) → 2NDSPOS(active(X1), X2)
ACTIVE(2ndspos(X1, X2)) → ACTIVE(X1)
ACTIVE(2ndspos(X1, X2)) → 2NDSPOS(X1, active(X2))
ACTIVE(2ndspos(X1, X2)) → ACTIVE(X2)
ACTIVE(2ndsneg(X1, X2)) → 2NDSNEG(active(X1), X2)
ACTIVE(2ndsneg(X1, X2)) → ACTIVE(X1)
ACTIVE(2ndsneg(X1, X2)) → 2NDSNEG(X1, active(X2))
ACTIVE(2ndsneg(X1, X2)) → ACTIVE(X2)
ACTIVE(pi(X)) → PI(active(X))
ACTIVE(pi(X)) → ACTIVE(X)
ACTIVE(plus(X1, X2)) → PLUS(active(X1), X2)
ACTIVE(plus(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → PLUS(X1, active(X2))
ACTIVE(plus(X1, X2)) → ACTIVE(X2)
ACTIVE(times(X1, X2)) → TIMES(active(X1), X2)
ACTIVE(times(X1, X2)) → ACTIVE(X1)
ACTIVE(times(X1, X2)) → TIMES(X1, active(X2))
ACTIVE(times(X1, X2)) → ACTIVE(X2)
ACTIVE(square(X)) → SQUARE(active(X))
ACTIVE(square(X)) → ACTIVE(X)
S(mark(X)) → S(X)
POSRECIP(mark(X)) → POSRECIP(X)
NEGRECIP(mark(X)) → NEGRECIP(X)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS2(X1, mark(X2)) → CONS2(X1, X2)
RCONS(mark(X1), X2) → RCONS(X1, X2)
RCONS(X1, mark(X2)) → RCONS(X1, X2)
FROM(mark(X)) → FROM(X)
2NDSPOS(mark(X1), X2) → 2NDSPOS(X1, X2)
2NDSPOS(X1, mark(X2)) → 2NDSPOS(X1, X2)
2NDSNEG(mark(X1), X2) → 2NDSNEG(X1, X2)
2NDSNEG(X1, mark(X2)) → 2NDSNEG(X1, X2)
PI(mark(X)) → PI(X)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(X1, mark(X2)) → PLUS(X1, X2)
TIMES(mark(X1), X2) → TIMES(X1, X2)
TIMES(X1, mark(X2)) → TIMES(X1, X2)
SQUARE(mark(X)) → SQUARE(X)
PROPER(s(X)) → S(proper(X))
PROPER(s(X)) → PROPER(X)
PROPER(posrecip(X)) → POSRECIP(proper(X))
PROPER(posrecip(X)) → PROPER(X)
PROPER(negrecip(X)) → NEGRECIP(proper(X))
PROPER(negrecip(X)) → PROPER(X)
PROPER(cons(X1, X2)) → CONS(proper(X1), proper(X2))
PROPER(cons(X1, X2)) → PROPER(X1)
PROPER(cons(X1, X2)) → PROPER(X2)
PROPER(cons2(X1, X2)) → CONS2(proper(X1), proper(X2))
PROPER(cons2(X1, X2)) → PROPER(X1)
PROPER(cons2(X1, X2)) → PROPER(X2)
PROPER(rcons(X1, X2)) → RCONS(proper(X1), proper(X2))
PROPER(rcons(X1, X2)) → PROPER(X1)
PROPER(rcons(X1, X2)) → PROPER(X2)
PROPER(from(X)) → FROM(proper(X))
PROPER(from(X)) → PROPER(X)
PROPER(2ndspos(X1, X2)) → 2NDSPOS(proper(X1), proper(X2))
PROPER(2ndspos(X1, X2)) → PROPER(X1)
PROPER(2ndspos(X1, X2)) → PROPER(X2)
PROPER(2ndsneg(X1, X2)) → 2NDSNEG(proper(X1), proper(X2))
PROPER(2ndsneg(X1, X2)) → PROPER(X1)
PROPER(2ndsneg(X1, X2)) → PROPER(X2)
PROPER(pi(X)) → PI(proper(X))
PROPER(pi(X)) → PROPER(X)
PROPER(plus(X1, X2)) → PLUS(proper(X1), proper(X2))
PROPER(plus(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X2)
PROPER(times(X1, X2)) → TIMES(proper(X1), proper(X2))
PROPER(times(X1, X2)) → PROPER(X1)
PROPER(times(X1, X2)) → PROPER(X2)
PROPER(square(X)) → SQUARE(proper(X))
PROPER(square(X)) → PROPER(X)
S(ok(X)) → S(X)
POSRECIP(ok(X)) → POSRECIP(X)
NEGRECIP(ok(X)) → NEGRECIP(X)
CONS(ok(X1), ok(X2)) → CONS(X1, X2)
CONS2(ok(X1), ok(X2)) → CONS2(X1, X2)
RCONS(ok(X1), ok(X2)) → RCONS(X1, X2)
FROM(ok(X)) → FROM(X)
2NDSPOS(ok(X1), ok(X2)) → 2NDSPOS(X1, X2)
2NDSNEG(ok(X1), ok(X2)) → 2NDSNEG(X1, X2)
PI(ok(X)) → PI(X)
PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)
TIMES(ok(X1), ok(X2)) → TIMES(X1, X2)
SQUARE(ok(X)) → SQUARE(X)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 16 SCCs with 53 less nodes.

(4) Complex Obligation (AND)

(5) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SQUARE(ok(X)) → SQUARE(X)
SQUARE(mark(X)) → SQUARE(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(6) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


SQUARE(ok(X)) → SQUARE(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
SQUARE(x1)  =  SQUARE(x1)
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > 2ndspos2 > s1 > ok1 > SQUARE1 > 0
top > active1 > cons2 > 2ndspos2 > cons22 > ok1 > SQUARE1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > SQUARE1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > active1 > cons2 > negrecip1 > ok1 > SQUARE1 > 0
top > active1 > posrecip1 > ok1 > SQUARE1 > 0
top > active1 > pi1 > ok1 > SQUARE1 > 0
top > active1 > plus1 > ok1 > SQUARE1 > 0
top > proper1 > cons2 > 2ndspos2 > s1 > ok1 > SQUARE1 > 0
top > proper1 > cons2 > 2ndspos2 > cons22 > ok1 > SQUARE1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > SQUARE1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > proper1 > cons2 > negrecip1 > ok1 > SQUARE1 > 0
top > proper1 > posrecip1 > ok1 > SQUARE1 > 0
top > proper1 > pi1 > ok1 > SQUARE1 > 0
top > proper1 > plus1 > ok1 > SQUARE1 > 0
top > proper1 > nil > ok1 > SQUARE1 > 0

Status:
rnil: []
cons22: [2,1]
negrecip1: [1]
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
SQUARE1: [1]
plus1: [1]
s1: [1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SQUARE(mark(X)) → SQUARE(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(8) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


SQUARE(mark(X)) → SQUARE(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
SQUARE(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > rcons2 > mark1
proper1 > ok > top > active1 > s1 > negrecip1 > mark1
proper1 > ok > top > active1 > s1 > plus2 > mark1
proper1 > ok > top > active1 > s1 > times2 > mark1
proper1 > ok > top > active1 > s1 > times2 > 0
proper1 > ok > top > active1 > posrecip1 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > pi1 > 0
proper1 > nil

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(9) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(11) TRUE

(12) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TIMES(X1, mark(X2)) → TIMES(X1, X2)
TIMES(mark(X1), X2) → TIMES(X1, X2)
TIMES(ok(X1), ok(X2)) → TIMES(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(13) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


TIMES(mark(X1), X2) → TIMES(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
TIMES(x1, x2)  =  TIMES(x1)
mark(x1)  =  mark(x1)
ok(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  x1
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
nil > TIMES1
top > active1 > from1 > cons2 > mark1 > TIMES1
top > active1 > posrecip1 > mark1 > TIMES1
top > active1 > 2ndsneg2 > 2ndspos2 > rnil > TIMES1
top > active1 > 2ndsneg2 > 2ndspos2 > rcons2 > mark1 > TIMES1
top > active1 > 2ndsneg2 > cons22 > rcons2 > mark1 > TIMES1
top > active1 > times2 > 0 > mark1 > TIMES1
top > active1 > times2 > 0 > rnil > TIMES1
top > active1 > times2 > plus2 > mark1 > TIMES1
top > active1 > square1 > mark1 > TIMES1

Status:
from1: [1]
plus2: [1,2]
TIMES1: [1]
rnil: []
cons22: [2,1]
mark1: [1]
rcons2: [2,1]
posrecip1: [1]
square1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
times2: [1,2]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(14) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TIMES(X1, mark(X2)) → TIMES(X1, X2)
TIMES(ok(X1), ok(X2)) → TIMES(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(15) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


TIMES(ok(X1), ok(X2)) → TIMES(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
TIMES(x1, x2)  =  TIMES(x1)
mark(x1)  =  mark
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  x1
s(x1)  =  x1
2ndspos(x1, x2)  =  x1
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  x2
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  x1
plus(x1, x2)  =  x1
times(x1, x2)  =  x2
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
TIMES1 > mark
active1 > from1 > ok1 > top > mark
active1 > 0 > mark
active1 > rnil > ok1 > top > mark
active1 > cons21 > ok1 > top > mark
active1 > negrecip1 > ok1 > top > mark
active1 > square1 > ok1 > top > mark
proper1 > from1 > ok1 > top > mark
proper1 > 0 > mark
proper1 > rnil > ok1 > top > mark
proper1 > cons21 > ok1 > top > mark
proper1 > negrecip1 > ok1 > top > mark
proper1 > square1 > ok1 > top > mark
proper1 > nil > mark

Status:
from1: [1]
TIMES1: [1]
rnil: []
negrecip1: [1]
ok1: [1]
square1: [1]
0: []
active1: [1]
cons21: [1]
mark: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TIMES(X1, mark(X2)) → TIMES(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(17) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


TIMES(X1, mark(X2)) → TIMES(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
TIMES(x1, x2)  =  TIMES(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
TIMES2 > mark1
active1 > cons2 > 2ndsneg2 > mark1
active1 > cons2 > negrecip1 > mark1
active1 > cons2 > ok > mark1
active1 > 2ndspos2 > rnil > ok > mark1
active1 > 2ndspos2 > rcons2 > ok > mark1
active1 > 2ndspos2 > posrecip1 > ok > mark1
active1 > 2ndspos2 > 2ndsneg2 > mark1
active1 > plus2 > ok > mark1
active1 > times2 > 0 > mark1
active1 > times2 > ok > mark1
active1 > square1 > ok > mark1
proper1 > cons2 > 2ndsneg2 > mark1
proper1 > cons2 > negrecip1 > mark1
proper1 > cons2 > ok > mark1
proper1 > 2ndspos2 > rnil > ok > mark1
proper1 > 2ndspos2 > rcons2 > ok > mark1
proper1 > 2ndspos2 > posrecip1 > ok > mark1
proper1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > plus2 > ok > mark1
proper1 > times2 > 0 > mark1
proper1 > times2 > ok > mark1
proper1 > square1 > ok > mark1
proper1 > nil > mark1
top > mark1

Status:
plus2: [2,1]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
square1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [2,1]
TIMES2: [2,1]
2ndspos2: [2,1]
times2: [2,1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(18) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(19) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(20) TRUE

(21) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(22) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(X1, mark(X2)) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PLUS(x1, x2)  =  PLUS(x2)
mark(x1)  =  mark(x1)
ok(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x2)
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  x1
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
PLUS1 > rnil
active1 > from1 > cons2 > mark1 > rnil
active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1 > rnil
active1 > s1 > plus2 > mark1 > rnil
active1 > s1 > times2 > 0 > mark1 > rnil
active1 > cons21 > 2ndspos2 > 2ndsneg2 > mark1 > rnil
active1 > rcons2 > mark1 > rnil
active1 > posrecip1 > mark1 > rnil
active1 > square1 > times2 > 0 > mark1 > rnil
nil > rnil
top > rnil

Status:
from1: [1]
plus2: [1,2]
rnil: []
mark1: [1]
rcons2: [2,1]
posrecip1: [1]
square1: [1]
0: []
2ndsneg2: [2,1]
PLUS1: [1]
active1: [1]
cons2: [1,2]
2ndspos2: [2,1]
cons21: [1]
times2: [1,2]
s1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(23) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(24) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PLUS(x1, x2)  =  PLUS(x2)
mark(x1)  =  mark
ok(x1)  =  ok(x1)
active(x1)  =  x1
from(x1)  =  x1
cons(x1, x2)  =  x1
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x1
rcons(x1, x2)  =  x2
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  x1
times(x1, x2)  =  x2
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
0 > ok1 > PLUS1 > mark
rnil > ok1 > PLUS1 > mark
proper1 > 2ndspos2 > 2ndsneg2 > ok1 > PLUS1 > mark
proper1 > negrecip1 > ok1 > PLUS1 > mark
proper1 > pi1 > ok1 > PLUS1 > mark
proper1 > square1 > ok1 > PLUS1 > mark
proper1 > nil > ok1 > PLUS1 > mark
top > mark

Status:
rnil: []
negrecip1: [1]
ok1: [1]
square1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
PLUS1: [1]
2ndspos2: [1,2]
mark: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(mark(X1), X2) → PLUS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(26) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(mark(X1), X2) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PLUS(x1, x2)  =  PLUS(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  x1
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > s1 > 2ndspos2 > mark1 > PLUS2
top > active1 > cons2 > s1 > rcons2 > mark1 > PLUS2
top > active1 > cons2 > s1 > 2ndsneg2 > mark1 > PLUS2
top > active1 > cons2 > s1 > times2 > mark1 > PLUS2
top > active1 > cons2 > s1 > times2 > 0
top > active1 > cons2 > s1 > ok
top > active1 > cons2 > cons22 > 2ndspos2 > mark1 > PLUS2
top > active1 > cons2 > cons22 > rcons2 > mark1 > PLUS2
top > active1 > cons2 > cons22 > 2ndsneg2 > mark1 > PLUS2
top > active1 > cons2 > cons22 > ok
top > active1 > rnil > ok
top > active1 > plus2 > s1 > 2ndspos2 > mark1 > PLUS2
top > active1 > plus2 > s1 > rcons2 > mark1 > PLUS2
top > active1 > plus2 > s1 > 2ndsneg2 > mark1 > PLUS2
top > active1 > plus2 > s1 > times2 > mark1 > PLUS2
top > active1 > plus2 > s1 > times2 > 0
top > active1 > plus2 > s1 > ok
top > active1 > square1 > mark1 > PLUS2
top > proper1 > cons2 > s1 > 2ndspos2 > mark1 > PLUS2
top > proper1 > cons2 > s1 > rcons2 > mark1 > PLUS2
top > proper1 > cons2 > s1 > 2ndsneg2 > mark1 > PLUS2
top > proper1 > cons2 > s1 > times2 > mark1 > PLUS2
top > proper1 > cons2 > s1 > times2 > 0
top > proper1 > cons2 > s1 > ok
top > proper1 > cons2 > cons22 > 2ndspos2 > mark1 > PLUS2
top > proper1 > cons2 > cons22 > rcons2 > mark1 > PLUS2
top > proper1 > cons2 > cons22 > 2ndsneg2 > mark1 > PLUS2
top > proper1 > cons2 > cons22 > ok
top > proper1 > rnil > ok
top > proper1 > plus2 > s1 > 2ndspos2 > mark1 > PLUS2
top > proper1 > plus2 > s1 > rcons2 > mark1 > PLUS2
top > proper1 > plus2 > s1 > 2ndsneg2 > mark1 > PLUS2
top > proper1 > plus2 > s1 > times2 > mark1 > PLUS2
top > proper1 > plus2 > s1 > times2 > 0
top > proper1 > plus2 > s1 > ok
top > proper1 > square1 > mark1 > PLUS2
top > proper1 > nil

Status:
plus2: [1,2]
rnil: []
cons22: [1,2]
mark1: [1]
rcons2: [1,2]
square1: [1]
0: []
2ndsneg2: [1,2]
PLUS2: [2,1]
active1: [1]
cons2: [2,1]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(27) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(28) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(29) TRUE

(30) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PI(ok(X)) → PI(X)
PI(mark(X)) → PI(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(31) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PI(ok(X)) → PI(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PI(x1)  =  PI(x1)
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > 2ndspos2 > s1 > ok1 > PI1 > 0
top > active1 > cons2 > 2ndspos2 > cons22 > ok1 > PI1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > PI1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > active1 > cons2 > negrecip1 > ok1 > PI1 > 0
top > active1 > posrecip1 > ok1 > PI1 > 0
top > active1 > pi1 > ok1 > PI1 > 0
top > active1 > plus1 > ok1 > PI1 > 0
top > proper1 > cons2 > 2ndspos2 > s1 > ok1 > PI1 > 0
top > proper1 > cons2 > 2ndspos2 > cons22 > ok1 > PI1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > PI1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > proper1 > cons2 > negrecip1 > ok1 > PI1 > 0
top > proper1 > posrecip1 > ok1 > PI1 > 0
top > proper1 > pi1 > ok1 > PI1 > 0
top > proper1 > plus1 > ok1 > PI1 > 0
top > proper1 > nil > ok1 > PI1 > 0

Status:
rnil: []
PI1: [1]
cons22: [2,1]
negrecip1: [1]
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
plus1: [1]
s1: [1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(32) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PI(mark(X)) → PI(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(33) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PI(mark(X)) → PI(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PI(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > rcons2 > mark1
proper1 > ok > top > active1 > s1 > negrecip1 > mark1
proper1 > ok > top > active1 > s1 > plus2 > mark1
proper1 > ok > top > active1 > s1 > times2 > mark1
proper1 > ok > top > active1 > s1 > times2 > 0
proper1 > ok > top > active1 > posrecip1 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > pi1 > 0
proper1 > nil

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(34) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(35) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(36) TRUE

(37) Obligation:

Q DP problem:
The TRS P consists of the following rules:

2NDSNEG(X1, mark(X2)) → 2NDSNEG(X1, X2)
2NDSNEG(mark(X1), X2) → 2NDSNEG(X1, X2)
2NDSNEG(ok(X1), ok(X2)) → 2NDSNEG(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(38) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


2NDSNEG(X1, mark(X2)) → 2NDSNEG(X1, X2)
2NDSNEG(mark(X1), X2) → 2NDSNEG(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
2NDSNEG(x1, x2)  =  2NDSNEG(x1, x2)
mark(x1)  =  mark(x1)
ok(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
2NDSNEG2 > rnil
active1 > cons2 > mark1 > rnil
active1 > posrecip1 > mark1 > rnil
active1 > 2ndsneg2 > 2ndspos2 > mark1 > rnil
active1 > 2ndsneg2 > rcons2 > mark1 > rnil
active1 > 2ndsneg2 > negrecip1 > mark1 > rnil
active1 > pi1 > 2ndspos2 > mark1 > rnil
active1 > pi1 > 0 > mark1 > rnil
active1 > times2 > 0 > mark1 > rnil
active1 > times2 > plus2 > mark1 > rnil
active1 > square1 > mark1 > rnil
proper1 > cons2 > mark1 > rnil
proper1 > posrecip1 > mark1 > rnil
proper1 > 2ndsneg2 > 2ndspos2 > mark1 > rnil
proper1 > 2ndsneg2 > rcons2 > mark1 > rnil
proper1 > 2ndsneg2 > negrecip1 > mark1 > rnil
proper1 > pi1 > 2ndspos2 > mark1 > rnil
proper1 > pi1 > 0 > mark1 > rnil
proper1 > times2 > 0 > mark1 > rnil
proper1 > times2 > plus2 > mark1 > rnil
proper1 > square1 > mark1 > rnil
proper1 > nil > rnil
top > rnil

Status:
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [2,1]
posrecip1: [1]
pi1: [1]
square1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [1,2]
2NDSNEG2: [1,2]
times2: [2,1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(39) Obligation:

Q DP problem:
The TRS P consists of the following rules:

2NDSNEG(ok(X1), ok(X2)) → 2NDSNEG(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(40) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


2NDSNEG(ok(X1), ok(X2)) → 2NDSNEG(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
2NDSNEG(x1, x2)  =  x1
ok(x1)  =  ok(x1)
active(x1)  =  x1
from(x1)  =  x1
mark(x1)  =  mark
cons(x1, x2)  =  x1
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x2)
rcons(x1, x2)  =  rcons(x1)
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  x1
negrecip(x1)  =  x1
pi(x1)  =  pi(x1)
plus(x1, x2)  =  x1
times(x1, x2)  =  x2
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > cons21 > 2ndspos1 > ok1 > mark
proper1 > cons21 > 2ndspos1 > rnil > mark
proper1 > rcons1 > ok1 > mark
proper1 > pi1 > 2ndspos1 > ok1 > mark
proper1 > pi1 > 2ndspos1 > rnil > mark
proper1 > pi1 > 0 > rnil > mark
proper1 > nil > ok1 > mark
top > mark

Status:
rnil: []
cons21: [1]
mark: []
ok1: [1]
rcons1: [1]
pi1: [1]
proper1: [1]
top: []
0: []
nil: []
2ndspos1: [1]

The following usable rules [FROCOS05] were oriented:

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))

(41) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(42) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(43) TRUE

(44) Obligation:

Q DP problem:
The TRS P consists of the following rules:

2NDSPOS(X1, mark(X2)) → 2NDSPOS(X1, X2)
2NDSPOS(mark(X1), X2) → 2NDSPOS(X1, X2)
2NDSPOS(ok(X1), ok(X2)) → 2NDSPOS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(45) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


2NDSPOS(mark(X1), X2) → 2NDSPOS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
2NDSPOS(x1, x2)  =  2NDSPOS(x1)
mark(x1)  =  mark(x1)
ok(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
active1 > cons2 > s1 > posrecip1 > mark1 > 2NDSPOS1
active1 > cons2 > s1 > 2ndsneg2 > negrecip1 > mark1 > 2NDSPOS1
active1 > cons2 > s1 > times2 > 0 > mark1 > 2NDSPOS1
active1 > cons2 > s1 > times2 > plus2 > mark1 > 2NDSPOS1
active1 > cons2 > cons22 > posrecip1 > mark1 > 2NDSPOS1
active1 > cons2 > cons22 > 2ndsneg2 > negrecip1 > mark1 > 2NDSPOS1
active1 > cons2 > rcons2 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > s1 > posrecip1 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > s1 > 2ndsneg2 > negrecip1 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > s1 > times2 > 0 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > s1 > times2 > plus2 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > rnil > 2NDSPOS1
active1 > 2ndspos2 > cons22 > posrecip1 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > cons22 > 2ndsneg2 > negrecip1 > mark1 > 2NDSPOS1
active1 > 2ndspos2 > rcons2 > mark1 > 2NDSPOS1
active1 > pi1 > from1 > mark1 > 2NDSPOS1
active1 > pi1 > 0 > mark1 > 2NDSPOS1
active1 > square1 > mark1 > 2NDSPOS1
nil > 2NDSPOS1
top > 2NDSPOS1

Status:
from1: [1]
plus2: [2,1]
rnil: []
cons22: [2,1]
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
square1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [1,2]
times2: [2,1]
2NDSPOS1: [1]
s1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(46) Obligation:

Q DP problem:
The TRS P consists of the following rules:

2NDSPOS(X1, mark(X2)) → 2NDSPOS(X1, X2)
2NDSPOS(ok(X1), ok(X2)) → 2NDSPOS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(47) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


2NDSPOS(ok(X1), ok(X2)) → 2NDSPOS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
2NDSPOS(x1, x2)  =  2NDSPOS(x1)
mark(x1)  =  mark
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  rcons(x1)
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  2ndsneg(x1)
negrecip(x1)  =  x1
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
2NDSPOS1 > 0
top > active1 > from1 > mark > s1 > ok1 > 0
top > active1 > cons2 > cons22 > mark > s1 > ok1 > 0
top > active1 > cons2 > rcons1 > mark > s1 > ok1 > 0
top > active1 > 2ndspos2 > rnil > 0
top > active1 > 2ndspos2 > cons22 > mark > s1 > ok1 > 0
top > active1 > 2ndspos2 > rcons1 > mark > s1 > ok1 > 0
top > active1 > 2ndsneg1 > rnil > 0
top > active1 > 2ndsneg1 > cons22 > mark > s1 > ok1 > 0
top > active1 > 2ndsneg1 > rcons1 > mark > s1 > ok1 > 0
top > active1 > times2 > plus1 > mark > s1 > ok1 > 0
top > proper1 > from1 > mark > s1 > ok1 > 0
top > proper1 > cons2 > cons22 > mark > s1 > ok1 > 0
top > proper1 > cons2 > rcons1 > mark > s1 > ok1 > 0
top > proper1 > 2ndspos2 > rnil > 0
top > proper1 > 2ndspos2 > cons22 > mark > s1 > ok1 > 0
top > proper1 > 2ndspos2 > rcons1 > mark > s1 > ok1 > 0
top > proper1 > 2ndsneg1 > rnil > 0
top > proper1 > 2ndsneg1 > cons22 > mark > s1 > ok1 > 0
top > proper1 > 2ndsneg1 > rcons1 > mark > s1 > ok1 > 0
top > proper1 > times2 > plus1 > mark > s1 > ok1 > 0
top > proper1 > nil > ok1 > 0

Status:
from1: [1]
rnil: []
cons22: [2,1]
ok1: [1]
0: []
active1: [1]
cons2: [2,1]
2ndspos2: [1,2]
plus1: [1]
times2: [2,1]
mark: []
2NDSPOS1: [1]
s1: [1]
rcons1: [1]
proper1: [1]
top: []
2ndsneg1: [1]
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(48) Obligation:

Q DP problem:
The TRS P consists of the following rules:

2NDSPOS(X1, mark(X2)) → 2NDSPOS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(49) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


2NDSPOS(X1, mark(X2)) → 2NDSPOS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
2NDSPOS(x1, x2)  =  2NDSPOS(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  x1
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  x1
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
2NDSPOS2 > mark1
nil > ok > mark1
top > active1 > from1 > cons2 > posrecip1 > mark1
top > active1 > from1 > cons2 > 2ndsneg2 > rnil > ok > mark1
top > active1 > from1 > cons2 > 2ndsneg2 > rcons2 > mark1
top > active1 > pi1 > 2ndspos2 > posrecip1 > mark1
top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil > ok > mark1
top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rcons2 > mark1
top > active1 > pi1 > 0 > rnil > ok > mark1
top > active1 > times2 > plus2 > ok > mark1
top > active1 > square1 > ok > mark1

Status:
from1: [1]
plus2: [2,1]
rnil: []
mark1: [1]
2NDSPOS2: [1,2]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
square1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [2,1]
times2: [2,1]
ok: []
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(50) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(51) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(52) TRUE

(53) Obligation:

Q DP problem:
The TRS P consists of the following rules:

FROM(ok(X)) → FROM(X)
FROM(mark(X)) → FROM(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(54) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


FROM(ok(X)) → FROM(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
FROM(x1)  =  FROM(x1)
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > 2ndspos2 > s1 > ok1 > FROM1 > 0
top > active1 > cons2 > 2ndspos2 > cons22 > ok1 > FROM1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > FROM1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > active1 > cons2 > negrecip1 > ok1 > FROM1 > 0
top > active1 > posrecip1 > ok1 > FROM1 > 0
top > active1 > pi1 > ok1 > FROM1 > 0
top > active1 > plus1 > ok1 > FROM1 > 0
top > proper1 > cons2 > 2ndspos2 > s1 > ok1 > FROM1 > 0
top > proper1 > cons2 > 2ndspos2 > cons22 > ok1 > FROM1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > FROM1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > proper1 > cons2 > negrecip1 > ok1 > FROM1 > 0
top > proper1 > posrecip1 > ok1 > FROM1 > 0
top > proper1 > pi1 > ok1 > FROM1 > 0
top > proper1 > plus1 > ok1 > FROM1 > 0
top > proper1 > nil > ok1 > FROM1 > 0

Status:
rnil: []
cons22: [2,1]
negrecip1: [1]
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
FROM1: [1]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
plus1: [1]
s1: [1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(55) Obligation:

Q DP problem:
The TRS P consists of the following rules:

FROM(mark(X)) → FROM(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(56) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


FROM(mark(X)) → FROM(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
FROM(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > rcons2 > mark1
proper1 > ok > top > active1 > s1 > negrecip1 > mark1
proper1 > ok > top > active1 > s1 > plus2 > mark1
proper1 > ok > top > active1 > s1 > times2 > mark1
proper1 > ok > top > active1 > s1 > times2 > 0
proper1 > ok > top > active1 > posrecip1 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > pi1 > 0
proper1 > nil

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(57) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(58) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(59) TRUE

(60) Obligation:

Q DP problem:
The TRS P consists of the following rules:

RCONS(X1, mark(X2)) → RCONS(X1, X2)
RCONS(mark(X1), X2) → RCONS(X1, X2)
RCONS(ok(X1), ok(X2)) → RCONS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(61) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


RCONS(ok(X1), ok(X2)) → RCONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
RCONS(x1, x2)  =  RCONS(x1)
mark(x1)  =  x1
ok(x1)  =  ok(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x2)
rcons(x1, x2)  =  rcons(x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  x1
negrecip(x1)  =  x1
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  x2
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > from1 > ok1
top > active1 > cons1 > ok1
top > active1 > 2ndspos1 > cons21 > ok1
top > active1 > 2ndspos1 > posrecip1 > ok1
top > active1 > 0
top > active1 > rnil > ok1
top > active1 > rcons1 > ok1
top > active1 > plus2 > ok1
top > proper1 > from1 > ok1
top > proper1 > cons1 > ok1
top > proper1 > 2ndspos1 > cons21 > ok1
top > proper1 > 2ndspos1 > posrecip1 > ok1
top > proper1 > 0
top > proper1 > rnil > ok1
top > proper1 > rcons1 > ok1
top > proper1 > plus2 > ok1
top > proper1 > nil > ok1

Status:
plus2: [2,1]
from1: [1]
cons1: [1]
rnil: []
ok1: [1]
posrecip1: [1]
0: []
active1: [1]
cons21: [1]
RCONS1: [1]
proper1: [1]
rcons1: [1]
top: []
nil: []
2ndspos1: [1]

The following usable rules [FROCOS05] were oriented:

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))

(62) Obligation:

Q DP problem:
The TRS P consists of the following rules:

RCONS(X1, mark(X2)) → RCONS(X1, X2)
RCONS(mark(X1), X2) → RCONS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(63) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


RCONS(mark(X1), X2) → RCONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
RCONS(x1, x2)  =  RCONS(x1)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  x1
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
RCONS1 > top
proper1 > ok > active1 > from1 > mark1 > top
proper1 > ok > active1 > cons2 > rcons2 > mark1 > top
proper1 > ok > active1 > cons2 > 2ndsneg2 > mark1 > top
proper1 > ok > active1 > 2ndspos2 > rcons2 > mark1 > top
proper1 > ok > active1 > 2ndspos2 > 2ndsneg2 > mark1 > top
proper1 > ok > active1 > 0 > mark1 > top
proper1 > ok > active1 > rnil > top
proper1 > ok > active1 > posrecip1 > mark1 > top
proper1 > ok > active1 > pi1 > mark1 > top
proper1 > ok > active1 > plus2 > mark1 > top
proper1 > ok > active1 > times2 > mark1 > top
proper1 > ok > active1 > square1 > mark1 > top
proper1 > nil > top

Status:
from1: [1]
plus2: [2,1]
rnil: []
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
square1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
RCONS1: [1]
times2: [2,1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(64) Obligation:

Q DP problem:
The TRS P consists of the following rules:

RCONS(X1, mark(X2)) → RCONS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(65) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


RCONS(X1, mark(X2)) → RCONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
RCONS(x1, x2)  =  RCONS(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
RCONS2 > top
active1 > 0 > ok > cons2 > rcons2 > mark1 > top
active1 > 0 > ok > cons2 > posrecip1 > mark1 > top
active1 > 0 > ok > cons2 > 2ndsneg2 > 2ndspos2 > mark1 > top
active1 > 0 > ok > negrecip1 > mark1 > top
active1 > 0 > ok > times2 > plus2 > mark1 > top
active1 > 0 > ok > square1 > mark1 > top
active1 > rnil > ok > cons2 > rcons2 > mark1 > top
active1 > rnil > ok > cons2 > posrecip1 > mark1 > top
active1 > rnil > ok > cons2 > 2ndsneg2 > 2ndspos2 > mark1 > top
active1 > rnil > ok > negrecip1 > mark1 > top
active1 > rnil > ok > times2 > plus2 > mark1 > top
active1 > rnil > ok > square1 > mark1 > top
proper1 > cons2 > rcons2 > mark1 > top
proper1 > cons2 > posrecip1 > mark1 > top
proper1 > cons2 > 2ndsneg2 > 2ndspos2 > mark1 > top
proper1 > negrecip1 > mark1 > top
proper1 > times2 > plus2 > mark1 > top
proper1 > square1 > mark1 > top
nil > ok > cons2 > rcons2 > mark1 > top
nil > ok > cons2 > posrecip1 > mark1 > top
nil > ok > cons2 > 2ndsneg2 > 2ndspos2 > mark1 > top
nil > ok > negrecip1 > mark1 > top
nil > ok > times2 > plus2 > mark1 > top
nil > ok > square1 > mark1 > top

Status:
plus2: [2,1]
RCONS2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
square1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [1,2]
2ndspos2: [2,1]
times2: [2,1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(66) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(67) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(68) TRUE

(69) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CONS2(ok(X1), ok(X2)) → CONS2(X1, X2)
CONS2(X1, mark(X2)) → CONS2(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(70) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS2(ok(X1), ok(X2)) → CONS2(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CONS2(x1, x2)  =  x1
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  x1
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1)
negrecip(x1)  =  x1
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x2
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
active1 > cons2 > ok1 > top
active1 > 0 > rnil > ok1 > top
active1 > rcons1 > ok1 > top
active1 > posrecip1 > ok1 > top
active1 > 2ndsneg1 > ok1 > top
active1 > pi1 > ok1 > top
active1 > plus1 > ok1 > top
proper1 > cons2 > ok1 > top
proper1 > rnil > ok1 > top
proper1 > rcons1 > ok1 > top
proper1 > posrecip1 > ok1 > top
proper1 > 2ndsneg1 > ok1 > top
proper1 > pi1 > ok1 > top
proper1 > plus1 > ok1 > top
proper1 > nil > ok1 > top

Status:
rnil: []
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
cons2: [1,2]
active1: [1]
plus1: [1]
proper1: [1]
rcons1: [1]
top: []
2ndsneg1: [1]
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(71) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CONS2(X1, mark(X2)) → CONS2(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(72) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS2(X1, mark(X2)) → CONS2(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CONS2(x1, x2)  =  CONS2(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
ok(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
CONS22 > top
active1 > from1 > cons2 > rcons2 > mark1 > top
active1 > from1 > s1 > rcons2 > mark1 > top
active1 > rnil > top
active1 > posrecip1 > mark1 > top
active1 > 2ndsneg2 > 2ndspos2 > s1 > rcons2 > mark1 > top
active1 > negrecip1 > mark1 > top
active1 > pi1 > 2ndspos2 > s1 > rcons2 > mark1 > top
active1 > plus2 > s1 > rcons2 > mark1 > top
active1 > times2 > 0 > mark1 > top
active1 > square1 > mark1 > top
proper1 > from1 > cons2 > rcons2 > mark1 > top
proper1 > from1 > s1 > rcons2 > mark1 > top
proper1 > rnil > top
proper1 > posrecip1 > mark1 > top
proper1 > 2ndsneg2 > 2ndspos2 > s1 > rcons2 > mark1 > top
proper1 > negrecip1 > mark1 > top
proper1 > pi1 > 2ndspos2 > s1 > rcons2 > mark1 > top
proper1 > plus2 > s1 > rcons2 > mark1 > top
proper1 > times2 > 0 > mark1 > top
proper1 > square1 > mark1 > top
proper1 > nil > top

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [2,1]
posrecip1: [1]
pi1: [1]
square1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
CONS22: [2,1]
times2: [1,2]
s1: [1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(73) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(74) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(75) TRUE

(76) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CONS(ok(X1), ok(X2)) → CONS(X1, X2)
CONS(mark(X1), X2) → CONS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(77) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS(ok(X1), ok(X2)) → CONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CONS(x1, x2)  =  CONS(x2)
ok(x1)  =  ok(x1)
mark(x1)  =  mark
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  x2
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
CONS1 > mark
active1 > 2ndspos1 > cons22 > ok1 > mark
active1 > 2ndspos1 > rcons2 > ok1 > mark
active1 > 2ndspos1 > 2ndsneg2 > ok1 > mark
active1 > rnil > ok1 > mark
active1 > negrecip1 > ok1 > mark
active1 > pi1 > ok1 > mark
active1 > pi1 > 0 > mark
active1 > plus2 > ok1 > mark
top > proper1 > 2ndspos1 > cons22 > ok1 > mark
top > proper1 > 2ndspos1 > rcons2 > ok1 > mark
top > proper1 > 2ndspos1 > 2ndsneg2 > ok1 > mark
top > proper1 > rnil > ok1 > mark
top > proper1 > negrecip1 > ok1 > mark
top > proper1 > pi1 > ok1 > mark
top > proper1 > pi1 > 0 > mark
top > proper1 > plus2 > ok1 > mark
top > proper1 > nil > ok1 > mark

Status:
plus2: [2,1]
rnil: []
CONS1: [1]
negrecip1: [1]
cons22: [2,1]
ok1: [1]
rcons2: [1,2]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
mark: []
proper1: [1]
top: []
nil: []
2ndspos1: [1]

The following usable rules [FROCOS05] were oriented:

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))

(78) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CONS(mark(X1), X2) → CONS(X1, X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(79) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS(mark(X1), X2) → CONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CONS(x1, x2)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x2)
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  x1
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  x1
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  square(x1)
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > proper1 > ok > active1 > from1 > s1 > mark1
top > proper1 > ok > active1 > cons2 > s1 > mark1
top > proper1 > ok > active1 > cons2 > 2ndspos2 > mark1
top > proper1 > ok > active1 > cons2 > cons21 > mark1
top > proper1 > ok > active1 > 0 > mark1
top > proper1 > ok > active1 > rnil > mark1
top > proper1 > ok > active1 > rcons2 > mark1
top > proper1 > ok > active1 > 2ndsneg2 > s1 > mark1
top > proper1 > ok > active1 > 2ndsneg2 > 2ndspos2 > mark1
top > proper1 > ok > active1 > 2ndsneg2 > cons21 > mark1
top > proper1 > ok > active1 > pi1 > 2ndspos2 > mark1
top > proper1 > ok > active1 > plus2 > mark1
top > proper1 > ok > active1 > square1 > times2 > mark1
top > proper1 > nil > mark1

Status:
from1: [1]
plus2: [1,2]
rnil: []
mark1: [1]
rcons2: [2,1]
pi1: [1]
square1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [1,2]
cons21: [1]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(80) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(81) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(82) TRUE

(83) Obligation:

Q DP problem:
The TRS P consists of the following rules:

NEGRECIP(ok(X)) → NEGRECIP(X)
NEGRECIP(mark(X)) → NEGRECIP(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(84) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


NEGRECIP(ok(X)) → NEGRECIP(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
NEGRECIP(x1)  =  NEGRECIP(x1)
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > 2ndspos2 > s1 > ok1 > NEGRECIP1 > 0
top > active1 > cons2 > 2ndspos2 > cons22 > ok1 > NEGRECIP1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > NEGRECIP1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > active1 > cons2 > negrecip1 > ok1 > NEGRECIP1 > 0
top > active1 > posrecip1 > ok1 > NEGRECIP1 > 0
top > active1 > pi1 > ok1 > NEGRECIP1 > 0
top > active1 > plus1 > ok1 > NEGRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > s1 > ok1 > NEGRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > cons22 > ok1 > NEGRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > NEGRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > proper1 > cons2 > negrecip1 > ok1 > NEGRECIP1 > 0
top > proper1 > posrecip1 > ok1 > NEGRECIP1 > 0
top > proper1 > pi1 > ok1 > NEGRECIP1 > 0
top > proper1 > plus1 > ok1 > NEGRECIP1 > 0
top > proper1 > nil > ok1 > NEGRECIP1 > 0

Status:
rnil: []
cons22: [2,1]
negrecip1: [1]
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
plus1: [1]
NEGRECIP1: [1]
s1: [1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(85) Obligation:

Q DP problem:
The TRS P consists of the following rules:

NEGRECIP(mark(X)) → NEGRECIP(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(86) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


NEGRECIP(mark(X)) → NEGRECIP(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
NEGRECIP(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > rcons2 > mark1
proper1 > ok > top > active1 > s1 > negrecip1 > mark1
proper1 > ok > top > active1 > s1 > plus2 > mark1
proper1 > ok > top > active1 > s1 > times2 > mark1
proper1 > ok > top > active1 > s1 > times2 > 0
proper1 > ok > top > active1 > posrecip1 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > pi1 > 0
proper1 > nil

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(87) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(88) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(89) TRUE

(90) Obligation:

Q DP problem:
The TRS P consists of the following rules:

POSRECIP(ok(X)) → POSRECIP(X)
POSRECIP(mark(X)) → POSRECIP(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(91) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


POSRECIP(ok(X)) → POSRECIP(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
POSRECIP(x1)  =  POSRECIP(x1)
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > 2ndspos2 > s1 > ok1 > POSRECIP1 > 0
top > active1 > cons2 > 2ndspos2 > cons22 > ok1 > POSRECIP1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > POSRECIP1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > active1 > cons2 > negrecip1 > ok1 > POSRECIP1 > 0
top > active1 > posrecip1 > ok1 > POSRECIP1 > 0
top > active1 > pi1 > ok1 > POSRECIP1 > 0
top > active1 > plus1 > ok1 > POSRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > s1 > ok1 > POSRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > cons22 > ok1 > POSRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > POSRECIP1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > proper1 > cons2 > negrecip1 > ok1 > POSRECIP1 > 0
top > proper1 > posrecip1 > ok1 > POSRECIP1 > 0
top > proper1 > pi1 > ok1 > POSRECIP1 > 0
top > proper1 > plus1 > ok1 > POSRECIP1 > 0
top > proper1 > nil > ok1 > POSRECIP1 > 0

Status:
rnil: []
cons22: [2,1]
negrecip1: [1]
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
plus1: [1]
s1: [1]
proper1: [1]
POSRECIP1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(92) Obligation:

Q DP problem:
The TRS P consists of the following rules:

POSRECIP(mark(X)) → POSRECIP(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(93) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


POSRECIP(mark(X)) → POSRECIP(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
POSRECIP(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > rcons2 > mark1
proper1 > ok > top > active1 > s1 > negrecip1 > mark1
proper1 > ok > top > active1 > s1 > plus2 > mark1
proper1 > ok > top > active1 > s1 > times2 > mark1
proper1 > ok > top > active1 > s1 > times2 > 0
proper1 > ok > top > active1 > posrecip1 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > pi1 > 0
proper1 > nil

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(94) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(95) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(96) TRUE

(97) Obligation:

Q DP problem:
The TRS P consists of the following rules:

S(ok(X)) → S(X)
S(mark(X)) → S(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(98) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


S(ok(X)) → S(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
S(x1)  =  S(x1)
ok(x1)  =  ok(x1)
mark(x1)  =  x1
active(x1)  =  active(x1)
from(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x2)
times(x1, x2)  =  x1
square(x1)  =  x1
proper(x1)  =  proper(x1)
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
top > active1 > cons2 > 2ndspos2 > s1 > ok1 > S1 > 0
top > active1 > cons2 > 2ndspos2 > cons22 > ok1 > S1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > S1 > 0
top > active1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > active1 > cons2 > negrecip1 > ok1 > S1 > 0
top > active1 > posrecip1 > ok1 > S1 > 0
top > active1 > pi1 > ok1 > S1 > 0
top > active1 > plus1 > ok1 > S1 > 0
top > proper1 > cons2 > 2ndspos2 > s1 > ok1 > S1 > 0
top > proper1 > cons2 > 2ndspos2 > cons22 > ok1 > S1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > ok1 > S1 > 0
top > proper1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil > 0
top > proper1 > cons2 > negrecip1 > ok1 > S1 > 0
top > proper1 > posrecip1 > ok1 > S1 > 0
top > proper1 > pi1 > ok1 > S1 > 0
top > proper1 > plus1 > ok1 > S1 > 0
top > proper1 > nil > ok1 > S1 > 0

Status:
rnil: []
cons22: [2,1]
negrecip1: [1]
ok1: [1]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
active1: [1]
cons2: [2,1]
2ndspos2: [2,1]
plus1: [1]
s1: [1]
proper1: [1]
top: []
nil: []
S1: [1]

The following usable rules [FROCOS05] were oriented:

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))

(99) Obligation:

Q DP problem:
The TRS P consists of the following rules:

S(mark(X)) → S(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(100) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


S(mark(X)) → S(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
S(x1)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)
from(x1)  =  from(x1)
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  s(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
posrecip(x1)  =  posrecip(x1)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip(x1)
pi(x1)  =  pi(x1)
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > from1 > cons2 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > s1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > s1 > rcons2 > mark1
proper1 > ok > top > active1 > s1 > negrecip1 > mark1
proper1 > ok > top > active1 > s1 > plus2 > mark1
proper1 > ok > top > active1 > s1 > times2 > mark1
proper1 > ok > top > active1 > s1 > times2 > 0
proper1 > ok > top > active1 > posrecip1 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > mark1
proper1 > ok > top > active1 > pi1 > 2ndspos2 > 2ndsneg2 > rnil
proper1 > ok > top > active1 > pi1 > 0
proper1 > nil

Status:
from1: [1]
plus2: [1,2]
rnil: []
negrecip1: [1]
mark1: [1]
rcons2: [1,2]
posrecip1: [1]
pi1: [1]
0: []
2ndsneg2: [2,1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [2,1]
s1: [1]
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(101) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(102) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(103) TRUE

(104) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(posrecip(X)) → PROPER(X)
PROPER(s(X)) → PROPER(X)
PROPER(negrecip(X)) → PROPER(X)
PROPER(cons(X1, X2)) → PROPER(X1)
PROPER(cons(X1, X2)) → PROPER(X2)
PROPER(cons2(X1, X2)) → PROPER(X1)
PROPER(cons2(X1, X2)) → PROPER(X2)
PROPER(rcons(X1, X2)) → PROPER(X1)
PROPER(rcons(X1, X2)) → PROPER(X2)
PROPER(from(X)) → PROPER(X)
PROPER(2ndspos(X1, X2)) → PROPER(X1)
PROPER(2ndspos(X1, X2)) → PROPER(X2)
PROPER(2ndsneg(X1, X2)) → PROPER(X1)
PROPER(2ndsneg(X1, X2)) → PROPER(X2)
PROPER(pi(X)) → PROPER(X)
PROPER(plus(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X2)
PROPER(times(X1, X2)) → PROPER(X1)
PROPER(times(X1, X2)) → PROPER(X2)
PROPER(square(X)) → PROPER(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(105) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(cons(X1, X2)) → PROPER(X1)
PROPER(cons(X1, X2)) → PROPER(X2)
PROPER(cons2(X1, X2)) → PROPER(X1)
PROPER(cons2(X1, X2)) → PROPER(X2)
PROPER(rcons(X1, X2)) → PROPER(X1)
PROPER(rcons(X1, X2)) → PROPER(X2)
PROPER(2ndspos(X1, X2)) → PROPER(X1)
PROPER(2ndspos(X1, X2)) → PROPER(X2)
PROPER(2ndsneg(X1, X2)) → PROPER(X1)
PROPER(2ndsneg(X1, X2)) → PROPER(X2)
PROPER(plus(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X2)
PROPER(times(X1, X2)) → PROPER(X1)
PROPER(times(X1, X2)) → PROPER(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  PROPER(x1)
posrecip(x1)  =  x1
s(x1)  =  x1
negrecip(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
cons2(x1, x2)  =  cons2(x1, x2)
rcons(x1, x2)  =  rcons(x1, x2)
from(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
active(x1)  =  x1
mark(x1)  =  mark
0  =  0
rnil  =  rnil
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
PROPER1 > mark
proper1 > 0 > mark
proper1 > rnil > mark
proper1 > ok > cons2 > mark
proper1 > ok > rcons2 > mark
proper1 > ok > 2ndsneg2 > cons22 > mark
proper1 > ok > 2ndsneg2 > 2ndspos2 > mark
proper1 > ok > plus2 > mark
proper1 > ok > times2 > mark
proper1 > ok > top > mark
proper1 > nil > mark

Status:
plus2: [1,2]
PROPER1: [1]
rnil: []
cons22: [1,2]
rcons2: [1,2]
0: []
2ndsneg2: [1,2]
cons2: [2,1]
2ndspos2: [1,2]
times2: [2,1]
mark: []
ok: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(106) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(posrecip(X)) → PROPER(X)
PROPER(s(X)) → PROPER(X)
PROPER(negrecip(X)) → PROPER(X)
PROPER(from(X)) → PROPER(X)
PROPER(pi(X)) → PROPER(X)
PROPER(square(X)) → PROPER(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(107) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(posrecip(X)) → PROPER(X)
PROPER(s(X)) → PROPER(X)
PROPER(negrecip(X)) → PROPER(X)
PROPER(from(X)) → PROPER(X)
PROPER(square(X)) → PROPER(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  PROPER(x1)
posrecip(x1)  =  posrecip(x1)
s(x1)  =  s(x1)
negrecip(x1)  =  negrecip(x1)
from(x1)  =  from(x1)
pi(x1)  =  x1
square(x1)  =  square(x1)
active(x1)  =  x1
mark(x1)  =  mark
cons(x1, x2)  =  cons
2ndspos(x1, x2)  =  2ndspos
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2
rcons(x1, x2)  =  rcons
2ndsneg(x1, x2)  =  2ndsneg
plus(x1, x2)  =  x2
times(x1, x2)  =  times
proper(x1)  =  x1
ok(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
from1 > s1 > PROPER1 > mark
from1 > s1 > posrecip1 > mark
from1 > s1 > negrecip1 > mark
from1 > s1 > cons2 > mark
from1 > cons > cons2 > mark
square1 > mark
0 > rnil > mark
2ndsneg > 2ndspos > s1 > PROPER1 > mark
2ndsneg > 2ndspos > s1 > posrecip1 > mark
2ndsneg > 2ndspos > s1 > negrecip1 > mark
2ndsneg > 2ndspos > s1 > cons2 > mark
2ndsneg > 2ndspos > rnil > mark
2ndsneg > rcons > mark
times > mark
nil > mark
top > mark

Status:
PROPER1: [1]
from1: [1]
rnil: []
cons2: []
negrecip1: [1]
posrecip1: [1]
square1: [1]
2ndsneg: []
0: []
2ndspos: []
cons: []
rcons: []
mark: []
times: []
s1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(108) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROPER(pi(X)) → PROPER(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(109) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PROPER(pi(X)) → PROPER(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
PROPER(x1)  =  x1
pi(x1)  =  pi(x1)
active(x1)  =  active(x1)
from(x1)  =  x1
mark(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos(x1, x2)
0  =  0
rnil  =  rnil
cons2(x1, x2)  =  cons2(x2)
rcons(x1, x2)  =  rcons(x2)
posrecip(x1)  =  posrecip
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
negrecip(x1)  =  negrecip
plus(x1, x2)  =  x2
times(x1, x2)  =  times(x2)
square(x1)  =  x1
proper(x1)  =  proper(x1)
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
negrecip > active1 > posrecip > proper1 > pi1 > 0
negrecip > active1 > posrecip > proper1 > pi1 > ok > times1
negrecip > active1 > posrecip > proper1 > cons2 > ok > times1
negrecip > active1 > posrecip > proper1 > 2ndspos2 > 2ndsneg2 > rnil
negrecip > active1 > posrecip > proper1 > 2ndspos2 > 2ndsneg2 > ok > times1
negrecip > active1 > posrecip > proper1 > cons21 > 2ndsneg2 > rnil
negrecip > active1 > posrecip > proper1 > cons21 > 2ndsneg2 > ok > times1
negrecip > active1 > posrecip > proper1 > rcons1 > ok > times1
negrecip > active1 > posrecip > proper1 > nil

Status:
rnil: []
times1: [1]
pi1: [1]
0: []
2ndsneg2: [1,2]
negrecip: []
cons2: [2,1]
active1: [1]
2ndspos2: [1,2]
cons21: [1]
ok: []
proper1: [1]
posrecip: []
rcons1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(110) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(111) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(112) TRUE

(113) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(posrecip(X)) → ACTIVE(X)
ACTIVE(s(X)) → ACTIVE(X)
ACTIVE(negrecip(X)) → ACTIVE(X)
ACTIVE(cons(X1, X2)) → ACTIVE(X1)
ACTIVE(cons2(X1, X2)) → ACTIVE(X2)
ACTIVE(rcons(X1, X2)) → ACTIVE(X1)
ACTIVE(rcons(X1, X2)) → ACTIVE(X2)
ACTIVE(from(X)) → ACTIVE(X)
ACTIVE(2ndspos(X1, X2)) → ACTIVE(X1)
ACTIVE(2ndspos(X1, X2)) → ACTIVE(X2)
ACTIVE(2ndsneg(X1, X2)) → ACTIVE(X1)
ACTIVE(2ndsneg(X1, X2)) → ACTIVE(X2)
ACTIVE(pi(X)) → ACTIVE(X)
ACTIVE(plus(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → ACTIVE(X2)
ACTIVE(times(X1, X2)) → ACTIVE(X1)
ACTIVE(times(X1, X2)) → ACTIVE(X2)
ACTIVE(square(X)) → ACTIVE(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(114) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(s(X)) → ACTIVE(X)
ACTIVE(cons(X1, X2)) → ACTIVE(X1)
ACTIVE(rcons(X1, X2)) → ACTIVE(X1)
ACTIVE(rcons(X1, X2)) → ACTIVE(X2)
ACTIVE(from(X)) → ACTIVE(X)
ACTIVE(2ndspos(X1, X2)) → ACTIVE(X1)
ACTIVE(2ndspos(X1, X2)) → ACTIVE(X2)
ACTIVE(2ndsneg(X1, X2)) → ACTIVE(X1)
ACTIVE(2ndsneg(X1, X2)) → ACTIVE(X2)
ACTIVE(plus(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → ACTIVE(X2)
ACTIVE(times(X1, X2)) → ACTIVE(X1)
ACTIVE(times(X1, X2)) → ACTIVE(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
posrecip(x1)  =  x1
s(x1)  =  s(x1)
negrecip(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
cons2(x1, x2)  =  x2
rcons(x1, x2)  =  rcons(x1, x2)
from(x1)  =  from(x1)
2ndspos(x1, x2)  =  2ndspos(x1, x2)
2ndsneg(x1, x2)  =  2ndsneg(x1, x2)
pi(x1)  =  x1
plus(x1, x2)  =  plus(x1, x2)
times(x1, x2)  =  times(x1, x2)
square(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1
0  =  0
rnil  =  rnil
proper(x1)  =  proper(x1)
ok(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
active1 > cons2 > s1 > 2ndspos2
active1 > cons2 > s1 > 2ndsneg2
active1 > cons2 > s1 > times2 > plus2
active1 > cons2 > s1 > times2 > 0
active1 > rcons2
active1 > from1
active1 > rnil
proper1 > cons2 > s1 > 2ndspos2
proper1 > cons2 > s1 > 2ndsneg2
proper1 > cons2 > s1 > times2 > plus2
proper1 > cons2 > s1 > times2 > 0
proper1 > rcons2
proper1 > from1
proper1 > rnil
proper1 > nil

Status:
plus2: [2,1]
from1: [1]
rnil: []
rcons2: [2,1]
0: []
2ndsneg2: [2,1]
ACTIVE1: [1]
active1: [1]
cons2: [1,2]
2ndspos2: [1,2]
times2: [1,2]
s1: [1]
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(115) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(posrecip(X)) → ACTIVE(X)
ACTIVE(negrecip(X)) → ACTIVE(X)
ACTIVE(cons2(X1, X2)) → ACTIVE(X2)
ACTIVE(pi(X)) → ACTIVE(X)
ACTIVE(square(X)) → ACTIVE(X)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(116) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(pi(X)) → ACTIVE(X)
ACTIVE(square(X)) → ACTIVE(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  x1
posrecip(x1)  =  x1
negrecip(x1)  =  x1
cons2(x1, x2)  =  x2
pi(x1)  =  pi(x1)
square(x1)  =  square(x1)
active(x1)  =  x1
from(x1)  =  x1
mark(x1)  =  mark
cons(x1, x2)  =  cons(x1, x2)
s(x1)  =  x1
2ndspos(x1, x2)  =  2ndspos
0  =  0
rnil  =  rnil
rcons(x1, x2)  =  rcons
2ndsneg(x1, x2)  =  2ndsneg
plus(x1, x2)  =  x1
times(x1, x2)  =  times
proper(x1)  =  x1
ok(x1)  =  ok
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
pi1 > 2ndspos > ok > mark
pi1 > 0 > ok > mark
square1 > times > ok > mark
cons2 > rcons > ok > mark
cons2 > 2ndsneg > 2ndspos > ok > mark
cons2 > 2ndsneg > rnil > ok > mark
nil > ok > mark
top > mark

Status:
rnil: []
square1: [1]
pi1: [1]
2ndsneg: []
0: []
2ndspos: []
cons2: [2,1]
rcons: []
times: []
mark: []
ok: []
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(117) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(posrecip(X)) → ACTIVE(X)
ACTIVE(negrecip(X)) → ACTIVE(X)
ACTIVE(cons2(X1, X2)) → ACTIVE(X2)

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(118) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(posrecip(X)) → ACTIVE(X)
ACTIVE(negrecip(X)) → ACTIVE(X)
ACTIVE(cons2(X1, X2)) → ACTIVE(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ACTIVE(x1)  =  ACTIVE(x1)
posrecip(x1)  =  posrecip(x1)
negrecip(x1)  =  negrecip(x1)
cons2(x1, x2)  =  cons2(x1, x2)
active(x1)  =  x1
from(x1)  =  from
mark(x1)  =  mark
cons(x1, x2)  =  cons(x1)
s(x1)  =  s
2ndspos(x1, x2)  =  2ndspos
0  =  0
rnil  =  rnil
rcons(x1, x2)  =  rcons(x1, x2)
2ndsneg(x1, x2)  =  x1
pi(x1)  =  x1
plus(x1, x2)  =  x2
times(x1, x2)  =  x2
square(x1)  =  square
proper(x1)  =  proper(x1)
ok(x1)  =  x1
nil  =  nil
top(x1)  =  top

Lexicographic path order with status [LPO].
Precedence:
s > proper1 > negrecip1 > ACTIVE1 > mark
s > proper1 > cons22 > ACTIVE1 > mark
s > proper1 > cons22 > posrecip1 > mark
s > proper1 > cons22 > 2ndspos > rnil > mark
s > proper1 > cons22 > 2ndspos > rcons2 > mark
s > proper1 > from > cons1 > mark
s > proper1 > nil > mark
0 > rnil > mark
square > proper1 > negrecip1 > ACTIVE1 > mark
square > proper1 > cons22 > ACTIVE1 > mark
square > proper1 > cons22 > posrecip1 > mark
square > proper1 > cons22 > 2ndspos > rnil > mark
square > proper1 > cons22 > 2ndspos > rcons2 > mark
square > proper1 > from > cons1 > mark
square > proper1 > nil > mark
top > proper1 > negrecip1 > ACTIVE1 > mark
top > proper1 > cons22 > ACTIVE1 > mark
top > proper1 > cons22 > posrecip1 > mark
top > proper1 > cons22 > 2ndspos > rnil > mark
top > proper1 > cons22 > 2ndspos > rcons2 > mark
top > proper1 > from > cons1 > mark
top > proper1 > nil > mark

Status:
cons1: [1]
rnil: []
cons22: [1,2]
negrecip1: [1]
rcons2: [2,1]
posrecip1: [1]
s: []
0: []
2ndspos: []
ACTIVE1: [1]
from: []
mark: []
square: []
proper1: [1]
top: []
nil: []

The following usable rules [FROCOS05] were oriented:

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))

(119) Obligation:

Q DP problem:
P is empty.
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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(120) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(121) TRUE

(122) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TOP(ok(X)) → TOP(active(X))
TOP(mark(X)) → TOP(proper(X))

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.