Vous êtes sur la page 1sur 53

Introduction au langage Z

ements du g Cours LOG2000 - El enie logiciel

S.Fourmanoit

E.Merlo R esum e

R.Roy

Ce document pr esente les concepts de base de Z, un langage de sp ecications formelles. Il pr esuppose de la part du lecteur une connaissance intuitive de la th eorie des ensembles et de la logique des propositions.

Table des mati` eres

Introduction Langage math ematique de Z Langage sch ematique de Z Exemple de sp ecication Exercices R ef erences

1 4 29 42 48 51

LOG2000 - Introduction au langage Z

Introduction

Introduction
tre M ethodes formelles Techniques, bas ees sur les math ematiques, pouvant e ` tous les stages du d utilis ees a eveloppement logiciel. Par formelles , on d esigne des m ethodes dont le but principal est de rendre pr ecices des id ees de d eveloppement auparavant vagues ou simplement intuitives [SP98].

` la repr Langage de sp ecications formelles Sert a esentation abstraite de cer` la manipulation tains aspects dun produit logiciel, principalement quant a esigne une des donn ees (data manipulation design). Par abstraite , on d repr esentation parfaitement d ecoupl ee de toute impl ementation, bien que sufsement pr ecise et contraignante pour lorienter [WW96].

Ecole Polytechnique de Montr eal c 2003

LOG2000 - Introduction au langage Z

Introduction

La notation Z
tre subdivis Au point de vue s emantique, le Z peut e e en trois parties, dont seulement les deux premi` eres seront couvertes dans cette introduction : 1. Un langage math ematique utilisants propositions, logique pr edicative, ensembles et relations. 2. Un langage sch ematique repr esentant des manipulations algorithmiques de donn ees ou des objets. 3. Une th eorie du rafnement entre des types abstraits de donn ees. Ainsi, on parle souvent de Z comme dun langage de description d etats (states description language) : en utilisant un dialecte math ematique particulier tats de donn ench ass e dans une notation sch ematique, il d ecrit les diff erents e ees par lequel peut passer un produit logiciel, et sous quelles conditions [DW96].
Ecole Polytechnique de Montr eal c 2003

LOG2000 - Introduction au langage Z

Introduction

Consid erations importantes


La notation math ematique de Z nest pas une notation math ematique conventionnelle. La notation math ematique de Z m ele en une seule entit e critures provenant aussi bien de lalg` diff erents concepts et e ebre, de la th eorie des ensembles ou de la logique des pr edicats que des besoins ou de limagi` lesprit que le sens nation de ses diff erents auteurs : gardez donc toujours a nonc dun e e Z nest pas toujours celui que vous lui donneriez intuitivement par tonnez pas de rencontrer a ` loccasion votre culture math ematique, et ne vous e des notations qui ne vous disent rien. La notation sch ematique de Z nest pas math ematique. Bien quelle fasse appel aux math ematiques, la notation sch ematique de Z, qui permet de faire le lien entre les math ematiques pures et une abstraction informatique, nest bas ee sur aucune formalisation. Elle nest quune commodit e quil est important que vous distinguiez du reste [SP98].
Ecole Polytechnique de Montr eal c 2003

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Rappel - logique propositionnelle


La base Une proposition est une expression qui est soit vraie, soit fausse. tre combin Des propositions peuvent e ees entre elles par des connecteurs logiques. La signication dune telle combinaison est d etermin ee par la signication des propositions impliqu ees. Connecteurs logiques

Ecole Polytechnique de Montr eal c 2003

n egation conjonction disjonction implication quivalence e

(non) (et) (ou inclusif) (si, alors) (si et seulement si)


4

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Rappel - logique propositionnelle (suite)


Priorit e des op erations En Z, les connecteurs logiques ont une priorit e dop eration qui diminue selon lordre du tableau pr ec edent : la n egation a la plus haute priorit e, et l equivalence la plus basse. Ainsi, la proposition :

