Alcune nozioni di base di Logica Matematica Ad uso del corsi di Programmazione I e II Nicola Galesi Dipartimento di Informatica Sapienza Universitá Roma November 1, 2007 Questa é una breve raccolta di alcune nozioni preliminari, come proposizione, predicato, connettivo, tavole di verità ecc., necessarie alla comprensione di alcuni concetti e all utilizzo di alcuni strumenti esposti nel corso di Programmazione I. Per l approfondimento necessario dei concetti e delle nozioni qui esposte, gli studenti sono rimandati al corso di Logica Matematica. 1 Proposizioni e Predicati Una proposizione è una affermazione per la quale, definito un contesto, possiamo stabilire se sia vera o falsa. Ad esempio 2 é un numero pari è una proposizione vera, mentre gli asini volano é una proposizione falsa (almeno nel mondo reale). Un predicato su n variabili libere è una relazione tra le n variabili. Ad esempio x é un numero pari è un predicato su una sola variabile, x. Il dominio di una variabile è l insieme dei valori che tale variabile può assumere. Di un predicato non possiamo dire se sia vero o falso. Quando però tutte le variabili di un predicato vengono istanziate con un valore del loro dominio, allora il predicato diventa una proposizione ed ha senso dire se sia vera o falsa. Ad esempio per il predicato x è un numero pari non possiamo dire se sia vero o falso. Se il dominio di x è l insieme dei numeri naturali (interi maggiori o uguali di 0), ed istanziamo x con 4, il nostro prediato diventa la proposizione 4 è un numero pari che é vero. D altra parte se istanziamo x con 5 il predicato x è un numero pari diventa la proposizione 5 è un numero pari che invece è chiaramente falsa. Altri esempi di predicati sono: x y = z, un predicato sulle variabili x,y e z; 3 y = z, un predicato sulle variabili y e z. I valori di verità vero e falso, che normalmente si denotano con 1 e 0, sono detti anche valori booleani (da George Boole, un matematico vissuto alla fine dell 1800). Quando il dominio di una variabile sono i valori di verità, la variabile si dice booleana. È consuetudine, anche se non sempre rispettata, usare le lettere a, b, c,... per indicare variabili booleane, le lettere A, B, C... per denotare 1
proposizioni, ed invece usare le letere x, y, z,... per indicare variabili numeriche, cioé il cui dominio è un insieme di numeri (reali, naturali, interi, razionali, ecc.) 1.1 Connettivi Logici e Tavole di Verità Così come siamo abituati a definire operazioni tra numeri (pr esempio la somma o il prodotto), è possibile definire operazioni tra valori booleani. Gli operatori booleani sono detti connettivi logici e, visto che i valori di verià sono sono solo due, la loro definizione viene data in forma estensiva attraverso il formalismo delle tavole di verità. I connettivi logici sono: la congiunzione, indicata con il simobolo ; la disgiunzione, indicata con il simbolo ; la negazione, indicata con il simbolo. È possibile far vedere (nel corso di Logica) che questi tre connettivi sono sufficienti per poter definire qualunque altro operatore booleano. Formano cioé ciòo che viene chiamata una base completa. Comunque altri due operatori hanno un ruolo particolarmente importante e verranno quindi menzionati a parte: l implicazione, indicata dal segno ; l equivalenza indicata dal segno. A B A A B A B A B A B 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 La congiunzione A B di due proposizioni A e B è vera solo quando entrambi A e B assumono valore vero, mentre è falsa in ogni altro caso. La disgiunzione A B di due proposizioni A e B invece è falsa solo quando entrambi A e B sono falsi, ed è vera in ogni altro caso. L implicazione A B di due proposizioni va intuita come segue: se è vera A allora deve necessariamente essere vera B. Per tanto, l unico caso in cui A B sarà falsa è quando A è vera e B è falsa (si noti infatti che se A è falsa l implicazione A B è sempre vera indipendentemente dal valore di B). Infine l equivalenza A B deve essere vera nel caso in A e B assumono gli stessi valori. Come detto prima ogni operatore può essere definito a partire dai soli, e. Mostriamo infatti che per esempio A B si può ottenere come A B. Per verificarlo usiamo le tavole di verità, mostrando come le colonne corrispondenti alle due proposizioni siano uguali. Ciò vuol dire che dato un valore per A ed uno per B, A B e A B hanno sempre lo stesso valore. Contemporanemente mostriamo che A B può scriversi come (A B) (B A). 2
A B A A B A B B A (A B) (B A) A B 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 Una tautologia è una proposizione che risulta essere sempre vera indipentementemente dai valori che assumono le proposizioni che la compongono. La sua tavola di verità sar à quindi formata da una colonna di tutti 1. Diremo che due proposzioni A e B sono equivalenti (e scriveremo A B), se hanno la stessa tavola di verità o, in altre parole, se A B è una tautologia. Tre le equivalenza logiche più importanti vanno menzionate le seguenti proprietà: Equivalenze Logiche Commutatività del : (A B) (B A); Commutatività del : (A B) (B A); Associatività del : A (B C) (A B) C; Associatività del : A (B C) (A B) C; Idempotenza : (A A) A; Idempotenza : (A A) A; Elemento neutro : (A 1) A; Elemento neutro : (A 0) A; Elemento nullo : (A 0) 0; Elemento nullo : (A 1) 1; Distributività del rispetto al : A (B C) (A B) (A C); Distributività del rispetto al : A (B C) (A B) (A C); Assorbimento: A (B A) A; Assorbimento: A (B A) A; Leggi Negazione: 0 1; 1 0; Doppia negazione: ( A) A; Terzo Escluso: A A 1; Leggi di De Morgan: (A B) A B; Leggi di De Morgan: (A B) A B Definizione del : A B A B; 3
2 Predicati e Quantificatori Per costruire predicati si possono usare variabili numeriche x, y, z,..., operatori tra numeri e operatori relazionali. Gli operatori numerici sono: la somma +, il prodotto, la divisione /, la divisione intera div, il resto della divsione intera mod. Tra gli operatori relazionali useremo: <,, >,, =,. Si faccia attenzione al fatto che un espressione del tipo x + 7 non è un predicato. Se infatti sostituiamo x per esempio con 3, otteniamo 3 + 7 che non è una proposizione in quanto non valutabile vera o falsa. Mentre l espressione x + 7 4, è invece un predicato. Infatti sostituendo x con 3 si ottiene 3 + 7 4 che è un espresssione valutabile vera o falsa e quindi una proposizione. Immaginiamo di voler scrivere una predicato P rimo(n) che esprima che un n è un numero primo. Ricordiamo che un numero n è primo se è divisibile solo per 1 e per se stesso. La proprietà che x è divisibile per y si può esprimere con il predicato x mod y = 0. Visto che un numero non può essere divisibile per un numero più grande, allora perchè n sia primo deve essere che n mod 2 0, e che n mod 3 0 ecc. fino a n mod (n 1) 0, ovvero che (n mod 2 0) (n mod 3 0) (n mod (n 1) 0) Poiché n è una variabile libera, non possiamo sapere di quante congiunzioni deve essere formato il predicato P rimo(n). Per scrivere un predicato di questo tipo si userà un quantificatore universale. Usando questo quantificatore il predicato P rimo(n) può essere scritto come segue: i : 2 i n : n mod i 0 La sintassi usuale del quantificatore universale è la seguente: i : D(i) : P (i) La i viene detta variabile legata al quantificatore, mentre P (i) è un predicato che esprime quali valori la variabile i deve assumere, ovvero il dominio di i. Il predicato i : D(i) : P (i) sarà vero se per ogni valore di i che verifica P (i), si verifica D(i). Se invece di una congiunzione abbamo una disgiunzione di un numero indefinito di espressioni, allora useremo un quantificatore esistenziale, la cui sintassi è analoga a quella del. i : P (i) : D(i) Questa espressione è vera se per almeno un i che verifica P (i) si verifica D(i). Ad esempio un numero è composto se non è primo, ovvero se si verifica la seguente proprietà: i : 1 < i < n : n mod i = 0. Le leggi di De Morgan espresse prima per le proposizioni valgono anche per i quantificatori: i : P (i) : D(i) i : P (i) : D(i); i : P (i) : D(i) i : P (i) : D(i) 4
2.1 Altri quantificatori non booleani Esistono altri quanficatori non booleani che si usano per abbreviare espressioni aritmetiche. Se E(i) è un espressione aritmetica con variabile libera i, allora l espressione n i=1 E(i) abbrieva la somma E(1) + E(2) +... + E(n). è detto simbolo di sommatoria. A modo di esempio si consideri la somma dei quadrati dei primi n numeri: 1 + 4 + 9 + 6 + 25 + + n 2. Questa può essere espressa come n i=1 Analogamente l espressione n i=1 E(i), abbrevia l espressione E(1) E(2)... E(n) e è detto simbolo di produttoria. A modo di esempio si consideri il prodotto dei primi n numeri, 1 2 3 4 n 1 Usando il simbolo di produttoria questo prodotto può essere scritto come 3 Esercizi i 2 n i i=1 Problema1. Usando le tavole di verità mostrare che le equivalenza logiche su definite sono vere. Problema 2 Usando una catena di equivalenze logiche mostrare le seguenti due equivalenze: 1. A A 0; 2. A B B A. Problema 3 Siano 0,0 e 1 rispettivamente i valori dati alle variabili a b e c. Valutare le seguenti espressioni booleane: 1. c a b; 2. a b c; 3. (a b) c; Problema 4 Semplificare le seguenti proposizioni: 1. P (Q P ); 2. (P Q) Q; 3. (P Q) ((P R) (P Q)); 1 Anche noto come il fattoriale di n, n!. 5
4. (((P Q) R) P ). Problema 5 Semplificare i seguenti predicati: 1. (x è pari (x > 0)) (x è dispari (x > 0)) x 0; 2. ( fine (x = 0)) (x = 2) (x = 0) (x = 2); Problema 6 Siano Q(x) e R(x) due predicati che esprimono rispettivamente le seguenti proprietà: x è un numero razionale e x è un numero reale. Scrivere i predicati che esprimono le seguenti proprietà: 1. Ogni numero razionale è un numero reale; 2. Alcuni reali sono razionali; 3. Ci sono dei reali che non sono razionali Problema 7 Formalizzare come predicati le seguenti proprietà: 1. Esiste un intero pari che è multiplo di 13; 2. Tra due reali ne esiste sempre un terzo compreso tra i due; 3. L ultima cifra di un intero pari è pari; 4. Per ogni intero positivo esiste la sua radice quadrata. 6