Affiliation:
1. Radboud University Nijmegen, Netherlands
2. Carnegie Mellon University, USA
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献