範疇論學習筆記10:函子
目錄:類型論驛站寫作計劃
前一篇:範疇論學習筆記9:群對象和自然數對象
後一篇:範疇的範疇
學習材料:Category Theory: A Gentle Introduction - Logic Matters,最近更新(2018年1月29日)的版本。這份筆記對應的是第 15 章。
範疇有兩種數據:對象和箭頭。範疇之間的函子也需要有兩個構成部分。
定義77(函子,functor)
對於範疇 和
,函子
包括下列數據:
- 運算/映射
,其中
為
對象,
為
對象
- 運算/映射
,其中
為
箭頭,
為
箭頭
在實際書寫的時候,下標通常省略,在有歧義的時候,參數可以用括弧括起來。
除此以外,函子還需滿足下列兩個條件:
- 保存單元對象:對於任何
對象
,
- 維護複合:對於任何
箭頭
,如果存在複合
,那麼
一些例子
- F1:(遺忘函子,forgetful functor)
,
;設
,即一個幺半群同態,那麼
。其他遺忘函子包括
等。遺忘函子有時被稱為底層函子(underlying functor)。
- F2 :
,遺忘函數性。
- F3:
- F4:(冪集函子,powerset functor)
,
- F5:(幺半群同態函子)取幺半群
和
,構建範疇
。
只有一個對象
,它的箭頭就是
里的元素,其複合就是元素的二元運算
,單位元就是
。同樣地,我們可以定義範疇
。函子
需要確保:
,
得是一個幺半群同態。
- F6:(單調函子,monotone functor)取兩個偏序集合
,將它們視為範疇
。單調函數
引出函子
。
- F7:取群
,將其視為範疇
。可以有函子
- F8:(列表函子,list functor)
- F9:(瘦身函子,thinning functor)設
是一個苗條(thin)的預序範疇,即任何源和目標之間只有一個箭頭,設
是一個發福(fat)的範疇,對象和
完全一致,但源和目標之間可能有多個箭頭。我們可以構造
,作為一個瘦身函子。
- F10:(常函子,constant functor)設
和
是任意函子,
是
中的任意對象,那麼存在一個常函子,使得
,
.
- F11:對於
中的每一個對象
,都對應著一個函子
,將 1 中唯一的對象發送給
,又有
。
- F12:(包含函子,inclusion functor)設
是
的一個子範疇,那麼存在一個包含函子
,將
中的對象和箭頭映射到
中同樣的對象和範疇上。
- F13:(自由函子,free functor)
.
函子保存和反映的分別是什麼?
函子 將每一個
對象
映射到像(image)
上,又將每一個
箭頭
映射到像
上。
在
中的總體像究竟和其本身有多大的差距?函子究竟保存或反映了源頭範疇的哪些特徵呢?
定理76
在
中由函子
構成的像不一定是
的一個子範疇。
定義78(保存和反映)
設函子 ,
是箭頭的某個特性。那麼
保存(preserves)
,當且僅當對於每一個
箭頭
,
反映(reflects)
,當且僅當對於每一個
箭頭
,
定義79(保守性,conservativity)
一個函子 是保守(conservative)的,當且僅當它反映所有同構。
定理77
函子不一定保存或反映單態或滿態。
定理78
函子保存右逆,左逆和同構。函子不一定反映它們。
例如坍塌函子(collapse functor)
,1 中唯一的箭頭是同構,但
中的相應箭頭(所有箭頭!)則不一定是同構。
忠實、全乎、和本質滿射函子
定義80(忠實、全乎)
函子 是忠實(faithful)的,當且僅當對於任何
對象
,以及任何一對平行箭頭
,如果
,那麼
。
函子 是全乎(full)的,當且僅當對於任何
對象
,以及任何箭頭
,都存在一個箭頭
,使得
。
是全然忠實(fully faithful)的,當且僅當它既全乎又忠實。
忠實函子對於箭頭不一定是單射。
定義81
函子 在對象上是本質滿射(essentially surjective on objects, e.s.o.)的,當且僅當對於任何
對象
,存在
對象
,使得
.
普通的滿射(存在
對象
,使得
)意義不大。在範疇論理哦我們一般不在乎
是否有一些不同但同餘的對象副本。對象上的單射意義也不大。
- 遺忘函子
是忠實的,在對象上本質滿射的,但不是全乎的。
- 遺忘函子
是忠實的,全乎的,但不是在對象上本質滿射的。
- 瘦身函子
是全乎的,在對象上本質滿射的,但不是忠實的,除非
是一個預序範疇。
- 基於滿射但不單射的幺半群同構的函子
是全乎的,但不是忠實的。
- 完全坍塌函子
不是全乎的,也不是忠實的。
- 包含函子
是忠實的,但除非
是
的一個滿子範疇,該函子是不完全的;該函子通常不滿足在對象上本質滿射。
定理79
忠實函子 反映了單態和滿態。
定理80
全然忠實函子反映了右逆和左逆,因而是保守的。
積、指數、代數拓撲和函子
- F14:(積函子,product functor)設
擁有所有的積,
是
的一個對象,那麼存在一個函子
,使得
,
.
- F15:(指數函子,exponentiation functor)設
擁有所有的指數,設
是一個
對象,那麼存在一個對應的指數函子
,使得
,
- F16:代數拓撲函子
使用代數拓撲函子可以證明下面的定理:
定理81(Brouwer 不定點定理,Brouwers Fixed Point Theorem)
從閉單位圓盤(closed unit disc)到其自身的任何連續映射都有一個不動點。
同變函子和逆變函子
定理82
函子 引出一個函子
.
定義82(逆變函子,contravariant functor)
如果 是一個原始意義上的函子(即同變函子,covariant functor),那麼
是一個逆變函子,包含下列數據:
,
上述數據滿足下列公理:
- 單位元保存:對於每一個
對象
,
- 尊重複合:對於任何
箭頭
,如果它們的複合
存在,則有
.
在 Haskell 中,我們關注的是以類型為對象,以函數為箭頭的範疇 Hask,以及 Hask 的子範疇。Haskell 中的 Functor 就是在這些範疇上定義的函子。
"Prelude:" :i Functorclass Functor (f :: * -> *) where fmap :: (a -> b) -> f a -> f b (<$) :: a -> f b -> f a {-# MINIMAL fmap #-} -- Defined in 『GHC.Base』instance Functor (Either a) -- Defined in 『Data.Either』instance Functor [] -- Defined in 『GHC.Base』instance Functor Maybe -- Defined in 『GHC.Base』instance Functor IO -- Defined in 『GHC.Base』instance Functor ((->) r) -- Defined in 『GHC.Base』instance Functor ((,) a) -- Defined in 『GHC.Base』
目錄:類型論驛站寫作計劃
前一篇:範疇論學習筆記9:群對象和自然數對象
後一篇:範疇的範疇
推薦閱讀:
