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