Schönfinkel'in mantıktaki “bağlı değişkenleri” ortadan kaldırmaya yönelik çalışmaları neden bu kadar önemliydi?


15

AFAIK, Yüksek mertebeden fonksiyonlar kullanmanın ilk kanıtı Schönfinkel'in 1924 tarihli makalesine geri dönüyor: "Matematiksel Mantıkın Yapı Taşlarında" - birisinin işlevleri diğer işlevlere argüman olarak geçirmesine izin verdi.

İlginç görünüyor. Ancak, çalışmaları hakkında okuduğum her şey (ve Curry'nin uzantısıyla) bir şekilde veya başka bir şeyle ilgili gibi görünüyor: [üst düzey fonksiyonlar] ... bu, bağlı değişkenlere olan ihtiyacı ortadan kaldırıyor ...

Başımı saramadığım şey - önemli olan nedir? Neden o zamanın matematikçileri ve matematikçileri bunu önemsedi? Ve biz teorik olarak bugün bunu önemsiyor muyuz? Neden bağlı değişkenlerden kurtulmak "çığır açıcı" idi ve bildiğimiz gibi hesaplama (teorik olarak) üzerinde nasıl bir etkisi oldu (ya da ne yaptı)?

PS: Çalışmasının hesabı için nasıl yol açtığının ve genel olarak hesaplama ve işlevsel programlama üzerindeki etkisinin farkındayım . Benim sorum daha çok λ- hesabı oluşturma "öncesi" ve Schönfinkel'in makalesi "sonrası" ile ilgilidir. Curry'nin bağımsız olarak, daha sonra "kombine edici mantık" olarak bilinen bu iş kolunu alması, Schönfinkel'in çalışmasının önemini de ifade eder.λλ


2
Schönfinkel'in makalesini burada bulabilirsiniz .
Martin Berger

Yanıtlar:


17

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)) (λgy.g y) z(λgy.g y) (λgy.g y) z(λy.(λgy.g y) y)  z

λxy.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.


Curry-Howard-izomorfizm tabanlı teorem provatörlerini kullanarak önyargılıyım, bu yüzden sadece bir kez bağlanma ile ilgilenirim - Ne demek istediğini biraz açıklayabilir misin?
Doktora

3
İnce olduğunu söylüyorsunuz, ancak bunu tam olarak neyin böyle yaptığını ve bir metamatetikçi iseniz neden umursadığınızı asla söylemeyin? Aradığım perspektif bu.
Doktora

İlk yorumunuzda: Curry-Howard ile bağlantıyı açıkça kurdum, ancak sizi Wikipedia'ya veya başka bir soruya yönlendirmem gerekecek. İkinci yorumunuza katılıyorum; Lambda hesabını bilmeyen insanlar için ayrıntılı bir şekilde çalışacağım.
Blaisorblade

@PhD: Umarım eklediğim şey biraz yardımcı olur, ancak bu materyalle ilgili iyi bir dersin yerini almaz (ve ne yazık ki, karşılaştığım malzeme genellikle PPL ile ilgili birçok malzeme arasında dağıtılır).
Blaisorblade

1
Bir ton teşekkürler! Bu gerçekten yardımcı oldu. Bu bağlantı da ilginizi çekebilir: home.uchicago.edu/~wwtx/Varfreelogic_revised.pdf - Bağlı değişkenler olmadan birinci dereceden mantık.
Doktora
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.