1 / 33

S = Specifi kacija ( željeno ponašanje ) . Izraženo u vremenskoj logici .

FORMALNA VERIFIKACIJA PROGRAMSKE POTPORE METODOM PROVJERE MODELA (engl. Model Checking ). I = Implementacija ( model sustava koji se verificira ) . Izraženo povezanim strojevima s konačnim brojem stanja (FSM). DA = model sustava logički zadovoljava specifikaciju. Sustav za verifikaciju

argus
Download Presentation

S = Specifi kacija ( željeno ponašanje ) . Izraženo u vremenskoj logici .

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FORMALNA VERIFIKACIJA PROGRAMSKE POTPORE METODOM PROVJERE MODELA (engl. Model Checking) I = Implementacija (modelsustava koji se verificira). Izraženo povezanim strojevima s konačnim brojem stanja (FSM). DA = model sustava logički zadovoljava specifikaciju Sustav za verifikaciju (npr. SMV) NE (+ ispis pogrešnog izvođenja programa) S = Specifikacija (željeno ponašanje). Izraženo u vremenskoj logici. Simbolički opisujemo: IS

  2. Modalna i vremenska (temporalna) logika • Modalna logika - proširenje klasične logike "modalitetima" istinitosti • (subjektivnim konceptima), • kao što su npr. "što mora biti istinito" i "što može biti istinito. • Npr.: p = atomički propopzicijski simbol • Neka je: p = F (neisitinit) u sadašnjem svijetu (stanju stvari). • Tada: • (mogućep) = T ako postoji bar jedan drugi svijet (neka druga situacija, neki drugi scenarij, neka druga baza znanja) u kojoj je p = T. • (nužno p) = F jer (nužno p) = T samo akko je p istinit u svim • svjetovima (što ovdje nije slučaj). • U klasičnu propozicijsku i predikatnu logiku dodaju se modalni operatori.

  3. Klasifikacija modalne logike Prema tipu modalnosti razlikujemo logike: Aletička logika potrebitost, mogućnost Deontička logika: obligatornost (nužnost), dozvoljivost Epistemička logika: znanje, vjerovanje Vremenska logika: uvijek, konačno, što_je_bilo, što_je_sad, što_će_biti . . . Vremenska logika (TL) - višestruki pogledi (1): TL propozicijska: Klasična propozicijska logika proširena vremenskim operatorima. Najviša razina apstrakcije u rasuđivanju. TL predikatna prvoga reda (varijable, funkcije, predikati, kvantifikatori): Različiti tipovi TL prvoga reda interpretirana-neinterpretirana (pretpostavlja ili ne strukturu), globalne i lokalne varijable, kvantifikacija preko vremenskih operatora ili ne.

  4. Vremenska logika (TL) - višestruki pogledi (2): Globalna ili modularna: Endogena i egzogena. Rasuđivanje o kompletnom sustavu ili ne. TL linearnog vremena: U svakom trenutku postoji samo jedan budući trenutak (jedna vremenska crta). TL s grananjem vremena: U svakom trenutku može postojati više različitih budućih vremenskih crta. Diskretno ili kontinuirano vrijeme. U računarstvu uobičajeno diskretno vrijeme (sekvence stanja). Prošlo i buduće vrijeme. Izvorno TL obuhvaća oba vremena. U digitalnim sustavima uobičajeni su samo operatori budućeg vremena. Odabiremo: propozicijska, globalna, grananje, buduće vrijeme

  5. Model dijela sustava koji želimo formalno provjeriti (verificirati) = model implementacije ( I ) = Kripke struktura M (Saul Kripke, 1971) I = M = ( S, R, L) gdje je : S : konačanskup stanja R  S × S : totalna binarna relacija (svako stanje je obuhvaćeno; ima sljedbenika), t.j. sS ( tS | (s, t)R ) L : funkcija označavanja stanja: S  2AP AP: skup atomičkih propozicijskih simbola L:(engl. labeling) daje interpretaciju svih simbola iz skupa AP za stanje s. Analogno i formalno jednako modelu automata (stroju stanja).

  6. Tipičan primjer Kripke strukture (modela sustava): početno

  7. si sk Neka definirana Kripke struktura može se promatrati kao beskonačno stablo izvođenja sustava (“odmota” se počevši od promatranog stanja s0 ). Prikazuju se svi mogući putovi izvođenja sustava. mogući prijelazi To je kontekst vremenske logike s grananjem Computation Tree Logic =CTL

  8. Primjer modela: s0 t0 p, q p, q s0 s1 t1 s2 q, r r q, r r s2 s0 s2 t2 s1 s2 p, q r r s2 s1 t3 s2 q, r r r p, q, r - propozicijski simboli (istiniti u određenim stanjima). S0 - početno stanje ili stanje koje nas zanima.

  9. CTL vremenski operatori (u kontekstu “odmotane” Kripke strukture): Operators: Quantifiers: PAZI: Uvijek u paru !!

  10. s s Za model M (Kripke strukturu) i stanje S, uvijek se mora specificirati formula  može imati slijedeću semantiku: p = true (EF p) = True (AF p) = True

  11. s s p = true (EG p) = True (AG p) = True

  12. s s p = true (EX p) = True (AX p) = True

  13. s s [E(p U q)] = True p = true q = true [A(p U q)] = True Ovdjepmože i ne mora biti istinit

  14. CTL sintaksa • AU, EU - binarni operatori • ostali - unarni operatori • Neke ispravno definirane CTL formule: • AG (q  EG r) • EG p • E (p U q) • A (p U EFp) • AG (p  A [p U (p  A [p U q] ) ] ) • Neke krivo definirane formule CTL formule: • FG p ; Nema E ili A, t.j. F i G slijede iza E ili A • EF (r U q) ; U se može upariti samo sa A ili E • ; Npr. OK je: EF E(r U q), EF A(r U q) • A[ p U (q U r) ] ; Npr. OK je A[ p U E(q U r) ] • AF [(r U q)  (p U r)] ; Ispravno je: A( U ) • ; Npr.: A [(p  q) U (r  q)] • ; ili AF [A(r U q) E(p U r)]

  15. CTL semantika M = (S, R, L) - model sustava (Kripke struktura) M, s   formula vrem. Logikeje istinita u modelu M za stanje s M, s   formula vrem. logike nije istinita u modelu M za stanje s 1. M, s  p istinita akko p  L(s) (p je propozicijski atomički simbol) 2. M, s  ( 12) akko M, s 1 i M, s 2 3. M, s  ( 12 ) akko M, s 1 ili M, s 2 4. M, s  ( 12 ) akko M, s 1 ili M, s 2(implikacija) 5. M, s  AX  akko za sve si takve da s si vrijedi M, si (u svakom slijedećem stanju)

  16. 6. M, s  EX  ako za neki si takav da s  si ,vrijedi M, si • (u nekom slijedećem stanju) • 7. M, s  AG  akko za sve putove s1s2 s 3 …, • gdje s = s1 i svaki si duž puta , • vrijedi M, si • (za sve putove koji započinju u s, • obilježje  vrijedi globalno duž puta) • 8. M, s  EG  akko postoji put s1s2 s 3 …, • gdje s = s1 i za svaki si duž puta, • vrijedi M, si • (postoji put koji započinje u s, takav da • obilježje  vrijedi globalno duž puta) • 9. M, s  AF  akko za sve putove s1s2 s 3 …, • gdje s = s1 , postoji neki si duž puta • takav da vrijedi M, si • (za sve putove koji započinju u s, • postoji neko buduće stanje u kojem vrijedi • obilježje )

  17. 10. M, s  EF  akko postoji put s1s2 s 3 …, gdje s = s1, i za neki si duž puta vrijedi M, si (postoji put koji započinje u s takav da obilježje  vrijedi u nekom budućem stanju) 11. M, s  A(1 U 2) akko za sve putove s1s2 s 3 …, gdje s = s1, taj put zadovoljava (1 U 2). 1 je kontinuirano istinita dok se ne pojavi (2 = True) nekom stanju. Formula zahtijeva da bude (2 = True) u nekom budućem stanju. 12. M, s  E(1 U 2) akko postoji put s1s2 s 3 …, gdje je s = s1, i taj put zadovoljava (1 U 2). 1 je kontinuirano istinita dok se ne pojavi (2 = true) u nekom stanju. Formula zahtijeva da bude (2 = True) u nekom budućem stanju.

  18. 11. i 12. : 1 može biti istinit ili ne u i nakon stanja u kojem 2 = True (semantika "until" je različita od prirodnog jezika). 2 može biti istinit i prije početnog stanja s. Za 7. do 12. : Skup budućih stanja uključuje i sadašnje stanje (konvencija) Posljedica: p EF p (ako p vrijedi sada, EF p također vrijedi) (AG p) p p  A(q U p) Ove formule su istinite u svakom stanju svakog modela.

  19. Primjer modela: s0 t0 p, q p, q s0 s1 t1 s2 q, r r q, r r s2 s0 s2 t2 s1 s2 p, q r r s2 s1 t3 s2 q, r r r p, q, r - propozicijski simboli S0 - početno stanje ili stanje koje nas zanima

  20. Istinitevremenske formule za dani model (prethodna slika) i stanje s0 M, s0 (p  q) ; atomi p i q su istiniti u stanju s0 M, s0r ; atom r nije istinit u stanju s0 M, s0 EX (q  r) ; postoji put gdje je za slijedeće stanje vrijedi (q  r) M, s0AX (q  r) ; postoji jedan put na kojem ne vrijedi za slijdedeće stanje (q  r) M, s0EF (p  r) ; nema puta sa stanjem za koje vrijed (p  r) M, s0 AF r ; duž svih putova možemo dosegnuti stanje za koje vrijedii r M, s0 E [(p  q) U r] ; postoji put iz s0 na kojem u svim stanjima (p  q) = True, dok r=True (Npr. do s2) M, s0 A [p U r] ; na svim putovima vrijedi [p U r]

  21. Primjer formalne verifikacije (provjera modela, MC, engl. model checking) 2007 Turing Award Winners Announced for their groundbreaking work on Model Checking Edmund M. Clarke, E. Allen Emerson, and Joseph Sifakis are the recipients of the 2007 A.M. Turing Award for their work on an automated method for finding design errors in computer hardware and software. The method, called Model Checking, is the most widely used technique for detecting and diagnosing errors in complex hardware and software design. It has helped to improve the reliability of complex computer chips, systems and networks.

  22. CTL ekvivalencije AF  = EG  ; de Morgan AF  = EG  EG  = AF  AG  = EF  ; de Morgan AG  = EF  AX  = EX  ; X je vlastiti dual AX  = EX  AF  = A (True U ) = EG  EF  = E (True U ) EG  = [ A [True U ]] EG i slično je nedjeljivo, t.j. E G nije ispravna CTL formula ! Često notacija: A[p U q] = [p AU q] E[p U q] = [ p EU q] Temeljem gornjih ekvivalencija, za izračun svih CTL formula dovoljno je imati postupke za izračun EX, EG, EU = adekvatni skup (adequate set). Postoji više adekvatnih skupova.

  23. Primjeri preslikavanja prirodnog jezika u CTL • (specifikacija ponašanja - S) • 1. Moguće je doći u stanje gdje start=T i ready=F. • EF (start ready) • 2. Za svako stanje, ako se postavi zahtjev (npr. za nekim resursom) • biti će konačno prihvaćen (kad-tad). • AG ( zahtjev  AF prihvaćen) • 3. U svakom slučaju, određeni proces će konačno biti stalno zaustavljen • AF (AG zaustavljen) • 4. Iz svakog stanja moguće je doći do stanja "restart”. • AG (EF restart) • 5. Na putu prema gore, dizalo na drugom katu nikada neće promijeniti smjer gibanja, ako postoji putnik koji želi na peti kat. • AG[ ( kat=2  smjer=gore  pritisnuta_tipka_5)  • A (smjer=gore U kat=5) ]

  24. 6. Dizalo uvijek može ostati stalno stajati na trećem katu • sa zatvorenim vratima. • AG [ (kat=3  stoji  vrata=zatvoreno)  • EG (kat=3  stoji  vrata=zatvoreno) ] • 7. Kadgod in = 1, nakon dva takta uvijek out = 1 • AG (in  AX AX out) • 8. Uvijek vrijedi: ako se pojavi "send" onda konačno "receive” • postaje istinit, te do tog trenutka "send" mora ostati istinit • AG (send  A(send U receive))

  25. CTL PROVJERA MODELA (engl. CTL model checking) Za danu Kripke strukturu (usmjereni označeni graf) i određen skup početnih stanja S0 , provjeri da CTL formula zadovoljava za ta stanja: Formalno: M, S0  , t.j.  s0  S0M, s0  (za svako stanje iz S0) Postupak: Potrebno je pronaći sva stanja koja zadovoljavaju CTL formulu  , i ispitati da li je željeni podskup S0 uključen. CTL provjera modela povlači manipulaciju skupovima stanja.

  26. = "Iznutra prema van"

  27. (G includes present state) NE NE NE

  28. = AF  ne zadovoljava krajnja stanja Odgovor: Sva zelena stanja.

  29. Primjer 2: = specification = model (implementation)

  30. on all paths OK Does not hold because of this path

  31. (r  AF a) r Possibly add states with r r = AG  grey states with all paths to grey states

  32. Formalna verifikacija – Zaključci • Pokazana je samo jedna od mnogih formalnih metoda. • Implementacija sustava modelira se Kripke strukturom. Sustavi za verifikaciju (npr. SMV, VIS, SPIN, …) traže opis Kripke strukture u posebnim programskim jezicima. • Specifikacija željenog ponašanja izražava se CTL vremenskom logikom (u nekim sustavima i drugim vremenskim logikama). • Sustav za verifikaciju prolazi kroz sva stanja modela i provjerava da li model implementacije logički zadovoljava specifikaciju (engl. model checking). • Poteškoće: • Precizno izraziti željeno ponašanje i modelirati strukturu. • Sustav za verifikaciju provjerava uvijek samo jedno željeno specificirano ponašanje. • Programski produkti imaju ogroman skup stanja, pa je moguća provjera samo manjih (kritičnih) dijelova.

More Related