Fondamenti teorici e programmazione

Documenti analoghi
Ragionamento formalei. Ragionamento formale

Ragionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica

Fondamenti teorici e programmazione

Logica proposizionale

Logica: materiale didattico

Richiami teorici ed esercizi di Logica

Esercizi sul Calcolo Proposizionale

INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.

Logica per la Programmazione

marina/did/mdis03/ marina/did/mdis03/ marina/did/mdis03/

METODI MATEMATICI PER L INFORMATICA

Un po di logica. Christian Ferrari. Laboratorio di matematica

NOZIONI DI LOGICA PROPOSIZIONI.

Cenni di logica matematica e di teoria degli insiemi Paola Rubbioni

BREVE CENNO DI LOGICA CLASSICA La logica può essere definita come la scienza che studia le condizioni in base alle quali un ragionamento risulta

02 - Logica delle dimostrazioni

Cenni di logica matematica e di teoria degli insiemi Paola Rubbioni

CALCOLO PROPOSIZIONALE: CENNI

Logica per la Programmazione

Cenni di logica matematica e di teoria degli insiemi. CORSI INTRODUTTIVI Dipartimento di Ingegneria di Perugia a.a. 2016/2017 Paola Rubbioni

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

Logica per la Programmazione

04 - Logica delle dimostrazioni

IL CALCOLO DEL PRIMO ORDINE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella

DIMOSTRAZIONI E TAUTOLOGIE, IPOTESI NON TAUTOLOGICHE. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

Cenni di logica e calcolo proposizionale

Logica per la Programmazione

Fondamenti teorici e programmazione

Logica per la Programmazione

NOZIONI DI LOGICA. Premessa

Cenni di Logica. Hynek Kovarik. Università di Brescia. Analisi Matematica 1

Esercizio 2. Spiegare perché è falsa la seguente affermazione: Se n è un numero negativo, allora anche n + 3 è negativo.

Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2016/17

Fondamenti di Informatica 2

Richiami di logica matematica

P : gli iscritti all università di Bari sono più di 1000

METODI MATEMATICI PER L INFORMATICA

Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2015/16

Introduzione alla logica proposizionale

Introduzione alla logica matematica

Elementi di logica. SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni.

LOGICA MATEMATICA PER INFORMATICA

Elementi di Algebra e Logica Determinare la tavola della verità di ciascuna delle seguenti forme proposizionali:

CALCOLO PROPOSIZIONALE

LOGICA PER LA PROGRAMMAZIONE a.a. 2016/17 Seconda esercitazione - 11/10/16 - Soluzioni Proposte

La logica (dal greco logos=ragione/parola) è la scienza del ragionamento. Nasce come branca della filosofia e dall'ottocento in poi diviene campo di

ISTITUTO TECNICO STATALE COMMERCIALE E PER GEOMETRI A. MARTINI Castelfranco Veneto (TV) Elementi di Logica

Introduzione alla logica

ELEMENTI DI LOGICA. Siano p e q le due proposizioni: p: 3 è un numero primo q: 20 è divisibile per 5 Enunciare le proposizioni p q, p q.

si vuole verificare: P5: pioverà

Logica proposizionale

Come si è cominciato a contare: numeri naturali, loro assiomatica (accenno).

Una Breve Introduzione alla Logica

Cenni di logica. Hynek Kovarik. Università di Brescia. Analisi Matematica A

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Prerequisiti Matematici

1 Richiami di logica matematica

Logica per la Programmazione

LOGICA PER LA PROGRAMMAZIONE a.a. 2016/17 Prima esercitazione 4/10/2016 Soluzioni Proposte

ELEMENTI DI LOGICA. Predicati: frasi sensate che contengono una (o più) variabili libere. Li indichiamo con P(x,y,...),...

LOGICA PER LA PROGRAMMAZIONE a.a. 2017/18 Prima esercitazione 28/9/2017 Soluzioni Proposte

Logica proposizionale

Logica di base. 6.1 Proposizioni

1 Richiami di logica matematica

Introduzione alla logica matematica. Logica matematica. Paolo Bison

La matematica non è un opinione, lo è oppure...?

LOGICA PER LA PROGRAMMAZIONE a.a. 2014/15 Seconda esercitazione 21/10/2014

Elementi di Logica Teoria degli insiemi

Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela

Complementi alle Dispense di Logica Matematica corso A e B

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

CALCOLO PROPOSIZIONALE. Corso di Logica per la Programmazione Andrea Corradini

Introduzione alla Matematica per le Scienze Sociali - parte I

DI CHE COSA SI OCCUPA LA LOGICA

Precedenza degli operatori

Materiale didattico aggiuntivo - Analisi Matematica I CENNI DI LOGICA MATEMATICA. 1. Proposizioni. Valori logici. Connettivi logici. Tavole di verita.

Esercizi di Logica Matematica (parte 2)

Maiuscole e minuscole

METODI MATEMATICI PER L INFORMATICA

Logica Proposizionale

Precorsi di matematica

detta tavola di verità, in cui nella prima colonna compaiono i valori di verità della

Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela

Logica per la Programmazione

Logica per la Programmazione

4 La Logica come base di ogni scienza. 5 Alla ricerca della forma logica. logica

Logica degli enunciati; Operazioni con le proposizioni; Proprietà delle operazioni logiche; Tautologie; Regole di deduzione; Logica dei predicati;

LOGICA MATEMATICA PER INFORMATICA

Lo studioso di logica si chiede se la conclusione segue correttamente dalla premesse fornite e se premesse sono buone per accettare la conclusione.

Sesto modulo: Logica Obiettivi 1. individuare dei "calcoli logici" che consentano di meccanizzare l attività deduttiva

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio

NOZIONI DI LOGICA. Premessa

Verifica di programmi

Transcript:

Fondamenti teorici e programmazione FTP(A) - modb Lezione 8 F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1

Ragionamento formale Comprendere le basi del ragionamento formale, utilizzato in matematica per dimostrare teoremi all interno di teorie, è fondamentale tra gli informatici. Come si può sapere quando un programma è fa esattamente cosa ci aspettiamo? Una pratica abbastanza comune è il testing, cioè l esecuzione del programma su alcuni input. Questo però non garantisce la certezza del programma, perchè tutti i possibili input sono infiniti. E quando il programma non calcola correttamente? Esercitarsi a ragionare in modo formale aiuta a definire i programmi che sono, appunto, delle specifiche formali. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 2

Ragionamento formale - continua I concetti che vengono introdotti in modo informale sono trattati formalemente in: logica proposizionale logica del primo ordine. In questo corso non c è spazio per studiare tali formalismi, ma tratteremo solo alcuni aspetti. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 3

Ragionamento formale - continua II teoremi in generale vengono espressi attraverso formule che sono espressioni che possono risultare vere (true) o false (false). Tali espressioni contengono connettivi logici tra cui (l and e l or e il not ma anche altri) e fatti semplici (detti anche proposizioni) Ad esempio il Teorema di Pitagora per i triangoli rettangoli, ha il seguente enunciato: Se (a, b) sono i cateti di un triangolo rettangolo e c è l ipotenusa allora a 2 + b 2 = c 2. Tutto ciò che si trova tra Se e allora è detta ipotesi, costituita da uno o più fatti che vengono assunti essere veri. Ciò che appare dopo allora è la tesi: ciò che bisogna dimostrare. Questa forma di enunciato è una implicazione. Se p allora q. Si può anche scrivere p q. Una volta dimostrato un teorema con un tipo di enunciato di questo genere, se ci troviamo in una situazione in cui l ipotesi è vera possiamo dedurre che anche la tesi è vera, applicando il teorema. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 4

Sostituzione Le formule possono essere istanziate, sostituendo una o più variabili che vi compaiono, con un valore dell insieme. L operazione di sostituzione in un asserzione E del simbolo di variabile con un valore, viene indicata con E[v/x] Ad esempio se E = x 4 2 x x 2 E [4/x]=4 4 2 4 4 2 E [5/x] = 5 4 2 5 5 2... Ad esempio se E = (R = R; Id A ) E [ /R]=( = ; Id A ) E [(R; S)/R]=( (R; S) = (R; S); IdA )... In generale se ho un espressione E, indichiamo con E[q/p] l espressione risultante dalla sostituzione di tutte le occorrenze di p in E con q. p e q possono essere anche due espressioni equivalenti oppure il nome di una variabile e un suo possibile valore, come sopra. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 5

