Vérification de formules LTL sur des systèmes finis probabilistes Jean-Michel Couvreur, Nasser Sahed, Grégoire Sutre LSV-LaBRI 1/2 1/2 1/4 1/2, a 1/4, b Prob(F b / F a) = ? Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion Motivations Besoins de modélisation algorithmes probabilistes perte de messages, délais stochastiques dans les protocoles systèmes biologiques modèles économiques Vérification Est-ce qu’une propriété est presque sûrement satisfaite par un système ? Zoom sur la logique temporelle linéaire Evaluation Quel est la probabilité qu’une propriété soit satisfaite par un système ? Vérification de LTL sur les systèmes probabilistes Le meilleur algorithme connu à base d’automates a une complexité double EXPTIME [Var85] Il existe un algorithmique ayant une complexité EXPTIME et PSPACE [CY95] Problème ouvert [Var99] Existe-il algorithme à base d’automates s’exécutant en EXPTIME et PSPACE ? Oui [CSS02] Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion Ensembles mesurables de mots infinis ∑ : alphabet fini C∑ : ensemble des cylindres w.∑ω avec w ∈∑* B∑ : tribut (sur ∑ω) engendrée par C∑ B∑ clos par complément B∑ clos par union dénombrable (∑ω,B∑): espace mesurable mesure positive définie sur C∑ et étendu sur B∑ additivité dénombrable Exemple d’ensembles mesurables ∑ω est mesurable si L mesurable et K⊆∑*, alors K.L et K-1.L sont mesurables pour K⊆∑*, K∞ = {σ∈∑ω| préfixe(σ)∩K infini} est mesurable Soit Φ: ∑1 →∑2, alors l’extension Φ: ∑1* →∑2* est mesurable Systèmes probabilistes M = (S,T,α,β,λ,P0,P) 1. (S,T,α,β,λ) est un graphe étiqueté S : états et T: transitions α,β : T → S : fonctions source et cible (•. et .•) λ : T → ∑ : fonction d’étiquetage 2. P0: S → [0,1] : distribution initiale s.t ∑s P0(s) = 1 3. P: T → ]0,1] : distribution des transitions s.t ∑t∈s• P(t) = 1 µM mesure de probabilité sur (∑ω,B∑) définie par ω µM (t0 t1 · · · tn ·T ) = ! P0 (α(t0 ))P (t0 )P (t1 ) · · · P (tn ) if t0 t1 · · · tn ∈ Path∗ (M ) 0 otherwise. Propriétés élémentaires états initiaux S0 = {s ∈S| P0(s)>0} Pathω(M) est mesurable et µM(Pathω(M))=1 Notation. M[s] ≙ M où P0(s) = 1 (i.e. s unique état initial) µM = ∑s P0(s).µM[s] si L mesurable alors µM[s](L) = ∑t∈s• P(t).µM[t•](t-1L) Proposition Soit Path*max l’ensemble des chemins finis terminant dans une SCC maximale. Nous avons µM(Path*max.Tω) = 1 Soit ρ un chemin fini contenu dans une SCC maximal C et soit s∈C. Nous avons µM[s]((T*.ρ)ω) = 1 Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion LTL f ::= a | f ∨ f | ¬f | Xf | f U f (avec a∈∑) les modèles sont dans ∑ω ∨et ¬ sont les connecteurs logiques abca... ⊨a et abca...⊭b abca... ⊨Xb et abca...⊭Xa aaaaaaabca... ⊨a U b et aaaaaaabca...⊭a U c L(f) ensemble des mots w dans ∑ω tel que w⊨f ω-automates A = (Q,T,α,β,λ,Q0,Acc) 1. (Q,T,α,β,λ) est un graphe étiqueté 2. Q0: états initiaux 3. Acc ⊆ 2T: conditions d’acceptations une exécution ρ∈Pathω(A) est accepté si {t| ρ∈(T*.t)ω} ∈ Acc un mot w est accepté si w= λ(ρ) pour une exécution acceptante ρ L(A) : ensemble des mots acceptés Théorème [Var85] Pour tout ω-automate A, L(A) est mesurable de LTL au ω-automates Théorème [VW94] Etant donnée f un formule LTL, il est possible de construire un automate de Büchi Af avec au plus 2O(|f|) états, tel que L(f) = L(Af). Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion Vérification et évaluation Problème de la vérification : Etant donné M et f, est-ce que M vérifie presque sûrement f ? M ⊨f presque sûrement f si µM(Pathω(M)∩λ-1(L(f))=1 M ⊨f avec une probabilité non nulle si µM(Pathω(M)∩λ-1(L(f))>0 Le problème de la vérification est PSPACE [CY95] Problème de l’évaluation : Etant donné M et f, calculer µM(Pathω(M)∩λ-1(L(f)) Approche par automates [Var85] Construire un automate de Büchi Af tel que L(f) = L(Af) |Af| est en 2O(|f|) Construire un automate déterministe B tel que L(B) = L(Af) |B| est en 22O(|f|) Construire le système probabiliste M⊗B (produit synchronisé) |M⊗B| est en |M|.22O(|f|) Tester si M⊗B a une composante maximale acceptée en temps O(|M|).22O(|f|) Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion Notre approche [CSS02] Construire un automate de Büchi non déterministe Af tel que L(f) = L(Af) |Af| est en 2O(|f|) Construire le produit synchronisé M⊗Af (n’est pas un système probabiliste) |M⊗Af | est en |M|.2O(|f|) Rechercher dans M⊗Af une “bonne” composante en temps O(|M|).2O(|f|) Basé sur les propriétés de la traduction d’une formule LTL en automate de Büchi Propriétés des automates de Büchi venant de LTL Traduction par une méthode des tableaux (variante de [Cou00]) Proposition Etant donnée f un formule LTL, il est possible de construire un automate avec des conditions multi-Büchi Af avec au plus 2O(|f|) états, tel que L(f) = L(Af) De plus, Af est non ambigu et séparé sur chaque SCC Exemple : Fa !a U !a,{1} a, {1} a,{1} V Produit synchronisé M⊗A : produit synchronisé L(s,q) = Pathω(M[s])∩λ-1(A[q]) V(s,q) = µM[s](L(s,q)) 1/2 1 1/2 1/2, a 1/4 3 !a 2 !a,{1} U 1/4, b a, {1} V a,{1} 4 1/2, a ,{1} 1/2 1,U 1/2 3,U 1/4 1/2, a ,{1} 2,U 1/4, b 4,U 1/2 ,{1} 1,V 1/2 ,{1} 1/4 ,{1} 2,V 1/4, b ,{1} 3,V 4,V {1} {1} Produit synchronisé Proposition ! L(s, q) = tM · L(tM • , tA • ) (tM ,tA )∈(s,q)• Corollaire (s,q) * > (s’,q’) et V(s’,q’) > 0 ⇒ V(s,q) > 0 1/2 1 1/2 3 1/2, a ,{1} 1/2 1,U 1/2 3,U 1/4 1/2, a ,{1} 1/2 ,{1} 2,U 1,V 1/2 ,{1} 1/4, b 4,U 1 1/4 ,{1} 2,V 1/4, b ,{1} 3,V 4,V {1} {1} 1 1/4 1/2, a 2 1/4, b 4 Types de composantes C est nulle si V(s,q) = 0 C est persistant si C est non nulle et maximale parmi les non nulles sinon C est transitoire 1/2 1 1/2 Transient 1/4 3 1/2, a ,{1} 1/2 1,U 1/2 1/4 3,U 1/2, a ,{1} 2,U 1/4, b 4,U Null 1/2 ,{1} 1,V 1/2 ,{1} 1/4 ,{1} 2,V 1/4, b ,{1} 3,V 4,V {1} {1} Persistent 1/2, a 2 1/4, b 4 Composante localement positive (M⊗A)|C : produit synchronisé restreint à C LC(s,q) = L(M⊗A)[s,q] VC(s,q) = µM[s](LC(s,q)) C est localement positive si VC(s,q) >0 persistant ⇒ localement positive ⇒ non nulle Proposition M ⊨f avec une probabilité non nulle si il existe dans M⊗A une composante localement positive (accessible) Caractérisation des SCC positives Définitions C est acceptée si les transitions de C sont dans Acc⊗ C est complète si tout chemin fini de M commençant dans C|M est dans C Proposition Si A est multi-Büchi ou C est non ambigu alors localement positive ⇔ acceptée et complète Proposition Si A est multi-Buchi, tester C acceptée est en temps O(|Acc|.|C|) Si A est non ambigu et séparé, tester C complète est en temps O(|C|) Théorème Etant donné une formule LTL f, tester A est multi-Buchi, tester M ⊨f avec une probabilité non nulle est en temps O(|M|.|f|.2|f|) localement positive ⇔ acceptée et complète Lemme de la traversée Soit G un graphe fortement connexe étiqueté sur ∑. Il existe w une trace d’un chemin fini dans G tel que pour tout état s et tout mot infini σ ∈ Trace(G[s]) ∩ (∑*w)ω, il existe un chemin infini de source s passant une infinité de fois par toutes les transitions. Proposition C acceptée et complète ⇒ µM [s] # q∈Q|(s,q)∈C LC (s, q) = 1. Proposition localement positive ⇒ complète Proposition Si A est multi-Büchi ou C non ambigu alors localement positive ⇒ accepté w x wp wq Lemme de comptage Lemme Soit C une SCC accepté. Si C non ambigu et séparé alors les propriétés suivantes sont équivalentes C complète C|M est dans une SCC maximale de M et ∀(s, q) ∈ C, ∀tM ∈ • s ∩ SCC(s)• , ∃t ∈ • (s, q) ∩ C • : πM (t) = tm C|M est dans une SCC maximale de M et ! |• s ∩ SCC(s)• | = |• C ∩ C • |. r,p1 r,p2 (s,q)∈C tM tM s,q Evaluation Proposition Soit C une composante. Soit l’équation E|C, réduit aux éléments de C : V (s,q) = € ∑ P(t ) ⋅ V (β (t M ), β (t A )) M (t M ,t A ):α ( t M ,t A )=(s,q ) Si C est transitoire, E|C est de rang |C|. Si C est persistant, E|C est de rang |C|-1. Proposition Si C est persistant ∀s ∈ C|M : ∑V (s,q) = 1 (s,q )∈C Proof of the rank proposition Case persistent Hypothesis 1) Equation: x = A.x with A≥0 and A[i,i]≤1 2) ∃x>0 : x = A.x 3) A is “strongly connected” (i->j iff A[i,j]>0) Properties 1) y≥0, y≠0, y=A.y ⇒ y>0 2) y = A.y ⇒ y = λ.x Case transient Hypothesis 1) Equation: x = A.x+b with A≥0, A[i,i]≤1, b≥0, b≠0 2) ∃x>0 : x = A.x+b 3) A is “strongly connected” (i->j iff A[i,j]>0) Properties 1) y≥0, y≠0, y=A.y+b ⇒ y>0 2) y = A.y ⇒ y = 0 Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion L’outil ProbaTaf N Système = Réseau de Petri LTL sur état + transition + « dead » Exemple τ OneServer(τ) τ InfiniteServer(τ) min(N,M).τ ColoredServer(τ) N.M.τ OneServer(0.01) no N 1 N InfiniteServer(1) ColoredServer(1) ou OneServer(1) 1 D !“no” U (“D“=1) M 0 1 10 100 1000 Colored 0.970 0.965 0.899 0.498 0.090 One 0.970 0.965 0.958 0.958 0.958 10000 0.009 0.958 Projet Bio-Informatique : Propagation de virus (2001-2003) - Lab. Biométrie et Biologie évolutive (Lyon) - LaBRI (Bordeaux) - Lamsade (Paris) - INSA (Lyon) L’outil ProbaTaf (suite) Principes : Vérificateur + Evaluateur 1. Tester si ¬f est “possible” 2. Evaluer f RdP LTL explicite bdd Automate Système Non-ambigu, séparé Produit synchronisé Solveur = adaptation de Gauss “à la volée” Acceptation + complétude Plan I. Préliminaires II. Systèmes probabilistes III. LTL et ω-automates IV. Vérification et évaluation d’une formule V. Notre approche VI. L’outil ProbaTaf VII. Conclusion Bilan LTL probabiliste “automate non-ambigu, séparé” Expérimentation le solveur est la partie critique Au delà l’infini le stochastique