[翻译转载]离散数学教程--命题逻辑,谓词逻辑和推理规则

Discrete Mathematics

命题逻辑

数理逻辑的规则指定了如何判断一个数学语句的正确性. 古希腊哲学家,亚里士多德是数理逻辑的先驱. 数理逻辑为数学和计算机科学的许多领域提供了理论的基础. 它在计算机科学领域中也有着许多实际的应用,如计算器,人工智能,编程语言中数据结构的定义等等.

命题逻辑关注与陈述中的真值,"true"和"false"(下文作真,假). 它的目的是分析这些独立的陈述或复合的语句.

定理

命题逻辑是一系列陈述语句,取值只能为真/假,叫做命题的真值. 它包含了命题变量和逻辑连词. 我们将命题变量记做大写字母(A,B, 等.), 连结词连接这些命题变量

下面是一些命题的例子:

  • "男人是人", 真值为真
  • "12+9 = 3-2", 真值为假

下面的例子不是一个命题:

  • "A 小于 2", 除非我们给出A的特定值,否则无法确定语句的真值

逻辑连词

命题逻辑中通常有5种连词

  • OR(\(\lor\)) 或
  • AND(\(\land\)) 与
  • NOT(\(\lnot\)) 否
  • if-then(\(\rightarrow\)) 蕴含/如果那么
  • if and only if(\(\Leftrightarrow\)) 等价/当且仅当

\(或(\lor)\) - 或运算作用在两个命题A,B上(写作 \(A\lor B\)) 当A,B中的至少一个为真时为真.

真值表如下-

A B \(A\lor B\)

\(与(\land)\) - 与运算作用在两个命题A,B上(写作 \(A\land B\)) 当A,B同为真时为真.

真值表如下-

A B \(A\land B\)

\(否(\lnot)\) - 否运算作用在命题A上(写作 \(\lnot A\)) 当A为真时为假,当A为假时为真.

真值表如下-

A \(\lnot A\)

\(蕴含(\rightarrow)\) - 命题"如果A, 那么B" 表示为蕴含式 \(A \rightarrow B\), 当A为真B为假时为假,其他情况都为真.

A B \(A\rightarrow B\)

\(等价(\Leftrightarrow)\) - \(A \Leftrightarrow B\), 是一个双向的逻辑连词, 当A,B取值相同时为真, 如A,B同时位假时为真

A B \(A\Leftrightarrow B\)

重言式/永真式

重言式是一种无论命题变量取值如何真值都为真的公式.

例: 证明 \([(A\leftarrow B)\land A] \leftarrow B\) 是重言式

真值表如下

A B \(A\leftarrow B\) \((A\leftarrow B)\land A\) \([(A\leftarrow B)\land A] \leftarrow B\)

因为\([(A\leftarrow B)\land A] \leftarrow B\) 的所有取值都为真,所以为重言式

矛盾式/永假式

矛盾式是一种无论命题变量取值如何真值都为假的公式.

例: 证明 \((A \lor B) \land [(\lnot A) \land (\lnot B)]\) 是矛盾式

真值表如下

A B \(A\lor B\) \(\lnot A\) \(\lnot B\) \((\lnot A) \land (\lnot B)\) \((A \lor B) \land [(\lnot A) \land (\lnot B)]\)

因为\((A \lor B) \land [(\lnot A) \land (\lnot B)]\) 的所有取值都为假,所以为矛盾式

偶然式(Contingency)

偶然式是一种在逻辑变量的所有取值中,一些真值为真一些真值为假的公式.

例: 证明 \((A \lor B) \land (\lnot A)\) 是矛盾式

真值表如下

A B \(A\lor B\) \(\lnot A\) \((A \lor B) \land (\lnot A)\)

因为\((A \lor B) \land (\lnot A)\) 的取值既包含真也包含假,所以为偶然式

逻辑等价

当下面两种情况成立时, 陈述X和Y被认为是等价的

  • 两个陈述的真值表有相同的真值
  • 双条件陈述 \(X \Leftrightarrow Y\) 是永真式

