Verifica dei programmi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Verifica dei programmi"

Transcript

1 Verifica dei programmi Consiste nella specifica e nella dimostrazione delle proprietà dei programmi. Per specificare le proprietà utilizzeremo la logica del I ordine. Per dimostrare che le proprietà specificate sono soddisfatte dal programma in questione introdurremo le principali tecniche di verifica. Successivamente introdurremo delle strategie per applicarle. Una specifica è una descrizione precisa delle proprietà che un programma dovrebbe avere. Faremo vedere come inserire tali specifiche nel programma (annotazioni di programma). 1

2 Verifica dei programmi Concentreremo la nostra attenzione su: Proprietà di correttezza parziale (o di safety), che asseriscono che certi stati, tipicamente stati di errore, non possono mai occorrere durante l esecuzione del programma. Il metodo di dimostrazione usato è quello delle asserzioni induttive. Proprietà di correttezza totale (di progresso), che asseriscono che durante l esecuzione del programma certi stati vengono raggiunti. In generale una dimostrazione di correttezza totale viene così suddivisa: Dimostrazione di correttezza parziale Terminazione (metodo di dimostrazione: funzione di ranking) 2

3 Metodo fondazionale delle asserzioni induttive È un metodo basato sull induzione matematica. Per dimostrare che ogni stato della computazione soddisfa una certa formula ϕ della logica del I ordine: si dimostra come caso base che ϕ vale all inizio dell esecuzione, si assume per ipotesi induttiva che ϕ vale correntemente e si dimostra come passo induttivo che ϕ vale dopo un altro passo del programma. L applicazione del metodo può essere semplice. Tuttavia è possibile incontrare qualche difficoltà nella scoperta di annotazioni aggiuntive necessarie per l induzione. 3

4 Metodo fondazionale della funzione di ranking Consiste nell associare ad ogni loop e funzione ricorsiva una funzione (funzione di ranking) che mappa le variabili del programma in un dominio ben fondato, Quindi si dimostra che, durante la computazione del programma, il valore della funzione di ranking si riduce. Poichè la relazione è ben fondata, i loop e le ricorsioni devono fermarsi. 4

5 Correttezza parziale e terminazione per programmi flowchart e while Sia B una base per la logica predicativa, I una interpretazione di questa base e Σ il corrispondente insieme degli stati. Sia S un programma flowchart di L B 1 oppure un programma while di L B 2, e sia M I(S) il significato del programma. Siano inoltre p e q due formule di WFF B chiamate rispettivamente precondizione e postcondizione. Il programma viene detto: parzialmente corretto rispetto a p e q nell interpretazione I, se per tutti gli stati σ Σ: if I(p)(σ) = true and M I (S)(σ) is defined then I(q)(M I (S)(σ)) = true terminare rispetto alla formula p nell interpretazione I, se per 5

6 tutti gli stati σ Σ: if I(p)(σ) = true then M I (S)(σ) is defined essere totalmente corretto rispetto alle formule p e q nell interpretazione I, se per tutti gli stati σ Σ: if I(p)(σ) = true then M I (S)(σ) is defined and I(q)(M I (S)(σ)) = true 6

7 Weakest preconditions and strongest postconditions Siano dati B, I, Σ, S e p. Le precondizioni liberali più deboli del programma S e della formula q sono tutte le formule p WFF B tali che I(p)(σ) = true se e solo se M I (S)(σ) è indefinito oppure M I (S)(σ) è definito e I(q)(M I (S)(σ)) = true Le precondizioni più deboli del programma S e della formula q sono tutte le formule p WFF B tali che I(p)(σ) = true se e solo se M I (S)(σ) è definito e I(q)(M I (S)(σ)) = true Le postcondizioni più forti della formula p e del programma S sono tutte le formule q WFF B tali che I(q)(σ) = true se e solo se esiste uno stato σ Σ per cui I(p)(σ ) = true e M I (S)(σ ) = σ 7

8 Weakest preconditions and strongest postconditions (ctnd.1) Teorema1 Siano dati B, I, Σ, S e q. Sia p WFF B la precondizione liberale più debole di S e q. Allora a.s è parzialmente corretto rispetto a p e q b.per una qualunque formula r WFF B, tale che S è parzialmente corretto rispetto ad r e q, si ha che, per tutti gli stati σ Σ, I(r)(σ) I(p)(σ) Dim: p è la precondizione liberale più debole di S e q. Dunque per ogni σ Σ: I(p)(σ) M I (S)(σ) (M I (S)(σ) I(q)(M I (S)(σ))) 8

9 a.e vero che S è parzialmente corretto rispetto a p e a q? Diciamo che S è parzialmente corretto rispetto a p e a q se (I(p)(σ) M I (S)(σ) ) I(q)(M I (S)(σ)) questo è banalmente vero. b.sia r WFF B tale che S è parzialmente corretto rispetto a r e a q. Allora per ogni σ Σ (I(r)(σ) M I (S)(σ) ) I(q)(M I (S)(σ)) Sia I(r)(σ) = true, allora o M I (S)(σ), oppure M I (S)(σ), quindi anche I(q)(M I (S)(σ)) quindi I(r)(σ) I(p)(σ) 9

10 Weakest preconditions and strongest postconditions (ctnd.2) Teorema2 Siano dati B, I, Σ, S e q. Sia p WFF B la precondizione più debole di S e q. Allora a.s è totalmente corretto rispetto a p e q b.per una qualunque formula r WFF B, tale che S è totalmente corretto rispetto ad r e q, si ha che, per tutti gli stati σ Σ, I(r)(σ) I(p)(σ) Dim: p è la precondizione più debole del programma S e di q, dunque, per ogni σ Σ 10

11 I(p)(σ) M I (S)(σ) I(q)(M I (S)(σ)) a.e vero che S è totalmente corretto rispetto a p e a q? Diciamo che S è totalmente corretto rispetto a p e a q se I(p)(σ) (M I (S)(σ) I(q)(M I (S)(σ))) questo è banalmente vero. b.sia r WFF B tale che S è totalmente corretto rispetto ad r e a q. Allora per ogni σ Σ ma allora I(r)(σ) (M I (S)(σ) I(q)(M I (S)(σ))) I(r)(σ) (M I (S)(σ) I(q)(M I (S)(σ))) I(p)(σ) 11

12 Weakest preconditions and strongest postconditions (ctnd.3) Teorema3 Siano dati B, I, Σ, S e q. Sia q WFF B la postcondizione più forte di S e p. Allora a.s è parzialmente corretto rispetto a p e q b.per una qualunque formula r WFF B, tale che S è parzialmente corretto rispetto ad p ed r, si ha che, per tutti gli stati σ Σ, I(q)(σ) I(r)(σ) Dim: q è la post condizione più forte di S e p. I(q)(σ) σ (I(p)(σ ) M I (S)(σ ) = σ) 12

13 a.e vero che S è parzialmente corretto rispetto a p e a q? Diciamo che S è parzialmente corretto rispetto a p e a q se (I(p)(σ) M I (S)(σ) ) I(q)(M I (S)(σ)). Sia σ Σ tale che I(p)(σ) M I (S)(σ). Allora M I (S)(σ) = σ, σ Σ. Applicando la definizione di post condizione più forte si ha che I(q)( σ), ma σ = M I (S)(σ), da cui I(q)(M I (S)(σ)). b.sia r tale che per ogni σ Σ, (I(p)(σ) M I (S)(σ) ) I(r)(M I (S)(σ)), vogliamo fare vedere che per ogni σ I(q)(σ) I(r)(σ). Per hp, dato un σ, I(q)(σ) (I(p)(σ ) M I (S)(σ ) = σ) I(r)(M I (S)(σ )) 13

14 Prime dimostrazioni di correttezza Daremo alcune dimostrazioni di correttezza che illustreranno l uso delle nozioni che abbiamo introdotto Queste dimostrazioni di correttezza sono ingenue poiché sono basate su argomentazioni matematiche piuttosto che su uno dei metodi di verifica che discuteremo dopo Queste dimostrazioni a stile libero partono dalla semantica dei linguaggi di programmazione e usano, come strumento principale, l induzione. Generalmente l induzione viene fatta sulla lunghezza delle sequenze di computazione (ci stiamo occupando solo della semantica operazionale) 14

15 Prime dimostrazioni di correttezza (ctnd.1) Le dimostrazioni di questo tipo sono tediose e, soprattutto, ripetitive in quanto la stessa argomentazione appare più volte Questo giustifica lo sviluppo di metodi per la verifica dei programmi che utilizzano una notazione più appropriata 15

16 Esempio 1. Proviamo la correttezza parziale di un programma flowchart con l aiuto della semantica operazionale. Tipicamente queste dimostrazioni funzionano in questo modo. 1. Prima si dimostra un lemma riguardante le sequenze di computazione usando l induzione 2. La correttezza parziale viene derivata da questo lemma. PROVIAMO CHE: Il programma che calcola la radice quadrata è parzialmente corretto rispetto alle formule x = c e y 1 = c, dove c è qualche variabile differente da x,y 1,y 2,y 3. 16

17 Esempio 1. Prima si dimostra un lemma che esprime una relazione fra i valori delle variabili ogni volta che l etichetta test viene raggiunta (ad ogni ciclo) In particolare il lemma dice: Sia (l 1,σ 1 ),...,(l n,σ n ) una sequenza di computazione (quindi in cui l 1 = begin) con n 1 ed l n = test. Allora σ n (x) = σ 1 (x) (σ n (y 1 )) 2 σ n (x) σ n (y 2 ) = 2σ n (y 1 )+1 σ n (y 3 ) = (σ n (y 1 )+1) 2 17

18 Esempio 1. La dimostrazione del lemma è per induzione sulla lunghezza della sequenza di computazione CASO BASE: n = 1, l n = l 1 = begin, l 1 = test non è possibile e quindi la proposizione vale banalmente. PASSO INDUTTIVO: Supponiamo che la proposizione valga per j = 1,...,n e che adesso debba essere provata per n+1. Assumiamo che l n+1 = test. La dimostrazione si divide in due casi concordemente al valore di l n. Se l n = begin, quindi n = 1, allora 18

19 σ n+1 (x) = σ n (x) = σ 1 (x) σ n+1 (y 1 ) = 0 σ n+1 (y 2 ) = 1 σ n+1 (y 3 ) = 1 E ovvio che la proposizione vale in questo caso Supponiamo che l n = upd, allora ricaviamo tutte le informazioni che abbiamo. Poiché upd è un assegnamento, lo stato dalla configurazione (l n,σ n ) alla configurazione (l n+1,σ n+1 ) cambia. σ n+1 = σ n [y 3 /I(y 2 +y 3 )σ n ] Inoltre l n 1 = loop e 19

20 σ n = σ n 1 [y 1 /I(y 1 +1)σ n 1 ][y 2 /I(y 2 +2)(σ n 1 )] Infine l n 2 = test, σ n 1 = σ n 2 e I(y 3 x)(σ n 2 ) = true Vediamo che σ n+1 (x) = σ n (x) = σ n 1 (x) = σ n 2 (x) σ n+1 (y 1 ) = σ n (y 1 ) = σ n 1 (y 1 )+1 = σ n 2 (y 1 )+1 σ n+1 (y 2 ) = σ n (y 2 ) = σ n 1 (y 2 )+2 = σ n 2 (y 2 )+2 σ n+1 (y 3 ) = σ n (y 2 )+σ n (y 3 ) = σ n 1 (y 2 )+2+σ n 1 (y 3 ) = σ n 2 (y 2 )+2+σ n 2 (y 3 ) L ipotesi induttiva, con j = n 2, può adesso venire utilizzata per 20

