(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

a__dbl(0) → 0
a__dbl(s(X)) → s(s(dbl(X)))
a__dbls(nil) → nil
a__dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
a__sel(0, cons(X, Y)) → mark(X)
a__sel(s(X), cons(Y, Z)) → a__sel(mark(X), mark(Z))
a__indx(nil, X) → nil
a__indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
a__from(X) → cons(X, from(s(X)))
a__dbl1(0) → 01
a__dbl1(s(X)) → s1(s1(a__dbl1(mark(X))))
a__sel1(0, cons(X, Y)) → mark(X)
a__sel1(s(X), cons(Y, Z)) → a__sel1(mark(X), mark(Z))
a__quote(0) → 01
a__quote(s(X)) → s1(a__quote(mark(X)))
a__quote(dbl(X)) → a__dbl1(mark(X))
a__quote(sel(X, Y)) → a__sel1(mark(X), mark(Y))
mark(dbl(X)) → a__dbl(mark(X))
mark(dbls(X)) → a__dbls(mark(X))
mark(sel(X1, X2)) → a__sel(mark(X1), mark(X2))
mark(indx(X1, X2)) → a__indx(mark(X1), X2)
mark(from(X)) → a__from(X)
mark(dbl1(X)) → a__dbl1(mark(X))
mark(sel1(X1, X2)) → a__sel1(mark(X1), mark(X2))
mark(quote(X)) → a__quote(mark(X))
mark(0) → 0
mark(s(X)) → s(X)
mark(nil) → nil
mark(cons(X1, X2)) → cons(X1, X2)
mark(01) → 01
mark(s1(X)) → s1(mark(X))
a__dbl(X) → dbl(X)
a__dbls(X) → dbls(X)
a__sel(X1, X2) → sel(X1, X2)
a__indx(X1, X2) → indx(X1, X2)
a__from(X) → from(X)
a__dbl1(X) → dbl1(X)
a__sel1(X1, X2) → sel1(X1, X2)
a__quote(X) → quote(X)

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

A__SEL(0, cons(X, Y)) → MARK(X)
A__SEL(s(X), cons(Y, Z)) → A__SEL(mark(X), mark(Z))
A__SEL(s(X), cons(Y, Z)) → MARK(X)
A__SEL(s(X), cons(Y, Z)) → MARK(Z)
A__DBL1(s(X)) → A__DBL1(mark(X))
A__DBL1(s(X)) → MARK(X)
A__SEL1(0, cons(X, Y)) → MARK(X)
A__SEL1(s(X), cons(Y, Z)) → A__SEL1(mark(X), mark(Z))
A__SEL1(s(X), cons(Y, Z)) → MARK(X)
A__SEL1(s(X), cons(Y, Z)) → MARK(Z)
A__QUOTE(s(X)) → A__QUOTE(mark(X))
A__QUOTE(s(X)) → MARK(X)
A__QUOTE(dbl(X)) → A__DBL1(mark(X))
A__QUOTE(dbl(X)) → MARK(X)
A__QUOTE(sel(X, Y)) → A__SEL1(mark(X), mark(Y))
A__QUOTE(sel(X, Y)) → MARK(X)
A__QUOTE(sel(X, Y)) → MARK(Y)
MARK(dbl(X)) → A__DBL(mark(X))
MARK(dbl(X)) → MARK(X)
MARK(dbls(X)) → A__DBLS(mark(X))
MARK(dbls(X)) → MARK(X)
MARK(sel(X1, X2)) → A__SEL(mark(X1), mark(X2))
MARK(sel(X1, X2)) → MARK(X1)
MARK(sel(X1, X2)) → MARK(X2)
MARK(indx(X1, X2)) → A__INDX(mark(X1), X2)
MARK(indx(X1, X2)) → MARK(X1)
MARK(from(X)) → A__FROM(X)
MARK(dbl1(X)) → A__DBL1(mark(X))
MARK(dbl1(X)) → MARK(X)
MARK(sel1(X1, X2)) → A__SEL1(mark(X1), mark(X2))
MARK(sel1(X1, X2)) → MARK(X1)
MARK(sel1(X1, X2)) → MARK(X2)
MARK(quote(X)) → A__QUOTE(mark(X))
MARK(quote(X)) → MARK(X)
MARK(s1(X)) → MARK(X)

The TRS R consists of the following rules:

a__dbl(0) → 0
a__dbl(s(X)) → s(s(dbl(X)))
a__dbls(nil) → nil
a__dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
a__sel(0, cons(X, Y)) → mark(X)
a__sel(s(X), cons(Y, Z)) → a__sel(mark(X), mark(Z))
a__indx(nil, X) → nil
a__indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
a__from(X) → cons(X, from(s(X)))
a__dbl1(0) → 01
a__dbl1(s(X)) → s1(s1(a__dbl1(mark(X))))
a__sel1(0, cons(X, Y)) → mark(X)
a__sel1(s(X), cons(Y, Z)) → a__sel1(mark(X), mark(Z))
a__quote(0) → 01
a__quote(s(X)) → s1(a__quote(mark(X)))
a__quote(dbl(X)) → a__dbl1(mark(X))
a__quote(sel(X, Y)) → a__sel1(mark(X), mark(Y))
mark(dbl(X)) → a__dbl(mark(X))
mark(dbls(X)) → a__dbls(mark(X))
mark(sel(X1, X2)) → a__sel(mark(X1), mark(X2))
mark(indx(X1, X2)) → a__indx(mark(X1), X2)
mark(from(X)) → a__from(X)
mark(dbl1(X)) → a__dbl1(mark(X))
mark(sel1(X1, X2)) → a__sel1(mark(X1), mark(X2))
mark(quote(X)) → a__quote(mark(X))
mark(0) → 0
mark(s(X)) → s(X)
mark(nil) → nil
mark(cons(X1, X2)) → cons(X1, X2)
mark(01) → 01
mark(s1(X)) → s1(mark(X))
a__dbl(X) → dbl(X)
a__dbls(X) → dbls(X)
a__sel(X1, X2) → sel(X1, X2)
a__indx(X1, X2) → indx(X1, X2)
a__from(X) → from(X)
a__dbl1(X) → dbl1(X)
a__sel1(X1, X2) → sel1(X1, X2)
a__quote(X) → quote(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes.

(4) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(dbl(X)) → MARK(X)
MARK(dbls(X)) → MARK(X)
MARK(sel(X1, X2)) → A__SEL(mark(X1), mark(X2))
A__SEL(0, cons(X, Y)) → MARK(X)
MARK(sel(X1, X2)) → MARK(X1)
MARK(sel(X1, X2)) → MARK(X2)
MARK(indx(X1, X2)) → MARK(X1)
MARK(dbl1(X)) → A__DBL1(mark(X))
A__DBL1(s(X)) → A__DBL1(mark(X))
A__DBL1(s(X)) → MARK(X)
MARK(dbl1(X)) → MARK(X)
MARK(sel1(X1, X2)) → A__SEL1(mark(X1), mark(X2))
A__SEL1(0, cons(X, Y)) → MARK(X)
MARK(sel1(X1, X2)) → MARK(X1)
MARK(sel1(X1, X2)) → MARK(X2)
MARK(quote(X)) → A__QUOTE(mark(X))
A__QUOTE(s(X)) → A__QUOTE(mark(X))
A__QUOTE(s(X)) → MARK(X)
MARK(quote(X)) → MARK(X)
MARK(s1(X)) → MARK(X)
A__QUOTE(dbl(X)) → A__DBL1(mark(X))
A__QUOTE(dbl(X)) → MARK(X)
A__QUOTE(sel(X, Y)) → A__SEL1(mark(X), mark(Y))
A__SEL1(s(X), cons(Y, Z)) → A__SEL1(mark(X), mark(Z))
A__SEL1(s(X), cons(Y, Z)) → MARK(X)
A__SEL1(s(X), cons(Y, Z)) → MARK(Z)
A__QUOTE(sel(X, Y)) → MARK(X)
A__QUOTE(sel(X, Y)) → MARK(Y)
A__SEL(s(X), cons(Y, Z)) → A__SEL(mark(X), mark(Z))
A__SEL(s(X), cons(Y, Z)) → MARK(X)
A__SEL(s(X), cons(Y, Z)) → MARK(Z)

The TRS R consists of the following rules:

a__dbl(0) → 0
a__dbl(s(X)) → s(s(dbl(X)))
a__dbls(nil) → nil
a__dbls(cons(X, Y)) → cons(dbl(X), dbls(Y))
a__sel(0, cons(X, Y)) → mark(X)
a__sel(s(X), cons(Y, Z)) → a__sel(mark(X), mark(Z))
a__indx(nil, X) → nil
a__indx(cons(X, Y), Z) → cons(sel(X, Z), indx(Y, Z))
a__from(X) → cons(X, from(s(X)))
a__dbl1(0) → 01
a__dbl1(s(X)) → s1(s1(a__dbl1(mark(X))))
a__sel1(0, cons(X, Y)) → mark(X)
a__sel1(s(X), cons(Y, Z)) → a__sel1(mark(X), mark(Z))
a__quote(0) → 01
a__quote(s(X)) → s1(a__quote(mark(X)))
a__quote(dbl(X)) → a__dbl1(mark(X))
a__quote(sel(X, Y)) → a__sel1(mark(X), mark(Y))
mark(dbl(X)) → a__dbl(mark(X))
mark(dbls(X)) → a__dbls(mark(X))
mark(sel(X1, X2)) → a__sel(mark(X1), mark(X2))
mark(indx(X1, X2)) → a__indx(mark(X1), X2)
mark(from(X)) → a__from(X)
mark(dbl1(X)) → a__dbl1(mark(X))
mark(sel1(X1, X2)) → a__sel1(mark(X1), mark(X2))
mark(quote(X)) → a__quote(mark(X))
mark(0) → 0
mark(s(X)) → s(X)
mark(nil) → nil
mark(cons(X1, X2)) → cons(X1, X2)
mark(01) → 01
mark(s1(X)) → s1(mark(X))
a__dbl(X) → dbl(X)
a__dbls(X) → dbls(X)
a__sel(X1, X2) → sel(X1, X2)
a__indx(X1, X2) → indx(X1, X2)
a__from(X) → from(X)
a__dbl1(X) → dbl1(X)
a__sel1(X1, X2) → sel1(X1, X2)
a__quote(X) → quote(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.