paperbot · PL 论文追踪

全部论文 待读 收藏

P2 When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic

当少即是多:弱算术理论中的后承发现
POPL 7(POPL)2023匹配度 4/10 · 论文属于程序验证/静态分析中的循环不变式生成与非线性算术理论,与形式化验证背景有一定关联,但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,距离画像的核心交叉方向较远。引用 8 inbox
Zachary Kincaid, Nicolas Koh, Shaowei Zhu
crossref: 2026-09-10

AI 速览

一句话:提出弱公理化乘法的非线性算术理论及后承发现算法,用于生成循环不变式并证明程序安全性质。

本文研究非线性整数/实数算术的自动推理问题。作者将线性算术扩展为一个乘法符号仅弱公理化的理论,从而保留线性算术的若干良好算法性质,并证明其合取片段可像凸多面体运算一样被有效操作。基于此,论文求解后承发现问题:给定基公式 F,找出被 F 蕴含的最强合取公式。作为应用,作者给出一种对该理论单调且在某种意义上完备的循环不变式生成算法。实验表明,由后承生成的不变式能有效证明需要非线性推理的程序安全性质。

问题
如何在对非线性乘法进行推理的同时保留线性算术的算法性质,并由此为程序验证自动生成有效的不变式。
方法
定义乘法符号仅弱公理化的非线性整数/实数算术,刻画其可有效操作的合取片段,并设计求解最强合取后承的算法以及由后承生成循环不变式的算法。
评估
通过实验在需要非线性推理的程序安全性质证明任务上评估所生成不变式的有效性。
原文摘要(Abstract)

This paper presents a theory of non-linear integer/real arithmetic and algorithms for reasoning about this theory. The theory can be conceived of as an extension of linear integer/real arithmetic with a weakly-axiomatized multiplication symbol, which retains many of the desirable algorithmic properties of linear arithmetic. In particular, we show that the conjunctive fragment of the theory can be effectively manipulated (analogously to the usual operations on convex polyhedra, the conjunctive fragment of linear arithmetic). As a result, we can solve the following consequence-finding problem: given a ground formula F , find the strongest conjunctive formula that is entailed by F . As an application of consequence-finding, we give a loop invariant generation algorithm that is monotone with respect to the theory and (in a sense) complete. Experiments show that the invariants generated from the consequences are effective for proving safety properties of programs that require non-linear reasoning.

链接与引用

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

BibTeX
@article{paperbot2117,
  title = {When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic},
  author = {Zachary Kincaid and Nicolas Koh and Shaowei Zhu},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {POPL},
  year = {2023},
  doi = {10.1145/3571237}
}