paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A Quantitative Probabilistic Relational Hoare Logic

一种定量概率关系霍尔逻辑
POPL 9(POPL)2025匹配度 4/10 · 论文属于概率程序的形式化验证(关系霍尔逻辑),与贝叶斯程序分析/概率编程仅有间接关联;不涉及 LLM/Agent、ML 系统静态分析、浮点分析等核心方向,且为纯理论工作,缺少工程落地。引用 15 inbox
Martin Avanzini, Gilles Barthe, Davide Davoli, Benjamin Grégoire
crossref: 2026-09-10

AI 速览

一句话:提出定量概率关系霍尔逻辑 eRHL,克服 pRHL/apRHL 的随机对齐限制,并给出可靠性与完备性结果。

现有概率关系霍尔逻辑(如 pRHL、apRHL)受随机对齐限制,难以推理概率程序对的关系期望性质,尤其涉及程序等价、统计距离和差分隐私时。本文提出 eRHL,一种定量的关系程序逻辑,其前后条件取值于扩展非负实数,从而克服随机对齐限制。作者证明 eRHL 对所有几乎必然终止的程序具有非平凡的可靠性与完备性:相对于程序等价、统计距离和差分隐私均可靠且完备;且每个 pRHL 判断有效当且仅当可在 eRHL 中证明。文中还给出超出 pRHL 与 apRHL 能力的实例,展示其实用价值。

问题
已有概率关系程序逻辑(pRHL、apRHL)依赖随机对齐,限制了对概率程序对的关系期望性质的推理。
方法
提出定量关系程序逻辑 eRHL,其前后条件取值于扩展非负实数,以定量断言克服随机对齐限制。
评估
证明 eRHL 对几乎所有必然终止程序在程序等价、统计距离和差分隐私下可靠且完备,并证明 pRHL 判断的有效性与 eRHL 可证性等价,附超出 pRHL/apRHL 的实例。
原文摘要(Abstract)

We introduce eRHL , a program logic for reasoning about relational expectation properties of pairs of probabilistic programs. eRHL is quantitative, i.e., its pre- and post-conditions take values in the extended non-negative reals. Thanks to its quantitative assertions, eRHL overcomes randomness alignment restrictions from prior logics, including pRHL , a popular relational program logic used to reason about security of cryptographic constructions, and apRHL , a variant of pRHL for differential privacy. As a result, eRHL is the first relational probabilistic program logic to be supported by non-trivial soundness and completeness results for all almost surely terminating programs. We show that eRHL is sound and complete with respect to program equivalence, statistical distance, and differential privacy. We also show that every pRHL judgment is valid iff it is provable in eRHL . We showcase the practical benefits of eRHL with examples that are beyond reach of pRHL and apRHL .

链接与引用

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

BibTeX
@article{abs-2407-17127,
  title = {A Quantitative Probabilistic Relational Hoare Logic},
  author = {Martin Avanzini and Gilles Barthe and Davide Davoli and Benjamin Grégoire},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {POPL},
  year = {2025},
  doi = {10.1145/3704876}
}