Cosa significa l'operatore principale del tornello?


12

So che autori diversi usano notazioni diverse per rappresentare la semantica del linguaggio di programmazione. È un dato di fatto che Guy Steele affronta questo problema in un video interessante .

Mi piacerebbe sapere se qualcuno sa se il principale operatore di tornelli ha un significato ben riconosciuto. Ad esempio, non capisco l' operatore principale all'inizio del denominatore di quanto segue:

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

Qualcuno può aiutarmi a capire? Grazie.



Caspita, questa domanda ha oltre "1k" visualizzazioni, che è più della somma delle visualizzazioni di tutte le altre 29 nuove domande! Come ho verificato, né il tag "teoria dei tipi" né il tag "semantica denotazionale" sono tra i primi 50 tag popolari. Sono curioso della causa dietro questo fenomeno. Non né ho idea. @DW? Ho una meta domanda?
John L.,

Se non sbaglio, devi spostare l'operatore del tornello ( ), a conclusione della regola, tra λ x : T 1 e t 2 . Vorrei anche aggiungere il tagλx:T1t2type-checking
mchar

3
@ Apass.Jack È finito in Hot Network Questions quindi sta ottenendo maggiore attenzione a causa di ciò.
JAB

Risposte:


20

A sinistra del tornello, è possibile trovare il contesto locale, un elenco finito di ipotesi sui tipi di variabili a portata di mano.

x1:T1,,xn:Tne:T

Sopra, può essere pari a zero, con conseguente e : T . Ciò significa che non vengono fatte ipotesi sulle variabili. Di solito, questo significa che e è un termine chiuso (senza variabili libere) avente tipo T .ne:TeT

Spesso, la regola che menzioni è scritta in una forma più generale, dove possono esserci più ipotesi di quella menzionata nella domanda.

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

ΓΓ,x:T1x:T1ΓxΓ


7

A complemento delle altre risposte, si noti che esistono tre livelli di "implicazione" nelle derivazioni di battitura. E la stessa osservazione vale con derivazioni logiche poiché esiste effettivamente una corrispondenza tra i due (chiamata corrispondenza di Curry-Howard).

λ

ABBAλλx.tABtBxA

λ


3

Env×Exp×Typ

t2T2 T1x

ΓΓEnv:VarTyp

Si noti che, l'operatore si riserva la sua funzionalità indipendentemente da dove appare, nella premessa o nella conclusione della regola.


-1

XYYXXY


1
XYXY

1
La barra orizzontale significa che la cosa in basso è una deduzione immediata della cosa in alto. Anche se concordo sul fatto che sembra molto strano nel tuo esempio che una verità incondizionata deriva da una verità condizionale ...
David Richerby,

x:T1(x:T1)(y:T2)
Derek Elkins lasciò il

x:TΓx:TΓ

¬(x:A)(x:A)(y:B)(x:A)(y:B)x:A,y:Bt:Cy:B,x:At:Cx:Ay:Bt:C
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.