布尔代数

George Boole 基本想法

设变量 X,Y,Z,X, Y, Z, \cdots 代表事物的类别(一个事物要么属于这个类别,要么不属于这个类别),有

  • 乘法:XYX Y 表示 XXYY 同时满足
  • 加法:X+YX + Y 表示 XXYY 满足
  • 组合:Z(X+Y)=ZX+ZYZ(X + Y) = ZX + ZY

抽象定义

布尔代数是一个集合 BB,定义二元运算 \vee\wedge,一元运算 aˉ\bar{\phantom{a}},以及特殊元素 0\bm{0}1\bm{1},且对 x,y,zB\forall x, y, z \in B,有

  • 结合律:x(yz)=(xy)zx \vee (y \vee z) = (x \vee y) \vee zx(yz)=(xy)zx \wedge (y \wedge z) = (x \wedge y) \wedge z
  • 交换律:xy=yxx \vee y = y \vee xxy=yxx \wedge y = y \wedge x
  • 分配律:x(yz)=(xy)(xz)x \wedge (y \vee z) = (x \wedge y) \vee (x \wedge z)x(yz)=(xy)(xz)x \vee (y \wedge z) = (x \vee y) \wedge (x \vee z)
  • 同一律:x0=xx \vee \bm{0} = xx1=xx \wedge \bm{1} = x
  • 补律:xxˉ=1x \vee \bar{x} = \bm{1}xxˉ=0x \wedge \bar{x} = \bm{0}

上面的性质蕴含了下面的恒等式:

布尔恒等式

  • 吸收律:x+xy=x,x(x+y)=xx + xy = x, x(x + y) = x
  • 幂等律:x+x=x,xx=xx + x = x, xx = x
  • 支配律:x+1=1,x0=0x + \bm{1} = \bm{1}, x \bm{0} = \bm{0}
  • 双重补律:xˉˉ=x\bar{\bar{x}} = x
  • 德摩根定律:x+y=xˉyˉ\overline{x + y} = \bar{x} \bar{y}xy=xˉ+yˉ\overline{x y} = \bar{x} + \bar{y}

因此布尔代数即为有补的分配格

B=({0,1},+,,aˉ,0,1)B = (\left\lbrace 0, 1 \right\rbrace, +, \cdot , \bar{\phantom{a}}, 0, 1) 是一个布尔代数。

Bn={(x1,,xn)xiB}B^n = \left\lbrace (x_1, \cdots, x_n) \mid x_i \in B \right\rbrace 构成布尔代数,其中记 x=(a1,,an),y=(b1,,bn),ai,biB\bm{x} = (a_1, \cdots, a_n),\, \bm{y} = (b_1, \cdots, b_n),\, a_i, b_i \in B,定义

  • xy=(a1b1,,anbn)\bm{x} \wedge \bm{y} = (a_1 \wedge b_1, \cdots, a_n \wedge b_n)
  • xy=(a1b1,,anbn)\bm{x} \vee \bm{y} = (a_1 \vee b_1, \cdots, a_n \vee b_n)
  • xˉ=(aˉ1,,aˉn)\bar{\bm{x}} = (\bar{a}_1, \cdots, \bar{a}_n)

集合 AA 的幂集 2A2^A 构成布尔代数,即 (P(A),,,,,A)(\mathcal{P}(A), \cap , \cup , \sim, \empty, A) 是一个布尔代数。

B1=({0,1},+,,aˉ,0,1)B_1 = (\left\lbrace 0, 1 \right\rbrace, +, \cdot , \bar{\phantom{a}}, 0, 1) 记为 BB。记 Bn=B××BB_n = B \times \cdots \times B,在其上定义乘积偏序关系 xy\bm{x} \le \bm{y} 当且仅当任意 ii 都有 xiyix_i \le y_i

显然 BnB^n 与含 nn 个元素的集合的幂集代数同构。

有限布尔代数表示定理

LL 是格,LL 中有全下界 0\bm{0},给定元素 a0a \ne \bm{0},若任意 xLx \in L 均有

0xax=a\bm{0} \prec x \preccurlyeq a \to x = a

即不存在 x0Lx \ne \bm{0} \in L 使得 xax \prec a

则称 aaLL 中的原子(atom)。

即原子是覆盖最小元的那些元素。

a,ba, b 是格 LL 的原子,若 aba \ne b,则 ab=0a \wedge b = \bm{0}

flowchart TB
    subgraph 1["(1)"]
        direction TB
        1a((a)) --- 1b((b)) --- 1c((c)) --- 1d((d))
    end
    subgraph 2["(2)"]
        direction TB
        2a((a)) --- 2b((b)) & 2c((c)) & 2d((d)) --- 2e((e))
    end
    subgraph 3["(3)"]
        direction TB
        3a((a)) --- 3b((b)) & 3c((c))
        3c --- 3d((d))
        3b & 3d --- 3e((e))
    end

(1) 中 c 为原子,(2) 中 b, c, d 为原子,(3) 中 b, d 为原子。

有限布尔代数表示定理

任一有限布尔代数 BB 同构于[1] BB 中所有的原子构成的集合 AA 的幂集代数系统 P(A)\mathcal{P}(A)。即

(B,,,aˉ,0,1)(P(A),,,,,A)(B, \wedge, \vee, \bar{\phantom{a}}, \bm{0}, \bm{1}) \cong (\mathcal{P}(A), \cap , \cup , \sim, \empty, A)

证明

A={a1,,an}A = \left\lbrace a_1, \cdots, a_n \right\rbraceBB 中各个原子的结合,要证下面两个结论:

  1. BB 中每个非 0\bm{0} 元素 xix_i 都是其下所有原子 ai1,,aika_{i_1}, \cdots, a_{i_k} 的并
  2. xix_i 的上述并表示唯一

对于第一个结论,记 b=ai1aikb = a_{i_1} \vee \cdots a_{i_k},即证 bxib \preccurlyeq x_{i}xibx_{i} \preccurlyeq b

由于各 aitxia_{i_t} \preccurlyeq x_i,可得前者。对于后者,xyˉ=0    xyx \wedge \bar{y} = \bm{0} \iff x \preccurlyeq y[2]xibˉ=0x_i \wedge \bar{b} = \bm{0} 可得(若 xibˉ0x_i \wedge \bar{b} \ne \bm{0},则有原子 cxic \preccurlyeq x_i,从而 cc 是某 aita_{i_t},但 cbˉc \preccurlyeq \bar{b},矛盾)。

对于第二个结论,设 xi=ai1aik=aj1ajtx_i = a_{i_1} \vee \cdots \vee a_{i_{k}} = a_{j_1} \vee \cdots \vee a_{j_{t}},不妨设 aj1a_{j_1} 不出现在前一种表示中,则

0=aj1(ai1aik)=aj1(aj1ajt)=aj1\begin{aligned} \bm{0} &= a_{j_1} \wedge (a_{i_1} \vee \cdots \vee a_{i_{k}}) \\ &= a_{j_1} \wedge (a_{j_1} \vee \cdots \vee a_{j_{t}}) \\ &= a_{j_1} \end{aligned}

由这两个结论即可构造 BBP(A)\mathcal{P}(A) 的布尔代数同构。


  1. 存在双射使得偏序关系保持。 ↩︎

  2. xyˉ=0    (xyˉ)y=0y=y    (xy)1=xy=y    xyx \wedge \bar{y} = \bm{0} \iff (x \wedge \bar{y}) \vee y = \bm{0} \vee y = y \iff (x \vee y) \wedge \bm{1} = x \vee y = y \iff x \preccurlyeq y ↩︎

无限布尔代数

对于无限布尔代数 2N2^{\N},即可数无穷的零一序列,显然它有无穷多个原子(100,010,001,100\cdots, 010\cdots, 001\cdots, \cdots)。

然而对于其一个子代数,周期序列,就没有原子了。下面详细解释一下(个人理解,迟到三个月的想通):

考虑的是 2N2^{\N} 的所有周期序列构成的子代数 CC,它是子代数的证明略。

注意到对于任意非 0\bm{0} 元素 xx 序列,它都存在(无穷多个)11,不妨设它周期为 TT

容易发现,xx 在两个周期内至少有 2211,总可以构造一个新的非 0\bm{0} 元素 xx',使得其周期为 2T2T,在这个 2T2T 周期中仅保留与 xx22 个周期中某一个 11 重合的位置为 11,其余位置为 00。即 xx' 在它的 2T2T 周期中有且仅有 1111

这样一来,显然有 0xx\bm{0} \prec x' \prec x

因为对于任意元素 xx,总可以找到一个新的元素 xx' 使得 0xx\bm{0} \prec x' \prec x,所以 CC 中不存在原子。

因此可得

任何有限布尔代数基数为 2n2^nnn 为原子的个数。

等势的布尔代数同构。

若设 DnD_nnn 所有正因子及其上的整除关系构成的偏序集。则当且仅当 n=p1pkn = p_1 \cdots p_{k},其中 pip_i 为互不相等的素数时,DnD_n 是布尔代数(也可以说不存在素数 pp 使得 p2np^2 \mid n)。

证明

p2np^2 \mid n,则有正整数 qq 使得 n=p2qn = p^2 q,注意到 pp 也是 DnD_n 中元素,若 DnD_n 是布尔代数,则 pp 有补元 pp' 使得 gcd(p,p)=1\gcd(p, p') = 1lcm(p,p)=n\operatorname{lcm}(p, p') = n,则 pp=np p' = n,即 p=pqp' = pq,从而 gcd(p,p)=p\gcd(p, p') = p,矛盾。

布尔函数

B={0,1},Bn={(x1,,xn)xiB}B = \left\lbrace 0, 1 \right\rbrace,\, B^n = \left\lbrace (x_1, \cdots, x_n) \mid x_i \in B \right\rbrace,则称 f ⁣:BnBf\colon B^n \to Bnn 元布尔函数

nn 元布尔函数的个数为 BBn=22n\left\lvert B^{B^n} \right\rvert = 2^{2^n}

  • 布尔和:(f+g)(x1,,xn)=f(x1,,xn)+g(x1,,xn)(f + g)(x_1, \cdots, x_n) = f(x_1, \cdots, x_n) + g(x_1, \cdots, x_n)
  • 布尔积:(fg)(x1,,xn)=f(x1,,xn)g(x1,,xn)(f \cdot g)(x_1, \cdots, x_n) = f(x_1, \cdots, x_n) \cdot g(x_1, \cdots, x_n)
  • 补函数:fˉ(x1,,xn)=f(x1,,xn)\bar{f}(x_1, \cdots, x_n) = \overline{f(x_1, \cdots, x_n)}

nn 元布尔函数的全体构成一个布尔代数:

  • 布尔和
  • 布尔积
  • 补函数
  • 全取 00 的函数、全取 11 的函数