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)))) |
begin(c(x0)) |
→ |
rotate(cut(Cc(guess(x0)))) |
begin(d(x0)) |
→ |
rotate(cut(Cd(guess(x0)))) |
guess(a(x0)) |
→ |
Ca(guess(x0)) |
guess(b(x0)) |
→ |
Cb(guess(x0)) |
guess(c(x0)) |
→ |
Cc(guess(x0)) |
guess(d(x0)) |
→ |
Cd(guess(x0)) |
guess(a(x0)) |
→ |
moveleft(Ba(wait(x0))) |
guess(b(x0)) |
→ |
moveleft(Bb(wait(x0))) |
guess(c(x0)) |
→ |
moveleft(Bc(wait(x0))) |
guess(d(x0)) |
→ |
moveleft(Bd(wait(x0))) |
guess(end(x0)) |
→ |
finish(end(x0)) |
Ca(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Aa(x0))) |
Cb(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ab(x0))) |
Cc(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ac(x0))) |
Cd(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ad(x0))) |
Ca(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Aa(x0))) |
Cb(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ab(x0))) |
Cc(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ac(x0))) |
Cd(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ad(x0))) |
Ca(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Aa(x0))) |
Cb(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ab(x0))) |
Cc(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ac(x0))) |
Cd(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ad(x0))) |
Ca(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Aa(x0))) |
Cb(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ab(x0))) |
Cc(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ac(x0))) |
Cd(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ad(x0))) |
cut(moveleft(Ba(x0))) |
→ |
Da(cut(goright(x0))) |
cut(moveleft(Bb(x0))) |
→ |
Db(cut(goright(x0))) |
cut(moveleft(Bc(x0))) |
→ |
Dc(cut(goright(x0))) |
cut(moveleft(Bd(x0))) |
→ |
Dd(cut(goright(x0))) |
goright(Aa(x0)) |
→ |
Ca(goright(x0)) |
goright(Ab(x0)) |
→ |
Cb(goright(x0)) |
goright(Ac(x0)) |
→ |
Cc(goright(x0)) |
goright(Ad(x0)) |
→ |
Cd(goright(x0)) |
goright(wait(a(x0))) |
→ |
moveleft(Ba(wait(x0))) |
goright(wait(b(x0))) |
→ |
moveleft(Bb(wait(x0))) |
goright(wait(c(x0))) |
→ |
moveleft(Bc(wait(x0))) |
goright(wait(d(x0))) |
→ |
moveleft(Bd(wait(x0))) |
goright(wait(end(x0))) |
→ |
finish(end(x0)) |
Ca(finish(x0)) |
→ |
finish(a(x0)) |
Cb(finish(x0)) |
→ |
finish(b(x0)) |
Cc(finish(x0)) |
→ |
finish(c(x0)) |
Cd(finish(x0)) |
→ |
finish(d(x0)) |
cut(finish(x0)) |
→ |
finish2(x0) |
Da(finish2(x0)) |
→ |
finish2(a(x0)) |
Db(finish2(x0)) |
→ |
finish2(b(x0)) |
Dc(finish2(x0)) |
→ |
finish2(c(x0)) |
Dd(finish2(x0)) |
→ |
finish2(d(x0)) |
rotate(finish2(x0)) |
→ |
rewrite(x0) |
rewrite(a(a(x0))) |
→ |
begin(b(b(b(x0)))) |
rewrite(b(b(x0))) |
→ |
begin(c(c(c(x0)))) |
rewrite(c(c(x0))) |
→ |
begin(d(d(d(x0)))) |
rewrite(b(x0)) |
→ |
begin(d(d(x0))) |
rewrite(c(d(d(x0)))) |
→ |
begin(a(x0)) |
Proof
1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
[Bc(x1)] |
= |
3 ·
x1 +
-∞
|
[guess(x1)] |
= |
0 ·
x1 +
-∞
|
[Ba(x1)] |
= |
11 ·
x1 +
-∞
|
[b(x1)] |
= |
9 ·
x1 +
-∞
|
[begin(x1)] |
= |
0 ·
x1 +
-∞
|
[a(x1)] |
= |
14 ·
x1 +
-∞
|
[moveleft(x1)] |
= |
3 ·
x1 +
-∞
|
[Aa(x1)] |
= |
14 ·
x1 +
-∞
|
[Da(x1)] |
= |
14 ·
x1 +
-∞
|
[Bd(x1)] |
= |
1 ·
x1 +
-∞
|
[Bb(x1)] |
= |
6 ·
x1 +
-∞
|
[Db(x1)] |
= |
9 ·
x1 +
-∞
|
[Ab(x1)] |
= |
9 ·
x1 +
-∞
|
[Dc(x1)] |
= |
6 ·
x1 +
-∞
|
[Ca(x1)] |
= |
14 ·
x1 +
-∞
|
[c(x1)] |
= |
6 ·
x1 +
-∞
|
[end(x1)] |
= |
8 ·
x1 +
-∞
|
[rotate(x1)] |
= |
0 ·
x1 +
-∞
|
[finish(x1)] |
= |
0 ·
x1 +
-∞
|
[goright(x1)] |
= |
0 ·
x1 +
-∞
|
[finish2(x1)] |
= |
0 ·
x1 +
-∞
|
[wait(x1)] |
= |
0 ·
x1 +
-∞
|
[d(x1)] |
= |
4 ·
x1 +
-∞
|
[Ac(x1)] |
= |
6 ·
x1 +
-∞
|
[Ad(x1)] |
= |
4 ·
x1 +
-∞
|
[Cc(x1)] |
= |
6 ·
x1 +
-∞
|
[Cb(x1)] |
= |
9 ·
x1 +
-∞
|
[Cd(x1)] |
= |
4 ·
x1 +
-∞
|
[cut(x1)] |
= |
0 ·
x1 +
-∞
|
[Dd(x1)] |
= |
4 ·
x1 +
-∞
|
[rewrite(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
begin(end(x0)) |
→ |
rewrite(end(x0)) |
begin(a(x0)) |
→ |
rotate(cut(Ca(guess(x0)))) |
begin(b(x0)) |
→ |
rotate(cut(Cb(guess(x0)))) |
begin(c(x0)) |
→ |
rotate(cut(Cc(guess(x0)))) |
begin(d(x0)) |
→ |
rotate(cut(Cd(guess(x0)))) |
guess(a(x0)) |
→ |
Ca(guess(x0)) |
guess(b(x0)) |
→ |
Cb(guess(x0)) |
guess(c(x0)) |
→ |
Cc(guess(x0)) |
guess(d(x0)) |
→ |
Cd(guess(x0)) |
guess(a(x0)) |
→ |
moveleft(Ba(wait(x0))) |
guess(b(x0)) |
→ |
moveleft(Bb(wait(x0))) |
guess(c(x0)) |
→ |
moveleft(Bc(wait(x0))) |
guess(d(x0)) |
→ |
moveleft(Bd(wait(x0))) |
guess(end(x0)) |
→ |
finish(end(x0)) |
Ca(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Aa(x0))) |
Cb(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ab(x0))) |
Cc(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ac(x0))) |
Cd(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ad(x0))) |
Ca(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Aa(x0))) |
Cb(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ab(x0))) |
Cc(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ac(x0))) |
Cd(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ad(x0))) |
Ca(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Aa(x0))) |
Cb(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ab(x0))) |
Cc(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ac(x0))) |
Cd(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ad(x0))) |
Ca(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Aa(x0))) |
Cb(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ab(x0))) |
Cc(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ac(x0))) |
Cd(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ad(x0))) |
cut(moveleft(Ba(x0))) |
→ |
Da(cut(goright(x0))) |
cut(moveleft(Bb(x0))) |
→ |
Db(cut(goright(x0))) |
cut(moveleft(Bc(x0))) |
→ |
Dc(cut(goright(x0))) |
cut(moveleft(Bd(x0))) |
→ |
Dd(cut(goright(x0))) |
goright(Aa(x0)) |
→ |
Ca(goright(x0)) |
goright(Ab(x0)) |
→ |
Cb(goright(x0)) |
goright(Ac(x0)) |
→ |
Cc(goright(x0)) |
goright(Ad(x0)) |
→ |
Cd(goright(x0)) |
goright(wait(a(x0))) |
→ |
moveleft(Ba(wait(x0))) |
goright(wait(b(x0))) |
→ |
moveleft(Bb(wait(x0))) |
goright(wait(c(x0))) |
→ |
moveleft(Bc(wait(x0))) |
goright(wait(d(x0))) |
→ |
moveleft(Bd(wait(x0))) |
goright(wait(end(x0))) |
→ |
finish(end(x0)) |
Ca(finish(x0)) |
→ |
finish(a(x0)) |
Cb(finish(x0)) |
→ |
finish(b(x0)) |
Cc(finish(x0)) |
→ |
finish(c(x0)) |
Cd(finish(x0)) |
→ |
finish(d(x0)) |
cut(finish(x0)) |
→ |
finish2(x0) |
Da(finish2(x0)) |
→ |
finish2(a(x0)) |
Db(finish2(x0)) |
→ |
finish2(b(x0)) |
Dc(finish2(x0)) |
→ |
finish2(c(x0)) |
Dd(finish2(x0)) |
→ |
finish2(d(x0)) |
rotate(finish2(x0)) |
→ |
rewrite(x0) |
rewrite(b(b(x0))) |
→ |
begin(c(c(c(x0)))) |
rewrite(c(c(x0))) |
→ |
begin(d(d(d(x0)))) |
rewrite(c(d(d(x0)))) |
→ |
begin(a(x0)) |
remain.
1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
[Bc(x1)] |
= |
8 ·
x1 +
-∞
|
[guess(x1)] |
= |
0 ·
x1 +
-∞
|
[Ba(x1)] |
= |
0 ·
x1 +
-∞
|
[b(x1)] |
= |
13 ·
x1 +
-∞
|
[begin(x1)] |
= |
2 ·
x1 +
-∞
|
[a(x1)] |
= |
0 ·
x1 +
-∞
|
[moveleft(x1)] |
= |
0 ·
x1 +
-∞
|
[Aa(x1)] |
= |
0 ·
x1 +
-∞
|
[Da(x1)] |
= |
0 ·
x1 +
-∞
|
[Bd(x1)] |
= |
1 ·
x1 +
-∞
|
[Bb(x1)] |
= |
13 ·
x1 +
-∞
|
[Db(x1)] |
= |
13 ·
x1 +
-∞
|
[Ab(x1)] |
= |
13 ·
x1 +
-∞
|
[Dc(x1)] |
= |
8 ·
x1 +
-∞
|
[Ca(x1)] |
= |
0 ·
x1 +
-∞
|
[c(x1)] |
= |
8 ·
x1 +
-∞
|
[end(x1)] |
= |
0 ·
x1 +
-∞
|
[rotate(x1)] |
= |
0 ·
x1 +
-∞
|
[finish(x1)] |
= |
0 ·
x1 +
-∞
|
[goright(x1)] |
= |
0 ·
x1 +
-∞
|
[finish2(x1)] |
= |
0 ·
x1 +
-∞
|
[wait(x1)] |
= |
0 ·
x1 +
-∞
|
[d(x1)] |
= |
1 ·
x1 +
-∞
|
[Ac(x1)] |
= |
8 ·
x1 +
-∞
|
[Ad(x1)] |
= |
1 ·
x1 +
-∞
|
[Cc(x1)] |
= |
8 ·
x1 +
-∞
|
[Cb(x1)] |
= |
13 ·
x1 +
-∞
|
[Cd(x1)] |
= |
1 ·
x1 +
-∞
|
[cut(x1)] |
= |
2 ·
x1 +
-∞
|
[Dd(x1)] |
= |
1 ·
x1 +
-∞
|
[rewrite(x1)] |
= |
0 ·
x1 +
-∞
|
the
rules
begin(a(x0)) |
→ |
rotate(cut(Ca(guess(x0)))) |
begin(b(x0)) |
→ |
rotate(cut(Cb(guess(x0)))) |
begin(c(x0)) |
→ |
rotate(cut(Cc(guess(x0)))) |
begin(d(x0)) |
→ |
rotate(cut(Cd(guess(x0)))) |
guess(a(x0)) |
→ |
Ca(guess(x0)) |
guess(b(x0)) |
→ |
Cb(guess(x0)) |
guess(c(x0)) |
→ |
Cc(guess(x0)) |
guess(d(x0)) |
→ |
Cd(guess(x0)) |
guess(a(x0)) |
→ |
moveleft(Ba(wait(x0))) |
guess(b(x0)) |
→ |
moveleft(Bb(wait(x0))) |
guess(c(x0)) |
→ |
moveleft(Bc(wait(x0))) |
guess(d(x0)) |
→ |
moveleft(Bd(wait(x0))) |
guess(end(x0)) |
→ |
finish(end(x0)) |
Ca(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Aa(x0))) |
Cb(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ab(x0))) |
Cc(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ac(x0))) |
Cd(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ad(x0))) |
Ca(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Aa(x0))) |
Cb(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ab(x0))) |
Cc(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ac(x0))) |
Cd(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ad(x0))) |
Ca(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Aa(x0))) |
Cb(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ab(x0))) |
Cc(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ac(x0))) |
Cd(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ad(x0))) |
Ca(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Aa(x0))) |
Cb(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ab(x0))) |
Cc(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ac(x0))) |
Cd(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ad(x0))) |
cut(moveleft(Ba(x0))) |
→ |
Da(cut(goright(x0))) |
cut(moveleft(Bb(x0))) |
→ |
Db(cut(goright(x0))) |
cut(moveleft(Bc(x0))) |
→ |
Dc(cut(goright(x0))) |
cut(moveleft(Bd(x0))) |
→ |
Dd(cut(goright(x0))) |
goright(Aa(x0)) |
→ |
Ca(goright(x0)) |
goright(Ab(x0)) |
→ |
Cb(goright(x0)) |
goright(Ac(x0)) |
→ |
Cc(goright(x0)) |
goright(Ad(x0)) |
→ |
Cd(goright(x0)) |
goright(wait(a(x0))) |
→ |
moveleft(Ba(wait(x0))) |
goright(wait(b(x0))) |
→ |
moveleft(Bb(wait(x0))) |
goright(wait(c(x0))) |
→ |
moveleft(Bc(wait(x0))) |
goright(wait(d(x0))) |
→ |
moveleft(Bd(wait(x0))) |
goright(wait(end(x0))) |
→ |
finish(end(x0)) |
Ca(finish(x0)) |
→ |
finish(a(x0)) |
Cb(finish(x0)) |
→ |
finish(b(x0)) |
Cc(finish(x0)) |
→ |
finish(c(x0)) |
Cd(finish(x0)) |
→ |
finish(d(x0)) |
Da(finish2(x0)) |
→ |
finish2(a(x0)) |
Db(finish2(x0)) |
→ |
finish2(b(x0)) |
Dc(finish2(x0)) |
→ |
finish2(c(x0)) |
Dd(finish2(x0)) |
→ |
finish2(d(x0)) |
rotate(finish2(x0)) |
→ |
rewrite(x0) |
rewrite(b(b(x0))) |
→ |
begin(c(c(c(x0)))) |
remain.
1.1.1 Rule Removal
Using the
linear polynomial interpretation over the arctic semiring over the integers
[Bc(x1)] |
= |
0 ·
x1 +
-∞
|
[guess(x1)] |
= |
0 ·
x1 +
-∞
|
[Ba(x1)] |
= |
0 ·
x1 +
-∞
|
[b(x1)] |
= |
0 ·
x1 +
-∞
|
[begin(x1)] |
= |
4 ·
x1 +
-∞
|
[a(x1)] |
= |
0 ·
x1 +
-∞
|
[moveleft(x1)] |
= |
0 ·
x1 +
-∞
|
[Aa(x1)] |
= |
0 ·
x1 +
-∞
|
[Da(x1)] |
= |
0 ·
x1 +
-∞
|
[Bd(x1)] |
= |
14 ·
x1 +
-∞
|
[Bb(x1)] |
= |
0 ·
x1 +
-∞
|
[Db(x1)] |
= |
0 ·
x1 +
-∞
|
[Ab(x1)] |
= |
0 ·
x1 +
-∞
|
[Dc(x1)] |
= |
0 ·
x1 +
-∞
|
[Ca(x1)] |
= |
0 ·
x1 +
-∞
|
[c(x1)] |
= |
0 ·
x1 +
-∞
|
[end(x1)] |
= |
0 ·
x1 +
-∞
|
[rotate(x1)] |
= |
0 ·
x1 +
-∞
|
[finish(x1)] |
= |
0 ·
x1 +
-∞
|
[goright(x1)] |
= |
0 ·
x1 +
-∞
|
[finish2(x1)] |
= |
8 ·
x1 +
-∞
|
[wait(x1)] |
= |
0 ·
x1 +
-∞
|
[d(x1)] |
= |
14 ·
x1 +
-∞
|
[Ac(x1)] |
= |
0 ·
x1 +
-∞
|
[Ad(x1)] |
= |
14 ·
x1 +
-∞
|
[Cc(x1)] |
= |
0 ·
x1 +
-∞
|
[Cb(x1)] |
= |
0 ·
x1 +
-∞
|
[Cd(x1)] |
= |
14 ·
x1 +
-∞
|
[cut(x1)] |
= |
3 ·
x1 +
-∞
|
[Dd(x1)] |
= |
14 ·
x1 +
-∞
|
[rewrite(x1)] |
= |
5 ·
x1 +
-∞
|
the
rules
guess(a(x0)) |
→ |
Ca(guess(x0)) |
guess(b(x0)) |
→ |
Cb(guess(x0)) |
guess(c(x0)) |
→ |
Cc(guess(x0)) |
guess(d(x0)) |
→ |
Cd(guess(x0)) |
guess(a(x0)) |
→ |
moveleft(Ba(wait(x0))) |
guess(b(x0)) |
→ |
moveleft(Bb(wait(x0))) |
guess(c(x0)) |
→ |
moveleft(Bc(wait(x0))) |
guess(d(x0)) |
→ |
moveleft(Bd(wait(x0))) |
guess(end(x0)) |
→ |
finish(end(x0)) |
Ca(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Aa(x0))) |
Cb(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ab(x0))) |
Cc(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ac(x0))) |
Cd(moveleft(Ba(x0))) |
→ |
moveleft(Ba(Ad(x0))) |
Ca(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Aa(x0))) |
Cb(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ab(x0))) |
Cc(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ac(x0))) |
Cd(moveleft(Bb(x0))) |
→ |
moveleft(Bb(Ad(x0))) |
Ca(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Aa(x0))) |
Cb(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ab(x0))) |
Cc(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ac(x0))) |
Cd(moveleft(Bc(x0))) |
→ |
moveleft(Bc(Ad(x0))) |
Ca(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Aa(x0))) |
Cb(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ab(x0))) |
Cc(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ac(x0))) |
Cd(moveleft(Bd(x0))) |
→ |
moveleft(Bd(Ad(x0))) |
cut(moveleft(Ba(x0))) |
→ |
Da(cut(goright(x0))) |
cut(moveleft(Bb(x0))) |
→ |
Db(cut(goright(x0))) |
cut(moveleft(Bc(x0))) |
→ |
Dc(cut(goright(x0))) |
cut(moveleft(Bd(x0))) |
→ |
Dd(cut(goright(x0))) |
goright(Aa(x0)) |
→ |
Ca(goright(x0)) |
goright(Ab(x0)) |
→ |
Cb(goright(x0)) |
goright(Ac(x0)) |
→ |
Cc(goright(x0)) |
goright(Ad(x0)) |
→ |
Cd(goright(x0)) |
goright(wait(a(x0))) |
→ |
moveleft(Ba(wait(x0))) |
goright(wait(b(x0))) |
→ |
moveleft(Bb(wait(x0))) |
goright(wait(c(x0))) |
→ |
moveleft(Bc(wait(x0))) |
goright(wait(d(x0))) |
→ |
moveleft(Bd(wait(x0))) |
goright(wait(end(x0))) |
→ |
finish(end(x0)) |
Ca(finish(x0)) |
→ |
finish(a(x0)) |
Cb(finish(x0)) |
→ |
finish(b(x0)) |
Cc(finish(x0)) |
→ |
finish(c(x0)) |
Cd(finish(x0)) |
→ |
finish(d(x0)) |
Da(finish2(x0)) |
→ |
finish2(a(x0)) |
Db(finish2(x0)) |
→ |
finish2(b(x0)) |
Dc(finish2(x0)) |
→ |
finish2(c(x0)) |
Dd(finish2(x0)) |
→ |
finish2(d(x0)) |
remain.
1.1.1.1 Rule Removal
Using the
Knuth Bendix order with w0 = 1 and the following precedence and weight function
prec(finish2) |
= |
0 |
|
weight(finish2) |
= |
1 |
|
|
|
prec(Dd) |
= |
2 |
|
weight(Dd) |
= |
1 |
|
|
|
prec(Dc) |
= |
1 |
|
weight(Dc) |
= |
1 |
|
|
|
prec(Db) |
= |
2 |
|
weight(Db) |
= |
1 |
|
|
|
prec(Da) |
= |
2 |
|
weight(Da) |
= |
1 |
|
|
|
prec(goright) |
= |
2 |
|
weight(goright) |
= |
1 |
|
|
|
prec(Ad) |
= |
0 |
|
weight(Ad) |
= |
1 |
|
|
|
prec(Ac) |
= |
0 |
|
weight(Ac) |
= |
1 |
|
|
|
prec(Ab) |
= |
0 |
|
weight(Ab) |
= |
1 |
|
|
|
prec(Aa) |
= |
0 |
|
weight(Aa) |
= |
1 |
|
|
|
prec(finish) |
= |
0 |
|
weight(finish) |
= |
1 |
|
|
|
prec(Bd) |
= |
0 |
|
weight(Bd) |
= |
1 |
|
|
|
prec(Bc) |
= |
0 |
|
weight(Bc) |
= |
1 |
|
|
|
prec(Bb) |
= |
0 |
|
weight(Bb) |
= |
1 |
|
|
|
prec(moveleft) |
= |
0 |
|
weight(moveleft) |
= |
1 |
|
|
|
prec(Ba) |
= |
0 |
|
weight(Ba) |
= |
1 |
|
|
|
prec(wait) |
= |
11 |
|
weight(wait) |
= |
0 |
|
|
|
prec(Cd) |
= |
1 |
|
weight(Cd) |
= |
1 |
|
|
|
prec(d) |
= |
0 |
|
weight(d) |
= |
1 |
|
|
|
prec(Cc) |
= |
1 |
|
weight(Cc) |
= |
1 |
|
|
|
prec(c) |
= |
0 |
|
weight(c) |
= |
1 |
|
|
|
prec(Cb) |
= |
1 |
|
weight(Cb) |
= |
1 |
|
|
|
prec(b) |
= |
0 |
|
weight(b) |
= |
1 |
|
|
|
prec(cut) |
= |
3 |
|
weight(cut) |
= |
1 |
|
|
|
prec(Ca) |
= |
1 |
|
weight(Ca) |
= |
1 |
|
|
|
prec(guess) |
= |
4 |
|
weight(guess) |
= |
1 |
|
|
|
prec(a) |
= |
0 |
|
weight(a) |
= |
1 |
|
|
|
prec(end) |
= |
0 |
|
weight(end) |
= |
1 |
|
|
|
all rules could be removed.
1.1.1.1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.