充足可能性保存変換
任意の論理式をCNFに線形時間帰着する方法
以前見つけていたのに、今回探すのにめちゃ苦労したので残しておく
http://www.nue.ie.niigata-u.ac.jp/~aoto/lecture/Logic/lecture4.pdf
定数代入
$ N\leftrightarrow\bot
$ \Leftrightarrow \overline N
$ \Leftrightarrow (\bot+\overline N+\bot)
$ N\leftrightarrow\top
$ \Leftrightarrow N
$ \Leftrightarrow(\bot+N+\bot)
1 項演算子
$ N\leftrightarrow\overline x
$ \Leftrightarrow (N+x)(\overline N+\overline x)
$ N\leftrightarrow x
$ \Leftrightarrow (N+\overline x)(\overline N+x)
2 項演算子
$ N\leftrightarrow x\cdot y
$ \Leftrightarrow (N\to x\cdot y)(x\cdot y\to N)
$ \Leftrightarrow(\overline N+x\cdot y)(\overline x+\overline y+N)
$ \Leftrightarrow(\overline N+x)(\overline N+y)(\overline x+\overline y+N)
$ \Leftrightarrow(\overline N+x)(\overline N+y)(\overline x+\overline y+N)
$ N\leftrightarrow x+y
$ \Leftrightarrow(N\to(x+y))((x+y)\to N)
$ \Leftrightarrow(\overline N+x+y)(\overline x\cdot\overline y+N)
$ \Leftrightarrow(\overline N+x+y)(\overline x+N)(\overline y+N)
$ \Leftrightarrow(\overline N+x+y)(\overline x+N)(\overline y+N)
not と and と or を表せたので、これの繰り返しにより任意の論理式をを3CNFに線形時間帰着できる