The rewrite relation of the following TRS is considered.
minus(x,0) | → | x | (1) |
minus(s(x),s(y)) | → | minus(x,y) | (2) |
quot(0,s(y)) | → | 0 | (3) |
quot(s(x),s(y)) | → | s(quot(minus(x,y),s(y))) | (4) |
plus(0,y) | → | y | (5) |
plus(s(x),y) | → | s(plus(x,y)) | (6) |
plus(minus(x,s(0)),minus(y,s(s(z)))) | → | plus(minus(y,s(s(z))),minus(x,s(0))) | (7) |
plus(plus(x,s(0)),plus(y,s(s(z)))) | → | plus(plus(y,s(s(z))),plus(x,s(0))) | (8) |
minus#(s(x),s(y)) | → | minus#(x,y) | (9) |
quot#(s(x),s(y)) | → | quot#(minus(x,y),s(y)) | (10) |
quot#(s(x),s(y)) | → | minus#(x,y) | (11) |
plus#(s(x),y) | → | plus#(x,y) | (12) |
plus#(minus(x,s(0)),minus(y,s(s(z)))) | → | plus#(minus(y,s(s(z))),minus(x,s(0))) | (13) |
plus#(plus(x,s(0)),plus(y,s(s(z)))) | → | plus#(plus(y,s(s(z))),plus(x,s(0))) | (14) |
The dependency pairs are split into 3 components.
quot#(s(x),s(y)) | → | quot#(minus(x,y),s(y)) | (10) |
prec(quot#) | = | 1 | stat(quot#) | = | lex | |
prec(s) | = | 0 | stat(s) | = | lex | |
prec(0) | = | 2 | stat(0) | = | lex |
π(quot#) | = | [2,1] |
π(s) | = | [1] |
π(minus) | = | 1 |
π(0) | = | [] |
minus(x,0) | → | x | (1) |
minus(s(x),s(y)) | → | minus(x,y) | (2) |
quot#(s(x),s(y)) | → | quot#(minus(x,y),s(y)) | (10) |
There are no pairs anymore.
minus#(s(x),s(y)) | → | minus#(x,y) | (9) |
[s(x1)] | = | 1 · x1 |
[minus#(x1, x2)] | = | 1 · x1 + 1 · x2 |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
minus#(s(x),s(y)) | → | minus#(x,y) | (9) |
1 | > | 1 | |
2 | > | 2 |
As there is no critical graph in the transitive closure, there are no infinite chains.
plus#(minus(x,s(0)),minus(y,s(s(z)))) | → | plus#(minus(y,s(s(z))),minus(x,s(0))) | (13) |
plus#(s(x),y) | → | plus#(x,y) | (12) |
plus#(plus(x,s(0)),plus(y,s(s(z)))) | → | plus#(plus(y,s(s(z))),plus(x,s(0))) | (14) |
[plus(x1, x2)] | = | 1 · x1 + 1 · x2 |
[0] | = | 0 |
[s(x1)] | = | 1 · x1 |
[minus(x1, x2)] | = | 1 · x1 + 1 · x2 |
[plus#(x1, x2)] | = | 1 · x1 + 1 · x2 |
plus(0,y) | → | y | (5) |
plus(s(x),y) | → | s(plus(x,y)) | (6) |
plus(plus(x,s(0)),plus(y,s(s(z)))) | → | plus(plus(y,s(s(z))),plus(x,s(0))) | (8) |
plus(minus(x,s(0)),minus(y,s(s(z)))) | → | plus(minus(y,s(s(z))),minus(x,s(0))) | (7) |
minus(s(x),s(y)) | → | minus(x,y) | (2) |
minus(x,0) | → | x | (1) |
[plus(x1, x2)] | = | 2 · x1 + 2 · x2 |
[0] | = | 0 |
[s(x1)] | = | 1 · x1 |
[minus(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[plus#(x1, x2)] | = | 1 · x1 + 1 · x2 |
minus(x,0) | → | x | (1) |
[plus(x1, x2)] | = | 1 · x1 + 1 · x2 |
[0] | = | 2 |
[s(x1)] | = | 1 · x1 |
[minus(x1, x2)] | = | 1 · x1 + 1 · x2 |
[plus#(x1, x2)] | = | 1 · x1 + 1 · x2 |
plus(0,y) | → | y | (5) |
[plus(x1, x2)] | = | 1 + 2 · x1 + 2 · x2 |
[s(x1)] | = | 1 + 1 · x1 |
[0] | = | 0 |
[minus(x1, x2)] | = | 2 · x1 + 1 · x2 |
[plus#(x1, x2)] | = | 1 · x1 + 1 · x2 |
plus#(s(x),y) | → | plus#(x,y) | (12) |
plus(s(x),y) | → | s(plus(x,y)) | (6) |
minus(s(x),s(y)) | → | minus(x,y) | (2) |
The dependency pairs are split into 0 components.