YES
The TRS could be proven terminating. The proof took 715 ms.
Problem 1 was processed with processor DependencyGraph (106ms). | Problem 2 was processed with processor PolynomialLinearRange4 (51ms). | Problem 3 was processed with processor PolynomialLinearRange4 (190ms). | | Problem 5 was processed with processor DependencyGraph (0ms). | Problem 4 was processed with processor PolynomialLinearRange4 (34ms).
quotrem#(s(x), s(y)) | → | U81#(less(x, y), y, x) | quotrem#(s(x), s(y)) | → | less#(x, y) | |
U81#(false, y, x) | → | U82#(quotrem(minus(x, y), s(y)), y, x) | U81#(false, y, x) | → | quotrem#(minus(x, y), s(y)) | |
minus#(s(x), s(y)) | → | minus#(x, y) | U71#(true, y, x) | → | T(x) | |
U81#(false, y, x) | → | minus#(x, y) | less#(s(x), s(y)) | → | less#(x, y) | |
quotrem#(s(x), s(y)) | → | U71#(less(x, y), y, x) | U81#(false, y, x) | → | T(y) | |
U81#(false, y, x) | → | T(x) |
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) | |
quotrem(0, s(y)) | → | pair(0, 0) | quotrem(s(x), s(y)) | → | U71(less(x, y), y, x) | |
U71(true, y, x) | → | pair(0, s(x)) | quotrem(s(x), s(y)) | → | U81(less(x, y), y, x) | |
U81(false, y, x) | → | U82(quotrem(minus(x, y), s(y)), y, x) | U82(pair(q, r), y, x) | → | pair(s(q), r) |
Termination of terms over the following signature is verified: 0, minus, s, pair, false, true, quotrem, less
Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U81#) = μ(U82#) = μ(U71) = μ(U71#) = μ(s) = μ(U82) = μ(U81) = {1}
μ(minus) = μ(pair) = μ(minus#) = μ(quotrem) = μ(less#) = μ(less) = μ(quotrem#) = {1, 2}
quotrem#(s(x), s(y)) → U81#(less(x, y), y, x) | U81#(false, y, x) → quotrem#(minus(x, y), s(y)) |
minus#(s(x), s(y)) → minus#(x, y) |
less#(s(x), s(y)) → less#(x, y) |
less#(s(x), s(y)) | → | less#(x, y) |
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) | |
quotrem(0, s(y)) | → | pair(0, 0) | quotrem(s(x), s(y)) | → | U71(less(x, y), y, x) | |
U71(true, y, x) | → | pair(0, s(x)) | quotrem(s(x), s(y)) | → | U81(less(x, y), y, x) | |
U81(false, y, x) | → | U82(quotrem(minus(x, y), s(y)), y, x) | U82(pair(q, r), y, x) | → | pair(s(q), r) |
Termination of terms over the following signature is verified: 0, minus, s, pair, false, true, quotrem, less
Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U81#) = μ(U82#) = μ(U71) = μ(U71#) = μ(s) = μ(U82) = μ(U81) = {1}
μ(minus) = μ(pair) = μ(minus#) = μ(quotrem) = μ(less#) = μ(less) = μ(quotrem#) = {1, 2}
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) |
quotrem#(s(x), s(y)) | → | U81#(less(x, y), y, x) | U81#(false, y, x) | → | quotrem#(minus(x, y), s(y)) |
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) | |
quotrem(0, s(y)) | → | pair(0, 0) | quotrem(s(x), s(y)) | → | U71(less(x, y), y, x) | |
U71(true, y, x) | → | pair(0, s(x)) | quotrem(s(x), s(y)) | → | U81(less(x, y), y, x) | |
U81(false, y, x) | → | U82(quotrem(minus(x, y), s(y)), y, x) | U82(pair(q, r), y, x) | → | pair(s(q), r) |
Termination of terms over the following signature is verified: 0, minus, s, pair, false, true, quotrem, less
Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U81#) = μ(U82#) = μ(U71) = μ(U71#) = μ(s) = μ(U82) = μ(U81) = {1}
μ(minus) = μ(pair) = μ(minus#) = μ(quotrem) = μ(less#) = μ(less) = μ(quotrem#) = {1, 2}
minus(s(x), s(y)) | → | minus(x, y) | less(0, s(x)) | → | true | |
U81(false, y, x) | → | U82(quotrem(minus(x, y), s(y)), y, x) | less(x, 0) | → | false | |
quotrem(s(x), s(y)) | → | U71(less(x, y), y, x) | quotrem(s(x), s(y)) | → | U81(less(x, y), y, x) | |
minus(0, s(y)) | → | 0 | quotrem(0, s(y)) | → | pair(0, 0) | |
minus(x, 0) | → | x | U82(pair(q, r), y, x) | → | pair(s(q), r) | |
U71(true, y, x) | → | pair(0, s(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:
quotrem#(s(x), s(y)) | → | U81#(less(x, y), y, x) |
U81#(false, y, x) | → | quotrem#(minus(x, y), s(y)) |
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) | |
quotrem(0, s(y)) | → | pair(0, 0) | quotrem(s(x), s(y)) | → | U71(less(x, y), y, x) | |
U71(true, y, x) | → | pair(0, s(x)) | quotrem(s(x), s(y)) | → | U81(less(x, y), y, x) | |
U81(false, y, x) | → | U82(quotrem(minus(x, y), s(y)), y, x) | U82(pair(q, r), y, x) | → | pair(s(q), r) |
Termination of terms over the following signature is verified: minus, 0, s, pair, true, false, quotrem, less
Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U81#) = μ(U82#) = μ(U71) = μ(U71#) = μ(s) = μ(U82) = μ(U81) = {1}
μ(minus) = μ(pair) = μ(minus#) = μ(quotrem) = μ(less#) = μ(less) = μ(quotrem#) = {1, 2}
minus#(s(x), s(y)) | → | minus#(x, y) |
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) | |
quotrem(0, s(y)) | → | pair(0, 0) | quotrem(s(x), s(y)) | → | U71(less(x, y), y, x) | |
U71(true, y, x) | → | pair(0, s(x)) | quotrem(s(x), s(y)) | → | U81(less(x, y), y, x) | |
U81(false, y, x) | → | U82(quotrem(minus(x, y), s(y)), y, x) | U82(pair(q, r), y, x) | → | pair(s(q), r) |
Termination of terms over the following signature is verified: 0, minus, s, pair, false, true, quotrem, less
Context-sensitive strategy:
μ(true) = μ(T) = μ(0) = μ(false) = ∅
μ(U81#) = μ(U82#) = μ(U71) = μ(U71#) = μ(s) = μ(U82) = μ(U81) = {1}
μ(minus) = μ(pair) = μ(minus#) = μ(quotrem) = μ(less#) = μ(less) = μ(quotrem#) = {1, 2}
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) |