The consensus property in Boolean algebra is a simplification rule stating that when two product terms contain a variable and its complement, the third term formed by the remaining variables is redundant and can be eliminated without altering the logical output. In a real circuit or installation, applying this property physically removes redundant logic gates or relay contacts, directly reducing propagation delay, lowering BOM costs, and freeing up silicon area or DIN rail space. What most people commonly confuse it with is the absorption law, but unlike simple absorption, the consensus theorem specifically targets the 'bridge' term created by opposing variables.
The Core Rule and the Redundant Term
Mathematically, the consensus theorem is expressed as:
XY + X'Z + YZ = XY + X'Z
Here, YZ is the consensus term. It is generated by multiplying the non-complemented variables from the first two terms (Y from XY, and Z from X'Z). The theorem proves that whenever the consensus term (YZ) evaluates to TRUE (1), at least one of the other two terms (XY or X'Z) is already TRUE, making the consensus term mathematically unnecessary for the final OR operation.
To prove this definitively, we can map every possible state of a 3-variable system. Notice in the data-dense truth table below that in every row where the consensus term (B·C) is a 1, the final output is already secured by either A·B or A'·C.
| A | B | C | A·B | A'·C | B·C (Consensus) | Final Output (A·B + A'·C) |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 | 1 |
Source reference for formal Boolean proofs: Consensus Theorem (Wikipedia)
Gate-Level Impact: A Worked Numeric Example
While Boolean algebra is often taught using abstract logic gates, its most tangible impact for electrical practitioners is in industrial relay logic and PLC ladder diagrams. Let's look at a real-world motor interlock circuit.
Suppose you are designing a safety interlock where a motor starts if:
- Condition A AND Condition B are met (Term: A·B)
- OR Condition A is FALSE AND Condition C is met (Term: A'·C)
- OR Condition B AND Condition C are met (Term: B·C)
The unsimplified Boolean equation is: F = A·B + A'·C + B·C
The Unsimplified Relay Implementation
In physical 24VDC relay logic, each variable requires physical contacts. Assuming we use standard Omron MY2N-D2 DC24 ice-cube relays (which provide 2 Form-C / DPDT contact sets per relay, costing roughly $8.50 each at industrial suppliers):
- A·B branch: Requires 1 Normally Open (NO) contact from Relay A, 1 NO from Relay B.
- A'·C branch: Requires 1 Normally Closed (NC) contact from Relay A, 1 NO from Relay C.
- B·C branch (Consensus): Requires 1 NO from Relay B, 1 NO from Relay C.
Total physical contacts used: 6 contacts.
Because each Omron relay only has 2 usable contact sets, wiring 6 discrete logic contacts requires purchasing and wiring 3 full physical relays just for the logic evaluation, plus the base relays generating the A, B, and C signals. Total logic BOM cost: $25.50, occupying 45mm of DIN rail space.
Applying the Consensus Property
By recognizing that B·C is the consensus term of A·B and A'·C, we eliminate it. The simplified equation is: F = A·B + A'·C
- Total physical contacts used: 4 contacts.
- Hardware required: 2 physical relays (utilizing exactly 4 contact sets).
The Savings: You eliminate an entire physical relay module. You save $8.50 on the BOM, free up 15mm of DIN rail space, and reduce the physical wiring terminations by 33%. Furthermore, you eliminate one entire parallel branch, reducing the total current draw of the control circuit and minimizing voltage drop across the contact resistances.
Where You Meet This in Practice
You will encounter the consensus property in two vastly different domains of modern electrical engineering, and it behaves slightly differently in each.
1. PLC Ladder Logic and Industrial Controls
When programming a PLC (like an Allen-Bradley CompactLogix or Siemens S7-1200), the compiler automatically optimizes your ladder rungs. However, if you are manually tracing legacy relay schematics or writing complex structured text (ST), manually applying the consensus theorem prevents you from wiring 'ghost' branches that consume unnecessary I/O points and scan-time cycles.
2. FPGA Synthesis and the Hazard Paradox
In modern FPGA design (using tools like AMD Xilinx Vivado or Intel Quartus), synthesis engines use the consensus theorem in reverse. While the theorem says you can remove the YZ term to simplify the math, physical silicon has propagation delays.
If A transitions from 1 to 0 while B=1 and C=1, the A·B term turns off before the A'·C term turns on due to the nanosecond delay of the inverter generating A'. This creates a momentary glitch (a '0' spike) on the output. This is called a static-1 hazard. To prevent this in asynchronous FPGA designs, engineers intentionally add the consensus term (B·C) back into the logic to 'bridge' the gap during the transition. (See MIT OCW Computation Structures for deep-dive hazard analysis).
Common Confusions and the Hazard Trade-Off
Because Boolean algebra features several simplification theorems, the consensus property is frequently mixed up with other rules on the bench.
| Theorem | Formula | What it Eliminates | Primary Use Case |
|---|---|---|---|
| Consensus | XY + X'Z + YZ = XY + X'Z | The 'bridge' term (YZ) | Optimizing 3-variable interlocks; hazard analysis. |
| Absorption | A + AB = A | The multiplied subset (AB) | Stripping out redundant parallel branches. |
| Distributive | A(B + C) = AB + AC | N/A (Restructures terms) | Converting between SOP (Sum of Products) and POS. |
| De Morgan's | (AB)' = A' + B' | N/A (Inverts logic type) | Converting AND/OR gates to universal NAND/NOR gates. |
The most critical mistake hobbyists and junior engineers make is blindly applying the consensus theorem to simplify an equation, then building the physical circuit, only to discover intermittent glitches when the inputs toggle. If your circuit drives a clock line, a high-side MOSFET gate, or a sensitive enable pin, that nanosecond glitch caused by removing the consensus term can trigger catastrophic false-states. Always evaluate whether your load is sensitive to propagation-delay hazards before deleting the redundant term.
Frequently Asked Questions
Q: Does the consensus property work for Product of Sums (POS) expressions?
A: Yes. The dual of the consensus theorem is (X+Y)(X'+Z)(Y+Z) = (X+Y)(X'+Z). The (Y+Z) term is redundant and can be eliminated, which is highly useful when optimizing NOR-based logic arrays.
Q: Will Arduino or ESP32 code benefit from manually applying this?
A: In software (C/C++), the GCC compiler's optimization passes (like -O2 or -O3) will automatically identify and strip redundant logical evaluations. You do not need to manually simplify `if ((A && B) || (!A && C) || (B && C))` in your Arduino sketch; the compiler handles it. Focus on readability instead.
Q: How do I identify the consensus term in a massive equation?
A: Look for any two terms that share a variable in both its true and complemented form (e.g., A and A'). Multiply the remaining variables from those two terms. If that exact product exists elsewhere in your sum, it is the consensus term and can be crossed out.






