TL; DR metamathematics of binding นั้นบอบบาง : มันดูเล็กน้อย แต่ไม่ว่าคุณจะจัดการกับ logics (สูงกว่า) หรือ calcul-แคลคูลัส พวกเขาช่างลึกซึ้งเหลือเกินที่การเป็นตัวแทนผูกพันก่อให้เกิดสาขาวิจัยที่เปิดกว้างพร้อมการแข่งขัน ( ความท้าทาย POPLmark ) เมื่อหลายปีก่อน แม้จะมีเรื่องตลกโดยคนในสนามเกี่ยวกับความซับซ้อนของวิธีการที่จะผูกพัน
ดังนั้นหากคุณสนใจเกี่ยวกับวิชาคณิตศาสตร์ (และนักคณิตศาสตร์ส่วนใหญ่ไม่ได้) คุณจะต้องจัดการกับการผูกมัด แต่นักคณิตศาสตร์หลายคนสามารถรักษาความเป็นระเบียบของการผูกมัดได้อย่างปลอดภัยราวกับว่ามันเป็นปัญหา "พื้นฐาน"
อีกประเด็นหนึ่งคือการผูกเป็นปัญหา "ใหม่" เพียงอย่างเดียวในภาษาที่มีฟังก์ชั่นลำดับสูงกว่าเพราะทฤษฎีของภาษาที่มีการผูกเป็นเพียงพีชคณิต (สำหรับค่าคงที่) + การรวม "รากฐานของภาษาโปรแกรม" ของมิตเชลล์นำเสนอสิ่งต่าง ๆ ตามลำดับนี้และค่อนข้างจะเป็นความกระจ่าง
ฉันรู้ว่างานของเขาปูทางไปสู่ calcul-แคลคูลัสและผลกระทบของ "มัน" ต่อการคำนวณและการเขียนโปรแกรมการทำงานโดยทั่วไป คำถามของฉันมักจะถูกนำไปสู่เวลา "ก่อนหน้า" ในการสร้าง calcul-แคลคูลัสและ "หลัง" กระดาษของSchönfinkel
ฉันต้องคิดถึงบางอย่าง แต่คำพูดนี้ดูเหมือนจะไม่แตกต่าง การผูกมัดในลอจิสติกที่มีลำดับสูงกว่าและการผูกในλ-แคลคูลัสดูเหมือนยากดังนั้นตราบใดที่ผู้คนสนใจเกี่ยวกับลอจิกลำดับที่สูงขึ้นพวกเขาต้องจัดการกับการผูกมัด ฉันลำเอียงโดยใช้นักพิสูจน์ตามทฤษฎีของ Curry-Howard-isomorphism ที่ใช้ตรรกะโดยเพียงแค่ใช้ทฤษฎีประเภท (ซึ่งประเภทเป็นสูตรและโปรแกรมเป็นเงื่อนไขการพิสูจน์) เพื่อที่ฉันจะจัดการผูกพันครั้งเดียว
ในทางตรงกันข้าม IIRC ในเวลานั้นมีเพียงไม่กี่คนที่ใส่ใจงานของSchönfinkelส่วนหนึ่งเป็นเพราะเขา (ไม่) เผยแพร่ - เอกสารส่วนใหญ่เขียนโดยเพื่อนร่วมงานจากการวิจัยที่เขาทำ (ดูที่นี่หน้า 4) ; จากนั้นแกงก็ค้นพบทฤษฏีอิสระ
Caveat: ฉันไม่ใช่นักประวัติศาสตร์ แต่เป็นนักศึกษาปริญญาเอกใน PL ดังนั้นของฉันจึงเป็นมุมมองที่ทันสมัย (และหวังว่าถูกต้อง) ในหัวข้อ
แก้ไข:
ทำไมการเชื่อมโยงจึงลึกซึ้งยิ่งขึ้น
มีสองแง่มุมสำหรับมัน - ก่อนอื่นการใช้มันยาก ประการที่สอง metamathematics เป็นคณิตศาสตร์ของการพิสูจน์การจัดการ: การจัดการนี้โดยอัตโนมัตินั่นคือมันเป็นอัลกอริทึม - ดังนั้นโดยพื้นฐานแล้วคุณต้องเผชิญกับความยากลำบากในการนำไปใช้ทั้งหมดรวมถึงการสร้างหลักฐานเกี่ยวกับพวกเขา ด้านล่างฉันยกตัวอย่าง ตัวอย่างมีมุมมองที่ทันสมัย - เป็นจริงเกี่ยวกับการพิสูจน์อย่างเป็นทางการ อย่างไรก็ตามความยากลำบากบางอย่างจะขยายไปสู่การพิสูจน์ด้วยตนเองที่ถูกต้อง - ตราบใดที่คุณไม่โกงรายละเอียด
นี่แสดงให้เห็นว่าSchönfinkelให้วิธีแก้ปัญหานี้เป็นครั้งแรกเพียงอย่างเดียว แต่นี่ยังไม่ชัดเจน
การนำไปใช้งานนั้นมีความละเอียดอ่อนเนื่องจากมีเงา
( λ f. ฉ 1 + f 2 ) ( λ x . x )( λ x . x ) 1 + ( λ x . x ) 2 ( λ fx . ฉ( ฉx ) ) ( λ g Y. ก. Y) z ( λ gY. ก. Y) ( λ g Y. ก. Y) z ( λ y. ( λ gY. ก. Y) y ) z
λ x y. xYλ y.yλy′.y
สิ่งที่แย่กว่านั้นคือตัวอย่างของการลบล้างขั้นตอนวิธีที่ไร้เดียงสานั้นยากที่จะสร้างขึ้นเมื่อคุณรู้ปัญหาแล้ว ข้อบกพร่องในอัลกอริทึมที่ถูกต้องมักจะตรวจไม่พบมานานหลายปี ฉันได้ยินมาว่าแม้นักเรียนที่ดีมักจะไม่มาด้วยตัวเองด้วยคำจำกัดความที่ถูกต้องของการทดแทนการหลีกเลี่ยงการจับกุม อันที่จริงนักศึกษาปริญญาเอก (ฉันรวมอยู่ด้วย) และอาจารย์ไม่ได้รับการยกเว้นจากปัญหาเหล่านี้
นั่นเป็นเหตุผลหนึ่งที่ว่าทำไมบางคน (รวมถึงหนึ่งในตำราเรียนที่ดีที่สุดเกี่ยวกับภาษาการเขียนโปรแกรมประเภทและภาษาการเขียนโปรแกรมโดย Benjamin Pierce) แนะนำให้ใช้การแสดงแบบนิรนาม (ไม่ใช่ตรรกะเชิงการรวมแม้ว่าจะถูกใช้แล้ว แต่ดัชนี deBrujin)
พิสูจน์เกี่ยวกับมันบอบบาง
ปรากฎว่าการพิสูจน์เกี่ยวกับการผูกนั้นไม่ง่ายไปกว่าการนำไปปฏิบัติตามที่กล่าวไว้ข้างต้น แน่นอนว่ามีอัลกอริธึมที่ถูกต้องและมีการพิสูจน์เกี่ยวกับสิ่งนั้น - แต่หากไม่มีเครื่องจักรขั้นสูงสำหรับแต่ละภาษาที่ใช้การเชื่อมคุณจำเป็นต้องทำซ้ำการพิสูจน์และการพิสูจน์เหล่านั้นมีขนาดใหญ่มากและน่ารำคาญถ้าคุณใช้คำจำกัดความ .
BAABB
ต่อไปฉันค้นหาตัวอย่างที่ดีที่สุดของ "สิ่งที่ผิดพลาดถ้าคุณลองจัดระเบียบมาตรฐาน" Russell O'Connor (ผู้ที่อยู่ในเว็บไซต์นี้) ทำให้ทฤษฎีบทความไม่สมบูรณ์ของGödelเป็นครั้งแรกใน Coq (ผู้พิสูจน์ทฤษฎีที่กล่าวถึงข้างต้น) - และทฤษฎีบทนั้นเกี่ยวข้องกับตรรกะ (พร้อมอัลกอริธึมที่เกี่ยวข้องทั้งหมด) ในตรรกะอื่น ตรรกะแรกที่เข้ารหัสเป็นตัวเลข) เขาใช้คำจำกัดความที่ใช้บนกระดาษและทำให้เป็นระเบียบโดยตรง ค้นหา "การแทนที่" หรือ "ตัวแปร" และนับความถี่ที่ปรากฏในการอ้างอิงถึงปัญหาเพื่อให้เกิดความประทับใจ
http://r6.ca/Goedel/goedel1.html
ฉันไม่เคยใช้คำจำกัดความเหล่านั้นในการทำงานของฉัน แต่วิธีการทางเลือกแต่ละวิธีมีข้อเสีย