离散数学[2]-数理逻辑基本概念
一、什么是数理逻辑
- 逻辑学是探索、阐述和确立有效推理原则的学科,最早由古希腊学者亚里士多德创立。
- 亚里士多德在逻辑学上最重要的工作是提出 三段论学说。
- 只要符合三段论的推理就是正确的。
- 一个三段论就是一个包括有大前提、小前提和结论三个部分的论证。
三段论有许多不同种类,其中最著名的例子:
- 凡是人都会死(大前提)
- 苏格拉底是人(小前提)
- 所以:苏格拉底会死(结论)
逻辑学还是以自然语言来表述,可能会因为自然语言的模糊性损害其准确和权威。 用数学的方法研究关于推理、证明等问题的学科就叫做数理逻辑(也叫做符号逻辑)。
数理逻辑的萌芽
- 利用计算的方法来代替人们思维中的逻辑推理过程,这种想法早在十七世纪就有人提出过。
- 莱布尼茨(Leibniz)就曾经设想能不能创造一种“通用的科学语言”,可以把推理过程象数学一样利用公式来进行计算,从而得出正确的结论。
- 由于当时的社会条件,他的想法并没有实现。但是他的思想却是现代数理逻辑部分内容的 萌芽,从这个意义上讲,莱布尼茨的思想可以说是数理逻辑的先驱。
数理逻辑的开创
1847年,英国数学家布尔G.Boole发表了《逻辑的数学分析》,建立了“布尔代数”。布尔创造了一套符号系统,利用符号来表示逻辑中的各种概念。还建立了一系列的运算法则,利用代数的方 法研究逻辑问题,初步奠定了数理逻辑的基 础
数理逻辑的大发展
1884年,德国数学家弗雷格Frege出版了《数论的基础》一书,在书中引入量词的符 号,使得数理逻辑的符号系统更加完备。 美国人皮尔斯Peirce,他也在著作中引入了更多逻辑符号。从而使现代数理逻辑最基本的理论基础逐步 形成,成为一门独立的学科。
数理逻辑的四大分支
- 数学史上的第三次大危机是由于发现了集合论的逻辑悖论引起的。
- 悖论的提出,促使许多数学家去研究集合论的无矛盾性问题,从而产生了数理逻辑的一个重要分支—公理集合论。
- 为了研究数学系统的无矛盾性问题,需要以数学理论体系的概念、命题、证明 等作为研究对象,研究数学系统的逻辑结构和证明的规律,这样又产生了另一 个分支—证明论。
- 递归论主要研究可计算性的理论,它和计算机的发展和应用有密切的关系。
- 模型论主要是研究形式系统和数学模型之间的关系。
我们课程中介绍的是数理逻辑各个分支的共同基础部分:命题演算与谓词演算
二、命题(proposition)
- 命题是数理逻辑中最基本的概念
- 对确定的对象作出判断的陈述句称作命题
- 如果判断正确,称命题真(true),否则称命题假(false)
- “真、假”是命题的属性,称为“真值”
什么样的语句是命题?
- 雪是白的。
- 2+2=5。
- 您贵姓? (No)
- x+y<10。 (No,x和y不是确定的对象)
三个识别要点:
- 陈述句
- 判断
- 确定的对象
识别命题
再来看看几个语句
-
袁世凯称帝那天北京下雨。
-
大于2的偶数均可分解为两个素数之和。
-
请把脚挪一下! (No,祈使句,不是陈述句)
-
谁拿走了桌上的杯子? (No,不是陈述句)
-
2是偶数而且3也是偶数。
-
真值是命题的固有属性
-
不过,是否知道真值,能否知道真值是另一回事。
-
悖论(自相矛盾)不能作为命题。如“这句 话是错的”
-
命题非真即假,不能兼有之,也不能不真不假
-
非真即假,是一个基本假设?
三、排中律(Law of Excluded Middle)
- 排中律是传统逻辑的基本规律之一
- “是非之间,必居其一”。
- 墨子也说过:“辩也者,或谓之是,或谓之 非,当者胜也“——《经说下》。
- 任一事物在同一时间里具有某属性或者不具 有某种属性,而无其它可能。
反证法与排中律
- 传统数学证明中经常采用的“反证法”即利用了排中律:
- 要证明一个命题为真,并不直接证明;
- 而是假设命题不为真,推出矛盾;
- 根据排中律,此命题非假,即真;
- 从而间接证明命题为真。
反证法的著名范例
- 欧几里德:素数有无穷多个 假设命题不真,那么素数就是有限个,把它们按照大小顺序排列起来,记为a1<a2<a3..<an 接下来,我们构造一个新的数 N=a1a2a3*…*an+1。 所有的这些素数ai(i=1,2…n)都不是N的因子 这样,就有两种可能:
1,N有另外的素数真因子
2,N本身就是一个素数 显然,N比所有的ai都要大,无论哪种情况,我们都 发现了ai之外的素数。 这跟假设矛盾,根据排中律,命题就是真的!
直觉主义对排中律的质疑
-
但直觉主义认为,数学的基础和出发点是人类直觉所构造;
-
数学理论可靠性依赖于心智上的可构造性;
-
对命题真假的确定必须给出构造性证明;
-
而反证法虽然对命题的反面推出矛盾;
-
但不意味着命题本身具有构造性证明。
-
直觉主义否定排中律的普遍有效性;
-
从有穷事物中概括出来的排中律,不能贸然推广到对无穷事物适用;
-
涉及到有穷事物全体的命题,可以通过逐个检验来验证其真假;
-
但一旦涉及到无穷事物,一般是无法来做此种检验的。
四、命题符号化
原子命题和复合命题
我们回来再看看刚才的一个命题:
- 2是偶数而且3也是偶数。
- 这是由两个小命题和一个“而且”连接而成
- 联结词“而且”将两个命题组合成新命题, 并产生了新的真值。
这样,我们有了三个新概念:
- 逻辑联结词(logical connectives):连接命题,对真值进行运算的词;
- 原子命题(atom proposition):不含有逻辑联结词的命题;
- 复合命题(compound proposition):包含了原子命题和逻辑联结词的命题。
复合命题
逻辑联结词有哪些呢? 我们来看看更多的复合命题:
- 雪不是白的
- 今晚我去看书或者看电影
- 你去了教室,我去了食堂(省略了“且”) 〉
- 如果天气好,那么我去车站接你
- 偶数a是素数,当且仅当a=2
接下来,我们要回到数理逻辑创立的初衷: 对逻辑和思维过程进行形式化,使之象算术那样简单明了,确切无误。
如何把命题变成“算式”?
- 形式化的第一步:抽象(abstraction): 仅关注命题的本质属性:真值,而抛弃其丰富的内涵; 仅关注逻辑联结词的本质属性:对真值的运算,而抛弃多变的语言表达方式。
- 然后是将这两者都变成符号,以规则相连接 真命题用t表示,假命题用f表示 原子命题一般用p, q, r, s或pi, qi, ri, si表示 逻辑联结词用特殊符号来表示: 并非(not):¬ 并且(and):∧;或(or):∨ 如果……那么……(if … then …):→ 当且仅当(if and only if):↔
符号的定义
-
命题的真值
-
为真(true)用1表示,为假(false)用0表示
-
真命题的真值为1,假命题真值为0
-
逻辑联结词用真值表来定义
-
真值表列出了原子命题的真值组合(0、1) 〉 以及经过联结词作用后的真值
-
符号体系对于数学乃至科学体系的发展至关 重要
-
简洁清晰的符号能使人的抽象思维效率飞跃。
-
想象一下全中文、竖排的微分方程?
-
形式主义者甚至认为,数学就是符号变换的游戏。
五、联结词
1. 否定词(negation) “并非”(not):¬
¬p的逻辑关系为p不成立 如果p表示命题“雪是白的”,那么“雪不 是白的”应该表示为¬p
注意在包含多个对象判断的命题否定时,其 意义的变化:
- “天鹅都是白的”,其否定并不是“天鹅都 不是白的”
- 而是“天鹅不都是白的”或“并非所有天鹅 都是白的”
2. 合取词(conjunction) “并且”(and): ∧
p∧q的逻辑关系为:p和q同时成立
- 自然语言中许多表示并列的连接词都 可以符号化为“∧”:
- “既…又…”,“不但…而且…”, “虽然…但是…”
- p:张三聪明;q:张三用功 张三既聪明又用功:p∧q 张三不仅聪明,而且用功: p∧q
张三虽然不太聪明,但他很用功:¬p∧q 张三不是不聪明,而是不用功: p∧¬q
我们看到形式化确实通过抽象,抛弃了原语句的很多内容:
- 抛弃了倾向、语气、价值判断等,
- 只留下命题的本质属性:真值
3.析取词(disjunction)”或”(or):∨
p∨q的逻辑关系为p和q中至少一个成立
自然语言中的“或”可以符号化为∨,但有时要注意原命题中的“或”可能表示排斥性 选择:
- 李四学过德语或法语(相容或):p∨q p:李四学过德语,q:李四学过法语
- 张三生于1972年或1973年(排斥或): p∨q p:张三生于1972年,q:张三生于1973年
- 人固有一死,或重于泰山,或轻于鸿毛(排斥或) (p∧¬q)∨(¬p∧q):异或p:人死重于泰山,q:人死轻于鸿毛
4.蕴涵词(implication)”如果…那么…”(if…then…): →
p→q的逻辑关系是,p是q的充分条件,或者说q是p的必要条件
p→q中的p称作蕴涵前件,q称作蕴涵后件
-
自然语言中的许多条件连接词都可以符号化 为→,但是要注意条件的顺序 “只要…就…”,“如果…那么…”,“只有…才…”
-
自然语言中,条件语句一般都具有内在的联系,而数理逻辑中的蕴涵则仅是命题的一种 连接,不一定具有什么内在联系
-
在蕴涵式中,只有p为真q为假时,p→q才 为假和(¬p∨q)真值表相同
-
如果天气好,那么我去接你:p→q p: 天气好,q: 我去接你 只有p真q假算是食言
-
只要2是偶数,雪就是黑的:p→q p: 2是偶数,q: 雪是黑的 p为真,q为假,本命题为假
-
只有天黑了,夜猫子才出来活动:p→q 注意:p: 夜猫子出来活动,q: 天黑了
5.双向蕴含词(two-way implication)”当且仅当”(if and only if):↔
p↔q的逻辑关系是p与q互为充分必要条件,在p,q真值相同的情况下, p ↔q为真
- 圆1和圆2面积相等当且仅当它们的半径相等: p↔q p: 圆1和圆2面积相等,q: 圆1和圆2半径相等 不管p和q的真值如何, p↔q为真
- 2+3=5当且仅当5是有理数:p↔q p:2+3=5,q:5是有理数
- 除非网断了,否则他一定QQ在线:p↔¬q p:网断了,q:他QQ在线
两个组合的例子 如果3是合数,则4是素数,并且如果 4是素数,则它不能被2整除:
〉 p:3是合数
〉 q:4是素数
〉 r:4能被2整除
〉 (p→q)∧(q→¬r)
如果2+3>5当且仅当5是合数,则2 和3都是有理数
〉 p:2+3>5
〉 q:5是合数
〉 r:2是有理数
〉 s:3是有理数
〉 (p↔q)→(r∧s)
符号组合的规则
〉 把符号组合起来,看起来开始象一个算式了
〉 算式的组合不是随意的;
〉 那么逻辑符号组合的规则是什么?
〉 逻辑符号组合成的算式具有什么意义?
六、命题公式
命题公式(proposition formula)的组成成分
- 命题常元(propositionconstants) 表示具体命题及表示常命题的p, q, r, s 等和t,f
- 命题变元(propositionvariables) 以“真,假”或者“1,0”为取值范围的 变量,仍用p, q, r, s等表示
- 命题公式(propositionformula) 由命题常元、变元和联结词组成的形式更为 复杂的命题
命题公式( proposition formula )定义
- 命题常元和命题变元是命题公式,特别的称作原子公式或原子
- 如果A,B是命题公式,那么(¬A), (A∧B), (A∨B), (A→B), (A↔B)也是命题公式
- 只有有限步引用上述两条所组成的符号串是命题公式
命题公式简称做公式,采用大写A,B,C等表示
注意大小写符号的差别(A、B、C和p、q、r、s、t、f) 命题公式的这种定义方法称作归纳定义,在集合论中将会详细讨论归纳定义
命题公式的例子
根据定义:
(¬(p→(q∧r))) 是命题公式
以下式子都不是命题公式:
(qp) (p1∧(p2∧… p→r∧s
严格按照定义的命题公式太繁琐,简化约定
- 公式最外层的括号一律可以省略
- 约定逻辑联结词的优先级,进一步减少括号
逻辑联结词优先级
- 联结词{¬,∧,∨,→,↔}中, ¬是一元联结词,其它都是连接两个命题的二元联结词
- 我们定义优先级为:¬, [∧∨], →, ↔
- 除非有括号,否则按照优先级从高到低,从左到右的次序结合
¬p∨q 等同于 ((¬p)∨q)
p→q∧r→s 并不是 ((p→q)∧(r→s)),其实是 ((p→(q∧r))→s)
命题公式的意义
- 命题公式是一个按照归纳定义构成的字符串
- 其形式上具有既定的规则
- 那么其内容上具有什么意义呢?
七、真值函数
命题公式与真值函数(truth function)
- 如果将联结词看作逻辑运算符,那么包含命题变元p1, p2, …pn的公式A 可以看作是关于p1, p2, …pn的一个真值函数
- 每个变元的取值范围是{0,1}
- 真值函数值的取值范围也是{0,1}
赋值
对任意给定的p1, p2, …pn的一种取值状况组合,称为指派或者赋值 (assignments)
- 赋值用希腊字母α,β等表示
- 对于每个赋值,公式A均有一个确定的真值
- 这样,命题公式在形式上是一个规则 的字符串,内容上则对应一个真值函 数
真值表
(真值表略)
- 对于所有可能的赋值,公式A的真值可以用真值表来确定
- 当A(p1, p2, …pn)中包含有k个联结词时,公式A的真值表应为2n行、 k+n列
- 前n列是所有变元的取值组合
- 最后1列是公式A的真值
成真赋值和成假赋值
- 当公式A对赋值α为真时 称α是A的成真赋值,或者α弄真A 〉 记做α(A)=1
- 反之 称α是A的成假赋值,或者α弄假A 〉 记做α(A)=0
八、命题形式化
自然语言句子的形式化
由自然语言表述的命题,经过抽象,可以形式化为命题公式
-
首先确定原子命题
-
其次确定联结词
-
最后处理命题之间的联结关系及顺序
-
我和他既是兄弟又是同学(p:我和他是兄弟,q:我和他是同学) 形式化命题:p∧q
-
狗急跳墙(p:狗急了,q:狗跳墙) 形式化命题:p→q
-
如果他不来那么是生病了或者不在本地(p:他来,q:他生病,r:他在本地) 形式化命题:¬p→(q∨¬r) *无论是否下雨,我都去上学(p:天下雨,q:我去上学) 〉 形式化命题:(p→q)∧(¬p→q) 或者:(p∧q)∨(¬p∧q) 或者:q
自然语言句子的形式化:注意事项
- 要善于确定原子命题,如兄弟这个概念就无需进一步拆分;
- 要善于识别自然语言中的联结词;
- 对于涉及多个对象进行否定的否定词位置要准确;
- 不能省略必要的括号,另外,为了提高公式 的可读性,要保留一些括号;
- 有时候语句的形式化结果不是唯一的,可能具有不同形式,但是逻辑上是等价的。
参考资料
陈斌 北京大学地球与空间科学学院 gischen@pku.edu.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn