The absorption law in Boolean algebra is a simplification rule stating that a variable ORed with its ANDed combination with another variable simply equals the original variable (A + AB = A). If you are designing digital logic, routing PCB traces for discrete ICs, or writing RTL for an FPGA, this law is your fastest route to deleting unnecessary gates, trimming propagation delay, and saving power. Unlike standard arithmetic algebra where x + xy factors to x(1 + y), Boolean algebra operates in a binary universe where 1 + anything = 1, collapsing the expression entirely.
The Core Rules and Hardware Impact
Before we wire up a breadboard, let us look at the exact mathematical definitions and what they mean for physical silicon. The absorption law actually consists of two dual identities:
- OR Absorption: A + AB = A
- AND Absorption: A(A + B) = A
To prove this, we do not just look at abstract math; we look at the truth table and the physical hardware cost. Below is a data-dense comparison of what happens when you fail to apply the absorption law to a simple 2-variable logic function using standard 74LS-series discrete logic ICs.
| Input A | Input B | Unsimplified: A + AB | Simplified: A | 74LS IC Count (Unsimp.) | 74LS IC Count (Simp.) | Max Propagation Delay |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 + (0·0) = 0 | 0 | 2 (74LS08, 74LS32) | 0 (Direct Wire) | ~35ns vs 0ns |
| 0 | 1 | 0 + (0·1) = 0 | 0 | 2 (74LS08, 74LS32) | 0 (Direct Wire) | ~35ns vs 0ns |
| 1 | 0 | 1 + (1·0) = 1 | 1 | 2 (74LS08, 74LS32) | 0 (Direct Wire) | ~35ns vs 0ns |
| 1 | 1 | 1 + (1·1) = 1 | 1 | 2 (74LS08, 74LS32) | 0 (Direct Wire) | ~35ns vs 0ns |
Worked Example: Simplifying a Pump Interlock Circuit
Let us move from truth tables to a real-world control scenario. Imagine you are designing a safety interlock for an industrial water pump using discrete logic. The pump should run if the main Run_Switch (A) is engaged. However, a junior engineer added a redundant check: the pump should also run if the Run_Switch (A) AND the Low_Water_Sensor (B) are both active.
The initial Boolean equation written on the whiteboard is:
Y = A + (A · B)
Let us evaluate this numerically with real binary states to prove the redundancy:
State 1: Run_Switch is OFF (A = 0), Water is Low (B = 1)
- Substitute values: Y = 0 + (0 · 1)
- AND operation: 0 · 1 = 0
- OR operation: 0 + 0 = 0
- Result: Pump stays OFF. (Matches simplified Y = A = 0)
State 2: Run_Switch is ON (A = 1), Water is Normal (B = 0)
- Substitute values: Y = 1 + (1 · 0)
- AND operation: 1 · 0 = 0
- OR operation: 1 + 0 = 1
- Result: Pump turns ON. (Matches simplified Y = A = 1)
Because the output Y perfectly tracks input A in every possible state, the B variable is logically absorbed. In a physical panel, you would rip out the 7408 AND gate, rip out the 7432 OR gate, and simply wire the Run_Switch relay contact directly to the motor contactor coil. You just saved $0.80 in BOM costs, freed up 14 pins on your PCB, and eliminated 35 nanoseconds of propagation delay.
Where You Meet This in Practice
You rarely sit down with a pencil to apply the absorption law manually in modern engineering, but the underlying mechanics dictate how your tools operate and how you should structure your code.
FPGA Synthesis and LUT Exhaustion
When you write Verilog or VHDL for an FPGA (like a Xilinx Artix-7 or Intel Cyclone V), the synthesis tool (Vivado or Quartus) maps your logic into Look-Up Tables (LUTs). If you write messy RTL with redundant absorbed terms, the synthesizer will usually catch it and optimize it away. However, heavily nested, poorly structured logic can sometimes confuse the optimizer, causing it to consume extra LUTs. Writing clean, pre-absorbed logic ensures the synthesizer maps your design efficiently, leaving more LUTs available for complex state machines.
PLC Ladder Logic Scan Times
In industrial automation, Programmable Logic Controllers (PLCs) execute ladder logic in a continuous scan loop. Every contact and coil instruction takes a fraction of a microsecond to evaluate. If you have a massive routine with unoptimized logic like XIC Motor_Run OR (XIC Motor_Run AND XIC High_Pressure), the PLC processor evaluates both branches. Applying the absorption law manually in your ladder logic reduces the instruction count, shaving microseconds off the scan time. In high-speed packaging lines where a 2ms scan time is the difference between catching a bottle and dropping it, every optimized rung counts.
Relay Logic and Contact Wear
For legacy systems or high-voltage control panels using physical electromechanical relays, an unoptimized circuit means current is flowing through unnecessary series/parallel contact branches. Physical relay contacts degrade over time due to arcing. Simplifying the circuit via absorption reduces the number of physical contacts in the current path, directly extending the maintenance interval of the panel.
Common Confusions and Mathematical Pitfalls
When studying digital logic, the absorption law is frequently mixed up with other Boolean theorems. Here is what you need to watch out for.
Confusion with Standard Arithmetic Algebra
The most common mistake beginners make is trying to apply standard algebraic factoring to Boolean expressions. In standard math, x + xy = x(1 + y). Because 1 + y does not equal 1 in standard math (if y=2, 1+2=3), the expression does not collapse to x. In Boolean algebra, the OR operation caps at 1. Therefore, 1 + y is always 1, regardless of whether y is 0 or 1. This fundamental difference is why the absorption law only works in binary logic (Stanford Encyclopedia of Philosophy).
Confusion with the Consensus Theorem
Another frequent mix-up is the Consensus Theorem, which looks somewhat similar but involves three variables and a negation: AB + A'C + BC = AB + A'C. The consensus theorem eliminates the redundant BC term. The absorption law is much simpler and does not require inverted variables (NOT gates). If you see a complemented variable (like A'), you are likely looking at consensus or redundancy theorems, not pure absorption.
Confusion with the Distributive Law
People often try to use the distributive law A + AB = A(1 + B) as the final step. While mathematically valid in Boolean algebra as an intermediate step, stopping there means you have not finished simplifying. The distributive law is the mechanism used to prove the absorption law, but absorption is the final, fully reduced state.
Frequently Asked Questions
Does the absorption law apply to XNOR or XOR gates?
No. The absorption law specifically applies to the standard AND, OR, and NOT operations. XOR (Exclusive OR) and XNOR do not follow the same absorption identities because their truth tables do not cap at 1 in the same way a standard OR gate does. For example, A ⊕ (A · B) does not simplify to A.
Will Verilog and VHDL compilers always catch unoptimized absorption logic?
Modern synthesis tools like Xilinx Vivado and Intel Quartus are exceptionally good at Boolean minimization and will almost always absorb A + AB into A during the logic optimization phase. However, relying entirely on the compiler can lead to inefficient intermediate routing in highly complex designs. Writing clean, minimized RTL is always a best practice (All About Circuits).
What is the dual of the absorption law?
The dual of the OR absorption law (A + AB = A) is the AND absorption law: A(A + B) = A. Duality in Boolean algebra involves swapping ANDs for ORs, and ORs for ANDs, while leaving the variables and complements unchanged.