例: 证 \(\lnot(A \lor B) and [(\lnot A) \land (\lnot B)]\) 是等价的

用第一种方法测试(比较真值表)

A B \(A\lor B\) \(\lnot(A \lor B)\) \(\lnot A\) \(\lnot B\) \([(\lnot A) \land (\lnot B)]\)

\(\lnot(A \lor B) and [(\lnot A) \land (\lnot B)]\)的真值表相同,因此陈述是等价的

用第二种方法测试(双向条件)

A B \(\lnot (A \lor B)\) \([(\lnot A) \land (\lnot B)]\) \(\lnot(A \lor B) \Leftrightarrow [(\lnot A) \land (\lnot B)]\)

\(\lnot(A \lor B) \Leftrightarrow [(\lnot A) \land (\lnot B)]\)是永真式,因此陈述是等价的

否命题,逆命题和逆否命题

蕴含\(\rightarrow\) 也被叫做条件陈述, 它包含两个部分

  • 假设,p
  • 结论,q

就像之前说过的, 它被记做\(p \rightarrow q\)

条件陈述的例子 - "如果你做了作业,你就不会被惩罚",中"你做作业"是假设p,"你不会被惩罚"是结论q

否命题 - 条件陈述的否命题是将假设和结论中的陈述同时取反, 如果陈述是\(如果p, 那么q\), 否命题就是 "如果非p,那么非q". 因此\(p \rightarrow q\) 的否命题是 \(\lnot p \rightarrow \lnot q\)

例: "如果你做了作业,你就不会被惩罚"的否命题是"如果你不做作业,你就会被惩罚"

逆命题 - 条件陈述的逆命题是将原陈述的假设和结论交换, 如果陈述是\(如果p, 那么q\), 逆命题就是 "如果q,那么p". 因此\(p \rightarrow q\) 的逆命题是 \(q \rightarrow p\)

例: "如果你做了作业,你就不会被惩罚"的逆命题是"如果你没有被惩罚,你做了你的作业"

逆否命题 - 条件陈述的逆否命题是将原陈述的假设和结论取非后交换, 如果陈述是\(如果p, 那么q\), 逆命题就是 "如果非q,那么非p". 因此\(p \rightarrow q\) 的逆命题是 \(\lnot q \rightarrow \lnot p\)

例: "如果你做了作业,你就不会被惩罚"的逆否命题是"如果你被惩罚了,那么你没有做你的作业"

对偶原则

对偶原则是当陈述为真时,将其中的交集换成补集,补集换成交集,全集换成空集,空集换成全集,得到它的对偶陈述, 那么它的对偶陈述也为真. 如果一个陈述的对偶陈述为本身,那么他就是对称陈述.

例: \((A \cap B) \cup C\) 的对偶是 \((A \cup B) \cap C\)

逻辑范式

我们可将所有命题转换为两种标准形式

  • 合取范式
  • 析取范式

合取范式

如果复合陈述中所有的或操作(包括非运算)都由与来连接,则被称为合取范式. 在集合中,复合陈述中的并集要通过交集来连接.

例:

  • \((A \lor B) \land (A \lor C) \land (B \lor C \lor D)\)
  • \((P \cup Q) \cap (Q \cup R)\)

析取范式

如果复合陈述中所有的与操作(包括非运算)都由或来连接,则被称为析取范式. 在集合中,复合陈述中的交集要通过并集来连接.

例:

  • \((A \land B) \lor (A \land C) \lor (B \land C \land D)\)
  • \((P \cap Q) \cup (Q \cap R)\)

谓词逻辑

谓词逻辑处理谓词, 谓词是包含变量的命题.

定义

谓词是一个或多个定义在特定域中的变量表达式. 一个带有变量的命题可以通过为变量赋值或量化变量来变成命题.

下面是一些谓词的例子

  • 设E(x,y), 表示"x=y"
  • 设X(a,b,c), 表示"a+b+c=0"
  • 设M(x,y), 表示"x嫁给了y"

