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