Authors
Greta Yorsh, Alexander Rabinovich, Mooly Sagiv, Antoine Meyer, Ahmed Bouajjani
Publication date
2007/10/31
Journal
The Journal of Logic and Algebraic Programming
Volume
73
Issue
1
Pages
111-142
Publisher
North-Holland
Description
We define a new decidable logic for expressing and checking invariants of programs that manipulate dynamically-allocated objects via pointers and destructive pointer updates. The main feature of this logic is the ability to limit the neighborhood of a node that is reachable via a regular expression from a designated node. The logic is closed under boolean operations (entailment, negation) and has a finite model property. The key technical result is the proof of decidability. We show how to express preconditions, postconditions, and loop invariants for some interesting programs. It is also possible to express properties such as disjointness of data-structures, and low-level heap mutations. Moreover, our logic can express properties of arbitrary data-structures and of an arbitrary number of pointer fields. The latter provides a way to naturally specify postconditions that relate the fields on the entry of a procedure to the field …
Total citations
200620072008200920102011201220132014201520162017201820192020202189986137695511211
Scholar articles
G Yorsh, A Rabinovich, M Sagiv, A Meyer, A Bouajjani - The Journal of Logic and Algebraic Programming, 2007