Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モデル検査入門
Search
r1ru
August 13, 2024
2
95
モデル検査入門
r1ru
August 13, 2024
Tweet
Share
More Decks by r1ru
See All by r1ru
プログラム検証入門
riru
6
1.5k
Symbolic model checker from scratch in Rust
riru
1
480
WasmOS: Wasmを実行する自作Microkernel
riru
0
610
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Why Our Code Smells
bkeepers
PRO
334
57k
Six Lessons from altMBA
skipperchong
26
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
It's Worth the Effort
3n
183
27k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Designing for humans not robots
tammielis
249
25k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.8k
Transcript
モデル検査入門 1 Riru Oda @ri5255 セキュリティ・キャンプ2024 全国大会 LT
2 Agenda • モデル検査とは? • 文献案内
3 モデル検査とは? プログラムが仕様を満たしてることを自動的に検証する技術
4 モデル検査とは? 例) 2つのスレッドp, qが一つの共有変数xを読み書きする While (true) { x =
x + 1; x = x – 1; } 仕様: 𝐴𝐺(𝑥 < 2) 全て(All)の実行パスで常に(Globally) x < 2が成り立つ
5 モデル検査とは? 例) 2つのスレッドp, qが一つの共有変数xを読み書きする While (true) { x =
x + 1; x = x – 1; } 仕様: 𝐴𝐺(𝑥 < 2) 全て(All)の実行パスで常に(Globally) x < 2が成り立つ
6 モデル検査とは? 例) 2つのスレッドp, qが一つの共有変数xを読み書きする 仕様: 𝐴𝐺(𝑥 < 2) 全て(All)の実行パスで常に(Globally)
x < 2が成り立つ While (true) { lock(“mutex”) x = x + 1; x = x – 1; unlock(“mutex”) }
7 モデル検査とは? 例) 2つのスレッドp, qが一つの共有変数xを読み書きする 仕様: 𝐴𝐺(𝑥 < 2) 全て(All)の実行パスで常に(Globally)
x < 2が成り立つ While (true) { lock(“mutex”) x = x + 1; x = x – 1; unlock(“mutex”) }
8 モデル検査とは? モデル検査器 プログラム記述 + 仕様 Ok 反例
9 Agenda • モデル検査とは? • 文献案内
10 文献案内 • TLA+についての本 • 様々なシステムをモデル検査 で検証する(例: MapReduce) • とりあえず使ってみたい人向け
11 文献案内 • 並行計算、分散システム + モデル検査に関する本 • SPINを使う
12 文献案内 • モデル検査の理論の本 • 理論を知りたい人向け
13 文献案内 • モデル検査器の実装に関する本 • 実装してみたい人向け https://www.youtube.com/live/96u4dBAOzao?t=9802s
14 まとめ • 形式手法のモチベーションは「ある種のバグが無いことを理論的に保証する」こと • 数理論理学 (論理学、計算論 など) と深いつながりがある、理論的にも奥が深い分野 形式手法に入門しよう!!