Di sebagian besar sistem tipe, aturan tipe bekerja bersama untuk menentukan penilaian formulir:
Γ ⊢ e : τ
Ini menyatakan bahwa dalam konteks ekspresi e memiliki tipe τ . Γ adalah pemetaan variabel bebas e ke tipenya.Γeτ
Γe
Suatu sistem tipe akan terdiri dari serangkaian aksioma dan aturan (sistem formal aturan inferensi , seperti yang ditunjukkan oleh Raphael).
Aksioma adalah bentuk
Γ ⊢ e : τ
Ini menyatakan bahwa keputusan berlaku (selalu).Γ ⊢ e : τ
Contohnya adalah
x : τ⊢ x : τ
yang menyatakan bahwa dengan asumsi bahwa tipe variabel adalah τ , maka ekspresi x memiliki tipe τ .xτxτ
Aturan inferensi mengambil fakta yang telah ditentukan dan membangun fakta yang lebih besar darinya. Misalnya aturan inferensi
Γ ⊢ e1: τ→ τ′Γ ⊢ e2: τΓ ⊢ e1 e2: τ′
mengatakan bahwa jika saya memiliki turunan dari fakta dan derivasi dari fakta Γ ⊢ e 2 : τ , maka saya dapat memperoleh derivasi dari fakta Γ ⊢ e 1 e 2 : τ ′ . Dalam hal ini, ini adalah aturan untuk aplikasi fungsi mengetik.Γ ⊢ e1: τ→τ′Γ ⊢ e2:τΓ ⊢ e1 e2: τ′
Ada dua cara membaca aturan ini:
- top-down - diberi dua ekspresi (fungsi dan ekspresi lain) dan beberapa kendala pada tipenya, kita bisa membuat ekspresi lain (aplikasi fungsi untuk ekspresi) dengan tipe yang diberikan.
- bottom-up - diberikan ekspresi yang, dalam hal ini, penerapan fungsi untuk beberapa ekspresi, cara ini diketik adalah dengan terlebih dahulu mengetik dua ekspresi, memastikan bahwa tipe mereka memenuhi beberapa kendala, yaitu bahwa yang pertama adalah tipe fungsi dan yang kedua memiliki tipe argumen fungsi.
Beberapa aturan inferensi juga memanipulasi dengan menambahkan bahan baru ke dalamnya (lihat-bawah ke atas). Berikut adalah aturan untuk λ -straksi:Γλ
Γ x : τ⊢ e : τ′Γ ⊢ λ x . e : τ→ τ′
Aturan inferensi diterapkan secara induktif berdasarkan sintaks ekspresi yang dianggap membentuk pohon derivasi. Di daun pohon (di atas) akan ada aksioma, dan cabang akan dibentuk dengan menerapkan aturan inferensi. Di bagian paling bawah pohon adalah ekspresi yang Anda tertarik mengetik.
Misalnya, derivasi dari pengetikan ekspresi adalahλ f. λ x . f x
Dua buku yang sangat bagus untuk belajar tentang sistem tipe adalah:
f: τ→ τ′, x : τ⊢ f: τ→ τ′f: τ→ τ′, x : τ⊢ x : τf: τ→ τ′, x : τ⊢ f x : τ′f: τ→ τ′⊢ λ x . f x : τ′⊢ λ f. λ x . f x : τ′
Kedua buku ini sangat komprehensif, namun mulai perlahan, membangun fondasi yang kuat.