首页> 外文会议>International Symposium on NASA Formal Methods >Automatically Proving Thousands of Verification Conditions Using an SMT Solver: An Empirical Study
【24h】

Automatically Proving Thousands of Verification Conditions Using an SMT Solver: An Empirical Study

机译:使用SMT求解器自动证明数千条验证条件:实证研究

获取原文

摘要

Recently it has become possible to verify full functional correctness of certain kinds of software using automated theorem-proving technology. Empirical studies of the difficulty of automatically proving diverse verification conditions (VCs) would be helpful. For example, they could help direct those developing formal specifications toward techniques that tend to simplify VCs. They could also help focus the efforts of those improving automated theorem-proving tools that are targeted to handle VCs. This study explores two specific empirical questions of this sort: How does an SMT solver perform on VCs that involve user-defined mathematical functions and predicates? When it does not perform well, what can be done to improve the prospects for automated proof? Experience using Z3 to prove VCs for a solution to a fully generic sorting benchmark, along with thousands of other VCs generated for both clients and implementations of dozens of RESOLVE software components, suggests that providing the prover with universal algebraic lemmas about user-defined mathematical functions and predicates results in better outcomes than expanding (unfolding) definitions. The importance of such lemmas might not be surprising to those who have tried to carry out such proofs manually or with the help of an interactive prover, but the damage sometimes caused by expanding definitions might be unexpected. A large empirical study of these phenomena in the context of automated software verification has not been previously reported.
机译:最近,可以使用自动定理证明技术验证某些软件的全功能正确性。对自动证明各种验证条件(VCS)的难度的实证研究将有所帮助。例如,它们可以帮助向那些向倾向于简化VCS的技术开发正式规范的人。他们还可以帮助重点关注改进目标用于处理VCS的自动定理验证工具的努力。这项研究探讨了这项方法的两项特定的实证问题:SMT求解器如何在涉及用户定义的数学函数和谓词的VC上执行?当它没有表现良好时,可以做些什么来改善自动证明的前景?使用Z3将VCS的经验证明了全通用排序基准的解决方案以及为客户端生成的数千个其他VCS以及数十个解决软件组件的实现,建议为用户定义的数学函数提供通用代数LEMMAS的谚语并且谓词导致比扩展(展开)定义更好的结果。这些lemmas的重要性可能对那些试图手动执行此类证明或在互动先报的帮助下的人感到令人惊讶,但是由于扩大定义而导致的损害可能是出乎意料的。在自动化软件验证背景下,对这些现象的大实证研究尚未报告。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号