「我正在說謊」——塔斯基和說謊者悖論

撰文:画哲學
出版:更新:

艾匹米尼德斯(Epimenides)是古希臘克里特島的詩人,傳說中他說過一句話:「所有克里特島人都是騙子」。這句話引起一些人困擾:如果所有克里特島人都是騙子,那艾匹米尼德斯也是,但如此一來,「所有克里特島人都是騙子」就成了謊言,我們還該相信嗎?

 

不過呢,其實這個發言很容易判斷:就算一個人是騙子,也不代表他說的每一句話都是謊言。

 

事實上,就算艾匹米尼德斯當初說的是「我正在說謊」,也不至於無法理解和判斷,例如說,如果我們把「說謊」理解成「懷著騙人的目的去說話」,那麼有可能:

 

1.他是真誠地說這句話,但他沒想清楚自己在說什麼。在這種情況下,他應該就不算是在說謊,這句話是假的,他搞錯了。

2.他說這句話是企圖要騙人,但他沒想清楚自己在說什麼。在這種情況下,他應該算是在說謊,這句話是真的。(雖然不確定這句話能怎樣達成騙人的效果)

除非加上一些精細的背景設定,否則大概很難讓「所有克里特島人都是騙子」或「我正在說謊」真正成為難解的謎題。不過哲學上的說謊者悖論(the liar paradox)就不一樣了,說謊者悖論簡單、明確、難以消除,而且其實跟說謊沒有什麼關聯:

 

這句話是假的。

 

方便起見,讓我們把上面這句話取名為「L」,在這種情況下,它等同於:

 

L:L是假的。

 

L的奇怪之處很明顯:如果你假設它是真的,你就得判斷它是假的;如果你假設它是假的,你就得判斷它是真的。說謊者悖論的真假值會「跳躍」,不管你把L當成真的還是假的,都會引起矛盾。

 

對於這種令哲學家困擾的結果,或許有人完全不擔心:只要你沒事別說「這句話是假的」這種奇怪的句子,不就好了嗎?話說回來,就算真的有人說了這種句子,又有誰真的會在乎它的真假值?這根本就無所謂啦!

 

然而,「避而不談」恐怕無法解決問題。說謊者悖論是文法正確、意義明確的句子,有些哲學家認為,如果連這種句子都會導致無法消除的矛盾,恐怕是因為我們關於邏輯、真假的某些概念出了差錯。

 

所以,到底是哪些概念出了差錯呢?我們可以把這個問題反過來問:說謊者悖論會引起矛盾,背後仰賴哪些必要條件?說不定差錯就出在這些必要條件裡。

 

真假之外,有其他選項嗎?

 

有些人指出,說謊者悖論的差錯,在於我們假定所有語句都非真即假。在「真」與「假」之外,能不能有其他選擇呢?有些人認為有,例如說,「綠色狂亂地睡著了」、「烏龜兔子牙刷打死」這類難以理解的句子顯然不為真,但要說為假,好像也有點奇怪。這種時候可能就會有人建議說,在真與假之外,我們應該要有第三個選擇來安放這些句子,例如:無所謂真假。

 

這類認為句子的真假值不該只有真與假的想法,讓邏輯學家設計了許多種「三值邏輯」(three-valued logic)系統。當然,這些系統並不見得都是為了解決說謊者悖論。不過它們確實讓L推論不出矛盾:

 

L:L是假的。

 

在傳統的「二值邏輯」底下,如果假定L是假的,L就會變成真的,產生矛盾:

 

1.假設L為假。

2.因為L為假,所以L對它自己的描述是錯的。

3.L對它自己的描述是「為假」。

4.基於(2),我們可以確定L並不如同它自己宣稱的「為假」。

5.凡是語句,非真即假,既然L不為假,L就為真。

6.因此,L為真。

 

然而,在三值邏輯底下,我們就不能如此推論,因為語句不再是非真即假。

 

並且,以前面舉的例子來說,在常識上我們也可以這樣解釋:L這種句子雖然乍看之下可以理解,但是它其實跟「綠色狂亂地睡著了」、「烏龜兔子牙刷打死」這些難以理解的句子是同一類的:無所謂真假。

如果三值邏輯可以解決說謊者悖論那就太好了。不過當然沒這麼簡單。雖然「L是假的」在三值邏輯底下無法推論出矛盾,但它的強化版就沒有這麼好對付了:

 

L*:L*不為真。【註1】

 

跟L相比,L*有微妙差別,前者說自己為假,後者說自己不為真。如果你認為語句只有為真和為假兩種可能,那這個差別對你來說沒意義,但對於那些認為語句有三種或多種真假值的人來說,就不一樣了。以我們前面介紹的那種三值邏輯為例,語句的真假值有三種可能性:真、假、無所謂真假,因此:

 

