悖論

維基百科,自由的百科全書
前往: 導覽搜尋

悖論,亦稱為弔詭詭局,是指一種導致矛盾命題。通常從邏輯上無法判斷正確或錯誤稱為悖論,似非而是稱為佯謬;有時候違背直覺的正確論斷也稱為悖論。悖論的英文paradox一詞,來自希臘語παράδοξοςparadoxos,意思是「未預料到的」,「奇怪的」。 如果承認它是真的,經過一系列正確的推理,卻又得出它是假的;如果承認它是假的,經過一系列正確的推理,卻又得出它是真的。古今中外有不少著名的悖論,它們震撼了邏輯和數學的基礎,激發了人們求知和精密的思考,吸引了古往今來許多思想家和愛好者的注意力。解決悖論難題需要創造性的思考,悖論的解決又往往可以給人帶來全新的觀念。

paradox其實亦有「似非而是」的解釋。即是用普通常識看上去不正確,但其實是正確或是有可能的。例如「站著比走路更累」。一般常識是走路比站著累,但要一個人例如在公園裡站一個小時,他可能寧願走動一個小時。因為「站著比走路更累」。也例如狹義相對論裡面的雙生子佯謬亦是另外一個例子。

佛法中也有釋迦牟尼佛外道悖論的例子:如大智度論卷一中舉出長爪梵志的例子:長爪梵志提倡一種「一切法不受」的主張,其意思是說他不接受世間一切理論。釋迦牟尼佛就問他:「你接不接受你自己所建立的這個「一切法不受」的理論?」長爪梵志像一匹千里馬一樣有智慧,不必等到鞭子打到身上才起跑,只看到鞭影覺悟了。換句話說,當釋迦牟尼佛提出這個問題的時候,長爪梵志就知道自己的理論是有問題的──如果接受,那就是「接受一種理論」這與他自己建立的「一切法不受」的主張違背;如果不接受,那他的主張就不存在。就這樣,一方面顯示長爪梵志的理論是一種悖論,另一方面也突顯釋迦牟尼佛以非常簡短的開示就把長爪梵志折服了。

邏輯悖論的定義[編輯]

拋開悖論的各種含義,通常所說的導致矛盾的悖論是指邏輯悖論。要成為一個邏輯悖論,應當滿足如下條件:

  1. 有一個命題A,稱為悖論命題。
  2. 有一個邏輯系統L,稱為相關系統。
  3. 有一組命題E, 稱為背景命題。背景命題都是相關係統中的真命題。相關係統被簡化為背景命題,背景命題成為悖論證明的依據。
  4. 相關係統存在兩個證明可以獲得悖論命題A的真值,其中一個證明A為真,而另一個證明A為假,從而出現矛盾。

因此,要判斷一個悖論是否真的邏輯悖論,就是要確定要素A,L和E,特別是要確認E中的命題都是真命題,而且所給出的兩個證明都是正確合規的證明。如果E中的命題不真,或者所給出的證明是錯的,則這不是一個邏輯悖論,而是一個邏輯錯誤。許多邏輯悖論最終都可以歸結為一個命題A⇔¬A,稱為悖論情形(paradox situation),是進一步推出矛盾的依據。根據悖論情形,可以有證明1:假設A為真,可以推出A為假,矛盾,因此A為假。但同時也可以有證明2:假設A為假,可以推出A為真,矛盾,因此A為真。證明1和證明2都是正確合規的證明。因此問題就是,A⇔¬A在相關系統中是不是一個真命題。如果是真命題,悖論成立,是相關系統有問題,需要改進。而且改進相關系統以消除悖論的思路也就在於如何避免這一悖論情形。如果不是真命題,那就不能由它推出矛盾,而且該悖論實際上就是一個邏輯錯誤:把一個假命題當作了真命題,並用它進行推理。可以歸結為悖論情形並不是悖論的必要條件。例如,「飛矢不達」悖論,也稱為之諾(Zeno)悖論,就不能歸結為悖論情形。該悖論只證明「飛矢不達」,因為「飛矢必達」顯而易見,人人都會證明。對於「飛矢不達」悖論,或者承認它是個悖論,或者證明它不是悖論,即證明「飛矢不達」的證明是錯的。而解決的方法也只有證明它不是悖論或修改現有系統。令人吃驚的是,目前還沒有一個權威的證明否定它是個悖論。