quivalente a `: est e

Ecole Polytechnique de Montr eal c 2003

         

 

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Rappel - logique propositionnelle (suite et n)


Propositions atomiques Une proposition atomique est une proposition qui nutilise pas de connecteurs logiques. En Z, une proposition atomique ne pourra afrmer (ou inrmer) que deux choses : l 1. que deux e ements sont congrus ou que deux ensembles sont identiques. Il ` la th sagit dune extension Z de la notion d egalit ea eorie des ensembles. l 2. quun e ement ou un ensemble maintient une certaine relation (via des l op erateurs relationnels) avec dautres e ements ou ensemble. ` la base de toutes les constructions Ainsi, les propositions atomiques sont a l math ematiques ult erieures en Z : m eme si elles en sont les e ements constitutifs, chappent au langage en ce sens quelles prennent leur sens dans des cadres elle e a formels ext erieurs. Par exemple, la proposition atomique fausse un sens pr ecis qui provient de larithm etique : elle nen sera pas moins accept ee en Z.
Ecole Polytechnique de Montr eal c 2003

    
6

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Introduction - logique des pr edicats


D enition intuitive du pr edicat Un pr edicat est une expression contenant des inconnues qui se transforme en proposition quand celles-ci sont identi ees. Par exemple, lexpression est un pr edicat arithm etique pour tout appartenant aux r eels. D eclaration Lexemple pr ec edent met clairement en relief la n ecessit e de d eclaration, dintroduction des variables impliqu ees dans une expression pour connaitre sa valeur pr edicative. En Z, on notera ainsi le fait que la va l riable sera forc ement e ement de lensemble . Quantication Il sagit dune des op erations les plus importantes en Z. Soit , l un pr edicat impliquant la variable , e ement de . On pourra retransformer ce ` . En Z, on notera : pr edicat en proposition en appliquant un quanticateur a

  

 

!  

Ecole Polytechnique de Montr eal c 2003

"

! 

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Introduction - logique des pr edicats (suite)


Quanticateurs Trois quanticateurs sont principalement utilis es en Z : Quanticateur duniversalit e

#  

Pour tout

" 

l e ement de ,

Quanticateurs dexistence

$  

"

Pour certains

l e ements de ,

$
est une proposition vraie.

Quanticateur dunicit e

%$  

"

Pour un et un seul

l e ement de , p est une proposition vraie.

Ecole Polytechnique de Montr eal c 2003

%$

est une proposition vraie.

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Introduction - logique des pr edicats (suite)


` la d eclaration dune proContraintes Il est possible dajouter un pr edicat a position quanti ee pour restreindre le domaine dune variable.

l Ici, la variable est restreinte aux e ements de pour lesquels exemple, il nous est possible d ecrire les tautologies :

!   &  "

est vrai. Par

  $ #     & &   " "  

  $ #    

Ecole Polytechnique de Montr eal c 2003

" "    

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Introduction - logique des pr edicats (suite)


Propositions quanti ees : autres notions Dans lexpression , on dit que la variable est li ee au quanticateur . tre pr ` t dans un pr edicat sans e ealablement li ee a Si une variable appara un quanticateur, on dit que est libre dans ce pr edicat.

!  

 "

&

 !

Substitution Il sagit dune facilit e de Z permettant parfois dall eger les nota crira : tions. Retenez-la comme une curiosit e utile. On e

pour repr esenter le pr edicat qui r esulte de la substitution par de chaque occurence libre de dans le pr edicat . Cette op eration a une priorit e plus haute que toutes les op erations logiques vues pr ec edemment.

' ( ) 0

Ecole Polytechnique de Montr eal c 2003

10

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Introduction - logique des pr edicats (suite et n)


Description d enie D esigner un objet dun certain genre ayant telle ca tre accompli dans une syntaxe tr` es proche de celle utilis ee ract eristique peut e pr ec edemment avec des quanticateurs sur des pr edicats. Cependant, le r esultat de la d esignation nest pas ici une proposition logique, mais plut ot un terme qui enie. repr esente lobjet d ecrit : cest une description d La notation utilis ee, tr` es proche de celle des quanticateurs, se nomme notation mu. Soit une d eclaration , un pr edicat exprimant une contrainte sur les variables d eclar ees en et une expression , donnant facultativement la crira la description d valeur que lon d esire obtenir. On e enie : . ` z Par exemple, le cube de lentier sup erieur a ero dont le carr e est 100 s ecrira :

Ecole Polytechnique de Montr eal c 2003

4   5&   6 7  8 6 6 " 9

4 1 & 2 " 3
11

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Rappel - Th eorie des ensembles


D enition dun ensemble Un ensemble est une collection bien d enie d el ements. Construction densembles en Z On peut y b atir des ensembles principalement de quatre fac ons : l Par extension. On se contente den faire la liste des e ements :

` la quantication de Par compr ehension. De fac on tr` es similaire a pr edicats, on pourra d enir un ensemble sous forme , pour laquelle sera une d eclaration, un pr edicat d ependant de la d eclaration qui d enira une contrainte sur celle-ci et une expression d enissant chacun des termes de lensemble. Ainsi, lensemble pr ec edent devient :

@ A6 A8 AB AC 8 D E

Ecole Polytechnique de Montr eal c 2003

@   F&  G B " 7 E

@ 1 & 2 " 3 E
12

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Rappel - Th eorie des ensembles (suite)


Construction densemble en Z (suite et n)

Par lop erateur densemble de puissance . La notation d esigne lensemble des sous-ensembles de (incluant , lensemble vide). Par exemple :

H @ A8 P E  @ AI @ 8 AE @ P AE @ A8 P E E

Ecole Polytechnique de Montr eal c 2003

@ A SE Q @ A8 P E  @  A  A8  A  AP  AS  R A8  AS P  E

Par le produit cart esien. Le produit cart esien d esigne lensemble l des paires ordonn ees ayant comme premier membre un e ement de et l comme second membre un e ement de . Ainsi :

Q R

13

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Rappel - Th eorie des ensembles (suite et n)


` un ensemble On e crira respectivement Appartenance a l ` lensemble . pour afrmer que est e ement ou non a ou

 TU

en Z

 T
ou

crira respectivement Inclusion densembles On e afrmer que est sous-ensemble de ou non. Les op erations sur les ensembles en Z cardinal union intersection diff erence union g en eralis ee intersection g en eralis ee

VU R

V R

en Z pour

Ecole Polytechnique de Montr eal c 2003

@ 8 @ 8 @ W a 8 A A A @ @ @ A  A8 P E P E P E B ` X E E @ Y AP @ @ P A P A AP @ AP    P E E E  E E @   @ 8 @   8 P A @ 8 @ E E AP P EA  AP E A B E b @ @ A8 E AP @ AP  E E
14

