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
圏論はどこが面白いの?
Search
Natsu Ozawa
November 27, 2021
Programming
88
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
圏論はどこが面白いの?
すごくなりたいがくせいLT Vol.14のための資料です
Natsu Ozawa
November 27, 2021
More Decks by Natsu Ozawa
See All by Natsu Ozawa
0の0乗
natsuozawa
0
68
15分で検索エンジニアになる
natsuozawa
0
340
Other Decks in Programming
See All in Programming
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
640
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
SREの越境 / SRE Collaboration
y0hgi
2
310
Railsバージョンを4倍にした話
optim
0
350
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Statistics for Hackers
jakevdp
799
230k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
BBQ
matthewcrist
90
10k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Automating Front-end Workflow
addyosmani
1369
210k
A designer walks into a library…
pauljervisheath
211
25k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
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 • 対象:圏、射:関手 • 関手圏 • 対象:関手、射:自然変換 • 続く
ありがとうございました