Certification Problem

Input (TPDB SRS_Standard/Secret_06_SRS/aprove03)

The rewrite relation of the following TRS is considered.

thrice(0(x1)) p(s(p(p(p(s(s(s(0(p(s(p(s(x1))))))))))))) (1)
thrice(s(x1)) p(p(s(s(half(p(p(s(s(p(s(sixtimes(p(s(p(p(s(s(x1)))))))))))))))))) (2)
half(0(x1)) p(p(s(s(p(s(0(p(s(s(s(s(x1)))))))))))) (3)
half(s(x1)) p(s(p(p(s(s(p(p(s(s(half(p(p(s(s(p(s(x1))))))))))))))))) (4)
half(s(s(x1))) p(s(p(s(s(p(p(s(s(half(p(p(s(s(p(s(x1)))))))))))))))) (5)
sixtimes(0(x1)) p(s(p(s(0(s(s(s(s(s(p(s(p(s(x1)))))))))))))) (6)
sixtimes(s(x1)) p(p(s(s(s(s(s(s(s(p(p(s(p(s(s(s(sixtimes(p(s(p(p(p(s(s(s(x1))))))))))))))))))))))))) (7)
p(p(s(x1))) p(x1) (8)
p(s(x1)) x1 (9)
p(0(x1)) 0(s(s(s(s(x1))))) (10)
0(x1) x1 (11)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by matchbox @ termCOMP 2023)

1 Rule Removal

Using the matrix interpretations of dimension 1 with strict dimension 1 over the rationals with delta = 1
[0(x1)] = x1 +
3
[s(x1)] = x1 +
0
[p(x1)] = x1 +
0
[sixtimes(x1)] = x1 +
1
[half(x1)] = x1 +
1
[thrice(x1)] = x1 +
3
all of the following rules can be deleted.
thrice(0(x1)) p(s(p(p(p(s(s(s(0(p(s(p(s(x1))))))))))))) (1)
thrice(s(x1)) p(p(s(s(half(p(p(s(s(p(s(sixtimes(p(s(p(p(s(s(x1)))))))))))))))))) (2)
half(0(x1)) p(p(s(s(p(s(0(p(s(s(s(s(x1)))))))))))) (3)
sixtimes(0(x1)) p(s(p(s(0(s(s(s(s(s(p(s(p(s(x1)))))))))))))) (6)
0(x1) x1 (11)

1.1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
s(half(x1)) s(p(s(s(p(p(half(s(s(p(p(s(s(p(p(s(p(x1))))))))))))))))) (12)
s(s(half(x1))) s(p(s(s(p(p(half(s(s(p(p(s(s(p(s(p(x1)))))))))))))))) (13)
s(sixtimes(x1)) s(s(s(p(p(p(s(p(sixtimes(s(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))))))))))))) (14)
s(p(p(x1))) p(x1) (15)
s(p(x1)) x1 (16)
0(p(x1)) s(s(s(s(0(x1))))) (17)

1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
0#(p(x1)) 0#(x1) (18)
0#(p(x1)) s#(0(x1)) (19)
0#(p(x1)) s#(s(0(x1))) (20)
0#(p(x1)) s#(s(s(0(x1)))) (21)
0#(p(x1)) s#(s(s(s(0(x1))))) (22)
s#(s(half(x1))) s#(s(p(s(p(x1))))) (23)
s#(s(half(x1))) s#(s(p(p(s(s(p(s(p(x1))))))))) (24)
s#(s(half(x1))) s#(s(p(p(half(s(s(p(p(s(s(p(s(p(x1)))))))))))))) (25)
s#(s(half(x1))) s#(p(x1)) (26)
s#(s(half(x1))) s#(p(s(s(p(p(half(s(s(p(p(s(s(p(s(p(x1)))))))))))))))) (27)
s#(s(half(x1))) s#(p(s(p(x1)))) (28)
s#(s(half(x1))) s#(p(p(s(s(p(s(p(x1)))))))) (29)
s#(s(half(x1))) s#(p(p(half(s(s(p(p(s(s(p(s(p(x1))))))))))))) (30)
s#(sixtimes(x1)) s#(s(s(s(s(s(s(p(p(x1))))))))) (31)
s#(sixtimes(x1)) s#(s(s(s(s(s(p(p(x1)))))))) (32)
s#(sixtimes(x1)) s#(s(s(s(s(p(p(x1))))))) (33)
s#(sixtimes(x1)) s#(s(s(s(p(p(x1)))))) (34)
s#(sixtimes(x1)) s#(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))))))) (35)
s#(sixtimes(x1)) s#(s(s(p(p(x1))))) (36)
s#(sixtimes(x1)) s#(s(s(p(p(p(s(p(sixtimes(s(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))))))))))))) (37)
s#(sixtimes(x1)) s#(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))) (38)
s#(sixtimes(x1)) s#(s(p(p(x1)))) (39)
s#(sixtimes(x1)) s#(s(p(p(p(s(p(sixtimes(s(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))))))))))))))) (40)
s#(sixtimes(x1)) s#(p(s(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))))) (41)
s#(sixtimes(x1)) s#(p(p(x1))) (42)
s#(sixtimes(x1)) s#(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))) (43)
s#(sixtimes(x1)) s#(p(p(p(s(p(sixtimes(s(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))))))))))) (44)
s#(sixtimes(x1)) s#(p(sixtimes(s(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))))))) (45)
s#(half(x1)) s#(s(p(p(s(s(p(p(s(p(x1)))))))))) (46)
s#(half(x1)) s#(s(p(p(s(p(x1)))))) (47)
s#(half(x1)) s#(s(p(p(half(s(s(p(p(s(s(p(p(s(p(x1))))))))))))))) (48)
s#(half(x1)) s#(p(x1)) (49)
s#(half(x1)) s#(p(s(s(p(p(half(s(s(p(p(s(s(p(p(s(p(x1))))))))))))))))) (50)
s#(half(x1)) s#(p(p(s(s(p(p(s(p(x1))))))))) (51)
s#(half(x1)) s#(p(p(s(p(x1))))) (52)
s#(half(x1)) s#(p(p(half(s(s(p(p(s(s(p(p(s(p(x1)))))))))))))) (53)

