Back to Basics: First-Order Logic
岁月易得,不觉新凉似水,绿叶渐稀,来把形式逻辑继续写一写。
上篇讲了命题逻辑,能够用来处理命题之间的联结关系,对于简单推理已然足够。但当论证涉及个体、性质、关系以及“所有”“有些”等量化表达时,若把整个句子视为一个原子命题,便会丢失决定推理是否成立的关键信息。
一阶逻辑(First-Order Logic, FOL)由此而来。它保留命题逻辑中的否定、合取、析取、条件等逻辑联结词,并进一步引入个体、谓词、函数和量词,从而能够表达对象具有何种性质、对象之间存在何种关系,以及这些断言对哪些对象成立。
本文依次介绍一阶逻辑产生的必要性、形式语言、量词与变量、语义、逻辑关系与公式变换,以及自然语言的形式化方法。
Why First-Order Logic
Limitations of Sentential Logic
看一个经典论证:
所有人都会死。
苏格拉底是人。
所以,苏格拉底会死。
在自然语言中,这个论证显然有效。
若只使用命题逻辑,可以令:
$M$:所有人都会死;
$S$:苏格拉底是人;
$D$:苏格拉底会死。
于是论证被形式化为:
$$ M,S \vDash D $$
但这一语义蕴含并不成立。原因在于,在命题逻辑中,$M$、$S$、$D$ 只是三个彼此独立的原子命题。命题逻辑并不知道“苏格拉底”是一个个体,也不知道“是人”和“会死”是可以作用于个体的性质,更不知道第一个命题中的“人”和第二个命题中的“苏格拉底”之间存在实例化关系。
命题逻辑把整个句子压缩为一个不可再分的命题字母,丢失了句子的内部结构。真正决定上述论证有效性的,是以下结构:
$$ \forall x(H(x)\to D(x)) $$
表示任意对象 $x$,如果 $x$ 是人,那么… Continue Reading