0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 MNOCProof (⇔)
↳7 QDP
↳8 UsableRulesProof (⇔)
↳9 QDP
↳10 QReductionProof (⇔)
↳11 QDP
↳12 QDPSizeChangeProof (⇔)
↳13 YES
↳14 QDP
↳15 MNOCProof (⇔)
↳16 QDP
↳17 UsableRulesProof (⇔)
↳18 QDP
↳19 QReductionProof (⇔)
↳20 QDP
↳21 QDPSizeChangeProof (⇔)
↳22 YES
↳23 QDP
↳24 UsableRulesProof (⇔)
↳25 QDP
↳26 QDPSizeChangeProof (⇔)
↳27 YES
↳28 QDP
↳29 MNOCProof (⇔)
↳30 QDP
↳31 UsableRulesProof (⇔)
↳32 QDP
↳33 QReductionProof (⇔)
↳34 QDP
↳35 QDPSizeChangeProof (⇔)
↳36 YES
↳37 QDP
↳38 MNOCProof (⇔)
↳39 QDP
↳40 UsableRulesProof (⇔)
↳41 QDP
↳42 QReductionProof (⇔)
↳43 QDP
↳44 QDPSizeChangeProof (⇔)
↳45 YES
↳46 QDP
↳47 MNOCProof (⇔)
↳48 QDP
↳49 UsableRulesProof (⇔)
↳50 QDP
↳51 QReductionProof (⇔)
↳52 QDP
↳53 Instantiation (⇔)
↳54 QDP
↳55 Instantiation (⇔)
↳56 QDP
↳57 NonTerminationProof (⇔)
↳58 NO
↳59 QDP
↳60 MNOCProof (⇔)
↳61 QDP
↳62 UsableRulesProof (⇔)
↳63 QDP
↳64 QReductionProof (⇔)
↳65 QDP
↳66 QDPSizeChangeProof (⇔)
↳67 YES
↳68 QDP
↳69 MNOCProof (⇔)
↳70 QDP
↳71 UsableRulesProof (⇔)
↳72 QDP
↳73 QReductionProof (⇔)
↳74 QDP
↳75 QDPSizeChangeProof (⇔)
↳76 YES
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
FIRST(s(X), cons(Y, Z)) → FIRST(X, Z)
FROM(X) → FROM(s(X))
SEL1(s(X), cons(Y, Z)) → SEL1(X, Z)
SEL1(0, cons(X, Z)) → QUOTE(X)
FIRST1(s(X), cons(Y, Z)) → QUOTE(Y)
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, Z)
QUOTE1(cons(X, Z)) → QUOTE(X)
QUOTE1(cons(X, Z)) → QUOTE1(Z)
QUOTE(s(X)) → QUOTE(X)
QUOTE(sel(X, Z)) → SEL1(X, Z)
QUOTE1(first(X, Z)) → FIRST1(X, Z)
UNQUOTE(s1(X)) → UNQUOTE(X)
UNQUOTE1(cons1(X, Z)) → FCONS(unquote(X), unquote1(Z))
UNQUOTE1(cons1(X, Z)) → UNQUOTE(X)
UNQUOTE1(cons1(X, Z)) → UNQUOTE1(Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
UNQUOTE(s1(X)) → UNQUOTE(X)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
UNQUOTE(s1(X)) → UNQUOTE(X)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
UNQUOTE(s1(X)) → UNQUOTE(X)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
UNQUOTE(s1(X)) → UNQUOTE(X)
From the DPs we obtained the following set of size-change graphs:
UNQUOTE1(cons1(X, Z)) → UNQUOTE1(Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
UNQUOTE1(cons1(X, Z)) → UNQUOTE1(Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
UNQUOTE1(cons1(X, Z)) → UNQUOTE1(Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
UNQUOTE1(cons1(X, Z)) → UNQUOTE1(Z)
From the DPs we obtained the following set of size-change graphs:
SEL1(0, cons(X, Z)) → QUOTE(X)
QUOTE(s(X)) → QUOTE(X)
QUOTE(sel(X, Z)) → SEL1(X, Z)
SEL1(s(X), cons(Y, Z)) → SEL1(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
SEL1(0, cons(X, Z)) → QUOTE(X)
QUOTE(s(X)) → QUOTE(X)
QUOTE(sel(X, Z)) → SEL1(X, Z)
SEL1(s(X), cons(Y, Z)) → SEL1(X, Z)
From the DPs we obtained the following set of size-change graphs:
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, Z)
From the DPs we obtained the following set of size-change graphs:
QUOTE1(cons(X, Z)) → QUOTE1(Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
QUOTE1(cons(X, Z)) → QUOTE1(Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
QUOTE1(cons(X, Z)) → QUOTE1(Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
QUOTE1(cons(X, Z)) → QUOTE1(Z)
From the DPs we obtained the following set of size-change graphs:
FROM(X) → FROM(s(X))
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
FROM(X) → FROM(s(X))
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
FROM(X) → FROM(s(X))
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
FROM(X) → FROM(s(X))
FROM(s(z0)) → FROM(s(s(z0)))
FROM(s(z0)) → FROM(s(s(z0)))
FROM(s(s(z0))) → FROM(s(s(s(z0))))
FROM(s(s(z0))) → FROM(s(s(s(z0))))
FIRST(s(X), cons(Y, Z)) → FIRST(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
FIRST(s(X), cons(Y, Z)) → FIRST(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
FIRST(s(X), cons(Y, Z)) → FIRST(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
FIRST(s(X), cons(Y, Z)) → FIRST(X, Z)
From the DPs we obtained the following set of size-change graphs:
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
sel(s(X), cons(Y, Z)) → sel(X, Z)
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))
from(X) → cons(X, from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, Z)
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, Z))
quote(0) → 01
quote1(cons(X, Z)) → cons1(quote(X), quote1(Z))
quote1(nil) → nil1
quote(s(X)) → s1(quote(X))
quote(sel(X, Z)) → sel1(X, Z)
quote1(first(X, Z)) → first1(X, Z)
unquote(01) → 0
unquote(s1(X)) → s(unquote(X))
unquote1(nil1) → nil
unquote1(cons1(X, Z)) → fcons(unquote(X), unquote1(Z))
fcons(X, Z) → cons(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
sel(s(x0), cons(x1, x2))
sel(0, cons(x0, x1))
first(0, x0)
first(s(x0), cons(x1, x2))
from(x0)
sel1(s(x0), cons(x1, x2))
sel1(0, cons(x0, x1))
first1(0, x0)
first1(s(x0), cons(x1, x2))
quote(0)
quote1(cons(x0, x1))
quote1(nil)
quote(s(x0))
quote(sel(x0, x1))
quote1(first(x0, x1))
unquote(01)
unquote(s1(x0))
unquote1(nil1)
unquote1(cons1(x0, x1))
fcons(x0, x1)
SEL(s(X), cons(Y, Z)) → SEL(X, Z)
From the DPs we obtained the following set of size-change graphs: