Nella maggior parte dei sistemi di tipi, le regole di tipo lavorano insieme per definire giudizi del modulo:
Γ ⊢ e : τ
Ciò afferma che nel contesto l'espressione e ha tipo τ . Γ è una mappatura delle variabili libere di e ai loro tipi.Γeτ
Γe
Un sistema di tipi consisterà in un insieme di assiomi e regole (un sistema formale di regole di inferenza , come sottolinea Raffaele).
Un assioma ha la forma
Γ⊢ e : τ
Questo afferma che il giudizio regge (sempre).Γ ⊢ e : τ
Un esempio è
x : τ⊢ x : τ
che afferma che presupponendo che il tipo di variabile sia τ , quindi l'espressione x ha tipo τ .XτXτ
Le regole di inferenza prendono fatti che sono già stati determinati e ne ricavano fatti più grandi. Ad esempio la regola di inferenza
Γ ⊢ e1: τ→ τ'Γ ⊢ e2: τΓ ⊢ e1 e2: τ'
dice che se ho una derivazione del fatto e una derivazione del fatto Γ ⊢ e 2 : τ , allora posso ottenere una derivazione del fatto Γ ⊢ e 1 e 2 : τ ′ . In questo caso, questa è la regola per digitare l'applicazione delle funzioni.Γ ⊢ e1: τ→ τ'Γ ⊢ e2: τΓ ⊢ e1 e2: τ'
Esistono due modi per leggere questa regola:
- top-down - date due espressioni (una funzione e un'altra espressione) e alcuni vincoli sul loro tipo, possiamo costruire un'altra espressione (l'applicazione della funzione all'espressione) con il tipo dato.
- bottom-up - data un'espressione che è, in questo caso, l'applicazione di una funzione a qualche espressione, il modo in cui questa è digitata è innanzitutto digitando le due espressioni, assicurando che i loro tipi soddisfino alcuni vincoli, vale a dire che la prima è una tipo di funzione e che il secondo ha il tipo di argomento della funzione.
Alcune regole di inferenza manipolano anche aggiungendo nuovi ingredienti (vista dal basso verso l'alto). Ecco la regola per λ -abstraction:Γλ
Γ x : τ⊢ e : τ'Γ ⊢ λ x . e : τ→ τ'
Le regole di inferenza vengono applicate induttivamente in base alla sintassi dell'espressione considerata per formare un albero di derivazione. Alle foglie dell'albero (in alto) ci saranno gli assiomi e i rami si formeranno applicando regole di inferenza. Nella parte inferiore dell'albero c'è l'espressione che ti interessa scrivere.
Ad esempio, una derivazione della tipizzazione dell'espressione èλ f. λ x . f X
Due libri molto validi per l'apprendimento dei sistemi di tipi sono:
f: τ→ τ', x : τ⊢ f: τ→ τ'f: τ→ τ', x : τ⊢ x : τf: τ→ τ', x : τ⊢ f x : τ'f: τ→ τ'⊢ λ x . f x : τ'⊢ λ f. λ x . f x : τ'
Entrambi i libri sono molto completi, ma iniziano lentamente, costruendo solide basi.