ČVUT FEL Katedra telekomunikační techniky, K prosince Radek Mařík Ověřování modelů II 6. prosince / 39

Podobné dokumenty
ČVUT FEL, K December 12, Radek Mařík Ověřování modelů II December 12, / 30

Temporální logiky. Czech Technical University Faculty of Electrical Engineering Department of Telecommunication Engineering Prague CZ

Verifikace Modelů a UPPAAL

Temporální logiky. ČVUT FEL Katedra telekomunikační techniky, K prosince 2017

Verifikace Modelů a UPPAAL

Verifikace Modelů a UPPAAL

Model Checking pro Timed Automata. Jiří Vyskočil 2011

10. Techniky formální verifikace a validace

Výpočet globálního stavu

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Predikátová logika dokončení

Unbounded Model Checking

Testování a verifikace softwaru

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

UPPAAL příklady. Jiří Vyskočil 2010

Matematická logika. Rostislav Horčík. horcik

VzorTest-1. Prohlídka náhledu

4.2 Syntaxe predikátové logiky

Další (neklasické) logiky. Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20

Temporální Logiky. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 1 / 19

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

Úvod do teoretické informatiky

Výroková a predikátová logika - II

Výroková logika. Sémantika výrokové logiky

Úvod do informatiky. Miroslav Kolařík

Matematická logika. Rostislav Horčík. horcik

Výroková a predikátová logika - VI

Výroková a predikátová logika - II

Výroková logika. Teoretická informatika Tomáš Foltýnek

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

Výroková a predikátová logika - II

Výroková a predikátová logika - IV

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Matematická logika. Rostislav Horčík. horcik

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

Výroková a predikátová logika - VIII

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Základní pojmy matematické logiky

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík

Výroková a predikátová logika - VIII

Základy logiky a teorie množin

Strukturování Petriho Nadpis 2 Nadpis 3

Model vlakového uzlu Model of a Railway Junction

LOGIKA VÝROKOVÁ LOGIKA

Úvod do predikátové logiky. (FLÚ AV ČR) Logika: CZ.1.07/2.2.00/ / 1

Okruh č.3: Sémantický výklad predikátové logiky

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

TVS zkouška 2010/2011 Vypracoval: Radek Nguyen

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Úvod do logiky (VL): 4. Zjištění průběhu pravdivostních hodnot formule tabulkovou metodou

ODPOSLECHU A JEHO DETEKCE V SÍTI S

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Diagnostika síťových aplikací - Zkouška

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Výroková logika - opakování

Úvod do logiky (VL): 7. Ekvivalentní transformace

Výroková logika syntaxe a sémantika

TÉMATICKÝ OKRUH TZD, DIS a TIS

Kapitola Výroky

Sériové rozhraní IDE (ATA)

Markl: Petriho sítě s prioritami /nnpn43.doc/ Strana 1

Naladění programů na přijímači GoSAT GS-7050 HDi

Rezoluce ve výrokové logice

NP-úplnost problému SAT

Local Interconnect Network - LIN

9. Praktická verifikace

Matematická logika. Miroslav Kolařík

Dijkstrův algoritmus

9. Rozšiřující desky Evb_Display a Evb_keyboard

Použití UART a radia na platformě micro:bit

přednáška 2 Marie Duží

Úvod do logiky (VL): 11. Ověřování, zda je formule tautologií metodou protipříkladu

Ověřování modelu pomocí automatů. Tomáš Masopust

Základní popis ovládání GPS jednotky na rally

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Výroková a predikátová logika - X

Spojování výroků (podmínek) logickými spojkami

teorie logických spojek chápaných jako pravdivostní funkce

platné nejsou Sokrates je smrtelný. (r) 1/??

Výroková a predikátová logika - XIII

Výroková a predikátová logika - III

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky

Nepřijde a nedám 100 Kč měl jsem pravdu, o této

/01: Teoretická informatika(ti) přednáška 5

Sekvenční logické obvody

Výroková a predikátová logika - V

Vzájemné vyloučení procesů

Výroková a predikátová logika - VII

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Matematická indukce, sumy a produkty, matematická logika

