Abstract
This paper addresses the problem of establishing temporal properties of programs written in languages, such as Java, that make extensive use of the heap to allocate—and deallocate—new objects and threads. Establishing liveness properties is a particularly hard challenge. One of the crucial obstacles is that heap locations have no static names and the number of heap locations is unbounded. The paper presents a framework for the verification of Java-like programs. Unlike classical model checking, which uses propositional temporal logic, we use first-order temporal logic to specify temporal properties of heap evolutions; this logic allows domain changes to be expressed, which permits allocation and deallocation to be modelled naturally. The paper also presents an abstract-interpretation algorithm that automatically verifies temporal properties expressed using the logic.
This research was supported by a grant from the Ministry of Science, Israel, a grant from the Academy of Science Israel, by the RTD project IST-1999-20527 “DAEDALUS” of the European FP5 programme, by ONR under contract N00014-01-1-0796, and by the A. von Humboldt Foundation.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
E.M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.
J. C. Corbett, M. B. Dwyer, J. Hatcliff, and Robby. A language framework for expressing checkable properties of dynamic software. In SPIN, 2000.
B. Courcelle. On the expression of graph properties in some fragments of monadic secondorder logic. In N. Immerman and P.G. Kolaitis, editors, Descriptive Complexity and Finite Models: Proceedings of a DIAMCSWorkshop, chapter 2, pages 33–57. American Mathematical Society, 1996.
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In POPL, 1977.
P. Cousot and R. Cousot. Temporal abstract interpretation. In Proc. of 27th POPL, pages 12–25, January 2000.
N. Dor, M. Rodeh, and M. Sagiv. Checking cleanness in linked lists. In SAS. Springer, 2000.
M. B. Dwyer, G. S. Avrunin, and J. C. Corbett. Patterns in property specifications for finitestate verification. In Proc. of Int. Conf. on Software Engineering, pages 411–421, May 1999.
M. Fitting and R.L. Mendelsohn. First-Order Modal Logic, volume 277 of Synthese Library. Kluwer Academic Publishers, Dordrecht, 1998.
G.E. Hughes and M.J. Creswel. An Introduction to Modal Logic. Methuen, London, 1982.
Y. Kesten, A. Pnueli, and M. Vardi. Verification by augmented abstraction: The automatatheoretic view. JCSS: J. of Comp. Sys. Sci., 62, 2001.
T. Lev-Ami and M. Sagiv. TVLA: A framework for Kleene based static analysis. In Static Analysis Symposium. Springer, 2000.
D. Lewis. Counterpart theory and quantified modal logic. Journal of Philosophy, LXV(5):113–126, 1968.
Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer, 1995.
A. Pnueli, J. Xu, and L. Zuck. Liveness with (0,1,infinity)-counter abstraction. CAV 2002.
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Transactions on Programming Languages and Systems, 24(3):217.
M.Y. Vardi and Pierre Wolper. Reasoning about infinite computations. Information and Computation, 115(1):1–37, 15 November 1994.
E. Yahav. http://www.cs.tau.ac.il/.yahave.
E. Yahav. Verifying safety properties of concurrent Java programs using 3-valued logic. In Proc. of 27th POPL, pages 27–40, March 2001.
E. Yahav, T. Reps, and M. Sagiv. LTL model checking for systems with unbounded number of dynamically created threads and objects. Technical Report TR-1424, CS Dept., Univ. of Wisconsin, Madison, WI, March 2001.
E. Yahav, T. Reps, M. Sagiv, and R. Wilhelm. Automatic verification of temporal properties of concurrent heap-manipulating programs using evolution logic. Technical Report 338/02, School of CS, Tel Aviv University, Israel, July 2002.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yahav, E., Reps, T., Sagiv, M., Wilhelm, R. (2003). Verifying Temporal Heap Properties Specified via Evolution Logic. In: Degano, P. (eds) Programming Languages and Systems. ESOP 2003. Lecture Notes in Computer Science, vol 2618. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36575-3_15
Download citation
DOI: https://doi.org/10.1007/3-540-36575-3_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00886-6
Online ISBN: 978-3-540-36575-4
eBook Packages: Springer Book Archive