SlideShare une entreprise Scribd logo
1  sur  122
Télécharger pour lire hors ligne
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 Cachan




Pr´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
Jmc habile
Table des mati`res
              e

1 Introduction                                                                                       1

2 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 . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   40

3 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 . . . . . . . . . . . . . . . . . . . . . .   . . . . . . . .    80

4 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     .   109

5 Conclusion et perspectives                                                        111
Chapitre 1

Introduction

    Les techniques de v´rifications ont d´j` plus de vingt ans. Elles ont ´t´ d´-
                         e                ea                              ee e
velopp´es dans un premier temps par des ´quipes de chercheurs et sont de plus
        e                                   e
en plus utilis´es dans le milieu industriel pour l’analyse d’une grande vari´t´
               e                                                              ee
de syst`mes (syst`mes mat´riels, logiciels, syst`mes r´actifs, syst`mes temps
         e          e         e                  e       e           e
r´el). Il est maintenant prouv´ que ces techniques sont efficaces et sont fr´quem-
 e                              e                                         e
ment 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 leur
e                           e                                          e
efficacit´. Ceci nous conduit ` penser que les applications industrielles vont se
          e                     a
multiplier 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     e
de syst`mes. J’ai concentr´ mes efforts sur l’am´lioration de diff´rents aspects
        e                  e                      e                e
de l’algorithmique de la v´rification : la logique temporelle lin´aire (LTL), la
                           e                                     e
v´rification par ordre partiel et la v´rification symbolique. Mes recherches sont
 e                                   e
en partie aliment´es par des pr´occupations concr`tes abord´es dans le cadre
                  e              e                   e         e
de projets industriels ou des projets universitaires. Par exemple, dans le cadre
du projet CLOVIS (un projet de recherche exploratoire DGA), j’ai ´labor´ et
                                                                      e     e
impl´ment´ une structure originale de diagrammes de d´cision adapt´e ` la v´-
     e      e                                            e            e a      e
rification symbolique et nous l’avons appliqu´e ` la v´rification de programmes
                                              e a      e
VHDL. Mes autres recherches sont beaucoup plus acad´miques, comme la v´-
                                                          e                    e
rification 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 2

Logique temporelle lin´aire
                      e

    La logique temporelle est un langage puissant permettant de d´crire des
                                                                          e
propri´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                e
langage de sp´cification dans des outils tel que SPIN [48] et SMV [58]. Cepen-
                 e
dant, v´rifier qu’un syst`me fini respecte une telle sp´cification est PSPACE-
         e                    e                            e
complet [75]. En pratique, les techniques de v´rification sont confront´es ` un
                                                   e                        e a
probl`me d’explosion combinatoire du nombre d’´tats du syst`me et de celui
       e                                                e          e
de l’automate codant la formule. De nombreuses techniques ont ´t´ ´labor´es
                                                                     eee           e
pour faire face ` ce probl`me d’explosion. Nous pouvons noter les techniques
                   a            e
de v´rification ` la vol´e combin´es avec des techniques de r´duction ` base
      e            a        e          e                          e            a
d’ordre partiel (SPIN [48]). La repr´sentation symbolique par les diagrammes
                                          e
de d´cisions permet de coder un syst`me et l’automate d’une formule de mani`re
     e                                   e                                         e
concise et ainsi de repousser les limites de la v´rification (SMV [58]). Chacune
                                                   e
de ces m´thodes ont leurs succ`s sur des syst`mes industriels prouvant leur
            e                        e               e
bien-fond´. e
    En 1999 [14], j’ai propos´ de nouveaux algorithmes pour r´soudre les deux
                                   e                              e
probl`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 e
d’automates propos´ dans [37] produit non seulement des automates de tailles
                        e
raisonnables, 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         e
l’enseignement de ces techniques m’ont conduit ` les remettre en question. D’une
                                                   a
part, l’algorithme de construction [37] produit pour certaines formules simples
des automates compliqu´s et certains aspects de la construction d´fiaient l’in-
                             e                                         e
tuition. D’autre part, pourquoi aucun des algorithmes pour tester le vide n’´taite
bas´ sur le fameux algorithme de Tarjan [77]. Mon objectif initial ´tait donc
    e                                                                    e
p´dagogique : (1) d´velopper une technique de construction d’automates facile
  e                     e
a
` 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              e
automate.
    J’ai con¸u une construction d’automates qui est dans quasiment tous les cas
              c

                                         3
4                                                        ´
                       CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE

meilleure que celle propos´e dans [37] : elle produit des automates plus petits.
                             e
L’algorithme construit une variante des automates de B¨chi : des automates `
                                                           u                      a
transitions. Contrairement aux automates de B¨chi, les conditions d’acceptation
                                                u
portent ici sur les transitions. Ma construction est tr`s voisine de celle propos´e
                                                       e                         e
dans [37]. Elle est bas´e sur une technique de tableaux [88, 89]. Le point clef
                        e
de ma m´thode est l’utilisation de calcul symbolique, qui permet de simplifier
         e
les expressions de mani`re naturelle et ainsi de r´duire le nombre d’´tats. De
                          e                         e                     e
plus, une impl´mentation simple et efficace peut ˆtre obtenue en utilisant des
                e                                   e
diagrammes de d´cisions binaires.
                   e
   Mon algorithme de v´rification est une variation simple de l’algorithme de
                           e
Tarjan. 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                                                               u
Les algorithmes initialement propos´s [46, 12, 40] n’ont aucune de ces bonnes
                                      e
propri´t´s.
      ee
    En 2003 [22], je me suis int´ress´ ` la v´rification de formules LTL sur des
                                e     ea     e
syst`mes probabilistes. Les algorithmes probabilistes sont con¸us dans de nom-
    e                                                          c
breux domaines de l’informatique, et plus particuli`rement en algorithmique
                                                      e
distribu´e. En fait, dans ce domaine, il existe des probl`mes qui n’admettent
        e                                                 e
pas de solutions algorithmiques d´terministes satisfaisantes. Ainsi, le choix de
                                    e
mettre en œuvre des solutions probabilistes devient n´cessaire. L’extension et
                                                        e
la conception de technique de v´rification efficace pour les syst`mes concurrents
                                e                              e
probabilistes constituent encore ` ce jour un chalenge.
                                  a
    Le principal r´sultat de notre travail [22] est la conception d’une m´thode `
                   e                                                     e      a
base d’automates pour la v´rification de formules LTL sur des syst`mes proba-
                              e                                       e
bilistes. Le point essentiel est que l’algorithme propos´ r´sout le probl`me avec
                                                          e e            e
une complexit´ optimale [13]. Comme dans le cas non probabiliste, nous syn-
               e
chronisons le syst`me avec l’automate de la n´gation de la formule. Cependant,
                   e                             e
nous utilisons une construction particuli`re des automates de la formule. Cette
                                            e
construction que j’ai propos´e dans [15], produit des automates ayant des pro-
                               e
pri´t´s sp´cifiques. Nous avons ainsi exploit´ ces bonnes propri´t´s pour ´viter
   ee      e                                   e                   ee       e
la d´terminisation de ces automates qui est une ´tape coˆteuse conduisant `
     e                                                e       u                 a
une complexit´ doublement exponentielle en temps [84].
               e
    Ce chapitre est organis´ en 4 parties. La premi`re partie se veut informelle ;
                           e                       e
elle pose les d´finitions relatives aux mod`les du temps lin´aires et d´crit les
               e                            e                 e          e
principes de la v´rification ` base d’automates. La deuxi`me partie aborde le
                   e         a                             e
probl`me de la traduction d’une formule LTL en un automate. Cette partie
      e
contient une discussion sur le type d’automates ` produire, donne deux m´-
                                                   a                           e
thodes de construction, et termine par une ´tude exp´rimentale comparative
                                               e        e
avec des m´thodes existantes. La troisi`me partie d´crit une adaptation de l’al-
            e                           e           e
gorithme de Tarjan pour le test du vide d’un automate. La quatri`me partie est
                                                                   e
consacr´e ` la v´rification d’une formule LTL sur un syst`me probabiliste.
        e a      e                                        e
`                ´
2.1. MODELES DU TEMPS LINEAIRE                                                    5

2.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                  e
les comportements lin´aires, les syst`mes de transitions ´tiquet´s et la logique
                      e              e                   e      e
temporelle lin´aire. Nous terminons par la description des principes de la v´ri-
              e                                                              e
fication ` la base d’automates.
        a

Comportements lin´aires. Dans les logiques du temps lin´aire, un com-
                        e                                       e
portement est mod´lis´ par une suite infinie d’´v´nements, lors desquels il est
                    e e                        e e
possible d’observer les ´tats et des actions d’un syst`me. L’ensemble de ces
                          e                             e
observations est appel´es propositions ´l´mentaires. Formellement un compor-
                       e               ee
tement lin´aire sur un ensemble de propositions ´l´mentaires AP est une struc-
          e                                     ee
ture 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                                          e
est le mot infini sur l’alphabet 2AP d´fini par T race(r) = λ(σ).
                                     e

Syst`me de transitions ´tiquet´es. Les mod`les de syst`mes ont une s´-
     e                        e      e                e         e              e
mantique ` base de syst`mes de transitions. Un tel syst`me est d´fini par un
           a              e                                e          e
quintuple M = (S, S0 , T, α, β, L) o` S est un ensemble d’´tats, S0 un ensemble
                                    u                      e
d’´tats initiaux, T un ensemble de transitions, α, β : T → S sont les fonctions
  e
identifiant l’origine et le but des transitions, et λ : T → 2AP est une fonction
d’´tiquetage des transitions.
  e
    Les comportements lin´aires d’un syst`me de transitions sont d´finis par les
                            e              e                          e
mots infinis de transitions d´crivant des chemins valides du syst`me d´marrant
                              e                                    e     e
d’un ´tat de S0 . Dans la s´mantique du temps lin´aire, un syst`me est identifi´
      e                     e                       e            e              e
par l’ensemble des traces de ses comportements lin´aires. Notez que les com-
                                                        e
portements finis terminant dans un ´tat puit ne sont pas pris en compte. Sans
                                      e
perdre de g´n´ralit´, ce d´faut est r´solu en ajoutant une transition bouclante
             e e    e      e          e
a
` chaque ´tat puit. Dans ce mod`le, une propri´t´ d’´tat est mod´lis´e par une
          e                       e              ee e                e e
propri´t´ de transition en affectant ` chaque transition la valeur de v´rit´ de
       ee                              a                                   e e
son ´tat source. Dans la suite, nous ne consid´rerons que des syst`mes ` nombre
    e                                         e                    e     a
fini d’´tats et de transitions.
       e

Logique temporelle lin´aire. Cette logique permet d’´noncer des propri´-
                            e                                  e                   e
