// laws and rules · Logical equivalence
Absorption law_
Absorption is the simplification law par excellence: when one alternative is already contained in another, it is redundant. The formula p ∨ (p ∧ q) reduces to plain p, whatever q says, and its truth table confirms it in all four rows.
Example
(p ∨ (p ∧ q)) ⇔ p
What the variables mean
- ▸ p: “I am a club member”
- ▸ q: “I have an invitation”
In plain words
“I get in if I am a member, or if I am a member and have an invitation” is a convoluted way of saying “I get in if I am a member”.
Truth table
| p | q | p ∧ q | p ∨ (p ∧ q) | (p ∨ (p ∧ q)) ⇔ p★ |
|---|---|---|---|---|
| T | T | T | T | T |
| T | F | F | T | T |
| F | T | F | F | T |
| F | F | F | F | T |
Classification: Tautology · 4 rows
Statement
The law states that p ∨ (p ∧ q) ≡ p. It has an equally valid dual version: p ∧ (p ∨ q) ≡ p. In both, the term next to p is “absorbed” and disappears.
The key is that p ∧ q is always stricter than p: any situation making p ∧ q true already made p true. Adding it as an alternative contributes no new case.
Why it holds: reading the table
Rows with p = T: the disjunction is T because its first member already is, and the right side is T as well. They agree without even looking at q.
Rows with p = F: then p ∧ q is F (a conjunction with a false factor), so the disjunction F ∨ F gives F, matching the right side. Both sides agree in all four rows, so the biconditional is a tautology.
How it is used
It is the rule that spots redundant conditions. Whenever an expression contains a term and also a conjunction containing that term, the latter can be dropped without changing behaviour.
In Boolean minimisation (Karnaugh maps, the Quine-McCluskey algorithm) absorption is what lets you discard implicants already covered by more general ones.
Examples
Everyday: “I will take an umbrella if it rains, or if it rains and is windy.” The second condition adds nothing: raining is enough.
Programming: `if (isAdmin || (isAdmin && hasPermission))` simplifies to `if (isAdmin)`. Modern linters flag this pattern precisely because it is an absorption.
Relation to other laws
It follows from distributivity and idempotence: p ∨ (p ∧ q) ≡ (p ∨ p) ∧ (p ∨ q) ≡ p ∧ (p ∨ q), and that last form is absorbed into p again.
Together with idempotence and commutativity it belongs to the “clean-up” group of laws applied at the end of a simplification to leave the expression minimal.
Try it yourself
Edit the expression in the calculator and watch how every step of the table changes.
Open in the calculator →Related operators
Frequently asked questions
Is there a version with ∧ on the outside? ▼
Yes: p ∧ (p ∨ q) ≡ p, proved the same way. It is the dual form of the same law.
What if q is always false? ▼
It does not matter: the law holds for any q, be it a contingency, a tautology or a contradiction. That is why no row depends on q.
Is it useful for optimising code? ▼
Yes, it removes needless evaluations. More importantly it makes the code easier to read, which usually matters more than the micro performance gain.
