Specification patterns and proofs for recursion through the store

  • Authors:
  • Nathaniel Charlton;Bernhard Reus

  • Affiliations:
  • University of Sussex, Brighton;University of Sussex, Brighton

  • Venue:
  • FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Higher-order store means that code can be stored on the mutable heap that programs manipulate, and is the basis of flexible software that can be changed or re-configured at runtime. Specifying such programs is challenging because of recursion through the store, where new (mutual) recursions between code are set up on the fly. This paper presents a series of formal specification patterns that capture increasingly complex uses of recursion through the store. To express the necessary specifications we extend the separation logic for higher-order store given by Schwinghammer et al. (CSL, 2009), adding parameter passing, and certain recursively defined families of assertions. Finally, we apply our specification patterns and rules to an example program that exploits many of the possibilities offered by higher-order store; this is the first larger case study conducted with logical techniques based on work by Schwinghammer et al. (CSL, 2009), and shows that they are practical.