首页> 中国专利> 为组合验证生成自动化假设的方法、系统和计算机程序产品

为组合验证生成自动化假设的方法、系统和计算机程序产品

摘要

本发明涉及为组合验证生成自动化假设的方法、系统和计算机程序产品。公开了一种用于计算精确的最小自动机以担当假设-保证推理中的中间断言的方法、系统和计算机程序产品。在一个实施例中,通过使用采样方法和布尔可满足性来执行对精确最小自动机的计算。这里所描述的方法可以被用作形式验证工具的一部分。

著录项

  • 公开/公告号CN101404045A

    专利类型发明专利

  • 公开/公告日2009-04-08

    原文格式PDF

  • 申请/专利权人 韵律设计系统公司;

    申请/专利号CN200810215404.7

  • 发明设计人 A·格普塔;K·L·麦克米伦;

    申请日2008-07-02

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人付建军

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 21:40:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-17

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20140618 终止日期:20150702 申请日:20080702

    专利权的终止

  • 2014-06-18

    授权

    授权

  • 2010-08-11

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20080702

    实质审查的生效

  • 2009-04-08

    公开

    公开

说明书

背景技术

在硬件和软件系统的环境下,软件测试已经被广泛用于调试系统或演示出 系统展现某些特性。但是,软件测试自身经常无法证明系统没有特定类型的缺 陷。而且其自身也无法演示出系统展现特定特性。另一方面,形式验证能够通 过使用数学方法充分证明或反驳软件和硬件系统的正确性,并由此证明感兴趣 的系统不具有特定缺陷,或展现特定特性。

更具体地,通过使用抽象的数学模型,形式验证试图证明感兴趣的系统满 足特定要求,或者所述系统能够展现特定特性或行为。也就是说,对这样的系 统的形式验证是通过提供对这些系统的抽象数学模型的形式证明来执行的。经 常被用来对系统进行建模的数学对象的一些典型示例是有限状态机和各种自动 机。

通常有两种方法来进行形式验证处理。一种方法通常被称作模型检验。模 型检验通常包括有限数学模型的系统限举探索,并且通过探索模型的所有状态 和转换对感兴趣的系统进行验证。模型检验通常还借助一些抽象技术以避免不 得不考虑系统中的每个单独状态,从而减少计算时间。

另一种方法是逻辑推理,其包括涉及特定定理证明过程的、与系统相关的 数学推理的形式版本。所要验证的项目通常以某些形式的时序逻辑表示,诸如 线性时序逻辑或计算树逻辑。后面的这种逻辑推理方法的缺点在于逻辑推理方 法通常是部分自动化的,并且其效率和生存力可能取决于用户对感兴趣的系统 的认识。

由于逻辑推理方法的各种局限和缺陷,模型检验已经成为被广泛接受的、 用于对硬件和软件系统的正确性进行形式验证的技术。该技术的广泛应用的一 个主要障碍是由于现实世界的系统的复杂度增加而引起的状态爆炸 (state-explosion)问题。组合验证是一种用于缓解状态爆炸问题的方法。组合 验证将软件和硬件系统的验证任务分解为针对所述系统的个体组件的较简单的 验证问题。例如,考虑由两组件M1和M2构成的系统M,并且需要在M上验 证的特性P。组合验证的假设-保证(assume-guarantee)方式使用推理规则, 该推理规则规定:可通过识别假设A,以使得在所有情况下A在M1上成立,并 且在满足A的任意情况下M2满足P,从而在M上验证P。成功应用该推理规 则的关键在于简洁假设A的自动识别。

传统上,一些现有方法已经提出了用于计算分离的自动机的多项式时间近 似方法。这些方法基于用于主动学习正则语言的Angluin的L*方法的修改。一 些现有技术方法已经给出了该基于L*的方法的符号化实现方式。但是,这种方 法的主要缺陷在于没有近似边界。也就是说,在最差情况下,L*方法会返回平 凡解M1作为分离语言,并且由此没有在状态空间减小方面提供好处,这种好处 通过简单地使M1最小化是无法得到的。这样,需要缓解状态爆炸问题在组合验 证中的影响。

发明内容

公开了一种用于计算将两种语言分离的最小确定性有限自动机的方法、系 统和计算机程序产品。在本发明的一些实施例中,所述方法使用采样方法和布 尔可满足性解算器。另外在本发明的一些实施例中,所述方法可被应用于使用 假设-保证推理为形式验证生成中间断言。

以下在详细说明、附图和权利要求中描述了本发明的其它方面的细节、目 的和优点。之前的一般性描述和以下的详细描述均为示例性和解释性的,并非 意在对本发明的范围进行限制。

附图说明

所包括的附图用于提供对于本发明进一步的理解,并且其连同具体实施方 式一起用于解释本发明的原理。

图1A例示了本发明一些实施例中所实现的用于为电子电路的组合验证生 成自动化假设的系统和方法一般流程的框图。

