Ich habe eine philosophische Frage zum λ-Kalkül.
Wenn Sie λ-Kalkül erforschen, werden Sie überrascht sein, all die Dinge zu sehen, die Sie dort tun können. Sie können Ganzzahlen, arithmetische Operationen, Boolesche Werte, Wenn-Dann-Sonst-Anweisungen, Schleifen, rekursive Funktionen usw. definieren. Ich glaube, dies hat sich als rechnerisch vollständig erwiesen.
Wenn Sie jedoch überlegen, was Sie mit Funktionen in λ-Kalkül tun können, erkennen Sie, dass Sie ihm nur eine Funktion zuführen können und eine andere Funktion zurückgeben. Und dieser Prozess endet nie.
Wie können Sie also ein Ergebnis aus einer Berechnung extrahieren?
Angenommen, das Ergebnis eines Ausdrucks ist eine Funktion f. Sie möchten überprüfen, ob fSie das erwartet haben. Sie können es testen, eine Funktion übernehmen, die Sie kennen, sich darauf bewerben fund empfangen g. Um zu überprüfen, ob dies gkorrekt ist, müssen Sie jetzt überprüfen, was gfunktioniert. Und du fängst von vorne an. Wie können Sie also etwas darüber erzählen f?
Es scheint mir, dass Sie alle Funktionen im λ-Kalkül durch eine einzige Funktion, die Identitätsfunktion I = λx.x, ersetzen können , und alles funktioniert immer noch wie im λ-Kalkül beschrieben. Die Kirchennummer, 3wenn sie gegeben ist fund xzurückkehrt f(f(f(x))). Aber da fund xkann nur sein I, kehrt es zurück I. Iangewendet auf Iund Ikehrt auch zurück I. So Ierfüllt die Definition 3. Die "Booleschen Werte" (λxy.x)und (λxy.y)benötigen 2 Argumente, Iund Ibeide Booleschen Werte werden zurückgegeben I. Jedes entspricht der Identität, obwohl sie sich genau nach ihren Definitionen verhalten.
Wie machen Sie den Unterschied? Wie zeigen Sie, dass λ-Kalkül mehr als nur eine einzelne Funktion behandelt?
Gibt es ein Identitätskonzept? Können Sie eine Funktion sofort identifizieren, ohne sie zu bewerten? Ich glaube, es wurde bewiesen, dass es keine Möglichkeit gibt, zwei Funktionen auf Gleichheit zu testen.
Oder geht es beim λ-Kalkül nicht um Funktionen, sondern um die formale Beschreibung dessen, was sie tun? Das würde bedeuten, dass λ-Ausdrücke nicht nur definieren, was die Funktionen tun, sondern auch die Daten sind, die die Funktionen manipulieren. Wenn Sie also schreiben A B, wenden Sie sich nicht Aan B, sondern wenden die durch die Zeichenfolge beschriebene Funktion Aauf die formale Definition einer Funktion an, die in der BRückgabe einer anderen formalen Definition enthalten ist.
Was ist eigentlich in der λ-Rechnung los? Mit welchen mathematischen Objekten handelt es sich?
Nachverfolgen:
OK, aus der Antwort unten geht hervor, dass es bei der λ-Berechnung nicht so sehr um Funktionen im mathematischen Sinne geht, sondern um die Teilmenge von Funktionen, die als λ-Ausdrücke ausgedrückt werden können. Oder noch mehr über die Manipulation von λ-Ausdrücken.