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) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
active(first(0,X)) | → | mark(nil) | (1) |
active(first(s(X),cons(Y,Z))) | → | mark(cons(Y,first(X,Z))) | (2) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
active(from(X)) | → | mark(cons(X,from(s(X)))) | (3) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
cons(X1,mark(X2)) | → | cons(X1,X2) | (17) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
first(mark(X1),X2) | → | first(X1,X2) | (10) |
first(X1,mark(X2)) | → | first(X1,X2) | (11) |
s(mark(X)) | → | s(X) | (14) |
cons(mark(X1),X2) | → | cons(X1,X2) | (16) |
from(mark(X)) | → | from(X) | (20) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
cons(X1,active(X2)) | → | cons(X1,X2) | (19) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
first(active(X1),X2) | → | first(X1,X2) | (12) |
first(X1,active(X2)) | → | first(X1,X2) | (13) |
s(active(X)) | → | s(X) | (15) |
cons(active(X1),X2) | → | cons(X1,X2) | (18) |
from(active(X)) | → | from(X) | (21) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
mark(0) | → | active(0) | (5) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[first(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
mark(first(X1,X2)) | → | active(first(mark(X1),mark(X2))) | (4) |
mark(nil) | → | active(nil) | (6) |
mark(cons(X1,X2)) | → | active(cons(mark(X1),X2)) | (8) |
[mark(x1)] | = |
|
||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||
[active(x1)] | = |
|
mark(from(X)) | → | active(from(mark(X))) | (9) |
[mark(x1)] | = |
|
||||||||||||||||||||||||
[s(x1)] | = |
|
||||||||||||||||||||||||
[active(x1)] | = |
|
mark(s(X)) | → | active(s(mark(X))) | (7) |
There are no rules in the TRS. Hence, it is terminating.