說謊者悖論(Liar Paradox)


Photo Credit: oggin Flickr via Compfight cc

擁有自我指涉(self-reference)成分的悖論,有三個最為知名──羅素悖論(Russell’s Paradox)Curry’s Paradox 和說謊者悖論(Liar Paradox)。反正前兩個都寫過 ,不妨再來一炮,談談說謊者悖論。

最早的說謊者悖論據講源於 Epimenides ,這傢伙是個克里特島人(Cretans),但卻說「所有克里特島人說的都是謊話」。這個版本其實有些缺陷,未足以構成悖論,但就在後來引起注意,發展到今日,已經衍生出更完整、細緻的說謊者悖論。

考慮方格內的句子:

方格內的句子不是真的

方格內的句子是不是真的?如果是,根據它的內容,方格內的句子不是真的,會有矛盾。如果不是,「方格內的句子不是真的」不是真的,代表方格內的句子是真的,同樣有矛盾。無論是不是真的都會有矛盾,產生悖論。

***

說謊者悖論另有幾個陳構方式,各有些微分別。

1. 預設二值原則(Principle of bivalence)

有一版的說謊者悖論須預設真假值只有兩個──真和假,因而非真即假,非假即真。

方格內的句子是假的

悖論生產線:如果該句為真,根據它的內容,它便是假的,假即非真,因此它不是真的,有矛盾。如果該句不為真,根據內容,它不是假的,非假即真,因此它是真的,再有矛盾。

2. 使用索引詞(indexical)

這版說謊者悖論使用索引詞「這個」。

(P). 這個句子不是真的

索引詞指到甚麼東西,得視脈絡而定,正如「你這個混蛋」裡的「你」講到誰,完全取決於使用那個詞的脈絡。有些人想要一個脫離說話脈絡就會產生的悖論,可能會抱怨 (P) 不夠嚴謹。

順帶一提,前面提到兩個悖論都有使用「方格內的句子是……」形式的語句,但兩者要成功「造悖」,其實也要端賴脈絡,才能令「方格內的句子」有清楚的指涉對象,譬如,附近不能有太多內含句子的方格。

3. 為句子命名,並使用句子的名稱

(P). (P) 不是真的

這個方法比使索引詞的方式更加嚴謹,甚至比使用方格的陳構方式更好。可是,很多人一看到這種陳構都會馬上抗拒,因為「(P)」出現兩次,若果沒有說明清楚(左邊的「(P)」是右側句子的名稱,右邊在使用「(P)」指它自己),不少人都無法馬上理解它的意思。

4. 布林複合句(Boolean compounds)

布林複合句是內含布林連詞(Boolean connectives)的句子。布林連詞即是古典邏輯的五個連詞──「不」(∼)、「和」(∧)、「或」(∨)、「如果-則」(→)、「若且唯若」(↔)。既然布林連詞就是古典邏輯的連詞,為甚麼我硬要提「布林連詞」這般周折?原因有二。一,我喜歡 George Boole ,所以想提一下他的大作;二,我覺得在這裡用一下術語更能製造學識淵博的錯覺。

好了,來看看這個改自 SEP 的例子:

(D). (D) 不為真,或者 1=0

悖論生產線:由於 1≠0 ,根據選言三段論(disjunctive syllogism,可由 P∨Q 和 ∼Q 推論 P ), (D) 不為真。但 (D) 正是整個句子,所以「(D) 不為真,或者 1=0 」不為真。根據「或者」(即「 ∨ 」,注意現在用布林連詞)的語意,「(D) 不為真」和「 1=0 」兩者都不為真。於是,「(D) 不為真」也不為真,即 (D) 為真。(底線是矛盾的部分。)

5. 合體技:說謊者循環(Liar cycles)

這說謊者悖論中,最簡單的二人合體技。

小江:瑪莉說的是真的。
瑪莉:小江說的不是真的。

