η-conversione vs estensione in estensioni di lambda-calcolo


14

Sono spesso confuso dalla relazione tra η-conversione ed estensibilità.

Modifica: Secondo i commenti, sembra che io sia anche confuso sulla relazione tra equivalenza estensiva ed equivalenza osservativa. Ma almeno in Agda con uguaglianza estensionale per le funzioni (come postulato) e per un calcolo lambda tipicamente semplice (che ha una semantica completamente astratta, se non sbaglio), l'equivalenza denotazionale è la stessa dell'equivalenza osservativa. Sentiti libero di correggermi nei commenti o nelle risposte; Non ho mai ricevuto un'educazione sistematica su questi argomenti.

Nel lambda-calcolo non tipizzato, la regola eta fornisce lo stesso sistema di prova della regola dell'estensione, come dimostrato da Barendregt (citato in una risposta a questa domanda ). Capisco che significhi che il sistema di prova con la regola eta è completo per l'equivalenza osservativa (da altre risposte, che potrebbe aver bisogno della regola della regola ξ, cioè riduzione sotto leganti IIUC; non ho problemi ad aggiungere anche quella regola) .

Tuttavia, cosa succede se passiamo a un calcolo tipizzato e aggiungiamo estendere questo calcolo con tipi di base extra e corrispondenti moduli di introduzione ed eliminazione? Possiamo ancora scrivere un sistema di prova completo per l'equivalenza osservativa? Parlerò di sistemi di prova in forma di semantica assiomatica, seguendo le basi di Mitchell dei linguaggi di programmazione (FPL); il sistema di prova / semantica assiomatica definisce l'equivalenza del programma.

Domanda 1 : il teorema di Barendregt si estende a STLC? In questo contesto l'equivalenza η è equivalente all'estensione?

Sto navigando discussione di FPL di PCF (ma non finì la sezione ancora), e sembra che una volta che si aggiunge coppie, estensionalità richiede una regola aggiuntiva, vale a dire l'associazione suriettiva: pair (Proj1 P, Proj2 P) = P. È interessante notare che questa regola riguarda l'introduzione e l'eliminazione di coppie esattamente come la regola η riguarda l'introduzione e l'eliminazione delle funzioni.

Domanda 2 : È sufficiente aggiungere l'assioma di accoppiamento suriettivo per dimostrare l'estensione nel calcolo λ tipicamente semplice con coppie? modifica : Domanda 2b : l'ipotetico accoppiamento è una legge η, come le leggi η menzionate in questo documento , a causa della somiglianza strutturale che cito?

Andiamo fino al PCF ora. Le descrizioni dell'uguaglianza estensiva che ho visto dimostrano quindi che l'estensione implica una regola di prova per induzione, ma non dicono se sia sufficiente. Poiché PCF è completo di Turing, l' uguaglianza estensiva è indecidibile . Ciò non implica che non esiste un sistema di prova completo, poiché la lunghezza delle prove è illimitata. Più pertinentemente, un sistema di prova del genere contraddirebbe forse i teoremi di incompletezza di Gödel. E tale argomento potrebbe valere anche per PCF senza fix, e per System T. di Gödel

Domanda 3 : esiste un sistema di prova completo per l'equivalenza osservazionale nella PCF? Che dire di PCF senza fix?

Aggiornamento: astrazione completa

Rispondo qui sul commento sull'astrazione completa. Penso che PCF soffra di due diversi tipi di problemi: ha una non-terminazione (via fix), che causa la perdita della piena astrazione, ma ha anche numeri naturali. Entrambi i problemi rendono difficile trattare l'equivalenza osservativa, ma credo indipendentemente l'uno dall'altro.

Da un lato, PCF perde piena astrazione perché parallela o vive nel dominio semantico (Plotkin 1977), e questo sembra avere a che fare con il non-termine. Ralph Loader (2000, "PCF Finitario non è decidibile") mostra che il PCF Finitario (senza naturali, ma con nonterminazione) è già indecidibile; quindi, (se riassumo correttamente) un semantico completamente astratto non può limitarsi ai domini con operazioni calcolabili.

