กลับไปหน้าบทความ

อ่าน 5 นาที

อิซาเบลล์ (ผู้ช่วยพิสูจน์อักษร)

โปรแกรมพิสูจน์ทฤษฎีบทอัตโนมัติIsabelle เป็นโปรแกรมพิสูจน์ทฤษฎีบทตรรกะลำดับสูง (HOL)ที่เขียนด้วยภาษา Standard MLและScalaในฐานะ โปรแกรมพิสูจน์ทฤษฎีบทสไตล์ Logic for Computable...

อิซาเบลล์ (ผู้ช่วยพิสูจน์อักษร)

โปรแกรมพิสูจน์ทฤษฎีบทอัตโนมัติIsabelle [ a ] เป็นโปรแกรมพิสูจน์ทฤษฎีบทตรรกะลำดับสูง (HOL)ที่เขียนด้วยภาษา Standard MLและScalaในฐานะ โปรแกรมพิสูจน์ทฤษฎีบทสไตล์ Logic for Computable Functions (LCF) มันใช้แกนตรรกะขนาดเล็ก (เคอร์เนล) เพื่อเพิ่มความน่าเชื่อถือของการพิสูจน์โดยไม่จำเป็นต้องใช้ แต่ยังคงรองรับออบเจ็กต์การพิสูจน์ที่ชัดเจน

Isabelle สามารถใช้งานได้ภายในกรอบระบบที่ยืดหยุ่นซึ่งอนุญาตให้มีการขยายที่ปลอดภัยเชิงตรรกะ ซึ่งประกอบด้วยทั้งทฤษฎีและการใช้งานสำหรับการสร้างโค้ด การจัดทำเอกสาร และการสนับสนุนเฉพาะสำหรับวิธีการเชิงทางการที่ หลากหลาย สามารถมองได้ว่าเป็นสภาพแวดล้อมการพัฒนาแบบบูร ณาการ (IDE) สำหรับวิธีการเชิงทางการ ในช่วงไม่กี่ปีที่ผ่านมา มีการรวบรวมทฤษฎีและการขยายระบบจำนวนมากไว้ในคลังข้อมูลการพิสูจน์เชิงทางการของ Isabelle ( Isabelle AFP ) [ 2 ]

อิซาเบลล์ได้รับการตั้งชื่อโดยลอว์เรนซ์ พอลสันตามชื่อลูกสาวของเจอราร์ด ฮูเอต์[ 3 ]

โปรแกรมพิสูจน์ทฤษฎีบทอิซาเบลล์เป็นซอฟต์แวร์ฟรีเผยแพร่ภายใต้ใบอนุญาต BSDฉบับ ปรับปรุง

คุณสมบัติ

Isabelle เป็นภาษาโปรแกรมแบบทั่วไป: มันให้เมตาตรรกะ ( ทฤษฎีประเภทแบบ อ่อน ) ซึ่งใช้ในการเข้ารหัสตรรกะเชิงวัตถุ เช่นตรรกะอันดับหนึ่ง (FOL) ตรรกะอันดับสูง (HOL) หรือทฤษฎีเซต Zermelo–Fraenkel (ZFC) ตรรกะเชิงวัตถุที่ใช้กันอย่างแพร่หลายที่สุดคือ Isabelle/HOL แม้ว่าการพัฒนาทฤษฎีเซตที่สำคัญจะเสร็จสมบูรณ์ใน Isabelle/ZF ก็ตาม วิธีการพิสูจน์หลักของ Isabelle คือเวอร์ชันอันดับสูงของresolution ซึ่งอิงจาก การรวมอันดับสูง

แม้จะเป็นแบบโต้ตอบ แต่ Isabelle ก็มีเครื่องมือการให้เหตุผลอัตโนมัติที่มีประสิทธิภาพ เช่น เครื่องมือ เขียนเทอมใหม่และตัวพิสูจน์ตารางขั้นตอนการตัดสินใจต่างๆ และผ่านทางอินเทอร์เฟซการพิสูจน์อัตโนมัติSledgehammer ตัวแก้ ปัญหาความสามารถในการทำให้เป็นจริงภายนอกโมดูลทฤษฎี (SMT) (รวมถึงCVC4 ) และตัวพิสูจน์ทฤษฎีบทอัตโนมัติแบบอิงความละเอียด (ATP) รวมถึงE , SPASSและVampire ( วิธีการพิสูจน์ Metis [ b ]สร้างการพิสูจน์ความละเอียดที่สร้างโดย ATP เหล่านี้ขึ้นใหม่) [ 4 ]นอกจากนี้ยังมี ตัวค้นหา แบบจำลอง สองตัว ( ตัว สร้างตัวอย่างค้าน ): Nitpick [ 5 ]และNunchaku [ 6 ]

