Working with the Consensus Law in Boolean Algebra
The consensus law lets you add or remove a term from a boolean expression without changing its logical value. That sounds like magic until you actually need it, then it just becomes a tool you either remember or spend twenty minutes re-deriving from first principles. The formal rule is simple: X·Y + Y·Z + X'·Z = X·Y + X'·Z. The middle term Y·Z is the consensus, and it disappears because the other two terms already cover every case it would. The prime notation means NOT — so X' is just the complement of X. If you write it in POS form instead, it becomes (X+Y)·(Y+Z)·(X'+Z) = (X+Y)·(X'+Z), same idea flipped.
Understanding the Boolean Algebra Consensus Law
Most textbooks present this as one theorem among dozens, which makes it easy to gloss over. In practice it shows up everywhere in digital logic design, particularly when you are trying to eliminate static hazards in combinational circuits. That is where I actually first needed it, not in a homework problem. I was working on a two-level AND-OR implementation of a function that checked whether three signals were in a specific state transition sequence. The schematic looked clean on paper. When I built it out of actual gates — 74HC08 ANDs and a 74HC32 OR — I started seeing glitches on an oscilloscope during transitions where two inputs changed at the same time. The output briefly went low when it should have stayed high. Classic static-1 hazard. The fix was adding a consensus term that wasn't strictly necessary for the logic function but covered the transition gap. In this case I added X·Z to the expression where the original had been X·Y + X'·Z. It didn't change the truth table at all, but it eliminated the glitch because now both paths through the gate delay were covered simultaneously. That took me from a failing design to a working one in about an hour of gate-level simulation.
Here is the thing beginners routinely miss: the consensus law doesn't always reduce complexity. Sometimes it increases the literal count. If you apply it naively across a long expression you can end up with more terms than you started with, which is the opposite of what you want in a minimization effort. Another common mistake is assuming the consensus term is always unique. With three variables it is straightforward — you identify the variable that appears in complemented form in one term and uncomplemented in another, then the consensus is the product of everything else. But with six or seven variables in a sum-of-products form, manual identification becomes error-prone fast. That is where people start making decisions by hand that a Karnaugh map or a Quine-McCluskey algorithm would resolve in seconds. I use a quick heuristic when doing hand simplification: look for pairs of product terms that differ in exactly one variable — one has the variable, the other has its complement. Those are your consensus candidates. If three or more variables differ between two terms, no consensus applies directly between them.
Get the Full Details

There is also a dual version worth knowing if you work in POS form. The consensus of two sum terms is formed by removing the complementary literal and ORing the remainders. It works the same way, just with the operators swapped. I find myself using the dual version more often in practice because many optimization tools output POS forms for NAND/NOR implementations. A limitation that isn't always obvious: the consensus method guarantees a complete reduction only when you iteratively generate all possible consensus terms and remove any that are subsumed by others. Do it once and you are probably not done. The residue of terms you get after full iteration is the prime implicant cover. That is the bridge between the consensus theorem as a single rule and the broader consensus algorithm used in logic minimization software. If you are dealing with expressions that have more than four or five variables, stop doing this by hand. Use a tool. Espresso, available as open source under the Berkeley license, is the standard reference implementation. It runs on Linux and macOS out of the box. You can find it at sourceforge.net/projects/espresso-logic-minimizer/ or grab a Windows binary from the same page. It takes a truth table or minterm list in PLAI format and spits back a minimized SOP or POS with all prime implicants identified. I run it on anything with more than five variables before I ever touch a K-map.
The real value of the consensus law isn't in memorizing the formula. It is in recognizing when a redundant term is doing useful work — covering a hazard, bridging a gap in a K-map, or enabling a particular gate topology. The formula is the easy part.