Term Rewriting System R:
[X, Y, Z, X1, X2]
dbl(0) -> 0
dbl(s(X)) -> s(ns(ndbl(activate(X))))
dbl(X) -> ndbl(X)
dbls(nil) -> nil
dbls(cons(X, Y)) -> cons(ndbl(activate(X)), ndbls(activate(Y)))
dbls(X) -> ndbls(X)
sel(0, cons(X, Y)) -> activate(X)
sel(s(X), cons(Y, Z)) -> sel(activate(X), activate(Z))
sel(X1, X2) -> nsel(X1, X2)
indx(nil, X) -> nil
indx(cons(X, Y), Z) -> cons(nsel(activate(X), activate(Z)), nindx(activate(Y), activate(Z)))
indx(X1, X2) -> nindx(X1, X2)
from(X) -> cons(activate(X), nfrom(ns(activate(X))))
from(X) -> nfrom(X)
dbl1(0) -> 01
dbl1(s(X)) -> s1(s1(dbl1(activate(X))))
sel1(0, cons(X, Y)) -> activate(X)
sel1(s(X), cons(Y, Z)) -> sel1(activate(X), activate(Z))
quote(0) -> 01
quote(s(X)) -> s1(quote(activate(X)))
quote(dbl(X)) -> dbl1(X)
quote(sel(X, Y)) -> sel1(X, Y)
s(X) -> ns(X)
activate(ns(X)) -> s(X)
activate(ndbl(X)) -> dbl(activate(X))
activate(ndbls(X)) -> dbls(activate(X))
activate(nsel(X1, X2)) -> sel(activate(X1), activate(X2))
activate(nindx(X1, X2)) -> indx(activate(X1), X2)
activate(nfrom(X)) -> from(X)
activate(X) -> X

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

DBL(s(X)) -> S(ns(ndbl(activate(X))))
DBL(s(X)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> ACTIVATE(Y)
SEL(0, cons(X, Y)) -> ACTIVATE(X)
SEL(s(X), cons(Y, Z)) -> SEL(activate(X), activate(Z))
SEL(s(X), cons(Y, Z)) -> ACTIVATE(X)
SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
INDX(cons(X, Y), Z) -> ACTIVATE(Y)
FROM(X) -> ACTIVATE(X)
DBL1(s(X)) -> DBL1(activate(X))
DBL1(s(X)) -> ACTIVATE(X)
SEL1(0, cons(X, Y)) -> ACTIVATE(X)
SEL1(s(X), cons(Y, Z)) -> SEL1(activate(X), activate(Z))
SEL1(s(X), cons(Y, Z)) -> ACTIVATE(X)
SEL1(s(X), cons(Y, Z)) -> ACTIVATE(Z)
QUOTE(s(X)) -> QUOTE(activate(X))
QUOTE(s(X)) -> ACTIVATE(X)
QUOTE(dbl(X)) -> DBL1(X)
QUOTE(sel(X, Y)) -> SEL1(X, Y)
ACTIVATE(ns(X)) -> S(X)
ACTIVATE(ndbl(X)) -> DBL(activate(X))
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
ACTIVATE(ndbls(X)) -> DBLS(activate(X))
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
ACTIVATE(nsel(X1, X2)) -> SEL(activate(X1), activate(X2))
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
ACTIVATE(nfrom(X)) -> FROM(X)

Furthermore, R contains four SCCs.


   R
DPs
       →DP Problem 1
Narrowing Transformation
       →DP Problem 2
Remaining
       →DP Problem 3
Remaining
       →DP Problem 4
Remaining


Dependency Pairs:

DBLS(cons(X, Y)) -> ACTIVATE(Y)
SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z)
SEL(s(X), cons(Y, Z)) -> ACTIVATE(X)
SEL(s(X), cons(Y, Z)) -> SEL(activate(X), activate(Z))
INDX(cons(X, Y), Z) -> ACTIVATE(Y)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
FROM(X) -> ACTIVATE(X)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
SEL(0, cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(nsel(X1, X2)) -> SEL(activate(X1), activate(X2))
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(ndbls(X)) -> DBLS(activate(X))
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(X)) -> DBL(activate(X))
DBL(s(X)) -> ACTIVATE(X)


