How can I convert this equation to CNF?
¬((p ∨ ¬Q) ⊃ R) ⊃ (P ∧ R)) 44 Answers
To convert a propositional formula to conjunctive normal form, perform the following two steps:
Push negations into the formula, repeatedly applying De Morgan's Law, until all negations only apply to atoms. You obtain a formula in negation normal form.
¬(p ∨ q)to(¬p) ∧ (¬q)¬(p ∧ q)to(¬p) ∨ (¬q)
Repeatedly apply the distributive law where a disjunction occurs over a conjunction. Once this is not possible anymore, the formula is in CNF.
p ∨ (q ∧ r)to(p ∨ q) ∧ (p ∨ r)
To obtain a formula in disjunctive normal form, simply apply the distribution of ∧ over ∨ in step 2.
Note about ⊂
The subset symbol (⊂) used in the question is just an alternative notation for the logical implication/entailment, which is usually written as an arrow (⇒).
1To convert first-order logic to CNF:
- Convert to Negation normal form.
- Eliminate implications: convert x → y to ¬ x ∨ y
- Move NOTs inwards.
- Standardize variables
- Skolemize the statement
- Drop universal quantifiers
- Distribute ANDs over ORs.
(Artificial Intelligence: A modern Approach [1995...] Russel and Norvig)
Might I suggest this? There is an algorithm for conversion on the page.
4I have implemented a small tool in Java that can do basic transformation from a boolean expression into (C|D)NF. If you are interested, you might want to have a look at . The implementation is based on these lecture notes. A more detailed description can be found here. Any feedback would be greatly appreciated ;-).