Certification Problem

Input (TPDB SRS_Standard/Secret_06_SRS/aprove05)

The rewrite relation of the following TRS is considered.

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

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
[twoto(x1)] = 1 · x1 + 1
[0(x1)] = 1 · x1 + 1
[p(x1)] = 1 · x1
[s(x1)] = 1 · x1
[twice(x1)] = 1 · x1
all of the following rules can be deleted.
twoto(0(x1)) p(p(s(s(s(p(p(p(s(s(s(0(p(p(s(s(x1)))))))))))))))) (1)
0(x1) x1 (8)

1.1 Dependency Pair Transformation

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

1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.