คำถามติดแท็ก proof-assistants

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

6
การเรียนรู้ทฤษฎีการพิสูจน์อัตโนมัติ
ฉันกำลังเรียนรู้ทฤษฎีการพิสูจน์โดยอัตโนมัติ / นักแก้ปัญหา / ผู้ช่วยพิสูจน์ด้วยตนเองและโพสต์คำถามเกี่ยวกับกระบวนการเริ่มต้นที่นี่ โปรดทราบว่าหัวข้อเหล่านี้ไม่สามารถย่อยได้ง่ายโดยไม่มีพื้นหลังใน logics (ทางคณิตศาสตร์) หากคุณมีปัญหาเกี่ยวกับคำศัพท์พื้นฐานโปรดอ่านสิ่งเหล่านี้เช่นLogics in Computer Scienceโดย M. Huth และ M. Ryan (โดยเฉพาะบทที่หนึ่งสองและสี่) หรือAn Introduction to Mathematical Logic และ Type Theoryโดย P แอนดรู สำหรับการแนะนำสั้น ๆ ลงในลำดับตรรกะที่สูงขึ้น (HOL) ดูที่นี่ ฉันดูCoqและอ่านบทแรกของการเพิ่มขึ้นของอิซาเบลในหมู่คนอื่น ๆ ; ประเภทของผู้ให้บริการทฤษฎีบทอัตโนมัติ ฉันรู้จัก Prolog มาสองสามทศวรรษแล้วและตอนนี้ฉันได้เรียนรู้ F # ดังนั้น ML, O'Caml และ LISP จึงเป็นโบนัส Haskell เป็นสัตว์ร้ายต่างชนิดกัน …

2
นิยามแบบเรียกซ้ำมากกว่าชนิดอุปนัยที่มีส่วนประกอบซ้อนอยู่
พิจารณาประเภทอุปนัยที่มีเกิดขึ้นซ้ำในบางตำแหน่งที่ซ้อนกัน แต่เป็นบวกอย่างเคร่งครัด ตัวอย่างเช่นต้นไม้ที่มีการ จำกัด การแยกด้วยโหนดโดยใช้โครงสร้างข้อมูลรายการทั่วไปเพื่อจัดเก็บเด็ก ๆ Inductive LTree : Set := Node : list LTree -> LTree. วิธีที่ไร้เดียงสาของการกำหนดฟังก์ชั่นแบบเรียกซ้ำผ่านต้นไม้เหล่านี้โดยการเรียกซ้ำกว่าต้นไม้และรายการต้นไม้ไม่ทำงาน นี่คือตัวอย่างของsizeฟังก์ชันที่คำนวณจำนวนโหนด Fixpoint size (t : LTree) : nat := match t with Node l => 1 + (size_l l) end with size_l (l : list LTree) : nat := match l with …

1
ประเภทของผู้ให้บริการทฤษฎีบทอัตโนมัติ
ฉันเรียนรู้โดยอัตโนมัติพิสูจน์ทฤษฎีบท / แก้ SMT / ผู้ช่วยพิสูจน์ด้วยตัวเองและโพสต์ชุดของคำถามเกี่ยวกับขั้นตอนเริ่มต้นที่นี่ ทฤษฎีบทอัตโนมัติที่เกี่ยวข้องมีข้อพิสูจน์อะไร? ฉันพบบทวิจารณ์ของผู้ให้บริการทฤษฎีบท ปัจจุบันนี้ยังคงอยู่หรือไม่? มีคนใดบ้างที่ยังใช้งานอยู่มากซึ่งปัจจุบันใช้งานนอกเหนือจากกลุ่มที่สร้างขึ้น ค้นหาคำถามต่อไปของซีรีส์ที่นี่

4
มีใครสร้างระบบจริงที่เขียนโปรแกรมคอมพิวเตอร์จากสเปค?
มีใครเคยเขียนระบบ (ซอฟต์แวร์หรือคำอธิบายโดยละเอียดบนกระดาษพร้อมตัวอย่างง่ายๆ) ที่สร้างโปรแกรมคอมพิวเตอร์หรือไม่? ฉันป้อนและสร้างโปรแกรมที่แสดงรายการหมายเลขเฉพาะน้อยกว่า 10 ถูกกำหนดเป็น อาจารย์บอกว่าพวกเขาทำได้ แต่ไม่มีใครให้ตัวอย่างที่สมบูรณ์จริง ๆPr i m e ( x ) ∧ x &lt; 10PRผมม.อี(x)∧x&lt;10Prime(x) \wedge x<10Pr i m e ( x )PRผมม.อี(x)Prime(x)1 &lt; x ∧ ∄ส. t . 1 &lt; A ∧ A &lt; x ∧ x = A × B , พร้อม A, B …

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

