ฉันจะเรียนรู้ทฤษฎีพื้นฐานของผู้ช่วยพิสูจน์ Coq ได้อย่างไร


40

ฉันกำลังจะไปดูรายละเอียดหลักสูตรที่CIS 500: ฐานรากซอฟต์แวร์และแบบฝึกหัดสนุกมาก ฉันเป็นแค่ชุดออกกำลังกายชุดที่สาม แต่ฉันต้องการทราบเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้นเมื่อฉันใช้กลยุทธ์เพื่อพิสูจน์สิ่งต่าง ๆ เช่นforall (n m : nat), n + n = m + m -> n = m.

คำตอบ:


32

ที่เดียวที่จะเริ่มคือคู่มืออ้างอิง Coq ( pdf ) บทที่ 4 อธิบายถึงตรรกะพื้นฐานของ Coq และท้ายที่สุดทุกอย่างขึ้นอยู่กับสิ่งนี้ มันเรียกว่าแคลคูลัสของการสร้างอุปนัย (co) และเอกสารจำนวนมากอธิบาย รับหนังสือ Coq'Art ทฤษฎีบทการพิสูจน์และการพัฒนาโปรแกรมเชิงโต้ตอบช่วยแนะนำการใช้ Coq'Art แบบสบาย ๆ แต่ไม่ถูกกับ Coq

หากต้องการเรียนรู้เกี่ยวกับวิธีการทำงานของยุทธวิธีให้ดูคำถามก่อนหน้านี้: งาน'ยุทธวิธี' ในผู้ช่วยพิสูจน์ได้อย่างไร

เพื่อสร้างทฤษฎีที่จำเป็นที่คุณจะต้องเรียนรู้เกี่ยวกับประเภททฤษฎี ส่วนใหญ่ที่เกี่ยวข้องอย่างใกล้ชิดกับทฤษฎีพื้นฐานผู้ช่วยพิสูจน์น่าจะเป็นต่อทฤษฎีมาร์ติน - Löf ประเภทของทฤษฎี Intutionisticโน้ต (หรือหนังสือ ) หรือหนังสือการเขียนโปรแกรมในมาร์ติน - Löfประเภททฤษฎีซึ่งเป็นเรื่องจริงเกี่ยวกับการเขียน มุมมองการเขียนโปรแกรมภาษาในทฤษฎีประเภทสามารถได้รับจากเพียร์ซของประเภทและการเขียนโปรแกรมภาษา การพิสูจน์และประเภทของ Girard et al ซึ่งยังกล่าวถึงความสำคัญของการติดต่อCurry-Howardก็เป็นอีกหนึ่งการอ้างอิงที่ยอดเยี่ยม ถ้าอย่างนั้นคุณก็น่าจะพร้อมแล้วที่จะอ่าน Coquand และ Huetแคลคูลัสของการก่อสร้าง ในที่สุดไล่ล่าการอ้างอิงบางอย่างที่ด้านหลังของคู่มือ Coq

มีผู้ช่วยพิสูจน์คนอื่น ๆHOL, NuPRL, Mizar, Twelf เป็นต้นและพวกเขาก็มีทฤษฎีของพวกเขาเช่นกันดังนั้นคุณสามารถเรียนรู้ได้มากมายเช่นกันโดยการอ่านในทิศทางนั้น

ในที่สุดสำหรับภาพรวมของประวัติศาสตร์และอนาคตของผู้ช่วยพิสูจน์ดูบทความล่าสุดโดย Herman Geuvers


5
รายการที่ดี ฉันจะเพิ่มคำสั่งการอ่าน TAPL ของ Pierce ครอบคลุมพื้นหลัง ส่วนที่เหลือจะไม่สมเหตุสมผลจนกว่าคุณจะสามารถพิมพ์กฎได้อย่างคล่องแคล่ว บทที่ 2 ของATTAPLแนะนำประเภทที่สัมพันธ์กันค่อนข้างเบา ๆ จากนั้นคุณสามารถอ่านบทที่ 4 ของคู่มือ Coq ซึ่งมีกฎการพิมพ์ (คุณต้องตรวจสอบบรรณานุกรมสำหรับสิ่งที่ขั้นสูงบางอย่างเช่นกฎที่แน่นอนสำหรับการเรียกซ้ำ) ในขณะเดียวกันหนังสือ Coq'Art มีมุมมองที่เป็นประโยชน์มากกว่า เคล็ดลับโบนัส: เป็นShow Treecoq
Gilles 'หยุดชั่วร้าย'

2
ฉันเป็นคนที่อยู่ในตำแหน่งเดียวกันกับ OP มากกว่าหรือน้อยกว่า หลังจากการทดลองบางอย่างในที่สุดฉันก็พบคำสั่งซื้อ 1) เรียนรู้การเขียนโปรแกรมใช้งานได้ 2) อ่าน TAPL 3) อ่านเกี่ยวกับประเภทที่พึ่งพาใน ATTAPL เพื่อให้ทำงานได้ดีกว่าสิ่งอื่น ๆ ดีใจที่รู้ว่าฉันอยู่บนเส้นทางที่ถูกต้องโดยประมาณ
John Salvatier

1
ฉันอยู่ที่นี่ด้วยและได้รับหนังสือ Coq'Art มันสมบูรณ์แบบสำหรับการทำความเข้าใจพวกเขาเข้าไปในชั้นเชิงทุกรายละเอียดและอธิบายเวลาและวิธีการใช้งาน หนังสือเล่มนี้ยังให้คำแนะนำคุณอย่างรวดเร็วผ่านทุกกฎฐานในทฤษฎีประเภทการสอนสัญกรณ์และวิธีการใช้ใน Coq รักหนังสือเล่มนี้
Lance Pollard

15

สำหรับแคลคูลัสแลมบ์ดา, ปรีชาเชิงตรรกะ, ระบบพิสูจน์ต่าง ๆ และ isomorphism Curry-Howard ซึ่งเป็นส่วนหนึ่งของภูมิหลังทางคณิตศาสตร์ Coq ฉันขอแนะนำ"การบรรยายเกี่ยวกับ Curry-Howard Isomorphism" (โดย P. Urzyczyn และ M. Sørensen)


วันนี้เราดูเหมือนจะมีความยาวของคลื่นเท่ากัน ;-)
Marc Hamann

มันน่าจะเป็นวัน Curry-Howard: cstheory.stackexchange.com/questions/5848/…
เดฟคลาร์ก

6

หนังสือของ Luo เกี่ยวกับแคลคูลัสเสริมของการก่อสร้างก็เป็นข้อมูลอ้างอิงที่ดีเช่นกัน ECC ค่อนข้างมีอิทธิพลในการออกแบบทฤษฎีประเภทของ Coq


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