JP5269511B2 - 合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品 - Google Patents

合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品 Download PDF

Info

Publication number
JP5269511B2
JP5269511B2 JP2008196981A JP2008196981A JP5269511B2 JP 5269511 B2 JP5269511 B2 JP 5269511B2 JP 2008196981 A JP2008196981 A JP 2008196981A JP 2008196981 A JP2008196981 A JP 2008196981A JP 5269511 B2 JP5269511 B2 JP 5269511B2
Authority
JP
Japan
Prior art keywords
idfa
minimum
automaton
counterexample
dfa
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.)
Expired - Fee Related
Application number
JP2008196981A
Other languages
English (en)
Other versions
JP2009054147A (ja
Inventor
グプタ アヌバヴ
エル マクミラン ケン
Original Assignee
ケイデンス デザイン システムズ インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ケイデンス デザイン システムズ インコーポレイテッド filed Critical ケイデンス デザイン システムズ インコーポレイテッド
Publication of JP2009054147A publication Critical patent/JP2009054147A/ja
Application granted granted Critical
Publication of JP5269511B2 publication Critical patent/JP5269511B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品に関する。
ハードウエアシステム及びソフトウエアシステムの関連において、システムをデバッグし、又はシステムが何らかの特性を示すことを明らかにするためにソフトウエア試験が広範囲に展開されている。それにも関わらず、ソフトウエア試験は、それ自体では、システムがある一定の種類の欠陥を持たないことを立証することができないことが多い。更に、それは、同じくそれ自体では、システムがある一定の特性を示すことを明らかにすることもできない。それに反して、形式的検証は、数学的方法を用いることにより、ソフトウエア及びハードウエアシステムの正しさを十分に立証又は反証し、従って、問題のシステムがある一定の欠陥を持たず、又はある一定の特性を示すことを立証することができる。
より具体的には、抽象的な数学的モデルを用いることにより、形式的検証は、問題のシステムがある一定の要件を満たすこと、又はシステムがある一定の特性又は挙動を示すことができることの立証を試みるものである。すなわち、そのようなシステムの形式的検証は、これらのシステムの抽象的数学的モデルに対して形式的な証明を与えることにより行われる。システムをモデル化するのに使用されることが多い数学的オブジェクトの一部の典型的な例は、有限状態機械及び様々なオートマトンである。
形式的検証過程には、一般的に2つの手法がある。一方の手法は、一般的にモデル検査と呼ばれている。モデル検査は、多くの場合に、有限数学的モデルの系統的に網羅的な調査で構成され、モデルにおける全ての状態及び遷移を調査することにより問題のシステムを検証する。モデル検査はまた、多くの場合に、システム内の各個々の状態を考慮する必要性を回避して演算時間を短縮するために、一部の抽象化技術を呼び出す。
他方の手法は、ある一定の定理証明過程を伴う、システムに関する数学的推論の公式バージョンで構成された論理的推論である。検証される項目は、多くの場合に、線形時相論理又は計算ツリー論理のような何らかの形式の時相論理を用いて表される。この後者の論理的推論手法の欠点は、論理的推論手法が、通常は部分的に自動化され、その効率及び実行可能性が、問題のシステムに関するユーザの知識に依存する場合があるという点である。
論理的推論手法の様々な限界及び欠点のために、モデル検査は、ハードウエアシステム及びソフトウエアシステムの正しさを形式的に検証する広く受け入れられた技術となっている。この技術の広い適用性に対する大きな障害の1つは、現実の世界のシステムの複雑性増大から生じる状態爆発問題である。合成検証は、状態爆発の問題を緩和する手法である。合成検証は、ソフトウエアシステム及びハードウエアシステムに関する検証タスクをシステムの個々の構成要素に関するより単純な検証問題に分解する。例えば、2つの構成要素M1とM2から成るシステムMと、Mに対して検証する必要がある特性Pとを考察する。合成検証に対する仮定−保証様式は、以下のように説明する推論規則:Aが全ての環境においてM1に対して維持され、かつM2がAを満足するあらゆる環境においてPを満足するように仮定Aを特定することにより、PをMに対して検証することができる、を用いる。この推論規則の適用を成功させる鍵は、コンパクトな仮定Aの自動特定である。
R.L.Rivest及びR.E.Schapire著「ホーミングシーケンスを用いた有限オートマトンの推論」、STOC’89:計算の理論に関する21回年次ACMシンポジューム講演論文集、411ページから420ページ
従来、一部の従来技術の手法は、分離オートマトンを計算するための多項式−時間近似法を提案している。これらの方法は、正規言語の能動学習のためのAngluinのL*法の修正に基づくものである。一部の従来技術の手法は、このL*に基づく手法の符号による実施を呈示している。それにも関わらず、この手法の主な欠点は、近似限界がないという点である。すなわち、最悪な場合のシナリオでは、L*法は、自明な解M1を分離言語として戻し、従って、単にM1を最小にするだけでは取得することはできないと考えられる状態空間低減に関して利益を提供しないことになる。従って、合成検証における状態−爆発問題の影響を緩和する必要性が存在する。
2つの言語を分離する最小決定論的有限オートマトンを計算する方法、システム、及びコンピュータプログラム製品を開示する。本発明の一部の実施形態では、本方法は、サンプリング手法及びブール充足可能性解法を用いる。しかし、本発明の一部の実施形態では、本方法は、仮定−保証推論を用いた形式的検証の中間アサーションの生成に適用することができる。
本発明の態様、目的、及び利点の更なる詳細は、以下の詳細説明、図面、及び特許請求の範囲で説明する。上述の概要及び以下の詳細説明は、共に例示的かつ説明的なものであり、本発明の範囲に関して限定的であることを意図していない。
添付図面は、本発明の理解を深めるために含まれており、「発明を実施するための最良の形態」と共に本発明の原理を説明する役目をするものである。
本発明のいくつかの実施形態は、合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品を提供する。図1Aを参照すると、処理は、152で、電子回路設計の第1の集合及び第2の集合の挙動を特定することにより始まる。特定したデータは、システム設計(電子ハードウエア、ソフトウエア、又はハードウエア及びソフトウエアの両方の組合せであるかを問わず)を「有限オートマトン」として特徴付けるために使用されることになり、有限オートマトン(有限状態機械とも呼ばれる)は、有限数の状態、それらの状態間の遷移、及びアクションで構成された挙動のモデルである。
次に、処理は、154で、第1及び第2の集合の挙動のサンプリングに基づいて、最小「不完全決定論的有限オートマトン」(IDFA)を反復的に計算する。決定論的有限状態機械は、状態及び入力記号の各対に対して、次の状態への1つ、かつ1つのみの遷移がある有限状態機械である。一部の場合には、有限状態オートマトンは、ある一定の挙動をモデル化するのに使用される何らかの情報を含まないので、不完全である場合がある。
IDFAに基づいて、処理は、156で、最小IDFAから一般化することにより決定論的有限オートマトン(DFA)を判断する。これは、本質的に、DFAを判断するためにIDFAから十分な情報を収集するために学習処理を実行することにより達成される。それを判断した後、158で、DFAを有形コンピュータ可読媒体上に記憶することができる。
本発明の様々な実施形態は、合成検証のための自動仮定を生成する方法及びシステムを伴うので、本発明の一部の実施形態の基盤を提供するために、合成検証のための数学的モデルに対して最初に以下で説明する。
I.合成検証のための数学的モデル
この節で開示するのは、本発明の一部の実施形態でソフトウエア及びハードウエアシステムの正しさを形式的に立証するのに使用される数学的モデルである。
合成検証は、ソフトウエア及びハードウエアシステムの検証タスクをシステムの個々の構成要素のより単純な検証問題に分解する。2つの構成要素M1及びM2を含むシステムM、及びMに対して検証する必要がある特性Pを最初に考察する。合成検証の仮定−保証様式では、以下の推論規則を用いる。
Figure 0005269511
(1)
上述の推論規則は、Aが全ての環境においてM1を維持し、かつAを満足するあらゆる環境においてM2がPを満足させるような仮定Aを特定することにより、PをMに対して検証することができると説明している。言語−定理フレームにおいては、正規言語のような処理は、モデル化されて、有限オートマトンにより指定される。処理合成は、言語の交差であり、処理は、特性PをL(:P)とのその交差が空である時に満足する。従って、上述の推論規則は、以下のように書くことができる。
Figure 0005269511
(2)
次に、本方法及びシステムは、L(M2)及びL(:P)の交差をM2’と指定する。次に、仮定−保証引数を構成する問題は、L(A)がL(M1)における全ての文字列を受諾するが、L(M2’)においては全ての文字列を拒否するという意味において、L(M1)及びL(M2’)を分離するオートマトンを見つけることに帰する。
明らかに、目的の1つは、仮定−保証規則の前例を検査する際に状態爆発の問題を最小にするために、できるだけ少数の状態を有するオートマトンAを見つけることである。
決定論的オートマトンに対しては、最小状態分離オートマトンを見つけるという問題は、NP完全である。これは、NP完全であることが示される不完全決定論的有限オートマトン(IDFA)の最小状態での実行を見つける問題に還元可能である。この複雑性を回避するために、正規言語の能動学習のL*法の修正に基づく多項式時間近似法が提案されている。この手法の主な欠点は、近似限界がないという点である。すなわち、最悪な場合には、本方法は、自明な解L(M1)を分離言語として戻し、従って、単にM1を最小にするだけでは取得することはできないと考えられる状態空間低減に関して利益が得られないことになる。実際には、本発明の一部の実施形態において考慮したハードウエア検証問題に関する一部の実験においては、この手法では、ベンチマーク問題のいずれに対しても状態簡約が得られなかった。
開示する数学的モデルは、最小分離オートマトン問題を厳密に解くものである。検証問題全体は、M1及びM2’が記号で表された時にPSPACE完全であるので、多項式時間内で中間アサーションを見つけるという下位問題を解くことを必要とする理由がない。更に、仮定−保証推論の目標は、複雑性が|M1|x|M2’|ではなく、|M1|+|M2’|に比例する検証手順である。これが達成された場合、全体的な複雑性は、Aが小さいことを条件として、|A|において幾何学関数的であるということは重要ではないであろう。
この根本的な理由を念頭において、本発明の一部の実施形態では、ハードウエア検証の仮定−保証推論に適する最小分離オートマトン問題の厳密な手法を示す。本発明の一部の実施形態では、IDFA最小化の問題に向けて、IDFAのサンプリングベースの方法を使用する。本方法では、L(M1)及びL(M2’)内にサンプル文字列を反復的に生成し、各段階でサンプルセットに一致した最小オートマトンを計算する。1組のラベル付き文字列に一致した最小オートマトンを見つけることは、それ自体、NP完全な問題である。本発明の一部の実施形態では、次に、ブール充足可能性(SAT)解法を用いてそれを解く。サンプリング手法が使用されるのは、IDFA最小化問題を解く標準的な技術では、ハードウエア検証の場合に非実際的であると考えられる明示的な状態表現が必要であるからである。
ハードウエア用途に関しては、アルファベットは、M1及びM2を結ぶブール信号の数において幾何級数的であることも考慮に入れるべきである。この難しさも、L*ベースの手法において観察され、問い合わせ回数は、アルファベットのサイズに比例する。本発明の一部の実施形態では、部分的なアルファベットにわたってオートマトンを学習し、決定木学習法を用いてアルファベット全体まで一般化することによりこの問題を処理する。
合成ハードウエアベンチマークの集合を用いて、本発明の一部の実施形態では、この手法は、近似的L*手法により簡約が得られない場合に、厳密な最小中間アサーションを生成するのに有効であることを示している。一部の場合には、それによって最先端の方法を用いた直接的なモデル検査と比較して、全体的な検証において実質的な簡約が得られる。
A.決定論的有限オートマトン(DFA)
定義1:決定論的有限オートマトン(DFA)Mは、5つ組(S、Σ、s0、δ、F)であり、ここで、(1)Sは、状態の有限集合、(2)Σは、有限アルファベット、(3)δ:SxΣ→Sは、遷移関数、(4)
Figure 0005269511
は、初期状態、(5)
Figure 0005269511
は、受諾状態の集合又は最終状態の集合である。尚、Fは、空の集合とすることができる。
定義2:不完全決定論的有限オートマトン(IDFA)Mは、6つ組(S、Σ、δ、s0、F、R)であり、ここで、(1)Sは、状態の有限集合、(2)Σは、有限アルファベット、(3)
Figure 0005269511

は、部分遷移関数、(4)
Figure 0005269511
は、初期状態、(5)
Figure 0005269511
は、受諾状態の集合、(6)
Figure 0005269511
は、拒否状態の集合である。
直観的には、IDFAは、一部の状態が完全アルファベットに対して外方の遷移を有することができないために不完全であり、一部の状態は、受諾状態でも拒否状態でもない。記号aで状態sからの遷移がない場合、δ(s、a)=⊥である。DFA及びIDFAの両方に対して、遷移関数δは、文字列に適用するために通常の方法で拡張することができる。すなわち、
Figure 0005269511
及び
Figure 0005269511

である場合、
Figure 0005269511
の時に
Figure 0005269511
であり、それ以外は、
Figure 0005269511
である。
文字列sは、
Figure 0005269511
の場合、DFAにより受け入れられ、そうでなければ、sは、Mにより拒否される。文字列sは、
Figure 0005269511
の場合、IDFAにより受け入れられる。文字列sは、
Figure 0005269511
の場合、IDFAのMにより拒否される。
2つの言語
Figure 0005269511
を考慮すると、DFA又はIDFAは、L1における全ての文字列を受け入れ、L2における全ての文字列を拒否した時にL1及びL2を分離する。L1及びL2の最小分離オートマトン(MSA)は、L1及びL2を分離する最小数の状態に関するオートマトンである。
B.L*手法
比較のために、学習分離オートマトンのL*ベースの近似法に対して最初に説明する。L*手法では、学習者は、先生に質問を行うことにより未知の正規言語Lに対して最小DFAAを推定する。メンバーシップ質問においては、学習者は、文字列πを示して、先生は、
Figure 0005269511

の場合はイエス、それ以外はノーと答える。同等性質問においては、学習者は、オートマトンAを提案し、先生は、L(A)=Lの場合はイエスと答え、そうでなければ反証例を示す。反証例は、正(すなわち、L\L(A))である場合があり、又は負(すなわち、L(A)\L内の文字列)の場合がある。Aのサイズにおいて多項式であるいくつかの質問においてAを見出すことを保証する学習者の方法は、当業者には公知である。
Cobleigh法では、2つの言語L1及びL2の分離オートマトンを学習するためにこの手順を若干修正する。これは、先生により行われる応答においてのみL*法と異なっている。同等性質問の場合、AがL1及びL2の分離オートマトンである場合にイエスと答える。そうでなければ、L1\L(A))内の文字列として正の反証例、又はL2∩L(A)内の文字列として負の反証例を示す。文字列πに関するメンバーシップ質問に対して、先生は、
Figure 0005269511
の場合にイエスと答え、
Figure 0005269511
の場合にノーと答える。πがL1内でもL2内でもない場合、その選択は、任意である。先生は、最小分離オートマトンを知らないので、正しい答えを示すことはできず、従って、単純にノーと答える。従って、実際には、先生は、学習者にL1を学習するように求めるが、L1及びL2を分離するあらゆる推測を受け入れる意志がある。学習者のためのAngluinの方法を用いると、学習した分離オートマトンAは、L1の最小オートマトンと同様に、状態を有していないことが分る。しかし、これは、最小分離オートマトンよりも任意に大きなものとすることができる。
Angluinの元の方法における場合のように、質問の数は、Aというサイズにおいては多項式であり、特に、同等性質問の数は、高々Aにおける状態の数である。仮定−保証アプリケーションにおいては、L1=L(M1)及びL2=L(M2’)である。ハードウエア検証に対しては、M1及びM2’は、記号によって表された非決定論的有限オートマトン(NFA)である(隠し入力及び:Pのオートマトンの構成から生じる非決定論)。メンバーシップ質問に答えることは、従って、NP完全であり、これは、本質的に、限定モデル検査の問題であり、一方、同等性質問に答えることは、PSPACE完全であり、これは、記号モデル検査の問題である。従って、実際には、本方法の実行時間は、単に幾何級数的である。
C.最小分離オートマトン問題の厳密解法
2つの言語L1及びL2に対して厳密なMSAを見つけるために、一部の実施形態では、IDFAを最小にするPena及びOliveiraの一般的な手法に従うことになる。これは、同等性質問のみを用いる学習手法である。それは、2つの有限集合のストリームを分離する最小DFAを計算することができるサブルーチンに依存するものである。Pena及びOliveiraの手法は、有限状態機械に限定されるが、その技術は、L1及びL2自体が正規言語でなくても、正則分離子を有するあらゆる言語L1及びL2に適用することができる。
この手順の全体的な流れは、処理1に示している。サンプルストリームの2つの集合
Figure 0005269511
及び
Figure 0005269511
を維持する。主ループは、S1及びS2を分離する最小DFAを計算することにより始まる(以下で説明する手順を用いて)。次に、学習者は、Aに対して同等性質問を行う。AがL1及びL2を分離する場合、この手順は終了する。そうでなければ、先生からの反証例ストリームπを取得する。
Figure 0005269511
であり、従って、
Figure 0005269511
がS1に追加される場合、πをS2に追加する。この手順は、同等性質問が成功するまで繰り返される。以下の手法では、負の反証例を最初に試験し、次に、正の反証例を試験する。それにも関わらず、この順番は、任意であり、実際には、この順番は、1つの言語に向けて結果をバイアスさせる回避するために質問毎に無作為に選択することができる。
この手順において、先生は、モデルチェッカを使用して実施することができる。すなわち、検査
Figure 0005269511
及び
Figure 0005269511
は、モデル検査の問題である。このアプリケーションにおいては、L1及びL2は、記号で表されたNFAの言語であり、記号モデル検査方法を用いて検査が行われる。尚、L(A)内の閉じ込めを試験するには、Aを補完することが必要であるが、これは、Aが決定論的であることから簡単である。
定理1:有限Σに対して
Figure 0005269511
とする。L1及びL2が正則分離子を有する場合、処理1は、終了し、L1及びL2の最小分離オートマトンを出力する。
証明:k個の状態で、A’をL1及びL2の最小状態分離オートマトンとする。
Figure 0005269511
及び
Figure 0005269511
であるので、A’は、S1及びS2の分離オートマトンということになる。従って、Aは、k個の状態のみを有する(S1及びS2の分離オートマトンであることから)。従って、この手順が終了した場合、Aは、L1及びL2の最小分離オートマトンである。更に、有限のk個の状態で、有限Σを凌いで有限に多くのDFAがある。毎回の反復時に、1つのこのようなオートマトンが、S1及びS2の分離子として除外される。従って、処理は終了すべきである。
この時点で、有限言語S1及びS2の最小分離オートマトンを計算することのみが残る。この問題は、広範囲に研究されており、NP完全であることは公知である。
定義3:IDFAのM=(S、Σ、s0、δ、F、R)は、関係
Figure 0005269511
がs0にルートを有する方向付けられたツリーである時にツリー状である。
あらゆる2つの互いに素の有限集合の文字列S1及びS2を考慮すると、S1を受け入れてS2を拒否するツリー状IDFAが構成されることになり、TREESEP(S1、S2)と呼ばれる。
定義4:
Figure 0005269511
を互いに素の有限言語とする。S1及びS2のツリー状分離子TREESEP(S1、S2)は、ツリー状DFA(S、Σ、s0、δ、F、R)であり、Sは、
Figure 0005269511
の接頭辞の集合であり、s0は、空文字列であり、F=S1及びR=S2であり、
Figure 0005269511

