1. 概述
在本教程中,我们将学习命题逻辑的基本概念以及逻辑运算符的使用。
学完本教程后,你将熟悉命题和逻辑运算符的核心概念,并能计算命题逻辑中的基本公式的真值。
2. 命题逻辑简介
命题逻辑是逻辑学、哲学和离散数学的一个分支,研究语句及其之间的关系。它最初是为了形式化数学等领域的推理而发展起来的,后来也被广泛应用于计算机科学。
与命题逻辑相关的符号人工智能(Symbolic Artificial Intelligence)是机器学习中一个重要的分支,专注于逻辑和符号推理。它广泛应用于自然语言处理、专家系统、贝叶斯推理和语义表示等系统中。
在这些系统中,推理引擎(Inference Engine)是一个关键组成部分。推理引擎基于命题逻辑的理论基础,通过已有的命题知识自动生成新知识。
此外,命题逻辑还支持自动定理证明(Automated Theorem Proving)。最早的自动定理证明器可追溯到1950年代,如今已有许多专用语言(如 Coq)支持在特定条件下自动寻找定理证明。
3. 命题
3.1 命题的定义
命题是命题逻辑的基础单位。它是一个符合语法和语法规则的语句,可以被赋予真值(true 或 false)。
例如:
✅ “温度是24度” 是一个命题,因为我们可以用温度计验证其真假
✅ “猪会飞” 是一个命题,因为可以通过观察猪是否飞行来判断
✅ “冥王星上有一只粉红色的独角兽” 是一个命题,虽然难以验证,但理论上是可验证的
❌ “你喜欢这部电影吗?” 不是命题,因为它是一个疑问句,没有明确的真值
❌ “走之前休息一下” 不是命题,因为它是一个建议,无法判断真假
3.2 命题的符号表示
通常使用小写字母(如 p
, q
)表示通用命题,大写字母(如 P
, Q
)表示具体命题:
p
和q
:通用命题,用于定理证明P = "Mark 是工程师"
和Q = "苹果是绿色的"
:具体命题M = {p, q}
:包含两个通用命题的集合N = {P, Q}
:包含两个具体命题的集合
注意:不同文献中符号可能略有不同,但通用规则是使用小写字母表示通用命题。
3.3 命题的真值
命题必须具有确定的真值,只能是 true
或 false
。在计算机科学中,通常用 1
表示 true
,0
表示 false
。
⚠️ 命题的真值必须是确定的,不能是模糊的。例如“Joe 喜欢意大利面”是命题,但“你喜欢这个电影吗?”不是。
3.4 命题与布尔逻辑
命题逻辑本质上是布尔逻辑的应用。每个命题只能取一个布尔值:true
或 false
。
虽然存在模糊逻辑和量子逻辑的扩展,但它们超出了本文的讨论范围。
4. 陈述句与非陈述句
4.1 命题是陈述句
只有陈述句可以是命题。陈述句有两个基本成分:主语和谓语。例如:
- “我们回家” 是一个命题(英文中主语必须明确,但其他语言如意大利语、俄语、阿拉伯语中主语可以省略)
4.2 非命题:疑问句
疑问句不是命题,因为它们本身没有真值。例如:
- “你怎么回家?” 是一个疑问句
- “你知道包裹到了吗?” 是一个间接疑问句
4.3 非命题:祈使句
祈使句是命令或建议,没有真值。例如:
- “走!”
- “吃掉所有沙拉。”
在英语中,祈使句通常没有主语,但在其他语言中(如意大利语)可能无法仅凭语法判断。
4.4 非命题:感叹句
感叹句用于表达情感,没有事实内容。例如:
- “太棒了!”
- “你怎么还没听说!”
⚠️ 在命题逻辑中,感叹句和祈使句通常都以 !
结尾,都不是命题。
5. 合式公式(Well-Formed Formula)
5.1 合式公式的定义
合式公式(WFF)是由命题和逻辑运算符组成的表达式,具有确定的真值。所有单独的命题都是合式公式,称为原子命题。
5.2 否定运算符 NOT
否定运算符(¬p
或 1 - p
)是最简单的逻辑运算符,只作用于一个命题:
p | ¬p |
---|---|
1 | 0 |
0 | 1 |
✅ 如果 p
是 WFF,则 ¬p
也是 WFF
⚠️ 英语中否定句子时通常需要添加助动词,不能简单插入 not
5.3 合取运算符 AND
合取运算符(p ∧ q
或 p · q
)连接两个命题,只有当两者都为真时结果才为真:
p | q | p ∧ q |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
✅ 转换为自然语言时只需在两个句子之间加 and
5.4 析取运算符 OR
析取运算符(p ∨ q
或 p + q
)连接两个命题,只要有一个为真,结果就为真:
p | q | p ∨ q |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
✅ 转换为自然语言时只需在两个句子之间加 or
5.5 条件运算符 IF ... THEN
条件运算符(p → q
或 if p then q
)用于表示前提与结论之间的关系:
p | q | p → q |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 1 |
0 | 0 | 1 |
⚠️ 条件句只有在前提为真、结论为假时才为假
✅ 转换为自然语言时在前提前加 if
,在结论前加 then
示例
P = "今天是晴天"
Q = "我踢足球"
P → Q = "如果今天是晴天,那么我踢足球"
只有在晴天但没踢球时,这个条件句才为假。
6. 总结
我们学习了命题逻辑的基础概念,包括:
- 命题的定义与真值
- 陈述句与非陈述句的区分
- 合式公式与基本逻辑运算符(NOT、AND、OR、IF ... THEN)
- 每个运算符的真值表与自然语言转换方法
掌握这些内容有助于你理解更复杂的逻辑推理与自动定理证明机制。