如果L*為真,可以推論出L*不為真,在這種情況下,L*可能為假,也可能「無所謂真假」。

如果L*為假,可以推論出L*為真。

如果L*無所謂真假,可以推論出L*為真。

 

如此一來,L*的真假值無法固定,矛盾依然存在。

 

把「為真」、「為假」拿掉,如何?

 

僅僅在真與假之外添加第三值,沒辦法讓我們解決說謊者悖論,那該怎麼辦呢?

 

有些人正確地指出,說謊者悖論要出現,有個必要條件,就是我們的語言允許我們判斷和宣稱語句的真假:中文裡有「為真」、「為假」這些詞,因此我們有辦法組成「L:L為假」這樣的句子。換句話說,如果你真的想避開說謊者悖論,把這些詞從中文裡拿掉,就沒問題了!

 

哲學家把「為真」、「為假」這些詞稱為「真述詞」(truth predicate)。把真述詞從一個語言裡拿掉,可行嗎?乍看之下好像沒問題,因為大部分的真述詞好像確實可有可無,例如說,我們可以簡單地把『「雪是白的」為真』翻譯成「雪是白的」,而不改變它的意思。【註2】

 

然而,事情並沒有那麼簡單,像是下面這個句子裡的真述詞,就沒有辦法直接拿掉:

 

吳敦義這輩子講的所有話都是真的。

 

不管是拿掉「是真的」或「都是真的」,剩下的字串都無法成為文法正確的句子。

 

我們沒辦法藉由三值邏輯避開說謊者悖論,也不能簡單地拿掉真述詞,那麼該怎麼辦呢?塔斯基(Alfred Tarski)是波蘭的邏輯學家,他想出了一個有趣的方案:語言階層。

 

語言階層

 

現在讓我們來回顧一下,上一個方案失敗的原因:

 

1.說謊者悖論的出現,倚賴真述詞。

2.所以,我們決定把真述詞從中文裡拿掉。

3.對一些句子來說,有沒有真述詞沒什麼差,例如『「雪是白的」為真」』的意思其實跟「雪是白的」差不多。

4.但這樣一來,我們就沒辦法用中文表達「剛剛他說的是真的」、「吳敦義這輩子說的都是真的」這類語句。為了避開說謊者悖論,我們讓語言的表達力下降了,很不方便。

 

想像一下,這時候智慧的塔斯基現身了:

 

沒辦法用中文表達,那你不會用英文嗎?

 

讓我們在英文裡設計一個特別的真述詞「true-in-Chinese」,表示「在中文裡為真」的意思。有了這個設定,就算把所有中文語句裡的真述詞都拿掉,我們還是可以這樣改寫它們,不改變它們的意思:

 

「雪是白的」為真 → 「雪是白的」is true-in-Chinese.

吳敦義這輩子說的都是真的 → Whatever Mr. Wu said is true-in-Chinese.

 

在這個設計底下,我們的語言不會失去任何在認知意義上的表達力,更好的是,這個設計不會產生說謊者悖論,因為在拿掉了中文的真述詞之後,我們已經無法產生這樣的語句:

L*:L*不為真。

當然,我們還是可以產生這樣的語句:

L**:L** is not true-in-Chinese.

 

不過這並不是說謊者悖論,L的真假值很明確:真的!L是個英文語句,不是中文語句,自然不會是「在中文裡為真」。

 

塔斯基的這個想法,稱為「語言階層」(the hierarchy of languages ):當我們想要讓某個語言避開說謊者悖論,我們就把這個語言裡的真述詞拿掉,當然,有時候,我們還是會有需求去談論這個語言裡的語句的真假,但沒關係,這時候我們可以設計一個「高一階」的語言來滿足這個目標。以上述案例來說,中文就是我們的初階語言,而英文則是高階語言。

 

當然,我們現在使用的自然語言,不管是中文還是英文,據我所知,都沒有計畫要如同塔斯基建議的那樣重新設計,所以我們並不能說塔斯基提供了讓一般人可以避開說謊者悖論的實用方案。不過,如果你設計了一個聰明到會因為說謊者悖論而當機的機器人,那麼你或許就可以參考塔斯基的洞見,修改一下這個機器人用來思考的人工語言。

注釋:

註1:哲學家把L稱為「簡單說謊者」(simple liar);L*則是「強化版說謊者」(strengthened liar)。

註2:有些哲學家真的基於類似的理由,認為真述詞沒有重要的認知意義,這個立場在相關討論裡被稱為「收縮論」(deflationary theory)。