真值表
维基百科,自由的百科全书
真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。 (表达式可以是论证;就是说,表达式的合取,它的每个结合项(conjunct)都是最后要做的结论的一个前提。)
发明真值表是用来在弗雷格、罗素等人开发的命题演算上工作的。它是在1917年年由维特根斯坦和1921年由 Emil Post 独立发明的。维特根斯坦的逻辑哲学论使用它们把真值函数置于序列中。这个著作的广泛影响导致了真值表的传播。
真值表被用来计算真值泛函表达式的值(就是说是一个判定过程)。真值泛函表达式要么是原子(就是说是命题变量(或占位符)或命题函数 - 比如 Px)或建造自使用逻辑运算符(就是说 ∧ (AND),∨ (OR),¬ (NOT) - 例如 Fx & Gx)的原子公式。
真值表中的列标题展示了 (i) 命题函数与/或变量,和 (ii) 建造自这些命题函数或变量和运算符的真值泛函表达式。行展示对 (i) 和 (ii) 的 T 或 F 指派的每个可能的求值。换句话说,每行都是对 (i) 和 (ii) 的不同解释。
经典(就是说二值)逻辑的真值表限定于只有两个真值是可能的布尔逻辑系统,它们是真或假,通常在表中简单的表示为 T 和 F。
目录 |
[编辑] 否定
在布尔逻辑系统中,所有运算符都能以这种方式明确的定义。例如NOT (¬) 关系定义如下:
A | ¬ A |
F | T |
T | F |
[编辑] 逻辑合取
例如,采用两个命题变量, A 和 B 和逻辑运算符 "AND" (∧), 表示合取 "A 与 B" 或 A ∧ B。在普通英语中,如果 A 和 B 都是真的,那么合取 "A ∧ B" 是真的;在所有的对 A ∧ B 的真值的可能指派,合取都是假的。这种联系定义如下:
A | B | A ∧ B |
F | F | F |
F | T | F |
T | F | F |
T | T | T |
[编辑] 逻辑析取
OR (∨) 关系定义如下:
A | B | A ∨ B |
F | F | F |
F | T | T |
T | F | T |
T | T | T |
[编辑] 逻辑与非
可以构造复合的表达式,使用圆括号来指示优先级。
合取的否定 ¬ (A ∧ B) ≡ A ∧ B, 和否定的析取 ¬ A ∨ ¬ B 描述如下:
A | B | A ∧ B | A ∧ B | ¬ A | ¬ B | ¬ A ∨ ¬ B |
F | F | F | T | T | T | T |
F | T | F | T | T | F | T |
T | F | F | T | F | T | T |
T | T | T | F | F | F | F |
[编辑] 逻辑或非
真值表可以用来证明逻辑等价。
析取的否定 ¬ (A ∨ B) ≡ A ∨ B,和否定的合取 ¬ A ∧ ¬ B 描述如下:
A | B | A ∨ B | A ∨ B | ¬ A | ¬ B | ¬ A ∧ ¬ B |
F | F | F | T | T | T | T |
F | T | T | F | T | F | F |
T | F | T | F | F | T | F |
T | T | T | F | F | F | F |
比较上面两个真值表,因为对 A ∧ B 和 ¬ A ∨ ¬ B二者,与 A ∨ B 和 ¬ A ∧ ¬ B 二者, 枚举 A 和 B 的所有可能真值生成相同真值,它们分别是逻辑等价的,并可相互代换。这种等价是De Morgan 定律中的。
[编辑] 最常用逻辑运算符的真值表
下面的真值表给出 2 个二值变量(P,Q 是布尔变量)的 16 个可能的真值函数中最常用的 7 个的定义:
P | Q | P ∧ Q | P ∨ Q | P ∧ Q | P ∨ Q | P → Q | P ← Q | P ↔ Q |
F | F | F | F | F | T | T | T | T |
F | T | F | T | T | F | T | F | F |
T | F | F | T | T | F | F | T | F |
T | T | T | T | F | T | T | T | T |
注解:
- T = 真,F = 假
- ∧ = AND (逻辑合取)
- ∨ = OR (逻辑析取)
- ∧ = XOR (异或)
- ∨ = XNOR (异或非)
- → = "如果那么" 条件
- ← = "条件是" 条件
- ↔ = 双条件或 "当且仅当"
Johnston 图,类似于文氏图和欧拉图,提供了可视化真值表的方式。LogicTutorial.com有展示真值表的交互的 Johnston 图。
[编辑] 二元运算符的浓缩的真值表
对于二元运算符,还使用一种浓缩形式的真值表,这里的行标题和列标题指定操作元(operand)而表单元指定结果。例如布尔逻辑是这种真值表表示法:
|
|
这种表示法在运算符是交换性的时候特别有用,尽管你可以补充的指定行是第一个操作元而列是第二个操作元。这种浓缩的表示法在讨论逻辑的多值扩展的时候特别有用,因为它严重的缩减了所需要的行数的组合爆炸。它还提供了在表中值的分布的快速可辩识的特征性"形状",可以帮助读者更加快速的把握规律。