xT xS
Bir örnek
Bu ayrımı açıklığa kavuşturmak için Herman Geuvers'ın ders notlarında verilen örneği kullanacağım . İlk önce, bir türün yaşadığı bir örneğe bakalım:
3+(7∗8)5:Nat,
3∈{n∈N∣∀x,y,z∈N+(xn+yn≠zn)}
Buradaki ana fark, ilk ifadenin doğal bir sayı olup olmadığını sınamak için, bazı anlamsal anlamlar hesaplamamız gerekmiyor, yalnızca tüm kelimelerin Nat türünde olduğu ve tüm operatörlerin olduğu gerçeğini 'okumamız' gerekiyor. Nat tipi kapalıdır.
33
Algoritmalar vs Kanıtlar
Özetlemek gerekirse, türler genellikle bazı ifadelerin sözdizimindeki 'basit' talepler için kullanılır, öyle ki bir tür üyeliği bir algoritma ile kontrol edilebilir, bir grubun üyeliğini test etmek için genellikle bir kanıt isteriz .
Bu ayrımın neden faydalı olduğunu görmek için, yazılı bir programlama dilinin derleyicisini düşünün. Bu derleyicinin 'türleri kontrol etmek' için resmi bir kanıt oluşturması gerekiyorsa, derleyiciden neredeyse imkansız bir görev yapması istenir (otomatik teorem ispatlaması genel olarak zordur). Öte yandan, derleyici türleri kontrol etmek için basitçe (verimli) bir algoritmayı çalıştırabilirse, görevi gerçekçi bir şekilde gerçekleştirebilir.
Kesin (er) bir yorum için bir motivasyon
Kümelerin ve türlerin semantik anlamının birçok yorumu vardır. Burada yapılan ayrımın altında, genişleyemeyen türler ve kararsız tür kontrolüne sahip türler (yorumlarda belirtildiği gibi NuPRL'de kullanılanlar gibi) 'türler' olmayacak olsa da, diğerleri elbette bu türleri özgürce çağırmakta özgürdürler. tanımlarına uydukları sürece, onlara başka bir şey söyleyebilecekleri gibi).
Bununla birlikte, biz (Herman Geuvers ve ben) bu yorumu pencereden atmamayı tercih ediyoruz, ki (Herman olmasa da, aynı fikirde olsa da) aşağıdaki motivasyonları benimsedim:
Her şeyden önce, bu yorumlamanın amacı Andrej Bauer'ınkinden çok da uzak değil . Bir sözdiziminin amacı genellikle bir şeyi nasıl inşa edeceğinizi ve aslında onu inşa etmek için bir algoritmaya sahip olmayı açıklamaktır. Ayrıca, bir kümenin özelliklerine genellikle yalnızca kararsızlığa izin verilen anlamsal bir açıklama istediğimizde ihtiyaç duyulur.
Bu nedenle, daha katı tanımımızın avantajı, ayırmayı daha basit tutmak, yaygın pratik kullanımla daha doğrudan ilişkili bir ayrım yapmaktır. Bu, NuPRL gibi, ihtiyaç duyduğunuz veya kullanımınızı gevşetmek istemediğiniz sürece, işe yarar.