b a ` Y X W

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Extension Z de la th eorie des ensembles


Les types Math ematiquement, on dit que les ensembles sont homog` enes : ils repr esentent des valeurs ayant des caract eristiques communes, souvent rattach ees entre elles par une r` egle dinf erence. Cette caract eristique quauront l des e ements d etre de la m eme sorte est tr` es importante du point de vue de la formalisation de produits logiciels, puisquelle cristallise lid ee intuitive des cr eateurs selon laquelle certains membres dun syst` eme auront des caract eristiques communes [WW96].

Ainsi appara t naturellement la notion de type. En Z, un type est un ensemble dextension maximale, tout au moins dans les limites dune sp ecication l donn ee [DW96] . Ainsi, chaque e ement, chaque objet pr esent dans une ` un et un seul type : le plus grand ensemble exissp ecication sera associ ea tant pour lequel .

Ecole Polytechnique de Montr eal c 2003

 T

15

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Extension Z de la th eorie des ensembles (suite)


D eclaration de types En Z, la d eclaration densembles types se fait habituellement de fac on axiomatique, selon une notation particuli` ere, soit l enumeration entre crochets carr es de ceux-ci au d ebut dune sp ecication. Ainsi, la ligne suivante d eni deux types, Fruits et L egumes, utilisable par la suite dans une sp ecication quelconque. [Fruits, L egumes]

Notons sans explication que le caract` ere particulier des ensembles types pr evient leur construction plus avant par les m ethodes d eja vues. Par une nota crire, si on le d tion sp eciale, on pourra cependant e esire :

Ecole Polytechnique de Montr eal c 2003

c d ef hg    i p p q & ir  q & R s s q

16

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Extension Z de la th eorie des ensembles (suite)


Abbr eviation Un objet ( el ement, ensemble, etc) d ej` a d eni dans une eration . sp ecication formelle peut se voir attribuer un nom par lop Comme nous le verrons avec les relations, cette notation est particuli` erement utile pour donner des d enitions g en eriques. Ainsi, on nommera lensemble ` cinq en e crivant : des carr es des nombres naturels inf erieurs a

  @  T F&  t u " 7 E

Types num eriques Lensemble des naturels et des entiers naturels sont des types pr ed enis en Z. Tel que mentionn e pr ec edemment, lensemble des propositions atomiques de nature arithm etique que ces nombres permettent sont ainsi utilisables en Z : addition, soustraction, multiplication, division enti` ere, galit reste modulo, puissance, plus petit que, plus grand que, e e, etc.
Ecole Polytechnique de Montr eal c 2003

   q
17

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Extension Z de la th eorie des ensembles (suite et n)


F
Notations particuli` eres impliquant les types num eriques et La notation a..b permet de d esigner un sous-ensemble de ou de , et

F 5

v vu   @ Au AD Aw  E

La notation

gal a ` permet de connaitre lentier e

v vP 8  I

Ecole Polytechnique de Montr eal c 2003

 8 D

y @   F F&  G 5 B " 7 E

Les notations et donnent respectivement la plus petite et la plus grande des valeurs de , sous-ensemble correctement born e non vide de ou de . Ainsi :

