“ นักบันทึกที่มีชื่อเสียงได้สร้างข้อผิดพลาดที่น่าอับอายที่นี่” บรรทัดจาก SICP สิ่งนี้หมายถึงอะไร


14

นี่คือบริบท ( โครงสร้างและการแปลความหมายของโปรแกรมคอมพิวเตอร์หัวข้อ 1.1.8 ภายใต้หัวข้อ "ชื่อท้องถิ่น"):

พารามิเตอร์ทางการของโพรซีเดอร์มีบทบาทพิเศษมากในนิยามโพรซีเดอร์ซึ่งไม่สำคัญว่าชื่อพารามิเตอร์อย่างเป็นทางการจะมีอะไร ชื่อดังกล่าวเรียกว่าตัวแปรที่ถูกผูกไว้และเราบอกว่าคำจำกัดความของกระบวนการผูกพารามิเตอร์ทางการของมัน ความหมายของนิยามโพรซีเดอร์ไม่เปลี่ยนแปลงหากตัวแปรขอบเขตถูกเปลี่ยนชื่ออย่างสม่ำเสมอตลอดทั้งนิยาม

ในตอนท้ายของบรรทัดสุดท้ายนั้นจะมีเชิงอรรถ (26) ซึ่งกล่าวว่า:

แนวคิดของการเปลี่ยนชื่อที่สอดคล้องกันนั้นแท้จริงแล้วเป็นเรื่องยากและยากที่จะกำหนดอย่างเป็นทางการ นักบันทึกข้อมูลที่มีชื่อเสียงได้สร้างข้อผิดพลาดที่น่าอับอายที่นี่

ข้อความอ้างอิงถึงอะไรหรือใคร ทำไมการกำหนด "การเปลี่ยนชื่อที่สอดคล้องกัน" จึงยากซึ่งนักบันทึกข้อผิดพลาดที่พยายามกำหนดสิ่งนี้และข้อผิดพลาดเหล่านั้นคืออะไร


3
ฉันบอกนักเรียนของฉันว่าวิธีเดียวที่จะเข้าใจ "เปลี่ยนชื่อตัวแปรที่ถูกผูกไว้อย่างสม่ำเสมอ" คือการใช้สิ่งที่ถูกต้องให้ถูกต้อง หนังสือตรรกะหลายเล่มหลีกเลี่ยงปัญหาให้ขั้นตอนการเปลี่ยนชื่อไม่สมบูรณ์หรืออย่างน้อยที่สุดก็พิสูจน์ว่ากระบวนการเปลี่ยนชื่อที่กำหนดให้ถูกต้อง แต่ฉันไม่รู้ว่าหนังสือซุบซิบใดที่อ้างถึง
Andrej Bauer

5
การจัดการอย่างแม่นยำกับการเปลี่ยนชื่อตัวแปรชื่อใหม่การทดแทนการหลีกเลี่ยงการจับภาพและสิ่งที่คล้ายกันนั้นเป็นหนึ่งในสิ่งเล็กน้อยที่สุดที่รวดเร็วกลายเป็นเรื่องยุ่งยากในคำจำกัดความและบทพิสูจน์ สำหรับปัญหาเล็กน้อยเช่นนี้เราไม่ต้องการที่จะใช้จ่ายเกินกว่าจำนวนรอบของจิต แต่ยังมากกว่าที่จะต้องใช้เพื่อหลีกเลี่ยงการจับ / การชนที่ซับซ้อนจำนวนมาก ฯลฯ บ่อยครั้งที่คน PL ต้องดูแลพวกเขาด้วย คำจำกัดความ แต่จากนั้นเรียกใช้ "การประชุม Barendregt" และเพิกเฉยต่อปัญหาการใช้ "สด" ที่นี่ในทางที่ผิดและค่อนข้างไม่เหมาะสมเมื่อจำเป็น
Chi

1
ฉันขอขอบคุณคำตอบที่เป็นรูปธรรมมากขึ้นด้านล่างในกล่องคำตอบหากเป็นไปได้ ความคิดเห็นเหล่านี้ยังคงทำให้เกิดปัญหาเสียงลึกลับตามที่คุณเขียนให้อ่านโดยคนที่คุ้นเคยกับปัญหาที่มีอยู่แล้วในขณะที่ฉันไม่ได้
ubadub

