Abstract
Generalized model checking is a framework for reasoning about partial state spaces of concurrent reactive systems. The state space of a system is only “partial” (partially known) when a full state-space exploration is not computationally tractable, or when abstraction techniques are used to simplify the system’s representation. In the context of automatic abstraction, generalized model checking means checking whether there exists a concretization of an abstraction that satisfies a temporal logic formula. In this paper, we show how generalized model checking can extend existing automatic abstraction techniques (such as predicate abstraction) for model checking concurrent/reactive programs and yield the three following improvements: (1) any temporal logic formula can be checked (not just universal properties as with traditional conservative abstractions), (2) correctness proofs and counter-examples are both guaranteed to be sound, and (3) verification results can be more precise. We study the cost needed to improve precision by presenting new upper and lower bounds for the complexity of generalized model checking in the size of the abstraction.
Supported in part by NSF.
Chapter PDF
Similar content being viewed by others
References
T. Ball, A. Podelski, and S. K. Rajamani. Boolean and Cartesian Abstraction for Model Checking C Programs. In Proceedings of TACAS’2001 (Tools and Algorithms for the Construction and Analysis of Systems), volume 2031 of Lecture Notes in Computer Science. Springer-Verlag, April 2001.
T. Ball and S. Rajamani. The SLAM Toolkit. In Proceedings of CAV’2001 (13th Conference on Computer Aided Verification), Paris, July 2001.
G. Bruns and P. Godefroid. Model Checking Partial State Spaces with 3-Valued Temporal Logics. In Proceedings of the 11th Conference on Computer Aided Verification, volume 1633 of Lecture Notes in Computer Science, pages 274–287, Trento, July 1999. Springer-Verlag.
G. Bruns and P. Godefroid. Generalized Model Checking: Reasoning about Partial State Spaces. In Proceedings of CONCUR’2000 (11th International Conference on Concurrency Theory), volume 1877 of Lecture Notes in Computer Science, pages 168–182, University Park, August 2000. Springer-Verlag.
E. M. Clarke and E. A. Emerson. Design and Synthesis of Synchronization Skeletons using Branching-Time Temporal Logic. In D. Kozen, editor, Proceedings of the Workshop on Logic of Programs, Yorktown Heights, volume 131 of Lecture Notes in Computer Science, pages 52–71. Springer-Verlag, 1981.
J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby, and H. Zheng. Bandera: Extracting Finite-State Models from Java Source Code. In Proceedings of the 22nd International Conference on Software Engineering, 2000.
P. Cousot and R. Cousot. Temporal Abstract Interpretation. In Proceedings of the 27th ACM Symposium on Principles of Programming Languages, pages 12–25, Boston, January 2000.
D. Dams. Abstract interpretation and partition refinement for model checking. PhD thesis, Technische Universiteit Eindhoven, The Netherlands, 1996.
S. Das and D. L. Dill. Successive Approximation of Abstract Transition Relations. In Proceedings of LICS’2001 (16th IEEE Symposium on Logic in Computer Science), pages 51–58, Boston, June 2001.
P. Godefroid. Model Checking for Programming Languages using VeriSoft. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 174–186, Paris, January 1997.
P. Godefroid, M. Huth, and R. Jagadeesan. Abstraction-based Model Checking using Modal Transition Systems. In Proceedings of CONCUR’2001 (12th International Conference on Concurrency Theory), volume 2154 of Lecture Notes in Computer Science, pages 426–440, Aalborg, August 2001. Springer-Verlag.
S. Graf and H. Saidi. Construction of Abstract State Graphs with PVS. In Proceedings of the 9th International Conference on Computer Aided Verification, volume 1254 of Lecture Notes in Computer Science, pages 72–83, Haifa, June 1997. Springer-Verlag.
T. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy Abstraction. In Proceedings of the 29th ACM Symposium on Principles of Programming Languages, Portland, January 2002.
G. J. Holzmann and M. H. Smith. A Practical Method for Verifying Event-Driven Software. In Proceedings of the 21st International Conference on Software Engineering, pages 597–607, 1999.
M. Huth, R. Jagadeesan, and D. Schmidt. Modal Transition Systems: a Foundation for Three-Valued Program Analysis. In Proceedings of the European Symposium on Programming (ESOP’2001), volume 2028 of Lecture Notes in Computer Science. Springer-Verlag, April 2001.
S. C. Kleene. Introduction to Metamathematics. North Holland, 1987.
D. Kozen. Results on the Propositional Mu-Calculus. Theoretical Computer Science, 27:333–354, 1983.
O. Kupferman, M. Y. Vardi, and P. Wolper. An Automata-Theoretic Approach to Branching-Time Model Checking. Journal of the ACM, 47(2):312–360, March 2000.
K. G. Larsen and B. Thomsen. A Modal Process Logic. In Proceedings of Third Annual Symposium on Logic in Computer Science, pages 203–210. IEEE Computer Society Press, 1988.
Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, 1992.
K. S. Namjoshi and R. K. Kurshan. Syntactic Program Transformations for Automatic Abstraction. In Proceedings of the 12th Conference on Computer Aided Verification, volume 1855 of Lecture Notes in Computer Science, pages 435–449, Chicago, July 2000. Springer-Verlag.
F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer-Verlag, 1999.
M. Y. Vardi. Why is Modal Logic So Robustly Decidable? In Proceedings of DIMACS Workshop on Descriptive Complexity and Finite Models. AMS, 1997.
M. Y. Vardi and P. Wolper. Automata-Theoretic Techniques for Modal Logics of Programs. Journal of Computer and System Science, 32(2):183–221, April 1986.
W. Visser, K. Havelund, G. Brat, and S. Park. Model Checking Programs. In Proceedings of ASE’2000 (15th International Conference on Automated Software Engineering), Grenoble, September 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Godefroid, P., Jagadeesan, R. (2002). Automatic Abstraction Using Generalized Model Checking. In: Brinksma, E., Larsen, K.G. (eds) Computer Aided Verification. CAV 2002. Lecture Notes in Computer Science, vol 2404. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45657-0_11
Download citation
DOI: https://doi.org/10.1007/3-540-45657-0_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43997-4
Online ISBN: 978-3-540-45657-5
eBook Packages: Springer Book Archive