圏
圏は以下の4つの要素と、2つの条件から構成される
4つ組$ \mathscr{A}=(\mathrm{ob}(\mathscr{A}),\mathscr{A}(A,B),\circ, \mathrm{id})のこと
圏の本質は射
対象ではなく
要素
対象の集まり$ \mathrm{ob}(\mathscr{A})
単に$ \mathscr{A}と表記したりもする
「対象」と聞くとどうしても集合をイメージしてしまいがちだが、集合である必要はない
対象は$ A\in\mathscr{A}
$ \mathscr{A}は「対象の集まり」であって、一つ一つの対象は$ Aなどで表す
プログラミングの型
射の集まり$ \mathscr{A}(X, Y)
各対象$ X, Yに対して「$ \mathscr{A}(X, Y)」は対象$ Xから対象$ Yへの射の集まり
対象の集まり$ \mathscr{A}の中の2つの対象$ X,Yの組が射の集まり$ \mathscr{A}(X,Y)
なので$ Xから$ Yへ行く射にも複数あって、それが$ fだったり、$ gだったりする
この$ fや$ gの集まりが$ \mathscr{A}(X,Y)
https://gyazo.com/3204c78337fd15ee35a9242a78420a27
$ \mathrm{Hom}_\mathscr{A}(X,Y)や$ \mathrm{Hom}(X,Y)とも表記される
$ f\in\mathscr{A}(X, Y)に対し、$ Xを$ fの定義域(domain)、$ Yを$ fの値域(codomain)という
「射」も対象の場合と同じく、関数をイメージしてしまいがちだが、関数である必要はない
プログラミングの関数
恒等射$ \mathrm{id}
合成$ \circ
射の合成
プログラミングの関数合成
条件
恒等射は単位律が成り立つ
$ f \circ \mathbb{id_{A}}=f=\mathbb{id_{B}} \circ f.
射では結合律が成り立つ
$ (h \circ g) \circ f=h \circ(g \circ f).
圏の例
集合の圏Set
$ \emptyset: 対象と射を持たない圏
単位圏1
離散圏
小さい圏の圏CAT
Hask圏
参考
Haskellで学ぶ圏論・入門編 写像を対象に - bitterharvest’s diary
ベシ圏
圏論入門前の準備運動―集合と写像― - Qiita
元は気にしない。集合と写像に注目する
もう諦めない圏論入門―対象と射― - Qiita