Local reasoning and dynamic framing for the composite pattern and its clients

  • Authors:
  • Stan Rosenberg;Anindya Banerjee;David A. Naumann

  • Affiliations:
  • Stevens Institute of Technology, Hoboken, NJ;IMDEA Software Institute, Madrid, Spain;Stevens Institute of Technology, Hoboken, NJ

  • Venue:
  • VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Composite design pattern is an exemplar of specification and verification challenges for sequential object-oriented programs. Region logic is a Hoare logic augmented with state dependent "modifies" specifications based on simple notations for object sets. Using ordinary first order logic assertions, it supports local reasoning and also the hiding of invariants on encapsulated state, in ways similar to separation logic but suited to off-the-shelf SMT solvers. This paper uses region logic to specify and verify a representative implementation of the Composite design pattern. To evaluate efficacy of the specification, it is used in verifications of several sample client programs including one with hiding. Verification is performed using a verifier for region logic built on top of an existing verification condition generator which serves as a front end to an SMT solver.