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.
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
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].
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
Introduction
quivalente a `: est e
6
!
"
!
#
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 Ici, la variable est restreinte aux e ements de pour lesquels exemple, il nous est possible d ecrire les tautologies :
! & "
$ #
" "
!
"
&
!
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
10
4 5& 6 7 8 6 6 " 9
4 1 & 2 " 3
11
` 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
@ F& G B " 7 E
@ 1 & 2 " 3 E
12
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
@ 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
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
@ 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
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 .
T
15
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 :
c d ef hg i p p q & ir q & R s s q
16
@ 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
F 5
v vu @ Au AD Aw E
La notation
v vP 8 I
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
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.
S
A S
19
Par volont e de simplication, on utilise habituellement une notation diff erente qui aura exactement le m eme sens :
H Q
H Q
20
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 :
@ 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
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
d
e
avec
%
h f h i %
24
rqponmlkj
25
s F& G B " 7
@ F& G B " 7 E
@ 6 A6 8 A8 P AB AC B 8 D E
26
y t
t
u F " 7 v C
A S T t
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
Conclusion
28
29
30
31
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
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
` 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.
` 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
| } q~ p
tudiants ont r On pourra d esigner la classe dans laquelle tous les e eussis par :
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
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.
35
36
` 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
s s s s
37
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.
38
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.
| } 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
Tous les op erateurs sp eciques au Z math ematique sont dailleurs d enis ainsi. Voir [SP98], chap. 5.
' A 0
Conclusion
41
Biblioth` eque de Polytechnique Comme base de notre sp ecication, d enissons le sch ema , bas e sur les types :
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
Exemple
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
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
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
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
Exemple
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
Exercices
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
( r q q p { s(
q s(
48
Exercices
3 p { s(
i {( q r q
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
Exercices
r R r i( ~ q { q
e { r p q r q q z {
s } i s s {
50
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
51