内涵逻辑(四)

3.6.1 数学问题

怎么会有人不知道1+4=2+3呢?然而,小孩子也能理解,而我们这些大孩子也能找到类似但更复杂、我们不知道的数学真理的例子。显然,“1+4”和“2+3”的名称相同,所以它们的含义必然不同。但如果我们用一个从状态到名称的函数来建模含义,那么这两个函数应该是相同的,将每个状态映射到5。如果讨论的是必然真理,那就没有问题了;我们当然希望1+4=2+3是一个必然真理。但如果考虑的是认知问题,既然我们不可能拥有一个“1+4”和“2+3”指代不同事物的可能世界,“1+4=2+3”必定是已知的真理。那么,我们又怎么可能不知道这个真理,或者不知道任何其他数学真理呢?

一种可能的解释是,对于数学术语来说,内涵与像“法国国王”这样的明确描述是不同的。“1+4”这个表达式是一种微型计算程序。具体是哪种程序取决于我们如何学习加法,但让我们标准化:x+y 指示我们从数字 x 开始,然后数出接下来的 y 个数字。那么显然,“1+4”和“2+3”对应于具有相同输出的不同程序。我们可以将程序与含义联系起来,将输出与外延联系起来。然后,我们可以解释为什么我们不知道 1+4=2+3,因为我们没有执行这两个程序,因此无法得出任何关于输出的结论。

将数学术语的内涵与其计算内容等同起来是可行的。然而,这与本文前面的观点相冲突。像“法国国王”这样的表达式会被这样处理,而像“1+4”这样的表达式则会被这样处理。对于任何给定的表达式,我们该如何决定如何处理它呢?我们可以将所有这些统一起来。这里有一个比较简单的方法。如果我们将“1+4”的含义视为一个小程序,那么肯定存在一些状态,一些可能世界,在这些状态中我们没有执行该程序,而在其他状态中我们已经执行了该程序。那么,我们可以将“1+4”的内涵视为一个关于状态的偏函数,其定义域是执行了“1+4”中固有指令的状态集,并将这些状态映射到5。那么,显然,我们可以拥有一个认知可能世界模型的状态,在这个模型中,我们不知道“1+4”和“2+3”的输出是否相同。

这种情况只能推到一定程度。我们或许会被某个普遍的论证说服,认为加法是一个始终有定义的全函数。那么,可以想象,我们可能知道“1+4”代表某个数字,但不知道它是什么。但是,假设算术项的行为正确,使用迄今为止概述的语义无法捕捉到这种情况。如果在某个状态下我们知道∃x([λy x=y](1+4)),也就是说,我们知道“1+4”代表什么,那么在所有兼容状态下,“1+4”都代表什么,并且由于算术项的行为正确,在所有兼容状态下,“1+4”必然代表5,因此在原始状态下我们必然知道[λy 5=y](1+4)。如果不知道“1+4”代表什么,我们就无法知道它代表什么。

也可以从完全不同的角度来解决这个问题。人们并不质疑数学真理的必要性——这是一个认识论问题。正因如此,人们早已注意到,欣蒂卡式的知识处理并非针对实际知识,而是针对潜在知识——不是我们已知的知识,而是我们有权知道的知识。于是,我们熟悉的逻辑全知问题就出现了,我们刚刚又看到了一个例子。Fagin 和 Halpern 在 1988 年提出了一种解决这个问题的方法,称为意识逻辑。其思想是通过意识函数来丰富欣蒂卡的认识论模型,将每个状态映射到我们在该状态下所意识到的公式集。其思想是,意识函数反映了我们所能运用资源的某种界限。有了这样的语义机制,我们可能知道简单的数学真理,但无法知道更复杂的数学真理,仅仅是因为它们对我们来说太复杂了。

从这个技术意义上来说,意识,是一种钝器。van Benthem (1991) 提出了一种改进方法:使用显性知识项。作为为直觉逻辑提供构造性语义的项目的一部分,Artemov (2001) 提出了一种显性证明项的形式逻辑。后来,Fitting (2006) 创建了它可能的世界语义。在该逻辑中,真理因明确的原因而为人所知,这些明确的原因提供了一种复杂性度量。这项工作随后扩展到更一般的辩护逻辑家族,即知识逻辑,其中的原因被明确化。

