4 形式的設計検証技術 検証 verification 形式的検証 (4.1.2)

Slides:



Advertisements
Similar presentations
紹介担当: 石尾 隆(大阪大学) Q11.  Feature Model によって定義される「プロダクトの集合」 (プロダクトライン)の振舞いを検証する手法の拡張 ◦ 通常の振舞い検証: たとえば Promela を使って,1プロダクトの 振舞いを表現したオートマトンの取りうる状態遷移を調べる ◦
Advertisements

OWL-Sを用いたWebアプリケーションの検査と生成
モデル検査の応用 徳田研究室 西村太一.
モデル検査のためのコンカレントシステムの仕様記述
文法と言語 ー字句解析とオートマトンlexー
システム工学概論 第10回 状態遷移の実現
Model Checking (1) Modeling Concurrent Systems
Model Checking (1) Modeling Concurrent Systems
チュートリアル 形式的検証技術 Logical Framework と Modal Logic
双方向CTLによるJava最適化器の生成
Verilog HDL 12月21日(月).
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
充足不能性と導出原理 充足不能性の証明 スコーレム標準形 エルブラン解釈 導出原理 基礎節に対する導出 導出原理の完全性と健全性.
ソフトウェアの検証 成熟した方法論・ツール しかし、非常に高いコスト 人間的要因 > アルゴリズム・設計・実装
Extremal Combinatrics Chapter 4
Model Checking (2) Temporal Logic
充足可能性判定を利用した モデル検査 土屋達弘 (大阪大学).
9.NP完全問題とNP困難問題.
データ構造と アルゴリズム 知能情報学部 新田直也.
4.2.2 4to1セレクタ.
Probabilistic Method 6-3,4
Probabilistic method 輪講 第7回
Systems and Software Verification 10. Fairness Properties
CSP記述によるモデル設計と ツールによる検証
Research Session 17: Formal Verification
プロトコル検証器SPINの紹介 並列分散プログラミング講義 田浦.
モデル検査(1) 並行システムとモデル検査 1.並行システム 2.モデル検査 3.モデル検査の実施 4.システムとアルゴリズム
7. 順序回路 五島 正裕.
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
第7回 条件による繰り返し.
チューリング機械 状態の有限集合 ヘッドの方向を表す。 L:1コマ左へ R:1コマ右へ テープ記号の有限集合 入力記号の有限集合 動作関数
6. 順序回路の基礎 五島 正裕.
アーランの即時式モデル.
不完全な知識 不完全な知識に基づく問題解決 フレーム問題 制約条件記述問題 非単調推論 極小限定 常識の定式化 並列極小限定.
「iQUAVIS」 によるハード・ソフトの 横断的な構想検討
プログラミング言語論プログラミング言語論 プログラムの意味論 水野嘉明
文法と言語 ー字句解析とオートマトンlexー
モデル検査 状態遷移系 PLTL(propositional linear-time temporal logic) PLTLのモデル検査
7 ソフトウェア工学 Software Engineering モデル検査 MODEL CHECKING.
ディジタル回路 2. ブール代数 と 論理ゲート 五島 正裕.
線形計画法に基づく逐次化を利用したシステムレベル設計での動作並列化前後での等価性検証手法
ディジタル回路 6. 順序回路の実現 五島 正裕.
Model Checking (2) Temporal Logic
第二回 時制論理とリアルタイムリソース.
SPINを用いたウェブアプリケーションにおける 階層別モデル検査支援方法
数理論理学 第3回 茨城大学工学部情報工学科 佐々木 稔.
第7回 条件による繰り返し.
論文紹介: Time Limited Model Checking
モデル検査(3) 手続き型言語に基づくモデリング
電気電子情報第一(前期)実験 G5. ディジタル回路
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
VLSI設計論第3回 順序回路の記述と論理合成
知能情報システム特論 Introduction
関数型言語による Timed CSP 検証技法の提案
モデル検査(5) CTLモデル検査アルゴリズム
モデル検査(1) 並行システムのモデリング 知能ソフトウェア特論 Intelligent Software
人工知能特論2009 No.2 東京工科大学大学院 担当教員:亀田弘之.
Lecture 8 Applications: Direct Product Theorems
計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介
Selfish Routing 4章前半 岡本 和也.
5.チューリングマシンと計算.
米澤研究室 全体ミーティング 2010/07/07 M2 渡邊裕貴.
第7回  命題論理.
8. 順序回路の実現 五島 正裕.
ディペンダブル組込みシステムのためのコンテキスト分析手法
Additive Combinatorics輪講 3章前半
非決定性有限オートマトン 状態の有限集合 入力記号の有限集合 注意 動作関数 初期状態 受理状態の有限集合.
練習問題.
Presentation transcript:

4 形式的設計検証技術 検証 verification 形式的検証 (4.1.2) 求められる機能や性質を,設計が満たしているかどうかを調べること 求められる機能や性質 = 仕様 Specification 形式的検証 (4.1.2) 設計や仕様を形式的に(≒数学的に)記述し,形式的に検証を行う すべての可能な動作を考慮 比較.シミュレーション (4.1.1)

4.1.2 形式的検証 モデル検査 Model Checking 定理証明 Theorem Proving (4.4) 状態探索による検証 仕様は時相論理(temporal logic)で記述 4.3 CTLモデル検査 4.4 LTLモデル検査 定理証明 Theorem Proving (4.4) CTL LTL

