У більшості систем типів правила типу працюють разом для визначення суджень форми:
Γ⊢e:τ
Це говорить про те, що в контексті вираз e має тип τ . Γ - відображення вільних змінних eΓeτ
Γe до їх типів.
Система типу буде складатися з набору аксіом і правил (формальна система правил умовиводу , як вказує Рафаель).
Аксіома має форму
Γ⊢e:τ
Це говорить про те, що рішення Γ⊢e:τ виконується (завжди).
Прикладом є
x:τ⊢x:τ
який говорить, що за припущенням, що тип змінної дорівнює τ , то вираз x має тип τxτxτ .
Правила висновку беруть факти, які вже були визначені, і будують з них більші факти. Наприклад, правило висновку
Γ⊢e1:τ→τ′Γ⊢e2:τΓ⊢e1 e2:τ′
говорить, що якщо у мене є виведення факту та виведення факту Γ ⊢ e 2 : τ , то я можу отримати деривацію факту Γ ⊢ e 1 e 2 : τ ′ . У цьому випадку це правило для набору функції функції.Γ⊢e1:τ→τ′Γ⊢e2:τΓ⊢e1 e2:τ′
Існує два способи читання цього правила:
- зверху вниз - з огляду на два вирази (функція та інший вираз) та деякі обмеження на їх тип, ми можемо побудувати інший вираз (додаток функції до виразу) із заданим типом.
- знизу вгору - з урахуванням виразу, тобто в даному випадку застосування функції до якогось виразу, спосіб, який це вводиться, спочатку набравши два вирази, гарантуючи, що їхні типи задовольняють деяким обмеженням, а саме, що перший - це тип функції і що другий має тип аргументу функції.
Деякі правила висновку також маніпулюють , додаючи до нього нові інгредієнти (перегляд знизу вгору). Ось правило для λ -абстракції:Γλ
Γx:τ⊢e:τ′Γ⊢λx.e:τ→τ′
Правила умовиводу застосовуються індуктивно, ґрунтуючись на синтаксисі виразу, що розглядається, для формування дерева деривації. На листках дерева (вгорі) будуть аксіоми, а гілки формуватимуться, застосовуючи правила виводу. У самому дні дерева - вираз, який вам цікаво ввести.
Наприклад, деривація набору тексту виразу єλf.λx.f x
Дві дуже хороші книги для вивчення систем типів:
f:τ→τ′,x:τ⊢f:τ→τ′f:τ→τ′,x:τ⊢x:τf:τ→τ′,x:τ⊢f x:τ′f:τ→τ′⊢λx.f x:τ′⊢λf.λx.f x:τ′
Обидві книги дуже вичерпні, але вони починаються повільно, будуючи міцний фундамент.