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.