Isabelle มีโลเคิลซึ่งเป็นโมดูลที่จัดโครงสร้างการพิสูจน์ขนาดใหญ่ โลเคิลจะกำหนดประเภท ค่าคงที่ และสมมติฐานภายในขอบเขตที่กำหนด[ 5 ]เพื่อไม่ให้ต้องทำซ้ำสำหรับเลมมาทุก ตัว

Isar (" การให้เหตุผลกึ่งอัตโนมัติที่เข้าใจได้ ") เป็นภาษาการพิสูจน์อย่างเป็นทางการของ Isabelle ซึ่งได้รับแรงบันดาลใจจากระบบMizar [ 5 ]

ตัวอย่างการพิสูจน์

Isabelle อนุญาตให้เขียนการพิสูจน์ได้สองรูปแบบ คือแบบขั้นตอนและแบบประกาศการพิสูจน์แบบขั้นตอนจะระบุชุดของกลยุทธ์ ( ฟังก์ชัน/ขั้นตอน การพิสูจน์ทฤษฎีบท ) ที่จะนำไปใช้ แม้ว่าจะสะท้อนถึงขั้นตอนที่นักคณิตศาสตร์อาจนำไปใช้ในการพิสูจน์ผลลัพธ์ แต่โดยทั่วไปแล้วจะอ่านยากเนื่องจากไม่ได้อธิบายผลลัพธ์ของขั้นตอนเหล่านี้ รูปแบบนี้ถือว่า "เป็นอันตราย" ในเอกสารของ Isabelle [ 7 ]

ในทางกลับกัน การพิสูจน์แบบประกาศ (ซึ่งได้รับการสนับสนุนโดยภาษาพิสูจน์ของอิซาเบลล์ Isar) จะระบุการดำเนินการทางคณิตศาสตร์ที่ต้องดำเนินการจริง ๆ ดังนั้นจึงอ่านและตรวจสอบได้ง่ายกว่าสำหรับมนุษย์

ตัวอย่างเช่น การพิสูจน์โดยการขัดแย้งในภาษาอิสาร์ที่ระบุว่ารากที่สองของสองไม่ใช่จำนวนตรรกยะสามารถเขียนได้ดังนี้

ทฤษฎีบท sqrt2_not_rational: "sqrt 2 ∉ ℚ" พิสูจน์ให้ ?x = "sqrt 2" สมมติว่า"?x ∈ ℚ" แล้วจะได้ mn :: nat โดยที่ sqrt_rat: "¦?x¦ = m / n" และ lowest_terms: "coprime m n" โดย (rule Rats_abs_nat_div_natE) ดังนั้น"m^2 = ?x^2 * n^2" โดย (auto simp add: power2_eq_square) ดังนั้นสมการ: "m^2 = 2 * n^2" โดยใช้ of_nat_eq_iff power2_eq_square โดย fastforce ดังนั้น"2 dvd m^2" โดย simp ดังนั้น"2 dvd m" โดย simp มี"2 dvd n" พิสูจน์ - จาก‹2 dvd m› ได้ k โดยที่"m = 2 * k" .. ด้วยสมการมี"2 * n^2 = 2^2 * k^2" โดยใช้ simp ดังนั้น"2 dvd n^2" โดยใช้ simp ดังนั้น"2 dvd n" โดยใช้ simp พิสูจน์แล้วด้วย‹2 dvd m› มี"2 dvd gcd m n" โดยใช้ (rule gcd_greatest) ด้วย lowest_terms มี"2 dvd 1" โดยใช้ simp ดังนั้นเท็จ โดย ใช้ odd_one โดย ใช้ blast พิสูจน์แล้ว

แอปพลิเคชัน

Isabelle ถูกนำมาใช้เพื่อช่วยสนับสนุนวิธีการที่เป็นทางการสำหรับการกำหนดคุณสมบัติ การพัฒนา และการตรวจสอบระบบซอฟต์แวร์และฮาร์ดแวร์

