【面向计算机的数理逻辑/软件理论基础笔记】命题逻辑系统的蕴含和自然演绎

244 阅读6分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

基本定义

  • 推理的定义:从一组前提合乎逻辑地推出结果的思维过程。
  • 比如我们有一堆叫做G1,G2...GnG_1,G_2...G_n的前提,在这些前提均成立的情况下,我们可以得到一个叫做HH的结论,这就叫做推理。类似于生活中的,提前:我课前预习,我上课做笔记,我下课及时复习,就可以推出我可以通过期末考试。
  • 而在数学中,我们将G1,G2...GnG_1,G_2...G_nHH称为公式,当且仅当对任意解释II,如果II使得G1G2...GnG_1 \wedge G_2 \wedge ... \wedge G_n为真,则公式HH的结果也为真,这就叫做数学上的推理。
  • 公式:
    1. 推理公式:G1,G2...GnHG_1,G_2...G_n \Rightarrow H
    2. 通常,用集合Γ\Gamma来表示一组前提,记作Γ={G1,G2...Gn}\Gamma=\{G_1,G_2...G_n \},此时,推理公式也可写成:ΓH\Gamma \Rightarrow H
  • 在这里,\Rightarrow也叫做蕴含,只不过这个蕴含表示的是公式之间的关系,我们之前学的蕴含\to是命题变元的运算符。
  • 有时,我们使用\vdash代替\Rightarrow来表示公式之间的蕴含关系,如ΓH\Gamma \vdash H
  • G1,G2...GnG_1,G_2...G_n能推出HH的时候,我们称G1,G2...GnHG_1,G_2...G_n \Rightarrow H为有效的,否则称为无效的。
  • 定理:当且仅当(G1G2...Gn)H(G_1 \wedge G_2 \wedge ... \wedge G_n) \to H为永真公式时,前提集合Γ={G1,G2...Gn}\Gamma=\{G_1,G_2...G_n \}的逻辑结果为公式HH

永真公式也叫重言式,上述定理中,不管G1,G2...GnG_1,G_2...G_nHH如何取值,(G1G2...Gn)H(G_1 \wedge G_2 \wedge ... \wedge G_n) \to H结果始终为1时,被称为永真公式。

  • 范例:判断推理PQ,PQP \to Q,P \Rightarrow Q是否有效 \quad 答案:题目中PQP \to QPP是前提,Q是结论 ,询问PQ,PQP \to Q,P \Rightarrow Q是否有效是否有效,其实就是在询问,PQP、Q取任意值时,((PQ)PQ)((P \to Q) \wedge P \to Q)的结果是否始终为真。有三种方法来验证:
  1. 画真值表
PPQQPQP \to Q(PQ)P(P \to Q )\wedge P((PQ)P)Q((P \to Q )\wedge P) \to Q
00101
01101
10001
11111
我们可以看到((PQ)P)Q((P \to Q )\wedge P) \to Q的值始终为1,所以PQ,PQP \to Q,P \Rightarrow Q有效。
  1. 公式转换 ((PQ)PQ)((P \to Q) \wedge P \to Q) =¬((¬PQ)P)Q=\neg((\neg P \vee Q) \wedge P) \vee Q =(¬(¬PQ)¬P)Q=(\neg(\neg P \vee Q) \vee \neg P) \vee Q =¬(¬PQ)¬PQ=\neg(\neg P \vee Q) \vee \neg P \vee Q =¬(¬PQ)(¬PQ)=\neg(\neg P \vee Q) \vee (\neg P \vee Q) =1=1 因为公式可以转换为1,所以不管P,QP,Q取何值,公式始终为永真公式,也因此PQ,PQP \to Q,P \Rightarrow Q有效。
  2. 主析取范式 ((PQ)PQ)((P \to Q) \wedge P \to Q) =¬((¬PQ)P)Q=\neg((\neg P \vee Q) \wedge P) \vee Q =¬(¬PQ)¬PQ=\neg(\neg P \vee Q) \vee \neg P \vee Q =(P¬Q)¬PQ=(P \vee \neg Q)\vee \neg P \vee Q =(P¬Q)(¬P)(Q)=(P \vee \neg Q)\vee (\neg P) \vee (Q) =(P¬Q)(¬P(¬QQ))((¬PP)Q)=(P \vee \neg Q) \vee (\neg P \wedge (\neg Q \vee Q)) \vee ((\neg P \vee P) \wedge Q) =(¬P¬Q)(¬PQ)(P¬Q)(PQ)=(\neg P \wedge \neg Q) \vee (\neg P \wedge Q)\vee (P \wedge \neg Q)\vee (P \wedge Q) 此公式包含了所有的析取项,所以此公式为永真公式,因此PQ,PQP \to Q,P \Rightarrow Q有效。

(¬P¬Q)(¬PQ)(P¬Q)(PQ)(\neg P \wedge \neg Q) \vee (\neg P \wedge Q)\vee (P \wedge \neg Q)\vee (P \wedge Q)格式为:m0m1m2m3m_0\vee m_1\vee m_2\vee m_3符合永真公式的条件。

基本公式

  • G,H,IG,H,I为任意的命题公式
  • 简化规则:
    • I1:GHGI_{1}:G \wedge H \Rightarrow G

    I1I_{1}解释:比如G是我不会飞,H是羊不会飞,GHG \wedge H表示我和羊都不会飞,那么根据GHG \wedge H可以知道,羊是不会飞的,因此GHGG \wedge H \Rightarrow G

    • I2:GHHI_{2}:G \wedge H \Rightarrow H
  • 添加规则
    • I3:GGHI_{3}:G \Rightarrow G \vee H
    • I4:HGHI_{4}:H\Rightarrow G \vee H
  • 合取引入规则
    • I5:G,HGHI_{5}:G,H \Rightarrow G \wedge H
  • 选言三段论
    • I6:GH,¬GHI_{6}:G \vee H,\neg G \Rightarrow H

    I6I_{6}解释:比如GG是我可以飞,HH是鸟可以飞,GHG \vee H表示我可以飞或鸟可以飞或我和鸟都可以飞,¬G\neg G表示我不可以飞,在GH,¬GG \vee H,\neg G公式中,因为必须有一个可以飞,而我不可以飞,可以得出,鸟是可以飞的,也就是HH,因此GH,¬GHG \vee H,\neg G \Rightarrow H

    • I7:GH,¬HGI_{7}:G \vee H,\neg H \Rightarrow G
  • 假言推理规则
    • I8:GH,GHI_{8}:G \to H,G \Rightarrow H
  • 否定后件式
    • I9:GH,¬H¬GI_{9}:G \to H, \neg H \Rightarrow \neg G
  • 假言三段论
    • I10:GH,HIGII_{10}:G \to H,H \to I \Rightarrow G \to I
  • 二难推论
    • I11:GH,GI,HIII_{11}:G \vee H,G \to I ,H \to I \Rightarrow I

I11I_{11}解释:GHG \vee H表示GGHH有一个成立,GIG \to I表示GG蕴含IIGG成立则II也成立,HIH \to I表示HH蕴含IIHH成立则II也成立。因此,可以通过GH,GI,HIG \vee H,G \to I ,H \to I成立,得到II也成立。

蕴含关系范例

  • 如果 a 是偶数,则 a 能被 2 整除;a 是偶数。所以,a 能被 2 整除。 可描述为:PQ,PQP \to Q, P \Rightarrow Q 假言推理规则
  • 如果一个人是单身汉,则他不幸福;如果一个人不幸福,则他死得早。所以,单身汉死得早。 可描述为:PQ,QRPRP \to Q, Q \to R \Rightarrow P \to R假言三段论
  • 若你发电子邮件告诉我密码,则我将完成程序的编写;我没有完成程序的编写。所以,你没 有发电子邮件告诉我密码。 可描述为:PQ,¬Q¬PP \to Q, \neg Q \Rightarrow \neg P 否定后件式
  • 这个案件的凶手肯定是王某或陈某;经过调查,王某不是凶手。所以,陈某是凶手。 可描述为:PQ,¬PQP \vee Q,\neg P \Rightarrow Q 选言三段论

自然演绎法推理

  • 推理规则:
    • 规则P:称为前提引用规则,在推导过程中,可随时引入前提集合中的任意一个前提
    • 规则T:称为逻辑结果引用规则,在推导的过程中,可以随时引入公式 S,该公式 S 是由其前的一个或多个公式推导出来的逻辑结果
    • 规则CP:(称为附加前提规则):如果能从给定的前提集合Γ\Gamma与公式P推导出S,则能从此前提集合Γ\Gamma推导出P\toS
  • 演绎:从前提集合Γ\Gamma推出结论HH的一个演绎是构造命题公式的一个有限序列: H1,H2,H3...Hn1,HnH_1,H_2,H_3...H_{n-1},H_n 在序列中,总共分为三部分
    • 第一部分是题目中给出的公式,我们叫做前提,他们在题目中通常以Γ={PQ,¬S,PS}\Gamma=\{P \vee Q , \neg S,P \to S\}等形式给出,这里面总共由三个前提,可以用H1=PQ,H2=¬S,H3=PSH_1 = P \vee Q,H_2 = \neg S,H_3 = P \to S表示。
    • 第二部分是有效结论,由题目中前提和上文中提到的一些列基本公式(I1,I2...I11)(I_1,I_2...I_{11})推到出来的公式,比如我们可以通过H2H_2H3H_3推导出H4=¬PH_4 = \neg P
    • 第三部分是结论,通常HnH_n就是我们要推导出的结论,也写作HH
  • 演绎-直接证明法范例:
    • 例题一:设前提集合Γ=PQ,QR,PS,¬S\Gamma = {P \vee Q, Q \to R, P \to S, \neg S},结论 H=R(PQ)H = R \wedge (P \vee Q)。证明:ΓH\Gamma \Rightarrow H
      • 答案: (1)PSP(2)¬SP(3)¬PT,(1),(2)(4)PQT,(1),(2)(5)QT,(3),(4),I(6)QRP(7)RT,(5),(6),I(8)R(PQ)T,(4),(7),I\begin{aligned} &(1)P \to S & P \\ &(2)\neg S& P \\ &(3)\neg P & T,(1),(2) \\ &(4)P \vee Q & T,(1),(2) \\ &(5)Q & T,(3),(4),I \\ &(6)Q \to R & P \\ &(7) R & T,(5),(6),I \\ &(8)R \wedge (P \vee Q) & T,(4),(7),I \\ \end{aligned}
  • 公式右边标记符号解释:
    • PP指推理规则PP,标记上PP的公式,表示该公式都是题目中给定的前提;
    • TT指推理规则TT,标记上T,(1),(2)T,(1),(2)的公式,表示左边的公式是根据第1和第2条公式推出的有效结论,T,(1),(2)T,(1),(2)有时也写作T1,2T_{1,2}
    • II指基本公式,标记上II的公式,表示左边的公式是根据上文提到的(I1,I2...I11)(I_1,I_2...I_{11})中的一条或多条公式推出的有效结论。
  • 每一个公式前面依次有一个序号,最后的序号表示这个证明的推演长度。
  • 例题二:设前提集合Γ=P(QS),¬RP,Q\Gamma = {P \to( Q \to S), \neg R \vee P,Q},结论 H=RSH = R \to S。证明:ΓH\Gamma \Rightarrow H
    • 答案:

(1)RP(附加前提)(2)¬RPP(3)PT,(1),(2),I(4)P(QS)P(5)QST,(3),(4),I(6)QP(7)ST,(5),(6),I(8)RSCP,(1),(7)\begin{aligned} &(1) R & P(附加前提) \\ &(2) \neg R \vee P & P \\ &(3) P & T,(1),(2), I \\ &(4) P \to (Q \to S) & P \\ &(5) Q \to S & T,(3),(4), I \\ &(6) Q & P \\ &(7) S & T,(5),(6), I \\ &(8) R \to S & CP,(1),(7) \\ \end{aligned}

第一个公式后面标记为“PP(附加前提)”,是因为我们想要证明ΓH\Gamma \Rightarrow H,虽然RR不在Γ\Gamma中,但当结论H=RSH = R \to S成立时,RR必须也要成立,所以假设RR是前提,这就叫做附加前提。使用附加前提的公式,要标记上CPCP和引用的公式序号。

命题演绎举例

  • 符号化下面的语句,并使用演绎法证明
  • 例题一:若数 a 是实数,则它不是有理数就是无理数。若 a 不能表示成分数,则它不是有理数。a 是实数且它不能表示成分数。所以,a 是无理数。
    • 答案:
      • 设命题 P:aP : a 是实数; Q:aQ : a 是有理数; R:aR : a 是无理数; S:aS : a 能表示成分数。
      • 推理符号化成: P(QR),¬S¬Q,P¬SRP \to (Q \vee R), \neg S \to \neg Q, P \wedge \neg S \Rightarrow R
      • 推理过程: (1)RP(附加前提)(2)¬RPP(3)PT,(1),(2),I(4)P(QS)P(5)QST,(3),(4),I(6)QP(7)ST,(5),(6),I(8)RSCP,(1),(7)\begin{aligned} &(1) R & P(附加前提) \\ &(2) \neg R \vee P & P \\ &(3) P & T,(1),(2), I \\ &(4) P \to (Q \to S) & P \\ &(5) Q \to S & T,(3),(4), I \\ &(6) Q & P \\ &(7) S & T,(5),(6), I \\ &(8) R \to S & CP,(1),(7) \\ \end{aligned}
  • 例题二:如果马会飞或羊吃草,则母鸡就会是飞鸟;如果母鸡是飞鸟,那么烤熟的鸭子还会跑;烤熟的鸭子不会跑。所以羊不吃草。

这段语句的前提和结论与我们日常生活中的认识有所不同,但不影响我们进行推理。

  • 答案:
    • 设命题 P:P : 马会飞; Q:Q : 羊吃草; R:R : 母鸡是飞鸟; S:S : 烤熟的鸭子会跑。
    • 推理符号化成:

(PQ)R,RS,¬S¬Q(P \vee Q) \to R, R \to S, \neg S \Rightarrow \neg Q - 推理过程: (1)¬SP(2)RSP(3)¬RT,(1),(2),I(4)(PQ)RP(5)¬(PQ)T,(3),(4),I(6)¬P¬QT,(5),E(7)¬QT,(6),I\begin{aligned} &(1) \neg S & P \\ &(2)R \to S & P \\ &(3)\neg R &T,(1),(2), I \\ &(4) (P \vee Q) \to R & P \\ &(5)\neg (P \vee Q) & T,(3),(4), I \\ &(6) \neg P \wedge \neg Q & T,(5), E \\ &(7) \neg Q & T,(6), I \\ \end{aligned}

  • EE指等价公式,标记上EE的公式,表示公式是根据等价公式转换过来的。
  • 等价公式有幂等律、交换律等。