Definition
Clausal Normal Form
The clausal normal form of a propositional formula is a set of clauses such that is equisatisfiable with .
This is weaker than conjunctive normal form, which requires logical equivalence and can cause exponential blow-up. Clausal normal form avoids this by using naming to introduce new atoms for subformulas.
Definitional Transformation
Naive Definitional Transformation
Naive Definitional Transformation
This algorithm converts a formula into a set of clauses such that is a clausal normal form of .
If has the form , where and each is a clause, then . Otherwise, introduce a name for each subformula of such that is not a literal and use this name instead of the formula.
In detail:
- If is already a conjunction of clauses, return the corresponding set of clauses.
- Otherwise, for each non-literal subformula of , introduce a new atom and add the defining equivalence .
- Replace by in .
- The resulting set is equisatisfiable with .
- Transform each definition into clauses using standard rewrite rules.
This runs in time almost linear in the size of .
Definitional transformation step by step
Let
We name every non-literal subformula, working from the largest to the smallest.
The process is easiest to follow on the parse tree. Each internal node gets the name that will later be used in its defining equivalence:
Step 1 — The whole formula.
The outermost connective is . We name the body of the negation , and let stand for the whole formula:Step 2 — The implication inside.
The subformula is an implication whose antecedent is a conjunction and whose consequent is another implication. We name these two parts and :Step 3 — The conjunction and the inner implication.
The conjunction has two conjuncts: an implication and another implication . We name the first . For the second, its antecedent is not a literal, so we name it and let stand for the whole implication:Step 4 — The remaining implications.
The two implications that now contain only literals are and . We name them and respectively:Step 5 — Convert every definition to clauses.
Each equivalence is expanded using the standard rewrite rules. For instance, becomes , and becomes .The full list is:
name subformula definition clauses , , , , , , , , , , , , , The clausal normal form of is the set of all clauses in the rightmost column.
Polarity-based Definitional Transformation
Polarity-based Definitional Transformation
In the naive transformation, every definition is an equivalence
This produces two clauses for each direction. When all occurrences of in the formula have the same polarity, one of those directions is redundant and can be dropped.
- If occurs only positively, use instead of .
- If occurs only negatively, use instead of .
This yields fewer clauses while preserving equisatisfiability.
Naming on positive polarity
Let be a set of formulas. Let be a formula occurring only positively in . Let be an atom not occurring in and not occurring in .
Let be obtained from by replacing every occurrence of by . Then is satisfiable if and only if is satisfiable.
Naming on negative polarity
Let be a set of formulas. Let be a formula occurring only negatively in . Let be an atom not occurring in and not occurring in .
Let be obtained from by replacing every occurrence of by . Then is satisfiable if and only if is satisfiable.
Relation to Conjunctive Normal Form
CNF vs. clausal normal form
Conjunctive normal form preserves logical equivalence but may produce an exponentially larger formula.
Clausal normal form preserves only equisatisfiability, but the transformation is efficient and the resulting set of clauses is at most linearly larger.
Examples
Nested equivalence
Let
A direct CNF transformation expands each into two clauses and distributes, yielding exponentially many clauses.
Instead, use naming. Introduce new atoms:
The renamed formula is:
The clausal normal form is the set of clauses obtained from , , and . Each piece is small, and the total size is linear in the size of .