HAL Id: tel-00004457
https://tel.archives-ouvertes.fr/tel-00004457
Submitted on 3 Feb 2004
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Constantin Lucian Ghirvu
To cite this version:
Constantin Lucian Ghirvu. Génération automatique de tests de conformité pour les protocoles de télécommunication. Réseaux et télécommunications [cs.NI]. Université Joseph-Fourier - Grenoble I, 2002. Français. �tel-00004457�
UNIVERSITE GRENOBLE I - JOSEPH FOURIER
U.F.R. D'INFORMATIQUE ET DE MATHEMATIQUES APPLIQUEES N attribue par la bibliotheque
T H E S E
pour obtenir le grade de
DOCTEUR DE L'UNIVERSITE GRENOBLE I
Discipline:
Informatique
presentee et soutenue publiquement par
Constantin Lucian GHIRVU
le 12 juillet 2002
Titre:
GENERATION AUTOMATIQUE DE TESTS DE CONFORMITE POUR
LES PROTOCOLES DE TELECOMMUNICATION
Directeur de these:
M. Jean-Claude FERNANDEZ
JURY
M. Jacques VOIRON ,President
M. Richard CASTANET ,Rapporteur
M. Claude JARD ,Rapporteur
M. Jean-Claude FERNANDEZ ,Directeur de these
Remerciements
Je tiens a remercierMonsieur Jacques Voiron, Professeur a l'Universite Grenoble I, pour m'avoir fait l'honneur de presider le jury de cette these
Messieurs Richard Castanet, Professeur a l'Ecole Nationale Superieure d'Electro-nique, Informatique et Radiocommunications de Bordeaux, et Claude Jard, Direc-teur de recherches CNRS a l'Institut de Recherche en Informatique et Systemes Aleatoires de Rennes, de m'avoir fait l'honneur d'accepter de juger ce travail Monsieur Joseph Sifakis, Directeur de recherches CNRS a VERIMAG, Grenoble, de m'avoir accueilli dans son laboratoire, de m'avoir integre dans ses projets et de m'avoir fait l'honneur d'accepter de participer au jury de cette these
Monsieur Jean-Claude Fernandez, Professeur a l'Universite Grenoble I, pour avoir accepte d'encadrer cette these, pour le temps lui consacre, pour ses conseils et suggestions qui ont permis la realisation de cette these.
Je tiens a remercier la Region Rh^one-Alpes pour le soutien nancier accorde a cette these.
Je remercie Alain Kerbrat, Chef de projet a Telelogic Technologies Toulouse, d'avoir accepte de co-encadrer cette these au debut et ensuite de la soutenir de la part des societes VERILOG et Telelogic Technologies Toulouse.
Je remercie tous les membres du laboratoire VERIMAG pour le cadre de travail oert. En particulier, je remercie les membres de l'equipe asynchrone: Saddek Bensalem, Susanne Graf, Yassine Lakhnech, Laurent Mounier, Michael Perin, Anahita Akhavan, Moussa Amrani, Cyril Pachon, Romain Janvier, les anciens membres de l'equipe: Aurore Annichini, Guoping Jia et Jean-Pierre Krimm, ceux qui m'ont beaucoup aide a la n: Manuel Aguilar, Ileana et Iulian Ober et un grand merci a Liana et Dorel Bozga (pour tout).
TABLE DES MATI
ERES 5
Table des matieres
Table des gures
9
Liste des tableaux
11
1 Introduction
13
1.1 Thematique . . . 13 1.2 Contexte . . . 14 1.3 Contribution . . . 16 1.4 Plan . . . 202 Preliminaires
23
2.1 Notations . . . 23 2.1.1 Algorithmes . . . 242.2 Ensembles partiellement ordonnes, treillis . . . 27
2.2.1 Ensembles partiellement ordonnes . . . 27
2.2.2 Treillis . . . 29
2.2.3 Points xes . . . 32
2.2.4 Elargissement, retrecissement . . . 33
2.2.5 Iterations chaotiques . . . 34
3 Validation basee sur les modeles
37
3.1 Systemes de transitions etiquetees . . . 373.1.1 Actions internes . . . 42
3.1.2 Actions d'entree et de sortie . . . 45
3.2 Automates etendus communicants . . . 46
3.3 Verication formelle . . . 51
3.3.1 Specications logiques . . . 51
3.4 Test . . . 52
3.4.1 Machines a etat ni . . . 52
3.4.2 Theories formelles du test de conformite . . . 59
3.4.3 Test de conformite fonde sur la verication -tgv . . . 68
3.4.4 Machines a etat ni etendues . . . 75
3.5 Objectifs de test abstraits . . . 78
3.6 Conclusions . . . 84
4 Analyse du contr^ole
85
5 Analyse des donnees
93
5.1 Problemes de ot de donnees intra-processus . . . 975.1.1 Solutions . . . 98
5.1.2 Activite des variables . . . 105
5.1.3 Utilite des donnees . . . 105
5.1.4 Propagation des constantes . . . 106
5.1.5 Propagation des intervalles entiers . . . 108
5.2 Problemes de ot de donnees inter-processus . . . 109
5.2.1 Activite des variables . . . 113
5.2.2 Utilite des donnees . . . 113
5.2.3 Propagation des constantes . . . 115
5.2.4 Propagation des intervalles entiers . . . 117
5.3 Applications . . . 117
5.3.1 Recouvrement des variables actives . . . 118
5.3.2 Recouvrement des variables temporisees . . . 120
5.3.3 Tranchage par rapport aux donnees utiles . . . 126
5.3.4 Tranchage par rapport aux contraintes . . . 133
6 Mise en uvre
137
6.1 L'environnement de validation if . . . 1376.1.1 Architecture . . . 138
6.1.2 Description des composantes . . . 140
6.1.3 La representation intermediaire . . . 141
6.2 Traduction de sdl vers if . . . 144
6.2.1 La structure . . . 144
6.2.2 Les processus . . . 145
6.3 Bibliotheque d'analyse statique . . . 148
TABLE DES MATI
ERES 7
6.4.1 Le protocolesscop . . . 153 6.4.2 Le protocolemascara . . . 156 6.4.3 Le sequentiel de volariane-5 . . . 158
7 Conclusions
159
7.1 Bilan . . . 159 7.2 Perspectives . . . 161A Algorithmes
163
B Preuves
173
Bibliographie
197
TABLE DES FIGURES 9
Table des gures
1.1 Methodologie de test . . . 18
2.1 Les treillis const etint . . . 31
3.1 Union des stes . . . 44
3.2 Methodes de test de conformite . . . 62
3.3 Objectif de test abstrait . . . 80
3.4 Exemple . . . 83
4.1 Analyse de l'utilite du contr^ole . . . 89
5.1 Le postordre inverse . . . 100
5.2 Tranchage par rapport aux donnees utiles . . . 129
5.3 Tranchage par rapport aux contraintes . . . 135
6.1 L'environnement de validation if . . . 138
6.2 Les classes de la bibliotheque . . . 152
LISTE DES TABLEAUX 11
Liste des tableaux
2.1 Les types le, pile . . . 26
2.2 Le type ensemble . . . 26
2.3 Les types tuple et fonction . . . 27
2.4 Une procedure . . . 28
3.1 Calcul du produit asynchrone . . . 40
3.2 Regles de production . . . 47
4.1 Calcul de l'utilite du code . . . 88
4.2 Calcul de l'utilite du code: procedure Init . . . 90
4.3 Calcul de l'utilite du code: procedure ExploreRule234 . . . 91
4.4 Calcul de l'utilite du code: procedure ExploreRule5 . . . 91
5.1 Problemes de ot de donnees intra-processus . . . 104
5.2 Problemes de ot de donnees inter-processus . . . 114
5.3 Utilite des donnees et signaux . . . 116
5.4 Recouvrement des horloges . . . 124
5.5 Calcul des regles . . . 125
5.6 Application des regles . . . 126
6.1 Traduction des types . . . 145
6.2 Traduction des transitions . . . 149
6.3 Traduction des transitions . . . 150
6.4 Remplacement . . . 151
6.5 Optimisations entreprises sur la partie dc . . . 158
A.1 Strategie scc-str- I . . . 163
A.2 Strategie scc-str- II . . . 164
A.3 Strategie scc-str- III . . . 165
A.5 Strategie wlist-str . . . 167
A.6 Strategie scsc-str - I . . . 168
A.7 Strategie scsc-str - II . . . 169
A.8 Strategie scsc-str - III . . . 170
A.9 Strategie scsc-str - IV . . . 170
A.10 Strategie scsc-str - V . . . 171
A.11 Strategie scsc-str - VI . . . 172
13
Chapitre 1
Introduction
1.1 Thematique
Le test est une phase fondamentale du cycle de vie de tout produit industriel. On l'utilise pour s'assurer que la realisation d'un produit respecte ses specications initiales. Il permet de detecter des erreurs d'un systeme par l'experimentation. Ce n'est pas un processus exhaustif, il indique la presence des erreurs, pas leur absence.
Le test est une des principales techniques de validation utilisees dans l'industrie (y compris celle des logiciels (Bei90, XRK99])). La croissance et la diversite de la pro-duction des logiciels entra^ne aussi un augmentation de l'importance du test (le logiciel windows nt 5.0 contiendra plus de 48 million lignes de codes dont 7,5 million lignes de codes pour le test cf. Neu99]).
Pour tester les logiciels on emploie une palette variee de techniques (Bei90]): on teste leurs graphes de ot, les chemins, le ot des donnees, les domaines d'entree, la syntaxe.
Dans le cadre de notre these nous nous interessons au probleme du test de conformite pour les protocoles de telecommunication. Les communications entre les sous-systemes composants (par exemple, les ordinateurs) des systemes distribues (y compris les sys-temes de telecommunication) sont soumises a des regles decrites par des protocoles. Les specications des protocoles sont decrites en utilisant des formalismes de niveau superieur et sont, dans la plupart des cas, standardisees. Les protocoles sont ensuite implementes a partir de ces standards. Il est necessaire donc que les implementations
des protocoles aient un comportement conforme a leursspecications.
Le test de conformite des protocoles est une methode qui accomplit ce but. Il teste l'implementation d'une entite de protocole vis-a-vis de sa specication.
Les organismesiso1 etccitt2 ont etabli unemethodologie pour le test de conformite
decrite par le standardiso is-9646(fS92b]). Cette methodologie voit le test de confor-mite comme un test bo^ te noire. Cela signie que (comme c'est le cas dans la pratique) la structure interne de l'implementation est inaccessible au testeur. Celui peut tester seulement le comportement observable de l'implementation. Il le fait en utilisant des implementations des cas de test abstraits obtenus a partir de la specication. A chaque execution d'un cas de test sur l'implementation on attribue un verdict.
L'etat actuel d'application dans l'industrie de cette methodologie consiste dans l'ecri-ture manuelle des sequences de test et l'utilisation de techniques ad-hoc d'application de ces tests avec des resultats mal ma^trises. Ces pratiques conduisent a un co^ut de l'eort de test important. La production de tests en grand nombre, avec des garanties de pertinence et de correction, impose l'utilisation de methodes formelles de genera-tion (Tre92, Pha94a]).
1.2 Contexte
Notre equipe au laboratoire verimag et lsr/imag s'interesse a la validation et au test des protocoles et des systemes asynchrones. Depuis plus de dix ans un ensemble d'outils a ete developpe dans le but de faciliter la mise au point de specication formelle, et de produire automatiquement des sequences de test. Cet ensemble d'outils est bien diuse dans le monde academique et chez certains industriels.
La bo^te a outils cadp3 (FGK+96]) est developpee par laboratoire verimag en
cooperation avec l'equipevasyde l'inriaRh^one-Alpes. Elle est composee par plusieurs outils et environnements nous en mentionnons quelques-uns:
{ ald ebaran (BFKM98]) est un outil pour eectuer des reductions et comparai-sons des graphes en prenant en compte certaines relations d'equivalence et pre-ordres.
{ open-caesar (Gar98]) est un environnement ouvert pour construire des proto-types des algorithmes de verication fondes sur l'exploration exhaustive du modele. Il ore aussi des representations implicites (pour les algorithmes de verication a la volee (FJJM92])) ou symboliques (fondees sur des diagrammes binaires de decision).
1:International Organization for Standardization
2:Consultative Committee on International Telegraphy and Telephony
1.2. CONTEXTE 15
Notre equipe developpe maintenant if (BFG+99b, BFG+99c, BFG+00c]), un
en-vironnement de validation pour les systemes asynchrones temporises. Cet environne-ment est fonde sur une philosophie d'integration des methodes formelles dans la pra-tique industrielle de verication et de test (Sif99]). Ses principales directions de travail sont: le developpement d'une version temporisee du langage sdl (en incluant aussi la creation dynamique des instances de processus) qui comprend aussi des aspects simi-laires a uml4 (une structure d'etats similaire aux statecharts Har87]) et le
traite-ment de la complexite (en utilisant techniques d'analyse statique BFG99a, BFG00a, BFG00b], analyse symbolique et abstractions BL99], generation composante par com-posante5 KM00]). Les principaux atouts de if sont: un environnement de validation
ouvert, permettant d'un c^ote la connexion avec plusieurs outils de verication acade-miques (kronosYov97],spinHol91],investBLO98]) mais aussi l'acces aux plusieurs niveaux de representation des programmes.
Le laboratoire verimagtravaille avec l'equipe pampade l'irisa sur les fondements theoriques du test de conformite, la formalisation des concepts et la production d'algo-rithmes et d'outils correspondant aux idees mises en avant dans ces travaux.
Un resultat de cette cooperation est tgv6 FJJV97, FJJV96, JM97, JM99], un outil
pour la generation automatique de tests de conformite. Il illustre l'application de me-thodes formelles dans le domaine du test tout en essayant de modeliser le plus possible la pratique industrielle courante dans la generation automatique de tests de conformite. Le principe detgvconsiste a synthetiser a partir d'une specication formelle d'un protocole et d'un objectif de test (une propriete qu'on desire a verier sur une implementation) un cas de test qui pourra s'appliquer sur l'implementation. Ce cas de test est decore par des verdicts qui seront utilises lors de l'application du cas de test a l'implementation, pour decider si l'implementation a reagi conformement a sa specication formelle. Gr^ace a une relation de conformite denie formellement, l'algorithme detgvconstruit des cas de test valides (ils ne rejettent pas une implementation conforme a sa specication). tgv a deux modes distincts de fonctionnement:
{ le mode explicite, a partir d'une specication decrite en format ald ebaran, { le mode a la volee, a partir des specications formelles (sdlou lotos).
L'objectif de test est decrit en format ald ebaran. Le format de sortie de tgv est le format ald ebaran. Le graphe de test obtenu est deplie sous la forme d'un arbre en
4:Gro99]
5:Compositional Generation en anglais
format ttcn7 (fS92a]), standard de fait dans le monde de test.
tgv a ete realise au dessus de l'environnement cadp.
L'outil tgv a ete utilise pour des etudes de cas d'origine industrielle: { l'etude de cas drex eectue pour le compte de la dga, cap sesaet
france-t el ecom,
{ l'etude de cassscop (BFG+00d]) fournie par le cnet8, dans le cadre de
l'opera-tion 1 du projet forma, projet coordonne par le laboratoireverimag.
{ il a ete utilise aussi pour generer des sequences executables de tests pour un pro-tocole de coherence de l'antememoire9 (KVZ98]).
tgv utilise aussi Objectgeode (Tel]) dettt. Objectgeode est un environnement de developpement dedie au langage sdl, commercialise par la compagnie ttt . Il sup-portesdl-92, l'utilisation deasn.1 (normeitu-t z-105), le langage msc (Message Se-quence Charts) pour la description des echanges de signaux et la methodeuml(Gro99]) pour une description orientee objet. Il fournit d'editeurs graphiques et compilateurs pour chacun de ces langages et un generateur de code c. Objectgeode contient un simulateur (pour la mise au point) et un vericateur base sur des methodes de model-checking (QS82, CES83]). Objectgeode a ete connecte aux outils d'analyse, de veri-cation et de generation de test issus de verimaget de l'irisa.
Une integration des algorithmes derives detgv, dans l'outil de testtestcomposer (KJG99]) de ttt, a ete nancee par france-t el ecom.
1.3 Contribution
La generation automatique des cas de test basee sur l'approche modele est limitee par le probleme d'explosion d'etat (les modeles ont une taille exponentielle relativement aux specications).
Rappelons-nous que la generation automatique des cas de test est guidee par des objectifs de test (concus par des experts). Si un ou plusieurs objectifs de test existent alors le probleme d'explosion d'etat pourrait ^etre contourne (en utilisant par exemple des techniques a la volee FJJM92]) qui construisent seulement la partie exploree du modele. Les techniques a la volee sont implementees dans tgv (Mor00]).
7:Tree and Tabular Combined Notation
8:Centre de Recherche et Developpement defrance telecom
1.3. CONTRIBUTION 17
Mais la conception des objectifs de test pour un modele d'une specication est dif-cile sans le construire explicitement (et cela parce que les parametres de signaux dans l'objectif de test sont traites en enumeration).
Dans notre these nous avons essaye de pallier ce probleme et par consequence nous nous avons etabli deux objectifs:
{ le traitement ecace des donnees en vue de l'extension de l'outil tgv (tel qu'il existait dans FJJV97, FJJV96]),
{ l'etude d'un langage d'expression pour les objectifs de test.
Ces deux objectifs ont ete accomplis par le developpement d'une methodologie de test basee sur des techniques10 issues des domaines de la verication et de l'analyse
des programmes (analyse statique11). Cette methodologie, decrite dans la gure 1:1 p:18]
propose un ensemble de procedures qui ont le but de simplier la specication en te-nant compte de sa structure ou de la structure des objectifs de test et cela avant de la generation des cas de test. On reduit ainsi la taille des systemes de transitions etique-tees (ste) qui modelisent les comportements observables de la specication. Les analyses de programme appliquees sont l'analyse d'activite des variables, l'analyse de l'utilite (du contr^ole et des donnees) et l'analyse d'invariance. Ces analyses, utilisees surtout dans le domaine de la compilation, ont ete etendues a notre representation intermediaire (qui est un ensemble d'automates etendus communicants par les d'attente).
Il faut mentionner que les simplications ci-dessus sont conservatrices dans le sens suivant: les resultats obtenus en appliquant tgv, pour deux specications (la speci-cation originale et une variante simpliee de celle-ci) et pour un m^eme objectif de test, sont identiques.
Traitement ecace des donnees
Analyse d'activite
Cette analyse12 calcule, pour chaque etat de contr^oleq, l'ensemble des variables qui
seront utilisees13 dans un chemin partant de cet etat et sans que leurs valeurs dans
l'etat q soient rendues inutiles14 avant leur premiere lecture. Cette analyse peut ^etre
10:D'ailleurs ces techniques sont aussi applicables dans le domaine de la verication par modeles: on
peut simplier les specications en fonction de formules de logique temporelle 11:compile-time analysisen anglais
12:qui est une des plus anciennes analyses statique Hec77]
13:leurs valeurs seront lues
Objectif de test abstrait Compilateur observable Comportement Objectif de test concret Specication formelle Analysede programmes ActiviteUtilite Invariance TGV Cas de test IF STE
Fig. 1.1 {Methodologie de test
vue comme un cas extr^eme de l'analyse d'utilite des donnees (dans ce cas il n'y a pas de critere de tranchage).
Analyse d'utilite
On couvre ici deux aspects: l'utilite du code et celle des donnees. Par le termeutilite
on comprend l'utilite par rapport a l'objectif de test et l'ensemble d'entree contr^olables. L'ensemble d'entree contr^olables comprend tous les signaux (et les contraintes maxi-males) que le testeur a l'intention d'envoyer vers l'iutpendant le test. L'analyse d'utilite du contr^ole elimine les transitions de la specication dont les declencheurs15
n'appar-tiennent pas a l'ensemble d'entree contr^olables. Ensuite on elimine recursivement toutes les transitions dont l'etat source n'a pas de transitions entrantes. L'analyse d'utilite des donnees est faite en utilisant la technique de tranchage16. On analyse l'utilite des
va-riables mais aussi celle des parametres de sortie/entree. Intuitivement, une variable est utile dans un etat si sa valeur, par transitivite, est utile dans un certain endroit de la specication17 (choisi par l'utilisateur).
15:triggersen anglais
16:slicing en anglais
1.3. CONTRIBUTION 19
La technique de tranchage est une technique fortement utilise dans diverses do-maines (pour deboguer les programmes, par exemple). Le tranchage dans le contexte des programmes concurrents a ete utilise pour la premiere fois par Che93], puis pour des processus legers18 par Kri98] et pourpromela (Hol97]) par MT98]. Dans DHZ99] il
y a une etude du tranchage des programmes sequentiels en ce qui concerne une formule de ltlet dans HCD+99] le tranchage est utilise pour verier et extraire des machines
a etat ni a partir des programmes java. Dans CFR+99] il y a une application du
tranchage dans la verication des programmesvhdl.
Analyse des donnees
Une analyse des donnees est exprimee par un probleme de ot de donnees (MR90]). Ceci est un tuple constitue par un treillis (complet), un espace de fonctions (au moins monotones), un graphe de ot et une fonction qui attache a chaque transition du graphe une fonction de transfert (appartenant a l'espace de fonctions). On obtient ainsi un operateur de ot dont le plus petit (grand) point xe est la solution du probleme de ot. Pour trouver les solutions des problemes de ot nous avons utilise des strategies d'iteration existantes dans la litterature (Hec77, CC92b, Bou93, Muc97, NNH99]). Ces strategies comportent deux etapes:l'initialisationd'une (ou plusieurs) liste(s) de travail etl'iterationsur ces listes. Dans tous les cas qu'on traite, les listes sont organisees comme des les. Dans le cas d'un treillis de la hauteur nie on utilise soit une seule le, initialisee dans le preordre ou postordre inverse, soit plusieurs les correspondant aux composantes fortement connexes maximales du graphe de ot. Quand le treillis est de la hauteur non-nie il faut detecter un ensemble admissible de points d'elargissement (Bou93]) pour nous trouver dans le cadre de l'interpretation abstraite (CC92b]) et pouvoir ainsi calculer une approximation de la valeur des pointes xes.
Etant donne ce cadre formel on peut obtenir les dierentes analyses de donnees par instanciation de ce canevas: le treillis, l'espace des fonctions et les fonctions de transfert. Ceci est fait dans le chapitre 5p:93].
Ensuite il faut prouver que les optimisations qu'on a fait obeissent a un certain critere de correction. Ceci est un resultat de bisimulation.
Langage d'expression pour les objectifs de test
Nous avons etendu aussi le concept de l'objectif de test. Les objectifs de test abstraits ont des contraintes symboliques attachees aux parametres des signaux d'entree. A partir
des contraintes d'entree les procedures mentionnees ci-dessus calculent des contraintes pour les parametres des signaux de sortie des objectifs de test abstraits. Ensuite, des objectifs de test concrets pourront ^etre derives et en utilisant l'outil de test existant tgv on pourrait generer des tests de conformite.
1.4 Plan
Preliminaires
Dans ce chapitre on rappelle quelques notations (concernant les ensembles, les re-lations, les algorithmes) et notions theoriques utilisees dans les chapitres suivants (en-sembles partiellement ordonnes, treillis complets, points xes, operateurs d'elargissement et de retrecissement).
Validation basee sur les modeles
Dans ce chapitre on presente les principaux modeles (systemes de transitions eti-quetees et automates etendus communicants) et les approches dans la validation des programmes: la verication et le test (de conformite). On decrit ces deux approches en s'appuyant sur une description commune (Fer96]). Cette description s'appuie sur le fait qu'on peut voir le test de conformite et la verication comme une relation conf entre
l'implementation et la specication (ou entre une specication et une de ses versions plus ranee).
Verication
Dans le cadre de la verication la relation conf est frequemment une relation de
bisimulation et on mentionne plusieurs approches pour verier si impconf spec.
Test de conformite
Dans le cadre du test de conformite la relation confest une relation de conformite.
On decrit la place du test dans le domaine v & v (Hol91]), le probleme du test de conformite, son description en utilisant la theorie des automates (LY96]), le cadre formel de test de conformite (Tre92, Pha94a]). Ensuite on presente l'approche fondee sur la verication - algorithme de tgv, suivie par une presentation du test de conformite symbolique (les principaux approches).
1.4. PLAN 21
Analyse du contr^ole
On propose une analyse (statique) du contr^ole qui, prenant en compte un objectif de test abstrait et un ensemble d'entrees contr^olables (eventuellement calcule a partir d'un objectif de test abstrait), fournit une specication (eventuellement) simpliee dont le modele est bisimilaire avec celui de la specication initiale.
Analyse des donnees
On introduit d'abord le cadre formel pour eectuer les analyses de donnees. Il s'agit de problemes de ot de donnees. La plupart des analyses qu'on fournit fait partie du domaine de la compilation (la propagation des constantes, l'analyse des variables ac-tives) ou du debogage des programmes. Leurs resultats servent a la simplication des specications, tout en preservant des modeles bisimilaires avec ceux des specications initiales.
Mise en uvre
On decrit l'environnement de validation if, son architecture, ses composantes et la representation intermediaire proposee. Ensuite on fournit une description de la maniere dont on traduit dansif les principaux aspects du langage de description sdl.
Ensuite on presente la bibliotheque d'analyse statique implementee. Il s'agit de l'im-plementation, dans le cadre d'une bibliotheque d'analyse statique pour if, des algo-rithmes presentes dans les chapitres 4p:85] et 5p:93].
Enn on presente les resultats obtenus par leur application sur des protocoles de taille industrielle: sscop (un protocole mono-processus) et mascara (un protocole multi-processus). Le sequentiel de vol d'ariane 5 servira comme exemple de l'application de la propagation de constantes pour des variable temporisees.
23
Chapitre 2
Preliminaires
2.1 Notations
On utilise les notations suivantes:
1. Comme notations generales:a + b signiea est une notation pour b,
a .. b + faa+ 1:::bg,
2. Pour les ensembles:
N
est l'ensemble des entiers naturels,Z
est l'ensemble des entiers et est l'ensemble vide. L'union est notee AB, l'intersection A\B, ladierence ensembliste AnB, le produit cartesien AB ou Q
i2I
Ai, avec Q
i2I
Ai 3
a = (a1]:::ai]:::) = (ai)i2I. L'inclusion des ensembles est notee A
B et
l'appartenance a un ensemble x2A.
On note 2A l'ensemble des parties de A et
jAj le cardinal de l'ensemble A.
Si A est un ensemble alors ( =2 A) est le mot de longueur 0, A
n est l'ensemble
des mots sur Ade longueurn (ensemble isomorphe avec n
fois
z }| {
AA:::A),A + est
l'ensemble de mots nis surA, de longueur strictement positive, A est l'ensemble
de mots nis sur A etA! est l'ensemble de mots innis sur A.
Siab2 Q
i2I
Ai etK I alorsa =b mod K + (8k)(k2K )ak] =bk]). On
uti-lise aussi la notation an
+
nfois z }| {
aa:::a.
Une relation R SS est reexive si (8s)(s 2 S ) (ss) 2 R), symetrique si (8s)(8t)((st) 2 R ) (ts) 2 R), anti-symetrique si (8s)(8t)((st) 2 R^(ts) 2 R)s =t) et transitive si (8s 1)( 8s 2)( 8s 3)((s1s2) 2R^(s 2s3) 2R )(s 1s3) 2R).
Une relation RSS est un preordresi elle est reexive et transitive, un ordre
partiel si elle est reexive, anti-symetrique et transitive, un ordre total si c'est un ordre partiel et (8s)(8t)((st)2SS )((st)2R_(ts)2R)), uneequivalence
si elle est reexive, symetrique et transitive. Soient R1
XY etR 2
Y Z deux relations. La relation composee deR 1 et R2 est R1 R 2 = f(xz)jx2X^z 2Z^(9y2Y)((xy)2R 1 ^(yz)2R 2) g.
La relation inverse deR ST estR ;1
T S t.q. (xy)2R () (yx)2
R;1.
La relation identitede S est 1S =f(ss)js2Sg.
On utilise la notation #k(k 2S) pour la relation incluse dansSS:f(sk)js2Sg.
4. SoientS,T deux ensembles. Une relationRST est unefonction partielle deS
versT si (8s)(8t 1)( 8t 2)((st1) 2R^(st 2) 2R)t
1 =t2) et unefonction (totale)
deS aT si elle est une fonction partielle et (8s)(s2S )(9t)(t2T^(st)2R)).
Par S !T ou TS on denote l'ensemble de toutes les fonctions totales de S a T.
Par v=x]e on denote la substitution de la variable x par la valeur v dans l'ex-pression e. La m^eme notation est utilisee pour les fonctions: soient f : S ! T,
s 2 S et t 2 T. La fonction t=s]f : S ! T est denie de la maniere suivante:
t=s]f(x) = f(x) six6=sett sinon. On utilise la m^eme notation pour les produits
cartesiens: si 2 Q i2I Ai, k 2I et a2Ak alors a=k] 2 Q i2I Ai et a=k]j] =j] si j 6=k et a sinon.
Si f : S ! T est une fonction de S a T et X S alors f(X) +ff(x)j x2 Xg.
On applique la m^eme notation dans les cas ou le domaine ou l'ensemble des valeurs def sont des produits cartesiens.
2.1.1 Algorithmes
Les algorithmes de chapitres suivants sont presentes dans une notation informelle similaire a la notation ican (Muc97]) ou aux langagesc etpascal:
2.1. NOTATIONS 25
2. L'instruction d'aectation a la syntaxe x:=exp, l'instruction de branchement est similaire a l'instruction ifdec:
if(exp;bool) if (exp ;bool) if(exp;bool)
inst inst inst
endif] ... ...
else else if (exp;bool)
inst inst ... ... endif else inst ... endif
3. Les instructions d'iteration sont aussi similaires aux langages c,pascal:
foreach () while (exp;bool)
inst inst endfor] endwhile]
foreach () while (exp;bool) repeat
inst inst inst
... ... ...
endfor endwhile until (exp;bool)
4. On utilise les instructions returnet break avec la semantique du langage C.
On identie les types avec leur ensemble de valeurs. On ne precise pas les types de base, mais on inclut ici les types booleen bool et entier int. Les types composes sont
obtenus en utilisant les constructeurs suivants:
1. Si T est un type de base alors on peut construire les types le et pile dont la syntaxe et les operateurs sont presentes a la table 2:1p:26]. Si f est une le (pile)
de T et e est un ensemble de T alors on utilise la notation f:Push(e) qui signie une enumeration aleatoire de tous les elements de e avec leurs insertion dans e:
foreach(s2e)
f:Push(s) .
2. De m^eme, si T est un type de base alors on peut construire le type ensembledont la syntaxe et les operateurs sont presentes a la table 2:2p:26]. Les operateurs
Declarations Operateurs Notations, utilisations T0 = file deT pile deT Push :T 0 T !T 0 x:Push(t) x:T0 Pop :T0 !T t:=x:Pop() t :T Top :T0 !T t:=x:Top() Empty :T0 !bool x= Reverse :T0 !T 0 x:=x:Reverse
Tab. 2.1 { Les types le, pile
Declarations Operateurs Notations, utilisations
T0 = ensemble deT :T 0 T 0 !T 0 z :=x y xyz :T0 \:T 0 T 0 !T 0 z :=x \y t :T n:T 0 T 0 !T 0 z :=x ny Empty :T0 !bool x= In :T0 T !bool t2x fg:T !T 0 x:= ftg C :T 0 !T tCx J :T 0 !T tJx
2.2. ENSEMBLES PARTIELLEMENT ORDONN
ES,TREILLIS 27
et J signient la selection aleatoire d'un element et respectivement la selection
aleatoire suivie par elimination de l'element.
3. Si TT1:::Tk sont des types de base alors on peut construire les types tuple et
fonctiondont la syntaxe et les operateurs sont presentes a la table 2:3p:27].
Declarations Operateurs Notations, utilisations
T0 =T 1 :::Tk ] :T 0 f1:::kg! S i2f1:::kg Ti t :=xj] x:T0 () :T 1 :::Tk !T x:= (t 1:::tk) t:Tj ti :Tii2f1:::kg T00=T 1 :::Tk !T () :T 1 :::Tk !T t :=y(t 1:::tk) y:T00 t:T ti :Tii2f1:::kg
Tab. 2.3 { Les types tuple et fonction
Par ailleurs on utilise les types ste et pfdqui denotent les systemes de transitions etiquetees (denition 3:1p:38]) et les problemes de ot de donnees (denition 5:1p:97]).
Pour les variables de type steou pfd(ex. x:ste) on utilise aussi la notation prexee
x: pour identier les elements composants (ex. x:$).
La notation pour les commentaires est identique a celle de c++.
La denition, la declaration et l'utilisation des procedures obeissent aux regles du langage pascal: elles peuvent contenir des denitions des procedures (ou seulement leurs declarations), des denitions de types. Un exemple de procedure est fourni a la table 2:4p:28]: la procedure Proc1 contient, entre autres, la denition de la procedure
Proc3 et la declaration de la procedure Proc2.
2.2 Ensembles partiellement ordonnes, treillis
2.2.1 Ensembles partiellement ordonnes
Denition 2.1 (Ensemble partiellement ordonne)
Un ensemble partiellement ordonne est la paire (Lv), ou L est un ensemble et v LLest un ordre partiel.
procedure Proc1 (a :TypeA var b:TypeB) type TypeC =::: var c:TypeC procedure Proc2
procedure Proc3 (b1 :TypeBvar c1 :TypeC) type var begin endproc Proc3 begin end.
Tab.2.4 { Une procedure
h(L) =maxfjSjjSL^S totalement ordonneg.
Observation 2.1
Si a@ b + av b^a 6=b, on pourrait representer (Lv) comme ungraphe orienteGLavec pour nuds les elements de Let une ar^ete entrea etb (ab 2L)
si a@b^(8x)(x2L):(a@x@b)) 1.
Denition 2.2 (Cha^ne)
La sequence (xn)n2N dans (L
v) est une cha^ ne croissante si xi v xi
+1 pour tout
i2
N
.Denition 2.3 (Monotonie)
Une fonction f : L ! L est monotone croissante si (8a)(8b)(a 2 L^b 2 L^a v
b)f(a)vf(b)).
Denition 2.4 (Bornes)
Soit S L. Un elementb 2L est:
1. un majorant deS (noteS vb) si (8s)(s2S )svb).
1:c'est une representation minimale t.q. si a ;! GL
b et b ;! GL
c alors on peut deduire, par
2.2. ENSEMBLES PARTIELLEMENT ORDONN
ES,TREILLIS 29
2. un minorant deS (notebvS) si (8s)(s2S )bvs).
3. la2 borne superieure deS (note
tS) si:
(a) tS est un majorant de S et
(b) C'est le plus petit des majorants de S: (8b 0)(b0
2L^S vb 0
)tS vb 0).
4. la3 borne inferieure deS (note
uS) si:
(a) uS est un minorant de S et
(b) C'est le plus grand des minorants de S: (8b 0)(b0 2L^b 0 vS )b 0 vuS).
Lemme 2.1 (Produit cartesien)
Soient (L1 v
1) et (L2 v
2) deux ensembles partiellement ordonnes et soit vL 1 L 2 t.q. (x1x2) v(y 1y2) () x 1 v 1 y1 ^x 2 v 2 y2. Alors: 1. (L1 L 2
v) est un ensemble partiellement ordonne,
2. Un element (b1b2) du produit cartesien est un majorant (minorant) deS1 S
2
L1 L
2 si et seulement si bi est un majorant (minorant) deSi, i
21 .. 2.
3. La borne superieure (inferieure) deS1 S 2 L 1 L 2est l'element ( tS 1 tS 2) (resp. (uS 1 uS 2) ).
2.2.2 Treillis
Denition 2.5 (Treillis (complet))
Un treillis (complet) est un ensemble partiellement ordonne (Lv) t.q. toute partie
nie (respectivement partie) de L admet une borne superieure et une borne inferieure. On le note avec (Lvtu?>) ou ? + uL et >+ tL. Si xy 2L alors xuy= ufxyg etxty=tfxyg.
Exemple 2.1
1. Le treillis 2L de parties d'un ensemble L: (2L\L).
2:si elle existe elle est unique, a cause du fait quevest anti-symetrique
2. Le treillis de vecteurs de bits bv: (f01gtu01) (isomorphe avec le treillis
de parties d'un ensemble de cardinal 1).
3. Le treillis Q!L, ouQ est un ensemble ni etL un treillis complet, est le treillis
complet (Q!Lv 0 t 0 u 0 ? 0 > 0) avec: (a) f v 0 g () (8l)(l 2L)f(l)vg(l)). (b) (f u 0g)(l) =f(l) ug(l). (c) (f t 0g)(l) =f(l) tg(l). (d) > 0 = # >. (e) ? 0 = # ?.
4. Le treillis de constantesconst: (f?>012 gvtu?>) dontG CONST
est represente a la gure 2:1p:31].
5. Le treillis d'intervalles entiers int est (IZ
f?gvut?;11]) ou: (a) IZ = fab]ja2
Z
f;1gb2Z
f1gabg, (b) bc]vad] () a b c d, (c) (8ab])(ab]2I Z )?@ab]), ou a@b + avb^a6=b, (d) (8ab])(ab]2I Z)?tab] = ab]^?uab] =?),
(e) ab]tcd] = min(ac)max(bd)],
(f) ab]ucd] =
? ab]\cd] =
max(ac)min(bd)] sinon Le graphe GINT est represente dans la gure 2:1p:31].
Lemme 2.2 (Produit cartesien)
Soient (Livitiui?i>i) deux treillis complets. Le treillis
(L1 L 2 vtu(? 1 ? 2)( > 1 >
2)), ou l'ordre partiel
vest celui de la lemme 2:1 p:29], (x1x2) t(y 1y2) = (x1 t 1y1x2 t 2 y2) et (x1x2) u(y 1y2) = (x1 u 1y1x2 u 2y2) est un treillis complet.
2.2. ENSEMBLES PARTIELLEMENT ORDONN ES,TREILLIS 31 > ? -1 1 0 ... ... ... -1,0] 0,1] -1,-1] 0,0] 1,1] ... ? ;1,1]
Lemme 2.3 (Union disjointe)
Soient (Livitiui?i>i) deux treillis complets. Le treillis
(L1 f1gL 2 f2gvtu?>), ou: (ai)v(bj) () i < j_(i=j^avi b) (ai)t(bj) = 8 < : (atibi) i=j (bj) i < j (ai) i > j >= (> 22) (ai)u(bj) = 8 < : (auibi) i=j (bj) i > j (ai) i < j ?= (? 11)
est un treillis complet (on utilise la notation L1 L
2).
Denition 2.6 (Continuite)
Soit (Lvtu?>) un treillis complet. La fonction totale f :L!L estcontinue
si pour toute cha^ne (xn)n2N,f( tn
2Nxn) = tn
2Nf(xn).
2.2.3 Points xes
Denition 2.7 (Point xe)
Soient (Lvtu?>) un treillis complet etf :L!Lune fonction monotone. Un
point xedef est un element xdeL t.q.f(x) =x. Soient %f + fxjx2L^f(x) = xg
et lfp(f)+ u%f, gfp(f)+ t%f.
Lemme 2.4 (Monotonie et hauteur nie implique continuite)
Si L est un treillis complet, de la hauteur nie et f : L ! L est monotone alors f
est continue. Preuve
Voir annexe Bp:173].
Theoreme 2.1 (Calcul de point xe - Kleene-Tarski)
Soient (Lvtu?>) un treillis complet et f :L!Lune fonction totale. Alors:
1. Si f est monotone alorstn 2Nf
n(?)vlfp(f) et gfp(f)vun 2Nf
n(>).
2. Si f est continue alors lfp(f) =tn 2Nf
n(?) et gfp(f) = un 2Nf
2.2. ENSEMBLES PARTIELLEMENT ORDONN ES,TREILLIS 33 Preuve Voir annexe Bp:174].
Observation 2.2
Le theoreme precedent a lieu aussi si on prend au lieu de >, ? tout a 2 L avec la
propriete: gfp(f)vav> (respectivement?vavlfp(f)).
2.2.4 Elargissement, retrecissement
Les operateurs d'elargissement et de retrecissement ont ete introduits (Cou78]) pour permettre et accelerer le calcul des approximations des points xes dans le cas ou le treillis a la hauteur innie.
Denition 2.8 (Elargissement)
Soit (Lvtu?>) un treillis complet. L'operateur binairer:LL!Lest un
operateur d'elargissement (CC92b]) si:
1. (8x)(8y)(x2L^y2L)xy vxry) et
2. Pour toute sequence croissante (xn)n2N, la sequence croissante (yn)n2N, denie
comme suit: y0 =x0 yn+1 =yn rxn +1 8n 2
N
, est constante a partir d'un certain rang.
Denition 2.9 (Retrecissement)
Soit (Lvtu?>) un treillis complet. L'operateur binaire4:LL!Lest un
operateur de retrecissement(CC92b]) si:
1. (8x)(8y)(x2L^y2L^yvx)yvx4yvx) et
2. Pour toute sequence decroissante (xn)n2N, la sequence decroissante (yn)n2N, denie
comme suit: y0 =x0 yn+1 =yn 4xn +1 8n2
N
, est constante a partir d'un certain rang.
Exemple 2.2
Pour le treillis int, des operateurs d'elargissement et de retrecissement sont denis comme suit (CC92b]):1. Elargissement:
(8X)(X 2I Z
)((?rX =X)^(Xr?=X)))
ab]rcd] = ef] ou e= ;1 c < a a sinon etf = 1 b < d b sinon 2. Retrecissement: (8X)(X 2I Z )((?4X =?)^(X4?=?)))
ab]4cd] = ef] ou e= c a =;1 a sinon et f = d b=1 b sinon
Theoreme 2.2 (Approximation par elargissement CC92b])
Soient (Lvtu?>) un treillis complet, f : L ! L une fonction continue et r:LL!Lun operateur d'elargissement. Soit la sequence (xn)n2N: x0 = ? et xi +1 = xi f(xi)vxi xirf(xi) sinon . Alors (xn)n2N est constante a partir d'un certain rang et sa limite a
2 L est t.q.
lfp(f)va et f(a)va.
Theoreme 2.3 (Approximation par retrecissement CC92b])
Soient (Lvtu?>) un treillis complet, f : L ! L une fonction continue, 4 :
LL! L un operateur de retrecissement et a 2L la limite de la sequence croissante
du theoreme 2:2p:34].
Soit la sequence (yn)n2N:y0 =a etyi+1 =yi
4f(yi).
Alors (yn)n2N est constante a partir d'un certain rang et sa limite a 0
2 L est t.q.
lfp(f)va 0.
2.2.5 Iterations chaotiques
Dans le cas ouLest un treillis complet etf est une fonction continue de l'ariten (f :
n Q i=1 L! n Q i=1
L) on peut utiliser pour le calcul delfp(f) les iterations chaotiques (Cou98]):
2.2. ENSEMBLES PARTIELLEMENT ORDONN
ES,TREILLIS 35
Soient L un treillis complet, f : Qn
i=1
L !
n
Q
i=1
L une fonction continue et :
N
!2f1:::ng une strategie d'iteration (t.q. chaquei
2f1:::ngappara^t inniment souvent:
(8i)(8k)(1in^k2
N
)(9j)(j > k^i2(j)))).Une iteration chaotique(croissante) est la sequence (xk)k
2N, ou:x 0 = ( ?:::?) et xk+1 i = fi(xk 1:::xkn) i 2(k) xki i =2(k) , 8i21 .. n.
Theoreme 2.4 (Cou78])
La suite (xk)k2N est croissante et sa limite est le point xe de f (lfp(f) = tk
2Nx
k).
Preuve
Voir annexe Bp:174].
Dans le cas des treillis de hauteur non nie (ou ne veriant pas la condition de cha^ne) on introduit dans la denition des iterations chaotiques croissantes les suites elargies et on obtient les iterations chaotiques approchees superieurement (Cou78]):
Denition 2.11 (Iterations chaotiques approchees superieurement)
Soient L un treillis complet et f : Qn
i=1
L !
n
Q
i=1
L une fonction continue et :
N
!2f1:::ng une strategie d'iteration (t.q. chaque i
2 f1:::ng appara^t inniment
sou-vent) ((8i)(8k)(1in^k 2
N
)(9j)(j > k^i2(j)))).1. Le graphe de dependancedef est un graphe oriente avec les n&uds etiquetes avec
ii 2 f1:::ng et des arcs entre (ij) si dans le calcul du point xe x de f le
calcul de la composantexj depend du celui de la composante xi.
2. Soit E f1:::ng un ensemble t.q. tout circuit non trivial du graphe de
depen-dance de f passe par au moins un point de E.
Uneiteration chaotique croissante approchee superieurement) est la sequence (xk)k
2N, ou: x0 = ( ?:::?) et x k+1 i = 8 < : xki i =2(k)_fi(xk)vxki fi(xk) i2(k)nE ^fi(xk)6vxki xkirfi(x k) i 2(k)\E^fi(x k) 6vxki .
Theoreme 2.5 (Cou78])
Sif est continue, la suite (xk)k
2N est constante a partir d'un certain rang et sa limite
37
Chapitre 3
Validation basee sur les modeles
La validation des systemes repartis (protocoles) consiste a s'assurer que les imple-mentations des systemes sont conformes a leurs specications (ensembles des proprietes qu'on attend d'un systeme). Plus formellement: valider le systeme S signie a veri-er si la specication spec de S et son implementation imp satisfont la relation conf:
imp confspec.
On suppose toujours qu'on peut associer aux implementations une semantique ope-rationnelle, donnee par un ste1 (m^eme dans le cas ou on ne conna^t pas la structure
de celle-ci). En fonction de l'information qu'on possede sur la structure des implemen-tations on peut appliquer les techniques de validation: la verication formelle (section 3:3p:51]) et le test(section 3:4p:52]).
On commence par une presentation des modeles formels qu'on utilise: il s'agit de systemes de transitions etiquetees (section 3:1p:37]) et d'automates etendus
communi-cants (section 3:2p:46]).
3.1 Systemes de transitions etiquetees
Les systemes de transitions etiquetees (ste) sont utilises comme modele sequentiel semantique2 (en utilisant la technique d'entrelacement) pour les systemes concurrents:
ccs (Mil80]) et csp (Hoa85]) mais aussi comme modele theorique dans les domaines du test de conformite (Bri88]) ou de la verication des systemes QS83, CES83, Sif82]: comportementale enumerative (en utilisant relations de simulation et de bisimulation:
1:systeme de transitions etiquetees
2:De maniere generale, la semantique operationnelle d'un langage permet d'associer a un programme
ald ebaran (Fer88, Mou92, Ker94, BFKM98]) ou BdS92]) ou logique (par evaluation de formules de logique temporelle Cle90, FM95]).
Denition 3.1 (Systeme de transitions etiquetees)
Unsysteme de transitions etiqueteesS est un tuple (Q$f
a
;! ja2$gq
0), ouQest
l'ensemble des etats, $ est l'ensemble des etiquettes (actions), les relations de transition sont t.q. (8a2$)(
a
;!QQ) et q 0
2Q est l'etat initial.
On note STE($) l'ensemble de tous lesstes avec l'ensemble des etiquettes $. Pour
identier les elements d'un ste (ex.S) on utilise les notations:S:Q, S:$, S:q0 .
On utilise la notationq ;a!q 0 + (9q)(9q 0)( 9a)(q2Q^q 0 2Q^a2$^(qq 0) 2 a ;!).
Si l'un des elements du triplet (qaq0) est xe (ex. q) alors on omet la condition
d'ap-partenance au domaine (ex.q 2Q):q
a ;!q 0 + (9q 0)( 9a)(q 0 2Q^a2$^(qq 0) 2 a ;!). La notation q;a! signie (9q 0)(q0 2Q^q a ;!q 0).
Les fonctions predecesseur et successeur sont PreaPosta : 2Q ! 2Q, denies pour
tout a2$: Prea(S) =fq jq2Q^(9q 0)(q0 2S^q a ;!q 0) g Posta(S) =fq 0 jq 0 2Q^(9q)(q2S^q a ;!q 0) g
Si '$, on utilise les notations:
Pre(S)
+ fqjq 2Q^(9a)(a2'^q 2Prea(S))g Pre(S) + Pre (S)
Post(S)
+ fqjq2Q^(9a)(a2'^q2Posta(S))g Pre(S) + Post (S)
Si S =fqg, on utilise les notationsPre(q) et Prea(q) (et de m^eme pour Post).
S estdeterministe si (8a)(8q)(a2$^q2Q)jPosta(q)j1).
La fermeture reexive et transitive de relations f
a
;!j a 2 $g est l'ensemble des
relations f ;! j 2 $ ^
;! Q Qg, denies comme suit:
;!= 1Q Q et si a 2 $ et 2 $ alors a ;!= a ;!
;!. On utilise les notations ;! + S 2 ;! et + ;! + S 2 + ;!. Si p 2 Q 2 $ alors p after + fq j q 2 Q^p
;! qg est l'ensemble des etats
accessibles deppar la trace (siS est deterministe alors le cardinal de cet ensemble est 1) ettrace(p) + f j 2$
^pafter 6=gest l'ensemble des traces deScommencant
avec p.
Un chemin de S (de longueur n) est une sequence: q0
a1 ;! q 1 a2 ;! ::: an ;! qn, ou qi 2Q8i20 .. n, ai 2$8i21 .. n et les etats q 1:::qn sont distincts.
3.1. SYST EMES DE TRANSITIONS ETIQUET EES 39
Les chemin est un cycle siq0 =qn.
S estacyclique s'il ne contient pas de cycles.
Dans la suite on rappelle la notion de composition asynchrone des stes et quelques relations permettant d'etablir des criteres de comparaison entrestes.
Denition 3.2 (Produit asynchrone de
stes)
Soient p1p2 deux stes: (Qi$if
a
;!ija2$igqi 0), i
2 1 .. 2. Leur produit
asyn-chrone p1 jjjp 2 est le ste: (Q12$12 f a ;! 12 ja2$ 12 g(q 1 0q 2 0)), ou $ 12 = $1 $ 2 et Q12 Q 1 Q 2, f a ;! 12 j a 2 $ 12
g sont construits inductivement, en appliquant les
regles: (q1 0q 2 0) 2Q 12 (3.1) (q1q2) 2Q 12 q1 a ;! 1 q 0 1 a2$ 12 (q 0 1q 2) 2Q 12 (q1q2) a ;! 12 (q 0 1q 2) (3.2) (q1q2) 2Q 12 q2 a ;! 2 q 0 2 a2$ 12 (q1q 0 2) 2Q 12 (q1q2) a ;! 12 (q1q 0 2) (3.3) L'algorithme qui implemente les equations 3:1p:39], 3:2p:39] et 3:3p:39] est montre a
la table 3:1p:40].
Lemme 3.1 (Associativite)
Sip1p2p3 2STE($) alors (p 1 jjjp 2) jjjp 3 =p1 jjj(p 2 jjjp3) (l'egalite des tuples dans
le sens ensembliste). Preuve
La preuve resulte immediatement par inclusion reciproque.
Le lemme precedent suggere qu'on peut omettre les parentheses quand on ecrit le produit asynchrone de plusieursstes.
Dans la suite on introduit une operation entre stes qui sera utile dans les analyses de ot de donnees inter-processus.
procedureAsync ( (Q1$1 f a ;! 1 ja2$ 1 gq 1 0) :ste (Q2$2 f a ;! 2 ja2$ 2 gq 2 0) :ste var(Q12$12 f a ;! 12 ja 2$ 12 gq 12 0 ): ste ) var S:pile de Q 1 Q 2 x,succ:Q1 Q 2 y:Q1 Q 2 begin q12 0 = (q 1 0q 2 0)Q 12:= $ 12:= $1 $ 2 foreach(a2$ 12) a ;! 12:= S:= S.Push((q 1 0q 2 0)) while (S 6=) x:=S:Pop() Q12:=Q12 fxg foreach(a2$ 1) foreach(y2Post 1 a(x1])) succa := (yx2]) ;! 12:= a ;! 12 f(xsucc)g if(succ =2SQ 12) S.Push(succ) endfor foreach(a2$ 2) foreach(y2Post 2 a(x2])) succa := (x1]y) ;! 12:= a ;! 12 f(xsucc)g if(succ =2SQ 12) S.Push(succ) endfor endwhile end.
3.1. SYST EMES DE TRANSITIONS ETIQUET EES 41
Soient p1p2 deuxstes disjoints
3: (Qi$i f a ;!ija2$igq i 0), i 21 .. 2. On considere $1$2
$ ($ est l'univers des etiquettes) et soit l'operateur
partiel-lement deni k: $$!$. Leur union p1 p 2 est le ste: (Q12$12 f012gf a ;!ja2$ 12 f012ggq 12 0 ), ou: $12, Q12= (Q1 Q 2 nfq 1 0q 2 0 g)fq 12 0 g etf a ;!ja2$ 12 f012gg sont construits
inductivement, en appliquant les regles:
qi 0 a ;!i q 0 i i21 .. 2 (ai)2$ 12 f012g q 0 i 2Q 12 q 12 0 (ai) ;!q 0 i (3.4) qi 2Q 12 qi a ;!i q 0 i q0 i 6=qi 0 i 21 .. 2 (ai)2$ 12 f012g q 0 i 2Q 12 qi (ai) ;! q 0 i (3.5) qi 2Q 12 qi a ;!i qi 0 i 21 .. 2 (ai)2$ 12 f012g qi (ai) ;!q 12 0 (3.6) q1q2 2Q 12 q1 a1 ;! 1 q 0 1 q 2 a2 ;! 2 q 0 2 a 1 ka 2 2$ (a1 ka 20) 2$ 12 f012g q 0 1 2Q 12 q2 (a 1 ka 2 0) ;! q 0 1 (3.7)
Exemple 3.1
Voir l'exemple 3:2p:43]. Ici on considere que les deux stes 12 sont a lafois des stes mais aussi des -stes. Le ste 12 est le ste union et ;1 ;2 est
le -ste union de 12 (vus dans ce cas comme des -stes).
Observation 3.1
La construction ci-dessus s'etend facilement pourn stes: on remplace tous les etats initiaux par un autre etat initial et on construit les transitions etiquetees avec akb.
L'operateur k sera utilise dans la suite pour modeliser le concept de communication
synchrone ou asynchrone entre les deux stes.
On utilise aussi les notions de simulation et de bisimulation (Par81, Mil80]). Plus generalement ces relations peuvent ^etre parametrees par une famille de langage reguliers ' ('2
(fg)
)4, mais on aura besoin seulement du cas ' = $.
Soient Si = (Qi$f a ;!ija2$gqi 0), avec i 21 .. 2, deux stes.
Denition 3.4 (Simulation)
3:dans le sens ensembliste
La relation simQ 1
Q
2 est une simulationsi
(8p 1)( 8p 2)( 8a)(8q 1) ( (p1p2) 2sim ^ p 1 a ;! 1 q1 )(9q 2)(p2 a ;! 2 q2 ^ (q 1q2) 2sim) ):
Denition 3.5 (Bisimulation)
La relation de simulation bsim Q 1
Q
2 est une bisimulation si bsim
;1 est une relation de simulation: (8p 1)( 8p 2)( 8a) ( (p 1p2) 2bsim ^ (8q 1)(p1 a ;! 1 q1 )(9q 2)(p2 a ;! 2 q2 ^ (q 1q2) 2bsim) ) ^ (8q 2)(p2 a ;! 2 q2 )(9q 1)(p1 a ;! 1 q1 ^ (q 1q2) 2bsim) ) ):
La relation de bisimulation utilisee dans la suite est la relation de bisimulation forte
(Par81]) construite comme suit (lorsque les ensemblesQ
1Q2 sont nis): = T n2N n et 8 > > > > > > > < > > > > > > > : 0 = Q1 Q 2 n +1 = f(p 1p2) j(p 1p2) 2Q 1 Q 2 ^(8a)(a2$ ^ (8q 1)(q1 2Q 1 ^p 1 a ;! 1 q1 ) (9q 2)(q2 2Q 2 ^ p 2 a ;! 2 q2 ^ q 1 nq 2)) ^ (8q 2)(q2 2Q 2 ^p 2 a ;! 2 q2 ) (9q 1)(q1 2Q 1 ^ p 1 a ;! 1 q1 ^ q 1 nq 2))) g :
3.1.1 Actions internes
Une categorie particuliere de stes est constituee par les stes avec des actions in-ternes (non-observables), denotees par l'etiquette. Un-steest leste: (Q$f
a
;!ja2$gq 0),
ou $ +$fg.
On utilise la notation STE($) pour l'ensemble de tous les -stes avec l'ensemble
des etiquettes $ et STE pour l'ensemble de tous les -stes.
En utilisant la fermeture reexive et transitive de relationsf
a ;!ja2$g:f ;!j ;! 2 QQ^ 2 $
g, on construit les relations de transition suivantes: f
=)j
3.1. SYST EMES DE TRANSITIONS ETIQUET EES 43 Q ^ 2 $ g: =)= ;! et si a 2 $ et 2 $ alors =a ) = =) a ;! =) et a =)= =) a ;! =) =) =). Si p 2 Q 2 $ A $ alors p after + fq j q 2 Q^p =) qg, trace(p)+ f j 2 $
^p after 6= g, p after refuses A +(9p 0)(p0 2 Q^ p =) p 0 ^(8a 2 A)(:p 0 =a
)) et pafter deadlocks +p after refuses $.
Denition 3.6 (Union de
-
stes)
Soient p1p2 deux-stes disjoints: (Qi$i f a ;!ija2$igqi 0), i 21 .. 2. On considere $1 $2
$ ($ est l'univers des etiquettes) et soit l'operateur
par-tiellement deni k: $ $ !$. Leur unionp1 p 2 est le-ste: (Q12$ 12 f012gf a ;!ja2$ 12 f012ggq 12 0 ), ou: $12 , Q12= (Q1 Q 2 fq 12 0 g etf a ;!ja2$ 12
f012ggsont construits
inductive-ment, en appliquant les regles:
; (0)2$ 12 f012g qi 0 2Q 12 q 12 0 (0) ;!qi 0 (3.8) qi 0 a ;!i q 0 i i21 .. 2 (ai)2$ 12 f012g q 0 i 2Q 12 q 12 0 (ai) ;!q 0 i (3.9) q1q2 2Q 12 q1 a1 ;! 1 q 0 1 q 2 a2 ;! 2 q 0 2 a 1 ka 2 2$ (a1 ka 20) 2$ 12 f012g q 0 1 2Q 12 q2 (a1ka 2 0) ;! q 0 1 (3.10)
Exemple 3.2 (Union des (
-)
stes)
Dans la gure3:1p:44] on a represente deuxstes,notes par 1 et 2 et leur unions: 12 et ;1 ;2 (on a considere que 1 et 2 sont
aussi des -stes). Dans les cas de 1 2 les etats initiaux de 1 et 2 sont remplaces
par un seul etat initial (regles 3:4p:41] et 3:6p:41]) et dans le cas de
;1 ;2 on
ajoute un nouveau etat (qui devient l'etat initial) et des nouvelles transitions de cet etat vers les anciens etats initiaux de chaque -ste(conformement a la regle 3:8p:43]). On a
considere aussi que l'operateur kest deni seulement dans le cas de ckd et on a ajoute
b b c a a d b a c b a d 1 2 b a b a c d 1 2 0 c k d c k d 12 ;1 ;2
3.1. SYST EMES DE TRANSITIONS ETIQUET EES 45
3.1.2 Actions d'entree et de sortie
Une sous-categorie de -stes est constituee par les stes a entree-sortie (iostes). Ceux-ci ont l'ensemble d'etiquettes $ partitionne en deux sous-ensembles:$I, l'ensemble
d'etiquettes d'entree et $O, l'ensemble d'etiquettes de sortie.
On utilise la notation IOSTE($I$O) pour l'ensemble de tous les iostes avec
l'en-semble des etiquettes d'entree $I et celui des etiquettes de sortie $O et IOSTE pour
l'ensemble de tous lesiostes.
Pour utiliser les iostes dans la modelisation des systemes distribues on leur impose quelques conditions:
1. Dans LT89] on impose la condition forte d'entree autorisee5: dans chaque etat
et pour chaque action d'entree il existe une transition etiquetee avec cette action: (8a 2 $I)(8p 2 Q)(p
a
;!). Dans Pha94a] cette condition est la condition de
completude.
2. Dans Tre96] on impose la condition d'faible d'entree autorisee6: dans chaque etat
et pour chaque action d'entree a de $I il existe une trace =a): (8a 2 $I)(8p 2
Q)(p=a)).
3. Dans FJJV97, FJJV96] on denit la condition de contr^olabilite: dans chaque etat si une sortie7 est autorisee8 alors elle est l'etiquette de la seule transition sortante
de cet etat.
4. Dans Pha94a] on impose l'existence d'une correspondance bijective entre les en-sembles $I et $O: $I =f? aja2Lg et $O =f! aja2Lg.
Les iostes sont utilises pour modeliser des systemes avec des communications asy-metriques9 (et dans ce cas les etiquettes d'entree signient les actions contr^olables et les
etiquettes de sortie les actions observables). Les conditions d'entree autorisee (forte ou faible) signient que le systeme (modelise par le ioste) ne peut jamais refuser d'inter-agir avec l'environnement quand l'initiative appartient a celui-ci (dans tout etat, toute entree est autorisee et sera acceptee par le systeme).
5:strong input enabling en anglais
6:weak input enabling en anglais
7:dans le cas ou leioste modelise un observateur ou une entree dans le cas ou leioste modelise
une implementation 8:enabled en anglais
La condition de contr^olabilite est utile dans la generation de test: dans un cas de test, dans chaque etat, on peut soit attendre une emission du systeme sous test soit lui envoyer un message.
3.2 Automates etendus communicants
Lesautomates etendus communicants(aecs) constituent aujourd'hui un modele lar-gement utilise dans la specication et la validation des protocoles. L'evolution vers ce modele a commence par l'utilisation desautomatespour modeliser formellement les pro-tocoles. Il est mentionne dans Hol91] que leurs utilisation a commence avec BSW69]. Les automates etendus (Hol91, Pha94a]) constituent un modele plus expressif que les stes en ce qui concerne l'expression et la manipulation des donnees (en utilisant des variables). Les automates communicants ont ete introduits par BZ83]. Ils enrichissent les stes en permettant l'expression des interactions entre plusieurs processus et l'envi-ronnement (par echanges des messages via canaux de communication).
On utilise les aecs comme langage de specication. Plus precisement les specica-tions sont constituees d'un nombre ni de processus asynchrones paralleles qui com-muniquent par des messages echanges via canaux de communication (les d'attente non-bornees). Un message est constitue d'un signal et de parametres. Un processus est unaecavec un nombre ni d'etats. Les processus ont une memoire locale (des variables locales) et ils executent des actions sur les les d'attente et les variables locales. Par souci de simplicite, les actions sont des commandes gardees simples.
Ce modele est une version simpliee deif(BFG+99b, BFG+99c, BFG+00c]), un
mo-dele intermediaire a base d'automates temporises AD94] communicants. On a simplie dans le modele if les aspects temporises et les actions (dans if elles sont constituees par plusieurs commandes et une garde).
Syntaxe
Denition 3.7 (Specication)
Une specication SP est le tuple (SCP) ou S est un ensemble des signaux, C est l'ensemble des canaux de communication et P est un ensemble des aecs.
L'ensemble des canaux, C, est partitionne en deux sous-ensembles:Cint (les canaux
internes, fermes a l'interieur de la specication) et Cext (les canaux externes, ouverts a
3.2. AUTOMATES
ETENDUS COMMUNICANTS 47
Soient D l'ensemble des constantes logiques (vrai, faux) et entieres auxquelles on ajoute une constante speciale qui denote une valeur non-denie:
Z
ft
f
gfg,X un ensemble ni de variables (qui contient une variable speciale * pouvant prendre toute valeur deDdans tout etat de contr^ole) etAEX,BEX les langages des expressions
arithmetiques et logiques generes par les regles de productionRae etRbe indiquees a la
table 3:2p:47]. Rae AE ::= k8k 2Dnf
t
f
g AE ::= v8v 2X AE ::= AE +AE jAE ;AE Rbe BE ::=t
jf
BE ::= :BE jBE _BE BE ::= AE <AE jAE =AETab.3.2 { Regles de production
Soient X,S et C avec les signications ci-dessus. L'univers des commandes gardees
$(X) est l'ensemble: fbe] x:=ae jbe 2BEX ^x2X^ae 2AEXg fbe] c? s(x)jbe 2BEX ^x2X^c2C^s2Sg fbe] c! s(ae)jbe 2BEX ^ae 2AEX ^c2C^s2Sg fbe] nil jbe 2BEXg fbe] c! s()jbe 2BEX ^c2C^s2Sg fbe] c? s(*) jbe 2BEX ^c2C^s2Sg
Denition 3.8 (Automate etendu communicant)
Unautomate etendu communicantp2P est le tuple (Xp(Qp$(Xp)f
a
;!pja 2$(Xp)gq
p
0)),
ouXpest l'ensemble des variables, et (Qp$(Xp)f
a
;!pja2$(Xp)gq
p
0) est leste
sous-jacent.
Dans la suite les commandes hbe] nili, hbe] c ! s()i et hbe] c ? s(*)i ne seront
utilisees que dans le cas de l'analyse de l'utilite des donnees (chapitre 5p:93]).
Sia2$(Xp),a= be] alors on denote pargardel'expression logiquebe (guard(a) + be)
et par action (act(a)) le reste de l'action. Pour une action de type x :=ae on denote par lhs(x:=ae) + xet rhs(x:=ae) + ae.
Le fait que dans notre modele il n'existe pas de memoire partagee s'exprime formel-lement par (8p)(8q)(p2P ^q2P )Xp\Xq =).
On peut considerer, sans restreindre la generalite, que, pour tout aec de la speci-cation, les les d'entrees et celles de sortie dierent.
La composition asynchrone de plusieurs aecs est aussi unaec dont l'ensemble des variable est l'union des ensembles des variables locales et le ste sous-jacent est la com-position asynchrone des stes locaux:
Denition 3.9 (Produit asynchrone de
aecs)
Soient pr 2P deux aecs:(Xp(Qp$(Xp)f a ;!pja2$(Xp)gq p 0)) et (Xr(Qr$(Xr) f a ;!rja 2$(Xr)gq r 0)).
Leur produit asynchronepjjjr est l'aec
(XpXr(Qp$(Xp)f a ;!pja 2$(Xp)gq p 0) jjj(Qr$(Xr)f a ;!rja 2$(Xr)gqr 0)).
Denition 3.10 (Union d'
aecs)
Soient pr 2P deux automates etendus communicants:
(Xp(Qp$(Xp)f a ;!pja2$(Xp)gq p 0)) et (Xr(Qr$(Xr) f a ;!rja 2$(Xr)gqr 0)).
Soit k: $(Xp Xr)$(Xp Xr) ! $(Xp Xr) un operateur partiellement deni
t.q. si 1 2
2$(XpXr), 1
k
2 est deni ssi 1 = be1]c ? s(x) et 2 = be2]c! s(e)
et dans ce cas 1 k
2 =
h
t
] x := ei.L'union pr (avec l'univers des etiquettes $(XpXr)) est l'aec:
(XpXr(Qp$(Xp)f a ;!pja2$(Xp)gq p 0) (Qr$(Xr)f a ;!rja2$(Xr)gqr 0)).
Semantique
On considere que la communication entre lesaecs de la specication est asynchrone. Les canauxde communication internessont des les d'attente non-bornees.
La communication avec l'environnement est aussi asynchrone mais en voulant mo-deliser une communication synchrone entre le testeur et l'iston considere les canaux de communication externes comme des les d'attente bornees (avec la borne 1).
Denition 3.11 (Contextes)
Soit la specication SP.
Un contexte de variables est une fonction : S
p2P
Xp !D. On note aussi avec son
extension pour expressions (on impose (e) = si l'expression e contient une variable
x t.q. (x) =).
Un contexte de les est une fonction:Cint
!(SD) .
3.2. AUTOMATES
ETENDUS COMMUNICANTS 49
Denition 3.12 (Semantique de la specication)
La semantique de la specicationSP est le ste:SPc = (Qb $b f a ;! ja2 b $gq^ 0), ou:
1. Les etats sont des tuples constitues par les etats de contr^ole de chaque processus, les contextes de variables et les contextes de les internes:
b Q( Q p2P Qp)( S p2P Xp !D)(C int !(SD) ),
2. L'ensemble d'etiquettes $ estb fgfc ? s(v)jc2C
ext
^s2S^v 2Dgfc !s(v)jc2C ext
^s2S^v 2Dg,
3. L'etat initial est constitue par l'etat initial de chaque processus, les variables ini-tialisees avec 0 et les les internes iniini-tialisees avec:
^ q0 = ((q p 0)p 2P0 P p2P jXpj jC int j). Les ensembles Qb et f a ;!j a 2 b
$g sont construits inductivement, en appliquant les
regles: ; ^ q0 2 b Q (3.11) ( )2 b Q qpb]x:=e ;!p q 0 p (b) =
t
(e) =v (q0 p=p]v=x] )2 b Q ( );!(q 0 p=p]v=x] ) (3.12) ( )2 b Q qpb]c!s(e) ;!p q 0 p (b) =t
(e) =v c 2C ext (q0p=p] ) 2 b Q ( )c!s(v) ;! (q 0 p=p] ) (3.13) ( )2 b Q qpb]c!s(e) ;!p q 0 p (b) =t
(e) =v c2C int (c) =w (q0 p=p] w(sv)=c])2 b Q ( );!(q 0 p=p] w(sv)=c]) (3.14) ( )2 b Q qpb]c?s(x) ;!p q 0 p (b) =t
c2C ext v 2Dnfg (q0 p=p]v=x] )2 b Q ( )c?s(v) ;! (q 0 p=p]v=x] ) (3.15) ( )2 b Q qpb]c?s(x) ;!p q 0 p (b) =t
c2C int (c) = (sv) w v 2Dnfg (q0 p=p]v=x] w=c])2 b Q ( );!(q 0 p=p]v=x] w=c]) (3.16)Les regles 3:11p:49]
3:16
p:49] sont les regles semantiques de base pour les
speci-cations. On y ajoute quelques regles concernant les commandes b] nil, b] c!s() et
b] c?s(*) . Ces regles sont utilises seulement dans le cas de l'analyse de l'utilite des donnees (chapitre 5p:93]) et si on ne precise pas, on considere la semantique des
speci-cations donnee seulement par les regles 3:11p:49]
3:16
p:49] (et dans ce cas on omet de
mentionner la premisse v 2Dnfg dans les regles 3:15
p:49] et 3:16p:49]). ( )2 b Q qpb]nil ;!p q 0 p (b) =
t
(q0 p=p] )2 b Q ( );!(q 0 p=p] ) (3.17) ( )2 b Q qpb]c?s() ;!p q 0 p (b) =t
c2C ext v 2D (q0 p=p] )2 b Q ( )c?s(v) ;! (q 0 p=p] ) (3.18) ( )2 b Q qpb]c?s() ;!p q 0 p (b) =t
c2C int (c) = s(v) w v 2D (q0 p=p] w=c])2 b Q ( );!(q 0 p=p] w=c]) (3.19) ( )2 b Q qpb] c!s( ) ;!p q 0 p (b) =t
c2C ext (q0 p=p] )2 b Q ( )c!s( ) ;! (q 0 p=p] ) (3.20) ( )2 b Q qpb]c!s( ) ;!p q 0 p (b) =t
c2C int (c) = w (q0 p=p] ws()=c])2 b Q ( );!(q 0 p=p] ws()=c]) (3.21) On peut remarquer que la constante speciale ne para^t pas dans les contextes devariables (c.a-d. il n'existe aucun etat ( ) et aucune variablex t.q. (x) = ).
Le lemme suivant montre que si on eectue une composition asynchrone de tous les aecs dans une specication on obtient une nouvelle specication dont le modele est bisimilaire avec celui de la specication initiale:
Lemme 3.2
Soit SP = (SCP) une specication,P =fp
1p2:::pn
g. Soitrl'automate etendu
communicant:r =p1 jjjp 2 jjj :::jjjpn et SP 0 = (SC frg) Alors SPc d SP0.
3.3. V
ERIFICATIONFORMELLE 51
3.3 Veri cation formelle
La verication formelle peut ^etre appliquee si la structure interne des implemen-tations est connue. Selon le formalisme utilise pour representer les specications, on distingue des methodes de verication pour les specications logiquesou pour les speci-cations comportementales.
3.3.1 Specications logiques
Les specications logiques decrivent des proprietes systeme a valider (ex. l'absence du blocage, l'exclusion mutuelle). Une specication logique est un ensemble de formules d'une logique temporelle: lineaire ltl (Pnu77]), arborescente ctl (CES86]) ou le -calcul arborescent (Koz83]). Verier queimpconfspecrevient a decider siimp est un
modele, dans le sens logique, de toute formule 2spec:impj=. Il existe plusieurs
ap-proches pour decider si impj= (MOSS99]): on mentionne l'approche semantique(qui
revient a calculer l'ensemble d'etats qui satisfont la formule, et donc calculer le point xe d'un operateur ayant comme domaine de denition et comme ensemble de valeurs 2QIMP, ou Q
IMP est l'ensemble d'etats de imp) et l'approche fonde sur la theorie des
au-tomates (qui revient a construire deux automates: AIMP qui accepte tous les chemins
du modeleimp etA qui accepte tous les chemins qui satisfont la formule. On verie ensuite si L(AIMP) L(A), donc L(A IMP) \{L(A) =, doncL(A IMP) \L(A :) = et donc L(AIMP A :) = ).
3.3.2 Specications comportementales
Les specications comportementales decrivent le comportement attendu du systeme, observe a un certain niveau d'abstraction. Dans ce cas les specications sont aussi mo-delisees par des stes et verier que imp conf spec revient a decider si imp spec,
avec une relation de bisimulation quelconque.
Ce calcul passe d'abord par la minimisation de impqui permet le calcul du quotient imp=. Le quotient est construit par ranements successifs d'une partition initiale de
QIMP. Il existe des algorithmes ecaces pour ce calcul (ex. l'algorithme de Paige et
Tarjan PT87] qui a une complexite polyn^omiale dans la taille duste initial).
L'etape suivante consiste dans une comparaison entre les stes imp= et spec (ou
spec= si c'est le cas).
Il faut remarquer que, en pratique, les implementations et les specications sont de-crites en utilisant des formalismes de description divers, plus expressifs que lesstes (mais