融合原理の健全性と完全性
真偽値の変数 , およびその否定 をリテラルという。リテラル, およびリテラルを論理和 で繋げた論理式を節という。さらに, 節, および節を論理積 で繋げた論理式を節形式という。例えば,
- , はリテラル,
- , , は節,
- , , , は節形式。
変数 からなる節形式 があるとき, 写像 を の割当という。どんな割当についても真となる節形式 は恒真であるという。また, が真となるような割当が存在するとき, 節形式 は充足可能であるという。例えば,
- 節形式 は恒真である。
- 節形式 は充足可能である。実際, , , という割当は を充足する。
- しかし, 節形式 は充足可能でない。後ろの二つのリテラルをいずれも真にするためには, , とする他ないが, すると が となってしまう故。このように充足可能でない, すなわち充足不可能な節形式が存在する。
ある節形式が充足可能かどうかを判定する問題を, 節形式の充足可能性問題 という。これは理論と実用の両面から重要な問題として広く知られている。融合原理は, この問題を解くための論拠の一つとして知られる。
融合とは, 二つの節 と から, 節 を作ることをいう。次の命題は明らか。
[命題1]節形式 の二つの節 , を融合して を作ったとき, 同じ割当 で と を充足できる。すなわち,
. が を充足する が を充足する.
いま, 節形式 が与えられたとして, 次の手続き RES を繰り返す:
(1)節形式 から と を選んで( でもよい), これらを融合し を作る。なお, 融合後の節 に重複するリテラルがあればひとつだけ残す。また,
- , もしくは
- あるリテラル について と のどちらも に含まれている
ならば融合失敗として, 融合を選び直す。どのように融合を選んでも失敗するなら文字列 "SAT" を出力して停止する。うまく融合を選べたら(2)へ。
(2)もし, 節 が空節 ならば, 文字列 "UNSAT" を出力して停止する。そうでなければ, 節 を に加えた節を, 改めて と更新して(1)へ。
なお, この手続き RES は必ず停止する。なぜなら, この手続きは に となる新しい節 を加えていくが, この新しい節の種類は高々有限個しか存在しないからである。実際, 節形式 がもともと 種類の変数でできているなら, 節の種類はぜんぶで 個となって有限である。
この記事では, この手続き RES が を決定すること, すなわち, 節形式 を入力とした RES の出力について,
- (健全性) RES が "UNSAT" を出力するならば, は充足不可能であり,
- (完全性) が充足不可能ならば, RES は "UNSAT" を出力する,
ことを証明する。
(証明)先の[命題1]から, RES における の更新前と更新後で充足同値が保たれる。すなわち, 更新前の が充足可能であることと, 更新後の が充足可能であることは同値である。したがって, RES が停止する直前の について主張を証明すれば, 入力の についても同じ主張がしたがう。
健全性のほうがたやすい。 RES が "UNSAT" を出力するということは, 空節 が導かれたということになり, この空節を導いた節形式 の二つの節 が存在する。あるリテラル について , としてよい。すると とかけるが, と のどちらか一方は必ず偽だから, この は充足不可能である。
完全性については対偶を示す。すなわち, 次の主張:
RES が "SAT" を出力するならば, は充足可能である
を, に含まれる変数の種類 に関する帰納法で示す。
まず として, この変数を とかけば, 論理的に は ① , ② , ③ の三通りに限られる。①なら , ②なら とすれば を充足できる。そして③は起こり得ない;この からは空節を導けるので, RES が "SAT" を出力するという仮定に反するからである。よって, は充足可能である。
次に, RES が "SAT" を出力する直前の について, が からなる節形式ならば, の節の形は次の三通りに分けられる( RES の定義から, の任意の節 について, と の両方が同じ節 に現れる場合は除かれることに注意):
- ,
- ,
- .
以下, を充足する割当 を構成する。すなわち:
- 2の形が現れない場合。まず, 3の形の節 のみによる節形式 を入力として RES を走らせると, 仮定からこの出力も "SAT" になるので(why?), 帰納法の仮定によってある割当 が存在してこの を充足する。したがって, , すなわち , とすれば, は を充足する。
- 1の形が現れない場合。上と同様にして示せる。
- 1と2の形がどちらも現れる場合。このとき, やはり上と同様に, 3の形の節のみからなる節形式 を充足する割当 をとれば, この割当のもとで ① または ② が成立つ;背理法によって示す。ある がとれて かつ だったとすれば, と の融合である も となる. しかるに の作り方から, この融合による節 が に現れないことがわかる。ゆえに残る可能性はあるリテラル について と がともに に含まれる場合, すなわち恒真である場合しかないが, これは が となったことに反する。よって, ① ならば , ② ならば とすれば, は を充足する。