• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Jmc habile
 

Jmc habile

on

  • 886 views

 

Statistics

Views

Total Views
886
Views on SlideShare
886
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Jmc habile Jmc habile Document Transcript

    • 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
    • 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
    • ` 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
    • 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
    • 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
    • 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
    • 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
    • ` ´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 ,
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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],
    • 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
    • 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 :
    • 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
    • 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
    • 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
    • 22 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE CIM), l’outil utilisant la construction globale et par Spot (FM), celui bas´ sur la construction locale. e – Spin [48] est un des outils de r´f´rence pour la v´rification de syst`me. ee e e Il int`gre un module de construction d’automates bas´ sur la premi`re e e e construction locale [37], enrichi par des techniques de simplification d’au- tomates. L’automate produit est un automate ` ´tats n’ayant qu’un seul ae ensemble d’acceptation. – LBT est un programme de construction d’automates int´gr´ dans un outil e e de v´rification, l’outil Maria [65]. Il est bas´ sur la construction locale [37]. e e – Wring est un prototype illustrant les travaux de F. Sommenzi et R. Bloem. Il est bas´ sur [37], int`gre un module de simplification de la formule ` e e a traduire et un module de r´duction de l’automate construit. e – LTL2BA est un outil illustrant les travaux de P. Gastin et D. Oddoux [35, 67]. Cette construction passe par des automates alternants faibles pour produire l’automate d’une formule ; elle int`gre aussi un module e de simplification de la formule ` traduire et un module de r´duction de a e l’automate produit. L’outil g´n`re des automates ` transitions. e e a La table 2.5 donne les r´sultats exp´rimentaux de notre ´tude comparative e e edes outils. Celle-ci a ´t´ r´alis´e grˆce ` l’outil de test LBTT [79]. Nous avons ee e e a alanc´ les constructions sur 100 formules g´n´r´es al´atoirement dont la taille va- e e ee erie de 15 ` 20. Les colonnes Automate donnent la taille cumul´e des automates ; a eles colonnes Produit synchronis´ donnent la taille cumul´e des produits synchro- e enis´s des automates des formules avec un syst`me comprenant 200 ´tats. Notons e e eque la construction globale (Spot (LACIM)) n’est pas tr`s efficace. Pour devenir eint´ressante, la construction locale (LBT) doit int´grer des modules de simplifi- e ecation de formules et d’automates (SPIN, Wring). Les meilleures constructionssont celles produisant des automates ` transitions (Spot (FM), LTL2BA). Ce- apendant Spot (FM) se distingue de LTL2BA par le nombre de transitions duproduit synchronis´. Ces exp´rimentations prouvent que malgr´ sa simplicit´, e e e ela construction locale que j’ai propos´e en 1999, reste efficace en comparaison eavec les autres techniques. Une question int´ressante serait d’´valuer l’influence e edes techniques de r´duction d’automates de LTL2BA dans Spot (FM). Notons eque ces r´ductions se feraient aux d´triments du caract`re ` la demande de la e e e aconstruction locale. La table 2.6 donne les r´sultats exp´rimentaux lorsque les automates pro- e eduits par les outils sont transform´s en automates compatibles avec l’outil SPIN. eIl est surprenant de constater que les outils LTL2BA et Spot (FM) donnent en-core les meilleurs r´sultats. Nous aboutissons aux mˆmes conclusions lorsque e el’exp´rimentation est appliqu´ ` des formules classiques (voir les tables 2.5 et e ea2.8). Notez que nous avons int´gr´ l’outil Modella dans ces nouvelles exp´ri- e e ementations.2.3 Tester le vide d’un ω-automate Dans les m´thodes de v´rification ` base d’automates, on construit le produit e e asynchronis´ du syst`me M et de l’automate traduisant la n´gation de la formule e e e
    • 2.3. TESTER LE VIDE D’UN ω-AUTOMATE 23 Outils Automate Produit synchronis´ e Etats Transitions Etats Transitions Spot (LACIM) 2675 40207 535000 32386360 Spot (FM) 961 3331 190684 6831836 Spin 2044 13924 398617 27056967 LBT 6502 38241 1281565 81134772 Wring 1793 4917 356716 16767017 LTL2BA 1004 3591 200729 10310947Tab. 2.5 – Comparaison des outils de constructions sur 100 formules tir´es eal´atoirement e Outils Automate Produit synchronis´ e Etats Transitions Etats Transitions Spot (LACIM) 5016 80135 1002558 53598468 Spot (FM) 1196 4601 235994 8642998 Spin 2044 13924 398617 27056967 Wring 1967 5565 391470 18690241 LTL2BA 1175 4577 234870 12759396Tab. 2.6 – Comparaison des outils de constructions pour Spin sur 100 formulestir´es al´atoirement e e Outils Automate Produit synchronis´ e Etats Transitions Etats Transitions Spot (LACIM) 428 3872 84800 4580084 Spot (FM) 165 527 32374 1310746 Spin 277 1196 54200 3548935 LBT 844 5584 161040 12530060 Wring 276 1480 50986 3041195 LTL2BA 169 506 33200 1941344 Modella 283 867 55689 2119971Tab. 2.7 – Comparaison des outils de constructions d’automates sur 39 formulesclassiques
    • 24 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE Outils Automate Produit synchronis´ e Etats Transitions Etats Transitions Spot (LACIM) 993 11182 174791 8198966 Spot (FM) 222 904 43119 1813690 Spin 277 1196 54200 3548935 Wring 407 5339 52386 3112719 LTL2BA 205 624 40200 2480261 Modella 283 867 55689 2119971Tab. 2.8 – Comparaison des outils de constructions d’automates pour Spin sur39 formules classiquesa e` v´rifier. Ce produit synchronis´ est essentiellement le produit cart´sien des e edeux automates dans lequel on ne garde que les paires de transitions ´tiquet´es e epar le mˆme label ; d’un point de vue automate, il reconnaˆ pr´cis´ment les e ıt e ecomportements (ou les traces des comportements) du syst`me ne v´rifiant pas e ela formule f .D´finition 2.9 Soit M = S, S0 , TM , αM , βM , λM un syst`me. Soit A = e e Q, Q0 , TA , αA , βA , λA , Acc un automate ` transitions. Notons, la projection asur M (resp. la projection sur A) la fonction πM (resp. πA ) d´finie sur (S × eQ) ∪ (TM × TA ) par πM (zM , zA ) = zM (resp. πA (zM , zA ) = zA ). Le produitsynchronis´ de M et A est l’automate ` transitions M ⊗ A = S × Q, S0 × e aQ0 , T⊗ , α⊗ , β⊗ , λ⊗ , Acc ⊗ o` : u – T⊗ = {(tM , tA ) ∈ TM × TA | λM (tM ) = λA (tA )}, et – α⊗ et β⊗ sont d´finies par α⊗ (tM , tA ) = (αM (tM ), αA (tA )) et β⊗ (tM , tA ) = e (βM (tM ), βA (tA )), et – λ⊗ est la restriction de πM ` T⊗ , et a a −1 – Acc ⊗ est ´gal ` πA (Acc). e Notez que dans notre d´finition, le produit synchronis´ est un automate ` e e atransitions dont les ´tiquettes sont des transitions du syst`me ; ainsi cet auto- e emate reconnaˆ des mots infinis sur l’alphabet TM . Le produit synchronis´, le ıt esyst`me et l’automate sont li´s par l’´galit´ : e e e e L(M ⊗A) = P athω (M ) ∩ λ−1 (L(A)). Mo` L(M⊗A) est l’ensemble des mots infinis de transitions de M reconnus par le uproduit, P athω (M ) est l’ensemble des comportements infinis de M et λ−1 (L(A)) Mest l’ensemble des mots infinis de transitions dont la trace est accept´e par A. eAinsi le probl`me de la v´rification revient ` d´terminer si le langage L(M ⊗ e e a eA) est vide. Ce probl`me se ram`ne ` rechercher dans l’automate M ⊗ A un e e acycle contenant au moins une transition de chaque ensemble d’acceptation etaccessible ` partir d’un ´tat initial. Notons qu’il n’est pas essentiel de consid´rer a e etous les cycles de l’automate ; il est suffisant de rechercher une composantefortement connexe, accessible ` partir d’un ´tat initial et contenant au moins a eune transition de chaque ensemble d’acceptation.
    • 2.3. TESTER LE VIDE D’UN ω-AUTOMATE 25 La recherche de composantes fortement connexes est traditionnellement r´a- elis´e en appliquant l’algorithme de Tarjan [77, 81]. Cet algorithme est bas´ sur e eun parcours en profondeur. Il utilise deux ´tiquettes associ´es aux sommets par- e ecourus, NFNUMBER et LOWLINK : NFNUMBER donne un num´ro d’ordre ede la premi`re visite du sommet et LOWLINK est utilis´e pour caract´riser e e edes repr´sentants remarquables des composantes fortement connexes. Pendant ele parcours du graphe, les valeurs des NFNUMBER et LOWLINK sont misesa` jour. Quand un sommet v´rifiant NFNUMBER=LOWLINK est d´pil´, la e e ecomposante fortement connexe associ´e au sommet est trait´e et les sommets e eretir´s du graphe par un second parcours en se limitant aux sommets non effa- ec´s. Le d´faut de cet algorithme est qu’une composante fortement connexe doit e eˆtre compl`tement parcourue avant d’ˆtre trait´e. En particulier, l’algorithmee e e ene peut d´tecter un cycle acceptant ` la vol´e, c’est-`-dire arrˆter le calcul d`s e a e a e eque le graphe parcouru contient un comportement acceptant. Le nouvel algorithme pr´sent´ dans cette section est une simple variation e ede l’algorithme de Tarjan. La variable LOWLINK est remplac´e par une pile ede num´ros de visite des racines de composantes fortement connexes du graphe eparcouru. Nous stockons en plus dans cette pile les ensembles de conditions d’ac-ceptation contenues dans chaque composante. Pendant le parcours en profon-deur, la pile est mise ` jour et ` tout moment les composantes et leurs ensembles a ade conditions sont connus. L’algorithme d´tecte un comportement acceptant ` e ala vol´e, et le parcours est arrˆt´ d`s qu’une des composantes contient au moins e ee eune transition pour chaque condition d’acceptation. Une description de l’algorithme est donn´e figure 2.7. L’automate ` transi- e ations est cod´ par : e – S0 est l’´tat initial, e – ACC est l’ensemble des conditions d’acceptation, – RELAT ION ⊆ S × ACC × S d´finit la relation de l’automate. eNotez que nous avons limit´ notre ´tude ` un ´tat initial. Un algorithme traitant e e a eun ensemble d’´tats initiaux peut ˆtre facilement d´duit de notre algorithme. e e eD’autre part, les ensembles d’acceptation sont d´finis par un ´tiquetage des e earcs. Nous n’avons pas repr´sent´ les valeurs des propositions ´l´mentaires, car e e eecelles-ci ne sont pas significatives pour la d´tection d’un cycle acceptant. e L’algorithme utilise les donn´es suivantes pour la gestion du parcours et pour ela m´morisation de la pile des racines des composantes fortement connexes du egraphe parcouru : – N um donne le nombre de sommet du graphe parcouru ; il est utilis´ pour e initialiser le num´ro de visite d’un sommet lors de sa premi`re visite, e e – Hash est une table (de hachage) contenant des couples (node, integer) ; elle stocke les sommets parcourus avec le num´ro de visite. Un num´ro de e e visite ´gal ` z´ro signale un sommet parcouru, effac´ du graphe. e a e e – Root est une pile de couples (integer, accepting condition set) ; elle stocke les racines des composantes ainsi que les conditions d’acceptations conte- nues dans leurs composantes. – Arc est une pile d’ensemble de conditions ; elle stocke les conditions des arcs reliant les composantes repr´sent´es dans la pile Root. e e Pendant l’ex´cution de l’algorithme, nous pouvons consid´rer : e e
    • 26 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE1 Check(){2 Num = 1 ;3 Hash.put(S0,1)4 Root.push(1,EMPTYSET) ;5 Arc.push(EMPTYSET) ;6 Explore(S0,1) ;7 }8 Explore(Node v,int vorder){9 for all (A,w) such that (v,A,w) in RELATION do {10 (b,worder) = Hash.get(w) ;11 if not(b) then {12 (* w is a new explored node *)13 Num = Num+1 ;14 Hash.put(w,Num) ;15 Root.push(Num,EMPTYSET) ;16 Arc.push(A) ;17 Explore(w,Num) ;18 }19 else if (worder <> 0) then {20 (* w is a node of the current graph *)21 (i,B) = Root.pop() ; B = B union A ;22 while i>worder do {23 A = Arc.pop() ; B = B union A ;24 (i,A) = Root.pop() ; B = B union A ;25 }26 Root.push(i,B) ;27 If B == ACC then report accepted cycle ;28 }29 }30 (i,B) = Root.top() ;31 if vorder == i then {32 (* v is the root of a strongly connected component *)33 Num = i-1 ;34 Root.pop() ;35 Arc.pop() ;36 Remove(v) ;37 }38 }39 Remove(Node v){40 b=Hash.testset0(v) ;41 if b then42 for all (A,w) such that (v,A,w) in RELATION do43 Remove(w) ;44 } Fig. 2.7 – Algorithme de v´rification e
    • 2.3. TESTER LE VIDE D’UN ω-AUTOMATE 27     D E H L E     {b} T   T T  {b}     {b} ©   c C E F E G K     {a} s d T   T {a}d   d   c c  © > A E B E I E J     Fig. 2.8 – Un automate ` transitions avec Acc = {a, b} a – le graphe effac´ : le sous graphe contenant les sommets stock´s dans Hash e e de num´ro de visite nul, e – le graphe courant : le sous graphe des sommets parcourus dont le num´ro e de visite est non nul, – le chemin courant : le chemin stock´ dans la pile induit par le parcours e r´cursif en profondeur du graphe. e L’algorithme a ´t´ con¸u pour pr´server les propri´t´s suivantes ` chaque ee c e ee afois qu’un nouvel arc est parcouru :Propri´t´ 1. Le graphe effac´ ne contient pas de cycle acceptant ; e e ePropri´t´ 2. La pile Root ne contient que des sommets du chemin courant, e erang´s dans le mˆme ordre ; e ePropri´t´ 3. Si Root = (o1 , A1 )(o2 , A2 ) . . . (op , Ap ) alors o1 = 1 et la compo- e esante fortement connexe Ci du graphe courant est donn´e par e ∀i < p : Ci = {v ∈ graphe courant/oi ≤ ordre(v) ≤ oi+1 − 1}et Cp = {v ∈ graphe courant/op ≤ ordre(v) ≤ N um}Propri´t´ 4. Si la pile Arc contient B1 · B2 · · · Bp , les composantes forte- e ement connexes sont reli´es dans le graphe courant par des arcs (order−1 (o1 − e1), Bi , order−1 (oi )) avec i > 1. B1 est un ensemble de conditions repr´sentant eun arc artificiel connect´ ` l’´tat initial, dont la valeur est toujours ∅. ea eExemple 6 Pour illustrer les caract´ristiques de l’algorithme, appliquons le ea` l’automate de la figure 2.8. L’automate contient deux conditions (ACC ={a, b}). La table 6 donne les valeurs des donn´es pour chaque ´tape de l’algo- e erithme. Notez que les propri´t´s 1-4 attendues par l’algorithme sont v´rifi´es. ee e e 1. L’initialisation, lignes 2-6, est ex´cut´e et la fonction Explore(A, 1) est e e appel´e. e
    • 28 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE 2. Parcourons l’arc A → B. B est un nouveau sommet, (Hash.get(B) re- tourne (f alse, undef ined)). Ex´cutons les lignes 12-17. Le sommet B d´- e e finit une nouvelle composante fortement connexe du graphe parcouru : son num´ro de visite est empil´ dans Root et l’ensemble de conditions de l’arc e e A → B est empil´ dans Arc. e 3. Parcourons l’arc B → C. C est aussi un nouveau sommet et les lignes 12-17 sont ex´cut´es. e e 4. Parcourons C → A. A a pour num´ro de visite 1 (Hash.get(A) retourne e (true, 1)). Ex´cutons les lignes 20-27. Root et Arc sont d´pil´s jusqu’` ce e e e a que la tˆte de la pile Root contienne un num´ro de visite plus petit ou e e ´gal ` 1. Cette op´ration provoque la fusion des composantes {A}, {B} e a e et {C}. L’ensemble des conditions de la composante {A, B, C} est mise ` a jour ` {a}. Ligne 27, {a} = {a, b} et aucun cycle acceptant n’est d´tect´. a e e 5. Parcourons C → D. D est un nouveau sommet. 6. Parcourons D → E. E est encore un nouveau sommet. 7. Parcourons E → D. D est un sommet de num´ro de visite 4. Ex´cutons e e les lignes 20-27. Root et Arc sont d´pil´s jusqu’` ce que la tˆte de la pile e e a e Root contienne un num´ro de visite plus petit ou ´gal ` 4. Cette op´ration e e a e provoque la fusion des composantes {D} et {E}. 8. A cette ´tape, tous les successeurs du sommet E ont ´t´ travers´s. Lignes e ee e 30-31, le programme teste si E est une racine de composante fortement connexe. Ce n’est pas le cas et donc le sommet E est ignor´. e 9. A cette ´tape, tous les successeurs du sommet D ont ´t´ travers´s. Lignes e ee e 30-31, E est vu comme une racine de composante fortement connexe. L’ex´cution des lignes 32-36 provoque l’´limination des sommets de la e e composante {D, E} du graphe courant. 10. Parcourons C → F . F est un nouveau sommet. 11. Parcourons F → G. G est un nouveau sommet. 12. Parcourons G → F . F est un sommet de num´ro de visite 4. Ex´cutons e e les lignes 20-27. Elles provoquent la fusion des composantes {F } et {G}. A cette ´tape, l’ensemble des conditions de la composante est {a}. e 13. Parcourons G → H. H est un nouveau sommet. 14. Parcourons H → F . F est un sommet de num´ro de visite 4 . Ex´cutons e e les lignes 20-27. Elles provoquent la fusion des composantes {F, G} et {H}. Le calcul de l’ensemble des conditions donne {a, b}. Ligne 27, un cycle acceptant est d´tect´ et l’algorithme s’arrˆte : {F, G, H} contient un e e e cycle acceptant.Proposition 2.10 Si un automate ` transitions contient un cycle acceptant aaccessible ` partir de l’´tat initial, l’algorithme de v´rification d´tecte une com- a e e eposante fortement connexe contenant un cycle acceptant. De plus, l’algorithmes’arrˆte d`s que le graphe parcouru contient un cycle acceptant. e e
    • 2.3. TESTER LE VIDE D’UN ω-AUTOMATE 29 Nœeud Transition Root Arc Hash 1 A.1 1.∅ ∅ A.1 2 A.1 A→B 1.∅, 2.∅ ∅ ∅ A.1, B.2 3 B.2 B→C 1.∅, 2.∅, 3.∅ ∅ ∅ {a} A.1, B.2, C.3 4 C.3 C→A 1.{a} ∅ A.1, B.2, C.3 5 C.3 C→D 1.{a}, 4. ∅ ∅ ∅ A.1, B.2, C.3, D.4 6 D.4 D→E 1.{a}, 4.∅, 5.∅ ∅ ∅∅ A.1, B.2, C.3, D.4, E.5 7 E.5 E→D 1.{a}, 4.{b} ∅ ∅ A.1, B.2, C.3, D.4, E.5 8 E.5 1.{a}, 4.{b} ∅ ∅ A.1, B.2, C.3, D.4, E.5 9 D.4 1.{a} ∅ A.1, B.2, C.3, D.0, E.010 C.3 C→F 1.{a}, 4.∅ ∅ {b} A.1, B.2, C.3, F.4, D.0, E.011 F.4 F→G 1.{a}, 4.∅,5.∅ ∅ {b} ∅ A.1, B.2, C.3, F.4, G.5, D.0, E.012 G.5 G→F 1.{a}, 4.{a} ∅ {b} A.1, B.2, C.3, F.4, G.5, D.0, E.013 G.5 G→H 1.{a}, 4.{a}, 6.∅ ∅ {b} ∅ A.1, B.2, C.3, F.4, G.5, H.6, D.0, E.014 H.6 H→G 1.{a}, 4.{a,b} ∅ {b} A.1, B.2, C.3, F.4, G.5, H.6, D.0, E.0 Tab. 2.9 – Une ex´cution de l’algorithme de v´rification e e ¬a¤ § c > 0  true      d a d    d ‚ 2   1  b  ¦¥ T ¬b Fig. 2.9 – Automate compteur
    • 30 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE § E ¤       D2 D0 E0 H0 L0 E       T T   T T      ©   c C0 E F0 § § G0 EE K0     T T   T       c c © > A0 § E B0 E I0 E J0           E1 D1 § F2E ¥ E H1 L1   T   T T T  c  c ¥ ¥ c ¥ G1 C1 E F1 E K1     s d T   T d   d   c c © A1 E B1 E I1 E J1     Fig. 2.10 – Automate ` transitions d´velopp´ a e e Les autres algorithmes [47], [40] fonctionnant ` la vol´e ne traitent que des a eautomates de B¨chi (des automates ` ´tats avec une unique condition). Ils u a econsistent en deux parcours en profondeur. Dans sa derni`re version, l’algo- erithme dit magique [40], ` chaque fois que tous les successeurs d’un sommet aacceptant sont trait´s par le premier parcours, un second parcours est lanc´ e epour tester si ce sommet est accessible par un chemin non nul (voir [40] pourune pr´sentation compl`te de l’algorithme). Cet algorithme a deux d´fauts : e e e(1) Il ne traite pas des automates ` transitions et n´cessite une transformation a eau pr´alable de l’automate ; (2) Il ne d´tecte pas de cycle acceptant d`s que le e e egraphe parcouru en contient un (voir l’exemple 7).Exemple 7 Pour appliquer l’algorithme magique [40] ` l’automate ` transi- a ations donn´ dans la figure 2.8, il faut le transformer en un simple automate de eB¨chi. Ceci peut ˆtre r´alis´ en le synchronisant avec l’automate compteur de u e e ela figure 2.9. La figure 2.10 donne le r´sultat de cette op´ration. e e La table 7 donne les ´tats du premier parcours de l’algorithme magique [40] esur l’automate transform´ en un automate de B¨chi. Le second parcours ne e upourra commencer qu’` l’´tape 30 : quand le premier parcours aura compl`te- a e ement trait´ le sommet F 2. Le second parcours (non repr´sent´ dans la table 7) e e econduira ` la d´tection du cycle acceptant F 2 → G0 → F 1 → G1 → H1 → F 2. a eNotez que d`s l’´tape 13, l’algorithme a parcouru tous les arcs contenus dans le e e
    • ´ `2.4. VERIFICATION DE SYSTEMES PROBABILISTES 31 Nœeud Transition Hash 1 A0 A0 2 A0 A0→B0 A0,B0 3 B0 B0→C1 A0,B0,C1 4 C1 C1→A1 A0,B0,C1,A1 5 A1 A1→B1 A0,B0,C1,A1,B1 6 B1 B1→C1 A0,B0,C1,A1,B1,C1 7 B1 B1→F1 A0,B0,C1,A1,B1,C1,F1 8 F1 F1→G1 A0,B0,C1,A1,B1,C1,F1,G1 9 G1 G1→F1 A0,B0,C1,A1,B1,C1,F1,G1 10 G1 G1→H1 A0,B0,C1,A1,B1,C1,F1,G1, H1 11 H1 H1→F2 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2 12 F2 F2→G0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0 13 G0 G0→F1 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0 14 G0 G0→H0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0 15 H0 H0→F0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0 16 F0 F0→G0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0 17 F0 18 H0 19 G0 G0→I0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0,I0 20 I0 I0→J0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0,I0,J0 21 J0 J0→K0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0,I0,J0,K0 22 K0 K0→I0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0,I0,J0,K0 23 K0 K0→L0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0,I0,J0,K0,L0 24 L0 L0→K0 A0,B0,C1,A1,B1,C1,F1,G1, H1,F2,G0,H0, F0,I0,J0,K0,L0 25 L0 26 K0 27 J0 28 I0 29 G0 30 F2 Tab. 2.10 – Une ex´cution de l’algorithme magique ecycle et n’a pas pu d´tecter le comportement acceptant. e2.4 V´rification de syst`mes probabilistes e e Cette partie est consacr´e ` nos travaux [22] sur la v´rification d’une formule e a eLTL sur un syst`me probabiliste. Le r´sultat principal est la conception d’une e em´thode ` base d’automates pour r´soudre ce probl`me, de complexit´ optimale. e a e e eLe point clef de la technique est l’exploitation des qualit´s de non ambigu¨ e et e ıt´de s´paration des automates produits par les constructions globales. e Cette partie est organis´e en 6 sections. Les deux premi`res sections donnent e equelques notions de la th´orie de la mesure et la d´finition d’un syst`me pro- e e ebabiliste. La troisi`me section donne des propri´t´s des composantes fortement e eeconnexes du produit synchronis´ du syst`me et de l’automate de la propri´t´. La e e eequatri`me section ´tablit le r´sultat principal sur la v´rification d’une formule e e e eLTL. La cinqui`me section d´crit une m´thode d’´valuation de la probabilit´ e e e e equ’une formule LTL soit vraie. Nous terminons cette partie par une ´tude ex- e
    • 32 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREp´rimentale. e2.4.1 Notions de mesure Une tribu (ou σ-alg`bre) A sur un ensemble X est un ensemble de parties de eX tel que ∅ ∈ A, A est clos par compl´mentation et union d´nombrable. La paire e e(X, A) est appel´e espace mesurable, et les ´l´ments de A sont appel´s ensembles e ee emesurables. Etant donn´s deux espaces mesurables (X1 , A1 ) et (X2 , A2 ), une efonction f : X1 → X2 est appel´e fonction mesurable si l’image inverse f −1 (Y2 ) ede tout ensemble mesurable Y2 de X2 est un ensemble mesurable de X1 . Une mesure µ sur un espace mesurable (X, A) est une fonction de A dansR+ telle que (1) µ(∅) = 0, et (2) pour toute famille d´nombrable (An )n∈N ed’ensembles deux ` deux disjoints dans A, µ( n∈N An ) = n∈N µ(An ). Une amesure de probabilit´ sur (X, A) est une mesure µ sur (X, A) tel que µ(X) = 1. e Soit Σ un alphabet fini, notons CΣ l’ensemble des cylindres w · Σω avecw ∈ Σ∗ , et par BΣ la tribu (sur Σω ) engendr´e par CΣ . La proposition suivante edonne des propri´t´s ´l´mentaires sur cette tribu. e e eeProposition 2.11 Soit Σ un alphabet fini. Pour tout langage L ⊆ Σω , lesassertions suivantes sont ´quivalentes e i) L est mesurable ii) K · L est mesurable pour tout langage K ⊆ Σ∗ iii) w · L est mesurable pour tout mot fini w ∈ Σ∗ iv) K −1 L est mesurable pour tout langage K ⊆ Σ∗ v) a−1 L est mesurable pour toute lettre a ∈ Σ. Une classe importante de fonctions mesurables est obtenue en ´tendant les efonctions entre deux alphabets. Nous parlerons de ω-extension.D´finition 2.12 Soit Σ1 , Σ2 deux alphabets finis. Soit f une fonction de Σ1 → e ¯ ¯ ¯Σ2 , une ω-extension f de f est une fonction f : Σω → Σω d´finie par f (a0 a1 · · · an · · · ) = 1 2 ef (a0 )f (a1 ) · · · f (an ) · · · . e e e o ¯ Une ω-extension d’une fonction f sera g´n´ralement not´e f , plutˆt que f .Proposition 2.13 L’ ω-extension de toute fonction f : Σ1 → Σ2 est mesurable. Le th´or`me suivant montre comment d´duire une mesure sur la tribu BΣ ` e e e apartir d’une fonction r´elle positive sur les cylindres. eTh´or`me 2.14 (Extension d’une mesure) Soit f une fonction de CΣ → e eR+ , les assertions suivantes sont ´quivalentes : e i) f (w · Σ ω) = ω ) pour tout w ∈ Σ∗ a∈Σ f (wa · Σ ii) il existe une unique mesure µ sur (Σω , BΣ ) telle que µ et f sont ´gales e sur CΣ .
    • ´ `2.4. VERIFICATION DE SYSTEMES PROBABILISTES 332.4.2 Syst`me de transitions probabiliste e Par souci de simplification, nous consid´rons que les syst`mes et les auto- e emates ` transitions sont ´tiquet´s par des lettres d’un alphabet fini. On parlera a e edonc librement de syst`mes ou d’automates sur un alphabet Σ. Nous utilisons eles notations • u et u• pour repr´senter les successeurs et les pr´d´cesseurs d’un e e e´tat ou d’une transition u ; nous appliquons aussi cette notation ` des ensemblese ad’´tats et de transitions. e Un syst`me de transitions probabiliste (sur Σ) est une structure M = S, T, α, β, λ, P0 , P eo` : u 1. S, T, α, β, λ est un syst`me de transitions sur Σ, et e 2. P0 : S → [0, 1] est une distribution de probabilit´ initiale, i.e. e s∈S P0 (s) = 1, 3. P : T →]0, 1] est une fonction de probabilit´ sur les transitions satisfaisant e t∈s • P (t) = 1, pour tout s ∈ S.Nous pouvons observer que la troisi`me condition impose que tout ´tat est e esource d’au moins une transition. A partir du th´or`me 2.14, nous d´finissons µM comme l’unique mesure sur e e e(T ω , BT ) v´rifiant les identit´s suivantes sur les cylindres : e e 1. µM (T ω ) = 1, et 2. pour tout mot non vide t0 t1 · · · tn ∈ T ∗ , P0 (• t0 )P (t0 )P (t1 ) · · · P (tn ) si t0 t1 · · · tn ∈ P ath∗ (M ) µM (t0 t1 · · · tn ·T ω ) = 0 sinon. Dans la suite de notre ´tude, (T ω , BT , µM ) est consid´r´ comme espace de e eeprobabilit´. eProposition 2.15 Nous avons µM (P athω (M )) = 1. Rappelons qu’un langage d´fini par un automate ` transitions est mesu- e arable :Th´or`me 2.16 ([84]) Pour tout automate ` transitions A, le langage L(A) e e aest mesurable sur Σω .Nous en d´duisons que l’ensemble des comportements infinis (d’un syst`me e eprobabiliste) satisfaisant une formule LTL est mesurable, et ainsi sa probabilit´ epeut ˆtre d´finie e eCorollaire 2.17 Soit A un automate ` transitions et M un syst`me probabi- a eliste, l’ensemble des comportements de M “accept´s” par A (i.e. P athω (M ) ∩ eλ−1 (L(A))) est un sous ensemble mesurable de T ω . L’ensemble des ´tats s ∈ S tel que P0 (s) > 0 repr´sente les ´tats initiaux. e e eSoit s un ´tat, notons M [s] le syst`me probabiliste M avec s comme unique e e´tat initial (i.e. la distribution initial P0 de M [s] est d´finie par P0 (s) = 1).e eLes observation suivante sont facilement d´duites de la propri´t´ d’unicit´ de la e ee emesure µM :
    • 34 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREProposition 2.18 Pour tout langage mesurable L ⊆ T ω , nous avons : µM (L) = P0 (s) · µM [s] (L). s∈S0Proposition 2.19 Pour tout ´tat s, nous avons µM [s] (P athω (M, s)) = 1. eProposition 2.20 Pour tout ´tat s et tout langage mesurable L ⊆ T ω , nous eavons : µM [s] (L) = P (t) · µM [t• ] (t−1 L). t∈s•Lemme 2.21 Soit K ⊆ T ∗ . S’il existe k ∈ N tel que pour tout σ ∈ P ath∗ (M ),nous avons σ · σ ∈ K · T ∗ pour au moins un mot σ ∈ T k , alors nous avonsµM (K · T ω ) = 1. Les deux propositions suivantes sont d´duites du lemme 2.21, et ´tablissent e eles relations d’´quit´s fortes d’un syst`me probabiliste : (1) un comportement fi- e e enit in´vitablement dans une composante fortement connexe maximale (ou puit), eet (2) un comportement aboutissant dans une composante fortement connexemaximale donn´e parcourt presque sˆrement infiniment souvent tout chemin e ufini de la composante.Proposition 2.22 Soit P ath∗max l’ensemble des comportements finissant dansune composante fortement connexe maximale. Nous avons µM (P ath∗ · T ω ) = max1.Proposition 2.23 Soit ρ un chemin fini contenu dans une composante forte-ment connexe maximale C, et soit s un ´tat de C. Nous avons µM [s] ((T ∗ ·ρ)ω ) = e1.2.4.3 Propri´t´s du produit synchronis´ e e e A partir de maintenant, nous consid´rerons le syst`me probabiliste M = e e S, TM , αM , βM , λM , P0 , P et l’automate ` transitions A = Q, TA , αA , βA , λA , Q0 , Acc . aLe produit synchronis´ du syst`me et de l’automate sera not´ M ⊗A = S × e e eQ, T⊗ , α⊗ , β⊗ , λ⊗ , S0 × Q0 , Acc ⊗ . Rappellons que le produit synchronis´ M ⊗A, le syst`me M et l’automate e eA sont li´s par l’identit´ e e L(M ⊗A) = P athω (M ) ∩ λ−1 (L(A)). M Nous voulons d´terminer si M satisfait A avec une probabilit´ positive e e(µM (L(M ⊗A)) > 0). Le langage L(M ⊗A) peut ˆtre r´´crit comme une union e eedes L(M ⊗A[s, q]) o` les (s, q) repr´sentent les ´tats initiaux du produit syn- u e echronis´. Ainsi, le probl`me de la v´rification probabiliste peut ˆtre r´duit ` e e e e e atester si µM (L(M ⊗A[s, q])) > 0 pour au moins un ´tat (s, q) ∈ S0 × Q0 . e Par souci de lisibilit´, nous noterons L(s, q), le langage L(M ⊗ A[s, q]), et enous d´finissons la fonction V : S × Q → [0, +∞[ avec V (s, q) = µM [s] (L(s, q)). e
    • ´ `2.4. VERIFICATION DE SYSTEMES PROBABILISTES 35Remarquez que L(s, q) = P athω (M [s]) ∩ λ−1 (L(A[q])). Comme M ⊗A est vucomme un automate ` transitions, alors pour tout (s, q) ∈ S × Q, nous avons : a L(s, q) = tM · L(tM • , tA • ). (tM ,tA )∈(s,q)• Nous d´duisons de l’´galit´ pr´c´dente que V (s, q) > 0 ssi V (s , q ) > 0 pour e e e e e ∗au moins un ´tat (s , q ) accessible ` partir de (s, q) (i.e. (s, q) − (s , q )). Ainsi, e a →l’ensemble des ´tats V −1 (]0, +∞[) est clos en arri`re, et toute SCC (composante e efortement connexe) est incluse dans V −1 (]0, +∞[) ou dans V −1 ({0}). Ceci nousam`ne ` une classification des composantes fortement connexes : e aD´finition 2.24 Une SCC C de M ⊗A est appel´e : e e – nulle si C ⊆ V −1 ({0}), – persistante si C est une SCC maximale parmis les SCCs non nulles, – transitoire sinon. Il en r´sulte que la v´rification probabiliste se r´duit ` tester l’existence e e e ad’une SCC non nulle accessible, ou, de mani`re ´quivalente, une SCC persistante e eaccessible. Malheureusement, ces notions ne sont pas locales : par exemple, lapersistance d’une SCC d´pend des autres SCC de M ⊗A. Pour concevoir une em´thode de v´rification efficace, nous recherchons une caract´risation locale des e e eSCC non nulles. Soit C une SCC de M ⊗ A et (s, q) un ´tat de C, notons (M ⊗ A)|C [s, q] el’automate M⊗A restreint aux ´tats de C, nous d´finissons LC (s, q) et VC (s, q) e epar : LC (s, q) = L((M ⊗A)|C [s, q]) et VC (s, q) = µM [s] (LC (s, q)).D´finition 2.25 Une SCC C de M⊗A est dite localement positive si VC (s, q) > e0 pour tout (s, q) ∈ C.Remarque Une SCC C est localement positive ssi VC (s, q) > 0 pour au moinsun ´tat (s, q) ∈ C. e Il est clair qu’une SCC persistante est localement positive. La r´ciproque est efausse, mais une SCC localement positive est non nulle. Ainsi, nous aboutissonsa` la proposition suivante :Proposition 2.26 Nous avons µM (L(M ⊗A)) > 0 ssi il existe une SCC loca-lement positive accessible ` partir d’un ´tat initial de M ⊗A. a e2.4.4 Probl`me de la satisfaction e Comme les SCC localement positives jouent un rˆle majeur dans la v´rifica- o etion probabiliste, nous en recherchons une caract´risation facilement testable. eCette caract´risation est bas´e sur deux propri´t´s des SCC : la compl´tude e e ee eet l’acceptation. Nous montrons qu’une SCC est localement positive ssi elle estcompl`te et accept´e. Nous montrons que ces deux propri´t´s sont faciles ` v´ri- e e ee a efier quand l’automate A est non ambigu et s´par´ (ce qui est le cas des automate e ed’une formule LTL produit par les constructions globales).
    • 36 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRED´finition 2.27 Soit C une SCC de M ⊗A. Notons P ath∗ (M, s), l’ensemble edes chemins de M partant de l’´tat s. Notons T race∗ ((M ⊗A)|C , (s, q)), l’en- esemble des traces des chemins finis dans la composante C partant de l’´tat (s, q). eAlors C est dite compl`te si pour ´tat s ∈ πM (C), nous avons : e e P ath∗ (M, s) = T race∗ ((M ⊗A)|C , (s, q)). (2.1) q∈Q | (s,q)∈CRemarque Une SCC C est compl`te ssi (2.1) est satisfaite pour au moins un e´tat s ∈ πM (C).e Nous dirons qu’une SCC C est accept´e si l’ensemble des transitions de A e“contenues” dans C intersecte toutes les conditions d’acceptation de l’automate.D´finition 2.28 Une SCC C de M ⊗ A est accept´e si ∀acc ∈ Acc ⊗ , (• C ∩ e eC • ) ∩ acc = ∅. Le r´sultat suivant montre que toute composante compl`te et accept´e est e e elocalement positive. La proposition ´tablit un r´sultat plus pr´cis, utile dans la e e em´thode d’´valuation de la probabilit´ d’une formule. e e eProposition 2.29 Soit C une SCC de M ⊗A. Si C est compl`te et accept´e, e ealors pour tout s ∈ πM (C) nous avons :   µM [s]  LC (s, q) = 1. q∈Q | (s,q)∈C La proposition suivante ´tablit la r´ciproque. e eProposition 2.30 Si C est localement positive de M⊗A, alors C est compl`te eet accept´e. e Nous avons montr´ jusqu’` pr´sent que les deux assertions suivantes sont e a e´quivalentes :e i) M satisfait A avec une probabilit´ positive, e ii) il existe une SCC compl`te et accept´e accessible ` partir d’un ´tat initial e e a e de M ⊗A. Observons que l’acceptation d’une SCC est extrˆmement simple ` v´rifier. e a eNous montrons maintenant que la propri´t´ de compl´tude peut ˆtre test´e ee e e eefficacement quand A est non ambigu et s´par´. Informellement, sous cette e ehypoth`se, le test de compl´tude se ram`ne ` compter les transitions de la e e e acomposante, comme l’exprime le lemme suivant :Lemme 2.31 Soit C une SCC de M ⊗A. Si A est non ambigu et s´par´, alors e eles deux assertions suivantes sont ´quivalentes : e – C est compl`te e
    • ´ `2.4. VERIFICATION DE SYSTEMES PROBABILISTES 37 – pour tout (s, q) ∈ C, s appartient ` une SCC de M maximale et a −1 | • s ∩ SCC(s)• | · | πM (s) ∩ C | = | •C ∩ C • | . s∈πM (C) Les th´or`mes suivants sont d´duits des propositions pr´c´dentes, et de la e e e e em´thode de construction globale d’un automate pour une formule LTL. eTh´or`me 2.32 Si A est non ambig¨ et s´par´ alors tester que M satisfait A e e u e eavec une probabilit´ non nulle peut ˆtre r´alis´ en temps O(| Acc |)·O(| M⊗A |). e e e eTh´or`me 2.33 Soit f une formule LTL. Tester que M satisfait f avec une e eprobabilit´ non nulle peut ˆtre r´alis´ en temps O(| elT (f ) |) · O(| M |) · e e e eO(2 |elT (f )| ).2.4.5 Probl`me de l’´valuation e e Le probl`me de l’´valuation ne peut ˆtre raisonnablement ´tudi´ seulement e e e e equand l’automate est non ambigu : cette propri´t´ implique que les probabilit´s ee eV (s, q) sont des solutions d’un syst`me d’´quations lin´aires. Ce syst`me peut e e e eˆtre r´solu sur chaque SCC non nulle suivant un ordre topologique. La naturee ede ces syst`mes d´pend du type de composantes : pour les composantes tran- e esitoires, les syst`mes n’ont qu’une solution, pour les composantes persistantes, el’ajout d’une ´quation ind´pendante est n´cessaire pour r´soudre le syst`me. e e e e eDans le cas o` l’automate A est s´par´, nous donnons les ´quations lin´aires u e e e emanquantes. Notez que ces r´sultats conduisent ` une m´thode de calcul de la e a eprobabilit´ d’une propri´t´ quand l’automate est non ambigu et s´par´, et tout e ee e eparticuli`rement quand la propri´t´ est exprim´e par une formule LTL. e ee eProposition 2.34 Soit A un automate non ambigu. Soit C une SCC de M ⊗A.Soit EC le syst`me d’´quations lin´aires e e e V(s, q) = P (tM ) · V(tM • , tA • ) (tM ,tA )∈(s,q)•avec (s, q) ∈ C. Si C est persistente alors rang(EC ) = |C| − 1. Si C est transi-toire alors rang(EC ) = |C|.Proposition 2.35 Si A est un automate s´par´ et C est une SCC persistante e ede M ⊗ A alors V(s, q) = 1 q:(s,q)∈C2.4.6 Exp´rimentations e Nous avons impl´ment´ notre technique dans l’outil ProbaTaf. Les syst`mes e e eprobabilistes sont d´crits par des r´seaux de Petri (born´s). Les formules LTL e e esont d´finies ` partir des noms des transitions, de propositions sur les marquages e a(e. g. ”P ” pour ”la place P est marqu´e”) et la proposition ´l´mentaire dead e ee
    • 38 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE n 3 4 5 6 7 8 9 10 11 12 13 X n dead sat 2 2 11 46 99 268 836 1815 4205 9713 19686 eval 10 24 36 73 161 378 977 2114 5053 9665 21057 X n dead sat 1 1 2 4 3 6 10 6 10 13 9 ∧G(dead ⇒ X dead) eval 2 6 6 8 11 23 26 32 40 50 56Tab. 2.11 – Temps de calcul des probl`mes sat. et eval. appliqu´s au jeu de d´ e e epour les transitions fictives attach´es aux ´tats bloquants. L’outil permet aussi e ebien de tester la satisfaction d’une formule et son ´valuation. Nous avons utilis´ e eplusieurs techniques avanc´es : e – La technologie des BDD pour calculer, simplifier et stocker l’automate traduisant une formule. – Une adaptation de l’algorithme de v´rification ` la vol´e. e a e – Un algorithme simplifi´ d’´limination de Gauss pour r´soudre les syst`mes e e e e d’´quations lin´aires : il est toujours possible de s´lectionner les pivots sur e e e la diagonale. Nous concluons notre ´tude par l’application de notre technique ` deux e aexemples. L’objectif est de donner un bref aper¸u de l’int´rˆt et des limites de c eenotre approche.Exemple 8 Le premier exemple est emprunt´ ` Knuth et Yao[51]. Ils intro- e aduisent des questions essentielles relatives ` la g´n´ration de valeurs al´atoires. a e e eLa premi`re technique concerne la g´n´ration de valeurs al´atoires avec une dis- e e e etribution uniforme sur un ensemble fini. Supposons que l’on veuille simuler und´ parfait avec une pi`ce de monnaie biais´e. Il suffit de lancer la pi`ce quatre e e e efois et d’´carter les cas o` le nombre de piles et de faces sont diff´rents. Si les e u elancers sont accept´s, nous utilisons la table de correspondance suivante : 0011 e→ 1, 0101 → 2, 0110 → 3, 1001 → 4, 1010 → 5, 1100 → 6 (pile est cod´ par 1 eet face par 0). Quand les trois premiers lancers sont identiques, nous pouvons´carter imm´diatement les lancers. Le jeu continue jusqu’` ce qu’un r´sultate e a esoit valide. L’outil ProbaTaf nous a permis de v´rifier exp´rimentalement la propri´t´ e e eed’uniformit´ pour diff´rentes valeurs de biais de la pi`ce. Cependant, nous avons e e eobserv´ que le nombre de lancers croˆ en fonction de la valeur de biais. Pour e ıtv´rifier cette propri´t´, nous avons consid´r´ la propri´t´ ”obtenir un r´sultat e ee e e ee een moins de n lancers”. Cette propri´t´ s’exprime en LTL par X n dead et nous eel’avons ´valu´e pour plusieurs valeurs de biais. H´las, le probl`me de satisfaction e e e eet d’´valuation de cette formule a un coup exponentiel en fonction de n (voir ela table 2.11). En effet, l’automate traduisant la formule LTL par la m´thode eglobale a un nombre exponentiel d’´tats. L’ajout de la tautologie G(dead ⇒ eX dead) ` notre formule r´duit la complexit´ des calculs ` des temps lin´aires a e e a e(voir la table 2.11). Cette exp´rimentation met en avant le probl`me d’explosion e ecombinatoire. Ce probl`me pourrait ˆtre partiellement r´solu en d´veloppant une e e e em´thode de construction locale produisant des automates non ambigus et s´par´s e e esur leurs composantes fortement connexes.
    • ´ `2.4. VERIFICATION DE SYSTEMES PROBABILISTES 39 i 0 1 2 3 4 F (Ei ∧ X (dead ∧ ¬Ei )) 0.034 0.068 0.068 0.068 0.0010Tab. 2.12 – Probabilit´ d’ˆtre deuxi`me sur un arbre ´quilibr´ de profondeur 5 e e e e e prof ondeur 2 3 4 5 F (dead ∧ E0 ) sat 3 7 8 4841 eval 21 19 94 99797 F (E0 ∧ X (dead ∧ ¬E0 )) sat 3 3 19 4894 eval 17 28 242 336821Tab. 2.13 – Temps de calcul des probl`mes sat. et eval. sur l’algorithme d’´lec- e etionExemple 9 Dans [62], les auteurs proposent un algorithme distribu´ probabi- eliste sur un r´seau bidirectionnel acyclique connexe r´solvant le probl`me de e e el’´lection. Le principe de cet algorithme est extrˆmement simple : un sommet e en’ayant plus qu’un voisin peut ˆtre ´limin´ ; un sommet sans voisin devient e e ealors l’´lu. En jouant sur les probabilit´s qu’un sommet ayant un unique voisin e esoit ´limin´, les sommets du graphe ont la mˆme probabilit´ d’ˆtre ´lus. L’id´e e e e e e e emaˆ ıtresse est d’associer ` tout sommet un poids d´finissant lin´airement sa pro- a e ebabilit´ d’ˆtre ´limin´ parmi les sommets sans voisin. Initialement, les sommets e e e eont un poids de 1. Quand un sommet est retir´ du graphe, il donne son poids ` e ason unique voisin. L’outil ProbaTaf nous a permis d’observer la propri´t´ d’uniformit´ de l’al- ee egorithme pour plusieurs exemples de graphes. L’exp´rimentation consiste ` ´va- e aeluer la probabilit´ de la formule F (dead∧Ei ) o` Ei indique que le sommet i reste e ucandidat ` ´lection. Par pur hasard, nous avons mis en lumi`re une propri´t´ ae e eesurprenante de l’algorithme : la probabilit´ qu’un sommet donn´ soit finaliste e e(´lu ou dernier ´limin´) est proportionnelle ` son nombre de voisins. Nous ob- e e e aservons cette propri´t´ dans la table 2.12 sur un arbre ´quilibr´ de profondeur ee e e5, o` l’index i repr´sente la profondeur du sommet ´tudi´. Depuis cette consta- u e e etation, un des concepteurs de l’algorithme a prouv´ formellement la validit´ de e ela propri´t´. ee Nous avons conduit quelques exp´rimentations sur l’algorithme d’´lection e epour des arbres ´quilibr´s. La taille du syst`me probabiliste croˆ doublement e e e ıtexponentiellement en fonction de la profondeur de l’arbre. Pour un arbre deprofondeur 5, le syst`me probabiliste ` 459829 ´tats et 3599198 transitions. e a eLa table 2.13 donne le temps de calcul pour tester la satisfaction et ´valuer la eprobabilit´ de la formule ”ˆtre deuxi`me”. La diff´rence des temps de calcul s’ex- e e e eplique essentiellement par l’utilisation d’un algorithme ` la vol´e pour r´soudre a e ele probl`me de satisfaction, amplifi´ par le coˆt de la r´solution des syst`mes e e u e ed’´quations lin´aires utilis´e pour ´valuer la probabilit´. e e e e e
    • 40 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE2.5 Conclusion Dans ce chapitre, nous avons abord´ trois aspects de la v´rification LTL : e ela traduction d’une formule en un automate ` transitions, le test du vide d’un aautomate ` transitions et la v´rification de syst`mes probabilistes. a e e Malgr´ les nombreux travaux r´cents, nous avons exp´rimentalement montr´ e e e eque la m´thode de construction d’automates que j’ai propos´e en 1999, est tr`s e e ecomp´titive malgr´ sa simplicit´. Ce r´sultat est ` prendre avec beaucoup de e e e e apr´caution. En effet, j’ai profit´ de la qualit´ et de l’enthousiasme des concep- e e eteurs de l’outil Spot et tous les cr´ateurs de nouvelles m´thodes n’ont pas eu e eune chance ´quivalente. La r´alisation d’un outil efficace exige un module de e esimplification de formules LTL, un module de construction int´grant des opti- emisations et un module de simplification d’automates. La moindre faille dansl’impl´mentation peut rendre l’outil peu comp´titif. A mon avis, la qualit´ pre- e e emi`re de ma m´thode est sa simplicit´. Elle n’exige qu’un nombre tr`s restreint e e e ed’optimisations pour ˆtre efficace et ne n´cessite pas de module de simplification e ed’automates. Mon attention initiale ´tait p´dagogique et r´pondait au besoin e e ede traiter int´gralement des exemples de calcul d’automates. Or, mˆme actuel- e element, peu d’articles n’arrivent ` illustrer leurs m´thodes par un exemple. La a esolution que j’ai propos´e r´pondait parfaitement ` ces besoins. Pour preuve, e e ames premi`res donn´es exp´rimentales ´taient r´alis´es ` la main. Cette qualit´ e e e e e e a eest un atout pour ma technique pour qui veut impl´menter une m´thode de e econstruction d’automates dans le dessein de concevoir un outil de v´rification. e Jusqu’` pr´sent, la m´thode la plus utilis´e pour tester ` la vol´e le vide d’un a e e e a eautomate est l’algorithme magique. Nous avons mis en ´vidence par un exemple eque cet algorithme ne fonctionne que partiellement ` la vol´e. Dans un article a er´cent [36], les auteurs ont con¸u un algorithme analogue au mien, bas´ sur l’al- e c egorithme de Tarjan. Ils ont montr´ par de nombreuses exp´rimentations que leur e ealgorithme parcourt beaucoup moins d’´tats que l’algorithme magique quand eun automate contient un cycle acceptant. Il est plus que probable que mon algo-rithme poss`de les mˆmes qualit´s. Il poss`de un atout suppl´mentaire : traiter e e e e edes automates ` transitions. Cependant il faut se m´fier des conclusions hˆtives ; a e aune ´tude exp´rimentale doit ˆtre men´e pour ´valuer la qualit´ de l’algorithme. e e e e e eAvec les concepteurs de l’outil Spot, nous avons le projet de r´aliser une version ede l’outil Spin bas´e sur les automates ` transitions utilisant les mˆmes tech- e a eniques de r´duction par ordre partiel. Nous pensons adapter notre algorithme ede v´rification pour tenir compte plus finement de certaines propri´t´s d’´quit´ e ee e edans le parcours partiel des ´tats du syst`me ´tudi´. Informellement, dans les e e e etechniques de r´duction par ordre partiel, une action r´alisable du syst`me ne e e epeut ˆtre ind´finiment oubli´e ; sinon les propri´t´s de sˆret´ et de vivacit´ ne e e e ee u e eseront pas pr´serv´s par le graphe r´duit du syst`me. La r´alisation de ce projet e e e e edonnera, ` mon avis, un outil fiable d’´valuation des m´thodes et des id´es que a e e ej’ai d´velopp´es dans ce chapitre. e e Nos contributions sur la v´rification de syst`mes probabilistes sont essen- e etiellement th´oriques. En effet, nous avons r´solu le probl`me de la v´rification e e e ed’une formule LTL par une technique ` base d’automates. Pour ˆtre efficace, il a e
    • 2.5. CONCLUSION 41est essentiel de concevoir des techniques de traduction locale d’une formule LTLpour produire des automates non ambigus et s´par´s. Aborder des syst`mes de e e egrandes tailles ne pourrait ˆtre possible qu’en adaptant des techniques ayant efait leur preuve, telles que les m´thodes par ordre partiel. L’aboutissement de ece projet constitue un v´ritable chalenge e
    • 42 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE
    • Chapitre 3D´pliages de r´seaux de Petri e e Ce chapitre est consacr´ ` la pr´sentation d’un ensemble de m´thodes dites ea e epar ordre partiel. Jusqu’` pr´sent, nous nous sommes int´ress´s aux algorithmes a e e ede base pour la v´rification d’une formule LTL. L’objectif des m´thodes par e eordre partiel concerne l’optimisation des m´thodes de v´rification en tenant e ecompte des notions d’entrelacement et de concurrence des ´v´nements d’un e esyst`me. Dans certaines de ces m´thodes [82, 86, 83, 68, 39], le principe est e ede parcourir partiellement l’espace d’´tats tout en garantissant la validit´ de e ela v´rification. Ce sont ces techniques qui ont ´t´ mises en œuvre dans des ou- e eetils comme SPIN [48]. Les m´thodes abord´es dans ce chapitre sont bas´es sur e e eune repr´sentation explicite de l’ ordre partiel liant les ´v´nements du syst`me e e e e´tudi´. Le mod`le retenu pour repr´senter les comportements est un type par-e e e eticulier de r´seaux de Petri, les r´seaux d’occurrence. Le r´seau d’occurrence e e ed´crit l’ordre partiel entre les ´v´nements, alors qu’un homomorphisme associe e e eaux ´v´nements les transitions du r´seau ´tudi´. Cette association est connue e e e e edans la litt´rature sous le terme de processus arborescent. Elle a ´t´ initiale- e eement introduite dans [66, 27] pour d´finir une s´mantique arborescente de la e econcurrence dans les r´seaux de Petri. Un r´sultat majeur de cette construction e eest l’existence d’un unique plus grand processus arborescent contenant tous lesprocessus, appel´ d´pliage. e e Pour un r´seau de Petri, le nombre d’´v´nements du d´pliage est infini d`s e e e e equ’une s´quence infinie de franchissements est r´alisable. Les m´thodes de v´ri- e e e efication que nous pr´sentons ici, reposent sur le calcul d’une partie du d´pliage e edu r´seau, appel´e pr´fixe fini. Une des difficult´s majeures de ces m´thodes e e e e eest de s’assurer qu’un pr´fixe fini est suffisamment grand pour permettre la ev´rification d’une propri´t´s donn´e. McMillan [60, 59] donne une m´thode de e ee e econstruction d’un pr´fixe fini adapt´ ` la d´tection d’´tats bloquants et plus e e a e eg´n´ralement ` la v´rification de certaines propri´t´s d’accessibilit´. De nom- e e a e ee ebreux auteurs [28, 20, 69, 41, 21, 18, 29, 30] ont ´tendu ces m´thodes pour e ela v´rification de propri´t´s de vivacit´, et plus g´n´ralement de propri´t´s de e ee e e e eelogique temporelle. D`s 1996, nous avons propos´ une nouvelle repr´sentation du graphe d’´tats e e e een termes de graphe de pr´fixes finis [69, 20, 21, 18] et l’avons appliqu´e ` la e e av´rification de propri´t´s de logique temporelle. Le principe repose sur une e ee 43
    • 44 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRIid´e simple : (1) identifier les transitions observables (celles pouvant modi- efier les valeurs des propositions ´l´mentaires intervenant dans la formule) ; (2) eeconstruire un graphe dont les nœuds sont des pr´fixes finis ne faisant pas ap- eparaˆıtre de transitions observables ; (3) r´aliser la v´rification sur ce graphe e een tenant compte des comportements bloquants et cycliques contenus dans lesnœuds. En 2001, nous avons poursuivi nos travaux sur le d´pliage selon deux direc- etions. Nous avons g´n´ralis´ les m´thodes de d´pliage ` des r´seaux de Petri e e e e e a eint´grant des sym´tries, et montr´ comment d´plier des produits de r´seaux de e e e e ePetri sym´triques. L’aboutissement de cette ´tude est la conception d’une m´- e e ethode efficace pour traiter des syst`mes communicants par rendez-vous et par e´changes de messages [1].e Apr`s avoir introduit les notions de base (section 3.1) sur lesquelles reposent eles m´thodes de v´rification, nous pr´sentons la structure fondamentale qu’est e e ele d´pliage d’un r´seau de Petri (section 3.2). La suite de ce chapitre est consa- e ecr´e ` l’´tude des m´thodes de v´rification proprement dites. La section 3.3 est e a e e ed´di´e ` la construction de pr´fixes finis, ` la v´rification de propri´t´s de sˆret´ e e a e a e ee u eet ` l’existence de comportements infinis. La section 3.4 pr´sente de mani`re a e esynth´tique nos travaux sur les graphes de pr´fixes fini et leurs applications ` la e e av´rification de formules de logique temporelle. Les sections 3.5, 3.6 et 3.7 traitent edu d´pliage de r´seaux sym´triques et de produit de r´seaux sym´triques. e e e e e3.1 Notions ´l´mentaires ee Cette section est d´di´e ` la pr´sentation des deux notions essentielles sur e e a elesquelles reposent la m´thode des d´pliages : e e – les homomorphismes de r´seaux qui pr´cisent comment les comportements e e d’un r´seau peuvent ˆtre simul´s par un autre r´seau, e e e e – les r´seaux d’occurrence qui sont une classe particuli`re de r´seaux de e e e Petri employ´e pour cette simulation. e3.1.1 R´seaux de Petri e La notion de multi-ensemble est une structure alg´brique qui permet de ed´finir des r´seaux de Petri avec un nombre infini de places et de transitions. e eD´finition 3.1 (Multi-ensemble) Soit E un ensemble (fini ou infini). Une eapplication u de E dans IN est un multi-ensemble si u est ` support fini (u−1 (IN∗ ) aest fini). L’ensemble des multi-ensembles de E est not´ IN|E| . e Un multi-ensemble sur un ensemble E est g´n´ralement repr´sent´ par une e e e ecombinaison lin´aire fini d’´l´ments de E. Nous serons amen´s ` consid´rer les e ee e a eextensions suivantes sur les multi-ensembles : – Tout sous-ensemble fini X de E est consid´r´ comme un multi-ensemble ee de E : X = x∈X x.
    • ´ ´3.1. NOTIONS ELEMENTAIRES 45 – Soient E et F deux ensembles. Toute application h de E dans F est ´tendue en une application sur les multi-ensembles de E dans ceux de F : e ∀u ∈ IN|E| , h(u) = e∈E u(e) · h(e). Les r´seaux consid´r´s dans ce chapitre ne sont pas n´cessairement finis, i.e., e ee eles nombres de places et/ou de transitions peuvent ˆtre infinis. Toutefois, nous eimposons que pour toute transition t, Pre(t) et Post(t) ont un support fini etnon nul, et que le marquage initial est aussi un support fini.D´finition 3.2 (R´seau de Petri) Un r´seau de Petri R est une structure e e e P, T, Pre, Post o`u – P et T sont des ensembles (finis ou infinis) disjoints, – Pre et Post sont de fonctions de T dans IN|P | {0}.Les ´l´ments de P et T sont appel´s des places et des transitions, et Pre et Post ee esont les fonctions de pr´- et post-conditions des transitions. Un marquage m ede R est un multi-ensemble de P ( m ∈ IN|P | ). Un r´seau marqu´ R, m0 est la e edonn´e d’un r´seau de Petri R et d’un marquage initial m0 . Un r´seau ´tiquet´ e e e e e R, Σ, λ est la donn´e d’un r´seau R, d’un alphabet fini Σ et d’une fonction e ed’´tiquetage sur les transitions λ : T → Σ. e La s´mantique op´rationnelle d’un r´seau de Petri est donn´e par la r`gle e e e e ede franchissement.D´finition 3.3 (R`gle de franchissement) Soit R = P, T, Pre, Post un e er´seau de Petri. Soient t une transition et m un marquage de R. Une transition et est franchissable ` partir de m (not´ par m[t >) si Pre(t) ≤ m. Franchir une a etransition t ` partir du marquage m am`ne au marquage m (not´ par m[t > m ) a e ed´fini par : e m = m + Post(t) − Pre(t). (3.1) La relation de franchissement peut ˆtre ´tendue inductivement ` tout s´- e e a equense de transitions par : m1 [ > m2 si m1 = m2 , et m1 [σ · t > m2 si∃m : m1 [σ > m ∧ m[t > m2 . Un marquage m est accessible ` partir d’un mar- aquage m0 (ou accessible dans le r´seau marqu´ R, m0 ) si ∃σ ∈ T ∗ : m0 [σ > m. e ePosons σ, l’image commutative de σ, l’´tat m atteint ` partir de m par le fran- e achissement de σ est donn´ par l’´quation : e e m = m + Post(σ) − Pre(σ). (3.2) Nous notons Reach(R, m0 ) l’ensemble des marquages accessibles du r´seau emarqu´ R, m0 . La d´finition suivante liste des qualit´s importantes d’un r´seau e e e ede Petri.D´finition 3.4 (Propri´t´ d’un r´seau) Soit R = P, T, Pre, Post un r´- e e e e eseau de Petri. Un marquage m est dit sain si ∀p ∈ P, m(p) ≤ 1. Le r´seau de ePetri R est dit : – fini si |P | < +∞ ∧ |T | < +∞, – ´lementaire si ∀p ∈ P, ∀t ∈ T, Pre(t)(p) ≤ 1 ∧ Post(t)(p) ≤ 1. eSoit m0 un marquage de R. Le r´seau marqu´ R, m0 est dit : e e
    • 46 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI – born´ si |Reach(R, m0 )| < +∞, e – sain si ∀m ∈ Reach(R, m0 ) : m est sain, – quasi-vivant si ∀t ∈ T, ∃m ∈ Reach(R, m0 ) : m[t >. Dans la suite de ce chapˆ ıtre, nous utilisons les notations suivantes sur lastructure graphique d’un r´seau de Petri R = P, T, Pre, Post : e – l’ensemble des pr´d´cesseurs (resp. des successeurs) d’une place p est d´fini e e e par : • p = {t ∈ T |Post(t)(p) = 0} (resp. p• = {t ∈ T |Pre(t)(p) = 0}), – l’ensemble des pr´d´cesseurs (resp. des successeurs) d’une transition t est e e d´fini par : e • t = {p ∈ P |Pre(t)(p) = 0} (resp. t• = {p ∈ P |Post(t)(p) = 0}), – Si s est un ´l´ment de P ∪ T , alors ∗ s (resp. s∗ ) d´signe l’ensemble de ses ee e pr´d´cesseurs (resp. successeurs) directs et indirects. ∗ s et s∗ sont d´finis e e e par induction de la fa¸on suivante : c – s ∈ ∗ s ∧ ∀r ∈ P ∪ T, r• ∩ ∗ s = ∅ ⇒ r ∈ ∗ s – s ∈ s∗ ∧ ∀r ∈ P ∪ T, • r ∩ s∗ = ∅ ⇒ r ∈ s∗ Ces derni`res notations sont ´tendues de mani`re usuelle aux sous-ensembles e e ede nœuds.3.1.2 Homomorphisme de r´seaux e La notion d’homomorphisme de r´seaux pr´cise comment un r´seau peut e e eˆtre (partiellement) simul´ par un autre.e eD´finition 3.5 (Homomorphisme) Soient R1 , m01 et R2 , m02 deux r´- e eseaux marqu´s, avec Ri = Pi , Ti , Prei , Posti pour i = 1, 2. Soit une application eh : P1 ∪T1 → P2 ∪T2 telle que h(P1 ) ⊆ P2 , h(T1 ) ⊆ T2 . h est un homomorphismede R1 , m01 vers R2 , m02 si – ∀t1 ∈ T1 : Pre2 (h(t1 )) = h(Pre1 (t1 )), – ∀t1 ∈ T1 : Post2 (h(t1 )) = h(Post1 (t1 )), – m02 = h(m01 ). En tout premier lieu, la d´finition impose que le type des nœuds (place ou etransition) soit pr´serv´ par l’application h. Les deux premi`res conditions de la e e ed´finition assurent que l’environnement des transitions soit, lui aussi, pr´serv´ e e epar l’application h alors que la troisi`me impose que les marquages initiaux des edeux r´seaux correspondent. eExemple 10 La figure 3.1 pr´sente deux r´seaux de Petri marqu´s (R1 et R2) e e eet un homomorphisme de R1 vers R2. Les nœuds du r´seaux R1 sont ´tiquet´s e e e(en italique) par leurs images. La proposition suivante clarifie la relation entre les comportements de r´- eseaux de Petri ` travers un homomorphisme. aProposition 3.6 (Pr´servation des comportements) Soient deux r´seaux e emarqu´s R1 , m01 et R2 , m02 . Soit h : R1 , m01 → R2 , m02 un homomor- ephisme. Soient m1 , m1 deux marquages de R1 et t1 une transition de R1 telsque m1 [t1 R1 m1 . Alors, dans R2 , h(m1 )[h(t1 ) R2 h(m1 ).
    • ´ ´3.1. NOTIONS ELEMENTAIRES 47 B C 2 A t 2 4 A A A t 2 2 2 B C t B B C (R1) (R2)Fig. 3.1 – Deux r´seaux Petri marqu´s et un homomorphisme de R1 vers R2 e e La proposition 3.6 peut ˆtre ´tendue par induction aux s´quences de tran- e e esitions. Une cons´quence imm´diate de cette proposition est que les ensembles e ede marquages accessibles des deux r´seaux sont li´s par la propri´t´ : e e ee h(Reach(R1 , m01 )) ⊆ Reach(R2 , m02 )3.1.3 R´seau d’occurrence e Les r´seaux de Petri employ´s pour d´finir une s´mantique de la concurrence e e e eont une structure particuli`re. Cette classe de r´seaux correspond aux r´seaux e e ed’occurrence [66].D´finition 3.7 (R´seau d’occurrence) Un r´seau marqu´ R, m0 est un e e e er´seau d’occurrence si e – R est un r´seau ´l´mentaire, e ee – ∀p ∈ P : |• p| + m (p) = 1 0 – R, m0 est quasi-vivant. La structure graphique d’un r´seau d’occurrence d´termine compl`tement e e eson marquage initial. On d´signera un r´seau d’occurrence R, m0 uniquement e epar R. Lorsque cela est n´cessaire, le marquage initial est not´ par Min(R). e e La proposition suivante donne les propri´t´s graphiques fondamentales des eer´seaux d’occurrence. eProposition 3.8 (Acyclique) Le graphe d’un r´seau d’occurrence est un DAG e(un graphe orient´ sans circuit). Pour tout x ∈ P ∪ T , l’ensemble ∗ x est fini. e Pour ˆtre un bon candidat, une transition d’un r´seau d’occurrence ne doit e epas pouvoir ˆtre franchie dans une s´quence plus d’une fois. En effet, les tran- e esitions ont pour vocation de repr´senter les ´v´nements du r´seau de Petri e e e e´tudi´. Un rˆle dual est affect´ aux places du r´seau d’occurrence qui doivente e o e erepr´senter la pr´sence de jetons. En cons´quence, il est requis que les r´seaux e e e ed’occurrence soient sains.
    • 48 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRIProposition 3.9 (Sain) Un r´seau d’occurrence est un r´seau sain. De plus, e etoute transition peut ˆtre franchie au plus une fois dans une s´quence de fran- e echissements. La structure acyclique du graphe d’un r´seau d’occurrence induit des rela- etions sur les places et les transitions.D´finition 3.10 (Causalit´, conflit et concurrence) Soient R un r´seau e e ed’occurrence et x, y ∈ P ∪ T . – x pr´c`de y (not´ x ≤ y) si x ∈ ∗ y, e e e – x et y sont en conflit (not´ x y) s’il existe deux transitions distinctes tx e et ty telles que tx ≤ x ∧ ty ≤ y ∧ • tx ∩ • ty = ∅ – x et y sont concurrents (not´ x||y) si ¬(x ≤ y), ¬(y ≤ x) et ¬(x y). e Intuitivement, la relation de causalit´ entre deux transitions x ≤ y indique eque la transition y ne peut ˆtre franchie que si x l’a ´t´ pr´c´demment ; la re- e ee e elation de conflit caract´rise les transitions ne pouvant ˆtre franchies dans une e emˆme s´quence de transitions ; et la relation de concurrence || d´finit des tran- e e esitions pouvant ˆtre ex´cut´es simultan´ment. Des interpr´tations analogues e e e e es’appliquent aux relations sur les places. Par exemple, si une place est mar-qu´e au cours d’une s´quence, ses places en conflit resteront vides pendant le e efranchissement de la mˆme s´quence. e e Les comportements possibles d’un r´seau d’occurrence sont captur´s par la e enotion de configuration.D´finition 3.11 (Configuration) Soit R un r´seau d’occurrence. Une confi- e eguration C de R est un sous-ensemble de transitions n’´tant pas en conflit deux e` deux, et clos par le bas (∗ C ∩ T = C).a On note Conf (R) l’ensemble des configurations du r´seau d’occurrence R. La eproposition suivante d´montre qu’une configuration est bien une repr´sentation e edes comportements possibles du r´seau consid´r´ et donc qu’` toute s´quence e ee a ecorrespond une configuration.Proposition 3.12 (Comportement) Soient R un r´seau d’occurrence et C eun sous-ensemble de T . C est une configuration de R ssi ∃σ ∈ T ∗ telle queMin(R)[σ ∧ C = σ. De plus, le marquage atteint par le franchissement de σest Min(R) + C • − • C. On note Cut(C) ce marquage. Par d´finition, les transitions composant une configuration ne peuvent ˆtre e een conflit et sont donc li´es soit par la relation de causalit´, soit par la relation e ede concurrence. Ces relations nous permettent de caract´riser les s´quences de e efranchissements repr´sent´es par une configuration. Une premi`re proposition e e eexploite la relation de causalit´ pour caract´riser l’ordre de franchissement des e etransitions concern´es. eProposition 3.13 (Causalit´) Soient R un r´seau d’occurrence et σ = t1 · · · tn e eune s´quence de transitions telle que σ est une configuration. σ est une s´quence e ede franchissements de R ssi ∀i, j ∈ [1, n], ti ≤ tj ⇒ i ≤ j.
    • ´3.2. PROCESSUS ARBORESCENT ET DEPLIAGE 49 De mˆme, dans une s´quence deux transitions voisines et concurrentes peuvent e eˆtre permut´es.e eProposition 3.14 (Concurrence) Soient R un r´seau d’occurrence et σ = et1 · · · tn une s´quence de franchissements de R. Alors pour tout i ∈ [1, n[,on a eti ti+1 ⇒ Min(R)[t1 · · · ti+1 ti · · · tn . Ainsi, une configuration d´finit un ensemble de s´quences de franchisse- e ements. La propri´t´ de quasi-vivacit´ des r´seaux d’occurrence peut ˆtre r´´crite ee e e e eeen termes d’auto-conflit.Proposition 3.15 (Non auto-conflit) Toute transition d’un r´seau d’occur- erence n’est pas en conflit avec elle-mˆme. e En cons´quence, pour toute transition t, il existe au moins une s´quence e ede franchissements contenant une occurrence de t et donc une configurationcorrespondante. La proposition suivante caract´rise la plus petite (au sens de el’inclusion) de ces configurations.Proposition 3.16 (Configuration locale) Soit t une transition d’un r´seau ed’occurrence R. L’ensemble ( ∗ t ∩ T ) est une configuration de R. De plus, cetteconfiguration est la plus petite des configurations de R contenant t. La configu-ration (∗ t ∩ T ), not´ [t], est appel´e la configuration locale de t. e e En termes de v´rification, il est souvent n´cessaire de d´terminer si un e e emarquage partiel peut ˆtre couvert par un marquage accessible. La proposi- etion suivante exploite la notion de concurrence pour caract´riser les s´quences e econduisant ` un tel marquage couvrant. aProposition 3.17 (Couverture) Soient R un r´seau d’occurrence et A un eensemble de places deux ` deux concurrentes. L’ensemble ∗ A ∩ T , not´ [A], est a ela plus petite configuration qui couvre A. Si A est r´duit ` une place, [p] est e aappel´e la configuration locale de p. e3.2 Processus arborescent et d´pliage e Les r´seaux d’occurrence associ´s aux homomorphismes de r´seaux per- e e emettent la repr´sentation explicite de l’ordre partiel portant sur les ´v´nements e e ed’un r´seau de Petri. La notion de processus arborescent concr´tise cette asso- e eciation. Dans cette section, nous montrons que l’ensemble des comportementsest repr´sentable dans un unique processus arborescent. Une telle structure est eappel´ un d´pliage. e e Dans la suite de ce chapitre, nous consid`rons un r´seau marqu´ R, m0 . e e eLes composantes d’un r´seau d’occurrence sont traditionnellement not´es par e e B, E, In, Out .
    • 50 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI pl pr dr al ar qr ql bl br dl rl rr w cl cr sl Fig. 3.2 – Un r´seau de Petri marqu´ e e3.2.1 Processus arborescents Un processus arborescent d’un r´seau R est la donn´e d’un r´seau d’occur- e e erence S et d’un homomorphisme h de S dans R. Notons que le r´seau S simule epartiellement les comportements de R grˆce ` l’homomorphisme. a aD´finition 3.18 (Processus arborescent) Soit S = B, E, In, Out un r´- e eseau d’occurrence. Soit h un homomorphisme de r´seau de S dans R, m0 . La epaire S, h est un processus arborescent de R, m0 si ∀e1 , e2 ∈ E : (In(e1 ) = In(e2 ) ∧ h(e1 ) = h(e2 )) ⇒ e1 = e2 Les ´l´ments des ensembles B et E sont appel´s respectivement des condi- ee etions et des ´v´nements du processus arborescent. La d´finition 3.18 impose e e equ’un mˆme ´v´nement ne soit repr´sent´ qu’une fois au sein d’un mˆme pro- e e e e e ecessus arborescent.Exemple 11 Les figures 3.2 et 3.3 pr´sentent respectivement un r´seau de Pe- e etri marqu´ et un processus arborescent de ce r´seau. Les noms des ´v´nements et e e e edes conditions sont ´crits en gras alors que leurs images par l’homomorphisme esont ´crit en italique. e La propri´t´ suivante est essentielle. En effet, elle ´nonce que toute s´quence ee e ede franchissements d’un r´seau marqu´ peut ˆtre simul´e (repr´sent´e) par un e e e e e eprocessus arborescent.Proposition 3.19 (S´quence de franchissements) Soit σ une s´quence de e efranchissements de R. Il existe un processus arborescent S, h de R, m0 etune s´quence de franchissements σS de S telle que h(σS ) = σ. eExemple 12 La s´quence ar · br · cr · dr est franchissable dans le r´seau de la e efigure 3.2 et est repr´sent´e par la s´quence e2 · e4 · e8 · e11 dans le processus e e earborescent de la figure 3.3.
    • ´3.2. PROCESSUS ARBORESCENT ET DEPLIAGE 51 pl pr b1 b2 al ar e1 e2 w qr ql b3 b4 b5 bl br dr e3 e4 e5 rl rr w pr b6 b7 b8 b9 dl cl cr ar e6 e7 e8 e9 sl pl qr w w qr b10 b11 b12 b13 b14 b15 al dr e 10 e 11 ql w pr b16 b17 b18 Fig. 3.3 – Un processus arborescent du r´seau de la figure 3.2 e3.2.2 D´pliages e Apr`s avoir d´montr´ qu’une s´quence peut toujours ˆtre repr´sent´e par un e e e e e e eprocessus arborescent, nous ´noncerons l’existence d’un plus grand processus earborescent, appel´ d´pliage. Pour se faire, nous devons avoir la capacit´ de e e ecomparer les processus arborescents entre eux. Cette comparaison est renduepossible par la notion d’homomorphisme de processus arborescents.D´finition 3.20 (Homomorphisme de processus arborescents) Soient S1 , h1 eet S2 , h2 deux processus arborescents de R, m0 . Un homomorphisme g : S1 →S2 est un homomorphisme de processus arborescents de S1 , h1 vers S2 , h2 sih1 = h2 ◦ g. S1 h1 g R h2 S2 Deux processus arborescents sont ´quivalents s’ils peuvent ˆtre reli´s par un e e eisomorphisme (i.e. un homomorphisme bijectif) ; dans ce cas, les deux processusarborescents simulent exactement les mˆmes comportements. eD´finition 3.21 (Relation d’´quivalence) Soient β1 , β2 deux processus ar- e eborescents de R, m0 . On dit que β1 et β2 sont ´quivalents (not´ β1 ≡ β2 ) s’il e eexiste un isomorphisme de β1 vers β2 .
    • 52 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI Un processus arborescent est plus petit qu’un autre s’il peut ˆtre obtenu ea` partir du second en ´liminant des ´v´nements et des conditions ; ainsi un e e eprocessus arborescent repr´sentera moins de comportements qu’un processus eplus grand que lui. Nous dirons que ce processus est un pr´fixe de celui qui lui eest sup´rieur. Pour que la relation d’ordre reste compatible par rapport ` la e arelation d’´quivalence, cette notion est formalis´e en reliant les deux processus e epar un homomorphisme injectif.D´finition 3.22 (Ordre partiel) Soient β1 , β2 deux processus arborescents ede R, m0 . β1 est plus petit que β2 (not´ β1 β2 ) s’il existe un homomorphisme einjectif de β1 vers β2 . Nous sommes maintenant en mesure d’´noncer la proposition sur l’exis- etence d’un processus arborescent repr´sentant l’ensemble des comportements epossibles d’un r´seau. C’est un processus arborescent maximal au sens o` il e uinclut (en termes de pr´fixes) tous les processus arborescents. eProposition 3.23 (D´pliage) Soit R, m0 un r´seau marqu´. Il existe un e e eunique (` ´quivalence prˆt) plus grand (au sens de ) processus arborescent de ae e R, m0 . Ce processus arborescent est appel´ le d´pliage de R, m0 . e e Tous les processus arborescents d’un r´seau sont donc des pr´fixes de son e ed´pliage. Remarquons que si un r´seau peut r´aliser une s´quence infinie, le e e e ed´pliage est infini. e3.3 Pr´fixes finis e Du point de vue de la v´rification, il n’est pas souhaitable d’avoir ` ma- e anipuler une structure potentiellement infinie. Le principe g´n´ral consiste ` ne e e aconsid´rer qu’un pr´fixe fini du d´pliage du r´seau. Le probl`me essentiel est que e e e e etoutes les informations pertinentes pour la v´rification doivent ˆtre contenues e edans ce pr´fixe. e Dans cette section, R, m0 est un r´seau marqu´ fini et S, h est son d´- e e epliage avec S = B, C, ∈, Out .3.3.1 D´finition e Un pr´fixe fini du d´pliage est d´fini par l’ensemble des ´v´nements ` par- e e e e e atir desquels le d´pliage n’est plus consid´r´. De tels ´v´nements sont appel´s e ee e e eraccourci du pr´fixe fini. eD´finition 3.24 (Pr´fixe fini) Un pr´fixe fini Cutoff de S, h est un sous- e e eensemble d’´v´nements de S satisfaisant e e – E Cutoff ∗ est fini, – pour tout e, e ∈ Cutoff , e ≤ e .
    • ´3.3. PREFIXES FINIS 53 La premi`re contrainte garantit que le pr´fixe est fini (i.e. il ne contient qu’un e enombre fini de conditions et d’´v´nements). La deuxi`me contrainte impose e e equ’aucun raccourci n’est jamais causalement apr`s un autre raccourci. Nous ed´finissons sur le pr´fixe Cutoff , les ensembles suivants : e e – L’ensemble des ´v´nements (internes) : e e Event(Cutoff ) = E Cutoff ∗ – L’ensemble des configurations : Conf (Cutoff ) = {C ∈ Conf (S) | C ∩ Cutoff = ∅} – L’ensemble des marquages : Reach(Cutoff ) = {h(Cut(C)) | C ∈ Conf (Cutoff )} Il est important de noter que Conf (Cutoff ) ainsi que Reach(Cutoff ) sontdes ensembles finis. Dans le cadre d’une m´thode de v´rification, il est courant e ed’imposer que l’ensemble des ´tats accessibles du r´seau ´tudi´ soit repr´sent´ e e e e e eau sein du pr´fixe fini. Un tel pr´fixe est dit complet. e eD´finition 3.25 (Pr´fixe fini complet) Un pr´fixe fini Cutoff de S, h est e e ecomplet si Reach(Cutoff ) = Reach(R, m0 ).3.3.2 Ordres ad´quats et pr´fixes finis complets e e Il s’agit ` pr´sent de d´finir les conditions suffisantes garantissant la com- a e epl´tude d’un pr´fixe. Ces conditions vont porter sur les raccourcis d´limitant e e ele pr´fixe fini. Une approche intuitive consiste ` s’assurer que les ´tats atteints e a eapr`s le franchissement de la configuration locale d’un raccourci est d´j` un ´tat e ea erepr´sent´ dans le pr´fixe. Formellement, cette contrainte est d´finie pour un e e e epr´fixe Cutoff par e ∀e ∈ Cutoff , ∃C ∈ Conf (Cutoff ) : h(Cut([e])) = h(Cut(C)) D`s les premiers travaux sur les pr´fixes finis, McMillan [60] a mis en ´vi- e e edence que cette condition n’´tait pas suffisante. L’exemple 13, inspir´ de la e ed´monstration de McMillan, illustre ce fait. eExemple 13 La figure 3.4 pr´sente un r´seau marqu´ et la figure 3.5 donne e e eune partie du d´pliage. Le pr´fixe fini Cutoff = {e6 , e8 } respecte la contrainte e edonn´e ci-dessus. En effet, nous avons e – h(Cut[e6 ]) = h({e1 , e2 , e5 }) = a3 + b2 + c2 + d3 – h(Cut[e8 ]) = h({e3 , e4 , e7 }) = a2 + b3 + c3 + b2Or, bien qu’accessible, le marquage a3 +b3 +c3 +d3 n’appartient pas ` Reach(Cutoff ). aPar contre, les pr´fixes Cutoff = {e5 , e8 } et Cutoff = {e6 , e7 } sont bien com- eplets.
    • 54 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI a1 b1 c1 d1 ab ac bd cd a2 b2 c2 d2 ad bc a3 b3 c3 d3 Fig. 3.4 – Contre exemple de compl´tude e a1 b1 c1 d1 ab cd ac bd e2 e3 e4 e1 a2 b2 d2 c2 a2 c2 d2 b2 ad bc ad bc e5 e8 e6 e7 a3 d3 b3 c3 a3 d3 b3 c3 Fig. 3.5 – Un pr´fixe fini incomplet du contre exemple e
    • ´3.3. PREFIXES FINIS 55 Le bon choix des raccourcis d’un pr´fixe est essentiel pour assurer la compl´- e etude. Dans [32], les auteurs proposent une condition suffisante de compl´tude ecapturant la plupart des techniques de construction de pr´fixes complets. Celle- eci est bas´e sur une classe d’ordres partiels sur les configurations du d´pliage, e eappel´e ordre ad´quat. Cette relation utilise la notion d’extension d’une confi- e eguration.D´finition 3.26 (Extension) Soient C une configuration de S, t une tran- esition de R et et un ´v´nement de S d’´tiquette t (i.e h(et ) = t). L’ensemble e e eC ∪ {et } est une t-extension de C si C ∪ {et } est une configuration et et n’estpas un ´v´nement de C. L’ensemble des t-extensions de la configuration C est e enot´ C · t. eD´finition 3.27 (Ordre ad´quat) [32] Un ordre partiel sur les configura- e etions d’un d´pliage S, h est un ordre ad´quat si : e e – raffine ⊆, – est bien fond´ (i.e. il n’existe pas de suite infinie strictement d´crois- e e sante), – est compatible avec l’extension : pour toute transition t, pour toutes configurations C1 , C2 de S telles que h(Cut(C1 )) = h(Cut(C2 )) C1 C2 ⇒ ∀C2 ∈ C2 · t, ∃C1 ∈ C1 · t : C1 C2 Dans [60], une configuration est plus petite qu’une autre si elle est compos´e ede moins d’´v´nements. Il est facile de d´montrer que cet ordre est un ordre e e ead´quat. Dans [32] est propos´ un ordre ad´quat total sur les configurations des e e ed´pliages de r´seaux sains. e e La d´finition et la proposition suivante ´tablit une condition suffisantes pour e eun pr´fixe fini soit complet. eD´finition 3.28 (Pr´fixe fini ad´quat) Un pr´fixe fini Cutoff de S, h est e e e ead´quat s’il existe un ordre ad´quat et une application φ : Cutoff → Conf (Cutoff ) e etels que ∀e ∈ Cutoff : h(Cut(φ(e))) = h(Cut([e])) ∧ (φ(e) [e]).Proposition 3.29 (Compl´tude d’un pr´fixe fini ad´quat) Si un pr´fixe e e e efini est ad´quat alors il est un pr´fixe fini complet. De plus, si R, m0 est born´ e e ealors il existe au moins un pr´fixe fini ad´quat pour tout ordre ad´quat. e e e Il est important de noter qu’il est toujours possible de construire un pr´fixe efini ad´quat pour tout r´seau de Petri born´. Cependant, dans le pire des cas, e e ece pr´fixe peut contenir plus d’´v´nements que de marquages accessibles. En e e erevanche, si la relation d’ordre est totale, le nombre d’´v´nements est born´ par e e ele nombre de marquages accessibles.Exemple 14 Consid´rons le processus arborescent de la figure 3.3 en tant que epartie initiale du d´pliage du r´seau de la figure 3.2. Le pr´fixe fini {e5 , e7 , e8 } e e eest ad´quat pour l’ordre de McMillan (i.e. C e C ⇒ |C| < |C |). En effet, lafonction Φ est donn´e par : Φ(e5 ) = Φ(e7 ) = ∅ et Φ(e8 ) = [e2 ]. Notons que eh(Cut(Φ(e5 ))) = h(Cut(Φ(e7 ))) = h(Cut(∅)) = pl + w + pr et h(Cut(Φ(e8 ))) =pl + w + qr . Il est donc complet.
    • 56 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI3.3.3 V´rification de propri´t´ de sˆ ret´ e e e u e Le principe g´n´ral de l’algorithme de construction d’un pr´fixe fini com- e e eplet est simple. Initialement, une condition est produite pour chaque jeton dumarquage initial et les ´v´nements pouvant ´tendre le pr´fixe sont calcul´s et e e e e estock´s dans une liste. A chaque ´tape du calcul, un ´v´nement de plus petite e e e econfiguration locale (par rapport ` l’ordre ad´quat choisi) est retir´ de la liste, a e eet est ajout´ au pr´fixe. Soit cet ´v´nement est d´fini comme un raccourci, soit e e e e ecet ajout induit la cr´ation de nouveaux ´v´nements ` ajouter dans liste des e e e a´v´nements ` traiter. Lorsque cette liste est vide, le pr´fixe obtenu est un pr´fixee e a e ecomplet. Le lecteur int´ress´ pourra trouver dans [72] une description d´taill´e e e e ed’une impl´mentation efficace de cet l’algorithme. e Beaucoup de propri´t´s de sˆret´ peuvent ˆtre v´rifi´es ` partir d’un pr´- ee u e e e e a efixe complet. La d´tection de la pr´sence d’un ´tat bloquant a ´t´ l’une des e e e eepremi`res ´tudes r´alis´es sur le sujet [60]. Le principe de d´tection consiste ` e e e e e aconstruire une configuration C ∈ Conf (Cutoff ) telle que pour tout raccourcie d’un pr´fixe fini ad´quat Cutoff , il existe un ´l´ment de C en conflit avec e e eee. De fait, cette configuration ne pourra pas ˆtre ´tendue jusqu’` atteindre un e e araccourci et conduira donc vers un ´tat bloquant. Une d´finition pr´cise de cet e e ealgorithme et des techniques alternatives sont pr´sent´es dans [61, 45]. e eExemple 15 Si l’on consid`re le pr´fixe fini {e5 , e7 , e8 } du processus arbores- e ecent de la figure 3.3. Nous avons vu que ce pr´fixe fini est ad´quat. L’ensemble e e{e1 , e3 , e6 } est une configuration de ce pr´fixe fini tel que tout raccourci est en econflit avec au moins un ´v´nement de la configuration (e3 e8 , e3 e5 et e6 e7 ). e eCette configuration conduit in´vitablement ` un ´tat bloquant du r´seau (sl +qr ). e a e e La v´rification de toutes propri´t´s de sˆret´ pouvant ˆtre ramen´es ` un e ee u e e e aprobl`me de couverture peut ˆtre r´alis´e tr`s simplement ` partir d’un pr´- e e e e e a efixe complet. En effet, d´cider si un marquage partiel peut ˆtre couvert revient e ea e` d´cider de la quasi vivacit´ d’une transition. Il suffit donc d’ajouter au r´- e eseau consid´r´ une transition t ayant comme pr´-condition Pre(t), le marquage ee ea` couvrir. Si le pr´fixe complet peut ˆtre ´tendu par un ´v´nement ´tiquet´ e e e e e e epar cette transition alors cela indique que le marquage peut ˆtre couvert. La ev´rification de propri´t´s de sˆret´ ne pouvant pas ˆtre r´duites ` un simple pro- e ee u e e e abl`me de couverture peut ˆtre r´solu en repr´sentant explicitement les places e e e ecompl´mentaires. Ceci impose que la borne de chacune des places soit connue a epriori. Dans [41] est discut´ d’une m´thode g´n´rale de v´rification de propri´t´s e e e e e eed’accessibilit´ ` partir d’un pr´fixe fini. ea e3.3.4 D´tection de comportements infinis e La v´rification de propri´t´s de vivacit´ induit la d´tection de comporte- e ee e ements infinis. Ce probl`me est difficile en g´n´ral : dans [87], l’auteur et les e e er´f´r´s se sont laiss´s pi´ger par l’apparente simplicit´ du probl`me [21]. Dans eee e e e ele cas g´n´ral, deux graphes, dont les nœuds sont les raccourcis et leurs images, e ejouent un rˆle important dans la d´tection de comportements infinis : o e
    • ´3.3. PREFIXES FINIS 57 A D a c B d f E b C e F u Fig. 3.6 – Premier contre exemple de d´tection de circuit e A a c D B C D f d b f d F E C F E e u e F B F F Fig. 3.7 – Non d´tection de s´quence infinie (graphe concurrent) e e
    • 58 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI A D a c B d f E b C e F v U u Fig. 3.8 – Deuxi`me contre exemple de d´tection de circuit e e A a c D B C D f d b u f d F E C U F E e v e F B F F Fig. 3.9 – D´tection erron´e d’une s´quence infinie (graphe simple) e e e – Graphe concurrent Un raccourci a comme unique successeur son image par φ et une image a comme successeurs tous les raccourcis causalement plus grands ou parall`les. e – Graphe simple Un raccourci a comme unique successeur son image par φ et une image a comme successeurs tous les raccourcis causalement plus grands. En r´duisant un comportement infini par les raccourcis rencontr´s dans le e epr´fixe, nous construisons un chemin dans le graphe concurrent. Alors qu’un echemin infini dans le graphe induit un comportement infini. Toutefois, aucunde ces deux graphes ne permet de d´cider de fa¸on d´finitive de la pr´sence d’un e c e ecomportement infini. Le graphe concurrent peut contenir un circuit alors que lesyst`me ne peut pas r´aliser de s´quence infinie (voir le contre exemple pr´sent´ e e e e edans les figures 3.8 et 3.9). Le graphe simple peut ne pas faire apparaˆ ıtre decircuit alors que le syst`me a la capacit´ de r´aliser une s´quence infinie (voir e e e ele contre exemple pr´sent´ dans les figures 3.6 et 3.7). e e
    • ´3.3. PREFIXES FINIS 59 Une mani`re simple de contourner le probl`me est utilis´e l’inclusion comme e e eordre ad´quat (i.e. C C ⇒ C ⊂ C ). En effet, un r´seau de Petri peut r´aliser e e eune s´quence infinie si et seulement si le pr´fixe ad´quat a au moins un raccourci. e e eExemple 16 Consid`rons le pr´fixe fini {e5 , e7 , e8 } d´fini ` partir du processus e e e aarborescent de la figure 3.3. L’image de chacun des raccourcis est incluse danssa configuration locale. Ainsi, ` chaque raccourci correspond un comportement ainfini du r´seau. e Toutefois, cet ordre impose des conditions fortes sur les raccourcis et produitdes pr´fixes de grande taille. Nous introduisons des conditions plus fines bas´es e esur un couple d’ordres qui permettent la d´tection des comportements infinis. eD´finition 3.30 (Couple ad´quat d’ordres) Un couple de relations 1 , 2 e e sur les configurations d’un d´pliage (S, h) est un couple ad´quat d’ordres si : e e – 1 est un ordre ad´quat, e – 2 est un pr´-ordre (i ;e. 2 est r´flexive et transitive), e e – 2 raffine ⊂ (i.e C1 ⊂ C2 ⇒ (C1 2 C2 ) ∧ (C2 2 C1 )), – 1 et 2 sont simultan´ment compatibles avec l’extension : pour toute e transition t, pour toutes configurations C1 , C2 de S v´rifiant h(Cut(C1 )) = e h(Cut(C2 )) (C1 1 C2 ) ∧ (C1 2 C2 ) ⇒ ∀C2 ∈ C2 · t, ∃C1 ∈ C1 · t : (C1 1 C2 ) ∧ (C1 2 C2 ) La d´finition des pr´fixes ad´quats doit ˆtre revue pour prendre en compte e e e ece nouveau type d’ordre.D´finition 3.31 (Pr´fixe fini doublement ad´quat) Un pr´fixe fini Cutoff e e e ede S, h est doublement ad´quat ssi il existe un couple ad´quat d’ordres 1 , 2 e eet une application φ : Cutoff → Conf (Cutoff ) tels que ∀e ∈ Cutoff : – h(Cut(φ(e))) = h(Cut([e])), – φ(e) 1 [e], – (φ(e) 2 [e]) ∨ (C ⊂ [e]). Les nouvelles contraintes impos´es par le couple d’ordre, nous permettent ed’avoir une caract´risation simple des comportements infinis repr´sent´s au sein e e ed’un pr´fixe doublement ad´quat. e eProposition 3.32 (Pr´fixe fini doublement ad´quat) Soit Cutoff un pr´- e e efixe fini doublement ad´quat de S, h . R admet une s´quence infinie ` partir e e ade m0 ssi ∃e ∈ Cutoff tel que φ(e) ⊂ [e]. De plus, si R, m0 est born´ alors eil existe au moins un pr´fixe fini doublement ad´quat pour tout couple ad´quat e e ed’ordres.
    • 60 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI3.4 Graphes de pr´fixes finis e Nous avons vu jusqu’` pr´sent en quoi les pr´fixes complets peuvent ˆtre a e e eun outil pour la v´rification de propri´t´s de sˆret´ et la d´tection de circuits. e ee u e eCependant, les techniques pr´sent´es ne permettent pas en l’´tat de d´cider e e e ede la satisfaction de formules de logique temporelle. En effet, les algorithmesde v´rification n´cessitent la d´tection de circuits particuliers, ce que ne nous e e epermettent pas les pr´fixes doublement ad´quats de la section 3.3.4. Dans cette e esection, nous pr´sentons une structure particuli`re - des graphes de pr´fixes fi- e e enis - adapt´e ` la v´rification de formules de logique temporelle ` temps lin´aire. e a e a e3.4.1 D´finition e Les graphes que nous ´tudions ont pour sommets des pr´fixes finis d’un e er´seau de Petri pour diff´rentes valeurs de marquages initials. Les ´v´nements e e e ed´limitant chaque pr´fixe sont maintenant partitionn´s en deux sous-ensembles. e e eLe premier est consititu´ de raccourcis proprement dit alors que les ´v´nements e e edu second conduisent ` des sommets successeurs et sont nomm´s des ponts (i.e. a eBridge). Intuitivement, un raccourci indique que le franchissement de la tran-sition correspondante conduit vers un ´tat repr´sent´ dans le pr´fixe courant e e e ealors que pour un pont, son franchissement conduit vers l’´tat initial d’un pr´- e efixe successeur. L’objectif est de faire apparaˆıtre les circuits n´cessaires ` la e av´rification au niveau du graphe. e Pour tout marquage accessible m de R, m0 , on note Sm , hm le d´pliage edu r´seau R, m . eD´finition 3.33 (Graphe de pr´fixes finis) Soit G un ensemble de quadru- e eplets de la forme m, Cutoff , Bridge, δ o` m est un marquage de Reach(R, m0 ), uCutoff ∪ Bridge est un pr´fixe fini de Sm , hm et δ une application de Bridge evers G. Pour tout g de G, nous notons g = mg , Cutoff g , Bridge g , δg et hg =hmg . Le triplet (G, →, g0 ) est un graphe de pr´fixes finis de R, m0 si e – g0 ∈ G ∧ mg0 = m0 , – ∀g ∈ G, ∀e ∈ Bridge g , mδg (e) = hg (Cut([e])), – ∀g1 , g2 ∈ G : g1 → g2 ⇒ ∃e ∈ Bridge g1 , g2 = δg1 (e), – ∀g ∈ G, il existe un chemin dans (G, →, g0 ) de g0 ` g.a Lorsque la transition correspondante ` un pont est franchie, le marquage aatteint est celui associ´ ` la configuration locale de ce pont. Les deux premiers eapoints de la d´finition nous assurent que les marquages initiaux, pour lesquels eles diff´rents pr´fixes sont d´finis, sont corrects (pour le sommet initial et pour e e echacun des ponts). Les deux derniers points de la d´finition imposent qu’aucun esommet ou arc inutile n’est pris en compte.Exemple 17 La figure 3.10 pr´sente un graphe de pr´fixes finis du r´seau de e e ela figure 3.2. Les raccourcis sont repr´sent´s par des transitions noires et les e eponts par des transitions gris´es. e
    • ´3.4. GRAPHES DE PREFIXES FINIS 61 pl pr ar pl br pl rr al ar al al cr ql w qr ql w qr ql w qr dr cr bl bl br dr rl rl rr w prdl cl dl cl sl pl w sl pl w Fig. 3.10 – Un graphe de pr´fixes finis du r´seau de la figure 3.2 e e Un graphe de pr´fixes finis est consid´r´ comme ´tant complet si chaque e ee e´tat accessible est repr´sent´ dans au moins un sommet du graphe.e e eD´finition 3.34 (Graphe complet de pr´fixes finis) Soit (G, →, g0 ) un graphe e ede pr´fixes finis de R, m0 . Le graphe est complet si e Reach(Cutoff g ∪ Bridge g ) = Reach(R, m0 ) g∈G Les ordres ad´quats de la d´finition 3.27 doivent ˆtre adapt´s ` l’introduction e e e e ades ponts. Ceci nous conduit ` introduire la notion d’ordres fortement ad´quats. a eD´finition 3.35 (Ordre fortement ad´quat) Soit un ordre sur les confi- e egurations de tous les d´pliages Sm , hm de R tel que m ∈ Reach(R, m0 ). L’ordre e est fortement ad´quat si : e – ∀m ∈ Reach(R, m0 ), est ad´quat sur les configurations de Sm , hm , e – est compatible par rapport ` la r´duction de pr´fixe : ∀m ∈ Reach(R, m0 ), ∀C ∈ a e e Conf (Sm ), ∀e ∈ C, soit m = hm (Cut([e])), ∃C ∈ Conf (Sm ) : (C C) ∧ (hm (C ) = hm (C [e])) On peut noter que les ordres fortement ad´quats portent sur les configura- etions d’une famille de d´pliages et que la d´finition nous assure que lorsqu’un e epr´fixe commun ` deux configurations comparables est supprim´, la relation est e a epr´serv´e. Cette adaptation des ordres ad´quats permet la d´finition de graphes e e e ede pr´fixes finis munis des propri´t´s de compl´tude. e ee eD´finition 3.36 (Graphe ad´quat de pr´fixes finis ) Un graphe de pr´- e e e efixes finis (G, →, g0 ) est ad´quat ssi il existe un ordre fortement ad´quat e eet ∀g ∈ G, il existe une application φg : Cutoff g → Conf (Cutoff g ∪ Bridge g )satisfaisant : hg (Cut(φg (e))) = hg (Cut([e])) ∧ φg (e) [e]
    • 62 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRIProposition 3.37 (Graphe ad´quat de pr´fixes finis) Si un graphe de pr´- e e efixes finis est ad´quat alors il est un graphe complet. e Il est clair que lorsque le r´seau est born´, il existe au moins un graphe e ead´quat de pr´fixes finis pour tout ordre fortement ad´quat. En effet, tout e e epr´fixe fini ad´quat peut ˆtre vu comme un graphe ad´quat compos´ d’un seul e e e e esommet. A tout circuit du graphe correspond une classe d’´quivalence de s´quences e einfinies du r´seau. Toutefois, des comportements infinis peuvent ˆtre repr´sent´s e e e edans les sommets et ne pas apparaˆ ıtre au niveau du graphe. La d´tection de etels comportements infinis est primordial dans le cadre de la v´rification. Une eadaptation des couples d’ordres ad´quats de la section 3.3.4 est propos´e pour e emettre en ´vidence ces comportements. eD´finition 3.38 (Couple fortement ad´quat d’ordres) Soit e e 1 , 2 uncouple de relations sur les configurations de tous les d´pliages Sm , hm de R etel que m ∈ Reach(R, m0 ). Le couple 1 , 2 est fortement ad´quat si : e – 1 est fortement ad´quat, e – ∀m ∈ Reach(R, m0 ), 1 , 2 est un couple ad´quat d’ordres sur les confi- e gurations de Sm , hm . Un graphe de pr´fixes finis construit sur un couple fortement ad´quat d’ordres e eest dit doublement ad´quat. eD´finition 3.39 (Graphe de pr´fixes finis doublement ad´quats) Un graphe e e ede pr´fixes finis (G, →, g0 ) est doublement ad´quat ssi il existe un couple for- e etement ad´quat d’ordres e 1 , 2 et ∀g ∈ G, il existe une application φg :Cutoff g → Conf (Cutoff g ∪ Bridge g ) satisfaisant : – hg (Cut(φg (e))) = hg (Cut([e])), – φg (e) 1 [e], – (φg (e) 2 [e]) ∨ (φg (e) ⊂ [e]). Nous sommes maintenant en mesure de caract´riser l’existence d’une s´- e equence infinie du r´seau dans le graphe de pr´fixes finis. e eProposition 3.40 (Graphe de pr´fixes finis doublement ad´quats) Soit e e(G, →, g0 ) un graphe de pr´fixes finis doublement ad´quats de R, m0 . R, m0 e eadmet une s´quence infinie ` partir de m0 ssi une des conditions suivantes est e av´rifi´e : e e – Il existe un circuit dans le graphe (G, →, g0 ), – ∃g ∈ G, ∃e ∈ Cutoff g : φg (e) ⊂ [e]3.4.2 Logique lin´aire ´v´nementielle e e e Dans cette section, nous montrons comment les graphes de pr´fixes finis edoublement ad´quats peuvent ˆtre employ´s pour la v´rification de formules e e e ede logique temporelle ` temps lin´aire. Dans un premier temps, nous nous fo- a ecalisons sur une version ´v´nementielle de LTL. La section suivante traite de e e
    • ´3.4. GRAPHES DE PREFIXES FINIS 63la logique propositionnelle. Il est important de noter que nous limitons notre´tude aux r´seaux de Petri born´s.e e e Dans la logique que nous consid´rons, seul un sous-ensemble des transitions edu r´seau est observ´ (i.e. cela correspond ` un r´seau ´tiquet´ tel que l’´ti- e e a e e e equette de chaque transition est soit la transition elle mˆme, et elle est alors eobserv´e, soit le mot vide). La prise en compte des s´quences maximales, alors e eque les transitions peuvent ˆtre ´tiquet´es par le mot vide, conduit ` traiter les e e e as´quences divergentes (i.e. des s´quences infinies dont un suffixe n’est compos´ e e eque de franchissements de transitions ´tiquet´es par le mot vide). e e Le principe g´n´ral de la m´thode consiste ` construire un syst`me de tran- e e e a esitions ´tiquet´es ´quivalent au graphe des ´tats accessibles du point de vue e e e ede la satisfaction de la formule consid´r´e. Bien entendu, l’objectif est que ce eesyst`me de transitions soit plus petit que le graphe des ´tats accessibles. e e Ce syst`me de transitions ´tiquet´es est construit ` partir d’un graphe de e e e apr´fixes finis dit compatible. Le but est de faire en sorte que toutes les occur- erences des transitions observ´es apparaissent au niveau du graphe et non pas ` e al’int´rieur d’un des pr´fixes. e eD´finition 3.41 (Graphe compatible de pr´fixes finis) Soit O un sous- e eensemble de transitions observables. Un graphe de pr´fixes finis (G, →, g0 ) de e R, m0 est compatible par rapport ` O si ∀g ∈ G, ∀e ∈ Event(Cutoff g ∪ aBridge g ) ∪ Cutoff g , hg (e) ∈ O. / Deux types de comportements peuvent ne pas apparaˆ ıtre directement auniveau du graphe. En effet, un sommet non terminal du graphe peut tr`s bien econtenir un ´tat bloquant. De mˆme, des circuits non repr´sent´s au niveau du e e e egraphe peuvent ˆtre cach´s au sein d’un pr´fixe. Il est ` noter que les circuits e e e ade ce type correspondent ` des s´quences divergentes. Le graphe compatible de a epr´fixes finis doit donc ˆtre compl´t´ pour mettre en ´vidence les comportements e e ee ebloquants et divergents. Le graphe compl´t´ est appel´ un graphe d’observation ´v´nementiel. Le ee e e eprincipe de construction est relativement simple. Un ´tat artificiel (nomm´ ⊥) e eet accessible par tous les pr´fixes contenant un ´tat bloquant est ajout´. De e e eplus, un arc bouclant est ajout´ ` chaque pr´fixe contenant un comportement ea einfini. Enfin, tous les arcs sont ´tiquet´s soit par une transition observ´e (s’ils e e ecorrespondent ` l’occurrence d’une telle transition) soit par le mot vide (dans le acas contraire et pour les arcs compl´mentaires). La d´tection des ´tats bloquants e e eest r´alis´e par les algorithmes [61, 45] d´crits dans la section 3.3.3. La d´tection e e e edes suffixes divergents est obtenue par l’emploi d’un couple fortement ad´quat ed’ordres.D´finition 3.42 (Graphe d’observation ´v´nementiel) Soit O un sous- e e eensemble de transitions observ´es. Soit (G, →, g0 ) un graphe de pr´fixes finis e edoublement ad´quats et compatible par rapport ` O. Le graphe d’observation e a´v´nementiel est d´fini par (O ∪ {τ }, G ∪ {⊥}, −→O , g0 ), o` la relation de tran-e e e usition est donn´e par : ∀g1 , g2 ∈ G, ∀t ∈ O, e t – g1 −→O g2 ssi ∃e ∈ Bridge g1 : hg1 (e) = t ∧ δg1 (e) = g2
    • 64 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI τ τ ar br g0 g1 g2 dr cr τ τ ⊥ Fig. 3.11 – Le graphe d’observation ´v´nementiel correspondant e e τ ∃e ∈ Bridge g1 : (hg1 (e) ∈ O) ∧ (δg1 (e) = g2 ) / – g1 −→O g2 ssi ∨ (∃e ∈ Cutoff g1 : φg1 (e) ⊂ [e]) ∧ (g1 = g2 ) τ ∃C ∈ Conf (Cutoff g1 ∪ Bridge g1 ) : – g1 −→O ⊥ ssi ∀e ∈ Cutoff g1 ∪ Bridge g1 , ∃e ∈ C, e e t τ t – ¬(⊥−→O g2 ) ∧ ¬(⊥−→O g2 ) ∧ ¬(g1 −→O ⊥)Exemple 18 Le graphe de pr´fixes finis de la figure 3.10 est un graphe dou- eblement ad´quat du r´seau de la figure 3.2. De plus, il est compatible avec l’en- e esemble de transitions {ar , br , cr , dr }. Le graphe d’observation ´v´nementiel cor- e erespondant est donn´ dans la figure 3.11. Les nœuds g0 et g1 contiennent une erepr´sentation de l’´tat bloquant sl + qr et ont donc comme successeur l’´tat e e eartificiel ⊥. De mˆme, ils ont des raccourcis ayant des images causalement plus epetites. En cons´quence, des arcs bouclants ´tiquet´s par la transition muette τ e e eleur sont associ´s. e Pour montrer que le graphe d’accessibilit´ et le graphe d’observation sont e´quivalents du point de vue de la satisfaction d’une formule, nous d´finissons lae eprojection d’un mot (fini ou non) σ ∈ T ω sur un sous-ensemble de transitionsO ⊆ T not´ σ O . La projection de σ sur O est d´finie par induction sur sa e elongueur : – λ O = λ, t · σ O si t ∈ O – (t · σ) O = σO si t ∈ O On peut remarquer que la projection d’une s´quence infinie n’est pas n´- e ecessairement infinie (si un suffixe de la s´quence est compos´ uniquement de e etransitions n’appartenant pas ` O alors la projection de la s´quence est finie). a e Nous notons L O (R, m0 ) l’ensemble compos´ de la projection des s´quences e efinies de franchissements de R, m0 et LMax O (R, m0 ) la projection de ses s´-equences maximales (s´quences infinies de franchissements ou conduisant ` un e a
    • ´3.4. GRAPHES DE PREFIXES FINIS 65´tat bloquant). Pour un graphe d’observation ´v´nementiel G, les notations si-e e emilaires L O (G) et LMax O (G) sont employ´es pour d´signer la projection de ses e emots finis et maximaux.Proposition 3.43 (Graphe d’observation ´v´nementiel) Soit O un sous- e eensemble de transitions observ´es. Soit G un graphe d’observation ´v´nementiel e e ed’un graphe de pr´fixes finis doublement ad´quats et compatible par rapport ` e e aO. – L O (R, m0 ) = L O (G) – LMax O (R, m0 ) = LMax O (G) Il est important de noter que cette proposition nous assure que le graphed’observation ´v´nementiel peut ˆtre le support de la v´rification de toute for- e e e emule de logique temporelle ` temps lin´aire portant sur un sous-ensemble des a e´v´nements du syst`me.e e eExemple 19 On peut remarquer que le graphe d’observation ´v´nementiel de e ela figure 3.11 peut ˆtre le support de la v´rification d’une formule de logique e etemporelle telle que GF(X{ar } ⇒ FX{cr } ). La taille de ce graphe est de 4nœuds et 8 arcs alors que celle du graphe d’accessibilit´ du r´seau de la figure e e3.2 est de 10 nœuds et 19 arcs.3.4.3 Logique lin´aire propositionnelle e Un travail similaire peut ˆtre fait dans le cadre d’une logique proposition- enelle. L’´quivalence recherch´e ici est connue dans la litt´rature sous le nom e e ed’´quivalence b´gayante et il a ´t´ montr´ que cette relation d’´quivalence est e e ee e eido¨ pour la v´rification de formule LTL priv´e de l’op´rateur X . Dans le ıne e e econtexte de cette logique, il n’est pas n´cessaire de distinguer dans une s´- e equence deux ´tats successifs v´rifiant le mˆme sous-ensemble de propositions e e eatomiques. Ceci nous permet de d´finir l’ensemble des transitions devant ˆtre e eobserv´es. eD´finition 3.44 (Transitions observ´es) Soit AP un ensemble de proposi- e etions atomiques. Soit v : Reach(R, m0 ) → 2AP une fonction de valuation. Unensemble de transitions O est observ´ si ∀t ∈ O, ∀m1 , m2 ∈ Reach(R, m0 ), e / m1 [t m2 ⇒ v(m1 ) = v(m2 ) Ici encore, le graphe compatible de pr´fixes finis doit ˆtre compl´t´ pour e e eefaire apparaˆ les s´quences bloquantes et les suffixes divergents. Tous les arcs ıtre esont maintenant ´tiquet´s par l’ensembles des propositions atomiques satisfaites e epar les ´tats repr´sent´s dans le pr´fixe. e e e eD´finition 3.45 (Graphe d’observation propositionnel) Soit AP un en- esemble de propositions atomiques. Soit v : Reach(R, m0 ) → 2AP une fonctionde valuation. Soit O un sous-ensemble de transitions observ´es pour AP . Soit e(G, →, g0 ) un graphe de pr´fixes finis doublement ad´quats et compatible par e e
    • 66 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRIrapport ` O. Le graphe d’observation propositionnel est d´fini par (2AP , G ∪ a e{⊥}, −→O , g0 ), o` la relation de transition est donn´e par : ∀g1 , g2 ∈ G, ∀a ∈ u e2AP , a (g1 → g2 ) – g1 −→O g2 ssi a = v(mg1 )∧ ∨ (∃e ∈ Cutoff g1 , φg1 (e) ⊂ [e]) ∧ (g1 = g2 ) a ∃C ∈ Conf (Cutoff g1 ∪ Bridge g1 ) : – g1 −→O ⊥ ssi a = v(mg1 ) ∧ ∀e ∈ Cutoff g1 ∪ Bridge g1 , ∃e ∈ C, e e a a – ¬(⊥−→O g2 ) ∧ ¬(g1 −→O ⊥) Les langages correspondant au r´seau de Petri et au graphe d’observation edoivent ˆtre red´finis par rapport ` la fonction d’´tiquetage v et ` la notion de e e a e ab´gaiement. Le mod`le consid´r´ est maintenant une s´quence (finie ou infinie) e e ee esur l’alphabet 2AP . Soit σ = x1 · x2 · · · un mot fini ou infini sur 2AP . On noteσ k le suffixe de σ commen¸ant par xk et |σ| la longueur de σ. L’extraction de cσ par rapport ` v, not´e σ v est d´finie par : a e e σ v = si |σ| ≤ 1 alors σ sinon si |σ| = ∞ ∧ ∀i > 1, x1 = xi alors σ sinon si x1 = x2 alors (σ 2 ) v sinon x1 · (σ 2 ) v Nous notons L v (R, m0 ) l’ensemble compos´ de l’extraction des s´quences e efinies d’´tats de R, m0 et LMax O (R, m0 ) l’extraction de ses s´quences maxi- e emales (s´quences infinies d’´tats ou conduisant ` un ´tat bloquant). Pour un e e a egraphe d’observation propositionnel G, les notations similaires L v (G) et LMax v (G)sont employ´es pour d´signer l’extraction de ses mots finis et maximaux. e eProposition 3.46 (Graphe d’observation propositionnel) Soit AP un en-semble de propositions atomiques. Soit v : Reach(R, m0 ) → 2AP une fonction devaluation. Soit O un sous-ensemble de transitions observ´es pour AP . Soit G un egraphe ´tiquet´ d’observation d’un graphe de pr´fixes finis doublement ad´quats e e e eet compatible par rapport ` O. a – L v (R, m0 ) = L v (G) – LMax v (R, m0 ) = LMax v (G)3.5 D´pliages de r´seaux de Petri sym´triques e e e Dans cette section, nous introduisons les r´seaux de Petri sym´triques et e emontrons comment nous pouvons tenir compte des sym´tries pour r´duire la e etaille du pr´fixe complet. Notre objectif principal est l’´tude de syst`me commu- e e enicant par des files. Nous comparons plusieurs mod´lisations de files et analysons eles cons´quences du choix d’un mod`le sur la construction d’un pr´fixe complet. e e e3.5.1 R´seaux de Petri sym´triques e e Les sym´tries sont d´finies comme un groupe d’automorphismes sur les ´l´- e e eements du r´seaux. e
    • ´ ´ ´ 3.5. DEPLIAGES DE RESEAUX DE PETRI SYMETRIQUES 67 Ma 1 Ma 2 Ma nsa ta 1 ta 2 ta n-1 ra F1 F2 Fnsb tb 1 tb 2 tb n-1 rb Mb 1 Mb 2 Mb n Fig. 3.12 – Un premier mod`le d’une file born´e e e D´finition 3.47 Un r´seau de Petri sym´trique est un couple R, S o` : e e e u – R = P, T, Pre, Post, Σ, λ est r´seau ´tiquet´, e e e – S est un groupe d’automorphismes de R (i.e. homomorphismes bijectifs de R dans R) invariants par rapport ` la fonction d’´tiquetage λ : ∀t ∈ a e T, ∀g ∈ S : λ(t) = λ(h(t)). Un r´seau sym´trique marqu´ est une structure R, S, m0 o` m0 est un mar- e e e u quage de R. A partir de cette d´finition, nous introduisons la d´finition de marquages e e ´quivalents. e D´finition 3.48 Soit R, S un r´seau sym´trique. Deux marquages m et m e e e de R sont ´quivalents (not´ m ≡ m ) si ∃g ∈ S tel que gl (m) = m . Pour un e e marquage m de R, nous notons m l’ensemble des marquages ´quivalents ` m. e a Si M est un ensemble de marquage, nous notons M l’ensemble {m | ∃m ∈ M : m ≡ m }. L’introduction de files dans les r´seaux de Petri conduit ` une extension e a stricte des r´seaux de Petri fini. Toutefois, quand la taille des files est connue ` e a priori, il est possible de mod´liser une file par un r´seau de Petri. G´n´ralement, e e e e d`s que la taille de la file n’est pas connue ou infinie, la mod´lisation conduit ` e e a un r´seau de Petri infini. Nous allons ´tudier ces deux cas. e e La figure 3.12 donne une premi`re mod´lisation d’une file born´e. Ici, la file e e e peut recevoir deux type de messages (a et b). Les transitions sx correspondent ` a l’ajout d’un message x, et les transitions rx au retrait d’un message x. Chaque position i ∈ [1, n[ de la file est mod´lis´e par trois places {M ai , M bi , Fi } o` e e u les deux premi`res places indiquent la pr´sence d’un message et la derni`re e e e l’absence de message. Evidemment, parmi ces places, une seule est marqu´e. e Quand un message est ajout´, il est rang´ dans la premi`re position. Puis, le e e e message passe ` travers toutes les positions avant d’ˆtre retir´. Le d´faut majeur a e e e de cette mod´lisation est qu’un ´tat de la file est g´n´ralement repr´sent´ par e e e e e e
    • 68 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI sa ra a a A B FIFO b b sb rb Fig. 3.13 – Un exemple de r´seau ` file e a A sa F1 B Ma 1 F1 ta 1 sb F2 A Mb 1 Ma 2 F1 F2 sa tb 1 ra B Ma 1 Mb 2 F2 rbFig. 3.14 – Pr´fixe complet du r´seau de la figure 3.13 bas´ sur le premier e e emod`le d’une file de taille 2 eplusieurs marquages. Par exemple, si la file contient un message, ce messagepeut se trouver dans le r´seau de Petri ` n’importe quelle position. Ainsi, le e amod`le introduit de nombreux marquages et transitions interm´diaires. e e Un pr´fixe complet du r´seau de la figure 3.13 bas´ sur cette mod´lisation e e e ed’une file est donn´ figure 3.14. En g´n´ralisant le d´pliage ` celui d’une file de e e e e ataille n, nous pouvons montrer qu’il contient 1 (n + 1)(n + 2) + 1 ´v´nements 2 e ealors que le syst`me n’a que 2(n + 1) ´tats. e e La deuxi`me mod´lisation d’une file est donn´e figure 3.15. Elle est bas´e e e e esur l’utilisation d’un tableau circulaire et de deux compteurs In et Out. Lavaleur de In (resp. Out) indique la position dans le tableau o` un nouveau umessage doit ˆtre ajout´ (resp. retir´). La figure 3.16 donne le pr´fixe fini du e e e er´seau de la figure 3.13. En g´n´ralisant le d´pliage ` une file de taille n, nous e e e e apouvons montrer qu’il croˆ lin´airement avec la taille de la file. Malgr´ tout, ıt e enotre nouvelle mod´lisation introduit des duplications des ´tats de la file. En e eeffet, deux ´tats identiques de la file peuvent avoir des valeurs de compteurs In eet Out diff´rentes. Cependant ce probl`me peut ˆtre r´solu en introduisant des e e e esym´tries dans le mod`le et en adaptant les r`gles de coupures utilis´es dans le e e e ecalcul du pr´fixe fini. Pour cel`, nous devons ´tendre les technique de d´pliage e a e eaux r´seaux sym´triques. e e
    • ´ ´ ´ 3.5. DEPLIAGES DE RESEAUX DE PETRI SYMETRIQUES 69 In 0 In 1 In n-1 sa sb 0 sa sb 1 sa n-1 sbn-1 0 1 F0 F1 F n-1 Ma 0 Mb 0 Ma 1 Mb 1 Ma n-1 Mb n-1 ra rb ra rb ra rb 0 0 1 1 n-1 n-1Out 0 Out 1 Out n-1 Fig. 3.15 – La deuxi`me mod´lisation d’une file born´e e e e B A F1 B F0 A In 1 In 0 In 1 In 0 sa 0 sb 1 sa 0 Ma 0 Mb 1 Ma 0 Out 0 Out 1 Out 0 rb 1 ra 0 F1 F0 Fig. 3.16 – Un pr´fixe complet du r´seau de la figure 3.13 bas´ sur le deuxi`me e e e e mod`le d’une file de taille 2 e
    • 70 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI3.5.2 Pr´fixe fini complet d’un r´seau sym´trique e e e Un processus arborescent d’un r´seau sym´trique est simplement un proces- e esus du r´seau de Petri sous-jacent. eD´finition 3.49 Un processus arborescent d’un r´seau sym´trique R, S, m0 e e eest un processus arborescent du r´seau R, m0 . e Les sym´tries permettent de relaxer la condition de compl´tude d’un pr´fixe. e e eD´finition 3.50 Un pr´fixe fini Cutoff d’un d´pliage S, h d’un r´seau sym´- e e e e etrique R, S, m0 est complet si h(Reach(Cutoff )) = Reach(R, m0 ). De mani`re analogue, nous red´finissons la notion d’ordre ad´quat et de e e epr´fixe ad´quat. e eD´finition 3.51 (Ordre ad´quat) Soit S, h le d´pliage d’un r´seau sym´- e e e e etrique R, S, m0 . Un ordre partiel sur les configurations du d´pliage est ad´- e equat si – rafine , – est bien fond´, e – est compatible avec l’extension : pour toute transition t et toute paire de configurations C1 , C2 de S telles que ∃g ∈ S, g(h(Cut(C1 ))) = h(Cut(C2 )) : C1 C2 ⇒ ∀C2 ∈ C2 · t, ∃C1 ∈ C1 · g(t) : C1 C2D´finition 3.52 (Pr´fixe fini ad´quat) Un pr´fixe fini Cutoff de S, h est e e e ead´quat s’il existe un ordre ad´quat et une application φ : Cutoff → Conf (Cutoff ) e etels que ∀e ∈ Cutoff : h(Cut(φ(e))) = h(Cut([e])) ∧ (φ(e) [e]).Proposition 3.53 (Pr´fixe fini ad´quat) Si un pr´fixe fini est ad´quat alors e e e eil est complet. Nous pouvons noter que l’ordre de McMillan est ad´quat. En effet, il ne eprend pas en compte l’identit´ de l’´v´nement. e e e La figure 3.17 pr´sente le pr´fixe complet du r´seau de la figure 3.13 utilisant e e eune file de taille 5 (figure 3.15). Le groupe d’automorphisme est donn´ par S = e{gk : P ∪ T → P ∪ T | ∀vi ∈ FIFO, gk (vi ) = vi⊕k ∧ ∀v ∈ FIFO, gk (v) = v}k∈[1,n] /o` ⊕ repr´sente l’op´rateur modulo. Les sym´tries nous permettent de d´tecter u e e e eau plus tˆt la coupure sur l’´v´nement rb. En effet, le marquage atteint apr`s o e e ele franchissement de [rb] est ´quivalent ` l’´tat initial. e a e La mod´lisation d’une file non born´e est similaire ` celle d’une file born´e : e e a eelle utilise simplement un tableau non born´ plutˆt qu’un tableau circulaire. Le e omod`le de la file est donn´ figure 3.18 et permet l’analyse de syst`me ` nombre e e e afini d’´tats dont les bornes des files ne sont pas connues ` priori. e a La figure 3.19 donne un exemple de syst`me born´ utilisant une file non e eborn´e, ainsi que son pr´fixe fini. Nous pouvons noter que l’analyse du pr´fixe e e enous permet de d´duire la borne de la file (la borne est 3 sur l’exemple). e
    • ´ ´ ´ 3.5. DEPLIAGES DE RESEAUX DE PETRI SYMETRIQUES 71 A B F4 A F3 B F2 A F1 B F0 AIn 1 In 0 In 4 In 3 In 2 In 1 In 0 sb 0 sa 4 sb 3 sa 2 sb 1 sa 0 Mb 0 Ma 4 Mb 3 Ma 2 Mb 1 Ma 0 Out 2 Out 1 Out 0 rb 1 ra 0 F1 F0 Fig. 3.17 – Un pr´fixe complet du r´seau de la figure 3.13 bas´ sur le deuxi`me e e e e mod`le d’une file de taille 5 e In 0 In 1 sa sb 0 sa 1 sb 1 0 Ma 0 Mb 0 Ma 1 Mb 1 ra rb ra rb 0 0 1 1 Out 0 Out 1 Fig. 3.18 – Mod´lisation d’une file non born´e e e A B A B R A In 4 In 3 In 2 In 1 In 0 sb 3 sa sb sa 2 1 0 Mb 3 Ma 2 Mb 1 Ma 0 Out 2 Out 1 Out 0 R sa ra rb 1 ra 0 a a R A B FIFO b b sb rb Fig. 3.19 – Un r´seau ` file non born´e et son pr´fixe complet e a e e
    • 72 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI3.6 D´pliage d’un produit de r´seaux sym´triques e e e Consid´rer un syst`me comme un ensemble de composantes interagissant est e ele point de nombreuses optimisations de m´thodes de v´rification. Dans cette e epartie, nous ´tablissons les ´l´ments th´oriques aboutissant ` la conception d’un e ee e aalgorithme de construction d’un pr´fixe complet bas´ sur l’analyse des d´pliages e e edes composants.3.6.1 Produit de r´seaux de Petri e Notre mod`le est un produit de r´seaux de Petri synchronis´s sur des noms e e ed’actions.D´finition 3.54 Soit R1 , . . . , Rn des r´seaux de Petri ´tiquet´s. Notons Ri = e e e e Pi , Ti , Prei , Posti , Σi , λi (nous supposons par commodit´ que les ensembles de eplaces et les ensembles de transitions sont deux ` deux disjoints). Le produit aR = P, T, Pre, Post, Σ, λ des r´seaux Ri est un r´seau ´tiquet´ o` : e e e e u – P = i Pi , – T = {t ∈ i (Ti ∪ { }) | ∃a ∈ ∪i Σi , ∀i : (a ∈ Σi ∧ t[i] ∈ Ti ∧ λi (t[i]) = a) ∨ (a ∈ Σi ∧ t[i] = )}, / – ∀t ∈ T, ∀i, ∀p ∈ Pi : Pre(t)(p) = Prei (t[i])(p) et Post(t)(p) = Posti (t[i])(p), – Σ = i Σi , – ∀t ∈ T, ∀i ∈ [1, n], t[i] = ⇒ λ(t) = λi (t[i]).Si les Ri ont mi comme marquage initial alors R a m0 = i mi comme mar-quage initial. Nous noterons i Ri (resp. i Ri , mi ) le produit des r´seaux eRi (resp. des r´seaux marqu´s Ri , mi ). e e Une propri´t´ fondamentale pour l’´tude du d´pliage d’un produit est la ee e enotion de non-r´entrance. eD´finition 3.55 Soit R = P, T, Pre, Post, Σ, λ, m0 un r´seau ´tiquet´ mar- e e e equ´. Une ´tiquette a de Σ est non-r´entrante sur R si ∀m ∈ Reach(R, m0 ), ∀t, t ∈ e e eT, λ(t) = λ(t ) = a ⇒ Pre(t) + Pre(t ) ⊆ m. Soit R = i Ri , mi un produitde r´seaux Ri . Le produit R est non-r´entrant si ∀a ∈ Σ, ∀i, j, (i = j ∧ a ∈ e eΣi ∩Σj ) ⇒ a est non-r´entrant sur Ri . Un tel produit sera appel´ non-r´entrant. e e eExemple 20 La figure 3.20 pr´sente deux r´seaux R1 , R2 et leur produit. Nous e epouvons noter que le produit est non-r´entrant. Par contre, si nous consid´rons e eles lettres x et y identiques, alors le produit perd sa propri´t´ de non-r´entrance. ee e3.6.2 D´pliage d’un produit de r´seaux de Petri e e Pour la suite de notre ´tude, nous consid´rons un ensemble de r´seaux ´ti- e e e equet´s Ri , mi et leur r´seau produit R, m0 = e e i Ri , mi . Nous noteronsβi = Bi , Ei , In i , Out i , hi le d´pliage de Ri , mi et β = B, E, In, Out , h ele d´pliage du produit. En consid´rant les d´pliages βi comme des r´seaux ´ti- e e e e equet´s, le produit e i βi est clairement d´fini. Noter que ce produit n’est pas e
    • ´ ´ ´3.6. DEPLIAGE D’UN PRODUIT DE RESEAUX SYMETRIQUES 73 U P R P U R x y x y x y V Q S V x y z x y W T Q W S N1 N 2 z T Fig. 3.20 – Un produit non-r´entrant de r´seaux e e P U R2 1 1 U P R 1 1 2 <x,x> <y,y> 1 1 2 2 x y x y <{x},{x}> <{y},{y}> 1 2 1 2 1 1 2 2 Q S Q3 V2 V S4 V V 4 3 2 3 3 <y,y> <x,x> 4 2 5 1 x y x y z <{x,y},{x,y}> <{y,x},{y,x}> 3 1 4 1 2 2 5 2 1 3 4 5 6 S W W Q W W W W T 4 5 6 3 4 5 6 7 5β β 2 1 < ε ,z> < ε ,z> 3 3 <{x,y},{x,y,z}> <{y,x},{y,x,z}> 1 4 1 2 3 2 5 2 1 3 T T 5 5Fig. 3.21 – Processus arborescent d’un produit non-r´entrant de r´seaux de e ePetrin´cessairement un processus arborescent. Cependant, il sera utilis´ comme une e estructure interm´diaire pour relier les ´l´ments du d´pliage β aux d´pliages des e ee e ecomposants βi .Proposition 3.56 Il existe un homomorphisme Ψ de β dans i βi tel que : – ∀b ∈ B, ∀i : Ψ(b) ∈ Bi ⇒ h(b) = hi (Ψ(b)), – ∀e ∈ E, ∀i : si Ψ(e)[i] ∈ Ei alors h(e)[i] = hi (Ψ(e)[i]) sinon h(e)[i] = .Exemple 21 La figure 3.21 donne un exemple d’homomorphisme Ψ du produitde r´seaux de la figure 3.20. A gauche, nous avons les d´pliages des composants ; e ea` droite le d´pliage du produit avec pour chaque ´l´ment, la valeur de la fonction e eeΨ. La fonction Ψ est utilis´e pour caract´riser le comportement de chaque com- e eposante ` partir du comportement du produit. La proposition suivante ´tablit a e
    • 74 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI P U R2 1 1 U P R 1 1 2 <x,x> <x,x> 1 1 1 2 x x x <{x},{x}> <{x},{x}> 1 1 2 1 1 1 2 Q S Q3 V2 V2 S4 V2 4 3 <x,x> <x,x> 2 2 2 1 x z <{x,x},{x,x}> <{x,x},{x,x}> 2 3 1 2 1 2 1 2 1 2 S W W Q W3 T 4 3 3 3 5 β β 2 1 < ε ,z> < ε ,z> 3 3 <{x,x},{x,x,z}> <{x,x},{x,x,z}> 1 2 1 2 3 1 2 1 2 3 T T 5 5Fig. 3.22 – Processus arborescent d’un produit r´entrant de r´seaux de Petri e eque la propri´t´ de non-r´entrance garantit que la fonction Φ est injective, et ee edonc que l’image d’un ´l´ment du d´pliage (une condition ou un ´v´nement) ee e e epeut ˆtre utilis´e pour identifier l’´l´ment. e e eeProposition 3.57 Soit C une configuration de β. Soit pour tout i, C[i] ={Ψ(e)[i] | e ∈ C ∧ Ψ(e)[i] = }. L’ensemble C[i] est une configuration de βi etΨ(Cut(C)) = i Cut(C[i]). De plus, si R, m0 est non-r´entrant alors la fonc- etion qui associe ` une configuration C le tuple de configuration C[1], . . . , C[n] aest injective. La figure 3.22 donne un exemple de syst`me r´entrant pour lequel une confi- e eguration n’est pas identifi´e de mani`re unique par sa projection sur les d´pliages e e ede ces composants. Les deux ´v´nements ´tiquet´s , z3 ont des configurations e e e elocales diff´rentes donnant des projections identiques sur les composantes. e Une fonction importante pour la construction d’un pr´fixe fini est de d´ter- e eminer si deux conditions b1 et b2 sont concurrentes. Traditionellement, ce testconsiste ` v´rifier que l’union des deux configurations locales aux deux condi- a etions forme une configuration. La proposition suivante conduit ` la mise en aœuvre d’une m´thode modulaire pour r´aliser ce test. e eProposition 3.58 Soit C, C deux configurations de β. Si R, m0 est non-r´entrant, alors C ∪ C est une configuration de β ssi ∀i, C[i] ∪ C [i] est une econfiguration de βi .3.6.3 Pr´fixe fini complet d’un produit de r´seaux de Petri e e Dans cette section, nous montrons comment combiner des ordres ad´quats esur les configurations des d´pliages des composants pour obtenir un ordre ad´- e equat sur le d´pliage du produit. Cette ´tude nous conduit ` la notion de pr´- e e a eordre bien ad´quat. eD´finition 3.59 (Pr´-ordre bien ad´quat) Un pr´-ordre e e e e sur les configu-rations d’un d´pliage est bien ad´quat si e e
    • ´ ´ ´3.6. DEPLIAGE D’UN PRODUIT DE RESEAUX SYMETRIQUES 75 – rafine , – est bien fond´, e – est compatible avec l’extension : pour toute transition t et toute paire de configurations C1 , C2 de S telle que h(Cut(C1 )) = h(Cut(C2 )) : 1. C1 C2 ⇒ ∀C2 ∈ C2 · t, ∃C1 ∈ C1 · t : C1 C2 2. C1 ≡ C2 ⇒ ∀C2 ∈ C2 · t, ∀C1 ∈ C1 · t : C1 ≡ C2 Notons que si est un pr´-ordre bien ad´quat alors e e induit un ordrepartiel ad´quat. Cette nouvelle notion permet de combiner facilement des ordres ead´quats pour cr´er de nouveaux ordres plus fins. e eProposition 3.60 Soit 1 , 2 deux pr´-ordres bien ad´quats sur les configu- e erations d’un d´pliage. Soit lex ( 1 , 2 ) la relation d´finie par : e e C lex ( 1, 2) C ssi C 1 C ∨ (C ≡ 1 C ∧C 2 C)Alors la relation lex ( 1, 2) est un pr´-ordre bien ad´quat. e e Un pr´-ordre bien ad´quat sur les configurations du d´pliage d´finit un pr´- e e e e eordre sur les configurations du d´pliage du produit. En combinant lexicographi- equement ces pr´-ordres, il est possible de concevoir des ordres ad´quats pour la e econstruction modulaire du pr´fixe d’un produit. La proposition suivante pr´cise e eles r´sultats de cette m´thode. e eProposition 3.61 Soit pour tout i, i un pr´-ordre bien ad´quat sur les confi- e egurations du d´pliage du r´seau Ri . Soit la relation [i] sur les configurations e edu d´pliage du produit R des Ri d´finies par C [i] C si C[i] i C [i]). Alors e eces relations sont des pr´-ordres bien ad´quats. De plus, si R est non-r´entrant e e eet si pour tout i, i est un ordre total alors lex ( [1] , . . . , [n] ) est un ordre total. La proposition pr´c´dente a des cons´quences importantes. Elle permet de e e es´lectionner le meilleur ordre en fonction du type de composantes. Par exemple, edans [54, 31], les composantes sont des machines ` ´tats, l’ordre choisi est total aeet peut ˆtre facilement test´. Dans la section suivante, nous g´n´raliserons ce e e e er´sultat ` des produits de r´seaux sym´triques afin d’obtenir des ordres totaux e a e ead´quats pour des mod`les manipulant des files et des machines ` ´tats. e e ae3.6.4 Pr´fixe fini complet d’un produit de r´seaux sym´triques e e e Cette partie pr´sente les adaptations attendues des r´sultats pr´c´dants e e e epour des produits de r´seaux sym´triques. Nous donnons dans un premier temps e ela d´finition d’un produit de r´seaux sym´triques, puis red´finissons la notion e e e ede pr´-ordre bien ad´quat et concluons par la proposition donnant un ordre e ead´quat bien ad´quat ` la construction modulaire. e e aD´finition 3.62 Soit R1 , S1 , . . . , Rn , Sn une famille de r´seaux sym´triques. e e eLe produit R, S = i Ri , Si est donn´ par e i Ri , i Si . Un produit der´seaux sym´triques marqu´s e e e i Ri , Si , mi est non-r´entrant si le produit e i Ri , mi est non-r´entrant. e
    • 76 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI La d´finition suivante est simplement une variante de la d´finition 3.59 te- e enant compte des sym´tries. eD´finition 3.63 (Pr´-ordre bien ad´quat) Soit S, h le d´pliage d’un r´- e e e e eseau sym´trique R, S, m0 . Un pr´-ordre e e sur les configurations du d´pliage eest bien ad´quat si : e – rafine , – est bien fond´, e – est compatible avec l’extension : pour toute transition t et toute paire de configurations C1 , C2 de S telle que ∃g ∈ S, g(h(Cut(C1 ))) = h(Cut(C2 )) : 1. C1 C2 ⇒ ∀C2 ∈ C2 · t, ∃C1 ∈ C1 · g(t) : C1 C2 2. C1 ≡ C2 ⇒ ∀C2 ∈ C2 · t, ∀C1 ∈ C1 · g(t) : C1 ≡ C2 La proposition suivante g´n´ralise la proposition 3.61 pour les produits de e er´seaux sym´triques. e eProposition 3.64 Soit pour tout i, i un pr´-ordre bien ad´quat sur les confi- e egurations des d´pliages de r´seaux sym´triques Ri , Si , mi . Soit les relations e e e [i] sur les configurations du d´pliage du produit R, S, m des Ri , Si , mi d´fi- e enies par C [i] C si C[i] i C [i]). Alors ces relations sont des pr´-ordres bien ead´quats. De plus, si R, S est non-r´entrant et si pour tout i, i is un ordre e etotal alors lex ( [1] , . . . , [n] ) est un ordre total.3.7 Construction modulaire du pr´fixe d’un produit e de r´seaux sym´triques e e Dans cette partie, nous montrons comment construire un pr´fixe complet ebas´ sur une d´composition modulaire d’un r´seau. D’autre part, les sym´tries e e e esont prises en compte pour r´duire la taille du pr´fixe. Nous poursuivons notre e e´tude ` la mise en œuvre d’une impl´mentation efficace du d´pliage pour dese a e esyst`mes compos´s de machines ` ´tats et de files. e e ae3.7.1 Construction modulaire L’algorithme 3.1 pr´sente une construction g´n´rique d’un pr´fixe. Les op´- e e e e erations essentielles pour appliquer cet algorithme ` un produit de r´seaux sym´- a e etriques sont la manipulation d’un tas ` priorit´ stockant des ´v´nements tri´s a e e e epar rapport ` leur configuration locale, la d´tection de raccourci et le calcul a edes extensions d’un pr´fixe. Pour obtenir une construction modulaire, toutes eces op´rations doivent ˆtre d´compos´es en op´rations sur les d´pliages des e e e e e ecomposants. Etant donn´es Ci et Ci deux configurations du d´pliage d’un com- e eposante i et bi une condition de i, nous consid´rons les op´rations ´l´mentaires e e eesuivantes : 1. d´cider si (Ci ) e (Ci ), 2. calculer Cut(Ci ),
    • ´3.7. CONSTRUCTION MODULAIRE DU PREFIXE D’UN PRODUIT . . .77Algorithme 3.1 Unfold Prefix func unfold(PetriNet R, m0 ) { Prefix prefix (R, m0 ) ; SortedHeap heap ; heap.put(prefix .InitEvent()) ; while (not heap.isEmpty()) { Event event := heap.getMax() ; prefix .addIn(event) ; if (not prefix .isCutoff(event)) foreach successor in extend(prefix , event) heap.put(successor ) ; } return prefix ;} 3. d´cider si Ci ∪ Ci forme une configuration, e 4. d´cider si bi ∈ Cut(Ci ). e Les propositions 3.56 et 3.57 ´tablissent que toute condition OU ´v´nement e e edu pr´fixe v ∈ B ∪ E peut ˆtre cod´ par Ψ(v) enrichi du n-uplets des confi- e e egurations locales sur chaque composant [v][1], . . . , [v][n] . Pour le calcul d’uneextension du pr´fixe du produit, nous introduisons de nouvelles structures de edonn´es permettant de traiter des extensions locales ` chaque composant. Pour e aun composant i, une extension locale li est un couple (ei , Pre i ) avec ei est un´v´nement du d´pliage du comosant i (ei ∈ Ei ) et Pre i est un ensemble dee e econditions du d´pliage du produit r´f´ren¸ant des conditions du d´pliage du e ee c ecomposant i (Pre i ⊆ Ψ−1 (Bi )). Nous imposons que • ei = Ψ(Pre i ) et que Pre iest un ensemble de conditions concurrentes du pr´fixe d´j` construit. Notons e eaLi l’ensemble des extensions locales et Li (a) les extensions ´tiquet´es par l’ac- e etion a ∈ Σi (Li (a) = {(ei , Pre i ) ∈ Li | λi (hi (ei )) = a}). Par convention, nousd´finissons Li (a) = {( , ∅)} pour a ∈ Σi . En se basant sur ces structures de e /donn´es, les op´rations ´l´mentaires utilis´es pour la construction du pr´fixe e e ee e epeuvent ˆtre r´alis´es de la mani`re suivante : e e e e – Tri des configurations : Nous utilisons l’ordre lexicographique propos´ e dans la proposition 3.64. – Tester si un ´v´nement e est un racourci : Nous calculons la coupure de la e e configuration locale de e par l’identit´ h(Cut([e])) = i hi (CutR ([e][i])) e (voir la proposition 3.57). Ainsi, il suffit de tester l’existence d’un ´v´ne- e e ment e ayant la mˆme valeur de coupure et plus petit que e (i.e. [e ] [e]). e – Calcul d’une extension : Une extension (globale) n’est rien de plus qu’un n-uplet d’extensions locales l1 , . . . , ln relative ` une action donn´e a a e (li ∈ Li (a)). Pour que cette extension soit valide, il suffit de v´rifier que e les conditions k Pre k soient concurrentes : – C = k [Pre k ] est une configuration. Ce test est r´alis´ sur chaque com- e e posant (∀i, k [Pre k ][i] est une configuration du pr´fixe du composant e i). – Toute condition de k [Pre k ] est dans Cut(C). Ce test est aussi r´alis´ e e
    • 78 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRI sur chaque composant (∀i, ∀b ∈ Pre i , Ψ(b) ∈ Cut(C[i])). Noter que les ensembles d’extensions locales Li (a) doivent ˆtre mis ` jour e a apr`s l’ajout d’un ´v´nement dans le pr´fixe du d´pliage du produit. e e e e e3.7.2 Produit de machines ` ´tats et de files ae Appliquer l’algorithme de construction modulaire pr´sent´ pr´c´demment e e e epour des types de composants particuliers suppose la donn´e d’une repr´sen- e etation du pr´fixe des composants, ainsi que la r´alisation des op´rations ´l´- e e e eementaires sur leurs configurations. Dans le cas des machines ` ´tats (finis) et aedes files, ces probl`mes sont tr`s largement simplifi´s. En effet, nous avons une e e erepr´sentation explicite de leurs d´pliages. e e Le d´pliage d’une machine ` ´tats est simplement un arbre. Les conditions e aeet les ´v´nements sont identifi´s par des s´quenses de transitions de la machine. e e e eLa table suivante donne la description formelle du d´pliage. Notons S l’ensemble edes ´tats de la machine, T l’ensemble de transitions et s0 l’´tat initial. e e • El`ment e Codage Ev´nement e e e• σ B σ : σ ∈ T ∗ ∧ s0 −→ σ·t σ σ·t M in { } σ E σ : σ ∈ T + ∧ s0 −→ Les configurations du d´pliage sont aussi des s´quences de transitions. Pour e ecomparer les configurations, nous utilisons la taille de la s´quence puis l’ordre elexicographique en consid´rant une s´quence comme un mot sur l’ensemble des e etransitions. On supposera au pr´alable que les transitions de la machine sont etotalement ordonn´es. Notons lex l’ordre lexicographique, e la relation ”estun pr´fixe de”. Les op´rations ´l´mentaires sur ce d´pliage sont r´alis´es de la e e ee e e emani`re suivante : e 1. d´cider si (σ) e (σ ) : |σ| < |σ | sinon σ lex σ, σ 2. calculer Cut(σ) : {s ∈ S | s0 −→s}, 3. d´cider si σ ∪ σ est une configuration : σ e σ ou σ σ, 4. d´cider si σ ∈ Cut(σ) : σ = σ . e Consid´rons une file (non born´e) manipulant un ensemble Mess. Les ac- e etions repr´sentant l’ajout et le retrait d’un message m seront not´es Send [m] et e eReceive[m]. Le d´pliage a deux types d’´v´nements : Send et Receive. Un ´v´ne- e e e e ement du type Send est compl`tement d´fini par la liste de messages ajout´s ` la e e e afile jusqu’` l’action Send sp´cifi´e ; de la mˆme mani`re, un ´v´nement du type a e e e e e eReceive est d´fini par la liste de messages retir´s de la file. Nous consid´rons e e etrois types de conditions : In, M et Out correspondant aux places du mod`le ede la file. Nous pouvons identifier ces conditions par leurs uniques ´v´nements e epr´d´cesseurs. Les conditions In et M sont des sorties des ´v´nements du type e e e eSend et les conditions Out sont les sorties des ´v´nements Receive. La table e esuivante donne la description formelle de ce d´pliage : e
    • ´3.7. CONSTRUCTION MODULAIRE DU PREFIXE D’UN PRODUIT . . .79 El´ment e Codage B In[σs ] : σs ∈ Send ∗ M [σs ] : σs ∈ Send + Out[σs , σr ] : σs ∈ Send ∗ ∧ σr ∈ Receive ∗ ∧ µ(σs ) = µ(σr ) M in {In[ ], Out[ , ]} E Send [σs ] : σs ∈ Send + Receive[σs , σr ] : σs ∈ Send + ∧ σr ∈ Receive + ∧ µ(σs ) = µ(σr ) • Ev´nement e e e• Send [σs · ts ] In[σs ] In[σs · ts ], M [σs · ts ] Receive[σs · ts , σr · tr ] M [σs · ts ], Out[σs , σr ] Out[σs · ts , σr · tr ] Les configurations sont cod´es par des couples de s´quences de messages e e(σs , σr ) ∈ Mess ∗ × Mess ∗ . La premi`re composante repr´sente la liste des mes- e esages ajout´s et la deuxi`me, la liste des messages retir´s. Nous imposons que e e eσr σs . Notons que l’´tat de la file apr`s la r´alisation des ´v´nements d’une e e e e econfiguration (σs , σr ) est σs σr . De mani`re plus g´n´rale, les op´rations ´l´- e e e e eementaires sur le d´pliage sont r´alis´es de la mani`re suivante : e e e e 1. d´cider si (σs , σr ) e (σs , σr ) : |σs | + |σr | < |σs | + |σr | sinon σs lex σs ou sinon σr lex σr 2. calculer Cut(σs , σr ) : {m ∈ Mess ∗ | µ(σs ) = µ(σr ) · m} 3. d´cider si (σs , σr ) ∪ (σs , σr ) est une configuration : e – σs σs ∧ (σr σr ∨ (σr σr ∧ µ(σr ) µ(σs ))) ou – σs σs ∧ (σr σr ∨ (σr σr ∧ µ(σr ) µ(σs ))) 4. d´cider si b ∈ Cut(σs , σr ) : e – si b = In[σs ] ou b = M [σs ] : σs = σs – si b = Out[σs , σr ] : σs σs ∧ σr = σr Nous pouvons remarquer que toutes ces op´rations peuvent ˆtre impl´men- e e et´es par des calculs ´l´mentaires sur les mots. Il en est de mˆme pour le cas e ee ed’une file born´e. La technique la plus simple est de consid´rer une file bor- e en´e comme la synchronisation de deux files non born´es : une file stockant les e emessages de la file born´e ; une autre file ne stockant qu’un type de message, ecomptant et limitant le nombre de messages de la file born´e. Une technique equasiment ´quivalente est de d´finir explicitement le d´pliage d’une file bor- e e en´e. Les op´rations ´l´mentaires sont de mˆme nature que celles d’une file non e e ee eborn´e. e Esparza et R¨mer [31] donne un calcul du pr´fixe fini d’une file born´e. Il o e ea ´t´ r´alis´ pour illustrer leur technique de d´pliages de produits synchronis´s ee e e e ede machines ` ´tats. Ils utilisent la mod´lisation d’une file born´e donn´e par la ae e e efigure 3.12. Cet exemple pose une question : quel est l’int´rˆt de notre technique eealors qu’il est possible de repr´senter un produit synchronis´ de machine ` ´tats e e aeet de files born´es par un simple produit de machines ` ´tats ? Deux r´ponses e ae ejouent en faveur de notre technique : (1) bien que les mod`les doivent avoir un enombre fini d’´tats, le nombre maximal de messages contenus dans une file n’est epas n´cessairement connu ` priori ; (2) en g´n´ral, le pr´fixe calcul´ par notre e a e e e etechnique est bien plus petit. Notre technique avait ´t´ impl´ment´ dans un outil ee e e
    • 80 ´ ´ CHAPITRE 3. DEPLIAGES DE RESEAUX DE PETRIprototype. Cet outil avait ´t´ utilis´ pour comparer les deux impl´mentations ee e ed’une file sur un mod`le simple de producteur-consommateur communiquant epar une file : le producteur envoie une s´quence finie de messages. Nous avons epu noter que pour une s´quence donn´e, la taille du pr´fixe croˆ lin´airement e e e ıt eavec la taille de la file avec la technique de Esparza et R¨mer, alors qu’elle reste oconstante avec notre technique. Cet exemple est l` pour nous rappeler : (1) que anotre premier mod`le d’une file born´e n’est pas la mod´lisation la plus efficace e e epour analyser des syst`mes ` files ; (2) que l’introduction de sym´tries dans le e a emod`le des r´seaux de Petri conduit ` une mod´lisation des files bien adapt´e e e a e eaux techniques de d´pliages. e3.8 Conclusion Nos principales contributions dans le domaine du d´pliage sont : (1) la econception des premiers algorithmes de v´rification de formules LTLX ; (2) el’´tude de syst`mes manipulant des files (non born´es). Le bogue que nous avons e e ed´tect´ dans la m´thode de F. Wallner [87] a ´t´ corrig´ de mani`re remarquable e e e ee e epar J. Esparza et K. Heljanko [29, 30]. Ces travaux ont ´t´ notre source d’ins- eepiration pour la notion d’ordre doublement ad´quat utilis´e pour la d´tection e e ede cycles. Malgr´ tous ces travaux, notre objectif est et reste la r´alisation d’un e eoutil de v´rification de formules LTL comparable ` l’outil SPIN. e a Jusqu’` pr´sent, beaucoup de prototypes ont ´t´ d´velopp´s pour illustrer a e ee e eles techniques de d´pliage et leurs ´valuations sur des exemples acad´miques e e eont d´montr´ la pertinence de l’approche. Nous pouvons noter toutefois l’outil e ePEP [5] qui int`gre un module de v´rification pour les propri´t´s de sˆret´. e e ee u eCependant, je ne connais pas de grand succ`s des techniques de d´pliages sur e edes syst`mes industriels comme il en existe pour les BDD ou les techniques ede r´duction par ordre partiel. Je pense que la r´alisation d’un outil est ` ce e e ajour n´cessaire pour faire le point sur ces techniques et je suis convaincu que edes am´liorations et des optimisations sont ` trouver pour rendre la technique e aapte ` traiter des syst`mes de grande taille. Par exemple, sur un probl`me a e eaussi simple que la d´tection d’un ´tat bloquant, il est n´cessaire de construire e e eun pr´fixe complet avant de lancer l’algorithme de d´tection alors que dans la e eplupart des autres m´thodes, cette d´tection est r´alis´e simplement ` la vol´e. e e e e a e
    • Chapitre 4V´rification symbolique e Dans les ann´es 90, les industries des composants ´lectroniques, dans leur e erecherche d’outils pour am´liorer le niveau de confiance de leurs produits, ont eadopt´ les diagrammes de d´cisions binaires (BDD) [8] pour traiter des com- e eposants de plus en plus complexes. Les BDD sont des structures codant desfonctions bool´ennes. Ils peuvent ˆtre vus comme des arbres o` les ´tats re- e e u epr´sentent des choix de valeurs de variables bool´ennes ; un ordre total sur les e evariables garantit l’unicit´ du codage d’une fonction. Les techniques de par- etage de structures, combin´es ` des m´thodes de r´ductions, conduisent ` des e a e e aimpl´mentations extrˆmement efficaces en pratique [63, 50]. Ainsi, des v´rifica- e e etions exhaustives ont pu ˆtre r´alis´es sur des syst`mes comprenant des billions e e e ed’´tats [63, 50]. Le pouvoir d’expression des BDD est suffisant pour manipuler eune grande classe de syst`mes finis [9]. De plus, certains syst`mes dynamiques e epeuvent ˆtre pris en compte avec ce type de techniques [53]. Comme le nombre ede variables des syst`mes ´tudi´s est un facteur critique, de nombreuses struc- e e etures ”` la BDD” ont ´t´ propos´es [64, 11]. D’autres structures ont plutˆt cher- a ee e och´ ` ´tendre le domaine d’application de ces techniques [2, 44, 43, 56, 70, 57]. eae Dans le cadre de projets industriels, nous avons con¸u une nouvelle structure ca` la BDD, les Diagrammes de D´cisions de Donn´es (DDD) [17, 7]. Notre objec- e etif ´tait de fournir un outil flexible qui peut ˆtre autant que possible adapt´ pour e e ela v´rification de tout type de mod`les et qui offre des capacit´s de traitement e e esimilaires aux BDD. A la diff´rence des BDD, les op´rations sur nos structures e ene sont pas pr´d´finies, mais une classe d’op´rateurs, appel´e homomorphismes, e e e eest introduite pour permettre ` un utilisateur de concevoir ses propres op´ra- a etions. Dans notre mod`le, les variables ne sont pas bool´ennes ; elles prennent e eleurs valeurs dans des domaines non n´cessairement born´s. Une autre caract´- e e eristique int´ressante est qu’aucun ordre sur les variables est pr´suppos´ dans la e e ed´finition. De plus, une variable peut apparaˆ plusieurs fois dans un mˆme e ıtre echemin. Cette propri´t´ est tr`s utile quand on manipule des structures dy- ee enamiques comme les files. Grˆce ` la grande flexibilit´ de la structure, nous a a eavons montr´ l’aptitude des DDD ` traiter des programmes VHDL (dans le e acadre du projet CLOVIS, un projet DGA). Les succ`s de notre premi`re ´tude e e eont conduit les DDD ` ˆtre choisis (dans le projet MORSE, un projet RNTL) aecomme structures pour la v´rification de syst`mes d´crits en LFP [71, 7], un e e e 81
    • 82 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUElangage de prototypage de haut niveau. La principale limite des structures ` la BDD est qu’elles ne permettent de atraiter que des ensembles finis d’´tats. En particulier, les DDD ont ´t´ con¸us e ee cpour ˆtre une structure g´n´raliste offrant une grande flexibilit´ pour le codage e e e ed’un ensemble d’´tats et autorisant la conception de nouveaux op´rateurs pour e esimuler une grande vari´t´ d’actions. Cependant, d`s qu’une v´rification n´ces- ee e e esite la manipulation d’un ensemble infini d’´tats, les DDD sont inadapt´s. Pen- e edant ma d´l´gation au LSV, dans le groupe infini, j’ai con¸u une nouvelle struc- ee cture, les automates partag´s, pour manipuler des automates finis. L’´mergence e ed’outils ` base d’automates pour la manipulation symbolique de structures in- afinies [91, 26, 3] font qu’am´liorer l’efficacit´ des biblioth`ques d’automates est e e ed’un int´rˆt essentiel. Une approche prometteuse est la r´alisation d’une biblio- ee eth`que ` la BDD parce que les BDD ont largement fait leurs preuves dans la e av´rification de syst`mes finis de grande taille [9]. Notre nouvelle structure pour e ela manipulation d’automates est bas´e sur les deux grands principes des BDD : e – (1) une table de hachage garantit une structure canonique forte de la repr´sentation des automates, et stocke une forˆt d’automates tout en e e partageant les sous-structures communes, – (2) un cache de calcul garde les r´sultats des op´rations sur les automates, e e ainsi que ceux r´alis´s sur leurs sous-structures. e eLe premier principe offre un test d’´galit´ sur les automates en temps constant, e ealors que le deuxi`me permet d’acc´l´rer l’´valuation des op´rations. Le point e ee e eclef de cette nouvelle structure est la d´composition d’un automate en ses com- eposantes fortement connexes et la conception d’un algorithme de minimisationd’automates incr´mental bas´ sur cette d´composition transformant un auto- e e emate en un automate partag´. Nous avons exp´rimentalement compar´ PresTaf, e e eune impl´mentation ´l´mentaire de la logique de Presburger bas´e sur les auto- e ee emates partag´s, et l’outil LASH [91] utilisant des algorithmes classiques sur les eautomates. Cette ´tude exp´rimentale sur un probl`me d’exploration de l’espace e e edes ´tats de syst`mes infinis a montr´ le grand int´rˆt de notre nouvelle struc- e e e eeture, et plus particuli`rement a mesur´ le b´n´fice que les automates partag´s e e e e epeuvent apporter ` des outils comme LASH. a Ce chapitre est organis´ en deux parties. La premi`re partie donne les d´fi- e e enitions des DDDs, des op´rations sur DDD et donne quelques informations sur el’impl´mentation de la biblioth`que que nous avons r´alis´e. Cette partie ter- e e e emine par une ´tude de cas montrant la grande flexibilit´ des DDD ` repr´senter e e a edes mod`les complexes. La deuxi`me partie est d´di´e aux automates partag´s. e e e e eApr`s une ´tude th´orique, nous d´crivons les structures de donn´es et les algo- e e e e erithmes pour l’impl´mentation d’une biblioth`que d’automates partag´s. Enfin, e e enous terminons par une ´tude exp´rimentale. e e
    • ´ ´4.1. DIAGRAMMES DE DECISIONS DE DONNEES 83 a a 1 2 1 2 a b a T 2 1 3 1 21 b 1 1 b 0 0 1 1 Fig. 4.1 – Deux exemples de Diagrammes de D´cisions de donn´es e e4.1 Diagrammes de d´cisions de donn´es e e4.1.1 D´finitions des DDD e Les diagrammes de d´cisions de donn´es (DDD) sont des structures de don- e en´es pour repr´senter des ensembles de s´quences d’affectations de la forme e e ee1 = x1 ; e2 = x2 ; · · · en = xn o` les ei sont des variables et les xi des valeurs de uvariables. Quand les variables apparaissent dans un ordre pr´d´fini et qu’elles e esont de type bool´en, les DDD co¨ e ıncident avec les diagrammes de d´cisions ebinaires. Pour les diagrammes de d´cisions de donn´es, nous n’imposons pas e ed’ordre, une variable peut apparaˆ plusieurs fois dans une mˆme s´quence et ıtre e eles domaines des variables peuvent ˆtre infinis. e Traditionnellement, les diagrammes de d´cisions sont repr´sent´s par des e e earbres. La figure 4.1 donne ` gauche un arbre de d´cisions contenant l’ensemble a edes s´quences A = {(a = 1; a = 1), (a = 1; a = 2; b = 0), (a = 2; b = 3)}. eLe noeud identifi´ par 1 est le noeud terminal acceptant, et 0 le noeud non eacceptant. Parce que nous ne faisons pas d’hypoth`se sur la cardinalit´ des e edomaines, les d´cisions non acceptantes ne sont pas repr´sent´es. Ainsi, le noeud e e e0 n’apparaˆ pas dans la figure 4.1. ıt Tout ensemble de s´quences ne peut pas ˆtre repr´sent´ dans notre forma- e e e elisme. En effet, prenons l’exemple A∪{(a = 2; a = 3)} ; apr`s l’affectation a = 2, eon voudrait repr´senter l’affectation a = 3 et b = 3 et ceci n’est pas possible edans notre structure : les variables sont les ´tiquettes des noeuds et deux arcs ede mˆme valeur doivent ˆtre fusionn´es. Nous avons introduit un nouveau type e e ede noeud terminal , nomm´ ind´fini. Il est utilis´ pour donner des approxi- e e emations de n’importe quel ensemble de s´quences. La figure 4.1 donne ` droite e al’arbre de d´cisions pour l’ensemble A ∪ {(a = 2; a = 3)}. e Dans la suite, E est un ensemble de variables, pour toute variable e, Dom(e)repr´sente le domaine de la variable e. e
    • 84 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUED´finition 4.1 (Diagramme de D´cisions de Donn´es) L’ensemble ID des e e eDDDs est construit inductivement par d ∈ ID si : – d ∈ {0, 1, } ou – d = (e, α) avec : – e∈E – α : Dom(e) → ID, tel que {x ∈ Dom(e) | α(x) = 0} est fini. aNous notons e −→ d, le DDD (e, α) avec α(a) = d et pour tout x = a, α(x) = 0. Pour avoir une repr´sentation canonique des DDD, nous introduisons une erelation d’´quivalence. eProposition 4.2 (Relation d’´quivalence) Soit ≡ la relation d´finie induc- e etivement pour tout d, d ∈ ID par – d = d , ou – d = 0, d = (e , α ) et ∀x ∈ Dom(e ) : α (x) ≡ 0, ou – d = (e, α), d = 0 and ∀x ∈ Dom(e) : α(x) ≡ 0, ou – d = (e, α), d = (e , α ) and (d ≡ 0) ∧ (d ≡ 0), ou – d = (e, α), d = (e , α ) and (e = e ) ∧ (∀x ∈ Dom(e) : α(x) ≡ α (x))La relation ≡ est une relation d’´quivalence. e A partir de maintenant, nous identifirons un DDD ` sa classe d’´quivalence. a eNous utiliserons 0 pour repr´senter l’ensemble vide. Une repr´sentation cano- e enique d’un DDD peut ˆtre obtenue en rempla¸ant tous les DDD ´quivalents ` e c e a0 par le noeud terminal 0. Une caract´ristique importante des DDD est la notion d’approximation. eIntuitivement, d´signe n’importe quel ensemble de s´quences. Quand le noeud e e n’apparaˆ pas dans un DDD, le DDD repr´sente pr´cis´ment un ensemble ıt e e ede s´quences ; nous dirons que le DDD est bien d´fini. e eD´finition 4.3 (Bien d´fini) Un DDD d est bien d´fini si e e e – d = 0, ou – d = 1, ou – d = (e, α) o` ∀x ∈ Dom(e) : α(x) est bien d´fini. u e D’une certaine mani`re, est la pire des approximations d’un ensemble de es´quences. Nous introduisons un ordre partiel formalisant la notion d’approxi- emation : la relation ”mieux d´fini que”. eProposition 4.4 (Mieux d´fini) Soit la relation , appel´e ”mieux d´fini e e eque”, d´finie pour tout ∀d, d ∈ ID par d d si e – d = , ou – d ≡ d , ou – d ≡ 0, d = (e , α ) et ∀x ∈ Dom(e ) : 0 α (x) – d = (e, α), d = (e , α ) et (e = e ) ∧ (∀x ∈ Dom(e) : α(x) α (x))La relation est un ordre partiel sur les classes d’´quivalences de ID. De plus eles DDD bien d´finis sont les ´l´ments minimaux par rapport ` la relation . e ee a
    • ´ ´4.1. DIAGRAMMES DE DECISIONS DE DONNEES 85 Nous imposons que les op´rateurs sur les DDD doivent ˆtre compatibles par e erapport ` la relation mieux d´fini. Ceci conduit ` la d´finition suivante : a e a eD´finition 4.5 (Op´rateur) Soit f une fonction de IDn → ID. f est un op´- e e erateur sur ID si f est compatible par rapport ` la relation : a ∀(di )i ∈ IDn , ∀(di )i ∈ IDn : ∀i : di di ⇒ f ((di )i ) f ((di )i )4.1.2 Op´rations sur les DDD e Dans cette section, nous proposons une g´n´ralisation des op´rations en- e e esemblistes respectant la compatibilit´ par rapport ` la relation mieux d´fini. En e a eparticulier, si les op´randes sont bien d´finis, le r´sultat sera aussi bien d´fini e e e eque possible.D´finition 4.6 (Op´rations ensemblistes) La somme +, le produit ∗, la e ediff´rence de deux DDD sont inductivement d´finis par e e + 0 ∨ (e2 , α2 ) ≡ 0 1 (e2 , α2 ) ≡ 0 0 ∨ (e1 , α1 ) ≡ 0 0 1 (e2 , α2 ) 1 1 1 (e1 , α1 + α2 ) si e1 = e2 (e1 , α1 ) ≡ 0 (e1 , α1 ) si e1 = e2 ∗ 0 ∨ (e2 , α2 ) ≡ 0 1 (e2 , α2 ) ≡ 0 0 ∨ (e1 , α1 ) ≡ 0 0 0 0 0 1 0 1 0 0 (e1 , α1 ∗ α2 ) si e1 = e2 (e1 , α1 ) ≡ 0 0 0 0 si e1 = e2 0 ∨ (e2 , α2 ) ≡ 0 1 (e2 , α2 ) ≡ 0 0 ∨ (e1 , α1 ) ≡ 0 0 0 0 0 1 1 0 1 (e1 , α1 α2 ) si e1 = e2 (e1 , α1 ) ≡ 0 (e1 , α1 ) (e1 , α1 ) (e1 , α1 ) si e1 = e2o` pour toute op´ration ∈ {+, ∗, }, α1 α2 est l’application de Dom(e1 ) → ID u ed´finie par ∀x ∈ Dom(e1 ) : (α1 α2 )(x) = α1 (x) α2 (x). e L’op´ration de concat´nation correspond ` la concat´nation de langage. La e e a ed´finition qui suit tient compte des aspects d’approximation. e
    • 86 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUED´finition 4.7 (Op´ration de concat´nation) e e e Soit d, d deux DDD. La conca-t´nation d · d est inductivement d´finie par : e e d=0∨d ≡0   0  si  d si d=1 d·d =  si d= ∧d ≡0  x (e, x∈Dom(e) (e → (α(x) · d ))) si d = (e, α)  Les op´rateurs que nous venons de d´finir respectent la d´finition d’op´ra- e e e eteurs sur les DDD (d´finition 4.5). Ils v´rifient en partie les propri´t´s habituelles e e eetel que la commutativit´ et l’associativit´. Cependant, on peut noter que ∗ n’est e epas associatif.Proposition 4.8 (Propri´t´s des op´rations ´l´mentaires) Les op´rateurs e e e ee e∗, +, , · sont des op´rateurs sur les DDD. De plus, ∗, + sont commutatifs et +, · esont associatifs. L’op´rateur ∗ n’est pas associatif. e Grˆce aux propri´t´s de l’op´rateur +, nous pouvons repr´senter un DDD a ee e e x(e, α) comme une somme x∈Dom(e) (e → α(x)). Notons que cette somme a unnombre fini de termes non nuls. Par extension, tout DDD est une expression xd´finie ` partir des constantes 0, 1, , de concat´nations ´l´mentaires e−→d et e a e eede sommes de DDD.Exemple 22 Soient dA le DDD repr´sent´ dans la figure 4.1 ` gauche, et dB e e acelui de droite. Ces DDD sont repr´sent´s formellement par : e e 1 1 2 0 2 3 dA = a−→ a−→1 + a−→b−→1 + a−→b−→1 1 1 2 0 2 dB = a−→ a−→1 + a−→b−→1 + a−→ R´alisons quelques calculs : e 2 3 1 1 2 0 2 3 3 dA + a−→a−→1 = a−→ a−→1 + a−→b−→1 + a−→ b−→1 + a−→1 1 1 2 0 2 = a−→ a−→1 + a−→b−→1 + a−→ = dB 1 2 1 2 1 a−→1 ∗ a−→1 ∗ = 0∗ = 0 = a−→1 ∗ a−→1 ∗ = a−→1 ∗ = 2 3 2 dA dB = a−→ b−→1 = a−→ 4 1 1 2 4 0 4 2 dB · c−→1 = a−→ a−→c−→1 + a−→b−→c−→1 + a−→ Notons que le deuxi`me calcul donne un contre exemple de l’associativit´ de e el’op´rateur produit. e En g´n´ral, les propri´t´s classiques de distributivit´ des op´rateurs sont e e ee e erarement v´rifi´es. Cependant d`s que les op´randes et les r´sultats sont bien e e e e ed´finis, ces propri´t´s restent valides. Dans la proposition suivante, nous pr´ci- e ee esons ces propri´t´s en tenant compte de la relation ”mieux d´fini”. ee e
    • ´ ´4.1. DIAGRAMMES DE DECISIONS DE DONNEES 87Proposition 4.9 (Distributivit´ faible) Le produit ∗ et la concat´nation · e esont faiblement distributives par rapport ` la somme + ; la diff´rence est fai- a eblement distributive ` droite avec la somme + : a   d ∗ d1 + d ∗ d2 d ∗ (d1 + d2 )  (d1 d) + (d2 d) (d1 + d2 ) d  ∀d1 , d2 , d ∈ ID :  d · d1 + d · d2 d · (d1 + d2 )  (d1 · d) + (d2 · d) (d1 + d2 ) · d 4.1.3 Homomorphismes sur les DDD Notre objectif est de g´n´raliser la notion d’homomorphisme sur les DDD e een tenant compte de la notion d’approximation introduite par la constante .L’identit´ f (d1 ) + f (d2 ) = f (d1 + d2 ) doit ˆtre r´´crite en rempla¸ant l’´galit´ e e ee c e epar la relation ”mieux d´fini”. Notons que grˆce ` la distributivit´ faible des e a a eop´rateurs, nous d´duisons que la propri´t´ d’homomorphisme est v´rifi´e pour e e ee e eles fonctions classiques suivantes : d ∗ Id, Id d, Id · d, d · Id o` d est un DDD et uId est la fonction identit´. Nous imposons en plus qu’un homomorphisme doit eˆtre un op´rateur sur les DDD et que l’image de 0 est 0.e eD´finition 4.10 (Homomorphisme) Une fonction Φ sur les DDD est un ehomomorphisme si Φ(0) = 0 et Φ(d1 ) + Φ(d2 ) Φ(d1 + d2 ) ∀d1 , d2 ∈ ID : d1 d2 ⇒ Φ(d1 ) Φ(d2 ) La somme et la composition de deux homomorphismes sont des homomor-phismes.Proposition 4.11 (Somme et composition) Soit Φ1 , Φ2 deux homomor-phismes. Alors Φ1 + Φ2 , Φ1 ◦ Φ2 sont des homomorphismes. Jusqu’` pr´sent, nous avons ` notre disposition les homomorphismes d∗Id et a e aId d qui donnent la possibilit´ d’extraire ou de retirer des s´quences contenues e edans un DDD donn´. Les deux homomorphismes Id · d et d · Id permettent la econcat´nation d’un ensemble de s´quences ` gauche ou ` droite. Par exemple, e e a al’ajout ` gauche d’une affectation e1 = x1 est tr`s souvent utilis´ et est r´alis´ a e e e e x1par l’homomorphisme de concat´nation e1 −→Id. Evidemment, nous pouvons ecombiner des op´rateurs ` l’aide de la somme et de la composition. e a Cependant le pouvoir d’expression de ces homomorphismes ´l´mentaires est eetr`s limit´ ; par exemple, nous ne pouvons d´finir l’op´rateur qui modifie la va- e e e eleur d’une variable. Une mani`re simple de cr´er sa propre fonction Φ est de don- e e xner les valeurs de la fonction pour 1 et les DDD de la forme e−→d ; la valeur de la xfonction pour le DDD (e, α) pourra ˆtre donn´e par x∈Dom(e) Φ(e−→α(x)) et e eon pourra poser Φ( ) = . Une condition suffisante pour que Φ soit un homo- xmorphisme est que les applications Φ(e, x) d´finies par Φ(e, x)(d) = Φ(e−→d) e x+1soient des homomorphismes. Par exemple, inc(e, x) = e−→Id et inc(1) = 1d´finissent l’homomorphisme incr´mentant la valeur de la premi`re variable. e e e
    • 88 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUEL’introduction de la r´cursivit´ dans la description d’un homomorphisme ´tend e e etr`s largement le pouvoir d’expression de ces homomorphismes. Par exemple, enous pouvons g´n´raliser notre op´ration d’incr´mentation ` l’homomorphisme e e e e ainc(e1 ) qui incr´mente la valeur de la variable e1 . Cet homomorphisme est donn´ e e x+1 xpar inc(e1 )(e, x) = e−→Id si e = e1 et sinon inc(e1 )(e, x) = e−→inc(e1 ). Eneffet si la premi`re variable du DDD est e1 alors la valeur de e1 est incr´ment´e, e e esinon l’homomorphisme est appliqu´ r´cursivement sur les variables suivantes. e eLa proposition suivante formalise la notion d’homomorphisme r´cursif. eProposition 4.12 (Homomorphisme r´cursif ) Soit I un ensemble d’indices. eSoit (di )i∈I une famille de DDD. Soit (τi )i∈I et (πi,j )i,j∈I une famille d’homo-morphismes. Supposons que ∀i ∈ I, l’ensemble {j ∈ I | πi,j = 0} est fini. Alorsles fonctions r´cursives (Φi )i∈I : e   0  si d=0  d si d=1 i ∀d ∈ ID, Φi (d) =   si d= πi,j ◦ Φj (α(x)) + τi (α(x)) si d = (e, α)  x∈Dom(e),j∈Isont des homomorphismes. De tel homomorphismes sont appel´s homomor- ephismes inductifs. Nous noterons l’expression j∈I πi,j ◦ Φj + τi par Φi (e, x). Un homomorphisme inductif Φ est donn´ par des homomorphismes inductifs eΦ(e, x) et sa valeur Φ(1). Les deux exemples suivants illustrent le pouvoir decette notion pour concevoir de nouveaux homomorphismes. Le premier exempledonne la description formelle de l’op´rateur d’incr´ment. Le second exemple est e eun op´rateur de permutation des valeurs de deux variables. eExemple 23 L’op´rateur d’incr´ment est donn´ par : e e e x+1 e −→ Id si e = e1 inc(e1 )(e, x) = x e −→ inc(e1 ) sinon inc(e1 )(1) = 1 D´taillons l’application de inc sur un DDD : e 1 2 3 4 1 2 3 4 inc(b)(a−→b−→c−→d−→1) = a−→inc(b)(b−→c−→d−→1) 1 3 3 4 = a−→b−→Id (c−→d−→1) 1 3 3 4 = a−→b−→c−→d−→1Exemple 24 L’homomorphisme swap(e1 , e2 ) permute les valeurs des variablese1 et e2 . Sa description utilise trois autres homomorphismes r´cursifs : rename(e1 ), edown(e1 , x1 ), up(e1 , x1 ). L’homomorphisme rename(e1 ) renomme la premi`re evariable e1 ; down(e1 , x1 ) affecte la variable e1 ` la valeur x1 et recopie l’an- acienne affectation de e1 en premi`re position ; up(e1 , x1 ) met en seconde position el’affectation e1 = x1 .
    • ´ ´4.1. DIAGRAMMES DE DECISIONS DE DONNEES 89   rename(e1 ) ◦ down(e2 , x) si e = e1 swap(e1 , e2 )(e, x) = rename(e2 ) ◦ down(e1 , x) si e = e2 x e −→ swap(e1 , e2 ) sinon  swap(e1 , e2 )(1) = x rename(e1 )(e, x) = e1 −→ Id rename(e1 )(1) = x 1 x e −→ e −→ Id si e = e1 down(e1 , x1 )(e, x) = up(e, x) ◦ down(e1 , x1 ) sinon down(e1 , x1 )(1) = x 1 x up(e1 , x1 )(e, x) = e −→ e1 −→ Id up(e1 , x1 )(1) = Le rˆle de chaque homomorphisme r´cursif est illustr´ par l’´valuation sui- o e e evante : 1 2 3 4 1 2 3 4 swap(b, d)(a−→b−→c−→d−→1) = a−→swap(b, d)(b−→c−→d−→1) 1 3 4 = a−→rename(b) ◦ down(d, 2)(c−→d−→1) 1 4 = a−→rename(b) ◦ up(c, 3) ◦ down(d, 2)(d−→1) 1 4 2 = a−→rename(b) ◦ up(c, 3)(d−→d−→1) 1 4 3 2 = a−→rename(b)(d−→c−→d−→1) 1 4 3 2 = a−→b−→c−→d−→1 1 2 3 4 1Remarquons que swap(b, e)(a−→b−→c−→d−→1) = a−→ .4.1.4 Impl´mentation d’une biblioth`que de diagrammes de d´- e e e cisions de donn´es e Pour ´crire un programme orient´ objet manipulant des DDD, un program- e emeur a besoin d’une hi´rarchie de classes traduisant les concepts math´matiques e edes DDD, des op´rations ensemblistes, de la concat´nation, d’homomorphismes e eet d’homomorphismes inductifs. Ces concepts sont traduits dans notre interfacepar la d´finition de trois classes (DDD, Hom and InductiveHom) pour lesquelles etous les moyens de construire et de manipuler des DDD sont donn´s. En effet, el’objectif de notre travail est la conception d’une biblioth`que simple d’emploi ; eainsi nous avons utilis´ la surcharge des op´rateurs de C++ pour rendre aussi e eintuitif que possible l’interface de la biblioth`que. e D’un point de vue th´orique, un homomorphisme inductif Φ est un homo- emorphisme d´fini par le DDD Φ(1) et une famille d’homomorphisme Φ(e, x). Les ehomomorphismes inductifs ont en commun leurs m´thodes d’´valuation et ceci e econduit ` la d´finition d’une classe, nomm´e InductiveHom, qui contient la m´- a e e ethode d’´valuation, et donne, en terme de m´thodes abstraites, les composantes e e
    • 90 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUEd’un homomorphisme inductif ; Φ(1) et Φ(e, x). Pour concevoir un homomor-phisme inductif, il suffit de d´river la classe InductiveHom et d’impl´menter les e em´thodes abstraites Φ(1) et Φ(e, x). e L’impl´mentation de notre interface est bas´e sur les trois modules suivants : e e – Un module de manipulation des DDD : grˆce ` la technique de la table a a d’unicit´ inspir´e des BDD, il impl´mente le partage des sous structures e e e et garantit la canonicit´ de la structure arborescente des DDD. e – Un module de manipulation des homomorphismes : il manipule les don- n´es, ainsi que les m´thodes d’´valuation des homomorphismes. La canoni- e e e cit´ syntaxique d’un homomorphisme est garantie par une table d’unicit´. e e Nous utilisons la notion de classes d´riv´es pour repr´senter de mani`re e e e e uniforme une large classe de type d’homomorphismes. – Un module de calcul : il fournit la m´thode d’´valuation des op´rations e e e des DDD, ainsi que celle de l’´valuation des homomorphismes. Pour acc´- e e l´rer les calculs, ce module utilise un cache de calcul pour ´viter les ´va- e e e luations redondantes. L’utilisation d’un cache de calcul ram`ne la com- e plexit´ de l’´valuation des op´rations ensemblistes ` des temps polyno- e e e a miaux. Comme les homomorphismes inductifs sont con¸us par des utili- c sateurs de la biblioth`que, nous ne pouvons pas connaˆ e ıtre ` l’avance la a complexit´ de leurs ´valuations. e e4.1.5 Une ´tude de cas : le BART de San Francisco e Cette section d´crit sommairement l’utilisation des DDD dans le calcul des e´tats d’un mod`le de syst`me ferroviaire, en l’occurence le BART de San Fran-e e ecisco, mod´lis´ dans un langage de prototypage de haut niveau Lf P. e eLe langage Lf P. Lf P est un langage pivot destin´ ` fournir une description formelle de sys- eat`mes distribu´s. Les comportements sont exprim´s en Lf P au moyen d’auto- e e emates et supporte une conception orient´e objet. En outre, le langage propose eles fonctionnalit´s de haut niveau telles que l’envoi de messages, les appels ede proc´dures distants, l’instanciation dynamique et la destruction d’instances eainsi que les appels de m´thodes avec passage de param`tres. La possibilit´ de e e etraduire une sp´cification Lf P en une repr´sentation des ´tats sous la forme de e e eDDD, et des transitions sous la forme d’homomorphismes rendent possible lav´rification formelle des mod`les au moyen de cette repr´sentation compacte. e e eNous montrons comment ces caract´ristiques ont pu ˆtre impl´ment´es en uti- e e e elisant les DDD pour le calcul des ´tats accessibles du syst`me BART. e eUn mod`le du syst`me ferroviaire BART. e e L’architecture UML du syst`me ferroviaire est pr´sent´e Figure 4.2. Le mo- e e ed`le est compos´ de 7 classes : e e – Extern data repr´sente une approximation du monde r´el utilis´e par la e e e simulation. Cette classe n’est pas represent´e par un DDD, elle est im- e
    • ´ ´4.1. DIAGRAMMES DE DECISIONS DE DONNEES 91 * 1 Extern_data 1 1 * 1 * * * Train Anti_collision_system Move_controller * * * * * 1 1 1 Line_manager 1 1 1 1 1 Comm 1 1 1 operator 1 Fig. 4.2 – Description UML du mod`le BART e pl´ment´e sous la forme d’une biblioth`que externe mod´lisant le monde e e e e r´el. e – Operator repr´sente l’op´rateur qui d´marre le syst`me et peut remplir e e e e d’autres fonctions qui n’ont pas ´t´ incluses dans l’impl´mentation. ee e – Line Manager contrˆle l’insertion et l’enl`vement des trains sur une ligne. o e – Train repr´sente le calculateur ` bord d’un train. Celui-ci met ` jour les e a a param`tres du train (position, vitesse) en fonction des messages re¸us. e c – Move controller et Anti collision system sont les contrˆleurs associ´s ` un o e a train. Move controller contrˆle les mouvements du train en fonction des o param`tres (position, vitesse) ainsi que d’´ventuels messages d’alerte en e e provenance du d´tecteur de collision Anti collision system. Le d´tecteur de e e collision est constamment inform´ de la position du train pr´d´cesseur et e e e peut donc initier les proc´dures d’urgence. e – Comm repr´sente le syst`me de communication. Il a son propre syst`me e e e d’adressage. Chaque instance communicante re¸oit une adresse au d´but c e de son ex´cution. Les messages sont stock´s dans des zones m´moires, ap- e e e pel´es binders. Un binder global partag´ par toutes les instances contient e e les messages envoy´s. A chaque instance est associ´ un binder local et un e e processus, appel´ m´dia, qui transfert les messages du binder global vers e e le binder local. Chaque instance d’objet s’ex´cute selon l’automate associ´. Le calcul des e e´tats se fait en consid´rant que tout franchissement de transition est atomique.e eCe calcul prend donc en compte tous les entrelacements possibles des ex´cutions eparall`les. eCalcul des ´tats accessibles avec les DDD e Nous d´crivons dans ce paragraphe le codage du mod`le Lf P au moyen des e eDDD. Sch´matiquement, la structure choisie pour coder l’´tat d’un mod`le ex- e e eprim´ en Lf P est repr´sent´e figure 4.3. Global information sont les variables e e eglobales. Les variables globales contiennent aussi un ou plusieurs binders glo-baux servant aux communications entre les instances. Un seul binder global estcr´´ dans le cas du BART. Une instance de classe comporte des attributs, un eecompteur de programme et une pile. Le binder est un multi-ensemble servanta` mod´liser un r´ceptacle de messages. Le local m´dia est une instance par- e e e
    • 92 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE Global information Class1 instances and local media ... Class instances and local media nShared variables Class instance Binders Local media ... Class instance Binders Local media Instance attributes Program counter Stack Program counter Local variables Program counter Parameters Local variables ... Program counter Parameters Local variables Fig. 4.3 – Structure d’un ´tat du mod`le e e ticuli`re mod´lisant le protocole de communication. La d´finition d’un ordre e e e d´terministe ` tous les niveaux de la hi´rarchie est tr`s importante pour garan- e a e e tir une repr´sentation canonique de l ´tat. Une ´tude pr´liminaire du mod`le e e e e e doit ˆtre men´e afin de d´terminer un codage canonique efficace de l’´tat. e e e e Dans notre impl´mentation du syst`me BART, un ´tat a les caract´ristiques e e e e dynamiques suivantes : – le nombre d’instances peut varier (cr´ation et destruction), e – chaque instance contient une pile pouvant contenir des variables locales, des param`tres d’appel de proc´dure distant, et une valeur de retour du e e compteur de programme PC, – les binders contiennent un nombre variable de messages, leur capacit´ e maximale est fix´e par le mod`le, e e – les m´dia locaux stockent des messages, leur capacit´ maximale est fix´e e e e par le mod`le, e – les adresses sont stock´es dans des variables de type ensemble, e – les messages sont des vecteurs dont la taille d´pend de leur type, e Nous avons impl´ment´ un ensemble d’homomorphismes qui, combin´s en- e e e semble, permettent de repr´senter la s´mantique op´rationnelle de Lf P. La e e e composition de ces homomorphismes permet de r´aliser des actions telles que : e l’envoi de message, la r´ception de message, l’´valuation des pr´conditions des e e e transitions, les appels de proc´dures distants et des m´thodes locales, la cr´a- e e e tion et la destruction d’instances. Ces homomorphismes s’appuient sur des op´- e rateurs de base tels que : l’affectation de variable, l’´valuation d’expressions, e les op´rations sur les piles, les multi-ensembles et les tableaux. Les transitions e sont impl´ment´es au moyen de deux homomorphismes. Test transition(t) va e e retourner un DDD identifiant les ´tats qui satisfont la pr´condition. Comme e e une transition peut ˆtre franchissable simultan´ment par plusieurs instances, e e un ´tat sera retourn´ pour chaque instance afin de pouvoir calculer toutes les e e s´quences possibles. Fire transition(t) va retourner l’ensemble des ´tats obtenus e e apr`s le franchissement de la transition. e
    • ´ ´4.1. DIAGRAMMES DE DECISIONS DE DONNEES 93 Le calcul des ´tats accessibles est r´alis´ au moyen d’une boucle qui tente e e ele franchissement de chacune des transitions. L’accumulation des ´tats s’arrˆte e equand aucun nouvel ´tat n’est cr´´. e eeR´sultats de l’exp´rimentation e e L’impl´mentation du mod`le a requis le codage de plus de 100 transitions e eet l’´laboration d’ ´tats repr´sentant jusqu’` (6×t + 4) tˆches si t est le nombre e e e a amaximum de trains. Les exp´rimentations ont ´t´ r´alis´es sur un Pentium 4 e ee e ecadenc´ ` 2.2 Giga hertz et 512M de m´moire. ea e Trois hypoth`ses ont ´t´ d´finies afin de pouvoir stocker le r´sultat en m´- e ee e e emoire. La premi`re hypoth`se H0 a trait ` la mise ` jour de la position physique e e a ades trains. H0 suppose que toutes les transitions proc´dant ` la mise ` jour e a ades param`tres physiques des trains sont franchies s´par´ment et ne sont en- e e etrela¸ables avec aucune autre transition du syst`me. Ces transitions ne sont c eexamin´es que lorsque le calcul des ´tats ne progresse plus avec les donn´es e e ecourantes. Cette hypoth`se est relativement faible dans la mesure o` elle per- e umet d’´viter de consid´rer des cas de d´tection de collision de deux trains dont e e eles positions sont calcul´es ` des dates diff´rentes. e a e La seconde hypoth`se H1 contient H0 et suppose que les communications elocales entre une instance et son m´dia local sont termin´es avant la mise ` jour e e asynchronis´e de la position des trains. Ceci nous permet d’´viter de consid´rer e e edes cas d’arriv´e tardive de messages asynchrones. Ces messages invalides sont een contradiction avec l’hypoth`se que dans le mod`le, les communications sont e efiables. Cette hypoth`se suppose ´galement que le Line Manager ne tente pas e el’ajout ou le retrait d’un train lors de la mise ` jour synchronis´e des trains. a eCette hypoth`se vise ` limiter l’entrelacement des franchissements des transi- e ations au moment ou la simulation modifie les positions des trains. La troisi`me hypoth`se H2, est beaucoup plus forte et a ´t´ mise en place e e eepour permettre le calcul des ´tats avec 512M de m´moire. Cette hypoth`se e e econtient H1 et, de plus, suppose qu’aucun message ne circule durant la mise ` ajour simultan´e de la position des trains. e Les r´sultats montrent que l’impact de cette seconde hypoth`se est impor- e etant mˆme quand la taille du binder global est minimale (3 messages). Toutes eles ex´cutions ont ´t´ r´alis´es avec la mˆme description physique des trains et e ee e e ede la voie. Le mod`le physique simulant les trains a ´t´ ajust´ pour que celui-ci e ee eg´n`re 6 positions. Dans le cas d’ex´cution pour deux trains, 2 situations de e e etraitement anti-collision se produisent. Les tableaux suivant r´sument quelques eexp´rimentations. Le DDD r´sultant contient tous les ´tats accessibles. Colonne e e eT aille Glb est la capacit´ de stockage, en nombre de messages, du binder global. eColonne T aille Loc est la capacit´ de stockage, en nombre de messages, d’un ebinder local et de son m´dia. Colonne N bEtats est le nombre total d’´tats. Co- e elonne LM ax est la taille maximum de l’´tat en nombre d’affectations. Colonne epartage est la taille du DDD en nombre de noeuds. Un noeud utilis´ plusieurs efois compte pour 1 en utilisation m´moire. Colonne sans partage est la taille edu DDD sans utiliser le partage. Une comparaison avec la colonne pr´c´dente e e
    • 94 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUEdonne une id´e qualitative du codage de l’´tat. En effet, un partage efficace est e eimportant pour la sauvegarde de l’espace m´moire. Colonne T emps donne la edur´e du calcul en secondes. Les tables montrent l’impact de la capacit´ des e ebinders et m´dia sur le calcul des ´tats. La table 4.1 consid`re 1 train avec l’hy- e e epoth`se H1. La table 4.2 consid`re 2 trains avec l’hypoth`se H2. La table 4.3 e e econsid`re 2 trains avec l’hypoth`se H1. Les r´sultats montrent que les capacit´s e e e ede stockage locales ont un impact limit´. Les param`tres d´terminant sont le e e enombre de trains, la capacit´ du binder global et les hypoth`ses restrictives. Les e er´sultats de la table 4.3 n’ont pu ˆtre termin´s faute de m´moire. e e e e Taille Glb Taille Loc NbEtats LMax partage sans partage Temps (sec) 3 1 10606 118 8343 250405 11 4 1 40099 124 18872 853917 27 5 1 74440 130 29222 1.54e+06 46 3 2 48237 121 10708 994775 17 3 3 62068 121 11320 1.25e+06 21 3 4 63706 121 11165 1.28e+06 21Tab. 4.1 – Impact de la capacit´ de communication sur le calcul des ´tats, 1 e etrain et H1. Taille Glb Taille Loc NbEtats LMax partage sans partage Temps (sec) 3 1 286339 182 101600 1.03e+07 1430 4 1 335827 182 122403 1.24e+07 1874 5 1 347075 182 134551 1.29e+07 2099 3 2 363981 182 97713 1.29e+07 1379 3 3 363981 182 97713 1.29e+07 1378 3 4 363981 182 97713 1.29e+07 1379Tab. 4.2 – Impact de la capacit´ de communication sur le calcul des ´tats, 2 e etrains and H2. Taille Glb Taille Loc NbEtats LMax partage sans partage Temps (sec) 3 1 2572353 197 207273 7.61e+07 4023 3 2 50765313 197 237542 1.13e+09 8152 3 3 53812153 197 230360 1.21e+09 8313 3 4 53887381 197 227043 1.21e+09 8283Tab. 4.3 – Impact de la capacit´ de communication sur le calcul des ´tats, 2 e etrains and H1. Nous avons montr´ qu’il ´tait possible de traduire une sp´cification de haut e e eniveau d’un syst`me distribu´ complexe dans le formalisme des DDD afin de e ecalculer les ´tats accessibles du syst`me. Cette exp´rimentation a montr´ que e e e e
    • ´4.2. AUTOMATES PARTAGES 95les DDD ´taient adapt´s ` la v´rification de mod`le comportant des m´canismes e e a e e ecomplexes : – instanciation et destruction dynamique d’objets, – syst`mes communicant de fa¸on synchrone et asynchrone et utilisant un e c adressage dynamique, – interactions entre tˆches ex´cut´es en parall`le, a e e e – appels de proc´dures distants, appels de m´thodes, pile, passages de pa- e e ram`tres, e Cette utilisation des DDD a contribu´ au d´boguages et ` la validation du e e amod`le. En particulier, il a ´t´ possible de d´tecter et corriger des probl`mes e ee e enon triviaux de synchronisation et d’adressage du mod`le original. e4.2 Automates partag´s e4.2.1 Pr´liminaires eAutomates finis d´terministes Un automate fini d´terministe (DFA) sur e eun alphabet fini Σ est une structure A = Q, Σ, δ, F o` Q est un ensemble fini ud’´tats, F ⊆ Q est l’ensemble des ´tats finaux, et la fonction de transition est e edonn´e par e δ : Q × Σ → Q.Un DFA enrichi d’un ´tat initial A, q , not´ Aq , est appel´ DFA marqu´. La e e e efonction de transition δ est ´tendue aux mots : e δ ∗ : Q × Σ∗ → Q δ ∗ (p, ) = p δ ∗ (p, xa) = δ(δ ∗ (p, x), a)o` x est un mot et a ∈ Σ. Ainsi un DFA marqu´ Aq accepte un mot x u esi δ ∗ (q, x) ∈ F . Notons L(Aq ) l’ensemble des mots accept´s par Aq . Deux e´tats sont Nerode ´quivalents si ils acceptent les mˆmes mots : p ∼ q ⇔e e eL(Ap ) = L(Aq ). L’´quivalence de Nerode est compatible avec la fonction de etransition (p ∼ q ⇒ δ(p, a) ∼ δ(q, a)). La compatibilit´ induit la d´finition de e el’automate quotient : A/∼ = Q/∼ , Σ, δ/∼ , F/∼ avec δ/∼ (p/∼ , a) = δ(p, a)/∼ .Notons L(A/∼ q ) = L(Aq ) pour tout ´tat q. Un DFA est dit minimal si tous e /∼les ´tats sont deux ` deux non ´quivalents. Rappelons qu’un DFA marqu´ Aq e a e eest minimal (en terme de nombre d’´tats) si A est minimal et tout ´tat est e eaccessible ` partir de q ; de plus tout automate marqu´ minimal acceptant le a elangage L(Aq ) est ´gal ` Aq modulo un isomorphisme. Minimiser un automate e aA consiste ` calculer l’automate quotient A/∼ . Les automates marqu´s sont a eutilis´s pour repr´senter des langages. Minimiser un automate marqu´ induit e e eune repr´sentation canonique du langage. Les op´rations ensemblistes sur les e elangages sont r´alis´s en construisant un produit synchronis´ d’automates et en e e ecalculant l’ensemble des ´tats finaux en fonction de l’op´ration. Par exemple, e e´tant donn´s trois langages L1 , L2 , L3 associ´s respectivement aux automatese e emarqu´s A1p , A2q , A3r , l’automate marqu´ A(p,q,r) du if-then-else (ite) des trois e e
    • 96 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE q3 q1 q1 0 1 0 1 0 1 q2 0,1 q0 q2 0 1 q0 q2 0,1 0,1 q0 0 1 0 1 0 1 q1 q4 q3 q4 q3 1 0 e1 1 e0 0 1 e0 0 1 0 e0 OA1 OA2 OA3 Fig. 4.4 – Exemples d’automates ` sorties alangages, L = ite(L1 , L2 , L3 ) = (L1 ∩ L2 ) ∪ (L1 ∩ L3 ), est d´fini par : e Q = Q1 × Q2 × Q3 δ((u, v, w), a) = (δ1 (u, a), δ2 (v, a), δ3 (w, a)) . F = {(u, v, w) : if u ∈ F1 then v ∈ F2 else w ∈ F3 } Deux autres op´rations jouent un rˆle important pour des calculs symbo- e oliques ` base d’automates : la clˆture existentielle cl∃ (L) et la clˆture universelle a o a o ∀cla (L) d’un langage L par rapport ` une lettre a. a cl∃ (L) = {w|w.a∗ ∩ L = ∅} a cl∀ (L) = {w|w.a∗ ⊆ L} aL’automate de la clˆture existentielle cl∃ (L(Aq )) est obtenu en modifiant l’en- o asemble des ´tats finaux F de l’automates A en F = {p | ∃n : δ ∗ (p, an ) ∈ F }. La eclˆture universelle peut ˆtre trait´e de mani`re anologue en tant qu’op´ration o e e e eduale de la clˆture existentielle : cl∀ (L) = cl∃ (L). o a aAutomates ` sorties aD´finition 4.13 Un automate fini d´terministe ` sorties (DFOA) sur un al- e e aphabet fini Σ est une structure O = Q, Out, Σ, δ, F o` Q et Out sont des uensembles finis disjoints d’´tats, F ⊆ Q l’ensemble des ´tats finaux, et la fonc- e etion de transition est donn´e par e δ : Q × Σ → Q ∪ OutLes ´tats de Q sont appel´s ´tats locaux, et les ´tats de Out sont appel´s ´tats e e e e e ede sorties. Un DFOA enrichi d’un ´tat initial O, q , not´ Oq , est appel´ DFOA e e emarqu´.e La fonction de transition δ est ´tendue partiellement ` des mots : e a δ ∗ : (Q ∪ Out) × Σ∗ → Q ∪ Out δ ∗ (p, ) = p δ(δ ∗ (p, x), a) si δ ∗ (p, x) ∈ Q δ ∗ (p, xa) = non d´fini e sinon
    • ´4.2. AUTOMATES PARTAGES 97o` x est un mot, et a ∈ Σ. Un DFOA marqu´ Oq accepte localement le mot u ex si δ ∗ (q, x) ∈ F . Notons l’ensemble des mots localement accept´s L(O ). Re- e qmarquons que quand O n’a pas de sorties (Out = ∅), un DFOA est un DFAet que L(Oq ) repr´sente l’ensemble des mots accept´s. Pour tout ´tat de sortie e e eu, nous dirons que x est un pr´fixe de u si δ e ∗ (q, x) = u ; l’ensemble des pr´- efixes de u est not´ L[u](Oq ). La notion d’´quivalence de Nerode s’´tend aux e e e´tats d’un automate ` sorties ; deux ´tats sont ´quivalents si ils acceptent loca-e a e element les mˆmes mots et ont pour toutes sorties les mˆmes pr´fixes : p ∼ q ⇔ e e e(L(Op ) = L(Oq ) ∧ ∀u ∈ Out : L[u](Op ) = L[u](Oq )). Cette ´quivalence est com- epatible avec la fonction de transition. Ainsi l’automate quotient d’un DFOA estdonn´ par O/∼ = Q/∼ , Out, Σ, δ/∼ , F/∼ avec δ/∼ (p/∼ , a) = δ(p, a)/∼ . Notez eque L(O/∼ q ) = L(Oq ), et L[u](O/∼ q ) = L[u](Oq ) pour tout ´tat local q. e /∼ /∼Un DFOA est dit minimal si tous les ´tats sont deux ` deux non ´quivalents. e a eMinimiser un DFOA consiste ` calculer l’automate quotient O/∼ . La notion ade DFOA ´tend la d´finition de DFA, mais ne constitue pas imm´diatement e e eune structure utile pour notre ´tude. Seulement les DFOA fortement connexes eseront int´ressants. eD´finition 4.14 Un DFOA O = Q, Out, Σ, δ, F est un DFOA fortement econnexe (SC-DFOA) si tout ´tat local est accessible ` partir de n’importe quel e aautre ´tat local : ∀p, q ∈ Q, ∃x ∈ Σ e ∗ : δ ∗ (p, x) = q.Exemple 4.1 La figure 4.4 donne trois exemples d’automates ` sorties ; tous asont fortement connexes. Les ´tats locaux sont repr´sent´s par des cercles et e e eles ´tats de sorties par des octogones ; un double cercle indique un ´tat final. e eAlors que OA1 et OA2 sont minimaux, la minimisation de OA3 donne OA1(i.e. q3 ∼ q4). Notez que l’automate quotient d’un SC-DFOA est encore unSC-DFOA.4.2.2 Automates partag´s e Les automates partag´s repr´sentent les composantes fortement connexes e ed’un automate en terme d’automate ` sorties et de fonction associant aux sor- aties des ´tats des autres composantes. La figure 4.5 donne des d´compositions e ed’automates en automates partag´s. Dans la suite, nous supposerons que tous eles automates sont sur un alphabet donn´ Σ. eD´finition 4.15 Les automates partag´s et les automates partag´s marqu´s e e e esont inductivement construit de la mani`re suivante : e – si O est un SC-DFOA sans sortie alors O est un automate partag´, e – si O est un SC-DFOA sans sortie et q un ´tat local de O alors Oq est un e automate partag´ marqu´, e e – si O est un SC-DFOA, et λ une fonction associant ` toute sortie de O, a un automate partag´ marqu´, alors O(λ) est un automate partag´, e e e – si O(λ) est un automate partag´ et q un ´tat local de O, alors Oq (λ) est e e un automate partag´ marqu´. e e
    • 98 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE S2 S3 q1 q1 0 1 0 1 q2 0 1 q0 q2 0 1 q0 0 1 0 1 1 q4 q3 0 1 q4 q3 0 1 0 1 0 S1 S1 q3 q3 0 1 0 1 q2 0,1 q0 q2 0,1 q0 1 0 1 0 0 1 q1 q1 1 0 q0 0,1 q0 0,1 Zero Zero Fig. 4.5 – D´composition de deux automates en automates partag´s e e Les fonctions λ sont appel´es connexions. Notons qu’un automate partag´ e emarqu´ aurait pu ˆtre d´fini comme un SC-DFOA marqu´ combin´ avec une e e e e econnexion. Quand un SC-DFOA O n’a pas de sortie, nous utiliserons la conven-tion O(∅) pour repr´senter l’automate partag´. La mˆme convention s’applique e e eaux SC-DFOA marqu´s sans sortie : Oq (∅). Notons que cette convention permet ede normaliser la notation d’un automate partag´ et en particulier tout automate epartag´ a une connexion. Suivant le contexte, un automate partag´ marqu´ sera e e econsid´r´ comme un automate partag´ : par exemple nous parlerons de ”l’au- ee etomate partag´ λ(u)”. eD´finition 4.16 L’ ensemble des composantes d’un automate partag´ S = O(λ), e enot´ SCC(S), est l’ensemble des automates partag´s d´fini inductivement par e e e SCC(S) = {S} ∪ SCC(λ(u)), u∈Outo` Out est l’ensemble des sorties de O. uD´finition 4.17 La profondeur d’un automate partag´ S = O(λ), not´e DEPTH(S), e e eest d´finie inductivement par : e 0 si λ = ∅ DEPTH(S) = 1 + Max u∈Out DEPTH(λ(u)) sinonD´finition 4.18 Le DFA repr´sentant un automate partag´ S, not´ DFA(S), e e e eest d´fini par e – les ´tats sont les automates partag´s marqu´s Oq (λ) o` O(λ) est une e e e u composante de S et q un ´tat local de O, e – un ´tat Oq (λ) est final si q est final dans O, e – la fonction de transition δ est donn´e par : e Oδ(q,a) (λ) si δ(q, a) est un ´tat local e δ(Oq (λ), a) = λ(δ(q, a)) sinon
    • ´4.2. AUTOMATES PARTAGES 99Proposition 4.19 Tout DFA est isomorphe ` un DFA repr´sentant un auto- a emate partag´. eExemple 25 La figure 4.5 donne plus pr´cisement la repr´sentation graphique e ede 4 automates partag´s : Zero, S1, S2, S3. L’automate partag´ Zero est un e eautomate ` sorties sans sortie. Les autres automates sont d´finis ` partir des a e aautomates ` sorties O1 et O2 de la figure 4.4 : a – S1 = O1(λ1 ) avec λ1 (e0) = Zero q0 , – S2 = O2(λ2 ) avec λ2 (e0) = S1q1 , λ2 (e1) = S1q3 , – S3 = O2(λ3 ) avec λ3 (e0) = Zero q0 , λ3 (e1) = S1q3 .Notez que SCC(Zero) = {Zero}, DEPTH(Zero) = 0, SCC(S1) = {Zero, S1},DEPTH(S1) = 1, etc. Le probl`me de la canonisation d’un automate partag´ n´cessite une ´tude e e e epr´liminaire sur la caract´risation locale de la minimalit´ d’un automate. Pre- e e emi`rement, nous donnons une d´finition de la minimalit´ d’un automate par- e e etag´. Puis, nous en ´tablissons des conditions n´cessaires ´l´mentaires. Par la e e e eesuite, nous en donnerons des conditions suffisantes qui aboutiront ` la r´solution a edu probl`me de canonisation. eD´finition 4.20 Un automate partag´ est dit minimal si son DFA est minimal. e e Une condition n´cessaire ´vidente de minimalit´ d’un automate partag´ est e e e eque tous les automates ` sorties composant l’automate soient minimaux. aProposition 4.21 Soit S un automate partag´. Soit O(λ) une composante de eS. Si S est minimal, alors O est minimal. Une deuxi`me condition n´cessaire est obtenue ` partir de la notion d’ho- e e amomorphisme d’automates partag´s. Informellement, un homomorphisme est eune fonction reliant les ´tats de deux automates partag´s, compatibles avec la e efonction de transition.D´finition 4.22 Soit S = O(λ), S = O (λ ) deux automates partag´s. Notons e eO = Q, Out, Σ, δ, F et O = Q , Out , Σ, δ , F . Soit h : Q ∪ Out → Q ∪ Outune fonction v´rifiant h(Q) ⊆ Q et h(F ) ⊆ F . Alors h est un homomorphisme ede S dans S si pour toute paire (p, a) de Q × Σ, en posant q = δ(p, a) etq = δ (h(p), a), nous avons : – si q ∈ Q, alors q ∈ Q et h(q) = q , – si q ∈ Out et q ∈ Out , alors λ(q) = λ (q ), – si q ∈ Out et q ∈ Q , alors λ(q) = Sq .Nous dirons que O est homomorphe ` O si il existe un homomorphisme h : aO → O . De plus, si h est bijective, O et O sont dits isomorphes. La proposition suivante ´tablit qu’un homomorphisme relie des automates emarqu´s reconnaissant les mˆmes mots. e eProposition 4.23 Soient S = O(λ), S = O (λ ) deux automates partag´s. eSoit h : S → S un homomorphisme. Soit p un ´tat local de O. Alors L(Sp ) = eL(S h(p) ).
    • 100 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE Ainsi, une condition n´cessaire de minimalit´ d’un automate partag´ est que e e eses composantes soient deux ` deux non homomorphes. aProposition 4.24 Soit S un automate partag´. Si S est minimal, alors les eautomates partag´s de SCC(S) sont deux ` deux non homomorphes. e a L’automate S3 de la figure 4.5 n’est pas minimal bien que les automatesa` sorties de ses composantes le soient. En effet, S3 est homomorphe ` S1 : ah(q0) = q0, h(q1) = q3, h(q2) = q2, h(q3) = h(q4) = q1, h(e0) = q3 eth(e1) = e0. Par contre, nous pouvons montrer que S2 n’est pas homomorphe ` aS1 et que de plus S2 est minimal. La proposition suivante raffine la propri´t´ d’automates partag´s homo- ee emorphes. Cette proposition sera tr`s utilis´e pour donner une repr´sentation e e ecanonique des automates partag´s, et aussi pour optimiser nos algorithmes. eProposition 4.25 Soient S = O(λ), S = O (λ ) deux automates partag´s. eNotons Out et Out les ensembles d’´tats de sorties de O et O , et Q l’ensemble edes ´tats locaux de O . Si S est homomorphe ` S , alors e a λ(Out) ⊆ λ(Out ) ∪ {Sq |q ∈ Q }De plus si λ(Out) ⊆ λ(Out ) alors λ(Out) = λ(Out ), sinon DEPTH(S) =DEPTH(S ) + 1 et ∀S q ∈ λ(Out) : DEPTH(S ) = DEPTH(S ) ⇒ S = S . En renfor¸ant les conditions n´cessaires de minimalit´, nous aboutissons ` c e e ades r`gles pour la mise en œuvre d’une repr´sentation canonique des automates e epartag´s. Le point clef est la notion d’ensemble d’automates partag´s structu- e erellement minimal.D´finition 4.26 Soit F un ensemble d’automates partag´s. L’ensemble F est e estructurellement minimal si les conditions suivantes sont respect´es pour toute epaire d’automates partag´s S = O(λ) et S : e 1. La connexion λ de S est injective ou vide. 2. Posons Out l’ensemble des ´tats de sorties de O. S n’est homomorphe ` e a aucun automate partag´ de λ(Out). e 3. L’automate ` sorties de O est minimal. a 4. Si S et S sont isomorphes alors S = S . Les deux propositions suivantes ´tablissent des conditions suffisantes de mi- enimalit´ et de canonicit´ des automates partag´s. e e eProposition 4.27 Soit S un automate partag´. Si l’ensemble SCC(S) est struc- eturellement minimal alors S est minimal.Proposition 4.28 Soient Sq , Sq deux automates partag´s. Si SCC(S)∪SCC(S ) eest structurellement minimal, alors les deux propri´t´s suivantes sont ´quiva- ee elentes : 1. S = S et q = q , 2. L(Sq ) = L(S q )
    • ´ 4.2. AUTOMATES PARTAGES 1011 static final int alphabetSize; // Alphabet = {0 ... alphabetSize−1}23 class OutputAutomaton {4 int nbLocalStates; // LocalStates = {0 ... nbLocalState−1}5 int nbOutStates; // OutStates = {−1 ... −nbOutState}6 int [ ][ ] succ ; // transition function7 boolean [ ] isFinal ; // final state caracteristic function8 }910 class SharedAutomaton {11 OutputAutomaton outputAutomaton;12 MarkedSharedAutomaton [ ] bindFunction; // image of output state −k13 // is bindFunction[k−1]14 int depth;15 }1617 class MarkedSharedAutomaton {18 SharedAutomaton sharedAutomaton;19 int initial ; // initial < sharedAutomaton.outputAutomaton.nbLocalStates20 } Fig. 4.6 – Codage des automates partag´s e 4.2.3 Impl´mentation des automates partag´s e e L’objectif de cette section est de traduire les r´sultats th´oriques de la sec- e e tion pr´c´dente, et plus particuli`rement la notion d’ensemble structurellement e e e minimal, en une impl´mentation. Nous avons repris l’id´e des tables d’unicit´ e e e des BDD pour transformer une ´galit´ de structures des automates partag´s et e e e a ` sorties en une ´galit´ de r´f´rences (ou pointeurs). Transformer l’´galit´ des e e ee e e automates ` sorties modulo une permutation des places locales en une ´galit´ a e e physique est le principal d´fi de notre impl´mentation. Nous en proposons une e e solution simple : une l´g`re modification de l’algorithme de Hopcroft [49, 42]. e e Repr´sentation canonique forte d’un automate partag´ L’alphabet Σ e e est fix´ ` {0, 1 · · · |Σ| − 1}. Les structures ´l´mentaires sont les automates ` e a ee a sorties (SC-DFOA), les automates partag´s et les automates partag´s marqu´s. e e e La figure 4.6 donne une d´finition du codage de ces structures en pseudo-Java. e La m´thode equals pour les MarkedSharedAutomaton a ´t´ red´finie comme e ee e une ´galit´ de structure. Deux tables de hachage imposent une canonicit´ forte e e e des OutputAutomaton et SharedAutomaton de fa¸on ` ce que l’´galit´ de r´- c a e e e f´rence soit ´quivalente ` l’´galit´ de structure. Ces deux tables sont appel´es e e a e e e table d’unicit´ des automates ` sorties et table d’unicit´ des automates partag´s. e a e e Les tables d’unicit´ associent ` toute structure une r´f´rence unique. Ainsi e a ee tous les OutputAutomaton et les SharedAutomaton ont des entr´es uniques dans e leurs tables. Avant qu’une nouvelle structure soit cr´´e, une recherche dans la ee table d’unicit´ d´termine si la structure existe d´j`. Si, la structure est r´f´ren- e e ea ee c´e, sa r´f´rence est utilis´e. Sinon, une nouvelle structure est cr´´e et rang´e e ee e ee e dans la table d’unicit´. Ce principe est utilis´ pour la gestion des deux struc- e e tures : OutputAutomaton et SharedAutomaton La proposition 4.28 donne des contraintes sur les tables d’unicit´ conduisant e
    • 102 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE R´f. e nbLocalStates nbExitStates succ isFinal OZero 1 0 [[0,0]] [0] OOne 1 0 [[0,0]] [1] O1 4 1 [[-1,1],[3,3],[1,-1],[2,0]] [0,1,1,1] O2 5 2 [[-1,3],[2,0],[4,-1],[-2,1],[1,-2]] [0,1,1,1,1] Tab. 4.4 – Tables d’unicit´s des automates ` sorties e a R´f e exitAutomaton bindFunction depth SZero OZero [] 0 SOne OOne [] 0 S1 O1 [Zero] 1 S2 O2 [(S1, 1), (S1, 3)] 2 Tab. 4.5 – Table d’unicit´ des automates partag´s e ea` une repr´sentation canonique forte des automates partag´s. Nous proposons e ede les reformuler en tenant compte des probl`mes d’impl´mentation. e e 1. Tout automate partag´ rang´ dans la table d’unicit´ a une connexion e e e injective ou vide. Nous imposons que le tableau d’automates partag´s e marqu´s repr´sentant la connexion soit tri´ lexicographiquement (1) par e e e ordre d´croissant par rapport ` la profondeur, (2) par rapport ` la va- e a a leur de la r´f´rence sur la structure codant l’automate partag´ et (3) par ee e l’entier d´finissant l’´tat initial. e e 2. Tout automate partag´ rang´ dans la table d’unicit´ ne doit pas ˆtre e e e e homomorphe ` une image de sa connexion. a 3. Tout automate ` sorties rang´ dans la table d’unicit´ doit ˆtre minimal. a e e e 4. Les automates ` sorties rang´s dans la table d’unicit´ sont deux ` deux a e e a non isomorphes modulo une permutation des ´tats locaux. e Notons que nous avons impos´ une nouvelle condition ` la contrainte 1 : un e aordre sur le tableau repr´sentant la connexion d’un automate partag´. Cette e econtrainte, simple ` pr´server, a essentiellement deux avantages : (1) d’apr`s la a e eproposition 4.25, tester la condition 2 revient ` v´rifier si l’automate partag´ a e eest homomorphe ` la premi`re entr´e du tableau codant la connexion ; (2) la a e econdition 4 est r´duite ` une condition d’isomorphisme sur les automates ` e a asorties modulo une permutation des ´tats. eExemple 26 Les tableaux 4.4 et 4.5 donnent le contenu des tables apr`s la ecanonisation de l’automate partag´ S2 de la figure 4.5. Nous avons not´ un e eautomate partag´ marqu´ Sq par la paire (S, q). Dans notre impl´mentation, e e enous avons d´fini deux constantes : les automates partag´s Zero = SZero et e eOne = SOne . Ils repr´sentent respectivement l’automate ne reconnaissant au- ecun mot et celui reconnaissant tous les mots binaires. Notez que les tableauxbindFunction sont tri´s correctement. Par contre, le choix de l’ordre des ´tats e edes automates ` sorties, qui sera justifi´ dans la sous-section suivante, est le a er´sultat de l’application de notre adaptation de l’algorithme de Hopcroft. e
    • ´4.2. AUTOMATES PARTAGES 103Transformer un DFA en un automate partag´ Transformer un DFA en eun automate partag´ est la question centrale de la m´thode. L’objectif est de e ecalculer et stocker un automate partag´ marqu´ ayant le mˆme langage que e e el’automate marqu´ ` transformer et de pr´server les contraintes d’int´grit´ des ea e e etables d’unicit´. Une description informelle de l’algorithme est donn´e dans la e efigure 4.7. Elle est bas´e sur la transformation locale des composantes fortement econnexes (suivant un ordre topologique), et la pr´servation de tous les r´sultats e einterm´diaires dans un cache de calcul. Le traitement d’une composante est er´alis´ en trois ´tapes : e e e 1. La premi`re ´tape consiste ` donner une repr´sentation non canonique e e a e d’une SCC en termes d’automate partag´. Notons que les valeurs des e connexions sont obtenues ` partir des calculs pr´c´dents sur les SCC suc- a e e cesseurs. La premi`re contrainte d’int´grit´ sur les automates partag´s est e e e e garantie en triant correctement le tableau des valeurs des connexions et en ´vitant que deux entr´es du tableau aient la mˆme valeur. e e e 2. L’objectif de la deuxi`me ´tape est de tester si l’automate partag´ est e e e homomorphe ` une des entr´es du tableau de connexion, et plus pr´cis´- a e e e ment la premi`re. Si un homomorphisme est trouv´, tout ´tat de la SCC e e e est ´quivalent ` un automate partag´ marqu´ (mis sous forme canonique) ; e a e e sinon, il faut r´aliser la troisi`me ´tape. e e e 3. La troisi`me ´tape consiste ` minimiser l’automate ` sorties de l’automate e e a a partag´ et d’en donner une forme canonique forte. e Dans la description de l’algorithme (voir la figure 4.7), nous ne donnonspas les d´tails d’impl´mentation concernant le calcul des SCC et leurs trans- e eformations en automates partag´s non canoniques (´tape 1). Notons que lors e edu parcours r´cursif de l’automate partag´, il est inutile de prolonger le calcul e equand un ´tat (c-`-d un automate marqu´) est d´j` dans le cache de calcul, ou e a e eabien un ´tat d’un automate partag´ d´j` r´f´renc´ dans la table d’unicit´. Cette e e ea ee e etechnique jouera un rˆle majeur pour l’efficacit´ de la m´thode. o e e Le test de l’existence d’un homomorphisme (l’´tape 2) est tr`s simple : apr`s e e eavoir s´lectionn´ un ´tat local p de l’automate partag´, il suffit de v´rifier pour e e e e etous les ´tats locaux q de l’automate partag´ de la premi`re entr´e du tableau e e e ede connexion, l’existence d’un homomorphisme associant p ` q. Ce test consiste aa` parcourir l’automate partag´ ` partir de l’´tat p, et ` calculer de nouvelles e a e avaleurs de l’homomorphisme tout en s’assurant de la coh´rence du r´sultat. e eNotons que la complexit´ de cet algorithme est O(Σ) · O(n) · O(n ) o` n, n sont e ules nombres d’´tats locaux des deux automates partag´s. e e L’´tape 3 est bas´e sur une l´g`re modification de l’algorithme de Hopcroft e e e e[49, 42, 52]. Notre adaptation (voir la figure 4.8) est g´n´ralis´e pour traiter e e edes automates ` sorties. Cet objectif est r´alis´ dans les lignes 25-27. G´n´- a e e e eralement l’ensemble des ´tats finaux induit une partition initiale des classes ed’´quivalence ; pour les automates ` sorties, l’ensemble des pr´d´cesseurs de e a e echaque sortie pour chaque lettre de l’alphabet provoque aussi des raffinementsdes classes d’´quivalences. Malgr´ tout, l’algorithme propos´ est quasiment la e e ecopie exacte de l’algorithme original, am´lior´ par la r`gle de Gries (voir la ligne e e e12). Pour r´soudre le probl`me de canonicit´ forte, nous avons introduit ligne e e e
    • 104 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE1 HashMap cache = new HashMap();23 MarkedSharedAutomaton canonical(MarkedAutomaton A){4 for all SCC of A in a topologic order {5 SharedAutomaton shared;6 MarkedAutomaton [ ] f;78 Assign to ”shared” be a (non canonical) shared automaton representation of SCC9 Assign to ”f ” be the isomorphism linking local states of ”shared” to states of SCC1011 // check if shared is homomorphic to an image of the bind function12 MarkedSharedAutomaton [ ] g = homomorphicCheck(shared);13 if (g != null) {14 for all ”p” local state of ”shared” {15 cache[ f [p]] = g[p ];16 }17 }18 else {19 // compute a canonical represention of the ouput automaton20 OutputAutomaton,int [ ] <output,h> = minimize(shared.outputAutomaton);2122 SharedAutomaton newShared23 = unique(new SharedAutomaton(output,shared.bindFunction));24 for all ”p” local state of ”shared” {25 cache[ f [p]] = new markedSharedAutomaton(newShared,h[p]);26 }27 }28 }29 return cache[A];30 } Fig. 4.7 – Algorithme de transformation d’un DFA marqu´ en un automate e partag´ marqu´ e e
    • ´ 4.2. AUTOMATES PARTAGES 1051 int nbClass; // number of classes of the partition2 Set [ ] B; // partition of the local states3 Set [] L; // L is a set of pairs ( i ,a) of classes and letter to be traited4 Set [ ][ ] pred; // for all ”s ” local state and ”a” letter : pred[s ][ a] ={s ’: succ[ s ’][ a]=s};56 void refinePartitionWith(Set U) {7 Set pivot = {i | B[i ]∩U = ∅∧B[i]∩U =B[i]};8 sort(pivot );9 for all ”i ” in pivot ( in the order) {10 B[i ], B[nbClass] = B[i]U, B[i]∩U;11 for all ”a” letter {12 if (( i ,a) ∈L and 0 < |B[i]| ≤ |B[nbClass]|) /13 L.put(i ,a);14 else15 L.put(nbClass,a);16 }17 nbClass++;18 }19 }2021 OutputAutomaton,int [ ] adaptedHopcroft(OutputAutomaton output) {22 nbClass = 1;23 B [0] = {0, ... , output.nbLocalState−1};24 refinePartitionwith ({final states });25 for all ”u” output state and all ”a” letter {26 refinePartitionwith (pred[u ][ a ]);27 }28 while (!L.isEmpty() ) {29 int , int ( i ,a) = L.get (); S30 refinePartitionWith( s∈B[i] pred[s][a]);31 }32 Assign to ”minimal” to be the quotient automaton33 Assign to ”h” to be the mapping which associates to each local state its class index34 return <minimal,h>;35 } Fig. 4.8 – Algorithme de Hopcroft adapt´ e 8 une instruction de tri de l’ensembles pivot pour forcer l’algorithme ` fonc- a tionner ind´pendamment de l’ordre des ´tats locaux. Pour notre objectif, cette e e modification est b´n´fique, car l’application de l’algorithme ` deux automates ` e e a a sorties minimaux isomorphes produit exactement les mˆmes automates. Ainsi, e appliquer deux fois notre algorithme ` un automate ` sorties renvoie un au- a a tomate ` sorties minimal fortement canonique ; c’est ce que r´alise la fonction a e minimize appel´e ` la ligne 20 de l’algorithme de canonisation (voir la figure e a 4.7). Nous ne donnons pas la description des structures de donn´es aboutissant ` e a une complexit´ de O(|Σ|) · O(n · lg n) ; cependant, notre modification n’introduit e pas de surcoˆt.u Supposons que les tables de hachage soient parfaites, la complexit´ de l’al- e gorithme de transformation est O(|Σ|) · O(scc) · O(n) o` scc est la taille de la u plus grande SCC de l’automate ` traiter. Notez que si les composantes d’un a automate sont plus petites qu’une constante (par exemple, les automates acy- cliques), l’algorithme a une complexit´ en temps lin´aire. En th´orie, une table e e e de hachage n’est jamais parfaite. D’un point de vue pratique, on pourra pr´- e f´rer des structures d’arbres ´quilibr´s pour r´duire la complexit´ dans le pire e e e e e des cas. Informellement, ce choix conduit ` une complexit´ de l’algorithme de a e
    • 106 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE (S1,3) (S2,1) (S1,3) (S2,1) 0 1 0 1(S1,2) (S2,2) 0 1 S1,0) (S2,0) (S1,2) (S2,2) 0 1 (S1,0) (S2,0) 0 1 0 1 (S1,1) (S2,4) (S1,1) (S2,3) (S1,1) (S2,4) (S1,1) (S2,3) 1 0 1 0 e0 -> (S1,3) e1 -> (S1,3) 1 e1 -> Zero 0 1 e0 -> (S1,1) 0 Fig. 4.9 – Exemples de calcul sur les automates partag´s e O(|Σ|) · O(n) · O(lg(n + K)) o` K est une constante tenant compte de la taille u des tables d’unicit´ avant le lancement de l’algorithme. e Exemple 27 La figure 4.9 donne une repr´sentation graphique des automates e partag´s (non canoniques) correspondant ` l’´valuation des op´rations d’inter- e a e e section et d’union des automates partag´s marqu´s (S1, 3) et (S2, 1). Notez que e e nous avons stopp´ l’´valuation sur les ´tats identifi´s comme des ´tats de sorties. e e e e e Nous avons simplement utilis´ les identit´s ensemblistes suivantes : A ∩ ∅ = ∅, e e A ∩ A = A, A ∪ ∅ = A et A ∪ A = A. L’algorithme de canonisation pour l’intersection des automates s’arrˆte pare la d´tection d’un homomorphisme (voir les lignes 12-17 de l’algorithme 4.7). e En effet, cet automate est identique ` l’automate S3 de la figure 4.5. Ainsi, a avant de renvoyer le r´sultat de l’´valuation (S3, 1), l’algorithme range dans e e le cache les r´sultats des sous-calculs suivants : (S1, 3) ∩ (S2, 1) = (S3, 1), e (S1, 2) ∩ (S2, 2) = (S3, 2), (S1, 1) ∩ (S2, 4) = (S3, 4), (S1, 0) ∩ (S2, 0) = (S3, 0), (S1, 1) ∩ (S2, 3) = (S3, 3). Par contre, l’algorithme pour l’union des automates va jusqu’` la minimisa- a tion. Sur cet exemple, l’algorithme de Hopcroft adapt´ n’est appliqu´ qu’une fois e e parce que l’automate ´tait d´j` minimal ; son application n’a fait qu’ordonner ca- e ea noniquement les ´tats locaux de l’automate ` sorties. Notez que ce calcul (voir la e a ligne 20 de l’algorithme 4.7) renvoie exactement l’automate ` sorties O2 (grˆce a a a ` l’utilisation de la table d’unicit´) et une fonction reliant les ´tats locaux de e e l’automate ` sorties (non canonique) initial ` ceux de O1. L’automate partag´ a a e r´sultant sera, sur cet exemple, retrouv´ dans la table d’unicit´ des automates e e e partag´s (voir les lignes 22-23 de l’algorithme 4.7). Ainsi, avant de renvoyer e le r´sultat de l’´valuation (S2, 1), l’algorithme range dans le cache les r´sultats e e e des sous-calculs suivants : (S1, 3) ∪ (S2, 1) = (S2, 1), (S1, 2) ∪ (S2, 2) = (S2, 2), (S1, 1) ∪ (S2, 4) = (S2, 4), (S1, 0) ∪ (S2, 0) = (S2, 0), (S1, 1) ∪ (S2, 3) = (S2, 3). Impl´menter des op´rations sur les DFA La m´thode de transforma- e e e tion est essentiellement la seule op´ration utile pour concevoir de nouvelles e
    • ´4.2. AUTOMATES PARTAGES 107 t1 t3 A B C D E t2 t4 Fig. 4.10 – Mod`le de producteur-consommateur eop´rations. Nous avons choisi Java pour impl´menter notre biblioth`que pour e e eson paradigme objet. MarkedAutomaton est une interface dont le contrat est lad´finition des m´thodes boolean isFinal() et MarkedAutomaton succ(int e ea). Dans ce cadre, l’op´ration ITE est d´finie par la conception d’une nouvelle e eclasse IteMarkedAutomaton impl´mentant l’interface MarkedAutomaton, et r´a- e elis´e par l’instruction "A=canonical(new IteMarkedAutomaton(A1,A2,A3))”. eDe mani`re analogue, de nombreuses op´rations sur les automates peuvent ˆtre e e econ¸ues. Cependant les op´rations de clˆture ne rentrent pas dans ce cadre. c e oNous avons du revoir notre algorithme de transformation en modifiant justela premi`re ´tape : l’op´ration de clˆture est r´alis´e localement ` l’automate e e e o e e apartag´ (non canonique) de l’´tape 1. Ainsi deux m´thodes ont ´t´ ajout´es ` e e e ee e anotre biblioth`que : existCloseCanonical et forallCloseCanonical. e4.2.4 Exp´rimentations e L’objectif est d’´valuer le b´n´fice de la technique des automates partag´s e e e epour des probl`mes de v´rification. Nous avons impl´ment´ une biblioth`que ´l´- e e e e e eementaire manipulant des formules de Presburger, appel´ PresTaf. Les automates ebinaires sont utilis´s comme structures de donn´es pour coder les formules, ou e eplus pr´cis´ment les solutions des formules. Nous ne redonnons pas les tech- e eniques de transformations d’une formule de Presburger en un automate. Cetteinformation n’est pas significative pour interpr´ter les r´sultats exp´rimentaux. e e eNous avons essentiellement suivi les techniques d´crites dans [91, 55, 33]. Il est enaturel de comparer notre impl´mentation avec celle de l’outil LASH [91]. En eeffet, cet outil de r´f´rence code les formules par leurs repr´sentations en au- ee etomates binaires et utilise des algorithmes classiques sur les automates. Ainsi,l’exp´rimentation mesurera le b´n´fice que notre m´thode peut apporter ` ce e e e e atype d’outils. Nous avons choisi un probl`me classique de la v´rification pour e enotre exp´rimentation : l’exploration en arri`re de l’espace d’´tats d’un r´seau e e e ede Petri. Ce probl`me est techniquement int´ressant pour les raisons suivantes : e ela relation de transition d’un r´seau de Petri est repr´sentable par une formule e ede Presburger o` les variables sont les places des marquages avant et apr`s u efranchissement d’une transition ; l’exploration en arri`re termine pour certains etypes d’ensemble de marquages (les ensembles clos par le haut) ; le calcul uti-lise de mani`re intensive les op´rations manipulant des formules de Presburger. e eNous n’avons pas la pr´tention d’´valuer ou de concevoir la m´thode la plus e e eefficace pour traiter ce probl`me. Les ´tudes sp´cialis´es concernant l’explo- e e e eration de l’espace des ´tats, comme [4], sont en dehors des limites de notre eexp´rimentation. e
    • 108 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUE N LASH PresTaf PresTaf(bis) N LASH PresTaf 2 3s 2s 1s 50 16s 1s 5 10s 4s 2s 100 38s 2s 10 29s 10s 3s 200 89s 3s 20 83s 27s 6s 500 256s 7s 30 151s 48s 9s 1000 - 14s 40 - 80s 13s 5000 - 67s 50 - 122s 19s 10000 - 130s sans invariant avec invariantTab. 4.6 – R´sultats de l’exp´rimentation pour le mod`le du producteur- e e econsommateur Model | {Place} | | {Transition} | LASH PresTaf LEA 30 35 6min 36s 1min 13s Manufacturing System 14 13 9min 37s 1min 4s CSM 13 8 14min 38s 1min 2s PNCSA 31 36 66min 3min22 ConsProd 18 14 1316min 3min55 Tab. 4.7 – R´sultats d’exp´rimentation pour quelques r´seaux de Petri e e e La table 4.6 donne les temps de l’exploration en arri`re du mod`le de la e efigure 4.10 avec pour ensemble initial d’exploration SN = {M : M (C) ≥ N }.Nous avons test´ deux types de techniques : une sans optimisation, et une eautre o` l’exploration est restreinte aux ´tats v´rifiant les propri´t´s invariantes u e e eeM (A) + M (B) = 1 et M (D) + M (E) = 1. Les r´sultats mettent en ´vidence e el’int´rˆt des automates partag´s. D’autre part, appliquer des optimisations est ee en´cessaire pour obtenir des m´thodes efficaces. La colonne PresTaf(bis) est un e er´sultat surprenant : une exploration introduit l’´valuation r´p´t´e de formules e e e eeavec un connecteur existentiel sur un ensemble de variables ; le sens communvoudrait qu’´valuer cette formule en une ´tape (les colonnes LASH et PresTaf) e esoit plus efficace que de l’´valuer variable par variable. L’intuition ne marche epas sur cet exemple. De tels exemples sont courants quand on utilise des BDD,et ceci souligne la grande similitude entre les automates partag´s et les BDD. La etable 4.7 confirme les r´sultats exp´rimentaux pr´c´dents pour d’autres r´seaux e e e e ede Petri. Comme pour les BDD [92], le principal facteur de gain est le cache decalcul. En effet, les it´rations de l’exploration d’un espace d’´tats ont en commun e ede nombreux sous-calcul. Il semble vraiment que les automates partag´s soient eun premier pas vers une impl´mentation efficace des automates ` la BDD pour e ala v´rification de syst`mes infinis. e e
    • 4.3. CONCLUSIONS 1094.3 Conclusions Dans ce chapitre, nous avons d´crit une nouvelle structure de donn´es ad´- e e equate ` la v´rification : les diagrammes de d´cisions de donn´es (DDD). Contrai- a e e erement aux BDD, ils permettent de traiter les variables d´finies sur des domaines enon born´s, ainsi que des relations de transitions infinies. L’atout de cette nou- evelle structure est de fournir la possibilit´ de d´finir ses propres op´rateurs e e eou analyses, et ceci afin d’appr´hender l’´tude de syst`mes tr`s vari´s. De ce e e e e etravail ont r´sult´ un formalisme bˆti sur de solides fondements th´oriques et e e a eun prototype de biblioth`que DDD. Cette recherche ´tait aliment´e par des e e epr´occupations concr`tes abord´es dans le cadre d’un projet de recherche ex- e e eploratoire DGA, le projet CLOVIS. Nous avons abouti ` un prototype d’outilade v´rification de programmes VHDL. Ce projet se poursuit dans le cadre d’un eprojet de plus grande envergure, un projet RNTL, le projet MORSE : l’objectifest de fournir une m´thodologie et des outils prototypes pour le d´veloppement e ed’applications industrielles certifiables dans le domaine des drones. Notre ´tude es’appuie sur le langage pivot Lf P d´velopp´ par le LIP6 (Universit´ Paris 6) e e eet les DDD comme structure de donn´es pour la v´rification. L’´tude de cas e e eque nous avons d´crite dans ce chapitre a montr´ encore une fois l’ad´quation e e edes DDD ` traiter des syst`mes manipulant des structures complexes. Cepen- a edant, les performances offertes par notre prototype ne sont pas compl`tement esatisfaisantes. Une nouvelle biblioth`que est en cours de r´alisation en se basant e esur les nombreuses optimisations d´velopp´es pour manipuler efficacement les e eBDD. Je pense que les perspectives de recherche sur les automates partag´s sont ebeaucoup plus prometteuses. Ces travaux rentrent dans le cadre de la v´rifi- ecation de syst`mes infinis. Nous avons con¸u la premi`re structure de donn´es e c e epour la manipulation d’automates bas´e sur les grands principes des BDD : une erepr´sentation canonique forte des automates, l’utilisation d’une table d’unicit´ e eet d’un cache de calcul. Nos exp´rimentations montrent le grand b´n´fice des e e eautomates partag´s quand ils sont utilis´s pour l’exploration symbolique de l’es- e epace d’´tats de syst`mes infinis. Notre prototype Java (PresTaf) nous a permis e ede valider nos id´es. Une nouvelle biblioth`que, nomm´ DASH, est en cours e e ede r´alisation au LSV pour proc´der des exp´rimentations ` grande ´chelle et e e e a eˆtre int´gr´e dans l’outil FAST [3, 55]. Les travaux futurs concernent dans une e epremier temps ` l’application de nos r´sultats aux techniques la v´rification a e ebas´e sur les automates. Par exemple, les r´gions d’un automate temporis´ sont e e ecaract´ris´es par leurs valeurs d’horloges cod´es en d´cimales en base 2 (c-`-d e e e e ales valeurs cod´es en binaire par un nombre fini de chiffres apr`s la virgule). e eAinsi un ensemble de r´gions pourrait ˆtre repr´sent´ par un automate binaire e e e eet les op´rations sur les r´gions traduites par des op´rations sur les automates. e e eCette id´e serait le point de d´part d’une technique de v´rification des auto- e e emates temporis´s. Nous pouvons aussi noter les travaux de H. Calbrix [10] sur ela repr´sentation des automates de B¨chi par des automates de mots finis qui e um´riterait d’ˆtre revus avec le point de vue automates partag´s. D’autres pers- e e epectives int´ressantes sont d’´tendre nos r´sultats ` d’autres types de structures e e e acomme les automates faibles utilis´s par B. Boigelot et P. Wolper [6, 91] pour e
    • 110 ´ CHAPITRE 4. VERIFICATION SYMBOLIQUEimpl´menter la logique de Presburger sur les r´els. e e
    • Chapitre 5Conclusion et perspectives La v´rification est une technologie aux applications pratiques importantes, etouchant ` des enjeux industriels tr`s larges. C’est aussi un sujet de recherche a etr`s actif, qui a donn´ lieu ` une th´orie tr`s riche et originale, qui reste toujours e e a e etr`s vivante aujourd’hui. Ces recherches se d´coupent essentiellement en trois e egrands aspects : – Fondamentale : La v´rification s’appuie principalement sur des notions e th´oriques issues de la logique et de la th´orie des automates : deux do- e e maines tr`s riches, en constante progression, et qui ont tendance ` se e a rapprocher ces derni`res ann´es. e e – Algorithmique : Les applications pratiques tr`s importantes donnent e tout leur poids ` la dimension algorithmique. Ces recherches vont de la a th´orie de la complexit´ ` la r´alisation d’outils de v´rification efficaces, e ea e e capable de traiter des syst`mes de plus en plus en complexes. e – Appliqu´ : Ces techniques sont de plus en plus utilis´es dans le milieu e e industriel. Ces recherches vont de la conception de nouveaux langages de description de syst`mes ` l’int´gration des m´thodes de v´rification e a e e e dans des m´thodologies et des ateliers de G´nie Logiciel. L’application e e des m´thodes de v´rification n’est plus restreinte au domaine des syst`mes e e e informatis´s : elle porte aussi sur des domaines aussi divers que la sˆret´ e u e de fonctionnement de processus industriels et l’analyse de syst`mes du e monde du vivant. Dans mon travail, j’ai concentr´ mes efforts sur l’am´lioration de trois as- e epects de l’algorithmique de la v´rification : la logique temporelle lin´aire, la e ev´rification par ordre partiel et la v´rification symbolique. Pour chacune de ces e erecherches nous avons ´tabli un bilan et indiqu´ les poursuites logiques de ce e etravail. Au-del`, il n’y a gu`re de doute que l’algorithmique de la v´rification va a e erester longtemps un domaine riche et vivant dans les prochaines ann´es. Parmi eles grandes tendances, je noterais trois aspects qui m´ritent d’ˆtre approfondi : e e – Les logiques ordre partiel. Malgr´ les nombreux travaux sur les lo- e giques ordre partiel, il n’existe pas d’outil efficace les int´grant. Un travail e de mise en œuvre est donc ` r´aliser. Celui-ci devrait nous conduire sur a e le choix d’une logique bas´e sur son pouvoir d’expression mais surtout e sur l’efficacit´ de ses algorithmes de v´rification. Rappelons nous qu’il y e e 111
    • 112 CHAPITRE 5. CONCLUSION ET PERSPECTIVES a plus de vingt ans, la logique CTL a connu un large succ`s grˆce ` la e a a complexit´ lin´aire de sa v´rification et son impl´mentation par des tech- e e e e niques symboliques. La logique LTL est de plus en plus utilis´e car on a e su maˆ ıtriser l’explosion du nombre d’´tats de l’automate traduisant une e formule, mais aussi en partie grˆce aux techniques de r´duction par ordre a e partiel. Un travail similaire doit ˆtre r´aliser pour promouvoir les logiques e e ordre partiel. – La v´rification symbolique. On constate que de nombreux r´sultats e e de d´cidabilit´ pour les syst`mes infinis reposent sur des repr´sentations e e e e des donn´es (par exemple, les automates d’arbres), ou des fragments de e logique (par exemple, l’arithm´tique de Presburger). Par ailleurs, les tech- e niques de repr´sentations symboliques sont encore ` ce jour assez limit´es. e a e Enrichir ces techniques en se basant sur les id´es d´velopp´es dans des r´- e e e e sultats de d´cidabilit´ me paraˆ essentiel. e e ıt – L’analyse de syst`mes probabilistes et infinis. La mod´lisation de e e syst`mes complexes fait intervenir ` la fois des aspects probabilistes et des e a aspects infinis. Elle concerne non seulement l’´tude de syst`mes informa- e e tis´s ou automatiques mais aussi le domaine en plein essor des mod`les du e e vivant. D´velopper des techniques et des outils de v´rification et d’analyse e e pour ces mod`les est d’un int´rˆt fondamental. Nos travaux sur la v´ri- e ee e fication de formules LTL sur des syst`mes probabilistes ´taient motiv´s e e e par un projet sur l’´tude de la propagation de virus dans des populations e d’hˆtes structur´es. Cette ´tude a mise essentiellement en ´vidence les o e e e besoins des biologistes en mati`re de mod`les et d’outils d’analyse. Les e e syst`mes sont stochastiques et infinis ; les syst`mes convergent presque sˆ- e e u rement dans un ´tat sans individu. Jusqu’` pr´sent, seulement des outils e a e de simulations ont pu ˆtre utilis´s pour l’analyse des mod`les. Je pense que e e e dans ce domaine de nouveaux concepts et de nouvelles techniques doivent ˆtre ´labor´s. Par exemple, comment mettre en ´vidence un ph´nom`ne e e e e e e de vague dans la propagation des virus. Il s’agit ` la fois d’un ph´nom`ne a e e transitoire et dynamique caract´ristique de nombreux syst`mes du monde e e vivant.
    • Bibliographie [1] A. Arnold. Syst`mes de transitions finis et s´mantique des processus com- e e municants. Masson, 1992. [2] R.I. Bahar, E.A. Frohm, C.M. Gaona, G.D. Hachtel, E. Macii, A. Pardo, and F. Somenzi. Algebraic decision diagrams and their applications. In ICCAD’93, volume 2860, pages 188–191, 1993. [3] S. Bardin, A. Finkel, J. Leroux, and L. Petrucci. FAST : Fast Acceleration of Symbolic Transition systems. In CAV ’03, volume 2725 of LNCS, pages 118–121, 2003. [4] C. Bartzis and T. Bultan. Efficient symbolic representations for arith- metic constraints in verification. International Journal of Foundations of Computer Science, 14(4) :605–624, 2003. [5] E. Best. Partial order verification with PEP. In POMIV’96. Am. Math. Soc., 1996. [6] B. Boigelot. Symbolic Methods for Exploring Infinite State Spaces. PhD thesis, Facult´ des Sciences Appliqu´es de l’Universit´ de Li`ge, 1999. e e e e [7] F. Br´ant, J.-M. Couvreur*, F. Gilliers, F. Kordon, I. Mounier, E. Paviot- e Adet, D. Poitrenaud, D. Regep, and G. Sutre. Modeling and verifying behavioral aspects. In Formal Methods for Embedded Distributed Systems : how to master the complexity, pages 171–211. ` paraˆ a ıtre chez Kluwer, (* responsable du chapitre), 2004. [8] R. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, 35(8) :677–691, 1986. [9] J.R. Burch, E.M. Clarke, and K.L. McMillan. Symbolic model checking : 1020 states and beyond. Information and Computation (Special issue for best papers from LICS90), 98(2) :153–181, 1992.[10] H. Calbrix. Mots ultimement p´iodiques des langages rationnels de mots e infinis. PhD thesis, Universit´ Paris 7, 1996. e[11] G. Ciardo, G. L¨ttgen, and R. Siminiceanu. Efficient symbolic state-space u construction for asynchronous systems. In ICATPN’2000, volume 1825 of LNCS, pages 103–122. Springer Verlag, 2000.[12] C. Courcoubetis, M. Y. Vardi, P. Wolper, and M. Yannakakis. Memory efficient algorithms for the verification of temporal properties. Formal Methods in System Design, 1 :275–288, 1992. 113
    • 114 BIBLIOGRAPHIE[13] C. Courcoubetis and M. Yannakakis. The complexity of probabilistic veri- fication. Journal of the ACM, 42(4) :857–907, 1995.[14] J.-M. Couvreur. On-the-fly verification of linear temporal logic. In FM’99—Formal Methods, Volume I, volume 1708 of LNCS, pages 253–271. Springer Verlag, 1999.[15] J.-M. Couvreur. Un point de vue symbolique sur la logique temporelle lin´aire. In Actes du Colloque LaCIM 2000, volume 27 of Publications du e LaCIM, pages 131–140. Universit´ du Qu´bec ` Montr´al, 2000. e e a e[16] J.-M. Couvreur. A bdd-like implementation of an automata package. In soumis ` CIAA’04, 2004. a[17] J.-M. Couvreur, E. Encrenaz, E. Paviot-Adet, D. Poitrenaud, and P.-A. Wacrenier. Data decision diagrams for petri net analysis. In ICATPN’02, volume 2360 of LNCS, pages 1–101. Springer Verlag, 2002.[18] J.-M. Couvreur, S. Grivet, and D. Poitrenaud. Designing a LTL model- checker based on unfolding graphs. In ICATPN’2000, volume 1825 of LNCS, pages 364–383. Springer Verlag, 2000.[19] J.-M. Couvreur, S. Grivet, and D. Poitrenaud. Unfolding of product of symmetrical Petri nets. In ICATPN’2001, volume 2075 of LNCS, pages 121–143. Springer Verlag, 2001.[20] J.-M. Couvreur and D. Poitrenaud. Model checking based on occurrence net graph. In FORTE’96, pages 380–395, 1996.[21] J.-M. Couvreur and D. Poitrenaud. Detection of illegal behaviours based on unfoldings. In ICATPN’99, volume 1639 of LNCS, pages 364–383. Springer Verlag, 1999.[22] J. M. Couvreur, N. Saheb, and G. Sutre. An optimal automata approach to LTL model checking of probabilistic systems. In LPAR’03, volume 2850 of LNAI, pages 361–375. Springer-Verlag, 2003.[23] J.M. Couvreur and D. Poitrenaud. D´pliage pour la v´rification de pro- e e pri´t´s temporelles. In V´rification et mise en oeuvre des r´seaux de Petri ee e e - Tome 2, pages 127–161. Hermes Science, 2003.[24] M. Daniele, F. Giunchiglia, and M. Y. Vardi. Improved automata genera- tion for linear temporal logic. In CAV’99, number 1633 in LNCS, pages 172 – 183. Springer Verlag, 1999.[25] A. Duret-Lutz and R. Rebiha. Spot : une biblioth`que de v´rification de e e propri´t´s de logique temporelle ` temps lin´aire. Master’s thesis, DEA ee a e Syst`mes Informatiques R´partis, Universit´ de Paris 6, 2003. e e e[26] J. Elgaard, N. Klarlund, and A. Moller. Mona 1.x : new techniques for WS1S and WS2S. In CAV ’98, volume 1427 of LNCS, 1998.[27] J. Engelfriet. Branching processes of Petri nets. Acta Informatica, 28 :575– 591, 1991.[28] J. Esparza. Model checking using net unfoldings. Science of Computer Programming, 23 :151–195, 1994.
    • BIBLIOGRAPHIE 115[29] J. Esparza and K. Heljanko. A new unfolding approach to LTL model checking. In ICALP’2000, number 1853 in LNCS, pages 475–486. Springer- Verlag, 2000.[30] J. Esparza and K. Heljanko. Implementing LTL Model Checking with Net Unfoldings. In SPIN’2001, number 2057 in LNCS, pages 37–56. Springer- Verlag, 2001.[31] J. Esparza and S. R¨mer. An unfolding algorithm for synchronous products o of transition systems. In CONCUR’99, volume 1664 of LNCS, pages 2–20. Springer Verlag, 1999.[32] J. Esparza, S. R¨mer, and W. Vogler. An improvement of McMillan’s o unfolding algorithm. In TACAS’96, volume 1055 of LNCS, pages 87–106. Springer Verlag, 1996.[33] A. Finkel and J. Leroux. Polynomial time image computation with interval- definable counters systems. In SPIN, volume 2989 of LNCS. Springer, 2004.[34] Carsten Fritz. Constructing B¨chi Automata from Linear Temporal Logic u Using Simulation Relations for Alternating B¨chi Automata. In CIAA’03, u volume 2759 of LNAI, pages 35 – 48. Springer, 2003.[35] P. Gastin and D. Oddoux. Fast LTL to B¨chi automata translation. In u CAV’01, number 2102 in LNCS, pages 53–65. Springer Verlag, 2001.[36] J. Geldenhuys and A. Valmari. Tarjan’s Algorithm Make On-The Fly LTL Verification More Efficient. In TACAS ’04, volume 2988 of LNCS, pages 205–219. Springer Verlag, 2004.[37] R. Gerth, D. Peled, M. Y. Vardi, and P. Wolper. Simple on-the-fly au- tomatic verification of linear temporal logic. In PSTV’95. North-Holland, 1995.[38] D. Giannakopoulou and F. Lerda. From States to Transition : Improving Translation of LTL Formulae to B¨chi Automata. In FMPA 2000, volume u 2090 of LNCS, pages 261–277. Springer Verlag, 2000.[39] P. Godefroid. Partial-Order Methods for the Verification of Concurrent Systems. Springer Verlag, Berlin, 1996.[40] P. Godefroid and G. J. Holzmann. On the verification of temporal proper- ties. In PSTV’93, pages 109–124, 1993.[41] B. Graves. Computing reachability properties hidden in finite net un- folding. In FSTTCS’97, volume 1346 of LNCS, pages 327–341. Springer Verlag, 1997.[42] D. Gries. Describing an algorithm by Hopcroft. Acta Informatica, 2 :97– 109, 1973.[43] A. Gupta. Inductive Boolean Function Manipulation. PhD thesis, Carnegie Mellon University, 1994.[44] A. Gupta and A. L. Fisher. Representation and symbolic manipulation of linearly inductive boolean functions. In ICCAD’93, pages 111–116, 1993.[45] K. Heljanko. Using logic programs with stable model semantics to solve deadlock and reachability problems for 1-safe Petri nets. Fundamenta In- formaticae, 35 :247–268, 1999.
    • 116 BIBLIOGRAPHIE[46] G. J. Holzmann. An improved protocol reachability analysis technique. Software, Practice & Experience, 18(2) :137–161, 1988.[47] G. J. Holzmann. Design and Validation of Computer Protocols. Prentice- Hall, Englewood Cliffs, New Jersey, 1991.[48] G. J. Holzmann. The SPIN MODEL CHECKER. Addison-Wesley, 2003.[49] E. Hopcroft. An n log n algorithm for minimizing the states in a finite automaton. In Z. Kohavi, editor, Theory of Machines and Computations, pages 189–196. Academic Press, 1971.[50] H. Hulgaard, P. F. Williams, and H. R. Andersen. Equivalence checking of combinational circuits using boolean expression diagrams. IEEE Tran- sactions of Computer-Aided Design, 18(7), 1999.[51] Knuth and Yao. The complexity of nonuniform random number generation. In Algorithms and Complexity : New Directions and Recent Results, Ed. J. F. Traub. Academic Press, 1976.[52] T. Knuutila. Re-describing an algorithm by Hopcroft. Theoretical Com- puter Science, 250 :333–363, 2001.[53] T. Kolks, B. Lin, and H. De Man. Sizing and verification of communication buffers for communicating processes. In ICCAD’93, volume 1825, pages 660–664, 1993.[54] R. Langerak and E. Brinksma. A complete finite prefix for process algebra. In CAV’99, number 1633 in LNCS, pages 184–195. Springer Verlag, 1999.[55] J. Leroux. Algorithmique de la v´rification des syst`mes ` compteurs. Ap- e e a proximation et acc´l´ration. Impl´mentation de l’outil FAST. Th`se de ee e e doctorat, ENS de Cachan, 2003.[56] L. Mauborgne. Binary decision graphs. In SAS’99, volume 1694 of LNCS, pages 101–116. Springer-Verlag, 1999.[57] L. Mauborgne. An incremental unique representation for regular trees. Nordic Journal of Computing, 7(4) :290–311, 2000.[58] K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publisher, Boston, MA, 1994.[59] K. L. McMillan. A technique of state space search based on unfoldings. Formal Methods in System Design, 6 :45–65, 1995.[60] K.L. McMillan. Using unfoldings to avoid the state explosion problem in the verification of asynchronous circuits. In CAV’92, volume 663 of LNCS, pages 164–175. Springer Verlag, 1992.[61] S. Melzer and S. R¨mer. Deadlock checking using net unfoldings. In o CAV’97, volume 1254 of LNCS, pages 352–363. Springer Verlag, 1997.[62] Y. M´tivier, N. Saheb, and A. Zemmari. A uniform randomized election e in trees. In SIROCCO 10, volume 17 of Proceedings in Informatics, pages 259–274. Carleton Scientific, 2003.[63] S. Minato, N. Ishiura, and S. Yajima. Shared binary decision diagrams with attributed edges for efficient boolean function manipulation. In DAC’90, pages 52–57. ACM/IEEE, IEEE Computer Society Press, 1990.
    • BIBLIOGRAPHIE 117[64] A.S. Miner and G. Ciardo. Efficient reachability set generation and storage using decision diagrams. In ICATPN’99, volume 1639 of LNCS, pages 6–25. Springer Verlag, 1999.[65] M. M¨kel¨. Maria : modular reachability analyser for algebraic system nets. a a In ICATPN’02, volume 2360 of LNCS, pages 283–302. Springer Verlag, 2002.[66] M. Nielsen, G. Plotkin, and G. Winskel. Petri nets, events structures and domains, part I. Theoretical Computer Science, 13(1) :85–108, 1981.[67] D. Oddoux. Utilisation des automates alternants pour un model-checking efficace des logiques temporelles lin´aires. PhD thesis, Universit´ Paris 7 e e (France), 2003.[68] D. Peled. All from one, one from all : on model checking using representa- tives. In CAV’93, number 697 in LNCS, pages 409–423, Berlin-Heidelberg- New York, 1993. Springer Verlag.[69] D. Poitrenaud. Graphes de Processus Arborescents pour la V´rification de e Propri´t´s. Th`se de doctorat, Universit´ P. et M. Curie, Paris, France, ee e e 1996.[70] F. Reffel. BDD-Nodes Can Be More Expressive. In ASIAN’99, volume 1742 of LNCS, pages 294–307. Springer Verlag, 1999.[71] D. M. Regep. LfP : un langage de sp´cification pour supporter une d´- e e marche de d´veloppement par prototypage pour les syst`mes r´partis. Th`se e e e e de doctorat, Universit´ Paris 6, 2003. e[72] S. R¨mer. An efficient algorithm for the computation of unfoldings of o finite and safe Petri nets (on efficiently implementing McMillan’s unfolding algorithm). Technical report, Technishe Universit¨t M¨nchen, Institut f¨r a u u Informatik, Germany, 1996.[73] K. Schneider. Improving automata generation for linear temporal logic by considering the automaton hierarchy. In LPAR’01, volume 2250 of LNAI, pages 39–54. Springer Verlag, 2001.[74] R. Sebastiani and S. Tonetta. More deterministic vs. smaller B¨chi auto- u mata for efficient ltl model checking. In CHARME’03, volume 2860, pages 126–140. Springer Verlag, 2003.[75] A. P. Sistla and E. M. Clarke. The complexity of propositional linear temporal logic. Journal of the Association for Computing Machinery, 32(3) :733–749, 1985.[76] F. Somenzi and R. Bloem. Efficient b¨chi automata from ltl formulae. In u CAV’00, number 1855 in LNCS, pages 248–263. Springer Verlag, 2000.[77] R. E. Tarjan. Depth-first search and linear algorithms. SIAM J. Compu- ting, 1(2) :146–160, 1972.[78] H. Tauriainen. On Translating Linear Temporal Logic into Alternating and Nondeterministic Automata. Research reports 83, Helsinki University of Technology, Laboratory for Theoretical Computer Science, Espoo, Finland, 2003.
    • 118 BIBLIOGRAPHIE[79] H. Tauriainen and K. Heljanko. Testing ltl formula translation into b¨chi u automata. STTT - International Journal on Software Tools for Technology Transfer, 4(1) :57–70, 2002.[80] X. Thirioux. Simple and efficient translation from ltl formulas to buchi automata. In Electronic Notes in Theoretical Computer Science, volume 66. Elsevier, 2002.[81] J. D. Ullman, A. V. Aho, and J. E. Hopcroft. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.[82] A. Valmari. Stubborn sets for reduced state space generation. In Advances in Petri Nets, volume 483 of LNCS, pages 491–515. Springer Verlag, 1991.[83] A. Valmari. On-the-fly verification with stubborn sets representatives. In CAV’93, number 697 in LNCS, pages 397–408. Springer Verlag, 1993.[84] M. Y. Vardi. Automatic verification of probabilistic concurrent finite-state programs. In focs85, pages 327–338, 1985.[85] M. Y. Vardi and P. Wolper. An automata-theoretic approach to automatic program verification. In Proceedings of the First Symposium on Logic in Computer Science, pages 322–331, Cambridge, 1986.[86] K. Varpaaniemi and M. Rauhamaa. The stubborn set method in practice. In Advances in Petri Nets, volume 616 of LNCS, pages 389–393. Springer Verlag, 1992.[87] F. Wallner. Model Checking LTL Using Net Unfoldings. In CAV’98, volume 1427 of LNCS, pages 207–218. Springer Verlag, 1998.[88] P. Wolper. Temporal logic can be more expressive. Information and Control, 56(1–2) :72–99, 1983.[89] P. Wolper. The tableau method for temporal logic : An overview. Logique et Analyse, 110–111 :119–136, 1985.[90] P. Wolper. Constructing Automata from Temporal Logoc Formulas : A tutorial. In FMPA 2000, volume 2090 of LNCS, pages 261–277. Springer Verlag, 2000.[91] P. Wolper and B. Boigelot. On the construction of automata from linear arithmetic constraints. In TACAS’00, volume 1785 of LNCS, pages 1–19, 2000.[92] B. Yang, R. E. Bryant, D. R. O’Hallaron, A. Biere, O. Coudert, G. Janssen, R. K. Ranjan, and F. Somenzi. A performance study of BDD-based model checking. In FMCAD’98, pages 255–289, 1998.