Certification Problem
Input (TPDB SRS_Standard/ICFP_2010/3268)
The rewrite relation of the following TRS is considered.
1(4(x1)) |
→ |
3(1(1(2(2(4(x1)))))) |
(1) |
5(4(x1)) |
→ |
4(2(3(1(1(1(x1)))))) |
(2) |
0(3(0(x1))) |
→ |
2(1(1(0(2(0(x1)))))) |
(3) |
0(5(5(x1))) |
→ |
1(0(1(3(4(2(x1)))))) |
(4) |
1(5(4(x1))) |
→ |
0(2(5(2(0(4(x1)))))) |
(5) |
3(5(4(x1))) |
→ |
4(1(3(4(2(3(x1)))))) |
(6) |
4(1(4(x1))) |
→ |
3(3(2(2(3(1(x1)))))) |
(7) |
5(4(0(x1))) |
→ |
2(4(0(4(4(0(x1)))))) |
(8) |
5(4(0(x1))) |
→ |
5(1(5(2(1(0(x1)))))) |
(9) |
5(4(4(x1))) |
→ |
4(1(1(3(2(4(x1)))))) |
(10) |
5(5(4(x1))) |
→ |
3(4(4(1(2(2(x1)))))) |
(11) |
0(5(5(0(x1)))) |
→ |
0(2(0(0(3(0(x1)))))) |
(12) |
0(5(5(4(x1)))) |
→ |
0(1(3(4(3(4(x1)))))) |
(13) |
1(4(5(4(x1)))) |
→ |
0(4(5(0(2(1(x1)))))) |
(14) |
1(4(5(5(x1)))) |
→ |
0(0(1(3(4(1(x1)))))) |
(15) |
2(5(4(0(x1)))) |
→ |
0(4(1(2(4(0(x1)))))) |
(16) |
4(3(0(5(x1)))) |
→ |
3(3(2(3(5(5(x1)))))) |
(17) |
5(4(0(0(x1)))) |
→ |
1(0(4(0(2(2(x1)))))) |
(18) |
5(4(0(2(x1)))) |
→ |
3(0(4(5(0(2(x1)))))) |
(19) |
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
4(1(x1)) |
→ |
4(2(2(1(1(3(x1)))))) |
(20) |
4(5(x1)) |
→ |
1(1(1(3(2(4(x1)))))) |
(21) |
0(3(0(x1))) |
→ |
0(2(0(1(1(2(x1)))))) |
(22) |
5(5(0(x1))) |
→ |
2(4(3(1(0(1(x1)))))) |
(23) |
4(5(1(x1))) |
→ |
4(0(2(5(2(0(x1)))))) |
(24) |
4(5(3(x1))) |
→ |
3(2(4(3(1(4(x1)))))) |
(25) |
4(1(4(x1))) |
→ |
1(3(2(2(3(3(x1)))))) |
(26) |
0(4(5(x1))) |
→ |
0(4(4(0(4(2(x1)))))) |
(27) |
0(4(5(x1))) |
→ |
0(1(2(5(1(5(x1)))))) |
(28) |
4(4(5(x1))) |
→ |
4(2(3(1(1(4(x1)))))) |
(29) |
4(5(5(x1))) |
→ |
2(2(1(4(4(3(x1)))))) |
(30) |
0(5(5(0(x1)))) |
→ |
0(3(0(0(2(0(x1)))))) |
(31) |
4(5(5(0(x1)))) |
→ |
4(3(4(3(1(0(x1)))))) |
(32) |
4(5(4(1(x1)))) |
→ |
1(2(0(5(4(0(x1)))))) |
(33) |
5(5(4(1(x1)))) |
→ |
1(4(3(1(0(0(x1)))))) |
(34) |
0(4(5(2(x1)))) |
→ |
0(4(2(1(4(0(x1)))))) |
(35) |
5(0(3(4(x1)))) |
→ |
5(5(3(2(3(3(x1)))))) |
(36) |
0(0(4(5(x1)))) |
→ |
2(2(0(4(0(1(x1)))))) |
(37) |
2(0(4(5(x1)))) |
→ |
2(0(5(4(0(3(x1)))))) |
(38) |
1.1 Closure Under Flat Contexts
Using the flat contexts
{4(☐), 1(☐), 2(☐), 3(☐), 5(☐), 0(☐)}
We obtain the transformed TRS
4(1(x1)) |
→ |
4(2(2(1(1(3(x1)))))) |
(20) |
0(3(0(x1))) |
→ |
0(2(0(1(1(2(x1)))))) |
(22) |
4(5(1(x1))) |
→ |
4(0(2(5(2(0(x1)))))) |
(24) |
0(4(5(x1))) |
→ |
0(4(4(0(4(2(x1)))))) |
(27) |
0(4(5(x1))) |
→ |
0(1(2(5(1(5(x1)))))) |
(28) |
4(4(5(x1))) |
→ |
4(2(3(1(1(4(x1)))))) |
(29) |
0(5(5(0(x1)))) |
→ |
0(3(0(0(2(0(x1)))))) |
(31) |
4(5(5(0(x1)))) |
→ |
4(3(4(3(1(0(x1)))))) |
(32) |
0(4(5(2(x1)))) |
→ |
0(4(2(1(4(0(x1)))))) |
(35) |
5(0(3(4(x1)))) |
→ |
5(5(3(2(3(3(x1)))))) |
(36) |
2(0(4(5(x1)))) |
→ |
2(0(5(4(0(3(x1)))))) |
(38) |
4(4(5(x1))) |
→ |
4(1(1(1(3(2(4(x1))))))) |
(39) |
1(4(5(x1))) |
→ |
1(1(1(1(3(2(4(x1))))))) |
(40) |
2(4(5(x1))) |
→ |
2(1(1(1(3(2(4(x1))))))) |
(41) |
3(4(5(x1))) |
→ |
3(1(1(1(3(2(4(x1))))))) |
(42) |
5(4(5(x1))) |
→ |
5(1(1(1(3(2(4(x1))))))) |
(43) |
0(4(5(x1))) |
→ |
0(1(1(1(3(2(4(x1))))))) |
(44) |
4(5(5(0(x1)))) |
→ |
4(2(4(3(1(0(1(x1))))))) |
(45) |
1(5(5(0(x1)))) |
→ |
1(2(4(3(1(0(1(x1))))))) |
(46) |
2(5(5(0(x1)))) |
→ |
2(2(4(3(1(0(1(x1))))))) |
(47) |
3(5(5(0(x1)))) |
→ |
3(2(4(3(1(0(1(x1))))))) |
(48) |
5(5(5(0(x1)))) |
→ |
5(2(4(3(1(0(1(x1))))))) |
(49) |
0(5(5(0(x1)))) |
→ |
0(2(4(3(1(0(1(x1))))))) |
(50) |
4(4(5(3(x1)))) |
→ |
4(3(2(4(3(1(4(x1))))))) |
(51) |
1(4(5(3(x1)))) |
→ |
1(3(2(4(3(1(4(x1))))))) |
(52) |
2(4(5(3(x1)))) |
→ |
2(3(2(4(3(1(4(x1))))))) |
(53) |
3(4(5(3(x1)))) |
→ |
3(3(2(4(3(1(4(x1))))))) |
(54) |
5(4(5(3(x1)))) |
→ |
5(3(2(4(3(1(4(x1))))))) |
(55) |
0(4(5(3(x1)))) |
→ |
0(3(2(4(3(1(4(x1))))))) |
(56) |
4(4(1(4(x1)))) |
→ |
4(1(3(2(2(3(3(x1))))))) |
(57) |
1(4(1(4(x1)))) |
→ |
1(1(3(2(2(3(3(x1))))))) |
(58) |
2(4(1(4(x1)))) |
→ |
2(1(3(2(2(3(3(x1))))))) |
(59) |
3(4(1(4(x1)))) |
→ |
3(1(3(2(2(3(3(x1))))))) |
(60) |
5(4(1(4(x1)))) |
→ |
5(1(3(2(2(3(3(x1))))))) |
(61) |
0(4(1(4(x1)))) |
→ |
0(1(3(2(2(3(3(x1))))))) |
(62) |
4(4(5(5(x1)))) |
→ |
4(2(2(1(4(4(3(x1))))))) |
(63) |
1(4(5(5(x1)))) |
→ |
1(2(2(1(4(4(3(x1))))))) |
(64) |
2(4(5(5(x1)))) |
→ |
2(2(2(1(4(4(3(x1))))))) |
(65) |
3(4(5(5(x1)))) |
→ |
3(2(2(1(4(4(3(x1))))))) |
(66) |
5(4(5(5(x1)))) |
→ |
5(2(2(1(4(4(3(x1))))))) |
(67) |
0(4(5(5(x1)))) |
→ |
0(2(2(1(4(4(3(x1))))))) |
(68) |
4(4(5(4(1(x1))))) |
→ |
4(1(2(0(5(4(0(x1))))))) |
(69) |
1(4(5(4(1(x1))))) |
→ |
1(1(2(0(5(4(0(x1))))))) |
(70) |
2(4(5(4(1(x1))))) |
→ |
2(1(2(0(5(4(0(x1))))))) |
(71) |
3(4(5(4(1(x1))))) |
→ |
3(1(2(0(5(4(0(x1))))))) |
(72) |
5(4(5(4(1(x1))))) |
→ |
5(1(2(0(5(4(0(x1))))))) |
(73) |
0(4(5(4(1(x1))))) |
→ |
0(1(2(0(5(4(0(x1))))))) |
(74) |
4(5(5(4(1(x1))))) |
→ |
4(1(4(3(1(0(0(x1))))))) |
(75) |
1(5(5(4(1(x1))))) |
→ |
1(1(4(3(1(0(0(x1))))))) |
(76) |
2(5(5(4(1(x1))))) |
→ |
2(1(4(3(1(0(0(x1))))))) |
(77) |
3(5(5(4(1(x1))))) |
→ |
3(1(4(3(1(0(0(x1))))))) |
(78) |
5(5(5(4(1(x1))))) |
→ |
5(1(4(3(1(0(0(x1))))))) |
(79) |
0(5(5(4(1(x1))))) |
→ |
0(1(4(3(1(0(0(x1))))))) |
(80) |
4(0(0(4(5(x1))))) |
→ |
4(2(2(0(4(0(1(x1))))))) |
(81) |
1(0(0(4(5(x1))))) |
→ |
1(2(2(0(4(0(1(x1))))))) |
(82) |
2(0(0(4(5(x1))))) |
→ |
2(2(2(0(4(0(1(x1))))))) |
(83) |
3(0(0(4(5(x1))))) |
→ |
3(2(2(0(4(0(1(x1))))))) |
(84) |
5(0(0(4(5(x1))))) |
→ |
5(2(2(0(4(0(1(x1))))))) |
(85) |
0(0(0(4(5(x1))))) |
→ |
0(2(2(0(4(0(1(x1))))))) |
(86) |
1.1.1 Semantic Labeling
Root-labeling is applied.
We obtain the labeled TRS
There are 354 ruless (increase limit for explicit display).
1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[41(x1)] |
= |
1 · x1 + 124 |
[14(x1)] |
= |
1 · x1 + 1 |
[42(x1)] |
= |
1 · x1 + 18 |
[22(x1)] |
= |
1 · x1
|
[21(x1)] |
= |
1 · x1
|
[11(x1)] |
= |
1 · x1 + 9 |
[13(x1)] |
= |
1 · x1 + 1 |
[34(x1)] |
= |
1 · x1 + 23 |
[31(x1)] |
= |
1 · x1 + 103 |
[12(x1)] |
= |
1 · x1
|
[32(x1)] |
= |
1 · x1
|
[33(x1)] |
= |
1 · x1 + 3 |
[10(x1)] |
= |
1 · x1 + 59 |
[30(x1)] |
= |
1 · x1 + 35 |
[15(x1)] |
= |
1 · x1 + 1 |
[35(x1)] |
= |
1 · x1 + 96 |
[03(x1)] |
= |
1 · x1
|
[04(x1)] |
= |
1 · x1 + 1 |
[02(x1)] |
= |
1 · x1
|
[20(x1)] |
= |
1 · x1 + 15 |
[01(x1)] |
= |
1 · x1 + 10 |
[24(x1)] |
= |
1 · x1
|
[23(x1)] |
= |
1 · x1 + 1 |
[00(x1)] |
= |
1 · x1 + 60 |
[05(x1)] |
= |
1 · x1 + 2 |
[25(x1)] |
= |
1 · x1
|
[45(x1)] |
= |
1 · x1 + 117 |
[51(x1)] |
= |
1 · x1 + 107 |
[40(x1)] |
= |
1 · x1 + 53 |
[52(x1)] |
= |
1 · x1
|
[54(x1)] |
= |
1 · x1 + 28 |
[44(x1)] |
= |
1 · x1 + 44 |
[53(x1)] |
= |
1 · x1 + 29 |
[50(x1)] |
= |
1 · x1 + 93 |
[55(x1)] |
= |
1 · x1 + 100 |
[43(x1)] |
= |
1 · x1 + 20 |
all of the following rules can be deleted.
There are 330 ruless (increase limit for explicit display).
1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[03(x1)] |
= |
1 · x1
|
[30(x1)] |
= |
1 · x1 + 1 |
[02(x1)] |
= |
1 · x1
|
[20(x1)] |
= |
1 · x1
|
[01(x1)] |
= |
1 · x1
|
[11(x1)] |
= |
1 · x1
|
[12(x1)] |
= |
1 · x1
|
[23(x1)] |
= |
1 · x1
|
[04(x1)] |
= |
1 · x1
|
[45(x1)] |
= |
1 · x1
|
[54(x1)] |
= |
1 · x1 + 1 |
[25(x1)] |
= |
1 · x1
|
[51(x1)] |
= |
1 · x1
|
[15(x1)] |
= |
1 · x1
|
[52(x1)] |
= |
1 · x1 + 1 |
[53(x1)] |
= |
1 · x1 + 1 |
[50(x1)] |
= |
1 · x1 + 2 |
[55(x1)] |
= |
1 · x1
|
[42(x1)] |
= |
1 · x1
|
[21(x1)] |
= |
1 · x1
|
[14(x1)] |
= |
1 · x1
|
[40(x1)] |
= |
1 · x1
|
[00(x1)] |
= |
1 · x1
|
[34(x1)] |
= |
1 · x1
|
[43(x1)] |
= |
1 · x1
|
[32(x1)] |
= |
1 · x1
|
[33(x1)] |
= |
1 · x1
|
[44(x1)] |
= |
1 · x1
|
[41(x1)] |
= |
1 · x1
|
[13(x1)] |
= |
1 · x1
|
[24(x1)] |
= |
1 · x1
|
[31(x1)] |
= |
1 · x1
|
[22(x1)] |
= |
1 · x1
|
[10(x1)] |
= |
1 · x1 + 1 |
[35(x1)] |
= |
1 · x1
|
[05(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
03(30(03(x1))) |
→ |
02(20(01(11(12(23(x1)))))) |
(96) |
04(45(52(20(x1)))) |
→ |
04(42(21(14(40(00(x1)))))) |
(139) |
50(03(34(43(x1)))) |
→ |
55(53(32(23(33(33(x1)))))) |
(144) |
44(45(52(x1))) |
→ |
41(11(11(13(32(24(42(x1))))))) |
(155) |
34(45(52(x1))) |
→ |
31(11(11(13(32(24(42(x1))))))) |
(173) |
25(55(50(03(x1)))) |
→ |
22(24(43(31(10(01(13(x1))))))) |
(204) |
24(45(53(34(x1)))) |
→ |
23(32(24(43(31(14(44(x1))))))) |
(237) |
24(45(53(31(x1)))) |
→ |
23(32(24(43(31(14(41(x1))))))) |
(238) |
24(45(53(35(x1)))) |
→ |
23(32(24(43(31(14(45(x1))))))) |
(242) |
54(45(53(34(x1)))) |
→ |
53(32(24(43(31(14(44(x1))))))) |
(249) |
54(45(53(31(x1)))) |
→ |
53(32(24(43(31(14(41(x1))))))) |
(250) |
54(45(53(35(x1)))) |
→ |
53(32(24(43(31(14(45(x1))))))) |
(254) |
15(55(54(41(10(x1))))) |
→ |
11(14(43(31(10(00(00(x1))))))) |
(379) |
05(55(54(41(10(x1))))) |
→ |
01(14(43(31(10(00(00(x1))))))) |
(403) |
1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[04(x1)] |
= |
1 · x1 + 1 |
[45(x1)] |
= |
1 · x1
|
[54(x1)] |
= |
1 · x1
|
[01(x1)] |
= |
1 · x1
|
[12(x1)] |
= |
1 · x1
|
[25(x1)] |
= |
1 · x1
|
[51(x1)] |
= |
1 · x1
|
[15(x1)] |
= |
1 · x1
|
[52(x1)] |
= |
1 · x1
|
[53(x1)] |
= |
1 · x1
|
[50(x1)] |
= |
1 · x1
|
[55(x1)] |
= |
1 · x1
|
[41(x1)] |
= |
1 · x1
|
[11(x1)] |
= |
1 · x1
|
[14(x1)] |
= |
1 · x1
|
[43(x1)] |
= |
1 · x1
|
[31(x1)] |
= |
1 · x1
|
[10(x1)] |
= |
1 · x1
|
[00(x1)] |
= |
1 · x1
|
[05(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
04(45(54(x1))) |
→ |
01(12(25(51(15(54(x1)))))) |
(111) |
04(45(51(x1))) |
→ |
01(12(25(51(15(51(x1)))))) |
(112) |
04(45(52(x1))) |
→ |
01(12(25(51(15(52(x1)))))) |
(113) |
04(45(53(x1))) |
→ |
01(12(25(51(15(53(x1)))))) |
(114) |
04(45(50(x1))) |
→ |
01(12(25(51(15(50(x1)))))) |
(115) |
04(45(55(x1))) |
→ |
01(12(25(51(15(55(x1)))))) |
(116) |
1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[15(x1)] |
= |
1 · x1 + 1 |
[55(x1)] |
= |
1 · x1
|
[54(x1)] |
= |
1 · x1
|
[41(x1)] |
= |
1 · x1
|
[11(x1)] |
= |
1 · x1 + 1 |
[14(x1)] |
= |
1 · x1
|
[43(x1)] |
= |
1 · x1
|
[31(x1)] |
= |
1 · x1
|
[10(x1)] |
= |
1 · x1
|
[00(x1)] |
= |
1 · x1
|
[01(x1)] |
= |
1 · x1
|
[05(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
15(55(54(41(11(x1))))) |
→ |
11(14(43(31(10(00(01(x1))))))) |
(376) |
15(55(54(41(15(x1))))) |
→ |
11(14(43(31(10(00(05(x1))))))) |
(380) |
05(55(54(41(11(x1))))) |
→ |
01(14(43(31(10(00(01(x1))))))) |
(400) |
05(55(54(41(15(x1))))) |
→ |
01(14(43(31(10(00(05(x1))))))) |
(404) |
1.1.1.1.1.1.1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.