Nieformalne oświadczenie nie jest prawdziwe, jak pokazuje poniższy język programowania. Każdy ciąg, powiedzmy, znaków ASCII jest poprawnym programem, a znaczenie każdego programu brzmi: „Wyprowadź program, który po prostu wypisuje kopię swojego wejścia”. Zatem każdy program w tym języku jest kompilatorem języka, ale język nie jest kompletny w Turingu.
Nie jestem pewien, czy twoja „wersja teorii obliczeń” jest równoważna, ale też nie jest prawdą. Zgodnie z drugim twierdzeniem Kleene o rekurencji dla dowolnego kodowania maszyn Turinga istnieje TM, która akceptuje własne kodowanie i odrzuca wszystkie inne. 1 To urządzenie jest kontrprzykładem do zdania. Mówiąc konkretniej, możemy osiągnąć wynik, wybierając kodowanie. Na przykład, niech każdy nieparzysty numer koduje maszynę zdefiniowaną przez „Jeśli moje dane wejściowe są nieparzyste, zaakceptuj ją, w przeciwnym razie odrzucaj” i niech cyfra 2 x koduje maszynę zakodowaną przez x w twoim ulubionym schemacie kodowania dla maszyn Turinga. ⟨ M ⟩ jest w języku L zaakceptowany przez MM.2 xx⟨ M⟩L.M.ale nie jest ukończony przez Turinga.faL.
1 sekundy rekursji KLEENE Twierdzenie mówi, że na każdy wyliczenie częściowych funkcji rekurencyjnej (czyli dla każdego kodowania programów jako liczby całkowite) oraz każde częściowe funkcji rekurencyjnej P ( x , y ) nie jest liczba całkowita p taka, że ϕ p jest funkcją odwzorowującą y na Q ( p , y ) . W szczególności niech Q będzie funkcją, która akceptuje, jeśli x = y( ϕja)i ≥ 0Q ( x , y)pϕpyQ ( p , y)Qx = yi odrzuca inaczej. Według twierdzenia istnieje liczba całkowita która koduje program ϕ p ( y ) = Q ( p , y ) . Oznacza to, że ϕ p przyjmuje własne kodowanie p i odrzuca wszystkie inne dane wejściowe.pϕp( y) = Q ( p , y)ϕpp