《譯》有關態射的一切

2021-09-12 18:40:29 字數 4111 閱讀 9324

如果我還沒有使你已經確信範疇論就是所有和態射有關的東西,那就是我的失職。因為下乙個主題是伴隨,而伴隨是用hom集的同構定義的,所以回顧一下有關hom集的那些積木是很有意義的。而且你會看到伴隨為描述我們之前研究的很多構造提供了一種更一般的語言,所以複習一下它們也很有必要。

首先,你其實應該把函子看作態射的對映——這個觀點有在haskell的functor型別類的定義中得到強調,也就是fmap。當然,函子也對映物件——態射的端點——否則我們就沒法談論保持復合。物件告訴了我們哪些態射對是可復合的。其中乙個態射的終點必須等於另乙個態射的起點——如果它們能復合。所以如果我們想把態射的復合映為提公升後的態射的復合,端點的對映就很大程度上被決定了。

態射的很多性質都是用交換圖的方式表達的。如果乙個特定的態射被以超過一種方式描述為其他態射的復合,那麼我們就有乙個交換圖了。

特別地,交換圖構成了幾乎所有泛構造的基礎(初始物件和終端物件是明顯的例外)。我們已經在積、餘積、很多其他(餘)極限、指數物件和自由么半群等等的定義中看到過它了。

積是泛構造的乙個簡單例子。我們挑選兩個物件ab,看看是否存在乙個帶上一對態射pq的具有成為它們積的泛性質的物件c

積是極限的乙個具體例子。極限是用錐的觀念定義的。泛錐是構建在交換圖之上的。這些圖表的交換性可以被乙個恰當的函子的對映的自然性條件所代替。這種方式下交換性被降為了組合語言的角色,而高階語言是自然變換。

一般來說,當我們需要從態射映為交換四方圖的時候,自然變換會非常方便。自然四方圖的兩個對邊是某個態射f在兩個函子fg作用下的像。另外的邊則是自然變換的分量(當然這也是態射)。

自然性意味著當你移動到「相鄰」分量(相鄰的意思是說由乙個態射連線)上時,你不會違背範疇的結構,也不會違背這兩個函子的。你是先用自然變換的分量橋接物件,再用函子跳到它的鄰居上;還是反過來,這一點關係也沒有。這兩個方向是正交的。自然變換讓你左右移動,函子讓你上下活著前後移動——打個比方說。你可以設想乙個函子的像就是靶範疇裡的一頁紙。自然變換就把對應於f的這樣一頁紙映為對應g的另一頁。

我們已經見過haskell中這個正交性的例子了。在haskell中函子在不改變容器形狀的條件下修改了容器的內容,而自然變換把這些內在的內容重新打包到另乙個不同的容器中。這些操作的順序並不重要。

我們已經在極限的定義中見到過用自然變換表示的錐了。自然性確保了每個錐的邊是可交換的。然而,極限使用錐之間的對映定義的。這些對映也必須滿**換性條件(比如,積的定義中的三角形必須交換。)

這些條件也可以被自然性所代替。你可能會想起泛錐,或者說極限,被定義成乙個自然變換,這個自然變換是(逆變)hom函子:

f :: c -> c(c, lim d)
和把c的物件映為錐的(逆變)函子(當然錐本身就是自然變換):

g :: c -> nat(δ_c, d)
之間的。這裡,δ_c是常函子,而d是定義了c中的圖表的那個函子。函子fg都在c的態射上定義良好。非常碰巧的是這個fg之間特別的自然變換是乙個同構。

自然同構——每個分量都是可逆的自然變換——是範疇論裡描述"兩個東西一樣"的方法。這樣的乙個變換的分量必須是物件間的同構——可逆的態射。如果你把函子的像想成紙張,自然同構就是乙個這些紙張間的一一可逆對映。

但什麼是態射呢?它們比物件具有更多的結構:不像物件那樣,態射有兩個端。如果你固定住源物件和靶物件,這兩個物件間的態射就構成了乙個無聊的集合(至少對於區域性小的範疇來說)。我們可以給這個集合的元素一些像fg這樣的名字來區分它們——但究竟是什麼讓它們區別於彼此?

在乙個給定的hom集上,態射間的本質區別表現在它們與其他態射(來自相鄰的hom集)的復合上。如果有乙個態射h,它與f的復合(前復合或後復合)與g不同,例如:

h ∘ f ≠ h ∘ g
這樣我們就能夠直接「觀察」fg的不同。然而就算這個區別不能直接觀察,我們也可以使用函子去放大hom集。函子f可以把這兩個態射映為不同的態射:

f f ≠ f g
在更富的範疇裡,相鄰的hom集會提供更高的解析度,比如,

h' ∘ f f ≠ h' ∘ f g
其中h'不在f的像裡。

很多範疇論的構造依賴於hom集間的同構。但因為hom集僅僅只是集合,它們之間一般的同構並不會告訴你更多的東西。對於有限集,同構只是說他們有相同多的元素。如果集合是無限的,它們的基數必須是相同的。但是,任意有意義的hom集同構必須考慮復合。而復合涉及了不止乙個hom集。我們需要定義跨在所有hom集的集族上的同構,我們還需要對涉及復合的操作加以某些相容性條件。而自然同構精確地滿足了這樣的要求。

但什麼是hom集的自然同構呢?自然性是乙個函子間的對映的性質,並不是集合間的。所以我們真正在談論的是指向hom集的函子間的自然同構。它們在態射上的行為由恰當的hom函子匯出。態射標準地被hom函子用前復合或後復合(取決於函子的協變性)的方式對映。

公尺田嵌入就是這種同構的乙個例子。它把c中的hom集映為函子範疇裡的hom集;並且它是自然的。公尺田嵌入中的乙個函子是c中的hom函子,另乙個把物件映為hom集間的自然變換的集合。

極限的定義也是hom集間的乙個自然同構(第二個hom集,同樣,也是函子範疇裡的):

c(c, lim d) ≃ nat(δ_c, d)
可以證明我們的指數物件的構造,或者自由么半群的構造,也能被重寫成hom集上的自然同構。

這並非巧合——我們接下來將會看到這些只不過是伴隨的不同的例子,而伴隨就是用hom集間的自然同構定義的。

還有一種觀察可以幫助我們理解伴隨。hom集,一般來說,是非對稱的。hom集c(a, b)通常與hom集c(b, a)非常地不一樣。這種非對稱性的極端例子就是看成範疇的偏序。在偏序中,從ab的態射存在當且僅當a小於等於b。如果ab不相等,那麼另乙個方向,也就是ba就不會有態射。所以如果hom集c(a, b)非空,這就意味著它是個單例集,那麼c(b, a)必須是空集,除非a = b。在這個範疇中箭頭有乙個明確的流向。

而沒有反對稱性的預序,也是「幾乎全部」有向的,除了例外的環形。把任意的範疇看成預序的推廣是非常方便的方法。

預序是個薄範疇——所有的hom集或者是單例集或者是空集。我們可以把一般的範疇看成乙個「厚的」預序。

考慮某些自然性條件的退化情況並畫圖。例如,如果函子fg把物件abf :: a -> b的端)映為同乙個物件,比如,f a = f bg a = g b?(注意你會得到乙個錐或者餘錐。)然後考慮f a = g af b = g b的情況。最後,如果從乙個指向自己的環態射——f :: a -> a開始呢?

感謝gershom bazerman檢查我的數學和邏輯,以及andré van meulebrouck在整個系列中的編輯上的幫助。

《譯》有關態射的一切

如果我還沒有使你已經確信範疇論就是所有和態射有關的東西,那就是我的失職。因為下乙個主題是伴隨,而伴隨是用hom集的同構定義的,所以回顧一下有關hom集的那些積木是很有意義的。而且你會看到伴隨為描述我們之前研究的很多構造提供了一種更一般的語言,所以複習一下它們也很有必要。首先,你其實應該把函子看作態射...

《譯》有關態射的一切

如果我還沒有使你已經確信範疇論就是所有和態射有關的東西,那就是我的失職。因為下乙個主題是伴隨,而伴隨是用hom集的同構定義的,所以回顧一下有關hom集的那些積木是很有意義的。而且你會看到伴隨為描述我們之前研究的很多構造提供了一種更一般的語言,所以複習一下它們也很有必要。首先,你其實應該把函子看作態射...

譯 在 UNIX 中,一切皆檔案

譯文出自 掘金翻譯計畫 譯者 pmwangyang 為了有計畫的發展架構設計 介面 文化和開發路線,unix 系統明確了一系列統一的概念和創想。這幾點裡面最重要的一點莫過於一句咒語 一切皆檔案 被廣泛認為是 unix 的定義之一。暴露,所以你可以用同一套命令來讀寫 操作磁碟 鍵盤 檔案或網路裝置。這...