Termini Lambda-Calculus che si riducono a se stessi


13

Nella mia continua ricerca per cercare di imparare il calcolo lambda, "Lambda-Calculus and Combinators an Introduction" di Hindley & Seldin menziona il seguente documento (di Bruce Lercher) che dimostra che l'unica espressione riducibile che è la stessa (conversione alfa modulo) a se stessa è: .(λX.XX)(λX.XX)

Mentre credo al risultato, non seguo affatto l'argomento.

È piuttosto breve (meno di un paragrafo). Qualsiasi spiegazione sarebbe benvenuta.

Grazie,

Charlie

Risposte:


16

Innanzitutto, si noti che il risultato indica che l'unico beta redex in cui il lato destro è uguale (modulo conversione alfa) al lato sinistro è . Ci sono altri termini che si riducono a se stessi, avendo questo redex in un contesto.(λX.XX)(λX.XX)

Vedo come funziona la maggior parte delle prove di Lercher, anche se ci sono punti in cui non posso superare senza modificare leggermente le prove. Supponiamo che (uso = per alpha equivalenza), e secondo la convenzione variabile supponga che x non si verifica trasporto B .(λX.UN)B=[B/X]UN=XB

Contare il numero di sul lato sinistro e sul lato destro. La riduzione rimuove uno dalla Redex, oltre a quelli di B , e aggiunge come molti come ci sono in B volte il numero di occorrenze di x in A . In altre parole, se L ( M ) è il numero di λ in M e # x ( M ) è il numero di occorrenze libere di x in M, allora 1 + L ( B ) = # x (λBBXUNL(M)λM#X(M)XM . L'unica soluzione a tale equazione diofantea è # x ( A ) = 2 (e L ( B ) = 1 ma non useremo questo fatto).1+L(B)=#x(A)×L(B)#x(A)=2L(B)=1

Non capisco l'argomento di Lercher per il paragrafo sopra. Conta il numero di e termini atomici; scriviamo questo # ( M ) . L'equazione è # ( B ) + 1 = # x ( A ) × ( # ( B ) - 1 ) , che ha due soluzioni: # x ( A ) = 2 , # ( B ) = 3 e # x ( )λ#(M)#(B)+1=#x(A)×(#(B)1)#x(A)=2,#(B)=3#x(A)=3,#(B)=2. I don't see an obvious way to eliminate the second possibility.

Let us now apply the same reasoning to the number of subterms equal to B on both sides. The reduction removes one near the top, and adds as many as there are substituted occurrences of x in A, i.e. 2. Hence one more occurrence of B must disappear; since the ones in A remain (because B contains no free x), the extra occurrence of B on the left-hand side must be λx.A.

I don't understand how Lercher deduces that A does not have B as a subterm, but this is not in fact relevant for the proof.

Dall'ipotesi iniziale, è un'applicazione. Questo non può essere il caso se A = x , quindi A stessa è un'applicazione M N , con λ x . M N = [ ( λ x . M N ) / x ] M = [ ( λ x . M N ) / x ] N[(λx.A)/x]AA=xAMNλx.MN=[(λx.MN)/x]M=[(λx.MN)/x]N. Since M can't have itself as a subterm, M cannot have the form λx.P, so M=x. Similarly, N=x.


I prefer a proof with no counting arguments. Suppose that (λx.A)B=[B/x]A.

A=x(λx.A)B=BBAA1A2λx.A=[B/x]A1 and B=[B/x]A2.

From the former equality, either A1=x or A1=λx.[B/x]A. In the second case, A1=λx.(λx.A1A2)B, which is not possible since $A_1 cannot be a subterm of itself.

From the latter equality, either A2=x or A2 has no free x (otherwise B would be a subterm of itself). In the latter case, A2=B.

We have shown that A=xx. The right-hand side of the initial hypothesis is thus BB, and B=λx.A = λx.xx.

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.