Die Kleene-Hierarchie zeigt uns, dass Beweise keine Programme sind.
Die erste rekursive Beziehung ist entweder:
R1( Program , Iteration ) Program halts at Iteration.
R2( Theorem , Proof ) Proof proves a Theorem.
Die ersten rekursiv aufzählbaren Beziehungen sind:
(exists x) R1( Program , x ) Program Halts.
(exists x) R2( Theorem , x) Theorem is provable.
Ein Programm ist also ein Satz, und die Iteration, bei der das Programm anhält, ist wie der Beweis, der den Satz beweist.
Program = Theorem
Iteration = Proof
Wenn ein Programm korrekt aus einer Spezifikation erstellt wird, müssen wir nachweisen können, dass es der Spezifikation entspricht, und wenn wir nachweisen können, dass ein Programm einer Spezifikation entspricht, handelt es sich um eine korrekte Programmsynthese. Wir führen also eine Programmsynthese durch, wenn wir nachweisen, dass das Programm die Spezifikation erfüllt. Der Satz, dass das Programm die Spezifikation erfüllt, ist das Programm, indem sich der Satz auf das Programm bezieht, das synthetisiert wird.
Martin Lofs falsche Schlussfolgerungen haben niemals Computerprogramme hervorgebracht, und es ist erstaunlich, dass die Leute glauben, dass es sich um eine Programmsynthesemethode handelt. Es wurden nie vollständige Beispiele für ein Programm angegeben, das synthetisiert wird. Eine Spezifikation wie "Eingabe eines Typs und Ausgabe eines Programms dieses Typs" ist keine Funktion. Es gibt mehrere solcher Programme und eine zufällige Auswahl ist keine rekursive Funktion oder gar eine Funktion. Es ist nur ein alberner Versuch, die Programmsynthese mit einem albernen Programm zu zeigen, das kein echtes Computerprogramm darstellt, das eine rekursive Funktion berechnet.