逻辑学:逻辑学是探索、阐述和确立有效推理原则的学科,最早由古希腊学者亚里士多德创立。
亚里士多德在逻辑学中最重要的工作是提出三段论学说。他声称只要符合三段论的推理就是正确的。一个三段论就是一个包括由大前提、小前提和结论三个部分的论证。比如以下这个最著名例子:
- 凡是人都会死(大前提)
- 苏格拉底是人(小前提)
- 苏格拉底会死(结论)
逻辑学还是以自然语言来表述的,可能会因为自然语言的模糊性损害其准确和权威。
数理逻辑:用数学的方法研究关于推理、证明等问题的学科就叫做数理逻辑(也叫做符号逻辑)。
数理逻辑的四大分支:
课程会介绍到的各个分支的共同基础部分:
命题(proposition):对确定的对象做出判断的陈述句称作命题,命题是数理逻辑中最基本的概念。如果判断正确,称命题真(true),否则称命题假(false),“真、假”是命题是属性,称为真值。
命题的几个要点:
排中律(Law of Excluded Middle):任一事物在同一时间里具有某属性或者不具有某属性,而无其他可能。排中律是传统逻辑的基本规律之一。
传统数学证明中经常采用的”反证法“即利用了排中律:
引入3个新概念:
逻辑联结词(logical connectives):连接命题,对真值进行运算的词
原子命题(atom proposition):不含有逻辑联结词的命题
复合命题(compoud proposition):包含了原子命题和逻辑联结词的命题
举几个复合命题的例子:
- 雪不是白的。 (可以视为对“雪是白的”的否定)
- 今晚我去看书或者看电影。 (“或者”)
- 你去了教室,我去了食堂。 (省略了“且”)
- 如果天气好, 那么我去车站接你。 (“如果”+“那么”)
- 偶数a是素数,当且仅当a=2。(“当且仅当”)
如何把命题变成“算式”?(形式化)
使用**抽象(abstraction)**的方法:仅关注命题的本质属性(真值),而抛弃其丰富的内涵;仅关注逻辑联结词的本质属性(运算),而抛弃多变的语言表达方式。将其变为符号,以规则相连:
¬ p p p为真的的条件是p为假。
真值表为:
p p p | ¬ p p p |
---|---|
0 | 1 |
1 | 0 |
注意在包含多个对象的命题的否定时,其意义的变化,比如:
“天鹅都是白的”
其否定并不是”天鹅都不是白的“
而是”天鹅不都是白的“
p ⋀ q p\bigwedge q p⋀q为真的条件是 p p p和 q q q同时成立。
真值表为:
p p p | q q q | p ⋀ q p\bigwedge q p⋀q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
自然语言中许多表示并列的连接词都可以符号化为” ⋀ \bigwedge ⋀“:
p ⋁ q p\bigvee q p⋁q为真的条件是 p p p和 q q q中至少一个成立。
真值表为:
p p p | q q q | p ⋁ q p\bigvee q p⋁q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
自然语言中的“或”可以符号化为 ⋁ \bigvee ⋁,但是要注意原命题中的“或”可能表示排斥性选择:
李四学过德语或法语(相容或)(可以同时发生)
张三生于1972年或1973年(排斥或)(不能同时发生)
人固有一死,或重于泰山,或轻于鸿毛(排斥或)(不能同时发生)
排斥或可以用异或表示,表达式为: ( p ⋀ ¬ q ) ⋁ ( ¬ p ⋀ q ) (p\bigwedge ¬q)\bigvee (¬p\bigwedge q) (p⋀¬q)⋁(¬p⋀q)
p → q p \rightarrow q p→q的逻辑关系是, p p p是 q q q的充分条件,或者说 q q q是 p p p的必要条件。
真值表为:
p p p | q q q | p → q p \rightarrow q p→q |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
几点说明:
p → q p \rightarrow q p→q中的 p p p称为蕴涵前件, q q q称为蕴涵后件。
自然语言中的许多条件连接词都可以符号化为 → \rightarrow →,但是要注意条件的顺序:
数理逻辑中的蕴涵只是命题中的一种连接,两个命题之间不一定具有什么内在联系。
蕴涵式的真值表和 ( ¬ p ⋁ q ) (¬p \bigvee q) (¬p⋁q)的真值表相同。
p ↔ q p \leftrightarrow q p↔q的逻辑关系是 p p p和 q q q互为充分必要条件。
真值表为:
p p p | q q q | p ↔ q p \leftrightarrow q p↔q |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
双向蕴涵词的连接词(设 p p p和 q q q为l连接前后词语的命题):
当然,复合命题可以由多个逻辑联结词连接起来:
“如果3是合数,则4是素数,并且如果4是素数,则它不能被2整除”
p p p:3是合数
q q q:4是素数
r r r:4能被2整除
则命题表达式为: ( p → q ) ⋀ ( q → r ) (p \rightarrow q) \bigwedge (q \rightarrow r) (p→q)⋀(q→r)
命题公式(proposition formula) 由命题常元、命题变元、逻辑联结词组成:
命题常元(proposition constants):表示具体命题及表示常命题的 p p p, q q q, r r r, s s s等和 t t t, f f f。
命题变元(proposition variables):以“真、假”为取值范围的变量,仍用 p p p, q q q, r r r, s s s等表示。
命题公式简称公式,采用大写 A A A, B B B, C C C等表示。
定义如下:
以上三条的定义方法称为归纳定义,这在集合论中将会信息讨论。
根据定义,可以给出一些例子:
( ¬ ( p → ( q ⋀ r ) ) ) (¬(p \rightarrow (q \bigwedge r))) (¬(p→(q⋀r)))是命题公式
以下式子都不是命题公式:
- ( q p ) (qp) (qp)
- ( p 1 ⋀ ( p 2 ⋀ . . . (p_1 \bigwedge (p_2 \bigwedge ... (p1⋀(p2⋀...
- p → r ⋀ s p \rightarrow r \bigwedge s p→r⋀s(严格定义下缺少了括号)
严格按照定义的命题公式太繁琐,所以我们进行简化:
我们定义逻辑联结词的优先级为: ¬ ¬ ¬, [ ⋀ ⋁ ] [\bigwedge \bigvee] [⋀⋁], → \rightarrow →, ↔ \leftrightarrow ↔
除非有括号,否则按照优先级从高到低,从左到右的次序依次结合。
如果将逻辑联结词看作逻辑运算符,那么包含命题变元 p 1 p_1 p1, p 2 p_2 p2等的公式 A A A可以看作是关于 p 1 p_1 p1, p 2 p_2 p2等的一个真值函数。每个变元的取值范围是{0,1},真值函数数值的取值范围也是{0,1}。
命题公式在形式上的一个规则的字符串,在内容上则对应一个真值函数。
任意给定的 p 1 p_1 p1, p 2 p_2 p2… p n p_n pn的一种取值状况组合,称为指派或者赋值(assighments),用希腊字母 α \alpha α, β \beta β等表示。
对于每个赋值,公式 A A A均有一个确定的真值。
当公式 A A A对赋值 α \alpha α为真时:称 α \alpha α是 A A A的成真赋值,或者 α \alpha α弄真 A A A,记作 α ( A ) = 1 \alpha(A) = 1 α(A)=1。
当公式 A A A对赋值 α \alpha α为假时:称 α \alpha α是 A A A的成假赋值,或者 α \alpha α弄假 A A A。记作 α ( A ) = 0 \alpha(A) = 0 α(A)=0。
对于所有可能的赋值,公式 A A A的真值可以用真值表来确定。
以下是一个真值表的例子:
当 A A A中包含有 n n n个命题变元和 k k k个联结词时,公式 A A A的真值表应有 2 n 2^n 2n行, ( k + n ) (k+n) (k+n)列。
举几个例子:
狗急跳墙( p p p:狗急了 q q q:狗跳墙)
形式化命题: p → q p \rightarrow q p→q
无论是否下雨,我都去上学(p:天下雨,q:我去上学)
形式化命题: ( p → q ) ⋀ ( ¬ p → q ) (p \rightarrow q) \bigwedge (¬p \rightarrow q) (p→q)⋀(¬p→q)
或者: ( p ⋀ q ) ⋁ ( ¬ p ⋀ q ) (p \bigwedge q) \bigvee (¬ p \bigwedge q) (p⋀q)⋁(¬p⋀q)
或者: q q q