paperbot · PL 论文追踪

RSS

Connectivity graphs: a method for proving deadlock freedom based on separation logic

POPL 6(POPL)2022
Jules Jacobs, Stephanie Balzer, Robbert Krebbers

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

We introduce the notion of a connectivity graph —an abstract representation of the topology of concurrently interacting entities, which allows us to encapsulate generic principles of reasoning about deadlock freedom . Connectivity graphs are parametric in their vertices (representing entities like threads and channels) and their edges (representing references between entities) with labels (representing interaction protocols). We prove deadlock and memory leak freedom in the style of progress and preservation and use separation logic as a meta theoretic tool to treat connectivity graph edges and labels substructurally. To prove preservation locally, we distill generic separation logic rules for local graph transformations that preserve acyclicity of the connectivity graph. To prove global progress locally, we introduce a waiting induction principle for acyclic connectivity graphs. We mechanize our results in Coq, and instantiate our method with a higher-order binary session-typed language to obtain the first mechanized proof of deadlock and leak freedom.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot1552,
  title = {Connectivity graphs: a method for proving deadlock freedom based on separation logic},
  author = {Jules Jacobs and Stephanie Balzer and Robbert Krebbers},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {POPL},
  year = {2022},
  doi = {10.1145/3498662}
}