formalna verifikacija

42
FORMALNA VERIFIKACIJA FORMALNA VERIFIKACIJA profesor: dr Zoran Ognjanović student: Branko Kalanović 213/07

Upload: metta

Post on 10-Jan-2016

68 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: FORMALNA VERIFIKACIJA

FORMALNA VERIFIKACIJAFORMALNA VERIFIKACIJA

profesor:dr Zoran Ognjanović

student:Branko Kalanović

213/07

Page 2: FORMALNA VERIFIKACIJA

Sadržaj predavanjaSadržaj predavanja

primene formalnih jezika verifikacija klasični metod provere ispravnosti provera modela

Page 3: FORMALNA VERIFIKACIJA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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