Conjunctive normal form is a structured way of showing propositions to allow them to be resolved more easily. It divides a proposition into disjunctive clauses, joined together by conjunction.
Definition
Conjunctive Normal Form (CNF)
A proposition, is in conjunctive normal form iff it can be expressed as:
- are literals, they can either be an atom () or its negation ()
- Each pair of brackets surround a disjunctive phrase (literals combined with disjunction)
- Hence, a proposition is in CNF if it can be expressed as a conjunction of disjunctive phrases
Clausal Form
CNF can also be expressed as a multiset, known as its clausal form
- Each set represents a disjunctive phrase : means
- Disjunctive phrases with one literal are singletons : means
- An empty set inside the multiset evaluates to false: means
- Each element in the set is a literal
Because a literal can only be an atom or its negation, for atoms, we have a maximum of literals. There are possible subsets for a set with elements. The longest clausal form of atoms would be a multiset consisting of all its subsets. However, we cannot include an empty subset.
Hence, we have such phrases in the longest possible clause.
For example:
- One atom (): The longest CF we can create is which has phrases.
- Two atoms ( and ): Has phrases
Converting to CNF
To convert to CNF, we first need to convert to Negation Normal Form (NNF):
- First convert to NNF:
- Use distributivity:
It also helps to remove duplicates, tautologies and subsumptions#todo
Theorems
T1: Every proposition has an logically equivalent CNF
T2: Every unsatisfiable of conjunctives clauses has a refutation
Let be a set of conjunctive clauses.
- : is unsatisfiable
- : has a refutation
- : Meta-implication (not material implication!)