t´s sur les traces des comportements d’un syst`me. Elle permet de parler de
 e                                                 e
l’´volution d’un syst`me au cours du temps en examinant la suite des ´v´ne-
  e                    e                                                     e e
ments observ´s lorsque le syst`me r´alise un comportement lin´aire. Les for-
               e                 e     e                              e
mules sont construites ` partir des propri´t´s ´l´mentaires, des op´rateurs et
                          a                  e e ee                     e
constantes 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                                          e
de 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                                                                        a
l’instant i si f l’est ` l’instant suivant ; f U g est vraie ` l’instant i si g est vraie
                       a                                     a
a
` un instant futur j et entre les instants i et j, f est toujours vraie. On utilise
librement les abr´viations logiques habituelles suivantes , ⊥, f ∨ g, f ⇒ g, et
                    e
                        def              def
f ⇔ g, ainsi que F f ≡ U f , Gf ≡ ¬F ¬f . F f dit que f est vraie dans un
instant 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              e
tisfaction σ |= f d’une formule pour une trace d’un comportement lin´aire.  e
Nous dirons qu’un syst`me de transitions ´tiquet´es v´rifie une formule f , not´
                         e                 e     e    e                       e
M |= f , si toutes les traces de ses comportements v´rifient f .
                                                    e


V´rification par automates. Les principes de la v´rification de syst`mes
   e                                                       e                 e
finis par automates pour LTL sont dˆ ` Vardi, Wolper [85]. Ils reposent sur
                                        u a
le fait que l’ensemble des mots infinis satisfaisant une formule LTL forme un
langage r´gulier et est repr´sentable par un ω-automate. Pour appliquer cette
          e                 e
propri´t´, un syst`me est vu comme un g´n´rateur de mots infinis. Ainsi, si
       ee           e                         e e
M est un syst`me et f une formule, tester M |= f se ram`ne ` un probl`me
                e                                              e a            e
purement sur les automates : tester si M ∩ ¬f est vide, c-a-d n’accepte pas de
mot infini. Cette approche pose clairement les probl`mes algorithmiques de la
                                                        e
v´rification : (1) calculer un ω-automate pour une formule LTL ; (2) calculer
  e
l’intersection de deux automates ; (3) tester le vide d’un automate. Dans la suite
de notre pr´sentation, nous examinerons nos contributions aux probl`mes (1)
             e                                                           e
et (3) et montrerons comment cette approche est appliquable ` la v´rification
                                                                 a     e
de syst`mes probabilistes.
        e



2.2      Traduction d’une formule LTL en ω-automate

     De nombreux travaux traitent de la construction d’un automate pour une
formule LTL. Nous ne donnerons pas une g´n´alogie des m´thodes. On pourra
                                                e e            e
trouver dans [90, 25, 78] de tr`s bons ´tats de l’art. Mes contributions sur ce
                                 e        e
th`me sont multiples. Premi`rement, elles concernent le choix du type d’auto-
   e                           e
mates construits : les automates ` transitions. Dans ces automates, les condi-
                                    a
tions d’acceptation portent sur les transitions infiniment rencontr´es plutˆt que
                                                                     e        o
sur les ´tats. Cette id´e a ´t´ reprise par des constructions r´centes et donne `
         e             e    ee                                   e                a
ces m´thodes une efficacit´ quasiment imm´diate. Deuxi`mement, j’ai d´velopp´
       e                   e                  e            e               e      e
une m´thode produisant des automates adapt´s aux probl`mes de la v´rifica-
        e                                          e           e             e
tion probabiliste. Un aspect int´ressant de cette traduction est la repr´sentation
                                 e                                       e
directe de l’automate sous la forme d’un BDD. Troisi`mement, j’ai d´velopp´
                                                          e                e      e
une construction bien adapt´e aux techniques de v´rification ` la vol´e : l’ob-
                               e                        e          a       e
jectif est de construire localement la liste des transitions successeurs d’un ´tat.
                                                                                e
Le point clef de cette technique est l’utilisation de BDD pour repr´senter et
                                                                         e
simplifier 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 q

2.2.1    Automates ` transitions
                   a
    Un automate reconnaissant des mots infinis est un syst`me fini adjoint d’une
                                                          e
condition d´finissant les chemins infinis pour ˆtre accept´s. Les mots infinis
             e                                 e            e
accept´s par un automate sont les traces des chemins infinis accept´s. Dans
       e                                                              e
le cas des automates de B¨chi, un chemin accept´ doit traverser infiniment
                             u                      e
un ensemble d’´tats appel´s ´tats d’acceptation. Pour les automates que nous
                e          e e
consid´rons, les automates ` transitions, la condition d’acceptation porte sur
       e                     a
les transitions parcourues infiniment. Dans notre ´tude, les conditions sont des
                                                 e
conjonctions de conditions de B¨chi. Une condition est d´finie par un ensemble
                                u                        e
d’ensembles de transitions. Un chemin est accept´ s’il traverse infiniment tous
                                                 e
les ensembles de la condition.

D´finition 2.1 (Automate ` transitions) Soit AP un ensemble fini de pro-
   e                              a
positions ´l´mentaires. Un automate ` transitions sur AP est une structure
            ee                             a
A = (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
                                       e
accept´s par A. Notons L(A), l’ensemble des mots accept´s par A et L(A, s)
       e                                                        e
l’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       e
LTL. Traditionnellement, les conditions portent sur les ´tats (Acc ⊆ 2S ). Dans
                                                         e
certains travaux, les propri´t´s sont attribu´es aux ´tats (λ : S → 2AP ). Les
                            ee               e        e
8                                                        ´
                       CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE

propri´t´s ´tiquetant les ´tats ou les transitions peuvent aussi prendre la forme
        ee e                 e
                                                                               AP
d’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-
                                    e
tant, si besoin, les propri´t´s et les conditions d’acceptation sur les transitions,
                              ee
et en d´veloppant les expressions bool´ennes ´tiquetant ´ventuellement les tran-
         e                               e       e        e
sitions. Nous dirons qu’un automate est ` ´tats si les propri´t´s et les conditions
                                             ae                ee
portent sur les ´tats. La figure 2.1 donne des variantes d’automates pour la for-
                  e
mule GF p ∧ GF q. Les ensembles ´tiquetant les ´tats et les transitions sp´cifient
                                    e              e                         e
l’appartenance ` un ensemble d’acceptation. Ici, nous avons deux ensembles
                   a
d’acceptation. Nous pouvons d´j` remarquer que les deux automates du haut
                                  ea
sont les plus concis et montrer qu’il n’est pas possible d’obtenir un automate
a
` un ´tat en posant les conditions d’acceptation sur les ´tats. Malgr´ les appa-
       e                                                   e              e
rences, l’automate en haut ` droite est de loin le meilleur : il est d´terministe et
                               a                                      e
n’a que 4 transitions. L’automate en haut et au milieu a en r´alit´ 8 transitions.
                                                                 e e
En effet, une transition ´tiquet´e par une expression bool´enne repr´sente au-
                             e    e                           e            e
tant 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 ` 22n
a                                                           a     e             a
transitions. Cet exemple illustre le fait que le choix de la variante d’automate
joue un rˆle important dans les m´thodes de traduction. L’utilisation abusive
            o                         e
d’expressions bool´ennes peut s’av´rer un facteur agravant pour la v´rification
                     e                e                                    e
par la multiplication des transitions. Elle est cependant utile pour donner une
repr´sentation graphique ou textuelle simple et concise d’un automate. Afin
     e
de limiter l’explosion combinatiore du nombre d’´tats et de transitions dans le
                                                     e
processus d’une v´rification, une solution est de ne construire les ´l´ments de
                     e                                                  ee
l’automate qu’` la demande ; une autre solution est d’utiliser des repr´sentations
                 a                                                       e
symboliques telles que les BDD.
    Dans le cadre de la v´rification probabiliste, nous serons amen´ ` prendre en
                            e                                         ea
compte plusieurs qualit´s d’un automate : la non-ambigu¨ e et la s´paration. La
                           e                                ıt´       e
non-ambigu¨ e g´n´ralise la notion de d´terministe : tout mot accept´ par un au-
              ıt´ e e                      e                            e
tomate non ambigu est la trace d’un seul chemin accept´. La s´paration indique
                                                          e       e
que les ´tats d’un automate acceptent des langages disjoints. Dans la figure 2.1,
          e
les deux automates de droite sont non-ambigus et s´par´s, celui de gauche est
                                                        e e
non-ambigu et celui au milieu en haut est s´par´. Remarquons qu’avec un seul
                                                e e
ensemble d’acceptation, il n’est pas possible de produire un automate s´par´   e e
pour la formule GF p ∧ GF q. Ceci montre encore une fois l’importance du choix
du 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
             e
sur 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                                   9

impliqu´es dans la v´rification de la formule f , un ´tat est un vecteur de boo-
        e             e                              e
l´ens s : el(f ) → {0, 1} donnant des valeurs de v´rit´ aux formules de el(f ) et
 e                                                e e
les transitions sont d´finies pour respecter la s´mantique de LTL. L’automate
                       e                        e
produit est ´tiquet´ sur les ´tats et a aussi des conditions d’acceptations sur
              e     e         e
les ´tats. Nous proposons d’en donner une version couramment utilis´e pour
    e                                                                   e
la v´rification symbolique [9] et montrerons comment en modifiant l´g`rement
    e                                                                 e e
la d´finition de el(f ), on obtient une construction produisant des automates `
    e                                                                           a
transitions.

Construction d’un automate ` ´tats. Dans les constructions classiques,
                                    a e
l’ensemble des formules ´l´mentaires el(f ) est compos´ des propositions ´l´men-
                          ee                            e                  ee
taires, des sous-formules de f du type X g et des formules X (gU h) o` gU h est
                                                                        u
une sous-formule de f . Un ´tat est un vecteur de bool´ens s : el(f ) → {0, 1} et la
                             e                         e
restriction de s ` l’ensemble AP des propositions ´l´mentaires d´finit une fonc-
                 a                                  ee              e
tion d’´tiquetage sur des ´tats. Pour construire la relation de transitions, nous
        e                   e
avons besoin de d´finir pour chaque ´tat la fonction sat de satisfaction d’une
                    e                  e
formule. Intuitivement, sat(s)(g) indique si la trace de tout chemin acceptant
de source s satisfait la formule g. Cette relation est d´finie inductivement pour
                                                         e
toute 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      e
s(X g) = sat(s )(g) pour toutes formules X g de el(f ). Enfin les conditions
d’acceptations sont d´finies pour s’assurer que les sous-formules du type gU h
                      e
