MoSeL: a general, extensible modal framework for interactive proofs in separation logic


Robbert Krebbers, Jacques-Henri Jourdan, Ralf Jung, Joseph Tassarotti, Jan-Oliver Kaiser, Amin Timany, Arthur Charguéraud, and Derek Dreyer: MoSeL: a general, extensible modal framework for interactive proofs in separation logic. In PACMPL 2(ICFP): 77:1--77:30 (2018), August 2018. https://doi.org/10.1145/3236772
Journal Paper
Keywords: Separation logic, logic of bunched implications, modal logic, Coq proof assistant, interactive theorem proving
Abstract.

A number of tools have been developed for carrying out separation-logic proofs mechanically using an interactive proof assistant. One of the most advanced such tools is the Iris Proof Mode (IPM) for Coq, which offers a rich set of tactics for making separation-logic proofs look and feel like ordinary Coq proofs. However, IPM is tied to a particular separation logic (namely, Iris), thus limiting its applicability.

In this paper, we propose MoSeL, a general and extensible Coq framework that brings the benefits of IPM to a much larger class of separation logics. Unlike IPM, MoSeL is applicable to both affine and linear separation logics (and combinations thereof), and provides generic tactics that can be easily extended to account for the bespoke connectives of the logics with which it is instantiated. To demonstrate the effectiveness of MoSeL, we have instantiated it to provide effective tactical support for interactive and semi-automated proofs in six very different separation logics.

The bibtex source for this publication:
@article{DBLP:journals/pacmpl/KrebbersJ0TKTCD18,
  author    = {Robbert Krebbers and
               Jacques{-}Henri Jourdan and
               Ralf Jung and
               Joseph Tassarotti and
               Jan{-}Oliver Kaiser and
               Amin Timany and
               Arthur Chargu{\'{e}}raud and
               Derek Dreyer},
  title     = {MoSeL: a general, extensible modal framework for interactive proofs
               in separation logic},
  journal   = {{PACMPL}},
  volume    = {2},
  number    = {{ICFP}},
  pages     = {77:1--77:30},
  year      = {2018},
  url       = {https://doi.org/10.1145/3236772},
  doi       = {10.1145/3236772},
  timestamp = {Wed, 21 Nov 2018 12:44:28 +0100},
  biburl    = {https://dblp.org/rec/bib/journals/pacmpl/KrebbersJ0TKTCD18},
  bibsource = {dblp computer science bibliography, https://dblp.org}
 }