Logica matematica Introduzione alla logica matematica formalizzazione dei meccanismi di ragionamento la logica studia proposizioni una proposizione può essere vera o falsa logica a due valori di verità Silvana Badaloni Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.1/29 Formalizzazione Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.2/29 Logica proposizionale sintassi in che modo scrivere le proposizioni semantica significato delle proposizioni P1: Se fa caldo ed è umido allora pioverà P2: Se è umido ed è estate allora fa caldo P3: adesso è umido P4: adesso è estate si vuole verificare: Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.3/29 P5: pioverà Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.4/29 Logica proposizionale Logica proposizionale Ad ogni proposizione elementare viene associata una variabile proposizionale La rappresentazione per l’esempio è A = fa caldo F1: A ∧ B → D B = è umido F2: B ∧ C → A C = è estate F3: B D = pioverà F4: C si vuole dimostrare che da F1-F4 segue logicamente: F5: D ∧ rappresenta la congiunzione (and) → rappresenta la implicazione logica Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.5/29 Sintassi Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.6/29 Connettivi logici La logica proposizionale tratta formule. Una formula è composta da: formule atomiche o atomi (A, B, C, ...) connettivi logici parentesi ( ) ¬ not negazione ∨ or disgiunzione ∧ and congiunzione → if then implicazione ↔ if and only if bi-implicazione Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.7/29 Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.8/29 Formule ben formate Priorità dei connettivi Una formula è ben formata (FBF) se e solo se essa è ottenibile applicando le seguenti regole: 1. un atomo è una FBF 2. se F è una FBF, allora (¬F ) è una FBF 3. se F e G sono FBF, allora lo sono anche (F ∨ G), (F ∧ G), (F → G) e (F ↔ G) Stabilendo un ordinamento tra i connettivi è possibile eliminare alcune parentesi. L’ordine adottato è il seguente: 1. ¬ 2. ∧, ∨ 3. →, ↔ Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.9/29 Semantica Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.10/29 Valore di verità di una formula la semantica della logica proposizionale richiede l’introduzione dei valori di verità B = {T, F} dare una interpretazione vuol dire trovare una funzione V : F → {T, F} essendo F l’insieme delle formule ben formate FBF del Calcolo Proposizionale. Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.11/29 Si può calcolare il valore di verità di una espressione del Calcolo Proposizionale a partire dai valore di verità delle formule atomiche che la compongono (interpretazioni) e dalle tabelle di verità dei connettivi logici. Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.12/29 Tabelle di verità dei connettivi logici A T T F F B (¬A) (A ∧ B) (A ∨ B) (A → B) (A ↔ B) T F T T T T F F F T F F T T F T T F F T F F T T Tautologie ((P ∧ (P → Q)) → Q) Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.13/29 Contraddizioni Q T T T T T T F F F T F T T F T F F T F T Tautologie o formule valide. Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.14/29 Ogni formula è finita e contiene un numero finito di formule atomiche: quindi è sempre possibile determinare se essa è valida, inconsistente o ne’ l’uno ne’ l’altro. La logica proposizionale è decidibile. ((P → Q) ∧ P ) ∧ (¬Q) (P → Q) P ∧ (P → Q) ((P ∧ (P → Q)) → Q) P Decidibilità della logica proposizionale formule che sono false in tutte le interpretazioni. P T T F F Alcune formule sono vere in tutte le interpretazioni. Q (P → Q) (¬Q) ((P → Q) ∧ P ) ∧ (¬Q) T T F F F F T F T T F F F T T F Contraddizioni o formule inconsistenti. Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.15/29 Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.16/29 Equivalenza Logica Relazioni di equivalenza logica - I Due formule F e G sono equivalenti, e si indica con F ≡ G, se e solo se esse hanno lo stesso valore di verità in tutte le interpretazioni. Si può dimostrare che F ≡ G se e solo se la formula (F ↔ G) è una tautologia. F ≡ F identità ¬(¬F ) ≡ F doppia negazione (G ∧ G) ≡ G idempotenza (G ∨ G) ≡ G idempotenza (G∧T) ≡ G legge dei neutri (G∧F) ≡ F legge dei neutri (G∨T) ≡ T legge dei neutri (G∨F) ≡ G legge dei neutri (G ∧ ¬G) ≡ F esclusione Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.17/29 Relazioni di equivalenza logica - II (G ∨ ¬G) ≡ T ((F ∧ G) ∧ H) ≡ ((F ∨ G) ∨ H) Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.18/29 Relazioni di equivalenza logica - III complementarietà (F ∨ (F ∧ G)) ≡ F assorbimento ((F ∧ (G ∧ H) associatività (F ∧ (F ∨ G)) ≡ F assorbimento ≡ ((F ∨ (G ∨ H) associatività (F ∨ (¬F ∧ G)) ≡ (F ∨ G) assorbimento (F ∧ G) ≡ (G ∧ F ) commutatività (F ∧ (¬F ∨ G)) ≡ (F ∧ G) assorbimento (F ∨ G) ≡ (G ∨ F ) commutatività (F → G) ≡ (¬F ∨ G) (F ∧ (G ∨ H)) ≡ ((F ∧ G) ∨ (F ∧ H)) distributività (F → (G → H)) ≡ (G → (F → H)) proprietà implicazione (F ∨ (G ∧ H)) ≡ ((F ∨ G) ∧ (F ∨ H)) distributività (F → (G → H)) ≡ ((F ∧ G) → H) proprietà implicazione ¬(F ∨ G) ≡ (¬F ∧ ¬G) legge di De Morgan (F ↔ G) ≡ ((F → G) ∧ (G → F )) ¬(F ∧ G) ≡ (¬F ∨ ¬G) legge di De Morgan Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.19/29 eliminazione implicazione doppia implicazione Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.20/29 Esempio - I Esempio - IIa verificare che le seguenti formule sono equivalenti: (a) (P ∧ Q) → ¬ (P ∧ R) (a) ≡ ≡ ≡ ≡ Verificare se la seguente formula è una tautologia: (b) ¬ (P ∧ Q ∧ R) (P ∧ Q) → ¬(P ∧ R) ¬(P ∧ Q) ∨ ¬(P ∧ R) ¬(P ∧ Q ∧ P ∧ R) ¬(P ∧ P ∧ Q ∧ R) ¬(P ∧ Q ∧ R) elimin.impl. DeMorgan commutativa idempotenza (b) (a) (A → B) → ((A → ¬B) → ¬A) tabella di verità A B (A → B) (A → ¬B) ((A → ¬B) → ¬A) T T T F T T T F F T F T F T T T T T F F T T T T Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.21/29 Esempio - IIb Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.22/29 Do it yourself - I relazione di equivalenza ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ (a) (A → B) → ((A → ¬B) → ¬A) ≡ ((A → B) ∧ ((A → ¬B)) → ¬A) ((¬A ∨ B) ∧ (¬A ∨ ¬B)) → ¬A ¬((¬A ∨ B) ∧ (¬A ∨ ¬B)) ∨ ¬A ¬(¬A ∨ (B ∧ ¬B)) ∨ ¬A ¬(¬A∨F) ∨ ¬A ¬(¬A) ∨ ¬A A ∨ ¬A T. propr. impl. elim. impl. elim. impl. distributiva neutri neutri doppia neg. compl. Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.23/29 Si dica se la seguente formula è una tautologia: ¬P ∧ (P ∨ Q) ∧ (¬ (P ∨ Q) ∨ P ) ∧ ¬ (P ∨ Q) Si dica se le seguenti espressioni del calcolo proposizionale sono o non sono equivalenti: (a) (P ∧ Q) → R (b) P → ¬ (Q → R) Si dica se la seguente formula del calcolo proposizionale ((R → T ) ∧ (T → R) ∧ T ) → R è una contraddizione. Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.24/29 Connettivi logici in Java Connettivi logici in Java applicabili ad operandi di tipo boolean operatore unario ! not operatori binari & and ˆ xor (or esclusivo) | or tabelle di verità A e B espressioni di tipo boolean A B !A A&B A|B AˆB true true false true true false true false false false true true false true true false true true false false true false false false && and condizionale || or condizionale Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.25/29 Esempi di espressioni Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.26/29 Connettivi condizionali k>=0 & k<n (ERRATO 0<=k<n) k<0 | k>=n !(k>=0 & k<n) !(x>0 | y<x)&(x<=0) Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.27/29 il secondo operando viene valutato se e solo se il primo è true se l’operatore è && il primo è false se l’operatore è || esempi k>=0 && k<n k<0 || k>=n a!=0 && b/a>100 (ERRATO a!=0 & b/a>100) a==0 & (c=b)>100 (ERRATO a==0 && (c=b)>100) Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.28/29 Do it yourself - II esprimere il connettivo xor in termini degli altri connettivi Introduzione alla logica matematica, Paolo Bison, A.A. 2004-05, 2004-10-26 – p.29/29