n’acceptent pas des s´quences o` h n’est jamais v´rifi´. Ainsi pour chaque sous-
                     e         u                  e e
formule gU h, on d´finit un ensemble d’acceptation contenant les ´tats s tels que
                  e                                              e
sat(s)(h) ∨ ¬sat(s)(gU h) = 1. Les ´tats initiaux sont ceux v´rifiant s(f ) = 1.
                                   e                          e
Proposition 2.3 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble
des 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’ensemble
des formules ´l´mentaires est el(f ) = {p, q, X (pU q)}. Les ´tats de l’automate
              ee                                             e
sont donc des triplets de bool´ens. Dans une premi`re ´tape, nous ´valuons
                               e                       e e               e
pour chaque ´tat la valeur de la fonction de satisfaction pour la formule pU q.
             e
Ce calcul permet de d´terminer compl´tement la relation de transition de l’au-
                      e               e
tomate : 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
                                   ae


X (pU q) et ceux ne v´rifiant pas pU q ont pour successeurs les autres ´tats.
                       e                                                   e
Dans une deuxi`me ´tape, nous calculons la valeur de la fonction de satisfac-
                 e   e
tion pour la formule q ∨ ¬(pU q). Celle-ci nous donne les ´tats appartenant `
                                                             e                 a
l’ensemble d’acceptation associ´ ` la formule pU q. Finalement nous d´signons
                                ea                                      e
les ´tats v´rifiant pU q comme ´tats initiaux. Le tableau 2.1 donne les r´sultats
    e      e                    e                                        e
des calculs n´cessaires ` la construction de l’automate et la figure 2.2 donne la
              e         a
repr´sentation graphique de l’automate.
     e



Construction d’un automate ` transitions. Ma construction est une va-
                                    a
riante de cette construction classique. J’ai choisi comme formules ´l´mentaires
                                                                     ee
d’une formule f , la formule f , les sous-formules du type gU h et les formules g
telles 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                                                              e
toute ´tiquette a ∈ 2AP et tout ´tat destination s . Intuitivement, satT (a, s )(g)
       e                          e
indique si la trace d’un chemin acceptant commen¸ant par une transition ´ti-
                                                      c                         e
quet´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                                      11

inductivement 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
                               e
de elT (g). Notez que la donn´e d’un ´tiquetage et d’un ´tat destination d´finit
                             e        e                   e                 e
enti`rement l’´tat source de la transition. Les conditions d’acceptation sont
    e          e
d´finies sur les transitions de mani`re analogue ` la construction pr´c´dente.
  e                                 e              a                    e e
Pour chaque sous-formule gU h, on d´finit un ensemble d’acceptation contenant
                                     e
                  a
les transitions s → s tel que satT (a, s )(h) ∧ ¬s(gU h) = 1. Les ´tats initiaux
                                                                    e
sont ceux v´rifiant s(f ).
             e

Proposition 2.4 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble des
sous-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.
                                        a
L’ensemble des formules ´l´mentaires est elT (f ) = {pU q}. Le codage des ´tats
                          ee                                                  e
de l’automate se r´sume ` un bool´en. Dans une premi`re ´tape, nous ´valuons
                   e      a         e                   e e               e
pour chaque valeur d’´tiquette a et chaque ´tat destination s , la valeur de la
                       e                      e
fonction de satisfaction pour la formule pU q. Ce calcul permet de d´terminer
                                                                        e
compl`tement les ´tats sources s des transitions ` partir de l’´tiquette a et de la
      e            e                              a            e
destination s . Dans une deuxi`me ´tape, nous calculons la valeur de la fonction
                               e     e
de satisfaction pour la formule q ∨ ¬(pU q). Celle-ci nous donne les transitions
appartenant ` l’ensemble d’acceptation associ´ ` la formule pU q. Finalement
              a                                 e a
nous d´signons les ´tats v´rifiant pU q comme ´tats initiaux. Le tableau 2.2
        e            e      e                      e
donne les r´sultats des calculs n´cessaires ` la construction de l’automate et la
            e                    e          a
figure 2.3 donne ` gauche la repr´sentation graphique de l’automate.
                  a                e



Propri´t´s des automates. Les deux constructions sont extrˆmement si-
         e e                                                         e
milaires et pourtant l’automate ` transitions est toujours plus petit que l’au-
                                   a
tomate ` ´tats. En effet remarquons que les ensembles de fonctions ´l´men-
         a e                                                              ee
taires des deux constructions servant ` coder les ´tats sont li´s par l’identit´
                                         a            e          e               e
el(f ) ∪ {f } = X (elT (f )) ∪ AP ; ainsi le facteur de r´duction est de 2|AP | ou
                                                         e
2|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                                       13

symboliques) alors que l’automate ` ´tats correspondant a 32 ´tats et 256 tran-
                                   ae                        e
sitions. La proposition suivante donne l’ordre de grandeur des tailles des auto-
mates en fonction des caract´ristiques de la formule.
                             e

Proposition 2.5 Soit f une formule LTL sur AP . Notons T emp(f ) le nombre
d’op´rateurs X et U contenus dans la formule f . L’automate ` ´tats (produit par
     e                                                             ae
la construction classique) a au plus 2|AP | ·2Temp(f ) ´tats et 22·|AP | ·2Temp(f ) tran-
                                                       e
sitions. 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 a
la partie exp´rimentation (section 2.2.4) que cette construction est largement
              e
supplant´e par les contructions locales. Cependant, l’automate produit poss`de
         e                                                                    e
des propri´t´s bien adapt´es ` la v´rification probabiliste (voir la section 2.4).
           ee             e a       e
D’une part, l’automate est d´terministe en arri`re : un ´tat n’est destination
                             e                    e         e
que d’une transition pour une valeur d’´tiquette donn´e. De plus, l’automate est
                                        e              e
non-ambigu. D’autre part, l’automate est s´par´ : deux ´tats distincts de l’au-
                                            e e            e
tomate reconnaissent des langages disjoints. Ces propri´t´s sont aussi v´rifi´es
                                                         ee               e e
par les automates produits par la construction classique.

Proposition 2.6 Les deux constructions produisent des automates non-ambigus
et s´par´s.
    e e

Repr´sentation symbolique. Les constructions globales se prˆtent bien `
       e                                                             e           a
des repr´sentations symboliques de l’automate. En effet, les ´tats et les transi-
          e                                                   e
tions sont des vecteurs de bool´ens, et les diff´rentes composantes de l’automate
                                e               e
sont des ensembles de vecteurs de bool´ens repr´sentables par des fonctions boo-
                                        e          e
l´ennes. De telles repr´sentations sont couramment utilis´es pour la v´rification
 e                     e                                  e             e
symbolique ` base de BDD. Elles se caract´risent par leur efficacit´ ` r´soudre
             a                                e                      ea e
de nombreux probl`mes de v´rification de grande taille, mais aussi par leur sim-
                    e         e
plicit´ de mise en œuvre. On pourra trouver dans [9] une version symbolique
      e
de la construction classique, ainsi que des algorithmes de v´rification. Mon-
                                                                e
trons que notre technique s’applique aussi ` la construction d’un automate `
                                               a                                 a
transitions. Soit f une formule LTL. Consid´rons deux tableaux de variables
                                                 e
bool´ennes now et next index´s par les formules de elT (f ), et identifions les
     e                           e
propositions ´l´mentaires ` des variables bool´ennes. Nous coderons la fonction
              ee           a                     e
caract´ristique d’un ensemble d’´tats par une expression sur les variables now
        e                          e
et 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                                                            e
par 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-
                                                      a
tion globale. Cependant sa formulation est bien plus simple pour construire et
coder un automate ` l’aide de BDD. Pour obtenir une repr´sentation explicite
                     a                                        e
de l’automate, il suffit de d´velopper les fonctions bool´ennes. Cette op´ration
                             e                             e               e
n’est int´ressante que dans un but p´dagogique. En pratique, toutes les op´ra-
         e                             e                                       e
tions utiles peuvent ˆtre r´alis´es sur la repr´sentation symbolique, ´vitant ainsi
                     e     e e                 e                      e
une explosion combinatoire pr´matur´e des algorithmes de v´rification.
                                 e       e                      e

Exemple 3 La repr´sentaton symbolique de l’automate traduisant la formule
                    e
g = 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
                                   e
cette repr´sentation explicite n’est pas n´cessaire pour r´aliser des op´rations
            e                               e                e             e
sur celui-ci. A partir de l’expression des ´tats initiaux, nous d´duisons que l’au-
                                           e                     e
tomate a deux ´tats initiaux : [g, pU q], [g, ¬(pU q)]. Les transitions successeurs
                 e
d’un ´tat pour une valeur des propositions sont obtenues par une op´ration
       e                                                                    e
de substitution sur la fonction T . Consid´rons l’´tat s = [g, pU q], et l’´ti-
                                               e       e                        e
quette 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 variables
e                                                            e
next. 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’acceptation
est obtenue en ´valuant les expressions bool´ennes Acc[g], Acc[pU q]. Ainsi les
                 e                              e
deux 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 e
am´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    e
Les deux premi`res techniques r´duisent le nombre d’´tats et de transitions de
                  e                 e                    e
l’automate et peuvent ˆtre r´alis´es directement sur sa repr´sentation symbo-
                          e      e e                            e
lique (voir [9]). Les ´tats de l’automate seront alors symboliquement repr´sent´s
                      e                                                   e    e
par 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                    e


nous 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
                   a
tions 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                                                                ee
mentaires 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                          ee
le r´sultat des simplifications sur l’automate repr´sentant la formule rU (pU q).
    e                                                e

2.2.3    Construction locale
    Le d´faut des constructions globales est qu’elles produisent imm´diatement
          e                                                              e
un automate de taille exponentielle par rapport ` la taille de la formule. L’exemple
                                                    a
le plus frappant est la formule X n p (i.e. X . . . X p avec n op´rateurs X ). Cette
                                                                 e
formule indique que la ni`me action d’un comportement doit v´rifier la propo-
                            e                                       e
sition p. Intuitivement, il suffit d’un automate ` transitions ` n + 2 ´tats pour
                                                    a            a        e
coder cette formule. Les constructions globales produisent pour cette formule
des automates de taille exponentielle, mˆme apr`s simplification. En 1995, R.
                                            e          e
Gerth, D. Peled, M. Y. Vardi et P. Wolper proposent un nouveau type de la
construction [37]. L’id´e consiste ` partir de la formule ` v´rifier, et ` la d´-
                        e           a                          a e           a    e
velopper sous la forme d’une disjonction de conjonction de formules ne faisant
apparaˆ 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 formule
e                         e                              e
initiale ; les termes des conjonctions portant sur les propositions ´l´mentaires
                                                                       ee
d´finissent les propri´t´s ` v´rifier dans l’´tat, et ceux portant sur les formules
  e                    ee a e                e
du type X g servent ` construire les ´tats successeurs. La construction continue
                      a               e
en d´veloppant les formules associ´es aux formules repr´sentant les ´tats suc-
      e                             e                         e            e
