English

Specifying Concurrent Programs in Separation Logic: Morphisms and Simulations

Programming Languages 2019-10-16 v3 Distributed, Parallel, and Cluster Computing Logic in Computer Science

Abstract

In addition to pre- and postconditions, program specifications in recent separation logics for concurrency have employed an algebraic structure of resources---a form of state transition system---to describe the state-based program invariants that must be preserved, and to record the permissible atomic changes to program state. In this paper we introduce a novel notion of resource morphism, i.e. structure-preserving function on resources, and show how to effectively integrate it into separation logic, using an associated notion of morphism-specific simulation. We apply morphisms and simulations to programs verified under one resource, to compositionally adapt them to operate under another resource, thus facilitating proof reuse.

Keywords

Cite

@article{arxiv.1904.07136,
  title  = {Specifying Concurrent Programs in Separation Logic: Morphisms and Simulations},
  author = {Aleksandar Nanevski and Anindya Banerjee and Germán Andrés Delbianco and Ignacio Fábregas},
  journal= {arXiv preprint arXiv:1904.07136},
  year   = {2019}
}