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:T1⊢t2:T2⊢λx:T1.t2 : T1→T2

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:Tn⊢e: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 .n⊢e:TeT

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

Γ,x:T1⊢t:T2Γ⊢(λx:T1.t):T1→T2

ΓΓ,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).

λ

A⇒BBAλλx.tA→BtBxA

λ


3

⊢⊢Env×Exp×Typ

t2T2 T1x

ΓΓ∈Env:Var⇀Typ

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


-1

X⊢YYXXY


1
X⊢YXY

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:B⊢t:Cy:B,x:A⊢t:C⊢x: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.