Praktyczne metody weryfikacji Wykład 9: Weryfikacja ograniczona. p.1/40
Symboliczna weryfikacja modelowa (SMC) model kodowanie boolowskie QBF implementacja OBDD weryfikacja modelowa = operacje na OBDDs. p.2/40
Ograniczona weryfikacja modelowa (BMC) model kodowanie boolowskie BF weryfikacja modelowa = spełnialność formuły boolowskiej. p.3/40
SMC BMC Przykład: EF p (bezpieczeństwo) pre-smc:... p EX ( p EX p) p EX p p false... p pre( p pre( p)) p pre( p) p false post-smc: S 0 S 0 post(s 0 ) S 0 post(s 0 post(s 0 )).... p.4/40
Ograniczona weryfikacja modelowa poszukiwanie kontrprzykładów ograniczonej długości metoda symboliczna wykorzystanie SAT-rozwia,zywaczy (ang. SAT-solvers). p.5/40
I. Weryfikacja ograniczona. p.6/40
M E φ (φ LTL + ) np. zamiast M AG φ, sprawdzamy M EF φ M opisany przez formuły boolowskie: R(x 1,..., x m, x 1,..., x m) L p (x 1,..., x m ), Ŝ 0 (x 1,..., x m ). p.7/40
Pomysł: horyzont k 0 k kroków systemu Π k φ k kroków wystarcza by stwierdzić, że Π φ Lem.: Π k φ = Π φ Lem.: M E φ = k 0. M k E φ Tw.: M E φ k 0. M k E φ. p.8/40
Π = s 0 s 1 s 2... (k, l) - pe,tla: s 0 s 1... s l... s k s k+1+i = s l+i (k - pe,tla) brak pe,tli: s 0 s 1... s k.... p.9/40
Semantyka ograniczona dla k-pe,tli Π k φ Π φ Π = s 0 s 1 s 2.... p.10/40
Semantyka ograniczona dla nie-pe,tli Π k φ Π 0 k φ Π = s 0 s 1 s 2... i k, 0 i k Π i k p p L(s i) Π i k p, φ 1 φ 2, φ 1 φ 2... Π i k X φ i<k i Π i+1 k φ Π i k F φ j, i j k. Π j k φ Π i k G φ nigdy Π i k φ U ψ j, i j k. Π j k ψ l, i l<j. Π l k φ Π i k φ R ψ?. p.11/40
φ R ψ ( φu ψ) Π φ R ψ wtw gdy i < Π. ( j < i. Π j φ) = Π i ψ φ R ψ ψ U (ψ φ) G ψ Π i k φ U ψ j, i j k. Π j k ψ l, i l<j. Π l k φ Π i k φ R ψ j, i j k. Π j k φ l, i l j. Π l k ψ. p.12/40
Lem.: Π k φ = Π φ Lem.: M E φ = k 0. M k E φ Tw.: M E φ k 0. M k E φ jakie k jest wystarczaja,co duże? średnica grafu? brak pełności!. p.13/40
M k E φ (φ LTL + ) M, ψ, k [M, φ] k M k φ [M, φ] k spełnialna M opisany przez formuły boolowskie: R(z, z ) L p (z), S 0 (z). p.14/40
Ścieżka symboliczna z 0 z 1... z k [M] k := S 0 (z 0 ) k 1 i=0 R(z i, z i+1 ) (k + 1) m zmiennych boolowskich rozmiar formuły boolowskiej [M] k jest O(k M ). p.15/40
(k, l) - pe,tla: s 0 s 1... s l... s k ll k R(z k, z l ) L k k ll k l=0 brak pe,tli: s 0 s 1... s k. p.16/40
[M, φ] k := [M] k ( k ( L k [φ] 0 k) ( l L k l [φ] 0 k) ) l=0 l[φ] 0 k [φ] 0 k znaczenie φ na (k, l)-pe,tli znaczenie φ na nie-pe,tli rozmiar formuły [M, φ] k jest O(k ( M + φ )). p.17/40
l[φ] i k 0 l, i k s 0 s 1... s l... s k l[p] i k := L p (z i ) l[ p] i k l[φ ψ] i k l[φ ψ] i k :=... l[ X φ] i k := l [φ] succ(i) k succ(i) = { i + 1 i < k l i = k F φ φ X F φ φ U ψ ψ (φ X φ U ψ) G φ φ X G φ φ R ψ ψ (φ X φ R ψ). p.18/40
Przykład: s 0 s 1... s l... s k l[ F p] 0 k = L p (z 0 )... L p (z k ) l[ G p] 0 k = L p (z 0 )... L p (z k ) l[p U q] 0 k = L q (z 0 ) (L p (z 0 ) (L q (z 1 ) (... L q (z k 1 ) (L p (z k 1 ) L q (z k ))...))) l[ F G p] 0 k = (L p (z 0 ) L p (z 1 )... L p (z k )) (L p (z 1 )... L p (z k )) L p (z k ). p.19/40
Rozmiar formuły boolowskiej l [φ] i k jest O(k φ ) dzie,ki dzieleniu podformuł. p.20/40
[φ] i k 0 i k s 0 s 1... s k [p] i k [ p] i k [φ ψ] i k [φ ψ] i k := j. w. [ X φ] i k := [φ] i+1 k [φ] k+1 k := false F φ φ X F φ φ U ψ ψ (φ X φ U ψ) G φ φ X G φ φ R ψ ψ (φ X φ R ψ). p.21/40
Przykład: s 0 s 1... s k [ F p] 0 k = L p (z 0 )... L p (z k ) false [ G p] 0 k = L p (z 0 )... L p (z k ) false false [p U q] 0 k = L q (z 0 ) (L p (z 0 ) (L q (z 1 ) (... L q (z k 1 ) (L p (z k 1 ) (L q (z k ) (L p (z k ) false)))...))) [ F G p] 0 k false. p.22/40
[M, φ] k := [M] k ( k ( L k [φ] 0 k) ( l L k l [φ] 0 k) ) l=0 Tw.: M k E φ [M, φ] k jest spełnialna.. p.23/40
II. Pełność?. p.24/40
Jak uzyskać pełnósć weryfikacji ograniczonej? ograniczenie dla k (bezpieczeństwo) równolegle sprawdzamy φ i φ (żywotność) indukcja (bezpieczeństwo). p.25/40
Pełność dla G p Średnica ograniczenie dla k najmniejsze i t. że z 0,..., z n. z 0,..., z t, t i. S 0 (z 0 ) n 1 j=0 R(z j, z j+1 ) = S 0 (z 0) ( t 1 j=0 R(z j, z j+1) ) z t = z n. p.26/40
Pełność dla G p Średnica ograniczenie dla k najmniejsze i t. że z 0,..., z i+1. z 0,..., z i. S 0 (z 0 ) i j=0 R(z j, z j+1 ) = S 0 (z 0) ( i 1 j=0 R(z j, z j+1) ) i j=0 z j = z i+1. p.27/40
Pełność dla G p najdłuższaścieżka bez pe,tli ograniczenie dla k najwie,ksze i t. że z 0,..., z i. S 0 (z 0 ) ( i 1 j=0 R(z j, z j+1 ) ) i 1 i j=0 l=j+1 z j z l. p.28/40
Pełność dla F p M EG p k t. że naste,puja,ca formuła jest spełnialna: S 0 (z 0 ) k 1 R(z j, z j+1 ) k ( l L k k L p (z j )) j=0 l=0 j=0 M AF p k t. że naste,puja,ca formuła jest tautologia,: S 0 (z 0 ) k 1 R(z j, z j+1 ) = k L p (z j ) j=0 j=0. p.29/40
Pełność dla F p M EG p k t. że naste,puja,ca formuła jest spełnialna: S 0 (z 0 ) k 1 j=0 R(z j, z j+1 ) ( k l=0 ll k ) k j=0 L p (z j ) M AF p k t. że naste,puja,ca formuła jest niespełnialna: S 0 (z 0 ) k 1 R(z j, z j+1 ) k L p (z j ) j=0 j=0. p.30/40
Pełność dla G p indukcja 1) wybieramy niezmiennik φ(z) 2) sprawdzamy, że poniższa formuła jest niespełnialna: z 0,..., z k. S 0 (z 0 ) k 1 R(z j, z j+1 ) k φ(z j ) j=0 j=0 3) sprawdzamy, że poniższa formuła jest niespełnialna: z 0,..., z k+1. k (φ(z j ) R(z j, z j+1 )) φ(z k+1 ) j=0 4) sprawdzamy, że poniższa formuła jest tautologia,: z. φ(z) = L p (z). p.31/40
Po co k > 1? p p p p p. p.32/40
III. BDD czy SAT?. p.33/40
. p.34/40
BDD + SAT nieograniczona weryfikacja modelowa. p.35/40
IV. SAT-solvers. p.36/40
CNF algorytm DPLL przeszukiwanie drzewa wartościowań cze,ściowych BCP (ang. Boolean Constraint Propagation) konflikty obcinanie drzewa heurystyki. p.37/40
Graf implikacji. p.38/40
. p.39/40
Dlaczego SAT-rozwia,zywacze sa, tak szybkie? uczenie konfliktów dodajemy tzw. klauzule konfliktowe niechronologiczne powroty heurystyki dla: decyzji.... p.40/40