Por que uma hierarquia de tipos infinitos?

18

Coq, Agda e Idris têm uma hierarquia de tipos infinitos (Tipo 1: Tipo 2: Tipo 3: ...). Mas por que não fazê-lo como λC, o sistema no cubo lambda mais próximo do cálculo de construções, que possui apenas dois tipos, e , e essas regras?

:

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

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

Isso parece mais simples. Este sistema tem limitações importantes?

Rui Baptista
fonte

Respostas:

19

Na verdade, a abordagem do CoC é mais expressiva - permite quantificação impredicativa arbitrária. Por exemplo, o tipo a.aa pode ser instanciado consigo mesmo para obter (a.aa)(a.aa) , o que não é possível com uma hierarquia de universo.

A razão pela qual não é amplamente utilizada é porque a quantificação impredicativa é incompatível com a lógica clássica. Se você o possui, não poderá fornecer um modelo de teoria dos tipos em que os tipos sejam interpretados como conjuntos de maneira ingênua - veja o famoso artigo de John Reynolds Polymorphism is Not Set-theory .

Como muitas pessoas desejam usar a teoria dos tipos como uma maneira de verificar as provas matemáticas comuns, geralmente não têm entusiasmo com os recursos da teoria dos tipos que são incompatíveis com os fundamentos usuais. De fato, Coq originalmente apoiava a impredicatividade, mas a abandonava constantemente.

Neel Krishnaswami
fonte
9

Vou elogiar a resposta de Neel (excelente, como sempre) com um pouco mais de exposição sobre por que os níveis são usados ​​na prática.

A primeira limitação importante do CoC é que é trivial! Uma observação surpreendente é que não existe um tipo para o qual você possa provar que ele possui mais de um elemento, muito menos um número infinito deles. A adição de apenas 2 universos fornece os números naturais com muitos elementos comprovadamente infinitos e todos os tipos de dados "simples".

A segunda limitação são as regras de computação: o CoC suporta apenas a iteração , ou seja, as funções recusativas não têm acesso aos sub-termos de seus argumentos. Por esse motivo, é mais conveniente adicionar tipos indutivos como uma construção primitiva, dando origem ao CIC. Mas agora surge outro problema: a regra de indução mais natural (chamada eliminação neste contexto) é inconsistente com o Meio Excluído! Esses problemas não aparecem se você restringir a regra de indução a tipos de predicativos com universos.

Em conclusão, parece que o CoC não possui a expressividade nem a robustez da consistência que você gostaria em um sistema fundamental. A adição de universos resolve muitos desses problemas.

cody
fonte
Você tem algumas referências para a primeira limitação? Caso contrário, você poderia dar dicas de como o segundo universo ajuda a provar a desigualdade (proposicional? Meta?)?
Łukasz Lew
@ ŁukaszLew Na verdade, é uma consequência simples do modelo "prova irrelevante", que pode ser facilmente pesquisado no Google. Nesse modelo, nenhum tipo tem mais de 1 elemento. Ter 2 universos impede que esse modelo exista. A tese de Alexandre Miquel fornece uma referência para um tipo com número infinito de elementos com 2 universos.
Cody