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

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

3
กับตื้นลึก Embeddings
เมื่อเข้ารหัสตรรกะลงในตัวช่วยพิสูจน์เช่น Coq หรือ Isabelle ต้องมีการเลือกระหว่างการใช้ตื้นและการฝังลึก ในการฝังสูตรตรรกะตื้น ๆ จะถูกเขียนโดยตรงในตรรกะของทฤษฎีบทพิสูจน์ในขณะที่ในสูตรตรรกะฝังลึกจะแสดงเป็นประเภทข้อมูล อะไรคือข้อดีและข้อ จำกัด ของวิธีการต่าง ๆ มีอะไรบ้าง มีแนวทางใดบ้างในการพิจารณาว่าจะใช้อย่างไร เป็นไปได้หรือไม่ที่จะสลับระหว่างการเป็นตัวแทนสองประการในรูปแบบที่เป็นระบบ? ฉันต้องการเข้ารหัส logics ที่เกี่ยวข้องกับความปลอดภัยต่าง ๆ เป็น Coq และฉันสงสัยว่าข้อดีข้อเสียของวิธีการที่แตกต่างกันคืออะไร

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

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

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

1
มีระบบพิสูจน์อัตโนมัติที่สมเหตุสมผลสำหรับทฤษฎีบท TCS หรือไม่?
สมมติว่าฉันต้องการทำข้อพิสูจน์ของทัวริงให้เป็นทางการเกี่ยวกับปัญหาการหยุดชะงักเพื่อให้เครื่องสามารถตรวจสอบได้ ระบบพิสูจน์ทฤษฎีบทอัตโนมัติที่เป็นที่รู้จัก ได้แก่ Mizar, Coq และ HOL4 ฉันดาวน์โหลดและทดลองใช้ Coq แต่ไม่มีห้องสมุดสำหรับเครื่องทัวริง ฉันคิดว่าต้องเขียนรหัสด้วยตัวเอง แต่พบว่าการสอนไม่เพียงพอและภาษายากต่อการรับ คำถามของฉันคือ: มีผู้พิสูจน์ทฤษฎีบทอัตโนมัติที่ดีในการพิสูจน์ทฤษฎีบทที่เกี่ยวข้องกับเครื่องทัวริงหรือไม่? ฉันจะพิจารณาทฤษฎีบทดังกล่าวว่า "ดี" ถ้ามันสามารถพิสูจน์ให้เห็นถึงความลังเลของปัญหาการลังเลโดยใช้ห้องสมุดที่มีอยู่แล้ว ฉันจะพิจารณามันให้ดียิ่งขึ้นถ้ามันค่อนข้างง่ายต่อการรับ (สำหรับบันทึกฉันมักจะไม่ได้มีปัญหากับภาษาการเขียนโปรแกรม) ขอบคุณ ฟิลิป

1
อัลกอริทึมที่น่าสนใจในการทำให้เป็นทางการของทฤษฎีบท Feit-Thompson?
ดูเหมือนว่าจอร์จ Gonthier และทำงานร่วมกันของเขาได้เสร็จสิ้นอย่างเป็นทางการสั่งทฤษฎีบทแปลก ในงานก่อนหน้านี้ของเขาเกี่ยวกับทฤษฎีบทสี่สีกอนเทียร์ได้คิดค้นอัลกอริธึมใหม่ ๆ (ส่วนใหญ่เป็นสายพันธุ์ของ BDDs และอัลกอริธึมกราฟ) ซึ่งโดยเฉพาะอย่างยิ่งคล้อยตามการยืนยันอย่างเป็นทางการ เนื่องจากเขาบอกว่าเขายังคงใช้รูปแบบการสะท้อนขนาดเล็กของการตรวจสอบในการทำงานกับทฤษฎีกลุ่ม จำกัด ฉันยังสงสัยว่าเทคนิคอัลกอริธึมใหม่ที่พัฒนาขึ้นระหว่างการพัฒนานี้คืออะไร?

5
สงสัยเกี่ยวกับการพิสูจน์ความสมบูรณ์ของคอมพิวเตอร์ช่วยด้วย NP
ในบทความ"ความซับซ้อนของปัญหาความพึงพอใจ"โดย Thomas J. Schaefer ผู้เขียนได้กล่าวว่า This raises the intriguing possibility of computer-assisted NP-completeness proofs. Once the researcher has established the basic framework for simulating conjunctions of clauses, the relational complexity could be explored with the help of a computer. The computer would be instructed to randomly generate various input configurations …

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

