T-79.146 Kevät 2003 Logiikka tietotekniikassa: erityiskysymyksiä I Laskuharjoitus 11 Ratkaisut 1. M : a P P f Q, R Q e P a) M, a = A(P UQ), sillä (esim.) (a,,,,,...) on tilasta a alkava täysi polku, joka ei kulje sellaisen tilan s S kautta, jolle pätisi M, s = Q. ) Mallin F -reiluja polkuja ovat kaikki ne täyet polut, jotka kaikille lauseille ϕ F sisältävät äärettömän monta tilaa s S siten, että M, s = ϕ. Koska F = {R}, rajoitutaan siis tarkastelemaan sellaisia polkuja, jotka sisältävät äärettömän monta tilaa s S, joille M, s = R. Koska {s S M, s = R} = {f}, seuraa, että kaikkien mallin F -reilujen polkujen tulee kulkea äärettömän monta kertaa tilan f kautta. Koska tiloista ja ei ole yhteyttä tilaan f, mikään F -reilu polku ei voi kulkea näien tilojen kautta. Siten mallin jokainen F - reilu polku on muotoa (a,, e,..., e, f, a,, e,..., e, f, a,, e,..., e, f,...) }{{}}{{}}{{} n 1 kpl n 2 kpl n 3 kpl missä n 1, n 2, n 3,... ovat (äärellisiä) positiivisia kokonaislukuja. Koska erityisesti n 1 on äärellinen ja M, a = P, M, = P, M, e = P sekä M, f = Q, seuraa, että M, a = F A(P UQ) pätee. ) M, a = EGP, sillä (a,, e, e, e,...), on tilasta a alkava täysi polku, jonka jokaisessa tilassa s {a,, e} pätee M, s = P. ) Huomataan, että -kohan polku on mallin ainoa tilasta a alkava täysi polku, jonka kaikissa tiloissa lause P pätee. Tämä polku ei kuitenkaan ole F -reilu, sillä se ei kulje kertaakaan tilan f kautta. Siten M, a = F EGP. 1
2. M : P Q a Q P, Q e Järjestetään lauseen AXE ( (P Q)U(P Q) ) alilauseet järjestykseen, jonka avulla alilauseien totuusarvo mallin eri tiloissa voiaan määrittää vaiheittain aiemmin käsiteltyjen alilauseien totuusarvojen perusteella, kunnes saaaan lopulta selville koko lauseen totuusarvo mallin eri tiloissa. Alilauseet voiaan käsitellä esimerkiksi järjestyksessä P, Q, P Q, P Q, E ( (P Q)U(P Q) ), AXE ( (P Q)U(P Q) ). Lauseien P ja Q totuusarvot saaaan suoraan valuaatiosta v. Lasketaan alilauseen P Q totuusarvot mallin eri tiloissa: P Q, P Q a Q, P Q P, Q, P Q e P Q Alilause P Q: P Q, P Q a Q, P Q P, Q, P Q, P Q e P Q Lasketaan alilauseen E ( (P Q)U(P Q) ) totuusarvot luentokalvoissa esitetyn ChekEU-algoritmin avulla. Aloitetaan siis tilajoukosta, jossa alilause P Q on tosi ({}) ja merkitään E ( (P Q)U(P Q) ) toeksi tilassa. Kerätään tämän jälkeen kaikki ne tilat s S, joille s, R ja M, s = P Q (ja joihin lause E ( (P Q)U(P Q) ) 2
ei ole vielä merkitty toeksi). Saaaan {, e}, jonka kaikkiin tiloihin merkitään lause E ( (P Q)U(P Q) ) toeksi. Toistetaan nyt menettely tilajoukon tilojen ja e eeltäjille ja eelleen niien eeltäjille niin kauan, kunnes tulosjoukko ei enää kasva. Koko algoritmin suoritus voiaan siis esittää seuraavasti: 1 {} {} {, e} 2 {,, e} {, e} {} 3 {,,, e} {} Alilause E ( (P Q)U(P Q) ) pätee siis tiloissa a E ( (P Q)U(P Q) ) E ( (P Q)U(P Q) ) E ( (P Q)U(P Q) ) e E ( (P Q)U(P Q) ) Lasketaan viimein lauseen AXE ( (P Q)U(P Q) ) totuusarvot keräämällä kaikki ne mallin tilat, joien kaikille R-relaation seuraajatiloille pätee E ( (P Q)U(P Q) ). Lopputulos on siten AXE ( (P Q)U(P Q) ) a AXE ( (P Q)U(P Q) ) AXE ( (P Q)U(P Q) ) e AXE ( (P Q)U(P Q) ) 3
3. M : Q a P P, Q Esitetään lause ensin EU- ja EG-operaattoreien avulla: AG ( Q A(EFP UAFP ) ) AG ( Q A(E( UP )U EG P ) ) AG ( Q E ( ( EG P )U( E( UP ) EG P ) ) EG EG P ) AG ( Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P ) EF ( Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P ) E ( U ( Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P )) Järjestetään alilauseet sopivaan laskentajärjestykseen, esim. P, Q, P, EG P, EGEG P, EGEG P, E( UP ), E( UP ), E( UP ) EG P, E ( (EG P )U( E( UP ) EG P ) ), E ( (EG P )U( E( UP ) EG P ) ), E ( (EG P )U( E( UP ) EG P ) ) EGEG P, Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P, ( Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P ), E ( U ( Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P )), E ( U ( Q E ( (EG P )U( E( UP ) EG P ) ) EGEG P )) Koska P pätee tiloissa a ja, niin P pätee tiloissa {,, e}. Nyt lauseen EG P totuusarvo voiaan laskea luentokalvoilla esitetyn ChekEG-algoritmin avulla. Muoostetaan siis ensin mallin M rajoittuma M niihin tiloihin, joissa P pätee: e P, Q P e P Etsitään seuraavaksi mallin M ei-triviaalit vahvasti kytketyt komponentit 1 ja merkitään lause EG P toeksi kaikissa näihin komponentteihin kuuluvissa tiloissa. Kerätään sitten (samalla tavoin kuin 1 Yleisesti: Mallin M = S, R, v tilojen ei-tyhjä osajoukko C S on M:n eitriviaali vahvasti kytketty komponentti, jos mitkä tahansa kaksi tilaa x, y C ovat M:ssä saavutettavissa toisistaan joitakin vähintään yhen R:n kaaren sisältäviä polkuja pitkin, eikä ole olemassa tiloja z C, w S \ C siten, että z ja w olisivat saavutettavissa M:ssä toisistaan tällaisia polkuja pitkin. 4
ChekEU-algoritmissa) vaiheittain kaikki ne tilat, jotka ovat jonkin näihin komponentteihin kuuluvan tilan eeltäjiä mallissa M, merkitään lause toeksi myös näissä tiloissa ja toistetaan tarkastelu kaikille näille tiloille niin kauan, kunnes ei enää saaa uusia tiloja, joissa lause ei jo olisi tosi. Ainoa M :n ei-triviaali vahvasti kytketty komponentti on {, }. Koska tila e ei ole kummankaan tilan eeltäjä M :ssa, ChekEG-algoritmi pysähtyy heti ensimmäisen kierroksen jälkeen: On siis saatu tulos 1 {, } {, } a P, Q P, Q, EG P P, Q P, Q, EG P e P, Q Lasketaan seuraavaksi lauseen EGEG P totuusarvot käyttämällä uuelleen ChekEG-algoritmia. Muoostetaan siis mallin M rajoittuma M niihin tiloihin, joissa EG P pätee: P, Q, EG P P, Q, EG P Ainoa mallin M ei-triviaali vahvasti kytketty komponentti on {, }. ChekEG-algoritmi pysähtyy jälleen ensimmäisen kierroksen jälkeen: 1 {, } {, } Lause EGEG P pätee siis tiloissa ja, jolloin sen negaatio pätee tiloissa 5
a P, Q, EGEG P P, Q, EG P P, Q, EGEG P P, Q, EG P e P, Q, EGEG P Alilauseen E( UP ) totuusarvo voiaan laskea ChekEU-algoritmin avulla: 1 {a, } {a, } {e} 2 {a,, e} {e} {} 3 {a,,, e} {} {} 4 {a,,,, e} {} Lause E( UP ) pätee kaikissa mallin M tiloissa, joten lauseen negaatio E( UP ) ei päe missään mallin tilassa. Tästä seuraa, ettei myöskään konjunktio E( UP ) EG P toteuu missään mallin tilassa. Sovelletaan sitten uuelleen ChekEU-algoritmia lauseeseen E ( (EG P )U( E( UP ) EG P ) ). Algoritmi päättyy heti, sillä eellisen perusteella jo algoritmin lähtö on tyhjä. 1 Lause E ( (EG P )U( E( UP ) EG P ) ) pätee nyt mallin kaikissa tiloissa. Koska aiemmin toettiin, että lause EGEG P toteutuu tilajoukossa {a,, e}, saaaan konjunktiolle tulos ϕ = E ( (EG P )U( E( UP ) EG P ) ) EGEG P Q a ϕ Q, ϕ e ϕ 6
(Yllä ssa kuviossa on tiloihin merkitty enää vain ne alilauseet, joien totuusarvoja tarvitaan vielä jäljellä olevien alilauseien totuusarvojen laskemiseksi.) Alilause Q ϕ: a ϕ, Q ϕ Q Q, ϕ, Q ϕ Q ϕ e ϕ, Q ϕ Alilause (Q ϕ): a (Q ϕ) e Lasketaan lauseen E ( U (Q ϕ) ) totuusarvot ChekEU-algoritmilla: 1 {} {} {a, } 2 {a,, } {a, } a E ( U (Q ϕ) ) E ( U (Q ϕ) ) E ( U (Q ϕ) ) e Lopputulokseksi saaaan viimein 7
a E ( U (Q ϕ) ) e E ( U (Q ϕ) ) 8