“我正在说谎”——塔斯基和说谎者悖论

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

艾匹米尼德斯(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)。