YES
The TRS could be proven terminating. The proof took 16627 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (373ms).
| Problem 2 was processed with processor SubtermCriterion (22ms).
| Problem 3 was processed with processor SubtermCriterion (0ms).
| | Problem 7 was processed with processor SubtermCriterion (23ms).
| Problem 4 was processed with processor SubtermCriterion (16ms).
| Problem 5 was processed with processor SubtermCriterion (1ms).
| Problem 6 was processed with processor PolynomialLinearRange4iUR (6587ms).
| | Problem 8 was processed with processor PolynomialLinearRange4iUR (2726ms).
| | | Problem 9 was processed with processor PolynomialLinearRange4iUR (1597ms).
| | | | Problem 10 was processed with processor PolynomialLinearRange4iUR (1352ms).
| | | | | Problem 11 was processed with processor PolynomialLinearRange4iUR (1201ms).
| | | | | | Problem 12 was processed with processor PolynomialLinearRange4iUR (1215ms).
| | | | | | | Problem 13 was processed with processor PolynomialLinearRange4iUR (1215ms).
| | | | | | | | Problem 14 was processed with processor DependencyGraph (1ms).
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#(f(s(0))) | → | f#(p(s(0))) | | f#(active(X)) | → | f#(X) |
p#(mark(X)) | → | p#(X) | | active#(f(s(0))) | → | mark#(f(p(s(0)))) |
mark#(s(X)) | → | s#(mark(X)) | | active#(p(s(0))) | → | mark#(0) |
mark#(s(X)) | → | mark#(X) | | cons#(X1, mark(X2)) | → | cons#(X1, X2) |
f#(mark(X)) | → | f#(X) | | mark#(f(X)) | → | f#(mark(X)) |
mark#(cons(X1, X2)) | → | cons#(mark(X1), X2) | | active#(f(0)) | → | s#(0) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
active#(f(s(0))) | → | p#(s(0)) | | mark#(cons(X1, X2)) | → | mark#(X1) |
cons#(active(X1), X2) | → | cons#(X1, X2) | | mark#(f(X)) | → | mark#(X) |
mark#(p(X)) | → | active#(p(mark(X))) | | mark#(f(X)) | → | active#(f(mark(X))) |
s#(mark(X)) | → | s#(X) | | active#(f(s(0))) | → | s#(0) |
cons#(X1, active(X2)) | → | cons#(X1, X2) | | active#(f(0)) | → | cons#(0, f(s(0))) |
mark#(p(X)) | → | p#(mark(X)) | | mark#(p(X)) | → | mark#(X) |
active#(f(0)) | → | mark#(cons(0, f(s(0)))) | | active#(f(0)) | → | f#(s(0)) |
s#(active(X)) | → | s#(X) | | p#(active(X)) | → | p#(X) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
The following SCCs where found
p#(mark(X)) → p#(X) | p#(active(X)) → p#(X) |
f#(active(X)) → f#(X) | f#(mark(X)) → f#(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#(f(0)) → mark#(cons(0, f(s(0)))) | mark#(p(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(s(X)) → mark#(X) |
mark#(p(X)) → active#(p(mark(X))) | mark#(f(X)) → mark#(X) |
active#(f(s(0))) → mark#(f(p(s(0)))) | mark#(f(X)) → active#(f(mark(X))) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
s#(mark(X)) | → | s#(X) | | s#(active(X)) | → | s#(X) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
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 3: 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(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, 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 7: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
cons#(X1, active(X2)) | → | cons#(X1, X2) | | cons#(X1, mark(X2)) | → | cons#(X1, X2) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, 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 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
f#(active(X)) | → | f#(X) | | f#(mark(X)) | → | f#(X) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
f#(active(X)) | → | f#(X) | | f#(mark(X)) | → | f#(X) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
p#(mark(X)) | → | p#(X) | | p#(active(X)) | → | p#(X) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
p#(mark(X)) | → | p#(X) | | p#(active(X)) | → | p#(X) |
Problem 6: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | mark#(s(X)) | → | active#(s(mark(X))) |
active#(f(0)) | → | mark#(cons(0, f(s(0)))) | | mark#(p(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(s(X)) | → | mark#(X) |
mark#(p(X)) | → | active#(p(mark(X))) | | mark#(f(X)) | → | mark#(X) |
active#(f(s(0))) | → | mark#(f(p(s(0)))) | | mark#(f(X)) | → | active#(f(mark(X))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 3
- active(x): 1
- active#(x): x
- cons(x,y): 0
- f(x): 1
- mark(x): 1
- mark#(x): 1
- p(x): 0
- s(x): 1
Improved Usable rules
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
p(mark(X)) | → | p(X) | | cons(mark(X1), X2) | → | cons(X1, X2) |
s(mark(X)) | → | s(X) | | f(active(X)) | → | f(X) |
f(mark(X)) | → | f(X) | | p(active(X)) | → | p(X) |
s(active(X)) | → | s(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)) | | mark#(p(X)) | → | active#(p(mark(X))) |
Problem 8: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(p(X)) | → | mark#(X) |
active#(f(0)) | → | mark#(cons(0, f(s(0)))) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(s(X)) | → | mark#(X) | | mark#(f(X)) | → | mark#(X) |
mark#(f(X)) | → | active#(f(mark(X))) | | active#(f(s(0))) | → | mark#(f(p(s(0)))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 0
- active(x): 2
- active#(x): 2x + 1
- cons(x,y): 1
- f(x): 1
- mark(x): 0
- mark#(x): 3
- p(x): 0
- s(x): 0
Improved Usable rules
s(mark(X)) | → | s(X) | | f(active(X)) | → | f(X) |
f(mark(X)) | → | f(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)) | → | active#(s(mark(X))) |
Problem 9: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
active#(f(0)) | → | mark#(cons(0, f(s(0)))) | | mark#(p(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(s(X)) | → | mark#(X) |
mark#(f(X)) | → | mark#(X) | | active#(f(s(0))) | → | mark#(f(p(s(0)))) |
mark#(f(X)) | → | active#(f(mark(X))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 0
- active(x): x
- active#(x): 2x
- cons(x,y): y + x
- f(x): 2x + 1
- mark(x): x
- mark#(x): 2x
- p(x): x
- s(x): x
Improved Usable rules
cons(active(X1), X2) | → | cons(X1, X2) | | mark(s(X)) | → | active(s(mark(X))) |
active(p(s(0))) | → | mark(0) | | active(f(0)) | → | mark(cons(0, f(s(0)))) |
active(f(s(0))) | → | mark(f(p(s(0)))) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
mark(p(X)) | → | active(p(mark(X))) | | p(mark(X)) | → | p(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
s(mark(X)) | → | s(X) | | f(active(X)) | → | f(X) |
mark(f(X)) | → | active(f(mark(X))) | | f(mark(X)) | → | f(X) |
p(active(X)) | → | p(X) | | mark(0) | → | active(0) |
s(active(X)) | → | s(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:
Problem 10: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
mark#(p(X)) | → | mark#(X) | | active#(f(0)) | → | mark#(cons(0, f(s(0)))) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(s(X)) | → | mark#(X) |
mark#(f(X)) | → | active#(f(mark(X))) | | active#(f(s(0))) | → | mark#(f(p(s(0)))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 0
- active(x): x
- active#(x): x
- cons(x,y): x
- f(x): x + 1
- mark(x): x
- mark#(x): x
- p(x): x
- s(x): 2x + 1
Improved Usable rules
cons(active(X1), X2) | → | cons(X1, X2) | | mark(s(X)) | → | active(s(mark(X))) |
active(p(s(0))) | → | mark(0) | | active(f(0)) | → | mark(cons(0, f(s(0)))) |
active(f(s(0))) | → | mark(f(p(s(0)))) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
mark(p(X)) | → | active(p(mark(X))) | | p(mark(X)) | → | p(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
s(mark(X)) | → | s(X) | | f(active(X)) | → | f(X) |
p(active(X)) | → | p(X) | | f(mark(X)) | → | f(X) |
mark(f(X)) | → | active(f(mark(X))) | | s(active(X)) | → | s(X) |
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#(f(0)) | → | mark#(cons(0, f(s(0)))) | | mark#(s(X)) | → | mark#(X) |
Problem 11: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
mark#(p(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
active#(f(s(0))) | → | mark#(f(p(s(0)))) | | mark#(f(X)) | → | active#(f(mark(X))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 1
- active(x): 1
- active#(x): 0
- cons(x,y): 3x
- f(x): 0
- mark(x): 1
- mark#(x): 3x
- p(x): x + 1
- s(x): 2
Improved Usable rules
f(active(X)) | → | f(X) | | f(mark(X)) | → | f(X) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
Problem 12: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(f(X)) | → | active#(f(mark(X))) |
active#(f(s(0))) | → | mark#(f(p(s(0)))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 0
- active(x): 0
- active#(x): 3
- cons(x,y): x + 1
- f(x): 2
- mark(x): 0
- mark#(x): x + 1
- p(x): x + 1
- s(x): 2
Improved Usable rules
f(active(X)) | → | f(X) | | f(mark(X)) | → | f(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#(f(s(0))) | → | mark#(f(p(s(0)))) | | mark#(f(X)) | → | active#(f(mark(X))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
Polynomial Interpretation
- 0: 0
- active(x): x
- active#(x): x
- cons(x,y): x
- f(x): 2x
- mark(x): 2x
- mark#(x): 2x
- p(x): 0
- s(x): 1
Improved Usable rules
cons(active(X1), X2) | → | cons(X1, X2) | | mark(s(X)) | → | active(s(mark(X))) |
active(p(s(0))) | → | mark(0) | | active(f(0)) | → | mark(cons(0, f(s(0)))) |
active(f(s(0))) | → | mark(f(p(s(0)))) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
mark(p(X)) | → | active(p(mark(X))) | | p(mark(X)) | → | p(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
s(mark(X)) | → | s(X) | | f(active(X)) | → | f(X) |
mark(f(X)) | → | active(f(mark(X))) | | f(mark(X)) | → | f(X) |
p(active(X)) | → | p(X) | | mark(0) | → | active(0) |
s(active(X)) | → | s(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:
active#(f(s(0))) | → | mark#(f(p(s(0)))) |
Problem 14: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(f(X)) | → | active#(f(mark(X))) |
Rewrite Rules
active(f(0)) | → | mark(cons(0, f(s(0)))) | | active(f(s(0))) | → | mark(f(p(s(0)))) |
active(p(s(0))) | → | mark(0) | | mark(f(X)) | → | active(f(mark(X))) |
mark(0) | → | active(0) | | mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) |
mark(s(X)) | → | active(s(mark(X))) | | mark(p(X)) | → | active(p(mark(X))) |
f(mark(X)) | → | f(X) | | f(active(X)) | → | f(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) |
p(mark(X)) | → | p(X) | | p(active(X)) | → | p(X) |
Original Signature
Termination of terms over the following signature is verified: f, 0, s, p, active, mark, cons
Strategy
There are no SCCs!