Was bedeutet der führende Drehkreuzbetreiber?

12

Ich weiß, dass verschiedene Autoren unterschiedliche Schreibweisen verwenden, um die Semantik der Programmiersprache darzustellen. In der Tat spricht Guy Steele dieses Problem in einem interessanten Video an .

Ich würde gerne wissen, ob jemand weiß, ob der führende Drehkreuzbetreiber eine allgemein anerkannte Bedeutung hat. Zum Beispiel verstehe ich den führenden Operator am Anfang des Nenners von Folgendem nicht:

x:T1t2:T2λx:T1.t2 : T1T2

Kann mir jemand helfen zu verstehen? Vielen Dank.

Jim Newton
quelle
Related
leftaroundabout
Wow, diese Frage hat über "1k" Views, das ist mehr als die Summe der Views aller anderen 29 neuen Fragen! Wie ich überprüft habe, gehört weder das Tag "Typentheorie" noch das Tag "Denotationssemantik" zu den ersten 50 beliebten Tags. Ich bin gespannt auf die Ursache dieses Phänomens. Ich habe keine Ahnung. @ DW? Habe ich eine Meta-Frage?
John L.
Wenn ich mich nicht irre, müssen Sie den Drehkreuz-Operator ( ) zum Abschluss der Regel zwischen λ x : T 1 und t 2 bewegen . Ich würde auch den Tag hinzufügenλx:T1t2type-checking
mchar
3
@ Apass.Jack Es endete in Hot Network Questions, weshalb mehr Aufmerksamkeit auf sich gezogen wird.
JAB

Antworten:

20

Auf der linken Seite des Drehkreuzes finden Sie den lokalen Kontext, eine endliche Liste von Annahmen über die Arten der zur Verfügung stehenden Variablen.

x1:T1,,xn:Tne:T

Oben, kann gleich Null sein, was zu e : T . Dies bedeutet, dass keine Annahmen zu Variablen getroffen werden. Normalerweise bedeutet dies, dass e ein geschlossener Term (ohne freie Variablen) vom Typ T ist .ne:TeT

Häufig wird die von Ihnen erwähnte Regel allgemeiner formuliert, wobei es mehr Hypothesen geben kann als die in der Frage erwähnte.

Γ,x:T1t:T2Γ(λx:T1.t):T1T2

Hier steht für einen beliebigen Kontext, und Γ steht x : T 1 für seine Erweiterung, die durch Anhängen der zusätzlichen Hypothese x : T 1 an die Liste Γ erhalten wird . Es ist üblich , zu verlangen , dass x nicht in erschien Γ , so dass die Erweiterung nicht „Konflikt“ mit einer früheren Annahme.ΓΓ,x:T1x:T1ΓxΓ

Chi
quelle
7

Beachten Sie als Ergänzung zu den anderen Antworten, dass es drei Ebenen der "Implikation" bei der Typisierung von Ableitungen gibt. Und die gleiche Bemerkung gilt für logische Ableitungen, da es tatsächlich eine Entsprechung zwischen den beiden gibt (die als Curry-Howard-Korrespondenz bezeichnet wird).

Die erste Implikation ist der Pfeil, der in Formeln erscheint und der logischen Implikation in einer Formel (oder einem Funktionstyp für den Kalkül) entspricht.λ

Die zweite Implikation wird durch das Drehkreuzsymbol materialisiert und bedeutet "unter der Annahme, dass jede Formel auf der linken Seite gilt, gilt die Formel auf der rechten Seite". Insbesondere sagt die Regel, die Sie geben, wie man eine Implikation beweisen soll: Um zu beweisen , muss man B unter der Annahme beweisen, dass A gilt. In Bezug auf den λ- Kalkül, um zu beweisen, dass λ x . t hat den Typ A B , man muss zeigen, dass t den Typ B hat , vorausgesetzt, x ist eine Variable vom Typ A (siehe die Entsprechung?).ABBAλλx.tABtBxA

Die dritte Implikationsebene wird durch den horizontalen Balken materialisiert und bedeutet "Wenn jede Prämisse (Elemente oben) gilt, gilt die Schlussfolgerung (das Element unten)". Sie können dies mit der Interpretation der von Ihnen angegebenen Typisierungsregel für die -Abstraktion verknüpfen (siehe die Erläuterung im vorherigen Absatz).λ

Rodolphe Lepigre
quelle
3

In repräsentiert ( ) die ternäre Beziehung über Typumgebungen , Ausdrücke und Typen: E n v × E x p × T y p .Env×Exp×Typ

In Ihrem Beispiel ist der Ausdruck Typ T 2 wrt. auf eine Typumgebung mit einer Typannahme, die T 1 auf eine Typvariable x abbildett2T2 T1x

In diesem Zusammenhang ist eine Typ - Umgebung eine Teilfunktion , dass Abtretungstypen Variablen, in der Regel mit bezeichnet wobei Γ E n V : V a r T y pΓΓEnv:VarTyp

Es ist zu beachten, dass der Betreiber seine Funktionalität unabhängig davon behält, wo sie auftaucht, entweder in der Prämisse oder im Abschluss der Regel.

mchar
quelle
-1

In jeder Situation, die ich gesehen habe, bedeutet , dass es einen Beweis dafür gibt  , dass Y angenommen hat, dass X  gilt. Wenn X  leer ist, bedeutet dies, dass Y  eine Tautologie ist: Es gibt einen Beweis, ohne dass Annahmen erforderlich sind.XYYXXY

David Richerby
quelle
1
Aber wenn das, was Sie sagen, wahr ist, ist das seltsam, denn das bedeutet auch der horizontale Balken, oder? Wenn die Spitze wahr ist, dann ist die Unterseite wahr. Somit ist in der Tat das würde bedeuten, wenn dasXwahr ist, dann istYbedingungslos wahr. XYXY
Jim Newton
1
Der horizontale Balken bedeutet, dass das Objekt auf der Unterseite sofort von dem Objekt auf der Oberseite abgezogen wird. Obwohl ich zustimme, dass es in Ihrem Beispiel sehr seltsam aussieht, dass eine bedingungslose Wahrheit von einer bedingten abgeleitet wird ...
David Richerby
Typentheorie ist keine Logik. Es ist natürlich in vielerlei Hinsicht verwandt und verwendet (in gewisser Weise absichtlich) eine ähnliche Notation, aber es gibt mit Sicherheit keine A-priori-Verbindung mit der Beweisbarkeitsrelation und oft auch keine A-posteriori-Verbindung (zumindest nicht mit einer entfernt vernünftigen Logik). Wie geschrieben, ist die Antwort bestenfalls irreführend, weil sie nahelegt, dass " " eine Formel ist, die es in der Typentheorie praktisch nie gibt, z. B. eine Sprache, die Formeln wie ( x : T 1 ) ( y : T 2 enthält ) wird in der Regel nicht beschrieben und ist in einer Standard-Metalogik oft nicht möglich, zB für die lineare Lambda-Rechnung.x:T1(x:T1)(y:T2)
Derek Elkins verließ SE
x:TΓx:TΓ
Es ist nicht nur Disjunktion. Keine von ¬(x:EIN), (x:A)(y:B), or (x:A)(y:B) are formulas either. Or are you saying it's a logic that only has atomic propositions? I mentioned linear logic as an example. In ordered linear logic, it can very easily be the case that x:A,y:Bt:C holds while y:B,x:At:C does not. What connectives do the comma and correspond to that take the "truth values" of x:A, y:B, and t:C and produce the above behavior? There's an option if the meta-logic is also an ordered linear logic, but then we aren't explaining anything.
Derek Elkins left SE