Conjunctive normal form
Conjunctive Normal Form or CNF is a method of standardizing and normalizing formulas in Boolean logic. It is similar to the Canonical sum of products form used in circuit theory. A logical formula is considered to be in CNF if and only if it is a single conjunction of disjunctions. Thus all simple conjunctions are in CNF, but also all simple disjunctions are degenerately in CNF. For example, all of the following formulas are in CNF:
A ∧ B ¬A ∧ (B ∨ C) (A ∨ B) ∧ (¬B ∨ C ∨ ¬D) ∧ (D ∨ ¬E) (¬B ∨ C)But the following are not:
¬(B ∨ C)
(A ∧ B) ∨ C
A ∧ (B ∨ (D ∧ E))
¬B ∧ ¬C
(A ∨ C) ∧ (B ∨ C)
A ∧ (B ∨ D) ∧ (B ∨ E)
(X1 ∧ Y1) ∨ (X2 ∧ Y2) ∨ ... ∨ (Xn ∧ Yn)
Conjunctive Normal Form can be taken further to yield the Clausal normal form of a logical formula, that is used to preform first order resolution.
An important set of problems in computational complexity involves finding assignments to the variables of a boolean formula expressed in Conjunctive Normal Form, such that the formula is true. 3-SAT is the problem of finding a satisfying assignment to a boolean formula expressed in CNF such that each disjunction contains at most 3 variables. This has been shown to be NP-complete. The corresponding 2-SAT problem however can be solved in linear time.
See Also:
