Bubble pushing is a way to redraw a gate in a second, equivalent form, or to simplify a circuit full of inversions, without writing any algebra.
The recipe for one gate has two steps, and you need both:
- Swap the body: AND becomes OR, OR becomes AND.
- Toggle every bubble: on each input and on the output, add a bubble where there wasn't one and remove it where there was.
It works because it is De Morgan's law drawn as a picture. = says a NAND (AND body, output bubble) equals an OR body with bubbled inputs.
The four pairs worth knowing:
- NAND = OR with bubbled inputs.
- NOR = AND with bubbled inputs.
- AND = OR with bubbles on the inputs and the output.
- OR = AND with bubbles on the inputs and the output.
The second tool is double inversion: two bubbles on the same wire cancel. So you may add a pair of bubbles to any wire, or remove a pair, freely.
Put together, these turn an AND-OR circuit into nand nand logic and an OR-AND circuit into nor nor logic. They also make diagrams easier to read: a NAND drawn as a bubbled OR says plainly "1 if any input is 0".