Fondamenti di Informatica 2 Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Fondamenti di Informatica 2: Logica } Indice degli argomenti • Introduzione: Motivazioni, Prove, Ragionamenti e loro conseguenze • Logica Proposizionale: sintassi • Il calcolo proposizionale: semantica • Il calcolo proposizionale: dimostrazioni nel calcolo Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica: Motivazioni } La LOGICA è la disciplina che studia le condizioni di correttezza del ragionamento } Occorre dire, anzitutto, quale oggetto riguardi ed a quale disciplina spetti la presente indagine, che essa cioè cio riguarda la dimostrazione e spetta alla scienza dimostrativa: in seguito, bisogna precisare cosa sia la premessa, cosa sia il termine, cosa sia il sillogismo... [Aristotele] } Esempio di sillogismo (sillogismo = connessione di idee, ragionamento) • Tutti gli uomini sono mortali • Socrate è un uomo • Socrate è mortale Equivalentemente Dato che Tutti gli uomini sono mortali e che Socrate è un uomo possiamo concludere che Socrate è mortale Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica: Motivazioni } Non tutti i sillogismi sono validi. Ad esempio • Tutti gli animali sono mortali • Socrate è mortale • Socrate è un animale • Tutti gli dei sono immortali • Gli uomini non sono dei • Gli uomini sono mortali I due sillogismi precedenti sono errati: la conclusione non deriva logicamente dalle premesse } Obiettivi di questa parte: - presentare la logica proposizionale, una (piccola) parte della logica - presentare in modo formale i concetti di prova cosı̀ come si utilizzano nella logica proposizionale Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Cosa è una dimostrazione, una prova astuta } Cosa è un teorema in matematica? Teorema di Pitagora: Se a, b, c sono lati di un triangolo rettangolo allora a2 + b 2 = c 2 Familiare? SI Ovvio? No - 4 triangoli rettangoli con cateti lunghi a e b e un quadrato di lato b a ! Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Cosa è una dimostrazione, una prova astuta } Teorema di Pitagora: Se a, b, c sono lati di un triangolo rettangolo allora a2 + b 2 = c 2 - 4 triangoli rettangoli con cateti lunghi a e b e un quadrato con lato lungo b a hanno area complessiva pari a c2 ! Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Cosa è una dimostrazione, una prova astuta-2 } Teorema di Pitagora: Se a, b, c sono lati di un triangolo rettangolo allora a2 + b 2 = c 2 - 4 triangoli rettangoli con cateti lunghi a e b e un quadrato con lato lungo a hanno area complessiva pari a a2 + b2. Quindi c2 = a2 + b2! ! Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Una dimostrazione sbagliata } Consideriamo la seguente sequenza di uguaglianze: 1= p r r r r 1 = ( 1)( 1) = ( 1) ( 1) = ( ( 1))2 = 1 Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Conseguenze di una dimostrazione sbagliata } Consideriamo la seguente sequenza di uguaglianze: 1= p r r r r 1 = ( 1)( 1) = ( 1) ( 1) = ( ( 1))2 = 1 } Dopo aver dimostrato che 1 = 1 otteniamo anche • 12 = 12 (moltiplica per 12 i membri della uguagl. precedente) • 2 = 1 (somma 32 ad ambedue i termini dell’uguagl. precedente) } Conseguenze di 2 = 1 Dato che io e il Papa siamo chiaramente 2 possiamo concludere che io e il Papa siamo 1, cioè io e il Papa siamo la stessa persona ed io sono il Papa! [Bertrand Russel] } Morale: Le conseguenze di una prova sbagliata possono essere paradossali perché una prova errata permette di fare a↵ermazioni chiaramente errate! Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica: Motivazioni } La LOGICA è la disciplina che studia le condizioni di correttezza del ragionamento } Occorre dire, anzitutto, quale oggetto riguardi ed a quale disciplina spetti la presente indagine, che essa cioè cio riguarda la dimostrazione e spetta alla scienza dimostrativa: in seguito, bisogna precisare cosa sia la premessa, cosa sia il termine, cosa sia il sillogismo... [Aristotele] } Noi ci limiteremo alla Logica Proposizionale Nota anche come Calcolo Proposizionale ci permette di ragionare sulla verità di semplici proposizioni } Obiettivo • Formalizzare i nostri ragionamenti (limitandoci alle proposizioni) • Esaminare le regole che ci permettono di stabilire la verità o la falsità di una a↵ermazione Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica e informatica } Nel XIX secolo sono state in matematica sono state proposte notazioni matematiche (algebriche) per trattare le operazioni della logica (George Boole) } Questo ha consentito, negli anni 1900-1930, di applicare la logica ai fondamenti della matematica, arrivando a interessanti controversie e a capire i limiti della matematica (Frege, Russel, Godel ed altri) } In matematica, la logica è usata principalmente per esprimere asserti in modo non ambiguo } La logica matematica ha profondi legami con linformatica (ed in particolare nella programmazione e in intelligenza artificiale ) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica proposizionale Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica proposizionale } Linguaggio matematico per ragionare sulla verità o falsità di proposizioni } Composto da una sintassi (regole per costruire le frasi) e da una semantica (regole per assegnare un significato) } Esempio di frase • piove, f a-caldo, f a-caldo^(e)¬(non)piove, piove_(o)sole • costituito da proposizioni atomiche (piove, f a-caldo, sole . . .) e da proposizioni complesse (f a-caldo ^ ¬piove, piove _ sole . . .) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica proposizionale: Alfabeto } Linguaggio matematico per ragionare sulla verità o falsità di proposizioni • Un insieme non vuoto (finito o numerabile) di simboli proposizionali A = {A, B, . . . , P, Q, . . .}; • Le costanti proposizionali >, ? (per denotare il vero TRUE e il falso FALSE); • I connettivi (detti anche operatori) proposizionali ¬ (unario), ^ e _ (binari); • I simboli separatori ‘(’ e ‘)’. Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Logica proposizionale: Formule } Formule (dette anche proposizioni) L’insieme Prop delle formule ben formate o formule del linguaggio proposizionale è l’insieme definito induttivamente come segue: 1. Le costanti e i simboli proposizionali sono formule; 2. Se ↵ è una formula (¬↵) è una formula; 3. Se ↵ e sono due formule, (↵ ^ ) e (↵ _ ) sono formule. Nel seguito useremo la convenzione di denotare i simboli proposizionali con le lettere maiuscole (A, B, . . .) e le formule proposizionali con le lettere greche minuscole (↵, , . . . ). Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Semantica: Sistema di valutazione } Definiamo il dominio e gli operatori che ci permetteranno di dare una semantica (significato) alle nostre proposizioni. } Il sistema di valutazione della logica proposizionale è costituito dal dominio B= {0, 1}, dove il simbolo 1 denota il valore di verità e 0 il valore di falsità ed un insieme di operatori (tabelle di verità ) su questo dominio Op= {Op¬, Op^, Op_} uno per ogni connettivo del linguaggio con Op¬ : B 7! B e Op^ e Op_ : B ⇥ B 7! B. Dove: Op¬(1) = 0 e Op¬(0) = 1 ↵ 1 Op^: 1 0 0 1 0 1 0 ↵^ 1 0 0 0 operatore "not", o negazione (logica) operatore "and", o congiunzione (logica) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela ↵ 1 Op_: 1 0 0 1 0 1 0 ↵_ 1 1 1 0 operatore "or", o disgiunzione (logica) } Le operazioni ^ e _ sono commutative e associative. Infatti è facile mostrare che per ogni assegnazione ai simboli proposizionali ↵, , abbiamo che ↵^ ↵_ e (↵ ^ (↵ _ = = )^ )_ ^↵ _ ↵_ =↵^( ^ ) =↵_( _ ) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Semantica: Valutazione booleana } Un’assegnazione booleana V ai simboli proposizionali A è una funzione totale: V : A 7! {1, 0}. } Una valutazione booleana IV : Prop 7! {1, 0} è l’estensione a Prop di un’assegnazione booleana, cioè IV (A) IV (>) IV (?) IV (¬↵) IV (↵ ^ ) IV (↵ _ ) = = = = = = V(A) se A 2 A; 1; 0; Op¬(IV (↵)); Op^(IV (↵), IV ( )). Op_(IV (↵), IV ( )). Data V, si può facilmente dimostrare che l’estensione IV esiste ed è unica. Notate che è una definizione ricorsiva (ricorsione strutturale). Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio } Tre amici, Antonio, Bruno e Carla, sono incerti se andare in pizzeria. Introduciamo tre proposizioni: A : Antonio va in pizzeria, B: Bruno va in pizzeria, C: Carla va in pizzeria } Il giorno dopo sappiamo che: Antonio non va in pizzeria, Bruno va in pizzeria, Carla va in pizzeria Formalmente abbiamo la valutazione V: A = 0, B = 1, C = 1 assegnazione } Data V valutiamo le formule ↵: Tutti e tre sono andati in pizzeria : Almeno due sono andati in pizzeria ↵=A^B^C = (A ^ B) _ (A ^ C) _ (B ^ C) Applicando le regole mostrare che IV (↵) = 0 e che IV ( ) = 1 Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Tautologie e contraddizioni Definizioni: } Una formula proposizionale ↵ è soddisfatta da una valutazione booleana IV se IV (↵) = 1. } Una formula proposizionale ↵ è soddisfacibile se è soddisfatta da una qualche valutazione booleana IV . } Una formula proposizionale ↵ è una tautologia se è soddisfatta da ogni valutazione booleana IV . } Una formula proposizionale ↵ è una contraddizione se non è soddisfatta da nessuna valutazione booleana IV . alcuna Una formula ↵ è una tautologia se e solo se ¬↵ è una contraddizione. Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempi } ↵ = A _ (¬A) è una tautologia A ¬A A _ ¬A 1 0 1 0 1 1 } = A ^ (¬A) è una contraddizione A ¬A A ^ ¬A 1 0 0 0 1 0 } Con riferimento all’esempio precedente dei tre amici in pizzeria: la formula A ^ B ^ C è soddisfacibile (ma non è una tautologia) Infatti la formula è vera quando tutti e tre vanno in pizzeria, cioè per la assegnazione valutazione V per cui A = B = C = 1 abbiamo IV (A ^ B ^ C) = 1. Inoltre per ogni altra valutazione V 0, V 0 6= V abbiamo che IV 0 (A^B^C) = 0 assegnazione Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Equivalenza logica Definizioni: } ↵ implica logicamente (denotato ↵ ) ) se e solo se per ogni valutazione booleana IV , ogniqualvolta IV (↵) = 1 anche IV ( ) = 1. } Esercizio: ↵ implica logicamente (denotato ↵ ) ) se e solo ↵ ! è una tautologia sposta a dopo def. implicazione } ↵ e sono logicamente equivalenti o tautologicamente equivalenti (denotato ↵ ⌘ ) se e solo se IV (↵) = IV ( ) per ogni valutazione booleana IV . } Esercizio: ↵ e sono logicamente equivalenti o tautologicamente equivalenti (denotato ↵ ⌘ ) se e solo ↵ implica logicamente e implica logicamente ↵ Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Altri connettivi: 1 } Siamo in grado di rappresentare la congiunzione e la disgiunzione di proposizioni, ma siamo in grado di denotare la nozione di implicazione tra proposizioni ? • Il fatto che una proposizione ↵ implica un’altra ↵! viene denotato con • Quale è il suo operatore (tabella di verità ) Op! ? ↵ 1 Op!: 1 0 0 1 0 1 0 ↵! 1 0 1 1 operatore di "implicazione" } NOTA: Nel caso in cui l’antecedente (↵) dell’implicazione sia falso, l’implicazione è vera. Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Altri connettivi: 2 } Possiamo ora introdurre anche l’operatore ↵ $ , che denota la relazione che le due formule (↵ e ) si implicano vicendevolmente (↵ ! e ! ↵). Il conseguente operatore Op$ è cosı̀ definito: ↵ 1 Op$: 1 0 0 1 0 1 0 ↵$ 1 0 0 1 operatore di "co-implicazione", o "equivalenza" Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Definibilità di connettivi Dato un insieme di connettivi C e un connettivo c 62 C per cui si abbia una funzione di verità fc = Opc, si dice che c si deriva dai (oppure si definisce in termini dei) connettivi di C se esiste una formula proposizionale F costruita usando solo i connettivi di C tale che fc ⌘ fF . verificare notazione Esempio: Il connettivo ^ si può definire in termini di {¬, _} nel seguente modo: (↵ ^ ) ⌘ ¬(¬↵ _ ¬ ). Infatti si può facilmente verificare che per ogni valore di ↵ e le due funzioni ↵ ^ e ¬(¬↵ _ ¬ ) hanno lo stesso valore. ↵ 1 1 0 0 1 0 1 0 ¬↵ 0 0 1 1 ¬ ¬↵ _ ¬ 0 0 1 1 0 1 1 1 ¬(¬↵ _ ¬ ) ↵ ^ 1 1 0 0 0 0 0 0 Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Definibilità di connettivi: esempi (↵ ! ) (↵ _ ) (↵ _ ) (↵ ^ ) (↵ ^ ) ¬↵ ? (↵ $ ) ⌘ ⌘ ⌘ ⌘ ⌘ ⌘ ⌘ ⌘ (¬↵ _ ) (¬↵ ! ) ¬(¬↵ ^ ¬ ) ¬(¬↵ _ ¬ ) (((↵ ! ?) ! ?) ! ( ! ?)) ! ? ↵!? ↵ ^ ¬↵ (↵ ! ) ^ ( ! ↵) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Precedenza operatori } la massima precedenza a ¬, poi, nell’ordine, ai connettivi ^,_, !, $. } Esempi La formula ¬↵ ^ ¬ viene parentetizzata come La formula ↵ ^ _ viene parentetizzata come La formula ¬↵ ^ ¬ ! viene parentetizzata come La formula ¬↵ ^ (¬ ! viene parentetizzata come ((¬↵) ^ (¬ )). ((↵ ^ ) _ ). ^ ^✏ (((¬↵) ^ (¬ )) ! ( ^ ( ^ ✏))). )^ ^✏ ((¬↵) ^ ((¬ ) ! ) ^ ( ^ ✏)). Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Leggi 1 La definizione dei connettivi implica diverse equivalenze logiche che sono valide per ogni formula ↵ e 1. Idempotenza: ↵^↵ ⌘ ↵ ↵_↵ ⌘ ↵ 2. Associatività: ↵ ^ ( ^ ) ⌘ (↵ ^ ) ^ ↵ _ ( _ ) ⌘ (↵ _ ) _ ↵ $ ( $ ) ⌘ (↵ $ ) $ 3. Commutatività: ↵^ ↵_ ↵$ ⌘ ⌘ ⌘ ^↵ _↵ $↵ Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Leggi 2 1. Distributività: ↵ ^ ( _ ) ⌘ (↵ ^ ) _ (↵ ^ ) ↵ _ ( ^ ) ⌘ (↵ _ ) ^ (↵ _ ) 2. Assorbimento: ↵ ^ (↵ _ ) ⌘ ↵ ↵ _ (↵ ^ ) ⌘ ↵ 3. Doppia negazione: ¬¬↵ ⌘ ↵ 4. Leggi di De Morgan: ¬(↵ ^ ) ⌘ ¬↵ _ ¬ ¬(↵ _ ) ⌘ ¬↵ ^ ¬ Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Leggi 3 1. Terzo escluso: ↵ _ ¬↵ ⌘ > 2. Contrapposizione: ↵! ⌘ ¬ ! ¬↵ 3. Contraddizione: ↵ ^ ¬↵ ⌘ ?. } Queste leggi si possono verificare costruendo una tabella di verità e verificare che per ogni valore delle variabili otteniamo i valori delle due funzioni a destra e a sinistra di ⌘ sono uguali Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Funzioni booleane e insiemi di connettivi Definizione: Sia ↵ una formula contenente esattamente n atomi distinti A1, A2, . . . , An; la funzione f↵ : {0, 1}n 7! {0, 1} tale che f↵(v1, v2, . . . , vn) = IV (↵) dove V è l’interpretazione per cui V(Ai) = vi per ogni i = 1, 2, . . . , n è assegnazione detta la funzione di verità (o funzione booleana) associata ad ↵. Quindi, ogni proposizione del calcolo proposizionale definisce una funzione n-aria (o connettivo n-ario), dove n è il numero degli atomi distinti che in essa compaiono. 2n Per ogni n esistono 2 funzioni booleane distinte (cioè tante quanti sono i sottoinsiemi di {0, 1}n). Nel caso di n = 2 esistono 16 connettivi distinti. Noi ne abbiamo introdotti 4, non indipendenti, nel senso che alcuni sono esprimibili in termini di altri. Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Completezza di insiemi di connettivi } Un insieme di connettivi logici C si dice completo se e solo se, data una qualunque f : {0, 1}n 7! {0, 1} esiste una formula proposizionale ↵ costruita mediante i connettivi dell’insieme C tale che f ⌘ f↵. } Teorema: L’insieme {¬, ^, _} è completo. Prova: in due passi 1. Usando ¬ e ^ si può dimostrare come realizzare una funzione di n variabili che è sempre falsa tranne per un singola assegnazione di valori di verità . 2. Data una funzione f che è 1 per k diversi valori di verità (V 1, V 2, ..., V k ), utilizzando il passo 1 precedente per ogni i, i = 1, 2, ..k si definisce la funzione fi che è 1 per V i ed è sempre 0 altrimenti. La funzione f è data da: f1 _ f2 _ ... _ fk . Esercizi: Mostrare che gli insiemi {¬, ^}, {¬, _} , {nand} e {nor} sono completi. Sugg. Il teorema precedente a↵erma che {¬, ^, _} è completo. Pertanto è sufficiente mostrare come realizzare l’insieme di operatori {¬, ^, _} Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio 1 } Tre amici, Antonio, Bruno e Corrado, sono incerti se andare in pizzeria. Introduciamo tre proposizioni: A : Antonio va in pizzeria, B: Bruno va in pizzeria, C: Carla va in pizzeria (A è 1 se Anotnio va in pizzeria, 0 altrimenti) } Si sa che: Se Carla va in pizzeria, allora ci va anche Antonio: C!A e Se Antonio va in pizzeria allora ci va anche Bruno: A!B Formalmente abbiamo la formula: (C ! A) ^ (A ! B) } Consideriamo ora le asserzioni 1. Tutti e tre vanno in pizzeria: equivale a ↵ = A ^ B ^ C 2. Se Carla va in pizzeria anche Bruno va in pizzeria: = C ! B Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio 1 } Domanda 1: Sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va in pizzeria ci va anche Bruno, è sufficiente per a↵ermare che Tutti e tre vanno in pizzeria? Formalmente ci chiediamo se (C ! A) ^ (A ! B) implica logicamente A^B^C } Risposta: No (C ! A) ^ (A ! B) NON implica logicamente A ^ B ^ C. Infatti Consideriamo V per cui A = B = C = 0 Con questa assegnazione (C ! A) ^ (A ! B) è soddisfatta. Infatti IV (C ! A) = 1 (infatti se C = 0 l’implicazione C ! A è vera) analogamente IV (A ! B) = 1 Quindi IV ((C ! A) ^ (A ! B)) = 1 Poiché IV (A ^ B ^ C) = 0 concludiamo che (C ! A) ^ (A ! B) NON implica logicamente A ^ B ^ C Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio 1, cont. } Dimostrare che (C ! A) ^ (A ! B) implica logicamente A ^ B ^ C equivale a dimostrare che la seguente formula è una tautologia [(C ! A) ^ (A ! B)] ! (A ^ B ^ C) (*) } La formula (*) è soddisfacibile ma non è una tautologia. Infatti abbiamo visto che la valutazione V per cui A = B = C = 0 soddisfa (C ! A) ^ (A ! B) è ma (A ^ B ^ C) non è soddisfatta. } Se consideriamo V 0 per cui A = B = C = 1 possiamo verificare che la formula (*) è soddisfatta. Infatti è sufficiente osservare che A ^ B ^ C è soddisfatta e, quindi, anche IV 0 [((C ! A) ^ (A ! B)) ! (A ^ B ^ C)] = 1 } In conclusione possiamo a↵ermare che Sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va in pizzeria ci va anche Bruno, non implica logicamente che tutti e tre siano andati in pizzeria, ma possiamo dire che è possibile che tutti e tre siano andati in pizzeria Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio 2 } Domanda 2: sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va in pizzeria ci va anche Bruno, è sufficiente per a↵ermare che Se Carla è andata in pizzeria anche Bruno è andato in pizzeria? Formalmente ci chiediamo se (C ! A) ^ (A ! B) implica logicamente C!B } Risposta: SI A questo scopo possiamo ricostruire una tabella che verifica il valore della formula per tutte le possbili assegnazioni di valori ad A, B e C. In questo modo dobbiamo verificare che la formula sia vera per 23 = 8 possibili valori di verità . Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela A 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 C C ! A A ! B (C ! A) ^ (A ! B) C ! B 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 E’ facile vedere che ogni qualvolta IV (C ! B)= 1) abbiamo che IV((C ! A) ^ (A ! B))= 1 scambia Si noti inoltre che quando IV (C ! A) ^ (A ! B) = 0 allora IV (C ! B ) può essere 1 o 0 Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio, cont. 2 } Possiamo pertanto rispondere alla Domanda 2: sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va in pizzeria ci va anche Bruno, è logicamente equivalente a suff. per affermare che Se Carla è andata in pizzeria anche Bruno è andato in pizzeria } Abbiamo visto che (C ! A) ^ (A ! B) implica logicamente C ! B Questa proprietà è nota come transitività dell’implicazione } Si noti la somiglianza con il sillogismo su Socrate • Se A implica B • e B implica C • allora possiamo a↵ermare che A implica C Nota: La di↵erenza è che nel caso del sillogismo su Socrate la prima a↵ermazione non è una formula atomica ma riguarda un insieme di atomi (Tutti gli uomini sono mortali) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Esempio 2, cont. } Possiamo pertanto rispondere alla Domanda 2: 3 sapere che se Carla va in pizzeria ci va anche Antonio e che se Antonio va in pizzeria ci va anche Bruno, è è logicamente equivalente a Se Carla è andata in pizzeria anche Bruno è andato in pizzeria ? } Dobbiamo dimostrare se (C ! A) ^ (A ! B) ⌘ (C ! B) Abbiamo visto che (C ! A) ^ (A ! B) ) C ! B L’equivalenza è vera se vale anche la seguente implicazione (C ! B) ) ((C ! A) ^ (A ! B)) Consideriamo V = (A = 1, B = 0, C = 0). Abbiamo IV (C ! B) = 1, ma IV (A ! B) = 0. Quindi (C ! B) non implica logicamente ((C ! A) ^ (A ! B)) Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela