YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (429ms).
 | – Problem 2 was processed with processor SubtermCriterion (0ms).
 | – Problem 3 was processed with processor SubtermCriterion (33ms).
 | – Problem 4 was processed with processor SubtermCriterion (0ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4iUR (7018ms).
 |    | – Problem 9 was processed with processor PolynomialLinearRange4iUR (3542ms).
 |    |    | – Problem 10 was processed with processor PolynomialLinearRange4iUR (1966ms).
 |    |    |    | – Problem 11 was processed with processor PolynomialLinearRange4iUR (2036ms).
 |    |    |    |    | – Problem 12 was processed with processor PolynomialLinearRange4iUR (67ms).
 |    |    |    |    |    | – Problem 13 was processed with processor PolynomialLinearRange4iUR (89ms).
 |    |    |    |    |    |    | – Problem 14 was processed with processor PolynomialLinearRange4iUR (67ms).
 |    |    |    |    |    |    |    | – Problem 15 was processed with processor PolynomialLinearRange4iUR (126ms).
 |    |    |    |    |    |    |    |    | – Problem 16 was processed with processor PolynomialLinearRange4iUR (44ms).
 |    |    |    |    |    |    |    |    |    | – Problem 17 was processed with processor DependencyGraph (0ms).
 | – Problem 6 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 8 was processed with processor SubtermCriterion (1ms).
 | – Problem 7 was processed with processor SubtermCriterion (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))cons#(mark(X1), X2) → cons#(X1, X2)
active#(length(nil)) → mark#(0)mark#(length1(X)) → active#(length1(X))
from#(mark(X)) → from#(X)mark#(s(X)) → s#(mark(X))
mark#(nil) → active#(nil)length#(active(X)) → length#(X)
mark#(length(X)) → active#(length(X))active#(from(X)) → cons#(X, from(s(X)))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(s(X)) → mark#(X)
cons#(X1, mark(X2)) → cons#(X1, X2)mark#(cons(X1, X2)) → cons#(mark(X1), X2)
length#(mark(X)) → length#(X)mark#(length(X)) → length#(X)
mark#(0) → active#(0)mark#(s(X)) → active#(s(mark(X)))
mark#(from(X)) → mark#(X)mark#(cons(X1, X2)) → mark#(X1)
cons#(active(X1), X2) → cons#(X1, X2)active#(length(cons(X, Y))) → length1#(Y)
active#(from(X)) → mark#(cons(X, from(s(X))))length1#(mark(X)) → length1#(X)
mark#(length1(X)) → length1#(X)active#(from(X)) → s#(X)
s#(mark(X)) → s#(X)active#(length(cons(X, Y))) → s#(length1(Y))
cons#(X1, active(X2)) → cons#(X1, X2)mark#(from(X)) → from#(mark(X))
active#(length1(X)) → mark#(length(X))mark#(from(X)) → active#(from(mark(X)))
from#(active(X)) → from#(X)s#(active(X)) → s#(X)
active#(length1(X)) → length#(X)active#(from(X)) → from#(s(X))
length1#(active(X)) → length1#(X)

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


The following SCCs where found

length#(mark(X)) → length#(X)length#(active(X)) → length#(X)

from#(active(X)) → from#(X)from#(mark(X)) → from#(X)

length1#(mark(X)) → length1#(X)length1#(active(X)) → length1#(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)

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))mark#(s(X)) → active#(s(mark(X)))
active#(length1(X)) → mark#(length(X))mark#(from(X)) → active#(from(mark(X)))
mark#(from(X)) → mark#(X)mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(cons(X1, X2)) → mark#(X1)
mark#(s(X)) → mark#(X)mark#(length1(X)) → active#(length1(X))
active#(from(X)) → mark#(cons(X, from(s(X))))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

length1#(mark(X)) → length1#(X)length1#(active(X)) → length1#(X)

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

length1#(mark(X)) → length1#(X)length1#(active(X)) → length1#(X)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

from#(active(X)) → from#(X)from#(mark(X)) → from#(X)

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

from#(active(X)) → from#(X)from#(mark(X)) → from#(X)

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))mark#(s(X)) → active#(s(mark(X)))
active#(length1(X)) → mark#(length(X))mark#(from(X)) → active#(from(mark(X)))
mark#(from(X)) → mark#(X)mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(cons(X1, X2)) → mark#(X1)
mark#(s(X)) → mark#(X)mark#(length1(X)) → active#(length1(X))
active#(from(X)) → mark#(cons(X, from(s(X))))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

length1(mark(X)) → length1(X)cons(active(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)from(mark(X)) → from(X)
length1(active(X)) → length1(X)cons(mark(X1), X2) → cons(X1, X2)
length(active(X)) → length(X)s(mark(X)) → s(X)
length(mark(X)) → length(X)s(active(X)) → s(X)
cons(X1, active(X2)) → cons(X1, X2)from(active(X)) → from(X)

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 9: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(s(X)) → active#(s(mark(X)))mark#(from(X)) → active#(from(mark(X)))
active#(length1(X)) → mark#(length(X))mark#(length(X)) → active#(length(X))
mark#(from(X)) → mark#(X)mark#(cons(X1, X2)) → mark#(X1)
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(s(X)) → mark#(X)
active#(from(X)) → mark#(cons(X, from(s(X))))mark#(length1(X)) → active#(length1(X))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, length1, from, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

length1(mark(X)) → length1(X)from(mark(X)) → from(X)
length1(active(X)) → length1(X)s(mark(X)) → s(X)
length(active(X)) → length(X)length(mark(X)) → length(X)
s(active(X)) → s(X)from(active(X)) → from(X)

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

mark#(s(X)) → active#(s(mark(X)))

Problem 10: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(length1(X)) → mark#(length(X))mark#(from(X)) → active#(from(mark(X)))
mark#(from(X)) → mark#(X)mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(cons(X1, X2)) → mark#(X1)
mark#(s(X)) → mark#(X)mark#(length1(X)) → active#(length1(X))
active#(from(X)) → mark#(cons(X, from(s(X))))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

cons(active(X1), X2) → cons(X1, X2)from(mark(X)) → from(X)
mark(length(X)) → active(length(X))length1(active(X)) → length1(X)
mark(s(X)) → active(s(mark(X)))active(length1(X)) → mark(length(X))
length(mark(X)) → length(X)active(length(nil)) → mark(0)
length1(mark(X)) → length1(X)cons(X1, mark(X2)) → cons(X1, X2)
active(length(cons(X, Y))) → mark(s(length1(Y)))cons(mark(X1), X2) → cons(X1, X2)
mark(length1(X)) → active(length1(X))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(from(X)) → active(from(mark(X)))length(active(X)) → length(X)
s(mark(X)) → s(X)active(from(X)) → mark(cons(X, from(s(X))))
mark(nil) → active(nil)mark(0) → active(0)
s(active(X)) → s(X)from(active(X)) → from(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#(from(X)) → mark#(X)active#(from(X)) → mark#(cons(X, from(s(X))))

Problem 11: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(from(X)) → active#(from(mark(X)))active#(length1(X)) → mark#(length(X))
mark#(length(X)) → active#(length(X))mark#(cons(X1, X2)) → mark#(X1)
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(s(X)) → mark#(X)
mark#(length1(X)) → active#(length1(X))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, length1, from, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

length1(mark(X)) → length1(X)length1(active(X)) → length1(X)
length(active(X)) → length(X)s(mark(X)) → s(X)
length(mark(X)) → length(X)s(active(X)) → s(X)

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

mark#(from(X)) → active#(from(mark(X)))

Problem 12: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(length1(X)) → mark#(length(X))mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(cons(X1, X2)) → mark#(X1)
mark#(s(X)) → mark#(X)mark#(length1(X)) → active#(length1(X))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

length1(mark(X)) → length1(X)length1(active(X)) → length1(X)
length(active(X)) → length(X)s(mark(X)) → s(X)
length(mark(X)) → length(X)s(active(X)) → s(X)

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 13: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(length1(X)) → mark#(length(X))mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(s(X)) → mark#(X)
mark#(length1(X)) → active#(length1(X))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, length1, from, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

length1(mark(X)) → length1(X)length1(active(X)) → length1(X)
length(active(X)) → length(X)s(mark(X)) → s(X)
length(mark(X)) → length(X)s(active(X)) → s(X)

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

mark#(s(X)) → mark#(X)

Problem 14: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(length1(X)) → mark#(length(X))mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))mark#(length1(X)) → active#(length1(X))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

length(active(X)) → length(X)s(mark(X)) → s(X)
length(mark(X)) → length(X)s(active(X)) → s(X)

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

mark#(length1(X)) → active#(length1(X))

Problem 15: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

active#(length1(X)) → mark#(length(X))mark#(length(X)) → active#(length(X))
active#(length(cons(X, Y))) → mark#(s(length1(Y)))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, length1, from, nil, cons

Strategy


Polynomial Interpretation

Improved Usable rules

length(active(X)) → length(X)length(mark(X)) → length(X)

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

active#(length1(X)) → mark#(length(X))

Problem 16: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

mark#(length(X)) → active#(length(X))active#(length(cons(X, Y))) → mark#(s(length1(Y)))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Polynomial Interpretation

Improved Usable rules

s(mark(X)) → s(X)s(active(X)) → s(X)

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

mark#(length(X)) → active#(length(X))

Problem 17: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(length(cons(X, Y))) → mark#(s(length1(Y)))

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, length1, from, nil, cons

Strategy


There are no SCCs!

Problem 6: 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(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

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 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, length1, from, nil, 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 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

length#(mark(X)) → length#(X)length#(active(X)) → length#(X)

Rewrite Rules

active(from(X)) → mark(cons(X, from(s(X))))active(length(nil)) → mark(0)
active(length(cons(X, Y))) → mark(s(length1(Y)))active(length1(X)) → mark(length(X))
mark(from(X)) → active(from(mark(X)))mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))mark(length(X)) → active(length(X))
mark(nil) → active(nil)mark(0) → active(0)
mark(length1(X)) → active(length1(X))from(mark(X)) → from(X)
from(active(X)) → from(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)s(mark(X)) → s(X)
s(active(X)) → s(X)length(mark(X)) → length(X)
length(active(X)) → length(X)length1(mark(X)) → length1(X)
length1(active(X)) → length1(X)

Original Signature

Termination of terms over the following signature is verified: 0, s, length, active, mark, from, length1, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

length#(mark(X)) → length#(X)length#(active(X)) → length#(X)