Davis Putnam Procedure
A SAT solver called on a Clause set with the empty assignment. It uses Unit Propagation and Splitting.
Explanation
Inputs
- Clause Set
- Accumulator for the partial assignment
Unit Propagation
While there are still unit clauses left in the clause set:
- extend the partial assignment with the truth value of the current clause
- when the clause set is an empty set return the message unsatisfiable
- when there are no more clauses in the set return the current assignment
Splitting Rule
Select any proposition which is not defined in the current partial assignment. Now recursively call the procedure on:
- The assignment extended by one truth value for the selected proposition
- The assignment extended by the other truth value for the selected proposition
Return assignment when one of the splits is not unsatisfiable, else recurse further.
Examples