Definition
Unit Propagation
Let be a set of clauses. Unit propagation is the repeated application of the following transformation.
If contains a unit clause, that is, a clause consisting of a single literal , then:
The process continues until no unit clause remains. At that point one of three situations holds:
- is empty: every clause was satisfied, so the original set is satisfiable.
- contains the empty clause : a contradiction was derived, so the original set is unsatisfiable.
- contains non-unit clauses only: no further simplification is possible without choosing a literal to branch on.
Intuitively, must be true, so every clause containing is already satisfied and can be discarded, while is false and can be deleted from every clause that contains it.
Examples
Iterated unit propagation
Consider the formula
The clause is a unit clause, so we assign :
In step I, is assigned true, eliminating the clause containing and removing from the third clause. In step II, this creates a new unit clause , which propagates to yield the simplified formula III.
Deriving a contradiction
Consider the set of clauses
The literal is a unit clause, so we apply the transformation with :
- remove the clause ;
- replace by .
This gives
Now is a unit clause, so we apply the transformation with :
This gives
The empty clause is unsatisfiable. Hence the original set is unsatisfiable, and unit propagation has established this without any guessing.