Isabelle ถูกนำมาใช้เพื่อสร้างทฤษฎีบทจำนวนมากจากคณิตศาสตร์และวิทยาศาสตร์คอมพิวเตอร์อย่างเป็นทางการ เช่นทฤษฎีบทความสมบูรณ์ของ Gödelทฤษฎีบทของ Gödel เกี่ยวกับความสอดคล้องของสัจพจน์ของการเลือก ทฤษฎีบท จำนวนเฉพาะความถูกต้องของโปรโตคอลความปลอดภัยและคุณสมบัติของความหมายของภาษาโปรแกรมหลักฐานอย่างเป็นทางการจำนวนมากได้รับการเก็บรักษาไว้ในคลังหลักฐานอย่างเป็นทางการ ซึ่ง (ณ ปี 2019) มีบทความอย่างน้อย 500 บทความพร้อมหลักฐานมากกว่า 2 ล้านบรรทัด[ 8 ]

  • ในปี 2552 โครงการ L4.verified ที่NICTAได้สร้างหลักฐานอย่างเป็นทางการครั้งแรกเกี่ยวกับความถูกต้องในการทำงานของเคอร์เนลระบบปฏิบัติการอเนกประสงค์: [ 9 ]ไมโครเคอร์เนล seL4 (secure embedded L4 ) หลักฐานนี้ถูกสร้างและตรวจสอบใน Isabelle/HOL และประกอบด้วยสคริปต์หลักฐานมากกว่า 200,000 บรรทัดเพื่อตรวจสอบโค้ด C จำนวน 7,500 บรรทัด การตรวจสอบครอบคลุมโค้ด การออกแบบ และการใช้งาน และทฤษฎีบทหลักระบุว่าโค้ด C นั้นใช้งานตามข้อกำหนดอย่างเป็นทางการของเคอร์เนลได้อย่างถูกต้อง หลักฐานนี้พบข้อบกพร่อง 144 รายการในโค้ด C เวอร์ชันแรกของเคอร์เนล seL4 และปัญหาประมาณ 150 รายการในแต่ละด้านของการออกแบบและข้อกำหนด

ทางเลือกอื่นๆ

มีหลายภาษาและระบบที่ให้ฟังก์ชันการทำงานที่คล้ายคลึงกัน:

หมายเหตุ

  1. / ˌ ɪ z ə ˈ b ɛ l /
  2. / ˈ m t ɪ s /

อ่านเพิ่มเติม

  • Lawrence C. Paulson , "รากฐานของตัวพิสูจน์ทฤษฎีบททั่วไป" , วารสารการให้เหตุผลอัตโนมัติ , เล่ม 5, ฉบับที่ 3 (กันยายน 1989), หน้า: 363–397, ISSN 0168-7433 
  • Lawrence C. Paulson และTobias Nipkow , "คู่มือการใช้งานและคำแนะนำการใช้งาน Isabelle" , 1990
  • MA Ozols, KA Eastaughffe และ A. Cant, "DOVE: เครื่องมือสำหรับการตรวจสอบและประเมินผลเชิงออกแบบ" , รายงานการประชุม AMAST 97 , M. Johnson บรรณาธิการ, ซิดนีย์ ประเทศออสเตรเลีย. Lecture Notes in Computer Science (LNCS) เล่มที่ 1349, Springer Verlag, 1997.
  • Tobias Nipkow, Lawrence C. Paulson, Markus Wenzel, "Isabelle/HOL – ตัวช่วยพิสูจน์สำหรับตรรกะลำดับสูง" , 2020
  • เว็บไซต์อย่างเป็นทางการ
  • อิซาเบลล์บน Stack Overflow
  • คลังเอกสารพิสูจน์อักษรอย่างเป็นทางการ
  • อิสาร์มาธลิบ

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อิซาเบลล์ (ผู้ช่วยพิสูจน์อักษร)

โปรแกรมพิสูจน์ทฤษฎีบทอัตโนมัติIsabelle เป็นโปรแกรมพิสูจน์ทฤษฎีบทตรรกะลำดับสูง (HOL)ที่เขียนด้วยภาษา Standard MLและScalaในฐานะ โปรแกรมพิสูจน์ทฤษฎีบทสไตล์ Logic for Computable...

คุณสมบัติ

Isabelle เป็นภาษาโปรแกรมแบบทั่วไป: มันให้ เมตาตรรกะ ( ทฤษฎีประเภทแบบ อ่อน ) ซึ่งใช้ในการเข้ารหัสตรรกะเชิงวัตถุ เช่น ตรรกะอันดับหนึ่ง (FOL) ตรรกะอันดับสูง (HOL) หรือ ทฤษฎีเซต Zermelo–Fraenkel (ZFC) ตรรกะเชิงวัตถุที่ใช้กันอย่างแพร่หลายที่สุดคือ Isabelle/HOL...

ตัวอย่างการพิสูจน์

Isabelle อนุญาตให้เขียนการพิสูจน์ได้สองรูปแบบ คือ แบบขั้นตอน และ แบบประกาศ การพิสูจน์แบบขั้นตอนจะระบุชุดของ กลยุทธ์ ( ฟังก์ชัน/ขั้นตอน การพิสูจน์ทฤษฎีบท ) ที่จะนำไปใช้ แม้ว่าจะสะท้อนถึงขั้นตอนที่นักคณิตศาสตร์อาจนำไปใช้ในการพิสูจน์ผลลัพธ์...

แอปพลิเคชัน

Isabelle ถูกนำมาใช้เพื่อช่วยสนับสนุน วิธีการที่เป็นทางการ สำหรับการกำหนดคุณสมบัติ การพัฒนา และ การตรวจสอบ ระบบซอฟต์แวร์และฮาร์ดแวร์