Certification Problem

Input (TPDB SRS_Standard/Secret_05_SRS/aprove4)

The rewrite relation of the following TRS is considered.

log(s(x1)) → s(log(half(s(x1)))) (1)
half(0(x1)) → 0(s(s(half(x1)))) (2)
half(s(0(x1))) → 0(x1) (3)
half(s(s(x1))) → s(half(p(s(s(x1))))) (4)
half(half(s(s(s(s(x1)))))) → s(s(half(half(x1)))) (5)
p(s(s(s(x1)))) → s(p(s(s(x1)))) (6)
s(s(p(s(x1)))) → s(s(x1)) (7)
0(x1) → x1 (8)

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

1.1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
s(log(x1)) → s(half(log(s(x1)))) (9)
0(half(x1)) → half(s(s(0(x1)))) (10)
0(s(half(x1))) → 0(x1) (11)
s(s(half(x1))) → s(s(p(half(s(x1))))) (12)
s(s(s(s(half(half(x1)))))) → half(half(s(s(x1)))) (13)
s(s(s(p(x1)))) → s(s(p(s(x1)))) (14)
s(p(s(s(x1)))) → s(s(x1)) (15)

1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
0#(s(half(x1))) → 0#(x1) (16)
0#(half(x1)) → 0#(x1) (17)
0#(half(x1)) → s#(0(x1)) (18)
0#(half(x1)) → s#(s(0(x1))) (19)
s#(s(s(s(half(half(x1)))))) → s#(x1) (20)
s#(s(s(s(half(half(x1)))))) → s#(s(x1)) (21)
s#(s(s(p(x1)))) → s#(x1) (22)
s#(s(s(p(x1)))) → s#(s(p(s(x1)))) (23)
s#(s(s(p(x1)))) → s#(p(s(x1))) (24)
s#(s(half(x1))) → s#(x1) (25)
s#(s(half(x1))) → s#(s(p(half(s(x1))))) (26)
s#(s(half(x1))) → s#(p(half(s(x1)))) (27)
s#(log(x1)) → s#(x1) (28)
s#(log(x1)) → s#(half(log(s(x1)))) (29)

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
[log(x1)] = x1 +
1
[half(x1)] = x1 +
0
[0#(x1)] = x1 +
1
[s#(x1)] = x1 +
0
together with the usable rules
s(log(x1)) → s(half(log(s(x1)))) (9)
0(half(x1)) → half(s(s(0(x1)))) (10)
0(s(half(x1))) → 0(x1) (11)
s(s(half(x1))) → s(s(p(half(s(x1))))) (12)
s(s(s(s(half(half(x1)))))) → half(half(s(s(x1)))) (13)
s(s(s(p(x1)))) → s(s(p(s(x1)))) (14)
s(p(s(s(x1)))) → s(s(x1)) (15)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
0#(half(x1)) → s#(0(x1)) (18)
0#(half(x1)) → s#(s(0(x1))) (19)
s#(log(x1)) → s#(x1) (28)
and no rules could be deleted.

1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.