Verifikcia asovch automatov Automat na npoje Mince Npoje

  • Slides: 48
Download presentation
Verifikácia časových automatov

Verifikácia časových automatov

Automat na nápoje Mince Nápoje Interfejs s prostredím Spracovanie informácie Mince Tlačidlá

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

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

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

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!!

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

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

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

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

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

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,

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ť

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.

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

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

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

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 |=

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 AG

Semantics of CTL Formula EG

Semantics of CTL Formula EG

Semantics of CTL Formula AF

Semantics of CTL Formula AF

Semantics of CTL Formula EF

Semantics of CTL Formula EF

Semantics of CTL Formula A[ U ]

Semantics of CTL Formula A[ U ]

Semantics of CTL Formula E[ 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

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

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

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:

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,

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

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

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

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

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 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

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

-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]

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

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 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

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

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

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

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 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

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

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 ]

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 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 |=