01 命题逻辑

命题逻辑是最简单的逻辑系统。在定义一套形式系统时,我们首先需要定义形式系统允许使用的符号,称为字母表(alphabet),然后定义这些符号之间相互连接的规则,也就是形式系统的语法(syntax)。

命题逻辑的符号

命题逻辑的字母表包括以下内容:

  • 变量符号(variable symbos):一般认为变量应当记为,这里能够用自然数做下标,是因为我们默认命题逻辑能够使用的变量总数是至多可数的(有时为了方便,也可以把变量记为);
  • 连接符号(connectives):非(),与(),或();
  • 括号(parentheses):(),()。括号用来区分命题中各个部分的优先级;
  • TRUE: 这四个英文字母整体是一个命题逻辑中的符号;
  • FALSE: 这五个英文字母整体是一个命题逻辑中的符号;

命题逻辑的语法

根据命题逻辑的字母表,我们可以把字母表中的字母任意排列连接成字符串,这些字符串可以是任意的,比如。然而并不是所有可能的组合形式的字符串都会是我们用到的,只有一小部分满足特定规则的字符串才会构成命题逻辑的“语言”,称为命题逻辑中的一个命题(proposition)。这些组合规则就成为命题逻辑的语法。

我们归纳地定义命题:

  • 单个变量是一个命题;

  • TRUE是一个命题;FALSE是一个命题;

  • 如果是一个命题,那么是一个命题,是一个命题

  • 如果是命题,那么是一个命题,是一个命题;

这就是命题逻辑的全部语法了。

命题逻辑的语义

即便是符合命题逻辑语法的一个命题逻辑符号串,在没有被赋予语义之前也是没有意义的。“为一个命题赋予语义”就是用元语言(自然语言)对命题逻辑符号串做出解释。例如,如果我们有,我们如何对该符号串用做出解释?

在命题逻辑中,我们只关心命题的唯一一种属性:真或假。我们首先为每个原子变量赋予真或假的属性,然后建立一套规则推导出任何命题的真或假。

设变量符号集合记为,那么我们可以定义一个映射,称为上的一个真值指派(truth assignment)。注意,这里小写的区别于命题逻辑符号中的:小写的是自然语言,大写的是命题逻辑符号。

基于真值指派,我们可以定义一个从所有命题逻辑命题到的映射,称为一个命题逻辑解释(interpretation),记为。这就定义了基于真值指派的命题逻辑语义。的定义规则如下:

  • 如果,那么
  • 是满足命题逻辑语法的proposition,那么如果;如果
  • 是满足命题逻辑语法的proposition,那么如果
  • 是满足命题逻辑语法的proposition,那么的语义通过下面的表格来定义,称为真值表(truth table):

永真式,矛盾式,可满足性

有一些命题是特殊的。

有的命题在任何真值指派(解释)下都永远取,例如等等。我们把这样的命题称为一个永真式(tautology)。定义:命题是永真式,如果在任何解释下都有

有的命题在任何解释下都永远取,例如等等。我们把这样的命题称为一个矛盾式(contradiction)。定义:命题是永真式,如果在任何解释下都有

有的命题满足:存在至少一个解释使它取,例如,只需取,就有。我们把这样的命题称为是可满足的(satisfiable)。定义:命题是可满足的,如果存在一个解释使得

Remark: 我们必须区分“语言”和“语言所指向的东西”。命题的语义是由元语言(自然语言)赋予的,并不意味着命题的语义是一串元语言符号。事实上,对每个原子变量赋予真值,然后根据上面这些规则可以推出命题的真值,这一过程是客观、唯一的,并不依赖于自然语言的描述。自然语言只是帮助阅读这篇文章的人理解“语义是什么”,而不是“语义本身”。那么“语义本身”是什么呢?依据维特根斯坦,这是不可言说的,但是我们已经通过语言领会了它。

语义后承&语义等价

有一些“命题对(pair)”之间有特殊的关系。例如,对于任何一个(关于的)解释,只要成立,就一定成立。所以,自然语言通常会说“‘表达式为真’能推出‘表达式为真’”。我们定义,如果对于两个命题,如果对于任何一个解释都成立“只要,就有”,就称的语义后承(consequence),记为

