Temporális logikák és modell ellenırzés



Hasonló dokumentumok
Részletes szoftver tervek ellenőrzése

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Alapszintű formalizmusok

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Formális verifikáció Modellezés és modellellenőrzés

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Követelmények formalizálása: Temporális logikák

Alapszintű formalizmusok

Formális modellezés és verifikáció

Alapszintű formalizmusok

Kiterjesztések sek szemantikája

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Formális módszerek. A formális modellezés és a formális verifikáció alapjai. dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék

Sztochasztikus temporális logikák

Időzített átmeneti rendszerek

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Automaták mint elfogadók (akceptorok)

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Véges automaták, reguláris nyelvek

Részletes tervek ellenőrzése

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

Matematikai logika és halmazelmélet

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A digitális számítás elmélete

Jelek és rendszerek 1. 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Szekvenciális hálózatok és automaták

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Automatikus tesztgenerálás modell ellenőrző segítségével

Temporális adatbázisok. Kunok Balázs szakdolgozata alapján

Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)

Logikai ágensek. Mesterséges intelligencia március 21.

Algoritmizálás, adatmodellezés tanítása 1. előadás

Elsőrendű logika. Mesterséges intelligencia március 28.

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

SÚLYOS BALESETEK ELEMZÉSE. 3. téma: Kvalitatív módszerek - Hibafa

Modell alapú tesztelés mobil környezetben

folyamatrendszerek modellezése

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

2. Logika gyakorlat Függvények és a teljes indukció

Matematika szigorlat, Mérnök informatikus szak I máj. 12. Név: Nept. kód: Idő: 1. f. 2. f. 3. f. 4. f. 5. f. 6. f. Össz.: Oszt.

Termelő-fogyaszt. fogyasztó modell

Dr. Mileff Péter

Szoftverminőségbiztosítás

Programok értelmezése

2014. november 5-7. Dr. Vincze Szilvia

Temporális logikai specifikációk vizsgálata

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Szkriptnyelvek. 1. UNIX shell

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Bevezetés a számításelméletbe (MS1 BS)

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Java II. I A Java programozási nyelv alapelemei

6. Közös változóval rendelkező párhuzamos program, Közös változó,

5. A kiterjesztési elv, nyelvi változók

Osztott rendszer. Osztott rendszer informális definíciója

Szoftverminőségbiztosítás

ELEMI PROGRAMOZÁSI TÉTELEK

Szoftver-modellellenőrzés absztrakciós módszerekkel

Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)

AWK programozás, minták, vezérlési szerkezetek

Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Múlt és jövő: Új algoritmusok lineáris temporális tulajdonságok szaturáció-alapú modellellenőrzésére

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Időt kezelő modellek és temporális logikák

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

Algoritmusok Tervezése. Fuzzy rendszerek Dr. Bécsi Tamás

SZÁMÍTÁSTUDOMÁNY ALAPJAI

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Bevezetés az informatikába

Automaták és formális nyelvek

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Formális nyelvek és automaták

előadás Diszkrét idejű tömegkiszolgálási modellek Poisson-folyamat Folytonos idejű Markov-láncok Folytonos idejű sorbanállás

Dinamikus modell: állapotdiagram, szekvencia diagram

1. tétel. Valószínűségszámítás vizsga Frissült: január 19. Valószínűségi mező, véletlen tömegjelenség.

Algoritmuselmélet 12. előadás

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A matematika nyelvér l bevezetés

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

5. Hét Sorrendi hálózatok

Programfejlesztési Modellek

Diszkrét matematika 2.C szakirány

Átírás:

Temporális logikák és modell ellenırzés

