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
定理証明支援系Coq(セキュリティキャンプLT会)
Search
soukouki
August 12, 2024
Technology
1
160
定理証明支援系Coq(セキュリティキャンプLT会)
2024-08-12 セキュリティキャンプLT会で発表したスライドです。
soukouki
August 12, 2024
Tweet
Share
More Decks by soukouki
See All by soukouki
自作Cコンパイラ 8時間の奮闘
soukouki
0
1.2k
Coqで選択公理を形式化してみた
soukouki
0
310
「プログラミング」と「数学」の関係 〜カリー・ハワード同系対応と定理証明支援系Coq〜
soukouki
1
190
型クラスと依存型のカルパッチョ、代数的構造を添えて
soukouki
2
530
Coqのコントリビューターになった話
soukouki
0
180
次に流行る※プログラミング言語「Lean」
soukouki
3
1.7k
証明しながらプログラミング! - タクティックによるCoqプログラミング
soukouki
0
290
帰納型とパターンマッチングの紹介
soukouki
0
160
ステータスバーに歌詞を表示させてみた!
soukouki
0
170
Other Decks in Technology
See All in Technology
心に火を灯すヒントは自分の中にある/The clue to lighting a fire in your heart is within you.
bitkey
1
130
View Transition API
shirakaba
1
770
技術好きなエンジニアが _リーダーへの進化_ によって得たものと失ったもの / The Gains and Losses of a Tech-Enthusiast Engineer’s “Evolution into Leadership”
kaminashi
0
160
EMの仕事、あるいは顧客価値創出のアーキテクト
radiocat
0
120
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
400
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
260
VISITS_20250311_こねくとあいとりおす.pdf
iotcomjpadmin
0
210
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
9
3.4k
[CATS]Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
110
空が堕ち、大地が割れ、海が涸れた日~もしも愛用しているフレームワークが開発停止したら?~ #phperkaigi 2025
77web
2
940
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
390
MLflowの現在と未来 / MLflow Present and Future
databricksjapan
1
250
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
For a Future-Friendly Web
brad_frost
176
9.6k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
450
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
The Cult of Friendly URLs
andyhume
78
6.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
600
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Transcript
定理証明支援系Coq 2024-08-12 セキュリティキャンプLT会 1
自己紹介 岡田宗太朗/sou7です 東北の山奥に住んでます 会津大学の学部4年生 S06 Cコンパイラゼミで 自作コンパイラのバグと 戦ってます 会津を走る只見線の風景→ 2
SNS ActivityPub/Misskey @
[email protected]
GitHub @soukouki Twitter @sou7_ _ _ 3
趣味 好きなゲーム Simutrans Factorio 「小説家になろう」というサイトでライトノベルを読み漁ること Obsidian 日記や技術メモ、ブログ記事まで全てObsidianで管理しています 4
定理証明支援系Coqとは? 定理証明支援系 Coq 聞いたことある人は挙手をお願いします! 5
定理証明支援系 と カリー・ハワード同型対応 定理証明支援系とは、「数学の証明とプログラムにいい感じの対応関 係がある」という理論を使って、証明が正しいことを検証する、とい うシステムです。 6
7
実際のプログラム そんな数学の証明が出来るCoqですが、中身は関数型プログラミング の処理系です。 Variable A B : Type. Definition modus_ponens
: (A -> B) -> A -> B := fun f a => f a. このプログラムは、 (AならばB)ならば(AならばB) という命題の証明で もあります。プログラムとして見ると、以下の構文を使っています。 A -> B は を受け取って を返す関数の型 fun f a => f a は と を引数に受取り、 を返すラムダ式 8
他の形式手法との比較 カリー・ハワード同型対応を利用した定理証明支援系 例: Coq, Lean 記述できる仕様の幅が一番広いのはこれ(通常の数学と同じ) 代わりに、手動でその証明をしないといけない モデル検査による形式仕様記述 例: TLA+
扱う問題の幅に制限があるが、自動で検証できる 自動定理証明(とそれを使ったプログラムの自動検証) 例: RustHorn S15-Rustプログラム検証ゼミで扱うのはこれ 9
まとめ 数学の証明とプログラミングには対応関係があり、カリー・ハワ ード同型対応という Coqとはその対応を使い、数学の証明をプログラムに落とし込ん で証明を検証できる 定理証明支援系 兼 プログラミング言語 形式手法にも色々種類があり、CoqとTLA+とRustHornは全く別 のシステム
10
リンク http://github.com/soukouki/coq-learning Coqの簡単な例からクイ ックソートの証明までを学べる資料です。 参考資料 「Coq/SSReflect/MathCompによる定理証明」萩原学 アフェルト・ レナルド その他 第一只見川橋梁の写真はMaedaAkihiko氏の著作物です。Creative
Commons Attribution-Share Alike 4.0 11