Implicazione L implicazione si può esprimere in vari modi, nel linguaggio comune: Se A allora B A implica B A solo se B B se A Quando A, segue B B è condizione necessaria per A È però importante comprendere il significato dell implicazione: se A è vero allora deve essere vero anche B. se viceversa A è falso non sappiamo nulla su B se invece B è falso allora deve essere falso anche A F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 6

Significato dell Implicazione L implicazione è un operatore (connettivo) logico simile all and e all or il cui valore true o false dipende dal valore dei suoi argomenti. Analogamente all and e or il significato di è riassunto nella seguente tabellina. A B A B true true true true false false false true true false false true Esempio: Se piove la starda è bagnata, è un implicazione. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 7

Quantificatori: Quando non è ovvio quale siano i valori che una variabile può assumere è possibile esprimere esplicitamente tale insieme, utilizzando un quantificatore universale il, che si legge per ogni Dopo un quantificatore compare la variabile e il simbolo seguito dall insieme. Il significato è quello già discusso che la formula deve essere vera per tutti gli elementi dell insieme. Ad esempio, se A = {0, 2, 6, 10} la formula x A, x%2 = 0, asserisce che tutti gli elementi di A sono pari. Un quantificatore universale può anche non specificare l insieme in questo caso si riferisce all universo U. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 8

Quantificatori, In altri casi vogliamo invece esprimere fatti che riguardano solo alcuni elementi di un insieme. In questo caso si usa il quantificatore, che si legge esiste Il significato è che la formula di cui si sta trattando deve essere vera per almeno un elemento dell insieme. Ad esempio, se A = {0, 3, 6, 1} la formula x A, x modulo 2 = 0, asserisce che almeno un elemento di A è pari. Ovviamente se A = {9, 3, 7, 1} la formula x A, x modulo 2 = 0, che asserisce che almeno un elemento di A è pari, risulta falsa. Anche in questo caso, se l insieme non è specificato, ci si sta riferendo all universo U. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 9

Enunciati Se e solo se È un enunciato di equivalenza di due proposizioni H e C. Si può esprimere in vari modi: H C H C H se e solo se C H iff (sse) C H equivalente C Un simile teorema è costituito da due implicazioni: H C e C H La dimostrazioni consta conseguentemente di due parti: la dimostrazione che H C e quella che C H. Tutte le proprietà enunciate sugli insiemi come ad esempio la proprietà distributiva A (B C) = (A B) (A C), sono teoremi se e solo se. (Potete provare a dimostrarle per esercizio). F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 10

Dimostrazioni per assurdo Per dimostrare H C alle volte è conveniente dimostrare che: H!C false in altre parole si dimostra che assumere che quando H è vero, C è falso fa seguire logicamente qualcosa di notoriamente falso. Ricordiamo la tabella di, H C H C true true true true false false false true true false false true Dimostrando che H e!c portano ad un assurdo, dimostriamo che il secondo caso non può verificarsi e quindi l implicazione è vera. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 11

Contronominale Per dimostrare H C alle volte è conveniente dimostrare che!c!h che è logicamente equivalente. Vediamo un esempio per convincerci di questa equivalenza, sia: H =piove C =la strada è bagnata H C può essere tradotto in: Se piove allora la strada è bagnata!c!h può essere tradotto in la strada non è bagnata allora non piove Esercizio Provate a dimostrare la seguente proprietà sugli insiemi: A B = B B A F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 12

Controesempi Spesso i teoremi sono proprietà di cui dovrebbero godere tutti gli elementi di un dato insieme (infinito). Ovvero enunciati del tipo Tutti i numeri primi sono dispari. Se cercando di dimostrare il teorema ci viene il sospetto che sia falso, è sufficiente trovare un controesempio. Nel caso precedente 2 è il controesempio che dimostra che il teorema è falso. Questo modo di operare ci tornerà utile in diversi casi. Ad esempio per dimostrare che un programma non è corretto è sufficiente trovare un caso in cui il risultato calcolato non è il risultato atteso. F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 13