Discrete Mathematics
命题逻辑
数理逻辑的规则指定了如何判断一个数学语句的正确性. 古希腊哲学家,亚里士多德是数理逻辑的先驱. 数理逻辑为数学和计算机科学的许多领域提供了理论的基础. 它在计算机科学领域中也有着许多实际的应用,如计算器,人工智能,编程语言中数据结构的定义等等.
命题逻辑关注与陈述中的真值,"true"和"false"(下文作真,假). 它的目的是分析这些独立的陈述或复合的语句.
定理
命题逻辑是一系列陈述语句,取值只能为真/假,叫做命题的真值. 它包含了命题变量和逻辑连词. 我们将命题变量记做大写字母(A,B, 等.), 连结词连接这些命题变量
下面是一些命题的例子:
- "男人是人", 真值为真
- "12+9 = 3-2", 真值为假
下面的例子不是一个命题:
- "A 小于 2", 除非我们给出A的特定值,否则无法确定语句的真值
逻辑连词
命题逻辑中通常有5种连词
- OR((lor)) 或
- AND((land)) 与
- NOT((lnot)) 否
- if-then(( ightarrow)) 蕴含/如果那么
- if and only if((Leftrightarrow)) 等价/当且仅当
(或(lor)) - 或运算作用在两个命题A,B上(写作 (Alor B)) 当A,B中的至少一个为真时为真.
真值表如下-
A | B | (Alor B) |
---|---|---|
真 | 真 | 真 |
假 | 真 | 真 |
真 | 假 | 真 |
假 | 假 | 假 |
(与(land)) - 与运算作用在两个命题A,B上(写作 (Aland B)) 当A,B同为真时为真.
真值表如下-
A | B | (Aland B) |
---|---|---|
真 | 真 | 真 |
假 | 真 | 假 |
真 | 假 | 假 |
假 | 假 | 假 |
(否(lnot)) - 否运算作用在命题A上(写作 (lnot A)) 当A为真时为假,当A为假时为真.
真值表如下-
A | (lnot A) |
---|---|
真 | 假 |
假 | 真 |
(蕴含( ightarrow)) - 命题"如果A, 那么B" 表示为蕴含式 (A ightarrow B), 当A为真B为假时为假,其他情况都为真.
A | B | (A ightarrow B) |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 真 |
假 | 假 | 真 |
(等价(Leftrightarrow)) - (A Leftrightarrow B), 是一个双向的逻辑连词, 当A,B取值相同时为真, 如A,B同时位假时为真
A | B | (ALeftrightarrow B) |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 真 |
重言式/永真式
重言式是一种无论命题变量取值如何真值都为真的公式.
例: 证明 ([(Aleftarrow B)land A] leftarrow B) 是重言式
真值表如下
A | B | (Aleftarrow B) | ((Aleftarrow B)land A) | ([(Aleftarrow B)land A] leftarrow B) |
---|---|---|---|---|
真 | 真 | 真 | 真 | 真 |
真 | 假 | 假 | 假 | 真 |
假 | 真 | 真 | 假 | 真 |
假 | 假 | 真 | 假 | 真 |
因为([(Aleftarrow B)land A] leftarrow B) 的所有取值都为真,所以为重言式
矛盾式/永假式
矛盾式是一种无论命题变量取值如何真值都为假的公式.
例: 证明 ((A lor B) land [(lnot A) land (lnot B)]) 是矛盾式
真值表如下
A | B | (Alor 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 | (Alor 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 | (Alor 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)])是永真式,因此陈述是等价的
否命题,逆命题和逆否命题
蕴含( ightarrow) 也被叫做条件陈述, 它包含两个部分
- 假设,p
- 结论,q
就像之前说过的, 它被记做(p ightarrow q)
条件陈述的例子 - "如果你做了作业,你就不会被惩罚",中"你做作业"是假设p,"你不会被惩罚"是结论q
否命题 - 条件陈述的否命题是将假设和结论中的陈述同时取反, 如果陈述是(如果p, 那么q), 否命题就是 "如果非p,那么非q". 因此(p ightarrow q) 的否命题是 (lnot p ightarrow lnot q)
例: "如果你做了作业,你就不会被惩罚"的否命题是"如果你不做作业,你就会被惩罚"
逆命题 - 条件陈述的逆命题是将原陈述的假设和结论交换, 如果陈述是(如果p, 那么q), 逆命题就是 "如果q,那么p". 因此(p ightarrow q) 的逆命题是 (q ightarrow p)
例: "如果你做了作业,你就不会被惩罚"的逆命题是"如果你没有被惩罚,你做了你的作业"
逆否命题 - 条件陈述的逆否命题是将原陈述的假设和结论取非后交换, 如果陈述是(如果p, 那么q), 逆命题就是 "如果非q,那么非p". 因此(p ightarrow q) 的逆命题是 (lnot q ightarrow 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) e exists a forall b P(x,y))
推理规则
为了从已知真值的陈述推论出新的陈述的真值需要使用推理规则
推理逻辑做什么?
数理逻辑通常用来做逻辑证明, 证明是决定数学陈述的真值的有效推论
推论是一系列的陈述, 最后一个陈述是前面所有陈述语句的结论,前面的陈述叫做前提或假设. 将符号( herefore)(因此)放在结论前. 一个有效的推论是从前面所有前提的真值中正确推理出的. 推理规则提供了从已知陈述构建出有效推论的模板和大纲
推理规则表
推理规则 | 名字 | 推理规则 | 名字 |
---|---|---|---|
(egin{matrix} P \ hline herefore P lor Q end{matrix}) | 析取引入 | (egin{matrix} P lor Q \ lnot P \ hline herefore Q end{matrix}) | 析取消去/析取三段论 |
(egin{matrix} P \ Q \ hline herefore P land Qend{matrix}) | 合取引入 | (egin{matrix} P ightarrow Q \ Q ightarrow R \ hline herefore P ightarrow Rend{matrix}) | 假言三段论 |
(egin{matrix} P land Q \ hline herefore P end{matrix}) | 合取简化 | (egin{matrix} (P ightarrow Q) land (R ightarrow S) \ P lor R \ hline herefore Q lor S end{matrix}) | 二难论证复杂构成式/构造性二难 |
(egin{matrix} P ightarrow Q \ P \ hline herefore Q end{matrix}) | 分离论证 | (egin{matrix} (P ightarrow Q) land (R ightarrow S) \ lnot Q lor lnot S \ hline herefore lnot P lor lnot R end{matrix}) | 二难论证复杂破坏式/破坏性二难 |
(egin{matrix} P ightarrow Q \ lnot Q \ hline herefore lnot P end{matrix}) | 逆分离论证 |
析取引入
将P作为前提,我们可以析取引入(P lor Q)
例: 设命题P"他学习很努力"为真.
因此 - "要么他学习很努力要么他是一个坏学生". 其中Q是命题"他是一个坏学生"
合取引入
如果P和Q作为前提, 我们可以合取引入 (P land Q)
例: 设P-"他学习很努力", Q-"他是班级里最好的人"
因此 - "他学习很努力,也是班级中最好的人"
合取简化
让(P land Q 作为前提), 可以合取简化出P
例: "他学习很努力,也是班级中最好的人", (P land Q)
因此 - "他学习很努力"
分离论证
如有P和(P ightarrow Q) 两个前提, 我们可以分离论证出Q
例: "如果你有密码,你就可以登录qq", (P
ightarrow Q)
"你有密码", P
因此 - "你可以登录qq"
逆分离论证
如有(P ightarrow Q 和 lnot Q) 两个前提, 我们可以逆分离论证出 (lnot P)
例: "如果你有密码,你就可以登录qq",(P
ightarrow Q)
"你没法登录进QQ", (lnot Q)
因此 - "你没有密码"
析取消去/析取三段论
如有(lnot P 和 P lor Q) 两个前提, 我们可以析取消去出 (Q)
例: "冰淇淋不是草莓味的", (lnot P)
"冰淇淋要么是草莓味要么是巧克力味" (P lor Q)
因此 - "冰淇淋是巧克力味的"
假言三段论
如有(P ightarrow Q 和 Q ightarrow R) 两个前提, 根据假言三段论可得 (P ightarrow R)
例: "如果下雨我就不去学校了", (P
ightarrow Q)
"如果我不去学校我就不用做作业" (Q
ightarrow R)
因此 - "如果下雨我就不用做作业了"
构造性二难
如有((P ightarrow Q) land (R ightarrow S) 和 P lor R) 两个前提, 根据构造性二难可得 (Q lor S)
例: "如果下雨我就休息一下", (P
ightarrow Q)
"如果外面很热我就洗个澡" (R
ightarrow S)
"外面要么下雨要么很热" (P lor R)
因此 - "我要么休息一下要么洗个澡"
破坏性二难
如有((P ightarrow Q) land (R ightarrow S) 和 lnot Q lor lnot S) 两个前提, 根据构造性二难可得 (lnot P lor lnot R)
例: "如果下雨我就休息一下", (P
ightarrow Q)
"如果外面很热我就洗个澡" (R
ightarrow S)
"要么我不会休息,要么我不去洗澡" (lnot Q lor lnot S)
因此 - "外面要么没有下雨,要么不是很热"
原博文地址
https://www.tutorialspoint.com/discrete_mathematics/index.htm