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

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

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

Alapszintű formalizmusok

Részletes szoftver tervek ellenőrzése

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 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:

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

Térinformatikai algoritmusok Elemi algoritmusok

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

Térinformatikai algoritmusok Elemi algoritmusok

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

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

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

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadá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

Kiterjesztések sek szemantikája

Formális nyelvek - 9.

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

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Szoftverminőségbiztosítás

Programozási Módszertan definíciók, stb.

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

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Szoftverminőségbiztosítás

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

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

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

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

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

Véges automaták, reguláris nyelvek

Automaták mint elfogadók (akceptorok)

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

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

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

Informatika 1 2. el adás: Absztrakt számítógépek

Programozási módszertan

Nagy Gábor compalg.inf.elte.hu/ nagy

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.

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

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

... 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.

Algoritmuselmélet 12. előadás

Modellek ellenőrzése és tesztelése

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

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

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

Formális módszerek GM_IN003_1 Bevezetés

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

folyamatrendszerek modellezése

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

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Időzített átmeneti rendszerek

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

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Számításelmélet. Második előadás

Dinamikus modellek szerkezete, SDG modellek

ZH feladatok megoldásai

Programok értelmezése

ködös határ (félreértés, hiba)

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

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

Deníciók és tételek a beugró vizsgára

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

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

Bevezetés az informatikába

Matematika alapjai; Feladatok

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

Alapszintű formalizmusok

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

Alapszintű formalizmusok

2. Alapfogalmak, műveletek

Komputeralgebra Rendszerek

2014. szeptember 24. és 26. Dr. Vincze Szilvia

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

Programozási nyelvek 6. előadás

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

Programozási nyelvek (ADA)

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Részletes tervek ellenőrzése

Programozási nyelvek (ADA)

Dicsőségtabló Beadós programozási feladatok

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

BASH script programozás II. Vezérlési szerkezetek

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

A modell-ellenőrzés gyakorlata UPPAAL


Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Valószínűségi változók. Várható érték és szórás

Hardver leíró nyelvek (HDL)

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Államvizsga kérdések a matematikus szakon, 2001.

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

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

A félév során előkerülő témakörök

9. előadás Veremautomaták 1.

Szaturáció alapú modellellenőrzés lineáris idejű tulajdonságokhoz

Logikai hálózatok. Dr. Bede Zsuzsanna St. I. em. 104.

HALMAZELMÉLET feladatsor 1.

Átírás:

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott gyakorlat program formális specifikálása: temporális bizonyítás: a helyes m!ködés tétel (adott deduktív rendszer mellett) bizonyítás géppel ellen"rizhet"

Véges állapotú programok Program változóinak értékkészlete véges domén Az állapotot véges információmennyiség írja le leírható elemi propozíciókkal véges propozícionális Kripke struktúra Számítások A számítások alapvet"en végtelen állapot szekvenciák az elemi propozíciók igazságértékeinek A temporális logikák tekinthet"k véges állapotú elfogadóknak (gépeknek) megfelel" végtelen szavak egy ABC felett azaz konstruálható olyan véges állapotú automata, mely pontosan az adott propozícionális temporális logikai kifejezéseket fogadja el

Modell ellen"rzés Véges állapotú program (P), mint végtelen kifejezések véges generátora Program specifikáció (#), mint véges állapotú elfogadó P " # üres, azaz nem fogad el kifejezést Temporális logikák Propozíciós ill. els"rend! logikák Pont ill. intervallum logikák Diszkrét ill. folytonos idej! logikák Lineáris és elágazó idej! logikák Múlt és jöv" kezelése

Propozíciós temporális logika Wff-ok elemi propozíciókból (boole operátorokra zártak) Jöv" kezelés Unáris temporális kapcsolat X (next) Bináris temporális kapcsolat U (until) " :# $ 2 Prop i % # Propozíciós temporális logika Múlt kezelés Unáris temporális kapcsolat Y (previous) Bináris temporális kapcsolat S (since) p Xp p p q puq p Yp q p p psq