Temporális logikák Modális logika: kijelentések különböző módjainak tanulmányozására vezették be (eredetileg filozófusok). Ilyen módok: esetleg, mindig, szükségszerűen, valamikor biztosan Temporális logikák: a modális logikák egy formális rendszerét képezik arra, hogy kijelentések igazságának időbeli (sorrendiségi) változását vizsgálhassuk. Erre a célra temporális operátorok állnak rendelkezésünkre (pl. mindig P akkor igaz, ha a P kijelentés minden jövőbeli pillanatban igaz, valamikor Q akkor igaz, ha van olyan jövőbeli pillanat, amikor Q igaz. Az időbeliség logikai időre, az időpillanatok sorrendiségére vonatkozik (a valós idő múlását az operátorok nem kezelik)

Temporális logikák Elsősorban folyamatosan működő rendszerek (pl. operációs rendszerek, beágyazott rendszerek stb.) tulajdonságainak leírására használjuk. Ezekben a rendszerekben a bemenetek és kimenetek kapcsolata nem adható meg transzformációként, a helyesség nem fogalmazható meg a kezdeti és végállapotokra vonatkozó elő- és utófeltételek formájában (pl. nem értelmezhető a végállapot) A tulajdonságok egy része lokális, tehát egy-egy aktuális időpillanathoz köthető, más részük elérhetőségi, azaz a működés során jövőbeli időpillanatokra vonatkozik. Utóbbiakat a biztonság illetve élőség kategóriákba soroljuk. Biztonsági tulajdonságok: veszélyes, nemkívánatos helyzetek elkerülését fogalmazzák meg, univerzális kvantorokat alkalmaznak az időpillanatokra ( minden pillanatban igaz, hogy a rendszer biztonságos állapotban van ). Induktív módszerekkel bizonyíthatóak. Pl. egy többprocesszes rendszer esetében ilyenek: holtpontmentesség (minden időpillanatban van egy futásra kész processz), kölcsönös kizárás (soha nincs két processz egyszerre kritikus szakaszban), adatbiztonság (soha nincs jogosulatlan hozzáférés)

Temporális logikák Az élő jellegű tulajdonságok bizonyos kívánatos helyzetek elérését írják elő (pl. kérésre válasz érkezik, eredmény előáll stb.). Ezeket az időpillanatokon alkalmazott egzisztenciális kvantorokkal lehet megfogalmazni. Nehézség, hogy induktív módon nem levezethetőek. Általában azt kell megmutatni, hogy a rendszer mindig közelebb kerül a kívánatos helyzethez. Például: Elküldött üzenet megérkezik (ha egy üzenetküldés történt, akkor valamikor bekövetkezik az az időpillanat, amikor az üzenet megérkezik) Kérés kiszolgálása megtörténik Nincs kiéheztetés (minden processz előbb-utóbb futhat, létezik olyan jövőbeli időpillanat amikor a processz futó állapotba kerül) Terminálás: a program előbb-utóbb eléri végállapotát Egyes tulajdonságok (pl. egy adott helyzet végtelenül sokszor fennáll) nem sorolhatóak ezekbe a kategóriákba

Temporális logikák osztályozása Kijelentés- illetve elsőrendű logikák: a temporális kijelentéslogikák a temporális operátok mellett a klasszikus kijelentéslogika eszköztárát használják, hasonlóan az elsőrendű temporális logikák a temporális operátorok mellett alkalmazzák az elsőrendű logikák eszköztárát Pont- illetve intervallumlogikák: a pont logikák jellemzője, hogy a temporális operátorokat egy-egy időpillanatban értékeljük ki, míg az intervallumlogikák esetében időintervallumokra definiáljuk és értékeljük ki őket Diszkrét- illetve folytonos idejű logikák: a legtöbb esetben (pl. programok vagy állapotgépek vizsgálata) elégséges az idő diszkrét kezelése (egymás utáni időpillanatokat feleltetünk meg a természetes számok sorozatának), de hibrid (pl. analóg elemeket is tartalmazó) valósidejű rendszerek esetében szükséges lehet a folytonos idő kezelése)

Temporális logikák osztályozása Lineáris- illetve elágazó idejű logikák: az első esetben az egymás utáni időpillanatokat mint lineáris rendszert kezeljük: minden időpillanatnak csak egy-egy rákövetkező időpillanata értelmezett (egyféle jövőt veszünk figyelembe). A második esetben az egymás utáni időpillanatok egy elágazó fastruktúrát alkotnak, minden pillanatnak több rákövetkezője értelmezett (többféle lehetséges jövő) Lineáris idejű temporális logika (LTL Linear Time Temporal Logic): az időpillanatok egy idővonal mentén követik egymást, erre az idővonalra vonatkoztatjuk a temporális operátorokat Elágazó idejű temporális logikák (BTL Branching Time Temporal Logic): az időpillanatok fa struktúrában elágazó idővonalak mentén követik egymást, az operátok az elágazásokra is vonatkoznak, nemcsak a vonalakra (pl. kifejezhető: valami minden elágazásra igaz, valami legalább egy idővonalra igaz) Múlt illetve jövő kezelése: általában a jövőre vonatkoznak, de néhány tulajdonság leírásának megkönnyítése érdekében a múltra is vonatkozhatnak

Esetünkben a temporális logikák által leírt tulajdonságokat (pl. az útkereszteződésben a lámpa valamikor zöld lesz ) diszkrét állapotokkal és akciókkal (műveletekkel) rendelkező rendszereken (pl. számítógépes programok, állapotgépek pl. a közlekedési lámpa vezérlője) szeretnénk ellenőrizni A jelen időpillanat az aktuális állapotot vagy akciót, a jövő időpillanatok pedig rákövetkező állapotokat vagy akciókat jelölnek, tehát az egymás utáni időpillanatok az állapotok vagy akciók egymásutániságának (szekvenciájának) felelnek meg. A temporális logikák modelljeiként matematikailag jól kezelhető struktúrákat és formalizmusokat alkalmazunk, és módszereket amelyek lehetővé teszik a temporális logikai kijelentések igazságának ellenőrzését. A modellek általában származtathatóak a tervezéshez közelebb álló félformális modellekből (állapottérképek, adatfolyam gráfok)

