La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento...

58
La logica • Dare un significato preciso alle affermazioni matematiche • Introdurre al ragionamento logico • Applicazioni in Informatica: – Disegno di circuiti – Specifica di sistemi – Progettazione di software – Verifica di correttezza di programmi

Transcript of La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento...

Page 1: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

La logica

• Dare un significato preciso alle affermazioni matematiche

• Introdurre al ragionamento logico• Applicazioni in Informatica:

– Disegno di circuiti– Specifica di sistemi– Progettazione di software– Verifica di correttezza di programmi

Page 2: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

La logica

• La logica proposizionale

• La logica dei predicati– Quantificatori universali ed esistenziali

• Introduzione alle dimostrazioni

Page 3: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Proposizioni

• Proposizione: una sentenza dichiarativa cui è possibile assegnare, in modo non ambiguo, un valore di verità. – Può essere vera o falsa ma non

entrambe

• Variabili Proposizionali: p, q, r, s• Valori di verità: vero (T) o falso (F)

Page 4: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Proposizioni

• Esempi di proposizioni:– 1+1=2– Parigi è la capitale della Francia – Parigi è la capitale della Germania

• Non sono Proposizioni: – Che ora è?– x > 1– Carlo è alto

Page 5: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Proposizioni composte

• Nuove proposizioni formate da proposizioni esistenti usando operatori logici

• Chiamate anche: formule proposizionali o espressioni della logica delle proposizioni

• Operatori logici: (negazione), (congiunzione),

(disgiunzione), (implicazione), (equivalenza)

Page 6: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Negazione

•Se p è una proposizione, la negazione di p, denotata da p, è

“non è vero che p”

– “not p”

Page 7: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 1 (1.1)

歐亞書局 P. 3

Page 8: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Congiunzione e Disgiunzione

• Se p e q sono proposizioni, la congiunzione di p e q, denotata p q, è la proposizione

“p and q” (“p e q” )• Se p e q sono proposizioni, la

disgiunzione di p e q, denotata p q, è la proposizione

“p or q” (“p o q” )

Page 9: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 2 (1.1)

歐亞書局 P. 4

Page 10: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 3 (1.1)

歐亞書局 P. 4

Page 11: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Disgiunzione esclusiva

• Se p e q sono proposizioni, la disgiunzione esclusiva di p e q, denotata p q, è la proposizione che è vera esattamente quando una tra p e q è vera (ma non entrambe)

Page 12: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 4 (1.1)

歐亞書局 P. 6

Page 13: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Implicazione(conditional statement)

• Se p e q sono proposizioni, la implicazione p q è la proposizione

“ se p allora q”

– p: ipotesi (o antecedente o premessa)

– q: conclusione (o conseguenza)

Page 14: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Se p allora q

• Molti modi per esprimere l’implicazione:

q se p, q quando p, q ogni qualvolta che p,

p è (condizione) sufficiente per q,

q è (condizione) necessaria per p,

p solo se q, q a meno che “not p”

…..

Page 15: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 5 (1.1)

歐亞書局 P. 6

Page 16: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Implicazione Inversa, Contraria, Contronominale

• p q• Inversa: q p (Converse)• Contronominale: q p

(Contrapositive)• Contraria: p q (Inverse)

Page 17: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Inversa, Contraria, Contronominale

• Due proposizioni composte sono equivalenti se hanno sempre lo stesso valore di verità

• Ogni implicazione p q è equivalente al proprio contronominale q p – L’inversa q p è equivalente alla

contraria p q (ma non sono equivalenti a p q )

Page 18: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Doppia Implicazione(biconditional statement)

• Se p e q sono proposizioni, la doppia implicazione p q è la proposizione

“p se e solo se q.”– “p è condizione necessaria e sufficiente

per q”– “p iff q”

Page 19: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 6 (1.1)

歐亞書局 P. 9

Page 20: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Uso implicito di doppia implicazione

• La doppia implicazione non è sempre esplicita nel linguaggio naturale

• “Se mangi tutta la minestra, allora puoi avere il dolce.” Con il significato:

• “Puoi avere il dolce se e solo se mangi tutta la minestra.”

• Doppia implicazone implicita nelle definizioni:

• “n è pari se è divisibile per 2”• ma è implicita l’implicazione inversa

Page 21: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Tavoledi verità per le proposizioni composte

TABLE 7 (1.1)

歐亞書局 P. 10

Page 22: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Precedenza degli operatori logici

• La negazione è applicata prima degli altri operatori

• La congiunzione ha precedenza sulla disgiunzione

• Implicazione e doppia implicazione hanno precedenza più bassa

• Le parentesi sono usate quando sono necessarie

Page 23: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 8 (1.1)

歐亞書局 P. 11

Page 24: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Tradurre frasi del linguaggio naturale

Page 25: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Specifiche di sistema

• Controllo di non ambiguità• Verifica della consistenza

– Quando il software del sistema è in aggiornamento, gli utenti non possono accedere al file system.

– Gli utenti possono salvare nuovi file se possono accedere al file system.

– Se gli utenti non possono salvare nuovi file, allora il software del sistema non è in aggiornamento.

Page 26: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Tautologie e contraddizioni

• Tautologia: una proposizione composta che è sempre VERA

• Equivalente a T• p p

• Contraddizione: una proposizione composta che è sempre FALSA

•Equivalente a F•p p

Page 27: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 1 (1.2)

歐亞書局 P. 22

Page 28: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Equivalenza logica

• Proposizioni composte che hanno lo stesso valore di verità in ogni possibile caso

• p e q sono logicamente equivalenti if p q è una tautologia – denoted by p q or p q

Page 29: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Equivalenza logica - Esempi

• Leggi di De Morgan: (p q) p q(p q) p q

• Distributività:p (p r) (p q) (p r)

• Proprietà dell’implicazione:p q p q

Page 30: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 3 (1.2)

歐亞書局 P. 22

Page 31: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 4 (1.2)

歐亞書局 P. 23

pq

Page 32: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 5 (1.2)

歐亞書局 P. 23

Page 33: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 6 (1.2)

歐亞書局 P. 24

Page 34: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 7 (1.2)

歐亞書局 P. 25

Page 35: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 8 (1.2)

歐亞書局 P. 25

Page 36: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Construire Nuove Equivalenze Logiche

• Come mostrare equivalenze logiche:

– Usare una tavola di verità

– Usare equivalenze logiche già note

Page 37: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Dimostrazioni

• Una dimostrazione è una valida argomentazione che stabilisce la verità di una affermazione matematica– Argumentazione: una sequenza di

affermazioni che portano ad una conclusione

– Valida: la conclusione deve seguire dalle affermazioni precedenti (premesse)

• Regole di Inferenza

Page 38: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Argomentazioni valide nella Logica Proposizionale

– “Se hai una password corrente, allora puoi entrare nella rete”

– “Tu hai una password corrente”– Quindi, “Puoi entrare nella rete”

• Regola di Inferenza (Modus ponens) p q p

______

:q

Page 39: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 1 (1.5)

歐亞書局 P. 66

Page 40: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Un esempio

– “Oggi non c’è il sole”– “Andiamo al mare solo se c’è il sole”– “ Quando non andiamo al mare,

facciamo una passeggiata”– “Se facciamo una passeggiata, torniamo

a casa prima del tramonto”

• Conclusione: “Oggi torniamo a casa prima del tramonto”

Page 41: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Attenzione!

• ((p q) q) p non è una tautologia

• “Se fai tutti gli esercizi imparerai bene la materia.

• Tu hai imparato bene la materia• Quindi, tu hai svolto tutti gli esercizi.” CONCLUSIONE ERRATA

• ((p q) p) q non è una tautologia

Page 42: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.
Page 43: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Logica dei Predicati

• Predicato: una proprietà che il soggetto della frase può soddisfare– Ex: x>3

• x: variabile• >3: predicato• P(x): x>3

– FUNZIONE PROPOIZIONALE

– P(x1,x2, …, xn): predicato con n argomenti

Page 44: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Quantificatori

• Quantificazione universale: un predicato è vero per ogni elemento

• Quantificazione esistenziale: c’è uno o più elementi per cui un predicato è vero

Page 45: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Quantificatore universale

• Dominio (o Universo): elementi cui si fa rierimento nelle affermazioni

• La quantificazione universale di P(x) è: “P(x) vale per tutti i valori di x nel dominio– denotato da x P(x)

• Contresempio: un elemento per cui P(x) è falso

– Quandi gli elementi del dominio possono essere listati è equivalente a:

P(x1) P(x2) … P(xn)

Page 46: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Quantificatore esistenziale

• La quantificazione esistenziale di P(x) è: “esiste un valore di x nel dominio tale che P(x) vale” per tutti i valori di x nelThe existential – Denotato da x P(x)– Quandi gli elementi del dominio possono

essere listati è equivalente a: P(x1) P(x2) … P(xn)

Page 47: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 1 (1.3)

歐亞書局 P. 34

Page 48: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Altri quantificatori

!x P(x) or 1x P(x)– Esiste un unico valore di x tale che P(x)

è vero

• Quantificatori con domini ristretti: x<0 (x2>0)

• Condizionale: x(x<0 x2>0)

z>0 (z2=2)• Congiunzione: z(z>0 z2=2)

Page 49: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Precedenza di quantificatori

e hanno precedenza maggiore di tutti gli operatori logici

– Ex: x P(x) Q(x)• (x P(x)) Q(x)

Page 50: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Equivalenze logiche che coinvolgono quantificatori

• Espressioni logiche che coinvolgono predicati e quantificatori sono logicamente equivalenti se e solo se essi hanno lo stesso valore di verità

• E.g. x (P(x) Q(x)) and x P(x) x Q(x)

Page 51: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Negare le espressioni quantificate

x P(x) x P(x)– Negazione di “Tutti gli studenti della

classe frequentano il corso di Programmazione”:

– “C’è uno studente della classe che non frequenta il corso di Programmazione”

x Q(x) x Q(x)

Page 52: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 2 (1.3)

歐亞書局 P. 41

Page 53: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Tradurre il linguaggio naturale in espressioni logiche

• “Ogni studente della classe ha studiato Matematica Discreta” x (x ha studiato M.D.)

• “Alcuni studenti hanno visitato il Messico”: x (x ha visitato il Messico)

• “Tutti gli studenti hanno visitato il Messico o il Canada” : x ((x ha visitato il Messico) (x ha visitato il Canada))

Page 54: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Quantificatori annidati

• Due quantificatori sono annidati se uno è nello scope dell’altro x y (x+y=0) x y ((x>0) (y<0) (xy<0))

• L’ordine dei quantificatori è importante a meno che non siano tutti universali o tutti esistenziali

Page 55: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 1 (1.4)

歐亞書局 P. 53

Page 56: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Regole di Inferenza per espressioni quantificate

• Instanziazione universale x P(x), P(c)

• Generalizzazione universale– P(c) per un generico c, x P(x)

• Instanziazione esistenziale x P(x), P(c) per un c

• Generalizzazione esistenziale– P(c) per un c, x P(x)

Page 57: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

TABLE 2 (1.5)

歐亞書局 P. 70

Page 58: La logica Dare un significato preciso alle affermazioni matematiche Introdurre al ragionamento logico Applicazioni in Informatica: –Disegno di circuiti.

Generalizzazioni delle regole di inferenza

• Combinare regole di infrenza per proposizioni ed espressioni quantificate– Universal modus ponens

x (P(x) Q(x))P(a), dove a è un particolare elemento nel dominio

Q(a)

– Universal modus tollensx (P(x) Q(x))

Q(a) , dove a è un particolare elemento nel dominio P(a)