Intuition What this page is for
The parent note showed you how to build a Sum of Products. This page throws every kind of input at you: the ordinary truth table, the all-0 function, the all-1 function, the "only one row wins", an expression that arrives disguised, a canonical expansion, a real-world word problem, and an exam trap. If you can do all of these, no SOP question can surprise you.
Before we start, one reminder so no symbol is unearned:
Definition The three symbols we use everywhere
+ means OR (output 1 if any input is 1). It is not arithmetic addition.
⋅ (or just writing letters next to each other, like A B ) means AND (output 1 only if all inputs are 1).
A bar, A ˉ , means NOT A (flip 1↔0).
A literal is a single variable in true (A ) or barred (A ˉ ) form. A minterm is a product (AND) using every variable exactly once.
Every SOP question falls into one of these cells. The examples below are labelled with the cell(s) they cover.
#
Case class
What makes it tricky
Example
C1
Ordinary truth table, several 1-rows
routine but must not slip a bar
Ex 1
C2
Degenerate: all outputs 0
no minterms — what do you even write?
Ex 2
C3
Degenerate: all outputs 1
every row wins — does it collapse?
Ex 3
C4
Exactly one 1-row
a single minterm, no OR needed
Ex 4
C5
Expression in disguise (product-of-sums shape)
must distribute to reach SOP
Ex 5
C6
Non-canonical → canonical expansion
terms missing variables
Ex 6
C7
Real-world word problem
translate English → truth table → SOP
Ex 7
C8
Exam twist : given minterm list ∑ m ( ⋅ ) , simplify
index notation + K-map thinking
Ex 8
We label the truth-table rows in binary counting order (000 , 001 , 010 , … ). See the figure — the row number i is just the binary value of A B C .
Worked example Three winning rows
Build the canonical SOP for this function of A , B , C .
i
A
B
C
F
0
0
0
0
0
1
0
0
1
1
2
0
1
0
0
3
0
1
1
1
4
1
0
0
0
5
1
0
1
0
6
1
1
0
1
7
1
1
1
0
Forecast: how many product terms will the answer have? (Count the 1-rows first.)
Step 1 — list the 1-rows. Rows 1 , 3 , 6 .
Why this step? SOP only lists the winners; ignore every 0-row.
Step 2 — turn each 1-row into a minterm. Rule: variable is 0 → write it barred ; variable is 1 → write it plain (this makes the minterm equal 1 on exactly that row).
Row 1 (A = 0 , B = 0 , C = 1 ) → A ˉ B ˉ C
Row 3 (A = 0 , B = 1 , C = 1 ) → A ˉ B C
Row 6 (A = 1 , B = 1 , C = 0 ) → A B C ˉ
Why this step? Each minterm is a "row-detector": it fires (=1) on its own row and nowhere else.
Step 3 — OR the minterms.
F = A ˉ B ˉ C + A ˉ B C + A B C ˉ = ∑ m ( 1 , 3 , 6 )
Why this step? OR outputs 1 whenever any detector fires, exactly recreating the three 1-rows.
Verify: plug in row 3 (A = 0 , B = 1 , C = 1 ): A ˉ B ˉ C = 0 , A ˉ B C = 1 ⋅ 1 ⋅ 1 = 1 , A B C ˉ = 0 . OR = 1 ✓. Plug in a 0-row, say row 7 (1 , 1 , 1 ): 0 + 0 + 0 = 0 ✓.
Worked example The empty function
Every row of F ( A , B ) has F = 0 . Write its SOP.
Forecast: you cannot write any minterm — so is there even an SOP?
Step 1 — list the 1-rows. There are none .
Why this step? SOP is the OR of the winning rows; here the winner list is empty.
Step 2 — interpret "an empty OR". ORing nothing gives the identity element of OR, which is 0 (adding a 0 changes nothing in an OR).
F = 0
Why this step? We need a symbol that means "never fires"; the constant 0 is exactly that.
Verify: F = 0 outputs 0 on every row — matches the all-0 table ✓. (This is the one case where the SOP has zero product terms.)
A ˉ B ˉ ⋅ A B to mean "nothing"
Why it feels right: you want some expression, so you multiply contradictory literals.
Fix: just write the constant 0 . It's cleaner and correct — A A ˉ also equals 0 but obscures the meaning.
Worked example The always-on function
Every row of F ( A , B ) has F = 1 . Write the canonical SOP, then simplify.
Forecast: four minterms will appear — do they collapse to something tiny?
Step 1 — every row wins, so write all four minterms.
F = A ˉ B ˉ + A ˉ B + A B ˉ + A B = ∑ m ( 0 , 1 , 2 , 3 )
Why this step? Each row is a 1-row, so each contributes its detector.
Step 2 — group and use X + X ˉ = 1 . Factor A ˉ from the first pair, A from the second:
F = A ˉ ( B ˉ + B ) + A ( B ˉ + B ) = A ˉ ⋅ 1 + A ⋅ 1 = A ˉ + A = 1
Why this step? B ˉ + B = 1 (a variable OR its own complement covers both possibilities). Then A ˉ + A = 1 for the same reason.
F = 1
Verify: F = 1 is on for every row — matches the all-1 table ✓. Canonical form (4 terms) and simplified form (the constant 1) describe the same function.
Worked example A single minterm
F ( A , B , C ) is 1 only on row A = 1 , B = 0 , C = 1 (row i = 5 ), and 0 everywhere else. Write the SOP.
Forecast: with only one winner, is there any OR at all?
Step 1 — one 1-row → one minterm. A = 1 (plain A ), B = 0 (barred B ˉ ), C = 1 (plain C ):
F = A B ˉ C = m ( 5 )
Why this step? A single detector already reproduces the table; there is nothing to OR it with.
Step 2 — no simplification possible. A full minterm with all variables cannot be shortened without changing which single row it detects.
Why this step? Dropping a literal would make it fire on two rows.
Verify: row 5 → 1 ⋅ 1 ⋅ 1 = 1 ✓. Row 4 (1 , 0 , 0 ) → A B ˉ C = 1 ⋅ 1 ⋅ 0 = 0 ✓. Only one row is 1, as required.
Worked example Distribute to reach SOP
Put F = ( A + B ) ( A ˉ + C ) into SOP form.
Forecast: this is an AND-of-ORs (product-of-sums shape). How many product terms after we multiply out?
Step 1 — multiply out (distribute AND over OR) , like FOIL but with OR/AND:
F = A A ˉ + A C + B A ˉ + B C
Why this step? SOP is a sum of products ; the outer operation must become OR. Distribution converts the outer AND into an OR of AND-terms — exactly the SOP shape. We use distribution (not, say, De Morgan) because we only need to change the grouping , not complement anything.
Step 2 — kill impossible terms with A A ˉ = 0 .
F = 0 + A C + A ˉ B + B C = A C + A ˉ B + B C
Why this step? A A ˉ can never be 1 (a thing and its opposite can't both be true), so it drops out — no row is lost.
Step 3 — remove the redundant term B C (consensus theorem). With A C and A ˉ B present, B C is already covered:
F = A C + A ˉ B
Why this step? The consensus of A C and A ˉ B (variable A appearing true and complemented) is B C , which is always redundant. Fewer gates, same output.
Verify: test A = 0 , B = 1 , C = 0 . Original: ( 0 + 1 ) ( 1 + 0 ) = 1 ⋅ 1 = 1 . Our form: A C + A ˉ B = 0 + 1 ⋅ 1 = 1 ✓. Test A = 1 , B = 0 , C = 0 : original ( 1 ) ( 0 ) = 0 ; ours 0 + 0 = 0 ✓.
Worked example Expand missing variables
F ( A , B , C ) = A B ˉ + C is valid SOP but not canonical (each term is missing a variable). Expand to minterms.
Forecast: term A B ˉ is missing C ; term C is missing A and B . How many minterms total?
Step 1 — expand A B ˉ by multiplying with ( C + C ˉ ) = 1 .
A B ˉ = A B ˉ ( C + C ˉ ) = A B ˉ C + A B ˉ C ˉ = m ( 5 ) + m ( 4 )
Why this step? Multiplying by 1 changes no values, but ( C + C ˉ ) splits the term across both values of the missing C , giving full minterms.
Step 2 — expand C by multiplying with ( A + A ˉ ) ( B + B ˉ ) = 1 .
C = ( A + A ˉ ) ( B + B ˉ ) C = A B C + A B ˉ C + A ˉ B C + A ˉ B ˉ C
= m ( 7 ) + m ( 5 ) + m ( 3 ) + m ( 1 )
Why this step? Two variables missing → multiply by two "1 "s to fan out over all four combinations.
Step 3 — OR everything and drop duplicates. Both terms produced m ( 5 ) ; in Boolean X + X = X , so keep one copy:
F = m ( 1 ) + m ( 3 ) + m ( 4 ) + m ( 5 ) + m ( 7 ) = ∑ m ( 1 , 3 , 4 , 5 , 7 )
Why this step? Canonical SOP lists each winning row exactly once.
Verify: count — original A B ˉ covers rows 4,5; C covers rows 1,3,5,7. Union = { 1 , 3 , 4 , 5 , 7 } , five rows ✓. Spot-check row 4 (1 , 0 , 0 ): A B ˉ = 1 , C = 0 , so F = 1 ; and m ( 4 ) is in our list ✓.
Worked example The greenhouse fan
A fan should switch ON when it is Hot (H ) and the greenhouse is Occupied (O ), OR whenever the Manual override (M ) is pressed — regardless of anything else. Variables are 1 = true. Build the truth table and give the SOP.
Forecast: override alone forces ON — will many rows be 1?
Step 1 — translate English into a table over H , O , M .
i
H
O
M
Fan
0
0
0
0
0
1
0
0
1
1
2
0
1
0
0
3
0
1
1
1
4
1
0
0
0
5
1
0
1
1
6
1
1
0
1
7
1
1
1
1
Why this step? "Hot AND Occupied" makes row 6 (and 7) fire; "Manual" alone makes every M = 1 row fire (rows 1,3,5,7).
Step 2 — canonical SOP from the 1-rows { 1 , 3 , 5 , 6 , 7 } :
Fan = H ˉ O ˉ M + H ˉ O M + H O ˉ M + H O M ˉ + H O M
Step 3 — simplify back to the sentence. The four terms with M = 1 (m 1 , m 3 , m 5 , m 7 ) collapse: they cover all combinations of H , O with M = 1 , so they sum to M . The remaining m 6 = H O M ˉ combines with H O M (already inside M ) to leave H O :
Fan = M + H O
Why this step? This is exactly the English: "ON if Manual, OR if Hot and Occupied." The algebra recovered the spec.
Verify: row 6 (H = 1 , O = 1 , M = 0 ): M + H O = 0 + 1 = 1 ✓ (fan on, correct). Row 4 (1 , 0 , 0 ): 0 + 0 = 0 ✓ (hot but empty and no override → off). Row 1 (0 , 0 , 1 ): 1 + 0 = 1 ✓ (override wins).
∑ m to fewest gates
A function is given directly as F ( A , B ) = ∑ m ( 0 , 1 , 2 ) . Write it out and simplify to minimum SOP.
Forecast: three of the four rows are 1 — the odd one out is row 3. Can you spot the shortcut?
Step 1 — decode the indices into minterms (2 variables, so i = binary A B ):
m ( 0 ) = A ˉ B ˉ (row 00)
m ( 1 ) = A ˉ B (row 01)
m ( 2 ) = A B ˉ (row 10)
F = A ˉ B ˉ + A ˉ B + A B ˉ
Why this step? The ∑ m notation is shorthand for "OR these minterms"; we make it explicit.
Step 2 — group cleverly. Pair for A ˉ , then pair for B ˉ , reusing A ˉ B ˉ (allowed: X + X = X lets you duplicate):
F = A ˉ ( B ˉ + B ) = A ˉ ( A ˉ B ˉ + A ˉ B ) + ( A ˉ + A ) B ˉ = B ˉ ( A ˉ B ˉ + A B ˉ )
F = A ˉ + B ˉ
Why this step? Each parenthesis uses X + X ˉ = 1 to erase one variable. Reusing m ( 0 ) is legal because ORing the same term twice adds nothing.
Step 3 — sanity via the missing row. The only 0-row is row 3 (A = 1 , B = 1 ). And A ˉ + B ˉ = 0 exactly when both A = 1 and B = 1 — matches ✓. (This is De Morgan: A ˉ + B ˉ = A B , i.e. "not both".)
Verify: row 0 (0 , 0 ): A ˉ + B ˉ = 1 + 1 = 1 ✓. Row 3 (1 , 1 ): 0 + 0 = 0 ✓. Two literals, one OR gate, two NOTs — far cheaper than three ANDs + OR.
Recall Cover every cell — can you name the SOP for each degenerate case?
All-0 function ::: F = 0 (empty OR, no minterms).
All-1 function ::: canonical is all minterms; simplifies to F = 1 .
Exactly one 1-row ::: a single full minterm, no OR, cannot be simplified.
An AND-of-ORs expression ::: distribute (multiply out) to reach a sum of products.
Recall Why does multiplying a term by
( X + X ˉ ) expand it to canonical without changing it?
Because X + X ˉ = 1 , so we multiply by 1 (value unchanged) but the term splits into both values of the missing variable X , producing full minterms.
Mnemonic The degenerate trio
"Nobody → 0, Everybody → 1, One friend → one minterm."