Certification Problem
Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nosorts_noand_GM)
The rewrite relation of the following TRS is considered.
a____(__(X,Y),Z) |
→ |
a____(mark(X),a____(mark(Y),mark(Z))) |
(1) |
a____(X,nil) |
→ |
mark(X) |
(2) |
a____(nil,X) |
→ |
mark(X) |
(3) |
a__U11(tt) |
→ |
a__U12(tt) |
(4) |
a__U12(tt) |
→ |
tt |
(5) |
a__isNePal(__(I,__(P,I))) |
→ |
a__U11(tt) |
(6) |
mark(__(X1,X2)) |
→ |
a____(mark(X1),mark(X2)) |
(7) |
mark(U11(X)) |
→ |
a__U11(mark(X)) |
(8) |
mark(U12(X)) |
→ |
a__U12(mark(X)) |
(9) |
mark(isNePal(X)) |
→ |
a__isNePal(mark(X)) |
(10) |
mark(nil) |
→ |
nil |
(11) |
mark(tt) |
→ |
tt |
(12) |
a____(X1,X2) |
→ |
__(X1,X2) |
(13) |
a__U11(X) |
→ |
U11(X) |
(14) |
a__U12(X) |
→ |
U12(X) |
(15) |
a__isNePal(X) |
→ |
isNePal(X) |
(16) |
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 Rule Removal
Using the
Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(nil) |
= |
7 |
|
weight(nil) |
= |
1 |
|
|
|
prec(tt) |
= |
0 |
|
weight(tt) |
= |
4 |
|
|
|
prec(mark) |
= |
10 |
|
weight(mark) |
= |
0 |
|
|
|
prec(a__U11) |
= |
5 |
|
weight(a__U11) |
= |
1 |
|
|
|
prec(a__U12) |
= |
2 |
|
weight(a__U12) |
= |
1 |
|
|
|
prec(a__isNePal) |
= |
6 |
|
weight(a__isNePal) |
= |
2 |
|
|
|
prec(U11) |
= |
3 |
|
weight(U11) |
= |
1 |
|
|
|
prec(U12) |
= |
1 |
|
weight(U12) |
= |
1 |
|
|
|
prec(isNePal) |
= |
4 |
|
weight(isNePal) |
= |
2 |
|
|
|
prec(__) |
= |
8 |
|
weight(__) |
= |
0 |
|
|
|
prec(a____) |
= |
9 |
|
weight(a____) |
= |
0 |
|
|
|
all of the following rules can be deleted.
a____(__(X,Y),Z) |
→ |
a____(mark(X),a____(mark(Y),mark(Z))) |
(1) |
a____(X,nil) |
→ |
mark(X) |
(2) |
a____(nil,X) |
→ |
mark(X) |
(3) |
a__U11(tt) |
→ |
a__U12(tt) |
(4) |
a__U12(tt) |
→ |
tt |
(5) |
a__isNePal(__(I,__(P,I))) |
→ |
a__U11(tt) |
(6) |
mark(__(X1,X2)) |
→ |
a____(mark(X1),mark(X2)) |
(7) |
mark(U11(X)) |
→ |
a__U11(mark(X)) |
(8) |
mark(U12(X)) |
→ |
a__U12(mark(X)) |
(9) |
mark(isNePal(X)) |
→ |
a__isNePal(mark(X)) |
(10) |
mark(nil) |
→ |
nil |
(11) |
mark(tt) |
→ |
tt |
(12) |
a____(X1,X2) |
→ |
__(X1,X2) |
(13) |
a__U11(X) |
→ |
U11(X) |
(14) |
a__U12(X) |
→ |
U12(X) |
(15) |
a__isNePal(X) |
→ |
isNePal(X) |
(16) |
1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.