21 ottenere il risultato richiesto. σ n+1 (x) = σ n 2 (x) = σ 1 (x) (σ n+1 (y 1 )) 2 = (σ n 2 (y 1 )+1) 2 = σ n 2 (y 3 ) σ n 2 (x) = σ n+1 (x) σ n+1 (y 2 ) = σ n 2 (y 2 )+2 = 2σ n 2 (y 1 )+3 = 2σ n+1 (y 1 )+1 21

22 σ n+1 (y 3 ) = σ n 2 (y 2 )+σ n 2 (y 3 )+2 = 2σ n 2 (y 1 )+1+(σ n 2 (y 1 )+1) 2 +2 = (σ n 2 (y 1 )+2) 2 = (σ n+1 (y 1 )+1) 2 Questo completa la dimostrazione del lemma. Per provare la correttezza parziale, si consideri una computazione finita (l 1,σ 1 )... (l k,σ k ), dove k 2, l 1 = begin, l k = end e σ 1 (x) = σ 1 (c). Bisogna dimostrare che σ k (y 1 ) = σ 1 (c) oppure, equivalentemente, che (σ k (y 1 )) 2 σ 1 (c) e, σ 1 (c) < (σ k (y 1 )+1) 2. 22

23 Adesso: l k 1 = test,σ k 1 = σ k, e I(y 3 x)(σ k 1 ) = false. Quindi σ k 1 (y 3 ) > σ k 1 (x). Questo, insieme al lemma restituisce (σ k (y 1 )) 2 = (σ k 1 (y 1 )) 2 σ k 1 (x) = σ 1 (x) = σ 1 (c) e inoltre 23

24 (σ k (y 1 )+1) 2 = (σ k 1 (y 1 )+1) 2 = σ k 1 (y 3 ) > σ k 1 (x) = σ 1 (x) = σ 1 (c) 24

25 Esempio 2. Ora dimostriamo la correttezza totale per lo stesso programma flowchart. La correttezza totale viene anch essa dimostrata rispetto alle due formule: x = c y 1 = c 25

26 LEMMA PRELIMINARE per ogni stato σ 1 Σ, ed ogni numero k Nat, tale che 0 k σ 1 (x), c è una sequenza di computazione per questo stato σ 1, tale che l 3k+2 = test σ 3k+2 (x) = σ 1 (x) σ 3k+2 (y 1 ) = k σ 3k+2 (y 2 ) = 2k +1 σ 3k+2 (y 3 ) = (k +1) 2 (l 1,σ 1 )... (l 3k+2,σ 3k+2 ) La dimostrazione del lemma viene fatta per induzione su k CASO BASE. La proprietà vale per k = 0. In particolare, l 2 = test, σ 2 (x) = σ 1 (x)... 26

27 PASSO INDUTTIVO. Supponiamo che k +1 σ 1 (x). Poiché σ 3k+2 (y 3 ) = (k +1) 2 e σ 3k+2 (x) = σ 1 (x) si ha che σ 3k+2 (y 3 ) σ 3k+2 (x). Quindi abbiamo che l 3k+3 = loop, l 3k+4 = upd, e l 3(k+1)+2 = test. Inoltre segue che σ 3(k+1)+2 (x) = σ 3k+2 (x) = σ 1 (x) σ 3(k+1)+2 (y 1 ) = σ 3k+2 (y 1 )+1 = k +1 σ 3(k+1)+2 (y 2 ) = σ 3k+2 (y 2 )+2 = 2(k +1)+1 σ 3(k+1)+2 (y 3 ) = σ 3k+2 (y 3 )+σ 3k+2 (y 2 )+2 = (k +1) 2 +2k +1+2 = (k +2) 2 27

28 Adesso si consideri la sequenza di computazione per lo stato σ 1 Σ: (l 1,σ 1 )... (l 3k+2,σ 3k+2 ) Con k = σ 1 (x). Per il lemma preliminare, σ 3k+2 (y 3 ) = (k +1) 2 = ( σ 1 (x)+1) 2 > σ 1 (x) = σ 3k+2 (x) e l etichetta l 3k+2 = test. In questo modo abbiamo che l 3k+3 = end, e la sequenza di computazione considerata è una computazione. Inoltre 28

29 σ 3k+3 (y 1 ) = σ 3k+2 (y 1 ) = k = σ 1 (x) 29

30 Metodo delle asserzioni induttive Introduciamo un metodo per la dimostrazione della correttezza parziale dei programmi flowchart. Sia B una base, I una interpretazione, p,q WFF B ed S L B 1. Il metodo delle asserzioni induttive è un modo per dimostrare la parziale correttezza del programma S rispetto alle formule p e q IDEA: Ragionare sui cammini di un programma piuttosto che sul programma in se 30

31 Cammino in un programma flowchart Siano l,l due etichette che occorrono in un programma flowchart S. Un cammino da l ad l (in S) è una sequenza (l 0,l 1,...,l k ), k 0 di etichette tali che (1)l 0 = l; (2)per i = 0,1,...,k 1 l etichetta l i+1 ha un occorrenza applicata nel comando in cui l etichetta l i ha un occorrenza definente; (3)l k = l La lunghezza del cammino l 0,l 1,...,l k è k. 31

32 Cammino in un programma flowchart (ctnd.1) Un cammino da un etichetta a se stessa di lunghezza k 1 viene detto loop Un cammino da begin a end in un programma flowchart S viene detto un cammino attraverso S 32

33 Cammino in un programma flowchart (ctnd.2) Il significato di un cammino α nel programma flowchart S e nell interpretazione I è la funzione M I (α) : Σ Σ definita M I (α)(σ) = σ se ci sono (k +1) stati σ 0,σ 1,...,σ k tali che σ = σ 0, σ = σ k e per i = 0,...,k 1, (l i,σ i ) S (l i+1,σ i+1 ) indefinita altrimenti 33

34 NOTE: la sequenza (l 0,σ 0 ),...,(l k,σ k ) non è necessariamente una sequenza di computazione del programma in quanto l 0 può essere differente da begin il significato di un programma è indefinito se lo stato di input σ non porta in un numero finito di passi ad una configurazione (l k,σ k ) dove l k = end. Il significato di un cammino è indefinito se il cammino è impossibile per σ. 34

