Certification Problem

Input (TPDB SRS_Standard/ICFP_2010/96086)

The rewrite relation of the following TRS is considered.

0(0(1(2(x1)))) → 2(3(0(x1))) (1)
4(2(5(2(x1)))) → 1(4(0(x1))) (2)
4(5(3(4(x1)))) → 4(4(2(4(x1)))) (3)
1(3(5(5(2(x1))))) → 1(3(2(3(x1)))) (4)
5(2(2(1(2(x1))))) → 0(0(2(3(x1)))) (5)
2(2(5(3(2(2(x1)))))) → 5(1(1(0(3(x1))))) (6)
2(5(1(2(1(1(x1)))))) → 5(2(1(2(4(1(x1)))))) (7)
3(4(1(4(2(4(x1)))))) → 1(3(3(3(x1)))) (8)
3(5(2(2(4(5(x1)))))) → 3(2(4(3(0(x1))))) (9)
5(2(1(0(1(5(x1)))))) → 5(4(2(4(5(1(x1)))))) (10)
1(3(5(4(1(2(2(x1))))))) → 3(3(3(4(4(0(x1)))))) (11)
4(5(4(3(0(5(1(x1))))))) → 4(3(3(5(4(1(x1)))))) (12)
2(1(5(2(1(3(4(4(x1)))))))) → 4(0(3(4(0(1(2(x1))))))) (13)
5(4(0(2(2(4(0(4(x1)))))))) → 3(1(5(1(3(0(4(x1))))))) (14)
3(4(2(1(1(2(2(5(4(x1))))))))) → 3(3(3(1(3(3(4(x1))))))) (15)
5(4(4(5(0(1(4(5(4(x1))))))))) → 1(5(5(0(4(1(4(5(4(x1))))))))) (16)
5(2(1(3(1(5(2(5(4(4(x1)))))))))) → 5(3(4(5(0(1(4(0(3(x1))))))))) (17)
2(4(1(2(5(2(4(1(3(2(0(3(x1)))))))))))) → 4(3(0(4(2(3(4(3(4(2(0(x1))))))))))) (18)
0(2(3(5(4(2(2(1(0(3(3(5(0(x1))))))))))))) → 3(3(1(2(3(0(4(0(0(0(2(0(x1)))))))))))) (19)
2(1(0(2(1(4(0(0(2(0(0(0(5(2(x1)))))))))))))) → 2(2(4(2(1(4(3(0(5(1(3(3(0(x1))))))))))))) (20)
4(5(0(3(1(3(2(2(5(2(2(4(1(3(2(x1))))))))))))))) → 4(5(3(2(1(4(5(0(0(0(4(5(4(0(0(x1))))))))))))))) (21)
5(2(2(5(2(4(4(1(2(0(1(1(0(1(1(x1))))))))))))))) → 5(0(5(4(3(2(1(0(3(3(5(0(4(1(x1)))))))))))))) (22)
5(4(2(0(3(3(0(0(4(0(3(2(0(5(1(x1))))))))))))))) → 5(0(1(0(0(2(1(1(0(3(2(2(1(3(x1)))))))))))))) (23)
5(4(1(5(1(5(4(4(2(2(0(4(3(1(5(4(4(3(1(x1))))))))))))))))))) → 3(0(4(5(1(1(3(5(3(4(4(4(5(1(4(3(3(1(x1)))))))))))))))))) (24)
2(0(3(0(2(2(2(0(1(4(2(1(0(4(4(3(3(1(4(4(x1)))))))))))))))))))) → 5(2(4(1(1(4(5(1(0(1(2(0(3(0(1(2(3(4(3(1(x1)))))))))))))))))))) (25)

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
2(1(0(0(x1)))) → 0(3(2(x1))) (26)
2(5(2(4(x1)))) → 0(4(1(x1))) (27)
4(3(5(4(x1)))) → 4(2(4(4(x1)))) (28)
2(5(5(3(1(x1))))) → 3(2(3(1(x1)))) (29)
2(1(2(2(5(x1))))) → 3(2(0(0(x1)))) (30)
2(2(3(5(2(2(x1)))))) → 3(0(1(1(5(x1))))) (31)
1(1(2(1(5(2(x1)))))) → 1(4(2(1(2(5(x1)))))) (32)
4(2(4(1(4(3(x1)))))) → 3(3(3(1(x1)))) (33)
5(4(2(2(5(3(x1)))))) → 0(3(4(2(3(x1))))) (34)
5(1(0(1(2(5(x1)))))) → 1(5(4(2(4(5(x1)))))) (35)
2(2(1(4(5(3(1(x1))))))) → 0(4(4(3(3(3(x1)))))) (36)
1(5(0(3(4(5(4(x1))))))) → 1(4(5(3(3(4(x1)))))) (37)
4(4(3(1(2(5(1(2(x1)))))))) → 2(1(0(4(3(0(4(x1))))))) (38)
4(0(4(2(2(0(4(5(x1)))))))) → 4(0(3(1(5(1(3(x1))))))) (39)
4(5(2(2(1(1(2(4(3(x1))))))))) → 4(3(3(1(3(3(3(x1))))))) (40)
4(5(4(1(0(5(4(4(5(x1))))))))) → 4(5(4(1(4(0(5(5(1(x1))))))))) (41)
4(4(5(2(5(1(3(1(2(5(x1)))))))))) → 3(0(4(1(0(5(4(3(5(x1))))))))) (42)
3(0(2(3(1(4(2(5(2(1(4(2(x1)))))))))))) → 0(2(4(3(4(3(2(4(0(3(4(x1))))))))))) (43)
0(5(3(3(0(1(2(2(4(5(3(2(0(x1))))))))))))) → 0(2(0(0(0(4(0(3(2(1(3(3(x1)))))))))))) (44)
2(5(0(0(0(2(0(0(4(1(2(0(1(2(x1)))))))))))))) → 0(3(3(1(5(0(3(4(1(2(4(2(2(x1))))))))))))) (45)
2(3(1(4(2(2(5(2(2(3(1(3(0(5(4(x1))))))))))))))) → 0(0(4(5(4(0(0(0(5(4(1(2(3(5(4(x1))))))))))))))) (46)
1(1(0(1(1(0(2(1(4(4(2(5(2(2(5(x1))))))))))))))) → 1(4(0(5(3(3(0(1(2(3(4(5(0(5(x1)))))))))))))) (47)
1(5(0(2(3(0(4(0(0(3(3(0(2(4(5(x1))))))))))))))) → 3(1(2(2(3(0(1(1(2(0(0(1(0(5(x1)))))))))))))) (48)
1(3(4(4(5(1(3(4(0(2(2(4(4(5(1(5(1(4(5(x1))))))))))))))))))) → 1(3(3(4(1(5(4(4(4(3(5(3(1(1(5(4(0(3(x1)))))))))))))))))) (49)
4(4(1(3(3(4(4(0(1(2(4(1(0(2(2(2(0(3(0(2(x1)))))))))))))))))))) → 1(3(4(3(2(1(0(3(0(2(1(0(1(5(4(1(1(4(2(5(x1)))))))))))))))))))) (50)

