Temorální logiky Radek Mařík ČVUT FEL Katedra telekomunikační techniky, K13132 6. rosince 2017 Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 1 / 31
Obsah 1 Systém UPPAAL Postu modelování a ověřování 2 Základy temorálních logik Cesty výočtu a čas CTL* logika CTL logika 3 UPPAAL Secifikace ožadavků v UPPAAL 4 Hra NIM Secifikace ožadavků hry NIM Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 2 / 31
Systém UPPAAL Postu modelování a ověřování Tvorba automatu [UPP09] Automat očáteční ozice (dvojitá kružnice) Add Location ro řidání ozice Selection Tool ro ojmenování ozice Add Edge ro řidání hrany, rohnutí hran omocí myši v okoĺı konců dolní tabulka Position a Descrition ro analýzu chyb Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 4 / 31
Systém UPPAAL Postu modelování a ověřování Komozice systému [UPP09] Systém Systém... sít aralelních časovaných automatů (rocesů). Proces... instance arametrizovaného vzoru. Proces Pozice... jméno, invarianty Hrany... odmínky stráží (x >= 7), synchronizace (go[id]?), řiřazení (x = 0), Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 5 / 31
Systém UPPAAL Postu modelování a ověřování Pois vzoru (temlate) [UPP09] Parametrizovaný časový automat jméno, arametry, Lokální deklarace roměnné, synchronizační kanály, konstanty Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 6 / 31
Systém UPPAAL Postu modelování a ověřování Pois systému [UPP09] Globální deklarace globální celočíselné roměnné, globální hodiny, synchronizační kanály, konstanty Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 7 / 31
Systém UPPAAL Postu modelování a ověřování Definice systému [UPP09] Přiřazení rocesů deklarace instancí rocesu, vzory s úlně/částečně secifikovanými arametry, Definice systému seznam rocesů systému, Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 8 / 31
Základy temorálních logik Cesty výočtu a čas Přechody mezi konfiguracemi v Krikeho struktuře [Voj10] P1 P2 a c cs(p1) s 2 unlock(l) lock(l) lock(l) unlock(l) unlocked(l) s 1 b d cs(p2) s 3 mutex l; Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 10 / 31
Základy temorálních logik Cesty výočtu a čas Cesta v Krikeho struktuře [Voj10] Cesta Cesta π... v Krikeho struktuře M je nekonečná sekvence stavů π = s 0 s 1 s 3... taková, že i N..R(s i, s i+1 ). Π(M, s)... množina všech cest v M, které začínají v s S Sufix π i cesty π = s 0 s 1 s 3... s i s i+1 s i+2 je cesta π i = s i s i+1 s i+2 začínající v s i. s i = π[i] Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 11 / 31
Základy temorálních logik Cesty výočtu a čas Pojem času [Voj10] Abstrakce času Logický čas... racuje s (částečným) usořádáním stavů/událostí v chování systému. Fyzický čas... měření doby uběhlou mezi dvěma stavy/události. Čas ve verifikaci modelů Lineární čas... dovoluje se vyjadřovat ouze o dané lineární trase ve stavovém rostoru. Na všech trasách, x musí být následováno y. Na všech trasách, x musí být následováno y nebo z. Větvící se čas... dovoluje kvantifikovat (existenčně i univerzálně) možné budoucnosti očínaje daným stavem. Na stavový rostor se ohĺıží jako na rozvinutý nekonečný strom. Existuje trasa, kde následující stav je x. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 12 / 31
Základy temorálních logik CTL* logika Výočetní strom [Voj10] Poisuje vlastnosti výočetního stromu unlocked(l) cs(p1) s 2 cs(p1) cs(p2) unlocked(l) s 1 unlocked(l) unlocked(l) cs(p2) s 3 cs(p1) cs(p2) cs(p1) cs(p2) Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 14 / 31
Základy temorálních logik CTL* logika CTL* formule [Voj10] Skládá se z atomické výroky logické sojky kvantifikátory cest temorální oerátory Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 15 / 31
Základy temorálních logik CTL* logika CTL* kvantifikátory a oerátory [Wik10, Voj10] Kvantifikátory cest oisují strukturu větvení vyočetního stromu E... existuje cesta výočtu z daného stavu. A... ro všechny cesty výočtů z daného stavu. Temorální oerátory určují vlastnosti cesty ve výočetním stromu X ϕ (next time, )... vlastnost ϕ latí ve druhém (následujícím) stavu cesty.. F ϕ (in future, )... vlastnost ϕ latí v nějakém stavu cesty. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 16 / 31
CTL* oerátory Základy temorálních logik [Wik10, Voj10] CTL* logika Temorální oerátory Gϕ (globally, )... vlastnost ϕ latí ve všech stavech cesty. ψuϕ (until)... vlastnost ϕ latí v nějakém stavu cesty a vlastnost ψ latí řinejmenším ve všech ředcházejících stavech této cesty. ψrϕ (release)... vlastnost ϕ musí latit do (a včetně) stavu, kdy začne latit vlastnost ψ, okud takový stav existuje. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 17 / 31
Základy temorálních logik CTL* logika CTL* syntax [Voj10] Necht AP je nerázdná množina atomických výroků. Syntax stavových formuĺı, které jsou ravdivé v daném stavu Jestliže AP, otom je stavová formule. Jestliže ϕ a ψ jsou stavové formule, otom ϕ, ϕ ψ, ϕ ψ jsou stavové formule. Jestliže ϕ je běhová formule, otom Eϕ a Aϕ jsou stavové formule. Syntax běhových formuĺı, které jsou ravdivé odél secifické cesty Jestliže ϕ je stavová formule, ak ϕ je také běhová formule. Jestliže ϕ a ψ jsou běhové formule, ak ϕ, ϕ ψ, ϕ ψ, X ϕ, F ϕ, Gϕ, ϕuψ a ϕrψ jsou běhové formule. CTL* je množina stavových formuĺı generovaných výše uvedenými ravidly. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 18 / 31
Základy temorálních logik CTL* logika CTL* sémantika [Voj10] Necht je dána Krikeho struktura M = (S, T, I, s 0, L) nad množinou atomických výroků AP. Pro stavovou formuli ϕ nad AP, zaisujeme M, s = ϕ fakt, že ϕ latí v s S. Pro běhovou formuli ϕ nad AP, zaisujeme M, π = ϕ fakt, že ϕ latí odél cesty π v M. Necht s S, π je cesta v M, ϕ 1, ϕ 2 jsou stavové formule nad AP, AP, a ψ 1, ψ 2 jsou běhové formule nad AP. Pak relaci = definujeme induktivně následovně: M, s = iff L(s). M, s = ϕ 1 iff M, s = ϕ 1. M, s = ϕ 1 ϕ 2 iff M, s = ϕ 1 nebo M, s = ϕ 2. M, s = ϕ 1 ϕ 2 iff M, s = ϕ 1 a zároveň M, s = ϕ 2. M, s = Eψ 1 iff π Π(M, s).m, s = ψ 1. M, s = Aψ 1 iff π Π(M, s).m, s = ψ 1. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 19 / 31
Základy temorálních logik CTL* logika CTL* sémantika [Voj10] Pokračování definice relace =: M, π = ϕ 1 iff M, s 0 = ϕ 1, s 0 = π[0]. M, π = ψ 1 iff M, π = ψ 1. M, π = ψ 1 ψ 2 iff M, π = ψ 1 nebo M, π = ψ 2. M, π = ψ 1 ψ 2 iff M, π = ψ 1 a zároveň M, π = ψ 2. M, π = X ψ 1 iff M, π 1 = ψ 1. M, π = F ψ 1 iff i 0.M, π i = ψ 1. M, π = Gψ 1 iff i 0.M, π i = ψ 1. M, π = ψ 1 Uψ 2 iff i 0.M, π i = ψ 2 a zároveň 0 j < i.m, π j = ψ 1. M, π = ψ 1 Rψ 2 iff i 0.( 0 j < i.m, π j = ψ 1 M, π i = ψ 2. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 20 / 31
Základy temorálních logik CTL* logika CTL* základní oerátory [Voj10] Všechny CTL* oerátory lze odvodit z,, X, U a E: Nech AP, true (a false true) ϕ ψ ( ϕ ψ), F ϕ trueuϕ, Gϕ F ϕ, ϕrψ ( ϕu ψ), Aϕ E ϕ. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 21 / 31
Základy temorálních logik CTL logika CTL syntaxe [Voj10] CTL je sublogikou CTL* běhové formule jsou omezeny na X ϕ, F ϕ, Gϕ, ϕuψ a ϕrψ, kde ϕ a ψ jsou stavové formule. Proto ouze 10 modálních CTL oerátorů: AX a EX AX EX AF a EF AF EF AG a EG AG EG Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 23 / 31
Základy temorálních logik CTL logika CTL modální oerátory [Voj10] Modální CTL oerátory: AU a EU A[ U q] E[ U q] q q q q AR a ER A[ R q] q E[ R q] q q q q Existují 3 základní CTL modální oerátory - EX, EG a EU: AX ϕ EX ϕ EF ϕ E[trueUϕ] AGϕ EF ϕ AF ϕ EG ϕ A[ϕUψ] E[ ψu( ϕ ψ)] EG ψ A[ϕRψ] E[ ϕu ψ] E[ϕRψ] A[ ϕu ψ] Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 24 / 31
UPPAAL Secifikace ožadavků v UPPAAL BNF gramatika secifikačního jazyka [UPP10] BNF gramatika A[]Exression E <> Exression E[]Exression A <> Exression Exression > Exression Poznámky Žadný výraz nesmí mít ostranní efekty. Výraz rocess.location testuje, zda určitý roces je v dané ozici. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 26 / 31
UPPAAL Secifikace ožadavků v UPPAAL Příklady secifikačního jazyka [UPP10] BNF gramatika A[]1 < 2 Invariatně 1 < 2 E <> 1.csand2.cs Pravdivé, okud systém může dosáhnout stavu, ve kterém rocesy 1 a 2 jsou v jejich ozici cs A <> 1.csimlynot2.cs Invariantně rocess 1 v ozici cs imlikuje, že roces 2 není v ozici cs. A[]notdeadlock Invariantně, rocess neobsahuje deadlock. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 27 / 31
Jednoduchá varianta NIM Hra NIM Secifikace ožadavků hry NIM NIM je hra založená na logice a strategii. Hrají 2 hráči. Hráč ři svém tahu odstraní jednu až MAX (2) věci (záalky, rotony) z řady. Vyhrává ten hráč, který odstraní oslední věc. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 29 / 31
Klasická varianta NIM Hra NIM Secifikace ožadavků hry NIM NIM je hra založená na logice a strategii. Hrají 2 hráči. Hráči odebírají objekty z různých hromádek/řad. Hráč musí odstranit ři svém tahu alesoň jeden objekt. Hráč ři svém tahu odstraní libovolný očet objektů, které náleží všechny k jedné hromádce. Základní varianty hry: Normální... Vyhrává ten hráč, který odstraní oslední věc. Prohra... Prohrává ten hráč, který odstraní oslední věc. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 30 / 31
Literatura I Hra NIM Secifikace ožadavků hry NIM UPPAAL 4.0: Small tutorial, November 2009. Tool environment for validation and verification of real-time systems (UPPAAL amhlet). htt://www.it.uu.se/research/grou/darts/aers/texts/uaal-amhlet.df, Setember 2010. Tomas Vojnar. Formal analysis and verification. Lecture handouts, htt://www.fit.vutbr.cz/study/courses/fav/ublic/, August 2010. Linear temoral logic. htt://en.wikiedia.org/wiki/linear temoral logic, November 2010. Radek Mařík (radek.marik@fel.cvut.cz) Temorální logiky 6. rosince 2017 31 / 31