[发明专利]基于SMT求解器的一阶逻辑公式程序验证方法及系统在审
申请号: | 202011055948.9 | 申请日: | 2020-09-29 |
公开(公告)号: | CN112231205A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 王浩;纪金龙;都云鑫 | 申请(专利权)人: | 安徽中科国创高可信软件有限公司;科大国创软件股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F16/242;G06F16/2453 |
代理公司: | 合肥维可专利代理事务所(普通合伙) 34135 | 代理人: | 吴明华 |
地址: | 230088 安徽省*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 smt 求解 一阶 逻辑 公式 程序 验证 方法 系统 | ||
1.基于SMT求解器的一阶逻辑公式程序验证方法,其特征在于,包括:
接收至少一个客户端中任一客户端发送的验证数据交互请求;
基于获取的数据验证请求内容,提取验证数据交互请求中的一阶逻辑公式;
基于SMT求解器对上述验证数据交互请求中的一阶逻辑公式进行可满足性求解。
2.根据权利要求1所述的基于SMT求解器的一阶逻辑公式程序验证方法,其特征在于,基于SMT求解器对上述验证数据交互请求中的一阶逻辑公式进行可满足性求解,具体包括如下步骤:
提取一阶逻辑公式:从验证数据交互请求中获取初始一阶逻辑公式;
一阶逻辑公式预处理:基于获取的SCSL语言描述的一阶逻辑公式进行预处理,通过前端的语法分析生成中间语法树AST,化简一阶逻辑公式,削减变量,并构造一阶逻辑公式的否命题作为证明目标;
SMT2代码生成处理:预处理后输入一阶逻辑公式,遍历语法树,遍历不同的表达式节点,生成节点对应的SMT2语句,并输出到字符缓冲区(或文件缓冲区);
SMT求解器:使用SMT求解器对一阶逻辑公式生成的SMT2语句进行求解;
结果分析处理:基于SMT求解器对一阶逻辑公式的证明结果进行分析,构建证明子目标,将一阶逻辑公式划分为子目标进行求解;
输出证明结果:输出证明结果,若结果不通过,输出未通过的子目标的一阶逻辑公式。
3.根据权利要求2所述的基于SMT求解器的一阶逻辑公式程序验证方法,其特征在于,在所述SMT2代码生成处理中,引入引理辅助证明,并且实现了被引入引理的自动证明。
4.根据权利要求3所述的基于SMT求解器的一阶逻辑公式程序验证方法,其特征在于,引理自动证明中,设置前驱引理和目标引理,前驱引理用来对目标引理进行辅助证明;并通过语法定义了前驱引理和目标引理间的依赖关系。
5.根据权利要求2所述的基于SMT求解器的一阶逻辑公式验证方法,其特征在于,所述一阶逻辑公式预处理包括:
语法树AST生成:通过前端的语法分析将一阶逻辑公式生成中间语法树AST;
消减变量:对一阶逻辑公式中的常量进行代换;对一阶逻辑公式中相等变量,用同一变量进行代换;
常量表达式计算:对于一阶逻辑公式中的可计算的常量计算表达式进行计算;
移除重复布尔型子式:移除一阶逻辑公式中的重复布尔(bool)型子式;
断言拆分和拼接:对于一阶逻辑公式中的量化断言尝试拆分和拼接处理;
证明目标构造:构造一阶逻辑公式的否命题作为证明目标逻辑公式。
6.根据权利要求2所述的基于SMT求解器的一阶逻辑公式程序验证方法,其特征在于,所述引理自动证明包括:
构建引理集合;
分析引理间的依赖关系,对引理集合进行排序;
按照顺序对引理进行证明,按照归纳证明原理构造归纳假设;
将构造的归纳假设,调用SMT2代码生成器,将归纳假设的一阶逻辑公式转换为SMT2语句,再使用SMT求解器证明;
输出引理证明结果。
7.根据权利要求2所述的基于SMT求解器的一阶逻辑公式程序验证方法,其特征在于,所述结果分析处理包括:
若SMT求解器返回的结果值为不满足,直接输出待验证一阶逻辑公式的证明结果为真;
若SMT求解器返回的结果值为满足或未知,拆分待验证一阶逻辑公式的蕴含式右件为合取子式,构建新的一阶逻辑公式作为证明子目标;
求解证明新构建的子目标:
若所有子目标证明结果为通过,输出待验证一阶逻辑公式的证明结果为真;
若存在部分子目标未通过,输出待验证一阶逻辑公式的证明结果为假,且将未通过的子目标输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽中科国创高可信软件有限公司;科大国创软件股份有限公司,未经安徽中科国创高可信软件有限公司;科大国创软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011055948.9/1.html,转载请声明来源钻瓜专利网。