LCF เป็นพ่อที่แท้จริงของระบบเหล่านี้ทั้งหมด: Coq, Isabelle, HOLs รวมถึงภาษาการเขียนโปรแกรม ML (ซึ่งเราเห็นในวันนี้ว่า OCaml, SML และ F #) ใช่ฉันกำลังรวม Coq ในฐานะสมาชิกของครอบครัว LCF ที่ยิ่งใหญ่กว่า เมื่อเทียบกับผู้ช่วยของสหรัฐอเมริกันหลักฐาน (สะดุดตา ACL2) หรือที่ไม่เกี่ยวข้องกันโดยสิ้นเชิง Mizar, Coq เป็นวัฒนธรรมค่อนข้างใกล้เคียงกับอิสซาเบลและ HOLS ส่วนใหญ่เนื่องจากความคิดร่วมกันของกลยุทธ์
ดังนั้นกลยุทธ์คืออะไรถอดออกจากการสังเกตโดยไม่ได้ตั้งใจเกี่ยวกับการเขียนใหม่การแปลงการแนะนำหรือกำจัดการเชื่อมต่อ?
หลักการฝังรากลึกหลักที่นี่มาจาก LCF ของ Milner:
การอนุมานหลัก (การให้เหตุผลไปข้างหน้า) ไม่ว่าจะเป็นประเภทข้อมูลนามธรรมthm
ในแนวทาง LCF ดั้งเดิมหรือด้วยการตรวจสอบเงื่อนไขการพิสูจน์แยกในสาขาประเภททฤษฎีของตระกูล (Coq, Matita) สิ่งนี้ช่วยให้คุณมีพื้นฐานทางตรรกะที่แน่นอนสำหรับผลลัพธ์ที่ผู้พิจารณาเห็นว่าเป็นทฤษฎีบท ดังนั้นคุณอาจมีการอนุมานแบบดั้งเดิมที่ใช้⊢ A และ⊢ B และให้คุณ⊢ A ∧ B การอนุมานดั้งเดิมอื่นสามารถให้คุณ⊢ t = u โดยที่คุณคือรูปแบบเบต้าปกติของ t ไม่มีกลไกใดที่เป็นกลยุทธ์แม้ว่าจะเป็นกฎการอนุมานเหมือนในตรรกะมาตรฐาน
หลักฐานการกำหนดเป้าหมาย (ให้เหตุผลย้อนหลัง) แนวคิดคือคุณทำงานบนแนวคิดของ "สถานะเป้าหมาย" โดยการปรับแต่งแยกมันออกเป็นเป้าหมายย่อยมากขึ้นปิดเป้าหมายย่อยจนกว่ามันจะได้รับการแก้ไขทั้งหมด สำเร็จสถานะเป้าหมายจะทำให้ทฤษฎีบทบางอย่างโผล่ออกมาจากกระบวนการ LCF ได้แนะนำโครงสร้างพื้นฐานเชิงตรรกะพิเศษบางอย่างสำหรับเป้าหมายซึ่งยังคงอยู่ใน HOLs: ชั้นเชิงคือฟังก์ชัน ML บางอย่างที่ปรับเป้าหมายและสร้างเหตุผลสำหรับการปรับแต่ง ในตอนท้ายของการพิสูจน์ justfications จะเล่นซ้ำในลำดับย้อนกลับเพื่อสร้างการพิสูจน์ในลักษณะไปข้างหน้าตามการอนุมานดั้งเดิมที่ร่างข้างต้น
Coq และ Matita ยังค่อนข้างใกล้เคียงกับหลักการ LCF นี้ อิซาเบลแตกต่างกันที่นี่: ตั้งแต่ปี 1989 แลร์รี่พอลสันกลับเนื้อกลับตัวแนวคิดเกี่ยวกับเป้าหมายและยุทธวิธีเพื่อให้พวกเขาใกล้ชิดกับตรรกะซึ่งเป็นกรอบตรรกะที่ "บริสุทธิ์" ของอิสซาเบลที่นี่ Isabelle / Pure ให้ตรรกะการสั่งซื้อที่สูงขึ้นน้อยที่สุดพร้อมความหมาย ==> และตัวระบุปริมาณ !! ซึ่งระบุทั้งโครงสร้างของกฎการหักตามธรรมชาติและสถานะเป้าหมาย
ตัวอย่างเช่น⊢ A ==> B ==> A ∧ B เป็นกฎการแนะนำตัวร่วม (ของตรรกะวัตถุ) เป็นทฤษฎีบทของกรอบตรรกะ
สถานะเป้าหมายเป็นเพียงทฤษฎีบทเช่นกันเริ่มต้นด้วย⊢ C ==> C สำหรับการเรียกร้องเริ่มต้นของคุณ C ซึ่งได้รับการปรับให้เป็น⊢ X ==> Y ==> Z ==> C ในสถานะสื่อกลางที่ X, Y, Z คือเป้าหมายย่อยปัจจุบันและกระบวนการสิ้นสุดด้วย⊢ C (ไม่มีเป้าหมายย่อย)
ตอนนี้กลับไปที่กลยุทธ์ซึ่งมีความเหมือนกันมากขึ้นสำหรับผู้พิสูจน์เหล่านี้ทั้งหมด: เนื่องจากแนวคิดของสถานะเป้าหมาย (เช่น Isabelle one ด้านบน) ชั้นเชิงเป็นฟังก์ชันที่แมปสถานะเป้าหมายไปที่ (0, 1 หรือมากกว่า) สถานะเป้าหมาย ยิ่งไปกว่านั้นยุทธวิธีคือการรวมตัวกันของฟังก์ชั่นชั้นเชิงเช่นเพื่อแสดงองค์ประกอบเรียงลำดับทางเลือกการทำซ้ำ ฯลฯ ในความเป็นจริงภาษาของยุทธวิธีและยุทธวิธีมีความสัมพันธ์กับ "รายการความสำเร็จ" ของผู้วิเคราะห์คำ
กลยุทธ์อนุญาตให้อธิบายกลยุทธ์บางอย่างของการปรับแต่งเป้าหมายอย่างเป็นระบบ พวกเขาประสบความสำเร็จค่อนข้างมากตั้งแต่การประดิษฐ์ LCF ในปี 1970/80-I แต่พวกเขาสร้างสคริปต์พิสูจน์ที่ไม่สามารถอ่านได้อย่างฉาวโฉ่
ภาพรวมล่าสุดของแง่มุมบางส่วนของภาษาชั้นเชิงให้ไว้ในรายงานโดย A. Asperti et al, PLMMS 2009 ดูการประชุมเชิงปฏิบัติการหน้า 22
Mizar และ Isabelle / Isar ได้รับการกล่าวถึงว่าเป็นแนวทางทางเลือกในการให้เหตุผลเชิงโครงสร้างที่มนุษย์อ่านได้และพวกเขาไม่ได้ใช้กลยุทธ์ในแง่นั้น Mizar นั้นไม่เกี่ยวข้องกับตระกูล LCF ดังนั้นจึงไม่ทราบคำศัพท์เชิงกลยุทธ์นั้น Isabelle / Isar ได้รวมเอาประเพณีทางยุทธวิธีไว้บ้าง แต่ความคิดของวิธีการพิสูจน์นั้นมีโครงสร้างมากกว่าเล็กน้อย (ด้วยบริบทการพิสูจน์ของ Isar ที่ชัดเจนการบ่งชี้ที่ชัดเจนของข้อเท็จจริงที่ถูกล่ามโซ่และการหลีกเลี่ยงการแฮ็คเป้าหมายภายใน
การปฏิรูปและการพิจารณาอีกครั้งของภาษาชั้นเชิงได้เกิดขึ้นในทศวรรษที่ผ่านมา ตัวอย่างเช่นสาขาล่าสุดของชุมชน Coq โปรดปราน SSReflect (โดย G. Gonthier) แทน Ltac แบบดั้งเดิม