Distributed Causal Memory: Modular Specification and Verification in Higher-Order Distributed Separation Logic


Léon Gondelman, Simon Oddershede Gregersen, Abel Nieto, Amin Timany, and Lars Birkedal: Distributed Causal Memory: Modular Specification and Verification in Higher-Order Distributed Separation Logic. In POPL 2021, January 2021. https://doi.org/10.1145/3434323
Journal Paper
Keywords: Distributed systems, causal consistency, separation logic, higher-order logic, concurrency, formal verification
Abstract.

We present the first specification and verification of an implementation of a causally-consistent distributed database that supports modular verification of full functional correctness properties of clients and servers. We specify and reason about the causally-consistent distributed database in Aneris, a higher-order distributed separation logic for an ML-like programming language with network primitives for programming distributed systems. We demonstrate that our specifications are useful, by proving the correctness of small, but tricky, synthetic examples involving causal dependency and by verifying a session manager library implemented on top of the distributed database. We use Aneris''s facilities for modular specification and verification to obtain a highly modular development, where each component is verified in isolation, relying only on the specifications (not the implementations) of other components. We have used the Coq formalization of the Aneris logic to formalize all the results presented in the paper in the Coq proof assistant.

The bibtex source for this publication:
@article{DBLP:journals/pacmpl/GondelmanGNTB21,
  author    = {L{\'{e}}on Gondelman and
               Simon Oddershede Gregersen and
               Abel Nieto and
               Amin Timany and
               Lars Birkedal},
  title     = {Distributed causal memory: modular specification and verification
               in higher-order distributed separation logic},
  journal   = {Proc. {ACM} Program. Lang.},
  volume    = {5},
  number    = {{POPL}},
  pages     = {1--29},
  year      = {2021},
  url       = {https://doi.org/10.1145/3434323},
  doi       = {10.1145/3434323},
  timestamp = {Wed, 17 Feb 2021 08:54:03 +0100},
  biburl    = {https://dblp.org/rec/journals/pacmpl/GondelmanGNTB21.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}