1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[2(x1)] = 1 · x1 + 17
[1(x1)] = 1 · x1 + 13
[0(x1)] = 1 · x1 + 20
[3(x1)] = 1 · x1 + 19
[5(x1)] = 1 · x1 + 12
[4(x1)] = 1 · x1 + 13
all of the following rules can be deleted.
2(1(0(0(x1)))) → 0(3(2(x1))) (26)
2(5(2(4(x1)))) → 0(4(1(x1))) (27)
4(3(5(4(x1)))) → 4(2(4(4(x1)))) (28)
2(5(5(3(1(x1))))) → 3(2(3(1(x1)))) (29)
2(2(3(5(2(2(x1)))))) → 3(0(1(1(5(x1))))) (31)
4(2(4(1(4(3(x1)))))) → 3(3(3(1(x1)))) (33)
5(4(2(2(5(3(x1)))))) → 0(3(4(2(3(x1))))) (34)
5(1(0(1(2(5(x1)))))) → 1(5(4(2(4(5(x1)))))) (35)
2(2(1(4(5(3(1(x1))))))) → 0(4(4(3(3(3(x1)))))) (36)
1(5(0(3(4(5(4(x1))))))) → 1(4(5(3(3(4(x1)))))) (37)
4(4(3(1(2(5(1(2(x1)))))))) → 2(1(0(4(3(0(4(x1))))))) (38)
4(0(4(2(2(0(4(5(x1)))))))) → 4(0(3(1(5(1(3(x1))))))) (39)
4(5(2(2(1(1(2(4(3(x1))))))))) → 4(3(3(1(3(3(3(x1))))))) (40)
3(0(2(3(1(4(2(5(2(1(4(2(x1)))))))))))) → 0(2(4(3(4(3(2(4(0(3(4(x1))))))))))) (43)
0(5(3(3(0(1(2(2(4(5(3(2(0(x1))))))))))))) → 0(2(0(0(0(4(0(3(2(1(3(3(x1)))))))))))) (44)
2(5(0(0(0(2(0(0(4(1(2(0(1(2(x1)))))))))))))) → 0(3(3(1(5(0(3(4(1(2(4(2(2(x1))))))))))))) (45)
2(3(1(4(2(2(5(2(2(3(1(3(0(5(4(x1))))))))))))))) → 0(0(4(5(4(0(0(0(5(4(1(2(3(5(4(x1))))))))))))))) (46)
1(1(0(1(1(0(2(1(4(4(2(5(2(2(5(x1))))))))))))))) → 1(4(0(5(3(3(0(1(2(3(4(5(0(5(x1)))))))))))))) (47)
1(5(0(2(3(0(4(0(0(3(3(0(2(4(5(x1))))))))))))))) → 3(1(2(2(3(0(1(1(2(0(0(1(0(5(x1)))))))))))))) (48)
1(3(4(4(5(1(3(4(0(2(2(4(4(5(1(5(1(4(5(x1))))))))))))))))))) → 1(3(3(4(1(5(4(4(4(3(5(3(1(1(5(4(0(3(x1)))))))))))))))))) (49)
4(4(1(3(3(4(4(0(1(2(4(1(0(2(2(2(0(3(0(2(x1)))))))))))))))))))) → 1(3(4(3(2(1(0(3(0(2(1(0(1(5(4(1(1(4(2(5(x1)))))))))))))))))))) (50)

1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[2(x1)] = 1 · x1
[1(x1)] = 1 · x1
[5(x1)] = 1 · x1 + 1
[3(x1)] = 1 · x1
[0(x1)] = 1 · x1
[4(x1)] = 1 · x1
all of the following rules can be deleted.
2(1(2(2(5(x1))))) → 3(2(0(0(x1)))) (30)
4(4(5(2(5(1(3(1(2(5(x1)))))))))) → 3(0(4(1(0(5(4(3(5(x1))))))))) (42)

1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
1#(1(2(1(5(2(x1)))))) → 1#(4(2(1(2(5(x1)))))) (51)
1#(1(2(1(5(2(x1)))))) → 4#(2(1(2(5(x1))))) (52)
1#(1(2(1(5(2(x1)))))) → 1#(2(5(x1))) (53)
4#(5(4(1(0(5(4(4(5(x1))))))))) → 4#(5(4(1(4(0(5(5(1(x1))))))))) (54)
4#(5(4(1(0(5(4(4(5(x1))))))))) → 4#(1(4(0(5(5(1(x1))))))) (55)
4#(5(4(1(0(5(4(4(5(x1))))))))) → 1#(4(0(5(5(1(x1)))))) (56)
4#(5(4(1(0(5(4(4(5(x1))))))))) → 4#(0(5(5(1(x1))))) (57)
4#(5(4(1(0(5(4(4(5(x1))))))))) → 1#(x1) (58)

1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 0 components.