YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (139ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (46ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (34ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4 (270ms).
 |    | – Problem 5 was processed with processor PolynomialLinearRange4 (189ms).
 |    |    | – Problem 6 was processed with processor DependencyGraph (17ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U101#(true, y, x) → gcd#(s(x), minus(y, x))gcd#(s(x), s(y)) → U101#(less(x, y), y, x)
U101#(true, y, x) → T(x)U91#(true, y, x) → T(x)
U91#(true, y, x) → minus#(x, y)gcd#(s(x), s(y)) → less#(x, y)
U91#(true, y, x) → T(y)gcd#(s(x), s(y)) → U91#(less(y, x), y, x)
minus#(s(x), s(y)) → minus#(x, y)less#(s(x), s(y)) → less#(x, y)
gcd#(s(x), s(y)) → less#(y, x)U101#(true, y, x) → T(y)
U101#(true, y, x) → minus#(y, x)U91#(true, y, x) → gcd#(minus(x, y), s(y))

Rewrite Rules

less(x, 0) → falseless(0, s(x)) → true
less(s(x), s(y)) → less(x, y)minus(0, s(y)) → 0
minus(x, 0) → xminus(s(x), s(y)) → minus(x, y)
gcd(x, x) → xgcd(s(x), 0) → s(x)
gcd(0, s(y)) → s(y)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(s(x), s(y)) → U101(less(x, y), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))

Original Signature

Termination of terms over the following signature is verified: 0, minus, s, false, true, less, gcd

Strategy

Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U101#) = μ(U91#) = μ(s) = μ(U91) = μ(U101) = {1}
μ(minus) = μ(minus#) = μ(less#) = μ(gcd#) = μ(less) = μ(gcd) = {1, 2}


The following SCCs where found

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

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

U101#(true, y, x) → gcd#(s(x), minus(y, x))gcd#(s(x), s(y)) → U101#(less(x, y), y, x)
gcd#(s(x), s(y)) → U91#(less(y, x), y, x)U91#(true, y, x) → gcd#(minus(x, y), s(y))

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

less(x, 0) → falseless(0, s(x)) → true
less(s(x), s(y)) → less(x, y)minus(0, s(y)) → 0
minus(x, 0) → xminus(s(x), s(y)) → minus(x, y)
gcd(x, x) → xgcd(s(x), 0) → s(x)
gcd(0, s(y)) → s(y)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(s(x), s(y)) → U101(less(x, y), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))

Original Signature

Termination of terms over the following signature is verified: 0, minus, s, false, true, less, gcd

Strategy

Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U101#) = μ(U91#) = μ(s) = μ(U91) = μ(U101) = {1}
μ(minus) = μ(minus#) = μ(less#) = μ(gcd#) = μ(less) = μ(gcd) = {1, 2}


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:

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

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

less(x, 0) → falseless(0, s(x)) → true
less(s(x), s(y)) → less(x, y)minus(0, s(y)) → 0
minus(x, 0) → xminus(s(x), s(y)) → minus(x, y)
gcd(x, x) → xgcd(s(x), 0) → s(x)
gcd(0, s(y)) → s(y)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(s(x), s(y)) → U101(less(x, y), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))

Original Signature

Termination of terms over the following signature is verified: 0, minus, s, false, true, less, gcd

Strategy

Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U101#) = μ(U91#) = μ(s) = μ(U91) = μ(U101) = {1}
μ(minus) = μ(minus#) = μ(less#) = μ(gcd#) = μ(less) = μ(gcd) = {1, 2}


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:

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

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U101#(true, y, x) → gcd#(s(x), minus(y, x))gcd#(s(x), s(y)) → U101#(less(x, y), y, x)
gcd#(s(x), s(y)) → U91#(less(y, x), y, x)U91#(true, y, x) → gcd#(minus(x, y), s(y))

Rewrite Rules

less(x, 0) → falseless(0, s(x)) → true
less(s(x), s(y)) → less(x, y)minus(0, s(y)) → 0
minus(x, 0) → xminus(s(x), s(y)) → minus(x, y)
gcd(x, x) → xgcd(s(x), 0) → s(x)
gcd(0, s(y)) → s(y)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(s(x), s(y)) → U101(less(x, y), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))

Original Signature

Termination of terms over the following signature is verified: 0, minus, s, false, true, less, gcd

Strategy

Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U101#) = μ(U91#) = μ(s) = μ(U91) = μ(U101) = {1}
μ(minus) = μ(minus#) = μ(less#) = μ(gcd#) = μ(less) = μ(gcd) = {1, 2}


Polynomial Interpretation

Standard Usable rules

minus(s(x), s(y)) → minus(x, y)less(x, 0) → false
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(0, s(y)) → s(y)
gcd(s(x), s(y)) → U101(less(x, y), y, x)minus(0, s(y)) → 0
minus(x, 0) → xless(0, s(x)) → true
gcd(s(x), 0) → s(x)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))gcd(x, x) → x
less(s(x), s(y)) → less(x, y)

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

U101#(true, y, x) → gcd#(s(x), minus(y, x))gcd#(s(x), s(y)) → U101#(less(x, y), y, x)

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

gcd#(s(x), s(y)) → U91#(less(y, x), y, x)U91#(true, y, x) → gcd#(minus(x, y), s(y))

Rewrite Rules

less(x, 0) → falseless(0, s(x)) → true
less(s(x), s(y)) → less(x, y)minus(0, s(y)) → 0
minus(x, 0) → xminus(s(x), s(y)) → minus(x, y)
gcd(x, x) → xgcd(s(x), 0) → s(x)
gcd(0, s(y)) → s(y)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(s(x), s(y)) → U101(less(x, y), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))

Original Signature

Termination of terms over the following signature is verified: minus, 0, s, true, false, less, gcd

Strategy

Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U101#) = μ(U91#) = μ(s) = μ(U91) = μ(U101) = {1}
μ(minus) = μ(minus#) = μ(less#) = μ(gcd#) = μ(less) = μ(gcd) = {1, 2}


Polynomial Interpretation

Standard Usable rules

minus(s(x), s(y)) → minus(x, y)less(x, 0) → false
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(0, s(y)) → s(y)
gcd(s(x), s(y)) → U101(less(x, y), y, x)minus(0, s(y)) → 0
minus(x, 0) → xless(0, s(x)) → true
gcd(s(x), 0) → s(x)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))gcd(x, x) → x
less(s(x), s(y)) → less(x, y)

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

U91#(true, y, x) → gcd#(minus(x, y), s(y))

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

gcd#(s(x), s(y)) → U91#(less(y, x), y, x)

Rewrite Rules

less(x, 0) → falseless(0, s(x)) → true
less(s(x), s(y)) → less(x, y)minus(0, s(y)) → 0
minus(x, 0) → xminus(s(x), s(y)) → minus(x, y)
gcd(x, x) → xgcd(s(x), 0) → s(x)
gcd(0, s(y)) → s(y)gcd(s(x), s(y)) → U91(less(y, x), y, x)
U91(true, y, x) → gcd(minus(x, y), s(y))gcd(s(x), s(y)) → U101(less(x, y), y, x)
U101(true, y, x) → gcd(s(x), minus(y, x))

Original Signature

Termination of terms over the following signature is verified: 0, minus, s, false, true, less, gcd

Strategy

Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U101#) = μ(U91#) = μ(s) = μ(U91) = μ(U101) = {1}
μ(minus) = μ(minus#) = μ(less#) = μ(gcd#) = μ(less) = μ(gcd) = {1, 2}


There are no SCCs!