La Logica Proposizionale. (Algebra di Boole)

Documenti analoghi
Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Algebra di Boole ed Elementi di Logica

Calcolatori: Algebra Booleana e Reti Logiche

4 3 4 = 4 x x x 10 0 aaa

ALGEBRA DELLE PROPOSIZIONI

Alcune nozioni di base di Logica Matematica

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Convertitori numerici in Excel

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

risulta (x) = 1 se x < 0.

LOGICA PER LA PROGRAMMAZIONE. Franco Turini

Dall italiano al linguaggio della logica proposizionale

Algebra di Boole. Le operazioni, nell algebra booleana sono basate su questi tre operatori: AND ( ), OR ( + ),NOT ( )

Lezione 9: Cambio di base

I SISTEMI DI NUMERAZIONE

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Fondamenti di calcolo booleano

I.I.S. Primo Levi Badia Polesine A.S

4. Operazioni elementari per righe e colonne

Dispense di Informatica per l ITG Valadier

Il principio di induzione e i numeri naturali.

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Algebra Booleana ed Espressioni Booleane

Esercitazioni di Reti Logiche. Lezione 2 Algebra Booleana e Porte Logiche. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Dimensione di uno Spazio vettoriale

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

ESEMPIO 1: eseguire il complemento a 10 di 765

Prodotto libero di gruppi

Logica binaria. Porte logiche.

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Operatori logici e porte logiche

Laurea Specialistica in Informatica

G. Pareschi ALGEBRE DI BOOLE. 1. Algebre di Boole

( x) ( x) 0. Equazioni irrazionali

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Errori più comuni. nelle prove scritte

Esercizi su lineare indipendenza e generatori

LA MOLTIPLICAZIONE IN CLASSE SECONDA

I sistemi di numerazione

L algebra di Boole. Cenni Corso di Reti Logiche B. Mariagiovanna Sami

SISTEMI DI NUMERAZIONE E CODICI

II.f. Altre attività sull euro

x u v(p(x, fx) q(u, v)), e poi

Sommario. Teoremi Maxterm Forme Canoniche Mappe di Karnaugh Fine lezione

Lezioni di Matematica 1 - I modulo

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Codifica binaria dei numeri relativi

2. Semantica proposizionale classica

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

SOMMARIO I radicali pag I radicali aritmetici pag Moltiplicazione e divisione fra radicali aritmetici pag.

Lezione 8. La macchina universale

1. PRIME PROPRIETÀ 2

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

Algebra di Boole. Le operazioni base sono AND ( ), OR ( + ), NOT ( )

Percorsi di matematica per il ripasso e il recupero

Algebra di Boole e reti logiche. Giovedì 8 ottobre 2015

Capitolo 2. Operazione di limite

LE FUNZIONI A DUE VARIABILI

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND.

I PROBLEMI ALGEBRICI

La prof.ssa SANDRA VANNINI svolge da diversi anni. questo percorso didattico sulle ARITMETICHE FINITE.

Alessandro Pellegrini

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Anno 1. Definizione di Logica e operazioni logiche

Teoria degli insiemi

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

(anno accademico )

4. Operazioni aritmetiche con i numeri binari

Funzioni. Funzioni /2

Sintesi Combinatoria Uso di componenti diversi dagli operatori elementari. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Lezione 2 Circuiti logici. Mauro Piccolo piccolo@di.unito.it

STRUTTURE ALGEBRICHE

Le Mappe di Karnaugh.

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S A. Pisani, appunti di Matematica 1

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.

SVILUPPO IN SERIE DI FOURIER. Prof. Attampato Daniele

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

Sintesi di reti combinatorie. Sommario. Motivazioni. Sommario. Funzioni Espressioni. M. Favalli

Fondamenti di Informatica 2. Le operazioni binarie

Codifica binaria e algebra di Boole

Appunti sulla Macchina di Turing. Macchina di Turing

S- magari si potrebbe dire la prima riga, la seconda riga UNITÀ DIDATTICA: TESTO POETICO. Obiettivi

APPUNTI DI ELETTRONICA DIGITALE

I CIRCUITI ELETTRICI. Prima di tutto occorre mettersi d accordo anche sui nomi di alcune parti dei circuiti stessi.

Comparatori. Comparatori di uguaglianza

La misura degli angoli

Guardiamo ora però la cosa da un altro punto di vista analizzando il seguente grafico a forma di torta. La torta in 5 parti

Transcript:

1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY La Logica Proposizionale (Algebra di Boole) Prof. G. Ciaschetti 1. Cenni storici Sin dagli antichi greci, la logica è intesa come lo studio del logos, che in greco significa parola, verbo, o ragione. O anche studio, si pensi a parole come ecologia, psicologia, ecc. La logica, quindi, storicamente, si è occupata dello studio della parola, cioè lo studio delle strutture e delle regole del discorso, allo scopo di comprendere, e utilizzare a proprio vantaggio, come ottenere conclusioni convincenti a partire da determinate premesse. Ancora oggi, a pensarci bene, organizzare un discorso che sia logicamente convincente è fondamentale in diverse discipline: Matematica: esibire la dimostrazione matematica di un risultato (teorema, lemma, postulato) significa fare vedere come, a partire dalle ipotesi, valga una serie di ragionamenti logici che portano via via a nuove conclusioni, fino ad arrivare alla tesi che si vuole dimostrare. Giurisprudenza: un avvocato, in un aula di tribunale, nel difendere il proprio assistito cerca di convincere la corte che i fatti si siano svolti in un determinato modo, e farà questo partendo da alcune premesse nel modo logicamente più convincente possibile. Filosofia: un filosofo è più convincente di altri filosofi nel proporre l esattezza delle proprie argomentazioni se i suoi ragionamenti sono più logicamente corretti. Dagli esempi esposti, si capisce che c è un modo di ragionare logico, che è comunemente accettato come corretto, grazie al quale è possibile convincere gli altri di conclusioni non immediatamente verificabili. Come dicevamo, già dall antichità la logica è stata oggetto di studio, in quanto chi riusciva a essere più logico degli altri nei propri discorsi era anche colui che vinceva le dispute verbali. Riportiamo in questo paragrafo alcuni personaggi e i loro contributi fondamentali allo studio della logica, che hanno costituito le basi per la logica moderna, attualmente usata nei calcolatori elettronici: Aristotele (circa 350 A.C.) Principio di non contraddizione: una cosa e il suo contrario non possono essere contemporaneamente vere (es. le frasi il prof. di informatica è biondo e il prof. di informatica non è biondo non possono essere entrambe vere) Principio del terzo escluso: o è vera una cosa, o è vero il suo contrario, non può esserci una terza possibilità (es. il prof. di informatica è biondo oppure il

2 prof. di informatica non è biondo : una delle due deve essere vera e non c è una terza possibilità). Sillogismi: Tutti gli uomini sono mortali, Socrate è un uomo, quindi Socrate è mortale. Crisippo (circa 250 A.C.) È possibile raggiungere nuove conoscenze attraverso la logica (come ad esempio, nelle dimostrazioni matematiche). Regole di deduzione logica e studio dei connettivi logici, come il modus ponens (se ogni volta che si verifica A si verifica B, e si è verificato A, allora si è verificato anche B) o il modus tollens (se ogni volta che si verifica A si verifica B, e non si è verificato B, allora non si è verificato A). Boole (1850 D.C. circa) Uso dei simboli 0 e 1 per indicare il falso e il vero (da qui, l utilizzo automatizzato della logica per mezzo dei calcolatori). Costruzione di un algebra delle proposizioni, da questo momento in poi nota come Algebra di Boole. Uso delle tavole di verità per dimostrare la falsità o la veridicità di espressioni logiche. 2. Algebra di Boole In generale, per definire un algebra occorre specificare quali sono i suoi termini, le sue operazioni, le regole di precedenza tra le operazioni, le diverse proprietà di cui godono le operazioni, e come si costruiscono e si valutano le espressioni. Prima di cominciare a definire l Algebra di Boole, anche facendo un confronto con l algebra aritmetica che abbiamo conosciuto finora in matematica, ci occorrono alcune definizioni: Definizione: Una proposizione è una frase di senso compiuto Ad esempio, le frasi fuori c è bel tempo e oggi non mi va di studiare sono proposizioni, mentre non è una proposizione la frase bello cane io faccio tempo male oppure la frase cosa però voglio non. Definizione: Un enunciato è una proposizione della quale si può stabilire con certezza se è vera o falsa. Ad esempio, la frase l Istituto Angioy è a Carbonia è una proposizione vera, quindi è un enunciato; la frase l Istituto Angioy è a Roma è una proposizione falsa, quindi è un enunciato; la frase informatica è una brutta materia non è un enunciato, perché pur essendo una proposizione, non si può dire che sia sempre vera (a qualcuno non piace) o sempre falsa (a qualcuno piace). Allo stesso modo la frase che bel tempo c è non è un enunciato, perché a qualcuno potrebbe piacere il sole mentre a qualcun altro la pioggia. Torniamo alla definizione della nostra Algebra di Boole. Andiamo a specificare, quindi, chi sono i termini, le operazioni, le regole di precedenza tra le operazioni e le regole di costruzione e

