Algebra di Boole
In matematica, informatica ed elettronica, l'algebra di
Boole, anche detta algebra booleana o reticolo booleano, è un'algebra astratta che opera essenzialmente con i
soli valori di verità 0 e 1. In una formulazione più generale, l'algebra booleana si fonda su un insieme K che non
comprende solo i valori 0 e 1; tuttavia questa struttura algebrica nasce per elaborare matematicamente espressioni
nell'ambito della logica proposizionale
OR) e prodotto logico (*,AND), cioè una tripla (K,+,*),
che costituisce un reticolo in cui sono inoltre soddisfatte la proprietà distributiva, l'esistenza del minimo e del
massimo e l'esistenza del complemento.
Nel dettaglio si ha un'algebra di Boole quando su
(K, +, ∗) sono soddisfatte le seguenti proprietà:
Commutativa a + b = b + a
a∗b=b∗a
Matematicamente si dice algebra di Boole un qualunque reticolo dotato di proprietà, quali la distributività,
Associativa a + (b + c) = (a + b) + c
a ∗ (b ∗ c) =
l'esistenza di minimo e massimo e l'esistenza del comple(a ∗ b) ∗ c
mento: l'algebra booleana risulta criptomorfa, cioè associata biunivocamente e in modo da risultare logicamente
a ∗ (a + b) = a
equivalente, a un insieme parzialmente ordinato reticola- Assorbimento a + (a ∗ b) = a
to. D'altra parte ogni algebra booleana risulta criptomorfa
a + (b ∗
a un particolare tipo di anello, chiamato anello boolea- Distributiva a ∗ (b + c) = (a ∗ b) + (a ∗ c)
c) = (a + b) ∗ (a + c)
no. La struttura può essere specificata attraverso gruppi e
anelli o attraverso i reticoli in modo del tutto equivalente.
Tale algebra permette di definire gli operatori logici AND
(prodotto logico), OR (somma logica) e poi NOT (neIdempotenza
gazione o complementazione), la cui combinazione permette di sviluppare qualsiasi funzione booleana (per questo AND, OR e NOT costituiscono un insieme funa∗a=a
zionalmente completo) e consente di trattare in termi- a + a = a
ni esclusivamente algebrici le operazioni insiemistiche
a+1 =
dell'intersezione, dell'unione e della complementazione, Esistenza di minimo e massimo a∗0 = 0
1
oltre a questioni riguardanti singoli bit 0 e 1, sequenze
binarie, matrici binarie e diverse altre funzioni binarie.
a+!a = 1
L'algebra sviluppata nel 1854 all'University College di Esistenza del complemento a∗!a = 0
Cork da Boole per scrivere in forma algebrica la logica delle proposizioni, assume oggi un ruolo importante
in vari ambiti, in particolare nella logica matematica e
nell'elettronica digitale, dove nella progettazione dei circuiti elettronici rivestono grande importanza i teoremi
deducibili dagli assiomi che fondando l'algebra e in particolare si ricordi il teorema di Shannon del 1940 utilizzato per scomporre una funzione booleana complessa in
funzioni più semplici, o per ottenere un'espressione canonica da una tabella della verità o da un'espressione non
canonica.
1
Il modo in cui sono elencate le proprietà vuole mettere
in evidenza la simmetria che c'è tra i due operatori che è
poi all'origine della legge di dualità e altre proprietà molto importanti. Nell'elencare gli assiomi il complemento
è stato indicato con un extquotedbl! extquotedbl (punto
esclamativo) antecedente alla variabile booleana (notazione tipica della programmazione in C e C++); il complemento può anche essere indicato con un trattino sulla
variabile (che è tipograficamente difficile da realizzare,
anche se è la notazione migliore), con uno slash prima
della variabile o addirittura con un segno meno antecedente a essa, quando non è una notazione equivoca. Il
complemento corrisponde all'operazione logica NOT.
Definizione formale
Un'ultima osservazione riguarda il fatto che, le prime 4
proprietà riguardano i reticoli in generale, le restanti sono
Si vuole introdurre l'algebra di Boole considerandola proprie dell'algebra di Boole che sarà quindi indicata con
come reticolo.
la sestupla (K,+,*,!,0,1). Data la formulazione generale,
Si parla di algebra di Boole in riferimento a un insieme K da questo momento in poi ci si riferisce all'algebra prisul quale sono definite le operazioni di somma logica (+, mordiale che considera K={0,1}, cioè l'insieme su cui si
1
2
1 DEFINIZIONE FORMALE
basa l'algebra di Boole è composto solamente dal minimo Per dimostrarlo basta considerare l'assioma di esistenza
e dal massimo.
del complemento considerato su due elementi a e b=!a:
Si elencano ora la legge di dualità e alcune proprietà derivanti dagli assiomi ora visti con le relative dimostrazioni;
oltre a queste conseguenze ci sono poi due importanti teoremi dell'algebra booleana che sono i teoremi di De Morgan e il teorema di Shannon. I teoremi che si dimostrano
ora sono validi per qualsiasi “porzione di realtà extquotedbl che soddisfa gli assiomi di quest'algebra astratta e in
particolare saranno applicabili nell'algebra degli insiemi,
nell'algebra della logica delle proposizioni e nell'algebra
dei circuiti.
1.1
Legge di dualità
a∗a=0
a+a=1
b ∗ b = a∗!a = 0
b + b = a+!a = 1
Essendo valida la proprietà commutativa e siccome il
complemento esiste unico, se ne deduce facilmente che
!a = a , che è quello che si voleva dimostrare.
1.4 Elementi neutri
0 è l'elemento neutro della somma e 1 è l'elemento neutro
del prodotto.
Da qualsiasi identità booleana se ne può trarre un'altra per Per la dimostrazione basta sfruttare la proprietà
dualità, sostituendo cioè a ogni operatore e agli elementi dell'assorbimento grazie alla quale si deduce che:
0 e 1 il rispettivo duale: il duale di + è *, il duale di 0 è 1
(la dimostrazione di questo sta al prossimo paragrafo), il
a + (a ∗ 0) = a
a ∗ (a + 1) = a
duale di a è in generale !a (a negato, NOT a).
Grazie a questa legge si può vedere come i 14 postula- Ora, sfruttando la proprietà del massimo e minimo per la
ti dati per definire l'algebra booleana non sono tutti indi- quale a*0=0 e a+1=1, si deduce facilmente che:
pendenti tra loro: in particolare si vede che PX e PX' (per
X=1,...,7) sono uno il duale dell'altro!
a+0=a
a∗1=a
1.2
Complementi di 0 e 1
che è quello che si doveva dimostrare.
0 e 1 sono uno il complementare dell'altro: per dimostrar- 1.5
lo basta verificare la definizione di complemento, cioè
che
Assorbimento del complemento (secondo teorema dell'assorbimento)
L'assorbimento del complemento dice che
a∗a=0
a+a=1
Si vede immediatamente che
a+a∗b=a+b
Per dimostrarlo basta applicare la proprietà distributiva
secondo la quale:
1∗0=0
0+1=1
applicando rispettivamente la proprietà del minimo e a + a ∗ b = (a + a) ∗ (a + b)
quella del massimo e il teorema ora enunciato risulta così dopodiché, notando che a+!a=1 e che 1 è l'elemento
dimostrato.
neutro del prodotto logico risulta dimostrato il teorema.
Si nota che, per come è strutturata quest'algebra, questa Per la legge di dualità si capisce anche che esiste un
dimostrazione ha permesso di dimostrare a partire dagli teorema duale a questo che sarà:
assiomi che l'elemento neutro esiste ed è unico (l'esistenza
non è quindi postulata e l'unicità è insita nell'esistenza essendo solo 2 i valori con cui sta lavorando, cosa non vera a ∗ (a + b) = a ∗ b
per altri tipi di algebra e altre strutture algebriche!).
Questo teorema può essere preso per vero accettando la
validità della legge di dualità oppure può essere dimostra1.3 Convoluzione
to in modo del tutto analogo al precedente. Si nota che,
nello scrivere l'espressione duale, si è dovuta rispettare la
Negando due volte lo stesso elemento si ottiene l'elemento precedenza di applicazione delle operazioni e perciò le
stesso (logica aristotelica: una doppia negazione corri- parentesi intorno ad a+!b della seconda espressione sono
sponde a un'affermazione).
necessarie!
3
1.6
Teorema dell'elemento unico
2 Funzioni booleane
Se x + y = a e xy = 0 , allora y è unico (o anche
x è unico perché si vede che, essendo valida la proprie- L'algebra di Boole è la trattazione dell'algebra universale
tà commutativa, il ruolo di x e y nelle espressioni è lo a due stati e dei modelli di tale teoria, detti algebre booleane. L'algebra universale si occupa di studiare la famiglia
stesso!).
di operazioni su un insieme, detto insieme fondamentaPer la dimostrazione si suppone per assurdo che esistano le della famiglia algebrica, e nel caso della struttura aldue valori distinti y e z che soddisfano le due espressioni, gebrica booleana questo contiene i soli valori 0 e 1. In
e cioè
pratica le algebre booleane si occupano della trattazione
delle funzioni booleane di cui ora si accennano le nozioni principali: lo studio di queste funzioni è fondamentale
oggi per lo studio di circuiti e reti logiche, perciò se ne
x+y =x+z =a
xy = xz = 0
possono vedere subito gli scopi pratici, ma l'importanza
Essendo anche che
di queste strutture algebriche non si limita solo a questo
perché è anche fondamentale nello studio delle proposizioni e dell'insiemistica, che sono argomenti un po' più
xz = xx+xz = x(x+z) astratti ma altrettanto validi e importanti.
xy = xx+xy = x(x+y)
Il numero degli argomenti che richiede una operazione definita sull'insieme fondamentale è detto arietà
(un'addizione ad esempio è un'operazione di arietà 2, anche detta operazione binaria): un'operazione su {0,1} di
xy = xz = 0 ⇒ x(x + y) = x(x + z) ⇒ x + y = x + z arietà n può essere applicata a ognuno dei 2n possibili
valori dei suoi n argomenti (cioè basta calcolare le diNell'ultimo passaggio si è sfruttato il principio di equiva- sposizioni di 2 elementi su n posti!), ad esempio se si ha
lenza delle eguaglianze e non si è semplificato la x, cosa un'operazione di arietà 3, dato che K={0,1}, gli argomenche non è stata dimostrata e non può essere dimostrata in ti possibili sono 000,001,010,011,100,101,110,111 che
sono 8.
quest'algebra. Allora, quello che si ha ora è che
si è ottenuto che
Per ogni scelta di argomenti l'operazione può produrre i
n
soli risultati 0 e 1 e per questo ci sono 22 operazioni di
x+y =x+z
x+y =x+z
n argomenti: questo numero corrisponde quindi al numero totale di funzioni possibili di n variabili nell'algebra
Moltiplicando membro a membro e utilizzando la booleana.
proprietà distributiva si ha:
L'algebra a due stati possiede 2 operazioni con nessun
0
argomento (22 ) che restituiscono i valori 0 e 1 senza
considerare nessun argomento, e 4 operazioni con un so(x+y)∗(x+y) = xx+xy+xy+y = 0+(x+x)y+y = y = (x+z)∗(x+z)21= z
lo argomento(2 ): le operazioni possibili sono due (21 ),
l'identità e la negazione e perciò in totale le operaziocioè y=z e perciò l'elemento che soddisfa le due relazioni
ni sono 4 in quanto si ha 0→0 (id.), 0→1 (neg.), 1→0
scritte sopra è unico.
(neg.), 1→1 (id.). Vi sono poi 16 operazioni binarie, 256
operazioni ternarie, 65.536 operazioni quaternarie e così
via.
1.7
Principio di eliminazione
Siccome l'algebra di cui sta parlando è fondata su un inCome si è accennato prima, nell'algebra di Boole non sieme finito, una funzione può essere rappresentata oltre
che in forma algebrica (cioè composizione di AND, OR
valgono i principi di eliminazione, cioè non vale che:
e NOT), in forma tabellare, cioè con una tabella in cui a
ogni composizione delle variabili “di input” (usando una
terminologia più informatica) si fa corrispondere l'uscita
x+y =x+z ⇒y =z
xy = xz ⇒ y = z
(o anche le uscite): tutte le funzioni, anche di altre algeVale che y=z solamente se queste due espressioni ora bre, possono in teoria essere rappresentate tramite tabelle ma se l'insieme su cui è fondata l'algebra è infinito (ad
scritte valgono contemporaneamente!
esempio l'insieme dei numeri reali) non è un modo comoL'unica cosa che si può dire invece nel caso in cui valga do per studiare la funzione; per l'algebra booleana usare
solo la prima espressione è che:
le tabelle è un modo utile per studiare le funzioni e ad
esempio permette facilmente la costruzione di circuiti e
reti logiche nelle applicazioni elettroniche. Un esempio
x + y = x + z ⇒ xy = xz
di tabelle si ha considerando operazioni binarie che si è
4
3
BASI
già visto essere 16:
operazioni appartenenti all'algebra e a volte ci si riferisce
Una famiglia, detta anche indice, è indicizzata da un a questi con il termine base, usato in accezione diversa
insieme di indici, che nel caso di una famiglia di operazio- rispetto alle basi di spazi vettoriali. Le tre principali basi
ni costituenti un'algebra sono detti simboli dell'operazione usate nell'algebra booleana sono:
e costituiscono il linguaggio dell'algebra in oggetto.
• Il reticolo, una base logica introdotta nel dicianL'operazione indicizzata da un dato simbolo è detta innovesimo secolo da George Boole, Charles Santerpretazione di tale simbolo, e ogni simbolo definisce il
ders Peirce e altri matematici che cercavano una
numero univoco di argomenti delle rispettive interpretaformalizzazione algebrica dei processi logici.
zioni possibili. Nel caso considerato vi è una corrispondenza biunivoca tra simbolo e interpretazione. L'algebra
• L'anello booleano, una base (non aritmetica) introdi Boole ha tanti simboli quante sono le operazioni possidotta nel ventesimo secolo da Ivan Ivanovich Zhebili detti simboli di operazione booleana, anche se poche
galkin e Marshall Stone che proviene dall'algebra
operazioni hanno simboli convenzionali, quali ! per la neastratta.
gazione, + per la congiunzione e * per la disugiunzione.
• La base NAND, originata dal fatto che tramite
In generale si indica con n fi l'i-esimo simbolo di n argol'operazione di NAND è possibile ottenere tutte le
menti. Nell'ultimo esempio considerato invece si dà un
operazioni sull'insieme {0,1}. Tale base è utilizzata
simbolo per ognuna delle 16 funzioni possibili o anche è
in particolare nella configurazione dei circuiti logici
possibile esprimere ogni funzione come opportuna comin elettronica digitale.
binazione dei simboli convenzionali fondamentali, cioè
AND (*), OR (+) e NOT (!).
Gli elementi comuni a reticolo e anello sono le costanti
0 e 1 e un'operazione binaria associativa e commutativa,
2.1 Funzione duale
che nella base del reticolo è detta incontro, dal termine inglese meet, e denotata tra due elementi x e y dal simbolo
Data una funzione f (x1 , x2 , . . . , xn ) in qualsiasi for- x∧y, mentre nella base dell'anello è detta moltiplicazione
ma si definisce funzione duale di f e si indica con δf e denotata xy. La base del reticolo ha inoltre le operaziouna funzione che ha per forma la forma duale di f , ad ni algebriche di unione x∨y e complemento ¬x, mentre la
esempio:
base dell'anello ha l'ulteriore operazione (non aritmetica)
di addizione x⊕y o x+y.
y = a + b(c + 0)
duale = a ∗ (b + c ∗ 1)
La forma duale deve rispettare le precedenze di applicazione dell'operazione della forma di partenza, per questo motivo, laddove non c'erano delle parentesi perché
la AND ha precedenza sulla OR, nel momento in cui
la AND diventa OR e la OR diventa AND, può esserci
bisogno di parentesi.
3.1 Reticolo
Nella base del reticolo a un'algebra booleana (A, ∧ , ∨
) si associa un insieme parzialmente ordinato (A, ≤ ),
definendo:
a≤b⇔a=a∧b
Un'altra osservazione molto importante è che le variabili, che è anche equivalente a
e non le costanti 0 e 1, possono anche non essere negate
perché comunque la variabile dovrà assumere tutti i valori
possibili e perciò, che ci sia o meno la negazione, la fun- b = a ∨ b
zione non cambia: nel caso visto prima allora la funzione
duale può anche essere scritta come
È possibile anche associare un'algebra booleana a un
reticolo distributivo (A, ≤ ), considerato come insieme
parzialmente ordinato, dotato di elemento minimo 0 e
duale = a ∗ (b + c ∗ 1)
di elemento massimo 1, in cui ogni elemento x ha un
complementare
¬x tale che
dove Si nota che la costante è stata negata! Questa osservazione può essere importante nel momento in cui si
va a progettare una rete logica perché significa risparmiare porte NOT, o anche in generale, nell'espressione x ∧ ¬x = 0
algebrica è sempre utile avere operazioni in meno da fare.
e
3
Basi
x ∨ ¬x = 1
Un insieme funzionalmente completo è un insieme di ope- Qui ∧ e ∨ sono usati per denotare l'inf e il sup di due
razioni la cui composizione permette di ottenere tutte le elementi. Se i complementi esistono, allora sono unici.
3.3
3.2
Sheffer stroke
Anello
La base dell'anello della generica algebra booleana (A,
∧ , ∨ ) è definita come (A, +, *), definendo a + b := (a
∧¬ b) ∨ ( b ∧¬ a ). In tale anello l'elemento neutro per
la somma coincide con lo 0 dell'algebra booleana, mentre l'elemento neutro della moltiplicazione è l'elemento 1
dell'algebra booleana. Questo anello ha la proprietà che
a * a = a per ogni a in A; gli anelli con questa proprietà
sono chiamati anelli booleani.
Viceversa, assegnato un anello booleano A, esso può essere trasformarlo in un'algebra booleana definendo x ∨ y =
x + y − x · y e x ∧ y = x · y. Poiché queste due operazioni
sono l'una l'inversa dell'altra, si può affermare che ogni
anello booleano è criptomorfo di un'algebra booleana e
viceversa. Inoltre, una funzione f : A → B è un omomorfismo tra algebre booleane se e soltanto se è un omomorfismo tra anelli booleani. La categoria degli anelli booleani
e delle algebre booleane sono equivalenti.
5
insiemi, che giocano rispettivamente il ruolo di OR, AND
e NOT, costituisce un'algebra booleana.
Più formalmente, se B è un insieme formato da almeno
2 elementi, l'algebra booleana avente B come supporto è
la struttura algebrica costituita da B, da due operazioni
binarie su B, OR e AND, da un'operazione unaria NOT
su B e dall'elemento 0 di B, i quali godono delle seguenti
proprietà:
• Simmetria di AND: ∀a, b ∈ B : a AN D b =
b AN D a
• Simmetria di OR: ∀a, b ∈ B : a OR b = b OR a
• Involuzione di NOT: ∀a ∈ B : N OT (N OT (a)) =
a
• Leggi di De Morgan: ∀a, b ∈ B : N OT (a OR b) =
N OT (a) AN D N OT (b)
Un anello ideale dell'algebra booleana A è un sottoinsieme I tale che per ogni x, y in I si ha x ∨ y in I e per ogni
a in A a ∧ x in I. Questa nozione di ideale coincide con la L'insieme B è inoltre limitato inferiormente, essendo:
nozione di anello ideale negli anelli booleani. Un ideale I
di A è detto primo se I ̸= A e se a ∧ b in I implica sempre
a in I o b in I. Un ideale I di A è detto massimale se I ̸= A
e se l'unico ideale proprio contenente I è A stesso. Que- ∀a ∈ B : a AN D 0 = 0; a OR 0 = a
sta notazione coincide con la notazione teorica del ideale
L'elemento 1 è definito come la negazione, o il compleprimo e ideale massimale nell'anello booleano A.
mentare, dello 0: 1 := NOT(0). L'insieme B è dunque
Il duale di un ideale è un filtro. Un filtro dell'algebra boo- limitato superiormente, essendo:
leana A è un sottoinsieme F tale che per ogni x, y in F si
ha x ∧ y in F e per ogni a in A se a ∨ x = a allora a è in
F.
∀a ∈ B : a OR 1 = 1; a AN D 1 = a
L'operazione di complementazione * applicata ai sottoinsiemi manda dunque gli ideali in filtri e viceversa: se B è
e in particolare
un'algebra booleana e I ⊆ B un suo ideale (proprio), allora I˜ = {x∗ : x ∈ I} è il filtro (proprio) duale di I. Se
invece F ⊆ B è un filtro (proprio), F̃ = {x∗ : x ∈ F }
0 AND 1 = 0 ; 0 OR 1 = 1
l'ideale (proprio) duale di F.
3.3
Sheffer stroke
Si definisce inoltre, come operazione derivata dalle
precedenti, l'operatore binario OR esclusivo, denotato
XOR:
La base Sheffer stroke o NAND si basa sulle operazioni
NOT e AND, tramite le quali è possibile ottenere tutte
le operazioni booleane. Un'algebra booleana può essere ∀a, b ∈ B : a XOR b := (a OR b) AN D (N OT (a AN D b))
definita sia da NOT e AND sia da NOT e OR, essendo
possibile definire OR attraverso NOT e AND così come In questa algebra all'operatore XOR corrisponde la
AND attraverso NOT e OR:
differenza simmetrica:
a AN D b = N OT ( N OT a OR N OT b)
a OR b = N OT ( N OT a AN D N OT b)
∀a, b ∈ B : a XOR b = b XOR a
In elettronica la porta logica NAND è costituita da n
La collezione di tutti i sottoinsiemi di un dato insieme, ov- ingressi e un'uscita che si porta a livello 0 solo se gli
vero l'insieme delle parti o insieme ambiente, munita delle n ingressi si portano a livello 1. È corrispondente alla
operazioni di unione, intersezione e complementazione di connessione in serie di una porta AND e di una NOT.
6
4
4 OPERATORI BOOLEANI
Operatori booleani
Si è visto che gli operatori dell'algebra booleana possono
essere rappresentati in vari modi, ma spesso sono scritti
semplicemente come AND, OR e NOT che è la scrittura
che utilizziamo ora per parlare degli operatori booleani.
Nella descrizione dei circuiti, possono anche essere usati NAND (NOT AND), NOR (NOT OR) e XOR (OR
esclusivo).
Le diverse simbologie per rappresentare gli operatori sono scelte in base al campo in cui si lavora: i matematici
usano spesso il simbolo + per l'OR, e × o * per l'AND, in
quanto per alcuni versi questi operatori lavorano in modo
analogo alla somma e alla moltiplicazione. La negazione
NOT viene rappresentata spesso da una linea disegnata
sopra l'argomento della negazione, cioè dell'espressione
che deve essere negata. Oppure in informatica si utilizza il simbolo | o || per l'OR, & o && per l'AND, e ~ o
! per NOT (es. A OR B AND NOT C equivale a A|B
& ~C oppure a A+B*!C). Se ci riferisce agli operatori
con i simboli di somma e moltiplicazione e poi intende
la negazione come se fosse una “elevazione a potenza”, è
facile da ricordare l'ordine di applicazione degli operatori: prima si applicano le negazioni, poi le AND e poi le
OR.
V, mentre viene definito falso un bit 0, sia in Input sia in
Output, che assume il valore di 0 V.
Di seguito sono indicati gli operatori più comuni e le
rispettive porte logiche:
4.1 NOT
L'operatore NOT restituisce il valore inverso a quello in
entrata. Una concatenazione di NOT è semplificabile con
un solo NOT in caso di dispari ripetizioni o con nessuno
nel caso di pari.Inoltre la porta logica NOT possiede una
sola variabile binaria.
Spesso, al fine di semplificare espressioni complesse, si
usano operatori brevi che uniscono l'operazione di NOT
ad altre: questi operatori sono NOR (OR + NOT), NAND
(AND + NOT), XNOR (XOR + NOT). La negazione, in
questi casi, viene applicata dopo il risultato dell'operatore
principale (OR, AND, XOR).
Il simbolo di una porta NOT è
Nella progettazione di circuiti elettronici, vengono utilizzati anche gli operatori brevi NAND (AND negato),
NOR (OR negato) e XNOR (XOR negato): questi ope- 4.2 Buffer
ratori, come XOR, sono delle combinazioni dei tre operatori base e vengono usati solo per rendere la notazione Buffer è la negazione del risultato dell'operazione NOT;
restituisce il valore uguale a quello in entrata. Il Buffer
più semplice.
non è un vero e proprio operatore, poiché in realtà non
Operatori:
manipola l'informazione che riceve, bensì la lascia passare invariata; il Buffer dunque è semplificabile con un
• NOT - simboli alternativi: x, ~, ¬, ! (in C e C++)
collegamento privo di operatori.
• AND - simboli alternativi: *, ∧ , &, && (in C e Il simbolo di una porta Buffer è:
C++), BUT (usato nella logica booleana insieme al
NOT)
• OR - simboli alternativi: +, ∨ , |, || (in C e C++)
• XOR - simboli alternativi: ⊕, ∨˙ , ∨, ^, EOR, orr
• NAND - simbolo alternativo: ↑
composta da un NOT in serie a un altro NOT.
• NOR - simbolo alternativo: ↓
La ragione per cui si parla di questo “pseudo-operatore” è
data da questioni di sincronia dei segnali: quando si tratta
di circuiti e reti logiche in modo più approfondito si rende
necessario considerare anche il tempo in cui il segnale
arriva e l'elemento buffer viene interpretato in questi casi
come un ritardo applicato a un certo segnale.
• XNOR
• OUI
Valori:
• vero - simboli alternativi: true, 1, ON, SI (YES), alto
• falso - simboli alternativi: false, 0, OFF, NO, basso
4.3 AND
L'operazione AND dà come valore 1 se tutti gli operandi
hanno valore 1, mentre restituisce 0 in tutti gli altri casi
In elettronica digitale viene definito vero un bit 1, sia in come ad esempio quando una porta è alta mentre le altre
Input sia in Output, che di solito assume il valore di 5 sono basse e può essere messa in serie. Tale operazione
4.6
NAND
7
è anche detta prodotto logico. Di seguito la tabella rap- A⊕B = A∗!B+!A ∗ B
presenta l'operatore AND nel caso di due entrate, ma la dove ⊕ è il simbolo di XOR.
definizione data ora è generalizzata a n ingressi:
Il simbolo di una porta XOR è:
Siccome questa operazione gode della proprietà associativa, è possibile realizzare un'operazione logica AND con
un numero di proposizioni arbitrarie concatenando varie
AND a due ingressi, per esempio:
p1 ∧ (p2 ∧ (p3 ∧ p4 ))
Nei circuiti digitali, la porta logica AND è un meccanismo comune per avere un segnale di vero se un certo 4.6 NAND
numero di altri segnali sono tutti veri.
L'operatore NAND, la negazione del risultato
Nella teoria degli insiemi corrisponde all'intersezione.
dell'operazione AND, restituisce 0 se e solo se tutti
gli elementi sono 1, mentre restituisce 1 in tutti gli altri
Il simbolo di una porta AND è:
casi.
Il simbolo di una porta NAND è:
4.4
OR
L'operazione logica OR restituisce 1 se almeno uno degli
elementi è 1, mentre restituisce 0 in tutti gli altri casi.
Tale operazione è anche detta somma logica. Di seguito la
tabella rappresenta l'operatore OR nel caso di due entrate,
ma la definizione data ora è generalizzata a n ingressi:
composta da un NOT in serie a un AND.
Utilizzando le leggi di De Morgan, è possibile convertire una porta OR in NAND. Vale, dunque, la seguente
relazione: A ∨ B = A ∧ B = A ↑ B
Siccome questa operazione gode della proprietà associa4.7 NOR
tiva, è possibile realizzare un'operazione logica OR con
più ingressi concatenando varie OR a due ingressi, per
L'operatore NOR, la negazione del risultato
esempio:
dell'operazione OR, restituisce 1 se e solo se tutti
(p1 ∨ p2 ) ∨ (p3 ∨ p4 )
gli elementi sono 0, mentre restituisce 0 in tutti gli altri
Nei circuiti digitali, la porta logica OR è un meccanismo casi.
comune per avere un segnale alto se almeno un segnale Il simbolo di una porta NOR è:
è alto e un segnale basso se e solo se tutti i segnali sono
bassi.
Nella teoria degli insiemi corrisponde all'unione.
Il simbolo di una porta OR a due ingressi è:
composta da un NOT in serie a un OR.
Utilizzando le leggi di De Morgan, è possibile convertire una porta AND in NOR. Vale, dunque, la seguente
relazione: A ∧ B = A ∨ B = A ↓ B
4.5
XOR
L'operatore XOR, detto anche EX-OR, OR esclusivo o
somma modulo 2, restituisce 1 se e solo se il numero degli operandi uguali a 1 è dispari, mentre restituisce 0 in
tutti gli altri casi. La tabella rappresenta il caso in cui gli
operatori siano 2, poi in generale ci si riferisce a questo
operatore come operatore di disparità.
4.8 XNOR
L'operatore XNOR, detto anche EX-NOR o EQU, è la
negazione del risultato dell'operazione XOR; nella sua
versione a due elementi restituisce 1 se tutti gli elementi
sono uguali a 1 oppure se tutti gli elementi sono uguali a
0. Questo operatore viene generalizzato a n ingressi come
Nella teoria degli insiemi corrisponde alla differenza sim- operatore di parità, cioè è un'operazione che restituisce il
metrica. Per passare nella forma canonica SP (somma di valore 1 se il numero di 1 in ingresso è pari.
prodotti) basta applicare la regola:
Il simbolo di una porta XNOR è:
8
6
ESEMPI
6 Esempi
composta da un NOT in serie a un XOR.
5
Algebra dei circuiti
L'Algebra di Boole si presta bene allo studio degli insiemi, delle proposizioni e dei circuiti. Ci si vuole soffermare su come quest'algebra diventa uno strumento
per l'analisi e la sintesi delle reti di commutazione (in
elettrotecnica il termine viene usato per indicare un cambio d'ordine della chiusura di due o più contatti elettrici,
in telecomunicazioni ha un'accezione diversa).
L'algebra booleana consente di descrivere in forma algebrica le funzioni dei circuiti componenti e delle reti,
fornendo altresì i metodi per la realizzazione del progetto logico: è stabilita quindi una corrispondenza biunivoca fra espressioni algebriche e reti di commutazione. La corrispondenza è facilmente realizzabile avendo
già parlato di #Operatori booleani: si parte ad esempio
da un'espressione algebrica per realizzare un circuito, basta sostituire a ogni operatore logico la corrispondente
porta logica e applicare agli ingressi di queste opportunamente le variabili booleane in gioco; inoltre, avendo visto
l'esistenza di porte logiche come ad esempio la XOR, che
sono combinazioni degli operatori booleani elementati
AND, OR e NOT, è possibile manipolare opportunamente un'espressione algebrica in modo da utilizzare il minor
numero possibile di porte nella realizzazione del circuito.
Viceversa un circuito può essere espresso da una funzione y=f(x1,x2,...xn) dove y è l'uscita, le x sono le entrate
e la funzione f è una combinazione di porte logiche.
Nell'algebra dei circuiti si associa il valore 0 al livello logico basso e il valore 1 al livello logico alto. In una visione semplificata il valore 0 corrisponde nella pratica a
una tensione di 0 V mentre il valore 1 corrisponde a 5 V,
oppure 3,5 V o addirittura 1,5 V: il motivo per cui si preferisce associare il valore alto a 5 V piuttosto che a 1,5
V è che la tensione nella pratica non è stabile e perciò il
valore 0 si può “confondere” con il valore 1 causando una
perdita di informazione; d'altra parte però, una tensione di
1,5 V per indicare il valore alto significa minor dispendio
di energia ed è un vantaggio molto significativo.
Volendo approfondire il discorso sui valori logici alto e
basso e sulla loro realizzazione pratica, si può dire che,
a seconda della tecnologia ci sono diversi range di valori
possibili: per esempio, la tecnologia TTL associa il valore
logico 0 a una tensione compresa tra 0 V e 0,8 V, tra 0 e
2 V c'è una banda vietata, cioè un insieme di valori che
non devono essere asunti, e il valore logico 1 è associato
al range di valori 1,5 V - 5 V. Come si è accennato, la
tecnologia odierna spinge sull'abbassare la soglia dei 5 V
cercando di stabilizzare sempre di più il potenziale.
Questa algebra ha applicazioni nella logica, dove 0 è interpretato come “falso”, 1 come vero, ∨ è OR, ∧ è AND e
¬ è “NOT”. Le espressioni che coinvolgono le variabili e
le operazioni booleane rappresentano forme dichiarative;
due espressioni possono essere equivalenti utilizzando i
suddetti assiomi se e soltanto se le forme dichiarative corrispondenti sono logicamente equivalenti. L'algebra booleana binaria, inoltre, è usata per il disegno di circuiti
nell'ingegneria elettronica; qui 0 e 1 rappresentano le due
condizioni differenti di un bit in un circuito digitale, in
genere bassa e alta tensione. I circuiti sono descritti da
espressioni che contengono delle variabili e due espressioni sono uguali per tutti i valori delle variabili se e soltanto se i circuiti corrispondenti hanno la stessa funzione di
trasferimento. Ogni combinazione dei segnali in ingresso in uscita dal componente può essere rappresentata da
un'adeguata espressione booleana
L'algebra booleana a due stati è inoltre importante
nella teoria generale delle algebre booleane, perché
un'equazione che coinvolge parecchie variabili è generalmente vera in ogni algebra booleana se e soltanto se è vera
nell'algebra booleana a due stati. Ciò può, per esempio,
essere usato per indicare che le seguenti leggi (teorema
del consenso) sono generalmente valide in ogni algebra
booleana:
(a ∨ b) ∧ (¬a ∨ c) ∧ (b ∨ c) = (a ∨ b) ∧ (¬a ∨ c)
(a ∧ b) ∨ (¬a ∧ c) ∨ (b ∧ c) = (a ∧ b) ∨ (¬a ∧ c)
• Il raggruppamento di un generico insieme S, forma un'algebra booleana con le due operazioni ∨ =
unione e ∧ = intersezione. Il più piccolo elemento 0 è
l'insieme vuoto e il più grande elemento 1 è l'insieme
S stesso.
• L'insieme di tutti i sottoinsiemi di un insieme S che
sono limitati è un'algebra booleana.
• Per ogni numero naturale n, l'insieme di tutti i
divisori positivi di n forma un reticolo distributivo
se scrive a ≤ b per a divide b. Questo reticolo è
un'algebra booleana se e soltanto se per ogni n non
vi sono divisori quadrati. Il più piccolo elemento,
che in generale si indica con lo 0, in questa algebra
booleana è il numero naturale 1; mentre l'elemento
che usualmente indica con l'1 in questi insiemi è
l'elemento “n”.
• Altri esempi di algebre booleane sono dati dagli
spazi topologici: se X è uno spazio topologico, allora l'insieme di tutti i sottoinsiemi di X che siano
aperti o chiusi formano un'algebra booleana con le
operazioni ∨ = unione e ∧ = intersezione.
• Se R è un anello arbitrario dove è definito un insieme
idempotente tipo:
9
A = { a in R : a2 = a e a · x = x · a per ogni x in R }
• P(x,y,z) = x'yz'
L'insieme A diventa un'algebra booleana con le operazioni a ∨ b = a + b − a · b e a ∧ b = a · Mentre non sono prodotti fondamentali
b.
• yyz
7
Omomorfismi e isomorfismi
Un omomorfismo tra due algebre booleane A e B è una
funzione f: A → B tale che per ogni a, b in A:
• yy'z
• (xy)'
È così possibile avere una somma di prodotti fondamentali, forma in cui ogni espressione può essere ridotta, ma
che non è unica. Un esempio è: xy + xz + z'. Nel momento
2. f( a ∧ b ) = f( a ) ∧ f( b )
in cui ogni singola variabile, o il suo complemento, siano
contenuti in tutti i prodotti fondamentali della forma nor3. f(0) = 0
male disgiuntiva, si ha allora una somma di prodotti fon4. f(1) = 1
damentali completa o forma normale disgiuntiva completa. Tale scrittura è unica, pertanto se due espressioni sono
Da queste proprietà segue anche f( ¬ a) = ¬ f(a) per ogni equivalenti avranno la stessa forma normale disgiuntiva
a in A. Ogni algebra booleana, con la definizione di omo- completa.
morfismo, forma una categoria. Un isomorfismo da A su Se si desidera invece che un'espressione sia scritta nel moB è un omomorfismo da A su B che è biiettivo. L'inverso do più corto possibile, allora la si esprime in somma di
di un isomorfismo è ancora un isomorfismo, e le due alge- implicanti prime o minimali (Minimizzazione di Quinebre booleane A e B si dicono isomorfe. Dal punto di vista McQluskey). Un'implicante prima (o minimale) rispetto a
della teoria dell'algebra booleana, due algebre booleane un'espressione è un prodotto fondamentale che non altera
isomorfe non sono distinguibili, ma differiscono soltanto l'espressione se sommato per intero a essa, cioè restituinella notazione dei loro elementi.
sce un risultato equivalente a quella iniziale; sommando
1. f( a ∨ b ) = f( a ) ∨ f( b )
8
Espressioni booleane
All'interno di ciascuna algebra di Boole, dato un insieme
di variabili e le operazioni correlate, è possibile definire
delle espressioni che vengono ad assumere un determinato valore ottenibile anche sotto forme diverse. Possono
esistere cioè delle espressioni che, pur essendo differenti, si rivelino equivalenti. Oltre al fatto che le espressioni
booleane assumono una particolare importanza per quanto riguarda il calcolo proposizionale, in cui le variabili sono proposizioni legate tramite congiunzioni, disgiunzioni, negazioni e altre operazioni più complesse, possono
esistere moltissime altre espressioni, accomunate sempre
dalle proprietà e dagli assiomi booleani, nelle quali si sostituisce spesso l'operazione + (comunemente detta somma) con ∨ e * (comunemente detta prodotto) con ∧ e in
cui la complementazione è indicata col simbolo ' .
Per poter presentare nel modo più efficiente una espressione booleana, la si riduce in somma di prodotti fondamentali o forma normale disgiuntiva. Un prodotto fondamentale è un prodotto in cui ciascuna variabile, o il suo
complemento, appaia una sola volta e rigorosamente fuori da parentesi o complementazioni complesse.
Ad esempio, date le variabili x, y, z all'interno di
un'algebra di Boole, sono prodotti fondamentali
• P(x,y,z) = xy
un prodotto strettamente contenuto nell'implicante, tuttavia, non si ottiene un'equivalenza.
Per individuare tutte le implicanti prime, esistono varie tecniche, tra cui il metodo del consenso, che si basa
sull'applicazione ciclica delle proprietà di assorbimento,
idempotenza, involuttività e di De Morgan accompagnate a ogni passo dall'opportuna addizione di un consenso.
Dati due prodotti fondamentali, se solo e solo se una variabile appare in uno di essi non negata e nell'altro negata
si chiama consenso il risultato della moltiplicazione delle
restanti variabili. Ad esempio:
• dati P = xyz, Q = x'z il consenso sarà C = yzz = yz
• dati P = xy' Q= xy il consenso sarà C = xx = x
• dati P = xyz e Q = x'yz' non esiste consenso, in quanto due diverse variabili appaiono una volta negate e
una volta no.
La somma di implicanti prime è unica, pertanto due
espressioni equivalenti avranno la stessa. Nel momento in cui, completando ogni singola implicante prima,
l'apporto all'espressione di una o più di esse è inutile in
quanto contenuta nelle altre, la si può eliminare ottenendo la più essenziale delle scritture, la forma minimale. Essa, pur essendo comoda, ha l'inconveniente di non essere unica, e dunque di non consentire l'individuazione di
equivalenze tra più espressioni.
10
9
13
Rappresentazione delle algebre
booleane
Si può dimostrare che ogni reticolo booleano finito è isomorfo al reticolo booleano di tutti i sottoinsiemi di un
insieme finito. Di conseguenza, il numero di elementi di
ogni reticolo booleano finito ha un sostegno che contiene
un numero di elementi uguale a una potenza di 2.
Marshall Stone ha enunciato il celebre teorema di rappresentazione per le algebre booleane dimostrando che ogni
algebra booleana “A” è isomorfa a tutte le algebre booleane aperte-chiuse in un certo spazio topologico compatto
non connesso di Hausdorff
10
Bibliografia
• (EN) Steven Givant e Paul Halmos, Introduction to
Boolean Algebras, Undergraduate Texts in Mathematics, Springer, 2009, ISBN 978-0-387-40293-2.
• (EN) George Boole, An Investigation of the Laws
of Thought, Prometheus Books [1854], 2003, ISBN
978-1-59102-089-9.
• (EN) Steven Givant e Paul Halmos, Introduction to
Boolean Algebras, Undergraduate Texts in Mathematics, Springer, 2009, ISBN 978-0-387-40293-2.
• (EN) John A. Camara, Electrical and Electronics
Reference Manual for the Electrical and Computer
PE Exam, www.ppi2pass.com, 2010, p. 41, ISBN
978-1-59126-166-7.
11
Voci correlate
• 06-XX, sezione primaria dello schema di classificazione MSC 2000
• Algebra di insiemi
• Diagramma di Venn
• Forma canonica
• Funzione booleana
• Mappa di Karnaugh
• Operazione bit a bit
• Porta logica
• Sistema formale
• Sistema numerico binario
• Tabella della verità
• Teorema dell'assorbimento
COLLEGAMENTI ESTERNI
• Teorema di Shannon (elettronica)
• Teoremi di De Morgan
• Teoria degli insiemi
12 Altri progetti
•
Commons contiene immagini o altri file su
Algebra di Boole
•
Questa voce è inclusa nel libro di Wikipedia
Paradossi.
13 Collegamenti esterni
• Panoramica sull'Algebra Booleana
• Facoltà di Ingegneria Energetica - Univ. del Sannio - Elementi di Informatica: Algebra di Boole
2008/2009
• Corso di Laurea a distanza - Fondamenti di Informatica: Algebra di Boole, Operatori Logici, Teoremi
Fondamentali
• Descrizione dell'algebra booleana su Okpedia
• Algebra di Boole in Tesauro del Nuovo Soggettario,
BNCF, marzo 2013.
11
14
14.1
Fonti per testo e immagini; autori; licenze
Testo
• Algebra di Boole Fonte: http://it.wikipedia.org/wiki/Algebra_di_Boole?oldid=68520751 Contributori: Snowdog, Robbot, Davide, Blakwolf, Alberto da Calvairate, Marius, Salvatore Ingala, AnyFile, Marcel Bergeret, TierrayLibertad, Depagen, Ilario, Luisa, Gionnico, Pegua,
Luki-Bot, Lucat, Klemen Kocjancic, YurikBot, Contezero, Pietrodn, Ketersephirot, Qualc1, MartinoK, Trovatore, Zwobot, RamsesII,
Fabexplosive, Chobot, FlaBot, Beta16, SunBot, CruccoBot, Claudev8, Automatik (riassegnato), Ylebru, Paolovenezia, SkY`, .snoopy., Rojelio, Eumolpo, Tridim, Piddu, LiljaBot, Fede Reghe, Alecobbe, Thijs!bot, Filbot, Francesco Betti Sorbelli, Ulisse0, Mess, Sesquipedale,
Rossa1, JAnDbot, TekBot, Angelorenzi, Avemundi, RevertBot, Mizardellorsa, Afnecors, Toobazbot, SanniBot, Fioravante Patrone, Phantomas, Pracchia-78, Buggia, KSBot, The Black, DnaX, Marco Plassio, Kibira, ^musaz, Durras, FixBot, Goemon, FrescoBot, MapiVanPelt,
Gabstef, Red Power, AttoBot, AKappa, DaniDF1995, AushulzBot, RibotBOT, Digitalone, Woodstock1, Luigicaiffa, RCantoroBot, Frigotoni, DixonDBot, Enry17, EmausBot, Taueres, ChuispastonBot, Fiox, Luca88w, MerlIwBot, Atarubot, Pil56-bot, Botcrux, Anthony.rock,
Quaaludes, Tommasucci, Feder raz, JosipPepp, Addbot, Thotu e Anonimo: 103
14.2
Immagini
• File:AND_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/6/64/AND_ANSI.svg Licenza: Public domain Contributori:
Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
• File:Buffer_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/7/79/Buffer_ANSI.svg Licenza: Public domain Contributori: Own Drawing, made in Inkscape 0.43 Artista originale: Inductiveload
• File:Commons-logo.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licenza: Public domain Contributori: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used to be slightly
warped.) Artista originale: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version, created by
Reidab.
• File:Computer_n_screen.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/7/77/Computer_n_screen.svg Licenza: LGPL
Contributori: All Crystal icons were posted by the author as LGPL on kde-look Artista originale: Everaldo Coelho and YellowIcon
• File:Exquisite-kfind.png Fonte: http://upload.wikimedia.org/wikipedia/commons/f/f1/Exquisite-kfind.png Licenza: GPL Contributori:
www.kde-look.org Artista originale: Guppetto
• File:Math.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/e/eb/Math.svg Licenza: Public domain Contributori: Opera propria
Artista originale: Johannes Rössel (talk)
• File:NAND_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/f/f2/NAND_ANSI.svg Licenza: Public domain Contributori: Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
• File:NOR_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/6/6c/NOR_ANSI.svg Licenza: Public domain Contributori:
Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
• File:NOT_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/b/bc/NOT_ANSI.svg Licenza: Public domain Contributori:
Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
• File:Nuvola_apps_ksim.png Fonte: http://upload.wikimedia.org/wikipedia/commons/8/8d/Nuvola_apps_ksim.png Licenza: LGPL
Contributori: http://icon-king.com Artista originale: David Vignoni / ICON KING
• File:Nuvola_mimetypes_charnotfound.PNG Fonte: http://upload.wikimedia.org/wikipedia/it/6/63/Nuvola_mimetypes_charnotfound.
PNG Licenza: ? Contributori: ? Artista originale: ?
• File:OR_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/b/b5/OR_ANSI.svg Licenza: Public domain Contributori:
Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
• File:Open_book_nae_02.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/9/92/Open_book_nae_02.svg Licenza: ? Contributori: OpenClipart Artista originale: nae
• File:Question_book-4.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/6/64/Question_book-4.svg Licenza: CC-BY-SA-3.0
Contributori: Created from scratch in Adobe Illustrator. Originally based on Image:Question book.png created by User:Equazcion. Artista
originale: Tkgd2007
• File:XNOR_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/d/d6/XNOR_ANSI.svg Licenza: Public domain Contributori: Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
• File:XOR_ANSI.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/0/01/XOR_ANSI.svg Licenza: Public domain Contributori:
Own Drawing, made in Inkscape 0.43 Artista originale: jjbeard
14.3
Licenza dell'opera
• Creative Commons Attribution-Share Alike 3.0