從羅素悖論到數(shù)學(xué)公理化
一? ?悖論
一個科學(xué)家所遇到的最不合心意的事莫過于在他的工作結(jié)束時,其基礎(chǔ)崩潰了。羅素先生的一封信正把我置于這個境地
——剛要出版書的弗雷格(Gottlob Frege)
悖論是建立理論體系時常用的檢驗手法,如果從一個理論體系出發(fā)導(dǎo)致了悖論,那么這個體系就出現(xiàn)了瑕疵,必須修正甚至揚棄
悖論(Paradox)通常是指這樣一種語句,按普遍認可的邏輯推理方式,可推導(dǎo)出兩個對立的結(jié)論,形式為:如果事件A發(fā)生,則推導(dǎo)出非A,非A發(fā)生則推導(dǎo)出A
無論在哪個領(lǐng)域,是否在數(shù)學(xué)也好,都要關(guān)心下面的推理前提:同一律,矛盾律,排中律
而矛盾律就保證了具有相反意義的命題不能同時為真,即基于矛盾律的理論一定不允許出現(xiàn)悖論
但是,我們?nèi)绾稳ッ枋鲆粋€悖論?
我們常常會把一些看起來不合理的語句稱為悖論或佯謬,從字面意思理解,就是錯誤的東西,例如我們平時常說的說謊者悖論(Liar Paradox):我現(xiàn)在說的這句話是謊話
相信大家都知道這句話哪里比較“繞”,但還有一些所謂的悖論只是在描述看起來不太合理的東西,僅此而已,如相對論中的雙生子佯謬,集合論中的分球悖論等等
本文中談及的悖論是指這樣的語句:
由此,我們可以得出構(gòu)成悖論的充分必要條件:真推出假,假推出真。顯然,因為無論如何都是矛盾的,悖論不具有確定的真假性,所以悖論不是命題,因為命題(proposition)是判斷某一件事情的陳述句
另一方面,悖論也不是開語句,開語句中含有變量,如,沒有給定這些變量的具體取值之前,是無法確定語句的真假,但給變量確定某個值時,即可判斷真假。所以開語句可以通過添加量詞或者取值的方式轉(zhuǎn)化為命題,如
,而悖論不能做這方面的轉(zhuǎn)換
注意我所說的內(nèi)容,悖論是一個語句,不具有確定的真假性,而對其本身的真假性賦值時,無論如何,都會出現(xiàn)矛盾。則,我默認了悖論要表達成陳述句
例如,說謊者悖論的表述有:
表述1:“如果某人說自己正在說謊,那么他說的話是真還是假?”
表述2:“我現(xiàn)在說的這句話是謊話”
悖論要表達為陳述句形式,顯然,按照本文的定義,我們應(yīng)采取表述2,可能我們即將遇到的其他悖論表述成這種方式會比較奇怪,請大家理解這種思維方式
從認識論的角度看,產(chǎn)生悖論的根本原因是人們的認識與客觀實際的矛盾,是認識客觀世界的方法與客觀規(guī)律的矛盾
這是2017年版高中數(shù)學(xué)教材選修C類《邏輯推理初步》上的一句話,這本書是一本較為基礎(chǔ)的數(shù)理邏輯入門書,一定程度上推薦大家閱讀

在我看來,這本書最大的缺點就是什么地方都要提兩句哲學(xué)
這倒難免。邏輯學(xué)最早就是依附于哲學(xué)的,現(xiàn)在仍在使用的不少數(shù)理邏輯用語都是亞里士多德提出來的,不可否認哲學(xué)在邏輯學(xué)發(fā)展歷程中的重要作用
但是,數(shù)學(xué)終究是數(shù)學(xué),他不研究物理世界,他不研究客觀事實,我不去討論依附于哲學(xué)的數(shù)學(xué)思想是還是壞,但一般不推薦這種思維方式

