YES
Termination Proof
Termination Proof
by ttt2 (version ttt2 1.15)
Input
The rewrite relation of the following TRS is considered.
|
begin(end(x0)) |
→ |
rewrite(end(x0)) |
|
begin(a(x0)) |
→ |
rotate(cut(Ca(guess(x0)))) |
|
begin(b(x0)) |
→ |
rotate(cut(Cb(guess(x0)))) |
|
guess(a(x0)) |
→ |
Ca(guess(x0)) |
|
guess(b(x0)) |
→ |
Cb(guess(x0)) |
|
guess(a(x0)) |
→ |
moveleft(Ba(wait(x0))) |
|
guess(b(x0)) |
→ |
moveleft(Bb(wait(x0))) |
|
guess(end(x0)) |
→ |
finish(end(x0)) |
|
Ca(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Aa(x0))) |
|
Cb(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ab(x0))) |
|
Ca(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Aa(x0))) |
|
Cb(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ab(x0))) |
|
cut(moveleft(Ba(x0))) |
→ |
Da(cut(goright(x0))) |
|
cut(moveleft(Bb(x0))) |
→ |
Db(cut(goright(x0))) |
|
goright(Aa(x0)) |
→ |
Ca(goright(x0)) |
|
goright(Ab(x0)) |
→ |
Cb(goright(x0)) |
|
goright(wait(a(x0))) |
→ |
moveleft(Ba(wait(x0))) |
|
goright(wait(b(x0))) |
→ |
moveleft(Bb(wait(x0))) |
|
goright(wait(end(x0))) |
→ |
finish(end(x0)) |
|
Ca(finish(x0)) |
→ |
finish(a(x0)) |
|
Cb(finish(x0)) |
→ |
finish(b(x0)) |
|
cut(finish(x0)) |
→ |
finish2(x0) |
|
Da(finish2(x0)) |
→ |
finish2(a(x0)) |
|
Db(finish2(x0)) |
→ |
finish2(b(x0)) |
|
rotate(finish2(x0)) |
→ |
rewrite(x0) |
|
rewrite(a(a(x0))) |
→ |
begin(b(b(b(x0)))) |
|
rewrite(b(b(b(b(b(x0)))))) |
→ |
begin(a(a(a(x0)))) |
Proof
1 String Reversal
Since only unary symbols occur, one can reverse all terms and obtains the TRS
|
end(begin(x0)) |
→ |
end(rewrite(x0)) |
|
a(begin(x0)) |
→ |
guess(Ca(cut(rotate(x0)))) |
|
b(begin(x0)) |
→ |
guess(Cb(cut(rotate(x0)))) |
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
a(guess(x0)) |
→ |
wait(Ba(moveleft(x0))) |
|
b(guess(x0)) |
→ |
wait(Bb(moveleft(x0))) |
|
end(guess(x0)) |
→ |
end(finish(x0)) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
end(wait(goright(x0))) |
→ |
end(finish(x0)) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish(cut(x0)) |
→ |
finish2(x0) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
|
finish2(rotate(x0)) |
→ |
rewrite(x0) |
|
a(a(rewrite(x0))) |
→ |
b(b(b(begin(x0)))) |
|
b(b(b(b(b(rewrite(x0)))))) |
→ |
a(a(a(begin(x0)))) |
1.1 Rule Removal
Using the
linear polynomial interpretation over (2 x 2)-matrices with strict dimension 1
over the naturals
| [Da(x1)] |
= |
·
x1 +
|
| [guess(x1)] |
= |
·
x1 +
|
| [Aa(x1)] |
= |
·
x1 +
|
| [b(x1)] |
= |
·
x1 +
|
| [begin(x1)] |
= |
·
x1 +
|
| [a(x1)] |
= |
·
x1 +
|
| [Ab(x1)] |
= |
·
x1 +
|
| [Db(x1)] |
= |
·
x1 +
|
| [goright(x1)] |
= |
·
x1 +
|
| [Ca(x1)] |
= |
·
x1 +
|
| [wait(x1)] |
= |
·
x1 +
|
| [end(x1)] |
= |
·
x1 +
|
| [rotate(x1)] |
= |
·
x1 +
|
| [finish2(x1)] |
= |
·
x1 +
|
| [finish(x1)] |
= |
·
x1 +
|
| [moveleft(x1)] |
= |
·
x1 +
|
| [Ba(x1)] |
= |
·
x1 +
|
| [Cb(x1)] |
= |
·
x1 +
|
| [Bb(x1)] |
= |
·
x1 +
|
| [cut(x1)] |
= |
·
x1 +
|
| [rewrite(x1)] |
= |
·
x1 +
|
the
rules
|
a(begin(x0)) |
→ |
guess(Ca(cut(rotate(x0)))) |
|
b(begin(x0)) |
→ |
guess(Cb(cut(rotate(x0)))) |
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
a(guess(x0)) |
→ |
wait(Ba(moveleft(x0))) |
|
b(guess(x0)) |
→ |
wait(Bb(moveleft(x0))) |
|
end(guess(x0)) |
→ |
end(finish(x0)) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
end(wait(goright(x0))) |
→ |
end(finish(x0)) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish(cut(x0)) |
→ |
finish2(x0) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
|
finish2(rotate(x0)) |
→ |
rewrite(x0) |
|
a(a(rewrite(x0))) |
→ |
b(b(b(begin(x0)))) |
|
b(b(b(b(b(rewrite(x0)))))) |
→ |
a(a(a(begin(x0)))) |
remain.
1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
| [Da(x1)] |
= |
6 ·
x1 +
-∞
|
| [guess(x1)] |
= |
10 ·
x1 +
-∞
|
| [Aa(x1)] |
= |
6 ·
x1 +
-∞
|
| [b(x1)] |
= |
4 ·
x1 +
-∞
|
| [begin(x1)] |
= |
10 ·
x1 +
-∞
|
| [a(x1)] |
= |
6 ·
x1 +
-∞
|
| [Ab(x1)] |
= |
4 ·
x1 +
-∞
|
| [Db(x1)] |
= |
4 ·
x1 +
-∞
|
| [goright(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ca(x1)] |
= |
6 ·
x1 +
-∞
|
| [wait(x1)] |
= |
10 ·
x1 +
-∞
|
| [end(x1)] |
= |
0 ·
x1 +
-∞
|
| [rotate(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish2(x1)] |
= |
10 ·
x1 +
-∞
|
| [finish(x1)] |
= |
10 ·
x1 +
-∞
|
| [moveleft(x1)] |
= |
1 ·
x1 +
-∞
|
| [Ba(x1)] |
= |
5 ·
x1 +
-∞
|
| [Cb(x1)] |
= |
4 ·
x1 +
-∞
|
| [Bb(x1)] |
= |
3 ·
x1 +
-∞
|
| [cut(x1)] |
= |
0 ·
x1 +
-∞
|
| [rewrite(x1)] |
= |
10 ·
x1 +
-∞
|
the
rules
|
a(begin(x0)) |
→ |
guess(Ca(cut(rotate(x0)))) |
|
b(begin(x0)) |
→ |
guess(Cb(cut(rotate(x0)))) |
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
a(guess(x0)) |
→ |
wait(Ba(moveleft(x0))) |
|
b(guess(x0)) |
→ |
wait(Bb(moveleft(x0))) |
|
end(guess(x0)) |
→ |
end(finish(x0)) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
end(wait(goright(x0))) |
→ |
end(finish(x0)) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish(cut(x0)) |
→ |
finish2(x0) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
|
finish2(rotate(x0)) |
→ |
rewrite(x0) |
|
a(a(rewrite(x0))) |
→ |
b(b(b(begin(x0)))) |
remain.
1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
| [Da(x1)] |
= |
14 ·
x1 +
-∞
|
| [guess(x1)] |
= |
1 ·
x1 +
-∞
|
| [Aa(x1)] |
= |
14 ·
x1 +
-∞
|
| [b(x1)] |
= |
8 ·
x1 +
-∞
|
| [begin(x1)] |
= |
3 ·
x1 +
-∞
|
| [a(x1)] |
= |
14 ·
x1 +
-∞
|
| [Ab(x1)] |
= |
8 ·
x1 +
-∞
|
| [Db(x1)] |
= |
8 ·
x1 +
-∞
|
| [goright(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ca(x1)] |
= |
14 ·
x1 +
-∞
|
| [wait(x1)] |
= |
1 ·
x1 +
-∞
|
| [end(x1)] |
= |
0 ·
x1 +
-∞
|
| [rotate(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish2(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish(x1)] |
= |
0 ·
x1 +
-∞
|
| [moveleft(x1)] |
= |
5 ·
x1 +
-∞
|
| [Ba(x1)] |
= |
9 ·
x1 +
-∞
|
| [Cb(x1)] |
= |
8 ·
x1 +
-∞
|
| [Bb(x1)] |
= |
3 ·
x1 +
-∞
|
| [cut(x1)] |
= |
2 ·
x1 +
-∞
|
| [rewrite(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
|
a(begin(x0)) |
→ |
guess(Ca(cut(rotate(x0)))) |
|
b(begin(x0)) |
→ |
guess(Cb(cut(rotate(x0)))) |
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
a(guess(x0)) |
→ |
wait(Ba(moveleft(x0))) |
|
b(guess(x0)) |
→ |
wait(Bb(moveleft(x0))) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
|
finish2(rotate(x0)) |
→ |
rewrite(x0) |
remain.
1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
| [Da(x1)] |
= |
14 ·
x1 +
-∞
|
| [guess(x1)] |
= |
0 ·
x1 +
-∞
|
| [Aa(x1)] |
= |
14 ·
x1 +
-∞
|
| [b(x1)] |
= |
2 ·
x1 +
-∞
|
| [begin(x1)] |
= |
1 ·
x1 +
-∞
|
| [a(x1)] |
= |
14 ·
x1 +
-∞
|
| [Ab(x1)] |
= |
2 ·
x1 +
-∞
|
| [Db(x1)] |
= |
2 ·
x1 +
-∞
|
| [goright(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ca(x1)] |
= |
14 ·
x1 +
-∞
|
| [wait(x1)] |
= |
0 ·
x1 +
-∞
|
| [rotate(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish2(x1)] |
= |
7 ·
x1 +
-∞
|
| [finish(x1)] |
= |
8 ·
x1 +
-∞
|
| [moveleft(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ba(x1)] |
= |
14 ·
x1 +
-∞
|
| [Cb(x1)] |
= |
2 ·
x1 +
-∞
|
| [Bb(x1)] |
= |
2 ·
x1 +
-∞
|
| [cut(x1)] |
= |
1 ·
x1 +
-∞
|
| [rewrite(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
|
a(begin(x0)) |
→ |
guess(Ca(cut(rotate(x0)))) |
|
b(begin(x0)) |
→ |
guess(Cb(cut(rotate(x0)))) |
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
a(guess(x0)) |
→ |
wait(Ba(moveleft(x0))) |
|
b(guess(x0)) |
→ |
wait(Bb(moveleft(x0))) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
remain.
1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
| [Da(x1)] |
= |
8 ·
x1 +
-∞
|
| [guess(x1)] |
= |
1 ·
x1 +
-∞
|
| [Aa(x1)] |
= |
8 ·
x1 +
-∞
|
| [b(x1)] |
= |
10 ·
x1 +
-∞
|
| [begin(x1)] |
= |
4 ·
x1 +
-∞
|
| [a(x1)] |
= |
8 ·
x1 +
-∞
|
| [Ab(x1)] |
= |
10 ·
x1 +
-∞
|
| [Db(x1)] |
= |
10 ·
x1 +
-∞
|
| [goright(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ca(x1)] |
= |
8 ·
x1 +
-∞
|
| [wait(x1)] |
= |
1 ·
x1 +
-∞
|
| [rotate(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish2(x1)] |
= |
2 ·
x1 +
-∞
|
| [finish(x1)] |
= |
0 ·
x1 +
-∞
|
| [moveleft(x1)] |
= |
1 ·
x1 +
-∞
|
| [Ba(x1)] |
= |
7 ·
x1 +
-∞
|
| [Cb(x1)] |
= |
10 ·
x1 +
-∞
|
| [Bb(x1)] |
= |
9 ·
x1 +
-∞
|
| [cut(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
a(guess(x0)) |
→ |
wait(Ba(moveleft(x0))) |
|
b(guess(x0)) |
→ |
wait(Bb(moveleft(x0))) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
remain.
1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
| [Da(x1)] |
= |
0 ·
x1 +
-∞
|
| [guess(x1)] |
= |
2 ·
x1 +
-∞
|
| [Aa(x1)] |
= |
0 ·
x1 +
-∞
|
| [b(x1)] |
= |
1 ·
x1 +
-∞
|
| [a(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ab(x1)] |
= |
1 ·
x1 +
-∞
|
| [Db(x1)] |
= |
1 ·
x1 +
-∞
|
| [goright(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ca(x1)] |
= |
0 ·
x1 +
-∞
|
| [wait(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish2(x1)] |
= |
0 ·
x1 +
-∞
|
| [finish(x1)] |
= |
0 ·
x1 +
-∞
|
| [moveleft(x1)] |
= |
0 ·
x1 +
-∞
|
| [Ba(x1)] |
= |
0 ·
x1 +
-∞
|
| [Cb(x1)] |
= |
1 ·
x1 +
-∞
|
| [Bb(x1)] |
= |
1 ·
x1 +
-∞
|
| [cut(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
|
a(guess(x0)) |
→ |
guess(Ca(x0)) |
|
b(guess(x0)) |
→ |
guess(Cb(x0)) |
|
Ba(moveleft(Ca(x0))) |
→ |
Aa(Ba(moveleft(x0))) |
|
Ba(moveleft(Cb(x0))) |
→ |
Ab(Ba(moveleft(x0))) |
|
Bb(moveleft(Ca(x0))) |
→ |
Aa(Bb(moveleft(x0))) |
|
Bb(moveleft(Cb(x0))) |
→ |
Ab(Bb(moveleft(x0))) |
|
Ba(moveleft(cut(x0))) |
→ |
goright(cut(Da(x0))) |
|
Bb(moveleft(cut(x0))) |
→ |
goright(cut(Db(x0))) |
|
Aa(goright(x0)) |
→ |
goright(Ca(x0)) |
|
Ab(goright(x0)) |
→ |
goright(Cb(x0)) |
|
a(wait(goright(x0))) |
→ |
wait(Ba(moveleft(x0))) |
|
b(wait(goright(x0))) |
→ |
wait(Bb(moveleft(x0))) |
|
finish(Ca(x0)) |
→ |
a(finish(x0)) |
|
finish(Cb(x0)) |
→ |
b(finish(x0)) |
|
finish2(Da(x0)) |
→ |
a(finish2(x0)) |
|
finish2(Db(x0)) |
→ |
b(finish2(x0)) |
remain.
1.1.1.1.1.1.1.1 Rule Removal
Using the
Knuth Bendix order with w0 = 1 and the following precedence and weight function
| prec(finish2) |
= |
2 |
|
weight(finish2) |
= |
1 |
|
|
|
| prec(Db) |
= |
0 |
|
weight(Db) |
= |
1 |
|
|
|
| prec(Da) |
= |
0 |
|
weight(Da) |
= |
1 |
|
|
|
| prec(goright) |
= |
0 |
|
weight(goright) |
= |
1 |
|
|
|
| prec(Ab) |
= |
1 |
|
weight(Ab) |
= |
1 |
|
|
|
| prec(Aa) |
= |
1 |
|
weight(Aa) |
= |
1 |
|
|
|
| prec(finish) |
= |
2 |
|
weight(finish) |
= |
1 |
|
|
|
| prec(Bb) |
= |
3 |
|
weight(Bb) |
= |
1 |
|
|
|
| prec(moveleft) |
= |
0 |
|
weight(moveleft) |
= |
1 |
|
|
|
| prec(Ba) |
= |
2 |
|
weight(Ba) |
= |
1 |
|
|
|
| prec(wait) |
= |
0 |
|
weight(wait) |
= |
1 |
|
|
|
| prec(Cb) |
= |
7 |
|
weight(Cb) |
= |
1 |
|
|
|
| prec(b) |
= |
1 |
|
weight(b) |
= |
1 |
|
|
|
| prec(cut) |
= |
0 |
|
weight(cut) |
= |
1 |
|
|
|
| prec(Ca) |
= |
0 |
|
weight(Ca) |
= |
1 |
|
|
|
| prec(guess) |
= |
0 |
|
weight(guess) |
= |
1 |
|
|
|
| prec(a) |
= |
1 |
|
weight(a) |
= |
1 |
|
|
|
all rules could be removed.
1.1.1.1.1.1.1.1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.