(0) Obligation:

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

active(U11(tt, M, N)) → mark(U12(tt, M, N))
active(U12(tt, M, N)) → mark(s(plus(N, M)))
active(U21(tt, M, N)) → mark(U22(tt, M, N))
active(U22(tt, M, N)) → mark(plus(x(N, M), N))
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(U11(tt, M, N))
active(x(N, 0)) → mark(0)
active(x(N, s(M))) → mark(U21(tt, M, N))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2, X3)) → U22(active(X1), X2, X3)
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
s(mark(X)) → mark(s(X))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2, X3) → mark(U22(X1, X2, X3))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2, X3)) → U22(proper(X1), proper(X2), proper(X3))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(0) → ok(0)
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
s(ok(X)) → ok(s(X))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2), ok(X3)) → ok(U22(X1, X2, X3))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.

(1) QTRSToCSRProof (EQUIVALENT transformation)

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

active(U11(tt, M, N)) → mark(U12(tt, M, N))
active(U12(tt, M, N)) → mark(s(plus(N, M)))
active(U21(tt, M, N)) → mark(U22(tt, M, N))
active(U22(tt, M, N)) → mark(plus(x(N, M), N))
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(U11(tt, M, N))
active(x(N, 0)) → mark(0)
active(x(N, s(M))) → mark(U21(tt, M, N))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(U21(X1, X2, X3)) → U21(active(X1), X2, X3)
active(U22(X1, X2, X3)) → U22(active(X1), X2, X3)
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
s(mark(X)) → mark(s(X))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
U21(mark(X1), X2, X3) → mark(U21(X1, X2, X3))
U22(mark(X1), X2, X3) → mark(U22(X1, X2, X3))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(U21(X1, X2, X3)) → U21(proper(X1), proper(X2), proper(X3))
proper(U22(X1, X2, X3)) → U22(proper(X1), proper(X2), proper(X3))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(0) → ok(0)
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
s(ok(X)) → ok(s(X))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
U21(ok(X1), ok(X2), ok(X3)) → ok(U21(X1, X2, X3))
U22(ok(X1), ok(X2), ok(X3)) → ok(U22(X1, X2, X3))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
Special symbols used for the transformation (see [GM04]):
top: top, active: active, mark: mark, ok: ok, proper: proper
The replacement map contains the following entries:

U11: {1}
tt: empty set
U12: {1}
s: {1}
plus: {1, 2}
U21: {1}
U22: {1}
x: {1, 2}
0: empty set
The QTRS contained all rules created by the complete Giesl-Middeldorp transformation. Therefore, the inverse transformation is complete (and sound).

(2) Obligation:

Context-sensitive rewrite system:
The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The replacement map contains the following entries:

U11: {1}
tt: empty set
U12: {1}
s: {1}
plus: {1, 2}
U21: {1}
U22: {1}
x: {1, 2}
0: empty set

(3) CSRInnermostProof (EQUIVALENT transformation)

The CSR is orthogonal. By [CS_Inn] we can switch to innermost.

(4) Obligation:

Context-sensitive rewrite system:
The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The replacement map contains the following entries:

U11: {1}
tt: empty set
U12: {1}
s: {1}
plus: {1, 2}
U21: {1}
U22: {1}
x: {1, 2}
0: empty set

Innermost Strategy.

(5) CSDependencyPairsProof (EQUIVALENT transformation)

Using Improved CS-DPs [LPAR08] we result in the following initial Q-CSDP problem.

(6) Obligation:

Q-restricted context-sensitive dependency pair problem:
The symbols in {s, plus, x, PLUS, X} are replacing on all positions.
For all symbols f in {U11, U12, U21, U22, U12', U11', U22', U21'} we have µ(f) = {1}.
The symbols in {U} are not replacing on any position.

The ordinary context-sensitive dependency pairs DPo are:

U11'(tt, M, N) → U12'(tt, M, N)
U12'(tt, M, N) → PLUS(N, M)
U21'(tt, M, N) → U22'(tt, M, N)
U22'(tt, M, N) → PLUS(x(N, M), N)
U22'(tt, M, N) → X(N, M)
PLUS(N, s(M)) → U11'(tt, M, N)
X(N, s(M)) → U21'(tt, M, N)

The collapsing dependency pairs are DPc:

U12'(tt, M, N) → N
U12'(tt, M, N) → M
U22'(tt, M, N) → N
U22'(tt, M, N) → M


The hidden terms of R are:
none

Every hiding context is built from:none

Hence, the new unhiding pairs DPu are :

U12'(tt, M, N) → U(N)
U12'(tt, M, N) → U(M)
U22'(tt, M, N) → U(N)
U22'(tt, M, N) → U(M)

The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The set Q consists of the following terms:

U11(tt, x0, x1)
U12(tt, x0, x1)
U21(tt, x0, x1)
U22(tt, x0, x1)
plus(x0, 0)
plus(x0, s(x1))
x(x0, 0)
x(x0, s(x1))

(7) QCSDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 2 SCCs with 5 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Q-restricted context-sensitive dependency pair problem:
The symbols in {s, plus, x, PLUS} are replacing on all positions.
For all symbols f in {U11, U12, U21, U22, U12', U11'} we have µ(f) = {1}.

The TRS P consists of the following rules:

U12'(tt, M, N) → PLUS(N, M)
PLUS(N, s(M)) → U11'(tt, M, N)
U11'(tt, M, N) → U12'(tt, M, N)

The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The set Q consists of the following terms:

U11(tt, x0, x1)
U12(tt, x0, x1)
U21(tt, x0, x1)
U22(tt, x0, x1)
plus(x0, 0)
plus(x0, s(x1))
x(x0, 0)
x(x0, s(x1))

(10) QCSDPSubtermProof (EQUIVALENT transformation)

We use the subterm processor [DA_EMMES].


The following pairs can be oriented strictly and are deleted.


PLUS(N, s(M)) → U11'(tt, M, N)
The remaining pairs can at least be oriented weakly.

U12'(tt, M, N) → PLUS(N, M)
U11'(tt, M, N) → U12'(tt, M, N)
Used ordering: Combined order from the following AFS and order.
PLUS(x1, x2)  =  x2
U12'(x1, x2, x3)  =  x2
U11'(x1, x2, x3)  =  x2

Subterm Order

(11) Obligation:

Q-restricted context-sensitive dependency pair problem:
The symbols in {s, plus, x, PLUS} are replacing on all positions.
For all symbols f in {U11, U12, U21, U22, U12', U11'} we have µ(f) = {1}.

The TRS P consists of the following rules:

U12'(tt, M, N) → PLUS(N, M)
U11'(tt, M, N) → U12'(tt, M, N)

The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The set Q consists of the following terms:

U11(tt, x0, x1)
U12(tt, x0, x1)
U21(tt, x0, x1)
U22(tt, x0, x1)
plus(x0, 0)
plus(x0, s(x1))
x(x0, 0)
x(x0, s(x1))

(12) QCSDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 2 less nodes.

(13) TRUE

(14) Obligation:

Q-restricted context-sensitive dependency pair problem:
The symbols in {s, plus, x, X} are replacing on all positions.
For all symbols f in {U11, U12, U21, U22, U22', U21'} we have µ(f) = {1}.

The TRS P consists of the following rules:

U22'(tt, M, N) → X(N, M)
X(N, s(M)) → U21'(tt, M, N)
U21'(tt, M, N) → U22'(tt, M, N)

The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The set Q consists of the following terms:

U11(tt, x0, x1)
U12(tt, x0, x1)
U21(tt, x0, x1)
U22(tt, x0, x1)
plus(x0, 0)
plus(x0, s(x1))
x(x0, 0)
x(x0, s(x1))

(15) QCSDPSubtermProof (EQUIVALENT transformation)

We use the subterm processor [DA_EMMES].


The following pairs can be oriented strictly and are deleted.


X(N, s(M)) → U21'(tt, M, N)
The remaining pairs can at least be oriented weakly.

U22'(tt, M, N) → X(N, M)
U21'(tt, M, N) → U22'(tt, M, N)
Used ordering: Combined order from the following AFS and order.
X(x1, x2)  =  x2
U22'(x1, x2, x3)  =  x2
U21'(x1, x2, x3)  =  x2

Subterm Order

(16) Obligation:

Q-restricted context-sensitive dependency pair problem:
The symbols in {s, plus, x, X} are replacing on all positions.
For all symbols f in {U11, U12, U21, U22, U22', U21'} we have µ(f) = {1}.

The TRS P consists of the following rules:

U22'(tt, M, N) → X(N, M)
U21'(tt, M, N) → U22'(tt, M, N)

The TRS R consists of the following rules:

U11(tt, M, N) → U12(tt, M, N)
U12(tt, M, N) → s(plus(N, M))
U21(tt, M, N) → U22(tt, M, N)
U22(tt, M, N) → plus(x(N, M), N)
plus(N, 0) → N
plus(N, s(M)) → U11(tt, M, N)
x(N, 0) → 0
x(N, s(M)) → U21(tt, M, N)

The set Q consists of the following terms:

U11(tt, x0, x1)
U12(tt, x0, x1)
U21(tt, x0, x1)
U22(tt, x0, x1)
plus(x0, 0)
plus(x0, s(x1))
x(x0, 0)
x(x0, s(x1))

(17) QCSDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 2 less nodes.

(18) TRUE