Solving Non-linear Arithmetic Dejan Jovanovic and Leonadro de Moura Presented by Boris Trayvas
Outline Background - Introduction - Conflict-Driven Clause Learning - Definitions An Abstract Decision Procedure - States and Well Formed States - Search, Clause & Conflict Rules Producing Explanations - More Definitions - Intro to Cylindrical Algebraic Decomposition - Projection Based Explanations Experimental Results
Introduction I Everyone loves polynomials! Tarski (1951) showed a decision procedure for elimination of quantifiers over the reals, which shows the existence of an (impractical) decision procedure for solving polynomial constraints. Collins (1975) first showed a procedure using cylindrical algebraic decomposition (CAD).
Introduction II
Conflict-Driven Clause Learning The Algorithm: Black boxes: - PickBranchingVariable() – What variable to “guess” next? - UnitPropagation() – What can I learn from the new assignment? - ConflictAnalysis() – What clause should I add to prevent the conflict?
CDCL Example
Definitions I
Definitions II
Definitions III
Definitions IV
Polynomial Constraint Problem
An Abstract Decision Procedure Although the algorithm is a CDCL-style algorithm, we will present it as an abstract transition system. This system can be generalized to apply to theories other than non-linear arithmetic.
Trail and Trail Elements
Trail Examples I
The Implied Assignment
Stage Increasing
Trail Examples II
Value
Well-Formed State
The Transition System
Search Rules I
Search Rules – Select-Clause The Select-Clause rule selects a clause from the current stage for which the value is undefined and moves to the clause processing mode to satisfy it.
Search Rules - Conflict The Conflict rule detects a clause from the current stage that is inconsistent and tries to resolve the conflict it by moving to the conflict analysis mode.
Search Rules Lift-Level
Search Rules - SAT
Search Rules - Forget The last rule is the Forget rule, that allows us to eliminate a clause that was added while analyzing conflicts.
Search Rules II Note that once we move to the next stage, all the clauses of the previous stages are satisfied, and they will not be selected by the Select-Clause or Conflict rules.
Clause Processing Rules
Processing Rules – B-Propagate
Processing Rules – R-Propagate
Processing Rules – Decide-Literal If neither of the propagate rules works, we assume that some literal is true for a compatible literal.
Conflict Analysis Rules
Conflict Rules – Resolve- Propagation
Conflict Rules – Resolve Decision
Conflict Rules - Consume
Conflict Rules – Drop-Stage
Conflict Rules - Unsat Finally, if we backtrack all the way to the beginning with a conflict, we will return unsat.
Termination Theorem
The Explain Procedure
Definitions V
A much needed example
Intro to CAD
Projection-Based Explanations
Experimental Results The algorithm (nlsat) did overall better than other algorithms. Each other algorithm was generally good at one or two problem sets and not so good on the others, but this algorithm was pretty good on all the problem sets.
Fin