首页> 外文期刊>Software Engineering, IEEE Transactions on >Inferring Loop Invariants by Mutation, Dynamic Analysis, and Static Checking
【24h】

Inferring Loop Invariants by Mutation, Dynamic Analysis, and Static Checking

机译:通过变异,动态分析和静态检查推断循环不变性

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

摘要

Verifiers that can prove programs correct against their full functional specification require, for programs with loops, additional annotations in the form of —properties that hold for every iteration of a loop. We show that significant loop invariant candidates can be generated by systematically mutating postconditions; then, dynamic checking (based on automatically generated tests) weeds out invalid candidates, and static checking selects provably valid ones. We present a framework that automatically applies these techniques to support a program prover, paving the way for fully automatic verification without manually written loop invariants: Applied to 28 methods (including 39 different loops) from various classes (occasionally modified to avoid using Java features not fully supported by the static checker), our DYNAMATE prototype automatically discharged 97 percent of all proof obligations, resulting in automatic complete correctness proofs of 25 out of the 28 methods—outperforming several state-of-the-art tools for fully automatic verification.
机译:可以证明程序在其完整功能规范方面正确的验证程序,对于带有循环的程序,需要以“属性”形式附加注释,这些注释对于循环的每次迭代均有效。我们表明,可以通过系统地改变后置条件来生成重要的循环不变候选者。然后,动态检查(基于自动生成的测试)会淘汰无效的候选者,而静态检查则会选择可证明有效的候选者。我们提供了一个框架,该框架自动应用这些技术来支持程序证明者,从而为无需手动编写循环不变式的全自动验证铺平了道路:适用于来自各种类的28种方法(包括39个不同的循环)(有时会进行修改以避免使用Java功能而不会在完全由静态检查器支持的情况下,我们的DYNAMATE原型自动履行了所有举证责任的97%,从而在28种方法中自动生成了25种的完全正确性证明—优于几种用于全自动验证的先进工具。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号