0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
↳17 QDP
↳18 QDPOrderProof (⇔)
↳19 QDP
↳20 PisEmptyProof (⇔)
↳21 TRUE
↳22 QDP
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
FROM(X) → FROM(s(X))
SEL(s(N), cons(X, XS)) → SEL(N, 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)) → ZWQUOT(XS, YS)
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
MINUS(s(X), s(Y)) → MINUS(X, Y)
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
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)
trivial
s1: multiset
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
ZWQUOT(cons(X, XS), cons(Y, YS)) → ZWQUOT(XS, YS)
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
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)) → ZWQUOT(XS, YS)
cons2 > ZWQUOT1
cons2: multiset
ZWQUOT1: multiset
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
SEL(s(N), cons(X, XS)) → SEL(N, XS)
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
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, XS)
s1 > SEL2
s1: multiset
SEL2: [1,2]
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))
FROM(X) → FROM(s(X))
from(X) → cons(X, from(s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, 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), zWquot(XS, YS))
from(x0)
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
zWquot(x0, nil)
zWquot(nil, x0)
zWquot(cons(x0, x1), cons(x2, x3))