Certification Problem
Input (TPDB TRS_Standard/Transformed_CSR_04/ExConc_Zan97_C)
The rewrite relation of the following TRS is considered.
active(f(X)) |
→ |
mark(g(h(f(X)))) |
(1) |
active(f(X)) |
→ |
f(active(X)) |
(2) |
active(h(X)) |
→ |
h(active(X)) |
(3) |
f(mark(X)) |
→ |
mark(f(X)) |
(4) |
h(mark(X)) |
→ |
mark(h(X)) |
(5) |
proper(f(X)) |
→ |
f(proper(X)) |
(6) |
proper(g(X)) |
→ |
g(proper(X)) |
(7) |
proper(h(X)) |
→ |
h(proper(X)) |
(8) |
f(ok(X)) |
→ |
ok(f(X)) |
(9) |
g(ok(X)) |
→ |
ok(g(X)) |
(10) |
h(ok(X)) |
→ |
ok(h(X)) |
(11) |
top(mark(X)) |
→ |
top(proper(X)) |
(12) |
top(ok(X)) |
→ |
top(active(X)) |
(13) |
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by ttt2 @ termCOMP 2023)
1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
f(active(X)) |
→ |
f(h(g(mark(X)))) |
(14) |
f(active(X)) |
→ |
active(f(X)) |
(15) |
h(active(X)) |
→ |
active(h(X)) |
(16) |
mark(f(X)) |
→ |
f(mark(X)) |
(17) |
mark(h(X)) |
→ |
h(mark(X)) |
(18) |
f(proper(X)) |
→ |
proper(f(X)) |
(19) |
g(proper(X)) |
→ |
proper(g(X)) |
(20) |
h(proper(X)) |
→ |
proper(h(X)) |
(21) |
ok(f(X)) |
→ |
f(ok(X)) |
(22) |
ok(g(X)) |
→ |
g(ok(X)) |
(23) |
ok(h(X)) |
→ |
h(ok(X)) |
(24) |
mark(top(X)) |
→ |
proper(top(X)) |
(25) |
ok(top(X)) |
→ |
active(top(X)) |
(26) |
1.1 Rule Removal
Using the
Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(top) |
= |
0 |
|
weight(top) |
= |
1 |
|
|
|
prec(ok) |
= |
7 |
|
weight(ok) |
= |
6 |
|
|
|
prec(proper) |
= |
1 |
|
weight(proper) |
= |
1 |
|
|
|
prec(mark) |
= |
6 |
|
weight(mark) |
= |
1 |
|
|
|
prec(g) |
= |
5 |
|
weight(g) |
= |
1 |
|
|
|
prec(h) |
= |
4 |
|
weight(h) |
= |
2 |
|
|
|
prec(active) |
= |
2 |
|
weight(active) |
= |
5 |
|
|
|
prec(f) |
= |
3 |
|
weight(f) |
= |
1 |
|
|
|
all of the following rules can be deleted.
f(active(X)) |
→ |
f(h(g(mark(X)))) |
(14) |
f(active(X)) |
→ |
active(f(X)) |
(15) |
h(active(X)) |
→ |
active(h(X)) |
(16) |
mark(f(X)) |
→ |
f(mark(X)) |
(17) |
mark(h(X)) |
→ |
h(mark(X)) |
(18) |
f(proper(X)) |
→ |
proper(f(X)) |
(19) |
g(proper(X)) |
→ |
proper(g(X)) |
(20) |
h(proper(X)) |
→ |
proper(h(X)) |
(21) |
ok(f(X)) |
→ |
f(ok(X)) |
(22) |
ok(g(X)) |
→ |
g(ok(X)) |
(23) |
ok(h(X)) |
→ |
h(ok(X)) |
(24) |
mark(top(X)) |
→ |
proper(top(X)) |
(25) |
ok(top(X)) |
→ |
active(top(X)) |
(26) |
1.1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.