3 valutazione delle espressioni, confrontandoci con l algebra aritmetica. Alle proprietà dell Algebra di Boole dedicheremo, successivamente, un paragrafo a parte. termini: se i termini dell aritmetica sono i numeri, i termini dell algebra booleana sono gli enunciati, che possono essere rappresentati con 0 (enunciato falso) e 1 (enunciato vero). Così come in aritmetica, possiamo trovare termini costanti, cioè di cui conosciamo il valore, oppure termini variabili, che indicheremo con lettere come x, y, z, ecc. operazioni: mentre nell aritmetica abbiamo le operazioni di addizione, sottrazione, moltiplicazione e divisione, (quelle che indichiamo con i simboli +, *, - e /), nell algebra booleana abbiamo le operazioni fondamentali AND, OR, NOT, e poi altre operazioni che vedremo successivamente. - L operazione AND è detta di congiunzione o prodotto logico, e può essere rappresentata con i simboli oppure (noi useremo il primo dei due). - L operazione OR è detta di disgiunzione o somma logica e può essere rappresentata con i simboli + oppure (noi useremo il primo dei due). - L operazione NOT è detta negazione logica, e può essere rappresentata con i simboli oppure (noi useremo il primo dei due). Torneremo sulle operazioni (queste tre e altre) più tardi, esaminando attentamente come funzionano e il loro significato. Per il momento, ci basti dire che il NOT è un operazione unaria (si applica a un solo operando) mente l AND, l OR e le altre operazioni che studieremo sono operazioni binarie (si applicano a due operandi come la somma, la sottrazione, ecc.). precedenze: se in aritmetica le operazioni di moltiplicazione e divisione hanno la precedenza su quelle di addizione e sottrazione, nell algebra booleana esiste una sola regola: le operazioni unarie hanno la precedenza su quelle binarie, ossia, il NOT ha la precedenza su tutte le altre operazioni. Così come in aritmetica, per forzare le precedenze ad essere diverse da quelle naturali, si possono usare le parentesi. Nell algebra booleana, inoltre, l uso delle parentesi è necessario ogni qual volta non è ben determinata la precedenza tra due o più operazioni. ESEMPI: corrisponde a (NOT (x)) OR y. Siccome il NOT ha la precedenza sull OR, non c è bisogno di parentesi corrisponde a NOT(x OR y). Per forzare le precedenze ed effettuare prima l OR, abbiamo bisogno di parentesi. l espressione non è ben specificata, in quanto l OR e l AND hanno stessa precedenza, e non sappiamo quale applicare prima. Andrebbero messe delle parentesi. espressioni: la valutazione di un espressione in aritmetica dà come risultato un numero, che può essere noto se l espressione contiene solo termini costanti, o incognito se ci sono delle variabili. Anche nell algebra booleana si può valutare un espressione, il cui risultato è noto se compaiono solo termini costanti, e può essere 0 oppure 1. Nella seguente figura, è riassunta la differenza tra l algebra aritmetica e quella booleana:

4 3. Le operazioni binarie fondamentali Torniamo alle tre operazioni booleana fondamentali, il NOT, l AND e l OR, ed esaminiamole più a fondo: 3.1 L operazione NOT L operazione NOT (dall inglese non) è detta negazione logica, e serve a negare una proposizione. Il risultato è trasformare una proposizione vera in falsa, e viceversa, una falsa in vera. Ad esempio, se diciamo ad agosto fa caldo, che è una proposizione vera, e neghiamo quanto detto, otteniamo ad agosto non fa caldo, che è una proposizione falsa. Ad esempio, se diciamo Milano è a sud di Carbonia, proposizione falsa, e la neghiamo, otteniamo Milano non è a sud di Carbonia, che è una proposizione vera. Indichiamo l operazione NOT con il simbolo. In generale, data una proposizione x, essa può essere falsa o vera: se è vera, falsa, è vera. Si può riassumere quanto detto nella seguente tabella: x 0 1 1 0 è falsa, mentre se è La tabella può anche letta per righe in questo modo: risulta 3.2 L operazione AND L operazione AND (dall inglese e) è detta congiunzione o prodotto logico, e serve a congiungere tra loro due proposizioni. Un espressione formata con l operazione AND tra due proposizioni sarà vera se la prima proposizione è vera e la seconda proposizione è vera. Ad esempio, se diciamo c è una sola cattedra in ogni aula (proposizione vera) AND un banco è più piccolo di una cattedra (proposizione vera), l intera frase sarà vera. Se invece diciamo ci sono due cattedre in ogni aula (proposizione falsa) AND c è un registro per ogni classe (proposizione vera), poiché abbiamo detto almeno una falsità, la nostra frase complessiva sarà falsa. Indichiamo l AND con il simbolo In generale, date due proposizioni x e y, l espressione x y sarà vera solo se entrambe x e y sono vere. Si può riassumere quanto detto nella seguente tabella: x y x y 0 0 0 0 1 0 1 0 0 1 1 1 3.3 L operazione OR L operazione OR (dall inglese o) è detta disgiunzione o somma logica, e serve a disgiungere tra loro due proposizioni. Un espressione formata con l operazione OR tra due proposizioni sarà vera se la prima proposizione è vera o la seconda proposizione è vera. Cioè, se almeno una delle due è vera. Ad esempio, se diciamo c è una sola cattedra in ogni aula (proposizione vera) OR un banco è più piccolo di una cattedra (proposizione vera), l intera frase sarà vera. Se invece diciamo ci sono due cattedre in ogni aula (proposizione falsa) OR c è un registro per ogni classe

