【面向计算机的数理逻辑/软件理论基础笔记】命题逻辑系统的基本定义、逻辑公式、语义结构

190 阅读8分钟

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

命题

  • 基本定义
    • 命题的定义:命题是一个陈述句,比如我在写文章,我在CSDN上写了一篇文章。
    • 命题的分类:
      • 命题可以分为简单命题和复杂命题 :
        • 简单命题:等同于陈述句的简单句,比如我在写文章
        • 复杂命题:等同于陈述句的复合句,比如我在CSDN上写了一篇文章
      • 命题也可分为真命题和假命题
        • 真命题:等同于真的陈述句,比如天空是蓝色的
        • 假命题:等同于假的陈述句,比如天空是绿色的
    • 命题变元: 表示任意命题,用字母p,q, p1,q1, p2,q2,p, q,\ p_{1}, q_{1},\ p_{2}, q_{2}, \cdots表示
    • 连接符:在陈述句中,连接符有“如果...那么...”等,那么在命题逻辑公式中,连接符有“¬\vee ,\wedge,\rightarrow, \neg”等
    • 辅助符:只有小括号“(”和“)”两个辅助符号,在命题运算时,优先执行小括号内的运算
    • 复合命题:由命题变元和一些连接符构建起来,在陈述句中,可以是“ 如果李司是犯罪嫌疑人,那么李司有犯罪动机。”,而在命题逻辑公式中,复合命题可以是“ ¬pq\neg p \rightarrow q

命题逻辑公式

  • 定义:
    • 每一个命题常元或命题变元都是命题公式
    • 若A是命题公式,则¬A\neg A是命题公式
    • 若A和B都是命题公式,则ABA \vee B,ABA \wedge B,ABA \rightarrow B,ABA \longleftrightarrow B都是命题公式
    • 一个由命题常元或命题变元,联结词和括号所组成的符号串是命题公式,当且仅当这个符号串是有限次应用上面的步骤得到的。
  • 公式:通过我们使用符号 A 表示命题逻辑公式用,在实际的公式中,我们可以像如下方法使用: A::=pAAAA¬AAAA ::= p | A \wedge A | A \vee A | \neg A | A \rightarrow A
  • 等价公式:
    • ABA \vee B等同于¬AB\neg A \rightarrow B
    • ABA \wedge B等同于¬(A¬B)\neg (A \rightarrow \neg B) 所以,我们可以将上面的公式化简为: A::=p¬AAAA ::= p | \neg A | A \rightarrow A
  • 归纳定义:设命题变元集S={p1,p2,,pn,}S = \{p1,p2, \cdots,p_{n}, \cdots \}F(S)F(S)表示SS上的命题公式集,其元素用AA表示,则归纳定义如下
    • SF(S)S \subseteq F(S),表示每个命题变元都是命题逻辑公式,称为原子命题公式
    • A,BF(S)A,B \in F(S),则¬AF(S),ABF(S)\neg A \in F(S),A \rightarrow B \in F(S)
    • F(S)F(S)中所有的元都可以通过上面两种方法得到
    • 范例:p1p2p_{1} \rightarrow p_{2}(p1p2)(p2p3)(p_{1} \rightarrow p_{2}) \vee (p_{2} \rightarrow p_{3})¬p1p2\neg p_{1} \rightarrow p_{2}这样的都符合命题逻辑公式,但p1p_{1} \rightarrow(p2)p3(p_{2} \vee) \wedge p_{3}这样的就不是命题逻辑公式。

命题逻辑系统的语义结构

  • 真值
    • 真值指派:对命题变元指定真值。因为原子命题公式的真值可以指定为真或假,通过我们用1表示真,0表示假,所以命题变元集和{0,1}\{ 0,1\}可以构成一个映射关系。
    • 真值指派范例:假设有命题变元p1,p2,p3,p4p_{1},p_{2},p_{3},p_{4},真值组(0,1,1,0)(0,1,1,0)p1,p2,p3,p4p_{1},p_{2},p_{3},p_{4}的一个真值指派。
  • 运算符
    • 连接符运算方式

      • 一元否定运算符¬\neg:对真命题否定的结果为假命题,对假命题否定结果为真命题,双重否定则不发生变化。比如p表示今天会下雨,则¬\negp表示今天不会下雨,¬¬\neg\negp表示今天不会不下雨。 当命题变元:p=1,q=0时

      ¬p=0\neg p = 0

      ¬q=1\neg q = 1

      ¬¬p=1 \neg \neg p = 1

      ¬¬q=0 \neg \neg q = 0

      直接用数字可以表示为:

      ¬1=0\neg 1 = 0

      ¬0=1\neg 0 = 1

      • 二元且运算符\wedge:只有当两个真元均为真的时候,结果才为真,否则为假。比如p表示鱼不可以飞,这是一个真命题,q表示我不可以飞,这是一个真命题,则pqp \wedge q表示我和鱼都不可以飞,这也是一个真命题,¬pq\neg p \wedge q表示我可以飞而且鱼不可以飞,这也是一个假命题。 下面,当命题变元:p=1,q=0时:

      pq=0p \wedge q = 0

      qq=0q \wedge q = 0

      ¬pq=0\neg p \wedge q = 0

      ¬qp=1\neg q \wedge p = 1

      直接用数字可以表示为:

      00=00 \wedge 0 = 0

      10=01 \wedge 0 = 0

      01=00 \wedge 1 = 0

      11=11 \wedge 1 = 1

      • 二元且或算符\vee:只有当两个真元均为假的时候,结果才为假,否则为真。比如p表示鱼可以飞,这是一个假命题,q表示我可以飞,这也是一个假命题,则pqp \wedge q表示我和鱼都可以飞,结果也是个假命题,¬pq\neg p \wedge q表示我不可以飞或鱼可以飞,结果是一个真命题。 下面,当命题变元:p=1,q=0时:

      pq=1p \vee q = 1

      qq=1q \vee q = 1

      ¬pq=0\neg p \vee q = 0

      ¬qp=1\neg q \vee p = 1

      直接用数字可以表示为:

      00=00 \vee 0 = 0

      10=11 \vee 0 = 1

      01=10 \vee 1 = 1

      11=11 \vee 1 = 1

      • 二元蕴含运算符\rightarrow:蕴含符前面的命题变元可以推出蕴含符后面的命题变元,在陈述句中通常表示“如果...那么...”,真命题蕴含真命题、假命题蕴含假命题、假命题蕴含假命题、结果均为真命题,只有当真命题蕴含假命题时,结果才为假命题。比如p表示我是中国人,把它看作一个真命题,q表示我是亚洲人,把它也看作一个真命题,则pqp \rightarrow q表示如果我是中国人,那么我是亚洲人,这是一个真命题,¬p¬q\neg p \rightarrow \neg q表示如果我不是中国人,那么我也不是亚洲人,这也是一个真命题,p¬pp \rightarrow \neg p表示如果我是中国人,那么我不是亚洲人,这是一个假命题。

        下面,当命题变元:p=1,q=0时:

      pq=0p \rightarrow q = 0

      qq=1q \rightarrow q = 1

      ¬pq=1\neg p \rightarrow q = 1

      ¬qp=0\neg q \rightarrow p = 0

      p¬q=1 p \rightarrow \neg q = 1

      q¬p=1 q \rightarrow \neg p = 1

      ¬q¬p=1\neg q \rightarrow \neg p = 1

      直接用数字可以表示为:

      00=10 \rightarrow 0 = 1

      10=01 \rightarrow 0 = 0

      01=10 \rightarrow 1 = 1

      11=11 \rightarrow 1 = 1

      • 连接符运算范例: 给定三组命题变元p1,p2,p3,p4p_{1},p_{2},p_{3},p_{4},分别执行四组不同的公式,得到的真值表如下:
公式(0,1,1,0)(1,1,0,1)(1,1,1,1)
(p1p2)p3(p_{1} \rightarrow p_{2}) \vee p_{3}111
¬(p1p3)p4\neg (p_{1} \wedge p_{3}) \rightarrow p_{4}011
p1p1p_{1} \rightarrow p_{1}111
(p5p2)p1(p_{5} \wedge p_{2}) \rightarrow p_{1}×\times×\times×\times

命题变元p5不存在,所以在逻辑运算公式中会无法求出真值表

  • 赋值
    • 赋值的通俗定义:设AA为一个命题公式p1,p2,p3,p4p_{1},p_{2},p_{3},p_{4}AA中出现的所有命题变元,则给p1,p2,p3,p4p_{1},p_{2},p_{3},p_{4}指定一组真值的行为,称为对AA的赋值(解释)。
    • 赋值的数学定义:F(S)F(S)的一个赋值vv是一个映射F(S){0,1}F(S) \rightarrow \{0, 1\}, 并满足下面条件:
      • v(¬A)=¬v(A)v(\neg A) = \neg v(A)
      • v(AB)=v(A)v(B)v( A \rightarrow B) = v(A) \rightarrow v(B)
    • 分类:若指定的一组值使AA的值为真,则称这组值为AA的成真赋值;若使AA的值为假,则称这组值为AA的成假赋值。
    • 意义:一个含有命题变项的命题公式的真值是不确定的,只有对它的每个命题变项都用指定的命题常项代替后,其真值才唯一确定,命题公式也才能被称为一个命题。
    • 定理:含有n个命题变项的命题公式共有2n2^{n}组赋值。
    • 真值表:将命题公式AA在所有赋值之下的取值情况列成表,则称该表为AA的真值表。构造真值表的步骤如下:
      • 将命题公式中的所有命题变项按从左到右的出现顺序列出(有脚标则按脚标顺序)
      • 将所有可能赋值赋给命题变项,从00…0开始,每次加1,直到11…1为止(即以二进制渐增的方式赋值)
      • 对应的每个赋值公式都计算出其命题公式各层次的值
      范例:列出命题公式¬(pq)q\lnot (p\to q)\land q的真值表
ppqqpqp \rightarrow q¬(pq)\neg (p \rightarrow q)¬(pq)q\neg (p \rightarrow q) \land q
00100
01100
10010
11100
  • 命题公式的分类
    • 重言式的通俗定义:设A为一个命题公式,若A在所有赋值下取值均为真,则称A为重言式(也叫永真式、逻辑有效); 重言式的数学定义:设AF(S)A \in F(S),若对每个赋值vΩv \in \Omega都有v(A)=1v(A) =1,则称A为重言式。

    • 矛盾式的通俗定义:设A为一个命题公式,若A在所有赋值下取值均为假,则称A为矛盾式(也叫永假式); 矛盾式的数学定义:设AF(S)A \in F(S),若对每个赋值vΩv \in \Omega都有v(A)=0v(A) =0,则称A为矛盾式。

    • 可满足式:设A为一个命题公式,若A至少存在一组成真赋值,则称A是可满足式; 可满足式的数学定义:设AF(S)A \in F(S),若存在赋值vΩv \in \Omega都有v(A)=1v(A) =1,称A是可满足的。

    • 范例:当pp的赋值集Ω={0,1}\Omega=\{0,1\}

      • ppp \rightarrow p属于什么式? 答案:当pp赋值为00时,000 \rightarrow 0结果为11,当pp赋值为11时,111 \rightarrow 1结果为11,得出对pp的每个赋值vΩv \in \Omega,都有v(A)=1v(A)=1,因此ppp \rightarrow p为重言式
      • p¬pp \wedge \neg p属于什么式? 答案:当pp赋值为00时,0¬00 \wedge \neg 0结果为00,当pp赋值为11时,1¬11 \wedge \neg 1结果为00,得出对pp的每个赋值vΩv \in \Omega,都有v(A)=0v(A)=0,因此ppp \rightarrow p为矛盾式

符号Ω\Omega表示所有赋值集

  • 逻辑等价
    • 定义:设 A,BF(S)A, B ∈ F(S),若对于 vΩv \in \Omega 都有 v(A)=v(B)v(A) = v(B),则称 AABB 是逻辑等价的,记作 A=BA = B

    • 性质:

性质名称性质公式1性质公式2
交换律AB=BAA \vee B = B \vee AAB=BAA \wedge B = B \wedge A
结合律A(BC)=(AB)CA \vee( B \vee C) = (A \vee B) \vee CA(BC)=(AB)CA \wedge ( B \wedge C) = (A \wedge B) \wedge C
分配律A(BC)=(AB)(AC)A \vee( B \wedge C) = (A \vee B) \wedge (A \vee C)A(BC)=(AB)(AC)A \wedge ( B \vee C) = (A \wedge B) \vee (A \wedge C)
de Morgan律¬(AB)=¬A¬B\neg ( A \vee B) = \neg A \wedge \neg B¬(AB)=¬A¬B\neg ( A \wedge B) = \neg A \vee \neg B
吸收律A(AB)=AA \vee ( A \wedge B) = AA(AB)=AA \wedge ( A \vee B) = A
幂等律AA=AA \vee A=AAA=AA \wedge A=A
对合律¬¬A=A\neg \neg A=A
  • 范式
    • 简单析取范式:仅由有限个命题变项或其否定构成的析取式称为简单析取式。如:p,¬p,pq,p¬q,¬pqrp, \lnot p , p\lor q, p\lor\lnot q , \lnot p\lor q\lor r,这些都是简单析取式。
    • 简单合取范式:仅由有限个命题变项或其否定构成的合取式称为简单合取式。如:p,¬p,pq,p¬q,¬pqrp, \lnot p , p\land q, p\land \lnot q , \lnot p\land q\land r,这些都是合取析取式。
    • 析取范式:仅由有限个简单合取式构成的析取式称为析取范式。如:¬pqr,(p1¬q1)(¬p1p2)(p1p2p3)\lnot p\lor q\lor r,(p_1\land\lnot q_1)\lor(\lnot p_1\land p_2)\lor(p_1\land p_2\land p_3),这些都是简单析取式。
    • 合取范式:仅由有限个简单析取式构成的合取式称为合取范式。如:¬pqr,(p1¬q1)(¬p1p2)(p1p2p3)\lnot p\land q\land r,(p_1\lor \lnot q_1)\land (\lnot p_1\lor p_2)\land (p_1\lor p_2\lor p_3),这些都是简单合取式。
    • 范式存在定理:任一命题公式都存在着不唯一的与之等值的析取范式和合取范式。 根据范式存在定理,可知任一命题公式都能通过等值演算求出与之等值的析取范式与合取范式,主要方式如下:
      • 消去\rightarrow\leftrightarrow pq¬pqp\rightarrow q \Leftrightarrow \neg p \vee q pq(¬pq)(p¬q)p\leftrightarrow q \Leftrightarrow (\neg p \vee q) \wedge ( p \vee \neg q)
      • 否定号¬\neg的消去或内移: ¬¬pp\neg\neg p \Leftrightarrow p ¬(pq)¬pq\neg (p \wedge q) \Leftrightarrow \neg p \vee q ¬(pq)¬pq\neg (p \vee q) \Leftrightarrow \neg p \wedge q
      • 分配律 对析取范式应使用\land\lor的分配率;对合取范式应使用\lor\land的分配率
    • 范例:求((pq)r)p((p\lor q)\to r)\to p的合取范式和析取范式

 ((pq)r)p=(¬(pq)r)p(消去上一个式子里面的=¬(¬(pq)r)p(消去上一个式子外面的=¬((¬p¬q)r)p(上一个式子里面的¬内移)=(¬¬p¬¬q)¬r)p(上一个式子外面的¬内移)=((pq)¬r)p(消去上一个式子的双重否定¬¬=((pq)q)(¬rp)(根据分配律,将上一个式子看作(AB)C=(AC)(BC)进行拆分)=(pq)(¬rp)(根据结合律和幂等律,按照(AB)A=(AB)进行合并,得到的式子为合取范式)\begin{aligned} &\quad \ ((p\lor q)\to r)\to p \\ &= (\neg (p\lor q)\lor r)\to p && (消去上一个式子里面的→) \\ &=\neg (\neg (p\lor q)\lor r)\lor p && (消去上一个式子外面的→) \\ &= \neg ((\neg p\wedge \neg q)\lor r)\lor p &&( 上一个式子里面的¬内移 )\\ &= (\neg \neg p \lor \neg \neg q)\wedge \neg r)\lor p \qquad &&( 上一个式子外面的¬内移 )\\ & =((p \lor q)\wedge \neg r)\lor p &&( 消去上一个式子的双重否定¬¬ )\\ &=((p \lor q)\lor q)\wedge (\neg r \lor p) &&( 根据分配律,将上一个式子看作 (A∧B)∨C=(A∧C)∨(B∧C)进行拆分 )\\ & =(p \lor q)\wedge (\neg r \lor p) &&( 根据结合律和幂等律,按照(A∨B)∨A=(A∨B)进行合并,得到的式子为合取范式 )\\ \end{aligned}

因此合取范式为:(pq)(¬rp)(p \lor q)\wedge (\neg r \lor p)  ((pq)r)p=((pq)¬r)p(根据第六行的式子继续寻找析取范式)=(p¬r)(q¬r)p(根据分配率,按照(AB)C=(AC)(BC)进行拆分,得到的式子为析取范式)\begin{aligned} &\quad \ ((p\lor q)\to r)\to p \\ & =((p \lor q)\wedge \neg r)\lor p & &( 根据第六行的式子继续寻找析取范式 )\\ & =(p \wedge \neg r)\lor ( q \wedge\neg r)\vee p \qquad &&( 根据分配率,按照(A∧B)∨C=(A∧C)∨(B∧C)进行拆分,得到的式子为析取范式 )\\ \end{aligned} 因此析取范式为:(p¬r)(q¬r)p(p \wedge \neg r)\lor ( q \wedge\neg r)\vee p