YES
The TRS could be proven terminating. The proof took 177 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (10ms).
| Problem 2 was processed with processor SubtermCriterion (1ms).
| Problem 3 was processed with processor PolynomialLinearRange4iUR (121ms).
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
a__f#(a, X, X) | → | a__f#(X, a__b, b) | | mark#(f(X1, X2, X3)) | → | a__f#(X1, mark(X2), X3) |
a__f#(a, X, X) | → | a__b# | | mark#(f(X1, X2, X3)) | → | mark#(X2) |
mark#(b) | → | a__b# |
Rewrite Rules
a__f(a, X, X) | → | a__f(X, a__b, b) | | a__b | → | a |
mark(f(X1, X2, X3)) | → | a__f(X1, mark(X2), X3) | | mark(b) | → | a__b |
mark(a) | → | a | | a__f(X1, X2, X3) | → | f(X1, X2, X3) |
a__b | → | b |
Original Signature
Termination of terms over the following signature is verified: f, b, a, a__b, mark, a__f
Strategy
The following SCCs where found
a__f#(a, X, X) → a__f#(X, a__b, b) |
mark#(f(X1, X2, X3)) → mark#(X2) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
mark#(f(X1, X2, X3)) | → | mark#(X2) |
Rewrite Rules
a__f(a, X, X) | → | a__f(X, a__b, b) | | a__b | → | a |
mark(f(X1, X2, X3)) | → | a__f(X1, mark(X2), X3) | | mark(b) | → | a__b |
mark(a) | → | a | | a__f(X1, X2, X3) | → | f(X1, X2, X3) |
a__b | → | b |
Original Signature
Termination of terms over the following signature is verified: f, b, a, a__b, mark, a__f
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
mark#(f(X1, X2, X3)) | → | mark#(X2) |
Problem 3: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
a__f#(a, X, X) | → | a__f#(X, a__b, b) |
Rewrite Rules
a__f(a, X, X) | → | a__f(X, a__b, b) | | a__b | → | a |
mark(f(X1, X2, X3)) | → | a__f(X1, mark(X2), X3) | | mark(b) | → | a__b |
mark(a) | → | a | | a__f(X1, X2, X3) | → | f(X1, X2, X3) |
a__b | → | b |
Original Signature
Termination of terms over the following signature is verified: f, b, a, a__b, mark, a__f
Strategy
Polynomial Interpretation
- a: 2
- a__b: 3
- a__f(x,y,z): 0
- a__f#(x,y,z): z + x + 1
- b: 1
- f(x,y,z): 0
- mark(x): 0
Improved Usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
a__f#(a, X, X) | → | a__f#(X, a__b, b) |