35 Correttezza parziale, totale e terminazione per cammini di programmi flowchart Sia B una base per la logica predicativa, I una interpretazione di questa base e Σ il corrispondente insieme degli stati. Sia α un cammino di un programma flowchart S L B 1, e sia M I (α) il significato di α. Siano inoltre p e q due formule di WFF B chiamate rispettivamente precondizione e postcondizione. Il cammino viene detto: parzialmente corretto rispetto a p e q nell interpretazione I, se per tutti gli stati σ Σ: if I(p)(σ) = true and M I (α)(σ) is defined then I(q)(M I (α)(σ)) = true terminare rispetto alla formula p nell interpretazione I, se per 35

36 tutti gli stati σ Σ: if I(p)(σ) = true then M I (α)(σ) is defined essere totalmente corretto rispetto alle formule p e q nell interpretazione I, se per tutti gli stati σ Σ: if I(p)(σ) = true then M I (α)(σ) is defined and I(q)(M I (α)(σ)) = true 36

37 Weakest preconditions and strongest postconditions Siano dati B, I, Σ, α, S e q. Le precondizioni liberali più deboli del cammino α del programma flowchart S e della formula q sono tutte le formule p WFF B tali che I(p)(σ) = true se e solo se M I (α)(σ) è indefinito oppure M I (α)(σ) è definito e I(q)(M I (α)(σ)) = true Le precondizioni più deboli del cammino α del programma flowchart S e della formula q sono tutte le formule p WFF B tali che I(p)(σ) = true se e solo se M I (α)(σ) è definito e I(q)(M I (α)(σ)) = true Le postcondizioni più forti della formula p e del cammino α del programma flowchart S sono tutte le formule q WFF B tali che I(q)(σ) = true se e solo se esiste uno stato σ Σ per cui I(p)(σ ) = true e M I (α)(σ ) = σ 37

38 Considerazioni E importante notare la differenza fra le nozioni di terminazione di un programma e di un cammino E ovvio che per tutti gli stati σ,σ Σ, M I (S)(σ) = σ se e solo se esiste un cammino α attraverso S tale che M I (α)(σ) = σ 38

39 Parziale correttezza di programmi e cammini LEMMA Sia B una base per la logica predicativa, I un interpretazione di questa base e Σ il corrispondente insieme degli stati. Un programma flowchart S L B 1 è parzialmente corretto rispetto alle formule p e q in I se e solo se ogni cammino attraverso S è parzialmente corretto rispetto a p e a q in I. Dim: Sia S un programma flowchart parzialmente corretto rispetto a p e a q in I, cioé tale che per ogni σ Σ (I(p)(σ) M I (S)(σ) ) I(q)(M I (S)(σ)). Supponiamo per contraddizione che esista un cammino α in S che non è parzialmente corretto rispetto a p e a q in I, cioè tale che 39

40 esiste un σ Σ per cui I(p)( σ) M I (α)( σ) = true ma I(q)(M I (α)( σ)) = false. Poiché M I (α)( σ), deve essere M I (α)( σ) = σ per un qualche σ Σ e, di conseguenza, M I (S)( σ) = σ.ma allora S non è parzialmente corretto rispetto a p e q. Questo porta a una contraddizione. Per ipotesi, per ogni α che attraversa S e per ogni σ Σ (I(p)(σ) M I (α)(σ) ) I(q)(M I (α)(σ)). Supponiamo per contraddizione che S non sia parzialmente corretto. Allora esiste un σ Σ per cui I(p)( σ) M I (S)( σ) = true e I(q)(M I (S)( σ)) = false. Poiché M I (S)( σ), deve essere M I (S)( σ) = σ per un qualche σ Σ e, di conseguenza, esiste un cammino α attraverso S tale che M I (α )( σ) = σ. Abbiamo trovato un cammino che non e parzialmente corretto, contraddicendo l ipotesi. 40

41 Considerazioni E possibile sostituire lo studio di un programma flowchart con quello dei cammini che lo attraversano (possibilmente infiniti) I cammini sono più semplici dei programmi perché i loop vengono dispiegati e quindi resi espliciti Se M I (α)(σ), ogni nodo del cammino viene visitato esattamente una volta I cammini (possibilmente un numero infinito) che attraversano il programma, possono essere considerati come costruiti a partire da un numero finito di cammini elementari Il ragionamento su infiniti cammini può essere ricondotto al ragionamento su un numero finito di cammini elementari. 41

42 Correttezza parziale di un cammino Sia α un cammino arbitrario. Facciamo vedere come dimostrare la correttezza parziale di α rispetto alle formule p e q. Definiamo Una formula wlp(α, q) (weakest liberal precondition p of α and q) Una formula vc(p,α,q) detta la condizione di verifica 42

43 Correttezza parziale di un cammino - definizione di wlp Sia B una base per la logica predicativa, p,q WFF B due formule, S L B 1 un programma flowchart ed α = (l 0,...,l k ) un cammino in S. La formula wlp(α, q) viene definita per induzione sulla lunghezza k del cammino: CASO BASE. Per k = 0 la formula wlp(α,q) è definita q 43

44 PASSO INDUTTIVO. Per k > 0 sia β il cammino (l 1,...,l k ) ed r la formula wlp(β,q) (che è già stata definita). In base alla forma del comando all etichetta l 0, vengono distinti due casi. Se il comando è un assegnamento parallelo della forma l 0 : (x 1,...,x n ) := (t 1,...,t n ) ; goto l 1 allora la formula wlp(α,q) è definita r t 1,...,t n x 1,...,x n. Se il comando è un salto condizionale della forma l 0 : if e then goto l else goto l fi, allora la formula wlp(α, q) è definita e r se l = l 1 ( e) r se l = l 1 44

