张恒若,付明.基于Z3的Coq自动证明策略的设计和实现.软件学报,2017,28(4):819-826 |
基于Z3的Coq自动证明策略的设计和实现 |
Design and Implementation of Coq Tactics Based on Z3 |
投稿时间:2016-06-20 修订日期:2016-09-08 |
DOI:10.13328/j.cnki.jos.005196 |
中文关键词: 形式化验证 定理证明工具 约束求解器 Coq Z3 |
英文关键词:formal verification proof assistant tool SMT solver Coq Z3 |
基金项目:国家自然科学基金(61103023,61229201,61379039,91318301,61632005) |
|
摘要点击次数: 1547 |
全文下载次数: 1480 |
中文摘要: |
形式化验证方法被认为是一种构建高可信软件系统的有效手段.在定理证明工具通过手动写证明脚本来验证系统软件的功能正确性,这种验证方式表达力强,可以证明复杂系统,但是自动化程度低、验证代价比较高;而使用程序验证器接受经过规范标注的源代码生成验证条件,并将验证条件交给约束求解器自动求解,这种方式自动化程度高,缺点在于它很难验证复杂系统软件的全部功能的正确性.结合上述两种方式的优点,在定理证明工具Coq中实现了一个自动证明策略smt4coq,它通过在Coq中调用约束求解器Z3自动证明32位机器整数相关的数学命题,提高了自动化验证的程度,减少了用户手动验证程序的开销. |
英文摘要: |
Formal verification is an effective approach to construct high confidence software. Verifying the functional correctness of complex system software by manually writing proof scripts in proof assistant tools is feasible with the low degree of automation, and the verification cost is relatively high. The automatic program verifiers verify programs by taking the annotated source code as their input to generate verification conditions automatically solved by SMT solvers. This approach has a high degree of automation, but it is impossible to verify the functional correctness of the entire system software. By combining the advantage of the above two methods, this paper implements a novel Coq tactic plug-in named "smt4coq", which allows calling the Z3 SMT solver in Coq to automatically prove mathematical propositions involved with 32-bit machine integers. The new tactic improves the degree of automation and reduces the cost of manual verification. |
HTML 下载PDF全文 查看/发表评论 下载PDF阅读器 |