YES

The TRS could be proven terminating. The proof took 748 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (76ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (403ms).
 |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (55ms).
 |    |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (22ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

take#(s(N), cons(X, XS))activate#(XS)2nd#(cons(X, XS))head#(activate(XS))
2nd#(cons(X, XS))activate#(XS)activate#(n__take(X1, X2))activate#(X1)
activate#(n__from(X))from#(activate(X))activate#(n__s(X))activate#(X)
activate#(n__from(X))activate#(X)activate#(n__take(X1, X2))activate#(X2)
sel#(s(N), cons(X, XS))sel#(N, activate(XS))activate#(n__s(X))s#(activate(X))
activate#(n__take(X1, X2))take#(activate(X1), activate(X2))sel#(s(N), cons(X, XS))activate#(XS)

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))head(cons(X, XS))X
2nd(cons(X, XS))head(activate(XS))take(0, XS)nil
take(s(N), cons(X, XS))cons(X, n__take(N, activate(XS)))sel(0, cons(X, XS))X
sel(s(N), cons(X, XS))sel(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)take(X1, X2)n__take(X1, X2)
activate(n__from(X))from(activate(X))activate(n__s(X))s(activate(X))
activate(n__take(X1, X2))take(activate(X1), activate(X2))activate(X)X

Original Signature

Termination of terms over the following signature is verified: 2nd, n__from, from, n__take, n__s, activate, 0, s, take, head, sel, cons, nil

Strategy


The following SCCs where found

take#(s(N), cons(X, XS)) → activate#(XS)activate#(n__take(X1, X2)) → activate#(X1)
activate#(n__s(X)) → activate#(X)activate#(n__from(X)) → activate#(X)
activate#(n__take(X1, X2)) → activate#(X2)activate#(n__take(X1, X2)) → take#(activate(X1), activate(X2))

sel#(s(N), cons(X, XS)) → sel#(N, activate(XS))

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

take#(s(N), cons(X, XS))activate#(XS)activate#(n__take(X1, X2))activate#(X1)
activate#(n__s(X))activate#(X)activate#(n__from(X))activate#(X)
activate#(n__take(X1, X2))activate#(X2)activate#(n__take(X1, X2))take#(activate(X1), activate(X2))

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))head(cons(X, XS))X
2nd(cons(X, XS))head(activate(XS))take(0, XS)nil
take(s(N), cons(X, XS))cons(X, n__take(N, activate(XS)))sel(0, cons(X, XS))X
sel(s(N), cons(X, XS))sel(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)take(X1, X2)n__take(X1, X2)
activate(n__from(X))from(activate(X))activate(n__s(X))s(activate(X))
activate(n__take(X1, X2))take(activate(X1), activate(X2))activate(X)X

Original Signature

Termination of terms over the following signature is verified: 2nd, n__from, from, n__take, n__s, activate, 0, s, take, head, sel, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

take(0, XS)niltake(X1, X2)n__take(X1, X2)
from(X)cons(X, n__from(n__s(X)))s(X)n__s(X)
activate(X)Xfrom(X)n__from(X)
activate(n__from(X))from(activate(X))take(s(N), cons(X, XS))cons(X, n__take(N, activate(XS)))
activate(n__take(X1, X2))take(activate(X1), activate(X2))activate(n__s(X))s(activate(X))

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

take#(s(N), cons(X, XS))activate#(XS)activate#(n__take(X1, X2))activate#(X1)
activate#(n__take(X1, X2))activate#(X2)activate#(n__take(X1, X2))take#(activate(X1), activate(X2))

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__s(X))activate#(X)activate#(n__from(X))activate#(X)

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))head(cons(X, XS))X
2nd(cons(X, XS))head(activate(XS))take(0, XS)nil
take(s(N), cons(X, XS))cons(X, n__take(N, activate(XS)))sel(0, cons(X, XS))X
sel(s(N), cons(X, XS))sel(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)take(X1, X2)n__take(X1, X2)
activate(n__from(X))from(activate(X))activate(n__s(X))s(activate(X))
activate(n__take(X1, X2))take(activate(X1), activate(X2))activate(X)X

Original Signature

Termination of terms over the following signature is verified: 2nd, n__from, from, n__take, n__s, activate, 0, s, take, head, sel, cons, nil

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

activate#(n__from(X))activate#(X)

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__s(X))activate#(X)

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))head(cons(X, XS))X
2nd(cons(X, XS))head(activate(XS))take(0, XS)nil
take(s(N), cons(X, XS))cons(X, n__take(N, activate(XS)))sel(0, cons(X, XS))X
sel(s(N), cons(X, XS))sel(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)take(X1, X2)n__take(X1, X2)
activate(n__from(X))from(activate(X))activate(n__s(X))s(activate(X))
activate(n__take(X1, X2))take(activate(X1), activate(X2))activate(X)X

Original Signature

Termination of terms over the following signature is verified: 2nd, n__from, from, n__take, n__s, activate, 0, s, take, head, sel, cons, nil

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

activate#(n__s(X))activate#(X)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

sel#(s(N), cons(X, XS))sel#(N, activate(XS))

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))head(cons(X, XS))X
2nd(cons(X, XS))head(activate(XS))take(0, XS)nil
take(s(N), cons(X, XS))cons(X, n__take(N, activate(XS)))sel(0, cons(X, XS))X
sel(s(N), cons(X, XS))sel(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)take(X1, X2)n__take(X1, X2)
activate(n__from(X))from(activate(X))activate(n__s(X))s(activate(X))
activate(n__take(X1, X2))take(activate(X1), activate(X2))activate(X)X

Original Signature

Termination of terms over the following signature is verified: 2nd, n__from, from, n__take, n__s, activate, 0, s, take, head, sel, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

sel#(s(N), cons(X, XS))sel#(N, activate(XS))