導出原理(resolution principle)とは、節(リテラルの有限集合で、その選言を表す)の有限集合が充足可能でないことを、2 つの節から相補的なリテラルを除いて残りを合わせた導出節を繰り返し作り、空の節を導くことで示す方法である。一階述語論理では、原子論理式の集合を同じにする代入のうち最も一般的な最汎単一化子を使って導出節を作る。等号を含まない言語の節の有限集合が充足可能でないことと、空の節が導出できることは同値であり(健全性と反駁完全性)、これは単一化の算法、Herbrand の定理、基礎節の導出を持ち上げる補題から従う。
前提知識: 命題論理, 選言標準形と連言標準形, Herbrandの定理
導出原理(resolution principle)とは、節(リテラルの選言)の有限集合が充足可能でないことを、ただ 1 つの推論規則を繰り返し使って示す方法である。命題論理では、規則は「$P$ を含む節と $\lnot P$ を含む節から、$P$ と $\lnot P$ を除いて残りを合わせた節を作る」ことであり、これを繰り返して空の節(偽)に到達すれば、もとの集合は充足可能でない。一階述語論理では、変数を含む節どうしをそのまま組み合わせるために、2 つの原子論理式を同じにする代入(単一化子)のうち最も一般的なものを使う。この形の方法は J. A. Robinson が 1965 年に導入した(Gal15 p. 140、p. 362)。
導出原理の基本定理は、節の有限集合が充足可能でないことと、空の節が導出できることが同値であるという 健全性と反駁完全性 である。妥当性の問題は否定を節の集合に直して充足不能性の問題に変えられるので、導出原理は自動定理証明の基本的な方法になっている。この記事では、命題論理の場合、単一化の算法、一階の場合の順に、すべて証明する。一階の場合は Herbrandの定理 で変数を含まない節の問題に帰着させ、その導出を変数を含む節の導出に持ち上げる。
原子論理式 $A$ とその否定 $\lnot A$ を リテラル という。$\overline{A}:=\lnot A$、$\overline{\lnot A}:=A$ と書く。リテラルの有限集合を 節 といい、空の節を $\square$ と書く。節 $C$ は選言 $\bigvee C$ を表す($\bigvee\square$ は偽)。節の集合は、その元の選言をすべて連言で結んだものを表す。どの命題論理の論理式も、同じ付値で真になる連言標準形の論理式に書き直せるので(選言標準形と連言標準形 の定理「標準形の存在と完全標準形の一意性」)、充足可能性の問題は節の集合の問題にできる。
節 $C_1,C_2$ とリテラル $\ell$ で $\ell\in C_1$、$\overline\ell\in C_2$ となるものについて、節
$$
(C_1\setminus\{\ell\})\cup(C_2\setminus\{\overline\ell\})
$$
を $C_1,C_2$ の $\ell$ についての 導出節(resolvent)という。節の集合 $S$ からの 導出 とは、節の有限列 $D_1,\dots,D_k$ で、各 $D_j$ が $S$ の元であるか、$i,i'< j$($i=i'$ でもよい)となる $D_i,D_{i'}$ の導出節であるものをいう。最後が $\square$ である導出を $S$ の 反駁 という。
たとえば $\{P,Q\}$ と $\{\lnot P,R\}$ の $P$ についての導出節は $\{Q,R\}$、$\{P\}$ と $\{\lnot P\}$ の導出節は $\square$ である。これは Gal15 Definition 4.3.2(p. 125)の導出節と同じである。
変数 $x$ に項を対応させる写像 $\sigma$ で、$x\sigma\ne x$ となる $x$ が有限個のものを 代入 という。項・リテラル・節 $E$ について、$E$ の各変数 $x$ を一斉に $x\sigma$ に置き換えたものを $E\sigma$ と書く(論理式は量化記号を含まないので、束縛の問題は起きない)。代入 $\sigma,\theta$ の 合成 $\sigma\theta$ を $x(\sigma\theta):=(x\sigma)\theta$ で定めると $(E\sigma)\theta=E(\sigma\theta)$ である。$x$ を $t$ に替えるだけの代入を $\{x\mapsto t\}$、何も替えない代入を $\varepsilon$ と書く。変数を変数に置き換える単射の代入で $C$ を写した節を、$C$ の 変種(名前の付け替え)という。
項だけからなるか原子論理式だけからなる空でない有限集合 $E$ について、$E\sigma$ が 1 元になる代入 $\sigma$ を $E$ の 単一化子(unifier)という。$E$ の単一化子 $\sigma$ で、$E$ のどの単一化子 $\theta$ についても $\theta=\sigma\lambda$ となる代入 $\lambda$ があるものを 最汎単一化子(most general unifier)という。
たとえば $\{P(x,f(y)),\ P(g(z),f(g(w)))\}$ は $\sigma=\{x\mapsto g(z)\}\{y\mapsto g(w)\}$ で単一化され、$\{x\mapsto g(a),y\mapsto g(a),z\mapsto a,w\mapsto a\}$ も単一化子だが、後者は $\sigma$ に $\{z\mapsto a,w\mapsto a\}$ を合成したものである。$\{P(x),P(f(x))\}$ は単一化できない。$x\theta$ が $f(x)\theta=f(x\theta)$ の真の部分項になり、等しくなりえないからである。
節 $C_1,C_2$ に共通の変数はないとする。$C_1$ の空でない部分集合 $L_1$ で原子論理式(正のリテラル)だけからなるものと、$C_2$ の空でない部分集合 $M_2$ で否定(負のリテラル)だけからなるものについて、原子論理式の集合
$$
E:=L_1\cup\{A\mid\lnot A\in M_2\}
$$
が単一化可能なとき、その最汎単一化子 $\sigma$ について
$$
\bigl((C_1\setminus L_1)\cup(C_2\setminus M_2)\bigr)\sigma
$$
を $C_1,C_2$ の 導出節 という($C_1$ と $C_2$ の役割を入れ替えたものも導出節とよぶ)。節の集合 $S$ からの導出とは、節の有限列 $D_1,\dots,D_k$ で、各 $D_j$ が $S$ の元であるか、ある $i,i'< j$($i=i'$ でもよい)について $D_i,D_{i'}$ の変種で共通の変数をもたないものの導出節であるものをいう。最後が $\square$ である導出を 反駁 という。
$L_1$ や $M_2$ に 2 つ以上のリテラルを許すのは、単一化で同じになるリテラルを一度にまとめるためである(ex-resolution-table-check の 3 行目)。この定義は Gal15 Definition 8.5.2(p. 381)と同じ形である。変数を含まない節(基礎節)だけを扱うときは、$\sigma=\varepsilon$ で、def-resolution-propositional の導出節と一致する。
導出節は、2 つの節から「$P$ が真なら一方の残りが、偽なら他方の残りが成り立つ」という場合分けで得られる結論である。充足不能性を示すには、場合分けの結論を積み重ねて、どの付値でも偽である $\square$ に追い込めばよい。一階の場合は、$\{\lnot P(x),Q(x)\}$ と $\{P(a)\}$ のように、代入して初めて相補的になる組がある。最汎単一化子を使うと、可能な代入をすべて試す代わりに、必要最小限の代入だけをして先へ進める。
命題論理の節の有限集合 $S$ について、$S$ が充足可能でないことと、$S$ の反駁があることは同値である。
健全性。 付値 $v$ が $C_1\ni\ell$ と $C_2\ni\overline\ell$ を満たすとする。$v(\ell)$ が真なら $\overline\ell$ は偽なので $C_2\setminus\{\overline\ell\}$ のあるリテラルが真であり、偽なら $C_1\setminus\{\ell\}$ のあるリテラルが真である。どちらでも導出節は $v$ で満たされる。よって $S$ を満たす付値は導出のすべての節を満たし、$\square$ は満たさないので、反駁があれば $S$ は充足可能でない。
完全性。 $S$ に現れる命題変数の個数 $n$ に関する帰納法で示す。$n=0$ なら $S$ の元は $\square$ だけで、$S$ が充足可能でないなら $S\ne\emptyset$ なので $\square\in S$ であり、1 行の列 $\square$ が反駁である。$n\ge1$ として、$S$ に現れる命題変数 $P$ を 1 つとり、
$$
S^{+}:=\{C\setminus\{\lnot P\}\mid C\in S,\ P\notin C\},\qquad S^{-}:=\{C\setminus\{P\}\mid C\in S,\ \lnot P\notin C\}
$$
とおく($P$ を真、偽と決めたときに残る条件である)。どちらにも $P$ は現れない。
$S^{+}$ は充足可能でない。実際、$S^{+}$ を満たす付値 $v$ を $P$ で真に変えた付値 $v'$ は、$P\in C$ となる $C$ を満たし、$P\notin C$ となる $C$ も満たす($C\setminus\{\lnot P\}$ を満たすリテラルは $P$ を含まないので $v'$ でも真)。これは $S$ が充足可能でないことに反する。同じく $S^{-}$ も充足可能でない。帰納法の仮定により $S^{+}$ と $S^{-}$ の反駁がある。
次の主張を示す:$S^{+}$ からの導出 $D_1,\dots,D_k$ に対し、$S$ からの導出 $D_1',\dots,D_k'$ で $D_j'\in\{D_j,\ D_j\cup\{\lnot P\}\}$ となるものがある。$D_j\in S^{+}$ なら $D_j=C\setminus\{\lnot P\}$($C\in S$)なので $D_j':=C$ とする。$D_j$ が $D_i,D_{i'}$ の $\ell$ についての導出節なら、$\ell$ は $P$ でも $\lnot P$ でもない($S^{+}$ からの導出に $P$ は現れない)ので、$\ell\in D_i'$、$\overline\ell\in D_{i'}'$ であり、$D_j':=(D_i'\setminus\{\ell\})\cup(D_{i'}'\setminus\{\overline\ell\})$ は $D_j$ か $D_j\cup\{\lnot P\}$ である。
$S^{+}$ の反駁にこれを使うと、$S$ から $\square$ か $\{\lnot P\}$ が導出できる。同様に $S^{-}$ の反駁から、$S$ から $\square$ か $\{P\}$ が導出できる。どちらかで $\square$ が出れば終わりで、そうでなければ 2 つの導出をつなぎ、$\{P\}$ と $\{\lnot P\}$ の導出節 $\square$ を最後に加えればよい。$\square$
Gal15 Theorem 4.3.2(p. 128)は同じ定理を、シーケント計算の証明を導出に書き換える方法で証明している。上の証明は、命題変数を 1 つずつ消す帰納法である。
$S=\bigl\{\{P,Q\},\{P,\lnot Q\},\{\lnot P,Q\},\{\lnot P,\lnot Q\}\bigr\}$ は、$P,Q$ の真偽の 4 通りのどれかを各節が禁じているので充足可能でない。反駁は次のとおりである。
$$
\{P,Q\},\ \{P,\lnot Q\},\ \{P\},\ \{\lnot P,Q\},\ \{\lnot P,\lnot Q\},\ \{\lnot P\},\ \square .
$$
3 行目は 1・2 行目の $Q$ について、6 行目は 4・5 行目の $Q$ について、7 行目は 3・6 行目の $P$ についての導出節である(Gal15 Example 4.3.4、p. 126 と同じ集合)。
項や原子論理式を、記号を節点とする木とみなす。$e_1\ne e_2$ のとき、根から同時にたどって、記号が異なる最初の節点にある部分式の組 $(s,t)$ を $e_1,e_2$ の 不一致の組 という(根の記号が同じなら、部分式が異なる最初の引数に進む)。$s,t$ の根の記号は異なり、$e_1,e_2$ の根からその節点に至る途中の節点では、両者の記号は同じ関数記号か関係記号である。したがって、$e_1\theta=e_2\theta$ なら $s\theta=t\theta$ である。
項だけからなるか原子論理式だけからなる空でない有限集合 $E$ が単一化可能なら、最汎単一化子をもつ。さらに次の算法は、$E$ が単一化可能なら最汎単一化子を出力し、そうでなければ「単一化できない」と出力して止まる。
要点:$E$ のどの単一化子 $\theta$ についても $\sigma_k\theta=\theta$ が保たれる。各段で変数が 1 つ消えるので算法は止まり、止まったときの $\sigma_k$ が最汎単一化子になる。
不変量。 $E$ の任意の単一化子 $\theta$ について $\sigma_k\theta=\theta$ を $k$ に関する帰納法で示す。$k=0$ では明らかである。$\sigma_k\theta=\theta$ とすると $E\sigma_k\theta=E\theta$ は 1 元なので、$\theta$ は $E\sigma_k$ の単一化子であり、不一致の組について $x\theta=u\theta$ である。よって $\{x\mapsto u\}\theta$ は $x$ を $u\theta=x\theta$ に、ほかの変数 $y$ を $y\theta$ に写すので $\{x\mapsto u\}\theta=\theta$ であり、$\sigma_{k+1}\theta=\sigma_k\{x\mapsto u\}\theta=\sigma_k\theta=\theta$ である。
停止。 $u$ の変数は $E\sigma_k$ に現れ、$u$ は $x$ を含まないので、$E\sigma_{k+1}=(E\sigma_k)\{x\mapsto u\}$ には $x$ が現れず、新しい変数も現れない。$E\sigma_k$ に現れる変数の個数は各段で $1$ 以上減るので、算法は $E$ の変数の個数以下の段で止まる。
出力が正しいこと。 2 で止まったなら $\sigma_k$ は単一化子で、任意の単一化子 $\theta$ について $\theta=\sigma_k\theta$ なので、$\lambda:=\theta$ として最汎単一化子である。3 で止まったときは $E\sigma_k$ は単一化できない。不一致の組 $(s,t)$ の根がどちらも変数でないなら根の記号が異なり、どの $\theta$ でも $s\theta,t\theta$ の根の記号は異なる。一方が変数 $x$ で他方 $u\ne x$ が $x$ を含むなら、$x\theta$ は $u\theta$ の真の部分項で $x\theta\ne u\theta$ である。$E$ に単一化子 $\theta$ があれば不変量により $\theta$ は $E\sigma_k$ の単一化子になるので、$E$ は単一化できない。$\square$
この算法は Robinson の単一化算法の形であり、Gal15 Theorem 8.4.1(pp. 375–376)は 2 つの木について、再帰の形の算法で同じ結論を証明している。手順 3 の「$u$ に $x$ が現れない」の確かめを 出現検査(occurs check)という。
共通の変数をもたない節 $C_1,C_2$ の導出節を $R$ とする。構造 $\mathcal M$ が $\forall C_1$ と $\forall C_2$ を満たすなら、$\forall R$ も満たす。
def-resolution-first-order の記号で、$\sigma$ を $E$ の最汎単一化子、$E\sigma=\{A_0\}$ とする。割り当て $s$ を任意にとり、$s'(x):=(x\sigma)^{\mathcal M}[s]$ とおく。項の組み立てに沿った帰納法で $(t\sigma)^{\mathcal M}[s]=t^{\mathcal M}[s']$ であり、したがってリテラル $\ell$ について $\mathcal M\models\ell\sigma[s]\iff\mathcal M\models\ell[s']$ である。$\mathcal M\models\forall C_1$ なので、$C_1$ のあるリテラル $\ell_1$ で $\mathcal M\models\ell_1[s']$、すなわち $\mathcal M\models\ell_1\sigma[s]$ となる。同様に $C_2$ のあるリテラル $\ell_2$ で $\mathcal M\models\ell_2\sigma[s]$ となる。$\ell_1\in L_1$ かつ $\ell_2\in M_2$ なら $\ell_1\sigma=A_0$、$\ell_2\sigma=\lnot A_0$ がともに $s$ のもとで真となり不可能である。よってどちらかは $C_1\setminus L_1$ か $C_2\setminus M_2$ に属し、その $\sigma$ による像は $R$ のリテラルで $s$ のもとで真である。$s$ は任意なので $\mathcal M\models\forall R$。$\square$
変種 $C'$ は $C$ の変数の名前を替えただけなので、$\forall C'$ と $\forall C$ は同じ構造で真になる。したがって、$S$ を満たす構造は $S$ からの導出のすべての節を満たし、$\forall\square$ は偽なので、反駁をもつ節の集合は充足可能でない(Gal15 Lemma 8.5.2、p. 384)。
共通の変数をもたない節 $C_1,C_2$ と、$C_1\theta,C_2\theta$ が基礎節になる代入 $\theta$ をとる。$D$ が $C_1\theta,C_2\theta$ の(def-resolution-propositional の意味の)導出節なら、$C_1,C_2$ の導出節 $R$ と代入 $\lambda$ で $R\lambda=D$ となるものがある。
$D$ を基礎原子論理式 $A$ についての導出節とし、$A\in C_1\theta$、$\lnot A\in C_2\theta$ とする(逆の場合は $C_1$ と $C_2$ を入れ替える)。
$$
L_1:=\{\ell\in C_1\mid\ell\theta=A\},\qquad M_2:=\{\ell\in C_2\mid\ell\theta=\lnot A\}
$$
とおく。どちらも空でなく、$L_1$ は原子論理式、$M_2$ は否定だけからなる。$\theta$ は $E=L_1\cup\{B\mid\lnot B\in M_2\}$ を $\{A\}$ に写すので単一化子であり、thm-resolution-unification により最汎単一化子 $\sigma$ と $\lambda$ で $\theta=\sigma\lambda$ となるものがある。$R:=((C_1\setminus L_1)\cup(C_2\setminus M_2))\sigma$ は $C_1,C_2$ の導出節で、
$$
R\lambda=(C_1\setminus L_1)\theta\cup(C_2\setminus M_2)\theta .
$$
$C_1\setminus L_1$ の元は $\theta$ で $A$ 以外に写り、$C_1\theta\setminus\{A\}$ の元は $L_1$ に属さない $C_1$ の元の像なので、$(C_1\setminus L_1)\theta=C_1\theta\setminus\{A\}$ である。同様に $(C_2\setminus M_2)\theta=C_2\theta\setminus\{\lnot A\}$ であり、$R\lambda=D$ である。$\square$
等号を含まない一階言語の節の有限集合 $S$ について、$S$ が充足可能でないことと、$S$ の反駁があることは同値である。
反駁があれば充足可能でないことは上で示した。逆に $S$ が充足可能でないとする。$\square\in S$ なら 1 行の列 $\square$ が反駁なので、$\square\notin S$ とする(このとき下の $\bigvee C$ はどれも論理式である)。$S$ に現れる記号の言語に、定数記号がなければ 1 つ加えた言語を $L$ とする(加えた記号を自由に解釈すればよいので、充足可能性は変わらない)。$S$ の節に現れる変数を $\bar x=(x_1,\dots,x_n)$ とし、量化記号のない論理式 $\psi:=\bigwedge_{C\in S}\bigvee C$ をとる。$\forall$ は $\land$ に分配するので、$S$ が充足可能でないことは文 $\forall\bar x\,\psi$ が充足可能でないことと同じである。Herbrandの定理 の系「全称文についての Herbrand の定理」により、閉項の組 $\bar t_1,\dots,\bar t_m$ で $\psi(\bar t_1)\land\cdots\land\psi(\bar t_m)$ が命題論理の意味で充足可能でないものがある。$\theta_j:=\{x_i\mapsto t_{j,i}\}_i$ とおくと、これは基礎節の有限集合 $G:=\{C\theta_j\mid C\in S,\ 1\le j\le m\}$ が充足可能でないことにあたる。thm-resolution-propositional により $G$ の反駁 $D_1,\dots,D_k=\square$ がある。
各 $j$ について、$S$ からの導出で得られる節 $F_j$ と代入 $\lambda_j$ で $F_j\lambda_j=D_j$ となるものがあることを、$j$ に関する帰納法で示す。$D_j\in G$ なら $D_j=C\theta_{j'}$ なので $F_j:=C$ とする。$D_j$ が $D_i,D_{i'}$ の導出節なら、$F_{i'}$ の変種 $F'$ で $F_i$ と共通の変数をもたないものをとり、名前の付け替えを戻してから $\lambda_{i'}$ を施す代入を $\lambda'$ とすると $F'\lambda'=D_{i'}$ である。$F_i$ の変数では $\lambda_i$、$F'$ の変数では $\lambda'$ と一致する代入 $\theta$ をとると $F_i\theta=D_i$、$F'\theta=D_{i'}$ であり、lem-resolution-lifting により $F_i,F'$ の導出節 $F_j$ と $\lambda_j$ で $F_j\lambda_j=D_j$ となるものがある。$F_j$ は $S$ からの導出の次の行になる。
最後に $F_k\lambda_k=\square$ なので $F_k=\square$ であり、$S$ の反駁が得られた。$\square$
この定理は Gal15 Theorem 8.5.1(p. 388)であり、同書も持ち上げ補題(Lemma 8.5.3、pp. 384–385)を基礎節の反駁に当てはめて証明している。
$S=\bigl\{\{P(a)\},\ \{\lnot P(x),P(f(x))\},\ \{\lnot P(f(f(a)))\}\bigr\}$ は「$P(a)$、すべての $x$ で $P(x)$ なら $P(f(x))$」と「$P(f(f(a)))$ でない」を表し、充足可能でない。反駁は次のとおりである。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 手順 3 で出現検査をする(thm-resolution-unification) | $E=\{x,\ f(x)\}$ | 算法が止まること |
| 導出の前に変数を付け替える(def-resolution-first-order) | $\{P(x)\}$ と $\{\lnot P(f(x))\}$ | 反駁完全性 |
| $L_1,M_2$ に 2 つ以上のリテラルを許す(def-resolution-first-order) | $\{P(x),P(y)\}$ と $\{\lnot P(u),\lnot P(v)\}$ | 反駁完全性 |
| 言語が等号を含まない(thm-resolution-completeness) | $\{a=b\}$、$\{P(a)\}$、$\{\lnot P(b)\}$($=$ は等しさと解釈) | 反駁完全性 |
各行で、反例が外す条件だけを満たさないことと、結論が崩れることを確かめる。
1 行目:不一致の組は $(x,f(x))$ で、出現検査をすれば「単一化できない」と止まる($x\theta$ は $f(x)\theta$ の真の部分項なので、実際に単一化できない)。検査を省いて $\{x\mapsto f(x)\}$ を施すと $\{f(x),f(f(x))\}$ になり、不一致の組はまた $(x,f(x))$ である。これが繰り返され、変数が減らないので算法は止まらない。
2 行目:$\forall x\,P(x)$ と $\forall x\,\lnot P(f(x))$ は同時に真になりえない。付け替えをしないと、相補的な組は $P(x)$ と $\lnot P(f(x))$ だけで、$\{P(x),P(f(x))\}$ は単一化できないので導出節がない。付け替えて $\{\lnot P(f(y))\}$ とすれば $\{x\mapsto f(y)\}$ で $\square$ が得られる。
3 行目:$\forall x\,\forall y\,(P(x)\lor P(y))$ は $\forall x\,P(x)$ と、$\forall u\,\forall v\,(\lnot P(u)\lor\lnot P(v))$ は $\forall u\,\lnot P(u)$ と同値なので、充足可能でない。$L_1,M_2$ を 1 元に限ると、導出される節はどれも、変数が相異なる 2 つのリテラル($P(z)$ か $\lnot P(z)$ の形)からなる。実際、そのような 2 つの節(共通の変数をなくしたもの)から $P(z_1)$ と $\lnot P(z_2)$ を選ぶと、最汎単一化子 $\sigma$ と単一化子 $\{z_1\mapsto z_2\}$ について $\{z_1\mapsto z_2\}=\sigma\lambda$ となる $\lambda$ があり、$z_1,z_2$ 以外の変数 $z$ では $z=(z\sigma)\lambda$ なので、$z\sigma$ は変数で、$z\mapsto z\sigma$ は単射である。残る 2 つのリテラルの変数は $z_1,z_2$ と異なり互いに異なるので、導出節もこの形である。よって $\square$ は導出されない。$L_1=\{P(x),P(y)\}$、$M_2=\{\lnot P(u),\lnot P(v)\}$ とすれば $\square$ が得られる。
4 行目:等しさの解釈では $a=b$ と $P(a)$ から $P(b)$ となるので充足可能でない。相補的な組は $P(a)$ と $\lnot P(b)$ だけで、$a,b$ は異なる定数記号なので単一化できず、$a=b$ の否定を含む節もないので、導出節が 1 つもない。等号を扱うには、等号の公理を節として加えるなどの工夫が要る。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する