ทำไมต้องมี Proof Checker ใน Proof Carrying Code


9

ในกระดาษคลาสสิก PLDI'98 โดย Necula "การออกแบบและการใช้งานคอมไพเลอร์ที่ได้รับการรับรอง" ตัวตรวจสอบระดับสูงใช้:

  1. VCGen เพื่อสร้างเงื่อนไขการตรวจสอบ (เพรดิเคตความปลอดภัย)
  2. ทฤษฎีตรรกะตรรกะอันดับหนึ่งพิสูจน์ให้เห็นถึงเงื่อนไข
  3. LF Proof Checker เพื่อตรวจสอบขั้นตอน (2)

ฉันสับสนเล็กน้อยตามขั้นตอน (3) ทำไมถึงต้องมีเลย? แค่ (1) และ (2) จะไม่พอเพียง? ทำไมเราไม่เชื่อหลักฐานที่สร้างขึ้นโดยนักพิสูจน์ทฤษฎีบท?

คำตอบ:


19

วัตถุประสงค์ของการตรวจสอบหลักฐานคือการลดฐานการคำนวณที่เชื่อถือได้

โดยมีตัวตรวจสอบหลักฐานไม่จำเป็นต้องมีคอมไพเลอร์และทฤษฎีบทที่ถูกต้อง กระดาษทำให้จุดนี้ในหน้า 3:

Neither the compiler nor the prover need to be correct in order to be guaranteed to   
detect incorrect compiler output. This is a significant advantage since the VCGen and  
the  proof checker are significantly simpler than the compiler and the prover.

เครื่องมือตรวจสอบหลักฐานเป็นเพียงโค้ดสองบรรทัดและสามารถตรวจสอบความถูกต้องได้ด้วยมือ ในทางตรงกันข้ามผู้ตรวจสอบอัตโนมัติที่ทำงานได้ดีมีความซับซ้อนมากและไม่น่าจะถูกต้องถึงแม้ว่าจะมีผู้ทดสอบที่ผ่านการทดสอบและใช้กันอย่างแพร่หลาย แต่ความผิดพลาดจะอยู่ในกรณีขอบซึ่งอาจไม่ใช่เรื่องง่าย ลองดูที่รหัส LOC C ขนาด 30k ซึ่งประกอบไปด้วยLingelingตัวแก้ SAT ที่ล้ำสมัยเพื่อดูว่าผู้พิสูจน์ทฤษฎีบทอัตโนมัติที่ซับซ้อนนั้นมีความซับซ้อนเพียงใด หากไม่มีเครื่องตรวจสอบหลักฐานคุณจะต้องพิสูจน์ให้ถูกต้องว่าบทพิสูจน์ทฤษฎีบทนั้น นี่คือสิ่งที่เราสามารถทำได้ในปี 2558


ฉันประหลาดใจที่หลักฐานที่สร้างโดย ATP สามารถเป็นบั๊กกี้ได้ (ฉันคิดว่า ATP ของอาจไม่สมบูรณ์ แต่ไม่ใช่ unsound / buggy) ฉันได้รับแจ้งน้อยกว่านี้ ฉันยินดีที่จะทราบว่ามีข้อผิดพลาดราคาแพงในการพิสูจน์ที่สร้างโดย ATP
ราม

3
@Ram มีข้อบกพร่องเล็ก ๆ น้อย ๆ มากมายในประวัติศาสตร์ของนักทฤษฎีบทอัตโนมัติที่จริงจัง ดูตัวอย่างเช่นstackoverflow.com/questions/12281085/…หรือประวัติการแก้ไขของเครื่องมือดังกล่าวบน github
ดี้

@Ram นอกเหนือจากคำแนะนำที่ดีของ Cody ฉันขอแนะนำให้เรียนรู้จากประสบการณ์: เขียน ATP เล็กน้อยเช่นตัวแก้ SAT พื้นฐาน สามารถทำได้ในโค้ดไม่กี่บรรทัด จากนั้นลองและทำให้มันทำงานได้ดีโดยการเพิ่มเช่นการเรียนรู้ประโยคการดูตัวอักษรหรือการเลือกฮิวริสติกที่น่าสนใจ ลองคิดถึงประสบการณ์ ...
มาร์ตินเบอร์เกอร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.