在辩护逻辑中,我们用 t:X 来代替我们熟悉的认知逻辑中的 KX,其中 t 是一个显性的辩护项。公式 t:X 的读法是“X 因原因 t 而为人所知”。辩护项的结构会根据所研究的特定辩护逻辑而变化。所有辩护逻辑都具有以下最小机制。首先是辩护常数,旨在对公认逻辑真理进行未经分析的辩护。其次,存在着证成变量,代表任意证成。最后是二元运算,至少有⋅和+。其意图是,如果s证成X⊃Y且t证成X,则s⋅t证成Y,并且s+t证成s证成的任何事物以及t证成的任何事物。证成逻辑与认识论逻辑之间存在着非常紧密的联系,这体现在实现定理中。此处不宜详述;关于证成逻辑的详尽讨论可在本百科全书的证成逻辑条目中找到。

如果遵循证成逻辑的方法,人们可能会说,1+4=2+3,或者一些更复杂的数学真理,它是可知的,但对于我们来说却难以真正知晓。也就是说,体现我们获得这种知识的理由的论证术语对我们来说过于复杂。这遵循了意识逻辑的一般思想,但对我们意识的复杂性有一个具体的、数学上有用的衡量标准。

3.6.2 专有名词

专有名词比数学表达式更成问题。如今,专有名词通常被理解为固定的指示符,但与数学术语不同,它们没有我们可以利用的结构。这是一个非常标准的例子。假设“Hesperus”用来指代昏星,“Phosphorus”用来指代晨星。应该理解,“昏星”是明确描述的常规简写,“日落后看到的第一个天体”和“晨星”也是如此。明确描述具有结构,它们会挑选出对象,并且在不同的可能世界中,它们可能会挑选出不同的对象。但专有名词并非如此。一旦“金星”和“磷星”的名称确定下来——事实上,它们都指代金星——这个名称在可能世界中就固定下来了,因此它们是固定的指示符。由此可见,虽然晨星是昏星,但这种同一性并非必然,因为明确的描述并非固定不变;但金星是磷星,这种同一性是必然的。那么,金星和磷星的同一性怎么可能不是已知的事实,无需任何天文学研究就能知晓呢?

上述困境有不止一种解决方案。其中一种方法非常简单。可能世界模型可以用来表示各种模态。它们提供了数学机制,但没有说明这些机制的用途。这取决于用户。因此,我们可能希望有这样一个模型来表示必然真理,或者我们可能希望有这样一个模型来表示认知问题。专有名词是刚性指示符的论点适用于表示必然真理的模型。但这并不意味着认知模型也是如此。以下引用(Kripke 1980)的一段话,可以阐明这个问题。

但是,如果我们拥有完全相同的证据,从定性上讲,结果可能是“Hesperus”不是“Phosphorus”;也就是说,在一个反事实的世界里,“Hesperus”和“Phosphorus”的使用方式与我们不同,不是这颗行星的名称,而是其他物体的名称,那么我们可能拥有定性上相同的证据,并得出结论,“Hesperus”和“Phosphorus”指的是两个不同的物体。但是,像我们现在这样使用这些名称,我们可以预先说,如果 Hesperus 和 Phosphorus 是同一个,那么在其他任何可能世界中,它们都不会有区别。我们用“Hesperus”作为某个天体的名称,用“Phosphorus”作为某个天体的名称。在所有可能的世界中,我们都用它们作为这些天体的名称。如果事实上它们是同一个天体,那么在任何其他可能的世界中,我们都必须用它们作为该天体的名称。因此,在任何其他可能的世界中,Hesperus 就是 Phosphorus 都是正确的。因此,有两件事是正确的:首先,我们无法先验地知道 Hesperus 就是 Phosphorus,而且除了经验之外,我们无法找到答案。其次,这是因为我们可以拥有与我们已有证据在性质上无法区分的证据,并且可以通过天空中两颗行星的位置来确定这两个名称的指称,而无需行星相同。

简而言之,在可能世界代表逻辑上替代状态的模型中,专名是刚性指示符。在可能世界代表认识论上替代状态的模型中,专名不必是刚性指示符。Hesperus 和 Phosphorus 是相同的,这必然如此,但我们可能以不同的方式使用“Hesperus”和“Phosphorus”这两个名称,而我们却无法察觉到自己在这样做——我们这样做的状态可能在认识论上与实际状态难以区分。可能存在我们不知道的必然恒等式,因为必然真和已知真遵循不同的规则。

3.6.3 非卡尔纳普方法

上述讨论背后的形式机制可以追溯到卡尔纳普的思想。在这一传统中,可能世界是核心,而意义或内涵是从可能世界到外延的函数。意义决定外延,但解释其如何发生的详细机制并未具体化(除了明确的描述)。我们不必这样做。如果遵循丘奇的方法,我们可以简单地说“Hesperus”和“Phosphorus”严格地具有相同的名称,因此必然如此,但即便如此,它们的含义也不相同。这是可能的,因为含义实际上是独立的,而不是派生的。含义可以在不同可能世界中确定相同的外延,而无需完全相同。

