據說羅素悖論有解,如何解?

http://www.zhihu.com/question/19760244看到這個問題里@洪濤的回答,所以想來問問以下是引用。

我看了一下上面的說的大多數都是文字遊戲,其實最有名的悖論一定是羅素悖論即理髮師悖論的「學術版」,析言之。

集合從邏輯上可以分為二類,一類稱之為本身分子集合,一類稱之非本身分子集合。

本身分子集合是指集合以其自身為元素,例如所有全體非正方形所組成的集合A,在這個集合A中元素可能是圓形,可能是太陽等等,只要不是正方形就可以。而集合A本身也不是正方形,所以它自身也是集合A中的一個元素。這樣的集合稱之為本身分子集合。

非本身分子集合是集合不以其本身為元素,這一種集合其實我們更常見一些,例如自然數集N,是由全體自然數所組成的集合,但是N本身不是自然數,所以N是非本身分子集合,這樣的例子還有很多,如所有人類所組成的集合,所有大於3的實數所組成的集合等等。

那麼什麼是羅素悖論呢?

羅素悖論是指全體非本身分子集合所組成的集合(記作B)是本身分子集合還是非本身分子集合,從邏輯的角度來講,它只能居其一。可是若它是本身分子集合,那麼B是它的元素,但這個集合是由全體非本身分子集合所組成,矛盾。若它是非本身分子集合,那麼B不是它自身的元素,但由定義,B是全體非本身分子集合所組成的集合。自然也包含B,矛盾。用話解釋較繁,用符號較易。

