Neden sonsuz tip hiyerarşisi?


18

Coq, Agda ve Idris sonsuz tip hiyerarşisine sahiptir (Tip 1: Tip 2: Tip 3: ...). Ama neden λC, lambda küpünde sadece iki çeşit ve olan yapıların hesabına en yakın olan sistem ve bu kurallar gibi ?

:

ΓT1:s1Γ,x:T1t:T2Γ(λx:T1,t):(Πx:T1,T2)

ΓT1:s1Γ,x:T1T2:s2Γ(Πx:T1,T2):s2

Bu daha basit görünüyor. Bu sistemin önemli sınırlamaları var mı?

Yanıtlar:


19

Aslında, CoC'nin yaklaşımı daha ifade edicidir - keyfi olarak öngörülemeyen nicelleştirmeye izin verir. Örneğin, bir.birbir , bir evren hiyerarşisiyle mümkün olmayan (\ forall a. \; a \ to a) \ to (\ forall a. \; a \ to a) elde etmek için kendisiyle örneklenebilir (bir.birbir)(bir.birbir).

Yaygın olarak kullanılmamasının nedeni, öngörülemeyen nicelemenin klasik mantıkla uyumsuz olmasıdır. Eğer varsa, tiplerin naif bir şekilde setler olarak yorumlandığı bir tip teorisi modeli veremezsiniz - bkz. John Reynolds'un ünlü polimorfizmi Set-teorik değildir .

Birçok insan, sıra teorisini sıradan matematiksel kanıtları makine ile kontrol etmenin bir yolu olarak kullanmak istediği için, her zamanki temellerle uyumsuz tip-teorik özellikler konusunda isteksizdirler. Aslında, Coq başlangıçta imkansızlığı destekledi, ama sürekli olarak terk ettiler.


9

Neel'in (her zamanki gibi mükemmel) cevabını, seviyelerin pratikte neden kullanıldığına dair biraz daha fazla açıklama ile iltifat edeceğim.

CoC'nin ilk önemli sınırlaması önemsiz olmasıdır! Şaşırtıcı bir gözlem, bunun birden fazla unsuru olduğunu, sonsuz sayıda bunlardan daha az olduğunu kanıtlayabileceğiniz bir tür olmamasıdır . Sadece 2 evren eklemek, size sonsuz sayıda unsura ve tüm "basit" veri türlerine sahip doğal sayılar verir.

İkinci sınırlama hesaplama kurallarıdır: CoC yalnızca yinelemeyi destekler , yani tekrarlayan işlevlerin argümanlarının alt terimlerine erişimi yoktur. Bu nedenle, CIC'ye neden olan ilkel bir yapı olarak endüktif tiplerin eklenmesi daha uygundur. Ama şimdi başka bir sorun ortaya çıkıyor: en doğal indüksiyon kuralı ( bu bağlamda eleme olarak adlandırılır ) Dışlanan Orta ile tutarsız! Tümevarım kuralını evrenlerle öngörücü türlerle kısıtlarsanız bu sorunlar ortaya çıkmaz.

Sonuç olarak, CoC'nin temel bir sistemde istediğiniz ifadeye veya sağlamlığa sahip olmadığı anlaşılmaktadır. Evren eklemek bu sorunların çoğunu çözer.


İlk sınırlama için referanslarınız var mı? Değilse, ikinci evrenin (öneri? Meta?) Eşitsizliğini kanıtlamaya nasıl yardımcı olduğuna dair ipuçları verebilir misiniz?
asukasz Lew

@ ŁukaszLew Aslında "kanıtla alakasız" modelin basit bir sonucudur, bu biraz kolay araştırılabilir. Bu modelde hiçbir türün 1'den fazla öğesi yoktur. 2 evrene sahip olmak, bu modelin var olmasını engeller. Alexandre Miquel'in tezi, 2 evreni olan sonsuz sayıda elemente sahip bir tip için referans sağlar.
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.