cesseurs. Cette construction locale de l’automate d’une formule ne produit pas
syst´matiquement les ´tats correspondant ` toutes les combinaisons possibles
     e                  e                      a
des formules ´l´mentaires ; ceci rend cette construction int´ressante en pratique.
                ee                                             e
Un 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 allons
rappeler les m´canismes de la construction locale de l’article fondateur [37], et
                 e
montrer comment nous avons adapt´ et simplifi´ cette technique pour produire
                                      e              e
des automates ` transitions.
                  a
   Pour que les constructions locales soient applicables, les formules sont mises
16                                                         ´
                         CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE

sous 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 introduisons
e           e                       ee
l’op´rateur dual du until V : gV h = ¬(¬gU ¬h). Lors du d´veloppement d’une
    e                                                      e
formule, 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 fait
que l’identit´ relative ` la formule gU h ne tient pas compte de la propri´t´
              e         a                                                     ee
d’in´vitabilit´ de h, alors qu’aucune propri´t´ de ce type n’est n´cessaire pour
    e          e                             ee                   e
la validit´ de la formule gV h. Ainsi dans les deux constructions, nous associe-
          e
rons un ensemble d’acceptation ` chaque sous-formule du type gU h. Les deux
                                  a
constructions locales se distingueront par le type d’automates produits, et aussi
sur la mani`re de capter les conditions d’acceptation.
             e

Construction d’un automate ` ´tats Nous allons donner une version sim-
                                   ae
plifi´e de la construction originale [37], captant autant que possible les optimisa-
    e
tions propos´es par les concepteurs. Le point clef de cette construction concerne
              e
la mani`re de d´velopper une formule LTL. Ce d´veloppement ne produit pas
        e        e                                  e
une formule LTL, mais une expression symbolique repr´sentant des ensembles
                                                           e
d’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
         e
symboles now [gU h] et now [h] sont utilis´s pour capter les conditions d’accep-
                                           e
tation : un ´tat ne contenant pas le symbole now [gU h] ou contenant le symbole
            e
now [h] est un ´tat de l’ensemble d’acceptation associ´ ` la formule gU h. A
                e                                       e a
l’exception des formules gU h, les r`gles pour d´velopper une formule sont celles
                                    e           e
attendues. Dans les expressions suivantes, Φ(g) est le r´sultat du d´veloppe-
                                                           e           e
ment d’une formule, les op´rateurs · et + sont des op´rateurs d’union : · est
                            e                            e
l’union sur les ensembles de symboles et + celui sur les ensembles d’ensembles
de 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                                                      e
pement 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   e

Proposition 2.7 Soit f une formule LTL sur AP . L’automate ` ´tats d´fini
                                                           ae       e
par :
   – 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 e
tons que la formule est d´j` sous une forme positive. Posons f = pU q. L’au-
                         ea
tomate a deux ensembles d’acceptation Acc = {f, g}. D´veloppons la formule
                                                        e
g:

    Φ(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               e
successeur. Le calcul des successeurs du deuxi`me ´tat n´cessite le d´veloppe-
                                              e   e      e           e
ment 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-
                                                 e
seur est ∅. D’autre part, le troisi`me ´tat initial a pour successeur les trois ´tats
                                     e   e                                       e
initiaux. La figure 2.5 donne une repr´sentation graphique de l’automate r´sul-
                                           e                                      e
tant. Les concepteurs de cette m´thode ont propos´ de nombreuses heuristiques
                                     e                 e
pour 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]
                                                         e
et now [h] appartiennent ` un ´tat s, retirer de s, now [gU h].
                            a     e

Construction d’un automate ` transitions La construction que j’ai pro-
                                  a
pos´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)
        e
nous avons ´cart´ le symbole now [h] dans le d´veloppement des formules gU h.
             e   e                             e
La 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)
                                 ae


utile dans le d´veloppement d’une formule gU h est : est-ce que la propri´t´
                e                                                              ee
d’in´vitabilit´ restera ` v´rifier ? Plutˆt qu’utiliser le symbole now [gU h], nous
    e         e         a e             o
pr´f´rons le symbole nacc[gU h] indiquant clairement la non acceptation d’une
  ee
transition. L’ensemble des symboles employ´s pour le d´veloppement d’une for-
                                              e            e
mule 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                    a
de la formule. Le calcul des transitions successeurs d’un ´tat est obtenu en d´-
                                                          e                   e
veloppant les sous-formules repr´sentant l’´tat. Dans les expressions suivantes,
                                 e          e
notez 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            e
comme des variables bool´ennes, les op´rateurs + et · comme les op´rateurs
                           e             e                               e
bool´ens ∨ et ∧. Notez que l’expression bool´enne repr´sentant le d´veloppe-
    e                                          e           e           e
ment d’une formule peut toujours s’´crire sous la forme disjonctive-conjonctive
                                    e
o` les variables du type next et nacc apparaissent positivement. L’int´rˆt de
 u                                                                        ee
ce point de vue est que ces expressions acceptent les simplifications classiques
des expressions bool´ennes, et ainsi il est possible de r´duire naturellement le
                     e                                   e
nombre de transitions issues d’un ´tat. A partir de la d´finition du d´veloppe-
                                  e                       e            e
ment d’une formule, la d´finition donnant l’automate ` transitions est donn´e
                         e                              a                     e
par 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)
                           a


Proposition 2.8 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble des
sous-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 de
formules 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

                  AP
o` Terme s ⊆ 22 × {gU h|gU h ∈ sub(f )} × elT (f ). L’automate ` transitions
 u                                                             a
d´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).
                                   a
Posons f = pU q. L’automate a un ´tat initial {g}. Les transitions successeurs
                                    e
sont 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 le
d´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
                                                                 e
2.6 donne la repr´sentation graphique de l’automate r´sultant.
                  e                                    e
20                                                         ´
                         CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE

Simplification 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.
                  ee

La table 2.3 donne quelques r´sultats exp´rimentaux sur l’influence des optimi-
                              e           e
sations. Nous avons appliqu´ la construction locale pour toutes les combinaisons
                            e
possibles d’optimisation, sur une centaine de formules tir´es al´atoirement dont
                                                          e     e
la taille varie de 15 ` 20. Les colonnes Automate donnent la taille cumul´e
                      a                                                        e
des automates ; les colonnes Produit synchronis´ donnent la taille cumul´e des
                                                 e                        e
produit synchronis´s des automates des formules avec un syst`me comprenant
                    e                                           e
200 ´tats. Nous noterons que les simplifications (1) et (3) r´duisent la taille de
     e                                                       e
l’automate, alors que la simplification (2) a pour objectif de rendre l’automate
plus d´terministe et ainsi de r´duire le nombre de transitions du produit syn-
       e                        e
chronis´. Les mˆmes exp´rimentations appliqu´es ` 39 formules ”classiques” de
        e        e       e                      e a
LTL (voir la table 2.3) aboutissent aux mˆmes conclusions.
                                           e

2.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,
                                                 e
78, 67, 34]. Il est naturel de se demander si la construction que j’ai propos´e en
                                                                             e
1999, est encore d’actualit´. Nous ne pouvons donner ` cette question qu’une
                             e                            a
r´ponse partielle. En effet, la comparaison d´pend en grande partie de la qualit´
 e                                            e                                   e
des outils qui les impl´mentent. Par exemple, l’outil prototype Modella illus-
                         e
trant les travaux de [74] n’est pas suffisamment fiable pour ˆtre pris en compte.
                                                              e
Enfin, 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     6831836


Tab. 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
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

Contenu connexe

Tendances

Controle1 collège
Controle1 collègeControle1 collège
Controle1 collègemnr abn
 
Sout3
Sout3Sout3
Sout33on
 
Architectures logicielles et materielles
Architectures logicielles et materiellesArchitectures logicielles et materielles
Architectures logicielles et materiellesAdnane Farid
 
Développez en java
Développez en javaDéveloppez en java
Développez en javasocrat2
 
oecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisationoecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisationClothildeBenares
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMGrégoire Dupont
 
Media file 8531
Media file 8531Media file 8531
Media file 8531alia daoud
 
Hold'em No Limit Strategy
Hold'em No Limit StrategyHold'em No Limit Strategy
Hold'em No Limit StrategySimon Legouge
 
Rapport de Soutenance 3
Rapport de Soutenance 3Rapport de Soutenance 3
Rapport de Soutenance 3BartOunay
 
The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210Mahmoud Samir Fayed
 

Tendances (18)

Controle1 collège
Controle1 collègeControle1 collège
Controle1 collège
 
Guide de sécurité_réseau
Guide de sécurité_réseauGuide de sécurité_réseau
Guide de sécurité_réseau
 
Sout3
Sout3Sout3
Sout3
 
Architectures logicielles et materielles
Architectures logicielles et materiellesArchitectures logicielles et materielles
Architectures logicielles et materielles
 
004129686
004129686004129686
004129686
 
875 3157-01
875 3157-01875 3157-01
875 3157-01
 
101trucsexcel2007
101trucsexcel2007101trucsexcel2007
101trucsexcel2007
 
Manual bosch combi kgn36 s51
Manual bosch   combi kgn36 s51Manual bosch   combi kgn36 s51
Manual bosch combi kgn36 s51
 
Développez en java
Développez en javaDéveloppez en java
Développez en java
 
Complet
CompletComplet
Complet
 
Memoire
MemoireMemoire
Memoire
 
oecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisationoecoil condens-2-notice-utilisation
oecoil condens-2-notice-utilisation
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEM
 
Media file 8531
Media file 8531Media file 8531
Media file 8531
 
Polycopie mer
Polycopie merPolycopie mer
Polycopie mer
 
Hold'em No Limit Strategy
Hold'em No Limit StrategyHold'em No Limit Strategy
Hold'em No Limit Strategy
 
Rapport de Soutenance 3
Rapport de Soutenance 3Rapport de Soutenance 3
Rapport de Soutenance 3
 
The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210
 

En vedette

Felipe. l'enfance de mon père
Felipe. l'enfance de mon pèreFelipe. l'enfance de mon père
Felipe. l'enfance de mon pèreSchool
 
Presentation du sp 23 decembre 2011 v4 diff2
Presentation du sp 23 decembre 2011 v4 diff2Presentation du sp 23 decembre 2011 v4 diff2
Presentation du sp 23 decembre 2011 v4 diff2Gwladys
 
Formation Agilité à ESTIA le 20/09/12
Formation Agilité à ESTIA le 20/09/12Formation Agilité à ESTIA le 20/09/12
Formation Agilité à ESTIA le 20/09/12Fabrice Aimetti
 
Vasati in Business - Gartenheim, 24p
Vasati in Business - Gartenheim, 24pVasati in Business - Gartenheim, 24p
Vasati in Business - Gartenheim, 24pVaszati Shastra
 
Você tem mêdo de envelhecer?
Você tem mêdo de envelhecer?Você tem mêdo de envelhecer?
Você tem mêdo de envelhecer?Aristides Monteiro
 
