Temporālās loģikas - PowerPoint PPT Presentation

tempor l s lo ikas n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Temporālās loģikas PowerPoint Presentation
Download Presentation
Temporālās loģikas

play fullscreen
1 / 17
Temporālās loģikas
173 Views
Download Presentation
kaveri
Download Presentation

Temporālās loģikas

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Temporālās loģikas Specifikāciju valodu pamati

  2. Temporālās loģikas: ievads Izteikumu loģika: katrs izteikums patiess vai aplams noteiktā modelī, visos modeļos, nevienā modelī; Modelis: M: AP  {true, false} (AP – elementāro apgalvojumu / izteikumu kopa) Temporālā (izteikumu) loģika: Modelis: lineārā laika struktūra: M = <S,L,x>S – stāvokļu kopa;L – izteikumu patiesuma funkcija: L:AP  S  {true,false}x – stāvokļu virkne: x: N S x=<x(0),x(1), … > Lineārā laika temporālā loģika:Katra LTL formula ir patiesa vai aplama noteiktā modelī, kas ir lineārā laika struktūra (visos šādos modeļos, nevienā modelī). Saturiskā interpretācija programmu analīzē: Programmas darbības vēsture kā lineārā laika struktūra. Programma P “apmierina” LTL specifikāciju , ja  “spēkā” uz visām P darbības vēsturēm. Zarošanās struktūras loģika (branching time logic) – apgalvojumi izteikti par visu programmas stāvokļu pāreju koku kopumā.

  3. Lineārā laika izteikumu loģika PLTL Modelis: lineārā laika struktūra: M = <S,L,x>S – stāvokļu kopa;L – izteikumu patiesuma funkcija: L:AP  S  {true,false}x – stāvokļu virkne: x: N S x=<x(0),x(1), … > LTL formulas: 1) P  AP M |= P, ja x(0)|= P(t.i. L(P,x(0))=true ) 2) p, p  q, p  q, p  q, p  q, true, false, ja p,q – LTL formulas (tradicionālā interpretācija, piemēram, M |= p  q tad un tikai tad, ja M |= p vai M |= q ) 3) □p – “vienmēr” p (p – LTL formula) Ja p=P  AP, tad M |= □ P tad un tikai tad, ja i x(i)|= P 4) ◊p – “kādreiz” p (p – LTL formula) Ja p=P  AP, tad M |= ◊P tad un tikai tad, ja i x(i)|= P 5)p U q - “p līdz q”(p,q – LTL formulas) Ja p=P,q=Q  AP, tad M |= P U Qtad un tikai tad, ja (1) i x(i)|= Q un (2) j j<i  x(j)|= P 6) ○p – “nākošais” p(p – LTL formula)Ja p=P  AP, tad M |= ○P tad un tikai tad, ja x(1)|= P

  4. Lineārā laika izteikumu loģika (2) Modelis: lineārā laika struktūra: M = <S,L,x>S – stāvokļu kopa;L – izteikumu patiesuma funkcija: L:AP  S  {true,false}x – stāvokļu virkne: x: N S x=<x(0),x(1), … > Definējam: x<i> = <x(i),x(i+1),… >, M<i> = <S,L,x<i>> M|= pvietā var rakstīt arīx|= p, ja S,L - skaidri LTL formulas (ar semantiku vispārīgajā gadījumā): 1) P  AP M |= P, ja x(0)|= P(t.i. L(P,x(0))=true ) 2) p, p  q, p  q, p  q, p  q, true, false 3) □p – “vienmēr” p M |= □ p tad un tikai tad, ja i M<i>|= p 4) ◊p – “kādreiz” p M |= ◊p tad un tikai tad, ja i M<i>|= p 5)p U q - “p līdz q” M |= p U qtad un tikai tad, ja (1) i M<i>|= q un (2) j j<i  M<j>|= p 6) ○p – “nākošais” pM |= ○p tad un tikai tad, ja M<1>|= p

  5. Lineārā laika izteikumu loģika (3) PLTL formula p ir izpildāma, ja eksistē tāda lineārā laika struktūra M, kurai M |= p. PLTL ir vispārpatiesa, ja M |= p ir spēkā jebkurai lineārā laika struktūrai M (pieņemot, ka M un p atomāro apgalvojumu nosaukumu kopas ir saskaņotas). Rakstam |= p . |= true  p  p |= ◊p  true U p |= false  true |= □p  (◊  p) |= p W q  (p U q)  □p (“p waiting for q”) |= p B q (( p) U q) (“p before q”) |= □  p   ◊p |= ◊  p   □ p |= ○  p  ○p (tikai viena nākotne) |=((p) U q)  (p B q) |= □ □ p  □ p |= ◊ ◊ p  ◊ p |= □ ◊ □ p  ◊□ p |= ◊ □ ◊ p  □◊ p |= ◊(p  q)  ◊p  ◊q |= □(p  q)  □ p □ q |= ((p  q) U r)  (p U r)  (q U r) Otrādi nav spēkā |= (p U (q r))  (p U q)  (p U r)

  6. Piezīme: PLTL vs. FOLLO FOLLO – First-Order Language of Linear Order (pirmās kārtas lineārā sakārtojuma valoda). P,Q, … – vienargumenta predikāta simboli (kopa AP) t,u, … - individuāli mainīgie (ar vērtībām no N) < - simbols “mazāks” Formulas:  ::= t < u | P(t) | 1  2 | 1  2 |  1 | t 1(t- brīvs mainīgais) Semantiskais modelis: L*: N  AP  {true, false}, definē katra predikāta patiesumu katrā punktā, ļauj noteikt katras slēgtas formulas patiesumu. FOLLO modelis L* atbilst PLTL lineārā laika struktūrai <S,L,x>, ja tajos sakrīt kopas AP un katram P  AP i  N L*(i,P) = L(x(i),P) . Rakstam <S,L,x> |= , ja L* |= . Rezultāts. Katrai FOLLO formulai (u) ar vienu brīvu mainīgo eksistē atbilstoša PLTL formula , tāda, ka <S,L,x> |= (0) tad un tikai tad, ja <S,L,x> |=  jebkurai lineārā laika struktūrai <S,L,x> .

  7. PLTL ar pagātnes modalitātēm PLTL paplašinājums, iespēja pateikt “vienmēr līdz šim”, “kādreiz līdz šim”. Semantiskais modelis: <S,L,x,i>, i – punkts vēsturē x, runājam par <S,L,x,i> |=  , rakstam ○ saīsināti <x,i> |=  “Nākotnes formulām”: <x,i> |= □p, ja j (ja j i tad <x,j> |= p)<x,i> |= ◊p, ja j (j i un <x,j> |= p)<x,i> |= p U q, ja j (j i un <x,j> |= q, un k (ja ik<j tad <x,k> |= p))<x,i> |= ○p, ja <x,i+1> |= p Pagātnes formulas: <x,i> |= p U- q, ja j (j  i un <x,j> |= q, un k (ja i  k>j tad <x,k> |= p))<x,i> |= ○-p, ja i > 0 un <x,i-1> |= p Atvasinātās pagātnes formulas:<x,i> |= □ - p, ja j (ja j  i tad <x,j> |= p)<x,i> |= ◊-p, ja j (j  i un <x,j> |= p), un citas, … p ir iniciāli izpildāma, ja <M,0> |= p kādai lineārā laika struktūrai M. p ir globāli izpildāma, ja eksistē M un i, ka <M,i> |= p. Vispārpatiesums, ekvivalence iniciālās un globālās versijās. Globāli PLTLB ir spēcīgāka, nekā PLTL. Iniciāli – vienādi spēcīgas. Pamatā lietosim iniciālo izpildāmības, ekvivalences, vispārpatiesuma variantus.

  8. LTL formulu interpretācija pār programmām Programmas: paralēlas, reaktīvas (“reālā laika sistēmas”) P ---> <S,,s0P> - stāvokļu pāreju sistēma   SS, s0P  S ---> Comp(P) – darbības vēsturu kopa x =<x(0),x(1),…>  Comp(P), ja x(0) = s0P , i x(i)  x(i+1) Loģiskā formula: uzdota, izmantojot noteiktu atomāro apgalvojumu kopu AP Nepieciešams: “patiesuma funkcija” L: S  AP  {true, false} Formula  “ir spēkā” uz programmas P (ņemot vērā patiesuma funkciju L) tad un tikai tad, ja <S,L,x> |=  visiem x  Comp(P). Patiesuma funkcija L “vienkāršos piemēros” bieži saprotama no konteksta informācijas (bet ja nav saprotama, tad atklāti jānorāda, kā iegūstama).

  9. Pirmās kārtas lineārā temporālā loģika (FOLTL) Pirmās kārtas lokālā valoda L + Temporālās saites L simboli: apgalvojumi (P,Q,…), predikāti (,,…), funkcijas (f,g,…), konstantes (c,d,…), mainīgie (x,y,…),  - vienādība, ,  - kvantori. Termi: t ::= c | y | f(t1,…, tn) Atomāras formulas: a ::= P | (t1,…, tn) | t1  t2 Formulas: p ::= a | p1  p2 | p1 | y p1(citas var tikt definētas) Semantika: Interpretācija I piešķir konkrētas vērtības P, , f, c, y, kas balstītas uz noteiktu apgabalu D. FOLTL simboli – globāli (vienādi visos stāvokļos) un lokāli. , f, c – vienmēr globāli. P, x – var būt lokāli un var būt globāli. FOLTL termi: t ::= c | y | f(t1,…, tn) | t1+ (t1+ - terma t1 vērtība “nākošajā” stāvoklī) FOLTL formulas: p ::= a | p1  p2 | p1 | y p1 | p1U p2 | ○p1 Semantika: Pirmās kārtas lineārā laika struktūra M=<S,L,x>, kur L(s) katram stāvoklim s S ir interpretācija, kas piešķir vērtības visiem simboliem. Semantika definēta standarta veidā, kombinējot PLTL un L. Katram globālam simbolam w L(s)(w) = L(s’)(w) s,s’ S

  10. FOLTL piemērs: programmas darbības apraksts while x <> y doif x < y then y := y-x else x := x-y fi od □ (  ( x = y  x+ = x  y+ = y )  ( x < y  x+ = x  y+ = y-x )  ( x > y  x+ = x-y  y+ = y ) ) Formula nosaka, kā var mainīties x un y vērtības. Formula apraksta bezgalīgu stāvokļu virkni. Galīga virkne tiek kodēta, atkārtojot līdz bezgalībai galīgās virknes beigu stāvokli (var būt arī citas vienošanās attiecībā uz galīgu virkņu kodēšanu).

  11. Paralēlas sistēmas: nediskriminācija Nediskriminācija (fairness): programmas darbības vēstures raksturojums Programmas pāreēju attiecība sastāv no galīga skaita dažādām pārejām 1, 2, …, n enabled(i,s) = s’: s i s’ enabled(i,x) = s’: x(0) i s’ Pāreja i iespējama no x pirmā stāvokļa taken(i,x) = x(0) i x(1) Pāreja i tiek veikta no x pirmā stāvokļa Pieņemsim, ka mums ir predikāti enabled(i) un taken(i), ka <S,L,x> |= enabled(i) tad un tikai tad, ja enabled(i,x) ir spēkā un <S,L,x> |= taken(i) tad un tikai tad, ja taken(i,x) ir spēkā weakly_fair(i) == ◊□ enabled(i)  □◊taken(i) Vājā nediskriminācija Ja kādā virknē pāreja i ir nepārtraukti iespējama, sākot no kādas vietas, tad tā tiek bezgalīgi bieži izpildīta (Nav tā, ka pāreja ir nepārtraukti iespējama un tiek visu laiku bloķēta). strongly_fair(i) == □◊ enabled(i)  □◊taken(i) Stingrā nediskriminācija Ja kādā virknē pāreja i ir iespējama bezgalīgi bieži, tad tā tiek bezgalīgi bieži izpildīta (Nav tā, ka pāreja tiek laiku pa laikam piedāvāta un tiek vienmēr bloķēta).

  12. Nediskriminācijas modelēšana FOLTL: piemērs enabled(i,x) = s’: x(0) i s’ Pāreja i iespējama no x pirmā stāvokļa taken(i,x) = x(0) i x(1) Pāreja i tiek veikta no x pirmā stāvokļa Raksturot enabled(i), taken(i) kā sintaktiskus predikātus. Multipāreju sistēma: <Var,S,T,B>Var – mainīgo kopa (lokāli, fleksibli mainīgie)S – stāvokļu kopa, T – galīga pāreju kopa, B – sākuma nosacījums. Var = {y1,y2,…,yn}, Var+ = {y1+,y2+,…,yn+} Katra pāreja t uzdota ar pārejas nosacījumu: r[t] (Var,Var+) = C[t](Var)  (y1+=e1)  (y2+=e2)  …  (yn+=en) Tad enabled(t) = C[t], taken(t) = r[t] (Var,Var+) weakly_fair(t) == ◊□ enabled(t)  □◊taken(t) strongly_fair(t) == □◊ enabled(t)  □◊taken(t)

  13. Temporālo īpašību veidi Drošības īpašība p:kaut kas “slikts” nenotiks.Katrai virknei x = <x(0),x(1),…>, kas neapmierina p, eksistē galīgs sākuma fragments x = <x(0),x(1),…, x(k)>, kuram ne uz viena bezgalīga turpinājuma nav spēkā p.(ir “slikti” jau uz <x(0),x(1),…, x(k)> un vēlāk nevar kļūt vairs “labi”). Sintaktiskais raksturojums drošības īpašībām: □p, kur p – tīra pagātnes formula. Dzīvības (liveness) īpašība p:kaut kas “labs” galu galā notiks.Katra galīga stāvokļu virkne var tikt turpināta līdz bezgalīgai virknei, kas apmierina p. Sintaktiskais raksturojums: sk. Emerson Piemēram, formulas ar veidu ◊p, □◊p, ◊□p, kur p – elementārs (stāvokli raksturojošs) apgalvojums, vai arī noteikta veida pagātnes formula. Literatūrā “dzīvības” īpašības tiek sauktas arī par progresa īpašībām, aplūkotas dažādas “progresa klases”.

  14. Drošības īpašību piemēri Globāls invariants: □q Lokāls invariants: □(q) Daļējā korektība: □(after_P  q), p  □(after_P  q) (var pierādīt, ka atbilst drošības īpašības formai) Brīvība no dedlokiem: □(enabled(t1)  enabled(t2)  …  enabled(tm)) Savstarpējā izslēgšana: □ (in_C1  in_C2) Stingrā precedence: □[(in_T1  in_N2)  (in_C2) W in_C1 ] Loop forever do [N1; T1; C1] || Loop forever do [N2; T2; C2]

  15. Progresa īpašību piemēri Apstāšanās: ◊ after_P Pilnā korektība: p  ◊ (after_P  q) Temporālā implikācija: □ (p  ◊ q) Pieeja resursam: □ (in_T1  ◊ in_C1) Signāla nosūtīšana nedrošā buferī: □ (□ ◊ send  ◊ receive) Brīvība no live-lock □ ◊  in_L

  16. TL Verifikācijas metodes A. Deduktīvas (ar pierādījuma sistēmām) B. Modeļbāzētas (mēģinājumi automātiski konstruēt formulai modeli, galvenokārt izteikumu TL gadījumā) Deduktīvie pierādījumi. Drošības īpašības: invarianta metode p, □(p ○p) |= □p Progresa īpašības: tranzitivitāte □(p ◊q) , □(q ◊r) |= □(p ◊r) nediskriminācijas pieņēmumi: ◊□ enabled(t)  □ ◊ taken(t) □ ◊ enabled(t)  □ ◊ taken(t) labi sakārtotas kopas:□ (p(a)  ◊ (b<a (p(b)  q))) |= □ ((a p(a) )  ◊ q) Plašāk: sk. Emerson

  17. Modeļbāzētā PLTL verifikācija Dota PLTL formula p (vai formulu kopa {p1,p2,…,pk}). 1. Veikt p dekompozīciju par elementāro formulu kopām (katra no kopām uzrāda iespēju, kā “izpildīt” p). Elementāras formulas: (i) AP un to negācijas, (ii) ○ - formulas. Ja vajadzīgs, atkārtoti, lieto likumus: q  { {q} }  ○ q  { {○  q} } q1  q2  { {q1,q2} } q1  q2  { {q1}, {q2} } q1 U q2  { {q2}, {q1, ○ (q1 U q2)} }  (q1 U q2)  { { q1,  q2}, { q2, ○ (q1 U q2)} } 2. Ja p * {F1,F2,…,Fk}, tad katram i veido X-pārejas: {q1,q2, ○p1, ○p2}  {p1, p2} 3. Attiecība  definē pāreju sistēmu; automāts uz bezgalīgajiem vārdiem. Stretta akceptēšanas nosacījums. Meklē bezgalīgus ceļus, kas piepilda visas uzstādītās eventualitātes (U labā puse).