Conversão η vs extensionalidade em extensões do cálculo lambda


14

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 fixe 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.


1
Acho que poderia responder um pouco disso, mas estou confuso com o que você está perguntando. A pergunta a que você se refere não é sobre equivalência de programa. Você quer dizer equivalência observacional? Para que semântica operacional? Então, essencialmente, se você explicar exatamente a que "a prova" na pergunta 1 se refere, acho que posso adivinhar o que está acontecendo. Meu melhor palpite até agora: você gostaria de uma teoria equacional completa para equivalência observacional e está nos perguntando se -rules é suficiente. É isso? η
Andrej Bauer

@AndrejBauer: seu palpite está correto, vou começar a atualizar a pergunta.
Blaisorblade

Não tenho certeza sobre a semântica operacional - isso faz diferença para os teoremas originais?
Blaisorblade

Tentei refinar mais a questão. Mas ainda acho que seu melhor palpite está correto.
Blaisorblade

Há um pequeno problema aqui: ele realmente não está claro o que é para os números naturais! Se você apenas possui apenas tipos de função e produto, está claro: os termos são equivalente em termos de observação se forem iguais. Em termos mais gerais, acho que isso está relacionado ao problema da abstração total . β ηηβη
Cody

Respostas:


7

Não tenho certeza de que posso responder completamente à sua pergunta, mas vou tentar e fazer algumas perguntas que podem estimular uma discussão mais aprofundada sobre esse assunto.

Meu primeiro argumento é o seguinte: diz-se que dois termos no λ- cálcio não tipado são notavelmente iguais se, para cada termo M : M t  termina M t '  termina  Onde termina significa "tem uma forma β- normal"t,t λM

M t terminates M t terminates 
β

Acho mais natural considerar termos com "buracos" ou contextos vez de simplesmente termos M e escrever E [ t ] em vez de M t . As duas visualizações são certamente equivalentes (se as variáveis ​​não estiverem vinculadas pelo contexto), pois a abstração permite transformar o contexto E [ _ ] no termo λ x . E [ x ] .E[_]ME[t]M tE[_]λx.E[x]

