YES

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

The following DP Processors were used


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

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

after#(s(N), cons(X, XS))after#(N, activate(XS))activate#(n__from(X))from#(activate(X))
activate#(n__s(X))activate#(X)after#(s(N), cons(X, XS))activate#(XS)
activate#(n__from(X))activate#(X)activate#(n__s(X))s#(activate(X))

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))after(0, XS)XS
after(s(N), cons(X, XS))after(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__s, after, activate, 0, n__from, s, from, cons

Strategy


The following SCCs where found

after#(s(N), cons(X, XS)) → after#(N, activate(XS))

activate#(n__s(X)) → activate#(X)activate#(n__from(X)) → activate#(X)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

after#(s(N), cons(X, XS))after#(N, activate(XS))

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))after(0, XS)XS
after(s(N), cons(X, XS))after(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__s, after, activate, 0, n__from, s, from, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

after#(s(N), cons(X, XS))after#(N, activate(XS))

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

activate#(n__s(X))activate#(X)activate#(n__from(X))activate#(X)

Rewrite Rules

from(X)cons(X, n__from(n__s(X)))after(0, XS)XS
after(s(N), cons(X, XS))after(N, activate(XS))from(X)n__from(X)
s(X)n__s(X)activate(n__from(X))from(activate(X))
activate(n__s(X))s(activate(X))activate(X)X

Original Signature

Termination of terms over the following signature is verified: n__s, after, activate, 0, n__from, s, from, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

activate#(n__s(X))activate#(X)activate#(n__from(X))activate#(X)