260 likes | 419 Views
Abstraction Refinement for Bounded Model Checking. Highly Jet Lagged. Anubhav Gupta, CMU Ofer Strichman, Technion. Bounded Model Checking (BMC). Search for bugs in executions of a bounded length
E N D
Abstraction Refinement for Bounded Model Checking Highly Jet Lagged Anubhav Gupta, CMU Ofer Strichman, Technion
Bounded Model Checking (BMC) • Search for bugs in executions of a bounded length • Generates a propositional formula that is satisfiable if and only if there is a counterexample of length k • Extremely efficient SAT-solvers are available
SAT BMC BMC - Implementation Incremental Solver Yes NO BUG No BUG Unsat Sat
How to identify ? Abstraction for BDD-based Model Checking Abstraction Model Checking complexity is proportional to BDD size Smaller BDD
MC Counterexample Guided Abstraction Refinement (CEGAR) BUG TRUE No Fail Pass Yes
Inside a SAT-Solver • Davis-Putnam-Logemann-Loveland (DPLL) procedure • Decisions • Boolean Constraint Propagation (BCP) • Conflict Analysis, Backtrack Search Tree
Decisions • Identify a goodvariable and assign it a value • Many Variable Selection Heuristics • Give preference to variables that are involved in conflicts • Order is continuously updated • Like abstraction-refinement • These heuristics try to reduce the size of the search tree
BCP • Identify assignments implied by unit-clause rule • 90% of run-time in solver spent on BCP • Time spent on BCP is proportional to the size of the CNF
Conflict Analysis and Backtrack • Identify variable assignments responsible for infeasibility of current search path • Ensures that assignments are locally consistent • Prune away irrelevant parts of the search tree
Abstraction for BMC Abstraction Smaller CNF
How to identify ? Why Abstraction for BMC ? • Variable selection can focus on important variables • Solver can ignore local conflicts that are irrelevant to the property • BCP is faster on smaller CNF Abstraction
CEGAR for BMC • Apply CEGAR to BMC • Refinement • SAT-solvers produce proofs of unsatisfiability • Have been used successively for refinement in CEGAR for model checking • Proofs provide an efficient and inexpensive refinement mechanism for CEGAR on BMC
SAT SAT Counterexample Guided Bounded Model Checking (CG-BMC) Yes NO BUG No BUG Sat Sat Unsat
CG-BMC • Abstract model: model that refutes previously seen spurious counterexamples • Forces solver to find full abstract trace before attempting to refute it • Solver is not lost in local conflicts • Most of the BCP is performed on smaller abstract model Abstract Model Concrete Model
A more robust CG-BMC • The following scenario was observed on some benchmarks: • Current abstract model is sufficient to prove the property • Proving the property on abstract model is hard • BMC on abstract model is slow • There exists an easier proof using additional constraints from concrete model • BMC on concrete model is faster • CG-BMC gets stuck on abstract model • Solution: Timeouts
SAT SAT CG-BMC with Timeouts (CG-BMC-T) CG-BMC Yes Time NO BUG No BUG Sat Sat Time Unsat
Related Work • Refining the SAT decision ordering for bounded model checking, Wang et al., DAC 2004 • Variables in current abstract model are given preference in variable splitting order • Static Method: Always decide first on variables in abstract model • Dynamic Method: Switch to default solver-heuristic after a threshold number of backtracks • Solver works on the whole CNF • BCP is expensive • Potential for irrelevant conflicts
SAT SAT Our CG-BMC Implementation Incremental Solver1 Incremental Solver2 Yes NO BUG No BUG Sat Sat Unsat
Experiments • PicoJava Benchmarks – derived from compositional verification of ICU (Source: Ken McMillan) • Implementation on top of zChaff • Comparison with BMC and Wang et al. • Timeout = 2hrs • Max Depth (K) = 60 • Measured run-time and number of backtracks
Conclusions • Abstraction refinement makes BMC faster • Reduction in number of backtracks • Reduction in BCP time
Future Work • CG-BMC inside a SAT-solver • Abstraction levels for clauses • Ignore clauses in lower levels until all higher levels are satisfied • Move clauses up (and down) across levels • Application to SAT-solving in general . . .