YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (33ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (410ms).
 |    | – Problem 3 was processed with processor DependencyGraph (2ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (24ms).
 |    |    |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (77ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__first(X1, X2))first#(activate(X1), activate(X2))activate#(n__first(X1, X2))activate#(X1)
first#(s(X), cons(Y, Z))activate#(Z)activate#(n__from(X))from#(activate(X))
activate#(n__s(X))activate#(X)activate#(n__from(X))activate#(X)
activate#(n__s(X))s#(activate(X))activate#(n__first(X1, X2))activate#(X2)

Rewrite Rules

first(0, X)nilfirst(s(X), cons(Y, Z))cons(Y, n__first(X, activate(Z)))
from(X)cons(X, n__from(n__s(X)))first(X1, X2)n__first(X1, X2)
from(X)n__from(X)s(X)n__s(X)
activate(n__first(X1, X2))first(activate(X1), activate(X2))activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: activate, n__s, 0, s, n__from, n__first, from, first, nil, cons

Strategy


The following SCCs where found

activate#(n__first(X1, X2)) → first#(activate(X1), activate(X2))activate#(n__first(X1, X2)) → activate#(X1)
first#(s(X), cons(Y, Z)) → activate#(Z)activate#(n__s(X)) → activate#(X)
activate#(n__from(X)) → activate#(X)activate#(n__first(X1, X2)) → activate#(X2)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__first(X1, X2))first#(activate(X1), activate(X2))activate#(n__first(X1, X2))activate#(X1)
first#(s(X), cons(Y, Z))activate#(Z)activate#(n__s(X))activate#(X)
activate#(n__from(X))activate#(X)activate#(n__first(X1, X2))activate#(X2)

Rewrite Rules

first(0, X)nilfirst(s(X), cons(Y, Z))cons(Y, n__first(X, activate(Z)))
from(X)cons(X, n__from(n__s(X)))first(X1, X2)n__first(X1, X2)
from(X)n__from(X)s(X)n__s(X)
activate(n__first(X1, X2))first(activate(X1), activate(X2))activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: activate, n__s, 0, s, n__from, n__first, from, first, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

first(X1, X2)n__first(X1, X2)from(X)cons(X, n__from(n__s(X)))
s(X)n__s(X)activate(X)X
from(X)n__from(X)activate(n__from(X))from(activate(X))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(Y, n__first(X, activate(Z)))
activate(n__first(X1, X2))first(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:

activate#(n__first(X1, X2))activate#(X1)first#(s(X), cons(Y, Z))activate#(Z)
activate#(n__first(X1, X2))activate#(X2)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__first(X1, X2))first#(activate(X1), activate(X2))activate#(n__s(X))activate#(X)
activate#(n__from(X))activate#(X)

Rewrite Rules

first(0, X)nilfirst(s(X), cons(Y, Z))cons(Y, n__first(X, activate(Z)))
from(X)cons(X, n__from(n__s(X)))first(X1, X2)n__first(X1, X2)
from(X)n__from(X)s(X)n__s(X)
activate(n__first(X1, X2))first(activate(X1), activate(X2))activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__s, activate, 0, n__from, s, n__first, from, first, cons, nil

Strategy


The following SCCs where found

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

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

first(0, X)nilfirst(s(X), cons(Y, Z))cons(Y, n__first(X, activate(Z)))
from(X)cons(X, n__from(n__s(X)))first(X1, X2)n__first(X1, X2)
from(X)n__from(X)s(X)n__s(X)
activate(n__first(X1, X2))first(activate(X1), activate(X2))activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__s, activate, 0, n__from, s, n__first, from, first, 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

first(0, X)nilfirst(s(X), cons(Y, Z))cons(Y, n__first(X, activate(Z)))
from(X)cons(X, n__from(n__s(X)))first(X1, X2)n__first(X1, X2)
from(X)n__from(X)s(X)n__s(X)
activate(n__first(X1, X2))first(activate(X1), activate(X2))activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: activate, n__s, 0, s, n__from, n__first, from, first, nil, cons

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)