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 PisEmptyProof (⇔)
↳19 TRUE
↳20 QDP
↳21 QDP
↳22 QDPOrderProof (⇔)
↳23 QDP
↳24 PisEmptyProof (⇔)
↳25 TRUE
↳26 QDP
↳27 QDPOrderProof (⇔)
↳28 QDP
↳29 PisEmptyProof (⇔)
↳30 TRUE
↳31 QDP
↳32 QDPOrderProof (⇔)
↳33 QDP
↳34 PisEmptyProof (⇔)
↳35 TRUE
↳36 QDP
↳37 QDPOrderProof (⇔)
↳38 QDP
↳39 PisEmptyProof (⇔)
↳40 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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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))
DBL1(s(X)) → DBL1(X)
SEL1(s(X), cons(Y, Z)) → SEL1(X, Z)
QUOTE(s(X)) → QUOTE(X)
QUOTE(dbl(X)) → DBL1(X)
QUOTE(sel(X, Y)) → SEL1(X, 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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
SEL1(s(X), cons(Y, Z)) → SEL1(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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SEL1(s(X), cons(Y, Z)) → SEL1(X, Z)
cons1 > SEL12
SEL12: [1,2]
s1: multiset
cons1: 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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
DBL1(s(X)) → DBL1(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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DBL1(s(X)) → DBL1(X)
s1 > DBL11
DBL11: [1]
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
QUOTE(s(X)) → QUOTE(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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOTE(s(X)) → QUOTE(X)
s1 > QUOTE1
QUOTE1: [1]
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)
cons1 > SEL2
SEL2: [1,2]
s1: multiset
cons1: 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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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 > INDX2
INDX2: [1,2]
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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: [1]
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)
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)
cons2 > DBLS1
DBLS1: [1]
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)))
dbl1(0) → 01
dbl1(s(X)) → s1(s1(dbl1(X)))
sel1(0, cons(X, Y)) → X
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
quote(0) → 01
quote(s(X)) → s1(quote(X))
quote(dbl(X)) → dbl1(X)
quote(sel(X, Y)) → sel1(X, Y)