Die Steuerungseinheit eines Computers kann als ein elektronischer Schaltkreis angesehen werden, der Boole'sche Funktionen implementiert. Damit sie nicht eingeschränkt ist, muss diese Menge von Boole'schen Funktionen eine vollständige Basis bilden.
Minimale vollständige Basen haben gegenüber nichtminimalen Basen den Vorteil, keine redundanten Elemente zu enthalten, was kostengünstig ist. Die minimale vollständige Basis {NAND} hat den zusätzlichen Vorteil, dass die Funktion NAND mit Transistoren einfach zu implementieren ist. Das ist der Grund, warum die meisten Schaltkreise viele sogenannte ,,NAND-Gatter`` enthalten.
Bei der Entwicklung von Schaltkreisen werden zunächst die benötigten Boole'schen Funktionen bestimmt. Betrachten wir als Beispiel einen Multiplexer. Das ist ein Schaltkreis, der eingesetzt wird, wenn eine einzige Leitung für unterschiedliche Zwecke verwendet wird oder wenn eine Komponente Eingabewerte aus verschiedenen anderen Komponenten erhalten soll. Er entspricht einer mehrstelligen Boole'schen Funktion, die einfach eines ihrer Argumente als Ergebnis liefert, aber welches der Argumente, hängt von Steuergrößen ab.
Der einfache Multiplexer hat drei Eingänge s, x0, x1 und einen Ausgang y. Der Wert des Steuereingangs s legt dabei fest, ob der Eingang x0 oder der Eingang x1 auf den Ausgang y geschaltet wird (s steht für ,,switch`` oder Schalter): falls s = w dann y = x1, falls s = f dann y = x0. Dieses Verhalten des Multiplexers kann durch eine Tabelle beschrieben werden.
x0 _______________|‾‾|x1 _______________|__|______________ y
s _________________|
| s x0 x1 | y |
| w w w | w |
| w w f | f |
| w f w | w |
| w f f | f |
| f w w | w |
| f w f | w |
| f f w | f |
| f f f | f |
Dieser Multiplexer entspricht also einer dreistelligen Boole'schen Funktion y = MUX(s,x0,x1) mit der gegebenen Wahrheitstabelle. Mit der Beweistechnik von Satz 3.1.3, Punkt 1 (a), genauer gesagt, mit einer dazu dualen Variante, kann man aus der Tabelle unmittelbar ablesen, wie diese Funktion auf die Basis {NOT,AND,OR} zurückgeführt werden kann:
| MUX(s,x0,x1) = | ( | s AND ( | x0 AND | x1)) | (*) | ||||
| OR | ( | s AND ( | NOT | x0 AND | x1)) | ||||
| OR | ( | NOT | s AND ( | x0 AND | x1)) | ||||
| OR | ( | NOT | s AND ( | x0 AND | NOT | x1)) |
Diese Darstellung der Boole'schen Funktion wird dann weiter umgewandelt, zum Beispiel auf eine andere - für die technische Realisierung günstigere - Basis zurückgeführt, oder vereinfacht, wobei es unterschiedliche Kriterien für ,,einfach`` gibt. Eine vereinfachte Darstellung in unserem Beispiel wäre MUX(s,x0,x1) = (NOT s AND x0) OR (s AND x1). Diese Darstellung der Funktion sollte keine Überraschung sein, wenn man sich an das beschriebene Verhalten des Multiplexers erinnert!
Was bei diesen Umwandlungen erlaubt ist, damit die umgewandelte Darstellung auch in jedem Fall dieselbe Boole'sche Funktion beschreibt wie die Ausgangsdarstellung, ergibt sich aus den Rechenregeln der Boole'schen Algebra.
Im Formalismus der Boole'schen Algebra würde (*) so dargestellt:
| MUX(s,x0,x1) = | (s | × | x0 | × | x1) | (**) | |
| + | (s | × | x0‾ | × | x1) | ||
| + | (s‾ | × | x0 | × | x1) | ||
| + | (s‾ | × | x0 | × | x1‾) |
Eine Boole'sche Algebra kann entweder als ,,komplementärer distributiver Verband`` (siehe Algebra-Vorlesung) definiert werden, oder wie folgt mit einem Axiomensystem.