D'altra parte, prendi il Sistema T di Gödel, che non ha un termine. (Non sono sicuro che abbia una semantica completamente astratta, ma suppongo di sì, perché il problema è menzionato solo per PCF; il dominio deve contenere funzioni ricorsive primitive di ordine superiore). Le basi pratiche di Harper per i linguaggi di programmazione discutono l'equivalenza osservativa per questo linguaggio; Sez. 47.4 è intitolato "Alcune leggi di uguaglianza" e mostra alcune regole di prova ammissibili per l'equivalenza osservazionale. Da nessuna parte si dice se il sistema di prova sia completo, quindi immagino che non lo sia, ma non si discute nemmeno se può essere completato. La mia ipotesi migliore ricollega al teorema di incompletezza di Gödel.


1
Penso di poter rispondere ad alcuni di questi, ma sono confuso su ciò che stai chiedendo. La domanda a cui ti riferisci non riguarda l'equivalenza del programma. Intendi equivalenza osservativa? Per quale semantica operativa? Quindi, in sostanza, se spieghi esattamente a cosa si riferisce "la prova" nella domanda 1, penso di poter indovinare cosa sta succedendo. La mia ipotesi migliore finora: ti piacerebbe una teoria equazionale che è completa per l'equivalenza osservativa e ci stai chiedendo se le regole sono sufficienti. È così? η
Andrej Bauer,

@AndrejBauer: la tua ipotesi è corretta, inizierò ad aggiornare la domanda.
Blaisorblade

Non sono sicuro della semantica operativa: questo fa la differenza per i teoremi originali?
Blaisorblade

Ho cercato di affinare ulteriormente la domanda. Ma penso ancora che la tua ipotesi migliore sia corretta.
Blaisorblade,

C'è un piccolo problema qui: non è davvero chiaro cosa sia per i numeri naturali! Se hai solo funzione e tipi di prodotto, allora sei in chiaro: i termini sono equivalentemente osservativi se sono β η uguali. Più in generale, penso che ciò sia legato al problema della piena astrazione . ηβη
cody

Risposte:


7

Non sono sicuro di poter rispondere completamente alla tua domanda, ma ci proverò e farò alcune mie domande che potrebbero stimolare ulteriori discussioni su questo argomento.

Il mio primo punto è questo: due termini nel calcolo non tipizzato λ si dice che siano notevolmente uguali se per ogni termine M : M t  termina M t  termina  Dove termina significa "ha una forma β- normale"t,t λM

M t terminates M t terminates 
β

Trovo più naturale considerare i termini con "buchi" o contesti anziché semplicemente termini M e scrivere E [ t ] invece di M t . Le due viste sono certamente equivalenti (se le variabili non sono vincolate dal contesto), poiché l'astrazione consente di trasformare il contesto E [ _ ] nel termine λ x . E [ x ] .E[_]ME[t]M tE[_]λx.E[x]

Ora è un dato di fatto che l'uguaglianza di osservazione nel calcolo senza tipo è non catturato dal -equality! In effetti esiste un'intera classe di termini, che entrambi non terminano e non hanno forme normali di testa e sono quindi tutti ugualmente osservabili. Questi sono talvolta chiamati termini perpetui o termini irrisolvibili , e qui ci sono due di questi termini: ( λ x . X x ) ( λ x . X x ) e ( λ x . X x x ) ( λ x .βη

(λx.x x)(λx.x x)
È abbastanza facile dimostrare che questi termini non sonouguali a β η .
(λx.x x x)(λx.x x x)
βη

Se vengono identificati tutti i termini perpetui, l'uguaglianza osservazionale viene completamente catturata, da un risultato classico (vedere il teorema di Barendregt 16.2.7).


Ora per i calcoli digitati. Consideriamo prima il -calcolo digitato semplicemente senza numeri naturali. La precedente definizione di uguaglianza osservativa diventa banale, poiché ogni termine si normalizza! Abbiamo bisogno di una distinzione più fine. Useremo l'uguaglianza di valore t 1t 2 per termini chiusi, definiti dall'induzione sul tipo di t 1 e t 2 . Per prima cosa aggiungiamo per ogni tipo A , un numero infinito di costanti c A , c A , c A , . Sceglieremo una costante c xλt1t2t1t2AcA,cA,cA,cxdel tipo appropriato per corrispondere a ciascuna variabile .x

  1. Alla base tipo , t 1t 2 se la forma normale β- testa di t 1 è c u 1u n e quella di t 2 è d v 1v n e c = d e u 1v 1 , ... , u nv n nei rispettivi tipi.Bt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. Al tipo di freccia, se entrambi i termini β si riducono a un'ostruzione λ .t1t2βλ

Nota che uso solo la conversione in questa definizione.β

Ora definisco i contesti come: con il contesto, l'applicazione, l'astrazione e la sostituzione della testa (a termini chiusi).

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

Possiamo quindi definire e t ' , ben tipizzato di tipo T essere osservativamente equivalenti se e solo se per ogni contesto E [ _ ] tale che E [ t ] , E [ t ' ] sono ben digitato e chiuso . E [ t ] E [ t ] scriveremo t = o b s t in questo casott'TE[_]E[t],E[t']