45 Correttezza parziale di un cammino - definizione di vc Sia B una base per la logica predicativa, p,q WFF B due formule, S L B 1 un programma flowchart ed α = (l 0,...,l k ) un cammino in S. La condizione di verifica per il cammino α e le formule p e q viene denotata con vc(p,α,q) e viene definita p wlp(α,q) NOTA: Questa definizione, come quella di wlp, è puramente sintattica. Infatti non dipende dall interpretazione della base B. 45

46 Esempio - trovare wlp e vc Consideriamo il programma flowchart per il calcolo della radice intera di un intero positivo e calcoliamo wlp(α 1,q test ) e vc(p begin,α 1,q test ) dove p begin = (x = a) α 1 = (begin,test) q test = (x = a y 2 1 x y 3 = (y 1 +1) 2 y 2 = 2 y 1 +1) 46

47 Esempio - trovare wlp e vc (ctnd.1) wlp(α 1,q test ) è wlp((begin,test),q test ) = (wlp((test),q test )) 0,1,1 y 1,y 2,y 3 = (q test ) 0,1,1 y 1,y 2,y 3 = (x = a 0 x 1 = (0+1) 2 1 = 2 0+1) mentre vc(p begin,α 1,q test ) = (x = a (x = a 0 x 1 = (0+1) 2 1 = 2 0+1)) 47

48 Esempio - trovare wlp e vc (ctnd.2) Troviamo ora wlp(α 2,q test ) e vc(q test,α 2,q test ) dove α 2 = (test,loop,upd,test) wlp((test),q test ) = q test wlp((upd,test),q test ) = (q test ) y 3+y 2 y 3 wlp((loop,upd,test),q test ) = ((q test ) y 3+y 2 y 3 ) y 1+1,y 2 +2 y 1,y 2 wlp((test,loop,upd,test),q test ) = (y 3 x ((q test ) y 3+y 2 y 3 ) y 1+1,y 2 +2 y 1,y 2 ) vc(q test,α 2,q test ) = (x = a y1 2 x y 3 = (y 1 +1) 2 y 2 = 2 y 1 +1 y 3 x) ((q test ) y 3+y 2 y 3 ) y 1+1,y 2 +2 y 1,y 2 48

49 con ((q test ) y 3+y 2 y 1,y 2 = (x = a (y 1 +1) 2 x y 3 +y 2 +2 = (y ) 2 y 2 +2 = 2 (y 1 +1)+1) y 3 ) y 1+1,y 2 +2 Troviamo ora wlp(α 3,q end ) e vc(q test,α 3,q end ) dove α 3 = (test,end) q end = (y 1 = a) wlp(α 3,q end ) = (y 3 x) (y 1 = a) vc(q test,α 3,q end ) = (x = a y 2 1 x y 3 = (y 1 +1) 2 y 2 = 2 y 1 +1 (y 3 x)) (y 1 = a) 49

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue

Dettagli

Verifica di programmi

Verifica di programmi Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 8 Modelli, Formule Valide, Conseguenza Logica Proof Systems Regole di inferenza per Calcolo Proposizionale

Dettagli

Logica proposizionale

Logica proposizionale Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per

Dettagli

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

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema

Dettagli

LA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella

LA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella LA LOGICA DI HOARE Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella INTRODUZIONE Dall inizio del corso ad ora abbiamo introdotto, un po alla volta, un linguaggio logico

Dettagli

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Cenni di programmazione ricorsiva Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Corso di Laurea in Informatica Università di Pisa A.A. 2009/10 R. Barbuti, P. Mancarella Indice

Dettagli

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Dettagli

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli

Dettagli

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

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 3 Sommario. Introduciamo il Calcolo dei Predicati del I ordine e ne dimostriamo le proprietà fondamentali. Discutiamo il trattamento dell identità

Dettagli

LOGICA MATEMATICA PER INFORMATICA

LOGICA MATEMATICA PER INFORMATICA LOGICA MATEMATICA PER INFORMATICA A.A. 10/11, DISPENSA N. 2 Sommario. Assiomi dell identità, modelli normali. Forma normale negativa, forma normale prenessa, forma normale di Skolem. 1. L identità Esistono

Dettagli

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna Linguaggi 5: La struttura dei numeri naturali Universitá di Bologna 29,?/10/2014 Outline La struttura dei numeri naturali 1 La struttura dei numeri naturali I numeri naturali La

Dettagli

Esercitazioni per il corso di Logica Matematica

Esercitazioni per il corso di Logica Matematica Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 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

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8 Alberto Carraro DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Insiemi e predicati ricorsivi e ricorsivamente enumerabili

Dettagli

Sviluppi e derivate delle funzioni elementari

Sviluppi e derivate delle funzioni elementari Sviluppi e derivate delle funzioni elementari In queste pagine dimostriamo gli sviluppi del prim ordine e le formule di derivazioni delle principali funzioni elementari. Utilizzeremo le uguaglianze lim

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Elezione di un leader in una rete ad anello

Elezione di un leader in una rete ad anello Elezione di un leader in una rete ad anello Corso di Algoritmi Distribuiti Prof. Roberto De Prisco Lezione n a cura di Rosanna Cassino e Sergio Di Martino Introduzione In questa lezione viene presentato

Dettagli

Alberi: definizioni e dimostrazioni induttive.

Alberi: definizioni e dimostrazioni induttive. Alberi: definizioni e dimostrazioni induttive. Gennaio 2005 Iniziamo con l introdurre la nozione di albero. Con N indichiamo l insieme dei numeri naturali (zero escluso) e con N l insieme delle liste finite

Dettagli

Corso di Fondamenti di Informatica. La ricorsione

Corso di Fondamenti di Informatica. La ricorsione Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini

Dettagli

02 - Logica delle dimostrazioni

02 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 0 - Logica delle dimostrazioni Anno Accademico 015/016

Dettagli

Esercizi sul Principio d Induzione

Esercizi sul Principio d Induzione AM110 - ESERCITAZIONI I - II - 4 OTTOBRE 01 Esercizi sul Principio d Induzione Esercizio svolto 1. Dimostrare che per ogni n 1, il numero α(n) := n 3 + 5n è divisibile per 6. Soluzione. Dimostriamolo usando