图1B例示了本发明一些实施例中所实现的用于为电子电路的细合验证生 成自动化假设的系统和方法的一般流程的更多细节的框图。

图2例示了关于反复计算最小分离的不完全确定性有限自动机(IDFA)的 操作的更多细节。

图3例示了确定A是否分离两种语言的操作的进一步细节。

图4例示了确定相容划分Γ的操作的进一步细节。

图5例示了保证划分相容的布尔约束的进一步细节。

图6例示了从之前计算出的IDFA概括完整的DFA的操作的进一步细节。

图7例示了上面在处理1中所示的整体过程的框图。

图8例示了根据本发明另一实施例的自动生成假设的方法。

图9例示了包括两位移位寄存器的示例性硬件电路。

图10例示了由本发明一个实施例的方法在图9所示的电路上生成的假设自 动机。

图11描述了其上可执行利用并发处理模型对闭包(closure)进行计时的方 法的计算机化系统。

具体实施方式

本发明的若干实施例提供了用于为组合验证生成自动化假设的方法、系统 和计算机程序产品。参见图1A,在152,通过识别电子电路设计的第一组和第 二组行为开始处理。所识别的数据将被用于刻画作为“有限自动机”的系统设计 的特征(是电子硬件、软件,还是硬件和软件的组合),其中有限自动机(也 被称作有限状态机)是由有限数量的状态、这些状态之间的转换以及操作所构 成的行为的模型。

接着,在154,所述处理基于对所述第一组和第二组行为的采样,反复计算 最小的“不完全确定性有限自动机”(IDFA)。确定性有限状态机是对于每个状 态和输入符号的对,有一个且仅有一个到下一状态的转换的有限状态机。在一 些情况下,有限状态自动机可以是不完全的,原因在于它不包含被用来对特定 行为进行建模的一些信息。

在156,基于所述IDFA,所述处理通过从所述最小IDFA进行概括来确定 确定性有限自动机(DFA)。这实质上是通过执行学习处理以从IDFA收集足够 的信息来确定DFA而完成的。在进行了确定之后,在158,DFA可以被存储在 有形的计算机可读介质上。

由于本发明的各个实施例涉及用于为组合验证生成自动化假设的方法和系 统,所以以下首先描述用于细合验证的数学模型,以提供本发明的一些实施例 的基础。

I.用于组合验证的数学模型

这部分所公开的是在本发明的一些实施例中用来对软件和硬件系统的正确 性进行形式证明的数学模型。

组合验证将对于软件和硬件系统的验证任务分解为对于所述系统的个体组 件的较为简单的验证问题。首先考虑包括两个组件M1和M2的系统M以及需要 在M上进行验证的特性P。组合验证的假设-保证方式使用以下推理规则:

<true>M1<A>

<A>M2<P><true>M1||M2<P>---(1)

以上推理规则规定可以通过识别假设A在M上验证P以使得:在所有情况 下A在M1上成立,并且在满足A的任意情况下M2满足P。在语言-理论框架 中,通过有限自动机对作为正则语言的处理进行建模、指定。处理组合是语言 的交集,并且在处理与L(:P)的交集为空时,处理满足特性P。由此,以上推理 规则可被写为:

L(M1)L(A)

L(A)L(M2)L(P)=φL(M1)L(M2)L(P)=φ---(2)

所述方法和系统然后指定L(M2)和L(:P)的交集为M2′。于是,构建假设-保 证中项(argument)的问题被归结为寻找分离L(M1)和L(M2′)的自动机A,其 中L(A)接受L(M1)中的所有串,但是拒绝L(M2′)中的所有串。

清楚的是,一个目标是寻找具有尽可能少的状态的自动机A以使检验假设- 保证规则的前项(antecedent)时的状态爆炸问题最小化。

对于确定性自动机,寻找最小状态分离自动机的问题是NP完全问题。可 简化为显示为NP完全的、寻找不完全确定性有限自动机(IDFA)的最小状态 实施方式的问题。为了避免这种复杂度,提出了一种基于主动学习正则语言的 L*方法的变型的多项式时间近似方法。这种方法的主要缺陷在于没有近似边界; 在最差情况下,该方法会返回平凡解L(M1)作为分离语言,并且由此没有在状态 空间减小方面提供好处,这种好处通过简单地使M1最小化是无法得到的。实际 上,在本发明一些实施例中已考虑的针对硬件验证问题的一些实验中,该方法 对于任意基准(benchmark)问题无法得到状态减少。

所公开的数学模型正好解决了最小分离自动机问题。由于在M1和M2′被符 号化表示时,整体验证问题是PSPACE完全问题,所以没有理由要求在多项式 时间中解决寻找中间断言这一子问题。此外,假设-保证推理的目的是得到具有 与|M1|+|M2′|而不是|M1|×|M2′|成比例的复杂度的验证过程。如果实现了这一点, 倘若A小的话,则整体复杂度为|A|的指数级就不会有问题。

