260 likes | 447 Views
Formal na verifi k a cija provjerom modela. DA, implementacija zadovoljava specifikaciju. I = Implementa cija ( model sustava koji želimo verificirati ). Sustav za verifikaciju. N E, implementacija ne zadovoljava specifikaciju ( i ispis pogrešnog ponašanja ). (automatizirani alat).
E N D
Formalna verifikacija provjerom modela DA, implementacija zadovoljava specifikaciju I = Implementacija (modelsustava koji želimo verificirati) Sustav za verifikaciju NE, implementacija ne zadovoljavaspecifikaciju (i ispis pogrešnog ponašanja) (automatizirani alat) S = Specifikacija željenog ponašanja izražena u vremenskoj logici CTL ili LTL. zadovoljava = logička zadovoljivost (engl. satisfiability) I = S
PROPOZICIJSKA LINEARNA VREMENSKA LOGIKA • (engl. Propositional Linear Temporal Logic) • PLTL(najčešće samoLTL) • Pretpostavka primjene (vrijede i za CTL): • Promatramo sustave koji se mogu modelirati strojevima s konačnim brojem stanja. • Promatramo reaktivne programe (neterminirajuće) – kontinuirano reagiraju na okolinu (operacijski sustavi, sustavi upravljanja procesima i sl.). • Analiza ponašanja duž potencijalno beskonačnih putovaizvođenja (engl. computations).
si sk • Kontekst CTL vremenske logike: • Kripke struktura (model M) promatra se kao beskonačno stablo počevši od početnog stanja s0 (“stablo se odmota”). • U svakom stanju moguć je prijelaz u jedno od mogućih više stanja. • Eksplicitno se kvantificiraju svi putovi izvođenja ( A ) ili barem jedan put izvođenja ( E ). • Formula CTL vremenske logike je istinita ako je istinita barem za jedan put izvođenja (E) ili za sve putove izvođenja (A).
Primjer modela: S0- početno stanje 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 sekvenca 1 sekvenca 2
Kontekst LTL vremenske logike: • Kripke struktura (model M) se dekomponira u pojedinačne beskonačnesekvence - putove izvođenja programa. • Ponašanje sustava je kolekcija beskonačnih sekvenci prijelaza (engl. infinite transition sequences) stanja. • Svako stanje u pojedinoj sekvenci ima samo jednog sljedbenika. • sekvenca 1:s0 s1 s0 s1 s0 s1 … • sekvenca 2:s0 s1 s2 s2 s2 s2 … • sekvenca n: . . . • LTL formula je istinita za neki sustav (Kripke strukturu) ako vrijedi za sve pojedinačne putove izvođenja (za sve sekvence) toga sustava. Kvantifikator “A” je implicitan. Nema kvantifikatora “E”. • Jedna beskonačna sekvenca s početnim stanjem i označavanjem propozicijskih simbola koji vrijede u pojedinim stanjima jeLinearna vremenska struktura. • LTL formule se interpretiraju po beskonačnim sekvencama – putovima izvođenja (linearnim vremenskim strukturama).
LTLdefinicija linearne vremenske strukture • Vremenska crta (engl. time line), put, izvođenje, izračunavanje. • Vremenska crta je totalno uređen skup stanja {S,<} (diskretan, početni trenutak bez prethodnika, beskonačan u budućnost). • AP: skup atomičkih propozicijskih simbola • Linearna vremenska struktura dana je trojkom =(S, x, L) • S: konačan skup stanja • x: N S beskonačna sekvenca stanja (x=s0,s1,...) • L: S 2APoznačavanje stanja skupom propozicijskih simbola. • Primjer:
LTL U sustavu promatramo linearne vremenske strukture. Uporaba vremenskih operatora (bez kvantifikatora): Fp( “sometime p”, “eventually p”, “finally p”) - konačno Gp( “always p”, “henceforth p”) - uvijek Xp( “next time p”) - u slijedećem koraku pUq(“p until q”) - p dok q Provjera modela: provjeravamo sve zasebne putove u Kripke strukturi (kvantifikator A je implicitan).
LTL – Formalna sintaksa - 1 (1) Atomičke propozicije su formule. (2) Ako su piqformule, tada p q, ¬p , p U q, Xpsu formule. Ostale formule mogu se izvesti ekvivalencijama: p Ú q ekvivalentan oblik ¬(¬p Ù ¬q), p Þ q ekvivalentanoblik ¬p Ú q, p º q ekvivalentanoblik (p Þ q) Ù (q Þ p), true ekvivalentanoblikp Ú ¬p, false ekvivalentanoblik ¬true, Fp ekvivalentanoblik (true U p), Gp ekvivalentanoblik ¬F¬p.
LTL – Formalna sintaksa - 2 • Prioritet operacija (od najčvršćih 1. do najmanje čvrstih 5.): • Unarni operatori (, X, F, G) povezuju najčvršće • U - binarni operator • - konjunkcija • - disjumkcija • - implikacija • Primjer suvišnih zagrada: • (F (p (G r)) ((q) U p)) F (p G r) q U p • Preporuka: upotrebljavaj zagrade iako mogu biti suvišne.
LTL – Formalna sintaksa - 3 LTL dozvoljava booleove kombinacije i ugnježđivanje vremenskih operatora (CTL ne dozvoljava). Neke ispravno definirane LTL formule: (GFp Fq), (p U (q U r)), XXG p p Fq- ako je p istinit sada, u budućem trenutku biti će istinit q G (p Fq) - kadgod je p istinit, q će biti istinit u budućem trenutku, Npr.: G (request F acknowledge) [ p G (p Xp) ] G p - ako je p istinit sada, i kadgod je p istinit onda je istinit i u slijedećem trenutku, povlači da je p uvijek istinit (tautologija ) Sintaktički neispravne PLTL formule: Ur (U je binarni operator), pGq (G je unarni operator)
LTL – Formalna sintaksa - 4 Distribucija preko logičkih vezica G (p q) (G p G q) (p q) U r ((p U r) (q U r)) analogno za X, F U CTL takva distribucija nije dozvoljena, CTL: A[(p q) U r ] u CTL ispravne formule (svaka za sebe) Rekurzivni izrazi (sadašnje stanje je uključeno) F p p XF p G p p XG p (p U q) q (p X (p U q))
LTL - Semantka Formuladana u vremenskoj logiciLTLima značenje u odnosu na jednu linearnu vremensku strukturu=(S, x, L). , x= - u strukturi formula je istinita za vremensku crtu x. Crta (put) xzadovoljava (=) formulu. Gdje je: x - put (vremenska crta) započinje u s0 , x = s0, s1, … xi - put (vremenska crta) započinje u si, xi = si, si+1, ... , x = aakkoa L(s0),atomička propozicija a je istinita u s0. , xi= bakkob L(si),atomička propozicija b je istinita u si. , x =akko, x |= i , x |= , x = ¬akko put x u strukturi ne zadovoljava , x = U akkoi (xi=) ik < i (xk= )) , x = Xakko x1= u slijedećem stanju je =T , x = Fakkoi (xi=) postoji neko stanje gdje je =T , x = Gakkoi (xi=) u svakom stanju =T Konvencija: sadašnje stanje je uključeno u buduće stanje.
LTL – modaliteti beskonačnosti(engl. Infinitary modalities) P =propozicijska formula u PLTL Fp GF p “globally finally p”, “infinitely often p” s0 s1 s2 s3 s4 s5 s6 s7 … p pp p p pp pp … “infinitely often p” (“beskonačno često se pojavljuje p”) "Koliko god idemo daleko po putu (G) uvijek će p biti ispred nas," G p FG p “finally globally p”, “almost everywhere p” s0 s1 s2 s3 s4 s5 s6 s7 … p p p p pppp finitep infinite p “Konačno globalno p”, nakon konačnog broja stanja u kojime p ne mora bit istinit, slijedi beskonačan niz stanja u kojima je p=TRUE.
Primjeri za model sa slike 4: Put iz S0: S0 S1 S0 S1 S0 S1 … - zadovoljava LTL formulu GF p. - zadovoljava LTL formulu (GF p GF r). - zadovoljava LTL formulu (GF r GF p). Put iz S0: S0 S2 S2 S2 S2 S2 … - NE zadovoljava LTL formulu GF p. - zadovoljava LTL formulu FG r. Provjera modela(svi putovi moraju zadovoljiti LTL formulu) M, S0 = G(p r) - zadovoljava, nema stanja u kojem je (p r) M, S0 = F(q r) FG r "Ako na bilo kojem putu iz S0 dosegnemo stanje u kojem je zadovoljeno (q r)tada taj put zadovoljava FG r." - zadovoljava, stanje u kojem je (q r)je stanje S2 i nakon toga Gr.
Signifikantne valjanosti Vrijede za sve linearne vremenske strukture =(S, x, L) Neka sup, qformule u PLTL. G p F p F p G p X p X p GF p FG p FG p GF p GF = Fp - “beskonačno često p FG = G - “konačno (nakon nekog vremena) globalno (stalno)p” p F p G p p X p F p G p X p G p F p G p XG p p U q F q FG q GF q (ako nakon nekog stanja glob. q, tada i besk. često q)
LTL – primjeri preslikavanja: • Nije moguće doći u stanje gdje je start istinito a spreman nije istinito. • G(start spreman) • 2. Za svako stanje vrijedi: ako se pojavi zahtjev, on će konačno biti prihvaćen. • G(zahtjev F prihvaćen) • 3. Neki proces je omogućen beskonačno često na svim putovima izvođenja. • GF omogućen • U svakom slučaju, određeni proces će permanentno biti zaustavljen. • FG zaustavljen • 5. Iz svakog stanja sustava moguće je doći u stanje gdje vrijedi reset. • To se ne može izreći LTL logikom, jer LTL ne može izravno potvrditi postojanje (moguće) nekog određenog puta ili putova (to naravno može CTL kvantifikatorima A i E). Vidi kasnije objašnjenje.
LTL – primjeri preslikavanja: • 5. Iz svakog stanja sustava moguće je doći u stanje gdje vrijedi reset. • 6. Lift može ostati stajati na … • To se ne može izreći LTL logikom, jer LTL ne može izravno potvrditi postojanje (moguće, može) nekog određenog puta ili putova (to naravno može CTL kvantifikatorima A i E). • Problem se djelomično može riješiti negacijom upita: • Provjera da li postoji put iz s koji zadovoljava LTL formulu svodi se na provjeru da li svi putovi zadovoljavaju (vidi primjer 1 na slici 16). • Ako svi putovi zadovoljavaju , ne postoji put koji zadovoljava . • Međutim provjera značajki sustava u kojem postoje miješani egzistencijski i univerzalni kvantifikatori ne može se riješiti na gornji način (negacija opet daje miješanje E i A).
Ostale inačice (proširenja) LTL p, q : LTL formule 1. LTL s konačnim vremenskim strukturama (gledamo samo dio puta). 2. Promjena semantke modaliteta: 2.1. (p U q) je istinita sve dok vrijedi (p q), t.j. q može stalno biti neistinit (“weak until”), t.j. ne mora biti istinit u budućnosti. 2.2. (p U q) je istinita akko u budućem trenutku (ne sada) q je istinit (q mora biti istinit striktno u budućnosti). 3. Proširenje s logikom predikata prvoga reda (FOLTL) 4. Proširenje s prošlim vremenom (PTLTL) - “past tense ...” . . .
Usporedba CTL i LTL – 1 • Različita i neusporediva snaga izražavanja (ekspresivnost). • CTL eksplicitno kvantificira putove pa bi se moglo reći da je izražajnija od LTL. • S duge strane, LTL može selektirati svepojedinačne putoveiz nekog stanja koji zadovoljavaju LTL formulu pa bi se moglo reći da je izražajnija. • Neke formule u CTL nije moguće izraziti u LTL-u i obratno. • U LTL-u su složenije procedure provjere modela ali jednostavnije neke druge procedure (npr. valjanost). • U LTL dozvoljena distribucija preko logičkih vezica i ugnježđivanje vremenskih operatora (u CTL ne).
Usporedba CTL i LTL - 2 • CTL formula AG(EF p) = “kamo god krenemo možemo doći (postoji bar jedan put) do stanja gdje je p istinit” nema ekvivalenta u LTL. • Primjer: Neka je LTL formula takva da je A[] navodno ekvivalentno AG(EF p), t.j. za sve putove. • Za model kao na slici: s0 • kao LTL ne vrijedi za put (beskonačnu petlju) stalno u s0 (izdvojen put) jer mora vrijediti za sve pojedinačne putove. • = AG(EF p) kao CTL formula vrijedi jer EFp vrijedi za oba stanja.
Usporedba CTL i LTL - 3 7. LTL formula FG pnije ekvivalentna CTL formuli AF (AG p) FG p = "po svim putovima vrijedi konačno globalno (stalno) p" AF (AG p) = "na svim putovima uvijek dolazimo konačno do stanja iz kojega po svim putovima je stalno p=T." U prikazanom modelu FG pvrijedi za sva stanja, a AF (AG p) ne vrijedi. s1 FG p – na svim pojedinačnim putovima dolazimo bilo kako do stanja nakon kojega je stalno p=TRUE. AF (AG p) je striktno jači zahtjev. AGp vrijedi samo za S1. Iz S postoji put natrag na S i nikad ne dođe u S1.
CTL* potpuna logika vremenskog grananja Unificirajuća struktura za CTL i LTL. Dozvoljeno: Booleove kombinacije F, G, X, U Ugnježđivanje prije primjene E, A Npr.: A [( p U r) (q U r) ] (ne mora po istom putu) Duž svih putova p je istinito do r, ili q je istinito do r. Nije CTL jer A mora biti uz svaki U. Nije ekvivalentno A [( p q) U r) ] u CTL logici. U LTL-u vrijedi samo ako vrijedi za sve pojedinačne putove A[]. Npr.: E ( GF p) Postoji put na kojem je p istinit beskonačno često. Nije LTL jer “E”. Nije EG EF p u CTL-u (kad jednom p=T, ne mora više dalje biti istinit). Npr.: A [X p XX p] Duž svih putova, p je istinito u slijedećem stanju, ili u prvom stanju nakon slijedećeg. Nema CTL ekvivalenta. LTL samo ako vrijedi za sve putove modela.
CTL* potpuna logika vremenskog grananja S1: Svaki atomički sud formula stanja. S2: Ako su p, q formule stanja, također su to p, p q, p q. S3: Ako je p formula puta, tada su Ep, Ap formule stanja. P1: Svaka formula stanja je također i formula puta. P2: Ako su p, q formule puta , također su to p, p q, p q. P3: Ako su p, q formule puta, također su to Xp, p U q. Ostali operatori izvedeni: EFp = E( true U p) AFp = A( true U p) AGp = EF p EGp = AF p CTL je restriktivni CTL*, gdje su P1, P2, P3 zamijenjeni s P0: P0: Ako su p, q formule stanja, tada su Xp, (p U q) formule puta. LTL form. je ekvivalentna CTL* form. A[] ako vrijedi za sve putove. LTL dozvoljava ugnježđivanje booleovih vezica i modaliteta. CTL ne dozvoljava booleove komb. formula puta ni ugnj. modaliteta.
CTL* potpuna logika vremenskog grananja CTL* E[ GF p ] CTL LTL AG EF p [GFp Fq] AG (p AF q) - CTL G(p F q) - LTL
Objašnjenja s prethodne slike • AG EFp: iz svakog stanja možemo doći u stanje gdje je p=T. • CTL, ali nije u LTL (ranije pokazano). • [GF p F q]: Ako postoji beskonačno često p=T, • konačno će se pojaviti q=T. • Npr. beskonačno česti REQ implicira konačno ACK. • LTL, ali ne CTL (nepristranost se ne može izravno izraziti u CTL-u, vidi ranije o CTL-u). • E[ GF p ]: Postoji put s beskonačno često p=T • CTL*, ali nije u CTL (nema beskonačno često), • nije LTL jer LTL ekvivalentan CTL* formuli A[], a ovdje egzistencijski operator • AG (p AF q)CTL, svaki p=T će konačno slijediti sa q=T • G (p F q)LTL, ako vrijedi u M za svaki put posebno