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

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, 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)

nats#(N) → nats#(s(N))

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

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

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)