Negation normal form
||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (June 2015)|
In mathematical logic, a formula is in negation normal form if the negation operator (, not) is only applied to variables and the only other allowed Boolean operators are conjunction (, and) and disjunction (, or).
Negation normal form is not a canonical form: for example, and 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:
Examples and counterexamples
The following formulae are all in negation normal form:
The following formulae are not in negation normal form:
They are however respectively equivalent to the following formulae in negation normal form:
Validity testing for CNF is polynomial time, and satisfiability testing for DNF is polynomial time, whereas for NNF these two problems are respectively co-NP-complete and NP-complete. In general, NNF does not provide (asymptotic) computational advantages over arbitrary Boolean formulas or circuits, and its utility is in somewhat simpler handling of negations. Several subclasses of NNF, in addition to CNF and DNF, have more favorable properties, including DNNF.
- Alan J.A. Robinson and Andrei Voronkov, Handbook of Automated Reasoning 1:203ff (2001) ISBN 0444829490.