Standard Forms of a Boolean Function
Every Boolean function can be written in exactly two canonical (standard) ways. Both are derived directly from the truth table with zero cleverness required.
1. Minterms and Maxterms
For n variables there are 2^n minterms and 2^n maxterms.
| Row | A | B | C | Minterm m(i) | Maxterm M(i) |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | A'B'C' = m0 | A + B + C = M0 |
| 1 | 0 | 0 | 1 | A'B'C = m1 | A + B + C' = M1 |
| 2 | 0 | 1 | 0 | A'BC' = m2 | A + B' + C = M2 |
| 3 | 0 | 1 | 1 | A'BC = m3 | A + B' + C' = M3 |
| 4 | 1 | 0 | 0 | AB'C' = m4 | A' + B + C = M4 |
| 5 | 1 | 0 | 1 | AB'C = m5 | A' + B + C' = M5 |
| 6 | 1 | 1 | 0 | ABC' = m6 | A' + B' + C = M6 |
| 7 | 1 | 1 | 1 | ABC = m7 | A' + B' + C' = M7 |
The two rules that generate the table:
MINTERM (product term): variable = 1 -> write it plain (A)
variable = 0 -> write it complemented (A')
m(i) equals 1 for EXACTLY ONE input combination.
MAXTERM (sum term): variable = 0 -> write it plain (A)
variable = 1 -> write it complemented (A')
M(i) equals 0 for EXACTLY ONE input combination.
Relationship: M(i) = m(i)' and m(i) = M(i)'
2. Building Both Forms from a Truth Table
Given function:
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Canonical SOP — collect the rows where F = 1
Rows 1, 3, 4, 6, 7
F = A'B'C + A'BC + AB'C' + ABC' + ABC
F = Σm(1, 3, 4, 6, 7)
Canonical POS — collect the rows where F = 0
Rows 0, 2, 5
F = (A + B + C)(A + B' + C)(A' + B + C')
F = ΠM(0, 2, 5)
The complement relationship: the minterm numbers and the maxterm numbers together always cover 0…2^n − 1 with no overlap. Here {1,3,4,6,7} ∪ {0,2,5} = {0…7}. ✓ Therefore: F = Σm(1,3,4,6,7) = ΠM(0,2,5) and F' = Σm(0,2,5) = ΠM(1,3,4,6,7).
3. Converting Between the Forms
Given F = Σm(0, 2, 4, 5) for 3 variables:
Missing indices are 1, 3, 6, 7
Therefore F = ΠM(1, 3, 6, 7)
And F' = Σm(1, 3, 6, 7) = ΠM(0, 2, 4, 5)
4. Standard (Non-Canonical) Forms
| Term | Meaning | Example |
|---|---|---|
| Canonical SOP | Every product term contains all n variables | AB'C + ABC |
| Standard SOP | Product terms may have fewer literals | AC + B |
| Canonical POS | Every sum term contains all n variables | (A+B+C)(A+B'+C) |
| Standard POS | Sum terms may have fewer literals | (A+C)(B) |
Expanding a standard form into canonical form
F = A + B'C (3 variables A, B, C)
Term A : multiply by (B + B') and (C + C')
= A(B + B')(C + C')
= ABC + ABC' + AB'C + AB'C'
= m7 + m6 + m5 + m4
Term B'C : multiply by (A + A')
= (A + A')B'C = AB'C + A'B'C
= m5 + m1
F = Σm(1, 4, 5, 6, 7) (m5 appears twice; A + A = A, so list it once)
Expanding a POS term
F = A(B' + C) (3 variables)
Term A : A + B.B' ... use X = X + Y.Y'
= (A + B + C)(A + B + C')(A + B' + C)(A + B' + C')
= M0.M1.M2.M3
Term B'+C : B' + C + A.A' = (A + B' + C)(A' + B' + C) = M2.M6
F = ΠM(0, 1, 2, 3, 6)
5. Circuit Realisation
| Form | Gate structure | Levels |
|---|---|---|
| SOP | AND gates feeding one OR gate | 2 (+1 for inverters) |
| POS | OR gates feeding one AND gate | 2 (+1 for inverters) |
| SOP → NAND-NAND | All NAND | 2 |
| POS → NOR-NOR | All NOR | 2 |
F = AB + C'D -> NAND-NAND: F = ((AB)' . (C'D)')'
F = (A+B)(C'+D) -> NOR-NOR: F = ((A+B)' + (C'+D)')'
6. Which Form Should You Choose?
Count the 1s and the 0s in the truth table.
Few 1s -> SOP is shorter (fewer minterms to write)
Few 0s -> POS is shorter (fewer maxterms to write)
For the function in section 2 there are five 1s and three 0s, so the POS form is more compact here — three sum terms versus five product terms.
7. Practice
1. F(A,B,C) = Σm(0,1,2,4) -> write POS.
Missing: 3, 5, 6, 7 -> F = ΠM(3,5,6,7)
2. F(A,B,C,D) = ΠM(0,3,5,9,12) -> write SOP.
Missing indices from 0..15: 1,2,4,6,7,8,10,11,13,14,15
F = Σm(1,2,4,6,7,8,10,11,13,14,15)
3. Expand F = AB + A'C to canonical SOP (3 variables).
AB(C + C') = ABC + ABC' = m7 + m6
A'C(B + B') = A'BC + A'B'C = m3 + m1
F = Σm(1, 3, 6, 7)
Canonical forms are always correct but almost never minimal. The K-map, next, turns any Σm list into the minimum expression by inspection.