[发明专利]一种基于可满足性求解的同步语言程序自动验证方法有效
申请号: | 202011103235.5 | 申请日: | 2020-10-15 |
公开(公告)号: | CN112269734B | 公开(公告)日: | 2022-04-26 |
发明(设计)人: | 陈哲;孙毅;冉丹 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 施昊 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 满足 求解 同步 语言 程序 自动 验证 方法 | ||
1.一种基于可满足性求解的同步语言程序自动验证方法,其特征在于,包括如下步骤:
s1:将同步语言程序中的枚举值、用户自定义类型和常量内联到同步语言程序的节点里;
s2:在所述同步语言程序的主节点中递归地内联所有被调用的节点,得到一个包含单一节点N的同步语言程序;
s3:通过引入新的局部数据流将程序的内存深度降为1,方法具体如下:
首先,假设所述单一节点N中的数据流集合V={x1,x2,...,xp,y1,y2,...,yq},其中x1~xp为输入数据流,y1~yq为局部数据流或输出数据流,所述单一节点N中的数据流y1~yq在第n个时钟上的值y1(n)~yq(n)构成的等式集合Δ(n)表示为:
其中,yi(n)表示数据流yi在第n个时钟上的值,V(n)表示V中的数据流在第n个时钟上的值,t1~tq表示对应的等式右边的表达式,d是N中pre操作符的最大内存深度,假设数据流yi和数据流xj之间存在一个包含d个pre操作符的等式yi=pre(pre(…(pre(xj)))),则引入d-1个新的局部数据流yixj1,…,yixj(d-1),将原等式替换为yi=pre(yixj1),并增加等式yixj1=pre(yixj2),…,yixj(d-1)=pre(xj),使得等式中pre操作符的最大内存深度由d降低为1,此时,所述单一节点N的等式集合变为如下形式:
其中yq+1~ym是新增的局部数据流,tq+1~tm表示对应的等式右边的表达式,将所述单一节点N中的数据流在第n个时钟上的值V(n)称为瞬时结构,Δ′(n)中的yi(n)的值就是第n和n-1个时钟上的瞬时结构构成的函数,因此所述单一节点N即为基于瞬时结构的约束型系统;
s4:将所述包含单一节点N的同步语言程序表示为在第n个时钟上的命题逻辑公式N(n),将其安全属性P表示为命题逻辑公式P(n),具体方法如下:
将包含所述单一节点N的同步语言程序及其安全属性P分别表示为在第n个时钟上的命题逻辑公式N(n)和P(n),其中所述命题逻辑公式N(n)即为将所述Δ(n)中的等式用合取运算符相连得到的公式,所述命题逻辑公式P(n)为将所述安全属性P中的变量标识符用该变量在第n个时钟上的值替换后得到的表达式;
s5:基于所述命题逻辑公式N(n)和P(n)构造验证公式,并利用可满足性模理论验证所述验证公式是否成立。
2.根据权利要求1所述的一种基于可满足性求解的同步语言程序自动验证方法,其特征在于,
所述步骤s1中的内联操作使用映射数据结构来实现,且通过遍历同步语言程序,将所述同步语言程序中所有映射数据结构中的键替换为其在映射中对应的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011103235.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种锂电池保护板
- 下一篇:一种建筑外墙保温装饰板制作加工系统