Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
様相論理と時相論理
Kripke構造
• K = ⟨S, R, L⟩S: 状態の集合(無限かもしれない)
R: 状態間の遷移関係
R ⊆ S×SL: 状態から命題記号の集合への写像
L(s) は、状態 s∈S において成り立つ
命題記号の集合を与える。
Kripke構造
• K = ⟨S, R, L⟩• G = ⟨S, R⟩
有向グラフ
Kripke構造
• K = ⟨S, R, L⟩• L : S→2Atom
Atom : 命題記号の
全体P
Q
Q
Q
P, Q P
Atom = {P, Q}
様々なKripke構造
• 木
• 森
• 無限木
P
Q
Q Q
P, Q
Q P
Q P,Q
様相論理式
ϕ, ψ ::= P 命題記号
| ¬ϕ 否定
| ϕ∧ψ 連言
| ϕ∨ψ 選言
| □ϕ 必然
| ◇ϕ 可能
意味論
s |= P iff P ∈ L(s)s |= ¬ϕ iff not s |= ϕs |= ϕ∧ψ iff s |= ϕ and s |= ψs |= ϕ∨ψ iff s |= ϕ or s |= ψs |= □ϕ iff t |= ϕ for any t s.t. R(s, t)s |= ◇ϕ iff t |= ϕ for some t s.t. R(s, t)
◇ϕ は ¬□¬ϕ に同値。
意味論
□Q◇(P∧Q)□◇P
P
Q
Q
Q
P, Q P
★で成り立っているのは?
★
P
Q
Q
Q
P, Q P
1. □Q2. ◇(P∧Q)3. □◇P
★で成り立っているのは?
★
P
Q
Q
Q
P, Q P
1. □Q2. ◇(P∧Q)3. □◇P
★で □Q は成り立っている?
★
P
Q
Q
Q
P, Q P Y
es No
0%0%
1. Yes2. No
様々な様相論理
• 以上は最小様相論理 K• 遷移関係を限定
– 反射的 T / 推移的 K4• 再帰的な命題
– 計算木論理・様相µ計算
• 多重の様相・様相(遷移関係)の演算– ブール論理・動的論理
• グラフ上の経路による解釈– 線形時間時相論理
• グラフを木に限定
充足可能性と有限モデル性
• 様相論理式ϕが充足可能
– あるKripke構造 K とその状態 s が存在して、
s |= ϕ– K を ϕ のモデルという。
• 最小論理においては、
充足可能な論理式は有限モデルを持つ。
• しかも、有限の木モデルを持つ。
様相論理の木モデル性
• 一般に、Kripke構造(グラフ)をノード s から
展開すると(無限の)木が得られる。
• s において論理式が充足可能ならば、
展開した木の根においても充足可能。P
Q
Q Q
P, Q
Q P
Q P,QP
Q
Q
Q
P, QP
ss
s
時相論理(Temporal Logic)• 状態の遷移や時間の経過の観点より
システムの性質を記述するための論理体系
• 線形時間時相論理
– LTL(Linear Time Temporal Logic)• 分岐時間時相論理
– CTL(Computation Tree Logic)
– μ計算(µ-Calculus)• モデル検査
– 時相論理で表現された性質を
システムが満たすかどうかを検査すること
例:Petersonのアルゴリズム
me = 0, 1you = 1, 0for (;;) {
flags[me] = true;turn = you;while (flags[you] == true) {
if (turn != you) break;}// the critical sectionflags[me] = false;// the idle part
}
Petersonのアルゴリズム
0: flags[me] = true;1: turn = you;2: if (flags[you] != true) goto 4;3: if (turn != you) goto 4; else goto 2;4: critical section;5: flags[me] = false;6: either goto 6 or goto 0;
• 状態:(pc0, pc1, flags[0], flags[1], turn)– pc0, pc1: 0..6– flags[0], flags[1]: {true, false}– turn: {0, 1}
(pc0, pc1, flags[0], flags[1], turn) = (2,2,t,t,1)から遷移可能な状態は?
0: flags[me] = true;1: turn = you;2: if (flags[you] != true) goto 4;3: if (turn != you) goto 4; else goto 2;4: critical section;5: flags[me] = false;6: either goto 6 or goto 0; (2
,4,t,t
,1)
(3,2,
t,t,1)
(4,2,
t,t,1)
0% 0%0%
1. (2,4,t,t,1)2. (3,2,t,t,1)3. (4,2,t,t,1)
(pc0, pc1, flags[0], flags[1], turn) = (3,2,t,t,1)から遷移可能な状態は?
0: flags[me] = true;1: turn = you;2: if (flags[you] != true) goto 4;3: if (turn != you) goto 4; else goto 2;4: critical section;5: flags[me] = false;6: either goto 6 or goto 0; (2
,2,t,t
,1)
(3,4,
t,t,1)
(4,2,
t,t,1)
0% 0%0%
1. (2,2,t,t,1)2. (3,4,t,t,1)3. (4,2,t,t,1)
状態遷移系について検証すべき性質
• 安全性(safety)
好ましくないことが決して起こらないこと
• 活性(liveness)好ましいことが必ず起こること
• 活性が成り立つためには公平性が必要
公平性が成り立たないと、
特定のプロセスばかり実行されてしまう。
• 公平性(fairness)の仮定
– 無条件の公平性(unconditional fairness)– 弱い公平性(weak fairness)– 強い公平性(strong fairness)
次のうち活性はどれか?
デッドロックが起こらない。
開こうとするファイル...
開いたファイルは必ず...
配列のインデックスは...
0% 0%0%0%
1. デッドロックが起こらない。
2. 開こうとするファイルは必ず存在する。
3. 開いたファイルは必ず閉じられる。
4. 配列のインデックスは常にその範囲内に納まっている。
Petersonのアルゴリズムの場合• 安全性
二つのプロセスが同時にはcritical sectionに入らない。
pc0=pc1=4にはならない。
• 活性(飢餓が起きないこと)
プロセスがヘッダ部に入ったら、
必ずいつかはcritical sectionに入ることができる。
• 活性が成り立つためには公平性が必要
どちらのプロセスも必ず進んでいなければならない。
ここでは,critical sectionで無限ループに陥らないと仮定。
• 公平性(fairness)の仮定
どちらのプロセスも無限回実行される。
無条件の公平性
Petersonのアルゴリズムの正当性の時相論理による表現
• 安全性
– LTL(Linear Time Temporal Logic)G(¬(pc0=4 ∧ pc1=4))
– CTL(Computation Tree Logic)
AG(¬(pc0=4 ∧ pc1=4))
• 活性(飢餓が起きないこと)
– LTL G(pc0=0 ⊃ F(pc0=4))– CTL AG(pc0=0 ⊃ AF(pc0=4))
• 公平性(fairness)の仮定
– LTL G(pc0=0 ⊃ F(pc0=1)) ∧ ...– LTLならば書けるが、CTLでは書けない。
公平性(fairness)の仮定
• 無条件の公平性(unconditional fairness)– どのプロセスもいつかは必ず実行される。
• 弱い公平性(weak fairness)– 実行可能であり続けるプロセスは、
いつかは必ず実行される。
– 実行されないにもかかわらず、
連続的に実行可能で有り続けることはない。
• 強い公平性(strong fairness)– 実行されないにもかかわらず、
断続的にも実行可能で有り続けることはない。
Javaの場合public class LockTest extends Thread {
static Object lock = new Object ();public void run () {
while ( true ) {requestLock ();synchronized ( lock ) {
acquireLock ();}}}}
public static void main ( String [] args ) {LockTest th1 = new LockTest ();LockTest th2 = new LockTest ();th1 . start ();th2 . start ();
}static public void requestLock () {}static public void acquireLock () {}}
どちらのスレッドも ackquireLock を呼べるためには?
弱い公平性で十分である
強い公平性が必要である
無条件の公平性が要...
0% 0%0%
1. 弱い公平性で十分である
2. 強い公平性が必要である
3. 無条件の公平性が要請される
計算木論理(Computation Tree Logic)
ϕ, ψ ::= ...| AGϕ globally on any path
| AFϕ finally on any path
| EGϕ globally on some path
| EFϕ finally on some path
□はAX、◇はEXと書く。
• 分岐時間時相論理(branching-time temporal logic)の一種
経路(path)について
• 計算木論理では、無限の経路を考える。
• 行き止まりの状態があると面倒なので、
どの状態からも次の状態があると仮定。
• たとえば、終了状態には、便宜上、
自分自身への遷移を付加する。
意味論
s |= AGϕ iffs から到達できる任意の状態 t において
t |= ϕs |= AFϕ iff
s から始まる任意の経路上に、
t |= ϕ を満たす状態 t が存在する。
★で成り立っているのは?
★
P
Q
Q
Q
P, Q P, Q
1. AG P2. AG ¬P3. AF Q4. AF ¬Q
意味論
s |= EFϕ iffs から到達できる状態 t が存在して
t |= ϕs |= EGϕ iff
s から始まる経路が存在して、
その経路上の任意の状態 t において
t |= ϕ
★で成り立っているのは?
★
P
Q
Q
Q
P, Q P, Q
1. EF (P∧¬Q)2. EF AG P3. EG Q4. EG ¬Q
★で AF AG Q は成り立っている?
★
P
Q
Q
Q
P, Q P, Q Y
es No
0%0%
1. Yes2. No
状態集合の計算• 大域的なモデル検査
• [[φ]] = {s∈S | s |= φ } とおく。
– [[P]] = { s∈S | P∈L(s) }– [[¬ϕ]] = S − [[ϕ]]– [[ϕ∧ψ]] = [[ϕ]] ∩ [[ψ]]– [[ϕ∨ψ]] = [[ϕ]] ∪ [[ψ]]– [[□ϕ]] = { s∈S | 任意の t∈S に対して
R(s,t) ならば t∈[[φ]] }– [[◇ϕ]] = { s∈S | ある t∈S が存在して
R(s,t) かつ t∈[[φ]] }
状態集合の計算
• [[EFφ]] の計算
X := ∅loop
Y := [[φ]] ∪{ s∈S | ある t∈S が存在し R(s,t) かつ t∈X }
if Y==X then breakX := Y
end• Y := の右辺を f(X) とおいたとき、
X = f(X) を満たす最小の X を求めている。
EF P
P
Q
Q
Q
P, Q P, Q
EF P
P
Q
Q
Q
P, Q P, Q
EF P
P
Q
Q
Q
P, Q P, Q
状態集合の計算
• [[EGφ]] の計算
X := Sloop
Y := [[φ]] ∩{ s∈S | ある t∈S が存在し R(s,t) かつ t∈X }
if Y==X then breakX := Y
end• Y := の右辺を f(X) とおいたとき、
X = f(X) を満たす最大の X を求めている。
EG Q
P
Q
Q
Q
P, Q P, Q
EG Q
P
Q
Q
Q
P, Q P, Q
状態集合の計算
• [[AGφ]] の計算
X := Sloop
Y := [[φ]] ∩{ s∈S | 任意の t∈S は R(s,t) ならば t∈X }
if Y==X then breakX := Y
end• Y := の右辺を f(X) とおいたとき、
X = f(X) を満たす最大の X を求めている。
AG Q
P
Q
Q
Q
P, Q P, Q
AG Q
P
Q
Q
Q
P, Q P, Q
AG Q
P
Q
Q
Q
P, Q P, Q
状態集合の計算
• [[AFφ]] の計算
X := ∅loop
Y := [[φ]] ∪{ s∈S | 任意の t∈S は R(s,t) ならば t∈X }
if Y==X then breakX := Y
end• Y := の右辺を f(X) とおいたとき、
X = f(X) を満たす最小の X を求めている。
AF AG Q
P
Q
Q
Q
P, Q P, Q
AF AG Q
P
Q
Q
Q
P, Q P, Q
AF AG Q
P
Q
Q
Q
P, Q P, Q
AF AG Q
P
Q
Q
Q
P, Q P, Q
まとめ
• [[EFφ]] = [[φ ∨ ◇EFφ]]– 最小
• [[EGφ]] = [[φ ∧ ◇EGφ]]– 最大
• [[AGφ]] = [[φ ∧ □AGφ]]– 最大
• [[AFφ]] = [[φ ∨ □AFφ]]– 最小
まとめ
• [[EFφ]] = [[φ ∨ ◇EFφ]]– 最小
• [[EGφ]] = [[φ ∧ ◇EGφ]]– 最大
• [[AGφ]] = [[φ ∧ □AGφ]]– 最大
• [[AFφ]] = [[φ ∨ □AFφ]]– 最小
まとめ
• [[EFφ]] = [[φ ∨ ◇EFφ]]– 最小
• [[EGφ]] = [[φ ∧ ◇EGφ]]– 最大
• [[AGφ]] = [[φ ∧ □AGφ]]– 最大
• [[AFφ]] = [[φ ∨ □AFφ]]– 最小
様相µ計算(modal µ-calculus)• 命題変数に対する再帰的定義が可能。
X = ϕ∨◇X最小不動点か最大不動点か?
• 最小不動点の場合
µX. ϕ∨◇X EFϕ に一致
• 最小不動点の場合
恒真になってしまう。
• 最大不動点の例
νX. ϕ∧□X AGϕ に一致
AFφ を表すのは?
1. µX. ϕ∧◇X2. µX. ϕ∨◇X3. νX. ϕ∧◇X4. νX. ϕ∨◇X5. µX. ϕ∧□X6. µX. ϕ∨□X7. νX. ϕ∧□X8. νX. ϕ∨□X
線形時間時相論理(linear-time temporal logic)
• Kripke構造上の経路において
論理式を解釈する。
• 計算木論理においても、部分的に
経路の概念が入っている。
ここから先はずっと線形時間時相論理の話。
Kripke構造
• K = ⟨S, R, L⟩S: 状態の集合
R: 状態間の遷移関係
R ⊆ S×SL: 状態から原子論理式の集合への写像
L(s) は、状態 s∈S において成り立つ
原子論理式の集合を与える。
状態の無限列 --- 実行経路
• π=π0,π1,π2,…πi ∈ S (∀i≥0)R(πi, πi+1) (∀i≥0)
• suffixπi =πi,πi+1,πi+2,…
論理式
ϕ, ψ ::= P 命題記号
| ¬ϕ 否定
| ϕ∧ψ 連言
| ϕ∨ψ 選言
| ○ϕ (Xϕ)
| □ϕ (Gϕ)
| ◇ϕ (Fϕ)untilは、ここでは、考えない。
意味論
π |= P iff P ∈ L(π0)π |= ¬ϕ iff not π |= ϕπ |= ϕ∧ψ iff π |= ϕ and π |= ψπ |= ϕ∨ψ iff π |= ϕ or π |= ψπ |= ○ϕ iff π1 |= ϕπ |= □ϕ iff πi |= ϕ for any i≥0π |= ◇ϕ iff πi |= ϕ for some i≥0
π |= ϕ --- π は ϕ のモデルである。ϕ は π において成り立つ。
○ と ◇ の意味が、これまでと違うことに注意。
この経路で成り立っているのは?
P
Q
Q
Q
P, Q P, Q
1. □P2. □¬P3. ◇(P∧Q)4. ◇(P∧¬Q)
◇□Q は成り立っているか?
P
Q
Q
Q
P, Q P, Q Y
es No
0%0%
1. Yes2. No
◇□P は成り立っているか?
P
Q
Q
Q
P, Q P, Q Y
es No
0%0%
1. Yes2. No
□◇P は成り立っているか?
P
Q
Q
Q
P, Q P, Q Y
es No
0%0%
1. Yes2. No
□◇P
• π |= □◇P が成り立っていると
π |= ◇P なので、πi |= P を満たす i が存在。
• π |=□◇P なので πi+1 |= ◇P が成り立ち、
πj |= P を満たす j>i が存在。
• 同様にして、 πi |= P を満たす
無限個の i が存在することがわかる。
• 逆に、 πi |= P を満たす無限個の i が
存在すれば、 π |= □◇P が成り立つ。
公平性の表現
• E をあるプロセスが実行可能であること、
R をそのプロセスが実行されていることを
表す。
• 無条件の公平性
□◇R• 弱い公平性
□◇(¬Ε ∨ R) □◇(Ε ⊃ R)• 強い公平性
¬□◇Ε ∨ □◇ R □◇Ε ⊃ □◇ R
□ と ◇ と ¬
π |= ¬□ϕ iff π |= ◇¬ϕπ |= ¬◇ϕ iff π |= □¬ϕ
論理式(正形式)
ϕ, ψ ::= P| ¬P| ϕ∧ψ| ϕ∨ψ| ○ϕ| □ϕ| ◇ϕ
任意の論理式に対して、それと同値な正形式が存在する。
¬□(a ⊃ ◇b) と同値な正形式は?
1. □(a ∧ ◇¬b)2. □(a ∨ ◇¬b)3. ◇(a ∧ □¬b)4. ◇(a ∨ □¬b)5. □(¬a ∧ ◇b)6. □(¬a ∨ ◇b)7. ◇(¬a ∧ □b)8. ◇(¬a ∨ □b)
□ と ◇ と ○
π |= □ϕ iff π |= ϕ∧○□ϕπ |= ◇ϕ iff π |= ϕ∨○◇ϕ
cl(ϕ0): ϕ0の閉包
以下の性質を満たす最小の(論理式の)集合
• ϕ0∈cl(ϕ0)• ϕ1∧ϕ2∈cl(ϕ0) ならば、 ϕ1∈cl(ϕ0) かつ ϕ2∈ cl(ϕ0)• ϕ1∨ϕ2∈cl(ϕ0) ならば、 ϕ1∈cl(ϕ0) かつ ϕ2∈ cl(ϕ0)• ○ϕ∈cl(ϕ0) ならば、 ϕ∈cl(ϕ0)• □ϕ∈cl(ϕ0) ならば、 ϕ∧○□ϕ∈cl(ϕ0)• ◇ϕ∈cl(ϕ0) ならば、 ϕ∨○◇ϕ∈cl(ϕ0)• 「 ¬P∈cl(ϕ0) ならば、 P∈cl(ϕ0)」という条件は
なくてもよい。
• ϕ0 = ◇(a ∧ □¬b)• cl(ϕ0) :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬b○◇(a ∧ □¬b)a□¬b¬b ∧ ○□¬b¬b○□¬b
ϕ0型
• Γ⊆cl(ϕ0)• ϕ1∧ϕ2∈Γ ならば、 ϕ1∈Γ かつ ϕ2∈Γ• ϕ1∨ϕ2∈Γ ならば、 ϕ1∈Γ または ϕ2∈Γ• P∈Γ かつ ¬P∈Γ となることはない
• □ϕ∈Γ ならば、 ϕ∧○□ϕ∈Γ• ◇ϕ∈Γ ならば、 ϕ∨○◇ϕ∈Γ
ϕ0型の選択と ϕ0型間の遷移
• ϕ0 を含む極小のϕ0型をすべて選ぶ。
• ϕ0型 Γ⊆cl(ϕ0) が選ばれたら、
{ϕ∈cl(ϕ0) | ○ϕ∈Γ} を含む極小のϕ0型
Γ′ をすべて選ぶ。
• Γ → Γ′ とおく(遷移)。
• 以上の繰り返し。
• Γア :◇(a ∧ □¬b)
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬b
• Γイ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b
• Γイ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b¬b ∧ ○□¬b
• Γイ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b• Γイ :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
Γア からの遷移先に含まれるのは?
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
1. a 2. □¬b3. ○□¬b4. a ∧ □¬b5. ◇(a ∧ □¬b)
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b• Γイ :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
• Γウ :□¬b
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b• Γイ :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
• Γウ :□¬b¬b ∧ ○□¬b
• Γア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b• Γイ :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)
○◇(a ∧ □¬b)
• Γウ :□¬b¬b ∧ ○□¬b¬b○□¬b
アから遷移可能なのは?ア :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ない ア アとイ
アとウ アとイとウ イ
イとウ ウ
0% 0% 0% 0%0%0%0%0%
1. ない
2. ア
3. アとイ
4. アとウ
5. アとイとウ
6. イ
7. イとウ
8. ウ
イから遷移可能なのは?ア :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ない ア アとイ
アとウ アとイとウ イ
イとウ ウ
0% 0% 0% 0%0%0%0%0%
1. ない
2. ア
3. アとイ
4. アとウ
5. アとイとウ
6. イ
7. イとウ
8. ウ
ウから遷移可能なのは?ア :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ない ア アとイ
アとウ アとイとウ イ
イとウ ウ
0% 0% 0% 0%0%0%0%0%
1. ない
2. ア
3. アとイ
4. アとウ
5. アとイとウ
6. イ
7. イとウ
8. ウ
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア
イ ウ
モデルの「記号」化
• π=π0,π1,π2,… を ϕ0 のモデルとしたとき、
以下の条件を満たす ϕ0型の無限列
Π = Γ0, Γ1, Γ2, … が存在する。
• ϕ0∈Γ0
• 任意の ϕ∈Γi に対して πi |= ϕ を満たす。
• Γi → Γi+1
• ◇ϕ∈Γi ならば、ある j≥i が存在して ϕ∈Γj
π = π0, π1, π2, π3, π4, π5, π6, π7, …π1 = π1, π2, π3, π4, π5, π6, π7, …
π2 = π2, π3, π4, π5, π6, π7, …π3 = π3, π4, π5, π6, π7, …
π4 = π4, π5, π6, π7, …π5 = π5, π6, π7, …
Π = Γ0, Γ1, Γ2, Γ3, Γ4, Γ5, …
|= ϕ0
∈
|= ○ψ
∈
|= ψ ∈
|= ◇θ ∈
|= θ ∈
ア
イ ウ
逆に…
ϕ0型 Γi ⊆ cl(ϕ0) から成る無限列
Π=Γ0,Γ1,Γ2,… が以上の条件を満たし、
さらに以下の条件を満たせば、
任意の ϕ∈Γi に対して πi |= ϕ が成り立つ。
(特に π |= ϕ0)
• P∈Γi ならば P∈L(πi) である
• ¬P∈Γi ならば P∈L(πi) でない。
ωオートマトン
• 以上の条件を満たす無限列を
特徴付けるため、
ϕ0型 Γ⊆cl(ϕ0) を状態とする
ωオートマトンを構成する。
• 遷移は Γ → Γ′ によって定義。
初期状態
• 特に π |= ϕ0 を満たす π を
求めたいので、
ϕ0∈Γ0 を要請する。
このためには、ϕ0 を含むϕ0型を
初期状態とすればよい。
(複数あり得ることに注意)
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア
イ ウ
ラベル
以下の条件を調べるために、
命題記号とその否定を
状態(ϕ0型)のラベルとして明示。
• P∈Γi ならば P∈L(πi) である
• ¬P∈Γi ならば P∈L(πi) でない。
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア
イ ウ
a
¬b
¬b
経路の条件
• ωオートマトン上の
無限経路 Π=Γ0,Γ1,Γ2,… で、
以下の条件を満たすものを
特徴付けたい。
◇ϕ∈Γi ならば、
ある j≥i が存在して ϕ∈Γj
経路の条件
• 以上の無限経路の条件は、
次のように言い換えることができる。
Π=Γ0,Γ1,Γ2,…は、
各 ◇ϕ∈cl(ϕ0) に対して、
F(◇ϕ) の要素を無限回含む。
• ここで、
F(◇ϕ) = {Γ | ◇ϕ∈Γ または ϕ∈Γ}
F(◇(a ∧ □¬b)) は?ア :
◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
F(◇ϕ) = {Γ | ◇ϕ∈Γ または ϕ∈Γ} ない ア アとイ
アとウ アとイとウ イ
イとウ ウ
0% 0% 0% 0%0%0%0%0%
1. ない
2. ア
3. アとイ
4. アとウ
5. アとイとウ
6. イ
7. イとウ
8. ウ
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)a ∧ □¬ba□¬b¬b ∧ ○□¬b¬b○□¬b
イ :◇(a ∧ □¬b)(a ∧ □¬b) ∨ ○◇(a ∧ □¬b)○◇(a ∧ □¬b)
ウ :□¬b¬b ∧ ○□¬b¬b○□¬b
ア
イ ウ
a
¬bF(◇(a ∧ □¬b)) = {ア, ウ}
¬b
モデル検査
• Kripke構造 K=⟨S, R, L⟩、初期状態 s0∈S、
論理式 ϕ0 に対して、
π0=s0 を満たす ϕ0 のモデル
π=π0,π1,π2,… が存在するか?
これは以下と等価
• ωオートマトン上の無限経路
Π=Γ0,Γ1,Γ2,… で以下の条件を
満たすものが存在するか?
• 各 ◇ϕ∈cl(ϕ0) に対して、
F(◇ϕ) の要素を無限回含む。
• P∈Γi ならば P∈L(πi) である
• ¬P∈Γi ならば P∈L(πi) でない。
同期積
• π の存在と Π の存在を
一度に調べるために、
ωオートマトンと K との「同期積」を作る。
状態: ⟨s, Γ⟩ where {P | P∈Γ} ⊆ L(s){P | ¬P∈Γ}∩ L(s) = ∅
初期状態: ⟨s0, Γ0⟩ それぞれの初期状態の組
遷移: ⟨s, Γ⟩ → ⟨s′, Γ′⟩ iff R(s, s′) and Γ→ Γ′
同期積
a b a
a
¬b
¬b
同期積
a b a
a
¬b
¬b
存在しないのは?
a b a
a
¬b
¬b
1
4 5
32
20% 20% 20%20%20%
同期積
a b a
a
¬b
¬b
存在する遷移は?
a b a
a
¬b
¬b
1
2
34
5 6
17% 17% 17%17%17%17%
同期積
a b a
a
¬b
¬b
同期積
a b
a
¬b
¬b
モデルが存在するための条件
• ϕ0 のモデル π=π0,π1,π2,…が存在する
ための必要十分条件:
同期積における無限経路
⟨π0, Γ0⟩ → ⟨π1, Γ1⟩ → . . . で、各 ◇ϕ∈cl(ϕ0) に対して、
F(◇ϕ) の要素を無限回含むものが
存在する。 ⇔ある種のループの存在
同期積
a b a
a
¬b
¬b
同期積
a b
a
¬b
¬b
ループの条件
• ループは、初期状態から到達可能。
• ループは、各 ◇ϕ∈cl(ϕ0) に対して、
F(◇ϕ) の要素を含む。
• 同期積の強連結成分を求めれば、
上のようなループが存在するか、
判定可能。
レポート課題
• (□◇e ⊃ □◇r) ⊃ □(a ⊃ ◇b) が常に
成り立つことを検証するための
ωオートマトンを構成せよ。
• 以下のKripke構造において、
上記論理式が常に成り立つことを示せ。
a e r b
until
π|= ϕ until ψiff πi |= ψ for some i≥0
andπj |= ϕ for any j<i
release
π|= ϕ release ψiff πi |= ϕ for some i≥0
andπj |= ψ for any j≤i
or πj |= ψ for any j
until と release と ¬
π |= ¬(ϕ until ψ)iff π |= ¬ϕ release ¬ψ
π |= ¬(ϕ release ψ)iff π |= ¬ϕ until ¬ψ
until と release と ○
π |= ϕ until ψiff π |= ψ ∨ ○(ϕ until ψ)
π |= release ψiff π |= ψ ∧ ○(ϕ release ψ)