The rewrite relation of the following TRS is considered.
rev(nil) | → | nil | (1) |
rev(rev(x)) | → | x | (2) |
rev(++(x,y)) | → | ++(rev(y),rev(x)) | (3) |
++(nil,y) | → | y | (4) |
++(x,nil) | → | x | (5) |
++(.(x,y),z) | → | .(x,++(y,z)) | (6) |
++(x,++(y,z)) | → | ++(++(x,y),z) | (7) |
make(x) | → | .(x,nil) | (8) |
++#(x,++(y,z)) | → | ++#(++(x,y),z) | (9) |
rev#(++(x,y)) | → | rev#(x) | (10) |
rev#(++(x,y)) | → | rev#(y) | (11) |
++#(x,++(y,z)) | → | ++#(x,y) | (12) |
++#(.(x,y),z) | → | ++#(y,z) | (13) |
rev#(++(x,y)) | → | ++#(rev(y),rev(x)) | (14) |
The dependency pairs are split into 2 components.
rev#(++(x,y)) | → | rev#(x) | (10) |
rev#(++(x,y)) | → | rev#(y) | (11) |
[rev#(x1)] | = | x1 + 0 |
[++(x1, x2)] | = | x1 + x2 + 1 |
[make(x1)] | = | 0 |
[++#(x1, x2)] | = | 0 |
[nil] | = | 0 |
[rev(x1)] | = | 0 |
[.(x1, x2)] | = | 0 |
[make#(x1)] | = | 0 |
rev#(++(x,y)) | → | rev#(x) | (10) |
rev#(++(x,y)) | → | rev#(y) | (11) |
The dependency pairs are split into 0 components.
++#(.(x,y),z) | → | ++#(y,z) | (13) |
++#(x,++(y,z)) | → | ++#(x,y) | (12) |
++#(x,++(y,z)) | → | ++#(++(x,y),z) | (9) |
[rev#(x1)] | = | 0 |
[++(x1, x2)] | = | x1 + x2 + 1 |
[make(x1)] | = | 0 |
[++#(x1, x2)] | = | x2 + 0 |
[nil] | = | 1 |
[rev(x1)] | = | 0 |
[.(x1, x2)] | = | x2 + 1 |
[make#(x1)] | = | 0 |
++#(x,++(y,z)) | → | ++#(x,y) | (12) |
++#(x,++(y,z)) | → | ++#(++(x,y),z) | (9) |
The dependency pairs are split into 1 component.
++#(.(x,y),z) | → | ++#(y,z) | (13) |
[rev#(x1)] | = | 0 |
[++(x1, x2)] | = | x1 + x2 + 1 |
[make(x1)] | = | 0 |
[++#(x1, x2)] | = | x1 + 0 |
[nil] | = | 10157 |
[rev(x1)] | = | 0 |
[.(x1, x2)] | = | x2 + 21239 |
[make#(x1)] | = | 0 |
++(nil,y) | → | y | (4) |
++(x,nil) | → | x | (5) |
++(x,++(y,z)) | → | ++(++(x,y),z) | (7) |
++(.(x,y),z) | → | .(x,++(y,z)) | (6) |
++#(.(x,y),z) | → | ++#(y,z) | (13) |
The dependency pairs are split into 0 components.