である場合に
Figure 0005269511
それ以外は⊥である。
Oliveira及びSilvaの方法は、S1及びS2を分離する全てのIDFAAが、TREESEP(S1、S2)の準同形であることを示し、この方法は、次の節で定める。従って、k個の状態の分離オートマトンAを見つけるために、本発明の一部の実施形態では、TreeSep(S1、S2)からAの状態までのマップを推測しさえすればよく、相応にAを形成する。この処理は、折り畳みと呼ばれる。
定義5:M=(S、Σ、s0、δ、F、R)及びM’=(S’、Σ’、s0’、δ’、F’、R’)をアルファベットΣ上の2つのIDFAとする。マップφ:S→S’は、以下の時に、M’上へのMの折り畳みである。
a.
Figure 0005269511
b.全ての
Figure 0005269511

に対して、
Figure 0005269511

Figure 0005269511
であれば、
Figure 0005269511
c.全ての
Figure 0005269511
かつ
d.全ての
Figure 0005269511
以下の定理は、S1及びS2の全ての分離IDFAが、ツリー状オートマトンTREESEP(S1、S2)の折り畳みとして取得することができるというものである。そのマップは、ツリー上で帰納的に容易に得られる。
定理2(OLIVEIRA及びSILVA):受諾集合S1及び拒否集合S2で、T=(S、Σ、s0、δ、F、R)をツリー状IDFAとする。Σ上のIDFAAは、TからAまでの折り畳みΣが存在する場合、かつTからAまでの折り畳みΣが存在する場合にのみ、S1及びS2の分離オートマトンである。
次に示すのは、状態を分割することによりツリーTの折り畳みを形成する方法である。Гが集合Sのパーティションである場合、Sの要素sを含むГの要素を以下に[s]Гで示す。
定義6:M=(S、Σ、s0、δ、F、R)をΣ上のIDFAとする。Mの一致パーティションは、
a.全ての
Figure 0005269511
に対して、
Figure 0005269511

