← [ BACK_TO_NOTES ]

真值表

用系统枚举命题真假组合的方法计算复合命题真值,并判断重言式、矛盾式、逻辑等价与论证有效性。

#concept #growing #phil

[!info] related notes

真值表

一句话定义

真值表通过列出原子命题所有可能的真假组合,再逐步计算复合命题的真值,让“这个逻辑式到底在什么情况下成立”变得完全可见。

为什么需要真值表

自然语言很容易凭直觉判断,而复杂条件一多,直觉就不可靠。

例如:

(P → Q) ∧ ¬Q

它到底能不能推出 ¬P?

真值表可以把所有可能情况列出来,不靠感觉。

两个命题有几种组合

若有两个原子命题 P、Q,每个都有真/假两种状态,因此一共:

2² = 4 种
PQ
真真
真假
假真
假假

三个原子命题就是:

2³ = 8 种

一般来说,n 个独立原子命题需要 2^n 行。

基本联结词

PQ¬PP ∧ QP ∨ QP → QP ↔ Q
真真假真真真真
真假假假真假假
假真真假真真假
假假真假假真真

最值得熟记的不是整张表,而是:

  • P ∧ Q:必须两个都真;
  • P ∨ Q:至少一个真;
  • P → Q:只有“P 真、Q 假”时为假;
  • P ↔ Q:两边真假一致时为真。

用真值表验证一个有效推理

经典形式:

P → Q
P
∴ Q

这叫肯定前件(modus ponens)。

判断有效性时,不是只看结论,而是寻找:

有没有“所有前提都真,但结论假”的一行?

PQP → Q前提 P结论 Q
真真真真真
真假假真假
假真真假真
假假真假假

唯一让两个前提都真的行是第一行,而结论也真,因此不存在反例行,所以形式有效。

验证一个无效推理

P → Q
Q
∴ P

也就是肯定后件。

看这一行:

P = 假
Q = 真

此时:

  • P → Q 为真;
  • Q 为真;
  • P 为假。

于是我们找到了“前提全真、结论假”的情况,所以这个形式无效。

真值表还能做什么

判断重言式

如果一个公式在每一行都为真,它是重言式(tautology)。

例如:

P ∨ ¬P

经典逻辑中无论 P 真或假,整体都真。

判断矛盾式

如果一个公式每一行都为假,它是矛盾式(contradiction)。

例如:

P ∧ ¬P

判断逻辑等价

如果两个公式在所有行的真值都完全相同,它们逻辑等价。

例如德摩根律之一:

¬(P ∧ Q) ≡ ¬P ∨ ¬Q

这在代码条件重构、布尔表达式化简里也非常实用。

通俗理解:穷举测试

程序员可以把真值表理解成:

对一个纯布尔规则做完整状态空间测试。

假设业务规则:

CanAccess = IsAdmin ∨ (IsOwner ∧ IsActive)

如果条件很关键,可以枚举所有真假组合,确认是否存在没想到的权限状态。

所以真值表和软件测试的思想非常接近:

所有可能输入
→ 计算输出
→ 查找反例

使用场景

  • 检查一段条件推理是不是有效;
  • 理解复杂 if 条件;
  • 验证两个布尔表达式重构前后是否等价;
  • 分析“如果……那么……”类自然语言推理;
  • 理解数字电路和布尔代数的基础;
  • 为权限、状态机和规则系统设计测试矩阵。

真值表的局限

命题逻辑只把整句话看成 P、Q。

它不能自然表达:

所有开发者都会使用某种工具。 小王是开发者。 因此小王会使用某种工具。

这里需要分析“所有”“小王”“是开发者”这些内部结构,必须进入谓词逻辑。

另外,当原子命题很多时,2^n 会快速爆炸。此时自然演绎、SAT 求解等方法更适合。

快速自测

不用完整画表,判断下面是否存在反例:

P → Q
¬Q
∴ ¬P

如果前提都真:

  • ¬Q 真,所以 Q 假;
  • 要让 P → Q 仍为真,在 Q 假时 P 只能假;
  • 因此 ¬P 必真。

所以这是有效形式——否定后件(modus tollens)。

来源

创建于 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
关闭浮层 / 取消命令;输入框内清空文本