YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (115ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (222ms).
 |    | – Problem 3 was processed with processor DependencyGraph (13ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (81ms).
 |    |    |    | – Problem 5 was processed with processor DependencyGraph (3ms).
 |    |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (68ms).
 |    |    |    |    |    | – Problem 7 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

add#(s(X), Y)activate#(X)add#(s(X), Y)activate#(Y)
activate#(n__from(X))from#(X)activate#(n__s(X))s#(X)
add#(s(X), Y)s#(n__add(activate(X), activate(Y)))first#(s(X), cons(Y, Z))activate#(X)
activate#(n__add(X1, X2))add#(X1, X2)from#(X)activate#(X)
first#(s(X), cons(Y, Z))activate#(Z)if#(true, X, Y)activate#(X)
if#(false, X, Y)activate#(Y)and#(true, X)activate#(X)
first#(s(X), cons(Y, Z))activate#(Y)add#(0, X)activate#(X)
activate#(n__first(X1, X2))first#(X1, X2)

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, first, cons, nil

Strategy


The following SCCs where found

activate#(n__add(X1, X2)) → add#(X1, X2)from#(X) → activate#(X)
first#(s(X), cons(Y, Z)) → activate#(Z)add#(s(X), Y) → activate#(X)
add#(s(X), Y) → activate#(Y)first#(s(X), cons(Y, Z)) → activate#(Y)
add#(0, X) → activate#(X)activate#(n__from(X)) → from#(X)
activate#(n__first(X1, X2)) → first#(X1, X2)first#(s(X), cons(Y, Z)) → activate#(X)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, 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:

first#(s(X), cons(Y, Z))activate#(Z)first#(s(X), cons(Y, Z))activate#(Y)
first#(s(X), cons(Y, Z))activate#(X)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2))add#(X1, X2)from#(X)activate#(X)
add#(s(X), Y)activate#(X)add#(s(X), Y)activate#(Y)
add#(0, X)activate#(X)activate#(n__from(X))from#(X)
activate#(n__first(X1, X2))first#(X1, X2)

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, first, nil, cons

Strategy


The following SCCs where found

activate#(n__add(X1, X2)) → add#(X1, X2)from#(X) → activate#(X)
add#(s(X), Y) → activate#(X)add#(s(X), Y) → activate#(Y)
add#(0, X) → activate#(X)activate#(n__from(X)) → from#(X)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2))add#(X1, X2)from#(X)activate#(X)
add#(s(X), Y)activate#(X)add#(s(X), Y)activate#(Y)
add#(0, X)activate#(X)activate#(n__from(X))from#(X)

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, 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:

from#(X)activate#(X)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2))add#(X1, X2)add#(s(X), Y)activate#(X)
add#(s(X), Y)activate#(Y)add#(0, X)activate#(X)
activate#(n__from(X))from#(X)

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, first, cons, nil

Strategy


The following SCCs where found

activate#(n__add(X1, X2)) → add#(X1, X2)add#(s(X), Y) → activate#(X)
add#(s(X), Y) → activate#(Y)add#(0, X) → activate#(X)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2))add#(X1, X2)add#(s(X), Y)activate#(X)
add#(s(X), Y)activate#(Y)add#(0, X)activate#(X)

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, 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__add(X1, X2))add#(X1, X2)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

add#(s(X), Y)activate#(X)add#(s(X), Y)activate#(Y)
add#(0, X)activate#(X)

Rewrite Rules

and(true, X)activate(X)and(false, Y)false
if(true, X, Y)activate(X)if(false, X, Y)activate(Y)
add(0, X)activate(X)add(s(X), Y)s(n__add(activate(X), activate(Y)))
first(0, X)nilfirst(s(X), cons(Y, Z))cons(activate(Y), n__first(activate(X), activate(Z)))
from(X)cons(activate(X), n__from(n__s(activate(X))))add(X1, X2)n__add(X1, X2)
first(X1, X2)n__first(X1, X2)from(X)n__from(X)
s(X)n__s(X)activate(n__add(X1, X2))add(X1, X2)
activate(n__first(X1, X2))first(X1, X2)activate(n__from(X))from(X)
activate(n__s(X))s(X)activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__from, true, from, add, and, n__s, activate, 0, s, n__first, if, n__add, false, first, nil, cons

Strategy


There are no SCCs!