Sometimes, especially when there are fewer 0's than 1's in the truth table output, it is easier to build the inverted function and then invert the the output to get the true function.
The OR function has only one 0 in its output, so let's find the canonical form of the NOT OR (NOR) function
a | b | | | NOR |
0 | 0 | | | 1 |
0 | 1 | | | 0 |
1 | 1 | | | 0 |
1 | 1 | | | 0 |
NOR is true only when
a is not true and
b is not true, so the canonical form of NOR is simply
NOR(a, b) = (NOT a) AND (NOT b)
Since NOR is the invert of OR, invert NOR to get
OR(a, b) = NOT((NOT a) AND (NOT b))
--Mark