Presentation on theme: "Satisfiability modulo the Theory of Bit Vectors"— Presentation transcript:
1Satisfiability modulo the Theory of Bit Vectors Alessandro CimattiIRST, Trento, ItalyJoint work with R. Bruttomesso, A. Franzen, A. Griggio, R. SebastianiWe gratefully acknowledge support from the Academic Research Program of Intel
2Index of the talk Satisfiability Modulo Theory The theory of Bit VectorsSatisfiability Modulo BVBit blastingEager encoding into Linear Integer ArithmeticA lazy approachConclusions( A preview of QF_UFBV32 at SMT-COMP )
3SMT in a nutshell Satisfiability Modulo Theory or: beyond boolean SATDecide the satisfiability of a first order formula with respect to a background theoryExamples of relevant theoriesuninterpreted functions: x=y & f(x) != f(y)difference logic: x – y < 7linear arithmetic: 3x + 2y < 12arrays: read(write(M, a0, v0) a1)their combinationsbit vectors
4Why SMT From SAT-based to SMT-based verification Representation of interesting problemstimed automatahybrid automatapipelinessoftwareEfficient solvingleverage availability of structural informationhopefully retaining efficiency of boolean SAT
5Satisfiability Modulo Theory is there a truth-assignment to boolean variablesand a valuation to individual variablessuch that formula evaluates to true?Standard semantics for FOLAssignment to individual variablesInduces truth values to atomsTruth assignment to boolean atomsInduced value to whole formula
6Propositional structure + -++ --+ -++ --TATATATAP P Px y z w xx y z w x
7Two Main Approaches to SMT the eager approachthe lazy approachtheory independent viewtheory specific view
8Eager Approach to SMT Main idea: compilation to SAT STEP1: Theory part compiled to equisatisfiable pure SAT problemSTEP2: run propositional SAT solver
9Propositional structure TAP P Px y z w xx y z w x
10Propositional structure Lifted theoryPropositional structureTA TA TA TAP P P
11The Lazy approach Ingredients a boolean SAT solvera theory solverThe boolean solver is modified to enumerate boolean (partial) modelsThe theory solver is used to Check for theory consistency
12Propositional structure TATA TA TA TATAP P PTATAx y z w xx y z w x
13MathSAT: intuitionsTwo ingredients: boolean search and theory reasoningfind boolean modeltheory atoms treated as boolean atomstruth values to boolean and theory atomsmodel propositionally satisfies the formulacheck consistency wrt theoryset of constraints induced by truth values to theory atomsexistence of values to theory variablesExample: (P v (x = 3)) & (Q v (x – y < 1)) & (y < 2) & (P xor Q)Boolean model!P, (x = 3), Q, (x – y < 1), (y < 2)Check (x = 3), (x – y < 1), (y < 2)Theory contradiction!Another boolean modelP , !(x = 3) , !Q, (x – y < 1), (y < 2)Check !(x = 3), (x – y < 1), (y < 2)Consistent: e.g. x := 0, y := 0
14Boolean SAT: search space QQRSSTSTRRTSAT!The DPLL procedureIncremental construction of satisfying assignmentBacktrack/backjump on conflictLearn reason for conflictSplitting heuristics
15MathSAT: approach DPLL-based enumeration of boolean models Retain all propositional optimizationsConflict-directed backjumping, learningNo overhead if no theory reasoningTight integration betweenboolean reasoning andtheory reasoning
16MathSAT: search space Many boolean models are not theory consistent! P QQRSSTSTRRBool Bool TMath Bool TMath Bool Bool TMath TSAT!Bool Many boolean models are not theory consistent!
17Early pruning Check theory consistency of partial assignments P Q S T EP:Math EP:Math TQEP:Math TSPruned awayin the EP stepEP:Math TTEP:Math TRBool Bool TMath TSAT!
20Fixed Width Bit Vectors Constants0b , 0xFFFF, …Variablesvalued over BitVectors of corresponding widthimplicit restriction to finite domainFunction symbolsselection: x[15:0]concatenation: y :: zbitwise operators: x && y, z || w, …arithmetic operators: x + y, z * w, …shifting: x << 2, y >> 3Predicate symbolscomparators: =, ≠ , > , < , ≥ , ≤
21Fragments of BV theory Core Bitwise operators Arithmetic operators selectionconcatenationBitwise operatorsx && y, x || y, x ^ yArithmetic operatorsx +y, x – y, c * xCore + Bitwise + ArithmeticComplexity of equality between BV termsCore is in PCore + B + A in NPVariable width bit vectors: not covered herecore is in NPsmall additions yield undecidability
22Decision procedures for BV Many approachesCyrluk, Moeller, RuessMoeller, RuessBjørner, PichoraBarrett, Dill, LevittFocus on deciding conjunctions of literalsEmphasis on proof obligations in ITPsome emphasis on variable width, generic wrt NShostak-style integrationcanonizationsolving
24Satisfiability modulo Bit Vectors Applications of interestRTL hardware descriptions essentially bit vectorsassembly-level programssoftware with finite precision arithmeticKey featurecombination of control flow and data flowIn principle, boolean logic can be encoded into BVcontrol (boolean logic) encoded into width 1 BVs.Likely inefficient in comparison to SATMore natural to keep them separate at modelingstructural info can be exploited for verification
25Approaches to SMT(BV) Bit blasting Eager Encoding into LA Lazy approach
29Scalability with respect to N??? Bit Blasting Wordsa,b,c,d,…blasted to [a1,…aN], [b1,…bN], [c1,…cN], [d1,…dN], …LTmp6 != RTmp6(LOut.1 != ROut.1) or … or (LOut.N != ROut.N)LTmp1 = 2 * bformula in 2N vars, conjunction of N iffsLTmp2 = LTmp0 + LTmp1formula relating 3N varspossibly additional vars required (e.g. carries)N = 16 bits?13 secsN = 32 bits?170 secs“But obviously N = 64 bits!”stopped after 2h CPU timeScalability with respect to N???
30Bit-Blasting: Pros and Conses Bottlenecksdependency on word width“wrong” level of abstractionboolean synthesis of arithmetic circuitsassignments are pervasiveconflicts are very fine grainede.g. discover x < yAdvantageslet the SAT solver do all the workand nowadays SAT solvers are tough nuts to crackamalgamation of the decision processno distinction between control and dataconflicts can be as fine grained as possiblebuilt-in capability to generate “new atoms”
31Enhancements to BitBlasting Tuning SAT solver on structural informatione.g. splitting heuristic for addersPreprocessing + SAT [GBD05]rewrite and normalize bit vector termsbit blasting to SAT
33From BV to LIARTL-Datapath Verification using Integer Linear Programming [BD01]BV constants as integers0b32_1111 as 15BV variables as integer valued variables, with range constraintsreg x [31:0] as x in range [0, 2^32)Assignments treated as equality, e.g. x = yArithmetic, e.g. z = x + yLinear arithmetic? not quite! BV Arithmetic is modulo 2^Nz = x + y - 2^N s, with z in [0, 2^N)Concatenation: x :: y as 2^n x + ySelection: relational encoding (based on integrity)x[23:16] as xm, wherex = 2^24 xh + 2^16 xm + xl, xl in [0, 2^16), xm in [0, 2^8), xl in [0, 2^8)Bitwise operatorsbased on selection of individual bitsSOLVERthe omega test
34From SMT(BV) into SMT(LIA) Generalizes [BD01] to deal with boolean structureEager encoding into SMT(LIA)Unfortunately, not very efficientMore precisely, a failure
35Retrospective Analysis Crazy approach?ArithmeticLinear arithmetic? not quite! BV Arithmetic is modulo 2^NSelection and Concatenationan easy problem becomes expensive!Bitwise operatorsHARD!!!Available solvers not adequateintegers with infinite precisionreasoning with integers may be hard (e.g. BnB within real relaxation)Functional dependencies are lost!A clear culprit: static encodingdepending on control flow, same signal is split in different partsz = if P then x[7:0] :: y[3:0] else x[5:2] :: y[10:3]x, y and also z are split more than neededthe notion of “maximal chunk” depends on P !!!
37A lazy approach Based on standard MathSAT schema DPLL-based model enumeationDedicated Solver for Bit vectorsThe encoding leverages information resulting from decisionsGiven values to control variables, the data path is easier to deal with (e.g. maximal chunks are bigger)Layering in the theory solverequality reasoninglimited simplification rulesfull blown bit vector solver only at the end
39Rewriting rules evaluation of constant terms rules for equality 0b8_ [4:2] becomes 0b3_101rules for equalityx = y and Phi(x) becomes Phi(y)based on congruence closuresplitting concatenations(x :: y) = z becomes x = z[h_n] && y == z[l_n]
41BV rewriter Rules are applied until fix point reachedcontradiction foundImplementation based on EUF reasonerrules as merges between eq classesOpen issuesincrementality/backtrackabilityselective rule activationconflic set reconstructionWhen it fails …
42LIA encoding (the last hope) idenfication of maximal slices“purification”: separating out arithmetic and BW by introduction of additional variablesNB: on resulting problemsLIA encoding always superior to bit blasting!!!cfr [DB01]
43Status of Implementation Implementation still in prototypical state“Does a lot of stupid things”conflict minimization by deletion filteringchecking that conflict are in fact minimalunnecessary calls to LA for SAT clusterscalling LA solver implemented as dump on file, and run external MathSAThuge conflict sets
45Competitors Run against MiniSAT 1.14 KEY REMARK: ~ winner of SAT competition in 2005KEY REMARK:boolean methods are very matureA good reason for giving up?
46Test benches 74 benchmarks from industrial partner Unfortunately would have been ideal for SMT-COMPQF_UFBV32Unfortunatelycan not be disclosed“will have to be destroyed after the collaboration”hopefully our lives will be spared
49Conclusions A “market need” for SMT(BV) solvers Bit Blasting: tough competitorsAfter a failure, …Preliminary results are encouragingFuture challengesoptimize BV solverbetter conflict setstackle some RTL verification casesextension to memories
51QF_UFBV at SMT-COMPthe MathSAT you will see there IS NOT the one I describedWe currently have no results for QF_UFBVEasy benchmarks:QF_UFBV not particularly “SMT”the boolean component is nearly missingthe BV part is “easily” solvable by bit blastingWe entered SMT-COMP QF_UFBV32MathSAT based on BIT BLASTING to SATNuSMV based on bit blasting to BDDs
52QF_UFBV: Bit Blasting to SAT Preprocessing based onAckerman’s elimination of function symbolsrewriting simplificationbit blastingCore: call SAT solver underlying MathSATevery SAT problem in < 0.3 secsmost UNSAT within secondsa handful of hard ones between 300 and 500 secs
53BDDs (???) on SMT-COMP tests Even NuSMV entered SMT-COMPAckerman’s elimination of functional symbolsRewriting preprocessorCore solverbased on BDDsconjunctively partitioned problemstructural BDD-based ordering (bit interleaving)(almost) no dynamic reorderingaffinity-based clustering, threshold 100 nodesearly quantificationSeems to work well both on SAT and UNSAT instances
54RESULTS first STP then YICES then NuSMV then CVC3 (but no results on two samples)then MathSAT BITBLASTING3rd on SATlast on UNSAT