首页> 外文会议>Static analysis >Software Verification Using k-Induction
【24h】

Software Verification Using k-Induction

机译:使用k-归纳法进行软件验证

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

摘要

We present combined-case k-induction, a novel technique for verifying software programs. This technique draws on the strengths of the classical inductive-invariant method and a recent application of fc-induction to program verification. In previous work, correctness of programs was established by separately proving a base case and inductive step. We present a new fc-induction rule that takes an unstructured, reducible control flow graph (CFG), a natural loop occurring in the CFG, and a positive integer fc, and constructs a single CFG in which the given loop is eliminated via an unwinding proportional to fc. Recursively applying the proof rule eventually yields a loop-free CFG, which can be checked using SAT-/SMT-based techniques. We state soundness of the rule, and investigate its theoretical properties. We then present two implementations of our technique: K-Inductor, a verifier for C programs built on top of the CBMC model checker, and K-Boogie, an extension of the Boogie tool. Our experiments, using a large set of benchmarks, demonstrate that our fc-induction technique frequently allows program verification to succeed using significantly weaker loop invariants than are required with the standard inductive invariant approach.
机译:我们介绍组合情况k归纳法,一种验证软件程序的新技术。该技术借鉴了经典归纳不变方法的优势以及fc归纳在程序验证中的最新应用。在以前的工作中,程序的正确性是通过分别证明一个基础案例和归纳步骤来确定的。我们提出了一个新的fc归纳规则,该规则采用非结构化,可简化的控制流图(CFG),在CFG中出现的自然循环以及正整数fc,并构造了单个CFG,其中通过展开消除了给定的循环与fc成正比。递归地应用证明规则最终会产生无环CFG,可以使用基于SAT / SMT的技术对其进行检查。我们陈述规则的健全性,并研究其理论性质。然后,我们介绍该技术的两种实现:K-Inductor,它是基于CBMC模型检查器构建的C程序的验证器,以及K-Boogie,它是Boogie工具的扩展。我们使用大量基准进行的实验表明,与标准归纳不变方法相比,我们的fc归纳技术经常可以使程序使用较弱的循环不变式来成功进行程序验证。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号