計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1...

12
Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail: [email protected] Ichiro Satoh 並行・並列・分散計算を 論理学で扱えるのか 論理学は対象(例えばシステム実装)が性質(例えばシステム仕様)を 満足するかを検証するときに有用 並行・並列・分散計算は非決定性があり、タイミングにより動作がかわる 通常の(古典)論理体系(例:命題論理や述語論理)は決定的な世界、 さらに止まった世界(タイミングなどは扱わない) 通常の(古典)論理体系で並行・並列・分散計算を扱うのは難しい 様相論理(時相論理)を利用することが多い プロセスA プロセスB プロセスC システム実装 システム仕様 通信するかもしれない(可能性) 通信するかもしれない(可能性) 受信順による非決定性 Ichiro Satoh 正しいシステムを作るためには 検証とは、事実を確かめること(法律用語的には) ソフトウェアの検証 実装したソフトウェアが仕様を満足するかを調べること 類似技術:ソフトウェアテスト コンピュータのプログラムを実行して、正しく動作するかを確認す る作業 ソフトウェア検証は(プログラムを実行することなく)プログラムを 何らかの方法で解析して正しく動作するかを確認 Ichiro Satoh 検証 全体検証 システムと当たられた全体性質(仕様)と一致を判定 例:プロセス計算の等価関係 部分検証 システムがある性質を満足することを判定 例:モデル検査(Model Checking) システム 部分性質 全体性質(仕様) システム

Transcript of 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1...

Page 1: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

1

Ichiro Satoh

計算モデル特論

国立情報学研究所

佐藤一郎 E-mail: [email protected]

Ichiro Satoh

並行・並列・分散計算を 論理学で扱えるのか n  論理学は対象(例えばシステム実装)が性質(例えばシステム仕様)を 満足するかを検証するときに有用

n  並行・並列・分散計算は非決定性があり、タイミングにより動作がかわる

n  通常の(古典)論理体系(例:命題論理や述語論理)は決定的な世界、さらに止まった世界(タイミングなどは扱わない)

n  通常の(古典)論理体系で並行・並列・分散計算を扱うのは難しい n  様相論理(時相論理)を利用することが多い

プロセスA プロセスB プロセスC

システム実装 システム仕様

通信するかもしれない(可能性)

通信するかもしれない(可能性)

受信順による非決定性

Ichiro Satoh

正しいシステムを作るためには

n  検証とは、事実を確かめること(法律用語的には)

n  ソフトウェアの検証 n  実装したソフトウェアが仕様を満足するかを調べること

n  類似技術:ソフトウェアテスト n  コンピュータのプログラムを実行して、正しく動作するかを確認する作業

n  ソフトウェア検証は(プログラムを実行することなく)プログラムを何らかの方法で解析して正しく動作するかを確認

Ichiro Satoh

検証

n  全体検証 n  システムと当たられた全体性質(仕様)と一致を判定

n  例:プロセス計算の等価関係

n  部分検証 n  システムがある性質を満足することを判定

n  例:モデル検査(Model Checking)

システム

部分性質

全体性質(仕様) =

システム ⊃

Page 2: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

2

Ichiro Satoh

モデル検査

n  システムやプログラムの動作を表すグラフ(例:状態機械)に対して、調べたい性質(時相論理で記述)の成立するかを判定する

設計

性質(仕様)

状態機械

設計誤り

Ichiro Satoh

モデル検査の手順

n  システム全体の状態遷移グラフを構成 n  各状態遷移グラフの積(カルテシアン積) n  到達不能状態とアークの削除

n  検証手法 n  調べたい性質を状態遷移に従って状態間を移動

n  到達した各状態で性質が成立するかを判定

n  様相論理(時相論理) n  検証したい性質の記述に時相論理を利用 することが多い

状態グラフ

グラフの探索

Ichiro Satoh

例題:踏切

n  列車が近づくと踏切(ゲート)をおろす

App1 App2 Exit far near on far

列車

ゲート

ゲート(raise, up, lower, down)

Ichiro Satoh

例題:列車の状態遷移

n  列車の状態遷移図

far near App1

on App2 Exit

up lower App1

raise

App2

Exit

down

Exit

Exit

App2

App2

App1

App2 App1

App1

Exit

Page 3: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

3

Ichiro Satoh

検証

n  プログラムが満足すべき性質 n  safety : 初期状態から到達可能な状態Sで常に条件P(S)が成り立つ (always P)

n  progress : 初期状態から有限回の遷移後に条件Qが成り立つ(eventually Q)

n  モデルチェッキング(モデル検査) n  プログラムの正しさの検査=

n  状態遷移グラフ(モデル)上で上記が満たされているかどうかの検査

