【24h】

Your Proof Fails? Testing Helps to Find the Reason

机译:您的证明失败了吗?测试有助于找到原因

获取原文

摘要

Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance between the code and its specification (due to an error in at least one of them), possible reasons of a proof failure include a missing or too weak specification for a called function or a loop, and lack of time or simply incapacity of the prover to finish a particular proof. This work proposes a complete methodology where test generation helps to identify the reason of a proof failure and to exhibit a counterexample clearly illustrating the issue. We define the categories of proof failures, introduce two subcategories of contract weaknesses (single and global ones), and examine their properties. We describe how to transform a formally specified C program into C code suitable for testing, and illustrate the benefits of the method on comprehensive examples. The method has been implemented in StaDy, a plugin of the software analysis platform Frama-C. Initial experiments show that detecting non-compliances and contract weaknesses allows to precisely diagnose most proof failures.
机译:应用演绎验证来正式证明程序遵守其正式规范是一项非常复杂且耗时的任务,特别是由于在证明失败的情况下缺乏反馈。加上代码与其规范之间的不一致性(由于其中至少一个错误),可能导致证明失败的原因包括:对于调用的函数或循环而言,规范的缺失或过弱;以及时间不足或仅仅是证明者无能力完成特定的证明。这项工作提出了一种完整的方法,其中测试生成可以帮助确定证明失败的原因并展示出可以清楚地说明问题的反例。我们定义了证明失败的类别,介绍了合同弱点的两个子类别(单个和全局弱点),并检查了它们的性质。我们描述了如何将正式指定的C程序转换为适合测试的C代码,并在综合示例中说明了该方法的好处。该方法已在软件分析平台Frama-C的插件StaDy中实现。初步实验表明,检测违规和合同缺陷可以准确诊断大多数证明失败。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号