← [ BACK_TO_NOTES ]

命题逻辑与逻辑联结词

理解命题逻辑如何把完整陈述抽象为真假命题,并用否定、合取、析取、条件与双条件联结词描述复合命题。

#concept #growing #phil

[!info] related notes

命题逻辑与逻辑联结词

一句话定义

命题逻辑把能够判断真假的完整陈述当作基本单位,再用逻辑联结词组合它们,并只研究组合后的真假如何由组成部分决定。

它故意忽略句子内部“谁做了什么”,先训练最基础的真假结构。

什么是命题

命题是一个具有真假值的陈述。

例如:

  • “东京是日本的城市。”——命题,可以为真或假。
  • “2 + 2 = 5。”——也是命题,只不过为假。
  • “请关门。”——命令,不是命题。
  • “你吃饭了吗?”——问题,不是命题。

在符号化时,可以用字母代表原子命题:

P:今天下雨
Q:我带伞

五个核心联结词

否定 ¬P

读作“不是 P”。

如果:

P:服务在线

那么:

¬P:服务不在线

真假正好相反。

合取 P ∧ Q

读作“P 并且 Q”。

只有 P、Q 都真时,整体才真。

服务在线,并且数据库可连接。

析取 P ∨ Q

标准命题逻辑中的 ∨ 通常是相容或(inclusive or):至少一个为真即可,两个都真也算真。

可以使用邮箱或手机号登录。

如果系统允许两者同时存在,这就是相容或。

自然语言中的“要么 A 要么 B”有时暗示只能选一个,那属于排他或,不要和普通 ∨ 混淆。

条件 P → Q

读作“如果 P,那么 Q”。

它只在一种情况下为假:

P 真,但 Q 假

例如:

如果请求通过认证,那么请求具有合法身份。

若出现“认证通过但身份其实非法”的情况,这条条件规则就被反例击破。

P 是 Q 的充分条件,Q 是 P 的必要条件,见 必要条件与充分条件。

双条件 P ↔ Q

读作“P 当且仅当 Q”。

它要求两个方向都成立:

P → Q
Q → P

两者真假一致时,整体为真。

真值速查

PQP ∧ QP ∨ QP → QP ↔ Q
真真真真真真
真假假真假假
假真假真真假
假假假假真真

完整方法见后续的真值表笔记。

为什么“P → Q”在 P 为假时算真

这是初学者最反直觉的一点。

条件句 P → Q 的承诺其实是:

不会出现 P 已经发生、Q 却没有发生。

例如:

如果我拿到满分,我就请你吃饭。

真正违约的情况只有:

我拿到了满分,但没请你吃饭。

如果我没有拿到满分,这句话本身并没有被反驳。所以在经典命题逻辑中,当前件 P 假时,P → Q 为真。

这叫实质条件(material conditional)。它不等于自然语言里所有“如果……那么……”的细腻含义,比如因果、承诺、时间关系。

形式化为什么有用

自然语言容易被内容干扰:

如果一个人是天才,那么他数学很好。小王数学很好,所以小王是天才。

一旦抽象:

P → Q
Q
∴ P

就更容易看出:这不是有效形式。Q 可能还有很多其他原因。

形式化的价值就是:暂时把故事拿走,只看推理骨架。

与编程的关系

命题逻辑直接对应程序中的布尔表达式:

isLoggedIn && hasPermission
!isExpired
isAdmin || isOwner

但需要注意,JavaScript 的 &&、|| 还具有短路求值和返回操作数等语言语义,不完全等同于纯逻辑联结词。

逻辑学提供的是真假结构,编程语言再在其上增加执行语义。

使用场景

拆需求

用户只有在“已登录并且拥有编辑权限”时才能编辑。

直接形式化:

CanEdit → LoggedIn ∧ HasEditPermission

这有助于发现权限条件是否漏掉。

分析争论

把“只要”“除非”“要么”“只有”翻成明确结构,很多自然语言歧义会暴露出来。

检查测试覆盖

多个布尔条件组合时,可以借真值表枚举关键输入状态,避免只测 happy path。

易混淆点

“或”不一定排他

逻辑里的 ∨ 默认允许两者都真。

→ 不表示因果

P → Q 只描述真假约束,不意味着 P 在现实中制造了 Q。

命题逻辑看不到句子内部结构

“所有程序员都会写代码”和“小王是程序员”之间的关系,需要谓词逻辑才能更自然表达。

快速自测

设:

P:用户已登录
Q:用户是管理员

“用户已登录,但不是管理员”:

P ∧ ¬Q

“如果用户是管理员,那么用户已登录”:

Q → P

“用户已登录或是管理员,至少满足一个”:

P ∨ Q

来源

创建于 2026/9/11 更新于 2026/9/11
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本