Boolean Algebra

· · 个人记录

是数电的前导内容。最近在看一些杂七杂八的东西,可能也会更新 \text{Operating System}\text{Machine Learning} 相关。

简单来说 \text{Boolean Algebra} 是建立在 \{0,1\} 上的一类代数,一种应用是通过将数字电路抽象为代数式,并对代数式加以运算从而化简、设计电路。

\text{Boolean Algebra} 中只有三类运算:

当然不得不提到真值表,它是 \text{Boolean Algebra} 中各种结论的基础,但我们根据以上定义能推导出一些二级结论,方便运算。本质上来说,这是对于底层逻辑的抽象。

交换律

a+b = b+a a\times b=b\times a

结合律

(a+b)+c=a+(b+c) (a\times b)\times c=a\times(b\times c)

似乎和 \text{Elementary algebra} 一样。因为在这两条运算律中,并未体现出 \text{Boolean Algebra} 的特性。

在讲分配律之前,让我们来看看 \text{Boolean Algebra} 的特性。

a+0=a \dots (1) \ \ \ \ a\times 1=a\dots(1') \\ a+1=1 \dots (2) \ \ \ \ a\times 0=0\dots(2') \\ a\times a= a \dots (3) \ \ \ \ a + a =a\dots (3') \\ a+(-a)=1 \ \ \ \ a\times(-a)=0

根据真值表易证。我们同时注意到左右的式子似乎存在某种对称性,事实上它确实存在。

一般地,定义一个表达式为

F(x_1,x_2,\dots,x_n,+,\times)

那么其对偶为

F^D(x_1,x_2,\dots,x_n,+,\times)=F(x_1,x_2,\dots,x_n,\times,+)

即在 不改变原有运算顺序 的情况下交换 +\times

自然地,有 F^D = G^DF=G 的充要条件。运用好这一性质可简化很多证明。

分配律

a(b+c)=ab+ac (x+y)(x+z)=x+yz\dots (4)

对于 (4) 来说,它展现了一部分特性。并且 (4) 其实是一般分配律的对偶。

证明

\begin{aligned} LHS &=x\times x+x\times z+x\times y+y\times z \\ &=x\times(1+y+z)+yz \\ &=x+yz \end{aligned}

对于 (4) 而言,它还存在更一般的形式,读者可以尝试证明

(x+y_1)(x+y_2)\dots(x+y_n)=x+y_1y_2\dots y_n

DeMorgan's Law

F(x_1,x_2,\dots,x_n,+,\times)=F(-x_1,-x_2,\dots,-x_n,\times,+)

这与对偶的形式十分类似。联想到了什么?是不是有点像数学中的逆命题与反命题?\text{Boolean Algebra} 的初衷本就是用来抽象化逻辑问题。