Skip to main content
QUICK REVIEW

[论文解读] Software Verification with PDR: Implementation and Empirical Evaluation of the State of the Art

Dirk Beyer, Matthias Dangl|arXiv (Cornell University)|Aug 17, 2019
Formal Methods in Verification参考文献 23被引用 4
一句话总结

本文提出了一种针对C语言软件验证的、经过良好工程实现的独立Property-Directed Reachability(PDR)实现,以及一种基于PDR的新型辅助不变量生成器,用于k-induction。在最大的公开基准测试(SV-COMP 2019 ReachSafety-Loops)上评估了这些方法,结果表明所提出的PDR方法优于现有的PDR工具,并且在某些难以证明的程序上比SV-COMP中最佳的不变量生成器更高效。

ABSTRACT

Property-directed reachability (PDR) is a SAT/SMT-based reachability algorithm that incrementally constructs inductive invariants. After it was successfully applied to hardware model checking, several adaptations to software model checking have been proposed. We contribute a replicable and thorough comparative evaluation of the state of the art: We (1) implemented a standalone PDR algorithm and, as improvement, a PDR-based auxiliary-invariant generator for k-induction, and (2) performed an experimental study on the largest publicly available benchmark set of C verification tasks, in which we explore the effectiveness and efficiency of software verification with PDR. The main contribution of our work is to establish a reproducible baseline for ongoing research in the area by providing a well-engineered reference implementation and an experimental evaluation of the existing techniques.

研究动机与目标

  • 弥合PDR在硬件验证中取得的成功与其在软件验证中有限采用之间的差距。
  • 为软件验证提供一个可复现、经过良好工程实现的PDR参考实现。
  • 在大规模、多样化的C语言验证任务基准集上,实证评估基于PDR的技术的有效性与效率。
  • 将所提出的PDR适配方法与现有的软件验证工具和技术进行比较。
  • 为基于PDR的软件验证未来研究建立基准。

提出的方法

  • 使用SMT求解器实现了一种专为软件验证定制的独立PDR算法,能够处理无限状态空间。
  • 设计并实现了一种类似PDR的辅助不变量生成器,可与k-induction集成,以提升归纳不变量的发现能力。
  • 采用基于归纳反例的子句学习策略,将错误状态的前驱状态泛化为归纳不变量。
  • 将不变量生成器集成到k-induction框架中,以增强其证明安全性质的能力。
  • 在SV-COMP 2019的ReachSafety-Loops类别中选取的208个C语言验证任务上进行了实验,使用BenchExec框架实现可靠的资源计量。
  • 在多个工具(包括CPAchecker-CTIGAR和Vvt-CTIGAR)之间评估性能,详细指标涵盖正确性、速度和资源使用情况。

实验结果

研究问题

  • RQ1在真实世界的C程序上,独立的PDR实现对软件验证的有效性如何?
  • RQ2基于PDR的辅助不变量生成器能否提升k-induction在软件验证中的性能?
  • RQ3与现有的基于PDR的验证器(如Vvt和SeaHorn)相比,所提出的PDR实现的精度与效率如何?
  • RQ4相较于其他技术,哪些类型的程序最受益于基于PDR的不变量生成?
  • RQ5PDR能否成为工业级验证基准中顶尖不变量生成器的有力竞争者?

主要发现

  • 所提出的PDR实现在正确性与效率方面均优于现有Vvt PDR工具,成功解决144道任务(Vvt为126道)。
  • 在KI ⟲←−KIPDR中,基于PDR的不变量生成器在SV-COMP 2019上总得分为221分,优于Ultimate Automizer(192分)和Ultimate Taipan(215分)。
  • 正确结果的平均CPU时间为28秒,显著低于VeriAbs(97秒)和Ultimate Automizer(97秒)。
  • 该方法平均在10秒内完成109道问题的正确证明,表明其在多数基准测试中具有极高的效率。
  • 对于不变量发现具有挑战性的程序(例如,通过w间接依赖y == z的情况),基于PDR的方法比SV-COMP ReachSafety-Loops类别中最佳的不变量生成器更高效。
  • 研究证实,尽管PDR并非在所有情况下都占优,但其在具有复杂不变量的特定程序类别中极为有效,为传统k-induction提供了一个强有力的替代方案。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。