Es gibt in der Tat Programme wie dieses. Um dies zu beweisen, nehmen wir im Gegenteil an, dass es für jede Maschine, die nicht anhält, einen Beweis gibt, dass sie nicht anhält.
Diese Beweise sind Zeichenfolgen endlicher Länge, sodass wir für einige ganze Zahlen s alle Beweise mit einer Länge von weniger als auflisten können .ss
Wir können dies dann verwenden, um das Halteproblem wie folgt zu lösen: Wenn eine Turing-Maschine und eine Eingabe x gegeben sind , verwenden wir den folgenden Algorithmus:Mx
s := 0
while (True)
test if machine M halts on input x in s steps
look at all proofs of length s and see if they prove M doesn't halt on input x
set s := s + 1
Wenn bei Eingabe x anhält , hält es in einer endlichen Anzahl von Schritten s an , sodass unser Algorithmus endet.Mxs
Wenn bei Eingabe x nicht anhält , gibt es nach unserer Annahme einige Beweislängen s, in denen es einen Beweis gibt, dass M nicht anhält. In diesem Fall wird unser Algorithmus immer beendet.MxsM
Wir haben also einen Algorithmus, der über das Problem des Anhaltens entscheidet und der immer endet. Wir wissen jedoch, dass dies nicht existieren kann, und daher muss unsere Annahme, dass es immer einen Beweis für die Unaufhaltsamkeit gibt, falsch sein.
if T is true then halt else loop forever