首页> 外文会议>Computer aided verification >SMT-Based Model Checking for Recursive Programs
【24h】

SMT-Based Model Checking for Recursive Programs

机译:基于SMT的递归程序模型检查

获取原文
获取原文并翻译 | 示例

摘要

We present an SMT-based symbolic model checking algorithm for safety verification of recursive programs. The algorithm is modular and analyzes procedures individually. Unlike other SMT-based approaches, it maintains both over- and under-approximations of procedure summaries. Under-approximations are used to analyze procedure calls without inlining. Over-approximations are used to block infeasi-ble counterexamples and detect convergence to a proof. We show that for programs and properties over a decidable theory, the algorithm is guaranteed to find a counterexample, if one exists. However, efficiency depends on an oracle for quantifier elimination (QE). For Boolean Programs, the algorithm is a polynomial decision procedure, matching the worst-case bounds of the best BDD-based algorithms. For Linear Arithmetic (integers and rationals), we give an efficient instantiation of the algorithm by applying QE lazily. We use existing interpolation techniques to over-approximate QE and introduce Model Based Projection to under-approximate QE. Empirical evaluation on SV-COMP benchmarks shows that our algorithm improves significantly on the state-of-the-art.
机译:我们提出了一种基于SMT的符号模型检查算法,用于递归程序的安全验证。该算法是模块化的,可以分别分析过程。与其他基于SMT的方法不同,它保持过程摘要的过高和过低估计。欠逼近用于分析过程调用而不进行内联。过度逼近用于阻止不可行的反例并检测收敛到证明。我们表明,对于可决定性理论上的程序和属性,如果存在反例,则该算法可以保证找到一个反例。但是,效率取决于消除量词(QE)的预言。对于布尔程序,该算法是多项式决策过程,与基于BDD的最佳算法的最坏情况边界匹配。对于线性算术(整数和有理数),我们通过延迟应用QE给出了算法的高效实例。我们使用现有的插值技术对QE进行了过度逼近,并将基于模型的投影引入了对QE不太靠拢的情况。对SV-COMP基准进行的经验评估表明,我们的算法在最新技术方面有显着改进。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号