Agora, é fato que a igualdade observacional no cálculo não tipado não é capturada pela igualdade ! De fato, existe toda uma classe de termos, que ambos não terminam e não têm formas normais de cabeça e, portanto, são todos notavelmente iguais. Às vezes, são chamados de termos perpétuos ou termos insolúveis , e aqui estão dois termos: ( λ x . X x ) ( λ x . X x ) e ( λ x . X x x ) ( λ x .βη

(λx.x x)(λx.x x)
É muito fácil mostrar que esses termos não sãoiguais a β η .
(λx.x x x)(λx.x x x)
βη

Se todos os termos perpétuos forem identificados, a igualdade observacional será completamente capturada, por um resultado clássico (consulte o teorema de Barendregt 16.2.7).


λt1t2t1t2Ac x xcA,cA,cA,cxdo tipo apropriado para corresponder a cada variável .x

  1. No tipo básico , sse o forma normal -head de é e que de é e e em seus respectivos tipos.t 1t 2 β t 1 c u 1u n t 2 d v 1v n c = d u 1v 1 , , u nv nBt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. No tipo de seta, se ambos os termos reduce em uma abstraction. βt1t2βλ

Observe que eu só uso conversão nesta definição.β

Agora defino os contextos para serem: com o contexto principal, aplicação, abstração e substituição (por termos fechados), respectivamente.

[_]E[_] ut E[_]λx. E[_]E[_]θ

Podemos então definir e , bem tipificado, do tipo como equivalente observacional se, e somente se, para todo contexto tal que sejam bem tipados e fechados . escreveremos neste casot T E [ _ ] E [ t ] , E [ t ' ] E [ t ] E [ t ' ] t = o b s t ttTE[_]E[t],E[t]

E[t]E[t]
t=obst

Agora é fácil observar que se então . A outra direção é menos trivial, mas também vale: de fato, se , então podemos mostrar que os termos são iguais para por indução no tipo: t = o b s t t = o b s t β ηt=βηtt=obstt=obstβη

  1. No tipo base, basta considerar como , com a substituição que envia para . Temos e . Temos e . Temos então e, portanto, . Agora não podemos concluir imediatamente que . De fato, se e são -abstractions, então trivialmente[ _ ] θ θ x c x E [ t ] = t θ E [ t ' ] = t θ t θ β c x u 1 θ u n θ t θ β c x v 1 θ v n θ c x = c xE[_][_]θθxcxE[t]=tθE[t]=tθtθβcx você1θ...vocênθtθβcx v1θ...vnθ X=xuiθ= β η viθuiviλuiθviθxλy . ~ c x (y1c 1 )(ync n )cx=cxx=xvocêEuθ=βηvEuθvocêEuvEuλvocêEuθvEuθ ! O truque aqui é enviar para e repeti-lo quantas vezes for necessário. Estou um pouco confuso com os detalhes aqui, mas a ideia é semelhante ao teorema de Böhm ( Barendregt novamente 10.4.2).x

    λy.cx~ (y1c1)...(yncn)
  2. No tipo de seta, considere como , ou seja, aplicativo para com e não em ou . Pela hipótese de indução, temos: e assim que fornece e finalmente por -equality: [ _ ] c y c y c y y t t ' t c y = β η t ' c y t yE[_][_] cycycyytt

    t cy =βη t cy
    λ y . t y = β η λ . t y η t = β η t
    t y =βη t y
    λy.t y =βη λ.t yη
    t =βη t

Isso foi mais difícil do que o esperado!


Tudo bem, vamos abordar o sistema T. Vamos adicionar um tipo ao mix, construtores e e um recursor para cada tipo , com as " -rules" 0 S r e c T T β r eN0 0SrecTTβ

recT você v 0 0βvocê
recT você v (S n)βv n (recT você v n)

Queremos provar o mesmo teorema que acima. É tentador adicionar " -rules" para provar equivalências como: onde o termo à direita é a "identidade estúpida" que desencadeia sucessores apenas para adicioná-los novamente.η

λx.x =βη recN 0 0 (λk m.S m)
m

Por exemplo, vamos adicionar esta regra: que é uma variável nova, como na regra usual . Agora observe que essa regra é recursivamente enumerável (você pode tentar todas as opções possíveis para ).

f (S x) =βη h x (f x)f t =βηrecT (f 0 0) h t
xηh

Podemos provar o mesmo teorema que acima? Infelizmente, como você suspeitava, você encontrará alguma maldade de Gödel, ou melhor, a variante Kleene (consulte a Wikipedia ). Para cada máquina de Turing , é fácil criar um termo no sistema , de forma que (com es) retorne se terminar no máximo etapas e caso contrário.MtMTtM (S... S 0 0)n S1Mn0 0

Portanto, agora, se não termina, você pode perguntar se a equação (verdadeira) é possível usando as regras acima. Mas, considerando que é a máquina que termina se for comprovável no sistema (com as regras acima), você terá problemas, ou seja, a equação é verdadeira, mas não é possível (ou a aritmética Peano é inconsistente!).t M = λ x .0 β η M 0 = β η S 0 T t M = λ x .0M

tM =λx.0
βηM
0 0 =βη S 0 0
TtM=λx.0

Obrigado pela sua resposta! Minha primeira pergunta é: é comum haver substituições em contextos por equivalência observacional? Pelo menos o artigo de LCF de Plotkin (1997) não faz isso (embora eu possa imaginar algo assim faria sentido em algum cálculo de fechamento, onde algo como substituições faz parte da sintaxe). Mas eu posso ver facilmente para cada contexto de "substituição" que se pode definir um contexto "padrão" mais (para mim) que usa apenas abstração e aplicação lambda, digamos (λx. []) C_x; então acho que a equivalência observacional acima é equivalente à definição a que estou acostumada.
Blaisorblade

A equação "verdadeiro, mas não comprovável" é (presumo) , não , certo? Para construir , acho que você só precisa enumerar provas procurando por um de . No entanto, ainda estou perdido por que 0 = 1 é difícil o suficiente - na verdade, deve ser fácil provar que pois ambas são formas normais, e eu ficaria surpreso se a aritmética Peano não fosse forte o suficiente. t=λx.00 0=βηS0 0M0 0=βηS0 00 0βηS 0 0
Blaisorblade

Em vez disso, diga que procura uma prova da inconsistência da aritmética. Você ainda tem porque a aritmética é consistente, mas pelo segundo teorema da incompletude, provar que isso requer mais poder metateorético do que a aritmética de Peano (ou do que as regras que discutimos), portanto, nossas regras simples não serão capazes de provar essa equivalência observacional. Isso faz sentido? Procurei na Wikipedia, mas não é muito específico na variante de Kleene do resultado de Gödel; talvez se eu conhecesse melhor essa prova, também entenderia sua prova. (Enquanto isso, votando de qualquer maneira). Mt=λx.0 0
Blaisorblade

1
3. Observe que pode provar , mas não " ", para que você possa tentar procurar essa prova para sempre. Usei o mesmo tipo de truque acima para encontrar uma igualdade observacional em que não pode ser capturada por nenhuma regra de igualdade "razoável". Você sempre pode adicionar a regra mas isso não seria eficaz (e completo!). Tenho a sensação de que não é o que você está procurando. PUMA0 01PUMA0 0=1T
f 0 0=g 0 0f (S 0 0)=g (S 0 0)...f=g
Cody

1
Está certo! Embora às vezes faça sentido considerar esses sistemas "infinitários" para fins teóricos da prova (por exemplo, análise ordinal).
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.