Logic Journal of IGPL Advance Access originally published online on September 30, 2006
Logic Journal of IGPL 2006 14(5):755-783; doi:10.1093/jigpal/jzl009
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Verifying Temporal Heap Properties Specified via Evolution Logic
School of Computer Science, Tel Aviv University, Tel Aviv, 69978, Israel. E-mail: yahave{at}post.tau.ac.il
Computer Sciences Department, University of Wisconsin, Madison, WI 53706, USA. E-mail: reps{at}cs.wisc.edu
School of Computer Science, Tel Aviv University, Tel Aviv, 69978, Israel. E-mail: msagiv{at}post.tau.ac.il
Informatik, Universität des Saarlandes, Saarbrücken, Germany. E-mail: wilhelm{at}cs.uni-sb.de
| 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 allocateand deallocatenew 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.
Key Words: Verification first-order logic temporal logic abstract interpretation