0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 QDPOrderProof (⇔)
↳11 QDP
↳12 QDPOrderProof (⇔)
↳13 QDP
↳14 PisEmptyProof (⇔)
↳15 TRUE
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 QDPOrderProof (⇔)
↳20 QDP
↳21 PisEmptyProof (⇔)
↳22 TRUE
↳23 QDP
↳24 QDPOrderProof (⇔)
↳25 QDP
↳26 QDPOrderProof (⇔)
↳27 QDP
↳28 QDPOrderProof (⇔)
↳29 QDP
↳30 QDPOrderProof (⇔)
↳31 QDP
↳32 PisEmptyProof (⇔)
↳33 TRUE
↳34 QDP
↳35 QDPOrderProof (⇔)
↳36 QDP
↳37 QDPOrderProof (⇔)
↳38 QDP
↳39 PisEmptyProof (⇔)
↳40 TRUE
↳41 QDP
↳42 QDPOrderProof (⇔)
↳43 QDP
↳44 QDPOrderProof (⇔)
↳45 QDP
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
ACTIVE(from(X)) → CONS(X, from(s(X)))
ACTIVE(from(X)) → FROM(s(X))
ACTIVE(from(X)) → S(X)
ACTIVE(after(0, XS)) → MARK(XS)
ACTIVE(after(s(N), cons(X, XS))) → MARK(after(N, XS))
ACTIVE(after(s(N), cons(X, XS))) → AFTER(N, XS)
MARK(from(X)) → ACTIVE(from(mark(X)))
MARK(from(X)) → FROM(mark(X))
MARK(from(X)) → MARK(X)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(cons(X1, X2)) → CONS(mark(X1), X2)
MARK(cons(X1, X2)) → MARK(X1)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
MARK(after(X1, X2)) → ACTIVE(after(mark(X1), mark(X2)))
MARK(after(X1, X2)) → AFTER(mark(X1), mark(X2))
MARK(after(X1, X2)) → MARK(X1)
MARK(after(X1, X2)) → MARK(X2)
MARK(0) → ACTIVE(0)
FROM(mark(X)) → FROM(X)
FROM(active(X)) → FROM(X)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
S(mark(X)) → S(X)
S(active(X)) → S(X)
AFTER(mark(X1), X2) → AFTER(X1, X2)
AFTER(X1, mark(X2)) → AFTER(X1, X2)
AFTER(active(X1), X2) → AFTER(X1, X2)
AFTER(X1, active(X2)) → AFTER(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
AFTER(X1, mark(X2)) → AFTER(X1, X2)
AFTER(mark(X1), X2) → AFTER(X1, X2)
AFTER(active(X1), X2) → AFTER(X1, X2)
AFTER(X1, active(X2)) → AFTER(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTER(X1, active(X2)) → AFTER(X1, X2)
trivial
AFTER1: multiset
active1: multiset
AFTER(X1, mark(X2)) → AFTER(X1, X2)
AFTER(mark(X1), X2) → AFTER(X1, X2)
AFTER(active(X1), X2) → AFTER(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTER(active(X1), X2) → AFTER(X1, X2)
trivial
AFTER1: multiset
active1: multiset
AFTER(X1, mark(X2)) → AFTER(X1, X2)
AFTER(mark(X1), X2) → AFTER(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTER(X1, mark(X2)) → AFTER(X1, X2)
mark1 > AFTER1
AFTER1: multiset
mark1: [1]
AFTER(mark(X1), X2) → AFTER(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTER(mark(X1), X2) → AFTER(X1, X2)
[AFTER2, mark1]
AFTER2: [2,1]
mark1: multiset
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
S(active(X)) → S(X)
S(mark(X)) → S(X)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(active(X)) → S(X)
trivial
active1: multiset
S(mark(X)) → S(X)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(mark(X)) → S(X)
trivial
mark1: multiset
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(X1, active(X2)) → CONS(X1, X2)
trivial
CONS1: multiset
active1: multiset
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(active(X1), X2) → CONS(X1, X2)
trivial
CONS1: multiset
active1: multiset
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(mark(X1), X2) → CONS(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(X1, mark(X2)) → CONS(X1, X2)
mark1 > CONS1
CONS1: multiset
mark1: [1]
CONS(mark(X1), X2) → CONS(X1, X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(mark(X1), X2) → CONS(X1, X2)
[CONS2, mark1]
CONS2: [2,1]
mark1: multiset
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
FROM(active(X)) → FROM(X)
FROM(mark(X)) → FROM(X)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FROM(active(X)) → FROM(X)
trivial
active1: multiset
FROM(mark(X)) → FROM(X)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FROM(mark(X)) → FROM(X)
trivial
mark1: multiset
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
MARK(from(X)) → ACTIVE(from(mark(X)))
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(from(X)) → MARK(X)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(after(0, XS)) → MARK(XS)
MARK(cons(X1, X2)) → MARK(X1)
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(after(s(N), cons(X, XS))) → MARK(after(N, XS))
MARK(s(X)) → MARK(X)
MARK(after(X1, X2)) → ACTIVE(after(mark(X1), mark(X2)))
MARK(after(X1, X2)) → MARK(X1)
MARK(after(X1, X2)) → MARK(X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(s(X)) → ACTIVE(s(mark(X)))
[MARK, from, cons, after] > s
0 > s
MARK: multiset
from: multiset
cons: multiset
s: multiset
after: multiset
0: multiset
from(active(X)) → from(X)
from(mark(X)) → from(X)
s(active(X)) → s(X)
s(mark(X)) → s(X)
cons(X1, mark(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(mark(X1), X2) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
MARK(from(X)) → ACTIVE(from(mark(X)))
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(from(X)) → MARK(X)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(after(0, XS)) → MARK(XS)
MARK(cons(X1, X2)) → MARK(X1)
ACTIVE(after(s(N), cons(X, XS))) → MARK(after(N, XS))
MARK(s(X)) → MARK(X)
MARK(after(X1, X2)) → ACTIVE(after(mark(X1), mark(X2)))
MARK(after(X1, X2)) → MARK(X1)
MARK(after(X1, X2)) → MARK(X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
active1 > [mark1, s1] > 0 > [MARK, from, after] > cons
MARK: multiset
from: multiset
mark1: multiset
cons: multiset
s1: multiset
after: multiset
0: multiset
active1: multiset
from(active(X)) → from(X)
from(mark(X)) → from(X)
cons(X1, mark(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(mark(X1), X2) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)
MARK(from(X)) → ACTIVE(from(mark(X)))
ACTIVE(from(X)) → MARK(cons(X, from(s(X))))
MARK(from(X)) → MARK(X)
ACTIVE(after(0, XS)) → MARK(XS)
MARK(cons(X1, X2)) → MARK(X1)
ACTIVE(after(s(N), cons(X, XS))) → MARK(after(N, XS))
MARK(s(X)) → MARK(X)
MARK(after(X1, X2)) → ACTIVE(after(mark(X1), mark(X2)))
MARK(after(X1, X2)) → MARK(X1)
MARK(after(X1, X2)) → MARK(X2)
active(from(X)) → mark(cons(X, from(s(X))))
active(after(0, XS)) → mark(XS)
active(after(s(N), cons(X, XS))) → mark(after(N, XS))
mark(from(X)) → active(from(mark(X)))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(after(X1, X2)) → active(after(mark(X1), mark(X2)))
mark(0) → active(0)
from(mark(X)) → from(X)
from(active(X)) → from(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
after(mark(X1), X2) → after(X1, X2)
after(X1, mark(X2)) → after(X1, X2)
after(active(X1), X2) → after(X1, X2)
after(X1, active(X2)) → after(X1, X2)