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 PisEmptyProof (⇔)
↳14 TRUE
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
SEL(s(X), cons(Y, Z)) → ACTIVATE(Z)
ACTIVATE(n__from(X)) → FROM(activate(X))
ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE(n__s(X)) → S(activate(X))
ACTIVATE(n__s(X)) → ACTIVATE(X)
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
ACTIVATE(n__s(X)) → ACTIVATE(X)
ACTIVATE(n__from(X)) → ACTIVATE(X)
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVATE(n__s(X)) → ACTIVATE(X)
ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE1 > [ns1, nfrom1, cons2]
sel2 > activate1 > from1 > [ns1, nfrom1, cons2]
sel2 > activate1 > s1 > [ns1, nfrom1, cons2]
0 > [ns1, nfrom1, cons2]
ACTIVATE1: [1]
ns1: multiset
nfrom1: multiset
from1: [1]
cons2: [1,2]
sel2: [1,2]
0: multiset
s1: [1]
activate1: [1]
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
SEL1 > [cons2, nfrom1]
sel2 > activate1 > from1 > [s1, ns1] > [cons2, nfrom1]
0 > [cons2, nfrom1]
SEL1: [1]
s1: [1]
cons2: multiset
activate1: [1]
from1: multiset
nfrom1: multiset
ns1: [1]
sel2: [1,2]
0: multiset
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
from(X) → n__from(X)
s(X) → n__s(X)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X