สำหรับการพิสูจน์ความถูกต้องฉันกำลังมองหาแนวคิดที่ใช้งานได้ของความเท่าเทียมโปรแกรมสำหรับระบบพิมพ์บริสุทธิ์ (PTS) ของ Barendregt; หายไปนั้นสำหรับระบบประเภทที่เฉพาะเจาะจงเพียงพอ เป้าหมายของฉันคือใช้ความคิดไม่ใช่เพื่อตรวจสอบเพื่อประโยชน์ของตัวเอง
ความคิดนี้ควรจะเป็น " extensional " - โดยเฉพาะอย่างยิ่งเพื่อพิสูจน์ว่ามันควรจะเพียงพอที่จะพิสูจน์ว่าสำหรับค่าทั้งหมดของประเภทที่เหมาะสมt 1v
ความเท่าเทียมกันทาง Denotational
ความเท่าเทียมกันทาง Denotational สามารถตอบสนองความต้องการทั้งหมดได้อย่างง่ายดาย แต่ความหมายเชิง Denotational สำหรับ PTS ตามอำเภอใจนั้นค่อนข้างท้าทาย - มันดูเหมือนยากสำหรับระบบ F
บริบท / การเทียบเท่าเชิงสังเกตการณ์
ทางเลือกที่ชัดเจนคือรูปแบบต่าง ๆ ของการเทียบเคียงบริบท (สองเงื่อนไขเทียบเท่าหากไม่มีบริบทพื้นดินสามารถแยกแยะพวกเขาได้) แต่คำจำกัดความนั้นไม่สามารถใช้งานได้ทันที บทแทรกที่หลากหลายนั้นไม่สำคัญมากที่จะพิสูจน์ พวกเขาได้รับการพิสูจน์แล้วสำหรับ PTS หรือไม่? อีกทางหนึ่งทฤษฎีจะเป็น "ส่วนขยายที่ชัดเจน" หรือมีเหตุผลที่เชื่อว่าทฤษฎีจะแตกต่างกันอย่างมีนัยสำคัญหรือไม่?
แก้ไข: ฉันไม่ได้พูดสิ่งที่ยากข้างต้น
ส่วนที่ง่าย: ความหมาย
การนิยามความเท่าเทียมไม่ยากเกินไปและคำจำกัดความปรากฏในเอกสารหลายฉบับ (เริ่มต้นอย่างน้อยจากการศึกษาของ PCF ของ Plotkin 1975 หากไม่ใช่ก่อนหน้านี้แหล่งที่มาอาจเป็นวิทยานิพนธ์ปริญญาเอกของ Morris จากปี 1968) เราถ้าสำหรับทุกพื้นบริบท , - นั่นคือและให้เดียวกันผล คุณมีตัวเลือกไม่กี่ตัวเลือกที่นี่พร้อมทางเลือกมากมาย: ตัวอย่างเช่นในภาษาที่ใช้บรรทัดคำสั่งปกติถ้าคุณมีชนิดของธรรมชาติคุณสามารถพูดได้ว่าบริบททางพื้นเป็นตัวที่คืนค่าธรรมชาติแล้วหมายความว่าและ C C [ t 1 ] ≃ C [ t 2 ] C [ t 1 ] C [ t 2 ] a ≃ b a bประเมินเป็นจำนวนเดียวกัน ด้วยการไม่ระบุคำสำหรับภาษาที่สมเหตุสมผลมันก็เพียงพอที่จะใช้ "X terminates" เป็นการสังเกตการณ์เพราะถ้าหากโปรแกรมสองโปรแกรมเทียบเท่ากันเมื่อทำการสังเกตการยุติพวกเขาก็ยังเทียบเท่ากันเมื่อสังเกตผลลัพธ์
ส่วนที่ยาก: การพิสูจน์
อย่างไรก็ตามเอกสารเหล่านั้นมักจะไม่อธิบายว่าการใช้คำจำกัดความนี้ยากเพียงใด การอ้างอิงทั้งหมดด้านล่างแสดงวิธีจัดการกับปัญหานี้ แต่ทฤษฎีที่ต้องการนั้นยากกว่าที่คิด เราจะพิสูจน์ได้อย่างไรว่า ? จริงๆแล้วเราทำการวิเคราะห์กรณีและการเหนี่ยวนำในบริบท? คุณไม่ต้องการทำเช่นนั้น
ในขณะที่มาร์ตินเบอร์เกอร์ชี้ให้เห็นคุณต้องการใช้แทน bisimulation (ทำโดย Pitts) หรือความสัมพันธ์เชิงตรรกะเชิงตรรกะ (ฮาร์เปอร์เรียกง่ายๆว่า "ตรรกะเชิงสมดุล")
ท้ายสุดคุณจะพิสูจน์ความยืดเยื้อได้อย่างไร
ฮาร์เปอร์แก้คำถามเหล่านี้ใน 10 หน้าสำหรับ System T ผ่านความฉลาดและความสัมพันธ์เชิงตรรกะ พิตต์ใช้เวลามากขึ้น บางภาษามีความซับซ้อนมากขึ้น
วิธีจัดการกับสิ่งนี้
จริง ๆ แล้วฉันถูกล่อลวงให้ทำการพิสูจน์ตามเงื่อนไขบนทฤษฎีที่คาดคะเนของความเท่าเทียมกันสำหรับ PTS แต่ทฤษฎีที่แท้จริงจำเป็นต้องมีข้อโต้แย้งที่ไม่น่าสนใจดังนั้นฉันจึงไม่แน่ใจว่าการคาดเดาดังกล่าวจะเกิดขึ้นได้อย่างไร
ฉันรู้ (แม้ว่าจะไม่ได้อยู่ในรายละเอียด) ของงานดังต่อไปนี้:
- Andrew Pitts (ตัวอย่างเช่นใน ATTAPL สำหรับ System F ที่ขยายออกมาและในเอกสารสองสามฉบับเช่นหน้า 58 "ทฤษฎีการปฏิบัติงานตามความเท่าเทียมกันของโปรแกรม")
- พื้นฐานการเขียนโปรแกรมภาษา (บทที่ 47-48) ซึ่งได้รับแรงบันดาลใจจากพิตส์ (แต่อ้างว่ามีหลักฐานที่ง่ายกว่า)
- การศึกษาเชิงตรรกะของความเท่าเทียมโปรแกรม ฉันไม่สามารถหาบทคัดย่อภาษาอังกฤษได้ แต่ดูเหมือนว่าจะใช้ความพยายามอย่างมากกับผลข้างเคียง (การอ้างอิง) ซึ่งดูเหมือนว่าจะมีความซับซ้อนในมุมฉาก