1
พิสูจน์การไม่เกี่ยวข้องใน Coq?
มีวิธีการพิสูจน์ทฤษฎีบทต่อไปนี้ใน Coq หรือไม่? Theorem bool_pirrel : forall (b : bool) (p1 p2 : b = true), p1 = p2. แก้ไข : ความพยายามที่จะให้คำอธิบายสั้น ๆ สำหรับ "สิ่งที่ไม่เกี่ยวข้องพิสูจน์หลักฐาน" (แก้ไขฉันบางคนถ้าฉันผิดหรือไม่ถูกต้อง) แนวคิดพื้นฐานคือในโลกของข้อเสนอ (หรือPropเรียงลำดับใน Coq) สิ่งที่คุณ (และคุณควร) สนใจจริงๆคือการพิสูจน์ข้อเสนอไม่ใช่ข้อพิสูจน์ของมันอาจมีจำนวนมาก (หรือไม่มี) ในกรณีที่คุณมีการพิสูจน์หลายจากจุด provability ในมุมมองของพวกเขามีความเท่าเทียมกันในแง่ที่ว่าพวกเขาพิสูจน์เรื่องเดียวกัน ดังนั้นความแตกต่างของพวกเขาจึงไม่เกี่ยวข้อง สิ่งนี้แตกต่างจากมุมมองการคำนวณที่คุณสนใจจริง ๆ ถึงความแตกต่างของคำสองคำเช่นโดยทั่วไปคุณไม่ต้องการให้ผู้อยู่อาศัยทั้งสองboolประเภท (หรือSetในคำพูดของ Coq) คือtrueและfalseเท่าเทียมกัน แต่ถ้าคุณใส่ไว้ในPropนั้นพวกเขาจะได้รับการปฏิบัติที่เท่าเทียมกัน

1
ทฤษฎีประเภท Homotopy อย่างเป็นทางการในไอดริส
การดูที่บล็อกประเภททฤษฎี homotopyนั้นสามารถหาห้องสมุดจำนวนมากได้อย่างเป็นทางการซึ่งส่วนใหญ่เป็นทฤษฎีประเภท Homotopy ใน Agda และ Coq มีใครบ้างไหมที่รู้ว่ามีความพยายามที่คล้ายกันในการทำเป็นทางการ HoTT ในIdris ?

3
อะไรคือบทบาทของ predicativity ในคำจำกัดความอุปนัยในทฤษฎีประเภท?
บ่อยครั้งที่เราต้องการกำหนดวัตถุตามกฎการอนุมาน กฎเหล่านั้นแสดงถึงฟังก์ชั่นการสร้างFซึ่งเมื่อมันเป็นเนื่องถัวเฉลี่ยจุดอย่างน้อยคงμ F เราใช้: = μ Fจะเป็น "นิยามอุปนัย" ของ ยิ่งกว่านั้น monotonicity ของFทำให้เราสามารถให้เหตุผลกับ "หลักการของการเหนี่ยวนำ" เพื่อกำหนดว่าเมื่อใดที่เซตประกอบด้วยA (เช่นเมื่อสมบัติครอบคลุมทั่วA )A∈UA∈ยูA \in UFFFμFμF\mu FA:=μFA=μFA := \mu FAAAFFFAAAAAA ใน Coq ตรงนี้เพื่อเขียนนิยามของกับคำแนะนำอย่างชัดเจน ในขณะที่คำจำกัดความนี้หมายถึงฟังก์ชั่นเฉพาะF , ฟังก์ชั่นนั้นไม่จำเป็นต้องเป็นแบบโมโนโทนิก Coq จึงใช้การตรวจสอบวากยสัมพันธ์บางอย่างเพื่อรับประกัน "ความมีรูปแบบที่ดี" ของคำจำกัดความ สำหรับการประมาณค่าบางอย่างมันจะปฏิเสธการเกิดขึ้นของAในตำแหน่งลบในประเภทของคำแนะนำInductiveผมndยูคเสื้อผมโวลต์อี\mathtt{Inductive}AAAFFFAAA (หากความเข้าใจของฉันถึงจุดนี้มีข้อบกพร่องโปรดแก้ไขฉัน!) ก่อนคำถามบางคำถามในบริบทของ Coq: 1) ไม่ตรวจสอบประโยคใน Coq เพียงทำหน้าที่เพื่อให้มั่นใจว่านิยามของเป็นกริยา ? (ถ้าเป็นเช่นนั้นการไม่แสดงอารมณ์นั้นเป็นวิธีเดียวที่นิยามจะไม่ถูกต้องหรือไม่) หรือมันกำลังตรวจสอบความน่าเบื่อหน่ายหรือไม่? (ตามลําดับคือสิ่งที่ไม่สามารถพูดซ้ำได้สิ่งที่อาจฆ่ามัน)AAA 2) ไม่เช่นที่เกิดขึ้นในเชิงลบของจำเป็นต้องหมายความว่าความหมายก็คือ impredicative / ไม่ใช่ต่อเนื่อง? หรือ …