Dettagli

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n NOTE DI ALGEBRA LINEARE 2- MM 9 NOVEMBRE 2 Combinazioni lineari e generatori Sia K un campo e V uno spazio vettoriale su K Siano v,, v n vettori in V Definizione Un vettore v V si dice combinazione lineare

Dettagli

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2. TEN 2008. Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2. Lemma 1. Sia n Z. Sia p > 2 un numero primo. (a) n è un quadrato modulo p se e solo se n p 1 2 1 mod p; (b) Sia n 0

Dettagli

04 - Logica delle dimostrazioni

04 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,

Dettagli

Note per la Lezione 6 Ugo Vaccaro

Note per la Lezione 6 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Spazi Vettoriali ed Applicazioni Lineari

Spazi Vettoriali ed Applicazioni Lineari Spazi Vettoriali ed Applicazioni Lineari 1. Sottospazi Definizione. Sia V uno spazio vettoriale sul corpo C. Un sottoinsieme non vuoto W di V è un sottospazio vettoriale di V se è chiuso rispetto alla

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 7 Formule Valide, Conseguenza Logica Proof System per la Logica del Primo Ordine Leggi per i Quantificatori

Dettagli

Il principio di Induzione Matematica

Il principio di Induzione Matematica Il principio di Induzione Matematica prf.ssa Giovanna Corsi 11 luglio 2004 Il principio di induzione matematica è un metodo dimostrativo che fa esplicito riferimento ai numeri naturali.... Il riferimento

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile

Dettagli

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Dettagli

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione

Dettagli

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Logica proposizionale classica Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Parte da una famiglia di enunciati atomici di cui non analizziamo la struttura interna, che rappresentiamo

Dettagli

Dimostrazione. Indichiamo con α e β (finiti o infiniti) gli estremi dell intervallo I. Poniamo

Dimostrazione. Indichiamo con α e β (finiti o infiniti) gli estremi dell intervallo I. Poniamo C.6 Funzioni continue Pag. 114 Dimostrazione del Corollario 4.25 Corollario 4.25 Sia f continua in un intervallo I. Supponiamo che f ammetta, per x tendente a ciascuno degli estremi dell intervallo, iti

Dettagli

DAI NUMERI NATURALI AI NUMERI RAZIONALI

DAI NUMERI NATURALI AI NUMERI RAZIONALI DAI NUMERI NATURALI AI NUMERI RAZIONALI 1. L insieme dei numeri naturali Nel sistema assiomatico ZF, l Assioma dell infinito stabilisce che: Esiste un insieme A, i cui elementi sono insiemi e tale che

Dettagli

11. Misure con segno.

11. Misure con segno. 11. Misure con segno. 11.1. Misure con segno. Sia Ω un insieme non vuoto e sia A una σ-algebra in Ω. Definizione 11.1.1. (Misura con segno). Si chiama misura con segno su A ogni funzione ϕ : A R verificante

Dettagli

x 1 Fig.1 Il punto P = P =

x 1 Fig.1 Il punto P = P = Geometria di R 2 In questo paragrafo discutiamo le proprietà geometriche elementari del piano Per avere a disposizione delle coordinate nel piano, fissiamo un punto, che chiamiamo l origine Scegliamo poi

Dettagli

Valutazione Lazy. Prefazione alla lezione

Valutazione Lazy. Prefazione alla lezione Valutazione Lazy Aniello Murano Università degli Studi di Napoli Federico II 1 Prefazione alla lezione Nella lezione precedente abbiamo introdotto i linguaggi (funzionali) con tipi di ordine superiore.

Dettagli

Esercizi riguardanti limiti di successioni e di funzioni

Esercizi riguardanti limiti di successioni e di funzioni Esercizi riguardanti iti di successioni e di funzioni Davide Boscaini Queste sono le note da cui ho tratto le esercitazioni del giorno 0 Novembre 20. Come tali sono ben lungi dall essere esenti da errori,

Dettagli

i) la somma e il prodotto godano delle proprietà associativa, commutativa e distributiva;

i) la somma e il prodotto godano delle proprietà associativa, commutativa e distributiva; 1 Spazi vettoriali 11 Definizioni ed assiomi Definizione 11 Un campo è un insieme K dotato di una operazione somma K K K, (x, y) x + y e di una operazione prodotto K K K, (x, y) xy tali che i) la somma

Dettagli

Gli insiemi N, Z e Q. I numeri naturali

