YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (5ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Original Signature

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

Strategy


The following SCCs where found

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

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Original Signature

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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