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

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

  • Upload
    argus

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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

1

I = Implementacija (model sustava koji se verificira). Izraženo povezanim strojevima s konačnim brojem stanja (FSM).

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

Sustav za verifikaciju(npr. SMV)

DA = model sustava logički zadovoljava specifikaciju

NE (+ ispis pogrešnog izvođenja programa)

I S

FORMALNA VERIFIKACIJA PROGRAMSKE POTPORE METODOM PROVJERE MODELA

(engl. Model Checking)

Simbolički opisujemo:

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

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će p) = 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.

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

3

Klasifikacija modalne logike

Prema tipu modalnosti razlikujemo logike:

Aletička logika potrebitost, mogućnostDeontička logika: obligatornost (nužnost), dozvoljivostEpistemička logika: znanje, vjerovanjeVremenska 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.

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

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 vremenskihcrta.

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 sustavimauobičajeni su samo operatori budućeg vremena.

Odabiremo: propozicijska, globalna, grananje, buduće vrijeme

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

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čan skup stanja

R S × S : totalna binarna relacija (svako stanje je obuhvaćeno; ima sljedbenika), t.j.sS ( tS | (s, t)R )

L : funkcija označavanja stanja: S 2AP

AP: skup atomičkih propozicijskih simbolaL: (engl. labeling) daje interpretaciju svih simbola iz skupa AP za stanje s.

Analogno i formalno jednako modelu automata (stroju stanja).

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

6

početno

Tipičan primjer Kripke strukture (modela sustava):

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

7

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.

si

sk

To je kontekst vremenske logike s grananjemComputation Tree Logic = CTL

mogući prijelazi

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

8

s0

s1 s2

p, q

q, r r

p, q

q, r

p, q

q, r

r

rr

r r

s0

s2

s2

s1

s0

s1 s2s2

s2

t0

t1

t2

t3

p, q, r - propozicijski simboli (istiniti u određenim stanjima).

S0 - početno stanje ili stanje koje nas zanima.

Primjer modela:

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

9

CTL vremenski operatori

(u kontekstu “odmotane” Kripke strukture):

Quantifiers:

Operators:

PAZI:Uvijek u paru !!

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

10

Za model M (Kripke strukturu) i stanje S,

uvijek se mora specificirati

formula može imati slijedeću semantiku:

s

s

p = true

(EF p) = True

(AF p) = True

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

11

s

s

p = true

(EG p) = True

(AG p) = True

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

12

s

sp = true

(EX p) = True

(AX p) = True

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

13

s

sOvdje p može i ne mora biti istinit

p = trueq = true

[E(p U q)] = True

[A(p U q)] = True

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

14

CTL sintaksa

AU, EU - binarni operatori

ostali - unarni operatori

Neke ispravno definirane CTL formule:AG (q EG r)EG pE (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 AEF (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)]

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

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)

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

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 )

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

17

10. M, s EF akko postoji put s1 s2 s 3 …, gdje s = s1, i za neki si duž putavrijedi 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.

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

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) pp A(q U p)

Ove formule su istinite u svakom stanju svakog modela.

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

19

s0

s1 s2

p, q

q, r r

p, q

q, r

p, q

q, r

r

rr

r r

s0

s2

s2

s1

s0

s1 s2s2

s2

t0

t1

t2

t3

p, q, r - propozicijski simboli

S0 - početno stanje ili stanje koje nas zanima

Primjer modela:

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

20

Istinite vremenske 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]

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

21

Primjer formalne verifikacije

(provjera modela, MC, engl. model checking)

2007 Turing Award Winners Announcedfor 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.

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

22

CTL ekvivalencije

AF = EG ; de MorganAF = EG EG = AF AG = EF ; de MorganAG = EF AX = EX ; X je vlastiti dualAX = 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.

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

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) ]

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

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))

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

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 S0 M, 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.

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

26

= "Iznutra prema van"

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

27

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

28

(G includes present state)

NENE

NE

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

29

krajnja stanja

ne zadovoljava

Odgovor: Sva zelena stanja.

= AF

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

30

= specification

= model (implementation)

Primjer 2:

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

31

on all paths

Does not holdbecause of this path

OK

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

32

(r AF a)

r

r

grey states with all paths to grey states

Possibly add states with r

= AG

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

33

Formalna verifikacija – ZaključciPokazana je samo jedna od mnogih formalnih metoda.

1. Implementacija sustava modelira se Kripke strukturom. Sustavi za verifikaciju (npr. SMV, VIS, SPIN, …) traže opis Kripke strukture u posebnim programskim jezicima.

2. Specifikacija željenog ponašanja izražava se CTL vremenskom logikom (u nekim sustavima i drugim vremenskim logikama).

3. 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.