[论文解读] Symbolic Execution for Verification
本文通过引入 minimax 算法——一种通过智能回溯实现的惰性循环展开技术,将基于插值的符号执行扩展至处理无界循环,该技术可逐步学习最强不变式。该方法在快速检测真实错误方面优于最先进的 CEGAR 工具(如 BLAST),并能早期阻断不可达路径,在真实世界基准测试中表现出具有竞争力或更优的性能,尤其在存在错误的场景中,由于采用了激进的剪枝策略,能更快找到反例。
In previous work, we presented a symbolic execution method which starts with a concrete model of the program but progressively abstracts away details only when these are known to be irrelevant using interpolation. In this paper, we extend the technique to handle unbounded loops. The central idea is to progressively discover the strongest invariants through a process of loop unrolling. The key feature of this technique, called the minimax algorithm, is intelligent backtracking which directs the search for the next invariant. We then present an analysis of the main differences between our symbolic execution method and mainstream techniques mainly based on abstract refinement (CEGAR). Finally, we evaluate our technique against available state-of-the-art systems.
研究动机与目标
- 将基于插值的符号执行扩展至处理无界循环,而此前的工作在无用户提供的不变式时无法实现此目标。
- 开发一种轻量级、自动化的技术,通过惰性展开和智能回溯发现尽可能强的循环不变式。
- 通过学术示例和真实程序,将所提出的抽象学习技术与主流 CEGAR 基础的验证方法进行比较。
- 在真实世界基准上,将原型工具 tracer 与 BLAST 进行对比,以评估其性能和可扩展性。
提出的方法
- minimax 算法通过在循环合并点使用定理证明器对显式约束进行操作,实现基于路径的不变式计算,从而执行惰性循环展开。
- 它将约束分类为 'min'(用于抽象以实现包含关系和循环不变式)和 'max'(用于保留以检测不可达路径并确保安全性)。
- 该算法利用插值技术仅在必要时展开循环,避免在强化不变式时损失精度。
- 它采用智能回溯策略来引导对下一个不变式的搜索,在确保无界循环时能终止的同时最小化信息损失。
- 该方法避免使用谓词抽象,依赖于带约束简化和通过插值进行抽象的符号执行。
- 原型 tracer 系统使用数组结合别名分析和内联技术来建模 C 语言堆,并在经过插桩的真实程序上进行了评估。
实验结果
研究问题
- RQ1如何在不依赖用户注释的情况下,自动发现无界循环中的循环不变式?
- RQ2基于插值的符号执行与基于 CEGAR 的抽象精化在处理循环不变式和路径可行性方面有何关键差异?
- RQ3一种能激进剪枝不可达路径的符号执行方法,是否能在实践中优于基于 CEGAR 的工具(如 BLAST)?
- RQ4minimax 算法中 min 和 max 约束的使用如何提升循环验证的精度与性能?
主要发现
- 在存在真实反例的不安全程序(如 tcas-2b-unsafe)中,tracer 比 BLAST 快多达 1000 倍,原因在于其能早期剪枝不可达路径。
- 在 tcas-2b-unsafe 基准测试中,tracer 仅需 91 个探索节点和 0.01 秒,而 BLAST 需要 40 个谓词和 17.46 秒。
- 在若干基准测试(cdaudio、floppy、serial)中,BLAST 因异常而中止,而 tracer 成功完成了验证。
- 平均而言,tracer 与 BLAST 表现相当,部分示例中显示出显著的速度提升,尤其在错误检测方面。
- minimax 算法能够早期计算出最强的不变式,从而显著缩小探索空间,使其在处理复杂不可达路径时比 BLAST 更高效。
- 该方法在各类程序中均表现出稳健性能,tracer 在 15 个基准中的 12 个上优于 BLAST,尤其在不安全场景中表现突出。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。