二? ?羅素悖論
在正式提及羅素悖論之前,先說一下與羅素悖論同根同源的理發(fā)師悖論(Barber Paradox):一個給且僅給自己不刮胡子的人刮胡子的理發(fā)師應(yīng)該給自己刮胡子。
你可能會問,怎么就應(yīng)該了?
注意,我們說悖論一定要表述為陳述句形式,而不應(yīng)該表述為一個問題,所以我沒有提出理發(fā)師是否給自己刮胡子的問題,而是直接說明他給自己刮胡子
我相信大家都能意識到這個問題出在哪里,為什么它這么“繞”
(有人說理發(fā)師是女的,但事實理發(fā)師自己有沒有胡子并不是很重要的,有胡子是一個人的固有性質(zhì)。所以我不喜歡把一個數(shù)學(xué)問題轉(zhuǎn)化為一個實際問題,總會達到適得其反的效果)
據(jù)說,羅素提出理發(fā)師悖論和羅素悖論是為了詰難數(shù)學(xué)家康托爾(Cantor),就是那個創(chuàng)立了樸素集合論的康托爾。集合論的出現(xiàn)沖擊了傳統(tǒng)的觀念,顛倒了許多前人的想法,很難為當時的數(shù)學(xué)家所接受,遭到了許多人的反對。不過漸漸地,康托爾集合論也被一些數(shù)學(xué)家接受。而羅素提出理發(fā)師悖論和羅素悖論是為了指出康托爾集合論中的一個錯誤,其實康托爾本人也發(fā)現(xiàn)了,但是康托爾并沒有說出來
無論R∈R正確與否,都能得到一直相反的結(jié)論。也就是說,羅素悖論符合悖論的定義
注意,如果想實現(xiàn)x?x,前提是x也是一個集合,且集合x的元素中含有集合。這里可以把對x的要求弱化為集族(Set Family),即由且僅由集合構(gòu)成的集合
看起來,理發(fā)師悖論和羅素悖論是類似的,甚至可以說是一致的。我們有理由猜測理發(fā)師悖論就是羅素悖論,如果此猜想成立,可以說理發(fā)師悖論是羅素悖論的一種解釋,羅素悖論是理發(fā)師悖論的抽象化擴展和模型
下面,我們來證明這個猜想。
欲證,即需找到滿足條件的x和R。一個自然地想法是,把每一個人看成一個元素,但是,這樣無法構(gòu)造出集族x
不妨把每個人映射到一個集合。此時,x?x表示自己不給自己刮胡子,x∈x表示自己給自己刮胡子,那么,理發(fā)師對應(yīng)的集合
,即給且僅給"自己不刮胡子的人”刮胡子。顯然滿足羅素悖論的描述

