0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 QDPOrderProof (⇔)
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 PisEmptyProof (⇔)
↳20 TRUE
↳21 QDP
↳22 QDPOrderProof (⇔)
↳23 QDP
↳24 QDPOrderProof (⇔)
↳25 QDP
↳26 PisEmptyProof (⇔)
↳27 TRUE
↳28 QDP
↳29 QDPOrderProof (⇔)
↳30 QDP
↳31 PisEmptyProof (⇔)
↳32 TRUE
↳33 QDP
↳34 QDPOrderProof (⇔)
↳35 QDP
↳36 QDPOrderProof (⇔)
↳37 QDP
↳38 QDPOrderProof (⇔)
↳39 QDP
↳40 PisEmptyProof (⇔)
↳41 TRUE
↳42 QDP
↳43 QDPOrderProof (⇔)
↳44 QDP
↳45 QDPOrderProof (⇔)
↳46 QDP
↳47 PisEmptyProof (⇔)
↳48 TRUE
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(plus(N, s(M))) → S(plus(N, M))
ACTIVE(plus(N, s(M))) → PLUS(N, M)
ACTIVE(and(X1, X2)) → AND(active(X1), X2)
ACTIVE(and(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → PLUS(active(X1), X2)
ACTIVE(plus(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → PLUS(X1, active(X2))
ACTIVE(plus(X1, X2)) → ACTIVE(X2)
ACTIVE(s(X)) → S(active(X))
ACTIVE(s(X)) → ACTIVE(X)
AND(mark(X1), X2) → AND(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(X1, mark(X2)) → PLUS(X1, X2)
S(mark(X)) → S(X)
PROPER(and(X1, X2)) → AND(proper(X1), proper(X2))
PROPER(and(X1, X2)) → PROPER(X1)
PROPER(and(X1, X2)) → PROPER(X2)
PROPER(plus(X1, X2)) → PLUS(proper(X1), proper(X2))
PROPER(plus(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X2)
PROPER(s(X)) → S(proper(X))
PROPER(s(X)) → PROPER(X)
AND(ok(X1), ok(X2)) → AND(X1, X2)
PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)
S(ok(X)) → S(X)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
S(ok(X)) → S(X)
S(mark(X)) → S(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(mark(X)) → S(X)
and2 > [mark1, s1, top1]
tt > [mark1, s1, top1]
plus2 > [mark1, s1, top1]
0 > [mark1, s1, top1]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
S(ok(X)) → S(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(ok(X)) → S(X)
proper > ok1 > [tt, mark, 0, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(ok(X1), ok(X2)) → PLUS(X1, X2)
tt > [ok1, and1, plus1, proper1, top]
0 > [ok1, and1, plus1, proper1, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(mark(X1), X2) → PLUS(X1, X2)
and2 > [PLUS1, mark1, s1, ok, top]
tt > [PLUS1, mark1, s1, ok, top]
plus2 > [PLUS1, mark1, s1, ok, top]
0 > [PLUS1, mark1, s1, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PLUS(X1, mark(X2)) → PLUS(X1, X2)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(X1, mark(X2)) → PLUS(X1, X2)
and2 > [mark1, ok, top]
tt > [mark1, ok, top]
plus2 > s1 > [mark1, ok, top]
0 > [mark1, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
AND(ok(X1), ok(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(ok(X1), ok(X2)) → AND(X1, X2)
[ok1, tt, 0, proper1] > top
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
AND(mark(X1), X2) → AND(X1, X2)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(mark(X1), X2) → AND(X1, X2)
and2 > [mark1, ok, top]
tt > [mark1, ok, top]
plus2 > s1 > [mark1, ok, top]
0 > [mark1, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PROPER(and(X1, X2)) → PROPER(X2)
PROPER(and(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X2)
PROPER(s(X)) → PROPER(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PROPER(and(X1, X2)) → PROPER(X2)
PROPER(and(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X1)
PROPER(plus(X1, X2)) → PROPER(X2)
PROPER(s(X)) → PROPER(X)
s1 > [PROPER1, and2, plus2, mark, ok, top]
tt > [PROPER1, and2, plus2, mark, ok, top]
0 > [PROPER1, and2, plus2, mark, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(plus(X1, X2)) → ACTIVE(X1)
ACTIVE(and(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → ACTIVE(X2)
ACTIVE(s(X)) → ACTIVE(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(plus(X1, X2)) → ACTIVE(X1)
ACTIVE(plus(X1, X2)) → ACTIVE(X2)
tt > [ACTIVE1, plus2, mark, proper1, ok, top]
0 > [ACTIVE1, plus2, mark, proper1, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(and(X1, X2)) → ACTIVE(X1)
ACTIVE(s(X)) → ACTIVE(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(and(X1, X2)) → ACTIVE(X1)
and1 > [mark, ok, top]
tt > [mark, ok, top]
0 > [mark, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(s(X)) → ACTIVE(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(s(X)) → ACTIVE(X)
tt > [s1, and, mark, plus, ok, top]
0 > [s1, and, mark, plus, ok, top]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
TOP(ok(X)) → TOP(active(X))
TOP(mark(X)) → TOP(proper(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TOP(mark(X)) → TOP(proper(X))
and2 > [TOP1, mark1, tt, 0, s1, top1]
plus2 > [TOP1, mark1, tt, 0, s1, top1]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
TOP(ok(X)) → TOP(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TOP(ok(X)) → TOP(active(X))
proper > [TOP1, ok1, tt] > active1 > top
proper > 0 > top
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
active(and(X1, X2)) → and(active(X1), X2)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(s(X)) → s(active(X))
and(mark(X1), X2) → mark(and(X1, X2))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
s(mark(X)) → mark(s(X))
proper(and(X1, X2)) → and(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(0) → ok(0)
proper(s(X)) → s(proper(X))
and(ok(X1), ok(X2)) → ok(and(X1, X2))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
s(ok(X)) → ok(s(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))