YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (28ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (280ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4iUR (152ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a#(a(x, y), z) → a#(y, z)a#(lambda(x), y) → lambda#(a(x, a(y, t)))
a#(lambda(x), y) → lambda#(a(x, 1))a#(a(x, y), z) → a#(x, a(y, z))
a#(lambda(x), y) → a#(y, t)a#(lambda(x), y) → a#(x, 1)
a#(lambda(x), y) → a#(x, a(y, t))

Rewrite Rules

a(lambda(x), y) → lambda(a(x, 1))a(lambda(x), y) → lambda(a(x, a(y, t)))
a(a(x, y), z) → a(x, a(y, z))lambda(x) → x
a(x, y) → xa(x, y) → y

Original Signature

Termination of terms over the following signature is verified: lambda, 1, t, a

Strategy


The following SCCs where found

a#(a(x, y), z) → a#(y, z)a#(a(x, y), z) → a#(x, a(y, z))
a#(lambda(x), y) → a#(y, t)a#(lambda(x), y) → a#(x, 1)
a#(lambda(x), y) → a#(x, a(y, t))

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a#(a(x, y), z) → a#(y, z)a#(a(x, y), z) → a#(x, a(y, z))
a#(lambda(x), y) → a#(y, t)a#(lambda(x), y) → a#(x, 1)
a#(lambda(x), y) → a#(x, a(y, t))

Rewrite Rules

a(lambda(x), y) → lambda(a(x, 1))a(lambda(x), y) → lambda(a(x, a(y, t)))
a(a(x, y), z) → a(x, a(y, z))lambda(x) → x
a(x, y) → xa(x, y) → y

Original Signature

Termination of terms over the following signature is verified: lambda, 1, t, a

Strategy


Polynomial Interpretation

Improved Usable rules

a(lambda(x), y) → lambda(a(x, 1))a(x, y) → y
lambda(x) → xa(lambda(x), y) → lambda(a(x, a(y, t)))
a(x, y) → xa(a(x, y), z) → a(x, a(y, z))

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

a#(lambda(x), y) → a#(y, t)a#(lambda(x), y) → a#(x, 1)
a#(lambda(x), y) → a#(x, a(y, t))

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

a#(a(x, y), z) → a#(y, z)a#(a(x, y), z) → a#(x, a(y, z))

Rewrite Rules

a(lambda(x), y) → lambda(a(x, 1))a(lambda(x), y) → lambda(a(x, a(y, t)))
a(a(x, y), z) → a(x, a(y, z))lambda(x) → x
a(x, y) → xa(x, y) → y

Original Signature

Termination of terms over the following signature is verified: lambda, 1, t, a

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:

a#(a(x, y), z) → a#(y, z)a#(a(x, y), z) → a#(x, a(y, z))