Popis softwaru pro sledování pohybu UZ sondy

Výroková a predikátová logika - VII

Fakulta elektrotechnická. do FPGA. Jan Breuer

Sono hodnocení pohybu sondy Popis uživatelského rozhraní programu

Transkript:

Ověřování modelů II Radek Mařík ČVUT FEL Katedra telekomunikační techniky, K13132 6. prosince 2017 Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 1 / 39

Obsah 1 Temporální logiky LTL logika 2 Jazyk modelů Vlastnosti ověřování modelů Čas v UPPAAL Urgentní přechody UPPAAL 3 UPPAAL příklady Přejezd vlaků přes most Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 2 / 39

Temporální logiky LTL logika LTL syntaxe [Voj10] LTL je sublogikou CTL* Povoluje pouze formule tvaru Aϕ, ve kterých stavové podformule jsou atomickými výroky LTL formule se vytváří dle následující gramatiky: ϕ ::= Aψ (A se často vynechává) ψ ::= p ψ ψ ψ ψ ψ X ψ F ψ Gψ ψuψ ψrψ, kde p AP. LTL se vyjadřuje o specifických cestách v dané Kripkeho struktuře tj. ignoruje větvění Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 4 / 39

Temporální logiky LTL logika LTL, CTL, CTL* [Voj10] LTL a CTL nelze vůči sobě porovnat: CTL nemůže např. vyjádřit LTL formuli A(FGp) LTL nemůže např. vyjádřit CTL formuli AG(EFp) CTL* pokrývá jak LTL, tak i CTL disjunkce (A(FGp)) (AG(EFp)) se nedá vyjádřit ani v LTL, ani v CTL. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 5 / 39

Jazyk modelů Podmínky nad hodinami [BDL05] C... množina hodin B(C)... množina konjunkcí nad jednoduchými podmínkami typu x c x y c kde x, y C, c N, {<,, =,, >} Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 7 / 39

Jazyk modelů Dotazovací jazyk [BDL05] Stavové formule... popisují individuální stavy. Běhové formule... vyhodnocují se podél cest a stop modelu. dosažitelnost, bezpečnost, živost. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 8 / 39

Jazyk modelů Stavové formule [BDL05] výraz, který lze vyhodnotit pro daný stav, aniž by bylo nutné analyzovat chování modelu. nadmnožinou stráží, tj. nemá žádný postranní efekt, na rozdíl od stráží, použití disjunkcí není omezeno. Test, zda proces je v dané pozici... P.l P... proces l... pozice zablokování (deadlock)... speciální stavová formule, která je splněna pro všechny zablokované stavy, Stav je zablokovaný, jestliže neexistuje žádný akční přechod z daného stavu či jakéhokoliv jeho zpožděného následníka. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 9 / 39

Vlastnosti ověřování modelů Dosažitelnost [BDL05] nejjednodušší vlastnost, požaduje, zda-li existuje možnost, že daná stavová formule ϕ je splněná v každém dosažitelném stavu. tj. existuje cesta z počátečního stavu taková, že ϕ bude jednou splněná podél této cesty. kontrola základních vlastností modelu že platí alespoň základní chování příklad komunikačního protokolu s jedním vysílačem a jedním přijímačem je vůbec možné odeslat zprávu vysílačem zpráva má nadějí být prijmuta přijímačem. v UPPAAL: E<>ϕ Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 11 / 39

Vlastnosti ověřování modelů Bezpečnost [BDL05] něco špatného nikdy nenastane příklad modelu jaderné elektrárny provozní teplota je vždy (invariantně) pod určitým prahem, nikdy nedojde k roztavení nádoby varianta: něco není možné, aby vůbec nastalo příklad hraní hry bezpečný stav je takový, že pokud můžeme ještě hru, pak už neexistuje možnost, abychom ji prohráli. v UPPAAL: formuluje se pozitivně necht ϕ je stavová formule A[]ϕ E ϕ... ϕ by měla být pravdivá ve všech dosažitelných stavech E[]ϕ... existuje maximální cesta, podél které ϕ je vždy pravdivá Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 12 / 39

