Tip
没写完,鸽了。
写在最前面:无需定义的定义
在数学中,我们常常习惯给事物一个定义。比如,我们把偶数定义为“能够被 2 整除的数”。给出一个范围,约束一个性质,只要保证约束是无矛盾的,就可以作为一个合理的定义。因此,给出一个定义常常是比证明一条定理更简单的事情,因为后者需要创造一个推理过程,而前者只需要检验合理性。
但是,当我们涉及到逻辑学或是集合论这样的领域,尤其是试图将它们进行公理化建构时,却发现定义似乎不是那么容易了。究其原因,是因为之前所作的定义,是一个从已知到未知的过程;而对于逻辑学或集合论,它们是数学大厦的基础,在他们之前,根本没有什么是“已知”的,自然没法从一片虚无中衍生出什么东西。
于是这个时候,我们不得不接受“无需定义的定义”。我们需要承认,**有一些东西,是无需定义也天然存在的。**我们无法结构化地描述它们内在的组成,只能形式化地给出它们所适用的外在的规则。比如在公理化集合论里,我们不去定义什么是集合,什么是元素,什么是属于关系,我们只是给出了“属于关系是一个可以作用于集合和元素的二元关系”这一说明。再比如在后文中提到的“个体对象”“谓词”,都是这样的“无需定义的定义”。
如果觉得这仍旧难以理解,不妨做一个类比。在数学中,我们承认公理的存在,公理无需证明就天然正确。而其余的定理,都是从公理中演绎出来的。公理可以无需证明就成立,那么为什么不能有无需定义就存在的东西呢?
命题逻辑
个体对象、逻辑运算符和命题
如前文所述,“个体对象”是一个无需定义的概念,但这并不妨碍我们用直观的方式来理解。
生活中,我们经常会做出各种论断,比如“天是蓝的”“地球是圆的”。这种简单的论断,就是命题的一种,我们称之为原子命题。其中涉及到的各个对象,比如“天”“地球”“蓝”,就是个体对象。
虽然直观来看,原子命题是由个体对象“组装”而成的,但是在命题逻辑里,我们并不知道、也不关心这个“组装”的过程到底是怎样的。命题逻辑把原子命题看作一个不可分的整体,至于个体对象形成命题的过程,要到谓词逻辑才能进行研究。
**原子命题通过一系列逻辑运算符连接,就能得到命题。**如果直观理解,这里的逻辑运算符,是与()或()非()等组成的一个全功能集。而如果从头开始定义,我们需要选取其中能构成全功能集的一组,对它的性质加以说明,再从中得出其余的运算符。以下定义:
- 原子命题是命题。
- 原子命题通过逻辑运算符连接而成的,是命题。
- 如果是一个一元逻辑运算符,为命题,那么也为命题。
- 如果是一个二元逻辑运算符,和为命题,那么也为命题。
这是一组递归定义,并且它给出了命题的完整定义,利用这些我们就可以判定什么是命题。
但对于命题逻辑而言,这些仍旧是不完整的,因为我们还不知道逻辑运算符除去连接命题以外有何作用。但在研究逻辑运算符有何作用之前,我们需要先思考一个问题:既然我们正在做的事情,就是定义逻辑命题如何演算,那么传统的公理化方法,在这里依然适用吗?
形式系统
在集合论公理化的过程中,我们给出了一组公理,然后用他们推导出一系列定理,虽然烧脑,但还是在可接受的范围内的。但到了逻辑学,问题出现了:以往我们是用命题来描述对象的性质,现在我们正在定义什么是命题,那么怎么描述命题本身的性质?
现在只使用数学以内的工具是不行了,因为目前数学以内还没有什么工具是可用的。但方法总还是有的:数学总需要以语言作为载体,要研究数学本身的规则,可以从语言入手。
于是,在 1921 年,希尔伯特提出元数学的概念,并使用形式系统研究元数学。**形式系统是一套形式语言和形式规则的总和。形式语言是对于字符串(字符串是一系列符号的可重复有序排列)是否符合某种形式的论断。**这里我们可以放心地使用“论断”这个词,因为它不是对于一个数学命题的描述,而是在数学之外的对于语言的描述。有些地方使用集合论的语言来定义形式系统,但本文不采用这种做法,因为集合论的公理化是建立在谓词逻辑基础上的,而定义形式系统时,用到的不是完整的公理化集合论,只是简单的朴素集合论语言。
现在,让我们用形式语言的方式,重新写一下命题的定义:
- 命题涉及到的符号分为三类,原子命题(一般用字母表示)和逻辑运算符。
- 命题的形式包括:
- 原子命题。
- 一元逻辑运算符后紧跟着一个命题。
- 由二元逻辑运算符连接的两个命题。
- 有限次重复使用以上规则,得到的字符串。
注意上面最后一条的说法,这表示命题是一个递归定义。递归定义在形式语言的定义中很常见,因为往往我们无法穷举所有的字符串,只能以递归的方式消解复杂性。
此外,为避免形式语言的歧义,可以在命题中添加括号,来规定逻辑运算符结合的对象。括号的具体规则并非本文的重点,不再赘述。
以刚才的这种方式,给出形式语言的一个定义,称为形式规则。顾名思义,形式规则描述了字符串形式和形式语言之间的关系。一个形式规则包含若干条这样的论断:满足某种形式的字符串是(或不是)某个形式语言。
有了这样的形式规则,我们取一元逻辑运算符为,二元逻辑运算符为,就能够对一些东西是不是命题做判断了,例如:
- 是命题,且是原子命题。(规则 1)
- 是命题。(规则 1、2)
- 是命题。(规则 1、3)
- 是命题。(规则 1、3、4)
- 是命题。(规则 1、2、3、4)
- 不是命题,因为形式规则不允许两个二元逻辑运算符直接相邻。
- 不是命题,因为量词不是原子命题也不是逻辑运算符。做出这种论断,是因为我们仅在命题逻辑的范畴内定义了命题,而对于谓词逻辑,我们会扩充命题的定义,使得也能成为命题。
在形式系统中,我们把符合某些形式规则的字符串,称为合式公式(又称合适公式,英文 well-formed formula,简称 wff),简称公式。因此,有时我们又把命题成为命题公式,因为命题的名称可能与原子命题混淆。
重言式、公理模式
现在,有了命题的定义,我们再来思考一个问题:什么是真命题?
在拥有形式系统这一工具之前,这个问题也许会有五花八门的答案。但从形式系统的角度,结论只有一个:真命题也是一个形式语言,当然,使用的形式规则和命题公式不同。真命题的形式语言称为重言式(读音:chóng yán shì),也可以直接叫做永真式或者真命题。
有形式语言,就有对应的形式规则。在命题逻辑中,当取一元逻辑运算符为,二元逻辑运算符为时,重言式的形式规则包括:
- (代入规则)对于一个重言式中的某一个符号(原子命题),如果把相同符号全部替换为另一个命题,得到的仍是重言式。
- (肯定前件)对于重言式和命题,如果是重言式,那么也是重言式。
对于肯定前件,有一点需要指出:**这里的和指的不只是原子命题,而是命题公式。**也就是说,任何符合这一模式的两个命题,都能适用这条规则。比如,当和为真时,也为真。
像这样对命题公式的形式进行模式上的匹配,然后作出论断的形式规则,又叫做公理模式。一般情况下,狭义的公理模式仅限于对重言式的论断。
代入规则使得一般的命题也可以作为公理模式使用。也许你会留有一点疑虑,如果而是重言式,是不能轻易将替换掉的,但实际上,代入规则只能代换原子命题,而一个单独的原子命题是无法成为重言式的。这也是有的地方把恒真()和恒假()作为零元逻辑运算符,而不是作为原子命题处理的原因。
上面所说的两条,并不是重言式完整的形式规则。在命题逻辑中,当取一元逻辑运算符为,二元逻辑运算符为时,重言式的一个完整的形式规则由扬·武卡谢维奇给出,这一组规则称为希尔伯特演绎系统:
- (代入规则)对于一个重言式中的某一个符号(原子命题),如果把相同符号全部替换为另一个命题,得到的仍是重言式。
- (肯定前件)对于重言式和命题,如果是重言式,那么也是重言式。
- 是重言式。
- 是重言式。
- 是重言式。
- 有限次运用以上规则,得到的字符串是重言式。
这些形式规则中,2、3、4、5 都可以用作公理模式。其中 3、4、5 条中的指的是原子命题,但是在代入规则下,可以用命题公式代入,因此这三条也能作为公理模式。
与重言式对应的,假命题的形式语言称为矛盾式。矛盾式的形式规则很简单:如果命题满足是重言式,那么是矛盾式。
形式逻辑与自然逻辑
在上一节,我们几乎不加任何思考就接受了“重言式是形式语言”这个说法,但是回过头来,思考一下,这个说法真的很正常吗?
如果你完全感觉不到问题,要么说明你是个理解能力极强的天才,要么说明你对形式语言还存在一些误解。
形式语言作为一个工具,最早是作为判断一个字符串是否符合文法被发明的,这也是我们对于形式语言最容易接受的理解。这种理解在编程语言中应用最广,比如判断f(&a)->b
是不是一个合法的 C 语言表达式,就是看他是否符合 C 语言的形式规则。再比如前面提到的命题公式,也是形式语言的这种应用。
在这个过程中,我们做的是“组合”的工作。原子命题是最小的命题,其余所有的命题都是由原子命题和逻辑运算符组合起来的。这个过程中,命题总是越组合越长。在验证一个字符串是不是命题的时候,我们先用规则进行匹配,找到它的子串,再看子串是不是命题。也就是说,创造命题是从小到大的组合,验证命题是从大到小的拆解。
但是,真命题,或者说重言式,这个概念似乎并不符合这一的特点。数学追求简洁的美,但如果真命题只能由其他命题组合而来,得到的结论只能越来越长,与简洁背道而驰。所以,我们需要一个手段,能够在创造的过程中,把组合过的命题拆解开,给出简短的答案。
再来看一看希尔伯特演绎系统里的这些规则,可以发现,1、3、4、5 都是在说命题如何组合,只有肯定前件在描述如何拆开一个命题。它揭示了作为一个重言式的一部分,也有成为重言式的可能。
而当我们去“证明”一个命题,也就是说明这个命题是重言式的时候,我们实际上是在寻找一个更大的、包含我们的目标的命题,然后说明它可以通过肯定前件简化到我们的目标。
也就是说,**肯定前件是重言式和其他的形式语言最重要的区别。**因为肯定前件的存在,重言式可以在创造时进行拆解,在验证时进行组合,这就极大拓展了形式语言的表现力,为我们实现逻辑提供可能。
现在我们解决了为什么能够用形式语言表示重言式的问题。下一个问题是:为什么应该用形式语言表示重言式?
这个问题的答案可以有很多,但最重要的原因在一开始就提到了——因为在此时,我们几乎没有可用的工具。
也许你会想:形式语言是不是唯一的答案?那么,让我们设想一下,如果不使用形式语言,我们还有什么呢?
其实最简单、最直接的方式,就是按照我们对逻辑的经验,提炼演绎的规则,并按照这些规则进行推演。这种逻辑演绎的方式,就是自然逻辑。
在自然逻辑中,我们有很多先验的逻辑运算符以及他们的规则。比如合取(),我们知道如果和均为真,那么为真,我们也知道如果为真,那么和均为真。
像这样的规则是非常自然,非常符合我们的经验的。不过,如果换个角度来看,这条规则,作为一个形式规则,是不是也完全合理呢?
所以说,形式语言的表现能力是很强的,它完全可以把整个自然逻辑作为自己的子集,再加上形式系统的精确和简洁,形式系统完全是表达逻辑的不二选择。
但是,正因为形式系统的表现能力很强,它所表现出来的东西,并不一定完全是符合人们经验中的逻辑的。只有符合人们的经验逻辑的形式系统,才能称作形式逻辑。为了寻找一组能够准确表达符合人们的经验的形式规则,数学家做出了很多努力。
寻找的过程是极其复杂的。逻辑运算符有很多,哪些要作为“无需定义的定义”,哪些要从其余的运算符里定义推导;设计怎样的形式规则,使之没有矛盾、完整而无冗余……最终,在罗素、弗雷格、希尔伯特、扬·武卡谢维奇、格哈德·根岑等一众数学家的努力下,形式逻辑的两个集大成之作诞生了。
- 希尔伯特演绎系统是最简洁的形式逻辑系统。它只有两个先验的逻辑运算符(和),和五条形式规则。
- 自然演绎系统是最容易理解的形式逻辑系统。它所有的形式规则都直接来源于自然逻辑,没有任何一条规则是“刻意”规定的。
接下来,我们分别来看一看这两个形式系统。
希尔伯特演绎系统(上)
让我们先回顾一下前面提出的希尔伯特演绎系统的规则。在命题逻辑中,当取一元逻辑运算符为,二元逻辑运算符为时,
- (代入规则)对于一个重言式中的某一个符号(原子命题),如果把相同符号全部替换为另一个命题,得到的仍是重言式。
- (肯定前件)对于重言式和命题,如果是重言式,那么也是重言式。
- 是重言式。
- 是重言式。
- 是重言式。
- 有限次运用以上规则,得到的字符串是重言式。
注意一下在这几条规则之前,特别加粗的字。这句话的意思是,这两个逻辑运算符是作为“无需定义的定义”引入的。它们本身不具有任何含义,只有形式上的作用。形式规则赋予它们各种性质,并保证它们能符合我们对“否”和“蕴含”的心理预期。
下面,我们来试着用这些规则,做一点简单的证明。
求证:是重言式。
证明:首先使用规则 4,用代入,代入,代入,得重言式(1)
然后使用规则 3,用代入,代入,得重言式(2)
发现(2)式和(1)式的蓝色部分相同,于是根据肯定前件,得重言式(3)
使用规则 3,用代入,代入,得重言式(4)
同样,由(3)式、(4)式和肯定前件,得重言式
证毕。
求证:(三段论)对于命题,如果和均为重言式,那么也为重言式。
证明:由规则 3,得重言式
又为重言式,故为重言式。
由规则 4,得重言式
又为重言式,故,而也为重言式,因此得重言式,证毕。
求证:(双重否定消去)是重言式。
证明:由规则 3,得重言式
由规则 5,得重言式
由三段论,得重言式
用代入,代入,得重言式
同上,由规则 5 及三段论,得重言式
用代入,得重言式
由规则 3 及规则 4,分别有重言式
反复运用肯定前件,即得为重言式,证毕。
求证:(双重否定)是重言式。
证明:在中,用代入,得重言式
由规则 5,得重言式
由肯定前件,得是重言式,证毕。
求证:(替换规则)对于命题和命题,如果有和都是重言式(简记为,这里的不是逻辑运算符,而是一个表判断的记号,是形式规则),那么有:
- 对于命题,。
- 对于命题,。
- 。
递归地应用替换规则,我们可以把一个重言式中的所有子串都替换为,得到的仍是重言式,这是替换规则名称的来源。
证明概要:结论 1:由规则 3 知是重言式,又由规则 4 得,结合是重言式即得是重言式。同理可得是重言式。
结论 2:
结论 3:根据结论 1、2,以及,由可得重言式,再由规则 5 即证。
希尔伯特演绎系统(下)
有了替换规则之后,我们就有能力引入其他的逻辑运算符了。因为一般来说,我们对一个符号的定义,指的是形式上的可替代性,而在希尔伯特演绎系统中,是需要替换规则来保证的。接下来,我们定义:
- (析取)
- (合取)
- (等价)
注意区分和,前者是逻辑运算符,其连接成的是一个命题,后者是一个表判断的记号,是形式规则。
同样,我们可以用表示“是重言式”。
求证:(交换律)
证明概要:由及可知,之后自然得出交换律。
求证:(析取介入)如果是重言式,那么是重言式。
证明概要:由可知是重言式,根据交换律,也是重言式。
求证:(合取介入)如果和都是重言式,那么是重言式。
证明:……
求证:(析取消除)如果是重言式,是矛盾式,那么是重言式。
证明概要:是重言式即为,以下显然。
求证:(合取消除)如果是重言式,那么和都是重言式。
证明:……
求证:(结合律)
证明:……
求证:(分配律)
证明:……
求证:(等价式)
- 如果是重言式,那么。
- 如果,那么是重言式。
证明概要:这是合取介入和合取消除的直接推论。
自然演绎系统
(待续)