$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モデル検査入門
Search
r1ru
August 13, 2024
2
160
モデル検査入門
r1ru
August 13, 2024
Tweet
Share
More Decks by r1ru
See All by r1ru
ImaginaryCTF 2025 stillerer-printf (魔女のお茶会 #8)
riru
0
480
Infer入門
riru
4
1.8k
Formal Development of Operating Systems in Rust
riru
1
690
プログラム検証入門
riru
6
2.8k
Symbolic model checker from scratch in Rust
riru
1
900
WasmOS: Wasmを実行する自作Microkernel
riru
0
850
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Why Our Code Smells
bkeepers
PRO
340
57k
Documentation Writing (for coders)
carmenintech
76
5.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Designing for humans not robots
tammielis
254
26k
Building an army of robots
kneath
306
46k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
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 まとめ • 形式手法のモチベーションは「ある種のバグが無いことを理論的に保証する」こと • 数理論理学 (論理学、計算論 など) と深いつながりがある、理論的にも奥が深い分野 形式手法に入門しよう!!