であり、
かつ
Figure 0005269511
かつ[s]Γ =[t]Γであれば、
Figure 0005269511
かつ
b.全ての状態
Figure 0005269511
及び
Figure 0005269511
に対して、
Figure 0005269511
であるようなSのパーティションГである。
定義7:M=(S、Σ、s0、δ、F、R)をIDFAとし、ГをSの一致パーティションとする。M/Гの商は、
a.
Figure 0005269511
b.
Figure 0005269511
c.
Figure 0005269511
かつ
d.
Figure 0005269511
であるようなIDFA(Г’、Σ’、s0’、δ’、A’、R’)である。
上記においては、
Figure 0005269511
は、⊥,T,及びSの要素を収容する格子内の最小上界を表している。一致性は、最小上界が決してTではないことを保証する。
定理3:受諾集合S1及び拒否集合S2で、Tがツリー状IDFAとする。Tが濃度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個の状態を有する。
この理論に従って2つの互いに素の有限集合S1及びS2の最小分離オートマトンを見つけるために、対応するツリー状オートマトンTのみを最初に構成する必要があり、次に、S(T)の最小一致パーティションГを取得することができる。最小オートマトンAは、次に、T/Гである。
一部の実施形態では、SAT解法を使用すると、k個の状態の一致パーティションの存在の問題の以下の符号化を用いて最小パーティションを見つけることができる。n=[log2k]とする。これは、パーティションを列挙するために必要とされるビット数である。各状態
Figure 0005269511
に対しては、ブール変数
Figure 0005269511
のベクトルを導入する。これは、sが割り当てられるパーティションの番号及び商の対応する状態を表している。次に、パーティションが一致していることを保証するブール制約の集合を構成する。最初に、各sに対しては、
Figure 0005269511

