概率程序的数据驱动不变式学习
1. 引言
概率程序是在标准命令式程序基础上增加了采样命令,是表达随机计算的常见方式。虽然这类程序的数学语义已被较好理解,但验证方法仍是活跃的研究领域。现有的自动化技术要么局限于特定属性,要么针对更简单的计算模型。
1.1 基于期望的推理
早期推理概率程序的方法之一是通过期望。期望由 Kozen 提出,将标准的二元断言推广到程序状态上的定量实值函数。Morgan 和 McIver 进一步将其发展为最弱前置期望演算框架。
- 最弱前置期望算子(wpe) :该算子将程序 $P$ 和期望 $E$ 转换为另一个期望 $E’$,即前置期望。对于无循环程序,可通过简单机械操作将 $wpe(P, E)$ 转换为不提及程序 $P$ 的形式;但对于循环,$wpe$ 定义为最小不动点,难以简化。
- 循环规则 :若能找到满足不变式条件的期望 $I$,则可轻松界定循环的 $wpe$。因此,寻找不变式是自动推理概率程序的主要瓶颈。
1.2 发现不变式
近期有两项工作考虑自动推断概率循环的不变式期望:
- Prinsys :使用带一个空洞的模板生成描述可能替换的一阶逻辑公式,但依赖模板有局限性,且用户需手动求解逻辑公式系统来找到不变式。
- Chen 等人的工作 :专注于推断多项式不变式,可避免使用模板并应用拉格朗日插值定理,但许多不变式并非多项式。
超级会员免费看
订阅专栏 解锁全文
4857

被折叠的 条评论
为什么被折叠?



