Digital Logic Toolkit — Boolean laws & theorems
Boolean Algebra Laws and Theorems
Every law, both duals, each with a truth-table proof you can check.
Sixteen entries: fourteen named laws and two definitional rewrites.
Pre-filled with an expression this law actually matches. Edit it and the derivation follows.
read as (A + (A · B))
The derivation on the right is the engine's own reduction of what you typed. Every step names its law, so you can see where the selected law is used — and where it is not.
Absorption
a + a·b = a
Dual: a · (a + b) = a
Theorem — proved from the axioms
Huntington's postulates; Shannon, A Symbolic Analysis of Relay and Switching Circuits (1938)
Step-by-step simplification
Minimal SOP
A
A + A · B simplifies to A in 1 step. That is a proven minimum (1 term, 1 literal), not a best effort. It is the only minimum-cost form.
Hide the 1 step
Step 1, Absorption
A + A · B = Awith
A=A,B=BA + A · B
becomes A
Why this is the minimum
The minimum was computed first, by the Quine–McCluskey algorithm with Petrick’s method for the covering step; the steps above are then a named-law path to that already-proven answer.
Commutativity and associativity are handled by canonicalising each product term as a sorted set of literals, which is why there are no pointless “apply the commutative law” steps to read past.
The prime implicants and the covering step for this function are shown in full on the Quine–McCluskey page.
The laws, each with a proof
16 entries: fourteen named laws with both duals, and two definitional rewrites. Every identity below was checked against all of its assignments by the engine when this page was built — an identity that stopped holding would fail the build rather than appear here as a false proof. An axiom is assumed and says so; a theorem carries a derivation from the axioms, ordered so that no proof depends on a law proved later.
Identity
a · 1 = a
Dual: a + 0 = a
Axiom — assumed, not proved
Also called: identity element, unit law.
This is not proved. It is one of Huntington’s postulates — 0 and 1 are the identity elements of + and · — and every other law on this page is built on it.
| a | a*1 | a | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 1 | 1 | agree |
The dual, a + 0 = a, proved the same way
| a | a+0 | a | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 1 | 1 | agree |
Wrong: a + 1 = a Right: a + 1 = 1 — that is the Null law, not Identity
Null (annihilation, domination)
a · 0 = 0
Dual: a + 1 = 1
Theorem — proved from the axioms
Also called: annihilation, domination, zero law.
| # | Working line | Law |
|---|---|---|
| 0 | a + 1 | start |
| 1 | (a + 1) · 1 | Identity |
| 2 | (a + 1) · (a + a′) | Complement |
| 3 | a + 1 · a′ | Distributive, 2nd form |
| 4 | a + a′ | Identity |
| 5 | 1 | Complement |
| a | a*0 | 0 | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 0 | 0 | agree |
The dual, a + 1 = 1, proved the same way
| a | a+1 | 1 | agree? |
|---|---|---|---|
| 0 | 1 | 1 | agree |
| 1 | 1 | 1 | agree |
Wrong: 1 + b = b Right: 1 + b = 1 — Boolean addition does not carry
Idempotent
a · a = a
Dual: a + a = a
Theorem — proved from the axioms
Also called: tautology law, Boole’s index law.
| # | Working line | Law |
|---|---|---|
| 0 | a + a | start |
| 1 | (a + a) · 1 | Identity |
| 2 | (a + a) · (a + a′) | Complement |
| 3 | a + a · a′ | Distributive, 2nd form |
| 4 | a + 0 | Complement |
| 5 | a | Identity |
| a | a*a | a | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 1 | 1 | agree |
The dual, a + a = a, proved the same way
| a | a+a | a | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 1 | 1 | agree |
Wrong: a + a = 2a Right: a + a = a — there is no 2 in this algebra
Complement
a · a′ = 0
Dual: a + a′ = 1
Axiom — assumed, not proved
Also called: inverse law, law of the excluded middle.
A Huntington postulate: every element has a complement. The constant forms follow — 0′ = 1 and 1′ = 0 — and so does the fact the De Morgan and Involution proofs turn on: **the complement is unique**. If a + x = 1 and a · x = 0 then x is a′.
| a | a*a' | 0 | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 0 | 0 | agree |
The dual, a + a′ = 1, proved the same way
| a | a+a' | 1 | agree? |
|---|---|---|---|
| 0 | 1 | 1 | agree |
| 1 | 1 | 1 | agree |
Wrong: a · a′ = a Right: a · a′ = 0 — nothing is both
Involution (double negation)
(a′)′ = a
Dual: self-dual
Theorem — proved from the axioms
Also called: double negation, double complement.
| # | Working line | Law |
|---|---|---|
| 0 | (a′)′ | start |
| 1 | a′ + a = 1 and a′ · a = 0 | Complement, both forms |
| 2 | a satisfies both defining equations of the complement of a′ | Complement |
| 3 | a | uniqueness of the complement |
| a | (a')' | a | agree? |
|---|---|---|---|
| 0 | 0 | 0 | agree |
| 1 | 1 | 1 | agree |
Wrong: (a′)′ = a′ Right: (a′)′ = a — two inverters in series cancel
Commutative
a · b = b · a
Dual: a + b = b + a
Axiom — assumed, not proved
Also called: order law.
This toolkit never prints a “commutative” step. Commutativity and associativity are handled by canonicalising each product term as a sorted set of literals, which is why the simplifier does not emit six pointless reorderings.
| a | b | a*b | b*a | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | agree |
The dual, a + b = b + a, proved the same way
| a | b | a+b | b+a | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | agree |
Wrong: a → b = b → a Right: implication is not commutative; AND and OR are
Associative
(a·b)·c = a·(b·c)
Dual: (a+b)+c = a+(b+c)
Theorem — proved from the axioms
Also called: grouping law.
Derivable from Huntington’s fourth postulate set; most digital-logic textbooks nevertheless present it as an axiom. Both statements are true, and the table below proves the identity either way. Because AND and OR are associative, A·B·C draws as one three-input gate rather than a cascade.
| a | b | c | (a*b)*c | a*(b*c) | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | 0 | agree |
| 1 | 0 | 1 | 0 | 0 | agree |
| 1 | 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
The dual, (a+b)+c = a+(b+c), proved the same way
| a | b | c | (a+b)+c | a+(b+c) | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 1 | 1 | agree |
| 0 | 1 | 0 | 1 | 1 | agree |
| 0 | 1 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 1 | 1 | agree |
| 1 | 0 | 1 | 1 | 1 | agree |
| 1 | 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
Wrong: (a ↑ b) ↑ c = a ↑ (b ↑ c) Right: NAND and NOR are **not** associative — check the table
Distributive
a·(b + c) = a·b + a·c
Dual: a + b·c = (a + b)·(a + c)
Axiom — assumed, not proved
Also called: factoring (right to left), multiplying out.
The second form is the one students refuse to believe, because it is false in ordinary arithmetic. It works here for one reason: a·a = a, so multiplying out gives a + a·c + a·b + b·c and absorption removes the two middle terms. Read right to left the first form is **factoring**, which increases literal count and is therefore budgeted as a size-increasing move by the simplifier.
| a | b | c | a*(b+c) | a*b + a*c | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | 0 | agree |
| 1 | 0 | 1 | 1 | 1 | agree |
| 1 | 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
The dual, a + b·c = (a + b)·(a + c), proved the same way
| a | b | c | a + b*c | (a+b)*(a+c) | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 1 | 1 | agree |
| 1 | 0 | 1 | 1 | 1 | agree |
| 1 | 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
Wrong: a + b·c = (a + b)·c Right: a + b·c = (a + b)·(a + c) — the second form has no arithmetic analogue
Absorption
a + a·b = a
Dual: a · (a + b) = a
Theorem — proved from the axioms
Also called: covering law.
Step 3 is the one people skip: 1 + b = 1, not b.
| # | Working line | Law |
|---|---|---|
| 0 | a + a·b | start |
| 1 | a·1 + a·b | Identity |
| 2 | a · (1 + b) | Distributive (factoring) |
| 3 | a · 1 | Null |
| 4 | a | Identity |
| a | b | a + a*b | a | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | agree |
The dual, a · (a + b) = a, proved the same way
| a | b | a*(a+b) | a | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | agree |
On a Karnaugh map. The group for a·b sits entirely inside the group for a, so it circles nothing new. Draw it.
Wrong: A + A·B = A·B Right: A + A·B = A
Absorption and redundancy are different laws
a + a·b = a deletes the second term. a + a′·b = a + b keeps it and strips one literal. If the extra literal is the complement of the term you are absorbing into, you cannot absorb. Compare them side by side.Redundancy (second absorption)
a + a′·b = a + b
Dual: a · (a′ + b) = a · b
Theorem — proved from the axioms
Also called: second absorption law, simplification theorem, wrongly: absorption.
Absorption **deletes** the second term; redundancy **keeps** it and strips one literal. If the extra literal is the complement of the term you are absorbing into, you cannot absorb — you can only strip that literal.
| # | Working line | Law |
|---|---|---|
| 0 | a + a′·b | start |
| 1 | (a + a′) · (a + b) | Distributive, 2nd form |
| 2 | 1 · (a + b) | Complement |
| 3 | a + b | Identity |
| a | b | a + a'*b | a + b | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | agree |
The dual, a · (a′ + b) = a · b, proved the same way
| a | b | a*(a'+b) | a*b | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | agree |
On a Karnaugh map. The a′·b group sticks out of the a group by exactly the cells where b is 1, so together they are the group for a plus the group for b. Draw it.
Wrong: “absorbing” A′·B into A to get A Right: A + A′·B = A + B
Absorption and redundancy are different laws
a + a·b = a deletes the second term. a + a′·b = a + b keeps it and strips one literal. If the extra literal is the complement of the term you are absorbing into, you cannot absorb. Compare them side by side.Consensus
a·b + a′·c + b·c = a·b + a′·c
Dual: (a+b)·(a′+c)·(b+c) = (a+b)·(a′+c)
Theorem — proved from the axioms
Also called: consensus theorem, redundancy theorem.
How to spot the consensus term: find two terms containing a complementary pair (a and a′); the consensus is the product of everything else.
| # | Working line | Law |
|---|---|---|
| 0 | a·b + a′·c + b·c | start |
| 1 | a·b + a′·c + b·c·1 | Identity |
| 2 | a·b + a′·c + b·c·(a + a′) | Complement |
| 3 | a·b + a′·c + a·b·c + a′·b·c | Distributive |
| 4 | a·b + a′·c | Absorption, twice |
| a | b | c | a*b + a'*c + b*c | a*b + a'*c | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 1 | 1 | agree |
| 0 | 1 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 0 | 0 | agree |
| 1 | 0 | 1 | 0 | 0 | agree |
| 1 | 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
The dual, (a+b)·(a′+c)·(b+c) = (a+b)·(a′+c), proved the same way
| a | b | c | (a+b)*(a'+c)*(b+c) | (a+b)*(a'+c) | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 0 | 0 | agree |
| 0 | 1 | 0 | 1 | 1 | agree |
| 0 | 1 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 0 | 0 | agree |
| 1 | 0 | 1 | 1 | 1 | agree |
| 1 | 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
On a Karnaugh map. The consensus group straddles the other two and covers no cell they do not already cover — which is exactly the picture of “redundant”. Draw it.
Wrong: looking for a consensus term where no complementary pair exists Right: A·B + A·C has none; A·B + A′·C′ has one, and its consensus is B·C′
De Morgan
(a · b)′ = a′ + b′
Dual: (a + b)′ = a′ · b′
Theorem — proved from the axioms
Also called: De Morgan’s theorem, break the bar, change the sign.
Proved by uniqueness of the complement rather than by table, because that proof generalises to n operands and a table does not: (a₁·a₂·…·aₙ)′ = a₁′ + a₂′ + … + aₙ′.
| # | Working line | Law |
|---|---|---|
| 0 | (a·b) + (a′ + b′) = 1 | first defining equation of a complement |
| 1 | (a·b) · (a′ + b′) = 0 | second defining equation |
| 2 | (a·b)′ = a′ + b′ | uniqueness of the complement |
| a | b | (a*b)' | a' + b' | agree? |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | agree |
| 0 | 1 | 1 | 1 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 0 | 0 | agree |
The dual, (a + b)′ = a′ · b′, proved the same way
| a | b | (a+b)' | a'*b' | agree? |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 0 | 0 | agree |
On a Karnaugh map. Grouping the 0s instead of the 1s is De Morgan on a map. Draw it.
Wrong: (A + B)′ = A′ + B′ Right: (A + B)′ = A′ · B′
Adjacency (K-map combining)
a·b + a·b′ = a
Dual: (a + b)·(a + b′) = a
Theorem — proved from the axioms
Also called: combining, the K-map grouping law, uniting theorem.
This three-step chain is exactly the engine’s ADJACENCY_CHAIN — factoring, complement, identity — and the simplifier prints it as one collapsed step called Adjacency unless bookkeeping steps are switched on.
| # | Working line | Law |
|---|---|---|
| 0 | a·b + a·b′ | start |
| 1 | a · (b + b′) | Distributive (factoring) |
| 2 | a · 1 | Complement |
| 3 | a | Identity |
| a | b | a*b + a*b' | a | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | agree |
The dual, (a + b)·(a + b′) = a, proved the same way
| a | b | (a+b)*(a+b') | a | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | agree |
On a Karnaugh map. Every group of two is one application; a group of four is two; a group of eight is three. Each doubling removes exactly one more literal. Draw it.
Wrong: A·B + A′·B′ merges to something shorter Right: those two differ in **two** literals and do not merge — that pair is XNOR
Shannon expansion
f = a · f|ₐ₌₁ + a′ · f|ₐ₌₀
Dual: f = (a + f|ₐ₌₀)·(a′ + f|ₐ₌₁)
Theorem — proved from the axioms
Also called: Boole’s expansion theorem, cofactor expansion.
Worked instance: for f = A·B + A′·C, f|A=1 = B and f|A=0 = C, so f = A·B + A′·C reconstructs itself. The dual expansion gives (A + C)·(A′ + B) — which is this function’s minimal POS, computed independently by the minimiser and matching exactly. Expanding on every variable in turn produces the canonical SOP one minterm at a time, and the expansion is what a multiplexer computes.
| # | Working line | Law |
|---|---|---|
| 0 | when a = 1 the right-hand side is 1·f|ₐ₌₁ + 0·f|ₐ₌₀ | Complement, Null |
| 1 | = f|ₐ₌₁, which is f | Identity |
| 2 | when a = 0 it is f|ₐ₌₀, which is f | the same two laws |
| 3 | both cases agree, so the identity holds | proof by case split |
| A | B | C | A*B + A'*C | A*B + A'*C | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 1 | 1 | agree |
| 0 | 1 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 0 | 0 | agree |
| 1 | 0 | 1 | 0 | 0 | agree |
| 1 | 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
The dual, f = (a + f|ₐ₌₀)·(a′ + f|ₐ₌₁), proved the same way
| A | B | C | A*B + A'*C | (A + C)*(A' + B) | agree? |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | agree |
| 0 | 0 | 1 | 1 | 1 | agree |
| 0 | 1 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 0 | 0 | agree |
| 1 | 0 | 1 | 0 | 0 | agree |
| 1 | 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 1 | 1 | 1 | agree |
On a Karnaugh map. Splitting the map into the half where a = 1 and the half where a = 0 is one expansion. Draw it.
Wrong: f = a·f + a′·f Right: the two branches are the **cofactors** f|ₐ₌₁ and f|ₐ₌₀, not f itself
Definition of XOR / XNOR
a ⊕ b = a·b′ + a′·b
Dual: a ⊙ b = a·b + a′·b′
Definition — a convention, with nothing to prove
Also called: exclusive or, parity, equivalence (for XNOR).
A definition, not a theorem: there is nothing to prove, only a convention to state. A chain of ⊕ is the sum of its odd-parity minterms.
| a | b | a ^ b | a*b' + a'*b | agree? |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | agree |
| 0 | 1 | 1 | 1 | agree |
| 1 | 0 | 1 | 1 | agree |
| 1 | 1 | 0 | 0 | agree |
The dual, a ⊙ b = a·b + a′·b′, proved the same way
| a | b | a @ b | a*b + a'*b' | agree? |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | agree |
On a Karnaugh map. Two diagonal cells that never merge, which is why odd parity has no short SOP. Draw it.
Wrong: a ⊕ b = a + b Right: they differ in the row where both are 1
Definition of implication / biconditional
a → b = a′ + b
Dual: a ↔ b = a·b + a′·b′
Definition — a convention, with nothing to prove
Also called: material conditional, biconditional, iff.
A definition, not a theorem. The biconditional is the same function hardware calls XNOR.
| a | b | a -> b | a' + b | agree? |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | agree |
| 0 | 1 | 1 | 1 | agree |
| 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | agree |
The dual, a ↔ b = a·b + a′·b′, proved the same way
| a | b | a <-> b | a*b + a'*b' | agree? |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | agree |
| 0 | 1 | 0 | 0 | agree |
| 1 | 0 | 0 | 0 | agree |
| 1 | 1 | 1 | 1 | agree |
Wrong: 0 → 1 = 0 Right: 0 → 1 = 1 — a false antecedent makes the conditional vacuously true
Notation and operator precedence used here
Laws are stated in lower-case placeholders — a, b, c — because they hold for any expression substituted in, not only for single variables. · is AND, + is OR, a prime is NOT, ⊕ is XOR and ⊙ is XNOR.
In the expression field, + is OR, juxtaposition and * are AND, ' is NOT, ^ is XOR, @ is XNOR, -> is implication and <-> is the biconditional. Precedence runs, highest to lowest: ( ) → NOT → AND → XOR / XNOR → NAND / NOR → OR → IMPLIES (right-associative) → IFF. The fully parenthesised reading is echoed back on every keystroke, and an unbracketed mix of XOR, XNOR, NAND or NOR with AND or OR raises a non-blocking warning.
The overbar is a grouping symbol. Its extent is its operand and plain text cannot express that, so type ' or ¬( … ); overbars are drawn on output only. Postfix ' binds to the single item before it, so AB' is A·(B′) and (A+B)' complements the whole group.
Axiom or theorem?
Huntington's 1904 postulate sets fix what is assumed: closure, the identity elements, the complement, commutativity and distributivity. Everything else on this page is a consequence of those. Naming which is which matters, because a proof that uses a theorem to prove that theorem is not a proof — and the derivations above are ordered so that never happens.
Duality, and why it is not the complement
Swap every · with + and every 0 with 1, leave the variables alone, and a true statement stays true. That is why every law above has a dual column and why proving one form proves the other.
The complement is not the dual. The complement also complements every literal: f ᵈ(x) = f′(x′), which is not f′. That is exactly why a minimal POS is derived by minimising the OFF-set and De Morganing each cube, never by dualising the minimal SOP.
Where each law shows up in practice
| Law | On a K-map | At gate level |
|---|---|---|
| Adjacency | a group of two | deleting one input from an AND gate |
| Absorption | a group inside a group | deleting a whole gate |
| De Morgan | grouping the 0s instead of the 1s | bubble pushing |
| Consensus | a group that straddles two others and covers nothing new | deleting an AND gate that changes no output |
The printable cheat sheet
Every entry above appears with both duals and no proofs when this page is printed: the print stylesheet drops the navigation, the tool and the truth tables and keeps the identities, which is the honest way to serve “Boolean algebra cheat sheet”. Use your browser's print command; nothing needs to be unlocked or downloaded.
Mistakes this page exists to prevent
- (A + B)′ = A′ + B′ — it is A′ · B′. De Morgan
- A + A·B = A·B — it is A. Absorption
- Filing A + A′B = A + B under Absorption — it is Redundancy
- 1 + B = B — it is 1. Null
- Treating the dual as the complement — Duality
- Assuming NAND is associative — it is not. Associative
Worked examples
Worked examples
- A + A·B = Aintroabsorption
- A·B + Ā·C + B·C = A·B + Ā·Cintroconsensus
- A + B·C = (A + B)·(A + C)coredistributivity of OR over AND
- (A·B)′ = Ā + B̄coreDe Morgan on a product
- A + Ā = 1corecomplement / excluded middle
- A·(A + B) = Aexamdual of absorption
- (A′)′ = Aexaminvolution / double negation
- A + 1 = 1edge caseannulment / null element
Related
- De Morgan's laws — the one law that gets its own page
- Boolean algebra simplifier — apply these laws to your own expression, in order
- Karnaugh map solver — adjacency, absorption and consensus as shapes
- Quine–McCluskey solver — what adjacency looks like as an algorithm
- SOP and POS canonical forms — Shannon expansion, run to completion
- Truth table generator — check any identity on this page row by row
- Universal gates — De Morgan as a construction technique
- Multiplexers & decoders — Shannon expansion, as hardware
Sources
- Boole, George. An Investigation of the Laws of Thought, on Which are Founded the Mathematical Theories of Logic and Probabilities. London: Walton and Maberly, 1854.
- De Morgan, Augustus. Formal Logic: or, The Calculus of Inference, Necessary and Probable. London: Taylor and Walton, 1847.
- Huntington, Edward V. “Sets of Independent Postulates for the Algebra of Logic.” Transactions of the American Mathematical Society 5, no. 3 (1904): 288–309. doi:10.2307/1986459 — the postulate sets the axiom/theorem split on this page follows.
- Huntington, Edward V. “New Sets of Independent Postulates for the Algebra of Logic, with Special Reference to Whitehead and Russell’s Principia Mathematica.” Transactions of the American Mathematical Society 35, no. 1 (1933): 274–304. doi:10.2307/1989325.
- Shannon, Claude E. “A Symbolic Analysis of Relay and Switching Circuits.” Transactions of the American Institute of Electrical Engineers 57, no. 12 (December 1938): 713–723. doi:10.1109/T-AIEE.1938.5057767 — Shannon expansion, and the switching interpretation of every law here.
- Quine, Willard V. “The Problem of Simplifying Truth Functions.” The American Mathematical Monthly 59, no. 8 (October 1952): 521–531. doi:10.2307/2308219 — the consensus operation.
- Karnaugh, Maurice. “The Map Method for Synthesis of Combinational Logic Circuits.” Transactions of the AIEE, Part I 72, no. 5 (November 1953): 593–599. doi:10.1109/TCE.1953.6371932 — the map readings.