Çoğu yazım sisteminde, yazım kuralları formun kararlarını tanımlamak için birlikte çalışır:
Γ⊢e:τ
Bu, bağlamında e ifadesinin τ türüne sahip olduğunu belirtir . Γ , e'nin serbest değişkenlerinin türleriyle eşleştirilmesidir .Γeτ
Γe
Bir tür sistem bir dizi aksiyom ve kuraldan ( Raphael'in işaret ettiği gibi resmi bir çıkarım kuralları sistemi) oluşacaktır .
Bir aksiyom formdadır
Γ⊢e:τ
Bu, kararının (daima) geçerli olduğunu belirtir .Γ⊢e:τ
Bir örnek
x:τ⊢x:τ
Değişken bir varsayımı altında olan bildiren olan τ , daha sonra ifade X türü vardır t alınmak .xτxτ
Çıkarım kuralları önceden belirlenmiş gerçekleri alır ve onlardan daha büyük gerçekler oluşturur. Örneğin çıkarım kuralı
Γ⊢e1:τ→τ′Γ⊢e2:τΓ⊢e1 e2:τ′
diyor ben aslında bir türevinin varsa ve aslında bir türetme y'nın ⊢ e 2 : τ , o zaman aslında bir türevinin elde edebilirsiniz y'nın ⊢ e 1 e 2 : τ ' . Bu durumda, işlev uygulaması yazma kuralı budur.Γ⊢e1:τ→τ′Γ⊢e2:τΓ⊢e1 e2:τ′
Bu kuralı okumanın iki yolu vardır:
- yukarıdan aşağıya - iki ifade (bir işlev ve başka bir ifade) ve türlerine ilişkin bazı kısıtlamalar verildiğinde, verilen türle başka bir ifade (işlevin ifadeye uygulanması) oluşturabiliriz.
- aşağıdan yukarıya - bu durumda, bir işlevin bir ifadeye uygulanması olarak ifade edildiğinde, bunun yazılma şekli ilk olarak iki ifadeyi yazarak, türlerinin bazı kısıtlamaları karşılamasını, yani ilkinin bir işlev türü ve ikincisinin işlevin bağımsız değişken türüne sahip olması.
Bazı çıkarım kuralları, içine yeni bileşenler ekleyerek manipüle eder (aşağıdan yukarıya bakıldığında). Λ- soyutlama kuralı :Γλ
Γx:τ⊢e:τ′Γ⊢λx.e:τ→τ′
Çıkarım kuralları, bir türetme ağacı oluşturduğu düşünülen ifadenin sözdizimine dayalı olarak endüktif olarak uygulanır. Ağacın yapraklarında (üstte) aksiyomlar olacak ve çıkarım kuralları uygulanarak dallar oluşturulacaktır. Ağacın en altında yazmakla ilgilendiğiniz ifade bulunur.
Örneğin, ifadesinin tipinin bir türevi . λ x . f x isimliλf.λx.f x
tipi sistemleri hakkında bilgi edinmek için İki çok iyi kitaplar şunlardır:
f:τ→τ′,x:τ⊢f:τ→τ′f:τ→τ′,x:τ⊢x:τf:τ→τ′,x:τ⊢f x:τ′f:τ→τ′⊢λx.f x:τ′⊢λf.λx.f x:τ′
Her iki kitap da çok kapsamlıdır, ancak yavaş bir şekilde başlarlar ve sağlam bir temel oluştururlar.