Mallintarkastus. Mallin generointi. Esimerkki mallin SMV-kuvauksesta. Tila-avaruuden symbolinen esitys (I)

Samankaltaiset tiedostot
2. M : T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 11 Ratkaisut 1. M :

Taulun avoimista haaroista saadaan kelvolliset lausejoukot

T Kevät 2003 Logiikka tietotekniikassa: erityiskysymyksiä I Laskuharjoitus 11 Ratkaisut

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

Taulumenetelmä modaalilogiikalle K

Loogiset konnektiivit

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

T : Max-flow / min-cut -ongelmat

LOGIIKKA johdantoa

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (opetusmoniste, lauselogiikka )

Algoritmi on periaatteellisella tasolla seuraava:

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

ja s S : ϕ Υ : M,s ϕ, mutta M,s Q. Erityisesti M, t P kaikilla t S, joten

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (lauselogiikka )

Algoritmit 1. Luento 13 Ti Timo Männikkö

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

T Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut

isomeerejä yhteensä yhdeksän kappaletta.

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Aikalogiikka

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

MS-A0402 Diskreetin matematiikan perusteet

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Algoritmit 2. Luento 13 Ti Timo Männikkö

Pikapaketti logiikkaan

Algoritmit 1. Luento 8 Ke Timo Männikkö

Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Tarkennamme geneeristä painamiskorotusalgoritmia

Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E.

13. Loogiset operaatiot 13.1

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

Esimerkkimodaalilogiikkoja

Algoritmit 2. Luento 11 Ti Timo Männikkö

PARITUS KAKSIJAKOISESSA

Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan erilaisia todistustekniikoita. Luentokalvoista 11, sekä voi olla apua.

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen.

13. Loogiset operaatiot 13.1

Eräs keskeinen algoritmien suunnittelutekniikka on. Palauta ongelma johonkin tunnettuun verkko-ongelmaan.

13 Lyhimmät painotetut polut

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

5/20: Algoritmirakenteita III

10. Painotetut graafit

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (Predikaattilogiikka )

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

Todistusmenetelmiä Miksi pitää todistaa?

Insinöörimatematiikka A

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Johdatus logiikkaan I Harjoitus 4 Vihjeet

T Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

T Syksy 2003 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Toinen muotoilu. {A 1,A 2,...,A n,b } 0, Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin kun 1 / 13

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Algoritmit 1. Luento 13 Ma Timo Männikkö

Ehto- ja toistolauseet

11. Javan toistorakenteet 11.1

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Algoritmit 2. Luento 6 Ke Timo Männikkö

Johdatus graafiteoriaan

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

Muistutus aikatauluista


Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Algoritmit 2. Luento 2 To Timo Männikkö

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

A TIETORAKENTEET JA ALGORITMIT

b) Olkoon G vähintään kaksi solmua sisältävä puu. Sallitaan verkon G olevan

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Polkuintegraali yleistyy helposti paloitain C 1 -poluille. Määritelmä Olkoot γ : [a, b] R m paloittain C 1 -polku välin [a, b] jaon

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

0 v i v j / E, M ij = 1 v i v j E.

MS-A0402 Diskreetin matematiikan perusteet

Kirjoita käyttäen propositiosymboleita, konnektiiveja ja sulkeita propositiologiikan lauseiksi:

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

Ei-yhteydettömät kielet [Sipser luku 2.3]

Predikaattilogiikan malli-teoreettinen semantiikka

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

Graafin virittävä puu 1 / 20

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Miten käydä läpi puun alkiot (traversal)?

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Transkriptio:

/ Kevät 2005 ML-10 1 Mallintarkastus / Kevät 2005 ML-10 3 Esimerkki mallin SMV-kuvauksesta Onko annettu lause P tosi annetussa mallissa M? Malli M: järjestelmän malli Saadaan järjestelmän kuvauksesta, joka on usein annettu jollain spesifiointikielellä: SDL, VHDL, prosessialgebra, automaatit, Petri-verkot, SMV, PROMELA... Lause P: järjestelmän kiinnostava ominaisuus. Usein annettu temporaalilogiikalla: CTL, LTL, CTL,... Täysin automatisoitavissa. Realististen järjestelmien mallit usein suuria. Jo nykyiset tekniikat teollisesti sovellettavissa. MODULE main VAR state1: {s1, n1}; ASSIGN init(state1) := s1; next(state1) := case (state1 = s1) & (state2 = s2): n1; (state1 = n1) : {n1, s1}; 1: state1; esac; VAR state2: {s2, n2}; ASSIGN init(state2) := s2; next(state2) := case (state1 = s1) & (state2 = s2): n2; (state2 = n2) : {n2, s2}; 1: state2; esac; SPEC AF ((state1 = n1) & (state2 = s2)) / Kevät 2005 ML-10 2 Mallin generointi / Kevät 2005 ML-10 4 Tila-avaruuden symbolinen esitys (I) Mallintarkastusta varten järjestelmän kuvauksesta muodostetaan mahdollisten maailmojen malli M. Eksplisiittinen esitystapa Malli M muodostetaan kuvauksesta saavutettavuusanalyysitekniikalla ennen mallintarkastusta (tilaräjähdys). On-the-fly -tekniikka Malli M muodostetaan kuvauksesta saavutettavuusanalyysitekniikalla mallintarkastuksen aikana tarpeen mukaan. Symbolinen esitystapa Tilasiirtymärelaatio esitetään Boolen funktiona symbolisesti. Järjestelmän kokonaistila esitetään binäärisesti (n tilabittiä). Otetaan käyttöön kullekin tilabitille i kaksi atomilausetta v i (nykyinen tila) ja v i (uusi tila). Määritellään kullekin tilabitille i tilasiirtymäehdon antava lause v i (v i v i+1 ) v i+3 joiden konjuntiona saadaan tilasiirtymärelaatiolle lause T( v, v ). Lause T( v, v ) kertoo symbolisesti mahdolliset tilasiirtymät: Järjestelmä voi siirtyä esim. tilasta (0,..., 0) tilaan (1,..., 1) joss lause T( v, v ) on tosi mallissa, jossa kaikki v i atomit ovat epätosia ja kaikki v i atomit ovat tosia.

/ Kevät 2005 ML-10 5 Tila-avaruuden symbolinen esitys (II) Nyt järjestelmän saavutettavílle tiloille voidaan muodostaa lause R( v) iteratiivisesti: R 0 ( v) := I( v), missä I( v) antaa mahdolliset alkutilat. Toistetaan kaikilla i = 1, 2,... R i ( v) := w(r i 1 ( w) T( w, v)) kunnes R i ( v) R i 1 ( v) (ovat loogisesti ekvivalentteja). R i ( v) kertoo symbolisesti saavutettavat tilat: esim. tila (0,...,0) on saavutettavissa joss lause R i ( v) on tosi mallissa, jossa kaikki v i atomit ovat epätosia. Voidaan esittää suuria tila-avaruuksia erittäin tiiviisti: esim. R i ( v) = v 1 esittää 2 n 1 saavutettavaa tilaa (eli kaikki tilat, joissa tilabitti v 1 on 1). / Kevät 2005 ML-10 7 Mallintarkastin Mallintarkastimet ottaa tyypillisesti syötteekseen (i) spesifiointikielellä annetun mallin ja (ii) temporaalilogiikalla annetun lauseen (vaatimusmäärittelyn) ja antaa vastauksena ilmoituksen, että lause on tosi mallissa tai vastaesimerkin (mallin suorituksen, jossa lause ei toteudu). Mallintarkastinta voidaan käyttää siis järjestelmän spesifikaation debuggaukseen. / Kevät 2005 ML-10 6 Tila-avaruuden symbolinen esitys (III) Esimerkiksi SMV-mallintarkastin käyttää symbolista tila-avaruuden esitysmuotoa. Tarvittavat lauseet esitetään tehokkaassa OBDD-normaalimuodossa (ordered binary decision diagrams). Myös temporaalilogiikan lauseen tarkastaminen voidaan tehdä symbolisesti. / Kevät 2005 ML-10 8 Esimerkki: SMV-mallintarkastin > smv example.smv -- specification AF (state1 = n1 & state2 = s2) is false -- as demonstrated by the following execution sequence -- loop starts here -- state 1.1: state1 = s1 state2 = s2 state 1.2: state1 = n1 state2 = n2 state 1.3: state1 = s1 state2 = s2

/ Kevät 2005 ML-10 9 Globaali ja lokaali mallintarkastus Globaali mallintarkastus: Missä mallin tiloissa annettu lause P on tosi? Lokaali mallintarkastus: Onko lause P tosi mallin annetussa tilassa s 0? Lokaali mallintarkastus (yhdistettynä on-the-fly -tekniikkaan) mahdollistaa mallintarkastuksen, jossa mallin kaikkia tiloja ei tarvitse välttämättä tutkia (eikä edes muodostaa). Globaalin mallintarkastuksen toteuttaminen on suoraviivaisempaa ja se voidaan saada tehokkaaksi ja vähemmän muistia käyttäväksi. / Kevät 2005 ML-10 11 CTL-mallintarkastus (II) (ii) Kaikille i = 0, 1,...,n määrätään lauseen P i totuusarvo jokaisessa tilassa s S seuraavasti: Jos P i atomilause, saadaan totuusarvo suoraan mallista. Jos P i muotoa P j tai P j P l, saadaan totuusarvo alilauseiden P j, P l totuusarvoista (Huom. j, l < i, joten lauseiden P j, P l totuusarvot on tässä vaiheessa jo määrätty). Jos P i muotoa AXP j, saadaan totuusarvo alilauseen P j totuusarvoista kaikissa s:n seuraajissa. / Kevät 2005 ML-10 10 Globaali CTL-mallintarkastus Globaali mallintarkastusmenetelmä määrää lauseen totuusarvon mallin kaikissa tiloissa. Tämä tehdään käsittelemällä vuorollaan lauseen kaikki alilauseet alkaen atomilauseista seuraavasti: (i) Järjestetään lauseen P alilauseet järjestykseen: P 0, P 1,...,P n (= P), missä kukin P i esiintyy vasta kaikkien aitojen alilauseidensa jälkeen. Esimerkki. Lauseen A(PUE(QU P)) eräs mahdollinen alilausejärjestys: P, Q, P, E(QU P), A(P UE(QU P)) / Kevät 2005 ML-10 12 CTL-mallintarkastus (III) Jos P i muotoa A(P j UP l ), saadaan sen totuusarvo käyttämällä ekvivalenssia: A(P j UP l ) P l (P j AXA(P j UP l )) 1. Merkitään lause P i todeksi kaikissa tiloissa, joissa P l on tosi. 2. Merkitään lause P i todeksi tilassa s, jos P j on tosi siinä ja P i tosi kaikissa sen seuraajissa, kunnes uusia tällaisia tiloja ei löydy. 3. Merkitään P i epätodeksi muissa tiloissa.

/ Kevät 2005 ML-10 13 CTL-mallintarkastus (IV) / Kevät 2005 ML-10 15 E(P j UP l )-lauseiden evaluointi Jos P i muotoa E(P j UP l ), saadaan sen totuusarvo hyödyntämällä ekvivalenssia: E(P j UP l ) P l (P j EXE(P j UP l )) 1. Merkitään lause P i todeksi kaikissa tiloissa, joissa P l on tosi. 2. Merkitään lause P i todeksi tilassa s, jos P j on tosi siinä ja P i tosi jossakin sen seuraajassa, kunnes uusia tällaisia tiloja ei löydy. 3. Merkitään P i epätodeksi muissa tiloissa. Huom! Algoritmin aikavaativuus O( P S ( S + R )). Temporaalioperaattoreilla alkavien lauseiden evaluointia voidaan parantaa ja päästä aikavaativuuteen O( P ( S + R )). Globaaliin CTL-mallintarkastusmenetelmään voidaan suoraviivaisesti yhdistää myös reiluusehtojen käsittely. procedure CheckEU(P j, P l ) T := {s M, s = P l }; for all s T, label E(P j UP l ) true in s; while T is not empty do choose s in T and remove it from T; for all t such that (t, s) R do if E(P j UP l ) is not yet labeled true in t and M, t = P j then label E(P j UP l ) true in t; add t to T endif endfor endwhile / Kevät 2005 ML-10 14 Toteutustekniikkaa Seuraavassa annetaan esimerkki siitä, miten temporaalioperaattoreiden evaluointia voidaan tehostaa niin, että saavutetaan O( P ( S + R )) aikavaativuus (evaluoimalla kukin operaattori ajassa O( S + R )). Käsitellään operaattoreita E(P j UP l ) ja EGP j (A(P j UP l ) E( P l U( P j P l )) EG P l ) ) E(P j UP l )-lauseiden tehokas evaluointi voidaan hoitaa käyttämällä mallin saavutettavuusrelaatiota R taaksepäin. Näin E(P j UP l )-lause voidaan evaluoida ajassa O( S + R ) käyttäen seuraavaa CheckEU-algoritmia. / Kevät 2005 ML-10 16 EGP j -lauseiden evaluointi EGP j -lauseiden tehokas evaluointi perustuu mallin jakamiseen vahvasti kytkettyihin komponentteihin. Graafin vahvasti kytketty komponentti C on maksimaalinen aligraafi, jossa jokainen solmu on saavutettavissa jokaisesta muusta C:n solmusta C:ssä kulkevaa polkua pitkin. Komponentti C on ei-triviaali joss siinä on enemmän kuin yksi solmu tai se sisältää solmun, josta on kaari itseensä.

/ Kevät 2005 ML-10 17 EGP j -lauseiden evaluointi (II) EGP j -lauseiden evaluointi perustuu seuraavaan tulokseen, joka koskee mallin M rajoittumaa M = (S, R, v ), missä S = {s S M, s = P j }, R = {(s, t) R s, t S } ja v (s) = v(s) kaikille s S (mallista M poistetaan kaikki tilat, joissa lause P j ei ole tosi). Lemma. M, s = EGP j joss s S ja mallissa M löytyy polku tilasta s tilaan t, joka on graafin (S, R ) ei-triviaalissa vahvasti kytketyssä komponentissa. Vahvasti kytketyt komponentit voidaan löytää lineaarisessa ajassa O( S + R ) (Tarjanin algoritmi) Näin EGP j -lause voidaan evaluoida ajassa O( S + R ) käyttäen seuraavaa CheckEG algoritmia. / Kevät 2005 ML-10 19 LTL-mallintarkastus Seuraavassa esitetään taulujen käyttöön pohjaava menetelmä, jolla voidaan tarkastaa, lähteekö annetusta tilasta täysi polku, jossa annettu LTL-lause on tosi. Merkitään M, s = EP joss on olemassa tilasta s alkava täysi polku, jossa P on tosi. Tämän menetelmän avulla voidaan vastata myös muihin LTL-mallintarkastuskysymyksiin. Esim. LTL-lause P on tosi kaikilla annetusta tilasta s lähtevillä poluilla joss M, s = E P ei päde. / Kevät 2005 ML-10 18 procedure CheckEG(P j ) S := {s S M, s = P j }; R := {(s, t) R s, t S }; SCC := {C C is a non-trivial strongly connected component of (S, R )}; T := {s s C, C SCC} ; for all s T, label EGP j true in s; while T is not empty do choose s in T and remove it from T; for all t such that t S and (t, s) R do if EGP j is not yet labeled true in t then label EGP j true in t; add t to T endif endfor endwhile / Kevät 2005 ML-10 20 LTL-mallintarkastus Perusidea: M, s = EP tarkistetaan rakentamalla mallista M ja lauseesta P LTL-taulu (Büchi-automaatti), joka kuvaa kaikki mallin tilasta s lähtevät täydet polut, jotka toteuttavat lauseen P. Taulusta on sitten yksinkertaista tarkistaa, löytyykö tällaisia polkuja. Muistutus: käsitellään kieltä, jossa konnektiivit ovat,,x,u (muut konnektiivit käsitellään lyhennysmerkintöinä: esim. P Q = ( P Q); FP = UP; GP = F P = ( U P)). Seuraavassa määritellään mallintarkastusmenetelmää varten muutama apukäsite: Lauseen P sulkeuma CL(P) Atomit (s, K) (LTL-taulun solmut) Näiden avulla voidaan sitten rakentaa LTL-taulut.

