Is a boolean formula satisfiable? DPLL decides it by backtracking search with two accelerators: unit propagation (a one-literal clause forces its variable) and pure-literal elimination. It is the ancestor of every modern SAT and SMT solver — the engines behind verification, planning, and much of automated reasoning. And “DPLL” is really two papers, two years apart.
Repeatedly: if a clause has a single unassigned literal (a unit), that literal must be true — propagate it; if a variable appears only positively or only negatively (pure), fix it. When nothing is forced, pick a variable and split, recursing on both values with backtracking. Empty clause ⇒ conflict; all clauses satisfied ⇒ SAT. Edit the formula. live demo
“DPLL is the 1962 paper’s idea, including unit propagation” — unit propagation is in the 1962 1960 paper; 1962’s new idea is the split. cited
Two Davis papers, two methods; the resolution one (DP) and the search one (DPLL) are genuinely different. DP 1960 / DPLL 1962
Literals are signed integers, clauses and the assignment are bounded arrays — and the tiny formula decides on the compiler: