Explore modules

DPLL Satisfiability Search

Follow unit implications and backtracking decisions to find a satisfying assignment or prove that none exists.

Free theory article

Follow unit implications and backtracking decisions to find a satisfying assignment or prove that none exists.

Concept & interpretation

The Davis-Putnam-Logemann-Loveland (DPLL) algorithm is a complete, backtracking-based search algorithm for deciding the satisfiability of propositional logic formulae in Conjunctive Normal Form (CNF).

Experiment with the native controls

Open the interactive DPLL Satisfiability Search module.

  1. Examine the default Formula which contains clauses separated by semicolons.
  2. Click Step to reveal one recursive call after source-order unit propagation. Observe how DPLL selects the first unassigned variable and branches on it (trying true first).
  3. Notice when a branch leads to a conflict (a clause evaluates to false), the algorithm backtracks to try the alternative assignment (false).
  4. If a unit clause is formed, observe how unit propagation immediately forces the assignment of the remaining literal without branching.
  5. Click Finish to immediately find the terminal SAT/UNSAT state and the witness assignment.
Read the full free theory article