Vlastnosti ověřování modelů Živost [BDL05] něco jednoho dne určitě nastane příklady stisknutí tlačítka on na dálkovém ovladačí způsobí, že se televize jednou zapne. v modelu komunikačního protokolu: jakákoliv vyslaná zpráva bude jednou přijmuta. v UPPAAL: A<>ϕ E ϕ... ϕ bude vždy jednou splněna ϕ --> ψ A (ϕ A ψ)... kdykoliv je splněna ϕ, potom bude jednou splněna i ψ Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 13 / 39

Čas v UPPAAL Pozorovatel [BDL05] Příklad přidaný automat detekuje události, aniž by bylo nutné měnit vlastní model detekce resetování hodin navíc resetování hodin (x:=0) Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 15 / 39

Čas v UPPAAL Výchozí varianta příkladu [BDL05] Cílem je zůstat v pozici, pokud platí podmínka na hodinách a poté opustit pozici Varianta 1: bez invariantu Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 16 / 39

hodiny x Čas v UPPAAL 1. varianta příkladu [BDL05] 4 2 2 4 6 8 čas Cílem je zůstat v pozici, pokud platí podmínka na hodinách a poté opustit pozici Varianta 1: bez invariantu A[] obs.taken imply x>=2 E<> obs.idle and x>3 Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 17 / 39

hodiny x Čas v UPPAAL 2. varianta příkladu [BDL05] 4 2 2 4 6 8 čas Cílem je zůstat v pozici, pokud platí podmínka na hodinách a poté opustit pozici Varianta 2: s invariantem A[] obs.taken imply (x>=2 and x<=3) E<> obs.idle and x>2 E<> obs.idle and x>3... neplatí A[] obs.idle imply x<=3 Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 18 / 39

hodiny x Čas v UPPAAL 3. varianta příkladu [BDL05] 4 2 2 4 6 8 čas Cílem je zůstat v pozici, pokud platí podmínka na hodinách a poté opustit pozici Varianta 3: bez invariantu se stráží A[] x>3 imply not obs.taken... zablokování A[] not deadlock... neplatí Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 19 / 39

hodiny x Čas v UPPAAL 4. varianta příkladu [BDL05] 4 2 2 4 6 8 čas Cílem je zůstat v pozici, pokud platí podmínka na hodinách a poté opustit pozici Varianta 4: bez invariantu se stráží s rovností A[] x>2 imply not obs.taken... zablokování A[] not deadlock... neplatí Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 20 / 39

hodiny x Čas v UPPAAL 5. varianta příkladu [BDL05] 4 2 2 4 6 8 čas Cílem je zůstat v pozici, pokud platí podmínka na hodinách a poté opustit pozici Varianta 5: s invariantem a se stráží s rovností A[] obs.taken imply x==2 E<> obs.idle and x>2... neplatí A[] obs.idle imply x<=2 Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 21 / 39

Urgentní přechody UPPAAL Příklad 1, procesy P, Q [Dav05] Cílem je provést přechod se synchronizací co možná nejdříve. tj. jakmile jsou oba automaty P a Q připraveny (současně v pozicích l 1 a s 1 ). Jak zvolit model, když se do pozic dostanou v jiný okamžik? Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 23 / 39

Urgentní přechody UPPAAL Příklad 1, procesy P, Q, X 3 [Dav05] Cílem je provést přechod se synchronizací co možná nejdříve. tj. jakmile jsou oba automaty P a Q připraveny (současně v pozicích l 1 a s 1 ). Jak zvolit model, když se do pozic dostanou v jiný okamžik? Řešení: urgent chan a Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 24 / 39

Urgentní přechody UPPAAL Příklad 2, procesy P, Q, X 3 [Dav05] Cílem je provést přechod s podmínkou i == 5, jakmile je splněna. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 25 / 39

Urgentní přechody UPPAAL Příklad 2, procesy P, Q, R, X 3 [Dav05] Cílem je provést přechod s podmínkou i == 5, jakmile je splněna. tj. jakmile jsou oba automaty P a Q připraveny (současně v pozicích l 1 a s 1 ). Jak zvolit model, když se do pozic dostanou v jiný okamžik? Řešení: urgent chan go další proces emitující akci go! Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 26 / 39

