Canonical form in Boolean algebra: meaning and examples
A canonical form is a normal form that is unique for each function over a fixed variable order: the sum of minterms Σm(…) or the product of maxterms ΠM(…). Two formulas are equivalent exactly when their canonical forms are identical.
Ordinary normal forms are not unique: A OR (A AND B) and A are both sums of products for the same function. The canonical forms fix this by allowing only full terms. The canonical sum of products lists every minterm of the true rows, and the canonical product of sums lists every maxterm of the false rows; both are read straight off the truth table, so they depend on nothing but the function and the variable order. That is what makes them a test for equivalence and a fixed name for a function.
The artefact on this page is A XOR B. Its minterm panel gives the two canonical names, f(A, B) = Σm(1, 2) and f(A, B) = ΠM(0, 3). The converter's algebraic forms happen to coincide with the canonical ones here: the DNF (A AND NOT B) OR (NOT A AND B) is exactly the sum of minterms m2 and m1, and the CNF (A OR B) AND (NOT A OR NOT B) is exactly the product of maxterms M0 and M3, each 2 terms and 4 literals, each reached by one application of XOR elimination.
Canonical forms are the bridge between a truth table and an expression: hardware specifications are handed over as Σm lists, the canonical method of the converter produces them directly, and Quine–McCluskey starts from them. They are rarely the form anyone wants to read, because they grow with the number of true rows. The term is confused with normal form in general, and “canonical” is sometimes misused for “standard” or “preferred”, which it does not mean.
Example
f := A XOR B · output
Exact checks
Truth table (4 rows)
| # | A | B | f |
|---|---|---|---|
| 0 | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | TRUE |
| 2 | TRUE | FALSE | TRUE |
| 3 | TRUE | TRUE | FALSE |
Plain-language reading
Beginnerf is true exactly when exactly one of A and B is true (not both).
In every other case, f is false.
About the operators:
- XOR (exclusive or) is true when exactly one of its two parts is true.
Intermediatef is true exactly when exactly one of A and B is true (not both).
In every other case, f is false.
Advancedf is true exactly when exactly one of A and B is true (not both) [exclusive disjunction ⊕].
In every other case, f is false.
Formal notation: A ⊕ B
Minterms and maxterms
f(A, B) = Σm(1, 2)f(A, B) = ΠM(0, 3)Variable order: A, B · 4 rows
Normal forms
Conjunctive normal form (CNF)
(A OR B) AND (NOT A OR NOT B)2 clauses, 4 literals · complete · XOR elimination ×1
Disjunctive normal form (DNF)
(A AND NOT B) OR (NOT A AND B)2 terms, 4 literals · complete · XOR elimination ×1
The common slip
Comparing two canonical forms written over different variable orders. Σm(A, B; 1) is NOT A AND B and Σm(B, A; 1) is NOT B AND A; identical lists over different orders can be different functions. Fix the order before comparing.
Questions
Is the canonical form the same as the simplified form?
Usually the opposite. The canonical form is the longest sum of products, one minterm per true row; the simplifier and the Karnaugh map exist to get away from it. On this page the two coincide only because A XOR B has no shorter sum of products.
Related
Practice
See also
- Minterm: meaning and examples
- Maxterm: meaning and examples
- Minterm expansion: the canonical sum of products (Σm)
- Maxterm expansion: the canonical product of sums (ΠM)
- Disjunctive normal form (DNF): meaning and examples
- CNF and DNF converter: conjunctive and disjunctive normal forms, minterms and maxterms
Glossary
Generated from the Tangibool engine, semantics tangibool-semantics/1, engine 1.0.0, build . Every table, map, simplification and verdict on these pages was computed by the Tangibool engine when the site was built, and every claim was re-checked by the same exact checker the app uses. Limits are stated where they apply. © 2026 Foreranger LTD.