The rewrite relation of the following TRS is considered.
active(first(0,X)) | → | mark(nil) | (1) |
active(first(s(X),cons(Y,Z))) | → | mark(cons(Y,first(X,Z))) | (2) |
active(from(X)) | → | mark(cons(X,from(s(X)))) | (3) |
mark(first(X1,X2)) | → | active(first(mark(X1),mark(X2))) | (4) |
mark(0) | → | active(0) | (5) |
mark(nil) | → | active(nil) | (6) |
mark(s(X)) | → | active(s(mark(X))) | (7) |
mark(cons(X1,X2)) | → | active(cons(mark(X1),X2)) | (8) |
mark(from(X)) | → | active(from(mark(X))) | (9) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
s(mark(X)) | → | s(X) | (14) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
from(mark(X)) | → | from(X) | (20) |
from(active(X)) | → | from(X) | (21) |
active#(first(s(X),cons(Y,Z))) | → | cons#(Y,first(X,Z)) | (22) |
mark#(cons(X1,X2)) | → | mark#(X1) | (23) |
cons#(active(X1),X2) | → | cons#(X1,X2) | (24) |
mark#(from(X)) | → | active#(from(mark(X))) | (25) |
mark#(s(X)) | → | active#(s(mark(X))) | (26) |
first#(X1,mark(X2)) | → | first#(X1,X2) | (27) |
s#(mark(X)) | → | s#(X) | (28) |
active#(from(X)) | → | from#(s(X)) | (29) |
active#(from(X)) | → | cons#(X,from(s(X))) | (30) |
from#(mark(X)) | → | from#(X) | (31) |
mark#(first(X1,X2)) | → | active#(first(mark(X1),mark(X2))) | (32) |
mark#(s(X)) | → | s#(mark(X)) | (33) |
s#(active(X)) | → | s#(X) | (34) |
active#(from(X)) | → | s#(X) | (35) |
from#(active(X)) | → | from#(X) | (36) |
mark#(from(X)) | → | from#(mark(X)) | (37) |
first#(active(X1),X2) | → | first#(X1,X2) | (38) |
mark#(first(X1,X2)) | → | mark#(X1) | (39) |
first#(X1,active(X2)) | → | first#(X1,X2) | (40) |
mark#(cons(X1,X2)) | → | cons#(mark(X1),X2) | (41) |
active#(from(X)) | → | mark#(cons(X,from(s(X)))) | (42) |
mark#(first(X1,X2)) | → | mark#(X2) | (43) |
mark#(cons(X1,X2)) | → | active#(cons(mark(X1),X2)) | (44) |
mark#(0) | → | active#(0) | (45) |
mark#(first(X1,X2)) | → | first#(mark(X1),mark(X2)) | (46) |
cons#(X1,active(X2)) | → | cons#(X1,X2) | (47) |
active#(first(0,X)) | → | mark#(nil) | (48) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (49) |
first#(mark(X1),X2) | → | first#(X1,X2) | (50) |
active#(first(s(X),cons(Y,Z))) | → | first#(X,Z) | (51) |
active#(first(s(X),cons(Y,Z))) | → | mark#(cons(Y,first(X,Z))) | (52) |
mark#(from(X)) | → | mark#(X) | (53) |
mark#(s(X)) | → | mark#(X) | (54) |
mark#(nil) | → | active#(nil) | (55) |
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (56) |
The dependency pairs are split into 5 components.
mark#(s(X)) | → | mark#(X) | (54) |
mark#(first(X1,X2)) | → | active#(first(mark(X1),mark(X2))) | (32) |
mark#(from(X)) | → | mark#(X) | (53) |
active#(first(s(X),cons(Y,Z))) | → | mark#(cons(Y,first(X,Z))) | (52) |
mark#(s(X)) | → | active#(s(mark(X))) | (26) |
mark#(from(X)) | → | active#(from(mark(X))) | (25) |
mark#(cons(X1,X2)) | → | active#(cons(mark(X1),X2)) | (44) |
mark#(first(X1,X2)) | → | mark#(X2) | (43) |
active#(from(X)) | → | mark#(cons(X,from(s(X)))) | (42) |
mark#(first(X1,X2)) | → | mark#(X1) | (39) |
mark#(cons(X1,X2)) | → | mark#(X1) | (23) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 31755 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 19306 |
[from(x1)] | = | x1 + 60388 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 5854 |
[mark(x1)] | = | x1 + 0 |
[first(x1, x2)] | = | x1 + x2 + 8647 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 0 |
[cons(x1, x2)] | = | x1 + 60386 |
[active#(x1)] | = | x1 + 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
mark(first(X1,X2)) | → | active(first(mark(X1),mark(X2))) | (4) |
s(active(X)) | → | s(X) | (15) |
mark(cons(X1,X2)) | → | active(cons(mark(X1),X2)) | (8) |
active(first(0,X)) | → | mark(nil) | (1) |
active(from(X)) | → | mark(cons(X,from(s(X)))) | (3) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
mark(0) | → | active(0) | (5) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
mark(s(X)) | → | active(s(mark(X))) | (7) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
mark(from(X)) | → | active(from(mark(X))) | (9) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
mark(nil) | → | active(nil) | (6) |
active(first(s(X),cons(Y,Z))) | → | mark(cons(Y,first(X,Z))) | (2) |
mark#(s(X)) | → | mark#(X) | (54) |
mark#(first(X1,X2)) | → | active#(first(mark(X1),mark(X2))) | (32) |
mark#(from(X)) | → | mark#(X) | (53) |
active#(first(s(X),cons(Y,Z))) | → | mark#(cons(Y,first(X,Z))) | (52) |
mark#(s(X)) | → | active#(s(mark(X))) | (26) |
mark#(from(X)) | → | active#(from(mark(X))) | (25) |
mark#(cons(X1,X2)) | → | active#(cons(mark(X1),X2)) | (44) |
mark#(first(X1,X2)) | → | mark#(X2) | (43) |
active#(from(X)) | → | mark#(cons(X,from(s(X)))) | (42) |
mark#(first(X1,X2)) | → | mark#(X1) | (39) |
mark#(cons(X1,X2)) | → | mark#(X1) | (23) |
The dependency pairs are split into 0 components.
s#(active(X)) | → | s#(X) | (34) |
s#(mark(X)) | → | s#(X) | (28) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 53255 |
[from(x1)] | = | x1 + 41617 |
[s#(x1)] | = | x1 + 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 1651 |
[mark(x1)] | = | x1 + 0 |
[first(x1, x2)] | = | 27230 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 1 |
[cons(x1, x2)] | = | 2241 |
[active#(x1)] | = | 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
s#(active(X)) | → | s#(X) | (34) |
The dependency pairs are split into 1 component.
s#(mark(X)) | → | s#(X) | (28) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 0 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 0 |
[from(x1)] | = | 1 |
[s#(x1)] | = | x1 + 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 2649 |
[mark(x1)] | = | x1 + 1 |
[first(x1, x2)] | = | x1 + 42199 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 2 |
[cons(x1, x2)] | = | 2 |
[active#(x1)] | = | 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
s#(mark(X)) | → | s#(X) | (28) |
The dependency pairs are split into 0 components.
first#(mark(X1),X2) | → | first#(X1,X2) | (50) |
first#(X1,mark(X2)) | → | first#(X1,X2) | (27) |
first#(X1,active(X2)) | → | first#(X1,X2) | (40) |
first#(active(X1),X2) | → | first#(X1,X2) | (38) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 0 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 0 |
[from(x1)] | = | 1 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | x1 + x2 + 0 |
[nil] | = | 2 |
[mark(x1)] | = | x1 + 1 |
[first(x1, x2)] | = | x1 + 62709 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 2 |
[cons(x1, x2)] | = | 1 |
[active#(x1)] | = | 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
first#(mark(X1),X2) | → | first#(X1,X2) | (50) |
first#(X1,mark(X2)) | → | first#(X1,X2) | (27) |
first#(X1,active(X2)) | → | first#(X1,X2) | (40) |
first#(active(X1),X2) | → | first#(X1,X2) | (38) |
The dependency pairs are split into 0 components.
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (56) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (49) |
cons#(X1,active(X2)) | → | cons#(X1,X2) | (47) |
cons#(active(X1),X2) | → | cons#(X1,X2) | (24) |
[cons#(x1, x2)] | = | x1 + 0 |
[s(x1)] | = | x1 + 0 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 0 |
[from(x1)] | = | 1 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 7453 |
[mark(x1)] | = | x1 + 1 |
[first(x1, x2)] | = | x1 + 14661 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 2 |
[cons(x1, x2)] | = | 1 |
[active#(x1)] | = | 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (49) |
cons#(active(X1),X2) | → | cons#(X1,X2) | (24) |
The dependency pairs are split into 1 component.
cons#(X1,active(X2)) | → | cons#(X1,X2) | (47) |
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (56) |
[cons#(x1, x2)] | = | x2 + 0 |
[s(x1)] | = | x1 + 0 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 0 |
[from(x1)] | = | 27857 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 2684 |
[mark(x1)] | = | x1 + 1 |
[first(x1, x2)] | = | x1 + 21653 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 2 |
[cons(x1, x2)] | = | 1 |
[active#(x1)] | = | 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
cons#(X1,active(X2)) | → | cons#(X1,X2) | (47) |
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (56) |
The dependency pairs are split into 0 components.
from#(mark(X)) | → | from#(X) | (31) |
from#(active(X)) | → | from#(X) | (36) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 0 |
[mark#(x1)] | = | x1 + 1 |
[0] | = | 0 |
[from(x1)] | = | 15261 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 1 |
[mark(x1)] | = | x1 + 1 |
[first(x1, x2)] | = | x1 + 21387 |
[from#(x1)] | = | x1 + 0 |
[active(x1)] | = | x1 + 2 |
[cons(x1, x2)] | = | 1 |
[active#(x1)] | = | 0 |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
s(active(X)) | → | s(X) | (15) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(active(X)) | → | from(X) | (21) |
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
first(mark(X1),X2) | → | first(X1,X2) | (10) |
from(mark(X)) | → | from(X) | (20) |
s(mark(X)) | → | s(X) | (14) |
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
from#(mark(X)) | → | from#(X) | (31) |
from#(active(X)) | → | from#(X) | (36) |
The dependency pairs are split into 0 components.