3.12. Minimizing (Reducing) Your Boolean Logic
Problem
Many times a Boolean equation quickly becomes large, complex, and even unmanageable. You need a way to manage this complexity while at the same time verifying that your logic works as designed.
Solution
To fix this situation, try applying the theorems shown in Table 3-1 to minimize these types of equations.
Table 3-1. Boolean theorems
|
Theorem ID |
Theorem definition |
|---|---|
|
T0 |
!(!x) == x |
|
T1 |
x | x == x |
|
T2 |
x | !x == true |
|
T3 (DeMorgan’s Theorem) |
!x | !y == !(x & y) |
|
T4 |
x & x == x |
|
T5 |
x & !x == false |
|
T6 (DeMorgan’s Theorem) |
!x & !y == !(x | y) |
|
T7 (Commutative Law) |
x | y == y | x |
|
T8 (Associative Law) |
(x | y) | z == x | (y | z) |
|
T9 (Distributive Law) |
x & y | x & z == x & (y | z) |
|
T10 |
x | x & y = x |
|
T11 |
x & y | x & !y = x |
|
T12 |
(x & y) | (!x & z) | (y & z) == (x & y) | (!x & z) |
|
T13 (Commutative Law) |
x & y == y & x |
|
T14 (Associative Law) |
(x & y) & z == x & (y & z) |
|
T15 (Distributive Law) |
(x | y) & (x | z) == x | (y & z) |
|
T16 |
x & (x | y) = x |
|
T17 |
(x | y) & (x | !y) = x |
|
T18 |
(x | y) & (!x | z) & (y | z) == (x | y) & (!x | z) |
|
T19 |
x | x | x | ... | x == x |
|
T20 |
!(x | x | x | ... | x) == !x & !x & !x & ... & !x |
|
T21 |
x & x & x & ... & x == x |
|
T22 |
!(x & x & x & ... & x) == !x | !x | !x | ... | !x |
|
T23 |
(x | y) & (w | z) == (x & w) | (x * z) | (y & w) | (y * z) |
|
T24 |
(x & y) | (w & z) == (x | w) & (x | z) & (y | w) & (y | z) |
In Table 3-1, assume that w,
x, y, and z
are all variables of type bool. The
Theorem
ID column ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access