YES
The TRS could be proven terminating. The proof took 769 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (17ms).
| Problem 2 was processed with processor SubtermCriterion (0ms).
| Problem 3 was processed with processor PolynomialLinearRange4iUR (345ms).
| | Problem 4 was processed with processor PolynomialLinearRange4iUR (323ms).
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
f#(s(x)) | → | g#(f(x)) | | g#(s(x)) | → | minus#(s(x), f(g(x))) |
f#(s(x)) | → | minus#(s(x), g(f(x))) | | minus#(s(x), s(y)) | → | minus#(x, y) |
g#(s(x)) | → | f#(g(x)) | | f#(s(x)) | → | f#(x) |
g#(s(x)) | → | g#(x) |
Rewrite Rules
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
f(0) | → | s(0) | | f(s(x)) | → | minus(s(x), g(f(x))) |
g(0) | → | 0 | | g(s(x)) | → | minus(s(x), f(g(x))) |
Original Signature
Termination of terms over the following signature is verified: f, g, minus, 0, s
Strategy
The following SCCs where found
f#(s(x)) → g#(f(x)) | g#(s(x)) → f#(g(x)) |
f#(s(x)) → f#(x) | g#(s(x)) → g#(x) |
minus#(s(x), s(y)) → minus#(x, y) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
minus#(s(x), s(y)) | → | minus#(x, y) |
Rewrite Rules
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
f(0) | → | s(0) | | f(s(x)) | → | minus(s(x), g(f(x))) |
g(0) | → | 0 | | g(s(x)) | → | minus(s(x), f(g(x))) |
Original Signature
Termination of terms over the following signature is verified: f, g, minus, 0, s
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
minus#(s(x), s(y)) | → | minus#(x, y) |
Problem 3: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
f#(s(x)) | → | g#(f(x)) | | g#(s(x)) | → | f#(g(x)) |
f#(s(x)) | → | f#(x) | | g#(s(x)) | → | g#(x) |
Rewrite Rules
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
f(0) | → | s(0) | | f(s(x)) | → | minus(s(x), g(f(x))) |
g(0) | → | 0 | | g(s(x)) | → | minus(s(x), f(g(x))) |
Original Signature
Termination of terms over the following signature is verified: f, g, minus, 0, s
Strategy
Polynomial Interpretation
- 0: 0
- f(x): x + 1
- f#(x): 2x
- g(x): x + 1
- g#(x): 2x
- minus(x,y): x
- s(x): 2x + 1
Improved Usable rules
g(0) | → | 0 | | f(0) | → | s(0) |
minus(s(x), s(y)) | → | minus(x, y) | | f(s(x)) | → | minus(s(x), g(f(x))) |
g(s(x)) | → | minus(s(x), f(g(x))) | | minus(x, 0) | → | x |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
g#(s(x)) | → | g#(x) | | f#(s(x)) | → | f#(x) |
Problem 4: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
f#(s(x)) | → | g#(f(x)) | | g#(s(x)) | → | f#(g(x)) |
Rewrite Rules
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
f(0) | → | s(0) | | f(s(x)) | → | minus(s(x), g(f(x))) |
g(0) | → | 0 | | g(s(x)) | → | minus(s(x), f(g(x))) |
Original Signature
Termination of terms over the following signature is verified: f, g, 0, minus, s
Strategy
Polynomial Interpretation
- 0: 0
- f(x): x + 1
- f#(x): 2x
- g(x): x
- g#(x): x
- minus(x,y): x
- s(x): 2x + 1
Improved Usable rules
g(0) | → | 0 | | f(0) | → | s(0) |
minus(s(x), s(y)) | → | minus(x, y) | | f(s(x)) | → | minus(s(x), g(f(x))) |
g(s(x)) | → | minus(s(x), f(g(x))) | | minus(x, 0) | → | x |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
f#(s(x)) | → | g#(f(x)) | | g#(s(x)) | → | f#(g(x)) |