W większości systemów typów reguły typów współpracują ze sobą w celu zdefiniowania ocen formy:
Γ ⊢ e : τ
Oznacza to, że w kontekście wyrażenie e ma typ τ . Γ jest odwzorowaniem wolnych zmiennych e na ich typy.Γmiτ
Γmi
System typów będzie się składał z zestawu aksjomatów i reguł (formalny system reguł wnioskowania , jak podkreśla Raphael).
Aksjomat ma postać
Γ ⊢ e : τ
Stwierdza on, że wyrok Uznaje (zawsze).Γ ⊢ e : τ
Przykładem jest
x : τ⊢ x : τ
który stwierdza, że przy założeniu, że typem zmiennej jest τ , wówczas wyrażenie x ma typ τ .xτxτ
Reguły wnioskowania pobierają ustalone wcześniej fakty i budują z nich większe fakty. Na przykład reguła wnioskowania
. ⊢ e1: τ→ τ′. ⊢ e2): τ. ⊢ e1 mi2): τ′
mówi, że jeśli mam wyprowadzenie faktu i wyprowadzenie z faktu Tt ⊢ e 2 : τ , to mogę otrzymać wyprowadzenie faktu Tt ⊢ e 1 e 2 : τ ' . W takim przypadku jest to reguła dla aplikacji funkcji pisania na klawiaturze.. ⊢ e1: τ→ τ′. ⊢ e2): τ. ⊢ e1 mi2): τ′
Istnieją dwa sposoby czytania tej zasady:
- z góry na dół - biorąc pod uwagę dwa wyrażenia (funkcję i inne wyrażenie) oraz pewne ograniczenia dotyczące ich typu, możemy skonstruować inne wyrażenie (zastosowanie funkcji do wyrażenia) z danym typem.
- bottom-up - biorąc pod uwagę wyrażenie, które w tym przypadku jest zastosowaniem funkcji do jakiegoś wyrażenia, sposób ten jest wpisywany najpierw poprzez wpisanie dwóch wyrażeń, upewniając się, że ich typy spełniają pewne ograniczenia, a mianowicie, że pierwsze jest typ funkcji, a drugi ma typ argumentu funkcji.
Γλ
Γ x : τ⊢ e : τ′Γ ⊢ λ x . e : τ→ τ′
Reguły wnioskowania są stosowane indukcyjnie w oparciu o składnię wyrażenia uznawanego za drzewo genealogiczne. Na liściach drzewa (u góry) będą znajdować się aksjomaty, a gałęzie zostaną utworzone przez zastosowanie reguł wnioskowania. Na samym dole drzewa znajduje się wyrażenie, które chcesz wpisać.
λ f. λ x . fa x
fa: τ→ τ′, x : τ⊢ f: τ→ τ′fa: τ→ τ′, x : τ⊢ x : τfa: τ→ τ′, x : τ⊢ f x : τ′fa: τ→ τ′⊢ λ x . fa x : τ′⊢ λ f. λ x . fa x : τ′
Obie książki są bardzo obszerne, ale zaczynają się powoli, tworząc solidny fundament.