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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
r1ru
August 13, 2024
2
170
モデル検査入門
r1ru
August 13, 2024
Tweet
Share
More Decks by r1ru
See All by r1ru
ImaginaryCTF 2025 stillerer-printf (魔女のお茶会 #8)
riru
0
510
Infer入門
riru
4
1.9k
Formal Development of Operating Systems in Rust
riru
1
720
プログラム検証入門
riru
6
2.9k
Symbolic model checker from scratch in Rust
riru
1
930
WasmOS: Wasmを実行する自作Microkernel
riru
0
870
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Paper Plane
katiecoart
PRO
0
46k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
How to build a perfect <img>
jonoalderson
1
4.9k
Making Projects Easy
brettharned
120
6.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
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 まとめ • 形式手法のモチベーションは「ある種のバグが無いことを理論的に保証する」こと • 数理論理学 (論理学、計算論 など) と深いつながりがある、理論的にも奥が深い分野 形式手法に入門しよう!!