Overview
Boolean algebra is the mathematical framework for reasoning about logic functions. It operates on binary variables with the operations AND (·), OR (+), and NOT (overbar). The precedence rule is: NOT binds tightest, then AND, then OR. So a⋅b+c means (a⋅b)+c, not a⋅(b+c).
A combinational logic circuit has no internal stored state (no memory); its output depends solely on its current inputs. Boolean algebra describes the behaviour of such circuits and allows us to simplify them.
Basic Identities
Identities Involving Constants
| Name | Identity | Meaning |
|---|
| OR with 0 | a+0=a | OR-ing with FALSE leaves a unchanged |
| AND with 0 | a⋅0=0 | AND-ing with FALSE always gives FALSE |
| OR with 1 | a+1=1 | OR-ing with TRUE always gives TRUE |
| AND with 1 | a⋅1=a | AND-ing with TRUE leaves a unchanged |
Complementation
| Name | Identity | Meaning |
|---|
| Complement | a+aˉ=1 | A variable OR its complement is always TRUE |
| a⋅aˉ=0 | A variable AND its complement is always FALSE |
Idempotence
| Name | Identity | Meaning |
|---|
| a+a=a | OR-ing a variable with itself gives the variable |
| a⋅a=a | AND-ing a variable with itself gives the variable |
Involution (Double Complement)
a=a
Complementing twice returns the original value. This is also why two bubbles in series cancel.
Commutative, Associative, and Distributive Laws
Commutative
a+b=b+a
a⋅b=b⋅a
The order of operands does not matter for AND or OR.
Associative
(a+b)+c=a+(b+c)
(a⋅b)⋅c=a⋅(b⋅c)
Grouping does not matter, so we write a+b+c or a⋅b⋅c without parentheses.
Distributive
Boolean algebra has two distributive laws, and the second one has no analogue in ordinary algebra:
a⋅(b+c)=(a⋅b)+(a⋅c)
a+(b⋅c)=(a+b)⋅(a+c)(NEW: not true in ordinary algebra)
The second law can be verified by truth table or algebraic expansion:
(a+b)⋅(a+c)=a⋅a+a⋅c+b⋅a+b⋅c=a+a⋅c+a⋅b+b⋅c=a+b⋅c
where the last step uses absorption (below).
Absorption Laws
a+(a⋅c)=a
a⋅(a+c)=a
Proof of the first: a+a⋅c=a⋅1+a⋅c=a⋅(1+c)=a⋅1=a.
Proof of the second: a⋅(a+c)=a⋅a+a⋅c=a+a⋅c=a (using idempotence and the first absorption law).
Intuition: in a+a⋅c, if a=1 the output is 1 regardless of c; if a=0 then a⋅c=0 and 0+0=0. So the output is always exactly a.
De Morgan’s Theorem (Preview)
De Morgan’s theorem tells us how to push complements through AND and OR:
a+b=aˉ⋅bˉ
a⋅b=aˉ+bˉ
This is treated in full in the De Morgan’s Theorem note. For now, note its algebraic role: it allows us to transform AND expressions into OR expressions and vice versa.
Worked Simplification Examples
Example 1: a⋅b⋅c+a⋅b⋅cˉ
a⋅b⋅c+a⋅b⋅cˉ=a⋅b⋅(c+cˉ)(factor a⋅b)=a⋅b⋅1(complement: c+cˉ=1)=a⋅b
The two terms differ only in the complementation of c; they combine to eliminate c entirely. This technique, factoring out common literals and applying x+xˉ=1, is the core algebraic simplification method.
Example 2: Show a⋅(aˉ+b)=a⋅b
a⋅(aˉ+b)=a⋅aˉ+a⋅b(distribute a)=0+a⋅b(complement: a⋅aˉ=0)=a⋅b
The term a⋅aˉ vanishes because a variable AND its complement is always 0.
Example 3: Show a+(aˉ⋅b)=a+b
a+(aˉ⋅b)=(a+aˉ)⋅(a+b)(distribute OR over AND)=1⋅(a+b)(complement: a+aˉ=1)=a+b
This uses the “new” distributive law a+(b⋅c)=(a+b)⋅(a+c), which has no parallel in ordinary arithmetic.
Example 4: Simplify x⋅y+y⋅z+x⋅z+x⋅y⋅z
We use the technique of expanding each term to include all variables (by multiplying terms by (v+vˉ)=1 for missing variables), then cancelling:
First, expand every term to include x, y, and z:
- x⋅y=x⋅y⋅(z+zˉ)=x⋅y⋅z+x⋅y⋅zˉ
- y⋅z=(x+xˉ)⋅y⋅z=x⋅y⋅z+xˉ⋅y⋅z
- x⋅z=x⋅(y+yˉ)⋅z=x⋅y⋅z+x⋅yˉ⋅z
- x⋅y⋅z is already fully expanded
Now list all minterms:
x⋅y⋅z (from xy), x⋅y⋅zˉ (from xy), x⋅y⋅z (from yz), xˉ⋅y⋅z (from yz), x⋅y⋅z (from xz), x⋅yˉ⋅z (from xz), x⋅y⋅z (from xyz).
Removing duplicates, the distinct minterms are: x⋅y⋅z, x⋅y⋅zˉ, xˉ⋅y⋅z, x⋅yˉ⋅z.
Group:
x⋅y⋅z+x⋅y⋅zˉ+xˉ⋅y⋅z+x⋅yˉ⋅z
=x⋅y⋅(z+zˉ)+y⋅z⋅(x+xˉ)
=x⋅y+y⋅z
So the original expression simplifies to x⋅y+y⋅z.
Consensus Theorem
The consensus theorem states:
a⋅b+aˉ⋅c+b⋅c=a⋅b+aˉ⋅c
The term b⋅c is the consensus of a⋅b and aˉ⋅c: it is formed by taking the AND of all literals that appear in both terms, excluding the variable and its complement (a and aˉ). The consensus term is redundant and can be added or removed without changing the function.
Proof
a⋅b+aˉ⋅c+b⋅c=a⋅b+aˉ⋅c+b⋅c⋅(a+aˉ)(multiply b⋅c by 1)=a⋅b+aˉ⋅c+a⋅b⋅c+aˉ⋅b⋅c(distribute)=(a⋅b+a⋅b⋅c)+(aˉ⋅c+aˉ⋅b⋅c)(rearrange)=a⋅b⋅(1+c)+aˉ⋅c⋅(1+b)(factor)=a⋅b+aˉ⋅c(since 1+x=1)
The dual of the consensus theorem (swap AND with OR, 0 with 1) gives:
(a+b)⋅(aˉ+c)⋅(b+c)=(a+b)⋅(aˉ+c)
The dual can be proven by applying De Morgan’s theorem to both sides of the original, or by a similar algebraic expansion.
Using Consensus: Adding and Eliminating Terms
The theorem works in both directions:
- Elimination: If you see a⋅b+aˉ⋅c+b⋅c, remove b⋅c to get a⋅b+aˉ⋅c.
- Addition: If you have a⋅b+aˉ⋅c and need to combine it with other terms, you can add b⋅c without changing the function (useful for hazard removal, see Hazard Removal).
Example: Simplify a⋅b+aˉ⋅c+b⋅c+bˉ⋅c+a⋅bˉ.
First, identify consensus terms. The term b⋅c is the consensus of a⋅b and aˉ⋅c, so it can be removed. After removal: a⋅b+aˉ⋅c+bˉ⋅c+a⋅bˉ.
Now examine what remains. The term bˉ⋅c and a⋅bˉ look for consensus with others. But note that aˉ⋅c+bˉ⋅c=aˉ⋅c does not directly give consensus removal. In this case further algebraic inspection (or a K-map) reveals the minimal form.
Example with clear elimination: Simplify a⋅b+aˉ⋅c+b⋅c+bˉ⋅c.
The term b⋅c is consensus of a⋅b and aˉ⋅c (remove it). Check if bˉ⋅c is consensus of any pair: no obvious pair. Result: a⋅b+aˉ⋅c+bˉ⋅c. Further, note aˉ⋅c+bˉ⋅c=(aˉ+bˉ)⋅c, which cannot be simplified further without additional context. The final expression depends on the specific terms.
Summary of Boolean Laws
| Law | OR form | AND form |
|---|
| Identity | a+0=a | a⋅1=a |
| Null | a+1=1 | a⋅0=0 |
| Idempotence | a+a=a | a⋅a=a |
| Complement | a+aˉ=1 | a⋅aˉ=0 |
| Involution | a=a | |
| Commutative | a+b=b+a | a⋅b=b⋅a |
| Associative | (a+b)+c=a+(b+c) | (a⋅b)⋅c=a⋅(b⋅c) |
| Distributive | a+b⋅c=(a+b)⋅(a+c) | a⋅(b+c)=a⋅b+a⋅c |
| Absorption | a+a⋅b=a | a⋅(a+b)=a |
| De Morgan | a+b=aˉ⋅bˉ | a⋅b=aˉ+bˉ |
| Consensus | a⋅b+aˉ⋅c+b⋅c=a⋅b+aˉ⋅c | (a+b)⋅(aˉ+c)⋅(b+c)=(a+b)⋅(aˉ+c) |