Systems and Software Verification 4. Symbolic Model Checking システム情報科学府 情報工学専攻 荒木研究室 修士2年 住田 辰雄 目次 • • • • • 4.0 記号モデル検査 4.1 状態集合の記号計算 4.2 二分決定グラフ (BDD) 4.3 BDDsによるオートマトンの表現 4.4 BDDに基づくモデル検査 2006/9/28 モデル検査勉強会 2 4.0 記号モデル検査 • 記号モデル検査 – 検証を目的とするオートマトンの状態や遷移 を記号的に表現するモデル検査手法を指す – 本書では,特に二分決定グラフを用いるモデ ル検査手法について言及する 2006/9/28 モデル検査勉強会 3 4.1 状態集合の記号計算 • Sat(φ) – φを満たす状態の集合 – Sat(φ)はPre演算子とSat(ψ) の集合によって求 めることができる • Pre(S) – Sの前の状態の集合 » A = <Q, T, q0, l> » S⊆Q 2006/9/28 モデル検査勉強会 4 4.1 状態集合の記号計算 • Sat(φ) Sat ( ) Q \ Sat ( ) Sat ( ' ) Sat ( EX ) Sat ( AX ) Sat ( ) Sat ( ' ) Pre( Sat ( )) Q \ Pre(Q \ Sat ( )) Sat ( EF ) Pre* ( Sat ( )) ... • Q\X – Qのサブ集合Xの補集合 • Pre*(S) – Sの0回以上前の状態の集合 2006/9/28 モデル検査勉強会 5 4.1 状態集合の記号計算 / * Computatio n of Pre * (S) (for Sat [EF psi]) * / X : S; Y : {}; while (Y ! X) { / * Y is not a fixed point * / Y : X; X : X \ / Pre(X); / * \ / set union * / } return X; Aが有限であれば,停止性は保証される 2006/9/28 モデル検査勉強会 6 4.1 状態集合の記号計算 / * Computatio n of Sat [A psi1 U psi2] * / P1 : Sat[psi1]; P2 : Sat[psi2]; X : P2; Y : {}; while (Y ! X) { Y : X; / * not yet stabilized * / / * / \ set intersecti on * / X : X \ / (P1 / \ (Q \ Pre(Q \ X))); } Aψ1Uψ2 ≡ ψ2 ∨ (ψ1 ∧ EX true ∧ AX(Aψ1Uψ2)) return X; 2006/9/28 モデル検査勉強会 7 4.1 状態集合の記号計算 • 時相結合子は不動点として定義することが できるため,全てのCTL結合子はこのよう な計算で扱うことができる 2006/9/28 モデル検査勉強会 8 4.1 状態集合の記号計算 • Sat(φ)の反復計算を実装するには,以下 の基本が必要である 1. 各命題P ∈ Propに対するSat(P)の記号表現 2. Sの記号表現からPre(S)(の記号表現)を計 算するアルゴリズム 3. 状態の記号表現の補集合,和,積を計算す るアルゴリズム 4. 2つの記号表現が等しい集合がどうかを判 断するアルゴリズム 2006/9/28 モデル検査勉強会 9 4.1 状態集合の記号計算 • 例: オートマトンA – 2変数 a, b:0..255 – <q, v, v’> •q : コントロール状態 • v, v’ : それぞれaとbの値に対応するバイト • <*, *, *> – <q2, 3, *> » q = q2, v = 3, v’ = 任意 – QAは何万もの状態をもつ 2006/9/28 モデル検査勉強会 10 4.1 状態集合の記号計算 • 補集合 – <q2, 3, *>の補集合 • <q1, *, *> + <q2, [0;2], *> + <q2, [4;255], *> + <q3, *, *> • Pre(S) – Pre(<q1, [100;250], [8;109]>) • <q1, [110;255], [8;109]> 2006/9/28 モデル検査勉強会 11 4.1 状態集合の記号計算 • 記号モデル検査の論理 – 状態論理式に基づく論理は記号モデル検査 に適している • CTL • mu-calculus – PLTLはSat(ψi)の反復計算によって記述するこ とができる • 実際には用いられない 2006/9/28 モデル検査勉強会 12 4.1 状態集合の記号計算 • 無限システムに対する記号モデル検査の 抱える課題 – 集合操作が計算可能である記号表現を提案 するのが困難である – Sat(φ)の反復計算の停止性を保証することが できない 2006/9/28 モデル検査勉強会 13 4.2 二分決定グラフ (BDD) • 二分決定グラフ – Bryantが提案 – 能力 • 基本演算(論理積,補集合,比較,投影など)のコストが安価である – 線形,2次,もしくは即時(equality testの場合) – データ構造がとても簡潔である – 単純 • データ構造とアルゴリズムが記述・実装ともに単純である – 容易な適応 • BDDsは状態変数などを扱う問題に適している – 一般性 • BDDsは特定のオートマトンに限定されず,いかなる種類の有限シ ステムに対しても簡潔な表現が可能である 2006/9/28 モデル検査勉強会 14 4.2 二分決定グラフ (BDD) 2006/9/28 モデル検査勉強会 15 4.2 二分決定グラフ (BDD) • 二分決定グラフ – 長所 • 与えられたn個組みのタプルが満たすかどうか,n 回の検査で判断することができる – 短所 • サイズが常に指数である 2006/9/28 モデル検査勉強会 16 4.2 二分決定グラフ (BDD) • 二分決定グラフ – 集約 • 規則 – 等価な部分木は同定し共有する » Ex. n8とn10 – 余分な内部節点は削除する » Ex. n7 • 利点 – 表現が小さくなるため,スペースが小さくなる – 規範性(canonicity) » 変数xiの順番が決定されれば,各集合Sに対する唯一の BDDが存在する 2006/9/28 モデル検査勉強会 17 4.2 二分決定グラフ (BDD) 2006/9/28 モデル検査勉強会 18 4.2 二分決定グラフ (BDD) • BDDsに対する操作 – 空検査 • 一つの葉Fに集約されている – 比較 • 2つのBDDが同一である – 補集合 • 全ての葉Tを葉Fと交換する • 全ての葉Fを葉Tと交換する – 論理積 • 各組(n1, n2)に対して,n1∩n2を計算する 2006/9/28 モデル検査勉強会 19 4.2 二分決定グラフ (BDD) • BDDsに対する操作 – 論理和と他のブール演算 • 論理積と同様に行う • 2次のコスト – 投影と抽象化 • 投影 S[xi := T] – i番の節点にTを割り当てる • 抽象化 ∃xi.S – Sのn個組みのタプルに対して,xiに適当な値biを挿入すること によって,全てのn-1個組みのタプルを集める • 最悪の場合,2次のコスト 2006/9/28 モデル検査勉強会 20 4.3 BDDsによるオートマトンの表現 • オートマトンA – Q = {q0, …, q6} • var digit:0..9 • var ready:bool – 状態<q, k, b> • • • • 2006/9/28 q - 3ビット: b11, b12, b13 k - 4ビット: b21, b22, b23, b24 b - 1ビット: b31 <q3, 8, F> モデル検査勉強会 21 4.3 BDDsによるオートマトンの表現 2006/9/28 モデル検査勉強会 22 4.3 BDDsによるオートマトンの表現 – 遷移 • <s, s’> – 状態と遷移先の状態 • 最も単純な方法 – 状態をエンコードするのに必要な2倍のビットを割り当て る – <q3, 8, F> -> <q5, 0, F> 2006/9/28 モデル検査勉強会 23 4.3 BDDsによるオートマトンの表現 • (<q, k, b>, <q’, k’, b’>) – q = q1, k ≠ 0, q’ = q2, k’ = k, b’ = T 2006/9/28 モデル検査勉強会 24 4.4 BDDに基づくモデル検査 • Pre(S)の計算 – S • • q = q1 ∧ k = 0 BS : SのBDD – T • • q = q0 ∧ q’ = q1 ∧ k’ = k BT : TのBDD 1. BSのコピー(B’S)を作成する • bij = b’ij 2. BT∩B’Sを計算する • q = q0 ∧ q’ = q1 ∧ k’ = k ∧ q’ = q1 ∧ k’ = 0 3. 抽象化∃q’∃k’を適用する • 2006/9/28 q = q0 ∧ k = 0 モデル検査勉強会 25 4.4 BDDに基づくモデル検査 • 二分決定グラフに基づいたモデル検査ツール – SMV • 能力はいくつかの要因に依存する – BDD BTの作成 • Tは状態の組である • BT1, …,BTmをそれぞれ作成するのが賢明である – Pre(S) = Pre[T1](S)∪…∪Pre[Tm](S) – ブール変数の順番の決定 • bij <=> b’ij – bijがb’ijの近接でなければサイズが指数的に増加する 2006/9/28 モデル検査勉強会 26 4.4 BDDに基づくモデル検査 • 記号モデル検査に対する現在の取り組み – より多くの検証問題を解決するためにBDD技 術を適用する – BDDに基づくモデル検査固有の限界を伸ば すような技術を開発する 2006/9/28 モデル検査勉強会 27
© Copyright 2024 ExpyDoc