Download presentation
Presentation is loading. Please wait.
Published byNancy Alexander Modified over 6 years ago
1
A 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
2
ARIO / Sheini & Sakallah
Outline 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 1/14/2019 ARIO / Sheini & Sakallah
3
Satisfiability Modulo Theories Conjunctive 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 1/14/2019 ARIO / Sheini & Sakallah
4
ARIO / Sheini & Sakallah
SMT-CNF Given a SMT-CNF formula Find an assignment to all Boolean (and integer) variables such that OR prove that no such solution exists 1/14/2019 ARIO / Sheini & Sakallah
5
Satisfiability 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) 1/14/2019 ARIO / Sheini & Sakallah
6
Satisfiability Modulo Theories (SMT)
SMT formula 1/14/2019 ARIO / Sheini & Sakallah
7
Example SMT-CNF Instance
1/14/2019 ARIO / Sheini & Sakallah
8
ARIO / Sheini & Sakallah
Applications of SMT Verification (SW, HW) Model checking of timed automata Microprocessor verification Program verification Buffer over-run vulnerabilities Scheduling Temporal reasoning Job-shop scheduling 1/14/2019 ARIO / Sheini & Sakallah
9
Solution Algorithm: Version 1
Invoke Solvers Sequentially Enumerate Boolean solutions Check consistency of implied integer constraints Boolean Solver ILP SAT UNSAT MIB-CNF Instance 1/14/2019 ARIO / Sheini & Sakallah
10
Problem Decomposition: Indicator Variables
1/14/2019 ARIO / Sheini & Sakallah
11
Boolean 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” SAT’03] 1/14/2019 ARIO / Sheini & Sakallah
12
UTVPI Integer Constraint Solver
Jaffar et al’s 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 1/14/2019 ARIO / Sheini & Sakallah
13
UTVPI Algorithm Example
1/14/2019 ARIO / Sheini & Sakallah
14
ARIO / Sheini & Sakallah
Algorithm Version 1 Boolean Solver Formula Decision Tree Implication Graph 1/14/2019 ARIO / Sheini & Sakallah
15
ARIO / Sheini & Sakallah
Algorithm Version 1 UTVPI Solver Boolean Solution Formula Add conflict clause and return to Boolean solver 1/14/2019 ARIO / Sheini & Sakallah
16
Pros/Cons of Version 1 Algorithm
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” 1/14/2019 ARIO / Sheini & Sakallah
17
Solution Algorithm: Version 2
Integrate UTVPI solver into the Boolean solver Check consistency of relevant integer constraints off-line with a generic ILP solver 1/14/2019 ARIO / Sheini & Sakallah
18
ARIO / Sheini & Sakallah
Algorithm Version 2 1/14/2019 ARIO / Sheini & Sakallah
19
ARIO / Sheini & Sakallah
Algorithm Version 2 1/14/2019 ARIO / Sheini & Sakallah
20
Solution Algorithm: Version 3
Conservatively abstract formula Replace equality with one-way implication Positive unate in all B variables 1/14/2019 ARIO / Sheini & Sakallah
21
ARIO / Sheini & Sakallah
Algorithm Version 3 1/14/2019 ARIO / Sheini & Sakallah
22
Final 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 1/14/2019 ARIO / Sheini & Sakallah
23
Final Version on Example Formula
1/14/2019 ARIO / Sheini & Sakallah
24
Handling non-UTVPI Constraints
Solution So far: UTVPI constraints sharing both variables with non-UTVPI constraints to Integer Programming Solver UNSAT 1/14/2019 ARIO / Sheini & Sakallah
25
Offline Learning: Cutting Planes
NEW 1/14/2019 ARIO / Sheini & Sakallah
26
Learning on Example Formula
1/14/2019 ARIO / Sheini & Sakallah
27
Progressive Solving Scheme
Gradual Concretization of the Formula = Gradual Activation of Theory Solvers 1/14/2019 ARIO / Sheini & Sakallah
28
ARIO / Sheini & Sakallah
Implementation ARIO Satisfiability Modulo Theories (SMT) Solver written in C++ More info at: 1/14/2019 ARIO / Sheini & Sakallah
29
Comparison 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 Branch-and-Check Big-M Simplex/B&B Lazy Tight Eager Strategy for Solving Theories 1/14/2019 ARIO / Sheini & Sakallah
30
Experimental Evaluation
Wisconsin Safety Analysis (WiSA) Fischer's mutual exclusion protocol MathSAT CIRC CIRC – Safety Checking of RTL Circuits 1/14/2019 ARIO / Sheini & Sakallah
31
Wisconsin Safety Analysis (WiSA)
benchmark number of conflicts Number of iterations total in UTVPI in Cutting Planes with Cutting no Cutting s-20-20 1111 1057 6 10 84 s-20-30 3172 3009 12 8 2066 s-20-40 30611 30418 3 1 time-out s-30-30 1500 1436 2 447 s-30-40 7631 7281 29 11 273 xs-20-20 877 811 17 160 xs-20-30 396 388 318 xs-20-40 748710 746239 xs-30-40 3739 3596 18 16 255 1/14/2019 ARIO / Sheini & Sakallah
32
Wisconsin Safety Analysis (WiSA)
benchmark UCLID time ICS ARIO time UTVPI non-UTVPI total s-20-20 8.78 0.25 0.17 0.01 0.26 s-20-30 9.50 0.37 0.32 0.61 s-20-40 4.50 286.84 2.77 5.05 s-30-30 20.89 1.64 0.28 0.45 s-30-40 19.21 7.41 1.21 2.06 xs-20-20 26.03 17.77 0.35 0.02 0.57 xs-20-30 21.42 0.1 0.23 xs-20-40 14.18 >3600 173.9 276.43 xs-30-40 33.22 1.88 0.06 3.01 1/14/2019 ARIO / Sheini & Sakallah
33
Fischer's Mutual Exclusion Protocol (Encoded for MathSAT)
These are benchmarks encoded by MathSAT developers and probably very adaptable to MathSAT. Below the diagonal line means that ARIO is faster and above that means the other solver is faster. ARIO is faster than CVC Lite (the latest version from Stanford) similar to SVC ARIO is comparable to MathSAT but slower in some large instances. (possibly due to that the are not as many conflicts amonf DL constraints which makes online processing of them slower than off-line processing) Timeout = 600 sec. 1/14/2019 ARIO / Sheini & Sakallah
34
ARIO / Sheini & Sakallah
MathSAT 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 1/14/2019 ARIO / Sheini & Sakallah
35
RTCL - Safety Properties for RTL Circuits
1/14/2019 ARIO / Sheini & Sakallah
36
Conclusions 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? 1/14/2019 ARIO / Sheini & Sakallah
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.