Varoluşsal ve evrensel türlerin oldukça farklı olduğunu unutmayın. Yapıcı mantıktır, klasik mantık değildir ve yapıcı mantıkta ve olmak klasik mantıktaki gibi değildir.∃∀∃
A B ( x ) B ( x ) x x x x B ( x ) x A → B A B∀ X : bir . B ( x ) , tipi bir nesne alan ve tipi bir nesne döndüren program türüdür . Burada önemli olan tipin olmaz bağlıdır üzerindeki ve herkes için aynı değildir . ne olduğuna bağlı olarak değişebilir . Bir girişi için bir tamsayı çıkarabiliriz. Bir diğeri için gerçek bir sayı verebiliriz. Bir diğeri için gerçek sayılar üzerinden bir fonksiyon çıktısı verebiliriz. Eğer ile değişmez o zaman kullanabilirsiniz den fonksiyonların türünü olduğu yerde karşı .birB(x)B(x) xxxxB(x)xA→BAB
∃x:A.B(x) , (yapıcı) ayrımın bağımlı versiyonudur. Sen yapıcı ayrılma aklınıza gelebilecek iki tip ve ayrık birleşimine olarak ve .
,
dizinlenmiş tipindeki bir koleksiyonun ayrık birleşimidir . Tip minibüsünün değerine bağlı olarak değişmesi
, onu bağımlı bir tip yapar. : 'nin bağlı olmadığı durumla karşılaştırın . Aynı kopyayı alıyoruzA∨BABAB∃x:A.B(x)B(x)x:AB(x)x:ABx:A∃x:A.BB her biri için . Bu, ile izomorfiktir .x:AA×B
Şimdi neden bağımlı ürün ve toplam türlerine ihtiyacımız olduğunu sorabilirsiniz ? Çünkü bize daha etkileyici bir güç veriyorlar. Şimdi türleri tamamen görmezden gelebiliriz ve türsüz teori / fonksiyonel programlamaya sahip olabiliriz. Ancak bu, ilk etapta türlere sahip olmanın faydalarını ortadan kaldırır, örneğin, tüm programların her zaman sonlanıp sonlanmayacağını bilmeyeceksiniz (güçlü normalleştirme). Bkz. Lambda Küpü ve
Bağımlı Tip . Bağımlı türleri iyi anlamanın iyi bir yolunun, Martin-Lof'un tür teorisinde bağımlı türleri tanıtmak ve ortadan kaldırmak için kurallara bakmak olduğunu düşünüyorum .
Bağımlı türlerin ana noktası şudur: çeşitli nedenlerden ötürü güzel bir tür teori içinde kalmak istiyoruz (örneğin hatalardan kaçınma, otomatik sonlandırma kanıtı vb.). Belirttiğinizler gibi ifade edebileceğimiz ve daha güçlü şeyler yapabileceğimiz türsüz lambda hesabı gibi bir şeye gitmek istemiyoruz. Bağımlı türlerin, güzel bir tür teorisinin içinde kalırken daha fazla şeyin ifade edilmesine izin vermek için icat edildiğini söyleyebiliriz.