paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Relatively complete verification of probabilistic programs: an expressive language for expectation-based reasoning

概率程序的相对完备验证:一种用于基于期望推理的表达性语言
POPL 5(POPL)2021匹配度 4/10 · 该论文属于概率程序形式验证,提出基于期望的定量断言语言与相对完备验证系统,与用户关注的贝叶斯程序分析/概率程序分析有一定理论相邻性;但它不涉及 LLM/Agent,也不直接面向用户核心的 PL→AI、AI→PL 或浮点程序分析与 LLM 交叉方向。引用 33 inbox
Kevin Batz, Benjamin Lucien Kaminski, Joost-Pieter Katoen, Christoph Matheja
crossref: 2026-09-10

AI 速览

一句话:提出一种表达力充分的定量断言语法,使概率程序基于期望的验证系统达到相对完备。

论文研究概率程序验证中定量断言的语法,即把程序状态映射为数值的函数。作者提出一种表达性语法,并证明其封闭性:若 f 可由该语法表达,则对任意概率程序 C,从初始状态 σ 到 C 终止后最终状态上 f 的期望值,即最弱前置期望 wp[C](f),也可由该语法表达。由此得到 Cook 意义下相对完备的验证系统:除证明两个语法表达式函数间的不等式外,给定 f、g、C,还可检查 g ≼ wp[C](f)。这为期望值与概率推理提供了统一而表达充分的规约与验证框架。

问题
概率程序验证需要能表达定量性质(期望值、概率)的断言语言;核心问题是这种断言语言能否对最弱前置期望封闭,从而支持相对完备的验证。
方法
定义一种将程序状态映射为数值的语法,并证明其表达封闭性:对任意概率程序 C 和可表达函数 f,wp[C](f) 仍可表达;据此构造基于不等式检查的验证系统。
评估
以理论证明为主:证明语法对最弱前置期望封闭,并论证所得验证系统在 Cook 意义下相对完备,可检查 g ≼ wp[C](f)。
原文摘要(Abstract)

We study a syntax for specifying quantitative assertions —functions mapping program states to numbers—for probabilistic program verification. We prove that our syntax is expressive in the following sense: Given any probabilistic program C , if a function f is expressible in our syntax, then the function mapping each initial state σ to the expected value of evaluated in the final states reached after termination of C on σ (also called the weakest preexpectation wp[ C ]( f )) is also expressible in our syntax. As a consequence, we obtain a relatively complete verification system for reasoning about expected values and probabilities in the sense of Cook: Apart from proving a single inequality between two functions given by syntactic expressions in our language, given f , g , and C , we can check whether g ≼ wp[ C ]( f ).

链接与引用

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

BibTeX
@article{paperbot1181,
  title = {Relatively complete verification of probabilistic programs: an expressive language for expectation-based reasoning},
  author = {Kevin Batz and Benjamin Lucien Kaminski and Joost-Pieter Katoen and Christoph Matheja},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {5},
  number = {POPL},
  year = {2021},
  doi = {10.1145/3434320}
}