h e x x   B

y f

  8

h e x x 

18

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations
Int er et des relations Nous avons introduit pr ec edemment lutilit e du typage, pour regrouper un ensemble d el ements ayant des caract eristiques communes. vident quun produit logiciel fait interagir une s Cependant, il est e eries de composantes (donn ees, objets) qui sont de types diff erents. Cest l` a toute lutilit e des relations : mod eliser la structure des int eractions entre des composantes de diff erentes natures [WW96]. D enitions l Couple ordonn e. Soit deux e ements distincts, et . On appelera l couple ordonn e vers la paire ayant comme premier e ement l ( el ement de d epart) et comme dernier e ement ( el ement darriv ee). On la notera : ou encore . l Relation. Un ensemble de paires ordonn ees telles que leurs e ements de d epart et darriv ee font respectivement partie dun m eme ensemble.

Ecole Polytechnique de Montr eal c 2003

 S

 A S


19

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)



Notation Z des relations Soit deux ensembles, et . Toute relation ayant comme ensemble de d epart et comme ensemble darriv ee sera telle que :

Par volont e de simplication, on utilise habituellement une notation diff erente qui aura exactement le m eme sens :

Ecole Polytechnique de Montr eal c 2003

  H  Q 

 H  Q 

20

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)


d y
Domaine, image, relation inverse Soit deux ensembles, . En Z, les ensembles suivants sont d enis : et

Restrictions de domaine et dimage Soit deux ensembles et , et les ensembles , et tels que d enis pr ec edemment. En Z, on d enira :

Ecole Polytechnique de Montr eal c 2003

  @   A S  &  S T S T "  SE
21

  @   A S  &  S T  T "  SE

  @   A S  &  S T " S E

  @   A S  &  S T " SE

  @   A S  &  S T " E

, et la relation

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)



, et

Soustraction de domaine et dimage Soit les ensembles , , , et galement d d enis pr ec edemment. En Z, les ensembles suivant sont e enis :

  @   A S  &  S T S TU "  SE
,

  @   A S  &  S T  TU "  SE
, on
22

Image relationelle Avec, encore une fois, les ensembles d enira :

Ecole Polytechnique de Montr eal c 2003

  d  

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)


d
Composition Soit trois ensembles, , et , et deux relations et telles et . On d enira en Z la composition par : que

e 

It eration Soit, encore une fois, la relation r ecursivement :

avec

Ecole Polytechnique de Montr eal c 2003

%  

h   f h i %

f e   @   A g  d&  $ S  "   S T S g T e   "  gE


. On d enira
23

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)


Fonctions : quelques d enitions l Une fonction est une relation telle que tous les e ements de lensemble de d epart sont impliqu es dans au plus un couple ordonn e de celle-ci. Une fonction totale est une fonction pour laquelle le domaine corres` lensemble de d pond a epart. Une fonction partielle est une fonction pour laquelle le domaine est strictement inclu dans lensemble de d epart. ` chaque e l Une fonction injective est une fonction pour laquelle a ement l du domaine correspond un e ement diff erent de limage. Une fonction surjective est une fonction pour laquelle limage corres` lensemble darriv pond a ee. ` la fois injective et surjective. Une fonction bijective est une fonction a Une fonction nie est une fonction dont le cardinal existe.
Ecole Polytechnique de Montr eal c 2003

24

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)


Fonctions : les notations sp eciques de d eclaration fonction totale foncton partielle fonction totale injective fonction partielle injective fonction totale surjective fonction partielle surjective fonction bijective fonction nie fonction nie injective

Ecole Polytechnique de Montr eal c 2003

rqponmlkj

25

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite)


La d eclaration de fonctions En tant que relations (et donc en tant quensembles), les fonctions protent de certaines m ethodes de construction num pr ec edemment e er ees (extension, compr ehension), ainsi que dune autre qui sajoute. Extension Compr ehension Abstraction lambda Il sagit essentiellement dun raccourci d ecriture de la d eclaration en compr ehension :

Ecole Polytechnique de Montr eal c 2003

s   F&  G B " 7

@   F&  G B "  7 E

@ 6 A6 8 A8 P AB  AC B 8 D E

26

LOG2000 - Introduction au langage Z

Z : le langage math ematique

Les relations (suite et n)


l Lapplication de fonction Soit une fonction et , un e ement tel que . On d enira en Z comme l el ement darriv ee du couple ordonn e tel que . Ainsi :

y t

t  

u   F " 7  v  C   

  A S T t

Ecole Polytechnique de Montr eal c 2003

t x w   w X   y w t 

La combinaison de fonctions Soit deux ensembles et ainsi que deux fonctions et telles que et . On d enira :

t 

w 

 T
27

LOG2000 - Introduction au langage Z

Conclusion

Conclusion sur le langage math ematique de Z


Nous avons maintenant couvert ce que nous d esirions dire du Z math ematique. En r esum e, nous avons introduit : La notion de proposition logique Les pr edicats, et leur notation en Z La th eorie des ensembles et leur construction en Z Ceraines extensions Z de la th eorie des ensembles, principalement concernant la notion de type Les relations, notamment les fonctions, et leur utilisation en Z Bien entendu, le Z math ematique est nettement plus riche que ce qui vous en fut pr esent e dans cette introduction. Principalement, nous pensons que les notions de s equence et de typage libre sont importantes pour la r edaction labor de sp ecications r eellement e ees, bien quelles d epassent le niveau dun ` lire les chapitres cours dintroduction. Nous encouragons l etudiant int eress ea correspondants de [DW96].
Ecole Polytechnique de Montr eal c 2003

28

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Introduction - langage sch ematique Z


La base Le langage sch ematique de Z est utilis e pour composer et structurer un s erie de descriptions math ematiques : il permet de grouper ensemble des informations (donn ees ou op erations), de les encapsuler et de les nommer pour r eemploi. tant le Il sagit de la seconde composante de la notation Z, la premi` ere e langage math ematique vu pr ec edemment. Une sp ecication formelle est compos ees de deux choses : Des d eclarations globales : noms de types, densembles, abbr eviations ( equivalences syntaxiques et d enitions g en eriques) Un ou plusieurs (habituellent plusieurs) sch emas.

Ecole Polytechnique de Montr eal c 2003

29

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Taxonomie des sch emas


Type de sch emas Les sch emas courants sont habituellement de deux sortes : Orient es donn ees : ils regroupent ou d ecrivent alors un ensemble de tat initial. donn ees. Ils donnent possiblement leur e Orient es op erations : ils donnent alors des manipulations abstraites des donn ees d enies ailleurs, possiblement dans des sch emas orient es donn ees. ` un niveau tr` Le [langage Z] permet donc de d ecrire, a es abstrait (cest-` a-dire fortement d ecoupl e de toute impl ementation logicielle), un produit logiciel sous une perspective formelle align ee sur linformation que celui-ci traite. [...] [En Z], tout sarticule en effet autours des donn ees : le langage d ecrit formellement celles-ci, et la fac on dont elles sont manipul ees [SP98].
Ecole Polytechnique de Montr eal c 2003

30

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Morphologie des sch emas


