Logika binarna Logika binarna zajmuje się zmiennymi mogącymi przyjmować dwie wartości dyskretne oraz operacjami mającymi znaczenie logiczne. Dwie wartości jakie mogą te zmienne przyjmować noszą przy tym różne nazwy, takie jak: prawdziwy i fałszywy, tak i nie, itd., wygodnym będzie przypisanie im wartości 1 i 0. Logika binarna używana jest w celu matematycznego opisu przetwarzania informacji binarnej. Jest ona szczególnie dostosowana do analizy i projektowania systemów cyfrowych. Dla przykładu cyfrowe układy logiczne wykonujące binarne operacje arytmetyczne są układami, których zachowanie najwygodniej opisać za pomocą zmiennych binarnych i operacji logicznych. Logika binarna przedstawiona w tym punkcie równoważna jest algebrze zwanej algebrą Boole a. Logika binarna zajmuje się zmiennymi binarnymi i operacjami logicznymi. Zmienne oznaczane są literami alfabetu takimi jak: A, B, C, x, y, z, itd. Każda z nich przyjmować może dwie różne wartości: 1 i 0. Istnieją trzy podstawowe operacje logiczne: I, LUB oraz NIE. Operacja I jest przedstawiana za pomocą kropki (znak mnożenia), którą często pomijamy. Np.: wyrażenie x*y = z lub xy = z. Operacja logiczna I jest rozumiana w ten sposób, że z = 1 wtedy gdy x = 1 i y = 1, w przeciwnym przypadku z = 0 (należy pamiętać, że x, y, z są zmiennymi binarnymi i mogą przyjmować wartości 1 lub 0). Operacja LUB jest przedstawiana za pomocą znaku +. Np.: x+y = z odczyt x lub y jest równe z, co oznacza, że z = 1 wtedy gdy x = 1 lub y = 1 lub gdy zarówno x = 1 i y = 1, w przypadku gdy x = 0 i y = 0 to z = 0. Operacja NIE jest przedstawiona za pomocą znaku prim lub kreski. Np.: x = z odczytujemy: nie x jest równe z Algebra Boole'a podstawowe definicje: Domknięcie zbiór S jest domknięty ze względu na operator binarny, jeśli dla każdej pary elementów ze zbioru S operator ten określa regułę na podstawie, której otrzymuje się w sposób jednoznaczny element zbioru S. Na przykład zbiór liczb naturalnych N ={1, 2, 3,...} jest domknięty względem operacji dodawania (+), gdyż dla każdego a, b N otrzymujemy w sposób jednoznaczny c N przy pomocy operacji a + b = c. Zbiór liczb naturalnych nie jest domknięty względem operatora binarnego minus (-) oznaczającego arytmetyczne odejmowanie, gdyż np.: 2 3 = -1, a więc a, b N lecz c N. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S. Prawo przemienności mówimy, że operator binarny * na zbiorze S jest przemienny, gdy x * y = y * x dla każdego x, y S. Element identycznościowy zbiór S posiada element identycznościowy względem operacji binarnej * na S, jeśli istnieje element e S o własności e * x = x * e = x dla każdego x S. Np.: Element O jest elementem identycznościowym względem operacji + na zbiorze liczb całkowitych I = {...-3, -2, -1, 0, 1, 2, 3,...} x + 0 = 0 + x = x dla każdego x I
Element odwrotny zbiór S mający element identycznościowy e względem operatora binarnego * posiada element odwrotny, jeśli dla każdego x S istnieje taki element y S, że x * y = e. Np.: w zbiorze liczb całkowitych elementem odwrotnym do elementu a jest element -a, gdyż a + (-a) = 0. Prawo rozdzielczości jeśli * i są operatorami binarnymi na zbiorze S, mówimy, że operator * jest rozdzielny względem operatora jeśli zachodzi równość x * (y z) = (x * y) (x * z). Aksjomatyczna definicja algebry Boole'a postulaty Huntigtona: 1. Domknięcie względem operatora + 2. Domknięcie względem operatora * 3. Element identycznościowy względem + oznaczony jako 0 : x + 0 = 0 + x = x 4. Element identycznościowy względem * oznaczony jako 1 : x * 1 = 1 * x = x 5. Przemienność względem dodawania : x + y = y + x 6. Przemienność względem mnożenia: x * y = y * x 7. Rozdzielność mnożenia względem dodawania: x* (y + z) = (x * y) + (x * z) 8. Rozdzielność dodawania względem mnożenia: x + (y * z) = (x + y) * (x + z) 9. Dla każdego elementu x B istnieje taki element x B, że: x + x = 1 oraz x* x = 0 10. Istnieją przynajmniej dwa elementy x, y B takie, że x y. ALGEBRA BOOLE'A Dwuelementowa algebra Boole a jest określona na zbiorze dwóch elementów B={0, 1}, przy czym reguły dla operatorów binarnych + i * podano w następujących tabelach:» Operacja I: x y x * y 0 0 0 0 1 0 1 0 0 1 1 1» Operacja LUB: x y x + y 0 0 0 0 1 1 1 0 1 1 1 1
» Operacja NIE: x x 0 1 1 0» Operacja EX-OR: - suma modulo dwa x y x y 0 0 0 0 1 1 1 0 1 1 1 0 Powyższe reguły są dokładnie takie same jak operacje: I, LUB, NIE. Należy teraz pokazać, że postulaty Huntingtona są spełnione dla zbioru b = {0, 1} oraz dwóch operatorów binarnych zdefiniowanych powyżej: Domknięcie zachodzi, gdyż jak widać bezpośrednio z tablic, wynikiem każdej operacji jest 1 lub 0, a 1.0 B. Z tablic wynika, że: 0 + 0 = 0 0 + 1 = 1 + 0 = 1 1 * 1 = 1 1 * 0 = 0 * 1 = 0 co określa dwa elementy identycznościowe 0 dla + i 1 dla * zgodnie z postulatem 2. Przemienność wynika z symetrii tablic obu operatorów binarnych. Prawo rozdzielności:» rozdzielność mnożenia względem dodawania można udowodnić na podstawie tabeli prawdy,» rozdzielność dodawania względem mnożenia można również udowodnić na podstawie tabeli prawdy.
Na podstawie tabeli dopełnień łatwo znajdujemy: x + x = 1, stąd 0 + 0 = 0 + 1 = 1 oraz 1 + 1 = 1 + 0 = 1 x * x = 0, stąd 0 * 0 = 0 * 1 = 0 oraz 1 * 1 = 1 * 0 = 0 co sprawdza postulat 5. Postulat 6 jest spełniony gdyż dwuelementowa algebra Boole a posiada dwa różne elementy 1 i 0 przy czym 1 0. Podstawowe twierdzenia i własności algebry Boole'a: Dualność postulaty Huntingtona zostały zgrupowane parami i oznaczone jako część a) i część b). Jedna część postulatów może być otrzymana z drugiej, jeśli zamieni się miejscami operatory binarne oraz elementy identycznościowe. Ta własność algebry Boole a zwana jest zasadą dualności. Głosi ona, że każde wyrażenie algebraiczne jakie wyprowadzić można na podstawie postulatów algebry Boole a pozostaje słuszne, jeśli operatory i elementy identycznościowe zostaną zamienione miejscami. W dwuelementowej algebrze Boole a elementy identycznościowe i elementy zbioru B są te same: 1 i 0. Zasada dualności posiada wiele zastosowań, aby otrzymać wyrażenie dualne do danego wyrażenia algebraicznego należy zamienić miejscami operatory LUB oraz I, a 1 zastąpić 0, bądź odwrotnie Zestawienie: Postulaty Huntingtona część a) część b) Postulat 2 x + 0 = x x * 1 = x Postulat 5 x + x = 1 x * x = 0 Twierdzenie 1 x + x = x x * x = x Twierdzenie 2 x + 1 = 1 x * 0 = 0 Twierdzenie3 INWOLUCJA Postulat3 PRZEMIENNOŚĆ Twierdzenie4 ŁĄCZNOŚĆ Postulat4 ROZDZIELNOŚĆ Twierdzenie5 PRAWA DE MORGANA Twierdzenie6 ABSORPCJA (x ) = x ----------------- x + y = y + x x +(y + z) = (x + y) + z x * y = y * x x *(y * z) = (x * y)* z x *(y + z) = x * y + x * z x +y * z = (x + y) * (x + z) (x + y) = x * y (x * y) = x + y x + x * y = x x *(x + y) = x
FUNKCJE BOOLEOWSKIE Zmienna binarna może przyjmować wartości 0 lub 1. Funkcja boolowska jest to wyrażenie utworzone przy pomocy zmiennych binarnych dwu operatorów binarnych I oraz LUB, operatora jednoargumentowego NIE, nawiasów i znaku równości. Dla zadanych wartości zmiennych funkcja taka przyjmować może wartości: 0 lub 1. Na przykład: Weźmy funkcję: F 1 = xyz Funkcja F 1 równa jest 1 jeśli x = 1 i y = 1 i z = 0, w innych przypadkach F1 = 0. Każda funkcja boolowska może być przedstawiona za pomocą tablicy prawdy. Liczba wierszy w tej tablicy wynosi 2 n, gdzie n jest liczbą zmiennych. Kombinację zer i jedynek występującą w każdym wierszu łatwo otrzymać biorąc kolejne liczby binarne od 0 do 2 n -1. Każdej z nich odpowiada przy tym wartość funkcji wynosząca 1 lub 0. Gdy dwie zmienne połączone są ze sobą przy pomocy operatorów binarnych I oraz LUB, tworzą one odpowiednio funkcje boolowskie x * y i x + y. Jak stwierdzono istnieje 2 2 n funkcji n zmiennych. Dla dwóch zmiennych x i y istnieje 16 możliwych do utworzenia funkcji. x y F 0 F 1 F 2 F 3 F 4 F 5 F 6 F 7 F 8 F 9 F 10 F 11 F 12 F 13 F 14 F 15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 i / / + LEGENDA: / ZAKAZ ALBO + LUB NOR RÓWNOWAŻNOŚĆ NEGACJA IMPLIKACJA
IMPLIKACJA NAND F 0 = 0 F 1 = x * y F 2 = x * y = x / y F 3 = x F 4 = x * y = y / x F 5 = y F 6 = x * y + x * y = x y F 7 = x + y F 8 = (x + y) = x y F 9 = x * y + x * y = x y F 10 = y F 11 = x + y = x y F 12 = x F 13 = x + y = x y F 14 = (x * y) = x y F 15 = 1 ZERO i x i y ZAKAZ x lecz nie y Funkcja jest równa x ZAKAZ y lecz nie x Funkcja jest równa y ALBO x lub y, lecz nie oba LUB x lub y NOR nie lub RÓWNOWAŻNOŚĆ x równoważne y NEGACJA nie y IMPLIKACJA jeśli y to x NEGACJA nie x IMPLIKACJA jeśli x to y NAND nie i JEDEN, IDENTYCZNOŚĆ