背景命題是根據悖論的描述歸納出來的,比較原始並接近悖論的描述。悖論情形是根據背景命題推理而得到的,進一步就可直接推出矛盾。因此,只有當所有背景命題中的命題都為真時,悖論情形才是一個真命題。所談論的悖論才是一個真正的邏輯悖論。

例如羅素悖論,A=(R∈R),L="樸素集合論",E只有一個命題:R∈R⇔R∉R。背景命題為真是因為樸素集合論有一個概括公理:對任意性質P(x),存在集合S,使得對任意對象x,x∈S⇔P(x)成立。即存在集合S,它剛好包含所有具備性質P(x)的對象,而且只包含具備性質P(x)的對象。令P(x)=(x∉x),即x為不包含自己的集合,大多數集合都不包含自己,包含自己的集合很難想像,只是理論上不排除它的存在而已,則根據概括公理有:x∈R⇔x∉x。又因為R本身也是一個對象,令x=R,則得到背景命題R∈R⇔R∉R,背景命題為真因為它是推出來的。因為R∉R=¬(R∈R),所以背景命題就是悖論情形A⇔¬A。所以羅素悖論是樸素集合論的一個悖論。

因為有羅素悖論,所以現代的集合論去掉了概括公理,而且將集合限制在一個很小的範圍內,從而解決了悖論的問題。儘管集合被限制在一個很小的範圍內,但已足以表示數學的基本要素,如數,形等,所以現代集合論仍可以作為數學的基礎。

再舉一個理髮師悖論的例子,小城裡的理髮師放出豪言:他要為,而且只為,小城裡所有不為自己刮臉的人刮臉。但問題是,理髮師該給自己刮臉嗎?在這裡A="理髮師給自己刮臉",L="普通邏輯",就是大家根據常理而使用的邏輯,E有兩個命題,一個是E1="理髮師給理髮師刮臉"⇔"理髮師給自己刮臉",這是個真命題因為"理髮師"就是"自己",也說明我們不區分「理髮師在家裡的水房裡給自己刮臉」和「理髮師在他的營業廳里給理髮師刮臉」。另一個命題是E2="理髮師給小城裡的任意一人刮臉"⇔(¬"該任意一人給自己刮臉"),該命題被認為是真的因為它是理髮師的豪言,而且一般也認為它可以為真。因為理髮師是小城裡的某人,因此由E2將"理髮師"代入"小城裡的任意一人",可得"理髮師給理髮師刮臉"⇔(¬"理髮師給自己刮臉"),再根據E1修改等價關係的左邊可得"理髮師給自己刮臉"⇔(¬"理髮師給自己刮臉"),這就是最終歸結出的A⇔¬A的悖論情形。

理髮師悖論是否邏輯悖論取決於E2在普通邏輯中是否為真。理髮師的豪言是一個全稱命題。全稱命題為真若且唯若將所有小城裡的人逐個代入命題中"小城裡的任意一人"時都為真,否則為假。現將理髮師代入時得到A⇔¬A。我們正在驗證A⇔¬A是否為真,而並沒有推出A⇔¬A為真,因此普通邏輯並沒有保證A⇔¬A為真。當邏輯系統不能證明A⇔¬A為真時,它是個假命題,因為等價關係兩邊不一致(如果邏輯系統可以證明,那就是邏輯系統有問題,因為它推出了一個應該是假的命題)。因此,理髮師的豪言實際上是一個假命題,是由於理髮師忽略了他的豪言對自己不成立造成的。所以理髮師悖論不是一個邏輯悖論。或者說普通邏輯在這裡並沒有問題,還是可靠的。

那為什麼一般會認為E2可以為真呢?這其實是一種由於忽略而造成的錯覺。有一種命題,沒有確定的真值,可真可假,叫做自由命題。例如,"某人給自己刮臉",它的真值取決於該某人的意願,因此可真可假。另一個例子是"命題M",而沒有具體說明M是什麼,它也是一個自由命題。對於一個等價關係命題F⇔G,如果命題F和命題G都不是自由命題,而有確定的真值,那麼該等價關係是否為真取決於F和G的真值。如果它們的真值一致,則該等價關係命題為真,否則為假。但如果F和G中至少有一個為自由命題,則該等價關係命題總為真,因為無非是其中的一個自由命題失去了它的自由度,不再自由了。如果F和G都是自由命題,則只剩下一個自由度了。