1.1.1.1 Monotonic Reduction Pair Processor with Usable Rules

Using the matrix interpretations of dimension 1 with strict dimension 1 over the rationals with delta = 1
[0(x1)] = x1 +
0
[s(x1)] = x1 +
0
[p(x1)] = x1 +
0
[sixtimes(x1)] = x1 +
1
[half(x1)] = x1 +
1
[0#(x1)] = x1 +
1
[s#(x1)] = x1 +
0
together with the usable rules
s(half(x1)) s(p(s(s(p(p(half(s(s(p(p(s(s(p(p(s(p(x1))))))))))))))))) (12)
s(s(half(x1))) s(p(s(s(p(p(half(s(s(p(p(s(s(p(s(p(x1)))))))))))))))) (13)
s(sixtimes(x1)) s(s(s(p(p(p(s(p(sixtimes(s(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))))))))))))) (14)
s(p(p(x1))) p(x1) (15)
s(p(x1)) x1 (16)
0(p(x1)) s(s(s(s(0(x1))))) (17)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
0#(p(x1)) s#(0(x1)) (19)
0#(p(x1)) s#(s(0(x1))) (20)
0#(p(x1)) s#(s(s(0(x1)))) (21)
0#(p(x1)) s#(s(s(s(0(x1))))) (22)
s#(s(half(x1))) s#(s(p(s(p(x1))))) (23)
s#(s(half(x1))) s#(s(p(p(s(s(p(s(p(x1))))))))) (24)
s#(s(half(x1))) s#(p(x1)) (26)
s#(s(half(x1))) s#(p(s(p(x1)))) (28)
s#(s(half(x1))) s#(p(p(s(s(p(s(p(x1)))))))) (29)
s#(sixtimes(x1)) s#(s(s(s(s(s(s(p(p(x1))))))))) (31)
s#(sixtimes(x1)) s#(s(s(s(s(s(p(p(x1)))))))) (32)
s#(sixtimes(x1)) s#(s(s(s(s(p(p(x1))))))) (33)
s#(sixtimes(x1)) s#(s(s(s(p(p(x1)))))) (34)
s#(sixtimes(x1)) s#(s(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))))))) (35)
s#(sixtimes(x1)) s#(s(s(p(p(x1))))) (36)
s#(sixtimes(x1)) s#(s(p(s(p(p(s(s(s(s(s(s(s(p(p(x1))))))))))))))) (38)
s#(sixtimes(x1)) s#(s(p(p(x1)))) (39)
s#(sixtimes(x1)) s#(p(s(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))))) (41)
s#(sixtimes(x1)) s#(p(p(x1))) (42)
s#(sixtimes(x1)) s#(p(p(s(s(s(s(s(s(s(p(p(x1)))))))))))) (43)
s#(half(x1)) s#(s(p(p(s(s(p(p(s(p(x1)))))))))) (46)
s#(half(x1)) s#(s(p(p(s(p(x1)))))) (47)
s#(half(x1)) s#(p(x1)) (49)
s#(half(x1)) s#(p(p(s(s(p(p(s(p(x1))))))))) (51)
s#(half(x1)) s#(p(p(s(p(x1))))) (52)
and no rules could be deleted.

1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.