Gli insiemi N, Z e Q. I numeri naturali Università Roma Tre L. Chierchia 1 Gli insiemi N, Z e Q Il sistema dei numeri reali (R, +,, ) può essere definito tramite sedici assiomi: quindici assiomi algebrici (si veda ad esempio 2.3 in [Giusti,

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x 4. Geometria di R 3. Questo paragrafo è molto simile al paragrafo : tratta infatti delle proprietà geometriche elementari dello spazio R 3. Per assegnare delle coordinate nello spazio, fissiamo innanzitutto

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

Appunti sui Codici di Reed Muller. Giovanni Barbarino

Appunti sui Codici di Reed Muller. Giovanni Barbarino Appunti sui Codici di Reed Muller Giovanni Barbarino Capitolo 1 Codici di Reed-Muller I codici di Reed-Muller sono codici lineari su F q legati alle valutazioni dei polinomi sullo spazio affine. Per semplicità

Dettagli

2. Sintassi e Semantica

2. Sintassi e Semantica 2. Sintassi e Semantica Un linguaggio di programmazione è un linguaggio formale dotato di una sintassi e una semantica ben definita. Per linguaggio formale si intende un insieme di stringhe di lunghezza

Dettagli

SCUOLA GALILEIANA DI STUDI SUPERIORI CLASSE DI SCIENZE NATURALI ESAME DI AMMISSIONE, PROVA DI MATEMATICA 13 SETTEMBRE 2011

SCUOLA GALILEIANA DI STUDI SUPERIORI CLASSE DI SCIENZE NATURALI ESAME DI AMMISSIONE, PROVA DI MATEMATICA 13 SETTEMBRE 2011 1 SCUOLA GALILEIANA DI STUDI SUPERIORI CLASSE DI SCIENZE NATURALI ESAME DI AMMISSIONE, PROVA DI MATEMATICA 13 SETTEMBRE 011 Problema 1. Sia Z l insieme dei numeri interi. a) Sia F 100 l insieme delle funzioni

Dettagli

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine 1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine In questo tipo di giochi l arena è costituita da due grafi orientati G = (V, E), G = (V, E ). Lo scopo del I giocatore è di mostrare, in un numero

Dettagli

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

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: PROOF SYSTEM Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: RIASSUNTO Sintassi: grammatica libera da contesto (BNF), parametrica rispetto

Dettagli

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE ROBERTO GIAMBÒ 1. DEFINIZIONI E PRIME PROPRIETÀ In queste note saranno presentate alcune proprietà principali delle funzioni convesse di una variabile

Dettagli

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1 Corso integrato di Matematica per le scienze naturali ed applicate Materiale integrativo Paolo Baiti 1 Lorenzo Freddi 1 1 Dipartimento di Matematica e Informatica, Università di Udine, via delle Scienze

Dettagli

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere

Dettagli

Esercizi per il corso Matematica clea

Esercizi per il corso Matematica clea Esercizi per il corso Matematica clea Daniele Ritelli anno accademico 008/009 Lezione : Numeri naturali e principio di induzione Esercizi svolti. Provare che + + + n. Provare che + + + n n(n + ) n(n +

Dettagli

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica

Dettagli

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale. versione 12 ottobre 2011 1.1. Logica Proposizionale. 1. Teorema di Compattezza e risultati limitativi Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

Dettagli

Università degli Studi di Roma Tor Vergata. Principio di induzione matematica

Università degli Studi di Roma Tor Vergata. Principio di induzione matematica Università degli Studi di Roma Tor Vergata. Principio di induzione matematica Il Principio di induzione matematica è una tecnica di dimostrazione che permette la dimostrazione simultanea di infinite affermazioni.

Dettagli

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI 1. GLI ASSIOMI DI PEANO Come puro esercizio di stile voglio offrire una derivazione delle proprietà elementari dei numeri naturali e delle operazioni

Dettagli

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi e Grammatiche Liberi da Contesto N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica

Dettagli

Ragionamento Automatico Richiami di calcolo dei predicati

Ragionamento Automatico Richiami di calcolo dei predicati Richiami di logica del primo ordine Ragionamento Automatico Richiami di calcolo dei predicati (SLL: Capitolo 7) Sintassi Semantica Lezione 2 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione 2 0

Dettagli

Alcuni equivalenti dell Assioma della Scelta

Alcuni equivalenti dell Assioma della Scelta Alcuni equivalenti dell Assioma della Scelta Giugno 2010 Gabriele Gullà Sommario Dimostreremo l equivalenza fra l assioma della scelta ed altri enunciati della matematica piú o meno noti. Enunciati: 1)

Dettagli

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

Fondamenti di Informatica 2, Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Fondamenti di Informatica 2 Linguaggi e Complessità : Logica I Parte Lucidi di M.Schaerf e A.Marchetti Spaccamela Fondamenti di Informatica 2: Logica Indice degli argomenti Introduzione: Motivazioni, Prove,

Dettagli

Introduzione ad alcuni sistemi di logica modale

Introduzione ad alcuni sistemi di logica modale Introduzione ad alcuni sistemi di logica modale Laura Porro 16 maggio 2008 1 Il calcolo proposizionale Prendiamo come primitivi i simboli del Calcolo Proposizionale (PC) tradizionale a due valori 1 : un

Dettagli

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia Insiemi, Numeri, Terminologia Prof. Simone Sbaraglia Corso Rapido di Logica Matematica La logica formale definisce le regole cui deve obbedire qualsiasi teoria deduttiva. Una proposizione e` una affermazione

Dettagli

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati. LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b

Dettagli

Linguaggi. Claudio Sacerdoti Coen 28/03/ : Deduzione naturale. Universitá di Bologna. Deduzione naturale

Linguaggi. Claudio Sacerdoti Coen 28/03/ : Deduzione naturale. Universitá di Bologna. Deduzione naturale Linguaggi 15: Deduzione naturale Universitá di Bologna 28/03/2011 Outline Deduzione naturale 1 Deduzione naturale Deduzione Deduzione naturale Wikipedia: Deduzione naturale: sintassi

Dettagli

1 Principio di Induzione

1 Principio di Induzione 1 Principio di Induzione Per numeri naturali, nel linguaggio comune, si intendono i numeri interi non negativi 0, 1,, 3, Da un punto di vista insiemistico costruttivo, a partire dall esistenza dell insieme

Dettagli

Fondamenti d Informatica: Linguaggio While. Barbara Re, Phd

Fondamenti d Informatica: Linguaggio While. Barbara Re, Phd Fondamenti d Informatica: Linguaggio While Barbara Re, Phd Il linguaggio WHILE } La computabilità come supporto ai moderni linguaggi di programmazione } Si può generalizzare rispetto ad una vasta famiglia

Dettagli

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Richiami di Matematica 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Insiemi Definizioni di base Dato un insieme A: x A: elemento x appartenente

Dettagli

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. PH. ELLIA Indice Introduzione 1 1. Divisori di un numero. 1 2. Il Teorema Fondamentale dell Aritmetica. 2 3. L insieme dei numeri primi è

Dettagli

Interpretazione Astratta (cenni) Agostino Cortesi

Interpretazione Astratta (cenni) Agostino Cortesi Interpretazione Astratta (cenni) Agostino Cortesi Astrazione: selezionare una proprieta 2 Astrazione: selezionare una (delle) proprieta 3 Astrazione e correttezza 4 Astrarre un insiemi di punti nel piano

Dettagli

LOGICA PER LA PROGRAMMAZIONE - a.a Secondo Appello - 11/02/2016 Soluzioni Proposte

LOGICA PER LA PROGRAMMAZIONE - a.a Secondo Appello - 11/02/2016 Soluzioni Proposte LOGICA PER LA PROGRAMMAZIONE - a.a. 2015-2016 Secondo Appello - 11/02/2016 Soluzioni Proposte Attenzione: Le soluzioni che seguono sono considerate corrette dai docenti. Per ogni esercizio possono esistere

Dettagli

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero Il teorema degli zeri è fondamentale per determinare se una funzione continua in un intervallo chiuso [ a ; b ] si annulla in almeno un punto interno

Dettagli

Massimo e minimo limite di successioni

Massimo e minimo limite di successioni Massimo e minimo limite di successioni 1 Premesse Definizione 1.1. Definiamo R esteso l insieme R = R { } {+ }. In R si estende l ordinamento tra numeri reali ponendo < a < +, a R. In base a tale definizione,

Dettagli

Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16

Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16 Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana - 015/16 Esercizio 1 Per quali valori n Z \ {0} l espressione è un numero intero positivo? (n + 5)(n + 6) 6n Soluzione. Il problema

Dettagli

L aritmetica degli insiemi infiniti Parte I

L aritmetica degli insiemi infiniti Parte I L aritmetica degli insiemi infiniti Parte I Stefano Baratella Versione L A TEX realizzata in collaborazione con Tullio Garbari 1 Prerequisiti La relazione di equipotenza tra insiemi. Definizione 1. Si

Dettagli

Introduzione alla Programmazione Funzionale

Introduzione alla Programmazione Funzionale Introduzione alla Programmazione Funzionale April 27, 2017 Paradigmi di Programmazione Programmi sviluppabili usando diversi paradigmi Imperativo: computazione come modifica di stato Funzionale: computazione

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Grafi e gruppo fondamentale di un grafo

Grafi e gruppo fondamentale di un grafo Grafi e gruppo fondamentale di un grafo Note per il corso di Geometria IV (relative alla parte dei 6 crediti) Milano, 2010-2011, M.Dedò Come trovare un grafo omotopicamente equivalente all'oggetto 3d raffigurato

Dettagli

PROCESSI STOCASTICI 1: INTEGRAZIONI

PROCESSI STOCASTICI 1: INTEGRAZIONI PROCESSI STOCASTICI 1: INTEGRAZIONI 1. Definizioni e risultati sparsi Def. Dato un insieme I, si chiama processo stocastico con spazio degli stati I una famiglia {X t } t T di variabili aleatorie a valori

Dettagli

Il teorema di Lagrange e la formula di Taylor

Il teorema di Lagrange e la formula di Taylor Il teorema di Lagrange e la formula di Taylor Il teorema del valor medio di Lagrange, valido per funzioni reali di una variabile reale, si estende alle funzioni reali di più variabili. Come si vedrà, questo

Dettagli

Corso: Fondamenti di Linguaggi di Programmazione

Corso: Fondamenti di Linguaggi di Programmazione Corso: Fondamenti di Linguaggi di Programmazione Paola Giannini Chiusure e Binding statico e dinamico Paola Giannini, a.a. 2017/2018 FONDAMENTI LINGUAGGI Binding statico e dinamico 1 / 8 Stack e Sostituzione

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 10

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 10 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 10 Alberto Carraro DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Teoremi fondamentali della Recursion Theory Theorem

Dettagli

Algoritmo per A. !(x) Istanza di B

Algoritmo per A. !(x) Istanza di B Riduzioni polinomiali Una funzione f: T*!T* è detta computabile in tempo polinomiale se esiste una macchina di Turing limitata polinomialmente che la computi. Siano L 1 e L 2 " T* due linguaggi. Una funzione

Dettagli

Introduzione alla logica

Introduzione alla logica Corso di Intelligenza Artificiale 2011/12 Introduzione alla logica iola Schiaffonati Dipartimento di Elettronica e Informazione Sommario 2 Logica proposizionale (logica di Boole) Logica del primo ordine

Dettagli

LOGICA MATEMATICA PER INFORMATICA

LOGICA MATEMATICA PER INFORMATICA LOGICA MATEMATICA PER INFORMATICA A.A. 10/11, SETTIMANA N. 1 Sommario. Introduciamo il linguaggio e la sintassi e la semantica della Logica del I Ordine. Introduciamo i concetti di teoria, teoria completa,

Dettagli

ANALISI 1 1 QUINTA LEZIONE

ANALISI 1 1 QUINTA LEZIONE ANALISI 1 1 QUINTA LEZIONE 1 prof. Claudio Saccon, Dipartimento di Matematica Applicata, Via F. Buonarroti 1/C email: saccon@mail.dm.unipi.it web: http://www2.ing.unipi.it/ d6081/index.html Ricevimento:

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

C1: L C1 C2: L C2 C: C1 C2

C1: L C1 C2: L C2 C: C1 C2 Abbiamo visto Gli agenti logici applicano inferenze a una base di conoscenza per derivare nuove informazioni. Concetti base della logica: sintassi: struttura formale delle sentenze semantica: verita` di

Dettagli

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.

Dettagli

Maiuscole e minuscole

Maiuscole e minuscole Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e

Dettagli

Scheda n.3: densità gaussiana e Beta

Scheda n.3: densità gaussiana e Beta Scheda n.3: densità gaussiana e Beta October 10, 2008 1 Definizioni generali Chiamiamo densità di probabilità (pdf ) ogni funzione integrabile f (x) definita per x R tale che i) f (x) 0 per ogni x R ii)

Dettagli

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013 L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)

Dettagli

Esercitazione 4 Algoritmi greedy

Esercitazione 4 Algoritmi greedy Esercitazione 4 Algoritmi greedy Problema 9 (es.2 appello 18/02/2016 modulo 2) Nel museo Tor VerLouvre c è un lungo corridoio rettilineo in cui sono esposti n quadri nelle posizioni 0 q 1 < q 2 < q 3

Dettagli