色彩繽紛的範疇論 [Z00L]

我在這裡想要用範疇論(category theory,又稱抽象廢話)展示跟大家印象中不一樣的數學,有興趣深入學習的讀者可以在最後找到進一步的學習資源。範疇論是從代數拓樸、代數幾何等領域的發展中自然出現的概念,主要的用途是用來高效地描述物之間的關係、用一種抽象的視角觀察整體性質。下面舉一些例子幫助你大致理解一下範疇論在數學領域的定位,看不懂或是想跳過都沒差,並不影響後續閱讀

Example 數學中的Categories與Functors [local-0]

  • 我們有所有集合與函數的範疇 Sets\text{Sets}、所有群與群態射的範疇 Groups\text{Groups}
  • Monoid MM 的Actions可以改寫成functor Mop→SetsM^{op} \to \text{Sets}(事實上這類functor有個特殊名稱,叫做presheaf)
  • 拓樸空間 XX 的所有開集之間的包含關係構成一個category Open(X)\text{Open}(X)
  • 遺忘functor,比如 Groups→Sets\text{Groups} \to \text{Sets}、Rings→Groups\text{Rings} \to \text{Groups}
  • Free functor,像是集合生成free groups/vector space等
  • 基本群可以視為從有點拓樸到群的functor π1:Top∗→Groups\pi_1 : \text{Top}_* \to \text{Groups}
  • vector space對偶可以視為functor (−)∗:vect(k)→vect(k)(-)^* : \text{vect}(\mathbb{k}) \to \text{vect}(\mathbb{k})
  • 從manifold構造它的ring of smooth functions可以看成functor C∞:Man→RingsC_\infty : \text{Man} \to \text{Rings},定義為 C∞(M):={f:M→R∣f is smooth}C_\infty(\mathbb{M}) := \{ f : \mathbb{M} \to \mathbb{R} \mid f \text{ is smooth}\}

什麼是色彩繽紛呢?這是指string diagram這種表達方式的圖,接下來我會用一種另類的category定義與string diagrams介紹範疇論。我盡量用不正式的語言,但直覺上正確的方式介紹,並且在每個概念附上一些案例連結作為參考。這表示我們會略過size問題假定自己在一個合適的宇宙上討論category theory

Definition Category的另類定義 [7U86]

一個category是由一些morphisms構成的,每個morphism都有頭跟尾兩個標籤(這些標籤又叫做objects),例如 f:A→Bf : A \to B 我們畫出直線並用一個點代表 ff

figure tex21528

當頭尾的標籤一樣的時候,我們可以把morphisms黏起來得到另一個morphism,例如 g:A→Bg : A \to B 而 f:B→Cf : B \to C,那 f∘gf \circ g 記成

figure tex21529

有一類特殊的morphism 1X:X→X1_X : X \to X,他們的標籤頭尾都一樣,跟其他任何morphism ff 組合都會是 ff(如果可以組合)。這類morphism有個特定的名稱,叫做identity morphism,而且對於該標籤 XX 這樣的morphism只有一個。對於這樣的morphism,我們用直線表示它可被忽略

figure tex21530

因為我們有等式 f∘1A=1B∘f=ff \circ 1_A = 1_B \circ f = f

figure tex21531

上面的表示法利用了functor space [1,C][1, \mathcal{C}](也可以記成 C1\mathcal{C}^1)的每個functor都指向某個object與其identity morphism的特性([1,C]≅C[1, \mathcal{C}] \cong \mathcal{C})濫用了記號,其實上面只是functor與natural transformation表示法的特例(但為了避免循環定義,所以還是會先定義category然後才討論functor與natural transformation)

Functor與Natural transformation [GC75]

Functor是範疇之間的變換,例如 F:C→DF : \mathcal{C} \to \mathcal{D} 可以記成

figure tex33460

Functor必須滿足 F(f∘g)=F(f)∘F(g)F(f \circ g) = F(f) \circ F(g),但這件事在我們目前用的string diagram表示法裡面看起來像是廢話所以就不畫了。Natural transformation是functors之間的變換,例如 α:F⇒G\alpha : F \Rightarrow G 可以記成

figure tex33461

Natural transformation必須滿足等式 G(f)∘αX=αY∘F(f)G(f) \circ \alpha_X = \alpha_Y \circ F(f),稱之為naturality

figure tex33462

用string diagram繪製之後,naturality就像是在說:我們可以把串珠在線上移來移去而不會改變意義。因此這又叫「電梯等式」,我們當然沒有必要侷限在objects跟morphisms上,所以更通用的形式是

figure tex33463

這種string diagram的語言在Introducing String Diagrams: The Art of Category Theory裡面有更多的介紹

Example 程式作為natural transformation [631K]

如果一些類型構成category,可以用functor表示參數化類型。例如我們可以定義natural transformation α:Maybe→List\alpha : \text{Maybe} \to \text{List} 為

αX:Maybe(X)→List(X)αX(Nothing)=[]αX(Some x)=[x]\begin{aligned} &\alpha_X : \text{Maybe}(X) \to \text{List}(X) \\ &\alpha_X(\text{Nothing}) &= [] \\ &\alpha_X(\text{Some}\ x) &= [x] \end{aligned}
figure tex19416

或是取出List中的最大值

figure tex19417

Interchange Law [ZB1T]

Adjunction [U27X]

Adjunction L⊣RL \dashv R 是範疇論中重要的概念,它是由一對functors L:C→DL : \mathcal{C}\to\mathcal{D} 跟 R:D→CR : \mathcal{D}\to\mathcal{C} 與一對natural transformations η:1C⇒R∘L\eta : 1_\mathcal{C} \Rightarrow R \circ L 與 ϵ:L∘R⇒1D\epsilon : L \circ R \Rightarrow 1_\mathcal{D} 組成。注意 1D1_\mathcal{D} 這種functor我們會乾脆不畫線

figure tex48236
Adjunction是可以串起來的

Example Limit與colimit [50LK]

每個 D:J→CD : J \to \mathcal{C} 有limit可以表示成diagonal functor Δ:C→CJ\Delta : \mathcal{C} \to \mathcal{C}^J 有right adjoint lim⁡:CJ→C\lim : \mathcal{C}^J \to \mathcal{C}。Δ\Delta 定義為 Δ(X)(j):=X\Delta(X)(j) := X

figure tex17727

對偶的來說,有colimit就是Δ\Delta有left adjoint colim\text{colim}

還有一些其他案例

用Adjunction構造Monad [9XIR]

有個跟adjunction緊密聯繫的概念是monad,我們這邊直接看adjunction如何構成monad。給定 L⊣RL \dashv R,有以下構造

figure tex22798

因此 R∘LR \circ L 是一個monad

偏數學的案例我目前只想得到adjunction構造的monad,在電腦科學裡面monad的用途是表示程式中的effects(參考 [Moggi1991])

更多string diagrams [local-1]

下一步呢? [local-2]

範疇論當然不是只靠一篇文章就能學會的,如果讀者有興趣的話,以下是根據不同背景我認為可能有用的學習資源

只是晚上睡不著?那也可以考慮Sketches of an Elephant

最後希望你閱讀的過程愉快,對範疇論更加了解了(或是我們可以開始談更高的廢話)