考虑到这一基本原理,本发明的一些实施例提出了针对最小分离自动机问 题的精确方法,其适于硬件验证的假设-保证推理。本发明的一些实施例对于 IDFA最小化问题采用基于采样的方法。这种方法反复生成L(M1)和L(M2′)中的 样本串,在每个步骤计算与样本集相一致的最小自动机。寻找与标注串的集合 相一致的最小自动机本身是一个NP完全问题。于是,本发明的一些实施例通 过使用布尔可满足性(SAT)解算器来解决该问题。使用采样方法是因为用于 解决IDFA最小化问题的标准技术要求明确的状态表示,这对于硬件验证是不 实际的。

对于硬件应用而言,还必须考虑字母表是连接M1和M2的布尔信号的数目 的指数级这一事实。在基于L*的方法中也观察到了这种困难,其中查询的数目 与字母表的大小成比例。本发明的一些实施例通过在部分字母表上学习自动机 并且使用决策树学习方法对全字母表进行概括来解决这一问题。

使用一组合成硬件基准,本发明的一些实施例示出了这种方法在近似L*方 法没有产生减少的情况下产生精确的最小中间断言是有效的。在一些情况下, 与使用最新技术水平的方法的直接模型检验相比,这明显减少了整体验证时间。

A.确定性有限自动机(DFA)

定义1确定性有限自动机(DFA)M是一个五元组(S,∑,s0,δ,F),其中:(1) S是有限状态集,(2)∑是有限字母表,(3)δ:S×∑→S是转换函数,(4) s0∈S是初始状态,以及(5)FS是接受状态集或最终状态集。注意,F可 以为空集。

定义2不完全确定性有限自动机(IDFA)M是一个六元组(S,∑,s0,δ,F,R), 其中:(1)S是有限状态集,(2)∑是有限字母表,(3)δ:S×∑→S是部分转换 函数,(4)s0∈S是初始状态,(5)FS是接受状态集,以及(6)RS是 拒绝状态集。

直观地,IDFA是不完全的,因为一些状态可能不具有对于完全字母表的外 出转换,并且一些状态既不接受也不拒绝。如果没有始自状态s的在符号a上 的转换,则δ(s,a)=⊥。对于DFA和IDFA二者而言,转换函数δ可以以通 常方式扩展以应用于串。也就是说,如果π∈∑*且a∈∑,则在δ(s,a)≠⊥时 δ(s,πa)=δ(δ(s,π),a),否则δ(s,πa)=⊥。

如果δ(s0,s)∈F,则DFAM接受串s,否则s被M拒绝。如果δ(q0,s)∈F, 则IDFA接受串s。如果δ(q0,s)∈R,则串s被IDFAM拒绝。

给定两种语言L1,L2Σ*,DFA或IDFA在接受L1中的所有串并拒绝L2中的 所有串时将L1和L2分离。用于L1和L2的最小分离自动机(MSA)是分离L1和L2的具有最小数量的状态的自动机。

B.L*方法

出于比较的目的,首先描述用于学习分离自动机的基于L*的近似方法。在 L*方法中,学习者通过向教师提出查询来推断未知的正则语言L的最小DFAA。 在成员关系查询中,学习者提供串π,并且如果π∈L则教师回复是,否则回 复否。在等价查询中,学习者提出自动机A,并且如果L(A)=L则教师回复是, 否则提供反例。该反例可以为正(即,L\L(A)中的串)或者为负(即L(A)\L中 的串)。学习者保证在多个大小为A的查询多项式中发现A的方法对于本领域 技术人员是已知的。

Cobleigh方法对该过程略微进行了修改以学习用于两种语言L1和L2的分离 自动机。这与L*方法的区别仅在于教师所提供的响应。在等价查询的情况下, 如果A是用于L1和L2的分离自动机,则教师回复是。否则,教师提供作为L1\L(A) 中的串的正的反例或者作为L2∩L(A)中的串的负的反例。对于关于串π的成员 关系查询,如果π∈L1则教师回复是,并且如果π∈L2则回复否。如果π即不 在L1中也不在L2中,则选择是任意的。由于教师并不知晓最小分离自动机,它 不能够提供正确的答案,所以简单地回答否。因此,实际上,教师请求学习者 学习L1,但是愿意接受分离L1和L2的任意猜测。使用用于学习者的Angluin方 法,能够示出所学习的分离自动机A没有较用于L1的最小自动机更多的状态。 然而,这会任意大于最小分离自动机。

在Angluin的原始方法中,查询的数目是大小为A的多项式,并且具体地, 等价查询的数目最多为A中的状态的数目。在假设-保证应用中,L1=L(M1)且 L2=L(M2 ′)。对于硬件验证而言,M1和M2 ′是符号化表示的非确定性有限自动 机(NFA)(非确定性是由隐藏的输入以及用于:P的自动机的构建引起的)。因 此答复成员关系查询是NP完全问题,其实质上是有界的模型检验问题,而答 复等价查询是PSPACE完全问题,其是符号化模型检验问题。这样,所述方法 的执行时间实际上是简单指数级的。

C.精确求解最小分离自动机问题

为了找到两种语言L1和L2的精确MSA,在一些实施例中将遵循一般的用于 使IDFA最小化的Pena和Oliveira方法。这是仅使用等价查询的学习方法。这 依赖于能够计算将串的两个有限集进行分离的最小DFA的子程序。虽然Pena 和Oliveira方法局限于有限状态机,但是该技术能够被应用于具有正则分离算 子(regular separator)的任何语言L1和L2,即使L1和L2本身并不是正则的。

处理1中示出了所述过程的整体流程。保持样本串的两个集合S1∈L1和 S2∈L2。通过(使用下述过程)计算分离S1和S2的最小DFAA开始主循环。接 着学习者对A执行等价查询。如果A分离L1和L2,则该过程终止。否则,从教 师处获得反例串π。如果π∈L1并且因此πL(A),则π被添加到S1,否则π被添 加到S2。重复该过程,直至等价查询成功。在以下的方法中,首先测试负反例, 然后测试正反例。但是该顺序是任意的,并且实际上可以对于每个查询随机选 择该顺序以避免使结果偏向于一种语言。

可以使用模型检验器来实现该过程中的教师。也就是说,检验L1∈L(A)和 L(A)∩L2=φ是模型检验问题。在该应用中,L1和L2是符号化表示的NFA的语 言,并且将使用符号化模型检验方法来执行所述检验。要注意,L(A)中的测试 包容性(containment)要求对A进行补足,但是由于A是确定性的,所以这 是简单的。

定理1对于有限的∑,令L1,L2Σ*.如果L1和L2具有正则分离算子,则处 理1终止并输出L1和L2的最小分离自动机。

证明令A′为具有k个状态的、L1和L2的最小状态分离自动机。由于S1∈L1且S2∈L2,得出A′也是S1和S2的分离自动机。因此,A具有不多于k个状态(因 为它是S1和S2的最小分离自动机)。因此,如果所述过程终止,则A是L1和L2的 最小分离自动机。此外,在具有k个状态的限的∑上具有有限的多个DFA。在 每次重复中,一个这样的自动机作为S1和S2的分离算子而被排除。因此,所述 过程必然终止。

现在所剩下的仅仅是找到一种计算有限语言S1和S2的最小分离自动机的方 法。该问题已经被广泛研究,并且已知是NP完全问题。

定义3当关系{(s1,s2)S2|a,δ(s1,a)=s2}是以s0为根的有向树时,IDFA M=(S,∑,s0,δ,F,R)是树状的。

给定任意两个不相交的串集S1和S2,构建接受S1并拒绝S2的树状IDFA并 将其称为TREESEP(S1,S2)。

定义4令S1,S2Σ*是不相交的有限语言。用于S1和S2的树状分离算子 TREESEP(S1,S2)是树状DFA(S,∑,s0,δ,F,R),其中S是S1∪S2的前缀的集合,s0是空串,F=S1且R=S2,并且如果πa∈S则δ(π,a)=πa,否则为⊥。

Oliveira和Silva方法示出,分离S1和S2的每个IDFAA与TREESEP(S1,S2)是 同态的,并且该方法将在后面的部分中进行定义。因此,要寻找k个状态的分 离自动机A,本发明的一些实施例仅需猜测从TREESEP(S1,S2)的状态到A的状 态的映射并且据此构建A。该处理被称作折叠(folding)。

定义5令M=(S,∑,s0,δ,F,R)和M′=(S′,∑,s0′,δ′,F′,R′)为字母表∑上的两 个IDFA。在以下情况下,映射φ:s1→S’是M到M′上的折叠:

a.φ(s0)=s0

b.对于所有s∈S,a∈∑,如果δ(s,a)≠⊥,则δ′(φ(s),a)=φ(δ(s,a)),

c.对于所有s∈F,φ(s)∈F′以及

d.对于所有s∈R,φ(s)∈R′。

以下定理说明了S1和S2的每个分离IDFA能作为树状自动机 TREESEP(S1,S2)而获得。通过对树的归纳,容易获得所述映射。

定理2(OLIVEIRA和SILVA)令T=(S,∑,s0,δ,F,R)为树状IDFA,其接 受集合S1并拒绝集合S2。于是,当且仅当存在从T到A的折叠∑时,∑上的 IDFAA是S1和S2的分离自动机。

接下来所示出的是如何通过划分树T的状态来构建树T的折叠。如果Γ是 集合S的划分,则包含S的元素s的Γ的元素将被表示为[s]Γ

定义6令M=(S,∑,s0,δ,F,R)为∑上的IDFA。M的相容划分是S的划分Γ, 从而

a.对于所有s,t∈S,a∈∑,如果δ(s,a)≠⊥且δ(t,a)≠⊥且[s]Γ=[t]Γ,则 [δ(s,a)]Γ=[δ(t,a)]Γ,以及

b.对于所有状态s∈F且t∈R,[s]Γ≠[t]Γ

定义7令M=(S,∑,s0,δ,F,R)为IDFA并且令Γ为S的相容划分。商M/Γ是 IDFA(Γ,∑,s0′,δ′,A′,R′),以使得

a.s0′=[s0]Γ

c.F′={[s]Γ|s∈F},以及

d.R′={[s]Γ|s∈R}。

在上面,表示包含⊥、T以及S的元素的格子中的最小上界。相容性 保证了所述最小上界决不会为T。

定理3令T为接受集合S1并拒绝集合S2的树状IDFA。在T具有基数 (cardinality)为k的相容划分Γ时,存在精确分离S1和S2的、k个状态的IDFA。 此外,T/Γ分离S1和S2

证明设Γ为S(T)的相容划分。可得出将s映射到[s]Γ的函数φ是T到T/Γ上 的折叠。这样,通过定理2,T/Γ分离S1和S2,并且此外其具有k个状态。相 反,设A是分离S1和S2的具有k个状态的IDFA。通过定理2,存在从T到A 的折叠φ。根据折叠的定义,由φ所归纳的划分是相容的,并且具有(最多)k 个状态。

根据该定理,要为两个不相交的有限集S1和S2寻找最小分离自动机,仅需 要首先构建相应的树状自动机T,并且接着可获得S(T)的最小相容划分Γ。于 是,最小自动机A是T/Γ。

在一些实施例中,使用存在k个状态的相容划分的问题的以下编码,可以 使用SAT解算器来寻找最小划分。令这是枚举划分所需的位数。 对于每个状态s∈S(T),引入布尔变量的矢量vs=(vs0...vsn-1).这表示对其指定了s 的划分的数目以及商自动机的相应状态。接着构建一组保证所述划分相容的布 尔约束。首先,对于每个s,必须存在vs<k(表示为多于vs的位数)。接着,对 于具有符号a上的外出转换的每对状态s和t,存在约束vsvtvδ(s,a)=vδ(t,a).也就是说,所述划分必须遵循转换关系。最后,对于每对状态s∈F和t∈R,可 获得约束vs≠vt。也就是说,拒绝和接受状态不能被放在相同划分中。该组约束 被称作SatEnc(T)。当划分Γ={Γ0,...,Γk-1}是T的相容划分时,其中 Γi={s∈S|vs=i},真值指派(truth assignment)ψ正好满足SatEnc(T)。因此, 可从满足的分配中提取相容划分。

能够通过处理2来找到有限集S1和S2的最小分离自动机。要注意,商自动 机T/Γ是IDFA。T/Γ可以通过以任意选择方式(例如通过使所有错过的转换转 到拒绝状态)完成部分转换函数δ,产生分离S1和S2的DFA而被转换为DFA。 这完成了本发明一些实施例中的用于计算两种语言L1和L2的MSA的过程。

使用SAT编码SAMPLEMSA(S1,S2),计算有限语言的MSA的处理2

1.令T=TREESEP(S1,S2);

2.令k=1;

3.while(1)do

4. if SATENC(T)可满足then

5.          令ψ为SatEnc(T)的满足指派;

6.          令Γ={{s∈S(T)|vs=i}|i∈0...k-1};

7.          令A=T/Γ;

8.          以某方式将δ(A)扩展成全函数;

9.          return DFAA

10.  令k=k+1;

要找到假设-保证推理的中间断言,仅需使用处理1计算L(M1)和L(M2′)的 MSA。

处理1全过程

a.AsGr(L1,L2)

1. S1={};S2={};

2.    while(1)do

3.     令A为S1和S2的MSA;

4.  if L1∈L(A)then

5.     if L(A)∩L2=φthen

6.        return true;(A分离L1和L2,特性成立)

7.    else

8.        令πL2πL(A);(负反例)

9.        ifπL1then

10.           return false;(L1和L2不相交,特性不成立)

11.       else

12.            S1=S1∪{π};

13.    else

14.        令πL1πA;(正反例)

15.        ifπ∈L2then

16.          return false;(L1和L2不相交,特性不成立)

17.        else

18.             S2=S2∪{π};

本发明的一些实施例中的方法现在考虑该过程的整体复杂度。可假设M1和 M2′分别被符号化表示为具有文本大小|M1|和|M2′|的布尔电路。于是,这些机器 的状态的数目分别为O(2|M1|)和令|A|为MSA的文本大小。要注意,这 与状态的数目以及∑的大小都成比例。主循环的每次反复包括求解SAT问题 SATENC(T)和求解两个模型检验问题。在最差情况下,能够通过枚举给定大小 的所有可能的DFA来求解SAT问题,由此SAT问题为O(2|A|)。所述模型检验 问题为O(|A|×2|M1|)和由于每次反复排除一个自动机,所以反复的 数量最多为2|A|,即可能的自动机的数目。因此,总运行时间为 O(2|A|(2|A|+|A|×(2|M1|+2|M2|)))。这是|A|、|M1|和|M2′|的简单指数级,但是显然, 不需要产生计算M1和M2的积的成本。固定A的大小,可示出该方法所导致的 运行时间为O(2|M1|+2|M2′|)。

不幸的是,由于最差情况下L(A)=L(M1),所以|A|在最差情况下为|M1|的指 数级。这意味着整体复杂度是输入大小的双倍指数级。对于PSPACE完全问题 应用双倍指数级的方法似乎是不合逻辑的。然而,实际中可以观察到,如果存 在小的中间断言,则该方法会比简单指数级的方法更高效。然而,在字母表很 大的情况下,可能需要找到一些对转换函数进行紧凑编码的方式。

D.利用决策树学习的概括

如之前所提及的,在硬件验证中,字母表的大小为在M1和M2之间传递 的布尔信号的数目的指数级。这意味着实际上所获得的L(M1)和L(M2 ′)的样本仅 能够包含字母表符号的小写部分。这样,所学到的IDFAA也将包含仅对于∑的 一小部分的转换。因此,可能需要找到以合理的方式在全字母表上从该IDFA 到DFA进行概括的一些方式。这不是一个良好定义的问题。在某种意义下,可 以执行应用奥卡姆剃刀(Occam’s razor),推断与IDFA的划分转换函数相一 致的“最简单的”总转换函数。可能有许多种这样做的方式。例如,如果从符号a 上的给定状态开始的转换在IDFA中未定义,则根据一些距离测定,该转换可 以被映射至最接近的被定义符号的下一状态。

这里所采用的方法是使用决策树学习方法来试图找到作为决策树的部分转 换函数的最简概括。给定字母表符号,决策树基于定义所述字母表的布尔变量 的值而分支,并且在其叶子处给出自动机的下一状态。在一些实施例中,可能 希望找到表示与IDFA的部分转换函数相一致的总转换函数的最简决策树。换 一种方式说,任意状态的转换函数可以被视为分类器,根据它们所转换到的状 态对字母表符号进行分类。部分转换函数可被认为是提供该分类的“样本”,并 且在一些实施例中可能希望找到与这些样本相一致的最简决策树。直观地,可 能期望中间断言仅取决于M1和M2之间交换的信号的最小集合,因此在一些实 施例中可能希望使所述过程偏向于取决于少数信号的转换函数。为了实现这一 点,在一些实施例中,可以使用ID3方法从示例中学习决策树。

这使我们可以在处理2的第8行基于迄今为止所看到的字母表的样本将 IDFA概括为符号化表示的DFA,该DFA表示完全分离的语言应该是什么样的 猜测。如果该猜测不正确,则教师会产生反驳它的反例,并且由此改进下一个 猜测。

II.本发明的说明性实施例

参见图1B,其例示了本发明一些实施例中所实现的用于为电子电路的组合 验证生成自动化假设的系统和方法的一般流程的框图。在本发明的一些实施例 中,在102,所述方法首先识别两个样本集S1和S2。在本发明的另一些实施例 中还识别要验证的特性。在104,所述方法和系统接着反复计算最小分离不完全 确定性有限自动机(IDFA)。在112,所述方法和系统对之前计算出的IDFA进 行概括并且输出完全DFA,并进行至108。在一个实施例中,所述方法和系统 在108进行确定所述不完全确定性有限自动机A是否分离了L1和L2

如果在108确定了所述不完全确定性有限自动机A分离了L1和L2,则反复 过程终止并进行至114。否则,所述方法和系统重复操作104-108,直至所述 不完全确定性有限自动机A被确定为精确分离L1和L2。在确定了A是否分离L1和L2的操作之后,在114,所述方法和系统然后在有形的计算机可读介质上存储 所述概括操作的结果。

参见图2,其例示了关于反复计算最小分离的不完全确定性有限自动机 (IDFA)的操作的更多细节。在202,所述方法和系统构建树状的不完全确定 性有限自动机(IDFA)T。所述方法和系统然后在204构建IDFA T的折叠。 在206,所述方法和系统然后确定表示不完全确定性有限自动机T的状态数的 基数k的相容划分Γ。同时,所述方法和系统确定商T/Γ。根据上述数学模型, 商T/Γ精确分离两个样本集S1和S2

参见图3,其例示了在108确定A是否分离了L1和L2的操作的进一步细节。 在不完全确定性有限自动机A被确定为分离了L1和L2的情况下,反复过程终止, 并且所述方法和系统在310进行至操作110。在不完全确定性有限自动机A被 确定为未分离L1和L2的情况下,所述方法和系统在302获得反例π。在一个实 施例中,所述方法和系统例如从教师处获得反例π。在获得反例π之后,所述方 法和系统然后在304确定反例π是否属于L1。在308,在反例π被确定属于L1的 情况下,所述方法和系统于是将所述反例π添加到第一示例本集S1。在306,在 反例π被确定不属于L1的情况下,所述方法和系统于是将所述反例π添加到第二 示例集S2

