Fondamenti di Informatica Sistemi di Elaborazione delle Informazioni Informatica Applicata Logica: nozioni di base Antonella Poggi Anno Accademico 2012-2013 DIPARTIMENTO DI SCIENZE DOCUMENTARIE LINGUISTICO FILOLOGICHE E GEOGRAFICHE
Le espressioni booleane Abbiamo parlato di espressioni booleane quando abbiamo presentato i vincoli di tupla Parleremo ancora di espressioni booleane nell ambito della presentazione del linguaggio SQL In prima battuta, diciamo che un espressione booleana è una espressione, ovvero una formula, che, quando è valutata, assume un valore booleano, ovvero un valore tra VERO e FALSO formula intera: 1 + 2 -> valore intero formula reale: 1 + 2.5 -> valore reale formula booleana: (Voto > 17) AND (Voto>31) -> valore booelano Ma cosa significa che una formula viene valutata? Cosa rappresentano i valori VERO e FALSO? Antonella Poggi Pagina 2
La logica Da Wikipedia: La logica (dal greco logos, ovvero parola, pensiero, idea, argomento, ragione ) è lo studio del ragionamento e dell argomentazione e, in particolare, dei procedimenti inferenziali, rivolto a chiarire quali procedimenti di pensiero siano validi e quali non validi La logica nasce con Aristotele (384 a.c.) che per primo studia come argomenti corretti seguano necessariamente da premesse corrette (esempio: studio sul sillogismo) Per opera di Boole (1815), l algebra viene utilizzata come mezzo per esprimere le leggi del ragionamento Antonella Poggi Pagina 3
Inferenza Un inferenza è un processo che, a partire da alcuni enunciati assunti come punto di partenza (le premesse dell inferenza), porta ad asserire un altro enunciato (la conclusione) Premesse: Tutti gli uomini sono mortali Io sono un uomo Conclusione Io sono mortale Antonella Poggi Pagina 4
La logica proposizionale La logica proposizionale è un linguaggio che cattura le forme più semplici di inferenza logica E basata su proposizioni elementari (anche detti atomi), che non possono essere ulteriormente scomposte in altre proposizioni connettivi logici che restituiscono il valore di verità di una proposizione in funzione del valore di verità delle proposizioni conesse Per rendere conto della validità delle inferenze proposizionali non occorre scomporre le formule atomiche in componenti più elementari Antonella Poggi Pagina 5
Piove Esempi di proposizioni atomiche Si è dimesso Papa Benedetto XVI E stato eletto Papa Francesco I Ho preso 30 Ho preso la lode Antonella Poggi Pagina 6
Esempio di inferenza proposizionale Premesse: Se ho preso la lode, allora ho preso 30 Non ho preso 30 Conclusione? Non ho preso la lode Antonella Poggi Pagina 7
Proposizioni: vere o false? 1. Piove Falso adesso, vero ieri 2. Se è stato eletto Papa Francesco, allora si è dimesso Papa Benedetto XVI Vero oggi, perché Benedetto XVI si è dimesso e Francesco è stato eletto Vero il 9 Marzo 2013, perché Francesco non era ancora stato eletto Vero a Settembre 2012, perché Papa Benedetto XVI non si era dimesso 3. Piove oppure non piove Sempre vero Antonella Poggi Pagina 8
La logica proposizionale: sintassi (1) Ingredienti: alfabeto formule (booleane) o proposizioni Alfabeto Gli operatori proposizionali unario: NOT binari: AND, OR,, Le costanti T, F (per denotare il vero e il falso) Un insieme non vuoto di simboli (o lettere) proposizionali S={P, Q,...} I simboli separatori ( e ) Antonella Poggi Pagina 9
La logica proposizionale: sintassi (2) Formule L insieme delle formule (ben formate) della logica proposizionale è l insieme PROP definito come segue: 1. le costanti ed i simboli proposizionali sono formule 2. se A è una formula, allora (NOT A) è una formula 3. se A e B sono formule e OP è un operatore binario (cioè OP è uno tra {AND,OR,, ), allora (A OP B) è una formula Antonella Poggi Pagina 10
Precedenza operatori Le parentesi permettono di indicare la precedenza con cui gli operatori vanno applicati In assensa di parentesi, la massima precedenza viene data a NOT, poi a AND,OR,, ed infine a. Gli operatori sono associativi a destra. Esempi: La formula NOT(A) AND NOT(B) viene parentetizzata come ((NOT(A)) AND (NOT(B))) La formula A AND B OR C viene parentetizzata come ((A AND B) OR C) La formula A B C viene parentetizzata come (A (B C)) La formula NOT(A) AND NOT(B) C AND D AND E viene parentetizzata come (((NOT(A)) AND (NOT(B))) (C AND (D AND E))) La formula NOT(A) AND (NOT(B) C) AND D AND E viene parentetizzata come ((NOT(A)) AND ((NOT(B)) C) AND (D AND E)) Antonella Poggi Pagina 11
Esempi 1. Piove P 2. Se è stato eletto Papa Francesco, allora si è dimesso Papa Benedetto XVI F B 3. Piove oppure non piove P OR NOT(P) Antonella Poggi Pagina 12
Logica proposizionale: semantica Sia ass una funzione totale, detta funzione di assegnazione, dall insieme delle lettere proposizionali S all insieme {0,1}, dove 0 denota il valore FALSO e 1 denota il valore VERO. La semantica di una formula viene assegnata per mezzo della funzione di valutazione val, dall insieme PROP (di tutte le formule proposizionali) all insieme dei valori di verità {0,1}, tale che: val(q) = ass(q) se Q S val(t) = 1 val(f) = 0 val(not(a)) = 1 se val(a)=0, val(not(a)) = 0 se val(a) = 1 val(a OP B) è definito dalla seguente tavola di verità A B AND OR 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 Antonella Poggi Pagina 13
Esempi 1. Piove Adesso: ass(p)=ass(p)=0 perché val(p)=0 Ieri: ass(p)=ass(p)=1 perché val(p)=1 2. Se è stato eletto Papa Francesco, allora si è dimesso Papa Benedetto XVI Oggi: ass(f B)=1, perché val(f)=1 e val(b)=1 Il 9 Marzo: ass(f B)=1, perché val(b)=1 e val(f)=0 A Settembre 2012: ass(b F)=1, perché val(b)=0 e val(f)=0 3. Piove oppure non piove Sempre vero perché, quale che sia val, ass(p OR NOT(P))=1 Antonella Poggi Pagina 14
Tavole di verità La possibilità di organizzare in una tabella i valori di verità di una proposizione composta come funzione dei valori di verità delle sue componenti può essere generalizzata a proposizioni qualunque Esempio: la tabella di verità della proposizione P OR NOT(P) è la seguente: Quale che sia Val, è sempre vera! P NOT(P) P OR NOT(P) 1 0 1 0 1 1 Antonella Poggi Pagina 15
Tavole di verità (altro esempio) Sia la proposizione: A=((NOT(P) AND Q) R) La sua tabella di verità è la seguente: P Q R NOT(P) NOT(P) AND Q A 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 Antonella Poggi Pagina 16
Torniamo ai vincoli e a SQL Sia quando esprimiamo un vincolo che quando esprimiamo una condizione in SQL, usiamo espressioni (o formule) booleane costruite su atomi che confrontano valori di attributi o espressioni aritmetiche su di essi Rispetto alle proposizioni della logica proposizionale viste sino ad ora, al posto delle lettere abbiamo delle formule più complesse, il cui valore di verità è dato dall esito del confronto Esempi: (Voto 30) AND (Voto 18) (Lode= e lode ) (Voto=30) Antonella Poggi Pagina 17
Operatori di confronto Gli operatori di confronto che possono essere usati sono tutti quelli ammissibili per gli operando a cui sono applicati Esempi:,,,... - per interi, reali, ecc. (eventualmente espressi mezzo di operazioni aritmetiche) =, sottostringa=, iniziale=,... tra stringhe di caratteri in, not in tra elemento(i) ed un insiemi di elementi dello stesso tipo... Antonella Poggi Pagina 18
Interpretazioni e modelli Una valutazione Val si può vedere come un insieme di simboli proposizionali, detto interpretazione, nel seguente modo: l interpretazione associata ad una data valutazione Val è l insieme che contiene tutti e soli i simboli P tali Val(P) = 1. Definiamo ricorsivamente la relazione = tra interpretazioni e formule come segue. Se M è una interpretazione, allora: 1. M = P se P M 2. M = T e non è vero che M = F; 3. M = NOT(A) se non è vero che (M = A) 4. M = A AND B se M = A e M = B 5. M = A OR B se M = A oppure M = B 6. M = A B se non è vero che M = A oppure M = B 7. M = A B se M = A e M = B, oppure se non è vero che M = A e M = B Antonella Poggi Pagina 19
Modelli - definizioni Se M A, diciamo che M soddisfa A, ovvero che M rende vera A, ovvero che M è un modello di A Se F è un insieme di formule, e per ogni formula A in F si ha che M A, diciamo che M è un modello per F e indichiamo questo con M F Se ogni interpretazione è un modello di A, allora A è una tautologia, e possiamo scrivere A Se esiste almeno unm tale che M A, allora diciamo che A è soddisfacibile Se per nessun M si ha che M A, allora diciamo che A è insoddisfacibile, o che è una contraddizione. Si noti che una formula A è una tautologia se e solo NOT(A) è una contraddizione Antonella Poggi Pagina 20
Esempi: soddisfacibile? modelli? 1. Piove Ha il modello {P}, corrispondente al mondo ieri. Quindi è soddisfacibile. 2. Se è stato eletto Papa Francesco, allora si è dimesso Papa Benedetto XVI Ha i seguenti modelli: {}, corrispondente al mondo a Settembre 2012 {B,F}, corrispondente al mondo oggi {B}, che corrisponde al mondo al 9 Marzo 2013 Mentre {F}, non è un modello: Papa Francesco non avrebbe potuto essere stato eletto se Papa Benedetto non si fosse dimesso! 3. Piove oppure non piove E una tautologia 4. Piove e non piove Non ha nessun modello, quindi è insoddisfacibile Antonella Poggi Pagina 21
Esercizio 1 Se Giovanni studia canto e non ha una brutta voce allora avrà successo. Siano: C = Giovanni studia canto B = Giovanni ha una brutta voce S = Giovanni avrà successo 1. Esprimere con una formula della logica proposizionale, l enunciato di cui sopra. 2. Dire quali tra i seguenti insiemi sono modelli: {C, B, S} {C, S} {B, S} {C} {B} {} Antonella Poggi Pagina 22
Esercizio 1: soluzione 1. Esprimere con una formula della logica proposizionale, l enunciato di cui sopra C AND NOT(B) S 2. Dire quali tra i seguenti insiemi sono modelli: {C, B, S} SI {C, S} SI {B, S} SI {C} NO {B} SI {} SI Antonella Poggi Pagina 23
Implicazione e equivalenza logica A implica logicamente B se, per ogni valutazione booleana Val, ogni volta che Val(A) = 1, si ha anche che Val(B) = 1, ovvero se M: se M A allora M B Se A implica logicamente B, scriviamo A B. A e B sono logicamente equivalenti se Val(A) = Val(B) per ogni valutazione booleana Val, ovvero se M: M A se e solo se M B ovvero se A e B hanno gli stessi modelli. Se A è logicamente equivalente a B, scriviamo A B. Antonella Poggi Pagina 24
Leggi della logica proposizionale (1) Idempotenza: A AND A A A OR A A Associatività: A AND (B AND C) (A AND B) AND C A OR (B OR C) (A OR B) OR C A (B C) (A B) C Commutatività: A AND B B AND A A OR B B OR A A B B A Antonella Poggi Pagina 25
Leggi della logica proposizionale (2) Distributività: A AND (B OR C) (A AND B) OR (A AND C) A OR (B AND C) (A OR B) AND (A OR C) Assorbimento: A AND (A OR B) A A OR (A AND B) A Doppia negazione: NOT(NOT(A)) A Leggi di De Morgan: NOT(A AND B) NOT(A) OR NOT(B) NOT(A OR B) NOT(A) AND NOT(B) Antonella Poggi Pagina 26
Leggi della logica proposizionale (3) Terzo escluso: A OR NOT(A) T Contrapposizione: A B NOT(B) NOT(A) Contraddizione: A AND NOT(A) F Antonella Poggi Pagina 27
Implicazione logica, soddisfacibilità e deduzione Il seguente teorema lega le nozioni di implicazione logica e di insoddisfacibilità: F A se e solo se F {NOT(A)} è insoddisfacibile Il seguente teorema di deduzione lega le nozioni di implicazione logica e di implicazione materiale: F A se e solo se F A dove F è la formula ottenuta come and delle formule in F Antonella Poggi Pagina 28
Decidibilità Problemi di decisione associati alla logica proposizionale: SAT: data una formula A della logica proposizionale, decidere se A è soddisfacibile o no TAUT: data una formula A della logica proposizionale, decidere se A è una tautologia o no Data una formula A con n simboli proposizionali distinti, per verificare se la formula è soddisfacibile basta costruire una tabella di verità per A, che conterrà 2 n righe. Per ogni riga, basta poi verificare se essa corrisponde ad un modello Si dice che: La logica proposizionale è decidibile. Antonella Poggi Pagina 29