5 (proposizione vera), poiché abbiamo detto almeno una cosa vera, la nostra frase complessiva sarà vera (l una o l altra delle due è vera). Ad esempio, ancora, se diciamo ci sono tre cattedre in ogni aula (proposizione falsa) OR il prof. di informatica è più giovane dei suoi alunni (proposizione falsa), poiché nessuna delle due è vera, abbiamo detto una frase falsa. Indichiamo l OR con il simbolo +. In generale, date due proposizioni x e y, l espressione x y sarà vera solo se almeno una tra x e y è vera. Si può riassumere quanto detto nella seguente tabella: x y x y 0 0 0 0 1 1 1 0 1 1 1 1 4. Espressioni booleane Come abbiamo detto, è possibile costruire espressioni booleane mettendo insieme termini e operazioni, stando ben attenti a indicare correttamente le precedenze tra le diverse operazioni. Abbiamo anche detto che l operazione NOT (operazione unaria) ha la precedenza su tutte le altre operazioni (operazioni binarie), e che per forzare precedenze diverse occorre usare le parentesi. Infine, ricordiamo che l uso di parentesi è reso necessario ogni qual volta la precedenza tra operazioni non è ben specificata (ad esempio tra OR e AND). Per evitare l uso eccessivo di parentesi, che appesantirebbero eccessivamente la scrittura, adottiamo le seguenti convenzioni: xy xy+z corrisponde a x y corrisponde a (x y) + z corrisponde a (NOT (x)) OR y. corrisponde a NOT(x OR y). Ad esempio, nell espressione si applicheranno, nell ordine, le operazioni NOT (y), poi (x AND NOT(y)), e infine (x AND NOT(y)) OR z. Calcolare un espressione booleana, come vedremo nel prossimo paragrafo, significa applicare in sequenza tutte le operazioni che in essa compaiono, per vedere quanto fa. A differenza di un espressione matematica, il cui calcolo dà un numero, il calcolo di un espressione booleana dà come risultato vero (cioè 1) o falso (cioè 0). 5. Analisi di espressioni booleane: le tavole di verità Andando a calcolare un espressione booleana, se essa contiene solo termini costanti, allora il risultato sarà un termine dell algebra booleana, cioè un enunciato, cioè sarà 0 (falso) oppure 1 (vero). ESEMPIO: Il valore dell espressione (1 0) + (1 + ( )) è pari a: (1 0) + (1 + ) = 0 + 1 = 1 ESEMPIO: Il valore dell espressione 1 = 1 0 = 0

6 Tuttavia, quando nell espressione sono presenti termini variabili (cioè, il cui valore non è ancora determinato, potrebbe essere sia 0 che 1), non è possibile calcolare l espressione. In questo caso, occorre effettuare un analisi dell espressione booleana, andando a individuare per quali valori delle variabili l espressione è vera o falsa. E possibile fare questo per mezzo delle tavole di verità. Si tratta di calcolare l espressione applicando gli operatori nell ordine giusto, e andare a vedere quanto è il risultato per ogni possibile combinazione delle variabili presenti. Con qualche esempio sarà tutto più chiaro: ESEMPIO: analizziamo l espressione elenchiamo le diverse combinazioni delle variabili che compaiono nell espressione, cioè x e y, e applichiamo nell ordine le diverse operazioni, per ognuna delle combinazioni: x y x+y xy 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 Cosa abbiamo fatto? Riepiloghiamo: per la prima combinazione, x=0 e y=0, abbiamo calcolato x+y, cioè 0+0, che fa 0. Poi abbiamo calcolato, cioè = 1. A questo punto, abbiamo calcolato xy, cioè 0 0, il cui risultato è 0. Quindi, abbiamo fatto l operazione OR tra e, ossia tra 1 e 0, e abbiamo ottenuto 1 come risultato. Ripetendo il procedimento per ogni altra possibile combinazione delle variabili x e y, cioè per ogni altra riga della tavola di verità, abbiamo trovato per quali valori di x e y l espressione è vera (nell ultima colonna): in questo esempio, quando x e y sono entrambi 0 o entrambi 1. Un modo più rapido per sviluppare la tavola di verità è di guardarla per colonne : facciamo vedere come, in un altro esempio: ESEMPIO: analizziamo l espressione di nuovo, elenchiamo le diverse combinazioni delle variabili e calcoliamo il risultato dell espressione, applicando nell ordine gli operatori, per ogni diversa combinazione; 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 l operazione che ha la precedenza è il NOT, quindi cerchiamo innanzitutto relativa alla x. 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 ora, possiamo calcolare applicando l operazione OR alle colonne relative a e z. : neghiamo la colonna

