paperbot · PL 论文追踪

全部论文 待读 收藏

P2 C4: verified transactional objects

C4:已验证的事务对象
OOPSLA 6(OOPSLA1)2022匹配度 2/10 · 该论文属于并发事务对象的形式化验证与 Coq 机械化,虽涉及程序验证,但未使用 LLM/Agent 改进验证,也不涉及静态分析、浮点或贝叶斯程序分析,与用户核心研究方向仅有很弱的关联。引用 27 inbox
Mohsen Lesani, Li-yao Xia, Anders Kaseorg, Christian J. Bell, Adam Chlipala, Benjamin C. Pierce, Steve Zdancewic
crossref: 2026-09-10

AI 速览

一句话:提出 C4 形式验证框架,统一证明事务对象与 STM 库的线性化与可串行化,并在 Coq 中机器化。

事务对象兼具传统并发对象的性能与事务内存的编程便利,但其正确性验证需同时处理两类保证:并发对象方法的线性化,以及 STM 库对用户调用序列的可串行化。论文提出 C4 框架,从线性化及其组合性质出发,统一支持这两类库的证明,并可组合两类定理来验证应用或更高层库。作者以事务谓词化技术实现的事务集合对象为案例,将事务与非事务组件分开模块化验证。核心方法是对交互树施加语法变换器,以事务库形式转换客户端代码,强制特定同步规则。C4 及案例均在 Coq 中机器化。

问题
如何统一验证混合传统并发对象与 STM 库的事务对象,同时证明线性化与可串行化,并支持模块化组合。
方法
基于线性化及其组合性质构建 C4 框架,使用交互树上的语法变换器生成事务库,并在 Coq 中机器化定理与案例。
评估
通过对事务谓词化构建的事务集合对象进行模块化案例验证,分别推理事务与非事务部分,展示框架可证明应用或库的正确性。
原文摘要(Abstract)

Transactional objects combine the performance of classical concurrent objects with the high-level programmability of transactional memory. However, verifying the correctness of transactional objects is tricky, requiring reasoning simultaneously about classical concurrent objects, which guarantee the atomicity of individual methods—the property known as linearizability—and about software-transactional-memory libraries, which guarantee the atomicity of user-defined sequences of method calls—or serializability. We present a formal-verification framework called C4, built up from the familiar notion of linearizability and its compositional properties, that allows proof of both kinds of libraries, along with composition of theorems from both styles to prove correctness of applications or further libraries. We apply the framework in a significant case study, verifying a transactional set object built out of both classical and transactional components following the technique of transactional predication ; the proof is modular, reasoning separately about the transactional and nontransactional parts of the implementation. Central to our approach is the use of syntactic transformers on interaction trees —i.e., transactional libraries that transform client code to enforce particular synchronization disciplines. Our framework and case studies are mechanized in Coq.

链接与引用

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

BibTeX
@article{paperbot1523,
  title = {C4: verified transactional objects},
  author = {Mohsen Lesani and Li-yao Xia and Anders Kaseorg and Christian J. Bell and Adam Chlipala and Benjamin C. Pierce and Steve Zdancewic},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA1},
  year = {2022},
  doi = {10.1145/3527324}
}