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
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hok...
Search
y_taka_23
November 09, 2024
Technology
7
1.4k
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
Kernel / VM 探検隊 @ 北陸 Part 7 で使用したスライドです。
y_taka_23
November 09, 2024
Tweet
Share
More Decks by y_taka_23
See All by y_taka_23
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
1.6k
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
10
3.1k
問 1:以下のコンパイラを証明せよ(予告編) #kernelvm / Kernel VM Study Kansai 11th
ytaka23
3
840
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
11
2.7k
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
4
700
普通の Web エンジニアのための様相論理入門 #yapcjapan / YAPC Hakodate 2024
ytaka23
11
3.3k
kcp: Kubernetes APIs Are All You Need #techfeed_live / TechFeed Experts Night 28th
ytaka23
1
530
サーバーレスアーキテクチャの数理的理解と分析 #devsumi / Developers Summit 2023 Summer
ytaka23
9
5.5k
形式手法による分散システムの検証 〜S3 の一貫性モデルを例として〜 #ourdevday2023 / Our DevDay 2023
ytaka23
2
1.5k
Other Decks in Technology
See All in Technology
S3のライフサイクル設計でハマったポイント
mkumada
0
100
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
240
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
35
16k
夢の印税生活 / Life on Royalties
tmtms
0
250
広島発!スタートアップ開発の裏側
tsankyo
0
130
LLM時代の検索とコンテキストエンジニアリング
shibuiwilliam
2
1k
モノレポにおけるエラー管理 ~Runbook自動生成とチームメンションの最適化
biwashi
0
450
[CVPR2025論文読み会] Linguistics-aware Masked Image Modelingfor Self-supervised Scene Text Recognition
s_aiueo32
0
190
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
120
[OCI Technical Deep Dive] OCIで生成AIを活用するためのソリューション解説(2025年8月5日開催)
oracle4engineer
PRO
0
130
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
170
React Server ComponentsでAPI不要の開発体験
polidog
PRO
1
360
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Why Our Code Smells
bkeepers
PRO
338
57k
Designing for humans not robots
tammielis
253
25k
A designer walks into a library…
pauljervisheath
207
24k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Navigating Team Friction
lara
188
15k
Transcript
形式手法の 10 メートル手前 チェシャ猫 (@y_taka_23) Kernel / VM 探検隊 @
北陸 Part 7 9th Nov. 2024
前回(8 月)の Kernel / VM 探検隊
r1ru さん (@ri5255) Rust で自作モデル検査器 https://speakerdeck.com/riru/symbolic-model-checker-from-scratch-in-rust
かなり 本格的な 解説
偶然居合わせたチェシャ猫 「参考文献の著者です」 https://speakerdeck.com/riru/symbolic-model-checker-from-scratch-in-rust?slide=46
参考文献の その「先」へ
しかし得てして 難しめ
「先」だけでなく 「手前」についても
勢いと割り切りで
手前側 10 メートルを キーワード 10 個で 雰囲気解説
仕様を自動的に検証 https://speakerdeck.com/riru/symbolic-model-checker-from-scratch-in-rust?slide=3
【残り 10 m】 単体テスト
0 を入れると 42 が返る getAnswerOfEverything(0) == 42
人間は 「入力と出力の対応」 を記述
バグをピンポイントに 引き当てる必要性
【残り 9 m】 プロパティベーステスト
テストケースは ランダム生成
人間は 「関数の性質」 を記述
エンコードしてから デコードすると元に戻る decode(encode(x)) == x
最適化の前後で 結果が変わらない naiveImpl(x) == optimizedImpl(x)
これで確実に テスト可能?
近頃はそうでもない
【残り 8 m】 非決定性
マルチスレッドの タイミング系バグ
分散システムの サーバ故障
ネットワーク 通信の遅延
コントロール不能
再現性のあるテスト が書けない
ならば何を テストする?
【残り 7 m】 グラフ構造
二つのスレッド A と B A: 0, B: 0
A が 1 step 動いた世界線 A: 0, B: 0 A:
1, B: 0
B が 1 step 動いた世界線 A: 0, B: 0 A:
0, B: 1
全パターン網羅すると グラフ構造が現れる A: 0, B: 0 A: 1, B: 0
A: 0, B: 1 A: 2, B: 0 A: 1, B: 1 A: 0, B: 2 A: 3, B: 0 A: 2, B: 1 A: 1, B: 2 A: 0, B: 3
【残り 6 m】 時相論理
グラフを見ると 「時間経過」 が表現できる
どう辿っても 「ずっと」成立
どう辿っても 「いずれ必ず」成立
【残り 5 m】 安全性と活性
悪いことが 「ずっと起こらない」 安全性
良いことが 「いずれ起こる」 活性
両方合わせて仕様
なぜ両方?
何もしないシステムは 安全だが無意味
グラフに対する テストフレームワーク が欲しい
【残り 4 m】 モデル検査
仕様を グラフの性質 として表現
グラフアルゴリズムで 自動的に検査可能
アルゴリズムの詳細は r1ru さんのスライド参照 https://speakerdeck.com/riru/symbolic-model-checker-from-scratch-in-rust
【残り 3 m】 形式手法
数学チックな 検査手法の総称(雑)
モデル検査以外にも 定理証明など
そうそう
「型」も形式手法です
【残り 2 m】 モデル検査ツール
TLA+ https://lamport.azurewebsites.net/tla/tla.html
Alloy https://alloytools.org/
SPIN https://spinroot.com/spin/whatispin.html
【残り 1 m】 採用事例
TLA+ 大人気
AWS で使ってる https://www.amazon.science/publications/how-amazon-web-services-uses-formal-methods
MS Azure でも使ってる https://github.com/Azure/azure-cosmos-tla
難しそう?
たかが 10 メートル
冬休みの自由研究に
自分へのクリスマス プレゼントに
お歳暮に
モデル検査
形式手法
おすすめです
【残り 0 m】 Presented by チェシャ猫 (@y_taka_23)