Weryfikcj modelow jest nlizą sttyczną logiki modlnej Mrcin Sulikowski MIMUW 15 grudni 010
1 Wstęp Weryfikcj systemów etykietownych 3 Flow Logic 4 Weryfikcj modelow nliz sttyczn
Co jest czym czego? Weryfikcj modelow jest nlizą sttyczną logiki modlnej
y := x; z := 1; while y > 0 do if y % = 1 then z := z + 1; fi; z := z * y; y := y - 1; od; y := 0; Weryfikcj modelow
Anliz sttyczn y := x; z := 1; while y > 0 do if y % = 1 then z := z + 1; fi; z := z * y; y := y - 1; od; y := 0; y := x z := 1 y > 0 y % = 1 z := z + 1 z := z * y y := y -1 y := 0
Anliz sttyczn? weryfikcj modelow Anliz sttyczn? weryfikcj modelow
System etykietowny s15 s6 s14 c s16 s13 s7 c c c s1 s5 s8 s11 c s10 s9 c s4 d s1 s c s3 s18 d d s17 Ziór stnów: S = {s1,..., s18} Ziór kcji A = {,, c, d} Relcj przejści S A S
ACTL ACTL = Action Computtion Tree Logic ::= true flse p 1 1 1 EX Ω AX Ω E[ 1 Ω1 U Ω ] A[ 1 Ω1 U Ω ] Ω A opisują dopuszczlne kcje.
ACTL Semntyk: s 0 = EX Ω (s i i s i+1 ) 0 i<n : n > 0 0 Ω s 1 = s 0 = AX Ω (s i i s i+1 ) 0 i<n : n > 0 0 Ω s 1 = s 0 = E[ 1 Ω1 U Ω ] (s i i s i+1 ) 0 i<n : k < n : ( 0 i<k ( i Ω 1 s i+1 = 1 ) ( k Ω s k+1 = )) s 0 = A[ 1 Ω1 U Ω ] (s i i s i+1 ) 0 i<n : k < n : ( 0 i<k ( i Ω 1 s i+1 = 1 ) ( k Ω s k+1 = )) A AX A( U ψ) A B E( U ψ) A B A EX ψ ψ ψ ψ ψ ψ ψ ψ ψ ψ ψ ψ
Flow Logic Podejście do nlizy sttycznej czerpiące m.in. z interpretcji strkcyjnej, nlizy przepływu dnych Z pomocą wyrżeń logicznych opisujemy specyfikcję poprwnego wyniku nlizy Jeśli zroimy to dorze, to d się efektywnie oliczyć wynik
Flow Logic n przykłdzie Anliz λ-wyrżeń e ::= x λx.e e 1 e v Vl ziór wyrżeń w postci: v ::= x λx.e Relcj przejści (λx.e) v (λx.e,v) e[v/x] Jeśli e 1 β e 1, to: e 1 e β e 1 e Jeśli e 1 β e 1, to: e e 1 β e e 1 Szczegóły techniczne Konwersj α Etykietownie: ((λx.e l ) l 1 v l ) l ((λx.el ) l 1,v l ) (e[v/x]) l
Flow Logic n przykłdzie Cel nlizy C : L P(Vl) możliwe wrtości wyrżeń R : Vr P(Vl) możliwe wrtości zmiennych
Flow Logic n przykłdzie Cel nlizy C : L P(Vl) możliwe wrtości wyrżeń R : Vr P(Vl) możliwe wrtości zmiennych Specyfikcj C, R x l R(x) C(l) C, R (λx.e l ) l (C, R e l ) (λx.e l ) C(l) C, R (e l 1 1 e l ) l (C, R e l 1 1 ) (C, R e l ) (λx.e l 0 0 ) C(l 1 ): (C(l ) R(x) C(l 0 ) C(l))
Flow Logic n przykłdzie Olicznie (C, R) (C, R) tworzą krtę zupełną Ziór { (C, R) C, R e l} jest zmknięty n rnie infimum Istnieje więc njlepsze (njmniejsze) rozwiąznie Trze je tylko znleźć... C 1 C C 1 C l 1 l l 3 l 4 l 5 l 6
Flow Logic n przykłdzie Olicznie (C, R) (C, R) tworzą krtę zupełną Ziór { (C, R) C, R e l} jest zmknięty n rnie infimum Istnieje więc njlepsze (njmniejsze) rozwiąznie Trze je tylko znleźć... C 1 C C 1 C l 1 l l 3 l 4 l 5 l 6
Alterntion-free Lest Fixed Point Logic Flow Logic ALFP v ::= c x f (v 1,..., v k ) pre ::= R(v 1,..., v k ) R(v 1,..., v k ) pre 1 pre pre 1 pre x : pre x : pre cl ::= R(v 1,..., v k ) true cl 1 cl pre cl x : cl Nie chcemy zmiennych wolnych. ρ = cl (ρ, λx.x) = cl
Alterntion-free Lest Fixed Point Logic Flow Logic ALFP v ::= c x f (v 1,..., v k ) pre ::= R(v 1,..., v k ) R(v 1,..., v k ) pre 1 pre pre 1 pre x : pre x : pre cl ::= R(v 1,..., v k ) true cl 1 cl pre cl x : cl Nie chcemy zmiennych wolnych. ρ = cl (ρ, λx.x) = cl Ciekwe włsności Powiemy, że dl pewnego wrunku R(v 1,..., v k ) zchodzi Nie powiemy, że R(v 1,..., v k ) nie zchodzi
Alterntion-free Lest Fixed Point Logic Flow Logic ALFP v ::= c x f (v 1,..., v k ) pre ::= R(v 1,..., v k ) R(v 1,..., v k ) pre 1 pre pre 1 pre x : pre x : pre cl ::= R(v 1,..., v k ) true cl 1 cl pre cl x : cl Nie chcemy zmiennych wolnych. ρ = cl (ρ, λx.x) = cl Ciekwe włsności Powiemy, że dl pewnego wrunku R(v 1,..., v k ) zchodzi Nie powiemy, że R(v 1,..., v k ) nie zchodzi Ale i tk trze uwżć...
Flow Logic ALFP Twierdzenie o istnieniu rozwiązni Ziór {ρ : ρ = cl} jest zmknięty n rnie infimum jeśli cl jest wrstwow i nie m zmiennych wolnych. {ρ : ρ = cl} jest njmniejszym modelem dl cl. Jk znleźć rozwiąznie? http://www.imm.dtu.dk/cs_succinctsolver/
ALFP kluzul wrstwow Pozytywne użycie relcji R: R(v 1,..., v k )... Negtywne użycie relcji R: R(v 1,..., v k )... Definicj relcji R:... R(v 1,..., v k )
ALFP kluzul wrstwow Pozytywne użycie relcji R: R(v 1,..., v k )... Negtywne użycie relcji R: R(v 1,..., v k )... Definicj relcji R:... R(v 1,..., v k ) Kluzul jest wrstwow, jeśli d się ją zpisć jko cl 1... cl r i dl kżdej relcji istnieje tk licz 0 rnk R r, że: Definicje R występują w członch cl 1,..., cl rnkr Pozytywne użyci R występują w członch cl rnkr..., n Negtywne użyci R występują w członch cl rnkr +1..., n Pos R 1 Def R 1 Neg R 1 Pos R Neg R 1 Neg R Neg R 1 Neg R Def R Def R Pos R 3 Neg R 3 Def R 3 Def R 4 Def R 3 Def R 4 Def R 3 Def R 4 Neg R 3 Def R 4
ALFP przykłd Dl przypomnieni: C, R x l R(x) C(l) C, R (λx.e l ) l (C, R e l ) (λx.e l ) C(l) C, R (e l 1 1 e l ) l (C, R e l 1 1 ) (C, R e l ) (λx.e l 0 0 ) C(l 1 ): (C(l ) R(x) C(l 0 ) C(l)) To smo (?) w ALFP: C, R x l v : R x (v) C l (v) C, R (λx.e l ) l (C, R e l ) C l (λx.e l ) C, R (e l 1 1 e l ) l (C, R e l 1 1 ) (C, R e l ) ( v :C l0 (v ) C l (v )) i h (λx.e l 0 0 ): v:c l1 (λx.e l 0 0 ) C l (v) R x (v)
Półmetek Weryfikcj modelow System z etykietownymi kcjmi Sprwdzmy, czy zchodzą formuły wyrżone w ACTL: ::= true flse p 1 1 1 EX Ω AX Ω E[ 1 Ω1 U Ω ] A[ 1 Ω1 U Ω ] Anliz sttyczn Flow Logic, czyli specyfikcj w postci: R e ϕ, gdzie e element nlizownego język, ϕ formuł w ALFP Szukmy njmniejszego modelu spełnijącego specyfikcję
MC SA Dne: S, A, S A S ACTL Szukmy: R opisującej stny, w których spełnione jest ACTL Szczegóły techniczne: Predykt p relcj P p Podziory Ω A relcje Ω A Relcj s s T (s,, s ) Etykietujemy wszystkie podformuły
Flow Logic dl ACTL R true l s : R true l (s) R flse l true R p l ( s : P p (s) R p l (s) ) R ( l 1 1 l ) l R l 1 1 R l ) ( s : R l11 (s) R l (s) R l11 ( l ) (s) l R ( l 1 1 l ) l R l 1 1 R l ( s : R l11 (s) R l (s) R ( l11 l ) l (s) ) R ( l ) l ) R l ( s : R (s) R l ( l ) l (s) R ( l 1 1 l ) l R l 1 1 R l ( s : R l11 (s) R l (s) R ( l11 l ) l (s) )
Flow Logic dl ACTL R (EX Ω l ) l R l [ ( ) ] s : : s : T (s,, s ) Ω() R l (s ) R (EXΩ l ) l (s) R (AX Ω l ) l R l [ s : [ : s : T (s,, s ) ] [ ] : s : T (s,, s ) R (AXΩ l ) l (s) ( )] Ω() R l (s )
Flow Logic dl ACTL R (EX Ω l ) l R l [ ( ) ] s : : s : T (s,, s ) Ω() R l (s ) R (EXΩ l ) l (s) R (AX Ω l ) l R l [ s : [ : s : T (s,, s ) ] [ ] : s : T (s,, s ) R (AXΩ l ) l (s) ( )] Ω() R l (s )
Flow Logic dl ACTL ( [ ]) l R E l 1 1 Ω 1 U Ω l R l 1 1 R l [ ( ) s : : s : T (s,, s ) Ω () R l (s ) ] R i E h l 1 1 Ω1 U Ω l l (s) [ ( s : : s : T (s,, s ) Ω 1 () R l 11 (s ) ) ] R i E h l 1 1 Ω1 U Ω l l (s ) R i E h l 1 1 Ω1 U Ω l l (s)
Flow Logic dl ACTL R ( [ ]) l A l 1 1 Ω 1 U Ω l R l 1 1 R l [ s : ( : s : T (s,, s )) [ : s : T (s,, s ) ( Ω 1 () R l 11 (s ) R ] R i A h l 1 1 Ω1 U Ω l l (s) ( ) Ω () R l (s ) A ) ] i h l 1 1 Ω1 U Ω l l (s )
Rezultt Njmniejszy model ρ spełni dw wrunki: Poprwność: s = l ρ ( ) R l (s) Precyzj: ρ ( ) R l (s) s = l Njmniejszy model znjdziemy w czsie O ( ( T + S ) l )
Biliogrfi F. Nielson, H. Riis Nielson Model Checking Is Sttic Anlysis of Modl Logic FOSSACS, t. 6014 LNCS, ss. 191-05. Springer, 010. H. Riis Nielson, F. Nielson Flow Logic: multi prdigmtic pproch to sttic nlysis The Essence of Computtion, t. 566 LNCS, strony 69-83. Springer, 00.