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) | → | false | | less(0, s(x)) | → | true |
less(s(x), s(y)) | → | less(x, y) | | minus(0, s(y)) | → | 0 |
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
gcd(x, x) | → | x | | gcd(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) | → | false | | less(0, s(x)) | → | true |
less(s(x), s(y)) | → | less(x, y) | | minus(0, s(y)) | → | 0 |
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
gcd(x, x) | → | x | | gcd(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
- 0: 0
- U101(x,y,z): 0
- U91(x,y,z): 0
- false: 0
- gcd(x,y): 0
- less(x,y): 0
- minus(x,y): 0
- minus#(x,y): x
- s(x): 2x + 1
- true: 0
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) | → | false | | less(0, s(x)) | → | true |
less(s(x), s(y)) | → | less(x, y) | | minus(0, s(y)) | → | 0 |
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
gcd(x, x) | → | x | | gcd(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
- 0: 0
- U101(x,y,z): 0
- U91(x,y,z): 0
- false: 0
- gcd(x,y): 0
- less(x,y): 0
- less#(x,y): y + 1
- minus(x,y): 0
- s(x): 2x + 2
- true: 0
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) | → | false | | less(0, s(x)) | → | true |
less(s(x), s(y)) | → | less(x, y) | | minus(0, s(y)) | → | 0 |
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
gcd(x, x) | → | x | | gcd(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
- 0: 1
- U101(x,y,z): 3z + 3y + 3
- U101#(x,y,z): 3z + y + x + 1
- U91(x,y,z): 3z + 3y + 3
- U91#(x,y,z): 2z + 3y + 2
- false: 1
- gcd(x,y): y + x + 1
- gcd#(x,y): y + x
- less(x,y): 2y
- minus(x,y): x + 1
- s(x): 3x + 1
- true: 2
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) | → | x | | less(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) | → | false | | less(0, s(x)) | → | true |
less(s(x), s(y)) | → | less(x, y) | | minus(0, s(y)) | → | 0 |
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
gcd(x, x) | → | x | | gcd(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
- 0: 1
- U101(x,y,z): z + y + 1
- U91(x,y,z): z + y + 2
- U91#(x,y,z): 2z + 2
- false: 0
- gcd(x,y): y + x
- gcd#(x,y): 2x
- less(x,y): 0
- minus(x,y): x
- s(x): x + 1
- true: 0
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) | → | x | | less(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) | → | false | | less(0, s(x)) | → | true |
less(s(x), s(y)) | → | less(x, y) | | minus(0, s(y)) | → | 0 |
minus(x, 0) | → | x | | minus(s(x), s(y)) | → | minus(x, y) |
gcd(x, x) | → | x | | gcd(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!