(圖片來http://en.wikipedia.org/wiki...)


知乎相關領域的大神已經很多了,但是大神好像不太能脫離術語說話,並且沒有人提到羅素本人的解決方案——類型論。所以還是答一下。

我的回答分三部分:澄清羅素悖論的一些誤解,以ZF系統為例說明公理集合論如何避免羅素悖論,不精確的介紹羅素本人提出的類型論。

首先真的想澄清一點:

羅素悖論不等於理髮師悖論!理髮師悖論嚴重誤導了沒有相關知識背景的人!

為什麼這麼說?理髮師悖論中定義了一個這樣的理髮師:只給那些不給自己理髮的人理髮,然後分析「他應不應該給自己理髮」這個問題,最後得出:「他應該給自己理髮」等價於「他不應該給自己理髮」。而這是一個矛盾。

但是想想看,以上論證過程不正是一個歸謬論證么?從一定的前提出發,經由邏輯推演最終得出矛盾的結論,這不就是歸謬法嗎?而歸謬法說明了什麼?不就是說明了這種理髮師根本就不能存在嘛。所以理髮師悖論實際上是在告訴我們,這樣的理髮師是不存在的。這有什麼問題嗎?並沒有啊!這算什麼問題,這就能帶來數學危機?開什麼玩笑。

我們再看羅素悖論:首先定義一個性質P:"不屬於自己",然後定義一個集合S,這個S就是滿足P的那些集合構成的集合,也就是問題敘述中的「全體非本身分子集合構成的集合」。那麼類似理髮師悖論,我們就會發現,用歸謬法可以證明這個S並不存在。So far so good. 這個S不存在又有什麼關係?

還真有關係,因為素樸集合論有一條概括規則:

對於任何一個合理的性質P,都存在一個集合來刻畫它,這個集合由所有滿足P的對象構成。(合理的,指的是外延明確的,也就是我隨便找一個東西一定可以判斷它有還是沒有這個性質,不會出現既有這個性質又沒有這個性質的情況,也就是任意a,要麼Pa要麼
egPa。)

比如「是大寫英文字母」這一性質就可以確保{A, B,..., Z}這個集合是存在的。這條概括規則可以說是素樸集合論最基礎的規則之一。回過頭來看羅素悖論里的那個性質P,它顯然是合理的性質,那麼根據概括規則S就必須存在,但是歸謬法已經證明了S不可能存在,這裡出現了關於S存不存在的矛盾。這個矛盾才導致了羅素悖論。

既然出現了矛盾的結果,那就正好說明了概括規則是有問題的,是有內在矛盾的。換句話說,理髮師悖論只不過是羅素悖論證明過程中的一個部分,它用「S屬不屬於自身」這個矛盾證明了S不可能存在。然後我們再用概括規則證明了S必須存在,這個「S存不存在」的矛盾說明了概括規則的內在矛盾性,導致了素樸集合論的崩潰。所以請不要再拿理髮師悖論來類比羅素悖論了,一個小小的理髮師不存在並不能導致數學危機。

啰啰嗦嗦了半天還沒進入正題,只是希望澄清一下許多人對羅素悖論的誤解。

公理集合論的進路( ZF(C) , NBG(C) , ...)

素樸集合論推出了邏輯矛盾,邏輯矛盾難道還能解決?顯然不能,我們只能放棄素樸集合論。但是素樸集合論之前是作為整個數學的基礎存在的啊,放棄了之後總不能撒手不管了,肯定得提一套新的理論出來作為數學的基礎。這裡有幾種進路,其中一種就是其它答案中提到的公理化集合論的進路,也是主流的進路。

需要注意到,用理髮師悖論式的證明來得出S不存在,這是不需要依靠集合論本身的,只需要用最基礎的邏輯就夠了,因此不管你集合論長什麼樣子,反正「S不存在」是必然為真的。

我們需要做的是,構造一個新的集合論,使得這個集合論本身也能推出「S不存在」,而不是像素樸集合論的概括規則一樣推出「S存在」。這才是我們的最終目標。下面都是在圍繞這個目標。

素樸集合論除了概括規則以外,其它的很大一部分都挺好的,總不能全盤否定。所以大家覺得應該改進而不是拋棄。改進的辦法就是,對集合做出各種限制,從而避免出現羅素悖論那種情況。下面以ZF系統為例,用人話說一下究竟是怎麼避免了羅素悖論。我們需要證明的是,ZF系統無法推出「S存在」,那麼矛盾自然就消除了,根據理髮師悖論的歸謬證明,就可以得出S不存在了。

ZF系統是一個純粹的公理系統,它的公理模式規定了集合的一些性質,以及如何從已有的集合產生新的集合。通過這些公理來達到對集合做出限制的目的。有一條公理叫「分離公理」跟概括規則長得很像,它說的是:

對於任意集合x和任意合理性質P,都可以產生出一個集合y,y由x中那些滿足P的元素構成。(這裡的合理和上面的合理不太一樣,這裡的合理指的是可以用該公理系統中的合式公式來刻畫,不過這不是關鍵,所以我還是用了合理二字)

通俗的說,分離公理就是給概括規則加了個限制:由性質P定義出集合,必須在現有的集合內部分離出那些滿足P的集合,不能像原來那樣沒有邊界。

還有一條公理叫正則公理

任意非空集x,裡面肯定包含了一個元素y,使得x和y沒有公共元素,也就是xcap y=emptyset

還有一條xx公理保證了,如果x是集合,那麼{x}也是集合,這條公理具體名字我不記得了...

下面寫一下ZF系統避免羅素悖論的通俗版(說了是通俗版就不要噴不嚴謹了吧):

對於任意x,根據xx公理,可得{x}也是集合。由於{x}是集合,所以根據正則公理,{x}裡面有一個元素跟{x}本身交集為空,但是{x}裡面只有一個元素x,也就是說x跟{x}不相交,xcap{x}=emptyset,也就是說x不是自己的元素。因此,forall x, x
otin x

而羅素悖論里定義的那個S是什麼?就是所有不屬於自己的集合構成的嘛,既然每個集合都不屬於自己,那麼S就是所有集合構成的集合,也就是大全集。但是根據分離公理,要想通過性質P定義出一個集合,必須從已有的集合裡面分離出來,但是哪個集合能分得出大全集啊...顯然,沒有一個集合有這樣的本事可以分離出一個大全集。所以,根據公理集合論可以推出:大全集S(也就是羅素悖論里的那個S)是不會存在的,既然S不存在,那麼就不會產生羅素悖論中關於「S存不存在」的矛盾,因此就避免了矛盾。

嚴謹的證明版本如下:

假設存在大全集,那麼對性質「x
otin x」應用分離公理,就可以得到S={x|x
otin x}是一個集合,但是經過分析可知Sin S當且僅當S
otin S,發生矛盾,因此假設錯誤,大全集不存在。而S其實就是大全集本身,因此S也不存在。因此不會產生羅素悖論中關於「S存不存在」的矛盾。證畢。

類型論的進路

(有更新,因為之前我自己對類型論的理解有偏差)

上面是ZF系統的解決方案。公理集合論的方案是主流方案,但其實羅素本人也想出來了一個方案——類型論,不知道為什麼所有的答案都沒有提到,雖然類型論確實不是主流,但好歹是羅素本人提出來的,給個面子也應該介紹一下啊......

我們先跑個題,看看說謊者悖論:這句話是謊話。

這句話之所以成為悖論,是因為它描述的對象正好是它本身,它在試圖談論自己本身的性質。

理髮師悖論其實也來源於這種自指——理髮師說的話裡面包含了他自己。

一般的說來,自指總會導致一些不好的事情,比如數論系統的自指導致了哥德爾不完全性定理,判定一切圖靈機停機的圖靈機的自指導致了停機問題,而S={x|x
otin x}的自指則導致了羅素悖論。

羅素想要一網打盡由自指產生的問題,他在《數學原理》中說:

使我們能夠避免不合法總體的那個原則可以陳述如下:「凡是牽涉到一個彙集的全體,它本身不能是該彙集的一個分子」......必須使關於總體的陳述不屬於這個總體的範圍之內。

羅素提出了一個很直觀的解決方案——分階。(也叫分類型,分type)

直觀地認識這個世界,人會覺得世界是由一個一個的個體對象組成的,比如蘋果桌子電腦手機等等,這都是現實中存在的實體。我們把這種東西叫做對象,它們屬於type 0.

對象可以構成集合,比如一袋蘋果,幾部手機,這些都是對象構成的集合。這樣的集合我們稱為type 1,一階的集合。

一階集合自己也可以構成集合,這就是「集合的集合」,這和對象的集合顯然有區別,我們稱這種集合叫type 2,二階集合。

......

類似的可以構造更高階的集合。顯然,只能是高階集合包含低階對象或集合,不能同階之間包含,更不能低階包含高階。按照這種規定,我們根本不能籠統的稱一個x是集合,我們只能稱它是哪一階的集合。

現在我們看S={x|x
otin x},由於類型論精確了集合的概念,我們就得問,這個S究竟是哪一階的集合?會發現它哪一階都不是,證明如下:

對任意n,假設S是n階集合,對n+1階集合x來說,由於x
otin x,那麼就有xin S,則違反了類型論的規定,故假設錯誤。因此,對任意n,S都不是n階集合。這就把S排除在集合概念之外了,避免了羅素悖論。

這還不夠。

集合論的語言是什麼?是一階語言,也就是包含forall, exists, x, 
eg, vee,dots等等的語言。我們要對集合論進行類型化,為什麼不乾脆完全改造一階語言?別忘了羅素是誰,羅素是理想語言主義的領軍人物,他甚至想著改造自然語言以適應邏輯語言。改造一階語言具體方案如下:

(以下可能需要一些一階語言的基礎,但我會盡量用人話說...)

先簡單提一下一階語言:forall,exists,wedge,vee,
ightarrow這些就不說了,那些構成公式的規則也不說了,基本謂詞PQR這些也不說了,這些都可以自行查找。這裡的關鍵是,一階語言是要有論域的,論域就是我們應用一階語言去談論的東西。一階語言本身沒有任何意義,它只是一堆無意義的符號而已。只有當我們指定了論域,也就是指定了我們到底用符號在表示什麼東西,一階語言才是有意義的

一階語言的論域,就是0階的對象,和0階的對象變元。對象就是前面說過的那些,比如「蘋果」「足球」這種個體實體。對象變元就是用來指代不確定對象的一個記號,也就是x啊y啊這些可以構成forall x, exists x的量化公式的變元。

一階語言的謂詞(也就是性質),是針對0階的對象和對象變元而言的。基本謂詞「P,Q」(比如「是紅的」、「是圓的」)等等當然算一階謂詞,因為它們是直接描述0階實體對象的性質的。但一階謂詞還包括一些更多的東西,比如這個:「存在一個論域中的對象x,x的顏色和...不相同」。這裡描述的也是一個0階對象的性質,這個性質就是「有一個顏色不相同的x存在」。

一階命題當然就是用一階謂詞描述具體0階對象性質的那些命題啦。比如「這個蘋果是紅的」「存在一個東西跟這個蘋果的顏色不同」等等,都是一階命題。

二階語言想要描述的是一階的東西,包括一階謂詞和一階命題。具體的做法就是,在原有的論域中加入所有的一階謂詞和一階命題,然後在語言中加入一階謂詞常元變元和一階命題常元變元。

這樣說好像不太好理解,直觀的說就是二階語言談論的對象不僅包括原有的0階實體對象,還包括一階語言中的命題和性質。那麼二階語言中的「性質」(二階謂詞)就應該是「性質的性質」「命題的性質」,二階命題就應該是「性質的命題」「命題的命題」。舉例來說:「甜的」是一個形容食物的一階謂詞,那麼 「用來形容食物的」 就是一個二階謂詞,它描述了「甜的」這一謂詞的性質。對應的二階命題就是「甜的 這一性質是用來形容食物的」。

為了更好地理解二階性質和二階命題,可以把它跟一階進行對比,「蘋果是甜的」描述的是蘋果這一實體的性質,「甜的 這一性質是用來形容食物的」並沒有描述任何實體的性質,它是「甜的」這一性質的性質。

類似的,可以構造更高階的語言,只要把低階的命題和謂詞納入論域,並且在語言中添加相應的謂詞常元變元和命題常元變元就OK。高階命題描述的是低階對象的性質。這裡精確化了「命題」「謂詞」的概念,將命題和謂詞分階了。

這種類型論理論上可以消除一切由於語言上的自指而產生的悖論。比如說謊者悖論,「這句話是謊話」,這句話到底是哪一階的命題呢?不管它是哪一階的命題,它都不能描述自己,因為一個命題只能描述比自己更低階的東西。因此這句話不是一個合法命題,不是命題也就沒有什麼真假之分,因此不構成悖論。

類型論還是很直觀的,「關於命題的命題」「關於性質的性質」「集合的集合」,好像確實跟普通的命題和普通的性質和普通的集合有分別,確實高一個階層。但這種類型論並沒有成為主流,原因如下:

從數學上說:集合論是要用到數學上的,一階語言更是數學的基礎語言,類型論不允許我們籠統的說「所有的集合」「所有的元素」等等,必須區分階才能繼續討論。這給數學帶來很大的麻煩,比如我們用集合論刻畫自然數有一種方法是0=emptyset,1={0},2={0,1},3={0,1,2}...這時要討論自然數的性質就很麻煩了,每個自然數階數都不一樣。

從哲學上說:類型論要面臨一個很重要的問題——「是真的」這一謂詞屬於哪一階?我們可以說一階命題「蘋果是甜的」是真的,也可以說「甜的 這一性質是用來形容食物的」這個二階命題是真的,我們可以說任意階的命題是真的。那麼「是真的」就高於任意的階,但階數是無窮的,因此這是不可能的。

當然,支持類型論的哲學家有自己的辦法,比如:可以否認「是真的」是一個謂詞,他們可以說「真」並不是命題的性質。

不考慮上述哲學上的撕逼。還有一點就是,類型論管得太寬了。他禁止了一切形式的自指,然而並非所有自指都是壞的或沒有意義的,比如「這句話有七個字」就不是壞的。有些自指是有必要的,比如書的末尾賣個萌寫上「這句話是本書的結尾了」。

這就是本回答的結尾了。


mathsf{ZF}set theory的策略是將{x mid x 
otin x } 從集合的名單中排除出去。具體的做法有兩層:

  • 首先是區分class和set,{x mid x 
otin x },或更一般的{x mid P(x) }只能算class,而不保證是set。直接假設存一個inductive set, S,接下來varnothing :={ x in S mid x 
eq x},也就是0,(axiom of seperation),接下來1,2,3,所有的自然數,ordered pair,function,利用axiom of replacement,axiom of power set,axiom of union構造出來各種集合。
  • 第二個就是 @洪濤 提到的axiom of regularity,即每個集合中都存在一個in-minimal element,否則我們可以構造一個infinite diminishing sequence,所以ldots x in x in x in x 是不被允許的。

這樣一來{x mid x 
otin x }事實上就是universal class,作為一個proper class。而在mathsf{ZF}的世界裡我們只討論某個元素是否屬於一個集合。

PS:個人認為,理髮師的例子是個對羅素悖論糟糕的類比。理髮師悖論的「產生」和村莊除理髮師外的村民的存在與否無關。它的實質是,理髮師為自己理髮,當且僅當,理髮師不為自己理髮。而羅素悖論的產生則根源於人們會覺得把class,也就是具有某一性質的全體,定義成set很自然。

值的注意的是,就像 @Ulrich Kuphrer 提到的,mathsf{ZF}公理只是消除了問題,而非解決了問題。解決問題的話可以看 Peter Aczel的Non-well-founded set theory:http://www.irafs.org/courses/materials/aczel_set_theory.pdf


我具體解釋一下http://www.zhihu.com/question/19760244/answer/14064661

問題。

正則公理(regularity axiom,RA):對所有非空集合A,存在A中的元素m,使得m和A的交集是空集。

一種更嚴格的說法如下:

這裡我們對m和A的交集是空集的理解是

舉例:例1 在集合A={1}中,令B=1,不難發現,它滿足RA。

例2 在集合A={{1},1}中,若令B={1},它不滿足RA。但若令B=1,依然滿足RA。

下面我們通過RA證明:不存在這樣的集合,它是其自身的元素。

現在再看羅素悖論,

本身分子集合是指集合以其自身為元素,在公理集合論中我們已經證明不存在這樣的集合,它是其自身的元素。所以羅素的這個定義本身在公理集合論中是不合理的,在羅素那時並沒有公理集合論,定義一個集合完全凴藉的感覺,後來人們通過公理的方法去界定集合,將這種本身分子集合排除在集合論以外,最終避免悖論的發生。

參攷:http://en.wikipedia.org/wiki/Axiom_of_regularity

http://www.zhihu.com/question/19760244/answer/14064661


一樓的公理集合論解釋只是頭痛醫頭腳痛醫腳的辦法。"你說"以自身為元素的集合"的說法會導致矛盾於是我加一條公理禁止這種集合出現好了。",這根本什麼都沒有解決(當然這也可以說明數學裡其實不存在能造成傷害的悖論,如果我們的理論導致了悖論,換一個理論就行了,天也不會塌下來)。這方面的討論非常多,難以說清,但核心是對集合論範圍的限制:我們不能任意地定義集合。也就是說,羅素悖論以前,人們認為集合這個概念足夠寬泛,足以概括所有的數學對象(畢竟集合概念本身只是說"把一些東西放在一起考慮",很難想像這種樸素的想法也會導致悖論。)。當時認為,我們規定一個性質P(x)時,只要這個性質是可判定的(比如"是正方形"),我們就可以把滿足這個性質或不滿足這個性質的所有對象都拿出來作成一個集合。但羅素悖論實際上在說,一般而言,不存在這麼大的集合。你仍然可以將它們放在一起討論,但如果其中對象太多,那麼它就無法維持一個集合的基本運算(或者說公理)。因此,羅素悖論解決方案就是:承認並不是任意想像的一些東西放在一起都成為一個集合,特別地,不存在所有集合的集合(羅素悖論實際上需要這個前提)。


當年學高等數學的時候自己關注過這個問題。

實際上,羅素悖論是發現了原本數學上集合論的漏洞。

後來出現兩種解決方法。

ZF公理系統對原本的集合論進行了擴展,通過補缺迴避了悖論情況,明確了其新的適用範圍;

NBG公理系統削減了原本集合論的使用場合,旁生出了新的「類」概念,縮減了原本集合論的適用範圍;(當然我這樣描述肯定不準確,甚至有錯誤,專業人士會用更好的表達方式)

我個人認為羅素悖論最大的影響在於,

以前人們對於數學的定理公式,不稱之其為發明創造,而是稱之為發現。(現在也是)

而羅素悖論之後則開始有人認為,數學公式定理之類的東西是人類發明的工具。

因為只有工具才會視使用場合的不同而予以人為調整,人造物總是不完美的。

再到後來構造主義的出現,人們為了認識數學而發明了新的工具和新的視角,相當於「工具的工具」。那麼,這確實是需要新的視角才能得以認識數學,還是說,這個工具出現了越來越多的漏洞以至於需要人們不斷地修復它?

——好吧,我的意思是,人們在認識探索數學和使用數學這兩個方面,出現了割裂。

事情變得更複雜了。

P.S.1 我沒有宗教信仰。

P.S.2 有些措辭非常不規範,因為好久沒碰數學了。


我是來吐槽的,來看看我的男神維特根斯坦是如何解決羅素悖論的吧!!!

比如說,如果我們假設函項F(fx)可以成為它自身的主目,那麼這時就會有一個命題「F(F(fx))」,其中的
外函項F和內函項F必定有不同的指謂;因為內函項具有Φ(fx)的形式,外函項具有Ψ(Φ(fx))的形式。對於兩個函項來說,只有本身不標示任何東西的
字母「F」是共同的。如果我們把「F(F(u))」寫成「(?Φ):F(Φu).Φu =
Fu」,這一點馬上就清楚了,這樣羅素悖論就消除了
。。。。。。。。。。。。。。。。。。。。。。。。。。


並沒有解決。個人感覺羅素搞的那個類型論只不過是用類型套類型強行拖延,你只套有限層確實是不會產生啥問題了,很多情況下這個表達能力是足夠了的。可要是套了無限層,真的還沒問題么?


羅素悖論的最終解決

維特根斯坦:「不被任何人理解是非常痛苦的。」

1、關於理髮師悖論

在一個村子裡有一位理髮師,這位理髮師聲稱:「給而且只給那些不給自己理髮的人理髮」。現在問理髮師是否要給自己理髮。如果理髮師不給自己理髮,那麼根據定義,他要給自己理髮;如果理髮師給自己理髮,那麼根據定義,他不能給自己理髮。這就是著名的「理髮師悖論」。

當前主流的解悖方案是蒯因的方案。蒯因的論證過程:假設村子裡有如此一位理髮師。如果他要給自己理髮,根據他的規則,他不給自己理髮。如果他不給自己理髮,根據他的規則,他要給自己理髮。矛盾。因此假設不成立,如此一位理髮師不存在。

這個論證過程是錯誤的,因為矛盾並不是來源於理髮師存在這個前提。其實,理髮師給出的規則對於「理髮師要不要給自己理髮」 沒有定義,只是給出了一個矛盾式。如果認為存在定義,就會產生矛盾。這才是矛盾的根源。所以,矛盾說明的是理髮師並沒有為「是否給自己理髮」給出規則。如何解決呢?很簡單,關於「理髮師是否給自己理髮」,理髮師可以再制定一個新規則。

2、維氏對於數學基礎:數學家更多是在發明

從羅素時代至今,很多學者會認為數學家的工作是在發現真理。但在維氏看來,數學家的工作更多的是在發明。

維特根斯坦反覆強調:「數學家不是發現者,而是發明者。」,又說「數學家一直在發明新的描述形式。有的人受實際需要的刺激,另一些人出自審美需要,還有些人以其他種種方式。」

數學家的工作與純邏輯家的工作不同,他們並不只是進行分析與推理,更重要的是進行綜合與創造,歐氏幾何與非歐氏幾何的公理都是綜合與創造。當數學家在概念框架內推演定理,他們是在進行分析與推理,這時候比較接近於「發現」。當數學家在給出定義、公理與概念框架的時候,他們是在綜合與創造,這時候比較適用於「發明」。

所謂的發現觀,就是數學理論本來就在那裡,就像是客觀真理或者上帝旨意,而數學家發現了它。所謂的發明觀,就是數學理論本來是沒有的,數學家發明了它構造了它甚至可以改變它。

3、關於羅素悖論

理髮師悖論可以表達成集合論的形式,就是羅素悖論。

R={x | x不屬於x },然後現在問R是否屬於R。如果R不屬於R,那麼根據定義,R屬於R;如果R屬於R,那麼根據定義,R不屬於R。

基於這兩種不同的數學哲學基礎,面對悖論問題時,可以得出很不相同的分析方式和解決方式。一百年前出現羅素悖論的時候,數學家們普通接受「發現」的數學哲學觀點,當數學出現悖論的時候,就覺得天塌下來了:我的上帝,是不是客觀真理出問題了,或者上帝旨意出問題了?如果是以維氏「發明」的數學哲學觀點,就覺得沒有什麼大不了的,根本不是客觀真理出問題了,而是數學家主觀觀念出問題了。數學家構造的規則矛盾了,在矛盾的地方再構造一個新規則就是了。

舉個例子,就像一開始根據乘法來定義除法a/b=c iff a=b*c,就會得出0/0=2=3這樣的矛盾。怎麼解決這裡的矛盾呢?難道要取消所有的除法?當然不是了,只需要在矛盾的地方重新定義一下:0不能作除數。瞧,問題就解決了。

那麼,具體到羅素悖論,如何分析和解決呢?很簡單,R是數學家發明構造的,數學家給出的規則對於「R是否屬於R」 給出了一個矛盾式的規則,相當於沒有定義。沒有定義起碼有三種可能性:缺少定義,重言定義,矛盾定義。例如對於變數x沒有任何定義,這是缺少定義;對於x定義為x,這是重言定義;對於x定義為(x=0 if x=1 and x=1 if x=0),這是矛盾定義。這三種定義,都沒有給出正確的定義。

那麼,如何解決羅素悖論呢?很簡單,對於「R是否屬於R」此處進行重新定義,屬於不屬於都可以,或者說此處沒有意義也可以。數學家構造的理論出現矛盾了,就像人們講話出現了矛盾了一樣,解決的方法很簡單:「對不起,我沒有注意到這裡有矛盾,我重新說明一下,此處應該是如此如此。。。」

如果你認為數學家是在發現客觀真理,那麼你就不會接受維氏的分析和解決。如果你認為數學家是在發明主觀理論,那麼維氏的分析和解決再清楚再簡單再合理不過了。

愛因斯坦說:「我們面對的重大問題無法在我們製造出這些問題的思考層次上解決。」

有時候,數學的問題,應該在數學之外得到解決。

進一步參閱:

1、庄朝暉,基於對角線引理和維特根斯坦思想對於悖論的分析,第六屆全國分析哲學學術研討會,山西大學,中國,2010年8月(入選《中國分析哲學 2010》,中國現代外國哲學學會分析哲學專業委員會編,浙江大學出版社,2011年10月,67頁-76頁)

2、 庄朝暉,關於對角線方法和停機問題的評論,第五屆兩岸邏輯教學與研究學術會議,重慶西南大學,2012年4月.

3、庄朝暉,基於直覺主義對哥德爾不完全性定理的評論,《廈門大學學報(哲社版)》,第2期,2008(並以此文獲得首屆洪謙哲學論文獎)


全體集合不構成集合,構成一個範疇……我好無聊…手動滑稽


不可能解決這個問題!

所有圍繞這個悖論的解決辦法是如何「迴避」這個悖論

也就是把這個悖論圍起來,生人勿近!

完全是治標不治本的問題

這個問題根本無法治本………

治標的目的:

定理無法「證明」的時候,

按照常理,把否命題「證偽」就可以了

羅素悖論引入了第三種情況:非真非假

也就是說,命題有三種狀態:

真命題、假命題、非真非假命題

你證明一個命題「非真」,不能說明該命題「假」,

只能是「假」或者「非真非假」……

所以必須把「非真非假」這種bug排除出去……

以達到:

非「真」=「假」

非「假」=「真」


··羅素悖論

1900年羅素受到皮亞諾符號邏輯的啟發,將符號邏輯作為分析數學,將數學基礎歸為邏輯的工具。在這一分析中,羅素通過「羅素悖論(集合悖論)」動搖了數學的大廈。一切集合都可以分成「與自己相同」和「與自己不相同」兩大類,前者如鑰匙的集合(作為集合的「鑰匙」不是作為元素的某一把鑰匙);後者如「概念」(概念的集合仍是概念),那麼「一切與自身不相同的集合組成的集合」與自身相同嗎?這一悖論可以概括為:如果A是A,那麼A是非A;如果A是非A,那麼A是A。

這一悖論被描述成「說謊者悖論」和「理髮師悖論」引起了人們的關注。由於這個悖論直接影響到邏輯的精確嚴密性,而邏輯又被視為是數學和自然數的基礎,因此解決這個悖論迫在眉睫。

··惡性循環原則

「分支類型論」的最終提出與羅素對「惡性循環原則」的採納有關。羅素指出所有的悖論有一個共同的特徵,即「自我指稱性或自返性」。羅素認為,當一個人說「我正在說謊」實際上是在斷定「存在一個被我斷定為假的命題」,但由於他沒有指出究竟是哪個具體的命題為假,因此這個「假的命題」必須是所能斷定的所有的命題(總體)中的一個,這就意味著「整個斷定」也是他這個斷定所適用的那些命題之一。然而,這個陳述本身就是要從中選取的總體中的一個,那麼就要陷入一種惡性循環。

在羅素看來,「說謊者悖論」的實質在於:假設了一個確定的命題的總體(其中所包含的命題的數量應該是確定的),而關於這個總體的一個陳述可以形成一個新命題,這個新命題(由於惡性循環)進入原有的總體,這就使得總體中命題的數目增大了;但是,擴大這個總體的範圍並不能避免循環,因為論及這個總體的陳述的範圍隨總體的範圍擴大在擴大。因此,羅素得出結論,我們不能斷言「所有的命題」,「所有的命題」是一個不合法的總體,「所有的悖論都共同有這樣一個關於總體的假定:如果它合理,它立即就由它自身所定義的新元素而擴大」。

從羅素對惡性循環原則的幾種表述來看,該原則的核心思想是:沒有一個總體能包含只有通過這個總體來定義的分子。如果某個總體的分子一旦被確定,那麼這個「最初」確定的總體的範圍就不能再改變。悖論之所以產生就在於它們違反了這個原則, 它們都包含將總體「最初」的範圍不合法的擴大,這就改變了總體最初的構成。羅素說以「純粹否定性」的「惡性循環」表明了許多理論是錯誤的,而「類型了」的作用正在於說明怎樣糾正這些錯誤」。

··命題函項

羅素的類型是依據命題函項及其意義域來定義的。所謂「命題函項」一個命題函項是這樣一個表達式,「該表達式包含一個或多個未定的成分,一旦這些未定的成分被賦值時,該表達式就變成一個命題」。

羅素認為,命題函項不像命題那樣非真即假(由於含有未定的成分),它既不真也不假,而有三種可能性:恆真、有時真、恆假。命題函項不是某種已經具有意義的東西,而只是一個可以容納意義的空架子。命題函項的意義是相對於主目而言的。羅素說:「一個函項對一給定主目是『有意義的』條件就是該函項對該主目有一個值(不管這個值是真的還是假的) 的條件

··簡單類型理論

羅素把「類型」定義為「命題函項的意義域」即「使有關命題函項有值的主目的集合」。羅素對函項進行了「跟函項的空位有關」和「跟函項量詞有關」兩個維度的分類同。前者主要涉及「簡單類型理論」後者則主要涉及「分支類型理論」為了簡化我們的表述,我們先討論前者。

最低的類型由個體組成,即類型0;次一級的類型由個體的函項組成,即類型1;再次一級的類型由個體的函項的函項構成,即類型2。按此構成方式,還會產生類型3、類型4等, 這一過程可以無限繼續。我們把這一過程可以用符號列表表示

可見,不同階的函項有不同的意義域。類型1中函項的意義域是由個體構成的集合,其中不同的函項有相同的意義域。這就是說,任一函項Φ1x與任一個體a構成的表達式Φ1a都是有意義的,即它是一個非真即假的命題。假設Ψ1x是一個不同於Φ1x的另一個同類型的函項,Φ1a是一個有意義的表達式當且僅當Ψ1a 也是一個有意義的表達式。一般來說,類型n中的函項能夠有意義地敘說類型m中的函項,當且僅當n=m+1。 以下這樣的公式是不能導出的, 譬如:

「類型論」把所有這樣構造出來的公式看成是無意義的,因為它們「不表達任何事物」。由於羅素把類或集合看做是一個只為該類或集合的分子所滿足的命題函項,而根據上面類型的劃分不會產生「類型的混淆」,這樣,就不會出現「屬於自身」或「不屬於自身」的類,也就是說,這樣的類是不會出現在任何層次的類型中,從而也就避免了羅素悖論。

「簡單類型論」特點是根據函項的空位來確定函項的層次,即如果Φx中空位處的x屬於類型n,那麼Φx就屬於類型n+1。「簡單類型論」能解決一些集合論悖論,但還不足以解決說「說謊者悖論」和「理查德悖論」等(這是一些與「集合論悖論」不同的另一類悖論,其不同處筆者在下文也會有所解釋)。

··分支類型理論

羅素在簡單類型論的基礎上從另一個維(即函項量詞)構造了「分支類型論」。這個分層涉及函項的量化。它的核心是把類型0以上每一個類型中的函項再分成不同的階。為了簡單起見,我們下面僅限於考察個體的函項(即類型1),以此來把握其中的思想。

給定一個個體a(a 其實可以看做任何對象,譬如函項,把a設定為個體只是為了有助於理解),我們把所有能取a 作為主目的函項稱為「a 函項」。顯然,「a 函項」屬於類型1。「分支類型論」要求再把「a函項」分成不同階的a函項,其分階是這樣的:羅素首先確定了一個最基本的階,這是由直謂的a函項構成的階,羅素稱它們為第一階的a函項,簡稱「a的一階函項」

所謂「直謂的a函項」是指那些「不涉及任何函項集合的函項」,亦即不涉及其他函項總體的a函項。與「直謂的a 函項」相對應,還有「非直謂的a函項」。「非直謂的a 函項」是指那些涉及其他函項總體的a函項。「非直謂的a 函項」涉及了函項的量化。設定Φa為任一直謂的a函項,即Φ()是一個一階函項的函項變元,現在用函項量詞量化Φa,我們可以得到(?Φ)Φa或(?Φ)Φa ,前者的意思是「a滿足所有的一階函項」,後者的意思是「a滿足有些一階函項」。由於a是個體,前兩式中a就可以用任一個體變元,譬如x來替代,於是我們就得到函項(?Φ)Φx和(?Φ)Φx,這兩個函項與Φx不同,它們由於量詞的作用都涉及了一階函項的總體。根據前述的惡性循環原則,凡涉及某個總體或根據該總體定義出來的東西,它就不能是該總體的一個分子,因此,(?Φ)Φx或(?Φ)Φx都不屬於一階函項,它們是由「直謂的a 函項」通過函項量化得來的「非直謂的a函項」,羅素把此類a函項作為第二階的a 函項,簡稱「a的二階函項」。以此類推,在二階函項的基礎上,通過二階函項的總體可以構造「三階函項」,然後依照同樣的程序可以構造更高階的函項。

我們進一步可以設定a為類型n的一個對象,依照上面的程序我們就可以把類型n+1中的函項分成不同的階,它們依次為類型n的一階函項、二階函項,等等。與函項的分階類似,命題也可以分成不同的階。一階命題是指不含任何量詞的命題或只含個體量詞的命題,根據一階命題的總體可以構造二階命題。以此類推可以構造更高階的命題。

羅素給不同類型中的函項進行分階是為了避免由「所有的函項」、「所有的性質」、「所有的命題」等引起的惡性循環。無論什麼時候,通過從關於一個變元能夠有意義取的『所有』或『某些』值的陳述,我們常可以得到一個新的對象,這個新的對象必定不在前述變元所能取的值中,因為,倘若如此,那麼變元涉及的值的總體會只能由它自己來定義,這樣我們就陷入了惡性循環。例如,「拿破崙具有成為一個大將的一切性質」,將一個性質歸於拿破崙,但不是將一個直謂性質歸於拿破崙;這樣我們就避免了惡性循環。無論何時,只要出現「一切函項如何如何」,要想避免惡性循環,原有的函項必須限於一個類型……要詳細說明這一點需要仔細的討論,但是以上所說的足以表明,能用於一給定主目的函項屬於一個無窮的類型序列。

「分支類型論」所構造的就是這樣的一個類型序列。「分支類型論」的總體思想是:任一函項必定屬於一定的類型和階。凡涉及類型m中的函項的總體的函項,或通過類型m中的函項的總體定義(或構造)出來的函項,不屬於類型m,而屬於高一級的類型m+1;在某個類型內部,凡要藉助第n階函項的總體來定義的函項,屬於第n+1階。通過這樣的分層分階,「分支類型論」既消除了「類型混淆」,也消除了惡性循環,因此,一般認為,所有已知的悖論通過「分支類型論」都能排除。

就「說謊者悖論」來說,羅素指出:當一個人說「我正在說謊」時,依據類型論,我們可以將他的話解釋為「有一個我肯定的n階命題,且這個命題是假的」,這是一個n+1階的命題;原來的命題是被一個n階的量詞所約束,是一個n階的命題,而由原來的命題得出的一個n+1階的命題不屬於n階量詞的作用範圍,它不能作為n階的命題變元的一個值進行代入,因此就不會產生悖論。

悖論都涉及了量詞「所有」,「類型論」最終是通過限制量詞的作用範圍來達到解決悖論的目的的,因為,類型的劃分規定了命題函項的意義域,量詞量化命題函項得來的概括命題如果要有意義,量詞的作用範圍就要限於該命題函項的意義域。羅素說:「每一個命題函項都具有一個確定的意義域。在這個域之內是這個函項對其具有值的一些變目。在這個變目的域之內,這個函項不是真的就是假的;在這個域之外,這個函項則無意義。這就是說,如果一個命題函項的量化式是有意義的,其中的量詞就要限於一定的意義域,也就是說要限於一個確定的類型。

「分支類型論」通過分層分階來限制量詞,避免了惡性循環從而達到了排除悖論的目的,但是,分支類型論又帶來了一些新的困難。譬如,據「分支類型論」,我們不能說所有的個體函項(或所有的函項)如何如何,而只能說某一階的函項如何如何,由於數根據類來定義,而類又根據命題函項來定義,那麼數也就具有與函項相似的階的區分,這樣,我們就不能說所有的實數如何如何,而只能說某一階的實數如何如何。但是,「把數分成不同的階使許多一般的推理變得無效」。實數理論依據分支類型論就無法建立起來。羅素也意識到,分支類型論「使得許多部分的初等數學成為不可能」,為了克服這些困難,羅素在分支類型論中增加了一條「可化歸性公理」。「可化歸性公理」是說,任一非直謂函項都有一個與它形式等值的直謂函項。但這一說法並沒有受到廣泛的贊同。


看大神們的回答如被提壺灌頂。為了和大家回答的不一樣,我用另一個方法來說明:我先給出一個假想,所有容器型(一個確定的邊界分成了內外兩部分)對象都不能包含自己(位於邊界的內部)。我給出的原因是,邊界本身也佔有空間,自己和自己在空間上不相容。比如一個瓶子或者罐子,是不能裝進自己去的。又如程序設計中的一個class也不能包含自身。無論抽象和直觀,都不能違背這個情況。而集合就是這樣一種容器。集合可以子集方式包含於自己(元素包含,而不是包含自己的邊界),但是不能隸屬於自己(包含了自己的邊界)。如同一個茶壺裝入另一個茶壺的話,內部的茶壺的外壁必須能看到外部茶壺的內壁。如果是同一個茶壺,自己的外壁是無法看到自己的內壁的。這叫邏輯對象的同一性。因此,我建議數學教科書中應該區分集合包含和元素隸屬這兩種情況,不能都叫做包含。對於元素和集合的關係應該是隸屬和領屬的關係,集合領屬元素和集合包含集合要明確的區分開來,避免在說集合包含元素和集合包含集合時出現二義性。集合包含集合,是包含另一個集合的元素。集合包含元素,實際上是把元素本身的邊界也包含其中了。如果元素是一個集合,那麼領屬它的集合必然包含它的「邊界」。如果是同一個集合,自己不能把自己的邊界包含在自己的內部,也就是說,從空間基本概念上來說,同一個對象內表面看不到自己的外表面------除非不是同一個對象。用韋恩圖表示的話,圓圈就是集合的邊界,圓圈內部就是容納元素的空間,圓圈外部就是集合的外部空間。


公理自身有悖論當然是錯的,至於ZFC是不是錯的誰知道,至少現如今還沒有悖論,個人得更有趣的地方在於選擇公理。空集本質是由於前提否定而邏輯導出的又要求他遵循邏輯(這就看出這個問題本身不會有什麼用處),且空集的定義本身就是解決的代號,然而空集並沒有什麼拓展,更有拓展性的在於無窮上的性質


羅素悖論中涉及到「S=一切非本身分子集合」,這個定義含有指稱全體的企圖,同時作為對某一性質的抽象,並未承擔起將S明確化和實體化的責任,S具備了形而上的特徵,在這樣的論域中,我們可以允許S具有論及自身的可能性,但某些要求限度和明確性的規定顯然對它是缺乏效力的,例如將樸素集合論的集合運算——將S作為集合元素——加諸於S,這就好象宣稱S是自由的同時限制S的自由。

另一方面,在邏輯的規定內,考慮到確定性和可操作性的要求,則「一個函項不能作為自身的主目」(a function cannot be its own argument)則是必要的了。

無限制論域和規定性要求之間的矛盾,是某些悖論的共同特徵。


使用ZF集合理論:對於任何一個集合及其可定義的屬性,都有一個滿足這個屬性所有元素的子集。也就是說,我們理解集合不是從上而下的(先有那麼個集合,再考慮集合中有哪些元素),而是自下而上的(先把元素一個一個的放到集合里,這個集合就建立起來了),這就從根本上解決了這個悖論。


艹,這個問題公式我在高中課第一次學集合就想出來了。還問我們老師這種情況不就矛盾了嗎?

厲害了我自己。


樓主,學學數理邏輯以及各種公理化集合論吧,有精力的話看看類型論。這個問題看起來雖然很有趣,但其實還是蠻無聊的,因為它就是個語言問題。


 悟道之後,就喜歡看各種悖論。

  偶然看到知乎上關於 羅素悖論的答案。

  我想說羅素啊,你這個分階集合論,不正是在討論相對性的 法則與適用集合的 層級關係嗎!


【自指型悖論】說明啦:不管我們在【怎樣全面的一個基礎】之上開始談論問題、當我們需要討論這個【基礎】本身的時候、我們都需要另一個【更為全面的基礎】

也就是說只要我們不放棄【思考】、那麼對於【第一因】的不斷回溯就是不可避免的~~

這個問題的神學涵義是【10000物皆為被造之物】~~、按照我派大友派的術語來表述就是【1切有為法如夢幻泡影/實無1法可得/本來無1物何處染塵埃】~~快跑啊哈!!:):)


推薦閱讀:

集合論和一階邏輯的關係?
阿列夫零是什麼?
為什麼不能用數學歸納法證明函數項級數的收斂性?
如何證明 不存在最大的集合的勢?

TAG:哲學 | 悖論 | 數學 | 邏輯學 | 集合論 |