YES
The TRS could be proven terminating. The proof took 54 ms.
Problem 1 was processed with processor DependencyGraph (5ms). | Problem 2 was processed with processor SubtermCriterion (1ms).
first#(s(X), cons(Y, Z)) | → | activate#(Z) | activate#(n__from(X)) | → | from#(X) | |
activate#(n__first(X1, X2)) | → | first#(X1, X2) |
first(0, X) | → | nil | first(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 |
Termination of terms over the following signature is verified: activate, 0, s, n__from, n__first, from, first, nil, cons
first#(s(X), cons(Y, Z)) → activate#(Z) | activate#(n__first(X1, X2)) → first#(X1, X2) |
first#(s(X), cons(Y, Z)) | → | activate#(Z) | activate#(n__first(X1, X2)) | → | first#(X1, X2) |
first(0, X) | → | nil | first(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 |
Termination of terms over the following signature is verified: activate, 0, s, n__from, n__first, from, first, nil, cons
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) |