Ichiro Satoh

様相論理

n  時間に関する様相を扱う論理体系(様相論理)

n  通常の(古典)論理体系(例:命題論理や述語論理)は真偽が明確な言明、または演繹できることが前提であり、現実世界とミスマッチ

n  現実世界における可能性や必然性

n  様相論理 n  「~でなければならない」「~でありうる」「~べきである」といった可能性や必然性に関わる論理体系

n  必然性演算子□:「~は必然的である」ことを、 n  可能性演算子◇:「~は可能である」ことを表す

Ichiro Satoh

様相論理式(命題)

φ ::= P | ¬P ¦ φ∧φ ¦ φ∨φ ¦ □φ φは必然的

¦ ◇φ φは可能である

P: 原子論理式

Ichiro Satoh

様相論理

n  必然性と可能性の論理 n  確実性: ~でなければならない  ~かもしれない

n  時相論理 n  時間: いつでも~である ~であるときがある   

n  知識と信念の論理 n  信念: ~を知っている ~を信じている

n  位置論理 n  場所: どこでも~である   あるところで~である

◇P ☐P

Page 4: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

4

Ichiro Satoh

時相論理

n  時相論理とは n  状態の遷移や時間の経過の観点よりシステムの性質を記述するための論理体系

n  代表的形式 n  線形時間時相論理

n  LTL(Linear Time Temporal Logic) n  分岐時間時相論理

n  CTL(Computation Tree Logic) n  プロセス論理 n  µ計算(µ-calculus)

Ichiro Satoh

プロセス論理

n  Hennessy-Milner論理 n  構文:

P ::= true | false | P ∧ Q | ¬P | <a> | [a]

n  非形式的意味

n  true 真を表す n  false 偽を表す n  P ∧ Q PかつQ n  ¬P Pの否定 n  <a> アクションaに関する可能様相演算子 n  [a] アクションaに関する必然様相演算子

Ichiro Satoh

プロセス論理の充足関係

n  プロセス論理式によるプロセス表現 n  P |= F とはプロセスPは性質をFを満足(充足)

n  充足関係|= (|= ⊆ P×F)は以下のように定義される n  P |= <α>F とは ∃P’:P–α→P’ かつ P’ |= F n  P |= ¬F とは P |= F (つまりP|=Fとなることがない) n  P |= F∧G とは P |= F かつ P |= G

Ichiro Satoh

プロセス論理の例

n  論理学手法を利用したプロセスの仕様記述と証明

a.(b.0+c.0) |= <a>(<b>true ∧<c>true) a.b.0+a.c.0 |= <a><b>true ∧ <a><c>true a.b.0+a.c.0 |= <a>(<b>true ∧<c>true)

a.(b.0+c.0) a.b.0+a.c.0

b.0+c.0 b.0 c.0

a a

b c

a

b c

Page 5: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

5

Ichiro Satoh

可能世界意味論

n  現実世界は無数の可能世界のなかの一つであり、世界によって論理式の解釈は違ってもよい

n  真なる命題とは、現実世界において真となる命題

n  可能な命題とは、少なくとも一つの可能世界において真となる命題

n  必然的な命題とは、全ての可能世界で真となる命題

n  不可能な命題とは、全ての可能世界で偽となる命題

n  偶然的な命題とは、それが真となる可能世界も、偽となる可能世界も存在する命題

Ichiro Satoh

可能世界意味論

n  □α … どこでもαである

n  ◇α … どこかではαである

α

α

α

α

α α

場所1

場所2 場所3

場所n 現在の場所

¬ α

¬ α

¬ α

¬ α

α ¬ α

場所1

場所2 場所3

場所n 現在の場所

Ichiro Satoh

可能世界意味論

☐P ある可能世界wにおいて「☐P」とは、wから到達可能な 可能世界のすべてにおいても「P」が真であるとき

◇P ある可能世界wにおいて「◇P」とは、wから到達可能な

可能世界のうち少なくとも一つで「P」が真であるとき

P:F

可能世界w P:T

P:T

P:T

P:F P:T

P:T

P:T

P:F

可能世界w P:T

P:T

P:F

P:F P:T

P:F

P:F

Ichiro Satoh

状態グラフ (クリプキ構造) n 状態集合: S

n  S = {s1, s2, s3, s4} n 初期状態集合: I ⊆S

n  I = {s1} n 遷移関係: R ⊆S×S (注.必ず次状態が存在するものとする)

n  R = {(s1, s2), (s2, s3), (s2, s4), (s3, s3), (s3, s4), (s4, s4)} n 原子命題の割当: L: S ↦ 2A

n  原子命題の集合 A = {p, q}

s1 s2 s3 s4

