YES
by ttt2 (version ttt2 1.15)
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)))) |
| guess(a(x0)) | → | Ca(guess(x0)) |
| guess(b(x0)) | → | Cb(guess(x0)) |
| guess(c(x0)) | → | Cc(guess(x0)) |
| guess(a(x0)) | → | moveleft(Ba(wait(x0))) |
| guess(b(x0)) | → | moveleft(Bb(wait(x0))) |
| guess(c(x0)) | → | moveleft(Bc(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))) |
| Ca(moveleft(Bb(x0))) | → | moveleft(Bb(Aa(x0))) |
| Cb(moveleft(Bb(x0))) | → | moveleft(Bb(Ab(x0))) |
| Cc(moveleft(Bb(x0))) | → | moveleft(Bb(Ac(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))) |
| cut(moveleft(Ba(x0))) | → | Da(cut(goright(x0))) |
| cut(moveleft(Bb(x0))) | → | Db(cut(goright(x0))) |
| cut(moveleft(Bc(x0))) | → | Dc(cut(goright(x0))) |
| goright(Aa(x0)) | → | Ca(goright(x0)) |
| goright(Ab(x0)) | → | Cb(goright(x0)) |
| goright(Ac(x0)) | → | Cc(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(end(x0))) | → | finish(end(x0)) |
| Ca(finish(x0)) | → | finish(a(x0)) |
| Cb(finish(x0)) | → | finish(b(x0)) |
| Cc(finish(x0)) | → | finish(c(x0)) |
| cut(finish(x0)) | → | finish2(x0) |
| Da(finish2(x0)) | → | finish2(a(x0)) |
| Db(finish2(x0)) | → | finish2(b(x0)) |
| Dc(finish2(x0)) | → | finish2(c(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(c(c(x0))))) | → | begin(a(b(x0))) |
| [Aa(x1)] | = | 12 · x1 + -∞ |
| [guess(x1)] | = | 0 · x1 + -∞ |
| [Bb(x1)] | = | 3 · x1 + -∞ |
| [b(x1)] | = | 8 · x1 + -∞ |
| [begin(x1)] | = | 0 · x1 + -∞ |
| [a(x1)] | = | 12 · x1 + -∞ |
| [Bc(x1)] | = | 0 · x1 + -∞ |
| [goright(x1)] | = | 0 · x1 + -∞ |
| [Ab(x1)] | = | 8 · x1 + -∞ |
| [finish(x1)] | = | 0 · x1 + -∞ |
| [Da(x1)] | = | 12 · x1 + -∞ |
| [Ca(x1)] | = | 12 · x1 + -∞ |
| [c(x1)] | = | 5 · x1 + -∞ |
| [end(x1)] | = | 1 · x1 + -∞ |
| [rotate(x1)] | = | 0 · x1 + -∞ |
| [Ac(x1)] | = | 5 · x1 + -∞ |
| [finish2(x1)] | = | 0 · x1 + -∞ |
| [moveleft(x1)] | = | 5 · x1 + -∞ |
| [wait(x1)] | = | 0 · x1 + -∞ |
| [Db(x1)] | = | 8 · x1 + -∞ |
| [Dc(x1)] | = | 5 · x1 + -∞ |
| [Cc(x1)] | = | 5 · x1 + -∞ |
| [Cb(x1)] | = | 8 · x1 + -∞ |
| [Ba(x1)] | = | 7 · x1 + -∞ |
| [cut(x1)] | = | 0 · x1 + -∞ |
| [rewrite(x1)] | = | 0 · x1 + -∞ |
| 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)))) |
| guess(a(x0)) | → | Ca(guess(x0)) |
| guess(b(x0)) | → | Cb(guess(x0)) |
| guess(c(x0)) | → | Cc(guess(x0)) |
| guess(a(x0)) | → | moveleft(Ba(wait(x0))) |
| guess(b(x0)) | → | moveleft(Bb(wait(x0))) |
| guess(c(x0)) | → | moveleft(Bc(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))) |
| Ca(moveleft(Bb(x0))) | → | moveleft(Bb(Aa(x0))) |
| Cb(moveleft(Bb(x0))) | → | moveleft(Bb(Ab(x0))) |
| Cc(moveleft(Bb(x0))) | → | moveleft(Bb(Ac(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))) |
| cut(moveleft(Ba(x0))) | → | Da(cut(goright(x0))) |
| cut(moveleft(Bb(x0))) | → | Db(cut(goright(x0))) |
| cut(moveleft(Bc(x0))) | → | Dc(cut(goright(x0))) |
| goright(Aa(x0)) | → | Ca(goright(x0)) |
| goright(Ab(x0)) | → | Cb(goright(x0)) |
| goright(Ac(x0)) | → | Cc(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(end(x0))) | → | finish(end(x0)) |
| Ca(finish(x0)) | → | finish(a(x0)) |
| Cb(finish(x0)) | → | finish(b(x0)) |
| Cc(finish(x0)) | → | finish(c(x0)) |
| cut(finish(x0)) | → | finish2(x0) |
| Da(finish2(x0)) | → | finish2(a(x0)) |
| Db(finish2(x0)) | → | finish2(b(x0)) |
| Dc(finish2(x0)) | → | finish2(c(x0)) |
| rotate(finish2(x0)) | → | rewrite(x0) |
| rewrite(a(a(x0))) | → | begin(b(b(b(x0)))) |
| rewrite(c(c(c(c(x0))))) | → | begin(a(b(x0))) |
| [Aa(x1)] | = | 1 · x1 + -∞ |
| [guess(x1)] | = | 0 · x1 + -∞ |
| [Bb(x1)] | = | 0 · x1 + -∞ |
| [b(x1)] | = | 0 · x1 + -∞ |
| [begin(x1)] | = | 0 · x1 + -∞ |
| [a(x1)] | = | 1 · x1 + -∞ |
| [Bc(x1)] | = | 1 · x1 + -∞ |
| [goright(x1)] | = | 0 · x1 + -∞ |
| [Ab(x1)] | = | 0 · x1 + -∞ |
| [finish(x1)] | = | 0 · x1 + -∞ |
| [Da(x1)] | = | 1 · x1 + -∞ |
| [Ca(x1)] | = | 1 · x1 + -∞ |
| [c(x1)] | = | 1 · x1 + -∞ |
| [end(x1)] | = | 0 · x1 + -∞ |
| [rotate(x1)] | = | 0 · x1 + -∞ |
| [Ac(x1)] | = | 1 · x1 + -∞ |
| [finish2(x1)] | = | 0 · x1 + -∞ |
| [moveleft(x1)] | = | 0 · x1 + -∞ |
| [wait(x1)] | = | 0 · x1 + -∞ |
| [Db(x1)] | = | 0 · x1 + -∞ |
| [Dc(x1)] | = | 1 · x1 + -∞ |
| [Cc(x1)] | = | 1 · x1 + -∞ |
| [Cb(x1)] | = | 0 · x1 + -∞ |
| [Ba(x1)] | = | 1 · x1 + -∞ |
| [cut(x1)] | = | 0 · x1 + -∞ |
| [rewrite(x1)] | = | 0 · x1 + -∞ |
| 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)))) |
| guess(a(x0)) | → | Ca(guess(x0)) |
| guess(b(x0)) | → | Cb(guess(x0)) |
| guess(c(x0)) | → | Cc(guess(x0)) |
| guess(a(x0)) | → | moveleft(Ba(wait(x0))) |
| guess(b(x0)) | → | moveleft(Bb(wait(x0))) |
| guess(c(x0)) | → | moveleft(Bc(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))) |
| Ca(moveleft(Bb(x0))) | → | moveleft(Bb(Aa(x0))) |
| Cb(moveleft(Bb(x0))) | → | moveleft(Bb(Ab(x0))) |
| Cc(moveleft(Bb(x0))) | → | moveleft(Bb(Ac(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))) |
| cut(moveleft(Ba(x0))) | → | Da(cut(goright(x0))) |
| cut(moveleft(Bb(x0))) | → | Db(cut(goright(x0))) |
| cut(moveleft(Bc(x0))) | → | Dc(cut(goright(x0))) |
| goright(Aa(x0)) | → | Ca(goright(x0)) |
| goright(Ab(x0)) | → | Cb(goright(x0)) |
| goright(Ac(x0)) | → | Cc(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(end(x0))) | → | finish(end(x0)) |
| Ca(finish(x0)) | → | finish(a(x0)) |
| Cb(finish(x0)) | → | finish(b(x0)) |
| Cc(finish(x0)) | → | finish(c(x0)) |
| cut(finish(x0)) | → | finish2(x0) |
| Da(finish2(x0)) | → | finish2(a(x0)) |
| Db(finish2(x0)) | → | finish2(b(x0)) |
| Dc(finish2(x0)) | → | finish2(c(x0)) |
| rotate(finish2(x0)) | → | rewrite(x0) |
| end(begin(x0)) | → | end(rewrite(x0)) |
| a(begin(x0)) | → | guess(Ca(cut(rotate(x0)))) |
| b(begin(x0)) | → | guess(Cb(cut(rotate(x0)))) |
| c(begin(x0)) | → | guess(Cc(cut(rotate(x0)))) |
| a(guess(x0)) | → | guess(Ca(x0)) |
| b(guess(x0)) | → | guess(Cb(x0)) |
| c(guess(x0)) | → | guess(Cc(x0)) |
| a(guess(x0)) | → | wait(Ba(moveleft(x0))) |
| b(guess(x0)) | → | wait(Bb(moveleft(x0))) |
| c(guess(x0)) | → | wait(Bc(moveleft(x0))) |
| end(guess(x0)) | → | end(finish(x0)) |
| Ba(moveleft(Ca(x0))) | → | Aa(Ba(moveleft(x0))) |
| Ba(moveleft(Cb(x0))) | → | Ab(Ba(moveleft(x0))) |
| Ba(moveleft(Cc(x0))) | → | Ac(Ba(moveleft(x0))) |
| Bb(moveleft(Ca(x0))) | → | Aa(Bb(moveleft(x0))) |
| Bb(moveleft(Cb(x0))) | → | Ab(Bb(moveleft(x0))) |
| Bb(moveleft(Cc(x0))) | → | Ac(Bb(moveleft(x0))) |
| Bc(moveleft(Ca(x0))) | → | Aa(Bc(moveleft(x0))) |
| Bc(moveleft(Cb(x0))) | → | Ab(Bc(moveleft(x0))) |
| Bc(moveleft(Cc(x0))) | → | Ac(Bc(moveleft(x0))) |
| Ba(moveleft(cut(x0))) | → | goright(cut(Da(x0))) |
| Bb(moveleft(cut(x0))) | → | goright(cut(Db(x0))) |
| Bc(moveleft(cut(x0))) | → | goright(cut(Dc(x0))) |
| Aa(goright(x0)) | → | goright(Ca(x0)) |
| Ab(goright(x0)) | → | goright(Cb(x0)) |
| Ac(goright(x0)) | → | goright(Cc(x0)) |
| a(wait(goright(x0))) | → | wait(Ba(moveleft(x0))) |
| b(wait(goright(x0))) | → | wait(Bb(moveleft(x0))) |
| c(wait(goright(x0))) | → | wait(Bc(moveleft(x0))) |
| end(wait(goright(x0))) | → | end(finish(x0)) |
| finish(Ca(x0)) | → | a(finish(x0)) |
| finish(Cb(x0)) | → | b(finish(x0)) |
| finish(Cc(x0)) | → | c(finish(x0)) |
| finish(cut(x0)) | → | finish2(x0) |
| finish2(Da(x0)) | → | a(finish2(x0)) |
| finish2(Db(x0)) | → | b(finish2(x0)) |
| finish2(Dc(x0)) | → | c(finish2(x0)) |
| finish2(rotate(x0)) | → | rewrite(x0) |
final states:
{3, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 42, 39, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 25, 23, 21, 18, 16, 14, 12, 10, 8, 4, 1}
transitions:
| 78 | → | 56 |
| 33 | → | 24 |
| 102 | → | 82 |
| 32 | → | 22 |
| 29 | → | 20 |
| 128 | → | 108 |
| 51 | → | 26 |
| 96 | → | 82 |
| 122 | → | 108 |
| 41 | → | 81 |
| 41 | → | 87 |
| 41 | → | 91 |
| 39 | → | 22 |
| 3 | → | 51 |
| 50 | → | 26 |
| 50 | → | 51 |
| 57 | → | 20 |
| 57 | → | 27 |
| 57 | → | 28 |
| 57 | → | 29 |
| 108 | → | 121 |
| 108 | → | 127 |
| 108 | → | 129 |
| 34 | → | 24 |
| 130 | → | 108 |
| 62 | → | 56 |
| 31 | → | 22 |
| 49 | → | 26 |
| 49 | → | 51 |
| 44 | → | 107 |
| 44 | → | 113 |
| 44 | → | 117 |
| 76 | → | 56 |
| 38 | → | 55 |
| 38 | → | 61 |
| 38 | → | 65 |
| 36 | → | 20 |
| 109 | → | 24 |
| 109 | → | 33 |
| 109 | → | 34 |
| 109 | → | 35 |
| 88 | → | 82 |
| 82 | → | 95 |
| 82 | → | 101 |
| 82 | → | 103 |
| 28 | → | 20 |
| 118 | → | 108 |
| 66 | → | 56 |
| 114 | → | 108 |
| 104 | → | 82 |
| 30 | → | 22 |
| 42 | → | 24 |
| 35 | → | 24 |
| 83 | → | 22 |
| 83 | → | 30 |
| 83 | → | 31 |
| 83 | → | 32 |
| 48 | → | 26 |
| 48 | → | 51 |
| 92 | → | 82 |
| 27 | → | 20 |
| 70 | → | 56 |
| 56 | → | 69 |
| 56 | → | 75 |
| 56 | → | 77 |
| cut0(37) | → | 38 |
| cut0(43) | → | 44 |
| cut0(5) | → | 6 |
| cut0(40) | → | 41 |
| b0(26) | → | 49 |
| b0(51) | → | 53 |
| Bc0(19) | → | 24 |
| a0(51) | → | 52 |
| a0(26) | → | 48 |
| finish20(2) | → | 51 |
| Cb1(87) | → | 88 |
| Cb1(61) | → | 62 |
| Cb1(127) | → | 128 |
| Cb1(75) | → | 76 |
| Cb1(113) | → | 114 |
| Cb1(101) | → | 102 |
| guess0(9) | → | 8 |
| guess0(15) | → | 14 |
| guess0(11) | → | 10 |
| guess0(7) | → | 4 |
| guess0(17) | → | 16 |
| guess0(13) | → | 12 |
| f260 | → | 2 |
| moveleft0(2) | → | 19 |
| Ca1(55) | → | 56 |
| Ca1(69) | → | 70 |
| Ca1(121) | → | 122 |
| Ca1(81) | → | 82 |
| Ca1(95) | → | 96 |
| Ca1(107) | → | 108 |
| Ca0(2) | → | 13 |
| Ca0(6) | → | 7 |
| Cb0(6) | → | 9 |
| Cb0(2) | → | 15 |
| Dc0(2) | → | 43 |
| goright0(44) | → | 42 |
| goright0(13) | → | 45 |
| goright0(17) | → | 47 |
| goright0(41) | → | 39 |
| goright0(15) | → | 46 |
| goright0(38) | → | 36 |
| Cc1(103) | → | 104 |
| Cc1(129) | → | 130 |
| Cc1(77) | → | 78 |
| Cc1(91) | → | 92 |
| Cc1(117) | → | 118 |
| Cc1(65) | → | 66 |
| end0(3) | → | 1 |
| end0(26) | → | 25 |
| goright1(56) | → | 57 |
| goright1(82) | → | 83 |
| goright1(108) | → | 109 |
| Db0(2) | → | 40 |
| Ac0(20) | → | 29 |
| Ac0(24) | → | 35 |
| Ac0(22) | → | 32 |
| rotate0(2) | → | 5 |
| Ba0(19) | → | 20 |
| wait0(22) | → | 21 |
| wait0(24) | → | 23 |
| wait0(20) | → | 18 |
| finish0(2) | → | 26 |
| Aa0(24) | → | 33 |
| Aa0(20) | → | 27 |
| Aa0(22) | → | 30 |
| Da0(2) | → | 37 |
| Bb0(19) | → | 22 |
| c0(26) | → | 50 |
| c0(51) | → | 54 |
| Cc0(6) | → | 11 |
| Cc0(2) | → | 17 |
| rewrite0(2) | → | 3 |
| Ab0(24) | → | 34 |
| Ab0(20) | → | 28 |
| Ab0(22) | → | 31 |