CN102663190B - Pptl符号模型检测方法 - Google Patents
Pptl符号模型检测方法 Download PDFInfo
- Publication number
- CN102663190B CN102663190B CN201210102063.9A CN201210102063A CN102663190B CN 102663190 B CN102663190 B CN 102663190B CN 201210102063 A CN201210102063 A CN 201210102063A CN 102663190 B CN102663190 B CN 102663190B
- Authority
- CN
- China
- Prior art keywords
- formula
- boolean
- desirable properties
- pptl
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明是一种PPTL符号模型检测方法,属可信计算领域,本发明使用具有完全正则表达能力的规范语言PPTL描述待验证系统期望性质;使用Kripke结构M=(S,R,L)描述系统模型,借助ROBDD对符号化系统模型M进行搜索,通过构建标记正则图检查期望性质公式是否可满足,节省后续操作时间,提高检测效率。本发明仅需基于时序操作符“○”的检测过程,降低了检测复杂度。本发明提升了模型检测可处理问题的规模,有效缓解状态空间爆炸问题,同时具有描述状态敏感、顺序和闭包性质的能力,可以应用于工业、农业、军事、科研等领域硬件系统设计缺陷的检测,软件系统控制逻辑错误的检查以及通信协议正确性的形式化验证。
Description
技术领域
本发明属于可信计算领域,主要涉及系统形式化建模与验证技术领域,尤其涉及命题投影时序逻辑(PPTL)和符号模型检测方法(SMC),具体是一种PPTL符号模型检测方法。可应用于工业、农业、军事、科研等领域硬件系统设计缺陷的检测,软件系统控制逻辑错误的检查以及通信协议正确性的形式化验证。
技术背景
近几年来,随着各种计算机应用软件,硬件电路、嵌入式系统和网络通信协议等在工业、农业、军事、科研等领域的广泛应用,这些系统及协议的复杂度日益增加俱增,对于可靠性的需求不断提高。形式化验证技术的发展和不断成熟使得我们可以利用计算机来解决上述问题。形式化验证技术起源于20世纪60年代的软件危机。当前,较为流行的形式化验证方法分为三类,分别是定理证明、等价性验证和模型检测。定理证明可以应用于有穷和无穷系统的验证,但是其自动化程度不高,证明过程耗时且容易出错,并且不能在证明失败时给出反例;等价性验证技术可用于验证不同抽象层次系统模型的等价性,但是它只能发现设计中的错误,不能发现其中的缺陷;模型检测技术是一种自动化的形式化验证方法,它通过穷举搜索状态空间的方式决定待验证系统模型是否满足期望的性质,并且在不满足期望性质时给出反例。
在模型检测中,通常将验证系统期望的性质用时序逻辑(TL)公式描述,将待验证系统建模为有限状态机,如Kripke结构、迁移系统或者自动机。然后,遍历待验证系统模型的状态空间以检查待验证系统是否满足期望性质,并在期望性质不满足时提供反例,以定位设计错误和缺陷。传统的模型检测方法大多基于显式状态空间描述,当验证问题规模过大时,系统状态数目会随着系统并发执行部件数目的上升呈现指数级增长,从而引发状态空间爆炸问题。在本领域内提出了许多压缩状态空间的方法。常用的方法有抽象模型检测(AMC),限界模型检测(BMC),组合模型检测(CMC)和符号模型检测(SMC)等方法。
符号模型检测方法由McMillan于1992年提出,其主要思想是:将待验证系统模型的状态空间编码为布尔公式,然后使用归约有序二叉决策图(ROBDD)的压缩存储机制,降低存储和搜索状态空间所需的内存空间,从而缓解状态空间爆炸问题。
虽然,近几年来学术界提出了很多用于验证并发系统性质的时序逻辑,如计算树逻辑(CTL)和线性时序逻辑(LTL)等,但是这些时序逻辑的描述能力有限,至少有两种类型的性质是CTL和LTL都无法描述的:(1)状态敏感性质,例如,性质Q在第x个状态成立或者Q在第x个状态和第y个状态之间成立;(2)顺序性质和闭包性质,例如,性质Q在性质P成立之后成立,或者性质Q周期性的成立。进而导致使用模型检测对系统正则性质进行验证比较困难。命题投影时序逻辑(PPTL)引入了顺序(Chop)和投影(Projection)时序算子,其表达能力达到完全正则。使用PPTL可以方便地描述CTL和LTL无法描述的状态敏感、顺序和闭包性质。
因此,如何应对状态空间爆炸问题并扩展期望性质的描述能力成为模型检测技术领域研究和亟待解决的关键问题之一。
发明内容
本发明主要针对现有模型检测方法中,被验证系统模型存在过多并发执行部件引发的状态空间爆炸以及现有时序逻辑语言描述能力不足问题,提出一种高效、简洁的、状态空间紧凑、期望性质描述能力更强的PPTL符号模型检测方法。
下面对本发明进行详细说明:
本发明是一种PPTL符号模型检测方法,本发明使用具有完全正则表达能力的规范语言PPTL描述待验证系统的期望性质;使用Kripke结构M=(S,R,L)描述待验证系统模型,进而将编码得到的布尔公式使用ROBDD表示,借助于ROBDD的压缩存储和有效地布尔公式操作机制高效地对被验证系统模型M进行搜索。
PPTL符号模型检测的具体步骤包括:
步骤1:首先对待验证系统建模,采用Kripke结构描述模型M=(S,R,L),并将模型M中的状态集合S和迁移关系R分别编码为形如x1·x2·...·xn和(x1·x2·...·xn)·(x1′·x2′·...·xn′)的布尔公式,其中“·”为逻辑与操作符,布尔公式的逻辑操作使用ROBDD实现,并将标记函数L定义为AP→2S,其中AP为原子命题的集合,2S为状态集合S的幂集;标记函数L将每个原子命题ai∈AP映射到满足ai的状态集合;
步骤2:使用PPTL描述待验证系统的期望性质,得到期望性质公式Q;
本发明的步骤1是对待验证系统建模并将模型M中的状态集合S和迁移关系R用布尔公式表示,步骤2是将待验证系统的期望性质使用规范语言PPTL进行描述,步骤1和步骤2可同时进行,也可先进行步骤1再进行步骤2。将步骤1和步骤2的结果相结合用于计算满足期望性质公式Q的状态集合的布尔编码。
步骤3:计算满足期望性质公式Q的状态集合的布尔编码BQ;
步骤4:如果BQ≠0,那么待验证系统的模型M满足期望性质公式Q,模型检测结果显示待验证系统满足期望的性质;如果BQ=0,那么待验证系统的模型M不满足期望性质公式Q,模型检测结果显示待验证系统不满足期望的性质;
步骤5:待验证系统的PPTL符号模型检测结束。
本发明通过将待验证系统的状态空间和迁移关系使用布尔公式符号化表示,并借助ROBDD对状态空间进行高效、简洁的操作,降低了存储和操作状态空间所需要的内存空间,提升了模型检测处理问题的规模,并且缓解了状态空间爆炸问题;本发明还通过使用PPTL描述待验证系统性质,实现了对于CTL和LTL等现有的时序逻辑无法描述的状态敏感、顺序和闭包性质的描述,将待验证系统期望性质的描述能力扩展到完全正则型。
本发明的实现还在于:对于任何以PPTL描述的期望性质公式Q,可以将Q改写为其正则形,记为NFQ,并构建Q的完全正则图GQ,步骤3中计算满足以PPTL描述的期望性质公式Q的状态集合的布尔编码BQ的具体步骤包括:
步骤3.1:定义期望性质公式Q的正则形,对于任何以PPTL描述的期望性质公式Q,Q的正则形定义为:其中QP为Q中出现的原子命题的集合, l为QP中原子命题的数量,l=|Qp|,n为Q的正则形中描述当前性质的析取项Qej∧empty的数量,n0为Q的正则形中描述未来性质的析取项Qci∧○Qi′的数量,1≤n(n0)≤3l,m为状态公式Qej中原子命题的数目,m0为状态公式Qci中原子命题的数目,1≤m(m0)≤l;状态子公式qjk和qih属于QP,对于任意公式r∈QP,表示r或者;Qi′是一个PPTL时序公式;
步骤3.2:根据步骤3.1所述的正则形定义将期望性质公式Q改写为其正则形,记为NFQ=f1∨f2∨...∨fn,其中包含n个用析取操作符“∨”连接的期望性质子公式f1,...,fn,用这些期望性质子公式组成期望性质子公式集合NQ={f1,...,fn};
步骤3.3:定义期望性质公式Q的标记正则图,对于任何以PPTL描述的期望性质公式Q,将Q的标记正则图(LNFG)定义为有向图G=(V(Q),E(Q),V0,L={L1,L2,...Lm}),其中V(Q)是结点集合,每个结点对应一个PPTL公式;E(Q)是有向边的集合,每条边记为(vQ,Qe,vF),即从结点vQ到结点vF有一条用状态公式Qe标记的有向边;V0是初始结点的集合;标记集合L中的每个子集合Lk(1≤k≤m)为带标签lk~的结点集合,k为标签的计数变量;
步骤3.4:根据步骤3.3所述的标记正则图定义,构造期望性质公式Q的标记正则图,记为GQ,如果GQ中不包含vempty结点,并且对于GQ中的任意无限路径π,π中出现无限多次的结点的集合记为Inf(π),存在一个标记结点集合Li,使得Inf(π)是Li的子集,那么满足Q的状态集合的布尔编码BQ=0,转到步骤3.8,反之转到步骤3.5;
步骤3.5:从期望性质子公式集合NQ中任选一个期望性质子公式fi,使用以布尔公式符号化表示的状态集合S和迁移关系R计算出满足期望性质子公式fi的状态集合的布尔编码Bfi,如果fi中包含状态公式,那么满足该状态公式的状态集合的布尔编码不经过形式判定,直接由符号化的状态集合S和标记函数L求得;
步骤3.6:从期望性质子公式集合NQ中删除fi,如果NQ不为空则转到步骤3.5,反之转到步骤3.7;
步骤3.7:满足期望性质公式Q的状态集合的布尔编码BQ=Bf1+...+Bfn;
步骤3.8:计算满足期望性质公式Q的状态集合的布尔编码BQ的过程结束。
本发明以布尔公式符号化表示待验证系统模型M的状态集合S和迁移关系R,使用期望性质公式Q的正则形NFQ和标记正则图GQ,并借助ROBDD对状态空间进行高效、简洁的搜索,获得满足以PPTL描述的期望性质公式Q的状态集合的布尔编码,降低了搜索状态空间所需要的空间和时间复杂度,提升了模型检测的效率。
本发明的实现还在于:对于任何期望性质公式Q,根据其正则形NFQ都可以构造其标记正则图GQ,步骤3.4中构建期望性质公式Q的标记正则图GQ的具体步骤如下:
步骤3.4.1:如果期望性质公式Q的形式为P1∨P2∨...∨Pn,则为每个期望性质子公式Pi(1≤i≤n)构造一个与Pi对应的结点vPi,vPi∈V(Q)且vPi∈V0;否则,仅为期望性质公式Q构造一个与Q对应的结点vQ,vQ∈V(Q)且vQ∈V0;
步骤3.4.2:将计数变量k的初值置为1;
步骤3.4.3:从可达结点集合V(Q)\{vempty}中任选一个结点,记为vQ1,如果vQ1对应的PPTL公式Q1形式为Qi;Qj,将Q1改写为Qi∧fin(lk);Qj,vQ1加入计数变量为k的标记结点集合Lk;
步骤3.4.4:将Q1展开为其正则形构造一个与期望性质子公式empty对应的结点vempty,vempty∈V(Q),对于所有1≤j≤h,有向边(vQ1,Qej,vempty)∈E(Q);对于所有1≤i≤k,构造一个与时序公式Qi′对应的结点vQi′,vQi′∈V(Q),有向边(vQ1,Qcj,vQi′)∈E(Q),从可达结点集合V(Q)\{vempty}中删除vQ1,并将计数变量k加1;
步骤3.4.5:如果可达结点集合V(Q)\{vempty}不为空,则转到步骤3.4.3,否则转到步骤3.4.6;
步骤3.4.6:期望性质公式Q的标记正则图构建结束。
本发明使用期望性质公式的标记正则图中的有限路径(finite path)刻画期望性质公式的有穷模型(finite model),使用标记正则图中的无限路径(infinite path)刻画期望性质公式的无穷模型(infinite model),通过构建标记正则图快速检查满足期望性质公式的模型是否存在,即期望性质公式是否可满足,并在不可满足时直接返回满足期望性质公式的状态集合的布尔编码为0,节省了进行后续的操作过程所需的时间,提高了PPTL符号模型检测方法的效率。
本发明的实现还在于:期望性质子公式fi的形式仅为Qe∧empty和Qie∧○Q′i两种形式,步骤3.5中,计算满足期望性质子公式fi的状态集合的布尔编码Bfi的具体步骤包括:
步骤3.5.1:如果期望性质子公式Pi的形式为Qe∧empty,那么Bfi=BQe,其中BQe为待验证系统模型M中满足状态公式Qe的状态集合的布尔编码,转步骤3.5.4,否则转到步骤3.5.2;
步骤3.5.2:如果期望性质子公式fi的形式为Qie∧○Q′i,且PPTL时序公式Q′i之前未被标记过,那么,首先使用步骤3计算满足PPTL时序公式Q′i的状态集合的布尔编码BQ′i,然后,使用逻辑与操作符“·”连接满足状态公式Qie的状态集合的布尔编码BQie与BQ′i在迁移关系R作用下的原象R-1(BQ′i)得到Bfi,即Bfi=BQie·R-1(BQ′i),然后标记Q′i,转步骤3.5.4,否则转到步骤3.5.3;
步骤3.5.3:如果期望性质子公式fi的形式为Qie∧○Q′i,且PPTL时序公式Q′i之前被标记过,那么,首先使用步骤3和不动点理论计算满足PPTL时序公式Q′i的状态集合的布尔编码fixpoint(τ(BQ′i)),然后使用逻辑与操作符“·”连接满足状态公式Qie的状态集合的布尔编码BQie与fixpoint(τ(BQ′i)在迁移关系R作用下的原象R-1(fixpoint(τ(BQ′i)))得到Bfi,即Bfi=BQie·R-1(fixpoint(τ(BQ′i)));
步骤3.5.4:计算满足期望性质子公式fi的状态集合的布尔编码Bfi过程结束。
步骤3是一个递归过程,也可称为递归函数,递归是指函数在其定义或说明中有直接或间接调用自身的方法,如果将步骤3看做一个以PPTL公式作为输入、以布尔公式作为输出的函数,那么,步骤3的定义中,其子过程步骤3.5.2和3.5.3中计算满足时序公式Q′i的状态集合的布尔编码BQ′i时直接调用了步骤3本身。
本发明使用递归过程把计算满足期望性质子公式fi的状态集合的布尔编码Bfi复杂问题转化为一个与原问题相似的规模较小的问题来求解,简化了Bfi的计算过程,提高了模型检测过程的效率。本发明还将所有期望性质子公式归纳为Qe∧empty和Qte∧○Q′i两种形式,这两种形式只包含一个时序操作符“○”;同现有的时序逻辑CTL和LTL为所有的时序操作符提供一个独立的模型检测过程相比,本发明仅需要提供基于时序操作符“○”的符号模型检测过程,降低了PPTL符号模型检测过程的复杂度。
本发明的实现还在于:计算满足时序公式Q′i的状态集合的布尔编码BQ′i的过程中,如果出现已标记过的时序公式,借助不动点理论刻画BQ′i,BQ′i的布尔方程形如:τ(B)=BQie·R-1(BQje·R-1(BQke·R-1(B))),步骤3.5.3中,计算满足时序公式Q′i的状态集合的布尔编码BQ′i的具体步骤如下:
步骤3.5.3.1:将布尔方程τ(B)=BQie·R-1(BQie·R-1(BQke·R-1(B)))中的自变量B的初值置为BQie,即B=BQie,同时将τ(B)的值赋给布尔变量B′;
步骤3.5.3.2:如果自变量B的值等于布尔变量B′的值,则转到步骤3.5.3.4,否则转到步骤3.5.3.3;
步骤3.5.3.3:将布尔变量B′的值赋给自变量B,将B更新之后的值代入布尔方程τ(B),并将τ(B)的值赋给布尔变量B′,转到步骤3.5.3.2;
步骤3.5.3.4:BQ′i的值为B的值,满足时序公式Q′i的状态集合的布尔编码BQ′i的计算过程结束。
本发明使用不动点理论刻画满足时序公式Q′i的状态集合的布尔编码BQ′i,通过将以BQ′i为自变量的布尔方程τ(B)使用ROBDD表示,借助于ROBDD的高效布尔方程操作机制,加快了布尔方程τ(B)不动点的计算速度,提高了PPTL符号模型检测过程的效率。
总体而言,本发明提出的PPTL符号模型检测方法很好的扩充了现有模型检测方法可验证问题的规模以及期望性质的描述能力。本发明采用具有完全正则描述能力的PPTL公式描述待验证系统期望的性质,采用Kripke结构M=(S,R,L)描述待验证系统模型,整个过程均使用以布尔公式编码状态集合S和迁移关系R,通过ROBDD的压缩存储和有效地布尔公式操作机制,可以高效地求得满足期望性质公式的状态集合的布尔编码。由于硬件电路和网络通信协议中包含许多取值范围为布尔域的变量,本发明特别适合于数字电路系统设计缺陷的检测和网络通信协议正确性的验证。因此,本发明是一种高效地、简洁的、实用方法。
与现有技术相比,本发明具体优点如下所述:
(1)由于使用PPTL公式描述待验证系统的期望性质,可以描述CTL和LTL等流行的时序逻辑无法描述的性质,如状态敏感性质、顺序性质和闭包性质,且PPTL的表达能力等价于完全正则语言,因此可以将符号模型检测中待验证系统期望性质的描述能力扩展到完全正则型。
(2)将待验证系统模型的状态集合S和迁移关系R使用布尔公式符号化表示,然后使用ROBDD表示状态集合S和迁移关系R对应的布尔公式,借助ROBDD的压缩存储和有效地布尔公式操作机制对待验证系统模型的状态集合S进行高效、简洁的搜索,降低了存储和操作状态空间所需要的内存空间,从而提升模型检测可以处理问题的规模,并且有效缓解状态空间爆炸问题。
(3)所有涉及状态空间S和迁移关系R的计算和操作过程均使用以ROBDD为基础的逻辑操作实现,同利用基本图形数据结构存储和操作状态空间相比,内存空间占用和计算复杂度更低,计算效率更高。
(4)使用期望性质公式Q的标记正则图GQ中的路径刻画期望性质公式的有穷模型和无穷模型,通过构建标记正则图可以快速检查满足期望性质公式Q的模型是否存在,即期望性质公式是否可满足。在期望性质公式Q不可满足时,直接返回满足期望性质公式的状态集合的布尔编码为0,节省进行后续的操作所需的时间,提高了PPTL符号模型检测方法的效率。
(5)将所有期望性质子公式归纳为Qe∧empty和Qie∧○Q′i两种形式,这两种形式只包含一个时序操作符“○”,结合符号化的状态集合S、迁移关系R以及时序操作符“○”的语义,快速求出满足时序公式Q′i的状态集合的布尔编码BQ′i。同CTL和LTL的符号模型检测为每个时序操作符提供一个独立的处理过程相比,本发明仅需提供基于时序操作符“○”的符号模型检测过程,简化了计算过程,降低了PPTL符号模型检测过程的复杂度。
附图说明
图1是PPTL符号模型检测流程图;
图2是计算满足期望性质子公式fi的状态集合的布尔编码Bfi的流程图;
图3是实施例4中基于不动点计算满足时序公式Q′i状态集合的布尔编码BQ′i的示意图,其中图3(a)是迁移关系R的布尔公式表示,图3(b)是满足命题a1的状态集合的布尔编码Ba1的ROBDD表示,图3(c)~图3(e)是利用ROBDD对布尔公式τ(Ba1)=Ba1+Ba1·R-1(Ba1)的不动点进行计算的过程,图3(f)为基于不动点计算满足时序公式Q′i状态集合的布尔编码BQ′i的流程图;
图4是对以Verilog硬件描述语言描述的3x+1问题数字电路系统进行PPTL符号模型检测的示意图,其中图4(a)为以Verilog硬件描述语言描述的3x+1问题数字电路系统的以及在输入端输入整数5时的该系统的具体模型,图4(b)为图4(a)中3x+1问题数字电路系统的抽象模型,图4(c)为图4(b)中3x+1问题数字电路系统抽象模型中迁移关系的布尔编码,图4(d)和4(e)为以PPTL描述的3x+1问题数字电路系统期望性质公式P及P的子公式的正则形,图4(f)~图4(k)为期望性质公式P及P的子公式的标记正则图。
具体实施方式
下面结合附图详细阐述本发明,图中的期望性质公式P即为期望性质公式Q:
实施例1
本发明是一种PPTL符号模型检测方法,参见图1,使用具有完全正则表达能力的规范语言PPTL描述待验证系统的期望性质;使用Kripke结构M=(S,R,L)描述待验证系统模型,并将模型M的状态集合S和迁移关系R使用布尔变量进行编码,进而将编码得到的布尔公式使用ROBDD表示,借助于ROBDD的压缩存储和有效地布尔公式操作机制高效地对被验证系统模型M进行搜索,待验证系统也称为待检测系统,状态空间S也称为状态集合S。
PPTL符号模型检测的具体步骤包括:
步骤1:首先对待验证系统建模,采用Kripke结构描述模型M=(S,R,L),并将模型M中的状态集合S和迁移关系R分别编码为形如x1·x2·...·xn和(x1·x2·...·xn)·(x1′·x2′·...·xn′)的布尔公式,其中“·”为逻辑与操作符,布尔公式的逻辑操作使用ROBDD实现,并将标记函数L定义为AP→2S,其中AP为原子命题的集合,2S为状态集合S的幂集;标记函数L将每个原子命题ai∈AP映射到满足ai的状态集合。
将待验证系统模型M中的状态集合S和迁移关系R编码为布尔公式的步骤包括:
步骤1.1:将状态集合S编码为布尔公式,设原子命题集合AP中有n个原子命题a1,a2,...,an,为每个原子命题ai指派一个对应的布尔变量xi,那么状态集合S中的每个状态s均可以表示成一个由n个布尔变量组成的布尔公式x1·x2·...·xn,其中如果s∈L(ai),则xi=1;反之,xi=0;
步骤1.2:将迁移关系R编码为布尔公式,迁移关系R是状态迁移的集合,首先将R中的每个状态迁移s→s′表示为形如(x1·x2·...·xn)·(x1′·x2′·...·xn′)的布尔公式,其中s∈L(ai),则xi=1;反之,xi=0。同样地,s′∈L(ai),则xi′=1;反之,xi′=0。不带标记的布尔公式(x1·x2·...·xn)表示状态迁移s→s′的当前状态s,带标记的布尔公式(x1′·x2′·...·xn′)表示状态迁移s→s′下一状态s′,最后,将迁移关系R用其特征方程进行符号化表示,即用逻辑或操作符“+”连接R中所有状态迁移关系的布尔公式编码;
步骤1.3:状态集合S和迁移关系R的布尔编码过程结束。
本发明将待验证系统模型的状态集合S和迁移关系R使用布尔变量编码,然后使用ROBDD表示编码得到的布尔公式,并借助ROBDD的压缩存储和有效地布尔公式操作机制对待验证系统模型的状态集合S进行高效、简洁的搜索,从而降低存储和操作状态空间所需要的内存空间,提升模型检测可以处理问题的规模,并且有效缓解状态空间爆炸问题。
步骤2:使用PPTL描述待验证系统的期望性质,得到期望性质公式Q。
本发明使用PPTL公式描述待验证系统的期望性质,可以描述CTL和LTL等流行的时序逻辑无法描述的性质,如状态敏感性质、顺序性质和闭包性质,且PPTL的表达能力等价于完全正则语言,因此可以将符号模型检测中待验证系统期望性质的描述能力扩展到完全正则型。
步骤3:计算满足期望性质公式Q的状态集合的布尔编码BQ。
对于任何以PPTL描述的期望性质公式Q,可以将Q改写为其正则形,记为NFQ,并构建Q的完全正则图GQ,步骤3中计算满足以PPTL描述的期望性质公式Q的状态集合的布尔编码BQ的具体步骤包括:
步骤3.1:定义期望性质公式Q的正则形,对于任何以PPTL描述的期望性质公式Q,Q的正则形定义为:其中QP为Q中出现的原子命题的集合, l为QP中原子命题的数量,l=|Qp|,n为Q的正则形中描述当前性质的析取项Qej∧empty的数量,n0为Q的正则形中描述未来性质的析取项Qci∧○Qi′的数量,1≤n(n0)≤3l,m为状态公式Qej中原子命题的数目,m0为状态公式Qci中原子命题的数目,1≤m(m0)≤l;状态子公式qjk和qih属于QP,对于任意公式r∈QP,表示r或者Qi′是一个用时序操作符“○”修饰的PPTL时序公式;
步骤3.2:根据步骤3.1所述的正则形定义将期望性质公式Q改写为其正则形,记为NFQ=f1∨f2∨...∨fn,其中包含n个用析取操作符“∨”连接的期望性质子公式f1,...,fn,用这些期望性质子公式组成期望性质子公式集合NQ={f1,...,fn};
步骤3.3:定义期望性质公式Q的标记正则图,对于任何以PPTL描述的期望性质公式Q,将Q的标记正则图(LNFG)定义为有向图G=(V(Q),E(Q),V0,L={L1,L2,...Lm}),其中V(Q)是结点集合,每个结点对应一个PPTL公式;E(Q)是有向边的集合,每条边记为(vQ,Qe,vF),即从结点vQ到结点vF有一条用状态公式Qe标记的有向边;V0是初始结点的集合;标记集合L中的每个子集合Lk(1≤k≤m)为带标签lk~的结点集合,k为标签的计数变量;
步骤3.4:根据步骤3.3所述的标记正则图定义,构造期望性质公式Q的标记正则图,记为GQ,如果GQ中不包含vempty结点,并且对于GQ中的任意无限路径π,π中出现无限多次的结点的集合记为Inf(π),存在一个标记结点集合Li,使得Inf(π)是Li的子集,那么满足Q的状态集合的布尔编码BQ=0,转到步骤3.8,反之转到步骤3.5;
对于任何期望性质公式Q,根据其正则形NFQ都可以构造其标记正则图GQ,步骤3.4中构建期望性质公式Q的标记正则图GQ的具体步骤如下:
步骤3.4.1:如果期望性质公式Q的形式为P1∨P2∨...∨Pn,则为每个期望性质子公式Pi(1≤i≤n)构造一个与Pi对应的结点vPi,vPi∈V(Q)且vPi∈V0;否则,仅为期望性质公式Q构造一个与Q对应的结点vQ,vQ∈V(Q)且vQ∈V0;
步骤3.4.2:将计数变量k的初值置为1;
步骤3.4.3:从可达结点集合V(Q)\{vempty}中任选一个结点,记为vQ1,如果vQ1对应的PPTL公式Q1形式为Qi;Qj,将Q1改写为Qi∧fin(lk);Qj,vQ1加入计数变量为k的标记结点集合Lk;
步骤3.4.4:将Q1展开为其正则形构造一个与期望性质子公式empty对应的结点vempty,vempty∈V(Q),对于所有1≤j≤h,有向边(vQ1,Qej,vempty)∈E(Q);对于所有1≤i≤k,构造一个与时序公式Qi′应的结点vQi′,vQi′∈V(Q),有向边(vQ1,Qcj,vQi′)∈E(Q),从可达结点集合V(Q)\{vempty}中删除vQ1,并将计数变量k加1;
步骤3.4.5:如果可达结点集合V(Q)\{vempty}不为空,则转到步骤3.4.3,否则转到步骤3.4.6;
步骤3.4.6:期望性质公式Q的标记正则图构建结束。
本发明使用期望性质公式Q的标记正则图GQ中的有限路径刻画期望性质公式的有穷模型,使用标记正则图中的无限路径刻画期望性质公式的无穷模型,通过构建标记正则图可以快速检查满足期望性质公式Q的模型是否存在,即期望性质公式Q是否可满足。如果GQ不包含empty结点,那么满足期望性质公式Q的有穷模型不存在;如果对于GQ中的任意无限路径π,均存在一个标记结点集合Li,使得π中出现无限多次的结点的集合Inf(π)是该标记结点集合Li的子集,那么满足期望性质公式Q的无穷模型不存在。如果上述2个条件同时成立,那么期望性质公式Q不可满足,直接返回满足期望性质公式的状态集合的布尔编码为0,节省进行后续的操作过程所需的时间,从而提高PPTL符号模型检测方法的效率。
步骤3.5:从期望性质子公式集合NQ中任选一个期望性质子公式fi,使用以布尔公式符号化表示的状态集合S和迁移关系R计算出满足期望性质子公式fi的状态集合的布尔编码Bfi,如果fi中包含状态公式,那么满足该状态公式的状态集合的布尔编码不经过形式判定,直接由符号化的状态集合S和标记函数L求得;
期望性质子公式fi的形式仅为Qe∧empty和Qie∧○Q′i两种形式,步骤3.5中,计算满足期望性质子公式fi的状态集合的布尔编码Bfi的具体步骤包括:
步骤3.5.1:如果期望性质子公式fi的形式为Qe∧empty,那么Bfi=BQe,其中BQe为待验证系统模型M中满足状态公式Qe的状态集合的布尔编码,转步骤3.5.4,否则转到步骤3.5.2;
步骤3.5.2:如果期望性质子公式fi的形式为Qie∧○Q′i,且PPTL时序公式Q′i之前未被标记过,那么,首先使用步骤3计算满足PPTL时序公式Q′i的状态集合的布尔编码BQ′i,然后,使用逻辑与操作符“·”连接满足状态公式Qie的状态集合的布尔编码BQie与BQ′i在迁移关系R作用下的原象R-1(BQ′i)得到Bfi,即Bfi=BQie·R-1(BQ′i),然后标记Q′i,转步骤3.5.4,否则转到步骤3.5.3;
步骤3.5.3:如果期望性质子公式fi的形式为Qie∧○Q′i,且PPTL时序公式Q′i之前被标记过,那么,首先使用步骤3和不动点理论计算满足PPTL时序公式Q′i的状态集合的布尔编码fixpoint(τ(BQ′i)),然后使用逻辑与操作符“·”连接满足状态公式Qie的状态集合的布尔编码BQie与fixpoint(τ(BQ′i))在迁移关系R作用下的原象R-1(fixpoint(τ(BQ′i)))得到Bfi,即Bfi=BQie·R-1(fixpoint(τ(BQ′i)));
计算满足时序公式Q′i的状态集合的布尔编码BQ′i的过程中,如果出现已标记过的时序公式,那么需要借助不动点理论刻画BQ′i,BQ′i的布尔方程形如:τ(B)=BQie·R-1(BQje·R-1(BQke·R-1(B))),步骤3.5.3中,计算满足时序公式Q′i的状态集合的布尔编码BQ′i的具体步骤如下:
步骤3.5.3.1:将布尔方程τ(B)=BQie·R-1(BQje·R-1(BQke·R-1(B)))中的自变量B的初值置为BQie,即B=BQie,同时将τ(B)的值赋给布尔变量B′;
步骤3.5.3.2:如果自变量B的值等于布尔变量B′的值,则转到步骤3.5.3.4,否则转到步骤3.5.3.3;
步骤3.5.3.3:将布尔变量B′的值赋给自变量B,将B更新之后的值代入布尔方程τ(B),并将τ(B)的值赋给布尔变量B′,转到步骤3.5.3.2;
步骤3.5.3.4:BQ′i的值为B的值,满足时序公式Q′i的状态集合的布尔编码BQ′i的计算过程结束。
本发明使用不动点理论刻画期望性质公式Q的标记正则图GQ中出现环路时满足时序公式Q′i的状态集合的布尔编码BQ′i。标记正则图GQ中的环路是指一条从时序公式Q′i对应的结点vQ′i出发,最后回到vQ′i结点的有向边,环路可以描述期望性质公式Q的无穷模型。这种迭代性质适合于使用不动点理论进行描述。与使用基本图形数据结构表示状态空间的模型检测计算不动点的方法相比,本发明通过定义以BQ′i为自变量的布尔方程τ(B),并将τ(B)使用ROBDD表示,借助于ROBDD的高效布尔方程操作机制,加快了布尔方程τ(B)不动点的计算速度,减少计算不动点需要的迭代次数,提高了PPTL符号模型检测过程的效率。
步骤3.5.4:计算满足期望性质子公式fi的状态集合的布尔编码Bfi过程结束。
本发明还将所有期望性质子公式归纳为Qe∧empty和Qie∧○Q′i两种形式,这两种形式只包含一个时序操作符“○”,结合符号化的状态集合S、迁移关系R以及时序操作符“○”的语义,可以快速求出满足时序公式Q′i的状态集合的布尔编码BQ′i。同CTL和LTL的符号模型检测为每个时序操作符提供一个独立的处理过程相比,本发明仅需提供基于时序操作符“○”的符号模型检测过程,降低了PPTL符号模型检测过程的复杂度。
步骤3.6:从期望性质子公式集合NQ中删除fi,如果NQ不为空则转到步骤3.5,反之转到步骤3.7;
步骤3.7:满足期望性质公式Q的状态集合的布尔编码BQ=Bf1+...+Bfn;
步骤3.8:计算满足期望性质公式Q的状态集合的布尔编码BQ的过程结束。
如果将步骤3看做一个以PPTL公式作为输入、以布尔公式作为输出的函数,那么,步骤3是一个递归过程,因为步骤3定义中其子过程步骤3.5.2和步骤3.5.3计算满足时序公式Q′i的状态集合的布尔编码BQ′i时直接调用了步骤3本身。本发明使用步骤3的递归过程把计算满足期望性质子公式fi的状态集合的布尔编码Bfi这一复杂问题层层转化为一个与原问题相似的规模较小的问题来求解,提高模型检测过程的效率。
步骤4:如果BQ≠0,那么待验证系统的模型M满足期望性质公式Q,模型检测结果显示待验证系统满足期望的性质;如果BQ=0,那么待验证系统的模型M不满足期望性质公式Q,模型检测结果显示待验证系统不满足期望的性质;
步骤5:待验证系统的PPTL符号模型检测结束。
本发明将待验证系统模型的状态集合S和迁移关系R使用布尔公式符号化表示,然后将状态集合S和迁移关系R的布尔公式表示为ROBDD。本发明以ROBDD为基础存储数据信息,所有涉及状态空间和迁移关系的计算过程均使用定义在ROBDD上的逻辑操作实现,借助ROBDD的压缩存储和有效地布尔公式操作机制可以对待验证系统模型的状态集合S进行高效、简洁的搜索,降低存储和操作状态空间所需要的内存空间,本发明仅需基于时序操作符“○”的检测过程,降低了检测复杂度,提升了模型检测可处理问题的规模,从而提升模型检测可以处理问题的规模,并且有效缓解状态空间爆炸问题。本发明还使用PPTL公式描述待验证系统的期望性质,可以描述CTL和LTL等流行的时序逻辑无法描述的状态敏感性质、顺序和闭包性质,且PPTL的表达能力等价于完全正则语言,可以将符号模型检测中待验证系统期望性质的描述能力扩展到完全正则型。因此,本发明提出的PPTL符号模型检测方法为状态空间爆炸问题和期望性质描述能力不足问题提供了一种高效、简洁、可行的解决方案。
实施例2
PPTL符号模型检测方法同实施例1,参见图1,本发明是一种PPTL符号模型检测方法,将以PPTL描述的期望性质公式Q,改写为其正则形,记为NFQ,并构建Q的完全正则图GQ,使用以布尔公式符号化表示的状态集合S和迁移关系R,借助于ROBDD高效地计算满足期望性质公式Q的状态集合的布尔编码。
计算满足以PPTL描述的期望性质公式Q的状态集合的布尔编码BQ的具体步骤包括:
步骤3.1:定义期望性质公式Q的正则形,对于任何以PPTL描述的期望性质公式Q,Q的正则形定义为:其中QP为Q中出现的原子命题的集合, l为QP中原子命题的数量,l=|Qp|,n为Q的正则形中描述当前性质的析取项Qej∧empty的数量,n0为Q的正则形中描述未来性质的析取项Qci∧○Qi′的数量,1≤n(n0)≤3l,m为状态公式Qej中原子命题的数目,m0为状态公式Qci中原子命题的数目,1≤m(m0)≤l;状态子公式ajk和qih属于QP,对于任意公式r∈QP,表示r或者Qi′是一个PPTL时序公式;
步骤3.2:根据步骤3.1所述的正则形定义将期望性质公式Q改写为其正则形,记为NFQ=f1∨f2∨...∨fn,其中包含n个用析取操作符“∨”连接的期望性质子公式f1,...,fn,用这些期望性质子公式组成期望性质子公式集合NQ={f1,...,fn};
步骤3.3:定义期望性质公式Q的标记正则图,对于任何以PPTL描述的期望性质公式Q,将Q的标记正则图(LNFG)定义为有向图G=(V(Q),E(Q),V0,L={L1,L2,...Lm}),其中V(Q)是结点集合,每个结点对应一个PPTL公式;E(Q)是有向边的集合,每条边记为(vQ,Qe,vF),即从结点vQ到结点vF有一条用状态公式Qe标记的有向边;V0是初始结点的集合;标记集合L中的每个子集合Lk(1≤k≤m)为带标签lk~的结点集合,k为标签的计数变量;
步骤3.4:根据步骤3.3所述的标记正则图定义,构造期望性质公式Q的标记正则图,记为GQ,如果GQ中不包含vempty结点,并且对于GQ中的任意无限路径π,π中出现无限多次的结点的集合记为Inf(π),存在一个标记结点集合Li,使得Inf(π)是Li的子集,那么满足Q的状态集合的布尔编码BQ=0,转到步骤3.8,反之转到步骤3.5;
步骤3.5:参见图2,从期望性质子公式集合NQ中任选一个期望性质子公式fi,使用以布尔公式符号化表示的状态集合S和迁移关系R计算出满足期望性质子公式fi的状态集合的布尔编码Bfi,如果fi中包含状态公式,那么满足该状态公式的状态集合的布尔编码不经过形式判定,直接由符号化的状态集合S和标记函数L求得;
步骤3.6:从期望性质子公式集合NQ中删除fi,如果NQ不为空则转到步骤3.5,反之转到步骤3.7;
步骤3.7:满足期望性质公式Q的状态集合的布尔编码BQ=Bf1+...+Bfn;
步骤3.8:计算满足期望性质公式Q的状态集合的布尔编码BQ的过程结束。
本发明以布尔公式符号化表示待验证系统模型M的状态空间S和迁移关系R,使用期望性质公式Q的标记正则图GQ刻画Q是否可满足,使用期望性质公式Q的正则形NFQ刻画满足Q的状态集合,然后借助于ROBDD对状态空间进行高效、简洁的搜索,获得满足以PPTL描述的期望性质公式Q的状态集合的布尔编码,降低了搜索状态空间所需要的空间和时间复杂度,提升模型检测的效率。
实施例3
PPTL符号模型检测方法同实施例1~2,参见图4(d)~(k),PPTL符号模型检测方法中通过构建期望性质公式P标记正则图GP,并检查满足期望性质公式P的模型是否存在,以确定期望性质公式P是否可满足。
以期望性质公式P或者P的子公式对应的结点为根结点构建标记正则图GP的具体步骤包括:
首先,定义期望性质公式P的标记正则图。期望性质公式P的标记正则图GP是有向图,GP=(V(P),E(P),V0,L={L1,L2,...Lm}),其中V(P)是结点集合,每个结点对应一个PPTL公式;E(P)是有向弧的集合,每条边记为(vP,Pe,vM),即从结点vP到结点vM有一条用状态公式Pe标记的有向弧;V0是初始结点的集合;标记集合L中的每个子集合Lk(1≤k≤m)为带标签lk~的结点集合,k为标签的计数变量。
期望性质公式P的标记正则图GP生成方法如下:
步骤3.4.1:期望性质公式P≡P1;P2;(P3)3;P4的形式不为形如P1∨P2∨...∨Pn的析取范式,仅为P构造一个与P对应的结点vP,vP∈V(P)且vP∈V0;
步骤3.4.2:将计数变量k的初值置为1;
步骤3.4.3:从可达结点集合V(P)\{vempty}中任选一个结点,由步骤3.4.1知,可达结点集合V(P)\{vempty}开始只包含一个结点vP,vP对应的PPTL公式P形式为P1;P2;(P3)3;P4,将P改写为P1∧fin(l1);P2;(P3)3;P4,P加入计数变量为1的标记结点集合L1;
步骤3.4.4:将P展开为正则形为图4(d)所示的正则形。为期望性质子公式empty构造对应的结点vempty,将vempty加入结点集合V(P),将有向边(vP,Pe,vε)加入有向边集合E(P),其中状态公式Pe=P1∧P2∧P3∧P4;为所有时序公式Q0,Q1,Q2,Q3,Q4,Q5构造对应的结点vQ0,vQ1,vQ2,vQ3,vQ4,vQ5,并将这些结点加入结点集合V(P),将有向边(vP,Pc0,vQ0),(vP,Pc1,vQ1),(vP,Pc2,vQ2),(vP,Pc3,vQ3),(vP,Pc4,vQ4),(vP,Pc5,vQ5)加入有向边集合E(P),其中状态公式Pc0=P1,Pc1=P1∧P2,Pc2=P1∧P2∧P3,Pc3=P1∧P2∧P3,Pc4=P1∧P2∧P3,Pc5=P1∧P2∧P3∧P4从可达结点集合V(P)\{vempty}中删除vP,并将计数变量k=k+1=2;
步骤3.4.5:可达结点集合V(P)\{vempty}={vQ0,vQ1,vQ2,vQ3,vQ4,vQ5}不为空,转到步骤3.4.3;
步骤3.4.5:有限次重复步骤3.4.3~3.4.5,依次构造出图4(f)~(k)的标记正则图,图4(f)为从结点vP出发构建的标记正则图,图4(g)为从结点vQ0出发构建的标记正则图,图4(h)为从结点vQ1出发构建的标记正则图,图4(i)为从结点vQ2出发构建的标记正则图,图4(j)为从结点vQ3出发构建的标记正则图,图4(k)为从结点vQ4和vQ5出发构建的标记正则图;
步骤3.4.6:从可达结点集合v(P)\{vempty}中的结点出发构建期望性质公式P的标记正则图GP结束。
本发明使用期望性质公式P的标记正则图GP中的有限路径精确刻画期望性质公式P的有穷模型,如图4(f)中从期望性质公式P对应的结点vP到达期望性质子公式empty对应的结点vempty的路径,使用GQ中的无限路径精确刻画Q的无穷模型,如图4(g)中从期望性质子公式Q0对应的结点vQ0到vQ0自身的路径。通过判断有穷和无穷模型的存在情况,提前确定期望性质公式Q是否可满足,如果期望性质公式Q可满足,再进行后续操作计算满足Q的状态集合的布尔编码,如果Q不可满足,那么满足它的状态集合的布尔编码一定为0。同CTL和LTL符号模型检测方法相比,本发明可以较早地得出待验证系统模型不满足期望性质公式Q的结论,节省后续操作所需的时间,提高了检测效率。
实施例4
PPTL符号模型检测方法同实施例1~3,PPTL符号模型检测中计算满足期望性质子公式fi的状态集合的布尔编码Bfi的过程涉及到步骤3在其定义中有直接调用自身的过程,即递归调用过程。具体是将步骤3看做一个以PPTL公式作为输入、以布尔公式作为输出的函数Procedure_3,步骤3的定义中,其子过程步骤3.5.2和步骤3.5.3在计算满足PPTL时序公式Q′i的状态集合的布尔编码BQ′i时,调用了该函数以Q′i为实际参数的实例Procedure_3(Q′i),即BQ′i=Procedure_3(Q′i)。参见图4(e),Procedure_3递归调用自身的计算满足PPTL时序公式Q4的状态集合的布尔编码BQ4时步骤包括:
(1)将PPTL时序公式Q4展开为其正则形P4∧empty∨P4∧○Q5∨○Q4;
(2)Q4的正则形中描述当前性质的析取项P4∧empty中,满足状态公式P4的状态集合的布尔编码BP4可以由符号化的状态空间S和标记函数L直接求得;
(3)Q4的正则形中描述未来性质的析取项P4∧○Q5∨○Q4,满足状态公式P4的状态集合的布尔编码BP4可以由步骤(2)获得,Q5为将Q4展开为其正则形过程中新产生的PPTL时序子公式,那么,转到(4),Q4为已经出现过的PPTL时序子公式,转到(5);
(4)调用步骤3,计算满足时序子公式Q5的状态集合的布尔编码BQ5=Procedure_3(Q5);
(5)调用步骤3,并结合不动点理论计算满足时序子公式Q′b的状态集合的布尔编码BQ4=fixpoint(Procedure_3(Q4));
(6)计算满足PPTL时序公式Q4的状态集合的布尔编码BQ4时,调用以Q4为实际参数的实例Procedure_3(Q4),得到BQ4=Procedure_3(Q4)=BP4+BP4·Procedure_3(Q5)+fixpoint(Procedure_3(Q4));
(7)Procedure_3自身递归调用过程结束。
本发明在步骤3定义中直接调用了步骤3本身,使用步骤3计算满足PPTL时序公式Q4的状态集合的布尔编码BQ4时,通过递归调用Procedure_3,将步骤3中Procedure_3(BQ4)的计算过程转化为满足规模更小的PPTL时序子公式Q5的状态集合的布尔编码BQ5=Procedure_3(Q5)的计算过程。参见图4(e),Q1表示了一个图4(d)中期望性质公式P的子公式,计算满足Q1的状态集合的布尔编码BQ1的过程,可以通过递归,将该过程转化为满足规模更小的时序子公式Q2,Q3,Q4,Q5的状态集合的布尔编码BQ2,VQ3,BQ4,BQ5的计算过程,通过层层递归最终将满足这些子公式的状态集合的布尔编码的计算过程转化为形式最简单的时序子公式Q5的状态集合的布尔编码BQ5的计算过程,降低了计算满足PPTL时序公式状态集合的布尔编码复杂度,提高了模型检测的效率。
实施例5
PPTL符号模型检测方法同实施例1~4。参照图3,本发明使用不动点理论刻画满足PPTL时序公式Q′i≡□a1的状态集合的布尔编码BQ′i的计算过程,在数字电路系统中经常含有可以用不动点理论刻画的周期性性质。
将Q′i的展开为其正则形a1∧empty∨a1∧○□a1,满足PPTL时序公式Q′i≡□a1的状态集合的布尔编码BQ′i=Ba1+Ba1·R-1(BQ′i),因此BQ′i为布尔方程τ(B)=Ba1+Ba1·R-1(B)的不动点,迁移关系R的布尔编码参见图3(a),的ROBDD表示如图3(b)所示,基于不动点理论计算满足时序公式Q′i的状态集合的布尔编码BQ′i的具体步骤如图3(f)所示:
步骤3.5.3.1:将布尔方程τ(B)=Ba1+Ba1·R-1(B)中的自变量B的初值置为Ba1,即B=Ba1,τ(Ba1)=Ba1+Ba1·R-1(Ba1),的计算过程参见图3(c),表示布尔公式的ROBDD与图3(b)中表示Ba1的ROBDD相同,因此Ba1·R-1(Ba1)的计算过程参见图3(d),表示布尔公式Ba1·R-1(Ba1)的ROBDD与图3(b)中表示Ba1的ROBDD相同,因此τ(Ba1)=Ba1+Ba1·R-1(Ba1)的计算过程参见图3(e),因此将τ(B)的值赋给布尔变量B′,B′为临时变量用以保存中间数据;
步骤3.5.3.2:自变量B的值为布尔变量B′的值为由于B=B′=Ba1,因此Ba1为布尔方程τ(B)=Ba1+Ba1·R-1(B)的不动点,转到步骤3.5.3.4,否则转到步骤3.5.3.3;
步骤3.5.3.3:将布尔变量B′的值赋给自变量B,将B更新之后的值代入布尔方程τ(B),并将τ(B)的值赋给布尔变量B′,转到步骤3.5.3.2,由于步骤3.5.3.2计算后B=B′=Ba1,不会转到步骤3.5.3.3,因此实际计算过程中本步骤从略;
步骤3.5.3.4:BQ′i的值为B的值,即满足时序公式Q′i的状态集合的布尔编码BQ′i的计算过程结束。
本发明使用不动点理论刻画满足时序公式Q′i的状态集合的布尔编码BQ′i。与使用基本图形数据结构存储状态空间的模型检测计算不动点的方法相比,本发明通过定义以BQ′i为自变量的布尔方程τ(B),并将τ(B)使用ROBDD表示,借助于ROBDD的高效布尔方程操作机制,加快了布尔方程τ(B)不动点的计算速度,减少计算不动点需要的迭代次数,提高PPTL符号模型检测过程的效率。
实施例6
PPTL符号模型检测方法同实施例1~4,参见图4,本发明用于对硬件电路系统进行模型检测,待验证系统为采用Verilog硬件描述语言书写的3x+1问题数字电路系统,参见图4(a),该系统的主要功能包括:
(1)初始状态下,从3x+1问题数字电路系统的输入端输入一个正整数x,并将其存储在6位数据寄存器register_x中;
(2)在每个时钟上升沿(posedge clk)对数据寄存器register_x中的正整数x进行判断,如果该x为偶数,转到(3),如果x为奇数,转到(4),如果x为1,转到(5);
(3)将正整数x作为被除数,正整数2作为除数送入6位阵列除法器,并将阵列除法器返回的计算结果存储在数据寄存器register_x中,即x=x/2,,转到(2);
(4)将正整数x和正整数3送入6位并行乘法器,并将并行乘法器返回的计算结果跟正整数1一起送入全加器,然后将全加器返回的结果存储在数据寄存器register_x中,即x=3x+1,转到(2);
(5)6位数据寄存器register_x中x的值保持为1。
在3x+1问题数字电路系统的输入端输入正整数5时,该数字电路系统的期望性质公式为P1;P2;(P3)3;P4。其中期望性质子公式期望性质子公式期望性质子公式期望性质子公式 原子命题a1表示当前时钟周期6位数据寄存器register_x中正整数的值为偶数,原子命题a2为1表示当前时钟周期6位数据寄存器register_x中正整数x的值为上一个时钟周期6位数据寄存器register_x中正整数x的值乘以3加上1,原子命题a3表示当前时钟周期6位数据寄存器register_x中正整数x的值为1。
3x+1问题数字电路系统以Kripke结构描述的待验证模型M=(S,R,L),参见图4(b),其中原题命题集合AP={a1,a2,a3},对于1≤i≤3,ai表示一个原子命题,状态集合S={s0,s1,s2,s3},对于0≤i≤3,si表示一个状态,迁移关系R={(s0,s1),(s1,s2),(s2,s2),(s2,s3),(s3,s3)},对于0≤i(j}≤3,(si,sj)}∈R表示一个状态迁移,标记函数为表示s0状态下满足的原子命题集合为空集,L(s1)={a1,a2},表示原子命题a1,a2在状态s1成立,L(s2)={a1},表示原子命题a1在状态s2成立,L(s3)={a3},表示原子命题a3在状态s3成立。
3x+1问题数字电路系统的PPTL符号模型检测过程包括:
步骤1:将图4(b)中待验证系统模型M中的状态集合S和迁移关系R编码为布尔公式,其中状态s0,s1,s2,s3的布尔编码分别为000,110,100,001,状态集合S的布尔编码为迁移关系R的布尔编码表示参见图4(c);
步骤2:使用PPTL描述待验证系统的期望性质,得到期望性质公式P≡P1;P2;(P3)3;P4;
步骤3:计算满足期望性质公式Q的状态集合的布尔编码BQ;
步骤3.1:实际计算过程中,定义期望性质公式Q的正则形的步骤从略;
步骤3.2:将期望性质公式P展开为其正则形NFP,参见图4(d),NFP包含7个析取项f1,...,f7,f1=P1∧P2∧P3∧P4∧empty,f2=P1∧○Q0,f3=P1∧P2∧○Q1,f4=P1∧P2∧P3∧○Q2,f5=P1∧P2∧P3∧○Q3,f6=P1∧P2∧P3∧○Q4,f7=P1∧P2∧P3∧P4∧○Q5,其中Q0表示true;(P2;(P3;(P3;(P3;P4)))),Q1表示true;(P3;(P3;(P3;P4))),Q2表示true;(P3;(P3;P4)),Q3表示true;(P3;P4),Q4表示true;P4,Q5表示true;用这7个析取项组成期望性质子公式集合NQ={f1,...,f7};
步骤3.3:实际计算过程中,定义期望性质公式Q的标记正则图的步骤从略;
步骤3.4:构造的期望性质公式P的标记正则图,记为GP,参见图4(f)~图4(k),GP中既包含有穷路径也包含无穷路径,因此,期望性质公式P可满足;
步骤3.5:计算所有满足期望性质子公式的状态集合的布尔编码,需要首先将期望性质子公式Q0~Q5展开为正则形,Q0~Q5的正则形参见图4(e),然后分别计算满足期望性质子公式Q0,Q1,Q2,Q3,Q4,Q5的状态集合的布尔编码BQ0,BQ1,BQ2,BQ3,BQ4,BQ5:
BP=BP1∧P2∧P3∧P4+BP1∧P2∧P3∧P4·R-1(BQ5)+BP1·R-1(BQ0)+BP1∧P2·R-1(BQ1)+BP1∧P2∧P3·R-1(BQ2+BQ3+BQ4)
BQ0=BP2∧P3∧P4+BP2∧P3∧P4·R-1(BQ5)+R-1(BQ0)+BP2·R-1(BQ1)+BP2∧P3·R-1(BQ2+BQ3+BQ4)
BQ1=BP3∧P4+BP3∧P4·R-1(BQ5)+R-1(BQ1)+BP3·R-1(BQ2+BQ3+BQ4)
BQ2=BP3∧P4+BP3∧P4·R-1(BQ5)+R-1(BQ2)+BP3·R-1(BQ3+BQ4)
BQ3=BP3∧P4+BP3∧P4·R-1(BQ5)+R-1(BQ2)+BP3·R-1(BQ3+BQ4)
BQ4=BP4+BP4·R-1(BQ5)+R-1(BQ4)
BQ5=1
步骤3.6:计算满足期望性质子公式Q4的状态集合的布尔编码BQ4时,BQ4为布尔公式τ(B)=BP4+BP4·R-1(BQ5)+R-1(BQ4)的不动点,根据不动点理论计算出满足期望性质子公式Q4的状态集合的布尔编码
步骤3.7:计算满足期望性质子公式Q3的状态集合的布尔编码BQ3时,将步骤3.6中得到的BQ4带入步骤3.5中的BQ3,得到BQ3为布尔公式 的不动点,根据不动点理论计算出满足期望性质子公式Q3的状态集合的布尔编码类似的,可以计算出
步骤3.8:将步骤3.6~3.7得到的满足期望性质子公式Q0,Q1,Q2,Q3,Q4,Q5的状态集合的布尔编码BQ0,BQ1,BQ2,BQ3,BQ4,BQ5带入BP,得到满足期望性质公式P的状态集合的布尔编码
步骤4:由于BP≠0,因此待检测的模型M满足期望的性P≡P1;P2;(P3)3;P4,即以Verilog描述的3x+1数字电路系统,当输入端x的初始值为整数5时满足性质P1;P2;(P3)3;P4;
步骤5:待验证的3x+1问题数字电路系统的PPTL符号模型检测结束。
大量的数字电路系统、应用软件控制逻辑、以及网络通信协议中包含许多布尔变量,布尔变量和布尔公式均可以由唯一确定的ROBDD表示,本发明借助ROBDD操作布尔公式,特别适合于高效的检测和验证数字电路系统设计缺陷、应用软件控制逻辑错误以及网络通信协议的正确性。
综上所述,本发明属于可信计算领域,主要涉及系统形式化建模与验证技术领域,尤其涉及命题投影时序逻辑(PPTL)和符号模型检测方法(SMC)。本发明主要针对现有模型检测方法中出现的时序逻辑描述能力不足和状态空间爆炸问题,提出一种PPTL符号模型检测方法,使用规范语言PPTL描述待验证系统的期望性质,可以描述CTL和LTL等现有的时序逻辑无法描述的性质,如状态敏感性质、顺序性质和闭包性质,且PPTL的表达能力等价于完全正则语言,因此可以将符号模型检测中待验证系统期望性质的描述能力扩展到完全正则型。通过将待验证系统的状态空间和迁移关系使用布尔公式进行编码,借助ROBDD的压缩存储和有效地布尔公式操作机制对待验证系统模型的状态空间进行高效、简洁的搜索,降低了存储和操作状态空间所需要的内存空间,从而提升模型检测可以处理问题的规模,并且有效缓解状态空间爆炸问题。本发明可应用于工业、农业、军事、科研等领域硬件系统设计缺陷的检测,软件系统及控制逻辑错误的检查以及通信协议正确性的形式化验证。
Claims (1)
1.一种用于硬件电路系统的PPTL符号模型检测方法,其特征在于:使用具有完全正则表达能力的规范语言PPTL描述待验证系统的期望性质;使用Kripke结构M=(S,R,L)描述待验证系统模型,并将模型M的状态集合S和迁移关系R使用布尔变量进行编码,进而将编码得到的布尔公式使用归约有序二叉决策图表示,借助于归约有序二叉决策图的布尔公式操作机制对被验证系统模型M进行搜索,
模型检测步骤包括:
步骤1:首先对待验证系统建模,采用Kripke结构描述模型M=(S,R,L),并将模型M中的状态集合S和迁移关系R分别编码为形式是x1·x2·...·xn和(x1·x2·...·xn)·(x1′·x2′·...·xn′)的布尔公式,并将标记函数L定义为AP→2S,其中AP为原子命题的集合,2S为状态集合S的幂集;标记函数L将每个原子命题ai∈AP映射到满足ai的状态集合;
步骤2:使用PPTL描述待验证系统的期望性质,得到期望性质公式Q;
步骤3:计算满足期望性质公式Q的状态集合的布尔编码BQ;
对于任何以PPTL描述的期望性质公式Q,将Q改写为其正则形,记为NFQ,并构建Q的完全正则图GQ,其中计算满足以PPTL描述的期望性质公式Q的状态集合的布尔编码BQ的具体步骤包括:
步骤3.1:定义期望性质公式Q的正则形,对于任何以PPTL描述的期望性质公式Q,Q的正则形定义为:其中QP为Q中出现的原子命题的集合,l为QP中原子命题的数量,l=|Qp|,n为Q的正则形中描述当前性质的析取项Qej∧empty的数量,n0为Q的正则形中描述未来性质的析取项Qci∧○Qi′的数量,1≤n(n0)≤3l,m为状态公式Qej中原子命题的数目,m0为状态公式Qci中原子命题的数目,1≤m(m0)≤l;状态子公式qik和qih属于QP,对于任意公式r∈QP,表示r或者r;Qi′是一个用时序操作符“○”修饰的PPTL时序公式;
步骤3.2:根据步骤3.1所述的正则形定义将期望性质公式Q改写为其正则形,记为NFQ=fi∨f2∨...∨fn,其中包含n个用析取操作符“∨”连接的期望性质子公式f1,...,fn,用这些期望性质子公式组成期望性质子公式集合NQ={f1,...,fn};
步骤3.3:定义期望性质公式Q的标记正则图,对于任何以PPTL描述的期望性质公式Q,将Q的标记正则图(LNFG)定义为有向图G=(V(Q),E(Q),V0,L={L1,L2,…Lm}),其中V(Q)是结点集合,每个结点对应一个PPTL公式;E(Q)是有向边的集合,每条边记为(vQ,Qe,vF),即从结点vQ到结点vF有一条用状态公式Qe标记的有向边;V0是初始结点的集合;标记集合L中的每个子集合Lk(1≤k≤m)为带标签lk~的结点集合,k为标签的计数变量;
步骤3.4:根据步骤3.3所述的标记正则图定义,构造期望性质公式Q的标记正则图,记为GQ;
对于任何期望性质公式Q,根据其正则形NFQ都可以构造其标记正则图GQ,其中构建期望性质公式Q的标记正则图GQ的具体步骤如下:
步骤3.4.1:如果期望性质公式Q的形式为P1∨P2∨...∨Pn,则为每个期望性质子公式Pi(1≤i≤n)构造一个与Pi对应的结点vPi,vPi∈V(Q)且vPi∈V0;否则,仅为期望性质公式Q构造一个与Q对应的结点vQ,vQ∈V(Q)且vQ∈V0;
步骤3.4.2:将计数变量k的初值置为1;
步骤3.4.3:从可达结点集合V(Q)\{vempty}中任选一个结点,记为vQ1,如果vQ1对应的PPTL公式Q1形式为Qi;Qj,将Q1改写为Qi∧fin(lk);Qj,vQ1加入计数变量为k的标记结点集合Lk;
步骤3.4.4:将Q1展开为其正则形构造一个与期望性质子公式empty对应的结点vempty,vempty∈V(Q),对于所有1≤j≤h,有向边(vQ1,Qej,vempty)∈E(Q);对于所有1≤i≤k,构造一个与时序公式Qi′对应的结点vQi′,vQi′∈V(Q),有向边(vQ1,Qcj,vQi′)∈E(Q),从可达结点集合V(Q)\{vempty}中删除vQ1,并将计数变量k加1;
步骤3.4.5:如果可达结点集合V(Q)\{vempty}不为空,则转到步骤3.4.3,否则转到步骤3.4.6;
步骤3.4.6:期望性质公式Q的标记正则图构建结束;
如果GQ中不包含vempty结点,并且对于GQ中的任意无限路径π,π中出现无限多次的结点的集合记为Inf(π),存在一个标记结点集合Li,使得Inf(π)是Li的子集,那么满足Q的状态集合的布尔编码BQ=0,转到步骤3.8,反之转到步骤3.5;
步骤3.5:从期望性质子公式集合NQ中任选一个期望性质子公式fi,使用以布尔公式符号化表示的状态集合S和迁移关系R计算出满足期望性质子公式fi的状态集合的布尔编码Bfi,如果fi中包含状态公式,那么满足该状态公式的状态集合的布尔编码不经过形式判定,直接由符号化的状态集合S和标记函数L求得;
期望性质子公式fi的形式仅为Qe∧empty和Qie∧○Q′i两种形式,其中计算满足fi的状态集合的布尔编码Bfi的具体步骤包括:
步骤3.5.1:如果期望性质子公式fi的形式为Qe∧empty,那么Bfi=BQe,其中BQe为待验证系统模型M中满足状态公式Qe的状态集合的布尔编码,转步骤3.5.4,否则转到步骤3.5.2;
步骤3.5.2:如果期望性质子公式fi的形式为Qie∧○Q′i,且PPTL时序公式Q′i之前未被标记过,那么,首先使用步骤3计算满足PPTL时序公式Q′i的状态集合的布尔编码BQ′i,然后,使用逻辑与操作符“·”连接满足状态公式Qie的状态集合的布尔编码BQie与BQ′i在迁移关系R作用下的原象R-1(BQ′i)得到Bfi,即Bfi=BQie·R-1(BQ′i),然后标记Q′i,转步骤3.5.4,否则转到步骤3.5.3;
步骤3.5.3:如果期望性质子公式fi的形式为Qie∧○Q′i,且PPTL时序公式Q′i之前被标记过,那么,首先使用步骤3和不动点理论计算满足已标记过的PPTL时序公式Q′i的状态集合的布尔编码fixpoint(τ(BQ′i));
计算满足时序公式Q′i的状态集合的布尔编码BQ′i的过程中,如果出现已标记过的时序公式,那么需要借助不动点理论刻画BQ′i,BQ′i的布尔方程形如:τ(B)=BQie·R-1(BQje·R-1(BQke·R-1(B))),其中,计算满足已标记过的时序公式Q′i的状态集合的布尔编码fixpoint(τ(BQ′i))的具体步骤如下:
步骤3.5.3.1:将布尔方程τ(B)=BQie·R-1(BQji·R-1(BQke·R-1(B)))中的自变量B的初值置为BQie,即B=BQie,同时将τ(B)的值赋给布尔变量B′;
步骤3.5.3.2:如果自变量B的值等于布尔变量B′的值,则转到步骤3.5.3.4,否则转到步骤3.5.3.3;
步骤3.5.3.3:将布尔变量B′的值赋给自变量B,将B更新之后的值代入布尔方程τ(B),并将τ(B)的值赋给布尔变量B′,转到步骤3.5.3.2;
步骤3.5.3.4:fixpoint(τ(BQ′i))的值为B的值,满足时序公式Q′i的状态集合的布尔编码fixpoint(τ(BQ′i))的计算过程结束;
然后使用逻辑与操作符“·”连接满足状态公式Qie的状态集合的布尔编码BQie与fixpoint(τ(BQ′i))在迁移关系R作用下的原象R-1(fixpoint(τ(BQ′i)))得到Bfi,即Bfi=BQie·R-1(fixpoint(τ(BQ′i)));
步骤3.5.4:计算满足期望性质子公式fi的状态集合的布尔编码Bfi过程结束;
子过程步骤3.5.2和步骤3.5.3计算满足时序公式Q′i的状态集合的布尔编码BQ′i时直接递归调用了步骤3本身;
步骤3.6:从期望性质子公式集合NQ中删除fi,如果NQ不为空则转到步骤3.5,反之转到步骤3.7;
步骤3.7:满足期望性质公式Q的状态集合的布尔编码BQ=Bf1+...+Bfn;
步骤3.8:计算满足期望性质公式Q的状态集合的布尔编码BQ的过程结束;
步骤4:如果BQ≠0,那么待验证系统的模型M满足期望性质公式Q,模型检测结果显示待验证系统满足期望的性质;如果BQ=0,那么待验证系统的模型M不满足期望性质公式Q,模型检测结果显示待验证系统不满足期望的性质;
步骤5:待验证系统的PPTL符号模型检测结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210102063.9A CN102663190B (zh) | 2012-04-09 | 2012-04-09 | Pptl符号模型检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210102063.9A CN102663190B (zh) | 2012-04-09 | 2012-04-09 | Pptl符号模型检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102663190A CN102663190A (zh) | 2012-09-12 |
CN102663190B true CN102663190B (zh) | 2014-07-23 |
Family
ID=46772681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210102063.9A Active CN102663190B (zh) | 2012-04-09 | 2012-04-09 | Pptl符号模型检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663190B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258081B (zh) * | 2013-04-15 | 2016-06-22 | 西安电子科技大学 | 一种抽象模型虚假路径检测的方法 |
CN103885771B (zh) * | 2014-03-04 | 2017-05-24 | 西安电子科技大学 | 基于局部最小化robdd及面积延迟优化的工艺映射的方法 |
CN103888462B (zh) * | 2014-03-26 | 2016-09-14 | 南京邮电大学 | 基于局部偏序规约的控制器局域网模型验证方法 |
CN113255295B (zh) * | 2021-04-27 | 2024-04-09 | 西安电子科技大学 | 一种自然语言到pptl形式化规约自动生成方法及系统 |
CN113268890B (zh) * | 2021-06-25 | 2023-06-23 | 华北电力大学(保定) | 一种行为树模型到Kripke结构的映射方法 |
CN116755662B (zh) * | 2023-08-18 | 2023-10-20 | 深圳海云安网络安全技术有限公司 | 一种应用开发安全需求的生成方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013452A (zh) * | 2007-02-05 | 2007-08-08 | 江苏大学 | 一种符号化的模型检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386818B2 (en) * | 2004-01-22 | 2008-06-10 | Nec Laboratories America, Inc. | Efficient modeling of embedded memories in bounded memory checking |
-
2012
- 2012-04-09 CN CN201210102063.9A patent/CN102663190B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013452A (zh) * | 2007-02-05 | 2007-08-08 | 江苏大学 | 一种符号化的模型检测方法 |
Non-Patent Citations (3)
Title |
---|
《命题投影时序逻辑的可判定性》;田聪;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070615(第6期);全文 * |
杨琛,段振华.《PPTL模型检测器实现的一个关键技术》.《西安交通大学学报》.2010,第44卷(第10期),第24-29页. * |
田聪.《命题投影时序逻辑的可判定性》.《中国优秀硕士学位论文全文数据库 信息科技辑》.2007,(第6期),全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102663190A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663190B (zh) | Pptl符号模型检测方法 | |
WO2021000556A1 (zh) | 一种工业设备剩余有效寿命预测方法、系统及电子设备 | |
CN109002601B (zh) | 一种基于Petri网的FPGA系统的验证模型建模方法 | |
CN103198015A (zh) | 一种基于使用概率的嵌入式软件可靠性测试数据生成方法 | |
Meng et al. | ALSRAC: Approximate logic synthesis by resubstitution with approximate care set | |
US20070129925A1 (en) | Logic circuit model conversion apparatus and method thereof; and logic circuit model conversion program | |
Golden et al. | Modeling of complex systems ii: A minimalist and unified semantics for heterogeneous integrated systems | |
Vasicek | Relaxed equivalence checking: a new challenge in logic synthesis | |
CN114528688A (zh) | 可靠性数字孪生体模型构建方法、装置和计算机设备 | |
Cashmore et al. | Planning as Quantified Boolean Formula. | |
CN102799960B (zh) | 面向数据模型的并行业务流程异常检测方法 | |
Mousavi et al. | Formal semantics and analysis of component connectors in Reo | |
Derisavi et al. | Symbolic state-space exploration and numerical analysis of state-sharing composed models | |
CN104967114A (zh) | 电网负荷实时数字建模方法及系统 | |
Masina et al. | On CNF conversion for disjoint SAT enumeration | |
CN104298827A (zh) | 一种基于Petri网的异步电路建模和VHDL实现方法 | |
Bryant | Tbuddy: A proof-generating BDD package | |
Zhang et al. | Software architecture modeling and reliability evaluation based on petri net | |
CN116191404A (zh) | 分布式电源发电预测方法、装置、电子设备及存储介质 | |
CN115544926A (zh) | 一种基于xmg组合电路的等价性验证装置及方法 | |
Beldiceanu et al. | Propagating regular counting constraints | |
Zhao et al. | A symbolic algorithm for shortest EG witness generation | |
Cárdenas et al. | The DEVStone metric: performance analysis of DEVS simulation engines | |
CN105760653A (zh) | 一种基于随机时间Petri网的系统安全性分析方法 | |
Da Silva et al. | An Optimization-Based Monte Carlo Method for Estimating the Two-Terminal Survival Signature of Networks with Two Component Classes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |