We present a new flow framework for separation logic reasoning about programs that manipulate general graphs. The framework overcomes problems in earlier developments: it is based on standard fixed point theory, guarantees least flows, rules out vanishing flows, and has an easy to understand notion of footprint as needed for soundness of the frame rule. In addition, we present algorithms for automating the frame rule, which we evaluate on graph updates extracted from linearizability proofs for concurrent data structures. The evaluation demonstrates that our algorithms help to automate key aspects of these proofs that have previously relied on user guidance or heuristics.
翻译:我们提出了一个用于分离逻辑推理有关操纵一般图形的程序的新流程框架。该框架克服了早期开发中的问题:它基于标准的不动点理论,保证了最小流量,排除了消失流,具有易于理解的足迹概念以确保框架规则的准确性。此外,我们提供了自动化框架规则的算法,我们评估从并发数据结构的线性化证明中提取的图形更新上的算法。评估表明,我们的算法有助于自动化这些证明的关键方面,这些证明以前依赖于用户指导或启发式方法。