paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A Refinement Methodology for Distributed Programs in Rust

面向 Rust 分布式程序的精化方法论
OOPSLA 9(OOPSLA2)2025匹配度 3/10 · 论文研究Rust分布式程序的精化验证方法,属于形式化验证与工程落地方向,与用户对形式化验证的兴趣有一点交集;但它不涉及LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析,因此与画像中核心的AI×PL交叉方向不匹配。引用 0 inbox
Aurel Bílý, João Pereira, Peter Müller
crossref: 2026-09-10

AI 速览

一句话:提出自底向上精化方法,用局部归纳不变式关联抽象模型与 Rust 实现,并可复用现成验证工具。

精化可将抽象系统模型与可执行程序关联,使模型性质传递到实现,但现有方法或生成低效代码,或对代码与证明结构限制过严。本文提出一种新的自底向上精化方法:用带守卫迁移系统表达抽象模型,并引入局部归纳不变式,将抽象模型局部关联到具体状态;该方式比标准耦合不变式更灵活,支持多种程序结构、数据表示和证明结构。作者将其实现为 Rust 库,利用 Rust 类型系统管理守卫所有权,从而可配合现成 Rust 验证工具使用。案例研究包括 Memcached 的并发实现,表明方法具有实用性。

问题
现有自顶向下精化常生成性能不佳的实现,而自底向上精化虽可处理高效已有代码,却对代码结构、精化证明结构以及验证逻辑和工具提出严格限制。
方法
提出基于带守卫迁移系统和局部归纳不变式的自底向上精化方法,将抽象模型与具体状态局部关联;并将其实现为 Rust 库,借助 Rust 类型系统追踪守卫所有权,以配合现成验证工具。
评估
通过多个实质性案例研究评估,包括 Memcached 的并发实现,展示方法在真实并发/分布式程序中的实用性。
原文摘要(Abstract)

Refinement relates an abstract system model to a concrete, executable program, such that properties established for the abstract model carry over to the concrete implementation. Refinement has been used successfully in the development of substantial verified systems. Nevertheless, existing refinement techniques have limitations that impede their practical usefulness. Top-down refinement techniques that automatically generate executable code generally produce implementations with sub-optimal performance. Bottom-up refinement allows one to reason about existing, efficient implementations, but imposes strict requirements on the structure of the code, the structure of the refinement proofs, as well as the employed verification logic and tools. In this paper, we present a novel bottom-up refinement methodology that removes these limitations. Our methodology usesthe familiar notion of guarded transition systems to express abstract models, but combines guards with a novel notion of locally inductive invariants to relate the abstract model locally to concrete state. This approach is muchmore flexible than standard coupling invariants; in particular, it supports a wide range of program structures, data representations, and proof structures. We integrate our methodology as a library into Rust, leveraging the Rust type system to reason about ownership of guards. This integration allows oneto use our methodology with an off-the-shelf Rust verification tool. It also facilitates practical applications, as we demonstrate on a number of substantial case studies including a concurrent implementation of Memcached.

链接与引用

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

BibTeX
@article{paperbot2944,
  title = {A Refinement Methodology for Distributed Programs in Rust},
  author = {Aurel Bílý and João Pereira and Peter Müller},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA2},
  year = {2025},
  doi = {10.1145/3763119}
}