0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 PisEmptyProof (⇔)
↳9 TRUE
↳10 QDP
↳11 QDPOrderProof (⇔)
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 QDPOrderProof (⇔)
↳16 QDP
↳17 PisEmptyProof (⇔)
↳18 TRUE
↳19 QDP
↳20 QDPOrderProof (⇔)
↳21 QDP
↳22 QDPOrderProof (⇔)
↳23 QDP
↳24 QDPOrderProof (⇔)
↳25 QDP
↳26 PisEmptyProof (⇔)
↳27 TRUE
↳28 QDP
↳29 QDPOrderProof (⇔)
↳30 QDP
↳31 QDPOrderProof (⇔)
↳32 QDP
↳33 DependencyGraphProof (⇔)
↳34 TRUE
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(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(plus(N, s(M))) → S(plus(N, M))
ACTIVE(plus(N, s(M))) → PLUS(N, M)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
MARK(and(X1, X2)) → AND(mark(X1), X2)
MARK(and(X1, X2)) → MARK(X1)
MARK(tt) → ACTIVE(tt)
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
MARK(plus(X1, X2)) → PLUS(mark(X1), mark(X2))
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(0) → ACTIVE(0)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
AND(mark(X1), X2) → AND(X1, X2)
AND(X1, mark(X2)) → AND(X1, X2)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(active(X1), X2) → PLUS(X1, X2)
PLUS(X1, active(X2)) → PLUS(X1, X2)
S(mark(X)) → S(X)
S(active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
S(active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(active(X)) → S(X)
S(mark(X)) → S(X)
and1 > [mark1, plus2, s] > active1
tt > [mark1, plus2, s] > active1
0 > [mark1, plus2, s] > active1
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(active(X1), X2) → PLUS(X1, X2)
PLUS(X1, active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(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)
PLUS(mark(X1), X2) → PLUS(X1, X2)
[mark1, and2, plus2] > tt > [PLUS2, s]
[mark1, and2, plus2] > 0 > [PLUS2, s]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
PLUS(active(X1), X2) → PLUS(X1, X2)
PLUS(X1, active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(active(X1), X2) → PLUS(X1, X2)
[and2, mark1, plus2, s] > [PLUS1, active1, tt, 0]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
PLUS(X1, active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(X1, active(X2)) → PLUS(X1, X2)
[and1, mark1, plus2] > tt
[and1, mark1, plus2] > 0 > active1
[and1, mark1, plus2] > s > active1
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
[mark1, and2, plus2] > tt > [AND2, s]
[mark1, and2, plus2] > 0 > [AND2, s]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(active(X1), X2) → AND(X1, X2)
[and2, mark1, plus2, s] > [AND1, active1, tt, 0]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
AND(X1, active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(X1, active(X2)) → AND(X1, X2)
[and1, mark1, plus2] > tt
[and1, mark1, plus2] > 0 > active1
[and1, mark1, plus2] > s > active1
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(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)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
ACTIVE(and(tt, X)) → MARK(X)
MARK(and(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
ACTIVE(plus(N, 0)) → MARK(N)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(plus(N, s(M))) → MARK(s(plus(N, M)))
MARK(s(X)) → MARK(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(and(tt, X)) → MARK(X)
MARK(and(X1, X2)) → MARK(X1)
ACTIVE(plus(N, 0)) → MARK(N)
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
0 > [MARK1, and2, ACTIVE1, tt, plus2]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(plus(N, s(M))) → MARK(s(plus(N, M)))
MARK(s(X)) → MARK(X)
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(plus(N, s(M))) → MARK(s(plus(N, M)))
MARK(s(X)) → MARK(X)
plus2 > [and1, s1]
tt > [and1, s1]
0 > [and1, s1]
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
MARK(s(X)) → ACTIVE(s(mark(X)))
active(and(tt, X)) → mark(X)
active(plus(N, 0)) → mark(N)
active(plus(N, s(M))) → mark(s(plus(N, M)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(tt) → active(tt)
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(0) → active(0)
mark(s(X)) → active(s(mark(X)))
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)