A Pointer Logic for Object Diagrams

Yifeng Chen,J W Sanders
2007-01-01
Abstract:Compositional reasoning about pointers and references is c rucial to verification of contemporary software. This paper introduces a pointer logic that extends Sep aration Logic with a fixpoint operator and new compositions different from separating conjunction. H igher level of abstraction can be achieved if the right compositions are used in the right places. In parti cular, if a relation is a ‘full unique decomposition’ then the corresponding composition decomposes a ny given graph uniquely into two parts; an example is the separation between the non-garbage and garba ge parts of memory. The logic is proved to be largely satisfaction-decidable in the sense that there i s a finite procedure to determine whether or not a program state satisfies a formula. The main technical resul t of the paper is that if only full unique decompositions are used in compositions, then a rather genera l fragment becomes validity-decidable. The logic is axiomatized and, with the help of an infinitary infer ence rule, proved to be complete. Separation Logic without pointer arithmetic is shown to be a fragment of he logic. Yifeng Chen is a lecturer in Computer Science at the University of Durham , England, with interests in imperative, parallel and object-oriented programming l anguages, including design, translation, static analysis, semantics, specifications and their support for d ecentralised software development. Jeff Sandersis Principal Research Fellow at UNU-IIST, having recently j oined from the Programming Research Group at Oxford. His interests lie largely in Forma l Methods. Copyright c © 2007by UNU-IIST
What problem does this paper attempt to address?