Zalta 1988 提出了一种打破卡尔纳普模型的、彻底且充分发展的逻辑。其中假设了一类抽象对象,其中一些是普通的。它区分了例示属性的对象和编码属性的对象。例如,一个抽象对象可能完全编码了“圆的正方形”的属性,但却无法例示它。假设一个普遍的理解原则,其形式是条件决定编码(而非例证)条件的抽象个体。如果对象都是抽象的且编码相同的属性,或者它们都是普通的且例证相同的属性,则认为它们之间存在同一性。实际上,这处理的是替代性问题。形式理论(更确切地说,是理论)非常通用,包含逻辑必然性和时间运算符。假设编码不是偶然的,尽管例证可能是偶然的,因此属性既具有可随世界变化的例证外延,也具有刚性的编码外延。有了所有这些机制,就可以开发出对专名的详细处理,以及其他许多内容。

4. 意义即算法

根据弗雷格的说法,数学表达式“1+4”和“2+3”具有相同的外延,但意义不同。弗雷格实际上并没有说明意义是什么,尽管很明显,意义以某种方式决定了外延。之前我们讨论过与“1+4”和“2+3”相关的计算,但我们提出的方案相当简单。Tichý提出了一种构造的概念,即用这两个表达式来规定不同的构造。一个更为正式的版本出现在一系列论文中(Moschovakis 1994;Moschovakis 2006;Kalyvianaki 和 Moschovakis 2008),所有这些论文都可以追溯到(Moschovakis 1989)。这些论文包含一种非常复杂的形式主义,其中表达式的意义或内涵是一种算法,而算法的执行决定了外延。接下来我们将概述这些想法,略去大多数技术细节。

为了相对简单起见,我们将讨论限制在一种形式语言的句子中,对于这种语言,再次遵循弗雷格的观点,外延仅仅是一个真值。“有无穷多个素数”和“有无穷多个偶数”在外延上一致——两者都为真——但显然含义不同。Moschovakis 的所有基本思想都已存在于句子层面,尽管这些思想的延伸非常广泛。我们引用了 Moschovakis 1994 的论述,我们的演示也以此为基础。

本文的数学结果与形式语言有关,但它们也适用于那些可以形式化的自然语言片段,就像形式语言的外延语义学结果通常适用于自然语言片段一样。除了语义语义相当简单的谓词逻辑语言外,该理论还涵盖了具有描述运算符、任意连接词和模态运算符、广义量词、间接指称以及定义自身真值谓词的能力的语言。

如果要将语义与算法等同起来,那么最基本的问题或许是:什么是算法。对于 Moschovakis 以及许多在职数学家来说,算法是一个抽象的数学对象,就像数字一样。当然,人们会使用特殊的符号来处理数字或算法,但符号是句法的,而数学对象是语义的(即使在理想情况下也是如此)。算法主题可能各不相同:烘焙蛋糕的算法与求解二次方程的算法并不在同一空间中运行。需要某种形式化机制来规范算法,并且这种机制应该适用于所有学科,但又尽可能简单。在一系列主题中,有几种通用但等效的算法规范方法。Moschovakis (1994) 提出了一种非常简单直接的机制,他称之为带反射的低级谓词演算,其中反射本质上意味着自指。当然,并非所有算法都会终止,因此底层的真值空间需要考虑,但沿着克里普克在其《真理论》中提出的思路,一个解决方案效果很好。我们通过一些(暂时的)非正式例子来得出一个通用定义。

4.1 启发式例子

假设我们有一个结构,它具有给定的定义域和一些给定的具有不同元数的关系,比如⟨D,R1,…,Rn⟩。假设我们有一个以通常方式形成的一阶语言,其关系符号为 R1, …, Rn,其元数与给定关系的元数匹配。我们通常使用排版约定,即 R 是一个关系,R 是由该关系解释的关联形式符号。按照通常的方式,我们可以构建一个一阶语言来描述结构,其中原子公式涉及 R1, …, Rn 和 =。常数可以用对单个事物成立的一元关系来模拟。例如,在算术中,我们可以有一个关系 Z,使得 Z(x) 仅当 x=0 时成立。为了便于阅读,在这种情况下,我们可以假设我们的语言中有一个常量符号,它被解释为 0。这种非正式的简化使公式更容易阅读,同时不会丢失任何重要的信息。

在通常的一阶机制中添加了一个 where 构造。我们很快就会给出一个合适的定义,但首先,这里有一个具体的例子。假设我们有一个算术结构,⟨{0,1,2,…},S,Z⟩。其中,S 是定义域上的二元后继关系,也就是说,我们有 S(0,1), S(1,2), …。我们还假设 Z 对 0 唯一成立,并且根据我们上面关于关系和单个常数的论述,我们将其视为形式语言中常数符号 0。考虑以下公式,其中 S 是由 S 解释的二元关系符号,E 和 O 是辅助一元关系符号。

even(x)≡E(x),其中 { E(x)≃x=0∨(∃y)(S(y,x)∧O(y)),

O(x)≃(∃y)(S(y,x)∧E(y))}

暂时将 ≃ 视为“定义为”。稍后将对此进行进一步讨论。将 E(x) 视为表示“输出”关系。它由 O 定义,而 O 由 E 定义。这其中涉及相互递归。即使在这个非形式化的阶段,也不难看出 even 定义了偶数的集合,也就是说,even(x) 对于偶数 x 求值时为真,对于奇数 x 求值时为假。这里有一个非形式化的计算,表明 even(2) 求值时为真。其中我们使用 ⇐ 表示逆蕴涵。此外,我们将定义域的成员(数字)直接写入公式中,而不是使用将数字赋值给自由变量的赋值机制。

even(2) ≡ E(2)

≃2=0∨(∃y)(S(y,2)∧O(y))

⇐2=0∨(S(1,2)∧O(1))

≃2=0∨(S(1,2)∧(∃y)(S(y,1)∧E(y)))

⇐2=0∨(S(1,2)∧(S(0,1)∧E(0)))

≃2=0∨(S(1,2)∧(S(0,1)∧(0=0∨(∃y)(S(y,0)∧E(y)))))

我们使用了三次该子句,分别替换了 E(2)、O(1) 和 E(0)。最后一行为真,因为 S(1,2)、S(0,1) 和 0=0 为真。

这个例子虽然简单,但容易让人误解。其机制足够丰富,足以构成说谎者语句。下文中,P 是元数为 0 的辅助关系符号,即命题字母。我们只写 P 而不是 P()。

说谎者≡P,其中 {P≃¬P}

显然,上述类型的求值尝试不会终止。经典递归理论中也有一个解决非终止问题的方案,以及真理论的研究成果:允许我们的形式机制定义的关系是部分的。并非所有关系实例都必须获得真值。但这些都是语义问题,在讨论它们之前,我们需要对公式所用的语言给出一个合适的句法定义。

4.2 语法

上文我们讨论了适用于结构⟨D,R1,…,Rn⟩的一阶语言,该语言通过子句进行了增强,但这些子句仅通过示例进行了展示。以下是一个合适的定义。用于⟨D,R1,…,Rn⟩的带反射的低级谓词演算(LPCR)是使用带有等式的普通一阶逻辑机制以及以下形成子句构建的语言。假设ϕ0, ϕ1, …, ϕk 为公式,P1, …, Pk 为(新的)辅助关系变量,则以下公式成立。

ϕ0,其中 {P1(x1)≃ϕ1,…,Pk(xk)≃ϕk}

其中,每个 xi 都是一个变量序列,其长度为 Pi 的元数。Pi 可以出现在公式 ϕ0, …, ϕk 本身中,因此我们有一组自指称的定义方程,ϕ0 作为“输出”。注意,在公式定义中添加 (22) 后,条件可以出现在某些 ϕi 中,因此需要采取措施防止嵌套条件之间不适当的相互作用。这可以通过我们熟悉的自由变量和约束变量机制来实现。符号 P1, …, Pk 被视为关系变量,并被认为在 (22) 中受约束。同样,xi 中各个变量的出现被理解为在 Pi(xi)≃ϕi 中受约束。实际上,这些是局部变量。

现在,语言 LPCR 已经定义完毕,我们来讨论意义和指称的概念。

4.3 外延

我们一直在讨论带有自由变量的句子,以及更一般的公式。熟悉的塔斯基语义学为理解这一概念提供了基础,但我们需要对其进行修改和扩展来处理这一概念。

空间 S 上的偏函数是指将值赋给 S 中部分(但不一定全部)成员的函数。换句话说,它的定义域是 S 的子集。对于偏函数 f,f(x)≃y 表示 x 在 f 的定义域内,且 f(x)=y。(最终,我们对前面例子中 ≃ 的使用有了正确的解释。)偏关系是从 k 元组到 {t,f} 的偏函数。我们结构中给定的关系是通常意义上的关系,但我们可能需要自己定义偏关系。

(本章完)

相关推荐