Rules:


dbl(0) -> 0
dbl(s(X)) -> s(ns(ndbl(activate(X))))
dbl(X) -> ndbl(X)
dbls(nil) -> nil
dbls(cons(X, Y)) -> cons(ndbl(activate(X)), ndbls(activate(Y)))
dbls(X) -> ndbls(X)
sel(0, cons(X, Y)) -> activate(X)
sel(s(X), cons(Y, Z)) -> sel(activate(X), activate(Z))
sel(X1, X2) -> nsel(X1, X2)
indx(nil, X) -> nil
indx(cons(X, Y), Z) -> cons(nsel(activate(X), activate(Z)), nindx(activate(Y), activate(Z)))
indx(X1, X2) -> nindx(X1, X2)
from(X) -> cons(activate(X), nfrom(ns(activate(X))))
from(X) -> nfrom(X)
dbl1(0) -> 01
dbl1(s(X)) -> s1(s1(dbl1(activate(X))))
sel1(0, cons(X, Y)) -> activate(X)
sel1(s(X), cons(Y, Z)) -> sel1(activate(X), activate(Z))
quote(0) -> 01
quote(s(X)) -> s1(quote(activate(X)))
quote(dbl(X)) -> dbl1(X)
quote(sel(X, Y)) -> sel1(X, Y)
s(X) -> ns(X)
activate(ns(X)) -> s(X)
activate(ndbl(X)) -> dbl(activate(X))
activate(ndbls(X)) -> dbls(activate(X))
activate(nsel(X1, X2)) -> sel(activate(X1), activate(X2))
activate(nindx(X1, X2)) -> indx(activate(X1), X2)
activate(nfrom(X)) -> from(X)
activate(X) -> X





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

SEL(s(X), cons(Y, Z)) -> SEL(activate(X), activate(Z))
14 new Dependency Pairs are created:

