[发明专利]面向批量未解释程序的联合验证方法在审
申请号: | 202210258615.9 | 申请日: | 2022-03-16 |
公开(公告)号: | CN114706757A | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 陈振邦;王戟;杜一德;洪伟疆;毛晓光;董威;李姗姗;文艳军;陈立前;刘万伟;尹良泽 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 胡君 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 批量 解释程序 联合 验证 方法 | ||
本发明公开一种面向批量未解释程序的联合验证方法,步骤包括:S01.进行程序抽象得到程序自动机,使用保存的抽象模型对程序自动机进行精化;S02.判断精化后的程序自动机是否为空,如果为空则判定程序正确,转入步骤S05,否则转入步骤S03;S03.从精化后的程序自动机中抽取一条路径,若路径可行则判定程序错误,转入步骤S05;若不可行则转入步骤S04;S04.进行路径泛化得到反例自动机,对精化后的程序自动机进行精化,并保存为抽象模型,返回步骤S02;步骤S05.判断是否完成所有程序验证,如果是则退出验证,否则取新的程序返回步骤S01。本发明能够高效、准确的实现批量未解释程序的验证。
技术领域
本发明涉及程序自动分析技术领域,尤其涉及一种面向批量未解释程序的联合验证方法。
背景技术
未解释程序是带有未解释函数的一类程序,未解释函数也即为没有具体的函数解释的函数。在程序分析中,某些函数的具体实现有可能无法获知,或者对要分析的性质没有影响,因而需要将该类函数抽象为未解释函数以继续程序分析。如图1所示,程序中的函数f没有具体的实现,因此被抽象为了未解释函数,这时可以利用的只有相同的输入会有相同的输出这一个性质。未解释程序的验证也即为验证程序是否满足某一性质,以图1中左侧程序为例,对该程序验证即为验证程序结束时是否满足x和y相等,即assert(x=y)的形式。由于未解释函数没有具体的函数解释,当该类函数解释为不同函数类型时,程序满足某一性质是否恒成立的结果可能是不同的,即依据函数的解释不通断言并不是恒成立的。如图1所示,经过真分支的路径无论函数f解释为何种类型,都可以满足最后的断言,而假分支的路径,当f解释为恒等函数时可以满足断言,但解释为自增函数时则无法满足断言,因此假分支的路径并不会在所有情况下满足断言。
未解释程序的验证问题通常是不可判定的,对于满足Coherent性质的未解释程序是可判定的,而Coherence性质需要要求:在未解释程序中的任一程序路径的执行计算过程中,(i)不会对已被丢弃的项信息进行重复计算(满足memoizing);(ii)项之间的等价信息得到及时传递(满足early-assumes)。针对于未解释程序的判定,现有技术通常仅是特定针对于满足上述Coherent性质的未解释程序,且在实际中往往需要实现批量未解释程序的验证,现有技术中对批量未解释程序验证时,通常是分别对每个程序单独进行验证,即各个未解释程序分别独立进行验证,而实际上批量未解释程序中可能存在相似的未解释程序,相似的未解释程序中的相似部分判定过程是相同的,采用各个程序单独验证的方式,会使得需要重复判断相似部分,造成验证资源的浪费,影响验证效率。例如对不同软件版本的回归验证,对组合开发得到的一系列程序的验证,实际上这些程序之间可能是具有相似之处,重复验证会导致资源的浪费。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种面向批量未解释程序的联合验证方法,能够有效实现各类未解释程序的验证,同时提高批量未解释程序的验证效率以及精度。
为解决上述技术问题,本发明提出的技术方案为:
一种面向批量未解释程序的联合验证方法,步骤包括:
步骤S01.使用当前保存的抽象模型对当前的程序自动机进行精化以去除已被验证的路径,得到精化后的程序自动机,所述程序自动机为由当前待验证的未解释程序抽象得到,抽象模型由保存验证过程中不可行路径泛化的反例自动机得到;
步骤S02.判断所述精化后的程序自动机是否为空,如果为空则判断当前待验证的未解释程序正确,转入步骤S05,否则转入步骤S03;
步骤S03.从所述精化后的程序自动机中抽取一条路径并进行路径可行性检查,若路径可行则判定当前待验证的未解释程序错误,得到一条错误路径,转入步骤S05;若路径不可行则转入步骤S04;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210258615.9/2.html,转载请声明来源钻瓜专利网。