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

Hasonló előadás


Az előadások a következő témára: "Dijkstra-féle leggyengébbelőfeltétel-kalkulus"— Előadás másolata:

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

2 (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 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: wp: Uts  Felt  Felt weakest precondition wp(C,q) = { s : (C,s,C).n>0.n(C,s,C)(n)q }

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

4 A wp függvény és az utasítások:
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 nemdeterminisztikus értékadás wp(X:=?,q) = {s: dD.s(X:=d)q}

5 A wp függvény és az utasítások:
A kompozíció wp((C1;C2), q) = wp(C1,wp(C2,q)) A determinisztikus szelekció wp((BC1C2), q) = (Bwp(C1,q))(Bwp(C2,q)) A nemdeterminisztikus szelekció wp((B1C1  B2C2), q) = (B1B2)(B1wp(C1,q))(B2wp(C2,q))

6 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)))) Ez megegyezik a p-re vonatkozó alábbi egyenlet legszűkebb megoldásával: p = (Bq)  (Bwp(C,p)) Ennek megoldása: p0 = Bq, pi+1 = p0  (Bwp(C,pi)) wp((B*C),q) = i0 pi

7 {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: wlp: Uts  Felt  Felt weakest liberal precondition wlp(C,q) = { s : s'S. (s,s'C  s'q) }

8 A wlp függvény alaptulajdonságai:
wlp(C,S) = S Művelettartás wlp(C,q1q2) = wlp(C,q1)  wlp(C,q2) Monotonitás Ha q1  q2, akkor wlp(C,q1)  wlp(C,q2)

9 A wlp függvény és az utasítások:
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 nemdeterminisztikus értékadás wlp(X:=?,q) = {s: dD.s(X:=d)q}

10 A wlp függvény és az utasítások:
A kompozíció wlp((C1;C2), q) = wlp(C1,wlp(C2,q)) A determinisztikus szelekció wlp((BC1C2), q) = (Bwlp(C1,q))(Bwlp(C2,q)) A nemdeterminisztikus szelekció wlp((B1C1  B2C2), q) = (B1wlp(C1,q))(B2wlp(C2,q))

11 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)))) Ez megegyezik a p-re vonatkozó alábbi egyenlet legbővebb megoldásával: p = (Bq)  (Bwlp(C,p)) Ennek megoldása: p0 = (Bq)  B, pi+1 = (Bq)  (Bwlp(C,pi)) wlp((B*C),q) =  i0 pi

12 {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: slp: Felt  Uts  Felt strongest liberal postcondition slp(p,C) = { s : s'p. s',sC }

13 Az slp függvény alaptulajdonságai:
slp(,C) =  Művelettartás slp(p1 p2 ,C,) = slp(p1,C)  slp(p2,C) Monotonitás Ha p1  p2, akkor slp(p1,C)  slp(p2,C)

14 Az slp függvény és az utasítások:
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 nemdeterminisztikus értékadás slp(p, X:=?) = {s: dD. s(X:=d)p} (d itt az X eredeti tartalma)

15 Az slp függvény és az utasítások:
A kompozíció slp(p, (C1;C2)) = slp( slp(p, C1), C2) A determinisztikus szelekció slp(p, (BC1C2)) = slp(pB, C1)  slp(pB, C2) A nemdeterminisztikus szelekció slp(p, (B1C1  B2C2)) = slp(pB1, C1)  slp(pB2, C2)

16 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 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"

Hasonló előadás


Google Hirdetések