以上定义可以推广。设是一个命题集合,是一个命题。如果对于任何一个解释都成立“只要满足‘所有都有’,就有‘’”,就称命题是命题集合的语义后承,用同样的符号记为

如果是永真式,那么它可以作为任何命题的语义后承。换言之,即便取空集,也有:。所以,我们经常用符号“”来表示是永真式。

如果对于两个命题,如果对于任何一个解释都成立“当且仅当”,就称是语义等价(equivalent)的。例如,是语义等价的。在没有歧义的情况下,我们用符号来表示语义等价。

显然,“”成立当且仅当“”成立。

Remark1: 永真式、矛盾式、可满足性、语义后承、语义等价,这些都是关于命题本身的性质,而与具体的解释的选取无关。例如,特别要注意,我们讨论的“后承”不是选定某一解释之后的后承关系,而是在任何解释下都成立的后承关系的。

Remark2: 我们如何“证明”两个命题是语义后承关系,或语义等价关系?一如我们如何“证明”一个命题是否是永真式。唯一的判定标准是按照真值指派代入,然后按照语义的规则计算,再依据永真式、语义后承关系、语义等价关系的定义来做判断。一旦真值指派确定,那么一个命题逻辑符号串是否是永真式,两个命题逻辑符号串之间是否是语义后承关系,答案是唯一确定的。我们可以用自然语言写一个“证明”来说明在某一特定解释下,两个命题之间究竟是否满足语义后承关系。当然,这个“证明”只是为了帮助我们揭示答案,而不需要满足任何语法规则(如果愿意的话甚至可以通过非文字的方式,比如说话,或者画图)。

命题逻辑语义的性质

根据命题逻辑语义的定义,我们可以“证明”以下这些重要性质成立:

  1. ;这称为排中律(law of excluded middle)
  2. ;这称为双重否定律(law of double negation)
  3. ;这称为幂等律(idempotant law)
  4. ;这称为与交换律(commutative law for and)
  5. ;这称为或交换律(commutative law for or)
  6. ;这称为与结合律(commutative law for and)
  7. ;这称为或结合律(commutative law for and)
  8. ;这称为分配律(distributive laws)
  9. ;这称为德摩根律(De Morgan’s law)
  10. ;这称为吸收律(absorption laws)
  11. 如果并且,那么;这称为语义后承关系的传递性(transitivity of consequence)
  12. 如果并且,那么;这称为语义等价关系的传递性(transitivity of equivalence)
  13. 如果,那么;如果并且,那么;如果并且,那么;这三者分别称为语义等价关系关于非、与、或的合同性(congruence property)
  14. 对于任意命题集合,如果,那么
  15. 对于任意命题集合,如果,那么;特别地,当时,我们有可以推出。结合双重否定律以及传递性,我们得到当且仅当。这称为逆否律(law of contrapositive)

所有以上这些性质都是可以“证明”的。再次提醒,这里所说的“证明”只是对事实的解释说明。下面我们展示一些证明的例子。这些证明中我们也大量运用了假设和推理,但这些假设和推理与命题逻辑中定义的“语义后承”无关。自然语言的假设和推理是建立在我们对“命题逻辑的语义的定义”这一客观对象的共同理解的基础之上的。我们可以把命题逻辑的这些语义性质理解为一些人们发现的自然规律,而证明中的所有假设和推理只是在用“物理定律”(语义的定义)论证为什么存在这些自然规律。

  • 证明排中律
    即证对于任何解释,都有。分类讨论,若,那么根据真值表可知;若,那么,根据真值表可知。证毕。

  • 证明德摩根律
    即证对于任何解释,都有当且仅当。左推右,若,那么,查询真值表可知中至少有一个是。若为false,那么,根据真值表可知;若为false,那么,根据真值表可知。右推左,若,那么中至少有一个为,所以中至少有一个为,所以,所以

  • 证明逆否律“对于任意命题集合,如果,那么”:
    要证,也就是要证对于任何解释,如果。根据,可知(也即对于任意),。现在,如果,那么,于是根据可知,矛盾。因此。证毕。

