Operatori Booleani Operatori che lavorano bit a bit Anche detti bitwise operator o operatori booleani : AND: prodotto logico dati due bit restituisce il valore 1 se e solo se i bit erano entrambi posti a 1, in tutti gli altri casi il risultato è 0 OR: somma logica dati due bit restituisce il valore 0 se e solo se i bit erano entrambi posti a 0, in tutti gli altri casi il risultato è 1 NOT: negazione o complementazione dato un bit restituisce il valore 0 se esso era posto a 1, restituisce invece 1 se il bit era posto a 0
Tavola di Verità
Esempio
Precedenza degli operatori In ordine di priorità (dalla maggiore alla minore) NOT AND OR Esempi: a OR b AND c = a OR (b AND c) a OR NOT b = a OR (NOT b) a OR NOT b AND c = a OR ((NOT b) AND c)
Algebra di Boole
Algebra di Boole George Boole, 1815-1864 Matematico e logico britannico Padre della logica matematica Scienza che modella matematicamente la logica in accordo ad un linguaggio formale An investigation into the laws of thought on which are founded the mathematical theories of logic and probabilities (Un indagine sulle leggi del pensiero su cui sono fondate le teorie matematiche della logica e della probabilità) Algebra di Boole è alla base de L algebra della logica delle proposizioni L algebra degli insiemi L algebra dei circuiti
Algebra di Boole Struttura algebrica K(+,*) K è l insieme di definizione detto sostegno Variando il sostegno, varia il modello dell algebra di Boole + e * sono due leggi binarie di composizione interna Operano su coppie di valori di K e restituiscono un valore di K + è detta somma logica * è detta prodotto logico L algebra di Boole studia le strutture algebriche K(+,*) che soddisfano 7 proprietà dette postulati definitori Tali strutture sono dette reticoli distributivi complementati dotati di minimo e massimo
Postulati definitori 1. Proprietà di commutatività a + b = b + a a, b K a * b = b * a 2. Proprietà di associatività (a + b) + c = a + (b + c) (a * b) * c = a * (b * c) 3. Proprietà di idempotenza a + a = a a * a = a 4. Proprietà di assorbimento a + (a * b) = a a * (a + b) = a a, b K a, b K a, b K Definizione di reticolo
Postulati definitori 5. Proprietà di distributiva a + (b * c) = (a + b) * (a + c) a * (b + c) = (a * b) + (a * c) 6. Esistenza del minimo e massimo in K un elemento minimo, detto 0, ed un elemento massimo, detto 1, t.c. a * 0 = 0 a + 1 = 1 a K a, b K 7. Esistenza del complemento a di K,! in K l elemento complemento di a, detto!a, t.c. a *!a = 0 a +!a = 1 (spesso il complemento di a si indica anche come a )
Algebra di Boole Una struttura algebrica di Boole ( algebra di Boole ) può dunque essere rappresentata con la sestupla: (K, +, *,!, 0, 1) (K = {0,1}, OR, AND, NOT, 0, 1) è uno dei modelli dell algebra di Boole Detta primordiale poiché il sostegno è dato dai soli elemento di minimo e di massimo Possiamo dimostrare la validità dei postulati definitori
Legge di dualità Da qualsiasi identità boolena se ne può trarre un'altra per dualità, ovvero: Sostituendo ad ogni operatore il rispettivo operatore duale Il duale di + è * e viceversa Sostituendo 1 con 0 e viceversa
Proprietà derivanti Le proprietà derivanti sono valide per qualsiasi "porzione di realtà" che soddisfa gli assiomi di dell algebra di Boole in particolare saranno applicabili nell algebra degli insiemi, nell algebra della logica delle preposizioni e nell algebra dei circuiti Consideriamo: Negazione dello 0 e dell 1 Convoluzione Elementi neutri di somma e prodotto Teorema di De Morgan
Proprietà notevoli Negazione dello 0 e dell 1!0 = 1!1 = 0 Convoluzione!!a = a Elementi neutri di somma e prodotto a + 0 = a a * 1 = a
Teorema di De Morgan!(a + b) =!a *!b!(a*b) =!a +!b Il complemento di una somma è uguale al prodotto dei complementi dei termini dualmente, il complemento di un prodotto è uguale alla somma dei complementi dei fattori Si può dimostrare facilmente con le tabelle di verità nel caso (K = {0,1}, OR, AND, NOT, 0, 1)
Algebra della logica Una proposizione (o predicato ) può avere due valori VERO (V, true, 1) FALSO ( F, false, 0) K = {0, 1} Operazioni Congiunzione (&&, AND) Disgiunzione (, OR) Negazione (!, NOT)
Esempi p: 5 è un numero naturale q: 10 è un numero positivo la proposizione composta (p q) è vera perché p è vera e q è falsa. a: il quadrato è un rombo b: il rettangolo è un parallelogramma la proposizione composta (a && b) è vera perché sono vere entrambe le proposizioni di partenza.
Predicati complessi La verità di un predicato composto può essere calcolata a partire dalla verità dei predicati componenti conoscendo le proprietà degli operatori che li uniscono Conoscendo le proprietà degli operatori possiamo Verificare l'equivalenza tra predicati complessi Trasformare i predicati complessi in una formulazione equivalente più conveniente Cioè che prevede un minor numero di operazioni logiche
Esempio (1/2) Verificare l equivalenza dei predicati composti: p) A OR NOT B q) NOT (NOT A AND B) Procedimento Costruiamo le tabelle di verità delle due espressioni valore di verità dell espressione composta in corrispondenza di ogni possibile combinazione di valori di verità delle condizioni atomiche componenti (A e B) Le due condizioni sono equivalenti se le due tabelle di verità sono uguali
Esempio (2/2)