The Boolean algebra consensus theorem identifies and eliminates redundant terms in a logic expression when two terms contain a variable and its complement, and the third term consists of the remaining variables. In sum-of-products form, this is written as XY + X'Z + YZ = XY + X'Z. The YZ term is the 'consensus' of the first two, and mathematically, it adds zero new logical coverage to the steady-state output. If you are designing digital logic, understanding this theorem is the difference between a clean, optimized circuit and one that wastes silicon or, worse, suffers from timing glitches.
The Core Mechanism: How Consensus Eliminates Redundancy
To see why the consensus term is redundant, look at the logical states. In the expression F = AB + A'C + BC, the BC term is the consensus of AB and A'C. The variable A appears in its true and complemented forms in the first two terms, leaving B and C to form the consensus.
Let's test the states where the consensus term (BC) would theoretically output a 1. This only happens when B=1 and C=1.
- If B=1, C=1, and A=1: The first term (AB) evaluates to 1. The output is already covered.
- If B=1, C=1, and A=0: The second term (A'C) evaluates to 1. The output is already covered.
Worked Numeric Example: Gate Count and Propagation Delay
Let's build both the unoptimized and optimized versions of F = AB + A'C + BC on a breadboard using discrete 3.3V 74LVC-series logic to see the real-world impact.
The Unoptimized Circuit (F = AB + A'C + BC)
- Gates required: One NOT (for A'), three AND gates (for AB, A'C, BC), and one 3-input OR gate.
- ICs needed: 1x SN74LVC04 (NOT), 1x SN74LVC08 (Quad AND), 1x SN74LVC32 (Quad OR). Because the 74LVC32 only contains 2-input OR gates, implementing a 3-input OR requires cascading two of them.
- Propagation Delay ($t_{pd}$): The BC path goes through one AND and one OR. Max $t_{pd}$ for the SN74LVC08A is 3.8ns, and the cascaded OR adds another 4.3ns. Total worst-case path delay: 8.1ns.
The Optimized Circuit (F = AB + A'C)
- Gates required: One NOT, two AND gates, one 2-input OR gate.
- ICs needed: You still need the same three physical DIP ICs (04, 08, 32) because discrete logic comes in quad packages. However, you free up internal gates, reducing dynamic power draw and routing complexity.
- Propagation Delay: The longest path (A' -> AND -> OR) takes 3.8ns (NOT) + 3.8ns (AND) + 4.3ns (OR) = 11.9ns. Wait, the optimized circuit actually has a longer worst-case delay for the A' path, but the overall logic depth is shallower for the B and C paths, and more importantly, it uses fewer physical copper traces on the PCB.
Where You Meet This in Practice
You won't just see this in textbook exams; it dictates how modern tools synthesize your designs.
- FPGA Synthesis (Vivado / Quartus): When you write Verilog or VHDL, the synthesis engine automatically applies the consensus theorem to strip redundant product terms. This packs your logic into fewer 4-input or 6-input LUTs, increasing the maximum clock frequency ($F_{max}$) of your design.
- CPLD Programming: Complex Programmable Logic Devices use macrocells based on sum-of-products arrays. The consensus theorem directly reduces the number of product terms (P-terms) consumed per macrocell, preventing 'out of P-term' compilation errors.
- PLC Ladder Logic: Industrial automation programmers manually apply consensus reduction to simplify rung logic. Fewer instructions mean a faster PLC scan cycle time, which is critical for high-speed packaging machinery.
The Hazard Trap: When Keeping the Consensus Term Saves Your Circuit
Here is where most hobbyists and junior engineers get burned. While the consensus term is logically redundant in a steady state, it is electrically vital during transitions.
Imagine your optimized circuit F = AB + A'C. Assume B=1 and C=1. The output should be 1 regardless of A. Now, let A transition from 1 to 0.
- AB drops from 1 to 0.
- A' must transition from 0 to 1. But the NOT gate has a propagation delay (e.g., 5ns).
- A'C stays at 0 during that 5ns window.
The Fix: You intentionally add the consensus term (BC) back into the equation. Because B=1 and C=1, the BC AND gate outputs a solid 1, holding the final OR gate high during the 5ns NOT-gate delay window. You trade a little silicon area for glitch-free operation.
Decision Path: Eliminate or Retain?
Use this decision tree to determine whether to strip or keep the consensus term in your next design.
| Condition | Action | Rationale |
|---|---|---|
| Designing a synchronous FPGA state machine clocked by a single global buffer. | Eliminate | Flip-flops sample data only on the clock edge. Glitches between clock edges are ignored. Save LUTs and improve routing. |
| Designing an asynchronous reset line, interrupt, or clock multiplexer. | Retain | Asynchronous lines react instantly to any edge. A static-1 hazard glitch will cause a catastrophic false trigger. |
| Writing PLC ladder logic for a standard motor starter. | Eliminate | PLC scan times (typically 1-10ms) are vastly slower than contact bounce or electronic transitions. Minimize scan time. |
| Building a discrete breadboard prototype to verify logic. | Retain | Breadboard parasitic capacitance and long jumper wires exacerbate propagation skew. Keep the term to mask timing mismatches. |
Common Confusions and FAQ
What do people commonly confuse the consensus theorem with?
Engineers frequently confuse it with the Absorption Law (A + AB = A). Absorption eliminates a term because it is a subset of a larger, more inclusive term (if A is true, AB doesn't matter). Consensus eliminates a term because it is the 'bridge' between two mutually exclusive terms (one requires X, the other requires X'). They achieve simplification, but through entirely different logical mechanisms.
Does Karnaugh mapping handle consensus automatically?
Yes and no. A standard K-map grouping will naturally yield the minimized equation (eliminating the consensus term). However, to identify and add consensus terms for hazard elimination, you must look for adjacent but non-overlapping K-map groups. If two groups of 1s are adjacent but not part of the same circled loop, the bridge between them is your consensus term. Standard digital logic textbooks cover this under 'hazard-free K-map grouping'.
Can I just use a capacitor to filter out the glitch instead of adding the consensus term?
Technically, yes, placing a small ceramic capacitor (e.g., 100pF) on the output line creates an RC low-pass filter that smooths out nanosecond glitches. But this is a sloppy hack. It degrades your rise/fall times, increases power consumption during switching, and fails unpredictably across temperature ranges. Fixing it logically with the consensus term is the correct engineering approach.






