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