Publication | Closed Access
Lazy abstraction
168
Citations
6
References
2002
Year
Program CheckingEngineeringVerificationComputer-aided VerificationSoftware EngineeringModel CheckingSoftware AnalysisFormal VerificationSystems EngineeringLazy AbstractionAbstract-check-refine ParadigmComputer EngineeringAbstract ModelComputer ScienceSoftware DesignSoftware VerificationProgram AnalysisAutomated ReasoningSoftware TestingFormal MethodsModel Abstraction
Model checking often uses an abstract‑check‑refine cycle that builds an abstract model, verifies a property, and refines it upon failure. The paper proposes lazy abstraction, an integrated approach to the abstract‑check‑refine loop, and presents an algorithm and implementation for safety‑property checking of C programs. Lazy abstraction incrementally constructs a single abstract model, refining it on demand to provide just‑enough precision for the property, and the authors give sufficient conditions for its termination.
One approach to model checking software is based on the abstract-check-refine paradigm: build an abstract model, then check the desired property, and if the check fails, refine the model and start over. We introduce the concept of lazy abstraction to integrate and optimize the three phases of the abstract-check-refine loop. Lazy abstraction continuously builds and refines a single abstract model on demand, driven by the model checker, so that different parts of the model may exhibit different degrees of precision, namely just enough to verify the desired property. We present an algorithm for model checking safety properties using lazy abstraction and describe an implementation of the algorithm applied to C programs. We also provide sufficient conditions for the termination of the method.
| Year | Citations | |
|---|---|---|
Page 1
Page 1