Jmc habile

1,230 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,230
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jmc habile

  1. 1. Contribution ` l’algorithmique a de la v´rification e (M´moire d’habilitation ` diriger des recherches) e a Jean-Michel COUVREUR Laboratoire Bordelais de Recherche en Informatique CNRS UMR 5800 - Universit´ Bordeaux I e Laboratoire Sp´cification et V´rification e e CNRS UMR 8643 - ENS de CachanPr´sent´ le 6 juillet 2004 ` l’ENS de Cachan devant un jury compos´ de : e e a e – Andr´ Arnold e examinateur – Javier Esparza examinateur – Alain Finkel examinateur – Paul Gastin pr´sident e – Serge Haddad rapporteur – Philippe Schnoebelen examinateur – Igor Walukiewicz rapporteur – Pierre Wolper rapporteur
  2. 2. Table des mati`res e1 Introduction 12 Logique temporelle lin´aire e 3 2.1 Mod`les du temps lin´aire . . . . . . . . . . . e e . . . . . . . . . . . 5 2.2 Traduction d’une formule LTL en ω-automate . . . . . . . . . . . 6 2.2.1 Automates ` transitions . . . . . . . . a . . . . . . . . . . . 7 2.2.2 Construction globale . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 Construction locale . . . . . . . . . . . . . . . . . . . . . . 15 2.2.4 Exp´rimentations . . . . . . . . . . . . e . . . . . . . . . . . 20 2.3 Tester le vide d’un ω-automate . . . . . . . . . . . . . . . . . . . 22 2.4 V´rification de syst`mes probabilistes . . . . e e . . . . . . . . . . . 31 2.4.1 Notions de mesure . . . . . . . . . . . . . . . . . . . . . . 32 2.4.2 Syst`me de transitions probabiliste . . e . . . . . . . . . . . 33 2.4.3 Propri´t´s du produit synchronis´ . . ee e . . . . . . . . . . . 34 2.4.4 Probl`me de la satisfaction . . . . . . e . . . . . . . . . . . 35 2.4.5 Probl`me de l’´valuation . . . . . . . . e e . . . . . . . . . . . 37 2.4.6 Exp´rimentations . . . . . . . . . . . . e . . . . . . . . . . . 37 2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 D´pliages de r´seaux de Petri e e 43 3.1 Notions ´l´mentaires . . . . . . . . . . . . . . . . ee . . . . . . . . . 44 3.1.1 R´seaux de Petri . . . . . . . . . . . . . . e . . . . . . . . . 44 3.1.2 Homomorphisme de r´seaux . . . . . . . . e . . . . . . . . . 46 3.1.3 R´seau d’occurrence . . . . . . . . . . . . e . . . . . . . . . 47 3.2 Processus arborescent et d´pliage . . . . . . . . . e . . . . . . . . . 49 3.2.1 Processus arborescents . . . . . . . . . . . . . . . . . . . . 50 3.2.2 D´pliages . . . . . . . . . . . . . . . . . . e . . . . . . . . . 51 3.3 Pr´fixes finis . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . 52 3.3.1 D´finition . . . . . . . . . . . . . . . . . . e . . . . . . . . . 52 3.3.2 Ordres ad´quats et pr´fixes finis complets e e . . . . . . . . . 53 3.3.3 V´rification de propri´t´ de sˆret´ . . . . e ee u e . . . . . . . . . 56 3.3.4 D´tection de comportements infinis . . . . e . . . . . . . . . 56 3.4 Graphes de pr´fixes finis . . . . . . . . . . . . . . e . . . . . . . . . 60 3.4.1 D´finition . . . . . . . . . . . . . . . . . . e . . . . . . . . . 60 3.4.2 Logique lin´aire ´v´nementielle . . . . . . e e e . . . . . . . . . 62 3.4.3 Logique lin´aire propositionnelle . . . . . e . . . . . . . . . 65
  3. 3. ` TABLE DES MATIERES 3.5 D´pliages de r´seaux de Petri sym´triques . . . . . e e e . . . . . . . . 66 3.5.1 R´seaux de Petri sym´triques . . . . . . . . e e . . . . . . . . 66 3.5.2 Pr´fixe fini complet d’un r´seau sym´trique e e e . . . . . . . . 70 3.6 D´pliage d’un produit de r´seaux sym´triques . . . e e e . . . . . . . . 72 3.6.1 Produit de r´seaux de Petri . . . . . . . . . e . . . . . . . . 72 3.6.2 D´pliage d’un produit de r´seaux de Petri . e e . . . . . . . . 72 3.6.3 Pr´fixe fini complet d’un produit de r´seaux e e de Petri . . . 74 3.6.4 Pr´fixe fini complet d’un produit de r´seaux e e sym´triques . e 75 3.7 Construction modulaire du pr´fixe d’un produit . . . e . . . . . . . . 76 3.7.1 Construction modulaire . . . . . . . . . . . . . . . . . . . 76 3.7.2 Produit de machines ` ´tats et de files . . . ae . . . . . . . . 78 3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 V´rification symbolique e 81 4.1 Diagrammes de d´cisions de donn´es . . . . . . . . . . . . . . . e e . 83 4.1.1 D´finitions des DDD . . . . . . . . . . . . . . . . . . . . e . 83 4.1.2 Op´rations sur les DDD . . . . . . . . . . . . . . . . . . e . 85 4.1.3 Homomorphismes sur les DDD . . . . . . . . . . . . . . . 87 4.1.4 Impl´mentation d’une biblioth`que de diagrammes de d´- e e e cisions de donn´es . . . . . . . . . . . . . . . . . . . . . e . 89 4.1.5 Une ´tude de cas : le BART de San Francisco . . . . . . e . 90 4.2 Automates partag´s . . . . . . . . . . . . . . . . . . . . . . . . e . 95 4.2.1 Pr´liminaires . . . . . . . . . . . . . . . . . . . . . . . . e . 95 4.2.2 Automates partag´s . . . . . . . . . . . . . . . . . . . . e . 97 4.2.3 Impl´mentation des automates partag´s . . . . . . . . . e e . 101 4.2.4 Exp´rimentations . . . . . . . . . . . . . . . . . . . . . . e . 107 4.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095 Conclusion et perspectives 111
  4. 4. Chapitre 1Introduction Les techniques de v´rifications ont d´j` plus de vingt ans. Elles ont ´t´ d´- e ea ee evelopp´es dans un premier temps par des ´quipes de chercheurs et sont de plus e een plus utilis´es dans le milieu industriel pour l’analyse d’une grande vari´t´ e eede syst`mes (syst`mes mat´riels, logiciels, syst`mes r´actifs, syst`mes temps e e e e e er´el). Il est maintenant prouv´ que ces techniques sont efficaces et sont fr´quem- e e ement utilis´es pour d´tecter des bogues dans des cas industriels. De nombreuses e e´tudes sont en cours pour ´largir leurs champs d’applications et am´liorer leure e eefficacit´. Ceci nous conduit ` penser que les applications industrielles vont se e amultiplier de mani`re significative dans les prochaines ann´es. e e Ce m´moire pr´sente mes travaux les plus r´cents, consacr´s ` la v´rification e e e e a ede syst`mes. J’ai concentr´ mes efforts sur l’am´lioration de diff´rents aspects e e e ede l’algorithmique de la v´rification : la logique temporelle lin´aire (LTL), la e ev´rification par ordre partiel et la v´rification symbolique. Mes recherches sont e een partie aliment´es par des pr´occupations concr`tes abord´es dans le cadre e e e ede projets industriels ou des projets universitaires. Par exemple, dans le cadredu projet CLOVIS (un projet de recherche exploratoire DGA), j’ai ´labor´ et e eimpl´ment´ une structure originale de diagrammes de d´cision adapt´e ` la v´- e e e e a erification symbolique et nous l’avons appliqu´e ` la v´rification de programmes e a eVHDL. Mes autres recherches sont beaucoup plus acad´miques, comme la v´- e erification de formules LTL ou la v´rification par ordre partiel. e J’ai organis´ cette pr´sentation en trois chapitres : e e 1. Le premier chapitre est d´di´ ` mes contributions concernant la logique e ea temporelle lin´aire [14, 15, 22]. Nous consacrons une grande part au pro- e bl`me de la construction de l’automate d’une formule LTL. Il contient une e discussion sur le type d’automates ` produire, plusieurs descriptions de a constructions globales [15] et locales [14], ainsi qu’une ´tude exp´rimen- e e tale. Nous pr´sentons ensuite notre algorithme de v´rification ` la vol´e e e a e [14]. Nous terminons ce chapitre par nos r´cents travaux sur la v´rification e e de syst`mes probabilistes [22]. e 2. Dans le deuxi`me chapitre, nous d´crivons nos contributions, tir´es de e e e [20, 21, 18, 19, 23], sur une m´thode bas´e sur l’ordre partiel : le d´pliage e e e de r´seaux de Petri. Nous donnons les ´l´ments th´oriques conduisant ` la e ee e a 1
  5. 5. 2 CHAPITRE 1. INTRODUCTION notion de d´pliage de r´seaux de Petri, ainsi que les d´finitions de pr´fixes e e e e finis ` partir desquelles des algorithmes de v´rification de propri´t´s de a e ee sˆret´ sont d´velopp´s. Nous d´crivons de mani`re synth´tique nos tra- u e e e e e e vaux sur les graphes de pr´fixes finis [20, 21, 18, 23] et leurs applications e a ` la v´rification de propri´t´s de logique temporelle. Nous terminons ce e ee chapitre par une ´tude du d´pliage de r´seaux de Petri sym´triques et du e e e e produit de r´seaux de Petri [19]. e 3. Le troisi`me chapitre concerne nos travaux sur les m´thodes de v´rification e e e symbolique [17, 7, 16]. Nous pr´sentons une structure de donn´e ` la BDD, e e a les diagrammes de d´cisions de donn´es (DDD) [17], ´labor´e pour traiter e e e e des syst`mes d´crits dans des langages de haut niveau. Nous montrons la e e puissance de description des DDD sur une ´tude de cas [7] : le BART de e San Francisco. Nous terminons ce chapitre par nos travaux r´cents sur une e repr´sentation ` la BDD des automates finis d´terministes, les automates e a e partag´s. e
  6. 6. Chapitre 2Logique temporelle lin´aire e La logique temporelle est un langage puissant permettant de d´crire des epropri´t´s de sˆret´, d’´quit´ et de vivacit´ de syst`mes. Elle est utilis´e comme ee u e e e e e elangage de sp´cification dans des outils tel que SPIN [48] et SMV [58]. Cepen- edant, v´rifier qu’un syst`me fini respecte une telle sp´cification est PSPACE- e e ecomplet [75]. En pratique, les techniques de v´rification sont confront´es ` un e e aprobl`me d’explosion combinatoire du nombre d’´tats du syst`me et de celui e e ede l’automate codant la formule. De nombreuses techniques ont ´t´ ´labor´es eee epour faire face ` ce probl`me d’explosion. Nous pouvons noter les techniques a ede v´rification ` la vol´e combin´es avec des techniques de r´duction ` base e a e e e ad’ordre partiel (SPIN [48]). La repr´sentation symbolique par les diagrammes ede d´cisions permet de coder un syst`me et l’automate d’une formule de mani`re e e econcise et ainsi de repousser les limites de la v´rification (SMV [58]). Chacune ede ces m´thodes ont leurs succ`s sur des syst`mes industriels prouvant leur e e ebien-fond´. e En 1999 [14], j’ai propos´ de nouveaux algorithmes pour r´soudre les deux e eprobl`mes clefs de la v´rification ` la vol´e d’une formule LTL : e e a e – Construire ` la demande un automate repr´sentant une formule LTL ; a e – Tester ` la vol´e si l’automate r´sultant du produit synchronis´ du syst`me a e e e e et de l’automate de la propri´t´ est vide. ee Ces deux probl`mes avaient d´j` ´t´ r´solus. L’algorithme de construction e eaee ed’automates propos´ dans [37] produit non seulement des automates de tailles eraisonnables, mais op`re aussi ` la demande. Les algorithmes propos´s dans e a e[46, 12, 40] testent ` la vol´e le probl`me du vide d’un automate. Cependant a e el’enseignement de ces techniques m’ont conduit ` les remettre en question. D’une apart, l’algorithme de construction [37] produit pour certaines formules simplesdes automates compliqu´s et certains aspects de la construction d´fiaient l’in- e etuition. D’autre part, pourquoi aucun des algorithmes pour tester le vide n’´taitebas´ sur le fameux algorithme de Tarjan [77]. Mon objectif initial ´tait donc e ep´dagogique : (1) d´velopper une technique de construction d’automates facile e ea` comprendre et construisant de petits automates pour de petites formules ;(2) reformuler l’algorithme de Tarjan pour r´soudre le probl`me du vide d’un e eautomate. J’ai con¸u une construction d’automates qui est dans quasiment tous les cas c 3
  7. 7. 4 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREmeilleure que celle propos´e dans [37] : elle produit des automates plus petits. eL’algorithme construit une variante des automates de B¨chi : des automates ` u atransitions. Contrairement aux automates de B¨chi, les conditions d’acceptation uportent ici sur les transitions. Ma construction est tr`s voisine de celle propos´e e edans [37]. Elle est bas´e sur une technique de tableaux [88, 89]. Le point clef ede ma m´thode est l’utilisation de calcul symbolique, qui permet de simplifier eles expressions de mani`re naturelle et ainsi de r´duire le nombre d’´tats. De e e eplus, une impl´mentation simple et efficace peut ˆtre obtenue en utilisant des e ediagrammes de d´cisions binaires. e Mon algorithme de v´rification est une variation simple de l’algorithme de eTarjan. Il a les caract´ristiques suivantes : e – L’algorithme est con¸u pour fonctionner ` la vol´e, c-`-d, durant le par- c a e a cours de l’automate produit, un comportement accept´ est d´tect´ d`s e e e e que le graphe parcouru en contient un. – L’algorithme traite directement des automates ` transitions, c-`-d, il n’est a a pas n´cessaire de transformer l’automate en un simple automate de B¨chi. e uLes algorithmes initialement propos´s [46, 12, 40] n’ont aucune de ces bonnes epropri´t´s. ee En 2003 [22], je me suis int´ress´ ` la v´rification de formules LTL sur des e ea esyst`mes probabilistes. Les algorithmes probabilistes sont con¸us dans de nom- e cbreux domaines de l’informatique, et plus particuli`rement en algorithmique edistribu´e. En fait, dans ce domaine, il existe des probl`mes qui n’admettent e epas de solutions algorithmiques d´terministes satisfaisantes. Ainsi, le choix de emettre en œuvre des solutions probabilistes devient n´cessaire. L’extension et ela conception de technique de v´rification efficace pour les syst`mes concurrents e eprobabilistes constituent encore ` ce jour un chalenge. a Le principal r´sultat de notre travail [22] est la conception d’une m´thode ` e e abase d’automates pour la v´rification de formules LTL sur des syst`mes proba- e ebilistes. Le point essentiel est que l’algorithme propos´ r´sout le probl`me avec e e eune complexit´ optimale [13]. Comme dans le cas non probabiliste, nous syn- echronisons le syst`me avec l’automate de la n´gation de la formule. Cependant, e enous utilisons une construction particuli`re des automates de la formule. Cette econstruction que j’ai propos´e dans [15], produit des automates ayant des pro- epri´t´s sp´cifiques. Nous avons ainsi exploit´ ces bonnes propri´t´s pour ´viter ee e e ee ela d´terminisation de ces automates qui est une ´tape coˆteuse conduisant ` e e u aune complexit´ doublement exponentielle en temps [84]. e Ce chapitre est organis´ en 4 parties. La premi`re partie se veut informelle ; e eelle pose les d´finitions relatives aux mod`les du temps lin´aires et d´crit les e e e eprincipes de la v´rification ` base d’automates. La deuxi`me partie aborde le e a eprobl`me de la traduction d’une formule LTL en un automate. Cette partie econtient une discussion sur le type d’automates ` produire, donne deux m´- a ethodes de construction, et termine par une ´tude exp´rimentale comparative e eavec des m´thodes existantes. La troisi`me partie d´crit une adaptation de l’al- e e egorithme de Tarjan pour le test du vide d’un automate. La quatri`me partie est econsacr´e ` la v´rification d’une formule LTL sur un syst`me probabiliste. e a e e
  8. 8. ` ´2.1. MODELES DU TEMPS LINEAIRE 52.1 Mod`les du temps lin´aire e e Cette section d´crit de mani`re informelle les mod`les du temps lin´aire : e e e eles comportements lin´aires, les syst`mes de transitions ´tiquet´s et la logique e e e etemporelle lin´aire. Nous terminons par la description des principes de la v´ri- e efication ` la base d’automates. aComportements lin´aires. Dans les logiques du temps lin´aire, un com- e eportement est mod´lis´ par une suite infinie d’´v´nements, lors desquels il est e e e epossible d’observer les ´tats et des actions d’un syst`me. L’ensemble de ces e eobservations est appel´es propositions ´l´mentaires. Formellement un compor- e eetement lin´aire sur un ensemble de propositions ´l´mentaires AP est une struc- e eeture r = (T, σ, λ) o` T est un ensemble de transitions, σ un mot infini sur T et uλ : T → 2AP une fonction d’´tiquetage. La trace d’un comportement lin´aire r e eest le mot infini sur l’alphabet 2AP d´fini par T race(r) = λ(σ). eSyst`me de transitions ´tiquet´es. Les mod`les de syst`mes ont une s´- e e e e e emantique ` base de syst`mes de transitions. Un tel syst`me est d´fini par un a e e equintuple M = (S, S0 , T, α, β, L) o` S est un ensemble d’´tats, S0 un ensemble u ed’´tats initiaux, T un ensemble de transitions, α, β : T → S sont les fonctions eidentifiant l’origine et le but des transitions, et λ : T → 2AP est une fonctiond’´tiquetage des transitions. e Les comportements lin´aires d’un syst`me de transitions sont d´finis par les e e emots infinis de transitions d´crivant des chemins valides du syst`me d´marrant e e ed’un ´tat de S0 . Dans la s´mantique du temps lin´aire, un syst`me est identifi´ e e e e epar l’ensemble des traces de ses comportements lin´aires. Notez que les com- eportements finis terminant dans un ´tat puit ne sont pas pris en compte. Sans eperdre de g´n´ralit´, ce d´faut est r´solu en ajoutant une transition bouclante e e e e ea` chaque ´tat puit. Dans ce mod`le, une propri´t´ d’´tat est mod´lis´e par une e e ee e e epropri´t´ de transition en affectant ` chaque transition la valeur de v´rit´ de ee a e eson ´tat source. Dans la suite, nous ne consid´rerons que des syst`mes ` nombre e e e afini d’´tats et de transitions. eLogique temporelle lin´aire. Cette logique permet d’´noncer des propri´- e e et´s sur les traces des comportements d’un syst`me. Elle permet de parler de e el’´volution d’un syst`me au cours du temps en examinant la suite des ´v´ne- e e e ements observ´s lorsque le syst`me r´alise un comportement lin´aire. Les for- e e e emules sont construites ` partir des propri´t´s ´l´mentaires, des op´rateurs et a e e ee econstantes bool´ennes et de deux op´rateurs temporels : l’op´rateur unaire X e e e(qui se lit Next) et l’op´rateur binaire U (qui se lit Until). On d´finit la relation e ede satisfaction σ, i |= f d’une formule f pour un mot infini de σ = σ0 · · · σi · · · ωde (2AP ) ` l’instant i par induction sur la construction de la formule : a 1. σ, i |= p si p ∈ σi pour tout p ∈ AP , 2. σ, i |= ¬f si ¬(σ, i |= f ), 3. σ, i |= f ∧ g si (σ, i |= f ) ∧ (σ, i |= g), 4. σ, i |= X f si σ, i + 1 |= f ,
  9. 9. 6 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE 5. σ, i |= f U g si ∃j : j ≥ i ∧ σ, j |= g ∧ (∀k : i ≤ k < j ⇒ σ, k |= f ). L’interpr´tation intuitive de X f et f U g est la suivante : X f est vraie ` e al’instant i si f l’est ` l’instant suivant ; f U g est vraie ` l’instant i si g est vraie a aa` un instant futur j et entre les instants i et j, f est toujours vraie. On utiliselibrement les abr´viations logiques habituelles suivantes , ⊥, f ∨ g, f ⇒ g, et e def deff ⇔ g, ainsi que F f ≡ U f , Gf ≡ ¬F ¬f . F f dit que f est vraie dans uninstant futur, le dual Gf dit que f est vraie dans tous les instants futurs. L’´valuation de relation σ, 0 |= f ` l’instant 0 d´finit la relation de sa- e a etisfaction σ |= f d’une formule pour une trace d’un comportement lin´aire. eNous dirons qu’un syst`me de transitions ´tiquet´es v´rifie une formule f , not´ e e e e eM |= f , si toutes les traces de ses comportements v´rifient f . eV´rification par automates. Les principes de la v´rification de syst`mes e e efinis par automates pour LTL sont dˆ ` Vardi, Wolper [85]. Ils reposent sur u ale fait que l’ensemble des mots infinis satisfaisant une formule LTL forme unlangage r´gulier et est repr´sentable par un ω-automate. Pour appliquer cette e epropri´t´, un syst`me est vu comme un g´n´rateur de mots infinis. Ainsi, si ee e e eM est un syst`me et f une formule, tester M |= f se ram`ne ` un probl`me e e a epurement sur les automates : tester si M ∩ ¬f est vide, c-a-d n’accepte pas demot infini. Cette approche pose clairement les probl`mes algorithmiques de la ev´rification : (1) calculer un ω-automate pour une formule LTL ; (2) calculer el’intersection de deux automates ; (3) tester le vide d’un automate. Dans la suitede notre pr´sentation, nous examinerons nos contributions aux probl`mes (1) e eet (3) et montrerons comment cette approche est appliquable ` la v´rification a ede syst`mes probabilistes. e2.2 Traduction d’une formule LTL en ω-automate De nombreux travaux traitent de la construction d’un automate pour uneformule LTL. Nous ne donnerons pas une g´n´alogie des m´thodes. On pourra e e etrouver dans [90, 25, 78] de tr`s bons ´tats de l’art. Mes contributions sur ce e eth`me sont multiples. Premi`rement, elles concernent le choix du type d’auto- e emates construits : les automates ` transitions. Dans ces automates, les condi- ations d’acceptation portent sur les transitions infiniment rencontr´es plutˆt que e osur les ´tats. Cette id´e a ´t´ reprise par des constructions r´centes et donne ` e e ee e aces m´thodes une efficacit´ quasiment imm´diate. Deuxi`mement, j’ai d´velopp´ e e e e e eune m´thode produisant des automates adapt´s aux probl`mes de la v´rifica- e e e etion probabiliste. Un aspect int´ressant de cette traduction est la repr´sentation e edirecte de l’automate sous la forme d’un BDD. Troisi`mement, j’ai d´velopp´ e e eune construction bien adapt´e aux techniques de v´rification ` la vol´e : l’ob- e e a ejectif est de construire localement la liste des transitions successeurs d’un ´tat. eLe point clef de cette technique est l’utilisation de BDD pour repr´senter et esimplifier ces listes et ainsi r´duire la taille de l’automate produit. e
  10. 10. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 7 p, {1} !p.!q, {} !p T, {} p.!q, {1} p.q, {1,2} q, {2} !p.q, {2} p T !q !p.!q, p.!q, p, {1} q {} {1} T !p.q, p.q, q, {2} {2} {1,2} Fig. 2.1 – Automates pour la formule GF p ∧ GF q2.2.1 Automates ` transitions a Un automate reconnaissant des mots infinis est un syst`me fini adjoint d’une econdition d´finissant les chemins infinis pour ˆtre accept´s. Les mots infinis e e eaccept´s par un automate sont les traces des chemins infinis accept´s. Dans e ele cas des automates de B¨chi, un chemin accept´ doit traverser infiniment u eun ensemble d’´tats appel´s ´tats d’acceptation. Pour les automates que nous e e econsid´rons, les automates ` transitions, la condition d’acceptation porte sur e ales transitions parcourues infiniment. Dans notre ´tude, les conditions sont des econjonctions de conditions de B¨chi. Une condition est d´finie par un ensemble u ed’ensembles de transitions. Un chemin est accept´ s’il traverse infiniment tous eles ensembles de la condition.D´finition 2.1 (Automate ` transitions) Soit AP un ensemble fini de pro- e apositions ´l´mentaires. Un automate ` transitions sur AP est une structure ee aA = (S, S0 , T, α, β, λ, Acc) o` u – S est un ensemble fini d’´tats, e – S0 ⊆ S est un ensemble d’´tats initiaux, e – T est un ensemble fini de transitions, – α, β : T → S d´finissent la source et la destination des transitions, e – λ : T → 2AP est la fonction d’´tiquetage des transitions, e – Acc ⊆ 2 T est l’ensemble d’ensembles d’acceptation.Un chemin infini ρ = t0 · · · tn · · · de l’automate est accept´ si e – src(t0 ) ∈ S0 et ∀i ∈ IN : β(ti ) = α(ti+1 ), – ∀acc ∈ Acc, ∀i ∈ IN, ∃j ∈ IN : j > i ∧ tj ∈ acc.Les mots infinis de (2AP )ω accept´s par A sont les traces des chemins infinis eaccept´s par A. Notons L(A), l’ensemble des mots accept´s par A et L(A, s) e el’ensemble des mots accept´s par l’automate A avec s comme unique ´tat initial. e e Plusieurs variantes d’automates ont ´t´ utilis´es pour traduire des formules ee eLTL. Traditionnellement, les conditions portent sur les ´tats (Acc ⊆ 2S ). Dans ecertains travaux, les propri´t´s sont attribu´es aux ´tats (λ : S → 2AP ). Les ee e e
  11. 11. 8 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREpropri´t´s ´tiquetant les ´tats ou les transitions peuvent aussi prendre la forme ee e e APd’expressions bool´ennes sur les propositions ´l´mentaires (λ : T → 22 ou e ee APλ : S → 22 ). Notez que notre d´finition capture tous ces automates en repor- etant, si besoin, les propri´t´s et les conditions d’acceptation sur les transitions, eeet en d´veloppant les expressions bool´ennes ´tiquetant ´ventuellement les tran- e e e esitions. Nous dirons qu’un automate est ` ´tats si les propri´t´s et les conditions ae eeportent sur les ´tats. La figure 2.1 donne des variantes d’automates pour la for- emule GF p ∧ GF q. Les ensembles ´tiquetant les ´tats et les transitions sp´cifient e e el’appartenance ` un ensemble d’acceptation. Ici, nous avons deux ensembles ad’acceptation. Nous pouvons d´j` remarquer que les deux automates du haut easont les plus concis et montrer qu’il n’est pas possible d’obtenir un automatea` un ´tat en posant les conditions d’acceptation sur les ´tats. Malgr´ les appa- e e erences, l’automate en haut ` droite est de loin le meilleur : il est d´terministe et a en’a que 4 transitions. L’automate en haut et au milieu a en r´alit´ 8 transitions. e eEn effet, une transition ´tiquet´e par une expression bool´enne repr´sente au- e e e etant de transitions que l’expression a de solutions. Si on g´n´ralise la formule e e` GF p1 ∧ · · · ∧ GF pn , les automates peuvent avoir de 1 ` 2n ´tats, de 2n ` 22na a e atransitions. Cet exemple illustre le fait que le choix de la variante d’automatejoue un rˆle important dans les m´thodes de traduction. L’utilisation abusive o ed’expressions bool´ennes peut s’av´rer un facteur agravant pour la v´rification e e epar la multiplication des transitions. Elle est cependant utile pour donner unerepr´sentation graphique ou textuelle simple et concise d’un automate. Afin ede limiter l’explosion combinatiore du nombre d’´tats et de transitions dans le eprocessus d’une v´rification, une solution est de ne construire les ´l´ments de e eel’automate qu’` la demande ; une autre solution est d’utiliser des repr´sentations a esymboliques telles que les BDD. Dans le cadre de la v´rification probabiliste, nous serons amen´ ` prendre en e eacompte plusieurs qualit´s d’un automate : la non-ambigu¨ e et la s´paration. La e ıt´ enon-ambigu¨ e g´n´ralise la notion de d´terministe : tout mot accept´ par un au- ıt´ e e e etomate non ambigu est la trace d’un seul chemin accept´. La s´paration indique e eque les ´tats d’un automate acceptent des langages disjoints. Dans la figure 2.1, eles deux automates de droite sont non-ambigus et s´par´s, celui de gauche est e enon-ambigu et celui au milieu en haut est s´par´. Remarquons qu’avec un seul e eensemble d’acceptation, il n’est pas possible de produire un automate s´par´ e epour la formule GF p ∧ GF q. Ceci montre encore une fois l’importance du choixdu type d’automate pour traduire une formule.D´finition 2.2 Soit A = (S, S0 , T, α, β, λ, Acc) un automate ` transitions. e a – A est non ambigu si tout mot infini accept´ par A est la trace d’un chemin e unique accept´ par A. e – A est s´par´ si les ´tats de l’automate acceptent des langages disjoints : e e e ∀s, s ∈ S : s = s ⇒ L(A, s) ∩ L(A, s ) = ∅.2.2.2 Construction globale Les premi`res traductions d’une formule LTL vers un automate reposent esur un mˆme principe : un ensemble el(f ) caract´rise les formules ´l´mentaires e e ee
  12. 12. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 9impliqu´es dans la v´rification de la formule f , un ´tat est un vecteur de boo- e e el´ens s : el(f ) → {0, 1} donnant des valeurs de v´rit´ aux formules de el(f ) et e e eles transitions sont d´finies pour respecter la s´mantique de LTL. L’automate e eproduit est ´tiquet´ sur les ´tats et a aussi des conditions d’acceptations sur e e eles ´tats. Nous proposons d’en donner une version couramment utilis´e pour e ela v´rification symbolique [9] et montrerons comment en modifiant l´g`rement e e ela d´finition de el(f ), on obtient une construction produisant des automates ` e atransitions.Construction d’un automate ` ´tats. Dans les constructions classiques, a el’ensemble des formules ´l´mentaires el(f ) est compos´ des propositions ´l´men- ee e eetaires, des sous-formules de f du type X g et des formules X (gU h) o` gU h est uune sous-formule de f . Un ´tat est un vecteur de bool´ens s : el(f ) → {0, 1} et la e erestriction de s ` l’ensemble AP des propositions ´l´mentaires d´finit une fonc- a ee etion d’´tiquetage sur des ´tats. Pour construire la relation de transitions, nous e eavons besoin de d´finir pour chaque ´tat la fonction sat de satisfaction d’une e eformule. Intuitivement, sat(s)(g) indique si la trace de tout chemin acceptantde source s satisfait la formule g. Cette relation est d´finie inductivement pour etoute sous-formule de f par – sat(s)(g) = s(g) si g ∈ el(f ), – sat(s)(¬g) = ¬sat(s)(g), – sat(s)(g ∧ h) = sat(s)(g) ∧ sat(s)(h), – sat(s)(gU h) = sat(s)(h) ∨ (sat(s)(g) ∧ sat(s)(X (gU h))) Les transitions entre deux ´tats s et s sont pos´es pour respecter l’´galit´ e e e es(X g) = sat(s )(g) pour toutes formules X g de el(f ). Enfin les conditionsd’acceptations sont d´finies pour s’assurer que les sous-formules du type gU h en’acceptent pas des s´quences o` h n’est jamais v´rifi´. Ainsi pour chaque sous- e u e eformule gU h, on d´finit un ensemble d’acceptation contenant les ´tats s tels que e esat(s)(h) ∨ ¬sat(s)(gU h) = 1. Les ´tats initiaux sont ceux v´rifiant s(f ) = 1. e eProposition 2.3 Soit f une formule LTL sur AP . Soit sub(f ) l’ensembledes sous-formules de f . Posons el(f ) = AP ∪ {X (gU h)|gU h ∈ sub(f )} ∪{X (g)|X (g) ∈ sub(f )}. L’automate ` ´tats d´fini par : ae e – S = {s : el(f ) → {0, 1}}, – S0 = {s|sat(f )(s) = 1}, – T = {s → s |∀X g ∈ el(f ) : s(X g) = sat(s )(g)}, – ∀s ∈ S, ∀p ∈ AP , λ(s)(p) = s(p), – Acc = {Acc(gU h)|gU h ∈ sub(f )} avec Acc(gU h) = {s ∈ S|sat(s)(h) ∨ ¬sat(s)(gU h) = 1},accepte les mots infinis satifaisant la formule f .Exemple 1 Construisons l’automate pour la formule f = pU q. L’ensembledes formules ´l´mentaires est el(f ) = {p, q, X (pU q)}. Les ´tats de l’automate ee esont donc des triplets de bool´ens. Dans une premi`re ´tape, nous ´valuons e e e epour chaque ´tat la valeur de la fonction de satisfaction pour la formule pU q. eCe calcul permet de d´terminer compl´tement la relation de transition de l’au- e etomate : les ´tats v´rifiant pU q ont pour successeurs tous les ´tats v´rifiant e e e e
  13. 13. 10 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE s sat(s) acceptation p q X (pU q) pU q q ∨ ¬(pU q) 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 Tab. 2.1 – Calcul de l’automate (` ´tats) pour la formule pU q ae !p !q , {pUq} !p !q , {pUq} !X(pUq) X(pUq) p !q , {} X(pUq) p !q , {pUq} !X(pUq) !p q , {pUq} !p q , {pUq} !X(pUq) X(pUq) pq , {pUq} pq , {pUq} !X(pUq) X(pUq) Fig. 2.2 – Automate (` ´tats) pour la formule pU q aeX (pU q) et ceux ne v´rifiant pas pU q ont pour successeurs les autres ´tats. e eDans une deuxi`me ´tape, nous calculons la valeur de la fonction de satisfac- e etion pour la formule q ∨ ¬(pU q). Celle-ci nous donne les ´tats appartenant ` e al’ensemble d’acceptation associ´ ` la formule pU q. Finalement nous d´signons ea eles ´tats v´rifiant pU q comme ´tats initiaux. Le tableau 2.1 donne les r´sultats e e e edes calculs n´cessaires ` la construction de l’automate et la figure 2.2 donne la e arepr´sentation graphique de l’automate. eConstruction d’un automate ` transitions. Ma construction est une va- ariante de cette construction classique. J’ai choisi comme formules ´l´mentaires eed’une formule f , la formule f , les sous-formules du type gU h et les formules gtelles que X g est une sous-formule de f . Notons elT (f ) cet ensemble de fonc-tions ´l´mentaires. La fonction de satisfaction sat d’une formule est d´finie pour ee etoute ´tiquette a ∈ 2AP et tout ´tat destination s . Intuitivement, satT (a, s )(g) e eindique si la trace d’un chemin acceptant commen¸ant par une transition ´ti- c equet´e par a et de destination s v´rifie la formule g. Cette relation est d´finie e e e
  14. 14. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 11inductivement par – satT (a, s )(X g) = s (g), – satT (a, s )(p) = a(p) si p ∈ AP , – satT (a, s )(¬g) = ¬satT (a, s )(g), – satT (a, s )(g ∧ h) = satT (a, s )(g) ∧ satT (a, s )(h), – satT (a, s )(gU h) = satT (a, s )(h) ∨ (satT (a, s )(g) ∧ satT (a, s )(X (gU h))) a Une transition s → s doit v´rifier s(g) = satT (a, s )(g) pour toute formule g ede elT (g). Notez que la donn´e d’un ´tiquetage et d’un ´tat destination d´finit e e e eenti`rement l’´tat source de la transition. Les conditions d’acceptation sont e ed´finies sur les transitions de mani`re analogue ` la construction pr´c´dente. e e a e ePour chaque sous-formule gU h, on d´finit un ensemble d’acceptation contenant e ales transitions s → s tel que satT (a, s )(h) ∧ ¬s(gU h) = 1. Les ´tats initiaux esont ceux v´rifiant s(f ). eProposition 2.4 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble dessous-formules de f . Posons elT (f ) = {f } ∪ {gU h|gU h ∈ sub(f )} ∪ {g|X (g) ∈sub(f )}. L’automate ` transitions d´fini par : a e – S = {s : elT (f ) → {0, 1}}, – S0 = {s|s(f ) = 1}, a – T = {s → s |∀g ∈ elT (f ) : s(g) = sat T (a, s )(g)}, a – Acc = {Acc(gU h)|gU h ∈ sub(f )} avec Acc(gU h) = {s → s |sat T (a, s )(h)∨ ¬s(gU h) = 1},accepte les mots infinis satifaisant la formule f .Exemple 2 Construisons l’automate ` transitions pour la formule f = pU q. aL’ensemble des formules ´l´mentaires est elT (f ) = {pU q}. Le codage des ´tats ee ede l’automate se r´sume ` un bool´en. Dans une premi`re ´tape, nous ´valuons e a e e e epour chaque valeur d’´tiquette a et chaque ´tat destination s , la valeur de la e efonction de satisfaction pour la formule pU q. Ce calcul permet de d´terminer ecompl`tement les ´tats sources s des transitions ` partir de l’´tiquette a et de la e e a edestination s . Dans une deuxi`me ´tape, nous calculons la valeur de la fonction e ede satisfaction pour la formule q ∨ ¬(pU q). Celle-ci nous donne les transitionsappartenant ` l’ensemble d’acceptation associ´ ` la formule pU q. Finalement a e anous d´signons les ´tats v´rifiant pU q comme ´tats initiaux. Le tableau 2.2 e e e edonne les r´sultats des calculs n´cessaires ` la construction de l’automate et la e e afigure 2.3 donne ` gauche la repr´sentation graphique de l’automate. a ePropri´t´s des automates. Les deux constructions sont extrˆmement si- e e emilaires et pourtant l’automate ` transitions est toujours plus petit que l’au- atomate ` ´tats. En effet remarquons que les ensembles de fonctions ´l´men- a e eetaires des deux constructions servant ` coder les ´tats sont li´s par l’identit´ a e e eel(f ) ∪ {f } = X (elT (f )) ∪ AP ; ainsi le facteur de r´duction est de 2|AP | ou e2|AP |−1 suivant que f est dans el(f ). Par exemple, l’automate ` transitions a(figure 2.3) de la formule rU (pU q) ` 4 ´tats et 32 transitions (12 transitions a e
  15. 15. 12 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE a s s = satT (a, s ) acceptation p q pU q pU q q ∨ ¬(pU q) 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 Tab. 2.2 – Calcul de l’automate ` transitions pour la formule pU q a !q,{pUq} !p!q,{f,g} !(pUq) !q,{f,g} f.!g !r.!p.!q,{f,g} !f.!g !p.!q,{pUq} q,{f,g} q,{pUq} !r.!q,{f,g} q,{f,g} p.!q,{g} pUq !f.g q,{f,g} f.g p.!q,{} p.!q,{f} q,{pUq} !q.r,{f} p.!q,{f} q,{f,g} r.!p.!q,{g}Fig. 2.3 – Automates ` transitions pour les formules f = pU q et g = rU (pU q) a
  16. 16. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 13symboliques) alors que l’automate ` ´tats correspondant a 32 ´tats et 256 tran- ae esitions. La proposition suivante donne l’ordre de grandeur des tailles des auto-mates en fonction des caract´ristiques de la formule. eProposition 2.5 Soit f une formule LTL sur AP . Notons T emp(f ) le nombred’op´rateurs X et U contenus dans la formule f . L’automate ` ´tats (produit par e aela construction classique) a au plus 2|AP | ·2Temp(f ) ´tats et 22·|AP | ·2Temp(f ) tran- esitions. L’automate ` transitons a au plus 2Temp(f )+1 ´tats et 2|AP | · 2Temp(f )+1 . a e Malgr´ l’am´lioration apport´e ` la construction classique, nous verrons dans e e e ala partie exp´rimentation (section 2.2.4) que cette construction est largement esupplant´e par les contructions locales. Cependant, l’automate produit poss`de e edes propri´t´s bien adapt´es ` la v´rification probabiliste (voir la section 2.4). ee e a eD’une part, l’automate est d´terministe en arri`re : un ´tat n’est destination e e eque d’une transition pour une valeur d’´tiquette donn´e. De plus, l’automate est e enon-ambigu. D’autre part, l’automate est s´par´ : deux ´tats distincts de l’au- e e etomate reconnaissent des langages disjoints. Ces propri´t´s sont aussi v´rifi´es ee e epar les automates produits par la construction classique.Proposition 2.6 Les deux constructions produisent des automates non-ambiguset s´par´s. e eRepr´sentation symbolique. Les constructions globales se prˆtent bien ` e e ades repr´sentations symboliques de l’automate. En effet, les ´tats et les transi- e etions sont des vecteurs de bool´ens, et les diff´rentes composantes de l’automate e esont des ensembles de vecteurs de bool´ens repr´sentables par des fonctions boo- e el´ennes. De telles repr´sentations sont couramment utilis´es pour la v´rification e e e esymbolique ` base de BDD. Elles se caract´risent par leur efficacit´ ` r´soudre a e ea ede nombreux probl`mes de v´rification de grande taille, mais aussi par leur sim- e eplicit´ de mise en œuvre. On pourra trouver dans [9] une version symbolique ede la construction classique, ainsi que des algorithmes de v´rification. Mon- etrons que notre technique s’applique aussi ` la construction d’un automate ` a atransitions. Soit f une formule LTL. Consid´rons deux tableaux de variables ebool´ennes now et next index´s par les formules de elT (f ), et identifions les e epropositions ´l´mentaires ` des variables bool´ennes. Nous coderons la fonction ee a ecaract´ristique d’un ensemble d’´tats par une expression sur les variables now e eet celle d’un ensemble de transitions par une expression sur les trois jeux de va-riables. Interpr´tons toute sous-formule de g, comme une expressions bool´enne e eΦ(g) sur les variables now , next et les propositions ´l´mentaires : ee – Φ(X g) = next[g], – Φ(p) = p si p ∈ AP , – Φ(¬g) = ¬Φ(g), – Φ(g ∧ h) = Φ(g) ∧ Φ(h). – Φ(gU h) = now [gU h]. L’automate ` transitions traduisant une formule LTL f est simplement d´fini a epar les expressions bool´ennes suivantes : e – L’ensemble des ´tats initiaux : S0 = now[f ], e
  17. 17. 14 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE – La relation de transition : T = (now[gU h] ⇔ (Φ(h) ∨ (Φ(g) ∧ next[gU h])))∧ (now[g] ⇔ Φ(g)) gU h∈el(f ) g∈el(f ) – Les ensembles d’acceptation : ∀gU h ∈ elT (f ) : Acc[gU h] = ¬now[gU h] ∨ Φ(h) L’automate construit est rigousement identique ` celui produit par la construc- ation globale. Cependant sa formulation est bien plus simple pour construire etcoder un automate ` l’aide de BDD. Pour obtenir une repr´sentation explicite a ede l’automate, il suffit de d´velopper les fonctions bool´ennes. Cette op´ration e e en’est int´ressante que dans un but p´dagogique. En pratique, toutes les op´ra- e e etions utiles peuvent ˆtre r´alis´es sur la repr´sentation symbolique, ´vitant ainsi e e e e eune explosion combinatoire pr´matur´e des algorithmes de v´rification. e e eExemple 3 La repr´sentaton symbolique de l’automate traduisant la formule eg = rU (pU q) est : – S0 = now[g], – T = (now[g] ⇔ (now[pU q] ∨ (r ∧ next[g]))) ∧ (now[pU q] ⇔ (q ∨ (p ∧ next[pU q]))), – Acc[g] = ¬now[g] ∨ now[f ] et Acc[pU q] = ¬now[pU q] ∨ q. La figure 2.3 donne une repr´sentation graphique de l’automate. Cependant ecette repr´sentation explicite n’est pas n´cessaire pour r´aliser des op´rations e e e esur celui-ci. A partir de l’expression des ´tats initiaux, nous d´duisons que l’au- e etomate a deux ´tats initiaux : [g, pU q], [g, ¬(pU q)]. Les transitions successeurs ed’un ´tat pour une valeur des propositions sont obtenues par une op´ration e ede substitution sur la fonction T . Consid´rons l’´tat s = [g, pU q], et l’´ti- e e equette donn´e par p = 1, q = r = 0. En substituant les valeurs de l’´tat s e e(now[g] = now[pU q] = 1) et les valeurs des propositions, on obtient la liste des´tats successeurs de s sous la forme d’une expression bool´enne sur les variablese enext. Le r´sultat est l’expression next[pU q] et donc s a deux ´tats successeurs : e e[g, pU q], [¬g, pU q]. L’appartenance des transitions aux ensembles d’acceptationest obtenue en ´valuant les expressions bool´ennes Acc[g], Acc[pU q]. Ainsi les e edeux transitions sont dans Acc[g] et ne sont pas dans Acc[pU q].Simplification de l’automate La construction globale peut ˆtre l´g`rement e e eam´lior´e par trois techniques : e e 1. Ne garder que les ´tats accessibles, e 2. Eliminer les ´tats ne reconnaissant aucun mot, e 3. R´duire l’ensemble des ´tats initiaux ` un ´tat. e e a eLes deux premi`res techniques r´duisent le nombre d’´tats et de transitions de e e el’automate et peuvent ˆtre r´alis´es directement sur sa repr´sentation symbo- e e e elique (voir [9]). Les ´tats de l’automate seront alors symboliquement repr´sent´s e e epar une expression bool´enne sur les variables N ow. Dans la derni`re technique, e e
  18. 18. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 15 g p+q+r !q,{f,g} q !r.!p.!q,{f,g} !f.!g q+r !r.!q,{f,g} q,{f,g} !f.g q,{f,g} f.g p.!q,{f} !q.r,{f} p.!q,{f} q,{f,g} r.!p.!q,{g} Fig. 2.4 – Automate ` transitions simplifi´ pour la formule rU (pU q) a enous ajoutons ` l’automate un ´tat identifi´ par f , la formule ` traduire. Cet a e e a´tat sera l’unique ´tat initial, il n’aura pas de transition entrante et les transi-e e ations sortantes f → s devront v´rifier satT (a, s )(f ) = 1 ; ces derni`res pourront e eˆtre repr´sent´es symboliquement par une expression sur les propositions ´l´-e e e eementaires et les variables next. D’autre part, si f n’est pas de la forme gU h,elle n’est plus consid´r´e comme une formule ´l´mentaire. La figure 2.4 donne ee eele r´sultat des simplifications sur l’automate repr´sentant la formule rU (pU q). e e2.2.3 Construction locale Le d´faut des constructions globales est qu’elles produisent imm´diatement e eun automate de taille exponentielle par rapport ` la taille de la formule. L’exemple ale plus frappant est la formule X n p (i.e. X . . . X p avec n op´rateurs X ). Cette eformule indique que la ni`me action d’un comportement doit v´rifier la propo- e esition p. Intuitivement, il suffit d’un automate ` transitions ` n + 2 ´tats pour a a ecoder cette formule. Les constructions globales produisent pour cette formuledes automates de taille exponentielle, mˆme apr`s simplification. En 1995, R. e eGerth, D. Peled, M. Y. Vardi et P. Wolper proposent un nouveau type de laconstruction [37]. L’id´e consiste ` partir de la formule ` v´rifier, et ` la d´- e a a e a evelopper sous la forme d’une disjonction de conjonction de formules ne faisantapparaˆ que des propositions ´l´mentaires et des formules du type X g. Les ıtre ee´tats initiaux sont donn´s par les conjonctions du d´veloppement de la formulee e einitiale ; les termes des conjonctions portant sur les propositions ´l´mentaires eed´finissent les propri´t´s ` v´rifier dans l’´tat, et ceux portant sur les formules e ee a e edu type X g servent ` construire les ´tats successeurs. La construction continue a een d´veloppant les formules associ´es aux formules repr´sentant les ´tats suc- e e e ecesseurs. Cette construction locale de l’automate d’une formule ne produit passyst´matiquement les ´tats correspondant ` toutes les combinaisons possibles e e ades formules ´l´mentaires ; ceci rend cette construction int´ressante en pratique. ee eUn des points clefs de cette technique est comment capter les conditions d’ac-ceptation relative aux formules du type gU h. Dans cette partie, nous allonsrappeler les m´canismes de la construction locale de l’article fondateur [37], et emontrer comment nous avons adapt´ et simplifi´ cette technique pour produire e edes automates ` transitions. a Pour que les constructions locales soient applicables, les formules sont mises
  19. 19. 16 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREsous une forme positive ; en d’autres termes, l’op´rateur de n´gation ne peut e eˆtre appliqu´ qu’aux propositions ´l´mentaires. A cette fin, nous introduisonse e eel’op´rateur dual du until V : gV h = ¬(¬gU ¬h). Lors du d´veloppement d’une e eformule, nous sommes amen´s ` ´liminer les formules du type gU h et gV h. Les e ae´liminations sont r´alis´es grˆce aux identit´s :e e e a e gU h = h ∨ (g ∧ X (gU h)) gV h = (g ∧ h) ∨ (h ∧ X (gV h)) Bien que ces assertions semblent similaires, elles se distinguent par le faitque l’identit´ relative ` la formule gU h ne tient pas compte de la propri´t´ e a eed’in´vitabilit´ de h, alors qu’aucune propri´t´ de ce type n’est n´cessaire pour e e ee ela validit´ de la formule gV h. Ainsi dans les deux constructions, nous associe- erons un ensemble d’acceptation ` chaque sous-formule du type gU h. Les deux aconstructions locales se distingueront par le type d’automates produits, et aussisur la mani`re de capter les conditions d’acceptation. eConstruction d’un automate ` ´tats Nous allons donner une version sim- aeplifi´e de la construction originale [37], captant autant que possible les optimisa- etions propos´es par les concepteurs. Le point clef de cette construction concerne ela mani`re de d´velopper une formule LTL. Ce d´veloppement ne produit pas e e eune formule LTL, mais une expression symbolique repr´sentant des ensembles ed’ensembles de symboles. Les symboles utilis´s sont : e symbole(f ) = AP ∪ {¬p|p ∈ AP } ∪ {now [gU h]|gU h ∈ sub(f )} ∪ {now [h]|gU h ∈ sub(f )} ∪ {next[gU h]|gU h ∈ sub(f )} ∪ {next[gV h]|gV h ∈ sub(f )} ∪ {next[g]|X (g) ∈ sub(f )} Les ´tats de l’automate produit sont des sous-ensembles de symboles. Les esymboles now [gU h] et now [h] sont utilis´s pour capter les conditions d’accep- etation : un ´tat ne contenant pas le symbole now [gU h] ou contenant le symbole enow [h] est un ´tat de l’ensemble d’acceptation associ´ ` la formule gU h. A e e al’exception des formules gU h, les r`gles pour d´velopper une formule sont celles e eattendues. Dans les expressions suivantes, Φ(g) est le r´sultat du d´veloppe- e ement d’une formule, les op´rateurs · et + sont des op´rateurs d’union : · est e el’union sur les ensembles de symboles et + celui sur les ensembles d’ensemblesde symboles : – Φ(p) = p si p ∈ AP , – Φ(¬p) = ¬p si p ∈ AP , – Φ(g ∧ h) = Φ(g) · Φ(h), – Φ(g ∨ h) = Φ(g) + Φ(h), – Φ(X g) = next[g], – Φ(gU h) = now [h] · Φ(h) + now [gU h] · Φ(g) · next[gU h],
  20. 20. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 17 – Φ(gV h) = Φ(g) · Φ(h) + Φ(h) · next[gV h].A partir de la d´finition de l’ensemble des symboles et la fonction de d´velop- e epement d’une formule, la d´finition de l’automate d’une formule propos´e dans e e[37] est r´sum´e par la proposition suivante : e eProposition 2.7 Soit f une formule LTL sur AP . L’automate ` ´tats d´fini ae epar : – S = {s ⊆ symbole(f )}, – S0 = Φ(f ), – T = {s → s |s ∈ next[h]∈s Φ(h)}, – ∀s ∈ S, λ(s) = p∈AP ∩s p ∧ p∈AP :¬p∈s ¬p, – Acc = {Acc(gU h)|gU h ∈ sub(f )} avec Acc(gU h) = {s ∈ S|now [h] ∈ s ∨ now (gU h) ∈ s},accepte les mots infinis satisfaisant la formule f .Exemple 4 Calculons l’automate ` ´tats pour la formule g = rU (pU q). No- a etons que la formule est d´j` sous une forme positive. Posons f = pU q. L’au- eatomate a deux ensembles d’acceptation Acc = {f, g}. D´veloppons la formule eg: Φ(g) = now [f ] · Φ(f ) + now [g] · r · next[g] = now [f ] · now [q] · q + now [f ] · p · next[f ] + now [g] · r · next[g] L’automate ` ´tats poss`de donc trois ´tats initiaux : ae e e S0 = {{now [f ], now [q], q}, {now [f ], p, next[f ]}, {now [g], r, next[g]}}Notons que le premier ´tat n’a pas de symboles next ; cet ´tat a ∅ comme ´tat e e esuccesseur. Le calcul des successeurs du deuxi`me ´tat n´cessite le d´veloppe- e e e ement de la formule f : Φ(f ) = now [q] · q + now [f ] · p · next[f ]Remarquons que ce calcul produit un nouvel ´tat {now [q]} dont l’unique succes- eseur est ∅. D’autre part, le troisi`me ´tat initial a pour successeur les trois ´tats e e einitiaux. La figure 2.5 donne une repr´sentation graphique de l’automate r´sul- e etant. Les concepteurs de cette m´thode ont propos´ de nombreuses heuristiques e epour simplifier l’automate, Par exemple, il est possible de fusionner les ´tats e{now [f ], now [q], q} et {now [q], q} en appliquant la r`gle suivante : si now [gU h] eet now [h] appartiennent ` un ´tat s, retirer de s, now [gU h]. a eConstruction d’un automate ` transitions La construction que j’ai pro- apos´e dans [14] repose sur deux simplifications de la construction pr´c´dente : e e e(1) le d´veloppement d’une formule LTL produit un ensemble de transitions ; (2) enous avons ´cart´ le symbole now [h] dans le d´veloppement des formules gU h. e e eLa simplification (1) est naturelle quand l’intention est de produire des auto-mates ` transitions. La simplification (2) traduit le fait que la seule information a
  21. 21. 18 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE r p q now[g] , {f} now[f] , {g} , {f,g} now[q] next[g] next[f] q now[f] , {f,g} true , {f,g} now[q] Fig. 2.5 – Automate ` ´tats pour la formule g = rU (pU q) aeutile dans le d´veloppement d’une formule gU h est : est-ce que la propri´t´ e eed’in´vitabilit´ restera ` v´rifier ? Plutˆt qu’utiliser le symbole now [gU h], nous e e a e opr´f´rons le symbole nacc[gU h] indiquant clairement la non acceptation d’une eetransition. L’ensemble des symboles employ´s pour le d´veloppement d’une for- e emule est donc : symbole T (f ) = AP ∪ {¬p|p ∈ AP } ∪ {nacc[gU h]|gU h ∈ sub(f )} ∪ {next[gU h]|gU h ∈ sub(f )} ∪ {next[gV h]|gV h ∈ sub(f )} ∪ {next[g]|X (g) ∈ sub(f )} Les ´tats de l’automate ` transitions sont des ensembles de sous-formules e ade la formule. Le calcul des transitions successeurs d’un ´tat est obtenu en d´- e eveloppant les sous-formules repr´sentant l’´tat. Dans les expressions suivantes, e enotez la modification de la r`gle relative aux formules gU h : e – ΦT (p) = p si p ∈ AP , – ΦT (¬p) = ¬p si p ∈ AP , – ΦT (g ∧ h) = ΦT (g) · ΦT (h), – ΦT (g ∨ h) = ΦT (g) + ΦT (h), – ΦT (X g) = next[g], – ΦT (gU h) = ΦT (h) + nacc[gU h] · ΦT (g) · next[gU h], – ΦT (gV h) = ΦT (g) · ΦT (h) + ΦT (h) · next[gV h].Un point essentiel de la m´thode est que les symboles peuvent ˆtre manipul´s e e ecomme des variables bool´ennes, les op´rateurs + et · comme les op´rateurs e e ebool´ens ∨ et ∧. Notez que l’expression bool´enne repr´sentant le d´veloppe- e e e ement d’une formule peut toujours s’´crire sous la forme disjonctive-conjonctive eo` les variables du type next et nacc apparaissent positivement. L’int´rˆt de u eece point de vue est que ces expressions acceptent les simplifications classiquesdes expressions bool´ennes, et ainsi il est possible de r´duire naturellement le e enombre de transitions issues d’un ´tat. A partir de la d´finition du d´veloppe- e e ement d’une formule, la d´finition donnant l’automate ` transitions est donn´e e a epar la proposition suivante :
  22. 22. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 19 r,{f,g} {g} p,{f} q,{f,g} {f} q,{f,g} {} true,{f,g} p,{f} Fig. 2.6 – Automate ` transitions pour la formule g = rU (pU q) aProposition 2.8 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble dessous-formules de f . Posons elT (f ) = {f } ∪ {gU h|gU h ∈ sub(f )} ∪ {g|X (g) ∈sub(f )} et Acc(f ) = {Acc(gU h)|gU h ∈ sub(f )}. Pour tout sous-ensemble deformules s de elT (f ), consid´rons la d´composition suivante de g∈s ΦT (g) : e e ΦT (g) = K· nacc[h] · next[h] g∈s (K,N acc,N ext)∈Terme s h∈N acc h∈N ext APo` Terme s ⊆ 22 × {gU h|gU h ∈ sub(f )} × elT (f ). L’automate ` transitions u ad´fini par : e – S = {s ⊆ elT (f )}, – S0 = {f }, K,acc – T = {s −→ s |(K, Acc(f ) acc, s ) ∈ Terme s }, AP K,acc – λ : T → 22 est donn´ par λ(s −→ s ) = K, e K,acc – Acc = Acc(f ) avec Acc(gU h) = {s −→ s ∈ T |gU h ∈ acc},accepte les mots infinis satisfaisant la formule f .Exemple 5 Calculons l’automate ` transitions pour la formule g = rU (pU q). aPosons f = pU q. L’automate a un ´tat initial {g}. Les transitions successeurs esont obtenues en d´veloppant la formule g : e ΦT (g) = Φ(f ) + nacc[g] · r · next[g] = q + nacc[f ] · p · next[f ] + nacc[g] · r · next[g] q,{f,g} L’´tat initial est la source de trois transitions successeurs : {g} −→ ∅, e p,{g} r,{f }{g} −→ {f }, {g} −→ {g}. La construction de l’automate continue avec led´veloppement de la formule f : e ΦT (f ) = q + nacc[f ] · p · next[f ]Ce calcul produit deux nouvelles transitions mais pas de nouveau ´tat. La figure e2.6 donne la repr´sentation graphique de l’automate r´sultant. e e
  23. 23. 20 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRESimplification de l’automate Nous pouvons appliquer 3 types de simplifi-cations, chacune compatible avec la construction ` la demande : a 1. Quand deux ´tats ont les mˆmes expressions g∈s ΦT (g) repr´sentant la e e e liste de leurs transitions successeurs, ces deux ´tats peuvent ˆtre fusionn´s. e e e Cette simplification est simple ` impl´menter quand on utilise des BDD. a e En effet, il suffit d’identifier tout ´tat par l’expression bool´enne de ses e e transitions successeurs. 2. Il existe de nombreuses mani`res d’´crire une expression sous la forme e e disjonctive conjonctive. Celle qui donne le meilleur r´sultat consiste ` sp´- e a e cialiser le calcul des transitions successeurs pour une valeur donn´e des e propositions ´l´mentaires. Il suffit de substituer ces valeurs dans l’expres- ee sion et d’en calculer les impliquants premiers. Notez que cette technique est bien adapt´e pour les m´thodes de v´rification ` la vol´e. En effet, pour e e e a e construire les transitions successeurs d’un ´tat (s, q) du produit synchro- e nis´ d’un syst`me et de l’automate d’une formule, nous devons construire e e a pour toute transition s −→ s du syst`me, tous les successeurs de l’´tat q e e pour la valeur a des propositions ´l´mentaires. ee 3. Avant de lancer la construction de l’automate, il est parfois utile de sim- plifier la formule afin de r´duire autant que possible le nombre de sous e formules ´l´mentaires. eeLa table 2.3 donne quelques r´sultats exp´rimentaux sur l’influence des optimi- e esations. Nous avons appliqu´ la construction locale pour toutes les combinaisons epossibles d’optimisation, sur une centaine de formules tir´es al´atoirement dont e ela taille varie de 15 ` 20. Les colonnes Automate donnent la taille cumul´e a edes automates ; les colonnes Produit synchronis´ donnent la taille cumul´e des e eproduit synchronis´s des automates des formules avec un syst`me comprenant e e200 ´tats. Nous noterons que les simplifications (1) et (3) r´duisent la taille de e el’automate, alors que la simplification (2) a pour objectif de rendre l’automateplus d´terministe et ainsi de r´duire le nombre de transitions du produit syn- e echronis´. Les mˆmes exp´rimentations appliqu´es ` 39 formules ”classiques” de e e e e aLTL (voir la table 2.3) aboutissent aux mˆmes conclusions. e2.2.4 Exp´rimentations e La conception de nouvelles constructions d’automates traduisant une for-mule LTL reste encore un sujet de recherche tr`s actif [24, 76, 73, 35, 38, 80, 74, e78, 67, 34]. Il est naturel de se demander si la construction que j’ai propos´e en e1999, est encore d’actualit´. Nous ne pouvons donner ` cette question qu’une e ar´ponse partielle. En effet, la comparaison d´pend en grande partie de la qualit´ e e edes outils qui les impl´mentent. Par exemple, l’outil prototype Modella illus- etrant les travaux de [74] n’est pas suffisamment fiable pour ˆtre pris en compte. eEnfin, d’autres outils ne sont plus disponibles. Nous avons donc r´duit notre e´tude comparative aux outils suivants :e – Spot [25] est une biblioth`que C++ int´grant mes deux constructions e e d’automates, avec leurs optimisations. Nous d´signerons par Spot (LA- e
  24. 24. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 21 Optimisation Automate Produit synchronis´ e Etats Transitions Etats Transitions rien 1162 4458 231971 11344438 (1) 1023 3611 204247 9601659 (2) 1162 4458 229575 8509410 (3) 1056 4000 211001 10170928 (1)+(2) 1023 3611 202877 7544852 (1)+(3) 961 3331 192050 8790687 (2)+(3) 1056 4000 208817 7563089 (1)+(2)+(3) 961 3331 190684 6831836Tab. 2.3 – Influence des optimisations sur 100 formules tir´es al´atoirement e e Optimisation Automate Produit synchronis´ e Etats Transitions Etats Transitions rien 250 1735 46387 3360454 (1) 189 622 37200 2271545 (2) 250 1735 46110 1951413 (3) 217 1599 39788 2816419 (1)+(2) 189 622 37174 1580669 (1)+(3) 165 527 32400 1865274 (2)+(3) 217 1599 39511 1590360 (1)+(2)+(3) 165 527 32374 1310746 Tab. 2.4 – Influence des optimisations sur 39 formules classiques

×