MAYBE
The TRS could not be proven terminating. The proof attempt took 612 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (0ms).
| Problem 2 was processed with processor PolynomialLinearRange4iUR (0ms).
| | Problem 5 was processed with processor PolynomialLinearRange4iUR (0ms).
| Problem 3 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (1ms), PolynomialLinearRange4iUR (14ms), DependencyGraph (1ms), PolynomialLinearRange4iUR (31ms), DependencyGraph (0ms), PolynomialLinearRange4iUR (13ms), DependencyGraph (1ms), PolynomialLinearRange8NegiUR (29ms), DependencyGraph (1ms), ReductionPairSAT (19ms), DependencyGraph (1ms), SizeChangePrinciple (7ms)].
| Problem 4 was processed with processor SubtermCriterion (0ms).
The following open problems remain:
Open Dependency Pair Problem 3
Dependency Pairs
Rewrite Rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
sieve(cons(0, Y)) | → | cons(0, sieve(Y)) | | sieve(cons(s(N), Y)) | → | cons(s(N), sieve(filter(Y, N, N))) |
nats(N) | → | cons(N, nats(s(N))) | | zprimes | → | sieve(nats(s(s(0)))) |
Original Signature
Termination of terms over the following signature is verified: nats, 0, sieve, s, zprimes, filter, cons
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
filter#(cons(X, Y), 0, M) | → | filter#(Y, M, M) | | sieve#(cons(s(N), Y)) | → | filter#(Y, N, N) |
sieve#(cons(0, Y)) | → | sieve#(Y) | | filter#(cons(X, Y), s(N), M) | → | filter#(Y, N, M) |
sieve#(cons(s(N), Y)) | → | sieve#(filter(Y, N, N)) | | zprimes# | → | nats#(s(s(0))) |
zprimes# | → | sieve#(nats(s(s(0)))) | | nats#(N) | → | nats#(s(N)) |
Rewrite Rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
sieve(cons(0, Y)) | → | cons(0, sieve(Y)) | | sieve(cons(s(N), Y)) | → | cons(s(N), sieve(filter(Y, N, N))) |
nats(N) | → | cons(N, nats(s(N))) | | zprimes | → | sieve(nats(s(s(0)))) |
Original Signature
Termination of terms over the following signature is verified: nats, 0, s, sieve, zprimes, filter, cons
Strategy
The following SCCs where found
filter#(cons(X, Y), 0, M) → filter#(Y, M, M) | filter#(cons(X, Y), s(N), M) → filter#(Y, N, M) |
sieve#(cons(0, Y)) → sieve#(Y) | sieve#(cons(s(N), Y)) → sieve#(filter(Y, N, N)) |
Problem 2: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
sieve#(cons(0, Y)) | → | sieve#(Y) | | sieve#(cons(s(N), Y)) | → | sieve#(filter(Y, N, N)) |
Rewrite Rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
sieve(cons(0, Y)) | → | cons(0, sieve(Y)) | | sieve(cons(s(N), Y)) | → | cons(s(N), sieve(filter(Y, N, N))) |
nats(N) | → | cons(N, nats(s(N))) | | zprimes | → | sieve(nats(s(s(0)))) |
Original Signature
Termination of terms over the following signature is verified: nats, 0, s, sieve, zprimes, filter, cons
Strategy
Polynomial Interpretation
- 0: 0
- cons(x,y): 2y + 2x + 1
- filter(x,y,z): 2x + 1
- nats(x): 0
- s(x): 0
- sieve(x): 0
- sieve#(x): 2x
- zprimes: 0
Improved Usable rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
sieve#(cons(0, Y)) | → | sieve#(Y) |
Problem 5: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
sieve#(cons(s(N), Y)) | → | sieve#(filter(Y, N, N)) |
Rewrite Rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
sieve(cons(0, Y)) | → | cons(0, sieve(Y)) | | sieve(cons(s(N), Y)) | → | cons(s(N), sieve(filter(Y, N, N))) |
nats(N) | → | cons(N, nats(s(N))) | | zprimes | → | sieve(nats(s(s(0)))) |
Original Signature
Termination of terms over the following signature is verified: nats, 0, sieve, s, zprimes, filter, cons
Strategy
Polynomial Interpretation
- 0: 0
- cons(x,y): y + 1
- filter(x,y,z): x
- nats(x): 0
- s(x): 3x + 3
- sieve(x): 0
- sieve#(x): 2x
- zprimes: 0
Improved Usable rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
sieve#(cons(s(N), Y)) | → | sieve#(filter(Y, N, N)) |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
filter#(cons(X, Y), 0, M) | → | filter#(Y, M, M) | | filter#(cons(X, Y), s(N), M) | → | filter#(Y, N, M) |
Rewrite Rules
filter(cons(X, Y), 0, M) | → | cons(0, filter(Y, M, M)) | | filter(cons(X, Y), s(N), M) | → | cons(X, filter(Y, N, M)) |
sieve(cons(0, Y)) | → | cons(0, sieve(Y)) | | sieve(cons(s(N), Y)) | → | cons(s(N), sieve(filter(Y, N, N))) |
nats(N) | → | cons(N, nats(s(N))) | | zprimes | → | sieve(nats(s(s(0)))) |
Original Signature
Termination of terms over the following signature is verified: nats, 0, s, sieve, zprimes, filter, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
filter#(cons(X, Y), 0, M) | → | filter#(Y, M, M) | | filter#(cons(X, Y), s(N), M) | → | filter#(Y, N, M) |