Kendine indirgenen Lambda-Calculus terimleri


13

Lambda hesabını öğrenmeye devam etmek için devam eden arayışımda, Hindley ve Seldin'in "Lambda-Calculus ve Kombinatörleri Giriş" ifadesi, aynı olan tek indirgenebilir ifadenin (modulo alfa dönüşümü) kendisine kanıt olduğunu kanıtlayan aşağıdaki makaleden (Bruce Lercher tarafından) bahsediyor. olduğu: .(λx.xx)(λx.xx)

Sonuca inanırken, tartışmayı hiç takip etmiyorum.

Oldukça kısa (bir paragraftan az). Herhangi bir açıklama memnuniyetle karşılanacaktır.

Teşekkürler,

Charlie

Yanıtlar:


16

İlk olarak, sonucun sağ tarafın sol tarafa eşit olduğu tek mod redex'in (modulo alfa dönüşümü) . Bu redeksin bir bağlamda olması, kendilerine indirgenen başka terimler de vardır.(λx.xx)(λx.xx)

Lercher'ın ispatının çoğunun nasıl çalıştığını görebiliyorum, ancak ispatı biraz değiştirmeden geçemediğim noktalar var. Varsayalım ki (kullanmak alfa denklik) ve değişken kuralı uyarınca varsayalım serbest oluşmaz .= x B(λx.A)B=[B/x]A=xB

Sol taraftaki ve sağ taraftaki sayısını sayın . İndirgeme REDEX birini ve ayrıca bu kaldırır , ve olduğu gibi bir çok şekilde ekler geçiş sayısı kez de . Diğer bir deyişle, eğer sayısıdır 's ve serbest geçiş sayısı olduğu in sonra . Diophantine denkleminin tek çözümü (ve ancak bu gerçeği kullanmayacağız).λBBxAL(M)λM#x(M)xM1+L(B)=#x(A)×L(B)#x(A)=2L(B)=1

Lercher'ın yukarıdaki paragraf konusundaki argümanını anlamıyorum. ve atom terimlerini sayar ; hadi şunu yazalım . Denklemi, iki çözümü olan : ve . İkinci olasılığı ortadan kaldırmak için bariz bir yol göremiyorum.# ( M ) # ( B ) + 1 = # x ( A ) × ( # ( B ) - 1 ) # x ( A ) = 2 , # ( B ) = 3 # x ( A ) = 3 , # ( B ) = 2λ#(M)#(B)+1=#x(A)×(#(B)1)#x(A)=2,#(B)=3#x(A)=3,#(B)=2

Şimdi için eşit alt terimlerinin sayısı aynı muhakeme edelim her iki tarafta. İndirgeme üst kısmına yakın bir kaldırır ve vakalarım orada ikame edilir birçok olarak ekler de , yani 2. Bu nedenle bir daha oluşumu, yok olmalıdır; olanlar bu yana (nedeniyle kalır serbest ihtiva ), ekstra oluşumu sol tarafında olması gerekir .x A B A B x B λ x . birBxABABxBλx.A

Bunu nasıl Lercher deduces anlamıyorum yoktur bir subterm olarak, ancak bu kanıt ilgili aslında değildir.AB

İlk hipotezden, bir uygulamadır. Bu durum olamaz yüzden kendisi bir uygulama ile, . Yana bir subterm kendisi olamaz, formuna sahip olamaz , yani . Benzer şekilde .[(λx.A)/x]AA=xAMNλx.MN=[(λx.MN)/x]M=[(λx.MN)/x]NMMλx.PM=xN=x


Sayma argümanı olmayan bir kanıt tercih ederim. Varsayalım ki .(λx.A)B=[B/x]A

Eğer o zaman var çünkü mümkün değildir, kendisinin bir subterm olamaz. Bu nedenle, hipotezin sağ tarafı bir uygulamaya eşit olduğundan, bir uygulama ve ve .A=x(λx.A)B=BBAA1A2λx.A=[B/x]A1B=[B/x]A2

Eski eşitlikten, ya ya da . İkinci durumda, , $ A_1 olduğu için mümkün değil, kendi başına bir alt dönem olamaz.A 1 = λ x . [ B / X ] bir A 1 = λ x . ( λ x . A 1 A 2 ) BA1=xA1=λx.[B/x]AA1=λx.(λx.A1A2)B

İkinci eşit ya kaynaktan veya serbest sahip (aksi kendisinin bir subterm olacaktır). Bu ikinci durumda, .A 2 x B A 2 = BA2=xA2xBA2=B

Biz göstermiştir ki . İlk hipotezin sağ tarafı ve = .B B B = λ x . Bir λ x . x xA=xxBBB=λx.Aλx.xx

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.