Bağımlı türler için tür çıkarımı belirsiz kılan şey nedir?


42

Bağımlı tip sistemlerin zorunluluk olmadığını, kontrol edilebilir olduğunu belirtti. Bunun neden böyle olduğuna dair basit bir açıklama olup olmadığını ve tiplerin değerlerle endekslenebildikleri “bağımlılık” sınırı olup olmadığını, hangi tip çıkarımın mümkün olduğu ve hangisinin altında olmadığını merak ediyordum.


Emin değilim, fakat benim tahminime göre bir hesaplamanın durup durmadığını belirlemek için çıkarım kullanabilirsiniz.
jmite

Bu programlama dillerinde tip dönüşümü ile ilişkili midir? orada açık bir problemi var - programlama dillerinde dönüştürme işlemi kararsızlık açık
vzn

Diğer bir neden, bağımlı türlerin asıl türleri kabul etmemesidir. türü nedir ? λa.a
jmite

Yanıtlar:


36

Bağımlı tip teorisinin oldukça basit bir versiyonu için, Gilles Dowek, boş olmayan bir bağlamda yazılabilirliğin karar verilemezlik kanıtı verdi:

Gilles Dowek, içinde typability arasında kararlaştırılamazlık -calculusλΠ

Hangisi burada bulunabilir .

Öncelikle, bu makalede kanıtlanmış olanı açıklığa kavuşturmama izin verin: soyutlamalar üzerinde açıklamaları olmayan bağımlı bir hesapta , boş olmayan bir bağlamda bir terimin yazılabilirliğini göstermenin kararsız olduğunu gösterir . Bu hipotezlerin her ikisi de gereklidir: boş bağlamda, yazılabilirlik basitçe yazılan calculus'unkine (Hindley-Milner tarafından doğrulanabilir) indirgenir ve soyutlamalar üzerine ek açıklamalar yapıldığında, normal tip-yönelimli algoritma uygulanır.λ

Buradaki düşünce, bir Post yazışma problemini bir tür dönüşüm problemi olarak kodlamak ve daha sonra, iki özel türün dönüştürülebilir olması durumunda, yazılabilir bir terimi dikkatlice oluşturmaktır. Bu, her zaman bu hesapta bulunan normal formların şekli bilgisini kullanır. Makale kısa ve iyi yazılmış, bu yüzden burada daha fazla ayrıntıya girmeyeceğim.

Şimdi system-F gibi polimorfik calculi türlerinde, soyutlama türlerini ve uygulamalarını anlatabilmek ve s üzerindeki açıklamaları yukarıdaki gibi ihmal etmek iyi olurdu . Bu da kararsız, ancak kanıt çok daha zor ve soru bir süredir açıktı. Sorun Wells tarafından çözüldü:λ

JB Wells, F Sistemindeki Tiplenebilirlik ve Tip Kontrolü eşdeğerdir ve kararsızdır .

Bu burada bulunabilir . Bunun hakkında bildiğim tek şey, Sistem F'yi kontrol etmek için yarı-birleştirme sorununu (ki bu, evrensel niceleyicilerin birleştirme modülünün somutlaştırılması ve kararsız olması) sorununu azalttığı.

Son olarak, bağımlı ailelerin yerleşiminin kararsız olduğunu göstermek oldukça kolaydır: Post problemini yapıcı endekslere kodlamak yeterlidir. İşte Nicolas Oury'nin argümanı gösteren bazı slaytlar.

Bir "sınır" olup olmadığına gelince, bu bağımlı türlerinizle ne yapmaya çalıştığınıza bağlıdır ve karar verilebilir olan veya en azından kullanılabilir olması için yeterince yakın olan birçok yaklaşım vardır. Bu sorular hala aktif araştırmanın bir parçası.

Olası bir cadde, tür bağımlılıklarının ifade dilinin, örneğin Sıvı Tipleri gibi kontrol edilebilir kontrollere izin vermek için sınırlandırıldığı "arıtma tipleri" alanıdır . Bu tür sistemlerde bile tam anlamıyla çıkarımın azalması nadirdir.


Sıvı tipleri bağlantısı koptu
michaelsnowden

@michaelsnowden düzeltildi!
cody
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.