opensmt2
play

OpenSMT2 A Parallel, Interpolating SMT Solver Antti Hyvrinen, - PowerPoint PPT Presentation

OpenSMT2 A Parallel, Interpolating SMT Solver Antti Hyvrinen, Matteo Marescotti, Leonardo Alt, Sepideh Asadi, and Natasha Sharygina Why another SMT solver? Interpolation Model checking OpenSMT Parallel SMT Solving OpenSMT2


  1. OpenSMT2 A Parallel, Interpolating SMT Solver Antti Hyvärinen, Matteo Marescotti, Leonardo Alt, Sepideh Asadi, and Natasha Sharygina

  2. Why another SMT solver? Interpolation Model checking OpenSMT Parallel SMT Solving

  3. OpenSMT2 • MIT-licensed SMT solver written in C++, from Università della Svizzera italiana, • Available from http://verify.inf.usi.ch/opensmt • Currently supports QF_UF , QF_LRA, and to some extent QF_BV • Labeled interpolation on propositional logic, QF_UF , and QF_LRA, with proof compression • Cluster-scale parallelisation • Relatively compact (approx. 55,000 LoC) • An object-oriented design to help extensions for the theories

  4. The DPLL(T) architecture in OpenSMT2 results σ SAT solver smt2 file SMT parser φ CNF Theory solvers φ s Theory specific c ′ translation c simplification to CNF φ API Program results • The solver consists of a SAT solver and theory solvers • API for C++ • A more limited API for C and Python

  5. The Theory Solver Architecture Theory THandler SAT solver E T UFTheory LRATheory TSolverHandler E S Logic E L LRALogic UFTHandler LRATHandler • Theory Solver architecture is split into three parts: TSolver • Logic framework for describing the problem Egraph LRASolver • Solver framework for solving the problem • Theory framework connecting the solver to its logic • SAT solver accesses the framework by making queries on the Theory

  6. Interpolation

  7. Interpolation B I' A I • Interpolation is a way to over-approximate states in a safe way • Given an unsatisfiable formula , compute an interpolant such that and is unsat A ∧ B I A → I I ∧ B • OpenSMT supports interpolation for • propositional logic, • uninterpreted functions with equality, and • linear real arithmetics

  8. Interpolation in OpenSMT Model Checker φ = A ∧ B SAT / UNSAT OpenSMT2 SMT Solver Partitions A and B Interpolation Module Interpolant Proof of UNSAT Strength requirements Interpolator Proof Analysis Labeling Boolean Boolean Boolean Proof of UNSAT Proof of UNSAT Labeling functions Proof statistics EUF EUF EUF Partitions A and B Partitions A and B LRA LRA LRA • The OpenSMT API provides the application with a full control over the interpolant generation • Many of the more routine tasks are implemented e ffi ciently inside OpenSMT so that the user does not need to take care of such details. • The system makes it comfortable to construct and experiment with new labelling functions

  9. Interpolation with Equality of Uninterpreted Functions • Interpolants have the duality property: • Let be an interpolant over-approximating . A I ( A, B ) Then also is an interpolant over-approximating A ¬ I ( B, A ) • Often we can show that I ( A, B ) → ¬ I ( B, A ) • The duality can be used to construct new interpolants with di ff erent interpolant strength

  10. Previous interpolation algorithm Single interpolant

  11. EUF-interpolation system Strength/size requirements Labeling function s w w s w w s Dual Previous interpolation interpolation w s algorithm algorithm Multiple interpolants

  12. Interpolation for LRA 5 B 4 I D 3 2 I 0 . 5 1 A I M 1 2 3 4 5 • We provide also LRA interpolation in OpenSMT • Based similarly on Duality • New interpolants are constructed by shifting the constraints with a constant

  13. Model Checking

  14. Modelling with Theories ( inc ( y 0 ) = y 0 + 1) ∧ (( y 0 ≥ 0 ∧ y 0 < 10) → (( z 0 = inc ( y 0 )) ∧ ¬ ( z 0 > 0 ∧ z 0 ≤ 20))

  15. Theory Refinement Model checker Symbolically encoded program UFP BVP BVP F B BVP F B SMT solver • Model a problem with uninterpreted functions instead of bit-precise semantics • Use counter-examples to guide the refinement from uninterpreted functions to bit-precise circuits • Add theory-combination-style clauses to connect inputs from uninterpreted functions to the circuits

  16. Algorithm 1: The Counterexample-Guided Theory Refinement Algorithm input : P = { ( x 1 = t 1 ) , . . . , ( x n = t n ) } : a program, and t : a safety property output: h Safe , ?i or h Unsafe , CE b i 1 For all 1  i  n initialize ρ [ x i = t i ] [ x i = t i ] u 2 ρ [ t ] [ t ] u 3 F B > Construct a 4 while true do Query ρ [ x 1 = t 1 ] ^ . . . ^ ρ [ x n = t n ] ^ ¬ ρ [ t ] ^ F B 5 query h result , CE i checkSAT ( Query ) 6 if result is UnSAT then 7 return h Safe , ?i 8 end 9 Get a CE b getValues ( CE ) 10 counterexample = [ s ] b do foreach s 2 P [ { t } s.t. ρ [ s ] 6 | 11 h result , i checkSAT ([ s ] b ^ CE b ) 12 if result is UnSAT then 13 ρ [ s ] refine s ( ρ [ s ]) 14 Refine F B computeBinding ( ρ ) 15 break 16 end 17 end 18 if No s was refined at line 14 then 19 return h Unsafe , CE b i 20 end 21 22 end From Hyvärinen & al.: Theory Refinement for Program Verification, to appear at SAT 2017

  17. Parallel Solving

  18. Parallel SMT Solving • OpenSMT uses the parallelisation tree as the basis for distributing work • The idea is to combine divide-and-conquer approaches with algorithm portfolios • In particular, the framework allows simultaneous partitioning in several di ff erent ways

  19. Algorithm portfolios 1 • Using inherent randomness in 0 . 8 runtimes to obtain speed-up • The speed-up depends on the 0 . 6 instance 0 . 4 • Green instance probably provides little speed-up 0 . 2 • Magenta instance has much 0 more potential 0 10000 20000 30000 40000 decisions

  20. Divide-and-conquer: partitioning the search space to obtain speed-up 1 partition 1 partititon 2 0 . 8 orig probability Use a partitioning function to 0 . 6 produce from an instance F 0 . 4 a set of instances F 1 , . . . , F n 0 . 2 such that F ≡ F 1 ∨ . . . ∨ F n 0 30 100 1000 time (s) F i Solve each separately in parallel 1 partition 1 partititon 2 0 . 8 orig The e ffi ciency also depends significantly probability 0 . 6 on the instance 0 . 4 • The above partitioning results in two 0 . 2 very even instances • The partitioning below has one very 0 30 100 1000 easy and one equally hard instance time (s)

  21. 19 Partitioning 18 17 16 15 14 13 12 11 10 9 8 7 6 Divide-and-conquer can be tricky, 5 4 the e ffi ciency depends on the theory 3 2 The figure shows the run-time probability 1 0 for an LRA instance when fixing n literals 1 0 . 8 probability 0 . 6 0 . 4 0 . 2 Initially the instance changes little, 0 after a while takes a big jump, and finally gets harder (as presumably the 10 100 1000 other instances will get easier) time and stagnates

  22. Parallelisation Tree • Present under a single framework the ways portfolio and divide-and-conquer can be combined • Based on an and-or-tree • Each and-node correspond to an SMT instance and has or-nodes as children • Or-nodes corresponds to applications of partitioning function and have and-nodes as children • The root of the tree is an and-node • The and-nodes can have solvers solving the contained SMT instance • Tree rooted at an and-node is • satisfiable, if the contained instance is shows satisfiable by an SMT solver or one of the subtrees is shown satisfiable • unsatisfiable, if the contained instance is shown unsatisfiable by an SMT solver or one of the subtrees is shown unsatisfiable • A tree rooted at an or-node is • satisfiable, if one of its children is satisfiable • unsatisfiable, if all of its children are unsatisfiable

  23. And-node Original instance Or-node Di ff erent ways to partition Partitions Di ff erent ways to partition

  24. Conclusions • A relatively compact SMT solver • Supports the core SMT theories and incrementality • Relatively e ffi cient • Supports embedding into tools through a library interface • Supports interpolation • Scales to cloud computing http://verify.inf.usi.ch/opensmt

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend