Muitas vezes fico confuso com a relação entre conversão η e extensionalidade.
Edit: De acordo com comentários, parece que também estou confuso sobre a relação entre equivalência extensional e equivalência observacional. Mas pelo menos em Agda com igualdade extensional para funções (como um postulado) e para um cálculo lambda de tipo simples (que tem uma semântica totalmente abstrata, se não me engano), equivalência denotacional é a mesma que equivalência observacional. Sinta-se livre para me corrigir em comentários ou respostas; Eu nunca recebi educação sistemática sobre esses assuntos.
No cálculo lambda não tipado, a regra-eta fornece o mesmo sistema de prova que a regra de extensionalidade, conforme comprovado por Barendregt (citado em uma resposta a esta pergunta ). Entendo que isso significa que o sistema de prova com a regra eta está completo para equivalência observacional (de outras respostas, que podem precisar da regra ξ-rule, ou seja, redução sob os ligantes IIUC; não tenho problemas em adicionar essa regra também) .
No entanto, o que acontece se mudarmos para um cálculo digitado e adicionarmos estender esse cálculo com tipos de base extras e formulários correspondentes de introdução e eliminação? Ainda podemos escrever um sistema completo de provas para equivalência observacional? Vou falar sobre sistemas de prova na forma de uma semântica axiomática, seguindo os Fundamentos das Linguagens de Programação (Mitchell's Fundations of Programming Languages - FPL); o sistema de prova / semântica axiomática define a equivalência do programa.
Pergunta 1 : o teorema de Barendregt se estende ao STLC? A equivalência η é equivalente à extensionalidade nesse contexto?
Eu estou navegando discussão do PCF do FPL (mas não terminou a seção ainda), e parece que uma vez que você adicionar pares, extensionalidade requer uma regra adicional, o emparelhamento nomeadamente surjective: pair (Proj1 P, Proj2 P) = P
. Curiosamente, esta regra relaciona a introdução e eliminação de pares exatamente como a regra η relaciona a introdução e eliminação de funções.
Pergunta 2 : É suficiente adicionar o axioma de emparelhamento subjetivo para provar a extensionalidade no λ-cálculo de tipo simples com pares? edit : Pergunta 2b : o emparelhamento subjetivo é uma lei-η, como as leis-η mencionadas neste artigo , devido à semelhança estrutural que mencionei?
Vamos até o PCF agora. As descrições de igualdade extensional que eu já vi provam que a extensionalidade implica uma regra de prova por indução, mas elas não dizem se isso é suficiente. Como o PCF está completo em Turing, a igualdade extensional é indecidível . Mas isso não implica que não haja um sistema completo de provas, uma vez que o comprimento das provas é ilimitado. Mais relevante, esse sistema de prova talvez contradisse os teoremas da incompletude de Gödel. E esse argumento pode se aplicar mesmo ao PCF sem fix
e ao Sistema T. de Gödel
Pergunta 3 : Existe um sistema completo de provas de equivalência observacional no PCF? E o PCF sem fix
?
Atualização: abstração completa
Eu respondo aqui no comentário sobre abstração completa. Eu acho que o PCF sofre de dois tipos diferentes de problemas: ele tem terminação (via correção), o que causa a perda da abstração completa, mas também possui números naturais. Ambos os problemas dificultam o tratamento da equivalência observacional, mas acredito independentemente um do outro.
Por um lado, o PCF perde a abstração completa porque é paralelo ou vive no domínio semântico (Plotkin, 1977), e isso parece ter a ver com o não-término. Ralph Loader (2000, "PCF finitário não é decidível") mostra que o PCF finitário (sem naturais, mas com não terminação) já é indecidível; portanto, (se resumir corretamente), uma semântica totalmente abstrata não pode se restringir a domínios com operações computáveis.
Por outro lado, considere o Sistema T de Gödel, que não possui não-terminação. (Não tenho certeza de que tenha uma semântica totalmente abstrata, mas acho que sim, porque o problema é mencionado apenas para PCF; o domínio deve conter funções recursivas primitivas de ordem superior). Os fundamentos práticos da Harper para linguagens de programação discutem a equivalência observacional para essa linguagem; Sec. 47.4 é intitulado "Algumas leis da igualdade" e mostra algumas regras de prova admissíveis para equivalência observacional. Em nenhum lugar ele diz se o sistema de provas está completo, então acho que não está, mas também não discute se ele pode ser concluído. Meu melhor palpite remonta ao teorema da incompletude de Gödel.