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!