q p,q p q

K = 〈S, R, L〉

Page 6: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

6

Ichiro Satoh

可能世界意味論

n  □P … いつでもPである

n  ◇P … いつかはPである

P P P P P P

時刻1 時刻3 時刻n

現在の時刻

¬ P ¬ P ¬ P P ¬ P ¬ P

時刻1 時刻3 時刻n

現在の時刻

Ichiro Satoh

時相論理

n 線形時相論理 n  次の瞬間(ステップ)は高々一つ n  一本の無限の時系列

n 分岐時相論理 n  次の瞬間(ステップ)は一つ以上 n  無限の時系分岐列

Ichiro Satoh

命題線形時間時相論理式

PLTL(命題線形時間時相論理)

φ ::= P | ¬P ¦ φ∧φ ¦ φ∨φ ¦ ○φ 次の状態でφが真

¦ □φ 今後φが常に真

¦ ◇φ 将来のいずれかの時点で真

P: 原子論理式

Ichiro Satoh

線形時相論理の可能世界意味論

n  πi |= □α … πi移行は常にαである

n  ◇α … いつかはαである

n ○α … 次の時点はαである

α α α α ¬ α α 時刻i 時刻πi+1 時刻πi+2 時刻πi+3 時刻πi+4 時刻πi-1

現在の時刻

¬ α ¬ α ¬ α α ¬ α ¬ α 時刻i 時刻πi+1 時刻πi+2 時刻πi+3 時刻πi+4 時刻πi-1

現在の時刻

¬α α ¬α ¬α ¬ α ¬α 時刻i 時刻πi+1 時刻πi+2 時刻πi+3 時刻πi+4 時刻πi-1

現在の時刻

Page 7: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

7

Ichiro Satoh

意味論 n  |= ¬P iff P ∈ L(s0) n  |= P iff P ∈ L(s0) n  |= φ1∧φ2 iff π |= φ1 and π |= φ2 n  |= φ1∨φ2 iff π |= φ1 or π |= φ2 n  ¦= ○φ iff π1 |= φ n  ¦= □φ iff πi ¦= φ for any i³0 n  ¦= ◇φ iff πi ¦= φ for some i³0

n  |= φ --- π は φ のモデルである。

π  ¦= □φ iff π ¦= φ∧○□φ π  ¦= ◇φ iff π ¦= φ∨○◇φ

Ichiro Satoh

分岐時相論理

n  CTL式の真偽値 n  状態グラフ(state graph)上の状態とそこから始まるパスを考える

s1! s2! s3! s4!

s2!s3!

s3!

s3!

s4!s4! s4!

s4! s4! s4!...!

...!

...! ...!

Ichiro Satoh

分岐時相論理の解釈

n  CTL式の真偽値 n  CTL式 が状態sで成立する( がsで真):

n  原子命題, ∨,∧,¬ (not), → :その状態だ けで真偽値が決まる

!=s

s1! s2! s3! s4!p! q!p,q!q!

Ichiro Satoh

分岐時相論理

Computational Tree Logic (CTL) n  シンタックス (f,g はCTL式)

n  原子命題 atomic proposition n  ¬f, f ∧ g , f ∨ g , f → g n  EXf, EFf, EGf, E(f Ug) n  AXf, AFf, AGf, A(fUg)

E: あるパスで A: すべてのパスで F: いずれ G: ずっと U: ~まで

s2

s3 s4

s3 s4

s4

s4

s3 s4 s4

計算木

パス

Page 8: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

8

Ichiro Satoh

CTL例

n  EXf n  fがある次状態で成り立つ

n  AXf n  fがすべての次状態で成り立つ

f

f f

s1 s2 s3 s4

q p,q p q

EXp EXp EXp AXp

EXq, AXqは? Ichiro Satoh

CTL例

n  EFf n  fがあるパスでいずれ成り立つ

n  AFf n  fがすべてのパスでいずれ成り立つ

f

f

f

f

s1 s2 s3 s4 q p,q p q

EFp AFp

EFp AFp

EFp AFp

Ichiro Satoh

CTL例

n  EGf n  fがあるパスで常に成り立つ

n  AGf n  fがすべてのパスで常に成り立つ

f

f

f f

s1 s2 s3 s4

q p,q p q

EGp EGp

Ichiro Satoh

CTL例

n  E(f Ug) n あるパスについて,どこかでgが 成り立ち,それまでfが成り立ち続けている

n  A(f Ug) n すべてのパスについて,...

g

f f

f f

g f

g

g

s1 s2 s3 s4 q p,q p q

E(pUq) E(pUq) E(pUq) E(pUq) A(pUq) A(pUq)

Page 9: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

9

Ichiro Satoh

