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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Natsu Ozawa
November 27, 2021
Programming
81
0
Share
圏論はどこが面白いの?
すごくなりたいがくせいLT Vol.14のための資料です
Natsu Ozawa
November 27, 2021
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
AIエージェントで業務改善してみた
taku271
0
440
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
1
290
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
400
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
170
「速くなった気がする」をデータで疑う
senleaf24
0
140
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
120
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
230
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
970
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
Feature Toggle は捨てやすく使おう
gennei
0
420
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
130
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Building an army of robots
kneath
306
46k
HDC tutorial
michielstock
1
600
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Navigating Weather and Climate Data
rabernat
0
160
Un-Boring Meetings
codingconduct
0
250
How to build a perfect <img>
jonoalderson
1
5.3k
The Cult of Friendly URLs
andyhume
79
6.8k
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 • 対象:圏、射:関手 • 関手圏 • 対象:関手、射:自然変換 • 続く
ありがとうございました