Termination of the rewrite relation of the following TRS is considered.
minus(x,0) | → | x |
minus(s(x),s(y)) | → | minus(x,y) |
divide(x,y) | → | div(x,y,0) |
div(0,s(y),z) | → | z |
div(s(x),s(y),z) | → | div(minus(s(x),s(y)),s(y),s(z)) |
divide#(x,y) | → | div#(x,y,0) |
div#(s(x),s(y),z) | → | div#(minus(s(x),s(y)),s(y),s(z)) |
div#(s(x),s(y),z) | → | minus#(s(x),s(y)) |
minus#(s(x),s(y)) | → | minus#(x,y) |
The dependency pairs are split into 2 components.
div#(s(x),s(y),z) | → | div#(minus(s(x),s(y)),s(y),s(z)) |
We uncurry the tuple-symbol div# in combination with the following symbol map which also determines the applicative arities of these symbols.
s(x1) | is mapped to | s(x1), | div-s#(x1, x2, x3) |
minus(x1, x2) | is mapped to | minus(x1, x2), | div-minus#(x1,...,x4) |
div(x1, x2, x3) | is mapped to | div(x1, x2, x3) | |
divide(x1, x2) | is mapped to | divide(x1, x2) | |
0 | is mapped to | 0 |
div#(minus(x,0),z,u) | → | div#(x,z,u) |
div#(minus(s(x),s(y)),z,u) | → | div#(minus(x,y),z,u) |
div-s#(x,s(y),z) | → | div-minus#(s(x),s(y),s(y),s(z)) |
div#(s(x),y,z) | → | div-s#(x,y,z) |
div#(minus(x,y),z,u) | → | div-minus#(x,y,z,u) |
div-minus#(x,0,z,u) | → | div#(x,z,u) |
div-minus#(s(x),s(y),z,u) | → | div-minus#(x,y,z,u) |
minus(x,0) | → | x |
minus(s(x),s(y)) | → | minus(x,y) |
divide(x,y) | → | div(x,y,0) |
div(0,s(y),z) | → | z |
div(s(x),s(y),z) | → | div(minus(s(x),s(y)),s(y),s(z)) |
[minus(x1, x2)] | = | x1 + 1 |
[div-s#(x1, x2, x3)] | = | x1 + 1 |
[s(x1)] | = | x1 + 1 |
[div-minus#(x1,...,x4)] | = | x1 |
[div#(x1, x2, x3)] | = | x1 |
div-s#(x,s(y),z) | → | div-minus#(s(x),s(y),s(y),s(z)) |
div#(s(x),y,z) | → | div-s#(x,y,z) |
div-minus#(x,0,z,u) | → | div#(x,z,u) |
The dependency pairs are split into 0 components.
minus#(s(x),s(y)) | → | minus#(x,y) |
There are no pairs anymore.