合式公式

命题下面的条件就被叫做合式公式(wwf)

  • 所有的命题变量和命题常量都是合式公式
  • 如果x是一个变量Y是一个合式公式, \(\forall x Y\)\(\exists x Y\) 也是合式公式
  • 真和假是合式公式
  • 所有原子公式是合式公式
  • 由连接词连接的合式公式也是合式公式

量词

谓词中的变量由量词来量化, 谓词逻辑中的量词有两种-全称量词和存在量词

全称量词

全称量词描述了在特定域中不论特定变量取何值陈述都为真, 符号表示为\(\forall\)

\(\forall x P(x)\) 读作对于x的任意取值,P(x)都为真

例: "男人是人"可以被写成谓词形式 \(\forall x P(x)\), 其中P(x)是谓词表示x是人, 并且论述的全集是男人集合.

存在量词

存在量词描述了在特定域中特定变量有取值使得陈述都真, 符号表示为\(\exists\)

\(\exists x P(x)\) 读作对于x的某些取值,P(x)都为真

例: "有些人不诚实" 可以被写成谓词形式 \(\exists x P(x)\), 其中P(x)是谓词表示x不诚实, 并且论述的全集是某些人的集合.

嵌套量词

如果在一个量词的域内使用了另一个量词, 则叫做嵌套量词

例:

  • \(\forall a \exists b P(x,y) \quad 其中 P(a,b) 表示 \quad a+b=0\)
  • \(\forall a \forall b \forall c P(a,b,c) \quad 其中 P(a,b,c) 表示 \quad a+(b+c)=(a+b)+c\)

注意: \(\forall a \exists b P(x,y) \ne \exists a \forall b P(x,y)\)

推理规则

为了从已知真值的陈述推论出新的陈述的真值需要使用推理规则

推理逻辑做什么?

数理逻辑通常用来做逻辑证明, 证明是决定数学陈述的真值的有效推论

推论是一系列的陈述, 最后一个陈述是前面所有陈述语句的结论,前面的陈述叫做前提或假设. 将符号\(\therefore\)(因此)放在结论前. 一个有效的推论是从前面所有前提的真值中正确推理出的. 推理规则提供了从已知陈述构建出有效推论的模板和大纲

推理规则表

推理规则 名字 推理规则 名字
\(\begin{matrix} P \\ \hline \therefore P \lor Q \end{matrix}\) 析取引入 \(\begin{matrix} P \lor Q \\ \lnot P \\ \hline \therefore Q \end{matrix}\) 析取消去/析取三段论
\(\begin{matrix} P \\ Q \\ \hline \therefore P \land Q\end{matrix}\) 合取引入 \(\begin{matrix} P \rightarrow Q \\ Q\rightarrow R \\ \hline \therefore P \rightarrow R\end{matrix}\) 假言三段论
\(\begin{matrix} P \land Q \\ \hline \therefore P \end{matrix}\) 合取简化 \(\begin{matrix} (P \rightarrow Q) \land (R \rightarrow S) \\ P \lor R \\ \hline \therefore Q \lor S \end{matrix}\) 二难论证复杂构成式/构造性二难
\(\begin{matrix} P \rightarrow Q \\ P \\ \hline \therefore Q \end{matrix}\) 分离论证 \(\begin{matrix} (P \rightarrow Q) \land (R \rightarrow S) \\ \lnot Q \lor \lnot S \\ \hline \therefore \lnot P \lor \lnot R \end{matrix}\) 二难论证复杂破坏式/破坏性二难
\(\begin{matrix} P \rightarrow Q \\ \lnot Q \\ \hline \therefore \lnot P \end{matrix}\) 逆分离论证

析取引入

将P作为前提,我们可以析取引入\(P \lor Q\)

\[\begin{matrix} P \\ \hline \therefore P \lor Q \end{matrix} \]

例: 设命题P"他学习很努力"为真.
因此 - "要么他学习很努力要么他是一个坏学生". 其中Q是命题"他是一个坏学生"

