[英]In Category theory, can two empty sets be isomorphic with each other?
我是Haskell的初學者,我想創建一個函數來確定兩個列表之間是否存在同構。 我認為如果它們的長度相同> 0,答案是肯定的。
但是空集呢? 空集之間可以有同構嗎?
謝謝。
當然,這取決於類別!
在標准類別SET中,其中的對象是集合,而箭頭A-> B是將B的元素與A的每個元素相關聯的函數,表示空集合的任何兩個對象之間肯定存在同構關系-實際上,它們是同一對象!
也可以想象一個類別,其中集合充實了附加的代數結構(以便從該類別到SET有一個明智的健忘函子),盡管健忘函子將兩個對象映射到兩個對象,但附加代數結構仍可以區分兩個對象空集,在這種情況下,它們之間可能沒有同構。
在Haskell中,我們通常將類型視為類別中的對象,而不是單個值。 除非我們定義列表是對象的“自定義”類別,否則詢問一個列表(一個值)是否與其他列表同構是沒有意義的。 在后一種情況下,答案取決於我們如何定義類別。
無論如何,在集合的類別中,給定任何集合A
,從空集合{}
到A
恰好有一個函數(態射) f : {} -> A
這是具有空域的唯一功能,恰好與空集重合。 為了幫助理解這一點,請記住函數f : X -> Y
是一組對
f = {(x0,y0),(x1,y1),....}
with x0,x1,... in X, and y0,y1,... in Y
這樣
for any x in X there is a unique y in Y satisfying (x,y) in f
當X = {}
,我們不能x0,x1,... in X
選擇x0,x1,... in X
,因此唯一的選擇是讓f = {}
,即“空對對”。 f
是一個函數,因為條件降低到
for any x in {} .......
這是一個虛無的事實,因為對空集的普遍量化始終是正確的。
因此,對於任何A
,只有一個函數f : {} -> A
即使A = {}
也是如此,在這種情況下, f : {} -> {}
也是同構的。 實際上,我們有f = id
(因為沒有其他函數!)和f . f = f = id
f . f = f = id
(因為沒有其他函數!),因此f
是其自身的逆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.