2
ทำไมเอ็นจิ้นการอนุมานบางอย่างจึงต้องการความช่วยเหลือจากมนุษย์ในขณะที่บางอันไม่ต้องการ
ฉันเรียนรู้โดยอัตโนมัติพิสูจน์ทฤษฎีบท / แก้ SMT / ผู้ช่วยพิสูจน์ด้วยตัวเองและโพสต์ชุดของคำถามเกี่ยวกับขั้นตอนเริ่มต้นที่นี่ ทำไมผู้พิสูจน์ทฤษฎีบทอัตโนมัติเช่นACL2และนักแก้ปัญหา SMT ไม่ต้องการความช่วยเหลือจากมนุษย์ในขณะที่ผู้ช่วยพิสูจน์เช่นIsabelleและCoqทำอย่างไร ค้นหาคำถามต่อไปของซีรีส์ที่นี่

4
มีพื้นที่เก็บข้อมูลสำหรับลำดับชั้นของการพิสูจน์หรือไม่?
ฉันเป็นผู้ช่วยพิสูจน์การเรียนรู้ด้วยตนเองและตัดสินใจที่จะเริ่มต้นการพิสูจน์ขั้นพื้นฐานและหาทางแก้ไข เนื่องจากการพิสูจน์จะขึ้นอยู่กับการพิสูจน์อื่น ๆ ดังนั้นในการสร้างลำดับชั้นจึงมีที่เก็บของลำดับชั้นของการพิสูจน์หรือไม่? ฉันรู้ว่าฉันสามารถเลือกผู้ช่วยพิสูจน์และวิเคราะห์ไลบรารีเพื่อแยกลำดับชั้นของมันอย่างไรก็ตามถ้าฉันต้องการค้นหาหลักฐานถัดไปในโซ่เพื่อพิสูจน์ว่าฉันไม่สามารถทำได้เมื่อไม่ได้อยู่ในห้องสมุด ในใจของฉันฉันภาพกราฟอาจจะเป็นDAGของทุกที่รู้จักกันเป็นบทพิสูจน์ทางคณิตศาสตร์ที่สามารถแสดงการใช้คำสั่งภาษาอังกฤษไม่ได้แสดงพยานหลักฐานการใช้ภาพ นี่คือแผนที่หลัก (แผนที่ในแง่ของการเริ่มต้นที่จุดหนึ่งและเดินทางไปยังจุดอื่นผ่านจุดกึ่งกลาง) และสำหรับผู้ช่วยพิสูจน์โดยเฉพาะหนึ่งจะมีกราฟย่อยของแผนที่หลัก จากนั้นหากใครต้องการสร้างหลักฐานโดยใช้ผู้ช่วยพิสูจน์ที่พบในต้นแบบไม่ได้อยู่ในกราฟย่อยโดยการเปรียบเทียบกราฟสองกราฟหนึ่งจะได้รับความคิดของงานที่จำเป็นในการสร้างหลักฐานหายไปสำหรับผู้ช่วยพิสูจน์ ฉันทราบว่าการพิสูจน์ทางคณิตศาสตร์นั้นไม่สามารถแปลงได้อย่างง่ายดายสำหรับการใช้งานกับผู้ช่วยการพิสูจน์อย่างไรก็ตามการมีแนวคิดทั่วไปเกี่ยวกับสิ่งที่ต้องทำนั้นดีกว่าไม่มีเลย นอกจากนี้โดยการมีแผนที่หลักฉันสามารถดูว่ามีเส้นทางมากมายจากจุดหนึ่งไปยังอีกแอนทีโอและเลือกเส้นทางที่ตอบสนองได้ดีกว่าสำหรับผู้ช่วยพิสูจน์โดยเฉพาะ แก้ไข ในการค้นหาผมพบว่าบางสิ่งบางอย่างที่คล้ายกันสำหรับฟังก์ชั่นทางคณิตศาสตร์ ฉันไม่พบหลักฐานเพื่อพิสูจน์ที่NIST

1
แนวทาง“ CPS” ได้สร้างความเสียหายอย่างมากต่อประสิทธิภาพใน SML / NJ เหตุผลที่ต้องการ
ในความคิดเห็นต่อการเรียนรู้ F #: หนังสือที่ใช้ภาษาการเขียนโปรแกรมอื่นใดที่สามารถแปลเป็น F # เพื่อเรียนรู้แนวคิดการทำงานได้ Makariusระบุ: โปรดทราบว่าวิธีการ "CPS" ได้สร้างความเสียหายอย่างมากต่อประสิทธิภาพการทำงานใน SML / NJ รูปแบบการประเมินผลทางกายภาพของมันละเมิดสมมติฐานมากเกินไปที่สร้างขึ้นในฮาร์ดแวร์ หากคุณใช้แอปพลิเคชันสัญลักษณ์ขนาดใหญ่ของ SML เช่น Isabelle / HOL SML / NJ พร้อม CPS จะแสดงผลประมาณ ช้ากว่าโพลี / ML 100 เท่าด้วยสแต็กธรรมดา มีคนอธิบายเหตุผลนี้ได้ไหม (โดยเฉพาะอย่างยิ่งกับตัวอย่าง) มีความต้านทานไม่ตรงกันที่นี่หรือไม่?

