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) |