這個證明最巧妙的地方在于,它把每個人都表示成了集族,并使x?x這個條件有了含義
除理發(fā)師悖論以外,還有一個書目悖論,一個圖書館編纂了一本書名詞典,它列出這個圖書館里所有不列出自己書名的書,那么它應(yīng)該列出自己的書名。書目悖論和理發(fā)師悖論真的是完全相同,顯示它也是羅素悖論的一種解釋,仿照上例顯然,讀者自證不難(bushi)
接著,我們再提一提康托爾悖論:
稱一個集合A的所有子集構(gòu)成的集族為集合A的冪集(Power Set)。而集合的勢是一個表示集合元素個數(shù)的量,對于有窮集合,他的勢就是他的元素個數(shù);如果集合M的元素多于集合N的元素個數(shù),就說集合M的勢嚴格大于集合N的勢
康托爾定理(Cantor's Theorem)表明任何集合A的冪集的勢嚴格大于A的勢。對于有窮集合,該結(jié)論顯然成立,因為,對于n元素集合,它的勢為n,而它的冪集的勢為2^n。但是,對于無窮集合,這個結(jié)論仍然成立
康托爾構(gòu)造了這樣一個集合:包含全部集合的集族,稱之為“大全集”。根據(jù)定義,大全集應(yīng)該是勢最大的集族了,但是根據(jù)康托爾定理,大全集的冪集應(yīng)該有更大的勢,我們知道大全集的冪集也是集族,那么大全集就不是包含全部集合的集族。根據(jù)反證法原理,大全集不存在。這就是康托爾悖論,這說明集合論的基礎(chǔ)是有問題的
如果大全集存在,確實可以推出其不存在;但是,若大全集不存在,并沒有什么矛盾。所以,我認為康托爾悖論并不是悖論
不過,由于理解康托爾悖論需要有深厚的集合論基礎(chǔ),因此在康托爾悖論剛提出時并沒有引起多大的轟動。直到理發(fā)師悖論和羅素悖論提出,數(shù)學(xué)家和邏輯學(xué)家才注意到了這個問題,史稱第三次數(shù)學(xué)危機(the Third Mathematical Crisis)
當時,集合論已經(jīng)深入到眾多領(lǐng)域,甚至成為了數(shù)學(xué)的基礎(chǔ),集合論的悖論可以說是動搖了數(shù)學(xué)大廈的根基。弗雷格在收到羅素的信之后,在他剛要出版的《算術(shù)的基本法則》第2卷末尾寫道:"一個科學(xué)家所遇到的最不合心意的事莫過于在他的工作結(jié)束時,其基礎(chǔ)崩潰了。羅素先生的一封信正把我置于這個境地"。

三? ?數(shù)學(xué)公理化
在數(shù)學(xué)中,數(shù)學(xué)公理化思想并不是很新鮮。數(shù)學(xué)的主要任務(wù)是得到數(shù)學(xué)研究對象性質(zhì)、關(guān)系和規(guī)律的結(jié)論,這些結(jié)論通常用命題或公式的形式表達。為了驗證結(jié)論的正確性,就必須對命題或公式進行證明。無論哪種證明方法,都需要建立證明的前提,這個前提本身是不需要證明的,甚至是不可證明的。亞里士多德把不需要證明的前提分為兩類:一類是獲得任何知識都要依賴的前提,稱為公理(axiom);另一類是為獲得某些專門知識所要依賴的前提,稱為公設(shè)(postulate)。
至少,從古希臘時期,公理化思想的萌芽已經(jīng)出現(xiàn)。在歐幾里得的《幾何原本》中,歐幾里得給出了23個定義,5條公理和5條公設(shè),這些內(nèi)容描述了平面幾何的基本研究對象,基于人們的經(jīng)驗。
即使歐幾里得建立了一套看起來完美的平面幾何體系,但在“杠精”的眼中,仍然是漏洞百出。雖然歐幾里得很“嚴密”地從零開始論證,但仍然不夠嚴密。早期的公理化嘗試失敗了
但是,為什么數(shù)學(xué)家執(zhí)著于從有限的公理開始,逐步的演化出數(shù)學(xué)體系呢?
我們做出一個判斷,需要更基礎(chǔ)的判斷(引理)作為輔助,而更基礎(chǔ)的判斷又能通過更更基礎(chǔ)的判斷得來,容易聯(lián)想到,邏輯應(yīng)該存在一條鏈,從一些基礎(chǔ)的命題開始,這條鏈被自然地引出來——這是數(shù)學(xué)家美好的設(shè)想
現(xiàn)在,人們統(tǒng)稱那些不加(需)證明(不證自明)的前提為公理。而數(shù)學(xué)家想要從這些基本的公理出發(fā),證明出我們需要的定理——即使這個命題很簡單。這樣,所有的命題就成為了一個體系,如果基于公理能夠形成一個數(shù)學(xué)的邏輯系統(tǒng),那么稱這個系統(tǒng)為公理體系(axiom?system);如果數(shù)學(xué)證明的演繹系統(tǒng)建立在公理體系之上,那么稱這樣的論證為數(shù)學(xué)公理化方法(mathematical?axiomatic?method)。
公理化思想在各個領(lǐng)域中都有著廣泛應(yīng)用的原因是,公理化思想方法從少量的原始概念和公理出發(fā),可以演繹出內(nèi)容浩繁的理論體系,起到以簡馭繁的功效。正如牛頓所說:“幾何的輝煌之處就在于只用很少的公理而能得到如此之多的結(jié)果?!贝送?,公理化方法還為不同理論提供了一個可比較的基礎(chǔ),因為公理化方法將不同理論的基礎(chǔ)結(jié)構(gòu)展現(xiàn)得十分清晰。——當然,這只是數(shù)學(xué)家美好的幻想。因為從直觀上來看,公理化沒有讓數(shù)學(xué)變得簡單,而是變得更加的“復(fù)雜”。想想,如果判斷1+1=2也需要證明,判斷一個東西是不是集合也需要幾條公理,數(shù)學(xué)在直觀上的反應(yīng)就變?nèi)趿?/p>
但為什么我們要“自討苦吃”研究數(shù)學(xué)公理化呢?
下面,重點來說第三次數(shù)學(xué)危機之后的事情——第三次數(shù)學(xué)危機是數(shù)學(xué)公理化的一個重要催化劑
假如你是數(shù)學(xué)家,要如何解決羅素悖論呢?——我相信你不忍拋棄集合論
假設(shè)一個情境,你說你是一個大音樂家,你會彈所有樂器,此時,有一個人拿一把吉他過來,問你,你會彈吉他嗎?你突然發(fā)現(xiàn),你真的不會彈吉他,那么,你要怎么解釋才能讓自己的話說得通呢?
你可以說,“吉他不是樂器”。這樣的話,你確實還會彈所有樂器,你依然不會彈吉他。但是,先前的矛盾就被解決了——自我欺騙實錘了——數(shù)學(xué)中有很多這樣的自我欺騙
羅素悖論中構(gòu)造了引發(fā)矛盾的集合,我們只需要規(guī)定這樣的“集合”不是集合即可,即有正則公理(基礎(chǔ)公理,Axiom of regularity):對任意非空集合x,x至少有一元素y使x∩y為空集。(雖然這個公理的得出不是很顯然)
第三次數(shù)學(xué)危機使數(shù)學(xué)家認識到集合必須要有嚴格的規(guī)定,并不是一些隨便的元素就能構(gòu)成集合了,就如同第二次數(shù)學(xué)危機后數(shù)學(xué)家完善了極限的概念一樣。在康托爾等人的努力下,ZF公理系統(tǒng)建立起來了
策梅洛(Zermelo)首先提出了比較完整的公理,這些公理指明了哪些集合是合法的,對集合的哪些操作是合法的,從而構(gòu)造出合法的集合,將羅素悖論中的集合R排除在外了。后經(jīng)過弗蘭克爾(Fraenkel)的完善和補充,形成了ZF公理系統(tǒng)(Zermelo,F(xiàn)raenkel,ZF)?,F(xiàn)在公理體系已經(jīng)成為數(shù)學(xué)的基礎(chǔ),包括:皮亞諾算術(shù)公理體系、希爾伯特幾何公理體系、策梅洛-弗蘭克爾集合論(Zermelo-Fraenkel?Set?Theory)公理體系、柯爾莫戈洛夫概率論公理體系等。
下面我憑借我僅有的知識盡可能地解釋一下ZF公理系統(tǒng)中的八條公理(原表述并非如此)
1.外延公理(容積公理):一個集合完全由它的元素所決定。如果兩個集合含有的元素相同,則它們是相等的。
2.分離公理:若X是一個集合,那么可以斷定,X集合中滿足某條件的一些元素也構(gòu)成集合
3.配對公理:任意兩個集合可以構(gòu)成以他們?yōu)樵氐囊粋€集族
4.并集公理:幾個集合的并集也是一個集合
5.冪集公理:一個集合的冪集也是一個集合
6.無窮公理:存在一集合,它有無窮多元素。
7.替換公理(置換公理):某集合是某映射的定義域,其值域也是一個集合
8.正則公理:不允許有屬于自身的集合
由此可以看出,公理化對于數(shù)學(xué)的重要性——借助這些公理保證了哪些集合是合法的,排除了非法的集合
但是,你仔細想想,ZF公理體系真的說清楚了什么是集合了嗎?皮亞諾算術(shù)公理體系規(guī)定0是自然數(shù),但他說明白什么是0了嗎?希爾伯特幾何公理體系,又真的解釋清楚什么是點線面了嗎?事實上并沒有。數(shù)學(xué)公理化,往往采取了形式上的定義,即名義定義,但也只有這樣,才能真正保證數(shù)學(xué)大廈的穩(wěn)定
2022年7月29日修改