Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 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 . . .) Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 2 Logica proposizionale: Alfabeto • 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 proposizionali ¬ (unario), ∧ e ∨ (binari); • I simboli separatori ‘(’ e ‘)’. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 3 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 (α, β, . . . ). Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 4 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 1 0 0 1 0 0 0 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 5 α 1 Op∨: 1 0 0 β α∨β 1 1 0 1 1 1 0 0 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 6 Semantica: Valutazione booleana ♦ Possiamo ora definire: ♦ 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) = V(A) se A ∈ A; IV (>) = 1; IV (⊥) = 0; IV (¬α) = Op¬(IV (α)); IV (α ∧ β) = Op∧(IV (α), 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). Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 7 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 . Una formula α è una tautologia se e solo se ¬α è una contraddizione. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 8 Equivalenza logica Definizioni: ♦ α implica logicamente β (denotato α ⇒ β) se e solo se per ogni valutazione booleana IV , ogniqualvolta IV (α) = 1 anche IV (β) = 1. ♦ α e β sono logicamente equivalenti o tautologicamente equivalenti (denotato α ≡ β) se e solo se IV (α) = IV (β) per ogni valutazione booleana IV . Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 9 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 1 0 0 1 1 0 1 ♦ Nel caso in cui l’antecedente (α) dell’implicazione sia falso, l’implicazione è vera. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 10 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 1 0 0 1 0 0 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 11 Definibilità di connettivi Dato un insieme di connettivi C e un connettivo c 6∈ 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 . Esempio: Il connettivo ∧ si può definire in termini di {¬, ∨} nel seguente modo: (α ∧ β) ≡ ¬(¬α ∨ ¬β). α 1 1 0 0 β ¬α ¬β ¬α ∨ ¬β ¬(¬α ∨ ¬β) α ∧ β 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 12 Definibilità di connettivi: esempi (α → β) (α ∨ β) (α ∨ β) (α ∧ β) (α ∧ β) ¬α ⊥ (α ↔ β) ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ (¬α ∨ β) (¬α → β) ¬(¬α ∧ ¬β) ¬(¬α ∨ ¬β) (((α → ⊥) → ⊥) → (β → ⊥)) → ⊥ α→⊥ α ∧ ¬α (α → β) ∧ (β → α) Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 13 Precedenza operatori ♦ la massima precedenza a ¬, poi, nell’ordine, ai connettivi ∧,∨, → e infine ↔. La formula ¬α ∧ ¬β viene parentetizzata come ((¬α) ∧ (¬β)). La formula α ∧ β ∨ γ viene parentetizzata come ((α ∧ β) ∨ γ). La formula ¬α ∧ ¬β → γ ∧ δ ∧ viene parentetizzata come (((¬α) ∧ (¬β)) → (γ ∧ (δ ∧ ))). La formula ¬α ∧ (¬β → γ) ∧ δ ∧ viene parentetizzata come ((¬α) ∧ ((¬β) → γ) ∧ (δ ∧ )). Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 14 Leggi 1 1. Idempotenza: α∧α ≡ α α∨α ≡ α 2. Associatività: α ∧ (β ∧ γ) ≡ (α ∧ β) ∧ γ α ∨ (β ∨ γ) ≡ (α ∨ β) ∨ γ α ↔ (β ↔ γ) ≡ (α ↔ β) ↔ γ 3. Commutatività: α∧β ≡ β∧α α∨β ≡ β∨α α↔β ≡ β↔α Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 15 Leggi 2 1. Distributività: α ∧ (β ∨ γ) ≡ (α ∧ β) ∨ (α ∧ γ) α ∨ (β ∧ γ) ≡ (α ∨ β) ∧ (α ∨ γ) 2. Assorbimento: α ∧ (α ∨ β) ≡ α α ∨ (α ∧ β) ≡ α 3. Doppia negazione: ¬¬α ≡ α 4. Leggi di De Morgan: ¬(α ∧ β) ≡ ¬α ∨ ¬β ¬(α ∨ β) ≡ ¬α ∧ ¬β Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 16 Leggi 3 1. Terzo escluso: α ∨ ¬α ≡ > 2. Contrapposizione: α → β ≡ ¬β → ¬α 3. Contraddizione: α ∧ ¬α ≡ ⊥. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 17 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 è 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. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 18 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α. Esempi: Gli insiemi {¬, ∧}, {¬, ∨} , {nand} e {nor} sono completi. Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 19 Proprietà di rimpiazzamento Siano α[p], γ e δ formule proposizionali e sia IV una valutazione booleana. Se IV (γ) = IV (δ) allora IV (α[γ/p]) = IV (α[δ/p]). Si dimostra per induzione strutturale Se γ ≡ δ allora α[γ/p] ≡ α[δ/p]. Esempio Si consideri l’equivalenza tautologica (A → B) ≡ (¬A ∨ B). Sia α[p] = (p → (α ∨ β)). Si può facilmente verificare che ((A → B) → (α ∨ β)) ≡ ((¬A ∨ B) → (α ∨ β)). Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 20