AIKALOGIIKAT TIETOKONEOHJELMIEN VERIFIOINNISSA 1 HISTORIAA Lineaarinen aikalogiikka LTL nueli 1977 Turing-palkinto 1996 Aikalogiikat verifioinnissa 1 Antti Valmari TAMEREEN TEKNILLINEN YLIOISTO Ojelmistotekniikan laitos 1. HISTORIAA 2. SOVELLUSALUE 3. LINEAARINEN AIKALOGIIKKA (LTL) 4. KÄSITTEITÄ 5. LTL MALLINTARKASTUS 6. LASKENTAUULOGIIKAT CTL JA CTL* 7. JOHTOÄÄTÖKSIÄ Laskentapuulogiikka CTL Clarke & Emerson 1981 CTL* Emerson & Halpern 1986 Mallintarkastus Büci-automaateilla Vardi & Wolper 1986 Gödel-palkinto 2000 (tosin ei ian tästä) 2 SOVELLUSALUE Aikalogiikat verifioinnissa 2 Reaktiivinen järjestelmä reactive system Jatkuvassa vuorovaikutuksessa ympäristönsä kanssa ainakin kateen suuntaan kännykkä issin ojausojelmisto tietoliikenneprotokollan läetinprosessi vaikeus: keskustelujen vuorovaikutukset Rinnakkaisjärjestelmä concurrent system Koostuu > 1 itsenäisestä, mutta keskenään vuorovaikuttavasta osasta osia kutsutaan prosesseiksi, taskeiksi tai säikeiksi tietoliikenneprotokolla kännykkä + puelinkeskus puelinkeskus issin ojausojelmisto + moottori + issikori vaikeus: suoritusjärjestysten moninaisuus, epädeterminismi 3 LINEAARINEN AIKALOGIIKKA (LTL) Aikalogiikat verifioinnissa 3 Atomiset propositiot yleensä tilainformaatiota x = 0 issi on kerroksessa 3 nappi on alaalla tietoliikennekanavassa on viesti joissakin logiikoissa tapatumainformaatiota nappi painettiin alas viesti saapui jatkossa Π = tilapropositioiden joukko Kaavan malli (tilapojainen) päättymätön jono järjestelmän tilojen Π-abstraktioita 0 1 2 (2 Π ) ω järjestelmä toteuttaa kaavan jokainen sen suorituksesta syntyvä tilajono toteuttaa kaavan tapa: lukkiutuvat suoritukset jatketaan päättymättömiksi toistamalla viimeistä tilaa kolme madollisuutta: järjestelmä toteuttaa ϕ järjestelmä toteuttaa ϕ järjestelmä ei toteuta kumpaakaan
Kielen osat Aikalogiikat verifioinnissa 4 normaalit propositionaaliset operaattorit:,,, (, tai, ) aina, encefort tai always ϕ pätee tarkasteluetkestä alkaen loputtomiin i i+1 i+2 = ϕ aina kun i N ϕ pätee ainakin kerran tarkasteluetkestä alkavassa tulevaisuudessa lopulta, eventually ϕ ϕ U ψ lopulta ψ, ja (melkein) siien asti ϕ kunnes, until ϕ U ϕ ϕ pätee seuraavassa tilassa 0 1 2 = ϕ jos ja vain jos 1 2 3 = ϕ ϕ ϕ ϕ ϕ U ψ ψ ϕ (ϕ U ψ) usein vältetään taallaan spesifikaatioissa muita tiukat operaattorit, esim. ϕ ϕ menneisyyteen viittavat operaattorit 4 KÄSITTEITÄ Aikalogiikat verifioinnissa 5 Turvallisuus (safety) kiellettyä ei tapadu ( issi liikkeellä ovi auki ) viesti läetetty ( viesti vastaanotettu ) U viesti läetetty ( viesti läetetty ( viesti vastaanotettu ) U viesti läetetty ) vastaesimerkit äärellisiä tarkemmin: jos 0 1 2 on vastaesimerkki, niin i siten, että B i+1, B i+2, : 0 1 2 i B i+1 B i+2 on vastaesimerkki Elävyys (liveness) toivottua lopulta tapatuu issi kerroksessa 3 ( tilausnappi 3 alaalla issi kerroksessa 3 ) vastaesimerkit aina äärettömiä jokainen äärellin. jono jatkettavissa lailliseksi termin käyttö orjuvaa joillekin sisältää myös turvallisuuden vaitoetoinen käsite: etenevyys (progress) Havaintoja Aikalogiikat verifioinnissa 6 on sekä turvallisuus- että eläv.ominaisuus mikään muu ominaisuus ei ole ytäaikaa molempia false on turvallisuus- mutta ei eläv.ominaisuus jos { σ (2 Π ) ω ϕ } Ø, niin kaava muotoa ϕ ilmaisee elävyysominaisuuden jos A (2 Π ) ω, niin on olemassa A T ja A E s.e. A T on turvallisuusominaisuus A E on elävyysominaisuus A T A E = A A T A E = Ø Reiluus (fairness) on tavallista, että järjestelmä toteuttaa elävyysominaisuuden vain tietyin suoritusta koskevin oletuksin protokolla välittää viestin vain jos kanava päästää lopulta viestin läpi asiakas saa lopulta palvelua vain jos vuorojen jakaja ei syrji äntä loputtomasti prosessi esittää palvelupyynnön vain jos saa suoritusaikaa yteiseltä prosessorilta on tavallista tedä järjestelmän suoritusta koskevia reiluusoletuksia Aikalogiikat verifioinnissa 7 kaava ϕ toteutuu reiluusoletuksilla γ jos ja vain jos kaava γ ϕ toteutuu yleisimmät lajit: eikko reiluus γ 1 γ 2 valmis etenemään edennyt vava reiluus γ 1 γ 2 läetetty vastaanotettu tulkintaoje ϕ ϕ toteutuu äärettömän usein ϕ ϕ on lopulta jatkuvasti voimassa ymmärtämistä elpottaa jos miettii mitä reiluusoletus kieltää reiluusoletukset ovat usein vaikeita muodostaa! Änkytys (stuttering) saman tilan toistoa: 0 0 1 2 2 2 3 änkytyksen poisto jonosta 0 1 2 = poistetaan ne i, joille i = i+1 j: i i+j kaava on tunnoton änkytykselle, joss sen totuusarvo millekään jonolle ei muutu, kun änkytys poistetaan jos ei käytetä operaattoria, niin kaava on tunnoton änkytykselle änkytyserkkyys vastaa kykyä laskea näkymättömiä sisäisiä suoritusaskelia yleensä spesifikaatioiden alutaan olevan tunnottomia änkytykselle
5 LTL MALLINTARKASTUS Kripken rakenne Aikalogiikat verifioinnissa 8 verkkomainen rakenne S (äärellinen) joukko tiloja Π (äärellinen) joukko atomisia propositioita S S tilasiirtymät siten, että s S: s S: (s,s ) I S alkutilat val: S 2 Π tutkittavan järjestelmän tila-avaruus voidaan muodostaa mekaanisesti järjestelmän formaalista kuvauksesta pyrkii kasvamaan eksponentiaalisesti prosessien määrän suteen esim. n ruokailevaa filosofia: 3 n 1 tilaa saattaa kasvaa vielä nopeammin muuttujien määrän suteen usein valtavan suuri Mallintarkastustetävä annettu lineaarisen aikalogiikan kaava ϕ Kripken rakenne (S, Π,, I, val) selvitettävä päteekö (S, Π,, I, val) = ϕ ts. päteekö val(s 0 )val(s 1 )val(s 2 ) = ϕ aina kun s 0 I ja i: (s i, s i+1 ) Aikalogiikat verifioinnissa 9 kompleksisuus SACE-täydellinen ϕ :n suteen polynomiaikainen (S, Π,, I, val) :n suteen onneksi näin päin! ϕ yleensä lyyt iso kompleksisuus ei aittaa (S, Π,, I, val) yleensä valtava pieni kompleksisuus tärkeää Büci-automaatti kuten äärellinen automaatti, mutta yväksyminen käsitetään toisella tavalla yväksyy äärettömiä jonoja jono yväksytään jos ja vain jos se voidaan lukea niin, että käydään lopputilassa lin.aikalogiikkasovelluksissa aakkostona 2 Π lyennemerkintä: kaaren varrelle kirjoitettu propositionaalinen kaava edustaa kaikkia joukkoja Π, joille ko. kaava pätee mikään deterministinen B.a. ei esitä Aikalogiikat verifioinnissa 10 lisäesimerkki: ( Q ) eli Q Q Q Q Q Q propositiokaavat voi vaitoetoisesti panna tiloiin Mallintarkastus Büci-automaatilla on todella elppo tarkastaa, onko L(Büci) Ø todiste: alkutilasta saavutettava silmukka, jossa yväksymistila samalla saadaan kieleen kuuluva sana muotoa αβ ω on elppo muodostaa Kripken rakenteen ja Büci-automaatin tulo tulokin on (melkein) Büci-automaatti L(tulo) = L(Kripke) L(Büci) ajan kulutus lineaarinen algoritmikon laskutuksella konstruktio oletetaan: molemmilla sama Π tilat pareja (s K, s B ) S K S B alkutiloiksi I {^s B } ( (s K, s B ), (s K, s B ) ) joss (s K, s K ) K ja (s B, val(s K ), s B ) B (s K, s B ) yväksyy joss s B yväksyy Aikalogiikat verifioinnissa 11 (voidaan myös sallia Büci-tiloja Kripken rakenteessa esim. reiluusoletusten esittämiseksi tulon yv.tilat monikerroskonstruktiolla ) lineaarisen aikalogiikan kaavasta voidaan mekaanisesti tedä Büci-automaatti voi olla eksponentiaalisesti kaavaa isompi algoritmeja iottu pitkälle Kripke = ϕ voidaan testata ajassa Kripke 2 O( ϕ ) (algoritmikon laskutus) seuraavasti: tedään ( ϕ):stä Büci-automaatti lasketaan tulo testataan, onko kieli Ø vertaa L(NFA 1 ) L(NFA 2 ) alpa NFA 1 :n suteen SACE-täydellinen NFA 2 :n suteen alpa, jos NFA 2 on deterministinen samankaltainen algoritmi: L( NFA 1 compl( det(nfa 2 ) ) )?= Ø omakeua: Hansen, enczek, Valmari: Stuttering- Insensitive Automata for On-te-fly Detection of Livelock roperties. FMICS 2002, 185 200 eled, Valmari, Kokkarinen: Relaxed Visibility Enances artial Order Reduction. Formal Metods in System Design, 19, 275 289, 2001
Lennosta verifiointi Aikalogiikat verifioinnissa 12 tuloautomaatin muodostaminen voidaan ydistää Kripken rakenteen muodostamiseen osaprosesseista vireen ilmaiseva silmukka voidaan tunnistaa muodostamisen aikana CVWY-algoritmi 1991 pelaa yteen jopa Holzmannin likimääräisen tila-avaruuden muodostuksen kanssa kolme merkittävää teokkuusetua: vire saattaa löytyä jo kun vasta pieni osa Kripken rakenteesta on muodostettu epäkiinnostavat osat Kripken rakenteesta jäävät muodostamatta, esim. edistynyt algoritmi voi tutkia ensin ne osat, joissa vire todennäköisimmin on Lineaarisen aikalogiikan rajoituksia joka toinen päivä sataa ei sataa ole ilmaistavissa LTL:llä vaikka on Büci-automaateilla on fifo ei ole ilmaistavissa edes Büci-automaateilla täytyisi muistaa rajattomasti sisältöä joskus sallitaan muuttujien lisääminen lineaarisen aikalogiikan formalismiin Aikalogiikat verifioinnissa 13 6 LASKENTAUULOGIIKAT CTL JA CTL* CTL* kaavan malli on päättymättömien polkujen muodostama puu voidaan puua vaitoetoisista tulevaisuuksista (jopa kesken kaavan tulkinnan) aarautuva aika LTL + lisäoperaattoreita A: jokaisella polulla E: on olemassa polku LTL-operaattorit tapana merkitä toisin G: F: U: U X: esimerkki: EF(kaviossa EFkavia EFteetä ) juoman valinta tapatuu vasta kaviossa k t k ei ilmaistavissa LTL-kaavana t Aikalogiikat verifioinnissa 14 esimerkki: AGEF perustila kävi miten kävi, perustilaan voi aina palata sietää polkuja, joissa ei ole perustilaa ei ole ilmaistavissa LTL:lla p LTL-kaava ϕ vastaa CTL*-kaavaa Aϕ yllätys: mallintarkastus ei ole vaativampaa kuin LTL:llä! CTL CTL* + rajoitus: operaattorit esiintyvät vain pareina AG, AF, AU, AX, EG, EF, EU tai EX istoriallisesti CTL oli ennen CTL*:ä teokas mallintarkastusalgoritmi keksittiin varain edetään kaavassa sisältä ulos merkataan jokaisesta Kripken rakenteen tilasta, täyttääkö vuorossa olevan osakaavan EX ϕ jokin välitön seuraajatila merkattu ϕ:llä A(ϕ U ψ) tila merkattu ψ:llä, tai merkattu ϕ:llä ja jokainen välitön seuraaja jo merkattu A(ϕ U ψ):llä Aikalogiikat verifioinnissa 15 vertailun vuoksi CTL-tyydytettävyys on EXTIME-täydellinen LTL-tyydytettävyys on SACE-täydellinen CTL ei pysty ilmaisemaan tyypillisiä reiluusoletuksia, mutta ne voi ottaa alvalla uomioon mallintarkastusalgoritmissa reiluusoletuksia ei tarvita, jos elävyysominaisuuksien tilalla käytetään läes saman asian ajavia kaavoja muotoa AG ( läetetty EF vastaanotettu ) ϕ Haarautuvan ja lineaarisen ajan vertailua jos ominaisuus ei päde, lineaarinen aika antaa elpommin tulkittavat vastaesimerkit muotoa alkuosa silmukka ω CTL:n mallintarkastus on teokasta kaavan pituuden suteen, mutta kaavat ovat yleensä yvin lyyitä, ja lineaarinen aika näyttää sallivan teokkaampia keinoja pienentää tila-avaruutta sen muodostamisen aikana valitettavasti pienentämiskeinojen käsittely olisi kokonaisen kurssin aie änkytysriippumattomuus on niille tärkeää (tällä alueella omakeussa löytyy) toisaalta AG(pyyntö EFpalvelu) on elpompi kuin (py pa) + reiluusoletukset
7 JOHTOÄÄTÖKSIÄ Aikalogiikat verifioinnissa 16 Aikalogiikkoja on käytetty menestyksellisesti verifioinnissa arvostettuja palkintoja edistyneitä tekniikoita: BDD, i.p. joukot, työkaluja ACM Software System Award 2001: Holzmannin SIN teollisuussovelluksia, varsinkin mikropiirialalla Alalla on upeasti yödynnetty perustutkimuksen tuloksia Myös soveltavampi tutkimus käyttää teoreettista otetta ja kalustoa esimerkki: edistyneet LTL-kaavan Büciautomaatiksi kääntävät algoritmit esimerkki: Kripken mallin pienentäminen muodostamisen aikana tarvitaan sekä teoria- että algoritmiosaamista ja vielä näppituntumaa mikä toimii käytännössä vaikeaa liiankin? Aikalogiikat verifioinnissa 17 Läisukuinen ala: prosessialgebrallinen verifiointi verifiointi perustuu vertaamiseen malliprosessiin jonkin toteuttaa -esijärjestyksen mukaan tai jopa automaattisesti tuotettujen visuaalisten käyttäytymisen tiivistelmien katseluun elpompaa perusinsinöörille kuin kaavojen kirjoittelu paljon samankaltaisia tuloksia kuin aikalogiikassa CTL(*) X ~ muunnettu aarautuva bisimilaarisuus (De Nicola, Vaandrager 1995) LTL X ~ NDFD (Kaivola, Valmari 1992) laaja oma teoriarakennelma Mutta kaikki verifiointi näyttää olevan perusinsinöörille liian vaikeaa teollisuus aluton panostamaan luotettavuuteen ei tällä suureen suosioon tai suuriin raoiin pääse kiinni, Suomessa ainakaan