Kripke struktúrák: Legyen AP atomi kijelentések véges halmaza (az alkalmazásban tovább nem bontható kijelentések, pl. a lámpa piros, x>25, a processz kritikus szakaszban van stb. A kijelentéseket P, Q, nagybetűkkel jelöljük Egy adott AP mellett a Kripke-struktúra a következő hármas: M=(S, R, L), ahol S az állapotok véges halmaza R S S állapotátmeneti reláció L:S 2 AP az állapotok címkézése atomi kijelentésekkel. Egy állapotot több kijelentés is címkézhet. Minden s állapotra true L(s) és false L(s) Kripke struktúrát alkalmazunk, ha rendszerünk működését legjobban állapotok segítségével tudjuk leírni, az állapotokat lokálisan az adott állapotra igaz kijelentésekkel tudjuk jellemezni. A temporális logika segítségével leírt tulajdonságokat az egyes állapotokra érvényes lokális kijelentések alapján értékeljük ki.

Kripke struktúrák példa: Jelzőlámpa: AP = {zöld, sárga, piros, villogó sárga} {z öld } {sárga} {piros} {piros, sárga} s1 s2 s3 s4 s5 {villogó_sárga}

Cimkézett állapotátmeneti (tranzíciós) rendszerek (LTS Labeled Transition systems): Az állapotátmenetekhez akciókat rendelünk, melyek tovább nem bonthatóak, és általában egy-egy alkalmazás-specifikus műveletet (üzenetet, a környezettel való kölcsönhatást) jelentenek, kisbetűkkel jelöljük őket (a,b,c) Egy LTS a T=(S, Act, ) hármas, ahol: S az állapotok véges halmaza Act=(a,b,c, ) az akciók véges halmaza S Act S címkézet állapot-átmeneti reláció. Egy állapotátmenetet egy akció címkézhet LTS modelleket használunk, ha rendszerünket leginkább az állapotátmenetek során bekövetkezett akciók sorozatával tudjuk leírni (az egyes állapotokat kevésbé tudjuk lokálisan jellemezni). Pl. kommunikációs (üzenetet küldő/fogadó) rendszerek. A temporális logikák segítségével leírt tulajdonságok igazságát a lehetséges akciósorozatok alapján értékeljük ki

LTS példa: Italautomata: pénz tea kávé

Kripke állapot-átmeneti rendszerek (KTS - Kripke Transition Systems): Az állapotokat kijelentésekkel, az átmeneteket akciókkal címkézzük. Adott AP és Act mellett tehát a KTS a K=(S,,L) hármas. KTL modelleket használunk programok esetén az utasítások (akciók) és változók (állapotokhoz rendelt kijelentések) egyidejű megadására. Példa: z:=0; i:=0; while (i!=y) do z:=z+x; i:=i+1; end z:=z+x i:=i+1 [i!=y] {true} z:=0 i:=0 {i!=y, z=i*x} {z=i*x} [i=y] {z=y*x}

Automaták véges szavakon: Véges hosszúságú szavakon értelmezhetjük az A=(Σ, S, S 0, ρ, F) automatát, ahol: Σ - az ábécé (a betűk nem üres halmaza) S az állapotok véges, nem üres halmaza S 0 S a kezdőállapotok halmaza ρ: S Σ 2 S az állapot-átmeneti reláció (egy beérkező betű hatására új állapotba lép az automata) F az elfogadó állapotok halmaza Egy ω = (a 0,,a n-1 ) szót elfogad az automata, ha létezik rá elfogadó futás. Az automata által elfogadott nyelv: L(A)={ω Σ ω elfogadott} Ilyen automatákat használhatunk pl. véges hosszúságú bemenetek feldolgozásának leírására. A temporális logika segítségével leírt tulajdonságokat az elfogadott nyelv alapján értékeljük ki.

Büchi automaták: Végtelen hosszúságú szavakon értelmezzük, így módosítanunk kell az elfogadás kritériumát, mivel nincsen végállapot Az A automata futása egy beérkező a 0,a 1 végtelen betűsorozat (szó) hatására az r=(s 0,s 1, ) állapotsorozat, ahol s 0 S 0 és 0 i re s i+1 =ρ(s i,a i ). A végtelen futás jellemzője azon s S állapotok halmaza, amelyeket a futás végtelenül sokszor érint: lim(r) = {s s=s i végtelenül sokszor} Egy futást elfogadónak nevezünk, ha lim(r) F. Egy ω végtelenül hosszú szót elfogad az automata, ha létezik rá elfogadó futás. A Büchi automata által elfogadott nyelv: L(A)={ω Σ ω elfogadott} A temporális logika által leírt tulajdonságokat az elfogadott nyelv alapján értékeljük ki.