360 likes | 671 Views
Corso di Informatica (Programmazione). Lezione 9 (7 novembre 2008) Logica proposizionale e algebra di Boole. Introduzione. Logica proposizionale studio del significato delle proposizioni connesse dai connettivi logici Algebra di Boole
E N D
Corso di Informatica(Programmazione) Lezione 9 (7 novembre 2008) Logica proposizionale e algebra di Boole
Introduzione Logica proposizionale studio del significato delle proposizioni connesse dai connettivi logici Algebra di Boole struttura algebrica codificata da George Boole (1815-1864) che manipola grandezze binarie {0,1}
Introduzione Logica studio del processo di pensiero che parte da premesse e giunge a conclusioni Proposizione dichiarazione a cui può essere associato un valore di verità (VERO o FALSO, V o F). Ad esempio “Il cane di Marco è nero” è una proposizione, mentre “Che ore sono?” non lo è.
Connettivi logici • Nel seguito si: • indicheranno le proposizioni tramite lettere dell’alfabeto maiuscolo • indicherà il valore di verità di una proposizione P tramite la notazione v(P). Quindi v(P)=V se P è vera, v(P)=F se P è falsa • Ad esempio la proposizione “Roma è la capitale d’Italia” può essere indicata con la lettera R e quindi: • R=“Roma è la capitale d’Italia” v(R) vale V
Connettivi logici • I principali connettivi (operatori) logici sono: • congiunzione logica “and”, “e”, “&”, Λ • disgiunzione inclusiva “or”, “o”, “|”, V • disgiunzione esclusiva “xor”, V • negazione logica “not”, “!”, • implicazione logica “Þ” • coimplicazione logica “Û”
Congiunzione logica Date due proposizioni A e B, l’operatore di congiunzione logica produce la proposizione C=A&B che è VERA se e solo se A e B sono entrambe VERE. Negli altri casi C è FALSA. Ad esempio se A=“Roma è la capitale d’Italia” (A è VERA, cioè v(A)=V) e B=“Milano si trova in Francia” (B è FALSA, cioè v(B)=F), allora la proposizione C=A&B=“Roma è la capitale d’Italia e Milano si trova in Francia” è FALSA, cioè v(C)=F
Congiunzione logica La tabella di verità dell’operatore di congiunzione logica risulta quindi essere:
Disgiunzione inclusiva Date due proposizioni A e B, l’operatore di disgiunzione inclusiva produce la proposizione C=A|B che è VERA se e solo se almeno una proposizione tra A e B è VERA. Negli altri casi C è FALSA. Ad esempio se A=“Roma è la capitale d’Italia” (A è VERA, cioè v(A)=V) e B=“Milano si trova in Francia” (B è FALSA, cioè v(B)=F), allora la proposizione C=A|B=“Roma è la capitale d’Italia o Milano si trova in Francia” è VERA, cioè v(C)=V
Disgiunzione inclusiva La tabella di verità dell’operatore di disgiunzione inclusiva risulta quindi essere:
Disgiunzione esclusiva Date due proposizioni A e B, l’operatore di disgiunzione esclusiva produce la proposizione C=A xor B che è VERA se e solo se una proposizione tra A e B è VERA. Negli altri casi C è FALSA. Ad esempio se A=“Roma è la capitale d’Italia” (A è VERA, cioè v(A)=V) e B=“Milano si trova in Lombardia” (B è VERA, cioè v(B)=V), allora la proposizione C=A xor B=“Roma è la capitale d’Italia oppure Milano si trova in Lombardia” è FALSA, cioè v(C)=F
Disgiunzione inclusiva La tabella di verità dell’operatore di disgiunzione esclusiva risulta quindi essere:
Negazione logica Data una proposizione A, l’operatore di negazione logica produce la proposizione C=!A che è VERA se e solo se A è FALSA. Ad esempio se A=“Roma è la capitale di Francia” (A è FALSA, cioè v(A)=F), allora la proposizione C=!A=“Roma non è la capitale di Francia” è VERA, cioè v(C)=V
Disgiunzione inclusiva La tabella di verità dell’operatore di negazione logica risulta quindi essere:
Implicazione logica Date due proposizioni A e B, l’operatore di implicazione logica produce la proposizione C=AÞB che è FALSA se e solo A è VERA e B è FALSA. Negli altri casi C è VERA. Ad esempio se A=“Fuori piove”, B=“Fuori ci sono nuvole”, e si ha che v(A)=V e v(B)=F, allora C=AÞB=“Fuori piove allora è falso che fuori ci sono nuvole” è palesemente FALSO (quando piove ci sono sempre le nuvole…)
Implicazione logica La tabella di verità dell’operatore di implicazione logica risulta quindi essere:
Coimplicazione logica Date due proposizioni A e B, l’operatore di coimplicazione logica produce la proposizione C=AÛB che è VERA se e solo A e B sono entrambe VERE o entrambe FALSE. Negli altri casi C è FALSA. Ad esempio se A=“Il triangolo ha angoli alla base uguali”, B=“Il triangolo è isoscele”, e si ha che v(A)=F e v(B)=F, allora C=AÛB=“Il triangolo non ha angoli alla base uguali allora il triangolo non è isoscele” è VERA
Coimplicazione logica La tabella di verità dell’operatore di coimplicazione logica risulta quindi essere:
Implicazione e coimplicazione logica Se due proposizioni A e B sono legate da implicazione logica (A Þ B), si dice che A è condizione sufficiente per B e B è condizione necessaria per A. Se due proposizioni A e B sono legate da coimplicazione logica (A ÛB), si dice che A è condizione necessaria e sufficiente per B.
La formula Una formula f è una combinazione di simboli di proposizioni tramite connettivi (operatori) logici. Ad una formula è associato un valore di verità v(f) che dipende dai valori di verità delle proposizioni atomiche (proposizioni che non possono essere scomposte in ulteriori proposizioni più piccole) A & B è un esempio di formula
La sintassi di una formula • L’alfabeto delle formule è composto da: • i simboli delle proposizioni • i simboli dei connettivi logici • parentesi tonde (per eliminare ambiguità)
La sintassi di una formula • La grammatica delle formule definisce le regole di buona formazione. Esse sono: • un simbolo di proposizione è una formula ben formata (abbreviato FBF) • se f è una formula ben formata, allora la sua negazione !f è una FBF • se f e f’ sono FBF, allora fopf’) (dove “op” è uno dei connettivi logici) è una FBF • niente altro è una FBF
La sintassi di una formula Ad esempio la formula f=(A & (!B)) | C è una FBF in quanto, in virtù della regola 1, A, B e C sono FBF. Inoltre anche !B è una FBF in virtù della regola 2. Infine, per la regola 3 sono FBF anche le formule A & !B e la formula F=(A & (!B)) | C . Invece la formula f’=A & (& B) non è una FBF.
La semantica di una formula Ad una formula f (che sia FBF) può essere associato un valore di verità attraverso la funzione di valutazionev: v: L {V,F} che mappa l’insieme delle formule ben formate L all’insieme {V,F}. La funzione v si basa sulle tabelle di verità dei connettivi logici visti in precedenza. Quindi data f, v(f) è il valore di verità associato a f
La semantica di una formula Esempio: f=(A & (!B)) | C posto che sia v(A)=V, v(B)=V e v(C)=F si ha: v(!B)=F v(A & (!B))=F v(f)=v((A & (!B)) | C)=F
La semantica di una formula • Si dice che una formula f è: • una tautologia se è sempre v(f)=V • una contraddizione se è sempre v(f)=F Ad esempio: • f=A & (notA) v(f)=F sempre! • f’=A ! (notA) v(f’)=V sempre!
Algebra di Boole • L’algebra di Boole si basa su: • variabili booleane che possono assumere uno dei valori compresi nell’insieme {0,1} • operatori booleani • di negazione logica (NOT) • di prodotto logico (AND) • di somma logica (OR) • etc.
Negazione logica (NOT) L’operazione di negazione logica (o complementazione) restituisce il valore opposto rispetto alla variabile x in ingresso. Data la variabile booleana x, la sua negazione logica si indica con –x, x, x’ oppure not(x). Se x vale 1, allora –x vale 0; se x vale 0, allora –x vale 1.
Negazione logica (NOT) La tabella di verità dell’operatore di negazione logica risulta quindi essere:
Prodotto logico (AND) L’operazione di prodotto logico, tra due variabili x e y, restituisce 1 se x e y hanno entrambe valore 1. In tutti gli altri casi restituisce 0. Date le variabili booleane x e y, il prodotto logico di x e y si indica con x y, xy oppure con (x and y).
Prodotto logico (AND) La tabella di verità dell’operatore di prodotto logico risulta quindi essere:
Somma logica (OR) L’operazione di somma logica, tra due variabili x e y, restituisce 1 se almeno una tra x e y ha valore 1. In tutti gli altri casi restituisce 0. Date le variabili booleane x e y, la somma logica di x e y si indica con x+y oppure con (x or y).
Somma logica (OR) La tabella di verità dell’operatore di somma logica risulta quindi essere:
Prodotti e somme notevoli x+0=x x+1=1 x+x=x x+(-x)=1 X 0=0 X 1=x X x=x x (-x)=0
Proprietà dell’algebra booleana • Proprietà di idempotenza della somma e del prodotto x+x=x e xx=x • Proprietà dell’elemento nullo della somma e del prodotto x+1=1 e x0=0 • Proprietà commutativa della somma e del prodotto x+y=y+x e xy=yx • Proprietà associativa della somma e del prodotto x+(y+z)=(x+y)+z=x+y+z e x(yz)=(xy)z=xyz