/ Kevät 2005 ML-10 21 Sulkeuma (I) Lauseen P sulkeuma CL(P) on pienin joukko lauseita, joka sisältää lauseen P ja toteuttaa seuraavat ehdot: P 1 CL(P) joss P 1 CL(P) Jos P 1 P 2 CL(P), niin P 1, P 2 CL(P). Jos XP 1 CL(P), niin P 1 CL(P) Jos XP 1 CL(P), niin X P 1 CL(P) Jos P 1 UP 2 CL(P), niin P 1, P 2,X(P 1 UP 2 ) CL(P) (Tässä lause Q samaistetaan lauseeseen Q.) CL(P) on niiden lauseiden joukko, joka voi vaikuttaa lauseen P totuusarvoon. / Kevät 2005 ML-10 23 Atomit Olkoon annettuna malli M = (S, R, v) ja tutkittava lause P. Atomi A = (s A, K A ) on pari, missä s A S ja K A CL(P) AP { } (AP on kaikkien atomilauseiden joukko) siten, että joukolle K A pätee: jokaiselle atomilauseelle P AP { }, P K A joss M, s A = P; jokaiselle P 1 CL(P), P 1 K A joss P 1 K A ; jokaiselle P 1 P 2 CL(P), P 1 P 2 K A joss P 1 K A ja P 2 K A ; jokaiselle XP 1 CL(P), XP 1 K A joss X P 1 K A ; jokaiselle P 1 UP 2 CL(P), P 1 UP 2 K A joss P 2 K A tai P 1,X(P 1 UP 2 ) K A ; Huom. Atomeja muodostettaessa lause Q samaistetaan lauseeseen Q. / Kevät 2005 ML-10 22 Sulkeuma (II) Esimerkki. Lauseen ( H)UC sulkeuma CL(( H)UC)): ( H)UC) H H C C X(( H)UC)) (( H)UC)) X(( H)UC)) X (( H)UC)) X (( H)UC)) (Sulkeuma CL(P) on lauseen P laajennettu alilauseiden joukko, jossa on tietty lause ja sen negaatio aina parina mukana). / Kevät 2005 ML-10 24 Atomien muodostaminen (I) Kun halutaan muodostaa kaikki mahdolliset atomit (s, K), voidaan käyttää esim. seuraavaa menettelyä: Mahdollisten joukkojen K muodostaminen voidaan nähdä (binäärisenä) hakupuuna (atomitauluna), jonka juuressa ovat tilassa s todet atomilauseet ja epätosien atomilauseiden negaatiot. Puu voi haarautua kullekin lauseelle P 1 CL(P) kahteen haaraan, jossa toisessa on P 1 ja toisessa sen negaatio P 1. (Kussakin joukossa K jokaisesta lauseesta P 1 CL(P) joko lause P 1 K tai lause P 1 K). Muut säännöt (alla) lisäävät haaraan lauseita, jotka huolehtivat, että atomi muodostuu annettujen ehtojen mukaan.

/ Kevät 2005 ML-10 25 Atomien muodostaminen (II) Säännöt atomitaulun rakentamiseen: P 1 CL(P) P 1 P 1 P 1 P 2 P 1 Avoin haara K, joka on valmis (ei uusia lauseita yo. säännöillä ja jokaiselle P 1 CL(P), P 1 K tai P 1 K), on kelvollinen joukko K. P 2 XP 1 XP 1 (P 1 UP 2 ) X P 1 X P 1 P 2 P 1 X(P 1 UP 2 ) (P 1 UP 2 ) (P 1 P 2 ) P 1 P 2 P 2 P 2 P 1 X(P 1 UP 2 ) Haara sulkeutuu, jos se sisältää lauseen ja sen negaation. / Kevät 2005 ML-10 27 LTL-taulut (I) Mallille M = (S, R, v) ja lauseelle P LTL-taulu on graafi G = (N, E), missä solmujen joukko N on mallista M ja lauseesta P muodostettavien atomien joukko ja kaarien joukolle E pätee: (A, B) E joss (i) (s A, s B ) R ja (ii) jokaiselle XP 1 CL(P), XP 1 K A joss P 1 K B. Esimerkki. Olkoon tutkittava lause ( H)UC ja malli M = (S, R, v) missä S = {s 1, s 2 }, R = {(s 1, s 2 ), (s 2, s 2 )} ja v(s 1, H) = v(s 1, C) = v(s 2, H) = v(s 2, C) = false. Tällöin LTL-taulussa G = (N, E): N = {(s 1, K 1 ), (s 2, K 1 ), (s 1, K 2 ), (s 2, K 2 )} ja E = { ((s 1, K 1 ), (s 2, K 1 )), ((s 2, K 1 ), (s 2, K 1 )), ((s 1, K 2 ), (s 2, K 2 )), ((s 2, K 2 ), (s 2, K 2 )) } missä joukot K 1, K 2 ovat kuten edellisessä esimerkissä. / Kevät 2005 ML-10 26 Atomien muodostaminen (III) Esimerkki. Olkoon tutkittava lause ( H)UC, AP = {H, C} ja mallissa M: v(s 1, H) = v(s 1, C) = false. Hakupuu (atomitaulu): C ( H)UC H X(( H)UC) X (( H)UC), H, C C H (( H)UC) C X(( H)UC) X (( H)UC) / Kevät 2005 ML-10 28 LTL-taulut (II) Tulevaisuuspolku graafissa G on ääretön polku π siten, että jos P 1 UP 2 K A jollakin polun π atomilla A, niin on olemassa atomi B, jossa P 2 K B ja joka on saavutettavissa atomista A polkua π pitkin. Esimerkiksi ((s 1, K 1 ), (s 2, K 1 ), (s 2, K 1 ), (s 2, K 1 ),...) ei ole tulevaisuuspolku, koska ( H)UC K 1 mutta C K 1. Huom. ((s 1, K 2 ), (s 2, K 2 ), (s 2, K 2 ), (s 2, K 2 ),...) on tulevaisuuspolku. Saadaan mahdolliset atomijoukot (s 1, K 1 ), (s 1, K 2 ), missä K 1 = {, H, C, ( H)UC,X(( H)UC), X (( H)UC)} K 2 = {, H, C, (( H)UC), X(( H)UC),X (( H)UC)} Tulevaisuuspolut antavat lauseen P toteuttavia täysiä polkuja. Lemma. M, s = EP joss graafissa G on tulevaisuuspolku π, joka alkaa atomista (s, K), jossa P K.