2
ทฤษฎีบทพิสูจน์ใน Coq
พื้นหลัง ฉันกำลังเรียนความช่วยเหลือ Coq ด้วยตัวเอง จนถึงตอนนี้ฉันได้อ่านCoqของ Yves Bertot อย่างรวดเร็วแล้ว ตอนนี้เป้าหมายของฉันคือการพิสูจน์ผลลัพธ์พื้นฐานบางอย่างเกี่ยวกับตัวเลขธรรมชาติโดยใช้อัลกอริธึมการหารที่เรียกว่าสุดยอด อย่างไรก็ตามฉันได้พบกับความพ่ายแพ้ระหว่างทางไปสู่เป้าหมายนั้น โดยเฉพาะอย่างยิ่งผลลัพธ์ต่อไปนี้ทั้งสองได้พิสูจน์แล้ว (ปุนตั้งใจ) จะยากที่จะพิสูจน์ใน Coq กว่าที่ฉันคิดในตอนแรก ในความเป็นจริงฉันมีหลังจากพยายามหลายครั้งไร้ผลใช้เพื่อพิสูจน์พวกเขาด้วยมือ (ดังแสดงด้านล่าง) ชัดเจนว่าไม่ได้ช่วยให้ฉันมีความเชี่ยวชาญในการจัดการ Coq มากขึ้น นี่คือเหตุผลที่ฉันหันไปฟอรั่มนี้ ความหวังของฉันคือคนในไซต์นี้สามารถและยินดีเพื่อช่วยฉันแปลข้อพิสูจน์ด้านล่างเป็นหลักฐานที่ Coq ยอมรับ ความช่วยเหลือทั้งหมดได้รับการชื่นชมอย่างจริงใจ! ทฤษฎีบท เพื่อทุกสิ่ง x , y∈ Nx,y∈Nx,y \in N x &lt; S( y) ⊂ x &lt; y∨ ฉัน( N, x , y)x&lt;S(y)⊂x&lt;y∨I(N,x,y)\begin{equation} x < S(y) \subset …

1
ระบบประเภทสามารถทำหน้าที่เป็นผู้ช่วยที่พิสูจน์สำหรับฟังก์ชั่นต่างประเทศได้หรือไม่?
ระบุว่า: ภาษาที่มีระบบการพิมพ์ที่แสดงออกมาก (เช่นIdris ) สามารถมีกลไกการหลบหนีเช่นอินเตอร์เฟสของฟังก์ชันต่างประเทศ / unsafePerformIO มีผู้ช่วยที่พิสูจน์ได้ซึ่งสามารถใช้เพื่อพิสูจน์คุณสมบัติบางอย่างของโปรแกรมที่เขียนในภาษาที่ไม่มีระบบชนิดที่สามารถแสดงคุณสมบัติเหล่านั้นได้ การโต้ตอบของ Curry – Howard แสดงให้เห็นว่าการใช้งานการตรวจสอบประเภทของฟังก์ชันที่มีประเภทที่กำหนดสำเร็จนั้นเป็นเครื่องพิสูจน์ว่าประเภทนั้นแสดงออกมาอย่างไร หนึ่งสามารถแสดงหลักฐานที่ไม่น่าสนใจของคุณสมบัติของรหัสภาษาต่างประเทศในระบบชนิดของภาษาพื้นเมือง? ตัวอย่างเช่นสมมติว่าฉันมีฟังก์ชั่น C ที่เรียกว่า stable_qsort ที่เรียงลำดับตัวเลขในวิธีที่ชาญฉลาดและมีประสิทธิภาพมากในขณะที่รักษาลำดับขององค์ประกอบที่เท่ากันอยู่แล้วและโปรแกรม Idris ที่เรียก stable_qsort ผ่าน FFI ของมัน ฟังก์ชั่น C ฉันสามารถพิสูจน์ได้ว่าฟังก์ชั่นไม่ได้เรียงลำดับองค์ประกอบที่เท่ากันสำหรับอินพุตทั้งหมดในรหัส Idris ของฉันแทนที่จะใช้ตัวช่วยพิสูจน์แยกต่างหากหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.