La web 2
La web 2La web 2
La web 2olga
 
MEDICAL DIAGNOSTIC
MEDICAL DIAGNOSTICMEDICAL DIAGNOSTIC
MEDICAL DIAGNOSTICMDambulance
 
Vie publique France : les symboles
Vie publique France : les symbolesVie publique France : les symboles
Vie publique France : les symbolesNewday
 
Tourte aux pommes. pablo
Tourte aux pommes. pabloTourte aux pommes. pablo
Tourte aux pommes. pabloSchool
 
Nos fêtes et traditions
Nos fêtes et traditionsNos fêtes et traditions
Nos fêtes et traditionsSchool
 
Design et société hypothèse ID+
Design et société hypothèse ID+Design et société hypothèse ID+
Design et société hypothèse ID+guest5c7c6b
 
Témoignage sur la coordination des applications numériques et du portail dans...
Témoignage sur la coordination des applications numériques et du portail dans...Témoignage sur la coordination des applications numériques et du portail dans...
Témoignage sur la coordination des applications numériques et du portail dans...bdvo
 
Mein liebster schultag
Mein liebster schultagMein liebster schultag
Mein liebster schultaglilllaa
 
Hijo éxitoso en la escuela.
Hijo éxitoso en la escuela.Hijo éxitoso en la escuela.
Hijo éxitoso en la escuela.marioreyser
 

En vedette (20)

Felipe. l'enfance de mon père
Felipe. l'enfance de mon pèreFelipe. l'enfance de mon père
Felipe. l'enfance de mon père
 
Les mois
Les moisLes mois
Les mois
 
Xcharles
XcharlesXcharles
Xcharles
 
Presentation du sp 23 decembre 2011 v4 diff2
Presentation du sp 23 decembre 2011 v4 diff2Presentation du sp 23 decembre 2011 v4 diff2
Presentation du sp 23 decembre 2011 v4 diff2
 
Formation Agilité à ESTIA le 20/09/12
Formation Agilité à ESTIA le 20/09/12Formation Agilité à ESTIA le 20/09/12
Formation Agilité à ESTIA le 20/09/12
 
Vasati in Business - Gartenheim, 24p
Vasati in Business - Gartenheim, 24pVasati in Business - Gartenheim, 24p
Vasati in Business - Gartenheim, 24p
 
Você tem mêdo de envelhecer?
Você tem mêdo de envelhecer?Você tem mêdo de envelhecer?
Você tem mêdo de envelhecer?
 
La web 2
La web 2La web 2
La web 2
 
MEDICAL DIAGNOSTIC
MEDICAL DIAGNOSTICMEDICAL DIAGNOSTIC
MEDICAL DIAGNOSTIC
 
Pp upgrade
Pp upgradePp upgrade
Pp upgrade
 
Vie publique France : les symboles
Vie publique France : les symbolesVie publique France : les symboles
Vie publique France : les symboles
 
Tourte aux pommes. pablo
Tourte aux pommes. pabloTourte aux pommes. pablo
Tourte aux pommes. pablo
 
Nos fêtes et traditions
Nos fêtes et traditionsNos fêtes et traditions
Nos fêtes et traditions
 
Design et société hypothèse ID+
Design et société hypothèse ID+Design et société hypothèse ID+
Design et société hypothèse ID+
 
Témoignage sur la coordination des applications numériques et du portail dans...
Témoignage sur la coordination des applications numériques et du portail dans...Témoignage sur la coordination des applications numériques et du portail dans...
Témoignage sur la coordination des applications numériques et du portail dans...
 
HLABC Forum: September 2000
HLABC Forum: September 2000HLABC Forum: September 2000
HLABC Forum: September 2000
 
Dc13 si
Dc13 siDc13 si
Dc13 si
 
Mein liebster schultag
Mein liebster schultagMein liebster schultag
Mein liebster schultag
 
Hijo éxitoso en la escuela.
Hijo éxitoso en la escuela.Hijo éxitoso en la escuela.
Hijo éxitoso en la escuela.
 
Mito
MitoMito
Mito
 

Similaire à Jmc habile

Cours stochastic processes
Cours stochastic processesCours stochastic processes
Cours stochastic processeszoolyver
 
Introduction au statistiques inférentielle
Introduction au statistiques inférentielleIntroduction au statistiques inférentielle
Introduction au statistiques inférentielleTaha Can
 
Génération automatique de questions à partir de textes en français
Génération automatique de questions à partir de textes en françaisGénération automatique de questions à partir de textes en français
Génération automatique de questions à partir de textes en françaislouisdv
 
Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)YoussefTrimech
 
Mr phd thesis
Mr phd thesisMr phd thesis
Mr phd thesisAbirHezzi
 
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Haytam EL YOUSSFI
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stagecbellisario
 
Autonomous navigation of flying robot
Autonomous navigation of flying robotAutonomous navigation of flying robot
Autonomous navigation of flying robotdoukhioualid
 
Le Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes TechnologiquesLe Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes TechnologiquesGenève Lab
 

Similaire à Jmc habile (20)

defour phd
defour phddefour phd
defour phd
 
Cours stochastic processes
Cours stochastic processesCours stochastic processes
Cours stochastic processes
 
Introduction au statistiques inférentielle
Introduction au statistiques inférentielleIntroduction au statistiques inférentielle
Introduction au statistiques inférentielle
 
Cours10
Cours10Cours10
Cours10
 
Analyse2 00
Analyse2 00Analyse2 00
Analyse2 00
 
PMP Report
PMP ReportPMP Report
PMP Report
 
Nagios
NagiosNagios
Nagios
 
PhD Thesis
PhD ThesisPhD Thesis
PhD Thesis
 
Maths
MathsMaths
Maths
 
Report MyProof
Report MyProofReport MyProof
Report MyProof
 
Génération automatique de questions à partir de textes en français
Génération automatique de questions à partir de textes en françaisGénération automatique de questions à partir de textes en français
Génération automatique de questions à partir de textes en français
 
These_final
These_finalThese_final
These_final
 
Badis these
Badis theseBadis these
Badis these
 
Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)
 
Mr phd thesis
Mr phd thesisMr phd thesis
Mr phd thesis
 
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...Deep Learning : Application à la reconnaissance d’objets de classes multiples...
Deep Learning : Application à la reconnaissance d’objets de classes multiples...
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stage
 
Autonomous navigation of flying robot
Autonomous navigation of flying robotAutonomous navigation of flying robot
Autonomous navigation of flying robot
 
Le Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes TechnologiquesLe Référentiel Nouvelles Plateformes Technologiques
Le Référentiel Nouvelles Plateformes Technologiques
 
Analyse s1
Analyse s1Analyse s1
Analyse s1
 

Plus de Wael Ismail

Plus de Wael Ismail (20)

Dc23 si
Dc23 siDc23 si
Dc23 si
 
Ds1
Ds1Ds1
Ds1
 
Dc2cc
Dc2ccDc2cc
Dc2cc
 
Dc2
Dc2Dc2
Dc2
 
Ch5 base de données
Ch5   base de donnéesCh5   base de données
Ch5 base de données
 
Ch4 internet
Ch4   internetCh4   internet
Ch4 internet
 
Ch3 eléments de présentation
Ch3   eléments de présentationCh3   eléments de présentation
Ch3 eléments de présentation
 
Ch2 tableur
Ch2  tableurCh2  tableur
Ch2 tableur
 
Ch1 traitement de texte
Ch1   traitement de texteCh1   traitement de texte
Ch1 traitement de texte
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximation
 
Presentation algo-irem-2x2 (1)
Presentation algo-irem-2x2 (1)Presentation algo-irem-2x2 (1)
Presentation algo-irem-2x2 (1)
 
Les structures en c++
Les structures en c++Les structures en c++
Les structures en c++
 
Les structures en c++ (1)
Les structures en c++ (1)Les structures en c++ (1)
Les structures en c++ (1)
 
L2006
L2006L2006
L2006
 
Cours intro05 06
Cours intro05 06Cours intro05 06
Cours intro05 06
 
Cours1 1
Cours1 1Cours1 1
Cours1 1
 
C66
C66C66
C66
 
Bilan gpf algorithmique_site
Bilan gpf algorithmique_siteBilan gpf algorithmique_site
Bilan gpf algorithmique_site
 
Acq iut nov06-avr07
Acq iut nov06-avr07Acq iut nov06-avr07
Acq iut nov06-avr07
 
A1s1
A1s1A1s1
A1s1
 

