400 likes | 507 Views
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
E N D
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
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[ 1U 2] značí EU(1, 2) a podobne A[ 1U 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(qEGr) nie je to isté ako AGqEgr • A[rUq] • EFE[rUq] • AG(pA[pU(pA[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.
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[AXpUE[EX(pq)U p]] • má strom vyhodnotenia:
Strom vyhodnotenia A[AXpUE[EX(pq)U p]] AU EU AX EX p p p q
Definícia Formula je podformula formuly ak jej strom je podstromom . Podformuly A[AXpUE[EX(pq)U p]] sú: AXp, EX(pq), E[EX(pq)U p], pq, p Sémantika CTL Definícia Model M=(S,,L) pre CTL pozostáva s množiny stavov S SS 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. s0 p,q r q,r s2 s1 Obr.1
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 12 iff M,s 1 or M,s 2 M,s AX iff pre všetky s1 také, že ss1 platí M,s1 M,s EX iff existuje s1 také, že ss1 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ť
Semantics of CTL f f f f f f f f f Formula AGf f
Semantics of CTL f f f Formula EGf
Semantics of CTL f f f f Formula AFf f
Semantics of CTL f Formula EFf
Semantics of CTL f f f f f y y y f y Formula A[f U y] y
Semantics of CTL f f f f Formula E[f U y] y
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
Pre graf z obr.1 podľa rozvinutého grafu z obr. 2 vidno, že platia tieto formuly: M,s0 pq platí p aj q obsahuje stav s0 M,s0 r platí s0 neobsahuje r M,s0 EX (qr ) platí na ceste s0s1 s0 ..., na ktorej s1 obsahuje qr M,s0 AX (qr ) platí na všetkých cestách s0s2 s2 ... s2 obsahuje len r M,s2 EG r platí existuje cesta začínajúca v s2s2 s2 ... taká, že r platí vo všetkých nasledujúcich stavoch M,s2 AG r platí lebo cesta s2s2 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[(pq)U r] platí lebo na ceste s0s2 s2 ... s2 spĺňa r a s0 spĺňa pq M,s0 A[p U r] platí lebo p platí v s0 a r platí v každom nasledujúcom stave s0
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(c1c2) (bezpečnosť). • V každom stave procesu ak sa vyskytne požiadavka, tak v niektorom • z budúcich stavov bude splnená: AG (requestAF 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).
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: nt n ... Procesy sa v prechodoch môžu striedať ale nikdy sa neuskutočnia dva prechody súčasne. Bezpečnosť:1 = AG(c1c2) je splnená v každom stave Živosť:2 = AG (t1 AFc1) je nie splnená v počiatočnom stave. Existuje cesta s1 s3s7s1, 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 (c1E[c2 U c1])]) je splnená napríklad na ceste s5s3 s4 s5 ...
s0 n1n2 s1 s5 t1n2 n1t2 s3 s6 c1n2 n1c2 t1t2 s2 c1t2 t1c2 s7 s4 Vzájomné vylúčenie
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
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
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 - AF1:ak ktorýkoľvek stav je označený s 1 označíme ho s AF1 opakujeme: označíme každý s AF1 akvšetky jeho nasledujúce stavy sú označené s AF1. Viď obr.3.
Basic labelling algorithm AFy y y AFy AFy y AFy Obr. 3 Labelling states with subformulas AFy
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. • - EX1: každý stav, ktorého nasledujúci stav je označený s 1 označíme s EX1. • Značkovací algoritmus sa vykoná pre všetky podformuly , včítane samotnej. Výsledkom sú stavy označené s .
Basic labelling algorithm E[1U 2] E[1U 2] 1 1 E[1U 2] Obr.4 Labelling states with subformulas E[y1Uy2]
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ť.
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]
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
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[12] • 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(pA[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 AU p q p
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
5. Aplikujte značkovací algoritmus na model vzájomného vylúčenia pre formulu = EF(c1 E[c1 U (c1E[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
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
s0 2 = c1 1 3 = E[c1 U 2] n1n2 12 3 s1 s5 t1n2 12 3 n1t2 12 3 s3 s6 c1n2 13 n1c2 t1t2 12 3 s2 c1t2 13 t1c2 s7 s4 Vzájomné vylúčenie
s0 4 = c1 3 n1n2 12 3 s1 s5 t1n2 12 3 n1t2 12 3 s3 s6 n1c2 c1n2 13 4 t1t2 12 3 s2 c1t2 13 4 t1c2 s4 s7 Vzájomné vylúčenie - platí M,s0