CTLjanowska/publications/phd... · 2007. 10. 25. · CTL∗ −X, to jest CTL∗ b ez op eratora...

139

Transcript of CTLjanowska/publications/phd... · 2007. 10. 25. · CTL∗ −X, to jest CTL∗ b ez op eratora...

  • Uniwersytet WarszawskiWydziaª Matematyki, Informatyki i MehanikiAgata JanowskaGenerowanie automatów zasowyh dlasystemów zasu rzezywistegoRozprawa doktorska

    Promotor rozprawydo. dr hab. Wojieh PenzekInstytut Podstaw InformatykiPolskiej Akademii Naukmaj 2007

  • O±wiadzenie autora rozprawyO±wiadzam, »e niniejsza rozprawa zostaªa napisana przeze mnie samodzielnie.Data Podpis autora rozprawy

    O±wiadzenie promotora rozprawyNiniejszym o±wiadzam, »e rozprawa jest gotowa do oeny przez reenzentów.Data Podpis promotora rozprawy

  • StreszzenieKomeryjne systemy zasu rzezywistego s¡ projektowane gªównie w j�zykah wyso-kiego poziomu, wspomaganyh przez narz�dzia uªatwiaj¡e ih testowanie, symulaj�, zygenerowanie kodu wykonywalnego, ale rzadko wspieraj¡e ih formaln¡ wery�kaj�. Przy-kªadami j�zyków wysokiego poziomu, które pozwalaj¡ na wyra»anie zale»no±i zasowyh s¡Estelle i SDL, j�zyki opisu protokoªów komunikayjnyh i systemów rozproszonyh. Rów-nie» popularne j�zyki programowania i modelowania s¡ obenie wzbogaane o elementyumo»liwiaj¡e de�niowanie warunków zasowyh. Z drugiej strony du»a z�±¢ bada« w tejdziedzinie dotyzy opraowania i rozwijania metod wery�kaji dla modeli takih jak auto-maty zasowe i siei Petriego z zasem. Intensywny rozwój prze»ywaj¡ zwªaszza metodywery�kaji modelowej automatów zasowyh.Aby mó zastosowa¢ metody i narz�dzia wery�kaji modelowej automatów zasowyh dosprawdzania poprawno±i systemów zasowyh, opisanyh w j�zykah wysokiego poziomu,proponujemy dokona¢ tªumazenia z tyh j�zyków do automatów zasowyh. W tym eluwprowadzamy reprezentaj� po±redni¡, tak zwany j�zyk bazowy. Generowanie automatówodbywa si� w dwóh krokah. Najpierw opis systemu w danym j�zyku jest tªumazonydo reprezentaji po±redniej, a z niej do automatów zasowyh. Na pierwszy krok powinnysi� skªada¢ przeksztaªenia wyª¡znie syntaktyzne. Dlatego j�zyk bazowy musi by¢ wy-starzaj¡o bogaty, aby umo»liwi¢ wyra»anie wszystkih istotnyh aspektów komunikajii synhronizaji systemów wspóªbie»nyh z ogranizeniami zasowymi.W rozprawie zostaªy przedstawione dwie metody generowania automatów zasowyhdla systemu zasowego opisanego w j�zyku bazowym. Pierwsza metoda konstruuje jedenautomat zasowy (tak zwany automat globalny) dla aªego systemu. Niektóre metodyi narz�dzia wery�kaji modelowej dziaªaj¡ du»o bardziej efektywnie, je»eli zamiast jednego(najz�±iej du»ego) automatu mog¡ operowa¢ na zbiorze mniejszyh automatów, opisuj¡-yh poszzególne skªadowe systemu. Dlatego opraowano drug¡ metod� buduj¡¡ zbiórautomatów zasowyh dla systemu zasowego, w którym poszzególne automaty odpowia-daj¡ skªadowym systemu.Istotnym problemem w praktyznym wykorzystaniu metod wery�kaji modelowej jestwykªadniza eksplozja lizby stanów modelu. Dlatego, podzas generowania automatówzasowyh wykorzystane s¡ metody redukji modeli. Praa przedstawia zastosowanie ana-lizy statyznej do uzyskania abstrakyjnego modelu systemu. Proponowana metoda jestoparta na tehnie i�ia programów. W przedstawionej metodzie abstrakja systemu za-howuje prawdziwo±¢ formuª logiki temporalnej CTL∗−X, to jest CTL∗ bez operatora na-st�pnego kroku.Sªowa kluzowe: systemy zasowe, automaty zasowe, wery�kaja modelowa, analizastatyzna, metoda i�ia programówKlasy�kaja tematyzna pray wedªug ACM Computing Classi�ation System:D.1.3, D.2.1, D.2.4, F.3.1.

  • AbstratFormal methods used for a pratial design of timed systems are based on the wellknown spei�ation languages like Estelle, SDL, or Lotos. These formalisms are supportedby various development failities inluding editing, ode and test generating, debugging, orsimulating. But, they lak automated veri�ation tools. On the other hand, model hekingseems to be one of the leading and the most promising veri�ation tehniques for hardwareand software. Unfortunately, there is a gap between the above high level spei�ationlanguages and low level input formalisms (mostly networks of timed automata) for modelhekers.The aim of this thesis is to over this gap, i.e., to provide a method of generating timedautomata from high level spei�ation languages. The main idea is to use an intermediaterepresentation. The proess of translation involves two steps � a translation to the inter-mediate language and from the intermediate language to timed automata. The �rst stepshould be merely syntatial, beause the intermediate language is rih enough to desribeall important aspets of ommuniation and onurreny.Twe thesis provides two methods of generating timed automata. The �rst one onstrutsone automaton for the whole system whereas the other one � a network of automata, onefor eah omponent of the spei�ed system. A desription in terms of loal omponentsprovides a more ompat representation and an be exploited by symboli model hekingmethods that take advantage of loality to alleviate the state explosion problem.The thesis proposes also how stati analysis an be used to extrat an abstrat modelof a timed system. Our method uses tehniques of program sliing to examine syntax ofa system modeled in the intermediate language. The method is property driven. Theabstration is exat with respet to all properties expressed in the temporal logi CTL∗−X,i.e., CTL∗ without the next step operator. The redution is perfomed at the very beginningof the veri�ation proess and this makes it bene�ial and e�ient in handling the stateexplosion problem.Keywords: timed systems, timed automata, model heking, stati analysis, programsliingACM Computing Classi�ation System: D.1.3, D.2.1, D.2.4, F.3.1.

  • Pami�i mojej Mamy

  • Podzi�kowaniaPragn� serdeznie podzi�kowa¢ do. dr hab. Wojiehowi Penzkowi za wiele ennyhuwag i komentarzy przy pisaniu niniejszej rozprawy, a tak»e za dobr¡ atmosfer� podzasaªej wspóªpray. Podzi�kowania skªadam równie» prof. Piotrowi Dembi«skiemu za umo»-liwienie mi pray w zespole naukowów skupionyh w Instytuie Podstaw Informatyki PANwokóª projektu VerICS. Chiaªabym podzi�kowa¢ im wszystkim z osobna za wszelk¡ po-mo jakiej mi udzielili w trakie naszej wspóªpray, a tak»e za jej miª¡ atomsfer�. Dzi�kuj�wi� Agaie Póªroli, Bo»enie Wo¹niej, Gizeli Jakubowskiej, Magdzie Kasprzak, MirkowiKurkowskiemu, Wojtkowi Nabiaªkowi, Arturowi Niewiadomskiemu, Maiejowi Orzehow-skiemu, Maiejowi Szreterowi i Andrzejowi Zbrzeznemu. Ostatnie, lez niemniej wa»nepodzi�kowania skªadam mojej Rodzinie, a przede wszystkim M�»owi.

  • Spis tre±i1 Wst�p 32 Automaty zasowe 92.1 Automaty zasowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.1 Etykietowany system tranzyyjny . . . . . . . . . . . . . . . . . . . . 92.1.2 Skªadnia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.3 Semantyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.4 Zªo»enie automatów zasowyh . . . . . . . . . . . . . . . . . . . . . 122.1.5 Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.1.6 Przykªady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Wery�kaja automatów zasowyh . . . . . . . . . . . . . . . . . . . . . . . 162.2.1 Logiki temporalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.2 Wery�kaja modelowa . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.3 Relaje równowa»no±i systemów . . . . . . . . . . . . . . . . . . . . 193 J�zyk bazowy 213.1 Skªadnia abstrakyjna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1.1 De�nije i oznazenia . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 Semantyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3 Poprawno±¢ programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4 Przykªady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.4.1 Produent i konsument . . . . . . . . . . . . . . . . . . . . . . . . . 323.4.2 Protokóª Fishera wzajemnego wykluzania . . . . . . . . . . . . . . 343.4.3 Protokóª zmieniaj¡ego si� bitu . . . . . . . . . . . . . . . . . . . . . 353.5 Podsumowanie rozdziaªu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Generowanie automatów zasowyh dla j�zyka bazowego 394.1 Zegary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 Globalny automat zasowy . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.1 De�nija automatu globalnego . . . . . . . . . . . . . . . . . . . . . 414.2.2 Funkja warto±iuj¡a dla automatu globalnego . . . . . . . . . . . . 424.2.3 Przykªad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2.4 Poprawno±¢ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3 Zbiór automatów zasowyh . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

  • 4.3.1 Ogranizenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.3.2 Niezale»ne zmienne globalne i bufory . . . . . . . . . . . . . . . . . . 514.3.3 Etykiety w automatah skªadowyh . . . . . . . . . . . . . . . . . . 514.3.4 Automaty skªadowe dla proesów . . . . . . . . . . . . . . . . . . . . 524.3.5 Automaty skªadowe dla zmiennyh globalnyh i buforów . . . . . . . 534.3.6 Funkje warto±iuj¡e dla automatów skªadowyh . . . . . . . . . . . 544.3.7 Przykªad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.3.8 Poprawno±¢ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.4 Redukja lizby zegarów w automatah zasowyh . . . . . . . . . . . . . . 634.5 Podsumowanie rozdziaªu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 Redukja przestrzeni stanów programu metod¡ i�ia 695.1 Relaje zale»no±i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.1.1 Zale»no±¢ danyh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.1.2 Zale»no±¢ przepªywu sterowania . . . . . . . . . . . . . . . . . . . . . 715.1.3 Zale»no±¢ zasowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.1.4 Zale»no±¢ od synhronizaji . . . . . . . . . . . . . . . . . . . . . . . 815.2 Zredukowany program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.2.1 Kryterium i�ia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.2.2 Istotne operaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.2.3 Istotne stany kontrolne . . . . . . . . . . . . . . . . . . . . . . . . . 845.2.4 Zredukowany program . . . . . . . . . . . . . . . . . . . . . . . . . . 865.3 Poprawno±¢ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.4 Wyniki eksperymentalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055.5 Podsumowanie rozdziaªu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 Podsumowanie 113

    2

  • Rozdziaª 1Wst�pSystemy zasu rzezywistego, nazywane te» systemami zasowymi, to systemy, któryhdziaªanie jest uzale»nione od upªywu zasu. Wery�kaja systemów zasowyh jest wa»nymzagadnieniem wspóªzesnej informatyki ze wzgl�du na to, »e oraz wi�ej takih systemówma wpªyw na nasze bezpieze«stwo � na przykªad systemy sterowania ruhem drogowymi kolejowym, zy oprogramowanie sprz�tu medyznego.Modelowanie systemów wspóªbie»nyh, w tym tak»e zasowyh, opiera si� gªównie natrzeh podej±iah: algebrze proesów [Mil80℄, komunikuj¡yh si� automatah [Zie87℄ i sie-iah Petriego [Rei85℄. J�zyki wy»szego rz�du opisuj¡e systemy zasowe bazuj¡ gªówniena powy»szyh modelah, o umo»liwia odpowiednie adaptowanie metod wery�kaji. Du»az�±¢ bada« w tej dziedzinie dotyzy opraowania i rozwijania metod wery�kaji dla modelisystemów wspóªbie»nyh z zasem takih jak automaty zasowe [AD90℄ i siei Petriego zzasem [Wal83℄. Intensywny rozwój prze»ywaj¡ zwªaszza metody wery�kaji modelowej(ang. model heking) automatów zasowyh, zego dowodem jest powstanie i staªe udosko-nalanie narz�dzi takih jak Kronos [DOTY95℄, UppAal [PL00℄, HyTeh [HHWT97℄ a tak»eVerICS [DJJ+03a℄, rozwijany w Instytuie Podstaw Informatyki PAN.Z drugiej strony, komeryjne systemy zasu rzezywistego s¡ projektowane gªównie wj�zykah wy»szego poziomu, wspomaganyh przez narz�dzia uªatwiaj¡e ih testowanie,symulaj�, zy generowanie kodu wykonywalnego, ale rzadko wspieraj¡e ih formaln¡ we-ry�kaj�. Przykªadami j�zyków wysokiego poziomu, które pozwalaj¡ na wyra»anie zale»no-±i zasowyh s¡ Estelle [ISO97℄ i SDL [MT01℄, j�zyki opisu protokoªów komunikayjnyhi systemów rozproszonyh. Równie» powszehnie stosowane j�zyki modelowania (takie jakUML), a nawet popularne j�zyki programowania s¡ obenie wzbogaane o elementy umo»-liwiaj¡e de�niowanie warunków zasowyh [BG00, DJPV02℄.Aby mó zastosowa¢ metody i narz�dzia wery�kaji modelowej automatów zasowyh dosprawdzania poprawno±i systemów zasowyh, opisanyh w j�zykah wysokiego poziomu,proponujemy dokona¢ tªumazenia z tyh j�zyków do automatów zasowyh.Istotnym problemem w praktyznym wykorzystaniu metod wery�kaji modelowej jestwykªadniza eksplozja lizby stanów modelu. Dlatego, podzas generowania automatówzasowyh wykorzystane s¡ metody redukji modeli.3

  • Cele rozprawyPodstawowym zamierzeniem rozprawy jest dostarzenie metod i narz�dzi generowania au-tomatów zasowyh na podstawie opisu systemów w j�zykah wysokiego poziomu. W tymelu wprowadzamy reprezentaj� po±redni¡, tak zwany j�zyk bazowy. Generowanie automa-tów odbywa si� w dwóh krokah. Najpierw opis systemu w danym j�zyku jest tªumazonydo reprezentaji po±redniej, a z niej do automatów zasowyh. Na pierwszy krok powinnysi� skªada¢ przeksztaªenia wyª¡znie syntaktyzne. Dlatego j�zyk bazowy musi by¢ wy-starzaj¡o bogaty, aby umo»liwi¢ wyra»anie wszystkih istotnyh aspektów komunikajii synhronizaji systemów wspóªbie»nyh z ogranizeniami zasowymi.Dla systemu opisanego w j�zyku bazowym opraowano metody konstruowania automa-tów zasowyh, a tak»e metod� redukji, dzi�ki której budowane automaty maj¡ mniejszerozmiary (w sensie lizby zegarów, stanów i tranzyji). J�zyk bazowy i obie metody zostan¡krótko omówione w kolejnyh punktah, które odpowiadaj¡ gªównym rozdziaªom rozprawy.J�zyk bazowySystem zasu rzezywistego opisujemy w j�zyku bazowym jako zbiór proesów, zmien-nyh aªkowityh i buforów komunikayjnyh. Ka»dy proes jest przedstawiony w sposóbautomatowo-zorientowany. Proesy wykonuj¡ pewne akje (synhronizne) wspólnie, a inne(lokalne) na zasadzie przeplotu. J�zyk dostarza tak»e mehanizmów do komunikaji asyn-hroniznej � poprzez wymian� wiadomo±i za pomo¡ buforów. W j�zyku nie wyst�puj¡jawnie zmienne reprezentuj¡e zas, jednak z ka»d¡ akj¡ mo»e by¢ zwi¡zane tak zwanedozwolone opó¹nienie, które okre±la zas w jakim akja mo»e by¢ wykonana.W j�zyku mo»na równie» de�niowa¢ zmienne zdaniowe, które mog¡ by¢ u»yte do budowyformuª logiznyh ró»nyh logik temporalnyh opisuj¡yh wªasno±i systemu typowe dlasystemów wspóªbie»nyh, takie jak wªasno±i bezpieze«stwa i »ywotno±i. Na przykªadmo»na zde�niowa¢ zmienn¡, która ma warto±¢ prawda zawsze wtedy, gdy proes znajdujesi� w okre±lonym stanie lub kiedy warto±¢ zmiennej systemu speªnia okre±lony warunek.W rozprawie przedstawiono skªadni� i semantyk� operayjn¡ j�zyka bazowego, a tak»ekilka przykªadów zastosowania j�zyka do opisu systemów z zasem.Generowanie automatów zasowyh dla j�zyka bazowegoAutomaty zasowe zostaªy zde�niowane w pray [AD90℄ jako sko«zenie stanowe automatyBühiego rozszerzone o zmienne rzezywiste reprezentuj¡e zegary. Stan w automaie zaso-wym jest zwyzajowo nazywany lokaj¡, aby odró»ni¢ go od stanu w jakim mo»e znajdowa¢si� automat, na który opróz lokaji skªada si� tak»e warto±iowanie zegarów. Najze±ieju»ywana de�nija automatów (tak»e w tej rozprawie) pohodzi z pray [HNSY94b℄, gdziezamiast warunków akeptuj¡yh Bühiego zostaªy wprowadzone niezmienniki lokaji.Sprowadzanie jednego formalizmu do innego jest powszehnie stosowanym rozwi¡za-niem. Tªumazenie do automatów zasowyh zostaªo wykonane dla algebry proesów ATP[NSY92℄, j�zyka ET-LOTOS [DOY94℄ i j�zyka Esterel wzbogaonego o zale»no±i zasowe[BCP+01℄. Wspóln¡ eh¡ tyh modeli jest brak mehanizmów komunikaji asynhroniz-nej. Wspóªdziaªanie mi�dzy proesami opiera si� jedynie na synhroniznym wykonywaniupewnyh akji. W tym przypadku tªumazenie polega na zbudowaniu osobnego automatu4

  • zasowego dla ka»dego proesu i naturalnym przeniesieniu metody synhronizaji (w auto-matah zasowyh przej±ia o tej samej etykieie wykonywane s¡ wspólnie). Pewne trudno-±i pojawiaj¡ si�, gdy j�zyk opisu systemu zasowego dostarza mehanizmów komunikajiasynhroniznej, na przykªad poprzez wymian� komunikatów, poniewa» takie bezpo±rednietªumazenie nie jest wtedy mo»liwe.W rozprawie zostaªy przedstawione dwie metody generowania automatów zasowyhdla systemu zasowego opisanego w j�zyku bazowym. Pierwsza metoda konstruuje jedenautomat zasowy (tak zwany automat globalny) dla aªego systemu. Lokaja globalnegoautomatu zasowego odpowiada kon�guraji systemu okre±lonej przez stany wszystkih jegoskªadowyh (proesów, zmiennyh i buforów komunikayjnyh). Intuiyjnie, w globalnymautomaie zasowym istnieje przej±ie z jednej lokaji do drugiej, je»eli system b�da wkon�guraji odpowiadaj¡ej pierwszej lokaji mo»e wykona¢ akj�, w wyniku której systemznajdzie si� w kon�guraji odpowiadaj¡ej drugiej lokaji. Ogranizenia zasowe wykony-wanyh akji s¡ modelowane przez odpowiednie warunki na zegarah automatu.Niektóre metody i narz�dzia wery�kaji modelowej dziaªaj¡ du»o bardziej efektywnie,je»eli zamiast jednego (najz�±iej du»ego) automatu mog¡ operowa¢ na zbiorze mniejszyhautomatów, opisuj¡yh poszzególne skªadowe systemu. Ozywi±ie, w zasie wery�kajianalizowane s¡ przebiegi automatu produktowego automatów skªadowyh. Dlatego oprao-wano drug¡ metod� buduj¡¡ zbiór automatów zasowyh dla systemu zasowego, w którymposzzególne automaty odpowiadaj¡ skªadowym systemu. Lokaje skªadowyh automatówzasowyh odpowiadaj¡ kon�gurajom poszzególnyh elementów systemu.W rozprawie zostaªo wykazane, »e dana wªasno±¢ wyra»ona jako formuªa logiki CTL∗jest prawdziwa dla systemu opisanego w j�zyku bazowym wtedy i tylko wtedy, gdy jestprawdziwa dla automatu globalnego zbudowanego dla tego systemu. Analogizne twierdze-nie jest prawdziwe dla zbioru automatów zasowyh.W konstrukji zwróono szzególn¡ uwag� na to, aby lizba zegarów w generowanyhautomatah byªa jak najmniejsza, poniewa» zªo»ono±¢ problemu wery�kaji modelowej au-tomatów zasowyh jest wykªadniza wzgl�dem lizby u»ytyh zegarów [AD94℄. Rozwa»amyrównie» metody generowania automatów dla pewnyh podklas systemów j�zyka bazowego,takih jak systemy nie wykorzystuj¡e mehanizmów komunikaji asynhroniznej.Przedstawione metody generowania automatów zasowyh zostaªy opublikowane w ma-teriaªah konferenji CS&P'02 [DJJ02℄ oraz zaimplementowane jako moduªy systemu we-ry�kayjnego VerICS [DJJ+03a, DJJ+03b℄ dost�pnego pod adresem:http://veris.ipipan.waw.pl.Redukja przestrzeni stanów metod¡ i�iaGªównym problemem w automatyznej wery�kaji modelowej jest wykªadniza eksplozjalizby stanów modelu [Val98℄, która ograniza rozmiary systemów, z którymi mo»na si�zmierzy¢ w proesie wery�kaji. Z tego powodu metody ogranizania eksplozji stanówmaj¡ du»e znazenie praktyzne. Dla systemów bez zasu zostaªy opraowane ró»ne me-tody, które redukuj¡ rozmiary przestrzeni stanów u»ytej w proesie wery�kaji. Metodyte s¡ dostosowane do j�zyków spey�kaji, w któryh wyra»ane s¡ wery�kowane wªasno±i,takih jak logiki temporalne. Do najwa»niejszyh z nih nale»¡ metody redukji z�±iowo-5

  • porz¡dkowyh [Val89, Pel98, GKPP99℄, abstrakje [DGG94℄, metody wykorzystuj¡e syme-tri� [EJ93℄, zy metody symbolizne [Bry86, MM93, BCC+99℄.Niektóre z powy»szyh metod zostaªy uogólnione dla systemów z zasem. Po raz pierw-szy metody redukji z�±iowo-porz¡dkowyh dla systemów modelowanyh przez siei Pe-triego z zasem stosuje Yoneda [YSSC93℄. Kolejne próby dotyz¡ automatów zasowyh[Pag96, DGKK98℄. Z kolei metod� abstrakji dla systemów zasowyh przedstawiono mi�-dzy innymi w pray [DT98℄.Odmiennym podej±iem jest zastosowanie metod redukji nie na modelu systemu, ale najego reprezentaji. Metody takie okre±la si� mianem analizy statyznej. Jedyn¡ znan¡ prób�zastosowania statyznej redukji z�±iowo-porz¡dkowej stanowi praa [KLM+98℄, w którejredukji poddano j�zyk SDL na etapie tªumazenia do j�zyka wej±iowego wery�katoraCOSPAN [AK96℄.Dla systemów zasowyh jest stosunkowo niewiele opraowa« na ten temat. W pray[BGO02℄ zde�niowano poj�ie wpªywu (ang. in�uene, dualne do poj�ia niezale»no±i)dla systemów zasowyh modelowanyh przez automaty zasowe rozszerzone o interfejsy.Pozostaªymi tehnikami analizy statyznej dla systemów z zasem s¡: metoda oparta naeliminaji nieaktywnyh zegarów [DY96℄ i bardziej ogólna metoda oblizania istotnyh wa-runków na zegarah [BBFL03℄ w automatah zasowyh.W rozprawie przedstawiono metod� konstrukji abstrakyjnego modelu opart¡ na sta-tyznej analizie opisu systemu, a konkretnie na metodzie i�ia (ang. sliing). Metoda tazaproponowana przez Weisera [Wei84℄ polega na wykorzystaniu statyznej analizy opisusystemu do eliminaji jego nieistotnyh fragmentów, zyli w naszym przypadku takih,które nie maj¡ wpªywu na wery�kowane wªasno±i. Pozwala to na uproszzenie opisu, oz kolei powoduje zmniejszenie przestrzeni stanów potrzebnej do jego wery�kaji. Zalet¡metody jest to, »e peªna przestrze« stanów nie musi by¢ generowana, poniewa» mo»na j¡skonstruowa¢ ju» dla zredukowanego opisu systemu.Pierwotnie metoda i�ia byªa stosowana do upraszzania proesów ±ledzenia (ang. de-bugging) i symulaji programów. Byªa tak»e wykorzystywana do redukji przestrzeni stanóww wery�kaji modelowej systemów bez zasu. Analiza systemów zasowyh ró»ni si� od ana-lizy systemów bezzasowyh, poniewa» ogranizenia naªo»one na zas wykonywania akjisystemu wprowadzaj¡ nowego rodzaju zale»no±i.Metoda i�ia zale»y od danej formuªy logiznej wyra»aj¡ej wªasno±¢, której prawdzi-wo±¢ hemy sprawdzi¢, a dokªadniej � od zbioru zmiennyh zdaniowyh, które whodz¡w skªad formuªy. Punktem wyj±iowym jest ustalenie tak zwanego kryterium i�ia, zylizbiorów akji i stanów, od któryh bezpo±rednio zale»¡ warto±i zmiennyh zdaniowyh zformuªy. Nast�pnie, algorytm redukji bada rekurenyjnie zale»no±i mi�dzy akjami i sta-nami poszzególnyh proesów systemu zazynaj¡ od kryterium i�ia.W systemie zasowym wyst�puj¡ ztery rodzaje zale»no±i. Zale»no±¢ danyh i zale»-no±¢ przepªywu sterowania s¡ klasyznymi poj�iami metody i�ia [Tip95℄. Zale»no±¢ odsynhronizaji jest harakterystyzna dla systemów wspóªbie»nyh, które mog¡ wykonywa¢pewne akje synhroniznie. Natomiast poj�ie zale»no±i zasowej jest nowym rodzajemzale»no±i wyst�puj¡ym tylko w systemah zasowyh, które zostaªo po raz pierwszy zde-�niowane przez autork� rozprawy.W wery�kaji modelowej wªasno±i programów s¡ opisywane mi�dzy innymi przez for-muªy logik temporalnyh b�d¡yh podzbiorami logiki CTL∗ (LTL, CTL) lub TCTL (za-sowe rozszerzenie CTL−X). Ze wzgl�du na harakter proponowanyh redukji (mi�dzy6

  • innymi eliminaj� pewnyh akji) w naszyh rozwa»aniah ogranizamy si� do podlogik niezawieraj¡yh operatora nast�pnego kroku (X). Zahowanie odpowiednih klas wªasno±izapewniamy przez wykazanie odpowiedniej relaji mi�dzy modelem konkretnym a abstrak-yjnym. Dla logiki CTL∗−X jest to relaja bisymulaji z powtórzeniami (ang. stutteringbisimulation).Artykuªy na temat opraowanej przez autork� rozprawy metody redukji systemów za-sowyh zostaªy opublikowane w materiaªah konferenji CS&P'03 [JJ03℄ i CS&P'06 [JP06b℄,a tak»e w zasopi±mie Fundamenta Informatiae [JJ04℄. Metoda i�ia dla j�zyka bazowegozostaªa opraowana przez autork� rozprawy. Wspóªautor wymienionyh pra, Paweª Ja-nowski, wspóªuzestnizyª w implementaji metody i przeprowadzeniu eksperymentów.Struktura prayRozdziaª 2 zawiera wprowadzenie do problematyki rozprawy, w tym podstawowe de�nijei poj�ia dotyz¡e automatów zasowyh, a tak»e krótkie omówienie sposobu ih wery�ka-ji. W rozdziale 3 przedstawiono skªadni� i semantyk� j�zyka bazowego oraz de�nije poj�¢dotyz¡yh j�zyka, u»ywanyh w dalszyh rozdziaªah. Pokazano tak»e, w jaki sposóbmo»na wyra»a¢ wªasno±i systemu opisanego w j�zyku bazowym. Rozdziaª zawiera równie»kilka przykªadowyh spey�kaji systemów zasowyh.Metody tªumazenie j�zyka bazowego do automatów zasowyh (automatu globalnegoi zbioru automatów skªadowyh) s¡ omówione i zilustrowane na przykªadah w rozdziale4. Pokazano w nim tak»e, »e przedstawione tªumazenie zahowuje prawdziwo±¢ formuªlogiki CTL∗. Rozdziaª zawiera rówie» opis sposobu redukji lizby zegarów w generowanyhautomatah.Rozdziaª 5 opisuje redukj� przestrzeni stanów modelu za pomo¡ metody i�ia. Zde�-niowano w nim relaje zale»no±i dla programów w j�zyku bazowym, algorytmy oblizaniaistotnyh operaji i istotnyh stanów kontrolnyh oraz pokazano jak z istotnyh elementówskonstruowa¢ zredukowany program. Wa»n¡ z�±¢ rozdziaªu stanowi wykazanie, »e przed-stawiona metoda redukji zahowuje prawdziwo±¢ formuª logiki CTL∗−X. Ostatnia z�±¢rozdziaªu zawiera opis wyników eksperymentalnyh.Na ko«u pray umieszzono indeks poj�¢ oraz spis oznaze« i symboli u»ywanyh wrozprawie.

    7

  • 8

  • Rozdziaª 2Automaty zasoweRozdziaª ten stanowi wprowadzenie do dalszej z�±i rozprawy. Przedstawiamy w nimpodstawowe poj�ia zwi¡zane z automatami zasowymi.2.1 Automaty zasowe2.1.1 Etykietowany system tranzyyjnyDe�nija 2.1 Etykietowanym systemem tranzyyjnym nazywany krotk�TS = (S, s0,Λ,−→ )gdzie:

    • S jest zbiorem stanów,• s0 ∈ S jest stanem poz¡tkowym,• Λ jest zbiorem etykiet,• −→ ⊆ S × Λ × S jest etykietowan¡ relaj¡ przej±ia.Elementy zbioru −→ nazywamy przej±iami lub tranzyjami. Je»eli (s, λ, s′) ∈ −→, totranzyj� o etykieie λ ze stanu s do stanu s′ oznazamy przez s λ−→ s′, a stan s′ nazywamynast�pnikiem stanu s. ie»k¡ w TS ze stanu s ∈ S jest niesko«zony i¡g

    s0λ0−→ s1

    λ1−→ s2λ2−→ . . .gdzie si ∈ S i λi ∈ Λ dla ka»dego i ≥ 0 oraz s0 = s. Wykonaniem lub przebiegiem systemu

    TS jest ka»da ±ie»ka ze stanu poz¡tkowego s0. Mówimy, »e stan s ∈ S jest osi¡galny zestanu s′ ∈ S, je»eli istnieje ±ie»ka s0 λ0−→ s1 λ1−→ . . . λk−1−→ sk λk−→ . . . w TS taka, »e s0 = s′i sk = s.Nieh PV b�dzie ustalonym zbiorem zmiennyh zdaniowyh i nieh V : S → 2PV b�dziefunkj¡ warto±iuj¡¡, która ka»demu stanowi przypisuje podzbiór zbioru PV . Intuiyjnie,zbiór V(s) jest zbiorem zmiennyh zdaniowyh prawdziwyh w stanie s. Par� M = (TS,V)nazywamy modelem (z powodów historyznyh nazywana jest tak»e struktur¡ Kripkego).9

  • 2.1.2 SkªadniaAutomaty zasowe zostaªy zde�niowane w pray [AD90℄ jako sko«zenie stanowe automatyBühiego rozszerzone o zmienne rzezywiste reprezentuj¡e zegary. Najze±iej u»ywanade�nija automatów (tak»e w tej rozprawie) pohodzi z pray [HNSY94b℄, gdzie zamiastwarunków akeptuj¡yh Bühiego zostaªy wprowadzone niezmienniki lokaji.Nieh ZZ oznaza zbiór lizb aªkowityh, IN � zbiór lizb naturalnyh (nieujemnyhlizb aªkowityh), a IR+ � zbiór nieujemnyh lizb rzezywistyh.ZegaryNieh X b�dzie sko«zonym zbiorem zmiennyh zwanyh zegarami. Zbiór Ψ(X) wszystkihogranize« zegarów (lub warunków na zegarah) ze zbioru X de�niujemy indukyjnie wnast�puj¡y sposób:ψ ::= true | x ∼ c | x− y ∼ c | ψ ∧ ψgdzie x, y ∈ X, c ∈ IN oraz ∼ ∈ {≤, ,≥}. O zbiorze Ψ(X) powiemy, »e nie zawieraró»ni zegarów, je»eli mo»na go opisa¢ gramatyk¡ w postai:

    ψ ::= true | x ∼ c | ψ ∧ ψWarto±iowanie zegarówFunkj� aªkowit¡ τ : X → IR+, która ka»demu zegarowi przypisuje nieujemn¡ warto±¢,nazywamy warto±iowaniem zegarów. Przez τ |= ψ b�dziemy oznaza¢, »e warto±iowanieτ ∈ IRX+ speªnia ogranizenie ψ ∈ Ψ(X). Speªnialno±¢ τ |= ψ de�niujemy indukyjnie:

    • τ |= true,• τ |= x ∼ c wtedy i tylko wtedy, gdy τ(x) ∼ c,• τ |= x− y ∼ c wtedy i tylko wtedy, gdy τ(x) − τ(y) ∼ c,• τ |= ψ1 ∧ ψ2 wtedy i tylko wtedy, gdy τ |= ψ1 i τ |= ψ2.W przyj�tym modelu zakªadamy, »e zas pªynie tak samo dla wszystkih zegarów. Dla

    δ ∈ IR+, τ + δ oznaza warto±iowanie zegarów τ ′ takie, »e τ ′(x) = τ(x) + δ dla ka»degox ∈ X . Na zbiorze zegarów de�niujemy operaj� zerowania zegarów z pewnego podzbioru.Dla Y ⊆ X , nieh τ [Y := 0], oznaza warto±iowanie zegarów τ ′ takie, »e τ ′(x) = 0 dlax ∈ Y i τ ′(x) = τ(x) dla x ∈ X/Y . Przez τ0 oznazamy poz¡tkowe warto±iowanie zegarówtakie, »e τ0(x) = 0 dla ka»dego x ∈ X .Automat zasowyDe�nija 2.2 Automatem zasowym nazywamy krotk� TA = (Σ, L, l0, X,E, I), gdzie:

    • Σ jest sko«zonym zbiorem etykiet,• L jest sko«zonym zbiorem lokaji, 10

  • • l0 ∈ L jest lokaj¡ poz¡tkow¡,• X jest sko«zonym zbiorem zegarów,• E ⊆ L× Σ × Ψ(X) × 2X × L jest relaj¡ przej±ia,• I : L −→ Ψ(X) jest niezmiennikiem lokaji.Niezmiennik I(l) okre±la warunek jaki musz¡ speªnia¢ warto±i zegarów, aby automat mógªznajdowa¢ si� w lokaji l. Element zbioru E zapisany jako l σ,ψ,Y−→ l′ reprezentuje tranzyj�z lokaji l (¹ródªowej) do lokaji l′ (doelowej) o etykieie σ, gdzie ψ okre±la warunekumo»liwienia tranzyji, zyli warunek jaki musz¡ speªnia¢ warto±i zegarów, aby mo»nabyªo wykona¢ t� tranzyj�, a Y ⊆ X jest zbiorem zegarów do wyzerowania w trakiewykonywania tej tranzyji.2.1.3 SemantykaDe�nija 2.3 Semantyk¡ automatu zasowego TA = (Σ, L, l0, X,E, I) jest etykietowanysystem tranzyyjny TSa = (Sa, s0a,Λa,−→a), gdzie:• Sa = {(l, τ) | l ∈ L ∧ τ ∈ IR

    X+ ∧ τ |= I(l)} jest zbiorem stanów,

    • s0a = (l0, τ0) ∈ Sa jest stanem poz¡tkowym,

    • Λa = Σ ∪ IR+ jest zbiorem etykiet,• −→a ⊆ Sa × Λa × Sa jest relaj¡ przej±ia, zyli najmniejsz¡ relaj¡ speªniaj¡¡ wa-runki:� (l, τ) σ−→ (l′, τ ′) wtedy i tylko wtedy, gdy istnieje tranzyja l σ,ψ,Y−→ l′ ∈ E taka, »e

    τ |= ψ, τ ′ = τ [Y := 0] i τ ′ |= I(l′),� (l, τ) δ−→ (l′, τ ′) wtedy i tylko wtedy, gdy δ ≥ 0, l = l′, τ ′ = τ + δ i τ ′ |= I(l).Stanem automatu zasowego jest para (l, τ), gdzie l ∈ L jest lokaj¡, a τ jest warto±iowa-niem zegarów speªniaj¡ym niezmiennik lokaji l. Zauwa»my, »e mo»e by¢ nieprzelizalniewiele stanów automatu zasowego. Ze stanu (l, τ) automat mo»e przej±¢ do jednego zestanów:• (l′, τ ′) (nast�pnik akyjny) wykonuj¡ tranzyj� l σ,ψ,Y−→ l′ ∈ E (przej±ie akyjne),je»eli jest ona mo»liwa do wykonania, zyli warto±iowanie zegarów τ speªnia ogra-nizenie ψ a warto±iowanie τ ′ = τ [Y := 0] speªnia ogranizenie wyra»one przezniezmiennik lokaji l′,• (l, τ+δ) (nast�pnik zasowy), wykonuj¡ przej±ie reprezentuj¡e upªyw zasu (przej-±ie zasowe) � pod warunkiem, »e ogranizenia wyra»one przez niezmiennik zwi¡-zany z lokaj¡ l pozostan¡ speªnione dla warto±iowania τ + δ.11

  • Przebiegis−przebiegiem automatu zasowego TA jest niesko«zony i¡g stanów:

    s0λ0→ s1

    λ1→ s2λ2→ . . .gdzie si ∈ Sa i λi ∈ Σ ∪ IR+ dla ka»dego i ≥ 0 oraz s0 = s.Przebieg automatu zasowego nazywamy post�puj¡ym, je»eli suma ∑{i∈IN |λi∈IR+} λijest niesko«zona. Przebieg, który nie jest post�puj¡y jest nazywany przebiegiem Zenonaod imienia grekiego �lozofa z IV w p.n.e. Automat zasowy TA jest post�puj¡y, je»eliwszystkie jego s0−przebiegi s¡ post�puj¡e. Poj�ie post�powo±i systemów zasowyh jestanalizowane mi�dzy innymi w praah [AL91, GSSAL94, AH97℄.2.1.4 Zªo»enie automatów zasowyhSystemy zasu rzezywistego z�sto maj¡ budow� modularn¡, o znazy, »e mo»na je opisa¢jako zbiór wspóªprauj¡yh ze sob¡ skªadowyh. Formalizm automatów zasowyh równie»daje tak¡ mo»liwo±¢. Elementy systemu mo»na opisa¢ jako oddzielne automaty zasowe.Caªy system mo»e by¢ wtedy reprezentowany przez jeden automat zasowy powstaªy ze zªo-»enia automatów opisuj¡yh poszzególne elementy. Automat taki nazywamy automatemproduktowym.Zªo»enie polega na jednozesnym (synhroniznym) wykonaniu tranzyji o takih sa-myh etykietah przez wiele automatów. Pozostaªe przej±ia s¡ niezale»ne i s¡ wykonywanena zasadzie przeplotu. Przyjmujemy, »e tranzyj� synhronizn¡ musz¡ wykona¢ wszystkieautomaty zasowe, które maj� etykiet� tej tranzyji w swoim zbiorze etykiet (tak zwanamultisynhronizaja).Nieh TAi = (Σi, Li, l0i , Xi, Ei, Ii) b�dzie automatem zasowym dla 1 ≤ i ≤ n oraz nieh

    Σ(σ) = { 1 ≤ i ≤ n | σ ∈ Σi } oznaza zbiór numerów automatów zasowyh zawieraj¡yhetykiet� σ.De�nija 2.4 Nieh TAi = (Σi, Li, l0i , Xi, Ei, Ii) b�dzie automatem zasowym dla 1 ≤ i ≤n. Produktem n automatów zasowyh (oznazanym przez TA1 ‖ TA2 ‖ . . . ‖ TAn) jestautomat zasowy TA = (Σ, L, l0, X,E, I), gdzie:

    • Σ =⋃ni=1 Σi,

    • L =∏ni=1 Li,

    • l0 = (l01, . . . , l0n),

    • X =⋃ni=1Xi,

    • tranzyja ((l1, . . . , ln), σ,∧i∈Σ(σ) ψi,⋃i∈Σ(σ) Yi, (q′1, . . . , q′n)) ∈ E wtedy i tylko wtedy,gdy (li, σi, ψi, Yi, l′i) ∈ Ei dla ka»dego i ∈ Σ(σ) oraz l′i = li dla i ∈ {1, . . . , n} \ Σ(σ),• I(l1, . . . , ln) =

    ∧ni=1 Ii(li). 12

  • 2.1.5 ModelNieh PV b�dzie zbiorem zmiennyh zdaniowyh. De�niujemy funkj� warto±iuj¡¡ VTA :L → 2PV, która ka»dej lokaji automatu przypisuje podzbiór zbioru PV . Intuiyjnie, je»elip ∈ VTA(l), to znazy, »e zdanie reprezentowane przez p jest prawdziwe w lokaji l.Dla danego zbioru automatów zasowyh TA1, TA2, . . . , TAn i funkji VTAi : Li → 2PV,funkj� warto±iuj¡¡ VTA′ : L′ → 2PV dla produktu automatów TA′ = TA1 ‖ TA2 ‖ . . . ‖TAn de�niujemy w nast�puj¡y sposób dla l = (l1, . . . , ln) ∈ L′:

    p ∈ VTA′(l) wtedy i tylko wtedy, gdy istnieje 1 ≤ i ≤ n takie, »e p ∈ VTAi(li).Funkj� warto±iuj¡¡ VTA mo»emy w naturalny sposób rozszerzy¢ na funkj� Va : Sa →2PV warto±iuj¡¡ stany systemu tranzyyjnego dla automatu TA. Dla p ∈ PV i s = (l, τ),gdzie l ∈ L i τ ∈ IRX+ :

    p ∈ Va(s) wtedy i tylko wtedy, gdy p ∈ VTA(l).Modelem dla automatu zasowego TA jest paraMa = (TSa,Va).2.1.6 PrzykªadyProdukt automatówNa rysunku 2.1 przedstawiono dwa automaty zasowe A1 i A2 oraz ih produkt A1 ‖ A2.Automat zasowy A1 ma dwie lokaje: A i B, jeden zegar x i zbiór etykiet Σ1 = {a, b, d}.Lokaj¡ poz¡tkow¡ automatu (oznazon¡ maª¡ strzaªk¡) jest lokaja A. Relaja przej±ia

    E1 skªada si� z nast�puj¡yh elementów: A a,true,{x}−→ B, B b,x

  • A B

    a

    C D

    A1 A2

    A1 || A2

    b

    d

    d

    {x,y}

    {y}d{x}

    {x} a

    c

    {y}

    {x,y}ac c

    b

    bA,C B,C

    A,D B,D

    x < 4 y < 2y > 1

    y < 2

    y > 1

    x < 4

    y < 2

    x < 4Rysunek 2.1: Produkt automatów zasowyhProtokóª Fishera wzajemnego wykluzaniaOd momentu opublikowania w pray [ACD+92℄ protokóª Fishera wzajemnego wykluzaniastaª si� jednym z najbardziej znanyh przykªadów automatów zasowyh. Rysunek 2.2przedstawia ten protokóª dla dwóh proesów.Wzajemne wykluzanie proesów polega na tym, »e »adne dwa proesy nie mog¡ jed-noze±nie wykonywa¢ pewnyh zynno±i, które s¡ okre±lane jako sekja krytyzna. Wprzykªadzie, automat P1 nie mo»e przebywa¢ w lokaji critical1, je»eli automat P2 znaj-duje si� w tym zasie w lokaji critical2. Fisher zaproponowaª nast�puj¡e rozwi¡zanietego problemu. Dost�p do sekji krytyznej jest koordynowany przez globaln¡ zmienn¡modelowan¡ przez trzei automat. Ka»dy proes b�d¡ w stanie bezzynno±i (idle) mo»ezgªosi¢ h�¢ wej±ia do sekji krytyznej pod warunkiem, »e zmienna ma warto±¢ 0. Au-tomat P1 mo»e wykona¢ przej±ie start1 do lokaji trying1, tylko wtedy, gdy automat Xjest w lokaji s0 (o odpowiada temu, »e zmienna ma warto±¢ 0). Co najwy»ej D jednostekzasu pó¹niej automat P1 przehodzi do lokaji waitng1 wykonuj¡ tranzyj� setX1 odpo-wiadaj¡¡ nadaniu zmiennej warto±i 1. Ogranizenia na zas wykonania tranzyji setX1s¡ wyra»one przez warunek z1 < D, gdzie z1 jest zegarem zerowanym przy wykonywaniutranzyji start1 i setX1. Od tego momentu automat P1 jest gotowy do wej±ia do sekjikrytyznej (przej±ie enter1 do lokaji critical1), ale »eby to zrobi¢ musi odzeka¢ w lokajiwaiting1 o najmniej d jednostek zasu. Jest to okre±lone przez warunek z1 > d. ProesP1 opuszza sekj� krytyzn¡ wykonuj¡ tranzyj� setX01. Dziaªanie automatu P2 jestanalogizne.Automat X ma trzy lokaje odpowiadaj¡e trzem warto±iom zmiennej, zyli s0, s114

  • idle2start2

    trying2

    setX2

    {z2}

    {z2}

    setX02

    enter2

    critical2 waiting2

    setX02

    setX2

    setX01

    setX2

    setX1enter1

    setX2enter2

    start1start2

    s1

    s0

    s2

    setX1

    setX1

    critical1 waiting1

    idle1 trying1

    enter1

    {z1}

    setX1

    setX01

    start1

    {z1}

    z1 < D

    z1 < D

    z1 > d z2 > d

    z2 < D

    z2 < D

    Rysunek 2.2: Protokóª Fishera dla dwóh proesów

    15

  • i s2. Poz¡tkowo zmienna ma warto±¢ 0. Je»eli proes o numerze i he wej±¢ do sekjikrytyznej, to ustawia zmienn¡ na i, o oznaza, »e automat X przehodzi do lokaji si.Nast�pnie zmienna mo»e zosta¢ ustawiona na 0 lub na j, je»eli proes o numerze j zgªosiª»¡danie wej±ia do sekji krytyznej.2.2 Wery�kaja automatów zasowyh2.2.1 Logiki temporalneWªasno±i systemów zasowyh s¡ zazwyzaj wyra»ane w postai formuª logik temporal-nyh zarówno zasowyh, jak i bezzasowyh (dobrym wprowadzeniem do logik modalnyhi temporalnyh s¡ prae [HC84, Gol92℄).W tej z�±i przedstawimy skªadni� i semantyk� logiki CTL∗[CES86℄ oraz jej najwa»niej-sze podlogiki i rozszerzenia zasowe. Innymi wa»nymi logikami temporalnymi s¡: modalnyrahunek-µ [Koz83℄ i jego zasowe rozszerzenie � modalny rahunek-Tµ [HNSY94a℄, któ-ryh nie b�dziemy tu omawia¢. Przegl¡d i porównanie logik temporalnyh dla systemówzasowyh mo»na znale¹¢ mi�dzy innymi w praah [Eme90, AH92, Pen95℄.Skªadnia CTL∗Jak poprzednio, nieh PV b�dzie zbiorem zmiennyh zdaniowyh. Zbiór formuª stanowyhi zbiór formuª ±ie»kowyh de�niujemy indukyjnie w nast�puj¡y sposób:• ka»da zmienna zdaniowa ze zbioru PV jest formuª¡ stanow¡,• je»eli ϕ i ψ s¡ formuªami stanowymi, to ¬ϕ i ϕ∧ψ s¡ równie» formuªami stanowymi,• je»eli ϕ jest formuª¡ ±ie»kow¡, to Aϕ jest formuª¡ stanow¡,• ka»da formuªa stanowa ϕ jest równie» formuª¡ ±ie»kow¡,• je»eli ϕ i ψ s¡ formuªami ±ie»kowymi, to ¬ϕ i ϕ∧ψ s¡ równie» formuªami ±ie»kowymi,• je»eli ϕ i ψ s¡ formuªami ±ie»kowymi, to Xϕ i U(ϕ, ψ) s¡ równie» formuªami ±ie»ko-wymi.Operatory ¬, ∧ i ∨ nazywamy logiznymi. Operator alternatywy (∨) de�niujemy nast�-puj¡o:

    ϕ ∨ ψdef= ¬(¬ϕ ∧ ¬ψ)Mówi¡ nieformalnie, operator A, który nazywamy kwanty�katorem ±ie»kowym, oznaza�dla wszystkih ±ie»ek�, zyli Aϕ w danym stanie oznaza, »e dla wszystkih ±ie»ekwyhodz¡yh z tego stanu jest prawdziwa formuªa ϕ. De�nujemy równie» operator E,który jest kwanty�katoren ±ie»kowym dualnym do A, oznazaj¡ym istnienie ±ie»ki:Eϕ def= ¬A¬ϕOperator modalny U (od ang. until) nazywamy stanowym. U(ϕ, ψ) (zytamy: ϕ �a»do� ψ ) oznaza, »e na danej ±ie»e istnieje stan, w którym jest prawdziwa formuªa ψi we wszystkih stanah go poprzedzaj¡yh jest prawdziwa formuªa ϕ. De�nujemy tak»enast�puj¡e operatory stanowe: 16

  • • R � operator dualny do U. R(ϕ, ψ) oznaza, »e dla wszystkih stanów jest prawdziwaformuªa ψ lub istnieje taki stan, dla którego jest prawdziwa formuªa ϕ (zytamy: ϕ�zwalnia� ψ ):R(ϕ, ψ)

    def= ¬U(¬ϕ,¬ψ)

    • G � operator oznazaj¡y �dla wszystkih stanów na ±ie»e�:Gϕ

    def= R(false, ϕ)

    • F � operator dualny do G, oznaz¡jay istnienie stanu na ±ie»e:Fϕ

    def= U(true, ϕ)Kilka przykªadów formuª temporalnyh znajduje si� w nast�pnym rozdziale rozprawy(punkt 3.4).Semantyka CTL∗Nieh M = (TS,V), gdzie S = (S, s0,Λ,−→) b�dzie modelem, o którym zakªadamy, »erelaja przej±ia −→ jest aªkowita, zyli dla ka»dego s ∈ S istniej¡ s′ ∈ S i λ ∈ Λ takie, »e

    −→ s′ (aªkowito±¢ relaji mo»emy zapewni¢ dodaj¡ do stanów nie maj¡yh nast�pnikaprzej±ia do nih samyh). Nieh σ = s0 λ0−→ s1 λ1−→ . . . oznaza niesko«zon¡ ±ie»k� w TS,a σi = si λi−→ si+1 λi+1−→ . . . nieh b�dzie su�ksem σ.De�nija 2.5 Prawdziwo±¢ formuªy ϕ w stanie s modelu M (o oznazamy M, s |= ϕ 2)de�niujemy indukyjnie w nast�puj¡y sposób:• M, s |= p wtedy i tylko wtedy, gdy p ∈ V(s) dla p ∈ PV ,• M, s |= ¬ϕ wtedy i tylko wtedy, gdy nieprawda, »e M, s |= ϕ,• M, s |= ϕ ∧ ψ wtedy i tylko wtedy, gdy M, s |= ϕ i M, s |= ψ,• M, s |=Aϕ wtedy i tylko wtedy, gdy M, σ |= ϕ dla ka»dej ±ie»ki σ ze stanu s,• M, σ |= ϕ wtedy i tylko wtedy, gdy M, s0 |= ϕ,• M, σ |= ¬ϕ wtedy i tylko wtedy, gdy nieprawda, »e M, σ |= ϕ,• M, σ |= ϕ ∧ ψ wtedy i tylko wtedy, gdy M, σ |= ϕ i M, σ |= ψ,• M, σ |=Xϕ wtedy i tylko wtedy, gdy M, σ1 |= ϕ,• M, σ |=U(ϕ, ψ) wtedy i tylko wtedy, gdy istnieje i ≥ 0 takie, »e M, σi |= ψ orazM, σj |= ϕ dla 0 ≤ j < i.2Model M mo»emy opu±i¢, je»eli wynika on jasno z kontekstu. Piszemy wtedy s |= ϕ.17

  • Podlogiki CTL∗Poni»ej przedstawiamy krótko najpopularniejsze podlogiki CTL∗. Podlogik� CTL∗, w któ-rej:• nie wyst�puj¡ kwanty�katory egzystenjalne i negaja mo»e wyst�powa¢ tylko w pod-formuªah nie zawieraj¡yh operatorów modalnyh, nazywamy ACTL*,• ka»dy modalny operator stanowy jest poprzedzony kwanty�katorem ±ie»kowym (zylikwanty�katory A i E oraz operatory X, U, R, G i F mog¡ wyst�powa¢ tylko parami� w kombinajah: AG, AF, EG, EF, AX itd.), nazywamy CTL [EC82℄,• formuªy s¡ wyª¡znie postai Aϕ, gdzie ϕ nie zawiera kwanty�katorów ±ie»kowyh,nazywamy LTL [Pnu77℄,• nie wyst�puje operator modalny X, nazywamy CTL∗−X (analogiznie de�niujemy pod-logiki ACTL∗−X, CTL−X i LTL−X).

    TCTLJedn¡ z najbardziej znanyh zasowyh logik temporalnyh jest TCTL [ACD90℄. LogikaTCTL jest rozszerzeniem zasowym CTL−X, w którym operatorom modalnym towarzy-sz¡ przedziaªy okre±laj¡e ogranizenia zasowe. Zbiór formuª logiki TCTL de�niujemyindukyjnie w nast�puj¡y sposób:• ka»da zmienna zdaniowa ze zbioru PV jest formuª¡,• je»eli ϕ i ψ s¡ formuªami, to ¬ϕ i ϕ ∧ ψ s¡ równie» formuªami,• je»eli ϕ i ψ s¡ formuªami, to AUJ (ϕ, ψ) jest formuª¡, gdzie J jest przedziaªem, okre-±lonym w zbiorze IR+, postai: (d1, d2), (d1, d2], (d1,∞), [d1, d2), [d1, d2] lub [d1,∞)dla d1, d2 ∈ IN.Pozostaªe operatory de�niujemy w sposób analogizny do podanego wze±niej. Na przy-kªad formuªa AG[0,∞)(p1 ⇒ AF[0,10]p2), gdzie p1, p2 ∈ PV oznaza, »e zawsze gdy zahodzi

    p1, to w i¡gu 10 jednostek zasu zahodzi p2. Semantyka dla TCTL jest przedstawionami�dzy innymi w pray [ACD93℄.2.2.2 Wery�kaja modelowaPowiemy, »e formuªa ϕ logiki temporalnej CTL∗ jest prawdziwa w modelu M wtedy i tylkowtedy gdy M, s0 |= ϕ, zyli ϕ jest prawdziwa w stanie poz¡tkowym modelu M.Problem wery�kaji modelowej polega na sprawdzeniu, zy dana formuªa ϕ jest praw-dziwa w modelu M. Istnieje wiele metod rozwi¡zywania tego problemu. Najstarsze oprao-wane metody wykorzystuj¡ tehnik� etykietowania stanów (ang. state labelling) formuªami,które s¡ prawdziwe w tyh stanah. Algorytm etykietowania rozpozyna od analizy naj-prostszyh skªadowyh formuªy, zyli od zmiennyh zdaniowyh. W kolejnyh krokah stanyetykietowane s¡ podformuªami o oraz wi�kszej dªugo±i.18

  • Inne podej±ie (nazywane automatowym) polega na konstrukji automatu dla negajiformuªy, której prawdziwo±¢ hemy sprawdzi¢. Nast�pnie budowany jest produkt auto-matu opisuj¡ego dziaªanie systemu i automatu dla negaji formuªy. Wery�kaja polegana sprawdzeniu, zy j�zyk akeptowany przez automat produktowy jest niepusty. General-nie problem niepusto±i dla dowolnego automatu zasowego jest nierozstrzygalny, jednakw przypadku wery�kaji modelowej automat produktowy jest spey�znej postai i pro-blem sprawdzenia niepusto±i akeptowanego przez niego j�zyka sprowadza si� do problemujednoliterowej niepusto±i, który ma rozwi¡zanie o zªo»ono±i liniowej [DW99℄.Kolejn¡ grup� metod stanowi¡metody symbolizne, zyli takie, w któryh przestrze« sta-nów jest reprezentowana w sposób symbolizny, na przykªad w postai ró»nyh diagramówdeyzyjnyh, takih jak NDD (Numeri Deision Diagrams) [ABK+97℄, CDD (Clok Dei-sion Diagrams) [Wan00℄, zy DDD (Di�erene Deision Diagrams) [MLAH99℄. Do metodsymboliznyh mo»na zalizy¢ tak»e tehniki oparte na kodowaniu systemów zasowyh i ihwªasno±i w postai formuª logiki zdaniowej i wykorzystaniu algorytmów i narz�dzi spraw-dzaj¡yh speªnialno±¢ takih formuª (ang. SAT-solvers). Przegl¡d metod symboliznyhzwi¡zanyh z tehnik¡ SAT przedstawiono w [PBG05℄.Podstawow¡ lektur¡ na temat wery�kaji modelowej jest praa [CGP99℄. Natomiastszzegóªowy i aktualny przegl¡d tehnik wery�kaji modelowej systemów zasowyh oraznarz�dzi, które je wykorzystuj¡ mo»na znale¹¢ w pray [PP06℄.Chieli±my podkre±li¢, »e w wi�kszo±i przypadków problem wery�kaji modelowej for-muª TCTL rozwi¡zuje si� poprzez przeªo»enie go na problem wery�kaji modelowej formuªCTL. Dlatego w rozprawie konentrujemy si� na wykazaniu, »e prezentowane przez nasmetody zahowuj¡ prawdziwo±¢ formuª bezzasowyh logik temporalnyh.2.2.3 Relaje równowa»no±i systemówNa konie podamy podstawowe relaje równowa»no±i mi�dzy systemami, które haraktery-zuj¡ równie» systemy zasowe, a mianowiie relaj� silnej symulaji (ang. strong simulation)i symulaji z powtórzeniami (ang. stuttering simulation).Nieh M = (TS,V) i M′ = (TS ′,V ′) b�d¡ dwiema strukturami takimi, »e TS =(S, s0,Λ,−→), TS′ = (S′, s0′,Λ′,−→′), V : TS → 2PV i V ′ : TS′ → 2PV dla pewnegozbioru zmiennyh zdaniowyh PV .Silna bisymulajaDe�nija 2.6 [BCG88℄ Relaja ∼=b⊆ S×S′ jest relaj¡ silnej symulaji pomi�dzy dwiemastrukturami M i M′ je»eli speªnione s¡ nast�puj¡e warunki:1. s0 ∼=b s0′ i2. je»eli s ∼=b s′, to V(s) = V ′(s′) i dla ka»dego stanu s1 w M takiego, »e s λ−→ s1, gdzie

    λ ∈ Λ, istnieje stan s′1 w M′ i etykieta λ′ ∈ Λ′ takie, »e s′ λ′−→ s′1 i s1 ∼=b s′1.Relaja ∼=b jest relaj¡ silnej bisymulaji, je»eli ona i relaja do niej odwrotna s¡ silnymisymulajami. 19

  • Twierdzenie 2.7 [BCG88℄ Nieh ϕ b�dzie formuª¡ CTL∗ nad zbiorem zmiennyh zdanio-wyh PV , nieh M i M′ b�d¡ dwiema sko«zonymi strukturami i nieh relaja ∼=b b�dzierelaj¡ silnej bisymulaji pomi�dzy M i M′. Dla ka»dej pary stanów s i s′ takih, »e s ∼=b s′zahodzi M, s |= ϕ wtedy i tylko wtedy, gdy M′, s′ |= ϕ.Bisymulaja z powtórzeniamiDe�nija 2.8 [BCG88, GKPP99℄ Relaja ∼=sb⊆ S × S′ jest relaj¡ symulaji z powtó-rzeniami pomi�dzy dwiema strukturami M i M′, je»eli speªnione s¡ nast�puj¡e warunki:1. s0 ∼=sb s0′ i2. je»eli s ∼=sb s′, to V(s) = V ′(s′) i dla ka»dej ±ie»ki σ w M ze stanu s, istnieje ±ie»kaσ′ w M′ ze stanu s′, podziaª B1, B2, . . . ±ie»ki σ i podziaª B′1, B′2, . . . ±ie»ki σ′ taki,»e dla ka»dego j ≥ 1, Bj i B′j s¡ niepuste i sko«zone oraz ka»dy stan z Bj jest wrelaji ∼=sb z ka»dym stanem z B′j .Relaja ∼=sb jest relaj¡ bisymulaji z powtórzeniami, je»eli ona i relaja do niej odwrotnas¡ symulajami z powtórzeniami.Twierdzenie 2.9 [BCG88, GKPP99℄ Nieh ϕ b�dzie formuª¡ CTL∗−X nad zbioremzmiennyh zdaniowyh PV , nieh M i M′ b�d¡ dwiema sko«zonymi strukturami i niehrelaja ∼=sb b�dzie relaj¡ bisymulaji z powtórzeniami pomi�dzy M i M′. Dla ka»dej parystanów s i s′ takih, »e s ∼=sb s′ zahodzi M, s |= ϕ wtedy i tylko wtedy, gdy M′, s′ |= ϕ.

    20

  • Rozdziaª 3J�zyk bazowyW j�zyku bazowym system zasu rzezywistego opisujemy jako zbiór proesów komuniku-j¡yh si� ze sob¡ poprzez bufory lub zmienne dzielone. Ka»dy proes jest przedstawionyjako automat sko«zenie stanowy. W j�zyku nie wyst�puj¡ jawnie zmienne reprezentuj¡ezas, jednak z ka»d¡ tranzyj¡ mo»e by¢ zwi¡zane tak zwane dozwolone opó¹nienie, któreograniza zas jej wykonania.W tym rozdziale przedstawiamy skªadni� abstrakyjn¡ i semantyk� j�zyka bazowego.Poka»emy tak»e w jaki sposób mo»emy formuªowa¢ i wery�kowa¢ wªasno±i programów wj�zyku bazowym. Zastosowanie j�zyka do opisu systemów zasu rzezywistego zilustrujemykilkoma przykªadami.3.1 Skªadnia abstrakyjnaNieh V b�dzie sko«zonym zbiorem zmiennyh, a B � sko«zonym zbiorem buforów.Bufor jest i¡giem warto±i aªkowityh.Zbiór wszystkih wyra»e« arytmetyznyh Exp(V ) nad zbiorem V de�niujemy poprzezgramatyk�:exp ::= m | y | exp ⊕ exp | − exp | (exp)gdzie m ∈ ZZ, y ∈ V i ⊕ ∈ {−,+, ∗, /,%}. Przez / oznazamy dzielenie aªkowite, a przez

    % � operaj� modulo (reszt� z dzielenia aªkowitego). Nieh BExp(V,B) b�dzie zbioremwszystkih wyra»e« logiznyh nad V i B zde�niowanym nast�puj¡o:bexp ::= true | e1 ∼ e2 | empty(b) | bexp ∧ bexp | bexp ∨ bexp | ¬bexp | (bexp)gdzie e1, e2 ∈ Exp(V ), b ∈ B, i ∼ ∈ {=, 6=, ,≤,≥}. Zbiór wszystkih instrukji

    Ins(V,B) de�niujemy jako:ins ::= y := e | get(b, y) | put(b, e)gdzie y ∈ V , b ∈ B i e ∈ Exp(V ). Instrukj¡ nazywamy element zbioru Ins(V,B). Zbiórwszystkih akji Act(V,B) nad V i B de�niujemy w nast�puj¡y sposób:

    act ::= ε | a | act; act21

  • gdzie ε oznaza pusty i¡g i a ∈ Ins(V,B).De�nija 3.1 Programem w j�zyku bazowym nazywamy krotk� P = (V,B, {Pi|1 ≤ i ≤ n}),gdzie V jest zbiorem zmiennyh, B jest zbiorem buforów i n ∈ IN. Proesem Pi nazywamykrotk� (idi, Qi, q0i ,Γi, Ti), gdzie idi jest nazw¡ proesu, Qi jest zbiorem stanów kontrolnyh(zakªadamy, »e Qi ∩Qj = ∅ dla i 6= j), q0i ∈ Qi jest stanem poz¡tkowym, Γi jest zbioremetykiet a Ti jest zbiorem tranzyji w postai (qi, g, d, u, γ, α, q′i), gdzie:

    • qi ∈ Qi nazywamy stanem ¹ródªowym tranzyji,• q′i ∈ Qi nazywamy stanem doelowym tranzyji,• g ∈ BExp(V,B) nazywamy dozorem tranzyji,• d ∈ {(d1, d2), (d1, d2], (d1,∞), [d1, d2), [d1, d2], [d1,∞) | d1, d2 ∈ IN} nazywamy dozwo-lonym opó¹nieniem tranzyji,• u ∈ {true, false} nazywamy atrybutem pilno±i tranzyji,• γ ∈ Γi nazywamy etykiet¡ tranzyji,• α ∈ Act(V,B) nazywamy akj¡ tranzyji.Dla t = (qi, g, d, u, γ, α, q′i), wprowadzimy oznazenia: source(t), guard(t), delay(t), ur-

    gent(t), label(t), action(t) i target(t) odpowiednio na qi, g, d, u, γ, α i q′i. Wymienione ele-menty b�dziemy nazywa¢ atrybutami tranzyji.DozórDozór guard(t) okre±la warunki umo»liwienia tranzyji t. Tranzyja t mo»e by¢ wykonanatylko wtedy, gdy jej dozór jest prawdziwy.Dozwolone opó¹nienieDozwolone opó¹nienie delay(t) reprezentuje ogranizenia naªo»one na zas wykonania tran-zyji t. Dla delay(t) = (d1, d2) tranzyja mo»e by¢ wykonana kiedy upªynie wi�ej ni» d1i mniej ni» d2 jednostek zasu od momentu wej±ia proesu do stanu ¹ródªowego tranzyjit. Je»eli delay(t) = (d1, d2], to tranzyja mo»e by¢ wykonana po upªyni�iu wi�ej ni» d1,ale mniej ni» d2 lub dokªadnie d2 jednostek zasu. Dla delay(t) = (d1,∞) tranzyj� mo»nawykona¢ kiedy minie wi�ej ni» d1 jednostek zasu (bez górnego ogranizenia). Analogizniedla pozostaªyh form dozwolonego opó¹nienia.Zakªadamy, »e dla ka»dej tranzyji t istnieje r ∈ IR+ takie, »e r ∈ delay(t) (przedziaªokre±laj¡y dozwolone opó¹nienie nie jest pusty).Na podstawie dozwolonego opó¹nienia de�niujemy górne dozwolone opó¹nienie w nast�-puj¡y sposób:

    upper_delay(t) def= { [0, d2) je»eli delay(t) = (d1, d2) lub delay(t) = [d1, d2),[0, d2] je»eli delay(t) = (d1, d2] lub delay(t) = [d1, d2].22

  • Atrybut pilno±iAtrybut pilno±i urgent(t) okre±la zy tranzyja ma by¢ wykonana natyhmiast, gdy tylkojest mo»liwa do wykonania. Je»eli dozór tranzyji jest prawdziwy, gdy proes whodzi dostanu ¹ródªowego tranzyji t, to ma by¢ ona wykonana od razu po wej±iu proesu do tegostanu. W przeiwnym przypadku ma by¢ wykonana wtedy, gdy dozór stanie si� prawdziwy.Tranzyj�, dla której urgent(t) = true, nazywamy piln¡. Zakªadamy, »e je»eli tranzyjajest pilna, to jej dozwolone opó¹nienie jest równe [0,∞), zyli nie ma innyh ogranize« nazas jej wykonania.EtykietaEtykieta label(t)mo»e by¢ albo lokalna, albo synhronizuj¡a. Etykieta lokalna jest unikalnaw programie, a synhronizuj¡a mo»e wyst�powa¢ w wielu proesah. Podobnie jak wprzypadku automatów zasowyh proesy wykonuj¡ jednoze±nie tranzyje synhronizneo takih samyh etykietah, a tranzyje lokalne na zasadzie przeplotu.Zauwa»my, »e je»eli tranzyja jest pilna, nie jest synhronizna i jej dozór jest równytrue, to powinna by¢ wykonana natyhmiast, gdy proes znajdzie si� w jej stanie ¹ródªowym(bez upªywu zasu). A zatem zamiast ustawia¢ atrybut pilno±i, mo»emy w tym przypadkuzde�niowa¢ dozwolone opó¹nienie równe [0, 0]. Obydwa zapisy s¡ w tej sytuaji równowa»ne,wi� dla uproszzenia rozwa»a« przyjmujemy, »e je»eli tranzyja ma dozór równy true i niejest synhronizna, to nie jest pilna.AkjaW trakie wykonywania tranzyji proes mo»e zmienia¢ warto±i zmiennyh i buforów.Sposób tej zmiany jest okre±lony przez akj� action(t), która jest i¡giem przypisa« nazmienne i operaji na buforah.3.1.1 De�nije i oznazeniaPodamy teraz de�nije i oznazenia dotyz¡e j�zyka bazowego wykorzystywane w kolejnyhrozdziaªah rozprawy. Nieh P = (V,B, {Pi | 1 ≤ i ≤ n}) b�dzie programem w j�zykubazowym, gdzie V jest zbiorem zmiennyh, B jest zbiorem buforów, Pi jest proesem i n ∈IN. Nieh 1 ≤ i ≤ n oznaza numer dowolnego proesu nale»¡ego do programu, a Ti i Qinieh b�d¡ odpowiednio zbiorem tranzyji i zbiorem stanów kontrolnyh tego proesu. Niehwreszie Q = ⋃ni=1Qi oznaza zbiór stanów kontrolnyh wszystkih proesów, T = ⋃ni=1 Ti� zbiór tranzyji wszystkih proesów, a Γ = ⋃ni=1 Γi � zbiór etykiet wszystkih proesów.Zmienne i bufory wyst�puj¡e w wyra»eniu, w instrukji, w akji i w proesieNieh vars(e) ⊆ V b�dzie zbiorem zmiennyh wyst�puj¡yh w wyra»eniu arytmetyznyme ∈ Exp(V ), który de�niujemy indukyjnie w nast�pujay sposób:

    vars(e) =

    ∅ je»eli e = m, gdzie m ∈ ZZ,{y} je»eli e = y, gdzie y ∈ V ,vars(e1) ∪ vars(e2) je»eli e = (e1 ⊕ e2),vars(e1) je»eli e = −e1 lub e = (e1).23

  • Przez vars(g) ⊆ V ∪ B oznazmy zbiór zmiennyh i buforów wyst�puj¡yh w wyra»eniulogiznym g ∈ Bexp(V,B), który de�niujemy jak nast�puje:vars(g) =

    ∅ dla g = true,vars(e1) ∪ vars(e2) dla g = (e1 ∼ e2), gdzie e1, e2 ∈ Exp(V ),{b} dla g = empty(b), gdzie b ∈ B,vars(g1) ∪ vars(g2) dla g = (g1 ∧ g2) lub g = (g1 ∨ g2),vars(g1) dla g = ¬g1 lub g = (g1).Zbiór vars(b) ⊆ V ∪ B zmiennyh i buforów wyst�puj¡yh w instrukji a ∈ Ins(V,B)de�niujemy nast�puj¡o:vars(a) =

    {y} ∪ vars(e) dla a = (y := e),{b, y} dla a = get(b, y),{b} ∪ vars(e) dla a = put(b, e).Zbiór vars(α) ⊆ V ∪B zmiennyh wyst�puj¡yh w akji α ∈ Act(V,B) de�niujemy jako:

    vars(α) =

    ∅ dla α = ε,vars(a) dla α = a, gdzie a ∈ Ins(V,B),vars(α1) ∪ vars(α2) je»eli α = α1; α2.Do zbioru vars(Pi) zmiennyh wyst�puj¡yh w proesie Pi nale»¡ wszystkie zmienne wys-t�puj¡e w dozorah i akjah tranzyji proesu:

    vars(Pi) =⋃

    t∈Ti

    vars(guard(t)) ∪ vars(action(t))Zmienne lokalne i dzieloneZbiór VG zmiennyh globalnyh (lub dzielonyh) zawiera zmienne, które wyst�puj¡ w onajmniej dwóh proesah:VG = {y ∈ V | ∃1≤i6=j≤n y ∈ vars(Pi) ∩ vars(Pj)}Zbiór Vi zmiennyh lokalnyh proesu i de�niujemy jako ró»ni� zbiorów:

    Vi = vars(Pi) \ VGZakªadamy, »e wszystkie bufory s¡ dzielone, a tak»e, »e »adna akja tranzyji o etykieiesynhronizuj¡ej nie zawiera przypisania warto±i »adnej zmiennej dzielonej ani operaji na»adnym buforze.OperajeOperaj¡ b�dziemy nazywa¢ zarówno instrukj� a ∈ Ins(V,B), jak i wyra»enie logizne g ∈BExp(V,B), które jest dozorem tranzyji. Dla tranzyji t ∈ T nieh opers(action(t)) ozna-za zbiór operaji wyst�puj¡yh w akji tranzyji, a opers(guard(t)) � jednoelementowyzbiór zawieraj¡y operaj� z dozoru tranzyji. Nieh równie» opers(t) = opers(action(t))∪24

  • opers(guard(t)) oznaza zbiór wszystkih operaji tranzyji t i nieh Ops = ⋃t∈T opers(t)b�dzie zbiorem wszystkih operaji programu. Przez guards(q) oznazamy zbiór operaji zdozorów tranzyji wyhodz¡yh ze stanu q: guards(q) = ⋃t∈out(q) opers(guard(t)).Nieh ♯a oznaza kolejny numer operaji a w akji tranzyji (akje s¡ i¡gami instrukji,wi� mo»emy je w naturalny sposób ponumerowa¢). Powiemy, »e operaja a1 ∈ opers(t)wyst�puje przed operaj¡ (odpowiednio po operaji) a2 ∈ opers(t), je»eli ♯a1 < ♯a2 (odpo-wiednio ♯a1 > ♯a2). Przyjmujemy, »e operaja z dozoru tranzyji wyst�puje przed wszyst-kimi operajami z akji tej tranzyji. Powiemy równie», »e operaja a3 ∈ opers(t) wyst�pujepomi�dzy operajami a1 i a2, je»eli ♯a1 < ♯a3 < ♯a2.Zmienne/bufory de�niowane i u»ywaneNieh def(a) ⊆ V ∪ B b�dzie zbiorem zmiennyh i buforów de�niowanyh przez operaj�a ∈ Ops, zyli takih, którym w tej operaji nadawane s¡ warto±i.

    def(a) =

    {y} je»eli a = (y := e),{b, y} je»eli a = get(b, y),{b} je»eli a = put(b, e),∅ je»eli a ∈ BExp(V,B).De�niujemy równie» zbiór use(a) ⊆ V ∪B zmiennyh i buforów u»ywanyh w operaji a wnast�puj¡y sposób:

    use(a) =

    vars(e) je»eli a = (y := e),{b} je»eli a = get(b, y),{b} ∪ vars(e) je»eli a = put(b, e),vars(a) je»eli a ∈ BExp(V,B).ie»kiNieh out(q) = {t ∈ Ti | q = source(t)} oznaza zbiór tranzyji wyhodz¡yh ze stanukontrolnego q ∈ Qi i nieh in(q) = {t ∈ Ti | q = target(t)} oznaza zbiór tranzyjiwhodz¡yh do stanu kontrolnego q. Mówimy, »e stan kontrolny q jest stanem ko«owym,je»eli out(q) = ∅. Dla pary stanów q, q′ ∈ Qi, je»eli istnieje tranzyja t taka, »e t ∈ out(q)i t ∈ in(q′), to stan q nazwiemy poprzednikiem stanu q′, a stan q′ � nast�pnikiem stanu q.ie»ka w proesie Pi ze stanu kontrolnego q1 ∈ Qi do stanu kontrolnego qm ∈ Qi jest toi¡g stanów i tranzyji q1t1q2 . . . tm−1qm taki, »e m ≥ 2, qj ∈ Qi i tj ∈ out(qj−1)∩ in(qj) ⊆

    Ti dla ka»dego 1 ≤ j ≤ m− 1.Mówimy, »e stan1 qm jest osi¡galny ze stanu q1, o oznazamy q1 =⇒ qm, je»eli istnieje±ie»ka z q1 do qm. Mówimy, »e stan q nale»y do ±ie»ki π = q1t1q2 . . . tm−1qm (lub »e ±ie»kaπ przehodzi przez stan q), je»eli istnieje 1 ≤ j ≤ m takie, »e q = qj . Podobnie, tranzyjat nale»y do ±ie»ki π, je»eli istnieje 1 ≤ j ≤ m− 1 takie, »e t = tj . Zbiór wszystkih stanównale»¡yh do ±ie»ki π oznazamy przez states(π), a zbiór wszystkih tranzyji nale»¡yhdo ±ie»ki π oznazamy przez trans(π).1B�dziemy u»ywa¢ krótszego okre±lenia �stan� zamiast �stan kontrolny�, o ile nie b�dzie prowadziªo todo nieporozumie«. 25

  • ie»k� z q1 do qm nazywamy yklem, je»eli q1 = qm i wszystkie pozostaªe nale»¡e doniej stany kontrolne s¡ ró»ne. Stan nale»¡y do yklu jest stanem wej±iowym yklu, je»elima poprzednika, który nie nale»y do tego yklu. ie»ka π = q1t1q2 . . . tm−1qm zawieraykl, je»eli przehodzi przez jaki± stan wi�ej ni» raz, zyli qi = qj dla pewnyh q ≤ i < j ≤n. Mówimy, »e ±ie»ka jest maksymalna, je»eli prowadzi do stanu ko«owego lub zawieraykl. ie»k� nazwiemy prost¡, je»eli nie zawiera yklu. Zbiór wszystkih ±ie»ek prostyhze stanu q1 do stanu qm b�dziemy oznaza¢ przez Π(q1, qm). Zbiór wszystkih stanówkontrolnyh nale»¡yh do ±ie»ek ze zbioru Π(q1, qm) oznazamy przez states(Π(q1, qm)),a zbiór wszystkih tranzyji nale»¡yh do ±ie»ek ze zbioru Π(q1, qm) oznazamy przeztrans(Π(q1, qm)). W naszyh rozwa»aniah przyjmujemy, »e ka»dy stan kontrolny proesujest osi¡galny z jego stanu poz¡tkowego.Program strukturalnyDla dwóh stanów kontrolnyh q, q′ proesu Pi powiemy, »e q dominuje nad q′, je»eli ka»da±ie»ka ze stanu poz¡tkowego q0i do stanu q′ przehodzi przez q. Przyjmijmy, »e relajadominaji jest zwrotna, zyli ka»dy stan dominuje nad sob¡ samym.De�nija 3.2 O programie w j�zyku bazowym powiemy, »e jest strukturalny2, je»eli zbiórtranzyji Ti ka»dego proesu programu mo»emy podzieli¢ na dwa rozª¡zne podzbiory Fi i Bio nast�puj¡yh wªasno±iah:1. ze stanu poz¡tkowego istnieje ±ie»ka do ka»dego innego stanu proesu, która skªadasi� wyª¡znie z tranzyji nale»¡yh do zbioru Fi i w proesie nie istnieje ykl, doktórego nale»¡ wyª¡znie tranzyje ze zbioru Fi,2. do zbioru Bi nale»¡ wyª¡znie tranzyje, któryh stan doelowy dominuje nad stanem¹ródªowym.Kluzowa wªasno±¢ programu strukturalnego jest nast�puj¡a.Wªasno±¢ 3.3 [ASU02℄ W »adnym proesie programu strukturalnego nie ma yklu zawie-raj¡ego dwa stany wej±iowe.Niestrukturalny przepªyw sterowania bardzo rzadko wyst�puje w praktye. Je»eli wprogramie s¡ u»yte wyª¡znie strukturalne instrukje takie jak if-then-else, while-do, onti-nue zy break, to program zawsze jest strukturalny. Nawet programy napisane przy u»yiuinstrukji goto prawie zawsze s¡ strukturalne, poniewa» stosowanie p�tli z wi�ej ni» jednymwej±iem nie jest powszehne (wedªug autorów [ASU02℄). Metod� redukji przedstawion¡w rozdz. 5 opraowano dla strukturalnyh programów w j�zyku bazowym.3.2 SemantykaW tej z�±i przedstawimy semantyk� programu w j�zyku bazowym, a wi� okre±limy zymjest stan programu, podamy relaj� przej±ia mi�dzy stanami i zde�niujemy wykonanieprogramu. Na poz¡tku wprowadzimy kilka pomonizyh de�niji.2W literaturze polskoj�zyznej u»ywa si� poj�ia redukowalny, ale my przyjmiemy okre±lenie struktu-ralny, poniewa» terminu redukja b�dziemy u»ywa¢ w innym znazeniu w rozdz 5.26

  • Warto±iowanie zmiennyh i buforówNieh ZZ∗ oznaza zbiór i¡gów lizb aªkowityh. Przez Ω b�dziemy oznaza¢ sum� ZZ∪ZZ∗.Funkj� aªkowit¡ v : V ∪ B → Ω tak¡, »e v(V ) ⊆ ZZ i v(B) ⊆ ZZ∗ nazwiemy warto±io-waniem zmiennyh i buforów lub krótko warto±iowaniem. Funkja v przypisuje ka»dejzmiennej warto±¢ aªkowit¡ a ka»demu buforowi i¡g warto±i aªkowityh (pusty i¡g b�-dziemy oznaza¢ przez ε). Warto±iowanie v0 takie, »e v0(b) = ε dla ka»dego buforab ∈ B (wszystkie bufory s¡ puste) nazywamy warto±iowaniem poz¡tkowym. Warto±io-wanie wyra»e« arytmetyznyh E(e, v) dla e ∈ Exp(V ) i danego warto±iowania v ∈ ΩV ∪Bde�niujemy w standardowy sposób:

    • E(m, v) = m, dla m ∈ ZZ,• E(y, v) = v(y), dla y ∈ V ,• E(e1 ⊕ e2, v) = E(e1, v) ⊕ E(e2, v), dla e1, e2 ∈ Exp(V ),• E(−e, v) = −E(e, v),• E((e), v) = E(e, v).Nieh {tt, ff} b�dzie zbiorem warto±i logiznyh, e1, e2 ∈ Exp(V ), b ∈ B i g1, g2 ∈

    BExp(V,B). Warto±iowanie wyra»e« logiznyh B(g, v) dla g ∈ BExp(V,B) i danegowarto±iowania v ∈ ΩV ∪B de�niujemy nast�puj¡o:• B(true, v) = tt,• B(e1 ∼ e2, v) =

    {

    tt je»eli E(e1, v) ∼ E(e2, v),ff je»eli E(e1, v) 6∼ E(e2, v),

    • B(empty(b), v) =

    {

    tt je»eli v(b) = ε,ff je»eli v(b) 6= ε,

    • B(g1 ∧ g2, v) =

    {

    tt je»eli B(g1, v) = tt i B(g2, v) = tt,ff je»eli B(g1, v) = ff lub B(g2, v) = ff,

    • B(g1 ∨ g2, v) =

    {

    tt je»eli B(g1, v) = tt lub B(g2, v) = tt,ff je»eli B(g1, v) = ff i B(g2, v) = ff,

    • B(¬g, v) =

    {

    tt je»eli B(g, v) = ff,ff je»eli B(g, v) = tt,

    • B((g), v) =

    {

    tt je»eli B(g, v) = tt,ff je»eli B(g, v) = ff.Nieh pop : ZZ∗ → ZZ∗, top : ZZ∗ → ZZ i push : ZZ∗ ×ZZ → ZZ∗ b�d¡ funkjami operuj¡ymi nai¡gah warto±i aªkowityh. Dla i¡gu w = u1u2 . . . uk, gdzie k ∈ IN i u ∈ ZZ:

    • pop(w) = u2 . . . uk, 27

  • • top(w) = u1 dla w 6= ε i top(w) = 0 dla w = ε,3• push(w, u) = u1u2 . . . uku.Dla y ∈ V ∪ B i u ∈ Ω nieh v[u/y] oznaza warto±iowanie v′, takie »e v′(z) = u dla

    z = y i v′(z) = v(z) dla z 6= y. Przez J (v, α) oznazamy warto±iowanie v′, któreotrzymano z warto±iowania v po wykonaniu akji α ∈ Act(V,B). Nieh b ∈ B, y ∈ Vi e ∈ Exp(V ). Warto±iowanie J (v, α) jest zde�niowane zgodnie ze struktur¡ akji α wnast�puj¡y sposób:• J (v, ε) = v (akja pusta),• J (v, x := e) = v[ E(e, v) /x ] (instrukja przypisania),• J (v, get(b, y)) = v[ top(v(b)) /y, pop(v(b)) /b ] (operaja wyj�ia z bufora),• J (v, put(b, e)) = v[ push(v(b), E(e, v)) /b ] (operaja wªo»enia do bufora),• J (v, α1;α2) = v′′, gdzie v′′ = J (v′, α2) i v′ = J (v, α1).Warto±iowanie opó¹nie«Funkj� aªkowit¡ µ : Q → IR+, która ka»demu stanowi kontrolnemu przypisuje lizb�rzezywist¡, nazywamy warto±iowaniem opó¹nie«. Intuiyjnie, warto±¢ opó¹nienia µ(q)informuje o tym, ile zasu min�ªo od ostatniego wej±ia i-tego proesu do stanu q, a je»eliproes nigdy wze±niej nie byª w stanie q, to µ(q) mówi, ile zasu min�ªo od poz¡tkudziaªania programu. Zauwa»my, »e je»eli proes znajduje si� w stanie q, to µ(q) jest równezasowi przebywania proesu w tym stanie.Dla δ ∈ IR+, µ + δ oznaza warto±iowanie opó¹nie« µ′, takie »e µ′(q) = µ(q) + δ dlaka»dego stanu kontrolnego q ∈ Q. Dla Y ⊆ Q, µ[Y := 0] oznaza warto±iowanie opó¹nie«

    µ′, takie »e µ′(q) = 0 dla q ∈ Y i µ′(q) = µ(q) dla q ∈ Q \ Y . Warto±iowanie µ0, takie »eµ0(q) = 0 dla ka»dego stanu q ∈ Q nazywamy poz¡tkowym warto±iowaniem opó¹nie«.Stan i kon�guraja programuStan programu jest okre±lony przez stany kontrolne w jakih znajduj¡ si� proesy, warto-±iowanie zmiennyh i buforów oraz warto±iowanie opó¹nie«. Formalnie, stanem programuP jest krotka (q1, . . . , qn, v, µ), gdzie qi ∈ Qi, v ∈ ΩV ∪B i µ ∈ IR+Q. Natomiast kon�guraj¡programu P b�dziemy nazywa¢ krotk� (q1, . . . , qn, v), gdzie qi ∈ Qi i v ∈ ΩV ∪B. Kon�-guraja jest wyznazona przez stany kontrolne proesów oraz warto±iowanie zmiennyhi buforów.Przez Γ(γ) oznazamy zbiór numerów proesów, które posiadaj¡ etykiet� γ w swoimzbiorze etykiet.

    Γ(γ) = { 1 ≤ i ≤ n | γ ∈ Γi}Zde�niujemy jeszze pomoniz¡ funkj� synch : T → {true, false}, której warto±¢informuje zy tranzyja jest synhronizna. Je»eli |Γ(label(t))| > 1, to synch(t) = true, wprzeiwnym przypadku synch(t) = false.3Próba pobrania elementu z pustego bufora jest traktowana jako bª¡d i jest wykrywana w zasie wery-�kaji programu. 28

  • Tranzyje mo»liwe i gotowe do wykonaniaNieh ti ∈ Ti, s = (q1, . . . , qn, v, µ) i l = (q1, . . . , qn, v). Powiemy, »e proes o numerze imo»ewykona¢ tranzyj� ti w stanie s, o oznazamy przez enabledi(ti, s), je»eli stan ¹ródªowy tejtranzyji jest równy qi i dozór tej tranzyji jest prawdziwy przy warto±iowaniu v, a zatem:enabledi(ti, s)

    def= source(ti) = qi ∧ B(guard(ti), v) = ttZauwa»my, »e warto±iowanie opó¹nie« nie ma wpªywu na to, zy proes mo»e wykona¢ dan¡tranzyj�. Dlatego mo»emy powiedzie¢, »e proes o numerze i mo»e wykona¢ tranzyj� tiw kon�guraji l, o oznazamy przez enabledi(ti, l) i de�niujemy:

    enabledi(ti, l)def= source(ti) = qi ∧ B(guard(ti), v) = ttTranyzyja ti ∈ Ti jest mo»liwa do wykonania w stanie s (w kon�guraji l), je»eli mo»eby¢ wykonana przez proes i w stanie s (w kon�guraji l) i ka»dy inny proes zawieraj¡yetykiet� label(ti) mo»e wykona¢ tranzyj� o tej etykieie w stanie s (w kon�guraji l).

    enabled(ti, s)def= enabledi(ti, s) ∧ ∀j∈Γ(label(ti))\{i}∃tj∈Tjenabledj(tj , s) ∧ label(tj) = label(ti)

    enabled(ti, l)def= enabledi(ti, l) ∧ ∀j∈Γ(label(ti))\{i}∃tj∈Tjenabledj(tj , l) ∧ label(tj) = label(ti)Podobnie powiemy, »e tranzyja ti jest gotowa do wykonania przez proes i w stanie s,o oznazamy przez fireablei(ti, s), je»eli proes i mo»e wykona¢ tranzyj� ti w stanie si warto±¢ opó¹nienia w stanie ¹ródªowym tranzyji nale»y do przedziaªu okre±lonego przezjej dozwolone opó¹nienie, a wi�:fireablei(ti, s)

    def= enabled(ti, s) ∧ µ(source(ti)) ∈ delay(ti)Tranzyja ti ∈ Ti jest gotowa do wykonania w stanie s, je»eli jest gotowa do wykonaniaprzez proes i w stanie s i dla ka»dego innego proesu zawieraj¡ego etykiet� label(ti)istnieje tranzyja gotowa do wykonania w stanie s o tej etykieie.

    fireable(ti, s)def= fireablei(ti, s)∧∀j∈Γ(label(ti))\{i}∃tj∈Tj fireablej(tj , s)∧label(tj) = label(ti)Powiemy wreszie, »e tranzyja ti ∈ Ti jest przeterminowana w stanie s, je»eli jest mo»liwado wykonania i zostaªo przekrozone górne ogranizenie na zas jej wykonania.expired(ti, s)

    def= enabled(ti, s) ∧ µ(source(ti)) /∈ upper_delay(ti)SemantykaDla j ∈ Z ⊆ {1, . . . , n} przez 〈 aj 〉j∈Z oznazamy i¡g akji aj uporz¡dkowany rosn¡owedªug numerów indeksów.4De�nija 3.4 Semantyk¡ programu P = (V,B, {Pi | 1 ≤ i ≤ n}), gdzie Pi = (idi, Qi, q0i ,

    Γi, Ti) dla danego warto±iowania poz¡tkowego v0 : V ∪ B → Ω jest etykietowany systemtranzyyjny TS = (S, s0,Λ,−→) zde�niowany nast�puj¡o:4Kolejno±¢ wykonania akji nie ma znazenia (ka»dy przeplot prowadzi do tego samego warto±iowaniazmiennyh i buforów), poniewa» zaªo»yli±my (punkt 3.1.1, str. 24), »e zmienne dzielone ani bufory nie s¡mody�kowane przez tranzyje synhronizne. 29

  • • S = Q1 × . . .×Qn × ΩV ∪B × IR+Q jest zbiorem stanów,

    • s0 = (q01 , . . . , q0n, v

    0, µ0) ∈ S jest stanem poz¡tkowym,• Λ =

    ⋃ni=1 Γi ∪ IR+ jest zbiorem etykiet,

    • −→⊆ S × Λ × S jest relaj¡ przej±ia, zyli najmniejsz¡ relaj¡ speªniaj¡¡ warunki:� nieh s = (q1, . . . , qn, v, µ) i s′ = (q′1, . . . , q′n, v′, µ′), dla γ ∈ Γ s γ−→ s′ wtedyi tylko wtedy, gdy istnieje zbiór tranzyji T ′ = {ti | i ∈ Γ(γ)} ⊆ T taki, »e:∗ fireablei(ti, s), label(ti) = γ i target(ti) = q′i dla ka»dej tranzyji ti ∈ T ′,∗ v′ = J (v, 〈action(ti)〉ti∈T ′),∗ µ′ = µ[{q′i | i ∈ Γ(γ)} := 0],∗ q′j = qj dla j ∈ {1, . . . , n} \ Γ(γ),� nieh s = (q1, . . . , qn, v, µ) i s′ = (q1, . . . , qn, v, µ+ δ), dla δ ∈ IR+ s δ−→ s′ wtedyi tylko wtedy, gdy δ > 0 i dla ka»dej tranzyji t ∈ T zahodzi

    ¬enabled(t, s) ∨ (¬urgent(t) ∧ ¬expired(t, s′))lub δ = 0.W stanie poz¡tkowym wszystkie bufory s¡ puste, a zmienne maj¡ warto±i poz¡tkoweokre±lone przez warto±iowanie v0. B�d¡ w stanie s = (q1, . . . , qn, v, µ) system mo»e:• Wykona¢ tranzyje o etykieie γ ∈ Γ (przej±ie akyjne), je»eli s¡ one gotowe dlawszystkih proesów o numerah ze zbioru Γ(γ). Stany kontrolne proesów wykonu-j¡yh tranzyje zmieniaj¡ si� na stany doelowe tyh tranzyji, a stany kontrolnepozostaªyh proesów pozostaj¡ bez zmian. Warto±i zmiennyh i buforów zmieniaj¡si� zgodnie ze struktur¡ akji tranzyji. Warto±i opó¹nie« nie zostaj¡ zwi�kszone,natomiast opó¹nienia dla stanów q′i gdzie i ∈ Γ(γ) zostaj¡ wyzerowane.• Pozwoli¢, »eby min�ªo δ > 0 jednostek zasu (przej±ie zasowe) pod warunkiem, »enie ma mo»liwej do wykonania tranzyji, która jest pilna lub która po upªywie tegozasu byªaby przeterminowana. Opó¹nienie dla ka»dego stanu jest zwi�kszane o δ.System zawsze mo»e wykona¢ tranzyj� zasow¡ o dªugo±i 0.Przebiegi programu

    s−przebiegiem lub wykonaniem programu P nazywamy niesko«zony i¡g stanów:s0

    λ0→ s1λ1→ s2

    λ2→ . . .gdzie si ∈ S i λi ∈ Γ ∪ IR+ dla ka»dego i ≥ 0 oraz s0 = s. Zauwa»my, »e skoro λi mo»eby¢ równe 0, to dwie kolejne tranzyje akyjne mog¡ by¢ wykonane bezpo±rednio jedna podrugiej (bez upªywu zasu pomi�dzy nimi). Wprowadzimy wi� poj�ie przebiegu post�-puj¡ego. Przebieg programu s0 λ0→ s1 λ1→ s2 λ2→ . . . nazywamy post�puj¡ym, je»eli suma∑

    {i∈IN |λi∈IR+}λi jest niesko«zona. Zaªo»enie o post�powo±i jest naturalne, poniewa» w30

  • rzezywisto±i nie mamy wpªywu na upªyw zasu (nie mo»emy go w »aden sposób ograni-za¢), a poza tym »aden rzezywisty proes nie mo»e wykonywa¢ swoih akji niesko«zenieszybko, zyli nie mo»e wykona¢ niesko«zonej lizby tranzyji akyjnyh w sko«zonymzasie.W wery�kaji modelowej z�sto bierze si� pod uwag� tylko te przebiegi programu, którespeªniaj¡ warunki uziwo±i (ang. fairness onditions), de�niowane zazwyzaj w nast�pu-j¡y sposób:• je»eli jaka± tranzyja, jest niesko«zenie z�sto gotowa do wykonania, to b�dzie nie-sko«zenie z�sto wykonana (tak zwana silna uziwo±¢, ang. strong fairness),• je»eli jaka± tranzyja, jest niesko«zenie dªugo gotowa do wykonania, to b�dzie nie-sko«zenie z�sto wykonana (tak zwana sªaba uziwo±¢, ang. weak fairness).Nieh σ = s0 λ0→ s1 λ1→ s2 λ2→ . . ., gdzie λi ∈ Γ ∪ IR+ dla ka»dego i ≥ 0. Dla λi ∈ Γ przez

    transσ(λi) ⊆ T oznazmy zbiór tranzyji (jednoelementowy, je»eli λi jest etykiet¡ lokaln¡)wykonywanyh podzas przej±ia λi. Powiemy, »e przebieg σ jest silnie uziwy wzgl�demtranzyji nale»¡yh do zbioru T ′ ⊆ T , je»eli dla ka»dej tranzyji t ∈ T ′ jest speªnionynast�puj¡y warunek:(∀k≥0∃j≥k fireable(t, sj)) ⇒ (∀k≥0∃j≥k t ∈ transσ(λj)).Przebieg σ jest sªabo uziwy wzgl�dem tranzyji nale»¡yh do zbioru T ′ ⊆ T , je»eli dlaka»dej tranzyji t ∈ T ′ jest speªniony nast�puj¡y warunek:(∃k≥0∀j≥k fireable(t, sj)) ⇒ (∀k≥0∃j≥k t ∈ transσ(λj)).W rozprawie nie przyjmujemy »adnyh zaªo»e« na temat uziwo±i ani progresywno-±i programów. Prezentowane w kolejnyh rozdziaªah metody generowania automatówzasowyh i redukji s¡ przedstawione dla najbardziej ogólnej de�niji przebiegu programu.Azkolwiek w rozdziale 5 pokazujemy, »e je»eli ogranizymy nasze rozwa»ania tylko do prze-biegów silnie (sªabo) uziwyh, to ka»dy przebieg zredukowanego programu odpowiadaj¡ysilnie (sªabo) uziwemu przebiegowi oryginalnego programu, b�dzie równie» silnie (sªabo)uziwy (i odwrotnie). Podobnie dla zaªo»enia o progresywno±i.Dla s = (q1, . . . , qn, v, µ) ∈ S i δ, δ′ ∈ IR+ nieh s+ δ oznaza stan (q1, . . . , qn, v, µ+ δ).Poª¡zeniem dwu tranzyji zasowyh s δ→ s+ δ i s+ δ δ′→ s+ δ+ δ′ jest tranzyja zasowa

    sδ+δ′→ s+δ+δ′. Podobnie, je»eli s δ→ s+δ, to dla dowolnego k ∈ IN+ istniej¡ δ1, . . . , δk ∈ IR+takie, »e δ1+ . . .+δk = δ i s δ1→ s+δ1 δ2→ . . . δk→ s+δ, zyli ka»da tranzyja zasowa mo»e by¢podzielona na dowoln¡, ale sko«zon¡ lizb� tranzyji zasowyh. Nie b�dziemy rozró»nia¢przebiegów, z któryh jeden mo»e powsta¢ z drugiego przez podziaª lub poªazenie tranzyjizasowyh.3.3 Poprawno±¢ programuDla j�zyka bazowego nie przedstawiamy nowej logiki ani systemu dowodzenia. Do wyra»eniawªasno±i programu mo»na u»y¢ istniej¡yh logik temporalnyh takih jak CTL∗ opisanaw rozdz. 2. 31

  • ModelNieh TS = (S, s0,Λ,−→) b�dzie etykietowanym systemem tranzyyjnym dla programuP = (V,B, {Pi | 1 ≤ i ≤ n}), gdzie Pi = (idi, Qi, q0i ,Γi, Ti). Mo»emy de�niowa¢ nast�puj¡ezmienne zdaniowe dla programu P :

    • pe1 ∼ e2 , gdzie e1, e2 ∈ Exp(V ) i ∼ jest operatorem relayjnym,• pempty(b), gdzie b ∈ B,• pi.q, gdzie 1 ≤ i ≤ n i q ∈ Qi.Dla pewnego zbioru zmiennyh zdaniowyh PV , warto±¢ funkji warto±iuj¡ej V : S → 2PVw stanie s = (q1, . . . , qn, v, µ) programu P de�niujemy w nast�puj¡y sposób:• pe1 ∼ e2 ∈ V(s) wtedy i tylko wtedy, gdy B(e1 ∼ e2, v) = tt,• pempty(b) ∈ V(s) wtedy i tylko wtedy, gdy v(b) = ε,• pi.q ∈ V(s) wtedy i tylko wtedy, gdy qi = q.Zmienna zdaniowa pe1 ∼ e2 etykietuje stan s, zyli zdanie e1 ∼ e2 jest prawdziwe wstanie s, je»eli warto±iowanie zmiennyh i buforów speªnia warunek e1 ∼ e2. Podobnie,zdanie pempty(b) jest prawdziwe w stanie s, je»eli w tym stanie bufor b jest pusty, a pi.q jestprawdziwe w stanie s, je»eli stan kontrolny i-tego proesu w s (qi) jest równy q.Modelem programu P nazywamy par�

    M = (TS,V).3.4 PrzykªadyDla zwi�kszenia zytelno±i wszystkie przykªady programów w j�zyku bazowym b�dziemyprzedstawia¢ w postai rysunków, gdzie stany programu s¡ reprezentowane przez owale, atranzyje przez strzaªki etykietowane odpowiednimi atrybutami. Maªe strzaªki wskazuj¡poz¡tkowe stany kontrolne poszzególnyh proesów.3.4.1 Produent i konsumentPrzedstawimy najpierw bardzo prosty program, którym zilustrujemy generowanie automa-tów zasowyh (w rozdziale 4). Na rys. 3.1 przedstawiono system skªadaj¡y si� z proesówProduent i Konsument, które do komunikaji wykorzystuj¡ bufor b. W systemie s¡ opróztego trzy zmienne: zmienna count przehowuj¡a lizb� elementów w buforze, u»ywanai de�niowana przez obydwa proesy oraz zmienne reprezentuj¡e porje danyh proesuProduent (p) i Konsument (c).Proes Produent wykonuje na przemian dwa rodzaje zynno±i: produkuje porje da-nyh (tranzyja o etykieie produce) i wysyªa je do proesu Konsument (send). Produkjadanyh zajmuje o najmniej 1 i nie wi�ej ni» 2 jednostki zasu. Je»eli tylko bufor nie jestpeªny (count < N), to proes natyhmiast po wyprodukowaniu danyh (informuje o tymznaznik urgent) umieszza je w buforze (put(b, p)) i zwi�ksza liznik (count := count+ 1).32

  • Producent Konsument

    C2P2

    P1 C1

    V={p,c,count}

    B={b}

    send:(count0)urgentget(b,c)count:=count−1

    Rysunek 3.1: Produent i konsumentProes Konsument ykliznie pobiera porje danyh z bufora (tranzyja o etykieiereceive) i konsumuje je (consume). Pobranie porji odbywa si� natyhmiast (urgent),je»eli tylko bufor nie jest pusty (count > 0). Konsument wyjmuje wtedy dane z bufora(get(b, c)) i zmniejsza liznik (count := count − 1). Konsumpja danyh trwa dowolniedªugo.Przykªadowe warto±iowanie poz¡tkowe v0 dla programu jest nast�puj¡e: v0(count) =v0(p) = v0(c) = 0 i v0(b) = ε.Przykªady wªasno±iDla programu zde�niujmy nast�puj¡e zmienne zdaniowe:

    • p1 := pcount≤N , zyli lizba elementów w buforze (count) nie przekraza N ,• p2 := p2.C1, zyli proes o numerze 2 (Konsument) jest w stanie C1,• p3 := p2.C2, zyli proes o numerze 2 (Konsument) jest w stanie C2.Formuªa

    AG p1jest przykªadem wªasno±i bezpieze«stwa5. Natomiast formuªaAG (p2 ⇒ AF p3)która mówi, »e zawsze, gdy Konsument jest gotowy do odebrania porji danyh, to w ko«uje dostanie, jest przykªadem wªasno±i »ywotno±i6. Obie formuªy s¡ prawdziwe. NatomiastformuªaAG (p3 ⇒ AF p2)5Bezpieze«stwo oznaza, »e �nigdy nie zdarzy si� ni zªego�.6ywotno±¢ oznaza, »e �zawsze w ko«u stanie si� o± po»¡danego�.33

  • 8(d, )8(d, )

    setX1:

    setX1:

    setX1:

    setX1:

    /O

    [O,D)

    P2

    idle2start2:

    trying2

    enter2:

    critical2 waiting2

    setX2:

    enter1:

    start1:

    critical1 waiting1

    [O,D)

    trying1idle1

    setX01: setX02:

    P1

    start2:start1:

    setX2:

    setX2:

    setX2:enter2: enter1:

    setX01:

    setX02:

    X

    S0

    S1S2

    V=B=

    Rysunek 3.2: Synhronizny protokóª Fisherajest prawdziwa tylko wtedy, gdy przyjmiemy dodatkowe zaªo»enia o uziwo±i, a wi� wzasie wery�kaji b�dziemy brali pod uwag� jedynie przebiegi speªniaj¡e warunki uzi-wo±i (sªabe lub silne), zyli takie w któryh proes Konsument nie mo»e przebywa¢ wniesko«zono±¢ w stanie C2.3.4.2 Protokóª Fishera wzajemnego wykluzaniaNast�pnym przykªadem jest protokóª Fishera wzajemnego wykluzania opisany w punkie2.1.6. Poka»emy tutaj dwa sposoby przedstawienia tego protokoªu w j�zyku bazowym.Pierwszy ze sposobów wykorzystuje mehanizm wspólnego wykonywania tranzyji przezwiele proesów (tak jak w automatah zasowyh). Na rys. 3.2 przedstawiono trzy proesy:P1, P2 i X , któryh dziaªanie omówiono dokªadnie w rozdz. 2.1.6. Jedyna ró»nia polegana tym, »e ogranizenia na zas wykonywania tranzyji s¡ reprezentowane przez dozwoloneopó¹nienia, a nie przez warunki zegarowe.Ozywi±ie protokóª Fishera mo»e by¢ opisany w bardziej naturalny sposób, w którymzmienna steruj¡a protokoªu jest reprezentowana poprostu przez zmienn¡ programu (dlav0(X) = 0), a nie przez proes, o pokazano na rys. 3.3. Tak przedstawiony protokóª dajesi� w bardzo ªatwy sposób uogólni¢ na dowoln¡ lizb� proesów (wystarzy doda¢ noweproesy, któryh dziaªanie jest analogizne do dziaªania proesów P1 i P2), o nie jestprawd¡ w przypadku opisu synhroniznego.Formuªa

    AG ¬(c1 ∧ c2)gdzie c1 := p1.critical1 i c2 := p2.critical2, wyra»a wªasno±¢ wzajemnego wykluzania (ni-gdy dwa proesy nie przebywaj¡ jednoze±nie w swoih sekjah krytyznyh). Ciekaw¡eh¡ tego protokoªu jest to, »e prawdziwo±¢ powy»szej formuªy zale»y od warto±i progówzasowyh D i d. Formuªa jest prawdziwa wtedy i tylko wtedy, gdy D < d.34

  • setX1:

    8(d, ) 8(d, )

    [O,D)

    P2

    idle2start2:

    trying2

    enter2:

    setX2:

    enter1:

    start1:

    [O,D)

    trying1idle1

    setX01: setX02:

    P1

    X:=2X:=1X:=0X:=0

    waiting1(X=1)

    critical2 waiting2(X=2)

    (X=0) (X=0)

    B= /

    critical1

    O

    V={X}

    Rysunek 3.3: Asynhronizny protokóª Fishera3.4.3 Protokóª zmieniaj¡ego si� bituOpis protokoªuNa konie przedstawimy troh� wi�kszy przykªad, którym zilustrujemy metod� i�ia wrozdziale 5. Protokóª zmieniaj¡ego si� bitu (ang. Alternating Bit Protool, w skróieABP) [BSW69℄ jest protokoªem komunikayjnym, który umo»liwia transmisj� danyh w±rodowisku, w którym nie ma gwaranji dotaria danyh do elu. Wykorzystany jest tutajmehanizm potwierdzania i retransmisji danyh. W protokole ka»da porja danyh i ka»depotwierdzenie otrzymania danyh opatrzone jest jednobitowym znaznikiem, na podstawiektórego nadawa rozpoznaje, zy porja danyh zostaªa odebrana, zy te» zostaªa zgubionai wtedy wysyªa j¡ jeszze raz.Rysunek 3.4 przedstawia jedn¡ z wersji tego protokoªu opisan¡ w j�zyku bazowym. Pro-gram skªada si� z trzeh proesów: Nadawy, Odbiory i Bufora. Proes Nadawa (Odbiora)odpowiada stronie wysyªaj¡ej (odbieraj¡ej) komunikaty. Zawodne ª¡ze jest reprezento-wane przez proes Bufor i 6 buforów komunikayjnyh zawieraj¡yh odpowiednio:• sbd � dane przesyªane mi�dzy Nadaw¡ a Buforem,• sbb � bity przesyªane mi�dzy Nadaw¡ a Buforem,• bsa � potwierdzenia przesyªane mi�dzy Buforem a Nadaw¡,• brd � dane przesyªane mi�dzy Buforem a Odbior¡,• brb � bity przesyªane mi�dzy Buforem a Odbior¡,• rba � potwierdzenia przesyªane mi�dzy Odbior¡ a Buforem.Zmienne csbd, cbsa, cbrd, crba odpowiadaj¡ ilo±i komunikatów w danym buforze i s¡ od-powiednio mody�kowane przy wysyªaniu i odbieraniu komunikatów z tyh buforów. Bufor

    sbb (ani brb) nie ma liznika, poniewa» lizba wiadomo±i w buforze sbb jest zawsze równalizbie wiadomo±i w buforze sbd, zyli warto±i liznika csbd (podobnie dla buforów brb ibrd). 35

  • (cbrd>0)and(crba

  • Proes Bufor modeluje dwa rodzaje zahowania: poprawne przekazanie danyh lub ihzgubienie. W tranzyji l12 Bufor pobiera dane (get(sbd, bdata)) razem ze znaznikiem(get(sbb, bbit)) od Nadawy i przekazuje je w niezmienionej postai do Odbiory. Natomiastw tranzyji l13 Bufor pobiera dane i znaznik od Nadawy i nie przekazuje ih dalej. Analo-giznie jest w przypadku przekazywania potwierdzenia od Odbiory do Nadawy (tranzyjel14 i l15).Proes Nadawa umieszza dane (sdata) i znaznik (sbit) w odpowiednih buforah (o ilenie s¡ peªne). Nast�pnie zeka na potwierdzenie. Je»eli nie otrzyma potwierdzenia w i¡guT jednostek zasu, to ponownie przesyªa t� sam¡ par�: dane i znaznik. Je»eli otrzymapotwierdzenie (w postai jednego bitu), to sprawdza, zy warto±¢ potwierdzenia (sack) jestrówna znaznikowi (sbit). Je»eli nie jest, to ponownie wysyªa dane i znaznik. Je»eli warto±¢potwierdzenia jest zgodna z ozekiwan¡, to znazy, »e ta porja danyh zostaªa poprawnieodebrana przez Odbior� i Nadawa zmienia warto±¢ swojego bitu (sbit) na przeiwn¡ (z 0na 1 i odwrotnie). Nast�pnie Nadawa generuje nowe dane (reprezentowane przez kolejnelizby aªkowite z zakresu od 1 do N). Generowanie nowyh danyh zajmuje o najmniejL i o najwy»ej U jednostek zasu. Od tego momentu dziaªanie Nadawy powtarza si� dlanowyh warto±i danyh i znaznika.Proes Odbiora po odebraniu danyh (rdata) i znaznika (rack) wysyªa potwierdzenierówne warto±i znaznika. Nast�pnie sprawdza, zy warto±¢ znaznika jest równa warto±ibitu kontrolnego (rbit) i je»eli tak, to zmienia warto±¢ tego bitu na przeiwn¡.Warto±iowanie poz¡tkowe dla programu jest nast�puj¡e: v0(sdata) = 1, v0(y) = 0dla y ∈ V \ {sdata} i v0(b) = ε dla b ∈ B.Zauwa»my, »e program z rys. 3.4 jest strukturalny, poniewa» dla ka»dego proesu istniejepodziaª na zbiory Fi i Bi speªniaj¡e warunki de�niji 3.2: dla proesu Nadawy zbiórF1 = {l1, l3, l5, l6, l7}, a B2 = {l2, l4, l8}, dla proesu Odbiory F2 = {l9} i B2 = {l9, l10},a dla proesu Bufora F3 = ∅ i B2 = {l12, l13, l14, l15}.Przykªady wªasno±iProtokóª ABP jest poprawny tylko wtedy, gdy warto±¢ zmiennej sbit (u»ywana w proesieNadawy) jest równa warto±i zmiennej rbit (u»ywanej w proesie Odbiory).Sformuªujmy nast�puj¡¡ wªasno±¢: je»eli proesy Nadawy i Odbiory s¡ w swoihpoz¡tkowyh stanah kontrolnyh (zyli w stanie poz¡tkowym i wtedy, gdy obydwa pro-esy zd¡»yªy zmieni¢ warto±i swoih bitów) i warto±¢ zmiennej sbit wynosi 0, to warto±¢zmiennej rbit równie» wynosi 0 (podobnie mo»emy sprawdzi¢ dla warto±i 1).7 Zde�niujmynast�puj¡e zmienne zdaniowe:

    • s1 := p1.S1 (s2 := p1.S2), zyli proes o numerze 1 (Nadawa) jest w stanie S1 (S2),• r1 := p2.R1 (r2 := p2.R2), zyli proes o numerze 2 (Odbiora) jest w stanie R1 (R2),• sbit0 := psbit=0,• rbit0 := prbit=0.7Powód, dla którego nie de�niujemy zmiennej zdaniowej psbit=rbit zostanie podany w punkie 4.3.6.37

  • Formuªa ϕ wyra»aj¡a nasz¡ wªasno±¢ ma posta¢ϕ = AG((s1 ∧ r1 ∧ sbit0) ⇒ rbit0)Badaniem tej wªasno±i zajmiemy si� w kolejnyh rozdziaªah. Nast�pna formuªa, którajest przykªadem wªasno±i »ywotno±i

    ψ = AG (s2 ⇒ AF r2)mówi, »e je»eli Nadawa wysªaª dane, to w ko«u dotr¡ one do Odbiory. Zauwa»my,»e ta wªasno±¢ jest prawdziwa tylko przy zaªo»eniu silnej uziwo±i, w przeiwnym raziejest mo»liwy taki niesko«zony przebieg programu, w którym Bufor gubi wszystkie pakietyprzekazywane przez Nadaw� (tranzyja l12 nie jest wykonana mimo, »e niesko«zenie z�s-to jest mo»liwa do wykonania).3.5 Podsumowanie rozdziaªuOd j�zyków opisu systemów zasowyh takih jak Estelle [ISO97℄ zy SDL [MT01℄, któremo»emy okre±li¢ mianem j�zyków wysokiego poziomu, j�zyk bazowy ró»ni si� tym, »e mauproszzon¡ skªadni�. Nie posiada typowyh dla j�zyków programowania instrukji if-then-else, zy while. Jednak takie instrukje mo»na ªatwo �wyrazi¢� w j�zyku bazowym (waru-nek instrukji if-then-else wykorzystuj¡ dozory tranzy