PPTL符号模型检测方法技术领域
本发明属于可信计算领域,主要涉及系统形式化建模与验证技术领域,尤其涉及
命题投影时序逻辑(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的状态集合的布尔编码类似的,可以计算出
B Q 1 = B Q 2 = x 1 - x 2 - x 3 - + x 1 x 3 - ; ]]>
步骤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的压缩存储和有效地布尔公式操作机制对
待验证系统模型的状态空间进行高效、简洁的搜索,降低了存储和操作状态空间所需
要的内存空间,从而提升模型检测可以处理问题的规模,并且有效缓解状态空间爆炸
问题。本发明可应用于工业、农业、军事、科研等领域硬件系统设计缺陷的检测,软
件系统及控制逻辑错误的检查以及通信协议正确性的形式化验证。