悖論生產線:如果小江所說為真,瑪莉說的便是真的,根據瑪莉的話,小江所說的就不是真的,矛盾。如果小江所說不為真,瑪莉說的便不是真話,「小江說的不是真的」便不是真話,於是,小江所說的話為真,矛盾。

這種陳構可以不使用人物,直接為兩個句子命名。比如將「(B) 是真的」命名為「(A)」,將「(A) 不是真的」命名為「(B)」。此外,原則上,你可以製造更複雜的合體技,不須限於兩個句子,也不須限於這個形式。

6. 超強合體技:亞布羅悖論(Yablo’s Paradox)

Stephen Yablo 在 1993 提出一個由無限多句子組成,而且每個句子都提到下一句的悖論。這個悖論與說謊者悖論極相似,但應否歸入說謊者悖論的範籌,尚可爭議。先看以下的無限序列:

(1). (2) 及以下的句子都不是真的。
(2). (3) 及以下的句子都不是真的。
(3). (4) 及以下的句子都不是真的。
(4).

第一行的悖論生產線:

如果第一行為真: (1) 是真的 ⇒ (2) 和 (2) 以下的句子都不是真的 ⇒ (2) 不是真的 ⇒ (3) 和 (3) 下面的句子中至少有一句是真的 ⇒ 抵觸 (1) ,因為這代表 (2) 及以下至少有一句是真的,矛盾。
如果第一行不為真: (1) 不是真的 ⇒ (2) 和 (2) 以下的句子中,至少有一句是真的 ⇒ 假定那個真語句是 (n) ,由於 (n) 是真的, (n+1) 和 (n+1) 以下的句子都不是真的 ⇒  (n+1) 不是真的 ⇒ (n+2) 和 (n+2) 以下的句子中,至少有一個是真的,例如 (n+k)(給定 1 < k ) ⇒ 抵觸 (n) ,因為 (n+1) 及以下至少有 (n+k) 是真的,矛盾。(底線是矛盾的部分。)

同樣的推論可以套用到序列上每一行,所以這個序列的每一行都是悖論!

與其他說謊者悖論的陳構有著一個關鍵的差異:亞布羅悖論不明顯有自我指涉的成分。縱然它所指的其他句子最終會關係到自己的真假值,每行的句子最終都沒有指回自己(例如 1 提到 2 ,但 2 就沒有提到 1)。若果亞布羅悖論真的成立,而且又沒有自我指涉,有不少藉由屠殺自我指涉來解決悖論的方案,便注定無法解決亞布羅悖論。

***

看完麻煩的悖論,再來看看失敗的說謊者悖論。

1. 撒謊版

這是一個不夠嚴謹的說謊者悖論。

(L). 所有人說的或寫的句子都是謊話

假定 (L) 是人寫的句子,仍不足以構成悖論。第一、 (L) 可以為假而無矛盾,只要有一個人講出或者寫出不是謊話的句子便可。第二, (L) 若要為真而又產生矛盾,必須假定一條有爭議的原則。且看它如何嘗試製造悖論:如果 (L) 為真,根據它的內容,它是一句謊話,謊話都不是真的,因此它不是真的,有矛盾。過程中採用的「謊話都不是真的」有爭議, SEP 有介紹相關的爭論。

2. 謊話強化版

(T). (T) 是一句謊話

失敗的悖論產生線:如果 (T) 真,則,根據它的內容, (T) 是句謊話,謊話都不是真的,因此 (T) 不是真的,矛盾。如果 (T) 不是真的,則,根據內容, (T) 不是謊話,非謊話即真話,所以 (T) 是真的,矛盾。

兩個毛病。一、它與第一版一樣,預設有爭議的「謊話都不是真的」。二、它預設「非謊話即真話」,這個預設明顯是錯誤的,正如教授雖然沒有對學生說謊(亦完全無此企圖),亦不代表他講的每一句話都是真的。

沒有留言:

技術提供:Blogger.