Certification Problem
Input (TPDB TRS_Standard/Various_04/15)
The rewrite relation of the following TRS is considered.
f(s(x)) |
→ |
s(s(f(p(s(x))))) |
(1) |
f(0) |
→ |
0 |
(2) |
p(s(x)) |
→ |
x |
(3) |
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 Constant to Unary
Every constant is turned into a unary function symbol to obtain the TRS
f(s(x)) |
→ |
s(s(f(p(s(x))))) |
(1) |
f(0'(x)) |
→ |
0'(x) |
(4) |
p(s(x)) |
→ |
x |
(3) |
1.1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
s(f(x)) |
→ |
s(p(f(s(s(x))))) |
(5) |
0'(f(x)) |
→ |
0'(x) |
(6) |
s(p(x)) |
→ |
x |
(7) |
1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[s(x1)] |
= |
1 · x1
|
[f(x1)] |
= |
1 · x1 + 1 |
[p(x1)] |
= |
1 · x1
|
[0'(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
1.1.1.1 Switch to Innermost Termination
The TRS is overlay and locally confluent:
10Hence, it suffices to show innermost termination in the following.
1.1.1.1.1 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
s#(f(x)) |
→ |
s#(p(f(s(s(x))))) |
(8) |
s#(f(x)) |
→ |
s#(s(x)) |
(9) |
s#(f(x)) |
→ |
s#(x) |
(10) |
1.1.1.1.1.1 Dependency Graph Processor
The dependency pairs are split into 1
component.