Conversion to Conjunctive Normal Form
Definition and Structure of CNF
Conjunctive normal form (CNF) is a standardized format where a propositional formula is written as a conjunction (AND) of clauses, and each clause is a disjunction (OR) of literals. A literal is just a propositional variable or its negation.
Think of it as: everything at the top level is joined by , and inside each clause, everything is joined by .
Example:
Three clauses, each a disjunction of literals, all connected by AND.
Steps to Convert a Formula to CNF
-
Eliminate implications and biconditionals using logical equivalences.
- becomes
- becomes , then eliminate each implication
-
Push negations inward using De Morgan's laws and double negation elimination, until every negation applies directly to a variable.
- becomes
- becomes
- becomes
-
Distribute over to get the final CNF structure.
- becomes
Note the direction of distribution in step 3: you're distributing disjunction over conjunction, which produces a conjunction at the top level. The example in the original guide had this backwards.
Properties and Applications of CNF
Every propositional formula can be converted into an equivalent formula in CNF. This universality is what makes CNF so useful as a standard representation.
CNF is the dominant format for satisfiability (SAT) solvers. These tools take a CNF formula and determine whether any truth assignment makes it true. Most modern SAT algorithms (like DPLL and CDCL) are designed specifically to operate on CNF. Automated theorem provers also commonly convert formulas to CNF before applying resolution or other inference rules.
Transformation to Disjunctive Normal Form
Definition and Structure of DNF
Disjunctive normal form (DNF) is the dual of CNF. Here the formula is written as a disjunction (OR) of clauses, where each clause is a conjunction (AND) of literals.
Top level: everything joined by . Inside each clause: everything joined by .
Example:
Three clauses, each a conjunction of literals, all connected by OR.
Steps to Convert a Formula to DNF
-
Eliminate implications and biconditionals using the same equivalences as for CNF.
- becomes
-
Push negations inward using De Morgan's laws until negations apply only to variables.
- becomes
-
Distribute over to get the final DNF structure.
- becomes
Notice the contrast with CNF: in step 3, you distribute conjunction over disjunction, which produces a disjunction at the top level.

Properties and Applications of DNF
Every propositional formula can be converted into an equivalent formula in DNF.
DNF is particularly useful for reading off satisfying assignments directly. Each clause in a DNF formula describes one way to make the formula true: if you can satisfy all the literals in any single clause, the whole formula is satisfied. This makes checking satisfiability trivial for DNF (just check whether any clause is consistent), though the conversion itself can produce an exponential blowup in formula size.
Conversely, checking validity (tautology) is hard for DNF but easy for CNF. This duality between the two forms is worth keeping in mind.
Properties of Negation Normal Form
Definition and Structure of NNF
Negation normal form (NNF) is a less restrictive normal form. A formula is in NNF when:
- The only connectives used are , , and
- Every negation applies directly to a propositional variable (no negated compound subformulas)
Example:
NNF doesn't require any particular arrangement of and relative to each other. That's what distinguishes it from CNF and DNF.
Steps to Convert a Formula to NNF
-
Eliminate implications and biconditionals.
- becomes
- becomes
-
Push negations inward using De Morgan's laws and double negation elimination until every negation sits directly on a variable.
- becomes
- becomes
That's it. No distribution step is needed, which is why NNF conversion doesn't cause the same size explosion that CNF or DNF conversion can.
Properties and Applications of NNF
Every propositional formula has an equivalent NNF, and the conversion is always polynomial in size (unlike CNF/DNF, which can blow up exponentially).
NNF serves as a natural intermediate step on the way to CNF or DNF: steps 1 and 2 of all three conversion procedures are identical. Once you have NNF, you only need the appropriate distribution step to reach CNF or DNF.
Some reasoning systems work directly on NNF. It's also useful for analyzing the polarity of variables in a formula: in NNF, you can immediately see whether a variable appears positively, negatively, or both, which matters for certain proof systems and optimization techniques.
Simplification using Normal Forms
Normal forms give you a common language for comparing and manipulating formulas. Once two formulas are in the same normal form, you can compare their clause sets to check equivalence, identify redundant clauses, or apply transformations systematically.
A few concrete ways normal forms help with simplification:
- Equivalence checking: Convert both formulas to CNF (or DNF), then compare clause sets. If they produce the same set of clauses (up to reordering and removal of duplicates), they're equivalent.
- Identifying tautologies and contradictions: In CNF, a formula is a tautology if every clause is a tautology (contains some variable and its negation). In DNF, a formula is unsatisfiable if every clause is contradictory.
- Clause elimination: In CNF, you can drop clauses that are subsumed by (logically weaker than) other clauses. In DNF, the same applies to redundant disjuncts.
These techniques are foundational for automated theorem provers, SAT solvers, and knowledge representation systems, where keeping formulas compact and in a standard format makes reasoning tractable.