このページは、述語論理(一階論理など)に基づき、前提から結論の成立を示す考え方を、ルールベースの文脈で初学者向けに短く整理するためのノートです。厳密な数理論理学の教科書ではなく、AI・ソフトウェアの周辺で何を指すかに焦点を当てます。年次の流れは 論理と定理証明史 を参照してください。
ざっくりいうと
前提(公理・仮定・仕様)と目標(証明したい式、性質)が、記号に従った式として与えられたとき、推論ルール(置き換え、汎化、解消など、体系に依る)を有限回(または半手続き的に)適用して、目標が論理的に従うことを示す、という枠組みです。
生成規則の if-then でドメイン知識を積むエキスパートシステムと比べると、こちらは 論理式と推論規則の体系が中心で、「正しさ」を形式体系の中で述べる色が強いです。
生成規則モデル・エキスパートシステムとの距離(目安)
| 観点 | 生成規則/エキスパートシステム寄り | 論理・定理証明寄り |
|---|---|---|
| 知識の典型 | 業務ルール、診断ルール(妥当そうな判断) | 公理・定義・仕様に基づく 論理的含意 |
| ゴール | 実務で有用な結論・次アクション | 定理が形式体系で導けることの証明 |
| 失敗の意味 | 運用上誤判定(別途テスト・監査) | 反証・未証明(体系や前提の見直し) |
実装では両者を組み合わせることもありますが、問いの置き方が違う、と最初に切り分けると読みやすいです。
自動定理証明と「人と協働」
自動定理証明(ATP) は、できるだけ人手を介さずに探索する方向です。Robinson の解消原理(resolution) のような 単一・統一的な推論ルール は、実装と研究を動かす転機としてよく語られます(詳しくは 論理と定理証明史)。
一方、式や証明の規模が大きいと探索は爆発しやすく、対話型証明系(証明の穴を人が埋める)、SMT ソルバ(特定の理論と組み合わせる)、モデル検査との連携など、機械と人の分担が現実的なラインになります。
ロジックプログラミングとの関係
Prolog などの ロジックプログラミング は、同じく論理を記述言語の中心に置きますが、プログラム(計算)としての実行モデルが主役です。定理証明は 「式が論理的に従うか」 を示すことが主役、という分担が近いです。歴史のつながりは ロジックプログラミング史 も参照してください。
記号構造との関係(一言)
前提・結論・証明の各ステップは、通常 明示的な記号列・式・構文木として扱われます。状態のイメージは 記号構造とは と通じますが、ここでは 論理体系の推論規則が前面に出ます。
いまよく効く場面(短く)
- ハードウェア/ソフトウェアの検証(バグなく満たす性質があることの論証)
- 安全規格・規制対応で、「なぜ要件を満たすか」を形式化したいとき
- 機械学習とは別軸で、説明可能性を形式論理レベルで担保したいとき