実際、LCFはこれらすべてのシステムの祖父です:Coq、Isabelle、HOL、MLプログラミング言語(今日はOCaml、SML、F#とも呼ばれます)を含みます。はい、Coqをより優れたLCFファミリーのメンバーとして含めています。米国とアメリカの証明アシスタント(特にACL2)、またはまったく関係のないミザールと比較して、Coqは主に戦術の共通の考え方により、イザベルとHOLに文化的に非常に近いです。
それでは、とにかく、書き換え、変換、結合子の導入または削除に関する偶然の観察から取り除かれた戦術とは何ですか?
ここでの主な階層化の原則は、MilnerのLCFから継承されています。
コア推論(前方推論)。thm
元のLCFアプローチの抽象データ型として、またはファミリのタイプ理論ブランチ(Coq、Matita)で証明用語を個別にチェックします。これにより、証明者が定理と見なす結果の特定の論理的基盤が得られます。したがって、primitive Aと⊢Bを取り、⊢A∧Bを与えるプリミティブ推論を使用できます。別のプリミティブ推論は、⊢t = uを与えることができます。ここで、uはtのベータ正規形です。これらのメカニズムはいずれも戦術ではありませんが、標準ロジックのように推論ルールです。
目標指向の証明(後方推論)。アイデアは、「ゴール状態」の概念を洗練し、それをより多くのサブゴールに分割し、サブゴールを閉じて、すべて解決されるまで操作するというものです。ゴール状態を終了すると、特定の定理がプロセスからポップされます。LCFは目標に特定の特別な論理的インフラストラクチャを導入しましたが、それはまだHOLにあります。証明の最後に、ジャスティフィケーションが逆の順序で再生され、上記の基本的な推論に従って証明を順方向に生成します。
CoqとMatitaは、まだこのLCF原理にかなり近いです。イザベルはここで異なります。1989年には、ラリーポールソンが目標と戦術の概念を改革し、論理、つまりイザベルの「純粋な」論理フレームワークに近づけました。Isabelle / Pureは、含意==>および量指定子を備えた最小限の高次ロジックを提供します!! 自然な控除規則の構造と目標状態の両方を示します。
たとえば、⊢A ==> B ==> A∧Bは、論理フレームワークの定理としての(オブジェクトロジックの)連結導入ルールです。
ゴール状態も定理であり、最初のクレームCの⊢C ==> Cから始まり、中間状態では⊢X ==> Y ==> Z ==> Cに洗練されます。ここで、X、Y、Zは現在のサブゴールであり、プロセスは⊢C(サブゴールなし)で終了します。
戦術に戻りましょう。これは、これらのすべての証明者により均一です。目標状態の概念(上記のイザベルなど)を考えると、戦術は目標状態を(0、1、またはそれ以上)のフォローアップにマッピングする関数です目標状態。さらに、戦術はそのような戦術的な機能のコンビネーターです。例えば、連続的な構成、選択、繰り返しなどを表現します。実際、戦術と戦術の言語はパーサーコンビネーターの「成功のリスト」アプローチに関連します。
戦術は、目標の絞り込みの特定の戦略を体系的に記述することを可能にします。1970/80年代のLCFでの発明以来、彼らは非常に成功しましたが、悪名高く読めない証明スクリプトを作成しています。
戦術言語のいくつかの側面の最近の概要は、A。Asperti等によるPLMMS 2009の論文に記載されています。22 ページのワークショップの議事録を参照してください。
MizarとIsabelle / Isarは、人間が読める構造化推論の代替アプローチとして言及されており、その意味では戦術に基づいていません。MizarはLCFファミリーとは無関係であるため、その戦術用語はわかりません。Isabelle / Isarはある程度戦術的な伝統を取り入れていますが、証明方法の概念はもう少し構造化されています(明示的なIsar証明コンテキスト、連鎖された事実の明示的な表示、推論の過程での内部目標ハッキングの回避)。
過去数十年間で、戦術言語のさらに多くの改革と再考が行われました。たとえば、Coqコミュニティの最近のブランチは、従来のLtacではなくSSReflect(G. Gonthier作)を好みます。