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.
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.
Respostas:
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.
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.