The rewrite relation of the following equational TRS is considered.
0(S) | → | S | (1) |
plus(S,x) | → | x | (2) |
plus(0(x),0(y)) | → | 0(plus(x,y)) | (3) |
plus(0(x),1(y)) | → | 1(plus(x,y)) | (4) |
plus(0(x),j(y)) | → | j(plus(x,y)) | (5) |
plus(1(x),1(y)) | → | j(plus(1(S),plus(x,y))) | (6) |
plus(j(x),j(y)) | → | 1(plus(j(S),plus(x,y))) | (7) |
plus(1(x),j(y)) | → | 0(plus(x,y)) | (8) |
opp(S) | → | S | (9) |
opp(0(x)) | → | 0(opp(x)) | (10) |
opp(1(x)) | → | j(opp(x)) | (11) |
opp(j(x)) | → | 1(opp(x)) | (12) |
minus(x,y) | → | plus(opp(y),x) | (13) |
times(S,x) | → | S | (14) |
times(0(x),y) | → | 0(times(x,y)) | (15) |
times(1(x),y) | → | plus(0(times(x,y)),y) | (16) |
times(j(x),y) | → | minus(0(times(x,y)),y) | (17) |
Associative symbols: plus, times
Commutative symbols: plus, times
[plus(x1, x2)] | = | 1 · x2 + 1 · x1 |
[times(x1, x2)] | = | 1 · x2 + 1 · x1 + 2 · x1 · x2 |
[0(x1)] | = | 1 · x1 |
[S] | = | 0 |
[1(x1)] | = | 3 + 1 · x1 |
[j(x1)] | = | 3 + 1 · x1 |
[opp(x1)] | = | 2 · x1 |
[minus(x1, x2)] | = | 3 + 3 · x2 + 1 · x1 |
plus(1(x),j(y)) | → | 0(plus(x,y)) | (8) |
opp(1(x)) | → | j(opp(x)) | (11) |
opp(j(x)) | → | 1(opp(x)) | (12) |
minus(x,y) | → | plus(opp(y),x) | (13) |
times(1(x),y) | → | plus(0(times(x,y)),y) | (16) |
[plus(x1, x2)] | = | 1 · x2 + 1 · x1 |
[times(x1, x2)] | = | 2 + 2 · x2 + 2 · x1 + 1 · x1 · x2 |
[0(x1)] | = | 1 · x1 |
[S] | = | 0 |
[1(x1)] | = | 2 + 1 · x1 |
[j(x1)] | = | 2 + 1 · x1 |
[opp(x1)] | = | 2 · x1 |
[minus(x1, x2)] | = | 1 · x2 + 1 · x1 |
times(S,x) | → | S | (14) |
times(j(x),y) | → | minus(0(times(x,y)),y) | (17) |
[plus(x1, x2)] | = | 1 · x2 + 1 · x1 |
[times(x1, x2)] | = | 1 · x2 + 1 · x1 + 3 · x1 · x2 |
[0(x1)] | = | 1 + 3 · x1 |
[S] | = | 0 |
[1(x1)] | = | 2 · x1 |
[j(x1)] | = | 2 · x1 |
[opp(x1)] | = | 1 + 3 · x1 |
0(S) | → | S | (1) |
plus(0(x),0(y)) | → | 0(plus(x,y)) | (3) |
plus(0(x),1(y)) | → | 1(plus(x,y)) | (4) |
plus(0(x),j(y)) | → | j(plus(x,y)) | (5) |
opp(S) | → | S | (9) |
[plus(x1, x2)] | = | 1 · x2 + 1 · x1 |
[times(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 + 3 · x1 · x2 |
[S] | = | 0 |
[1(x1)] | = | 2 · x1 |
[j(x1)] | = | 2 · x1 |
[opp(x1)] | = | 2 + 2 · x1 · x1 |
[0(x1)] | = | 2 + 1 · x1 |
opp(0(x)) | → | 0(opp(x)) | (10) |
times(0(x),y) | → | 0(times(x,y)) | (15) |
The following set of (strict) dependency pairs is constructed for the TRS.
plus#(1(x),1(y)) | → | plus#(1(S),plus(x,y)) | (25) |
plus#(1(x),1(y)) | → | plus#(x,y) | (26) |
plus#(j(x),j(y)) | → | plus#(j(S),plus(x,y)) | (27) |
plus#(j(x),j(y)) | → | plus#(x,y) | (28) |
plus#(plus(S,x),ext) | → | plus#(x,ext) | (29) |
plus#(plus(1(x),1(y)),ext) | → | plus#(j(plus(1(S),plus(x,y))),ext) | (30) |
plus#(plus(1(x),1(y)),ext) | → | plus#(1(S),plus(x,y)) | (31) |
plus#(plus(1(x),1(y)),ext) | → | plus#(x,y) | (32) |
plus#(plus(j(x),j(y)),ext) | → | plus#(1(plus(j(S),plus(x,y))),ext) | (33) |
plus#(plus(j(x),j(y)),ext) | → | plus#(j(S),plus(x,y)) | (34) |
plus#(plus(j(x),j(y)),ext) | → | plus#(x,y) | (35) |
plus(plus(S,x),ext) | → | plus(x,ext) | (36) |
plus(plus(1(x),1(y)),ext) | → | plus(j(plus(1(S),plus(x,y))),ext) | (37) |
plus(plus(j(x),j(y)),ext) | → | plus(1(plus(j(S),plus(x,y))),ext) | (38) |
[plus#(x1, x2)] | = | 3 · x1 + 3 · x2 |
[plus(x1, x2)] | = | 1 · x1 + 1 · x2 |
[times(x1, x2)] | = | 1 · x1 + 1 · x2 |
[S] | = | 0 |
[1(x1)] | = | 3 + 1 · x1 |
[j(x1)] | = | 3 + 1 · x1 |
plus(S,x) | → | x | (2) |
plus(1(x),1(y)) | → | j(plus(1(S),plus(x,y))) | (6) |
plus(j(x),j(y)) | → | 1(plus(j(S),plus(x,y))) | (7) |
plus(plus(S,x),ext) | → | plus(x,ext) | (36) |
plus(plus(1(x),1(y)),ext) | → | plus(j(plus(1(S),plus(x,y))),ext) | (37) |
plus(plus(j(x),j(y)),ext) | → | plus(1(plus(j(S),plus(x,y))),ext) | (38) |
plus(x,y) | → | plus(y,x) | (18) |
times(x,y) | → | times(y,x) | (19) |
plus(plus(x,y),z) | → | plus(x,plus(y,z)) | (20) |
times(times(x,y),z) | → | times(x,times(y,z)) | (21) |
plus#(1(x),1(y)) | → | plus#(1(S),plus(x,y)) | (25) |
plus#(1(x),1(y)) | → | plus#(x,y) | (26) |
plus#(j(x),j(y)) | → | plus#(j(S),plus(x,y)) | (27) |
plus#(j(x),j(y)) | → | plus#(x,y) | (28) |
plus#(plus(1(x),1(y)),ext) | → | plus#(1(S),plus(x,y)) | (31) |
plus#(plus(1(x),1(y)),ext) | → | plus#(x,y) | (32) |
plus#(plus(j(x),j(y)),ext) | → | plus#(j(S),plus(x,y)) | (34) |
plus#(plus(j(x),j(y)),ext) | → | plus#(x,y) | (35) |
[plus#(x1, x2)] | = | 3 · x1 + 3 · x2 |
[plus(x1, x2)] | = | 3 + 1 · x1 + 1 · x2 |
[S] | = | 0 |
[1(x1)] | = | 0 |
[j(x1)] | = | 3 |
plus(j(x),j(y)) | → | 1(plus(j(S),plus(x,y))) | (7) |
plus(plus(1(x),1(y)),ext) | → | plus(j(plus(1(S),plus(x,y))),ext) | (37) |
plus(1(x),1(y)) | → | j(plus(1(S),plus(x,y))) | (6) |
plus(plus(j(x),j(y)),ext) | → | plus(1(plus(j(S),plus(x,y))),ext) | (38) |
plus(S,x) | → | x | (2) |
plus(plus(S,x),ext) | → | plus(x,ext) | (36) |
plus(plus(x,y),z) | → | plus(x,plus(y,z)) | (20) |
plus(x,y) | → | plus(y,x) | (18) |
plus#(plus(S,x),ext) | → | plus#(x,ext) | (29) |
plus#(plus(j(x),j(y)),ext) | → | plus#(1(plus(j(S),plus(x,y))),ext) | (33) |
plus#(plus(x,y),z) | → | plus#(y,z) | (24) |
[plus#(x1, x2)] | = | 1 · x1 + 1 · x2 |
[plus(x1, x2)] | = | 1 · x1 + 1 · x2 |
[1(x1)] | = | 2 |
[j(x1)] | = | 2 |
[S] | = | 0 |
plus(j(x),j(y)) | → | 1(plus(j(S),plus(x,y))) | (7) |
plus(plus(1(x),1(y)),ext) | → | plus(j(plus(1(S),plus(x,y))),ext) | (37) |
plus(1(x),1(y)) | → | j(plus(1(S),plus(x,y))) | (6) |
plus(plus(j(x),j(y)),ext) | → | plus(1(plus(j(S),plus(x,y))),ext) | (38) |
plus(S,x) | → | x | (2) |
plus(plus(S,x),ext) | → | plus(x,ext) | (36) |
plus(plus(x,y),z) | → | plus(x,plus(y,z)) | (20) |
plus(x,y) | → | plus(y,x) | (18) |
plus#(plus(1(x),1(y)),ext) | → | plus#(j(plus(1(S),plus(x,y))),ext) | (30) |