功能完全性

在命题逻辑中, 我们只引入了三个连接词符号,并给出了它们在真值指派下的语义。那么,重要的问题是:以上三个符号及其语义的定义是否就已经完全够用了呢?是否对于任意有限个变量,任何真值表都能用仅有三个连接词构成的命题来表示?这就是命题逻辑中的-功能完全性问题。

我们可以从搜索的角度理解功能完全性这个问题:对于任何一个真值表,我们可以按照长度穷举所有符合语法的命题逻辑命题,检查该命题是否满足真值表。但搜索无法构成一个有效的证明,因为真值表有无穷多个,并且如果找到了一个不存在命题与之对应的真值表,穷举就会无穷进行下去不会停止。所以,我们再次需要通过“证明”的方式来解决功能完全性问题。

析取范式&合取范式

人们注意到一件重要的事:不必关注所有符合语法的命题逻辑命题。有一些命题虽然合法,但存在比它形式更简单的语义等价命题。例如,全是语义等价的,那么我们就不必考虑其它的,只需考虑这一个命题。换言之,一张真值表会有无穷个与之对应的命题,而我们只需考虑其中形式最“规范”的命题形式。只要我们给出一个“什么叫规范”的定义,我们就提出了一种命题“范式(normal form)”。最著名的范式就是析取范式和合取范式。

析取范式(Disjunctive Normal Forms, DNF)的定义:单个变量符号或带有negation的变量符号称为一个literal(注意不包含);若干literal之间用“”连接而成的命题称为一个合取子句(conjunctive clause);若干个合取子句之间用“”连接而成的命题称为一个析取范式(disjunctive normal form)。例如,就是一个DNF。等不是DNF。

下面我们证明,任何一个命题都语义等价于某一个析取范式。固定一个命题,设中用到的原子变量记为,任何命题都是有限长的,因此只包含有限多个变量)。我们只需构造一个DNF ,使得在个可能的真值指派所形成的解释下,始终有当且仅当。只需这样构造

可见,若,则,因此;若,则至少存在一个满足使得,这意味着对于每个,所以,所以。这就说明对于任意当且仅当。所以语义等价。

我们可以定义和析取范式类似的另一类范式,称为合取范式。同样,把单个变量符号或带有negation的变量符号称为一个literal;若干literal之间用“”连接而成的命题称为一个析取子句(disjunctive clause);若干个合取子句之间用“”连接而成的命题称为一个合取范式(conjunctive normal form, CNF)。

我们可以利用我们在析取范式中得到的结果,证明任何一个命题都语义等价于某一个合取范式。固定一个命题,我们可以构造与其否定命题语义等价的析取范式。那么,语义等价于,根据De Morgan’s law,,这恰好是一个合取范式。

-功能完全性

根据我们已经得到的结论——“任何命题都语义等价于某个析取范式”——我们几乎已经证明了-功能完全性了。对于任意一个真值表,我们只需取函数值为的行,依据每一行的内容构造合取子句,再把它们用连接。

例如,下面这张真值表可以这样构造析取范式:

既然任何真值表都能找到一个析取范式与之对应,那么说明任何真值表都能找到一个命题逻辑命题与之对应。所以-功能完全性成立。

-功能完全性

事实上,连符号也是多余的。我们可以证明已经具有功能完全性了。我们归纳地证明,对于任意含有符号的命题,存在一个只含有符号的命题满足

  • 归纳基础:若,只需取
  • 归纳步骤:
    (1) 假设只含有符号,则根据的congruency有,显然只含有符号
    (2) 假设,且只含有符号,那么根据的congruence有,显然只含有符号
    (3) 假设,且只含有符号,那么根据的congruence有,又根据De Morgan’s Law,,根据等价的传递性,显然只含有符号

注意,以上归纳法不同于自然数集上的归纳法,而是根据命题的结构做pattern match(模式匹配)的分类讨论来归纳的。这样的归纳法称为“结构归纳法(structural induction)”。

同理,可以证明也是功能完全的。

然而,不是功能完全的。考虑,当都为时为,但是任何只包含的命题在所有变量都为时一定为