1 Tvrzení i. Jazyk A není rekurzivní. {(•A4) | výpočet TS Ai nad slovem e je konečný} Myšlenka důkazu. Budeme chtít ukázat, že nějaký jazyk, o kterém víme, že není rekurzivní, se redukuje na jazyk A. Pak jazyk A jistě nemůže být rekurzivní. Přirozenou volbou takového známého nerekurzivního jazyka je HALT, protože stejně jako v jazyce A rozhoduje o příslušnosti slova do jazyka HALT konečnost nějakého výpočtu Turingova stroje. Chceme tedy najít redukci HALT abecedu jazyka A. Pro libovolný Turingův stroj Ai a slovo w označme jako T~m,w Turingův stroj, který se pro libovolný vstup chová následujícím způsobem: 1. Smaž vstupní pásku. 2. Zapiš na vstupní pásku slovo w a posuň hlavu zpět na začátek pásky. 3. Spusť výpočet stroje Ai (tedy přepni se do počátečního stavu stroje Ai). Dále označme jako %o stroj, který pro libovolný vstup cyklí. Definujeme funkci /: Z* —> * pro každé slovo x G Z* následujícím předpisem: I (Tm w)> jestliže x = (Ai, w) pro nějaký TM Ai a slovo w, j\x) = \ I (7^o), jinak. Ukážeme, že funkce / je redukce HALT na A. Protože víme, že pokud L = {0,1}. Stroj Tm,w je přesně stroj M' z myšlenky důkazu, jen je parametrizovaný libovolným strojem M a slovem w. Druhý případ v definici je nutný, aby funkce / byla totální. Ne každé slovo nad abecedou Z je totiž kódem dvojice TM a slova. Tedy, že / je totální, vyčíslitelná a pro každé x G Z* platí x G HALT /(x) G A. 2 Funkce / je jistě totální. Také je vyčíslitelná, protože pomocí TM je možné zkontrolovat, jestli je slovo x kódem dvojice TM a slova, a také je možné zkonstruovat kód příslušného Turingova stroje T~m,w nebo Tco ■ Obě tyto úlohy je totiž možné vyřešit algoritmicky. Zbývá dokázat, že pro každé slovo x G Z* platí x E HALT právě tehdy, když f(x) E A. Dokážeme obě tyto implikace: • „=>": Předpokládejme, že x G HALT. Tedy z definice jazyka HALT platí x = (Ai,w), kde Ai je Turingův stroj, jehož výpočet nad slovem w je konečný. Z definice funkce / dostáváme, že f(x) = f((M,w)) = (TM,w)- Výpočet TM Tm,w na