文 / 翁昌黎(《孔恩vs.波普》中文譯者)
「無形者,數之所不能分也;不可圍者,數之所不能窮也。」-莊子
在上一篇《建構所有自然數的神奇魔術師—聯集公設》我們解釋了如何利用徹美洛—法蘭寇的三個公設ZF3—ZF5神奇地「製造出」所有的自然數,這些自然數本身都是一個集合。但不論我們製造出來的自然數有多大,它們仍然是有限的。回想一下用集合所定義的自然數:
0 = Ø = { }
1 = {Ø} = {0}
2 = {Ø, {Ø}} = {0, 1}
3 = {Ø, {Ø}, {Ø, {Ø}}} = {0, 1, 2}
…
稍微觀查一下會發現,每個自然數都正好等於其內含元素的個數。我們可以將這個程序不斷進行下去,所以理論上不論多大的數都可以按這個機械程序製造出來。但就算你服了仙丹可以長生不老,整天啥事不幹坐在那裡製造自然數,終於在某天造出了10的80次方那麼大的數也別高興。因為這個數雖然龐大到缺乏實用價值(它大約等於宇宙所有粒子的數量級),但它仍然是有限的。你若繼續忙一百萬年製造出更大的數,結果仍然一樣,造出來的仍然是有限數。
這或許就是康托之前的絕大多數數學家想法的根源,世界上並不存在無限大的數,也不可能存在無限大的數,因此任何集合都只能是有限的。但無限集合之父康托就是不信邪,他構造出各種無窮集合,卻因此而受到保守派數學家的殘酷打擊,這種學術迫害似的冷暴力讓康托在心灰意冷的情況下鬱鬱以終。
我們知道光靠前五個公設無法「製造出」無限集合,還需要其他的新東西才行,於是我們有了第6個無限公設(Axiom of Infinity):
ZF6 ∃ x [Ø ∈ x ∧ ∀y (y∈ x → S(y) ∈ x)]
這邊有個新符號S(y),稱之為後繼函數(successor function), 其定義為S(y) = y ∪{y}。在理解無限公設之前我們得先把後繼函數弄清楚,看它到底是用來幹什麼的。
根據定義,y的後繼函數等於y集合和以y為元素所成的集合兩者的聯集。如果以上這個定義的解釋聽起來太過複雜,那就把這個定義拿來實際操作看看會發生什麼事。我們首先把0放進S(y) 裡,看看它會變成什麼樣子。
根據定義:
S (0) = 0 ∪ {0} = Ø ∪ {Ø} = { } ∪ {Ø} = {Ø} = 1
我們發現0的後繼函數值正好是1。現在把1放到S(y) 裡,S (1) = 1 ∪ {1} = {Ø} ∪ {{Ø}} = {Ø, {Ø}} = 2,居然碰巧又是2。如果你繼續往下作實驗,把2,3,4…等等都逐一放到S(y) 裡去,你會得到某自然數的後繼函數值正好就是某個自然數之後那個數,直覺點說就是某數的後繼函數值等於某數加1。用集合形式定義的後繼函數S(y) = y ∪{y}正好扮演了基礎算術中自然數的後繼者的功能。它是一個次序系列,0後面是1,1後面是2,2後面是3…等等。
依此類推,後繼函數的功能在於從某個自然數導引出後面的自然數,構成一個有序數列。有了這個基本概念再回過頭去看無限公設,你就會明白這個公設是說: 有這樣一個集合x存在,其中Ø是這個集合的元素,並且假如某集合y屬於集合x的話,那後繼函數S(y) = y ∪{y}也必然屬於x。
這個公設有何巧妙之處呢? 你會發現它就像多米諾骨牌一樣,單用0這張牌就可以推倒所有的牌。ZF6既然說Ø = 0是集合x裡的元素,那麼根據公設的規定1必然也在x裡,現在1在x裡了,根據後繼函數的規定,2也必須在x裡,骨牌效應導致0之後的所有自然數都必須在x裡。
稍加觀察會發現這個過程不會在某個數停下來,而是不斷進行下去,因此x集合的元素在骨牌的倒塌效應下包含了所有的自然數,而所有自然數是無限的。ZF6讓 我們擁有了第一個無限集合。
故事到此似乎功德圓滿,我們才用了一個簡短的ZF6公設就把整個自然數都收進一個集合裡,真有如太上老君的葫蘆,將任何妖魔鬼怪都收攝進去。但對於無窮集合來說,這卻只是剛進入無窮集合的一小步,還有更多的妖魔鬼怪等在前面,這到底是怎麼回事呢? 只好等下回再分解了。