The consensus theorem
The redundant term that kills a glitch
The consensus theorem states that `A·B + A'·C + B·C` equals `A·B + A'·C`: the consensus term `B·C` is logically redundant and can be dropped, and re-adding it is precisely the extra gate used to remove a static-1 hazard.
Among the Boolean identities there is one that looks like it must be a typo: a whole product term can be deleted with no change in behavior. It is the consensus theorem, and it matters twice over, once for simplification and once, surprisingly, for the *opposite* reason: keeping the term to fix a glitch.
A·B + A'·C + B·C = A·B + A'·C
The deleted term
B·C is called the consensus term. It is formed from the two other terms that share a variable in opposite polarity (A·B has A, A'·C has A'); the consensus is what is left after removing that variable: B·C.Why the term is redundant
Consider when
B·C could matter: both B and C are 1. In that case A is either 0 or 1. If A = 1, then A·B = 1 already makes the sum 1. If A = 0, then A' = 1 so A'·C = 1 already makes the sum 1. Either way one of the first two terms is already 1, so B·C never turns the output on by itself. It covers only cases the others already cover, so the algebra drops it.| A | B | C | A·B + A'·C | A·B + A'·C + B·C |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 1 |
B·C is redundant: adding it never changes the output.So why ever keep it?
Here is the twist. In a real gate circuit, signals do not change instantly. Suppose
B = 1 and C = 1 and A switches from 1 to 0. The output should stay 1 the whole time (both A·B and A'·C cover the B=C=1 region). But A·B turns off the instant A falls, while A'·C cannot turn on until the inverter has produced A'. For that brief gate delay neither term is 1, and the output dips to 0 and back: a static-1 hazard, the momentary glitch covered in hazards.The consensus term
B·C is the cure. It does not depend on A at all, so while A is switching, B·C holds the output at 1 and bridges the gap. On a Karnaugh map this is the extra loop that overlaps two adjacent groups so no transition crosses an uncovered boundary. The redundant term you would remove for minimum gate count is exactly the term you add back for glitch-free logic.Common mistakes. The consensus is only defined when two terms have one variable in opposite polarity (
A and A'); the consensus term is the AND of the leftover literals (B·C), not a random product. Do not confuse minimizing (drop the term for fewer gates) with hazard removal (add it back to cover the boundary): they pull in opposite directions, and which you want depends on whether glitches matter for your circuit.Try it
In
A·B + A'·C + B·C, which term is redundant, and give one reason you might keep it anyway.Answer
B·C is the redundant consensus term: whenever B and C are both 1, either A·B (if A=1) or A'·C (if A=0) is already 1, so B·C never changes the output. You keep it to remove a static-1 hazard: it holds the output high during the brief moment A switches and the A·B/A'·C handoff would otherwise glitch through 0.Frequently asked
What is the consensus theorem?
It states that
A·B + A'·C + B·C = A·B + A'·C. The third term, B·C (the consensus term), is logically redundant because whenever it would be 1, one of the first two terms is already 1. Its dual is (A+B)·(A'+C)·(B+C) = (A+B)·(A'+C).How do you find the consensus term?
Look for two product terms that contain the same variable in opposite polarity (
A in one, A' in the other). Remove that variable and AND together everything left: from A·B and A'·C the consensus is B·C.Why keep a redundant term to prevent a hazard?
In real logic gate delays mean two terms cannot switch simultaneously, so during a transition both can briefly be
0, causing a static-1 hazard glitch. The consensus term does not depend on the switching variable, so it holds the output steady across the transition. It is the extra overlapping loop on a Karnaugh map.The consensus theorem ties Boolean identities, Karnaugh maps, and hazards together: the same term is redundant for area and essential for timing. Which side you take is a design choice.
Every lesson here builds toward one thing: a working CPU, from the transistor up.
Open the free lab →