La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

4/5/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella.

Presentazioni simili


Presentazione sul tema: "4/5/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella."— Transcript della presentazione:

1 4/5/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella

2 4/5/2015 2 Logica di Hoare (correttezza parziale) {P} skip {P} {false} abort {P} {P 1 } S {P 2 } {P 2 } S’ {P 3 } {P 1 } S ; S’ {P 3 } {P  C} S 1 {Q} {P  ¬ C} S 2 {Q} {P} if C then S 1 else S 2 {Q} {I  C} S {I}. {I} while C do S {I  ¬C} Asserzione induttiva {P} S {Q}

3 4/5/2015 3 Logica di Hoare P ’  P {P} S {Q} Q  Q ’ {P ’ } S {Q ’ } {[x  E] P} x:=E {P} correttezza totale {I  C  0≤v=V} S {I  0≤v<V} {I  0≤v} while C do S {I  ¬C}

4 4/5/2015 4 A  B significa che A è più forte di B (perché “non necessariamente vera” quanto B) Minima precondizione Dato {P} S {Q} possiamo calcolarci la minima precondizione [S]Q (trasformatore di predicato) Vale: {P} S {Q}  P  [S]Q

5 4/5/2015 5 Minima precondizione [ skip ]Q = Q [ abort ]Q = false [ x:= E ]Q = [ x:= E ] Q [ S;S’ ] Q = [S][S’ ]Q [ if B then S1 else S2 ] Q = (B  [ S1 ] Q )  (  B  [ S2 ] Q) [ while B do S ] Q = (  B  Q )  (B  [ S; while B do S ] Q)

6 4/5/2015 6 Semantica della logica di Hoare [S]Q è goduta dal più grande insieme di stati dai quali, applicando S, si ottengono stati nei quali vale Q Indichiamo wp (S,Q) con l ’ insieme di questi stati; spesso Identificheremo le due cose pensando wp (S,Q) come una formula Definiamo |= {P} S {Q} S partendo da uno stato in cui vale P, porta in uno stato nel quale vale Q v. Ben Ari, Huth Ryan cap.4

7 4/5/2015 7 Alcuni teoremi

8 4/5/2015 8 Alcuni teoremi

9 4/5/2015 9 Alcuni teoremi

10 4/5/2015 10 Alcuni teoremi

11 4/5/2015 11 Alcuni teoremi

12 4/5/2015 12 Correttezza della logica di Hoare Se |- HL {P} S {Q} allora |= {P} S {Q} Equivalentemente Se |- HL {P} S {Q} allora |= P  wp(S,Q)

13 4/5/2015 13 Correttezza della logica di Hoare Osservazione: il ciclo W = while B do S può essere definito induttivamente W° = if B then abort else skip W k+1 = if B then S; W k else skip

14 4/5/2015 14 Correttezza della logica di Hoare Lemma wp (W°,Q)   B  (  B  Q) Dim: wp (W°,Q) = wp ( if B then abort else skip,Q) = (B  wp ( abort,Q))  (  B  wp ( skip,Q)) = (B  false)  (  B  Q)   B  (  B  Q)

15 4/5/2015 15 Correttezza della logica di Hoare

16 4/5/2015 16 Correttezza della logica di Hoare Lemma  k=0,∞ wp (W k,Q)  wp (W,Q) Per induzione su k mostriamo wp (W k,Q)  wp (W,Q) k=0 wp (W°,Q)   B  (  B  Q)   B  Q wp (W°,Q)  (  B  Q)  (B  wp (S;W,Q)) wp (W°,Q)  wp (W,Q)

17 4/5/2015 17 Correttezza della logica di Hoare k>0 wp (W k+1,Q) = wp ( if B then S; W k else skip,Q) wp (W k+1,Q) = (B  wp (S; W k,Q))  (  B  wp( skip,Q)) wp (W k+1,Q) = (B  wp(S, wp(W k,Q))  (  B  Q) wp (W k+1,Q)  (B  wp(S, wp(W,Q)))  (  B  Q) wp (W k+1,Q)  (B  wp(S;W,Q))  (  B  Q) wp (W k+1,Q)  wp (W,Q)

18 4/5/2015 18 Correttezza della logica di Hoare Il caso della concatenazione Se |- HL {P} S 1 ; S 2 {Q} allora |= P  wp(S 1 ; S 2,Q) {P} S1 {R} {R} S2 {Q} {P } S1 ; S2 {Q} Per ipotesi induttiva |= {P} S 1 {R} cioè |= P  wp(S 1,R) |= {R} S 2 {Q} cioè |= R  wp(S 2,Q) Per monotonia |= P  wp(S 1, wp(S 2,Q) ) |= P  wp(S 1 ; S 2,Q)

19 4/5/2015 19 Correttezza della logica di Hoare

20 4/5/2015 20 Completezza della logica di Hoare Se |= {P} S {Q} allora |- HL {P} S {Q} Equivalentemente Se |= P  wp(S,Q) allora |- HL {P} S {Q}

21 4/5/2015 21 Completezza della logica di Hoare Se |= P  wp(S,Q) allora |- HL {P} S {Q}

22 4/5/2015 22 Completezza della logica di Hoare Se |= P  wp(S,Q) allora |- HL {P} S {Q}


Scaricare ppt "4/5/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella."

Presentazioni simili


Annunci Google