YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (96ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 5 was processed with processor SubtermCriterion (10ms).
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4iUR (1194ms).
 |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (597ms).
 |    |    | – Problem 7 was processed with processor PolynomialLinearRange4iUR (454ms).
 |    |    |    | – Problem 8 was processed with processor PolynomialLinearRange4iUR (32ms).
 |    |    |    |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (29ms).
 |    |    |    |    |    | – Problem 10 was processed with processor DependencyGraph (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(tail(cons(X, XS))) → mark#(XS)mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))
mark#(0) → active#(0)cons#(mark(X1), X2) → cons#(X1, X2)
mark#(cons(X1, X2)) → mark#(X1)mark#(tail(X)) → tail#(mark(X))
tail#(mark(X)) → tail#(X)cons#(active(X1), X2) → cons#(X1, X2)
cons#(X1, active(X2)) → cons#(X1, X2)mark#(tail(X)) → active#(tail(mark(X)))
mark#(tail(X)) → mark#(X)tail#(active(X)) → tail#(X)
active#(zeros) → cons#(0, zeros)active#(zeros) → mark#(cons(0, zeros))
cons#(X1, mark(X2)) → cons#(X1, X2)mark#(zeros) → active#(zeros)
mark#(cons(X1, X2)) → cons#(mark(X1), X2)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


The following SCCs where found

active#(tail(cons(X, XS))) → mark#(XS)mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))
mark#(tail(X)) → active#(tail(mark(X)))mark#(tail(X)) → mark#(X)
mark#(cons(X1, X2)) → mark#(X1)active#(zeros) → mark#(cons(0, zeros))
mark#(zeros) → active#(zeros)

tail#(active(X)) → tail#(X)tail#(mark(X)) → tail#(X)

cons#(X1, active(X2)) → cons#(X1, X2)cons#(mark(X1), X2) → cons#(X1, X2)
cons#(X1, mark(X2)) → cons#(X1, X2)cons#(active(X1), X2) → cons#(X1, X2)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

cons#(X1, active(X2)) → cons#(X1, X2)cons#(mark(X1), X2) → cons#(X1, X2)
cons#(X1, mark(X2)) → cons#(X1, X2)cons#(active(X1), X2) → cons#(X1, X2)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

cons#(mark(X1), X2) → cons#(X1, X2)cons#(active(X1), X2) → cons#(X1, X2)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

cons#(X1, active(X2)) → cons#(X1, X2)cons#(X1, mark(X2)) → cons#(X1, X2)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

cons#(X1, active(X2)) → cons#(X1, X2)cons#(X1, mark(X2)) → cons#(X1, X2)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

tail#(active(X)) → tail#(X)tail#(mark(X)) → tail#(X)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

tail#(active(X)) → tail#(X)tail#(mark(X)) → tail#(X)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(tail(cons(X, XS))) → mark#(XS)mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))
mark#(tail(X)) → active#(tail(mark(X)))mark#(tail(X)) → mark#(X)
mark#(cons(X1, X2)) → mark#(X1)active#(zeros) → mark#(cons(0, zeros))
mark#(zeros) → active#(zeros)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)tail(active(X)) → tail(X)
tail(mark(X)) → tail(X)cons(X1, active(X2)) → cons(X1, X2)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(tail(cons(X, XS))) → mark#(XS)mark#(tail(X)) → active#(tail(mark(X)))
mark#(tail(X)) → mark#(X)mark#(cons(X1, X2)) → mark#(X1)
active#(zeros) → mark#(cons(0, zeros))mark#(zeros) → active#(zeros)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
active(tail(cons(X, XS))) → mark(XS)cons(mark(X1), X2) → cons(X1, X2)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))tail(active(X)) → tail(X)
tail(mark(X)) → tail(X)mark(zeros) → active(zeros)
mark(tail(X)) → active(tail(mark(X)))active(zeros) → mark(cons(0, zeros))
mark(0) → active(0)cons(X1, active(X2)) → cons(X1, X2)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

active#(tail(cons(X, XS))) → mark#(XS)mark#(tail(X)) → mark#(X)

Problem 7: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(tail(X)) → active#(tail(mark(X)))mark#(cons(X1, X2)) → mark#(X1)
active#(zeros) → mark#(cons(0, zeros))mark#(zeros) → active#(zeros)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
active(tail(cons(X, XS))) → mark(XS)cons(mark(X1), X2) → cons(X1, X2)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))tail(active(X)) → tail(X)
tail(mark(X)) → tail(X)mark(zeros) → active(zeros)
mark(tail(X)) → active(tail(mark(X)))active(zeros) → mark(cons(0, zeros))
mark(0) → active(0)cons(X1, active(X2)) → cons(X1, X2)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

mark#(tail(X)) → active#(tail(mark(X)))

Problem 8: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(cons(X1, X2)) → mark#(X1)active#(zeros) → mark#(cons(0, zeros))
mark#(zeros) → active#(zeros)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

mark#(cons(X1, X2)) → mark#(X1)

Problem 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(zeros) → mark#(cons(0, zeros))mark#(zeros) → active#(zeros)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

mark#(zeros) → active#(zeros)

Problem 10: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(zeros) → mark#(cons(0, zeros))

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(tail(cons(X, XS))) → mark(XS)
mark(zeros) → active(zeros)mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)mark(tail(X)) → active(tail(mark(X)))
cons(mark(X1), X2) → cons(X1, X2)cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)cons(X1, active(X2)) → cons(X1, X2)
tail(mark(X)) → tail(X)tail(active(X)) → tail(X)

Original Signature

Termination of terms over the following signature is verified: 0, zeros, active, mark, tail, cons

Strategy


There are no SCCs!