W tej odpowiedzi zakłada się, że maszyny Turinga mają dwustronne nieskończone taśmy. Roszczenia nie dotyczą jednokierunkowych taśm nieskończonych.
Pozwól mi najpierw zdefiniować klasę języków C′3jako klasa wszystkich języków rozstrzygalna przez maszyny Turinga z jedną taśmą z 3 stanami (C3została zdefiniowana jako klasa języków rozpoznawalna przez maszyny Turinga z jedną taśmą z 3 stanami). Przedstawiłem klasęC′3 ponieważ w mojej oryginalnej odpowiedzi nieświadomie zamieniłem klasy C3 i C′3 (Rozważyłem tylko klasę C′3).
Ta odpowiedź jest bardziej uzupełnieniem odpowiedzi @MarzioDeBiasi. Pokazał, że zajęciaC3 i C′3nie są zawarte w CFL, a zatem zawierają dość interesujące języki. Jednak, jak pokażę w tym poście, każdy językL w C′3 ma właściwość ustawioną {1n;n∈N∖{0}} jest albo w L lub w jego uzupełnieniu LC. A zatemC′3jest również bardzo restrykcyjne, np. zawiera tylko trywialne, jednoargumentowe języki{}, {ε}, {1n;n∈N} i {1n;n∈N∖{0}}. KlasaC3zawiera nieco więcej jednojęzycznych języków. Utrzymuje jednak, że jeśliL∈C3 i 1n∈L dla n≥1, następnie 1m∈L dla wszystkich m≥n. Prostym następstwem jest to, że nie wszystkie zwykłe języki są w językuC3 ani w C′3. Również język{1} nie jest w C3 ani w C′3.
Za roszczenie (pogrubione) około C′3, wystarczy udowodnić, że maszyna Turinga z jedną taśmą M z 3 stanami, które zawsze zatrzymują albo akceptują, albo odrzucają wszystkie ciągi {1n;n∈N∖{0}}. Załóżmy, że ciąg formularza1n, n∈N∖{0}, jest podane do M. Istnieją trzy przypadki:
1) KiedyM czyta 1, przyjmuje lub odrzuca.
2) KiedyMczyta 1, przesuwa głowę w lewo. Jeśli chcemyMaby zatrzymać na tym wejściu, musi zaakceptować, odrzucić lub przejść w prawo na pusty symbol. Dlatego nigdy nie odwiedza komórki po prawej stronie początkowej komórki taśmy. Gdyby tak było, działałoby wiecznie na wejściu 1.
3) KiedyModczytuje 1, przesuwa głowę w prawo. Wynika z tego, że pon kroki, zawartość taśmy jest An gdzie A to jakiś symbol z alfabetu taśmy i nagłówka M jest na lewym pustym symbolu po prawej stronie ostatniego A. Jeśli chcemyMaby zatrzymać na tym wejściu, musi zaakceptować, odrzucić lub przesunąć w lewo na pusty symbol. Jak w przypadku 2), szefM will now never visit the cell directly to the left of the rightmost A. If it would, then M would run forever on input 1.
It is clear that in all three cases M accepts all strings from the set {1n;n∈N∖{0}} or it rejects them all.
The proof of the claim (in bold) about C3 follows the same line as above. We take a one-tape 3-state Turing machine M that accepts a string 1n for some n≥1. Suppose M is given an input 1m for m≥n. We have to prove that M accepts this input. We have 3 cases:
1) When M reads 1, it accepts.
2) When M reads 1, it moves the head to the left. Because M accepts the input 1n, it has to accept or move to the right on the blank symbol. Hence, it never visits the nth cell to the right of the initial cell. If it would, it would run forever on input 1n.
3) When M reads 1, it moves the head to the right. It follows that after m steps, the content of the tape is Am where A is some symbol from the tape alphabet and the head of M is on the leftmost blank symbol to the right of the last A. Because M accepts the input 1n, it must accept or move to the left on the blank symbol. As in case 2), the head of M will now never visit the nth cell to the left of the rightmost A. This is because on the input 1n, M does not visit the cell directly left of the initial cell, because it contains the blank symbol and if it would read it, it would run forever.
It is clear that in all three cases M accepts all strings from the set {1m;m≥n}.