YES
Termination Proof
Termination Proof
by ttt2 (version ttt2 1.15)
Input
The rewrite relation of the following TRS is considered.
Begin(a(b(a(b(b(x0)))))) |
→ |
Wait(Right1(x0)) |
Begin(b(a(b(b(x0))))) |
→ |
Wait(Right2(x0)) |
Begin(a(b(b(x0)))) |
→ |
Wait(Right3(x0)) |
Begin(b(b(x0))) |
→ |
Wait(Right4(x0)) |
Begin(b(x0)) |
→ |
Wait(Right5(x0)) |
Right1(b(End(x0))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right2(b(a(End(x0)))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right3(b(a(b(End(x0))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right4(b(a(b(a(End(x0)))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right5(b(a(b(a(b(End(x0))))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right1(b(x0)) |
→ |
Ab(Right1(x0)) |
Right2(b(x0)) |
→ |
Ab(Right2(x0)) |
Right3(b(x0)) |
→ |
Ab(Right3(x0)) |
Right4(b(x0)) |
→ |
Ab(Right4(x0)) |
Right5(b(x0)) |
→ |
Ab(Right5(x0)) |
Right1(a(x0)) |
→ |
Aa(Right1(x0)) |
Right2(a(x0)) |
→ |
Aa(Right2(x0)) |
Right3(a(x0)) |
→ |
Aa(Right3(x0)) |
Right4(a(x0)) |
→ |
Aa(Right4(x0)) |
Right5(a(x0)) |
→ |
Aa(Right5(x0)) |
Ab(Left(x0)) |
→ |
Left(b(x0)) |
Aa(Left(x0)) |
→ |
Left(a(x0)) |
Wait(Left(x0)) |
→ |
Begin(x0) |
b(a(b(a(b(b(x0)))))) |
→ |
a(b(a(b(b(b(a(x0))))))) |
Proof
1 Rule Removal
Using the
linear polynomial interpretation over (2 x 2)-matrices with strict dimension 1
over the naturals
[Wait(x1)] |
= |
·
x1 +
|
[Right5(x1)] |
= |
·
x1 +
|
[a(x1)] |
= |
·
x1 +
|
[Right1(x1)] |
= |
·
x1 +
|
[Right2(x1)] |
= |
·
x1 +
|
[Left(x1)] |
= |
·
x1 +
|
[b(x1)] |
= |
·
x1 +
|
[Right4(x1)] |
= |
·
x1 +
|
[Aa(x1)] |
= |
·
x1 +
|
[Ab(x1)] |
= |
·
x1 +
|
[End(x1)] |
= |
·
x1 +
|
[Right3(x1)] |
= |
·
x1 +
|
[Begin(x1)] |
= |
·
x1 +
|
the
rules
Begin(a(b(a(b(b(x0)))))) |
→ |
Wait(Right1(x0)) |
Begin(b(a(b(b(x0))))) |
→ |
Wait(Right2(x0)) |
Begin(a(b(b(x0)))) |
→ |
Wait(Right3(x0)) |
Begin(b(b(x0))) |
→ |
Wait(Right4(x0)) |
Begin(b(x0)) |
→ |
Wait(Right5(x0)) |
Right2(b(a(End(x0)))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right4(b(a(b(a(End(x0)))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right1(b(x0)) |
→ |
Ab(Right1(x0)) |
Right2(b(x0)) |
→ |
Ab(Right2(x0)) |
Right3(b(x0)) |
→ |
Ab(Right3(x0)) |
Right4(b(x0)) |
→ |
Ab(Right4(x0)) |
Right5(b(x0)) |
→ |
Ab(Right5(x0)) |
Right1(a(x0)) |
→ |
Aa(Right1(x0)) |
Right2(a(x0)) |
→ |
Aa(Right2(x0)) |
Right3(a(x0)) |
→ |
Aa(Right3(x0)) |
Right4(a(x0)) |
→ |
Aa(Right4(x0)) |
Right5(a(x0)) |
→ |
Aa(Right5(x0)) |
Ab(Left(x0)) |
→ |
Left(b(x0)) |
Aa(Left(x0)) |
→ |
Left(a(x0)) |
Wait(Left(x0)) |
→ |
Begin(x0) |
b(a(b(a(b(b(x0)))))) |
→ |
a(b(a(b(b(b(a(x0))))))) |
remain.
1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
[Wait(x1)] |
= |
7 ·
x1 +
-∞
|
[Right5(x1)] |
= |
3 ·
x1 +
-∞
|
[a(x1)] |
= |
0 ·
x1 +
-∞
|
[Right1(x1)] |
= |
0 ·
x1 +
-∞
|
[Right2(x1)] |
= |
7 ·
x1 +
-∞
|
[Left(x1)] |
= |
1 ·
x1 +
-∞
|
[b(x1)] |
= |
2 ·
x1 +
-∞
|
[Right4(x1)] |
= |
5 ·
x1 +
-∞
|
[Aa(x1)] |
= |
0 ·
x1 +
-∞
|
[Ab(x1)] |
= |
2 ·
x1 +
-∞
|
[End(x1)] |
= |
13 ·
x1 +
-∞
|
[Right3(x1)] |
= |
5 ·
x1 +
-∞
|
[Begin(x1)] |
= |
8 ·
x1 +
-∞
|
the
rules
Begin(b(a(b(b(x0))))) |
→ |
Wait(Right2(x0)) |
Begin(a(b(b(x0)))) |
→ |
Wait(Right3(x0)) |
Begin(b(b(x0))) |
→ |
Wait(Right4(x0)) |
Begin(b(x0)) |
→ |
Wait(Right5(x0)) |
Right2(b(a(End(x0)))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right4(b(a(b(a(End(x0)))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right1(b(x0)) |
→ |
Ab(Right1(x0)) |
Right2(b(x0)) |
→ |
Ab(Right2(x0)) |
Right3(b(x0)) |
→ |
Ab(Right3(x0)) |
Right4(b(x0)) |
→ |
Ab(Right4(x0)) |
Right5(b(x0)) |
→ |
Ab(Right5(x0)) |
Right1(a(x0)) |
→ |
Aa(Right1(x0)) |
Right2(a(x0)) |
→ |
Aa(Right2(x0)) |
Right3(a(x0)) |
→ |
Aa(Right3(x0)) |
Right4(a(x0)) |
→ |
Aa(Right4(x0)) |
Right5(a(x0)) |
→ |
Aa(Right5(x0)) |
Ab(Left(x0)) |
→ |
Left(b(x0)) |
Aa(Left(x0)) |
→ |
Left(a(x0)) |
Wait(Left(x0)) |
→ |
Begin(x0) |
b(a(b(a(b(b(x0)))))) |
→ |
a(b(a(b(b(b(a(x0))))))) |
remain.
1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
[Wait(x1)] |
= |
0 ·
x1 +
-∞
|
[Right5(x1)] |
= |
0 ·
x1 +
-∞
|
[a(x1)] |
= |
0 ·
x1 +
-∞
|
[Right1(x1)] |
= |
0 ·
x1 +
-∞
|
[Right2(x1)] |
= |
1 ·
x1 +
-∞
|
[Left(x1)] |
= |
1 ·
x1 +
-∞
|
[b(x1)] |
= |
0 ·
x1 +
-∞
|
[Right4(x1)] |
= |
1 ·
x1 +
-∞
|
[Aa(x1)] |
= |
0 ·
x1 +
-∞
|
[Ab(x1)] |
= |
0 ·
x1 +
-∞
|
[End(x1)] |
= |
0 ·
x1 +
-∞
|
[Right3(x1)] |
= |
0 ·
x1 +
-∞
|
[Begin(x1)] |
= |
1 ·
x1 +
-∞
|
the
rules
Begin(b(a(b(b(x0))))) |
→ |
Wait(Right2(x0)) |
Begin(b(b(x0))) |
→ |
Wait(Right4(x0)) |
Right2(b(a(End(x0)))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right4(b(a(b(a(End(x0)))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right1(b(x0)) |
→ |
Ab(Right1(x0)) |
Right2(b(x0)) |
→ |
Ab(Right2(x0)) |
Right3(b(x0)) |
→ |
Ab(Right3(x0)) |
Right4(b(x0)) |
→ |
Ab(Right4(x0)) |
Right5(b(x0)) |
→ |
Ab(Right5(x0)) |
Right1(a(x0)) |
→ |
Aa(Right1(x0)) |
Right2(a(x0)) |
→ |
Aa(Right2(x0)) |
Right3(a(x0)) |
→ |
Aa(Right3(x0)) |
Right4(a(x0)) |
→ |
Aa(Right4(x0)) |
Right5(a(x0)) |
→ |
Aa(Right5(x0)) |
Ab(Left(x0)) |
→ |
Left(b(x0)) |
Aa(Left(x0)) |
→ |
Left(a(x0)) |
Wait(Left(x0)) |
→ |
Begin(x0) |
b(a(b(a(b(b(x0)))))) |
→ |
a(b(a(b(b(b(a(x0))))))) |
remain.
1.1.1.1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
b(b(a(b(Begin(x0))))) |
→ |
Right2(Wait(x0)) |
b(b(Begin(x0))) |
→ |
Right4(Wait(x0)) |
End(a(b(Right2(x0)))) |
→ |
End(a(b(b(b(a(b(a(Left(x0))))))))) |
End(a(b(a(b(Right4(x0)))))) |
→ |
End(a(b(b(b(a(b(a(Left(x0))))))))) |
b(Right1(x0)) |
→ |
Right1(Ab(x0)) |
b(Right2(x0)) |
→ |
Right2(Ab(x0)) |
b(Right3(x0)) |
→ |
Right3(Ab(x0)) |
b(Right4(x0)) |
→ |
Right4(Ab(x0)) |
b(Right5(x0)) |
→ |
Right5(Ab(x0)) |
a(Right1(x0)) |
→ |
Right1(Aa(x0)) |
a(Right2(x0)) |
→ |
Right2(Aa(x0)) |
a(Right3(x0)) |
→ |
Right3(Aa(x0)) |
a(Right4(x0)) |
→ |
Right4(Aa(x0)) |
a(Right5(x0)) |
→ |
Right5(Aa(x0)) |
Left(Ab(x0)) |
→ |
b(Left(x0)) |
Left(Aa(x0)) |
→ |
a(Left(x0)) |
Left(Wait(x0)) |
→ |
Begin(x0) |
b(b(a(b(a(b(x0)))))) |
→ |
a(b(b(b(a(b(a(x0))))))) |
1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[Wait(x1)] |
= |
2 ·
x1 + 1 |
[Right5(x1)] |
= |
6 ·
x1 + 0 |
[a(x1)] |
= |
1 ·
x1 + 0 |
[Right1(x1)] |
= |
4 ·
x1 + 12 |
[Right2(x1)] |
= |
8 ·
x1 + 0 |
[Left(x1)] |
= |
1 ·
x1 + 0 |
[b(x1)] |
= |
2 ·
x1 + 0 |
[Right4(x1)] |
= |
4 ·
x1 + 0 |
[Aa(x1)] |
= |
1 ·
x1 + 0 |
[Ab(x1)] |
= |
2 ·
x1 + 0 |
[End(x1)] |
= |
1 ·
x1 + 0 |
[Right3(x1)] |
= |
4 ·
x1 + 3 |
[Begin(x1)] |
= |
2 ·
x1 + 1 |
the
rules
b(b(a(b(Begin(x0))))) |
→ |
Right2(Wait(x0)) |
b(b(Begin(x0))) |
→ |
Right4(Wait(x0)) |
End(a(b(Right2(x0)))) |
→ |
End(a(b(b(b(a(b(a(Left(x0))))))))) |
End(a(b(a(b(Right4(x0)))))) |
→ |
End(a(b(b(b(a(b(a(Left(x0))))))))) |
b(Right2(x0)) |
→ |
Right2(Ab(x0)) |
b(Right4(x0)) |
→ |
Right4(Ab(x0)) |
b(Right5(x0)) |
→ |
Right5(Ab(x0)) |
a(Right1(x0)) |
→ |
Right1(Aa(x0)) |
a(Right2(x0)) |
→ |
Right2(Aa(x0)) |
a(Right3(x0)) |
→ |
Right3(Aa(x0)) |
a(Right4(x0)) |
→ |
Right4(Aa(x0)) |
a(Right5(x0)) |
→ |
Right5(Aa(x0)) |
Left(Ab(x0)) |
→ |
b(Left(x0)) |
Left(Aa(x0)) |
→ |
a(Left(x0)) |
Left(Wait(x0)) |
→ |
Begin(x0) |
b(b(a(b(a(b(x0)))))) |
→ |
a(b(b(b(a(b(a(x0))))))) |
remain.
1.1.1.1.1.1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
Begin(b(a(b(b(x0))))) |
→ |
Wait(Right2(x0)) |
Begin(b(b(x0))) |
→ |
Wait(Right4(x0)) |
Right2(b(a(End(x0)))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right4(b(a(b(a(End(x0)))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right2(b(x0)) |
→ |
Ab(Right2(x0)) |
Right4(b(x0)) |
→ |
Ab(Right4(x0)) |
Right5(b(x0)) |
→ |
Ab(Right5(x0)) |
Right1(a(x0)) |
→ |
Aa(Right1(x0)) |
Right2(a(x0)) |
→ |
Aa(Right2(x0)) |
Right3(a(x0)) |
→ |
Aa(Right3(x0)) |
Right4(a(x0)) |
→ |
Aa(Right4(x0)) |
Right5(a(x0)) |
→ |
Aa(Right5(x0)) |
Ab(Left(x0)) |
→ |
Left(b(x0)) |
Aa(Left(x0)) |
→ |
Left(a(x0)) |
Wait(Left(x0)) |
→ |
Begin(x0) |
b(a(b(a(b(b(x0)))))) |
→ |
a(b(a(b(b(b(a(x0))))))) |
1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[Wait(x1)] |
= |
1 ·
x1 + 0 |
[Right5(x1)] |
= |
8 ·
x1 + 7 |
[a(x1)] |
= |
1 ·
x1 + 0 |
[Right1(x1)] |
= |
2 ·
x1 + 5 |
[Right2(x1)] |
= |
8 ·
x1 + 14 |
[Left(x1)] |
= |
1 ·
x1 + 0 |
[b(x1)] |
= |
2 ·
x1 + 2 |
[Right4(x1)] |
= |
4 ·
x1 + 6 |
[Aa(x1)] |
= |
1 ·
x1 + 0 |
[Ab(x1)] |
= |
2 ·
x1 + 2 |
[End(x1)] |
= |
1 ·
x1 + 0 |
[Right3(x1)] |
= |
8 ·
x1 + 2 |
[Begin(x1)] |
= |
1 ·
x1 + 0 |
the
rules
Begin(b(a(b(b(x0))))) |
→ |
Wait(Right2(x0)) |
Begin(b(b(x0))) |
→ |
Wait(Right4(x0)) |
Right2(b(a(End(x0)))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right4(b(a(b(a(End(x0)))))) |
→ |
Left(a(b(a(b(b(b(a(End(x0))))))))) |
Right2(b(x0)) |
→ |
Ab(Right2(x0)) |
Right4(b(x0)) |
→ |
Ab(Right4(x0)) |
Right1(a(x0)) |
→ |
Aa(Right1(x0)) |
Right2(a(x0)) |
→ |
Aa(Right2(x0)) |
Right3(a(x0)) |
→ |
Aa(Right3(x0)) |
Right4(a(x0)) |
→ |
Aa(Right4(x0)) |
Right5(a(x0)) |
→ |
Aa(Right5(x0)) |
Ab(Left(x0)) |
→ |
Left(b(x0)) |
Aa(Left(x0)) |
→ |
Left(a(x0)) |
Wait(Left(x0)) |
→ |
Begin(x0) |
b(a(b(a(b(b(x0)))))) |
→ |
a(b(a(b(b(b(a(x0))))))) |
remain.
1.1.1.1.1.1.1.1 Dependency Pair Transformation
The following set of initial dependency pairs has been identified.
Begin#(b(a(b(b(x0))))) |
→ |
Right2#(x0) |
Begin#(b(a(b(b(x0))))) |
→ |
Wait#(Right2(x0)) |
Begin#(b(b(x0))) |
→ |
Right4#(x0) |
Begin#(b(b(x0))) |
→ |
Wait#(Right4(x0)) |
Right2#(b(a(End(x0)))) |
→ |
b#(b(a(End(x0)))) |
Right2#(b(a(End(x0)))) |
→ |
b#(b(b(a(End(x0))))) |
Right2#(b(a(End(x0)))) |
→ |
b#(a(b(b(b(a(End(x0))))))) |
Right4#(b(a(b(a(End(x0)))))) |
→ |
b#(b(a(End(x0)))) |
Right4#(b(a(b(a(End(x0)))))) |
→ |
b#(b(b(a(End(x0))))) |
Right4#(b(a(b(a(End(x0)))))) |
→ |
b#(a(b(b(b(a(End(x0))))))) |
Right2#(b(x0)) |
→ |
Right2#(x0) |
Right2#(b(x0)) |
→ |
Ab#(Right2(x0)) |
Right4#(b(x0)) |
→ |
Right4#(x0) |
Right4#(b(x0)) |
→ |
Ab#(Right4(x0)) |
Right1#(a(x0)) |
→ |
Right1#(x0) |
Right1#(a(x0)) |
→ |
Aa#(Right1(x0)) |
Right2#(a(x0)) |
→ |
Right2#(x0) |
Right2#(a(x0)) |
→ |
Aa#(Right2(x0)) |
Right3#(a(x0)) |
→ |
Right3#(x0) |
Right3#(a(x0)) |
→ |
Aa#(Right3(x0)) |
Right4#(a(x0)) |
→ |
Right4#(x0) |
Right4#(a(x0)) |
→ |
Aa#(Right4(x0)) |
Right5#(a(x0)) |
→ |
Right5#(x0) |
Right5#(a(x0)) |
→ |
Aa#(Right5(x0)) |
Ab#(Left(x0)) |
→ |
b#(x0) |
Wait#(Left(x0)) |
→ |
Begin#(x0) |
b#(a(b(a(b(b(x0)))))) |
→ |
b#(a(x0)) |
b#(a(b(a(b(b(x0)))))) |
→ |
b#(b(a(x0))) |
b#(a(b(a(b(b(x0)))))) |
→ |
b#(b(b(a(x0)))) |
b#(a(b(a(b(b(x0)))))) |
→ |
b#(a(b(b(b(a(x0)))))) |
1.1.1.1.1.1.1.1.1 Dependency Graph Processor
The dependency pairs are split into 2
components.