[发明专利]基于SMT求解器的一阶逻辑公式程序验证方法及系统在审
申请号: | 202011055948.9 | 申请日: | 2020-09-29 |
公开(公告)号: | CN112231205A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 王浩;纪金龙;都云鑫 | 申请(专利权)人: | 安徽中科国创高可信软件有限公司;科大国创软件股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F16/242;G06F16/2453 |
代理公司: | 合肥维可专利代理事务所(普通合伙) 34135 | 代理人: | 吴明华 |
地址: | 230088 安徽省*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 smt 求解 一阶 逻辑 公式 程序 验证 方法 系统 | ||
本发明公开了一种基于SMT求解器的一阶逻辑公式程序验证方法及系统,包括接收至少一个客户端中任一客户端发送的程序形式化验证数据交互请求;基于获取的数据验证请求内容,提取数据验证请求中的一阶逻辑公式;基于SMT求解器对上述数据验证请求中的一阶逻辑公式进行可满足性求解。本发明基于SMT求解器实现了一阶逻辑公式的自动证明,使得形式化验证系统能够对程序进行自动化验证,提高软件的可信度。
技术领域
本发明涉及计算机证明方法的技术领域,具体涉及一种基于SMT求解器的一阶逻辑公式程序验证方法及系统。
背景技术
基于演绎推理的形式化验证主要用于提高软件的可信度,在形式化验证系统的验证过程中,会产生大量的一阶逻辑公式。通过证明一阶逻辑公式的正确性,来证明程序的行为是否符合程序员的形式化描述,进而证明程序的正确性。
现有技术中,why3和boogie在程序验证领域使用都比较广泛,其主要作为程序验证工具的中间层,程序验证工具将验证得到的一阶逻辑公式转换为WhyML或Boogie语言描述,然后再通过将WhyML或者Boogie语言转换为OCaml或者SMT2语言,再调用自动定理证明器证明。其中WhyML和Boogie语言语法复杂,学习曲线大,并且WhyML和Boogie作为中间层语言,与验证者在验证工具中描述的形式化语言差异较大,例如frama-c在前端使用ACSL语言描述,其与WhyML差异较大,验证者需要同时学习ACSL和WhyML语言,不利于减轻程序验证者的负担。同时将WhyML和Boogie转换为后端自动定理证明器输入语言OCaml或者SMT2时,转换后的证明文件内容可读性较差,不利于用户的读取和理解。基于现状,亟待开发一种基于SMT求解器的一阶逻辑公式验证方法及系统,用于C程序的验证,实现自动定理证明。
发明内容
为解决上述现有技术的中的不足,本发明的目的在于克服现有不足,提供基于SMT求解器的一阶逻辑公式程序验证方法及系统,基于SMT求解器实现了一阶逻辑公式的自动证明,使得形式化验证系统对程序进行自动化验证,提高软件的可信度。
本发明的给出了一种基于SMT求解器的一阶逻辑公式程序验证方法,包括:
接收至少一个客户端中任一客户端发送的程序形式化验证数据交互请求;
基于获取的数据验证请求内容,提取验证数据交互请求中的一阶逻辑公式;
基于SMT求解器对上述验证数据交互请求中的一阶逻辑公式求解证明。
作为上述方案的进一步优化,基于SMT求解器对上述数据交互请求中的一阶逻辑公式求解证明具体包括如下步骤:
提取一阶逻辑公式:从验证数据交互请求中获取初始一阶逻辑公式;
一阶逻辑公式预处理:基于获取的SCSL语言描述的一阶逻辑公式进行预处理,通过前端的语法分析生成中间语法树AST,化简一阶逻辑公式,削减变量,并构造一阶逻辑公式的否命题作为证明目标。
SMT2代码生成处理:预处理后输入一阶逻辑公式,遍历语法树,遍历不同的表达式节点,生成节点对应的SMT2语句,并输出到字符缓冲区(或文件缓冲区);
SMT求解器:使用SMT求解器对一阶逻辑公式生成的SMT2语句进行求解;
结果分析处理:基于SMT求解器对一阶逻辑公式的证明结果进行分析,构建证明子目标,将一阶逻辑公式划分为子目标进行求解;
输出证明结果:输出证明结果,若结果不通过,输出未通过的子目标的一阶逻辑公式。
作为上述方案的进一步优化,在所述SMT2代码生成处理中,引入引理辅助证明一阶逻辑公式。并且实现了引理自动证明,用于对被引入的引理进行自动证明,以保证被引入的引理不会影响一阶逻辑公式证明的可靠性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽中科国创高可信软件有限公司;科大国创软件股份有限公司,未经安徽中科国创高可信软件有限公司;科大国创软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011055948.9/2.html,转载请声明来源钻瓜专利网。