Quais são as consequências negativas da extensão do CIC com axiomas?

13

É verdade que adicionar axiomas ao CIC pode ter influências negativas no conteúdo computacional de definições e teoremas? Entendo que, no comportamento normal da teoria, qualquer termo fechado se reduzirá à sua forma normal canônica, por exemplo, se for verdadeiro, então deverá se reduzir a um termo da forma . Mas ao postular um axioma - digamos, o axioma de extensionalidade da função - apenas adicionamos uma nova constante ao sisteman:Nn(succ...(succ(0)))funext

funext:Πx:Af(x)=g(x)f=g

isso apenas "magicamente" produz uma prova de f=g de qualquer prova de Πx:Af(x)=g(x) , sem qualquer significado computacional ( no sentido de que não podemos extrair nenhum código deles? )

Mas por que isso é "ruim"?

Pois funext, li nesta entrada coq e nesta pergunta de excesso de matemática que ele fará com que o sistema perca a canonicidade ou a verificação decidida. A entrada coq parece apresentar um bom exemplo, mas eu ainda gostaria de mais algumas referências sobre isso - e de alguma forma não consigo encontrar nenhuma.

Como a adição de axiomas extras pode causar um comportamento pior à CIC? Quaisquer exemplos práticos seriam ótimos. (Por exemplo, o Univalence Axiom?) Receio que esta pergunta seja muito suave, mas se alguém pudesse lançar alguma luz sobre essas questões ou me fornecer algumas referências, seria ótimo!


PS: A entrada coq menciona que "Thierry Coquand já observou que o padrão de correspondência entre famílias intensionais é inconsistente com a extensionalidade em meados dos anos 90". Alguém sabe em qual papel ou algo assim?

StudentType
fonte

Respostas:

7

Uma primeira razão para rejeitar axiomas é que eles podem ser inconsistentes. Mesmo para os axiomas comprovadamente consistentes, alguns deles têm uma interpretação computacional (sabemos como estender a igualdade de definição com um princípio de redução para eles) e outros não - esses quebram a canonicidade. Isso é "ruim" por diferentes razões:

  • Em teoria, a canonicidade permite provar coisas sobre os valores da sua linguagem, sem a necessidade de ir para um modelo específico. Essa é uma propriedade muito satisfatória para se pensar no seu sistema; em particular, ele suporta alegações sobre o mundo real - podemos pensar no nattipo formalizado no sistema como realmente "números naturais" porque podemos provar que seus habitantes normais fechados são realmente números naturais. Caso contrário, é fácil pensar que você modelou algo corretamente em seu sistema, mas na verdade esteja trabalhando com objetos diferentes.

  • Na prática, a redução é um ativo importante das teorias de tipos dependentes, porque facilita a prova. Provar uma igualdade proposicional pode ser arbitrariamente difícil, enquanto provar uma igualdade definitiva é (com menos frequência possível), mas muito mais fácil, pois o termo de prova é trivial. De um modo mais geral, a computação é um aspecto central da experiência do usuário de um assistente de prova e é comum definir as coisas apenas para que elas reduzam corretamente conforme o esperado. (Você não precisa de axiomas para dificultar a computação; por exemplo, o uso do princípio de conversão em igualdades proposicionais já pode bloquear reduções). Todo o negócio da prova pela reflexãobaseia-se no uso da computação para ajudar nas provas. Essa é uma grande diferença de poder e conveniência em relação a outros assistentes de provas baseados em lógica (por exemplo, HOL-light, que suporta apenas o raciocínio de igualdade; ou consulte o Zombie para uma abordagem diferente) e o uso de axiomas não verificados ou outros estilos de programação, pode tirar você dessa zona de conforto.

gasche
fonte
+1 Obrigado pela sua resposta! Você poderia me dar alguns exemplos de axiomas que têm uma interpretação computacional (ou talvez alguma referência para o assunto)?
StudentType
Um exemplo de axioma que tem uma interpretação computacional é a Prop-Irrelevância: alegando que todos os habitantes de uma família de tipos (neste caso preciso, aqueles do tipo Propnos assistentes à prova de Coq, que correspondem a declarações puramente lógicas; Prop-Irrelevance corresponde ignorar a estrutura interna das provas dessas declarações) são iguais, principalmente porque não se preocupa mais com elas, não precisa afetar a computação - mas precisa ser feita com cuidado para não tornar o sistema inconsistente também.
Gasche
Outra família de interpretação computacional vem de correspondências entre raciocínio clássico e efeito de controle. A parte mais conhecida disso é que o meio excluído pode receber uma semântica computacional por captura de continuação, mas existem formas restritas de controle (exceções em tipos positivos) que fornecem princípios lógicos mais refinados (por exemplo, o Princípio de Markov ). Ver Hugo HERBELIN Uma lógica intuicionista que prova o princípio de Markov , 2010.
Gasche
5

Para entender por que estender um provador de teoremas com alguns axiomas pode causar problemas, também é interessante ver quando é benigno fazê-lo. Dois casos vêm à mente e ambos têm a ver com o fato de que não nos importamos com o comportamento computacional dos postulados.

  • Na Teoria do Tipo Observacional, é possível postular uma prova de qualquer consistência Propsem perder a canonicidade. De fato, todas as provas são consideradas iguais e o sistema impõe isso, recusando-se completamente a observar os termos. Como conseqüência, o fato de uma prova ter sido construída à mão ou simplesmente postulado não tem conseqüência. Um exemplo típico seria a prova de "coesão": se tivermos uma prova de eqque A = B : Type, para qualquer ttipo A, t == coerce A B eq tonde coercesimplesmente transporta um termo ao longo de uma prova de igualdade.

  • No MLTT, pode-se postular qualquer axioma consistente negativo sem perda de canonicidade . A intuição por trás disso é que axiomas negativos (axiomas da forma A -> False) são usados ​​apenas para descartar ramos irrelevantes. Se o axioma for consistente, ele somente poderá ser usado em ramos que são realmente irrelevantes e, portanto, nunca serão utilizados na avaliação dos termos.

Gallais
fonte
4

Um exemplo prático de um axioma se comportando mal, você pergunta, e quanto a isso?

 0 = 1

O artigo de Coquand referido pode ser [1], onde ele mostra que a ITT dependente (teoria do tipo intuicionista de Martin-Löf) estendida com correspondência de padrões permite provar o UIP (axioma da singularidade das provas de identidade ). Mais tarde, Streicher e Hoffmann [2] apresentam um modelo no ITT que falsifica o UIP. Portanto, a correspondência de padrões não é uma extensão conservadora da ITT.


  1. T. Coquand, Correspondência de padrões com tipos dependentes .

  2. M. Hofmann, T. Streicher, A interpretação grupóide da teoria dos tipos .

Martin Berger
fonte