1 / 17

Temporālās loģikas

Temporālās loģikas. Specifikāciju valodu pamati. 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)

kaveri
Télécharger la présentation

Temporālās loģikas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related