Qual é a relação e a diferença entre Cálculo de Construções Indutivas e Teoria Intuicionista de Tipos?


25

Como afirmado no título, pergunto-me qualquer relação e diferença entre CIC e ITT. Alguém poderia me explicar ou apontar alguma literatura que compara esses dois sistemas? Obrigado.


3
Para mim, ITT significa "teoria intuicionista do tipo", o que pode significar várias coisas. Em particular, há um grande número de variações sutis das descrições originais de Martin-Lof! A resposta curta é a seguinte: ITT no sentido Martin-Lof sem universo é uma subteoria do CoC. Na presença de universos, mas não de tipos indutivos, você pode esmagar todos os universos no único universo impredicativo do CoC. Com grandes tipos indutivos e grande eliminação, as coisas são mais complexas.
Cody

1
Ah e boa discussão de algumas dessas coisas podem ser encontrados em Geuvers: cs.ru.nl/~herman/PUBS/CC_CHiso.ps.gz
Cody

Obrigado pelos comentários e pelo artigo vinculado, Cody. Parece o que estou procurando.
day

1
Uma versão pdf do documento mencionado por @cody: cs.ru.nl/~herman/PUBS/CC_CHiso.pdf
Steven Shaw

Respostas:


24

Eu já respondi um pouco, mas tentarei fornecer uma visão geral mais detalhada do tipo horizonte teórico, se você desejar.

λ

O sistema Automath era um refinamento da teoria de tipos simples de Church, que por si só era uma simplificação dramática da teoria de tipos de Russel e Whitehead com universos e o axioma da redutibilidade . Este era um terreno lógico relativamente conhecido na década de 1960.

UMABUMAB

Determina a regra de eliminação correspondente. Ele então deu um sistema fundamental muito poderoso baseado em tais julgamentos, permitindo que ele desse um sistema fundamental semelhante ao Automath usando muito poucas construções sintáticas. Girard descobriu que esse sistema era contraditório, levando Martin-Löf a adotar universos predicativos "ao estilo Russel" , limitando severamente a expressividade da teoria (removendo efetivamente o axioma da redutibilidade) e tornando-a um pouco mais complexa (mas tinha a vantagem de tornando-o consistente).

Porém, as elegantes construções que permitiram definir os símbolos lógicos não funcionaram mais, o que levou ML a introduzi-los de uma forma diferente, como famílias definidas indutivamente . Essa é uma idéia muito poderosa, pois permite definir tudo, desde igualdade de julgamento e operadores lógicos a números naturais e tipos de dados funcionais, como aparecem na ciência da computação. Observe que cada família que adicionamos é semelhante à adição de vários axiomas, que precisam ser justificados como consistentes em cada instância. Esse sistema (tipos dependentes + universos + famílias indutivas) geralmente é chamado de ITT .

No entanto, houve uma certa frustração, já que o sistema básico poderoso, porém simples, era inconsistente e o sistema resultante era mais complexo e um tanto fraco (no sentido de que era difícil desenvolver grande parte da estrutura matemática moderna). Entre Thierry Coquand, que, com seu supervisor Gerard Huet, apresentou o Cálculo de Construções (CoC) , que resolveu principalmente esses problemas: uma abordagem unificada de provas e tipos de dados, um poderoso sistema fundamental (impredicativo) e a capacidade de definir "construções" "da variedade lógica ou matemática. Isso acabou amadurecendo em uma implementação real de um sistema projetado como uma alternativa moderna à Automath, culminando no sistema Coq que conhecemos e amamos.

Eu sugiro este artigo fundamental sobre o CoC, pois Thierry sabe uma quantidade ridícula sobre o desenvolvimento histórico da teoria dos tipos e provavelmente explica isso muito melhor do que eu. Você também pode querer conferir o artigo dele sobre a teoria dos tipos, embora não explique a correspondência CH em muitos detalhes.


5
Vale a pena observar que o CdC, apesar de todo o poder de sua construção imprevisível de tipos de dados, não pode provar indução, e autores posteriores (por exemplo, Paulin-Mohring) estenderam o CdC com construções indutivas em Martin-Löf, produzindo o cálculo de construções indutivas, que é usado na Coq.
Martin Berger

1
10 0

1
Tipos indutivos foram adicionados para melhorar o comportamento computacional além disso.
Cody

1
Bem, a função predecessora não pode ser calculada em tempo constante usando a definição impredicativa para números naturais. Veja, por exemplo, aqui ou aqui .
Cody

1
Sim, numerais da igreja, mas um resultado semelhante será válido para tipos de dados mais sensíveis, como listas vinculadas. O exemplo da máquina de Turing também sugere que as máquinas de Turing também não são adequadas para computação prática! :)
Cody
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.