在神會如何數數?的末尾我們提到了對象和屬性的關係。
我們可以認為一個對象是一組屬性的集合,例如{ 屬性1, 屬性2, ... },而如一個紅色的球擁有紅色和球形兩個屬性,也就是{ 紅色, 球形, ... }。
而同時一個屬性也可以理解成一組對象的集合,例如「紅色」這個屬性可以視為所有紅色物體的集合,這個集合也會包含我們剛才提到的紅色的球,於是紅色這個屬性即是{ 紅色的球, 其他紅色物體...}。
不過這樣的話,要定義一個屬性需要羅列出所有擁有這個屬性的對象,這基本不可能做到,也會有循環定義的問題(定義對象需要定義屬性,定義屬性又需要定義對象)。我們可以把屬性定義成一個等價關係,也就是給定兩個對象a和b,如果a和b都是紅色的或都不是紅色的,就視作a和b等價。
更具體地,對於紅色這個等價關係,給予兩個對象a和b,我們可以寫出三種狀況:
- 紅色(紅色的球, 另一紅色物體) => 等價
- 紅色(藍色的球, 綠色的球) => 等價
- 紅色(紅色的球, 藍色的球) => 不等價
實際上,在數學上一個等價關係R就是滿足以下三個條件的關係:
- 自反性(reflexivity),一個對象總和自身等價。R(a, a)是成立的。
- 對稱性(symmetry),a和b在關係中的順序是無關的。R(a, b)成立則R(b, a)也成立。
- 傳遞性(transitivity)。如果R(a, b)成立,R(b, c)成立,那麼R(a, c)也成立。
我們可以發現我們的「紅色」是滿足這些條件的,而傳遞性會把所有紅色的對象聯繫起來,也會把所有不是紅色的對象聯繫起來。於是,紅色這個等價關係可以用來把一組對象分為兩類,{ 所有紅色的對象 }和{ 所有不是紅色的對象 }。也可以想象紅色為一個眼鏡,當透過這個眼鏡去看一個對象,可以看到它是紅色或不是紅色。
這樣的話,我們就避免了需要在定義紅色的時候羅列所有對象。實際上,我們可以把多個顏色合併定義成一個等價關係。例如我們可以讓「顏色」這個等價關係包含{紅色,綠色,藍色},而當兩個對象擁有同樣的顏色,它們等價。具體來說:
- 顏色(藍色的球, 另一藍色物體) => 等價
- 顏色(綠色的球, 另一綠色物體) => 等價
- 顏色(紅色的球, 藍色的球) => 不等價
也就是給定顏色這個關係,我們可以把一組對象分成四類{ 所有紅色的對象 }, { 所有綠色的對象 }, { 所有藍色的對象 }, { 所有不是這三種顏色的對象 }。要做到這點,我們還需要顏色之間是互斥的,也就是一個對象不可能同時是紅色和綠色。此外,我們也可以讓顏色這個關係包含所有顏色,而不僅是紅綠藍三種。
此時,一個對象也可以不想象成屬性的集合,而是不同等價關係的交點。例如一個對象可以有兩個部分(顏色, 形狀),可以是(紅色, 球形),(藍色, 方形)等等。這就和座標系的(x, y)是類似的,顏色和形狀分別就是兩個座標軸。
但是這樣會有一個問題,如果有兩個紅色的球,它們不是同一個,但是在這個座標系下會被認為是等同的,因為僅憑顏色和形狀不足以區分它們。我們需要引入新的信息,例如我們可以給每個球編號,使每個球擁有唯一的編號,這樣編號就是一個等價關係。(顏色, 形狀, 編號)可以確定一個具體的球。或者我們也可以像神會如何數數?裏提到的,用三維空間的座標來區分每一個物體,因為兩個物體不可能在空間上佔據同一個座標。
這時候再看忒修斯之船的問題就會很清晰了,一個把所有部件都換了的船還是不是同一艘船?這要看我們怎麼定義同一性,也就是一種在時間上不變的等價關係。我們遇到的問題是,如果我們把船定義成所有部件,那麼每個時刻的船會是(所有部件, 時間)。在不同的時刻,船的部件是不一樣的,所以這個定義下的船每次換部件便和之前的不再一樣,沒有時間上穩定的同一性。
如果我們加入一個新的等價關係,船的註冊號,每個時刻的船是(註冊號, 時間)。由於註冊號對每艘船都是唯一的,我們會發現這個定義在時間上是穩定的,因為船的註冊號不會因時間而改變(又或者會?這個定義也未必完美)。換言之,註冊號這個等價關係可以把不同時刻的同一艘船分到同一類,我們可以在時間和部件變化之後還認出它。
實際上,如果沒有時間上的同一性,我們無法理解變化。因為我們要知道一個東西變化了,必須有一種方式把現在的它和之前的它聯繫起來。或者反過來,給定同一性和變化,我們可以定義時間。同一性的定義可以很靈活,例如我們如何知道今天的自己和昨天的自己是同一的?大概只是因為我們的記憶裏總是有上一刻的自己,這件事讓我們相信自己在時間變化上是穩定的。
PS. 其實我內心的習慣會把根據等價關係分類想象成除法,也就是(一個集合 / 等價關係) = 一組等價類。這個是來源於群論裏的商群,(整數 / 同餘關係) = 一組同餘類。所謂的同餘關係就是,做除法之後餘下的餘數是相等的,也就是1和5對於除以4來說是等價的,因為餘數都是1。而除以4的同餘類一共有4個,餘0,餘1,餘2,餘3。1、5、9等都在餘1的類裏。這個意義上的除法就是用等價關係來分類,除(partition/divide)之後會散成很多塊。