合取引入

如果P和Q作为前提, 我们可以合取引入 \(P \land Q\)

\[\begin{matrix} P \\ Q \\ \hline \therefore P \land Q\end{matrix} \]

例: 设P-"他学习很努力", Q-"他是班级里最好的人"
因此 - "他学习很努力,也是班级中最好的人"

合取简化

\(P \land Q 作为前提\), 可以合取简化出P

\[\begin{matrix} P \land Q \\ \hline \therefore P \end{matrix} \]

例: "他学习很努力,也是班级中最好的人", \(P \land Q\)
因此 - "他学习很努力"

分离论证

如有P和\(P \rightarrow Q\) 两个前提, 我们可以分离论证出Q

\[\begin{matrix} P \rightarrow Q \\ P \\ \hline \therefore Q \end{matrix} \]

例: "如果你有密码,你就可以登录qq", \(P\rightarrow Q\)
"你有密码", P
因此 - "你可以登录qq"

逆分离论证

如有\(P\rightarrow Q 和 \lnot Q\) 两个前提, 我们可以逆分离论证出 \(\lnot P\)

\[\begin{matrix} P \rightarrow Q \\ \lnot Q \\ \hline \therefore \lnot P \end{matrix} \]

例: "如果你有密码,你就可以登录qq",\(P \rightarrow Q\)
"你没法登录进QQ", \(\lnot Q\)
因此 - "你没有密码"

析取消去/析取三段论

如有\(\lnot P 和 P \lor Q\) 两个前提, 我们可以析取消去出 \(Q\)

\[\begin{matrix} P \lor Q \\ \lnot P \\ \hline \therefore Q \end{matrix} \]

例: "冰淇淋不是草莓味的", \(\lnot P\)
"冰淇淋要么是草莓味要么是巧克力味" \(P \lor Q\)
因此 - "冰淇淋是巧克力味的"

假言三段论

如有\(P \rightarrow Q 和 Q \rightarrow R\) 两个前提, 根据假言三段论可得 \(P \rightarrow R\)

\[\begin{matrix} P \rightarrow Q \\ Q\rightarrow R \\ \hline \therefore P \rightarrow R\end{matrix} \]

例: "如果下雨我就不去学校了", \(P \rightarrow Q\)
"如果我不去学校我就不用做作业" \(Q \rightarrow R\)
因此 - "如果下雨我就不用做作业了"

构造性二难

如有\((P \rightarrow Q) \land (R \rightarrow S) 和 P \lor R\) 两个前提, 根据构造性二难可得 \(Q \lor S\)

\[\begin{matrix} (P \rightarrow Q) \land (R \rightarrow S) \\ P \lor R \\ \hline \therefore Q \lor S \end{matrix} \]

例: "如果下雨我就休息一下", \(P \rightarrow Q\)
"如果外面很热我就洗个澡" \(R \rightarrow S\)
"外面要么下雨要么很热" \(P \lor R\)
因此 - "我要么休息一下要么洗个澡"

破坏性二难

如有\((P \rightarrow Q) \land (R \rightarrow S) 和 \lnot Q \lor \lnot S\) 两个前提, 根据构造性二难可得 \(\lnot P \lor \lnot R\)

\[\begin{matrix} (P \rightarrow Q) \land (R \rightarrow S) \\ \lnot Q \lor \lnot S \\ \hline \therefore \lnot P \lor \lnot R \end{matrix} \]

例: "如果下雨我就休息一下", \(P \rightarrow Q\)
"如果外面很热我就洗个澡" \(R \rightarrow S\)
"要么我不会休息,要么我不去洗澡" \(\lnot Q \lor \lnot S\)
因此 - "外面要么没有下雨,要么不是很热"

原博文地址
https://www.tutorialspoint.com/discrete_mathematics/index.htm

posted @ 2020-07-14 23:26  新新人類  阅读(1494)  评论(0编辑  收藏  举报