paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Towards counterexample-guided k-induction for fast bug detection

面向反例引导的 k-induction 快速缺陷检测
FSE Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2018匹配度 4/10 · 论文属于形式化验证/程序验证领域的算法改进(k-induction 的反例引导双向搜索),与用户画像中提到的“形式化验证”有领域重合,但用户关注的核心是 LLM/Agent 与静态分析、形式化验证的交叉,本文是纯 PL 侧技术、不涉及 LLM 或浮点/贝叶斯程序分析,也未涉及 Agentic 程序分析或工业落地案例。引用 1 inbox
Mikhail R. Gadelha, Felipe R. Monteiro, Lucas C. Cordeiro, Denis A. Nicole
crossref: 2026-09-12

AI 速览

一句话:将 k-induction 扩展为反例引导的中间相遇双向搜索,减少发现性质违反所需步数。

k-induction 已被成功用于发现缺陷和证明正确性,但其增量执行方式在错误程序上可能浪费资源,难以快速找到性质违反。本文扩展 k-induction,利用对程序过近似所产生的反例指导搜索,将算法转化为 meet-in-the-middle 双向搜索。其主要优势是降低状态爆炸:把寻找反例所需的最大步数从 k 降至 ⌊k/2 + 1⌋,从而缩短发现性质违反所需步数。摘要未给出具体实验评估。

问题
k-induction 作为增量方法,在目标程序不正确时可能浪费资源来尝试证明,导致发现性质违反较慢。
方法
利用程序过近似得到的反例引导,把 k-induction 改造成 meet-in-the-middle 双向搜索算法。
评估
通过算法分析表明最大所需步数从 k 降为 ⌊k/2 + 1⌋,减少状态爆炸并加快缺陷发现;摘要未报告具体基准实验。
原文摘要(Abstract)

Recently, the k-induction algorithm has proven to be a successful approach for both finding bugs and proving correctness. However, since the algorithm is an incremental approach, it might waste resources trying to prove incorrect programs. In this paper, we extend the k-induction algorithm to shorten the number of steps required to find a property violation. We convert the algorithm into a meet-in-the-middle bidirectional search algorithm, using the counterexample produced from over-approximating the program. The main advantage is in the reduction of the state explosion by reducing the maximum required steps from k to ⌊k/2 + 1⌋.

链接与引用

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

BibTeX
@inproceedings{paperbot4659,
  title = {Towards counterexample-guided k-induction for fast bug detection},
  author = {Mikhail R. Gadelha and Felipe R. Monteiro and Lucas C. Cordeiro and Denis A. Nicole},
  booktitle = {FSE},
  year = {2018},
  doi = {10.1145/3236024.3264840}
}