The rewrite relation of the following TRS is considered.
active(f(x)) | → | mark(f(f(x))) | (1) |
chk(no(f(x))) | → | f(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (2) |
mat(f(x),f(y)) | → | f(mat(x,y)) | (3) |
chk(no(c)) | → | active(c) | (4) |
mat(f(x),c) | → | no(c) | (5) |
f(active(x)) | → | active(f(x)) | (6) |
f(no(x)) | → | no(f(x)) | (7) |
f(mark(x)) | → | mark(f(x)) | (8) |
tp(mark(x)) | → | tp(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (9) |
active#(f(x)) | → | f#(f(x)) | (10) |
chk#(no(f(x))) | → | f#(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (11) |
chk#(no(f(x))) | → | chk#(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x)) | (12) |
chk#(no(f(x))) | → | mat#(f(f(f(f(f(f(f(f(f(f(X)))))))))),x) | (13) |
chk#(no(f(x))) | → | f#(f(f(f(f(f(f(f(f(f(X)))))))))) | (14) |
chk#(no(f(x))) | → | f#(f(f(f(f(f(f(f(f(X))))))))) | (15) |
chk#(no(f(x))) | → | f#(f(f(f(f(f(f(f(X)))))))) | (16) |
chk#(no(f(x))) | → | f#(f(f(f(f(f(f(X))))))) | (17) |
chk#(no(f(x))) | → | f#(f(f(f(f(f(X)))))) | (18) |
chk#(no(f(x))) | → | f#(f(f(f(f(X))))) | (19) |
chk#(no(f(x))) | → | f#(f(f(f(X)))) | (20) |
chk#(no(f(x))) | → | f#(f(f(X))) | (21) |
chk#(no(f(x))) | → | f#(f(X)) | (22) |
chk#(no(f(x))) | → | f#(X) | (23) |
mat#(f(x),f(y)) | → | f#(mat(x,y)) | (24) |
mat#(f(x),f(y)) | → | mat#(x,y) | (25) |
chk#(no(c)) | → | active#(c) | (26) |
f#(active(x)) | → | active#(f(x)) | (27) |
f#(active(x)) | → | f#(x) | (28) |
f#(no(x)) | → | f#(x) | (29) |
f#(mark(x)) | → | f#(x) | (30) |
tp#(mark(x)) | → | tp#(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (31) |
tp#(mark(x)) | → | chk#(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x)) | (32) |
tp#(mark(x)) | → | mat#(f(f(f(f(f(f(f(f(f(f(X)))))))))),x) | (33) |
tp#(mark(x)) | → | f#(f(f(f(f(f(f(f(f(f(X)))))))))) | (34) |
tp#(mark(x)) | → | f#(f(f(f(f(f(f(f(f(X))))))))) | (35) |
tp#(mark(x)) | → | f#(f(f(f(f(f(f(f(X)))))))) | (36) |
tp#(mark(x)) | → | f#(f(f(f(f(f(f(X))))))) | (37) |
tp#(mark(x)) | → | f#(f(f(f(f(f(X)))))) | (38) |
tp#(mark(x)) | → | f#(f(f(f(f(X))))) | (39) |
tp#(mark(x)) | → | f#(f(f(f(X)))) | (40) |
tp#(mark(x)) | → | f#(f(f(X))) | (41) |
tp#(mark(x)) | → | f#(f(X)) | (42) |
tp#(mark(x)) | → | f#(X) | (43) |
The dependency pairs are split into 3 components.
tp#(mark(x)) | → | tp#(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (31) |
[mat(x1, x2)] | = | 1 · x1 + 1 · x2 |
[f(x1)] | = | 1 · x1 |
[y] | = | 0 |
[c] | = | 0 |
[no(x1)] | = | 1 · x1 |
[chk(x1)] | = | 1 · x1 |
[X] | = | 0 |
[active(x1)] | = | 1 · x1 |
[mark(x1)] | = | 1 · x1 |
[tp#(x1)] | = | 1 · x1 |
mat(f(x),f(y)) | → | f(mat(x,y)) | (3) |
mat(f(x),c) | → | no(c) | (5) |
chk(no(f(x))) | → | f(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (2) |
chk(no(c)) | → | active(c) | (4) |
f(active(x)) | → | active(f(x)) | (6) |
f(no(x)) | → | no(f(x)) | (7) |
f(mark(x)) | → | mark(f(x)) | (8) |
active(f(x)) | → | mark(f(f(x))) | (1) |
[tp#(x1)] | = |
|
||||||||||||
[mark(x1)] | = |
|
||||||||||||
[chk(x1)] | = |
|
||||||||||||
[mat(x1, x2)] | = |
|
||||||||||||
[f(x1)] | = |
|
||||||||||||
[X] | = |
|
||||||||||||
[y] | = |
|
||||||||||||
[c] | = |
|
||||||||||||
[no(x1)] | = |
|
||||||||||||
[active(x1)] | = |
|
tp#(mark(x)) | → | tp#(chk(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x))) | (31) |
There are no pairs anymore.
chk#(no(f(x))) | → | chk#(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x)) | (12) |
[mat(x1, x2)] | = | 1 · x1 + 1 · x2 |
[f(x1)] | = | 1 · x1 |
[y] | = | 0 |
[c] | = | 0 |
[no(x1)] | = | 1 · x1 |
[X] | = | 0 |
[chk#(x1)] | = | 1 · x1 |
mat(f(x),f(y)) | → | f(mat(x,y)) | (3) |
mat(f(x),c) | → | no(c) | (5) |
20
Hence, it suffices to show innermost termination in the following.[mat(x1, x2)] | = | 1 · x1 + 2 · x2 |
[f(x1)] | = | 2 · x1 |
[y] | = | 0 |
[c] | = | 1 |
[no(x1)] | = | 1 · x1 |
[chk#(x1)] | = | 2 · x1 |
[X] | = | 0 |
mat(f(x),c) | → | no(c) | (5) |
[mat(x1, x2)] | = | 2 · x1 + 2 · x2 |
[f(x1)] | = | 2 · x1 |
[y] | = | 0 |
[chk#(x1)] | = | 1 · x1 |
[no(x1)] | = | 2 · x1 |
[X] | = | 0 |
mat(f(x),f(y)) | → | f(mat(x,y)) | (3) |
chk#(no(f(x))) | → | chk#(mat(f(f(f(f(f(f(f(f(f(f(X)))))))))),x)) | (12) |
There are no pairs anymore.
f#(active(x)) | → | active#(f(x)) | (27) |
active#(f(x)) | → | f#(f(x)) | (10) |
f#(active(x)) | → | f#(x) | (28) |
f#(no(x)) | → | f#(x) | (29) |
f#(mark(x)) | → | f#(x) | (30) |
[f(x1)] | = | 1 · x1 |
[active(x1)] | = | 1 · x1 |
[no(x1)] | = | 1 · x1 |
[mark(x1)] | = | 1 · x1 |
[active#(x1)] | = | 1 · x1 |
[f#(x1)] | = | 1 · x1 |
f(active(x)) | → | active(f(x)) | (6) |
f(no(x)) | → | no(f(x)) | (7) |
f(mark(x)) | → | mark(f(x)) | (8) |
active(f(x)) | → | mark(f(f(x))) | (1) |
[f(x1)] | = | 2 · x1 |
[active(x1)] | = | 2 + 2 · x1 |
[no(x1)] | = | 1 + 2 · x1 |
[mark(x1)] | = | 1 + 1 · x1 |
[f#(x1)] | = | 1 + 2 · x1 |
[active#(x1)] | = | 2 + 2 · x1 |
f#(active(x)) | → | active#(f(x)) | (27) |
active#(f(x)) | → | f#(f(x)) | (10) |
f#(active(x)) | → | f#(x) | (28) |
f#(no(x)) | → | f#(x) | (29) |
f#(mark(x)) | → | f#(x) | (30) |
f(active(x)) | → | active(f(x)) | (6) |
f(no(x)) | → | no(f(x)) | (7) |
f(mark(x)) | → | mark(f(x)) | (8) |
active(f(x)) | → | mark(f(f(x))) | (1) |
There are no pairs anymore.