YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (54ms).
 | – Problem 2 was processed with processor PolynomialOrderingProcessor (450ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4iUR (594ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

f#(x, f(s(s(y)), nil)) → f#(y, f(s(0), nil))f#(x, f(s(s(y)), f(z, w))) → f#(s(x), f(y, f(s(z), w)))
L#(f(s(s(y)), f(z, w))) → f#(y, f(s(z), w))f#(x, f(s(s(y)), nil)) → f#(s(x), f(y, f(s(0), nil)))
L#(f(s(s(y)), f(z, w))) → f#(s(0), f(y, f(s(z), w)))f#(x, f(s(s(y)), nil)) → f#(s(0), nil)
L#(f(s(s(y)), f(z, w))) → L#(f(s(0), f(y, f(s(z), w))))L#(f(s(s(y)), f(z, w))) → f#(s(z), w)
f#(x, f(s(s(y)), f(z, w))) → f#(y, f(s(z), w))f#(x, f(s(s(y)), f(z, w))) → f#(s(z), w)

Rewrite Rules

f(x, f(s(s(y)), f(z, w))) → f(s(x), f(y, f(s(z), w)))L(f(s(s(y)), f(z, w))) → L(f(s(0), f(y, f(s(z), w))))
f(x, f(s(s(y)), nil)) → f(s(x), f(y, f(s(0), nil)))

Original Signature

Termination of terms over the following signature is verified: f, 0, s, L, nil

Strategy


The following SCCs where found

f#(x, f(s(s(y)), nil)) → f#(y, f(s(0), nil))f#(x, f(s(s(y)), f(z, w))) → f#(s(x), f(y, f(s(z), w)))
f#(x, f(s(s(y)), nil)) → f#(s(x), f(y, f(s(0), nil)))f#(x, f(s(s(y)), f(z, w))) → f#(y, f(s(z), w))
f#(x, f(s(s(y)), f(z, w))) → f#(s(z), w)

L#(f(s(s(y)), f(z, w))) → L#(f(s(0), f(y, f(s(z), w))))

Problem 2: PolynomialOrderingProcessor



Dependency Pair Problem

Dependency Pairs

L#(f(s(s(y)), f(z, w))) → L#(f(s(0), f(y, f(s(z), w))))

Rewrite Rules

f(x, f(s(s(y)), f(z, w))) → f(s(x), f(y, f(s(z), w)))L(f(s(s(y)), f(z, w))) → L(f(s(0), f(y, f(s(z), w))))
f(x, f(s(s(y)), nil)) → f(s(x), f(y, f(s(0), nil)))

Original Signature

Termination of terms over the following signature is verified: f, 0, s, L, nil

Strategy


Polynomial Interpretation

Improved Usable rules

f(x, f(s(s(y)), f(z, w))) → f(s(x), f(y, f(s(z), w)))f(x, f(s(s(y)), nil)) → f(s(x), f(y, f(s(0), nil)))

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

L#(f(s(s(y)), f(z, w))) → L#(f(s(0), f(y, f(s(z), w))))

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

f#(x, f(s(s(y)), nil)) → f#(y, f(s(0), nil))f#(x, f(s(s(y)), f(z, w))) → f#(s(x), f(y, f(s(z), w)))
f#(x, f(s(s(y)), nil)) → f#(s(x), f(y, f(s(0), nil)))f#(x, f(s(s(y)), f(z, w))) → f#(y, f(s(z), w))
f#(x, f(s(s(y)), f(z, w))) → f#(s(z), w)

Rewrite Rules

f(x, f(s(s(y)), f(z, w))) → f(s(x), f(y, f(s(z), w)))L(f(s(s(y)), f(z, w))) → L(f(s(0), f(y, f(s(z), w))))
f(x, f(s(s(y)), nil)) → f(s(x), f(y, f(s(0), nil)))

Original Signature

Termination of terms over the following signature is verified: f, 0, s, L, nil

Strategy


Polynomial Interpretation

Improved Usable rules

f(x, f(s(s(y)), f(z, w))) → f(s(x), f(y, f(s(z), w)))f(x, f(s(s(y)), nil)) → f(s(x), f(y, f(s(0), nil)))

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

f#(x, f(s(s(y)), nil)) → f#(y, f(s(0), nil))f#(x, f(s(s(y)), f(z, w))) → f#(s(x), f(y, f(s(z), w)))
f#(x, f(s(s(y)), nil)) → f#(s(x), f(y, f(s(0), nil)))f#(x, f(s(s(y)), f(z, w))) → f#(y, f(s(z), w))
f#(x, f(s(s(y)), f(z, w))) → f#(s(z), w)