Verifying temporal heap properties specified via evolution logic

E. Yahav, T. Reps, M. Sagiv, R. Wilhelm

Research output: Contribution to journalArticlepeer-review

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.

Original languageEnglish
Pages (from-to)755-783
Number of pages29
JournalLogic Journal of the IGPL
Volume14
Issue number5
DOIs
StatePublished - Oct 2006

Keywords

  • Abstract interpretation
  • First-order logic
  • Temporal logic
  • Verification

Fingerprint

Dive into the research topics of 'Verifying temporal heap properties specified via evolution logic'. Together they form a unique fingerprint.

Cite this