YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (93ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor PolynomialOrderingProcessor (318ms).
 |    | – Problem 7 was processed with processor DependencyGraph (2ms).
 |    |    | – Problem 8 was processed with processor PolynomialOrderingProcessor (13ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4iUR (794ms).
 | – Problem 6 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

gcd#(s(x), s(y)) → gcd#(minus(max(x, y), min(x, transform(y))), s(min(x, y)))gcd#(s(x), s(y)) → min#(x, transform(y))
transform#(s(x)) → transform#(x)gcd#(s(x), s(y)) → max#(x, y)
transform#(cons(x, y)) → cons#(x, x)max#(s(x), s(y)) → max#(x, y)
cons#(cons(x, z), s(y)) → transform#(x)gcd#(s(x), s(y)) → minus#(max(x, y), min(x, transform(y)))
transform#(cons(x, y)) → cons#(cons(x, x), x)gcd#(s(x), s(y)) → transform#(y)
cons#(x, cons(y, s(z))) → cons#(y, x)min#(s(x), s(y)) → min#(x, y)
minus#(s(x), s(y)) → minus#(x, y)gcd#(s(x), s(y)) → min#(x, y)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, 0, max, minus, s, gcd, cons

Strategy


The following SCCs where found

gcd#(s(x), s(y)) → gcd#(minus(max(x, y), min(x, transform(y))), s(min(x, y)))

transform#(cons(x, y)) → cons#(cons(x, x), x)cons#(x, cons(y, s(z))) → cons#(y, x)
transform#(s(x)) → transform#(x)transform#(cons(x, y)) → cons#(x, x)
cons#(cons(x, z), s(y)) → transform#(x)

min#(s(x), s(y)) → min#(x, y)

minus#(s(x), s(y)) → minus#(x, y)

max#(s(x), s(y)) → max#(x, y)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

max#(s(x), s(y)) → max#(x, y)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, 0, max, minus, s, gcd, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

max#(s(x), s(y)) → max#(x, y)

Problem 3: PolynomialOrderingProcessor



Dependency Pair Problem

Dependency Pairs

transform#(cons(x, y)) → cons#(cons(x, x), x)cons#(x, cons(y, s(z))) → cons#(y, x)
transform#(s(x)) → transform#(x)transform#(cons(x, y)) → cons#(x, x)
cons#(cons(x, z), s(y)) → transform#(x)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, 0, max, minus, s, gcd, cons

Strategy


Polynomial Interpretation

Improved Usable rules

cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)
transform(x) → s(s(x))transform(cons(x, y)) → cons(cons(x, x), x)
transform(s(x)) → s(s(transform(x)))transform(cons(x, y)) → y
cons(x, y) → y

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

transform#(cons(x, y)) → cons#(cons(x, x), x)cons#(x, cons(y, s(z))) → cons#(y, x)
transform#(cons(x, y)) → cons#(x, x)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

transform#(s(x)) → transform#(x)cons#(cons(x, z), s(y)) → transform#(x)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, minus, max, 0, s, cons, gcd

Strategy


The following SCCs where found

transform#(s(x)) → transform#(x)

Problem 8: PolynomialOrderingProcessor



Dependency Pair Problem

Dependency Pairs

transform#(s(x)) → transform#(x)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, minus, max, 0, s, cons, gcd

Strategy


Polynomial Interpretation

There are no usable rules

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

transform#(s(x)) → transform#(x)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

minus#(s(x), s(y)) → minus#(x, y)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, 0, max, minus, s, gcd, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

minus#(s(x), s(y)) → minus#(x, y)

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

gcd#(s(x), s(y)) → gcd#(minus(max(x, y), min(x, transform(y))), s(min(x, y)))

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, 0, max, minus, s, gcd, cons

Strategy


Polynomial Interpretation

Improved Usable rules

min(0, y) → 0max(s(x), s(y)) → s(max(x, y))
minus(s(x), s(y)) → s(minus(x, y))min(s(x), s(y)) → s(min(x, y))
max(0, y) → yminus(x, 0) → x
min(x, 0) → 0max(x, 0) → x

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

gcd#(s(x), s(y)) → gcd#(minus(max(x, y), min(x, transform(y))), s(min(x, y)))

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

min#(s(x), s(y)) → min#(x, y)

Rewrite Rules

min(x, 0) → 0min(0, y) → 0
min(s(x), s(y)) → s(min(x, y))max(x, 0) → x
max(0, y) → ymax(s(x), s(y)) → s(max(x, y))
minus(x, 0) → xminus(s(x), s(y)) → s(minus(x, y))
gcd(s(x), s(y)) → gcd(minus(max(x, y), min(x, transform(y))), s(min(x, y)))transform(x) → s(s(x))
transform(cons(x, y)) → cons(cons(x, x), x)transform(cons(x, y)) → y
transform(s(x)) → s(s(transform(x)))cons(x, y) → y
cons(x, cons(y, s(z))) → cons(y, x)cons(cons(x, z), s(y)) → transform(x)

Original Signature

Termination of terms over the following signature is verified: min, transform, 0, max, minus, s, gcd, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

min#(s(x), s(y)) → min#(x, y)