Certification Problem

Input (TPDB SRS_Standard/Secret_06_SRS/aprove07)

The rewrite relation of the following TRS is considered.

foo(0(x1)) 0(s(p(p(p(s(s(s(p(s(x1)))))))))) (1)
foo(s(x1)) p(s(p(p(p(s(s(p(s(s(p(s(foo(p(p(s(s(p(s(bar(p(p(s(s(p(s(x1)))))))))))))))))))))))))) (2)
bar(0(x1)) 0(p(s(s(s(x1))))) (3)
bar(s(x1)) p(s(p(p(s(s(foo(s(p(p(s(s(x1)))))))))))) (4)
p(p(s(x1))) p(x1) (5)
p(s(x1)) x1 (6)
p(0(x1)) 0(s(s(s(s(x1))))) (7)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by matchbox @ termCOMP 2023)

1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
0(foo(x1)) s(p(s(s(s(p(p(p(s(0(x1)))))))))) (8)
s(foo(x1)) s(p(s(s(p(p(bar(s(p(s(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1)))))))))))))))))))))))))) (9)
0(bar(x1)) s(s(s(p(0(x1))))) (10)
s(bar(x1)) s(s(p(p(s(foo(s(s(p(p(s(p(x1)))))))))))) (11)
s(p(p(x1))) p(x1) (12)
s(p(x1)) x1 (13)
0(p(x1)) s(s(s(s(0(x1))))) (14)

1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
0#(p(x1)) 0#(x1) (15)
0#(p(x1)) s#(0(x1)) (16)
0#(p(x1)) s#(s(0(x1))) (17)
0#(p(x1)) s#(s(s(0(x1)))) (18)
0#(p(x1)) s#(s(s(s(0(x1))))) (19)
0#(foo(x1)) 0#(x1) (20)
0#(foo(x1)) s#(0(x1)) (21)
0#(foo(x1)) s#(s(s(p(p(p(s(0(x1)))))))) (22)
0#(foo(x1)) s#(s(p(p(p(s(0(x1))))))) (23)
0#(foo(x1)) s#(p(s(s(s(p(p(p(s(0(x1)))))))))) (24)
0#(foo(x1)) s#(p(p(p(s(0(x1)))))) (25)
0#(bar(x1)) 0#(x1) (26)
0#(bar(x1)) s#(s(s(p(0(x1))))) (27)
0#(bar(x1)) s#(s(p(0(x1)))) (28)
0#(bar(x1)) s#(p(0(x1))) (29)
s#(foo(x1)) s#(s(p(s(s(p(p(p(s(p(x1)))))))))) (30)
s#(foo(x1)) s#(s(p(p(p(s(p(x1))))))) (31)
s#(foo(x1)) s#(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1))))))))))))))))) (32)
s#(foo(x1)) s#(s(p(p(bar(s(p(s(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1)))))))))))))))))))))))) (33)
s#(foo(x1)) s#(p(x1)) (34)
s#(foo(x1)) s#(p(s(s(p(s(s(p(p(p(s(p(x1)))))))))))) (35)
s#(foo(x1)) s#(p(s(s(p(p(p(s(p(x1))))))))) (36)
s#(foo(x1)) s#(p(s(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1))))))))))))))))))) (37)
s#(foo(x1)) s#(p(s(s(p(p(bar(s(p(s(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1)))))))))))))))))))))))))) (38)
s#(foo(x1)) s#(p(p(p(s(p(x1)))))) (39)
s#(foo(x1)) s#(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1)))))))))))))))) (40)
s#(foo(x1)) s#(p(p(bar(s(p(s(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1))))))))))))))))))))))) (41)
s#(bar(x1)) s#(s(p(p(s(p(x1)))))) (42)
s#(bar(x1)) s#(s(p(p(s(foo(s(s(p(p(s(p(x1)))))))))))) (43)
s#(bar(x1)) s#(p(x1)) (44)
s#(bar(x1)) s#(p(p(s(p(x1))))) (45)
s#(bar(x1)) s#(p(p(s(foo(s(s(p(p(s(p(x1))))))))))) (46)
s#(bar(x1)) s#(foo(s(s(p(p(s(p(x1)))))))) (47)

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
[foo(x1)] = x1 +
0
[bar(x1)] = x1 +
0
[0#(x1)] = x1 +
1
[s#(x1)] = x1 +
0
together with the usable rules
0(foo(x1)) s(p(s(s(s(p(p(p(s(0(x1)))))))))) (8)
s(foo(x1)) s(p(s(s(p(p(bar(s(p(s(s(p(p(foo(s(p(s(s(p(s(s(p(p(p(s(p(x1)))))))))))))))))))))))))) (9)
0(bar(x1)) s(s(s(p(0(x1))))) (10)
s(bar(x1)) s(s(p(p(s(foo(s(s(p(p(s(p(x1)))))))))))) (11)
s(p(p(x1))) p(x1) (12)
s(p(x1)) x1 (13)
0(p(x1)) s(s(s(s(0(x1))))) (14)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
0#(p(x1)) s#(0(x1)) (16)
0#(p(x1)) s#(s(0(x1))) (17)
0#(p(x1)) s#(s(s(0(x1)))) (18)
0#(p(x1)) s#(s(s(s(0(x1))))) (19)
0#(foo(x1)) s#(0(x1)) (21)
0#(foo(x1)) s#(s(s(p(p(p(s(0(x1)))))))) (22)
0#(foo(x1)) s#(s(p(p(p(s(0(x1))))))) (23)
0#(foo(x1)) s#(p(s(s(s(p(p(p(s(0(x1)))))))))) (24)
0#(foo(x1)) s#(p(p(p(s(0(x1)))))) (25)
0#(bar(x1)) s#(s(s(p(0(x1))))) (27)
0#(bar(x1)) s#(s(p(0(x1)))) (28)
0#(bar(x1)) s#(p(0(x1))) (29)
and no rules could be deleted.

1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.