paperbot · PL 论文追踪

全部论文 待读 收藏

P2 LIV: Loop-Invariant Validation Using Straight-Line Programs

LIV:使用直线程序进行循环不变式验证
ASE 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)2023匹配度 4/10 · 论文属于程序验证中的循环不变式验证工具,与用户关注的 AI→PL(利用 LLM/Agent 改进静态分析与形式化验证)只在验证任务层面间接相关。全文未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,因此不匹配核心研究方向。引用 6 inbox
Dirk Beyer, Martin Spiessl
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 LIV 工具,将循环不变式验证拆分为无循环直线程序上的验证任务,从而更实用地检查不变式是否足以构成归纳安全证明。

软件验证中,循环不变式的验证相对构造更易自动化,但判断验证器给出的不变式是否足以建立归纳安全证明仍具挑战。LIV 采用程序级分治:把原程序拆分为多个更小的无循环直线程序,形成更简单的验证任务;关键是不把验证条件编码为 SMT 等逻辑公式,而是生成为原语言程序,因而可复用任意现成验证器。若验证失败,还能定位哪些直线程序对应的证明部分出错。作者在合适基准上评估了该方法的有效性。

问题
如何实用地验证程序不变式(正确性 witness)是否足以构成归纳安全证明。
方法
将程序分治为无循环直线程序,以原语言程序表示验证条件,再交由现成验证器验证;失败时可定位出错的直线程序片段。
评估
在合适基准上评估 LIV,表明该方法可行,并能提供验证失败时的定位信息。
原文摘要(Abstract)

Validation of program invariants (a.k.a. correctness witnesses) is an established procedure in software verification. There are steady advances in verification of more and more complex software systems, but coming up with good loop invariants remains the central task of many verifiers. While it often requires large amounts of computation to construct safe and inductive invariants, they are more easy to automatically validate. We propose LIV, a new tool for loop-invariant validation, which makes it more practical to check if the invariant produced by a verifier is sufficient to establish an inductive safety proof. The main idea is to apply divide-and-conquer on the program level: We split the program into smaller, loop-free programs (a.k.a. straight-line programs) that form simpler verification tasks. Because the verification conditions are not encoded in logic syntax (such as SMT), but as programs in the language of the original program, any off-the-shelf verifier can be used to verify the generated straight-line programs. In case the validation fails, useful information can be extracted about which part of the proof failed (which straight-line programs are wrong). We show that our approach works by evaluating it on a suitable benchmark. Supplementary website: https://www.sosy-lab.org/research/liv/

链接与引用

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

BibTeX
@inproceedings{BeyerS23,
  title = {LIV: Loop-Invariant Validation Using Straight-Line Programs},
  author = {Dirk Beyer and Martin Spiessl},
  booktitle = {ASE},
  year = {2023},
  doi = {10.1109/ase56229.2023.00214}
}