本发明专利技术涉及模型检测中的模型抽象方法及系统,方法包括:步骤1,输入原始模型和指导属性;步骤2,为指导属性的每个节点求解其在原始模型中的超语义,根据超语义为指导属性的每个非叶子节点求解对应的基本序列;步骤3,对原始模型的状态空间建立划分;步骤4,应用指导属性、每个节点的超语义和每个非叶子节点的基本序列分割划分;步骤5,为指导属性的每个节点建立对应的证明模型,应用证明模型进一步分割步骤4分割后的划分;步骤6,由进一步分割后的划分生成原始模型对应的抽象模型。本发明专利技术能够在只提供指导属性的前提下,根据该指导属性自动地完成细化工作,同时使细划后的划分能够保留与指导属性相关的信息。
【技术实现步骤摘要】
本专利技术涉及形式化验证,尤其涉及模型检测中的模型抽象方法及其系统。
技术介绍
模型检测是一种自动化程度很高的形式化验证方法,在模型检测中被验证 的系统用一个状态转换图表示,通过遍历这个图可以确定该系统是否满足某个 属性。然而,随着系统规模的不断增长,模型检测面临着越来越严重的状态爆 炸问题,模型检测的实用性也因此受到了制约。使用模型检测对电路进行形式化验证,首先需要将实际电路转化为一个为 自动机,并将电路的功能描述成一个属性,然后通过在自动机上检査属性是否 为真,来判断电路是否实现了所需的功能。当属性在自动机上为假时,模型检 测工具可以生成一个反例,也就是一条违反属性的路径,供分析。一个电路包括输入、内部寄存器和输出。例如在图1中的电路包括输入101,寄存器102,输出103。在电路的每个时钟周期,输入101的值和寄存器 102的值通过或门104进行运算,在输出103上输出结果,同时此结果在进入 下一个时钟周期时会用于刷新寄存器102的值。自动机是一个状态转换图,如 图2所示,每个节点表示一个状态,双边的节点为初始状态,节点间的有向边 表示状态的迁移,每个状态上标记有原子谓词。电路的输入101和寄存器102 的4种取值为,输入101为0且寄存器102为0,输入101为1且寄存器102 为0,输入101为0且寄存器102为1,输入101为1且寄存器102为1,形 成了自动机的4个状态,状态201、状态202、状态203和状态204。输入101、 输出103和寄存器102的值形成原子谓词。例如寄存器102的值对应于原子 谓词r和-。当寄存器102的值在一个状态上为1时,在该块态上标记。否 则标记-"假设电路启动时寄存器102的值被置为0,则状态201和状态202 成为初始状态。自动机中的有向边对应于电路相邻时钟周期间的状态转换。自动机中同验证有关的路径,称为扩展公平路径。公平性约束则被用于排除自动机中的一些无关路径。公平性约束由一对原子谓词组成,例如(a,b),其中a为一个原子 谓词,b为一个原子谓词。 一条路径满足公平性约束(a, b),当且仅当在该 路径上,如果有无限个状态上标记了原子谓词a,则有无限个状态上标记了原 子谓词b。 一条路径是扩展公平路径,当且仅当,该路径是无限路径且满足所 有公平性约束,或者该路径为有限路径且该路径最后一个状态为终结状态,也 就是没有边从该状态出发。属性是一个时序逻辑公式,使用符号-、 p或^表示。最简单的属性就是 一个原子谓词,例如- = a, 一个状态满足原子谓词a,当且仅当该状态上标记了"。 A和V分别为逻辑与和逻辑或,例如 一个状态满足炉A^,当且仅当该状态满足^且满足^ °^是路径量词,表示从一个状态出发的所有扩展公平路径。x、 表示路径上有一个状态满足 属性^,且该状态之前的所有状态都满足属性p; G&)表示路径是无限的,也 就是路径上有无限个状态,且路径上的所有状态都满足属性^ [p^^表示路径满足或满足。路径量词和时序操作符总是成对使用,例如 一个状态满足v^(W,当且 仅当对于从该状态出发的所有扩展公平路径都包含至少两个状态,且这些扩展 公平路径的第二个状态都满足属性p 。一个属性在自动机上为真,当且仅当自动机的所有初始状态都满足该属 性。例如,图1中电路的一个功能是, 一旦输入101输入1,则此后输出103 永远输出1。该功能可以用属性^W^v^GW)描述,其意义为,对于每个从 初始状态可达的状态,^G,在该状态上输入101不为1, -a,或者在该状态 及其后续状态上输出103的输出都为1, ^G^。因此在自动机上检査一个属 性的满足性包括两步,首先找出自动机中所有满足该属性的状态,称为该属性 在自动机中的语义,然后检査所述状态是否包含自动机的所有初始状态。求解语义是一个递归的过程,如图3所示,属性ZG(-av^G(州可以被视 为一棵树,语义的求解从叶子开始,首先求解-。的语义301, C,,也就是所有 标记了-。的状态,求解6的语义302, C2;接着求解^G(C》的语义303, C..,,也就是所有满足如下条件的状态对于每个从该状态出发的扩展公平路径,该扩展公平路径为无限,且路径上的所有状态都在c,中;接着求解c,vc;的语义304, C4,也就是所有在q中或在q中的状态;最后求解K (C,)的语义305, 语义305也就是TC (-"v^G(州的语义。因此,求解嵌套公式的语义是求解一系列非嵌套公式的语义,非嵌套公式称为基本公式。模型检测是通过遍历自动机的状态来检査属性的满足性。由于自动机的状 态数随电路中输入和寄存器的个数成指数级增长,因此当电路规模变大时,就 会出现状态爆炸问题,即自动机的状态太多,使计算所需的空间和时间都无法 令人接受。缓和状态爆炸的一种方法是使用模型抽象。模型抽象认识到大规模的待验证系统通常是由多个子模块组合而成,因而 可以先将各个子模块抽象成较小的抽象模块,再将这些抽象模块组合起来形成 一个待验证系统的抽象模型。由于子模块规模较小,因此在抽象的过程中不会 出现状态爆炸。同样最终得到的抽象模型也比原始系统小,因而在其上进行属 性验证不会出现状态爆炸。如图4所示, 一个大的电路401由2个子模块403和子模块404组成,直 接处理电路401会产生状态爆炸。为了避免状态爆炸,可以先将子模块403 和子模块404抽象成较小的模型抽象子模块405和抽象子模块406,再将抽象 子模块405和抽象子模块406组合起来生成电路401的抽象模型402,最后用 抽象模型402代替电路401来检査属性的满足性。模型抽象的基本原理是将原始模型的状态空间划分为若干个分块,然后将 每个分块抽象为一个抽象状态从而形成一个比原始模型小的抽象模型。模型抽 象中的一个关键问题是如何划分原始模型的状态空间。划分的分块越多,抽象 模型所保留的信息越多,在抽象模型上能够验证的属性也越多,但相应的抽象 模型的规模会增大。因此验证者必须选择适当的划分,以得到规模可接受的抽 象模型,同时保证给定的属性能够在该抽象模型上进行验证。通常验证者会先 使用原始模型的接口谓词生成一个初始的划分,然后对该划分进行进一步分割 以使其保留足够多的信息。如图5所示,左侧原始模型的状态空间被划分为3个分块,每个分块对应 于右边抽象模型中的一个抽象状态。抽象模型中的边的生成规则为,如果在原始模型中,有一条边从一个分块中的状态到另一个分块中的状态,该两个分块 为相同或不同分块,则在抽象模型中,有一条边从一个分块所对应的抽象状态 到另一个分块所对应的抽象状态。可以证明如果一个属性在抽象模型中为真,则该属性在原始模型中也为真z但是当一个属性在抽象模型中为假时,该属性在原始模型中不一定为假,也就是说在抽象模型中生成的反例不一定能对应到原始模型中的一条路径,此时称该反例为伪反例。例如,图5中由抽象状态 503、抽象状态502和抽象状态501组成的抽象路径并不能对应到原始模型中 的一条路径。为了避免伪反例,可以对原始模型的状态划分施加更强的条件, 例如可以要求对于任意的分块1和分块2,要么分块1中的所有状态都存在一 条边到分块2中的状态,要么分块1中没有状态存在一条边本文档来自技高网...
【技术保护点】
一种模型检测中的模型抽象方法,其特征在于,包括: 步骤1,输入原始模型和指导属性; 步骤2,为所述指导属性的每个节点求解其在所述原始模型中的超语义,根据所述超语义为所述指导属性的每个非叶子节点求解对应的基本序列; 步骤3, 对所述原始模型的状态空间建立划分; 步骤4,应用所述指导属性、每个所述节点的超语义和每个非叶子节点的基本序列分割所述划分; 步骤5,为所述指导属性的每个节点建立对应的证明模型,应用所述证明模型进一步分割所述步骤4分割后的划分; 步骤6,由进一步分割后的所述划分生成所述原始模型对应的抽象模型。
【技术特征摘要】
【专利技术属性】
技术研发人员:陈博文,沈海华,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。