SEL(s(ns(X'')), cons(Y, Z)) -> SEL(s(X''), activate(Z))
SEL(s(ndbl(X'')), cons(Y, Z)) -> SEL(dbl(activate(X'')), activate(Z))
SEL(s(ndbls(X'')), cons(Y, Z)) -> SEL(dbls(activate(X'')), activate(Z))
SEL(s(nsel(X1', X2')), cons(Y, Z)) -> SEL(sel(activate(X1'), activate(X2')), activate(Z))
SEL(s(nindx(X1', X2')), cons(Y, Z)) -> SEL(indx(activate(X1'), X2'), activate(Z))
SEL(s(nfrom(X'')), cons(Y, Z)) -> SEL(from(X''), activate(Z))
SEL(s(X''), cons(Y, Z)) -> SEL(X'', activate(Z))
SEL(s(X), cons(Y, ns(X''))) -> SEL(activate(X), s(X''))
SEL(s(X), cons(Y, ndbl(X''))) -> SEL(activate(X), dbl(activate(X'')))
SEL(s(X), cons(Y, ndbls(X''))) -> SEL(activate(X), dbls(activate(X'')))
SEL(s(X), cons(Y, nsel(X1', X2'))) -> SEL(activate(X), sel(activate(X1'), activate(X2')))
SEL(s(X), cons(Y, nindx(X1', X2'))) -> SEL(activate(X), indx(activate(X1'), X2'))
SEL(s(X), cons(Y, nfrom(X''))) -> SEL(activate(X), from(X''))
SEL(s(X), cons(Y, Z')) -> SEL(activate(X), Z')

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 5
Narrowing Transformation
       →DP Problem 2
Remaining
       →DP Problem 3
Remaining
       →DP Problem 4
Remaining


Dependency Pairs:

SEL(s(X), cons(Y, Z')) -> SEL(activate(X), Z')
SEL(s(X), cons(Y, nfrom(X''))) -> SEL(activate(X), from(X''))
SEL(s(X), cons(Y, nindx(X1', X2'))) -> SEL(activate(X), indx(activate(X1'), X2'))
SEL(s(X), cons(Y, nsel(X1', X2'))) -> SEL(activate(X), sel(activate(X1'), activate(X2')))
SEL(s(X), cons(Y, ndbls(X''))) -> SEL(activate(X), dbls(activate(X'')))
SEL(s(X), cons(Y, ndbl(X''))) -> SEL(activate(X), dbl(activate(X'')))
SEL(s(X), cons(Y, ns(X''))) -> SEL(activate(X), s(X''))
SEL(s(X''), cons(Y, Z)) -> SEL(X'', activate(Z))
SEL(s(nfrom(X'')), cons(Y, Z)) -> SEL(from(X''), activate(Z))
SEL(s(nindx(X1', X2')), cons(Y, Z)) -> SEL(indx(activate(X1'), X2'), activate(Z))
SEL(s(nsel(X1', X2')), cons(Y, Z)) -> SEL(sel(activate(X1'), activate(X2')), activate(Z))
SEL(s(ndbls(X'')), cons(Y, Z)) -> SEL(dbls(activate(X'')), activate(Z))
SEL(s(ndbl(X'')), cons(Y, Z)) -> SEL(dbl(activate(X'')), activate(Z))
SEL(s(ns(X'')), cons(Y, Z)) -> SEL(s(X''), activate(Z))
SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z)
SEL(s(X), cons(Y, Z)) -> ACTIVATE(X)
INDX(cons(X, Y), Z) -> ACTIVATE(Y)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
FROM(X) -> ACTIVATE(X)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
SEL(0, cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(nsel(X1, X2)) -> SEL(activate(X1), activate(X2))
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(ndbls(X)) -> DBLS(activate(X))
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
DBL(s(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(X)) -> DBL(activate(X))
DBLS(cons(X, Y)) -> ACTIVATE(Y)


Rules:


dbl(0) -> 0
dbl(s(X)) -> s(ns(ndbl(activate(X))))
dbl(X) -> ndbl(X)
dbls(nil) -> nil
dbls(cons(X, Y)) -> cons(ndbl(activate(X)), ndbls(activate(Y)))
dbls(X) -> ndbls(X)
sel(0, cons(X, Y)) -> activate(X)
sel(s(X), cons(Y, Z)) -> sel(activate(X), activate(Z))
sel(X1, X2) -> nsel(X1, X2)
indx(nil, X) -> nil
indx(cons(X, Y), Z) -> cons(nsel(activate(X), activate(Z)), nindx(activate(Y), activate(Z)))
indx(X1, X2) -> nindx(X1, X2)
from(X) -> cons(activate(X), nfrom(ns(activate(X))))
from(X) -> nfrom(X)
dbl1(0) -> 01
dbl1(s(X)) -> s1(s1(dbl1(activate(X))))
sel1(0, cons(X, Y)) -> activate(X)
sel1(s(X), cons(Y, Z)) -> sel1(activate(X), activate(Z))
quote(0) -> 01
quote(s(X)) -> s1(quote(activate(X)))
quote(dbl(X)) -> dbl1(X)
quote(sel(X, Y)) -> sel1(X, Y)
s(X) -> ns(X)
activate(ns(X)) -> s(X)
activate(ndbl(X)) -> dbl(activate(X))
activate(ndbls(X)) -> dbls(activate(X))
activate(nsel(X1, X2)) -> sel(activate(X1), activate(X2))
activate(nindx(X1, X2)) -> indx(activate(X1), X2)
activate(nfrom(X)) -> from(X)
activate(X) -> X





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

ACTIVATE(ndbl(X)) -> DBL(activate(X))
seven new Dependency Pairs are created:

ACTIVATE(ndbl(ns(X''))) -> DBL(s(X''))
ACTIVATE(ndbl(ndbl(X''))) -> DBL(dbl(activate(X'')))
ACTIVATE(ndbl(ndbls(X''))) -> DBL(dbls(activate(X'')))
ACTIVATE(ndbl(nsel(X1', X2'))) -> DBL(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbl(nindx(X1', X2'))) -> DBL(indx(activate(X1'), X2'))
ACTIVATE(ndbl(nfrom(X''))) -> DBL(from(X''))
ACTIVATE(ndbl(X'')) -> DBL(X'')

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 5
Nar
             ...
               →DP Problem 6
Narrowing Transformation
       →DP Problem 2
Remaining
       →DP Problem 3
Remaining
       →DP Problem 4
Remaining


Dependency Pairs:

DBLS(cons(X, Y)) -> ACTIVATE(Y)
SEL(s(X), cons(Y, nfrom(X''))) -> SEL(activate(X), from(X''))
SEL(s(X), cons(Y, nindx(X1', X2'))) -> SEL(activate(X), indx(activate(X1'), X2'))
SEL(s(X), cons(Y, nsel(X1', X2'))) -> SEL(activate(X), sel(activate(X1'), activate(X2')))
SEL(s(X), cons(Y, ndbls(X''))) -> SEL(activate(X), dbls(activate(X'')))
SEL(s(X), cons(Y, ndbl(X''))) -> SEL(activate(X), dbl(activate(X'')))
SEL(s(X), cons(Y, ns(X''))) -> SEL(activate(X), s(X''))
SEL(s(X''), cons(Y, Z)) -> SEL(X'', activate(Z))
SEL(s(nfrom(X'')), cons(Y, Z)) -> SEL(from(X''), activate(Z))
SEL(s(nindx(X1', X2')), cons(Y, Z)) -> SEL(indx(activate(X1'), X2'), activate(Z))
SEL(s(nsel(X1', X2')), cons(Y, Z)) -> SEL(sel(activate(X1'), activate(X2')), activate(Z))
SEL(s(ndbls(X'')), cons(Y, Z)) -> SEL(dbls(activate(X'')), activate(Z))
SEL(s(ndbl(X'')), cons(Y, Z)) -> SEL(dbl(activate(X'')), activate(Z))
SEL(s(ns(X'')), cons(Y, Z)) -> SEL(s(X''), activate(Z))
SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z)
INDX(cons(X, Y), Z) -> ACTIVATE(Y)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
ACTIVATE(ndbl(X'')) -> DBL(X'')
ACTIVATE(ndbl(nfrom(X''))) -> DBL(from(X''))
ACTIVATE(ndbl(nindx(X1', X2'))) -> DBL(indx(activate(X1'), X2'))
ACTIVATE(ndbl(nsel(X1', X2'))) -> DBL(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbl(ndbls(X''))) -> DBL(dbls(activate(X'')))
ACTIVATE(ndbl(ndbl(X''))) -> DBL(dbl(activate(X'')))
DBL(s(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(ns(X''))) -> DBL(s(X''))
FROM(X) -> ACTIVATE(X)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
SEL(s(X), cons(Y, Z)) -> ACTIVATE(X)
ACTIVATE(nsel(X1, X2)) -> SEL(activate(X1), activate(X2))
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(ndbls(X)) -> DBLS(activate(X))
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
SEL(0, cons(X, Y)) -> ACTIVATE(X)
SEL(s(X), cons(Y, Z')) -> SEL(activate(X), Z')


Rules:


dbl(0) -> 0
dbl(s(X)) -> s(ns(ndbl(activate(X))))
dbl(X) -> ndbl(X)
dbls(nil) -> nil
dbls(cons(X, Y)) -> cons(ndbl(activate(X)), ndbls(activate(Y)))
dbls(X) -> ndbls(X)
sel(0, cons(X, Y)) -> activate(X)
sel(s(X), cons(Y, Z)) -> sel(activate(X), activate(Z))
sel(X1, X2) -> nsel(X1, X2)
indx(nil, X) -> nil
indx(cons(X, Y), Z) -> cons(nsel(activate(X), activate(Z)), nindx(activate(Y), activate(Z)))
indx(X1, X2) -> nindx(X1, X2)
from(X) -> cons(activate(X), nfrom(ns(activate(X))))
from(X) -> nfrom(X)
dbl1(0) -> 01
dbl1(s(X)) -> s1(s1(dbl1(activate(X))))
sel1(0, cons(X, Y)) -> activate(X)
sel1(s(X), cons(Y, Z)) -> sel1(activate(X), activate(Z))
quote(0) -> 01
quote(s(X)) -> s1(quote(activate(X)))
quote(dbl(X)) -> dbl1(X)
quote(sel(X, Y)) -> sel1(X, Y)
s(X) -> ns(X)
activate(ns(X)) -> s(X)
activate(ndbl(X)) -> dbl(activate(X))
activate(ndbls(X)) -> dbls(activate(X))
activate(nsel(X1, X2)) -> sel(activate(X1), activate(X2))
activate(nindx(X1, X2)) -> indx(activate(X1), X2)
activate(nfrom(X)) -> from(X)
activate(X) -> X





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

ACTIVATE(ndbls(X)) -> DBLS(activate(X))
seven new Dependency Pairs are created:

ACTIVATE(ndbls(ns(X''))) -> DBLS(s(X''))
ACTIVATE(ndbls(ndbl(X''))) -> DBLS(dbl(activate(X'')))
ACTIVATE(ndbls(ndbls(X''))) -> DBLS(dbls(activate(X'')))
ACTIVATE(ndbls(nsel(X1', X2'))) -> DBLS(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbls(nindx(X1', X2'))) -> DBLS(indx(activate(X1'), X2'))
ACTIVATE(ndbls(nfrom(X''))) -> DBLS(from(X''))
ACTIVATE(ndbls(X'')) -> DBLS(X'')

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 5
Nar
             ...
               →DP Problem 7
Narrowing Transformation
       →DP Problem 2
Remaining
       →DP Problem 3
Remaining
       →DP Problem 4
Remaining


Dependency Pairs:

SEL(s(X), cons(Y, Z')) -> SEL(activate(X), Z')
SEL(s(X), cons(Y, nfrom(X''))) -> SEL(activate(X), from(X''))
SEL(s(X), cons(Y, nindx(X1', X2'))) -> SEL(activate(X), indx(activate(X1'), X2'))
SEL(s(X), cons(Y, nsel(X1', X2'))) -> SEL(activate(X), sel(activate(X1'), activate(X2')))
SEL(s(X), cons(Y, ndbls(X''))) -> SEL(activate(X), dbls(activate(X'')))
SEL(s(X), cons(Y, ndbl(X''))) -> SEL(activate(X), dbl(activate(X'')))
SEL(s(X), cons(Y, ns(X''))) -> SEL(activate(X), s(X''))
SEL(s(X''), cons(Y, Z)) -> SEL(X'', activate(Z))
SEL(s(nfrom(X'')), cons(Y, Z)) -> SEL(from(X''), activate(Z))
SEL(s(nindx(X1', X2')), cons(Y, Z)) -> SEL(indx(activate(X1'), X2'), activate(Z))
SEL(s(nsel(X1', X2')), cons(Y, Z)) -> SEL(sel(activate(X1'), activate(X2')), activate(Z))
SEL(s(ndbls(X'')), cons(Y, Z)) -> SEL(dbls(activate(X'')), activate(Z))
SEL(s(ndbl(X'')), cons(Y, Z)) -> SEL(dbl(activate(X'')), activate(Z))
SEL(s(ns(X'')), cons(Y, Z)) -> SEL(s(X''), activate(Z))
SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z)
SEL(s(X), cons(Y, Z)) -> ACTIVATE(X)
INDX(cons(X, Y), Z) -> ACTIVATE(Y)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
ACTIVATE(ndbls(X'')) -> DBLS(X'')
ACTIVATE(ndbls(nfrom(X''))) -> DBLS(from(X''))
ACTIVATE(ndbls(nindx(X1', X2'))) -> DBLS(indx(activate(X1'), X2'))
ACTIVATE(ndbls(nsel(X1', X2'))) -> DBLS(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbls(ndbls(X''))) -> DBLS(dbls(activate(X'')))
ACTIVATE(ndbls(ndbl(X''))) -> DBLS(dbl(activate(X'')))
DBLS(cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(ndbls(ns(X''))) -> DBLS(s(X''))
ACTIVATE(ndbl(X'')) -> DBL(X'')
ACTIVATE(ndbl(nfrom(X''))) -> DBL(from(X''))
ACTIVATE(ndbl(nindx(X1', X2'))) -> DBL(indx(activate(X1'), X2'))
ACTIVATE(ndbl(nsel(X1', X2'))) -> DBL(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbl(ndbls(X''))) -> DBL(dbls(activate(X'')))
ACTIVATE(ndbl(ndbl(X''))) -> DBL(dbl(activate(X'')))
DBL(s(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(ns(X''))) -> DBL(s(X''))
FROM(X) -> ACTIVATE(X)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
SEL(0, cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(nsel(X1, X2)) -> SEL(activate(X1), activate(X2))
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> ACTIVATE(Y)


Rules:


dbl(0) -> 0
dbl(s(X)) -> s(ns(ndbl(activate(X))))
dbl(X) -> ndbl(X)
dbls(nil) -> nil
dbls(cons(X, Y)) -> cons(ndbl(activate(X)), ndbls(activate(Y)))
dbls(X) -> ndbls(X)
sel(0, cons(X, Y)) -> activate(X)
sel(s(X), cons(Y, Z)) -> sel(activate(X), activate(Z))
sel(X1, X2) -> nsel(X1, X2)
indx(nil, X) -> nil
indx(cons(X, Y), Z) -> cons(nsel(activate(X), activate(Z)), nindx(activate(Y), activate(Z)))
indx(X1, X2) -> nindx(X1, X2)
from(X) -> cons(activate(X), nfrom(ns(activate(X))))
from(X) -> nfrom(X)
dbl1(0) -> 01
dbl1(s(X)) -> s1(s1(dbl1(activate(X))))
sel1(0, cons(X, Y)) -> activate(X)
sel1(s(X), cons(Y, Z)) -> sel1(activate(X), activate(Z))
quote(0) -> 01
quote(s(X)) -> s1(quote(activate(X)))
quote(dbl(X)) -> dbl1(X)
quote(sel(X, Y)) -> sel1(X, Y)
s(X) -> ns(X)
activate(ns(X)) -> s(X)
activate(ndbl(X)) -> dbl(activate(X))
activate(ndbls(X)) -> dbls(activate(X))
activate(nsel(X1, X2)) -> sel(activate(X1), activate(X2))
activate(nindx(X1, X2)) -> indx(activate(X1), X2)
activate(nfrom(X)) -> from(X)
activate(X) -> X





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

ACTIVATE(nsel(X1, X2)) -> SEL(activate(X1), activate(X2))
14 new Dependency Pairs are created:

ACTIVATE(nsel(ns(X'), X2)) -> SEL(s(X'), activate(X2))
ACTIVATE(nsel(ndbl(X'), X2)) -> SEL(dbl(activate(X')), activate(X2))
ACTIVATE(nsel(ndbls(X'), X2)) -> SEL(dbls(activate(X')), activate(X2))
ACTIVATE(nsel(nsel(X1'', X2''), X2)) -> SEL(sel(activate(X1''), activate(X2'')), activate(X2))
ACTIVATE(nsel(nindx(X1'', X2''), X2)) -> SEL(indx(activate(X1''), X2''), activate(X2))
ACTIVATE(nsel(nfrom(X'), X2)) -> SEL(from(X'), activate(X2))
ACTIVATE(nsel(X1', X2)) -> SEL(X1', activate(X2))
ACTIVATE(nsel(X1, ns(X'))) -> SEL(activate(X1), s(X'))
ACTIVATE(nsel(X1, ndbl(X'))) -> SEL(activate(X1), dbl(activate(X')))
ACTIVATE(nsel(X1, ndbls(X'))) -> SEL(activate(X1), dbls(activate(X')))
ACTIVATE(nsel(X1, nsel(X1'', X2''))) -> SEL(activate(X1), sel(activate(X1''), activate(X2'')))
ACTIVATE(nsel(X1, nindx(X1'', X2''))) -> SEL(activate(X1), indx(activate(X1''), X2''))
ACTIVATE(nsel(X1, nfrom(X'))) -> SEL(activate(X1), from(X'))
ACTIVATE(nsel(X1, X2')) -> SEL(activate(X1), X2')

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 5
Nar
             ...
               →DP Problem 8
Narrowing Transformation
       →DP Problem 2
Remaining
       →DP Problem 3
Remaining
       →DP Problem 4
Remaining


Dependency Pairs:

INDX(cons(X, Y), Z) -> ACTIVATE(Y)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
ACTIVATE(nsel(X1, X2')) -> SEL(activate(X1), X2')
ACTIVATE(nsel(X1, nfrom(X'))) -> SEL(activate(X1), from(X'))
ACTIVATE(nsel(X1, nindx(X1'', X2''))) -> SEL(activate(X1), indx(activate(X1''), X2''))
ACTIVATE(nsel(X1, nsel(X1'', X2''))) -> SEL(activate(X1), sel(activate(X1''), activate(X2'')))
ACTIVATE(nsel(X1, ndbls(X'))) -> SEL(activate(X1), dbls(activate(X')))
ACTIVATE(nsel(X1, ndbl(X'))) -> SEL(activate(X1), dbl(activate(X')))
ACTIVATE(nsel(X1, ns(X'))) -> SEL(activate(X1), s(X'))
ACTIVATE(nsel(X1', X2)) -> SEL(X1', activate(X2))
ACTIVATE(nsel(nfrom(X'), X2)) -> SEL(from(X'), activate(X2))
ACTIVATE(nsel(nindx(X1'', X2''), X2)) -> SEL(indx(activate(X1''), X2''), activate(X2))
ACTIVATE(nsel(nsel(X1'', X2''), X2)) -> SEL(sel(activate(X1''), activate(X2'')), activate(X2))
SEL(s(X), cons(Y, nfrom(X''))) -> SEL(activate(X), from(X''))
SEL(s(X), cons(Y, nindx(X1', X2'))) -> SEL(activate(X), indx(activate(X1'), X2'))
SEL(s(X), cons(Y, nsel(X1', X2'))) -> SEL(activate(X), sel(activate(X1'), activate(X2')))
SEL(s(X), cons(Y, ndbls(X''))) -> SEL(activate(X), dbls(activate(X'')))
SEL(s(X), cons(Y, ndbl(X''))) -> SEL(activate(X), dbl(activate(X'')))
SEL(s(X), cons(Y, ns(X''))) -> SEL(activate(X), s(X''))
SEL(s(X''), cons(Y, Z)) -> SEL(X'', activate(Z))
SEL(s(nfrom(X'')), cons(Y, Z)) -> SEL(from(X''), activate(Z))
SEL(s(nindx(X1', X2')), cons(Y, Z)) -> SEL(indx(activate(X1'), X2'), activate(Z))
SEL(s(nsel(X1', X2')), cons(Y, Z)) -> SEL(sel(activate(X1'), activate(X2')), activate(Z))
SEL(s(ndbls(X'')), cons(Y, Z)) -> SEL(dbls(activate(X'')), activate(Z))
SEL(s(ndbl(X'')), cons(Y, Z)) -> SEL(dbl(activate(X'')), activate(Z))
SEL(s(ns(X'')), cons(Y, Z)) -> SEL(s(X''), activate(Z))
ACTIVATE(nsel(ndbls(X'), X2)) -> SEL(dbls(activate(X')), activate(X2))
SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z)
ACTIVATE(nsel(ndbl(X'), X2)) -> SEL(dbl(activate(X')), activate(X2))
SEL(s(X), cons(Y, Z)) -> ACTIVATE(X)
ACTIVATE(nsel(ns(X'), X2)) -> SEL(s(X'), activate(X2))
ACTIVATE(ndbls(X'')) -> DBLS(X'')
ACTIVATE(ndbls(nfrom(X''))) -> DBLS(from(X''))
ACTIVATE(ndbls(nindx(X1', X2'))) -> DBLS(indx(activate(X1'), X2'))
ACTIVATE(ndbls(nsel(X1', X2'))) -> DBLS(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbls(ndbls(X''))) -> DBLS(dbls(activate(X'')))
DBLS(cons(X, Y)) -> ACTIVATE(Y)
ACTIVATE(ndbls(ndbl(X''))) -> DBLS(dbl(activate(X'')))
DBLS(cons(X, Y)) -> ACTIVATE(X)
ACTIVATE(ndbls(ns(X''))) -> DBLS(s(X''))
ACTIVATE(ndbl(X'')) -> DBL(X'')
ACTIVATE(ndbl(nfrom(X''))) -> DBL(from(X''))
ACTIVATE(ndbl(nindx(X1', X2'))) -> DBL(indx(activate(X1'), X2'))
ACTIVATE(ndbl(nsel(X1', X2'))) -> DBL(sel(activate(X1'), activate(X2')))
ACTIVATE(ndbl(ndbls(X''))) -> DBL(dbls(activate(X'')))
ACTIVATE(ndbl(ndbl(X''))) -> DBL(dbl(activate(X'')))
DBL(s(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(ns(X''))) -> DBL(s(X''))
FROM(X) -> ACTIVATE(X)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
SEL(0, cons(X, Y)) -> ACTIVATE(X)
SEL(s(X), cons(Y, Z')) -> SEL(activate(X), Z')


Rules:


dbl(0) -> 0
dbl(s(X)) -> s(ns(ndbl(activate(X))))
dbl(X) -> ndbl(X)
dbls(nil) -> nil
dbls(cons(X, Y)) -> cons(ndbl(activate(X)), ndbls(activate(Y)))
dbls(X) -> ndbls(X)
sel(0, cons(X, Y)) -> activate(X)
sel(s(X), cons(Y, Z)) -> sel(activate(X), activate(Z))
sel(X1, X2) -> nsel(X1, X2)
indx(nil, X) -> nil
indx(cons(X, Y), Z) -> cons(nsel(activate(X), activate(Z)), nindx(activate(Y), activate(Z)))
indx(X1, X2) -> nindx(X1, X2)
from(X) -> cons(activate(X), nfrom(ns(activate(X))))
from(X) -> nfrom(X)
dbl1(0) -> 01
dbl1(s(X)) -> s1(s1(dbl1(activate(X))))
sel1(0, cons(X, Y)) -> activate(X)
sel1(s(X), cons(Y, Z)) -> sel1(activate(X), activate(Z))
quote(0) -> 01
quote(s(X)) -> s1(quote(activate(X)))
quote(dbl(X)) -> dbl1(X)
quote(sel(X, Y)) -> sel1(X, Y)
s(X) -> ns(X)
activate(ns(X)) -> s(X)
activate(ndbl(X)) -> dbl(activate(X))
activate(ndbls(X)) -> dbls(activate(X))
activate(nsel(X1, X2)) -> sel(activate(X1), activate(X2))
activate(nindx(X1, X2)) -> indx(activate(X1), X2)
activate(nfrom(X)) -> from(X)
activate(X) -> X





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

ACTIVATE(nindx(X1, X2)) -> INDX(activate(X1), X2)
seven new Dependency Pairs are created:

ACTIVATE(nindx(ns(X'), X2)) -> INDX(s(X'), X2)
ACTIVATE(nindx(ndbl(X'), X2)) -> INDX(dbl(activate(X')), X2)
ACTIVATE(nindx(ndbls(X'), X2)) -> INDX(dbls(activate(X')), X2)
ACTIVATE(nindx(nsel(X1'', X2''), X2)) -> INDX(sel(activate(X1''), activate(X2'')), X2)
ACTIVATE(nindx(nindx(X1'', X2''), X2)) -> INDX(indx(activate(X1''), X2''), X2)
ACTIVATE(nindx(nfrom(X'), X2)) -> INDX(from(X'), X2)
ACTIVATE(nindx(X1', X2)) -> INDX(X1', X2)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
       →DP Problem 2
Remaining Obligation(s)
       →DP Problem 3
Remaining Obligation(s)
       →DP Problem 4
Remaining Obligation(s)




The following remains to be proven:


   R
DPs
       →DP Problem 1
Nar
       →DP Problem 2
Remaining Obligation(s)
       →DP Problem 3
Remaining Obligation(s)
       →DP Problem 4
Remaining Obligation(s)




The following remains to be proven:


   R
DPs
       →DP Problem 1
Nar
       →DP Problem 2
Remaining Obligation(s)
       →DP Problem 3
Remaining Obligation(s)
       →DP Problem 4
Remaining Obligation(s)




The following remains to be proven:


   R
DPs
       →DP Problem 1
Nar
       →DP Problem 2
Remaining Obligation(s)
       →DP Problem 3
Remaining Obligation(s)
       →DP Problem 4
Remaining Obligation(s)




The following remains to be proven:

Termination of R could not be shown.
Duration:
0:33 minutes