Estensione dei modelli di calcolo lambda


11

Sto traducendo un libro su LISP e naturalmente tocca alcuni elementi del calcolo . Quindi, una nozione di estendibilità è menzionata lì accanto ad alcuni modelli di -calculus, vale a dire: e (sì, con l'infinito in alto). E si dice che sia estensivo mentre no.λλPωD∞PωD∞

Ma ... stavo guardando attraverso il Lambda Calculus di Barendregt , è sintassi e semantica , e (si spera, correttamente) leggevo esattamente il contrario: non è estensivo, è.PωD∞

Qualcuno sa di quello strano modello ? Potrebbe essere lo stesso modello di , ma scritto erroneamente? Ho ragione sull'estensione dei modelli?D∞D∞

Grazie.


Ti dispiacerebbe dare un contesto per il libro LISP? Ha riferimenti per i risultati o i modelli a cui si riferisce?
— cody

1
Sì, è LISP in Piccoli pezzi di Christian Queinnec , p. 153. L'estratto con la menzione: [...] Da allora, le proprietà sono state estese in diversi modi, producendo diversi modelli: o P ω in [Sco76, Sto77]. [...] Stranamente, P ω è un'estensione perché due funzioni che calcolano la stessa cosa in ogni punto sono uguali, mentre D ∞ non è un'estensione. [...] Sco76 sta per Tipi di dati di Dana Scotts come reticoli . Sto77 è l'acronimo di Joseph Stoys 'Denotational Semantics: The Scott-Stachey Approach to Programming Language Theory . D∞PωPωD∞
— Chris

1
Grazie! In quel caso è probabile che ci fosse un refuso, che sta per D ∞ e che è P ω che non è estensivo. D∞D∞Pω
— cody

Risposte:


14

Presumo che per estensione si intenda la legge Se questo è quello che vuoi dire allora il modello grafico P ω ènonestensionale, mentre Dana Scott D ∞ è (presumo D ∞ è modello della Dana Scott ß ξ η À -calcolo).

(∀X.fX=gX)⟹f=g.
PωD∞D∞βξηλ

Per vedere ciò, ricorda che è un reticolo algebrico con la proprietà che il suo spazio di mappe continue [ P ω → P ω ] è una retrazione corretta di P ω , cioè ci sono mappe continue Λ : P ω → [ P ω → P ω ] e Γ : [ P ω → P ω ] → P ω tale che Λ ∘ Γ = i d ma ΓPω[Pω→Pω]Pω

Λ:Pω→[Pω→Pω]
Γ:[Pω→Pω]→Pω
Λ∘Γ=iod . Dato u , v ∈ P ω , l'applicazione u v viene interpretata come Λ ( u ) ( v )tale che u ≠ u ' ma Λ ( u ) = Λ ( v ) (questi esistono perché y ∘ Λ ≠ i d ). Quindi per tutti i v che abbiamoΓ∘Λ≠iodu,v∈PωuvΛ(u)(v). Ora prendete e u 'uu'u≠u'Λ(u)=Λ(v)Γ∘Λ≠iodv ancora u ≠ u ′ . L'estensione è violata.uv=uv'u≠u'

Al contrario, è isomorfo a D ∞ , cioè ci sono mappe continue Λ : D ∞ → [ D ∞ → D ∞ ] e Γ ′ v per tutto v ∈ D ∞ . Ciò significa che Λ ( u ) ( v ) = Λ ( u ′ ) ( v ) per tutti v[D∞→D∞]D∞

Λ:D∞→[D∞→D∞]
che sono inverse di ciascun altro. Quindi considera qualsiasi u , u ′ ∈ D ∞ e supponi che u v = u
Γ:[D∞→D∞]→D∞
u,u'∈D∞uv=u'vv∈D∞Λ(u)(v)=Λ(u')(v) , quindiv∈D∞ e quindi u = Γ ( Λ ( u ) ) = Γ ( Λ ( u ′ )Λ(u)=Λ(u') . L'estensione è stabilita.u=Γ(Λ(u))=Γ(Λ(u'))=u'

Γ∘Λ=iodΛ∘Γ=iodλ

λX.u(X)=Γ(v↦u(v))
u(X)Xvu(v)λλX.u(X)ΓΛ∘Γ=iod
(λX.u(X))w=Λ(Γ(v↦u(v)))(w)=(v↦u(v))(w)=u(w)
β

Grazie mille. Quindi supporrò che ci sia un errore di fatto nel libro. Ciò potrebbe essere possibile, perché il libro stesso è una traduzione dal francese e potrebbero esserci degli shenanigans doppia negazione in quel paragrafo del libro originale, o qualcosa del genere. Sfortunatamente, non ne ho uno francese da provare almeno a controllare.
— Chris,

Il francese è irrilevante, hai la prova davanti ai tuoi occhi.
— Andrej Bauer,

λ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.