paperbot · PL 论文追踪

全部论文 待读 收藏

P2 The Ghosts of Empires: Extracting Modularity from Interleaving-Based Proofs

帝国的幽灵:从基于交错的证明中提取模块化
POPL 10(POPL)2026匹配度 3/10 · 论文聚焦并发程序形式化验证中的 Owicki-Gries 模块化证明与 ghost 变量合成,属于程序验证/静态分析大方向,但未涉及用户核心关注的 LLM/Agent 与静态分析/形式化验证交叉,也不涉及浮点或贝叶斯程序分析。因此仅在广义 PL/验证方向上有弱关联。引用 0 inbox
Frank Schüssele, Matthias Zumkeller, Miriam Lagunes-Rochin, Dominik Klumpp
crossref: 2026-09-10

AI 速览

一句话:将并发程序基于交错的正确性证明自动转换为 Owicki-Gries 风格线程模块化证明,并合成 ghost 变量以压缩证明。

算法软件验证器的实现缺陷会威胁其可靠性;为正确程序生成正确性证书可实现独立校验,但并发程序基于交错的正确性论证可能随交错数指数爆炸。本文提出一种方法,将许多算法验证器生成的基于交错的正确性证明转换为 Owicki 与 Gries 风格的线程模块化证明。该方法自动合成 ghost 变量,以捕获与证明相关的交错信息,同时抽象掉无关细节,从而消除对具体交错的依赖。作者在实现中评估了该方法的实践效率,并与基线比较;结果表明该方法高效且能生成紧凑的正确性证明,有助于并发程序验证结果的独立验证。

问题
并发程序正确性验证结果亟需可独立校验的正确性证书,但基于具体交错的证明会因交错爆炸而难以生成和保持紧凑。
方法
将算法验证器生成的基于交错的正确性证明转换为 Owicki-Gries 风格线程模块化证明,并自动合成 ghost 变量来捕获相关交错信息、抽象无关细节。
评估
通过实现并与基线进行实验比较,评估转换方法的实践效率和所生成证明的紧凑性。
原文摘要(Abstract)

Implementation bugs threaten the soundness of algorithmic software verifiers. Generating correctness certificates for correct programs allows for efficient independent validation of verification results, and thus helps to reveal such bugs. Automatic generation of small, compact correctness proofs for concurrent programs is challenging, as the correctness arguments may depend on the particular interleaving, which can lead to exponential explosion. We present an approach that converts an interleaving-based correctness proof, as generated by many algorithmic verifiers, into a thread-modular correctness proof in the style of Owicki and Gries. We automatically synthesize ghost variables that capture the relevant interleaving information, and abstract away irrelevant details. Our evaluation shows that the approach is efficient in practice and generates compact proofs, compared to a baseline.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@article{abs-2511-20369,
  title = {The Ghosts of Empires: Extracting Modularity from Interleaving-Based Proofs},
  author = {Frank Schüssele and Matthias Zumkeller and Miriam Lagunes-Rochin and Dominik Klumpp},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {POPL},
  year = {2026},
  doi = {10.1145/3776684}
}