1 / 42

FORMALNA VERIFIKACIJA

student: Branko Kalanović 213/07. FORMALNA VERIFIKACIJA. profesor: dr Zoran Ognjanović. Sadržaj predavanja. primene formalnih jezika verifikacija klasični metod provere ispravnosti provera modela. Primene formalnih jezika. prevo đ enje programskih jezika pretraživanje teksta

metta
Download Presentation

FORMALNA VERIFIKACIJA

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. student: Branko Kalanović 213/07 FORMALNA VERIFIKACIJA profesor: dr Zoran Ognjanović

  2. Sadržaj predavanja • primene formalnih jezika • verifikacija • klasični metod provere ispravnosti • provera modela

  3. Primeneformalnihjezika • prevođenje programskih jezika • pretraživanje teksta • skraćivanje komandi (rm ~, dir m*) • otkrivanje grešaka na štampanim pločama • prepoznavanje grafičke reprezentacije vrsta hromozoma

  4. Verifikacija • provera korektnosti nekog programa ili logičkog kola – ispunjavanje nekih unapred zadatih zahteva • sigurnost verifikacije nije apsolutna, ne može se garantovati potpuna korektnost, zbog uticaja spoljnih faktora na posmatrani sistem • verifikacija znatno utiče na povećanje pouzdanosti i skraćivanje ciklusa razvoja

  5. Verifikacija • cena savremenih programskih sistema za verifikaciju je poprilično velika • cena grešaka koje želimo izbeći primenom verifikacije još veća • poznati slučajevi grešaka: • pad satelita koji je NASA 1999. godine slala na Mars • pad evropske svemirske letelice Ariana • greške Intel procesora pri računici u pokretnom zarezu

  6. Klasični model provere ispravnosti • analiziranje rezultata za sve moguće ulazne vrednosti • nije primenljivo u opštem slučaju zbog velike složenosti objekata koji se testiraju

  7. Klasični model provere ispravnosti Primer - konvertovanje neoznačenih binarnih u dekadne brojeve #include <stdio.h> main(){ unsigned x = 0; int input; while( (input = getchar()) != EOF ) { if( input == ’0’ ) x = x*2; else if( input == ’1’ ) x = x*2+1; else if( input == ’\n’ ) { printf( "%u\n", x ); x = 0; }}}

  8. Klasični model provere ispravnosti • greška je moguća zbog ograničene dužine registra na 32 bita • sve aritmeticke operacije po modulu 2³² • klasični metod – provera redom svih binarnih nizova • dugo trajanje provere čak i u ovako jednostavnom primeru, u složenijim slučajevima vreme potrebno za proveru nije prihvatljivo

  9. Klasični model provere ispravnosti • varijanta klasičnog modela provere – ne koriste se svi ulazni podaci, već na inteligentan način odabrati test primere • pronalaženje pravilnosti u pojavama grešaka je često teško • formalna verifikacija nekih logičkih kola i programa se vrši programima kod kojih složenost izračunavanja ostaje dovoljno mala bez obzira na rast veličine problema

  10. Klasični model provere ispravnosti • ulazni podaci takvog programa su opisi objekata čiju korektnost proveravamo i odgovarajućeg zahteva • zahtev bi u našem primeru bila formula kojom se kaže da je izlaz uvek jednak dekadnoj vrednosti ulaznih bitova • automatski prevodilac transformiše programski kod u jednostavniju strukturu pogodniju za manipulaciju

  11. Klasični model provere ispravnosti • formalni opis programa zavisi od računara na kome se program izvršava • greška koju smo razmatrali u našem primeru se odnosi na pojavu 33. bita kod računara sa registrima dužine 32 bita • kod računara sa dužinom registra 64 bita pojava 33. bita ne bi prouzrokovala pojavljivanje greške

  12. Proveramodela • relativno novija oblast primene teorijskog računarstva • rešavanje opšteg problema: za dati model nekog sistema automatski proveriti da li ispunjava određeni zahtev • provera modela koristeći konačne automate – za reči beskonačne dužine • postoje različiti pristupi u kojima se specifikacija zahteva vrši sredstvima različitih temporalnih logika (CTL – Computational Tree Logic, LTL – Linear Time Logic itd)

  13. Proveramodela • LTL – Linear Time Logic – vremenska logika omogućava da se rezonuje o promeni nekog iskaza tokom vremena što je jedna od karakteristika prirodnog jezika • pored klasičnih logičkih veznika (¬, ∧, ∨, →, ↔) uvedeni su i temporalni operatori G, F, O, U • vreme se shvata kao da je diskretno i linearno sa početnim trenutkom

  14. Proveramodela • jedan takav model bi se definisao kao • – linearan diskretan skup vremenskih trenutaka ,,... • – valuacija koja svakom iskaznom slovu, a time i svakoj iskaznoj formuli dodeljuje istinitosnu vrednost u svakom vremenskom trenutku

  15. Proveramodela • relacija zadovoljivosti se definiše: • |= Gα ako i samo ako za svaki trenutak ,j ≥ 0, važi |= α • |= F α ako i samo ako za neki trenutak ,j ≥ 0, važi |= α • |= Oα ako i samo ako |= α • |= βU α ako i samo ako postoji k ≥ i tako da • |= α i za svako j za koje je i ≤ j < k, |= β

  16. Proveramodela • kaže se da model zadovoljava formulu ako formula važi u početnom trenutku • linearna diskretna vremenska logika – pogodna za opisivanje skupa svih izvršavanja nekog objekta i proučavanja njegovih osobina koje važe pri svim izvršavanjima • objekat je korektan ako sva njegova izvršavanja zadovoljavaju postavljene zahteve

  17. Proveramodela • formule koje se u verifikaciji često sreću: • α → F β - ako je α zadovoljena u nekom momentu, formula β će eventualno biti zadovoljena nakon tog momenta • G(α → F β) pojačava prethodni iskaz, tj. kaže se da prethodna formula važi u svakom svetu - posle svakog trenutka u kome važi α će postojati trenutak u kome će važiti β

  18. Proveramodela • GF α znači da će α važiti u beskonačno mnogo trenutaka • FG α znači da će α eventualno, u nekom budućem momentu, početi da zauvek važi • G(α → Gα) znači da ako α bude važila u nekom trenutku, onda će nakon njega važiti zauvek

  19. Proveramodela • (¬β)U α znači da β neće važiti u bilo kom momentu koji prethodi prvom momentu u kome važi α

  20. Proveramodela • Primer – dozvole za nedeljive resurse na operativnom sistemu • procesi koji traže resurs čekaju na “semaforu” • ako proces dovoljno dugo čeka - crveno svetlo, pre ili kasnije će dobiti pristup resursu - zeleno svetlo • neka je formula α zahtev za resursom a formula β realizacija zahteva

  21. Proveramodela • G(α → F β) znači da će svaki zahtev za resursom biti opslužen • neka je formula α početak rada procesa A a formula β kraj rada procesa B • (¬α) U β znači da završetak rada procesa B mora prethoditi početku rada procesa A

  22. Proveramodela • Koraci provere modela su: • modeliranje sistema • zapisivanje osobine koja se proverava jezikom temporalne logike • ispitivanje da li model zadovoljava tu formulu

  23. Proveramodela • formalan opis objekata se najčešće vrši pomoću mašina sa konačnim skupom stanja • tipični problemi provere modela su: • verifikacija elektronskih kola • komunikacijski protokoli • sistemi za kontrolu procesa (kontrolni aspekt u prvom planu, ne obrada podataka)

  24. Proveramodela • Osobine sistema koji se proveravaju dele se na: • dostižnost (reachability) – iskazuje da se neka situacija može ostvariti (vrednost promenljive će biti manja od 0) • sigurnost (safety) – iskazuje da se, pod određenim uslovima, nešto neće nikada dogoditi (proces A neće započeti sa radom ako se proces B ne završi)

  25. Proveramodela • dogodivost (liveness) – iskazuje da se, pod određenim uslovima, nešto ostvaruje pre ili kasnije, pri čemu se ne zna tačno kad (upućen zahtev za resursom će biti ispunjen) • pravičnost (fairness) – iskazuje da se, pod određenim uslovima, nešto ostvaruje ili ne ostvaruje beskonačno često (proces će neprestano zahtevati neki resurs)

  26. Proveramodela • sve ove osobine se mogu pogodno opisati sredstvima temporalne logike • na kraju je potrebno povezati opis objeka i opis zahteva • u tu svrhu ćemo koristiti teoriju apstraktnih mašina – automati nad beskonačnim rečima

  27. Proveramodela • automati nad baskonačnim rečima – Buhi automati – konačni automati • ispituju beskonačne reči, pa mogu izraziti eventualnost, važenje zauvek ili stalno ponavljanje neke osobine • beskonačne reči – njihovo prihvatanje se ne definiše kao zaustavljanje u nekom od završnih stanja

  28. Proveramodela • broj stanja konačan, a dužina reči beskonačna – postoje stanja u kojima se automat nalazi beskoknačno mnogo puta • kriterijum prepoznavanja reči je da se među stanjima koja se beskonačno mnogo puta ponavljaju nalazi bar jedno završno stanje

  29. Proveramodela • u nedeterminističkom slučaju – dovoljno je da postoji bar jedno izvršavanje u kome se bar jedno završno stanje pojavljuje beskonačno mnogo puta • od posebnog je značaja što je odlučiv problem da li je jezik prazan i ako automat prihvata beskonačne reči

  30. Proveramodela • Primer – Buhijev automat • je i početno i završno stanje • prihvata reči u kojima se nakon svakog pojavljivanja znaka a mora pojaviti i znak b

  31. Proveramodela • razmotrimo sad neki LTL model– svakom trenutku se može pridružiti skup iskaznih slova koja su u tom trenutku tačna • svaka formula α ima konačan broj iskaznih slova Prop(α) • ceo model se može shvatiti kao beskonačna reč na alfabetu P(Prop(α)) (P je oznaka za partitivni skup)

  32. Proveramodela • dokazano je da se za proizvoljno α može konstruisati Buhijev automat Aα koji prihvata tačno one reči koje opisuju modele koji zadovoljavaju α

  33. Proveramodela • Primer – nedeterministički Buhijev automat • automat za formulu FGp – ako i samo ako počev od nekog momenta važi p

  34. Proveramodela Primer - konvertovanje neoznačenih binarnih u dekadne brojeve (Buhijev automat) #include <stdio.h> main(){ unsigned x = 0; int input; while( (input = getchar()) != EOF ) { if( input == ’0’ ) x = x*2; else if( input == ’1’ ) x = x*2+1; else if( input == ’\n’ ) { printf( "%u\n", x ); x = 0; }}}

  35. Proveramodela • mašina sa konačnim skupom stanja - četvorka oblika • – konačan skup stanja (opisuje stanja u kojima se objekat može naći tokom rada) • ∈– početno stanje • – relacija dostižnosti između stanja (način prelaska iz jednog u drugo stanje)

  36. Proveramodela • :→P(ø) – interpretacija – svakom stanju pridružuje skup iskaznih slova koja važe u njemu • pretpostavlja se da ako se izvršavanje nekog objekta završava, onda zauvek ostaje u stanju u kom se našao na kraju rada • neka jebeskonačni niz stanja tako da važi i za

  37. Proveramodela • tada je izračunavanje za • izračunavanje u zadovoljava formulu α ako |= α • zadovoljava α ako sva izračunavanja za zadovoljavaju α • se može shvatiti i kao nedeterministički Buhijev automat oblika Ap =[ , , , P(ø), δ] • funkcija prelaza je definisana tako da važi • s`∈ δ(s, a) ako i samo ako (s, s`) ∈ , a = v(s)

  38. Proveramodela • Primer - konvertovanje neoznačenih binarnih u dekadne brojeve – jedna implementacija • stanja su sve moguće vrednosti promenljive x • za svaku vrednost v funkcija prelaza vodi do stanja 2v, 2v+1, 0 i v u zavisnosti od toga da li je učitani znak input jednak 0, 1, \n ili bilo kom drugom znaku

  39. Proveramodela • kako je skup završnih stanja jednak skupu svih stanja – svakim beskoknačnim nizom stanja prihvata se neka beskonačna reč alfabeta P(ø) tj. neko izračunavanje od • zato je L(Ap) skup svih izračunavanja za – skup potencijalnih modela nekih formula

  40. Proveramodela • formalizam Buhijevih automata povezuje opis zahteva i opis objekta za koji se proverava da li zahtev važi • problem verifikacije se odnosi na ispitivanje da li sistem opisan mašinom sa konačnim skupom stanja zadovoljava neku formulu α • što se svodi na proveru da li izračunavanja koja prihvata Ap zadovoljavaju formulu α

  41. Proveramodela • odnosno da li je L(Ap)L(Aα) • što se može preformulisati u L(Ap ) ∩ L(Aα ) = L(Ap ) ∩ L(A¬α ) = ∅ • što je odlučiv problem

  42. Proveramodela • dokazano je da se provera modela za logiku LTL može izvršiti u vremenu • - veličina modela • - veličina formule • je veoma velik, a relativno mala pa je vreme provere je prihvatljivo • vreme provere za CTL logiku linearno zavisi odi , tj izračunava se kao

More Related