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