YES
The TRS could be proven terminating. The proof took 131 ms.
Problem 1 was processed with processor SubtermCriterion (1ms). | Problem 2 was processed with processor SubtermCriterion (0ms). | | Problem 3 was processed with processor PolynomialLinearRange4iUR (86ms).
if#(if(x, y, z), u, v) | → | if#(y, u, v) | if#(x, if(x, y, z), z) | → | if#(x, y, z) | |
if#(if(x, y, z), u, v) | → | if#(z, u, v) | if#(if(x, y, z), u, v) | → | if#(x, if(y, u, v), if(z, u, v)) | |
if#(x, y, if(x, y, z)) | → | if#(x, y, z) |
if(true, x, y) | → | x | if(false, x, y) | → | y | |
if(x, y, y) | → | y | if(if(x, y, z), u, v) | → | if(x, if(y, u, v), if(z, u, v)) | |
if(x, if(x, y, z), z) | → | if(x, y, z) | if(x, y, if(x, y, z)) | → | if(x, y, z) |
Termination of terms over the following signature is verified: if, true, false
The following projection was used:
Thus, the following dependency pairs are removed:
if#(if(x, y, z), u, v) | → | if#(y, u, v) | if#(if(x, y, z), u, v) | → | if#(z, u, v) | |
if#(if(x, y, z), u, v) | → | if#(x, if(y, u, v), if(z, u, v)) |
if#(x, if(x, y, z), z) | → | if#(x, y, z) | if#(x, y, if(x, y, z)) | → | if#(x, y, z) |
if(true, x, y) | → | x | if(false, x, y) | → | y | |
if(x, y, y) | → | y | if(if(x, y, z), u, v) | → | if(x, if(y, u, v), if(z, u, v)) | |
if(x, if(x, y, z), z) | → | if(x, y, z) | if(x, y, if(x, y, z)) | → | if(x, y, z) |
Termination of terms over the following signature is verified: if, false, true
The following projection was used:
Thus, the following dependency pairs are removed:
if#(x, if(x, y, z), z) | → | if#(x, y, z) |
if#(x, y, if(x, y, z)) | → | if#(x, y, z) |
if(true, x, y) | → | x | if(false, x, y) | → | y | |
if(x, y, y) | → | y | if(if(x, y, z), u, v) | → | if(x, if(y, u, v), if(z, u, v)) | |
if(x, if(x, y, z), z) | → | if(x, y, z) | if(x, y, if(x, y, z)) | → | if(x, y, z) |
Termination of terms over the following signature is verified: if, true, false
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
if#(x, y, if(x, y, z)) | → | if#(x, y, z) |