The rewrite relation of the following TRS is considered.
| rev1(0,nil) | → | 0 | (1) |
| rev1(s(X),nil) | → | s(X) | (2) |
| rev1(X,cons(Y,L)) | → | rev1(Y,L) | (3) |
| rev(nil) | → | nil | (4) |
| rev(cons(X,L)) | → | cons(rev1(X,L),rev2(X,L)) | (5) |
| rev2(X,nil) | → | nil | (6) |
| rev2(X,cons(Y,L)) | → | rev(cons(X,rev(rev2(Y,L)))) | (7) |
| rev2#(X,cons(Y,L)) | → | rev#(rev2(Y,L)) | (8) |
| rev1#(X,cons(Y,L)) | → | rev1#(Y,L) | (9) |
| rev#(cons(X,L)) | → | rev2#(X,L) | (10) |
| rev2#(X,cons(Y,L)) | → | rev2#(Y,L) | (11) |
| rev2#(X,cons(Y,L)) | → | rev#(cons(X,rev(rev2(Y,L)))) | (12) |
| rev#(cons(X,L)) | → | rev1#(X,L) | (13) |
The dependency pairs are split into 2 components.
| rev2#(X,cons(Y,L)) | → | rev#(cons(X,rev(rev2(Y,L)))) | (12) |
| rev2#(X,cons(Y,L)) | → | rev2#(Y,L) | (11) |
| rev#(cons(X,L)) | → | rev2#(X,L) | (10) |
| rev2#(X,cons(Y,L)) | → | rev#(rev2(Y,L)) | (8) |
| [rev#(x1)] | = | x1 + 0 |
| [s(x1)] | = | x1 + 0 |
| [rev1(x1, x2)] | = | 1 |
| [rev1#(x1, x2)] | = | 0 |
| [rev2#(x1, x2)] | = | x2 + 1 |
| [0] | = | 0 |
| [nil] | = | 1 |
| [rev(x1)] | = | x1 + 0 |
| [cons(x1, x2)] | = | x2 + 10452 |
| [rev2(x1, x2)] | = | x2 + 0 |
| rev(nil) | → | nil | (4) |
| rev(cons(X,L)) | → | cons(rev1(X,L),rev2(X,L)) | (5) |
| rev2(X,cons(Y,L)) | → | rev(cons(X,rev(rev2(Y,L)))) | (7) |
| rev2(X,nil) | → | nil | (6) |
| rev2#(X,cons(Y,L)) | → | rev#(cons(X,rev(rev2(Y,L)))) | (12) |
| rev2#(X,cons(Y,L)) | → | rev2#(Y,L) | (11) |
| rev#(cons(X,L)) | → | rev2#(X,L) | (10) |
| rev2#(X,cons(Y,L)) | → | rev#(rev2(Y,L)) | (8) |
The dependency pairs are split into 0 components.
| rev1#(X,cons(Y,L)) | → | rev1#(Y,L) | (9) |
| [rev#(x1)] | = | x1 + 0 |
| [s(x1)] | = | x1 + 0 |
| [rev1(x1, x2)] | = | 1 |
| [rev1#(x1, x2)] | = | x2 + 0 |
| [rev2#(x1, x2)] | = | 1 |
| [0] | = | 0 |
| [nil] | = | 1 |
| [rev(x1)] | = | x1 + 0 |
| [cons(x1, x2)] | = | x2 + 1 |
| [rev2(x1, x2)] | = | x2 + 0 |
| rev(nil) | → | nil | (4) |
| rev(cons(X,L)) | → | cons(rev1(X,L),rev2(X,L)) | (5) |
| rev2(X,cons(Y,L)) | → | rev(cons(X,rev(rev2(Y,L)))) | (7) |
| rev2(X,nil) | → | nil | (6) |
| rev1#(X,cons(Y,L)) | → | rev1#(Y,L) | (9) |
The dependency pairs are split into 0 components.