Contribution ` l’algorithmique             a      de la v´rification             e              (M´moire d’habilitation ` d...
Table des mati`res              e1 Introduction                                                                           ...
`                                                      TABLE DES MATIERES   3.5   D´pliages de r´seaux de Petri sym´trique...
Chapitre 1Introduction    Les techniques de v´rifications ont d´j` plus de vingt ans. Elles ont ´t´ d´-                    ...
2                                            CHAPITRE 1. INTRODUCTION      notion de d´pliage de r´seaux de Petri, ainsi q...
Chapitre 2Logique temporelle lin´aire                      e    La logique temporelle est un langage puissant permettant d...
4                                                        ´                       CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREme...
`                ´2.1. MODELES DU TEMPS LINEAIRE                                                    52.1     Mod`les du te...
6                                                          ´                         CHAPITRE 2. LOGIQUE TEMPORELLE LINEAI...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                                       7                   ...
8                                                        ´                       CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIREpr...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                   9impliqu´es dans la v´rification de la fo...
10                                                         ´                         CHAPITRE 2. LOGIQUE TEMPORELLE LINEAI...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                      11inductivement par   –   satT (a, s ...
12                                                             ´                             CHAPITRE 2. LOGIQUE TEMPORELL...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                       13symboliques) alors que l’automate ...
14                                                              ´                              CHAPITRE 2. LOGIQUE TEMPORE...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                                   15                      ...
16                                                         ´                         CHAPITRE 2. LOGIQUE TEMPORELLE LINEAI...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                         17   – Φ(gV h) = Φ(g) · Φ(h) + Φ(h...
18                                                            ´                            CHAPITRE 2. LOGIQUE TEMPORELLE ...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                                                                 19        ...
20                                                         ´                         CHAPITRE 2. LOGIQUE TEMPORELLE LINEAI...
2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE                          21        Optimisation        Automate          P...
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Jmc habile
Prochain SlideShare
Chargement dans…5
×

Jmc habile

1 153 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 153
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Jmc habile

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

×