0 QTRS
↳1 DependencyPairsProof (⇔, 0 ms)
↳2 QDP
↳3 DependencyGraphProof (⇔, 0 ms)
↳4 AND
↳5 QDP
↳6 QDPSizeChangeProof (⇔, 0 ms)
↳7 YES
↳8 QDP
↳9 QDPSizeChangeProof (⇔, 0 ms)
↳10 YES
↳11 QDP
↳12 QDPOrderProof (⇔, 15 ms)
↳13 QDP
↳14 DependencyGraphProof (⇔, 0 ms)
↳15 QDP
↳16 QDPOrderProof (⇔, 13 ms)
↳17 QDP
↳18 QDPSizeChangeProof (⇔, 0 ms)
↳19 YES
↳20 QDP
↳21 QDPOrderProof (⇔, 127 ms)
↳22 QDP
↳23 DependencyGraphProof (⇔, 0 ms)
↳24 AND
↳25 QDP
↳26 Narrowing (⇔, 0 ms)
↳27 QDP
↳28 Narrowing (⇔, 0 ms)
↳29 QDP
↳30 DependencyGraphProof (⇔, 0 ms)
↳31 QDP
↳32 Narrowing (⇔, 0 ms)
↳33 QDP
↳34 DependencyGraphProof (⇔, 0 ms)
↳35 QDP
↳36 Narrowing (⇔, 0 ms)
↳37 QDP
↳38 DependencyGraphProof (⇔, 0 ms)
↳39 QDP
↳40 Narrowing (⇔, 0 ms)
↳41 QDP
↳42 DependencyGraphProof (⇔, 0 ms)
↳43 QDP
↳44 Narrowing (⇔, 0 ms)
↳45 QDP
↳46 QDPOrderProof (⇔, 63 ms)
↳47 QDP
↳48 PisEmptyProof (⇔, 0 ms)
↳49 YES
↳50 QDP
↳51 QDPSizeChangeProof (⇔, 0 ms)
↳52 YES
↳53 QDP
↳54 QDPSizeChangeProof (⇔, 0 ms)
↳55 YES
↳56 QDP
↳57 NonLoopProof (⇔, 398 ms)
↳58 NO
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
SEL(s(X), cons(Y, Z)) → ACTIVATE(Z)
FIRST(0, Z) → NIL
FIRST(s(X), cons(Y, Z)) → CONS(Y, n__first(X, activate(Z)))
FIRST(s(X), cons(Y, Z)) → ACTIVATE(Z)
FROM(X) → CONS(X, n__from(s(X)))
FROM(X) → S(X)
SEL1(s(X), cons(Y, Z)) → SEL1(X, activate(Z))
SEL1(s(X), cons(Y, Z)) → ACTIVATE(Z)
SEL1(0, cons(X, Z)) → QUOTE(X)
FIRST1(s(X), cons(Y, Z)) → QUOTE(Y)
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, activate(Z))
FIRST1(s(X), cons(Y, Z)) → ACTIVATE(Z)
QUOTE1(n__cons(X, Z)) → QUOTE(activate(X))
QUOTE1(n__cons(X, Z)) → ACTIVATE(X)
QUOTE1(n__cons(X, Z)) → QUOTE1(activate(Z))
QUOTE1(n__cons(X, Z)) → ACTIVATE(Z)
QUOTE(n__s(X)) → QUOTE(activate(X))
QUOTE(n__s(X)) → ACTIVATE(X)
QUOTE(n__sel(X, Z)) → SEL1(activate(X), activate(Z))
QUOTE(n__sel(X, Z)) → ACTIVATE(X)
QUOTE(n__sel(X, Z)) → ACTIVATE(Z)
QUOTE1(n__first(X, Z)) → FIRST1(activate(X), activate(Z))
QUOTE1(n__first(X, Z)) → ACTIVATE(X)
QUOTE1(n__first(X, Z)) → ACTIVATE(Z)
UNQUOTE(01) → 01
UNQUOTE(s1(X)) → S(unquote(X))
UNQUOTE(s1(X)) → UNQUOTE(X)
UNQUOTE1(nil1) → NIL
UNQUOTE1(cons1(X, Z)) → FCONS(unquote(X), unquote1(Z))
UNQUOTE1(cons1(X, Z)) → UNQUOTE(X)
UNQUOTE1(cons1(X, Z)) → UNQUOTE1(Z)
FCONS(X, Z) → CONS(X, Z)
ACTIVATE(n__first(X1, X2)) → FIRST(X1, X2)
ACTIVATE(n__from(X)) → FROM(X)
ACTIVATE(n__0) → 01
ACTIVATE(n__cons(X1, X2)) → CONS(X1, X2)
ACTIVATE(n__nil) → NIL
ACTIVATE(n__s(X)) → S(X)
ACTIVATE(n__sel(X1, X2)) → SEL(X1, X2)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
UNQUOTE(s1(X)) → UNQUOTE(X)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → 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, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
From the DPs we obtained the following set of size-change graphs:
SEL(s(X), cons(Y, Z)) → ACTIVATE(Z)
ACTIVATE(n__first(X1, X2)) → FIRST(X1, X2)
FIRST(s(X), cons(Y, Z)) → ACTIVATE(Z)
ACTIVATE(n__sel(X1, X2)) → SEL(X1, X2)
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVATE(n__first(X1, X2)) → FIRST(X1, X2)
POL( SEL(x1, x2) ) = x2 + 2
POL( activate(x1) ) = x1
POL( n__first(x1, x2) ) = x2 + 2
POL( first(x1, x2) ) = x2 + 2
POL( n__from(x1) ) = 2x1
POL( from(x1) ) = 2x1
POL( n__0 ) = 0
POL( 0 ) = 0
POL( n__cons(x1, x2) ) = x1 + x2
POL( cons(x1, x2) ) = x1 + x2
POL( n__nil ) = 0
POL( nil ) = 0
POL( n__s(x1) ) = 0
POL( s(x1) ) = 0
POL( n__sel(x1, x2) ) = 2x2
POL( sel(x1, x2) ) = 2x2
POL( ACTIVATE(x1) ) = x1 + 2
POL( FIRST(x1, x2) ) = x2 + 2
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
first(0, Z) → nil
first(X1, X2) → n__first(X1, X2)
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
cons(X1, X2) → n__cons(X1, X2)
sel(0, cons(X, Z)) → X
sel(X1, X2) → n__sel(X1, X2)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
nil → n__nil
from(X) → cons(X, n__from(s(X)))
from(X) → n__from(X)
s(X) → n__s(X)
0 → n__0
SEL(s(X), cons(Y, Z)) → ACTIVATE(Z)
FIRST(s(X), cons(Y, Z)) → ACTIVATE(Z)
ACTIVATE(n__sel(X1, X2)) → SEL(X1, X2)
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
ACTIVATE(n__sel(X1, X2)) → SEL(X1, X2)
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
SEL(s(X), cons(Y, Z)) → ACTIVATE(Z)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVATE(n__sel(X1, X2)) → SEL(X1, X2)
SEL(s(X), cons(Y, Z)) → ACTIVATE(Z)
POL( SEL(x1, x2) ) = x2 + 2
POL( activate(x1) ) = x1 + 1
POL( n__first(x1, x2) ) = max{0, x2 - 1}
POL( first(x1, x2) ) = x2
POL( n__from(x1) ) = 2x1
POL( from(x1) ) = 2x1 + 1
POL( n__0 ) = 1
POL( 0 ) = 1
POL( n__cons(x1, x2) ) = 2x1 + 2x2 + 1
POL( cons(x1, x2) ) = 2x1 + 2x2 + 1
POL( n__nil ) = 0
POL( nil ) = 0
POL( n__s(x1) ) = 0
POL( s(x1) ) = 0
POL( n__sel(x1, x2) ) = 2x2 + 1
POL( sel(x1, x2) ) = 2x2 + 2
POL( ACTIVATE(x1) ) = 2x1 + 1
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
first(0, Z) → nil
first(X1, X2) → n__first(X1, X2)
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
cons(X1, X2) → n__cons(X1, X2)
sel(0, cons(X, Z)) → X
sel(X1, X2) → n__sel(X1, X2)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
nil → n__nil
from(X) → cons(X, n__from(s(X)))
from(X) → n__from(X)
s(X) → n__s(X)
0 → n__0
SEL(s(X), cons(Y, Z)) → SEL(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
From the DPs we obtained the following set of size-change graphs:
SEL1(0, cons(X, Z)) → QUOTE(X)
QUOTE(n__s(X)) → QUOTE(activate(X))
QUOTE(n__sel(X, Z)) → SEL1(activate(X), activate(Z))
SEL1(s(X), cons(Y, Z)) → SEL1(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOTE(n__sel(X, Z)) → SEL1(activate(X), activate(Z))
POL(SEL1(x1, x2)) = -I + 0A · x1 + 0A · x2
POL(0) = 0A
POL(cons(x1, x2)) = -I + 0A · x1 + 0A · x2
POL(QUOTE(x1)) = -I + 0A · x1
POL(n__s(x1)) = -I + 0A · x1
POL(activate(x1)) = -I + 0A · x1
POL(n__sel(x1, x2)) = -I + 1A · x1 + 1A · x2
POL(s(x1)) = -I + 0A · x1
POL(n__first(x1, x2)) = -I + 0A · x1 + 5A · x2
POL(first(x1, x2)) = -I + 0A · x1 + 5A · x2
POL(n__from(x1)) = -I + 0A · x1
POL(from(x1)) = -I + 0A · x1
POL(n__0) = 0A
POL(n__cons(x1, x2)) = -I + 0A · x1 + 0A · x2
POL(n__nil) = 0A
POL(nil) = 0A
POL(sel(x1, x2)) = -I + 1A · x1 + 1A · x2
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
first(0, Z) → nil
first(X1, X2) → n__first(X1, X2)
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
cons(X1, X2) → n__cons(X1, X2)
sel(0, cons(X, Z)) → X
sel(X1, X2) → n__sel(X1, X2)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
nil → n__nil
from(X) → cons(X, n__from(s(X)))
from(X) → n__from(X)
s(X) → n__s(X)
0 → n__0
SEL1(0, cons(X, Z)) → QUOTE(X)
QUOTE(n__s(X)) → QUOTE(activate(X))
SEL1(s(X), cons(Y, Z)) → SEL1(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(X)) → QUOTE(activate(X))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__from(x0))) → QUOTE(from(x0))
QUOTE(n__s(n__0)) → QUOTE(0)
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(cons(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__from(x0))) → QUOTE(from(x0))
QUOTE(n__s(n__0)) → QUOTE(0)
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(cons(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__from(x0))) → QUOTE(n__from(x0))
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__0)) → QUOTE(0)
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(cons(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__from(x0))) → QUOTE(n__from(x0))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__0)) → QUOTE(0)
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(cons(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__0)) → QUOTE(n__0)
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(cons(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__0)) → QUOTE(n__0)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(cons(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(n__cons(x0, x1))
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__cons(x0, x1))) → QUOTE(n__cons(x0, x1))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__nil)) → QUOTE(nil)
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__nil)) → QUOTE(n__nil)
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__nil)) → QUOTE(n__nil)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__s(x0))) → QUOTE(s(x0))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
QUOTE(n__s(n__s(x0))) → QUOTE(n__s(x0))
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__s(x0))) → QUOTE(n__s(x0))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOTE(n__s(n__first(x0, x1))) → QUOTE(first(x0, x1))
QUOTE(n__s(n__sel(x0, x1))) → QUOTE(sel(x0, x1))
QUOTE(n__s(x0)) → QUOTE(x0)
QUOTE(n__s(n__from(x0))) → QUOTE(cons(x0, n__from(s(x0))))
QUOTE(n__s(n__s(x0))) → QUOTE(n__s(x0))
[nfirst2, first2, nil, nnil] > activate1 > 0 > n0
[nfirst2, first2, nil, nnil] > activate1 > from1 > [ns1, s1] > [nfrom1, cons2, ncons2]
[nsel2, sel2] > activate1 > 0 > n0
[nsel2, sel2] > activate1 > from1 > [ns1, s1] > [nfrom1, cons2, ncons2]
ns1: multiset
nfirst2: [1,2]
first2: [1,2]
nsel2: [1,2]
sel2: [1,2]
nfrom1: multiset
cons2: [2,1]
s1: multiset
0: multiset
nil: multiset
activate1: multiset
ncons2: [2,1]
from1: [1]
n0: multiset
nnil: multiset
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
first(X1, X2) → n__first(X1, X2)
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
sel(X1, X2) → n__sel(X1, X2)
s(X) → n__s(X)
cons(X1, X2) → n__cons(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(X) → X
activate(n__sel(X1, X2)) → sel(X1, X2)
nil → n__nil
from(X) → cons(X, n__from(s(X)))
from(X) → n__from(X)
0 → n__0
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
SEL1(s(X), cons(Y, Z)) → SEL1(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
From the DPs we obtained the following set of size-change graphs:
FIRST1(s(X), cons(Y, Z)) → FIRST1(X, activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X
From the DPs we obtained the following set of size-change graphs:
QUOTE1(n__cons(X, Z)) → QUOTE1(activate(Z))
sel(s(X), cons(Y, Z)) → sel(X, activate(Z))
sel(0, cons(X, Z)) → X
first(0, Z) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(X, activate(Z)))
from(X) → cons(X, n__from(s(X)))
sel1(s(X), cons(Y, Z)) → sel1(X, activate(Z))
sel1(0, cons(X, Z)) → quote(X)
first1(0, Z) → nil1
first1(s(X), cons(Y, Z)) → cons1(quote(Y), first1(X, activate(Z)))
quote(n__0) → 01
quote1(n__cons(X, Z)) → cons1(quote(activate(X)), quote1(activate(Z)))
quote1(n__nil) → nil1
quote(n__s(X)) → s1(quote(activate(X)))
quote(n__sel(X, Z)) → sel1(activate(X), activate(Z))
quote1(n__first(X, Z)) → first1(activate(X), activate(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(X1, X2) → n__first(X1, X2)
from(X) → n__from(X)
0 → n__0
cons(X1, X2) → n__cons(X1, X2)
nil → n__nil
s(X) → n__s(X)
sel(X1, X2) → n__sel(X1, X2)
activate(n__first(X1, X2)) → first(X1, X2)
activate(n__from(X)) → from(X)
activate(n__0) → 0
activate(n__cons(X1, X2)) → cons(X1, X2)
activate(n__nil) → nil
activate(n__s(X)) → s(X)
activate(n__sel(X1, X2)) → sel(X1, X2)
activate(X) → X