TL; DR. Bağlamanın metamathematiği ince : önemsiz görünüyorlar, ama değil - (yüksek dereceli) mantıklarla veya 𝜆 hesapla ilgilenirseniz. O kadar incedir ki, bağlayıcı temsiller, birkaç yıl önce bir rekabet ( POPLmark meydan okuması ) ile açık bir araştırma alanı oluşturur . Hatta varSahada insanların bağlanma yaklaşımlarının karmaşıklığı hakkında şakalar .
Bu nedenle, metamatiğe önem veriyorsanız (ve çoğu matematikçi umursamıyorsa), ciltleme ile uğraşmanız gerekir. Ancak birçok matematikçi, bağlamanın resmileştirilmesini sanki "temel" bir sorunmuş gibi güvenli bir şekilde ele alabilir.
Başka bir nokta, bağlamanın yüksek dereceli işlevlere sahip dillerde tek "yeni" sorun olduğudur, çünkü bağlayıcı olan diller teorisi sadece cebir (sabitler için) + bağlayıcıdır. Mitchell'in "Programlama Dillerinin Temelleri" aslında bu sırayla bir şeyler sunar ve oldukça aydınlatıcıdır.
Çalışmalarının λ-hesabı için nasıl yol açtığının ve "it" in genel olarak hesaplama ve fonksiyonel programlama üzerindeki etkisinin farkındayım. Benim sorum daha çok λ-taşı oluşumundan önce “önce” ve Schönfinkel'in makalesinden “sonra” ile ilgilidir.
Bir şey eksik olmalıyım, ama bu açıklama fark etmiyor gibi görünüyor. Üst düzey mantıklarda bağlanma ve λ-kalkülüsünde bağlanma zor görünmektedir, bu yüzden insanlar daha üst düzey mantıkları önemsedikçe, bağlanma ile uğraşmak zorunda kalmıştır. Sadece bir kez bağlanma ile ilgilenmek için bir tip teorisi (tiplerin formüller ve programların kanıt terimleri olduğu) mantığı uygulayan Curry-Howard-izomorfizm tabanlı teorem provatörleri kullanarak önyargılıyım.
Öte yandan, IIRC, o zamanlar gerçekten de Schönfinkel'in çalışmalarını önemsiyordu - kısmen nasıl yayınladığı yüzünden - yazılar çoğunlukla yaptığı araştırmaya dayanarak meslektaşlar tarafından yazıldı ( buraya bakın) , sayfa 4) ; Curry daha sonra teoriyi bağımsız olarak yeniden keşfetti.
Dikkat: Ben bir tarihçi değil, PL'de doktora öğrencisiyim, bu yüzden benimki konuyla ilgili modern (ve umarım doğru) bir bakış açısı.
DÜZENLE:
Neden bağlayıcıdır, biraz daha somut olarak
Bunun iki yönü var - birincisi, uygulamak zor. İkincisi, metamathematik kanıt manipülasyonunun matematiğidir: bu manipülasyon genellikle otomatiktir, yani bir algoritmadır - bu yüzden esasen, uygulamanın tüm zorluklarıyla karşılaşırsınız, ayrıca onlar hakkında kanıtlar yaparsınız. Aşağıda örnekler verdim. Örneklerin modern bir perspektifi vardır - bunlar aslında resmi kanıtlarla ilgilidir. Bununla birlikte, bazı zorluklar, ayrıntıları aldatmadığınız sürece doğru manuel kanıtlara kadar uzanır.
Bu, Schönfinkel'in bu soruna ilk çözümü verdiğini gösteriyor , ancak bu kesin olmaktan çok uzaktı.
Gölgeleme nedeniyle ince uygulama
( λ f. f 1 + f 2 ) ( λ x . X )( λ x . x ) 1 + ( λ x . x ) 2 ( λ fx . f( fx ) ) ( λ g y. g y) z ( λ gy. g y) ( λ g y. g y) z ( λ y. ( λ gy. g y) y ) z
λ x y. xyλ y. yλ y'. y
Daha da kötüsü, naif algoritmalara yönelik karşı örneklerin, sorunu bilmediğiniz zaman, zaten bilmediğiniz zaman, yapılandırılması zor olmasıdır. Neredeyse doğru algoritmalardaki hatalar genellikle yıllarca tespit edilmez. İyi öğrencilerin bile yakalamadan kaçınmanın yerine geçecek doğru tanımı ile (kendi başlarına) gelmediklerini duyuyorum. Aslında, doktora öğrencileri (ben dahil) ve profesörler bu problemden muaf değiller.
Bu, bazılarının (programlama dilleri, Türler ve Programlama Dilleri hakkındaki en iyi ders kitaplarından biri de dahil olmak üzere Benjamin Pierce) isimsiz temsil (kullanılmış olsa bile oldukça birleştirici mantık değil, daha çok deBrujin dizinleri) önermesinin bir nedenidir.
Bununla ilgili kanıtlar ince
Bağlama ile ilgili kanıtların yukarıda belirtildiği gibi uygulamadan daha basit olmadığı ortaya çıktı. Tabii ki, doğru algoritmalar var ve bunlar hakkında kanıt var - ancak gelişmiş makineler olmadan, bağlayıcı kullanan her dil için kanıtları tekrarlamanız gerekiyor ve kalem ve kağıda ciltleme tanımlarını kullanırsanız bu kanıtlar çok büyük ve can sıkıcıdır. .
BbirbirBB
Sonra, "standart tanımı resmileştirmeyi denerseniz neyin yanlış gittiğini" en iyi örneğime baktım. Russell O'Connor (bu sitede kim var) ilk Gödel'in Coq'daki eksiklik teoremini (yukarıda bahsedilen türden bir teorem kanıtlayıcı) resmileştirdi - ve bu teorem başka bir mantıkta (tüm ilgili algoritmalarla) bir mantık ( sayı olarak kodlanan ilk mantık). Kağıt üzerinde kullanılan tanımları kullandı ve doğrudan resmileştirdi. "İkame" veya "değişken" terimlerini arayın ve gösterim elde etmek için sorunlara referans olarak ne sıklıkta göründüklerini sayın.
http://r6.ca/Goedel/goedel1.html
Bu tanımları asla işimde kullanmıyorum, ancak her alternatif yaklaşımın bir dezavantajı var.