Figure 0005269511
のビット数の上に表される)が存在すべきである。次に、記号aに対して外向き遷移を有する状態s及びtの全ての対に対しては、制約
Figure 0005269511
が存在する。すなわち、パーティションは、遷移関係を尊重すべきである。最後に、状態
Figure 0005269511

及び
Figure 0005269511

の全ての対に対して、次に、制約
Figure 0005269511
を取得することができる。すなわち、拒否及び受諾状態は、同じパーティション内に置くことはできない。この集合の制約は、SatEnc(T)と呼ばれる。真理値割り当てψは、パーティションГ={Г0、...、Гk-1}がTの一致パーティションである時に厳密にSatEnc(T)を満足し、ここで、
Figure 0005269511
である。従って、満足する割り当てから、一致パーティションを抽出することができる。
有限集合S1及びS2の最小分離オートマトンは、処理2により見つけることができる。尚、商オートマトンT/Гは、IDFAである。T/Гは、例えば、全ての不在遷移を拒否状態に行かせて、S1及びS2を分離するDFAが得られるようにすることにより、あらゆる選択方法において部分遷移関数を完成することによりDFAに変換することができる。本発明の一部の実施形態では、それによって2つの言語L1及びL2のMSAを計算する手順が完成する。
処理2:SAT符号化SAMPLEMSA(S1、S2)を使用した有限言語に対するMSAの計算
1.T=TREESEP(S1、 S2)とする;
2.k=1とする;
3.(1)の間に以下を行う
4.SATENC(T)が満足されれば、
5.ψをSatEnc(T)の満足できる割り当てとする;
6.
Figure 0005269511
とする;
7.A=T/Γとする;
8.δ(A)を何らかの方法で全体関数に拡張する;
9.DFAのAに戻る
10.k=k+1にする;
仮定−保証推論の中間アサーションを見つけるために、処理1を用いてL(M1)及びL(M2’)のMSAのみを計算すべきである。
処理1:全体的な手順
a.AsGr(L1、L2
1.S1={};S2={};
2.(1)である間に以下を行う
3.AをS1及びS2に対するMSAとする;
4.
Figure 0005269511
であれば、次に
5.L(A)∩L2=φであれば、次に
6.真を戻す(Aは、L1及びL2を分離する、特性が保持される)
7.それ以外であれば、
8.
Figure 0005269511
及び
Figure 0005269511
とする;(負の反証例)
9.
Figure 0005269511
であれば、次に
10.偽を戻す;(L1及びL2は互いに素ではない、特性は、保持されない)
11.それ以外であれば、
12.
Figure 0005269511
13.それ以外であれば、
14.
Figure 0005269511
及び
Figure 0005269511
とする;(正の反証例)
15.
Figure 0005269511
であれば、次に
16.偽を戻す;(L1及びL2は互いに素ではない、特性は、保持されない)
17.それ以外であれば、
18.
Figure 0005269511
本発明の一部の実施形態の手法は、この時点で、この手順の全体的な複雑性を考慮する。M1及びM2’は、それぞれ、テキストサイズ|M1|及び|M2’|を有するブール回路として記号で表すと仮定することができる。次に、これらの機械の状態数は、それぞれ、O(2|M1|)及びO(2|M2'|)である。|A|をMSAのテキストサイズとする。尚、これは、状態数、Σのサイズの両方に比例する。主ループの毎回の反復では、SAT問題SATEENC(T)を解き、かつ2つのモデル検査問題を解く。SAT問題は、最悪の場合、所定のサイズの全ての可能なDFAを列挙することにより解くことができ、従って、O(2|A|)である。モデル検査問題は、O(|A|×2|M1|)及びO(|A|×2|M2'|)である。反復回数は、毎回の反復により1つのオートマトンが除去されるので、高々2|A|、すなわち、可能なオートマトン数である。従って、全体的な実行時間は、O(2|A|(2|A|+|A|x(2|M1|+2|M2'|)))である。これは、単純に|A|、|M1|、及び|M2’|において幾何級数的であるが、明らかなことに、M1及びM2の積を計算するコストを負わずに済む。Aのサイズを固定すると、この方法は、O(2|M1|+2|M2’|)の実行時間を生じることを示すことができる。
残念ながら、|A|は、最悪の場合にL(A)=L(M1)であるので、|M1|においては、最悪の場合は幾何級数的である。これは、全体的な複雑性が入力サイズにおいて2倍に幾何級数的であることを意味する。2倍に幾何級数的である方法をPSPACE完全な問題に適用することは、非論理的であると思われるであろう。しかし、実際には、小さな中間アサーションがある場合、この手法は、単純に幾何級数的である方法よりも効率的である可能性があることを観察することができる。しかし、アルファベットが大きい場合、遷移関数をコンパクトに符号化する何らかの方法を見つける必要性が存在すると考えられる。
D.決定木学習を用いた一般化
上述のように、ハードウエア検証においては、アルファベット_のサイズは、M1とM2の間を通るブール信号の数において幾何級数的である。これは、実際には、L(M1)及びL(M2’)から取得したサンプルが含むアルファベット記号は取るに足らない部分に過ぎない可能性があることを意味する。従って、IDFAAも、Σの小さな部分に対する遷移を含むことになる。従って、適切な方法で完全なアルファベットにわたってこのIDFAからDFAに一般化する何らかの方法を見つける必要性が存在すると考えられる。これは、とても良定義問題とは言えない。ある意味では、IDFAの部分遷移関数と一致した「最も単純な」全体関数を推論してOccamの剃刀の適用を実行することができる。これを行う方法は数多くあるであろう。例えば、記号aの所定の状態からの遷移がIDFAで定められていない場合、何らかの距離尺度に従って最も近い定義済み記号の次の状態にマップすることができる。
ここで取り上げる手法は、決定木学習法を用いて決定木としての部分遷移関数の最も単純な一般化を見つけようとするものである。アルファベット記号を考慮すると、決定木は、このアルファベットを定めるブール変数の値で分岐し、その葉でオートマトンの次の状態が得られる。一部の実施形態では、IDFAの部分遷移関数と一致した全体遷移関数を表す最も単純な決定木を見つけることが望ましい場合がある。別の言い方をすれば、あらゆる状態の遷移関数は、アルファベット記号をどの状態にそれらが遷移するかに従って分類する分類子と見なすことができる。部分遷移関数は、この分類のサンプルを達成すると考えることができ、一部の実施形態では、これらのサンプルと一致した最も単純な決定木を見つけることが望ましい場合がある。直観的に、中間アサーションは、M1とM2の間で交換される信号の小さな集合だけに依存すると予測することができ、従って、一部の実施形態では、この手順を少数の信号に依存する遷移関数に向けてバイアスすることが望ましい場合がある。これを達成するために、ID3法は、一部の実施形態の例から決定木を学習するために使用することができる。
これは、処理2の行8において、これまで見てきたアルファベットのサンプルに基づいて完全な分離言語がどうあるべきかに関する推測を表す記号的に表したDFAにIDFAを一般化することを可能にする。この推測が正しくない場合、先生は、この推測を拒否し、従って次の推測を洗練する反証例を生成することになる。
II.本発明の例示的な実施形態
電子回路の合成検証のための自動仮定を生成するための本発明の一部の実施形態で実施されるような方法及びシステムの全体的な流れのブロック図を示す図1Bを参照する。102で、本方法は、本発明の一部の実施形態において、最初にサンプルの2つの集合S1及びS2を特定する。しかも、本発明の一部の実施形態では、検証すべき特性を更に特定する。本方法及びシステムは、次に、104で、最小分離不完全決定論的有限オートマトン(IDFA)を反復的に計算する。112で、本方法及びシステムは、以前に計算したIDFAを一般化し、完全なDFAを出力して108に進む。一実施形態では、本方法及びシステムは、続いて108で、不完全決定論的有限オートマトンAがL1及びL2を分離するか否かを判断する。
108で、不完全決定論的有限オートマトンAがL1及びL2を分離すると判断された場合、この反復的手順は、終了して114に進む。そうでなければ、本方法及びシステムは、不完全決定論的有限オートマトンAが厳密にL1及びL2を分離すると判断されるまで、アクション104から108を繰り返す。Aが厳密にL1及びL2を分離するか否かを判断するアクションの後、本方法及びシステムは、次に、114で、一般化するアクションの結果を有形コンピュータ可読媒体に記憶する。
最小分離不完全決定論的有限オートマトン(IDFA)を反復的に計算するアクションに関する更なる詳細を例示する図2を参照する。202で、本方法及びシステムは、ツリー状不完全決定論的有限オートマトン(IDFA)Tを構成する。次に、本方法及びシステムは、204で、IDFAの折り畳みを構成する。次に、206で、本方法及びシステムは、不完全決定論的有限オートマトンTの状態数を表す濃度kの一致パーティションГを判断する。一方、本方法及びシステムは、商T/Гを判断する。先に示した数学的モデルに従って、商T/Гは、サンプルの2つの集合S1及びS2を厳密に分離する。
108で、AがL1及びL2を分離するか否かを判断するアクションの更なる詳細を例示する図3を参照する。不完全決定論的有限オートマトンAが、L1及びL2を分離すると判断された場合、この反復的手順は終了し、本方法及びシステムは、310のアクション110に進む。不完全決定論的有限オートマトンAが、L1及びL2を分離しないと判断された場合、本方法及びシステムは、302で、反証例πを取得する。一実施形態では、本方法及びシステムは、例えば、先生から反証例πを取得する。反証例πを取得した後、本方法及びシステムは、次に、304で、反証例πがL1に属するか否かを判断する。308で、反証例πがL1に属すると判断された場合、本方法及びシステムは、反証例πを第1の集合の例S1に追加する。306で、反証例πがL1に属さないと判断された場合、本方法及びシステムは、反証例πを第2の集合の例S2に追加する。
206の一致パーティションГを判断するアクションの更なる詳細を例示する図4を参照する。402で、本方法及びシステムは、最初に、パーティションを列挙するために必要とされるビット数mを定める。一実施形態では、Гは、S1及びS2上のツリー状IDFAの状態数を表す濃度kに関する。別の実施形態では、m=log2kである。404で、本方法及びシステムは、状態sが割り当てられるパーティションの番号を表すブール変数のベクトルを定める。406で、本方法及びシステムは、パーティションが一致していることを保証するブール制約の集合を構成する。
パーティションが一致していることを保証するブーリアン制約の更なる詳細を例示する図5を参照する。第1に、502は、各状態sに対して、vsのビットにわたって表される時に、vs<kが存在すべきであることを示している。更に、504は、記号a上に外向き遷移を有する状態(s、t)の全ての対に対して、制約
Figure 0005269511
が存在することを示している。すなわち、パーティションは、遷移関係を尊重すべきである。更に、506は、状態
Figure 0005269511
の全ての対に対して、制約
Figure 0005269511
が存在することを示している。換言すると、制約506は、拒否状態及び受諾状態を同じパーティション内に置くことはできないことを要求する。
次に、これらの制約502、504、及び506を使用して、ベクトルブール変数
Figure 0005269511
を解く。パーティションГ={Г0、...、Гk-1}が、Tの一致パーティションである時に、厳密にこれらの制約を満足する真理割り当てψは、Tの一致パーティションであり、ここで、
Figure 0005269511
である。従って、満足する割り当てから、一致パーティションを抽出することができる。
以前に計算したIDFAから完全なDFAを一般化するアクションの更なる詳細を例示する図6を参照する。決定論的有限オートマトン(DFA)に対する計算した不完全決定論的有限オートマトン(IDFA)を一般化するアクション112の終了後、本方法及びシステムは、本発明の一部の実施形態では、部分遷移関数δを完成することによりDFAに以前に計算したIDFAを一般化するために602に進む。代替的に、604で、本方法及びシステムは、本発明の一部の実施形態では、以前に計算したIDFAの部分遷移関数と一致した全体遷移関数を表す最も単純な決定木を判断するために604に進む。
このようにして、あらゆる状態の遷移関数は、本発明の一部の実施形態では、アルファベット記号を分類する分類子と見なすことができ、その状態に従ってアルファベット記号が遷移する(606)。部分遷移関数は、本発明の一部の実施形態では、この特定の種類の分類の「サンプル」を提供し、提供されたこれらのサンプルに一致する最も単純な決定木を見つけることを助けるものと見なすことができる(608)。更に、アルファベット記号を考慮すると、決定木は、アルファベットを洗練するブール変数の値で分岐し(610)、その葉では、オートマトンの次の状態が得られる(612)。中間アサーションはソフトウエア及びハードウエアのシステムの2つの構成要素M1及びM2の間で交換された信号の小さな集合だけに依存することが直観的に予想されるので、この手順は、少数の信号に依存する遷移関数に向けてバイアスする場合がある。本発明の一部の実施形態では、この目的を達成するために供給された例から決定木を学習するID3法を用いることができる(614)。
処理1において先に示すような全体的手順のブロック図を例示する図7を参照する。702で、本方法及びシステムは、最初に、サンプルの2つの集合S1及びS2を特定する。704で、本方法及びシステムは、サンプルの2つの集合S1及びS2の最小分離オートマトンAを更に特定する。本方法及びシステムは、次に、706で
Figure 0005269511

か否かを判断する。708で
Figure 0005269511

と判断された場合、本方法及びシステムは、更に、
Figure 0005269511
か否かを判断する。718で
Figure 0005269511
と判断された場合、本方法及びシステムは、真を戻す。すなわち、最小分離オートマトンAは、L1及びL2を分離し、特性pが保持される。
Figure 0005269511
と判断された場合、本方法及びシステムは、710で反証例πを特定し、ここで、
Figure 0005269511
である。本方法及びシステムは、712で反証例
Figure 0005269511
か否かを判断する。反証例
Figure 0005269511
である場合、本方法及びシステムは、714で偽を戻す。すなわち、L1及びL2は互いに素ではなく、pは、保持されない。
Figure 0005269511
と判断された場合、本方法及びシステムは、716で反証例πをS1に追加する。
706で
Figure 0005269511
が偽であると判断された場合、本方法及びシステムは、720で
Figure 0005269511
及び
Figure 0005269511
の両方を満足する反証例πを特定する。本方法及びシステムは、722で
Figure 0005269511
か否かを判断する。
Figure 0005269511
と判断された場合、本方法及びシステムは、次に、726で偽を戻す。すなわち、L1及びL2は互いに素ではなく、pは、保持されない。それに反して、
Figure 0005269511
と判断された場合、本方法及びシステムは、724でπをS2に追加する。アクション714、716、718、724、及び726の後に、本方法及びシステムは、728で同等性質問が成功するか否かを判断し、同等性質問が成功した場合、730でこの反復的手順を終了する。代替的に、732で、本方法及びシステムは、702に戻り、そこで、728で同等性質問が失敗すると判断される。
本発明の別の実施形態を例示する図8を参照する。802で、本方法及びシステムは、反復的に生成されるサンプルの集合で始まる。804で、本方法及びシステムは、完全なDFAのAを生成する学習法を呼び出す(806)。808で、本方法及びシステムは、
Figure 0005269511
か否かを判断する。別の実施形態では、
Figure 0005269511
の判断は、モデル検査呼び出しを構成する。
Figure 0005269511
の判断が失敗したと判断された810で、本方法及びシステムは、更に、
Figure 0005269511
か否かを判断する。別の実施形態では、
Figure 0005269511
の判断は、限定モデル検査呼び出しを構成する。
Figure 0005269511
の判断により偽が戻された場合、812でバグが報告される。代替的に、
Figure 0005269511
の判断により真が戻された場合、本方法及びシステムは、次に、820で最初に特定されたサンプルの集合に戻って、正のサンプルをそれに追加する。
Figure 0005269511
の判断が保持されていると判断された814で、本方法及びシステムは、
Figure 0005269511
か否かを判断する。別の実施形態では、
Figure 0005269511
の判断は、モデル検査呼び出しを構成する。814で、
Figure 0005269511
の判断により真が戻された場合、820で特性pが保持される。814で、
Figure 0005269511
の判断により偽が戻された場合、本方法及びシステムは、更に、816でサンプル
Figure 0005269511
か否かを判断する。別の実施形態では、
Figure 0005269511
か否かの判断は、限定モデル検査呼び出しを構成する。816で
Figure 0005269511
と判断された場合、本方法及びシステムは、バグを報告し、又は特性pは、保持されない(818)。816で
Figure 0005269511
が失敗すると判断された場合、本方法及びシステムは、820で最初に特定された集合のサンプルに戻って、負のサンプルをそれに追加する。
2ビットシフトレジスタを含む例示的なハードウエア回路を例示する図9を参照する。データは、x1_1、x2−1からx1_8、x2_8に移動中である。xJ1及びxJ2は、自由入力を表している。x1_7の値は、xJ1が1である場合にのみ更新される。同様に、x2_7の値は、xJ2が1である場合にのみ更新される。初めは、全てのレジスタは、0に設定される。証明すべき特性は、x1_8及びx2_8が、x1_1及びx2_1が過去に1であった場合にのみ1であると説明する。仮定保証の適用のために、設計は、本発明の一実施形態に従ってM1及びM2に分解することができる。
図9に示す回路に関して本発明の一実施形態で本方法により生成された仮定オートマトンを例示する図10を参照する。本発明の一実施形態におる方法の適用により、手元の特性を検証することができる最も小さい仮定オートマトンである3状態オートマトンが学習される。
本発明の一部の実施形態は、Cadence製SMV(記号モデル検証器)又は他の「記号モデル検証器」上で実施することができる。本発明の一実施形態では、ユーザは、2つの成分へのソフトウエア及びハードウエアのシステムの分解を指定する。Cadence製SMVをBDDベースのモデル検査システムとして使用して仮定を検証し、更に、増分BMCエンジンとして反証例を検査することができる。SAT解法も上述の実施例において使用される。ID3法も、決定木を生成するように開発することができる。Cobleighにより提案されているL*ベースの方法も、R.L.Rivest及びR.E.Schapire著「ホーミングシーケンスを用いた有限オートマトンの推論」、STOC’89:計算の理論に関する21回年次ACMシンポジューム講演論文集、411ページから420ページに提案されている最適化バージョンを用いて実施することができる。
本発明の一部の実施形態は、本発明の精神又はその本質的な特徴から逸脱することなく他の特定の形態に具現化することができることが当業者によって認められるであろう。従って、ここで開示した実施形態は、全ての点において例示的であり、制限的ではないと考えられる。本発明の一部の実施形態の範囲は、以上の説明ではなく、特許請求の範囲により示されており、その均等物の意味及び範囲に該当する全ての変更は、そこに包含されるものとする。
システムアーキテクチャ概要
図9は、本発明の実施形態を実行するのに適する例示的なコンピュータシステム1400のブロック図である。コンピュータシステム1400は、プロセッサ1404、システメモリ1406(例えば、RAM)、静的記憶装置1408(例えば、ROM)、ディスクドライブ1410(例えば、磁気又は光)、通信インタフェース1412(例えば、モデム又はイーサネットカード)、ディスプレイ1414(例えば、CRT又はLCD)、入力デバイス1416(例えば、キーボード)、及びカーソル制御装置1418(例えば、マウス又はトラックボール)のようなサブシステム及びデバイスを相互接続する情報を伝達するためのバス1402又は他の通信機構を含む。
本発明の実施形態によれば、コンピュータシステム1400は、システメモリ1406内に含まれた1つ又はそれよりも多くの命令のうちの1つ又はそれよりも多くシーケンスを実行するプロセッサ1404により特定の演算を行う。このような命令は、静的記憶装置1408又はディスクドライブ1410のような別のコンピュータ可読/使用可能媒体からシステメモリ1406に読み取ることができる。代替的な実施形態では、本発明の一部の実施形態を実行するためにソフトウエア命令の代わりに、又はソフトウエア命令と組み合わせて配線回路を使用することができる。
本明細書で使用される用語「コンピュータ可読媒体」又は「コンピュータ使用可能媒体」は、実行に向けて命令をプロセッサ1404に供給することに関わるあらゆる媒体を指す。このような媒体は、多くの形を取ることができ、不揮発性媒体及び揮発性媒体を含むがこれらに限定されない。不揮発性媒体としては、例えば、ディスクドライブ1410のような光ディスク又は磁気ディスクがある。揮発性媒体としては、システメモリ1406のような動的メモリがある。
一般的な形のコンピュータ可読媒体としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、あらゆる他の磁気媒体、CD−ROM、あらゆる他の光媒体、パンチカード、紙テープ、孔のパターンを有するあらゆる他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、あらゆる他のメモリチップ又はカートリッジ、又はコンピュータ可読のあらゆる他の媒体がある。
本発明の実施形態では、本発明を実施する命令のシーケンスの実行は、単一のコンピュータシステム1400により行われる。本発明の他の実施形態によれば、通信リンク1420(例えば、LAN、PTSN、又は無線ネットワーク)により結合された2つ又はそれよりも多くのコンピュータシステム1400は、互いと協働して本発明を実施するために必要な命令のシーケンスを実行することができる。
コンピュータシステム1400は、通信リンク1420及び通信インタフェース1412を通じてプログラム、すなわち、アプリケーションコードを含むメッセージ、データ、及び命令を送受信することができる。受信プログラムコードは、受信時にプロセッサ1404により実行され、及び/又はその後の実行に向けてディスクドライブ1410又は不揮発性記憶装置に記憶することができる。
以上の明細書において、本発明を特定的な実施形態を参照して説明した。しかし、本発明のより広い精神及び範囲から逸脱することなく、様々な修正及び変更を行うことができることが明らかであろう。例えば、上述の処理フローは、処理アクションの特定の順序に関連して説明したものである。しかし、説明した処理アクションの多くのものの順序は、本発明の範囲又は作業に影響を与えることなく変更することができる。従って、本明細書及び図面は、制限的な意味ではなく例示的であると考えるものとする。
電子回路の合成検証のための自動仮定を生成する本発明の一部の実施形態に具現化された方法及びシステムの全体的な流れのブロック図である。 電子回路の合成検証のための自動仮定を生成する本発明の一部の実施形態に具現化された方法及びシステムの全体的な流れの更なる詳細のブロック図である。 最小分離不完全決定論的有限オートマトン(IDFA)を反復的に計算するアクションに関するより詳細を示す図である。 Aが2つの言語を分離するか否かを判断するアクションの更なる詳細を示す図である。 一致パーティションΓを判断するアクションの更なる詳細を示す図である。 パーティションが一致していることを保証するブール制約の更なる詳細を示す図である。 以前に計算したIDFAから完全なDFAを一般化するアクションの更なる詳細を示す図である。 処理1において先に示すような全体的な手順のブロック図である。 本発明の別の実施形態による仮定の自動化された生成の方法を示す図である。 2ビットシフトレジスタを含む例示的なハードウエア回路を示す図である。 図9に示す回路に対して本発明の一実施形態で本方法により生成された仮定オートマトンを示す図である。 同時処理モデルでのタイミング閉鎖の方法を実行することができるコンピュータ化されたシステムを示す図である。
符号の説明
152 処理
DFA 決定論的有限オートマトン
IDFA 不完全決定論的有限オートマトン

Claims (18)

  1. 電子回路設計の合成検証のための自動仮定を生成する、コンピュータによって実行される方法であって、プロセッサを用いて、
    電子回路設計の挙動の第1の集合及び第2の集合を特定する段階と、
    前記第1及び第2の集合の挙動に基づいて、前記挙動の第1の集合と第2の集合を分離する最小不完全決定論的有限オートマトン(IDFA)を反復的に計算する段階と、
    前記最小IDFAからの一般化によって決定論的有限オートマトン(DFA)を判断する段階と、ここで、前記DFAは前記IDFAから情報を収集するための学習処理を実行することにより判断され、
    前記DFAアクションを判断する段階の結果を有形コンピュータ可読媒体上に記憶する段階と、
    を含むことを特徴とする方法。
  2. 前記挙動の第1の集合S1は、
    Figure 0005269511
    を満足し、前記挙動の第2の集合S12は、
    Figure 0005269511
    を満足し、ここでL1は、第1の言語であり、L2は、第2の言語であることを特徴とする請求項1に記載の方法。
  3. 前記最小IDFAがL1及びL2を分離するか否かを判断する段階、
    を更に含むことを特徴とする請求項2に記載の方法。
  4. 前記最小IDFAがL1及びL2を分離するか否かを判断するアクションは、
    前記最小IDFAがL1及びL2を分離しないと判断される反証例を取得する段階と、
    前記反証例がL1に属するか否かを判断する段階と、
    を含む、
    ことを特徴とする請求項3に記載の方法。
  5. 前記反証例がL1に属すると判断される場合に該反証例を前記第1の集合に追加し、又は該反証例がL1に属さないと判断される場合に該反証例を前記第2の集合に追加する段階を更に含むことを特徴とする請求項4に記載の方法。
  6. 前記反証例は、モデル検査から得られることを特徴とする請求項4に記載の方法。
  7. 前記挙動の第1の集合又は前記第2の集合は、最初は空であることを特徴とする請求項1に記載の方法。
  8. 前記最小IDFAに対する問い合わせを更に含むか又はそれを実行する段階を含むことを特徴とする請求項1に記載の方法。
  9. 前記最小IDFAを反復的に計算するアクションは、
    前記第1の集合及び前記第2の集合にわたってツリー状IDFAの折り畳みを構成する段階と、
    前記ツリー状IDFAの一致パーティションを判断する段階と、
    前記第1及び第2の集合を厳密に分離するオートマトンを判断する段階と、
    を含む、
    ことを特徴とする請求項1に記載の方法。
  10. 前記一致パーティションは、前記ツリー状IDFAの状態数である濃度kのものであり、前記第1の集合及び前記第2の集合を分離する各IDFAは、該第1の集合及び該第2の集合にわたって該ツリー状IDFAに対して準同形であり、又は
    前記折り畳みを構成するアクションは、前記第1の集合及び前記第2の集合にわたる前記ツリー状IDFAの複数の状態から該第1の集合及び該第2の集合を分離する前記最小IDFAの別の複数の状態へのマップを推定することによって実行される、
    ことを特徴とする請求項9に記載の方法。
  11. 前記一致パーティションを判断するアクションは、
    k個の状態のパーティションを列挙するのに必要なビットの第1の数mを定義する段階と、
    Figure 0005269511
    状態が割り当てられるパーティションの第2の数を表すブール変数のベクトル
    を定義する段階と、
    前記パーティションが一致していることを保証する1つ又はそれよりも多くのブール制約の集合を構成する段階と、
    を含む、
    ことを特徴とする請求項9に記載の方法。
  12. mが、log2kに等しく、前記1つ又はそれよりも多くのブール制約の集合は、各状態sに対して
    Figure 0005269511
    を含み、
    前記1つ又はそれよりも多くのブール制約の集合は、前記パーティションによる遷移関係を観察する段階を含み、又は
    前記1つ又はそれよりも多くのブール制約の集合は、拒否状態及び拒否を異なるパーティションに配置する段階を含む、
    ことを特徴とする請求項11に記載の方法。
  13. 前記第1の集合及び前記第2の集合は、共に有限であることを特徴とする請求項1に記載の方法。
  14. 前記第1の集合又は前記第2の集合におけるサンプルが、前記電子回路設計における回路構成要素の挙動を構成することを特徴とする請求項1に記載の方法。
  15. 前記最小IDFAから一般化することによってDFAを判断するアクションは、
    前記最小IDFAの部分遷移関数に一致する全体遷移関数を表す最も単純な決定木を判断する段階、
    を含む、
    ことを特徴とする請求項1に記載の方法。
  16. 前記全体遷移関数は、アルファベット記号を該アルファベット記号がどの状態に遷移するかに従って分類し、該全体遷移関数は、分類のサンプルを該サンプルに一致する前記最も単純な決定木を判断するために提供し、該最も単純な決定木を判断するアクションは、ID3法を用いて実行され、該最も単純な決定木を判断するアクションは、決定木学習法を用いて実行され、該最も単純な決定木は、前記DFAのアルファベットを定めるブール変数上で分岐し、又は
    前記最も単純な決定木の葉は、前記DFAの次の状態を示す、
    ことを特徴とする請求項15に記載の方法。
  17. 少なくとも1つのプロセッサによって実行されたときに、当該少なくとも1つのプロセッサに、請求項1から請求項16のいずれかに記載の方法を実行させる実行可能コードを有する、コンピュータ使用可能記憶媒体に記録されたコンピュータプログラム。
  18. 請求項1から請求項16のいずれかに記載の方法を実行するための手段を含む、電子機器の合成検証のための自動仮定を生成するためのシステム。
JP2008196981A 2007-07-02 2008-07-02 合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品 Expired - Fee Related JP5269511B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/772,792 2007-07-02
US11/772,792 US7685547B1 (en) 2007-07-02 2007-07-02 Method, system, and computer program product for generating automated assumption for compositional verification

Publications (2)

Publication Number Publication Date
JP2009054147A JP2009054147A (ja) 2009-03-12
JP5269511B2 true JP5269511B2 (ja) 2013-08-21

Family

ID=39811514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008196981A Expired - Fee Related JP5269511B2 (ja) 2007-07-02 2008-07-02 合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品

Country Status (5)

Country Link
US (1) US7685547B1 (ja)
EP (1) EP2012245A1 (ja)
JP (1) JP5269511B2 (ja)
CN (1) CN101404045B (ja)
TW (1) TWI448914B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8813007B2 (en) * 2009-04-17 2014-08-19 Synopsys, Inc. Automatic approximation of assumptions for formal property verification
US8645310B2 (en) * 2011-03-22 2014-02-04 GM Global Technology Operations LLC Efficient source of infeasibility identification in timed automata traces
US9372949B1 (en) * 2011-05-25 2016-06-21 Cadence Design Systems, Inc. Guided exploration of circuit design states
US8863292B2 (en) * 2011-12-07 2014-10-14 International Business Machines Corporation Interactive analysis of a security specification
CN103036739B (zh) * 2012-12-11 2015-06-17 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
US8881075B2 (en) 2013-03-04 2014-11-04 Atrenta, Inc. Method for measuring assertion density in a system of verifying integrated circuit design
CN103778051A (zh) * 2014-01-09 2014-05-07 安徽理工大学 基于l*算法的业务流程增量挖掘方法
US20150371140A1 (en) * 2014-06-24 2015-12-24 Microsoft Technology Licensing, Llc Minimizing Symbolic Finite Automata
US10169217B2 (en) 2016-04-06 2019-01-01 General Electric Company System and method for test generation from software specification models that contain nonlinear arithmetic constraints over real number ranges
CN109791575B (zh) * 2016-05-24 2024-05-14 科特罗尔有限责任公司 一种应用于机电系统的自动化设计系统及方法
US10929764B2 (en) * 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10970449B2 (en) * 2017-09-20 2021-04-06 International Business Machines Corporation Learning framework for software-hardware model generation and verification
CN113049948B (zh) * 2019-07-01 2022-09-02 成都奥卡思微电科技有限公司 基于外部引入逻辑电路的形式验证断言空泛性的纠正方法、存储介质和终端

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04158480A (ja) * 1990-10-23 1992-06-01 Nec Corp 不完全指定順序回路最小化方法
JP3302218B2 (ja) * 1995-05-19 2002-07-15 富士通株式会社 プライム・コンパチブルによる有限状態機械の状態数最小化装置および方法
JP3600420B2 (ja) * 1997-02-28 2004-12-15 富士通株式会社 論理検証装置
US6141630A (en) * 1997-08-07 2000-10-31 Verisity Design, Inc. System and method for automated design verification
US6446243B1 (en) * 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
JP4078435B2 (ja) * 2001-06-06 2008-04-23 株式会社ルネサステクノロジ 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法
US7711525B2 (en) * 2002-05-30 2010-05-04 Nec Corporation Efficient approaches for bounded model checking
US7216364B2 (en) * 2004-06-14 2007-05-08 Lionic Corporation System security approaches using state tables
US7685637B2 (en) * 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
US8392590B2 (en) * 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
US8301788B2 (en) * 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction
JP2007034833A (ja) * 2005-07-28 2007-02-08 Fujitsu Ltd 機能検証記述生成装置,機能検証記述生成方法,及び機能検証記述生成プログラム

Also Published As

Publication number Publication date
JP2009054147A (ja) 2009-03-12
TW200907735A (en) 2009-02-16
EP2012245A1 (en) 2009-01-07
CN101404045B (zh) 2014-06-18
CN101404045A (zh) 2009-04-08
TWI448914B (zh) 2014-08-11
US7685547B1 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
JP5269511B2 (ja) 合成検証のための自動仮定を生成する方法、システム、及びコンピュータプログラム製品
Gupta et al. Automated assumption generation for compositional verification
US20070005633A1 (en) Predicate abstraction via symbolic decision procedures
Thomas A short introduction to infinite automata
US20080228679A1 (en) Symbolic depth-first searches using control flow information for improved reachability analysis
US10970449B2 (en) Learning framework for software-hardware model generation and verification
Neider et al. Regular model checking using solver technologies and automata learning
Esparza et al. A perfect model for bounded verification
Farzan et al. Automated program verification
Gupta et al. Automated assumption generation for compositional verification
Schreiner Concrete Abstractions: Formalizing and Analyzing Discrete Theories and Algorithms with the RISCAL Model Checker
US20050192789A1 (en) Methods for formal verification on a symbolic lattice domain
Boiret et al. Learning rational functions
Raun et al. C-3PA: Streaming Conformance, Confidence and Completeness in Prefix-Alignments
Karlaš et al. Data Debugging with Shapley Importance over Machine Learning Pipelines
Hague et al. Decidable models of integer-manipulating programs with recursive parallelism
Navet et al. Modeling and verification of real-time Systems: formalisms and software tools
Singh Domain modeling mistake detection system
Sakamoto et al. Learning elementary formal systems with queries
de la Higuera et al. Inference of ω-languages from prefixes
Yousofvand et al. Automatic program bug fixing by focusing on finding the shortest sequence of changes
Smetsers Advances in Model Learning for Software Systems
Rozier Explicit or symbolic translation of linear temporal logic to automata
Alatawi Dynamic Symbolic Execution with Descriptive and Prescriptive Relations.
Lu Formally verified code obfuscation in the Coq proof assistant

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees