Boolean Algebras

How many ways can you combine true/false statements? Is there a single algebraic structure governing all of them? George Boole asked this question in the 1840s. It turns out to have a clean lattice-theoretic answer. This answer unifies logic, set theory, and circuit design. A Boolean algebra is a distributive lattice in which every element has a unique complement. It is the abstract skeleton shared by the algebra of sets, the algebra of propositions, and the algebra of switching circuits. The subset lattice 2n2^n, ordered by inclusion, is the prototypical finite example. Remarkably, every finite Boolean algebra is isomorphic to one of these. The importance of this structure lies in its universality. Once you know a poset is a finite Boolean algebra, you immediately know several things for free. You know its size, its rank function, its number of atoms. You also know its automorphism group and its Möbius function. This economy of thought explains why Boolean algebras appear everywhere. They arise wherever a "yes/no" structure needs well-behaved union, intersection, and negation. Examples include digital logic gates, set-theoretic models, database query languages, and the combinatorics of subsets. The big picture is a bridge between two worlds. On one side sits an axiomatic algebraic object. This is a complemented distributive lattice, defined purely by equations and order relations. On the other side sits the concrete, countable family of subset lattices 2n2^n. The representation theorem for finite Boolean algebras proves these worlds coincide. Abstraction buys nothing new in the finite case. But it clarifies why the subset lattice has the properties it has. It also prepares the ground for the infinite theory. This is Stone's representation of Boolean algebras as algebras of clopen sets. This article gives the precise definition of a Boolean algebra. It proves the core structural facts: uniqueness of complements, De Morgan's laws, the atom decomposition. It states and proves the finite representation theorem. It works through concrete examples showing both the power and the necessary hypotheses of the theory. Along the way it foreshadows two further directions. One is the Möbius function of the subset lattice, which encodes inclusion–exclusion. The other is the use of 2n2^n in the geometry of error-correcting codes.

Key takeaways
  • A Boolean algebra is a distributive lattice with 00, 11, and a complement a′a' for every element satisfying a∨a′=1a \vee a' = 1, a∧a′=0a \wedge a' = 0.
  • In a distributive lattice, complements — if they exist — are automatically unique, so complementation is a well-defined operation.
  • The subset lattice 2n=(P([n]),⊆)2^n = (\mathcal{P}([n]), \subseteq) with ∪,∩,c\cup, \cap, {}^c is the archetypal Boolean algebra, of size 2n2^n.
  • De Morgan's laws (a∨b)′=a′∧b′(a\vee b)' = a'\wedge b' and (a∧b)′=a′∨b′(a \wedge b)' = a' \vee b' hold in every Boolean algebra, proved purely from the axioms.
  • Every finite Boolean algebra is isomorphic to 2n2^n where nn is its number of atoms — an exact structural classification.
  • Key idea: distributivity plus complementation forces so much rigidity that finite Boolean algebras have no hidden variety at all — they are all just subset lattices in disguise.

Where this lives today

Boolean algebras are the mathematical substrate of digital circuit design: every combinational logic circuit built from AND, OR, and NOT gates is literally an expression in a Boolean algebra, and circuit minimization (fewer gates, less area, lower power) is the problem of finding a shortest equivalent Boolean expression — solved practically by Karnaugh maps and the Quine–McCluskey algorithm, both of which exploit the atom/subset structure of 2n2^n directly. In probability and measure theory, the algebra of events in a finite sample space is exactly a finite Boolean algebra 2n2^n, with atoms corresponding to elementary outcomes; this is the setting where the Möbius function of the subset lattice gives the precise combinatorial engine behind inclusion–exclusion formulas for probabilities of unions of events. In coding theory, the hypercube {0,1}n\{0,1\}^n underlying 2n2^n (via the bijection between subsets and characteristic vectors) is the ambient space for binary codes; the lattice structure and Hamming-distance geometry of 2n2^n are foundational to the theory of error-correcting codes, where codewords are chosen to be maximally "spread out" atoms/subsets of this cube. In database theory and query optimization, relational algebra predicates form Boolean algebras of conditions, and query simplification (pushing selections, combining filters) is Boolean-algebra simplification in disguise. In set-theoretic topology, Stone's theorem makes Boolean algebras (even infinite ones) equivalent to compact totally disconnected Hausdorff spaces, connecting pure algebra to point-set topology and to model theory via ultrafilters. In cryptography, S-boxes and Boolean functions on {0,1}n\{0,1\}^n (studied via their algebraic normal form and nonlinearity) are functions on the very lattice 2n2^n studied here, and their combinatorial properties determine resistance to linear and differential cryptanalysis.

:::quiz[In 2[4]2^{[4]}, how many atoms does the element {1,3}\{1,3\} lie above (i.e. how many atoms are ≤{1,3}\le \{1,3\})?]

  • 4
  • 1
  • 3
  • 2 ✓

Ask the tutor: How does the Möbius function of 2n2^n turn this lattice structure into the inclusion–exclusion formula?

DefinitionBoolean Algebra

