Henzinger, Thomas AIST Austria ; Jhala, Ranjit ; Majumdar, Ritankar S ; Sutre, Grégoire
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.
58 - 70
POPL: Principles of Programming Languages
Henzinger TA, Jhala R, Majumdar R, Sutre G. Lazy abstraction. In: ACM; 2002:58-70. doi:10.1145/503272.503279
Henzinger, T. A., Jhala, R., Majumdar, R., & Sutre, G. (2002). Lazy abstraction (pp. 58–70). Presented at the POPL: Principles of Programming Languages, ACM. https://doi.org/10.1145/503272.503279
Henzinger, Thomas A, Ranjit Jhala, Ritankar Majumdar, and Grégoire Sutre. “Lazy Abstraction,” 58–70. ACM, 2002. https://doi.org/10.1145/503272.503279.
T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre, “Lazy abstraction,” presented at the POPL: Principles of Programming Languages, 2002, pp. 58–70.
Henzinger TA, Jhala R, Majumdar R, Sutre G. 2002. Lazy abstraction. POPL: Principles of Programming Languages 58–70.
Henzinger, Thomas A., et al. Lazy Abstraction. ACM, 2002, pp. 58–70, doi:10.1145/503272.503279.