0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDP
↳9 QDPOrderProof (⇔)
↳10 QDP
↳11 PisEmptyProof (⇔)
↳12 TRUE
↳13 QDP
↳14 QDPOrderProof (⇔)
↳15 QDP
↳16 PisEmptyProof (⇔)
↳17 TRUE
↳18 QDP
↳19 QDPOrderProof (⇔)
↳20 QDP
↳21 PisEmptyProof (⇔)
↳22 TRUE
↳23 QDP
↳24 QDPOrderProof (⇔)
↳25 QDP
↳26 PisEmptyProof (⇔)
↳27 TRUE
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
DBL(s(X)) → DBL(X)
DBLS(cons(X, Y)) → DBL(X)
DBLS(cons(X, Y)) → DBLS(Y)
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
INDX(cons(X, Y), Z) → SEL(X, Z)
INDX(cons(X, Y), Z) → INDX(Y, Z)
FROM(X) → FROM(s(X))
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
FROM(X) → FROM(s(X))
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
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, Z)
trivial
cons2: multiset
SEL1: multiset
s1: multiset
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
INDX(cons(X, Y), Z) → INDX(Y, Z)
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
INDX(cons(X, Y), Z) → INDX(Y, Z)
cons2 > INDX1
cons2: multiset
INDX1: multiset
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
DBL(s(X)) → DBL(X)
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DBL(s(X)) → DBL(X)
s1 > DBL1
DBL1: multiset
s1: multiset
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
DBLS(cons(X, Y)) → DBLS(Y)
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DBLS(cons(X, Y)) → DBLS(Y)
trivial
cons2: multiset
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
dbls(nil) → nil
dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
sel(0, cons(X, Y)) → X
sel(s(X), cons(Y, Z)) → sel(X, Z)
indx(nil, X) → nil
indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
from(X) → cons(X, from(s(X)))
dbl(0)
dbl(s(x0))
dbls(nil)
dbls(cons(x0, x1))
sel(0, cons(x0, x1))
sel(s(x0), cons(x1, x2))
indx(nil, x0)
indx(cons(x0, x1), x2)
from(x0)