Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hok...
Search
y_taka_23
November 09, 2024
Technology
1.8k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
Kernel / VM 探検隊 @ 北陸 Part 7 で使用したスライドです。
y_taka_23
November 09, 2024
More Decks by y_taka_23
See All by y_taka_23
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
4
1.5k
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
1
1.1k
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
1.1k
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
ytaka23
1
1.3k
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
17
8.6k
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
3
940
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
2.6k
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
12
6.8k
問 1:以下のコンパイラを証明せよ(予告編) #kernelvm / Kernel VM Study Kansai 11th
ytaka23
3
1.3k
Other Decks in Technology
See All in Technology
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
150
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
400
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
150
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
400
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
3
1.1k
Claude Code本は、どのように執筆チームで書かれたか
oikon48
0
190
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
560
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
230
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
540
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Utilizing Notion as your number one productivity tool
mfonobong
4
610
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
New Earth Scene 8
popppiees
4
2.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Fireside Chat
paigeccino
43
4.1k
Writing Fast Ruby
sferik
630
63k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
970
Paper Plane
katiecoart
PRO
4
54k
Exploring anti-patterns in Rails
aemeredith
4
520
Paper Plane (Part 1)
katiecoart
PRO
2
11k
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)