YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (38ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (226ms).
 |    | – Problem 3 was processed with processor DependencyGraph (20ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (19ms).
 |    |    |    | – Problem 5 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2)) → add#(X1, X2)activate#(n__len(X)) → len#(X)
add#(s(X), Y) → activate#(X)len#(cons(X, Z)) → activate#(Z)
activate#(n__fst(X1, X2)) → fst#(X1, X2)activate#(n__from(X)) → from#(X)
fst#(s(X), cons(Y, Z)) → activate#(X)fst#(s(X), cons(Y, Z)) → activate#(Z)

Rewrite Rules

fst(0, Z) → nilfst(s(X), cons(Y, Z)) → cons(Y, n__fst(activate(X), activate(Z)))
from(X) → cons(X, n__from(s(X)))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))len(nil) → 0
len(cons(X, Z)) → s(n__len(activate(Z)))fst(X1, X2) → n__fst(X1, X2)
from(X) → n__from(X)add(X1, X2) → n__add(X1, X2)
len(X) → n__len(X)activate(n__fst(X1, X2)) → fst(X1, X2)
activate(n__from(X)) → from(X)activate(n__add(X1, X2)) → add(X1, X2)
activate(n__len(X)) → len(X)activate(X) → X

Original Signature

Termination of terms over the following signature is verified: n__from, from, len, add, n__len, n__fst, fst, activate, 0, s, n__add, nil, cons

Strategy


The following SCCs where found

activate#(n__add(X1, X2)) → add#(X1, X2)activate#(n__len(X)) → len#(X)
add#(s(X), Y) → activate#(X)len#(cons(X, Z)) → activate#(Z)
activate#(n__fst(X1, X2)) → fst#(X1, X2)fst#(s(X), cons(Y, Z)) → activate#(X)
fst#(s(X), cons(Y, Z)) → activate#(Z)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2)) → add#(X1, X2)activate#(n__len(X)) → len#(X)
add#(s(X), Y) → activate#(X)len#(cons(X, Z)) → activate#(Z)
activate#(n__fst(X1, X2)) → fst#(X1, X2)fst#(s(X), cons(Y, Z)) → activate#(X)
fst#(s(X), cons(Y, Z)) → activate#(Z)

Rewrite Rules

fst(0, Z) → nilfst(s(X), cons(Y, Z)) → cons(Y, n__fst(activate(X), activate(Z)))
from(X) → cons(X, n__from(s(X)))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))len(nil) → 0
len(cons(X, Z)) → s(n__len(activate(Z)))fst(X1, X2) → n__fst(X1, X2)
from(X) → n__from(X)add(X1, X2) → n__add(X1, X2)
len(X) → n__len(X)activate(n__fst(X1, X2)) → fst(X1, X2)
activate(n__from(X)) → from(X)activate(n__add(X1, X2)) → add(X1, X2)
activate(n__len(X)) → len(X)activate(X) → X

Original Signature

Termination of terms over the following signature is verified: n__from, from, len, add, n__len, n__fst, fst, activate, 0, s, n__add, 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__len(X)) → len#(X)len#(cons(X, Z)) → activate#(Z)
activate#(n__fst(X1, X2)) → fst#(X1, X2)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__add(X1, X2)) → add#(X1, X2)add#(s(X), Y) → activate#(X)
fst#(s(X), cons(Y, Z)) → activate#(Z)fst#(s(X), cons(Y, Z)) → activate#(X)

Rewrite Rules

fst(0, Z) → nilfst(s(X), cons(Y, Z)) → cons(Y, n__fst(activate(X), activate(Z)))
from(X) → cons(X, n__from(s(X)))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))len(nil) → 0
len(cons(X, Z)) → s(n__len(activate(Z)))fst(X1, X2) → n__fst(X1, X2)
from(X) → n__from(X)add(X1, X2) → n__add(X1, X2)
len(X) → n__len(X)activate(n__fst(X1, X2)) → fst(X1, X2)
activate(n__from(X)) → from(X)activate(n__add(X1, X2)) → add(X1, X2)
activate(n__len(X)) → len(X)activate(X) → X

Original Signature

Termination of terms over the following signature is verified: n__from, from, len, add, n__len, n__fst, fst, activate, 0, s, n__add, nil, cons

Strategy


The following SCCs where found

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

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

fst(0, Z) → nilfst(s(X), cons(Y, Z)) → cons(Y, n__fst(activate(X), activate(Z)))
from(X) → cons(X, n__from(s(X)))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))len(nil) → 0
len(cons(X, Z)) → s(n__len(activate(Z)))fst(X1, X2) → n__fst(X1, X2)
from(X) → n__from(X)add(X1, X2) → n__add(X1, X2)
len(X) → n__len(X)activate(n__fst(X1, X2)) → fst(X1, X2)
activate(n__from(X)) → from(X)activate(n__add(X1, X2)) → add(X1, X2)
activate(n__len(X)) → len(X)activate(X) → X

Original Signature

Termination of terms over the following signature is verified: n__from, from, len, add, n__len, n__fst, fst, activate, 0, s, n__add, 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__add(X1, X2)) → add#(X1, X2)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

fst(0, Z) → nilfst(s(X), cons(Y, Z)) → cons(Y, n__fst(activate(X), activate(Z)))
from(X) → cons(X, n__from(s(X)))add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))len(nil) → 0
len(cons(X, Z)) → s(n__len(activate(Z)))fst(X1, X2) → n__fst(X1, X2)
from(X) → n__from(X)add(X1, X2) → n__add(X1, X2)
len(X) → n__len(X)activate(n__fst(X1, X2)) → fst(X1, X2)
activate(n__from(X)) → from(X)activate(n__add(X1, X2)) → add(X1, X2)
activate(n__len(X)) → len(X)activate(X) → X

Original Signature

Termination of terms over the following signature is verified: n__from, from, len, add, n__len, n__fst, fst, activate, 0, s, n__add, nil, cons

Strategy


There are no SCCs!