E[t]E[t']
t=oBSt'

Ora è facile osservare che se allora t = o b s t . L'altra direzione è meno banale, ma vale anche: in effetti, se t = o b s t , allora possiamo mostrare che i termini sono uguali per β η per induzione sul tipo:t=βηt't=oBSt't=obstβη

  1. Al tipo base, prendi semplicemente β c x come [ _ ] θ , con θ la sostituzione che invia x a c x . Abbiamo E [ t ] = t θ ed E [ t ] = t θ . Abbiamo t θ β c x u 1 θ u n θ et t θ E[_][_]θθxcxE[t]=tθE[t]=tθtθβcx u1θunθ . Abbiamo quindi c x = c x e quindi x = x . Ora non possiamo immediatamente concludere che u i θ = β η v i θ . In effetti, se u i e v io sono lambda -abstractions, quindi banalmente u i θ v i θ ! Il trucco qui è inviare xtθβcx v1θvnθcx=cxx=xuiθ=βηviθuiviλuiθviθxa e ripeterlo tutte le volte che è necessario. Sono un po 'confuso sui dettagli qui, ma l'idea è simile al teorema di Böhm (di nuovo Barendregt 10.4.2).

    λy.cx~ (y1c1)(yncn)
  2. Nel tipo di freccia, prendere come [ _ ] c y , ovvero applicazione a E[_][_] cy con c y e y non in t o t . Per l'ipotesi di induzione abbiamo: t c y = β η t c y e quindi t y = β η t y Che dà λ y . t y = βcycyytt

    t cy =βη t cy
    t y =βη t y
    e infine perη-equality: t = β η t λy.t y =βη λ.t yη
    t =βη t'

È stato più difficile del previsto!


Bene, affrontiamo il sistema T. Aggiungiamo un tipo al mix, i costruttori 0 e S , e un ricorsore r e c TN0SrecT per ogni tipo , con le " regole beta " r e c T u v 0 β u r e c T u v ( S n ) β v n ( r e c T u v n )Tβ

recT u v 0βu
recT u v (S n)βv n (recT u v n)

η

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

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

MtMTtM (S S 0)n S1Mn0

M

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

Grazie per la tua risposta! La mia prima domanda è: è normale avere sostituzioni in contesti di equivalenza osservativa? Almeno il documento LCF di Plotkin (1997) non lo fa (anche se posso immaginare qualcosa del genere avrebbe senso in alcuni calcoli di chiusura, in cui qualcosa come le sostituzioni fa parte della sintassi). Ma posso facilmente vedere per ogni contesto di "sostituzione" che si può definire un contesto "standard" più (per me) che usa solo lambda-astrazione e applicazione, diciamo (λx. []) C_x; quindi immagino che l'equivalenza osservativa sopra sia equivalente alla definizione a cui sono abituato.
Blaisorblade,

L'equazione "vera ma non dimostrabile" è (presumo) t=λX.00=βηS0M0=βηS00βηS 0

Mt=λX.0

1
PUN01PUN0=1T
f 0=g 0f (S 0)=g (S 0)...f=g

1
Giusto! Sebbene a volte abbia senso prendere in considerazione tali sistemi "infiniti" per scopi di prova teorica (ad es. Analisi ordinale).
cody,
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.