TL; DR. Metamathemik dari pengikatannya halus : tampaknya sepele tetapi tidak - apakah Anda berurusan dengan logika (tingkat tinggi) atau 𝜆-kalkulus. Mereka sangat halus sehingga representasi yang mengikat membentuk bidang penelitian terbuka, dengan kompetisi ( tantangan POPLmark ) beberapa tahun yang lalu. Bahkan ada lelucon oleh orang-orang di lapangan tentang kompleksitas pendekatan untuk mengikat.
Jadi, jika Anda peduli dengan metamathematics (dan sebagian besar matematikawan tidak), Anda harus berurusan dengan penjilidan. Tetapi banyak ahli matematika dapat dengan aman memperlakukan formalisasi pengikatan seolah-olah itu merupakan masalah "mendasar".
Poin lain adalah bahwa pengikatan adalah satu-satunya masalah "baru" dalam bahasa dengan fungsi tingkat tinggi, karena teori bahasa dengan pengikatan hanyalah aljabar (untuk konstanta) + pengikatan. "Yayasan Bahasa Pemrograman" Mitchell sebenarnya menyajikan hal-hal dalam urutan ini dan agak mencerahkan.
Saya sadar bagaimana karyanya membuka jalan bagi λ-calculus dan dampak "itu" pada komputasi dan pemrograman fungsional secara umum. Pertanyaan saya sebagian besar diarahkan ke waktu "sebelum" untuk penciptaan λ-kalkulus dan "setelah" makalah Schönfinkel.
Saya pasti melewatkan sesuatu, tetapi komentar ini sepertinya tidak ada bedanya. Mengikat logika tingkat tinggi dan mengikat λ-kalkulus tampak sulit, sehingga selama orang-orang peduli dengan logika tingkat tinggi, mereka harus berurusan dengan penjilidan. Saya bias dengan menggunakan proversor teorema berbasis Curry-Howard-isomorphism yang mengimplementasikan logika dengan hanya menerapkan teori tipe (di mana tipe adalah rumus dan program adalah istilah bukti), sehingga saya hanya berurusan dengan pengikatan satu kali.
Di sisi lain, IIRC, pada saat itu memang sedikit yang peduli dengan karya Schönfinkel - sebagian karena bagaimana ia (tidak) menerbitkannya - makalah-makalah itu sebagian besar ditulis oleh rekan-rekannya berdasarkan penelitian yang dilakukannya (lihat di sini , halaman 4) ; Curry kemudian menemukan kembali teorinya secara independen.
Peringatan: Saya bukan seorang sejarawan, tetapi seorang mahasiswa PhD di PL, jadi milik saya adalah perspektif modern (dan mudah-mudahan akurat) tentang topik tersebut.
EDIT:
Mengapa mengikat dengan halus, sedikit lebih konkret
Ada dua sisi untuk itu - pertama, mengimplementasikannya sulit. Kedua, metamathematics adalah matematika manipulasi bukti: manipulasi ini biasanya otomatis, yaitu, ini adalah algoritma - jadi pada dasarnya, Anda menghadapi semua kesulitan implementasi, ditambah membuat bukti tentang mereka. Di bawah ini saya berikan contoh. Contoh-contoh tersebut memiliki perspektif modern - mereka adalah tentang bukti yang benar-benar diformalkan. Namun, beberapa kesulitan akan meluas ke bukti manual yang akurat - selama Anda tidak menipu pada detail.
Ini menunjukkan bahwa Schönfinkel hanya memberikan solusi pertama untuk masalah ini, tetapi ini masih jauh dari definitif.
Menerapkannya halus karena membayangi
( λ f. f 1 + f 2 ) ( λ x . X )( λ x . x ) 1 + ( λ x . x ) 2 memberi Anda ( λ g y . g y ) ( λ g y . g y ) z dan kemudian ( λ y . ( λ g y . g y ) y ) z : sekarang Anda harus berurusan dengan membayangi. Anda dapat menghindari ini, dengan mengorbankan aturan pengurangan beta.( λ 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
Yang lebih buruk adalah bahwa kontra-contoh untuk algoritma naif sulit untuk dibangun ketika Anda sudah tahu masalahnya, apalagi ketika Anda tidak. Bug dalam algoritma yang hampir benar seringkali tidak terdeteksi selama bertahun-tahun. Saya mendengar bahwa bahkan siswa yang baik biasanya gagal untuk muncul (sendiri) dengan definisi yang benar dari substitusi yang menghindari penangkapan. Sebenarnya, mahasiswa PhD (termasuk saya) dan profesor tidak dibebaskan dari masalah ini.
Itulah salah satu alasan mengapa beberapa (termasuk salah satu buku teks terbaik tentang bahasa pemrograman, Jenis dan Bahasa Pemrograman oleh Benjamin Pierce) merekomendasikan representasi tanpa nama (bukan logika kombinasi, meskipun telah digunakan, tetapi lebih tepatnya indeks deBrujin).
Bukti tentang hal itu halus
Ternyata bukti tentang ikatan tidak lebih sederhana dari implementasinya, seperti yang disebutkan di atas. Tentu saja, ada algoritma yang benar, dan bukti tentang mereka ada - tetapi tanpa mesin canggih, untuk setiap bahasa menggunakan penjilidan Anda perlu mengulangi bukti, dan bukti itu sangat besar dan menjengkelkan jika Anda menggunakan definisi untuk mengikat pada pena dan kertas .
BSEBUAHSEBUAHBB
Selanjutnya, saya mencari contoh terbaik saya "apa yang salah jika Anda mencoba memformalkan definisi standar". Russell O'Connor (yang ada di situs ini) memformalkan teorema ketidaklengkapan Gödel pertama dalam Coq (sebuah pembuktian teorema dari jenis yang disebutkan di atas) - dan teorema tersebut melibatkan logika (dengan semua algoritma yang relevan) dalam logika lain (dengan sintaksis dari logika pertama dikodekan sebagai angka). Dia menggunakan definisi yang digunakan di atas kertas dan memformalkannya secara langsung. Cari "substitusi" atau "variabel" dan hitung seberapa sering mereka muncul sehubungan dengan masalah untuk mendapatkan kesan.
http://r6.ca/Goedel/goedel1.html
Saya tidak pernah menggunakan definisi itu dalam pekerjaan saya, tetapi setiap pendekatan alternatif memiliki beberapa kelemahan.