Kripke struktúrák KS=(S,R,L) S: állapotok véges halmaza R: állapot átmeneti relációk L: S$2 Prop állapotok címkézése elemi propozíciókkal KS teljes, ha "s # S : $t # S (s,t) # R Címkézett állapotátmeneti rendszerek LTS=(S,Act,$) S: állapotok halmaza (véges, vagy megszámlálhatóan végtelen) Act: akciók halmaza $!S x Act x S: címkézett állapotátmeneti reláció ( s,",s' ) #$ helyett s " % $ s' jelölés

Kripke állapotátmenet rendszerek KTS=(S,$,L) adott Prop és Act mellett Jól használható programok m!ködésének leírására utasítások (akciók) és változók (állapot) megadása Automaták (%,Q,&,q0,F) %: véges ABC (szimbólum halmaz) Q: állapotok véges halmaza &: tranzíció függvény Qx%$Q q 0"Q: kezd" állapot F!Q: elfogadási állapotok halmaza

Automaták (folyt.) Automata futása a 1a2..an"%* inputra: q0,q1,..qn szekvencia úgy, hogy qi=&(qi-1,ai) Szó elfogadása q n"f Felismert nyelv L!%* az összes felismert szó halmaza Input véges végtelen Temporális logika és automaták Elfogadó automata PTL-hoz Büchi automata A=(%,S,',S0,F)

Büchi automata Egy futás akkor elfogadó egy végtelen szóra, ha vannak olyan F-beli állapotok, melyek végtelenszer ismétl"dnek (-automaták w"%( végtelen szekvenciák! (!% ( (-nyelv Büchi automata (pl.) %={a,b},s={q0,q1,q2},s0={q0},f={q2} a,b b start a q 0 q 1 q 2 a (a+b) * (ab) (

PTL és Büchi automata Tétel: Adott # PTL kifejezéshez konstruálható A# Büchi automata, ahol %=2 Prop és S )2 O( # ), hogy L(A#) pontosan a #-t kielégít" számítások halmaza. PTL és Büchi automata (pl.) Prop={r,s} %:=2Prop ={#,{r},{s},{r,s}} Automata, ami r-t kielégit" futásokat fogad el: {r},{r,s} start!

Ürességi probléma Az adott automata egyáltalán elfogad-e valamilyen szavakat az ürességi probléma lineáris id"ben és nem determinisztikus logaritmikus térben megoldható Modell ellen"rzés Véges állapotú program P=(W,s0,R,V) W: véges állapot halmaz s 0"W :kezd" állapot R!W2 :elérhet"ségi reláció V:W$2 Prop propozíciók igazság értékei az egyes állapotokban

Modell ellen"rzés (folyt.) u: végtelen szekvencia u0,u1... u0=s0 és uirui+1 i*0 V(u0),V(u1)... P egy számítása P kielégít egy # PTL kifejezést, ha P minden számítása kielégíti #-t Modell ellen"rzés (folyt.) Véges állapotú program, mint Büchi automata Ap=(%,W,s0, ',W) %=2 Prop s "'(s,a) iff (s,s )"R és a=v(s) a teljes állapottér elfogadási állapot

Modell ellen"rzés (folyt.) Véges állapotú program P PTL kifejezés! Büchi automata A P Büchi automata A! Szorzat automata A P xa! Igen Üresség vizsgálat Nem Komplementer automata Teljesen definiált, determinisztikus esetben elfogadó és nem elfogadó állapotok felcserélése pl.: {Q} {Q},{P,Q} {Q} {Q},{P,Q} A! A {P,Q}! {P,Q} > 1 2 > 1 2 {},{P} 3 {},{P} {},{P} 3 {},{P} {},{P},{Q},{P,Q} {},{P},{Q},{P,Q}

Szorzat automata konstruálása B1= (%,S1,'1,S01,F1) B2= (%,S2,'2,S02,F2) B 1+2=(%,S1,S2,{1,2},',S01,S02,{1},{(s1,s2,1) s1"f1}) ': {((s 1,s2,1),a,(s 1,s 2,i)) if s1"f1 then i=2 else 1}$ {((s 1,s2,2),a,(s 1,s 2,i)) if s2"f2 then i=1 else 2} (s 1,a,s 1)"'1 and (s2,a,s 2)"'2 Szorzat automata (pl.)