TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60007 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (236ms).
| Problem 2 remains open; application of the following processors failed [SubtermCriterion (0ms), DependencyGraph (37ms), PolynomialLinearRange4iUR (2120ms), DependencyGraph (37ms), PolynomialLinearRange8NegiUR (12300ms), DependencyGraph (76ms), ReductionPairSAT (timeout)].
The following open problems remain:
Open Dependency Pair Problem 2
Dependency Pairs
sieve#(cons(X, Y)) | → | activate#(Y) | | activate#(n__cons(X1, X2)) | → | activate#(X1) |
filter#(s(s(X)), cons(Y, Z)) | → | activate#(Z) | | activate#(n__s(X)) | → | activate#(X) |
activate#(n__filter(X1, X2)) | → | filter#(activate(X1), activate(X2)) | | activate#(n__sieve(X)) | → | activate#(X) |
activate#(n__filter(X1, X2)) | → | activate#(X1) | | activate#(n__from(X)) | → | activate#(X) |
activate#(n__sieve(X)) | → | sieve#(activate(X)) | | activate#(n__filter(X1, X2)) | → | activate#(X2) |
Rewrite Rules
primes | → | sieve(from(s(s(0)))) | | from(X) | → | cons(X, n__from(n__s(X))) |
head(cons(X, Y)) | → | X | | tail(cons(X, Y)) | → | activate(Y) |
if(true, X, Y) | → | activate(X) | | if(false, X, Y) | → | activate(Y) |
filter(s(s(X)), cons(Y, Z)) | → | if(divides(s(s(X)), Y), n__filter(n__s(n__s(X)), activate(Z)), n__cons(Y, n__filter(X, n__sieve(Y)))) | | sieve(cons(X, Y)) | → | cons(X, n__filter(X, n__sieve(activate(Y)))) |
from(X) | → | n__from(X) | | s(X) | → | n__s(X) |
filter(X1, X2) | → | n__filter(X1, X2) | | cons(X1, X2) | → | n__cons(X1, X2) |
sieve(X) | → | n__sieve(X) | | activate(n__from(X)) | → | from(activate(X)) |
activate(n__s(X)) | → | s(activate(X)) | | activate(n__filter(X1, X2)) | → | filter(activate(X1), activate(X2)) |
activate(n__cons(X1, X2)) | → | cons(activate(X1), X2) | | activate(n__sieve(X)) | → | sieve(activate(X)) |
activate(X) | → | X |
Original Signature
Termination of terms over the following signature is verified: sieve, n__from, true, divides, from, tail, n__s, activate, n__cons, 0, s, if, n__filter, false, primes, head, filter, n__sieve, cons
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
activate#(n__s(X)) | → | activate#(X) | | activate#(n__filter(X1, X2)) | → | filter#(activate(X1), activate(X2)) |
primes# | → | sieve#(from(s(s(0)))) | | activate#(n__filter(X1, X2)) | → | activate#(X2) |
sieve#(cons(X, Y)) | → | activate#(Y) | | activate#(n__cons(X1, X2)) | → | cons#(activate(X1), X2) |
activate#(n__cons(X1, X2)) | → | activate#(X1) | | sieve#(cons(X, Y)) | → | cons#(X, n__filter(X, n__sieve(activate(Y)))) |
if#(false, X, Y) | → | activate#(Y) | | primes# | → | from#(s(s(0))) |
filter#(s(s(X)), cons(Y, Z)) | → | s#(X) | | tail#(cons(X, Y)) | → | activate#(Y) |
activate#(n__sieve(X)) | → | sieve#(activate(X)) | | filter#(s(s(X)), cons(Y, Z)) | → | s#(s(X)) |
primes# | → | s#(s(0)) | | filter#(s(s(X)), cons(Y, Z)) | → | if#(divides(s(s(X)), Y), n__filter(n__s(n__s(X)), activate(Z)), n__cons(Y, n__filter(X, n__sieve(Y)))) |
activate#(n__from(X)) | → | activate#(X) | | activate#(n__filter(X1, X2)) | → | activate#(X1) |
primes# | → | s#(0) | | filter#(s(s(X)), cons(Y, Z)) | → | activate#(Z) |
from#(X) | → | cons#(X, n__from(n__s(X))) | | if#(true, X, Y) | → | activate#(X) |
activate#(n__from(X)) | → | from#(activate(X)) | | activate#(n__sieve(X)) | → | activate#(X) |
activate#(n__s(X)) | → | s#(activate(X)) |
Rewrite Rules
primes | → | sieve(from(s(s(0)))) | | from(X) | → | cons(X, n__from(n__s(X))) |
head(cons(X, Y)) | → | X | | tail(cons(X, Y)) | → | activate(Y) |
if(true, X, Y) | → | activate(X) | | if(false, X, Y) | → | activate(Y) |
filter(s(s(X)), cons(Y, Z)) | → | if(divides(s(s(X)), Y), n__filter(n__s(n__s(X)), activate(Z)), n__cons(Y, n__filter(X, n__sieve(Y)))) | | sieve(cons(X, Y)) | → | cons(X, n__filter(X, n__sieve(activate(Y)))) |
from(X) | → | n__from(X) | | s(X) | → | n__s(X) |
filter(X1, X2) | → | n__filter(X1, X2) | | cons(X1, X2) | → | n__cons(X1, X2) |
sieve(X) | → | n__sieve(X) | | activate(n__from(X)) | → | from(activate(X)) |
activate(n__s(X)) | → | s(activate(X)) | | activate(n__filter(X1, X2)) | → | filter(activate(X1), activate(X2)) |
activate(n__cons(X1, X2)) | → | cons(activate(X1), X2) | | activate(n__sieve(X)) | → | sieve(activate(X)) |
activate(X) | → | X |
Original Signature
Termination of terms over the following signature is verified: sieve, n__from, true, divides, from, tail, n__s, activate, n__cons, 0, s, if, n__filter, false, primes, head, n__sieve, filter, cons
Strategy
The following SCCs where found
sieve#(cons(X, Y)) → activate#(Y) | activate#(n__cons(X1, X2)) → activate#(X1) |
filter#(s(s(X)), cons(Y, Z)) → activate#(Z) | activate#(n__s(X)) → activate#(X) |
activate#(n__filter(X1, X2)) → filter#(activate(X1), activate(X2)) | activate#(n__from(X)) → activate#(X) |
activate#(n__filter(X1, X2)) → activate#(X1) | activate#(n__sieve(X)) → activate#(X) |
activate#(n__sieve(X)) → sieve#(activate(X)) | activate#(n__filter(X1, X2)) → activate#(X2) |