A Boolean algebra is a tuple (B,∨,∧,′,0,1)(B, \vee, \wedge, {}', 0, 1) such that: 1. (B,∨,∧)(B, \vee, \wedge) is a lattice: ∨\vee and ∧\wedge are commutative, associative, idempotent binary operations satisfying the absorption laws a∨(a∧b)=aa \vee (a \wedge b) = a and a∧(a∨b)=aa \wedge (a \vee b) = a for all a,b∈Ba,b \in B. 2. The lattice is bounded: there exist elements 0,1∈B0, 1 \in B with a∨0=aa \vee 0 = a and a∧1=aa \wedge 1 = a for all a∈Ba \in B. 3. The lattice is distributive:

a∧(b∨c)=(a∧b)∨(a∧c)for all a,b,c∈Ba \wedge (b \vee c) = (a \wedge b) \vee (a \wedge c) \qquad \text{for all } a,b,c \in B

(equivalently, by the standard duality in distributive lattices, a∨(b∧c)=(a∨b)∧(a∨c)a \vee (b \wedge c) = (a \vee b) \wedge (a \vee c) holds for all a,b,ca,b,c). 4. Every element a∈Ba \in B has a complement: an element a′∈Ba' \in B with

a∨a′=1,a∧a′=0.a \vee a' = 1, \qquad a \wedge a' = 0.

As always in lattice theory, a≤ba \le b means a∧b=aa \wedge b = a, equivalently a∨b=ba \vee b = b, and ∨,∧\vee, \wedge realize least upper bound and greatest lower bound with respect to ≤\le. The finite Boolean algebra of central interest here is 2[n]:=(P([n]), ∪, ∩, c, ∅, [n])2^{[n]} := \big(\mathcal P([n]),\ \cup,\ \cap,\ {}^c,\ \varnothing,\ [n]\big), where [n]={1,…,n}[n] = \{1,\dots,n\}, ordered by set inclusion ⊆\subseteq.

Intuition

Think of a Boolean algebra as "the algebra of yes/no answers to a fixed list of questions." If you have nn independent binary questions (switches, propositions, bits), then a state of the system is a subset of the questions answered "yes" — an element of P([n])\mathcal P([n]). Combining states with "or," "and," and "not" is exactly ∪\cup, ∩\cap, and complementation. The lattice order A⊆BA \subseteq B says "everything true in AA is true in BB" — a natural notion of logical strength. The subset lattice 2n2^n has a beautiful geometric picture: it is the vertex set of the nn-dimensional hypercube, with edges joining sets differing in one element, and rank equal to ∣A∣|A|. The bottom ∅\varnothing and the top [n][n] are the unique minimum and maximum, the singletons {i}\{i\} are the atoms (minimal nonzero elements), and every element is a join of the atoms below it — this join decomposition is exactly the statement that a finite Boolean algebra is determined by which atoms lie below each element, i.e., by a subset of the atom set.

Figure
The hypercube 232^3: the Boolean lattice of subsets of {1,2,3}\{1,2,3\}, ranked by ∣A∣|A|
∅ (rank 0) {1} {2} {3} {1,2} {1,3} {2,3} {1,2,3} (rank 3, = 1)

Central results

LemmaUniqueness of complements in a distributive lattice

Let LL be a bounded distributive lattice with 00 and 11, and let a∈La \in L. If b,c∈Lb, c \in L both satisfy

a∨b=1, a∧b=0anda∨c=1, a∧c=0,a \vee b = 1,\ a \wedge b = 0 \qquad \text{and} \qquad a \vee c = 1,\ a \wedge c = 0,

then b=cb = c.

Proof

This is the standard uniqueness argument for complements, using only distributivity and the lattice axioms — no completeness or finiteness is needed. Compute:

b=b∧1=b∧(a∨c)=(b∧a)∨(b∧c)b = b \wedge 1 = b \wedge (a \vee c) = (b \wedge a) \vee (b \wedge c)

by distributivity. Since a∧b=0a \wedge b = 0 (commutativity of ∧\wedge gives b∧a=0b \wedge a = 0), this becomes

b=0∨(b∧c)=b∧c.b = 0 \vee (b \wedge c) = b \wedge c.

Hence b≤cb \le c (since b∧c=bb \wedge c = b is exactly the order-theoretic definition of b≤cb \le c). By the symmetric computation swapping the roles of bb and cc (using a∨b=1a \vee b = 1 and a∧c=0a \wedge c = 0),

c=c∧1=c∧(a∨b)=(c∧a)∨(c∧b)=0∨(c∧b)=c∧b,c = c \wedge 1 = c \wedge (a \vee b) = (c \wedge a) \vee (c \wedge b) = 0 \vee (c \wedge b) = c \wedge b,

so c≤bc \le b. By antisymmetry of the partial order ≤\le on a lattice, b=cb = c. ■\blacksquare

∎

This lemma is why axiom (4) in the definition can legitimately introduce the function a↦a′a \mapsto a': complements are forced to be unique the instant distributivity holds, so "the" complement is well-defined notation, not an extra choice.

TheoremDe Morgan's Laws

Let (B,∨,∧,′,0,1)(B, \vee, \wedge, {}', 0, 1) be a Boolean algebra. For all a,b∈Ba, b \in B:

(a∨b)′=a′∧b′,(a∧b)′=a′∨b′.(a \vee b)' = a' \wedge b', \qquad (a \wedge b)' = a' \vee b'.

Moreover 0′=10' = 1, 1′=01' = 0, and (a′)′=a(a')' = a for every a∈Ba \in B.

Proof

We prove (a∨b)′=a′∧b′(a \vee b)' = a' \wedge b'; the second identity is dual (obtained by exchanging the roles of ∨\vee and ∧\wedge throughout, which is legitimate because the Boolean algebra axioms are self-dual under swapping ∨↔∧\vee \leftrightarrow \wedge and 0↔10 \leftrightarrow 1). By the uniqueness lemma just proved, to show a′∧b′a' \wedge b' is the complement of a∨ba \vee b it suffices to verify the two defining equations

(a∨b)∨(a′∧b′)=1,(a∨b)∧(a′∧b′)=0.(a \vee b) \vee (a' \wedge b') = 1, \qquad (a \vee b) \wedge (a' \wedge b') = 0.

First equation. Using distributivity (axiom 3) twice:

(a∨b)∨(a′∧b′)=[(a∨b)∨a′]∧[(a∨b)∨b′].(a \vee b) \vee (a' \wedge b') = \big[(a\vee b) \vee a'\big] \wedge \big[(a \vee b) \vee b'\big].

Now (a∨b)∨a′=(a∨a′)∨b=1∨b=1(a \vee b) \vee a' = (a \vee a') \vee b = 1 \vee b = 1, using associativity/commutativity of ∨\vee, the complement axiom a∨a′=1a \vee a'=1, and 1∨b=11 \vee b = 1 (which follows from absorption: 1=a∨a′≤1∨b1 = a\vee a' \le 1 \vee b, and 11 is the top element so 1∨b≤11 \vee b \le 1 too, giving equality — or directly, a∧1=aa \wedge 1 = a for all aa forces 11 maximal, hence 1∨b=11 \vee b=1). Similarly (a∨b)∨b′=1(a \vee b) \vee b' = 1. So the right side is 1∧1=11 \wedge 1 = 1, proving the first equation.

Second equation. Using distributivity of ∧\wedge over ∨\vee:

(a∨b)∧(a′∧b′)=[a∧(a′∧b′)]∨[b∧(a′∧b′)].(a \vee b) \wedge (a' \wedge b') = \big[a \wedge (a' \wedge b')\big] \vee \big[b \wedge (a' \wedge b')\big].

Now a∧(a′∧b′)=(a∧a′)∧b′=0∧b′=0a \wedge (a' \wedge b') = (a \wedge a') \wedge b' = 0 \wedge b' = 0 (using 0∧x=00 \wedge x = 0, which holds since 0∧x≤00 \wedge x \le 0 automatically and 00 is the bottom element). Symmetrically b∧(a′∧b′)=(b∧b′)∧a′=0∧a′=0b \wedge (a' \wedge b') = (b \wedge b')\wedge a' = 0 \wedge a' = 0. So the right side is 0∨0=00 \vee 0 = 0, proving the second equation. By the uniqueness lemma applied to the element a∨ba \vee b, since a′∧b′a' \wedge b' satisfies both defining complement equations, a′∧b′=(a∨b)′a' \wedge b' = (a\vee b)'. This proves the first De Morgan law; the dual argument (swap ∨,∧\vee, \wedge and 0,10,1 throughout) gives (a∧b)′=a′∨b′(a \wedge b)' = a' \vee b'.

Remaining identities. 0′=10' = 1 and 1′=01' = 0 follow because 0∨1=10 \vee 1 = 1 and 0∧1=00 \wedge 1 = 0 automatically hold (as 00 is bottom, 11 is top), so 11 satisfies the defining equations for the complement of 00; by uniqueness 0′=10' = 1, and dually 1′=01'=0. For (a′)′=a(a')' = a: the complement axioms for a′a' read a′∨a=1a' \vee a = 1 and a′∧a=0a' \wedge a = 0 (commutativity), which are exactly the defining equations that make aa a complement of a′a'. By the uniqueness lemma applied to the element a′a', its complement is unique, and aa satisfies the required equations, so (a′)′=a(a')' = a. ■\blacksquare

∎
CorollaryOrder-reversal of complementation

In any Boolean algebra BB, for all a,b∈Ba, b \in B: a≤ba \le b if and only if b′≤a′b' \le a'.

Proof

Suppose a≤ba \le b, i.e. a∨b=ba \vee b = b. Apply complementation (a well-defined operation by the uniqueness lemma) and De Morgan's law: b′=(a∨b)′=a′∧b′b' = (a \vee b)' = a' \wedge b', which by definition of ≤\le means b′≤a′b' \le a'. Conversely if b′≤a′b' \le a', the forward direction (applied to b′≤a′b' \le a', using (a′)′=a(a')' = a and (b′)′=b(b')'=b from the previous theorem) gives (a′)′≤(b′)′(a')' \le (b')', i.e. a≤ba \le b. ■\blacksquare

∎
TheoremStructure of finite Boolean algebras

Let BB be a finite Boolean algebra with at least two elements. Let A=A(B)A = A(B) be the set of atoms of BB (elements a∈Ba \in B with a≠0a \neq 0 and no x∈Bx \in B satisfying 0<x<a0 < x < a), and let n=∣A(B)∣n = |A(B)|. Then: 1. Every nonzero element b∈Bb \in B is the join of the atoms below it: b=⋁{a∈A(B):a≤b}b = \bigvee \{a \in A(B) : a \le b\}, and this expression is unique. 2. The map φ:B→P(A(B))\varphi : B \to \mathcal P(A(B)) defined by φ(b)={a∈A(B):a≤b}\varphi(b) = \{a \in A(B) : a \le b\} is an isomorphism of Boolean algebras onto (P(A(B)),∪,∩,c,∅,A(B))\big(\mathcal P(A(B)), \cup, \cap, {}^c, \varnothing, A(B)\big). 3. Consequently B≅2nB \cong 2^n and ∣B∣=2n|B| = 2^n.

Proof

The proof combines an existence argument (every element is an atom-join), a uniqueness argument, and a verification that the resulting bijection is a lattice isomorphism respecting complements.

Step 1: Atoms exist below every nonzero element, and finiteness gives a decomposition. Fix b∈Bb \in B, b≠0b \neq 0. Consider the set S={x∈B:0<x≤b}S = \{x \in B : 0 < x \le b\}; it is nonempty since b∈Sb \in S. Because BB is finite, SS has a minimal element a1a_1 under ≤\le (any nonempty finite poset has minimal elements). Minimality of a1a_1 in SS means: there is no xx with 0<x<a10 < x < a_1 and x≤bx \le b; but if there were any xx with 0<x<a10 < x < a_1 at all (not requiring x≤bx \le b), then x≤a1≤bx \le a_1 \le b gives x∈Sx \in S with x<a1x < a_1, contradicting minimality of a1a_1 in SS. So no such xx exists, i.e. a1a_1 is an atom of BB, and a1≤ba_1 \le b. Now argue by strong induction on ∣B∣|B| (finiteness makes this well-founded) that bb is a join of atoms below it. If bb is itself an atom, b=⋁{b}b = \bigvee\{b\} and we are done. Otherwise, having found atom a1≤ba_1 \le b with a1≠ba_1 \ne b, we use distributivity to "peel off" a1a_1: define b1:=b∧a1′b_1 := b \wedge a_1'. We claim b=a1∨b1b = a_1 \vee b_1 and a1∧b1=0a_1 \wedge b_1 = 0, and that the atoms ≤b\le b other than possibly a1a_1 itself are exactly the atoms ≤b1\le b_1, together with a1≤ba_1 \le b. Indeed, a1∨b1=a1∨(b∧a1′)=(a1∨b)∧(a1∨a1′)=(a1∨b)∧1=a1∨b=ba_1 \vee b_1 = a_1 \vee (b \wedge a_1') = (a_1 \vee b) \wedge (a_1 \vee a_1') = (a_1 \vee b) \wedge 1 = a_1 \vee b = b, the last equality because a1≤ba_1 \le b. Also a1∧b1=a1∧b∧a1′=(a1∧a1′)∧b=0∧b=0a_1 \wedge b_1 = a_1 \wedge b \wedge a_1' = (a_1 \wedge a_1') \wedge b = 0 \wedge b = 0. Since a1≠0a_1 \ne 0 and b1∧a1=0b_1 \wedge a_1 = 0, and b1≤bb_1 \le b with b1≠bb_1 \ne b (else a1≤b1a_1 \le b_1 forces a1=a1∧b1=0a_1 = a_1 \wedge b_1 = 0, contradiction), b1b_1 is a strictly smaller element than bb in the finite lattice BB (or b1=0b_1=0). If b1=0b_1 = 0 then b=a1b = a_1, an atom, done. Otherwise, by the inductive hypothesis applied to b1b_1 (which lies in the strictly smaller "world" of elements ≤b\le b, well-founded by finiteness), b1b_1 is the join of the atoms below it, and every such atom aa satisfies a≤b1≤ba \le b_1 \le b so is an atom below bb, distinct from a1a_1 since a∧a1≤b1∧a1=0<aa \wedge a_1 \le b_1 \wedge a_1 = 0 < a so a≠a1a \ne a_1 (as aa is an atom, a∧a1=0a \wedge a_1=0 forces a≠a1a\ne a_1, else a∧a1=a≠0a \wedge a_1 = a \ne 0). Hence b=a1∨b1=a1∨⋁{atoms≤b1}b = a_1 \vee b_1 = a_1 \vee \bigvee\{\text{atoms} \le b_1\}, and every atom appearing is ≤b\le b. Any atom a≤ba \le b with a≠a1a\ne a_1 satisfies a∧a1=0a \wedge a_1=0 (distinct atoms in any lattice meet in 00, since an atom has no elements strictly between 00 and itself, so a∧a1<aa \wedge a_1 < a forces a∧a1=0a\wedge a_1 = 0 when a≠a1a \ne a_1), hence a=a∧b=a∧(a1∨b1)=(a∧a1)∨(a∧b1)=a∧b1≤b1a = a \wedge b = a \wedge(a_1 \vee b_1) = (a\wedge a_1)\vee(a \wedge b_1) = a \wedge b_1 \le b_1, so aa is counted among the atoms below b1b_1. This shows bb is exactly the join of all atoms ≤b\le b, establishing existence.

Step 2: Uniqueness of the atom-join decomposition, and injectivity of φ\varphi. Suppose b=⋁a∈Tab = \bigvee_{a \in T} a for some set TT of atoms. We show T={a∈A(B):a≤b}=:φ(b)T = \{a \in A(B): a \le b\} =: \varphi(b), which gives uniqueness. Certainly every a∈Ta \in T satisfies a≤ba \le b (join is an upper bound), so T⊆φ(b)T \subseteq \varphi(b). Conversely suppose a0a_0 is an atom with a0≤ba_0 \le b but a0∉Ta_0 \notin T. For each a∈Ta \in T, a0≠aa_0 \ne a are distinct atoms so a0∧a=0a_0 \wedge a = 0 as noted above. By distributivity extended to finite joins (an easy induction on ∣T∣|T| from the binary distributive law),

a0=a0∧b=a0∧⋁a∈Ta=⋁a∈T(a0∧a)=⋁a∈T0=0,a_0 = a_0 \wedge b = a_0 \wedge \bigvee_{a \in T} a = \bigvee_{a\in T} (a_0 \wedge a) = \bigvee_{a \in T} 0 = 0,

contradicting that a0≠0a_0 \ne 0 is an atom. So no such a0a_0 exists, giving φ(b)⊆T\varphi(b) \subseteq T, hence T=φ(b)T = \varphi(b). This proves uniqueness in part 1, and shows in particular that if φ(b)=φ(c)\varphi(b) = \varphi(c) then, applying Step 1's existence decomposition to both, b=⋁φ(b)=⋁φ(c)=cb = \bigvee \varphi(b) = \bigvee\varphi(c) = c. So φ\varphi is injective.

Step 3: φ\varphi is surjective. Given any T⊆A(B)T \subseteq A(B), if T=∅T = \varnothing set b=0b = 0, and φ(0)=∅\varphi(0) = \varnothing since no atom is ≤0\le 0 (atoms are nonzero, and a≤0a \le 0 forces a=a∧0=0a = a\wedge 0 = 0). If T≠∅T \ne \varnothing, set b=⋁a∈Tab = \bigvee_{a\in T} a (a finite join in the finite lattice BB, hence well-defined and lying in BB). By Step 2's uniqueness argument applied to this very bb, φ(b)=T\varphi(b) = T. So φ\varphi is surjective, hence a bijection B↔P(A(B))B \leftrightarrow \mathcal P(A(B)).

Step 4: φ\varphi is an isomorphism of the algebraic structure. We must check φ\varphi respects ∨,∧,′,0,1\vee, \wedge, {}', 0, 1. Join: For b,c∈Bb, c \in B, φ(b∨c)=φ(b)∪φ(c)\varphi(b \vee c) = \varphi(b) \cup \varphi(c). Indeed, an atom a≤b∨ca \le b \vee c iff a∈φ(b)∪φ(c)a \in \varphi(b)\cup \varphi(c): if a≤ba \le b or a≤ca \le c then clearly a≤b∨ca \le b \vee c (upper bound property), giving ⊇\supseteq. Conversely if a≤b∨ca \le b\vee c, write b∨c=⋁(φ(b)∪φ(c))b \vee c = \bigvee(\varphi(b)\cup\varphi(c)) by Step 1 applied to both bb and cc and the fact that a join of joins is the join of the union (associativity of ∨\vee); Step 2's uniqueness (applied to b∨cb\vee c, whose atom-set below it is by definition φ(b∨c)\varphi(b\vee c), matched against the explicit join ⋁(φ(b)∪φ(c))\bigvee(\varphi(b)\cup\varphi(c))) forces φ(b∨c)=φ(b)∪φ(c)\varphi(b\vee c) = \varphi(b)\cup\varphi(c). Meet: For b,c∈Bb,c\in B, an atom a≤b∧ca \le b \wedge c iff a≤ba \le b and a≤ca \le c (standard property of meet as greatest lower bound: a≤b∧ca \le b\wedge c iff a≤ba\le b and a≤ca \le c, for a≤b∧c⇒a∧b=a∧(b∧c)∧b=a∧(b∧c)=aa \le b\wedge c \Rightarrow a\wedge b = a \wedge(b\wedge c)\wedge b=a\wedge (b\wedge c)=a so a≤ba\le b, similarly a≤ca\le c; conversely a∧b=a,a∧c=a⇒a∧(b∧c)=(a∧b)∧c=a∧c=aa\wedge b=a,a\wedge c=a \Rightarrow a\wedge(b\wedge c) = (a\wedge b)\wedge c=a\wedge c=a). Hence φ(b∧c)=φ(b)∩φ(c)\varphi(b\wedge c) = \varphi(b)\cap\varphi(c). Bounds: φ(0)=∅\varphi(0) = \varnothing as shown; φ(1)=A(B)\varphi(1) = A(B) since every atom satisfies a≤1a \le 1 (as 11 is the top element, a∧1=aa \wedge 1 = a for all aa). Complement: We must show φ(b′)=φ(b)c=A(B)∖φ(b)\varphi(b') = \varphi(b)^c = A(B)\setminus \varphi(b). First, φ(b)∩φ(b′)=φ(b∧b′)=φ(0)=∅\varphi(b) \cap \varphi(b') = \varphi(b\wedge b') = \varphi(0) = \varnothing, so φ(b′)\varphi(b') and φ(b)\varphi(b) are disjoint subsets of A(B)A(B). Second, φ(b)∪φ(b′)=φ(b∨b′)=φ(1)=A(B)\varphi(b)\cup \varphi(b') = \varphi(b \vee b') = \varphi(1) = A(B), so together they cover A(B)A(B). A pair of disjoint subsets of a finite set covering it are complementary, so φ(b′)=A(B)∖φ(b)=φ(b)c\varphi(b') = A(B)\setminus\varphi(b) = \varphi(b)^c. Since φ\varphi is a bijection preserving ∨,∧,′,0,1\vee,\wedge,{}',0,1, it is an isomorphism of Boolean algebras B≅P(A(B))B \cong \mathcal P(A(B)). Labeling the nn atoms a1,…,ana_1,\dots,a_n gives an evident further isomorphism P(A(B))≅P([n])=2[n]\mathcal P(A(B)) \cong \mathcal P([n]) = 2^{[n]} (send ai↦ia_i \mapsto i), so B≅2nB \cong 2^n, and in particular ∣B∣=∣P([n])∣=2n|B| = |\mathcal P([n])| = 2^n. ■\blacksquare

∎

Worked examples

Example 1: A Boolean algebra hiding inside divisors, and computing its atoms explicitly. Let D30={1,2,3,5,6,10,15,30}D_{30} = \{1, 2, 3, 5, 6, 10, 15, 30\}, the set of positive divisors of 30=2⋅3⋅530 = 2\cdot 3\cdot 5, ordered by divisibility: a≤ba \le b iff a∣ba \mid b. Define a∨b=lcm⁡(a,b)a \vee b = \operatorname{lcm}(a,b), a∧b=gcd⁡(a,b)a \wedge b = \gcd(a,b), 0=10 = 1, 1=301 = 30 (the ring-theoretic 11 and the top lattice element 3030 are different things — a standard notational clash that must be tracked carefully). This is a lattice (lcm/gcd are the join/meet with respect to divisibility), it is distributive (a classical fact: gcd⁡(a,lcm⁡(b,c))=lcm⁡(gcd⁡(a,b),gcd⁡(a,c))\gcd(a,\operatorname{lcm}(b,c)) = \operatorname{lcm}(\gcd(a,b),\gcd(a,c)) for integers, which one checks prime-by-prime using min⁡(x,max⁡(y,z))=max⁡(min⁡(x,y),min⁡(x,z))\min(x,\max(y,z)) = \max(\min(x,y),\min(x,z)) for exponents — the same identity that makes 2n2^n distributive), and every element d∣30d\mid 30 has a complement d′=30/dd' = 30/d, since lcm⁡(d,30/d)=30\operatorname{lcm}(d, 30/d) = 30 and gcd⁡(d,30/d)=1\gcd(d,30/d)=1 exactly because 3030 is squarefree (each prime 2,3,52,3,5 divides exactly one of d,30/dd, 30/d). Let's find the atoms and verify the representation theorem concretely. The atoms of D30D_{30} are the elements covering 11: these are the primes dividing 3030, namely 2,3,52, 3, 5 — so n=3n = 3 atoms, and the theorem predicts D30≅23D_{30} \cong 2^3, i.e. ∣D30∣=8|D_{30}| = 8, which matches ∣D30∣=8|D_{30}| = 8 exactly. Check the isomorphism explicitly via φ(d)={p∈{2,3,5}:p∣d}\varphi(d) = \{p \in \{2,3,5\} : p \mid d\}:

φ(1)=∅,φ(2)={2},φ(3)={3},φ(5)={5},\varphi(1) = \varnothing,\quad \varphi(2)=\{2\},\quad \varphi(3)=\{3\},\quad \varphi(5)=\{5\},
φ(6)={2,3},φ(10)={2,5},φ(15)={3,5},φ(30)={2,3,5}.\varphi(6)=\{2,3\},\quad \varphi(10)=\{2,5\},\quad \varphi(15)=\{3,5\},\quad \varphi(30)=\{2,3,5\}.

This is manifestly a bijection D30↔P({2,3,5})D_{30}\leftrightarrow \mathcal P(\{2,3,5\}), and one checks directly, e.g., φ(6∨10)=φ(lcm⁡(6,10))=φ(30)={2,3,5}\varphi(6 \vee 10) = \varphi(\operatorname{lcm}(6,10)) = \varphi(30) = \{2,3,5\}, matching φ(6)∪φ(10)={2,3}∪{2,5}={2,3,5}\varphi(6)\cup\varphi(10) = \{2,3\}\cup\{2,5\} = \{2,3,5\}. Also 6′=30/6=56' = 30/6 = 5, and indeed φ(5)={5}={2,3,5}∖{2,3}=φ(6)c\varphi(5) = \{5\} = \{2,3,5\}\setminus\{2,3\} = \varphi(6)^c, confirming complementation matches set-complement under φ\varphi. This example shows the abstract theorem is not vacuous: a genuinely different-looking concrete construction (divisor lattice of a squarefree number) is forced by the theorem to be a relabeled copy of 232^3.

Example 2: Using the representation theorem to count and to compute an inclusion–exclusion-flavored sum. Consider B=2[5]B = 2^{[5]}, the Boolean algebra of subsets of {1,2,3,4,5}\{1,2,3,4,5\}, and let b={1,2,4}∈Bb = \{1,2,4\} \in B. We use the machinery above to compute two things: (a) the number of elements of BB lying between 00 and bb (i.e. ∣{x∈B:x≤b}∣|\{x \in B: x \le b\}|), and (b) b′b' directly via the atom decomposition, cross-checked against ordinary set complement. (a) By Step 1 of the theorem, an element x≤bx \le b is precisely a join of some subset of the atoms below bb. The atoms of 2[5]2^{[5]} are the five singletons {1},…,{5}\{1\},\dots,\{5\}, and the atoms below b={1,2,4}b=\{1,2,4\} are {1},{2},{4}\{1\},\{2\},\{4\} — exactly 33 atoms, since bb has 33 elements. By the bijection φ\varphi, the elements x≤bx \le b correspond exactly to subsets TT of these 33 atoms, and there are 23=82^3 = 8 such subsets. So there are 88 elements of 2[5]2^{[5]} below bb — matching the direct combinatorial fact that the number of subsets of a 33-element set bb is 2∣b∣=23=82^{|b|} = 2^3=8, confirming the abstract count agrees with elementary counting. (b) The complement is computed two ways to check consistency. Directly, b′=[5]∖b={3,5}b' = [5]\setminus b = \{3,5\}. Via the theorem's proof: φ(b)={{1},{2},{4}}\varphi(b) = \{\{1\},\{2\},\{4\}\} as a subset of the 55-element atom set A={{1},{2},{3},{4},{5}}A = \{\{1\},\{2\},\{3\},\{4\},\{5\}\}; then φ(b′)=A∖φ(b)={{3},{5}}\varphi(b') = A \setminus \varphi(b) = \{\{3\},\{5\}\}, and taking the join of these atoms gives b′={3}∪{5}={3,5}b' = \{3\}\cup\{5\} = \{3,5\} — matching the direct computation. This double-check illustrates precisely why the isomorphism φ\varphi in the theorem is not merely a bijection of sizes but a genuine structural translation: complementation in the abstract lattice and complementation of atom-subsets are the same operation viewed through φ\varphi.

CounterexampleDropping distributivity: complements exist but are not unique

The theorem's uniqueness-of-complement lemma, and hence the entire finite representation theorem, relies essentially on distributivity. Here is a bounded, complemented lattice that is not distributive, in which some element has more than one complement — so it fails to be a Boolean algebra, and indeed fails to satisfy the representation theorem's conclusion in the most direct way (its complement function is not even well-defined). Let M3M_3 be the diamond lattice: elements {0,x,y,z,1}\{0, x, y, z, 1\} with 0<x,y,z<10 < x,y,z < 1 and x,y,zx,y,z pairwise incomparable (this is the smallest modular non-distributive lattice, sometimes called the diamond). Its Hasse diagram has 00 at bottom, 11 at top, and x,y,zx,y,z all at the middle level, each covering 00 and covered by 11. Define ∨\vee and ∧\wedge the only way the diagram allows: a∨b=1a \vee b = 1 and a∧b=0a\wedge b = 0 for any two distinct elements among x,y,zx,y,z; joins/meets with 0,10,1 behave as expected (a∨0=aa\vee 0=a, a∧1=aa\wedge 1=a, a∨1=1a\vee1=1, a∧0=0a\wedge0=0). It is bounded and complemented. Check: x∨y=1x \vee y = 1 and x∧y=0x \wedge y = 0, so yy is a complement of xx. But equally x∨z=1x \vee z = 1 and x∧z=0x \wedge z = 0, so zz is also a complement of xx. Since y≠zy \ne z, complements in M3M_3 are not unique — the exact failure the uniqueness lemma rules out for distributive lattices. It is not distributive. Test the distributive law with a=x, b=y, c=za=x,\ b=y,\ c=z:

x∧(y∨z)=x∧1=x,x \wedge (y \vee z) = x \wedge 1 = x,
(x∧y)∨(x∧z)=0∨0=0.(x\wedge y)\vee(x\wedge z) = 0 \vee 0 = 0.

Since x≠0x \ne 0, the distributive law fails for this triple, confirming M3M_3 is not a distributive lattice. Consequence. Because distributivity fails, the uniqueness lemma's proof breaks down at the very first step: the computation b=b∧(a∨c)=(b∧a)∨(b∧c)b = b\wedge(a\vee c) = (b\wedge a)\vee(b\wedge c) used distributivity essentially, and indeed here it produces two genuinely different complements y≠zy \ne z for the same element xx. So M3M_3, while bounded and complemented, is not a Boolean algebra, and none of the De Morgan laws or the atom-decomposition theorem can even be stated for it without first fixing which complement is meant. This shows distributivity is not a cosmetic hypothesis: remove it, and the entire complementation apparatus the theorem depends on collapses.

Scope, edge cases & common traps

SituationWhat holdsWhat can fail
BB finite, distributive, complementedB≅2nB \cong 2^n, n=n = number of atoms, ∥B∥=2n\|B\|=2^n— (fully classified)
BB bounded, complemented, not distributive (e.g. M3M_3, or the pentagon N5N_5)Lattice, bounded, every element has a complementComplements not unique; De Morgan's laws may fail to make sense
BB distributive but not complemented (e.g. a chain 0<a<10<a<1 with n≥3n\ge 3 elements)Uniqueness of complements would hold if they existedComplements may simply not exist (a middle element of a chain of length ≥3\ge 3 has none)
BB Boolean but infiniteUniqueness of complements, De Morgan's laws still hold (these arguments used no finiteness)Atom-based representation can fail entirely: an atomless infinite Boolean algebra exists (e.g. the algebra of finite unions of intervals with rational endpoints, up to symmetric difference from a suitable measure-zero ideal), so B≇2nB \not\cong 2^n for any nn, and BB may have no atoms at all
∣B∣=2n|B| = 2^n as a set with some Boolean structure—Isomorphism type still must be checked structurally; merely having the right cardinality does not by itself invoke the theorem (the theorem produces the isomorphism, it isn't assumed)

The mathematician behind it

Origins · 1 minGeorge Boole and how this was discovered
GB
George Boole
1815–1864 · Victorian England, self-taught mathematician and logician

George Boole was a largely self-taught English mathematician who, working outside the university establishment for most of his career, developed an algebra of logic in which propositions could be manipulated with the same symbolic fluency as ordinary equations. His 1854 book An Investigation of the Laws of Thought proposed that the logical operations "and," "or," and "not" obey algebraic laws strikingly parallel to those of arithmetic modulo 22 combined with lattice structure — laying the symbolic groundwork that later mathematicians (Jevons, Peirce, Schröder, and eventually Marshall Stone and Garrett Birkhoff) would formalize into the modern axiomatic notion of a Boolean algebra as a complemented distributive lattice.

History
- 1847: Boole publishes The Mathematical Analysis of Logic, first systematically treating logic as algebra.
- 1854: Boole's An Investigation of the Laws of Thought develops the algebra of classes and propositions in depth.
- 1890s: Ernst Schröder and Charles Sanders Peirce refine and axiomatize "Boolean algebra" in near-modern lattice-theoretic form.
- 1936: Marshall Stone proves the Stone representation theorem, showing every (possibly infinite) Boolean algebra embeds as an algebra of clopen sets of a compact totally disconnected space.
- 1938: Claude Shannon's master's thesis shows switching circuits are governed exactly by Boolean algebra, founding digital logic design.
Is every distributive lattice a Boolean algebra?

No. Distributivity is only one of the required properties; a Boolean algebra also needs bounds (0,10,1) and, crucially, complements for every element. A chain such as 0<a<10 < a < 1 is distributive (distributivity is automatic in any chain, since ∨\vee and ∧\wedge just pick the larger/smaller of two comparable elements) and bounded, but the element aa has no complement: there is no xx with a∨x=1a \vee x = 1 and a∧x=0a \wedge x = 0 simultaneously in a 33-element chain, since any xx comparable to aa fails one equation or the other. So distributive lattices form a strictly larger class than Boolean algebras; Boolean algebras are precisely the complemented distributive lattices.

Why must the finite representation theorem require finiteness?

Finiteness is used in two essential places in the proof: guaranteeing that the set {x:0<x≤b}\{x : 0 < x \le b\} has a minimal element (true in any finite poset, but false in general infinite posets), and guaranteeing that the recursive "peeling off atoms" process terminates. Infinite Boolean algebras can be atomless — having no minimal nonzero elements at all — so the entire atom-decomposition machinery has nothing to act on. A concrete example is the algebra of finite unions of subintervals of [0,1][0,1] with rational endpoints; no nonzero element is minimal, since any such interval properly contains a smaller one. Such algebras are never isomorphic to any 2n2^n, finite or otherwise indexed.

What exactly is an atom, and why is it the right building block?

An atom of a bounded lattice is a nonzero element aa with no element strictly between 00 and aa; equivalently, aa covers 00 in the Hasse diagram. Atoms are the right building block because, in a finite Boolean algebra, every element decomposes uniquely as a join of the atoms lying beneath it (proved via the minimal-element argument in the main theorem). This mirrors prime factorization: atoms play the role of "primes" of the lattice, and the unique decomposition is the lattice-theoretic analogue of unique factorization, translated into the language of unions of singleton sets.

How does the subset lattice relate to propositional logic?

Identify a proposition pp with the set of "worlds" (or truth-assignments) in which pp is true; then logical AND corresponds to set intersection, OR to union, NOT to complement, "always false" to ∅\varnothing, and "always true" to the full set of worlds. Under this dictionary, De Morgan's laws for logic ("not (p or q) = (not p) and (not q)") become literally the De Morgan laws proved above for Boolean algebras. This is precisely why propositional logic with nn independent atomic propositions has a Lindenbaum–Tarski algebra isomorphic to 22n2^{2^n} — one bit of truth-value information per one of the 2n2^n possible truth assignments.

Is the isomorphism B≅2nB \cong 2^n in the theorem canonical, or does it depend on choices?

The isomorphism φ(b)={a∈A(B):a≤b}\varphi(b) = \{a \in A(B): a \le b\} is completely canonical once you fix the abstract labeling of the atom set A(B)A(B) as {1,…,n}\{1,\dots,n\} — no arbitrary choice is involved in defining φ\varphi itself, only in how you name the atoms. Different choices of bijection A(B)↔[n]A(B) \leftrightarrow [n] just relabel coordinates, giving isomorphic (in fact, conjugate via a coordinate permutation) copies of 2[n]2^{[n]}. So the theorem gives a genuinely canonical isomorphism onto P(A(B))\mathcal P(A(B)), with the further identification A(B)≅[n]A(B)\cong [n] being the only non-canonical (purely notational) step.

Does every finite distributive lattice become a Boolean algebra if you just add complements formally?

Not for free — you have to check the result stays distributive and that the added elements actually satisfy the complement equations consistently with the existing structure; this is not automatic and can fail or require reshaping the whole lattice. In practice, finite distributive lattices that are not complemented (chains of length ≥3\ge 3, or more complex examples like the divisor lattice of 12=22⋅312=2^2\cdot3, which is distributive but has 66 with no complement since 1212 is not squarefree) simply are not Boolean algebras, and there is no canonical minimal complemented distributive lattice containing them that preserves their original order embedding. This is why "distributive lattice of divisors of nn" is Boolean exactly when nn is squarefree, as illustrated in the worked example with 3030.

What is the connection to the Möbius function foreshadowed here?

The Möbius function μ\mu of a poset generalizes inclusion–exclusion; on the Boolean lattice 2n2^n it takes the strikingly clean form μ(A,B)=(−1)∣B∖A∣\mu(A,B) = (-1)^{|B\setminus A|} for A⊆BA \subseteq B. This formula, and the general Möbius inversion theorem it powers, rely on exactly the atom/rank structure proved here: knowing 2n2^n is the free Boolean algebra on nn atoms with rank function ∣A∣|A| is the starting data from which the Möbius function of the subset lattice is computed.

Before this

Where this leads