@chi โดยเฉพาะฉันขอขอบคุณการอ่านคำแนะนำที่เกี่ยวข้องกับหัวข้อนี้หากคุณมี ขอบคุณล่วงหน้า
ubadub

คำตอบ:


11

นี่เป็นคำตอบบางส่วน: ฉันไม่รู้ว่าข้อผิดพลาดหรือบุคคลใดที่ SICP อ้างถึง ฉันสามารถให้คำแนะนำบางอย่างเกี่ยวกับ "ทำไม" การเปลี่ยนชื่อตัวแปรอาจเจ็บปวดในการจัดการอย่างแม่นยำ

ประการแรกดูเหมือนจะเป็นเรื่องเล็กน้อยที่จะนิยาม ตัวอย่างเช่นเราสามารถเปลี่ยนชื่อตัวแปรที่ถูกผูกไว้ในผลรวมของดัชนี

xe=y(e{y/x})

ที่eคือการแสดงออกใด ๆ และe{y/x}หมายถึงการเปลี่ยนประโยคของแต่ละxกับYyไม่สำคัญใช่มั้ย

ถ้าเราสุ่มสี่สุ่มห้าใช้กฎข้างต้นเราก็จะได้

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

ye

ตอนนี้ให้พิจารณาการเปลี่ยนชื่อที่ถูกต้อง

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

xy

e{y/x}yeye

จากนั้นเราจะกำหนดสิ่งที่เกิดขึ้นฟรี:

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

ในที่สุดการดักจับการหลีกเลี่ยงการทดแทน:

  • 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})

ฉันหวังว่าฉันจะทำให้ถูกต้อง (ความพยายามครั้งแรกของฉันคือผิดทางโดย)

zz

αλx

ทีนี้ลองนึกภาพว่าต้องจัดการกับคำจำกัดความที่ซับซ้อนทุกครั้งที่เราต้องการพิสูจน์บางสิ่งในทฤษฎี PL เราทำได้ แต่เราไม่ต้องการ มันน่าเบื่อน่าเบื่อข้อผิดพลาดง่าย ๆ เป็นกลุ่มพิสูจน์และให้ข้อมูลเชิงลึกแก่ผู้อ่าน ด้วยเหตุนี้ผู้เขียน PL หลายคนก็ข้ามรายละเอียดโดยพูด (หรือแม้แต่รับตามที่ได้รับ!) คำศัพท์นั้นจะต้องดำเนินการ "ถึงการเปลี่ยนชื่อตัวแปร" ซึ่งตัวแปรที่ผูกไว้ทั้งหมดจะถือว่าแตกต่างจากสิ่งที่พวกเขาต้องการแตกต่างจาก เราถือว่า "Barendregt Convention" หรือบางสิ่งบางอย่างมีผลเช่นเดียวกัน

ความซื่อสัตย์อย่างไร้ความปราณีนี่เป็นการโกงในการพิสูจน์ เรายังสามารถเพิ่ม "ขยิบตาขยิบตาเขยิบเขยิบพูดไม่มาก!" ด้วยจิตวิญญาณเดียวกัน เราต้องการความเมตตาและบอกผู้อ่านว่า: "ดูสินี่มันน่าเบื่อฉันไม่ต้องการที่จะทำคุณไม่ต้องการอ่านมัน - เราทั้งคู่รู้ว่าด้วยความพยายามอย่างมากเราสามารถเขียนหลักฐานนี้เพื่อ รวมถึงรายละเอียดทั้งหมด "

ในทางเทคนิคแล้วมันเป็นไปได้ที่จะใช้ประโยชน์จากทางลัดนี้เพื่อพิสูจน์ข้อความเท็จ อย่างไรก็ตามผู้ตรวจสอบพิสูจน์ที่มีประสบการณ์รู้ว่า "คุณธรรมดี" และสามารถทำให้สมบูรณ์แบบ (ด้วยความพยายามอย่างยิ่งใหญ่) และสิ่งที่น่าสงสัยคืออะไร หลังอาจรวมถึงบางสิ่งบางอย่างซึ่งขึ้นอยู่กับทางเลือกที่แท้จริงของการที่ถูกผูกไว้ชื่อ (ดังนั้นเราจะไม่ได้ทำงานจริงๆ "ถึง" ตามที่สัญญา!) ในกรณีดังกล่าวการตรวจสอบจะสอบถามรายละเอียดเพิ่มเติมเพื่อให้มั่นใจได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.