モデル検査入門
1
Riru Oda @ri5255
セキュリティ・キャンプ2024 全国大会 LT
Slide 2
Slide 2 text
2
Agenda
• モデル検査とは?
• 文献案内
Slide 3
Slide 3 text
3
モデル検査とは?
プログラムが仕様を満たしてることを自動的に検証する技術
Slide 4
Slide 4 text
4
モデル検査とは?
例) 2つのスレッドp, qが一つの共有変数xを読み書きする
While (true) {
x = x + 1;
x = x – 1;
}
仕様: 𝐴𝐺(𝑥 < 2)
全て(All)の実行パスで常に(Globally) x < 2が成り立つ
Slide 5
Slide 5 text
5
モデル検査とは?
例) 2つのスレッドp, qが一つの共有変数xを読み書きする
While (true) {
x = x + 1;
x = x – 1;
}
仕様: 𝐴𝐺(𝑥 < 2)
全て(All)の実行パスで常に(Globally) x < 2が成り立つ
Slide 6
Slide 6 text
6
モデル検査とは?
例) 2つのスレッドp, qが一つの共有変数xを読み書きする
仕様: 𝐴𝐺(𝑥 < 2)
全て(All)の実行パスで常に(Globally) x < 2が成り立つ
While (true) {
lock(“mutex”)
x = x + 1;
x = x – 1;
unlock(“mutex”)
}
Slide 7
Slide 7 text
7
モデル検査とは?
例) 2つのスレッドp, qが一つの共有変数xを読み書きする
仕様: 𝐴𝐺(𝑥 < 2)
全て(All)の実行パスで常に(Globally) x < 2が成り立つ
While (true) {
lock(“mutex”)
x = x + 1;
x = x – 1;
unlock(“mutex”)
}