Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Dijkstra-féle leggyengébbelőfeltétel-kalkulus wp: Uts  Felt  Felt weakest precondition wp(C,q) = { s :  (C,  s,C  ).  n>0.  n (C,  s,C 

Hasonló előadás


Az előadások a következő témára: "Dijkstra-féle leggyengébbelőfeltétel-kalkulus wp: Uts  Felt  Felt weakest precondition wp(C,q) = { s :  (C,  s,C  ).  n>0.  n (C,  s,C "— Előadás másolata:

1

2 Dijkstra-féle leggyengébbelőfeltétel-kalkulus

3 wp: Uts  Felt  Felt weakest precondition wp(C,q) = { s :  (C,  s,C  ).  n>0.  n (C,  s,C  )  (n)  q } [p]C[q]=  s  p.  (C,  s,C  ).  n>0.  n (C,  s,C  )  (n)  q  (C,  s,C  ).  n>0.  n (C,  s,C  )  (n)  q A definícióból következik, hogy rögzített C utasítás és q utófeltétel mellett létezik leggyengébb (legbővebb) p előfeltétel, amely mellett a totális helyesség még fennáll. Ezt jelöli a következőkben wp:

4 A wp függvény alaptulajdonságai: A csoda kizárásának elve wp(C,  ) =  A csoda kizárásának elve wp(C,  ) =  Művelettartás wp(C,q 1  q 2 ) = wp(C,q 1 )  wp(C,q 2 ) Művelettartás wp(C,q 1  q 2 ) = wp(C,q 1 )  wp(C,q 2 ) Monotonitás Ha q 1  q 2, akkor wp(C,q 1 )  wp(C,q 2 ) Monotonitás Ha q 1  q 2, akkor wp(C,q 1 )  wp(C,q 2 )

5 A wp függvény és az utasítások: A skip utasítás wp(skip,q) = q A skip utasítás wp(skip,q) = q A determinisztikus értékadás wp(X:=E,q) = {s: s(X:=E(s))  q} A determinisztikus értékadás wp(X:=E,q) = {s: s(X:=E(s))  q} A nemdeterminisztikus értékadás wp(X:=?,q) = {s:  d  D.s(X:=d)  q} A nemdeterminisztikus értékadás wp(X:=?,q) = {s:  d  D.s(X:=d)  q}

6 A wp függvény és az utasítások: A kompozíció wp((C 1 ;C 2 ), q) = wp(C 1,wp(C 2,q)) A kompozíció wp((C 1 ;C 2 ), q) = wp(C 1,wp(C 2,q)) A determinisztikus szelekció wp((B  C 1  C 2 ), q) = (B  wp(C 1,q))  (  B  wp(C 2,q)) A determinisztikus szelekció wp((B  C 1  C 2 ), q) = (B  wp(C 1,q))  (  B  wp(C 2,q)) A nemdeterminisztikus szelekció wp((B 1  C 1 B 2  C 2 ), q) = (B 1  B 2 )  (  B 1  wp(C 1,q))  (  B 2  wp(C 2,q)) A nemdeterminisztikus szelekció wp((B 1  C 1 B 2  C 2 ), q) = (B 1  B 2 )  (  B 1  wp(C 1,q))  (  B 2  wp(C 2,q))

7 A wp függvény és az utasítások: Az iteráció Feltételezés: (B*C) nemdeterminizmusa véges. wp((B*C),q) = lkfp( p.((  B  q)  (B  wp(C,p)))) Az iteráció Feltételezés: (B*C) nemdeterminizmusa véges. wp((B*C),q) = lkfp( p.((  B  q)  (B  wp(C,p)))) Ez megegyezik a p-re vonatkozó alábbi egyenlet legszűkebb megoldásával: p = (  B  q)  (B  wp(C,p)) Ennek megoldása: p 0 =  B  q,p i+1 = p 0  (B  wp(C,p i )) wp((B*C),q) =  i  0 p i

8 wlp: Uts  Felt  Felt weakest liberal precondition wlp(C,q) = { s :  s'  S. (  s,s'  C  s'  q) } {p}C{q} = ((p  S)  C)  (S  q) A definícióból következik, hogy rögzített C utasítás és q utófeltétel mellett létezik leggyengébb (legbővebb) p előfeltétel, amely mellett a parciális (az eredménytelen végrehajtást is megengedő) helyesség még fennáll. Ezt jelöli a következőkben wlp:

9 A wlp függvény alaptulajdonságai: wlp(C,S) = S wlp(C,S) = S Művelettartás wlp(C,q 1  q 2 ) = wlp(C,q 1 )  wlp(C,q 2 ) Művelettartás wlp(C,q 1  q 2 ) = wlp(C,q 1 )  wlp(C,q 2 ) Monotonitás Ha q 1  q 2, akkor wlp(C,q 1 )  wlp(C,q 2 ) Monotonitás Ha q 1  q 2, akkor wlp(C,q 1 )  wlp(C,q 2 )

10 A wlp függvény és az utasítások: A skip utasítás wlp(skip,q) = q A skip utasítás wlp(skip,q) = q A determinisztikus értékadás wlp(X:=E,q) = {s: s(X:=E(s))  q} A determinisztikus értékadás wlp(X:=E,q) = {s: s(X:=E(s))  q} A nemdeterminisztikus értékadás wlp(X:=?,q) = {s:  d  D.s(X:=d)  q} A nemdeterminisztikus értékadás wlp(X:=?,q) = {s:  d  D.s(X:=d)  q}

11 A wlp függvény és az utasítások: A kompozíció wlp((C 1 ;C 2 ), q) = wlp(C 1,wlp(C 2,q)) A kompozíció wlp((C 1 ;C 2 ), q) = wlp(C 1,wlp(C 2,q)) A determinisztikus szelekció wlp((B  C 1  C 2 ), q) = (B  wlp(C 1,q))  (  B  wlp(C 2,q)) A determinisztikus szelekció wlp((B  C 1  C 2 ), q) = (B  wlp(C 1,q))  (  B  wlp(C 2,q)) A nemdeterminisztikus szelekció wlp((B 1  C 1 B 2  C 2 ), q) = (  B 1  wlp(C 1,q))  (  B 2  wlp(C 2,q)) A nemdeterminisztikus szelekció wlp((B 1  C 1 B 2  C 2 ), q) = (  B 1  wlp(C 1,q))  (  B 2  wlp(C 2,q))

12 A wlp függvény és az utasítások: Az iteráció wlp((B*C),q) = lnfp( p.((  B  q)  (B  wlp(C,p)))) Az iteráció wlp((B*C),q) = lnfp( p.((  B  q)  (B  wlp(C,p)))) Ez megegyezik a p-re vonatkozó alábbi egyenlet legbővebb megoldásával: p = (  B  q)  (B  wlp(C,p)) Ennek megoldása: p 0 = (  B  q)  B, p i+1 = (  B  q)  (B  wlp(C,p i )) wlp((B*C),q) =  i  0 p i

13 slp: Felt  Uts  Felt strongest liberal postcondition slp(p,C) = { s :  s'  p.  s',s  C } {p}C{q} = ((p  S)  C)  (S  q) A definícióból következik, hogy rögzített C utasítás és p előfeltétel mellett létezik legerősebb (legszűkebb) q utófeltétel, amely mellett a parciális (az eredménytelen végrehajtást is megengedő) helyesség még fennáll. Ezt jelöli a következőkben slp:

14 Az slp függvény alaptulajdonságai: slp( ,C) =  slp( ,C) =  Művelettartás slp(p 1  p 2,C,) = slp(p 1,C)  slp(p 2,C) Művelettartás slp(p 1  p 2,C,) = slp(p 1,C)  slp(p 2,C) Monotonitás Ha p 1  p 2, akkor slp(p 1,C)  slp(p 2,C) Monotonitás Ha p 1  p 2, akkor slp(p 1,C)  slp(p 2,C)

15 Az slp függvény és az utasítások: A skip utasítás slp(p, skip) = p A skip utasítás slp(p, skip) = p A determinisztikus értékadás slp(p, X:=E) = {s(X:=E(s)): s  p} A determinisztikus értékadás slp(p, X:=E) = {s(X:=E(s)): s  p} A nemdeterminisztikus értékadás slp(p, X:=?) = {s:  d  D. s(X:=d)  p} A nemdeterminisztikus értékadás slp(p, X:=?) = {s:  d  D. s(X:=d)  p} (d itt az X eredeti tartalma)

16 Az slp függvény és az utasítások: A kompozíció slp(p, (C 1 ;C 2 )) = slp( slp(p, C 1 ), C 2 ) A kompozíció slp(p, (C 1 ;C 2 )) = slp( slp(p, C 1 ), C 2 ) A determinisztikus szelekció slp(p, (B  C 1  C 2 )) = slp(p  B, C 1 )  slp(p  B, C 2 ) A determinisztikus szelekció slp(p, (B  C 1  C 2 )) = slp(p  B, C 1 )  slp(p  B, C 2 ) A nemdeterminisztikus szelekció slp(p, (B 1  C 1 B 2  C 2 )) = slp(p  B 1, C 1 )  slp(p  B 2, C 2 ) A nemdeterminisztikus szelekció slp(p, (B 1  C 1 B 2  C 2 )) = slp(p  B 1, C 1 )  slp(p  B 2, C 2 )

17 Az slp függvény és az utasítások: Az iteráció slp(p,(B*C)) = lkfp( q. (p  slp(q  B,C)))  B Az iteráció slp(p,(B*C)) = lkfp( q. (p  slp(q  B,C)))  B Ez megegyezik a q-ra vonatkozó alábbi egyenlet legszűkebb megoldásával: q = p  slp((q  B), C) Ennek megoldása: q 0 = p, q i+1 = slp((q i  B), C) slp(p, B*C) = (  i  0 q i )   B


Letölteni ppt "Dijkstra-féle leggyengébbelőfeltétel-kalkulus wp: Uts  Felt  Felt weakest precondition wp(C,q) = { s :  (C,  s,C  ).  n>0.  n (C,  s,C "

Hasonló előadás


Google Hirdetések