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) → yapp(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) → yapp(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

Improved Usable rules

app(app(plus, 0), y) → yapp(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) → yapp(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

Improved Usable rules

app(app(plus, 0), y) → yapp(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)