È possibile decidere l' equivalenza


18

So che è impossibile decidere l' equivalenza per il calcolo lambda non tipizzato. Citando Barendregt, HP The Lambda Calculus: la sua sintassi e semantica. Olanda settentrionale, Amsterdam (1984). :β

Se A e B sono insiemi disgiunti e non vuoti di termini lambda che sono chiusi sotto l'uguaglianza, allora A e B sono ricorsivamente inseparabili. Ne consegue che se A è un insieme non banale di termini lambda chiusi sotto l'uguaglianza, allora A non è ricorsivo. Quindi, non possiamo decidere il problema "M = x?" per ogni particolare M. Inoltre, ne consegue che Lambda non ha modelli ricorsivi.

Se abbiamo un sistema di normalizzazione, come il Sistema F, allora possiamo decidere l' equivalenza "dall'esterno" riducendo i due termini dati e confrontando se le loro forme normali sono uguali o meno. Tuttavia, possiamo farlo "dall'interno"? Esiste un combinatore System-F tale che per due combinatori e abbiamo se e hanno la stessa forma normale e altrimenti? O questo può essere fatto almeno per alcune ? un combinatore tale che sia vero seE M N E M N = vero M N E M N = falso M E M E M N N β MβEMNEMN=trueMNEMN=falseMEMEMNNβM? Se no, perché?

Risposte:


19

No, non è possibile. Considera i seguenti due abitanti del tipo .(AB)(AB)

M=λf.fN=λf.λa.fa

Queste sono forme normali distinte , ma non possono essere distinte da un termine lambda, poiché è un'espansione di e l' espansione conserva l'equivalenza osservazionale in un calcolo lambda tipizzato puro.N η M ηβNηMη

Cody ha chiesto cosa succede se modifichiamo anche con -equivalence. La risposta è ancora negativa, a causa della parametricità. Considera i seguenti due termini nel tipo :( α .η(α.αα)(α.αα)

M=λf:(α.αα).Λα.λx:α.f[α.αα](Λβ.λy:β.y)[α]xN=λf:(α.αα).Λα.λx:α.f[α]x

Sono distinti normali, forma lunga, ma sono equivalentemente osservazionali. In effetti, tutte le funzioni di questo tipo sono equivalenti, poiché è la codifica del tipo di unità, quindi tutte le funzioni del tipo deve essere estensivamente equivalente.η α .βη( α .α.αα(α.αα)(α.αα)


2
Ok, stessa domanda con -equivalence :)β,η
cody

11

Un'altra possibile risposta a Neel perfettamente corretta: Supponiamo che ci sia un combinatore , ben digitato nel sistema F in modo tale che la condizione di cui sopra valga. Il tipo di E è:EE

E:α.ααbool

Si scopre che esiste un teorema gratuito che esprime che tale termine è necessariamente costante :

T, t,u,t,u:T, E T t u=E T t u

E

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.