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
↳15 QDP
↳16 QDPOrderProof (⇔)
↳17 QDP
↳18 DependencyGraphProof (⇔)
↳19 TRUE
↳20 QDP
↳21 QDPOrderProof (⇔)
↳22 QDP
↳23 PisEmptyProof (⇔)
↳24 TRUE
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
SEL(s(N), cons(X, XS)) → SEL(N, activate(XS))
SEL(s(N), cons(X, XS)) → ACTIVATE(XS)
MINUS(s(X), s(Y)) → MINUS(X, Y)
QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))
QUOT(s(X), s(Y)) → MINUS(X, Y)
ZWQUOT(cons(X, XS), cons(Y, YS)) → QUOT(X, Y)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)
ACTIVATE(n__from(X)) → FROM(X)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(X1, X2)
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
MINUS(s(X), s(Y)) → MINUS(X, Y)
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS(s(X), s(Y)) → MINUS(X, Y)
sel2 > [from1, activate1, zWquot1] > [MINUS2, s1, cons2, 0, minus, nil]
MINUS2: [2,1]
s1: multiset
from1: [1]
cons2: multiset
sel2: [1,2]
0: multiset
activate1: [1]
minus: []
zWquot1: [1]
nil: multiset
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))
sel2 > [from1, activate1, zWquot2] > cons2 > nzWquot2 > 0
sel2 > [from1, activate1, zWquot2] > quot2 > s1 > 0
nil > 0
s1: [1]
from1: multiset
cons2: multiset
sel2: [1,2]
0: multiset
activate1: multiset
quot2: multiset
zWquot2: multiset
nil: multiset
nzWquot2: multiset
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(X1, X2)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)
sel2 > [activate1, zWquot2] > [ZWQUOT2, nzWquot2] > cons2
sel2 > [activate1, zWquot2] > from1 > s1 > minus1 > 0 > cons2
sel2 > [activate1, zWquot2] > quot2 > s1 > minus1 > 0 > cons2
sel2 > [activate1, zWquot2] > nil > cons2
ZWQUOT2: [2,1]
cons2: multiset
nzWquot2: [2,1]
from1: multiset
s1: multiset
sel2: [1,2]
0: multiset
activate1: multiset
minus1: multiset
quot2: [1,2]
zWquot2: multiset
nil: multiset
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(X1, X2)
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
SEL(s(N), cons(X, XS)) → SEL(N, activate(XS))
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SEL(s(N), cons(X, XS)) → SEL(N, activate(XS))
SEL2 > [activate1, from1, zWquot2] > [s1, cons2, nfrom1, 0, nil, nzWquot2]
sel2 > [activate1, from1, zWquot2] > [s1, cons2, nfrom1, 0, nil, nzWquot2]
SEL2: [1,2]
s1: [1]
cons2: multiset
activate1: multiset
from1: multiset
nfrom1: [1]
sel2: [1,2]
0: multiset
zWquot2: multiset
nil: multiset
nzWquot2: [2,1]
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X
from(X) → cons(X, n__from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(X)
activate(n__zWquot(X1, X2)) → zWquot(X1, X2)
activate(X) → X