1. 概述

在本教程中,我们将学习命题逻辑的基本概念以及逻辑运算符的使用。

学完本教程后,你将熟悉命题和逻辑运算符的核心概念,并能计算命题逻辑中的基本公式的真值。

2. 命题逻辑简介

命题逻辑是逻辑学、哲学和离散数学的一个分支,研究语句及其之间的关系。它最初是为了形式化数学等领域的推理而发展起来的,后来也被广泛应用于计算机科学。

与命题逻辑相关的符号人工智能(Symbolic Artificial Intelligence)是机器学习中一个重要的分支,专注于逻辑和符号推理。它广泛应用于自然语言处理、专家系统、贝叶斯推理和语义表示等系统中。

在这些系统中,推理引擎(Inference Engine)是一个关键组成部分。推理引擎基于命题逻辑的理论基础,通过已有的命题知识自动生成新知识。

此外,命题逻辑还支持自动定理证明(Automated Theorem Proving)。最早的自动定理证明器可追溯到1950年代,如今已有许多专用语言(如 Coq)支持在特定条件下自动寻找定理证明。

3. 命题

3.1 命题的定义

命题是命题逻辑的基础单位。它是一个符合语法和语法规则的语句,可以被赋予真值(true 或 false)。

例如:

✅ “温度是24度” 是一个命题,因为我们可以用温度计验证其真假
✅ “猪会飞” 是一个命题,因为可以通过观察猪是否飞行来判断
✅ “冥王星上有一只粉红色的独角兽” 是一个命题,虽然难以验证,但理论上是可验证的
❌ “你喜欢这部电影吗?” 不是命题,因为它是一个疑问句,没有明确的真值
❌ “走之前休息一下” 不是命题,因为它是一个建议,无法判断真假

3.2 命题的符号表示

通常使用小写字母(如 p, q)表示通用命题,大写字母(如 P, Q)表示具体命题:

  • pq:通用命题,用于定理证明
  • P = "Mark 是工程师"Q = "苹果是绿色的":具体命题
  • M = {p, q}:包含两个通用命题的集合
  • N = {P, Q}:包含两个具体命题的集合

注意:不同文献中符号可能略有不同,但通用规则是使用小写字母表示通用命题。

3.3 命题的真值

命题必须具有确定的真值,只能是 truefalse。在计算机科学中,通常用 1 表示 true0 表示 false

⚠️ 命题的真值必须是确定的,不能是模糊的。例如“Joe 喜欢意大利面”是命题,但“你喜欢这个电影吗?”不是。

3.4 命题与布尔逻辑

命题逻辑本质上是布尔逻辑的应用。每个命题只能取一个布尔值:truefalse

虽然存在模糊逻辑和量子逻辑的扩展,但它们超出了本文的讨论范围。

4. 陈述句与非陈述句

4.1 命题是陈述句

只有陈述句可以是命题。陈述句有两个基本成分:主语和谓语。例如:

  • “我们回家” 是一个命题(英文中主语必须明确,但其他语言如意大利语、俄语、阿拉伯语中主语可以省略)

4.2 非命题:疑问句

疑问句不是命题,因为它们本身没有真值。例如:

  • “你怎么回家?” 是一个疑问句
  • “你知道包裹到了吗?” 是一个间接疑问句

4.3 非命题:祈使句

祈使句是命令或建议,没有真值。例如:

  • “走!”
  • “吃掉所有沙拉。”

在英语中,祈使句通常没有主语,但在其他语言中(如意大利语)可能无法仅凭语法判断。

4.4 非命题:感叹句

感叹句用于表达情感,没有事实内容。例如:

  • “太棒了!”
  • “你怎么还没听说!”

⚠️ 在命题逻辑中,感叹句和祈使句通常都以 ! 结尾,都不是命题。

5. 合式公式(Well-Formed Formula)

5.1 合式公式的定义

合式公式(WFF)是由命题和逻辑运算符组成的表达式,具有确定的真值。所有单独的命题都是合式公式,称为原子命题

5.2 否定运算符 NOT

否定运算符(¬p1 - p)是最简单的逻辑运算符,只作用于一个命题:

p ¬p
1 0
0 1

✅ 如果 p 是 WFF,则 ¬p 也是 WFF
⚠️ 英语中否定句子时通常需要添加助动词,不能简单插入 not

5.3 合取运算符 AND

合取运算符(p ∧ qp · q)连接两个命题,只有当两者都为真时结果才为真:

p q p ∧ q
1 1 1
1 0 0
0 1 0
0 0 0

✅ 转换为自然语言时只需在两个句子之间加 and

5.4 析取运算符 OR

析取运算符(p ∨ qp + q)连接两个命题,只要有一个为真,结果就为真:

p q p ∨ q
1 1 1
1 0 1
0 1 1
0 0 0

✅ 转换为自然语言时只需在两个句子之间加 or

5.5 条件运算符 IF ... THEN

条件运算符(p → qif 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)
  • 每个运算符的真值表与自然语言转换方法

掌握这些内容有助于你理解更复杂的逻辑推理与自动定理证明机制。


原始标题:Propositional Logic

» 下一篇: 编译器的工作原理