Beim Lesen der Zeitung Eine Einführung in die Lambda-Rechnung stieß ich auf einen Absatz, den ich nicht wirklich verstand, auf Seite 34 (meine Kursivschrift):
Innerhalb jedes der beiden Paradigmen gibt es mehrere Versionen des typisierten Lambda-Kalküls. In vielen wichtigen Systemen, insbesondere in solchen a la Church, haben Begriffe, die einen Typ haben, immer eine normale Form. Durch die Unlösbarkeit des Stoppproblems impliziert dies, dass nicht alle berechenbaren Funktionen durch einen typisierten Begriff dargestellt werden können, siehe Barendregt (1990), Satz 4.2.15. Das ist nicht so schlimm, wie es sich anhört, denn um solche berechenbaren Funktionen zu finden, die nicht dargestellt werden können, muss man auf dem Kopf stehen. Zum Beispiel können in 2, dem Lambda-Kalkül zweiter Ordnung, nur die partiellen rekursiven Funktionen dargestellt werden, die zufällig total sind, aber in der mathematischen Analyse (Arithmetik zweiter Ordnung) nicht nachweisbar.
Ich kenne die meisten dieser Konzepte, aber weder das Konzept einer partiellen rekursiven Funktion noch das Konzept einer nachweislich vollständigen Funktion. Dies ist jedoch nicht das, was mich am Lernen interessiert.
Ich suche nach einer einfachen Erklärung, warum bestimmte berechenbare Funktionen nicht durch einen typisierten Begriff dargestellt werden können und warum solche Funktionen nur "auf dem Kopf stehend" gefunden werden können.
quelle
Ich finde, dass Merijns Antwort den ersten Teil Ihrer Frage recht gut behandelt. Ich werde versuchen, den zweiten Teil zu beantworten: Warum das Finden von Funktionen, die berechenbar, aber im polymorphen Kalkül nicht darstellbar sind, "auf dem Kopf stehen" erfordert.λ
Ich fürchte, es bedarf einer Erklärung der Konzepte, an denen Sie nicht interessiert sind. Eine partielle rekusive Funktion ist ein Term, der eine Funktion von N bis N ∪ { ⊥ } darstellt . A λ -term an die repräsentativ für eine natürliche Zahl angewandt wird gesendet , wenn und nur wenn ist nicht eine normale Form. Wenn keine Nummer an gesendet wird, sagen wir, dass die Funktion total ist . Nun ist die Idee, dass keine logische Theorie beweisen kann, dass ein Termλ N N∪{⊥} λ t n ⊥ t n ⊥ T t stellt eine Gesamtfunktion für jede Gesamtfunktion , es gibt immer "blinde Flecken", in denen an allen Eingaben endet , aber an der Anweisungt t n
ist in unentscheidbar . Wenn die obige Aussage ist beweisbar in , sagen wir , dass die Funktion , die durch ist beweisbar insgesamt . Dass nicht alle Gesamt Funktionen in beweisbar sind insgesamt ist eine Folge (eine Variante) die Godel Unvollständigkeitssatzes für .T T t T T
Der Punkt ist nun, dass das überwiegende Mehrheitsprogramm , das wir konkret schreiben möchten (Listensortierung, Graph-Traversal, Betriebssysteme), nicht nur Gesamtfunktionen sind, sondern nachweislich in vernünftigen logischen Systemen wie Peano Arithmetic insgesamt.
Nun zum polymorphen Kalkül. Es kann gezeigt werden, dass die Begriffe, die man in diesen Kalkül eingeben kann, genau die Begriffe sind, die die Funktionen darstellen, die nachweislich in der Peano-Arithmetik zweiter Ordnung insgesamt sind. Peano-Arithmetik zweiter Ordnung ist viel, viel mächtiger als gewöhnliche Peano-Arithmetik.λ
Dies bedeutet durch die obigen Erklärungen, dass es Begriffe gibt, die total, aber nicht nachweislich total sind, aber solche Funktionen sind äußerst selten, da sie für Peano Arithmetic bereits selten sind (und in der Theorie zweiter Ordnung so viel seltener). Daher die Aussage "auf dem Kopf stehen".
quelle
Ich finde es etwas schwierig, den Beweis präzise aufzuschreiben, aber ich hoffe, diese Erklärung bietet Ihnen genug Intuition, um zu verstehen, warum einfache typisierte Begriffe nicht alle untypisierten Begriffe darstellen können.
Der einfach getippte Lambda-Kalkül normalisiert sich stark. Jede Reduktion bringt uns der normalen Form näher. Wenn die Funktion f : : α → & bgr; → & ggr; wird auf einen Wert von Typ angewendet α wird es ß zu einer Funktion des Typs reduzieren & bgr; → & ggr; . Bei einer endlichen Anzahl von Argumenten ist eine endliche Anzahl von Reduktionsschritten erforderlich, um eine β- normale Form zu erreichen , bei der es keine weiteren möglichen Reduktionen gibt.β f::α→β→γ α β β→γ β
Um dies mit dem untypisierten Lambda-Kalkül zu kontrastieren. Einer der bekanntesten UTLC-Kombinatoren ist der Kombinator:Y
Wenn wir versuchen, den Kombinator zu reduzieren, geschieht Folgendes:Y
( λ x . g
quelle