例.図4.2 ia FF1 oa 0 0 1 0 0 1 1 1

例.図4.2 ia FF1 oa ob FF2 ib 00 00 01 00 10 00 11 00 00 01 01 01 10 01 11 01 00 11 01 11 10 11 11 11 00 10 01 10 10 10 11 10

モデル検査,モデル検査ツール CTLモデル検査 (4.2) LTLモデル検査 (4.3) SMV, NuSMV 1998 ACM Paris Kanellakis Theory and Practice Award LTLモデル検査 (4.3) SPIN, LTSA, NuSMV 2001 ACM Software System Award 2005 ACM Paris Kanellakis Theory and Practice Award

4.2 CTLモデル検査 SMVでの記述例 ia FF1 oa ob ib FF2 MODULE main VAR ia : boolean; ib : boolean; oa : boolean; ob : boolean; ASSIGN init(ia) := 0; init(ib) := 0; init(oa) := 0; init(ob) := 0; next(oa) := ia; next(ob) := !ia & ib; next(ia) := {0, 1}; next(ib) := {0, 1}; SPEC AG !(oa & ob) ia FF1 oa ob FF2 ib

SMVの特徴 CTL (4.2.1) 記号モデル検査 (4.2.2~4.2.6) 論理関数で記号的に状態探索を実行 CTL (4.2.1) 記号モデル検査 (4.2.2~4.2.6) 論理関数で記号的に状態探索を実行 グラフ構造を明示的に取り扱わない 2分決定グラフ (BDD) (4.2.5) 論理関数処理に適したデータ構造

状態グラフ (クリプキ構造) q p,q p q s1 s2 s3 s4 状態集合: S 初期状態集合: I S 遷移関係: R SS (注.必ず次状態が存在するものとする) R = {(s1, s2), (s2, s3), (s2, s4), (s3, s3), (s3, s4), (s4, s4)} 原子命題の割当: L: S ↦ 2A 原子命題の集合 A = {p, q}

4.2.1 CTL シンタックス (f,g はCTL式) 原子命題 atomic proposition 例.変数ib = 1 f, f  g , f  g , f  g EXf, EFf, EGf, E(f Ug) AXf, AFf, AGf, A(fUg) E: あるパスで A: すべてのパスで F: いずれ G: ずっと U: ~まで

計算木とパス パス 計算木 E: あるパスで A: すべてのパスで F: いずれ G: ずっと U: ~まで q p,q p q s1 s2

SMVがすること すべての初期状態において, CTL式fが成り立つかどうかを調べる s  I, s ⊨ f s1 s2 s3 s4 q MODULE main VAR s : {s1, s2, s3, s4}; DEFINE p := s = s2 | s = s3; q := s = s1 | s = s2 | s = s4; ASSIGN init(s) := s1; next(s) := case s = s1 : s2; s = s2 : {s3, s4}; s = s3 : {s3, s4}; s = s4 : s4; esac; s1 s2 s3 s4 q p,q p

セマンティクス EX, AX 計算木 EXf fがある次状態で成り立つ AXf fがすべての次状態で成り立つ f 計算木 f f

例 q p,q p q s1 s2 s3 s4 EXp EXp EXp AXp EXq, AXqは?

セマンティクス EF, AF EFf fがあるパスでいずれ成り立つ AFf fがすべてのパスでいずれ成り立つ f f

例 q p,q p q s1 s2 s3 s4 EFp EFp EFp AFp AFp AFp EFq, AFqは?

セマンティクス EG, AG EGf fがあるパスで常に成り立つ AGf fがすべてのパスで常に成り立つ f f f f

例 q p,q p q s1 s2 s3 s4 EGp EGp EGq, AGqは?

セマンティクス EU, AU E(f Ug) A(f Ug) あるパスについて,どこかでgが成り立ち,それまでfが成り立ち続けている すべてのパスについて,... f f f g f g f g g

例 q p,q p q s1 s2 s3 s4 E(pUq) E(pUq) E(pUq) E(pUq) A(pUq) A(pUq)

例 (p.110) EF ( q  EX(q))が成り立つのは? EX(q) EX(q) q  EX(q) p,q p q s1 s2 s3 s4 q EX(q) EX(q) q  EX(q) EF(q  EX(q)) EF(q  EX(q))

簡易アービタ AG(oa  ob) AG(ib  AF(ib  ob)) 常に,oaとobが同時に1にならない どの状態でも,ibが1ならば,いずれ必ず,ibが0になるか,obが1になる ia FF1 oa ob FF2 ib

SMVプログラム 例1: 3ビットカウンタ MODULE main VAR bit0 : counter_cell(1); bit1 : counter_cell(bit0.carry_out); bit2 : counter_cell(bit1.carry_out); SPEC AG AF bit2.carry_out !EF bit2.carry_out MODULE counter_cell(carry_in) value : boolean; ASSIGN init(value) := 0; next(value) := value + carry_in mod 2; DEFINE carry_out := value & carry_in;

SMVプログラム 例2: 非同期システム 1つが非決定的に選ばれて実行 どのプロセスも無限に多くの回数選ばれる MODULE main VAR gate1: process inverter(gate3.output); gate2: process inverter(gate1.output); gate3: process inverter(gate2.output); SPEC (AG AF gate1.output) & (AG AF !gate1.output) MODULE inverter(input) output: boolean; ASSIGN init(output) := 0; next(output) := !input; FAIRNESS running どのプロセスも無限に多くの回数選ばれる