Certification Problem

Input (TPDB SRS_Standard/Secret_06_SRS/aprove06)

The rewrite relation of the following TRS is considered.

tower(0(x1)) s(0(p(s(p(s(x1)))))) (1)
tower(s(x1)) p(s(p(s(twoto(p(s(p(s(tower(p(s(p(s(x1)))))))))))))) (2)
twoto(0(x1)) s(0(x1)) (3)
twoto(s(x1)) p(p(s(p(p(p(s(s(p(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1)))))))))))))))))))))))))))))))) (4)
twice(0(x1)) 0(x1) (5)
twice(s(x1)) p(p(p(s(s(s(s(s(twice(p(p(p(s(s(s(x1))))))))))))))) (6)
p(p(s(x1))) p(x1) (7)
p(s(x1)) x1 (8)
p(0(x1)) 0(s(s(s(s(s(s(s(s(x1))))))))) (9)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Rule Removal

Using the linear polynomial interpretation over the naturals
[tower(x1)] = 1 · x1 + 1
[0(x1)] = 1 · x1
[s(x1)] = 1 · x1
[p(x1)] = 1 · x1
[twoto(x1)] = 1 · x1
[twice(x1)] = 1 · x1
all of the following rules can be deleted.
tower(0(x1)) s(0(p(s(p(s(x1)))))) (1)

1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
tower#(s(x1)) p#(s(p(s(twoto(p(s(p(s(tower(p(s(p(s(x1)))))))))))))) (10)
tower#(s(x1)) p#(s(twoto(p(s(p(s(tower(p(s(p(s(x1)))))))))))) (11)
tower#(s(x1)) twoto#(p(s(p(s(tower(p(s(p(s(x1)))))))))) (12)
tower#(s(x1)) p#(s(p(s(tower(p(s(p(s(x1))))))))) (13)
tower#(s(x1)) p#(s(tower(p(s(p(s(x1))))))) (14)
tower#(s(x1)) tower#(p(s(p(s(x1))))) (15)
tower#(s(x1)) p#(s(p(s(x1)))) (16)
tower#(s(x1)) p#(s(x1)) (17)
twoto#(s(x1)) p#(p(s(p(p(p(s(s(p(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1)))))))))))))))))))))))))))))))) (18)
twoto#(s(x1)) p#(s(p(p(p(s(s(p(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))))))))))))))))))))))) (19)
twoto#(s(x1)) p#(p(p(s(s(p(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))))))))))))))))))))) (20)
twoto#(s(x1)) p#(p(s(s(p(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1)))))))))))))))))))))))))))) (21)
twoto#(s(x1)) p#(s(s(p(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))))))))))))))))))) (22)
twoto#(s(x1)) p#(s(s(p(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1)))))))))))))))))))))))) (23)
twoto#(s(x1)) p#(s(s(p(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))))))))))))) (24)
twoto#(s(x1)) p#(s(twice(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1)))))))))))))))))) (25)
twoto#(s(x1)) twice#(p(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1)))))))))))))))) (26)
twoto#(s(x1)) p#(s(p(s(p(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))))))) (27)
twoto#(s(x1)) p#(s(p(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))))) (28)
twoto#(s(x1)) p#(p(p(s(s(s(twoto(p(s(p(s(x1))))))))))) (29)
twoto#(s(x1)) p#(p(s(s(s(twoto(p(s(p(s(x1)))))))))) (30)
twoto#(s(x1)) p#(s(s(s(twoto(p(s(p(s(x1))))))))) (31)
twoto#(s(x1)) twoto#(p(s(p(s(x1))))) (32)
twoto#(s(x1)) p#(s(p(s(x1)))) (33)
twoto#(s(x1)) p#(s(x1)) (34)
twice#(s(x1)) p#(p(p(s(s(s(s(s(twice(p(p(p(s(s(s(x1))))))))))))))) (35)
twice#(s(x1)) p#(p(s(s(s(s(s(twice(p(p(p(s(s(s(x1)))))))))))))) (36)
twice#(s(x1)) p#(s(s(s(s(s(twice(p(p(p(s(s(s(x1))))))))))))) (37)
twice#(s(x1)) twice#(p(p(p(s(s(s(x1))))))) (38)
twice#(s(x1)) p#(p(p(s(s(s(x1)))))) (39)
twice#(s(x1)) p#(p(s(s(s(x1))))) (40)
twice#(s(x1)) p#(s(s(s(x1)))) (41)
p#(p(s(x1))) p#(x1) (42)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.