TemporÁlnÍ logika TemporÁlnÍ logika 1
TemporÁlnÍ logika poskytuje rámec a prost edky pro analýzu dynamických (imperativních) stavových systém a hraje zde stejnou Úlohu jakou má klasická logika pro matematické systémy. V intuitivním smyslu stavové systémy zahrnují stavy a vykazují chování p i pr chodu posloupnostmi takových stav. MÁme na mysli nap Íklad, programové moduly, komunika ní protokoly, databázové systémy, logické obvody, ipy a obecn výpo etní procesy, které p i provád ní procházejí ur itými stavy a vykazují specifické chování. TemporÁlnÍ logika 2
Podobn jako v klasické logice je vhodné za Ít s výrokovu versí temporální logiky. Ingredience Stavy. K popisu stav pouşijeme výrokové konstanty místo výrokových prom nných. VÝrokovÉ konstanty vyjad ují jednoduchá tvrzeni nap Íklad globální prom nná x má hodnotu 10. K popisu vłech stav pouşijeme mnoşinu výrokových konstant, která m Şe být kone ná i nekone ná. Stav je ur en pravdivostním ohodnocením vłech výrokových konstant. K popisu konkrétních systém obvykle posta Í kone ná mnoşina výrokových konstant. TemporÁlnÍ logika 3
as. Podobn jako výpo etní procesy postupují v jednotlivých krocích, uvaşujeme as diskretní sestávající z jednotlivých asových bod od po Áte ního bodu (okamşiku) k dal- ŁÍm (budoucím) asovým bod m. Budoucnost systému lze modelovat r zným uspo ÁdÁnÍm asových bod. NejjednoduŁŁÍm a vcelku realistickým p edpokladem je uspo ÁdÁnÍ asových bod do lineární mnoşiny. V takovém p Ípad budou asové body tvo it kone nou nebo nekone nou posloupnost, kterou o Íslujeme p irozenými Ísly m 0, m 1, m 2, m 3,..., m n, m n+1,... TemporÁlnÍ logika 4
TakovÉ uspo ÁdÁnÍ pouşívá VÝrokovÁ lineární temporální logika (LTL). P i popisu sloşit jłích systém popisujících nap Íklad distribuované výpo ty se pouşívají i jiná uspo ÁdÁnÍ asových bod nap Íklad ve tvaru stromu. Pak mluvíme o v tvícím se ase. Je-li V mnoşina výrokových konstant, jazyk výrokové temporální logiky L LTL sestává ze vłech výrokových konstant z mnoşiny V a symbol false -> ( ) TemporÁlnÍ logika 5
Definice. (Formule LTL) 1. KaŞdÁ výroková konstanta z mnoşiny V je formule. 2. false je formule. 3. Jsou-li A a B formule, potom A -> B je formule. 4. Je-li A formule, potom A a A jsou formule. OstatnÍ spojky se zavádí jako zkratky A je zkratka za formuli false -> A true je zkratka za formuli false TemporÁlnÍ logika 6
,, <-> jako v klasické logice, A je zkratka za formuli A TemporÁlnÍ operátory,, se (anglicky) nazývají nexttime nebo jen next, always nebo henceforth a sometime. Formule A, A a A se (anglicky) tou nexta, alwaysa a sometimea. esky p ÍŁt A, vşdy A a n kdy A. Preference,,, nejslabłí prioritu. váşí siln ji neş,, -> a <-> má TemporÁlnÍ logika 7
V klasické logice se pravdivostní hodnoty výrokových formulí ur ují z pravdivostního ohodnocení výrokových prom nných (tedy v jedné interpretaci, v jednom stavu ). V temporální logice, kde se výrokové formule tvo Í z výrokových konstant se pravdivostní hodnoty ur ují z více pravdivostních ohodnocení t chto konstant (tedy ve více interpretacích, ve více stavech ). Pro stav pouşíváme jako synonymum sv t a sémantika temporální logiky je definována pomocí Kripkeovy sémantiky moşných sv t. TemporÁlnÍ logika 8
SÉmantika pro LineÁrnÍ TemporÁlnÍ Logiku LTL Nech V je mnoşina výrokových konstant. TemporÁlnÍ (nebo Kripkeova) struktura pro V je nekone ná posloupnost K = ( 0, 1, 2,... ) pravdivostních ohodnocení. i : V -> {ff, tt } které nazýváme stavy. ÍkÁme, Şe 0 je po Áte ní stav K v asovém bodu m 0 a Şe n+1 je následující stav ke stavu n. TemporÁlnÍ logika 9
Stavy jsou tedy pravdivostní ohodnocení mnoşiny výrokových konstant V a popisují stav sv ta v asových okamşicích ( asových bodech). m 0, m 1, m 2, m 3,..., m n, m n+1,... Pro temporální strukturu K, index i a formuli A induktivn definujeme pravdivostní hodnotu K i (A), neformáln, pravdivostní hodnotu formule A v asovém bod m i. K i (v) = i (v) K i (false) = ff K i (A -> B) = tt práv kdyş v V. K i (A) = ff nebo K i (B) = tt TemporÁlnÍ logika 10
Pro operátory K i ( A) = K i+1 (A) K i ( A) = tt práv kdyş K j (A) = tt pro kaşdé j > i Pro definované symboly K i ( A) = tt práv kdyş K i (A) = ff K i (A B) = tt práv kdyş. K i (A) = tt nebo K i (B) = tt K i (A B) = tt práv kdyş. K i (A) = tt a K i (B) = tt TemporÁlnÍ logika 11
K i (A <-> B) = tt práv kdyş K i (A) = K i (B) K i (true) = tt K i ( A) = tt práv kdyş K j (A)= tt pro n jaké j > i PovŁimn me si, Şe pravdivostní hodnoty K i ( A) a K i ( A) jsou definovány pomocí následujících stav a aktuálního stavu. PlatÍ K i ( A) = tt práv kdyş K i ( A)= tt práv kdyş práv kdyş práv kdyş K i ( A)= ff K j (A) = ff pro n jaké j > i K j (A)= tt pro n jaké j > i TemporÁlnÍ logika 12
Definice (validita, sémantický d sledek) Nech A je formule jazyka logiky LTL(V) a T je mnoşina formulí stejného jazyka. ÍkÁme, Şe A je validní v temporální struktu e K pro V, (nebo Şe A je spln na v K) a píłeme K = A nebo = K A, jestlişe K i (A) = tt pro vłechna i ÍkÁme, Şe struktura K je modelem mnoşiny formulí T, jestlişe K = B pro vłechny formule B z T. ÍkÁme, Şe A je (sémantický) d sledek T a píłeme T = A, jestlişe A je validní v kaşdém modelu K mnoşiny T. TemporÁlnÍ logika 13
ÍkÁme, Şe A je validní a píłeme = A, jestlişe A je validní v kaşdé temporální struktu e K. JinÝmi slovy, A je validní, jestlişe = A. P Íklad. A <-> A je validní formule. Je t eba ukázat, Şe K i ( A) = K i ( A) platí pro kaşdou strukturu K a vłechny asové body i. K i ( A) = tt K i ( A) = ff K i+1 (A) = ff K i+1 (A) = tt K i ( A) = tt TemporÁlnÍ logika 14
Lemma 1. (korektnost pravidla modus ponens) Nech K je temporální struktura a i N, nech. K i (A) = tt a K i (A->B) = tt, potom K i (B) = tt. D kaz. K i (A->B) = tt, tedy K i (A) = ff nebo K i (B) = tt. Z p edpokladu K i (A) = tt dostáváme K i (B) = tt. V ta 2. Je-li T = A a T = A -> B potom T = B. D kaz. Nech struktura K je modelem T. Potom pro kaşdé i platí. K i (A) = K i (A-> B)=tt a podle lemmatu pak také K i (B) = tt. Tedy T = B. TemporÁlnÍ logika 15
V ta 3. Je-li T = A potom T = A a T = A. SpeciÁln A = A a A = A. D kaz. Nech K je libovolná temporální struktura, která je modelem T a nech i je p irozené Íslo. Podle p edpokladu platí K j (A) pro vłechna j, tedy také K i+1 (A) = tt a K j (A) = tt pro vłechna j, j > i. To znamená, Şe T = A a T = A. TemporÁlnÍ logika 16
ZajÍmav jłí je následující tvrzení, které uvádíme bez d kazu. V ta 4. Je-li T = A -> B a T = A -> A, potom T = A -> B. Ozna ení. Nech K = ( 0, 1, 2,... ) je n jaká temporální struktura pro mnoşinu výrokových konstant V. Nech i je p irozené Íslo. TemporÁlnÍ strukturu K i, která vznikne z K posunutím asu o i krok do budoucnosti, definujeme takto: K i = ( 0, 1, 2,... ) kde j = i+j pro kaşdé j. K i je také temporální struktura podle p vodní definice, ale budeme ji Úsporn ji zapisovat jako K i = ( i, i+1, i+2,..., i+j, i+j+1, ). TemporÁlnÍ logika 17
Lemma5. Nech K je temporální struktura a i je p irozené Íslo. Pro pravdivostní hodnoty platí. K i j(a) = K i+j (A) pro kaşdý index j a kaşdou formuli A. D kaz provedeme indukcí podle sloşitosti formule A pro vłechna j sou asn. Nech. K = ( 0, 1, 2,... ) a K i = ( i, i+1, i+2,... ). UvaŞujeme následující p Ípady (i) A je výroková konstanta v V. Potom. K i j(v) = i+j (v)= K i+j (v). TemporÁlnÍ logika 18
(ii) A je false, potom K i j(false) = ff = K i+j (false). (iii) A je B -> C, K i j(b -> C) = tt K i j(b) = ff nebo K i j(c) = tt K i+j (B) = ff nebo K i+j (C) = tt K i+j (B-> C) = tt (iv) A je B, K i j( B) = K i j+1(b) = K i+j+1 (B) = K i+j ( B) TemporÁlnÍ logika 19
(v) A je B, K i j( B) K i l(b) = tt pro vłechna l > j K i+l (B) = tt pro vłechna l > j K i+j ( B) TemporÁlnÍ logika 20
NÁsledujÍcÍ tvrzení je temporální obdobou V ty o dedukci v klasické výrokové logice. V ta 6. T {A} = B práv kdyş T = A -> B. SÉmantickÝ d kaz nebudeme provád t, ale povłimneme si, Şe z p esné obdoby klasické V ty o dedukci platí jen tvrzení V ta 7. Je-li T = A -> B potom T {A} = B. ObrÁcenÁ implikace v LTL neplatí. Sta Í uvaşovat p Ípad, kdy T je prázdná mnoşina. Podle V ty 3 platí A = A pro libovolnou formuli, ale implikace A-> A nemusí být validní formule. NenÍ pravdivá v ŞÁdnÉ temporální struktu e K, kde pro n jaké i a j > i platí K i (A) = tt a K j (A) = ff. Sta Í uvaşovat p Ípad, kdy A je n která výroková konstanta. TemporÁlnÍ logika 21
Za zmínku stojí následující tvrzení V ta. Je-li T = A a T je mnoşina validních formulí potom = A. D kaz. Nech K je libovolná temporální struktura, v K je pravdivá kaşdá validní formule, tedy K je modelem mnoşiny T. Z p edpokladu T = A dostáváme K = A. ProtoŞe K je libovolná temporální struktura, platí = A a A je validní formule. TemporÁlnÍ logika 22
Stejn jako v klasické logice je validita duální pojem ke splnitelnosti. V ta. = A práv kdyş A není splnitelná. D kaz. = A K = A pro libovolnou strukturu K K i (A) = tt pro libovolné i K i ( A) = ff pro libovolné i K A A není splnitelná formule TemporÁlnÍ logika 23
Zde jsou n které asto pouşívané temporální formule a jejich neformální tení. A-> B A-> B A-> B jestlişe A potom B v dalłím stavu jestlişe A potom B te a v kaşdém dalłím stavu jestlişe A potom B te nebo v n jakém dalłím stavu (A -> B) jestlişe A te nebo v n jakém dalłím stavu potom B platí. ve stejném stavu A te a za kaşdým dalłím stavem n kdy platí A (od te ) A bude platit v nekone n mnoha stavech A od n kterého dalłího stavu bude stále platit A (od te ) A platí skoro vşdycky TemporÁlnÍ logika 24
BinÁrnÍ temporální operátory OblÍbenÝm binárním operátorem je temporální obdoba programového konstruktu until. Nej ast ji se zna Í A B. Definice. (A B a A B B) Pro temporální strukturu K, index i a formule A, B definujeme pravdivostní hodnotu K i (A B) následovn K i (A B) = tt K j (B) = tt pro n jaké j, j > i a. K k (A) = tt pro kaşdé k, i < k < j TemporÁlnÍ logika 25
MÉn asto se pouşívá binární operátor A B B který teme. A p edchází B nebo krátce A p ed B,. anglicky A before B. K i (A B B) = tt pro kaşdé j, j > i K j (B) = tt implikuje. K k (A) = tt pro n jaké k, i < k < j jinak vyjád eno K i (A B B) = tt ( j > i)(k j (B) = tt =>. => ( k)(i < k < j & K k (A) = tt) TemporÁlnÍ logika 26
D leşité validní formule = A <-> A = A <-> A (1) = A <-> A = A <-> A = A <-> A = (( A) B) <-> (A B B) NÁsledujÍcÍ validní implikace nelze zesílit na ekvivalence = A -> A = A -> A. = A -> A = A -> A = A -> A = A -> A = A B -> A = A -> A TemporÁlnÍ logika 27
Idempotence,, a = A <-> A = A <-> A = A <-> A = A <-> A Ale operátor p ÍŁtÍho stavu není idempotentní. Formule A <-> A není validní. Nekone né modality a konzumují vłechny ostatní modality s jedním argumentem, které jsou na n aplikované. S menłím násilím na syntax formulí to m Şeme kompaktn vyjád it takto = ( ) A <-> ( ) A <-> ( ) A <-> ( ) A. = ( ) A <-> ( ) A. = ( ) A <-> ( ) A <-> ( ) A <-> ( ) A. = ( ) A <-> ( ) A TemporÁlnÍ logika 28
Podle své definice jsou operátory a povahy existen ní a operátory a povahy univerzální, zatímco operátor (until) je v prvním argumentu univerzální a ve druhém argumentu existen ní. VykazujÍ podobné chování jako existen ní kvantifikátor a univerzální kvantifikátor v predikátové logice. = (A B) <-> ( A B) = (A B) <-> ( A B). = (A B) <-> ( A B) = (A B) <-> ( A B) Pro operátor (until) a boolovské spojky konjunkce a disjunkce platí tyto distributivní vztahy. = ((A B) C) <-> ((A C) (B C)). = (A (B C)) <-> ((A C) (B C)) TemporÁlnÍ logika 29
OperÁtor (next) se vztahuje k jedinému asovému bodu, proto se distribuuje se vłemi boolovskými spojkami. = (A B) <-> ( A B) = (A B) <-> ( A B) (2) = (A -> B) <-> ( A-> B) = (A <-> B) <-> ( A<-> B) p itom ekvivalence = A <-> A.. jiş byla uvedena výłe. Pro kombinace operátor universální a existen ní povahy platí jen implikace, které nelze zesílit na ekvivalence. = ( A B) -> (A B) = (A B) -> ( A B) = (A B) -> ( A B) = (A B) -> ( A B) = ((A C) (B C)) -> ((A B) C). = (A (B C)) -> ((A B) (A C)) TemporÁlnÍ logika 30
PovŁimneme si, Şe uvedené operátory jsou monotonní v kaşdém argumentu. = (A -> B) -> ( A -> B) = (A -> B) -> ( A -> B) = (A -> B) -> ( A -> B) = (A -> B) -> ( A -> B) = (A -> B) -> ( A -> B) = (A -> B) -> ((A C) -> (B C)) = (A -> B) -> ((C A) -> (C B)) Nakonec uvedeme d leşité charakteristiky temporálních operátor pomocí pevných bod. = A <-> A A (3) = A <-> A A = (A B) <-> B (A (A B)) = (A B B) <-> B (A (A B B)) TemporÁlnÍ logika 31
TemporÁlnÍ logika FormÁlnÍ systém TemporÁlnÍ logika 2 1
FormÁlnÍ systém VÝrokovÁ lineární temporální logika (LTL) v sob zahrnuje klasickou výrokovou logiku v podobném smyslu jako predikátová logika. Tautologie výrokové logiky se transformovaly na validní formule predikátové logiky tím, Şe se za výrokové prom nné (konzistentn ) dosadily predikátové formule. StejnÝ postup m Şeme pouşít i pro výrokovou temporální logiku. Nap Íklad. VÝrokovÁ formule ((p -> q) (q -> r)) -> (p -> r) kde p, q, r jsou výrokové prom nné, je tautologie, tedy validní formule klasické výrokové logiky. DosazenÍm temporálních formulí A, B, C za výrokové prom nné p, q, r vznikne temporální formule (( A -> B) ( B -> C)) -> ( A -> C) která je validní v temporální logice. TemporÁlnÍ logika 2 2
Definice. (Tautologicky validní formule) ÍkÁme, Şe temporální formule A je tautologicky (výrokov ) validní, jestlişe A vznikne z n jaké tautologie výrokové logiky A*(p 1, p 2,, p n ), kde vłechny výrokové prom nné ve formuli A* jsou uvedeny, nahrazením výrokových prom nných p 1, p 2,, p n po ad temporálními formulemi A 1, A 2,, A n. V ta 1. KaŞdÁ tautologicky validní formule je validní. D kaz. P edpokládejme, Şe A* je tautologie a Şe temporální formule A vznikla z A* nahrazením výrokových prom nných jako v p edchozí definici. MÁme ukázat, Şe pro kaşdou temporální strukturu K a kaşdý asový bod i, i > 0 platí K i (A) = tt. TemporÁlnÍ logika 2 3
Nech v je libovolné pravdivostní ohodnocení v (klasické) výrokové logice výrokových prom nných ve formuli A*. ProtoŞe A* je tautologie, A* je pravdivá nezávisle na pravdivostních hodnotách v(p j ) výrokových prom nných p j, j= 1, 2,..., n. V kaşdém asovém bod i, i > 0 temporální struktura K ur uje pravdivostní hodnoty K i (A j ) j, j= 1, 2,..., n. ProtoŞe sémantika pro výrokové spojky v temporální logice je definována stejným zp sobem jako v klasické výrokové logice, pravdivostní hodnota K i (A) = tt bez ohledu na pravdivostní hodnoty K i (A j ) podformulí A j. ProtoŞe A je pravdivá v kaşdém asovém bod i, je pravdivá i ve struktu e K a protoşe K je libovolná temporální struktura, formule A je validní. TemporÁlnÍ logika 2 4
Z v ty 1 také vyplývá, Şe p evod tautologií klasické výrokové logiky do LTL je moşné rozłí it i na relaci sémantického d sledku =. P edpokládejme, Şe formule B je d sledkem mnoşiny formulí T ve výrokové logice. JestliŞe konzistentn dosadíme temporální formule do výrokových formulí z T a do formule B nem li bychom połkodit relaci =. Nap Íklad D -> E, E -> F = D -> F by m lo platit protoşe ve výrokové logice platí A -> B, B -> C = A ->C Pro jednoduché vyjád ení tohoto jevu si p ipome me, Şe ve výrokové logice platí A 1, A 2,..., A n = B práv kdyş = A 1 -> (A 2 -> -> (A n -> B) TemporÁlnÍ logika 2 5
TÍm je motivována následující definice. Definice. (TautologickÝ d sledek kone né mnoşiny formulí) Nech A 1, A 2,..., A n, n > 0 a B jsou temporální formule. ÍkÁme, Şe formule B je tautologickým d sledkem formulí A 1, A 2,..., A n, jestlişe formule. A 1 -> (A 2 -> -> (A n -> B). je tautologicky validní. V ta 2. Je-li B tautologickým d sledkem temporálních formulí A 1, A 2,..., A n, potom A 1, A 2,..., A n = B. TemporÁlnÍ logika 2 6
D kaz. Podle p edpokladu je A 1 -> (A 2 -> -> (A n -> B) tautologicky validní formule. Podle V ty 1 to znamená, Şe je to validní formule, tedy = A 1 -> (A 2 -> -> (A n -> B) PouŞijeme-li n krát V tu 7 ze sémantiky LTL, dostaneme tvrzení v ty. TemporÁlnÍ logika 2 7
FormÁlnÍ systém LineÁrnÍ temporální logiky. Axiomy. (Taut) VŁechny tautologicky validní formule Pro libovolné formule A, B jsou následující formule axiomy (LTL 1) A <-> A (LTL 2) (A -> B) -> ( A -> B) (LTL 3) A -> (A A) TemporÁlnÍ logika 2 8
OdvozovacÍ pravidla. (MP) A, A -> B - B (Next) A - A (Indukce) A -> B, A -> A - A -> B TemporÁlnÍ logika 2 9
Axiom (taut) je schema, kde bychom spíłe o ekávali instance axiom klasické výrokové logiky. Pro nás není d leşité jak se odvozují tautologicky pravdivé formule ; to probíhá v stejn jako v klasické výrokové logice. Abychom zkrátili d kazy o tuto klasickou Ást, bereme vłechny tautologicky pravdivé formule jako axiomy. MnoŞina vłech tautologicky pravdivých formulí je rozhodnutelná, tedy existuje algoritmus, který rozpoznává tautologicky pravdivé formule (respektive jejich kódy). Axiomy LTL2 a LTL3 jsou implikace a ne ekvivalence i kdyş obrácené implikace jsou validní. UkÁŞeme, Şe tyto implikace jsou dokazatelné. OdvozovacÍ pravidlo (ind) je pravidlo indukce, které lze neformáln vyslovit takto jestlişe A (vşdycky) implikuje B a A je invariantní p i p echodu z libovolného stavu do do následujícího, potom vşdy platí B. TemporÁlnÍ logika 2 10
UkÁŞeme, Şe formální systém LTL je korektní vzhledem k sémantice. V ta 3. (o korektnosti pro LTL) Nech A je formule a T je mnoşina formulí, potom T - A implikuje T = A speciáln - A implikuje = A. D kaz. Postupujeme indukcí podle d kazu formule. (a) Je-li A axiom ze schemat (taut), LTL1, LTL2, LTL3, potom podle V ty 1 jsou vłechny axiomy z (taut), tedy vłechny tautologicky validní formule validní. Axiom ze schematu LTL1 je validní formule, podle sémantické ekvivalence (1) z prezentace TemporÁlnÍ logika 1. Axiomy ze schemat LTL2 a LTL3 jsou validní podle sémantických ekvivalencí (2) a (3) z p edchozí prezentace. TemporÁlnÍ logika 2 11
(b) Je-li A prvkem T, potom T = A plyne z definice modelu. (c) Je-li A odvozena pravidlem modus ponens z fomulí B a B -> A, podle induk ního p edpokladu je T = B a T = B -> A. Ze sémantické korektnosti pravidla modus ponens dostáváme T = A. (d) Je-li A odvozena pravidlem (nex), tedy A je tvaru B, takové Şe T - B, z induk ního p edpokladu dostáváme T = B a z v ty 4 z p edchozí prezentace dostáváme T = B-> B odkud T = A ze sémantické korektnosti pravidla modus ponens. (e) Je-li A odvozena z formulí B -> C a B-> B pravidlem (ind), potom A je tvaru B-> C. Z induk ního p edpokladu dostáváme T = B -> C a T = B-> B a z v ty 4 z p edchozí prezentace dostáváme T = B -> C, tedy T = A. TemporÁlnÍ logika 2 12
I kdyş p i formulaci schematu axiom (taut) jsme dali p ednost tautologicky validním formulím p ed instancemi axiom klasické výrokové logiky, p esto je ve výrokové temporální logice (LTL) ist klasický fragment, který pouşívá jen axiomy ze schematu (taut) a z nich odvozuje jen pomocí pravidla modus ponens. Dokazatelnost v tomto smyslu budeme vyjad ovat pomocí následujícího odvozeného pravidla, které je vlastn zobecn ním pravidla modus ponens (prop) A 1, A 2,, A n - B jestlişe. B je tautologickým d sledkem formulí A 1, A 2,, A n P Íkladem m Şe být pravidlo skládání implikací A -> B, B -> C - A -> C které budeme pouşívat v d kazech stejn jako mnoho dalłích jako pravidlo typu (prop). Tento postup je od vodn n následující v tou. TemporÁlnÍ logika 2 13
V ta 4. A 1, A 2,, A n - B jestlişe. B je tautologickým d sledkem formulí A 1, A 2,, A n D kaz. DokÁŞeme jen pro n = 2, obecný p Ípad se dokazuje podobn. Je-li B tautologickým d sledkem A 1, A 2, potom formule. A 1 -> (A 2 -> B) je tautologicky validní a je moşné sestrojit následující d kaz formule B z formulí A 1, A 2 : (1) A 1 p edpoklad (2) A 2 p edpoklad (3) A 1 -> (A 2 -> B) (taut) (4) (A 2 -> B) (1),(3) (mp) (5) B (2),(4) (mp) TemporÁlnÍ logika 2 14
P Íklady dalłích d kaz Nejprve obrácené implikace k axiom m (LTL2) a (LTL3). TÍm bude dokon en formální d kaz validních formulí (2), (3) ze sémantiky LTL. (LTL2) (A -> B) <- ( A-> B) (LTL3) A <- A A D kaz (LTL2) (1) (A -> B) -> A (taut) (2) ((A -> B) -> A) (nex), (1) (3) ((A -> B) -> A) -> ( (A -> B) -> A) (LTL2) (4) ( (A -> B) -> A) (mp), (2), (3) (5) (A -> B) <-> (A-> B) (LTL1) TemporÁlnÍ logika 2 15
(6) (A-> B)-> A (prop),(4),(5) (7) (A-> B)-> B (taut) (8) (A-> B)-> B jako (6) z (1) (9) (B)-> B (prop),(ltl1) (10) (A-> B)-> B (prop),(8),(9) (11) (A-> B)-> ( A -> B) (prop),(6),(10) (12) ( A-> B)-> (A-> B) (prop),(11) TemporÁlnÍ logika 2 16
D kaz (LTL3 ) (1) (A A) -> A (taut) (2) A -> (A A) (LTL3) (3) ( A -> (A A)) (nex),(2) (4) A -> (A A) (mp),(ltl2),(3) (5) (A A) -> (A A) (prop),(4) (6) (A A) -> A (ind),(1),(5) TemporÁlnÍ logika 2 17
NÁsledujÍcÍ odvozovací pravidla jsou varianty induk ního pravidla. (ind1) A -> A - A -> A (ind2) A -> B B -> B - A -> B OdvozenÍ (ind1) (1) A -> A p edpoklad (2) A -> A (taut) (3) A -> A (ind),(1),(2) TemporÁlnÍ logika 2 18
OdvozenÍ (ind2) (1) A -> B p edpoklad (2) B -> B p edpoklad (3) B -> B (ind),(1),(2) (4) A -> B (prop),(1),(3) TemporÁlnÍ logika 2 19
NÁsledujÍ dv odvozovací pravidla. PrvnÍ je obdobou (nex) pro. (alw) A - A (som) A -> B - A -> B OdvozenÍ (alw) (1) A p edpoklad (2) A (nex),(1) (3) A -> A (prop),(2) (4) A -> A (ind1),(3) (5) A (mp),(1),(4) TemporÁlnÍ logika 2 20
OdvozenÍ (som) (1) A -> B p edpoklady, (prop) (2) B -> (B B) (LTL3) (3) B -> B (prop),(2) (4) B -> B (prop),(2) (5) ( B -> B) (nex),(3) (6) ( B -> B ) -> ( B -> B) (LTL2) (7) B -> B (mp),(5),(6) (8) B -> B (prop),(4),(7) (9) B <-> B (LTL1) (10) B -> B (prop),(8),(9) (11) B -> B (prop),(10) (12) A -> B (prop),(1),(11) TemporÁlnÍ logika 2 21
Lemma 5. ( A B) -> (A B) D kaz. (1) (A -> B) -> ( A -> B) (LTL2) (2) (A -> B) -> ( A -> B) (prop),(ltl1),(1) (3) ( A -> B) -> (A -> B) (prop),(2) (4) ( A -> B) -> (A -> B) (prop),(ltl1),(3) (5) ( A B) -> (A B) (prop) TemporÁlnÍ logika 2 22
V ta 6. (o dedukci pro LTL) Nech A, B jsou formule a T je mnoşina formulí. PlatÍ T {A} - B práv kdyş T - A -> B D kaz (indukcí podle odvození/délky d kazu) (a) Je-li B axiom LTL nebo B je prvkem T, potom T - B a pomocí (prop) dostáváme T - A -> B. (b) je-li B formule A, potom T - A -> A A T - A -> A lze odvodit pomocí (prop). (c) Je-li B odvozena pravidlem (mp) z formulí C, C -> B. Potom.. T {A} - C a T {A} - C -> B podle LTL3 a TemporÁlnÍ logika 2 23
a z induk ního p edpokladu T - A -> C a T - A -> (B -> C) (d) Je-li B tvaru C a byla odvozena pravidlem (nex) z formule C, potom. T {A} - C a z induk ního p edpokladu. T - A -> C zbývá dokázat.. T - A -> C (1) A -> C jiş odvozeno (2) ( A -> C) (nex),(1) (3) ( A -> C) -> ( A -> C) (LTL2) (4) A -> C (mp),(2),(3) (5) A -> (A A) (LTL3) (6) A -> A (prop),(5) (7) A -> C (prop),(4),(6) TemporÁlnÍ logika 2 24
(e) B je C -> D. a je odvozeno pravidlem (ind) z formulí.. C -> D a C -> C potom z induk ního p edpokladu. T - A -> (C -> D) T - A -> (C -> C) odtud odvodíme. T - A -> (C -> D) pomocí lemmatu 5. (1) A -> (C -> D) odvozeno (2) A -> (C -> C) odvozeno (3) ( A C)->D (prop),(1) (4) ( A C)-> C (prop),(2) (5) A -> A (LTL3),(prop) (6) ( A C) -> ( A C) (prop),(4),(5) (7) ( A C)-> ( A C) lemma 5 (8) ( A C) -> ( A C) (prop),(6),(7) (9) ( A C) -> D (ind),(3),(8) (10) A -> (C -> D) (prop),(9) TemporÁlnÍ logika 2 25
TÍm je implikace zleva doprava dokázána. Opa ná implikace má kratłí d kaz. <= P edpokládejme, Şe. T - A -> B potom také. T {A} - A -> B p i tom.. T {A} - A podle (alw), odkud. T {A} - B. plyne pomocí (mp). PoznÁmka. Z V ty o dedukci klasické výrokové logiky se stejným zp sobem odvodí implikace Je-li T - A -> B potom T {A} - B.Opa ná implikace není v LTL dokazatelná. TemporÁlnÍ logika 2 26
V poznámce k sémantické verzi klasické V ty o dedukci se ukazuje, Şe z T {A} = A neplyne T = A -> A podle V ty o korektnosti pro LTL pak tvrzení Je-li T {A} - A potom T - A -> A není v LTL dokazatelné. TemporÁlnÍ logika 2 27
ºplnost LTL UvaŞujme mnoşinu formulí Snadno se odvodí T = {A, A, A, A,, n A, n+1 A, } T = A (1) ale to neplatí pro ŞÁdnou kone nou podmnoşinu T mnoşiny T. Nem - Şeme tedy o ekávat, Şe v LTL bude moşné odvodit T - A (1 ) V takovém d kazu by bylo pouşito jen kone n mnoho formulí z T a to znamená, Şe by platilo T - A pro n jakou kone nou podmnoşinu T mnoşiny T. TemporÁlnÍ logika 2 28
Z V ty o korektnosti pro LTL by plynulo T = A a to není moşné. V LTL tedy neplatí tvrzení: Je-li T = A potom T - A pro kaşdou mnoşinu T a kaşdou formuli A. DÁ se ukázat, Şe v LTL platí jen slabá forma V ty o Úplnosti. V ta 7. (SlabÁ V ta o Úplnosti pro LTL) Pro kaşdou kone nou mnoşinu formulí T a libovolnou formuli A platí tvrzení: Je-li. T = A potom T - A, a speciáln = A potom - A. TemporÁlnÍ logika 2 29
D sledek 8. VŁechny validní formule jsou dokazatelné v LTL. SpeciÁln vłechny validní formule, které jsme zmíníli p i studiu sémantiky jsou v LTL dokazatelné. D kaz. PouŞijeme-li jełt V tu o korektnosti dostaneme v LTL tvrzení: D sledek 9. - A práv kdyş = A. Pro kaşdou kone nou mnoşinu formulí T a libovolnou formuli A platí tvrzení:. T - A práv kdyş T = A. TemporÁlnÍ logika 2 30
Aplikace TemporÁlnÍ logiky V temporální logice je moşné defimovat vlastnosti StavovÝch systém, ov ovat je a odvozovat z nich dalłí d sledky. TermÍn stavový systém budeme pouşívat intuitivn pro n jaký systém, který v jednotlivých krocích prochází r znými stavy a vykazuje ur ité chování. KaŞdÝ pr chod systému mnoşinou stav (tzv. exeku ní posloupnost) budeme krátce nazývat b h. KaŞdÁ temporální formule v jazyce L LTL systému specifikuje n jakou vlastnost stavového systému, kterou m Şeme ztotoşnit s ur itou mnoşinou b h systému. M Şeme Íci, Şe kaşdá temporální formule ur uje n jakou mnoşinu b h. TemporÁlnÍ logika 2 31
Ale neplatí to naopak. Pokud má nekone nou mnoşinu b h, potom podmnoşin mnoşiny vłech b h je nespo etn mnoho a naproti tomu je jen spo etn mnoho temporálních formulí. To znamená, Şe ne kaşdá mnoşina b h m Şe být definována n jakou temporální formulí. Tento triviální fakt musíme vzít na v domi. Je vłak z ejmé, Şe to jaké vlastnosti systému budeme moci specifikovat formulemi temporální logiky záleşí na volb jazyka L LTL. R zné deskrip ní jazyky pro popis systému dovolují první hrubou klasifikaci vlastností systému. M Şeme to ukázat na jednoduchém systému, který má jenom dv akce, takové, Şe výrokové konstanty exec, exec nemohou být sou asn pravdivé ve stejném stavu. TemporÁlnÍ logika 2 32
Do jazyka L LTL p idáme jełt jeden temporální operátor <>, který se (proti zavedenému zvyku) vztahuje k minulým stav m. Pro temporální strukturu K, p irozené Íslo i a formuli A, která neobsahuje operátor <> budeme definovat pravdivostní hodnotu K i (<>A) následujícím zp sobem K i (<>A) = tt jestlişe K j (A) = tt pro n jaké j, j < i. K i (<>A) = ff jestlişe K j (A) = ff pro kaşdé j, j < i. (v etn p Ípadu, kdy takové j neexistuje) V takto rozłí eném jazyce budeme Íkat, Şe A je retro-formule, pokud obsahuje jen retro-operátor <>. FormulÍm tvaru A, kde je n který z pozitivních operátor,,,, a A je retro budeme Íkat preceden ní.. TemporÁlnÍ logika 2 33
NynÍ m Şeme klasifikovat vlastnosti, které lze vyjád it pomocí preceden ních formulí. Jako p Íklady pouşijeme formule z. (a) Vlastnost specifikovaná preceden ní formulí A kde A je retro, nazýváme bezpe nostní. P Íkladem je formule (exec -> <>exec ) kterou teme kdykoliv je provedena akce, bylo provedeno n kdy p ed tím. TemporÁlnÍ logika 2 34
(b) Vlastnost specifikovaná preceden ní formulí A kde A je retro, nazveme odpov dní. P Íkladem je formule (<>exec -> exec ) n kdy pozd ji bude na d Ív jłí provedení akce odpov d no akcí (c) Vlastnost specifikovaná preceden ní formulí A kde A je retro, nazveme perzistentní. P Íkladem je formule exec od n kterého budoucího stavu, akce jiş nebude nikdy provedena TemporÁlnÍ logika 2 35
tvrtý terminální prefix nedává novou t Ídu vlastností, protoşe formule A je sémanticky ekvivalentní s formulí A. To znamená, Şe vlastnosti A pro retro-formule A jsou odpov dní vlastnosti. Ostatn t i t Ídy vlastností (a), (b), (c) nejsou disjunktní. KaŞdÁ bezpe nostní vlastnost je také odpov dní a perzistentní vlastnost. KdyŞ pouşijeme binární operátory, formule tvaru A -> ( B C) kde je n který z operátor before, after, atnext, unless atd., kde A, B a C jsou stavové formule daného systému budeme také nazývat preceden ní. TemporÁlnÍ logika 2 36
BinÁrnÍ operátory before, after, atnext mají celkem názorný intuitivní význam. OperÁtor unless je definován podobn jako until ale jeho pravdivost závisí na více stavech. Pro temporální strukturu K, formule A, B p irozené Íslo i definujeme K i (A unless B) = tt K i (B) = tt pro n jaké j > i a. (K k (A) = tt pro kaşdé k, i < k <j nebo. K k (A) = tt pro kaşdé k, k >j ) K i (A unl B) = tt K i (B) = tt pro n jaké j > i a. (K k (A) = tt pro kaşdé k, i < k <j. nebo.. K k (A) = tt pro kaşdé k, k >j ) TemporÁlnÍ logika 2 37
Preceden ní vlastnosti specifikované pomocí t chto binárních operátor jsou speciálním p Ípadem bezpe nostních vlastností: nap Íklad platí A -> (B before C) (C -> (B after A)) Klasifikace vlastností systém by mohla pokra ovat pokud bychom pouşili jazyky s jemn jłími (podrobn jłími) výrazovými prost edky. OpustÍme tuto linku a v dalłím se budeme v novat n kterým jednoduchým p Ípad m t Íd vlastností, které popíłeme podrobn ji. Zavedeme a popíłeme základní metody verifikace vlastností pro jiş zmín né t i typy vlastností. TemporÁlnÍ logika 2 38
Metody verifikace závisí na tom, jak stavovému systému rozumíme a jak jeho relevantní vlastnosti m Şeme popsat pomocí formálního p echodového systému, který stavový systém reprezentuje. a) InvariantnÍ vlastnosti. Chceme-li odvodit invariantní vlastnost A -> B Nej ast ji se metoda d kazu opírá o pouşití n kterého z induk ních odvozovacích pravidel: (ind) A -> B, A -> A - A -> B (ind1) A -> A - A -> A (ind2) A -> B, B -> B - A -> B TemporÁlnÍ logika 2 39
Z nich nap Íklad pravidlo (ind1) lze pouşít k odvození formule bezpe nosti systému ve tvaru A -> A které vyjad uje fakt, jakmile A platí v n jakém stavu, bude platit i ve vłech následujících stavech. P Íklad. (Zakon ující Íta (terminating counter)) tcount který je na n jaké mnoşin data( tcount ) specifikován temporálními axiomy (TC1) c < 100 (TC2) (on c < 100) -> ((on c = c+ 1) ( on c = c)) (TC3) ( on c < 100) -> (( on c = c) (on c = 0)) (TC4) c = 100 -> (on <-> on c = c) TemporÁlnÍ logika 2 40
Zde c a on jsou systémové prom nné pro hodnotu Íta e a ÍzenÍ výpo tu (zapínání, p erułování a vypínání). Formule c < 100 c < 100 c = c+ 1 c = c ale také on on jsou výrokové konstanty. Potom lze odvodit, Şe pro zakon ující Íta platí c = 100 -> (c = 100 ) DÁ se ukázat, Şe takto specifikovaný zakon ující Íta má i tuto vlastnost. c < 100 -> (c = 100 -> on) je-li v n jakém stavu c < 100 a v n kterém z následujících stav c dosáhne hodnoty 100 potom Íta bude zapnut. TemporÁlnÍ logika 2 41
b) Preceden ní vlastnosti Stejn jako v p Ípad bezpe nostních vlastností se preceden ní vlastnosti specifikované formulemi A -> ( B C) odvodí z induk ních pravidel pro operátory. (indunless) A ->( C (A B)) - A -> (B unless C) (indunl) A ->(C (B A)) - A -> (B unl C) (indatnext) A ->( (C -> B) (C -> A)) - A -> (B atnext C) (indbefore) A ->( C (A B)) - A -> (B before C) Ve vłech ty ech p Ípadech hraje formule A podobnou roli jako v pravidle (ind), je nositelem indukce. Pokud A platí v n jakém stavu stavu, pak platí nyní za ur itých podmínek- v dalłím stavu. TemporÁlnÍ logika 2 42
P Íklad. (Ne-zakon ující Íta (non-terminating counter)) count který je na n jaké mnoşin data( count ) specifikován temporálními axiomy on -> ((on c = c+ 1) ( on c = c)) on -> (( on c = c) (on c = 0)) má vlastnost on -> (c= 0 atnext on) ktrerá ÍkÁ, Şe vypnutý Íta bude nastaven na hodnotu 0 pokud bude zapnut v p ÍŁtÍm stavu. TemporÁlnÍ logika 2 43
Pro ne-zakon ující Íta se dá odvodit i dalłí vlastnost c = x -> (c > x unl c = 0) jakákoliv hodnota Íta e nebude v dalłích krocích sníşena krom p Ípadu, Şe Íta bude resetován na 0. c) KoncovÉ vlastnosti jsou specifikovány formulemi tvaru A -> B TemporÁlnÍ logika 2 44
Pro odvozování takových formulí poskytuje výroková temporální logika (LTL) následující dv pravidla (som) A -> B - A -> B (chain) A -> B, B -> C - A -> C která se dají pouşít ve velmi jednoduchých d kazech opírajících se o kone né et zce (posloupnosti) implikací: abychom dokázali A -> B pomocí pravidla (chain), musíme dokázat musíme dokázat dva nebo více malých krok stejného druhu. Pravidlo (som) je jednoduchý prost edek pro pro ospravedln ní takových malých krok. TemporÁlnÍ logika 2 45
I kdyş je tento postup dost asto pouşitelný, pravidla (som) a (chain) jsou slabá. OvŁem v temporální predikátové logice je moşné ob pravidla nahradit jedním siln jłím, univerzáln pouşitelným pravidlem. Nebudeme ho uvád t, ale tento fakt vezmeme na v domí. P Íklad. ( OmezenÝ Íta bcount ) Specifikace takového systému v LTL vznikne upravením specifikace zakon ujícího Íta e následujícím zp sobem: p i dosaşení hodnoty 100, Íta nezakon Í výpo et, ale je vypnut NavÍc je ve výpo tu povoleno vykonat za sebou aş N prázdných krok, kde N je pevn dané p irozené Íslo. TemporÁlnÍ logika 2 46
Nebudeme uvád t p esnou formalizaci takového systému jako StavovÉho p echodového systému, ale napíłeme temporální specifikaci bcount : c < 100 b < N (on c < 100) -> ((on c = c+ 1) ( on c = c b = 0)) (on c = 100) -> ( on c = c b = 0) ( on b < N) -> (( on c = c b = b +1) (on c = 0)) ( on b = N) -> (on c = 0)) Zde b je nová systémová prom nná, která po ÍtÁ po et prázných krok. PovŁimn me si, Şe pro jednoduchost specifikace nevylu ujeme moşnost, Şe na samém za Átku, pokud b > 0 systém bude zapnut aş po mén n Ş N prázdných krocích. TemporÁlnÍ logika 2 47
Z této specifikace je moşné odvodit, Şe systém bcount vlastnost (c = 0) má koncovou vyjad ující fakt, Şe stav, kdy Íta má hodnotu 0 bude dosaşen z kteréhokoli jiného stavu. Podobn se dá ukázat, Şe (c > 0 on) -> (c > 0 on) pokud Íta má nenulovou hodnotu, bude n kdy pozd ji se stejnou hodnotou vypnut. UkÁzali jsme, jak se odvozují t i jednoduché vlastnosti r zných systém z jejich specifikace. Zde neuvedené d kazy nejsou Úpln krátké, ale provád jí se ve výrokové temporální logice. TemporÁlnÍ logika 2 48
D kuji vám za p Íze po celý semestr a za pozornost. TemporÁlnÍ logika 2 49