SICP'den bir çizgi “Ünlü mantıkçılar utanç verici hatalar yaptılar”. Bu ne anlama geliyor?


14

Bağlam ( "Yerel adlar" başlığı altındaki Bilgisayar Programlarının Yapısı ve Yorumlanması , bölüm 1.1.8):

Bir prosedürün resmi bir parametresinin, prosedür tanımında çok özel bir rolü vardır, çünkü resmi parametrenin hangi isme sahip olduğu önemli değildir. Böyle bir isme bağlı değişken denir ve prosedür tanımının resmi parametrelerini bağladığını söyleriz . Bağlı tanım değişkeni tanım boyunca sürekli olarak yeniden adlandırılırsa, yordam tanımının anlamı değişmez.

Son satırın sonunda şöyle bir dipnot (26) vardır:

Tutarlı yeniden adlandırma kavramı aslında ince ve resmi olarak tanımlanması zordur. Ünlü mantıkçılar burada utanç verici hatalar yaptılar.

Metin neye ya da kime atıfta bulunuyor? "Tutarlı yeniden adlandırma" tanımlamak neden zor, hangi mantıkçılar bunu tanımlamaya çalışırken hata yaptılar ve bu hatalar nelerdi?


3
Öğrencilerime "bağlı değişkenleri sürekli olarak yeniden adlandırmayı" anlamanın tek yolunun lanet şeyi doğru bir şekilde uygulamak olduğunu söylüyorum. Birçok mantık kitabı sorunu önler, eksik yeniden adlandırma prosedürleri verir veya en azından verilen yeniden adlandırma prosedürlerinin doğru olduğuna dair kanıtları atlar. Fakat kitabın hangi dedikodulara atıfta bulunduğunu bilmiyorum.
Andrej Bauer

5
Değişken yeniden adlandırma, yeni adlar, yakalamadan kaçınma ikamesi ve benzerleriyle hassas bir şekilde ilgilenmek, tanımlarda ve kanıtlarda hızla hantal hale gelen en önemsiz şeylerden biridir. Böyle önemsiz bir konu için, önemsiz miktarda zihinsel döngüden daha fazlasını harcamak istemez, ancak çok sayıda zor yakalama / çarpışma / vb. Önlemek için gerekenden çok daha fazlası. tanımları, ancak daha sonra "Barendregt konvansiyonu" nu harekete geçirin ve gerektiğinde burada ve orada "taze" yi biraz kötüye kullanan sorunu görmezden gelin.
chi

1
Mümkünse, aşağıda cevap kutusunda daha somut yanıtları takdir ediyorum. Bu yorumlar, konuyla zaten tanışmış biri tarafından okunmak için yazdığınız için konuyu gizemli
kılıyor

@chi Özellikle, bu konuyla ilgili önerileri okumaktan memnuniyet duyarım. Şimdiden teşekkürler
ubadub

Yanıtlar:


11

Bu kısmi bir cevaptır: SICP'nin hangi hatalara veya kişilere atıfta bulunduğu hakkında hiçbir fikrim yok. Değişken yeniden adlandırma işleminin tam olarak üstesinden gelmek için acı verici olabileceği hakkında yalnızca bazı ipuçları verebilirim.

Her şeyden önce, tanımlanması önemsiz görünüyor. Örneğin, dizinli toplamlarda bağlı değişkenleri yeniden adlandırabiliriz

xe=y(e{y/x})

ee{y/x}xy

Yukarıdaki kuralı körü körüne uygularsak,

x(x+y)=y(y+y)

ye

Şimdi, bu doğru yeniden adlandırmayı düşünün

xy(x+y)=xz(x+z)

xy

e{y/x}yeye

Daha sonra serbest oluşumları tanımlarız:

free(x)={x}free(e+t)=free(e)free(t)free(xe)=free(e){x}

Son olarak, değiştirmeden kaçınarak yakalayın:

  • x{t/y}tx=yx
  • (e+e){t/y}=e{t/y}+e{t/y}
  • (xe){t/y}=??

x=yxxe

yx(xe){t/y}=x(e{t/y})xt

zytxe(xe){t/y}=z(e{z/x}{t/y})

Umarım doğru anladım. (Bu arada ilk denemem yanlıştı)

zz

αλx

Şimdi, PL teorisinde her şeyi kanıtlamak istediğimizde bu karmaşık tanımla uğraşmak zorunda olduğunuzu düşünün . Yapabilirdik, ama istemiyoruz. Sıkıcı, sıkıcı, hataya açık, kanıtı kesiyor ve okuyucuya hiçbir fikir vermiyor. Bu nedenle, birçok PL yazarı, terimlerin "değişken isimlendirmesine kadar" alınacağını, tüm bağlı değişkenlerin birbirinden farklı olmaları gerekenden farklı olduğu varsayıldığını söyleyerek (hatta verilmiş olarak!) "Barendregt sözleşmesini" ya da aynı etkiye sahip bir şeyi varsayalım.

Acımasızca dürüst olmak gerekirse, bu kanıtlarda aldatıyor. Biz de ekleyebiliriz "wink wink, dürtmek dürtmek, artık söyleme!" aynı ruhla. Esasen merhamet istiyoruz ve okuyucuya şöyle diyoruz: “bak, bu sıkıcı, bunu yapmak istemiyorum, okumak istemiyorsunuz - ikimiz de biliyoruz ki, büyük bir çaba ile bu kanıtı yeniden yazabiliriz msgstr "tüm detayları dahil et".

Teknik olarak ise yanlış ifade kanıtlamak için bu kısayolu yararlanmak mümkün. Bununla birlikte, deneyimli kanıt inceleyicisi neyin "ahlaki açıdan iyi" olduğunu ve mükemmel (büyük bir çaba ile) ve neyin şüpheli olduğunu bilir. İkincisi, bağlı isimlerin gerçek seçimine bağlı olan bir şey içerebilir (bu yüzden söz verildiği gibi "en fazla" çalışmaz !). Bu durumlarda, inceleme daha fazla ayrıntı isteyecektir, böylece ikna edilebilir.

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.