paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Verifying Reliable Network Components in a Distributed Separation Logic with Dependent Separation Protocols

在带依赖分离协议的分布式分离逻辑中验证可靠网络组件
ICFP 7(ICFP)2023匹配度 2/10 · 论文属于分布式分离逻辑与程序验证,但研究对象是网络通信库、RPC 与复制键值存储,不涉及用户核心关注的 LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析;仅与“形式化验证”有宽泛关联。引用 11 inbox
Léon Gondelman, Jonas Kastberg Hinrichsen, Mário Pereira, Amin Timany, Lars Birkedal
crossref: 2026-09-10

AI 速览

一句话:在 Coq 中基于 Aneris 分布式分离逻辑与依赖分离协议,验证了可靠通信库及其上层 RPC 与复制键值存储组件。

本文针对分布式系统中可靠通信组件难以验证的问题,在类 OCaml 语言上基于 UDP 实现了一个可靠通信库,具有握手协议、双向通道以及重传/确认机制等典型特征。作者在 Aneris 分布式分离逻辑中验证该库,提出了一种新的证明模式——会话托管(session escrow)模式,它建立在已有 escrow 证明模式与依赖分离协议之上,而后者此前仅用于非分布式的并发场景。该库的规范使上层应用的推理得以简化:作者据此验证了一个远程过程调用(RPC)库,并进一步验证了带 leader-follower 的惰性复制键值存储及其客户端。整个开发高度模块化,每个组件都相对于其所用组件的规范(而非实现)进行验证,全部结果在 Coq 证明助手中机器化。

问题
如何为基于 UDP 的可靠通信库及其上层的 RPC、复制存储等分布式组件提供模块化且可机器化验证的规范与正确性证明。
方法
在 Aneris 分布式分离逻辑中,结合 escrow 证明模式与依赖分离协议提出 session escrow 模式,对类 OCaml 语言实现的通信库及其上层组件进行模块化验证。
评估
在 Coq 证明助手中机器化验证整个组件栈,包括 RPC 库与带 leader-follower 的惰性复制键值存储及其客户端,展示规范的模块化复用性。
原文摘要(Abstract)

We present a foundationally verified implementation of a reliable communication library for asynchronous client-server communication, and a stack of formally verified components on top thereof. Our library is implemented in an OCaml-like language on top of UDP and features characteristic traits of existing protocols, such as a simple handshaking protocol, bidirectional channels, and retransmission/acknowledgement mechanisms. We verify the library in the Aneris distributed separation logic using a novel proof pattern---dubbed the session escrow pattern---based on the existing escrow proof pattern and the so-called dependent separation protocols, which hitherto have only been used in a non-distributed concurrent setting. We demonstrate how our specification of the reliable communication library simplifies formal reasoning about applications, such as a remote procedure call library, which we in turn use to verify a lazily replicated key-value store with leader-followers and clients thereof. Our development is highly modular---each component is verified relative to specifications of the components it uses (not the implementation). All our results are formalized in the Coq proof assistant.

链接与引用

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

BibTeX
@article{paperbot1924,
  title = {Verifying Reliable Network Components in a Distributed Separation Logic with Dependent Separation Protocols},
  author = {Léon Gondelman and Jonas Kastberg Hinrichsen and Mário Pereira and Amin Timany and Lars Birkedal},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {ICFP},
  year = {2023},
  doi = {10.1145/3607859}
}