圏論
圏論(category theory)
圏は 対象 (object) の集まりとその間を走る射 (arrow / morphism) の集まりから成る
対象は圏に含まれるモノ
射は対象の間に定義される「向きのある関係」
合成(composition)
2つの射から1つの射を求める演算
合成ができるのは域(domain、始域、定義域)、余域(codomain、終域、値域)が一致している場合のみ
結合的は結合律を満たすという意味
全ての対象は恒等射(identity)を持つ(単位律)
圏とは,隣あったエッジの合成が定義されているマルチエッジ有向グラフ 対象はノード(node)
射は有向辺(directed edge)
有向エッジ
向きのある辺
プログラミング言語(の圏)で考えると
対象 は 型
射 は 関数
TypeScriptのような関数名 : 型の記法で書くとする。
関数f : A、g : Bの合成$ g \circ f をCで書くと以下のようになる。
code:memo.c
f(a: A): B;
g(b: B): C;
g_after_f(a: A): C
{
return g(f(a));
}
対象の集合$ \{ X_0, X_1, X_2, X_3 \} 、有向辺の集合$ \{ f, g, h \} から圏の公理を満たすものを作ると、以下になる。
https://gyazo.com/31343f0ee84213a6bba8245152e93bac
圏論で圏を一般化?して考えるやつは高次元圏という分野になるはず 直積集合
厳密な圏、対象、射の定義はETCSとかいろいろなものを見る 確認用
Q. 圏
圏は[]とその間を走る[]の集まりからなる
圏は[]射を持つ
射は[]ができて、[]律を満たす
Q. 対象
対象は[]に含まれるモノ
Q. 射
Q. プログラムの圏で考えると
Q. 対象
Q. 射
Q. 対象の集合の定義
Q. 射の集合の定義
Q. 始域(dom)
Q. 終域(cod)
Q. 直積
Q. 余直積
Q. 極限
Q. 余極限
参考
もう諦めない圏論入門 - Qiita
檜山正幸のキマイラ飼育記 (はてなBlog)
関連