Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 2 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 1 Strutture e modelli Sia M ⊆ A un insieme di simboli proposizionali, definiamo la relazione |= ⊆ (M × Prop) ricorsivamente come segue: 1. M |= > ogni insieme di simboli è un modello di > 2. M 6|= ⊥ nessun insieme di simboli è un modello di ⊥; 3. M |= A se e solo se A ∈ M; 4. M |= ¬α se e solo se non (M |= α) se e solo se M 6|= α; 5. M |= α ∧ β se e solo se M |= α e M |= β; 6. M |= α ∨ β se e solo se M |= α oppure M |= β; 7. M |= α → β se e solo se M 6|= α oppure M |= β; 8. M |= α ↔ β se e solo se M |= α e M |= β, oppure M 6|= α e M 6|= β. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 2 Modelli-definizioni Sia α una formula, se M |= α diciamo che M è un modello di α, ovvero che M rende vera α. Se M rende vere tutte le formule di un insieme Γ, cioè se M |= γ, per ogni formula γ in Γ, diciamo che M è un modello per Γ e indichiamo questo con M |= Γ. Se α è una tautologia, possiamo scrivere |= α (ogni modello rende vera α). Se M |= α per qualche M, allora diciamo che α è soddisfacibile. Se per nessun insieme di simboli proposizionali M è verificato che M |= α allora diciamo che α è insoddisfacibile. Quindi una formula è insoddisfacibile se e solo se per essa non esiste un modello. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 3 Esempio 1. La formula A ∧ B ha {A, B} come modello. Dunque la formula è soddisfacibile. 2. La formula A ∧ ¬B ha {A} come modello. 3. La formula A ∧ ¬A non ha alcun modello. Dunque la formula non è soddisfacibile. 4. La formula A → B ha {}, {B} e {A, B} come modelli; mentre {A} non è un modello. 5. La formula A ∨ B ha {A}, {B} e {A, B} come modelli. 6. Sia A → ((B ∧ C) ∨ (C → ¬A)); M = {A, B} è un modello per essa. Esistono altri modelli? Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 4 Proprietà Se α implica logicamente β, allora la formula α → β è una tautologia e quindi vale |= α → β Se Γ è un insieme di proposizioni ed M un modello, scriviamo M |= Γ se e solo se M è un modello di tutte le proposizioni in Γ. Dato un insieme di proposizioni Γ e una proposizione α, diciamo che Γ implica logicamente α e scriviamo Γ |= α se e solo se tutti i modelli di Γ sono anche modelli di α. Se α è logicamente equivalente a β, cioè se α ≡ β, allora la formula alpha ↔ β è una tautologia e quindi vale |= α ↔ β. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 5 Notazioni Data una formula α, indichiamo con M od(α) l’insieme dei modelli di α, M od(α) = {M|M |= α} Dato un insieme di proposizioni Γ, i modelli di Γ sono i modelli che ne soddisfano tutte le formule, M od(Γ) = {M|∀γ∈ΓM |= γ} Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 6 Proprietà dei modelli Data una formula γ = ¬α, l’insieme dei modelli di γ è M od(γ) = M od(α) Data una formula γ = α ∧ β, l’insieme dei modelli di γ è M od(γ) = M od(α) ∩ M od(β) Data una formula γ = α ∨ β, l’insieme dei modelli di γ è M od(γ) = M od(α) ∪ M od(β) Data una formula γ = α → β, l’insieme dei modelli di γ è M od(γ) = M od(α) ∪ M od(β) Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 7 Teorema Il seguente importante teorema lega le nozioni di implicazione logica e di insoddisfacibilità : Γ |= α se e solo se Γ ∪ {¬α} è insoddisfacibile. Dimostrazione (⇒) Supponiamo Γ |= α, ma Γ ∪ {¬α} soddisfacibile. Allora esiste un modello M tale che M |= Γ e M |= ¬α, contraddizione con la definizione di implicazione logica. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 8 Teorema Γ |= α se e solo se Γ ∪ {¬α} è insoddisfacibile. Dimostrazione (⇐) Supponiamo che Γ∪{¬α} sia insoddisfacibile, consideriamo le seguenti trasformazioni: 1. non esiste un modello M tale che M verifica entrambi gli asserti M |= Γ e M |= ¬α; 2. per ogni modello M, M non verifica entrambi gli asserti M |= Γ e M |= ¬α; 3. per ogni modello M, M 6|= Γ oppure M 6|= ¬α; 4. per ogni modello M, M |= Γ implica M 6|= ¬α; 5. M 6|= ¬α se e solo se M |= α; 6. per ogni modello M, M |= Γ implica M |= α; 7. Γ |= α. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 9 Esempio Verifichiamo che A ∧ B |= B e che {A ∧ B} ∪ {¬B} è insoddisfacibile. Sia M = {A, B}, ogni modello M0 che contiene M è un modello di A ∧ B e, ovviamente, un modello di B. Si osservi che M∗ = {B} è un modello di B, ma non è un modello di A ∧ B. Più in generale, nessun sottoinsieme proprio di M è un modello di A ∧ B. {A ∧ B} ∪ {¬B}, è equivalente a A ∧ (B ∧ ¬B); è evidente che tale formula non ha modelli. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 10 Decidibilità La logica proposizionale è decidibile. Cioè si può decidere se una formula α del calcolo proposizionale è una tautologia o meno. Un altro interessante problema di decisione per il calcolo proposizionale consiste nello stabilire se una formula è soddisfacibile o meno (questo problema è di solito indicato con SAT ). Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 11 Tabelle di verità ridotte Usiamo tabelle di verità ridotte. Il valore di verità dell’intera formula è leggibile nella colonna sottostante al suo connettivo principale. Esempio: Scriviamo la tabella di verità ridotta per P → (Q → P ) P → Q 1 1 1 1 1 0 0 1 1 0 1 0 → 1 1 0 1 P 1 1 0 0 Proprietà : α è una tautologia se e solo se la colonna della tabella di verità (sottostante al connettivo principale) contiene solo 1, è soddisfacibile se e solo se essa contiene almeno un 1, è contraddittoria se e solo se essa contiene tutti 0. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 12 Complessità Per il problema di verificare se una formula del calcolo proposizionale è o meno una tautologia, come pure il problema SAT , si conoscono solo algoritmi di costo esponenziale nella dimensione della formula (cioè il numero di simboli di proposizione distinti che in essa compaiono). Data una formula α con n simboli proposizionali distinti, per verificare se la formula è una tautologia o se è soddisfacibile basta costruire una tabella di verità per α, che conterrà 2n righe. Si può fare di meglio? È possibile trovare algoritmi polinomiali per risolvere il problema di decisione delle tautologie e della soddisfacibilità del calcolo proposizionale? SAT non è ancora stato dimostrato intrinsecamente non polinomiale, anche se esiste una certa evidenza in questo senso. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 13 Sistema assiomatico hilbertiano ♦ Introduciamo ora un sistema di deduzione per la logica proposizionale, chiamato hilbertiano. ♦ Il sistema assiomatico hilbertiano è basato sulla definizione di 3 schemi di assiomi e di 2 regole di inferenza, chiamate Modus Ponens (MP) e Sostituzione Uniforme (SU). ♦ La verità di una formula viene definita attraverso la nozione di derivazione. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 14 Schemi di assioma e regole di inferenza ♦ Schemi di assioma (Nota bene: α, β e γ denotano formule generiche ed usiamo solo i connettivi ¬ e →) 1. (α → (β → α)); 2. ((α → (β → γ)) → ((α → β) → (α → γ))) ; 3. ((β → ¬α) → ((β → α) → ¬β)). ♦ Regole di Inferenza • Modus Ponens (MP): α, α→β β • Sostituzione Uniforme (SU): β[p] β[α/p] dove p è un simbolo proposizionale che può occorrere in β, α è una proposizione e p non occorre in α, β[α/p] è detta una istanza di β[p]. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 15 Definizioni ♦ denotiamo con Axioms l’insieme degli assiomi del calcolo proposizionale, cioè tutte le formule ottenibili dai 3 schemi di assiomi per sostituzione. ♦ Una sequenza α1, . . . , αn è una dimostrazione di α se αn = α e se per ogni i, 1 ≤ i ≤ n, αi ∈ Axioms (cioè è un’istanza di uno schema di assioma ottenuto da a, b e c per mezzo di SU), oppure αi è ottenuto da αj e αk , j < k < i per MP, dove αk = αj → αi. In tal caso α è un teorema del calcolo proposizionale e lo indichiamo: `H α ♦ Diciamo che una proposizione α ha una dimostrazione da un insieme di proposizioni (ipotesi) Γ se esiste una derivazione α1, . . . , αn = α tale che, per ogni i, 1 ≤ i ≤ n, αi ∈ Γ oppure αi ∈ Axioms oppure αi è ottenuto da αj e αk , j < k < i per MP, dove αk = αj → αi, o αi è in Γ. Se α ha una dimostrazione da Γ scriviamo: Γ `H α Gli elementi di Γ sono chiamati le premesse di α. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 16 Definizione dei connettivi Il sistema assiomatico di Hilbert contiene solo ¬ e →, gli altri connettivi possono essere introdotti definendoli a partire da questi due. 1. α ∧ β =Def ¬(α → ¬β); 2. α ∨ β =Def ¬α → β; 3. α ↔ β =Def (α → β) ∧ (β → α). Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 17 Teorema di deduzione Sia Γ un insieme di formule proposizionali e siano α e β due formule proposizionali: Γ, β `H α se e solo se Γ `H β → α. ♦ Il simbolo “metalogico” `H viene “internalizzato” nel linguaggio mediante → ♦ Possiamo sempre trattare con teoremi, invece che con derivazioni da insiemi di formule Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 18 Esempio Vogliamo mostrare che, nel sistema hilbertiano si deriva: `H ¬A → (A → B) Prima dimostriamo che {A, ¬A} `H B 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ¬A A A → (¬B → A) ¬A → (¬B → ¬A) ¬B → A ¬B → ¬A (¬B → ¬A) → ((¬B → A) → ¬¬B) (¬B → A) → ¬¬B ¬¬B B (ipotesi) (ipotesi) (schema (a)) (schema (a)) (da 2 e 3 per MP) (da 1 e 4 per MP) (schema (c)) (da 6 e 7 per MP) (da 5 e 8 per MP) (da 9 per esercizio ) Con due applicazioni del teorema di deduzione si conclude la dimostrazione. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 19 Consistenza Diciamo che un insieme di formule proposizionali Γ è consistente se è verificata una delle seguenti: 1. Non esiste una proposizione α tale che Γ `H α e Γ `H ¬α; 2. Esiste una proposizione α, tale che Γ 6`H α. ♦ Le due formulazioni sono equivalenti. ♦ Si può correlare la nozione sintattica di consistenza con quella semantica di soddisfacibilità, dimostrando che un insieme di formule Γ è consistente se e solo se è soddisfacibile Un insieme di formule Γ si dice consistente e massimale o completo se per ogni formula α ∈ Prop si verifica una e una sola delle seguenti relazioni: Γ `H α oppure Γ `H ¬α Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 20 Correttezza ♦ Quale relazione lega i teoremi e le tautologie?? ♦ Se Γ `H α quale relazione lega i modelli di Γ ed α?? Per mostrare questa corrispondenza, dobbiamo mostrare che: (i) L’insieme delle tautologie coincide con l’insieme dei teoremi: `H α se e solo se |= α. (ii) Ciò che deriva da un insieme Γ è vero in tutti i modelli di Γ: Γ `H α se e solo se Γ |= α. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 21 Teorema di completezza e correttezza `H α se e solo se |= α ♦ Correttezza del sistema hilbertiano `H α implica |= α. È sufficiente dimostrare che: i. gli schemi a, b e c sono tautologie (esercizio); ii. MP e SU sono chiusi rispetto alla conseguenza tautologica. Ovvero se α e α → β sono tautologie anche β è una tautologia, e se F [p] è una tautologia, anche F [X/p] lo è. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 22 Correttezza: fine dimostrazione `H α implica |= α. ii. MP è chiuso rispetto alla conseguenza tautologica. Supponiamo per assurdo che |= α e |= α → β, ma 6|= β. Se 6|= β, allora esiste un modello M che non soddisfa β; ma α è una tautologia, perciò è verificata in ogni modello e quindi in M. Pertanto M |= α e M 6|= β e per definizione di implicazione tautologica 6|= α → β; contraddizione. Consideriamo SU, sia F [p] una tautologia, allora |= F [p] per qualunque assegnazione booleana alle lettere proposizionali di F [p], in particolare a p; dunque per qualunque proposizione X possiamo porre IV (p) = IV (X). Per il teorema del rimpiazzamento, IV (F [p/p]) = IV (F [X/p]), da cui segue che F [X/p] è una tautologia. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 2 23