The rewrite relation of the following TRS is considered.
rev(nil) | → | nil | (1) |
rev(cons(x,l)) | → | cons(rev1(x,l),rev2(x,l)) | (2) |
rev1(0,nil) | → | 0 | (3) |
rev1(s(x),nil) | → | s(x) | (4) |
rev1(x,cons(y,l)) | → | rev1(y,l) | (5) |
rev2(x,nil) | → | nil | (6) |
rev2(x,cons(y,l)) | → | rev(cons(x,rev2(y,l))) | (7) |
rev#(cons(x,l)) | → | rev2#(x,l) | (8) |
rev1#(x,cons(y,l)) | → | rev1#(y,l) | (9) |
rev2#(x,cons(y,l)) | → | rev#(cons(x,rev2(y,l))) | (10) |
rev#(cons(x,l)) | → | rev1#(x,l) | (11) |
rev2#(x,cons(y,l)) | → | rev2#(y,l) | (12) |
The dependency pairs are split into 2 components.
rev2#(x,cons(y,l)) | → | rev2#(y,l) | (12) |
rev2#(x,cons(y,l)) | → | rev#(cons(x,rev2(y,l))) | (10) |
rev#(cons(x,l)) | → | rev2#(x,l) | (8) |
[rev#(x1)] | = | x1 + 0 |
[s(x1)] | = | 3 |
[rev1(x1, x2)] | = | x2 + 1 |
[rev1#(x1, x2)] | = | 0 |
[rev2#(x1, x2)] | = | x2 + 1 |
[0] | = | 3 |
[nil] | = | 1 |
[rev(x1)] | = | x1 + 0 |
[cons(x1, x2)] | = | x2 + 8857 |
[rev2(x1, x2)] | = | x2 + 0 |
rev(nil) | → | nil | (1) |
rev2(x,cons(y,l)) | → | rev(cons(x,rev2(y,l))) | (7) |
rev2(x,nil) | → | nil | (6) |
rev(cons(x,l)) | → | cons(rev1(x,l),rev2(x,l)) | (2) |
rev2#(x,cons(y,l)) | → | rev2#(y,l) | (12) |
rev2#(x,cons(y,l)) | → | rev#(cons(x,rev2(y,l))) | (10) |
rev#(cons(x,l)) | → | rev2#(x,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)] | = | 3 |
[rev1(x1, x2)] | = | x2 + 1 |
[rev1#(x1, x2)] | = | x2 + 0 |
[rev2#(x1, x2)] | = | 1 |
[0] | = | 3 |
[nil] | = | 1 |
[rev(x1)] | = | x1 + 0 |
[cons(x1, x2)] | = | x2 + 1 |
[rev2(x1, x2)] | = | x2 + 0 |
rev(nil) | → | nil | (1) |
rev2(x,cons(y,l)) | → | rev(cons(x,rev2(y,l))) | (7) |
rev2(x,nil) | → | nil | (6) |
rev(cons(x,l)) | → | cons(rev1(x,l),rev2(x,l)) | (2) |
rev1#(x,cons(y,l)) | → | rev1#(y,l) | (9) |
The dependency pairs are split into 0 components.