การทำความเข้าใจสุภาษิตในการตรวจสอบอย่างเป็นทางการ
Provers คือชุดเครื่องมือและเทคนิคที่ใช้ในการตรวจสอบอย่างเป็นทางการเพื่อพิสูจน์ความถูกต้องของระบบซอฟต์แวร์และฮาร์ดแวร์ เครื่องพิสูจน์สามารถใช้ในการตรวจสอบคุณสมบัติต่างๆ เช่น ความปลอดภัย ความมีชีวิตชีวา และความเป็นธรรมของระบบ และสามารถนำไปใช้ในระดับต่างๆ ของนามธรรม ตั้งแต่ซอร์สโค้ดจนถึงการออกแบบระดับสูง
มีเครื่องพิสูจน์หลายประเภท รวมไปถึง: เอ้า1. ตัวตรวจสอบโมเดล: เป็นเครื่องมืออัตโนมัติที่ใช้อัลกอริธึมการตรวจสอบโมเดลเพื่อตรวจสอบคุณสมบัติของระบบกับสูตรลอจิกชั่วคราว ตัวอย่างของตัวตรวจสอบโมเดล ได้แก่ Spin, NuSMV และ dReach.
2 ตัวช่วยพิสูจน์อักษร: เป็นเครื่องมือที่ให้กรอบการทำงานสำหรับการสร้างและตรวจสอบการพิสูจน์ทางคณิตศาสตร์ ตัวอย่างของผู้ช่วยพิสูจน์ ได้แก่ Coq, Isabelle และ HOL Light.
3 ระบบประเภท: คือระบบที่กำหนดประเภทให้กับนิพจน์ของโปรแกรมตามโครงสร้างและพฤติกรรม ระบบประเภทสามารถใช้เพื่อพิสูจน์ความถูกต้องของโปรแกรมโดยการตรวจสอบว่าเป็นไปตามข้อจำกัดบางประเภทหรือไม่ ตัวอย่างของระบบประเภท ได้แก่ แคลคูลัสแลมบ์ดาที่พิมพ์อย่างง่าย และระบบประเภทฮินด์ลีย์-มิลเนอร์
4 เครื่องมือตรวจสอบตามตรรกะ: เครื่องมือเหล่านี้ใช้เทคนิคการใช้เหตุผลเชิงตรรกะเพื่อตรวจสอบคุณสมบัติของระบบ ตัวอย่างของเครื่องมือตรวจสอบตามตรรกะ ได้แก่ ระบบ KeYlee และระบบ Vampire.
5. เครื่องมือตรวจสอบตามการดำเนินการเชิงสัญลักษณ์: เครื่องมือเหล่านี้ใช้เทคนิคการดำเนินการเชิงสัญลักษณ์เพื่อสำรวจเส้นทางการดำเนินการที่เป็นไปได้ของโปรแกรมและตรวจสอบว่าเป็นไปตามคุณสมบัติบางอย่าง ตัวอย่างของเครื่องมือการตรวจสอบตามการดำเนินการเชิงสัญลักษณ์ ได้แก่ เครื่องมือ SymEX และเครื่องมือ Soot
Provers สามารถนำไปใช้ในแอปพลิเคชันที่หลากหลาย รวมถึง:
1 การตรวจสอบอย่างเป็นทางการของระบบซอฟต์แวร์และฮาร์ดแวร์: สามารถใช้เครื่องพิสูจน์เพื่อพิสูจน์ความถูกต้องของระบบซอฟต์แวร์และฮาร์ดแวร์โดยเทียบกับคุณสมบัติหรือข้อกำหนดเฉพาะ เครื่องช่วยพิสูจน์สำหรับการพิสูจน์ทางคณิตศาสตร์: เครื่องพิสูจน์สามารถใช้เป็นเครื่องช่วยพิสูจน์สำหรับการสร้างและตรวจสอบการพิสูจน์ทางคณิตศาสตร์ในด้านต่างๆ เช่น พีชคณิต เรขาคณิต และตรรกะ
3 การตรวจสอบภาษาโปรแกรม: Prover สามารถใช้ตรวจสอบความถูกต้องของภาษาโปรแกรมกับข้อกำหนดเฉพาะ รวมถึงระบบประเภท ความหมายในการปฏิบัติงาน และคำจำกัดความที่เป็นทางการอื่นๆ การตรวจสอบโปรโตคอลความปลอดภัยอย่างเป็นทางการ: สามารถใช้ Provers เพื่อตรวจสอบความถูกต้องของโปรโตคอลความปลอดภัยกับคุณสมบัติหรือข้อกำหนดเฉพาะ เช่น การรับรองความถูกต้อง การรักษาความลับ และความสมบูรณ์
5 การตรวจสอบคุณสมบัติระดับระบบอย่างเป็นทางการ: สามารถใช้ Provers เพื่อตรวจสอบคุณสมบัติระดับระบบ เช่น ความปลอดภัย ความมีชีวิตชีวา และความเป็นธรรมของระบบ