Jmc habile

  • 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 Cachan Pr´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
  • 3. Table des mati`res e 1 Introduction 1 2 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3 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
  • 4. ` 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5 Conclusion et perspectives 111
  • 5. Chapitre 1 Introduction Les techniques de v´rifications ont d´j` plus de vingt ans. Elles ont ´t´ d´- e ea ee e velopp´es dans un premier temps par des ´quipes de chercheurs et sont de plus e e en plus utilis´es dans le milieu industriel pour l’analyse d’une grande vari´t´ e ee de syst`mes (syst`mes mat´riels, logiciels, syst`mes r´actifs, syst`mes temps e e e e e e r´el). Il est maintenant prouv´ que ces techniques sont efficaces et sont fr´quem- e e e ment 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 leur e e e efficacit´. Ceci nous conduit ` penser que les applications industrielles vont se e a multiplier 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 e de syst`mes. J’ai concentr´ mes efforts sur l’am´lioration de diff´rents aspects e e e e de l’algorithmique de la v´rification : la logique temporelle lin´aire (LTL), la e e v´rification par ordre partiel et la v´rification symbolique. Mes recherches sont e e en partie aliment´es par des pr´occupations concr`tes abord´es dans le cadre e e e e de projets industriels ou des projets universitaires. Par exemple, dans le cadre du projet CLOVIS (un projet de recherche exploratoire DGA), j’ai ´labor´ et e e impl´ment´ une structure originale de diagrammes de d´cision adapt´e ` la v´- e e e e a e rification symbolique et nous l’avons appliqu´e ` la v´rification de programmes e a e VHDL. Mes autres recherches sont beaucoup plus acad´miques, comme la v´- e e rification 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
  • 6. 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
  • 7. Chapitre 2 Logique temporelle lin´aire e La logique temporelle est un langage puissant permettant de d´crire des e propri´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 e langage de sp´cification dans des outils tel que SPIN [48] et SMV [58]. Cepen- e dant, v´rifier qu’un syst`me fini respecte une telle sp´cification est PSPACE- e e e complet [75]. En pratique, les techniques de v´rification sont confront´es ` un e e a probl`me d’explosion combinatoire du nombre d’´tats du syst`me et de celui e e e de l’automate codant la formule. De nombreuses techniques ont ´t´ ´labor´es eee e pour faire face ` ce probl`me d’explosion. Nous pouvons noter les techniques a e de v´rification ` la vol´e combin´es avec des techniques de r´duction ` base e a e e e a d’ordre partiel (SPIN [48]). La repr´sentation symbolique par les diagrammes e de d´cisions permet de coder un syst`me et l’automate d’une formule de mani`re e e e concise et ainsi de repousser les limites de la v´rification (SMV [58]). Chacune e de ces m´thodes ont leurs succ`s sur des syst`mes industriels prouvant leur e e e bien-fond´. e En 1999 [14], j’ai propos´ de nouveaux algorithmes pour r´soudre les deux e e probl`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 e d’automates propos´ dans [37] produit non seulement des automates de tailles e raisonnables, 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 e l’enseignement de ces techniques m’ont conduit ` les remettre en question. D’une a part, l’algorithme de construction [37] produit pour certaines formules simples des automates compliqu´s et certains aspects de la construction d´fiaient l’in- e e tuition. D’autre part, pourquoi aucun des algorithmes pour tester le vide n’´taite bas´ sur le fameux algorithme de Tarjan [77]. Mon objectif initial ´tait donc e e p´dagogique : (1) d´velopper une technique de construction d’automates facile e e a ` 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 e automate. J’ai con¸u une construction d’automates qui est dans quasiment tous les cas c 3
  • 8. 4 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE meilleure que celle propos´e dans [37] : elle produit des automates plus petits. e L’algorithme construit une variante des automates de B¨chi : des automates ` u a transitions. Contrairement aux automates de B¨chi, les conditions d’acceptation u portent ici sur les transitions. Ma construction est tr`s voisine de celle propos´e e e dans [37]. Elle est bas´e sur une technique de tableaux [88, 89]. Le point clef e de ma m´thode est l’utilisation de calcul symbolique, qui permet de simplifier e les expressions de mani`re naturelle et ainsi de r´duire le nombre d’´tats. De e e e plus, une impl´mentation simple et efficace peut ˆtre obtenue en utilisant des e e diagrammes de d´cisions binaires. e Mon algorithme de v´rification est une variation simple de l’algorithme de e Tarjan. 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 u Les algorithmes initialement propos´s [46, 12, 40] n’ont aucune de ces bonnes e propri´t´s. ee En 2003 [22], je me suis int´ress´ ` la v´rification de formules LTL sur des e ea e syst`mes probabilistes. Les algorithmes probabilistes sont con¸us dans de nom- e c breux domaines de l’informatique, et plus particuli`rement en algorithmique e distribu´e. En fait, dans ce domaine, il existe des probl`mes qui n’admettent e e pas de solutions algorithmiques d´terministes satisfaisantes. Ainsi, le choix de e mettre en œuvre des solutions probabilistes devient n´cessaire. L’extension et e la conception de technique de v´rification efficace pour les syst`mes concurrents e e probabilistes constituent encore ` ce jour un chalenge. a Le principal r´sultat de notre travail [22] est la conception d’une m´thode ` e e a base d’automates pour la v´rification de formules LTL sur des syst`mes proba- e e bilistes. Le point essentiel est que l’algorithme propos´ r´sout le probl`me avec e e e une complexit´ optimale [13]. Comme dans le cas non probabiliste, nous syn- e chronisons le syst`me avec l’automate de la n´gation de la formule. Cependant, e e nous utilisons une construction particuli`re des automates de la formule. Cette e construction que j’ai propos´e dans [15], produit des automates ayant des pro- e pri´t´s sp´cifiques. Nous avons ainsi exploit´ ces bonnes propri´t´s pour ´viter ee e e ee e la d´terminisation de ces automates qui est une ´tape coˆteuse conduisant ` e e u a une complexit´ doublement exponentielle en temps [84]. e Ce chapitre est organis´ en 4 parties. La premi`re partie se veut informelle ; e e elle pose les d´finitions relatives aux mod`les du temps lin´aires et d´crit les e e e e principes de la v´rification ` base d’automates. La deuxi`me partie aborde le e a e probl`me de la traduction d’une formule LTL en un automate. Cette partie e contient une discussion sur le type d’automates ` produire, donne deux m´- a e thodes de construction, et termine par une ´tude exp´rimentale comparative e e avec des m´thodes existantes. La troisi`me partie d´crit une adaptation de l’al- e e e gorithme de Tarjan pour le test du vide d’un automate. La quatri`me partie est e consacr´e ` la v´rification d’une formule LTL sur un syst`me probabiliste. e a e e
  • 9. ` ´ 2.1. MODELES DU TEMPS LINEAIRE 5 2.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 e les comportements lin´aires, les syst`mes de transitions ´tiquet´s et la logique e e e e temporelle lin´aire. Nous terminons par la description des principes de la v´ri- e e fication ` la base d’automates. a Comportements lin´aires. Dans les logiques du temps lin´aire, un com- e e portement est mod´lis´ par une suite infinie d’´v´nements, lors desquels il est e e e e possible d’observer les ´tats et des actions d’un syst`me. L’ensemble de ces e e observations est appel´es propositions ´l´mentaires. Formellement un compor- e ee tement lin´aire sur un ensemble de propositions ´l´mentaires AP est une struc- e ee ture 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 e est le mot infini sur l’alphabet 2AP d´fini par T race(r) = λ(σ). e Syst`me de transitions ´tiquet´es. Les mod`les de syst`mes ont une s´- e e e e e e mantique ` base de syst`mes de transitions. Un tel syst`me est d´fini par un a e e e quintuple M = (S, S0 , T, α, β, L) o` S est un ensemble d’´tats, S0 un ensemble u e d’´tats initiaux, T un ensemble de transitions, α, β : T → S sont les fonctions e identifiant l’origine et le but des transitions, et λ : T → 2AP est une fonction d’´tiquetage des transitions. e Les comportements lin´aires d’un syst`me de transitions sont d´finis par les e e e mots infinis de transitions d´crivant des chemins valides du syst`me d´marrant e e e d’un ´tat de S0 . Dans la s´mantique du temps lin´aire, un syst`me est identifi´ e e e e e par l’ensemble des traces de ses comportements lin´aires. Notez que les com- e portements finis terminant dans un ´tat puit ne sont pas pris en compte. Sans e perdre de g´n´ralit´, ce d´faut est r´solu en ajoutant une transition bouclante e e e e e a ` chaque ´tat puit. Dans ce mod`le, une propri´t´ d’´tat est mod´lis´e par une e e ee e e e propri´t´ de transition en affectant ` chaque transition la valeur de v´rit´ de ee a e e son ´tat source. Dans la suite, nous ne consid´rerons que des syst`mes ` nombre e e e a fini d’´tats et de transitions. e Logique temporelle lin´aire. Cette logique permet d’´noncer des propri´- e e e t´s sur les traces des comportements d’un syst`me. Elle permet de parler de e e l’´volution d’un syst`me au cours du temps en examinant la suite des ´v´ne- e e e e ments observ´s lorsque le syst`me r´alise un comportement lin´aire. Les for- e e e e mules sont construites ` partir des propri´t´s ´l´mentaires, des op´rateurs et a e e ee e constantes 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 e de 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 ,
  • 10. 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 a l’instant i si f l’est ` l’instant suivant ; f U g est vraie ` l’instant i si g est vraie a a a ` un instant futur j et entre les instants i et j, f est toujours vraie. On utilise librement les abr´viations logiques habituelles suivantes , ⊥, f ∨ g, f ⇒ g, et e def def f ⇔ g, ainsi que F f ≡ U f , Gf ≡ ¬F ¬f . F f dit que f est vraie dans un instant 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 e tisfaction σ |= f d’une formule pour une trace d’un comportement lin´aire. e Nous dirons qu’un syst`me de transitions ´tiquet´es v´rifie une formule f , not´ e e e e e M |= f , si toutes les traces de ses comportements v´rifient f . e V´rification par automates. Les principes de la v´rification de syst`mes e e e finis par automates pour LTL sont dˆ ` Vardi, Wolper [85]. Ils reposent sur u a le fait que l’ensemble des mots infinis satisfaisant une formule LTL forme un langage r´gulier et est repr´sentable par un ω-automate. Pour appliquer cette e e propri´t´, un syst`me est vu comme un g´n´rateur de mots infinis. Ainsi, si ee e e e M est un syst`me et f une formule, tester M |= f se ram`ne ` un probl`me e e a e purement sur les automates : tester si M ∩ ¬f est vide, c-a-d n’accepte pas de mot infini. Cette approche pose clairement les probl`mes algorithmiques de la e v´rification : (1) calculer un ω-automate pour une formule LTL ; (2) calculer e l’intersection de deux automates ; (3) tester le vide d’un automate. Dans la suite de notre pr´sentation, nous examinerons nos contributions aux probl`mes (1) e e et (3) et montrerons comment cette approche est appliquable ` la v´rification a e de syst`mes probabilistes. e 2.2 Traduction d’une formule LTL en ω-automate De nombreux travaux traitent de la construction d’un automate pour une formule LTL. Nous ne donnerons pas une g´n´alogie des m´thodes. On pourra e e e trouver dans [90, 25, 78] de tr`s bons ´tats de l’art. Mes contributions sur ce e e th`me sont multiples. Premi`rement, elles concernent le choix du type d’auto- e e mates construits : les automates ` transitions. Dans ces automates, les condi- a tions d’acceptation portent sur les transitions infiniment rencontr´es plutˆt que e o sur les ´tats. Cette id´e a ´t´ reprise par des constructions r´centes et donne ` e e ee e a ces m´thodes une efficacit´ quasiment imm´diate. Deuxi`mement, j’ai d´velopp´ e e e e e e une m´thode produisant des automates adapt´s aux probl`mes de la v´rifica- e e e e tion probabiliste. Un aspect int´ressant de cette traduction est la repr´sentation e e directe de l’automate sous la forme d’un BDD. Troisi`mement, j’ai d´velopp´ e e e une construction bien adapt´e aux techniques de v´rification ` la vol´e : l’ob- e e a e jectif est de construire localement la liste des transitions successeurs d’un ´tat. e Le point clef de cette technique est l’utilisation de BDD pour repr´senter et e simplifier ces listes et ainsi r´duire la taille de l’automate produit. e
  • 11. 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 q 2.2.1 Automates ` transitions a Un automate reconnaissant des mots infinis est un syst`me fini adjoint d’une e condition d´finissant les chemins infinis pour ˆtre accept´s. Les mots infinis e e e accept´s par un automate sont les traces des chemins infinis accept´s. Dans e e le cas des automates de B¨chi, un chemin accept´ doit traverser infiniment u e un ensemble d’´tats appel´s ´tats d’acceptation. Pour les automates que nous e e e consid´rons, les automates ` transitions, la condition d’acceptation porte sur e a les transitions parcourues infiniment. Dans notre ´tude, les conditions sont des e conjonctions de conditions de B¨chi. Une condition est d´finie par un ensemble u e d’ensembles de transitions. Un chemin est accept´ s’il traverse infiniment tous e les ensembles de la condition. D´finition 2.1 (Automate ` transitions) Soit AP un ensemble fini de pro- e a positions ´l´mentaires. Un automate ` transitions sur AP est une structure ee a A = (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 e accept´s par A. Notons L(A), l’ensemble des mots accept´s par A et L(A, s) e e l’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 e LTL. Traditionnellement, les conditions portent sur les ´tats (Acc ⊆ 2S ). Dans e certains travaux, les propri´t´s sont attribu´es aux ´tats (λ : S → 2AP ). Les ee e e
  • 12. 8 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE propri´t´s ´tiquetant les ´tats ou les transitions peuvent aussi prendre la forme ee e e AP d’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- e tant, si besoin, les propri´t´s et les conditions d’acceptation sur les transitions, ee et en d´veloppant les expressions bool´ennes ´tiquetant ´ventuellement les tran- e e e e sitions. Nous dirons qu’un automate est ` ´tats si les propri´t´s et les conditions ae ee portent sur les ´tats. La figure 2.1 donne des variantes d’automates pour la for- e mule GF p ∧ GF q. Les ensembles ´tiquetant les ´tats et les transitions sp´cifient e e e l’appartenance ` un ensemble d’acceptation. Ici, nous avons deux ensembles a d’acceptation. Nous pouvons d´j` remarquer que les deux automates du haut ea sont les plus concis et montrer qu’il n’est pas possible d’obtenir un automate a ` un ´tat en posant les conditions d’acceptation sur les ´tats. Malgr´ les appa- e e e rences, l’automate en haut ` droite est de loin le meilleur : il est d´terministe et a e n’a que 4 transitions. L’automate en haut et au milieu a en r´alit´ 8 transitions. e e En effet, une transition ´tiquet´e par une expression bool´enne repr´sente au- e e e e tant 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 ` 22n a a e a transitions. Cet exemple illustre le fait que le choix de la variante d’automate joue un rˆle important dans les m´thodes de traduction. L’utilisation abusive o e d’expressions bool´ennes peut s’av´rer un facteur agravant pour la v´rification e e e par la multiplication des transitions. Elle est cependant utile pour donner une repr´sentation graphique ou textuelle simple et concise d’un automate. Afin e de limiter l’explosion combinatiore du nombre d’´tats et de transitions dans le e processus d’une v´rification, une solution est de ne construire les ´l´ments de e ee l’automate qu’` la demande ; une autre solution est d’utiliser des repr´sentations a e symboliques telles que les BDD. Dans le cadre de la v´rification probabiliste, nous serons amen´ ` prendre en e ea compte plusieurs qualit´s d’un automate : la non-ambigu¨ e et la s´paration. La e ıt´ e non-ambigu¨ e g´n´ralise la notion de d´terministe : tout mot accept´ par un au- ıt´ e e e e tomate non ambigu est la trace d’un seul chemin accept´. La s´paration indique e e que les ´tats d’un automate acceptent des langages disjoints. Dans la figure 2.1, e les deux automates de droite sont non-ambigus et s´par´s, celui de gauche est e e non-ambigu et celui au milieu en haut est s´par´. Remarquons qu’avec un seul e e ensemble d’acceptation, il n’est pas possible de produire un automate s´par´ e e pour la formule GF p ∧ GF q. Ceci montre encore une fois l’importance du choix du 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 e sur un mˆme principe : un ensemble el(f ) caract´rise les formules ´l´mentaires e e ee
  • 13. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 9 impliqu´es dans la v´rification de la formule f , un ´tat est un vecteur de boo- e e e l´ens s : el(f ) → {0, 1} donnant des valeurs de v´rit´ aux formules de el(f ) et e e e les transitions sont d´finies pour respecter la s´mantique de LTL. L’automate e e produit est ´tiquet´ sur les ´tats et a aussi des conditions d’acceptations sur e e e les ´tats. Nous proposons d’en donner une version couramment utilis´e pour e e la v´rification symbolique [9] et montrerons comment en modifiant l´g`rement e e e la d´finition de el(f ), on obtient une construction produisant des automates ` e a transitions. Construction d’un automate ` ´tats. Dans les constructions classiques, a e l’ensemble des formules ´l´mentaires el(f ) est compos´ des propositions ´l´men- ee e ee taires, des sous-formules de f du type X g et des formules X (gU h) o` gU h est u une sous-formule de f . Un ´tat est un vecteur de bool´ens s : el(f ) → {0, 1} et la e e restriction de s ` l’ensemble AP des propositions ´l´mentaires d´finit une fonc- a ee e tion d’´tiquetage sur des ´tats. Pour construire la relation de transitions, nous e e avons besoin de d´finir pour chaque ´tat la fonction sat de satisfaction d’une e e formule. Intuitivement, sat(s)(g) indique si la trace de tout chemin acceptant de source s satisfait la formule g. Cette relation est d´finie inductivement pour e toute 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 e s(X g) = sat(s )(g) pour toutes formules X g de el(f ). Enfin les conditions d’acceptations sont d´finies pour s’assurer que les sous-formules du type gU h e n’acceptent pas des s´quences o` h n’est jamais v´rifi´. Ainsi pour chaque sous- e u e e formule gU h, on d´finit un ensemble d’acceptation contenant les ´tats s tels que e e sat(s)(h) ∨ ¬sat(s)(gU h) = 1. Les ´tats initiaux sont ceux v´rifiant s(f ) = 1. e e Proposition 2.3 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble des 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’ensemble des formules ´l´mentaires est el(f ) = {p, q, X (pU q)}. Les ´tats de l’automate ee e sont donc des triplets de bool´ens. Dans une premi`re ´tape, nous ´valuons e e e e pour chaque ´tat la valeur de la fonction de satisfaction pour la formule pU q. e Ce calcul permet de d´terminer compl´tement la relation de transition de l’au- e e tomate : les ´tats v´rifiant pU q ont pour successeurs tous les ´tats v´rifiant e e e e
  • 14. 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 ae X (pU q) et ceux ne v´rifiant pas pU q ont pour successeurs les autres ´tats. e e Dans une deuxi`me ´tape, nous calculons la valeur de la fonction de satisfac- e e tion pour la formule q ∨ ¬(pU q). Celle-ci nous donne les ´tats appartenant ` e a l’ensemble d’acceptation associ´ ` la formule pU q. Finalement nous d´signons ea e les ´tats v´rifiant pU q comme ´tats initiaux. Le tableau 2.1 donne les r´sultats e e e e des calculs n´cessaires ` la construction de l’automate et la figure 2.2 donne la e a repr´sentation graphique de l’automate. e Construction d’un automate ` transitions. Ma construction est une va- a riante de cette construction classique. J’ai choisi comme formules ´l´mentaires ee d’une formule f , la formule f , les sous-formules du type gU h et les formules g telles 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 e toute ´tiquette a ∈ 2AP et tout ´tat destination s . Intuitivement, satT (a, s )(g) e e indique si la trace d’un chemin acceptant commen¸ant par une transition ´ti- c e quet´e par a et de destination s v´rifie la formule g. Cette relation est d´finie e e e
  • 15. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 11 inductivement 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 e de elT (g). Notez que la donn´e d’un ´tiquetage et d’un ´tat destination d´finit e e e e enti`rement l’´tat source de la transition. Les conditions d’acceptation sont e e d´finies sur les transitions de mani`re analogue ` la construction pr´c´dente. e e a e e Pour chaque sous-formule gU h, on d´finit un ensemble d’acceptation contenant e a les transitions s → s tel que satT (a, s )(h) ∧ ¬s(gU h) = 1. Les ´tats initiaux e sont ceux v´rifiant s(f ). e Proposition 2.4 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble des sous-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. a L’ensemble des formules ´l´mentaires est elT (f ) = {pU q}. Le codage des ´tats ee e de l’automate se r´sume ` un bool´en. Dans une premi`re ´tape, nous ´valuons e a e e e e pour chaque valeur d’´tiquette a et chaque ´tat destination s , la valeur de la e e fonction de satisfaction pour la formule pU q. Ce calcul permet de d´terminer e compl`tement les ´tats sources s des transitions ` partir de l’´tiquette a et de la e e a e destination s . Dans une deuxi`me ´tape, nous calculons la valeur de la fonction e e de satisfaction pour la formule q ∨ ¬(pU q). Celle-ci nous donne les transitions appartenant ` l’ensemble d’acceptation associ´ ` la formule pU q. Finalement a e a nous d´signons les ´tats v´rifiant pU q comme ´tats initiaux. Le tableau 2.2 e e e e donne les r´sultats des calculs n´cessaires ` la construction de l’automate et la e e a figure 2.3 donne ` gauche la repr´sentation graphique de l’automate. a e Propri´t´s des automates. Les deux constructions sont extrˆmement si- e e e milaires et pourtant l’automate ` transitions est toujours plus petit que l’au- a tomate ` ´tats. En effet remarquons que les ensembles de fonctions ´l´men- a e ee taires des deux constructions servant ` coder les ´tats sont li´s par l’identit´ a e e e el(f ) ∪ {f } = X (elT (f )) ∪ AP ; ainsi le facteur de r´duction est de 2|AP | ou e 2|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
  • 16. 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
  • 17. 2.2. TRADUCTION D’UNE FORMULE LTL EN ω-AUTOMATE 13 symboliques) alors que l’automate ` ´tats correspondant a 32 ´tats et 256 tran- ae e sitions. La proposition suivante donne l’ordre de grandeur des tailles des auto- mates en fonction des caract´ristiques de la formule. e Proposition 2.5 Soit f une formule LTL sur AP . Notons T emp(f ) le nombre d’op´rateurs X et U contenus dans la formule f . L’automate ` ´tats (produit par e ae la construction classique) a au plus 2|AP | ·2Temp(f ) ´tats et 22·|AP | ·2Temp(f ) tran- e sitions. 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 a la partie exp´rimentation (section 2.2.4) que cette construction est largement e supplant´e par les contructions locales. Cependant, l’automate produit poss`de e e des propri´t´s bien adapt´es ` la v´rification probabiliste (voir la section 2.4). ee e a e D’une part, l’automate est d´terministe en arri`re : un ´tat n’est destination e e e que d’une transition pour une valeur d’´tiquette donn´e. De plus, l’automate est e e non-ambigu. D’autre part, l’automate est s´par´ : deux ´tats distincts de l’au- e e e tomate reconnaissent des langages disjoints. Ces propri´t´s sont aussi v´rifi´es ee e e par les automates produits par la construction classique. Proposition 2.6 Les deux constructions produisent des automates non-ambigus et s´par´s. e e Repr´sentation symbolique. Les constructions globales se prˆtent bien ` e e a des repr´sentations symboliques de l’automate. En effet, les ´tats et les transi- e e tions sont des vecteurs de bool´ens, et les diff´rentes composantes de l’automate e e sont des ensembles de vecteurs de bool´ens repr´sentables par des fonctions boo- e e l´ennes. De telles repr´sentations sont couramment utilis´es pour la v´rification e e e e symbolique ` base de BDD. Elles se caract´risent par leur efficacit´ ` r´soudre a e ea e de nombreux probl`mes de v´rification de grande taille, mais aussi par leur sim- e e plicit´ de mise en œuvre. On pourra trouver dans [9] une version symbolique e de la construction classique, ainsi que des algorithmes de v´rification. Mon- e trons que notre technique s’applique aussi ` la construction d’un automate ` a a transitions. Soit f une formule LTL. Consid´rons deux tableaux de variables e bool´ennes now et next index´s par les formules de elT (f ), et identifions les e e propositions ´l´mentaires ` des variables bool´ennes. Nous coderons la fonction ee a e caract´ristique d’un ensemble d’´tats par une expression sur les variables now e e et 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 e par les expressions bool´ennes suivantes : e – L’ensemble des ´tats initiaux : S0 = now[f ], e
  • 18. 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- a tion globale. Cependant sa formulation est bien plus simple pour construire et coder un automate ` l’aide de BDD. Pour obtenir une repr´sentation explicite a e de l’automate, il suffit de d´velopper les fonctions bool´ennes. Cette op´ration e e e n’est int´ressante que dans un but p´dagogique. En pratique, toutes les op´ra- e e e tions utiles peuvent ˆtre r´alis´es sur la repr´sentation symbolique, ´vitant ainsi e e e e e une explosion combinatoire pr´matur´e des algorithmes de v´rification. e e e Exemple 3 La repr´sentaton symbolique de l’automate traduisant la formule e g = 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 e cette repr´sentation explicite n’est pas n´cessaire pour r´aliser des op´rations e e e e sur celui-ci. A partir de l’expression des ´tats initiaux, nous d´duisons que l’au- e e tomate a deux ´tats initiaux : [g, pU q], [g, ¬(pU q)]. Les transitions successeurs e d’un ´tat pour une valeur des propositions sont obtenues par une op´ration e e de substitution sur la fonction T . Consid´rons l’´tat s = [g, pU q], et l’´ti- e e e quette 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 variables e e next. 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’acceptation est obtenue en ´valuant les expressions bool´ennes Acc[g], Acc[pU q]. Ainsi les e e deux 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 e am´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 e Les deux premi`res techniques r´duisent le nombre d’´tats et de transitions de e e e l’automate et peuvent ˆtre r´alis´es directement sur sa repr´sentation symbo- e e e e lique (voir [9]). Les ´tats de l’automate seront alors symboliquement repr´sent´s e e e par une expression bool´enne sur les variables N ow. Dans la derni`re technique, e e
  • 19. 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 e nous 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 a tions 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 ee mentaires 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 ee le r´sultat des simplifications sur l’automate repr´sentant la formule rU (pU q). e e 2.2.3 Construction locale Le d´faut des constructions globales est qu’elles produisent imm´diatement e e un automate de taille exponentielle par rapport ` la taille de la formule. L’exemple a le plus frappant est la formule X n p (i.e. X . . . X p avec n op´rateurs X ). Cette e formule indique que la ni`me action d’un comportement doit v´rifier la propo- e e sition p. Intuitivement, il suffit d’un automate ` transitions ` n + 2 ´tats pour a a e coder cette formule. Les constructions globales produisent pour cette formule des automates de taille exponentielle, mˆme apr`s simplification. En 1995, R. e e Gerth, D. Peled, M. Y. Vardi et P. Wolper proposent un nouveau type de la construction [37]. L’id´e consiste ` partir de la formule ` v´rifier, et ` la d´- e a a e a e velopper sous la forme d’une disjonction de conjonction de formules ne faisant apparaˆ 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 formule e e e initiale ; les termes des conjonctions portant sur les propositions ´l´mentaires ee d´finissent les propri´t´s ` v´rifier dans l’´tat, et ceux portant sur les formules e ee a e e du type X g servent ` construire les ´tats successeurs. La construction continue a e en d´veloppant les formules associ´es aux formules repr´sentant les ´tats suc- e e e e cesseurs. Cette construction locale de l’automate d’une formule ne produit pas syst´matiquement les ´tats correspondant ` toutes les combinaisons possibles e e a des formules ´l´mentaires ; ceci rend cette construction int´ressante en pratique. ee e Un 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 allons rappeler les m´canismes de la construction locale de l’article fondateur [37], et e montrer comment nous avons adapt´ et simplifi´ cette technique pour produire e e des automates ` transitions. a Pour que les constructions locales soient applicables, les formules sont mises
  • 20. 16 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE sous 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 introduisons e e ee l’op´rateur dual du until V : gV h = ¬(¬gU ¬h). Lors du d´veloppement d’une e e formule, 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 fait que l’identit´ relative ` la formule gU h ne tient pas compte de la propri´t´ e a ee d’in´vitabilit´ de h, alors qu’aucune propri´t´ de ce type n’est n´cessaire pour e e ee e la validit´ de la formule gV h. Ainsi dans les deux constructions, nous associe- e rons un ensemble d’acceptation ` chaque sous-formule du type gU h. Les deux a constructions locales se distingueront par le type d’automates produits, et aussi sur la mani`re de capter les conditions d’acceptation. e Construction d’un automate ` ´tats Nous allons donner une version sim- ae plifi´e de la construction originale [37], captant autant que possible les optimisa- e tions propos´es par les concepteurs. Le point clef de cette construction concerne e la mani`re de d´velopper une formule LTL. Ce d´veloppement ne produit pas e e e une formule LTL, mais une expression symbolique repr´sentant des ensembles e d’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 e symboles now [gU h] et now [h] sont utilis´s pour capter les conditions d’accep- e tation : un ´tat ne contenant pas le symbole now [gU h] ou contenant le symbole e now [h] est un ´tat de l’ensemble d’acceptation associ´ ` la formule gU h. A e e a l’exception des formules gU h, les r`gles pour d´velopper une formule sont celles e e attendues. Dans les expressions suivantes, Φ(g) est le r´sultat du d´veloppe- e e ment d’une formule, les op´rateurs · et + sont des op´rateurs d’union : · est e e l’union sur les ensembles de symboles et + celui sur les ensembles d’ensembles de 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],
  • 21. 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 e pement 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 e Proposition 2.7 Soit f une formule LTL sur AP . L’automate ` ´tats d´fini ae e par : – 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 e tons que la formule est d´j` sous une forme positive. Posons f = pU q. L’au- ea tomate a deux ensembles d’acceptation Acc = {f, g}. D´veloppons la formule e g: Φ(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 e successeur. Le calcul des successeurs du deuxi`me ´tat n´cessite le d´veloppe- e e e e ment 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- e seur est ∅. D’autre part, le troisi`me ´tat initial a pour successeur les trois ´tats e e e initiaux. La figure 2.5 donne une repr´sentation graphique de l’automate r´sul- e e tant. Les concepteurs de cette m´thode ont propos´ de nombreuses heuristiques e e pour 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] e et now [h] appartiennent ` un ´tat s, retirer de s, now [gU h]. a e Construction d’un automate ` transitions La construction que j’ai pro- a pos´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) e nous avons ´cart´ le symbole now [h] dans le d´veloppement des formules gU h. e e e La 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
  • 22. 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) ae utile dans le d´veloppement d’une formule gU h est : est-ce que la propri´t´ e ee d’in´vitabilit´ restera ` v´rifier ? Plutˆt qu’utiliser le symbole now [gU h], nous e e a e o pr´f´rons le symbole nacc[gU h] indiquant clairement la non acceptation d’une ee transition. L’ensemble des symboles employ´s pour le d´veloppement d’une for- e e mule 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 a de la formule. Le calcul des transitions successeurs d’un ´tat est obtenu en d´- e e veloppant les sous-formules repr´sentant l’´tat. Dans les expressions suivantes, e e notez 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 e comme des variables bool´ennes, les op´rateurs + et · comme les op´rateurs e e e bool´ens ∨ et ∧. Notez que l’expression bool´enne repr´sentant le d´veloppe- e e e e ment d’une formule peut toujours s’´crire sous la forme disjonctive-conjonctive e o` les variables du type next et nacc apparaissent positivement. L’int´rˆt de u ee ce point de vue est que ces expressions acceptent les simplifications classiques des expressions bool´ennes, et ainsi il est possible de r´duire naturellement le e e nombre de transitions issues d’un ´tat. A partir de la d´finition du d´veloppe- e e e ment d’une formule, la d´finition donnant l’automate ` transitions est donn´e e a e par la proposition suivante :
  • 23. 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) a Proposition 2.8 Soit f une formule LTL sur AP . Soit sub(f ) l’ensemble des sous-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 de formules 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 AP o` Terme s ⊆ 22 × {gU h|gU h ∈ sub(f )} × elT (f ). L’automate ` transitions u a d´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). a Posons f = pU q. L’automate a un ´tat initial {g}. Les transitions successeurs e sont 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 le d´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 e 2.6 donne la repr´sentation graphique de l’automate r´sultant. e e
  • 24. 20 ´ CHAPITRE 2. LOGIQUE TEMPORELLE LINEAIRE Simplification 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. ee La table 2.3 donne quelques r´sultats exp´rimentaux sur l’influence des optimi- e e sations. Nous avons appliqu´ la construction locale pour toutes les combinaisons e possibles d’optimisation, sur une centaine de formules tir´es al´atoirement dont e e la taille varie de 15 ` 20. Les colonnes Automate donnent la taille cumul´e a e des automates ; les colonnes Produit synchronis´ donnent la taille cumul´e des e e produit synchronis´s des automates des formules avec un syst`me comprenant e e 200 ´tats. Nous noterons que les simplifications (1) et (3) r´duisent la taille de e e l’automate, alors que la simplification (2) a pour objectif de rendre l’automate plus d´terministe et ainsi de r´duire le nombre de transitions du produit syn- e e chronis´. Les mˆmes exp´rimentations appliqu´es ` 39 formules ”classiques” de e e e e a LTL (voir la table 2.3) aboutissent aux mˆmes conclusions. e 2.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, e 78, 67, 34]. Il est naturel de se demander si la construction que j’ai propos´e en e 1999, est encore d’actualit´. Nous ne pouvons donner ` cette question qu’une e a r´ponse partielle. En effet, la comparaison d´pend en grande partie de la qualit´ e e e des outils qui les impl´mentent. Par exemple, l’outil prototype Modella illus- e trant les travaux de [74] n’est pas suffisamment fiable pour ˆtre pris en compte. e Enfin, 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
  • 25. 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 6831836 Tab. 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