Urgentní přechody UPPAAL Urgentní kanály [Dav05] urgent chan hurry Semantika: Nenastane žádné zpoždění, pokud hrana s urgentní akcí může být provedena. Omezení: Na hranách s urgentní akcí nejsou povoleny žádné stráže s hodinami. Invarianty a stráže na datovými proměnnými jsou povoleny. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 27 / 39

Urgentní přechody UPPAAL Urgentní pozice pomocí hodin [Dav05] Předpokládejme, že modelujeme jednoduché systém M, které přijímá baĺıky na kanálu a a ihned je odesílá na kanál b P 1 modeluje systém pomocí hodin x Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 28 / 39

Urgentní přechody UPPAAL Urgentní pozice [Dav05] Předpokládejme, že modelujeme jednoduché systém M, které přijímá baĺıky na kanálu a a ihned je odesílá na kanál b P 2 modeluje systém pomocí urgentní pozice P 1 a P 2 mají totožné chování Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 29 / 39

Urgentní přechody UPPAAL Urgentní kanály [Dav05] Semantika: Nenastane žádné zpoždění v urgentní pozici. Poznámka: Použití urgetních pozic redukuje počet hodin v modelu a tím i složitost analýzy. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 30 / 39

UPPAAL příklady Přejezd vlaků přes most Myšlenka příkladu [BDL05] Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 32 / 39

UPPAAL příklady Přejezd vlaků přes most Slovní zadání příkladu [BDL05] Zadání řízení přístupu k mostu pro několik vlaků most jako kriticky sdílený zdroj může být přejížděn pouze jedním vlakem systém je definován jako několik vlaků a řadič vlak nemůže být zastaven okamžitě, rovněž rozjezd trvá dobu. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 33 / 39

UPPAAL příklady Přejezd vlaků přes most Časování a komunikace [BDL05] Časová omezení a komunikace při příjezdu k mostu vlak včas vyšle appr! signál poté vlak má 10 časových jednotek, aby přijal signál k zastavení umožňuje bezpečné zastavení před mostem po těchto 10 časových jednotkách, trvá dalších 10 jednotek, než vlak dojede k mostu, pokud není zastaven jestliže je vlak zastaven, vlak se rozjede po té, co přijme signál go! z řadiče mostu když vlak opouští most, vyšle signál leave! Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 34 / 39

UPPAAL příklady Přejezd vlaků přes most Synchronizační signály [BDL05] Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 35 / 39

UPPAAL příklady Přejezd vlaků přes most Šablona vlaku [BDL05] Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 36 / 39

UPPAAL příklady Přejezd vlaků přes most Šablona řadiče mostu [BDL05] Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 37 / 39

UPPAAL příklady Přejezd vlaků přes most Ověření modelu [BDL05] E<> Gate.Occ E<> Train(0).Cross E<> Train(1).Cross E<> Train(0).Cross and Train(1).Stop E<> Train(0).Cross and (forall (i : id_t) i!= 0 imply Train(i).Stop) A[] forall (i : id_t) forall (j : id_t) Train(i).Cross && Train(j).Cross imply i == j A[] Gate.list[N] == 0 Train(0).Appr --> Train(0).Cross Train(1).Appr --> Train(1).Cross Train(2).Appr --> Train(2).Cross Train(3).Appr --> Train(3).Cross Train(4).Appr --> Train(4).Cross Train(5).Appr --> Train(5).Cross A[] not deadlock Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 38 / 39

Literatura I UPPAAL příklady Přejezd vlaků přes most Gerd Behrmann, Alexandre David, and Kim G. Larsen. A tutorial on UPPAAL, updated 25th october 2005. Technical report, Department of Computer Science, Aalborg University, Denmark, October 2005. UPPAAL tutorial at rtss 05 (), December 2005. Tomas Vojnar. Formal analysis and verification. Lecture handouts, http://www.fit.vutbr.cz/study/courses/fav/public/, August 2010. Radek Mařík (radek.marik@fel.cvut.cz) Ověřování modelů II 6. prosince 2017 39 / 39