7 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 dopo di che, neghiamo quanto abbiamo ottenuto, e abbiamo così il termine 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 ora dobbiamo calcolare il termine tra parentesi tonde: calcoliamo prima (la colonna relativa a ce l abbiamo già) negando la colonna della y 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 e quindi il termine applicando l operazione OR tra le colonne e 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 Per trovare il nostro risultato, a questo punto, non resta che applicare l operazione AND alle colonne relative ai termini e 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 Nei nostri esercizi, useremo anche scrivere una espressione booleana come una formula del tipo y = f(x 1, x 2,, x N ) dove x 1, x 2,, x N sono le variabili indipendenti e y è il valore dell espressione. ESEMPIO: y =

8 6. Proprietà dell Algebra di Boole Come l aritmetica, anche l Algebra di Boole gode di alcune proprietà. Prima di vedere quali, diciamo che è possibile dimostrare l uguaglianza tra due espressioni booleane utilizzando le tavole di verità, nel seguente modo: se la tavola di verità dell espressione a sinistra del simbolo = è uguale a quella dell espressione a destra, allora le due espressioni sono uguali. ESEMPIO: = DIMOSTRAZIONE: x 1 x 2 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 poiché le due colonne sono uguali, 1 1 0 0 1 0 1 l uguaglianza delle espressioni è verificata! Elenchiamo ora le principali proprietà dell Algebra di Boole, dimostrandone alcune con le tavole di verità, e lasciando per esercizio la dimostrazione delle altre. a) proprietà commutativa: x + y = y + x infatti, risulta xy = yx x y x+y y+x x y xy yx 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 b) proprietà associativa: x + (y + z) = (x + y) + z x(yz) = (xy)z si lascia per esercizio la dimostrazione dell uguaglianza con le tavole di verità. c) proprietà distributiva: x + (yz) = (x + y)(x + z) x(y + z) = xy + xz

9 d) identità: x + 0 = x x 1 = x e) complementarità x + = 1 x = 0 f) idempotenza x + x = x x x = x g) dominanza: x 0 = 0 x + 1 = 1 h) involuzione (doppia negazione) i) De Morgan

10 7. Altri operatori booleani Oltre alle tre operazioni fondamentali che abbiamo visto, cioè AND, OR e NOT, ci sono altre tre operazioni che possiamo usare: 7.1 L operazione XOR (o EX-OR) Il nome viene dall inglese EXclusive OR, cioè OR esclusivo. Funziona all incirca come l OR, ma è esclusivo perché vieta la possibilità che i due operandi possano essere entrambi veri, uno esclude l altro. Quindi, se l operazione OR corrisponde alla frase la frase è vera se almeno una delle due è vera, l operazione XOR corrisponde alla frase la frase è vera se solo una delle due è vera. Si indica con il simbolo. x y x y 0 0 0 0 1 1 1 0 1 1 1 0 L operazione XOR non è una delle operazioni fondamentali, e può essere anche ottenuta usando solo le tre operazioni fondamentali. Infatti risulta: x y = dimostriamolo: x y x y 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 7.1 L operazione NAND Letteralmente, è la negazione dell operazione AND. Il simbolo utilizzato è. x y x y x 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 7.1 L operazione NOR Letteralmente, è la negazione dell operazione OR. Il simbolo utilizzato è. x y x y x+ 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0