/ Kevät 2005 ML-10 29 LTL-taulut (III) Tulevaisuuspolkuja voidaan löytää tehokkaasti vahvasti kytkettyjen komponenttien avulla. Graafin G vahvasti kytkettyä komponenttia C sanotaan itsetoteutuvaksi joss jokaiselle atomille A C ja jokaiselle P 1 UP 2 K A on olemassa atomi B C siten, että P 2 K B. Lemma. On olemassa atomista (s, K) alkava tulevaisuuspolku joss graafissa G on polku atomista (s, K) johonkin itsetoteutuvaan vahvasti kytkettyyn komponenttiin. Esimerkki. (Jatkuu) Atomista (s 1, K 1 ) alkavaa tulevaisuuspolkua ei löydy, koska siitä ei ole polkua itsetoteutuvaan vahvasti kytkettyyn komponenttiin. Huom. {(s 2, K 1 )} ei ole itsetoteutuva. Atomista (s 1, K 2 ) alkava tulevaisuuspolku löytyy, koska siitä löytyy polku itsetoteutuvaan vahvasti kytkettyyn komponenttiin {(s 2, K 2 )}. / Kevät 2005 ML-10 31 LTL mallintarkastusalgoritmi Teoreema antaa pohjan seuraavalle LTL-mallintarkastusalgoritmille, jonka aikavaativuus on O(( S + R ) 2 O( P ) ). Kun halutaan päättää M, s = EP: 1. Muodostetaan LTL-taulu G. 2. Lasketaan sen vahvasti kytketyt komponentit. 3. Haetaan näistä itsetoteutuvat komponentit. 4. Tarkastetaan kaikille atomeille (s, K), jossa P K, löytyykö polku atomista (s, K) johonkin itsetoteutuvaan vahvasti kytkettyyn komponenttiin. 5. Jos polku löytyy, M, s = EP pätee, muutoin ei. / Kevät 2005 ML-10 30 LTL-taulut (IV) Teoreema. M, s = EP joss graafissa G on atomi (s, K), jossa P K ja löytyy polku atomista (s, K) johonkin itsetoteutuvaan vahvasti kytkettyyn komponenttiin. Esimerkki. (Jatkuu) Graafissa G ei ole atomia (s 1, K), jossa ( H)UC K ja josta löytyy polku johonkin itsetoteutuvaan vahvasti kytkettyyn komponenttiin. Näin ollen M, s 1 = E( H)UC. / Kevät 2005 ML-10 32 CTL Laskennallinen vaativuus Mallintarkastus: P-täydellinen O( M P ) LTL Mallintarkastus: PSPACE-täydellinen O( M exp( P )) CTL Mallintarkastus: PSPACE-täydellinen O( M exp( P ))