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) |
active(first(X1,X2)) | → | first(active(X1),X2) | (4) |
active(first(X1,X2)) | → | first(X1,active(X2)) | (5) |
active(s(X)) | → | s(active(X)) | (6) |
active(cons(X1,X2)) | → | cons(active(X1),X2) | (7) |
active(from(X)) | → | from(active(X)) | (8) |
first(mark(X1),X2) | → | mark(first(X1,X2)) | (9) |
first(X1,mark(X2)) | → | mark(first(X1,X2)) | (10) |
s(mark(X)) | → | mark(s(X)) | (11) |
cons(mark(X1),X2) | → | mark(cons(X1,X2)) | (12) |
from(mark(X)) | → | mark(from(X)) | (13) |
proper(first(X1,X2)) | → | first(proper(X1),proper(X2)) | (14) |
proper(0) | → | ok(0) | (15) |
proper(nil) | → | ok(nil) | (16) |
proper(s(X)) | → | s(proper(X)) | (17) |
proper(cons(X1,X2)) | → | cons(proper(X1),proper(X2)) | (18) |
proper(from(X)) | → | from(proper(X)) | (19) |
first(ok(X1),ok(X2)) | → | ok(first(X1,X2)) | (20) |
s(ok(X)) | → | ok(s(X)) | (21) |
cons(ok(X1),ok(X2)) | → | ok(cons(X1,X2)) | (22) |
from(ok(X)) | → | ok(from(X)) | (23) |
top(mark(X)) | → | top(proper(X)) | (24) |
top(ok(X)) | → | top(active(X)) | (25) |
active#(first(s(X),cons(Y,Z))) | → | first#(X,Z) | (26) |
active#(from(X)) | → | cons#(X,from(s(X))) | (27) |
active#(first(X1,X2)) | → | active#(X1) | (28) |
proper#(cons(X1,X2)) | → | proper#(X1) | (29) |
proper#(cons(X1,X2)) | → | proper#(X2) | (30) |
first#(mark(X1),X2) | → | first#(X1,X2) | (31) |
proper#(first(X1,X2)) | → | proper#(X1) | (32) |
top#(mark(X)) | → | proper#(X) | (33) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (34) |
proper#(s(X)) | → | s#(proper(X)) | (35) |
cons#(ok(X1),ok(X2)) | → | cons#(X1,X2) | (36) |
proper#(first(X1,X2)) | → | first#(proper(X1),proper(X2)) | (37) |
active#(from(X)) | → | s#(X) | (38) |
proper#(first(X1,X2)) | → | proper#(X2) | (39) |
active#(from(X)) | → | from#(s(X)) | (40) |
proper#(s(X)) | → | proper#(X) | (41) |
first#(X1,mark(X2)) | → | first#(X1,X2) | (42) |
s#(mark(X)) | → | s#(X) | (43) |
from#(ok(X)) | → | from#(X) | (44) |
active#(from(X)) | → | active#(X) | (45) |
from#(mark(X)) | → | from#(X) | (46) |
s#(ok(X)) | → | s#(X) | (47) |
active#(first(X1,X2)) | → | active#(X2) | (48) |
active#(first(X1,X2)) | → | first#(active(X1),X2) | (49) |
proper#(from(X)) | → | proper#(X) | (50) |
first#(ok(X1),ok(X2)) | → | first#(X1,X2) | (51) |
active#(from(X)) | → | from#(active(X)) | (52) |
active#(cons(X1,X2)) | → | active#(X1) | (53) |
proper#(from(X)) | → | from#(proper(X)) | (54) |
proper#(cons(X1,X2)) | → | cons#(proper(X1),proper(X2)) | (55) |
active#(first(X1,X2)) | → | first#(X1,active(X2)) | (56) |
top#(ok(X)) | → | active#(X) | (57) |
active#(s(X)) | → | s#(active(X)) | (58) |
active#(first(s(X),cons(Y,Z))) | → | cons#(Y,first(X,Z)) | (59) |
top#(mark(X)) | → | top#(proper(X)) | (60) |
top#(ok(X)) | → | top#(active(X)) | (61) |
active#(s(X)) | → | active#(X) | (62) |
active#(cons(X1,X2)) | → | cons#(active(X1),X2) | (63) |
The dependency pairs are split into 7 components.
top#(ok(X)) | → | top#(active(X)) | (61) |
top#(mark(X)) | → | top#(proper(X)) | (60) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | x1 + 0 |
[proper(x1)] | = | x1 + 0 |
[ok(x1)] | = | x1 + 0 |
[0] | = | 1 |
[from(x1)] | = | x1 + 43811 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 13224 |
[mark(x1)] | = | x1 + 1 |
[first(x1, x2)] | = | x1 + x2 + 25466 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 0 |
[cons(x1, x2)] | = | x1 + 43810 |
[active#(x1)] | = | 0 |
proper(cons(X1,X2)) | → | cons(proper(X1),proper(X2)) | (18) |
active(first(X1,X2)) | → | first(active(X1),X2) | (4) |
proper(0) | → | ok(0) | (15) |
active(from(X)) | → | from(active(X)) | (8) |
active(first(0,X)) | → | mark(nil) | (1) |
active(from(X)) | → | mark(cons(X,from(s(X)))) | (3) |
proper(nil) | → | ok(nil) | (16) |
s(ok(X)) | → | ok(s(X)) | (21) |
proper(from(X)) | → | from(proper(X)) | (19) |
proper(s(X)) | → | s(proper(X)) | (17) |
cons(ok(X1),ok(X2)) | → | ok(cons(X1,X2)) | (22) |
active(first(X1,X2)) | → | first(X1,active(X2)) | (5) |
first(X1,mark(X2)) | → | mark(first(X1,X2)) | (10) |
active(cons(X1,X2)) | → | cons(active(X1),X2) | (7) |
first(ok(X1),ok(X2)) | → | ok(first(X1,X2)) | (20) |
proper(first(X1,X2)) | → | first(proper(X1),proper(X2)) | (14) |
cons(mark(X1),X2) | → | mark(cons(X1,X2)) | (12) |
from(ok(X)) | → | ok(from(X)) | (23) |
s(mark(X)) | → | mark(s(X)) | (11) |
first(mark(X1),X2) | → | mark(first(X1,X2)) | (9) |
from(mark(X)) | → | mark(from(X)) | (13) |
active(s(X)) | → | s(active(X)) | (6) |
active(first(s(X),cons(Y,Z))) | → | mark(cons(Y,first(X,Z))) | (2) |
top#(mark(X)) | → | top#(proper(X)) | (60) |
The dependency pairs are split into 1 component.
top#(ok(X)) | → | top#(active(X)) | (61) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 0 |
[top(x1)] | = | 0 |
[top#(x1)] | = | x1 + 0 |
[proper(x1)] | = | x1 + 1 |
[ok(x1)] | = | x1 + 1 |
[0] | = | 20367 |
[from(x1)] | = | x1 + 49043 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 1285 |
[mark(x1)] | = | x1 + 0 |
[first(x1, x2)] | = | x1 + 1 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 0 |
[cons(x1, x2)] | = | x2 + 0 |
[active#(x1)] | = | 0 |
proper(cons(X1,X2)) | → | cons(proper(X1),proper(X2)) | (18) |
active(first(X1,X2)) | → | first(active(X1),X2) | (4) |
proper(0) | → | ok(0) | (15) |
active(from(X)) | → | from(active(X)) | (8) |
active(first(0,X)) | → | mark(nil) | (1) |
active(from(X)) | → | mark(cons(X,from(s(X)))) | (3) |
proper(nil) | → | ok(nil) | (16) |
s(ok(X)) | → | ok(s(X)) | (21) |
proper(from(X)) | → | from(proper(X)) | (19) |
proper(s(X)) | → | s(proper(X)) | (17) |
cons(ok(X1),ok(X2)) | → | ok(cons(X1,X2)) | (22) |
active(first(X1,X2)) | → | first(X1,active(X2)) | (5) |
first(X1,mark(X2)) | → | mark(first(X1,X2)) | (10) |
active(cons(X1,X2)) | → | cons(active(X1),X2) | (7) |
first(ok(X1),ok(X2)) | → | ok(first(X1,X2)) | (20) |
proper(first(X1,X2)) | → | first(proper(X1),proper(X2)) | (14) |
cons(mark(X1),X2) | → | mark(cons(X1,X2)) | (12) |
from(ok(X)) | → | ok(from(X)) | (23) |
s(mark(X)) | → | mark(s(X)) | (11) |
first(mark(X1),X2) | → | mark(first(X1,X2)) | (9) |
from(mark(X)) | → | mark(from(X)) | (13) |
active(s(X)) | → | s(active(X)) | (6) |
active(first(s(X),cons(Y,Z))) | → | mark(cons(Y,first(X,Z))) | (2) |
top#(ok(X)) | → | top#(active(X)) | (61) |
The dependency pairs are split into 0 components.
proper#(s(X)) | → | proper#(X) | (41) |
proper#(first(X1,X2)) | → | proper#(X2) | (39) |
proper#(first(X1,X2)) | → | proper#(X1) | (32) |
proper#(from(X)) | → | proper#(X) | (50) |
proper#(cons(X1,X2)) | → | proper#(X2) | (30) |
proper#(cons(X1,X2)) | → | proper#(X1) | (29) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | x1 + 0 |
[ok(x1)] | = | 0 |
[0] | = | 1 |
[from(x1)] | = | x1 + 1 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 4 |
[mark(x1)] | = | x1 + 0 |
[first(x1, x2)] | = | x1 + x2 + 3 |
[proper#(x1)] | = | x1 + 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | 3 |
[cons(x1, x2)] | = | x1 + x2 + 1 |
[active#(x1)] | = | 0 |
proper#(s(X)) | → | proper#(X) | (41) |
proper#(first(X1,X2)) | → | proper#(X2) | (39) |
proper#(first(X1,X2)) | → | proper#(X1) | (32) |
proper#(from(X)) | → | proper#(X) | (50) |
proper#(cons(X1,X2)) | → | proper#(X2) | (30) |
proper#(cons(X1,X2)) | → | proper#(X1) | (29) |
The dependency pairs are split into 0 components.
active#(s(X)) | → | active#(X) | (62) |
active#(cons(X1,X2)) | → | active#(X1) | (53) |
active#(first(X1,X2)) | → | active#(X2) | (48) |
active#(from(X)) | → | active#(X) | (45) |
active#(first(X1,X2)) | → | active#(X1) | (28) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | x1 + 0 |
[ok(x1)] | = | 0 |
[0] | = | 30123 |
[from(x1)] | = | x1 + 1 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 4 |
[mark(x1)] | = | x1 + 0 |
[first(x1, x2)] | = | x1 + x2 + 28874 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | 3 |
[cons(x1, x2)] | = | x1 + x2 + 1 |
[active#(x1)] | = | x1 + 0 |
active#(s(X)) | → | active#(X) | (62) |
active#(cons(X1,X2)) | → | active#(X1) | (53) |
active#(first(X1,X2)) | → | active#(X2) | (48) |
active#(from(X)) | → | active#(X) | (45) |
active#(first(X1,X2)) | → | active#(X1) | (28) |
The dependency pairs are split into 0 components.
s#(ok(X)) | → | s#(X) | (47) |
s#(mark(X)) | → | s#(X) | (43) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | x1 + 10336 |
[ok(x1)] | = | x1 + 1 |
[0] | = | 1 |
[from(x1)] | = | x1 + 0 |
[s#(x1)] | = | x1 + 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 2 |
[mark(x1)] | = | x1 + 0 |
[first(x1, x2)] | = | x2 + 2 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | 1 |
[cons(x1, x2)] | = | x2 + 0 |
[active#(x1)] | = | 0 |
s#(ok(X)) | → | s#(X) | (47) |
The dependency pairs are split into 1 component.
s#(mark(X)) | → | s#(X) | (43) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 27889 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | 27890 |
[ok(x1)] | = | 1 |
[0] | = | 1 |
[from(x1)] | = | 27890 |
[s#(x1)] | = | x1 + 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 21734 |
[mark(x1)] | = | x1 + 62727 |
[first(x1, x2)] | = | x1 + 0 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 34837 |
[cons(x1, x2)] | = | x1 + 0 |
[active#(x1)] | = | 0 |
s#(mark(X)) | → | s#(X) | (43) |
The dependency pairs are split into 0 components.
from#(mark(X)) | → | from#(X) | (46) |
from#(ok(X)) | → | from#(X) | (44) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | 2 |
[ok(x1)] | = | x1 + 1 |
[0] | = | 1 |
[from(x1)] | = | 2 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 1 |
[mark(x1)] | = | x1 + 18626 |
[first(x1, x2)] | = | x1 + 0 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | x1 + 0 |
[active(x1)] | = | x1 + 18624 |
[cons(x1, x2)] | = | x1 + 0 |
[active#(x1)] | = | 0 |
from#(mark(X)) | → | from#(X) | (46) |
from#(ok(X)) | → | from#(X) | (44) |
The dependency pairs are split into 0 components.
cons#(ok(X1),ok(X2)) | → | cons#(X1,X2) | (36) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (34) |
[cons#(x1, x2)] | = | x1 + 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | 2 |
[ok(x1)] | = | x1 + 1 |
[0] | = | 1 |
[from(x1)] | = | 2 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | 0 |
[nil] | = | 1 |
[mark(x1)] | = | x1 + 18629 |
[first(x1, x2)] | = | x1 + 0 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 18627 |
[cons(x1, x2)] | = | x1 + 0 |
[active#(x1)] | = | 0 |
cons#(ok(X1),ok(X2)) | → | cons#(X1,X2) | (36) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (34) |
The dependency pairs are split into 0 components.
first#(ok(X1),ok(X2)) | → | first#(X1,X2) | (51) |
first#(mark(X1),X2) | → | first#(X1,X2) | (31) |
first#(X1,mark(X2)) | → | first#(X1,X2) | (42) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | 2 |
[ok(x1)] | = | x1 + 1 |
[0] | = | 1 |
[from(x1)] | = | 2 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | x1 + 0 |
[nil] | = | 1 |
[mark(x1)] | = | x1 + 3 |
[first(x1, x2)] | = | x1 + 0 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 1 |
[cons(x1, x2)] | = | x1 + 0 |
[active#(x1)] | = | 0 |
first#(ok(X1),ok(X2)) | → | first#(X1,X2) | (51) |
first#(mark(X1),X2) | → | first#(X1,X2) | (31) |
The dependency pairs are split into 1 component.
first#(X1,mark(X2)) | → | first#(X1,X2) | (42) |
[cons#(x1, x2)] | = | 0 |
[s(x1)] | = | x1 + 1 |
[top(x1)] | = | 0 |
[top#(x1)] | = | 0 |
[proper(x1)] | = | 2 |
[ok(x1)] | = | x1 + 1 |
[0] | = | 1 |
[from(x1)] | = | 2 |
[s#(x1)] | = | 0 |
[first#(x1, x2)] | = | x2 + 0 |
[nil] | = | 1 |
[mark(x1)] | = | x1 + 3 |
[first(x1, x2)] | = | x1 + 0 |
[proper#(x1)] | = | 0 |
[from#(x1)] | = | 0 |
[active(x1)] | = | x1 + 1 |
[cons(x1, x2)] | = | x1 + 0 |
[active#(x1)] | = | 0 |
first#(X1,mark(X2)) | → | first#(X1,X2) | (42) |
The dependency pairs are split into 0 components.