(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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:

A__FROM(X) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__PI(X) → A__2NDSPOS(mark(X), a__from(0))
A__PI(X) → MARK(X)
A__PI(X) → A__FROM(0)
A__PLUS(0, Y) → MARK(Y)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__TIMES(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__SQUARE(X) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(square(X)) → MARK(X)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(3) Narrowing (EQUIVALENT transformation)

By narrowing [LPAR04] the rule A__PI(X) → A__2NDSPOS(mark(X), a__from(0)) at position [1] we obtained the following new rules [LPAR04]:

A__PI(y0) → A__2NDSPOS(mark(y0), cons(mark(0), from(s(0))))
A__PI(y0) → A__2NDSPOS(mark(y0), from(0))

(4) Obligation:

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

A__FROM(X) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__PI(X) → MARK(X)
A__PI(X) → A__FROM(0)
A__PLUS(0, Y) → MARK(Y)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__TIMES(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__SQUARE(X) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(square(X)) → MARK(X)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PI(y0) → A__2NDSPOS(mark(y0), cons(mark(0), from(s(0))))
A__PI(y0) → A__2NDSPOS(mark(y0), from(0))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes.

(6) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__PI(X) → MARK(X)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(square(X)) → MARK(X)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__PI(X) → A__FROM(0)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(7) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(square(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(from(x1)) = 0A + 0A·x1

POL(A__FROM(x1)) = 0A + 0A·x1

POL(mark(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(s(x1)) = 0A + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(pi(x1)) = -I + 0A·x1

POL(A__PI(x1)) = 0A + 0A·x1

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(square(x1)) = 2A + 2A·x1

POL(A__SQUARE(x1)) = 2A + 0A·x1

POL(posrecip(x1)) = 0A + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 2A + 2A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 0A + 0A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(8) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__PI(X) → MARK(X)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__PI(X) → A__FROM(0)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(9) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


A__PI(X) → A__FROM(0)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = -I + 0A·x1

POL(from(x1)) = -I + 0A·x1

POL(A__FROM(x1)) = -I + 0A·x1

POL(mark(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(pi(x1)) = 1A + 0A·x1

POL(A__PI(x1)) = 1A + 0A·x1

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(square(x1)) = 0A + 0A·x1

POL(A__SQUARE(x1)) = 0A + 0A·x1

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = 0A + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 1A + 0A·x1

POL(a__from(x1)) = -I + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(10) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__PI(X) → MARK(X)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(11) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(pi(X)) → A__PI(mark(X))
MARK(pi(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = -I + 0A·x1

POL(from(x1)) = 0A + 0A·x1

POL(A__FROM(x1)) = 0A + 0A·x1

POL(mark(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(pi(x1)) = 0A + 1A·x1

POL(A__PI(x1)) = -I + 0A·x1

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(square(x1)) = 0A + 4A·x1

POL(A__SQUARE(x1)) = 0A + 0A·x1

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = 0A + 0A·x1

POL(rcons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__square(x1)) = 0A + 4A·x1

POL(a__plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 0A + 1A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(12) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
A__PI(X) → MARK(X)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(13) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(14) Obligation:

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

A__FROM(X) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__SQUARE(X) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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.


A__SQUARE(X) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__FROM(x1)) = -I + 0A·x1

POL(MARK(x1)) = -I + 0A·x1

POL(from(x1)) = 0A + 0A·x1

POL(mark(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(s(x1)) = 0A + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(square(x1)) = 1A + 1A·x1

POL(A__SQUARE(x1)) = 0A + 1A·x1

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 1A + 1A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 0A + 0A·x1

POL(pi(x1)) = -I + 0A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(16) Obligation:

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

A__FROM(X) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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.


A__SQUARE(X) → A__TIMES(mark(X), mark(X))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__FROM(x1)) = 0A + 0A·x1

POL(MARK(x1)) = 0A + 0A·x1

POL(from(x1)) = -I + 0A·x1

POL(mark(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(s(x1)) = 0A + 0A·x1

POL(cons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(square(x1)) = 2A + 2A·x1

POL(A__SQUARE(x1)) = 1A + 2A·x1

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = 0A + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 2A + 2A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 0A + 0A·x1

POL(pi(x1)) = -I + 0A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(18) Obligation:

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

A__FROM(X) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(square(X)) → A__SQUARE(mark(X))
A__TIMES(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(19) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(20) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(21) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


A__TIMES(s(X), Y) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(from(x1)) = 5A + 0A·x1

POL(A__FROM(x1)) = 5A + 0A·x1

POL(mark(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(s(x1)) = 5A + 0A·x1

POL(cons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + 1A·x1 + 0A·x2

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 3A

POL(times(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = 0A + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 1A + 1A·x1

POL(square(x1)) = 1A + 1A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(a__pi(x1)) = 5A + 1A·x1

POL(pi(x1)) = 5A + 1A·x1

POL(a__from(x1)) = 5A + 0A·x1

POL(a__2ndspos(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(22) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X2)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(23) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(times(X1, X2)) → MARK(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(from(x1)) = -I + 0A·x1

POL(A__FROM(x1)) = 0A + 0A·x1

POL(mark(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = -I + -I·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + -I·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 1A + 0A·x1 + 1A·x2

POL(A__TIMES(x1, x2)) = 1A + 0A·x1 + 1A·x2

POL(a__times(x1, x2)) = 1A + 0A·x1 + 1A·x2

POL(posrecip(x1)) = 0A + 0A·x1

POL(negrecip(x1)) = 0A + 0A·x1

POL(rcons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__square(x1)) = 1A + 1A·x1

POL(square(x1)) = 1A + 1A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 0A + 0A·x1

POL(pi(x1)) = -I + 0A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(24) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(25) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(2ndspos(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(from(x1)) = 4A + 0A·x1

POL(A__FROM(x1)) = 4A + 0A·x1

POL(mark(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = 5A + 1A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = 0A + -I·x1 + 0A·x2

POL(s(x1)) = 4A + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + -I·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(posrecip(x1)) = 5A + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(a__pi(x1)) = 5A + 1A·x1

POL(pi(x1)) = 5A + 1A·x1

POL(a__from(x1)) = 4A + 0A·x1

POL(a__2ndspos(x1, x2)) = 5A + 1A·x1 + 0A·x2

POL(rnil) = 1A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(26) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(27) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(from(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(cons(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = -I + 0A·x1

POL(from(x1)) = 0A + 5A·x1

POL(A__FROM(x1)) = 0A + 0A·x1

POL(mark(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = -I + -I·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = 0A + 1A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + -I·x1 + 0A·x2

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__square(x1)) = 1A + 0A·x1

POL(square(x1)) = 1A + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 5A + 1A·x1

POL(pi(x1)) = 5A + 1A·x1

POL(a__from(x1)) = 0A + 5A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(28) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
A__FROM(X) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(29) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


A__FROM(X) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(from(x1)) = 1A + 1A·x1

POL(A__FROM(x1)) = 1A + 1A·x1

POL(mark(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = -I + -I·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + -I·x1 + 0A·x2

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(s(x1)) = 0A + 0A·x1

POL(a__times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(posrecip(x1)) = 0A + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__square(x1)) = -I + 0A·x1

POL(square(x1)) = -I + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 1A + 2A·x1

POL(pi(x1)) = 1A + 2A·x1

POL(a__from(x1)) = 1A + 1A·x1

POL(a__2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(30) Obligation:

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

MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(31) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(32) Obligation:

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

MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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.


MARK(2ndsneg(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(mark(x1)) = 0A + 0A·x1

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(a__pi(x1)) = 1A + 1A·x1

POL(pi(x1)) = 1A + 1A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(from(x1)) = -I + 0A·x1

POL(a__2ndspos(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(rnil) = 1A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(34) Obligation:

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

MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__TIMES(s(X), Y) → MARK(X)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(35) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


A__TIMES(s(X), Y) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 1A + 0A·x1

POL(2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSPOS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(mark(x1)) = 0A + 0A·x1

POL(s(x1)) = 1A + 0A·x1

POL(cons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(a__times(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = 0A + 0A·x1

POL(rcons(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(a__square(x1)) = 2A + 1A·x1

POL(square(x1)) = 2A + 1A·x1

POL(a__plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 1A + 0A·x1

POL(pi(x1)) = 1A + 0A·x1

POL(a__from(x1)) = 1A + 0A·x1

POL(from(x1)) = 1A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(36) Obligation:

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

MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(37) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(MARK(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(A__2NDSPOS(x1, x2)) = -I + -I·x1 + 0A·x2

POL(mark(x1)) = -I + 0A·x1

POL(s(x1)) = 3A + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + -I·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(a__pi(x1)) = 4A + 0A·x1

POL(pi(x1)) = 4A + 0A·x1

POL(a__from(x1)) = 3A + 0A·x1

POL(from(x1)) = 3A + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + 0A·x1 + 1A·x2

POL(rnil) = 0A

POL(nil) = 1A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(38) Obligation:

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

A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(39) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(rcons(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__2NDSPOS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(mark(x1)) = -I + 0A·x1

POL(MARK(x1)) = -I + 0A·x1

POL(2ndspos(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(posrecip(x1)) = 0A + 0A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + 1A·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 1A + 0A·x1

POL(pi(x1)) = 1A + 0A·x1

POL(a__from(x1)) = 0A + 1A·x1

POL(from(x1)) = 0A + 1A·x1

POL(a__2ndspos(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(rnil) = 1A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(40) Obligation:

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

A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(posrecip(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(41) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(posrecip(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__2NDSPOS(x1, x2)) = -I + -I·x1 + 0A·x2

POL(s(x1)) = 0A + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + -I·x1 + 0A·x2

POL(mark(x1)) = 0A + 0A·x1

POL(MARK(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 5A + 5A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 5A + 5A·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(posrecip(x1)) = 1A + 1A·x1

POL(negrecip(x1)) = -I + 0A·x1

POL(rcons(x1, x2)) = -I + -I·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = -I + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 5A + 5A·x1 + 0A·x2

POL(a__pi(x1)) = 5A + 5A·x1

POL(pi(x1)) = 5A + 5A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 5A + 5A·x1 + 0A·x2

POL(rnil) = 0A

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(42) Obligation:

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

A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(negrecip(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(43) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(negrecip(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__2NDSPOS(x1, x2)) = -I + -I·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = -I + -I·x1 + 0A·x2

POL(mark(x1)) = 0A + 0A·x1

POL(MARK(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(negrecip(x1)) = 1A + 1A·x1

POL(rcons(x1, x2)) = -I + -I·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 1A + 1A·x1

POL(pi(x1)) = 1A + 1A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(from(x1)) = 0A + 0A·x1

POL(a__2ndspos(x1, x2)) = 1A + 0A·x1 + 0A·x2

POL(rnil) = 1A

POL(posrecip(x1)) = 4A + 0A·x1

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(44) Obligation:

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

A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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.


MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
MARK(2ndsneg(X1, X2)) → MARK(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__2NDSPOS(x1, x2)) = 0A + -I·x1 + 0A·x2

POL(s(x1)) = -I + 0A·x1

POL(cons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__2NDSNEG(x1, x2)) = 0A + -I·x1 + 0A·x2

POL(mark(x1)) = 0A + 0A·x1

POL(MARK(x1)) = 0A + 0A·x1

POL(2ndspos(x1, x2)) = 1A + -I·x1 + 1A·x2

POL(2ndsneg(x1, x2)) = 1A + -I·x1 + 1A·x2

POL(plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(A__PLUS(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(times(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__times(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(rcons(x1, x2)) = -I + -I·x1 + 0A·x2

POL(a__square(x1)) = 0A + 0A·x1

POL(square(x1)) = 0A + 0A·x1

POL(a__plus(x1, x2)) = 0A + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 1A + -I·x1 + 1A·x2

POL(a__pi(x1)) = 1A + 1A·x1

POL(pi(x1)) = 1A + 1A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(from(x1)) = -I + 0A·x1

POL(a__2ndspos(x1, x2)) = 1A + -I·x1 + 1A·x2

POL(rnil) = 1A

POL(posrecip(x1)) = 0A + -I·x1

POL(negrecip(x1)) = 0A + -I·x1

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(46) Obligation:

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

A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(47) DependencyGraphProof (EQUIVALENT transformation)

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

(48) Complex Obligation (AND)

(49) Obligation:

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

A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(times(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(50) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(times(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__PLUS(x1, x2)) = 3A + 0A·x1 + 0A·x2

POL(0) = 0A

POL(MARK(x1)) = 3A + 0A·x1

POL(plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(mark(x1)) = -I + 0A·x1

POL(s(x1)) = 3A + 0A·x1

POL(times(x1, x2)) = 4A + 1A·x1 + 0A·x2

POL(A__TIMES(x1, x2)) = 4A + 1A·x1 + 0A·x2

POL(a__times(x1, x2)) = 4A + 1A·x1 + 0A·x2

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 5A + 2A·x1

POL(square(x1)) = 5A + 2A·x1

POL(a__plus(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 1A·x1 + -I·x2

POL(2ndsneg(x1, x2)) = -I + 1A·x1 + -I·x2

POL(a__pi(x1)) = 1A + 1A·x1

POL(pi(x1)) = 1A + 1A·x1

POL(a__from(x1)) = -I + 4A·x1

POL(from(x1)) = -I + 4A·x1

POL(a__2ndspos(x1, x2)) = -I + 1A·x1 + -I·x2

POL(2ndspos(x1, x2)) = -I + 1A·x1 + -I·x2

POL(cons(x1, x2)) = -I + 3A·x1 + -I·x2

POL(rnil) = 0A

POL(posrecip(x1)) = 3A + -I·x1

POL(negrecip(x1)) = 0A + -I·x1

POL(nil) = 0A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(51) Obligation:

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

A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(52) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(plus(X1, X2)) → MARK(X1)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__PLUS(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(0) = 1A

POL(MARK(x1)) = -I + 0A·x1

POL(plus(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(mark(x1)) = 0A + 0A·x1

POL(s(x1)) = 0A + 0A·x1

POL(times(x1, x2)) = 5A + 0A·x1 + 5A·x2

POL(A__TIMES(x1, x2)) = 5A + 0A·x1 + 5A·x2

POL(a__times(x1, x2)) = 5A + 0A·x1 + 5A·x2

POL(rcons(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__square(x1)) = 5A + 5A·x1

POL(square(x1)) = 5A + 5A·x1

POL(a__plus(x1, x2)) = 1A + 1A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(2ndsneg(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(a__pi(x1)) = 3A + 0A·x1

POL(pi(x1)) = 3A + 0A·x1

POL(a__from(x1)) = 3A + -I·x1

POL(from(x1)) = 3A + -I·x1

POL(a__2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(2ndspos(x1, x2)) = -I + 0A·x1 + 0A·x2

POL(cons(x1, x2)) = 3A + -I·x1 + 0A·x2

POL(rnil) = 0A

POL(posrecip(x1)) = 2A + -I·x1

POL(negrecip(x1)) = 0A + -I·x1

POL(nil) = 2A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(53) Obligation:

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

A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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.


A__PLUS(s(X), Y) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(A__PLUS(x1, x2)) = 4A + 1A·x1 + 0A·x2

POL(0) = 0A

POL(MARK(x1)) = 0A + 0A·x1

POL(plus(x1, x2)) = 4A + 1A·x1 + 0A·x2

POL(mark(x1)) = 1A + 0A·x1

POL(s(x1)) = -I + 0A·x1

POL(times(x1, x2)) = 4A + -I·x1 + 1A·x2

POL(A__TIMES(x1, x2)) = 4A + -I·x1 + 1A·x2

POL(a__times(x1, x2)) = 4A + -I·x1 + 1A·x2

POL(rcons(x1, x2)) = 0A + -I·x1 + 0A·x2

POL(a__square(x1)) = 4A + 2A·x1

POL(square(x1)) = 4A + 2A·x1

POL(a__plus(x1, x2)) = 4A + 1A·x1 + 0A·x2

POL(a__2ndsneg(x1, x2)) = 0A + -I·x1 + -I·x2

POL(2ndsneg(x1, x2)) = 0A + -I·x1 + -I·x2

POL(a__pi(x1)) = 1A + 0A·x1

POL(pi(x1)) = -I + 0A·x1

POL(a__from(x1)) = 0A + 0A·x1

POL(from(x1)) = -I + 0A·x1

POL(a__2ndspos(x1, x2)) = 0A + -I·x1 + -I·x2

POL(2ndspos(x1, x2)) = 0A + -I·x1 + -I·x2

POL(cons(x1, x2)) = -I + -I·x1 + 0A·x2

POL(rnil) = 0A

POL(posrecip(x1)) = -I + 0A·x1

POL(negrecip(x1)) = 1A + -I·x1

POL(nil) = 1A

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(55) Obligation:

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

A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(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.


MARK(rcons(X1, X2)) → MARK(X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:

POL(A__PLUS(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/01\
\00/
·x2

POL(0) =
/0\
\0/

POL(MARK(x1)) =
/0\
\0/
+
/01\
\00/
·x1

POL(plus(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/11\
\01/
·x2

POL(mark(x1)) =
/0\
\0/
+
/11\
\01/
·x1

POL(s(x1)) =
/0\
\0/
+
/00\
\01/
·x1

POL(times(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(A__TIMES(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(a__times(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(rcons(x1, x2)) =
/0\
\1/
+
/00\
\00/
·x1 +
/00\
\01/
·x2

POL(a__square(x1)) =
/0\
\0/
+
/00\
\00/
·x1

POL(square(x1)) =
/0\
\0/
+
/00\
\00/
·x1

POL(a__plus(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/11\
\01/
·x2

POL(a__2ndsneg(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\01/
·x2

POL(2ndsneg(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\01/
·x2

POL(a__pi(x1)) =
/1\
\1/
+
/01\
\00/
·x1

POL(pi(x1)) =
/1\
\1/
+
/01\
\00/
·x1

POL(a__from(x1)) =
/1\
\1/
+
/00\
\00/
·x1

POL(from(x1)) =
/0\
\1/
+
/00\
\00/
·x1

POL(a__2ndspos(x1, x2)) =
/0\
\0/
+
/01\
\00/
·x1 +
/00\
\01/
·x2

POL(2ndspos(x1, x2)) =
/0\
\0/
+
/01\
\00/
·x1 +
/00\
\01/
·x2

POL(cons(x1, x2)) =
/1\
\0/
+
/00\
\00/
·x1 +
/00\
\11/
·x2

POL(rnil) =
/0\
\0/

POL(posrecip(x1)) =
/0\
\0/
+
/01\
\01/
·x1

POL(negrecip(x1)) =
/0\
\0/
+
/00\
\01/
·x1

POL(nil) =
/0\
\0/

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(57) Obligation:

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

A__PLUS(0, Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(s(X)) → MARK(X)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(58) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(s(X)) → MARK(X)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
A__PLUS(x1, x2)  =  A__PLUS(x2)
0  =  0
MARK(x1)  =  MARK(x1)
plus(x1, x2)  =  plus(x1, x2)
mark(x1)  =  x1
s(x1)  =  s(x1)
times(x1, x2)  =  times(x1, x2)
A__TIMES(x1, x2)  =  A__TIMES(x1, x2)
a__times(x1, x2)  =  a__times(x1, x2)
a__square(x1)  =  a__square(x1)
square(x1)  =  square(x1)
a__plus(x1, x2)  =  a__plus(x1, x2)
a__2ndsneg(x1, x2)  =  x2
2ndsneg(x1, x2)  =  x2
a__pi(x1)  =  a__pi
pi(x1)  =  pi
a__from(x1)  =  a__from
from(x1)  =  from
a__2ndspos(x1, x2)  =  x2
2ndspos(x1, x2)  =  x2
cons(x1, x2)  =  x2
rnil  =  rnil
rcons(x1, x2)  =  x2
posrecip(x1)  =  x1
negrecip(x1)  =  x1
nil  =  nil

Recursive path order with status [RPO].
Quasi-Precedence:
[asquare1, square1] > [times2, ATIMES2, atimes2] > [APLUS1, MARK1, plus2, aplus2] > s1 > rnil
[api, pi] > 0 > [APLUS1, MARK1, plus2, aplus2] > s1 > rnil
[api, pi] > [afrom, from] > rnil
nil > rnil

Status:
api: []
plus2: multiset
rnil: multiset
ATIMES2: [2,1]
square1: [1]
0: multiset
aplus2: multiset
from: []
MARK1: [1]
APLUS1: [1]
times2: [2,1]
pi: []
afrom: []
s1: [1]
atimes2: [2,1]
nil: multiset
asquare1: [1]


The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(59) Obligation:

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

A__PLUS(0, Y) → MARK(Y)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(Y)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(60) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes.

(61) Obligation:

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

A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(62) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
A__PLUS(x1, x2)  =  A__PLUS(x1)
s(x1)  =  s(x1)
mark(x1)  =  x1
a__square(x1)  =  a__square(x1)
square(x1)  =  square(x1)
a__plus(x1, x2)  =  a__plus(x1, x2)
plus(x1, x2)  =  plus(x1, x2)
a__times(x1, x2)  =  a__times(x1, x2)
times(x1, x2)  =  times(x1, x2)
a__2ndsneg(x1, x2)  =  x2
2ndsneg(x1, x2)  =  x2
a__pi(x1)  =  a__pi(x1)
pi(x1)  =  pi(x1)
a__from(x1)  =  x1
from(x1)  =  x1
a__2ndspos(x1, x2)  =  a__2ndspos(x1)
2ndspos(x1, x2)  =  2ndspos(x1)
cons(x1, x2)  =  cons
0  =  0
rnil  =  rnil
rcons(x1, x2)  =  x1
posrecip(x1)  =  posrecip
negrecip(x1)  =  negrecip
nil  =  nil

Recursive path order with status [RPO].
Quasi-Precedence:
APLUS1 > [cons, rnil, negrecip]
[asquare1, square1] > [atimes2, times2] > [aplus2, plus2] > s1 > [cons, rnil, negrecip]
[api1, pi1, a2ndspos1, 2ndspos1, posrecip] > [cons, rnil, negrecip]
0 > [cons, rnil, negrecip]
nil > [cons, rnil, negrecip]

Status:
plus2: multiset
rnil: multiset
a2ndspos1: multiset
square1: [1]
pi1: multiset
0: multiset
aplus2: multiset
negrecip: []
api1: multiset
APLUS1: multiset
cons: []
times2: multiset
s1: multiset
atimes2: multiset
posrecip: multiset
nil: multiset
asquare1: [1]
2ndspos1: multiset


The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(63) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(64) PisEmptyProof (EQUIVALENT transformation)

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

(65) TRUE

(66) Obligation:

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

A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(67) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:

POL(A__2NDSNEG(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/10\
\00/
·x2

POL(s(x1)) =
/0\
\0/
+
/00\
\00/
·x1

POL(cons(x1, x2)) =
/1\
\0/
+
/00\
\00/
·x1 +
/01\
\10/
·x2

POL(A__2NDSPOS(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/10\
\00/
·x2

POL(mark(x1)) =
/0\
\0/
+
/10\
\11/
·x1

POL(a__square(x1)) =
/0\
\1/
+
/00\
\00/
·x1

POL(square(x1)) =
/0\
\1/
+
/00\
\00/
·x1

POL(a__plus(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/10\
\11/
·x2

POL(plus(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/10\
\11/
·x2

POL(a__times(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(times(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(a__2ndsneg(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(2ndsneg(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(a__pi(x1)) =
/0\
\1/
+
/00\
\00/
·x1

POL(pi(x1)) =
/0\
\1/
+
/00\
\00/
·x1

POL(a__from(x1)) =
/1\
\1/
+
/00\
\00/
·x1

POL(from(x1)) =
/1\
\0/
+
/00\
\00/
·x1

POL(a__2ndspos(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(2ndspos(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(0) =
/0\
\0/

POL(rnil) =
/0\
\0/

POL(rcons(x1, x2)) =
/0\
\0/
+
/00\
\00/
·x1 +
/00\
\00/
·x2

POL(posrecip(x1)) =
/0\
\0/
+
/10\
\00/
·x1

POL(negrecip(x1)) =
/0\
\0/
+
/00\
\00/
·x1

POL(nil) =
/0\
\0/

The following usable rules [FROCOS05] were oriented:

a__square(X) → square(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(pi(X)) → a__pi(mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))

(68) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

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

(69) PisEmptyProof (EQUIVALENT transformation)

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

(70) TRUE