É 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 sistemafunext
isso apenas "magicamente" produz uma prova de de qualquer prova de , 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?
Prop
nos 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.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
Prop
sem 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 deeq
queA = B : Type
, para qualquert
tipoA
,t == coerce A B eq t
ondecoerce
simplesmente 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.fonte
Um exemplo prático de um axioma se comportando mal, você pergunta, e quanto a isso?
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.
T. Coquand, Correspondência de padrões com tipos dependentes .
M. Hofmann, T. Streicher, A interpretação grupóide da teoria dos tipos .
fonte