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 Esempi di proposizioni atomiche • • • • • Piove 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à Antonella Poggi 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 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! Antonella Poggi P NOT(P) P OR NOT(P) 1 0 1 0 1 1 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. 2. 3. 4. 5. 6. 7. M |= P se P ∈M M |= T e non è vero che M |= F; M |= NOT(A) se non è vero che (M |= A) M |= A AND B se M |= A e M |= B M |= A OR B se M |= A oppure M |= B M |= A → B se non è vero che M |= A oppure M |= B 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à 2n righe. Per ogni riga, basta poi verificare se essa corrisponde ad un modello • Si dice che: La logica proposizionale è decidibile. Antonella Poggi Pagina 29