2
กำจัด cofix ในการพิสูจน์ Coq
ในขณะที่พยายามพิสูจน์คุณสมบัติพื้นฐานบางอย่างโดยใช้ประเภทเหรียญใน Coq ฉันยังคงพบปัญหาต่อไปนี้และฉันไม่สามารถแก้ไขได้ ฉันกลั่นปัญหาให้เป็นสคริปต์ Coq อย่างง่ายดังนี้ ประเภทต้นไม้กำหนดอาจจะเป็นต้นไม้ที่ไม่มีที่สิ้นสุดที่มีสาขาที่มีข้อความที่มีองค์ประกอบของประเภท สาขาไม่จำเป็นต้องกำหนดไว้สำหรับองค์ประกอบทั้งหมดของ ค่าUnivเป็นต้นไม้ที่ไม่มีที่สิ้นสุดกับทุกสาขาที่กำหนดไว้เสมอ isUnivทดสอบไม่ว่าจะเป็นต้นไม้ที่ได้รับจะเท่ากับUniv บทแทรกฯ ระบุว่าUnivตอบสนองความต้องการisUnivได้อย่างแน่นอน Parameter A : Set. CoInductive Tree: Set := Node : (A -> option Tree) -> Tree. Definition derv (a : A) (t: Tree): option Tree := match t with Node f => f a end. CoFixpoint Univ : …

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

1
วิธีการกำหนดฟังก์ชั่น inductively สองข้อโต้แย้งใน Coq?
ฉันจะโน้มน้าวใจให้ Coq ได้อย่างไรว่าฟังก์ชั่นวนซ้ำที่ระบุด้านล่างนี้ยุติลง? ฟังก์ชั่นใช้เวลาสองข้อโต้แย้งอุปนัย การสอบถามซ้ำจะสิ้นสุดลงเนื่องจากการโต้แย้งใด ๆ ถูกย่อยสลาย ฟังก์ชั่นนี้ใช้ต้นไม้สองต้นเป็นอินพุต Inductive Tree := | Tip: Tree | Bin: Tree -> Tree -> Tree. บนต้นไม้ฉันชอบทำรูปแบบการเหนี่ยวนำต่อไปนี้ Inductive TreePair := | TipTip : TreePair | TipBin : Tree -> Tree -> TreePair | BinTip : Tree -> Tree -> TreePair | BinBin : TreePair -> …

6
ผู้ช่วยพิสูจน์สำหรับการเขียนคณิตศาสตร์
ฉันต้องการเขียนหลักฐานทางคณิตศาสตร์โดยใช้ผู้ช่วยพิสูจน์ ทุกอย่างจะถูกเขียนโดยใช้ตรรกะลำดับแรก (มีความเสมอภาค) และการหักตามธรรมชาติ พื้นหลังเป็นทฤษฎีเซต (ZF) ตัวอย่างเช่นฉันจะเขียนหลักฐานต่อไปนี้ได้อย่างไร ความจริง: ∀ x ∀ y( x = y↔ ∀ Z( z∈ x ↔ z∈ y) )∀x∀y(x=y↔∀z(z∈x↔z∈y))\forall x\forall y(x=y\leftrightarrow\forall z(z\in x\leftrightarrow z\in y)) ทฤษฎีบท: ∀ x ∀ y( ∀ z( z∉ x ) ∧ ∀ Z( z∉ y) → x = y)∀x∀y(∀z(z∉x)∧∀z(z∉y)→x=y)\forall x\forall y(\forall …

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