Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoPancrazio Chiari Modificato 9 anni fa
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}
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.