Frage

erste frage: Wie würde man beweisen, dass das durch Entfernen von freien (ungebundenen) Variablen aus Lambda-Kalkül, und nur gebundene Variablen ermöglicht, seine Leistung nicht reduziert (es ist immer noch tärgert)?

Zweite Frage: Ist der Vorschlag, der oben wirklich true ist?Ist Lambda Calculus sans kostenlose Variablen wirklich tärgert?

War es hilfreich?

Lösung

Ich gehe davon aus, dass Sie sich auf den ungleichmäßigen Lambda-Kalkül beziehen.

Wenn ja, schreiben Sie $ \ NewCommand {\ num} [1] {\ Ulcorner # 1 \ urcorner} \ num {n} $ für das kirchliche Ziffer von Der natürliche nicht-Span-Class="Math-Container"> $ n $ .

Es ist bekannt, dass es einen geschlossenen Begriff gibt (d. H. Ohne freie Variablen) $ TM $ so $$ Tm \ \ num {i} \ \ num {n} \= _ {\ beta \ eta} \ \ num {m} $$ Wenn und nur, wenn der $ I $ -th-Turing-Maschine (in einer Standardaufzählung) mit der Eingabe $ n \ in \ mathbb n $ (kodiert wie üblich) HALTS RETURNING $ M $ als Ausgabe.

In der Tat, das Schreiben von $ TM $ ist eine Standard-Übung "Programmierung" im Lambda-Kalkül. Dafür kann man das Band als Paar-oder-Paar-Paare von ... (auch eine Nachteile) von Symbolen darstellen. Dann kann ein "Stepping" -Subroutin, um das Band vorzunehmen, und der TM-Zustand kann geschrieben werden. Schließlich wird das Stepping-Subroutin aufgerufen, bis ein Angehöriger erreicht ist. Dieser letzte Schritt kann mit einem Festpunkt-Kombinator, wie beispielsweise $ y $ erreicht werden.

Da wir jede Turierungsmaschine simulieren können, erhalten wir Vollständigkeit.


alternativer Nachweis, der (meiner Meinung nach) tatsächlich leichter ist, um tatsächlich in vollem Umfang auszuführen: Beweisen Sie, dass jede allgemeine rekursive Funktion $ \ lambda $ -definiert sein kann ein geschlossener Lambda-Begriff. Dafür fahren Sie mit der Definition der allgemeinen rekursiven Funktion nach Induktion fort.

in der Tat, auch wenn Sie nicht nach geschlossenen Bedingungen anstreben, erhalten Sie in dieser Programmierausübung einen geschlossenen auf natürliche Weise. Nach allem, wenn die Programmierung niemals eine Variable benötigt, die vorher nicht deklariert wurde.

Da die allgemeinen rekursiven Funktionen genau die sind, die von einer Turingmaschine berechnet werden können, erhalten wir die Vollständigkeit für den geschlossenen Lambda-Kalkül.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top