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
Natsu Ozawa
November 27, 2021
Programming
0
80
圏論はどこが面白いの?
すごくなりたいがくせいLT Vol.14のための資料です
Natsu Ozawa
November 27, 2021
Tweet
Share
More Decks by Natsu Ozawa
See All by Natsu Ozawa
0の0乗
natsuozawa
0
57
15分で検索エンジニアになる
natsuozawa
0
320
Other Decks in Programming
See All in Programming
CSC307 Lecture 05
javiergs
PRO
0
500
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
240
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
150
2026年 エンジニアリング自己学習法
yumechi
0
140
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
AI時代の認知負荷との向き合い方
optfit
0
170
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Gemini for developers
meteatamel
0
100
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.7k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
110
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
Agile that works and the tools we love
rasmusluckow
331
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
WENDY [Excerpt]
tessaabrams
9
36k
Faster Mobile Websites
deanohume
310
31k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
圏論はどこが面白いの? Natsu Ozawa
自己紹介 • Computer Science @ エジンバラ大学(UK) • 9月から渡英!
今はまっているもの 圏論(Category Theory)
今はまっているもの
カリー=ハワード同型対応
圏論の目的 構造と構造の関係を抽象化する!
圏論の目的 数学 論理学 情報学 哲学 圏論
圏の定義 圏(category)Cとは、以下の組 • 対象(object) 𝑎𝑎, 𝑏𝑏, 𝑐𝑐, … • 射(morphism)
𝑓𝑓: a → b, g: b → c, … a b c f g
圏のルール(1) • 射の合成(composition) 𝑔𝑔 ∘ 𝑓𝑓: 𝑎𝑎 → 𝑐𝑐 a
b c f g 𝒈𝒈 ∘ 𝒇𝒇
圏のルール(2) • 結合律(associativity) (ℎ ∘ 𝑔𝑔) ∘ 𝑓𝑓 = ℎ
∘ (𝑔𝑔 ∘ 𝑓𝑓) a b c f g 𝒈𝒈 ∘ 𝒇𝒇 d h 𝒉𝒉 ∘ 𝒈𝒈 𝒉𝒉 ∘ 𝒈𝒈 ∘ 𝒇𝒇
圏のルール(3) • 恒等射(identity) 𝑖𝑖𝑖𝑖𝑎𝑎 : 𝑎𝑎 → 𝑎𝑎, 𝑓𝑓 ∘
𝑖𝑖𝑖𝑖𝑎𝑎 = 𝑓𝑓 = 𝑖𝑖𝑖𝑖𝑏𝑏 ∘ 𝑓𝑓 a b f 𝒊𝒊𝒊𝒊𝒂𝒂 𝒊𝒊𝒊𝒊𝒃𝒃
圏の例(1) 集合全体の圏:Sets • 対象=集合 0,1 , 1 , ∅, ℝ,
… • 射=写像 𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 1, 𝑔𝑔 𝑥𝑥 = 𝑥𝑥 𝑚𝑚𝑚𝑚𝑚𝑚 2 ℝ ℝ {0,1} f g
圏の例(2) プログラミング言語の型全体の圏:Types • 対象=型 Bool, Int, Float, … • 射=関数
f x = x + 1, g x = isOdd x Float Float Bool f g
他の抽象的構造との比較 • 群、位相空間なども物事を一般化した構造 • 圏はもっと包括的 • 例:群は圏でもある • 対象:適当に1つ定める、射:台集合の要素、合成:二項演算 •
例:群全体の圏も存在する • 対象:群、射:群の準同型、合成:準同型の合成 • 圏論では抽象的構造間の関係を取り扱う(後述)
関手の定義 • 構造を維持する圏と圏の対応 圏Cから圏Dへの関手 (functor)𝐹𝐹: 𝐶𝐶 → 𝐷𝐷は • Cの各対象をDの対象に対応
• Cの各射をDの射に対応 a b f 𝒊𝒊𝒊𝒊𝒂𝒂 𝒊𝒊𝒊𝒊𝒃𝒃 a’ b’ f’ 𝒊𝒊𝒊𝒊𝒂𝒂𝒂 𝒊𝒊𝒊𝒊𝒃𝒃𝒃 C D
関手のルール • 𝐹𝐹(𝑓𝑓: 𝑎𝑎 → 𝑏𝑏)はF a → F(b) •
𝐹𝐹 𝑔𝑔 ∘ 𝑓𝑓 = 𝐹𝐹(𝑔𝑔) ∘ 𝐹𝐹(𝑓𝑓) • 𝐹𝐹 𝑖𝑖𝑖𝑖𝑎𝑎 = 𝑖𝑖𝑖𝑖𝐹𝐹(𝑎𝑎) 準同型みたい!! a b f 𝒊𝒊𝒊𝒊𝒂𝒂 𝒊𝒊𝒊𝒊𝒃𝒃 a’ b’ f’ 𝒊𝒊𝒊𝒊𝒂𝒂𝒂 𝒊𝒊𝒊𝒊𝒃𝒃𝒃 C D
積の概念の一般化 a, bの積とは • 𝑎𝑎, 𝑏𝑏への射を持つ対象であり、 • 𝑎𝑎, 𝑏𝑏への射を持つ全ての対象cに 対して
• 𝑝𝑝𝑝𝑝𝐴𝐴 ∘ 𝑚𝑚 = 𝑓𝑓, 𝑝𝑝𝑝𝑝𝐵𝐵 ∘ 𝑚𝑚 = 𝑔𝑔を満たす • 射m: 𝑐𝑐 → 𝑎𝑎 × 𝑏𝑏が一つだけ存在す る a c b f 𝒑𝒑𝒑𝒑𝑩𝑩 𝒂𝒂 × 𝒃𝒃 𝒑𝒑𝒑𝒑𝑨𝑨 g m
積の例 Setsでは直積 TypesではPair/tuple a c b f snd (a, b)
fst g m
SetsとTypesの同型対応 Sets Types {0,1} Bool 𝕫𝕫 Int 𝐴𝐴 × 𝐵𝐵
(A, B) ∅ HaskellのVoid {1} (), Javaのvoid 写像 関数 … … Sets Types
まとめ • 圏論は構造を抽象化して、それらの関係を表す言語 • 特に、積などの概念を一般化することができる • 関手が規定される、2つの関係なさそうな構造が似ている!と 示せるところが面白い
圏論を学ぼう! • Category Theory for Programmersは日本語に翻訳されてるらしい (友達曰く) • 他にも難しい本なら沢山あるよ
ボーナス • 集合論にはラッセルのパラドックスにより無限という概念に限 りがあった • 集合全体の集合は作ることができるのか?つまり、集合はそれ自体を 要素として含むことができるのか? • 受け入れると矛盾に繋がる •
圏論は無限という概念の拡張がしやすい • (小さい)圏全体の圏:Cat • 対象:圏、射:関手 • 関手圏 • 対象:関手、射:自然変換 • 続く
ありがとうございました