参见图4,其例示了206的确定相容划分Γ的操作的进一步细节。在402, 所述方法和系统首先定义枚举划分所需的位数m。在一个实施例中,Γ具有基 数k,其表示S1和S2上的树状IDFA的状态数。在另一个实施例中,m=log2k。 在404,所述方法和系统定义布尔变量的矢量,所述布尔变量表示分配了状态s 的划分的数量。在406,所述方法和系统构建保证所述划分相容的一组布尔约束。

参见图5,其例示了保证划分相容的布尔约束的进一步细节。首先,502示 出了对于每个状态s,当以vs个位表示时必然存在vs<k。此外,504示出了对 于具有符号a上的外出转换的每对状态(s,t),存在约束vs=v1=vδ(s,a)=vδ(t,a)。也 就是说,划分必须遵循转换关系。此外,506示出了对于每对状态s∈F,t∈R, 存在约束vs≠vt。换句话说,约束506要求拒绝和接受状态不能够被置于同一 划分内。

这些约束502、504和506然后被用于求解矢量布尔变量vs=(vs0...,vsm-1).真值指派ψ在划分Γ={Γ0,...,Γk-1}为T的相容划分时精确满足这些约束,其中 Γ1={s∈S|vs=i}。因此,可以从满足的指派中提取相容划分。

参见图6,其例示了从之前计算出的IDFA概括完全DFA的操作的进一步 细节。在将计算出的不完全确定性有限自动机(IDFA)A概括为完全确定性有 限自动机(DFA)的操作112终止之后,在本发明的一些实施例中,所述方法 和系统可进行至602以通过完成部分转换函数δ来将之前计算出的IDFA概括为 DFA。另选地,在604,在本发明的一些实施例中,所述方法和系统可进行至 604以确定最简决策树,该最简决策树表示与之前计算出的IDFA的部分转换函 数相一致的总转换函数。

在本发明的一些实施例中,任意状态的转换函数由此可被视为根据字母表 符号要转换到的状态而对字母表符号进行分类的分类器(606)。在本发明的一 些实施例中,所述部分转换函数可被视为提供这种特定类型的分类的“样本”以 帮助找到与所提供的这些样本相一致的最简决策树(608)。此外,给定字母表 符号,所述决策树基于改进所述字母表的布尔变量的值而分支(610),并且在 其叶子处给出自动机的下一状态(612)。由于直观上期望中间断言仅依赖于在 软件和硬件系统的两个组件M1和M2之间交互的一个小的信号集,所以该过程 可偏向于依赖于少数信号的转换函数。在本发明的一些实施例中,可以使用ID3 方法从所提供的示例中学习决策树以以实现该目标(614)。

参见图7,其例示了上面在处理1中示出的整体过程的框图。在702,所述 方法和系统首先识别两个样本集S1和S2。在704,所述方法和系统进一步识别 用于这两个样本集S1和S2的最小分离自动机A。在706,所述方法和系统然后 确定是否L1L(A).在708,在确定了L1L(A)的情况下,所述方法进一步确定 是否L(A)∩L2=φ。在718,在确定了L(A)∩L2=φ的情况下,所述方法和系统 返回真(true)。也就是说,最小分离自动机A分离了L1和L2,并且特性p成立。 如果确定了L(A)∩L2≠φ,则所述方法和系统在710识别反例π,其中 π∈L2&π∈L(A)。所述方法然后在712确定是否反例π∈L1。如果反例π∈L1, 则所述方法和系统在714返回假(false)。也就是说,L1和L2并非不相交并且p 不成立。如果确定了πL1,则所述方法和系统在716将反例π添加到S1

如果在706确定了L1L(A)为假,则所述方法和系统然后在720识别满足 π∈L1πA的反例π。所述方法和系统然后在722确定是否π∈L2。如果确 定了π∈L2,则所述方法和系统然后在726返回假。也就是说,L1和L2并非不 相交并且p不成立。另一方面,如果确定了πL2,则所述方法和系统然后在 724将π添加到S2。在操作714、716、718、724和726之后,所述方法和系统 然后在728确定等价查询是否成功,并且如果等价查询成功则在730终止该反 复处理。另选地,在728确定了等价查询失败的情况下,在732,所述方法和系 统返回702。

参见图8,其例示了本发明的另一实施例。在802,所述方法和系统开始于 反复生成的样本集。在804,所述方法和系统调用学习方法来生成完全的DFAA (806)。在808,所述方法和系统确定是否M2A.在另一实施例中,M2A的确定构成模型检验调用。

在确定了M2A的确定失败时,在810,所述方法和系统进一步确定是否 sM1P.在另一实施例中,sM1P的确定构成有界的模型检验调用。如 果sM1P的确定返回假,则在812报告有缺陷(bug)。另选地,如果 sM1P的确定返回真,则所述方法和系统然后在820返回并将正样本添加到 首先识别的样本集中。

