合取範式

在布爾邏輯中 ， 如果一個公式是子句的合取 ， 那麼它是合取範式 ( CNF ) 的 。 作爲規範形式 ， 它在自動定理證明中有用 。 它類似於在電路理論中的規範和之積形式 。 所有的文字的合取和所有的文字的析取是 CNF 的 ， 因爲可以被分別看作一個文字的子句的合取和析取 。 和析取範式 ( DNF ) 中一樣 ， 在 CNF 公式中可以包含的命題連結詞是與 、 或和非 。 非算子只能用做文字的一部分 ， 這意味着它只能在命題變量前出現 。 例如 ， 下列所有公式都是 CNF: 而下列不是: 上述三個公式分別等價於合取範式的下列三個公式: 所有命題公式都可以轉換成 CNF 的等價公式 。 這種變換基於了關於邏輯等價的規則: 雙重否定律 、 德 · 摩根定律和分配律 。 因爲所有邏輯公式都可以轉換成合取範式的等價公式 ， 證明經常基於所有公式都是 CNF 的假定 。 但是在某些情況下 ， 這種到 CNF 的轉換可能導致公式的指數性爆漲 。 例如 ， 把下述非 - CNF 公式轉換成 CNF 生成有 個子句的公式: