此條目介紹的是数学的子领域。关于相关的代数结构，请见「**布尔代数**」和「**布尔环**」。
在数学和数理逻辑中，**逻辑代数**（有时也称**开关代数**、**布尔代数**）是代数的一个分支，其变量的值仅为*真*和*假*两种真值（通常记作 1 和 0）。初等代數中变量的值是数字，而且主要的运算是加法、乘法和乘方（以及它們的逆运算），而逻辑代数的主要运算符有合取*与*，记为∧；析取*或*，记为∨；否定*非*，记为¬。因此，它是描述逻辑运算的一种形式主义，就像初等代数描述数字运算一样。

逻辑代数是乔治·布尔（George Boole）在他的第一部著作《逻辑的数学分析》（1847年）中引入，并在他的《思想规律的研究》（1854年）中全面阐述了逻辑代数。
根据Huntington的说法，"布尔代数"术语最初是由Sheffer于1913年提出。

逻辑代数一直是数字电路设计的基础，所有现代编程语言都提供支持。它还用于集合论和统计学。

逻辑代数中的几个概念
----------

参与逻辑运算的变量叫**逻辑变量**，用字母A，B……表示。每个变量的取值非0 即1。 0、1不表示数的大小，而是代表两种不同的逻辑状态。

正、负逻辑规定：

* 正逻辑体制规定：高电平为逻辑1，低电平为逻辑0。
* 负逻辑体制规定：低电平为逻辑1，高电平为逻辑0。

**逻辑函数**：如果有若干个逻辑变量（如A、B、C、D）按与、或、非三种基本运算组合在一起，得到一个表达式L。对逻辑变量的任意一组取值（如0000、0001、0010）L有唯一的值与之对应，则称L为逻辑函数。逻辑变量A、B、C、D的逻辑函数记为：L=f(A、B、C、D)

逻辑运算
----

### 基本运算

逻辑代数的基本运算如下。

* 与（合取），记作 *x*∧*y*（有时记作 *x* AND *y* 或 K*xy*），在 *x* = *y* = 1 情况下，满足 *x*∧*y* = 1；其他情况下 *x*∧*y* = 0。
* 或（析取）, 记作 *x*∨*y*（有时记作 *x* OR *y* 或 A*xy*），在 *x* = *y* = 0 情况下，满足 *x*∨*y* = 0；其他情况下 *x*∨*y* = 1。
* 非 （否定）, 记作 ¬*x*（有时记作 NOT *x*, N*x* 或 !*x*），在 *x* = 1 情况下，满足 ¬*x* = 0；而在 ¬*x* = 1 情况下，*x* = 0。

如果把真值0和1解释为整数，这些运算可以表示为普通算数运算：

{\displaystyle {\begin{aligned}x\wedge y&=x\times y\\x\vee y&=x+y-(x\times y)\\\neg x&=1-x\end{aligned}}}
此外可以用制作真值表来表示 *x*∧*y*, *x*∨*y* 和 ¬*x* 的值：


 

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| {\displaystyle x} | {\displaystyle y} | {\displaystyle x\wedge y} | {\displaystyle x\vee y} |
| --- | --- | --- | --- |
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |

  | 

| {\displaystyle x} | {\displaystyle \neg x} |
| --- | --- |
| 0 | 1 |
| 1 | 0 |

  |

有人可能会认为，只有否定和另外两种运算之一是基本的，因为用下列性质可以用逻辑否和逻辑或来定义逻辑与，反之亦然：

{\displaystyle {\begin{aligned}x\wedge y&=\neg (\neg x\vee \neg y)\\x\vee y&=\neg (\neg x\wedge \neg y)\end{aligned}}}
### 衍生运算

上述三个逻辑运算被称为基本的，这意味着其他逻辑运算可以以它们为基础，由他们的**复合**来建立，即将这些运算组合或结合。下面是由基本运算构成的运算的例子：

{\displaystyle x\rightarrow y=\neg {x}\vee y}
{\displaystyle x\oplus y=(x\vee y)\wedge \neg {(x\wedge y)}}
{\displaystyle x\equiv y=\neg {(x\oplus y)}}
这些定义产生以下真值表，其中给出了对所有四个可能的输入，这些运算的值。

| {\displaystyle x} | {\displaystyle y} | {\displaystyle x\rightarrow y} | {\displaystyle x\oplus y} | {\displaystyle x\equiv y} |
| --- | --- | --- | --- | --- |
| 0 | 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 0 | 1 |

第一种运算，*x* → *y* 或 C*xy*，叫做**实质蕴涵**。如果 *x* 为真，则 *x* → *y* 的值就取自 *y* 的值。但如果 *x* 为假，则 *y* 可以忽略；然而此运算必须返回*某种*真值，而且只有两种选择，所以返回蕴含较小的值，即*真*。（相干逻辑通过看作非真非假的假前提的蕴含来处理这件事。）

第二种运算，*x* ⊕ *y* 或 J*xy*，叫做**异或**（通常缩写为XOR）与逻辑或的区别在于逻辑或包含其类型。它排除了 *x* 和 *y* 同时为真的情形。用算术来定义就是加和之后 mod 2，就如 1 + 1 = 0.

第三种运算，异或的互补运算，是**同或**或逻辑等价：*x* ≡ *y* 或 E*xy*，当 *x* 与 *y* 值相同时为真。因此作为其互补运算，*x* ⊕ *y* 可以理解为 *x* ≠ *y*，当 *x* 和 *y* 不同时为真。它对应的 mod 2 算术为 *x* + *y* + 1。

给定两个操作数，每个具有两个可能的值，共有 22 = 4 种可能的输入组合。由于每种输出有两种可能值，一共有 24 = 16种可能的二元逻辑运算（英语：）。

运算律
---

两个主要的二元运算的符号定义为 {\displaystyle \land } (逻辑与)和 {\displaystyle \lor } (逻辑或)，把单一的一元运算的符号定义为 {\displaystyle \lnot } (逻辑非)。我们还使用值 0 (逻辑假)和 1 (逻辑真)。逻辑代数有下列性质:

|  |  |  |
| --- | --- | --- |
| {\displaystyle a\lor (b\lor c)=(a\lor b)\lor c} | {\displaystyle a\land (b\land c)=(a\land b)\land c} | 结合律 |
| {\displaystyle a\lor b=b\lor a} | {\displaystyle a\land b=b\land a} | 交换律 |
| {\displaystyle a\lor (a\land b)=a} | {\displaystyle a\land (a\lor b)=a} | 吸收律 |
| {\displaystyle a\lor (b\land c)=(a\lor b)\land (a\lor c)} | {\displaystyle a\land (b\lor c)=(a\land b)\lor (a\land c)} | 分配律 |
| {\displaystyle a\lor \lnot a=1} | {\displaystyle a\land \lnot a=0} | 互补律 |
| {\displaystyle a\lor a=a} | {\displaystyle a\land a=a} | 幂等律 |
| {\displaystyle a\lor 0=a} | {\displaystyle a\land 1=a} | 有界律 |
| {\displaystyle a\lor 1=1} | {\displaystyle a\land 0=0} |
| {\displaystyle \lnot 0=1} | {\displaystyle \lnot 1=0} | 0 和 1 是互补的 |
| {\displaystyle \lnot (a\lor b)=\lnot a\land \lnot b} | {\displaystyle \lnot (a\land b)=\lnot a\lor \lnot b} | 对偶律 |
| {\displaystyle \lnot \lnot a=a} |  | 对合律 |

布尔运算的各种表示

逻辑代数的基本规则
---------

### 代入规则

任何一个含有变量 X 的等式，如果将所有出现 X 的位置，都代之以一个逻辑函数 F，此等式仍然成立。

### 对偶规则

设 F 是一个逻辑函数式，如果将 F 中的所有的 \* 变成 +，+ 变成 \*，0 变成 1，1 变成 0，而变量保持不变。那么就的得到了一个逻辑函数式 F'，这个 F' 就称为 F 的对偶式。如果两个逻辑函数 F 和 G 相等，则它们各自的对偶式 F' 和 G' 也相等。

### 反演规则

当已知一个逻辑函数 F，要求 ¬F 时，只要把 F 中的所有 \* 变成 +，+ 变成 \*，0 变成 1，1 变成 0，原变量变成反变量，反变量变成原变量，即得 ¬F。
使用反演规则时要注意保持原函数中逻辑运算的优先顺序。

逻辑函数的标准形式
---------

逻辑变量的逻辑**与运算**叫做**与项**，与项的逻辑或运算构成了逻辑函数的与或式，也叫做**积之和式**(SP form)。

逻辑变量的逻辑**或运算**叫做**或项**，或项的逻辑与运算构成了逻辑函数的或与式，也叫做**和之积式**(PS form)。

### 最小项

对于 n 个变量的逻辑函数而言，它的与项如果包含全部 n 个变量，即每个变量以原变量或反变量的形式出现一次且只出现一次，那么这个与项就称为该逻辑函数的最小项。

### 最大项

对于 n 个变量的逻辑函数而言，它的或项如果包含 全部n 个变量，即每个变量以原变量或反变量的形式出现一次且只出现一次，那么这个或项就称为该逻辑函数的最大项。

逻辑函数的化简
-------

运用逻辑代数的基本公式及规则可以对逻辑函数进行变换，从而得到表达式的最简形式。这里所谓的最简形式是指最简与或式或者是最简或与式，它们的判别标准有两条：(1)项数最少；(2)在项数最少的条件下，项内的文字最少。

卡诺图是遵循一定规律构成的。由于这些规律，使逻辑代数的许多特性在图形上得到形象而直观的体现，从而使它成为公式证明、函数化简的有力工具。

应用
--

### 计算机

20世纪早期，一些电子工程师领悟到逻辑代数很像某种电子电路的行为。香农在它1937年的论文中证明了这种行为与逻辑代数等价。

几乎所有现代通用计算机都用二值布尔逻辑做运算；也就是说它们的电路是二值布尔逻辑的物理表示。几种表示方式：导线上电压的高低，磁性存储设备中磁畴的方向，打孔卡或纸带上的洞，等等（但有些早期的计算机用了十进制电路或者机械，而不是二值逻辑电路）

当然，也可能在任意介质中编码进2个以上的符号。比如在导线上用0，1，2，3伏特去编码一种有4个符号的字符集，或者利用打孔卡的洞的不同大小。但实践上，在一个很小的、高速的、低功耗的电路中噪声是个关键因素。它使分辨多个可能出现的符号变得困难。所以电路设计者们选择了高、低2种电压而不是4种。

由于上面的原因计算机使用二值逻辑电路。最常见的计算机架构使用32或64个叫做比特的布尔值序列，比如011010001101001010101001010111100000010101001011。当使用机器语言、汇编语言和某些高级语言时，程序员可以操作寄存器的数字结构。在寄存器中0电压表示逻辑0，参考电压（通常是+5伏或+3.3伏）表示逻辑1。这些语言同时支持数值操作和逻辑操作。这里的"数值操作"指计算机把比特序列当作二进制数字进行加减乘除等运算。"逻辑操作"指2个比特序列之间的与或非运算，序列中每一位都与另一序列中对应位进行运算。这两种操作之间的关键不同是前者有进位而后者没有。

参见
--

* 数字逻辑(數位邏輯)
* 逻辑函数(交換函數)
* 规范形式 (布尔代数)
* 逻辑门
* 卡诺图

参考文献
----

1. ↑  Boole, George.. Prometheus Books. 2003 [1854]. ISBN 978-1-59102-089-9.
2. ↑  "The name Boolean algebra (or Boolean 'algebras') for the calculus originated by Boole, extended by Schröder, and perfected by Whitehead seems to have been first suggested by Sheffer, in 1913." E. V. Huntington, "New sets of independent postulates for the algebra of logic, with special reference to Whitehead and Russell's *Principia mathematica* （页面存档备份，存于）", in 
*Trans. Amer. Math. Soc.* **35** (1933), 274-304; footnote, page 278.
3. ↑  Givant, Steven; Halmos, Paul.. Undergraduate Texts in Mathematics, Springer. 2009. ISBN 978-0-387-40293-2.
4. ↑ . learn.sparkfun.com.  [2016-12-12]. （原始内容存档于2021-05-07）.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
数理逻辑 |
| --- |
|  |
| 基本概念 | 
* 公理
	+ 列表
* 势
* 一阶逻辑
* 形式证法（英语：）
* 邏輯語義學
* 数学基础
* 信息论
* 蕴涵
* 结构
* 集合
* 定理
* 形式理论
* 类型论

 |
|  |
| 定理（列表（英语：）及悖论（英语：）） | 
* 哥德尔完备性定理及哥德尔不完备定理
* 塔斯基不可定義定理
* 巴拿赫-塔斯基定理
* 康托尔 定理、悖论和對角論證法
* 紧致性定理
* 停机问题
* 林德斯特伦定理（英语：）
* 勒文海姆–斯科伦定理
* 罗素悖论

 |
|  |
| 逻辑 | 

|  |  |
| --- | --- |
| 传统逻辑 | 
* 邏輯真理
* 恆真式
* 命题
* 推理
* 逻辑等价
* 一致性
	+ 相同一致性（英语：）
* 逻辑论证
* 可靠性定理
* 有效性
* 直言三段论
* 对立四边形
* 文氏图

 |
|  |
| 命题逻辑 | 
* 逻辑代数
* 布尔函数
* 逻辑运算符
* 命题逻辑
* 命题公式
* 真值表
* 多值逻辑
	+ 三值
	+ 有限值（英语：）
	+ 无限值（英语：）

 |
|  |
| 经典逻辑 | 
* 经典逻辑
* 一阶逻辑
* 二階邏輯
	+ 一元（英语：）
* 高阶逻辑
* 自由逻辑
* 量化
* 谓词（英语：）
* 一元谓词演算

 |

 |
|  |
| 集合论 | 

|  |
| --- |
| 
* 集合
	+ 遗传集（英语：）
* 类
* （基本）元素
* 有序对
* 序数
* 子集
* 相等
* 外延性
* 力迫
* 关系
	+ 等价关系
	+ 集合划分
* 集合运算
	+ 交集
	+ 并集
	+ 补集
	+ 笛卡儿积
	+ 冪集
	+ 同一性（英语：）

 |
|  |
| 集合种类 | 
* 可數集
* 不可數集
* 空集
* 居集（英语：）
* 单元素集合
* 有限集合
* 无限集合
* 传递集合
* 超滤子（英语：）
* 递归集合
* 模糊集
* 全集
	+ 可构造全集（英语：）
	+ 格伦迪克全集（英语：）
	+ 冯·诺伊曼全集

 |
|  |
| 映射与势 | 
* 函数、映射
	+ 定义域
	+ 到达域
	+ 像
* 单射、满射、双射
* 康托尔-伯恩斯坦-施罗德定理
* 同构
* 哥德尔数
* 列举法
* 大基数
	+ 不可達基數
* 阿列夫數
* 运算
	+ 二元运算

 |
|  |
| 集合理论 | 
* 策梅洛-弗兰克尔 (ZFC)
	+ 选择公理
	+ 连续统假设
* 广义集合论 (GST)（英语：）
* 克里普克-普拉克 (KP)（英语：）
* 莫尔斯-凯利集合论 (MK)（英语：）
* 朴素集合论
* 新基础集合论
* 塔斯基-格罗滕迪克 (TG)（英语：）
* 冯·诺伊曼-博内斯-哥德尔 (NBG)
* 建构式集合论（英语：）

 |

 |
|  |
| 句法（英语：）及语言 | 

|  |
| --- |
| 
* 字母表
* 元数
* 自動機理論
* 公理模式
* 表達式
	+ 基础表达式（英语：）
* 扩展（英语：）
* 关系
* 形式
	+ 文法
	+ 语言
	+ 证明
	+ 系统
	+ 理论
* 形成规则（英语：）
* 合式公式
	+ 原子公式
	+ 封闭式
	+ 基本式（英语：）
	+ 开放式
* 自由变量和约束变量
* 元語言
* 逻辑运算符
	+ ¬
	+ ∨
	+ ∧
	+ →
	+ ↔
	+ 逻辑相等（英语：）
* 谓词（英语：）
	+ 泛函谓词
	+ 谓词变量
	+ 命题变量
* 量化
	+ ∃
	+ !
	+ ∀
	+ 级别（英语：）
* 句子
	+ 原子句子
* 逻辑签名（英语：）
* 字符串
* 替换法（英语：）
* 逻辑符号
	+ 函数符号
	+ 逻辑常量（英语：）
	+ 非逻辑符号（英语：）
	+ 變數
* 逻辑术语（英语：）

 |
|  |
| 公理系统示例（列表（英语：）） | 
* 实算术（英语：）
	+ 皮亚诺公理
	+ 二阶（英语：）
	+ 初等函数（英语：）
	+ 原始递归（英语：）
	+ 罗宾逊算术（英语：）
	+ 斯科勒姆算术（英语：）
* 實數的構造
	+ 塔尔斯基公理化（英语：）
* 布尔代数
	+ 正则定义（英语：）
	+ 最小公理（英语：）
* 几何（英语：）
	+ 欧几里得几何
	+ 《原本》
	+ 希尔伯特公理
	+ 非欧几里得几何
	+ 塔尔斯基公理（英语：）
* 《数学原理》

 |

 |
|  |
| 证明论 | 
* 形式证明
* 自然演绎
* 蕴涵
* 推理规则
* 相继式演算
* 定理
* 系统
	+ 形式
	+ 公理
	+ 演绎
	+ 希尔伯特演绎系统
		- 列表（英语：）
* 完备理论（英语：）
* ZFC系统的独立性（英语：）
	+ 列表
* 不可能证明（英语：）
* 序数分析（英语：）
* 逆数学
* 自恰理论（英语：）

 |
|  |
| 模型论 | 
* 解释
* 结构
	+ 初等等价
	+ 有限模型（英语：）
	+ 飽和模型
	+ 子结构
* 非标准模型
	+ 算术（英语：）
* 结构图（英语：）
	+ 基本图（英语：）
* 分类理论（英语：）
* 完备模型论（英语：）
* 可满足性（英语：）
* 邏輯語義學
* 强度（英语：）
* 真理
	+ 语义理论
	+ 塔尔斯基
	+ 克里普克
* T-模式
* 转移原则（英语：）
* 真理谓词（英语：）
* 真值
* 型
* 超積
* 有效性

 |
|  |
| 可计算性理论 | 
* 邱奇数
* 邱奇-图灵论题
* 递归可枚举集合
* 可计算函数
* 递归集合
* 決定性問題
	+ 可决定性（英语：）
	+ 不可决定性
	+ P
	+ NP
	+ P/NP问题
* 柯氏复杂性
* Λ演算
* 原始递归函数
* 递归
* 递归集合
* 图灵机
* 类型论

 |
|  |
| 其他相关 | 
* 抽象逻辑（英语：）
* 范畴论
* 具象范畴、抽象范畴
* 集合范畴
* 逻辑史
* 数理逻辑
	+ 历史年表（英语：）
* 邏輯主義
* 数学对象
* 数学哲学
* 超任务（英语：）

 |
|  |
|  **数学主题** |

 |

|  |  |  |
| --- | --- | --- |
| 

|  |  |
| --- | --- |
| 规范控制 編輯維基數據鏈接 | 
* BNE: XX4576349
* BNF: cb119793249 (data)
* GND: 4146280-4
* J9U: 987007293933005171
* LCCN: sh85003429
* NDL: 00560863

 |

 |