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)
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

Innermost 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)
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 one SCC.


   R
DPs
       →DP Problem 1
Narrowing Transformation


Dependency Pairs:

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(Y)
ACTIVATE(ndbls(X)) -> DBLS(activate(X))
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
DBLS(cons(X, Y)) -> 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)
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


Strategy:

innermost




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 2
Narrowing Transformation


Dependency Pairs:

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'')))
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''))
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)
INDX(cons(X, Y), Z) -> 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)
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


Strategy:

innermost




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 2
Nar
             ...
               →DP Problem 3
Narrowing Transformation


Dependency Pairs:

INDX(cons(X, Y), Z) -> ACTIVATE(Y)
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))
ACTIVATE(nsel(ndbls(X'), X2)) -> SEL(dbls(activate(X')), activate(X2))
ACTIVATE(nsel(ndbl(X'), X2)) -> SEL(dbl(activate(X')), activate(X2))
SEL(0, cons(X, Y)) -> 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''))
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)
INDX(cons(X, Y), Z) -> ACTIVATE(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)
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


Strategy:

innermost




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
Nar
             ...
               →DP Problem 4
Remaining Obligation(s)




The following remains to be proven:
Dependency Pairs:

ACTIVATE(nindx(X1', X2)) -> INDX(X1', X2)
ACTIVATE(nindx(nfrom(X'), X2)) -> INDX(from(X'), X2)
ACTIVATE(nindx(nindx(X1'', X2''), X2)) -> INDX(indx(activate(X1''), X2''), X2)
ACTIVATE(nindx(nsel(X1'', X2''), X2)) -> INDX(sel(activate(X1''), activate(X2'')), X2)
ACTIVATE(nindx(ndbls(X'), X2)) -> INDX(dbls(activate(X')), X2)
INDX(cons(X, Y), Z) -> ACTIVATE(Z)
ACTIVATE(nindx(ndbl(X'), X2)) -> INDX(dbl(activate(X')), X2)
INDX(cons(X, Y), Z) -> ACTIVATE(X)
ACTIVATE(nindx(ns(X'), X2)) -> INDX(s(X'), X2)
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))
ACTIVATE(nsel(ndbls(X'), X2)) -> SEL(dbls(activate(X')), activate(X2))
ACTIVATE(nsel(ndbl(X'), X2)) -> SEL(dbl(activate(X')), activate(X2))
SEL(0, cons(X, Y)) -> 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''))
FROM(X) -> ACTIVATE(X)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nindx(X1, X2)) -> ACTIVATE(X1)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X2)
ACTIVATE(nsel(X1, X2)) -> ACTIVATE(X1)
ACTIVATE(ndbls(X)) -> ACTIVATE(X)
ACTIVATE(ndbl(X)) -> ACTIVATE(X)
INDX(cons(X, Y), Z) -> 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)
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


Strategy:

innermost



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