YES

The TRS could be proven terminating. The proof took 717 ms.

The following DP Processors were used


Problem 1 was processed with processor PolynomialLinearRange4iUR (414ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (165ms).

Problem 1: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X1, plus(X3, plus(X2, X4)))plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X3, plus(X2, X4))
plus#(s(X), plus(Y, Z)) → plus#(X, plus(s(s(Y)), Z))plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X2, X4)
plus#(s(X), plus(Y, Z)) → plus#(s(s(Y)), Z)

Rewrite Rules

plus(s(X), plus(Y, Z)) → plus(X, plus(s(s(Y)), Z))plus(s(X1), plus(X2, plus(X3, X4))) → plus(X1, plus(X3, plus(X2, X4)))

Original Signature

Termination of terms over the following signature is verified: plus, s

Strategy


Polynomial Interpretation

Improved Usable rules

plus(s(X), plus(Y, Z)) → plus(X, plus(s(s(Y)), Z))plus(s(X1), plus(X2, plus(X3, X4))) → plus(X1, plus(X3, plus(X2, X4)))

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X3, plus(X2, X4))plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X2, X4)
plus#(s(X), plus(Y, Z)) → plus#(s(s(Y)), Z)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X1, plus(X3, plus(X2, X4)))plus#(s(X), plus(Y, Z)) → plus#(X, plus(s(s(Y)), Z))

Rewrite Rules

plus(s(X), plus(Y, Z)) → plus(X, plus(s(s(Y)), Z))plus(s(X1), plus(X2, plus(X3, X4))) → plus(X1, plus(X3, plus(X2, X4)))

Original Signature

Termination of terms over the following signature is verified: plus, s

Strategy


Polynomial Interpretation

Improved Usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

plus#(s(X1), plus(X2, plus(X3, X4))) → plus#(X1, plus(X3, plus(X2, X4)))plus#(s(X), plus(Y, Z)) → plus#(X, plus(s(s(Y)), Z))