The rewrite relation of the following TRS is considered.
active(from(X)) | → | mark(cons(X,from(s(X)))) | (1) |
active(length(nil)) | → | mark(0) | (2) |
active(length(cons(X,Y))) | → | mark(s(length1(Y))) | (3) |
active(length1(X)) | → | mark(length(X)) | (4) |
mark(from(X)) | → | active(from(mark(X))) | (5) |
mark(cons(X1,X2)) | → | active(cons(mark(X1),X2)) | (6) |
mark(s(X)) | → | active(s(mark(X))) | (7) |
mark(length(X)) | → | active(length(X)) | (8) |
mark(nil) | → | active(nil) | (9) |
mark(0) | → | active(0) | (10) |
mark(length1(X)) | → | active(length1(X)) | (11) |
from(mark(X)) | → | from(X) | (12) |
from(active(X)) | → | from(X) | (13) |
cons(mark(X1),X2) | → | cons(X1,X2) | (14) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (15) |
cons(active(X1),X2) | → | cons(X1,X2) | (16) |
cons(X1,active(X2)) | → | cons(X1,X2) | (17) |
s(mark(X)) | → | s(X) | (18) |
s(active(X)) | → | s(X) | (19) |
length(mark(X)) | → | length(X) | (20) |
length(active(X)) | → | length(X) | (21) |
length1(mark(X)) | → | length1(X) | (22) |
length1(active(X)) | → | length1(X) | (23) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
active(length(nil)) | → | mark(0) | (2) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
active(from(X)) | → | mark(cons(X,from(s(X)))) | (1) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
active(length(cons(X,Y))) | → | mark(s(length1(Y))) | (3) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[nil] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
mark(nil) | → | active(nil) | (9) |
mark(length1(X)) | → | active(length1(X)) | (11) |
from(mark(X)) | → | from(X) | (12) |
cons(mark(X1),X2) | → | cons(X1,X2) | (14) |
s(mark(X)) | → | s(X) | (18) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
active(length1(X)) | → | mark(length(X)) | (4) |
length1(mark(X)) | → | length1(X) | (22) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
length(mark(X)) | → | length(X) | (20) |
[mark(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[length1(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[active(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[cons(x1, x2)] | = |
|
||||||||||||||||||||||||||||||||||||
[from(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[0] | = |
|
||||||||||||||||||||||||||||||||||||
[length(x1)] | = |
|
||||||||||||||||||||||||||||||||||||
[s(x1)] | = |
|
mark(length(X)) | → | active(length(X)) | (8) |
[mark(x1)] | = | 8 · x1 + 10 |
[length1(x1)] | = | 2 · x1 + 16 |
[active(x1)] | = | 1 · x1 + 7 |
[cons(x1, x2)] | = | 5 · x1 + 4 · x2 + 15 |
[from(x1)] | = | 19 · x1 + 28 |
[0] | = | 0 |
[length(x1)] | = | 10 · x1 + 1 |
[s(x1)] | = | 16 · x1 + 24 |
mark(from(X)) | → | active(from(mark(X))) | (5) |
mark(cons(X1,X2)) | → | active(cons(mark(X1),X2)) | (6) |
mark(s(X)) | → | active(s(mark(X))) | (7) |
mark(0) | → | active(0) | (10) |
from(active(X)) | → | from(X) | (13) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (15) |
cons(active(X1),X2) | → | cons(X1,X2) | (16) |
cons(X1,active(X2)) | → | cons(X1,X2) | (17) |
s(active(X)) | → | s(X) | (19) |
length(active(X)) | → | length(X) | (21) |
length1(active(X)) | → | length1(X) | (23) |
There are no rules in the TRS. Hence, it is terminating.