Abstraction of object graphs in program verification

  • Authors:
  • Yifeng Chen;J. W. Sanders

  • Affiliations:
  • HCST Key Lab, School of EECS, Peking University, China;UNU-IIST, Macao

  • Venue:
  • MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
  • Year:
  • 2010
  • Transitive separation logic

    RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science

Quantified Score

Hi-index 0.00

Visualization

Abstract

A set-theoretic formalism, AOG, is introduced to support automated verification of pointer programs. AOG targets pointer reasoning for source programs before compilation (before removal of field names). Pointer structures are represented as object graphs instead of heaps. Each property in AOG is a relation between object graphs and name assignments of program variables, and specifications result from composing properties. AOG extends Separation Logic's compositions of address-disjoint separating conjunction to more restrictive compositions with different disjointness conditions; the extension is shown to be strict when fixpoints are present. A composition that is a 'unique decomposition' decomposes any given graph uniquely into two parts. An example is the separation between the non-garbage and garbage parts of memory. Although AOG is in general undecidable, it is used to define the semantics of specialised decidable logics that support automated program verification of specific topologies of pointer structure. One logic studied in this paper describes pointer variables located on multiple parallel linked lists. That logic contains quantifiers and fixpoints but is nonetheless decidable. It is applied to the example of in-place list reversal for automated verification, and in outline to the Schorr-Waite marking algorithm. The technique of unique decomposition is found to be particularly useful in establishing laws for such logics.