M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie...

137
Notes de cours LOG3300 <1> <2> <x> <x> <x> <x> <x> <x> <x> <x> {1, 2} {1, 2} {1, 2} {1, 2} {1, 2} {1, 2} <c> <a> <b> {1, 2} X {a, b, c} <x, y> <y> {1, 2} X {a, b, c} <x, y> <y> {1, 2} X {a, b, c} M´ ethodes de sp´ ecification de logiciels Prof. John Mullins, Ph.D. epartement de g´ enie informatique Hiver 2005 c John Mullins, 2005

Transcript of M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie...

Page 1: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Notes de coursLOG3300

<1><2>

<x><x> <x>

<x><x>

<x>

<x>

<x>

{1, 2}

{1, 2}

{1, 2}{1, 2}

{1, 2}

{1, 2}

<c><a><b>

{1, 2} X {a, b, c}

<x, y><y>

{1, 2} X {a, b, c}

<x, y>

<y>

{1, 2} X {a, b, c}

Methodes de specification de logiciels

Prof. John Mullins, Ph.D.Departement de genie informatique

Hiver 2005

c©John Mullins, 2005

Page 2: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Table des matieres

I Partie introductive 1

1 Introduction 21.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Les methodes operationelles . . . . . . . . . . . . . . . . . . . 41.3 Les methodes logiques . . . . . . . . . . . . . . . . . . . . . . 51.4 Les methodes algebriques . . . . . . . . . . . . . . . . . . . . . 10

2 Mathematiques pour le genie logiciel 122.1 Propositions et predicats . . . . . . . . . . . . . . . . . . . . . 122.2 De l’usage des quantificateurs . . . . . . . . . . . . . . . . . . 132.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Les ensembles . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.5 Relations et fonctions . . . . . . . . . . . . . . . . . . . . . . . 172.6 Mots et langages . . . . . . . . . . . . . . . . . . . . . . . . . 182.7 Les graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.9 Definitions recursives et induction structurale . . . . . . . . . 23

II Methodes operationnelles 26

3 Les automates a etats finis 273.1 Ensembles et expressions regulieres . . . . . . . . . . . . . . . 273.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Definition d’un automate fini deterministe . . . . . . . . . . . 293.4 De la facon dont un AFD calcule . . . . . . . . . . . . . . . . 303.5 Extension de δ aux chaınes . . . . . . . . . . . . . . . . . . . . 303.6 Le langage reconnaissable par un AFD . . . . . . . . . . . . . 31

ii

Page 3: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

TABLE DES MATIERES iii

3.7 Les automates finis non-deterministes . . . . . . . . . . . . . . 313.8 Equivalence des AFD et des AFN . . . . . . . . . . . . . . . . 33

4 Les reseaux de Petri 344.1 Le modele de base . . . . . . . . . . . . . . . . . . . . . . . . 34

4.1.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . 344.1.2 Semantique . . . . . . . . . . . . . . . . . . . . . . . . 364.1.3 Representation algebrique . . . . . . . . . . . . . . . . 37

4.2 Proprietes des reseaux de Petri . . . . . . . . . . . . . . . . . 424.2.1 Les proprietes d’expansion bornee . . . . . . . . . . . . 424.2.2 Les proprietes de comportement . . . . . . . . . . . . . 43

4.3 Verification des proprietes . . . . . . . . . . . . . . . . . . . . 474.3.1 Analyse du graphe des marquages accessibles . . . . . . 474.3.2 Analyse structurelle . . . . . . . . . . . . . . . . . . . . 48

4.4 Quelques extensions au modele . . . . . . . . . . . . . . . . . 514.4.1 Les reseaux colores . . . . . . . . . . . . . . . . . . . . 514.4.2 Les reseaux a predicats . . . . . . . . . . . . . . . . . . 544.4.3 Les reseaux algebriques . . . . . . . . . . . . . . . . . . 57

4.5 Notes complementaires . . . . . . . . . . . . . . . . . . . . . . 584.6 Les reseaux colorees : formalisation . . . . . . . . . . . . . . . 59

4.6.1 Les multi-ensembles . . . . . . . . . . . . . . . . . . . . 594.6.2 Syntaxe des reseaux colores . . . . . . . . . . . . . . . 594.6.3 Semantique des reseaux colores . . . . . . . . . . . . . 614.6.4 Analyse des reseaux colores . . . . . . . . . . . . . . . 624.6.5 Le dıner des philosophes chinois . . . . . . . . . . . . . 63

5 Les automates communicants 645.1 Quelques exemples introductifs . . . . . . . . . . . . . . . . . 64

5.1.1 Une montre a affichage numerique . . . . . . . . . . . . 645.1.2 Un digicode . . . . . . . . . . . . . . . . . . . . . . . . 645.1.3 Un compteur modulo . . . . . . . . . . . . . . . . . . . 655.1.4 Un canal FIFO . . . . . . . . . . . . . . . . . . . . . . 665.1.5 Une variable . . . . . . . . . . . . . . . . . . . . . . . . 665.1.6 Un programme sequentiel . . . . . . . . . . . . . . . . 67

5.2 Systemes de transitions . . . . . . . . . . . . . . . . . . . . . . 675.3 Produit synchronise de systemes de transitions . . . . . . . . . 70

5.3.1 Le cas particulier des modules decouples . . . . . . . . 705.3.2 Le cas general . . . . . . . . . . . . . . . . . . . . . . . 71

Page 4: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

TABLE DES MATIERES iv

5.4 Synchronisation des systemes concurrents . . . . . . . . . . . . 725.4.1 Synchronisation par messages . . . . . . . . . . . . . . 725.4.2 Synchronisation par canal . . . . . . . . . . . . . . . . 745.4.3 Synchronisation par variables partagees . . . . . . . . . 75

6 Une breve introduction a SPIN 776.1 Un premier survol . . . . . . . . . . . . . . . . . . . . . . . . . 776.2 Le protocole de Dolev-Klawe-Rodeh . . . . . . . . . . . . . . . 796.3 Modelisation du protocole en PROMELA . . . . . . . . . . . . . 826.4 La verification d’assertions . . . . . . . . . . . . . . . . . . . . 84

III Specifications logiques 87

7 Logiques des systemes concurrents 887.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887.2 La logique propositionnelle . . . . . . . . . . . . . . . . . . . . 89

7.2.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . 897.2.2 Semantique . . . . . . . . . . . . . . . . . . . . . . . . 90

7.3 La logique temporelle lineaire . . . . . . . . . . . . . . . . . . 917.3.1 Notions preliminaires . . . . . . . . . . . . . . . . . . . 917.3.2 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . 937.3.3 Semantique . . . . . . . . . . . . . . . . . . . . . . . . 937.3.4 Operateurs temporaux auxilliaires . . . . . . . . . . . . 94

7.4 Model-checking, realisabilite et validite . . . . . . . . . . . . . 957.5 Application a la specification des requis des systemes concurrents 967.6 Classification des proprietes des systemes . . . . . . . . . . . . 997.7 Application a la specification des requis des modeles PROMELA101

8 Introduction au model-checking 1038.1 Notions preliminaires . . . . . . . . . . . . . . . . . . . . . . . 1038.2 Transformation du systeme en automate de Buchi . . . . . . . 1058.3 La construction du generateur des modeles d’une formule . . . 1068.4 L’algorithme de model-checking d’une formule de LTL . . . . . 1078.5 Calcul de l’intersection . . . . . . . . . . . . . . . . . . . . . . 1088.6 Le calcul du generateur des modeles par SPIN . . . . . . . . . 1098.7 Architecture du model-checker de SPIN . . . . . . . . . . . . . 110

Page 5: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

TABLE DES MATIERES v

IV Specifications algebriques 111

9 Specification des types abstraits (ADT) 1129.1 Exemple introductif : le type string . . . . . . . . . . . . . . 1129.2 Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

9.2.1 Quelques conventions sur les signatures . . . . . . . . . 1149.3 Variables et termes . . . . . . . . . . . . . . . . . . . . . . . . 1159.4 Substitution de termes . . . . . . . . . . . . . . . . . . . . . . 1169.5 Axiomatisations . . . . . . . . . . . . . . . . . . . . . . . . . . 1179.6 Modeles initiaux . . . . . . . . . . . . . . . . . . . . . . . . . 1209.7 Axiomes conditionnels positifs . . . . . . . . . . . . . . . . . . 1229.8 Raffinement d’une specification . . . . . . . . . . . . . . . . . 126

9.8.1 Completude hierarchique . . . . . . . . . . . . . . . . . 1269.8.2 Coherence hierarchique . . . . . . . . . . . . . . . . . . 127

9.9 Derivation d’equations entre termes generiques . . . . . . . . . 1289.10 Reecriture de termes . . . . . . . . . . . . . . . . . . . . . . . 1299.11 Breve revue de litterature . . . . . . . . . . . . . . . . . . . . 131

Page 6: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Premiere partie

Partie introductive

1

Page 7: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 1

Introduction

1.1 Motivation

Conception de systemes fiables Au cours de la derniere decennie, depuissants outils ont ete developpes pour verifier des specifications de logicielet de materiel. L’industrie des technologies de l’information realise de plusen plus l’importance de ces outils et de leur impact sur leurs propres pro-cessus de conception et d’implementation. Chez des multinationales commeSiemens, AT&T, Intel, pour ne nommer que celles-la, ces technologies sontactuellement a l’etude dans l’optique de les incorporer a leur processus deplanification et de production. Il y a donc besoin de rendre accessible, au-tant aux etudiants de premier cycle, qu’aux programmeurs industriels et auxetudiants de deuxieme cycle, une formation de base qui leur permettra d’ac-querir suffisamment de competences pour pouvoir utiliser et raisonner dansde tels contextes et ainsi faire face au rythme croissant des mutations desenvironnements professionnel. Il y a la un veritable defi pose a la commu-naute de la recherche, celui de transferer ces technologies a la communautedu developpement logiciel.

Specifier pour verifier La motivation principale de la specification dessystemes logiciels est la meme que celle de la specification de tout autreproduit de l’ingenierie : Specifier pour verifier . Toutefois, par opposition auxautres domaines de l’ingenierie ou le produit est reel et de dimension finie,obeissant a un nombre restreint de lois de la physique et dote d’un nombrede fonctionalites restreintes, le logiciel est un objet virtuel multi-fonctionnel

2

Page 8: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 3

infini regi par des lois mathematiques. La consequence immediate est queles methodes de specification les plus naturelles sont directement issues decelles que les mathematiques ont historiquement developpees pour decrire lesobjets mathematiques : l’algebre abstraite et ses fille naturelles, la logique etla theorie des automates.

Classification des methodes de specification On ne s’etonnera doncpas, qu’a la classification traditionnelle mais arbitraire des methodes de spe-cification :

Methodes informelles : Sans syntaxe ou semantique formelle (langue na-turelle – dessins – graphiques – tables – tableaux)

Methodes semi-formelles : Syntaxe formelle sans semantique formelle (dia-grammes structures)

Methodes formelles : Syntaxe et semantique formelle (et donc compilableset executables)

j’aie prefere une classification basee sur la classification traditionnelle desmethodes de la semantique des langages de programmation dont les methodesde specification sont issues :

– Les methodes operationnelles decrivent le futur systeme en specifiant lafacon dont il sera execute sur une machine abstraite ;

– Les methodes logiques, axiomatiques ou descriptives tentent de decrireun programme a partir d’une logique de programmes et de regles depreuve pour cette logique. Le sens du programme est definies induc-tivent sur la structure du programme. La methode de Floyd-Hoare estune de ces methodes ;

– Les methodes algebriques decrivent un systeme comme une Σ-algebreheterogene c’est-a-dire une collection d’ensembles appeles sortes surlesquels sont definies les signatures d’une serie d’operateurs. Le sens deces operateurs est donne sous forme d’equations algebriques appeleesaxiomes .

Chacune des trois categories de methodes decrites au paragraphe prece-dent fait l’objet d’une partie du cours.

Page 9: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 4

1.2 Les methodes operationelles

La modelisation des systemes sequentiels Le comportement d’un pro-gramme sequentiel P, peut toujours etre specifie par la fonction (unique !)

‖P‖ : Store→ Store

decrivant son effet sur la memoire d’une machine abstraite (par exemple unautomate) ou definie inductivement sur la structure syntaxique de P. Il s’agitdonc d’un modele compositionnel .

Composition des modeles sequentiels Etant donne des systemes se-quentiels S1 et S2 modelises respectivement par les fonctions M1 et M2 alorsle systeme global S1;S2 est modelise par la fonction M2 ◦M1.

Modelisation de la communication Une limitation importante des spe-cifications fonctionnelles est leur inaptitude a modeliser la communicationentre deux modules P1 et P2 de specification T1 et T2 respectivement :

D1T1−→R1

T−→D2

T2−→R2

possede au moins deux interpretations :

1. P1 produit un resultat et alors attend jusqua ce que P2 l’ait consomme(par rendez-vous).

2. P1 et P2 sont des processus autonomes qui s’effectuent a vitesses dif-ferentes (asynchrones) mais dotes d’un mecanisme de synchronisation(par file, par pipe non-borne, ... etc.) assurant par exemple qu’aucunedonnee ne sera perdue ou dupliquee ou encore qu’elles seront consom-mees par P2 dans l’ordre ou elles sont produites par P1.

Modelisation des systemes communicants L’introduction de la com-munication entre systemes autonomes introduit une concurrence, une courseentre les systemes et conduit au non determinisme. Prenons deux systemesautonomes S1 et S2 communicant par la variable partagee x et notons S1 ‖S2, le systeme global resultant de l’intercommunication entre S1 et S2. Si parexemple P1 est x := x+2, P1’ est x := x+1 ; x := x+1 et P2 est x := 0. Lavaleur de x a l’arret de P1 ‖ P2 peut etre soit 0, soit 2 tandis que la valeur dex a l’arret de P1’ ‖ P2 peut etre soit 0, soit 1, soit 2. Les differents resultats

Page 10: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 5

pour x dependent de l’ordre d’execution des enonces a l’interieur de P1 et P2ou de P1’ et P2. De plus, malgre que le comportement entree-sortie de P1 etP1’ soit de toute evidence le meme (augmenter la valeur de x de 2), il n’y aaucune garantie que ceci restera valide dans un contexte de communicationidentique (ici, P2).

Composition des modeles communicants Le premier probleme quenous resoudrons sera le suivant : Comment definir un modele (ou abstrac-tion) du systeme global communicant a partir des modeles M1 et M2 descomposantes ?

Objectifs de la premiere partie de ce cours Les objectifs de la premierepartie de ce cours sont :

– de vous familiariser avec la modelisation des comportements (opera-toires) des applications communicantes ;

– de vous initier a l’utilisation d’un outil de validation par test et simu-lation de votre modele (prototype).

1.3 Les methodes logiques

Specification logique des systemes sequentiels L’idee de Hoare, et deFloyd avant lui, est de decrire le comportement d’un programme sequentielP en donnant une description de l’etat des variables du P avant et apresl’execution de P par des formules logiques φ et ψ appelees respectivenet pre-condition et post-condition de P. ‖P‖ est alors notee par le triplet de Hoare :

{φ} P {ψ}

La logique propositionnelle La syntaxe des formules d’une telle logiqueappelee logique propositionnelle, est definie par :

φ ::= p | ¬φ |φ ∧ φ

ou p est une proposition atomique exprimant une relation entre la valeur desvariables avant ou apres l’execution de P (e.g. x = 2), ¬ denote la negationet ∧, la conjonction. Les autres connecteurs peuvent etre definis par φ∨ψ =¬(¬φ ∧ ¬ψ), true = φ ∨ ¬φ, false = ¬true et φ ⇒ ψ = ¬φ ∨ ψ. Poursimplifier, nous omettrons les quantificateurs universels et existentiels.

Page 11: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 6

Specification logique des systemes communicants Les systemes com-municants peuvent potentiellement interagir en tout point de leur executionet non seulement au debut au a la fin. Il n’est donc plus suffisant de les spe-cifier par une fonction de Store dans Store ou de facon equivalente, par untriplet de Hoare. Pire, habituellement de tels systemes ne se terminent ja-mais. L’arret est en fait une pathologie de ces systemes appelee blocage. Leurcomportement ne peut donc meme pas, dans la plupart des cas s’exprimerpar une simple relation entre Store et Store. Ceci est une caracteristiquefondamentale des specifications de ces systemes. Il faut donc etendre notrelogique de programme pour specifier ce qui arrive durant l’execution. La lo-gique temporelle est une de ces logiques.

La logique temporelle Considerons par exemple, un protocole de com-munication entre deux entites ou processus communicant par un canal bi-directionnel. Un tel protocole peut se specifier par un systeme d’etats et detransitions. Une propriete comme

Si le processus P envoie un message, alors il n’emettra plus demessage tant qu’il ne recevra pas d’accuse de reception

ne peut s’exprimer en termes de pre- et de post-condition. Afin de faciliter laspecification logique de ce type de proprietes, la logique propositionnelle peutetre etendue par des operateurs modaux qui font reference a l’evolution dusysteme dans le temps. U (jusqu’a) et G (toujours) sont des exemples detels operateurs qui font reference a des sequences d’etats (executions). φ U ψsignifie que la propriete φ sera valide dans tous les etats de la sequence jusqu’ace qu’un etat ou ψ est valide soit atteint et G φ signifie que φ sera valide danstous les etats de la sequence. On peut par exemple, formaliser la proprietedu protocole enoncee plus haut par :

