Verifica dei programmi
|
|
- Annunciata Bini
- 6 anni fa
- Visualizzazioni
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 operazionale: associa ad ogni programma la sequenza delle sue
DettagliVerifica 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
DettagliLinguaggi 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
DettagliRISOLUZIONE 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
DettagliLogica 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
DettagliLogica 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
DettagliLOGICA 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
DettagliLA 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
DettagliCenni 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
DettagliUn 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
DettagliLezione 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
DettagliCalcolare 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
DettagliAlgoritmi 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
DettagliLOGICA 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à
DettagliLOGICA 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
DettagliLinguaggi. 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
DettagliEsercitazioni 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
DettagliFondamenti 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
DettagliNote 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
DettagliSviluppi 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
DettagliCosa 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
DettagliElezione 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
DettagliAlberi: 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
DettagliCorso 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
Dettagli02 - 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
DettagliEsercizi 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
DettagliNOTE 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
DettagliTEN 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
Dettagli04 - 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,
DettagliNote 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,
DettagliProblemi, 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
DettagliDiagramma 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
DettagliSpazi 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
DettagliLogica 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
DettagliIl 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
DettagliDati 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
DettagliCodice 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.
DettagliVerifica 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
DettagliLogica 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
DettagliDimostrazione. 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
DettagliDAI 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
Dettagli11. 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
Dettaglix 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
DettagliValutazione 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.
DettagliEsercizi 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,
Dettaglii) 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
DettagliGli 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,
DettagliProblemi 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
Dettaglimisura. 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
DettagliProblemi 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
DettagliAppunti 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à
Dettagli2. 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
DettagliSCUOLA 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
Dettagli1 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
DettagliLOGICA 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
DettagliNOTE 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
DettagliMatematica. 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
DettagliLEZIONE 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
DettagliEsercizi 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 +
DettagliElementi 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
DettagliTeorema 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.
DettagliUniversità 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.
DettagliALGEBRA 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
DettagliLinguaggi 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
DettagliRagionamento 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
DettagliAlcuni 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)
DettagliFondamenti 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,
DettagliIntroduzione 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
DettagliInsiemi, 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
DettagliLEZIONE 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
DettagliLinguaggi. 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
Dettagli1 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
DettagliFondamenti 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
DettagliRichiami 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
DettagliIL 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 è
DettagliInterpretazione 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
DettagliLOGICA 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
DettagliIL 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
DettagliMassimo 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,
DettagliEsercizi 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
DettagliL 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
DettagliIntroduzione 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
DettagliProblema: 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
DettagliGrafi 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
DettagliPROCESSI 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
DettagliIl 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
DettagliCorso: 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
DettagliNote 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
DettagliAlgoritmo 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
DettagliIntroduzione 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
DettagliLOGICA 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,
DettagliANALISI 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:
DettagliMatlab. 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
DettagliC1: 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
DettagliSui 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.
DettagliMaiuscole 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
DettagliScheda 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)
DettagliL 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à)
DettagliEsercitazione 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