例題:踏切

n  遷移系が満たすべき性質を時相論理 (Temporal Logic)で記述

n  Safety: 今からずっと、 今からずっと、○○であり続ける であり続ける n  AG (on AG (on ⇒ down) down) n  いつでも、電車がゲート上にあれば、ゲートはおりている いつでも、電車がゲート上にあれば、ゲートはおりている

n  AG AX true AG AX true n  システムがデッドロックしない

n  Liveness:将来のある時点で、 ○○ が成立する n  AG( down AG( down ⇒ AF up) AF up) n  ゲートがおりていれば、いつかはゲートがあがる ゲートがおりていれば、いつかはゲートがあがる

Ichiro Satoh

例題:列車の状態遷移

n  列車の状態遷移図

far near App1

on App2 Exit

up lower App1

raise

App2

Exit

down

Exit

Exit

App2

App2

App1

App2 App1

App1

Exit

Ichiro Satoh

相互排除問題

n  二つのプロセス間で共有変数を排他的にアクセス n  各プロセスは三つの状態をもつ

n  Non-critical (N) n  Trying (T) n  Critical (C)

n  排他制御するためのフラグを導入(S0またはS1) n  初期状態両プロセスともにNon-critical状態(N1 N2)、フラグはS0とする

N1 → T1 T1 ∧ S0 → C1 ∧ S1 C1 → N1 ∧ S0

N2 → T2 T2 ∧ S0 → C2 ∧ S1 C2 → N2 ∧ S0

||

Ichiro Satoh

相互排除問題

N1N2S0

C1N2S1 T1T2S0

N1T2S0 T1N2S0

N1C2S1

T1C2S1 C1T2S1

K ╞ AG EF (N1 ∧ N2 ∧ S0)

No matter where you are there is always a way to get to the initial state

Page 10: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

10

Ichiro Satoh

相互排除問題

N1N2S0

C1N2S1 T1T2S0

N1T2S0 T1N2S0

N1C2S1

T1C2S1 C1T2S1

K ╞ AG EF (N1 ∧ N2 ∧ S0)

Ichiro Satoh

相互排除問題

N1N2S0

C1N2S1 T1T2S0

N1T2S0 T1N2S0

N1C2S1

T1C2S1 C1T2S1

K ╞ AG EF (N1 ∧ N2 ∧ S0)

Ichiro Satoh

相互排除問題

N1N2S0

C1N2S1 T1T2S0

N1T2S0 T1N2S0

N1C2S1

T1C2S1 C1T2S1

K ╞ AG EF (N1 ∧ N2 ∧ S0)

Ichiro Satoh

相互排除問題

N1N2S0

C1N2S1 T1T2S0

N1T2S0 T1N2S0

N1C2S1

T1C2S1 C1T2S1

K ╞ AG EF (N1 ∧ N2 ∧ S0)

Page 11: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

11

Ichiro Satoh

相互排除問題

N1N2S0

C1N2S1 T1T2S0

N1T2S0 T1N2S0

N1C2S1

T1C2S1 C1T2S1

K ╞ AG EF (N1 ∧ N2 ∧ S0)

Ichiro Satoh

状態爆発問題

n  「モデル規模の増大にともない,探索すべき状態数が急激に増大する」という問題

状態数10の構成要素10個からなるシステム 状態の総数 1010 = 100億

X

Ichiro Satoh

状態削減手法

n  部分順序簡約(Partial Order Reduction) n  遷移の独立性を考慮して検証する性質に無関係な状態を判断することで計算量を削減する手法

n  例.SPIN

n  記号モデル検査 n  論理関数で状態集合や遷移関係を表し,それらの操作によって検証を行う手法

n  例.SMV, NuSMV

Ichiro Satoh

アルゴリズムと計算可能性

n  検証命題を記述する論理体系ごとにアルゴリズムが相違

n  CTL論理: n  効率的なアルゴリズムが存効率的なアルゴリズムが存在

n  LTL論理: n  特定の実行系列に関する非常に複雑な命題を記述できるが、式のサイズに関して指数関数的にコストが上がるアルゴリズム

Page 12: 計算モデル特論ichiro-satoh.jp/lectures/model/2013/model-checking.pdf · 2013. 6. 16. · 1 Ichiro Satoh 計算モデル特論 国立情報学研究所 佐藤一郎 E-mail:

12

Ichiro Satoh

アルゴリズムと計算可能性

n  PSPACE-complete n  問題のサイズに対して多項式オーダのメモリを使用して解ける問題の中で最も難しい問題のクラスに属するということである

n  CTL* n  分岐時間と線形時間の操作を組み合わせた論理 n  LTLとアルゴリズム的複雑さが等しい