G[sendP (m) ⇒ ¬(sendP (m′) U receiveP (ack)]

Autrement dit, si un message m est emit par P alors il n’y aura aucunetransmission par P d’un autre messagem′ jusqu’a ce qu’un accuse de receptionsoit recu par P. La logique temporelle permet egalement d’exprimer des ordresrelatifs d’execution d’actions par les composantes communicantes. Dans cecours, nous verrons comment specifier un systeme communicant a l’aide dela logique temporelle.

Illustrons de nouveau en utilisant un exemple plus simpliste. La figure 1.1est un modele ultra simplifie d’une machine a cafe. Ce systeme est suppose

Page 12: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 7

idle

ServingServed

M1

M2

?cents

?cents?back

?back

?push!served

Fig. 1.1 – Une machine a cafe tres abstraite

communiquer avec un environnement par le biais de signaux emis ou recus.Les etiquettes de la forme ?l sont des actions de reception de signaux, alorsque les actions !l sont des emissions. Les envois/receptions de tels messagespar le systeme provoquent des changements d’etat. On peut imaginer, parexemple, une synchronisation basee sur un mecanisme de rendez-vous (leschangements d’etas ne peuvent s’effectuer que si l’emission et la receptionsimultanee d’un message est possible).

On s’interesse a la question de savoir si de tels automates satisfont desproprietes comme par exemple

Chaque fois que j’ai mis deux 25 cents, alors, plus tard, j’obtien-drai un cafe

Ici encore, la logique propositionnelle qui nous permettait de specifier desproprietes d’etats du programme (e.g. l’entree et la sortie) ne suffit plus. Parexemple,

Money ⇒ Served

est une formule de la logique propositionnelle sur les variables proposition-nelles Money et Served tandis que

G(Money ⇒ FServed)

ou F φ signifie que φ sera finalement valide dans un etat de la sequence, estun enonce de la logique temporelle propositionnelle.

Et on en fera quoi de ces formules ? Nous l’avons deja lourdementsouligne :

Page 13: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 8

Specifier pour verifier

sera un leitmotiv recurrent de ce cours. Pour nous payer de retour de l’effortmis sur les specifications operationelles munies muni d’une semantique pre-cise et reposant sur des fondements mathematiques solides, nous obtiendronsgratis un prototype (executable) qui nous permettra de tester directementnotre modele. Ca pourra etre utile car meme un systeme communicant depetite taille peut etre tres complexe. Malheureusement, tester c’est bien maisce n’est pas tout. Rappelez vous cette formule :

Tester peut uniquement detecter la presence d’erreurs, jamais leurabsence

Dans le cas des systemes critiques ou complexes comme des systemes embar-ques de securite de centrales nucleaires, des protocoles de communication oudes protocole de securite bancaire, pour ne nommer que ceux la, la garantied’absence d’erreurs est souvent requise.

Verification formelle des proprietes des systemes sequentiels L’ideede Floyd-Hoare a ete de construire un systeme de preuves, c’est-a-dire unensemble de regles de preuve de la forme

{φ} S {ψ}

correspondant chacune a une construction S du programme. Les programmessequentiels sont construits inductivement selon la grammaire suivante :

S : := skip | x := E | S ;S | if B then S else S fi | while B do S od

Je rappelle ici uniquement la regle de l’iteration :

Iteration{φ ∧B} S {φ}

{φ} while Bdo S od {φ ∧ ¬B}

Cette regle stipule que le predicat φ est valide a l’arret de while B do S odsi la validite de φ est maintenue a chaque execution du corps de l’iterationS. Ceci explique pourquoi φ est appele invariant. La principale difficultedes preuves de programmes est de trouver les invariants appropries et cetterecherche complique singulierement l’automatisation de ce type de preuves.

Page 14: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 9

Verification formelle des proprietes des systemes communicantsDe facon similaire, on peut construire des regles de preuves pour la logiquetemporelle correspondant a une construction de programme communicantou les programmes sont construits inductivement selon la grammaire desprogrammes sequentiels etendue de la regle S‖S. Beaucoup d’efforts ont eteinvestis en ce sens. A cause de l’interaction entre les composantes, le sys-teme de preuves pour les programmes communicant par variables partageesou par passage de message est fort complique. Pour les systemes realistes, lespreuves sont tres grandes (de l’ordre de N ×M obligations de preuve pourun systeme forme de deux composantes autonomes de longueur N et M res-pectivement. Nous verrons pourquoi.) et requierent beaucoup d’interactionsavec l’usager (pour fournir notamment les invariants appropries) et ceci sanscompter que l’organisation des preuves d’une telle complexite dans une formecomprehensible est aussi tres difficile.

Verification automatique des proprietes temporelles Dans ce coursnous nous concentrerons sur une autre methode de verification, moins gene-rale certes car elle ne s’applique pas au cas des systemes infinis (en general,du moins). Elle a toutefois l’incommensurable merite d’etre en grande partieautomatisee : le model-checking. Elle vous viendra presqu’en prime avec lescompetences que vous aurez acquises dans la specification operationnelle dessystemes communicants et la specification logique de leurs proprietes tem-porelles. Le model-checking est en quelque sorte intermediaire entre le testet la preuve de programmes. Il s’agit d’une methode basee sur une explora-tion exhaustive des etats du systeme ou le travail de l’ingenieur se limite laconstruction d’un modele operationnel du systeme et a la formalisation desproprietes a verifier.

Nous illustrerons ici uniquement a partir de l’automate de la figure 1.1que l’on transforme de la facon suivante pour obtenir la structure des mo-deles : on ne tient pas compte des actions et on etiquette chacun des etatsde l’automate par un sous-ensemble de {M,S}. On obtient l’automate et lemarquage indique sur la figure 1.2. M est suppose indiquer que l’on a dejamis deux 25 cents dans la machine et S, que le cafe est servi.

Objectifs de la seconde partie du cours Les objectifs de la secondepartie du cours sont :

– de vous familiariser avec la modelisation des proprietes temporelles des

Page 15: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 10

~M, ~S

M, S M, ~S

~M, ~S

M, ~S

Fig. 1.2 – La structure des modeles de la machine a cafe

systemes communicants ;– de vous introduire aux principes du model-checking ;– de vous initier a l’utilisation d’un autil automatise de verification des

proprietes temporelles des systemes : le model-checker SPIN.

1.4 Les methodes algebriques

Et la specification des donnees ? Jusqu’a present, nous nous sommessurtout consacres a la specification des aspects operationnels (les etats, lesactions) et temporaux des systemes. L’approche algebrique elle, se concentresur la representation des structures de donnees et de leurs fonctions (types).Comme toutes les methodes formelles de developpement elle offre la possibi-lite de valider completement les etapes de programmation a partir du cadrebien defini fourni a l’etape de specification.

Specification algebrique des systemes L’approche algebrique est baseesur la definition des types i.e. d’ensembles de valeurs munis d’operateurs quipermettent de construire et de manipuler ces valeurs. Le contexte mathe-matique des specifications algebriques sont donc naturellement l’algebre uni-verselle appelee egalement logique equationnelle qui a justement pour objetd’etude les proprietes des structures algebriques (monoıdes, groupes, corps,espaces vectoriels). Ces structures peuvent egalement se definir comme desensembles de valeurs munis d’operateurs qui permettent de construire et demanipuler ces valeurs.

Page 16: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 1. INTRODUCTION 11

Objectifs de la derniere partie du cours Dans cette partie, nous ver-rons qu’a cause de son abstraction et de sa rigueur, l’algebre universelle sepresente a la fois comme un langage de specification des types appeles alorstypes abstraits algebriques (ADT) et de leurs proprietes. Notons toutefois queles specifications algebriques ne sont pas assez expressives pour decrire ni lesaspects lies au developpement du temps ni les notions d’etats. Aussi, Gurevicha-t-il introduit recemment une methode de specification appelee Amchine aEtats Algebriques qui conjugue l’aspect operationnel des machines a etatsa l’aspect algebrique des specifications algebriques. Si le temps le permet,nous introduirons ce modele et l’illustreons a partir d’etudes de cas tiresdes recherches actuellement menees sur le model-checking d’une extensionsecuritaire de UML/OCL au laboratoire de Conception et Realisation desApplications Critiques (CRAC) de l’Ecole Polytechnique dans le cadre duprojet SOCLe pour le compte du Ministere de la Defense.

Page 17: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 2

Mathematiques pour le genielogiciel

Ce chapitre presente les notions preliminaires de logique, de theorie desensembles, des langages et de la theorie dea graphes que nous utiliserons pourpresenter nos idees.

2.1 Propositions et predicats

Nous utiliserons les notations informelles suivantes. Un enonce, assertionou proposition est une condition qui possede une valeur de verite (soit vraie,soit fausse).

Les conditions qui contiennent des variables sont appeles predicats. Unpredicat devient une proposition lorsque les variables prennent des valeursparticulieres. P (x) denote un predicat en x, P (x, y) denote un predicat a deuxvariables x et y et plus generalement P (x1, x2, · · ·xn) denote un predicat a nvariables x1, x2, · · ·xn. Par exemple :

– le predicat P (x) defini par :

x ≤ 3

devient une proposition valide pour des valeurs de x inferieures ouegales a 3 et demeure invalide sinon.

– le predicat P (x, y) defini par :

(x ≤ 3) et (y ≤ 7)

12

Page 18: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 13

devient une proposition valide pour des valeurs de x et y inferieures ouegales a 3 et 7 respectivement et demeure invalide sinon.

– le predicat P (x) defini par :

il existe un entier y tel que x = y2

devient une proposition valide pour des valeurs de x qui sont des carresparfaits et demeure invalide sinon.

2.2 De l’usage des quantificateurs

Nous utiliserons egalement les quantificateurs existentiel ∃ (il existe) etuniversel ∀ (pour tout) comme simples abbreviations dans un style assezlibre. Par exemple :

– ∃xP (x) est l’enonce mis pour :

Il existe une valeur de x telle que P (x) est vrai

– ∀xP (x) est l’enonce mis pour :

Pour toute valeur de x, P (x) est vrai

– ∃x1,x2,...xnP (x1, x2, . . . xn) est l’enonce mis pour :

Il existe n valeurs de x1, x2, . . . xn resp. telles que P (x1, x2, . . . xn)est vrai

– ∀x1,x2,...xnP (x1, x2, . . . xn) est l’enonce mis pour :

Pour tout n-tuplet de valeurs de x1, x2, . . . xn resp., P (x1, x2, . . . xn)est vrai

ou encore, lorsqu’on veut specifier un ensemble X comme portee d’un quan-tificateur, on ecrira :

– ∀x∈XP (x) au lieu de∀xx ∈ X ⇒ P (x)

– ∃x∈XP (x) au lieu de∃xx ∈ X ∧ P (x).

Occasionnellement, pour signifier l’existence d’un objet unique satisfaisantP (x) on ecrira :

– ∃!xP (x) au lieu de

(∃xP (x)) ∧ (∀y,zP (y) ∧ P (z) ⇒ y = z)

Page 19: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 14

2.3 Exercices

1. On suppose les specifications suivantes :– Les symboles de predicats :

– S(x, y) : x est la soeur de y,– F (x, y) : x est le frere de y,– M(x, y) : x est le mari de y et– V (x, y) : x est plus vieux que y.

– Et les symboles de constantes :– j : Jean,– c : Charles et– m : Monique.

(a) Parmi les predicats suivants, lequel signifie “Charles est le beau-frere de Monique”?

i. F (c,m) ∧M(c,m).

ii. F (c,m) ∨M(c,m).

iii. Pour toute valeur de x et de y :

(S(x,m) ∧M(c, y)) → x = y.

iv. Il existe une valeur de x telle que :

((S(x,m) ∧M(c, x)) ∨ (M(x,m) ∧ F (c, x))).

v. Aucune de ces reponses.

(b) Quelle phrase parmi les suivante est exprimee par le predicat :

Pour toute valeur de x et de y : (S(x, j) ∧ S(y, j)) → V (x, y)

i. Jean a une soeur ainee.

ii. Toutes les soeurs de Jean sont plus vieilles que lui.

iii. Jean est plus vieux que ses soeurs.

iv. Une des soeurs de Jean est plus vieille qu’une autre.

v. Aucune de ces reponses.

Page 20: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 15

2.4 Les ensembles

Intuitivement, un ensemble est une collection d’objets appeles elementsou membres. On note a ∈ X l’appartenance d’un element a a l’ensembleX. On ecrit parfois {a, b, c, . . .} pour denoter l’ensemble forme des elementsa, b, c, . . .. Cette facon de denoter un ensemble est dite en extension ou parenumeration. Par exemple :

X = {1, 2, 3}

Y = {a, b, c}

Un ensemble peut egalement etre identifie par un predicat . Il est alorsforme des elements qui le verifient. On ecrit :

X = {x : P (x)}

pour signifier que l’ensemble X est forme tres precisement des elements xpour lesquels P (x) est vraie. Cette facon de denoter un ensemble est dite encomprehension. Par exemple :

X = {x : il existe un entier y tel que x = y2}

Un ensemble X est un sous-ensemble d’un ensemble Y (note X ⊆ Y )ssi 1 tout element de X est aussi un element de Y . Un ensemble est identifieuniquement par ses elements. Autrement dit, des ensembles X et Y sontegaux (note X = Y ) ssi tout element de X est aussi un element de Y etreciproquement.

Les principaux constructeurs La collection des ensembles est definieinductivement de la facon suivante a partir de l’ensemble vide (notee ∅), del’ensemble des entiers naturels (notee N) et de tout ensemble fini de symboles :

1. [Ensemble des parties] Si X est un ensemble alors l’ensemble dessous-ensembles de X

P(X) = {Y : Y ⊆ X}

est un ensemble appele ensemble des parties de X

1Mis pour si et seulement si

Page 21: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 16

2. [Ensemble indexe] Si I est un ensemble et si a tout i ∈ I estassocie un unique element xi (qui peut etre lui-meme un ensemble)alors l’ensemble

{xi : i ∈ I}

est appele ensemble indexe par I

3. [Union] Si X et Y sont des ensembles alors

X ∪ Y = {a : a ∈ X ou a ∈ Y }

est un ensemble

4. [Union unaire] Si X est un ensemble alors

⋃X = {a : Il existe x ∈ X tel que a ∈ x}

est un ensemble. Si X est indexe par I, on notera⋃X par

⋃i∈I xi.

5. [Intersection] Si X et Y sont des ensembles alors

X ∩ Y = {a : a ∈ X et a ∈ Y }

est un ensemble

6. [Intersection unaire] Si X est un ensemble alors

⋂X = {a : Pour tout x ∈ X, a ∈ x}

est un ensemble. Si X est indexe par I, on notera⋂X par

⋂i∈I xi.

7. [Produit] Si X et Y sont des ensembles alors

X × Y = {(a, b) : a ∈ X et b ∈ Y }

est un ensemble. (a, b) est appele paire ordonnee.

8. [Difference] Si X et Y sont des ensembles alors

X \ Y = {a : a ∈ X et b 6∈ Y }

est un ensemble.

Page 22: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 17

2.5 Relations et fonctions

Une relation binaire entre X et Y est un element de P(X × Y ). Etantdonnee une relation R ⊆ X×Y , on ecrira souvent xRy au lieu de (x, y) ∈ R.

Une fonction partielle de X dans Y est une relation f ⊆ X × Y telle quepour tout x ∈ X et y, y′ ∈ Y , si (x, y) ∈ f et (x, y′) ∈ f alors y = y′.

Une fonction (totale) f de X dans Y (notee f : X → Y ) est une fonctionpartielle telle que pour tout x ∈ X, il existe y ∈ Y tel que (x, y) ∈ f .On ecrira habituellement x 7→ y, y = f(x) ou tout simplement y = fx, enomettant la parenthese.

Soit deux relations R ⊆ X × Y et S ⊆ Y × Z alors la relation

S ◦R = {(x, z) ∈ X × Z : Il existe y ∈ Y tel que (x, y) ∈ R et (y, z) ∈ S}

est une relation entre X et Z appelee composition. Il est facile de montrerque la composition de deux fonctions est aussi une fonction. On note IdX ={(x, x) : x ∈ X}.

Une fonction f de X dans Y possede un inverse f−1 de Y dans X ssif ◦ f−1 = IdX . Les ensembles X et Y sont alors dits en correspondancebijective ou bijection. Tout ensemble en correspondance bijective avec N estdit de cardinalite denombrable ou tout simplement denombrable.

Les relations d’equivalence Une relation d’equivalence est une relationR ⊆ X ×X sur X qui est

– [reflexive] xRx, pour tout x ∈ X– [symetrique] Si xRy alors yRx, pour tout x, y ∈ X– [transitive] Si xRy et yRz alors xRz, pour tout x, y, z ∈ X.Soit R, une relation d’equivalence sur X alors l’ensemble

[x]R = {y ∈ X : yRx}

est appele la classe d’equivalence de x relativement a R. R induit sur X unepartition 2 X/R appelee quotient de X par R :

X/R = {[x]R : x ∈ X}

Exemple 1. Soit un ensemble de personnes donnees alors la relation estvoisin de est une relation d’equivalence

2Une partition d’un ensemble X est une famille {Xi} de sous-ensembles de X disjointsentre eux qui recouvrent X .

Page 23: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 18

Exemple 2. Soit p ∈ N et ≡p⊆ N × N, une relation binaire sur N defi-nie par x ≡p y si et seulement si (x mod p) = (y mod p) est une relationd’equivalence qui possede p classes d’equivalence.

Les operateurs de fermetures Soit R, une relation sur X. On definit Rn

inductivement comme suit :

R0 = IdX

Rn+1 = R ◦Rn

La fermeture transitive de R est definie par la relation

R+ =⋃

n∈N

Rn+1

et la fermeture reflexive transitive de R est definie par la relation

R∗ =⋃

n∈N

Rn

c’est-a-dire, R∗ = R+ ∪ IdX . Il s’agit de la plus petite relation d’equivalencequi contienne R.

Exemple 3. Soit un ensemble donne de personnes et la relation est enfantde que nous denoterons par R, definie sur cet ensemble. R2 correspond a larelation est le petit-enfant de, R3, a la relation est l’arriere petit-enfant deet R+, a la relation est le descendant de

2.6 Mots et langages

Soit Σ, un ensemble, appele alphabet et dont les elements sont appeleslettres ou symboles.

Mots Un mot sur Σ est une suite (ou chaıne) finie (ou infinie) d’elementsde Σ. Le mot vide est note ǫ. La longueur d’un mot u est notee |u|. ǫ estle mot de longueur nulle. L’ensemble des mots finis sur Σ est note Σ∗. Σ∗

est muni d’une operation binaire, la concatenation. La concatenation du motu avec le mot v et denotee u · v ou simplement uv en omettant le ·, est lemot obtenu en ajoutant v a la suite de u. Cette operation est associative etpossede le mot vide comme element neutre.

Page 24: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 19

Langages Une partie de Σ∗ est appelee langage sur Σ. Quelques exemples :– Si Σ = ∅ alors Σ∗ = {ǫ}– Si Σ = {1} alors Σ∗ est une autre representation des entiers munis de

l’addition. Il y a dans ce cas autant de langages sur Σ que de partiesde ω c’est-a dire autant que de nombres reels.

– Si Σ = {0, 1} alors Σ∗ est l’ensemble de tous les codes binaires.– En grossiere approximation, un programme peut etre vu comme un mot

sur l’alphabet des 128 symboles ASCII.

Constructeurs de langages On definit sur les langages les operationssuivantes :

– L’union : L ∪ L′

– L’intersection : L ∩ L′

– Le complement : L = Σ∗ \ L– La concatenation : LL′ = {uu′ : u ∈ L ∧ u′ ∈ L′}– La fermeture de Kleene : L∗ =

⋃n∈N

Ln ou

Ln = {u1u2 . . . un : u1, u2, . . . un ∈ L}

Pour a ∈ Σ, on notera le langage {a} par a simplement, en omettant lesparentheses.

Exemple 4. Soit X = {a, b, c} et Y = {abb, ba} alors

XY = {aabb, babb, cabb, aba, bba, cba}

X0 = ǫ

X2 = XX

= {aa, ab, ac, ba, bb, bc, ca, cb, cc}

X3 = XX2

= {aaa, aab, aac, aba, abb, abc, aca, acb, acc,

baa, bab, bac, bba, bbb, bbc, bca, bcb, bcc,

caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc}.

Exemple 5. Soit les langages L1 = {bb} et L2 = {ǫ, bb, bbbb}. Les langagesL∗

1 et L∗2 sont formes, tous les deux, de tous les mots sur l’alphabet {b} qui

contiennent un nombre pairs de b.

Page 25: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 20

Exemple 6. Le langage L1 = {a, b}∗{bb}{a, b}∗ est forme de tous les motssur l’alphabet {a, b} qui contiennent le facteur bb.

Exemple 7. Le langage {aa, ab, ba, bb}∗ est forme de tous les mots sur l’al-phabet {a, b} de longueur paire. Par consequent, {a, b}∗ \ {aa, ab, ba, bb}∗ estforme de tous les mots sur l’alphabet {a, b} de longueur impaire. De faconalternative, un mot de longueur impair peut etre vu comme un mot formed’une lettre suivi d’un mot de longueur paire : {a, b}{aa, ab, ba, bb}∗

2.7 Les graphes

Un graphe est une paire d’ensembles G = (V,E) ou V est l’ensemble dessommets et E ⊆ V × V , une relation sur les sommets dont les elements sontappeles aretes. Si E n’est pas symetrique, G est dit oriente. Une arete estalors representee par une fleche.

Un graphe etiquete est un quadruplet G = (V,E,D, L) ou V et E sontdefinis comme precedemment, D est un ensemble d’etiquettes et L : D → Dest une fonction etiquetant chaque fleche (s, r) de E par L(s, r). De facon al-ternative, on peut dans ce cas, redefinir les fleches comme des triplets (s, a, r)de V ×D × V dont la seconde projection a est la valeur de L(s, r).

Un chemin (fini ou infini) est une suite de sommets s0, s1, · · · , sn, · · · telleque pour tout i, (si, si+1) ∈ E. Un chemin peut etre vu comme un motsur l’alphabet V . En particulier, un chemin a une longueur (nulle, finie ouinfinie) qui est celle de ce mot. L’ensemble des chemins de longueur n corres-pond a En. Par consequent l’ensemble des chemins correspond a la fermeturetransitive de E :

E+ =⋃

n∈N

En+1.

On montre facilement que cette union n’a qu’un nombre fini de termes si-gnificatifs : si V contient p sommets alors En = Ep pour n ≥ p ; en effet,s’il existe un chemin entre deux sommets, il doit exister un chemin entre cesdeux sommets de longueur inferieure ou egale a p. On peut donc se limiter ap termes :

E+ =

p⋃

n=1

En.

La distance entre deux noeuds est la longueur du plus court chemin entreces deux noeuds. Un chemin est simple si aucun de ses sommets n’apparait

Page 26: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 21

plus d’une fois. Il existe cependant un algorithme beaucoup plus efficace, ditalgorithme de Floyd-Warshall pour le calcul de la fermeture transitive.

Un cycle est un chemin qui commence et se termine par le meme sommet.On voit facilement qu’un graphe contient un cycle si et seulement s’il existeun sommet v tel (v, v) ∈ E+.

Un ensemble V ′ ⊆ V de sommets de G est fortement connexe si pourtoute paire (v, v′) de sommets de V ′, il existe un chemin de v a v′ donttous les sommets sont dans V ′. Une composante fortement connexe est unensemble fortement connexe maximal. Par exemple, le graphe de la figure 2.1possede quatre composantes fortement connexes : C1 = {r1, r2, r3}, C2 = {r4}et C3 = {r5, r6, r7, r8, r9}. Il existe plusieurs algorithmes pour le calcul descomposantes fortement connexes. Par exemple, pour tester si v et v′ sontdans la meme composante fortement connexe, il faut et il suffit de verifier si(v, v′) et (v′, v) sont dans E+. Il existe cependant un algorithme beaucoupplus efficace pour le calcul des composantes fortement connexe : l’algorithmede de Tarjan.

r1 r2

r3

r4

r5 r6

r7r8

r9

Fig. 2.1 – Un graphe a 3 composantes fortement connexes

Un arbre est un graphe oriente et sans cycle avec un sommet sans flecheentrante appele racine tandis que tous les autres ont exactement une seulefleche entrante. Il y a donc de la racine a tout autre sommet, un et un seulchemin. Le degre d’un noeud est son nombre de fleches sortantes. L’ensembledes sommets a distance n de la racine est appele le niveau n. Un somet sansfleche sortante est appele feuille.

Soit un graphe G = (V,E), V , un ensemble d’etiquettes et un marquage

L : V → V de V . Le depliage de G pour un sommet v ∈ V est un arbre

Page 27: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 22

T = (v, V , E, L) tel que :– La racine est etiquetee par L(v) ;

– Si r ∈ V avec L(r) = s et si s a m fleches sortantes vers les sommetss1, s2, . . . , sm dans G alors r a exactement m fils r1, r2, . . . , rm etiquetespar s1, s2, . . . , sm respectivement.

Un resultat fondamental sur les arbres :

Theoreme 8 (Lemme de Konig). Tout arbre infini dont tous les sommetssont de degre fini possede un chemin infini.

2.8 Exercices

1. Pour chacune des relations suivantes sur l’ensemble {1, 2, 3}, indiquezquelles proprietes parmi la reflexivite, la symetrie et la transitivite sontsatisfaites.

(a) R1 = {(1, 3), (3, 1), (2, 2)}

(b) R2 = {(1, 1), (2, 2), (3, 3), (1, 2)}

(c) ∅

2. Calculez la fermeture transitive de chacune des relations de l’exerciceprecedent.

3. SoitX, un ensemble fini et R, une relation surX. Ecrivez un algorithmequi prenne R en entree et retourne la fermeture transitive de R.

4. Exprimez le langage sur {a, b} des mots sur contenant exactement deuxb en utilisant des constructeurs de langages.

5. Exprimez le langage sur {a, b, c} des mots contenant bc en utilisant desconstructeurs de langages.

6. Exprimez le langage sur {a, b, c} des mots ne contenant pas bc en uti-lisant des constructeurs de langages.

7. Donnez un algorithme qui calcule l’ensemble des sommets d’un graphesaccessibles a partir d’un sommet donnee s.

Page 28: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 23

2.9 Definitions recursives et induction struc-

turale

Les objets infinis sont souvent specifies comme des structures recursivesau sujet desquelles on a souvent besoin de verifier la validite d’enonces. Lesstructures de donnees comme par exemple les piles, les files, les arbres ouencore les expressions arithmetiques bien formees d’un langage de program-mation et meme les programmes syntaxiquement corrects d’un langage deprogrammation. Comme dans le cas de l’induction mathematique sur les en-tiers, toutes les definitions recursives ont un cas de base ou une ou plusieursstructures elementaires ou atomiques sont definies, et un pas d’induction quidonne la loi de construction de structures plus complexes en termes de struc-tures moins complexes et donc prealablement definies.

Exemple 9. Voici la definition recursive d’un arbre :

Base Un graphe compose d’un seul sommet appele racine, est un arbre.

Induction Si T1, T2, . . . , Tk sont des arbres alors le graphe forme :

1. d’un nouveau sommet N ,

2. de copies de T1, T2, . . . , Tk,

3. de nouveaux arcs du sommet N a chacune des racines des arbresT1, T2, . . . , Tk

est un arbre.

Exemple 10. Voici la definition recursive d’expressions arithmetiques simplesqui utilisent l’addition + et la multiplication ∗ comme operateurs et de nombresou de variables comme operandes.

Base : Un nombre ou une variable est une expression.

Induction : Si E et F sont des expressions alors E +F , E ∗F et (E) sontdes expressions

Lorsque l’on a des definitions recursives, on peut montrer des proprietessur les structures ainsi definies en utilisant une methode de preuve appeleeinduction structurale. Soit P (X), la propriete des structures X definies apartir d’une definition recursive particuliere.

1. Comme base d’induction, on prouve que P (X) est valide lorsque Xvarie sur les structures atomiques.

Page 29: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 24

2. Comme pas d’induction, on suppose une structure X formee des struc-tures Y1, Y2, . . . , Yk telles que P (Y1), P (Y2), . . . , P (Yk) sont valides (Hy-pothese d’induction) et on prouve que P (X) est valide.

On peut alors deduire que P (X) est valide pour toute structure X.Les theoremes suivant sont des exemples de proprietes qui peuvent etre

prouvees de cette facon :

Theoreme 11. Tout arbre a exactement un sommet de plus que d’arcs.

Demonstration. On veut montrer P (T ) ≡ n = e+ 1 stipulant que :

Si T est un arbre de n sommets et e arcs alors n = e+ 1.

Base : Dans le cas ou T est forme d’un seul sommet alors n = 1 et e = 0.

Pas d’induction : Soit T forme de la racineN et des sous-arbres T1, T2, . . . , Tk.Supposons P (Ti) pour chacun des sous-arbres Ti (pour 1 ≤ i ≤ k) i.e. si Ti ani sommets et ei arcs alors ni = ei + 1. On a :

n = n1 + n2 + · · ·+ nk + 1

= (e1 + 1) + (e2 + 1) + · · · (ek + 1) + 1

= e1 + e2 + · · ·+ ek + k + 1

= e+ 1

Theoreme 12. Toute expression arithmetique a le meme nombre de paren-theses ouvrantes que de parentheses fermantes.

Demonstration. SoitG, une expression, on doit montrer P (G) ≡ G a le memenombre de parentheses ouvrantes que de parentheses fermantes.

Base : Si G est un nombre ou une variable alors elle possede 0 parenthesesouvrantes et 0 parentheses fermantes.

Page 30: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 2. MATHEMATIQUES POUR LE GENIE LOGICIEL 25

Induction : Il y a trois regles possibles a partir desquelles G a pu etreconstruite :

1. G = E + F .

2. G = E ∗ F .

3. G = (E).

On suppose (hypothese d’induction) que P (E) et P (F ) sont satisfaites i.e.que E et F ont le meme nombre de parentheses ouvrantes que de parenthesesfermantes (disons n pour E et m, pour F ). Calculons maintenant le nombrede parentheses ouvrantes et de parentheses fermantes de G pour chacun destrois cas de construction de G :

1. SiG = E+F alorsG a n+m parentheses ouvrantes et n+m parenthesesfermantes.

2. G = E ∗F alors G a n+m parentheses ouvrantes et n+m parenthesesfermantes.

3. G = (E) alors G a n + 1 parentheses ouvrantes et n + 1 parenthesesfermantes.

Page 31: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Deuxieme partie

Methodes operationnelles

26

Page 32: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 3

Les automates a etats finis

Parmi les artefacts utilises, les machines a etats finis ou automates fi-nis sont particulierement utiles pour encapsuler la description des differentesexecutions du systeme de maniere compacte. Plusieurs systemes et metho-dologies de conception sont bases sur ce modele ou une extension de celui-ci.Il est particulierement bien adapte pour decrire le comportement dynamiqued’un systeme. Depuis leur introduction a la fin des annees ’50 pour modeliserle comportement des neurones, l’automate fini a fait l’objet de tres nom-breuses etudes theoriques et applications pratiques. De plus en plus d’outilsautomatises d’aide a la conception (UML) au test (TestMaster) et au model-checking (COSPAN, SPIN MURPHY) l’utilisent pour la simulation, le testou la verification.

Il existe plusieurs variantes d’automates finis. Par soucis de simplicite,nous nous contenterons de definir le modele de base.

3.1 Ensembles et expressions regulieres

Au chapitre 2, nous avons vu comment comment construire de nouveauxlangages en appliquant certains patrons de constructions aux mots de lan-gages deja existants. Cette approche est poursuivie dans cette section maiscette fois, en determinant les langages de base ainsi que les constructeurs delangages utilises.

Un langage est regulier si et seulement s’il peut etre genere en un nombrefini d’applications de l’union, de la concatenation ou de l’etoile de Kleene apartir du langage vide, de la chaıne vide et des lettres de l’alphabet.

27

Page 33: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 3. LES AUTOMATES A ETATS FINIS 28

1. ∅u = u∅ = u

2. ǫu = uǫ = u

3. ∅∗ = ǫ

4. ǫ∗ = ǫ

5. u + v = v + u

6. u + ∅ = u

7. u + u = u

8. u∗ = (u∗)∗

9. u(v + w) = uv + uw

10. (u + v)w = uw + vw

11. (uv)∗u = u(vu)∗

12. (u + v)∗ = (u∗ + v)∗

= u∗(u + v)∗ = (u + vu∗)∗

= (u∗v∗)∗ = u∗(vu∗)∗

= (u∗v)∗u∗

Fig. 3.1 – Identites sur les expressions regulieres

Il est usuel de simplifier la formule explicite decrivant un langage regulieren laissant tomber les accolades ou en les remplacant par des parentheses eten remplacant ∪ par +. On obtient alors une expression reguliere.

Exemple 13. L’ expression reguliere

b∗(ab+)∗ + b∗(ab+)∗a

represente l’ensemble de tous les mots sur {a, b} qui ne contiennent pas lefacteur aa.

Notez ici que l’expression u+ est reguliere car u+ = uu∗. Notez aussique la definition d’un langage par une expression reguliere n’est pas unique.Deux expressions qui representent le meme langage sont dites equivalentes .Les identites donnees a la figure 3.1 peuvent etre utilisees pour manipuleralgebriquement les expressions regulieres et obtenir des expressions equiva-lentes.

Exemple 14. L’expression de l’exemple 13 peut etre simplifiee a l’aide desidentites de la figure 3.1 de la facon suivante :

b∗(ab+)∗ + b∗(ab+)∗a = b∗(ab+)∗(ǫ+ a)

Page 34: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 3. LES AUTOMATES A ETATS FINIS 29

= b∗(abb∗)∗(ǫ+ a)

= (b+ ab)∗(ǫ+ a).

3.2 Exercices

1. Montrez que le langage {b}{a}{a, b}∗{a}{b} est regulier.

2. Montrez que le langage {bwab : w ∈ {a, b}∗} est regulier.

3. Donnez une expression reguliere pour le langage sur {a, b} des motscontenant exactement deux b.

4. Donnez une expression reguliere pour le langage sur {a, b} des motscontenant bc.

5. Donnez une expression reguliere pour le langage sur {a, b} des mots necontenant pas bc.

3.3 Definition d’un automate fini deterministe

Un automate fini deterministe (AFD) est la donnee de :

1. Un ensemble fini d’etats denote S

2. Un ensemble fini de symboles d’entree denote Σ

3. Une fonction de transition qui prend en argument un etat et un symboled’entree et retourne un etat. On la denote par δ.

On peut representer cette fonction de transition par un graphe dontles sommets sont etiquetes par les etats et les arcs, par des symbolesde Σ : il y a un arc etiquete par le symbole a d’un etat p a un etatq si et seulement si δ(p, a) = q. On appelle ce graphe diagramme detransitions.

On peut egalement representer δ par une table de transitions ou leslignes correspondent aux etats et les colonnes, aux symboles. L’entreepour la ligne correspondant a l’etat s et la colonne correspondant ausymbole a est δ(q, a).

4. Un etat initial denote s0

5. Un ensemble F d’etats finaux ou acceptants avec F ⊆ S

Page 35: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 3. LES AUTOMATES A ETATS FINIS 30

La facon plus compacte de specifier un AFD est de donner la liste descinq composantes ci-dessus, liste que l’on notera souvent par le quintuplet :

A = (S,Σ, δ, q0, F ).

3.4 De la facon dont un AFD calcule

Essentiellement, un AFD decide s’il accepte ou non une chaıne de Σ∗. Lelangage reconnaissable ou accepte par un AFD A est le langage forme deschaınes qu’il accepte. On note ce langage par L(A). Supposons que la chaıned’entree est a1a2 . . . an. On part de q0 on consulte δ, disons que δ(q0, a1) = q1qui nous indique qu’apres avoir lu a1 A entre dans l’etat q1. On lit maintenanta2, on evalue δ(q1, a2), supposons que cette valeur vaut q3. De cette facon ontrouvera une suite d’etats q3, q4, . . . , qn telle que δ(qi−1, ai) = qi. Si qn ∈ Falors a1a2 . . . an est acceptee et sinon, elle est rejetee.

Exemple 15. Specifions le AFD qui reconnait n’importe quelle chaıne de 0et de 1 qui contienne la suite 01.

3.5 Extension de δ aux chaınes

Informellement, le langage reconnaissable par un AFD est l’ensemble detoutes les chaınes formees des etiquettes des transitions le long des cheminspartant de l’etat initial a un etat acceptant. Pour en donner une definitionplus precise, on definit une fonction de transition etendue ∆ decrivant l’etatatteint de n’importe quel etat apres la lecture de n’importe quelle chaıne. Ladefinition se fait par induction sur la longueur de la chaıne d’entree :

– ∆(q, ǫ) = q– ∆(q, xa) = δ(∆(q, x), a)

Exemple 16. Specifions le AFD qui reconnait n’importe quelle chaıne de0 et de 1 qui contienne un nombre pair de 0 et de 1. La verification que∆(q0, 110101) = q0 exige de calculer ∆(q0, w) pour tout prefixe w de 110101.

Page 36: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 3. LES AUTOMATES A ETATS FINIS 31

3.6 Le langage reconnaissable par un AFD

Soit A = (S,Σ, δ, q0, F ), un AFD. N ous sommes maintenant en mesurede donner une definition precise au langage L(A) reconnaissable par A :

L(A) = {w ∈ Σ∗ : ∆(q0, w) ∈ F}

Le resultat fondamental sur les langages reconnaissables par AFD estdonne par le theoreme suivant :

Theoreme 17 (Kleene). Un langage est reconnaissable par un AFD si etseulement s’il est regulier.

3.7 Les automates finis non-deterministes

Un automate fini non-deterministe (AFN) est un quadruplet

A = (S,Σ, δ, q0, F ).

ou S,Σ, qo, F sont definis comme dans le cas deterministe mais ou δ ⊆ S ×Σ × S ou de facon analogue, δ : S × Σ → P(S).

L’extension ∆ de δ aux chaınes se definit inductivement sur Σ∗ commesuit :

– ∆(q, ǫ) = {q}– Soit w = xa ou x ∈ Σ∗ et a ∈ Σ alors

∆(q, w) = {r1, r2, . . . , rm}

ou ∆(q, x) = {p1, p2, . . . , pk} et⋃k

i=1 δ(pi, a) = {r1, r2, . . . , rm}Dans le cas non-deterministe, un mot est reconnu par A s’il existe un calcul,c’est-a-dire une suite de choix d’etat suivant en lisant w de l’etat initial a unetat final. Formellement :

L(A) = {w ∈ Σ∗ : ∆(q0, w) ∩ F 6= ∅}.

Exemple 18. L’automate dont la table de transitions est donnee par :

0 1

→ q0 {q0, q1} {q0}q1 ∅ {q2}

∗q2 ∅ ∅

Page 37: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 3. LES AUTOMATES A ETATS FINIS 32

accepte toutes les chaınes de 0 et de 1 qui se terminent par 01. Voici ce quiarive lorsque l’automate recoit en entree la chaıne 00101

q00

−→{q0, q1}0

−→{q0, q1}1

−→{q0, q2}0

−→{q0, q1}1

−→{q0, q2}

Page 38: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 3. LES AUTOMATES A ETATS FINIS 33

3.8 Equivalence des AFD et des AFN

L’expressivite des AFN n’est pas superieure a celle des AFD. Il est eneffet possible de transformer tout AFN en un AFD qui reconnait le memelangage en utilisant une “construction” importante appelee construction dessous-ensembles :

La construction se fait a partir d’un AFN N = (SN ,Σ, δN , q0, FN ) et apour but de construire un AFD D = (SD,Σ, δD, {q0}, FD) tel que L(D) =L(N ). Les composantes de D sont construites de la maniere suivante :

– SD = P(SN )– FD = {Q ∈ P(SN ) : Q ∩ FN 6= ∅}– Pour chaque Q ⊆ SN et chaque a ∈ Σ,

δD(Q, a) =⋃

q∈Q

δN (q, a)

Exemple 19. Soit N l’automate de l’exemple 18 qui accepte toutes leschaınes qui se terminent par 01. Puique SN = {q0, q1, q2}, la constructionpar sous-ensembles produira un automate a 8 etats correspondant a tous lessous-ensembles d’un ensemble de 3 elements. La table de transitions de ces8 etats est donnee par :

0 1

∅ ∅ ∅→ {q0} {q0, q1} {q0}

{q1} ∅ {q2}∗{q2} ∅ ∅

{q0, q1} {q0, q1} {q0, q2}∗{q0, q2} {q0, q1} {q0}∗{q1, q2} ∅ {q2}

∗{q0, q1, q2} {q0, q1} {q0, q2}

Page 39: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 4

Les reseaux de Petri

L’automate est fondamentalement un modele de calcul sequentiel. D’autresmodeles sont necessaires pour la description des systemes concurrents. Lesreseaux de Petri appartiennent a cette classe de modeles.

La caracteristique fondamentale des reseaux de Petri est qu’ils respectentl’independance causale entre les evenements en imposant sur ces evenementsune relation explicite d’ordre partiel.

Specifier pour verifier J’y reviens encore. Les representations en reseauxpermettent d’une part un prototypage automatique (pour simuler et tester)et d’autre part la verification des proprietes requises au systeme soit parmodel-checking, soit formellement, en appliquant les methodes de preuve ap-propriees issues de la theorie des reseaux de Petri.

4.1 Le modele de base

4.1.1 Syntaxe

Un reseau places/transitions est un quadruplet (P, T, pre, post) ou :– P est un ensemble fini de places– T est un ensemble fini de transitions– pre est une application appelee application d’incidence avant :

pre : P × T → N

determinant un ensemble fini d’arcs ponderes connectant une place aune transition

34

Page 40: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 35

P

Q R

tb

ta tc5 5

5

3

23

4

2

Fig. 4.1 – Representation d’un reseau de Petri

– post est une application appelee application d’incidence arriere :

post : P × T → N

determinant un ensemble fini d’arcs ponderes connectant une transitiona une place

La definition est illustree a la figure 4.1. Les cercles representent les placeset les boıtes, les transitions. La valeur pre(p, t) est representee par un arc dep a t pondere par pre(p, t) et dualement, La valeur post(p, t) est representeepar un arc de t a p pondere par post(p, t). Convenons qu’un arc pondere par0 n’est pas represente et qu’un arc pondere par 1 n’est pas etiquete.

Entree/Sortie Une place p est une place de sortie pour une transition t si

post(p, t) > 0

c’est-a-dire si p est en aval de t et dualement, une place p est une placed’entree pour une transition t si

pre(p, t) > 0

c’est-a-dire si p est en amont de t.

Marquage Un etat du reseau est completement specifie par une fonctionM : P → N appelee marquage determinant une assignation du nombre dejetons M(p) a chaque place p.

Page 41: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 36

4.1.2 Semantique

Transition tirable Une transition t est tirable ou franchissable depuis unmarquage M si chacune de ses entrees p possede au moins pre(p, t) jetonsc’est-a-dire :

∀p∈PM(p) ≥ pre(p, t)

et on note Mt

−→.

Franchissement d’une transition Lorsqu’une transition t est franchieou tiree depuis M , chaque entree p perd pre(p, t) jetons et chaque sortie pen gagne post(p, t) produisant ainsi un nouveau marquage M ′ tel que

∀p∈PM′(p) = M(p) − pre(p, t) + post(p, t) (4.1)

Le franchissement d’une transition t depuis un marquageM vers un marquage

M ′ est note Mt

−→M ′. On dit aussi que M ′ est directement accessible de M .

Marquage accessible Un marquage M ′ est accessible a partir d ’un mar-quage M (note M

∗−→M ′) s’il existe une sequence de tirs (ou de franchisse-

ments)

M = M1t1−→M2

t2−→· · ·tn−1

−→Mn = M ′.

(que l’on notera aussiM

s−→M ′

ou s = t1t2 . . . tn−1). Un marquage est accessible s’il est accessible a partird’un marquage initial M0 fixe.

Graphe des marquages accessibles Le graphe des marquages est legraphe oriente et etiquete dont les sommets sont les marquages accessibleset les arcs, les transitions entre marquages directement accessibles. Il y a un

arc de M a M ′ etiquete par t si et seulement si Mt

−→M ′.

Comportement d’un reseau Le comportement d’un reseau est caracte-rise par ses traces, c’est-a-dire l’ensemble de toutes ses sequences de franchis-sements appele langage du reseau.

Non determinisme Le modele est non deterministe puisqu’a partir d’unmarquage initial plusieurs evolutions du reseau sont possibles.

Page 42: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 37

Modelisation des systemes concurrents Avant d’approfondir notre etudedu comportement des reseaux de Petri, voici une interpretation des reseauxde Petri comme modele des systemes concurrents. Habituellement, une tran-sition specifie un evenement ou une action et son franchissement specifie uneoccurrence de l’evenement ou une execution de l’action. La presence de jetonsdans une place, denote l’existence d’une condition. Par exemple, une placepeut modeliser une ressource generique. tandis que les jetons associes de-notent le nombre d’instances disponibles de la ressource. Une transition esttirable lorsque toutes les pre-conditions d’execution d’une action ou d’uneoccurrence d’un evenement sont satisfaites. La figure 4.2 est un modele del’algorithme d’exclusion mutuelle de Peterson. Le jeton en P3 garde l’accesa la section critique de P1 et P2. Les transitions t1 et t2 sont dites causa-lement independantes puisque, comme l’illustrent les figures 4.3, 4.4 et 4.5,elles peuvent, de facon non deterministe, se franchir a tour de role et dansn’importe quel ordre ou simultanement. Autrement dit, le tir de t1 ne per-turbe en rien la tirabilite de t2 et reciproquement. L’independance causaleest une notion atomique dans reseaux de Petri. Elle ne peut se formuler entermes des autres mecanismes de synchronisation. Les transitions t3 et t4

sont toutefois en conflit et ne peuvent se produire simultanement.

4.1.3 Representation algebrique

Le fonctionnement des reseaux de Petri possede une description algebriqueelegante qui simplifie singulierement leur implementation. Nous illustreronsa l’aide du reseau de la figure 4.6.

L’application d’incidence avant (resp. arriere) peut se representer sousforme matricielle (mij) ou mij = pre(i, j) (resp. post(i, j)). Dans cette repre-sentation, un marquage M correspond a un vecteur. Soit

C = post− pre

alors l’equation 4.3 decrivant le franchissement de t depuis M a M ′ peuts’exprimer fort elegamment sous la forme matricielle suivante :

M ′ = M + Ct (4.2)

ou Ct est le vecteur de la colonne de C indicee par t.

Pre =

5 1 50 3 00 0 5

Post =

0 0 42 2 00 3 0

Page 43: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 38

P1

P4

P6

P3

P2

P5

P7

t1 t2

t3 t4

t5 t6

Fig. 4.2 – Modele de l’algorithme de Peterson : un marquage initial

Page 44: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 39

P1

P4•

P6

P3

P2

P5

P7

t1 t2

t3 t4

t5 t6

Fig. 4.3 – t1 est franchie depuis le marquage initial (cf. fig. 4.2)

Page 45: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 40

P1

P4

P6

P3

P2

P5 •

P7

t1 t2

t3 t4

t5 t6

Fig. 4.4 – t2 est franchie depuis le marquage initial (cf. fig. 4.2)

Page 46: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 41

P1

P4•

P6

P3

P2

P5 •

P7

t1 t2

t3 t4

t5 t6

Fig. 4.5 – t1 et t2 sont franchies simultanement depuis le marquage initial(cf. fig. 4.2)

P

Q R

tb

ta tc5 5

5

3

23

4

2

Fig. 4.6 – Un autre exemple

Page 47: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 42

dans le marquage MT = (2, 4, 0). Calculons le marquage M ′ atteint apres letir de la transition tb :

M ′ =

240

+

−5 −1 −1

2 −1 00 3 −5

010

=

240

+

−1−1−3

=

133

Soit maintenant une sequence de tirs s = t1t2 . . . tn de M a M ′ alors eniterant l’application de l’equation 4.2, on obtient

M ′ = M + C~s

avec ~s : T → N ou ~s(t) = le nombre d’occurrences de t dans s. ~s est appelevecteur caracteristique de s.

Par exemple, le marquage MT = (8, 3, 2) du reseau illustre a la figure 4.1permet le franchissement de la sequence s = tbtctatb. Le marquage M ′ atteintest donne par :

~M ′ =

832

+

−5 −1 −1

2 −1 00 3 −5

121

4.2 Proprietes des reseaux de Petri

Les proprietes inherentes aux systemes concurrents que les resaux de Petripermettent de verifier sont de deux ordres :

– Les proprietes d’expansion du reseau– Les proprietes des sequences de tirs du reseau

4.2.1 Les proprietes d’expansion bornee

Les proprietes d’expansion du reseau visent a s’assurer du caractere fini ouinfini du graphe des marquages accessibles. Comme un etat est completementcaracterise par un marquage et que l’ensemble des places est fini, la proprietede finitude du reseau est assuree si et seulement si le nombre de jetons quepeut accumuler une place au cours de l’evolution du reseau est borne.

Definition 20. Une place p est bornee s’il existe un entier k tel que pourtout marquage accessible M , la valeur de M(p) est bornee par k :

∃k∈N∀M :P→N

(M0

∗−→M ⇒M(p) ≤ k

)

Page 48: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 43

On dira alors que p est k-bornee. Un reseau est borne si toutes ses placessont bornees.

Non seulement les graphes des marquages accessibles nous permettentd’appliquer au reseau des methodes d’analyse completement automatiseesdeveloppees dans le cadre des automates communicants mais, dans certainscas, l’accumulation non bornee des jetons peut etre symptome d’une patho-logie de fonctionnement specifie. Pensez par exemple a un systeme de planifi-cation de la collecte des ordures menageres. Un modele non borne signifieraitl’accumulation quelque part dans le reseau, d’ordures jamais elimines.

Le deni de service Un autre exemple de dysfonctionnement du a l’ex-pansion non bornee qui devient le cauchemar des concepteurs et des utilisa-teurs est le deni de service. Le deni de service est une consequence directede l’accroissement exponentiel de la communications de nos systemes avecd’autres que nous connaissons de moins en moins. Nos systemes deviennentdonc de plus en plus vulnerables a des attaques hostiles de ces systemesetrangers. Le deni de service est une de ces attaques. Il tire avantage dufait que de nombreux protocoles d’authentification ne posent aucune bornesur le nombre de requetes, pour mobiliser nos ressources et engorger nos ser-veurs. Certains principes de conception des protocoles d’authentification sonten voie d’elaboration pour contrer ce type d’attaques. Ils visent tous en lamise au point de mecanismes operationnels visant a controler l’expansion dessystemes clients/serveur .

4.2.2 Les proprietes de comportement

Il existe deux types de proprietes de comportement :– Les proprietes des marquages accessibles– Les proprietes de transitions accessibles.

Blocage

L’absence de blocage est une propriete du graphe des marquages acces-sibles. Il s’agit d’une propriete essentielle des reseaux de Petri. Elle assureque le reseau pourra toujours progresser.

Un reseau est sans blocage si l’ensembles des marquages directement ac-cessibles de tout marquage accessible est non vide. Plus formellement :

Page 49: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 44

Definition 21. Un reseau est sans blocage si la condition suivante est sa-tisfaite :

∀M∃M ′,t

(M0

∗−→M ⇒M ′ t

−→)

La figure 4.7 illustre un reseau marque avec blocage. En effet, la sequencede tirs t1t3′t2t4′ mene a un marquage sans marquage directement accessible.

Vivacite

La vivacite est une propriete plus forte que l’absence de blocage. La vi-vacite est une propriete de transitions. Une transition t est accessible d’unmarquage M s’il existe un marquage M ′ accessible de M duquel t soit tirable.Plus formellement :

Definition 22. Une transition t est accessible d’un marquage M si la condi-tion suivante est satisfaite :

∃M ′

(M

∗−→M ′ et M ′ t

−→)

Nous dirons qu’une transition est accessible, si elle est accessible du mar-quage initial. L’accessibilite d’une transition nous assure qu’elle sera tirableau moins une fois. L’accessibilite d’une transition n’assure en rien qu’ellepourrait ne plus l’etre a partir d’un cerain stade de l’evolution du reseau.La vivacite assure cela. Plus exactement, la vivacite d’une transition t ecartela possibilite qu’il existe un marquage accessible duquel t ne soit pas acces-sible. Autrement dit, une transition t est vivace pour un marquage M si t estaccessible de tout marquage M ′ accessible de M . Plus formellement :

Definition 23. Une transition t est vivace pour un marquage M si la condi-tion suivante est satisfaite :

∀M ′

(M

∗−→M ′ ⇒ t est accessible de M ′

)

Nous dirons qu’une transition est vivace si elle est vivace a partir dumarquage initial et qu’un reseau marque est vivace, si toutes ses transitionsle sont (cf. figure 4.8).

La vivacite est plus forte que l’absence de blocage. En effet, s’il est clairque tout reseau vivace soit sans blocage (en particulier, le reseau de la fi-gure 4.8 obtenue par modification de la figure 4.7 est sans blocage), la re-ciproque est en general fausse : le reseau marque de la figure 4.9 est sansblocage mais t2 et t4 ne sont pas vivaces.

Page 50: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 45

P1

P2

R

••

t1 t2

t′3 t′4

t′′3 t′′4

t5 t6

2 2

Fig. 4.7 – Reseau marque avec blocage

Page 51: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 46

P1

P2

R

••

t1 t2

t′3 t′4

t5

t′′3 t′′4

t6

2 2

22

Fig. 4.8 – Un reseau marque vivace

Page 52: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 47

• •• •

t1 t2

t3 t4

Fig. 4.9 – Un reseau marque non vivace et sans blocage

4.3 Verification des proprietes

4.3.1 Analyse du graphe des marquages accessibles

Construction du graphe des marquages accessibles

Un algorithme naıf de construction du graphe des marquages accessiblesest donne a la figure 4.10. Il est a remarquer que l’ensemble des marquagesaccessibles est potentiellement infini. Par consequent, la terminaison de l’al-gorithme donne a la figure 4.10 n’est pas assuree. Toutefois, dans le cas ou legraphe des marquages acessibles est fini, toutes les proprietes comme le ca-ractere borne d’une place ou la vivacite du reseau sont decidables par simpleinspection du graphe des marquages accessibles.

Caractere borne

Meme dans le cas ou le graphe des marquages accessibles est infini, lecaractere borne reste decidable. Sa decidabilite decoule des proprietes sui-vantes :

Propriete 1. Si Ms

−→ et si ∀pM(p) ≤ M ′(p) 1 alors M ′ s−→

1On note alors M ≤ M ′

Page 53: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 48

S := {M0} ; // Ensemble des sommetsA : = ∅ ; // Ensemble des arcsRepeter

Pour chaque marquage M ∈ S Faire

Pour chaque transition t telle que Mt

−→ FaireM’ := M + Ct ;S := S ∪{M ′} ;A := A ∪{t} ;

// Fin du Pour// Fin du Pour

Jusqu’a stabilisation de S ;Retourner (S, A) ;

Fig. 4.10 – Construction du graphe des marquages accessibles

Propriete 2. Le reseau est non-borne si et seulement si

∃M,M ′,sM0∗

−→Ms

−→M ′ et M ′ > M 2

Pour verifier si un reseau est borne, il suffit de construire le graphe desmarquages accessibles en profondeur plutot qu’en largeur comme le fait l’al-gorithme de la figure 4.10. Le critere d’arret est la stabilisation de l’ensembleS des sommets ou l’acces a un marquage strictement superieur a un de sesancetres.

Vivacite

Pour verifier la vivacite d’un reseau borne, il suffit de montrer que danschaque composante fortement connexe du graphe des marquages accessibles,toutes les transitions du reseau apparaissent comme etiquettes.

4.3.2 Analyse structurelle

Invariants de places

Tout marquage accessible M du reseau illustre a son marquage initial ala figure 4.11 satisfait M(p2) +M(p4) +M(p5) ≤ 1. En effet :

2On note M ′ > M si M ′ ≥ M et M 6= M ′

Page 54: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 49

•p1 •p2 •p3

p4 p5

t1 t2

t3 t4

Fig. 4.11 – Exclusion mutuelle

1. M0(p2) +M0(p4) +M0(p5) = 1 est valide initialement

2. La stabilite de M(p2)+M(p4)+M(p5) = 1 pour tout marquage acces-sible de M0 sera demontre par un invariant de place

Definition 24. Un invariant de place est un vecteur ligne ~i non nul dont lescomposantes sont indexees par les places et satisfaisant l’une ou l’autre destrois conditions equivalentes suivantes :

1.∑

p∈pre(t)~ip =

∑p∈post(t)

~ip pour chaque transition t

2. ~i · Ct = 0 pour chaque transition t

3. ~i · C = (0, 0, . . . , 0)

Loi de conservation des jetons pour un invariant de places ~i Si Mest accessible de M0 alors ~i ·M0 =~i ·M .

Preuve

M0s

−→M ⇒ M0 + C · ~s = M

⇒ ~i ·M0 + ~i · C︸︷︷︸=(0,0,...,0)

·~s =~i ·M

⇒ ~i ·M0 =~i ·M

Page 55: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 50

Illustration d’une preuve de stabilite Dans le reseau illustre a la fi-gure 4.11, le nombre total de jetons sur les places de l’ensemble {p2, p4, p5}ne varie pas lorsqu’une transition est franchie : ~i = (0, 1, 0, 1, 1) est un in-vriant de places. Par consequent, comme ~i ·M0 = 1 alors ~i ·M = 1, pourtout marquage accessible et par consequent, M(p2)+M(p4)+M(p5) = 1 eststable.

Quelques autres invariants de places– ~i = (0, 1, 0, 1, 1) assure l’exclusion mutuelle– ~i = (1, 0, 0, 1, 0) assure, par la loi de conservation des jetons queM(p1)+M(p4) = 1 pour tout marquage accessible M et donc que

M(p1) ≤ 1 ∧ M(p4) ≤ 1

et en particulier que les places p1 et p4 sont bornees.

Proposition 25 (Caractere borne). S’il existe un invariant de place ~i telque ~ip > 0 pour toute place p alors le reseau est borne.

Demonstration.

M est accessible ⇒ ~i ·M =~i ·M0

⇒ ~ip ·M(p) ≤~i ·M =~i ·M0

⇒ M(p) ≤~i ·M0

~ip

Exemple 26. L’invariant de places~i = (1, 1, 1, 2, 2) assure le caractere bornedu reseau illustre a la figure 4.11.

Invariants de transitions

Definition 27. Un invariant de transitions est un vecteur colonne ~j nonnul dont les composantes sont indexees par les transitions et satisfaisant lacondition suivante :

C ·~j =

00...0

Page 56: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 51

Exemple 28. Les vecteurs

~j1 =

1010

, ~j2 =

0101

, ~j3 =

2121

sont des invariants de transitions pour le reseau illustre a la figure 4.11.

Proposition 29. Soit M0s

−→M alors M0 = M si et seulement si ~s est uninvariant de transitions.

Demonstration. Ceci decoule directement de l’equation

M0 + C · ~s = M.

4.4 Quelques extensions au modele

Le grand avantage des reseaux de Petri est leur aptitude a modeliser lapresence de ressources et a analyser leur flot. Une des principales limitationsdes reseaux de Petri est l’anonymat des jetons qui ne permet pas de modeliserla nature des ressources. Par exemple, comment modeliser a l’aide d’un reseaude Petri le requis suivant :

Si une erreur est detectee dans la trame du message m recu (e.g.s’il a la mauvaise parite) alors emettre un message d’erreur surle canal 1 sinon faire suivre m sur le canal 2.

On aimerait pouvoir exprimer, comme l’illustre la figure 4.12, que le choixentre les transitions canal1 et canal2 n’est pas non deterministe commele decrit la semantique des reseaux de Petri mais depend essentiellement dela nature du jeton dans la place P qui modelise la ressource m. Aussi, denombreuses extensions ont ete proposees pour structurer les jetons afin d’yinclure de l’information sur la nature des ressources qu’ils modelisent.

4.4.1 Les reseaux colores

Les reseaux de Petri colores structurent les jetons en leur associant unecouleur permettant d’associer a chaque transition, plusieurs manieres de la

Page 57: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 52

•P

canal1 canal2

Fig. 4.12 – Limitation des reseaux de Petri

client serveur

Fig. 4.13 – Modele abstrait du client-serveur

franchir. Nous illustrons par un exemple tire de 3. Le reseau de Petri de lafigure 4.13 modelise un reseau forme de deux clients et d’un serveur.

Ce modele est trop abstrait. Il ne distingue en effet, ni l’etat respectifde chacun des clients, ni a qui appartient un message ou une reponse. Unesolution est illustree a la figure 4.14. Elle consiste ae dupliquer toutes lesplaces et les transitions a l’exception de la place initialement marquee duserveur.

Cette solution n’est pas interessante : d’une part, elle double la tailledu reseau, rendant par consequent l’analyse plus couteuse et d’autre part lemodele n’est plus valide des qu’on modifie le nombre de clients ou de serveurs.

Les reseaux de Petri colores permettent de definir un modele generique

3H. Boucheneb, Validation des systemes temps-reel, Notes de cours, Ecole Polytrech-nique de Montreal, 2002

Page 58: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 53

client1 serveur client2

Fig. 4.14 – Modele raffine du client-serveur

du clients-serveurs valide pour tout nombre (fini) de clients et de serveurs.Informellement :

– Une couleur est associee a chaque jeton.– A chaque place est associe un ensemble appele domaine de couleurs qui

specifie les couleurs possibles de jetons dans la place– A chaque transition est associe un domaine de couleurs indiquant une

maniere de la franchir.– Les applications pre et post ont un parametre supplementaire : la cou-

leur du franchissement. pre(p, t, c) et post(p, t, c) indiquent pour chaquecouleur, le nombre de jetons de cette couleur respectivement consom-mes et produits lors du franchissement de t selon la couleur c.

Considerons le modele du client serveur illustre a la figure 4.15. On dis-crimine les clients de la facon suivante :

– On associe a chaque jeton des places (toutes sauf serveur), le numerodu client concerne par ce jeton. Le domaine de ces places est {1, 2}.

– Ce meme domaine est aussi associe aux transitions.– Les entiers qui etiquettent les arcs d’entree ou de sortie d’une transi-

tion sont remplaces par des fonctions de {1, 2} dans Z indiquant pourchaque couleur du domaine le nombre de jetons de cette couleur res-pectivement consommes (pre(p, t, c)) ou produits (post(p, t, c)) lors dufranchissement de cette transition.

On peut generaliser le modele illustre a la figure 4.15 a plusieurs serveursen introduisant un domaine de couleurs pour les serveurs. Le modele a troisserveurs est illustre a la figure 4.16. La transiiton en rouge peut etre exe-

Page 59: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 54

client serveur<1><2>

<x><x> <x>

<x>

<x>

<x><x>

<x>

<x>

<x>

{1, 2}

{1, 2}

{1, 2}

{1, 2}

{1, 2}{1, 2}

{1, 2}

{1, 2}

{1, 2}

Fig. 4.15 – Modele colore du client-serveur

cutee par differents serveurs. Si elle est executee par le serveur y, elle doitconsommer deux jetons (une de couleur y et une autre de couleur quelconquex) et produire un jeton de couleur < x, y >. Ces deux informations sontessentielles pour savoir lequel des serveurs est occupe et a qui appartient lemessage en cours de traitement par le serveur. Ces deux informations sontaussi indispensables pour pouvoir ensuite ulterieurement envoyer la reponseau bon client et modifier l’etat du bon serveur.

4.4.2 Les reseaux a predicats

Dans les reseaux a predicats, les jetons appeles predicats, sont structuresen algebres c’est-a-dire en ensemble de n-tuplets de valeurs munis d’opera-tions et de relations. Nous en donnons ici une definition informelle que nousillustrerons simplement par un exemple.

Syntaxe

Les jetons sont etiquetes par les valeurs d’un domaine D. A chaque tran-sition t de k entrees et de h sorties sont associes :

– un predicat k-aire Pt sur D i.e. Pt ⊆ Dk

– une fonction ft : Dk → Dh dont le domaine (co-domaine) est l’ensembledes k-tuplets (h-tuplets) d’etiquettes des jetons des entrees (des sorties)

Page 60: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 55

client serveur<1><2>

<x><x> <x>

<x><x>

<x>

<x>

<x>

{1, 2}

{1, 2}

{1, 2}{1, 2}

{1, 2}

{1, 2}

<c><a><b>

{1, 2} X {a, b, c}

<x, y><y>

{1, 2} X {a, b, c}

<x, y>

<y>

{1, 2} X {a, b, c}

Fig. 4.16 – Generalisation du Modele colore du client-serveur

Semantique

Une transition est tirable s’il existe un k-tuplet de valeurs d’entrees quisatisfait Pt. Lorsqu’une transition est tiree :

– un k-tuplet de jetons (j1, . . . , jk) qui valide Pt disparait– le h-tuplet de jetons etiquete ft(j1, . . . , jk) apparait aux sorties de la

transition t

Exemple 1

Dans le reseau illustre a la figure 4.17 :

D = N

P1 = {(i, j) : i ∈ P1, j ∈ P2 et j > i}

= {(3, 7), (3, 4)}

P2 = {(i, j) : i ∈ P2, j ∈ P3 et i = j}

= {(4, 4)}

f1(i, j) = i+ j ∈ P4

f2(i, j) = (j − i, i+ j) ∈ P4 × P5

Dans le marquage initial, t1 et t2 sont tirables. Si t1 est tiree avec (3, 4) alorsles jetons etiquetes 3 et 4 disparaıtront de P1 et P2 respectivement et lejeton etiquete par 7 apparaıtra a la place P4. La transition t2 n’est alors plustirable. De meme, si t1 est tiree avec (3, 7) alors les jetons etiquetes 3 et 7

Page 61: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 56

P1

3

P27

4 1

P3

4

P4 P5

t1 t2

Fig. 4.17 – Reseau a predicats

disparaıtront de P1 et P2 respectivement et le jeton etiquete par 10 apparaıtraa la place P4. La transition t2 sera alors encore tirable (avec (4, 4)). Si t2 estmaintenant tiree alors les jetons etiquetes 4 et 4 disparaıtront de P2 et P3

respectivement tandis que les jetons etiquetes 0 et 8 apparaıtront en P4 etP5 respectivement.

Exemple 2

Il est maintenant facile de completer le diagramme de la figure 4.12 enune specification des requis donnes en debut de section. Il suffit de poser :

D = {0, 1}∗

Pcanal1 = {u ∈ {0, 1}∗ : parite(u) = 0}

Pcanal2 = {u ∈ {0, 1}∗ : parite(u) = 1}

fcanal1(u) = u

fcanal2(u) = erreur

Page 62: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 57

4.4.3 Les reseaux algebriques

Les reseaux algebriques structurent les jetons en un veritable environne-ment de programme par des types abstraits algebriques. Nous reviendronsdonc brievement sur les reseaux algebriques lorsque nous presenterons lesspecifications algebriques a la derniere partie du cours. Disons simplementpour le moment qu’ils permettent de decrire les proprietes fonctionnelles desoperations portant sur les donnees independamment de l’implementation etque ces proprietes sont decrites par des axiomes.

Page 63: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 58

4.5 Notes complementaires

Concernant le probleme du dıner des philosophes chinois, je reprends iciles etapes de la preuve de l’absence de blocage de la solution donnee en classeen me referant au reseau de Petri egalement donne en classe.

Le tableau suivant donne la matrice C et les six invariants de place dureseau c’est-a-dire, les solutions de base du systeme ~i · C = ~0 :

~a1 ~a2 ~a3~b1 ~b2 ~b3 ~i1 ~i2 ~i3 ~i4 ~i5 ~i6

th1 −1 1 1th2 −1 1 1th3 −1 1 1e1 1 −1 1 1e2 1 −1 1 1e3 1 −1 1 1f1 −1 −1 1 1 1f2 −1 −1 1 1 1f3 −1 −1 1 1 1

Montrons maintenant que le reseau est sans blocage c’est-a-dire que detout marquage M accessible de M0 il existe une transition franchissable.

Soit M , un marquage quelconque. Si ∃1≤i≤3M(i) 6= 0 alors bi est franchis-sable et le reseau est sans blocage. On peut donc supposer que ∀1≤i≤3M(i) =0. Montrons, par exemple, que la transition a1 est tirable c’est-a-dire que lesplaces f1, th1 et f2 contiennent chacune au moins un jeton. Il s’agit doncde trouver une relation invariante entre les marquages de ces places. Il estdonc naturel d’utiliser ~i1, ~i4 et ~i5. De la loi de conservation des jetons pourl’invariant de place ~i1 on tire :

~i1 ·M = M(th1) +M(e1) = ~i1 ·M0 = 1

puisque M0 = (1, 1, 1, 0, 0, 0, 1, 1, 1)t. Comme on suppose que M(e1) 6= 0, ilen resulte donc que M(th1) = 1. De la meme facon, des equations :

~i4 ·M = M(e1) +M(f1) = ~i4 ·M0 = 1~i5 ·M = M(e2) +M(f2) = ~i5 ·M0 = 1

on deduit M(f1) = 1 et M(f2) = 1 respectivement.De facon analogue, on peut montrer que les transitions a2 et a3 sont

tirables et obtenir ainsi une propriete plus forte que l’absence de blocage.

Page 64: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 59

4.6 Les reseaux colorees : formalisation

4.6.1 Les multi-ensembles

Definition 30. Soit D un ensemble fini appele domaine, alors un multi-ensemble M est une application de D dans N.

De maniere moins formelle, un multi-ensemble M est un ensemble danslequel chaque element a un ordre de multiplicite.

Par exemple, M = {{0; 0; 2; 2; 2; 3}} est un multi-ensemble d’entiers. Ledomaine de M est {0, 2, 3} et l’ordre de multiplicite de 0 dans M est 2(M(0) = 2), celui de 2 est 3 (M(2) = 3) et celui de 3 est 1 (M(3) = 1).

On peut changer l’ordre dans lequel apparaissent les elements (si onne change pas le nombre de fois qu’ils apparaissent). Par exemple M ={{0; 2; 0; 2; 3; 2}} mais M 6= {{0; 2; 3}}.

L’ensemble de tous les multi-ensembles sur D se note Bag(D).Un multi-ensemble M sur D peut se representer par une somme formelle :

M =∑

d∈D

M(d) · 〈d〉

Soient M,N ∈ Bag(D) alors la somme de M et N , note M+N est definiepar :

M +N =∑

d∈D

(M(d) +N(d)) · 〈d〉

On peut aussi definir sur Bag(D) une relation d’ordre ≤ : Soient M,N ∈Bag(D) alors M ≤ N si et seulement si

∀d∈DM(d) ≤ N(d)

On peut egalement definir sur Bag(D) une soustraction partielle : SoientM,N ∈ Bag(D) tels que N ≤ M alors

M −N =∑

d∈D

(M(d) −N(d)) · 〈d〉

4.6.2 Syntaxe des reseaux colores

Definition 31. Un reseau de Petri colore (RdPC) est un tuple (Σ, P, T, Clr, pre, post)ou :

Page 65: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 60

<1><2>

<x><x> <x>

<x><x>

<x>

<x>

<x>

{1, 2}

{1, 2}

<c><a><b>

<x, y><y>

<x, y>

<y>

{1, 2} X {a, b, c}t1

t2{1, 2}

{1, 2}

{1, 2} X {a, b, c}

t4

{1, 2}p1

p4

p3

{a, b, c}p5

{1, 2}p2 p6

t3{1, 2} X {a, b, c}

Fig. 4.18 – Generalisation du modele colore du client-serveur

1. Σ est un ensemble de couleurs ;

2. P est un ensemble de places ;

3. T est un ensemble de transitions ;

4. Clr : P ⊕ T → Σ est la fonction de couleur qui associe une couleur achaque place et a chaque transition.

5. pre : P × T → [Clr(t) → Bag(Clr(p))]

ou pre(p, t) indique pour chaque couleur c de Clr(t), le multi-ensemblesur Clr(p) qui denote le nombre de marques de chaque couleur de laplace p necessaires au franchissement de t pour la couleur c ;

6. post : P × T → [Clr(t) → Bag(Clr(p))]

ou post(p, t) indique pour chaque couleur de Clr(t), le multi-ensemblesur Clr(p) qui denote le nombre de marques de chaque couleur de laplace p produites par le franchissement de t pour la couleur c.

Definition 32. Un marquage d’un RdPC est une application M qui associea chaque place p un multi-ensemble de Bag(Clr(p)

Exemple 33. Pour le modele du client-serveur illustre a la Figure 4.18, ona :

Page 66: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 61

pre =

〈x〉 0 0 00 〈x〉 0 00 〈x〉 0 00 0 0 〈x〉0 0 0 〈y〉0 0 〈x, y〉 0

post =

0 〈x〉 0 0〈x〉 0 0 00 0 〈x〉 0〈x〉 0 0 00 0 〈y〉 00 0 0 〈x, y〉

Et la marquage initial :

M0 =

〈1〉 + 〈2〉000

〈a〉 + 〈b〉 + 〈b〉0

4.6.3 Semantique des reseaux colores

L’etat du modele est defini par son marquage . Le modele evolue enfranchissant des transitions a partir du marquage initial.

Transition tirable Une transition t est tirable ou franchissable depuis unmarquage M si et seulement s’il existe une couleur c ∈ Clr(t) telle que lesjetons necessaires pour la couleur c de franchissement sont disponibles dansM :

∀p∈PM(p) ≥ pre(p, t)(c)

et on note M(t,c)−→.

Franchissement d’une transition Lorsqu’une transition t est franchieou tiree depuis M pour une couleur cinClr(t), un nouveau marquage M ′ estatteint :

∀p∈PM′(p) = M(p) + C(p, t)(c) (4.3)

ou C = post − pre. Le franchissement d’une transition t depuis un mar-

quage M vers un marquage M ′ est note Mt

−→M ′. On dit aussi que M ′ estdirectement accessible de M .

Page 67: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 62

Marquage accessible Un marquage M ′ est accessible a partir d ’un mar-quage M (note M

∗−→M ′) s’il existe une sequence de tirs (ou de franchisse-

ments)

M = M1(t1,c1)−→M2

(t2,c2)−→ · · ·

(tn−1,cn−1)−→ Mn = M ′.

(que l’on notera aussiM

s−→M ′

ou s = (t1, c1)(t2, c2) . . . (tn−1, cn−1)). Un marquage est accessible s’il est ac-cessible a partir d’un marquage initial M0 fixe.

Graphe des marquages accessibles Le graphe des marquages est legraphe oriente et etiquete dont les sommets sont les marquages accessibleset les arcs, les transitions entre marquages directement accessibles. Il y a un

arc de M a M ′ etiquete par (t, c) si et seulement si M(t,c)−→M ′.

Comportement d’un reseau Le comportement d’un reseau est caracte-rise par ses traces, c’est-a-dire l’ensemble de toutes ses sequences de franchis-sements appele langage du reseau.

4.6.4 Analyse des reseaux colores

Analyse du graphe des marquages accessibles L’analyse du graphedes marquages accessibles se fait de la meme facon que celle des RdP simples.

Definition 34. Une place p est bornee s’il existe un entier k tel que pourtout marquage accessible M , la valeur de M(p) est bornee par k :

∃k∈N∀M∀c∈Clr(p)

(M0

∗−→M ⇒ M(p)(c) ≤ k

)

On dira alors que p est k-bornee. Un reseau est borne si toutes ses placessont bornees.

Les algorithmes d’analyse du graphe des marquages accessibles sont tresfacilement adaptables aux RdPC.

Analyse structurelle Les algorithmes de calcul des invariants des RdPsimples ont ete etendus a plusieurs classes de RdPC.

Page 68: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 4. LES RESEAUX DE PETRI 63

th

b

{ph(1), ph(2), ph(3)}

{ph(1), ph(2), ph(3)}

{ph(1), ph(2), ph(3)}

{ph(1), ph(2), ph(3)}

a

e

<ph(i)>

<ph(i)>

<ph(i)>

<ph(i)><f(i)> + <f(if i=3 then 1 else i+1)>

<f(i)> + <f(if i=3 then 1 else i+1)>

{f(1), f(2), f(3)}f

<ph(1)><ph(2)><ph(3)>

<f(1)><f(2)><f(3)>

Fig. 4.19 – Modelisation du dıner des philosophes chinois

4.6.5 Le dıner des philosophes chinois

Le RdPC modelisant le dıner des philosophes est illustre a la Figure 4.19.

Page 69: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 5

Les automates communicants

5.1 Quelques exemples introductifs

Voici quelques exemples de systemes synchrones (ou chaque action a lieua un top d’une horloge unique) et asynchrones (ou on ne peut definir lasuccession des actions sans preciser les dates auxquelles elles se produisent)qui se modelisent facilement par des automates plus generalement appelessystemes de transitions en semantique des systemes :

5.1.1 Une montre a affichage numerique

Chacun de ses 24 × 60 = 1440 etats possibles represente l’heure et laminute courante. Une transition relie chaque paire d’etats representant desinstants ne differant que d’une minute. C’est une sorte de compteur modulo1440 (cf figure 5.1).

04:0003:5903:58

Fig. 5.1 – Montre a affichage numerique

5.1.2 Un digicode

Prenons maintenant l’exemple d’un digicode a trois touches, A, B, C

permettant l’ouverture d’une porte des que la sequence ABA a ete tapee (cf

64

Page 70: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 65

1 2 3 4A B A

C

B, C

B,CA

Fig. 5.2 – Digicode

figure 5.2).Cet exemple nous servira egalement a introduire la notion de compor-

tement d’un systeme. Le comportement d’un systeme peut etre vu commel’ensemble des executions possibles c’est-a-dire comme l’ensemble (genera-lement infini) des suites de ses configurations ou etats successifs. Une tellesuite decrit une evolution possible du systeme.

5.1.3 Un compteur modulo

On se borne au cas ou les seules actions qu’il soit possible d’effectuersur le compteur sont les actions d’incrementation (inc) et de decrementation(dec). Chacun des n etats represente une valeur du compteur et chaquetransition s

a

−→t exprime le fait que l’action a qui peut s’executer lorsque lecompteur est dans l’etat s transforme la configuration du systeme en l’etatt. Les transitions specifient donc le comportement operatoire des actions surle systeme (cf. figure 5.3).

0 1

23

inc

inc

dec

decdec

decinc inc

Fig. 5.3 – Un compteur modulo 4

Page 71: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 66

5.1.4 Un canal FIFO

Dans la communication asynchrone, les messages ne sont pas recus ins-tantanement. En general on suppose que les messages deja emis mais pasencore recus se trouvent quelque part dans un ou plusieurs canaux de com-munication parfois appeles buffers et geres le plus souvent selon une politiqueFIFO assurant que les messages sont recus dans l’ordre ou ils sont emis.

La figure 5.4 illustre un canal FIFO de capacite 2 d’elements de Σ ={a, b}. Les etats sont les mots de Σ0 ∪ Σ1 ∪ Σ2 et les actions sont

– enfiler une lettre si le buffer n’est pas plein– defiler une lettre si le buffer n’est pas vide

a

aaab

babb

b

out(b)

out(b)

out(a)

in(a)in(b)

out(b)in(a)

out(a)

in(b)

in(a)

in(b)

out(a)

Fig. 5.4 – Canal FIFO

5.1.5 Une variable

De la meme facon, toute variable de domaine D et dont la valeur est mo-difiable par l’une ou l’autre des fonctions de base o1, o2, . . . on permises surcette variable, est modelisable par un systeme de transitions ayant possible-ment un nombre infini d’etats, un pour chaque valeur de D et dont chaquetransition (de la forme s

oi−→t) specifie le comportement operatoire de oi dansl’etat s. Dans ce cours, a moins de specification explicite du contraire, nousnous limiterons aux systemes de transitions finis.

Par exemple, une variable booleenne b peut se modeliser par un systemede transition B (cf. figure 5.5) a 2 etats (vrai et faux) dont les actions sontles affectations b :=vrai et b :=faux et les tests vrai ! et faux ! retournantrespectivement les valeurs vrai et faux. On peut egalement, pour des raisons

Page 72: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 67

vrai faux

b :=faux

b :=vrai

b=vrai !

b :=vrai

b=faux !

b :=faux

Fig. 5.5 – Variable booleenne

qui apparaıtront claires par la suite, ajouter une action vide, qui ne fait rienet donc, qui ne modifie pas l’etat de la variable et que nous noterons ′ ′.

5.1.6 Un programme sequentiel

Le systeme de transition P qui modelise le fragment P de code suivant :

1 :while true doif not b then begin

2 : b :=true ;

3 :proc ;

4 :b :=false ;

end.

est donne a la figure 5.6. Les quatres etats correspondent aux valeurs pos-sible du compteur ordinal du programme et les actions sont les affectationsb :=vrai et b :=faux et les tests b=vrai ? et b=faux ? retournant respecti-vement les valeurs vrai et faux.

5.2 Systemes de transitions

Les exemples de la section precedente motivent et illustrent bien la defi-nition suivante :

Definition 35. Un systeme de transitions est un couple A = (S, T ) ou

Page 73: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 68

1 2

34

b=faux ?

b :=vrai

proc

b :=faux

b=vrai ?

Fig. 5.6 – Programme sequentiel

– S est un ensemble d’etats fini ou infini– T ⊆ S × S est un ensemble de transitions fini ou infini

On notera une transition d’origine s1 et de but s2, (s1, s2) par s1,−→s2.Un syteme de transitions est fini si S et T sont finis.

Un chemin c de longueur n (note |c| = n) est une suite de transitions

s1−→s2−→s2−→· · ·−→sn.

Un chemin infini est une suite infinie de transitions. Il peut parfois etre utilede definir pour chaque etat s un chemin vide ǫs d’origine et de but s.

On peut munir l’ensemble des chemins finis d’un produit de concatena-tion : si c1 = s0s1 . . . sn et c2 = t1t2 . . . tm alors c1c2 = s1s2 . . . snt1t2 . . . tm.On peut egalement definir la concatenation d’un chemin fini et d’un chemininfini : si c1 = s1s2 . . . sn et c2 = t1t2 . . . alors c1c2 = s1s2 . . . snt1t2 . . ..

Definition 36. Un systeme de transitions etiquete est un triplet A = (S, T,Σ)ou

– S est un ensemble d’etats– T ⊆ S × Σ × S est l’ensemble des transitions– Σ est un ensemble d’actions

On notera une transition etiquetee, (s1, a, s2) par s1,a

−→s2. Si c est unchemin

s1a1−→s2

a2−→s2a3−→· · · ,

la suite a1a2 . . . est la trace. Un chemin infini a donc a une trace infinie. Lechemin vide a pour trace le mot vide.

Page 74: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 69

Les expressions ω-regulieres Pour noter de facon compacte des ensemblesde traces on utilisera des expressions regulieres etendues pour pouvoir speci-fier aussi des ensemble de mots infinis ou ω-mots.

Definition 37. Les expressions ω-regulieres sont definies inductivement apartir des regles suivantes :

– Si e1, e2 sont des expressions regulieres (denotant E1, E2) alors e1eω2

est une expression ω-reguliere (ou eω2 denote l’ensemble de toutes les

chaınes infinies de mots de E2)– Si e1, e2 sont des expressions ω-regulieres alors e1 ∪ e2 est une une

expression ω-reguliere.

Exemple 38. Soit Σ = {a, b, e} alors l’expression ω-reguliere

(e∗ae∗b)∗eω ∪ (e∗ae∗b)ω

denote l’ensemble des ω-sequences sur Σ dans lesquelles :

1. toute occurrence de a doit etre suivie de e∗b et

2. toute occurrence de b doit etre precedee de ae∗.

Si l’action a denote l’action d’entree dans la section critique, b, l’action desortie de la section critique et e, toute autre action alors nous verrons quecette expression ω-reguliere specifie exactement les ω-sequences d’actions va-lides de l’algorithme d’exclusion mutuelle de Peterson.

Definition 39. Un systeme de transitions parametre est un tuple A =(S, T, SX1

, SX2, . . . SXm

, TY1, TY2

, . . . TYn) ou

– S est un ensemble d’etats– T ⊆ S × S est l’ensemble des transitions– SXi

⊆ S sont des parametre d’etats– TYj

⊆ T sont des parametre de transitions

Des parametres d’etats peuvent par exemple specifier des etats initiaux oudes etats terminaux. Un systeme de transitions etiquete peut etre egalementvu comme un systeme de transition parametre, pour chaque a ∈ Σ, par leparametre de transitions

Ta = {t ∈ T : t est etiquetee par a}.

En pratique on utilisera des systemes de transitions etiquetes et parame-tres par un etat initial et eventuellement par des etats terminaux.

Page 75: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 70

5.3 Produit synchronise de systemes de tran-

sitions

Comme nous le verrons a la section 5.4, toutes les composantes d’unsysteme de processus interagissant via des variables partagees, par messagesasynchrones via des canaux FIFO ou par messages synchrones peuvent semodeliser par des systemes de transitions etiquetes. Nous allons maintenantdefinir un produit sur les systemes de transitions qui permette de construire lemodele du systeme global synchronise a partir des modeles des composantes.

5.3.1 Le cas particulier des modules decouples

Prenons par exemple un systeme compose de deux compteurs autonomeset decouples : un compteur modulo 2 et un compteur modulo 3 qui n’inter-agissent pas entre eux (cf. section 5.1.3).

L’espace des etats du systeme de transition global qui modelise ce systemeest simplement donne par le produit cartesien des etats des deux systemes detransitions A mod 2 et A mod 3 qui modelisent les composantes. Prenons main-tenant ce systeme dans un de ses etats, disons (s1, s2). Pour un observateurdu systeme global, l’action globale qui provoquera le passage a l’etat suivantsera une action qui modifie un seul des compteurs (action de la forme (a1, )ou ( , a2) ou la nouvelle action fictive ′ ′ nous sert a exprimer le cas ou l’unedes composante reste inactive et ou a1 ∈ Σ1 et a2 ∈ Σ2) ou peut-etre les deuxsimultanement (action de la forme (a1, a2) ou a1 ∈ Σ1 et a2 ∈ Σ2). Notez quel’action ( , ) est l’action vide du systeme global. La situation est illustree ala figure 5.7. Ceci motive bien la definition suivante :

Definition 40. Le produit libre A1 × A2 de deux systemes de transitionsA1 = (S1, T1,Σ1) et A2 = (S2, T2,Σ2) est le systeme de transition A =(S, T,Σ) defini par

– S = S1 × S2

– T =

{(s1, s2)

(a1,a2)−→ (s′1, s

′2) : s1

a1−→s′1 ∈ T1 et s2a2−→s′2 ∈ T2 ou bien

a1 =′ ′ et s1 = s′1 ou bien a2 =′ ′ et s2 = s′2

}

– Σ = (Σ1 ∪ { }) × (Σ2 ∪ { })

Page 76: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 71

0 1 2 0i i i

0

1

0

i

id

d

d d d

(-, i) (-, d)

(i, d) (i, i)(d, d)(d, i)

(i, -) (d, -)

Fig. 5.7 – Compteurs modulo decouples

5.3.2 Le cas general

Une contrainte de synchronisation Sync ⊆ (Σ1 ∪{ })× (Σ2 ∪{ }) etablitl’ensemble de toutes les actions globales permises.

Exemple 41. Par exemple, si on veut coupler fortement les deux compo-santes A mod 2 A mod 3, on definit :

Sync = {(inc, inc), (dec, dec), ( , )}

Definition 42. Le produit synchronise A1‖SyncA2 de A1 et A2 par rapporta Sync est le systeme de transition A1 ×A2 restreint aux seules transitionsetiquetees par une action de Sync.

Exemple 43. Il est facile de voir, qu’en eliminant les etats inaccessibles del’etat initial (0, 0) et en renommant les actions globales, A mod 2‖SyncA mod 3

est simplement un modele de compteur modulo 6.

Page 77: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 72

Exemple 44. Un autre exemple est fourni en reconsiderant le systeme detransition P de la section 5.1.6 et le systeme de transition B de la sec-tion 5.1.5 qui represente la variable b manipulee par P. Dans cette vision,le programme P communique avec sa variable b. Le systeme global resultantpeut alors se modeliser par le systeme de transition P‖SyncB de 4 × 2 = 8etats ou la contrainte Sync de synchronisation de P et de B est formee descouples :

(b := vrai, b := vrai),(b := faux, b := faux),(b = vrai?, b = vrai!),(b = faux?, b = faux!),(proc, _)

5.4 Synchronisation des systemes concurrents

Dans cette section, nous voyons comment le produit synchronise peutmodeliser tous les grands mecanismes de synchronisation.

5.4.1 Synchronisation par messages

Il s’agit d’un cas particulier de produit synchronise ou la synchronisationse fait sur les actions complementaires m ! et m ? correspondant respective-ment a l’emission et a la reception d’un message m.

Un protocole de commerce electronique

Nous presentons ici un protocole de commerce electronique tres simplevoire simpliste, entre trois participants (le client , le marchand et la banque)et concu pour permettre la manipulation d’argent electronique sous forme defichiers encryptes appeles certificats monetaires. Nous assumerons complete-ment ici l’infaillibilite des composantes cryptographiques du systeme assurantnotamment la validite des certificats monetaires electroniques.

Le protocole Les regles du protocole sont les suivantes. Muni de son cer-tificat, le client peut :

– initier une action de paiement en envoyant au marchand son certificatelectronique.

Page 78: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 73

– Sur presentation du certificat, le marchand demande a la banque unecertification d’une valeur equivalente c’est-a-dire, l’emission d’unnouveau certificat monetaire electronique a son nom et effectue lalivraison de la marchandise au client.

– Apres verification de la validite du certificat du client, la banque ini-tiera un transfert de la validite du certificat du client a un nouveaucertificat du marchand.

– emettre une demande d’annulation de son certificat en le retournanta la banque.– Apres verification de la validite du certificat du client, la banque

retourne l’argent dans le compte du client et annule sa validite.

La modelisation du protocole Le modele du comportement de chacundes trois participants au protocole est illustre a la figure 5.8. Il est a remarquerque le modele du client a un seul etat refletant sa possibilite de faire n’importequoi, autant de fois qu’il en a envie. En particulier, le client peut tenter derecopier le mandat electronique, l’utiliser pour payer plusieurs fois ou memepayer et annuler de facon a obtenir la marchandise gratis. La definition de cepire attaquant du protocole est essentielle a la verification de sa robustesse.Apres tout, c’est du ressort de la banque d’etablir des mecanismes dissuasifsvis-a-vis de tels comportements. Autrement, ce ne serait pas une banque.Le produit Acli‖Aban‖Amar de ces trois systemes de transitions synchronises

1

2

3 4

annuler?

certif? transfert!

(c)

a b

c

d

e

f

g

livrer! livrer!

annuler!payer? certif! trasfert?

livrer!

certif! trasfert?

payer!

livrer?

(a) (b)

Fig. 5.8 – Le marchand (a), le client (b) et la banque (c).

sur les actions complementaires est un modele de 1 × 7 × 4 = 28 etats duprotocole (cf. figure 5.9)

Ze big bogue Illustrons maintenant comment le produit synchronise peutservir a valider le protocole. Des 28 etats, dix sont accessibles de l’etat initial.

Page 79: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 74

b c d e f ga

3

4

1

2C

LC T

A

C

T

TL

P L

LP

A A

P L

A

L

C C

T T

L

Fig. 5.9 – Le protocole de commerce electronique

Le calcul de ces etats accessibles est un probleme d’algorithme de graphespas toujours evident mais en etudiant d’un peu plus pres certains de ces etatsaccessibles, il apparait rapidement que l’etat (2, c) cause probleme. Il corres-pond a la situation ou la banque recoit un avis d’annulation du client avant lademande de certification du marchand, ce qui signifie que le client malicieuxa a la fois paye avec son certificat et annule le certificat et le marchand a,comme le protocole malheureusement le permet, livre la marchandise avantde faire une demande de certification. Le resultat : le client recoit la mar-chandise et touche l’argent de son certificat tandis que le marchand est dansl’impossibilite d’obtenir le sien.

5.4.2 Synchronisation par canal

Le cas asynchrone ou deux composantes P0 et P1 communiquent par mes-sages achemines le long d’un canal de communications C, peut se ramener acelui de la synchronisation par messages entre les deux composantes et unetroisieme modelisant le canal FIFO tel que decrit a la section 5.1.4.

Page 80: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 75

5.4.3 Synchronisation par variables partagees

Dans ce cas, les deux composantes P0 et P1 communiquent par variablesglobales appelees variables partagees. Ceci est un autre cas particulier dela synchronisation par messages. Soit b une telle variable, le systeme glo-bal peut se modeliser comme un systeme de trois composantes P0, P1 et b

communicant par messages.

L’algorithme de Peterson

Etant donnee l’importance pratique de ce cas, nous illustrons avec unexemple un peu plus realiste que ceux presentes aux sections precedentes. Ils’agit du fameux algorithme d’exclusion mutuelle entre deux processus P0 etP1 du a Peterson. Ce protocole entre deux utilisateurs d’une meme variableles assurent de ne jamais pouvoir acceder en meme temps a la section critiquedu programme pour modifier cette variable.

Il utilise trois variables partagees : deux variables booleennes d0 et d1

initialisees a faux et une variable binaire tour initialisee a 0.Le processus P0 execute le code suivant :

while true dobegin1 :{section non critique}

2 :d0 :=true ;

3 :tour :=0 ;

4 :attendre(d1=false or tour=1) ;

5 :{section critique}

6 :d0 :=false

end

tandis que P1 execute le code symetrique obtenu en permutant 0 et 1 :

while true dobegin1 :{section non critique}

2 :d1 :=true ;

3 :tour :=1 ;

4 :attendre(d0=false or tour=0) ;

5 :{section critique}

Page 81: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 5. LES AUTOMATES COMMUNICANTS 76

6 :d1 :=false

end

Les composantes P0, P1 du modele se construisent d’une maniere analoguea celle illustree a la section 5.1.6 et les composantes D0, D1 et T , modelesdes variables binaires d0, d1 et tour respectivement, sont semblables a celledonnee a la section 5.1.5.

Le systeme de transition global de 4 × 4 × 2 × 2 × 2 = 128 etats

P0‖P1‖D0‖D1‖T

ou les composantes se synchronisent sur actions identiques d’affectations etcomplementaires de test (de facon similaire a celle presentee a l’exemple 44)est un modele de l’algorithme.

Page 82: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 6

Une breve introduction a SPIN

6.1 Un premier survol

SPIN permet la simulation d’une specification ecrite en PROMELA. Le butde ce chapitre n’est pas de donner une description detaillee de SPIN maisplutot une idee generale de la facon dont peuvent etre modelises, simules etverifies les systemes concurrents. A cette fin, nous utiliserons un protocolestandard bien connu de la litterature d’election dynamique d’un leader . Vociun bref survol des principales constructions de PROMELA.

En premiere approximation, une specification PROMELA est formee de pro-cessus communicants, de variables (locales et globales) et de canaux de com-munication utilises pour interconnecter les processus. Un processus P estdefini par la declaration de type :

proctype P (parametres formels) {declarations locales; enonces}

Les processus sont instancies par un run place dans la section d’initialisationde la specification indiquee par init :

init{ run P(parametres reels); run Q(parametres reels); ...}

Les commandes Promela peuvent etre actives ou bloques. Si une commandeest bloquee, son execution est stoppee immediatement jusqu’au moment ouelle est re-activee. Par exemple la commande (a == b) est equivalente awhile (a != b) do skip. PROMELA a ete fortement influence par le langagedes commandes gardees de Dijkstra. Voci en resume les principales construc-tions de PROMELA :

77

Page 83: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 78

– La commande vide skip.– L’affectation, par exemple x = 7 affecte a la variable x de type byte la

valeur 7.– La conditionnelle if est de la formeif :: guarde1 -> commande1

:: ............

:: guarden -> commanden

fi

Le choix de la commande est fait de facon non deterministe parmicelles dont la garde est activee. La liste de commandes gardees parcette derniere est executee. Une garde speciale else est activee lorsquetoutes les autres sont bloquees. En l’absence d’une telle garde et dansle cas ou toutes les autres gardes sont bloquees, la commande if elle-meme est bloquee et son execution est stoppee jusqu’a ce qu’une gardesoit activee.

– La boucle do a la meme forme que la conditionnelle :do :: guarde1 -> commande1

:: ............

:: guarden -> commanden

od

Il est a noter qu’en principe, une boucle do est toujours infinie puisquelorsque toutes les gardes sont bloquees, elle attend qu’une garde soitactivee. La seule facon d’en sortir est d’utiliser un goto ou un break.

– Les commandes send et receive. Les processus peuvent etre intercon-nectes par des canaux de capacite arbitraire mais finie. Les canaux decapacite nulle sont permis. Les canaux sont specifies de la meme fa-con que les variables ; e.g. chan c = [5] of byte definit un canal cpouvant contenir 5 valeurs de type bytes. L’emission d’un message estindiquee par un point d’exclamation et la reception, par un point d’in-terrogation. Nous avons vu que de tels canaux etaient modelises pardes buffer FIFO. Donc, dans le cas ou c est de capacite positive alorsc !2 est active seulement si c n’est pas plein et dans ce cas son execu-tion obeit a la semantique FIFO : l’element 2 est enfile. De la memefacon, c ?x est activee seulement si c n’est pas vide et alors, son exe-cution affecte a x la valeur en tete de file. Le cas ou c est de capacitenulle alors c ! (resp. c ?) est active si et seulement si c ? (resp. c !)l’est. La communication par canal de capacite nulle modelise donc lacommunication par rendez-vous.

Page 84: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 79

Nous presenterons maintenant sur un cas de figure les principales constructionde PROMELA que nous utilisrons par la suite.

6.2 Le protocole de Dolev-Klawe-Rodeh

Election dynamique d’un leader Decrivons d’abord dans ses grandeslignes, la fonction d’un protocole delection d’un leader. Dans les systemesdistribues plusieurs services (ou fonctions) sont offerts par un processus de-die. Pensons par exemple a l’affectation et a l’enregistrement d’une nouvelleadresse a un reseau dynamique, a la coordination des requetes dans une basede donnees distribuee, a la distribution de l’horloge aux processus partici-pants , a la regeneration des tokens perdus dans un reseau token ring, a lagestion de la mise a jour de la topologie d’un reseau mobile, ... etc. Habituel-lement plusieurs processus du systeme ont la capacite d’assumer cette charge.Pour des raisons de coherence, a tout moment, cette charge ne doit etre de-volue qu’a un seul processus appele leader . Si pour beaucoup de taches, unchoix arbitraire d’un leader suffit, il peut etre parfois necessaire d’elire le pro-cessus le plus apte a l’assumer. Nous ferons ici abstraction des possibilitesspecifiques des processus en assumant un ordre total sur les processus. Unprocessus sera identifie par son rang dans cette relation d’ordre. On supposeun nombre fini de N processus dynamiques asynchrones. Il s’agit d’elire leprocessus de rang maximal parmi les processus actives. Si un nouveau pro-cessus de rang superieur est active, une nouvelle election a lieu.

L’algorithme de Dolev, Klawe et Rodeh On suppose N processus(N ≥ 2) connectes par des canaux non bornes, dans une topologie en anneau.Le protocole a pour but d’elire un et un seul leader. Dans l’algorithme, chaqueprocessus de l’anneau accompli la tache suivante :

eligible :d :=ident ;do foreverbegin

send(d) ;receive(e) ;if e=d then stop (* le processus d est le leader*)send(e) ;

Page 85: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 80

receive(f) ;if e ≥ max (d, f) then d := e else goto relai ;

end

relai :do foreverbegin

receive(d) ;send(d) ;

end

L’intuition derriere l’algorithme est la suivante. Initialement, chaque proces-sus est eligible. Tant et aussi longtemps qu’un processus est eligible, il est legardien d’un identificateur de processus (conserve dans la variable d). Cettevaleur peut changer en cours de route. Des qu’un processus a compris qu’ilne detient pas l’identite du futur elu, il se retire et devient relai. Un proces-sus relai ne fait que passer les messages de gauche a droite sans inspecter oumodifier leur contenu.

Chaque processus envoie sa variable d a son voisin de gauche et attendsde recevoir la valeur e de son plus proche voisin actif a sa droite. S’il recoitsa propre valeur , il conclut qu’il est maintenant le seul procesus actif enlice, donc que le processus d est le nouveau leader et l’algorithme s’arrete.Sinon, (dans le cas ou e 6= d) le processus attends un second message f (quicontiendra la valeur du d du second plus proche a sa droite). Si la valeur e deson plus proche voisin actif de droite est plus grande parmi d, e et f , alorsil met a jour sa valeur de d avec celle de e sinon, il comprends qu’il ne peutdetenir l’identite du futur elu et il passe la main en ne devenant qu’un simplerelai de transmission pour les messages entre les processus encore en lice.

Une sequence d’execution du protocole est donnee a la figure 6.1 pour 4processus d’identite 3, 7, 21 et 64 respectivement. Un processus y est denotepar un disque etiquete d’un triplet donnant la valeur courante des variableslocales d, e et f respectivement. Un disque blanc denote un processus eligibleet un noir, un processus relai. Un canal FIFO y est indique par une flecheorientee dans le sens de la communication et etiquetee par une suite denotantle contenu du canal.

A la fin du protocole, a-t-on bien elu un et un seul leader, celui avecl’identite de rang le plus eleve ? Nous verrons comment verifier cela ulterieu-rement dans le cours. Pour le moment, interessons nous seulement a la faconde modeliser ce protocole en PROMELA.

Page 86: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 81

(3, _, _)

(3, _, _)

(21, _, _)

(3, _, _)

(64,_,_)

(7, _, _) (7, _, _)

(21, _, _)(64,_,_)

(7, 64, _)

(21, _, _)

(3, _, _)

(64,_,_)

(7, 64, _)

(21, 7, 64)(64, 3, _)

7; 64764

3

7; 643

21

(64, 64, 3)

(21, 7, _)

(3, 21, _)

(64, 3, _)

64

21

(64, 64, 3)

(21, 7, 64)

(3, 21, _)

(64, 3, 21)

7

(64, 64, 3)

(21, 7, 64)

(21, 21, 7)

(64, 3, 21)

64(64, 64, 3)

(21, 7, 64)

(21, 64, 7)

(64, 3, 21)

21 64

(21, 7, 64)(64, 3, 21)

64 7

(64, 21, 64)

(64, 64, 21)

(64, 21, 3)

(21, 7, 64)

(21, 64, 7)

(64, 3, 21)

64 7

21

Fig. 6.1 – Un exemple de sequence d’execution du protocole.

Page 87: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 82

6.3 Modelisation du protocole en PROMELA

La specification PROMELA est composee de trois parties : une partie pourla definition des variables globales, une pour la description du comportementd’un processus de l’anneau et une pour l’initialisation et le demarrage de tousles processus. Le comportement des processus mime directement l’algorithmedonne a la section precedente. Un processus est connecte a son voisin de droitepar le canal in et a son voisin de gauche par le canal out. Nous avons ajoutedeux commentaires a imprimer pour faciliter la simulation.

proctype processus (chan in, out; byte ident)

{ byte d, e, f;

printf("MSC: %d\n", ident);

eligible:

d = ident;

do :: true -> out!d;

in?e;

if :: (e == d) ->

printf("MSC: %d is LEADER\n", d);

nbre_leaders = nbre_leaders + 1;

goto stop /* d est le leader */

:: else -> skip

fi;

out!e;

in?f;

if :: (e >= d) && (e >= f) -> d = e

:: else -> goto relay

fi

od;

relai:

end:

do :: in?d -> out!d

Page 88: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 83

od;

stop:

skip

}

Un processus peut etre dans trois etats : eligible, relai et stop. Un proces-sus n’arrive a l’etat stop que s’il a reconnu un nouveau leader. Un processusqui ne reconnait pas un nouveau leader terminera dans l’etat relai. Poureviter la generation d’un etat final invalide (un etat qui n’est n’est pas unefin normale de l’execution du corps du programme), on doit donc etiqueterl’etat relai par une etiquette end :.

Il est a noter qu’une commande comme par exemple in ?e est activee sile canal in n’est pas vide. Sinon, la commande est bloquee et son executionest suspendue jusqu’a l’activation de la commande. Par consequent, in ?esignifie : attendre jusqu’a ce qu’un message arrive sur le canal in puis affectersa valeur a la variable e.

Une specification PROMELA commence par la definition des variables glo-bales :

#define N 5 /* nombre de processus */

#define I 3 /* processus avec le plus faible ident */

#define L 10 /* dimension du buffer (>= 2*N) */#

chan q[N] = [L] of {byte}; /* N canaux de capacite L chacun */

La constante est I est utilisee pour fin d’initialisation seulement. Elle indiquesimplement que le processus recevra le plus petit ident. La capacite L descanaux doit etre d’au moins 2N puisque chaque processus envoie au plus deuxmessages a chaque tour de l’election. Puisque les messages du protocoles neconsistent qu’en un seul parametre, les canaux q[0] ... q[N-1] peuventcontenir des items du type byte.

Pour creer l’anneau et instancier les processus, on utilise init :

init {

byte i;

atomic {

i = 1;

Page 89: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 84

do :: i <= N -> run processus(q[i-1],q[i%N],(N+I-i)%N+1);

i = i+1

:: i > N -> break

od

}

}

ou %N denote l’operateur modulo N. Un processus demarre avec un pa-rametre reel par une commande rum processus (). Le premier parametreest le canal d’entree, le second, le canal de sortie et le dernier,son identifica-teur. Il est ici suppose que chaque processus recoit un identificateur unique.Ceci est esentielle au bon fonctionnement de l’algorithme. Afin que tous lesprocessus demarrent simultanement, on utilise la construction atomic. Cecievite qu’un processus commence a s’executer avant que les autres processusne soient crees.

Notez egalement que les resultats obtenus a la simulation ne sont validesque pour l’affectation particuliere des identificateurs des processus que nousavons choisi.

La specification PROMELA peut maintenat etre verifiee. Les blocages etles parties de code inaccessibles seront detectes. Afin de valider le protocole,divers types de simulation (aleatoire, guidee, interactive) peuvent etre menes.Un exemple des resultats obtenus par simulation est illustre a la figure 6.2.Le comportement de chaque processus, incluant la racine (la ligne la plus agauche), est represente le long d’une ligne verticale.

6.4 La verification d’assertions

Une assertion prends une expression booleenne en parametre. Lorsqu’unespecification PROMELA contient une assertion, SPIN cherche l’existence d’uneexecution qui violerait l’assertion et l’erreur est signalee. Comme exempled’utilisation d’assertions, supposons que nous voulions verifier qu’il existetoujours au plus un leader, il suffit d’ajouter l’assertion

assert(nbre_leaders <= 1)

a notre modele au point ou le processus a compris qu’il avait gagne l’electionet incremente la variable nbre_leaders. On obtient alors :

Page 90: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 85

process:45

process:54

process:31

process:13

process:22

39

41

42

441!4

45

5!5

54

56

57

2!3

58

61

3!2

64

65

4!1

67

1!5

74

76

78

2!4

79

80

5!1

85

3!3

87

4!2

93

951!5

96

972!5

98

1013!5

102

1034!5

104

1065!5

5 is LEADER113

113113

113113

:init::0113

Fig. 6.2 – Diagramme de sequence d’une execution du modele PROMELAdu protocole

Page 91: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 6. UNE BREVE INTRODUCTION A SPIN 86

byte nbre_leaders = 0

proctype processus (chan in, out; byte ident)

{ byte d, e, f;

printf("MSC: %d\n", ident);

eligible:

d = ident;

do :: true -> out!d;

in?e;

if :: (e == d) ->

printf("MSC: %d is LEADER\n", d);

nbre_leaders = nbre_leaders + 1;

assert(nbre_leaders <= 1);

goto stop /* d est le leader */

:: else -> skip

fi;

out!e;

in?f;

if :: (e >= d) && (e >= f) -> d = e

:: else -> goto relay

fi

od;

................ comme avant ........

SPIN ne produit aucune erreur sur cette verification.

Page 92: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Troisieme partie

Specifications logiques

87

Page 93: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 7

Logiques des systemesconcurrents

7.1 Introduction

L’approche logique a la specification des systemes concurrents que nouspresentons dans ce chapitre ne se veut pas une alternative a l’approche ope-rationnelle mais son complement.

Lorsque le systeme de processus concurrents a ete modelise par un au-tomate communicant, eventuellement obtenu par un produit synchronise, ondoit alors valider ce modele en determinant s’il satisfait certaines proprietesrequises au systeme. Ces proprietes du systeme s’expriment en termes de sesetats, de ses transitions ou de ses chemins.

Par exemple, tout automate representant l’algorithme de Peterson doitverifier que :

– il n’existe aucun etat (global) ou les deux processus sont en meme tempsen section critique

– il n’existe aucun deadlock– s’il existe un etat ou un processus essaie de rentrer dans la section

critique alors il existe un etat accessible de cet etat ou ce processus esten section critique

– il n’existe pas de chemin infini constitue uniquement de transitions oules deux processus esaient de rentrer en section critique et n’y entrentjamais (vivacite).

Pour specifier les requis de cette nature, on utilise des langages de spe-

88

Page 94: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 89

cification appeles logiques . Il existe une grande variete de ces logiques quidifferent selon le type de proprietes qu’elles permettent d’exprimer. Nouspresenterons d’abord la logique propositionnelle. Il s’agit essentiellement dulangage de specification des pre et post-conditions des systemes sequentiels.Cette logique, ne permet que de specifier des proprietes purement “locales”des systemes, sans lien avec la structure dynamique de leur enchaınementlors d’une execution. Nous presenterons ensuite une extension de la logiqepropositionnelle appelee logique temporelle lineaire, qui permet d’exprimerdes proprietes des systemes en cours d’execution.

7.2 La logique propositionnelle

Dans cette section, nous presentons la syntaxe et la semantique de lalogique propositionnelle, un langage de specification suffisamment expressifpour exprimer les pre- et les post-conditions que doivent satisfaire les pro-grames sequentiels.

7.2.1 Syntaxe

Les formules de cette logique sont baties inductivement a partir d’unensemble fixe et au plus denombrable de propositions atomiques ou variablespropositionnelles P0, P1, P2, . . . denote Prop et des connecteurs logiques. Cespropositions atomiques expriment des faits elementaires a propos des etatsdu systeme comme par exemple “x < 200”, “x = 0”ou encore “Il n’y a plus declients dans la salle d’attente du barbier”. Il est a remarquer que le choix deProp est important et doit refleter les proprietes du systeme que le concepteurveut verifier.

Exemple 45. Soit Psc0 et Psc1, les deux propositions stipulant que les pro-cessus P0 et P1 respectivement sont en section critique

On considere maintenant le plus petit ensemble L0 de formules tel que– 0 et 1 (les constantes faux et vrai respectivement) sont dans L0

– les propositions atomiques sont dans L0

– si φ et ψ sont dans L0 alors φ ∨ ψ et φ ∧ ψ sont dans L0

– si φ est dans L0 alors ¬φ est dans L0

Page 95: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 90

t2 t3 t4

{p, s}{p, q, r}{p, q, t}

t1

{p, r}

Fig. 7.1 –

Les connecteurs ⇒ (implication) et ⇔ (equivalence) sont definis par

φ⇒ ψ ≡ ¬φ ∨ ψ

φ⇔ ψ ≡ (φ⇒ ψ) ∧ (ψ ⇒ φ)

7.2.2 Semantique

Interpretation sur un automate Dans un etat donne du systeme, ce der-nier doit donc etre en mesure de determiner quelles propositions atomiquessont vraies et quelles propositions atomiques sont fausses. Ceci est etablipar une fonction d’interpretation. Aussi, par la suite, un automate (non eti-quete) sera un quadruplet A = (S, S0, T, ρ) ou S, S0, T sont definis commeprecedemment et ou ρ : S → 2Prop associe a chaque etat s ∈ S, l’interpreta-tion ρ(s) des propositions atomiques dans l’etat s ou de facon equivalente, lesous-ensemble des propositions atomiques valides dans s (nous dirons alorss-valides).

Exemple 46. Soit l’automate donne a la figure 7.1. On a :

Prop = {p, q, r, s, t}

ρ(t1) = {p, q, t}

ρ(t2) = {p, q, r}

ρ(t3) = {p, s}

ρ(t4) = {p, r}

Relation de satisfaction Pour toute formule φ ainsi formee, on definit larelation de satisfaction

A, s |= φ

qui enonce que φ est verifiee (i.e. est interpretee a 1) dans l’etat s de A. Ladefinition est inductive sur la structure de φ a partir de ρ :

Page 96: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 91

– A, s 6|= 0 et A, s |= 1– si φ est atomique alors A, s |= φ si et seulement si φ ∈ ρ(s)– A, s |= φ ∨ ψ si et seulement si A, s |= φ ou A, s |= ψ– A, s |= φ ∧ ψ si et seulement si A, s |= φ et A, s |= ψ– A, s |= ¬φ si et seulement si A, s 6|= φ

Exemple 47. Soit A le produit synchronise de l’algorithme de Peterson alorsA, s |= Psc0 ∧Psc1 si et seulement si les composantes de s le long de P0 et P1

sont toutes deux en section critique.

Il est a remarquer que la satisfaction d’une formule dans un etat donnedepend uniquement de la fonction d’interpretation ρ des propositions ato-miques dans cet etat. Une tautologie est une formule valide dans tous lesetats et une contradiction est une formule qui n’est valide dans aucun etat.

7.3 La logique temporelle lineaire

7.3.1 Notions preliminaires

Les expressions ω-regulieres Pour noter de facon compacte des ensemblesde mots sur un alphabet Σ on utilisera des expressions regulieres etenduespour pouvoir specifier aussi des ensemble de mots infinis ou ω-mots.

Rappelons d’abord que les expressions regulieres sont definies inductive-ment a partir des regles suivantes :

– Si a ∈ Σ alors a est une expression reguliere (qui denote {a})– Si e1, e2 sont des expressions regulieres (denotant E1, E2) alors

– e1e2 est une une expression reguliere (qui denote

E1E2 = {u1u2 : ui ∈ Ei})

– e1 ∪ e2 est une une expression reguliere (qui denote E1 ∪E2 )– Si e est une expressions reguliere (denotant E) alors e∗ est une expres-

sion reguliere (qui denote l’ensemble de toutes les chaınes finies de motsde E incluant la chaıne vide)

Exemple 48. Soit Σ = {a, b, c} alors l’expression reguliere

(ab∗ ∪ c)∗

denote l’ensemble de toutes les sequences de lettres de Σ obtenues par conca-tenation d’un nombre nul ou fini de sequences de la forme

Page 97: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 92

– c ou– a suivi d’un nombre nul ou fini de b

Definition 49. Les expressions ω-regulieres sont definies inductivement apartir des regles suivantes :

– Si e1, e2 sont des expressions regulieres (denotant E1, E2) alors e1eω2

est une expression ω-reguliere (ou eω2 denote l’ensemble de toutes les

chaınes infinies de mots de E2)– Si e1, e2 sont des expressions ω-regulieres alors e1 ∪ e2 est une une

expression ω-reguliere.

Par induction sur la structure des expressions ω-regulieres, on obtient laforme normale suivante pour les expressions ω-regulieres :

Theoreme 50. Une expression est ω-reguliere si et seulement si elle est dela forme :

⋃n

i=1 eifωi ou ei et fi sont des expresssions regulieres.

Exemple 51. Soit Σ = {a, b, e} alors l’expression ω-reguliere

(e∗ae∗b)∗eω ∪ (e∗ae∗b)ω

denote l’ensemble des ω-sequences sur Σ dans lesquelles :

1. toute occurrence de a doit etre suivie de e∗b et

2. toute occurrence de b doit etre precedee de ae∗.

Si l’action a denote l’action d’entree dans la section critique, b, l’action desortie de la section critique et e, toute autre action alors cette expression ω-reguliere specifie exactement les ω-sequences d’actions valides de l’algorithmed’exclusion mutuelle de Peterson.

Les chemins Rappelons qu’un chemin c dans A est une suite (vide, nonvide, fini ou infini) s1s2s3 . . . telle que si−→si+1 ∈ T , pour tout i ≥ 1.

Exemple 52. Soit l’automate donne a la figure 7.1. Les chemins infinis issusrespectivement de s1, s2, s3 et s4 sont specifies par les expressions ω-regulieressuivantes

– t1(t2t3t4)ω

– (t2t3t4)ω

– (t3t4t2)ω

– (t4t2t3)ω

Page 98: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 93

On peut munir l’ensemble des chemins finis d’un produit de concatena-tion : si c1 = s0s1 . . . sn et c2 = t1t2 . . . tm alors c1c2 = s1s2 . . . snt1t2 . . . tm.On peut egalement definir la concatenation d’un chemin fini et d’un chemininfini : si c1 = s1s2 . . . sn et c2 = t1t2 . . . alors c1c2 = s1s2 . . . snt1t2 . . ..

7.3.2 Syntaxe

On considere maintenant le plus petit ensemble L1 de formules tel que– 0 et 1 sont dans L1

– Prop ⊆ L1

– si φ et ψ sont dans L1 alors φ ∨ ψ et φ ∧ ψ sont dans L1

– si φ est dans L1 alors ¬φ est dans L1

– si φ est dans L1 alors Nφ est dans L1

– si φ et ψ sont dans L1 alors φUψ est dans L1

7.3.3 Semantique

Pour toute formule φ ∈ L1, on definit la relation de satisfaction

A, c |= φ

qui enonce que φ est verifiee sur le chemin c = t1t2 . . . de A. La definition estinductive sur la structure de φ :

– A, c 6|= 0 et A, c |= 1– Si φ est atomique alors A, c |= φ si et seulement si φ ∈ ρ(t1)– A, c |= φ ∨ ψ si et seulement si A, c |= φ ou A, c |= ψ– A, c |= φ ∧ ψ si et seulement si A, c |= φ et A, c |= ψ– A, c |= Nφ si et seulement si c = t · c′ et A, c′ |= φ– A, c |= ¬φ si et seulement si A, c 6|= φ– A, c |= φUψ si et seulement si

– A, c |= ψ ou– c = t1 . . . tnc

′ avec A, c′ |= ψ et pour tout i ∈ {1, . . . , n} A,

ti . . . tnc′ |= φ

Exemple 53. Soit l’automate donne a la figure 7.1. On a :– A, t1(t2t3t4)ω |= p ∧ ¬r– A, t1(t2t3t4)ω |= r ⇒ s– A, t1(t2t3t4)ω 6|= N (p⇔ s)

Page 99: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 94

– A, t1(t2t3t4)ω |= NN s– A, t1(t2t3t4)ω |= qU s– A, t1(t2t3t4)ω |= qU r– A, (t2t3t4)ω |= qU r

7.3.4 Operateurs temporaux auxilliaires

Afin de faciliter la specification, des proprietes, nous allons maintenantintroduire quelques operateurs temporaux auxilliaires :

– 3φDef= 1Uφ (Inexorablement φ)

– 2φDef= ¬3¬φ (Toujours φ)

Derivons maintenant la semantique de ces nouveaux operateurs a partirdes operateurs temporaux primitifs :

1. A, c |= 3φ si et seulement s’il existe un suffixe c′ de c tel que A, c′ |= φ

En effet, A, c |= 1Uφ si et seulement si

A, c |= φ ou ∃n(c = t1t2 . . . tnc′ ∧ c′ |= φ)

2. A, c |= 2φ si et seulement si pour tout suffixe c′ de c, A, c′ |= φ

En effet A, c |= ¬3ψ si et seulement si ψ n’est jamais valide le long dec. En prenant ψ = ¬φ, on obtient que A, c |= ¬3¬φ si et seulement siφ est toujours valide le long de c.

Exemple 54. Soit l’automate donne a la figure 7.1. On a :– A, t1(t2t3t4)

ω |= 2 p– A, t1(t2t3t4)ω |= 3 p

Voici maintenant quelques proprietes temporelles utiles :

1. Soit c, un chemin infini alors A, c |= 23φ si et seulement s’il existe uneinfinite de suffixes c2 de c tel que

A, c2 |= φ

En effet, A, c |= 23φ

(a) si et seulement si pour tout suffixe c1 de c, A, c1 |= 3φ

(b) si et seulement si pour tout suffixe c1 de c, il existe un suffixe c2de c1 tel que A, c2 |= φ

Page 100: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 95

(c) si et seulement s’il existe une infinite de suffixes c2 de c tel que

A, c2 |= φ

2. A, c |= 32¬φ si et seulement s’il existe un nombre fini de suffixes c′ dec tels que A, c′ |= φ

En effet, A, c |= 32¬φ si et seulement s’il existe un suffixe de c dontaucun suffixe ne satisfait φ.

Exemple 55. Soit l’automate donne a la figure 7.1. On a :– A, t1(t2t3t4)ω |= 23 r– A, t1(t2t3t4)ω |= 23 (qUs)– A, t1(t2t3t4)

ω |= 32¬t

7.4 Model-checking, realisabilite et validite

Jusqu’a present, nous nous sommes contentes d’une definition informelledu model-checking. Nous sommes maintenant en mesure d’en donner unecaracterisation exacte.

Definition 56. Soit A = (S, S0, T, ρ), un automate et φ, une formule de L1

alors :

1. φ est dite realisable d’un etat s si pour tout chemin de A s · c issu des on a A, s · c |= φ. On denote alors par A, s |= φ.

2. φ est dite realisable si elle est realisable de tout etat s ∈ S0. A est alorsappele un modele de φ et on denote par A |= φ.

3. φ est valide si tout automate est un modele de φ. On denote alors par|= φ.

Le probleme du model-checking consiste a verifier qu’etant donne un au-tomate A et une propriete specifiee par une formule φ, on a :

A |= φ

Le probleme du model-checking ne doit pas etre confondu avec celui dela realisabilite d’une formule qui consiste a verifier, qu’etant donnee unepropriete specifiee par une formule φ, il existe un automate A tel que

A |= φ

Page 101: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 96

Exemple 57. Les formules– p⇒ 3q– 2(p⇒ Nq)

sont realisables

Evidemment, le probleme du model-checking et de la realisabilite ne sau-raient etre confondus avec celui de la validite d’une formule qui consiste averifier qu’etant donnee une propriete specifiee par une formule φ, on a :

|= φ.

Ce probleme, beaucoup plus general que celui du model-checking ne sera pastraite dans le cadre de ce cours. Il s’agit de celui du theorem-proving (uneformule valide est aussi appeee theoreme). Il consiste a construire une preuvede la formule a partir d’un ensemble de formules valides appelees axiomes,et de regles dites d’inference.

Exemple 58. – (p ∧ 2(p ⇒ Np)) ⇒ 2p est valide. En voici la preuvepar contradiction : Supposons qu’il existe un chemin σ tel que

σ |= p ∧ 2(p⇒ Np) ∧ ¬2p

alors

σ |= p ∧ 2(p⇒ Np) ∧ ¬2p

⇔ σ0 |= p et ∀iσi |= p⇒ Np et ∃jσ

j |= ¬p.

Soit j0, le plus petit entier tel que σj |= ¬p, on a alors 2 cas :

j0 = 0 Ceci contredit σ0 |= p

j0 > 0 On a alors σjo−1 |= p⇒ Np, ce qui contredit ∀iσi |= p⇒ Np

– p⇒ 3q n’est pas valide– 2(p⇒ Nq) n’est pas valide

7.5 Application a la specification des requis

des systemes concurrents

Un feu de circulation intermittent

On considere le modele A de feu de circulation avec feu orange intermit-tent donne a la figure 7.2.

Page 102: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 97

{v}{r}

{o}

s1 s3

s4

s2

{n}

Fig. 7.2 –

On utilise les propositions atomiques suivantes : r (rouge), o (orange), v(vert), i (intermittent). On a alors les proprietes suivantes :

– A, s1 |= NN o– A, (s1s3s2)

∗(s4s2)ω |= ¬iU i

– A, s1 6|= ¬iU i– A, s4 |= ¬iU i– A, s4 |= iU¬i– A |= 3 o– A, (s1s3s2)

ω |= 2¬i– A |= 23 o– A, (s1s3s2)

∗(s4s2)ω |= 32¬r

Un canal de communication

On considere un canal unidirectionnel parfait forme d’un emetteur S etd’un recepteur R. S et R sont munis d’un tampon de capacite infinie parfait(ne peut ni perdre, ni corrompre, ni retenir indefiniment un message) S.outet R.in respectivement.Un message m envoye par S est d’abord insere dansS.out. Les deux tampons sont connectes par un canal unidirectionnel. A lareception par R m est elimine de R.in. On suppose que les messages sontatomiques et uniquement identifies et que l’ensemble M des messages est fini.

On pose

Prop = {m ∈ S.out : m ∈ M} ∪ {m ∈ R.in : m ∈M}

On formalise les requis suivants en logique temporelle lineaire :– “Un message ne peut etre dans les deux tampons en meme temps”.

2¬(m ∈ S.out ∧m ∈ R.in)

Page 103: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 98

– “Le canal ne perd pas de messages”.

2[m ∈ S.out⇒ 3(m ∈ R.in)]

Si on assume l’unicite des messages car sinon, le cas ou deux copies dem seraient transmises et seule la seconde recue, satisferait la propriete.On pourrait egalement formaliser par :

2[m ∈ S.out⇒ N3(m ∈ R.in)]

puisque m ne peut etre dans les deux tampons a la fois.– “Le canal preserve a la sortie, l’ordre d’entree des messages”

2[m ∈ S.out ∧ ¬m′ ∈ S.out ∧ 3(m′ ∈ S.out)

⇒ 3(m ∈ R.in ∧ ¬m′ ∈ R.in ∧ 3(m′ ∈ R.in))]

– “Le canal ne genere pas spontanement de messages”.

2[(¬m ∈ R.in)U(m ∈ S.out)]

Election dynamique d’un leader

On suppose un nombre fini de N processus dynamiques asynchrones.Chaque processus a une identite unique et un ordre total est determine surces identites. Il s’agit d’elire le processus de rang maximal parmi les processusactives. Si un nouveau processus de rang superieur est active, une nouvelleelection a lieu. On fait les suppositions suivantes sur le comportement dyna-mique des processus :

– ils sont initialement inactifs (et donc ne participent pas a l’election)– ils peuvent s’activer a tout moment (et participer a l’election)– ils ne peuvent rester inactifs indefiniment– une fois actives ils ne peuvent se desactiverOn pose :

Prop = {leaderi : i ≤ N} ∪ {activei : i ≤ N} ∪ {i < j : i, j ≤ N}

On suppose qu’un processus inactif n’est pas un leader. On formalise lesrequis suivants en logique temporelle lineaire :

Page 104: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 99

– “Il y a toujours un et un seul leader”

2[∃ileaderi ∧ (∀j 6=i¬leaderj)]

qui n’est pas verifie puisqu’initialement tous les processus sont inactifs.De plus, la commutation d’un leader a un autre peut difficilement etreatomique. Une autre tentative :

23[∃ileaderi ∧ (∀j 6=i¬leaderj)]

qui permet de n’avoir temporairement aucun leader. Malheureusementelle permet egalement plus d’un leader a la fois. On considere donc les2 proprietes suivantes :

– “Il y a toujours au plus un leader”.

2[∃ileaderi ⇒ (∀j 6=i¬leaderj)]

– “Il y aura assez de leaders en temps voulu” (pour eviter un protocoled’election qui n’elit personne. Un tel protocole remplit la conditionprecedente).

23[∃ileaderi]

– “En presence d’un processus actif de rang superieur le leader finira parse demettre”

2[∀i,j((leaderi ∧ (i < j) ∧ ¬leaderj ∧ activej) ⇒ 3¬leaderi)]

– “Tout nouveau leader sera plus qualifie que le precedent”

2[∀i,j(leaderi ∧ ¬Nleaderi ∧N3leaderj) ⇒ (i < j)]

7.6 Classification des proprietes des systemes

Dans cette section, nous discuterons de quelques classes importantes deproprietes. Il existe plusieurs classifications des types de proprietes des sys-temes. Nous adopterons ici un point de vue tres classique.

Une propriete d’acccessibilite exprime qu’une certaine situation particu-liere peut se produire. Par exemple : un processus peut acceder a sa

Page 105: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 100

section critique ou la machine a cafe peut produire du chocolat aulait ou encore, le systeme peut toujours revenir a son etat initial.Elles sont toujours de la forme : Il existe un chemin le long duquel telle situa-tion va se produire. Ce type de proprietes est difficile a exprimer en logiquetemporelle lineaire. En fait, une propriete comme le systeme peut tou-jours revenir a son etat initial ne peut s’exprimer en logique temporellelineaire. Il faudrait etendre avec des quantificateurs existentiel et universelsur les chemins.

Une propriete de surete est la negation d’une propriete d’accessibilite.Elle exprime que telle ou telle situation indesirable (tel que le blocage)ne peut se produire. Ces proprietes s’expriment sous la forme 2 ¬Φ. Parexemple, 2 ¬Pcs0 signifie que le procesus P0 ne peut jamais acceder a sasection critique. D’autres exemples : La machine a cafe ne produirajamais de chocolat au lait si l’utilisateur demande du cafe ou P0

et P1 n’accederont jamais a leur section critique simultanementqui s’exprime par 2 ¬(Pcs0 ∧ Pcs1). Pour exprimer des proprietes de sureteconditionnelle, il est parfois utile d’utiliser un operateur plus faible que le U(souvent appele le until fort puisque φUψ exige explicitement qu’un ψ-etatsoit atteint ultimement) : l’operateur unless W. φWψ exige que φ soit validetant et aussi longtemps que ψ ne le sera pas. On le definit par :

φWψ ≡ 2φ ∨ (φUψ)

ou de facon equivalente par :

φWψ ≡ 3¬φ ⇒ (φUψ).

Par exemple, la propriete tant que l’utilisateur ne met pas 25 cents, lamachine a cafe ne donnera pas de cafe s’exprime par ¬ money W coffee.

Une propriete de vivacite exprime que sous certaines conditions, un cer-tain evenement souhaitable finira par se produire. On les appelle parfois pro-prietes de progres. Par exemple : la machine a cafe donnera du cafe apreslui avoir insere 25 cents ou le feu passera au vert ou apres etre passeau rouge, le feu passera au vert qui s’exprime par 3v ∧ 2(r ⇒ 3v), enlogique temporelle lineaire. Les proprietes de vivacite conditionnelles quanta elles, s’expriment tres bien a l’aide du until puisque dans φUψ, ψ est tenude se realiser.

L’absence de blocage est une propriete qui exprime qu’une situation ouaucun progres n’est realisable ne peut se produire. Elle est caracteristiquedes systemes reactifs qui doivent tourner en boucle.

Page 106: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 101

7.7 Application a la specification des requis

des modeles PROMELA

La propriete la plus importante que doit satisfaire la specification PRO-MELA du protocole d’lection d’un leader (section 4.3) est d’interdire l’elec-tion de plus d’un leader. En logique temporelle lineaire, on peut exprimerceci par :

2¬(#leaders ≥ 2)

ou de facon equivalente par :

2 (#leaders ≤ 1)

Pour verifier cette propriete avec SPIN, on denote cette formule par [] p

ou [] correspond a 2 et p est declaree par :

#define p (nbre_leaders <= 1)

La variable nbre_leaders est une variable auxilliaire globale de la specifi-cation PROMELA qui tient le compte du nombre de leaders dans le systeme.Il faut donc etendre la specification PROMELA de la section 4.3, de la faconsuivante :

byte nbre_leaders = 0

proctype process (chan in, out; byte ident)

{ byte d, e, f;

printf("MSC: %d\n", ident);

activ:

d = ident;

do :: true -> out!d;

in?e;

if :: (e == d) ->

printf("MSC: %d is LEADER\n", d);

nbre_leaders = nbre_leaders + 1;

Page 107: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 7. LOGIQUES DES SYSTEMES CONCURRENTS 102

goto stop /* d est le leader */

:: else -> skip

......... comme avant .....................

Nous verrons au chapitre suivant comment la propriete [] p est transformeepar SPIN en l’automate infinitaire suivant :

/*

* Formula As Typed: [] p

* The Never Claim Below Corresponds

* To The Negated Formula !([] p)

* (formalizing violations of the original)

*/

never { /* !([] p) */

T0_init:

if

:: (! ((p))) -> goto accept_all

:: (1) -> goto T0_init

fi;

accept_all:

skip

}

Cet automate genere en fait les modeles de la negation de la formule a ve-rifier. Si cette propriete est sauvegardee dans le fichier propriete1, alorsSPIN la verifiera automatiquement si on ajoute au debut ou a la fin de notrespecification PROMELA la commande :

#include "propriete1"

Page 108: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 8

Introduction au model-checking

8.1 Notions preliminaires

Nous avons vu que les modeles d’une formule de la logique temporelle li-neaire sont des chemins infinis et que l’ensemble de ces modeles peut etre unensemble infini (de chaınes infinies). Toutefois, nous verrons que ce sont tou-jours des ensembles reconnaissables par automates finis munis d’une condi-tion d’acceptation appropriee aux ω-mots. Voci donc d’abord quelques defi-nitions de base relatives a ce type d’automate.

Definition 59. Un automate de Buchi est est un quintuplet B = (S, T, S0, F,Σ)ou

– S est un ensemble d’etats– S0 ⊆ S est l’ensemble des etats initiaux– T ⊆ S × Σ × S est l’ensemble des transitions– F ⊆ S, un ensemble d’etats finaux– Σ est un alphabet

Un ω-mot sur Σ est reconnaissable par B si la chaıne des etats visites parl’automate en le lisant de gauche a droite depuis s0, passe par F infinimentsouvent (critere d’acceptation de Buchi).

On notera L(B) l’ensemble des ω-mots sur Σ reconnaissables par B.

Exemple 60. On considere l’automate de Buchi de la figure 8.1 ou F = {s1}et S0 = {s0}. L’ensemble des ω-mots reconnaissables par cet automate est dela forme

(a∗bb∗a)ω ∪ (a∗bb∗a)∗a∗bbω.

103

Page 109: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 104

a b

s0

b

s1

a

Fig. 8.1 – Automate de Buchi

Il est a noter que les ω-mots de la forme (a∗bb)∗aω ne sont pas reconnaissablespar cet automate. Intuitivement, un ω-mot est reconnaissable s’il contient uneinfinite de b.

Concernant la puisssance d’expression des automates de Buchi, on a leresultat suivant, analogue infinitaire du theoreme de Kleene (theoreme 17)enonce au chapitre 2.

Theoreme 61 (Buchi). Un ω-langage est reconnaissable par un automatede Buchi si et seulement s’il est ω-regulier.

Plusieurs proprietes des automates finis classiques se transposent aux au-tomates de Buuchi comme par exemple celle de la decidabilite du problemedu vide autrement dit, il existe un algorithme pour determiner si, etant donneun automate de Buchi B, L(B) = ∅.

En effet, comme S est fini, L(B) = ∅ si etseulement s’il existe des etatss0 ∈ S0 et s ∈ F et des mots finis u ∈ Σ∗ et v ∈ Σ+ tels que s0

u=⇒s et s

v=⇒s

(ou sv

=⇒s′ signifie qu’il exite un chemin dans B de s a s′ etiquete par w).L’existence de tels chemins est decidable en utilisant l’algorithme de Tarjan-Paige pour enumerer les composantes fortement connexes de B accessiblesdes etats de S0 et en verifiant si l’une de ces composantes contient un etatde F .

Nous verrons comment le probleme du model-checking se reduit au pro-bleme du vide.

Page 110: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 105

t2 t3 t4

{p, s}{p, q, r}{p, q, t}

t1

{p, r}

Fig. 8.2 –

(1, 1, 0, 0, 1) (1, 0, 0, 1, 0)

(1, 0, 1, 0, 0)

(1, 1, 1, 0, 0)

Fig. 8.3 –

8.2 Transformation du systeme en automate

de Buchi

Rappelons que l’approche standard consiste a utiliser les formules de la lo-gique temporelle lineaire pour decrire des proprietes de suites s0s1 . . . d’etatsque le programme devrait realiser. Si n proprietes d’etats p1, . . . pn sont ade-quates a la specification consideree alors on considerera les formules genereesa partir de p1, . . . pn comme formules atomiques.

Par exemple, reprenons l’exemple du systeme decrit a la figure 8.2 quiutilise p, q, r, s, t comme propositions atomiques. Dans ce cas, les etats ne sontdiscriminables que par les possibilites qu’offrent les 25 valuations possiblessde p, q, r, s, t, representables par les 25 vecteurs booleens de dimension 5. Parconsequent, la satisfaction d’une formule de la logique temporelle lineairepar le systeme (representable par le chemin t1(t2t3t4)

ω) est determinee parl’ω-mot

(1, 1, 0, 0, 1)[(1, 1, 1, 0, 0)(1, 0, 0, 1, 0)(1, 0, 1, 0, 0)]ω

reconnaissable par l’automate de Buchi obtenu de l’automate de la figure 8.2en posant F = S et en transportant l’etiquette de letat sur la transition issuede cet etat. On obtient alors l’automate de Buchi illustre a la figure 8.3.

Page 111: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 106

8.3 La construction du generateur des mo-

deles d’une formule

Ce qui precede, motive le choix des ω-mots α ∈ ({0, 1}5)ω comme mo-deles possibles : la semantique d’une formule construite inductivement surp, q, r, s, t est donnee par l’ensemble des ω-mots α ∈ ({0, 1}5)ω qui la satis-font, c’est-a-dire par un ω-langage sur l’alphabet {0, 1}5.

Voici maintenant le resultat qui relie les automates de Buchi aux formulesde la logique temporelle lineaire. Dans l’enonce, on utilise |φ| pour denoterla longueur d’une formule φ (i.e. le nombre des symboles qu’elle contient) et|S| pour denoter la cardinalite d’un ensemble S.

Theoreme 62 (Wolper-Vardi-Sistla, 1983). Etant donne une formule φ dela LTL, on peut construire un automate de Buchi Aφ = (S, T, S0, F,Σ) avecΣ = 2Prop et |S| ≤ 2O(|φ|) tel que L(A) est exactement l’ensemble de tous lesmodeles de φ.

L’algorithme de cette construction forme le noyau du model-checker SPIN.Nous allons enoncer les lignes directrices de cette construction en l’illustrantsur des exemples simples pour le cas ou les proprietes atomiques sont p1 etp2. Nous serons alors en mesure de decrire l’architecture generale du model-checker SPIN.

Exemple 63. L’automate de Buchi

(0, 0), (0, 1), (1, 0), (1, 1)

(0, 0), (0, 1), (1, 1)

reconnait precisement les modeles de la formule p1 ⇒ p2

Exemple 64. L’automate de Buchi

(0, 0), (0, 1), (1, 0), (1, 1)

(0, 0), (0, 1), (1, 0), (1, 1) (1, 0), (1, 1)

reconnait precisement les modeles de la formule N p1

Exemple 65. L’automate de Buchi

Page 112: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 107

(1, 0)

(0, 1), (1, 1)

(0, 0), (0, 1), (1, 0), (1, 1)

reconnait precisement les modeles de la formule p1Up2

Exemple 66. De facon similaire, les modeles de la formule

2(p1 → Np2)

sont generes par l’automate de Buchi

(1, 1)(0, 0), (0, 1)(0, 1)

(1, 0), (1, 1)

8.4 L’algorithme de model-checking d’une for-

mule de LTL

Le probleme de la verification de A |= φ se reduit alors a celui de l’inclu-sion de L(A) dans L(Bφ) ou de facon equivalente, a celui de L(A)∩L(Bφ) = ∅c’est-a-dire, a celui de

L(A) ∩ L(B¬φ) = ∅.

Il s’avere en effet que l’implantation de l’intersection est plus simple quecelle de l’inclusion d’une part et d’autre part, calculer le complement d’unautomate de Buchi est difficile. Toutefois, etant donne une formule φ de L1,on peut eviter ce calcul en calculant directement B¬φ plutot que de calculerd’abord Bφ puis de calculer son complement. En pratique, le calcul de B¬φ

est souvent direct. Par exemple, soit

φ = 2(p1 → N3p2)

alors φ specifie les chaınes de couples de valuations de p1 et p2 telles que touteoccurrence ou p1 est valide doit etre suivie d’une occurrence ou p2 est valide.La negation de φ signifie donc qu’il existe une occurrence ou p1 est valide etqui ne sera suivie d’aucune occurrence ou p2 est valide. B¬φ est donc

(1, 0), (1, 1)

(1, 0), (0, 0)(1, 0), (1, 1), (0, 1), (0, 0)

Page 113: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 108

8.5 Calcul de l’intersection

Soit A = (S1, s01, T1, F1,Σ) et B¬φ = (S2, s02, T2, F2,Σ) alors L(A) ∩L(B¬φ) est l’ensemble des ω-mots reconnaissables par l’automate de BuchiB1 ⊗ B2 = (S, s0, T, F,Σ) ou

– S = S1 × S2

– S0 = S01 × S02

– T est la synchronisation de T1 et T2 sur les actions identiques– F = S1 ××F2

Nous illustrons par un exemple. Soit le systeme specife par l’automate :

(1, 1)

(0, 0)(0, 0)

(0, 0)

que l’on modifie en automate de Buchi en mettant les etiquettes sur la tran-sition plutot que sur la source de la transition et en rendant tous les etatsrecurrents :

(0, 0)

(0, 0)

(0, 0)

(1, 1)

(0, 0)

L’automateA⊗B2(p1→N3p2)

est donne par

Page 114: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 109

(0, 0)

(0, 0)

(0, 0)

(1, 1)

(0, 0)

(0, 0)

(0, 0)(0, 0) (0, 0)

(1, 1)

Puisque l’ensemble des etats recurrents est accessible de l’etat initial et qu’uncycle y est possible alors par le theoreme de Buchi (theoreme 61) on a :

L(A) ∩ L(B2(p1→N3p2)) 6= ∅

et par consequentA 6|= 2(p1 → N3p2)

8.6 Le calcul du generateur des modeles par

SPIN

La propriete [] p est transformee par SPIN en l’automate infinitairesuivant :

/*

* Formula As Typed: [] p

* The Never Claim Below Corresponds

* To The Negated Formula !([] p)

* (formalizing violations of the original)

*/

never { /* !([] p) */

T0_init:

if

:: (! ((p))) -> goto accept_all

:: (1) -> goto T0_init

fi;

accept_all:

Page 115: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 8. INTRODUCTION AU MODEL-CHECKING 110

skip

}

Cet automate correspond en fait au generateur de modeles de 3¬p, la nega-tion de la formule a verifier :

0, 10, 10

8.7 Architecture du model-checker de SPIN

?

?

?

XXXXXXXXXXXXz

��

��

��

?

�������������9

PPP

PPP

PPq

Specif. PROMELA P Formule de la LTL φ(= Comportement requis)

¬φ

Generateur des modeles(= never claim)

B¬φ

Conversion en automate de BuchiA

Calcul du produit synchroniseA⊗ B¬φ

L (A⊗ B¬φ)?= ∅

(= comportements possibles)

Oui Non

On a alors : P |= φ Retourne alors un chemin c tel que

P , c 6|= φ

Page 116: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Quatrieme partie

Specifications algebriques

111

Page 117: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

Chapitre 9

Specification des typesabstraits (ADT)

Ce chapitre presnte les notions de base de la specification algebrique quicapture la signification des termes a partir d’une signature au moyen d’equa-tions.

9.1 Exemple introductif : le type string

Comme exemple introductif, voici une liste non-exhaustive des operationsusuelles que l’on retrouve dans le type complexe string de la plupart deslangages de programmation :

new : creation de chaınes vides

append : concatenation de chaınes de caracteres

add to : ajout d’un caractere a une chaıne

# : test de la longueur d’une chaıne

isEmpty ? : test de la chaıne vide

= : test de l’egalite de 2 chaınes

first : selection du 1ier element

On suppose definis par ailleurs les types simples suivants utilises dans ladefinition de string :

character : le type abstrait des caracteres

112

Page 118: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 113

natural : le type abstrait des naturels

bool : le type abstrait des booleeens

9.2 Signatures

Informellement, la signature d’une specification algebrique est la donneedes ensembles de base de la specification ainsi que des operations definies surces ensembles. Plus exactement, c’est une facon de determiner la syntaxe determes algebriques. Une signature comporte :

– Les noms des sortes (ou types)– Les noms des operations et de leur profil donne par leur domaine et

leur co-domainePlus generalement :

Definition 67. Une signature Σ est un ensemble fini de symboles de fonc-tions (ou operateurs) f, g, . . . ou chaque symbole f a une arite ar(f) corres-pondant a son nombre d’arguments.

Un symbole de fonction a, b, c, . . . d’arite zero est appele constante, unsymbole de fonction d’arite un est appele unaire et un symbole de fonctiond’arite un est appele binaire.

La syntaxe que nous utiliserons pour decrire les signatures est illustreepar le tableau suivant :

AdtStringInterface

Use character, natural, boolean ;

Sorts string ;

Operationsnew : () → string ;

append_ _ : string, string → string ;

add_ to_ : character, string → string ;

#_ : string → natural ;

isEmpty ?_ : string → boolean ;

_ = _ : string, string → boolean ;

first_ : string → character ;

Page 119: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 114

9.2.1 Quelques conventions sur les signatures

Une specification algebrique comprend l’entete (nom), l’interface (la si-gnature) et le corps (un ensemble d’axiomes equationnels). Nous utiliseronsde facon generalisee les notation prefixe, infixe et postfixe :

Notation prefixe des operateurs

append : string, string → string ;

qui determine la syntaxe des termes algebriques de la forme :

append x y ou append (x y) ou (append x y)

ou x et y sont des termes algebriques de type string generes par la signaturede sting.

Notation infixe des operateurs

= : string, string → boolean ;

qui determine la syntaxe des termes algebriques de la forme :

x = y ou (x = y)

ou x et y sont des termes algebriques de type string generes par la signaturede sting.

Notation mixte des operateurs

add to : character, string → string ;

qui determine la syntaxe des termes algebriques de la forme :

add c to append(x y)

ou x et y sont des termes algebriques de type char et string generes par lasignature de sting.

Page 120: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 115

Classification des operateurs

Pour une specification donnee, les sortes sont classifiees en deux catego-ries. La sorte string est appelee la sorte d’interet tandis que character,natural et boolean sont appelees les sortes auxilliaires.

Les operations quant a elles sont classifiees constructeur ou generateur,destructeur, selecteur, observateur. Dans notre exemple, les operations ob-servatrices (du contenu des composantes du type string) sont :

# : string → natural ;isEmpty ? : string → boolean ;

= : string, string → boolean ;L’operation selectrice (d’une composante d’une valeur du type string) est :

first : string → character ;Les operations generatrices (de valeurs du type string) sont :

new : () → string ;append : string, string → string ;add to : character, string → string ;

et ici, il n’y a pas de destructeur.

9.3 Variables et termes

Comme le but de la signature est de permettre l’ecriture de termes al-gebriques, nous supposons l’existence d’un ensemble infini de variables etqu’elles sont distinctes de tous les symboles consideres par ailleurs commeles constantes, les denotations de fonctions ou de sortes. Comme l’ecritured’une variable sans la specification de sa sorte ne signifie rien, on declareratoujours la liste des sortes des variables. On apelle cette liste une affectationde sorte :

Definition 68. Une affectation de sorte est donc un ensemble de pairesordonnees variables : sorte dans lequel aucune variable n’a plus d’une sorte.

Par exemple :

x : string ; y : string ; c : character ;

Muni d’une signature et d’une affecttaion de variables, on definit l’en-semble des termes algebriques par induction sur les operations de la signa-ture, a partir des variables. Par exemple : add c to x = append(x y) etappend(new, add x to c) sont des termes algebriques.

Page 121: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 116

Plus generalement,

Definition 69. L’ensemble des termes algebriques T(Σ) est le plus petitensemble tel que

– x : s ∈ T(Σ)pour chaque x : s dans Γ,

– ft1t2 . . . tn : s ∈ T(Σ),pour chaque operateur f : s1, s2, . . . , sn → s de Σ etn-tuple de termes algebriques t1 : s1, t2 : s2, . . . , tn : sn de T(Σ).

Un terme est dit clos ou ferme s’il ne contient pas de variables. On note parTΣ, l’ensemble des termes clos.

Exemple 70. soit f , un symbole de fonction binaire, g, un symbole de fonc-tion unaire et a une constante alors les termes clos que l’on peut typiquementconstruire sur cette signature sont les termes suivants :

1. a 2. f(a, a) 3. g(a) 4. f(f(a, a), f(a, a)) 5. f(f(a, a), g(a)) 6. f(g(a), f(a, a))7. f(g(a), g(a)) 8. g(f(a, a)) 9. g(g(a)) 10. f(g(f(a, a)), g(g(a))) . . .

9.4 Substitution de termes

La substitution est une operation sur les termes permettant de remplacerdes variables contenues dans un terme par d’autres termes. On peut definirla substitution par induction sur la structure de u comme suit :

(ft1t2 . . . tn)[u/x] = ft1[u/x]t2[u/x] . . . tn[u/x]

y[u/x] =

{u si y = xy sinon

Ex. : append(new, (add x to c))[(add y to c’)/c] =

append(new, (add x to (add y to c’)))

Plus exactement :

Definition 71. Soit Σ, une signature et x : s ∈ Γ et TΣ. L’operation desubstitution dans un terme t des occurrences de la variable x par le termeu : s, notee t[u/x], consiste simplement a remplacer toutes les occurrences dex par u dans t.

Page 122: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 117

Exemple 72. Soit f un symbole de fonction binaire et a, b, des constantesalors

– f(x, y)[a/x, b/y] ≡ f(a, b)– Il n’y a pas de substitution telle que f(x, x)[u/x] ≡ f(a, b)– f(x, y)[b/x, b/y, b/z] ≡ f(z, z)[b/x, b/y, b/z]– Il n’y a pas de substitution telle que g(x)[u/x] ≡ x[u/x]

Nous utiliserons t1 ≡ t2 pour denoter que les termes t1 et t2 sont syntaxi-quement identiques.

9.5 Axiomatisations

Le langage de specification des proprietes est celui de la logique du premierordre avec egalite. La forme la plus simple que peuvent prendre ces proprietessont les axiomes .

Definition 73. Une axiomatisation de Σ est un ensemble d’equations bienformees de la forme t = t′ ou t, t′ ∈ T(Σ) appelees axiomes. Une equation estbien forme si le membre de gauche et le membre de droite sont deux termesdu meme type.

L’exemple des chaınes peut etre axiomatise de la maniere suivante :

Axioms

Page 123: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 118

isEmpty ?(new) = true ;

isEmpty ?(add c to x) = false ;

#(new) = 0 ;

#(add c to x) = #(x) + 1 ;

append(x, new) = x

append(x, add c to y) = add c to (append x y) ;

(new = new) = true ;

(add c to x = new) = false ;

(new = add c to x) = false ;

(add c to x = add d to y) = (c = d) and (x = y) ;

wherex, y : string ;

c, d : char ;

End String ;

Attention ! ! ! le symbole“=”denote a la fois un operateur de la signaturede string et le (meta-)operateur du langage de specification des proprietes.

Un autre exemple est celui de la specification des booleens :

AdtBooleansInterface

Sorts boolean ;

Operationstrue : () → boolean ;

false : () → boolean ;

not _ : boolean → boolean ;

_ and _ : boolean, boolean → boolean ;

_ or _ : boolean, boolean → boolean ;

_ xor _ : boolean, boolean → boolean ;

_ = _ : boolean, boolean → boolean ;

BodyAxioms

Page 124: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 119

not (true) = false ;

not (false) = true ;

(true and b) = b ;

(false and b) = false ;

(true or b) = true ;

(false or b) = b ;

(false xor b) = b ;

(true xor b) = not(b) ;

(true = true) = true ;

(true = false) = false ;

(false = true) = false ;

(false = false) = true ;

whereb : boolean ;

End Booleans ;

Toute axiomatisation sur une signature Σ induit une relation binaire “=”sur T(Σ).

Definition 74. Une axiomatisation sur une signature Σ induit une relationbinaire = sur T(Σ) comme suit :

– Substitution Si t1 = t2 est un axiome alors t1[u/x] = t2[u/x].– Equivalence la relation = est une relation d’equivalence :

– t = t pour tout terme t (reflexivite)– si s = t alors t = s (symetrie)– si s = t et t = u alors s = u (transitivite)

– Passage au contexte Si t = u et f ∈ Σ alors

ft1t2 . . . ti−1tti+1 . . . tn = ft1t2 . . . ti−1uti+1 . . . tn

Exemple 75. Soit a, b, c, des constantes, f un symbole de fonction d’arite 3avec l’axiomatisation

fxyz = fzxy

fxyz = fyxz

fxcy = x

alors

Page 125: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 120

– fbca = fbcb car fbca = b = fbcb– facb = b car facb = fcab = fbca = b– fcc(fccb) = b car fcc(fccb) = fcc(fbcc) = fccb = fbcc = b

9.6 Modeles initiaux

Une specification algebrique est la donnee d’une signature Σ et d’un en-semble d’equations entre les termes de T(Σ) (axiomes). De cette specification,on peut soit

1. utiliser un raisonnement equationnel pour deriver d’autres equationsentre les termes ou bien,

2. se demander quelles representations concretes de structures de donneesimplantent cette specification abstraite.

En fait, ces deux approches sont etroitement reliees :

1. les equations derivees doivent etre satisfaites dans toute implantationde la specification. Cette propriete s’appelle la coherence.

2. Reciproquement, toutes les equations satisfaites dans une implantationde la specification doivent etre derivables de la specification. Cete pro-priete s’appelle completude.

Definissons maintenant tres exactement ce que l’on entend par represen-tation concrete d’une specification afin de donner un sens precis aux explica-tions ci-dessus.

Definition 76. Soit une signature Σ et un ensemble d’axiomes sur Σ (axio-matisation) induisant une relation d’egalite = sur T(Σ). Un modele de laspecification est donne par un ensemble M et une application φ : TΣ → M.

– (M, φ) est coherent si s = t implique φ(s) ≡ φ(t), pour tout s, t ∈ TΣ

– (M, φ) est complet si φ(s) ≡ φ(t) implique s = t, pour tout s, t ∈ TΣ

Intuitivement φ donne une interpretation a chaque terme ferme dans M.Par exemple, deux modeles possibles de boolean sont

1. Une implementation correcte de boolean sur un byte.

2. Une implementation correcte de boolean sur un bit.

Exemple 77. Soit la signature formee d’une constante a et d’un symbole defonction unaire f muni de l’axiome f(x) = f(f(x)) alors

Page 126: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 121

– MDef= {0} et φ(fk(a))

Def= 0 pour tout k ∈ N est coherent mais pas

complet

– MDef= {0, 1}, φ(f 2k(a))

Def= 0 et φ(f 2k+1(a))

Def= 1 pour tout k ∈ N n’est

ni coherent ni complet

– MDef= {0, 1}, φ(a)

Def= 0 et φ(fk+1(a))

Def= 1 pour tout k ∈ N est coherent

et complet

– MDef= N, φ(fk(a))

Def= k pour tout k ∈ N est complet mis pas coherent.

Par la clause 2 de la definition 74 la relation degalite induite par lesaxiomes est une relation d’equivalence. Par consequent, il divise l’ensembledes termes clos TΣ en classes d’equivalence ou les termes clos s et t sontdans la meme classe si et seulement si s = t. L’expression [[t]] denote la classed’equivalence de t c’est-a-dire [[s]] = [[t]] si et seulement si s = t. L’ensemble

{[[t]] : t ∈ TΣ} et l’application φ(t)Def= [[t]] pour tout t ∈ TΣ, forme un modele

coherent et complet pour l’axiomatisation. On l’appelle modele initial pourl’axiomatisation.

Exemple 78. Soit une specification des entiers naturels de signature formeede la constante 0, de la fonction unaire successeur S et des fonctions binairesaddition + et multiplication ·. Leur semantique est specifiee par les axiomessuivants :

1. x+ 0 = x

2. x+ S(y) = S(x+ y)

3. x · 0 = 0

4. x · S(y) = (x · y) + x

Le modele initial pour cette axiomatisation est compose des classes

[[0]], [[S(0)]], [[S2(0)]], [[S3(0)]], . . . .

ou

[[0]] = {0, 0 · S(0), 0 + 0, 0 + (0 + 0), S(0) · 0, S(S(0)) · 0 · · ·}

[[S(0)]] = {S(0), S(0) · S(0), 0 + S(0), (0 + S(0)) + 0, (S(0) · S(0)) · S(0) · · ·}

[[S(S((0))]] = {S(S(0)), S(0) · S(S(0)), S(0) + S(0), (S(0) + S(0)) + S(0), · · ·}

Exemple 79. Soit a, b, des constantes et f un symbole de fonction unairealors :

Page 127: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 122

– {[[a]], [[b]]} est un modele initial de l’axiomatisation {x = f(x)} pour lasignature {a, b, f}

– {[[a]]} est un modele initial de l’axiomatisation {x = f(x)} pour la si-gnature {a, f}

– {[[fk(a)]] : k ∈ N} est un modele initial de l’axiomatisation vide ∅ pourla signature {a, f}

Etant donnee une axiomatisation pour une signature, les symboles defonctions preservent les classes d’equivalence du modele initial c’est-a-dire, sisi = ti alors fs1s2 . . . sn = ft1t2 . . . tn pour tout f d’arite n de la signature.Par consequent [[ft1t2 . . . tn]] est entierement defini par [[t1]], [[t2]], . . . [[tn]] :

[[ft1t2 . . . tn]] = f [[t1]][[t2]] . . . [[tn]].

Exemple 80. S([[0]]) + S([[0]]) ≡ [[S(S(0)]]. En effet,

S([[0]]) + S([[0]]) ≡ [[S(0)]] + [[S(0)]] ≡ [[S(0) + S(0)]] ≡ [[S(S(0))]]

Le modele initial correspond donc bien a l’idee intuitive de ce que devraitetre une implantation standard de la specification. Intuitivement, le modeleinitial contient seulement les elements qui sont minimalement requis. Parexemple, le modele de la specification des entiers donnee a l’exemple 78 necontient que les elements nommes par les entiers 0, 1, 2, .... Par opposition, unmodele arbitraire de cette specification pourrait contenir des elements en suscomme par exemple des entiers qui se comportent comme s’ils etaient“infinis”.De tels elements sont parfois appeles junk puisqu’ils ne sont pas definissablespar des termes et que par consequent, ne seront jamais des valeurs “calculees”dans le modele. Par contre, un modele qui contiendrait moins d’elementsdevrait identifier des elements distincts c’est-a-dire dont l’egalite n’est pasderivable. Ces modeles creent ce qu’on appelle de la confusion. On peut doncresumer les deux proprietes principales des modeles initiaux par les slogans :

– Pas de junk c’est-a-dire pas d’elements en extra qui ne peuvent etrenommes par un terme.

– Pas de confusion c’est-a-dire pas d’elements identifies si ce n’est pasdans les requis de la specification.

9.7 Axiomes conditionnels positifs

Les axiomes conditionnels positifs sont une extensions des equations. Cesont des formules de la forme :

Page 128: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 123

t1 = t′1 ∧ t1 = t′1 ∧ . . . t1 = t′1 ⇒ t = t′.

La logique ainsi obtenue, restreinte relativement a la logique du premierordre, a l’avantage d’etre decidable et de pouvoir aisement se combiner avecles axiomes par des regles dites de reecriture que nous illustrerons dans uneprochaine section. La liste d’axiomes suivante complete l’axiomatisation destring :

isEmpty ?(x) = false ⇒ first(add c to x) = first x ;

isEmpty ?(x) = true ⇒ first (add c to x) = c ;

Un autre exemple est celui de la specification des entiers naturels :

AdtNaturalsInterface

Use Booleans ;

Sorts natural ;

Generators0 : () → natural ;

succ _ : natural → natural ;

Operations_ + _ natural, natural → natural ;

_ - _ : natural, natural → natural ;

_ * _ : natural, natural → natural ;

_ div _ : natural, natural → natural ;

_ mod _ : natural, natural → natural ;

max _ _ : natural, natural → natural ;

_ = _ : natural, natural → boolean ;

_ <= _ : natural, natural → boolean ;

_ < _ : natural, natural → boolean ;

_ > _ : natural, natural → boolean ;

_ >= _ : natural, natural → boolean ;

even _ : natural → boolean ;

2** _ : natural → natural ;

_ **2 : natural → natural ;

Page 129: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 124

BodyAxioms

Page 130: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 125

0 + x = x ; ((succ x) + y) = succ(x + y) ;

; ; Soustraction : if y > x then x - y = 0

0 - x = 0 ; ((succ y) - 0) = succ(y) ;

((succ y) - (succ x)) = (y - x) ;

x * 0 = 0 ; x * (succ y) = (x * y) + x ;

; ; Division : if y = 0 then (x div y) = 0

x div 0 = 0 ;

(x < y) = true ⇒ (x div y) = 0 ;

((x >= y) = true) and ((y = 0) = false) ⇒(x div y) = succ((x - y) div y) ;

; ; Modulo : if y = 0 then (x mod y) = 0

x mod 0 = 0 ;

((y = 0) = false) ⇒ (x mod y) = (x - (y * (x div y))) ;

2**0 = succ(0) ; 2**(succ x) = succ(succ(0)) * (2**x) ;

even(0) = true ; even(succ(x)) = not even(x) ;

(0 = 0) = true ; (0 = succ(x)) = false ; (succ(x) = 0) = false ;

(succ(x) = succ(y)) = (x = y) ;

(0 < 0) = false ; (0 < succ x) = true ; (succ x < 0) = false ;

(succ x < succ y) = (x < y) ;

(x <= y) = ((x = y) or (x < y)) ;

(x > y) = not (x <= y) ;

(x >= y) = ((x = y) or (x < y)) ;

(x >= y) = true ⇒ max(x y) = x ;

(x >= y) = false ⇒ max(x y) = y ;

(x ** 2) = (x * x) ;

wherex, y : natural ;

Page 131: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 126

End Naturals ;

9.8 Raffinement d’une specification

La decomposition hierarchique des specifications par raffinement est ba-see sur le principe suivant. Le modele initial de la specification raffinee doitrespecter, relativement au modele initial de la specification de depart lesslogans :

– Pas de junk (completude hierarchique)– Pas de confusion (coherence hierarchique)Donnons un sens plus precis a l’idee de raffinement :

Definition 81. Nous dirons qu’une specification Spec0 raffine la specifica-tion Spec1 si :

– La signature de Spec1 est incluse dans celle de Spec0– L’axiomatisation de Spec1 est incluse dans celle de Spec0

9.8.1 Completude hierarchique

Nous allons donner ici un exemple illustrant la situation de junk. La spe-cification ci-dessous raffine celles de Naturals et de Booleans. Elle est enquelque sorte la specification d’un module forme des modules de Naturals

et de Booleans. Dans cette situation, nous avons maintenant une nouvellevaleur pour f(0) dans le modele initial de Incompletude relativement a celuide Booleans car aucun axiome de Incompletude n’indique que f(0) vauttrue ou false.

AdtIncompletudeInterface

Use Naturals, Booleans ;

Sorts incomletude ;

Operationsf _ : boolean → boolean ;

BodyAxiomsf(succ(x)) = false ;

wherex : natural ;

Page 132: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 127

End Incompletude ;

9.8.2 Coherence hierarchique

Nous avons vu que cette contrainte interdit l’ecrasement de valeurs commel’illutre l’exemple suivant :

AdtIncoherenceInterface

Use Naturals, Booleans ;

Sorts incoherence ;

Operationsf _ : boolean → boolean ;

BodyAxiomsf(succ(x)) = false ;

f(0) = true ;

f(succ(succ(x))) = true ;

wherex : natural ;

End Incoherence ;

Le probleme que nous avons maintenant est que true = false dans lemodele initial de Incoherence.

Dans le cadre de la logique du premier ordre, les problemes de coherence etde completude hierarchique sont indecidables. Il existe toutefois une methoded’ecriture des axiomes applicable dans des cas simples qui permet de garantirla completude hierarchique. L’idee est la suivante : une decomposition sys-tematique dans les axiomes des domaines des fonctions selon les operationsgeneratrice de la specification, permet de couvrir tous les cas d’evaluationd’une fonction et donc, de ne pas introduire de nouvelles valeurs dans lasorte du co-domaine. C’est en general la technique que nous avons utiliseedans les specifications presentees dans ce chapitre :

1. Pour chaque operation f : s1, s2, . . . , sn → s on ecrit f(x1, x2, . . . xn)comme cote gauche de l’equation de l’axiome ou x1 : s1, x2 : s2, . . . , xn :sn.

Page 133: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 128

2. Pour chaque variable, on ecrit un axiome valide pour toutes les valeursdu domaine de cette variable.

3. Si ce n’est pas possible, on partitionne le domaine au moyen des gene-rateurs et, pour chaque element de la partition du domaine, on ecrit unaxiome valide pour toutes les valeurs de cet element de partition.

Ex. : Dans le cas de l’operateur add_to de string :

(new = new) = true ;

(add c to x = new) = false ;

(new = add c to x) = false ;

(add c to x = add d to y) = (c = d) and (x = y) ;

4. Si le generateur du domaine ne suffit pas a partitionner le domaine,on introduit une serie de sous-cas exprimes en termes de preconditionspour partitionner le domaine et, pour chaque element de la partition,on ecrit un axiome valide pour toutes les valeurs de cet element departition.

Exemple 82. Dans le cas de l’operateur div de natural :

x div 0 = 0 ;

(x < y) = true ⇒ (x div y) = 0 ;

((x >= y) = true) and ((y = 0) = false) ⇒(x div y) = succ((x - y) div y) ;

9.9 Derivation d’equations entre termes ge-

neriques

Nous avons vu comment la relation d’egalite entre les axiomes s’etend aTΣ. Donnons encore un exemple :

Exemple 83. succ(0) + succ(succ(0)) = succ(succ(succ(0)))

1. succ(0) + succ(succ(0)) = succ(0 + succ(succ(0)))

axiome succ(x) + y = succ(x+y) et

substitution avec x=0 et y = succ(succ(0))

2. 0 + succ(succ(0)) = succ(succ(0))

axiome 0 + x = x et

substitution avec x= succ(succ(0))

Page 134: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 129

3. succ(0 + succ(succ(0))) = succ(succ(succ(0)))

passage au contexte avec succ sur (2)

4. succ(0) + succ(succ(0)) = succ(succ(succ(0)))

transitivite sur (1) et (3)

On on ne pourrait pas deduire

succ(succ(succ(0))) − succ(succ(0)) = 0.

En effet, apres reduction a des termes irreductibles, on obtient succ(0)

= 0 qui n’est clairement pas valide.Il est toutefois a remarquer que, par exemple, x− x = 0 n’est pas de-

ductible des axiomes de natural bien que toutes ses instantiations fermeese.g.

succ(succ(0)) − succ(succ(0)) = 0 ou

succ(succ(succ(0))) − succ(succ(0))) = 0

le soient. C’est egalement le cas pour x + y = y + x. En effet, aucun de cesaxiomes ne s’applique a x+ y ou y + x.

Definition 84. Une axiomatisation sur une signature est ω-complete si touteequation s = t avec s, t ∈ T(Σ) peut etre derivee de l’axiomatisation si toutesses instantiations fermees le sont.

Exemple 85. Pour chacune des trois axiomatisations de l’exemple 79, ona :

– l’axiomatisation {x = f(x)} pour la signature {a, b, f} est ω-complete– l’axiomatisation {x = f(x)} pour la signature {a, f} n’est pas ω-complete.

Par exemple, x = y n’est pas derivable bien que toutes ses instantiationsfermees le soient.

– l’axiomatisation vide ∅ pour la signature {a, f} est ω-complete.

9.10 Reecriture de termes

Un systeme de reecriture de termes est compose d’un ensemble de reglesde la forme s→ t ou s, t sont des termes de tels que s n’est pas une variableseule et t n’introduit pas de nouvelles variables.

Page 135: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 130

Definition 86. Un systeme de reecriture de termes est compose d’un en-semble de regles de la forme s→ t avec s, t ∈ T(Σ) ou

1. s n’est pas une variable seule ;

2. toutes les variables de t sont des variables de s.

L’idee intuitive est d’orienter les axiomes s = t de la specifications puisd’appliquer ces regles de gauche a droite pour reduire les termes sans que l’ap-plication de la rgle n’introduise de nouvelles variables (e.g. l’axiome not(true)= false devient not(true) → false) jusqu’a l’obtention d’une forme irre-ductible appelee forme normale.

La relation → induit sur T(Σ) une relation semblable a celle de = in-duit sur TΣ (voir Definition 74) sauf que cette relation n’est pas symetriquepuisque les regles sont orientees de gauche a droite.

Notons t→∗ t′ une suite t→ . . .→ t′ ou t′ est irreductible. Alors t = t′ estdemontrable par reecriture s’il existe un terme t0 tel que t→∗ t0 et t′ →∗ t0.Par exemple, dans le cas de boolean, en orientant les axiomes de gauche adroite :

1. not(true) → false ;

2. not(false) → true ;

3. (true and b) → b ;

4. (false and b) → false ;

5. (true or b) → true ;

6. (false or b) → b ;Nous pouvons demontrer par reecriture des termes de Boolean :

not(false or (true and false)) = true

par l’application des suites de regles (6, 3, 2) et (3, 6, 2).Il est a noter que pour trouver une derivation a s = t, il est suffisant de

reduire s et t a un meme terme u : s → s1 → · · · → sk → u et t → t1 →· · · → tl → u. Ceci repose sur le fait que les regles de reecriture sont desversions dirigees des axiomes : s = s1 = · · · = sk = u = tl = · · · = tl = t.

Un systeme de reecriture est convergent s’il n’induit pas de suites diver-gentes i.e. de suites infinies de reductions t0 → t1 → t2 · · ·. Il est a remarquerque les deux conditions de la definition 86 :

1. s n’est pas une variable seule ;

2. toutes les variables de t sont des variables de s.

Page 136: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 131

sont necessaires a la convergence.Les conditions d’utilisation de ce principe d’orientation des regles sont

toutefois moins robustes qu’il n’y parait :

1. Ce principe n’est satisfaisant que si le systeme de preuves obtenue estconvergent et le probleme de convergence est en general tres difficile.

2. Ce principe n’est pas suffisant pour demontrer toutes les equationsdeductibles d’une specification comme l’illustre l’exemple suivant :

AdtMachintrucsInterface

Sorts machintruc ;

Operations0 : () → machintruc ;

- _ : machintruc → machintruc ;

_ + _ : machintruc machintruc → machintruc

BodyAxioms1. 0 + x = x ;

2. x + (-x) = 0 ;

End Machintrucs ;

Les regles obtenues en orientant les axiomes de gauche a droite ne suffisentpas a demontrer par exemple que - 0 = 0. Il est en effet necessaire pour cefaire, d’appliquer l’axiome 1 de droite a gauche puis l’axiome 2 de gauche adroite. Ce mecanisme d’orientation est clairement insuffisant, en particulierpour les axiomes des operations generatrices. En pratique, ce mecanisme estneanmoins suffisant dans de nombresuses situations.

9.11 Breve revue de litterature

[4] est une introduction a l’application des specifications algebriques a l’in-genierie des systemes (ou de portions de systemes) critiques qui completeratres bien la breve introduction aux specifications algebriques presentee ici. Ony trouvera quelques etudes de cas dont celui, par exemple, de la specificationalgebrique d’un petit langage de programmation permettant d’interpreter desexpressions entieres et booleennes. On peut alors se servir de cette descriptionpour valider formellement des programmes dans ce langage.

Page 137: M´ethodes de sp´ecification de logiciels · 2007. 1. 12. · Table des mati`eres I Partie introductive 1 ... 4.6 Les r´eseaux color´ees : ... qu’aux programmeurs industriels

CHAPITRE 9. SPECIFICATION DES TYPES ABSTRAITS (ADT) 132

[3] est un ouvrage specialise sur l’application des specifications algebriquesa l’ingenierie des protocoles. Les notions theoriques qui y sont appliqueesdepassent celles exposees ici. Toutefois, le lecteur interesse y trouvera unebelle illustration de la puissance d’expression des specifications algebriques.

Pour une vue d’ensemble de la specification algebrique des donnees quiviendra bien completer cette presentation introductive, nous conseillons [1,2].

References bibliographiques

1. J.A. Bergstra, J. Heering, P. Klint, Eds, Algebraic Specification, ACMPress Frontier Series, ACM/Addison Wesley (1989).

2. J. Loeckx, H.-D. Ehrig, M. Wolf, Specification of Abstract Data Types,Wiley/Teubner (1996).

3. S. Mauw, G.J. Veltink, Algebraic Specification of Communication Pro-tocols, Cambridge Tracts in Theoretical Computer Science 36, Cam-bridge University Press (1993).

4. I. Van Horebeek, J. Lewi, Algebraic Specifications in Software Enginee-ring : an Introduction, Springer (1989).