Les sch emas viennent toujours en trois parties : Un nom qui identie le sch ema en port ee globale sur la sp ecication. tre vide) qui d Une partie d eclarative (peut e enit les diff erentes donn ees membres du sch ema. Les donn ees d enies pour la premi` ere fois sont de port ee locale. Son contenu sappelle signature. tre vide) qui e num` Une partie pr edicative (peut e ere les contraintes que doivent respecter les donn ees accessibles dans la port ee courante, localement ou globalement, pour que le sch ema soit suivit. Dans le cas de sch emas orient es op erations , la partie pr edicative se termine habituellement par des expressions qui ne sont pas des pr edicats, mais plut ot des affectations de certaines donn ees membres (utilisant le symbole ). Par le cadre formel, il est important de retenir que chaque donn ee ne pourra subir quune seule affectation dans un m eme sch ema ; ces affectations permettent de d ecrire les diff erentes op erations abstraites effectu ee par ces sch emas.

Ecole Polytechnique de Montr eal c 2003

31

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Notation des sch emas


Notation horizontale

Cette notation nest utilis ee que pour des sch emas de faible envergure, ou les contraintes seront s epar ees entre elles par le ET ( ) logique. On peut sans crainte toujours adopter lautre. Notation verticale

Ecole Polytechnique de Montr eal c 2003

dg f g h g xg g f h  e d f 

y i x p d g {z f | h }~ q p

y i p {z | } q~ p  ' x d g f h& dg f g h g xg g f h0
32

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Vision ensembliste des sch emas


Liaison Une liaison est une association entre des noms et des valeurs. Les noms sont les identicateurs des membres de la partie d eclarative dun sch ema, tandis que les valeurs sont les expressions associ ees qui respectent les contraintes implicites (typages) et explicites (pr edicats) dun sch ema. Imaginons un sch ema ayant pour membres deux identicateurs de type entier, et , ` deux valeurs et . Cette liaison sera : quon d ecide de lier a . ` chacun des membres dune liaison via un En Z, On pourra avoir acc` es a op erateur de s election, qui nous permettra par exemple d ecrire : . La construction explicite dune liaison (voir ci-haut) y est cependant impossible.

` un ensemble de liaisons. D enition ensembliste Un sch ema correspond a ` lint Comme pr ec edemment, si cet ensemble est maximal en extension a erieur dune sp ecication, alors on le qualiera de type sch ematique.

Ecole Polytechnique de Montr eal c 2003

` la formalisation du Z sch Selon [SP98], cest cette notion qui pr esente le plus gros obstacle a ematique.

v  U 

 A8 S  P S
33

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Vision ensembliste des sch emas (suite et n)


Liaison caract eristique Soit le sch ema pr ealablement d eni. On notera la liaison caract eristique de ce sch ema, cest-` a-dire la liaison telle que chaque identicateur membre de est associ e avec sa valeur ` d pr esente dans la port ee actuelle. Soit le sch ema suivant, servant a ecrire la : r eussite ou l echec dune classe d

| } q~ p

tudiants ont r On pourra d esigner la classe dans laquelle tous les e eussis par :

Ecole Polytechnique de Montr eal c 2003

4 | | q & } i { q {  |  I " | | q

} i } i { { q q { {  |  | X Y | | | | q q { {  |  |   3 ( I { z r s( |

} i { q { | A | | q {  |  H 3 ( { z r s( |

| | q

' 3 ( { z r s( |0

| } q~ p

| } q~ p

34

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Int eraction des sch emas

R eutilisation des sch emas Tout lint er et des sch emas est quils peuvent tre extensivement r ` lint e eutilis es a erieur dautres sch emas dune m eme sp ecication. Sans cette caract eristique, le langage sch ematique serait tout bonnement inutile. La r eutilisation de sch emas par dautres pourra se faire : Dans une d eclaration : seuls ou apr` es des quanticateurs, dans une construction densemble en compr ehension ou dans des expressions mu et lambda. ` un sens. edicat : dans ce cas, seule la contrainte a Dans un pr Dans une affectation : sous r eserve de sens math ematique.

Ecole Polytechnique de Montr eal c 2003

35

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Int eraction des sch emas (suite et n)


tre Modes principaux de r eutilisation Certaines de ces r eutilisations peuvent e relativement subtiles, et nous nous contenterons de donner ici les deux grandes techniques de r eutilisation dans les d eclarations : Par inclusion sch ematique Quand le nom dun sch ema est inclu dans la partie d eclarative dun autre, celui-ci est tout simplement ajout e au sch ema courant partie par partie : il faut utiliser ce proc ed e prudemment car il peut facilement entra ner des incoh erences. Par utilisation typ ee Rien nemp eche de d eclarer des membres dun l sch ema comme e ements dun type sch ematique pr ealablement d eni dans la m eme sp ecication : le membre repr esente alors une liaison par` ce type sch ticuli` ere appartenant a ematique.

Ecole Polytechnique de Montr eal c 2003

36

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

` la pr Aide a esentation
D ecorations sch ematiques Il est facile, quand on r edige des sp ecications formelles, datteindre rapidement lillisibilit e. Un m ecanisme fournit par le critures sapelle la d langage sch ematique de Z pour all eger les e ecoration des membres. La pr esence de d ecorations dans un sch ema indique la nature orient ee op eration de celui-ci. D ecorations post-x ees Soit , un membre dun sch ema donn e. On notera : tat initial La variable dans son e tat nal (modi La variable dans son e ee par affectation) tat initial La variable, param` etre dentr ee du sch ema, dans son e tat nal La variable, param` etre de sortie du sch ema, dans son e

Ecole Polytechnique de Montr eal c 2003

s s s s

37

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

` la pr Aide a esentation (suite et n)


D ecorations pr e-x ees Soit , un membre dun sch ema donn e OU un sch ema en inclusion dans un autre. On notera, dans sa partie d eclarative seulement :

Notation Delta Pour les membres, il sagit dun raccourci pour d eclarer et . Pour les sch ema en inclusion, cela signale que le sch ema actuel modie ema sont inclus. lancien : tous les membres et de cet ancien sch Notation Xi Cela signale que le membre ou le sch ema en inclusion ne sera pas modi e.

Ecole Polytechnique de Montr eal c 2003

38

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Introduction aux sch emas g en eriques

l Sch emas g en eriques Une fac on plus transparente et e egante de g erer la red enomination est la r edaction de sch emas g en eriques. De tels sch emas sont ` des sch ` ceci pr` identiques a emas standards, a es que leur nom est compl et e (ou remplac e) par une s equence didenticateurs entre crochets carr es, et quils d ebutent sur un trait double plut ot que simple.

Ecole Polytechnique de Montr eal c 2003

| } q~ p '  ) S0

` linstart des pr Red enomination A edicats, un sch ema Z peut subir la substitution de variables. Soit un sch ema ayant pour membre. Il nous sera possible de construire un nouveau sch ema strictement identique pour le crivant : . On nomme cette op eration quel remplacera en e red enomination car le nom du nouveau sch ema sera justement .

| } q~ p

| } q~ p ' S ) 0

39

LOG2000 - Introduction au langage Z

Z : le langage sch ematique

Introduction aux sch emas g en eriques (suite et n)


D enitions sch ematiques g en eriques Les sch emas g en eriques non nomm es sont sp ecialement int eressants car ils permettent de d enir de nouveaux op erateurs en Z, et ils offrent ainsi une alternative puissante au processus dabbr eviation d ej` a pr esent e. Ils utilisent, en plus des caract eristiques d ej` a num e er ees des sch emas g en eriques, une notation d eclarative particuli` ere utilisant la barre de soulignement que nous nous contenterons dillustrer :

Ecole Polytechnique de Montr eal c 2003

Tous les op erateurs sp eciques au Z math ematique sont dailleurs d enis ainsi. Voir [SP98], chap. 5.

# e e H  A H  @   Q  A S   " &  j    T e     S T   "  SE


40

' A 0

LOG2000 - Introduction au langage Z

Conclusion

Conclusion sur le langage sch ematique de Z


t Les notions importantes du Z sch ematique ont maintenant e e couvertes. En r esum e, nous avons introduit : Le r ole des sch emas dans une sp ecication formelle La classication fondamentale des sch emas en sch emas orient es donn ees ou op erations. La structure et la notation des sch emas en Z. La signication intuitive des sch emas en terme de th eorie des ensembles Les m ethodes dint eraction des sch emas entre eux Les d ecorations Les sch emas g en eriques tendue du langage sch Une couverture plus e ematique devrait tout dabord sat` traiter des op tacher a erateurs de sch emas, qui permettent de combiner entre eux des sch emas de fac on tr` es puissante ; l etudiant int eress e est encourag e de ` ce sujet le chapitre 12 de [DW96]. lire a
Ecole Polytechnique de Montr eal c 2003

41

LOG2000 - Introduction au langage Z

Biblioth` eque de Polytechnique Comme base de notre sp ecication, d enissons le sch ema , bas e sur les types :

Ecole Polytechnique de Montr eal c 2003

Exemple de sp ecication formelle

r d r q r q r r p p r    q  q  R q q q q | | | {  | {  | ir  ( q q p q s( q s( H ~ q  | q p p p { p  { { r  {  s( {    q | { { |  s( s( s( r s(  q V  q | q | q q | q Aq | H 3 ( Y X p  k r { r r   z r q 3 {   ( q y { | s( ( | q | s z q q r z r { z z | p  r r | s( | | i  sr i i { s( sr sr R | R R q q | q  | | H   r I r   q q | r R r i( ~ q { q ' r  Aq 3 ( { z r s( 0

Exemple

42

LOG2000 - Introduction au langage Z

Exemple

Exemple de sp ecication formelle (suite)


Initialisation Lors dune premi` ere utilisation du syst` eme, il est important de tat initial abstrait : d enir un e

Ecole Polytechnique de Montr eal c 2003

q r p  q  | { s(  q I {  |  I

r R r i( ~ q { q

s r ( r r | q  R r R r i( ~ q { q

43

Ajouter des livres

LOG2000 - Introduction au langage Z

Ecole Polytechnique de Montr eal c 2003

Exemple de sp ecication formelle (suite)

q q r r p p   q q  {  | | { q s( s( z r | q | p { i    | s { r s q R  q q( p q | |  { p   s(  r r | { s(   q q q | | {  q | z r | p  i { sr s R ( q q | | X @ s i { q { r  q E s i { q { r  q TU r  q | r R r i( ~ q { q i {( q  r  q s i { q { r  q  r  q

Exemple

44

LOG2000 - Introduction au langage Z

Disponibilit e et emprunt dun livre

Ecole Polytechnique de Montr eal c 2003

Exemple de sp ecication formelle (suite)

 r q |  { q ( ( T r   q r |  q q p s i  s { q s( q p |  { s( R q  q | { ( (  q | { ( ( r R r i( ~ q { q r  q s i s z r | i sr R q

r  q  r  q

q | { ( (    r  q q p  { s( R q & r  q s i s q p  { s( R q

Exemple

45

LOG2000 - Introduction au langage Z

Ecole Polytechnique de Montr eal c 2003

Exemple de sp ecication formelle (suite)

 q q r r q q | p   p { p q q | |    ( { { { ( s( s( z q s( r | q | p q  { { i    | s {  r r s q R  q p  q q( T q | | q q  p { p p   s(   r  { r { s { | s  q(  q s( X ( q q @ | | { { R  r  q | z | q  r | p q  i { sr s R ( q q q | | p ` X  @ @ { r s( r q   q q { E E E  q q | { p  ( { ( s(  q {  q | {  ( 3 ( {( z r s( 3 p r R  { r i( s ( ~ q { q

r  q T r  q | z r | i sr R q |

r  q  r  q

Exemple

46

LOG2000 - Introduction au langage Z

Exemple

Exemple de sp ecication formelle (suite et n)


S ecurisation du sch ema demprunt ` partir des sch A emas et pr ec edemment crire un autre, toujours respect d enis, on peut ais ement en e e celui-l` a:

r  q s i s z r | i sr R q

En conclusion Evidemment, cette sp ecication formelle est clairement insufsante pour g erer une biblioth` eque. Un certain nombre de sch emas importants t tat actuel, les seules op y ont e e omis : dans son e erations possibles sont dy ajouter des livres ou den emprunter ; il est impossible de g erer les retours ou tait simm eme la liste des emprunteurs authoris es. Le but de cet exemple e plement de vous donner une illustration simple de lutilisation de Z dans un ` quiconque de le compl contexte concret : libre a eter comme bon lui plaira.
Ecole Polytechnique de Montr eal c 2003

q s( ( r q q p  { s(  r  q s i s z r | i sr R q 3 p  { s(

3 p  { s(

47

LOG2000 - Introduction au langage Z

Exercices

Quelques questions et exercices


Retour sur la sp ecication formelle pr ec edente Dans le sch ema , quel impact aurait la d eclaration de remplacement sur les modalit es demprunt tudiants ? des e rendrait la notion dem La d eclaration prunteurs inutile. Expliquez pourquoi. On d esire modier le sch ema pour quil soit impossible den emprunter plus de la moiti e des livres. Ajoutez le pr edicat n ecessaire (la solution nest pas unique). En quoi cette derni` ere modication affecte-t-elle le sch ema ` cette situation ? ? Comment rem edier a

r R r i( ~ q { q

r R r i( ~ q { q

o 3 ( { z r s(

q p  { s( |  r  q

m 3 ( { z r s(

q p  { s( |  r  q

Ecole Polytechnique de Montr eal c 2003

( r q q p  { s(

q s(

48

LOG2000 - Introduction au langage Z

Exercices

Quelques questions et exercices (suite)


Le sch ema ne fait aucune affectation de . Pourquoi nest-ce pas une erreur ? tudiant peut emprunter a ` On d esire restreindre le nombre de livres quun e quatre. Par lajout dune seule ligne, apportez la modication n ecessaire au sch ema . Expliquez leffet du sch ema suivant :

3 p  { s(

i {( q  r  q

Ecole Polytechnique de Montr eal c 2003

q p  { s( q {  |  q p  { s( q {  | ` w  i { q q( { z r s( |

q w  i p {  q { q( s q( { { z | r  s(  | H  3 ( { H z r 3 ( { s( z r s(

r R r i( ~ q { q

s } i s s {

s } i s s {

r  q |

49

LOG2000 - Introduction au langage Z

Exercices

Quelques questions et exercices (suite et n)


Bien que cela soit possible, pourquoi na-t-on pas utilis e la notation Delta pour la r edaction du sch ema pr ec edent ? pour ne supprimer de lensemble des em Modiez le sch ema tudiants qui nont aucun livre en emprunt prunteurs potentiels que les e (possible sans rajouter de lignes). Cr eez le sch ema qui permettra d eliminer de la biblioth` eque un livre emprunt e qui ne sera jamais rendu. Tous les tre transform membres de devront e es de fac on coh erente.

Ecole Polytechnique de Montr eal c 2003

r R r i( ~ q { q

e { r p q  r  q q z {

s } i s s {

50

LOG2000 - Introduction au langage Z

Bibliographie

R ef erences
[SP98] Spivey, John M. The Z notation : a reference manual, Prentice Hall, 1998 [WW96] Wordsworth, John B. Software Development with Z, AddisonWesley, 1996 [DW96] Davies, Jim , Jim Woodcock. Using Z, Prentice Hall, 1996

Ecole Polytechnique de Montr eal c 2003

51

Vous aimerez peut-être aussi