Extensionalidade de modelos de cálculo lambda

11

Estou traduzindo um livro sobre LISP e, naturalmente, ele toca alguns elementos do -calculus. Portanto, uma noção de extensionalidade é mencionada ao lado de alguns modelos de -calculus, a saber: e (sim, com o infinito no topo). E é dito que é extensional, enquanto não é.λP ω D P ω D λPωDPωD

Mas ... eu estava olhando o Cálculo Lambda de Barendregt , It's Syntax and Semantics e (esperançosamente, corretamente), li exatamente o oposto: não é extensional, é.D PωD

Alguém sabe sobre esse modelo estranho ? Poderia ser exatamente o mesmo modelo que , mas erroneamente escrito? Estou certo sobre a extensionalidade dos modelos?D DD

Obrigado.

Chris
fonte
Você se importaria de fornecer contexto para o livro LISP? Possui referências para os resultados ou modelos a que se refere?
Cody
1
Sim, é o LISP de Christian Queinnec em pedaços pequenos , p. 153. O trecho com a menção: [...] Desde então, as propriedades foram estendidas de várias maneiras diferentes, produzindo vários modelos diferentes: ou em [Sco76, Sto77]. Estranhamente, é extensional porque duas funções que calculam a mesma coisa em todos os pontos são iguais, enquanto não é extensional. Sco76 [...] significa Data Types de Dana Scotts como Malhas . Sto77 significa Semântica Denotacional de Joseph Stoys : A Abordagem Scott-Stachey da Teoria da Linguagem de Programação . P ω P ω D DPωPωD
Chris
1
Obrigado! Nesse caso, é provável que tenha havido um erro de digitação, que represente e que não seja extensional. D P ωDDPω
Cody

Respostas:

14

Presumo que por extensionalidade você queira dizer a lei Se é isso que você quer dizer, o modelo gráfico não é extensional, enquanto o Dana Scott é (presumo que é o modelo de Dana Scott do - cálculo).P ω D D β ξ η λ

(x.fx=gx)f=g.
PωDDβξηλ

Para ver isso, lembre-se de que é uma estrutura algébrica com a propriedade de que seu espaço de mapas contínuos é uma retração adequada de , ou seja, existem mapas contínuos e modo que mas . Dado , o aplicativo é interpretado como . Agora pegue[ P ω P ω ] P ω Ganhe muitos : P ω [ P ω P ω ] Γ : [ P ω P ω ] P ω Ganhe muitos Γ = i d Γ Ganhe muitos i d u , v P ω u v Λ ( u ) ( v)Pω[PωPω]Pω

Λ:Pω[PωPω]
Γ:[PωPω]Pω
ΛΓ=idΓΛidu,vPωuvΛ(u)(v)ue tal que mas (elas existem porque ). Então, para todos os , temos ainda . Extensionalidade é violada.uuuΛ(u)=Λ(v)ΓΛidvuv=uvuu

Por outro lado, é isomórfico para , ou seja, existem mapas contínuos e que são inversos um do outro. Portanto, considere qualquer e suponha que para todos . Isso significa que para todos os , portanto e, portanto, . Extensionalidade é estabelecida.[DD]D

Λ:D[DD]
Γ:[DD]D
u,uDuv=uvvDΛ(u)(v)=Λ(u)(v)vDΛ(u)=Λ(u)u=Γ(Λ(u))=Γ(Λ(u))=u

Vemos que a extensionalidade é uma consequência de . Para que serve a outra equação ? Para isso, devemos lembrar como -abstraction é interpretada: Em palavras, uma expressão com uma variável pode ser interpretada como um mapa que leva para . Em seguida, a -abstraction é interpretado como a imagem dessa função. Agora em obtemos ΓΛ=idΛΓ=idλ

λX.u(X)=Γ(vu(v))
u(X)Xvu(v)λλX.u(X)ΓΛΓ=idβ
(λX.u(X))w=Λ(Γ(vu(v)))(w)=(vu(v))(w)=u(w)
que é apenas redução.β
Andrej Bauer
fonte
Ótimo, obrigado. Então, assumirei que há um erro factual no livro. Isso pode ser possível, porque o livro em si é uma tradução do francês, e pode haver algumas travessuras de dupla negação nesse parágrafo do livro original, ou algo assim. Infelizmente, não tenho francês para pelo menos tentar verificar.
21712 Chris
O francês é irrelevante, você tem a prova diante de seus olhos.
Andrej Bauer
λ