Negation normal form
In mathematical logic, a formula is in negation normal form (NNF) if the negation operator (formula_1, ) is only applied to variables and the only other allowed Boolean operators are conjunction (formula_2, ) and disjunction (formula_3, ). Negation normal form is not a canonical form: for example, formula_4 and formula_5 are equivalent, and are both in negation normal form. In classical logic and many modal logics, every formula can be brought into this form by replacing implications and equivalences by their definitions, using De Morgan's laws to push negation inwards, and eliminating double negations. This process can be represented  using the following rewrite rules (Handbook of Automated Reasoning 1, p. 204): [In these rules, the formula_7 symbol indicates logical implication in the formula being rewritten, and formula_8 is the rewriting operation.] Transformation into negation normal form can increase the size of a formula only linearly: the number of occurrences of atomic formulas remains the same, the total number of occurrences of formula_2 and formula_3 is unchanged, and the number of occurrences of formula_1 may double. A formula in negation normal form can be put into the stronger conjunctive normal form or disjunctive normal form by applying distributivity. Repeated application  of distributivity may exponentially increase the size of a formula. In the classical propositional logic, transformation to negation normal form does not impact computational properties: the satisfiability problem continues to be NP-complete, and the validity problem continues to be co-NP-complete. For formulas in CNF, validity problem is solvable in polynomial time, and for formulas in DNF, the satisfiability problem is solvable in polynomial time. Examples and counterexamples. The following formulae are all in negation normal form: The first example is also in conjunctive normal form and the last two are in both conjunctive normal form and disjunctive  normal form, but the second example is in neither. The following formulae are not in negation normal form: They are however respectively equivalent to the following formulae in negation normal form: