Es ist inspiriert von realen Ereignissen, aber die Art und Weise, wie es angegeben wird, ist kaum erkennbar und „sollte mit Argwohn betrachtet werden“ ist Unsinn.
Konsistenz hat in der Logik eine genaue Bedeutung: In einer konsistenten Theorie können nicht alle Aussagen bewiesen werden. Inklassischen Logik, dies auf das Fehlen eines Widerspruchs äquivalent ist, dh eine Theorie ist inkonsistentwenn und nur wenn es eine Aussageso dass die Theorie sowohl beweistund seine Negation.AA¬A
Was bedeutet das für die Lambda-Rechnung? Nichts. Die Lambda-Rechnung ist ein Umschreibungssystem, keine logische Theorie.
Es ist möglich, die Lambda-Rechnung in Relation zur Logik zu betrachten. Betrachten Sie Variablen als Repräsentation einer Hypothese in einem Beweis, Lambda-Abstraktionen als Beweise unter einer bestimmten Hypothese (repräsentiert durch die Variable) und die Anwendung als Zusammenstellung eines bedingten Beweises und Beweises der Hypothese. Dann entspricht die Beta-Regel der Vereinfachung eines Beweises durch Anwendung von modus ponens , einem Grundprinzip der Logik.
Dies funktioniert jedoch nur, wenn der bedingte Beweis mit einem Beweis der richtigen Hypothese kombiniert wird. Wenn Sie einen bedingten Beweis haben, der annimmt, und Sie auch einen Beweis von , können Sie sie nicht miteinander kombinieren. Wenn Sie diese Interpretation des Lambda-Kalküls anwenden möchten, müssen Sie eine Einschränkung hinzufügen, dass nur Beweise der richtigen Hypothese auf bedingte Beweise angewendet werden. Dies wird als Typsystem bezeichnet. Die Einschränkung ist die Typisierungsregel, nach der beim Übergeben eines Arguments an eine Funktion der Typ des Arguments mit dem Parametertyp der Funktion übereinstimmen muss.n=3n=2
Die Curry-Howard-Korrespondenz ist eine Parallele zwischen typisierten Kalkülen und Beweissystemen.
- Typen entsprechen logischen Aussagen;
- Begriffe entsprechen Beweisen;
- bewohnte Typen (dh Typen, bei denen es einen Begriff dieses Typs gibt) entsprechen wahren Aussagen (dh Aussagen, bei denen es einen Beweis für diese Aussage gibt);
- Programmevaluierung (dh Regeln wie Beta) entsprechen Transformationen von Beweisen (die richtige Beweise besser in richtige Beweise umwandeln sollten).
Ein typisierter Kalkül mit einem Festkomma-Kombinator wie ermöglicht die Bildung eines beliebigen Terms (versuchen Sie, auszuwerten ). Wenn Sie also die logische Interpretation durch die Curry-Howard-Korrespondenz nehmen, erhalten Sie eine inkonsistente Theorie. Siehe Widerspricht der Y-Kombinator der Curry-Howard-Korrespondenz? für mehr Details.YY(λx.x)
Dies ist für die reine Lambda-Rechnung, dh für die typenlose Lambda-Rechnung, nicht sinnvoll.
In vielen typisierten Kalkülen ist es unmöglich, einen Festkomma-Kombinator zu definieren. Diese typisierten Kalküle sind in Bezug auf ihre logische Interpretation nützlich, jedoch nicht als Grundlage für eine Turing-vollständige Programmiersprache. In einigen typisierten Kalkülen ist es möglich, einen Festkomma-Kombinator zu definieren. Diese typisierten Kalküle sind als Grundlage für eine Turing-vollständige Programmiersprache nützlich, jedoch nicht in Bezug auf ihre logische Interpretation.
Abschließend:
- Die Lambda-Rechnung ist nicht „inkonsistent“, dieses Konzept gilt nicht.
- Ein typisierter Lambda-Kalkül, der jedem Lambda-Term einen Typ zuweist, ist inkonsistent. Einige typisierte Lambda-Kalküle sind so, andere machen einige Begriffe untypisierbar und sind konsistent.
- Typisierten Lambda - Kalküle ist nicht die einzige Daseinsberechtigung für das Lambda - Kalkül und sogar widersprüchlich typisierten Lambda - Kalküle sind sehr nützliche Werkzeuge - nicht nur , um die Dinge zu beweisen.