在确定了M2A的确定成立时,在814,所述方法和系统进一步确定是否 M1PA=φ.在另一实施例中,M1PA=φ的确定构成模型检验调用。 如果M1PA=φ的确定在814返回真,则在820特性p成立。如果 M1PA=φ的确定在814返回假,则所述方法和系统在816进一步确定是否 样本s∈M2。在另一实施例中,是否s∈M2的确定构成有界的模型检验调用。 在816确定了s∈M2的情况下,所述方法和系统报告有缺陷或者特性p不成立 (818)。在816确定了s∈M2失败的情况下,所述方法和系统在820返回并将 负样本添加到首先识别的样本集中。

参见图9,其例示了包括2位移位寄存器的示例性硬件电路。数据从x1_1、 x2_1移位成x1_8,x2_8。xJ1和xJ2代表自由输入。仅当xJ1为1时,更新x1_7 的值。类似地,仅当xJ2为1时,更新x2_7的值。最初,所有寄存器被设置为 0。要证明的特性规定:仅在x1_1和x2_1过去曾经为1的情况下,x1_8和x2_8 为1。对于假设保证的应用而言,根据本发明的一个实施例,该设计可被分解为 M1和M2

参见图10,其例示了本发明一个实施例的方法在图9所示的电路上生成的 假设自动机。应用本发明的一个实施例中的方法,学习三状态自动机,其是能 够对所述特性进行验证的最小假设自动机。

本发明的一些实施例能够在Cadence SMV(符号化模型验证器)或其它符 号化模型验证器上实施。在本发明的一个实施例中,用户指定将软件和硬件系 统分解为两个组件。Cadence SMV可被用作基于BDD的模型检验器来验证假 设,并且还被用作增量式BMC引擎来检验反例。SAT解算器也被用于以上实 施方式中。还开发了ID3方法来生成决策树。还可以使用R.L.Rivest和R.E. Schapire在“Inference of Finite Automata Using Homing Sequences”,STOC’89: Proceedings of the Twenty-First Annual ACM symposium on Theory of Computing,pp.411-420所提出的优化版本来实现Cobleigh所提出的基于L*的 方法。

本领域普通技术人员将理解,本发明的一些实施例可以以其它特定形式来 实现而不会背离其精神和实质特征。因此,这里所公开的实施例在所有方面被 认为是说明性而非限制性的。本发明一些实施例的范围由所附权利要求而不是 以上描述来指定,并且在其等同物的范围和意义内所进行的所有改变均包含于 其中。

系统体系结构概述

图11是适于实现本发明实施例的说明性计算系统1400的框图。计算机系 统1400包括总线1402或用于传输信息的其它通信机制,其将诸如处理器1404、 系统内存1406(例如,RAM)、静态存储设备1408(例如,ROM)、盘驱动器 1410(例如,磁或光的盘驱动器)、通信接口1412(例如,调制解调器或以太网 卡)、显示器1414(例如,CRT或LCD)、输入设备1416(例如,键盘)和光 标控制器1418(例如,鼠标或轨迹球)的设备和子系统互连。

根据本发明的一个实施例,计算机系统1400通过处理器1404执行系统存 储器1406中所包含的一个或多个指令的一个或多个序列来执行特定操作。这些 指令可从另一个计算机可读/可用介质(诸如静态存储设备1408或盘驱动器 1410)读入系统内存1406中。在另选实施例中,可以使用硬接线电路替代用于 实现本发明的一些实施例的软件指令或与其结合使用。

这里所使用的术语“计算机可读介质”或“计算机可用介质”是指参与向处理 器1404提供用于执行的指令的任意介质。这样的介质可采用许多形式,包括但 不限于非易失性介质和易失性介质。例如,非易失性介质包括光盘或磁盘,诸 如盘驱动器1410。易失性介质包括动态存储器,诸如系统内存1406。

例如,计算机可读介质的一般形式包括软盘、硬盘、磁带、任意其它磁介 质、CD-ROM、任意其它光介质、穿孔卡、纸带、具有孔图案的任意其它物理 介质、RAM、PROM、EPROM、FLASH-EPROM、任意其它存储器芯片或 卡带、或者计算机能够读取的任意其它介质。

在本发明的实施例中,用以实现本发明的指令序列是由单个计算机系统 1400执行的。根据本发明的其它实施例,通过通信链路1420(例如,LAN、PSTN 或无线网络)耦合的两个或更多个计算机系统1400可以彼此协同地执行用于实 现本发明的指令序列。

计算机系统1400可通过通信链路1420和通信接口1412发送和接收消息、 数据和指令,包括程序,即应用代码。所接收的程序代码可在被接收时由处理 器1404执行和/或存储在盘驱动器1410或其它非易失性存储器中供以后执行。

在以上说明书中,已经参照本发明的具体实施例对本发明进行了描述。然 而,显然可以在不背离本发明的较宽的精神和范围的情况下对其进行各种修改 和变化。例如,以上处理流程是参照特定顺序的处理操作进行描述的。然而, 所描述的许多处理操作的顺序可以有所变化而并不影响本发明的范围或操作。 因此,说明书和附图应被认为是说明性而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号