paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A Logic for Locally Complete Abstract Interpretations

局部完全抽象解释的逻辑
LICS 2021 36th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)2021匹配度 3/10 · 论文研究抽象解释的局部完全性,属于程序分析与形式化验证的基础理论,但未涉及LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户当前核心研究方向(PL与AI交叉)不直接相关。引用 35 inbox
Roberto Bruni, Roberto Giacobazzi, Roberta Gori, Francesco Ranzato
crossref: 2026-09-12

AI 速览

一句话:引入局部完全性,并给出证明系统,首次结合过近似与欠近似以同时证明程序规范的正确性与不正确性。

抽象解释广泛用于构造可靠的过近似程序分析,但要求分析对所有程序和输入完全会严重限制可表达性。本文提出“局部完全性”,仅针对特定输入放宽完全性要求,从而扩大适用性。作者设计了一个以抽象 A 为参数的证明系统,首次在统一框架中结合程序行为的过近似与欠近似。在可证明三元组 ⊢_A [P] c [Q] 中,Q 是输入 P 下最强后置条件 post[c](P) 的欠近似,且 Q 与 post[c](P) 的抽象结果一致,因此 Q 不会过粗。该逻辑保证 Q 中警报均为真;若 Q 无警报,则可推出 c 对 P 的正确性。

问题
传统抽象解释的完全性要求对所有程序和输入都成立,导致可表达性受限;如何放宽完全性并同时支持正确性与不正确性证明是核心问题。
方法
提出局部完全性,并设计以抽象 A 为参数的三元组证明系统,结合程序行为的过近似与欠近似。
评估
评估以理论证明为主:展示完全性程序类的表达力限制,并论证局部完全性下三元组的可靠性与警报性质。
原文摘要(Abstract)

We introduce the notion of local completeness in abstract interpretation and define a logic for proving both the correctness and incorrectness of some program specification. Abstract interpretation is extensively used to design sound-by-construction program analyses that over-approximate program behaviours. Completeness of an abstract interpretation A for all possible programs and inputs would be an ideal situation for verifying correctness specifications, because the analysis can be done compositionally and no false alert will arise. Our first result shows that the class of programs whose abstract analysis on A is complete for all inputs has a severely limited expressiveness. A novel notion of local completeness weakens the above requirements by considering only some specific, rather than all, program inputs and thus finds wider applicability. In fact, our main contribution is the design of a proof system, parameterized by an abstraction A, that, for the first time, combines over- and under-approximations of program behaviours. Thanks to local completeness, in a provable triple ⊢A [P ] c [Q], the assertion Q is an under-approximation of the strongest post-condition post[c](P ) such that the abstractions in A of Q and post[c](P ) coincide. This means that Q is never too coarse, namely, under mild assumptions, the abstract interpretation of c does not yield false alerts for the input P iff Q has no alert. Thus, ⊢ A [P ] c [Q] not only ensures that all the alerts raised in Q are true ones, but also that if Q does not raise alerts then c is correct.

链接与引用

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

BibTeX
@inproceedings{paperbot6185,
  title = {A Logic for Locally Complete Abstract Interpretations},
  author = {Roberto Bruni and Roberto Giacobazzi and Roberta Gori and Francesco Ranzato},
  booktitle = {LICS},
  year = {2021},
  doi = {10.1109/lics52264.2021.9470608}
}