意味 論理式は、1つ以上のリテラルの1 つ以上の論理積の 選言 である場合、DNFであるとみなされます。 DNF式は、各変数がすべての論理積 にちょうど1回出現し、各論理積が(変数の順序を除いて)最大1回出現する場合、完全な選言標準形です。論理積標準形 (CNF)と同様に、DNFの命題演算子は、および (∧ {\displaystyle \wedge } )、または (∨ {\displaystyle \vee } )、ではなく (¬ {\displaystyle \neg } )。否定 演算子はリテラルの一部としてのみ使用できます。つまり、命題変数の 前にのみ置くことができます。
以下は、DNFの文脈自由文法です。
DNF → {\displaystyle \,\to \,} (選言 )∣ {\displaystyle \,\mid \,} (選言 )∨ {\displaystyle \,\lor \,} DNF 選言的 → {\displaystyle \,\to \,} リテラル ∣ {\displaystyle \,\mid \,} リテラル ∧ {\displaystyle \,\land \,} 選言的 リテラル → {\displaystyle \,\to \,} 変数 ∣ {\displaystyle \,\mid \,} ¬ {\displaystyle \,\neg \,} 変数 ここで「変数」 は任意の変数です。
例えば、以下の数式はすべてDNF形式です。
( A ∧ ¬ B ∧ ¬ C ) ∨ ( ¬ D ∧ E ∧ F ∧ D ∧ F ) {\displaystyle (A\land \neg B\land \neg C)\lor (\neg D\land E\land F\land D\land F)} ( A ∧ B ) ∨ ( C ) {\displaystyle (A\land B)\lor (C)} ( A ∧ B ) {\displaystyle (A\land B)} ( A ) {\displaystyle (A)} 式A ∨ B {\displaystyle A\lor B} は DNF 形式ですが、完全な DNF 形式ではありません。同等の完全な DNF バージョンは( A ∧ B ) ∨ ( A ∧ ¬ B ) ∨ ( ¬ A ∧ B ) {\displaystyle (A\land B)\lor (A\land \lnot B)\lor (\lnot A\land B)} 。
以下の数式はDNF形式ではありません 。
¬ ( A ∨ B ) {\displaystyle \neg (A\or B)} ORがNOTの中にネストされているため¬ ( A ∧ B ) ∨ C {\displaystyle \neg (A\land B)\lor C} AND は NOT の中にネストされているためA ∨ ( B ∧ ( C ∨ D ) ) {\displaystyle A\lor (B\land (C\lor D))} OR は AND の中にネストされているため[ 5 ]
DNFへの変換 古典論理 では、各命題論理式は DNF に変換できます ...
選言標準形(¬ A ∧¬ B ∧¬ D ) ∨ (¬ A ∧ B ∧ C ) ∨ ( A ∧ B ∧ D ) ∨ ( A ∧¬ B ∧¬ C )の カルノー図 選言標準形(¬ A ∧ C ∧¬ D ) ∨ ( B ∧ C ∧ D ) ∨ ( A ∧¬ C ∧ D ) ∨ (¬ B ∧¬ C ∧¬ D ) のカルノー図。グループ化は異なるものの、前の図と同様に同じフィールドに「1」が含まれています。
構文的な手段によって 変換には、二重否定の消去 、ド・モルガンの法則 、分配法則 などの論理的同値関係 の使用が含まれます。原始的な 結合子から構築された式 { ∧ 、 ∨ 、 ¬ } {\displaystyle \{\land ,\lor ,\lnot \}} [ 7 ] は 、次の正規項書き換えシステム 。
( ¬ ¬ x ) ⇝ x ( ¬ ( x ∨ y ) ) ⇝ ( ( ¬ x ) ∧ ( ¬ y ) ) ( ¬ ( x ∧ y ) ) ⇝ ( ( ¬ x ) ∨ ( ¬ y ) ) ( x ∧ ( y ∨ z ) ) ⇝ ( ( x ∧ y ) ∨ ( x ∧ z ) ) ( ( x ∨ y ) ∧ z ) ⇝ ( ( x ∧ z ) ∨ ( y ∧ z ) ) {\displaystyle {\begin{array}{rcl}(\lnot \lnot x)&\rightsquigarrow &x\\(\lnot (x\lor y))&\rightsquigarrow &((\lnot x)\land (\lnot y))\\(\lnot (x\land y))&\rightsquigarrow &((\lnot x)\lor (\lnot y))\\(x\land (y\lor z))&\rightsquigarrow &((x\land y)\lor (x\land z))\\((x\lor y)\land z)&\rightsquigarrow &((x\land z)\lor (y\land z))\\\end{array}}}
命題論理式は、ただ1つの完全なDNFで表現できます。[ 13 ] 対照的に、複数の単純な DNFが可能な場合があります。たとえば、ルールを適用することで( ( 1 ∧ b ) ∨ ( ¬ 1 ∧ b ) ) ⇝ b {\displaystyle ((a\land b)\lor (\lnot a\land b))\rightsquigarrow b} 3回、上記の完全なDNFϕ {\displaystyle \phi } 簡略化できる( ¬ p ∧ ¬ q ) ∨ ( ¬ p ∧ r ) ∨ ( ¬ q ∧ r ) {\displaystyle (\lnot p\land \lnot q)\lor (\lnot p\land r)\lor (\lnot q\land r)} ただし、この規則では相互に変換できない同等の DNF 式も存在します。例については図を参照してください。
命題論理 におけるすべての無矛盾な式は選言標準形に変換できる という定理がある。 [ 14 ] [ 15 ] [ 16 ] [ 17 ] これは選言標準形定理 と呼ばれる。[ 14 ] [ 15 ] [ 16 ] [ 17 ] 正式な記述は以下のとおりである。
選言標準形定理 :X {\displaystyle X} 命題言語の文であるL {\displaystyle {\mathcal {L}}} とn {\displaystyle n} 文文字は、A 1 、 。 。 。 、 A n {\displaystyle A_{1},...,A_{n}} 。 もしX {\displaystyle X} が矛盾でない場合、それは次の形式の論理積の選言と真理関数的に同値である。± A 1 ∧ 。 。 。 ∧ ± A n {\displaystyle \pm A_{1}\land ...\land \pm A_{n}} 、 どこ+ A 私 = A 私 {\displaystyle +A_{i}=A_{i}} 、 そして− A 私 = ¬ A 私 {\displaystyle -A_{i}=\neg A_{i}} [ 15 ]
証明は、真理値表 からDNFを生成するために上述した手順から導かれる。正式には、証明は以下のとおりである。
仮定するX {\displaystyle X} は命題言語の文であり、その文文字はA 、 B 、 C 、 … {\displaystyle A,B,C,\ldots } .各行についてX {\displaystyle X} の真理値表から、対応する論理積を書き出す。 ± A ∧ ± B ∧ ± C ∧ … {\displaystyle \pm A\land \pm B\land \pm C\land \ldots } 、 どこ± A {\displaystyle \pm A} と定義されるA {\displaystyle A} もしA {\displaystyle A} 値を取るT {\displaystyle T} その列で、そして¬ A {\displaystyle \neg A} もしA {\displaystyle A} 値を取るF {\displaystyle F} その行で。同様に± B {\displaystyle \pm B} 、± C {\displaystyle \pm C} など(アルファベット順 )A 、 B 、 C 、 … {\displaystyle A,B,C,\ldots } 接続詞の は完全に任意です。代わりに他の を選択することもできます。次に、に対応するこれらの接続詞の選言を形成します。 T {\displaystyle T} 列X {\displaystyle X} の真理値表。この論理和は、L [ A 、 B 、 C 、 … ; ∧ 、 ∨ 、 ¬ ] {\displaystyle {\mathcal {L}}[A,B,C,\ldots ;\land ,\lor ,\neg ]} , [ 18 ] 上記の推論により、真理関数的に等価なのはX {\displaystyle X} この構成は明らかに次のことを前提としている。X {\displaystyle X} 値を取るT {\displaystyle T} 真理値表の少なくとも1行に、X {\displaystyle X} そうでない、つまり、もしX {\displaystyle X} 矛盾して いるならば、X {\displaystyle X} と同等A ∧ ¬ A {\displaystyle A\land \neg A} もちろん、これも文ですL [ A 、 B 、 C 、 … ; ∧ 、 ∨ 、 ¬ ] {\displaystyle {\mathcal {L}}[A,B,C,\ldots ;\land ,\lor ,\neg ]} . [ 15 ]
この定理は、命題論理における多くの有用なメタ論理的 結果を導出する便利な方法であり、例えば、自明なことに 、結合子の集合が{ ∧ 、 ∨ 、 ¬ } {\displaystyle \{\land ,\lor ,\neg \}} 機能的に完全で ある。[ 15 ]
接続詞の最大数 命題論理式は以下から構築されるn {\displaystyle n} 変数、ここでn ≥ 1 {\displaystyle n\geq 1} 。
がある2 n {\displaystyle 2n} 可能なリテラル:L = { p 1 、 ¬ p 1 、 p 2 、 ¬ p 2 、 … 、 p n 、 ¬ p n } {\displaystyle L=\{p_{1},\lnot p_{1},p_{2},\lnot p_{2},\ldots ,p_{n},\lnot p_{n}\}} 。
L {\displaystyle L} もっている( 2 2 n − 1 ) {\displaystyle (2^{2n}-1)} 空でない部分集合。[ 19 ]
これは、DNFが持つことができる接続詞の最大数です。[ 13 ]
完全なDNFは最大で2 n {\displaystyle 2^{n}} 真理値表の各行に対応する論理積。
例1
2つの変数を含む数式を考えてみましょう。p {\displaystyle p} そしてq {\displaystyle q} 。
最長のDNFは2 ( 2 × 2 ) − 1 = 15 {\displaystyle 2^{(2\times 2)}-1=15} 接続詞: [ 13 ]
( ¬ p ) ∨ ( p ) ∨ ( ¬ q ) ∨ ( q ) ∨ ( ¬ p ∧ p ) ∨ ( ¬ p ∧ ¬ q ) _ ∨ ( ¬ p ∧ q ) _ ∨ ( p ∧ ¬ q ) _ ∨ ( p ∧ q ) _ ∨ ( ¬ q ∧ q ) ∨ ( ¬ p ∧ p ∧ ¬ q ) ∨ ( ¬ p ∧ p ∧ q ) ∨ ( ¬ p ∧ ¬ q ∧ q ) ∨ ( p ∧ ¬ q ∧ q ) ∨ ( ¬ p ∧ p ∧ ¬ q ∧ q ) {\displaystyle {\begin{array}{lcl}(\lnot p)\lor (p)\lor (\lnot q)\lor (q)\lor \\(\lnot p\land p)\lor {\underline {(\lnot p\land \lnot q)}}\lor {\underline {(\lnot p\land q)}}\lor {\underline {(p\land \lnot q)}}\lor {\underline {(p\land q)}}\lor (\lnot q\land q)\lor \\(\lnot p\land p\land \lnot q)\lor (\lnot p\land p\land q)\lor (\lnot p\land \lnot q\land q)\lor (p\land \lnot q\land q)\lor \\(\lnot p\land p\land \lnot q\land q)\end{array}}} 可能な限り最長の完全な DNF には 4 つの接続詞があり、それらは下線で示されています。
この式はトートロジー です。これを簡略化すると次のようになります。( ¬ p ∨ p ) {\displaystyle (\neg p\lor p)} または( ¬ q ∨ q ) {\displaystyle (\neg q\lor q)} これらは同義反復であると同時に、有効なDNFでもある。
例2
例式の各DNF( X 1 ∨ Y 1 ) ∧ ( X 2 ∨ Y 2 ) ∧ ⋯ ∧ ( X n ∨ Y n ) {\displaystyle (X_{1}\lor Y_{1})\land (X_{2}\lor Y_{2})\land \dots \land (X_{n}\lor Y_{n})} もっている2 n {\displaystyle 2^{n}} 接続詞。
バリエーション 計算複雑性 の研究で用いられる重要な変種の一つにk-DNF がある。式がk-DNF であるのは、それがDNFであり、かつ各論理積が最大でk個のリテラルを含む場合である。