Oft wird der Nachweis, dass das Halteproblem nicht entscheidbar ist, in der Fachliteratur (Schöning [📖Sch08, p. 119 f.], Asteroth und Baier [📖BA02, p. 106 f.], Sipser [📖Sip12, p. 216 f.]) mithilfe einer Turingmaschine und einem Widerspruchsbeweis gezeigt, in etwa:
Angenommen,
ist entscheidbar.
Sei ist die Turingmaschine, die entscheidet.
Sei die Codierung3 einer Turingmaschine, die wie folgt arbeitet:
- simuliert das Verhalten von bei der Eingabe :
- stoppt, wenn die Eingabe verwirft ()
- stoppt nicht, wenn die Eingabe akzeptiert ()
Damit folgt: stoppt bei Eingabe verwirft stoppt nicht
Widerspruch!
Bei Vossen und Witt wird der Beweis anhand unentscheidbarer Mengen gezeigt - hierzu wird in dem Abschnitt über Berechenbarkeit die Abzählbarkeit von Turingmaschinen und analog dazu die Standardnummerierung von 1 als theoretischer Unterbau festgelegt, um darauf aufbauend den Nachweis der Semi-Entscheidbarkeit und Unentscheidbarkeit zu führen. Im Folgenden findet sich die Beweisführung nach Vossen und Witt [📖VW16, p. 360 ff.] mit ergänzenden Kommentaren.
Die Standardnummerierung ist festgelegt als:
- : Die Menge aller Turingmaschinen (ein repräsentiert die Gödelnummer einer Turingmaschine), wobei die Menge aller normierten Turingmaschinen ist. Die Abbildung ist definiert durch bildet also auf eine natürliche Zahl eine Turingmaschine ab.
- : Die Menge aller berechenbaren Funktionen.
- ist eine Abzählung aller berechenbaren Funktionen. ist festgelegt durch Die berechenbare Funktion wird also durch die -te Turingmaschine berechnet.
Die Standardnummerierung ist im Folgenden die Grundlage für die Formulierung von Entscheidbarkeitsproblemen bei Mengen.
Das spezielle Halteproblem
Zunächst wird das spezielle Halteproblem (auch Selbstanwendbarkeitsproblem) betrachtet.
Vossen und Witt definieren es über folgende Menge:
enthält alle Nummern von Turingmaschinen, die, angewendet auf sich selbst, anhalten:
- ist die Codierung einer Turingmaschine.
- ist die berechenbare Funktion, die von der Turingmaschine berechnet wird.
- ist der Definitionsbereich der Funktion , also alle erlaubten Eingaben.
- bedeutet: Die Codierung der Turingmaschine , die berechnet, ist eine erlaubte Eingabe.
Vossen und Witt definieren als die "Menge aller Turingmaschinen, die, [...] anhalten."
Das bedeutet, dass von einer entscheidbaren Menge ausgegangen wird:
Es wird angenommen, dass sowohl als auch semi-entscheidbar sind und die charakteristische Funktion von berechenbar ist.
Mit Satz 10.7 formulieren Vossen und Witt den Kern des Selbstanwendbarkeitsproblems, nämlich, dass zwar semi-entscheidbar, aber nicht entscheidbar ist:
- ist rekursiv aufzählbar
- ist nicht entscheidbar
Damit wird behauptet:
- ist semi-entscheidbar, da rekursiv-aufzählbar.
Wenn semi-entscheidbar ist, ist auch die semi-charakteristische Funktion von , , berechenbar.
Wenn semi-entscheidbar und damit rekursiv aufzählbar ist, dann gilt äquivalent dazu: ist der Definitionsbereich einer berechenbaren Funktion (s. Folgerung 10.2 [📖VW16, p. 356]). Es reicht also aus, eine solche Funktion anzugeben, um die Semi-Entscheidbarkeit und damit auch die rekursive Aufzählbarkeit nachzuweisen. - Wenn entscheidbar ist, dann ist auch die charakteristische Funktion berechenbar: gibt aus, wenn die Turingmaschine angewendet auf anhält (also wenn berechnet wird); und ansonsten ist , wenn nicht anhält2.
Beweisführung
Der Beweis wird wie folgt geführt:
a) Vossen und Witt definieren die Funktion durch
Bei handelt es sich um die universelle Funktion von :
berechnet die -te berechenbare Funktion für die Eingabe .
Mit als berechenbare Funktion kann gezeigt werden:
womit ist und damit rekursiv-aufzählbar und semi-entscheidbar ist.
b) Angenommen, ist entscheidbar. Dann ist berechenbar.
Vossen und Witt definieren eine berechenbare (Hilfs-)Funktion
durch
ist total berechenbar: Wenn , dann ist , und damit ist .
Da total berechenbar ist (), muss es ein geben mit . Es folgt
Für werden nun zwei Fälle untersucht:
Fall 1:
womit insgesamt die widersprüchliche Aussage folgt:
Fall 2:
womit insgesamt die widersprüchliche Aussage folgt:
Insgesamt wird durch den Beweis gezeigt: Die Anwendung von auf - also von auf sich selbst (wegen ) - führt in jedem Fall zu einem Widerspruch.
Damit ist gezeigt, dass nicht berechenbar und folglich nicht entscheidbar ist.
Mit dem Wissen um die Unentscheidbarkeit und der Semi-Entscheidbarkeit von ist es nun möglich, eine Funktion anzugeben, mit der sich auf reduzieren lässt, so dass . Da unentscheidbar ist, ist auch unentscheidbar. Es muss gezeigt werden, dass auch semi-entscheidbar ist, da dies nicht allein aus der Reduktion von auf folgt (vgl. Satz 10.5 [📖VW16, p. 358] sowie Folgerung 10.3 [📖VW16, p. 359]). Der Beweis erfolgt analog zum Nachweis der rekursiven Aufzählbarkeit von mit Satz 10.8 [📖VW16, p. 363].
- Anstatt Gödelnummer wird im Folgenden auch einfach der Begriff Codierung verwendet, wobei streng genommen die Codierung einer normierten Turingmaschine ist, bevor ihr eine Gödelnummer zugewiesen wird ↩
- bezeichnet die Menge der partiell-rekursiven Funktionen. Es gilt , mit als die Menge der primitiv-rekursiven Funktionen, die eine echte Teilmenge der total berechenbaren Funktionen sind↩
- der Widerspruch liest sich hier bereits heraus.↩