11 8. Insiemi di operatori funzionalmente completi Abbiamo visto finora sei operatori booleani: AND, OR, NOT, XOR, NAND, NOR. Abbiamo anche visto, però, che solo tre di essi sono quelli fondamentali, e cioè NOT, AND e OR. Infatti possiamo ricavare gli altri tre a partire da questi: x y = x y = x y = Possiamo dire allora che l insieme di operatori che comprende i soli operatori NOT, AND e OR, cioè l insieme {,, + } è un insieme funzionalmente completo. Definizione: un insieme di operatori booleani si dice funzionalmente completo quando è possibile, usando solo questi, riprodurre tutti gli altri operatori, cioè ottenere un espressione che si comporta come ognuno degli altri operatori che non fanno parte dell insieme. Ci chiediamo se {,, + } è il più piccolo insieme di operatori funzionalmente completo, oppure se c è qualche altro insieme di operatori, che ne ha solo 2, che è funzionalmente completo. La risposta è si, esistono insieme di operatori funzionalmente completi con solo 2 operatori! - L insieme che comprende i soli operatori NOT e AND, cioè l insieme {, } è funzionalmente completo. Per dimostrare quanto appena detto, dobbiamo far vedere che possiamo riprodurre ogni altro operatore booleano usando i soli operatori NOT e AND. Tuttavia, non è necessario far vedere che possiamo riprodurre tutti gli operatori: essendo {,, +} funzionalmente completo (l abbiamo visto all inizio del paragrafo), basta far vedere che possiamo riprodurre l operazione OR usando solo le operazioni NOT e AND. Se riusciamo con questi due a fare anche l OR, allora siamo in grado di fare anche tutti gli altri. Risulta: x + y = la prima uguaglianza vale per la proprietà dell involuzione, la seconda per la proprietà di De Morgan. - L insieme che comprende i soli operatori NOT e OR, cioè l insieme {, } è funzionalmente completo. Per dimostrare quanto appena detto, dobbiamo far vedere che possiamo riprodurre ogni altro operatore booleano usando i soli operatori NOT e OR. Tuttavia, come prima, non è necessario far vedere che possiamo riprodurre tutti gli operatori: essendo {,, +} funzionalmente completo (l abbiamo visto all inizio del paragrafo), basta far vedere che possiamo riprodurre l operazione AND usando solo le operazioni NOT e OR. Se riusciamo con questi due a fare anche l AND, allora siamo in grado di fare anche tutti gli altri. Risulta: xy =

12 la prima uguaglianza vale per la proprietà dell involuzione, la seconda per la proprietà di De Morgan. Ci chiediamo ora se esistono insiemi di operatori funzionalmente completi ancora più piccoli: cioè, con un solo operatore, è possibile fare tutti gli altri? La risposta è si, esistono insieme di operatori funzionalmente completi con solo 1 operatore! - L insieme che comprende il solo operatore NAND, cioè l insieme { } è funzionalmente completo. Per dimostrare questo, dobbiamo far vedere che possiamo riprodurre ogni altro operatore booleano usando il solo operatore NAND. Come prima, non è necessario far vedere che possiamo riprodurre tutti gli operatori, ma basta ricondursi a un altro insieme di operatori funzionalmente completo. Essendo {, } funzionalmente completo, basta far vedere che possiamo riprodurre l operazione AND e l operazione NOT usando la sola operazione NAND. Risulta: la dimostrazione è lasciata per esercizio. = x x xy = (x x) (x x) - L insieme che comprende il solo operatore NOR, cioè l insieme { } è funzionalmente completo. Per dimostrare questo, dobbiamo far vedere che possiamo riprodurre ogni altro operatore booleano usando il solo operatore NOR. Come prima, non è necessario far vedere che possiamo riprodurre tutti gli operatori, ma basta ricondursi a un altro insieme di operatori funzionalmente completo. Essendo {, } funzionalmente completo, basta far vedere che possiamo riprodurre l operazione OR e l operazione NOT usando la sola operazione NOR. Risulta: la dimostrazione è lasciata per esercizio. = x x x + y = (x x) (x x) Concludiamo il paragrafo con un ultima osservazione: perché siamo interessati a trovare insiemi di operatori funzionalmente completi che siano più piccoli possibile? Il motivo sta nell interesse di chi realizza circuiti elettronici per i microprocessori: un microprocessore ha al suo interno diversi circuiti logici combinatori (li studieremo nella prossima dispensa), i quali sono costituiti da porte logiche, componenti elettronici che realizzano elettricamente le operazioni AND, OR, NOT, ecc. Ora, per un produttore costa molto di più realizzare diversi tipi di porte logiche (una per l operazione AND, una per l operazione OR, una per l operazione NOT, e così via ) piuttosto che un solo tipo. Infatti, in molti moderni microprocessori si trova, di fatto, un solo componente: quello che realizza l operazione NAND oppure quello che realizza l operazione NOR.