CNF 乗法標準形 Conjunctive normal form メモ
ここ数日前から「メモ」とタイプしようとすると、なぜか「モエ」と打ち間違えてしまう。
modus ponens
肯定式
リテラル
論理変数x またはその否定 ¬x のこと
素式あるいは否定の付いた素式のこと。
節(clause) リテラルを∨で繋げたもの。
すべての述語論理式は3-CNF(節の中にリテラルが3つのかたち)に変換が可能。
3-CNFの例
(x1∨x2∨x3)∧(x4∨x5∨x6)∧(x7∨x8∨x9)
のような形になっている。
CNFのルール
節の中のリテラルを繋ぐのは ∨ のみ
節同士を繋ぐのは ∧ のみ
¬ は リテラルの中だけにつけること
■CNFに変換する例
お題 : A⇔(B∨C)
まず、a⇔b は (a⇒b)∧(b⇒a) に変換可能なので、
(A⇒(B∨C))∧((B∨C)⇒A)
次に、a⇒bは ¬a∨b に変換可能なので、
(¬A∨(B∨C))∧(¬(B∨C)∨A)
次に、 ¬をリテラルに付ける。 (1)¬(a∨b)≡¬a∧¬b (2)¬(a∧b)≡¬a∨¬b (ド・モルガンの法則)より、
(1)を使って、
(¬A∨(B∨C))∧((¬B∧¬C)∨A)
次に、 節を∧で繋げた形にする。 (3)a∨(b∧c)≡(a∨b)∧(a∨c) (4)a∧(b∨c)≡(a∧b)∨(a∧c)
(3)を使って、
(¬A∨B∨C)∧(¬B∨A)∧(¬C∨A) これは CNF