Title: A Progressive Approach for Satisfiability Modulo Theories
1A Progressive Approach for Satisfiability Modulo
Theories
- Hossein M. Sheini
- Karem A. Sakallah
- Electrical Engineering and Computer Science
- University of Michigan, Ann Arbor, Michigan, USA
- Constraints and Verification 2006
- Isaac Newton Institute for Mathematical Sciences
2Outline
- Problem formulation applications
- Algorithmic components
- Boolean solver
- Unit 2-variable-per-inequality integer solver
- General-purpose ILP solver
- Solution strategies
- Related approaches
- Experimental evaluation
- Conclusions and future work
3Satisfiability Modulo TheoriesConjunctive Normal
Form (SMT-CNF)
- Variables
- Boolean
- Integer
- Atoms
- Boolean variable
- Integer UTVPI
- Integer constraint
- Literal atom or negation of atom
- Clause disjunction of literals
- Formula conjunction of clauses
4SMT-CNF
- Find an assignment to all Boolean (and integer)
variables such that - OR prove that no such solution exists
5Satisfiability Modulo Theories (SMT)
- SMT is the problem of deciding the satisfiability
of a quantifier-free formula in one or more
first-order theories. - Theories of interest are logics of
- Equality (E)
- Integer Unit-Two-Variable-Per-Inequality (UTVPI)
(U) -
- Integer Linear Arithmetic (C)
6Satisfiability Modulo Theories (SMT)
7Example SMT-CNF Instance
8Applications of SMT
- Verification (SW, HW)
- Model checking of timed automata
- Microprocessor verification
- Program verification
- Buffer over-run vulnerabilities
- Scheduling
- Temporal reasoning
- Job-shop scheduling
9Solution Algorithm Version 1
Invoke Solvers Sequentially
- Enumerate Boolean solutions
- Check consistency of implied integer constraints
10Problem Decomposition Indicator Variables
11Boolean Satisfiability
- DPLL-style search to find a solution to a Boolean
CNF formula or to prove no such solution exists - Major algorithmic advances in last decade
- Conflict analysis
- Clause recording (learning)
- Non-chronological backtracking
- Efficient BCP using watched literals
- Random restarts
- Adaptive decision heuristics (VSIDS, etc.)
- MiniSAT
- N. Eén, N. Sörensson, An Extensible SAT-solver
SAT03
12UTVPI Integer Constraint Solver
Jaffar et als polynomial-time incremental
algorithm
- Maintain a transitively-closed and tightened set
of UTVPI constraints - Generate and add all implied UTVPI constraints
every time a new constraint is added
13UTVPI Algorithm Example
14Algorithm Version 1
Boolean Solver
Formula
Decision Tree
Implication Graph
15Algorithm Version 1
UTVPI Solver
Formula
Boolean Solution
16Pros/Cons of Version 1 Algorithm
- Pros
- Loose integration of Boolean and UTVPI/ILP
solvers - Cons
- Late detection of conflicts
- Inability to analyze UTVPI/ILP conflicts
- Possibility of enumerating several solutions that
are inconsistent for the same reason - Extra work if unsatisfiability is due to logical
constraints
17Solution Algorithm Version 2
- Integrate UTVPI solver into the Boolean solver
- Check consistency of relevant integer constraints
off-line with a generic ILP solver
18Algorithm Version 2
19Algorithm Version 2
20Solution Algorithm Version 3
Conservatively abstract formula Replace equality
with one-way implication
21Algorithm Version 3
22Final Version of Combined Algorithm
- Always Enforce only one-way implication from
indicator variable to its UTVPI constraint - Sometimes Enforce equality between indicator
variable and its UTVPI constraint when
computationally cheap
23Final Version on Example Formula
24Handling non-UTVPI Constraints
UTVPI constraints sharing both variables with
non-UTVPI constraints
to Integer Programming Solver
UNSAT
25Offline Learning Cutting Planes
NEW
26Learning on Example Formula
27Progressive Solving Scheme
- Gradual Concretization of the Formula
- Gradual Activation of Theory Solvers
28Implementation
- ARIO Satisfiability Modulo Theories (SMT) Solver
written in C - More info at http//www.eecs.umich.edu/ario
29Comparison to Other Methods
DPLL(T) - Ario Version 2
Ario Version 1
MathSAT
Strategy for Linking Theories
UCLID
equality
?X
?X
?X
?X
?X
Ario Final
?X
Ario Version 3
MLLP
conditional
?X
?X
?X
?X
Big-M Simplex/BB
Branch-and-Check
Lazy
Tight
Eager
Strategy for Solving Theories
30Experimental Evaluation
- Wisconsin Safety Analysis (WiSA)
- Fischer's mutual exclusion protocol
- MathSAT CIRC
- CIRC Safety Checking of RTL Circuits
31Wisconsin Safety Analysis (WiSA)
32Wisconsin Safety Analysis (WiSA)
33Fischer's Mutual Exclusion Protocol(Encoded for
MathSAT)
34MathSAT CIRC Suite
- Generated for MathSAT, verifying properties for
some simple circuits.
Copied from MathSAT TACAS 2005 paper comparing
accumulated time of CIRC benchmarks for MathSAT,
CVC and ICS
35RTCL - Safety Properties for RTL Circuits
36Conclusions and Future Work
- Judicious integration/use of solvers
- Boolean reasoning (constraint propagation,
conflict analysis, non-chronological
backtracking, etc.) is key to scalability - Incrementality is essential for performance
- Further benchmarking, tuning, competition?