1 / 40

Verifik ácia časových automatov

Verifik ácia časových automatov. a. a. a. 1. 1. 1. 1. 2. 2. 2. 2. b. b. b. c. c. c. 3. 3. 3. 3. 4. 4. 4. 4. Validation & Verification Construction of models. Controller Program Discrete. Plant Continuous Discrete. sensors. Task. Task. Task. Model

rhett
Download Presentation

Verifik ácia časových automatov

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. Verifikácia časových automatov

  2. a a a 1 1 1 1 2 2 2 2 b b b c c c 3 3 3 3 4 4 4 4 Validation & VerificationConstruction of models Controller Program Discrete Plant Continuous Discrete sensors Task Task Task Model of tasks (automatic?) Task actuators Model of environment (user-supplied) Model

  3. Problem verifikácie pozostáva • Modelovací systém - je to obyčajne jazyk pre popis modelu • (jazyk môže byť textový ale aj grafický) • Jazyk na špecifikáciu vlastností modelu – je založený • na niektorom type temporálnej logiky • Metóda verifikácie - zisťuje či vytvorený model spĺňa danú • vlastnosť

  4. Verifikácia je proces určenia či model M spĺňa v stave s vlastnosť  M,s  kde  je formula vyjadrená v niektorom špecifikačnom jazyku Špecifikačný jazyk CTL (Computational Tree Logic) Nazýva sa tiež logika z časovým vetvením (branching-time logic). Jej model sa vyvíja v čase podľa stromovej štruktúry – má mnoho navzájom rôznych ciest, ktoré sa vetvia a z ktorých hociktorá môže byť pri budúcom vývoji modelu aktuálna. CTL je definovaná gramatikou: kde p je elementárny výrok (atóm) nedá sa ďalej rozložiť (príklady elementárnych výrokov: tlačiareň je obsadená, číslo 5 je nepárne, atď.)

  5. logická negácia logický súčin logický súčet logická implikácia AX, EX, AG, EG, AF, EF, AU, EU sú časové dvojice symbolov Prvý symbol je A alebo E, kde A znamená pre všetky cesty, E znamená existuje cesta ( v stromovej štruktúre modelu CTL) Druhý symbol je X, F, G, alebo U Kde X znamená nasledujúci stav F nejaký stav v budúcnosti G všetky stavy v budúcnosti U until od určitého stavu Pričom E[ 1U  2] značí EU(1, 2) a podobne A[ 1U  2] značí AU (1, 2)

  6. Formula je CTL formula ak platí: • symbolom X, F, G, U musí predchádzať A alebo E • za každým A alebo E musí nasledovať niektoré z X, F, G alebo U. • Pr. Nasledovné formuly sú formuly CTL: • EGr • AG(qEGr) nie je to isté ako AGqEgr • A[rUq] • EFE[rUq] • AG(pA[pU(pA[pUq])]) • Nasledovné formuly sú nie formuly CTL: • FGr • F[rUq] • EF(rUq) nie sú hranaté zátvorky • AEFr • A[(rUq) (pUr)] v hranatých zátvorkách môže byť formula v tvare • 1U 2 ale nie zložená formula, • 1, 2 ale už môžu byť zložené formuly.

  7. Priority pri vyhodnocovaní CTL formúl: • negácia, AG, EG, AF, EF, AX, EX • logický súčin a súčet • implikácia , AU, EU • Priority vyhodnotenia formuly možno zmeniť pomocou zátvoriek. • Formuly sa vyhodnocujú pomocou stromu vyhodnotenia. • Príklad: • A[AXpUE[EX(pq)U p]] • má strom vyhodnotenia:

  8. Strom vyhodnotenia A[AXpUE[EX(pq)U p]] AU EU AX  EX  p  p p q

  9. Definícia Formula  je podformula formuly  ak jej strom je podstromom . Podformuly A[AXpUE[EX(pq)U p]] sú: AXp, EX(pq), E[EX(pq)U p], pq, p Sémantika CTL Definícia Model M=(S,,L) pre CTL pozostáva s množiny stavov S  SS L: S P(atom) L(s) je množina atómov, ktoré platia v stave s

  10. Model CTL možno znázorniť orientovaným grafom, ktorého uzly obsahujú atómy, ktoré v danom stave platia a hrany tvoria prechody medzi stavmi. s0 p,q r q,r s2 s1 Obr.1

  11. M,s p iff p L(s) M,s  iff M,s   M,s   1 2 iff M,s   1 and M,s   2 M,s   1 2 iff M,s   1 or M,s   2 M,s   12 iff M,s   1 or M,s   2 M,s  AX iff pre všetky s1 také, že ss1 platí M,s1   M,s  EX iff existuje s1 také, že ss1 aplatí M,s1   M,s  AG iff pre všetky cesty začínajúce v s, platí v každom stave M,s  EG iff existuje cesta začínajúca v s a  platí v každom jej stave M,s  AF iff pre všetky cesty začínajúce v s, platí v niektorom stave v budúcnosti M,s  EF iff existuje cesta začínajúca v s a  platí v niektorom jej stave v budúcnosti M,s  A[ U ]iff pre všetky cesty začínajúce v splatí  dovtedy kým nezačne platiť  M,s  E[ U ]iff existuje cesta začínajúca v s a  platídovtedy kým nezačne platiť 

  12. Semantics of CTL f f f f f f f f f Formula AGf f

  13. Semantics of CTL f f f Formula EGf

  14. Semantics of CTL f f f f Formula AFf f

  15. Semantics of CTL f Formula EFf

  16. Semantics of CTL f f f f f y y y f y Formula A[f U y] y

  17. Semantics of CTL f f f f Formula E[f U y] y

  18. Graf z obr1. možno rozvinúť do grafu nekonečného stromu všetkých ciest- grafu dosiahnuteľnosti s0 p,q s1 s2 q,r r s0 s2 s2 p,q r r s1 s2 s2 q,r r r Obr.2

  19. Pre graf z obr.1 podľa rozvinutého grafu z obr. 2 vidno, že platia tieto formuly: M,s0  pq platí p aj q obsahuje stav s0 M,s0   r platí s0 neobsahuje r M,s0  EX (qr ) platí na ceste s0s1 s0 ..., na ktorej s1 obsahuje qr M,s0  AX (qr ) platí na všetkých cestách s0s2 s2 ... s2 obsahuje len r M,s2  EG r platí existuje cesta začínajúca v s2s2 s2 ... taká, že r platí vo všetkých nasledujúcich stavoch M,s2  AG r platí lebo cesta s2s2 s2 ... je len jedna M,s0  AFr platí pretože pre všetky cesty z s0 systém dosiahne s1 alebo s2 kde r platí M,s0  E[(pq)U r] platí lebo na ceste s0s2 s2 ... s2 spĺňa r a s0 spĺňa pq M,s0  A[p U r] platí lebo p platí v s0 a r platí v každom nasledujúcom stave s0

  20. Ekvivalencie medzi CTL formulami: de Morganové pravidlá: AF = EG  EF  = AG  AX = EX  Platia ekvivalencie: AF  A[true U  ] a EF  E[true U  ] A[p U q]  (E[ q U ( p q)]  EG  q) Umožňujú transformovať formuly CTL na sémanticky ekvivalentné formuly obsahujúce len AF, EU, EX.

  21. Niektoré dôležité vlastnosti systémov reálneho času: • Vzájomné vylúčenie dvoch procesov nad spoločnou oblasťou: • AG(c1c2) (bezpečnosť). • V každom stave procesu ak sa vyskytne požiadavka, tak v niektorom • z budúcich stavov bude splnená: AG (requestAF response) ( živosť). • Proces je schopný činnosti na každej trajektórii nekonečne často: • AG (AF enabled). • Žiaden proces nikdy nedosiahne mŕtvy stav (deadlock): • AF (AGdeadlock).

  22. Príklad:vzájomné vylúčenie procesov Niekoľko konkurentných procesov zdieľa spoločný zdroj napríklad file, disk, databázu, atď. Je nutné zaistiť, že nemajú k zdroju súčasný prístup. Pre každý proces určíme kritickú oblasť a zabezpečíme, že len jeden proces môže byť v danom čase v tejto oblasti. Kritická oblasť zabezpečuje procesu prístup k zdieľanému zdroju. Úloha je navrhnúť protokol, ktorý bude určovať, ktorý proces , v ktorom čase môže vstúpiť do kritickej oblasti. Protokol by mal mať vlastnosti: Bezpečnosť: Len jeden proces môže byť v každom čase v kritickej oblasti. Živosť: Vždy keď ktorýkoľvek proces bude chcieť vstúpiť do kritickej oblasti niekedy v budúcnosti mu to bude dovolené. Neblokácia: Proces môže vždy požadovať vstup do kritickej oblasti. Nesekvenčnosť: Procesy nemusia vstupovať do kritickej oblasti podľa poradia.

  23. Budeme modelovať dva procesy. n – nekritická oblasť t – oblasť pokusu vstúpiť do kritickej oblasti c – kritická oblasť Každý proces bude mať tieto prechody: nt n  ... Procesy sa v prechodoch môžu striedať ale nikdy sa neuskutočnia dva prechody súčasne. Bezpečnosť:1 = AG(c1c2) je splnená v každom stave Živosť:2 = AG (t1  AFc1) je nie splnená v počiatočnom stave. Existuje cesta s1 s3s7s1, na ktorej t1 platí ale AFc1 nie Neblokácia:3 = AG(n1  EXt1)je splnená stav n1 má nasledovný stav t1 (v s0, s5 a s6) Nesekvenčnosť:4 = EF(c1 E[c1 U (c1E[c2 U c1])]) je splnená napríklad na ceste s5s3 s4 s5  ...

  24. s0 n1n2 s1 s5 t1n2 n1t2 s3 s6 c1n2 n1c2 t1t2 s2 c1t2 t1c2 s7 s4 Vzájomné vylúčenie

  25. s0 n1n2 s1 s5 t1n2 n1t2 s6 c1n2 n1c2 s3 s2 s9 t1t2 t1t2 c1t2 t1c2 s7 s4 Vzájomné vylúčenie- je splnená aj vlastnosť živosti

  26. Real Timed Model Checking History System Description Timed Automata A Yes! Model Checker A sat F A sat F? Is A safe? Is A live? Is s1 reachable from s0? No! Diagnostic Information counterexamples Requirement Specification F LTL, CTL, TCTL 93 94 95 97 98 99 01 89 90 Epsilon TAB Regions Timed Automata Decidability HyTech Polyhedra UPPAAL Kronos Zones, DBM Minimal Constraints UPPAAL2k CDDs Alur & Dill

  27. Algoritmus verifikácie Vstup: model M a CTL formula  Výstup: množina stavov M splňujúcich  Značkovací algoritmus: Nech  je podformula  a stavy modelu splňujúce všetky priame podformuly  už boli označené. (Priama podformula je formula maximálnej dĺžky). Ktoré stavy modelu označkujeme podformulou ? Ak  je: - elementárny výrok p: označíme stav s s p ak p L(s). - 1 2: označíme stav s s 1 2 ak už bol označený s 1 a 2 - 1: označíme stav s s 1 ak ešte nebol označený s 1 - AF1:ak ktorýkoľvek stav je označený s 1 označíme ho s AF1 opakujeme: označíme každý s AF1 akvšetky jeho nasledujúce stavy sú označené s AF1. Viď obr.3.

  28. Basic labelling algorithm AFy y y AFy AFy y AFy Obr. 3 Labelling states with subformulas AFy

  29. E[1 U 2]: ak ktorýkoľvek stav s je označený s 2označíme ho s E[1 U 2]. • opakujeme: každý stav označený s 1, ktorý má aspoň jeden nasledujúci stav označený E[1 U 2] • označíme s E[1 U 2].Viď obr 4. • - EX1: každý stav, ktorého nasledujúci stav je označený s 1 označíme s EX1. • Značkovací algoritmus sa vykoná pre všetky podformuly , včítane  samotnej. Výsledkom sú stavy označené s .

  30. Basic labelling algorithm E[1U 2] E[1U 2] 1 1 E[1U 2] Obr.4 Labelling states with subformulas E[y1Uy2]

  31. Príklad: Algoritmus aplikujeme na model vzájomného vylúčenia dvoch procesov pre formulu E[c2 U c1]. Krok1: algoritmus označí všetky stavy spĺňajúce c1 s E[c2 U c1]. Sú to stavy s2 a s4. Krok 2: algoritmus označí všetky stavy, ktoré nespĺňajú c2 a majú už označený nasledujúci stav s E[c2 U c1]. Sú to stavy s1 a s3. Krok 3: označíme s0 s E[c2 U c1] lebo nespĺňa c2 a nasledujúci stav s1 je už označený. Algoritmus končí lebo ďalšie stavy sa nedajú už značkovať.

  32. s0 n1n2 E[c2U c1] s1 s5 t1n2 E[c2U c1] n1t2 s6 c1n2 E[c2U c1] n1c2 s3 s9 t1t2 E[c2U c1] t1t2 s2 c1t2 E[c2U c1] t1c2 s7 s4 Vzájomné vylúčenie- verifikácia E[c2 U c1]

  33. Cvičenia • Vytvorte strom vyhodnotenia pre nasledujúce formuly: • AG(q EG r)A[p U EF r] AG AU  p EF q EG r r

  34. 2. Určte či nasledovné formuly sú CTL a ak nie prečo? • FGr nie • AEFr nie lebo A nemôže byť pred CTL formulou, ktorá vždy • začína s A alebo E • A[(r U q)(p U r)] nie lebo gramatika CTL neobsahuje tvar • A[12] • AX q je • E[(AX q)U ((p)(p s))] je (F r)(AG q) nie je lebo F r je nie CTL formula 3. Napíšte zoznam podformúl formuly: AG(pA[p U (p  A[p U q])])

  35. Podformuly: p q  p A[ p U q]  p  A[ p U q] A[p U ( p  A[ p U q])] p  A[p U ( p  A[ p U q])] AG(p  A[p U ( p  A[ p U q])]) AG  p AU p  AU  p  q p

  36. 4. Pre nasledovný prechodový model M dokážte, že platí M,s0  pre nasledovné  a)  p  r b)  EG r s0 s3 • r L(s0)  M,s0  r and • M,s0   p  M,s0   p  r • b) Pretože M,s0  r a pretože • existuje cesta s0 s0  s0  ... • M,s0  EG r  M,s0 nespĺňa • EG r r p,q q,r p,t,r s2 s1

  37. 5. Aplikujte značkovací algoritmus na model vzájomného vylúčenia pre formulu  = EF(c1 E[c1 U (c1E[c2 U c1])]) Označenie podformúl: 1 = E[c2 U c1] 2 = c1 1 3 = E[c1 U 2] 4 = c1 3  = EF 4znamená, žeexistuje cesta na ktorej niekde platí 4

  38. s0 1 = E[c2 U c1] n1n2 1 s1 s5 t1n2 1 n1t2 1 s3 s6 c1n2 1 n1c2 t1t2 1 s2 c1t2 1 t1c2 s7 s4 Vzájomné vylúčenie

  39. s0 2 = c1 1 3 = E[c1 U 2] n1n2 12 3 s1 s5 t1n2 12 3 n1t2 12 3 s3 s6 c1n2 13 n1c2 t1t2 12 3 s2 c1t2 13 t1c2 s7 s4 Vzájomné vylúčenie

  40. s0 4 = c1 3 n1n2 12 3 s1 s5 t1n2 12 3 n1t2 12 3 s3 s6 n1c2 c1n2 13 4 t1t2 12 3 s2 c1t2 13 4 t1c2 s4 s7 Vzájomné vylúčenie - platí M,s0 

More Related