sat-solving logic

Definition

Conflict-Driven Clause Learning

Conflict-driven clause learning is a complete algorithm for the satisfiability problem that extends the DPLL algorithm by analysing conflicts and adding new clauses implied by the current formula. Whenever a partial assignment produces a conflict under unit propagation, the solver derives a learned clause that prevents the same conflicting assignment pattern from being repeated, then backtracks non-chronologically to a decision level at which the learned clause becomes unit.

Mechanism

Decision Phase (Branching): The solver selects an unassigned variable and assigns a truth value according to a branching heuristic. This creates a new decision level in the search tree.

Propagation Phase (Implication): After each decision, the solver applies unit propagation until no unit clause remains or a conflict is detected. The propagated assignments can be represented by an implication graph.

Conflict Analysis (Learning): If propagation derives the empty clause, the solver analyses the implication graph and derives a clause implied by the formula. This learned clause cuts off the current conflicting region of the search space.

Backjumping (Non-Chronological): Instead of undoing only the most recent decision, the solver jumps back to the highest decision level compatible with the learned clause. The learned clause is then typically unit and immediately propagates.

Restart Strategy (Global Search Control): Modern CDCL solvers often restart the search while retaining learned clauses. This combines global exploration with the accumulated information obtained from previous conflicts.

Properties

Correctness (Soundness and Completeness): Every learned clause is logically implied by the original formula, so learning preserves satisfiability. Since the procedure explores assignments together with learned constraints, CDCL remains complete.

Practical Strength (Clause Reuse): The central advantage of CDCL over plain DPLL is that conflicts are turned into reusable information. In practice, this dramatically reduces repeated exploration of equivalent failing assignments.

Example

Consider

with

Propagation Sequence (Decision Levels): Suppose the solver makes the decisions at level , at level , an irrelevant decision at level , and at level . After substituting these assignments into , the residual formula is

Hence unit propagation proceeds as follows:

Thus propagation derives , then , then , then and , and finally the contradictory pair and . Equivalently, clause becomes unsatisfied, so a conflict is reached.

Learned Clause (Conflict Analysis): The conflict depends on the assignments , , and . Hence one possible learned clause is

This clause excludes the same conflicting combination in future search. Depending on the concrete learning scheme, a different but implied learned clause may be derived.

After learning , the solver backtracks to a decision level at which this clause is not yet falsified. The clause states that the assignments , , and cannot simultaneously hold. Hence any future assignment must satisfy at least one of , , or , meaning that at least one of , , or must be set to . In this way, the learned clause prevents the solver from revisiting the same conflicting configuration.