Verifikcia asovch automatov Automat na npoje Mince Npoje
- Slides: 48
Verifikácia časových automatov
Automat na nápoje Mince Nápoje Interfejs s prostredím Spracovanie informácie Mince Tlačidlá
Spracovanie informácie coin-out done start drink cancel reset drink done coin-in M 1 ok M 2 request drink
Reprezentácia v tvare prechodového systému (konečný automat) M 1 0 coin-in/ ok 1 done cancel/ coin-out, reset M 2 drink-ready/done ok A C req-cofee/st-cofee B reset drink-ready/done req-tea/st-tea D
Zložený automat M 1 || M 2 drink-ready cancel/coin-out 1 C coin-in 0 A 0 C req-cofee/st-cofee 1 B cancel/coin-out req-tea/st-tea cancel/coin-out 1 D drink-ready 0 D
Je model navrhnutý korektne? Odpoveď dajú: simulácia nie vždy testovanie verifikácia vždy!!
Upravená reprezentácia M 1 0 lock coin-in/ ok 1 2 cancel/ coin-out, reset done M 2 drink-ready/done ok A C req-cofee/st-cofee, lock B reset drink-ready/done req-tea/st-tea, lock D
Zložený automat M 1 || M 2 drink-ready 2 C coin-in 0 A req-cofee/st-cofee 1 B cancel/coin-out req-tea/st-tea 2 D drink-ready
Validation & Verification Construction of models Controller Program Plant Continuous Discrete sensors Task actuators Model of environment (user-supplied) a b 1 2 3 4 c 1 a b 3 c Model 2 Model of tasks (automatic? ) 1 2 3 4 a 4 b c
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ť
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ď. )
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[ 1 U 2] značí EU( 1, 2) a podobne A[ 1 U 2] značí AU ( 1, 2)
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[r. Uq] EFE[r. Uq] AG(p A[p. U(p A[ p. Uq])]) Nasledovné formuly sú nie formuly CTL: FGr F[r. Uq] EF(r. Uq) nie sú hranaté zátvorky AEFr A[(r. Uq) (p. Ur)] v hranatých zátvorkách môže byť formula v tvare 1 U 2 ale nie zložená formula, 1, 2 ale už môžu byť zložené formuly.
Priority pri vyhodnocovaní CTL formúl: 1. negácia, AG, EG, AF, EF, AX, EX 2. logický súčin a súčet 3. implikácia , AU, EU Priority vyhodnotenia formuly možno zmeniť pomocou zátvoriek. Formuly sa vyhodnocujú pomocou stromu vyhodnotenia. Príklad: A[AX p U E[EX(p q)U p]] má strom vyhodnotenia:
Strom vyhodnotenia A[AX p U E[EX(p q)U p]] AU EU AX EX p p p q
Definícia Formula je podformula formuly ak jej strom je podstromom . Podformuly A[AX p U E[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
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. s 0 p, q r q, r s 2 s 1 Obr. 1
M, s |= p iff p L(s) M, s |= iff 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 s 1 také, že s s 1 platí M, s 1 |= M, s |= EX iff existuje s 1 také, že s s 1 a platí M, s 1 |= 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 s platí 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ť
Semantics of CTL Formula AG
Semantics of CTL Formula EG
Semantics of CTL Formula AF
Semantics of CTL Formula EF
Semantics of CTL Formula A[ U ]
Semantics of CTL Formula E[ U ]
Graf z obr 1. možno rozvinúť do grafu nekonečného stromu všetkých ciest- grafu dosiahnuteľnosti s 0 p, q s 1 s 2 q, r r s 0 s 2 p, q r r s 1 q, r s 2 s 2 r r Obr. 2
Pre graf z obr. 1 podľa rozvinutého grafu z obr. 2 vidno, že platia tieto formuly: M, s 0 |= p q platí p aj q obsahuje stav s 0 M, s 0 |= r platí s 0 neobsahuje r M, s 0 |= EX (q r ) platí na ceste s 0 s 1 s 0 . . . , na ktorej s 1 obsahuje q r M, s 0 |= AX (q r ) platí na všetkých cestách s 0 s 2 . . . s 2 obsahuje len r M, s 2 |= EG r platí existuje cesta začínajúca v s 2 s 2 . . . taká, že r platí vo všetkých nasledujúcich stavoch M, s 2 |= AG r platí lebo cesta s 2 s 2 . . . je len jedna M, s 0 |= AF r platí pretože pre všetky cesty z s 0 systém dosiahne s 1 alebo s 2 kde r platí M, s 0 |= E[(p q)U r] platí lebo na ceste s 0 s 2 . . . s 2 spĺňa r a s 0 spĺňa p q M, s 0 |= A[p U r] platí lebo p platí v s 0 a r platí v každom nasledujúcom stave s 0
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.
Niektoré dôležité vlastnosti systémov reálneho času: • Vzájomné vylúčenie dvoch procesov nad spoločnou oblasťou: AG (c 1 c 2) (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 (AG deadlock).
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.
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 c n . . . Procesy sa v prechodoch môžu striedať ale nikdy sa neuskutočnia dva prechody súčasne. Bezpečnosť: 1 = AG (c 1 c 2) je splnená v každom stave Živosť: 2 = AG (t 1 AFc 1) je nie splnená v počiatočnom stave. Existuje cesta s 1 s 3 s 7 s 1, na ktorej t 1 platí ale AFc 1 nie Neblokácia: 3 = AG(n 1 EXt 1) je splnená stav n 1 má nasledovný stav t 1 (v s 0, s 5 a s 6) Nesekvenčnosť: 4 = EF(c 1 E[c 1 U ( c 1 E[ c 2 U c 1])]) je splnená napríklad na ceste s 5 s 3 s 4 s 5 . . .
s 0 n 1 n 2 s 1 s 5 t 1 n 2 n 1 t 2 s 3 s 2 c 1 n 2 s 6 n 1 c 2 t 1 t 2 c 1 t 2 t 1 c 2 s 4 s 7 Vzájomné vylúčenie
s 0 n 1 n 2 s 1 s 5 t 1 n 2 n 1 t 2 s 6 s 2 c 1 n 2 s 3 t 1 t 2 c 1 t 2 n 1 c 2 s 9 t 1 t 2 t 1 c 2 s 7 s 4 Vzájomné vylúčenie- je splnená aj vlastnosť živosti
Real Timed Model Checking System Description Timed Automata A History Yes! Model Checker Asatsat A F? F Is A safe? Is A live? Is s 1 reachable from s 0? Requirement Specification F LTL, CTL, TCTL 89 90 Timed Automata Decidability Alur & Dill 93 94 95 No! Diagnostic Information counterexamples 97 98 99 01 Epsilon Hy. Tech UPPAAL Minimal UPPAAL 2 k TAB Polyhedra Kronos Constraints CDDs Regions Zones, DBM
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ý stav s AF 1 ak všetky jeho nasledujúce stavy sú označené s AF 1. Viď obr. 3.
Basic labelling algorithm AF AF Obr. 3 Labelling states with subformulas AF
-E[ 1 U 2]: ak ktorýkoľvek stav s je označený s 2 označí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 .
Basic labelling algorithm E[ 1 U 2] 2 1 1 E[ 1 U 2] Obr. 4 Labelling states with subformulas E[ 1 U 2]
Príklad: Algoritmus aplikujeme na model vzájomného vylúčenia dvoch procesov pre formulu E[ c 2 U c 1]. Krok 1: algoritmus označí všetky stavy spĺňajúce c 1 s E[ c 2 U c 1]. Sú to stavy s 2 a s 4. Krok 2: algoritmus označí všetky stavy, ktoré nespĺňajú c 2 a majú už označený nasledujúci stav s E[ c 2 U c 1]. Sú to stavy s 1 a s 3. Krok 3: označíme s 0 s E[ c 2 U c 1] lebo nespĺňa c 2 a nasledujúci stav s 1 je už označený. Algoritmus končí lebo ďalšie stavy sa nedajú už značkovať.
s 0 n 1 n 2 E[ c 2 U c 1] s 1 s 5 t 1 n 2 E[ c 2 U c 1] n 1 t 2 s 6 c 1 n 2 E[ c 2 U c 1] s 3 t 1 t 2 E[ c 2 U c 1] s 2 c 1 t 2 E[ c 2 U c 1] n 1 c 2 s 9 t 1 t 2 t 1 c 2 s 7 s 4 Vzájomné vylúčenie- verifikácia E[ c 2 U c 1]
Cvičenia 1. Vytvorte strom vyhodnotenia pre nasledujúce formuly: AG(q EG r) A[p U EF r] AG AU q p EF EG r r
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])])
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 p q
4. Pre nasledovný prechodový model M dokážte, že platí M, s 0 |= pre nasledovné a) p r b) EG r = AF r s 0 r p, t, r s 1 s 3 p, q a) r L(s 0) M, s 0 |= r and M, s 0 |= p r q, r b) Pretože M, s 0 |= r a pretože existuje cesta s 0 . . . M, s 0 |= EG r M, s 0 ╞∕ EG r s 2
s 0 r s 1 p, t, r s 2 s 1 s 2 s 0 s 1 q, r p, q s 2 s 3 s 0 s 1 s 2 s 1 s 3 s 2 s 0 s 1 s 1
5. Aplikujte značkovací algoritmus na model vzájomného vylúčenia pre formulu = EF(c 1 E[c 1 U ( c 1 E[ c 2 U c 1])]) Označenie podformúl: 1 = E[ c 2 U c 1] 2 = c 1 1 3 = E[c 1 U 2 ] 4 = c 1 3 = EF 4 znamená, že existuje cesta na ktorej niekde platí 4
1 = E[ c 2 U c 1] s 0 n 1 n 2 1 s 5 t 1 n 2 1 n 1 t 2 1 s 3 s 2 c 1 n 2 1 s 6 t 1 t 2 1 c 1 t 2 1 s 4 n 1 c 2 t 1 c 2 s 7 Vzájomné vylúčenie
s 0 2 = c 1 1 3 = E[c 1 U 2 ] n 1 n 2 1 2 3 s 1 t 1 n 2 1 2 3 s 5 n 1 t 2 1 2 3 s 2 c 1 n 2 1 3 s 6 t 1 t 2 1 2 3 c 1 t 2 1 3 s 4 n 1 c 2 t 1 c 2 s 7 Vzájomné vylúčenie
s 0 4 = c 1 3 n 1 n 2 1 2 3 s 1 t 1 n 2 1 2 3 s 5 n 1 t 2 1 2 3 s 2 c 1 n 2 s 6 t 1 t 2 1 2 3 1 3 4 c 1 t 2 1 3 4 s 4 n 1 c 2 t 1 c 2 s 7 Vzájomné vylúčenie - platí M, s 0 |=