A Logic of Reachable Patterns in Linked Data-Structures

Abstract : 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 precondition, 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 procedure's entry to the field on procedure's exit. Therefore, it is possible to use the logic to automatically prove partial correctness of programs performing low-level heap mutations.
Type de document :
Article dans une revue
Journal of Logic and Algebraic Programming, Elsevier, 2007, 73 (1-2), p. 111-142. 〈10.1016/j.jlap.2006.12.001〉
Liste complète des métadonnées

Littérature citée [46 références]  Voir  Masquer  Télécharger

Contributeur : Antoine Meyer <>
Soumis le : mardi 20 mars 2012 - 21:54:11
Dernière modification le : vendredi 4 janvier 2019 - 17:32:57
Document(s) archivé(s) le : jeudi 21 juin 2012 - 02:55:42


Fichiers produits par l'(les) auteur(s)




Greta Yorsh, Alexander Rabinovich, Mooly Sagiv, Antoine Meyer, Ahmed Bouajjani. A Logic of Reachable Patterns in Linked Data-Structures. Journal of Logic and Algebraic Programming, Elsevier, 2007, 73 (1-2), p. 111-142. 〈10.1016/j.jlap.2006.12.001〉. 〈hal-00681203〉



Consultations de la notice


Téléchargements de fichiers