YES
Termination Proof
Termination Proof
by ttt2 (version ttt2 1.15)
Input
The rewrite relation of the following TRS is considered.
log(s(x0)) |
→ |
s(log(half(s(x0)))) |
half(0(x0)) |
→ |
0(s(s(half(x0)))) |
half(s(0(x0))) |
→ |
0(x0) |
half(s(s(x0))) |
→ |
s(half(p(s(s(x0))))) |
half(half(s(s(s(s(x0)))))) |
→ |
s(s(half(half(x0)))) |
p(s(s(s(x0)))) |
→ |
s(p(s(s(x0)))) |
s(s(p(s(x0)))) |
→ |
s(s(x0)) |
0(x0) |
→ |
x0 |
Proof
1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
[p(x1)] |
= |
0 ·
x1 +
-∞
|
[log(x1)] |
= |
0 ·
x1 +
-∞
|
[0(x1)] |
= |
1 ·
x1 +
-∞
|
[s(x1)] |
= |
0 ·
x1 +
-∞
|
[half(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
log(s(x0)) |
→ |
s(log(half(s(x0)))) |
half(0(x0)) |
→ |
0(s(s(half(x0)))) |
half(s(0(x0))) |
→ |
0(x0) |
half(s(s(x0))) |
→ |
s(half(p(s(s(x0))))) |
half(half(s(s(s(s(x0)))))) |
→ |
s(s(half(half(x0)))) |
p(s(s(s(x0)))) |
→ |
s(p(s(s(x0)))) |
s(s(p(s(x0)))) |
→ |
s(s(x0)) |
remain.
1.1 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
log#(s(x0)) |
→ |
half#(s(x0)) |
log#(s(x0)) |
→ |
log#(half(s(x0))) |
log#(s(x0)) |
→ |
s#(log(half(s(x0)))) |
half#(0(x0)) |
→ |
half#(x0) |
half#(0(x0)) |
→ |
s#(half(x0)) |
half#(0(x0)) |
→ |
s#(s(half(x0))) |
half#(s(s(x0))) |
→ |
p#(s(s(x0))) |
half#(s(s(x0))) |
→ |
half#(p(s(s(x0)))) |
half#(s(s(x0))) |
→ |
s#(half(p(s(s(x0))))) |
half#(half(s(s(s(s(x0)))))) |
→ |
half#(x0) |
half#(half(s(s(s(s(x0)))))) |
→ |
half#(half(x0)) |
half#(half(s(s(s(s(x0)))))) |
→ |
s#(half(half(x0))) |
half#(half(s(s(s(s(x0)))))) |
→ |
s#(s(half(half(x0)))) |
p#(s(s(s(x0)))) |
→ |
p#(s(s(x0))) |
p#(s(s(s(x0)))) |
→ |
s#(p(s(s(x0)))) |
s#(s(p(s(x0)))) |
→ |
s#(s(x0)) |
1.1.1 Dependency Graph Processor
The dependency pairs are split into 4
components.
-
The
1st
component contains the
pair
log#(s(x0)) |
→ |
log#(half(s(x0))) |
1.1.1.1 Reduction Pair Processor with Usable Rules
Using the linear polynomial interpretation over the arctic semiring over the integers
[p(x1)] |
= |
-7 ·
x1 + 4 |
[0(x1)] |
= |
-∞
·
x1 + 0 |
[log#(x1)] |
= |
0 ·
x1 + 4 |
[s(x1)] |
= |
7 ·
x1 + 8 |
[half(x1)] |
= |
-7 ·
x1 + 0 |
together with the usable
rules
s(s(p(s(x0)))) |
→ |
s(s(x0)) |
half(0(x0)) |
→ |
0(s(s(half(x0)))) |
half(s(0(x0))) |
→ |
0(x0) |
half(s(s(x0))) |
→ |
s(half(p(s(s(x0))))) |
half(half(s(s(s(s(x0)))))) |
→ |
s(s(half(half(x0)))) |
p(s(s(s(x0)))) |
→ |
s(p(s(s(x0)))) |
(w.r.t. the implicit argument filter of the reduction pair),
all pairs could be removed.
1.1.1.1.1 P is empty
There are no pairs anymore.
-
The
2nd
component contains the
pairs
half#(0(x0)) |
→ |
half#(x0) |
half#(half(s(s(s(s(x0)))))) |
→ |
half#(half(x0)) |
half#(half(s(s(s(s(x0)))))) |
→ |
half#(x0) |
half#(s(s(x0))) |
→ |
half#(p(s(s(x0)))) |
1.1.1.2 Reduction Pair Processor with Usable Rules
Using the linear polynomial interpretation over the arctic semiring over the integers
[p(x1)] |
= |
0 ·
x1 +
-∞
|
[0(x1)] |
= |
0 ·
x1 +
-∞
|
[s(x1)] |
= |
0 ·
x1 +
-∞
|
[half#(x1)] |
= |
4 ·
x1 + 0 |
[half(x1)] |
= |
12 ·
x1 + 0 |
together with the usable
rules
half(0(x0)) |
→ |
0(s(s(half(x0)))) |
half(s(0(x0))) |
→ |
0(x0) |
half(s(s(x0))) |
→ |
s(half(p(s(s(x0))))) |
half(half(s(s(s(s(x0)))))) |
→ |
s(s(half(half(x0)))) |
s(s(p(s(x0)))) |
→ |
s(s(x0)) |
p(s(s(s(x0)))) |
→ |
s(p(s(s(x0)))) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pairs
half#(0(x0)) |
→ |
half#(x0) |
half#(half(s(s(s(s(x0)))))) |
→ |
half#(half(x0)) |
half#(s(s(x0))) |
→ |
half#(p(s(s(x0)))) |
remain.
1.1.1.2.1 Dependency Graph Processor
The dependency pairs are split into 2
components.
-
The
3rd
component contains the
pair
p#(s(s(s(x0)))) |
→ |
p#(s(s(x0))) |
1.1.1.3 Reduction Pair Processor with Usable Rules
Using the linear polynomial interpretation over the arctic semiring over the integers
[p(x1)] |
= |
1 ·
x1 + 4 |
[p#(x1)] |
= |
0 ·
x1 + 0 |
[s(x1)] |
= |
10 ·
x1 + 1 |
together with the usable
rule
s(s(p(s(x0)))) |
→ |
s(s(x0)) |
(w.r.t. the implicit argument filter of the reduction pair),
all pairs could be removed.
1.1.1.3.1 P is empty
There are no pairs anymore.
-
The
4th
component contains the
pair
s#(s(p(s(x0)))) |
→ |
s#(s(x0)) |
1.1.1.4 Reduction Pair Processor with Usable Rules
Using the linear polynomial interpretation over the arctic semiring over the integers
[p(x1)] |
= |
1 ·
x1 + 1 |
[s(x1)] |
= |
0 ·
x1 +
-∞
|
[s#(x1)] |
= |
0 ·
x1 +
-∞
|
together with the usable
rule
s(s(p(s(x0)))) |
→ |
s(s(x0)) |
(w.r.t. the implicit argument filter of the reduction pair),
all pairs could be removed.
1.1.1.4.1 P is empty
There are no pairs anymore.