YES
Termination Proof
Termination Proof
by ttt2 (version ttt2 1.15)
Input
The rewrite relation of the following TRS is considered.
p(0(x0)) |
→ |
0(s(s(p(x0)))) |
p(s(x0)) |
→ |
x0 |
p(p(s(x0))) |
→ |
p(x0) |
f(s(x0)) |
→ |
g(s(x0)) |
g(x0) |
→ |
i(s(half(x0))) |
i(x0) |
→ |
f(p(x0)) |
half(0(x0)) |
→ |
0(s(s(half(x0)))) |
half(s(s(x0))) |
→ |
s(half(p(p(s(s(x0)))))) |
0(x0) |
→ |
x0 |
rd(0(x0)) |
→ |
0(0(0(0(0(0(rd(x0))))))) |
Proof
1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[g(x1)] |
= |
8 ·
x1 + 0 |
[p(x1)] |
= |
1 ·
x1 + 0 |
[f(x1)] |
= |
8 ·
x1 + 0 |
[half(x1)] |
= |
1 ·
x1 + 0 |
[0(x1)] |
= |
1 ·
x1 + 1 |
[rd(x1)] |
= |
8 ·
x1 + 0 |
[i(x1)] |
= |
8 ·
x1 + 0 |
[s(x1)] |
= |
1 ·
x1 + 0 |
the
rules
p(0(x0)) |
→ |
0(s(s(p(x0)))) |
p(s(x0)) |
→ |
x0 |
p(p(s(x0))) |
→ |
p(x0) |
f(s(x0)) |
→ |
g(s(x0)) |
g(x0) |
→ |
i(s(half(x0))) |
i(x0) |
→ |
f(p(x0)) |
half(0(x0)) |
→ |
0(s(s(half(x0)))) |
half(s(s(x0))) |
→ |
s(half(p(p(s(s(x0)))))) |
remain.
1.1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
0(p(x0)) |
→ |
p(s(s(0(x0)))) |
s(p(x0)) |
→ |
x0 |
s(p(p(x0))) |
→ |
p(x0) |
s(f(x0)) |
→ |
s(g(x0)) |
g(x0) |
→ |
half(s(i(x0))) |
i(x0) |
→ |
p(f(x0)) |
0(half(x0)) |
→ |
half(s(s(0(x0)))) |
s(s(half(x0))) |
→ |
s(s(p(p(half(s(x0)))))) |
1.1.1 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
0#(p(x0)) |
→ |
0#(x0) |
0#(p(x0)) |
→ |
s#(0(x0)) |
0#(p(x0)) |
→ |
s#(s(0(x0))) |
s#(f(x0)) |
→ |
g#(x0) |
s#(f(x0)) |
→ |
s#(g(x0)) |
g#(x0) |
→ |
i#(x0) |
g#(x0) |
→ |
s#(i(x0)) |
0#(half(x0)) |
→ |
0#(x0) |
0#(half(x0)) |
→ |
s#(0(x0)) |
0#(half(x0)) |
→ |
s#(s(0(x0))) |
s#(s(half(x0))) |
→ |
s#(x0) |
s#(s(half(x0))) |
→ |
s#(p(p(half(s(x0))))) |
s#(s(half(x0))) |
→ |
s#(s(p(p(half(s(x0)))))) |
1.1.1.1 Dependency Graph Processor
The dependency pairs are split into 0
components.