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