formalna verifikacija
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/1.jpg)
FORMALNA VERIFIKACIJAFORMALNA VERIFIKACIJA
profesor:dr Zoran Ognjanović
student:Branko Kalanović
213/07
![Page 2: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/2.jpg)
Sadržaj predavanjaSadržaj predavanja
primene formalnih jezika verifikacija klasični metod provere ispravnosti provera modela
![Page 3: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/3.jpg)
Primene formalnih jezikaPrimene formalnih jezika
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
![Page 4: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/4.jpg)
VerifikacijaVerifikacija
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
![Page 5: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/5.jpg)
VerifikacijaVerifikacija
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
![Page 6: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/6.jpg)
Klasični model provere ispravnostiKlasič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
![Page 7: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/7.jpg)
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;
}}}
Klasični model provere ispravnostiKlasični model provere ispravnosti
![Page 8: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/8.jpg)
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
nizovadugo trajanje provere čak i u ovako
jednostavnom primeru, u složenijim slučajevima vreme potrebno za proveru nije prihvatljivo
Klasični model provere ispravnostiKlasični model provere ispravnosti
![Page 9: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/9.jpg)
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
Klasični model provere ispravnostiKlasični model provere ispravnosti
![Page 10: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/10.jpg)
Klasični model provere ispravnostiKlasič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
![Page 11: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/11.jpg)
Klasični model provere ispravnostiKlasič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
![Page 12: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/12.jpg)
Provera modelaProvera modela
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)
![Page 13: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/13.jpg)
Provera modelaProvera modela
• 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
![Page 14: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/14.jpg)
Provera modelaProvera modela
• 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
![Page 15: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/15.jpg)
Provera modelaProvera modela
• 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, |= β
![Page 16: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/16.jpg)
Provera modelaProvera modela
• 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
![Page 17: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/17.jpg)
Provera modelaProvera modela
• 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 β
![Page 18: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/18.jpg)
Provera modelaProvera modela
– 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
![Page 19: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/19.jpg)
Provera modelaProvera modela
– (¬β)U α znači da β neće važiti u bilo kom momentu koji prethodi prvom momentu u kome važi α
![Page 20: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/20.jpg)
Provera modelaProvera modela
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
![Page 21: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/21.jpg)
Provera modelaProvera modela
• 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
![Page 22: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/22.jpg)
Provera modelaProvera modela
Koraci provere modela su:– modeliranje sistema
– zapisivanje osobine koja se proverava jezikom temporalne logike
– ispitivanje da li model zadovoljava tu formulu
![Page 23: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/23.jpg)
Provera modelaProvera modela
• 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)
![Page 24: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/24.jpg)
Provera modelaProvera modela
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)
![Page 25: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/25.jpg)
Provera modelaProvera modela
• 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)
![Page 26: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/26.jpg)
Provera modelaProvera modela
• 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
![Page 27: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/27.jpg)
Provera modelaProvera modela
• 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
![Page 28: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/28.jpg)
Provera modelaProvera modela
• 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
![Page 29: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/29.jpg)
Provera modelaProvera modela
• 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
![Page 30: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/30.jpg)
Provera modelaProvera modela
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
![Page 31: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/31.jpg)
Provera modelaProvera modela
• 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)
![Page 32: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/32.jpg)
Provera modelaProvera modela
• dokazano je da se za proizvoljno α može konstruisati Buhijev automat Aα koji prihvata tačno one reči koje opisuju modele koji zadovoljavaju α
![Page 33: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/33.jpg)
Provera modelaProvera modela
Primer – nedeterministički Buhijev automat
• automat za formulu FGp – ako i samo ako počev od nekog momenta važi p
![Page 34: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/34.jpg)
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;
}}}
Provera modelaProvera modela
![Page 35: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/35.jpg)
Provera modelaProvera modela
• 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)
![Page 36: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/36.jpg)
Provera modelaProvera modela
• : →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 je beskonačni niz stanja tako da važi i za
![Page 37: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/37.jpg)
Provera modelaProvera modela
• 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)
![Page 38: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/38.jpg)
Provera modelaProvera modela
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
![Page 39: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/39.jpg)
Provera modelaProvera modela
• 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
![Page 40: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/40.jpg)
Provera modelaProvera modela
• 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 α
![Page 41: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/41.jpg)
Provera modelaProvera modela
• 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
![Page 42: FORMALNA VERIFIKACIJA](https://reader033.vdocuments.net/reader033/viewer/2022061508/568142d1550346895daf2598/html5/thumbnails/42.jpg)
Provera modelaProvera modela
• 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 od i , tj izračunava se kao