akcijska logika dreves izvajanj z operatorjem unlesslms.uni-mb.si/~meolic/papers/meolic-phd.pdf ·...

194
Univerza v Mariboru Fakulteta za elektrotehniko, raˇ cunalniˇ stvo in informatiko Robert Meolic Akcijska logika dreves izvajanj z operatorjem unless Doktorska disertacija Maribor, september 2005

Upload: trandiep

Post on 11-Aug-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Univerza v MariboruFakulteta za elektrotehniko, racunalnistvo in informatiko

Robert Meolic

Akcijska logika dreves izvajanj zoperatorjem unless

Doktorska disertacija

Maribor, september 2005

Avtor: Robert MeolicNaslov: Akcijska logika dreves izvajanj z operatorjem unless

Naslov v anglescini: Action computation tree logic with unless operatorUDK: 004.23(043.3)

Kljucne besede: formalne metode verifikacije sistemov, preverjanje modela, tem-poralna logika, CTL, ACTL, ACTLW, diagnostika, prica, proti-primer, avtomat pric in protiprimerov, problem medsebojnega iz-kljucevanja

Stevilo izvodov: 10Obdelava besedila: Robert Meolic

Obdelava slik: Robert MeolicRazmnozevanje: Laboratorij za mikroracunalniske sisteme, Fakulteta za elektro-

tehniko, racunalnistvo in informatiko, MariborKraj in datum: Maribor, september 2005

Na Univerzi v Mariboru,Fakulteti za elektrotehniko, racunalnistvo in informatiko, je

mag. Robert Meolic, univ. dipl. inz. rac.

dne 16. septembra 2005 uspesno zagovarjal doktorsko disertacijo znaslovom

Akcijska logika dreves izvajanj zoperatorjem unless

pred komisijo v sestavi:

1. red. prof. dr. Igor Ticar — predsednik

2. izr. prof. dr. Tatjana Kapus, mentorica — clanica

3. red. prof. dr. Zmago Brezocnik — clan

4. Prof. Alessandro Fantechi, Univerza v Firencah — clan

vii

Posveceno starsema, ki sta mi vedno stala ob strani ...

... in Marku, da bi nasel eno od srecnih poti skozi zivljenje!

viii

ix

Zahvala

Zahvaljujem se mentorici izr. prof. dr. Tatjani Kapus, ki spremlja moje raziskovalnodelo od samega zacetka in ki je s svojim znanjem in trudom pripomogla, da je ta doktor-ska disertacija bogatejsa, celovitejsa in tudi lepsa, kot bi bila sicer. Se posebej hvala zavsa strokovna vprasanja, predloge, pripombe in stevilne razgovore, v katerih se je kalilavsebina pricujocega dela. Iskrena hvala tudi za obilno pomoc in podporo skozi vse ob-dobje podiplomskega studija, se posebej za zares skrbne jezikovne preglede slovenskih inangleskih besedil.

Zahvaljujem se vodji Laboratorija za mikroracunalniske sisteme red. prof. dr. ZmaguBrezocniku in vodji Instituta za elektroniko red. prof. dr. Bogomirju Horvatu, da stamed mojim podiplomskim studijem skrbela za to, da sem lahko bil zaposlen na Fakultetiza elektrotehniko, racunalnistvo in informatiko v Mariboru, da sem lahko sodeloval, sepreizkusal in se izpopolnjeval v raznih oblikah strokovnih in znanstvenih dejavnosti in dasem kdaj pa kdaj zaradi postavljenih izzivov naredil tudi vec, kot sem bil dolzan narediti.Njuni dobri nameni, spodbude in vlozen trud so gotovo vplivali na moje delo.

Zahvaljujem se Prof. Alessandru Fantechiju iz Dipartimento di Sistemi e Informaticana Univerzi v Firencah za sodelovanje na strokovnem podrocju, se posebej med mojimtrimesecnim gostovanjem v Italiji. Sodelovanje z njim je pomembno prispevalo k mojemurazumevanju tematike nastajajoce doktorske disertacije in mi hkrati omogocilo, da semdodal zelo atraktivno poglavje o avtomatih pric in protiprimerov.

Vsem clanom komisije za oceno doktorske disertacije se se posebej zahvaljujem zaskrbni pregled pricujocega dela ter za vse zelo koristne pripombe in predloge.

x

xi

UDK: 004.23(043.3)

Kljucne besede: formalne metode verifikacije sistemov, preverjanje modela, tem-poralna logika, CTL, ACTL, ACTLW, diagnostika, prica, proti-primer, avtomat pric in protiprimerov, problem medsebojnega iz-kljucevanja

Akcijska logika dreves izvajanj zoperatorjem unless

Povzetek

Doktorska disertacija definira in raziskuje akcijsko logiko dreves izvajanjz operatorjem unless (ACTLW). ACTLW je izjavna temporalna logika razve-janega casa. Izhaja iz logike ACTL, ki je bila vpeljana leta 1990 in je ena oduveljavljenih temporalnih logik za izrazanje lastnosti modelov, ki temeljijo nadogodkih. ACTLW je fleksibilnejsa od ACTL, saj ne vsiljuje uporabe notra-njega dogodka τ pri izrazanju lastnosti. ACTLW je tudi nekoliko izraznejsa odACTL, saj vsebuje temporalni operator unless (W), katerega pomena v ACTLni mozno v celoti izraziti. Nasprotno pa lahko vse formule ACTL izrazimoz uporabo operatorjev ACTLW. ACTLW omogoca ucinkovito izvedbo pre-verjanja modelov s podobnimi algoritmi kot pri preverjanju modela s CTL,kar je pomembna izboljsava glede na logiko ACTL. Doktorska disertacija po-daja definicijo logike ACTLW, izpeljave vseh standardnih temporalnih opera-torjev in algoritme za globalno preverjanje modela z ACTLW s simbolicnimracunanjem. Predstavljeni so tudi algoritmi za tvorjenje diagnostike pri AC-TLW, za tvorjenje linearnih pric in protiprimerov pri ACTLW ter za tvorjenjeavtomatov pric in protiprimerov pri ACTLW. Doktorska disertacija je v celotozaokrozena z vzorci formul ACTLW in dvema vecjima prakticnima prime-roma: verifikacijo vec razlicnih algoritmov za medsebojno izkljucevanje inverifikacijo dveh asinhronih vezij za porazdeljeno medsebojno izkljucevanje.

xii

xiii

UDK: 004.23(043.3)

Keywords: formal methods of system verification, model checking, temporal logic,CTL, ACTL, ACTLW, diagnostics, witness, counterexample, witnessand counterexample automaton, mutual-exclusion problem

Action computation tree logicwith unless operator

Abstract

This thesis defines and studies action computation tree logic with unlessoperator (ACTLW). ACTLW is a propositional branching-time temporal lo-gic. It is derived from logic ACTL, which was introduced in 1990 and whichis one of established temporal logics for expressing properties of action-basedmodels. ACTLW is more flexible than ACTL, because it does not imposethe usage of silent action τ in expressing of the properties. ACTLW has alsoa slightly greater expressive power than ACTL, because it contains tempo-ral operator unless (W), whose meaning cannot be fully covered in ACTL.As opposite, all ACTL formulae can be expressed using ACTLW operators.ACTLW enables efficient implementation of model checking by using simi-lar algorithms to those used for CTL model checking, which is a significantadvantage in comparison to logic ACTL. The thesis gives a definition of lo-gic ACTLW, derivations of all standard temporal operators, and algorithmsfor global ACTLW model checking using symbolic methods. Moreover, al-gorithms for generation of diagnostics for ACTLW, for generation of linearwitnesses and counterexamples for ACTLW, and for generation of witness andcounterexample automata for ACTLW are presented. The thesis is accompli-shed with patterns of ACTLW formulae and two larger practical examples: averification of several different mutual-exclusion algorithms and a verificationof two asynchronous distributed mutual-exclusion circuits.

xiv

Vsebina

Kazalo slik xix

Kazalo definicij xxiii

Kazalo primerov xxv

1 Uvod 11.1 Predstavitev problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Vsebina doktorske disertacije . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Izvirni znanstveni prispevki doktorske disertacije . . . . . . . . . . . . . 5

2 Temporalne logike CTL, ACTL in ACTLW 72.1 Teoreticne osnove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 Negibna tocka . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.3 Temporalna logika . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2 Kripkejeva struktura in CTL . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Oznaceni sistem prehajanja stanj in ACTL . . . . . . . . . . . . . . . . . 152.4 Temporalna logika ACTLW . . . . . . . . . . . . . . . . . . . . . . . . 182.5 Preslikave med logikami CTL, ACTL in ACTLW . . . . . . . . . . . . . 242.6 Vzorci formul za CTL, ACTL in ACTLW . . . . . . . . . . . . . . . . . 31

2.6.1 Vzorci prisotnosti in odsotnosti . . . . . . . . . . . . . . . . . . 322.6.2 Vzorci za izrazanje obstoja . . . . . . . . . . . . . . . . . . . . . 332.6.3 Vzorci za izrazanje obstoja prednikov . . . . . . . . . . . . . . . 342.6.4 Vzorci za izrazanje obstoja odziva . . . . . . . . . . . . . . . . . 352.6.5 Vzorci za izrazanje trajanja . . . . . . . . . . . . . . . . . . . . . 362.6.6 Preizkus vzorcev formul ACTLW in ACTL . . . . . . . . . . . . 40

2.7 Vpeljava zagatnih stanj v LTS . . . . . . . . . . . . . . . . . . . . . . . 42

xv

xvi VSEBINA

3 Preverjanje modela z ACTLW 473.1 Teoreticne osnove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.1.1 Preklopna algebra in logicne funkcije . . . . . . . . . . . . . . . 473.1.2 Simbolicne metode . . . . . . . . . . . . . . . . . . . . . . . . . 483.1.3 Preverjanje modela . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.2 Simbolicno preverjanje modela z ACTLW . . . . . . . . . . . . . . . . . 513.3 Izvedba z operatorji EEU, EEW, AAU in AAW . . . . . . . . . . . . . 53

3.3.1 Razresevanje operatorja EEU . . . . . . . . . . . . . . . . . . . 533.3.2 Razresevanje operatorja EEW . . . . . . . . . . . . . . . . . . . 543.3.3 Razresevanje operatorja AAU . . . . . . . . . . . . . . . . . . . 553.3.4 Razresevanje operatorja AAW . . . . . . . . . . . . . . . . . . . 56

3.4 Izvedba z operatorji EEU, EEG, AAW in AAF . . . . . . . . . . . . . . 563.4.1 Razresevanje operatorja EEG . . . . . . . . . . . . . . . . . . . 573.4.2 Razresevanja negacije operatorja AAW . . . . . . . . . . . . . . 573.4.3 Razresevanje negacije operatorja AAF . . . . . . . . . . . . . . . 58

3.5 Vpeljava zagatnih stanj v LTS . . . . . . . . . . . . . . . . . . . . . . . 59

4 Diagnostika ter price in protiprimeri pri ACTLW 634.1 Teoreticne osnove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.2 Diagnosticne poti pri ACTLW . . . . . . . . . . . . . . . . . . . . . . . 65

4.2.1 Tvorjenje diagnosticne poti za operator EEU . . . . . . . . . . . 664.2.2 Tvorjenje diagnosticne poti za operator EEG . . . . . . . . . . . 674.2.3 Tvorjenje diagnosticne poti za operator AAW . . . . . . . . . . . 684.2.4 Tvorjenje diagnosticne poti za operator AAF . . . . . . . . . . . 694.2.5 Tvorjenje diagnosticnih poti za druge operatorje ACTLW . . . . . 704.2.6 Vpeljava zagatnih stanj v LTS . . . . . . . . . . . . . . . . . . . 71

4.3 Diagnostika za ACTLW . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.4 Linearne price in protiprimeri za ACTLW . . . . . . . . . . . . . . . . . 774.5 Avtomati pric in protiprimerov za ACTLW . . . . . . . . . . . . . . . . . 86

5 Prakticni primeri 955.1 Orodje za verifikacijo sistemov EST . . . . . . . . . . . . . . . . . . . . 95

5.1.1 Kratka predstavitev orodja . . . . . . . . . . . . . . . . . . . . . 955.1.2 Specifikacija modelov . . . . . . . . . . . . . . . . . . . . . . . 975.1.3 Preverjanje modela z ACTL in ACTLW . . . . . . . . . . . . . . 99

5.2 Verifikacija algoritmov za medsebojno izkljucevanje . . . . . . . . . . . 1015.2.1 Dekkerjev algoritem . . . . . . . . . . . . . . . . . . . . . . . . 103

VSEBINA xvii

5.2.2 Hymanov algoritem . . . . . . . . . . . . . . . . . . . . . . . . 1055.2.3 Lamportov pekarniski algoritem . . . . . . . . . . . . . . . . . . 1065.2.4 Petersonov algoritem . . . . . . . . . . . . . . . . . . . . . . . . 1095.2.5 Rezultati verifikacije . . . . . . . . . . . . . . . . . . . . . . . . 111

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje . . . . . . . . . 1155.3.1 Kratek uvod v nacrtovanje asinhronih vezij . . . . . . . . . . . . 1155.3.2 Modeliranje asinhronih vezij z LTS-ji . . . . . . . . . . . . . . . 1185.3.3 Odkrivanje hazardov z uporabo preverjanja modela . . . . . . . . 1235.3.4 Asinhrona vezja za porazdeljeno medsebojno izkljucevanje . . . . 1265.3.5 Rezultati verifikacije . . . . . . . . . . . . . . . . . . . . . . . . 128

6 Zakljucek 135

Literatura 139

A Najmanjsa zadostna mnozica operatorjev za CTL 147

B Pretvorba formul ACTLW v formule ACTL 151B.1 Pretvorba formul z operatorjem EEU . . . . . . . . . . . . . . . . . . . . 151B.2 Pretvorba formul z operatorjem AAU . . . . . . . . . . . . . . . . . . . 152B.3 Pretvorba formul z operatorjem EEW . . . . . . . . . . . . . . . . . . . 153B.4 Pretvorba formul z operatorjem AAW . . . . . . . . . . . . . . . . . . . 154B.5 Pretvorba formul ACTLW z izpeljanimi operatorji . . . . . . . . . . . . . 155B.6 Pretvorba okrajsanih formul ACTLW . . . . . . . . . . . . . . . . . . . . 156

Zivljenjepis 161

Bibliografija 163

xviii VSEBINA

Kazalo slik

2.1 Kripkejeva struktura in del pripadajocega drevesa izvajanj . . . . . . . . . 122.2 Pot v oznacenem sistemu prehajanja stanj . . . . . . . . . . . . . . . . . 152.3 Pomen temporalnih operatorjev pri ACTLW . . . . . . . . . . . . . . . . 212.4 Shematski prikaz preslikave lts2ks strong . . . . . . . . . . . . . . . . . 242.5 Shematski prikaz preslikave ks2lts strong . . . . . . . . . . . . . . . . . 252.6 LTS za preizkus vzorcev formul ACTLW in ACTL . . . . . . . . . . . . 402.7 Rezultati preizkusa vzorcev formul ACTLW in ACTL . . . . . . . . . . . 41

3.1 Shematski prikaz uporabe simbolicnih metod . . . . . . . . . . . . . . . 503.2 Osnovni algoritem za razresevanje operatorja EEU . . . . . . . . . . . . 533.3 Ucinkovit algoritem za razresevanje operatorja EEU . . . . . . . . . . . 543.4 Osnovni algoritem za razresevanje operatorja EEW . . . . . . . . . . . . 543.5 Ucinkovit algoritem za razresevanje operatorja EEW . . . . . . . . . . . 553.6 Osnovni algoritem za razresevanje operatorja AAU . . . . . . . . . . . . 553.7 Osnovni algoritem za razresevanje operatorja AAW . . . . . . . . . . . . 563.8 Ucinkovit algoritem za razresevanje operatorja EEG . . . . . . . . . . . 573.9 Ucinkovit algoritem za razresevanje negacije operatorja AAW . . . . . . 583.10 Ucinkovit algoritem za razresevanje negacije operatorja AAF . . . . . . . 593.11 Razresevanje operatorja EEW v LTS-jih, ki vsebujejo zagatna stanja . . . 593.12 Razresevanje operatorja AAU v LTS-jih, ki vsebujejo zagatna stanja . . . 603.13 Razresevanje operatorja EEG v LTS-jih, ki vsebujejo zagatna stanja . . . 603.14 Razresevanje negacije operatorja AAF, ki vsebujejo zagatna stanja . . . . 61

4.1 Tvorjenje diagnosticne poti za operator EEU . . . . . . . . . . . . . . . 674.2 Algoritem za odkrivanje cikla pri operatorju EEG . . . . . . . . . . . . . 674.3 Tvorjenje cikla pri operatorju EEG . . . . . . . . . . . . . . . . . . . . . 684.4 Tvorjenje diagnosticne poti za operator AAW . . . . . . . . . . . . . . . 684.5 Algoritem za odkrivanje cikla pri operatorju AAF . . . . . . . . . . . . . 69

xix

xx KAZALO SLIK

4.6 Tvorjenje cikla pri operatorju AAF . . . . . . . . . . . . . . . . . . . . . 704.7 Primer drevesa podformul . . . . . . . . . . . . . . . . . . . . . . . . . 734.8 LTS, za katerega tvorimo enostavno diagnostiko . . . . . . . . . . . . . . 754.9 Drevo podformul, ce diagnosticna pot za EEW nima cikla . . . . . . . . 754.10 Drevo podformul, ko pri EEW izberemo diagnosticno pot s ciklom . . . . 764.11 Drevo podformul med tvorjenjem prakticne price . . . . . . . . . . . . . 844.12 Algoritem za tvorjenje avtomatov pric in protiprimerov (1. del) . . . . . . 874.13 Algoritem za tvorjenje avtomatov pric in protiprimerov (2. del) . . . . . . 884.14 Algoritem za tvorjenje avtomatov pric in protiprimerov (3. del) . . . . . . 894.15 Algoritem za tvorjenje avtomatov pric in protiprimerov (4. del) . . . . . . 904.16 Preprost LTS in avtomata pric za dve preprosti formuli ACTLW . . . . . 904.17 Dopolnitev algoritma za tvorjenje avtomata pric in protiprimerov . . . . . 934.18 Avtomati pric in protiprimerov za formule ACTL . . . . . . . . . . . . . 94

5.1 Specifikacija modela z LTS-jem . . . . . . . . . . . . . . . . . . . . . . 975.2 Specifikacija modela s procesno algebro CCS . . . . . . . . . . . . . . . 985.3 Specifikacija BNF za formule ACTL in ACTLW . . . . . . . . . . . . . 1005.4 LTS-ji, s katerimi predstavimo in obdelujemo spremenljivke . . . . . . . 1035.5 Dekkerjev algoritem za medsebojno izkljucevanje . . . . . . . . . . . . . 1045.6 Model procesa P1 v Dekkerjevem algoritmu . . . . . . . . . . . . . . . . 1045.7 Hymanov algoritem za medsebojno izkljucevanje . . . . . . . . . . . . . 1055.8 Model procesa P1 v Hymanovem algoritmu . . . . . . . . . . . . . . . . 1055.9 Lamportov pekarniski algoritem za medsebojno izkljucevanje . . . . . . . 1065.10 Modela procesov P1 in P2 v Lamportovem pekarniskem algoritmu . . . . 1075.11 Ben-Arijeva razlicica pekarniskega algoritma . . . . . . . . . . . . . . . 1085.12 Modela procesov P1 in P2 v Ben-Arijevi razlicici pekarniskega algoritma 1085.13 Pekarniski algoritem iz projekta STeP . . . . . . . . . . . . . . . . . . . 1095.14 Modela procesov P1 in P2 v pekarniskem algoritmu iz projekta STeP . . . 1095.15 Petersonov algoritem za medsebojno izkljucevanje . . . . . . . . . . . . 1105.16 Model procesa P1 v Petersonovem algoritmu . . . . . . . . . . . . . . . 1105.17 Velikost modelov algoritmov za medsebojno izkljucevanje . . . . . . . . 1125.18 Rezultati verifikacije algoritmov za medsebojno izkljucevanje . . . . . . 1125.19 Diagnostika in protiprimer za Hymanov algoritem . . . . . . . . . . . . . 1135.20 Diagnostika in protiprimer za pekarniski algoritem iz projekta STeP . . . 1145.21 Izvedba elementa C z osnovnimi vrati . . . . . . . . . . . . . . . . . . . 1165.22 Vezje z oscilirajocim izhodom . . . . . . . . . . . . . . . . . . . . . . . 1165.23 Staticni hazard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

KAZALO SLIK xxi

5.24 Dinamicni hazard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175.25 Prehodni hazard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.26 Hazard stanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.27 Model vezja za dvovhodna vrata AND . . . . . . . . . . . . . . . . . . . 1195.28 Model vezja za element C . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.29 Model vezja za element FORK . . . . . . . . . . . . . . . . . . . . . . . 1205.30 Model vezja za flip-flop RS . . . . . . . . . . . . . . . . . . . . . . . . . 1215.31 Model vezja za element ME . . . . . . . . . . . . . . . . . . . . . . . . 1215.32 Model vezja za element ME z zapornim signalom z . . . . . . . . . . . . 1215.33 Model vezja z oscilirajocim izhodom . . . . . . . . . . . . . . . . . . . . 1225.34 Vezje z odstranljivim logicnim hazardom . . . . . . . . . . . . . . . . . 1245.35 Vezje z neodstranljivim logicnim hazardom . . . . . . . . . . . . . . . . 1245.36 Model vezja s staticnim hazardom s slike 5.23 . . . . . . . . . . . . . . . 1255.37 Model vezja z dinamicnim hazardom s slike 5.24 . . . . . . . . . . . . . 1255.38 Model vezja s prehodnim hazardom s slike 5.25 . . . . . . . . . . . . . . 1255.39 Model vezja s hazardom stanja s slike 5.26 . . . . . . . . . . . . . . . . . 1255.40 Celica DME, ki jo je predlagal A.J. Martin . . . . . . . . . . . . . . . . . 1275.41 Celica DME, ki jo je predlagal K.L. McMillan . . . . . . . . . . . . . . . 1275.42 Delovanje vezja DME, sestavljenega iz dveh Martinovih celic DME . . . 1285.43 Delovanje vezja DME, sestavljenega iz dveh McMillanovih celic DME . 1285.44 Velikost modelov vezij pri verifikaciji asinhronih vezij DME . . . . . . . 1295.45 Stevilo hazardov v celicah DME . . . . . . . . . . . . . . . . . . . . . . 1305.46 Staticni hazard pri signalu RR v McMillanovi celici DME . . . . . . . . 1315.47 Del avtomata pric, ki razlaga obstoj staticnih hazardov pri signalu UA v

Martinovi celici DME . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

xxii KAZALO SLIK

Kazalo definicij

2.1 Kripkejeva struktura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Drevo izvajanj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Logika dreves izvajanj . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Oznaceni sistem prehajanja stanj . . . . . . . . . . . . . . . . . . . . . . . 152.5 Akcijska logika dreves izvajanj . . . . . . . . . . . . . . . . . . . . . . . 162.6 Akcijska logika dreves izvajanj z operatorjem unless . . . . . . . . . . . . 182.7 Preslikava lts2ks strong . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.8 Preslikava ks2lts strong . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.9 Preslikava actlw2ctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.10 Preslikava ctl2actlw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.11 Preslikava actl2actlw . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.12 Normalna oblika formule dogodka . . . . . . . . . . . . . . . . . . . . . 282.13 Preslikava actlw2actl . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.14 Neposredno vrednotenje formul ACTL v zagatnih stanjih . . . . . . . . . 422.15 Posredno vrednotenje formul ACTL v zagatnih stanjih . . . . . . . . . . 432.16 Vrednotenje formul ACTLW v zagatnih stanjih . . . . . . . . . . . . . . 443.1 Preverjanje modela z ACTLW . . . . . . . . . . . . . . . . . . . . . . . . 513.2 Kodiran LTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.1 Diagnosticna pot za operatorje ACTLW . . . . . . . . . . . . . . . . . . . 654.2 Diagnosticna pot za operatorja EEW in AAU v LTS-ju z zagatnimi stanji . 714.3 Linearna prica in protiprimer pri ACTLW . . . . . . . . . . . . . . . . . . 774.4 Trivialna linearna prica in protiprimer . . . . . . . . . . . . . . . . . . . . 774.5 Zaporedje dogodkov, ki potrjuje oz. zavraca veljavnost formule ACTLW . 774.6 Prakticna prica in protiprimer pri ACTLW . . . . . . . . . . . . . . . . . . 794.7 Koncni avtomat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864.8 Avtomat pric in protiprimerov za ACTLW . . . . . . . . . . . . . . . . . . 86

xxiii

xxiv KAZALO DEFINICIJ

Kazalo primerov

Pomen nekaterih osnovnih formul ACTL . . . . . . . . . . . . . . . . . . . . . 17Preizkus vzorcev formul ACTLW in ACTL . . . . . . . . . . . . . . . . . . . 40Neposredno in posredno vrednotenje formul ACTL v zagatnih stanjih . . . . . 43Tvorjenje enostavne diagnostike . . . . . . . . . . . . . . . . . . . . . . . . . 75Linearne price . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Tvorjenje prakticne price in protiprimera . . . . . . . . . . . . . . . . . . . . . 83Tvorjenje avtomata pric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Avtomati pric in protiprimerov za formule ACTL . . . . . . . . . . . . . . . . 93Verifikacija algoritmov za medsebojno izkljucevanje . . . . . . . . . . . . . . . 101Verifikacija asinhronih vezij za medsebojno izkljucevanje . . . . . . . . . . . . 115

xxv

xxvi KAZALO PRIMEROV

Poglavje 1

Uvod

1.1 Predstavitev problema

Logicno sklepanje je eden od osnovnih znanstvenih principov, ki so ga poznale in upo-rabljale ze najzgodnejse civilizacije. Sodobna druzba spostljivo odkriva dela starogrskih indrugih filozofov, ki jasno izpricujejo, da sklepi, dobljeni s pomocjo logicnega razmisljanja,brezpogojno drzijo vsaj tako dolgo, dokler se ne spremenijo predpostavke, iz katerih sobili izpeljani. Moderen clovek, vajen hitro spreminjajocega se sveta in nestanovitnegazivljenja, je ob takih tisocletnih resnicah upraviceno osupel in cuti neizmerno zeljo ponjihovem odkrivanju. Hkrati pa si zeli, da bi lahko tako trdne sklepe sprejel tudi na drugihpodrocjih svojega zivljenja, npr. glede pravilnosti delovanja raznih strojev in naprav, odkaterih je vedno bolj odvisen.

Logika je interdisciplinarna veda. Kot vsa ostala znanost ima svoje korenine v filozofijistarega veka. Po izoblikovanju specificnih znanstvenih ved je nasla svoje mesto v vsakiod njih, se posebej mocno pa se je razvijala v okviru matematike in sodobne filozofije vzadnjem stoletju prejsnjega tisocletja. Znacilno je, da je med logiko v filozofiji in logiko vmatematiki precejsen razkorak. Medtem ko filozofi razmisljajo predvsem o logicnih pro-blemih in o moci razlicnih logicnih sistemov, se matematiki posvecajo predvsem notacijiin logicnemu racunanju.

Velik prelom se je v logiki zgodil s pojavom racunalnistva. Racunalnik je determi-nisticen stroj. Logicni problemi so resljivi z racunalnikom le, ce jih lahko predstavimo inizracunamo v okviru omejenega logicnega sistema, za katerega za vse njegove operacijeobstajajo racunalniski algoritmi. Pojav racunalnikov je spodbudil konvergenco filozofskihin matematicnih pristopov, kot rezultat pa so nastali stevilni logicni sistemi, ki crpajo idejeod filozofov, notacijo in strukturo pa od matematikov.

1

2 1 Uvod

Obsezno inzenirsko podrocje dela, v katerem se je uveljavila uporaba logik, je racunal-nisko podprto snovanje sistemov. Poznamo vec zivljenjskih ciklov snovanja sistemov, kipa so vsi sestavljeni iz podobnih korakov. Sistem zacnemo snovati tako, da podamo spe-cifikacijo zahtev sistema. Specifikacija zahtev sistema je opis zeljenega obnasanja sistemain se obicajno nanasa predvsem na to, kako naj sistem komunicira z okolico. Na podlagispecifikacije zahtev tvorimo specifikacijo zasnove sistema, ki bolj ali manj podrobno opi-suje, kaksna bo zgradba sistema. Specifikacija zasnove sistema oz. njena abstrakcija sluzikot model sistema v postopku dokazovanja skladnosti specifikacije zahtev in specifikacijezasnove, kar imenujemo formalna verifikacija. Poleg formalne verifikacije je pomembnatudi simulacija, s katero preizkusamo, kako bo sistem deloval. Za simulacijo potrebujemoizvedljivo specifikacijo zasnove sistema. Po uspesni formalni verifikaciji in/ali simula-ciji sistema sledi izvedba sistema. Pravilnost zasnove sistema ne zagotavlja pravilnostiobnasanja izvedenega sistema, zato izvedeni sistem testiramo. Testiranje sistema je ekspe-rimentalno izvajanje izvedenega sistema, pri katerem se preveri, ali izvedeni sistem ustrezaspecifikaciji zahtev.

Cilj snovanja sistemov je pravilen sistem, kar pa je mozno le, ce uporabimo pravilnozasnovo sistema. S simulacijo le tezko dokazemo odsotnost napak, saj bi morali simulirativsa mozna izvajanja sistema, kar pa v praksi ni mogoce. Formalna verifikacija je takoedina zanesljiva metoda preverjanja pravilnosti zasnove sistema. Se posebej je pomembnana podrocju snovanja elektronske, racunalniske in telekomunikacijske opreme, ki postaja zleti vedno bolj kompleksna. Obenem imajo ti izdelki tudi zelo veliko trzisce, pa naj gre zavezja VLSI ali za komunikacijske protokole. Odkrita napaka v sistemu, ki se ze na sirokouporablja po svetu, se lahko odraza v veliki materialni skodi in hkrati izgubi zaupanjakupcev. Postavi pa se vprasanje, ali prakticne sisteme v vsej njihovi kompleksnosti splohznamo in zmoremo formalno verificirati.

Razvoj metod formalne verifikacije se je zacel konec 70-ih let [27, 38, 67, 82]. Krazvoju je v veliki meri pripomogel hiter razvoj racunalniske opreme, ki omogoca izvedbozahtevnih algoritmov. Pomembna je iznajdba podatkovne strukture binarni odlocitvenigraf (BDD) in algoritmov s simbolicnim racunanjem, pri katerih ni potrebno eksplicitnopredstaviti vseh dosegljivih stanj sistema [1, 5, 11, 15, 16, 18, 44, 59, 60, 69, 76]. Naj-pomembnejsi dejavnik, ki vzpodbuja nadaljnji razvoj, je kompleksnost sistemov, ki zelopresega zmoznosti clovekovega celovitega razumevanja in je zato formalna verifikacija prinjihovem snovanju enostavno nujna.

Ena od bolj ucinkovitih metod formalne verifikacije sistema je preverjanje modela[24, 42, 45, 57], pri katerem specifikacijo zahtev podamo v obliki formul temporalne logike

1.1 Predstavitev problema 3

[17, 46, 61]. S preverjanjem modela preverimo, ali je struktura, ki predstavlja model sis-tema, hkrati tudi model logicnih formul. Preverjanje modelov je zelo primerna in uspesnametoda formalne verifikacije v inzenirskih in industrijskih okoljih. Uporabljamo jo lahkoneposredno za verifikacijo zasnove sistemov ali posredno za generiranje testnih primerov[19]. Preverjanje modelov v splosnem omogoca generiranje pric in protiprimerov, s ka-terimi potrdimo oz. ovrzemo, da dana formula v danem stanju drzi in s tem formalnopokazemo, zakaj sistem ima oz. nima zahtevane lastnosti [23, 39, 47, 78]. Najboljse re-zultate dobimo, ce metodo preverjanja modelov kombiniramo z drugimi metodami, npr.s preverjanjem ekvivalence modelov [6, 26, 37]. V realnih okoljih se srecujemo z zelovelikimi sistemi, ki pa jih lahko uspesno obvladujemo npr. s tehniko abstrakcije [22, 36],s katero zmanjsujemo modele ter iz specifikacije zasnove izluscimo tisti del, ki ga zelimoverificirati.

Izvedba preverjanja modela je v veliki meri odvisna od tega, kaksne vrste je model, kipredstavlja zasnovo sistema. Tako kot v racunalnistvu poznamo razlicne vrste programskihjezikov (proceduralne, objektno orientirane, logicne, funkcijske ...), obstaja tudi vec vrstformalizmov za podajanje modelov. V grobem jih lahko razdelimo na tiste, ki poudarjajostanja (npr. od 6.30 do 7.00 se peljem v sluzbo, od 7.00 do 15.00 sem v sluzbi itd.) in tiste,ki poudarjajo dogodke (npr. ob 6.30 sem odpeljal od doma, ob 7.00 sem prispel v sluzbo, ob15.00 grem domov itd.) Temporalna logika, s katero podamo specifikacijo zahtev, mora bitiskladna s formalizmom, ki je uporabljen v modelu. Za modele, ki temeljijo na stanjih, stase uveljavili temporalni logiki LTL in CTL [20, 30, 53, 77]. Bolj pestro je pri modelih, kitemeljijo na dogodkih. Leta 1985 sta M. Hennessy in R. Milner vpeljala preprosto procesnologiko, ki je danes znana kot Hennessy-Milnerjeva logika (HML) [43]. Njuno delo je leta1989 razsiril C. Stirling in predlagal svojo varianto HML-ja [80]. Leta 1990 sta R. DeNicola in F. Vaandrager definirala HMLU, ki je razsiritev HML-ja z operatorjem until[72]. Ista avtorja sta istega leta svojo logiko tudi razsirila in vpeljala akcijsko logiko drevesizvajanj (ACTL) [32, 70, 71], ki sta jo oznacila kot izpeljanko CTL-ja. Kljub navedbam opodobnosti sta skladnja in semantika formul ACTL in CTL toliko vsaksebi, da ne moremoucinkovito uporabljati analogije niti pri algoritmih za izvedbo formalne verifikacije nitipri izrazanju lastnosti. ACTL je uspesno integrirana v kar nekaj orodjih, npr. v orodjuSevero [34], CADP toolbox [35, 54, 55] in JACK [3, 8, 10, 33]. Pomembna temporalnalogika, ki vsebuje pojem dogodka, je tudi modalni µ-racun, ki ga je leta 1983 vpeljal D.Kozen [2, 12, 40, 48]. Modalni µ-racun je izrazno mocnejsi od vseh nastetih logik, vendarpa ravno zaradi velike izrazne moci ne omogoca ucinkovitega preverjanja modela. Doberkompromis med izrazno mocjo in moznostjo ucinkovitega preverjanja modela je µ-ACTL[31].

4 1 Uvod

1.2 Vsebina doktorske disertacije

Izhodisce te doktorske disertacije je vprasanje, ali obstaja logika, ki elegantno zdruzuje la-stnosti logik CTL in ACTL in omogoca ucinkovito preverjanje modela, vkljucno s tvorje-njem diagnostike, pric in protiprimerov. Kot odgovor definiramo in raziscemo novo logikoACTLW, ki izpolnjuje ta pricakovanja.

Poglavje 2 se zacne s teoreticnimi osnovami, ki so potrebne za razumevanje temporal-nih logik. Na kratko so predstavljene negibne tocke, modeli in temporalne logike. Sledirazdelek o Kripkejevi strukturi in logiki CTL. Pri CTL je uporabljena definicija, ki vsebujetemporalni operator dosledni until. Ta definicija omogoca najbolj nazorno primerjavo zlogikama ACTL in ACTLW, predstavljenima v nadaljevanju. Nato so podane najpomemb-nejse ekvivalence, ki veljajo v CTL, razdelek pa se zakljuci z opredelitvijo operatorjevCTL z izrazi z negibno tocko. Sledi razdelek, v katerem so predstavljeni oznaceni sistemiprehajanja stanj in logika ACTL. Razdelek 2.4 je najpomembnejsi razdelek v tej doktorskidisertaciji. Podaja definicijo logike ACTLW. ACTLW je izjavna temporalna logika raz-vejanega casa, ki je izpeljana iz logik CTL in ACTL, namenjena pa je izrazanju lastnostimodelov, ki vsebujejo dogodke. Podane so ekvivalence, ki veljajo v ACTLW, in opredelitevoperatorjev ACTLW z izrazi z negibno tocko. Naslednji razdelek je posvecen preslikavammed logikami CTL, ACTL in ACTLW, nato pa so za vse tri logike podani vzorci formul.V zadnjem razdelku poglavja 2 je definicija logike ACTLW razsirjena tako, da omogocatudi preverjanje modelov z zagatnimi stanji.

Poglavje 3 govori o preverjanju modela z logiko ACTLW. Osredotoceno je na glo-balno preverjanje modela z ACTLW s simbolicnimi metodami. Opisana sta dva razlicnapristopa k preverjanju modela z ACTLW. Prvi temelji na razresevanju operatorjev EEU,EEW, AAU in AAW, drugi pa na razresevanju operatorjev EEU, EEG, AAW in AAF.Izvedba sledi podani teoriji, zato so najprej predstavljeni algoritmi za modele brez zagatnihstanj, v zadnjem razdelku pa so nato dopolnjeni tako, da omogocajo preverjanje modela zzagatnimi stanji.

Poglavje 4 predstavlja tvorjenje diagnostike pri ACTLW, tvorjenje linearnih pric in pro-tiprimerov pri ACTLW in tvorjenje avtomatov pric in protiprimerov za ACTLW. Izvedbaje oprta na definicijo diagnosticnih poti za opeatorje ACTLW ter definicijo prakticnih pricin protiprimerov za ACTLW.

Poglavje 5 se zacne s kratko predstavitvijo nasega orodja za formalno verifikacijo EST.Nato sta podana dva vecja primera preverjanja modela z ACTLW. Oba sta povezana s prak-ticnim problemom medsebojnega izkljucevanja, za katerega v literaturi obstajajo stevilne

1.3 Izvirni znanstveni prispevki doktorske disertacije 5

pravilne, pa tudi nekatere napacne resitve. V doktorski disertaciji je najprej verificiranaprogramska resitev, torej algoritmi za medsebojno izkljucevanje, nato pa se dve asinhronivezji za porazdeljeno medsebojno izkljucevanje. V slednjem primeru je nekoliko bolj po-drobno predstavljen postopek nacrtovanja in modeliranja asinhronih vezij.

V kratkem zakljucku v poglavju 6 strnemo najpomembnejse ugotovitve doktorske di-sertacije. Sledi seznam uporabljene literature in dva dodatka. V prvem podajamo dokazizreka o najmanjsi zadostni mnozici operatorjev za CTL, v drugem pa podrobno obravna-vamo pretvorbo formul ACTLW v formule ACTL.

1.3 Izvirni znanstveni prispevki doktorske disertacijeDoktorska disertacija vsebuje vec izvirnih znanstvenih prispevkov, ki jih lahko kategorizi-ramo v tri skupine.

1. Definicija nove temporalne logike ACTLW

Formalno smo definirali novo temporalno logiko ACTLW, ki je namenjena izrazanjulastnosti modelov, ki temeljijo na dogodkih. Pokazali smo, da je ACTLW fleksi-bilnejsa in tudi izraznejsa od ACTL, ki sta jo leta 1990 vpeljala R. De Nicola in F.Vaandrager. Podali smo preslikave iz CTL v ACTLW, iz ACTLW v CTL in iz ACTLv ACTLW. Predstavili smo vzorce formul ACTLW, ki omogocajo ucinkovito upo-rabo te logike v inzenirskih okoljih. Osnovno definicijo logike smo razsirili tako, dazajame tudi modele z zagatnimi stanji.

2. Izvedba preverjanja modela z ACTLW

Opisali smo globalno preverjanje modela z ACTLW z uporabo simbolicnih metod.Podali smo resitev, ki temelji na razresevanju operatorjev EEU, EEW, AAU inAAW, in tudi resitev, ki temelji na razresevanju operatorjev EEU, EEG, AAW inAAF.

3. Tvorjenje diagnostike ter pric in protiprimerov pri ACTLW

Vpeljali smo pojem diagnosticne poti za ACTLW. Podali smo postopek za tvorjenjediagnostike pri ACTLW, postopek za tvorjenje linearnih pric in protiprimerov priACTLW ter postopek za tvorjenje avtomatov pric in protiprimerov pri ACTLW.

6 1 Uvod

Poglavje 2

Temporalne logike CTL, ACTL inACTLW

2.1 Teoreticne osnove

2.1.1 Negibna tocka

Relacija R je delno urejena, ce je refleksivna (∀a . aRa), antisimetricna (∀a, b . (aRb ∧bRa) =⇒ a = b) in tranzitivna (∀a, b, c . aRb ∧ bRc =⇒ aRc). Naj bo mnozica A delnourejena z relacijo ≤. Ce v A obstaja tak element amin, za katerega velja ∀b ∈ A . amin ≤

b, potem je amin najmanjsi element v mnozici A. Ce v A obstaja tak element amax, zakaterega velja ∀b ∈ A . b ≤ amax, potem je amax najvecji element v mnozici A.

Imejmo mnozico A, ki je delno urejena z relacijo ≤, in naj bo f : A −→ A funkcija,ki preslikuje elemente mnozice A med seboj. Velja:

1. f je monotono narascajoca, ce za vsak a, b ∈ A velja a ≤ b =⇒ f(a) ≤ f(b).

2. f je monotono padajoca, ce za vsak a, b ∈ A velja a ≤ b =⇒ f(b) ≤ f(a).

3. f je monotona, ce je f monotono narascajoca ali monotono padajoca.

4. Element a ∈ A je negibna tocka funkcije f , ce velja a = f(a).

Naj bo Fix(A) mnozica vseh negibnih tock funkcije f : A −→ A. Ce v mnoziciFix(A) obstaja najmanjsi element, ga imenujemo najmanjsa negibna tocka. Najmanjsonegibno tocko funkcije f : A −→ A oznacimo kot

lfpA Z. f(Z) .

7

8 2 Temporalne logike CTL, ACTL in ACTLW

Ce v mnozici Fix(A) obstaja najvecji element, ga imenujemo najvecja negibna tocka.Najvecjo negibno tocko funkcije f : A −→ A oznacimo kot

gfpA Z. f(Z) .

Imejmo mnozico A, ki je delno urejena z relacijo ≤, in funkcijo f : A −→ A. Vpeljimorelacijo ≥, za katero velja a ≥ b ⇐⇒ b ≤ a, in kompozicijo n funkcij f , ki jo zapisemokot fn(a) = (f ◦ f ◦ ... ◦ f)(a). Dokazemo lahko naslednje izreke:

1. Ce je f monotono narascajoca, potem za vsak a ∈ A velja: a ≤ f(a) ≤ f 2(a)...

Ce je f monotono padajoca, potem za vsak a ∈ A velja: a ≥ f(a) ≥ f 2(a)...

2. Ce velja f i+1(a) = f i(a), potem je f i(a) negibna tocka funkcije f .

3. Ce je A koncna in f monotona, potem ∀a∈A ∃i . f i+1(a) = f i(a).

4. Ce je A mnozica, v kateri obstaja najmanjsi element amin, ce je f monotona funkcijain ce je f i(amin) negibna tocka funkcije f , potem je f i(amin) najmanjsa negibnatocka funkcije f .

5. Ce je A mnozica, v kateri obstaja najvecji element amax, ce je f monotona funkcijain ce je f i(amax) negibna tocka funkcije f , potem je f i(amax) najvecja negibna tockafunkcije f .

Kot poseben primer racunanja negibne tocke vzemimo funkcijo, ki med seboj preslikujepodmnozice dane mnozice. Imejmo koncno mnozico U in mnozico mnozic S = 2U , ki jedelno urejena z relacijo ⊆. Za funkcijo f : S −→ S velja:

1. Ce je f monotona funkcija, potem obstaja vsaj ena negibna tocka funkcije f .

2. Ce je f monotona funkcija, potem obstajata najmanjsa in najvecja negibna tockafunkcije f . Najmanjsa negibna tocka funkcije f je enaka preseku, najvecja negibnatocka funkcije f pa uniji vseh negibnih tock funkcije f .

3. Ce je f monotona in f i(∅) negibna tocka funkcije f , potem je f i(∅) najmanjsa ne-gibna tocka funkcije f .

4. Ce je f monotona in f i(U) negibna tocka funkcije f , potem je f i(U) najvecja ne-gibna tocka funkcije f .

2.1 Teoreticne osnove 9

2.1.2 Model

Model sistema je abstraktna predstavitev sistema, ki opisuje njegovo obnasanje skozi cas.V doktorski disertaciji nas zanimajo predvsem modeli sistemov s socasnostjo. Sistemi ssocasnostjo so vsi taki sistemi, ki so zgrajeni iz vec v prostoru locenih delov, ki se iz-vajajo socasno in med izvajanjem med seboj komunicirajo. Komunikacija se lahko od-vija s pomocjo posiljanja sporocil, skupnih spremenljivk ali pa s sinhronim izvajanjemdolocenih dogodkov [30, 49]. Sistem s socasnostjo okolica dojema kot celoto, npr. telefon-sko omrezje je za nacrtovalce in vzdrzevalce sistem s socasnostjo, sestavljen iz terminalnihnaprav in central (v sirsem pomenu besede), za uporabnike pa je celota, ki ponuja dolocenestoritve. Pomemben problem pri obdelavi sistemov s socasnostjo je, kako na osnovi mode-lov posameznih elementov sistema tvoriti en sam model, ki predstavlja celoten sistem, karimenujemo sestavljanje modelov.

Modeli sistemov s socasnostjo so strukture, sestavljene iz vozlisc, ki jih imenujemo sta-nja, in usmerjenih povezav med njimi, ki jih imenujemo prehodi. Mnozico vseh stanj mo-dela imenujemo prostor stanj. Prehajanje med stanji modela imenujemo izvajanje modela.Vsako izvajanje modela ustreza nekemu izvajanju sistema, seveda pa zaradi abstrakcijevsak prehod modela ponazarja manjsi ali vecji del izvajanja sistema. Vsakemu izvajanjumodela pripisemo scenarij izvajanja, ki opisuje, kako sta se med izvajanjem obnasala mo-del in njegova okolica. V splosnem nas zanimajo vsi mozni scenariji v sistemu, lahko pase omejimo le na nekatere izmed njih, npr. z vpeljavo postenostnih omejitev [30]. Ce semodel ob istem obnasanju okolice vedno obnasa na enak nacin, potem je model determini-sticen, v nasprotnem primeru pa je model nedeterministicen.

Obnasanje modela je skupek velicin, katerih pojav, prisotnost oz. vrednost lahko opa-zujemo. Glede na to, kaj so opazovane velicine, locimo modele, ki temeljijo na stanjih, mo-dele, ki temeljijo na dogodkih in kombinirane modele. V modelih, ki temeljijo na stanjih,so opazovane velicine lastnosti posameznih stanj. V modelih, ki temeljijo na dogodkih, soopazovane velicine lastnosti posameznih prehodov. Kombinirani modeli so kombinacijateh dveh pristopov. Primeri struktur, ki pogosto sluzijo kot model, ki temelji na stanjih, sokoncni avtomat, koncni avtomat stanj in Kripkejeva struktura. Primer strukture, ki pogostosluzi kot model, ki temelji na dogodkih, je oznacen sistem prehajanja stanj.

Da lahko modele obdelujemo avtomaticno z racunalnikom, moramo iz tehnicnih vzro-kov (omejen pomnilnik) ponavadi zahtevati, da ima model koncno stevilo stanj, koncnostevilo prehodov in koncno stevilo velicin, ki jih opazujemo, pri cemer ima vsaka velicinatudi koncno zalogo vrednosti. Zaradi teh predpostavk je potrebno pri interpretaciji rezulta-tov, dobljenih na osnovi modela, upostevati, do koliksne mere uporabljeni model verodo-stojno predstavlja pravi sistem.

10 2 Temporalne logike CTL, ACTL in ACTLW

2.1.3 Temporalna logika

Temporalne logike so zgrajene nad izjavno logiko. Slovnico izjavne logike sestavljajosimboli, ki oznacujejo atomarne izjave, simboli za logicne operatorje (¬,∧,∨ in drugi)ter oklepaji. Vsaka atomarna izjava je bodisi pravilna bodisi nepravilna. Pomen logicnihoperatorjev je definiran s pravilnostnimi tabelami, tako da:

• izjava ¬p je pravilna, ce in samo ce izjava p ni pravilna,

• izjava p ∧ q je pravilna, ce in samo ce sta izjavi p in q obe pravilni,

• izjava p ∨ q je pravilna, ce in samo ce je pravilna izjava p ali izjava q ali pa obe, itd.

Izjavna logika omogoca sklepanje o veljavnosti sestavljenih izjav na osnovi poznavanjaveljavnosti atomarnih izjav. Sestavljeno izjavo ovrednotimo tako, da jo izpeljemo iz ato-marnih izjav s pomocjo aksiomov in izrekov. Filozofi so najbolj prirocne izreke poimeno-vali z latinskimi imeni, npr. modus ponens (` (p ∧ (p =⇒ q)) =⇒ q) in modus tollens(` (¬q∧(p =⇒ q)) =⇒ ¬p). Sestavljeno izjavo lahko ovrednotimo tudi tako, da zgradimonjeno pravilnostno tabelo oz. strukturo, ki inducira pravilnostno tabelo.

Ena od nadgradenj izjavne logike so modalne logike, pri katerih je veljavnost atomar-nih izjav odvisna od sveta, v katerih jih interpretiramo. Tako je lahko neka izjava pravilnav vseh moznih svetovih, v nobenem ali pa le v nekaterih od njih. Ce privzamemo, da sorazlicni svetovi pravzaprav isti svet, v katerem pa se veljavnost izjav skozi cas spreminja,dobimo temporalne logike [30, 81]. V temporalnih logikah slovnico izjavne logike do-polnimo s temporalni operatorji, ki izrazajo, kako je z veljavnostjo izjave skozi cas, npr.izjava je v prihodnosti vsaj enkrat pravilna, izjava je v prihodnosti ves cas pravilna itd. Ceprivzamemo razvejan tok casa, potem moramo v temporalno logiko dodati tudi kvantifika-torje poti, s katerimi izrazimo, na katere poti skozi cas se dana temporalna formula nanasa,npr. na vsaj eno pot, na vse poti, na poti z doloceno lastnostjo itd. Temporalni operatorjise obicajno nanasajo na prihodnost, lahko pa vpeljemo tudi temporalne operatorje, ki senanasajo na veljavnost izjav v preteklosti.

Temporalne logike so se po letu 1977, ko je bila v [74] predstavljena njihova uporabnostpri sklepanju o pravilnosti racunalniskih programov, zelo uveljavile na podrocju formalneverifikacije sistemov. Pomemben mejnik pri njihovi uporabi je vpeljava avtomaticnega pre-verjanja veljavnosti temporalnih formul v dani koncni strukturi, kar imenujemo preverjanjemodela [21, 24]. Primeri temporalnih logik, ki omogocajo ucinkovito preverjanje modela,so linearna temporalna logika (LTL), logika dreves izvajanj (CTL) in akcijska logika dre-ves izvajanj (ACTL). Razen teh so dandanes na podrocju formalne verifikacije sistemovpriljubljene tudi Hennessy-Milnerjeva logika (HML), modalni µ-racun, temporalna logikaakcij (TLA) in razne razsiritve omenjenih logik z vpeljavo realnega casa.

2.2 Kripkejeva struktura in CTL 11

2.2 Kripkejeva struktura in CTL

Kripkejeva struktura je nedeterministicen model, v katerem so stanja oznacena z atomar-nimi izjavami. Uporabljamo je v povezavi s formalizmi, ki temeljijo na stanjih. V di-sertaciji za Kripkejevo strukturo zahtevamo, da ima natanko eno zacetno stanje in totalnoprehajalno relacijo. V splosnem to ni nujno.

Definicija 2.1 (Kripkejeva struktura)Kripkejeva struktura (KS) je petorka K = (S,AP, L,D, s0), kjer je S mnozica stanj, APje neprazna mnozica atomarnih izjav, L : S → 2AP je oznacevalna funkcija, ki vsakemustanju priredi mnozico atomarnih izjav, veljavnih v tistem stanju, D ⊆ S × S je totalnaprehajalna relacija, s0 ∈ S pa je zacetno stanje.

Ce sta mnozica stanj in mnozica atomarnih izjav v KS koncna, potem je to koncnaKS. Element (s, s′) ∈ D predstavlja prehod iz stanja s v stanje s′. Ce obstaja prehod(s, s′) ∈ D, potem je stanje s′ naslednik stanja s, stanje s pa prednik stanja s′. Ker je Dtotalna relacija, ima vsako stanje v KS vsaj enega naslednika. Z oznako D(s) oznacimomnozico vseh naslednikov stanja s. Pot π v KS je tako koncno ali neskoncno zaporedjestanj v KS p0, p1, ..., da za vsaki dve zaporedni stanji pi in pi+1 na poti velja (pi, pi+1) ∈ D.Neskoncno pot v KS imenujemo polna pot v KS. Posamezna stanja na poti π oznacimo zoznako π(i). Pri tem je π(0) prvo stanje na poti π in π(i+1) je stanje na poti π, ki je takojza stanjem π(i).

Definicija 2.2 (Drevo izvajanj)Drevo izvajanj je KS z neskoncnim stevilom stanj, v kateri zacetno stanje s0 nima predni-kov, vsa druga stanja s 6=s0 pa imajo natanko enega prednika.

Za vsako KS K = (S, AP , L, D, s0) obstaja pripadajoce drevo izvajanj ct(K) = (S ′,AP , L′, D′, s′0), katerega mnozica stanj je izomorfna mnozici koncnih poti v K. Zgradimoga lahko na naslednji nacin [30]:

• S ′ vsebuje vse koncne poti v K, ki se zacnejo v njenem zacetnem stanju,

• s′0 je pot, ki vsebuje le zacetno stanje s0,

• (π, π′)∈D′, ce in samo ce π=p0, ..., pn, π′ = p0, ..., pn, pn+1, (pn, pn+1)∈D in

• za vsako pot π = p0, ..., pn v K velja L′(π) = L(pn).

Primer KS in del pripadajocega drevesa izvajanj sta prikazana na sliki 2.1.

12 2 Temporalne logike CTL, ACTL in ACTLW

p, q

p, qq

q

q p, qq

q p, q

q

p

p, qq

a) pb)

Slika 2.1: Kripkejeva struktura in del pripadajocega drevesa izvajanj

Logika dreves izvajanj (CTL) [21] je izjavna temporalna logika razvejanega casa. Abe-ceda CTL sestoji iz simbolov za atomarne izjave, Boolovih operatorjev, temporalnih ope-ratorjev in kvantifikatorjev poti. V CTL pred vsakim temporalnim operatorjem stoji kvan-tifikator poti in skupaj ju imenujemo operator CTL. Ker operatorji CTL vedno vsebujejokvantifikator poti, spadajo med temporalne operatorje povsod razvejanega casa. CTL jenavadno definirana z operatorjema next in nedosledni until kot osnovnima temporalnimaoperatorjema. Za primerjavo z logikama ACTL in ACTLW pa je najbolj primerna defini-cija, ki uporablja temporalni operator dosledni until [30].

Definicija 2.3 (Logika dreves izvajanj)Naj bo K = (S,AP, L,D, s0) Kripkejeva struktura. Skladnja CTL nad K je definirana znaslednjo slovnico, kjer je λ ∈ AP atomarna izjava, E in A sta kvantifikatorja poti, U> patemporalni operator dosledni until:

ϕ ::= λ | ¬ϕ | ϕ ∨ ϕ | E γ | A γ

γ ::= ϕ U> ϕ

Zadoscenje formule stanja ϕ v stanju s (s |=K ϕ) in formule poti γ na polni poti π (π |=K γ)je induktivno definirano z naslednjimi pravili:s |=K λ ce in samo ce λ ∈ L(s);s |=K ¬ϕ ce in samo ce s 6|=K ϕ;s |=K ϕ ∨ ϕ′ ce in samo ce s |=K ϕ ali s |=K ϕ

′;s |=K E γ ce in samo ce obstaja taka polna pot π v K, da je π(0)=s in π |=K γ;s |=K A γ ce in samo ce za vse polne poti π v K: π(0) = s =⇒ π |=K γ;π |=K ϕ U> ϕ′ ce in samo ce obstaja tak i ≥ 1, da je π(i) |=K ϕ

′ inza vse 1 ≤ j ≤ i− 1: π(j) |=K ϕ.

Za lazje izrazanje uporabljamo true v pomenu λ ∨ ¬λ, kjer je λ poljubno izbrana ato-marna izjava, in false, ki pomeni ¬true. Uporabljamo tudi razne Boolove operatorje, naprimer ϕ ∧ ϕ′ pomeni ¬(¬ϕ ∨ ¬ϕ′). Ce s |=K ϕ, pravimo, da ϕ velja v stanju s. Ko je KS

2.2 Kripkejeva struktura in CTL 13

razvidna iz sobesedila, pisemo s |= ϕ namesto s |=K ϕ. Formula CTL ϕ velja v dani KSK (pisemo K |= ϕ), ce in samo ce ϕ velja v zacetnem stanju K. Formula CTL velja v KSnatanko takrat, ko velja v njej pripadajocem drevesu izvajanj.

Vpeljemo lahko naslednje uporabne operatorje CTL:

EX ϕ , E[false U> ϕ]

EF> ϕ , E[true U> ϕ]

EG> ϕ , ¬A[true U> ¬ϕ]

E[ϕ W> ϕ′] , ¬A[¬ϕ′ U> (¬ϕ ∧ ¬ϕ′)]

AX ϕ , ¬E[false U> ¬ϕ]

AF> ϕ , A[true U> ϕ]

AG> ϕ , ¬E[true U> ¬ϕ]

A[ϕ W> ϕ′] , ¬E[¬ϕ′ U> (¬ϕ ∧ ¬ϕ′)]

Predstavljene operatorje CTL imenujemo dosledni temporalni operatorji, ker obravna-vajo le tiste dele poti, ki so dosledno v prihodnosti. Pri CTL se bolj pogosto uporabljajonedosledni temporalni operatorji, ki upostevajo sedanjost in ki jih lahko vpeljemo takole:

EF ϕ , ϕ ∨ EF> ϕEG ϕ , ϕ ∧ EG> ϕ

E[ϕ U ϕ′] , ϕ′ ∨ (ϕ ∧ E[ϕ U> ϕ′])

E[ϕ W ϕ′] , ϕ′ ∨ (ϕ ∧ E[ϕ W> ϕ′])

AF ϕ , ϕ ∨ AF> ϕAG ϕ , ϕ ∧ AG> ϕ

A[ϕ U ϕ′] , ϕ′ ∨ (ϕ ∧ A[ϕ U> ϕ′])

A[ϕ W ϕ′] , ϕ′ ∨ (ϕ ∧ A[ϕ W> ϕ′])

Dosledni in nedosledni operatorji CTL se razlikujejo samo v obravnavi prvega stanjana poti, ki ga dosledni operatorji CTL ignorirajo. Na primer, formula AG> q velja v KS nasliki 2.1, medtem ko formula AG q v tej KS ne velja.

Izrek 2.1 (Ekvivalence med formulami CTL z razlicnimi operatorji)

E[false U> ϕ] = E[false W> ϕ] = EX ϕ = ¬AX ¬ϕA[false U> ϕ] = A[false W> ϕ] = AX ϕ = ¬EX ¬ϕE[true U> ϕ] = ¬A[¬ϕ W> false] = EF> ϕ = ¬AG> ¬ϕA[true U> ϕ] = ¬E[¬ϕ W> false] = AF> ϕ = ¬EG> ¬ϕE[ϕ U> ϕ′] = ¬A[¬ϕ′ W> (¬ϕ ∧ ¬ϕ′)]A[ϕ U> ϕ′] = ¬E[¬ϕ′ W> (¬ϕ ∧ ¬ϕ′)]E[ϕ W> ϕ′] = E[ϕ U> ϕ′] ∨ EG> ϕ = ¬A[¬ϕ′ W> (¬ϕ ∧ ¬ϕ′)] ∨ ¬AF>¬ϕA[ϕ U> ϕ′] = A[ϕ W> ϕ′] ∧ AF> ϕ′ = ¬E[¬ϕ′ U> (¬ϕ ∧ ¬ϕ′)] ∧ ¬EG>¬ϕ′

Dokaz. Ekvivalence sledijo neposredno iz definicije operatorjev CTL.

Izrek 2.2 (Najmanjsa zadostna mnozica operatorjev za CTL)Ce uporabljamo le nedosledne operatorje, ima najmanjsa zadostna mnozica operatorjev zaCTL 3 elemente. Eden med njimi mora biti EX ali AX, eden mora biti EG, AF, EW aliAU, eden pa mora biti EU ali AW. Ce vzamemo v obzir tudi dosledne operatorje, sta zaizrazavo vseh ostalih dovolj dva operatorja, ker lahko EX in AX v tem primeru izpeljemoiz drugih.

Dokaz. Dokaz, ki se zgleduje po [53], je v dodatku A.

14 2 Temporalne logike CTL, ACTL in ACTLW

Izrek 2.3 (Krajsanje formul CTL, ki vsebujejo iste podformule)

E[(ϕ ∨ ϕ′) U> ϕ′] = E[(ϕ ∧ ¬ϕ′) U> ϕ′] = E[ϕ U> ϕ′]

A[(ϕ ∨ ϕ′) U> ϕ′] = A[(ϕ ∧ ¬ϕ′) U> ϕ′] = A[ϕ U> ϕ′]

E[(ϕ ∧ ¬ϕ′) U> (ϕ ∧ ϕ′)] = E[ϕ U> (ϕ ∧ ϕ′)]

A[(ϕ ∧ ¬ϕ′) U> (ϕ ∧ ϕ′)] = A[ϕ U> (ϕ ∧ ϕ′)]

E[(ϕ ∨ ϕ′) U> (ϕ ∨ ϕ′′)] = E[ϕ′ U> (ϕ ∨ ϕ′′)]

A[(ϕ ∨ ϕ′) U> (ϕ ∨ ϕ′′)] = A[ϕ′ U> (ϕ ∨ ϕ′′)]

Dokaz. Ekvivalence sledijo neposredno iz definicije operatorjev CTL. Vse ekvivalence soveljavne tudi v primeru, da temporalni operator U> zamenjamo z operatorjem W> oz. znedoslednim operatorjem U ali W.

Izrek 2.4 (Opredelitev operatorjev CTL z izrazi z negibno tocko)Naj bo K = (S,AP, L,D, s0) Kripkejeva struktura, P ⊆ S in T ⊆ S × S. Oznacimo zoznako /ϕ/K mnozico stanj p v K, za katera velja p |=K ϕ, z oznako //P//K pa mnozicoprehodov (p, p′) v K, za katere velja p′ ∈ P . Nadalje, naj bosta Φ∃ in Φ∀ taki funkciji2S×S −→ 2S nad K, da velja p∈Φ∃(T ), ce in samo ce ∃p′∈S . (p, p′)∈D ∧ (p, p′)∈T , terp∈Φ∀(T ), ce in samo ce ∀p′∈S . (p, p′)∈D =⇒ (p, p′)∈T . Potem lahko operatorje CTLopredelimo z naslednjimi izrazi z negibno tocko:

/EX ϕ/K = Φ∃(///ϕ/K //K)

/EF> ϕ/K = /EX(ϕ ∨ EF>ϕ)/K = lfp Z . Φ∃(///ϕ/K //K ∪ //Z//K)

/EG> ϕ/K = /EX(ϕ ∧ EG>ϕ)/K = gfp Z . Φ∃(///ϕ/K //K ∩ //Z//K)

/E[ϕ U> ϕ′]/K = /EX(ϕ′ ∨ (ϕ ∧ E[ϕ U> ϕ′]))/K =

lfp Z . Φ∃(///ϕ′/K //K ∪ ///ϕ/K ∩ Z//K)

/E[ϕ W> ϕ′]/K = /EX(ϕ′ ∨ (ϕ ∧ E[ϕ W> ϕ′]))/K =

gfp Z . Φ∃(///ϕ′/K //K ∪ ///ϕ/K ∩ Z//K)

/AX ϕ/K = Φ∀(///ϕ/K //K)

/AF> ϕ/K = /AX(ϕ ∨ AF>ϕ)/K = lfp Z . Φ∀(///ϕ/K //K ∪ //Z//K)

/AG> ϕ/K = /AX(ϕ ∧ AG>ϕ)/K = gfp Z . Φ∀(///ϕ/K //K ∩ //Z//K)

/A[ϕ U> ϕ′]/K = /AX(ϕ′ ∨ (ϕ ∧ A[ϕ U> ϕ′]))/K =

lfp Z . Φ∀(///ϕ′/K //K ∪ ///ϕ/K ∩ Z//K)

/A[ϕ W> ϕ′]/K = /AX(ϕ′ ∨ (ϕ ∧ A[ϕ W> ϕ′]))/K =

gfp Z . Φ∀(///ϕ′/K //K ∪ ///ϕ/K ∩ Z//K)

Dokaz. Opredelitev sledi iz definicije operatorjev CTL. Glej npr. [30].

2.3 Oznaceni sistem prehajanja stanj in ACTL 15

2.3 Oznaceni sistem prehajanja stanj in ACTL

Oznaceni sistem prehajanja stanj je nedeterministicen model, v katerem so prehodi ozna-ceni z dogodki. Uporabljamo ga v povezavi s formalizmi, ki temeljijo na dogodkih.

Definicija 2.4 (Oznaceni sistem prehajanja stanj)Oznaceni sistem prehajanja stanj (LTS) je cetvorka M=(S,Act,D, s0), kjer je S mnozi-ca stanj, Act mnozica zunanjih dogodkov (notranji dogodek τ ni v Act), D ⊆ S × Act ∪

{τ} × S prehajalna relacija in s0∈S zacetno stanje.

Ce sta mnozica stanj in mnozica zunanjih dogodkov v LTS-ju koncna, potem je tokoncni LTS. Trojica (s, a, s′) ∈ D predstavlja prehod iz stanja s v stanje s′, ki je oznacen zdogodkom a. Ce (s, a, s′) ∈ D, potem je stanje s′ a-naslednik ali preprosto naslednik stanjas, stanje s pa prednik stanja s′. Prehod, ki se zacne in konca v istem stanju, imenujemozanka. Z Aτ oznacimo mnozico A∪{τ}, z DA(s) oznacimo mnozico naslednikov stanja s,ki so dosegljiva s prehodom, oznacenim z dogodkom iz mnozice A, z Dτ

A(s) pa na kratkozapisemo mnozico DA(s) ∪D{τ}(s). Stanje brez naslednikov imenujemo zagatno stanje.

Pot π v LTS-ju je tako koncno ali neskoncno izmenicno zaporedje stanj in dogodkovp0, a1, p1, a2, p2, ... v LTS-ju, ki se zacne in konca v stanju in za vsaki dve zaporedni stanjipi in pi+1 na poti velja (pi, ai+1, pi+1) ∈ D. Dogodek ai in prehod (pi−1, ai, pi) sta i-tidogodek in i-ti prehod na tej poti. Stanja na poti π oznacujemo kot π(i). Pri tem je π(0)

prvo stanje na poti π in π(i+1) je stanje na poti π, ki je takoj za stanjem π(i) (slika 2.2).

...π(0) π(1) π(2)

a1 a2 a3

Slika 2.2: Pot v oznacenem sistemu prehajanja stanj

Koncno pot, ki se konca v stanju brez naslednikov, imenujemo koncna polna pot vLTS-ju. Koncno polno pot z enim samim stanjem in brez dogodkov imenujemo prazna pot.Koncno polno pot z vsaj enim dogodkom, ki se zacne in konca v istem stanju, imenujemocikel. Zaporedje dogodkov na poti π oznacimo z act(π). Stevilo dogodkov na koncnipoti π oznacimo z len(π). Stanje, v katerem se zacne taka neskoncna pot, na kateri so vsidogodki notranji dogodki τ , imenujemo divergentno stanje.

Nad LTS-ji so definirane nekatere pomembne ekvivalencne relacije, na primer strogaopazovalna ekvivalenca, sibka opazovalna ekvivalenca in vejitvena opazovalna ekvivalenca[32, 72].

16 2 Temporalne logike CTL, ACTL in ACTLW

Akcijska logika dreves izvajanj (ACTL) [70] je izjavna temporalna logika razvejanegacasa. Ce jo interpretiramo nad LTS-ji, je ACTL skladna s strogo opazovalno ekvivalenco,brez operatorja next pa je skladna z na divergenco obcutljivo vejitveno opazovalno ekviva-lenco [70]. Kratica ACTL se uporablja tudi kot oznaka za logiko, ki je univerzalni fragmentCTL, katere izvirna oznaka je ∀CTL [22]. Pozneje so zaradi lazjega pisanja vpeljali tudioznako ACTL in tako povzrocili prekrivanje s takrat ze obstojeco kratico za akcijsko logikodreves izvajanj.

Definicija 2.5 (Akcijska logika dreves izvajanj)Naj bo M = (S,Act,D, s0) LTS s totalno prehajalno relacijo. Skladnja ACTL nad M-jem je definirana z naslednjo slovnico, kjer je α ∈ Act, ∃ in ∀ sta kvantifikatorja poti, X inU pa temporalna operatorja next in until:

χ ::= α | ¬χ | χ ∨ χ

ϕ ::= true | ¬ϕ | ϕ ∨ ϕ | ∃γ | ∀γ

γ ::= Xχ ϕ | Xτ ϕ | ϕ χU ϕ | ϕ χUχ ϕ

Zadoscenje formule dogodka χ za dogodek a ∈ Act (a |= χ), formule stanja ϕ v stanjus (s |=M ϕ) in formule poti γ na poti π (π |=M γ) je induktivno definirano z naslednjimipravili, kjer je α ∈ Act in /χ/= {α | α |= χ}:a |= α ce in samo ce a = α;a |= ¬χ ce in samo ce a 6|= χ;a |= χ ∨ χ′ ce in samo ce a |= χ ali a |= χ′;s |=M true vedno;s |=M ¬ϕ ce in samo ce s 6|=M ϕ;s |=M ϕ ∨ ϕ′ ce in samo ce s |=M ϕ ali s |=M ϕ′;s |=M ∃ γ ce in samo ce obstaja taka polna pot π v M, da je π(0)=s in π |=M γ;s |=M ∀ γ ce in samo ce za vse polne poti π v M: π(0) = s =⇒ π |=M γ;π |=M Xχ ϕ ce in samo ce π(1) ∈ D/χ/(π(0)) in π(1) |=M ϕ;π |=M Xτ ϕ ce in samo ce π(1) ∈ D{τ}(π(0)) in π(1) |=M ϕ;π |=M ϕ χU ϕ′ ce in samo ce obstaja tak i≥0, da je π(i) |=M ϕ′ ter

za vse 0 ≤ j ≤ i−1: π(j) |=M ϕ in π(j+1) ∈ Dτ/χ/(π(j));

π |=M ϕχUχ′ ϕ′ ce in samo ce π(0) |=Mϕ in obstaja tak i≥1, da jeπ(i) |=Mϕ′, π(i) ∈ D/χ′/(π(i−1)) ter za vse 1≤j≤ i−1:π(j) |=M ϕ in π(j) ∈ Dτ

/χ/(π(j−1)).

Za lazje izrazanje uporabljamo formulo dogodka true, ki pomeni α ∨ ¬α, kjer je α ∈

Act poljubno izbran zunanji dogodek. V formulah dogodka in v formulah stanja namesto¬true pisemo false, uporabljamo pa tudi razne Boolove operatorje. Na primer, χ ∧ χ′

pomeni ¬(¬χ ∨ ¬χ′), ϕ ∧ ϕ′ pa pomeni ¬(¬ϕ ∨ ¬ϕ′). Ce s |=M ϕ, pravimo, da ϕ velja

2.3 Oznaceni sistem prehajanja stanj in ACTL 17

v stanju s. Ko je LTS razviden iz sobesedila, pisemo s |= ϕ namesto s |=M ϕ. FormulaACTL ϕ velja v danem LTS-ju M (pisemo M |= ϕ), ce in samo ce ϕ velja v zacetnemstanju M.

Formule dogodka pri ACTL opisujejo zunanje dogodke. Na primer, formuli dogodka azadosti le zunanji dogodek a, formuli dogodka α ∨ β pa zadosti vsak dogodek, ki zadostiformuli dogodka α ali formuli dogodka β. Formuli dogodka true zadosti vsak zunanjidogodek, formuli dogodka false ne zadosti nobeden zunanji dogodek.

Pogosto se uporabljajo naslednji izpeljani operatorji ACTL:

∃X ϕ , ∃Xtrue ϕ ∨ ∃Xτ ϕ

∃F ϕ , ∃(true trueU ϕ)

∃G ϕ , ¬∀F ¬ϕ

∀X ϕ , ¬∃Xtrue ¬ϕ ∧ ¬∃Xτ ¬ϕ

∀F ϕ , ∀(true trueU ϕ)

∀G ϕ , ¬∃F ¬ϕ

V formulah ACTL se uporabljata tudi Hennessy-Milnerjeva operatorja <> in [ ]. Po-znamo sibko (npr. [71]) in strogo razlicico teh operatorjev. V originalni definiciji Hennessy-Milnerjeve logike nastopata stroga operatorja, ki ju v ACTL vpeljemo na naslednji nacin:

<χ> ϕ , ∃Xχ ϕ

[χ] ϕ , ¬∃Xχ ¬ϕ

Izrek 2.5 (Ekvivalenca med formulami ACTL z razlicnimi operatorji)

∃(ϕ χUχ′ ϕ′) = ∃(ϕ χU (ϕ ∧ ∃Xχ′ ϕ′))

Dokaz. Ekvivalenca sledi neposredno iz definicije operatorjev ACTL.

V [50] lahko zasledimo naslednji skladenjski okrajsavi pri ACTL:

∃Xχ∨τ ϕ , ∃Xχ ϕ ∨ ∃Xτ ϕ

∀Xχ∨τ ϕ , ¬∃Xtrue ¬ϕ ∧ ¬∃Xτ ¬ϕ ∧ ¬∃X¬χ true

Primer. Imejmo LTS M = ({p0, p1, p2, ...}, {a, ...}, {(p0, a, p1), (p0, τ, p2), ...}, p0), vkaterem stanje p0 nima prednikov, (p0, a, p1) in (p0, τ, p2) sta edina dva prehoda iz p0 innaj p0 6|=ϕ, p1 |=ϕ ter p2 |=ϕ. Potem so pravilne naslednje interpretacije formul ACTL:

M 6|= ∃Xfalse ϕM |= ∃Xtrue ϕM |= ∃Xτ ϕ

M |= ∃Xa ϕ

M 6|= ∃X¬a ϕ

M 6|= ∀Xtrue ϕM 6|= ∀Xτ ϕ

M 6|= ∀Xa ϕ

M |= ∃(truefalse U ϕ)

M |= ∃(truetrue U ϕ)

M |= ∃(truea U ϕ)

M |= ∃(true¬a U ϕ)

M 6|= ∀(truefalse U ϕ)

M |= ∀(truetrue U ϕ)

M |= ∀(truea U ϕ)

M 6|= ∀(true¬a U ϕ)

18 2 Temporalne logike CTL, ACTL in ACTLW

2.4 Temporalna logika ACTLW

Akcijska logika dreves izvajanj z operatorjem unless (ACTLW) [64] je razsiritev logikeACTL in je prav tako izjavna temporalna logika razvejanega casa. ACTLW je v nasprotjuz ACTL bolj osredotocena na ucinkovito izvedbo preverjanja modelov, in ne na skladnostz ekvivalencnimi relacijami. ACTLW mnoge ekvivalence in vzorce formul deli s CTL.

Definicija 2.6 (Akcijska logika dreves izvajanj z operatorjem unless)Naj bo M = (S,Act,D, s0) LTS s totalno prehajalno relacijo. Skladnja ACTLW nad M-jem je definirana z naslednjo slovnico, kjer je α ∈ Actτ , EE in AA sta kvantifikatorja poti,U in W pa temporalna operatorja until in unless:

χ ::= α | ¬χ | χ ∨ χ

ϕ ::= true | ¬ϕ | ϕ ∨ ϕ | EE γ | AA γ

γ ::= {χ}ϕ U {χ}ϕ | {χ}ϕ W {χ}ϕ

Zadoscenje formule dogodka χ za dogodek a ∈ Actτ (a |= χ), formule stanja ϕ v sta-nju s (s |=M ϕ) in formule poti γ na polni poti π (π |=M γ) je induktivno definirano znaslednjimi pravili, kjer je α ∈ Actτ in /χ/= {α | α |= χ}:

a |= α ce in samo ce a = α ;a |= ¬χ ce in samo ce a 6|= χ;a |= χ ∨ χ′ ce in samo ce a |= χ ali a |= χ′;s |=M true vedno;s |=M ¬ϕ ce in samo ce s 6|=M ϕ;s |=M ϕ ∨ ϕ′ ce in samo ce s |=M ϕ ali s |=M ϕ′;s |=M EE γ ce in samo ce obstaja taka polna pot π v M, da je π(0)=s in π |=M γ;s |=M AA γ ce in samo ce za vse polne poti π v M: π(0) = s =⇒ π |=M γ;π |=M {χ}ϕ U {χ′}ϕ′ ce in samo ce obstaja tak i≥1, da je

π(i) |=M ϕ′ in π(i) ∈ D/χ′/(π(i−1)), ter za vse 1 ≤ j ≤ i−1:π(j) |=M ϕ in π(j) ∈ D/χ/(π(j−1));

π |=M {χ}ϕ W {χ′}ϕ′ ce in samo ce π |=M {χ}ϕ U {χ′}ϕ′ ali ce za vse i≥1:π(i) |=M ϕ in π(i) ∈ D/χ/(π(i−1)).

Za lazje izrazanje uporabljamo formulo dogodka true, ki pomeni α ∨ ¬α, kjer je α ∈

Actτ poljubno izbran dogodek. V formulah dogodka in v formulah stanja namesto ¬truepisemo false, uporabljamo pa tudi razne Boolove operatorje. Na primer, χ ∧ χ′ pomeni¬(¬χ ∨ ¬χ′), ϕ ∧ ϕ′ pa pomeni ¬(¬ϕ ∨ ¬ϕ′). Ce s |=M ϕ, pravimo, da ϕ velja v stanjus. Ko je LTS razviden iz sobesedila, pisemo s |= ϕ namesto s |=M ϕ. Formula ACTLW ϕ

velja v danem LTS-ju M (pisemo M |= ϕ), ce in samo ce ϕ velja v zacetnem stanju M.

2.4 Temporalna logika ACTLW 19

V racunalniskih datotekah kvantifikatorje poti v formulah ACTL zapisemo z E in Anamesto z matematicnima simboloma ∃ in ∀. Da se formule ACTL in ACTLW locijo medseboj, pri ACTLW kvantifikatorja poti oznacujemo kot EE in AA. S takim oznacevanjemzagotovimo nedvoumno sobivanje formul ACTL in ACTLW in celo njihovo mesanje.

Poleg ocitnih razlik v skladnji velja posebej opozoriti na to, da lahko formule dogodkav ACTLW vsebujejo notranji dogodek τ , medtem ko v ACTL to ni dovoljeno. Med defini-cijama ACTL in ACTLW sta tudi naslednji dve drobni, a pomembni razliki:

• temporalna operatorja until in unless sta pri ACTLW dosledna operatorja v nasprotjuz nedoslednim operatorjem until pri ACTL,

• formuli dogodka true pri ACTLW zadostijo vsi zunanji dogodki in tudi notranji do-godek, pri ACTL pa le vsi zunanji dogodki.

Izpeljane operatorje ACTLW vpeljemo podobno kot pri CTL:

EEX{χ} ϕ , EE[{false}false U {χ} ϕ]

EEF{χ} ϕ , EE[{true}true U {χ} ϕ]

EEG{χ} ϕ , EE[{χ}ϕ W {false} false]

AAX{χ} ϕ , AA[{false}false W {χ} ϕ]

AAF{χ} ϕ , AA[{true}true U {χ} ϕ]

AAG{χ} ϕ , AA[{χ}ϕ W {false} false]

Izrek 2.6 (Ekvivalence med formulami ACTLW z razlicnimi operatorji)

AAX{χ} ϕ = ¬EEX{¬χ} true ∧ ¬EEX{true} ¬ϕAAG{χ} ϕ = ¬EEF{¬χ} true ∧ ¬EEF{true} ¬ϕEE[{χ} ϕ W {χ′} ϕ′] = EE[{χ} ϕ U {χ′} ϕ′] ∨ EEG {χ} ϕ

AA[{χ} ϕ U {χ′} ϕ′] = AA[{χ} ϕ W {χ′} ϕ′] ∧ AAF {χ′} ϕ′

EE[{true} ϕ U {true} ϕ′] = ¬AA[{true} ¬ϕ′ W {true} (¬ϕ ∧ ¬ϕ′)]

EE[{true} ϕ U {χ′} true] = ¬AA[{¬χ′} true W {¬χ′} ¬ϕ]

EE[{χ} true U {true} ϕ′] = ¬AA[{true} ¬ϕ′ W {¬χ} ¬ϕ′]

EE[{χ} true U {χ′} true] = ¬AA[{¬χ′} true W {¬χ ∧ ¬χ′} true]EE[{χ} true U {χ} ϕ′] = ¬AA[{true} ¬ϕ′ W {¬χ} true]EE[{true} ϕ U {χ′} ϕ] = ¬AA[{¬χ′} true W {true} ¬ϕ]

AA[{true} ϕ U {true} ϕ′] = ¬EE[{true} ¬ϕ′ W {true} (¬ϕ ∧ ¬ϕ′)]

AA[{true} ϕ U {χ′} true] = ¬EE[{¬χ′} true W {¬χ′} ¬ϕ]

AA[{χ} true U {true} ϕ′] = ¬EE[{true} ¬ϕ′ W {¬χ} ¬ϕ′]

AA[{χ} true U {χ′} true] = ¬EE[{¬χ′} true W {¬χ ∧ ¬χ′} true]AA[{χ} true U {χ} ϕ′] = ¬EE[{true} ¬ϕ′ W {¬χ} true]AA[{true} ϕ U {χ′} ϕ] = ¬EE[{¬χ′} true W {true} ¬ϕ]

Dokaz. Ekvivalence sledijo neposredno iz definicije operatorjev ACTLW. Zadnjih 12ekvivalenc je veljavnih tudi v primeru, da temporalna operatorja U in W spremenimo enegav drugega.

20 2 Temporalne logike CTL, ACTL in ACTLW

Izrek 2.7 (Najmanjsa zadostna mnozica operatorjev za ACTLW)Najmanjsa zadostna mnozica operatorjev za ACTLW ima 4 elemente. Natancneje, v zado-stni mnozici operatorjev za ACTLW s 4 elementi morata biti operatorja EEU in AAW terpo en operator iz mnozic {EEG,EEW} in {AAF,AAU}.

Dokaz. Ta izrek je pravzaprav domneva, za katero pa nam ni znan noben protiprimer.

Ucinkovito skladenjsko okrajsavo pri ACTLW dosezemo, ce definiramo {χ}true,{χ}

in {true} ϕ,ϕ. Na ta nacin dobimo naslednje kratke formule:

EEX{χ} , EEX{χ} trueEEF{χ} , EEF{χ} trueEEG{χ} , EEG{χ} true

EEX ϕ , EEX{true} ϕEEF ϕ , EEF{true} ϕEEG ϕ , EEG{true} ϕ

EE[{χ} U {χ′}] , EE[{χ} true U {χ′} true]EE[{χ} W {χ′}] , EE[{χ} true W {χ′} true]

EE[ϕ U ϕ′] , EE[{true} ϕ U {true} ϕ′]

EE[ϕ W ϕ′] , EE[{true} ϕ W {true} ϕ′]

Okrajsave formul ACTLW z operatorjem AA so identicne zgornjim. Z uporabo tehokrajsav lahko mnoge ekvivalence, ki veljajo za CTL, priredimo za ACTLW.

Izrek 2.8 (Ekvivalence med okrajsanimi formulami ACTLW)EEX ϕ = ¬AAX ¬ϕEEF ϕ = ¬AAG ¬ϕEEG ϕ = ¬AAF ¬ϕ

EE[ϕ U ϕ′] = ¬AA[¬ϕ′ W (¬ϕ ∧ ¬ϕ′)]EE[ϕ W ϕ′] = ¬AA[¬ϕ′ U (¬ϕ ∧ ¬ϕ′)]AA[ϕ U ϕ′] = ¬EE[¬ϕ′ W (¬ϕ ∧ ¬ϕ′)]AA[ϕ W ϕ′] = ¬EE[¬ϕ′ U (¬ϕ ∧ ¬ϕ′)]

EE[ϕ W ϕ′] = EE[ϕ U ϕ′] ∨ EEG ϕAA[ϕ U ϕ′] = AA[ϕ W ϕ′] ∧ AAF ϕ′

EEX {χ} = ¬AAX {¬χ}EEF {χ} = ¬AAG {¬χ}EEG {χ} = ¬AAF {¬χ}

EE[{χ} U {χ′}] = AA[{¬χ′} W {¬χ ∧ ¬χ′}]EE[{χ} W {χ′}] = AA[{¬χ′} U {¬χ ∧ ¬χ′}]AA[{χ} U {χ′}] = EE[{¬χ′} W {¬χ ∧ ¬χ′}]AA[{χ} W {χ′}] = EE[{¬χ′} U {¬χ ∧ ¬χ′}]

EE[{χ} W {χ′}] = EE[{χ} U {χ′}] ∨ EEG {χ}AA[{χ} U {χ′}] = AA[{χ} W {χ′}] ∧ AAF {χ′}

Dokaz. Ekvivalence sledijo neposredno iz definicije operatorjev ACTLW in pomena skla-denjskih okrajsav.

2.4 Temporalna logika ACTLW 21

Imejmo LTS M = (S,Act,D, s0) in naj bo A ⊆ Actτ ter P ⊆ S. Za formulo dogodkaχ z /χ/M oznacimo mnozico dogodkov a ∈ Actτ , za katere velja a |= χ. Za formulo stanjaϕ z /ϕ/M oznacimo mnozico stanj p ∈ S, za katere velja p |=M ϕ. Z //A, P//M oznacimomnozico prehodov (p, a, p′) ∈ D, za katere velja a ∈ A in p′ ∈ P . Nadalje bomo stanjep v M, v katerem velja formula stanja ϕ (torej p ∈ /ϕ/M), imenovali ϕ-stanje, prehod(p, a, p′) v M, pri katerem formula dogodka χ velja za dogodek a in formula stanja ϕ veljav stanju p′ (torej (p, a, p′) ∈ ///χ/M, /ϕ/M //M), pa imenujemo (χ, ϕ)-prehod. Z uporaboteh pojmov lahko pomen temporalnih operatorjev pri ACTLW razlozimo na naslednji nacin(glej sliko 2.3):

• X{χ} ϕ je zadoscena na polni poti, ce in samo ce je prvi prehod na tej poti (χ, ϕ)-prehod.

• F{χ} ϕ je zadoscena na polni poti, ce in samo ce na njej obstaja (χ, ϕ)-prehod.

• G{χ} ϕ je zadoscena na polni poti, ce in samo ce so vsi prehodi na njej (χ, ϕ)-prehodi.

• [{χ}ϕ U {χ′} ϕ′] je zadoscena na polni poti, ce in samo ce se ta zacne s koncnim(lahko tudi praznim) zaporedjem (χ, ϕ)-prehodov, ki mu sledi (χ′, ϕ′)-prehod.

• [{χ}ϕ W {χ′} ϕ′] je zadoscena na polni poti, ce in samo ce je na tej poti zadoscenaformula [{χ}ϕ U {χ′} ϕ′] ali formula G{χ} ϕ.

[{χ}ϕ U {χ′} ϕ′]:

χ

χ

χ

F{χ} ϕ:

X{χ} ϕ:

G{χ} ϕ:

ϕ

χϕ ϕ

χ χ′

ϕ ϕ′

χ

χ χϕ

ϕ

ϕ

ϕ

Slika 2.3: Pomen temporalnih operatorjev pri ACTLW

22 2 Temporalne logike CTL, ACTL in ACTLW

Podobno kot operatorje CTL lahko tudi operatorje ACTLW opredelimo z negibnotocko. Zaradi krajsega zapisa pa najprej vpeljemo dodatne okrajsave:

EEX[{χ} ϕ · {χ′} ϕ′] , EEX{χ ∧ χ′} (ϕ ∧ ϕ′)

EEX[{χ} ϕ+ {χ′} ϕ′] , EEX{χ} ϕ ∨ EEX{χ′} ϕ′

EEX[{χ} ϕ | {χ′} ϕ′] , ¬AAX{χ ∧ χ′} (ϕ ∧ ϕ′)

EEX[{χ} ϕ ↓ {χ′} ϕ′] , EEX{¬χ ∧ ¬χ′} true ∨ EEX{true} (¬ϕ ∧ ¬ϕ′)∨EEX{¬χ} ¬ϕ′ ∨ EEX{¬χ′} ¬ϕ

AAX[{χ} ϕ · {χ′} ϕ′] , AAX{χ ∧ χ′} (ϕ ∧ ϕ′)

AAX[{χ} ϕ+ {χ′} ϕ′] , ¬EEX{¬χ ∧ ¬χ′} true ∧ ¬EEX{true} (¬ϕ ∧ ¬ϕ′)∧¬EEX{¬χ} ¬ϕ′ ∧ ¬EEX{¬χ′} ¬ϕ

AAX[{χ} ϕ | {χ′} ϕ′] , ¬EEX{χ ∧ χ′} (ϕ ∧ ϕ′)

AAX[{χ} ϕ ↓ {χ′} ϕ′] , ¬EEX{χ} ϕ ∧ ¬EEX{χ′} ϕ′

Formula EEX[{χ} ϕ · {χ′} ϕ′] velja v danem stanju natanko takrat, ko iz tega sta-nja vodi vsaj en prehod, ki je hkrati (χ, ϕ)-prehod in (χ′, ϕ′)-prehod. FormulaEEX[{χ} ϕ + {χ′} ϕ′] velja v danem stanju natanko takrat, ko iz tega stanja vodi vsajen (χ, ϕ)-prehod ali (χ′, ϕ′)-prehod. Formula EEX[{χ} ϕ | {χ′} ϕ′] velja v danem stanjunatanko takrat, ko iz tega stanja vodi vsaj en prehod, ki ni (χ, ϕ)-prehod ali ni (χ′, ϕ′)-prehod. Formula EEX[{χ} ϕ ↓ {χ′} ϕ′] velja v danem stanju natanko takrat, ko iz tegastanja vodi vsaj en prehod, ki ni niti (χ, ϕ)-prehod niti (χ′, ϕ′)-prehod. Pomen formul zoperatorjem AAX je simetricen. Formula AAX[{χ} ϕ · {χ′} ϕ′] velja v danem stanjunatanko takrat, ko je vsak prehod iz tega stanja hkrati (χ, ϕ)-prehod in (χ′, ϕ′)-prehod.Formula AAX[{χ} ϕ + {χ′} ϕ′] velja v danem stanju natanko takrat, ko je vsak prehodiz tega stanja (χ, ϕ)-prehod ali (χ′, ϕ′)-prehod. Formula AAX[{χ} ϕ | {χ′} ϕ′] velja vdanem stanju natanko takrat, ko je vsak prehod iz tega stanja tak, da ni (χ, ϕ)-prehod ali ni(χ′, ϕ′)-prehod. Formula AAX[{χ} ϕ ↓ {χ′} ϕ′] velja v danem stanju natanko takrat, konoben prehod iz tega stanja ni niti (χ, ϕ)-prehod niti (χ′, ϕ′)-prehod.

V nadaljevanju podajamo za vsak operator ACTLW dve opredelitvi z negibno tocko.Opredelitve negacije operatorjev, ki vsebujejo kvantifikator poti AA, so osnova za ucinko-vito izvedbo tvorjenja diagnostike in protiprimerov pri ACTLW (glej poglavje 4 v nadalje-vanju). Opredelitve negacije operatorjev, ki vsebujejo kvantifikator poti EE so podane lezaradi celovitosti.

Izrek 2.9 (Opredelitev operatorjev ACTLW z izrazi z negibno tocko)Naj bo T ⊆D in naj bosta Φ∃ in Φ∀ taki funkciji 2S×Actτ×S−→ 2S nad M=(S,Act,D, s0),da velja p ∈ Φ∃(T ), ce in samo ce ∃a ∈ Actτ ∃p

′ ∈ S . (p, a, p′) ∈ D ∧ (p, a, p′) ∈ T terp∈Φ∀(T ), ce in samo ce ∀a∈Actτ ∀p

′∈S . (p, a, p′)∈D =⇒ (p, a, p′)∈T . Potem lahkooperatorje ACTLW opredelimo z naslednjimi izrazi z negibno tocko:

2.4 Temporalna logika ACTLW 23

/EEX{χ} ϕ/M = Φ∃(///χ/M, /ϕ/M//M)

/EEF{χ} ϕ/M = /EEX[{χ} ϕ+ {true} EEF{χ} ϕ]/M =lfp Z . Φ∃(///χ/M, /ϕ/M//M ∪ //Actτ , Z//M)

/EEG{χ} ϕ/M = /EEX[{χ} ϕ · {true} EEG{χ} ϕ]/M =gfp Z . Φ∃(///χ/M, /ϕ/M//M ∩ //Actτ , Z//M)

/EE[{χ}ϕ U {χ′} ϕ′]/M = /EEX[{χ′} ϕ′ + {χ}(ϕ ∧ EE[{χ}ϕ U {χ′} ϕ′])]/M =lfp Z . Φ∃(///χ

′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

/EE[{χ}ϕ W {χ′} ϕ′]/M = /EEX[{χ′} ϕ′ + {χ}(ϕ ∧ EE[{χ}ϕ W {χ′} ϕ′])]/M =gfp Z . Φ∃(///χ

′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

/¬EEX{χ} ϕ/M = Φ∀(D − ///χ/M, /ϕ/M//M)

/¬EEF{χ} ϕ/M = /AAX[{χ} ϕ ↓ {true} EEF{χ} ϕ]/M =gfp Z . Φ∀(D − (///χ/M, /ϕ/M//M ∪ //Actτ , (S − Z)//M))

/¬EEG{χ} ϕ/M = /AAX[{χ} ϕ | {true} EEG{χ} ϕ]/M =lfp Z . Φ∀(D − (///χ/M, /ϕ/M//M ∩ //Actτ , (S − Z)//M))

/¬EE[{χ}ϕU {χ′} ϕ′]/M = /AAX[{χ′} ϕ′ ↓ {χ}(ϕ ∧ EE[{χ}ϕ U {χ′} ϕ′])]/M =gfp Z . Φ∀(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M))

/¬EE[{χ}ϕW {χ′} ϕ′]/M = /AAX[{χ′} ϕ′ ↓ {χ}(ϕ ∧ EE[{χ}ϕ W {χ′} ϕ′])]/M =lfp Z . Φ∀(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M))

/AAX{χ} ϕ/M = Φ∀(///χ/M, /ϕ/M//M)

/AAF{χ} ϕ/M = /AAX[{χ} ϕ+ {true} AAF{χ} ϕ]/M =lfp Z . Φ∀(///χ/M, /ϕ/M//M ∪ //Actτ , Z//M)

/AAG{χ} ϕ/M = /AAX[{χ} ϕ · {true} AAG{χ} ϕ]/M =gfp Z . Φ∀(///χ/M, /ϕ/M//M ∩ //Actτ , Z//M)

/AA[{χ}ϕ U {χ′} ϕ′]/M = /AAX[{χ′} ϕ′ + {χ}(ϕ ∧ AA[{χ}ϕ U {χ′} ϕ′])]/M =lfp Z . Φ∀(///χ

′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

/AA[{χ}ϕ W {χ′} ϕ′]/M = /AAX[{χ′} ϕ′ + {χ}(ϕ ∧ AA[{χ}ϕ W {χ′} ϕ′])]/M =gfp Z . Φ∀(///χ

′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

/¬AAX{χ} ϕ/M = Φ∃(D − ///χ/M, /ϕ/M//M)

/¬AAF{χ} ϕ/M = /EEX[{χ} ϕ ↓ {true} AAF{χ} ϕ]/M =gfp Z . Φ∃(D − (///χ/M, /ϕ/M//M ∪ //Actτ , (S − Z)//M))

/¬AAG{χ} ϕ/M = /EEX[{χ} ϕ | {true} AAG{χ} ϕ]/M =lfp Z . Φ∃(D − (///χ/M, /ϕ/M//M ∩ //Actτ , (S − Z)//M))

/¬AA[{χ}ϕ U {χ′} ϕ′]/M = /EEX[{χ′} ϕ′ ↓ {χ} (ϕ ∧ AA[{χ}ϕ U {χ′} ϕ′])]/M =gfp Z . Φ∃(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M))

/¬AA[{χ}ϕ W {χ′} ϕ′]/M = /EEX[{χ′} ϕ′ ↓ {χ} (ϕ ∧ AA[{χ}ϕ W {χ′} ϕ′])]/M =lfp Z . Φ∃(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M))

Dokaz. Opredelitev sledi iz definicije operatorjev ACTLW.

24 2 Temporalne logike CTL, ACTL in ACTLW

2.5 Preslikave med logikami CTL, ACTL in ACTLW

Med logikama CTL in ACTLW obstajata preslikavi, ki omogocata, da preverjanje modelaz ACTLW izvedemo kot preverjanje modela z CTL in obratno. Ker sta CTL in ACTLWdefinirani nad razlicnimi strukturami, je pri teh pretvorbah potrebno preslikati tudi model.Prikazani preslikavi modelov lts2ks strong in ks2lts strong sta razlicici preslikav iz [70].

Definicija 2.7 (Preslikava lts2ks strong)Naj bo M = (S,Act,D, s0) LTS in ⊥ simbol, ki ga ni v Act. Preslikava lts2ks strongpreslika LTS M v KS lts2ks strong(M) = (S ′, AP, L,D′, s′0) po naslednjih pravilih:

• S ′ = S ∪ {(p, a, p′) | (p, a, p′) ∈ D},

• AP = Actτ ∪ {⊥},

• ∀p ∈ S . L(p) = {⊥}, ∀(p, a, p′) ∈ D . L((p, a, p′)) = {a},

• D′ = {(p, (p, a, p′)) | (p, a, p′) ∈ D} ∪ {((p, a, p′), p′) | (p, a, p′) ∈ D},

• s′0 = s0.

Preslikava lts2ks strong je shematsko prikazana na sliki 2.4.

LTS KS

a{⊥} {⊥}

p p′ p

{a}

p′∀ p, p′ ∈ S:

Slika 2.4: Shematski prikaz preslikave lts2ks strong

Definicija 2.8 (Preslikava ks2lts strong)Naj bo K = (S,AP, L,D, s0) KS, ⊥ in> pa simbola, ki ju ni vAP . Preslikava ks2lts strongpreslika KS K v LTS ks2lts strong(K) = (S ′, Act,D′, s′0) po naslednjih pravilih:

• S ′ = S ∪ {p+ | p ∈ S},

• Act = AP ∪ {⊥,>},

• D′ = {(p,⊥, p+) |p ∈ S} ∪ {(p+, l, p) |p ∈ S, l ∈ L(p)} ∪ {(p,>, p′) |(p, p′) ∈ D},

• s′0 = s0.

2.5 Preslikave med logikami CTL, ACTL in ACTLW 25

Preslikava ks2lts strong je shematsko prikazana na sliki 2.5.

p

p

p⊥ l2

l1

...

p p′

LTS

>

p

L(p)

p p′

KS

L(p′)L(p)

∀ p, p′ ∈ S:

∀ p ∈ S, ∀ l1, l2, ... ∈ L(p):

Slika 2.5: Shematski prikaz preslikave ks2lts strong

Definicija 2.9 (Preslikava actlw2ctl)Preslikava actlw2ctl: ACTLW −→ CTL, ki preslikuje formule ACTLW v formule CTL,je induktivno podana z naslednjimi pravili:

actlw2ctl (true) = trueactlw2ctl (¬ϕ) = ¬ actlw2ctl (ϕ)

actlw2ctl (ϕ ∨ ϕ′) = actlw2ctl (ϕ) ∨ actlw2ctl (ϕ′)

actlw2ctl (EE[{χ} ϕ U {χ′} ϕ′]) = E[((⊥ ∧ actlw2ctl(ϕ)) ∨ (¬⊥ ∧ χ)) U>

((¬⊥ ∧ χ′) ∧ EX(⊥ ∧ actlw2ctl(ϕ′)))]

actlw2ctl (AA[{χ} ϕ U {χ′} ϕ′]) = A[((⊥ ∧ actlw2ctl(ϕ)) ∨ (¬⊥ ∧ χ)) U>

((¬⊥ ∧ χ′) ∧ AX(⊥ ∧ actlw2ctl(ϕ′)))]

actlw2ctl (EE[{χ} ϕ W {χ′} ϕ′]) = E[((⊥ ∧ actlw2ctl(ϕ)) ∨ (¬⊥ ∧ χ)) W>

((¬⊥ ∧ χ′) ∧ EX(⊥ ∧ actlw2ctl(ϕ′)))]

actlw2ctl (AA[{χ} ϕ W {χ′} ϕ′]) = A[((⊥ ∧ actlw2ctl(ϕ)) ∨ (¬⊥ ∧ χ)) W>

((¬⊥ ∧ χ′) ∧ AX(⊥ ∧ actlw2ctl(ϕ′)))]

Izrek 2.10 (Pravilnost preslikave actlw2ctl)Formula ACTLW ϕ velja v LTS-ju M s totalno prehajalno relacijo natanko takrat, koformula CTL actlw2ctl(ϕ) velja v KS lts2ks strong(M).

Dokaz. Pravilnost preslikave actlw2ctl sledi iz definicije logik CTL in ACTLW.

26 2 Temporalne logike CTL, ACTL in ACTLW

Definicija 2.10 (Preslikava ctl2actlw)Preslikava ctl2actlw: CTL −→ ACTLW, ki preslikuje formule CTL v formule ACTLW, jeinduktivno podana z naslednjimi pravili:

ctl2actlw (λ) = ¬EEX {⊥} ¬EEX {λ} true

ctl2actlw (¬ϕ) = ¬ ctl2actlw (ϕ)

ctl2actlw (ϕ ∨ ϕ′) = ctl2actlw (ϕ) ∨ ctl2actlw (ϕ′)

ctl2actlw (E[ϕ U> ϕ′]) = EE[{true} ctl2actlw (ϕ) U {true} ctl2actlw (ϕ′)]

ctl2actlw (A[ϕ U> ϕ′]) = AA[{true} ctl2actlw (ϕ) U {true} ctl2actlw (ϕ′)]

Izrek 2.11 (Pravilnost preslikave ctl2actlw)Formula CTL ϕ velja v KS K natanko takrat, ko formula ACTLW ctl2actlw(ϕ) velja vLTS-ju ks2lts strong(K).

Dokaz. Pravilnost preslikave ctl2actlw sledi iz definicije logik CTL in ACTLW.

Ce na ustrezen nacin preslikamo LTS v KS in obratno, lahko na podoben nacin kotpri ACTLW vpeljemo tudi preslikavi actl2ctl in ctl2actl, ki formule ACTL pretvorita vformule CTL in obratno [70].

Definicija 2.11 (Preslikava actl2actlw)Preslikava actl2actlw: ACTL −→ ACTLW, ki preslikuje formule ACTL v formule AC-TLW, je induktivno podana z naslednjimi pravili:

actl2actlw (true) = true

actl2actlw (¬ϕ) = ¬ actl2actlw (ϕ)

actl2actlw (ϕ ∧ ϕ′) = actl2actlw (ϕ) ∧ actl2actlw (ϕ′)

actl2actlw (∃Xχϕ) = EEX {χ ∧ ¬τ} actl2actlw (ϕ)

actl2actlw (∀Xχϕ) = AAX {χ ∧ ¬τ} actl2actlw (ϕ)

actl2actlw (∃Xτϕ) = EEX {τ} actl2actlw (ϕ)

actl2actlw (∀Xτϕ) = AAX {τ} actl2actlw (ϕ)

actl2actlw (∃(ϕχU ϕ′)) = (actl2actlw (ϕ′) ∨ (actl2actlw (ϕ) ∧

EE [{χ ∨ τ} actl2actlw (ϕ) U {χ ∨ τ} actl2actlw (ϕ′) ]))

actl2actlw (∀(ϕχU ϕ′)) = (actl2actlw (ϕ′) ∨ (actl2actlw (ϕ) ∧

AA [{χ ∨ τ} actl2actlw (ϕ) U {χ ∨ τ} actl2actlw (ϕ′) ]))

2.5 Preslikave med logikami CTL, ACTL in ACTLW 27

actl2actlw (∃(ϕχUχ′ ϕ′)) = actl2actlw (ϕ) ∧

EE [{χ ∨ τ} actl2actlw (ϕ) U {χ′ ∧ ¬τ} actl2actlw (ϕ′) ]

actl2actlw (∀(ϕχUχ′ ϕ′)) = actl2actlw (ϕ) ∧

AA [{χ ∨ τ} actl2actlw (ϕ) U {χ′ ∧ ¬τ} actl2actlw (ϕ′) ]

Izrek 2.12 (Pravilnost preslikave actl2actlw)Dana formula ACTL ϕ velja v danem LTS M natanko takrat, ko v M velja ACTLWformula actl2actlw(ϕ).

Dokaz. Pravilnost preslikave actl2actlw sledi iz definicije logik ACTL in ACTLW.

Pravila za preslikavo izpeljanih formul ACTL so naslednja:

actl2actlw (∃F ϕ) = actl2actlw (ϕ) ∨ EEF {true} actl2actlw (ϕ)

actl2actlw (∀F ϕ) = actl2actlw (ϕ) ∨ AAF {true} actl2actlw (ϕ)

actl2actlw (∃G ϕ) = actl2actlw (ϕ) ∧ EEG {true} actl2actlw (ϕ)

actl2actlw (∀G ϕ) = actl2actlw (ϕ) ∧ AAG {true} actl2actlw (ϕ)

Izrek 2.13 (ACTLW ima vecjo izrazno moc kot ACTL)Naj bosta χ formula dogodka in ϕ formula ACTLW, za kateri velja χ 6= true, χ 6= false,ϕ 6= true in ϕ 6= false. Potem ne glede na to, ali model vsebuje ali ne vsebuje notranjihdogodkov τ , ne obstaja nobena formula ACTL, ki bi bila ekvivalentna formuli ACTLWEEG {χ} ϕ.

Dokaz. Ta izrek je pravzaprav domneva, za katero pa nam ni znan noben protiprimer.

Posledica izreka 2.13 je, da ACTLW omogoca podajanje nekaterih lastnosti, ki jih zACTL ne moremo izraziti. V to skupino spadajo vse lastnosti oblike: “obstaja pot, nakateri vsi (zunanji) dogodki zadostijo formuli dogodka χ, vsa stanja pa formuli stanjaϕ”. Primer take lastnosti je trditev: “obstaja pot, na kateri so vsi prehodi z zunanjimdogodkom oznaceni z dogodkom a, v vseh stanjih na tej poti pa je mozen prehod oznacenz dogodkom b”, ki jo z ACTLW zapisemo kot EEG {a ∨ τ} EEX{b}. V to skupinospada tudi lastnost “obstaja neskoncna pot, na kateri so vsi prehodi z zunanjim dogodkomoznaceni z dogodkom a”, katere pravilnosti v primeru, da LTS vsebuje zagatna stanja, sformulo ACTL ne moremo preveriti [56]. S formulo ACTLW to lastnost izrazimo kotEEG {a ∨ τ} EEX{true}.

28 2 Temporalne logike CTL, ACTL in ACTLW

Izrek 2.13 pove, da vseh formul ACTLW ne moremo ekvivalentno izraziti z operatorjiACTL, ne pove pa natancno, katere formule lahko izrazimo, niti kako jih izrazimo. Zato vnadaljevanju definiramo preslikavo actlw2actl, ki tiste formule ACTLW, za katere vemo,da se dajo ekvivalentno zapisati s formulami ACTL, preslika v formule ACTL. Ker jeslovnica za formulo dogodka pri ACTLW in ACTL razlicna (pri ACTLW lahko formuladogodka neposredno vkljucuje notranji dogodek τ ), je potrebno poskrbeti, da po preslikavidobimo veljavno formulo ACTL. V ta namen vpeljemo normalno obliko formule dogodka.

Definicija 2.12 (Normalna oblika formule dogodka)Formula dogodka χ je zapisana v normalni obliki, ce je zapisana bodisi kot χ = χ′ bodisikot χ = χ′ ∨ τ , kjer je χ′ formula dogodka, za katero velja τ 6|= χ′.

Izrek 2.14 (Obstoj normalne oblike formule dogodka)Vsako formulo dogodka, ki je v skladu s pravili skladnje formul dogodka pri ACTLW,lahko zapisemo v normalni obliki.

Dokaz. Ce τ 6|= χ, potem je χ zapisana v normalni obliki. Ce τ |= χ, pa jo lahko zapisemokot (χ ∧ ¬τ) ∨ τ , pri cemer velja τ 6|= (χ ∧ ¬τ). Torej izrek velja tudi v tem primeru.

Iz izreka 2.14 sledi, da ce pri obravnavi formule ACTLW, ki vsebuje formulo dogodkaχ, obravnavamo vse primere, ko je χ=χ′ in ko je χ=χ′∨τ , pri cemer velja τ 6|= χ′, potemzajamemo vse formule ACTLW, ki se med seboj razlikujejo le v formuli dogodka χ.

Izrek 2.15 (Skladnost formule dogodka s pravili skladnje formul dogodka pri ACTL)Naj bo χ formula dogodka, ki je v skladu s pravili skladnje formul dogodka pri ACTLW.Ce τ 6|= χ, potem lahko χ zapisemo z ekvivalentno formulo dogodka, ki je v skladu spravili skladnje formul dogodka pri ACTL.

Dokaz. Tvorimo formulo χ′, ki je disjunkcija vseh dogodkov α ∈ Actτ , za katere veljaα |= χ. Ker ∀α ∈ Actτ . α |= χ ⇐⇒ α |= χ′, sta χ in χ′ ekvivalentni. Ker τ 6|= χ, so v χ′

le dogodki iz mnozice Act, torej je χ′ zapisana v skladu s pravili skladnje formul dogodkapri ACTL.

Izrek 2.15 zagotavlja, da formulo dogodka χ, ki je del formule ACTLW in za katerovelja τ 6|= χ, lahko uporabimo tudi v formulah ACTL.

2.5 Preslikave med logikami CTL, ACTL in ACTLW 29

Definicija 2.13 (Preslikava actlw2actl)Preslikava actlw2actl: ACTLW−→ACTL, ki preslikuje formule ACTLW v formule ACTL,je ob predpostavkah, da velja τ 6|=χ ter τ 6|=χ′, induktivno podana z naslednjimi pravili:

actlw2actl (true) = trueactlw2actl (¬ϕ) = ¬ actlw2actl (ϕ)

actlw2actl (ϕ ∧ ϕ′) = actlw2actl (ϕ) ∧ actlw2actl (ϕ′)

actlw2actl (EE[{false} false U {χ′} ϕ′]) = ∃Xχ′ actlw2actl (ϕ′)

actlw2actl (EE[{false} false U {χ′ ∨ τ} ϕ′]) = ∃Xχ′∨τ actlw2actl (ϕ′)

actlw2actl (EE[{χ} ϕ U {χ′ ∨ τ} true]) =

(∃Xχ′∨τ true) ∨ (∃Xχ ∃(actlw2actl (ϕ) χU (actlw2actl (ϕ) ∧ ∃Xχ′∨τ true)))actlw2actl (EE[{χ ∨ τ} ϕ U {χ′} ϕ′]) =

(∃Xχ′ actlw2actl (ϕ′)) ∨ (∃Xχ∨τ ∃(actlw2actl (ϕ) χUχ′ actlw2actl (ϕ′)))

actlw2actl (EE[{χ ∨ τ} ϕ U {χ′ ∨ τ} ϕ′]) =

(∃Xχ′∨τ actlw2actl (ϕ′)) ∨

(∃Xχ∨τ ∃(actlw2actl (ϕ) χU (actlw2actl (ϕ) ∧ ∃Xχ′∨τ actlw2actl (ϕ′))))

actlw2actl (AA[{false} false U {χ′} ϕ′]) = ∀Xχ′ actlw2actl (ϕ′)

actlw2actl (AA[{false} false U {χ′ ∨ τ} ϕ′]) = ∀Xχ′∨τ actlw2actl (ϕ′)

actlw2actl (AA[{χ ∨ τ} true U {χ′} ϕ′]) = ∀(true χUχ′ actlw2actl (ϕ′))

actlw2actl (AA[{χ ∨ τ} true U {χ ∨ τ} ϕ′]) = ∀Xχ∨τ ∀(true χU actlw2actl (ϕ′))

actlw2actl (EE[{false} false W {χ′} ϕ′]) = ∃Xχ′ actlw2actl (ϕ′)

actlw2actl (EE[{false} false W {χ′ ∨ τ} ϕ′]) = ∃Xχ′∨τ actlw2actl (ϕ′)

actlw2actl (EE[{χ ∨ τ} true W {false} false]) = ¬∀(true trueU¬χ true)actlw2actl (EE[{true} ϕ W {false} false]) = ¬∀X ∀(true trueU ¬ϕ)

actlw2actl (AA[{false} false W {χ′} ϕ′]) =

(¬∃X¬χ′∨τ true) ∧ (¬∃X ¬actlw2actl (ϕ′))

actlw2actl (AA[{false} false W {χ′ ∨ τ} ϕ′]) =

(¬∃X¬χ′ true) ∧ (¬∃X ¬actlw2actl (ϕ′))

actlw2actl (AA[{χ} ϕ W {false} false]) =

(¬∃F ∃X¬χ∨τ true) ∧ (¬∃F ∃X ¬actlw2actl (ϕ))

actlw2actl (AA[{χ ∨ τ} ϕ W {false} false]) =

(¬∃F ∃X¬χ true) ∧ (¬∃F ∃X ¬actlw2actl (ϕ))

30 2 Temporalne logike CTL, ACTL in ACTLW

Definicija preslikave actlw2actl posredno zajema tudi formule ACTLW:

• ki so protislovje (npr. formula EE[{χ} ϕ U {false} ϕ′]),

• ki so tavtologija (npr. formula AA[{χ} ϕ W {true} true]),

• ki se dajo trivialno pretvoriti v tako obliko, ki je zajeta v definiciji (npr.EE[{χ} ϕW {false} ϕ′] = EE[{χ} ϕW {χ′} false] = EE[{χ} ϕW {χ′ ∨ τ} false] =EE[{χ} ϕ W {false} false]) in

• ki se dajo s pomocjo ekvivalenc v izreku 2.6 pretvoriti v tako obliko, ki je zajeta vdefiniciji (npr. AA[{χ} true W {true} ϕ′] = ¬EE[{true} ¬ϕ′ U {¬χ} ¬ϕ′]).

Podroben seznam formul ACTLW, ki jih znamo pretvoriti v formule ACTL, je skupajs pravili za pretvorbo podan v dodatku B.

Preslikava actlw2actl ne zajema vseh formul ACTLW. Pretvorba vseh formul ACTLWv formule ACTL ni mozna iz vec vzrokov.

1. Formule ACTL posredno vkljucujejo notranji dogodek τ . Ta problem je razvidennpr. pri formulah oblike EE[{χ} true U {χ′} ϕ′]. Formula ACTL ∃(true χUχ′ ϕ′)

ni ekvivalentna navedeni formuli ACTLW, saj za razliko od nje dovoljuje, da pot do(χ′,ϕ′)-prehoda vsebuje tudi notranje dogodke τ .

2. Operatorji ACTL so nedosledni operatorji. Ta problem je razviden npr. pri formulahoblike AA[{χ ∨ τ} ϕ U {χ′} ϕ′]. Formula ACTL ∀(ϕ χUχ′ ϕ′) ni ekvivalentna na-vedeni formuli ACTLW, saj je pravilna le, ce v zacetnem stanju velja formula ϕ, prinavedeni formuli ACTLW pa veljavnost formule ϕ v zacetnem stanju ni pomembna.

3. ACTLW vsebuje temporalni operator W. Da pomena tega operatorja v ACTL ni mo-goce v celoti izraziti, je npr. razvidno pri formulah oblike EE[{χ∨ τ}ϕW {χ′}ϕ′],ki jih ni mogoce pretvoriti, medtem ko formule oblike EE[{χ∨ τ}ϕU{χ′}ϕ′] lahkopretvorimo v formule ACTL.

Okrajsane formule ACTLW, ki jih ne znamo izraziti z operatorji ACTL, so:

1. EE[{χ} U {χ′}],

2. AA[{χ} U {χ′}], AA[{χ} U {χ′ ∨ τ}] in AA[{χ ∨ τ} U {χ′ ∨ τ}],

3. EE[{χ} W {χ′}] in EE[{χ} W {χ′ ∨ τ}],

4. AA[{χ} W {χ′ ∨ τ}] in AA[{χ ∨ τ} W {χ′ ∨ τ}],

5. AAF{χ ∨ τ} in

6. EEG{χ}.

2.6 Vzorci formul za CTL, ACTL in ACTLW 31

2.6 Vzorci formul za CTL, ACTL in ACTLW

V tem razdelku podajamo vzorce formul za logike CTL, ACTL in ACTLW. Podani vzorciso pravilni ob predpostavki, da je prehajalna relacija v KS oz. v LTS-ju totalna. Za lazjoprimerjavo oznacujemo lastnosti v vseh formulah z enakimi oznakami p, q, r in s. Pri for-mulah CTL so p, q, r in s formule stanja, pri formulah ACTL in ACTLW pa so to formuledogodka. Izraz “p velja” se pri logiki CTL nanasa na obstoj stanja, v katerem velja formulastanja p, pri logikah ACTL in ACTLW pa na obstoj prehoda z dogodkom, ki zadosti for-muli dogodka p. Pri logiki ACTL opazujemo le zunanje dogodke, npr. “v prihodnosti vescas velja p” pomeni, da so v prihodnosti vsi prehodi bodisi prehodi z zunanjim dogodkomp bodisi prehodi z notranjim dogodkom τ . V vzorcih uporabljamo izpeljane operatorje indefinirane okrajsave. Pri logiki CTL uporabljamo nedosledne operatorje, ker so ti v praksibolj uveljavljeni. Za skoraj vse lastnosti obstaja vec vzorcev. Tam, kjer eden od vzorcevne izstopa od ostalih po tem, da je izrazito krajsi oz. razumljivejsi, podajamo vse zanimivevzorce.

Pri podajanju vzorcev je potrebno biti pazljiv, da z opisom v naravnem jeziku podamonatancen pomen formule. Naravni jezik je podvrzen dvoumnostim, se posebej pri poda-janju intervalov. Uporabljeni besedni zvezi do takrat in od takrat pomenita “do vkljucnoprejsnjega stanja/prehoda” oz. “od vkljucno naslednjega stanja/prehoda”. Besedna zvezaod q do r pomeni “od takrat, ko velja p, do takrat, ko prvic za tem velja r”. Formula, kigovori o veljavnosti lastnosti p na podanem intervalu, ne doloca prav nicesar o veljavnostilastnosti p izven tega intervala oz. za primere, kjer tak interval ne obstaja.

V nadaljevanju podajamo:

• vzorce prisotnosti in odsotnosti,

• vzorce za izrazanje obstoja,

• vzorce za izrazanje obstoja prednikov,

• vzorce za izrazanje obstoja odziva in

• vzorce za izrazanje trajanja.

V [29] so posamezne skupine vzorcev razvrstili v dve vecji skupini: vzorce pojavljanjain vzorce urejenosti. Med vzorce pojavljanja pristevajo tiste, ki govorijo o veljavnostidolocene lastnosti v dolocenem intervalu, torej vzorce, ki izrazajo prisotnost, odsotnost inobstoj. Med vzorce urejenosti pristevajo tiste, ki govorijo o medsebojni urejenosti dvehali vec lastnosti v dolocenem intervalu, torej vzorce, ki izrazajo obstoj prednikov in obstojodziva. Vzorci, ki izrazajo trajanje, v tem projektu niso zajeti, glede na pomen pa sodijobolj med vzorce urejenosti.

32 2 Temporalne logike CTL, ACTL in ACTLW

2.6.1 Vzorci prisotnosti in odsotnosti

Lastnost p na danem intervalu ves cas velja oz. nikoli ne velja. Predstavljeni vzorci formulizrazajo prisotnost lastnosti p, vzorce odsotnosti dobimo tako, da p zamenjamo z ¬p.

(Un1) V prihodnosti ves cas velja p:

CTL: AG p

CTL: ¬EF ¬p

ACTLW: AAG {p}

ACTLW: ¬EEF {¬p}

ACTL: ∀G [¬p] falseACTL: ¬∃F <¬p> trueACTL: ¬∃(true trueU¬p true)

(Un2) V prihodnosti, ce q velja, do takrat ves cas velja p:

CTL: AG (¬p =⇒ AX AG ¬q)

CTL: ¬EF (¬p ∧ EX EF q)ACTLW: ¬EEF {¬p} EEF {q}

ACTL: ∀G [¬p] ∀G [q] false

(Un3) V prihodnosti, ce q velja prvic, do takrat ves cas velja p:

CTL: A[(¬p =⇒ AX AG ¬q) W q]

CTL: ¬E[¬q U (¬p ∧ ¬q ∧ EX EF q)]ACTLW: ¬EE[{¬q} U {¬p ∧ ¬q} EEF {q}]

ACTL: ¬∃(true ¬qU¬p∧¬q ∃F <q> true)

(Un4) V prihodnosti, ce q velja, od takrat naprej ves cas velja p:

CTL: AG (q =⇒ AX AG p)

CTL: ¬EF (q ∧ EX EF ¬p)

ACTLW: ¬EEF {q} EEF {¬p}

ACTL: ∀G [q] ∀G [¬p] false

(Un5) V prihodnosti, ce q velja zadnjic, od takrat naprej ves cas velja p:

CTL: AG (q =⇒ (AX AG (¬p =⇒ AX AF q)))CTL: ¬EF (q ∧ (EX EF (¬p ∧ EX EG ¬q)))

ACTLW: ¬EEF {q} EEF {¬p} EEG {¬q}

ACTL: ∀G [q] ∀G [¬p] ∀(true trueUq true)

2.6 Vzorci formul za CTL, ACTL in ACTLW 33

(Un6) V prihodnosti, ce obstaja interval od q do r, na tem intervalu ves cas velja p:

CTL: AG (q =⇒ AX A[(¬p =⇒ AG ¬r) W r])

CTL: ¬EF (q ∧ EX E[¬r U (¬p ∧ ¬r ∧ EF r)])ACTLW: ¬EEF {q} EE[{¬r} U {¬p ∧ ¬r} EEF {r}]

ACTL: ¬∃F <q> ∃(true ¬rU¬p∧¬r ∃F <r> true)

2.6.2 Vzorci za izrazanje obstoja

Lastnost p na danem intervalu vsaj enkrat velja.

(Ex1) V prihodnosti vsaj enkrat velja p:

CTL: AF pCTL: ¬EG ¬p

ACTLW: AAF {p}

ACTLW: ¬EEG {¬p}

ACTL: ∀(true trueUp true)

(Ex2) V prihodnosti, ce q velja, do takrat vsaj enkrat velja p:

CTL: A[¬q W (p ∧ ¬q)]

CTL: ¬E[¬p U q]

ACTLW: AA[{¬q} W {p ∧ ¬q}]

ACTLW: ¬EE[{¬p} U {q}]

ACTL: ¬∃(true ¬pUq true)

(Ex3) V prihodnosti, ce q velja zadnjic, do takrat vsaj enkrat velja p:

CTL: A[(q =⇒ AX AF q) W (p ∧ (q =⇒ AX AF q))]CTL: ¬E[¬p U (q ∧ EX EG ¬q)]

ACTLW: ¬EE[{¬p} U {q} EEG {¬q}]

ACTL: ¬∃(true ¬pUq ¬∀(true trueUq true))

(Ex4) V prihodnosti, ce q velja, od takrat naprej vsaj enkrat velja p:

CTL: AG (q =⇒ AX AF p)CTL: ¬EF (q ∧ EX EG ¬p)

ACTLW: ¬EEF {q} EEG {¬p}

ACTL: ∀G [q] ¬∀(true trueUp true)

34 2 Temporalne logike CTL, ACTL in ACTLW

(Ex5) V prihodnosti, ce q velja prvic, od takrat naprej vsaj enkrat velja p:

CTL: A[¬q W (q ∧ AX AF p)]CTL: ¬E[¬q U (q ∧ EX EG ¬p)]

ACTLW: AA[{¬q} W {q} AAF {p}]

ACTLW: ¬EE[{¬q} U {q} EEG {¬p}]

ACTL: ¬∃(true ¬qUq ¬∀(true trueUp true))

(Ex6) V prihodnosti, ce obstaja interval od q do r, na tem intervalu vsaj enkrat velja p:

CTL: AG (q =⇒ AX A[¬r W (p ∧ ¬r)])

CTL: ¬EF (q ∧ EX E[¬p U r])

ACTLW: ¬EEF {q} EE[{¬p} U {r}]

ACTL: ¬∃F <q> ∃(true ¬pUr true)

2.6.3 Vzorci za izrazanje obstoja prednikov

Veljavnost lastnosti p kaze na veljavnost lastnosti s, in sicer tako, da vedno ko velja lastnostp, do takrat vsaj enkrat velja lastnost s. Pravimo, da je lastnost s prednik lastnosti p.

(Pr1) V prihodnosti ima vsak p prednika s:

CTL: A[¬p W (¬p ∧ s)]

CTL: ¬E[¬s U p]

ACTLW: AA[{¬p} W {¬p ∧ s}]

ACTLW: ¬E[{¬s} U {p}]

ACTL: ¬∃(true ¬sUp true)

(Pr2) V prihodnosti, ce q velja, ima do takrat vsak p prednika s:

CTL: A[(p =⇒ AX AG ¬q) W (s ∧ (p =⇒ AX AG ¬q))]

CTL: ¬E[¬s U (p ∧ EX EF q)]ACTLW: ¬EE[{¬s} U {p} EEF {q}]

ACTL: ¬∃(true ¬sUp ∃F <q> true)

(Pr3) V prihodnosti, ce q velja prvic, ima do takrat vsak p prednika s:

CTL: A[(p =⇒ AX AG ¬q) W (q ∨ (s ∧ (p =⇒ AX AG ¬q)))]

CTL: ¬E[(¬q ∧ ¬s) U (p ∧ ¬q ∧ EX EF q)]ACTLW: ¬EE[{¬q ∧ ¬s} U {p} EEF {q}]

ACTL: ¬∃(true ¬q∧¬sUp ∃F <q> true)

2.6 Vzorci formul za CTL, ACTL in ACTLW 35

(Pr4) V prihodnosti, ce q velja, ima od takrat naprej vsak p takega prednika s, ki se tudinahaja od takrat naprej:

CTL: AG (q =⇒ AX A[¬p W (¬p ∧ s)])

CTL: A[¬q W (q ∧ AX A[¬p W (¬p ∧ s)])]

CTL: ¬E[¬q U (q ∧ EX E[¬s U p])]

ACTLW: AA[{¬q} W {q} A[{¬p} W {¬p ∧ s}]]

ACTLW: ¬EE[{¬q} U {q} EE[{¬s} U {p}]]

ACTL: ¬∃(true ¬qUq ∃(true ¬sUp true))

(Pr5) V prihodnosti, ce q velja zadnjic, ima od takrat naprej vsak p takega prednika s, kise tudi nahaja od takrat naprej:

CTL: AG (q =⇒ AX A[(p =⇒ AF q) W (s ∧ (p =⇒ AF q))])CTL: ¬EF (q ∧ EX E[¬s U (p ∧ EG ¬q)])

ACTLW: ¬EEF {q} EE[{¬s} U {p ∧ ¬q} EEG {¬q}]

ACTL: ¬∃F <q> ∃(true ¬sUp∧¬q ¬∀(true trueUq true))

(Pr6) V prihodnosti, ce obstaja interval od q do r, ima na tem intervalu vsak p takegaprednika s, ki se tudi nahaja znotraj intervala:

CTL: AG(q =⇒ AX A[(p =⇒ AX AG ¬r) W (r ∨ (s ∧ (p =⇒ AX AG ¬r)))])

CTL: ¬EF (q ∧ EX E[(¬r ∧ ¬s) U (p ∧ ¬r ∧ EX EF r)])ACTLW: ¬EEF {q} EE[{¬r ∧ ¬s} U {p ∧ ¬r} EEF {r}]

ACTL: ¬∃F <q> ∃(true ¬r∧¬sUp∧¬r ∃F <r> true)

2.6.4 Vzorci za izrazanje obstoja odziva

Veljavnost lastnosti p kaze na veljavnost lastnosti s, in sicer tako, da vedno ko velja lastnostp, od takrat naprej vsaj enkrat velja lastnost s. Pravimo, da je lastnost s odziv lastnosti p.

(Re1) V prihodnosti ima vsak p odziv s:

CTL: AG (p =⇒ AX AF s)CTL: ¬EF (p ∧ EX EG ¬s)

ACTLW: ¬EEF {p} EEG {¬s}

ACTL: ∀G [p] ∀(true trueUs true)

36 2 Temporalne logike CTL, ACTL in ACTLW

(Re2) V prihodnosti, ce q velja, ima do takrat vsak p tak odziv s, ki se tudi nahaja dotakrat:CTL: AG (p =⇒ AX A[¬q W (¬q ∧ s)])

CTL: ¬EF (p ∧ EX E[¬s U q])

ACTLW: ¬EEF {p} EE[{¬s} U {q}]

ACTL: ¬∃F <p> ∃(true ¬sUq true)

(Re3) V prihodnosti, ce q velja prvic, ima do takrat vsak p tak odziv s, ki se tudi nahaja dotakrat:CTL: A[(p =⇒ (q ∨ AX A[¬q W (¬q ∧ s)])) W q]

CTL: ¬E[¬q U (p ∧ ¬q ∧ EX E[¬s U q]) ]

ACTLW: ¬EE[{¬q} U {p ∧ ¬q} EE[{¬s} U {q}] ]

ACTL: ¬∃(true ¬qUp∧¬q ∃(true ¬sUq true))

(Re4) V prihodnosti, ce q velja, ima od takrat naprej vsak p odziv s:CTL: AG (q =⇒ AX AG (p =⇒ AX AF s))CTL: ¬EF (q ∧ EX EF (p ∧ EX EG ¬s))

ACTLW: ¬EEF {q} EEF {p} EEG {¬s}

ACTL: ∀G [q] ∀G [p] ∀(true trueUs true)

(Re5) V prihodnosti, ce q velja zadnjic, ima od takrat naprej vsak p odziv s:CTL: AG (q =⇒ AX AG (p =⇒ AX AF (q ∨ s)))

CTL: ¬EF (q ∧ EX EF (p ∧ EX EG (¬q ∧ ¬s)))

ACTLW: ¬EEF {q} EEF {p} EEG {¬q ∧ ¬s}

ACTL: ∀G [q] ∀G [p] ∀(true trueUq∨s true)

(Re6) V prihodnosti, ce obstaja interval od q do r, ima na tem intervalu vsak p tak odziv s,ki se tudi nahaja znotraj intervala:CTL: AG (q =⇒ AX A[(p =⇒ (r ∨ AX A[¬r W (¬r ∧ s)])) W r])

CTL: ¬EF (q ∧ EX E[¬r U (p ∧ ¬r ∧ EX E[¬s U r])])

ACTLW: ¬EEF {q} EE[{¬r} U {p ∧ ¬r} EE[{¬s} U {r}] ]

ACTL: ¬∃F <q> ∃(true ¬rUp∧¬r ∃(true ¬sUr true))

2.6.5 Vzorci za izrazanje trajanja

Zanima nas, kako dolgo ostanejo veljavne ena ali vec lastnosti oz. kako dolgo je nekalastnost veljavna glede na ostale lastnosti.

Vzorci za izrazanje trajanja ene lastnostiGlede na trajanje lastnosti p locimo dva tipa poti:

2.6 Vzorci formul za CTL, ACTL in ACTLW 37

tip p⊥: p na poti velja, dokler nekoc (lahko ze na zacetku) ne velja;

tip p∞: p na poti velja ves cas.

Za vsako stanje lahko podamo par T=(t1, t2), katerega elementi opisujejo, ali se v temstanju lahko zacne pot tipa p⊥ oz. p∞. Par T imenujemo tip stanja glede na dano lastnost,stanja tipa T pa imenujemo T-stanja. Glede na T locimo stiri razlicne tipe stanj, ki jihoznacimo kot (¬p⊥,¬p∞)-stanje (v njem se ne sme zaceti niti nobena pot tipa p⊥ nitinobena pot tipa p∞), (¬p⊥, p∞)-stanje (v njem se ne sme zaceti nobena pot tipa p⊥, lahkopa se v njem zacnejo poti tipa p∞), (p⊥,¬p∞)-stanje (v njem se lahko zacnejo poti tipap⊥, ne sme se pa v njem zaceti nobena pot tipa p∞) in (p⊥, p∞)-stanje (v njem se lahkozacnejo tako poti tipa p⊥ kot tudi poti tipa p∞). Vzorce, s katerimi preverimo tip danegastanja glede na dano lastnost, imenujemo vzorci trajanja ene lastnosti.

(T0) Stanje je (¬p⊥,¬p∞)-stanje:

CTL: falseACTLW: falseACTL: false

(T1) Stanje je (¬p⊥, p∞)-stanje:

CTL: AG p

ACTLW: AAG {p}

ACTL: ¬∃(true trueU¬p true)

(T2) Stanje je (p⊥,¬p∞)-stanje:

CTL: AF ¬p

ACTLW: AAF {¬p}

ACTL: ∀(true trueUp true)

(T3) Stanje je (p⊥, p∞)-stanje:

CTL: trueACTLW: trueACTL: true

Vzorci za izrazanje trajanja dveh lastnostiGlede na trajanje lastnosti p in q locimo stiri tipe poti:

tip p⊥q⊥: p in q na poti veljata, dokler nekoc (lahko ze na zacetku) ne velja niti p niti q.

tip p⊥q: p in q na poti veljata, dokler nekoc (lahko ze na zacetku) p ne velja, q pa velja.

38 2 Temporalne logike CTL, ACTL in ACTLW

tip pq⊥: p in q na poti veljata, dokler nekoc (lahko ze na zacetku) p velja, q pa ne velja.

tip p∞q∞: p in q na poti veljata ves cas.

Za vsako stanje lahko podamo cetvorko TT=(t1, t2, t3, t4), katerega elementi opisujejo,ali se v tem stanju lahko zacne pot tipa p⊥q⊥, p⊥q, pq⊥ oz. p∞q∞. Cetvorko TT imenujemotip stanja glede na dve dani lastnosti, stanja tipa TT pa oznacimo kot TT-stanja. Glede naTT locimo 16 razlicnih tipov stanj, ki jih oznacimo analogno kot pri vzorcih za izrazanjetrajanja ene lastnosti. Vzorce, s katerimi preverimo tip danega stanja glede na dve danilastnosti, imenujemo vzorci trajanja dveh lastnosti.

(TT0) Stanje je (¬p⊥q⊥,¬p⊥q,¬pq⊥,¬p∞q∞)-stanje:CTL: falseACTLW: falseACTL: false

(TT1) Stanje je (¬p⊥q⊥,¬p⊥q,¬pq⊥, p∞q∞)-stanje:CTL: AG(p ∧ q)

ACTLW: AAG{p ∧ q}

ACTL: ¬∃(true trueU¬p∨¬q true)

(TT2) Stanje je (¬p⊥q⊥,¬p⊥q, pq⊥,¬p∞q∞)-stanje:

CTL: A[p U (p ∧ ¬q)]

ACTLW: AA[{p} U {p ∧ ¬q}]

ACTL: ∀(true pUp∧¬q true)

(TT3) Stanje je (¬p⊥q⊥,¬p⊥q, pq⊥, p∞q∞)-stanje:CTL: ¬E[q U ¬p]

ACTLW: ¬EE[{q} U {¬p}]

ACTL: ¬∃(true qU¬p true)

(TT4) Stanje je (¬p⊥q⊥, p⊥q,¬pq⊥,¬p∞q∞)-stanje:CTL: A[q U (q ∧ ¬p)]

ACTLW: AA[{q} U {q ∧ ¬p}]

ACTL: ∀(true qUq∧¬p true)

(TT5) Stanje je (¬p⊥q⊥, p⊥q,¬pq⊥, p∞q∞)-stanje:CTL: ¬E[p U ¬q]

ACTLW: ¬EE[{p} U {¬q}]

ACTL: ¬∃(true pU¬q true)

2.6 Vzorci formul za CTL, ACTL in ACTLW 39

(TT6) Stanje je (¬p⊥q⊥, p⊥q, pq⊥,¬p∞q∞)-stanje:

CTL: A[(p ∧ q) U ((p ∧ ¬q) ∨ (¬p ∧ q))]

ACTLW: AA[{p ∧ q} U {(p ∧ ¬q) ∨ (¬p ∧ q)}]

ACTL: ∀(true p∧qU(p∧¬q)∨(¬p∧q) true)

(TT7) Stanje je (¬p⊥q⊥, p⊥q, pq⊥, p∞q∞)-stanje:

CTL: ¬E[(p ∧ q) U (¬p ∧ ¬q)]

ACTLW: ¬EE[{p ∧ q} U {¬p ∧ ¬q}]

ACTL: ¬∃(true p∧qU¬p∧¬q true)

(TT8) Stanje je (p⊥q⊥,¬p⊥q,¬pq⊥,¬p∞q∞)-stanje:

CTL: A[(p ∧ q) U (¬p ∧ ¬q)]

ACTLW: AA[{p ∧ q} U {¬p ∧ ¬q}]

ACTL: ∀(true p∧qU¬p∧¬q true)

(TT9) Stanje je (p⊥q⊥,¬p⊥q,¬pq⊥, p∞q∞)-stanje:

CTL: ¬E[(p ∧ q) U ((p ∧ ¬q) ∨ (¬p ∧ q))]

ACTLW: ¬EE[{p ∧ q} U {(p ∧ ¬q) ∨ (¬p ∧ q)}]

ACTL: ¬∃(true p∧qU(p∧¬q)∨(¬p∧q) true)

(TT10) Stanje je (p⊥q⊥,¬p⊥q, pq⊥,¬p∞q∞)-stanje:

CTL: A[p U ¬q]

ACTLW: AA[{p} U {¬q}]

ACTL: ∀(true pU¬q true)

(TT11) Stanje je (p⊥q⊥,¬p⊥q, pq⊥, p∞q∞)-stanje:

CTL: ¬E[q U (q ∧ ¬p)]

ACTLW: ¬EE[{q} U {q ∧ ¬p}]

ACTL: ¬∃(true qUq∧¬p true)

(TT12) Stanje je (p⊥q⊥, p⊥q,¬pq⊥,¬p∞q∞)-stanje:

CTL: A[q U ¬p]

ACTLW: AA[{q} U {¬p}]

ACTL: ∀(true qU¬p true)

(TT13) Stanje je (p⊥q⊥, p⊥q,¬pq⊥, p∞q∞)-stanje:

CTL: ¬E[p U (p ∧ ¬q)]

ACTLW: ¬EE[{p} U {p ∧ ¬q}]

ACTL: ¬∃(true pUp∧¬q true)

40 2 Temporalne logike CTL, ACTL in ACTLW

(TT14) Stanje je (p⊥q⊥, p⊥q, pq⊥,¬p∞q∞)-stanje:CTL: AF (¬p ∨ ¬q)

ACTLW: AAF {¬p ∨ ¬q}

ACTL: ∀(true trueU¬p∨¬q true)

(TT15) Stanje je (p⊥q⊥, p⊥q, pq⊥, p∞q∞)-stanje:CTL: trueACTLW: trueACTL: true

2.6.6 Preizkus vzorcev formul ACTLW in ACTL

Tvorjenje vzorcev zahteva precejsen miselni napor, se tezje pa je dokazati njihovo pra-vilnost. Dokazovanja pravilnosti se nismo lotili, smo pa vzorce za ACTLW in ACTL zorodjem EST preizkusili na majhnem LTS-ju na sliki 2.6 in dobili pricakovane rezultate.Pri preizkusu nas je zanimala predvsem pravilnost vzorcev ACTLW, zato LTS ne vsebujenotranjih dogodkov τ .

xq xr xp

xpxp

xs xs xsxq

xp

Slika 2.6: LTS za preizkus vzorcev formul ACTLW in ACTL

Izvedli smo vec testov, pri vsakem od njih pa smo preizkusili vse vzorce razen vzorcevtrajanja. V vseh testih je veljalo: xq |= q, xp 6|= q, xr 6|= q, xs 6|= q, xr |= r, xp 6|= r, xq 6|= r,xs 6|=r, xs |=s, xp 6|=s, xq 6|=s in xr 6|=s. Posamezni testi se med seboj razlikujejo glede nato, kje velja formula p. Preizkusili smo stiri moznosti:

• xp 6|=p, xq 6|=p, xr 6|=p in xs 6|=p;

• xp |=p, xq 6|=p, xr 6|=p in xs 6|=p;

• xp |=p, xq 6|=p, xr 6|=p in xs |=p;

• xp |=p, xq |=p, xr |=p in xs |=p;

Rezultati preizkusa vzorcev so zbrani v tabeli na sliki 2.7. Pri vseh preizkusanih vzorcihsmo dobili rezultate, skladne z opisom njihovega pomena v naravnem jeziku. Za tistevzorce, za katere je podanih vec razlicnih formul, smo preizkusili vse in njihova enakostse je v vseh primerih potrdila.

2.6 Vzorci formul za CTL, ACTL in ACTLW 41

TEST 1xp 6|=p,

xq |=q, xq 6|=p,xr |=r, xr 6|=p,xs |=s, xs 6|=p

TEST 2xp |=p,

xq |=q, xq 6|=p,xr |=r, xr 6|=p,xs |=s, xs 6|=p

TEST 3xp |=p,

xq |=q, xq 6|=p,xr |=r, xr 6|=p,xs |=s, xs |=p

TEST 4xp |=p,

xq |=q, xq |=p,xr |=r, xr |=p,xs |=s, xs |=p

Un1 FALSE FALSE FALSE TRUEUn2 FALSE FALSE FALSE TRUEUn3 FALSE FALSE TRUE TRUEUn4 FALSE FALSE FALSE TRUEUn5 FALSE FALSE FALSE TRUEUn6 FALSE FALSE FALSE TRUE

Ex1 FALSE TRUE TRUE TRUEEx2 FALSE FALSE TRUE TRUEEx3 FALSE FALSE TRUE TRUEEx4 FALSE TRUE TRUE TRUEEx5 FALSE TRUE TRUE TRUEEx6 FALSE FALSE TRUE TRUE

Pr1 TRUE TRUE FALSE FALSEPr2 TRUE TRUE FALSE FALSEPr3 TRUE TRUE FALSE FALSEPr4 TRUE TRUE FALSE FALSEPr5 TRUE TRUE FALSE FALSEPr6 TRUE TRUE FALSE FALSE

Re1 TRUE FALSE FALSE FALSERe2 TRUE TRUE FALSE FALSERe3 TRUE TRUE FALSE FALSERe4 TRUE FALSE FALSE FALSERe5 TRUE FALSE FALSE FALSERe6 TRUE TRUE FALSE FALSE

Slika 2.7: Rezultati preizkusa vzorcev formul ACTLW in ACTL

42 2 Temporalne logike CTL, ACTL in ACTLW

2.7 Vpeljava zagatnih stanj v LTS

V definiciji logik ACTL in ACTLW smo zahtevali, da je prehajalna relacija LTS-ja totalna.Nobenega razloga ni, da formul ACTL in ACTLW ne bi mogli ovrednotiti tudi nad LTS-jem, ki vsebuje zagatna stanja. Potrebno je le definirati pomen formul stanja v zagatnemstanju in formul poti na koncnih polnih poteh.

Formule ACTL lahko v zagatnih stanjih LTS-ja ovrednotimo na dva nacina, in sicerlahko to storimo:

• neposredno tako, da definicijo smiselno dopolnimo ali

• posredno tako, da v vseh zagatnih stanjih dodamo zanke z notranjim dogodkom τ .

Definicija 2.14 (Neposredno vrednotenje formul ACTL v zagatnih stanjih)Imejmo LTS M in naj bo sd zagatno stanje v M, σ pa taka koncna polna pot v M, kivsebuje vsaj en prehod. Zadoscenje formule stanja v stanju sd in formule poti na poti σje pri neposrednem vrednotenje formul ACTL v zagatnih stanjih definirano z naslednjimipravili:sd |=M true vedno;sd |=M ¬ϕ ce in samo ce sd 6|=M ϕ;sd |=M ϕ ∨ ϕ′ ce in samo ce sd |=M ϕ ali sd |=M ϕ′;sd |=M ∃ Xχ ϕ nikoli;sd |=M ∀ Xχ ϕ nikoli;sd |=M ∃ Xτ ϕ nikoli;sd |=M ∀ Xτ ϕ nikoli;sd |=M ∃ (ϕ χU ϕ′) ce in samo ce sd |=M ϕ′;sd |=M ∀ (ϕ χU ϕ′) ce in samo ce sd |=M ϕ′;sd |=M ∃ (ϕχUχ′ ϕ′) nikoli;sd |=M ∀ (ϕχUχ′ ϕ′) nikoli;σ |=M Xχ ϕ ce in samo ce σ(1) ∈ D/χ/(π(0)) in σ(1) |=M ϕ;σ |=M Xτ ϕ ce in samo ce σ(1) ∈ D/τ/(π(0)) in σ(1) |=M ϕ;σ |=M ϕ χU ϕ′ ce in samo ce obstaja tak 0≤ i≤ len(σ), da je σ(i) |=M ϕ′ ter

za vse 0 ≤ j ≤ i−1: σ(j) |=M ϕ in σ(j+1) ∈ Dτ/χ/(σ(j));

σ |=M ϕχUχ′ ϕ′ ce in samo ce σ(0) |=Mϕ in obstaja tak 1≤ i≤ len(σ), da jeπ(i) |=Mϕ′, σ(i) ∈ D/χ′/(σ(i−1)) ter za vse 1≤j≤ i−1:σ(j) |=M ϕ in σ(j) ∈ Dτ

/χ/(σ(j−1)).

Ob vpeljavi zagatnih stanj v LTS je potrebno ustrezno dopolniti algoritme za izvedbopreverjanja modela. Ce tega ne moremo oz. ne zelimo, lahko uporabimo posredno vre-dnotenje formul ACTL v zagatnih stanjih, pri katerem namesto algoritmov za preverjanjemodela dopolnimo model. Slabost te resitve je, da imajo formule oblike ∃ Xτ ϕ in ∀ Xτ ϕ

v zagatnem stanju drugacen pomen kot pri neposrednem vrednotenju.

2.7 Vpeljava zagatnih stanj v LTS 43

Definicija 2.15 (Posredno vrednotenje formul ACTL v zagatnih stanjih)Imejmo LTS M in naj bo sd zagatno stanje v M, σ pa taka koncna polna pot v M, kivsebuje vsaj en prehod. Zadoscenje formule stanja v stanju sd in formule poti na poti σje pri posrednem vrednotenju formul ACTL v zagatnih stanjih definirano z naslednjimipravili:sd |=M true vedno;sd |=M ¬ϕ ce in samo ce sd 6|=M ϕ;sd |=M ϕ ∨ ϕ′ ce in samo ce sd |=M ϕ ali sd |=M ϕ′;sd |=M ∃ Xχ ϕ nikoli;sd |=M ∀ Xχ ϕ nikoli;sd |=M ∃ Xτ ϕ ce in samo ce sd |=M ϕ;sd |=M ∀ Xτ ϕ ce in samo ce sd |=M ϕ;sd |=M ∃ (ϕ χU ϕ′) ce in samo ce sd |=M ϕ′;sd |=M ∀ (ϕ χU ϕ′) ce in samo ce sd |=M ϕ′;sd |=M ∃ (ϕχUχ′ ϕ′) nikoli;sd |=M ∀ (ϕχUχ′ ϕ′) nikoli;σ |=M Xχ ϕ ce in samo ce σ(1) ∈ D/χ/(π(0)) in σ(1) |=M ϕ;σ |=M Xτ ϕ ce in samo ce σ(1) ∈ D/τ/(π(0)) in σ(1) |=M ϕ;σ |=M ϕ χU ϕ′ ce in samo ce obstaja tak 0≤ i≤ len(σ), da je σ(i) |=M ϕ′ ter

za vse 0 ≤ j ≤ i−1: σ(j) |=M ϕ in σ(j+1) ∈ Dτ/χ/(σ(j));

σ |=M ϕχUχ′ ϕ′ ce in samo ce σ(0) |=Mϕ in obstaja tak 1≤ i≤ len(σ), da jeπ(i) |=Mϕ′, σ(i) ∈ D/χ′/(σ(i−1)) ter za vse 1≤j≤ i−1:σ(j) |=M ϕ in σ(j) ∈ Dτ

/χ/(σ(j−1)).

Izrek 2.16 (Posredno vrednotenje formul ACTL v zagatnih stanjih)Naj bo ϕ formula ACTL, M′ pa LTS, dobljen iz LTS-ja M tako, da v vsakem zagatnemstanju dodamo zanko z dogodkom τ . Pri posrednem vrednotenju formul ACTL v zagatnihstanjih M |= ϕ velja takrat in samo takrat, ko velja M′ |= ϕ.

Dokaz. Sledi iz definicije posrednega vrednotenja formul ACTL v zagatnih stanjih.

Po vpeljavi zagatnih stanj je smiselno prilagoditi pomen naslednjih dveh okrajsav:

∀X ϕ , ¬∃Xtrue ¬ϕ ∧ ¬∃Xτ ¬ϕ ∧ ∃X ϕ

∀Xχ∨τ ϕ , ¬∃Xtrue ¬ϕ ∧ ¬∃Xτ ¬ϕ ∧ ¬∃X¬χ true ∧ ∃Xχ∨τ ϕ

Primer. Imejmo LTS M = ({p0, p1, p2}, {a}, {(p0, a, p1), (p0, τ, p2)}, p0). Pri neposre-dnem vrednotenju formul ACTL v zagatnih stanjih so pravilne naslednje interpretacije:

M 6|= ∃Xtrue ∃Xτ trueM 6|= ∀Xtrue ∀Xτ true

M |= ∃F ∃Xτ trueM 6|= ∀F ∀Xτ true

M 6|= ∃G ∃Xτ trueM 6|= ∀G ∀Xτ true

44 2 Temporalne logike CTL, ACTL in ACTLW

Pri posrednem vrednotenju formul ACTL v zagatnih stanjih pa velja:

M |= ∃Xtrue ∃Xτ trueM 6|= ∀Xtrue ∀Xτ true

M |= ∃F ∃Xτ trueM |= ∀F ∀Xτ true

M |= ∃G ∃Xτ trueM 6|= ∀G ∀Xτ true

Definicija 2.16 (Vrednotenje formul ACTLW v zagatnih stanjih)Imejmo LTS M in naj bo sd zagatno stanje v M, σ pa taka koncna polna pot v M, kivsebuje vsaj en prehod. Zadoscenje formule stanja v stanju sd in formule poti na poti σ jepri ACTLW definirano z naslednjimi pravili:sd |=M true vedno;sd |=M ¬ϕ ce in samo ce sd 6|=M ϕ;sd |=M ϕ ∨ ϕ′ ce in samo ce sd |=M ϕ ali sd |=M ϕ′;sd |=M EE[{χ} ϕ U {χ′} ϕ′] nikoli;sd |=M AA[{χ} ϕ U {χ′} ϕ′] nikoli;sd |=M EE[{χ} ϕ W {χ′} ϕ′] vedno;sd |=M AA[{χ} ϕ W {χ′} ϕ′] vedno;σ |=M {χ}ϕ U {χ′}ϕ′ ce in samo ce obstaja tak 1≤ i≤ len(σ), da je

σ(i) |=M ϕ′ in σ(i) ∈ D/χ′/(σ(i−1)), ter za vse 1 ≤ j ≤ i−1:σ(j) |=M ϕ in σ(j) ∈ D/χ/(σ(j−1));

σ |=M {χ}ϕ W {χ′}ϕ′ ce in samo ce je σ |=M {χ}ϕ U {χ′}ϕ′ oz. za vse 1≤ i≤ len(σ):σ(i) |=M ϕ in σ(i) ∈ D/χ/(σ(i−1)).

Pri formulah ACTLW notranji dogodek τ nima posebnega pomena, zato posredni nacinvrednotenja formul ACTLW ni smiseln.

Ob uporabi definicije 2.16 ostane pomen operatorjev ACTLW skladen z njihovim osnov-nim pomenom tudi po dopolnitvi logike. Veljavne ostanejo tudi vse ekvivalence medokrajsanimi formulami ACTLW iz izreka 2.8. Pozorni moramo biti le pri interpretacijiformul z operatorjema EEW in AAW, ki po definiciji v zagatnih stanjih vedno veljata.Tako formule AAX {χ}ϕ, EEG {χ}ϕ in AAG {χ}ϕ v zagatnem stanju veljajo za vsak χ(tudi za χ = false) in za vsak ϕ (tudi za ϕ = false). Pravilne so tudi naslednje tri trditve:

• za vsako formulo dogodka χ in za vsako formulo ACTLW ϕ v zagatnem stanju veljaAAX {χ} ϕ, ne pa tudi EEX {χ} ϕ,

• za vsako formulo dogodka χ in za vsako formulo ACTLW ϕ v zagatnem stanju veljaEEG {χ} ϕ, ne pa niti EEX {χ} ϕ niti EEF {χ} ϕ,

• za vsako formulo dogodka χ in za vsako formulo ACTLW ϕ v zagatnem stanju veljaAAX {χ} ϕ in AAG {χ} ϕ, ne pa tudi AAF {χ} ϕ.

2.7 Vpeljava zagatnih stanj v LTS 45

Ob vpeljavi zagatnih stanj je potrebno dopolniti nekatere opredelitve operatorjev ACTLWz izrazi z negibno tocko. Naj bo Sd mnozica vseh zagatnih stanj v LTS-ju M. Z definicijo2.16 so skladne naslednje opredelitve operatorjev ACTLW z izrazi z negibno tocko:

/EEG{χ} ϕ/M = gfp Z . (Φ∃(///χ/M, /ϕ/M//M ∩ //Actτ , Z//M) ∪ Sd)

/EE[{χ}ϕ W {χ′} ϕ′]/M =

gfp Z . (Φ∃(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M) ∪ Sd)

/¬EEG{χ} ϕ/M = lfp Z . (Φ∀(D − (///χ/M, /ϕ/M//M ∩ //Actτ , (S − Z)//M)) − Sd)

/¬EE[{χ}ϕW {χ′} ϕ′]/M =

lfp Z . (Φ∀(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M)) − Sd)

/AAF{χ} ϕ/M = lfp Z . (Φ∀(///χ/M, /ϕ/M//M ∪ //Actτ , Z//M) − Sd)

/AA[{χ}ϕ U {χ′} ϕ′]/M =

lfp Z . (Φ∀(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M) − Sd)

/¬AAF{χ} ϕ/M = gfp Z . (Φ∃(D − (///χ/M, /ϕ/M//M ∪ //Actτ , (S − Z)//M)) ∪ Sd)

/¬AA[{χ}ϕU {χ′} ϕ′]/M =

gfp Z . (Φ∃(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M)) ∪ Sd)

V poglavju 2.5 je podana preslikava actl2actlw, ki omogoca pretvorbo preverjanja mo-dela z ACTL v preverjanje modela z ACTLW. Ce je uporabljeno neposredno vrednotenjeformul ACTL v zagatnih stanjih, bo preslikava actl2actlw pravilna tudi za LTS-je z zagat-nimi stanji, ce jo spremenimo na naslednji nacin:

actl2actlw (∀Xχϕ) = (EEX {true} true) ∧ AAX {χ ∧ ¬τ} actl2actlw (ϕ)

actl2actlw (∀Xτϕ) = (EEX {true} true) ∧ AAX {τ} actl2actlw (ϕ)

Ce je uporabljeno posredno vrednotenje formul ACTL v zagatnih stanjih, pa so v preslikaviactl2actlw potrebne naslednje spremembe:

actl2actlw (∀Xχϕ) = (EEX {true} true) ∧ AAX {χ ∧ ¬τ} actl2actlw (ϕ)

actl2actlw (∃Xτϕ) = (ϕ ∧ AAX {false} false) ∨ EEX {τ} actl2actlw (ϕ)

actl2actlw (∀Xτϕ) = (ϕ ∨ EEX {true} true) ∧ AAX {τ} actl2actlw (ϕ)

V poglavju 2.5 je podana tudi preslikava actlw2actl, ki pretvarja formule ACTLW vekvivalentne formule ACTL. Ce je uporabljeno neposredno vrednotenje formul ACTL vzagatnih stanjih in ce upostevamo prej omenjeno prilagoditev pomena okrajsav ∀X ϕ in

46 2 Temporalne logike CTL, ACTL in ACTLW

∀Xχ∨τ ϕ, potem so za LTS-je z zagatnimi stanji pravilna vsa pravila v definiciji 2.13 razennaslednjih dveh, ki ju je potrebno dopolniti tako, da bosta v zagatnem stanju vedno veljali:

actlw2actl (EE[{false} false W {χ′} ϕ′]) = ∃Xχ′ actlw2actl (ϕ′) ∨ ¬∃X true

actlw2actl (EE[{false} false W {χ′ ∨ τ} ϕ′]) = ∃Xχ′∨τ actlw2actl (ϕ′) ∨ ¬∃X true

V primeru posrednega vrednotenja formul ACTL v zagatnih stanjih se vecina pravil izdefinicije 2.13 ne da prilagoditi tako, da bi imele v zagatnem stanju ekvivalenten pomen,kot ga ima podana formula ACTLW.

V poglavju 2.6 so obravnavani vzorci formul ACTL in ACTWL. Med prvimi stirimiskupinami vzorcev v zagatnih stanjih veljajo vse formule ACTLW razen tistih za vzorecEx1, kar je v skladu s pomenom vzorcev. Pri vzorcih trajanja v zagatnih stanjih veljajotiste formule ACTLW, ki so podane za pravila Ti in TTi, pri katerih je i liho stevilo, ostaleformule pa v zagatnih stanjih ne veljajo. Ne glede na to, ali je uporabljeno neposrednoali posredno vrednotenje formul ACTL v zagatnih stanjih, so vse podane formule ACTLekvivalentne pripadajocim formulam ACTLW tudi v zagatnih stanjih.

Ce LTS lahko vsebuje zagatna stanja, je zelo uporaben dodatni vzorec, s katerim pre-verimo, ali je dano stanje zagatno stanje. Z ACTLW to lahko preverimo. ACTLW dodatnoomogoca, da v LTS-ju z zagatnimi stanji med seboj locimo zagatna in divergentna stanja.

(Deadlocked) Stanje je zagatno:

ACTLW: AAX {false}ACTLW: ¬EEX {true}

(Divergent) Stanje je divergentno:

ACTLW: (EEX {true}) ∧ EEG {τ} EEX {true}

Pri neposrednem vrednotenju formul ACTL v zagatnih stanjih lahko zagatna stanja za-znamo s formulo ACTL ¬∃X true = (¬∃Xtruetrue)∧ (¬∃Xτ true). Pri posrednem vredno-tenju formul ACTL v zagatnih stanjih zagatnih stanj ne moremo zaznati s formulo ACTL.Niti neposredno niti posredno vrednotenje formul ACTL v zagatnih stanjih pa ne omogoca,da bi s formulo ACTL v LTS-ju z zagatnimi stanji locili zagatna in divergentna stanja.

Poglavje 3

Preverjanje modela z ACTLW

3.1 Teoreticne osnove

3.1.1 Preklopna algebra in logicne funkcije

Preklopna algebra je Boolova algebra (B,¬,∧,∨) nad mnozico B = {0, 1}. Elementa 0 in1 imenujemo logicni konstanti. Osnovne operacije v preklopni algebri so logicne operacijenegacija (¬), konjunkcija (∧) in disjunkcija (∨). Negacija je operacija, ki elementu a

priredi nasprotni element ¬a. Za konjunkcijo in disjunkcijo veljajo naslednji aksiomi:

1a) ∀ a, b ∈ B: a ∨ b ∈ B zaprtost1b) ∀ a, b ∈ B: a ∧ b ∈ B

2a) ∀ a, b ∈ B: a ∨ b = b ∨ a komutativnost2b) ∀ a, b ∈ B: a ∧ b = b ∧ a

3a) ∀ a, b, c ∈ B: a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c) distributivnost3b) ∀ a, b, c ∈ B: a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)

4a) ∀ a∈B: a ∨ 0 = a nevtralni element4b) ∀ a∈B: a ∧ 1 = a

5a) ∀ a∈B: a ∨ ¬a = 1 nasprotni element5b) ∀ a∈B: a ∧ ¬a = 0

Konjunkcijo in disjunkcijo vec elementov zapisemo kot:

a1 ∧ a2 ∧ a3 ∧ ... ∧ an =n∧

i=1

ai

a1 ∨ a2 ∨ a3 ∨ ... ∨ an =n∨

i=1

ai

47

48 3 Preverjanje modela z ACTLW

Spremenljivke v preklopni algebri lahko zavzamejo le vrednosti iz B in jih imenujemologicne spremenljivke. Izraze v preklopni algebri imenujemo logicni izrazi. V logicnihizrazih vrstni red operacij dolocimo z oklepaji, privzamemo pa tudi, da ima konjunkcijaprednost pred disjunkcijo. V racunalniskih algoritmih operatorje za negacijo, konjunkcijoin disjukcijo oznacimo z NOT, AND in OR.

Nad mnozico B definiramo n-dimenzionalni prostor Bn. Elementi prostora Bn so vek-torji dolzine n, ki jih oznacujemo s podcrtanimi znaki, npr. x=(x0, x1, ..., xn−1), xi∈B. Vprostoru Bn je 2n razlicnih vektorjev. Preslikavo F : Bn−→B, ki vsakemu vektorju x∈Bn

priredi vrednost w∈B, imenujemo logicna funkcija v prostoru Bn. V prostoru Bn obstaja22n razlicnih logicnih funkcij.

Ce v logicni funkciji F = F (x0, ..., xi, ..., xn−1) spremenljivko xi nadomestimo zlogicno konstanto w, dobimo funkcijski ostanek logicne funkcije F |xi=w. Za funkcijskeostanke velja Shannonova formula:

F = (¬xi ∧ F |xi=0) ∨ (xi ∧ F |xi=1) .

Na osnovi logicnih operacij konjunkcija, disjunkcija in negacija ter izracuna funk-cijskega ostanka logicne fukcije lahko vpeljemo eksistencno (∃) in univerzalnostno (∀)abstrakcijo ter operacijo preimenovanja spremenljivk (→):

∃xi . F = F |xi=0 ∨ F |xi=1

∀xi . F = F |xi=0 ∧ F |xi=1

F |xi→yi= (¬yi ∧ F |xi=0) ∨ (yi ∧ F |xi=1)

Naj bo F (x) = F (x0, x1, ..., xn−1). Za krajsi zapis izrazov uporabljamo naslednje okrajsave:

∃x . F = ∃x0 ∃x1 ... ∃xn−1 . F

∀x . F = ∀x0 ∀x1 ... ∀xn−1 . F

F |x→y = F |x0→y0,x1→y1,...,xn−1→yn−1

3.1.2 Simbolicne metode

Modeli, kot ji obravnavamo v disertaciji, so po definiciji skupki mnozic, operacije nadmodeli pa so zaporedja operacij nad mnozicami. Ustrezna predstavitev mnozic je tako po-memben dejavnik pri izvedbi algoritmov. Pri simbolicnih metodah mnozice predstavimoz logicnimi funkcijami. Taksna predstavitev se v praksi izkaze za dokaj ucinkovito, saj

3.1 Teoreticne osnove 49

omogoca zapis velikih mnozic (ceprav ne vseh) s sorazmerno majhnimi logicnimi funkci-jami. Dobra lastnost simbolicnih metod so tudi relativno kratki in enostavni algoritmi.

Imejmo mnozico S in naj bo X : S −→ Bn injektivna preslikava, ki vsakemu elementumnozice S priredi vektor iz prostora Bn. Karakteristicna funkcija mnozice S je logicnafunkcija ∂XS : Bn −→ B, ki pri dani preslikavi X da vrednost 1 za vse tiste in samo tistevektorje x ∈ Bn, ki so slike elementov iz mnozice S:

∂XS(x) =

{

1 , ∃x ∈ S . X(x) 7→ x

0 , drugace

Ce je preslikava X razvidna iz sobesedila, pisemo ∂ namesto ∂X . Ne glede na izbranopreslikavo X ima prazna mnozica karakteristicno funkcijo ∂X ∅ = 0. Karakteristicnofunkcijo mnozice {a}, ki vsebuje le element a, imenujemo koda elementa a. Med karakte-risticno funkcijo mnozice S in kodami njenih elementov velja zveza:

∂XS =∨

a∈S

∂X{a}

Naj bo U mnozica, za katero velja |U| = 2n, in X bijektivna preslikava U −→ Bn.Potem je ∂X U = 1, za karakteristicne funkcije podmnozic S ⊆ U in T ⊆ U pa velja:

∂X(S ∩ T ) (r) = ∂XS (r) ∧ ∂XT (x),

∂X(S ∪ T ) (r) = ∂XS (r) ∨ ∂XT (r),

∂X(S − T ) (r) = ∂XS (r) ∧ ¬∂XT (r),

∂X(¬S) (r) = ∂X(U − S) (r) = ¬∂XS (r),

∂X(S × T ) (r, s) = ∂XS(r) ∧ ∂XT (s) .

Uspesnost simbolicnih metod je v veliki meri odvisna od zgoscene in ucinkovite pred-stavitve logicnih funkcij v racunalniku. Na tem podrocju so se uveljavili binarni odlocitvenigrafi (BDD-ji), s katerimi logicne funkcije predstavimo v obliki aciklicnega usmerjenegabinarnega grafa, logicne operacije pa se izvedejo kot operacije nad grafi. Operacije, kot sonpr. eksistencna in univerzalnostna abstrakcija ter preimenovanje spremenljivk, se izvedejokot ena operacija, izvedba torej neposredno ne sledi matematicni definiciji teh operacij.Shematsko je uporaba simbolicnih metod prikazana na sliki 3.1.

50 3 Preverjanje modela z ACTLW

operacije nadBDD-ji

operacije nadmodelom

operacije nad=⇒ =⇒

x

y

τ

xy

x

¬a0 ∧ a1 ∧ ¬r0 ∧ ¬r1 ∧ s0 ∧ ¬s1

∨¬a0 ∧ a1 ∧ ¬r0 ∧ r1 ∧ s0 ∧ ¬s1

∨a0 ∧ ¬a1 ∧ r0 ∧ ¬r1 ∧ s0 ∧ ¬s1

∨a0 ∧ ¬a1 ∧ r0 ∧ ¬r1 ∧ s0 ∧ s1

∨a0 ∧ a1 ∧ r0 ∧ r1 ∧ s0 ∧ s1

∨...

logicnimi funkcijami

... ... 1 0

0

∨a0 ∧ ¬a1 ∧ ¬r0 ∧ r1 ∧ s0 ∧ s1

r1r0

a1 a1

a0

Slika 3.1: Shematski prikaz uporabe simbolicnih metod

3.1.3 Preverjanje modela

Ugotavljanje, ali dana struktura zadosti dano temporalno formulo oz. je njen model, ime-nujemo preverjanje modela. Kdaj dana struktura zadosti dano temporalno formulo, jeodvisno od narave temporalne logike. Preverjanje modela je uveljavljena metoda formalneverifikacije sistemov, s katero lahko v nasprotju z dokazovanjem izrekov popolnoma avto-maticno dokazujemo lastnosti koncnih sistemov.

Pri logikah, katerih formule so formule poti (npr. LTL), definiramo, da struktura za-dovolji formulo, ce nobena izvajalna pot, ki se zacne v zacetnem stanju strukture, ni vnasprotju s podano formulo. Uveljavljena metoda za preverjanje modela je v tem primerutaka, da zgradimo najvecjo strukturo, ki zadosti negacijo dane temporalne formule in natopreverimo presek tvorjene strukture z dano strukturo. Ce presek ni prazen, potem v danistrukturi obstaja izvajalna pot, ki je v nasprotju s formulo. Kompleksnost tega algoritma jelinearna glede na produkt stevila stanj v dani strukturi in stevila stanj v strukturi, ki zado-volji negacijo dane formule. Stevilo stanj strukture, ki zadovolji negacijo dane formule, paje v najslabsem primeru eksponentno glede na stevilo podformul v dani formuli.

Pri logikah, katerih formule so formule stanja (npr. CTL), definiramo, da struktura za-dovolji formulo, ce je zacetno stanje strukture v skladu s formulo oz. ce so vsa stanja vstrukturi v skladu s formulo. Preverjanje modela lahko v tem primeru izvedemo tako, dasistematicno ovrednotimo stanja strukture glede na podformule. V najslabsem primeru mo-ramo vsako stanje strukture ovrednotiti glede na vsako podformulo. Kompleksnost takegaalgoritma je linearna glede na produkt stevila stanj v dani strukturi in stevila podformul vdani formuli.

3.2 Simbolicno preverjanje modela z ACTLW 51

Pri izvedbi preverjanja modela za formule stanja sta mozna dva pristopa.

• V vsakem stanju vodimo evidenco o tem, katere podformule v njem veljajo. Vode-nje evidence o veljavnih podformulah imenujemo oznacevanje stanj. Ta pristop jeznacilen za nastevalne metode, ki prostor stanj preiskujejo eksplicitno.

• Za vsako podformulo vodimo evidenco o tem, v katerih stanjih velja. Vodenje to-vrstne evidence imenujemo oznacevanje podformul. Ta pristop se uporablja v kom-binaciji s simbolicnimi metodami, s pomocjo katerih lahko ucinkovito predstavimomnozice stanj.

Znacilnost oznacevanja stanj je v tem, da omogoca lokalno preverjanje modela, pri ka-terem vsako podformulo ovrednotimo le v tistih stanjih, v katerih je to potrebno. Moznaje izvedba algoritmov z iskanjem v globino ali z iskanjem v sirino. Obstaja tudi moznost,da preverjanje modela izvedemo, ne da bi poznali celoten model oz. lahko model glede napotrebe preverjanja modelov sproti gradimo in dopolnjujemo. To imenujemo preverjanjemodela po metodi “on-the-fly”. Najpomembnejsa znacilnost oznacevanja podformul je vtem, da omogoca ucinkovito izvedbo globalnega preverjanja modela z iskanjem v sirino.Ob uporabi simbolicnih metod pri tem pristopu prostora stanj ni potrebno eksplicitno pre-iskovati, kar v v splosnem omogoca obdelavo mnogo vecjih struktur.

3.2 Simbolicno preverjanje modela z ACTLW

Formule ACTLW so formule stanja. V disertaciji se osredotocimo na globalno preverjanjemodela z ACTLW s simbolicnimi metodami. Vsi algoritmi delujejo nad koncnimi LTS-jiin temeljijo na racunanju negibne tocke. Podobni so algoritmom za preverjanje modela sCTL iz [13].

Definicija 3.1 (Preverjanje modela z ACTLW)LTS M = (S,Act,D, s0) je model formule ACTLW ϕ, ce in samo ce s0 |=M ϕ.

Definicija 3.2 (Kodiran LTS)Koncni LTS M = (S,Act,D, s0) kodiramo tako, da ga razsirimo v sesterko X(M) =(S, Act, D, s0, XS, XAct), kjer je XS injektivna preslikava, ki vsakemu stanju p ∈ S

priredi vektorXS(p),XAct pa je injektivna preslikava, ki dogodku τ priredi vektorXAct(τ),vsakemu dogodku α ∈ Act pa priredi vektor XAct(α) 6= XAct(τ).

52 3 Preverjanje modela z ACTLW

Preslikavi XS in XAct priredita vsakemu stanju in dogodku vektor iz prostorov, katerihdimenziji sta nS ≥ dlog2(|S|)e in nAct ≥ dlog2(|Act|+1)e. Dimenzije so navzdol omejenezaradi injektivnosti preslikav. Vektorje, ki so slike dogodkov, zapisujemo z logicnimi spre-menljivkami a0, a1, a2, ..., torej karakteristicno funkcijo mnozice dogodkov A′ ⊆ Actτ

zapisemo kot logicno funkcijo ∂A′ = ∂A′(a). Vektorje, ki so slike stanj, zapisujemo sspremenljivkami r0, r1, r2, ... oz. s0, s1, s2, ..., torej karakteristicno funkcijo mnozice stanjS ′ ⊆ S zapisemo kot logicno funkcijo ∂S ′ = ∂S ′(r) oz. ∂S ′ = ∂S ′(s). Prehajalna relacijaD je podmnozica kartezicnega produktu S×Actτ ×S, torej njeno karakteristicno funkcijopa zapisemo kot logicno funkcijo ∂D = ∂D(r, a, s). Z ∂χ(a) oznacimo karakteristicnofunkcijo mnozice dogodkov α ∈ Actτ , za katere velja α |= χ, z ∂ϕ(r) pa oznacimo karak-teristicno funkcijo mnozice stanj p ∈ S, za katere velja p |= ϕ.

Izrazi z negibno tocko, ki sluzijo kot podlaga za algoritme, vsebujejo logicne opera-cije in tudi dve posebni funkciji Φ∃ in Φ∀. Algoritma za navedeni funkciji poimenujemoEEX in AAX. Njuna parametra sta karakteristicni funkciji za D in T , njun rezultat pa jekarakteristicna funkcija mnozice stanj Φ∃(T ) oz. Φ∀(T ):

EEX(∂D(r, a, s), ∂T (r, a, s)) = ∃a ∃s . (∂D(r, a, s) ∧ ∂T (r, a, s))

AAX(∂D(r, a, s), ∂T (r, a, s)) = ∀a ∀s . (∂D(r, a, s) =⇒ ∂T (r, a, s))

Funkciji Φ∃ in Φ∀ lahko izracunamo tudi, ce funkcija ∂T ni podana v celoti. V algorit-mih namesto funkcije ∂T uporabljamo mnogo manjso funkcijo T ′(a, r), za katero velja∂T (r, a, s) = ∂D(r, a, s) ∧ T ′(a, r)r→s in ki jo izracunamo enostavneje in ucinkoviteje.Funkcijo T ′ uporabimo na naslednji nacin:

EEX(∂D(r, a, s), T ′(a, r)) = ∃a ∃s . (∂D(r, a, s) ∧ T ′(a, r)r→s)

AAX(∂D(r, a, s), T ′(a, r)) = ∀a ∀s . (∂D(r, a, s) =⇒ T ′(a, r)r→s)

Vlogo algoritmov EEX in AAX lahko ponazorimo z naslednjim primerom. Naj bosta/EEX[{χ} ϕ]/M in /AAX[{χ} ϕ]/M mnozici stanj, v katerih velja formula EEX[{χ} ϕ]

oz. AAX[{χ} ϕ]. Njuno karakteristicno funkcijo izracunamo z uporabo algoritmov EEXin AAX na naslednji nacin:

∂/EEX[{χ} ϕ]/M = EEX(∂D, ∂χ ∧ ∂ϕ)

∂/AAX[{χ} ϕ]/M = AAX(∂D, ∂χ ∧ ∂ϕ)

3.3 Izvedba z operatorji EEU, EEW, AAU in AAW 53

3.3 Izvedba z operatorji EEU, EEW, AAU in AAW

Izvedba preverjanja modela z ACTLW je skupek procedur, ki lahko razresijo vse opera-torje ACTLW. Omejimo se lahko na operatorje iz ene od zadostnih mnozic operatorjevza ACTLW. Osnovno zadostno mnozico operatorjev za ACTLW, ki izhaja neposredno izdefinicije logike, tvorijo operatorji EEU, EEW, AAU in AAW. Razresimo jih s pomocjoizrazov z negibno tocko, predstavljenih v razdelku 2.4.

3.3.1 Razresevanje operatorja EEU

Mnozico stanj, v katerih velja formula EE[{χ}ϕ U {χ′} ϕ′], izracunamo kot:

/EE[{χ}ϕ U {χ′} ϕ′]/M = lfp Z . Φ∃(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

Neposredno iz podane formule sledi algoritem na sliki 3.2.

Resolve EEU ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){Z = 0;last = 1;while (Z != last) {last = Z;Z = EEX (∂D, OR (AND (∂χ′, ∂ϕ′), AND (∂χ, ∂ϕ, Z)));Z = OR (last, Z);

}

return Z;}

Slika 3.2: Osnovni algoritem za razresevanje operatorja EEU

Algoritem za razresevanje operatorja EEU lahko izboljsamo, ce izraz z negibno tockonekoliko preoblikujemo:

lfp Z . Φ∃(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M) =

lfp Z . ( Φ∃(///χ′/M, /ϕ′/M//M) ∪ Φ∃(///χ/M, /ϕ/M ∩ Z//M) )

Clena, ki se v iteracijah ne spreminjata, lahko izpostavimo, iteracijo pa poenostavimo.Dobimo izboljsan algoritem za razresevanje operatorja EEU, ki je na sliki 3.3.

54 3 Preverjanje modela z ACTLW

Resolve EEU ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){funct = AND (∂χ, ∂ϕ);Z = EEX (∂D, AND (∂χ′, ∂ϕ′));last = 1;while (Z != last) {last = Z;Z = EEX (∂D, AND (funct, Z));Z = OR (last, Z);

}

return Z;}

Slika 3.3: Ucinkovit algoritem za razresevanje operatorja EEU

3.3.2 Razresevanje operatorja EEW

Mnozico stanj, v katerih velja formula EE[{χ}ϕ W {χ′} ϕ′], izracunamo kot:

/EE[{χ}ϕ W {χ′} ϕ′]/M = gfp Z . Φ∃(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

Iz podane formule sledi algoritem na sliki 3.4.

Resolve EEW ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){Z = 1;last = 0;while (Z != last) {last = Z;Z = EEX (∂D, OR (AND (∂χ′, ∂ϕ′), AND (∂χ, ∂ϕ, Z)));Z = AND (last, Z);

}

return Z;}

Slika 3.4: Osnovni algoritem za razresevanje operatorja EEW

Algoritem izboljsamo tako, da izpostavimo izracun clenov, ki se v iteracijah ne spremi-njata. Dodatno velja, da je monotonost izracuna najvecje negibne tocke zagotovljena,cetudi v iteraciji izpustimo zadnjo operacijo AND. Dobimo algoritem na sliki 3.5.

3.3 Izvedba z operatorji EEU, EEW, AAU in AAW 55

Resolve EEW ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){funct1 = AND (∂χ′, ∂ϕ′);funct2 = AND (∂χ, ∂ϕ);Z = 1;last = 0;while (Z != last) {last = Z;Z = EEX (∂D, OR (funct1, AND (funct2, Z)));

}

return Z;}

Slika 3.5: Ucinkovit algoritem za razresevanje operatorja EEW

3.3.3 Razresevanje operatorja AAU

Mnozico stanj, v katerih velja formula AA[{χ}ϕU {χ′} ϕ′], izracunamo kot:

/AA[{χ}ϕ U {χ′} ϕ′]/M = lfp Z . Φ∀(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

Algoritem za razresevanje operatorja AAU je na sliki 3.6. Kot je razvidno ze iz izrazovz negibno tocko, je v osnovi algoritem skorajda enak algoritmu za razresevanje operatorjaEEU.

Resolve AAU ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){Z = 0;last = 1;while (Z != last) {last = Z;Z = AAX (∂D, OR (AND (∂χ′, ∂ϕ′), AND (∂χ, ∂ϕ, Z)));Z = OR(last, Z);

}

return Z;}

Slika 3.6: Osnovni algoritem za razresevanje operatorja AAU

V algoritmu lahko izpostavimo izracun clenov, ki se v iteracijah ne spreminjata. Ker vizrazu nastopa operacija AAX, se iteracija ne da bistveno poenostaviti.

56 3 Preverjanje modela z ACTLW

3.3.4 Razresevanje operatorja AAW

Mnozico stanj, v katerih velja formula AA[{χ}ϕ W {χ′} ϕ′], izracunamo kot:

/AA[{χ}ϕ W {χ′} ϕ′]/M = gfp Z . Φ∀(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M)

Algoritem za razresevanje operatorja AAW je na sliki 3.7. Kot je razvidno ze iz izrazovz negibno tocko, je v osnovi algoritem skorajda enak algoritmu za razresevanje operatorjaEEW. Tudi izboljsamo ga lahko na enak nacin kot slednjega, torej izpostavimo izracunclenov, ki se v iteracijah ne spreminjata in izpustimo odvecno zadnjo vrstico iteracije.

Resolve AAW ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){Z = 1;last = 0;while (Z != last) {last = Z;Z = AAX (∂D, OR (AND (∂χ′, ∂ϕ′), AND (∂χ, ∂ϕ, Z)));Z = AND(last, Z);

}

return Z;}

Slika 3.7: Osnovni algoritem za razresevanje operatorja AAW

3.4 Izvedba z operatorji EEU, EEG, AAW in AAF

V splosnem lahko za izvedbo preverjanja modelov izberemo katerokoli zadostno mnozicooperatorjev za ACTLW in katerokoli opredelitev operatorjev ACTLW z negibno tocko.Vendar pa ima predstavljena izvedba preverjanja modelov z ACTLW z operatorji EEU,EEW, AAU in AAW nekatere slabosti.

• Namesto operatorjev EEW in AAU je bolje uporabiti operatorja EEG in AAF.Izracun je enostavnejsi, saj imata operatorja EEG in AAF manj parametrov. Pred-nost operatorjev EEG in AAF je tudi v tem, da so price pri EEG in protiprimeri priAAF vedno polne poti v danem LTS-ju, medtem ko je prica pri EEW in protipri-mer pri AAU lahko ali polna pot ali pa le del polne poti, kar poveca kompleksnostizvedbe.

3.4 Izvedba z operatorji EEU, EEG, AAW in AAF 57

• Izvedba diagnostike ter tvorjenja pric in protiprimerov je najbolj ucinkovita, ce slediiteracijam pri izracunu negibne tocke. Pri operatorjih s kvantifikatorjem poti AA jetaksna resitev mozna le, ce je uporabljen izracun mnozice stanj, v katerih formulaACTLW ne velja.

Za ucinkovito izvedbo preverjanja modelov z ACTLW je tako od dosedaj predstavlje-nih algoritmov edini uporaben le algoritem za razresevanje operatorja EEU. Potrebujemopa se algoritem za razresevanje operatorja EEG ter algoritma za razresevanje negacije ope-ratorjev AAW in AAF.

3.4.1 Razresevanje operatorja EEG

Mnozico stanj, v katerih velja formula EEG{χ} ϕ, izracunamo kot:

/EEG{χ} ϕ/M = gfp Z . Φ∃(///χ/M, /ϕ/M//M ∩ //Actτ , Z//M)

Iz podane formule sledi algoritem na sliki 3.8, ki je podoben, a precej enostavnejsi odalgoritma za razresevanje operatorja EEW.

Resolve EEG ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r) ){funct = AND (∂χ, ∂ϕ);Z = 1;last = 0;while (Z != last) {last = Z;Z = EEX (∂D, AND (funct, Z));

}

return Z;}

Slika 3.8: Ucinkovit algoritem za razresevanje operatorja EEG

3.4.2 Razresevanja negacije operatorja AAW

Mnozico stanj, v katerih ne velja formula AA[{χ}ϕW {χ′} ϕ′], izracunamo kot:

/¬AA[{χ}ϕ W {χ′} ϕ′]/M =

lfp Z . Φ∃(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M))

58 3 Preverjanje modela z ACTLW

Za ucinkovitejso izvedbo ta izraz najprej preoblikujemo:

lfp Z . Φ∃(D − (///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M − Z//M)) =

lfp Z . Φ∃((D − ///χ′/M, /ϕ′/M//M) ∩ (D − ///χ/M, /ϕ/M − Z//M)) =

lfp Z . Φ∃((D − ///χ′/M, /ϕ′/M//M) ∩ ((D − ///χ/M, /ϕ/M//M) ∪ //Actτ , Z//M))

Izpostavimo izracun clenov, ki se v iteracijah ne spreminjata in po podobnem razmislekukot pri razresevanju operatorja EEU poenostavimo iteracijo. Dobimo algoritem na sliki3.9.

Resolve NOT AAW ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){funct = NOT (AND (∂χ′, ∂ϕ′));Z = EEX (∂D, AND (funct, (NOT (AND (∂χ, ∂ϕ)))));last = 1;while (Z != last) {last = Z;Z = EEX (∂D, AND (funct, Z));Z = OR (last, Z);

}

return Z;}

Slika 3.9: Ucinkovit algoritem za razresevanje negacije operatorja AAW

3.4.3 Razresevanje negacije operatorja AAF

Mnozico stanj, v katerih ne velja formula AAF{χ} ϕ, izracunamo kot:

/¬AAF{χ} ϕ/M = gfp Z . Φ∃(D − (///χ/M, /ϕ/M//M ∪ //Actτ , (S − Z)//M))

Za ucinkovitejso izvedbo ta izraz najprej preoblikujemo:

gfp Z . Φ∃(D − (///χ/M, /ϕ/M//M ∪ //Actτ , (S − Z)//M)) =

gfp Z . Φ∃((D − ///χ/M, /ϕ/M//M) ∩ (D − //Actτ , (S − Z)//M)) =

gfp Z . Φ∃((D − ///χ/M, /ϕ/M//M) ∩ //Actτ , Z//M)

Izpostavimo izracun clena, ki se v iteracijah ne spreminja in dobimo algoritem na sliki 3.10

3.5 Vpeljava zagatnih stanj v LTS 59

Resolve NOT AAF ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r) ){funct = NOT (AND (∂χ, ∂ϕ));Z = 1;last = 0;while (Z != last) {last = Z;Z = EEX (∂D, AND (funct, Z));

}

return Z;}

Slika 3.10: Ucinkovit algoritem za razresevanje negacije operatorja AAF

3.5 Vpeljava zagatnih stanj v LTSPo vpeljavi zagatnih stanj v LTS je potrebno dopolniti nekatere izraze s fiksno tocko, zatomoramo dopolniti tudi algoritme.

Naj ima LTS M mnozico zagatih stanj Sd. Potem mnozico stanj, v katerih velja for-mula EE[{χ}ϕ W {χ′} ϕ′], izracunamo kot:

/EE[{χ}ϕ W {χ′} ϕ′]/M = gfp Z . (Φ∃(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M) ∪ Sd)

Ustrezen algoritem za razresevanje operatorja EEW v LTS-jih, ki vsebujejo zagatna stanja,je na sliki 3.11.

Resolve EEW ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){funct1 = AND (∂χ′, ∂ϕ′);funct2 = AND (∂χ, ∂ϕ);Z = 1;last = 0;while (Z != last) {last = Z;Z = OR (∂Sd, EEX (∂D, OR (funct1, AND (funct2, Z))));

}

return Z;}

Slika 3.11: Razresevanje operatorja EEW v LTS-jih, ki vsebujejo zagatna stanja

60 3 Preverjanje modela z ACTLW

Naj ima LTS M mnozico zagatih stanj Sd. Potem mnozico stanj, v katerih velja for-mula AA[{χ}ϕ U {χ′} ϕ′], izracunamo kot:

/AA[{χ}ϕ U {χ′} ϕ′]/M = lfp Z . (Φ∀(///χ′/M, /ϕ′/M//M ∪ ///χ/M, /ϕ/M ∩ Z//M − Sd)

Ustrezen algoritem za razresevanje operatorja AAU v LTS-jih, ki vsebujejo zagatna stanja,je na sliki 3.12.

Resolve AAU ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r), ∂χ′(a), ∂ϕ′(r) ){Z = 0;last = 1;while (Z != last) {last = Z;Z = AND ((NOT ∂Sd), AAX (∂D, OR (AND (∂χ′, ∂ϕ′), AND (∂χ, ∂ϕ, Z))));Z = OR(last, Z);

}

return Z;}

Slika 3.12: Razresevanje operatorja AAU v LTS-jih, ki vsebujejo zagatna stanja

Naj ima LTS M mnozico zagatih stanj Sd. Potem mnozico stanj, v katerih velja for-mula EEG{χ} ϕ, izracunamo kot:

/EEG{χ} ϕ/M = gfp Z . (Φ∃(///χ/M, /ϕ/M//M ∩ //Actτ , Z//M) ∪ Sd)

Ustrezen algoritem za razresevanje operatorja EEG v LTS-jih, ki vsebujejo zagatna stanja,je na sliki 3.13.

Resolve EEG ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r) ){funct = AND (∂χ, ∂ϕ);Z = 1;last = 0;while (Z != last) {last = Z;Z = OR (∂Sd, EEX (∂D, AND (funct, Z)));

}

return Z;}

Slika 3.13: Razresevanje operatorja EEG v LTS-jih, ki vsebujejo zagatna stanja

3.5 Vpeljava zagatnih stanj v LTS 61

Naj ima LTS M mnozico zagatih stanj Sd. Potem mnozico stanj, v katerih ne veljaformula AAF{χ} ϕ, izracunamo kot:

/¬AAF{χ} ϕ/M = gfp Z . (Φ∃(D − (///χ/M, /ϕ/M//M ∪ //Actτ , (S − Z)//M))) ∪ Sd)

Ustrezen algoritem za razresevanje negacije operatorja AAF v LTS-jih, ki vsebujejo zaga-tna stanja, je na sliki 3.14.

Resolve NOT AAF ( ∂D(r, a, s), ∂χ(a), ∂ϕ(r) ){funct = NOT (AND (∂χ, ∂ϕ));Z = 1;last = 0;while (Z != last) {last = Z;Z = OR (∂Sd, EEX (∂D, AND (funct, Z)));

}

return Z;}

Slika 3.14: Razresevanje negacije operatorja AAF, ki vsebujejo zagatna stanja

62 3 Preverjanje modela z ACTLW

Poglavje 4

Diagnostika ter price in protiprimeri priACTLW

4.1 Teoreticne osnove

Metoda preverjanja modela odgovarja na vprasanje, ali ima dan model sistema lastnost,ki je izrazena s temporalno formulo. V osnovi je odgovor na to vprasanje preprost “da”ali “ne”, a v praksi potrebujemo tudi razlago danega odgovora. V nasprotju z mnogimidrugimi metodami, s katerimi preverjamo lastnosti sistemov, lahko metodo preverjanjamodela ucinkovito nadgradimo tako, da poleg odgovora “da” ali “ne” avtomaticno tvoritudi razlago, ki uporabniku sluzi kot neke vrste dokaz.

Glede na obliko lahko tvorimo dve vrsti razlage:

• orodje poisce scenarij, ki neposredno kaze na prisotnost oz. odsotnost dolocenelastnosti — to bomo imenovali diagnostika;

• orodje tvori strukturo, ki potrjuje prisotnost oz. odsotnost dolocene lastnosti — tvor-jeno strukturo, ki potrjuje, da dani model zadovolji dano formulo, imenujemo prica,tvorjeno strukturo, ki potrjuje, da dani model ne zadovolji dane formule, pa imenu-jemo protiprimer.

Diagnostika je zelo nazoren nacin razlage, ker lahko dobljen scenarij uporabimo zavodenje simulacije sistema. Diagnostika nudi uporabniku tudi bolj ali manj podrobna po-jasnila v naravnem jeziku. Na drugi strani so price in protiprimeri pomembni, ker jih lahkoneposredno uporabimo kot vhod v druge metode verifikacije in testiranja sistemov. Ce upo-rabnik med tvorjenjem razlage lahko vpliva na njen potek, govorimo o interaktivni izvedbi,ki je znacilna za diagnostiko, redkeje pa se uporablja pri tvorjenju pric in protiprimerov.

63

64 4 Diagnostika ter price in protiprimeri pri ACTLW

V splosnem obstaja vec razlicnih vzrokov, zakaj dan model zadovolji dano formulooz. je ne zadovolji. Izcrpna razlaga, ki pojasnjuje vse vzroke, je pri vecjih sistemih zelokompleksna. V praksi obicajno zadostuje razlaga, ki pojasnjuje en sam vzrok. Se vec,pogosto zadostuje celo taksna razlaga, v kateri so doloceni deli izpusceni oz. brez pojasnilaoznaceni za veljavne ali neveljavne. Taksna razlaga je nepopolna razlaga, in je nasprotjepopolne razlage.

Poleg diagnostike so najpogostejsi mehanizem, s katerimi orodja za preverjanje modelarazlozijo odgovor, linearne price in protiprimeri. Za temporalne logike razvejanega casavelja, da

• linearne price in linearni protiprimeri ne obstajajo vedno in

• linearne price in protiprimeri v splosnem niso izcrpna razlaga veljavnosti oz. ne-veljavnosti dane formule.

Navedene slabosti linearnih pric in protiprimerov deloma ali v celoti odpravimo z vpe-ljavo nelinearnih oblik pric in protiprimerov. V zvezi z njimi so se izoblikovali kriterijiprakticnosti. Razred nelinearnih pric oz. protiprimerov je prakticen za uporabo, ce pricein protiprimeri iz tega razreda zadovoljijo naslednje kriterije:

• izraznost: price in protiprimeri so dovolj izrazni, da ustrezajo namenu uporabe;

• primernost: price in protiprimeri so dovolj specificni, da ustrezajo namenu uporabe;

• ucinkovitost: obstajajo ucinkoviti algoritmi za tvorjenje in obdelavo prakticnih pricin protiprimerov.

Oblika pric in protiprimerov je najbolj dolocena s kriterijem izraznosti. Primera dvehprakticnih razredov nelinearnih pric in protiprimerov sta razred dreves protiprimerov, de-finiran za CTL v [25], ter razred avtomatov pric in protiprimerov, definiran za ACTL v[65]. Pri drevesih protiprimerov kriterij izraznosti zahteva, da protiprimeri obstajajo zavse formule iz podlogike CTL, v kateri je dovoljen le temporalni operator A (kriterij sev originalnem delu imenuje kriterij polnosti), medtem ko kriterij primernosti zahteva, daso protiprimeri dovolj preprosti, da jih lahko analizirajo inzenirji (kriterij se v originalnemdelu imenuje kriterij razumljivosti). Pri avtomatih pric in protiprimerov, kriterij izraznostizahteva, da vsaka posamezna prica oz. protiprimer predstavlja mnozico koncnih linearnihpric oz. protiprimerov za dan model in dano formulo, kriterij primernosti pa zahteva, da soprice in protiprimeri cim manjsi.

4.2 Diagnosticne poti pri ACTLW 65

4.2 Diagnosticne poti pri ACTLW

Algoritmi za tvorjenje diagnostike ter pric in protiprimerov pri ACTLW temeljijo na tvor-jenju in obdelavi posebnih poti v modelu, ki jih imenujemo diagnosticne poti za operatorjeACTLW in so definirane s pomocjo konstrukcije.

Definicija 4.1 (Diagnosticna pot za operatorje ACTLW)Naj bo M=(S,Act,D, s0) koncni LTS in ϕ formula ACTLW, pri kateri je najbolj zunanjioperator eden od operatorjev ACTLW. Diagnosticna pot dgnpth za formulo ϕ v stanjus ∈ S je koncna pot v M, ki se zacne v stanju s in ima naslednjo obliko:

• ce je ϕ=EE[{χ1}ψ1 U {χ2}ψ2], potem je dgnpth pot, ki je sestavljena iz zaporedjanic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki jim sledi (χ2, ψ2)-prehod;

• ce je ϕ=AA[{χ1}ψ1 U {χ2}ψ2], potem je dgnpth pot, ki je sestavljena iz zaporedjanic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki jim sledi prehod, kini niti (χ1, ψ1)-prehod niti (χ2, ψ2)-prehod ali pa cikel, sestavljen iz takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi;

• ce je ϕ=EE[{χ1}ψ1 W{χ2}ψ2], potem je dgnpth pot, ki je sestavljena iz zaporedjanic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki jim sledi (χ2, ψ2)-prehod ali pa cikel, sestavljen iz takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi;

• ce je ϕ=AA[{χ1}ψ1 W{χ2}ψ2], potem je dgnpth pot, ki je sestavljena iz zaporedjanic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki jim sledi prehod,ki ni niti (χ1, ψ1)-prehod niti (χ2, ψ2)-prehod.

Izrek 4.1 (Obstoj diagnosticnih poti za operatorje ACTLW)Naj bo M = (S,Act,D, s0) koncni LTS in ϕ formula ACTLW, pri kateri je najbolj zu-nanji operator eden od operatorjev ACTLW. Ce je ϕ = EE[{χ1}ψ1 U {χ2} ψ2] ali ϕ =

EE[{χ1}ψ1 W {χ2} ψ2] in velja v stanju s ∈ S, potem v tem stanju obstaja diagnosticnapot za formulo ϕ. Ce je ϕ=AA[{χ1}ψ1 U {χ2} ψ2] ali ϕ=AA[{χ1}ψ1 W {χ2} ψ2] in nevelja v stanju s ∈ S, potem v tem stanju obstaja diagnosticna pot za formulo ϕ.

Dokaz. Sledi iz definicije operatorjev ACTLW.

66 4 Diagnostika ter price in protiprimeri pri ACTLW

Izpeljani operatorji ACTLW imajo naslednje diagnosticne poti:

• ce je ϕ=EEX {χ1} ψ1, potem je dgnpth pot, ki vsebuje en (χ1, ψ1)-prehod;

• ce je ϕ= AAX {χ1} ψ1, potem je dgnpth pot, ki vsebuje en prehod, in sicer tak, kini (χ1, ψ1)-prehod;

• ce je ϕ= EEF {χ1} ψ1, potem je dgnpth pot, ki je sestavljena iz zaporedja nic alivec prehodov, ki niso (χ1, ψ1)-prehodi in ki jim sledi (χ1, ψ1)-prehod;

• ce je ϕ= AAF {χ1} ψ1, potem je dgnpth pot, ki je sestavljena iz zaporedja nic alivec prehodov, ki niso (χ1, ψ1)-prehodi, ki jim sledi cikel, sestavljen iz prehodov, kiniso (χ1, ψ1)-prehodi;

• ce je ϕ= EEG {χ1} ψ1, potem je dgnpth pot, ki je sestavljena iz zaporedja nic alivec (χ1, ψ1)-prehodov, ki jim sledi cikel, sestavljen iz (χ1, ψ1)-prehodov;

• ce je ϕ= AAG {χ1} ψ1, potem je dgnpth pot, ki je sestavljena iz zaporedja nic alivec (χ1, ψ1)-prehodov, ki jim sledi prehod, ki ni (χ1, ψ1)-prehod.

Za dano formulo lahko v danem stanju obstaja vec razlicnih diagnosticnih poti. Krajseso v praksi boljse. V nadaljevanju podajamo algoritme, ki za dan koncni LTS in formuloACTLW tvorijo (v vecini primerov najkrajso) diagnosticno pot.

4.2.1 Tvorjenje diagnosticne poti za operator EEU

Naj bo X(M) kodiran LTS, s0 stanje v X(M) in naj formula ϕ = EE[{χ1}ψ1 U {χ2}ψ2]

velja v stanju s0. Diagnosticna pot za formulo ϕ v stanju s0 vsebuje n takih (χ1, ψ1)-prehodov (si−1, ai, si), 1 ≤ i ≤ n, ki niso (χ2, ψ2)-prehodi in ki jim sledi (χ2, ψ2)-prehod(sn, an+1, sn+1). Tvorimo jo s sledenjem algoritmu za razresevanje operatorja EEU nanaslednji nacin.

Naj bo Zi, i ≥ 1, logicna funkcija, ki je rezultat i-tega koraka iteracije pri razresevanjuoperatorja EEU z algoritmom 3.3. Nadalje naj bo Z0 vrednost Z pred prvo iteracijo inZ i taka mnozica stanj v X(M), da je Zi njena karakteristicna funkcija. Dolzina najkrajsediagnosticne poti je sorazmerna stevilu potrebnih iteracij v algoritmu. To diagnosticno pottvorimo tako, da zacnemo v stanju s0 in sledimo poti, na kateri velja: ∀i∈ [1, n−1] . si ∈

Zn−i \Zn−i−1 in sn∈Z0. Tvorjenje diagnosticne poti za operator EEU je ponazorjeno nasliki 4.1.

4.2 Diagnosticne poti pri ACTLW 67

Zn−1 Z1 Z0

s1s0 sn sn+1

...

Zn

(χ1, ψ1) (χ1, ψ1) (χ1, ψ1) (χ1, ψ1)

¬(χ2, ψ2) ¬(χ2, ψ2)¬(χ2, ψ2) ¬(χ2, ψ2) (χ2, ψ2)

Slika 4.1: Tvorjenje diagnosticne poti za operator EEU

4.2.2 Tvorjenje diagnosticne poti za operator EEG

Naj bo X(M) kodiran LTS, s0 stanje v X(M) in naj formula ϕ = EEG {χ1} ψ1 ve-lja v stanju s0. Diagnosticna pot za formulo ϕ v stanju s0 vsebuje n (χ1, ψ1)-prehodov(si−1, ai, si), 1 ≤ i ≤ n, ki jim sledi cikel iz m (χ1, ψ1)-prehodov (sn+j−1, an+j, sn+j),sn+m = sn, 1 ≤ j ≤ m. Tvorimo jo tako, da zacnemo v stanju s0 in sledimo poti, na katerivelja ∀i∈ [0, n−1] . si∈/EEG{χ1}ψ1/M, dokler ne dosezemo stanja c = sn, ki je na cikluiz (χ1, ψ1)-prehodov. Stanje c je na takem ciklu, ce velja:

c ∈ lfp Z . Φ∃(///χ1/M, /ψ1/M ∩ {c}//M ∪ ///χ1/M, /ψ1/M ∩ Z//M)

Izraz lahko preoblikujemo v elegantnejso obliko, ki pa je za izvedbo manj uporabna:

Φ∃(///χ1/M, /ψ1/M ∩ {c}//M ∪ ///χ1/M, /ψ1/M ∩ Z//M) =

Φ∃((///χ1/M, /ψ1/M//M ∩ //Actτ , {c}//M) ∪ (///χ1/M, /ψ1/M//M ∩ //Actτ , Z//M)) =

Φ∃(///χ1/M, /ψ1/M//M ∩ //Actτ , Z ∪ {c}//M)

Algoritem za odkrivanje cikla iz (χ1, ψ1)-prehodov je na sliki 4.2.

Cycle EEG ( ∂{c}(r), ∂D(r, a, s), ∂χ1(a), ∂ψ1(r) ){funct = AND (∂χ1, ∂ψ1);Z = EEX (∂D, AND (funct, ∂{c}));last = 1;while ((Z != last) && (AND (Z, ∂c) == 0)) {last = Z;Z = EEX (∂D, AND (funct, Z));Z = OR (last, Z);

}

if (AND (Z, ∂{c}) == 0) return false; else return true;}

Slika 4.2: Algoritem za odkrivanje cikla pri operatorju EEG

68 4 Diagnostika ter price in protiprimeri pri ACTLW

Ko odkrijemo stanje na ciklu iz (χ1, ψ1)-prehodov, nadaljujemo tvorjenje diagnosticnepoti na osnovi algoritma za odkrivanje cikla na sliki 4.2 na naslednji nacin. Naj bo Zj,j ≥ 1, logicna funkcija, ki je rezultat j-tega koraka iteracije pri odkrivanju cikla v stanjusn z algoritmom na sliki 4.2. Nadalje naj bo Z0 vrednost Z pred prvo iteracijo in Z j takamnozica stanj v X(M), da je Zj njena karakteristicna funkcija. Dolzina najkrajsega ciklaje sorazmerna stevilu potrebnih iteracij v algoritmu. Ta cikel tvorimo tako, da zacnemov stanju sn in sledimo poti, na kateri velja: ∀j ∈ [1, m− 1] . sn+j ∈ Zm−j \Zm−j−1 insn+m∈Z0. Tvorjenje cikla pri operatorju EEG je ponazorjeno na sliki 4.3.

Z1Zm−1

s0

...sn+1 sn+m−1 sn+m

Z0

...

Zm

(χ1, ψ1) (χ1, ψ1) (χ1, ψ1) (χ1, ψ1) (χ1, ψ1)

(χ1, ψ1)sn =sn+m+1

Slika 4.3: Tvorjenje cikla pri operatorju EEG

4.2.3 Tvorjenje diagnosticne poti za operator AAW

Naj bo X(M) kodiran LTS, s0 stanje v X(M) in naj formula ϕ = AA[{χ1}ψ1 W{χ2}ψ2]

ne velja v stanju s0. Diagnosticna pot za formulo ϕ v stanju s0 vsebuje n takih (χ1, ψ1)-prehodov (si−1, ai, si), 1 ≤ i ≤ n, ki niso (χ2, ψ2)-prehodi in ki jim sledi prehod(sn, an+1, sn+1), ki ni niti (χ1, ψ1)-prehod niti (χ2, ψ2)-prehod. Tvorimo jo s sledenjemalgoritmu za razresevanje operatorja AAW na naslednji nacin.

Naj bo Zi, i ≥ 1, logicna funkcija, ki je rezultat i-tega koraka iteracije pri razresevanjuoperatorja AAW z algoritmom na sliki 3.9. Nadalje naj bo Z0 vrednost Z pred prvo ite-racijo in Z i taka mnozica stanj v X(M), da je Zi njena karakteristicna funkcija. Dolzinanajkrajse diagnosticne poti je sorazmerna stevilu potrebnih iteracij v algoritmu. To di-agnosticno pot tvorimo tako, da zacnemo v stanju s0 in sledimo poti, na kateri velja:∀i ∈ [1, n−1] . si ∈ Zn−i \Zn−i−1 in sn ∈ Z0. Tvorjenje diagnosticne poti za operatorAAW je ponazorjeno na sliki 4.4.

Zn−1 Z1 Z0

...s0 sn+1sns1

Zn

(χ1, ψ1) (χ1, ψ1) (χ1, ψ1) (χ1, ψ1) ¬(χ1, ψ1)

¬(χ2, ψ2) ¬(χ2, ψ2) ¬(χ2, ψ2) ¬(χ2, ψ2) ¬(χ2, ψ2)

Slika 4.4: Tvorjenje diagnosticne poti za operator AAW

4.2 Diagnosticne poti pri ACTLW 69

4.2.4 Tvorjenje diagnosticne poti za operator AAF

Naj bo X(M) kodiran LTS, s0 stanje v X(M) in naj formula ϕ = AAF {χ1} ψ1 ne veljav stanju s0. Diagnosticna pot za formuloϕ v stanju s0 vsebuje n prehodov (si−1, ai, si), 1 ≤

i ≤ n, ki niso (χ1, ψ1)-prehodi in ki jim sledi cikel izm takih prehodov (sn+j−1, an+j, sn+j),sn+m = sn, 1 ≤ j ≤ m, ki niso (χ1, ψ1)-prehodi. Tvorimo jo tako, da zacnemo v stanju s0

in sledimo poti, na kateri velja ∀i∈ [0, n−1] . si 6∈ /AAF{χ1} ψ1/M, dokler ne dosezemostanja c = sn, ki je na ciklu iz prehodov, ki niso (χ1, ψ1)-prehodi. Stanje c je na takemciklu, ce velja:

c ∈ lfp Z . Φ∃( ((D − ///χ1/M, /ψ1/M//M) ∩ //Actτ , {c}//M) ∪

((D − ///χ1/M, /ψ1/M//M) ∩ //Actτ , Z//M) )

Podobno kot pri operatorju EEG lahko izraz preoblikujemo v elegantnejso obliko, ki pa jeza izvedbo manj uporabna:

lfp Z . Φ∃( ((D − ///χ1/M, /ψ1/M//M) ∩ //Actτ , {c}//M) ∪

((D − ///χ1/M, /ψ1/M//M) ∩ //Actτ , Z//M) ) =

lfp Z . Φ∃((D − ///χ1/M, /ψ1/M//M) ∩ //Actτ , Z ∪ {c}//M) =

lfp Z . Φ∃(//Actτ , Z ∪ {c}//M − ///χ1/M, /ψ1/M//M)

Algoritem za odkrivanje cikla iz prehodov, ki niso (χ1, ψ1)-prehodi, je na sliki 4.5.

Cycle NOT AAF ( ∂{c}(r), ∂D(r, a, s), ∂χ1(a), ∂ψ1(r) ){funct = NOT (AND (∂χ1, ∂ψ1));Z = EEX (∂D, AND (funct, ∂{c}));last = 1;while ((Z != last) && (AND (Z, ∂c) == 0)) {last = Z;Z = EEX (∂D, AND (funct, Z));Z = OR (last, Z);

}

if (AND (Z, ∂{c}) == 0) return false; else return true;}

Slika 4.5: Algoritem za odkrivanje cikla pri operatorju AAF

70 4 Diagnostika ter price in protiprimeri pri ACTLW

Ko odkrijemo stanje na ciklu iz prehodov, ki niso (χ1, ψ1)-prehodi, nadaljujemo tvorje-nje diagnosticne poti na osnovi algoritma za odkrivanje cikla na sliki 4.5 na naslednji nacin.Naj bo Zj, j ≥ 1, logicna funkcija, ki je rezultat j-tega koraka iteracije pri odkrivanju ci-kla v stanju sn z algoritmom na sliki 4.5. Nadalje naj bo Z0 vrednost Z pred prvo iteracijoin Zj taka mnozica stanj v X(M), da je Zj njena karakteristicna funkcija. Dolzina naj-krajsega cikla je sorazmerna stevilu potrebnih iteracij v algoritmu. Ta cikel tvorimo tako, dazacnemo v stanju sn in sledimo poti, na kateri velja: ∀j∈ [1, m−1] . sn+j∈Zm−j \Zm−j−1

in sn+m∈Z0. Tvorjenje cikla pri operatorju AAF je ponazorjeno na sliki 4.6.

Zm Z1Zm−1

s0

...sn+1 sn+m

Z0

...¬(χ1, ψ1) ¬(χ1, ψ1) ¬(χ1, ψ1) ¬(χ1, ψ1) ¬(χ1, ψ1)

sn+m−1¬(χ1, ψ1)sn =sn+m+1

Slika 4.6: Tvorjenje cikla pri operatorju AAF

4.2.5 Tvorjenje diagnosticnih poti za druge operatorje ACTLW

Diagnosticne poti za druge operatorje ACTLW tvorimo s pomocjo algoritmov za tvorjenjediagnosticnih poti za operatorje EEU, EEG, AAW in AAF na naslednji nacin:

• ce je ϕ=EEX{χ1}ψ1 in velja v stanju s, potem tvorimo diagnosticno pot za formuloEE[{false}false U {χ1} ψ1];

• ce je ϕ = AAX {χ1} ψ1 in ne velja v stanju s, potem tvorimo diagnosticno pot zaformulo AA[{false}false W {χ1} ψ1];

• ce je ϕ=EEF{χ1}ψ1 in velja v stanju s, potem tvorimo diagnosticno pot za formuloEE[{true}true U {χ1} ψ1];

• ce je ϕ = AAG {χ1} ψ1 in ne velja v stanju s, potem tvorimo diagnosticno pot zaformulo AA[{χ1}ψ1 W {false} false];

• ce je ϕ= EE[{χ1}ψ1 W {χ2} ψ2] in velja v stanju s, potem, ce v stanju s velja for-mula ϕ′ =EE[{χ1}ψ1 U {χ2} ψ2], tvorimo diagnosticno pot za formulo ϕ′, drugacepa tvorimo diagnosticno pot za formulo ϕ′′=EEG {χ1} ψ1;

• ce je ϕ = AA[{χ1}ψ1 U {χ2} ψ2] in ne velja v stanju s, potem, ce v stanju s nevelja formula ϕ′=AA[{χ1}ψ1 W {χ2} ψ2], tvorimo diagnosticno pot za formulo ϕ′,drugace pa tvorimo diagnosticno pot za formulo ϕ′′=AAF {χ2} ψ2.

4.2 Diagnosticne poti pri ACTLW 71

4.2.6 Vpeljava zagatnih stanj v LTS

Po vpeljavi zagatnih stanj v LTS je potrebno dopolniti definicijo diagnosticne poti za EEW,AAU, EEG in AAF ter algoritma za tvorjenje diagnosticnih poti za EEG in AAF.

Definicija 4.2 (Diagnosticna pot za operatorja EEW in AAU v LTS-ju z zagatnimi stanji)Naj bo M=(S,Act,D, s0) koncni LTS, ki vsebuje zagatna stanja, in ϕ formula ACTLW,pri kateri je najbolj zunanji operator EEW oz. AAU. Diagnosticna pot dgnpth za formuloϕ v stanju s ∈ S je koncna pot v M, ki se zacne v stanju s in ima naslednjo obliko:

• ce je ϕ = EE[{χ1}ψ1 W {χ2} ψ2], potem je dgnpth pot, ki je sestavljena iz za-poredja nic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki vodijodo zagatnega stanja ali pa jim sledi (χ2, ψ2)-prehod ali pa cikel, sestavljen iz takih(χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi;

• ce je ϕ=AA[{χ1}ψ1 U {χ2}ψ2], potem je dgnpth pot, ki je sestavljena iz zaporedjanic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki vodijo do zagatnegastanja ali jim sledi prehod, ki ni niti (χ1, ψ1)-prehod niti (χ2, ψ2)-prehod ali pa cikel,sestavljen iz takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi;

Po vpeljavi zagatnih stanj v LTS imata izpeljani operatorja EEG in AAF naslednjediagnosticne poti:

• ce je ϕ= EEG {χ1} ψ1, potem je dgnpth pot, ki je sestavljena iz zaporedja nic alivec (χ1, ψ1)-prehodov, ki vodijo do zagatnega stanja ali pa jim sledi cikel, sestavljeniz (χ1, ψ1)-prehodov;

• ce je ϕ= AAF {χ1} ψ1, potem je dgnpth pot, ki je sestavljena iz zaporedja nic alivec prehodov, ki niso (χ1, ψ1)-prehodi, ki vodijo do zagatnega stanja ali pa jim sledicikel, sestavljen iz prehodov, ki niso (χ1, ψ1)-prehodi.

V algoritmu za tvorjenje diagnosticne poti za EEG je potrebno dodatno upostevati, damed sledenjem poti, na kateri velja ∀i∈ [0, n−1] . si ∈ /EEG{χ1} ψ1/M, lahko dosezemozagatno stanje. V tem primeru je pot do tega zagatnega stanja diagnosticna pot za EEG.

V algoritmu za tvorjenje diagnosticne poti za AAF je potrebno dodatno upostevati, damed sledenjem poti, na kateri velja ∀i∈ [0, n−1] . si 6∈ /AAF{χ1} ψ1/M, lahko dosezemozagatno stanje. V tem primeru je pot do tega zagatnega stanja diagnosticna pot za AAF.

72 4 Diagnostika ter price in protiprimeri pri ACTLW

4.3 Diagnostika za ACTLW

V tem razdelku je predstavljena izvedba diagnostike za ACTLW, ki je razsiritev izvedbeglobalnega preverjanja modelov z operatorji EEU, EEG, AAW in AAF iz razdelka 3.4.Diagnostika se tvori v treh korakih:

1. izvede se globalno preverjanje modela, pri katerem se za vsako podformulo shranimnozica stanj, v katerih ta podformula velja,

2. na osnovi strukture formule in shranjenih informacij o veljavnosti njenih podformulse tvorijo potrebne diagnosticne poti,

3. tvorjene diagnosticne poti se uporabijo za izdelavo diagnostike.

Za generiranje diagnostike potrebujemo strukturo, v kateri hranimo informacije o po-dformulah. Ta struktura mora biti dovolj razvejana, da lahko z njo enostavno izrazimozgradbo formule. Primerna struktura je npr. binarno drevo, v katerem hranimo informacijeo podformulah na naslednji nacin:

• vozlisce, ki predstavlja formulo ϕ = true, nima naslednikov,

• ce je ϕ = ¬ψ1, potem levi naslednik vozlisca, ki predstavlja formulo ϕ, vsebujeinformacije o podformuli ψ1, desni naslednik pa je prazen;

• ce je ϕ = ψ1 ∨ ψ2 ali ϕ = ψ1 ∧ ψ2, potem levi naslednik vozlisca, ki predstavljaformulo ϕ, vsebuje informacije o podformuli ψ1, desni naslednik pa informacije opodformuli ψ2;

• ce je ϕ= EEX {χ1} ψ1, ϕ= AAX {χ1} ψ1, ϕ= EEF {χ1} ψ1, ϕ= AAF {χ1} ψ1,ϕ=EEG{χ1}ψ1 ali ϕ=AAG{χ1}ψ1, potem levi naslednik vozlisca, ki predstavljaformulo ϕ, vsebuje informacije o podformuli ψ1, desni naslednik pa je prazen;

• ce je ϕ= EE[{χ1}ψ1 U {χ2} ψ2], ϕ= AA[{χ1}ψ1 U {χ2} ψ2], ϕ= EE[{χ1}ψ1 W{χ2}ψ2] ali ϕ=AA[{χ1}ψ1W{χ2}ψ2], potem levi naslednik vozlisca, ki predstavljaformulo ϕ, vsebuje informacije o podformuli ψ1, desni naslednik pa informacije opodformuli ψ2;

Druge operatorje v formulah ACTLW obravnavamo na podoben nacin. Dobljeno binarnodrevo imenujemo drevo podformul. Na sliki 4.7 je prikazano drevo podformul za formuloEE[{a}(EEF{b}true ∧ EEF{c}true) W {true} EEX{a ∨ b}EEG{b}true].

4.3 Diagnostika za ACTLW 73

EE[{a}(EEF{b}true ∧ EEF{c}true) W {true} EEX{a ∨ b}EEG{b}true]

EEF{b}true ∧ EEF{c}true EEX{a ∨ b}EEG{b}true

true

EEF{b}true EEF{c}true EEG{b}true

truetrue

Slika 4.7: Primer drevesa podformul

V drugem koraku tvorjenja diagnostike na osnovi informacij, shranjenih v vozliscihdrevesa podformul, tvorimo diagnosticne poti za podformule. Za dano formulo ACTLWlahko v nekem stanju obstaja vec razlicnih diagnosticnih poti. Ce se omejimo na tvorjenjein hranjenje najvec ene diagnosticne poti v vsakem vozliscu, dobimo enostavno diagno-stiko. Pri interaktivni izvedbi enostavne diagnostike lahko v primeru vec moznih diagno-sticnih poti izbiro prepustimo uporabniku, drugace pa orodje samo izbere eno izmed njih.Enostavna diagnostika v praksi pogosto zadostuje, ceprav v splosnem ne nudi izcrpne raz-lage, oz. vcasih ne nudi niti popolne razlage. Izvedba diagnostike na tak nacin, da jedobljena razlaga vedno popolna oz. celo izcrpna razlaga, zahteva tvorjenje in hranjenjebistveno vec informacij v vozliscih drevesa podformul.

Naj bo ϕ formula ACTLW in s stanje LTS-ja, v katerem tvorimo enostavno diagno-stiko za formulo ϕ. Tvorjenje diagnosticnih poti zacnemo v korenu drevesa podformul.Uporabljamo naslednji postopek:

• ce je ϕ= true tvorimo prazno pot;

• ce je ϕ=¬ψ1, tvorimo v stanju s diagnosticno pot za formulo ψ1;

• ce je ϕ=ψ1 ∨ ψ2, potem

– ce v stanju s velja formula ψ1, tvorimo v s diagnosticno pot za formulo ψ1;

– ce v stanju s velja formula ψ2, tvorimo v s diagnosticno pot za formulo ψ2;

74 4 Diagnostika ter price in protiprimeri pri ACTLW

• ce je ϕ=ψ1 ∧ ψ2, potem

– ce v stanju s ne velja formula ψ1, tvorimo v s diagnosticno pot za formulo ψ1;– ce v stanju s ne velja formula ψ2, tvorimo v s diagnosticno pot za formulo ψ2;

• ce je ϕ= EEX {χ1} ψ1 ali ϕ= EEF {χ1} ψ1, tvorimo v stanju s diagnosticno potdgnpth za formulo ϕ in potem v zadnjem stanju dgnpth tvorimo diagnosticno potza formulo ψ1;

• ce je ϕ = AAX {χ1} ψ1 ali ϕ = AAG {χ1} ψ1, tvorimo v stanju s diagnosticnopot dgnpth za formulo ϕ in ce za zadnji dogodek na diagnosticni poti dgnpth veljaformula dogodka χ1, potem v zadnjem stanju dgnpth tvorimo diagnosticno pot zaformulo ψ1;

• ce je ϕ=EEG {χ1} ψ1 ali ϕ=AAF {χ1} ψ1, tvorimo v stanju s diagnosticno pot zaformulo ϕ;

• ce je ϕ = EE[{χ1}ψ1 U {χ2} ψ2], tvorimo v stanju s diagnosticno pot dgnpth zaformulo ϕ in potem v zadnjem stanju dgnpth tvorimo diagnosticno pot za formuloψ2;

• ce je ϕ = EE[{χ1}ψ1 W {χ2} ψ2], tvorimo v stanju s diagnosticno pot dgnpth zaformulo ϕ in ce se diagnosticna pot dgnpth ne konca s ciklom, v zadnjem stanjudgnpth tvorimo diagnosticno pot za formulo ψ2;

• ce je ϕ = AA[{χ1}ψ1 U {χ2} ψ2], tvorimo v stanju s diagnosticno pot dgnpth zaformulo ϕ in ce se diagnosticna pot dgnpth ne konca s ciklom, potem

– ce za zadnji dogodek na diagnosticni poti dgnpth velja formula dogodka χ1, vzadnjem stanju dgnpth tvorimo diagnosticno pot za formulo ψ1;

– ce za zadnji dogodek na diagnosticni poti dgnpth velja formula dogodka χ2, vzadnjem stanju dgnpth tvorimo diagnosticno pot za formulo ψ2;

• ce je ϕ = AA[{χ1}ψ1 W {χ2} ψ2], tvorimo v stanju s diagnosticno pot dgnpth zaformulo ϕ in potem

– ce za zadnji dogodek na diagnosticni poti dgnpth velja formula dogodka χ1, vzadnjem stanju dgnpth tvorimo diagnosticno pot za formulo ψ1;

– ce za zadnji dogodek na diagnosticni poti dgnpth velja formula dogodka χ2, vzadnjem stanju dgnpth tvorimo diagnosticno pot za formulo ψ2.

Tvorjenje diagnosticnih poti se zakljuci, ko naletimo na formulo, ki ni zajeta v zgornjihpravilih.

4.3 Diagnostika za ACTLW 75

Primer. Imejmo LTS na sliki 4.8 in formulo EE[{a}(EEF{b}true ∧ EEF{c}true) W{true}EEX{a ∨ b}EEG{b}true], za katero je drevo podformul podano na sliki 4.7.

s1s5b c

bs4 s6

cs7

a

a

ac a

a

a

s0

s2

s3

Slika 4.8: LTS, za katerega tvorimo enostavno diagnostiko

Dana formula je oblike EE[{χ1}ψ1 W {χ2} ψ2], kjer je χ1 = a, ψ1 = EEF{b}true ∧

EEF{c}true, χ2 = true in ψ2 = EEX{a∨ b}EEG{b}true. Po definiciji je diagnosticna potza to formulo sestavljena iz zaporedja nic ali vec takih (χ1, ψ1)-prehodov, ki niso (χ2, ψ2)-prehodi in ki jim sledi (χ2, ψ2)-prehod ali pa cikel, sestavljen iz takih (χ1, ψ1)-prehodov,ki niso (χ2, ψ2)-prehodi. V danem LTS-ju obstajata obe moznosti. Odlocimo se najprej zaprvo. Definiciji ustrezata dve poti:

1. pot (s0)–a–>(s1)–c–>(s3) je sestavljena iz enega (χ1, ψ1)-prehoda, to je prehod(s0)–a–>(s1), ki mu sledi (χ2, ψ2)-prehod, to je prehod (s1)–c–>(s3);

2. pot (s0)–a–>(s2) nima (χ1, ψ1)-prehodov, ampak vsebuje le (χ2, ψ2)-prehod.

Navedeni poti nista enako uporabni, saj je druga krajsa in zato boljsa. Izberemo torej drugopot in dobimo drevo podformul na sliki 4.9.

EE[{a}(EEF{b}true ∧ EEF{c}true) W {true} EEX{a ∨ b}EEG{b}true]dgnpth: (s0)–a–>(s2)

EEX{a ∨ b}EEG{b}true

EEG{b}true

dgnpth: (s2)–a–>(s4)

dgnpth: (s4)–b–>(s6)–b–>(s6)

Slika 4.9: Drevo podformul, ce diagnosticna pot za EEW nima cikla

76 4 Diagnostika ter price in protiprimeri pri ACTLW

Na sliki 4.9 so prikazana le tista vozlisca, ki jih obravnavamo med tvorjenjem diagno-stike. Na podlagi dobljenih diagnosticnih poti oblikuje orodje EST naslednjo diagnostiko:

EE[{a} (EEF {b} true AND EEF {c} true) W {true} EEX{a OR b} EEG {b} true]@@ Model checking: TRUE@@ Diagnostics@@ #0:EE[{a} (EEF {b} true AND EEF {c} true) W {true} EEX

{a OR b} EEG {b} true]@@ There exists a path satisfying formula #0: (s0)--a->(s2)@@ #1:EEX {a OR b} EEG {b} true@@ There exists a transition satisfying formula #1: (s2)--a->(s4)@@ #2:EEG {b} true@@ There exists a path satisfying formula #2:

(s4)--b->(s6)--b->(s6)@@ End Of Diagnostic

V postopku za tvorjenje enostavne diagnostike je predpisano, da takrat, ko ta obstaja,vedno izberemo diagnosticno pot brez cikla. Pri EEW in AAU lahko sicer naenkrat obsta-jajo diagnostice poti z in brez cikla. Ce bi v danem primeru lahko v orodju zahtevali, dase izbere pot s ciklom, bi se tvorila le diagnosticna pot v korenu drevesa podformul, takokakor je prikazano na sliki 4.10.

EE[{a}(EEF{b}true ∧ EEF{c}true) W {true} EEX{a ∨ b}EEG{b}true]dgnpth: (s0)–a–>(s1)–a–>(s5)–a–>(s1)

Slika 4.10: Drevo podformul, ko pri EEW izberemo diagnosticno pot s ciklom

Orodje EST bi v tem primeru tvorilo naslednjo diagnostiko:

EE[{a} (EEF {b} true AND EEF {c} true) W {true} EEX{a OR b} EEG {b} true]@@ Model checking: TRUE@@ Diagnostics@@ #0:EE[{a} (EEF {b} true AND EEF {c} true) W {true} EEX

{a OR b} EEG {b} true]@@ There exists a path satisfying formula #0:

(s0)--a->(s1)--a->(s5)--a->(s1)@@ End Of Diagnostic

Enostavna diagnostika v splosnem ni popolna razlaga veljavnosti dane formule. Naprimer, v zadnjem primeru ne pojasnjuje, zakaj podformula EEF{b}true ∧ EEF{c}truevelja v vseh stanjih na ciklu (s0)–a–>(s1)–a–>(s5)–a–>(s1). Kljub tej pomanjkljivostitvorjena enostavna diagnostika v praksi obicajno zadostuje, saj jasno kaze na obstoj in tudipotek cikla.

4.4 Linearne price in protiprimeri za ACTLW 77

Ce LTS vsebuje zagatna stanja, postopek tvorjenja enostavne diagnostike dopolnimo:

• za formulo ϕ = EE[{χ1}ψ1 W {χ2} ψ2], ce se tvorjena dgnpth konca z zagatnimstanjem, se tvorjenje diagnosticne poti zakljuci;

• za formulo ϕ=AA[{χ1}ψ1 U {χ2}ψ2], ce se tvorjena dgnpth konca z zagatnim sta-njem in za zadnji dogodek na dgnpth velja formula dogodka χ1, potem diagnosticnopot za formulo ψ1 tvorimo le v primeru, ce formula ψ1 v zadnjem stanju dgnpth nevelja.

4.4 Linearne price in protiprimeri za ACTLW

Formule ACTLW izrazajo lastnosti, ki se nanasajo na dogodke v LTS-ju. Linearne price inprotiprimere zato definiramo kot zaporedja dogodkov.

Definicija 4.3 (Linearna prica in protiprimer pri ACTLW)Naj bo ϕ formula ACTLW in π pot v LTS-ju M, ki se zacne v stanju s. Ce s |=M ϕ in jeobstoj poti π v M dokaz, da s |=M ϕ, potem je zaporedje dogodkov act(π) linearna pricaza s |=M ϕ. Ce s 6|=M ϕ in je obstoj poti π v M dokaz, da s 6|=M ϕ, potem je zaporedjedogodkov act(π) linearni protiprimer za s |=M ϕ.

Veljavnost formul ACTLW, ki so tavtologija oz. protislovje, ni odvisna od LTS-ja, nadkaterim jih interpretiramo, torej v takih primerih za nobeno pot v LTS-ju ne moremo trditi,da je njen obstoj dokaz za veljavnost oz. neveljavnost formule. Zato dodatno vpeljemopojem trivialne linearne price in protiprimera.

Definicija 4.4 (Trivialna linearna prica in protiprimer)Naj bo ϕ formula ACTLW in s stanje v poljubnem LTS-ju M. Ce je ϕ tavtologija, potemje prazno zaporedje dogodkov (trivialna) prica za s |=M ϕ. Ce je ϕ protislovje, potem jeprazno zaporedje dogodkov (trivialni) protiprimer za s |=M ϕ.

Pri nekaterih formulah ACTLW je obstoj linearnih pric oz. protiprimerov odvisen odLTS-ja. Tvorjenje linearnih pric in protiprimerov za take formule je zelo kompleksno in vpraksi redko potrebno. V nadaljevanju se omejimo le na take formule ACTLW, pri katerihobstoj linearnih pric in protiprimerov ni odvisen od LTS-ja.

Definicija 4.5 (Zaporedje dogodkov, ki potrjuje oz. zavraca veljavnost formule ACTLW)Neprazno zaporedje dogodkov η potrjuje veljavnost formule ACTLW ϕ, ce in samo ceM |= ϕ za vsak LTS M, v zacetnem stanju katerega obstaja taka pot π, da je η = act(π).Neprazno zaporedje dogodkov η zavraca veljavnost formule ϕ, ce in samo ce M 6|= ϕ zavsak LTS M, v zacetnem stanju katerega obstaja taka pot π, da je η = act(π).

78 4 Diagnostika ter price in protiprimeri pri ACTLW

Izrek 4.2 (Zadostni pogoj za linearne price in protiprimere pri ACTLW)Naj bo η zaporedje dogodkov in ϕ formula ACTLW. Ce η potrjuje veljavnost formule ϕ inv zacetnem stanju LTS-ja M obstaja taka pot π, da je η=act(π), potem je η linearna pricaza M |= ϕ . Ce η zavraca veljavnost formule ϕ in v zacetnem stanju LTS-ja M obstajataka pot π, da je η=act(π), potem je η linearni protiprimer za M |= ϕ.

Dokaz. Naj zaporedje dogodkov η potrjuje veljavnost formule ϕ in naj v zacetnem stanjuLTS-ja M obstaja taka pot π, da je η = act(π). V vsakem LTS-ju M′, v zacetnem stanjukaterega obstaja taka pot π′, da je η = act(π′), velja M′ |= ϕ. Zato tudi M |= ϕ. Ker jeobstoj poti π v M dokaz, da M |= ϕ, je zaporedje dogodkov η linearna prica za M |= ϕ.Na enak nacin sklepamo pri linearnih protiprimerih.

Izrek 4.3 (Obstoj linearne price in protiprimera pri ACTLW)Naj bosta ϕ in ϑ formuli ACTLW, katerih skladnja je definirana s podano slovnico, kjer jeα ∈ Actτ . Za vsak LTS M, za katerega velja M |= ϕ, obstaja linearna prica za M |= ϕ.Za vsak LTS M, za katerega velja M 6|= ϑ, obstaja linearni protiprimer za M |= ϑ.

χ ::= α | ¬χ | χ ∨ χ

ϕ ::= true | ¬ϑ | ϕ ∨ ϕ |

EE[{χ}true U {χ} ϕ] | EE[{χ}false U {χ} ϕ] | EE[{false}ϕU {χ} ϕ] |

EE[{χ}true W {χ} ϕ] | EE[{χ}false W {χ} ϕ] | EE[{false}ϕ W {χ} ϕ]

ϑ ::= ¬ϕ |

AA[{χ}ϑ U {χ} true] | AA[{false}ϑ U {χ} ϑ] | AA[{χ}false U {χ} ϑ] |

AA[{χ}ϑ W {χ} true] | AA[{χ}ϑ W {false} ϑ] | AA[{χ}ϑ W {χ} false] |AA[{false}ϑ W {χ} ϑ] | AA[{χ}false W {χ} ϑ]

Dokaz. Po indukciji nad podformulami ali pa kot posledica obstoja in konsistentnostiprakticnih pric in protiprimerov pri ACTLW (glej v nadaljevanju).

Obstoj linearnih pric in protiprimerov ni odvisen od LTS-ja tudi pri vseh tistih formulahACTLW, ki jih lahko izpeljemo iz formul v izreku 4.3, npr. EEX{χ} ϕ, EEF{χ} ϕ,EEG{χ} true, AAX{χ} ϑ, AAF{χ} true in AAG{χ} ϑ.

Ce je η linearna prica oz. linearni protiprimer za M |= ϕ, kjer je ϕ formula ACTLWoblike, kakrsna je podana v izreku 4.3, potem je vsako zaporedje dogodkov, ki vsebujeη kot svojo predpono, tudi linearna prica oz. linearni protiprimer za M |= ϕ. Linearneprice in protiprimere lahko torej poljubno podaljsujemo, pri tem pa lahko dodajamo tudidogodke, ki niso v nicemer povezani z veljavnostjo oz. neveljavnostjo formule. V praksise zelimo linearnim pricam in linearnim protiprimerom z neuporabnimi podaljski izogniti,zato vpeljemo pojem prakticne price in prakticnega protiprimera.

4.4 Linearne price in protiprimeri za ACTLW 79

Definicija 4.6 (Prakticna prica in protiprimer pri ACTLW)Naj bosta ϕ in ϑ formuli ACTLW oblike, kakrsna je podana v izreku 4.3. Naj bo π

pot v LTS-ju M, ki se zacne v stanju s. Zaporedje dogodkov η = act(π) je prakticnaprica (V-prica) za s |=M ϕ oz. prakticen protiprimer (V-protiprimer) za s |=M ϑ,ce in samo ce velja:

• ϕ= true in η je prazno zaporedje dogodkov;

• ϕ=¬ψ1 in η je V-protiprimer za s |=M ψ1;

• ϕ = ψ1 ∨ ψ2 in η je V-prica za s |=M ψ1 ali V-prica za s |=M ψ2;

• ϕ=EE[{χ1}true U {χ2} ψ2] in obstaja tak i≥ 1, da za vse dogodke v η do vkljucno(i−1)-tega dogodka velja formula dogodka χ1, za i-ti dogodek v η velja formuladogodka χ2, η brez prvih i dogodkov pa je V-prica za π(i) |=M ψ2;

• ϕ=EE[{χ1}true W {χ2} ψ2] in

– η je neskoncno zaporedje dogodkov, v katerem za vse dogodke velja formuladogodka χ1 ali

– obstaja tak i≥ 1, da za vse dogodke v η do vkljucno (i−1)-tega dogodka veljaformula dogodka χ1, za i-ti dogodek v η velja formula dogodka χ2, η brez prvihi dogodkov pa je V-prica za π(i) |=M ψ2;

• ϕ=EE[{false}ψ1 U {χ2} ψ2], ϕ=EE[{χ1}false U {χ2} ψ2], ϕ=EE[{false}ψ1 W{χ2} ψ2] ali ϕ = EE[{χ1}false W {χ2} ψ2] in za prvi dogodek v η velja formuladogodka χ2, η brez prvega dogodka pa je V-prica za π(1) |=M ψ2;

• ϑ=¬ψ1 in η je V-prica za s |=M ψ1;

• ϑ=AA[{χ1}ψ1 U {χ2} true] in

– η je neskoncno zaporedje dogodkov, v katerem za vse dogodke velja formuladogodka χ1 in za noben dogodek ne velja formula dogodka χ2 ali

– η je koncno zaporedje dogodkov, v katerem za vse razen zadnjega dogodkavelja formula dogodka χ1, za zadnji dogodek ne velja formula dogodka χ1 inza noben dogodek ne velja formula dogodka χ2 ali

– obstaja tak i≥1, da za vse dogodke v η do vkljucno i-tega dogodka velja formu-la dogodka χ1, za noben dogodek v η do vkljucno i-tega dogodka ne velja for-mula dogodka χ2, η brez prvih i dogodkov pa je V-protiprimer za π(i) |=M ψ1;

80 4 Diagnostika ter price in protiprimeri pri ACTLW

• ϑ=AA[{χ1}ψ1 W {χ2} true] in

– η je koncno zaporedje dogodkov, v katerem za vse razen zadnjega dogodka vel-ja formula dogodka χ1, za zadnji dogodek ne velja formula dogodka χ1 in zanoben dogodek ne velja formula dogodka χ2 ali

– obstaja tak i≥1, da za vse dogodke v η do vkljucno i-tega dogodka velja formu-la dogodka χ1 za noben dogodek v η do vkljucno i-tega dogodka ne velja for-mula dogodka χ2, η brez prvih i dogodkov pa je V-protiprimer za π(i) |=M ψ1;

• ϑ=AA[{χ1}ψ1 W {false} ψ2] ali ϑ=AA[{χ1}ψ1 W {χ2} false] in

– η je koncno zaporedje dogodkov, v katerem za vse razen zadnjega velja formuladogodka χ1, za zadnji dogodek pa ne velja formula dogodka χ1 ali

– obstaja tak i≥ 1, da za vse dogodke v η do vkljucno i-tega dogodka velja for-mula dogodka χ1, η brez prvih i dogodkov pa je V-protiprimer za π(i) |=M ψ1;

• ϑ=AA[{false}ψ1 U {χ2} ψ2], ϑ=AA[{χ1}false U {χ2} ψ2], ϑ=AA[{false}ψ1 W{χ2} ψ2] ali ϑ=AA[{χ1}false W {χ2} ψ2] in

– η vsebuje en sam dogodek, za katerega ne velja formula dogodka χ2 ali– za prvi dogodek v η velja formula dogodka χ2 in η brez prvega dogodka jeV-protiprimer za π(1) |=M ψ2.

Izrek 4.4 (Obstoj prakticne price in protiprimera pri ACTLW)Naj bosta ϕ in ϑ formuli ACTLW, katerih skladnja je definirana s slovnico, podano v izreku4.3. Za vsak LTS M, za katerega velja M |= ϕ, obstaja prakticna prica za M |= ϕ. Zavsak LTS M, za katerega velja M 6|= ϑ, obstaja prakticni protiprimer za M |= ϑ.

Dokaz. Izrek sledi iz konstrukcije prakticne price in prakticnega protiprimera, ki je podanav nadaljevanju.

Izrek 4.5 (Konsistentnost prakticnih pric in protiprimerov pri ACTLW)Naj bosta ϕ in ϑ formuli ACTLW, katerih skladnja je definirana s slovnico, podano v izreku4.3. Ce je η prakticna prica za M |= ϕ, potem je η linearna prica za M |= ϕ. Ce je ηprakticen protiprimer za M |= ϑ, potem je η linearni protiprimer za M |= ϑ.

Dokaz. Pokazemo lahko, da je vsaka prakticna prica za M |= ϕ zaporedje dogodkov,ki potrjuje veljavnost formule ϕ, vsak prakticni protiprimer za M |= ϑ pa je zaporedjedogodkov, ki zavraca veljavnost formule ϑ. Sledi, da je vsaka prakticna prica tudi linearnaprica, vsak prakticni protiprimer pa je tudi linearni protiprimer.

4.4 Linearne price in protiprimeri za ACTLW 81

Primer. Vzemimo LTS na sliki 4.8 in formulo ϕ = EEF{a}EEX{b} true, ki velja v temLTS-ju. V zacetnem stanju LTS-ja obstaja neskoncno takih poti π, da zaporedje dogodkovna poti π potrjuje veljavnost formule ϕ, npr.:

1. (s0)–a–>(s2)–a–>(s4)–b–>(s6),

2. (s0)–a–>(s2)–a–>(s4)–b–>(s6)–c–>(s7),

3. (s0)–a–>(s1)–c–>(s3)–a–>(s4)–b–>(s6),

4. (s0)–a–>(s1)–a–>(s5)–a–>(s1)–c–>(s3)–a–>(s4)–b–>(s6).

Sledi, da so zaporedja dogodkov η1 = a, a, b, η2 = a, a, b, c, η3 = a, c, a, b inη4 = a, a, a, c, a, b vsa linearne price za veljavnost formule ϕ v danem LTS-ju. Naj-krajsa med njimi je prva, vendar sama za sebe ni izcrpna razlaga veljavnosti formule ϕv danem LTS-ju. V praksi je morda pomembno, da najdemo tudi ostale. Tretja in cetrtalinearna prica na primer nakazujeta, da obstaja pot z dogodkom b tudi takrat, ce prehod izzacetnega stanja vodi v stanje s1 oz. da obstaja tudi taka pot, na kateri je pred dogodkomb vec kot 100 drugih dogodkov. Je pa nekoristna druga linearna prica, ki tudi ni prakticnaprica. Od prve se razlikuje le po tem, da na koncu vsebuje dodatni dogodek c, ki nicesarne prispeva k razlagi veljavnosti formule.

Kot drugi primer vzemimo formulo ϕ = EEF {c} AAX {c} true, ki prav tako veljav LTS-ju na sliki 4.8. Skladnja te formule ne ustreza slovnici, podani v izreku 4.3, zato formulo pa tudi ne obstaja zaporedje dogodkov, ki bi potrjevalo njeno veljavnost. Podrugi strani pa je obstoj poti (s0)–a–>(s2)–a–>(s4)–b–>(s6)–c–>(s7)–c–>(s7) dokaz,da formula ϕ velja v danem LTS-ju, ker iz stanja s7 obstaja le en prehod, dogodek pritem prehodu pa je c. Sledi, da je zaporedje dogodkov η = a, a, b, c, c linearna prica zaveljavnost formule ϕ v danem LTS-ju. Ta linearna prica je nekako nestabilna, saj lahkoz dodajanjem novih prehodov v LTS povzrocimo, da zaporedje dogodkov η preneha bitilinearna prica.

Kot tretji primer vzemimo formulo ϕ = EE[{b}true W {a} AAF {b} true], ki tudivelja v LTS-ju na sliki 4.8. Skladnja formule ϕ ne ustreza slovnici, podani v izreku 4.3,toda obstaja zaporedje dogodkov, ki potrjuje veljavnost te formule. Tako je neskoncnozaporedje, sestavljeno iz samih dogodkov b. Ker pa se v zacetnem stanju danega LTS-ja nezacne nobena pot s tem zaporedjem dogodkov, to ni linearna prica za veljavnost formuleϕ v danem LTS-ju. Iz podobnih razlogov kot v prejsnjem primeru pa linearna prica v temprimeru vseeno obstaja, tvori pa jo zaporedje dogodkov na poti (s0)–a–>(s2)–a–>(s4)–b–>(s6).

82 4 Diagnostika ter price in protiprimeri pri ACTLW

V nadaljevanju je predstavljen algoritem za tvorjenje prakticnih pric in protiprimerovza formule ACTLW, katerih skladnja je definirana s slovnico v izreku 4.3. Algoritem zadan LTS in dano formulo ACTLW tvori le eno (v vecini primerov najkrajso) prakticnoprico oz. prakticni protiprimer. Tako kot pri tvorjenju enostavne diagnostike je tudi tukajuporabljeno drevo podformul. Prakticnih price in protiprimeri se tvorijo v treh korakih:

1. izvedemo globalno preverjanje modela, pri katerem si za vsako podformulo shranimoinformacijo o tem, v katerih stanjih velja,

2. na osnovi strukture formule in shranjenih informacij o veljavnosti njenih podformultvorimo diagnosticno pot,

3. na osnovi tvorjene diagnosticne poti tvorimo prakticno prico oz. protiprimer.

Naj bo s stanje LTS-ja, ϕ formula ACTLW, ki velja v stanju s in ϑ formula ACTLW,ki ne velja v stanju s. Tvorjenje diagnosticne poti zacnemo v korenu drevesa podformul inpoteka po naslednjem postopku:

• ce je ϕ= true, tvorimo prazno pot;

• ce je ϕ=¬ψ1, tvorimo v stanju s diagnosticno pot za formulo ψ1;

• ce je ϕ=ψ1 ∨ ψ2, potem

– ce formula ψ1 velja v stanju s, tvorimo v s diagnosticno pot za formulo ψ1 ali– ce formula ψ2 velja v stanju s, tvorimo v s diagnosticno pot za formulo ψ2;

• ce je ϕ=EE[{χ1}trueU{χ2}ψ2], ϕ=EE[{χ1}falseU{χ2}ψ2], ϕ=EE[{false}ψ1 U{χ2} ψ2], ϕ=EE[{χ1}false W {χ2} ψ2] ali ϕ=EE[{false}ψ1 W {χ2} ψ2], tvorimov stanju s diagnosticno pot dgnpth za formulo ϕ in potem v zadnjem stanju dgnpthtvorimo diagnosticno pot za formulo ψ2;

• ce je ϕ= EE[{χ1}true W {χ2} ψ2], tvorimo v stanju s diagnosticno pot dgnpth zaformulo ϕ in ce se dgnpth ne konca s ciklom, tvorimo v zadnjem stanju dgnpthdiagnosticno pot za formulo ψ2;

• ce je ϑ=¬ψ1, tvorimo v stanju s diagnosticno pot za formulo ψ1;

• ce je ϑ= AA[{χ1}ψ1 U {χ2} true], tvorimo v stanju s diagnosticno pot dgnpth zaformulo ϑ in ce se dgnpth ne konca s ciklom ter za zadnji dogodek na dgnpth veljaformula dogodka χ1, tvorimo v zadnjem stanju dgnpth diagnosticno pot za formuloψ1;

4.4 Linearne price in protiprimeri za ACTLW 83

• ce je ϑ = AA[{χ1}ψ1 W {χ2} true], ϑ = AA[{χ1}ψ1 W {false} ψ2] aliϑ= AA[{χ1}ψ1 W {χ2} false], tvorimo v stanju s diagnosticno pot dgnpth za for-mulo ϕ in ce za zadnji dogodek na dgnpth velja formula dogodka χ1, tvorimo vzadnjem stanju dgnpth diagnosticno pot za formulo ψ1;

• ce je ϑ = AA[{false}ψ1 U {χ2} ψ2], ϑ = AA[{χ1}false U {χ2} ψ2],ϑ = AA[{false}ψ1 W {χ2} ψ2] ali ϑ = AA[{χ1}false W {χ2} ψ2], tvorimo v sta-nju s diagnosticno pot dgnpth za formulo ϕ in ce za zadnji dogodek na dgnpth veljaformula dogodka χ2, tvorimo v zadnjem stanju dgnpth diagnosticno pot za formuloψ2;

Prakticna prica oz. protiprimer je zaporedje dogodkov na poti, ki je spoj tvorjenihdiagnosticnih poti. Ce se diagnosticna pot konca s ciklom, zaporedje dogodkov na temciklu neskoncno mnogokrat ponovimo. Za dan LTS in dano formulo ACTLW lahko obstajavec razlicnih prakticnih pric oz. protiprimerov. Predstavljen algoritem tvori eno oz. enegaizmed njih, rezultat pa je odvisen od tega, katere diagnosticne poti izberemo v posameznihvozliscih drevesa podformul.

Primer. Oglejmo si tvorjenje dveh prakticnih pric in dveh prakticnih protiprimerov zaLTS na sliki 4.8.

Najprej vzemimo formulo ϕ = EEG {a} true = EE[{a}true W {false} false], ki veljav danem LTS-ju. Po definiciji je diagnosticna pot za to formulo sestavljena iz zaporedjanic ali vec a-prehodov, ki jim sledi cikel, sestavljen iz a-prehodov. Najkrajsa diagnosticnapot v danem primeru je pot (s0)–a–>(s1)–a–>(s5)–a–>(s1), ki je sestavljena iz enegaa-prehoda, ki mu sledi cikel, sestavljen iz a-prehodov. Ker se diagnosticna pot koncas ciklom, je tvorjenje diagnosticnih poti zakljuceno in preidemo na tvorjenje prakticneprice. Prakticna prica za veljavnost formule ϕ v danem LTS-ju je neskoncno zaporedjedogodkov, ki je spoj zaporedja dogodkov na dobljeni diagnosticni poti in neskoncnegastevila zaporedij dogodkov na ciklu, s katerim se diagnosticna pot konca. Orodje EST, kivsebuje izvedbo opisanega algoritma, tvori naslednji rezultat, v katerem je s parom znakov++ oznaceno podzaporedje dogodkov, ki se neskoncnokrat ponavlja:

EEG {a}@@ Model checking: TRUE@@ Witness: (a)+(a)(a)+

Kot drugi primer vzemimo formulo EEF {true}EEX {a}EEG {b} true, ki tudi velja vdanem LTS-ju. V prvem koraku izvedemo globalno preverjanje modela. V drugem korakutvorimo diagnosticne poti in dobimo drevo podformul na sliki 4.11.

84 4 Diagnostika ter price in protiprimeri pri ACTLW

dgnpth: (s0)–a–>(s2)

dgnpth: (s2)–a–>(s4)

EEG{b}truedgnpth: (s4)–b–>(s6)–b–>(s6)

EEX {a} EEG {b} true

EEF {true} EEX {a} EEG {b} true

Slika 4.11: Drevo podformul med tvorjenjem prakticne price

V tretjem koraku tvorimo prakticno prico. Orodjem EST tvori naslednji rezultat:

EEF {true} EEX {a} EEG {b} true@@ Model checking: TRUE@@ Witness: (a)(a)(b)+(b)+

Sedaj pa vzemimo formulo ϑ = AAG {a} true = AA[{a}true W {false} false], ki nevelja v danem LTS-ju. Po definiciji je diagnosticna pot za to formulo pot, ki je sestavljenaiz zaporedja nic ali vec a-prehodov, ki jim sledi prehod, ki ni a-prehod. Najkrajsa takapot v danem LTS-ju je pot (s0)–a–>(s1)–c–>(s3). Ker zadnji dogodek na tej poti ni a,tvorjenje diagnosticnih poti zakljucimo. Zaporedje dogodkov na dobljeni diagnosticni potije prakticni protiprimer za veljavnost formule ϑ v danem LTS-ju. Rezultat, izracunan zorodjem EST, izgleda takole:

AAG {a}@@ Model checking: FALSE@@ Counterexample: (a)(c)

Kot zadnji primer vzemimo formulo ϑ = AAG {true} AAF {a} true, ki ne velja vdanem LTS-ju. V tem primeru je najkrajsa diagnosticna pot π1 = (s0)–a–>(s2)–a–>(s4),ki ustreza zato, ker v stanju s4 ne velja formula AAF {a} true. Ker za zadnji dogodek natej diagnosticni poti velja formula dogodka true, tvorimo v stanju s4 diagnosticno pot zaformulo AAF{a} true. Najkrajsa je pot π2 = (s4)–b–>(s6)–b–>(s6). Prakticni protiprimerpa je zaporedje dogodkov na poti, ki je spoj diagnosticnih poti π1 in π2. Orodje EST tarezultat sporoci takole:

AAG {true} AAF {a} true@@ Model checking: FALSE@@ Counterexample: (a)(a)(b)+(b)+

4.4 Linearne price in protiprimeri za ACTLW 85

Ce LTS vsebuje zagatna stanja, je potrebno dopolniti definicijo prakticnih pric in pro-tiprimerov. Zaporedje dogodkov η = act(π) je prakticna prica za s |=M ϕ oz. prakticenprotiprimer za s |=M ϑ tudi takrat, ko velja:

• ϕ = EE[{χ1}true W {χ2} ψ2] in η je prazno zaporedje dogodkov ali pa koncnozaporedje dogodkov, v katerem za vse dogodke velja formula dogodka χ1;

• ϕ = EE[{false}ψ1 W {χ2} ψ2] ali ϕ = EE[{χ1}false W {χ2} ψ2] in η je praznozaporedje dogodkov;

• ϑ = AA[{χ1}ψ1 U {χ2} true] in in η je prazno zaporedje dogodkov ali pa koncnozaporedje dogodkov, v katerem za vse dogodke velja formula dogodkaχ1 in za nobendogodek ne velja formula dogodka χ2;

• ϑ = AA[{false}ψ1 W {χ2} ψ2] ali ϑ = AA[{χ1}false W {χ2} ψ2] in η je praznozaporedje dogodkov.

Algoritem za tvorjenje prakticnih pric in protiprimerov pa je potrebno nadgraditi nanaslednji nacin:

• ce je ϕ= EE[{χ1}false W {χ2} ψ2] ali ϕ= EE[{false}ψ1 W {χ2} ψ2], tvorimo vzadnjem stanju dgnpth diagnosticno pot za formulo ψ2 le v primeru, da se dgnpthne konca v zagatnem stanju;

• ce je ϕ= EE[{χ1}true W {χ2} ψ2], tvorimo v zadnjem stanju dgnpth diagnosticnopot za formulo ψ2 le v primeru, da se dgnpth ne konca s ciklom, da dgnpth ni praznapot in da za zadnji dogodek na dgnpth ne velja formula dogodka χ1;

• ce je ϑ=AA[{χ1}ψ1U{χ2}true], tvorimo v zadnjem stanju dgnpth diagnosticno potza formulo ψ1 le v primeru, da se dgnpth ne konca s ciklom, da dgnpth ni praznapot, da za zadnji dogodek na dgnpth velja formula dogodka χ1 in da v zadnjemstanju dgnpth ne velja formula ψ1;

• ce je ϑ = AA[{false}ψ1 U {χ2} ψ2] ali ϑ = AA[{χ1}false U {χ2} ψ2], tvorimo vzadnjem stanju dgnpth diagnosticno pot za formulo ψ2 le v primeru, da se dgnpthne konca v zagatnem stanju in za zadnji dogodek na dgnpth velja formula dogodkaχ2.

86 4 Diagnostika ter price in protiprimeri pri ACTLW

4.5 Avtomati pric in protiprimerov za ACTLW

Ce za dan LTS M in formulo ACTLW ϕ obstajajo linearne price oz. linearni protipri-meri, jih je v splosnem vec oz. celo neskoncno mnogo. Avtomati pric in protiprimerov sostruktura, s katero lahko predstavimo vec linearnih pric oz. protiprimerov naenkrat.

Definicija 4.7 (Koncni avtomat)Koncni avtomat je petorka A = (S,A,D, s0, F ), kjer je S mnozica stanj, A mnozicasimbolov, imenovana abeceda avtomata, D ⊆ S × A × S prehajalna relacija, s0 ∈ S

zacetno stanje in F mnozica koncnih stanj.

Beseda koncnega avtomata A = (S,A,D, s0, F ) je zaporedje simbolov iz A na kate-rikoli poti, ki se zacne v s0 in konca v enem od koncnih stanj iz F . Mnozica vseh besedkoncnega avtomata A tvori jezik koncnega avtomata A.

Izrek 4.6 (Obstoj koncne prakticne price in protiprimera pri ACTLW)Naj bo M koncni LTS. Ce iz slovnice, podane v izreku 4.3, izlocimo formule oblikeEE[{χ}true W {χ} ϕ] in AA[{χ}ϑ U {χ} true], potem so vse prakticna price za M |= ϕ

oz. vsi prakticni protiprimeri za M |= ϑ koncna zaporedja dogodkov,

Dokaz. Sledi iz konstrukcije prakticnih pric in protiprimerov.

Koncnost prakticne price oz. protiprimera zagotavljajo tudi izpeljane formule oblikeEEX{χ} ϕ, EEF{χ} ϕ, AAX{χ} ϑ in AAG{χ} ϑ, ne zagotavljajo pa jih formule oblikeEEG{χ} true in AAF{χ} true.

Definicija 4.8 (Avtomat pric in protiprimerov za ACTLW)Naj bosta ϕ in ϑ formuli ACTLW, katerih skladnja je definirana s slovnico, podano v izreku4.6, M pa koncni LTS. Avtomat pric za M|=ϕ je koncni avtomat, katerega jezik je mno-zica vseh koncnih prakticnih pric za M|=ϕ. Avtomat protiprimerov za M|=ϑ je koncniavtomat, katerega jezik je mnozica vseh koncnih prakticnih protiprimerov za M|=ϑ.

Izrek 4.7 (Obstoj avtomata pric in protiprimerov pri ACTLW)Naj bosta ϕ in ϑ formuli ACTLW, katerih skladnja je definirana s slovnico, podano v izreku4.6, M pa koncni LTS. Ce velja M |= ϕ, potem obstaja avtomat pric za M |= ϕ. Ce veljaM 6|= ϑ, potem obstaja avtomat protiprimerov za M |= ϑ.

Dokaz. Prakticne price za M |= ϕ so definirane s konstrukcijami, ki vsebujejo le enoj-no desno rekurzijo in jih zato lahko podamo z regularno slovnico. Ce se omejimo le nakoncne prakticne price, so vse besede v jeziku, dolocenem s to slovnico, koncne in zatoobstaja koncni avtomat s tem jezikom [73]. Enako velja tudi za jezik koncnih prakticnihprotiprimerov za M |= ϑ.

4.5 Avtomati pric in protiprimerov za ACTLW 87

V nadaljevanju je predstavljen algoritem WCA, ki tvori avtomat pric ali protiprimerovza koncni LTS M in formule ACTLW, katerih skladnja je definirana s slovnico, podano vizreku 4.6. Ce ϕ velja v M, algoritem tvori avtomat pric za M |= ϕ. Ce ϕ ne velja v M,algoritem tvori avtomat protiprimerov za M |= ϕ. Algoritem je rekurziven in neposrednosledi definiciji prakticnih pric in prakticnih protiprimerov. Podani algoritem je prilagoditevalgoritma za tvorjenje avtomata pric oz. avtomata protiprimerov za formule ACTL iz [65].

Tvorjenje avtomata se pricne v funkciji WCAgenerator, ki izvede globalno preverjanjemodela, zgradi in inicializira drevo podformul ter poklice funkcijo generate (slika 4.12).Osrednji funkciji pri tvorjenju avtomata pric sta funkciji WAgen in WAbuild (slika 4.13),pri tvorjenju avtomata protiprimerov pa funkciji CAgen in CAbuild (slika 4.14). Algoritemvsebuje pomozno funkcijo conbuild (slika 4.15), ki tvori vozlisca in povezave v avtomatu.

WCAgenerator (M, ϕ) {{

za vse podformule ϕ′ formule ϕ {tvori vozlisce v drevesu podformul;v vozliscu shrani podmnozico stanj Sϕ′ , za katere M |= ϕ′;v vozliscu shrani prazno relacijo Rϕ′ ;

}

tvori prazni avtomat WCA;v avtomatu WCA tvori zacetno stanje t;naj bo s zacetno stanje v M;if (s ∈ Sϕ) generate (M, ϕ, s, t, witness);

else generate (M, ϕ, s, t, counterexample);}

generate (M, ϕ, s, t, type){

if (type == null) {v mnozico koncnih stanj avtomata WCA dodaj t;

} else {v relacijo Rϕ dodaj par (t, s);if (type == witness) WAgen (M, ϕ, s, t);if (type == counterexample) CAgen (M, ϕ, s, t);

}}

Slika 4.12: Algoritem za tvorjenje avtomatov pric in protiprimerov (1. del)

88 4 Diagnostika ter price in protiprimeri pri ACTLW

WAgen (M, ϕ, s, t){

case ϕ == true:generate (M, ϕ, s, t, null);break;

case ϕ == ¬ψ1:generate (M, ψ1, s, t, counterexample);break;

case ϕ == ψ1 ∨ ψ2:if (s ∈ Sψ1

) generate (M, ψ1, s, t, witness);if (s ∈ Sψ2

) generate (M, ψ2, s, t, witness);break;

case ϕ == EE[{χ1}true U {χ2} ψ2]:WAbuild (M, ϕ, s, t, χ1, true, χ2, ψ2);break;

case ϕ == EE[{χ1}false U {χ2} ψ2]:case ϕ == EE[{false}ψ1 U {χ2} ψ2]:case ϕ == EE[{χ1}false W {χ2} ψ2]:case ϕ == EE[{false}ψ1 W {χ2} ψ2]:WAbuild (M, ϕ, s, t, false, false, χ2, ψ2);break;

}

WAbuild (M, ϕ, s, t, χ1, ψ1, χ2, ψ2){

naj bo δ1 mnozica vseh (χ1, ψ1)-prehodov iz stanja s;za vse prehode (s, a, s′) ∈ δ1 {

if (s′ ∈ Sϕ) conbuild (M, ϕ, a, s′, t, witness);}

naj bo δ2 mnozica vseh (χ2, ψ2)-prehodov iz stanja s;za vse prehode (s, a, s′) ∈ δ2 {conbuild (M, ψ2, a, s′, t, witness);

}}

Slika 4.13: Algoritem za tvorjenje avtomatov pric in protiprimerov (2. del)

4.5 Avtomati pric in protiprimerov za ACTLW 89

CAgen (M, ϕ, s, t){

case ϕ == ¬ψ1:generate (M, ψ1, s, t, witness);break;

case ϕ == AA[{χ1}ψ1 W {χ2} true]:CAbuild (M, ϕ, s, t, χ1, ψ1, χ2, true);break;

case ϕ == AA[{χ1}ψ1 W {false} ψ2]:case ϕ == AA[{χ1}ψ1 W {χ2} false]:CAbuild (M, ϕ, s, t, χ1, ψ1, false, false);break;

case ϕ == AA[{false}ψ1 U {χ2} ψ2]:case ϕ == AA[{χ1}false U {χ2} ψ2]:case ϕ == AA[{false}ψ1 W {χ2} ψ2]:case ϕ == AA[{χ1}false W {χ2} ψ2]:CAbuild (M, ϕ, s, t, false, false, χ2, ψ2);break;

}

CAbuild (M, ϕ, s, t, χ1, ψ1, χ2, ψ2){

naj bo δ1 mnozica vseh prehodov iz stanja s,ki so (χ1, ψ1)-prehodi in niso (χ2, ψ2)-prehodi;

za vse prehode (s, a, s′) ∈ δ1 {if (s′ 6∈ Sϕ) conbuild (M, ϕ, a, s′, t, counterexample);

}

naj bo δ2 mnozica vseh prehodov iz stanja s,ki niso niti (χ1, ψ1)-prehodi niti (χ2, ψ2)-prehodi;

za vse prehode (s, a, s′) ∈ δ2 {if (a |= χ1 ∧ a |= χ2) conbuild (M, ψ1, a, s′, t, counterexample);if (a |= χ1 ∧ a 6|= χ2) conbuild (M, ψ1, a, s′, t, counterexample);if (a 6|= χ1 ∧ a |= χ2) conbuild (M, ψ2, a, s′, t, counterexample);if (a 6|= χ1 ∧ a 6|= χ2) conbuild (M, ϕ, a, s′, t, null);

}}

Slika 4.14: Algoritem za tvorjenje avtomatov pric in protiprimerov (3. del)

90 4 Diagnostika ter price in protiprimeri pri ACTLW

conbuild (M, ϕ, a, s′, t, type) {if ((type == null) || (stanje s′ ni v relaciji Rϕ z nobenim stanjem)) {

v avtomatu WCA tvori novo stanje t′;ce se ne obstaja, v avtomat WCA dodaj prehod (t, a, t′);generate (M, ϕ, s′, t′, type);

} else {naj bo t′ stanje, ki je v relaciji Rϕ s stanjem s′;ce se ne obstaja, v avtomat WCA dodaj prehod (t, a, t′);

}}

Slika 4.15: Algoritem za tvorjenje avtomatov pric in protiprimerov (4. del)

Algoritem za tvorjenje avtomata preiskuje prostor stanj danega LTS-ja. Preiskovanjeprostora stanj poteka rekurzivno glede na zgradbo formule in sledi njenemu drevesu po-dformul. Rekurzija se zakljuci v listih drevesa podformul, v katerih se pri ACTLW vednonahaja formula true. Algoritem uporablja iskanje v globino, v drevesu podformul pa sehrani informacija o tem, katera vozlisca so ze bila obiskana s katero podformulo. Spre-menljivke WCA, Sϕ in Rϕ so zaradi krajsega zapisa algoritma globalne spremenljivke.

Primer. Delovanje algoritma podrobneje razlozimo na primeru preprostega LTS-ja nasliki 4.16 in dveh preprostih formul ACTLW.

bbs1 s2 s3

a

(a) Preprost LTSa

bb wc3

wc4

wc2a

bwc1

aa wc2 wc3wc1

(b) Avtomat pric za formulo EEX{a} EEX{a} true

(c) Avtomat pric za formulo EEF{b} true

Slika 4.16: Preprost LTS in avtomata pric za dve preprosti formuli ACTLW

4.5 Avtomati pric in protiprimerov za ACTLW 91

Avtomat pric za formulo EEX{a} EEX{a} true je prikazan poleg LTS-ja na sliki 4.16.V orodju EST dobimo naslednje porocilo o tvorjenju tega avtomata:

EEX {a?} EEX {a?} true@@ Model checking: TRUE@@ Creating witness automaton@@ WCAgenerator: created empty witness automaton@@ WCAgenerator: created initial state wc1@@ generate: starting formula ‘EEX {a?} EEX {a?} true’

for (s=s1, t=wc1)@@ generate: added pair (wc1,s1) to R for the current formula@@ WAbuild: chosen transition s1-a?->s1 from delta2@@ conbuild: created state wc2, created transition wc1-a?->wc2@@ generate: starting formula ‘EEX {a?} true’ for (s=s1, t=wc2)@@ generate: added pair (wc2,s1) to R for the current formula@@ WAbuild: chosen transition s1-a?->s1 from delta2@@ conbuild: created state wc3, created transition wc2-a?->wc3@@ generate: starting formula ‘true’ for (s=s1, t=wc3)@@ generate: added pair (wc3,s1) to R for the current formula@@ generate: state wc3 marked as final@@ Witness automaton has been constructed.

Algoritem zacne v funkciji WCAgenerator in najprej opravi inicializacijo, med kateroizvede globalno preverjanje modela in tvori drevo podformul. V drevesu podformul se zavsako stanje s v danem LTS-ju in za vsako podformulo ϕ dane formule ACTLW shrani, ceϕ velja ali ne velja v s. Potem se tvori nov avtomat z zacetnim stanjem wc1. Ker formulaEEX{a} EEX{a} true velja v zacetnem stanju s1, se nato pricne tvorjenje avtomata pric.Funkcija generate doda v relacijo R za formulo EEX{a} EEX{a} true par sestavljen izzacetnega stanja LTS-ja in zacetnega stanja avtomata pric. Algoritem nato nadaljuje sfunkcijo WAgen. Ker je najbolj zunanji operator EEX, ki je okrajsava za EEU, se poklicefukcija WAbuild s parametri χ1 = false, ψ1 = false, χ2 = a in ψ2 = EEX{a} true. Mnozicaδ1 je prazna, ker ne obstaja noben (χ1, ψ1)-prehod. Mnozica δ2 vsebuje le prehod (s1, a,s1). Stanje s1 se ni bilo obiskano s formulo EEX{a} true in v avtomatu pric se ne obstajanobeno stanje avtomata pric, ki bi bilo v relaciji s stanjem s1. Funkcija conbuild tvoriv avtomatu pric novo stanje wc2 in prehod (wc1, a, wc2). Nato se rekurzivno poklicefunkcija generate za formulo EEX{a} true. V tem klicu je ψ2 = true. Mnozica δ1 je spetprazna, v mnozici δ2 pa je spet prehod (s1, a, s1). Ker stanje s1 se ni bilo obiskano sformulo true, funkcija conbuild tvori v avtomatu pric novo stanje wc3 in prehod (wc2, a,wc3). V nadaljevanju se stanje wc3 oznaci kot koncno stanje, tvorjenje avtomata pric pase nato zakljuci.

92 4 Diagnostika ter price in protiprimeri pri ACTLW

Vloga relacijRϕ je nekoliko bolj razvidna v primeru tvorjenja avtomata pric za formuloEEF{b} true, ki je okrajsava za formulo EE[{true}true U {b} true]. Prakticne price za toformulo so b, bb, ab, abb, aab, aabb, aaab, aaabb ... Avtomat pric za to formulo je prikazanpoleg LTS-ja na sliki 4.16. V orodju EST dobimo naslednje porocilo:

EEF {b?} true@@ Model checking: TRUE@@ Creating witness automaton@@ WCAgenerator: created empty witness automaton@@ WCAgenerator: created initial state wc1@@ generate: starting formula ‘EEF {b?} true’ for (s=s1, t=wc1)@@ generate: added pair (wc1,s1) to R for the current formula@@ WAbuild: chosen transition s1-a?->s1 from delta1@@ conbuild: created transition wc1-a?->wc1@@ WAbuild: chosen transition s1-b?->s2 from delta1@@ conbuild: created state wc2, created transition wc1-b?->wc2@@ generate: starting formula ‘EEF {b?} true’ for (s=s2, t=wc2)@@ generate: added pair (wc2,s2) to R for the current formula@@ WAbuild: chosen transition s2-b?->s3 from delta2@@ conbuild: created state wc3, created transition wc2-b?->wc3@@ generate: starting formula ‘true’ for (s=s3, t=wc3)@@ generate: added pair (wc3,s3) to R for the current formula@@ generate: state wc3 marked as final@@ WAbuild: chosen transition s1-b?->s2 from delta2@@ conbuild: created state wc4, created transition wc1-b?->wc4@@ generate: starting formula ‘true’ for (s=s2, t=wc4)@@ generate: added pair (wc4,s2) to R for the current formula@@ generate: state wc4 marked as final@@ Witness automaton has been constructed.

Parametri prvega klica funkcije WAbuild so χ1 = true, ψ1 = true, χ2 = b in ψ2 = true.Mnozica δ1 vsebuje prehoda (s1, a, s1) in (s1, b, s2). Mnozica δ2 vsebuje prehod (s1,b, s2). Funkcija WAbuild najprej obdela prehode v mnozici δ1, in sicer kot prvega izbereprehod (s1, a, s1). Poklice funkcijo conbuild, ki ugotovi, da relacija REEF{b} true zevsebuje par stanj (s1, wc1), zato ne tvori novega stanja. Doda samo prehod (wc1, a, wc1)in se zakljuci. Nato funkcija WAbuild iz mnozice δ1 izbere prehod (s1, b, s2). Tvori senovo stanje wc2 in prehod (wc1, b, wc2). Nato se rekurzivno poklice funkcija generateza formulo EEF{b} true. Pri tem klicu mnozici δ1 in δ2 obe vsebujeta prehod (s2, b, s3).Ker v stanju s3 ne velja formula EEF{b} true, se med obdelavo mnozice δ1 za ta pre-hod ne naredi nicesar, tudi ni nobenega zapisa v dobljenem porocilu. Po drugi strani paprehod (s2, b, s3) v mnozici δ2, zahteva, da se v avtomatu pric tvorita stanje wc3 in prehod

4.5 Avtomati pric in protiprimerov za ACTLW 93

(wc2, b, wc3). V nadaljevanju se stanje wc3 oznaci kot koncno stanje in rekurzivni klicse konca. Algoritem pa mora obdelati se prehode iz mnozice δ2 iz prvega klica funkcijeWAbuild. Med to obdelavo se v avtomatu pric tvorita koncno stanje wc4 in prehod (wc1,b, wc4).

Ce v LTS vpeljemo zagatna stanja, je potrebno dopolniti algoritme za preverjanje mo-dela, zato moramo dopolniti tudi algoritem za tvorjenje avtomata pric in protiprimerov. Nasliki 4.17 so prikazane vse potrebne spremembe.

WAgen (M, ϕ, s, t){

case ϕ == EE[{χ1}false W {χ2} ψ2]:case ϕ == EE[{false}ψ1 W {χ2} ψ2]:

if (s je zagatno stanje) {generate (M, ϕ, s, t, null);

} else {WAbuild (M, ϕ, s, t, false, false, χ2, ψ2);

}

break;}

CAgen (M, ϕ, s, t){

case ϕ == AA[{false}ψ1 U {χ2} ψ2]:case ϕ == AA[{χ1}false U {χ2} ψ2]:

if (s je zagatno stanje) {generate (M, ϕ, s, t, null);

} else {CAbuild (M, ϕ, s, t, false, false, χ2, ψ2);

}

break;}

Slika 4.17: Dopolnitev algoritma za tvorjenje avtomata pric in protiprimerov

Primer. V poglavju 2 je prikazana preslikava actl2actlw, ki omogoca, da preverjanjemodela z ACTLW in tudi algoritme za tvorjenje diagnostike, prakticnih pric in protipri-merov ter avtomatov pric in protiprimerov uporabimo tudi za primere, ko so lastnostimodela opisane s formulami ACTL. Na sliki 4.18 je prikazanih nekaj avtomatov, ki jihdobimo za dan LTS in dane formule ACTL [65]. Dodatno, LTS v tem primeru vsebuje

94 4 Diagnostika ter price in protiprimeri pri ACTLW

zagatna stanja. Iz tvorjenih avtomatov je razvidno, da algoritem ne tvori nujno minimal-nega koncnega avtomata. Orodje EST ima moznost minimizacije koncnih avtomatov in nasliki je s crtkanimi crtami oznaceno, kaj dobimo po minimizaciji.

a

a

a a

a

aτc

baa

aa b

τ a

a

a

a

a

τc

a

ac

(b) Avtomat pric za ∃Xa true

(a) LTS, ki predstavlja model sistema

(c) Avtomat pric za ∃Xa ∃Xa true

(d) Avtomat pric za ∃F ∃Xa true (e) Avtomat pric za ∃(true aUb true)

(f) Avtomat protiprimerov za ∀Xa true (g) Avtomat protiprimerov za ∀Xτ ∀Xa true

Slika 4.18: Avtomati pric in protiprimerov za formule ACTL

Poglavje 5

Prakticni primeri

5.1 Orodje za verifikacijo sistemov EST

5.1.1 Kratka predstavitev orodja

EST (Efficient Symbolic Tools) je orodje za avtomatsko verifikacijo sistemov s socasnostjo,ki zdruzuje razne simbolicne algoritme in ucinkovit paket za BDD-je [62]. V celoti je bilorazvito na Fakulteti za elektrotehniko, racunalnistvo in informatiko v Mariboru. Tece narazlicnih operacijskih sistemih, tudi na racunalnikih z operacijskim sistemom Linux inMicrosoft Windows. Odlikuje se po razumljivi izvorni kodi in skrbno implementiranihalgoritmih. Jedro orodja EST je napisano v programskem jeziku C in prevedeno s prevajal-nikom gcc. Razpoznavalniki so narejeni z orodjema Flex in Bison. Preprost uporabniskivmesnik je napisan v skriptnem jeziku Tcl/Tk. Uporabnik lahko ukaze natipka ali pa jihizbere iz menujev. Orodje zna izvajati tudi skripte v jeziku Tcl.

Sistem, ki ga verificiramo z EST, podamo s procesno algebro CCS, interno pa je pred-stavljen v obliki oznacenega sistema prehajanja stanj. Specifikacija sistema se prebere izdatoteke. Orodje EST omogoca paralelno kompozicijo sistemov ter zna preveriti strogoopazovalno ekvivalenco, sibko opazovalno ekvivalenco, ekvivalenco sledi, testno ekviva-lenco in izvesti preverjanje modela z ACTL in ACTLW.

Orodje EST je zgrajeno hierarhicno in omogoca sorazmerno enostavne razsiritve. Tre-nutno ga sestavljajo stirje moduli. Modul bdd je splosnonamenski paket za BDD-je.Omogoca predstavitev logicnih funkcij z ROBDD-ji z oznacenimi povezavami [11]. Mo-dul vsebuje preprost razpoznavalnik, avtomatsko ciscenje odvecnih vozlisc in funkcije zavodenje statistike o velikosti BDD-jev in ucinkovitosti njihove predstavitve. Podprte sovse standardne operacije nad logicnimi funkcijami in tudi racunanje funkcijskega ostanka,eksistencna in univerzalnostna abstrakcija ter preimenovanje spremenljivk. Modul pa je

95

96 5 Prakticni primeri

ogrodje za predstavitev sistemov z LTS-ji. Njegova osnovna naloga je kodiranje in dekodi-ranje LTS-jev. Vsebuje pa tudi razpoznavalnik za vnos LTS-jev iz datotek. Modul versisvsebuje razpoznavalnik za CCS in algoritme za operacije nad procesi. Najpomembnejseoperacije so paralelna kompozicija procesov ter preverjanje raznih ekvivalencnih relacij.Modul mc omogoca preverjanje modela z ACTL in ACTLW. Omogoca tvorjenje diagno-stike, prakticnih pric in protiprimerov ter avtomatov pric in protiprimerov.

Osnovni ukazi orodja EST so:

• source - prebere in izvede skripto v jeziku TCL,

• bdd out function - izpise logicno funkcijo,

• bdd out BDD - izpise zgradbo BDD-ja za dano logicno funkcijo,

• bdd node number - presteje vozlisca v BDD-ju

• pa read process - prebere opis LTS-ja iz datoteke,

• pa encode process - kodira LTS,

• pa decode process - dekodira dan LTS,

• pa decode composition - dekodira dano kompozicijo LTS-jev,

• pa copy process - kopira LTS, med kopiranjem lahko preimenujemo dogodke,

• pa process2composition - pretvori LTS v format, v katerem so shranjenekompozicije LTS-jev,

• pa composition2process - pretvori kompozicijo LTS-jev v format, v kateremso shranjeni posamezni LTS-ji,

• versis read ccs - prebere specifikacijo CCS iz datoteke,

• versis compose - izvede paralelno kompozicijo LTS-jev,

• versis strong equivalence - preveri strogo opazovalno ekvivalenco meddvema LTS-jema,

• versis weak equivalence -preveri sibko opazovalno ekvivalenco med dvemaLTS-jema,

• versis trace equivalence -preveri ekvivalenco sledi med dvema LTS-jema,

• versis test equivalence - preveri testno ekvivalenco med dvema LTS-jema,

5.1 Orodje za verifikacijo sistemov EST 97

• versis strong minimization - poisce najmanjsi LTS, ki je strogo opazo-valno ekvivalenten danemu LTS-ju,

• versis weak minimization - poisce najmanjsi LTS, ki je sibko opazovalnoekvivalenten danemu LTS-ju,

• versis trace minimization - poisce najmanjsi LTS, ki ima ekvivalentnesledi kot dani LTS,

• mc check ACTL - izvede preverjanje modela z ACTL oz. ACTLW.

5.1.2 Specifikacija modelov

Za vnos modelov imamo v orodju EST na voljo dva razpoznavalnika. V modul pa je vgra-jen razpoznavalnik za preprost format, v katerem lahko podamo LTS-je. Modul versispa vsebuje razpoznavalnik za CCS.

Preprost format za podajanje LTS-jev je zgrajen iz imena LTS-ja (oznaka PROCESS),imena mnozice dogodkov (oznaka SORT), zacetnega stanja (oznaka INITIAL STATE), inseznama prehodov v LTS-ju (oznaka TRANSITIONS). Dogodki v LTS-jih se po vzoruCSP-ja delijo na vhodne, katerih ime se konca z znakom ’?’, in izhodne, katerih ime sekonca z znakom ’!’. LTS-ji lahko vsebujejo notranji dogodek τ . Ce se v stanju zacne vecprehodov, jih lahko nastejemo v eni vrstici tako, da uporabimo operator ’+’. Uporabljenamnozica dogodkov mora biti poprej definirana tako, da nastejemo imena vseh zunanjihdogodkov, ki jih bo vseboval opis LTS-ja. Primer LTS-ja, ki ga razpozna razpoznavalnikiz modula pa, je prikazan na sliki 5.1.

/* sort is a list of action names without ’!’ and ’?’ */SORT sortExample a,b,c

/* LTS is described by its transitions */PROCESS SSORT sortExampleINITIAL STATE s1TRANSITIONS

s1 = a? . s1 + a? . s2 + c? . s4 + TAU . s5s2 = b? . s3s5 = a? . s1

Slika 5.1: Specifikacija modela z LTS-jem

98 5 Prakticni primeri

Razpoznavalnik za specifikacije CCS dovoljuje, da znaka ’!’ in ’?’ pisemo pred ali zaimenom dogodka. Operator predpone lahko zapisemo kot ’.’ ali pa kot ’;’, torej je S = a!.Tin S = a!;T enakovredno in pomeni, da proces S najprej izvede dogodek a! in potem procesT. Primer specifikacije CCS, ki jo razpozna razpoznavalnik iz modula versis, je na sliki5.2.

PHILO = !think;!hungry;!takeleft;!takeright;!eat;!dropleft;!dropright;PHILO

FORK = ?take;?drop;FORK

net S = | (PHILO [take3/takeleft][take1/takeright][eat1/eat] [think1/think] [hungry1/hungry][drop3/dropleft][drop1/dropright],

FORK [take1/take][drop1/drop],

PHILO [take1/takeleft][take2/takeright][eat2/eat] [think2/think] [hungry2/hungry][drop1/dropleft][drop2/dropright],

FORK [take2/take][drop2/drop],

PHILO [take2/takeleft][take3/takeright][eat3/eat] [think3/think] [hungry3/hungry][drop2/dropleft][drop3/dropright],

FORK [take3/take][drop3/drop]

) \take1\drop1\take2\drop2\take3\drop3

Slika 5.2: Specifikacija modela s procesno algebro CCS

5.1 Orodje za verifikacijo sistemov EST 99

5.1.3 Preverjanje modela z ACTL in ACTLW

Preverjanje modela v orodju EST izvedemo z ukazom mc check ACTL, ki ima vec para-metrov, od katerih so prvi trije obvezni:

• s prvima dvema parametroma podamo ime modela in sicer tako, da zapisemo“0 model name”, ce je model shranjen kot posamezen LTS, ali “1 model name”,ce je model kompozicija LTS-jev,

• tretji parameter je ime datoteke, v kateri so formule ACTL oz. ACTLW.

Sledi neobvezni parameter, s katerim zahtevamo tvorjenje diagnostike, prakticnih pric inprotiprimerov, avtomatov pric in protiprimerov ter dolocimo izgled porocila, ki se bo tvo-rilo. Modul za preverjanje modela pozna naslednje opcije, ki jih lahko zdruzujemo:

• mc simple - privzeto, brez vseh dodatnih izpisov,

• mc diagnostic - tvori diagnostiko,

• mc linear - tvori prakticno prico oz. protiprimer,

• mc automaton - tvori avtomat pric oz. protiprimerov,

• mc explain - bolj podrobno porocilo,

• mc tracepath - privzeto so vse poti v porocilu podane le kot par prvo in zadnjestanje na poti, s to izbiro pa zahtevamo, da se poti izpisejo v celoti.

Formule ACTL in ACTLW podamo na datoteki v skladu s specifikacijo BNF, ki jepodana na sliki 5.3. Vsaka formula se mora koncati z znakom ’;’ in sme vsebovati le tistedogodke, ki jih pozna model, ki ga preverjamo. V datoteki lahko zapisemo tudi komentarjedveh vrst. Besedilo, ki je omejeno z ’/*’ in ’*/’, je navaden komentar. Besedilo v vrstici, kise zacne z znakom ’#’, je tudi komentar a se med preverjanjem modela vkljuci v porocilo.

V formulah ACTL in ACTLW so dovoljeni vsi standardni operatorji, formule pa lahkovsebujejo tudi okrajsave. Dodatno so pri formulah ACTLW dovoljene tudi nedoslednerazlicice operatorjev U, W in G, ki so bile predstavljene v [64] in so definirane na naslednjinacin (analogno tudi za formule z operatorjem AA):

EE[ϕ {χ} U {χ′} ϕ′] , ϕ ∧ EE[{χ} ϕ U {χ′} ϕ′]

EE[ϕ {χ} W {χ′} ϕ′] , ϕ ∧ EE[{χ} ϕ W {χ′} ϕ′]

EEG ϕ {χ} , ϕ ∧ EEG{χ} ϕ

100 5 Prakticni primeri

<ACTL> ::= ’TRUE’ | ’FALSE’ | ’(’ <ACTL> ’)’ |’NOT’ <ACTL> | <ACTL> ’OR’ <ACTL> |<ACTL> ’AND’ <ACTL> | <ACTL> ’IMPL’ <ACTL> |<STDACTL> | <ACTLW>

<STDACTL> ::= ’E’ ’[’ <ACTL> ’{’ <OBSACTION> ’}’ ’U’’{’ <OBSACTION> ’}’ <ACTL> ’]’ |

’A’ ’[’ <ACTL> ’{’ <OBSACTION> ’}’ ’U’’{’ <OBSACTION> ’}’ <ACTL> ’]’ |

’E’ ’[’ <ACTL> ’{’ <OBSACTION> ’}’ ’U’ <ACTL> ’]’ |’E’ ’[’ <ACTL> ’{’ <OBSACTION> ’}’ ’U’ <ACTL> ’]’ |’A’ ’[’ <ACTL> ’U’ <ACTL> ’]’ |’E’ ’[’ <ACTL> ’U’ <ACTL> ’]’ |’EX’ ’TAU’ <ACTL> | ’AX’ ’TAU’ <ACTL> |’EX’ <OBSACTION> <ACTL> | ’AX’ <OBSACTION> <ACTL> |’EF’ <ACTL> | ’AF’ <ACTL> |’EG’ <ACTL> | ’AG’ <ACTL> |<ACTL> ’<’ <OBSACTION> ’>’ <ACTL> |<ACTL> ’<’ ’EPS’ ’>’ <ACTL> |’<’ <OBSACTION> ’>’ <ACTL> | ’<’ ’EPS’ ’>’ <ACTL> |’[’ <OBSACTION> ’]’ <ACTL> | ’[’ ’EPS’ ’]’ <ACTL

<OBSACTION> ::= ’TRUE’ | ’FALSE’ | observable_action<OBSACTION> ::= ’(’ <OBSACTION> ’)’ | ’NOT’ <OBSACTION> |

<OBSACTION> ’OR’ <OBSACTION> |<OBSACTION> ’AND’ <OBSACTION>

<ACTLW> ::= ’EE’ ’[’ <LEFT> ’U’ <LEFT> ’]’ |’EE’ ’[’ <RIGHT> ’U’ <LEFT> ’]’ |’AA’ ’[’ <LEFT> ’U’ <LEFT> ’]’ |’AA’ ’[’ <RIGHT> ’U’ <LEFT> ’]’ |’EE’ ’[’ <LEFT> ’W’ <LEFT> ’]’ |’EE’ ’[’ <RIGHT> ’W’ <LEFT> ’]’ |’AA’ ’[’ <LEFT> ’W’ <LEFT> ’]’ |’AA’ ’[’ <RIGHT> ’W’ <LEFT> ’]’ |’EEX’ <LEFT> | ’AAX’ <LEFT> |’EEF’ <LEFT> | ’AAF’ <LEFT> |’EEG’ <LEFT> | ’EEG’ <RIGHT> |’AAG’ <LEFT> | ’AAG’ <RIGHT>

<LEFT> ::= ’{’ <ACTION> ’}’ <ACTL> | ’{’ <ACTION> ’}’ | <ACTL><RIGHT> ::= <ACTL> ’{’ <ACTION> ’}’<ACTION> ::= ’TRUE’ | ’FALSE’ | ’TAU’ | observable_action<ACTION> ::= ’(’ <ACTION> ’)’ | ’NOT’ <ACTION> |

<ACTION> ’OR’ <ACTION> |<ACTION> ’AND’ <ACTION>

Slika 5.3: Specifikacija BNF za formule ACTL in ACTLW

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 101

5.2 Verifikacija algoritmov za medsebojno izkljucevanje

Algoritmi za medsebojno izkljucevanje so dober primer sistemov s socasnostjo [4, 28, 63,83]. Z njimi resujemo problem preprecevanja hkratnega dostopa dveh ali vec procesov vdolocen del njihovega izvajanja, imenovan kriticno obmocje, ker lahko to povzroci napacnoobnasanje sistema. Algoritem za medsebojno izkljucevanje je pravilen, ce v nobenemtrenutku v nobenem izvajanju ne more biti v kriticnem obmocju vec kot en proces. Problemmedsebojnega izkljucevanja ima v racunalnistvu pomembno vlogo, saj ga potrebujemo npr.za preprecevanje istocasnega pisanja in branja iz iste pomnilniske lokacije.

Obstaja precej algoritmov za medsebojno izkljucevanje, zelo znani so naslednji:

• Dijkstrov algoritem, 1965,

• Dekkerjev algoritem, 1965,

• Knuthov algoritem, 1966,

• Hymanov algoritem, 1966,

• Lamportov pekarniski algoritem, 1974,

• Petersonov algoritem, 1981,

• Fischerjev algoritem, 1985,

• Lamportov enobitni algoritem, 1986.

Med nastetimi resitvami sta dve posebni. Hymanov algoritem je napacen, medtem koFischerjev algoritem vkljucuje mehanizme realnega casa.

Algoritme za medsebojno izkljucevanje lahko smiselno razdelimo na naslednje dele:

• algoritem je zunaj svoje kriticne sekcije,

• algoritem zeli vstopiti v svojo kriticno sekcijo,

• algoritem vstopi v svojo kriticno sekcijo in

• algoritem zapusti svojo kriticno sekcijo.

Bistveni del vsakega algoritma za medsebojno izkljucevanje je tisti, kjer algoritem zelivstopiti v svojo kriticno sekcijo in preverja pogoje, ali to sme narediti.

102 5 Prakticni primeri

V tem poglavju porocamo o verifikaciji Dekkerjevega algoritma, Hymanovega algo-ritma, treh razlicic Lamportovega pekarniskega algoritma in Petersonovega algoritma. Vvseh primerih smo obravnavali sistem, ko se za vstop v kriticno obmocje potegujeta dvaprocesa. Lamportov pekarniski algoritem sicer omogoca razsiritev modela na poljubnostevilo procesov. Procesa v obravnavanih algoritmih uporabljata skupni spremenljivki b1in b2, s katerima izrazita zeljo po vstopu v kriticno obmocje, in skupno spremenljivko k,na osnovi katere se procesa odlocata, ali smeta vstopiti v kriticno sekcijo.

Za verifikacijo algoritmov najprej oba procesa modeliramo z LTS-ji. Dogodki, ki jihbomo v teh modelih uporabljali, so naslednji:

• request1!, request2! - obvestilo procesa, da zeli vstopiti v kriticno obmocje,

• enter1!, enter2! - obvestilo procesa, da je vstopil v kriticno obmocje,

• exit1!, exit2! - obvestilo procesa, da je izstopil iz kriticnega obmocja,

• b1wt!, b1wf!, b2wt!, b2wf! - v skupno spremenljivko b1 oz. b2 se vpise vre-dnost true oz. false,

• b1rt?, b1rf?, b2rt?, b2rf? - preveri se vrednost skupne spremenljivke b1 oz.b2,

• kw1!, kw2! - v skupno spremenljivko k se vpise vrednost 1 oz. 2,

• kr1?, kr2? - preveri se vrednost skupne spremenljivke k.

Pisanje, branje in povecevanje spremenljivk modeliramo z LTS-ji tako, da za vsakospremenljivko tvorimo poseben LTS. Od tega, v katerem stanju se nahaja LTS za posa-mezno spremenljivko, je odvisna njena vrednost. Na ta nacin lahko predstavimo le spre-menljivke, ki imajo koncno (in za prakticno izvedbo dovolj majhno) zalogo vrednosti. Tose izkaze kot omejitev v Lamportovem pekarniskem algoritmu, v katerem procesi name-sto skupne spremenljivke k uporabljajo vsak svojo skupno spremenljivko ni, katere zalogavrednosti so cela stevila, za katera ni postavljena zgornja meja. V nasem modelu lahkospremenljivki n1 in n2 zavzameta le vrednosti 0, 1 ali 2. Ce vrednost katere od njiju preseze2, model zaide v zagatno stanje in s tem opozori na premajhno zalogo vrednosti. Zacetnevrednosti skupnih spremenljivk v podanih algoritmih so naslednje: b1 = false, b2 = false,k= 1, n1 = 0 in n2 = 0. LTS-ji, s katerimi predstavimo nekatere spremenljivke, in LTS, skaterim povecujemo vrednost spremenljivke n1, so prikazani na sliki 5.4.

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 103

PROCESS B1SORT sortMEINITIAL STATE BfTRANSITIONS B1f = b1rf!.B1f + b1wf?.B1f + b1wt?.B1t

B1t = b1rt!.B1t + b1wf?.B1f + b1wt?.B1t

PROCESS KSORT sortMEINITIAL STATE K1TRANSITIONS K1 = kr1!.K1 + kw1?.K1 + kw2?.K2

K2 = kr2!.K2 + kw1?.K1 + kw2?.K2

PROCESS N1SORT sortMEINITIAL STATE N10TRANSITIONS N10 = n1r0!.N10 + n1w0?.N10 + n1w1?.N11 + n1w2?.N12

N11 = n1r1!.N11 + n1w0?.N10 + n1w1?.N11 + n1w2?.N12N12 = n1r2!.N12 + n1w0?.N10 + n1w1?.N11 + n1w2?.N12

PROCESS N1PLUSSORT sortMEINITIAL STATE N1PLUSTRANSITIONS N1PLUS = n1plus?.PL1

PL1 = n2r0?.PL2 + n2r1?.PL3PL2 = n1w1!.PL4PL3 = n1w2!.PL4PL4 = n1plus!.N1PLUS

Slika 5.4: LTS-ji, s katerimi predstavimo in obdelujemo spremenljivke

5.2.1 Dekkerjev algoritem

Dekkerjev algoritem je eden od najstarejsih in zato tudi najbolj znanih pravilnih algoritmov

za medsebojno izkljucevanje. V Dekkerjevem algoritmu proces, ki zeli vstopiti v kriticno

sekcijo, najprej nastavi svojo spremenljivko b na true. Nato preveri vrednost b drugega

procesa. Ce je postavljena na false, sme vstopiti v kriticno sekcijo. Ce je tudi vrednost b

drugega procesa true, potem oba procesa zelita vstopiti v kriticno sekcijo. V tem primeru

oba procesa preverita vrednost spremenljivke k, ki odloca o tem, kateri proces sme nada-

ljevati in kateri mora pocakati. Dekkerjev algoritem je prikazan na sliki 5.5, njegov model

z LTS-ji pa na sliki 5.6.

104 5 Prakticni primeri

PROCESS P1while (true) {

a1: <noncriticial section>a2: b1=true;c1: while (b2==true) do {c2: if (k==2) {a3: b1=false;c3: while (k==2) wait;a4: b1=true;

}}

a5: <criticial section>a6: k=2;a7: b1=false;

}

PROCESS P2while (true) {<noncriticial section>b2=true;while (b1==true) {

if (k==1) {b2=false;while (k==1) wait;b2=true;

}}<criticial section>k=1;b2=false;

}

Slika 5.5: Dekkerjev algoritem za medsebojno izkljucevanje

b1wt!

b2rf?

kr2?

kw2!

enter1!

kr1?

b2rt?

b1wf!

b1wt!

kr1?b1wf!

exit1!

p0

p1

p2

p3

p4

p5

p6

p7

p8

p9

Slika 5.6: Model procesa P1 v Dekkerjevem algoritmu

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 105

5.2.2 Hymanov algoritem

Hymanov algoritem na sliki 5.7 je primer prevec poenostavljenega in zato napacnega algo-ritma za medsebojno izkljucevanje. Model tega algoritma z LTS-ji je na sliki 5.8.

PROCESS P1while (true) {

a1: <noncriticial section>a2: b1=true;c1: while (k<>1) {c2: while (b2==true) wait;a3: k=1;

}a4: <criticial section>a5: b1=false;

}

PROCESS P2while (true) {<noncriticial section>b2=true;while (k<>2) {

while (b1==true) wait;k=2;

}<criticial section>b2=false;

}

Slika 5.7: Hymanov algoritem za medsebojno izkljucevanje

b1wt!

enter1!b1wf!

kr2?kr1?

exit1!

b2rf?

kw1!

p0

p1

p2

p3

p4

p5

p6

Slika 5.8: Model procesa P1 v Hymanovem algoritmu

Problem v Hymanovem algoritmu je naslednji. Naj bo b1 = false, b2 = false in k= 1,oba procesa pa naj se nahajata izven kriticnega obmocja. Vzemimo, da proces P2 izvedevrstice oznacene z a2, c1 in c2 in se nato iz nekega razloga ustavi, se preden nastavispremenljivko k na 2. V tem casu, ko P2 stoji, pa zacne delovati proces P1 in ker je k enak1, vstopi v svojo kriticno obmocje. Vendar pa lahko sedaj P2 nadaljuje svoje delo, nastavispremenljivko k na 2 in prav tako vstopi v svojo kriticno obmocje.

106 5 Prakticni primeri

5.2.3 Lamportov pekarniski algoritem

Lamportov pekarniski algoritem je pogosto obravnavan primer algoritma za medseboj-no izkljucevanje. Lahko ga razsirimo na vec kot dva procesa in ni odvisen od nobenihnizjenivojskih mehanizmov medsebojnega izkljucevanja, torej pravilno deluje tudi v pri-meru, ce procesi hkrati berejo in pisejo v skupne spremenljivke.

Lamportov pekarniski algoritem deluje po principu strezenja strank v pekarni, pri ce-mer so posameni procesi stranke, ki so lahko postrezene le po ena naenkrat. Za vrstnired se dogovorijo tako, da vsak proces vzame listek s stevilko. Tisti z najmanjso stevilkolahko vstopi v kriticno obmocje. V osnovi je sistem neskoncen, saj lahko stevilke na listkihrastejo preko vsake meje. Ko proces zapusti kriticno obmocje, dobi listek s stevilko 0, kipomeni, da proces nima zelje po vstopu v kriticno obmocje.

V literaturi lahko zasledimo, da so nekateri avtorji v primeru sistema, sestavljenegaiz dveh procesov, namenoma ali nenanemona poenostavili originalni algoritem. Znani stanam dve taki poenostavitvi. Prvo poenostavitev poimenujmo po avtorju clanka, v kateremsmo jo zasledili, Ben-Arijeva razlicica [7]. Drugo poenostavitev, ki smo jo zasledili v pro-jektu STeP, pa imenujmo razlicica STeP [9]. V Ben-Arijevi razlicici procesa ne uporabljataspremenljivk b1 in b2, njuno vlogo prevzameta spremenljivki n1 in n2. Razlicica STeP jese nekoliko bolj enostavna. Spremenljivki b1 in b2 sta preprosto izpusceni iz originalnegaalgoritma. Izkaze se, da je tako dobljen algoritem le pogojno pravilen.

Originalni pekarniski algoritem je podan na sliki 5.9, njegov model z LTS-ji pa je nasliki 5.10.

PROCESS P1while (true) {

a1: <noncriticial section>a2: b1=true;a3: n1=n2+1;a4: b1=false;c1: while (b2==true) wait;c2: while (n2<>0 and n1>n2) {

wait;}

a5: <criticial section>a6: n1=0;

}

PROCESS P2while (true) {

<noncriticial section>b2=true;n2=n1+1;b2=false;while (b1==true) wait;while (n1<>0 and n2>=n1) {wait;

}<criticial section>n2=0;

}

Slika 5.9: Lamportov pekarniski algoritem za medsebojno izkljucevanje

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 107

b1wt!

n1plus!

n1plus?

b1wf!

b2rf?

n1r2?

n1w0!

b2wt!

n2plus!

n2plus?

b2wf!

b1rf?

n2r2?

n1r0?

enter2!

exit1!

n2w0!

n2r1?

exit2!

n1r0?n1r1?

n2r2?

n2r0?

enter1!

n1r0?n1r2? n2r0?

p7

p8

p6

p5

p0

p2

p1

p3

p4

p6

p5

p0

p2

p1

p3

p4

p7

p8

p9

p9 p10

Slika 5.10: Modela procesov P1 in P2 v Lamportovem pekarniskem algoritmu

Procesa v algoritmu nista popolnoma simetricna, ampak se razlikujeta v pogoju v vr-stici, oznaceni s c2. Predpostavimo, da sta oba procesa v zacetnem stanju in da proces P1zeli vstopiti v svojo kriticno obmocje. Nastavi spremenljivko b1 na true in izvede sestevanjev vrstici oznaceni z a3. Potem vstopi v svojo kriticno obmocje, saj ima listek z najmanjsostevilko in pogoja c1 ter c2 to dovoljujeta. Vzemimo, da sedaj proces P2 prav tako zelivstopiti v kriticno obmocje. Vrednost spremenljivke n2 se postavi na 2, saj je n1 enak 1.Procesu P2 zato ni dovoljen vstop v kriticno obmocje ampak mora pocakati. Ko proces P1zapusti kriticno obmocje, dobi listek s stevilko 0. Proces P2 ima sedaj listek z najmanjsostevilko in lahko vstopi v kriticno obmocje. Se bolj zanimiva je situacija, ko zelita procesaP1 in P2 vstopiti v kriticno obmocje naenkrat. V tem primeru se lahko zgodi, da spremen-

108 5 Prakticni primeri

ljivki n1 in n2 obe dobita vrednost 1. Ker sta pogoja c2 razlicna, bo proces P1 vstopil vkriticno obmocje, proces P2 pa ne.

Ben-Arijeva razlicica pekarniskega algoritma je prikazana na sliki 5.11. njen model zLTS-ji pa je na sliki 5.12.

PROCESS P1while (true) {

a1: <noncriticial section>a2: n1=1;a3: n1=n2+1;c2: while (n2<>0 and n1>n2) {

wait;}

a5: <criticial section>a6: n1=0;

}

PROCESS P2while (true) {

<noncriticial section>n2=1;n2=n1+1;while (n1<>0 and n2>=n1) {wait;

}<criticial section>n2=0;

}

Slika 5.11: Ben-Arijeva razlicica pekarniskega algoritma

n1r2?

n2r2?

enter1!

n2r2?

n1r0?

enter2!

exit1! exit2!

n1w0! n2r1?

n1plus!

n1plus?

n1w1! n2w1!

n2plus!

n2plus?n2w0!

n2r0?n1r1?n1r0?

n1r0?n1r2?

n2r0?

p7

p8

p6

p5

p6

p5p7

p8

p9

p9 p10

p0

p2

p1

p0

p2

p1

Slika 5.12: Modela procesov P1 in P2 v Ben-Arijevi razlicici pekarniskega algoritma

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 109

Algoritem razlicice STeP je prikazan na sliki 5.13, njen model z LTS-ji pa je na sliki5.14.

PROCESS P1while (true) {

a1: <noncriticial section>a3: n1=n2+1;c2: while (n2<>0 and n1>n2) {

wait;}

a5: <criticial section>a6: n1=0;

}

PROCESS P2while (true) {<noncriticial section>n2=n1+1;while (n1<>0 and n2>=n1) {

wait;}<criticial section>n2=0;

}

Slika 5.13: Pekarniski algoritem iz projekta STeP

n1r2?

n2r2?

enter1!

n2r2?

n1r0?

enter2!

exit1! exit2!

n1w0! n2r1?

n1plus!

n1plus?

n2plus!

n2plus?n2w0!

n1r1?n1r0?

n2r0?n1r0?n1r2?

n2r0?

p7

p8

p6

p5

p6

p5p7

p8

p9

p9 p10

p2 p2

p0p0

Slika 5.14: Modela procesov P1 in P2 v pekarniskem algoritmu iz projekta STeP

5.2.4 Petersonov algoritem

Petersonov algoritem je eden mlajsih in preprostejsih algoritmov za medsebojno izklju-cevanje. V osnovi je razlicica Dekkerjevega algoritma. Prikazan je na sliki 5.15, njegovmodel z LTS-ji pa je na sliki 5.16

110 5 Prakticni primeri

PROCESS P1while (true) {

a1: <noncriticial section>a2: b1=true;a3: k=2;c1: while (b2==true and k==2)

{wait;

}a4: <criticial section>a5: b1=false;

}

PROCESS P2while (true) {<noncriticial section>b2=true;k=1;while (b1==true and k==1){

wait;}<criticial section>b2=false;

}

Slika 5.15: Petersonov algoritem za medsebojno izkljucevanje

b2rf?

enter1!

b2rt?

b1wt!

exit1!

b1wf!kr1?

kr2?

kw2!

p2

p4

p5

p6

p0

p1

p3

Slika 5.16: Model procesa P1 v Petersonovem algoritmu

V Petersonovem algoritmu proces, ki zeli vstopiti v kriticno obmocje, svojo spre-menljivko b nastavi na true, potem pa nastavi spremenljivko k tako, da kaze na drug proces.Torej vsak proces, ki zeli vstopiti v svoje kriticno obmocje, najprej drugemu procesu pustiprednost, da on vstopi v svoje kriticno obmocje se pred njim.

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 111

5.2.5 Rezultati verifikacije

Za verifikacijo algoritmov za medsebojno izkljucevanje smo najprej tvorili paralelno kom-pozicijo LTS-jev, ki tvorijo model algoritma. Uporabili smo paralelno kompozicijo, kateresemantika je v osnovi povzeta po semantiki paralelne kompozicije definirane v procesnialgebri CCS [68]. Pri Dekkerjevem algoritmu, Hymanovem algoritmu in Petersonovem al-goritmu smo sestavili LTS-je P1, P2, B1, B2 in K, pri vseh treh razlicicah pekarniskegaalgoritma pa LTS-je P1, P2, B1, B2, N1, N2, N1PLUS in N2PLUS. Poprej smo vmodele procesov P1 in P2 pri vseh algoritmih dodali prehod z dogodkom request1!oz. request2!, s katerima procesa okolico obvestita, da sta se zacela potegovati zavstop v kriticno obmocje. Ta dodatni prehod smo v model procesa P1 pri Dekkerjevemin Hymanovem algoritmu vstavili takoj za prehodom (p0)–b1wt!–>(p1), pri originalnempekarniskem algoritmu takoj za prehodom (p3)–b1wf!–>(p4), pri drugih dveh razlicicahpekarniskega algoritma takoj za prehodom (p2)–n1plus?–>(p5), pri Petersonovem al-goritmu pa takoj za prehodom (p1)–kw2!–>(p2). Analogno smo pri vseh algoritmih do-polnili tudi model procesa P2.

Verifikacijo vseh algoritmov smo izvedli s preverjanjem modela z ACTLW. Ker orodjeEST to omogoca, smo v formulah ACTLW zaradi krajsega zapisa uporabili Hennessy-Milnerjev operator [ ], katerega pomen je definiran pri opisu logike ACTL. Specificirali inpreverili smo naslednje lastnosti:

1. [Zagatno] Sestavljen model vsebuje zagatno stanje.(AAX {false}) ∨ (EEF AAX {false})

2. [Divergentno] Sestavljen model vsebuje divergentno stanje.EEF EEG {τ} EEX {true}

3. [Medsebojno izkljucevanje] Ce proces P1 (P2) vstopi v kriticno obmocje, potemproces P2 (P1) ne more vstopiti, razen ce proces P1 (P2) izstopi iz kriticne sekcije.AAG [enter1!] AA [{¬ enter2!} W {exit1!}]

AAG [enter2!] AA [{¬ enter1!} W {exit2!}]

4. [Prehitevanje] Ce proces P1 (P2) zeli vstopiti v kriticno obmocje, potem lahkoproces P2 (P1) vstopi v kriticno obmocje najvec enkrat, preden vstopi v kriticnoobmocje proces P1 (P2).AAG [request1!]¬EE [{¬enter1!}U {enter2!}EE [{¬enter1!}U {enter2!}]]

AAG [request2!]¬EE [{¬enter2!}U {enter1!}EE [{¬enter2!}U {enter1!}]]

112 5 Prakticni primeri

V tabeli na sliki 5.17 so prikazane velikosti sestavljenih modelov.

stevilo stanj stevilovseh prehodov

stevilo prehodovz

zunanjim dogodkomDekkerjev algoritem 164 310 88Hymanov algoritem 96 182 84

Lamportov algoritem 292 521 121Ben-Arijev algoritem 214 383 102Algoritem iz STeP-a 242 451 162Petersonov algoritem 68 136 42

Slika 5.17: Velikost modelov algoritmov za medsebojno izkljucevanje

Rezultati preverjanja modela so zbrani v tabeli na sliki 5.18.

zagatno divergentno izkljucevanje prehitevanje

Dekkerjev algoritem FALSE TRUE TRUE FALSEHymanov algoritem FALSE FALSE FALSE FALSE

Lamportov algoritem TRUE TRUE TRUE TRUEBen-Arijev algoritem TRUE TRUE TRUE TRUEAlgoritem iz STeP-a FALSE FALSE FALSE TRUEPetersonov algoritem FALSE TRUE TRUE TRUE

Slika 5.18: Rezultati verifikacije algoritmov za medsebojno izkljucevanje

Model originalnega pekarniskega algoritma in tudi model Ben-Arijeve razlicice vse-bujeta zagatna stanja, ki so posledica omejenega nabora vrednosti spremenljivk n1 in n2.Pekarniski algoritem namrec predpostavlja neomejeno zalogo vrednosti teh dveh spremen-ljivk, model pa je narejen tako, da kadarkoli vrednost katere od teh spremenljivk dosezenajvecjo dovoljeno vrednost in zahtevamo njeno povecanje, obstane v zagatnem stanju.Naj bo MAX najvecja vrednost spremenljivk n1 in n2. Z orodjem EST smo se prepricali,da v primeru omejitve zaloge vrednosti tako, da definiramo MAX+1 = 0, MAX+1 = 1

aliMAX+1 = MAX , algoritem ne deluje pravilno, torej je neomejenost zaloge vrednostibistvena zahteva tega algoritma.

5.2 Verifikacija algoritmov za medsebojno izkljucevanje 113

Modeli nekaterih algoritmov vsebujejo divergentna stanja. Neskoncna zaporedja no-tranjih dogodkov τ so posledica modeliranja in ne lastnost algoritmov. Pojavijo se zaraditega, ker se lahko eden od procesov ustavi in neskoncno dolgo caka, medtem pa drugiproces vztrajno preverja vrednost neke spremenljivke, kar je v sestavljenem modelu pona-zorjeno s prehodi z notranjim dogodkom τ . Divergentna stanja nimajo vpliva na rezultatepreverjanja modela glede medsebojnega izkljucevanja in prehitevanja. O tem bi se lahkoprepricali, ce bi orodje EST podpiralo postenostne omejitve, ki pa zal se niso podprte. Dej-stvo, da so divergentna stanja prisotna ravno pri vseh pravilnih algoritmih, je zgolj slucajoz. kvecjemu kaze na to, da sta ostala dva algoritma enostavnejsa za modeliranje z LTS-ji.

Za Hymanov algoritem in za razlicico pekarniskega algoritma iz projekta STeP smotvorili tudi diagnostiko in prakticen protiprimer, ki razlaga, zakaj ta dva algoritma ne zago-tavljata medsebojnega izkljucevanja. Dobljeni rezultati so na slikah 5.19 in 5.20.

AAG [enter1!] AA[{NOT enter2!} W {exit1!}]@@ Model checking: FALSE@@ Diagnostics@@ #0:AAG [enter1!] AA[{NOT enter2!} W {exit1!}]@@ There exists a path not satisfying formula #0:((P0<P1HYMAN>),(P0<P2HYMAN>),(B1f<B1>),(B2f<B2>),(K1<K>))--TAU->((P0<P1HYMAN>),(P1a<P2HYMAN>),(B1f<B1>),(B2t<B2>),(K1<K>))--request2!->((P0<P1HYMAN>),(P1<P2HYMAN>),(B1f<B1>),(B2t<B2>),(K1<K>))--TAU->((P0<P1HYMAN>),(P5<P2HYMAN>),(B1f<B1>),(B2t<B2>),(K1<K>))--TAU->((P0<P1HYMAN>),(P6<P2HYMAN>),(B1f<B1>),(B2t<B2>),(K1<K>))--TAU->((P1a<P1HYMAN>),(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>))--request1!->((P1<P1HYMAN>),(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>))--TAU->((P2<P1HYMAN>),(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>))@@ #1:[enter1!] AA[{NOT enter2!} W {exit1!}]@@ There exists a transition not satisfying formula #1:((P2<P1HYMAN>),(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>))--enter1!->((P3<P1HYMAN>),(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>))@@ #2:AA[{NOT enter2!} W {exit1!}]@@ There exists a path not satisfying formula #2:((P3<P1HYMAN>),(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>))--TAU->((P3<P1HYMAN>),(P1<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K2<K>))--TAU->((P3<P1HYMAN>),(P2<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K2<K>))--enter2!->((P3<P1HYMAN>),(P3<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K2<K>))@@ End Of Diagnostic@@ Counterexample:(TAU)(request2!)(TAU)(TAU)(TAU)(request1!)(TAU)(enter1!)(TAU)(TAU)(enter2!)

Slika 5.19: Diagnostika in protiprimer za Hymanov algoritem

Diagnostika, ki jo tvori orodje EST za Hymanov algoritem, se sklada z navedbami,ki smo jih za ta algoritem podali ze pri njegovem opisu. Opisuje scenarij, v kateremproces P2 iz zacetnega stanja p0 (v orodju je oznaceno kot P0<P2HYMAN) preide v sta-nje p6 in nato za nekaj casa obstane. Sestavljen model se v tem trenutku nahaja v sta-nju ((P0<P1HYMAN>),(P6<P2HYMAN>),(B1f<B1>),(B2t<B2>),(K1<K>)).Sedaj zacne delovati proces P1 in preide iz stanja p0 v stanje p3, torej vstopi v kriticnoobmocje. Sestavljen model se v tem trenutku nahaja v stanju ((P3<P1HYMAN>),

114 5 Prakticni primeri

AAG [enter1!] AA[{NOT enter2!} W {exit1!}]@@ Model checking: FALSE@@ Diagnostics@@ #0:AAG [enter1!] AA[{NOT enter2!} W {exit1!}]@@ There exists a path not satisfying formula #0:((P0<P1STEP>),(P0<P2STEP>),(N10<N1>),(N20<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))--TAU->((P0<P1STEP>),(P2<P2STEP>),(N10<N1>),(N20<N2>),(N1PLUS<N1PLUS>),(PL1<N2PLUS>))--TAU->((P0<P1STEP>),(P2<P2STEP>),(N10<N1>),(N20<N2>),(N1PLUS<N1PLUS>),(PL2<N2PLUS>))--TAU->((P2<P1STEP>),(P2<P2STEP>),(N10<N1>),(N20<N2>),(PL1<N1PLUS>),(PL2<N2PLUS>))--TAU->((P2<P1STEP>),(P2<P2STEP>),(N10<N1>),(N20<N2>),(PL2<N1PLUS>),(PL2<N2PLUS>))--TAU->((P2<P1STEP>),(P2<P2STEP>),(N10<N1>),(N21<N2>),(PL2<N1PLUS>),(PL4<N2PLUS>))--TAU->((P2<P1STEP>),(P5a<P2STEP>),(N10<N1>),(N21<N2>),(PL2<N1PLUS>),(N2PLUS<N2PLUS>))--request2!->((P2<P1STEP>),(P5<P2STEP>),(N10<N1>),(N21<N2>),(PL2<N1PLUS>),(N2PLUS<N2PLUS>))--TAU->((P2<P1STEP>),(P7<P2STEP>),(N10<N1>),(N21<N2>),(PL2<N1PLUS>),(N2PLUS<N2PLUS>))--TAU->((P2<P1STEP>),(P8<P2STEP>),(N10<N1>),(N21<N2>),(PL2<N1PLUS>),(N2PLUS<N2PLUS>))--TAU->((P2<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(PL4<N1PLUS>),(N2PLUS<N2PLUS>))--TAU->((P5a<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))--request1!->((P5<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))--TAU->((P7<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))@@ #1:[enter1!] AA[{NOT enter2!} W {exit1!}]@@ There exists a transition not satisfying formula #1:((P7<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))--enter1!->((P8<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))@@ #2:AA[{NOT enter2!} W {exit1!}]@@ There exists a path not satisfying formula #2:((P8<P1STEP>),(P8<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))--enter2!->((P8<P1STEP>),(P9<P2STEP>),(N11<N1>),(N21<N2>),(N1PLUS<N1PLUS>),(N2PLUS<N2PLUS>))@@ End Of Diagnostic@@ Counterexample:(TAU)(TAU)(TAU)(TAU)(TAU)(TAU)(request2!)(TAU)(TAU)(TAU)(TAU)(request1!)(TAU)(enter1!)(enter2!)

Slika 5.20: Diagnostika in protiprimer za pekarniski algoritem iz projekta STeP

(P6<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K1<K>)). Nato pa proces P2 nadal-juje izvajanje in preide iz stanja p6 preko stanj p1 in p2 v stanje p3. Sestavljen modelje sedaj v stanju ((P3<P1HYMAN>),(P3<P2HYMAN>),(B1t<B1>),(B2t<B2>),(K2<K>)), ki pa ni pravilno stanje, ker sta oba procesa v kriticnih obmocjih.

Problem v pekarniskem algoritmu iz projekta STeP, ki ga orodje EST razlozi s podanodiagnostiko, se pojavi zaradi povecevanja spremenljivk n1 in n2. Povecevanje spremen-ljivk ni atomarna operacija ampak se izvede v dveh korakih. Najprej se prebere vrednostdruge spremenljivke, nato pa se vpise za ena povecana vrednost. V prikazani diagnostikise vrednosti obeh spremenljivk povecujeta istocasno in oba procesa prebereta vrednostdruge spremenljivke pred povecanjem, to pa je vrednost 0. V nadaljevanju se najprej vspremenljivko n1 vpise vrednost 1, nato pa proces P2 preide v stanje p8, ki je tik predvstopom v kriticno obmocje. Sedaj se dokonca povecevanje spremenljivke n1, ki tudi dobivrednost 1, ker se je vrednost n2 prebrala se pred njenim povecanjem. Proces P1 preidev stanje p8 in torej vstopi v kriticno obmocje. Takoj zatem pa v kriticno obmocje vstopitudi proces P2. Z orodjem EST smo se prepricali, da je vzrok za napacno delovanje resoperacija povecevanja spremenljivk. Ce jo izvedemo kot nedeljivo operacijo, procesa nemoreta dobiti iste stevilke in potem algoritem deluje pravilno.

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 115

5.3 Verifikacija asinhronih vezij za medsebojno izkljuce-vanje

5.3.1 Kratek uvod v nacrtovanje asinhronih vezij

Asinhrona vezja so sestavljena iz vrat in zic. Vrata so preprosti in tudi kompleksnejsi ele-menti, za katere nas zanima le njihovo zunanje obnasanje. Vsa vrata imajo vsaj en vhod invsaj en izhod. Zice so povezave med vrati, po katerih se prenasajo binarni signali. Glede nanjihovo delovanje locimo kombinacijska in sekvencna asinhrona vezja. V kombinacijskihvezjih so za vsa vrata vsi izhodi logicne funkcije trenutnih vhodov. Sekvencna vezja pavsebujejo tudi vrata, pri katerih so nekateri izhodi odvisni od zgodovine vhodov. Spomin-ski efekt je posledica povratnih povezav.

Bistveni dejavnik pri nacrtovanju asinhronih vezij so predpostavke o zakasnitvah vratin povezav. Ce velikost zakasnitve precenimo, bo dobljeno vezje neucinkovito in drago.Ce pa jo podcenimo, lahko to vpliva na pravilnost delovanja vezja. Zakasnitve so lahkoomejene ali neomejene. Pri omejenih zakasnitvah je podana zgornja meja, za neomejenezakasnitve pa je znano le to, da so pozitivne in koncno velike. Zakasnitve so lahko praveali pa inertne. V primeru inertnih zakasnitev se impulzi signalov, ki so krajsi od dolocenemeje, izgubijo.

Z zakasnitvami je povezan tudi nacin delovanja vezja. Locimo osnovni in vhodno/iz-hodni nacin delovanja vezja. Osnovni nacin delovanja predpostavlja, da okolje asinhronegavezja vedno spremeni le vrednost enega vhodnega signala in potem pocaka, dokler vezjene postane stabilno. Asinhrono vezje je stabilno, ko se ne bo spremenila izhodna vrednostnobenih vrat v vezju, dokler okolica ne spremeni vrednosti kaksnemu od vhodnih signalovvezja. Nasprotno pa pri vhodno/izhodnem nacinu delovanja te omejitve ni.

Glede na uporabljen model zakasnitev obstajajo razlicni pristopi k nacrtovanju asinhro-nih vezij. V nadaljevanju bomo uporabljali Mullerjev model, ki temelji na predpostavki,da imajo vrata inertne in neomejene zakasnitve, medtem ko so zakasnitve zic tako majhne,da jih zanemarimo. Dodatno bomo privzeli osnovni nacin delovanja asinhronih vezij. Pre-prost primer nacrtovanja vezja z Mullerjevim modelom je element C na sliki 5.21. Taelement, ki je uporabljen v stevilnih asinhronih vezjih, spremeni vrednost na izhodu le,ko se obe vhodni vrednosti postavita na 0 ali pa obe na 1. Majhni pravokotniki na sliki5.21, oznaceni z d1, d2, d3 in d4, ponazarjajo, kje lahko pride do zakasnitev. Iz prikazanegamodela je dobro razvidna lastnost Mullerjevega modela, da izhodni signali vedno pridejoistocasno na vhode vseh vrat, do katerih vodijo povezave.

116 5 Prakticni primeri

Slika 5.21: Izvedba elementa C z osnovnimi vrati

Pri asinhronih vezjih obstajajo doloceni vzorci obnasanja, ki se jim nacrtovalci vezijposkusajo izogniti. Primer obnasanja, ki je v vecini primerov nezazeleno, je neskoncnospreminjanje notranjih signalov, ne da bi vezje vmes postalo stabilno. Obnasanje takegavezja je nepredvidljivo, ena od moznih posledic pa so oscilirajoci izhodi. Primer takegavezja in njegova simulacija sta na sliki 5.22.

Slika 5.22: Vezje z oscilirajocim izhodom

Ce se na izhodu vezja zaradi notranjih zakasnitev lahko pojavi eden ali vec nezelenihimpulzov ali ce lahko zaradi notranjih zakasnitev vezje postane stabilno z nezeleno kom-binacijo izhodov vrat, ima vezje hazard. Hazarde, ki se odrazajo z nezelenimi impulzi,delimo glede na njihovo obliko v staticne in dinamicne hazarde. Staticni hazard se zgodi,ko se vrednost signala za kratek cas spremeni, ceprav bi morala ostati nespremenjena. Di-namicni hazard se zgodi, ko signal pred spremembo vrednosti enkrat ali veckrat zaniha.

Za vsak hazard obstaja vzrok za njegov obstoj. V kombinacijskih vezjih se v osnovnemnacinu delovanja odrazajo le logicni hazardi. Logicni hazard je lastnost dolocene izvedbelogicne funkcije. Pojavi se zato, ker isti signal skozi vezje potuje po vec vzporednih poteh,ki se na nekih vratih zdruzijo. V kombinacijskih vezjih so hazardi vedno prehoden pojav,kar pomeni, da ce se dovolj dolgo ne spremeni noben vhod, potem postane vezje stabilno spravilnimi izhodi. V sekvencnih vezjih se lahko ze v osnovnem nacinu delovanja pojavijose druge oblike hazardov, ki niso povezane z izvedbo. Prehodni hazardi se podobno kotlogicni hazaradi odrazajo kot nezazeleni impulzi, ki se pojavijo zato, ker vhodni signali in

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 117

povratni signali niso enako zakasnjeni. Zaradi istega vzroka se lahko pojavijo tudi hazardistanja, ki pa se ne odrazajo z nezazelenimi impulzi, ampak tako da vezje postane stabilnoz nezazeleno kombinacijo vrednosti izhodov posameznih vrat vezja.

Kot primer si oglejmo nekatera vezja, ki vsebujejo razlicne vrste hazardov. Ob vsakemvezju je podana tudi simulacija, v kateri signali f , y1 in y2 prikazujejo obnasanje vezja,ce ni v njem nobenih zakasnitev, signali fd, y1d in y2d pa prikazujejo obnasanje vezja,ko na dolocenih mestih dodamo obcutne zakasnitve. Sliki 5.23 in 5.24 prikazujeta logicnahazarda. Staticni hazard na sliki 5.23 se pojavi, ko uporabimo zakasnjena invertorja. Di-namicni hazard na sliki 5.24 se pojavi, ko nekoliko zakasnimo leva vrata AND, hkrati pase bolj zakasnimo zgornji invertor. Slika 5.25 predstavlja prehodni hazard, ki se pojavi, kovrata AND dobijo novo vrednost iz povratne povezave prej kot novo vrednost vhodnegasignala. Slika 5.26 pa predstavlja hazard stanja. Po spremembi vrednosti vhodnega signalax imata izhodna signala v vezju brez zakasnitev vrednosti y1 = 0 in y2 = 1, takrat kouporabimo zakasnjen invertor, pa imata vrednosti y1d = 1 in y2d = 1.

Slika 5.23: Staticni hazard

Slika 5.24: Dinamicni hazard

118 5 Prakticni primeri

Slika 5.25: Prehodni hazard

Slika 5.26: Hazard stanja

5.3.2 Modeliranje asinhronih vezij z LTS-ji

Vrata in sestavljena vezja modeliramo z LTS-ji, ki opisujejo njihovo obnasanje, kakrsnovidi okolica. Vsak prehod v LTS-ju predstavlja spremembo vrednosti enega signala, pritem pa ne locimo, ali se vrednost spremeni iz 0 v 1 ali pa obratno. Ce spremembo signalapovzroci okolica vezja, uporabimo prehod z vhodnim dogodkom, ki ima za imenom seznak ’?’. Ce pa spremembo signala povzroci element oz. vezje samo, uporabimo prehodz izhodnim dogodkom, ki ima za imenom se znak ’!’. Hkratno spremembo vec signalovmodeliramo tako, da vkljucimo vec zaporedij prehodov, ki vsako opisuje eno od permutacijvrstnega reda sprememb. Zaporedja dogodkov, ki so mozna v LTS-ju, ustrezajo zapored-jem sprememb vrednosti signalov, ki se lahko zgodijo v vezju. Natancen cas, kdaj so sespremembe zgodile, nas ne zanima. Ce lahko dve vezji izvedeta enaka zaporedja prehodov,potem se za okolico obnasata enako, ne glede na to, ce je eno mnogo hitrejse od drugega.

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 119

Zakasnitve pa so vseeno pomembne, saj lahko vplivajo na vrstni red, v katerem se vredno-sti signalov spreminjajo. V modelu ne predpostavljamo konstantnih zakasnitev, ampak selahko zakasnitve med delovanjem spreminjajo. Model vsebuje vsa zaporedja prehodov, kiso mozna ob kakrsnihkoli razporeditvah zakasnitev, torej vsebuje tudi zaporedja prehodov,ki so mozna le ob cisto dolocenih razporeditvah zakasnitev, drugace pa ne. Ker prehodi vmodelu predstavljajo le spremembe vrednosti signalov, je pomembno, da dolocimo zacetnevrednosti vseh signalov.

Model vezja lahko vkljucuje manj ali pa vec podrobnosti glede notranje zgradbe vezja.V nadaljevanju bomo uporabili LTS-je tocno dolocene oblike, ki jih bomo imenovali mo-deli vezja. Model vezja je deterministicen LTS, ki ne vsebuje nedosegljivih stanj in preho-dov z notranjim dogodkom τ . Kot primer podajamo model vezja za dvovhodna vrata AND(slika 5.27), element C (slika 5.28) in element FORK (slika 5.29), ki jih bomo pozneje upo-rabljali kot osnovna vrata v asinhronih vezjih. Vrata AND in element C imata dva vhoda(dogodka a? and b?) in en izhod (dogodek c!). Element FORK ima en vhod (dogodek a?)in dva izhoda (dogodka b! and c!). Prikazani modeli vezij predstavljajo njihovo obnasanje vosnovnem nacinu delovanja ob predpostavki, da so zacetne vrednosti vseh signalov enake0.

a?

c!

c!

a?

c!a? a?

b?

b?

b?

b?

Slika 5.27: Model vezja za dvovhodna vrata AND

b?a?

b?

c!

a?b?

a?

Slika 5.28: Model vezja za element C

120 5 Prakticni primeri

c!

a?b!

c!

b!

Slika 5.29: Model vezja za element FORK

Vezja za medsebojno izkljucevanje vsebujejo tudi nekatere bolj kompleksne elemente.Model vezja na sliki 5.30 opisuje zunanje obnasanje flip-flopa RS, ki ima dva vhoda,oznacena s s (set) in r (reset), in dva izhoda, oznacena s q in qn, kjer je qn negirani q.V zacetku so vrednosti signalov s, r in q postavljene na 0. Ko se vrednost s spremeni na 1,se izhod q postavi na 1. Ko se vrednost r spremeni na 1, se izhod q postavi na 0. Signala sin r ne smeta nikoli imeti oba vrednosti 1. Model vezja vsebuje zagatno stanje, ki ga pa obpravilnem obnasanju okolice nikoli ne doseze.

Element izkljucevanja (ME) je nederministicni element, ki se v vezjih za medsebojnoizkljucevanje uporablja kot arbiter. Razlicne izvedbe vezij vsebujejo dva razlicna elementaME. V nekaterih razlicicah ima element ME dva vhoda, oznacena z r1 in r2, ter dva izhoda,oznacena z g1 and g2. Ce je vhod r1 postavljen na 1 in izhod g2 ni postavljen na 1, potemse izhod g1 postavi na 1. Ce je vhod r2 postavljen na 1 in izhod g1 ni postavljen na 1, potemse izhod g2 postavi na 1. Ce se vhoda r1 in r2 oba socasno postavita na 1, potem elementME nedeterministicno izbere enega od izhodov in ga postavi na 1. V drugih razlicicah, imaelement ME se dodatni vhod z, s katerim preprecimo, da bi se vrednost izhodov spremenila.Modela vezij obeh razlicic elementa ME, v katerih so vse vrednosti signalov na zacetkupostavljene na 0, sta prikazana na slikah 5.31 in 5.32.

Pri verifikaciji asinhronega vezja nas zanima obnasanje vezja kot celote in ne njegovihvrat. Model celotnega vezja tvorimo kot paralelno kompozicijo modelov vezij za posame-zna vrata. Ker je v vezjih isti signal lahko vhod v vec vrat, moramo za sestavljanje modelauporabiti paralelno kompozicijo z vecstransko sinhronizacijo [41, 79]. Sestavljen modelbo predstavljal asinhrono vezje le, ce bodo izpolnjeni naslednji pogoji:

• vsi signali morajo imeti enkratno ime,

• izhoda dveh ali vec vrat ne smeta biti staknjena skupaj,

• izhod vrat ne sme biti neposredni vhod v ista vrata,

• izhodni signal iz vezja ne sme biti hkrati uporabljen kot povratni signal v vezje.

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 121

r?q!

qn!

qn!

STOPs? r?r? r?

s?

s? s?

q!

qn!q!qn!

q!

Slika 5.30: Model vezja za flip-flop RS

g2! g1!

r2?r2?

g2!

r1? r1?

g1!

r2?r2?r1?r1?

r1?r2?g1!g2!

Slika 5.31: Model vezja za element ME

g2! g1!

r2? r1?

r1?r2?g1!g2!

r1?

g1!g2!

r2?

r1? r1?

z?z? z?

r2?r2?

z?

g2! g1!

z?r1?r2?

r1?r1?r2?

g1!g2!

r1?

z?z?

r2? r1?

r2?r2?r1?

z? z?

z?z? z?z?

r2? r1?

r1? r2? r2?

g1!g2!

Slika 5.32: Model vezja za element ME z zapornim signalom z

122 5 Prakticni primeri

Prvi dve zahtevi sta jasni sami po sebi. Izhod vrat ne sme biti hkrati vhod v ista vrata,ker uporabljena paralelna kompozicija dovoljuje le sinhronizacijo med signali iz razlicnihvrat. Izhodni signal iz vezja ne sme biti hkrati povratni signal v vezje, ker uporabljenaparalelna kompozicija vsak signal obravnava kot zunanji (viden za okolico) ali notranji(neviden za okolico), ne more pa biti en signal hkrati oboje. Zadnji dve zahtevi pomembnovplivata na verifikacijo vezij, saj na primer vezij na slikah 5.25 in 5.26 ne moremo sestavitiv njihovi originalni obliki, ampak moramo za vsemi vrati OR dodati element FORK. Pokoncani paralelni kompoziciji je potrebno dobljeni LTS pretvoriti v veljavni model vezja.To storimo tako, da tvorimo deterministicni LTS, ki ne vsebuje prehodov z notranjim do-godkom τ in ima ekvivalentne sledi kot LTS, dobljen s paralelno kompozicijo.

Sestavljanje modela asinhronih vezij iz modelov posameznih vrat je casovno in prostor-sko zelo kompleksna operacija. Ce privzamemo osnovni nacin delovanja asinhronih vezij,lahko z ustrezno abstrakcijo model bistveno zmanjsamo oz. ga zgradimo hitreje. Abstrak-cijo izvajamo sproti med paralelno kompozicijo, tako da odstranjujemo vse prehode, ki neprispevajo k opisu obnasanja vezja v osnovnem nacinu delovanja. Odstranimo lahko:

• vse prehode z vhodnim dogodkom v stanjih, iz katerih je mozen prehod z notranjimdogodkom τ ,

• vse prehode z vhodnim dogodkom v stanjih, iz katerih je mozen prehod z izhodnimdogodkom,

• vse prehode z notranjim dogodkom τ v stanjih, iz katerih je mozen prehod z izho-dnim dogodkom.

Primer sestavljenega modela vezja je na sliki 5.33. Predstavlja model vezja z osci-lirajocim izhodom, podanega na sliki 5.22. Model vezja predstavlja obnasanje vezja vosnovnem nacinu delovanja. V zacetnem stanju se lahko izvede prehod z dogodkom x?,kar ustreza spremembi vrednosti signala x. Nato zacne izhod vezja oscilirati in ker vezjenikoli ne postane stabilno, se spremembe na vhodu nikoli vec ne obravnavajo.

f!x?

Slika 5.33: Model vezja z oscilirajocim izhodom

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 123

5.3.3 Odkrivanje hazardov z uporabo preverjanja modela

Model vezja v celoti opisuje zunanje obnasanje vezja, torej zajema tudi vse hazarde, kise lahko pojavijo. S preverjanjem modela lahko preverimo, ali v modelu vezja obstajajodoloceni vzorci, ki so znacilni za hazarde. Pri opisu metode bomo predpostavili, da imavezje le en izhod. V primeru vec izhodov lahko naredimo abstrakcije, v katerih obdrzimole en izhod in potem za vsak izhod posebej preverimo obstoj hazardov.

Hazarde, ki se odrazajo kot nezeleni impulzi, zaznamo tako, da preverimo, ali lahkomodel vezja izvede zapored dva prehoda z istim izhodnim dogodkom. Najdene hazardena ta nacin ne moremo razvrstiti glede na vzrok v logicne in prehodne hazarde, lahkopa locimo staticne hazarde, ki imajo dva oz. parno stevilo prehodov z istim zunanjimdogodkom zapored in dinamicne hazarde, ki imajo tri oz. neparno stevilo prehodov z istimzunanjim dogodkom zapored.

Nekoli tezje je s proucevanjem modela vezja zaznati hazarde stanja. Hazard stanjanastane, ce se ob dolocenih razporeditvah zakasnitev v vezju vrednosti enih ali vec vrat vvezju spremeni, ob drugih razporeditvah zakasnitev pa ostane nespremenjena. To se vednoodraza tako, da pripadajoci model vezja vsebuje stanje, v katerem so mozni hkrati prehodiz vhodnimi in izhodnimi dogodki. Vendar pa vsa taka stanja ne kazejo nujno na prisotnosthazardov stanja, v modelu vezja so lahko prisotna tudi zato, ker:

• se ob doloceni razporeditvi zakasnitev v vezju pojavi impulz, ob drugih razporedi-tvah zakasnitev pa ne,

• so bili z abstrakcijo nekateri izhodi odstranjeni iz modela vezja, vezje pa vsebujevrata z nedeteministicnim obnasanjem in torej vcasih spremeni vrednost signala, kije ostal v modelu vezja, vcasih pa spremeni vrednost signala, ki je bil z abstrakcijoodstranjen iz modela vezja.

Med paralelno kompozicijo se zaradi abstrakcije v stanjih, v katerih obstaja prehod z zuna-njim dogodkom, odstranijo vsi prehodi z notranjim dogodkom, kar pa ne skrije hazardovstanja. V primeru hazardov stanja in v drugih podanih primerih se po pretvorbi dobljenegaLTS-ja v veljavni model vezja, stanja, v katerih so mozni hkrati prehodi z vhodnimi inizhodnimi dogodki, pojavijo, in niso v nasprotju z omejitvami, ki veljajo za modele vezja.

Impulze, ki se pojavijo le ob dolocenih razporeditvah zakasnitev v vezju, imenujemoodstranljivi hazardi in jih lahko odstranimo iz vezja z ustreznimi prilagoditvami zakasnitev.Nasprotno pa so neodstranljivi hazardi taki, ki se jih ne da odstraniti ob predpostavki, dauporabljamo Mullerjev model, v katerem lahko zakasnitve dolocimo le vratom, ne pa tudi

124 5 Prakticni primeri

f!

a?

f!

a?

Slika 5.34: Vezje z odstranljivim logicnim hazardom

a?

f!

f!a?

Slika 5.35: Vezje z neodstranljivim logicnim hazardom

zicam. Primera vezij z odstranljivim in neodstranljivim logicnim hazardom sta prikazanana slikah 5.34 in 5.35. Primer vrat z nedeterministicnim obnasanjem je element ME zzapornim signalom z na sliki 5.32.

V nadaljevanju podajamo modele vezij za vezja na slikah 5.23, 5.24, 5.25 in 5.26, kivsebujejo razlicne vrste hazardov. V modelu vezja na sliki 5.36 zacetno stanje ustrezasituaciji, ko sta vrednosti signalov a in b obe enaki 0. Ce se katerakoli od njiju spremeni, sena izhodu f lahko pojavi staticni hazard. Ce se potem vrednost istega signala spremeni seenkrat, je ponovno mozen staticni hazard. Vsi hazardi v tem vezju so odstranljivi. V vezju,katerega model vezja je na sliki 5.37, je potem, ko se vrednost signala b spremeni z zacetne0 na 1, po vsaki spremembi vrednosti signala a mozen dinamicni hazard na izhodu f . Tudita hazard je odstranljiv. Model vezja na sliki 5.38 prikazuje, da je po spremembi vrednostisignala x z zacetne 0 na 1 mozen staticni hazard na izhodu y1, ki je v tem primeru prehodnihazard. Hazard je odstranljiv in se lahko pojavi le po prvi spremembi vhoda x. Model vezjana sliki 5.39 pa prikazuje hazard stanja, pri katerem se po prvi spremembi vrednosti signalax vrednost signala y1 vcasih spremeni, vcasih pa ne. Poleg modela vezja, ki vsebuje obaizhoda, sta prikazani tudi dve abstrakciji, ki obravnavata vsakega od izhodov posebej.

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 125

f!

f!

f! f!

f!f!

b? a?

b?

a?

b?

a?

b?

a?

a?

b?

a? a?

b?b?

Slika 5.36: Model vezja s staticnim hazardom s slike 5.23

a?

a?

b?

f!a?

f!

f!

f!

b? b?

Slika 5.37: Model vezja z dinamicnim hazardom s slike 5.24

x?

x? y1!y1!

x?

Slika 5.38: Model vezja s prehodnim hazardom s slike 5.25

x? y1!x?y2!

x?

y1!

x?

x? x?x?

y2!

x?

Slika 5.39: Model vezja s hazardom stanja s slike 5.26

126 5 Prakticni primeri

5.3.4 Asinhrona vezja za porazdeljeno medsebojno izkljucevanje

Vezja za porazdeljeno medsebojno izkljucevanje (vezja DME) so modularna resitev zazagotavljanje medsebojnega izkljucevanja. Vsak proces v sistemu nadzira ena celica tegavezja, ki jo imenujemo celica DME. Vse celice DME v sistemu so med seboj enake in sopovezane v obroc. Celice DME si med delovanjem med seboj izmenjujejo zeton. CelicaDME ima zeton, ce je vrednost izhoda q v njenem flip-flopu RS postavljena na 1. Vsakacelica DME ima 3 vhode in 3 izhode. Signala LR in LA sta namenjena komunikaciji z levososednjo celico DME, signala RR in RA sta namenjena komunikaciji z desno sosednjocelico DME, signala UR in UA pa sta namenjena komunikaciji s procesom, ki ga celicaDME nadzira. Signali LR, RA in UR so vhodi, signali LA, RR in UA pa so izhodi.

Celice DME si zeton izmenjujejo od desne proti levi. Proces, ki zeli vstopiti v kriticnoobmocje, to sporoci svoji celici DME preko signala UR, odobritev pa dobi preko signalaUA. Ostale signale uporabijo celice DME za komunikacijo med seboj. Prvo vezje DME jepredstavil A.J. Martin leta 1985 [52]. Njegovo vezje ima nekatere slabosti, na primer nedeluje pravilno v vhodno/izhodnem nacinu delovanja [51]. Leta 1988 je S.M. Burns podalpreprostejso resitev [14]. Njegovo resitev je pozneje nekoliko spremenil K.L. McMillan inpostala je standardni primer za demonstracijo zmogljivosti orodij za nacrtovanje in verifi-kacijo asinhronih vezij [57, 58, 75]. Celici DME v Martinovem in v McMillanovem vezjuDME sta podani na slikah 5.40 and 5.41.

Delovanje Martinovega in McMillanovega vezja DME se precej razlikuje. V Martino-vem vezju DME zeton oznacuje proces, ki je zadnji vstopil v kriticno obmocje. Ce imacelica DME zeton in dobi zahtevo bodisi od procesa bodisi od svoje leve sosednje celicein v tistem trenutku nobena zahteva ni odobrena, potem poslje potrditev. Ce celica DMEnima zetona, najprej obvesti o zahtevi svojo desno sosednjo celico in poslje potrditev selepotem, ko dobi odobritev od nje. V Martinovem vezju DME se takrat, ko proces umaknesvojo zahtevo, zeton prenese v njegovo celico DME. Nasprotno pa se v McMillanovemvezju DME zeton prenese k celici se preden se zahteva odobri. V njegovem vezju na-mrec nobena celica ne sme odobriti vstopa v kriticno obmocje, ce nima zetona. Zaradipoprejsnjega prenosa zetona in tudi zato, ker ima signal za zahtevo daljso pot skozi vezje,ima McMillanovo vezje DME v povprecju daljse odzivne case.

Rezultati meritev, ki so bili dobljeni na realni izvedbi Martinovega in McMillanovegavezja DME, sestavljenega iz dveh celic DME, so na slikah 5.42 in 5.43. Ker gre za realnavezja, imajo vrata in zice dolocene zakasnitve, ki pa so premajhne, da bi bile opazne naslikah. Slika 5.42 prikazuje situacijo v Martinovem vezju DME, ko ima zeton prva celica

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 127

C

C

I2

RA

RR

S RQ QN

I6

Q QNY1

R2 G2

G1 UR1UR

LR L

LA

I5

UA

R

I4

I1

z

S

I9

I7

I8

I10

ME

I3

QI

QO

INH

Slika 5.40: Celica DME, ki jo je predlagal A.J. Martin

C

C

C

Q

RA

RR

S RQ QN

R1

R2 G2

G1

ME

A C

D

B

H

H

J L

K

M N

G

I

F

E

O

PUA

UR

LR

LA

R

Slika 5.41: Celica DME, ki jo je predlagal K.L. McMillan

DME (signal Q). Ko proces poda zahtevo (signal UR), celica DME takoj poslje potrdi-tev (signal UA). Cez nekaj casa proces umakne svojo zahtevo in nato svojo zahtevo podadrugi proces (signal UR1). Druga celica DME nima zetona, zato najprej obvesti o zahtevisvojo desno sosednjo celico (signal RR1). Ta zahtevo odobri (signal LA) in nato druga ce-lica DME poslje potrditev drugemu procesu (signal UA1). Ko drugi proces umakne svojozahtevo, se zeton prenese v drugo celico DME (signal Q1). Slika 5.42 prikazuje delova-nje McMillanovega vezja DME v identicnem okolju. Ob zahtevi drugega uporabnika senajprej v drugo celico DME prenese zeton (signal Q1), nato pa druga celica DME posljeodobritev procesu (signal UA1).

128 5 Prakticni primeri

Slika 5.42: Delovanje vezja DME, sestavljenega iz dveh Martinovih celic DME

Slika 5.43: Delovanje vezja DME, sestavljenega iz dveh McMillanovih celic DME

5.3.5 Rezultati verifikacijeZ orodjem EST smo najprej poiskali vse hazarde v Martinovi in McMillanovi celici DME,ki se lahko pojavijo v osnovnem nacinu delovanja. Med to verifikacijo smo vsako celicoDME obravnavali kot samostojno vezje, okolice celice DME pa nismo z nicemer omejili.Tako so lahko v vezje prihajala tudi zaporedja signalov, ki se ob vkljucitvi celice DME vobroc nikoli ne pojavijo. Nato smo celice DME sestavili v obroce razlicnih velikosti inraziskali lastnosti dobljenega vezja v osnovnem nacinu delovanja. Najvecjo omejitev priverifikaciji je predstavljala casovna in prostorska zahtevnost paralelne kompozicije. Naracunalniku s procesorjem Intel Pentium IV 2.8 GHz, 1 GB pomnilnika in operacijskimsistemom Linux nismo mogli sestaviti obroca iz vec kot petih celic, kljub temu da dobljenimodeli vezja niso pretirano veliki. Podatki o velikosti modelov vezja so zbrani v tabelina sliki 5.44. Paralelna kompozicija petih McMillanovih celic DME se je racunala 66 s,paralelna kompozicija petih Martinovih celic DME pa se je racunala 878 s.

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 129

vezje vhodov /izhodov

stanj /prehodov

stevilovozlisc BDD

element C 2/1 4/7 31

flip-flop RS 2/2 11/16 81

element ME 2/2 11/16 76

element ME z zapornim signalom 3/2 24/51 162

Martinova celica DME 3/3 72/148 492

McMillanova celica DME 3/3 48/104 319

obroc iz dveh Martinovih celic DME 2/2 11/16 66

obroc iz treh Martinovih celic DME 3/3 57/117 365

obroc iz stirih Martinovih celic DME 4/4 236/632 1752

obroc iz petih Martinovih celic DME 5/5 920/3040 7855

obroc iz dveh McMillanovih celic DME 2/2 11/16 70

obroc iz treh McMillanovih celic DME 3/3 40/72 251

obroc iz stirih McMillanovih celic DME 4/4 145/316 974

obroc iz petih McMillanovih celic DME 5/5 596/1545 4444

Slika 5.44: Velikost modelov vezij pri verifikaciji asinhronih vezij DME

Za odkrivanje hazardov smo uporabili preverjanje modela z ACTLW. Pri tvorjenjuformul smo si pomagali z makroji (vrstica \define), vkljucili pa smo tudi Hennessy-Milnerjev operator <>. Uporabili smo naslednje formule:

\define IN (ur? OR lr? OR ra?)\define OUT (ua! OR la! OR rr!)

# staticni hazardiEEF {IN} <OUT> <OUT> <IN> true;

# dinamicni hazardiEEF {IN} <OUT> <OUT> <OUT> <IN> true;

# hazardi stanjaEEF {IN} ((<IN> true) AND (<OUT> <IN> true));

130 5 Prakticni primeri

Pri verifikaciji celici DME v zacetnem stanju nista imeli zetona. Preverjanje modelaje pokazalo, da v obeh vezjih lahko pride do hazardov. Da bi ugotovili, koliko razlicnihhazardov se lahko zgodi, smo po vsakem odkritem hazardu v stanju, v katerem se hazardzacne, izbrisali vse prehode in preverjanje modela ponovili. Rezultati tega iterativnegapostopka so zbrani v tabeli na sliki 5.45.

Martinova celica DME McMillanova celica DME

UA LA RR UA LA RR

staticni hazardi 4 0 4 0 0 4

dinamicni hazardi 0 0 0 0 0 0

hazardi stanja 1 2 9 0 0 0

Slika 5.45: Stevilo hazardov v celicah DME

Za vsakega od najdenih hazardov smo tvorili prakticno prico. Pri Martinovi celiciDME smo tako dobili prakticne price za staticne hazarde pri signalu UA (1-4) in RR (5-8),in prakticne price za hazarde stanja pri signalu UA (9), LA (10-11) in RR (12-20):

1. ra?,ur?,ua!,ra?,ua!,ua!

2. ra?,ur?,ua!,lr?,ra?,ua!,ua!

3. ra?,ur?,ua!,ur?,ur?,ra?,ua!,ua!

4. ra?,ur?,ua!,ur?,ur?,lr?,ra?,ua!,ua!

5. ur?,rr!,lr?,ur?,rr!,rr!

6. lr?,rr!,ur?,lr?,rr!,rr!

7. ra?,lr?,rr!,ur?,lr?,rr!,lr?,ra?,rr!,ur?,rr!,rr!

8. ra?,lr?,rr!,ur?,lr?,rr!,lr?,ra?,rr!,lr?,rr!,rr!

9. ra?,lr?,ur?,lr?,lr?,ra?,ra?,[ua!]

10. ra?,ur?,ur?,ur?,lr?,ra?,[la!]

11. ra?,lr?,la!,ur?,lr?,lr?,ra?,la!,ra?,[la!]

12. ra?,ur?,rr!,ur?,rr!,ur?,lr?,ra?,lr?,[rr!]

13. ra?,lr?,rr!,ur?,lr?,rr!,lr?,ra?,rr!,ra?,ra?,[rr!]

14. ra?,lr?,rr!,ur?,lr?,rr!,lr?,ra?,rr!,ra?,ur?,[rr!]

15. ra?,lr?,rr!,ur?,lr?,rr!,lr?,ra?,rr!,ra?,lr?,[rr!]

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 131

16. ra?,ur?,rr!,ur?,rr!,ur?,lr?,ra?,ra?,lr?,lr?,ra?,[rr!]

17. ra?,ur?,rr!,ur?,rr!,ur?,lr?,ra?,ra?,ur?,lr?,ra?,lr?,[rr!]

18. ra?,ur?,rr!,ur?,rr!,ur?,lr?,ra?,ra?,ur?,ur?,lr?,lr?,ra?,[rr!]

19. ra?,ur?,rr!,ur?,rr!,ur?,lr?,ra?,ra?,ur?,lr?,ra?,ra?,ur?,[rr!]

20. ra?,ur?,rr!,ur?,rr!,ur?,lr?,ra?,ra?,ur?,lr?,ra?,ra?,lr?,[rr!]

Pri McMillanovi celici DME smo tvorili prakticne price za vse najdene staticne hazardepri signalu RR:

1. ra?,ur?,rr!,rr!

2. ra?,lr?,rr!,rr!

3. ur?,rr!,lr?,ur?,rr!,rr!

4. lr?,rr!,ur?,lr?,rr!,rr!

Z verifikacijo najdene hazarde smo nato poskusali izmeriti v realnem vezju, kar nam jev vseh primerih uspelo. Na sliki 5.46 je primer meritve, ki ustreza hazardu pod zaporednostevilko 3 v McMillanovi celici DME. Zgodi se v primeru, ko celica DME nima zetonain dobi zahtevo od uporabnika. V tem primeru celica DME o zahtevi obvesti svojo desnososednjo celico DME preko signala RR. Ce takrat signal LR (drugi proces zahteva vstopv kriticno obmocje) in signal UR (proces umakne svojo zahtevo) oba spremenita svojovrednost, se preden desna sosednja celica DME postavi signal RA, potem se lahko nasignalu RR pojavi impulz. Ta impulz lahko zmede desno sosednjo celico ali pa tudi ne —brez verifikacije je tezko predvideti posledice.

Slika 5.46: Staticni hazard pri signalu RR v McMillanovi celici DME

132 5 Prakticni primeri

Iterativni postopek nam sicer omogoca, da poiscemo vec kot eno prakticno prico v da-nem primeru, a je zelo neucinkovit in zaradi poseganja v model tudi ne prevec zanesljiv. Vtem primeru je zelo primerno tvoriti avtomat pric, ki zgosceno in hkrati predstavi prakticneprice za vse hazarde v vezju. Na primer, za staticne hazarde pri signalu UA v Martinovicelici DME orodje EST tvori avtomat pric, ki ima 43 stanj (od tega 2 koncni stanji) in 107prehodov. Minimizacija, ki je vgrajena v orodje EST, ne pomaga dosti, saj ima po mini-mizaciji avtomat 41 stanj (od tega 2 koncni stanji) in 107 prehodov. Del minimiziranegaavtomata pric je prikazan na sliki 5.47.

ua!

ua!ua!

ra?ra?lr?

ur?ua!ua!

ua!ua!

ra?ra?lr? ur? ur?

lr?

ra?

lr?ur?

ra?

ur?

ur?

ur? ra?ra?

ur?

ra?

ur?lr?

Slika 5.47: Del avtomata pric, ki razlaga obstoj staticnih hazardov pri signalu UA v Mar-tinovi celici DME

Dobljeni avtomat pric je dokaj velik in neprakticen za rocno analizo. Kljub temu paje iz prikazanega dela avtomata pric dobro razvidno, da z iterativno metodo nismo prevecnatancno raziskali obstoja staticnih hazardov pri signalu UA. Na podlagi avtomata pric jemozno ugotoviti, da se staticni hazard pri signalu UA pojavi, ce najprej desna sosednjacelica brez vzroka spremeni vrednost signala RA, nato sledi zahteva od procesa UR, kijo celica DME odobri z UA, nato pa desna sosednja celica se enkrat spremeni vrednostsignala RA.

5.3 Verifikacija asinhronih vezij za medsebojno izkljucevanje 133

Velikost in kompleksnost tvorjenega avtomata pric ne izkljucuje njegove uporabnosti.Avtomati pric niso namenjeni rocni analizi, ampak predstavljajo dober vhod v nadaljnjepostopke verifikacije in testiranja. Tvorjeni avtomat pric, ki predstavlja staticne hazarde prisignalu UA v Martinovi celici DME, bi na primer zelo dobro sluzil za vodenje simulacijevezja, njegova izvedba pa bi lahko sluzila kot vzbujevalno vezje, ki bi ga uporabili pritestiranju.

V drugem koraku verifikacije smo celice DME sestavili v obroce razlicnih velikosti inpreverili, ali dobljeno Martinovo in McMillanovo vezje DME pravilno delujeta v osnovnemnacinu delovanja. Tudi ta del verifikacije smo izvedli s preverjanjem modela z ACTLW.Preverili smo lastnosti, podane v [58]:

1. Celica DME ne postavi signala za odobritev, ne da bi prej dobila zahtevo.

2. Celica DME ne umakne signala za odobritev, dokler je zahteva prisotna.

3. Vse zahteve so ali odobrene ali pa umaknjene.

4. Dva signala za odobritev ne moreta biti hkrati postavljena.

Potem ko posamezne celice DME sestavimo v obroc, ostanejo za okolico vidni le sesignali UR in UA, ki smo jih pri prvi celici DME preimenovali v ur1? in ua1!, pridrugi celici DME v ur2? in ua2! itd. Pri tvorjenju formul smo bili omejeni z lastnostjomodela, da prehodi predstavljajo spremembo vrednosti signala tako, da sta pozitivna innegativna fronta predstavljeni z enakim dogodkom. V takem modelu s formulami ACTLWne moremo neposredno izraziti, da je bila zahteva ali odobritev postavljena, saj npr. prehodiz dogodkom ur1? izmenicno pomenijo, da je bila zahteva postavljena oz. da je bilaumaknjena. Namesto ene formule smo tako morali uporabiti mnozico formul, s katerimipreverimo lastnost v primeru, da je bila zahteva ali odobritev postavljena prvic, drugic,tretjic itd. Formule ACTLW, ki smo jih uporabili pri verifikaciji vezij, sestavljenih iz dvehcelic DME, so naslednje:

# Ko je odobritev postavljena (umaknjena), se ne bo umaknila# (postavila), dokler proces tega ne zahteva.AAG [ua1!] AA[{NOT ua1!} W {ur1?}];AAG [ua2!] AA[{NOT ua2!} W {ur2?}];

# Dana zahteva bo ali odobrena ali pa umaknjena.AA[{NOT ur1!} W {ur1!} NOT EEG {(NOT ua1!) AND (NOT ur1?)}];AA[{NOT ur2!} W {ur2!} NOT EEG {(NOT ua2!) AND (NOT ur2?)}];

134 5 Prakticni primeri

# Medtem ko je procesu prvic (drugic itd.) odobren vstop# v kriticno obmocje, drugi procesi ne dobijo odobritve.\define UA1 {NOT ua1!} W {ua1!}\define UA2 {NOT ua2!} W {ua2!}

#prvicAA[UA1 AA[{NOT ua2!} W {ua1!}]];AA[UA2 AA[{NOT ua1!} W {ua2!}]];

#drugicAA[UA1 AA[UA1 AA[UA1 AA[{NOT ua2!} W {ua1!}]]]];AA[UA2 AA[UA2 AA[UA2 AA[{NOT ua1!} W {ua2!}]]]];

Pri vezjih DME, sestavljenih iz vec kot dveh celic, je potrebno formule ACTLW zapreverjanje medebojnega izkljucevanja ustrezno dopolniti. Za obroc, sestavljen iz trehcelic DME, smo uporabili naslednje formule:

# Medtem, ko je procesu prvic (drugic itd.) odobren vstop# v kriticno obmocje, drugi procesi ne dobijo odobritve.\define UA1 {NOT ua1!} W {ua1!}\define UA2 {NOT ua2!} W {ua2!}\define UA3 {NOT ua3!} W {ua3!}

#prvicAA[UA1 AA[{NOT ua2! AND NOT ua3!} W {ua1!}]];AA[UA2 AA[{NOT ua1! AND NOT ua3!} W {ua2!}]];AA[UA3 AA[{NOT ua1! AND NOT ua2!} W {ua3!}]];

#drugicAA[UA1 AA[UA1 AA[UA1 AA[{NOT ua2! AND NOT ua3!} W {ua1!}]]]];AA[UA2 AA[UA2 AA[UA2 AA[{NOT ua1! AND NOT ua3!} W {ua2!}]]]];AA[UA2 AA[UA2 AA[UA2 AA[{NOT ua1! AND NOT ua2!} W {ua3!}]]]];

Preverjanje modela je pokazalo, da Martinovo in McMillanovo vezje DME pravilnodelujeta v osnovnem nacinu delovanja. Najdeni hazardi v celicah DME torej ob povezavi vobroc ne povzrocajo problemov. Napake pri Martinovem vezju DME, o kateri so porocaliv [51], se odraza le v vhodno-izhodnem nacinu delovanja, zato je z opisanim pristopom nemoremo odkriti.

Poglavje 6

Zakljucek

V doktorski disertaciji smo vpeljali in raziskali novo izjavno temporalno logiko razveja-nega casa, ki jo imenujemo akcijska logika dreves izvajanj z operatorjem unless in ozna-cimo z ACTLW. ACTLW zdruzuje lepe lastnosti logik CTL (ucinkovitost, razumljivost,fleksibilnost izrazanja) in ACTL (izrazanje lastnosti modelov, ki temeljijo na dogodkih),kar je bil prvi cilj pri vpeljavi nove logike.

V doktorski disertaciji smo najprej na kratko, a celovito, predstavili logiki CTL inACTL. Obe logiki smo formalno definirali, vpeljali smo izpeljane operatorje in podali naj-pomembnejse ekvivalence, ki veljajo med formulami. Nato smo se posvetili novi logikiACTLW, pri predstavitvi katere smo se v najvecji mozni meri opirali na logiki CTL inACTL. Definicija logike ACTLW je tako podobna definiciji logike ACTL, izpeljavi doda-tnih operatorjev, opredelitev operatorjev ACTLW z izrazi z negibno tocko in posledicnotudi algoritmi za preverjanje modela pa so podobni kot pri logiki CTL. Ker je ACTLWelegantna nadgradnja logike ACTL, lahko slednjo v celoti nadomesti, zaradi premisljenoizbrane skladnje pa je mozno tudi sobivanje formul ACTL in ACTLW na tak nacin, da jeformula ACTL podformula formule ACTLW ali obratno. Po drugi strani je logika ACTLWdovolj podobna logiki CTL, da jo lahko brez vecjih tezav vpeljemo v inzenirsko okolje, va-jeno logike CTL, cesar za logiko ACTL ne moremo trditi.

Bistvena razlika med ACTLW in CTL je v tem, da formule CTL izrazajo, kaksne la-stnosti bodo v prihodnosti imela stanja, formule ACTLW pa izrazajo, kaksne lastnosti bodov prihodnosti imeli prehodi. Na primer, s formulo CTL EGa izrazimo, da bodo vsaj na enipoti vsa stanja imela lastnost a, s formulo ACTLW EEG{a} pa izrazimo, da bodo vsaj naeni poti vsi prehodi imeli lastnost a. Ker pa so tako formule CTL kot tudi formule ACTLWpo definiciji formule stanja, analogija med logikama ni popolnoma trivialna. Pri CTL lahkonamrec a zamenjamo s formulo ϕ in dobimo formulo EGϕ s pomenom, da vsaj na eni poti

135

136 6 Zakljucek

v vseh stanjih velja formula CTL ϕ. Nasprotno pa zamenjava a s formulo ϕ pri ACTLW nimozna, saj dobljena formula EEG{ϕ} oz. trditev, da vsaj na eni poti za vse prehode veljaformula ACTLW ϕ, nima pomena. Analogija med logikama se pokaze sele, ko lastnostiprehodov definiramo kot pare, sestavljene iz formule dogodka, ki se nanasa na dogodek, kise izvede ob prehodu, in formule stanja, ki se nanasa na stanje, ki je cilj prehoda. V danemprimeru tako dobimo kar tri formule ACTLW, ki so analogne dani fromuli CTL: EEG ϕ

(vsaj na eni poti vsi prehodi vodijo v stanje, v katerem velja formula ACTLW ϕ), EEG{χ}

(vsaj na eni poti za dogodke ob vseh prehodih velja formula dogodka χ) in v najbolj splosniobliki EEG {χ}ϕ (vsaj na eni poti za dogodke ob vseh prehodih velja formula dogodka χ,vsi prehodi pa vodijo v stanje, v katerem velja formula ACTLW ϕ).

Razlike med ACTLW in ACTL so manj izrazite. ACTLW je fleksibilnejsa od ACTL,ker dovoljuje uporabo skritega dogodka τ v formulah v nasprotju z logiko ACTL, ki nepo-sredne uporabe skritega dogodka τ v formulah ne dovoljuje, po drugi strani pa ga posrednoprivzame v vecini formul. ACTLW je tudi nekoliko izraznejsa od ACTL, ker lahko vselastnosti, izrazene s formulami ACTL, izrazimo tudi s formulami ACTLW, obratno pa negre vedno in to zaradi treh vzrokov:

• v formulah ACTLW lahko neposredno zahtevamo ali izkljucimo notranji dogodek τ ,v formulah ACTL pa to ni mozno,

• operatorji ACTLW so dosledni, operatorji ACTL pa so nedosledni operatorji,

• ACTLW vsebuje operator unless (W), katerega pomena z operatorji ACTL ni mogocev celoti izraziti.

V doktorski disertaciji smo razliko v izraznosti logik ACTLW in ACTL ponazorili s tr-ditvijo, da ce sta χ formula dogodka in ϕ formula ACTLW, za kateri velja χ 6= true,χ 6= false, ϕ 6= true in ϕ 6= false, potem ne glede na to, ali model vsebuje ali ne vsebujenotranjih dogodkov τ , ne obstaja nobena formula ACTL, ki bi bila ekvivalentna formuliACTLW EEG {χ} ϕ. Podali smo tudi prakticen primer razlike v izraznosti obeh logik: vmodelu z zagatnimi stanji lahko s formulo ACTLW (EEX {true})∧EEG {τ}EEX {true}preverimo, ce je dano stanje divergentno, s formulami ACTL pa tega ne moremo preveriti.

ACTLW je logika, ki omogoca ucinkovito izvedbo preverjanja modelov, s cimer jedosezen tudi drugi cilj pri vpeljavi nove logike. V doktorski disertaciji smo podali algo-ritme za izvedbo preverjanja modela z ACTLW s simbolicnimi metodami. Algoritmi soneposredna izvedba izrazov s fiksno tocko, ki opredeljujejo operatorje ACTLW, kar zago-tavlja njihovo pravilnost. Raziskali smo tudi tvorjenje diagnostike pri ACTLW, tvorjenjelinearnih pric in protiprimerov pri ACTLW ter tvorjenje avtomatov pric in protiprimerov

137

pri ACTLW. Vse algoritme smo najprej podali ob predpostavki, da ima LTS totalno preha-jalno relacijo in jih nato nadgradili tako, da upostevajo tudi morebitna zagatna stanja.

Doktorska disertacija je v celoto zaokrozena z vzorci formul ACTLW in dvema vecjimaprakticnima primeroma.

138 6 Zakljucek

Literatura

[1] S. B. Akers. Binary Decision Diagrams. IEEE Transactions on Computers, C-27(6):509–516, June 1978.

[2] H. R. Andersen. Model checking and Boolean graphs. Theoretical Computer Science,126(1):3–30, April 1994.

[3] A. Anselmi, C. Bernardeschi, A. Fantechi, S. Gnesi, S. Larosa, G. Mongardi, andF. Torielli. An Experience in Formal Verification of Safety Properties of a RailwaySignalling Control System. In Proceedings of 14th International Conference on Com-puter Safety, Reliability and Security (SAFECOMP’95), pages 474–488, 1995.

[4] K. Asai, S. Matsuoka, A.Yonezawa Model Checking of Control-Finite CSP ProgramsIn Proceedings of 26th Hawaii International Conference on System Sciences, volume2, pages 174-183, 1993.

[5] P. Ashar and M. Cheong. Efficient Breadth-First Manipulation of Binary Deci-sion Diagrams. In Proceedings of the 1994 IEEE/ACM international conference oncomputer-aided design, pages 622–627, 1994.

[6] A. Aziz, T. Shiple, V. Singhal, R. Brayton, and A. Sangiovanni-Vincentelli. Formula-Dependent Equivalence for Compositional CTL Model Checking. Formal Methodsin System Design, 21:193–224, 2002.

[7] M. Ben-Ari. Principles of concurrent and distributed programming. Prentice HallInternational (UK), 1990.

[8] C. Bernardeschi, A. Fantechi, S. Gnesi, S. Larosa, G. Mongardi, and D. Romano.A Formal Verification Environment for Railway Signaling System Design. FormalMethods in System Design, 12(2):139–161, March 1998.

139

140 LITERATURA

[9] N. Bjørner, A. Browne, M. Colon, B. Finkbeiner, Z. Manna, H. Sipma, andT.E. Uribe. Verifying Temporal Properties of Reactive Systems: A STeP Tutorial.Formal Methods in System Design, 16(3):227–270, June 2000.

[10] A. Bouali, S. Gnesi, and S. Larosa. The Integration Project for the JACK Enviro-nment. In Bulletin of the EATCS, n.54, pages 207–223. 1994.

[11] K. S. Brace, R. L. Rudell, and R. E. Bryant. Efficient Implementation of a BDDPackage. In The Proceedings of the 27th ACM/IEEE Design Automation Conference,pages 40–45, 1990.

[12] J. C. Bradfield and C. Stirling. Modal Logics and Mu-Calculi: An Introduction,chapter 4, pages 293–330. Elsevier, 2001.

[13] J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and L.J. Hwang. Symbolic ModelChecking: 1020 States and Beyond. Information and Computing, vol. 98, no. 2, pages142–170, 1992.

[14] S.M. Burns. Automated Compilation of Concurrent Programs into Self-timed Circu-tis. Master’s thesis, California Institute of technology, 1988.

[15] R. E. Bryant. Graph-Based Algorithms for Boolean Function Manipulation. IEEETransactions on Computers, C-35(8):677–691, August 1986.

[16] R. E. Bryant. Symbolic Boolean Manipulation with Ordered Binary Decision Dia-grams. Technical Report CMU-CS-92-160, School of Computer Science, CarnegieMellon University, Pittsburgh, PA 15213, July 1992.

[17] S. Campos, E. M. Clarke, and M. Minea. Symbolic techniques for formally veri-fying industrial systems. Science of Computer Programming, 29(1-2):79–98, 1997.Technical report CMU-CS-96-148.

[18] A. Casar, R. Meolic, Z. Brezocnik, and B. Horvat. Predstavitev logicnih funk-cij z minimalnimi urejenimi binarnimi odlocitvenimi grafi. Elektrotehniski vestnik,59(5):299–307, december 1992.

[19] A. Casar. Odkrivanje zaticnih napak s simbolicnim preverjanjem modelov. PhDthesis, February 2002. Fakulteta za elektrotehniko, racunalnistvo in informatiko, Ma-ribor.

LITERATURA 141

[20] E. M. Clarke and E. A. Emerson. Design and synthesis of synchronisation skeletonsusing branching time temporal logic. In Logics of Programs, pages 52–71. 1981.

[21] E.M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic Verification of Finite StateConcurrent Systems Using Temporal Logic Specifications. ACM Transactions onProgramming Languages and Systems, 8(2):244–263, 1986.

[22] E. M. Clarke, O. Grumberg, and D. E. Long. Model checking and abstraction. ACMTransactions on Programming Languages and Systems, 16(5):1512–1542, September1994.

[23] E. M. Clarke, O. Grumberg, K.L. McMillan, and X. Zhao. Efficient Generation ofCounterexamples and Witnesses in Symbolic Model Checking. In Proceedings of32nd Design Automation Conference (DAC 95), pages 427–432, June 1995.

[24] E.M. Clarke, O. Grumberg, and D.A. Peled. Model Checking. The MIT Press, thirdprinting edition, 2001.

[25] E. Clarke, S. Jha, Y. Lu, and H. Veith. Tree-Like Counterexamples in ModelChecking. In IEEE Symposium on Logic in Computer Science (LICS) 2002, page 11,July 2002.

[26] R. Cleaveland, J. Parrow, and B. Steffen. The Concurrency Workbench: A Semantics-Based Tool for the Verification of Concurrent Systems. ACM Transactions on Pro-gramming Languages and Systems, 15(1):36–72, January 1993.

[27] R. Cleaveland and S. A. Smolka et al. Strategic Directions in Concurrency Research.ACM Computing Surveys, 28(4):607–625, December 1996.

[28] D. Dedic and R. Meolic. Verification of bakery algorithm variants for two proces-ses. In Baldomir Zajc and Marko Tkalcic, editors, Proceedings of EUROCON 2003,volume 2, pages 35–39, September 2003.

[29] M.B. Dwyer, G.S. Avrunin, and J.C. Corbett Property Specification Patterns forFinite-state Verification. In Proceedings of the 2nd Workshop on Formal Methods inSoftware Practice, March, 1998.

[30] E. A. Emerson. Temporal and Modal Logic. In Handbook of Theoretical ComputerScience, volume B, pages 995–1072. Elsevier Science Publishers B.V., 1990.

142 LITERATURA

[31] A. Fantechi and S. Gnesi. From ACTL to µ-calculus. In Proceedings of the ERCIMWorkshop on Theory and Practice in Verification, 1992.

[32] A. Fantechi, S. Gnesi, and G. Ristori. Model checking for action-based logics. FormalMethods in System Design, 4(2):187–203, 1994.

[33] A. Fantechi, S. Gnesi, F. Mazzanti, R. Pugliese, and E. Tronci. A Symbolic ModelChecker for ACTL. In Proceedings of FM-Trends’98, LNCS 1641, pages 228–242,October 1998.

[34] M. Ferrero and M. Cusinato. Severo: A symbolic equivalence verification tool. Tesidi Laurea. Politecnico di Torino, Italy, October 1994.

[35] H. Garavel, F. Lang, and R. Mateescu. An overview of CADP 2001. EASST Newslet-ter, 4:13–24, August 2002.

[36] R. J. van Glabbeek and W. P. Weijland. Branching Time and Abstraction in Bisimu-lation Semantics. Journal of the ACM, 43(3):555–600, May 1996.

[37] J. F. Groote and F. Vaandrager. An Efficient Algorithm for Branching Bisimulationand Stuttering Equivalence. In Automata, Languages and Programming, 17th Inter-national Colloquium, LNCS 443, pages 626–638. Springer-Verlag, 1996.

[38] A. Gupta. Formal Hardware Verification Methods: A Survey. Formal Methods inSystem Design, 1:151–238, 1992.

[39] A. Gurfinkel and M. Chechik. Proof-like counter-examples. In Proceedings of TA-CAS’03, LNCS 2619, pages 160–175, April 2003.

[40] D. Harel, D. Kozen, and J. Tiuryn. Dynamic logic. In Handbook of PhilosophicalLogic, 2nd Edition, volume 4, pages 99–217. 2002.

[41] J. He. Formal Specification and Analysis of Digital Hardware Circuits in LOTOS.Technical Report CSM-158. University of Stirling. August 2000.

[42] K. Heljanko. Model Checking the Branching Time Temporal Logic CTL, 1997. Re-search Report A45, Digital Systems Laboratory, Helsinki University of Technology,Espoo, Finland.

[43] M. Hennessy and R. Milner. Algebraic Laws for Nondeterminism and Concurrency.Journal of the ACM, 32(1):137–161, January 1985.

LITERATURA 143

[44] A. Hett, R. Drechsler, and B. Becker. MORE: Alternative Implementation of BDD-Packages by Multi-Operand Synthesis, 1996.

[45] M. Huth and M. Ryan. Logic in Computer Science: Modelling and Reasoning aboutSystems. Cambridge Univeristy Press, 2001.

[46] T. Kapus. Verifikacija porazdeljenih sistemov. Master’s thesis, February 1991.Tehniska fakulteta, Maribor.

[47] A. Kick. Generation of counterexamples for the my–calculus. Technical Report iratr-1995-37, Universitat Karlsruhe, Germany, 1995.

[48] D. Kozen. Results on the propositional µ-calculus. Theoretical Computer Science,27:333–354, 1983.

[49] L. Lamport and N. Lynch Distributed Computing: Models and Methods. In Han-dbook of Theoretical Computer Science, volume B, pages 1157–1199. Elsevier Sci-ence Publishers B.V., 1990.

[50] S. Larosa. Le Logiche ACTLC* ed ACTL. Tesi di Laurea, Universita degli Studi diPisa, 1993.

[51] A.R. Martello. Temporal Analysis for Time-Bounded Causal Digital Systems. Ph.D.Thesis, University of Pittsburgh, April 1993.

[52] A.J. Martin. The Design of a Self-timed Circuit for Distributed Mutual Exclusion. InThe Proceedings of the 1985 Chapel Hill Conference on VLSI, pages 245–260, 1985.

[53] A. Martin. Adequate Sets of Temporal Connectives in CTL. In Proceedings of the8th International Workshop on Expressiveness in Concurrency (EXPRESS’01), vo-lume 52 of ENTCS, 2002.

[54] R. Mateescu. Formal Description and Analysis of a Bounded Retransmission Pro-tocol. In Proceedings of the COST 247 International Workshop on Applied FormalMethods in System Design, pages 98–113, Maribor, Slovenia, 1996.

[55] R. Mateescu and H. Garavel. Xtl: A meta-language and tool for temporal logicmodel-checking. In International Workshop on Software Tools for Technology Trans-fer STTT’98, pages 427–432, July 1995. Technical report CS-94-204.

[56] F. Mazzanti. UMC User Guide (Version 2.5). ISTI Technical Report 2003-TR-22,September 2003.

144 LITERATURA

[57] K. L. McMillan. Symbolic Model Checking. PhD thesis, Carnegie Mellon University,May 1992.

[58] K.L. McMillan. The SMV system. November 2000.http://www-2.cs.cmu.edu/ modelcheck/smv.html.

[59] C. Meinel and T. Theobald. Algorithms and Data Structures in VLSI Design.Springer-Verlag, 1998.

[60] R. Meolic. Uporaba urejenih odlocitvenih grafov pri racunalniski obdelavi logicnihfunkcij. Fakulteta za elektrotehniko, racunalnistvo in informatiko, Maribor. Diplom-sko delo, June 1995.

[61] R. Meolic. Checking correctness of concurrent systems behavour. Master’s thesis,University of Maribor, November 1999. In Slovene.

[62] R. Meolic, T. Kapus, and Z. Brezocnik. The Efficient Symbolic Tools Package. InN. Rozic et al., editor, Proceedings of the 8th International Conference Software,Telecommunications and Computer Networks (SoftCOM 2000), volume I, pages 147–156, Split, Croatia, October 2000.

[63] R. Meolic, T. Kapus, E. Gungl, and Z. Brezocnik. Verification of mutual exclusionalgorithms with EST. In Baldomir Zajc, editor, Proceedings of the Tenth Electrote-chnical and Computer Science Conference ERK’2001 Portoroz, Slovenia, volume B,pages 15–18, Ljubljana, Slovenia, September 2001. Slovenia Section IEEE.

[64] R. Meolic, T. Kapus, and Z. Brezocnik. An Action Computation Tree Logic WithUnless Operator. In Proceedings of the 1st South-East European workshop on formalmethods SEEFM 2003, pages 100–114, Thessaloniki, Greece, November 2003.

[65] R. Meolic, A. Fantechi, and S. Gnesi. Witness and Counterexample Automata forACTL. In Proceedings of the Formal Techniques for Networked and DistributedSystems, FORTE 2004: 24th IFIP WG 6.1 International Conference, Madrid, Spain,LNCS 3235, pages 259–275. Springer-Verlag, 2004.

[66] R. Meolic. EST Home Page.http://lms.uni-mb.si/EST/.

[67] G. J. Milne. Simulation and Verification: Related Techniques for Hardware Analysis.In The Proceedings of the Seventh Conference on Computer Hardware DescriptionLanguages and Their Applications, pages 404–417, 1985.

LITERATURA 145

[68] R. Milner. Operational and Algebraic Semantics of Concurrent Processes. In Han-dbook of Theoretical Computer Science, volume B, pages 1201–1242. Elsevier Sci-ence Publishers B.V., 1990.

[69] S. Minato, N. Ishiura, and S. Yajima. Shared Binary Decision Diagram with Attribu-ted Edges for Efficient Boolean Function Manipulation. In 27rd ACM/IEEE DesignAutomation Conference, pages 52–57. ACM/IEEE, IEEE, 1990.

[70] R. De Nicola and F. W. Vaandrager. Action versus State based Logics for TransitionSystems. In Semantics of Systems of Concurrent Processes, Proceedings LITP SpringSchool on Theoretical Computer Science, LNCS 469, pages 407–419, 1990.

[71] R. De Nicola, A. Fantechi, S. Gnesi, and G. Ristori. An action based frameworkfor verifying logical and behavioural properties of concurrent systems. ComputerNetworks and ISDN Systems, 25:761–778, 1993.

[72] R. De Nicola and F. Vaandrager. Three logics for branching bisimulation. Journal ofthe ACM, 42(2):458–487, March 1995.

[73] D. Perrin. Finite Automata. In Handbook of Theoretical Computer Science, vo-lume B, pages 1–57. Elsevier Science Publishers B.V., 1990.

[74] A. Pnueli. The temporal logic of programs. In Proceedings of the 18th Annual IEEESymposium on Fundations of Computer Science, pages 46–57, 1977.

[75] O. Roig, J. Cortadella, and E. Pastor. Conservative Symbolic Model-Checking ofPetri Nets for Speed-independent Circuit Verification. DAC/UPC Technical ReportNo. RR-94.

[76] R. Rudell. Dynamic Variable Ordering for Ordered Binary Decision Diagrams, 1993.

[77] K. Schneider. CTL and Equivalent Sublanguages of CTL*. In IFIP 1996, 1996.

[78] S. Shoham and O. Grumberg. A Game-Based Framework for CTL Counter-Examplesand 3-Valued Abstraction-Refinement. In Proceedings of International Conferenceon Computer Aided Verification (CAV’03), July 2003.

[79] K.S. Stevens. Practical Verification and Synthesis of Low Latency AsynchronousSystems. Ph.D. Thesis, University of Calgary, Canada. September 1994.

146 LITERATURA

[80] C. Stirling. An Introduction to Modal and Temporal Logics for CCS. In Proceedingsof the 1989 UK/Japan Workshop on Concurrency: Theory, Language, and Architec-ture, LNCS 491, pages 2–20, 1991.

[81] C. Stirling. Modal and Temporal Logics. In Handbook of Logic Computer Science,pages 477–563. Oxford University Press, 1992.

[82] Virtual Library. Formal Methods.http://www.comlab.ox.ac.uk/archive/formal-methods/.

[83] D.J. Walker Automated Analysis of Mutual Exclusion Algorithms using CCS FormalAspects of Computing, 1(3), 273-292 (1989).

Dodatek A

Najmanjsa zadostna mnozicaoperatorjev za CTL

Izrek. Najmanjsa zadostna mnozica operatorjev za CTL ima dva elementa, od katerih jeeden iz mnozice {EU>,AW>}, drugi pa iz mnozice {EG>,AF>,EW>,AU>}.

Da so mnozice dveh operatorjev CTL, od katerih je eden iz mnozice {EU>,AW>},drugi pa iz mnozice {EG>,AF>,EW>,AU>}, res zadostne mnozice operatorjev CTL,lahko enostavno izpeljemo iz definicije CTL-ja in ekvivalenc, ki veljajo med operatorji.

Trditev A.1 Mnozica operatorjev {EU>,AU>} je zadostna mnozica operatorjev za CTL.

Dokaz. Sledi iz definicije CTL-ja.

Trditev A.2 Ce je {EU>, op2} zadostna mnozica operatorjev za CTL, potem je tudi{AW>, op2} zadostna mnozica operatorjev za CTL.

Dokaz. Sledi iz tega, da lahko vse formule z operatorjem EU> prevedemo na formulo zoperatorjem AW>.

Trditev A.3 Ce je {EU>,AU>} zadostna mnozica operatorjev za CTL, potem so tudi{EU>,EW>}, {EU>,EG>} in {EU>,AF>} zadostne mnozice operatorjev za CTL.

Dokaz. Sledi iz tega, da lahko vsako formulo z operatorjema EU> in AU> prevedemo vformulo z operatorjema EU> in EW> oz. EU> in EG> oz. EU> in AF>.

Dokaz, da so mnozice dveh operatorjev CTL, od katerih je eden iz mnozice {EU>,AW>}, drugi pa iz mnozice {EG>,AF>,EW>,AU>}, res najmanjse zadostne mnoziceoperatorjev CTL, zahteva nekoliko vec razmisljanja. Podajamo dokaz, ki temelji na idejahiz [53].

147

148 A Najmanjsa zadostna mnozica operatorjev za CTL

Trditev A.4 Mnozica {EU>} ni zadostna mnozica operatorjev za CTL.

Dokaz. Pokazali bomo, da ne moremo izraziti operatorja AU>. Vzemimo KS na sliki1, v kateri je mnozica atomarnih izjav enaka {a}. Ce so stanja v KS oznacena tako, davelja P0 |= a in za vsak i ≥ 1 velja Pi |= ¬a ter Qi |= ¬a, potem za vsak i ≥ 1 formulaA[true U> a] velja v stanju Pi, ne velja pa v stanju Qi. Vendar pa za poljubno formulo ψ,ki vsebuje le operator EU>, obstaja tak k ≥ 1, da za vsak j ≥ k velja Pj |= ψ ⇔ Qj |=

ψ ⇔ Pk |= ψ. Torej formula ψ ni ekvivalentna formuli A[true U> a].

... ...

Q1Qk+1 Qk

P1 P0PkPk+1

Slika 1

Za dokaz te trditve uporabimo indukcijo po strukturi formule CTL. Vse atomarne izjaveimajo za vsak i ≥ 1 enako veljavnost v vseh stanjih Pi in Qi, torej k = 1 in trditev velja.Sedaj predpostavimo, da indukcijska hipoteza velja za formulo ϕ (pri cemer je k = kϕ) inza formulo ϕ′ (pri cemer je k = kϕ′).

1. Vzemimo k = kϕ. Po indukcijski hipotezi za vsak j ≥ k velja Pj |= ϕ ⇔ Qj |=

ϕ⇔ Pk |= ϕ. Zato za vsak j ≥ k velja tudi Pj |= ¬ ϕ⇔ Qj |= ¬ ϕ⇔ Pk |= ¬ ϕ.

2. Vzemimo k = max(kϕ, kϕ′). Po indukcijski hipotezi za vsak j ≥ k velja Pj |= ϕ⇔

Qj |= ϕ ⇔ Pk |= ϕ in Pj |= ϕ′ ⇔ Qj |= ϕ′ ⇔ Pk |= ϕ′. Zato za vsak j ≥ k veljatudi Pj |= (ϕ ∨ ϕ′) ⇔ Qj |= (ϕ ∨ ϕ′) ⇔ Pk |= (ϕ ∨ ϕ′).

3. Vzemimo k = max(kϕ, kϕ′). Po indukcijski hipotezi za vsak j ≥ k velja Pj |= ϕ⇔

Qj |= ϕ⇔ Pk |= ϕ in Pj |= ϕ′ ⇔ Qj |= ϕ′ ⇔ Pk |= ϕ′. Sedaj proucimo veljavnostformule ψ = E[ϕ U> ϕ′].

• Naj bo Pk |= ϕ. Ce Pk |= ϕ′ ali Pk |= ψ, potem za vsak j ≥ k+1 velja Pj |= ψ

in Qj |= ψ. Ce Pk 6|= ϕ′ in Pk 6|= ψ, potem za vsak j ≥ k + 1 velja Pj 6|= ψ inQj 6|= ψ.

• Naj bo Pk 6|= ϕ. Ce Pk |= ϕ′, potem za vsak j ≥ k+1 velja Pj |= ψ inQj |= ψ.Ce Pk 6|= ϕ′, potem za vsak j ≥ k + 1 velja Pj 6|= ψ in Qj 6|= ψ.

Torej za vsak j ≥ k + 1 velja Pj |= ψ ⇔ Qj |= ψ ⇔ Pk+1 |= ψ.

149

Trditev A.5 Mnozica {AU>,AG>} ni zadostna mnozica operatorjev za CTL.

Dokaz. Pokazali bomo, da ne moremo izraziti operatorja EU>. Vzemimo KS na sliki 2, vkateri je mnozica atomarnih izjav enaka {a, b}. Ce so stanja v KS oznacena tako, da veljaP0 |= b, Q0 |= (¬a ∧ ¬b) in za vsak i ≥ 1 velja Pi |= (a ∧ ¬b) ter Qi |= (a ∧ ¬b), potemza vsak i ≥ 1 formula E[a U> b] velja v stanju Pi, ne velja pa v stanju Qi. Vendar pa zapoljubno formulo ψ, ki vsebuje le operatorja AU> in AG>, obstaja tak k ≥ 1, da za vsakj ≥ k velja Pj |= ψ ⇔ Qj |= ψ. Torej formula ψ ni ekvivalentna formuli E[a U> b].

...

......

...

Qk+1

Pk+1 Pk P1

Qk Q1

P0

Q0

q

Slika 2

Tudi za dokaz te trditve uporabimo indukcijo po strukturi formule CTL. Vse atomarneizjave imajo za vsak i ≥ 1 enako veljavnost v vseh stanjih Pi in Qi, torej k = 1 intrditev velja. Sedaj predpostavimo, da indukcijska hipoteza velja za formulo ϕ (pri cemerje k = kϕ) in za formulo ϕ′ (pri cemer je k = kϕ′).

1. Vzemimo k = kϕ. Po indukcijski hipotezi za vsak j ≥ k velja Pj |= ϕ ⇔ Qj |= ϕ.Zato za vsak j ≥ k velja tudi Pj |= ¬ ϕ⇔ Qj |= ¬ ϕ.

2. Vzemimo k = max(kϕ, kϕ′). Po indukcijski hipotezi za vsak j ≥ k velja Pj |= ϕ⇔

Qj |= ϕ in Pj |= ϕ′ ⇔ Qj |= ϕ′. Zato za vsak j ≥ k velja tudi Pj |= (ϕ ∨ ϕ′) ⇔

Qj |= (ϕ ∨ ϕ′).3. Vzemimo formulo ψ = AG> ϕ. Ce formula AG> ϕ velja v nekem stanju r, potem

velja tudi v vseh stanjih, ki so dosegljiva iz r. Za vsak j ≥ 1 velja, da sta stanji Pj inQj na istem ciklu, torej je stanje Pj dosegljivo iz stanja Qj ter obratno. Zato za vsakj ≥ 1 velja Pj |= ψ ⇔ Qj |= ψ.

4. Vzemimo k=max(kϕ, kϕ′). Po indukcijski hipotezi za vsak j≥ k velja Pj |=ϕ ⇔

Qj |=ϕ in Pj |=ϕ′ ⇔ Qj |=ϕ′. Sedaj proucimo veljavnost formule ψ = A[ϕ U> ϕ′].• Ce Pk+1 |= ψ, potem zaradi zank Pk+1 |= ϕ′ in Pk |= ϕ′. Torej tudi Qk+1 |= ϕ′

in Qk |= ϕ′ in zato Qk+1 |= ψ.• Ce Qk+1 |= ψ, potem zaradi zankQk+1 |= ϕ′ inQk |= ϕ′. Torej tudi Pk+1 |= ϕ′

in Pk |= ϕ′ in zato Pk+1 |= ψ.Torej za vsak j ≥ k + 1 velja Pk+1 |= ψ ⇔ Qk+1 |= ψ.

150 A Najmanjsa zadostna mnozica operatorjev za CTL

Trditev A.6 Mnozica, ki ne vsebuje nobenega operatorja iz {EU>,AW>}, ni zadostnamnozica operatorjev za CTL.

Dokaz. Vsako formulo z operatorji EX, EF>, EG>, EW>, AX, AU>, AF> in AG> lahkoprevedemo na tako formulo, ki vsebuje le operatorja AU> in AG>. Zato, ce je mnozica, kine vsebuje nobenega operatorja iz {EU>,AW>}, zadostna mnozica operatorjev za CTL,potem je tudi mnozica {AU>,AG>} zadostna mnozica operatorjev za CTL. Ker mnozica{AU>,AG>} ni zadostna mnozica operatorjev za CTL, torej tudi mnozica, ki ne vsebujenobenega operatorja iz {EU>,AW>}, ni zadostna mnozica operatorjev za CTL.

Trditev A.7 Mnozica, ki ne vsebuje nobenega operatorja iz {EG>,AF>,EW>,AU>}, nizadostna mnozica operatorjev za CTL.

Dokaz. Vsako formulo z operatorji EX, EF>, EU>, AX, AG> in AW> lahko prevedemona tako formulo, ki vsebuje le operator EU>. Nadaljujemo kot v prejsnjem primeru in kermnozica {EU>} ni zadostna mnozica operatorjev za CTL, torej tudi mnozica, ki ne vse-buje nobenega operatorja iz {EG>,AF>,EW>,AU>}, ni zadostna mnozica operatorjevza CTL.

Dodatek B

Pretvorba formul ACTLW v formuleACTL

Preslikava actlw2actl: ACTLW−→ACTL, ki preslikuje formule ACTLW v formule ACTL,je podana z deficijo 2.13. Poleg formul ACTLW, ki so neposredno zajete v tej definiciji,znamo posredno preslikati tudi formule ACTLW, ki jih lahko s pomocjo ekvivalenc medoperatorji ACTLW pretvorimo v tako obliko, ki je zajeta v definiciji.

V tem dodatku podajamo seznam formul ACTLW, ki jih znamo pretvoriti v formuleACTL. Za vsako formulo je podano tudi pravilo za pretvorbo. Seznam ni popoln, sajmanjkajo formule, ki so protislovje (npr. formula EE[{χ} ϕ U {false} ϕ′]), tavtologija(npr. formula AA[{χ} ϕW {true} true]) oz. jih lahko trivialno pretvorimo v tako formuloACTLW, ki jo znamo pretvoriti (npr. EE[{χ}ϕW {false}ϕ′] = EE[{χ}ϕW {χ′} false] =EE[{χ} ϕ W {χ′ ∨ τ} false] = EE[{χ} ϕ W {false} false]).

Ker velja ∃(ϕ χUχ′ ϕ′) = ∃(ϕ χU (ϕ ∧ ∃Xχ′ ϕ′), je pri nekaterih formulah ACTLWmozen tudi drugacen nacin pretvorbe.

B.1 Pretvorba formul z operatorjem EEU

Opis formul ACTLW z operatorjem EEU, ki jih znamo pretvoriti v formulo ACTL:

• Formule oblike EE[{χ} ϕ U {χ′} ϕ′] lahko pretvorimo le, ce je ϕ= false.

• Formule oblike EE[{χ}ϕU{χ′∨τ}ϕ′] lahko pretvorimo, ko je ϕ= false ali ϕ′= true.

• Formule oblike EE[{χ ∨ τ} ϕ U {χ′} ϕ′] lahko vse pretvorimo v formule ACTL.

• Formule oblike EE[{χ∨ τ}ϕU {χ′ ∨ τ}ϕ′] lahko vse pretvorimo v formule ACTL.

151

152 B Pretvorba formul ACTLW v formule ACTL

Pravila za pretvorbo formul ACTLW z operatorjem EEU so naslednja:

actlw2actl (EE[{false} false U {χ′} ϕ′]) = ∃Xχ′ actlw2actl (ϕ′)

actlw2actl (EE[{false} false U {χ′ ∨ τ} ϕ′]) = ∃Xχ′∨τ actlw2actl (ϕ′)

actlw2actl (EE[{χ} ϕ U {χ′ ∨ τ} true]) =

(∃Xχ′∨τ true) ∨ (∃Xχ ∃(actlw2actl (ϕ) χU (actlw2actl (ϕ) ∧ ∃Xχ′∨τ true)))actlw2actl (EE[{χ ∨ τ} ϕ U {χ′} ϕ′]) =

(∃Xχ′ actlw2actl (ϕ′)) ∨ (∃Xχ∨τ ∃(actlw2actl (ϕ) χUχ′ actlw2actl (ϕ′)))

actlw2actl (EE[{χ ∨ τ} ϕ U {χ′ ∨ τ} ϕ′]) =

(∃Xχ′∨τ actlw2actl (ϕ′)) ∨

(∃Xχ∨τ ∃(actlw2actl (ϕ) χU (actlw2actl (ϕ) ∧ ∃Xχ′∨τ actlw2actl (ϕ′))))

B.2 Pretvorba formul z operatorjem AAU

Opis formul ACTLW z operatorjem AAU, ki jih znamo pretvoriti v formulo ACTL:

• Formule oblike AA[{χ}ϕU {χ′}ϕ′] lahko pretvorimo, ko je ϕ= false in v primerih,ko je ϕ= true ter hkrati velja ϕ′= true ali χ′=χ.

• Formule oblike AA[{χ} ϕU {χ′ ∨ τ} ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ= trueali ϕ′= true.

• Formule oblike AA[{χ ∨ τ} ϕ U {χ′} ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ= truein v primerih, ko je χ ∨ τ = true ter hkrati velja χ′= true ali ϕ′=ϕ.

• Formule oblike AA[{χ ∨ τ} ϕ U {χ′ ∨ τ} ϕ′] lahko pretvorimo, ko je ϕ= false, vprimerih, ko je χ ∨ τ = true in χ′ ∨ τ = true in v primerih, ko je ϕ= true in χ′=χ.

Pravila za pretvorbo formul ACTLW z operatorjem AAU so naslednja:

actlw2actl (AA[{false} false U {χ′} ϕ′]) = ∀Xχ′ actlw2actl (ϕ′)

actlw2actl (AA[{false} false U {χ′ ∨ τ} ϕ′]) = ∀Xχ′∨τ actlw2actl (ϕ′)

actlw2actl (AA[{χ ∨ τ} true U {χ′} ϕ′]) = ∀(true χUχ′ actlw2actl (ϕ′))

actlw2actl (AA[{χ ∨ τ} true U {χ ∨ τ} ϕ′]) = ∀Xχ∨τ ∀(true χU actlw2actl (ϕ′))

actlw2actl (AA[{χ} true U {χ′} true]) =

¬∃(true ¬χ′U X(¬χ∧¬χ′)∨τ true) ∧ ∀(true trueUχ′ true)actlw2actl (AA[{χ} true U {χ} ϕ′]) = ∀X ∀F actlw2actl (ϕ′) ∧

(¬∃X¬χ∨τ true) ∧ (¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ′) ∧ ∃X¬χ∨τ true)))

B.3 Pretvorba formul z operatorjem EEW 153

actlw2actl (AA[{χ} true U {true} ϕ′]) = (¬∃X¬χ∨τ ¬actlw2actl (ϕ′)) ∧

(¬∃X ∃(¬actlw2actl (ϕ′) trueU ∃X¬χ∨τ ¬actlw2actl (ϕ′))) ∧ ∀X ∀F actlw2actl (ϕ′)

actlw2actl (AA[{true} ϕ U {χ′} true]) =

¬∃(true ¬χU ∃X ¬actlw2actl (ϕ)) ∧ ∀(true trueUχ′ true)actlw2actl (AA[{true} ϕ U {χ′} ϕ]) =

¬∃(true ¬χ′ U ∃X¬χ′∨τ ¬actlw2actl (ϕ)) ∧ ∀(true trueUχ ϕ′)

actlw2actl (AA[{true} ϕ U {true} ϕ′]) = ∀X ∀F actlw2actl (ϕ′) ∧

¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ) ∧ ¬actlw2actl (ϕ′)))

B.3 Pretvorba formul z operatorjem EEW

Opis formul ACTLW z operatorjem EEW, ki jih znamo pretvoriti v formulo ACTL:

• Formule oblike EE[{χ} ϕ W {χ′} ϕ′] lahko pretvorimo le, ce je ϕ= false.

• Formule oblike EE[{χ} ϕ W {χ′ ∨ τ} ϕ′] lahko pretvorimo le, ce je ϕ= false.

• Formule oblike EE[{χ ∨ τ} ϕW {χ′}ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ= truein v primerih, ko je χ ∨ τ = true ter hkrati velja ϕ′= false ali ϕ′= true ali ϕ′=ϕ.

• Formule oblike EE[{χ ∨ τ} ϕW {χ′}ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ= truein v primerih, ko je χ ∨ τ = true ter hkrati velja ϕ′ = false ali ϕ′ = true ali ϕ′ =ϕ aliχ′ ∨ τ = true.

Pravila za pretvorbo formul ACTLW z operatorjem EEW so naslednja:

actlw2actl (EE[{false} false W {χ′} ϕ′]) = ∃Xχ′ actlw2actl (ϕ′)

actlw2actl (EE[{false} false W {χ′ ∨ τ} ϕ′]) = ∃Xχ′∨τ actlw2actl (ϕ′)

actlw2actl (EE[{χ ∨ τ} true W {false} false]) = ¬∀(true trueU¬χ true)actlw2actl (EE[{true} ϕ W {false} false]) = ¬∀X ∀(true trueU ¬ϕ)

actlw2actl (EE[{χ ∨ τ} true W {χ′} ϕ′]) =

∃(true χUχ′ actlw2actl (ϕ′)) ∨ ¬∀(true trueU¬χ true)actlw2actl (EE[{χ ∨ τ} true W {χ′ ∨ τ} ϕ′]) =

∃(true χU ∃Xχ′∨τ actlw2actl (ϕ′)) ∨ ¬∀(true trueU¬χ true)actlw2actl (EE[{true} ϕ W {χ′} true]) = ¬∀X¬χ′∨τ ∀(true ¬χ′U ¬actlw2actl (ϕ))

actlw2actl (EE[{true} ϕ W {χ′} ϕ]) = ∃X ∃G actlw2actl (ϕ) ∨

(∃Xχ′ actlw2actl (ϕ)) ∨ ∃X ∃(actlw2actl (ϕ) trueUχ′ actlw2actl (ϕ))

154 B Pretvorba formul ACTLW v formule ACTL

actlw2actl (EE[{true} ϕ W {χ′ ∨ τ} true]) = (∃X ∃G actlw2actl (ϕ)) ∨

(∃Xχ′∨τ true) ∨ (∃X ∃(actlw2actl (ϕ) trueU (actlw2actl (ϕ) ∧ ∃Xχ′∨τ true)))actlw2actl (EE[{true} ϕ W {χ′ ∨ τ} ϕ]) =

(∃X ∃G actlw2actl (ϕ)) ∨ (∃Xχ′∨τ actlw2actl (ϕ)) ∨

∃X ∃(actlw2actl (ϕ) trueU (actlw2actl (ϕ) ∧ ∃Xχ′∨τ actlw2actl (ϕ)))

actlw2actl (EE[{true} ϕ W {true} ϕ′]) =

(∃X ∃G actlw2actl (ϕ)) ∨ (∃X actlw2actl (ϕ′)) ∨

(∃X ∃(actlw2actl (ϕ) trueU (actlw2actl (ϕ) ∧ ∃X actlw2actl (ϕ′))))

B.4 Pretvorba formul z operatorjem AAW

Opis formul ACTLW z operatorjem AAW, ki jih znamo pretvoriti v formulo ACTL:

• Formule oblike AA[{χ}ϕW {χ′}ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ′= false inv primerih, ko je ϕ= true ter hkrati velja ϕ′= true ali χ′=χ.

• Formule oblike AA[{χ}ϕW{χ′∨τ}ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ′= falsein v primerih, ko je ϕ= true in χ′= true.

• Formule oblike AA[{χ∨τ}ϕW{χ′}ϕ′] lahko pretvorimo, ko je ϕ= false, ϕ′= false,v primerih, ko je ϕ= true in ϕ′= true in v primerih, ko je χ∨ τ = true ter hkrati veljaϕ= true ali ϕ′=ϕ.

• Formule oblike AA[{χ ∨ τ} ϕ W {χ′ ∨ τ} ϕ′] lahko pretvorimo ko je ϕ = false,ϕ′= false, v primerih, ko je χ ∨ τ = true in χ′ ∨ τ= true in v primerih, ko je ϕ= trueter hkrati velja χ= true ali χ′=χ.

Pravila za pretvorbo formul ACTLW z operatorjem AAW so naslednja:

actlw2actl (AA[{false} false W {χ′} ϕ′]) = (¬∃X¬χ′∨τ true) ∧ (¬∃X ¬actlw2actl (ϕ′))

actlw2actl (AA[{false} false W {χ′ ∨ τ} ϕ′]) =

(¬∃X¬χ′ true) ∧ (¬∃X ¬actlw2actl (ϕ′))

actlw2actl (AA[{χ} ϕ W {false} false]) =

(¬∃F ∃X¬χ∨τ true) ∧ (¬∃F ∃X ¬actlw2actl (ϕ))

actlw2actl (AA[{χ ∨ τ} ϕ W {false} false]) =

(¬∃F ∃X¬χ true) ∧ (¬∃F ∃X ¬actlw2actl (ϕ))

actlw2actl (AA[{χ} true W {χ′} true]) = ¬∃(true ¬χ′U ∃X(¬χ∧¬χ′)∨τ true)

B.5 Pretvorba formul ACTLW z izpeljanimi operatorji 155

actlw2actl (AA[{χ} true W {χ} ϕ′]) =

(¬∃X¬χ∨τ true) ∧ (¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ′) ∧ ∃X¬χ∨τ true)))actlw2actl (AA[{χ} true W {true} ϕ′]) = (¬∃X¬χ∨τ ¬actlw2actl (ϕ′)) ∧

(¬∃X ∃(¬actlw2actl (ϕ′) trueU ∃X¬χ∨τ ¬actlw2actl (ϕ′)))

actlw2actl (AA[{χ ∨ τ} true W {χ′} true]) = ¬∃(true ¬χ′U¬χ∧¬χ′ true)actlw2actl (AA[{χ ∨ τ} true W {true} ϕ′]) =

(¬∃X¬χ ¬actlw2actl (ϕ′)) ∧ (¬∃X ∃(¬actlw2actl (ϕ′) trueU¬χ ¬actlw2actl (ϕ′))) =

(¬∃X¬χ ¬actlw2actl (ϕ′)) ∧ (¬∃X ∃(¬actlw2actl (ϕ′) trueU ∃X¬χ ¬actlw2actl (ϕ′)))

actlw2actl (AA[{χ ∨ τ} true W {χ ∨ τ} ϕ′]) =

(¬∃X¬χ true) ∧ (¬∃X ∃(¬actlw2actl (ϕ′) trueU¬χ true)) =

(¬∃X¬χ true) ∧ (¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ′) ∧ ∃X¬χ true)))actlw2actl (AA[{true} ϕ W {χ′} true]) = ¬∃(true ¬χU ∃X ¬actlw2actl (ϕ))

actlw2actl (AA[{true} ϕ W {χ′} ϕ]) = ¬∃(true ¬χ′ U ∃X¬χ′∨τ ¬actlw2actl (ϕ))

actlw2actl (AA[{true} ϕ W {true} ϕ′]) =

¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ) ∧ ¬actlw2actl (ϕ′)))

B.5 Pretvorba formul ACTLW z izpeljanimi operatorji

Formule ACTLW z izpeljanimi operatorji znamo vse pretvoriti v formule ACTL, razennaslednjih izjem:

• Formule oblike AAF{χ ∨ τ} ϕ lahko pretvorimo le v primeru, ko je χ ∨ τ = true inv trivialnih primerih, ko je ϕ= false.

• Formule ACTLW oblike EEG{χ∨τ}ϕ lahko pretvorimo le v primerih, ko je χ∨τ =

true, ϕ= true in v trivialnih primerih, ko je ϕ= false.

• Formule ACTLW oblike EEG{χ} ϕ lahko pretvorimo le v trivialnih primerih, ko jeχ= false ali ϕ= false.

Pravila za pretvorbo formul ACTLW z izpeljanimi operatorji so naslednja:

actlw2actl (EEX{χ} ϕ) = ∃Xχ actlw2actl (ϕ)

actlw2actl (EEX{χ ∨ τ} ϕ) = ∃Xχ∨τ actlw2actl (ϕ)

actlw2actl (AAX{χ} ϕ) = (¬∃X¬χ∨τ true) ∧ (¬∃X ¬actlw2actl (ϕ))

actlw2actl (AAX{χ ∨ τ} ϕ) = (¬∃X¬χ true) ∧ (¬∃X ¬actlw2actl (ϕ))

156 B Pretvorba formul ACTLW v formule ACTL

actlw2actl (EEF{χ} ϕ) = ∃F ∃Xχ actlw2actl (ϕ) =

∃(true trueUχ actlw2actl (ϕ)) = ∃(true trueU ∃Xχ actlw2actl (ϕ))

actlw2actl (EEF{χ ∨ τ} ϕ) = ∃F ∃Xχ∨τ actlw2actl (ϕ) =

∃(true trueU ∃Xχ∨τ actlw2actl (ϕ))

actlw2actl (AAF{χ} ϕ) = ∀(true trueUχ actlw2actl (ϕ))

actlw2actl (AAF{true} ϕ) = ∀X ∀F actlw2actl (ϕ)

actlw2actl (EEG{χ ∨ τ} true) = ¬∀(true trueU¬χ true)actlw2actl (EEG{true} ϕ) = ¬∀X ∀(true trueU ¬ϕ)

actlw2actl (AAG{χ} ϕ) = (¬∃F ∃X¬χ∨τ true) ∧ (¬∃X ∃F ¬actlw2actl (ϕ))

actlw2actl (AAG{χ ∨ τ} ϕ) = (¬∃F ∃X¬χ true) ∧ (¬∃F ∃X ¬actlw2actl (ϕ))

B.6 Pretvorba okrajsanih formul ACTLW

Okrajsane formule ACTLW znamo vse pretvoriti v formule ACTL, razen naslednjih izjem:

• EE[{χ} U {χ′}],

• AA[{χ} U {χ′}], AA[{χ} U {χ′ ∨ τ}] in AA[{χ ∨ τ} U {χ′ ∨ τ}],

• EE[{χ} W {χ′}] in EE[{χ} W {χ′ ∨ τ}],

• AA[{χ} W {χ′ ∨ τ}] in AA[{χ ∨ τ} W {χ′ ∨ τ}],

• AAF{χ ∨ τ} in

• EEG{χ}.

Okrajsane formule ACTLW pretvorimo v formule ACTL po naslednjih pravilih:

actlw2actl (EE[{χ} U {χ′ ∨ τ}]) = ∃(true χU ∃Xχ′∨τ true)actlw2actl (EE[{χ ∨ τ} U {χ′}]) = ∃(true χUχ′ true) = ∃(true χU ∃Xχ′ true)actlw2actl (EE[{χ ∨ τ} U {χ′ ∨ τ}]) = ∃(true χU ∃Xχ′∨τ true)actlw2actl (AA[{χ} U {χ′}]) = ¬∃(true ¬χ′U X(¬χ∧¬χ′)∨τ true) ∧ ∀(true trueUχ′ true)actlw2actl (AA[{χ ∨ τ} U {χ′}]) = ∀(true χUχ′ true)actlw2actl (EE[{χ ∨ τ} W {χ′}]) =

¬∀(true ¬χ′U¬χ∧¬χ′ true) = ∃(true χUχ′ true) ∨ ¬∀(true trueU¬χ true)actlw2actl (EE[{χ ∨ τ} W {χ′ ∨ τ}]) = ∃(true χU ∃Xχ′∨τ true) ∨ ¬∀(true trueU¬χ true)actlw2actl (AA[{χ} W {χ′}]) = ¬∃(true ¬χ′U ∃X(¬χ∧¬χ′)∨τ true)actlw2actl (AA[{χ ∨ τ} W {χ′}]) = ¬∃(true ¬χ′U¬χ∧¬χ′ true)

B.6 Pretvorba okrajsanih formul ACTLW 157

actlw2actl (EEX{χ}) = ∃Xχ trueactlw2actl (EEX{χ ∨ τ}) = ∃Xχ∨τ trueactlw2actl (AAX{χ}) = ¬∃X¬χ∨τ trueactlw2actl (AAX{χ ∨ τ}) = ¬∃X¬χ trueactlw2actl (EEF{χ}) = ∃(true trueUχ true) = ∃F ∃Xχ trueactlw2actl (EEF{χ ∨ τ}) = ∃F ∃Xχ∨τ trueactlw2actl (AAF{χ}) = ∀(true trueUχ true)actlw2actl (EEG{χ ∨ τ}) = ¬∀(true trueU¬χ true)actlw2actl (AAG{χ}) = ¬∃F ∃X¬χ∨τ trueactlw2actl (AAG{χ ∨ τ}) = ¬∃(true trueU¬χ true) = ¬∃F ∃X¬χ trueactlw2actl (EE[ϕ U ϕ′]) = (∃X actlw2actl (ϕ′)) ∨

(∃X ∃(actlw2actl (ϕ) trueU (actlw2actl (ϕ) ∧ ∃X actlw2actl (ϕ′))))

actlw2actl (EE[ϕ W ϕ′]) = ∃X ∃G actlw2actl (ϕ) ∨ (∃X actlw2actl (ϕ′)) ∨

(∃X ∃(actlw2actl (ϕ) trueU (actlw2actl (ϕ) ∧ ∃X actlw2actl (ϕ′))))

actlw2actl (AA[ϕ U ϕ′]) = ∀X ∀F actlw2actl (ϕ′) ∧

¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ) ∧ ¬actlw2actl (ϕ′)))

actlw2actl (AA[ϕ W ϕ′]) =

¬∃X ∃(¬actlw2actl (ϕ′) trueU (¬actlw2actl (ϕ) ∧ ¬actlw2actl (ϕ′)))

actlw2actl (EEX ϕ) = ∃X actlw2actl (ϕ)

actlw2actl (AAX ϕ) = ∀X actlw2actl (ϕ)

actlw2actl (EEF ϕ) = ∃X ∃F actlw2actl (ϕ) = ∃F ∃X actlw2actl (ϕ)

actlw2actl (AAF ϕ) = ∀X ∀F actlw2actl (ϕ)

actlw2actl (EEG ϕ) = ∃X ∃G actlw2actl (ϕ)

actlw2actl (AAG ϕ) = ∀X ∀G actlw2actl (ϕ) = ∀G ∀X actlw2actl (ϕ)

158 B Pretvorba formul ACTLW v formule ACTL

Kljub temu, da ta doktorska disertacija izhaja iz prakticnih problemov in da podajaprakticne primere, ni bila napisana z namenom komercialne uporabe, ampak izkljucno iz

ljubezni do logike, matematike in znanosti nasploh.

Vse prispevke znanosti, predstavljene v tej doktorski disertaciji, dajem v javno last z zeljo,da ne bodo zlorabljeni oz. uporabljeni na nacin, ki bi komurkoli skodoval. Ne strinjam ses tem, da bi iz komercialnih ali iz politicnih razlogov kdorkoli omejeval njihovo uporabo.

Avtor

159

160

Zivljenjepis

Osebni podatki: Robert Meolicrojen 23. aprila 1972 v Murski Soboti

Osnovna sola: 1979 – 1986 Osnovna sola Bakovci

Srednja sola: 1986 – 1990 SCTPU Murska Sobotasmer Naravoslovno-matematicna dejavnost

Dodiplomski studij: 1990 – 1995 FERI, Univerza v Mariborusmer Racunalnistvo in informatika

Diplomsko delo: junij 1995 Uporaba urejenih odlocitvenih grafov priracunalniski obdelavi logicnih funkcijmentor: red. prof. dr. Zmago Brezocniksomentor: red. prof. dr. Bogomir Horvat

Podiplomski studij: 1995 – 2005 FERI, Univerza v Mariboru

Magistrsko delo: november 1999 Preverjanje pravilnosti obnasanjasistemov s socasnostjopodrocje: racunalnistvo in informatikamentorica: izr. prof. dr. Tatjana Kapussomentor: red. prof. dr. Zmago Brezocnik

Doktorska disertacija: september 2005 Akcijska logika dreves izvajanjz operatorjem unlesspodrocje: elektrotehnikamentorica: izr. prof. dr. Tatjana Kapus

161

162 ZIVLJENJEPIS

Nagrade in priznanja: 1985 Zlato Vegovo priznanje1993 Priznanje za 2. mesto na tekmovanju

studentskih clankov IEEE Regije 81994 Pohvala Tehniske fakultete

Stipendije: 1986 – 1990 Zoisova stipendija1990 – 1995 Zoisova stipendija1995 – 1997 Stipendija Slovenske znanstvene fundacije

Zaposlitve: 1997 – 1998 Univerza v Mariboruraziskovalec-pripravnik

od 1998 Univerza v Mariboruasistent

Vojaski rok: 1998 Nadomestno civilno sluzenje vojaskegaroka v drustvu Ozara, Maribor

Izvolitve: 1996 – 2005 V naziv asistentza predmetno podrocje ElektronikaFERI, Univerza v Mariboru

Strokovnoizpopolnjevanje: 2001 EEF Foundations Summer School on

Logical Methods, BRICS, Aarhus, Danska(24. 6. 2001- 6. 7. 2001)

2004 Gostovanje na institutu ISTI, Pisa, Italija,stipendija italijanske vlade(1. 2. 2004 - 30. 4. 2005)

Raziskovalno delo: 1993 – 1995 Sodelovanje v projektu Formalnaverifikacija sistemov (J2-5122-0796-95)

1996 – 1998 Sodelovanje v projektu Zagotavljanjepravilnosti paralelnih in porazdeljenihsistemov (J2-7495-0796-96)

1995 –1997 Sodelovanje v projektu COST 247Verification and Validation Methodsfor Formal Descriptions (MS-20/95)

ROBERT MEOLIC [17878]

Osebna bibliografija za obdobje 1992-2005

CLANKI IN DRUGI SESTAVNI DELI

1.01 Izvirni znanstveni clanek

1. CASAR, Ales, MEOLIC, Robert, BREZOCNIK, Zmago, HORVAT, Bogomir.Predstavitev logicnih funkcij z minimalnimi urejenimi binarnimi odlocitvenimi grafi.Elektroteh. vestn., 59 (1992), 5 ; str. 299-307. [COBISS.SI-ID 4599556]

2. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Exploring properties of abounded retransmission protocol with VIS. CIT. J. Comput. Inf. Technol., 1999, vol. 7,no. 4, str. 311-321. [COBISS.SI-ID 5341206]

3. MEOLIC, Robert, KAPUS, Tatjana, DUGONIK, Bogdan, BREZOCNIK, Zmago.Formal verification of distributed mutual-exclusion circuits. Inf. MIDEM, september2003, letn. 33, st. 3(107), str. 157-169. [COBISS.SI-ID 8590614]

JCR IF: 0.091, SE (190/205), engineering, electrical & electronic (170/177), materialsscience, multidisciplinary

1.04 Strokovni clanek

4. VLAOVIC, Bostjan, MEOLIC, Robert. Radioamatersko racunalnisko omrezje. Softw.power (Maribor), 2001, st. 93, str. 10. [COBISS.SI-ID 6095894]

5. MEOLIC, Robert. Svet na dlani. Planet PC (Kamnica), 2005, st. 10, str. 50-52.[COBISS.SI-ID 9454102]

6. MEOLIC, Robert. Svet na dlani. 2. del. Planet PC (Kamnica), 2005, st. 11, str. 54-55.[COBISS.SI-ID 9454358]

163

164 BIBLIOGRAFIJA

7. MEOLIC, Robert. Svet na dlani. 3. del. Planet PC (Kamnica), 2005, st. 12, str. 47-48.[COBISS.SI-ID 9629718]

8. MEOLIC, Robert. Svet na dlani. 4. del. Planet PC (Kamnica), 2005, st. 13, str. 52-53.[COBISS.SI-ID 9629974]

1.08 Objavljeni znanstveni prispevek na konferenci

9. MEOLIC, Robert, BREZOCNIK, Zmago. Predstavitev slik z binarnimi odlocitvenimigrafi. V: SOLINA, Franc (ur.), ZAJC, Baldomir (ur.). Zbornik cetrte Elektrotehniske inracunalniske konference ERK ’95, 25. - 27. september 1995, Portoroz, Slovenija.Ljubljana: Slovenska sekcija IEEE, 1995, b, str. 111-114. [COBISS.SI-ID 7885316]

10. MEOLIC, Robert, BREZOCNIK, Zmago. Splosno razclenitveno pravilo za OBDD,OFDD in 0-sup-BDD. V: ZAJC, Baldomir (ur.), SOLINA, Franc (ur.). Zbornik peteElektrotehniske in racunalniske konference ERK ’96, 19. - 21. september 1996, Portoroz,Slovenija. Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 1996, str. B/11-14.[COBISS.SI-ID 2199318]

11. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Verifying a BoundedRetransmission Protocol using VIS. V: ZAJC, Baldomir (ur.). Zbornik sesteElektrotehniske in racunalniske konference ERK ’97, 25. - 27. september 1997, Portoroz,Slovenija. Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 1997, str. B/15-18.[COBISS.SI-ID 3084310]

12. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Computing testingequivalence with binary decision diagrams. V: ZAJC, Baldomir (ur.). Zbornik sedmeElektrotehniske in racunalniske konference ERK ’98, 24. - 26. september 1998, Portoroz,Slovenija. Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 1998, zv. B, str. 51-54.[COBISS.SI-ID 4007190]

13. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Specifikacija zahtevsistema z ACTL-jem. V: ZAJC, Baldomir (ur.). Zbornik osme Elektrotehniske inracunalniske konference ERK ’99, 23. - 25. september 1999, Portoroz, Slovenija.Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 1999, zv. B, str. 23-26.[COBISS.SI-ID 4838934]

BIBLIOGRAFIJA 165

14. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Verification ofconcurrent systems using ACTL. V: HAMZA, M. H. (ur.). Applied informatics :proceedings of the IASTED international conference, February 14-17, 2000, Innsbruck,Austria, (Applied informatics). Anaheim; Calgary; Zurich: IASTED/ACTA Press, 2000,str. 663-669. [COBISS.SI-ID 5347094]

15. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. The efficient symbolictools package. V: ROZIC, Nikola (ur.), BEGUSIC, Dinko (ur.), VRDOLJAK, Marija (ur.).International conference on software, telecommunications and computer networks, Split -Rijeka, Croatia, Trieste - Venice, Italy, October 10-14, 2000. SoftCOM 2000. Split:University of Split, Faculty of Electrical Engineering, Mechanical Engineering and NavalArchitecture, 2000, vol. 1, str. 147-156. [COBISS.SI-ID 5745686]

16. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Reasoning about data ina simple process algebra. V: ZAJC, Baldomir (ur.). Zbornik devete Elektrotehniske inracunalniske konference ERK 2000, 21. - 23. september 2000, Portoroz, Slovenija.Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 2000, zv. B, str. 19-22.[COBISS.SI-ID 5798422]

17. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Model checking: aformal method for safety assurance of logistic systems. V: LIPICNIK, Martin (ur.). 2.Kongres Transport, promet, logistika, Portoroz, Slovenija, 2.-3.10., 2000. Zbornik.Maribor: Fakulteta za gradbenistvo, 2000, str. 355-358. [COBISS.SI-ID 5729814]

18. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. CTL and ACTL patterns.V: International conference on trends in communications, Eurocon’2001, 4-7 July 2001,FEI STU Bratislava, Slovakia. Technical Program, Proceedings. Bratislava: Institute ofElectrical and Electronic Engineers, 2001, vol. 2, str. 540-543. [COBISS.SI-ID 6380566]

19. MEOLIC, Robert, KAPUS, Tatjana, GUNGL, Ernest, BREZOCNIK, Zmago.Verification of mutual exclusion algorithms with EST. V: ZAJC, Baldomir (ur.). Zbornikdesete Elektrotehniske in racunalniske konference ERK 2001, 24. - 26. september 2001,Portoroz, Slovenija. Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 2001, zv. B, str.15-18. [COBISS.SI-ID 6540566]

20. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. An action computationtree logic with unless operator. V: 1st South-East European workshop on formal methods[also] SEEFM’03, Thessaloniki, Greece, 20 November 2003; Satellite of 1st Balkan

166 BIBLIOGRAFIJA

Conference in Informatics, Thessaloniki, Greece, 21-23 Nov 2003. Agile formal methods:practical, rigorous methods for a changing world. [S.l.]: City college, 2003, str. 100-114.[COBISS.SI-ID 8430614]

21. DEDIC, David, MEOLIC, Robert. Verification of Bakery algorithm variants for twoprocesses. V: ZAJC, Baldomir (ur.), TKALCIC, Marko (ur.). The IEEE Region 8EUROCON 2003 : computer as a tool : 22-24. September 2003, Faculty of ElectricalEngineering, University of Ljubljana, Ljubljana, Slovenia : proceedings. Piscataway:IEEE, cop. 2003, vol. B, str. 35-39. [COBISS.SI-ID 8241686]

22. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Ogrodje paketa zaavtomatsko resevanje logicnih ugank. V: ZAJC, Baldomir (ur.). Zbornik dvanajstemednarodne Elektrotehniske in racunalniske konference ERK 2003, 25. - 26. september2003, Ljubljana, Slovenija, (Zbornik ... Elektrotehniske in racunalniske konference ERK..., 1581-4572). Ljubljana: IEEE Region 8, Slovenska sekcija IEEE, 2003, str. 455-458.[COBISS.SI-ID 8236822]

23. MEOLIC, Robert, FANTECHI, Alessandro, GNESI, Stefania. Witness andcounterexample automata for ACTL. V: DE FRUTOS-ESCRIG, David (ur.), NUNEZ,Manuel (ur.). Formal techniques for networked and distributed systems - FORTE 2004 :24th IFIP WG 6.1 international conference, Madrid, Spain, September 2004 :proceedings, (Lecture notes in computer science, vol. 3235). Berlin: Springer, cop. 2004,str. 259-275. [COBISS.SI-ID 9120534]

JCR IF: 0.251, SE (70/78), computer science, artificial intelligence

1.09 Objavljeni strokovni prispevek na konferenci

24. MEOLIC, Robert. Looking for technical reports. V: VLAOVIC, Bostjan (ur.),CASAR, Ales (ur.), MEOLIC, Robert (ur.), BALAN, Filip Samo (ur.). Proceedings of theSymposium Extra Skills for Young Engineers, October 18-20, 2000, Maribor, Slovenia.Maribor: Faculty of Electrical Engineering and Computer Science, 2000, str. 35-38.[COBISS.SI-ID 5754390]

1.16 Samostojni znanstveni sestavek v monografiji

25. CASAR, Ales, MEOLIC, Robert. Representation of Boolean functions withROBDDs. V: IEEE Student paper contest : regional contest winners 1990-1997 :

BIBLIOGRAFIJA 167

prize-winning papers demonstrating student excellence worldwide. Piscataway: TheInstitute of Electrical and Electronics Engineers, 2000, [8] str. [COBISS.SI-ID 6992150]

MONOGRAFIJE IN DRUGA ZAKLJUCENA DELA

2.09 Magistrsko delo

26. MEOLIC, Robert. Preverjanje pravilnosti obnasanja sistemov s socasnostjo :magistrsko delo. Maribor: [R. Meolic], 1999. XXII, 208 str., graf. prikazi.[COBISS.SI-ID 4972822]

2.12 Koncno porocilo o rezultatih raziskav

27. BREZOCNIK, Zmago, HORVAT, Bogomir, KAPUS, Tatjana, DUGONIK, Bogdan,DREO, Gabrijela, BALAN, Filip Samo, STERGAR, Janez, BABIC, Rudolf, SOLAR,Mitja, MEOLIC, Robert, STRAKL, Marjan, CASAR, Ales. Formalna verifikacijasistemov : fazno porocilo o rezultatih opravljenega dela na temeljnem raziskovalnemprojektu v letu 1993 [za MZT Slovenije] : temeljni raziskovalni projekt P2-5122/796-93.Maribor: Tehniska fakulteta, 1993. 1 zv. (loc. pag.). [COBISS.SI-ID 5900292]

28. BREZOCNIK, Zmago, HORVAT, Bogomir, KAPUS, Tatjana, DUGONIK, Bogdan,DREO, Gabrijela, BALAN, Filip Samo, STERGAR, Janez, BABIC, Rudolf, SOLAR,Mitja, MEOLIC, Robert, STRAKL, Marjan, CASAR, Ales. Formalna verifikacijasistemov : fazno porocilo o rezultatih opravljenega raziskovalnega dela na temeljnemraziskovalnem projektu v letu 1994 [za MZT Slovenije] : temeljni raziskovalni projektJ2-5122-0796-94. Maribor: Tehniska fakulteta, 1994. 1 zv. (loc. pag.). [COBISS.SI-ID7621380]

29. BREZOCNIK, Zmago, KAPUS, Tatjana, HORVAT, Bogomir, KAPUS-KOLAR,Monika, FREY-PUCKO, Marjeta, STRAKL, Marjan, CASAR, Ales, MEOLIC, Robert.COST 247 ”Verification and validation methods for formal descriptions”: letno porociloo rezultatih opravljenega raziskovalnega dela na projektu COST 247 : stevilka pogodbeMS-20/95. Maribor: Fakulteta za elektrotehniko, racunalnistvo in informatiko, 1996. 1 zv.(loc. pag.). [COBISS.SI-ID 1985302]

30. BREZOCNIK, Zmago, HORVAT, Bogomir, KAPUS, Tatjana, DUGONIK, Bogdan,DREO-RODOSEK, Gabrijela, BALAN, Filip Samo, STERGAR, Janez, BABIC, Rudolf,

168 BIBLIOGRAFIJA

SOLAR, Mitja, MEOLIC, Robert, STRAKL, Marjan, CASAR, Ales. Formalnaverifikacija sistemov : zakljucno porocilo o rezultatih opravljenegaznanstveno-raziskovalnega dela na podrocju temeljnega raziskovanja : stevilka pogodbeJ2-5122-0796-95. Maribor: Fakulteta za elektrotehniko, racunalnistvo in informatiko,1996. 1 zv. (loc. pag.). [COBISS.SI-ID 1983510]

31. BREZOCNIK, Zmago, KAPUS, Tatjana, HORVAT, Bogomir, KAPUS-KOLAR,Monika, FREY-PUCKO, Marjeta, STRAKL, Marjan, CASAR, Ales, MEOLIC, Robert.COST 247 ”Verification and validation methods for formal descriptions”: letno porociloo rezultatih opravljenega raziskovalnega dela na projektu COST 247 : st. pogodbeMS-20/95. Maribor: Fakulteta za elektrotehniko, racunalnistvo in informatiko, 1997. 1 zv.(loc. pag.). [COBISS.SI-ID 2640918]

32. BREZOCNIK, Zmago, KAPUS, Tatjana, HORVAT, Bogomir, DUGONIK, Bogdan,BALAN, Filip Samo, MEOLIC, Robert, DREO-RODOSEK, Gabrijela, STRAKL,Marjan, CASAR, Ales. Zagotavljanje pravilnosti paralelnih in porazdeljenih sistemov :letno porocilo o rezultatih opravljenega znanstveno-raziskovalnega dela na podrocjutemeljnega raziskovanja : st. pogodbe J2-7495-0796-96. Maribor: Fakulteta zaelektrotehniko, racunalnistvo in informatiko, 1997. V, 54 f. [COBISS.SI-ID 2640406]

33. BREZOCNIK, Zmago, KAPUS, Tatjana, HORVAT, Bogomir, KAPUS-KOLAR,Monika, FREY-PUCKO, Marjeta, STRAKL, Marjan, CASAR, Ales, MEOLIC, Robert,DUGONIK, Bogdan. COST 247 ”Verification and validation methods for formaldescriptions”: zakljucno porocilo o rezultatih opravljenega raziskovalnega dela naprojektu COST 247. Maribor: Fakulteta za elektrotehniko, racunalnistvo in informatiko,1998. VIII, 138 f. [COBISS.SI-ID 3457814]

34. BREZOCNIK, Zmago, KAPUS, Tatjana, HORVAT, Bogomir, DUGONIK, Bogdan,BALAN, Filip Samo, MEOLIC, Robert, DREO, Gabrijela, CASAR, Ales. Zagotavljanjepravilnosti paralelnih in porazdeljenih sistemov : letno porocilo o rezultatihraziskovalnega projekta v letu 1997. Maribor: Fakulteta za elektrotehniko, racunalnistvoin informatiko, 1998. IV, 40 f. [COBISS.SI-ID 3456534]

35. BREZOCNIK, Zmago, KAPUS, Tatjana, HORVAT, Bogomir, DUGONIK, Bogdan,BALAN, Filip Samo, MEOLIC, Robert, DREO-RODOSEK, Gabrijela, CASAR, Ales.Zagotavljanje pravilnosti paralelnih in porazdeljenih sistemov : zakljucno porocilo orezultatih raziskovalnega projekta v letu 1998. Maribor: Fakulteta za elektrotehniko,racunalnistvo in informatiko, 1999. 13 f. [COBISS.SI-ID 4288278]

BIBLIOGRAFIJA 169

2.21 Programska oprema

36. CASAR, Ales, MEOLIC, Robert, BREZOCNIK, Zmago. BDD programmingpackage. Maribor: Faculty of Electrical Engineering and Computer Science, 1995.[COBISS.SI-ID 3145750]

37. MEOLIC, Robert, KAPUS, Tatjana, CASAR, Ales, SEPESY MAUCEC, Mirjam,BREZOCNIK, Zmago. EST - Efficient Symbolic Tools. Maribor: [R. Meolic], 2000. 1CD-ROM. http://www.el.feri.uni-mb.si/est/. [COBISS.SI-ID 5626902]

2.25 Druge monografije in druga zakljucena dela

38. MEOLIC, Robert, CASAR, Ales. Representation of Boolean functions with ROBDDs: [drugouvrsceni referat na studentskem tekmovanju IEEE Regije 8, COMPEURO ’93,24.-27. maj 1993, Pariz]. Maribor: Faculty of technical sciences, 1993. II, 23 f.[COBISS.SI-ID 3146262]

IZVEDENA DELA (DOGODKI)

3.13 Organiziranje znanstvenih in strokovnih sestankov

39. BREZOCNIK, Zmago, BALAN, Filip Samo, CASAR, Ales, DUGONIK, Bogdan,HORVAT, Bogomir, JAGODIC, Marko, KAPUS, Tatjana, KRUSCIC, Andrej, MEOLIC,Robert, FREY-PUCKO, Marjeta, STRAKL, Marjan. COST 247 International Workshopon Applied Formal Methods in System Design, June 17-19, 1996, Maribor, Slovenia.1996. [COBISS.SI-ID 3155478]

40. VLAOVIC, Bostjan, BREZOCNIK, Zmago, BALAN, Filip Samo, CASAR, Ales,DUGONIK, Bogdan, KASTELIC, Dejan, MEOLIC, Robert, VREZE, Aleksander.Symposium Extra skills for young engineers. 2000. [COBISS.SI-ID 5753366]

41. BREZOCNIK, Zmago, KOKOL, Peter, RIEDLING, Eveline, SANCHEZ-PONZ,Jorge-Luis, JEVTIC, Sasa, BALAN, Filip Samo, CASAR, Ales, MEOLIC, Robert,MERTIK, Matej, NEDOK, Simon, VACUN, Sebastijan, VLAOVIC, Bostjan, VREZE,Aleksander. Extra skills for young engineers ESYE 2001 : second symposium, October17-19, 2001, Maribor, Slovenia. 2001. [COBISS.SI-ID 6650390]

170 BIBLIOGRAFIJA

3.14 Predavanje na tuji univerzi

42. MEOLIC, Robert, KAPUS, Tatjana, BREZOCNIK, Zmago. Formal verification ofconcurrent systems behaviour : invited lecture at Sveuciliste u Zagrebu, Fakultetelektrotehnike i racunarstva, Zavod za telekomunikacije. Zagreb, 2000. [COBISS.SI-ID5355286]

SEKUNDARNO AVTORSTVO

Urednik

43. VLAOVIC, Bostjan (ur.), CASAR, Ales (ur.), MEOLIC, Robert (ur.), BALAN, FilipSamo (ur.). Proceedings of the Symposium Extra Skills for Young Engineers, October18-20, 2000, Maribor, Slovenia. Maribor: Faculty of Electrical Engineering and ComputerScience, 2000. X, 64 str., ilustr. ISBN 86-435-0357-6. [COBISS.SI-ID 45324545]

44. JEVTIC, Sasa (ur.), MEOLIC, Robert (ur.), VREZE, Aleksander (ur.), CASAR, Ales(ur.). Proceedings of the Second symposium Extra skills for young engineers ESYE 2001 :October 17-19, 2001, Maribor, Slovenia. Maribor: Faculty of Electrical Engineering andComputer Science, 2001. X, 65 str., ilustr. ISBN 86-435-0440-8. [COBISS.SI-ID46473985]

45. VLAOVIC, Bostjan (ur.), BALAN, Filip Samo (ur.), VREZE, Aleksander (ur.),MEOLIC, Robert (ur.). Strinajsta delavnica o telekomunikacijah, 19. in 20. maj 2003,Brdo pri Kranju. Varnost v telekomunikacijskih sistemih : [zbornik referatov], (Vitel).Ljubljana: Elektrotehniska zveza Slovenije, 2003. X, 114 str., ilustr., tabele.[COBISS.SI-ID 124426496]

NERAZPOREJENO

46. MEOLIC, Robert. Uporaba urejenih odlocitvenih grafov pri racunalniski obdelavilogicnih funkcij : diplomsko delo, (Fakulteta za elektrotehniko, racunalnistvo ininformatiko, Diplomska dela visokosolskega studija). Maribor: [R. Meolic], 1995. 98 str.,ilustr. [COBISS.SI-ID 1821974]