在理髮師悖論里,F="理髮師給小城裡的任意一人刮臉"和G=(¬"該任意一人給自己刮臉")都是自由命題,因此人們習慣地就接受理髮師的豪言E2="理髮師給小城裡的任意一人刮臉"⇔(¬"該任意一人給自己刮臉")為真命題了,無非是理髮師犧牲了他的自由度而已。人們忽略的情況是,F和G可能出現反相關的情況,即在某種情況下會發生F⇔(¬G)的可能性。而這正是將"理髮師"代入"小城裡的任意一人"所發生的情況。如果F和G反相關,等價命題F⇔G是不能成立的,因為等價關係兩邊不一致。因此,人們是在忽略了一種特殊情況後根據習慣接受了一個假命題,所以才以為這是一個悖論。

當然,認為理髮師悖論是一個真正的悖論的觀點還有一種理由:理髮師的豪言無非是定義了一個性質f(x)=「x是由理髮師給他刮臉的」;而性質g(x)=「x是自己給自己刮臉的」是一個按常理可能被定義的性質,例如,做一個調查,將每個人是否給自己刮臉確定下來就可以了;理髮師的豪言所定義的f(x)是:f(x)⇔(¬g(x));該定義是用一個性質定義另一個性質,也沒有什麼問題;因此,理髮師悖論也是一個關於定義的悖論。的確,人們目前對如何進行正確的定義還沒有透徹的認識。還存在另一些關於性質定義的悖論就是證明。但是,理論上對於用以定義的命題都必須是可以被證明的真命題這一點還是有共識的。如果含不能被證明的命題,則不應當以定義的形式進行定義,而應以公理的形式進行定義。集合論中關於集合相等的定義不是由一個定義給出,而是由一個叫做外延公理的公理給出的就是一個例子。而理髮師的豪言用一個似乎可能為真,但實際上卻為假的命題來進行定義,這自然就不合規了。

悖論情形A⇔¬A中的A是一個自由命題,但由於等價關係兩邊的命題是反相關的,所以等價關係不能成立。

理髮師悖論的教訓是:在作出等價關係命題時,一定要檢查等價關係的兩邊是否存在反相關的情況,或者 附加上當等價關係的兩邊不存在反相關的條件。這就像在做除法時,一定要檢查除數不為0一樣。在一個邏輯系統中,公理和定義經常帶有等價關係命題,忽略了相關性檢查,就可能導致悖論。羅素悖論的直接原因就是由於概括公理的等價關係出現了反相關。說謊者悖論也是因為語義定義中的等價關係出現了反相關。

那麼是否可以不去掉概括公理,而只對概括公理中的性質加以限制,保證不出現反相關的情況,從而解決羅素悖論呢?這樣做確實可以消除羅素悖論,但並不足以解決集合論的問題。矛盾仍然可能由集合運算而產生。因此,集合論的問題有更深層的原因,而人們還不知道是什麼原因。這是為什麼現代集合論除了去掉概括公理,還要把集合限制在很小範圍內的原因。

邏輯悖論的含義[編輯]

邏輯系統不能有矛盾。因此,如果存在悖論,則說明邏輯系統有問題,應當通過修改邏輯系統以消除悖論。例如現代集合論通過修改自己避免了悖論。儘管現代集合論仍可作為數學的基礎,但與樸素集合論相比,已經失去了許多內容。例如,把一個班的學生看成一個集合就沒有現代集合論的根據。因此,集合論悖論的問題並沒有得到真正解決。

由於還存在一些古老的悖論,如"說謊者悖論",所以有人認為悖論是不可避免的。但筆者認為,悖論是證明邏輯系統有問題的一個反例,它的存在只說明邏輯系統有問題。一旦找到了邏輯系統的更好的定義,悖論是可以被徹底解決的。因此悖論不是不可避免的。"說謊者悖論"說明人們對語義的認識還不夠。集合論悖論說明人們對集合的認識還不夠。總有一天,它們都是可以被解決的。

經典悖論[編輯]