Download X - LIFC

Transcript
 !"$#"&%(' ""*+ )
,.-0/21!354768:9&;=<>6?7;@68A6=BDCE6;
F7?7<HG$I68
/2?7<>JK6=LM8N<HBPO6 46Q1LMRK?7;
F6@SUTWVYXPBO6
.Z([E\Z^] '"&%`_ ba "
c\dbe\fhgifhgjflkbmonPgqphdrfhgis:tuphvxw@yhg2d{z|wn gjfhg
d e\v~mPxgD€=mkƒ‚„n…g
} b
z †"$‡_ˆ+ a _‰' " e [ ' Z‹Š +'Œ_ˆ [ "{"' w %EŽ Z^Š +7'Œ_ˆ [ "
r‘x’”“•D–˜—š™›“œ–˜‘{’
b™
žš•œ‘ ŸQ¡£¢¢™š¢¥¤*¡
¤5«Mbžšžš¨–ŸQ¬“–˜‘{’š¢­¢ž¥¡†¦ ŸP–Œ®¯¡o¦ ¡£¢
°
¨^«M\–¤*¡
¤¥¡o¦ §{¡£¨˜‘{žšž©¡£ª
¤*¡
¨˜
ª
¡o¦ “±*‘ ¤*¡
ž*\•
§\¨–¤*¬“–˜‘{’
™›“–¨–¢³b’”“´¤*¡†¢µ§¶™*¡£¢­·¸
¹
¡P“
“œ•œ\¤š™šŸQ“–˜‘{’
§{¡£•A¢µ¤*¡£¢º¨Œb’*»¼\»¼¡£¢
°
‘{—¶½.¡P“œ¢
¾ R L
¿$ÀÁ‹ÃMÄ2ÅÇÆ
ȈÉMÊ@Ë&ÌÇÅ(ÀƒÍPΆÏMЋÏNÑPҜÓ
9$VYIB6?$I6ÕÔH6 @ÖטØYÙY׏ڏØKØÖ 476=J˜RK?BDÔHRTWVYXXƒ<H8N8N<HVY?\4Û-0ÜÞÝRKX£6?~ß
à`á
âŒâK
äãåæ
!Œá"œê0þáNãåŒæ
éê0UõUãåŒ`ãò æä
¡†’~“
çPèŒé!êëŒê0U`ìíî@ï$ðñ(òáMó$.ô ŒÞàEõò˜Uõò˜Þåöñ(`à!÷Aá
åöø$÷àÛùûúäçqüEý{ùÇý`þ˜
ÿ0
çœ
á
þ˜ê0þŒ
í îKí ð 7 uæäæäå
á H `þ˜ê @Uæäê ã.ô ŒÞá
þŒõ Dúäú
çPè #‹å˜þŒ%
$7í &í ')î (ð " æäæäå
*
á > þŒê @Uæäê ã.ô Œ,
+ŒáMþ˜õò˜Uùˆñ(" ³ã`ô -ù #(æáM!þ õ. þ
çPè á
þù‰ø åŒê0/æ $!'0Yíï$ðú‰þ˜ó$Uô þ˜ê0åŒ`õò˜Uõò˜.áMæäæä=õê.ô ù‹úˆ`à`úˆübù|÷ â˜òŒêëáMù‰ü`þ=ãê0âK10ê0æ
çPè @á
3õ 2=åŒ5
æ 46
717"8'0(7ð " uUæäæäåŒ
*
á > `þ˜ê @Uæäê ã.ô +Œá
þŒõ òŒUùˆñ(1 ãô 9ù #(æá
:þ õ. þ
çPè #‹å˜þŒ<
;=')ï 8>
@í? ï$ðçqBá AC0ã䳌ÞõU þ Uô þŒõD
æ *
á > þ˜ê @ æäê0ã ô +Œá
þŒõ òŒUùˆñ(1 ãô 9ù #(æá
þ:õ. þ
²
Ú
Y6QBN<>6?78R£ LM6X£6=LM;=<>6=LABVYI7BD4|-0RÇVKLM4hX£VY?NIL\46öBNF6 86¼6=LM;=<Rb ß
"W! LMI7?7V†,E6$K# 6RLM4 ¾ VYILARJKVY<>L:RK;=;@6 ¾ B£O6 46 ¾ L$O6 8N<H46=LAX£VY?% IL&¬ 46QBNF6 8N6'
)(+*
K 6RK?7<û?6œ9&VYI7GI^<,6= LN686=B-/q. <H47<>6=L+W! 6=LNB ¾ VYIL!Xh-0RJKVY<>L10 RK<>BÞÔä-0FVY?^?6IL!46³L
R ¾7¾ VKLNB6=LÞ;@6=BB6
BNF6 8N6‹ ,Û6I7LM8œLN6XƒRL
GI68DXh- VY?B ¾ 6=L
Xƒ<H84|-0RKX›O6 ÔH<>VKLM6=LDÔHR£G$I7RKÔH<>B$ÕO6 46Q;@6P4V$;=I^X£6?B$'
Y 6RK?&S,ÛVYI7<û8Þ,ERK?6=B ¾ VYIL.8N68 ;@VYXƒX£6?BNRK<>LN68³8NIL.Ô>68 4³=O6 JK6Ô>V ¾7¾ 6X£6?BN8 ¾ LMRBN<ûGI68.LN6ÔHRBN<20 8ÞRKI
47VYXƒRK<H?6Q<H?^47I78BLM<H6Ô^46Õ;@68DBLMRJRKI&Ý
3³! L
I7?V†C`RBN<2Ç VYI6=4 B6=B56Y RK;=G$I685Y I^ÔHÔH<HRK?74£G$I7<‹VY?Bœ47<HLM<2`# :O6 ;@6=BB6öBNF6 86' ¾ VYILWÔ>6IL47<H8 ¾ VY?7<>S
‹ <HÔH<>B$O6 7' Ô>6ILA8NVYIBN<>6?7' Ô>6I7LA;@VY?8^7 RK?7;@6Q6=B:Ô>6IL ¾ RBN<>6?^;@6
6=LM;=<9R{ BVYI78†Ô>68oX£6X:7LN6\47I¶,<;U1`T 6? ¾ RLNBN<H;=I^ÔH<>6=LÕÔ>68o;@VYÔ>V&;=RBNRK<>LN68†47Iš9&RKI7?7R Ö>=KÚ T?'`CI78$'
{
1LN64@'BA:<DC$ÔHRK8E'F!WLMI^?V8'‹9G&Ô>J˜RK<û?¬6=Bq9&I ¾ F7RC&<>B$'&RJK6;PGI7<ÇBL
RJRK<HÔHÔ>6=L50 IBœBVYIHVYILM8AI^? ¾ ÔHRK<H8N<HL³6?hL
RK<H8VY?
46QÔ>6I7LA;@VY?J&<>J&<HRKÔH<>B$QO6 6=BD4^<H8 ¾ VY?7<2^ <ûÔH<>BO6 # %
I0
# <JK
$' @'PO 2C Q'
#
, L M ' N#
@'SR @' 8'PA 'BA UVT T%
Y6{BN<>6?78RKI78N8N< R~LN6X£6=LM;=<H6=L¬XƒR ˆRKXƒ<ûÔHÔ>6hGI^<AXh-0R¶8NVYIB6?I 6=B6?7;@VYI7LMR `”
O6 4^RK?78Ô>68X£VYX£6?BN8
R KL&O6 R ^Ô>68\XƒRK<H8RKI78N8N<œ4WO6 8NR KL&O6 R ‹Ô>68 K6 ¾ 6?786 ¾ ÔûI78 ¾ RLNBN<H;=I^ÔH< 6=LN6X£6?B R XƒR~X 6=LN6 WX£68 KL
RK?7478
¾ RLN6?BN8 7VY?^;=Ô>68œ6=BABNRK?B68 ‹3DV$4 Q< &< 3AVYILNVYI ÇR 71!Ô>V 2RBNF 2<H;@Vƒ6=B
$'
/2?WK# LNVY8QXƒ6=LM;=<XRh
X£68QRKX<H8ö46NW! 68NRK?+;@Y VY? VYI7LQÔ>6IL9Ç VY?7?6£F$I7X£6ILö46£BVYI78PÔ>68
VYILM8†ß@; 8NRF'
@Z'@[VY?6$'\~6&4]Q'`9$6$<'S^ RK?@'_T2LNV`TVT'aK6RK?&SUTÔû¾RKI746'[6=BN<>B6N!Ô>VY?746'.-6cb+'ÛC`V0d'`TO6 '_xRLM86<ûÔHÔHRK<H8$'
ehO6 ÔQ6 ?76'f[ 6=BN<>BX =O6 LHVYg X£6Q6=BN;22
3
-#
80
'P $' < ' 'Si 'fA '
2 h ÔHR#K6'³1ÔûRK8NF'1Z.RKÔQ'WTO6 Ôû<H?6'
@' # 22 ¾
Ü YRKÔ>6X£6?B¬X£6=LM;=< R X£68RKX<H8ƒ4|- 6? RK?7;@6¼4|-0Ü JK6=BB6@SU9&RKÔ Ç6=LNB\;=<>B
TFL
<H8BV ¾ F6 xRLM8 7, $47<H6 71ÔHVÝ
$LN6=BB6 :RBNF ‹3AVYXƒRK<H? 7,Û6 ¾ R K6
87 j
lk
ܳ? ^? @-0RK<ÞI^?6 ¾ 6=BN<HB6 ¾ 6?^8=O6 6 ¾ VYI7LqÔH68 ¾ <HÔH<>6=L
8:46£;@VYX ¾ BVY<>LQ46ƒÔä- 2GI^R¬6=BQÔH68öRK4VKLMRB6ILM8Õ468
47<>6IÝ\CRLNVY8A6=B W6Ô>VKBNI^8
m!
$22
=
Ö
w %( ' ˜ZTW!VY[ ?‡KB'˜6@_Ý$Z B%69VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú TFVY<>Ýb46QÔûR£X =O6 BNFV$476V0‰VKL
X£6ÔHÔ>6 VV9VV9VV9VV9VV9VV9VV9VV
= TWVY?BLM<2^ I7BN<>VY?78W6=BDVF 6;@BN<20 8A46öLN6;
F6=LM;
F6 9VV9VV9VV9VV9VV9VV
Ö 9$BLMI^;@BNILN6Q47Ih4V&;=I7X£6?BA6=B #YI^<H46ö46QÔ>6;@BNILM6MVV9VV9VV9VV9VV9VV
Ö qT I^<H46Q46QÔ>6;@BNI7LN6 V9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ú ³[ I8^ ÔH<H;=RBN<HVY?78<H8N8NI68œ476Õ;@6QBLMRJ˜RK<HÔE46öBNF6 86MVV9VV9VV9VV9VV
sÚ + Šj; "?'BLN% V&Z47 I7"';@BN&<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú ,Û68:X =O6 BNFV&468 0ˆVKLMX£6ÔHÔH68 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú = ,ERX =O6 BNFV$476! 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú = 1VY?^46X£6?BN8:46QÔûR£X =O6 BNFV$476! V9VV9VV9VV9VV9VV9VV
) ?6X£6?BA6=BD<HX ¾ Ô
O6 X£6?BNRBN<>VY? 9VV9VV9VV9VV9VV9VV
Ú = Ú 3:R*
Ú = = [ LN6IJK6j9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú = Ö 9$BL
I7;@BNILN69# O6 ?W=O6 LMRKÔ>6†4|-0I7?76qXRK;MF7<H?76QR^ 8BLMRK<>B6 9VV9VV9VV9VV
Ú = ,+ 9&IP^8BN<>BNIBN<HVY?78K#`O6 ?W=O6 L
RKÔH<H8$=O6 689VV9VV9VV9VV9VV9VV9VV
Ú = " CAFW=O6 VKL
<>6Õ468œ6?^86X‹ Ô>68œ6=BABd ¾ RK# 6 VV9VV9VV9VV9VV9VV
Ú = # - ‹ ÔH<2Y# RBN<>VY?78œ476 ¾ LN6IJK6VV9VV9VV9VV9VV9VV9VV9VV
Ú = $ ,E68DX›O6 ;=RK?7<H8MX£68D46Q;@VYX ¾ VY8M<>BN<>VY? 9VV9VV9VV9VV9VV9VV
Ú Ö TWVY?7;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
.0/ 12354687696':<;>=
( =m Z %('/:"B|ABN<H'ÔH<H"{8NR"BN' <HVYŠ?h;@Z VY'Œ?H_DC VY+<û'Œ?_ BZ 6Õ%`47# 68AX =O6 BNFV&468 ˆ0 VKLMX£6ÔHÔH686=BD86Xƒ<uS ˆ0 VKLMX†S6ÔûÔ>68 V9VV9VV
= Ú { VKBN<>J˜RBN<HVY?78V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
= = TWVY?B6?Ix46QÔHR£46IÝ&<Q6 X£6 ¾ RLNBN<>6 V9VV9VV9VV9VV9VV9VV9VV
E Ös +¶% Z; ?'B+LN'˜V&_ 47Z I7% ;@BNp¼<HVY‚…? Vs 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
T O6 ?W=O6 LMRKÔH<HBO6 8 V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ú {
. <HRK# LMRKXƒXƒ6Õ46Õ;=ÔHRK8M868 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö = q
Ö = TÔûRK8N868$'7RBBLM<D^IBN8œ6=BDX›=O6 BNF7V$468 9VV9VV9VV9VV9VV9VV
T O6 ?W=O6 LMRKÔû<H8NRBN<>VY? VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö = Ú {
+
!Ú "
Ú#
Ú #
Ú$
ÚKÙ
ÚKÙ
( =&
&=
K= Ú
K= Ú
==
==
=˜Ö
=+
="
=$
ÖYØ
Ö>=
?3@
EÖBF#
ÖG$
ÖÙ
+
+
++ Ú
Ú
+=
"
= = k28N8V&;=<HRBN<>VY?'7G$I7RKÔH<D7^;=RBN<>VY?'XoI7Ô>BN< ¾ Ôû<H;=<>BO6 'R#KL$$O6 #YRBN<>VY?l6=BD;@VYX ¾ VY8N<>BN<>VY? VV
= Ö I^RKÔH<27^;=RBN<>VY?h4768ARK8N8V&;=<HRBN<>VY?78 V9VV9VV9VV9VV9VV9VV
Ö Ö .q<HRK# LMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78mVV9VV9VV9VV9VV9VV9VV9VV
Ö Ö Ü BNRBN8 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ö Ú C`LMRK?78N<HBN<>VY?78"V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ö = TWVY?^;=ILNLN6?7;@6 9VV9VV9VV9VV9VV9VV9VV9VV9VV
. <HRK# LMRKXƒXƒ6Õ46Õ8$O6 G$I6?7;@6 V9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+ q
Ö ,+G ,E68AVF 6=BN8 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
68N8NRK# 68 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+G Ú {
Ö ,+G = C`6X ¾ 8A4Û- 6@Ý O6 ;=IBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+G Ö TWVY?^47<>BN<>VY?78 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
[ 86I74VS;@V&46?V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+G,+ ³
Ö ,+G " TWVY?BLMRK<H?B68AB6X ¾ VKLM6ÔHÔ>68V9VV9VV9VV9VV9VV9VV9VV
. <HRK# LMRKXƒXƒ6Õ4|-0RK;@BN<>J&<>BO6 8 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö " q
Ö " ,E68AVF 6=BN8 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö " Ú Ü.Ý O6 ;=IBN<>VY?^8D;@VY?7;=ILMLN6?B68 V9VV9VV9VV9VV9VV9VV9VV
Ö " = [ VY<H?BN8D46Q;
FVY<uÝb6=B:;@VY?74^<>BN<>VY?78 V9VV9VV9VV9VV9VV9VV
Ö # ,Û6PÔHRK?8Y# RK# 6 - Tœ, VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö # ,E6Õ;@VY?B6@Ý&B6 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö # Ú ,E68ABh ¾ 68A469^ RK8N6Q6=BDÔ>68œV ¾ =O6 L
RB6ILM8 VV9VV9VV9VV9VV9VV
Ö # = ,E68ABh ¾ 68œ6=BD8VYI^8SBh ¾ 68D46Q;=ÔHRK8M8N<2^7 ;=RB6IL
8NVV9VV9VV9VV9VV
Ö # Ö ,E68 ¾ LNV ¾ LM<
=O6 BO6 8D468œV8 6=BN8XV9VV9VV9VV9VV9VV9VV9VV
Ö # ,+ ,E68AJRKÔ>6ILM8œRK?B=O6 LM<>6ILN68iVV9VV9VV9VV9VV9VV9VV9VV
Ö # " ,`Rƒ?7RJ&<2Y# RBN<>VY?¼JK6=LM8DÔ>68A6@Ý$BL&O6 Xƒ<HBO6 8q4|-0RK8M8V$;=<ûRBN<>VY? VV9VV9VV9VV
Ö # # ,E68D;@VYÔHÔ>6;@BN<HVY?78 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö # $ ,E68D;=ÔHRK8N8N68SRK8N8V&;=<HRBN<>VY?78 V9VV9VV9VV9VV9VV9VV9VV
Ö # Ù ,E68AJRLM<HR^ Ô>689VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö $ TWVY?7;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
g '+' " a t + ' f " _DC +'Œ_ Z % t>p¼‚…s ‹C " #&
+G ;?BLNV&47I7;@BN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ¼.+G =O6 LM <>JRBN¼.<>VY=? O6 LM<>R JR¾ BNR<>VYLNBN?{<>LA47468A6Q;=47ÔH<ûRKR8NK# 8LM6RK8 XƒX£V6V8A947V6QV;=ÔH9RK8N86V8:V/U9x V, V99VVVV99VVVV99VVVV99VVVV
+G ÚÚ Ú k BBLM<D^ IB 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G+G Ú = 2k- 8N¾ 8=O6 V&L
;=R<HBNR<>BNVY<>?VY?VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
Ú Ö
+G ,+ {T O6 ?W=O6 LMRKÔû<H8NRBN<>VY? VV9VV9VV9VV9VV9VV9VV9VV9VV
+G = ÜÞÝ&Ú B6?78N<HVY?¼46QÔHR£4W=O6 LM<HJ˜RBN<>VY?{468A47<HRK# L
RKXƒX£68A46Q;=ÔûRK8N868NVV9VV9VV9VV
+G+G = ¼.{ =O6 VKLMBN<><>JJRRBNBN<><>VYVY?{?78 476V8 9LNVVKVBVKBd 9V68AV6=9B:VR V96ÔH8œV4|- VV 9=O6 VLMRVBN<>9VY?^8 VVV99VVVV99VVVV99VVVV
+G == Ú= TÔûRK8N8N<2^7 ;=RBN<HVY?b6=BA¾ VKLY# RK?7<H¾ 8MRBN<>VY?¼4¾76¾ 8œV ¾ =O6 L
RBN¾ <>VY?78)9VV9VV9VV9VV
+G Ö ¼.+G =O6 LM <>JRBN¼.<>VY=? O6 LM<>R JR¾ BNR<>VYLNBN?{<>LA4746Õ6Q8BN47R<ûBR6K# ;MLMF^RKRXƒLNBNX£8D668A?{4ÛXƒ- =O6 RKBNR;MBNF78<ûS?B6LM8ARK?7R8N^ <>BN8B<HVYL
?7RK<>8mB68 VVV99VVVV99VVVV99VVVV
+G ÖÖ Ú Ü.Ý$B6?78M<>VY?¼46QÔHR£4W=O6 L
<>J˜RBN<HVY?¼RK8N8V&;=<
=O6 6PRKI¼4^<HRK# LMRKXƒX£6Q476Q;=ÔHRK8N868jVV9VV
+G,+ C`+G,LM+GRK 47I7;@BNC
<>VY ?{648A68œ47696@Ý ^ ¾ RKLN866 8N8N<HL&VY?7O6 4W8 $O6 -‹7 ?7T<H8,~6?LTœ,I! V99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
¾
¾
+G,+G Ú C
¾ 6Q;@VYÔHÔH6;@BN<>VY? VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö
Ö
+=
+Ö
++++
+"
++ "
#+
++ $#
$+
+ $$
+
+ ÙÙ
"Ø
"Ø
"Ø
"&"&
"KÚ
"K"KÚÚ
"KÚ
"K"Ú=
"˜Ö
˜" Ö
"˜Ö
" ++
"""
"#
""$#
"KÙ
˜# Ø
$#
#$
#Ú
# Ú
# Ú
#*"
$&$KÚ
$KÚ
#
+G,+G Ü.Ý LM68N8N<>VY?
V9VV9VV9VV9VV9VV9VV9VV
+G,+G Ö= Ü.Ý ¾¾ LM68N8N<>VY?hlet46 ...¾ VYin8BS...;@VY?^47<>BN<>VY? V9VV9VV9VV9VV9VV9VV
+G " ÜÞÝ&BLMRK;@BN<>VY?x46Q8 &8Bc6 X£68246öBLMRK?78N<HBN<>VY?78=O6 BN<HG$I6=B=O6 68 VV9VV9VV9VV9VV
+G " 9G&8B$6 X£6o46öBLMRK?78N<HBN<>VY?78=O6 BN<HG$I6=B=O6 68 VV9VV9VV9VV9VV9VV
+G " Ú [ LM<H?7;=< ¾ 6q46Q;@VY?78BL
I7;@BN<>VY?¼4|-0I^?h8 $ 8NBc6 Xƒ6P46öBLMRK?^8N<>BN<>VY?78‹7 ?7<-9VV9VV
+G ܳ?I7X›=O6 L
RBN<>VY?{468\=O6 BNRBN8 VV9VV9VV9VV9VV9VV9VV9VV
+G # TWVY" ?7= ;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
g A|' +7‡K'Œ_ Z % " _ˆ+ ^ + Š›Š "$# "l‡ a +7##"#
" ;2. ?6PBLNÔHV&R£478 I7;@BNO6 ;=<HVY<2^7 ? ;=RVBN<>VY9?iV! VRK9I{V47V<HRK# LM9RKXƒVXƒV6Q94V6QV;=9ÔHRK8N8V68LV99VVVV99VVVV99VVVV99VVVV99VVVV
"Ú
" Ú ¾ ,E,E668D8AJXƒRRKLM;
<HRF7^ <H?Ô>6688A6R?‹ BN8<QB6= LMLNRK6<>8DB66=8B Ç VVVY9Ô =VO6 6V?7?7968?VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ú Ú ,E68A6?786X:^ Ô>68œ8M<HX Ô>68/VV9VV9VV9VV9VV9VV9VV9VV
"Ú=
" Ú ,Ö+ ,E/:6BN8A<HÔH<H68M?7R8BN6<>VYX:?h^ 4Ô>66Q8œ847B$6Õ=O6 L&;@=¾O6 VYVKIBh ¾ Ô>668 8 99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
"Ú
" = /2?h6@Ý$6X ¾ Ô>6Q8N<HX ¾ Ô>6 V9VV9¾ VV9VV9VV9VV9VV9VV9VV9VV
" = Ü{ BNV$I74W4O6 6QÔû<H48NR6ÕBN<>;=VYRK?¼8Õ/?ß8U; x ?^8N, ;@LM;@< VK¾ LNBNLM<HVY68?\4ÛVY-?7=O6 47BNI^RK47?B<HRK6 ?BNV8VR£ 9I7V?¼V4^< 9¾ ÔdVYg X£VV6U99VVVV99VVVV99VVVV
"=Ú
" Ö O6 ;=RK?^<H8NqZ X£<H8N6<282‹ <H4ÔH<>6QB$NO6 ;@VYR£ X B¾LMRVYJK8N6=<>BNL
<H8:VY?Ô>68œ9;=ÔûVRKI7¾V8968 VV9VV9VV9VV9VV9VV9VV
6=B
V9VV9VV9VV
"Ö
IMPORTS
6=B
V
V
9V9VVV9V
" Ö Ú TÔûRKI786 EXTENDS ' INCLUDESSEES
PROMOTES
" ,+ TW,VY+GX ¾ RLM; RK?<HB8LMVYV$?¼47I^R;@JKBN6<>;ÕVY? 4|-0RKI79BVLN6V8 ¾ LN9V ¾VVYV8N<H9BN<>VVY?7V8946QVBLMVRK4^9I7V;@BNV<>VY9? VVVV99VVVV99VVVV99VVVV
" ,+G Ü BNI746Q46Õ;=RK8Õß78 & 8Bc6 X£6P46Q;@VY?BLHVYg Ô>6P4|-0RK;=;H6 82RKIÝ ^ RBN<ûX£6?BN8 VV9VV
" Ú
" ,,+G+G = ,ETW6VY8AX BLMRKR47LMRKI^<H;@8BNVY<>?^VY8œ?7846Õ6?{;@6/?8Dx 476, I&Ý\VR 9VLNVV$9;
F68 VVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ö
¾
¾7¾
F #c "$% " ; ?+BLN'ŒV&_ Z 47%I7;@BN<H"xVY? ‡ ZV%(' 9+^V_ %(V'9"$# VkbVmP9s VV9VV9VV9VV9VV9VV9VV9VV
# Ú 3b(O6 O6 ;@LM<>BNI7LN6P6? - T, 468D<H?JRLM<HRK?BN8 ! V9VV9VV9VV9VV9VV9VV
# Ú ;C?RB^ LMV$Ô>647RKI^I&;@ÝhBN<>4|VY?-UO6 G$I79<>JVRKÔ>V6?7;@96V! VJK96=LMV8 V9T,VVV99VVVV99VVVV99VVVV99VVVV99VVVV
# Ú Ú , - 6@Ý$6X Ô>6Q47Ix9&;
F647I7ÔH6=L/V9VV- 9VV9VV9VV9VV9VV9VV
#Ú=
Ú Ö ,E68 ¾ LNV¾ ‹ Ô,6 X£68œLN6?7;@VY?BL&O6 8 9VV9VV9VV9VV9VV9VV9VV
#
# = 3b(O6 O6 ;@LM<>BNI7LN6P6? - T, 468AV ¾ =O6 LMRBN<>VY?78U! V9VV9VV9VV9VV9VV9VV
# = [C`LML$RKO6 8?768 ?ˆ0 VKBNRLMXƒBN<HVYR?xBN<HVY4?h68A6?V ¾ =O6 LMTR,¶BN<>VY4|?7-08XI7?! 6öVV 9=O6 LMRVBN<HVYV? 9! VV99VVVV99VVVV99VVVV99VVVV
#=Ú
¾
t
€
g |
$ A ' +7;,E?‡K<ûBXƒ'ŒLN_ V&<>Z B47%6I78œ;@ 4BN"6Õ<HVYÔ? - 6@_ˆVÝ$+ B^LM RK9+ ;@Š›BNV<HVYVŠ ?/9"$VV# VV "99'+VV'#VV'99 VV+‹%EVV#99_‰'Œ_ Z VV%EVV# 99VVVV99VVVV99VVVV99VVVV99VVVV
$ Ú 2T LMRKXXƒRK<>LN6Q47I{?V Y RKIx47IhÔHRK?8Y# RK# 6ÕI7BN<HÔH<H8$O6 VV9VV9VV9VV9VV9VV
$=
$ ,Ö+ .[,ERL
<H?78B;=LM< ¾I7;@6BN8KI`# LM6O6 ?³V=O6 LMRKI&9ÝxV4V6ö9BL
VRK47VI7;@BN9<>VYV?V99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
$ ,Û68:8NI8^ 8NBN<>BNIBN<>VY?788N<ûX Ô>68V9VV9VV9VV9VV9VV9VV9VV9VV
$"
$ # ; ?7<>BN<HRKÔH<û8NRBN<>VY?$' V ¾ =O6 LMRBN<>VY¾ ?78D6=Bh=O6 J.O6 ?76X£6?BN8?9VV9VV9VV9VV9VV9VV
$KÚ
$=
$=
$=
˜$ Ö
˜$ Ö
$+
F
$#
$#
$#
$#
K$ Ù
Ù&
Ù+
Ù"
Ù"
Ù#
KÙ Ù
ÙKÙ
ÙKÙ
=ØKØ
=ØKØ
=ØKØ
=Ø
=Ø
(
=
=Ø
=Ø
=Ø
=؏Ö
=Ø
=Ø
=ØYÙ
=ØYÙ
=ØYÙ
=
=
"
$
! (
KE=
KE=
KE=
K
K
K
K
"
+
+
#
$
$ $
8
9VV9VV9VV9VV9VV9VV9VV
V9VV9VV9VV9VV9VV9VV9VV9VV
VV9VV9VV9VV9VV9VV9VV9VV
9VV9VV9VV9VV9VV9VV9VV
9VV9VV9VV9VV9VV9VV9VV
VV9VV9VV9VV9VV9VV9VV9VV
9VV9VV9VV9VV9VV9VV
V9VV9VV9VV9VV9VV9VV
27
VV9VV9VV9VV
Z VV9VV9VV9VV9VV9VV9VV9VV
[ M 6V9VV9VV9VV9VV9VV9VV9VV9VV9VV
#
8
: %9VV9VV9VV
$
#
2# 27 20
9VV9VV9VV
$
9VV9VV9VV9VV9VV9VV9VV9VV9VV
$
9VV9VV9VV9VV9VV9VV9VV9VV9VV
$ [
90
KVV9VV9VV9VV9VV9VV9VV
$ [
V9VV9VV
$ = . #
MV9VV9VV9VV9VV9VV9VV
$
1 f _ˆ+ ‹ + Š›Š "# "x# " [ "$%`‡Y"l"' t +7‡K'˜_ EC _‰' "$#
Ù ;?BLNV&47I7;@BN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú .q<HR#KLMRKXƒXƒ6Õ46Õ8$O6 G$I6?7;@6 V9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú ,E68AVF 6=BN8 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú Ú ,E68DX£68N8MRK# 6839VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú = ,E68 ¾ RLMRKXM6= BLM68A6=BDJRKÔ>6IL
8œ46öLN6=BVYILD4768œV ¾ =O6 LMRBN<>VY?78 9VV9VV9VV
Ù Ú Ö ,E68D;@VY?747<HBN<>VY?78 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú ,+ ,E68 Ç VYI7;=Ô>68œ47RK?^8AÔ>68œ47<HRK# L
RKXƒX£68A46Q8$O6 G$I6?7;@6 VV9VV9VV9VV
. <HRK# LMRKXƒXƒ68D4|-0RK;@BN<>J&<>B$O6 8 V9VV9VV9VV9VV9VV9VV9VV9VV
Ù = q
Ù = ,E68DRK;@B6ILM8:47Ih47<HRK# L
RKXƒX£6Q4|-0RK;@BN<>J&<>B$O6 8 9VV9VV9VV9VV9VV
Ù = Ú ; ?7<>BN<HRKÔû<H8NRBN<>VY?$' V ¾ =O6 LMRBN<>VY?{6=Bh=O6 BNRBN824|-0RK;=;@6 ¾ BNRBN<>VY? VV9VV9VV9VV
Ù = = 9 O6 G$I6?BN<HRKÔH<>B$O6 9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù = Ö Ü.Ý ¾ LM68N8N<>VY?78œ;@VY?^47<>BN<>VY?7?76ÔHÔ>68VV9VV9VV9VV9VV9VV9VV
Ù = ,+ ,E68 Ç VYI7;=Ô>68 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù = " k ¾7¾ 6Ô|4|- V ¾ =O6 LMRBN<>VY?^8$' ¾ RLMRKXM6= BLM68D6=BAJRKÔ>6IL
8œ46öLN6=BVYIL VV9VV9VV
m Z %E‡ aˆ[ #_ Z %©# [`ha t "B|A ' +7‡K'Œ_ Z % " C [ "# ^ + `% _ˆ [ "#
=Ø ÜÞÝ&BLMRK;@BN<>VY?x468A<H?P0‰VKLMXRBN<>VY?78œ8BNRBN<HG$I68V9VV9VV9VV9VV9VV9VV
=Ø Ü.Ý$BLMRK;@BN<HVY?{468A4^<HRK# LMRKXƒX£68D46Q;=ÔHRK8N868 9VV9VV9VV9VV9VV
T O6 ?W=O6 LMRBN<HVY?468Þ;@VY?BLMRK<H?B68 - T,h46 ¾ I7<H8Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8Þ;@VYX ¾ Ô>6@Ý$68Þ476Ô-0<H?&S
=Ø Ú {
JRLM<HRK?BX9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
=Ø = 9G& ?BNF6 86P46QÔ- 6@Ý$BLMRK;@BN<HVY?¼468D47VY?7?³=O6 68A8BNRBN<HG$I685VV9VV9VV9VV
=Ø Ú ÜÞÝ&BLMRK;@BN<>VY?x468A<H?P‰0 VKLMXRBN<>VY?78œ48& ?7RKXƒ<HG$I68WVV9VV9VV9VV9VV9VV
=Ø Ú Ü.Ý$BLMRK;@BN<HVY?{468A4^<HRK# LMRKXƒX£68D4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78 VV9VV9VV9VV
=Ø Ú Ú Ü.Ý$BLMRK;@BN<HVY?{468A4^<HRK# LMRKXƒX£68D46Q8O6 GI76?7;@6Õ6=BD4Û-0RK;@BN<>J$<HBO6 8 V9VV9VV
=Ø Ú = 9G& ?BNF6 86P46QÔ- 6@Ý$BLMRK;@BN<HVY?¼468D<û?8‰0 VKL
XƒRBN<>VY?7848& ?7RKXƒ<HG$I68 V9VV9VV
,Û68:8NI ^8NBN<>BNIBN<>VY?7846Q;@VYX ¾ VY8M<>BN<>VY?
9&I ^8BN<>BNIBN<HVY?
Ú 9&I ^8BN<>BNIBN<HVY? 9&I ^8BN<>BNIBN<HVY
? Ö 9&I ^8BN<>BNIBN<HVY?!"#$ 9&I ^8BN<>BNIBN<HVY?%&'
9&I ^8BN<>BNIBN<HVY?%&')(+*,-*/.
9&I ^8BN<>BNIBN<HVY?!'0"#$ 9&<ûX ¾ ÔH< ‹;=RBN<>VY?78 ¾ RL\=O6 J˜RKÔûI7RBN<>VY?{4768œ6@Ý ¾ LN68N8N<>VY?^8
Ù .RLM<ûR ^Ô>68A;@VY?7;=I7LNLN6?B68
=Ø !RLMRKX 6=BLN68
Ù TRKÔH;=I^Ô|46Q47<HR KLMRKXX£68œ6@Ý&BLMRK<>BN8D476Q8NI ^8BN<HBNIBN<>VY?78<HX 7LM<HG$IW=O6 68
=Ø TRKÔH;=I^Ô|47I¼47<HR KL
RKXƒX£6Q8N< Y?^< ^;=RBN< ¾ RLD8O6 Ô>6;@BN<>VY?x46öJ˜RL
<HR ^Ô>68
K ,.- 6@Ý&6X ¾ ÔH6Õ47Ih3AV ÇVKB
L$O6 86?BNRBN<HVY?
K
K Ú LM<H?7;=< ¾ 6846 ˆVY?7;@BN<>VY?7?76X£6?B
K q<HR KLMRKXX£6Õ4|-U=O6 BNRBN82BLMRK?78N<HBN<>VY?78468DXRK;MF7<H?768œR ^8BLMRK<>B68
Ú TWVYX ¾ RLMRK<H8VY?¼RJK6;Õ4|-0RKI7BLN68AX›=O6 BNFV&468
$ $ $ $ $ $ =
$ $ $ $ ,+
$ $ "
$ $ #
$ $ $
$ $ $ $ P
P
P
P
P
P
P
$
K
K
KÙ
KÙ
KÙ
ڏØ
Ú&
Ú&
ÚKÚ
Ú
Ú
ژÖ
Ú
Ú
Ú
Ú
Ú
˜Ö
$
=
=
+
#
#
#
$
E=
(1
E=KÙ
E=KÙ
E=KÙ
@ÖYØ
@Ö7
@ÖÚ
@ÖÚ
@Ö
@Ö
@ÖKÖ
@Ö
@Ö
@Ö
@Ö
>=
>=
+
G"
B#
G$
+
+
+Ú
+Ú
+Ú
+Ú
+Ú
+=
Ù
3 4 1 4 8 9 1 9 4 ! ! ! c "$ % " ; ?+BLN'ŒV&_ Z 47%I7;@BN<H"xVY? ‡ ZV "š9+) V V+ 9 V'˜_ V "x9V# £V"$9‡_VV‡Y+79'Œ_ Z V%`V#9Ž Z‹V˜Š V9" aˆa "$V# V9VV9VV9VV
K
K Ú [.LMVH6=Bm! - V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
K = - F6;@BN<20 8A47I ¾ LMVH6=Bm! - 9VV9VV9VV9VV9VV9VV9VV9VV
K Ö5- F6;@BN<206=BD;@VY?BLM<2^IBN<HVY?h46QX£68ABL
RJRKI&ݼ46öBNF6 86 V9VV9VV9VV9VV
+ Ü.BNRB246QÔä-0RLNB?V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
K ,©
ß7476©! JK6=LM82T 9VV9VV9VV9VV9VV9VV9VV
K ,+G [ LNVH 6=BX! - ¯
. 6:©! JK6=LM8 - TRKXƒÔfV9VV9VV9VV9VV9VV9VV9VV9VV
K ,+G Ú 2
K ,+G = .26 - F6;@B R”JK6=LM8:T × YRJR VV9VV9VV9VV9VV9VV9VV
. 6Z?.9 …JK6=LM82T56=BXY RJ˜R 9VV9VV9VV9VV9VV9VV
K ,+G Ö 2
K " TWVY?7;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
c "$ % " ;?+BLN'ŒV&_ Z 47%I7;@BN<H"xVY? ‡ ZV "9|V+GVC+ 9V+) V + 9'Œ_V V 9" V& V9VV9VV9VV9VV9VV9VV
Ú
[ L
<H?7;=< ¾ 68K`# O6 ?³=O6 LMRKI&ÝxRK4V ¾ BO6 8 9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú .
Ú Ú ,E6 ¾ VY<H?Bœ46Q4WO6 ¾ RLNB:46QÔûR†BLMRK47I7;@BN<>VY? ß7Ô>6V! Ø 9VV9VV9VV9VV
Ú Ú Ú Ü.Ý$6X ¾ Ô>6xO6 Ô
O6 X£6?BNRK<HLN6P46 XƒRK;MF7<û?6QR^ 8BLMRK<HB6Q6=BD4|-0<HX ¾ Ô
O6 X£6?BNRBN<>VY?M9VV
Ú Ú = 9&;
F³O6 XƒR476Q;@VY?JK6=LM8M<>VY?{468DXƒRK;MF7<û?68KVV9VV9VV9VV9VV9VV
Ú = ,ERƒLN6 ¾ L&O6 86?BNRBN<>VY?{4Û-0I7? ¾ LNVH 6=B !V9VV9VV9VV9VV9VV9VV9VV
Ú Ö ,ERƒLN6 ¾ L&O6 86?BNRBN<>VY?{4768DXƒRK;
F7<H?686? Y RJR VV9VV9VV9VV9VV9VV
RK;MF7<û?68m! 6=BD8M;MFWO6 XƒRK8246öBLMRK47I^;@BN<>VY? Y RJ˜RV9VV9VV9VV9VV
Ú Ö x
Ú Ö Ú Ü.Ý$6X ¾ Ô>68VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+ ,Û68DBh ¾ 68 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú ,©
Ú ,+G ,E68ABh ¾ 68A469^ RK8N6Õ47IhÔHRK?8Y# RK# 6:! 9VV9VV9VV9VV9VV9VV
Ú ,+G Ú Ü³GI7<HJ˜RKÔ>6?^;@6ö6?BLN6ÕBh ¾ 68m! 6=BABh ¾ 68mY RJ˜RVV9VV9VV9VV9VV
Ú " ,ERCELMRK4^I7;@BN<>VY?h468:4VY?7?W=O6 68 9VV9VV9VV9VV9VV9VV9VV9VV
Ú " 3D6XƒRLMG$I68 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " Ú ,E68A6?786X:^ Ô>68:9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " = ,E68D;@VY?78BNRK?B682;@VY?7;@L$6= B68 V9VV9VV9VV9VV9VV9VV9VV
Ú " Ö ,E68AJRLM<HR^ Ô>68œ;@VY?^;@L$6= B68 VV9VV9VV9VV9VV9VV9VV9VV
Ú " ,+ ,E68D<H?B6=LNJRKÔHÔ>689VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " " ,E68ABNR^ Ô>6RKIÝ 9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " # ,E68 ¾ RLMRKXM6= BLM68D468:XƒRK;MF7<û?683V9VV9VV9VV9VV9VV9VV
Ú # ,Û68DV ¾ =O6 LMRBN<>VY?789VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú # ,`R£BLMRK47I7;@BN<HVY?¼468œV ¾ =O6 LMRBN<HVY?78m! 6=BD4768 ¾ RLMRKXM6= BLN68:4|- 6?BL$=O6 6 VV9VV
Ú # Ú ,E6 ¾ LNV^ÔQ6 Xƒ6Q468œL&O6 8NI7ÔHBNRBN8DXoI7Ô>BN< ¾ ÔH68VV9VV9VV9VV9VV9VV
Ú # = /2?h6@Ý&6X ¾ Ô>6 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú # Ö 3D6=BVYIL:8NI7LAÔHR£8O6 XƒRK?BN<HGI76Õ47I ¾ RK8M8NRK# 6Õ46 ¾ RL
RKX 6= BLN68D6? ! VV9VV
Ú $ ,Û68:8NI8^ 8NBN<>BNIBN<>VY?78 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú $ ; ?BLMV$47I^;@BN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú $ Ú ,`Rƒ8NI8^ 8NBN<>BNIBN<>VY? *8VV9VV9VV9VV9VV9VV9VV
Ú $ = 9&IP^ 8BN<>BNIBN<HVY?\R ¾^¾ 6Ô|4Û- V ¾ =O6 LMRBN<>VY? 9VV9VV9VV9VV9VV9VV
Ú $ Ö 9&IP^ 8BN<>BNIBN<HVY?
! ' !" VV9VV9VV9VV9VV9VV9VV
Ú $ ,+ 9&IP^ 8BN<>BNIBN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV
Ú $ " 9&IP^ 8BN<>BNIBN<HVY?$# 9VV9VV9VV9VV9VV9VV9VV9VV
@@
F+
#+
+ $#
+$
" Ø
" Ø
" Ø
K" Ú
"=
"=
+
"+
"+
"
""
""
"#
"#
"#
"$
"$
"$
Œ# Ö
Œ# Ö
Œ# Ö
#+
#*"
##
##
#*$
&$
K$ Ú
K$ Ú
˜$ Ö
$ ++
$
$$
$$
K$ Ù
K$ Ù
Ù&
Ù&
Ù&
=Ø
(
E
$ # 9&IP^8BN<>BNIBN<HVY? *-* " *& VV9VV9VV9VV9VV9VV9VV
$ $ 9&IP^8BN<>BNIBN<HVY?%&' VV9VV9VV9VV9VV9VV9VV9VV
$ Ù 9&IP^8BN<>BNIBN<HVY?%&')(+*,-*/.9VV9VV9VV9VV9VV9VV
$ =Ø 9&IP^8BN<>BNIBN<HVY? *' V9VV9VV9VV9VV9VV9VV
$ K 9&IP^8BN<>BNIBN<HVY? .. & VV9VV9VV9VV9VV9VV9VV9VV
y " # [ %`"x' + [ ‡K'Œ_ Z % .Z([E |+GC+ m + E= ;?BLNV&47I7;@BN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
E= Ú ,ER ¾ ÔHRB6@S ˆ0 VKLMX£6: RJRTRLM4WV9VV9VV9VV9VV9VV9VV9VV9VV
E= Ú ,E68D8 ¾ O6 ;=<2‹7 ;=<>BO6 8D46QÔHR ¾ ÔHRB6@S ‰0 VKL
X£6:Y RJ˜RTœRLM4iV9VV9VV9VV9VV
E= Ú Ú 9$BL
I7;@BNILN6Q4|-0I^?6öR Ô>6=B VYILm RJRTRLM4 9VV9VV9VV9VV9VV
E= = ,.- 6@Ý&6X ¾ ÔH6Õ47I ¾ VKLNB6@SX£VY?7?^¾7RK¾ <>6xO6 Ô>¾ 6;@BLNVY?7<HG$I6 VV9VV9VV9VV9VV9VV
E= = [ L$O6 86?BNRBN<HVY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV
E= = Ú ,E68DXƒRK;
F7<H?68 ! VV9VV9VV9VV9VV9VV9VV9VV9VV
E= = = ,`R£BLMRK47I7;@BN<HVY?h6? Y RJ˜R VV9VV9VV9VV9VV9VV9VV9VV
E= Ö {T O6 ?W=O6 LMRBN<>VY?”46Q;@V&46: RJRTRLM46VV9VV9VV9VV9VV9VV9VV9VV
E= Ö , -0R ¾7¾ Ô>6=Bm RJRTRLM4{4^I ¾ VKLMB6@SX£VY?7?7RK<>6lO6 Ô>6;@BLMVY?7<HG$I69V9VV9VV9VV
E= Ö Ú ,E6 ¾ LNV&;@68N8NI78œ476Q4³=O6 JK6Ô>V ¾7¾ 6X£6?BUY RJ˜RTœRLM4¼86Xƒ<>SRKIBVYXƒRBN<HG$I6 VV9VV
m Z %E‡ aˆ[ #_ Z %©# [`ha + 2"&% " +7'Œ_ Z % "l‡ Z " Z‹] "'¼+ ) + 'Œ_ "l# †"‡_!‡Y+'Œ_ Z %E# &
! 6?{ÔûRK?8Y# RK# 6 R£ VF 6=BN8 9VV9VV9VV9VV
@Ö C`LMRK47I7;@BN<>VY?{46Q8 ¾ O6 ;=<2^7 ;=RBN<HVY?78m©
@Ö Ú Ü.JRKÔHI7RBN<HVY?iVV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú
Ú
Ú
Ú
Ú
96 ' 1 s +G+ !a; +7?'BLN" V&€ 47Ž Z^I7;@Š BN<HVY" ? &Vn Z|9Z‹Va # V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ,ER ¾ ÔHRB6@S 0ˆVKLMX£6Õ;@VYXƒXoI7?6%V9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú :k LM;MF^<>B6;@BNILN6Q6=B ¾ LM<H?7;=< ¾ 6246Vˆ0 VY?7;@BN<>VY?7?76X£6?B 9VV9VV9VV9VV
+G Ú Ú ,E6ÕC- ¾ 6ŒTF6;&KC 6=L V9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú = ,E6oTWVY?B6@Ý$B6! VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú Ö ,E6V‰0 VKL
XƒRB
9{ , VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ,+ ,`R£BLMRK47I7;@BN<HVY?¼47IbBh ¾ RK# 6P6??x ,VV9VV9VV9VV9VV9VV
+G Ú " ,`RN! - F 6;@BA,E<2^ LMRL ,! - ,VV9VV9VV9VV9VV9VV9VV
+G = ,Û68DVYIBN<HÔH8 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G = , - VYIBN<HÔ@! Ú /?{ ,VV9VV9VV9VV9VV9VV9VV9VV9VV
+G = Ú C`LMRK47I7;@B6I7LAJK6=LM8X RJR × T
9VV9VV9VV9VV9VV9VV9VV
+G Ö TWVY?7;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
e a _ˆ‡Y+'Œ_ Z % "' Š _‰#"{"&% Z " [ C "
" ; ?BLNV&47I7;@BN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
" Ú TRKF7<H6=LD468A;
F7RLK# 68V9VV9VV9VV9VV9VV9VV9VV9VV9VV
" Ú [ L$O6 86?BNRBN<HVY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV
" Ú Ú [ LNV LM< =O6 B$O6 8247Ih8 & 8Bc6 X£6VV9VV9VV9VV9VV9VV9VV9VV
" = 9 ¾ O6 ;=<2‹7 ;=RBN<>VY¾ ?78D4^I ¾ LNVH 6=B ! 9VV9VV9VV9VV9VV9VV9VV9VV
" = ,E6Õ;@VYX ¾ VY8NRK?B Feu V9V9VV9VV9VV9VV9VV9VV9VV
ÙKÚ
ÙKÚ
Ù
Ù
Ù
+
+
"
11
ÙKÙ
ÙKÙ
ÙKÙ
ڏØ
ڏØ
ڏØ
ڏØ
ڏ؏Ö
ڏØ
ڏØ
ڏØ
=
=
=
+
+
+
ڏ ØY1 Ù
Ú&=Ø
Ú& E=(
Ú&@Ö
Ú&@Ö
Ú&@Ö
&Ú
&Ú
&Ú
&Ú
&Ú
&Ú
ÚKÚ&
ÚKÚ&
+
+
+
+
$
!ÚK Ú( =
ÚKÚ=
ÚKÚ=
ÚKژÖ
ÚKژÖ
ÚKژÖ
#
K
V9VV9VV9VV9VV9VV9VV
" = Ú ,ETW6ÕVYX ;@VYX VY8M¾ RKVY?8NB RK?B LM<HCARREFOUR
"
= = ¾ ¾ ?7;=< ¾ RKÔ?9VV9VV9VV9VV9VV9VV9VV9VV
" Ö ÜÞÝ& BLM RK;@BN.q<>VY<H?xR#K4LM6öRKXJ&IX£66Õ8A/?46Q{;=,ÔHRK8MV868"9VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ö TWVY?BLMRK<H?B68 T,/V9VV9VV9VV9VV9VV9VV9VV9VV
"" ÖÖ Ú= q. <HRK# LMRKXX£6Õ4|- -U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78 9VV9VV9VV9VV9VV9VV
"" ÖÖ ,Ö+ q.q. <H<HRRK#K# LMLMRKRKXXX£X£6Õ6Õ44|6Q-0RK8$;@BNO6 G$<>J&I<>6B$?7O6 8 ;@6VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" ,+©C`LMRK47I7;@BN<>VY?¼6? Y RJ˜R V9VV9VV9VV9VV9VV9VV9VV9VV9VV
1 9 *
F m # Z %E‡ TWaˆ[ VY#?_BZ LM<2%©^ I7"BN' <>VY ?7"8) # 9"V‡Y'ŒV_D‹C 9"$V# V9VV9VV9VV9VV9VV9VV9VV9VV
# Ü.C`LMÝ$RKB47LMRKI7;@;@BNBN<H<HVYVY?{?h4JK6ö6=LMJ&8AIÔ>668A8D/?ÔHRK{?8Y# ,IRK# V689RƒVVVF9 6=BN8UVY VR9J˜R£V6=VBq9T
VVV99VVVV99VVVV99VVVV
# Ú ,`R ÔHRB6@S 0ˆVKLMX£6!CEV$VYÔH8 V9VV9VV9VV9VV9VV9VV9VV
# = 9G& ?¾ BNF6 86P468D;@VY?BLM<D^ IBN<>VY?78
9VV9VV9VV9VV9VV9VV9VV
# Ö
# Ú [ # 6=LMÚ 8 ¾ 6;@¼. BN<>JKO6 Xƒ68 RLMV;
F6o9<HVB=O6 VL
R9BN<>VJK6ÕV6?B9LN6ÕVÔäV- 6@9Ý&BVLMRKV;@9BN<>VY?{V6=VBD9ÔHR£V4WV=O6 LM9<HJ˜RVBN<>VYV? 9VVVV99VVVV99VVVV
## ÚÚ Ú= 2k2k X;MF6=O6 ÔHJK<>VK6LMX£R6BN<H?VYBö?{446Q6QÔHR Ôä- 6@Ý&ÔûBRLMBRK6@;@S ‰0BNVK<>VYLM?{Xƒ6:46 8A! 47C <HR- K# - L
RK,Xƒ9 X£6V8A94|-U=O6 BNVRVBN89SBL
VRKV?78N9<>BN<>VYV?^8NV99VVVV
# Ú ,Ö+ .Z17I^RK8NÔH<û<>47VYR?¼BN<>4VY6?¼8D446Q6I&8 ÝhO6 X ;=<2¾ =^7O6 BN;=FRV$BN47<>VY6?78D8AÜÞLNÝ&6BÔHRLMRKBN<>;@JKBN6<>VYX£? 6× ?CEBDLMRKRKIx4^I7;=;@RKBNF7<>VY<>6=? LDV4968DV;MVF7R9LK#6V8 V99VVVV
#Ú
¾
&£_ ]a _ Z ‹ + % _‰"
+
"#
#
$
ÚKÚ
ÚKÚ
ÚKÚ
ÚKÚ
ÚKÚ
ÚKÚKÙ
Ú&
Ú&
Ú KÚ
=
=
=
ژ( ÖY1Ø
ژÖYØ
ژÖ7
ژÖ7
ژÖÚ
ژÖÚ
ژÖÚ
ژÖ
ژÖKÖ
ژÖKÖ
ژÖKÖ
>=
E
Ú
TK&;=Ô>6Q46Õ4W=O6 JK6ÔHV ¾7¾ 6X£6?B:4|-0I7?hÔ>V#Y<H;=<H6ÔV9VV9VV9VV9VV9VV9VV
Ú TK&;=Ô>6Q46Õ4W=O6 JK6ÔHV ¾7¾ 6X£6?BD6?i! VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú 9$BLMI^;@BNILN6Q4|-0I7?76qXRK;MF7<H?76ÕR^ 8BLMRK<HB6 VV9VV9VV9VV9VV9VV9VV
Ú = /2?6ÕXƒRK;
F7<H?6V! 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
V9V9VVV9V9VVV9V9VVV9V
Ú Ö ,ERXƒRK;MF7<û?6QR^ 8BLMRK<HB6
MachineA
) ?6X£6?BD46 MachineA
9VV9V9VVV9V9VVV9V9VVV9V
Ú ,+ ,Û6ÕLMR*
T LMR ¾ F6Õ46Q4WO6 ¾ 6?747RK?^;@6Q4|-0I7? ¾ LNVH 6=Bm! V9VV9VV9VV9VV9VV9VV
Ú " 2
Ö /2?6Õ;=ÔHRK8N8N6 ¾ VYI7LNJ$I76q4Û-0RBBLM<2^ IBN86=B246QX›=O6 BNFV&468 VV9VV9VV9VV9VV
T O6 ?W=O6 LMRKÔH<û8NRBN<>VY?i9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ú {
T O6 ?W=O6 LMRKÔH<û8NRBN<>VY?(' RK8N8V&;=<HRBN<>VY?h6=BDXoI7Ô>BN< ¾ ÔH<H;=<>B$O6 VV9VV9VV9VV9VV9VV
Ö = {
Ö Ö I7RKÔû<2^7 ;=RBN<>VY?h4|-0RK8M8V$;=<ûRBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+ /2?6ÕRK# L&$O6 Y# RBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
A VKBNRBN<>VY?x4Û-0I7? =O6 BNRB:6?¼/?x , 9VV9VV9VV9VV9VV9VV9VV9VV
Ö " :
A VKBNRBN<>VY?x4Û-0I7?h47<HRK# LMRKXX£6Q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 9VV9VV9VV9VV9VV
Ö # :
A VKBNRBN<>VY?x4Û-0I7?6qBLMRK?78N<HBN<>VY?h;@VYX ¾ Ô>6@Ý&6MVV9VV9VV9VV9VV9VV9VV
Ö $ :
. <HRK# LMRKXƒXƒ68D4|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78:;@VY?7;=ILNLM6?BN8 V9VV9VV9VV9VV9VV
Ö Ù q
. <HRK# LMRKXƒXƒ68D;@VY?7;=ILMLN6?BN8:RKI¼86<H?h4Û-0I7? =O6 BNRB VV9VV9VV9VV9VV9VV
Ö =Ø q
Ö K ,Û68:RK;@B6ILM8:4|-0I7?h47<HRK# L
RKXƒX£6Q46Q8$O6 G$I6?7;@6iVV9VV9VV9VV9VV9VV
Ö Ú ,Û68:X£68N8NRK# 68:4|-0I7?h47<ûRK# LMRKXƒX£6Q46Q8$O6 G$I6?7;@6 VV9VV9VV9VV9VV9VV
. <HRK# LMRKXƒXƒ6Õ46Õ8$O6 G$I6?7;@6ÕRJK6;ÕB6X ¾ 8A4|- 6@Ý O6 ;=IBN<>VY?{4768AX =O6 BNFV&468NV9VV9VV
Ö E= q
Ö @Ö /:BN<HÔH<H8NRBN<HVY?h46Q;@VY?747<>BN<HVY?78œ47RK?78AI^?h47<HRK# LMRKXƒXƒ6Q46Q8O6 GI76?7;@6 9VV9VV9VV
+ /:BN<HÔH<H8NRBN<HVY?h46 ¾ 86I747VS;@V$468D47RK?78AI7?h4^<HRK# LMRKXƒX£6Q476Q8O6 GI6?^;@6 VV9VV9VV
Ö ©
Ö " /:BN<HÔH<H8NRBN<HVY?h46Q;@VY?BL
RK<H?B68:B6X ¾ VKLN6ÔHÔH68œ47RK?78œI7?¼4^<HRK# LMRKXƒX£6Q476Q8O6 GI6?^;@69VV
O6 9VV9VV9VV9VV9VV9VV
Ö # ,Û68:RK;@B6ILM8:4|-0I7?h47<HRK# L
RKXƒX£6Q4|-0RK;@BN<>J&<>B$
Ö $ ÜÞÝ O6 ;=IBN<>VY?78:;@VY?7;=ILNLM6?B68:4697 LMRK?7;
F68A4|-0I^?h47<HRK# LMRKXƒXƒ6Q4|-0RK;@BN<>J&<>BO6 9VV9VV
O6 9VV9VV9VV9VV
Ö Ù ,Û68 ¾ VY<H?BN8œ476Q;MFVY<uݼ47RK?^8œÔ>68A47<HRK# L
RKXƒX£68A4|-0RK;@BN<HJ$<>B$3
+G /2?6Õ;=ÔHRK8N8N6ö6?{/?{ , V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ¼. =O6 LM<>JRBN<>VY?{46PÔHR£;=ÔHRK8N86ö6? ! 9VV9VV9VV9VV9VV9VV9VV9VV
+G = /2?6Õ;=ÔHRK8N8N6 " ('*& V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ö ¼. =O6 LM<>JRBN<>VY?{4|-0I^?6Q;=ÔHRK8N86 !" ('!* 9VV9VV9VV9VV9VV9VV9VV
+G,+ /2?¼RBBLM<2^ I7B V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G " ¼. =O6 LM<>JRBN<>VY?{4|-0I^?hRBBLM<2^ IBV9VV9VV9VV9VV9VV9VV9VV9VV
+G # /2?6ÕX›=O6 BNFV&4669VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G $ ¼. =O6 LM<>JRBN<>VY?{4|-0I^?6QX =O6 BNFV&46 9VV9VV9VV9VV9VV9VV9VV9VV
E=
"
==
=˜Ö
=$
Ú
K= Ù
=KÙ
Ö7
+=
+Ö
+Ö
+Ö
++
++
+"
+"
+#
+#
+#
+$
+$
+Ù
+Ù
+Ù
" Ø
" Ø
&"
""
""
""
""
"#
"#
"$
"$
@Ö
+G Ù /2?¼;@VY?78BLMI^;@B6IL VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G =Ø .¼=O6 LM<>JRBN<>VY?{47I{;@VY?78BLMI7;@B6I7L 9VV9VV9VV9VV9VV9VV9VV9VV
+G K /2?6ÕRK8N8V&;=<HRBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú .¼=O6 LM<>JRBN<>VY?{4|-0I^?6QRK8N8V&;=<HRBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV
+G E= /2?6V#`O6 ?³=O6 LMRKÔH<H8MRBN<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G+G @Ö+ .¼.2=6O6 LM8h<>J=O6 RBNRBN<>BNVY8 ?{4V6PVÔHR%#`9O6 V?³=VO6 LMRK9ÔH<HV8NRVBN<HVY?9VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
+G " .¼=O6 LM<>JRBN<>VY?{468b=O6 BNRBN8:86ÔHVY?x9$6$CK6=LM<H?^8 C$< V9VV9VV9VV9VV9VV9VV
+G # .¼=O6 LM<>JRBN<>VY?{468b=O6 BNRBN8:86ÔHVY? ¼6$K6=L 9VV9VV9VV9VV9VV9VV9VV
+G $ ;?7<>BN<HRKÔH<û8NRBN<>VY?b4³=O6 B6=LMXƒ<H?^<H8B669VV9VV9VV9VV9VV9VV9VV9VV
+G Ù ;?7<>BN<HRKÔH<û8NRBN<>VY?b?VY?¼4W=O6 B6=LMX<H?7<H8B6jVV9VV9VV9VV9VV9VV9VV9VV
+G ÚØ .¼=O6 LM<>JRBN<>VY?{46PÔä-0<H?7<>BN<ûRKÔH<H8NRBN<>VY?¬86Ô>VY?x9&6$CK6=LM<H?78 C&<aV9VV9VV9VV9VV9VV
+G+G Ú& .¼.2=6O6 LM8A<>JBLMRRKBN?^<>VY8N?{<>BN<>4VY6P?783Ôä-0<H?79<>BNV<ûRKVÔH<H8N9RVBN<>VYV?¬896Ô>VVY? V{9V6$KV6=L 9VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
ÚKÚ
+G Ú= .¼=O6 LM<>JRBN<>VY?{468ABLMRK?78N<>BN<HVY?78œ86Ô>VY?x9&6$CK6=LM<H?78 C&< VV9VV9VV9VV9VV9VV
+G Ú˜Ö .¼=O6 LM<>JRBN<>VY?{4|-0I^?6öBLMRK?78N<HBN<>VY?h86Ô>VY? {6$K6=L VV9VV9VV9VV9VV9VV
+G Ú ©+ /2?6QBLMRK?78M<>BN<>VY?h;@VYX ¾ ÔH6@Ý$6 V9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú" ¼. =O6 LM<>JRBN<>VY?{4|-0I^?6öBLMRK?78N<HBN<>VY?h;@VYX ¾ Ô>6@Ý&6)V9VV9VV9VV9VV9VV9VV
+G Ú# q. <HRK# LMRKXƒXƒ6Õ46Õ;=ÔHRK8M868A46QÔä-0RK8M;@6?786IL V9VV9VV9VV9VV9VV9VV
+G+G Ú$ q.q. <H<HRRK#K# LMLMRKRKXƒXƒXƒXƒ6Õ6Õ4|4|-- ==O6 O6 BNBNRRBNBN88SSBBLMLMRKRK?7?78M8M<><>BNBN<><>VYVY?7?782824746QI ÔäÇ -0RKVY8NI;@B6VY?^? 86IVL V99VVVV99VVVV99VVVV99VVVV99VVVV
ÚKÙ
+G = Ø 9 ¾ O6 ;=<2‹7 ;=RBN<>VY?{46QÔûR ¾ RLNBN<>6 system 46QÔ-0RK8N;@6?786IL59V9VVV9V9VVV9V
+G 9 O6 ;=<2‹7 ;=RBN<>VY?{46QÔûR£XƒRK;MF7<û?6 46QÔä-0RK8M;@6?786IL)V9VVV9V9VVV9V
+G K=&= Ú 9 ¾¾ O6 ;=<2‹7 ;=RBN<>VY?{46QÔ-0RK8N;@6?786ILÕTypes
ß7;=RK8 `# O6 ?³=O6 LMRKÔ ˆBLMRJRKI&ݼ46{
6$K 6=L VV9VV9VV
+G == ; X ¾ Ô O6 X£6?BNRBN<>VY?{476QÔHR£XƒRK;MF^<H?6 system V9VVV9V9VVV9V9VVV9V
+G ˜= Ö :k LM;MF7<HB6;@BNILN6Õ46QÔûR£8 ¾ O6 ;=<2^7 ;=RBN<>VY?L! 47Ih8 & 8Bc6 X£6P476Q;@VY?BLHVYg ÔH6Õ4|-0RK8N;@6?78N6ILM8 9VV
" ,ERXƒRK;MF7<û?6 46PÔH9R£XƒVRK9;MF^V<H?V6 V96V?{9;=VÔûRKV8N896 VVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ú x{ V$RK;M4WF7O6 <HÔH?7<û8N6ÕRBNXP<>VYI^?¼AM
6?BN<Q6= LN68D6=B Ç VVYÔ =O6 6?^?68 9VV9VV9VV9VV
" = { V$4WO6 ÔH<û8NRBN<>VY?¼?7<>46ö68A46QJ˜RJLMR<ûLMR<H^ RÔ>^ 6ÔH8)68AM
"" ,Ö+ x RK;MF7<H?76ÕXPI^?7<>6ö4|- 6?786X:^ Ô>68DR9^ 8VBLMVRK9<>BN8 VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" " {TWVYV$?4WBLMO6 ÔHRK<û8N<H?RBBN6<>VY8D?¼4|4-0<û6?78A;=ÔHJ˜I7R8NLM<H<ûVYR?¬^ Ô>476RK8?^Bh8A ¾I7=?bO6 68q6?7R8JK66X:;P^ 4Ô>66 8œ6?78V69X:V^ Ô>V68D9RV^ 8BVLMRK9<>BNV8UVV99VVVV99VVVV
" # x RK;MF7<H?76ÕXPI^?7<>6ö4|- 6?786X:^ Ô>68\O6 ?$I7X›=O6 L&O6 8 9AVV9VV9VV9VV9VV9VV
" $ { V$4WO6 ÔH<û8NRBN<>VY?¼468A6?786X:^ Ô>68bO6 ?$I7X›=O6 L&O6 8:6=BAJ˜RL
<HR^ Ô>68Bd =O6 68qRJK6;P;@6I&Ý$S;=<5V9VV
" Ù TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6 R£ Ôä-0<H?7;=ÔûI78N<>VY?&' Ôä-0R RLNB6?7RK?7;@6ö6=BDÔ- $¾ O6 Y# RKÔû<>BjO6 9VV9VV9VV
" =Ø x RK;MF7<H?76ÕXPI^?7<>6ö46 LMV$47I^<>BW;=RLMBO6 8M<>6? ¾7¾ V9VV9VV9VV9VV9VV9VV
"" KÚ {V$4WO6 ÔH<û8NRBN<>VY?¼47I LN¾V&47I7<>B;=RLNBO6 8N<>6? 9VV9VV9VV9VV9VV9VV9VV
" E= x{ V$RK;M4WF7O6 <HÔH?7<û8N6ÕRBNI<>BNVY<H?¼ÔH<û8N4RK6?8ABœ¾ LN466ÔHR8ABNLN<>VY6?7ÔHR8BN<>VY?798 VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" @Ö©+ /2?6ÕRKIBLN6QXƒV$4WO6 ÔH<û8NRBN<>VY?¼468ALN6ÔHRBN<>VY?78 V9VV9VV9VV9VV9VV9VV
" q. <HRK# LMRKXƒXƒ6Õ46Õ;=ÔHRK8M868A4|-0I7?76qXRK;MF7<H?76QRJK6;oI7?69ˆ0 VY?7;@BN<>VY?
46 47RK?78
9VV
" "
" # TWTWVYVY??BBLMLMRKRK<H<H??BB6Q6QLNLN66ÔHÔHRRBNBN<H<HJKJK6Õ6ÕRKRKI&I&ÝÝ ‰0‰0 VYVY?7?7;@;@BNBN<H<HVYVY?7?78œ8 BVKRBNLNRKBNÔ><H668 ÔHÔ>68XVVVV99VVVV99FVVVV99XVVVV99VVYVV99VVVV
"" Ù$ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6ÕRKI&Ýh<H?H 6;@BN<>VY?78¾ BVKBNRKÔ>68 VV9VV9VV9VV9VV9VV
" ÚØ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6ÕRKI&Ýh<H?H 6;@BN<>VY?78 ¾ RLNBN<H6ÔHÔ>68 V9VV9VV9VV9VV9VV
"$
"KÙ
"KÙ
"KÙ
˜# Ø
$#
#=
#=
#=
Œ# Ö
Œ# Ö
Œ# Ö
Œ# Ö
# ++
#+
#
#*"
#*"
##
##*$#
#*$
#Ù
$Ø
$&
&$
$$
$$
$$
$$K$Ù
$KÙ
ُØ
Ù Ø
Ù Ø
&Ù
&Ù
&Ù
ÙKÚ
ÙKÚ
Ù=
=
Ù=
Ù
٘Ö
˜Ù Ö
˜Ù Ö
+
" Ú& TWTWVYVY??BBLMLMRKRK<H<H??BB6Q6QLNLN66ÔHÔHRRBNBN<H<HJKJK6Õ6ÕRKRKI&I&ÝhÝh8N8NIIL,L,66;@;@BNBN<><>VYVY?7?788 BVKRBNLMRKBNÔ><>668 ÔHÔ>68:VVV99VVVV99VVVV99VVVV99VVVV99VVVV Ù ++
" ÚKÚ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6ÕRKI&Ý ^< 6;@BN<>VY?78BVK¾ BNRKÔ>68 VV9VV9VV9VV9VV9VV Ù +
" Ú=
Ù
" ژÖ+ k2TWVYI?BLNB6”LMRKO6 <H;@?LMB<>6QBNI7LNLN66 ÔHR¾BN<HVYJK8N6Õ8N<2RK‹I&Ô>62Ý 47^6Q< 6ÔHR£;@BN;@<>VYVY??7B8 L
RK<HR?LNBBN6Õ<H6LNÔHÔ>66ÔH8RBN<>JKV6Õ9RKVIÝ V^9< 6V;@BNV<>VY9?^8VBVVKBN9RKÔ>68%VVV99VVVV Ù"
" Ú ÜÞÝ&6X ÔH6Q46QÔHR%#K68BN<>VY?x468A<H?^8N;@LM< BN¾<HVY?789VV9VV9VV9VV9VV9VV Ù"
" Ú" ¾
Ù#
" Ú# .qTWVY<HR?#KBLMLMRKRKXƒ<H?XƒB6Õ6 4|4-06.<H?^;=;=ÔHÔHRKI78N8N8N<>6VY8E?¬;@6VK?7LNLN8668 X:¾ ^VYÔH?^<û847¾ BRK6Q?4B
6 Rœ ÔûRœXƒRK;MF7<û?6.R^8BLMRK<HB6 47GestionDesInscriptions
Ù$
RK?78
9V Ù$
" Ú$ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6 R£ ÔHR 0ˆVY?7;@BN<>VY? RLNBN<>6InscritsAuxExamens
Inscrits
H
Ô
>
Ô
6
9
V
V
V
9
V
9
V
V
V
9V Ù$
" ÚKÙ
¾
Inscrits
" = Ø ÜÞÝ&BLMRK<>B:46QÔHR£8 ¾ O6 ;=<27‹;=RBN<>VY? ! 47I¼;@VY?BLHVYg Ô>6P4|-0RK;=;H6 8:RKI&ÝMaRg BN<ûX£6?BN8 9VV9VV =ØKØ
" &= ,ÛA:6VK8DBLNB6 LNVY<H8ALMV 8NVYVYÔHI8M<>BNBN<><>VYVY?7? 8 V¾ VYV8N98N<D^VÔ>6V8W69?¼V/?V{9, VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV =Ø
" K= Ú
=ØYÚ
¾ ¾
VV9VV9VV9VV =ØG#
# ÜÞ{Ý&V$B4WLMRKO6 ÔH<><ûB:8NR4BN6Q<>VYÔH?hR£86¾?xO6 47;=<2<H7‹R;=#KRLMRKBN<>XƒVY? Xƒ!6Q446Q6Q;=ÔäÔH- RK6@Ý&8N866X 8D¾ 4ÔH6Q6QÔH47R£I XƒScheduler
RK;
F7<H?6
V9VV9VV =ØG#
#Ú
Scheduler
VV9VV9VV9VV =Ø$
# = C`C`LMLMRKRK?7?788 0ˆ0ˆVKVKLMLMXƒXƒRRBNBN<><>VYVY?¼?{64|? -0I7?6 T¾ , LNV 4|¾ -0I7LM<
?=O6 6 BPO6 <HLN?V J˜RLML
<
=<HO6 RKB?ÕO6 B<H6Q?J˜4^RI LM<ûScheduler
RK?B6Q;@VYX ¾ Ô>6@Ý$6 V9VV9VV =Ø$
# ,Ö+ k2IBLN6Q6@Ý&BLMRK<>BD476QÔHR£- 8 O6 ;=<27^;=RBN<HVY?¼¾ 47I ¾
9VV9VV9VV9VV9VV K=Ø
#
¾
Scheduler
# " TWVY?BLMRK<H?B6 - T,¶6@Ý$BL
RK<>B6Õ46QÔä- 6@Ý&6X ¾ ÔH6Q47I Scheduler 9VV9VV9VV9VV KK
$ .2ÜÞÝ&68ABLMJRKR;@LMBN<H<>VYR^?xÔH648 68œJR9LM<HVR^VÔH698 VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV K ++
$ Ú /2?6QJRLM<HR^Ô>6qBd =O6 6MRƒ Ôä-0RK<H46Q4Û-0I7?b6?786X:^Ô>6lO6 ?$I7X =O6 L$O6 9VV9VV9VV9VV K
$=
K"
¾
$ ,Ö+ ÜÞÜÞÝ&Ý&BBLMLMRKRK;@;@BNBN<><>VYVY?x?x4|46Q-0I7ÔH?R£6q8NJIPR^LM8<HBNR<>^BNIÔH6öBN<HBhVY ?$¾ =#O6 6 Rƒ Ôä-0RK<û
4V6ö94|-0I7?bVV6?7986VX:V^9Ô>6”O6 V?$I7VX›9=O6 VL&O6 V99VVVV99VVVV K "
$ ÜÞÝ&BLMRK;@BN<>VY?x468A8NIP^8BN<>BNIBN<HVY?788N<HX ÔH68W ?7VY?¼4³=O6 B6=LMXƒ<H?^<H8B68 VV9VV9VV9VV K #
$ " ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^8BN<>BNIBN<HVY?$ ¾ *& .- (' V9VV9VV9VV9VV K #
$#
K#
! " $ $ [.,ERL
<H?78NI8;=<^¾ 86UBN<H#`BNIO6 ?WBN<>=O6 VYL
? RKÔ`4!6P6Ôä- 6@9Ý$BVL
RKV;@BN<>VY9?VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV K $
$ Ù ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^8BN<>BNIBN<HVY? VV9VV9VV9VV9VV9VV9VV K $
$ =Ø
KÙ
$ K ,EÜÞRÝ&B8NLMI8RK^;@BN8<>BNVY<HBN?xIBN4<>6QVY? ÔHR£8N IP
^ 8BN<>&BNLIBNV<HVY?9V
V9V/V99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV KÙ
$ Ú ,ER8NI8^8BN<HBNIBN<>VY? -'& V V9VV9VV9VV9VV9VV9VV9VV KÙ
$ E= ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP ^8BN<>BNIBN<HVY?
VV9VV9VV9VV9VV9VV KÙ
$ @Ö
ڏØ
$ ©+ ,EÜÞRÝ&B8NLMI8RK^;@BN8<>BNVY<HBN?xIBN4<>6QVY? ÔHR£8NIP^8BN<>"#BN&I-BN<HVY ?9VV!"9V#V$9
VVVV99VVVV99VVVV99VVVV99VVVV99VVVV ڏØ
$ " ,ER8NI8^ 8BN<HBNIBN<>VY? %' 9VV9VV9 VV9VV9VV9VV9VV9VV ڏØ
$ # ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^ 8BN<>BNIBN<HVY?%&' VV9VV9VV9VV9VV9VV ڏØ
$ $
Ú&
$ Ù ,EÜÞRÝ&B8NLMI8RK^;@BN8<>BNVY<HBN?xIBN4<>6QVY? ÔHR£%8NIP'^ 8BN<>BNI)BN<HVY(?* %&*/'.99VV)9(+* V-V*/. 9VVVV99VVVV99VVVV99VVVV99VVVV Ú&
$ ÚØ ,ER8NI8^ 8BN<HBNIBN<>VY? '0"-
9VV9VV9VV9VV9VV9VV9VV ÚKÚ
$ Ú& ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^ 8BN<>BNIBN<HVY? !'0"#$
9VV9VV9VV9VV9VV ÚKÚ
$ ÚKÚ
ÚKÚ
$ Ú= ÜÞ.2Ý&6BI&LMÝhRK;@J˜BNR<>VYL
<H?xR^4Ô>6Q68œÔHR£;@VY8N?7IP;=^ I78LNBNLN<>BN6I?BNB<H6VY8 ?9V V9V\VR 9¾ L$6 V8:<ûV?9B6=VL ¾ VL$=9O6 BNRBNV<>VYV?¼946,VV9VVVV99VVVV Ú=
$ ژ֩+ C`LMRK47I7;@BN<>VY?{468œJRLM<HR^ Ô>68œ;@VY?^;=ILNLN6?B68 9VV9VV9VV9VV9VV9VV ژÖ
$Ú
ژÖ
$ Ú" /2C`LM?RK6Q47VI7¾;@BN=O6 <>LMVYR?{BN<>VY4?x68 RJKR6LM; RK¾ XMR6= LMBRKLMXM68X6= BLN6 9VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV ژÖ
$ Ú#
ژÖ
¾
"
$ Ú$ ;ÜÞXÝ&76XL
<H;=RÔH6QBN<>VY4?¼6Q4Xƒ6QRK8M;MI8F^^<H?86BN<>BNI79BNV<>VYV?78496QV;@VVYX 9¾ VVYV8N<>9BN<HVY? VVV99VVVV99VVVV99VVVV99VVVV99VVVV Ú +
$ ÚKÙ k2IBVYXƒ¾ RB6P4768œJ˜RL
<HR^Ô>68 6=B 9VV9VV9VV9VV9VV9VV9VV Ú"
$ = Ø k2IBVYXƒRB67‹?7RKÔ|46QÔHR£XƒRKv1;
F7<H?6v2 9VV9VV9VV9VV9VV9VV9VV Ú#
$ &= ,Û6ÕLNVÇVKB 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ú#
$ K= Ú xRK;MF7<H?76ÕR^8BLMRK<HB69VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ú$
$$ ==˜Ö= .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN82BLMRK?78N<>BN<HVY?78œ47I
Ú$
6@Ý&BLMRK<>BD476QÔä-0<H?7<>BN<ûRKÔH<H8NRBN<>VY?jVVV9V ÚKÙ
6@Ý&BLMRK<>BD476QÔä- V ¾ =O6 LMRBN<>VY? V9V ÚKÙ
$ = + .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN82BLMRK?78N<>BN<HVY?78œ47I Robot0
Robot0
R ¾ LE6 8:8N<HX ¾ ÔH<27^;=RBN<>VY? VV9VV9VV ÚKÙ
$ =" .q.q<H<HRR#K#KLMLMRKRKXƒXƒXƒXƒ6Q6Q6@6@Ý$Ý$BBL
L
RKRK<><>BDBD446Q6QÔäÔä-- VV ¾ ==O6 O6 L
L
RRBNBN<><>VYVY?? Chgt
$ =# .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>¾ BN<>VY?78247I Dchgt R V¾ L$V6 8DV8N9<HX ¾ VÔH<297^;=VRVBN<HVYV? 9VV99VVVVVV99VV E=Ø
$ =$ [.LM6Xƒ<>6=LALMR*)¬?6X£6?BA47IbLNVÇVKB VVRobot0
E=Ø
$ K= Ù .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78246QÔH9R†VJRVLM<H9R^ÔHV6 V9VVVY9ILVV9VVV99VVVVV99VVV E=&
$$ ÖYÖ7Ø .q<HR#KLMRKXƒXƒ6Q4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78A46öÔHRPJRLM<HR^Ô>6 Type ¾ VYIL Chgt R L$6 8œ8N<HX ÔH<27^;=RBN<>VY? E=E=&KÚ
¾
¾
¾
J˜RL
<HR^Ô>6 Chgt9VV9VV9VV E=KÚ
$ ÖÚ .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?782;@VYX ¾ Ô>6=BA476QÔHR†Type
Type
6=B
VVV9V E=KÚ
$ Ö>= .q.q<H<HRR#K#KLMLMRKRKXƒXƒXƒXƒ6Õ6Õ4|4|-- ==O6 O6 BNBNRRBNBN88SSBBLMLMRKRK?7?78M8M<><>BNBN<><>VYVY?7?7828 468œJ
RLM<H R^ÔH68 VDt1,
V9De2VV9VDa1V9VV9VV E==
$ ÖKÖ+ .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 * V9VDe1,
* * * 9VV9VV9VV9VV E=˜Ö
$ Ö ,ERXƒRK;MF7<û?6
V
9
V
V
9
V
V
9V9VVV9V9VVV9V9VVV9V E= +
$ ÖG"
Parking
9VVV9V E= +
$$ ÖBÖG$# ,Û9G&6Õ8LMBcR*6 )X£6P?647X£6ö6B?LMBDRK?748N6Q<>BNÔû<HR£VY?7Xƒ8RK=O6 ;MBNF7<HG<û?I76 6=B=O6 682LN6ÔûRBN<2059R£ VÔûR£VXƒVRK9;MVF7<û?6 9Parking
V
V
V
9
V
9VVV9V E="
=O6 682LN6ÔûRBN<20RKI¼LMR*)?6X£6?B
VV9VV E="
$ ,Ö+ Ù .q9G&<HR8Bc#K6 LMX£RKXƒ6PXƒ476ö6ÕB4|LM-RK=O6 ?7BNR8N<>BNBN8<HSVYB?7LMRK8?7=O6 8MBN<><HBNG<>VYI7?76=B8:Parking
Parking r1
$ ,+ Ø .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?782LN466ÔH8œRBNJ<2R05LMRƒ <HRÔH^R£ÔH6Xƒ8œRK47;
IbF7<HLM?R*6Q)R?‹68XƒBLM6RK?<>BB 6 Parking V99VVV E=#
$ ,+ .q<HR#KLMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 47IbLMR*)¬?6X£6?B ParkingVr1V9VV E=#
E=$
$ Ú
*
Parking r1
Ù /2?6Õ<HX ¾ Ô
O6 X£6?BNRBN<HVY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV @ÖYØ
Ù Ú ,ERƒBLMRK47I7;@BN<>VY?{4|-0I7?6ö<HX ¾ Ô
O6 X£6?BNRBN<HVY?h6?¼/?{, 9VV9VV9VV9VV9VV @ÖYØ
Ù = /2?6QV ¾ =O6 LMRBN<>VY?{6?i! Ø 9VV9VV9VV9VV9VV9VV9VV9VV9VV @ÖYØ
Ù Ö ,ERƒBLMRK47I7;@BN<>VY?{46QÔä-0R ¾7¾ 6ÔÇ4|-0I7?6öV ¾ =O6 L
RBN<>VY? VV9VV9VV9VV9VV9VV @Ö7
Ù ,+ /2?6QV ¾ =O6 LMRBN<>VY?xGI^<ÇLN6=BVYILM?6Q4768œJ˜RKÔH6ILM8i9VV9VV9VV9VV9VV9VV @Ö7
Ù " C`LMRK47I7;@BN<>VY?{4|-0I7?6qV ¾ =O6 LMRBN<>VY?lG$I7<ÇLN6=BVYILM?76Q468œJRKÔ>6ILM8 VV9VV9VV9VV @Ö7
6=B
VV9VV9V9VVV9V9VVV9V9VVV9V @ÖÚ
Ù # ;?78BLMI7;@BN<HVY?78
68AR ¾7CASE
6¾ ÔH8œ4|- V ¾ =O6 L
RBN<>VY? Rƒ
Ô-0<H?B$=O6 LM<H6ILA4|-0I7?6ö<H?^8BLMI7;@BN<>VY?h;@VY?^47<>BN<>VY?7?76ÔHÔ>6 @ÖÚ
Ù $ C`LMRK47I7;@BN<>VY?{4IF
Ù Ù /2?6VÇVYI7;=Ô>6q6?i! Ø VV9VV9VV9VV9VV9VV9VV9VV9VV9VV @Ö>=
Ù =Ø C`LMRK47I7;@BN<>VY?{4|-0I7?6?ÇVYI7;=Ô>6 V9VV9VV9VV9VV9VV9VV9VV9VV @Ö>=
Ù K ,E<H6?78A46öJ&<H8N<2‹<HÔH<>B$DO6 6=B2<HX ¾ VKLNBNRBN<>VY?\6?BLN6ÕXƒRK;
F7<H?68 V9VV9VV9VV9VV @ÖKÖ
Ù Ú C`LMRK47I7;@BN<>VY?{468AÔH<>6?^8œ46öJ$<û8N<2^<HÔû<>BDO6 6=BD<HX ¾ VKLMBNRBN<>VY?b6?BLM6ÕXƒRK;MF^<H?689VV9VV @ÖKÖ
Ù E= ;?7<>BN<HRKÔH<û8NRBN<>VY?\6=BAV ¾ =O6 LMRBN<>VY?^8D47RK?78DI7?6öXƒRK;MF^<H?6V! VV9VV9VV9VV9VV @ÖKÖ
Ù @Ö C`LMRK47I7;@BN<>VY?{46QÔä-0<H?7<HBN<HRKÔH<H8NRBN<HVY?ƒ6=BD468AV ¾ =O6 LMRBN<>VY?789VV9VV9VV9VV9VV @Ö +
+ ,Û6P8O6 GI6?^;@6X£6?BVV9VV9VV9VV9VV9VV9VV9VV9VV9VV @Ö +
Ù ©
Ù " C`LMRK47I7;@BN<>VY?{47Ih8O6 GI76?7;@6X£6?B VV9VV9VV9VV9VV9VV9VV9VV @Ö +
Ù # ;?78BLMI7;@BN<HVY?78œ;@VY?747<>BN<HVY?7?6ÔHÔ>688N<ûX ¾ Ô>68VV9VV9VV9VV9VV9VV9VV @ÖG"
, VV9VV9VV @ÖG"
Ù $ C`LMRK47I7;@BN<>VY?{468œ6@Ý ¾ LN68N8N<HVY?78œ;@VY?747<>BN<HVY?7?6ÔHÔ>688N<ûX ¾ Ô>68W6?¼/?{
Ù Ù ÜÞÝ ¾ LN68M8N<>VY?78œ;@VY?74^<>BN<>VY?7?6ÔûÔ>68;@VYX ¾ Ô>6@Ý&6869VV9VV9VV9VV9VV9VV @ÖB#
, V9VV9VV @ÖB#
Ù ÚØ C`LMRK47I7;@BN<>VY?{468œ6@Ý ¾ LN68N8N<HVY?78œ;@VY?747<>BN<HVY?7?6ÔHÔ>68;@VYX ¾ Ô>6@Ý$68A6?¼/Ux
Ù Ú& ÜÞÝ ¾ LN68M8N<>VY?78ÇV$VYÔ
=O6 6?7?68VV9VV9VV9VV9VV9VV9VV9VV9VV @ÖB#
V
i! V V9VV9VV9VV9VV9VV9VV9VV9VV9VV
? V9VV9VV9VV9VV9VV9VV9VV9VV
k
i! V9VV9VV9VV9VV9VV9VV9VV9VV
+
9VV9VV9VV9VV9VV9VV9VV
27
! S7P# E= lk &! 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
- F 20 H m! - 9VV9VV9VV9VV9VV9VV9VV9VV
=
9VV9VV9VV9VV9VV9VV9VV9VV
5Z?.9 VV9VV9VV9VV9VV9VV9VV9VV9VV
,+
Z?.9
90
V9VV9VV9VV
Ú TK&;=Ô>6Q46Õ4W=O6 JK6ÔHV ¾7¾ 6X£6?B:4|-0I7? ¾ LNVH 6=B ! 9VV9VV9VV9VV9VV9VV
Ú Ú xRK;MF7<H?76ÕR^8BLMRK<HB6Q6=BD<HX ¾ Ô
O6 X£6?BNRBN<HVY? V9VV9VV9VV9VV9VV9VV
Ú = ;X ¾ VKLNBNRBN<>VY?¼?VYX<H?7RBN<>JK6öVYI¼?7VY?¼4|-0I7?6öXƒRK;
F7<H?6 VV9VV9VV9VV9VV
Ô-0I7?6ö?|- =O6 BNRK?B ¾ RK8A?7VYXƒX =O6 69VV9VV9VV
Ú Ö TWL&O6 RBN<>VY?x46Õ46IÝ\<H?78NBNRK?7;@68A46
M1
Ú ,+©/:BN<HÔH<H8NRBN<HVY?h46QXƒRK;MF^<H?68A<HX ¾ VKLMB=O6 68DI7?6Q86I7ÔH69‰0 VY<H8:VV9VV9VV9VV9VV
6=B
?VY?h<H?78NBNRK?7;=<
=O6 68D47RK?^8 M3 VV9V
Ú " /:BN<HÔH<H8NRBN<HVY?h46Q46I&ÝhXƒRK;MF^<H?68 M1
M2
Ú # ÜÞÝ&6X ¾ ÔH6Q46QXƒRK;MF^<H?6QRJK6;o468 ¾ RLMRKX 6= BLN68A6?^86X‹ ÔH<H8B68 VV9VV9VV9VV
Ú $ ÜÞÝ&6X ¾ ÔH6Q4|-0<HX ¾ VKLNBNRBN<>VY?b46PXƒRK;MF7<û?68ARJK6;P468 ¾ RL
RKX 6= BLN68D6?^86X‹ ÔH<H8B68 9VV
Ú Ù ÜÞÝ&6X ¾ ÔH6Q46QXƒRK;MF^<H?6QRJK6;oI7?b6?78N6X^ ÔH6QR^ 8BLMRK<>BVV9VV9VV9VV9VV
Ú =Ø ÜÞÝ&6X ¾ ÔH68A4|-0<HX ¾ Ô
O6 X£6?BNRBN<HVY?¼RJK6;ÕBh ¾ RK# 6P4|-0I^?b6?786X:^ Ô>6QR^ 8BL
RK<>B 9VV9VV
Ú K /2?h6?786X:^ Ô>6QR^ 8NBLMRK<>Bœ6? ! 9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú C`LMRK47I7;@BN<>VY?{4|-0I7?b6?786X:^ Ô>6QR‹ 8BLMRK<>Bœ6? RJR VV9VV9VV9VV9VV9VV
O6 6?i! 9VV9VV9VV9VV9VV9VV9VV9VV
Ú E= /2?h6?786X:^ Ô>6”O6 ?$I7X›=O6 L&o
O6 6? Y RJ˜R V9VV9VV9VV9VV9VV
Ú @Ö C`LMRK47I7;@BN<>VY?{4|-0I7?b6?786X:^ Ô>6lO6 ?$I7X›=O6 L&o
Ú $+ /2?6Õ;@VY?78BNRK?B6Õ6? ! V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " C`LMRK47I7;@BN<>VY?{4|-0I7?6ö;@VY?78BNRK?B6Õ6? Y RJ˜RVV9VV9VV9VV9VV9VV9VV
. 68AJRLM<HR^ ÔH686? ! V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú # 2
Ú $ C`LMRK47I7;@BN<>VY?{468œJRLM<HR^ Ô>686?LY RJR 9VV9VV9VV9VV9VV9VV9VV
I7?76q4^<HX£6?78N<HVY?¬6? !VV9VV9VV9VV9VV9VV
Ú Ù TWVY?78NBNRK?B68:BNR^ Ô>6RKI&ÝIRƒ
Ú ÚØ C`LMRK47I7;@BN<>VY?{46Q;@VY?78BNRK?B68:476öBh ¾ 6ÕBNR^ Ô>6RKI&Ýb6? Y RJ˜R 9VV9VV9VV9VV
Z RLM<HR‹ Ô>68A46öBd ¾ 6QBNR^ ÔH6RKI&Ý\6? ! V9VV9VV9VV9VV9VV9VV9VV
Ú Ú& .
Ú ÚKÚ C`LMRK47I7;@BN<>VY?{468œJRLM<HR^ Ô>68œ476öBh ¾ 6ÕBNR^ Ô>6RKI&Ýb6? Y RJ˜R 9VV9VV9VV9VV
Ú Ú= CR^ Ô>6RKI&Ýh4VY?BDÔ>68A<H?^47<H;@688VY?BD468bO6 ?$I7X›=O6 L&O6 82VYI¼4685Ç V$VYÔ
=O6 6?78œ6?i!VV9VV
Ú Ú˜Ö C`LMRK47I7;@BN<>VY?{468BNR^ Ô>6RKI&Ýh4VY?BAÔ>68A<H?^47<H;@688VY?BD468\O6 ?$I7X =O6 L$O6 8DVYI{4685Ç VVYÔ =O6 6?^8 !
6?L RJR 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú $+ CR^ Ô>6RKI¼G$I7<ÇLN6 ¾ L&O6 8N6?B6oI7?6öJRLM<HR^ Ô>6q6?78N6X^ Ôû<H8B6WVV9VV9VV9VV9VV
Ú Ú" CR^ Ô>6RKI&Ýh46QBNR^ ÔH6RKI&Ý\6? ! 9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú# C`LMRK47I7;@BN<>VY?¼6? Y RJ˜Rƒ476QBNR^ Ô>6RKI&Ýh46öBNR^ ÔH6RKI&Ý V9VV9VV9VV9VV9VV
Ú Ú$ TWL&O6 RBN<>VY?x46 ¾ ÔûI78N<>6IL
8³<H?^8BNRK?7;@68 ¾ RL
RKX =O6 BL$=O6 68:6? ! V9VV9VV9VV9VV
Ú ÚKÙ C`LMRK47I7;@BN<>VY?{46 ¾ ÔHI78M<>6ILM8W<H?78BNRK?^;@68 ¾ RLMRKX›=O6 BL&=O6 6826? RJR VV9VV9VV9VV
Ú = Ø /2?h6@Ý$6X ¾ Ô>6Q46 ¾ RK8N8NRK# 6Õ46 ¾ RLMRKX 6= BLN68:6?i! V9VV9VV9VV9VV9VV
Ú &= C`LMRK47I7;@BN<>VY?{47I ¾ RK8N8NRK# 6P46 ¾ RLMRKXM6= BLM68A6?L RJR VV9VV9VV9VV9VV
Ú K= Ú k ¾7¾ 6ÔH8œ4|- V ¾ =O6 LMRBN<>VY?x<H?B6=LM47<>BN8I9VV9VV9VV9VV9VV9VV9VV9VV
Ú == /2?h6@Ý$6X ¾ Ô>6Q46 ¾ RK8N8NRK# 6Õ4|-0I^? ¾ RLMRKXM6= BLN6PBNR^ Ô>6RKI ¾ RLDL$$O6 0 =O6 LN6?7;@6 V9VV9VV
Ú ˜= Ö C`LMRK47I7;@BN<>VY?¼6? Y RJ˜Rƒ4Û-0I7? ¾ RLMRKXM6= BLN6PBNR^ Ô>6RKI ¾ RK8N8$O6 ¾ RLDL$$O6 0 =O6 LN6?7;@6 9VV9VV
Ù ÚKÚ /2?6 ÇVYI7;=Ô>6q6? Ø
Ù Ú C`LMRK47I7;@BN<>VY?{4|-0I7?6 ÇVYI7;=Ô>6
Ù Ú˜Ö ¾7¾ 6Ô|4|- V ¾ =O6 LMRBN<>VY?{6?
Ù Ú ©C`LMRK47I7;@BN<>VY?{46QÔä-0R ¾7¾ 6Ô|4|- V ¾ =O6 LMRBN<HVY?
9 ¾ O6 ;=< ^;=RBN<>VY?
ß
K ÜÞÝ&6X ¾ ÔH6P47I
Ú DBLMRK47I^<>B RÔ-0RK<H46Õ47I{BLMRK47I7;@B6I7L
T 46PÔä- B6ÔH<>6=L BWallet
6;@BN< 8A47I ¾ LMV 6=B
K Ú
K C`LMRK47I7;@BN<>VY?{4|-0I7?6qLN6ÔHRBN<HVY?
K Ö /2?¼<H?J˜RLM<ûRK?B
6?¼I7?6 ˆVY?7;@BN<>VY?lT
K ©C`LMRK47I7;@BN<>VY?{46QÔä-0<H?J˜RL
<HRK?B
=
G$
G$
#
@Ö
@Ö
@ÖÙ
@ÖÙ
+Ù
"Ø
"KÚ
"=
" =
"+
""
" $
"KÙ
˜# Ø
#$
# Ú
# Ú
#=
#=+
#
#*"
#*"
#*"
##
##
#*$
#*$
#Ù
# Ù
# Ù
$Ø
$Ø
$&
$&
$KÚ
$KÚ
$=
$ =
$+
$"
$#
$#
$$
$
= +9&I8‹8BN<>BNIBN<>VY? * ¾ VYILAÔ>68BNR‹Ô>6RKI&Ý V9VV9VV9VV9VV9VV ُØ
=" C`LMRK47I7;@BN<>VY?¼6? YRJ˜Rƒ476ÕÔHR£8NI8‹8BN<>BNIBN<>VY? * ¾ VYILAÔ>68œBNR‹Ô>6RKI&Ý V9VV Ù&
=# ,ER8NI8^ 8BN<HBNIBN<>VY?bR ¾7¾ 6Ô|4|- V ¾ =O6 LMRBN<>VY?{6?i!/9VV9VV9VV9VV9VV9VV ÙKÚ
=$ C`LMRK47I7;@BN<>VY?{46QÔHR£8NI8‹ 8BN<>BNIBN<>VY?bR ¾7¾ 6Ô|4|- V ¾ =O6 L
RBN<>VY?¼6? RJR V9VV9VV9VV Ù=
K= Ù ,Û6P8O6 GI6?^;@6X£6?BU!V9VV9VV9VV9VV9VV9VV9VV9VV9VV Ù=
ÖYØ C`LMRK47I7;@BN<>VY?¼6? Y RJ˜Rƒ4^I ' " ! VV9VV9VV9VV9VV9VV Ù=
Ö7 ,Û68:8NI8^ 8NBN<>BNIBN<>VY?78 *&-* " . -* .œ6?i! VV9VV9VV9VV9VV9VV Ù=
ÖÚ C`LMRK47I7;@BN<>VY?{468A8NI8‹ 8BN<>BNIBN<>VY?^8 *-* " . !-* . ! 6? Y RJ˜RV9VV9VV9VV ٘Ö
Ö>= ,ER8NI8^ 8BN<HBNIBN<>VY? %')(* */.6? ! 9VV9VV9VV9VV9VV9VV Ù +
ÖKÖ C`LMRK47I7;@BN<>VY?¼6? Y RJ˜Rƒ476ÕÔHR£8NI8‹ 8BN<>BNIBN<>VY? %)(*&,*.46V! V9VV9VV Ù"
Ö $+ ,ER8NI8^ 8BN<HBNIBN<>VY? * ! 6?i!V9VV9VV9VV9VV9VV9VV Ù"
ÖG" C`LMRK47I7;@BN<>VY?{46QÔHR£8NI8‹ 8BN<>BNIBN<>VY? * ! 6? Y RJ˜R VV9VV9VV9VV Ù"
E= ¼. =O6 JK6Ô>V ¾7¾ 6X£6?B24|-0I^?6öR ¾7¾ Ô>6=Bm RJRTRLM4 9VV9VV9VV9VV9VV9VV ÙKÙ
E= Ú 9 ¾ O6 ;=<2‹7 ;=RBN<>VY?{R^ 8NBLMRK<>B6V! 47I ¾ VKLNB6@SX£VY?^?7RK<>6”O6 Ô>6;@BLNVY?^<HGI76 V9VV9VV9VV ڏØKØ
E= = ; X ¾ Ô O6 X£6?BNRBN<>VY? ! 4^I ¾ VKLMB6@SX£VY?7?7RK<>6lO6 Ô>6;@BLMVY?7<HG$I6 V9VV9VV9VV9VV ڏØ
E= Ö ,ER8 ¾ O6 ;=<2^7 ;=RBN<>VY?L! 46ÕÔä- 6@Ý&6X ¾ Ô>6ö47I ¾ VKLNB6@SXƒVY?7?7RK<>6WV9VV9VV9VV9VV ڏØYÚ
E= ,©+ C`LMRK47I7;@BN<>VY?{46QÔä-0R ¾7¾ ÔH6=B BWallet V9V9VVV9V9VVV9V9VVV9V ÚØ =
E= " TWV&46Y RJ˜Rj`# O6 ?³=O6 L$O6 ¾ VYILAÔ- 6@Ý$6X ¾ Ô>6ö47I ¾ VKLNB6@SX£VY?7?7RK<H6£ß^;@VY?B6?$I{4^I ¾ VKLMB6@SX£VY?7?7RK<>6 ڏ؏Ö
E= # TWV&46X RJR# O6 ?W=O6 L&O6 ¾ VYIL Ôä- 6@Ý&6X ¾ ÔH6A47I ¾ VKLNB6@SX£VY?^?7RK<>6Qß ¾ VY<H?B 4|- 6?BL&=O6 6q47Iƒ;@V&46U RJR ڏØ"
E= $ ,Û6 ¾ VKLMB6@SX£VY?7?7RK<>6lO6 Ô>6;@BLMVY?7<HG$I6 ¾ VYIL Y RJ˜RTRL
4 O6 ;@LM<>BAXRK?I6ÔûÔ>6X£6?BUVV9VV ڏØG#
E= Ù ; X ¾ Ô O6 X£6?BNRBN<>VY?L RJRTRLM4x46QÔHR£;=ÔHRK8N8N6 Wallet 9V9VVV9V9VVV9V ڏØ$
+G :k LM;MF7<HB6;@BNILN6Õ46QÔûR ¾ ÔHRB6@S ˆ0 VKLMX£6:>W! C - - ,9 VV9VV9VV9VV9VV9VV Ú&@Ö
+G Ú ¼. $O6 ^ IB:476QÔHR%K# LMRKXƒXƒRK<HLN6 ?x , VV9VV9VV9VV9VV9VV9VV9VV Ú& "
+G = C`LMRK47I7;@BN<>VY?{47IbBh ¾ RK# 6Õ6? ?x , V9VV9VV9VV9VV9VV9VV9VV Ú& "
+G Ö /2?6 ¾ RLNBN<H6Q46QÔHR%K# LMRKXƒXRK<>LN6Q4685‹7 ;MF7<>6=L
8 ?x , 9VV9VV9VV9VV9VV Ú& #
+G,©+ ÜÞÝ&6X ¾ ÔH6Q46Q;=ÔHRK8N868UY RJ˜Rƒ476QÔHR ! - ,¶;@VKLNLM68 ¾ VY?747RK?BARKI&Ýb8MI8^ 8BN<>BNI7BN<>VY?78 (* * . Ú& #
+G " 2k IBLN6~6@Ý&6X ¾ Ô>6 46 ;=ÔûRK8N868 RJRš46 ÔHR ! - , ;@VKLNLM68 ¾ VY?747RK?B¼RKI&Ý 8MI8^ 8BN<>BNI7BN<>VY?78
('
-'&+.9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ú& $
+G # ,Û6 ¾ ÔHI8Y# <H? ¾ VYILaN Ü 47<HB 9VV9VV9VV9VV9VV9VV9VV9VV9VV Ú&Ù
+G $ :k LM;MF7<HB6;@BNILN6Õ468D47< Db =O6 LM6?BN8DVYIBN<HÔH8 9VV9VV9VV9VV9VV9VV9VV Ú&Ù
+G Ù q. <HRK# LMRKXƒXƒ6Õ46Õ;=ÔHRK8M868A46QÔHR%K# 68NBN<>VY?{468D<H?78N;@LM< ¾ BN<>VY?78 9VV9VV9VV9VV ÚKÚ&
" 2T LMR ¾ F6Õ46Q4WO6 ¾ 6?747RK?^;@6Q47I ¾ LNVH 6=BA46Q;=RLNLM6$‰0 VYIL 9VV9VV9VV9VV9VV ÚKÚ=
" Ú 9 ¾ O6 ;=<2‹7 ;=RBN<>VY?{R^ 8NBLMRK<>B6Q47I¼;@VYX ¾ VY8MRK?B Feu VV9VV9VV9VV9VV9VV ÚKژÖ
" = ; X ¾ Ô O6 X£6?BNRBN<>VY?{4^Ih;@VYX ¾ VY8NRK?B Feu VV9VV9VV9VV9VV9VV9VV ÚKÚ +
" Ö 9 O6 ;=<2‹7 ;=RBN<>VY?{R^ 8NBLMRK<>B6Q47I¼;@VYX VY8MRK?B CARREFOUR 9VV9VV9VV9VV ÚKÚ +
9VV9VV9VV9VV9VV ÚKÚ"
" ,+ ; X ¾ ¾ Ô O6 X£6?BNRBN<>VY?{4^Ih;@VYX ¾ VY8NRK?B ¾ CARREFOUR
" " ,Û6P;@VYX ¾ VY8NRK?B ¾ LM<H?7;=< ¾ RKÔ V9VV9VV9VV9VV9VV9VV9VV9VV ÚKÚ#
" # q. <HRK# LMRKXƒXƒ6Õ46Õ;=ÔHRK8M868œ6@Ý&BLMRK<>BD46QÔûR£8 ¾ O6 ;=<2^7 ;=RBN<>VY? CARREFOUR 9VV9VV ÚKÚ$
" $ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6 R£ ÔHR ^ < 6;@BN<>VY?bBVKBNRKÔH6 suiv 9VV9VV9VV9VV9VV ÚKÚ$
" Ù q. <HRK# LMRKXƒXƒ6Õ46Õ;=ÔHRK8M868œ6@Ý&BLMRK<>BD46QÔûR£8 O6 ;=<2^7 ;=RBN<>VY? VV9VV9VV9VV ÚKÚ$
Ôä-0<H?JRLM<HRK?B:46†ÔHR\8 ¾ O6 ;=<2^7 ;=RBN<>VY?
" =Ø TWVY?BLMRK<H?B6†LN6ÔHRBN<>JK96£VRKVI&Ý9V¾ LNVV ¾LM9< =O6 VB$O6 V8ö9;@VYV¾ X V¾ 9ÔH6@Ý$6V8qV496£Feu
VV9VV9VV9VV9VV ÚKÚKÙ
TWVY?BLMRK<H?B6†LN6ÔHRBN<>JK6£RKI&Ý ¾ LNV ¾ LM< =O6 B$O6 8ö;@VYX ¾ ÔH6@Ý$68q46£Ôä-0<H?JRLM<HRK?B:46†ÔHR\8 ¾ O6 ;=<2^7 ;=RBN<>VY?
" K CARREFOUR
9V9VVV9V9VVV9V9VV9VV9VV9VV9VV9VV9VV ÚKÚKÙ
Feu
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
VV9VV9VV
" Ú ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR VY8BS;@VY?74^<>BN<>VY?h46QÔä- V =O6 L
RBN<>VY?
VV9VV9VV
" E= ÜÞ.qÝ&<HRB#KLMRKLMRK;@BNXƒ<>VYXƒ?x6Õ44|6Q- =ÔHO6 RBNR¾¾ BN8VYS8BBLMSRK;@?7VY8M?7<>4^BN<><>VYBN?7<>VY8:?h6@4Ý$6QBL
ÔäRK- <>V BA¾¾ 4=O6 L
6ÕRÔHBNR£<>VY8 ? MiseEnService
ChangerFeux
" @Ö+Gq. <HRK# LMRKXƒXƒ6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78:6@Ý$BL
RK<>BA46ÕÔHR£8 ¾ O6 O6 ;=;=<2<27^7^;=;=RRBNBN<><>VYVY?? Feu VV9VV99VVVV
" q. <HRK# LMRKXƒXƒ6Õ46Õ8$O6 G$I6?7;@6Q6@Ý&BLMRK<>B:46QÔHR£8 O6 ;=<2‹7 ;=R¾ BN<>VY? CARREFOUR 9VV
"" "# q. <HRK# LMRKXƒXƒ6Õ4|-0RK;@BN<>J&<>BO6 8D6@Ý&BLMRK<>BA476ÕÔHR£8 ¾O6 ;=<2‹7 ;=RBN<>VY? CARREFOUR
imp
V
9
VVV9V
¾
V9VimpV9VV9VV9VV
"" Ù$ C`C`LMLMRKRK4747I7I7;@;@BNBN<><>VYVY?{?{4747IhIh;@;@VYVYXX ¾ VYVY8N8NRKRK??BB ¾ LM<H?^;=< ¾ RKԋ6? Y R6J˜?R VRJ9R VMAIN
V9VV9VV9VV9VV
6? Y RJ˜R9VV9VV9VV9VV9VV9VV
" ÚØ C`LMRK47I7;@BN<>VY?{47Ih;@VYX ¾¾ VY8NRK?B CARREFOUR
Feu
Ù
ÚKÚKÙ
Ú Ø
Ú&
Ú&
Ú KÚ
Ú
Ú ˜Ö
Ú
Ú
=
=
=
=
==
=
= +
="
ڏØ
Ú
Ú
Ú Ú
=
Ú Ö
Ú ,+
Ú "
Ú #
Ú $
Ú Ù
Ú =Ø
Ú K
+G
"
## Ú
## Ö=
# ,+
$ $$ Ú=
$ ,Ö+
$
K
Ú Ú Ú
Ú =
Ú Ö
Ú
8
b
8# # iVV9VV ÚKÙ
9#
8# #
9VV9VV ÚKÙ
Zq<H8N<2^<ûÔH<>BO6 R Ôä-0<H?B=O6 L
<>6ILA4|-0I7?76QXƒRK;MF7<û?6QR^ 8BLMRK<HB6Q46Õ868 ¾ LNV ¾ LN686?BN<>BO6 8 V9VV = +
9&I8‹8BN<>BNIBN<>VY?^8W4769^RK86Õ46QÔûR£X =O6 BNFV$476! 6=BDÔ>6ILA8$O6 XRK?BN<HG$I69VV9VV9VV = +
9&I8‹8BN<>BNIBN<>VY?^8W476Q;@VYX ¾ VY8N<>BN<>VY?b6=BDÔH6ILA8O6 XƒRK?BN<HGI76 V9VV9VV9VV9VV ="
A:VKBNRBN<>VY? =O6 B6?74^I6Õ468A8MI8^8BN<>BNI7BN<>VY?7847IhÔHRK?8Y# RK# 6! V9VV9VV9VV9VV ="
C
¾ R#K6o468œ6@Ý ¾ LN68N8M<>VY?785! 9VV9VV9VV9VV9VV9VV9VV9VV =#
C
¾ 6Q468œ6?^86X‹Ô>68 ¾ L&O6 4W$O6 ^7 ?^<H8 VV9VV9VV9VV9VV9VV9VV9VV =#
C
6Q46QJ&<H8N<D^<HÔH<>B$O6 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ö7
Zq<H8N¾ <2^ <ûÔH<>B2O6 4768œ6?BN<HBO6 824|-0I7?76QXƒRK;MF7<û?6öJ$I76 VV9VV9VV9VV9VV9VV ÖÚ
Zq<H8N<2^ <ûÔH<>B2O6 4768œ6?BN<HBO6 824|-0I7?76QXƒRK;MF7<û?6Q<H?7;=ÔHI^86:VYI =O6 B6?747I6 VV9VV9VV9VV ÖÚ
Zq<H8N<2^ <ûÔH<>B2O6 4Û-0I7?6QXƒRK;
F7<H?6QIBN<ûÔH<H8$=O6 6 V9VV9VV9VV9VV9VV9VV9VV ÖÚ
Zq<H8N<2^ <ûÔH<>B2O6 4768œ6?BN<HBO6 824|-0I7?76QXƒRK;MF7<û?6Q<HX ¾ VKLNB$=O6 6 9VV9VV9VV9VV9VV Ö>=
k ) ?6X£6?BD46QÔHR£4W=O6 L
<>J˜RBN<HVY?¼4|-0I7?6QRK8M8V$;=<ûRBN<>VY? ¾ RLD8N68AXPI^Ô>BN< ¾ ÔH<û;=<>BO6 8XVV9VV #˜Ø
9$B$=O6 L&=O6 VKBh ¾ 68ö4|-0RK<H46jRƒ
ÔûR£Ô>6;@BNILN6Q468D47<HRK# LMRKXƒXƒ68A46Q;=ÔHRK8N8N68 9VV9VV9VV Ù"
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468 ¾ L$O6 47<H;=RBN8X! V9VV9VV9VV9VV9VV9VV =؏Ö
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468A6@Ý ¾ LM68N8N<>VY?78œRL
<>BNF7X›=O6 BN<HG$I68 ! VV9VV9VV9VV =Ø +
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468A6@Ý ¾ LM68N8N<>VY?786?^86X‹ ÔH<H8B68 V9VV9VV9VV9VV =Ø +
V$4WO6 ÔH<û8NRBN<>VY?h6? - T, 468A6@Ý ¾ LM68N8N<>VY?785! ¾ VKLNBNRK?BA8NIL:Ô>68LN6ÔHRBN<>VY?^8 VV9VV =Ø"
{
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468A6@Ý ¾ LM68N8N<>VY?78œ8MILDÔ>68A8MI7<>B685V9VV9VV9VV9VV =Ø"
ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^ 8BN<>BNIBN<HVY?%&')Rƒ
Ôä-0RK<û46ö46 VV9VV9VV ڏØ
ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^ 8BN<>BNIBN<HVY?%&')(+* -*/.R£
Ôä-0RK<H46Q46 V9VV Ú&
Z.RKÔ>6IL
8A468AJRLM<HR‹ Ô>68 ¾ VYILœÔ>68b=O6 BNRBN8246 * VV9VV9 V V9VV9VV E==
Z.RKÔ>6IL
8A468AJRLM<HR‹Ô>68 ¾ VYILœÔ>68b=O6 BNRBN8246 * * * VV9VV9VV E=˜Ö
Z.RKÔ>6IL
8A468AJRLM<HR‹ Ô>68 ¾ VYILœÔ>68b=O6 BNRBN8246 * 9VV9VV9VV9VV9VV E=$
C`LMRK47I7;@BN<>VY?{468A8BLMI^;@BNILN68A46Q;@VY?BLHVYg Ô>6:! Ø 6? - TRKXƒÔ VV9VV9VV9VV "&
C
¾ 6Q468œ6?BN<>B$O6 8246QÔHRƒXƒRK;
F7<H?6 R ¾ L$6 8AJ.=O6 L
<2^7 ;=RBN<>VY?¼ÔHV$;=RKÔ>6Q4768œBh ¾ 68XV9VV #˜Ø
C
¾ 6ƒ468q6?BN<>BO6 8P476ƒÔHRbXƒRK;MF7<û?6 A R ¾ L$6 8QJ.=O6 LM<2^7 ;=RBN<>VY?¶Ô>V$;=RKÔH6 ¾ RLNBN<>6ÔHÔ>6£468qBd ¾ 68
46
V9VVV9V9VVV9AV9VV9VV9VV9VV9VV9VV9VV #$
B
C
¾ 6P4768D6?BN<>BO6 8ö46PÔûR¬XƒRK;
F7<H?6 R ¾ LE6 82J.=O6 LM<2^7 ;=RBN<>VY?lÔ>V&;=RKÔ>6P;@VYX ¾ Ô,6= B6£468DBd ¾ 68
46
V9VVV9V9VVV9AV9VV9VV9VV9VV9VV9VV9VV #Ú
B
[ LMV ¾ VY8M<>BN<>VY?4Û- O6 G$I7<>JRKÔ>6?7;@6ö?VY?¬LN6=B6?$I6q6?BLM62Ô>68WBd ¾ 6846U^ RK86?! 6=BœÔ>68³Bh ¾ 685 RJR #ŒÖ
.
TWVY?JK6?BN<HVY?{4|-UO6 ;@LM<>BNI7LN6Õ468A;@VY?^;@6 ¾ BN8A6=BAV 6=BN8:468A47< D=O6 LN6?BN8DÔHRK? YR K68
Ü Ô O6 Xƒ6?BN8246 KLMRKXƒXRK<>LN6Q468AÔûRK? YR K68DIBN<ûÔH<H8$O6 8œ47RK?78D;@6Õ4V&;=I7X£6?B
Ú&
ÚKÚ
,+
Hg :!
i! #
V9VV9VV9VV9VV $KÙ
V9VV9VV ٘Ö
Ú ©C`LMRK47I7;@BN<>VY?{468A8BLMI^;@BNILN68A46Q;@VY?BL VYÔ>6 Ø 6? YRJ˜R
R YRKI7;
F6 =6 BD6? YRJ˜R Rƒ4LNVY<>B6
Ú &9 I ‹8BN<>BNIBN<>VY? %\6?
" 8
=
Ú
k
Q
$'
80
2I¶;@VYIL
8P46¬;@68o476=LM?7< 6=LN68PRK?7?³=O6 68 !Ôä-0IBN<HÔH<û8NRBN<>VY?~46Ô-0<H? ˆVKLMXƒRBN<HG$I6ƒ8=- 68BPL$O6 ¾ RK?747I76¬47RK?78ÕÔ>68
R 7¾ ¾ Ôû<H;=RBN<>VY?78:<H?747I78NBLM<>6ÔHÔ>68œÔH68 ¾ ÔHI78D4^<>JK6=LM868 ÇÜ ?l;@VY?78$O6 G$I6?7;@6 ÛÔ>6†4W=O6 JK6Ô>V ¾7¾ 6X£6?Bö4|-0R ¾7¾ Ôû<H;=RBN<>VY?78
8 ILM68œ68BA46=JK6?$I{I7? Ç68VY<û?h;@LMI7;=<HRKÔ|RKIxX£VY<H?78 ¾ VYILœBLNVY<û8LMRK<H8VY?78Qß
,`R ¾ LN6X< 6=LN6Þ68BÛÔ>6ÞLM<û8NGI76!F$I7XƒRK<û?q6=BE;@VY?7;@6=LM?6³Ô>68|4VYXƒRK<H?768Û;@LM<>BN<HG$I68ÇB6ÔH8EGI6.Ô-0RE=O6 LMVY?7RKIBN<HG$I6
ÔH6 ‰6=LNLMVJ&<HRK<>LN6 7ÔHR£4WO6 ˆ6?786 ‹Ô>6Q?I^;=Ô
O6 RK<>LN6 76=BN;
,`R¼86;@VY?747668BoÔHR¼46XƒRK?^46ƒ;@LNVY<H8N8MRK?B6\4|-0R ¾7¾ ÔH<û;=RBN<>VY?78ö8 ILM68Q47RK?78PÔ>68Õ4VYXRK<H?68Q?VY?¶;@LM<uS
BN<ûGI68 !RLP6@Ý&6X ¾ Ô>6\Ô>6ƒLN6=BVYI7Lo46 ¾ LNV&47I7<>BN8qJK6?74^I78 ¾ VYILÕI^?6;@VKLNLN6;@BN<HVY?›4^I Ô>V Y<H;=<>6Ô 6X†S
‹RLMGIWÕO6 VYI¼?VY?b68BABL 68DVY?³=O6 LN6I&ݼ8NRK?78 ¾ RLMÔ>6=LA46QÔûRPLM6Xƒ<H86ö6?¼;=RKI^86Q46QÔä-0<HXR K6Q46QXƒRLMG$I6
476QÔHR£8V&;=<
=O6 BO6 ¾ LNV&47I7;@BL
<H;@6
,`R£BLNVY<H8M< 6X£6ö68BDÔä-0RKI YX£6?BNRBN<HVY?{;@LNVY<H8M8NRK?B6P46QÔHR£;@VYX ¾ ÔH6@Ý&<>B$ÕO6 4768AÔ>V Y<H;=<>6Ôû8œRJK6;oÔ>6öB6X ¾ 8
TW6=BB6o;@VYX ¾ Ô>6@Ý<>BQO6 6=BDÔ>6 (68NVY<H?h46Q8$O6 ;=ILM<HBPO6 VY?B2RKX£6?WPO6 ÔH68A<H?747I^8BLM<>6ÔH8 RƒIBN<ûÔH<H86=Lœ468œB6;
F7?VYÔ>V Y<H68
46 ¾ ÔûI78!6? ¾ ÔHI^8 ‰VKLMXRKÔH<H8$=O6 68 ¾ VYIL.;@VY?^;@6=JKVY<>L³Ô>6I7LM8ÞÔ>V Y<H;=<>6Ôû8 TW68ÞB6;
F7?7<HG$I68.8VY?B 8VYI7JK6?BWRK8N8V&;=<
O6 8
Rl468†?VKLMX£68†;@VY?7;@6=LM?^RK?B£Ô>6\4³=O6 JK6Ô>V ¾7¾ 6X£6?B†G$I7<³VY?B ¾ VYIL ^IBP4Û- V 7B6?7<>L†;@6=LNBNRK<H?78†?7<HJK6RKI&ݶ46
G$I7RKÔH<>B$O6
?~;=RL
RK;@B=O6 L
<H86¬ÔH6†4W=O6 JK6ÔHV ¾7¾ 6X£6?BPÔ>V Y<H;=<>6Ô ¾ RLQÔä- 6?^86X ‹Ô>6£468qB6;MF7?^<HGI768öGI7<Þ8NVY?BQIBN<ûÔH<H8$=O6 68
47RK?782Ô>6 ¾ LNV&;@68N8NI782;@VYX ¾ Ô>6=B246†;@L$O6 RBN<>VY?~;- 68BS R˜S47<>LM6o46†Ôä-0<H476?BN< ‹;=RBN<>VY?¼47I Ç68VY<H? R\Ôä-0IBN<ûÔH<H8NRBN<>VY?
6 Ç6;@BN<>JK6 46~Ôä-0R ¾7¾ Ôû<H;=RBN<>VY? ,E68h47< D=O6 LN6?B68hRK;@BN<HJ$<>B$O6 8¼476l;@6 ¾ LMV$;@68N8MI78¬8NVY?Bh47<>J&<H8$=O6 68\6? G$I7RBLN6
†G$I7<8VY?B£4W=O6 BNRK<HÔûÔ
=O6 6847RK?7
8 Ú KÙ ¾ L 68ƒÔ-0<H46?BN< ^;=RBN<>VY?›47I Ç68VY<H?
¾ F7RK8N68£XƒR 6I7LN68
4|-0I7?*?VYI7JK6RKI Ô>V Y<H;=<>6Ô !<ûÔ³68NBƒ?³O6 ;@68N8NRK<>LN6¼476¼;@VY?7?7R >BLN6hÔ>6h;=RK4LM6¼4|-0R ¾7¾ ÔH<û;=RBN<>VY?*46h;@6ÔHI7<uS;=< Þ/2?6
¾ LN6X< 6=LN6 ¾ F^RK86x4|-0RK?^RKÔ $8N6{468 (68NVY<H?78ƒL&O6 ¾ VY?74 R ;@6=BB6~G$I68BN<>VY? WTW6=BB6 =O6 BNI746”86 ^RK8N6x8NIL\Ô>6
4VYXƒRK<û?6\4Û-0R ¾7¾ ÔH<H;=RBN<HVY? 6=BƒÔä- 6?J$<HLNVY?7?6X£6?BP4^I IBNIL†Ô>V Y<H;=<H6Ô `,E68£X =O6 BNFV$4768£RK8N8V&;=<
=O6 68 R”;@6=BB6
¾ F7RK8N6Q?6QLN6Ô 6=JK6?B ¾ RK8D47<>LN6;@B6X£6?BD468DB6;MF7?^<HGI768A<H? ˆVKLMXƒRBN<HG$I68œXƒRK<û8œ468D8N;=<H6?7;@68A;@V Y?7<>BN<HJK68
Ô6?L&O6 8MI7Ô>B6DI7?76D8 ¾ O6 ;=< ^;=RBN<HVY?<H? ˆVKLMX£6ÔûÔ>6œGI62Ôä- VY?ƒRP;@VYIBNI7X£624|-0R ¾7¾ 6Ô>6=L.Ô>6D;=RKF^<>6=L³468³;MF7RL K68
¾ RLNBN<HL246£;@6ÔHI^<uS;=< ‹I^?6 ¾ F7RK86†46o8 ¾ O6 ;=< ^;=RBN<>VY? × ;@VY?^;@6 ¾ BN<>VY? ¾ 6=LMX£6=Bq46†4³O6 ^?7<>Lq8N;
F³O6 XƒRBN<HG$I6X£6?B
;@6 R†GI7VY<(ÔH6qÔHV Y<H;=<>6Ô(4VY<>BL$O6 ¾ VY?74LN6 7TW6;=<|4VY?7?762I7?762J&I6q4|- 6?786X ^Ô>6q47I ¾ LNV&47I7<HB³8NRK?78œÔH68W4W=O6 BNRK<ûÔH8
46oÔHRƒL&O6 RKÔH<û8NRBN<>VY? ÛTW6=BB6 ¾ F7RK86P68Bq8NI7<>J&<>6QRKI78N8M<>B VKB24Û-0I7?6QJRKÔH<H47RBN<HVY?{G$I7< ¾ 6=LMX£6=B246oJ.=O6 LM< ^6=L28N<`Ô>6
Ô>V Y<H;=<H6Ô|L$O6 ¾ VY?74¼BVKBNRKÔ>6Xƒ6?BqRKI&Ý Ç68VY<H?78A4768 IBNILM8AI7BN<HÔH<H8NRB6I7LM8 UÔÛ68B:RKÔ>VKL
8 ¾ VY8N8N< ‹Ô>6ö4|- 6?BNRKXƒ6=L
Ôä-0<HX ¾ Ô
O6 X£6?BNRBN<>VY?”86Ô>VY?~ÔHR\8 ¾ O6 ;=< ^;=RBN<HVY?~GI7<68BQÔH6o4W=O6 JK6Ô>V ¾^¾ 6Xƒ6?B ¾ LMV ¾ LN6X£6?Bö47<>B 2RK?^8ö;@6=BB6
RK;@BN<>J&<>BAO6 JKVY?B R ¾7¾ RLMR HBLN6AÔ>68 ¾ LN6X<>6=LM8!4³=O6 BNRK<HÔH8.4^I£Ô>V Y<H;=<>6Ô TW6=BB6 ¾ F7RK86AX£6=B.Ô-0RK;=;@6?B 8MIL.Ô>6A;@V&47R K6
46WÔä-0R ¾7¾ ÔH<û;=RBN<>VY? ܳÔHÔ>6 ;@VY?78M<H8B6 RDX£6=BBLN66? ¾ ÔHRK;@6WI7?Õ6?^86X ‹Ô>6³46 ¾ LNV KLMRKXX£68E6@Ý O6 ;=IBNR ^Ô>68 YTq- 68B
Ô>VKLM8³46D;@6=BB6{=O6 BNR ¾ 62G$I6DÔ>6 ¾ LNV 6=B³<H? ˆVKLMXƒRBN<ûGI6A;@VYXX£6?7;@6 RP86:XRB=O6 L
<HRKÔH<H86=L /2?6 ˆVY<H8 Ô>6:;@V$46247I
Ô>V Y<H;=<H6ÔÞO6 ;@LM<>B!I7?6 ¾ LN6Xƒ< 6=LN6 ¾ F7RK8N6³46³B68BN8ÞI7?7<>BNRK<HLN68|68B!?³O6 ;@68N8NRK<>LM64^RK?78`ÔH6 ^IB46³8-0RK8N8NILN6=L!46W8VY?
ÇVY? ˆVY?7;@BN<>VY?7?76X£6?BoFVKLM8Õ6?J&<>LNVY?7?76X£6?B ,.-0<H?BO6 KLMRBN<>VY?*47RK?78PÔä- 6?J$<>LMVY?7?6X£6?BQ68B†I7?6 ¾ F7RK86
g
90
-
,
E<[
,
+0
$
' $0 '
'
' 22
E
P#
g
# $
#
9
#
27
L
7P# 27
" ' $ +k E
# '
g]
,
2
@
0 # Q
Q
80
;
27
80
Q'
27
$7
#
:
g
#
M
0
$F;
27
g]
# Q
V
#
H 80
%
#
Q
-
)0
$ $#
Ú+
cb
b
'
#
#
#
2
0
Q
$
L
# $
&# $Gk
27
$.
#
E
"
Ú
Analyse
des Besoins
Spécification
/Conception
Implémentation
/Codage
Implantation
/Test
cb
T $;=Ô>6Q476Õ4³=O6 JK6Ô>V ¾7¾ 6X£6?BD4|-0I7?hÔHV#Y<H;=<>6Ô
Q
$ [ <#
;@LM<>BN<ûGI6 |ܳ?”6 (6=BQÔ>68 ¾ LNV ^Ô 6X£68öLM6?7;@VY?BL&O6 8PÔ>VKLM8ö46£;@6=BB6š=O6 BNR ¾ 6ƒLM6X£6=BB6?BÕ6? ;=RKI786£BVYIB68ÕÔ>68
RK;@BN<>J&<>BO6 8.47I†4W=O6 JK6Ô>V ¾7¾ 6X£6?B ÔûI78 O6 ?W=O6 LMRKÔH6X£6?B³Ô>68!6=LNLN6IL
8ELN6?^;@VY?BL&=O6 68 R2;
F7RKG$I6¬=O6 BNR ¾ 6 ¾ 6IJK6?B
LN6X£6=BBLM6ƒ6?¶;=RKI78N6I7?6 R ¾ ÔHI78N<>6I7LM8 (JKVY<>LN6ƒBVYIB68PÔ>68”=O6 BNR ¾ 68ÕG$I7<.ÔûR ¾ L$O6 ; 646?B†4|- V I Ôä-0<H?B=O6 L 6=Bo46
Ôä-0RKIBVYXRBN<H8NRBN<>VY?¼4^I¼XƒR˜Ý<HXPI^X 4|-0RK;@BN<>J&<>BO6 8D47RK?78DÔ>6Q; $;=ÔH6Õ46Q4W=O6 JK6Ô>V ¾7¾ 6X£6?B
,E68DX›=O6 BNFV&468DI7BN<HÔH<H8$=O6 68 ¾ VYIL YI^<H46=LAÔ>6Q4W=O6 JK6Ô>V ¾^¾ 6Xƒ6?B24|-0R ¾7¾ ÔH<û;=RBN<>VY?78 ¾ 6IJK6?B 6=BLN6P;=ÔHRK8M8=O6 68
86Ô>VY?{Ô>6Q?7<>JK6RKI¼476 ‰VKLMXRKÔH<H8NRBN<>VY?h476QÔ>6ILM8œ;@VY?7;@6 ¾ BN8A6?hBLNVY<û8 KLMRK?7468 ˆRKXƒ<ûÔHÔ>682ß
,E68AX›=O6 BNFV&4682<H? ˆVKLMX£6ÔHÔ>68
,E68AX›=O6 BNFV&468286Xƒ<uS ˆVKLMX£6ÔHÔH68
,E68AX›=O6 BNFV&468 ‰VKLMXƒ6ÔHÔ>68
,.-0I7BN<HÔH<H8NRBN<HVY?›4768ƒX =O6 BNFV&468¬<û? ‰VKL
X£6ÔHÔ>68†;@VY?78N<û8B6 R X£6=BBLN6x6? ¾ ÔHRK;@6x468ƒ?VKLMXƒ68ƒ46 ¾ LMV KLMRKX†S
XƒRBN<>VY?©6=Bh46”;@6=LNBN< ^;=RBN<HVY?78b47I ;@V&46 ¾ LNV&47I7<>B TW6 ¾ LNV$;@68M8NI78b46”4³=O6 JK6Ô>V ¾7¾ 6X£6?BbR ¾ 6=LMXƒ<H8¬46
4W=O6 JK6Ô>V ¾7¾ 6=Lƒ468†R ¾7¾ ÔH<H;=RBN<>VY?78o8 ILM68oXRK<H8†8VYI ÇLN6\?WO6 RK?^X£VY<H?78£4|-0I^? XƒRK?^GI6b46bJ.=O6 L
< ^;=RBN<>VY? ˆVKLS
X£6ÔHÔH6D46:Ô-0R ¾7¾ ÔH<H;=RBN<HVY? ¾ LNV&47I7<>B6 ,.-0IBN<HÔû<H8NRBN<>VY?ƒ4768³X›=O6 BNFV&46886Xƒ<>S ‰VKLMXƒ6ÔHÔ>68.RKI YXƒ6?BNR†Ô>6D?^<>JK6RKI
46h8BLMI^;@BNILMRBN<>VY?*47I›Ô>V Y<H;=<>6ÔWV 7B6?$Iš;=RL£6ÔHÔ>68†4VY?^?6?B†I7?6\J&I6 KLMR ¾ F7<HG$I6¬6=Bƒ8 $?BNFW=O6 BN<HG$I6h47I
8 &8B 6X£6 ³, - O6 X£6=L K6?7;@6l468ƒX›=O6 BNFV&468 ˆVKLMX£6ÔHÔH68 ¾ 6=L
Xƒ<>B†ÔHR~;@L$O6 RBN<>VY? 4Û-0R ¾7¾ ÔH<H;=RBN<HVY?78oBVKBNRKÔ>6X£6?B
8 ILM68.VYI ¾ LN68NG$I6D47I ˆRK<HB 46:ÔH6IL ¾ L&O6 ;=<û8N<>VY?ƒ6=BW46:Ô-0IBN<HÔH<H8MRBN<>VY?£46:ÔûR ¾ LN6IJK6 $,Û68W<H?7;@VY?J.O6 ?7<H6?BN8W46
Ôä-0IBN<ûÔH<H8NRBN<>VY?P468!X =O6 BNFV&468 ˆVKLMX£6ÔHÔ>688VY?B.Ô>6WB6X ¾ 8!4|-0R ¾7¾ LM6?BN<H8M8NR K6œ?³O6 ;@68N8NRK<>LN6 ¾ VYIL!Ô>68!XƒR >BL
<H86=L
6=B`ÔH6.B6X ¾ 8`46 4W=O6 JK6Ô>V ¾7¾ 6X£6?B`RK8M8V$;=< O6 ?Q;@VY? ;@VY<>BEJKVYÔ>VY?BN<>6=LM8G$I6 ÔHRA4^<H8 ¾ VY?7< ^<ûÔH<>B`O6 4|-0I^?6.X =O6 BNFV&46
46QX£V&4WO6 ÔH<H8MRBN<>VY?¼I7?7<ûGI6 &RK47R ¾ B$=O6 6 R†BVYIB682Ô>68œ8N<>BNI7RBN<HVY?78A?|- 6@Ý<H8B6 ¾ RK8
L
90
X0
27
c g
#
j0
80
0
-
"!#$!
c
80
g
#
'
5#
$'
10
Fb
$
0
i
-
1Y
?
H
5#
@
g
$
0
0
8#
#
#
8#
@
E'
c
)
E
27
Eg
#
0
g]
2
g
,E68 Ç68VY<H?^8.47IXƒVY?746:<û?747I78BL
<>6Ô&8VY?BÔ>68³8NI7<>JRK?BN8DßI7?76DRKI YX£6?BNRBN<>VY?b46:ÔûRÕ8 ILM6=BqO6 46DÔH6ILM8
L¾ V&47I7<HBN8E6=B I^? YRK<H?£46 ¾ LNV&47I7;@BN<HJ$<>B$œO6 RKI£?7<>JK6RKI46œÔHRö;@VY?7;@6 ¾ BN<>VY? Y,Û68.X›=O6 BNFV&468³Ô>68 ¾ ÔHI78!IBN<ûÔH<H8$=O6 68
N
6?ƒX£V&4WO6 ÔH<H8MRBN<>VY? ¼6=L
<H86 xC Y/ {,
47<>B68Þ8N6Xƒ<uS ˆVKLMX£6ÔHÔ>68 ˜8VY?B ^RK8$=O6 68 ¾ LM<H?^;=< ¾ RKÔ>6X£6?B!8NIL
Ôä-0IBN<ûÔH<H8NRBN<>VY?l464^<>JK6=LM8ö47<HR KL
RKXƒX£68 EܳÔHÔ>68qLN6 ¾ L$O6 86?B6?BPÔH6ƒ8 $8NB 6Xƒ6¬4|-0I7?76ƒXƒRK?7< 6=LN6 R{ÔHR ‰VY<û8Q<H?&S
BNI7<>BN<HJK6¼6=B8 &?BNFW=O6 BN<ûGI6 26x;@6 RK<>B .6ÔûÔ>68ƒ8VY?B ^<>6? RK47R ¾ B=O6 68 R ÔHR ¾ ÔûI ¾ RLNB£468¬IBN<HÔH<H8MRB6ILM8o6=B
;@VY?7;@6 ¾ B6I7LM8:4768D8 &8B 6X£68ö4|-0<H? ‰VKLMXRBN<>VY?78 ^TW682RJRK?BNR K68qVY?Bq;@VY?BLM< ^I³O6 RL$O6 ¾ RK?74LN6PBL 68qÔHRL K6@S
X£6?B³Ô>6I7L.IBN<HÔH<H8MRBN<>VY?£47RK?78.Ô-0<H?747I78NBLM<>6 ,Û6IL ¾ LM<H?7;=< ¾ RKÔ$4WO6 RKIB³68B³Ô>6:XƒRK?7G$I6A46 ¾ L&O6 ;=<û8N<>VY?ƒ46:Ô>6IL
8$O6 XƒRK?BN<HG$I6öGI7<‹LN6?74bÔ>6I7LW?VKBNRBN<HVY? ¾ RL ˆVY<H8³RKX ^< YI 6 26 ¾ ÔHI^8 ;@68œX›=O6 BNFV&468œ?6 ¾ 6=LMX£6=BB6?B ¾ RK8
46£8=-0RK8N8MILN6=LQ47I ÇVY? ‰VY?^;@BN<>VY?7?6X£6?BQ47I”8 &8B 6X£6 `ܳ?”6 (6=BQÔ- 6@Ý ¾ =O6 LM<H6?7;@6ƒ468öRK?7RKÔ &8B68Q;@VY?^;@6 ¾ S
B6ILM8:68BqÔ>6P8N6I7Ô ¾ RL
RK;MF$IB6o;@VY?BLN6£Ô>68 ¾ LNV ^Ô 6Xƒ68:4|- 6@Ý O6 ;=IBN<>VY?”47Ix8 $8NB 6Xƒ6†;=RLö<HÔE68B:<ûX ¾ VY8N8N< ^ÔH6
46 ¾ LNVYI7JK6=L8NVY? ˆVY?7;@BN<>VY?^?6X£6?B ¾ RL4768WXƒV K6?78A;=RKÔû;=I7ÔHRBVY<>LN68 Ô(68Bœ4VY?7;q?³O6 ;@68N8NRK<>LM6Q462Xƒ6=BBLN6
6? ¾ ÔHRK;@6qI7?6 KLNVY8M86 ‹RBB6=LM<>6q46DB68BN8 ¾ VYILW8=-0RK8N8NILM6=LW47I ÇVY? ˆVY?7;@BN<>VY?7?6Xƒ6?B46:ÔûRÕXƒR VKLM<>B$qO6 468
;=RK8D4Û-0IBN<HÔH<H8MRBN<>VY?b8NRK?78ARBB6<H?^4LN6QI7?6ö8 I7LN6=BP
O6 ;@VYX ¾ Ô 6=B6
%#
' - 9' ? I22 '
0
# $
Q 0
K. 0 $'
N
c P0
$
#
D $ #
$0
0 : 2# 4 P. $'
0
c cb
2
Q
c
2
0
E`;
# X
j N0
g
Q Q
#
Ú
,E68£X =O6 BNFV$4768%‰0 VKLMXƒ6ÔHÔ>68PVY?B£468†;=RLMRK;@B$=O6 LM<H8NBN<HGI768ƒ8VYIJK6?B Rl
Ô- V VY8bO6 4768oX›=O6 BNF7V$468£8N6Xƒ<uS
0ˆVKLMX£6ÔHÔ>68EÛÜ ÔHÔ>68 ¾ VY8N8$6 476?BÕ4768Õ?VKBNRBN<>VY?^8öLM<2#KVYILM6I7868Q<H8M8NI68ö468QXR¾7BN¾F³O6 XƒRBN<HG$I68$!T6;=< ¾ 6=LMX£6=B
46 4WO6 ;@LM<HLN6¶Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8{4^I 8 $8NBc6 Xƒ6R ;@VY?78NBLMI7<>LN6~46 XRK?7<,6= LN6 BLE6 8 ¾ L&O6 ;=<H86X.:6 ;@6)0ˆRK<HB¼;@68
X›=O6 BNFV&468!47<H8 ¾ VY86?B$' ¾ VYIL;@6=LNBNRK<H?68;@VYXƒX£6ÔHRDX›=O6 BNF7V$46!U'Œ46³B6;MF7?^<HGI768`46 ¾ LN6IJK68<H?BLNV&47I7<>B68
e VYRLN6 + ¾ 6=LMX£6=BBNRK?BP46£J.=O6 LM<277 6=LÕ;@VYX ¾ Ô,6= B6X£6?BoÔ>6ƒ;c& ;=Ô>6476ƒ4³=O6 JK6Ô>V ¾7¾ 6X£6?BÕ468QÔ>VY# <û;=<>6ÔH8
¾ RL:
46 ¾ I^<H8qÔ>68 ¾ LN6X<,6= LN68öR^ 8BLMRK;@BN<HVY?78KN I78NG$I|- Rh
Ôä-0<HX ¾ ÔHRK?BNRBN<HVY? ;@V&46;@VYX ¾ <HÔHR^ ÔH6o4VY?^;†6@Ý O6 ;=IBNR^ ÔH6 TW68:RJRK?BNRK# 68Q8NVY?B2;@VY?BLN6$‹ RKÔHRK?7;^O6 8 ¾ RL:Ôä-0I7BN<HÔH<H8NRBN<HVY?h4|-0I7?Mˆ0 VKLMXƒRKÔH<û8NX£6öLN6$^ I7BNRK?B ¾ VYI7L Ç 6RKI7;@VYI ¾
46Q8 ¾ O6 ;=<ûRKÔH<H8B68 Ö>= ' $ + 47Ib4VYXƒRK<H?6q6=BD4Û-0I7?bXƒRK?7G$I6ö4|-0RKILMR£47RK?^8WÔH6QX£VY?746ö<H?74^I78BLM<>6Ô ¾ VYILœ468
LMRK<H8NVY?78:476o;@V@Ig Bq6=Bö4|-0<H?JK68BN<H8M86X£6?B2?VY?”;@VYX ¾ LN68N8N<2‹ Ô>6Õ46 8öÔ>6†4³$O6 ^ IBq47I ¾ LNVH 6=Bq476o;@L&O6 RBN<>VY?@Û Ü ?
6cÇb 6=B$7' Ô>6qB6X ¾ 8œ<HX ¾ RLNBN<‹RKIh4W=O6 JK6ÔHV ¾7¾ 6X£6?BR£
Ôä-0RK<û4624768œX =O6 BNFV$4768‰0 VKLMXƒ6ÔHÔ>688NRK?78RKI7;=I7?76 ¾ LN6IJK6
47Iš8 & 8B$6 X£6¼68NBƒ4³O6 R 8MI ¾ =O6 LM<>6IL R~ ;@6ÔHI^<W?WO6 ;@68M8NRK<>LN6 ¾ VYIL£Ô>6hXM6g X£6x4³=O6 JK6Ô>V ¾7¾ 6X£6?B£6? IBN<HÔH<û8NRK?B
Ô>68qX›=O6 BNFV&468Q86X<uS ‰0 VKL
X£6ÔHÔ>68$f2
. 6 ¾ ÔHI782ÔHR ¾ LN6IJK6†47I”8 & 8Bc6 X£6RKI8Y# Xƒ6?B6=LMRb6?^;@VKLN6ƒÔHR\47< Db =O6 LM6?7;@6
[ VYILNBNRK?B`Ô>68`X =O6 BNFV&468<ˆ0 VKLMX£6ÔûÔ>68ÇVY?BI7?”O6 ?VKL
X£6³RJ˜RK?BNRK# 6œ8NILEÔ>68EX =O6 BNFV$4768`86X<uS ‰0 VKL
X£6ÔHÔ>68!ߌ6ÔHÔ>68
¾ 6=LMX£6=BB6?Bœ46:L&O6 4^I7<>LN6qÔ>68WB68BN8œI7?7<HBNRK<>LN68³6=B47VY?7;q46:L&O6 4^I7<>LN6qÔ>68WLN6=BVYILM8RKI&Ý =O6 BNR ¾ 68œRK?B=O6 LM<>6ILM68
47RK?78³Ô>6:;c& ;=Ô>6246DJ&<>6:4Û-0I7?ƒÔ>VY# <H;=<H6ÔQ>!
[ RLœ;@VY?78O6 GI76?BW6ÔHÔ>68 ¾ 6IJK6?BW<H?BLNV$4^I7<>LN6œI7?jY# RK<H?¬476AB6X ¾ 8³6=B
4VY?7;o4|-0RLK# 6?Bö8NILöÔHR ^7 ?l47Ix4W=O6 JK6ÔHV ¾7¾ 6X£6?B$2
. 6 ¾ RLqÔ>6ILq;@VYX ¾ Ô O6 X£6?BNRLM<>B$O6 Ô-0<H?B$$O6 K# LMRBN<HVY?~4|-0I7?6
X›=O6 BNFV&46Vˆ0 VKLMX£6ÔHÔH626=B:4|-0I7?6QX›=O6 BNFV&46Õ8N6Xƒ<uS ˆ0 VKLMX£6ÔHÔ>6 ¾ 6IBAR ¾7¾ VKLNB6=LAI^?6QRKX O6 ÔH<>VKLMRBN<HVY?¼?VKBNR^ Ô>6
#
!
!
!
!
!
.qRK?78`?VKBLN6.;@VY?B6@Ý$B6?VYI78|RJKVY?78`;
FVY<H8N<KÔûRœX =O6 BNFV$476 0‰VKL
X£6ÔHÔ>61! ¾ VYILÛ47<>JK6=L
868ÇLMRK<H8VY?^8|4³=O6 BNRK<HÔHÔ =O6 68
47RK?78:Ô>68DÔû<2Y# ?68D8MI7<>JRK?B68$S:
. 6†?VYX:7 LN6I&ÝhBLMRJ˜RKIÝ{8VY?B:6cb(6;@BNIWO6 8 VYI7LA6=B:RKIBVYI7L246:! 47RK?78:I7?6
;@VYXƒXoI7?7RKIB$¶
O6 RK;@BN<HJK6 A
/2?6 =O6 J˜RKÔûI7RBN<>VY? G$I7RK?BN<HBNRBN<>JK6 R =O6 BO6 L$O6 RK¾ÔH<H8$=O6 6 ¾ RL xRLM<HRK?7V #$ :TW6=BB6
=O6 J˜RKÔûI7RBN<>VY? 68B O6 ÔûR( VKL&=O6 6 ¾ RLhLMR ¾7¾ VKLNBIRš
;@6=LNBNRK<H?768¼;=RLMRK;@B=O6 LM<H8BN<ûGI68x47I 4³=O6 JK6Ô>V ¾7¾ 6X£6?Bi0ˆVKLMX£6Ô
;@VYXƒX£6œÔHRDBNRK<HÔHÔ>6˜' ÔHR2;@VYX ¾ Ô>6@Ý<>B³O6 VYI†ÔHR28BLMI^;@BNILN6Œ ܳÔHÔ>6W;@VY?78BN<>BNI6I7?6
Y# RLMRK?BN<>6œGI6WÔ>68!8 ¾ O6 ;=<27^;=RBN<HVY?78
8VY?B9^ <>6? ˆ0 VKLMX =O6 68$ TW6=BB6¬X =O6 BNFV$476 ¾ VY8M8c6 46ƒ4689ˆ0 VY?746X£6?BN8qBNFW=O6 VKLM<HG$I68Q8NVYÔH<H468q4W$O6 ^7 ?7<û8ö47RK?78qÔ>6
! ShW! VVC = ³ Ü ÔHÔ>6b68B ^ <>6?*VYIBN<ûÔHÔ
=O6 6 ; Ԝ6@Ý&<û8B6¼RK;@BNI6ÔHÔ>6Xƒ6?B\46I&Ý*VYIBN<HÔH8£RKIBVYI7L46 ! G$I7<œ8VY?B
³
Ôä-l
k B6ÔH<H6=L&! ÙKÚ 6=BDÔ>6V! C`VVYÔ QO <>B + ^ ,E68A86=LNJ&<H;@68œVÇb 6=LNBN8 ¾ RLD;@68AVYI7BN<HÔH8œ8VY?BDÔ>68A8MI7<>JRK?BN8qß
k ?7RKÔ2& 86QÔ>6@Ý<H;=RKÔ>6ö6=B:8 $ ?BNR˜Ý<HGI76Q468AX£V&46 Ô>68
2
Z =O6 LM<2^7 ;=RBN<HVY?{47IbBd ¾ RK# 6
¼
T O6 ?W=O6 L
RBN<>VY?”468œV^ ÔH<DY# RBN<>VY?78œ46 ¾ LM6IJK68
{
[ LNVYIJK6IL:RKIBVYXƒRBN<HG$I6Q6=BD<û?B6=LMRK;@BN<D0
C`LMRK47I^;@BN<>VY?bJK6=LM8D4768AÔHRK?8Y# RK# 68:;=<2^ Ô>68 T'PkX.mk|' TU' 6=BN; ; ÔH8 ¾ 6=LMX£6=BB6?BDÔä-0IBN<HÔû<H8NRBN<>VY?\46QÔHR£X›=O6 BNFV&46Õ4^RK?78AÔ>6Q;c& ;=Ô>6Q46öJ&<>6Q468 ¾ LNVH 6=BN8D<H?747I78NBLM<>6ÔH8³B6ÔH8AG$I6
Ô>6l47<H8 ¾ VY8N<>BN<DD
0 46x;@VY?BLHVYg Ô>6”46¼J&<>B68N8N6x47I X =O6 BLNVš46lTRKÔH;=I7BBNR # W' Ô>6 LNVH 6=B { ܳCAÜ - 3 =# ' " ;@VY?78BL
I7;@BN<>VY?¼46PÔHR ¾ LN6Xƒ<Q6= LM6QÔH<2Y# ?6öRKIBVYXƒRBN<û8=O6 6o47IhX›=O6 BLMV ¾ RLM<û8N<>6?¬S ,E¾ <2Y# ?76 @Ö 2
"!
! $#
!
&%
'!(
i
!
!
&%)
!
*%)
$0
!
c
,`R\;@VY?BLM< ‹IBN<>VY?{476o?VY82BLMRJ˜RKIÝl86†8N<>BNI6 R\46I&Ýx<H?^8BNRK?BN8q;=Ô>6 8247I”; $;=Ô>6†46†4³=O6 JK6Ô>V ¾7¾ 6X£6?B
4|-0I7?hÔHV Y<H;=<>6Ô
öß
D,E6 ¾ LN6Xƒ<>6=L68B.ÔHR:JRKÔH<H47RBN<>VY?o47I†;=RKF7<>6=LÞ468Þ;
F7RL K68 RqÔHR ^?†46Ôä- =O6 BNR ¾ 6A46œ8 ¾ O6 ;=< ^;=RBN<>VY? × ;@VY?&S
;@6 ¾ BN<>VY? ÇÜ ?¼6 Ç6=BqRJRK?Bö46 ¾ RK8N86=L R¬Ô- =O6 BNR ¾ 6†8NI7<>JRK?B6 ‹Ôä-0<HX ¾ ÔHRK?BNRBN<>VY? 7<HÔE68B2?WO6 ;@68M8NRK<>LN6†46
J.=O6 LM< 76=LQÔûR¬;@VY?7;@VKL
47RK?7;@6£6?BLN6£Ô>68ö8 ¾ O6 ;=< ^;=RBN<HVY?78ö468q;@VY?7;@6 ¾ B6IL
8q6=BQÔ>6o;=RKF^<>6=Lö468ö;MF7RL K68
ò=ãäãâÕ
|ù 0æ è ê AáMóŒè #
+
#
27
7P# cb
,-,.*.*.
N
/, *,
27
# m U7
'
'
27
&#
$
Ú
4W$O6 ‹7 ?7<H8 RLPÔ>68PIBN<HÔH<H8MRB6ILM8ö47I ÔHV#Y<H;=<>6ÔQE,`R¼4WO6 XƒRLM;
F6b;@VY?78N<H8B6WR¼
6@Ý&BLMRK<>LN6¬468QJ&I68Õ8N6Xƒ<uS
0ˆVKLMX£6ÔûÔ>6¾ 8œ46 ¾ I7<û8WÔûR£8 ¾ O6 ;=<27^;=RBN<>VY?L!UB.26Õ;@6=BB6PXƒRK?^<,6= LN6öVY?hV7BN<>6?BDI7?762J&I6Q4|- 6?^86X‹Ô>6Q47I
¾ LNVH 6=Bj^ <>6? ¾ ÔûI78†8 $?BNFW=O6 BN<HG$I6xG$I6¼Ô>68¬8 ¾ O6 ;=<27^;=RBN<HVY?78N7L
IB68 O6 ;@LM<>B68¬6? !U-;Ô68B6?^8NI7<>B6
LM6ÔHRBN<>JK6X£6?Bœ8N<HX ¾ ÔH6 ¾ VYIL³I7?\8 ¾ O6 ;=<HRKÔû<H8B6q4|-0/Ux
,~462J˜RKÔû<H46=L³ÔH68³J&I68W/Ux , ¾ RLWLMR ¾7¾ VKLNBWRKI
;=RKF^<>6=Lö468ö;MF7RL&K# 68$U; Ô_0 RKIBö?VKB6=LQGI76oÔ>VKL
82476o;@6=BB6*=O6 BNR ¾ 6ƒÔ>6†8 ¾ O6 ;=<HRKÔH<û8B6£?6o;@L&=O6 6=L
R ¾ RK8qI7?
XƒV$46 Ô>6Q4^<>LN6;@B6X£6?Bœ6?h/Ux
, ¾ VYILœ;@VYX ¾ RLN6=LDRJK6;ÕÔ>6öX£V$46 ÔH6ö6@Ý$BLMRK<HB$7 Ü ?b6cÇb 6=B$^' <HÔÇ?|- 6@Ý<H8B6
R¾ K8QI7?6ƒI7?^<HGI76†XRK?7<,6= LN6ƒ4|-UO6 ;@LM<>LM6I7?~X£V&46 Ô>6/?{
, 6=B ¾ RLP;@VY?78O6 GI76?BoÔ>6ƒX£V&46 Ô>6ƒ6@Ý&BLMRK<>B
b =O6 LM6?BA46ö;@6ÔHI^<‹L&O6 RKÔû<H8O6 ¾ RLAÔä- 6@Ý ¾ 6=LNB$ ,Û6ö8 ¾ O6 ;=<HRKÔH<û8B6qJ.=O6 LM<2^7 6=LMR†ÔHR†;@VY?8‰0 VKL
Xƒ<>BO6
¾ VYILMLMRK<>BX6=g BLM6Q47< D
6?BLN6QÔ>6öX£V&46 Ô>6ö6=BAÔ>68LE6$ Y# ÔH68A46?K# 68BN<>VY?¼4^I\;=RKF^<>6=LA468œ;MF^RLK# 68$^ ,E68Y# RK<H?78œ46 ¾ LNV&47I7;@BN<HJ$<>B$O6
476XƒRK?74WO6 8†47RK?78oÔä-0<H?74^I78BLM<>6£?VYI^8QVY?B ¾ VYI78M8O6 R ¾ 6?^86=LP;@6=BB6©=O6 BNI746b47RK?78oÔä- V ¾ BN<ûGI6¬4|-0I7?6
RKI7BVYXƒRBN<H8NRBN<>VY?@
VF 6=BN8$^ TW6;=<(68BI7?
Ú D,E62476I&Ý&<Q6 Xƒ6:68BœÔHRÕBLMRK47I7;@BN<HVY?\47628 ¾ O6 ;=<D^7 ;=RBN<>VY?78! JK6=L
8WÔH68³ÔHRK?PY# RK# 68RÕ
4768ÛL&O6 8NI7ÔHBNRBN84^I ¾ LNVH 6=B`3X:
A CA, 1! - Œ,Û6-‹ IB2=O6 BNRK<>B!46 ˆ0 VYILM?7<>L`468ÛBLMRK4^I7;@B6ILM8EV ¾ BN<HXƒ<H8MRK?B
¾ VYILÔ>6³ÔûRK?8Y# RK# 6
ˆ0 VKLMX£6ÔG!U˜' ;@68BLMRK4^I7;@B6ILM8`46=J˜RK?B ¾ 6=L
X£6=BBLN6I7?6 IBN<ûÔH<H8NRBN<>VY?Õ46³ÔHR:X =O6 BNFV&46
!U' BLMRK47I7<HB6 ¾ VYILÕ468 ¾ ÔHRB68S ‰0 VKLMXƒ68ˆ0 VKLNB6X£6?Bo;@VY?BLMRK<H?B68£46¬Bh ¾ 6\;=RLNB6)R ¾ I^;@6_:A VKBLN6
BL
RK47I7;@B6ILQ46=JRK<>B 6=g BLN6 - ¾ 6?SU9$VYILM;@6|' 47RK?78qÔ>6 ‹ IB2476 ¾ 6=L
X£6=BBLN6£I7?6£47< |b I78N<HVY?x468qVYI7BN<HÔH8
RKI ¾ L$6 846¼ÔûRl;@VYXXPI7?^RKIBL
O6 !U-2
. 6 ¾ ÔHI^8o<ûÔW476=J˜RK<>Bi6=g BLM6¼V ¾ BN<HXƒ<û8hO6 6?šB6=LMX£68ƒ4Û- V$;=;=I ¾ RBN<>VY?
X›O6 XƒVY<>LN6ƒ6=B ¾ 6=LMXƒ6=BBLN6ƒÔHR\L$O6 RKÔH<H8NRBN<HVY?~6?)! 4|-0R ¾7¾ ÔH<H;=RBN<>VY?78 ¾ LMVYIJ.=O6 68 ¾ VYILQÔH68Y RJ˜RTRL
478$
[ VYILö;@6ÔHRF|' I7?{BLMRK47I7;@B6I7L2V ¾ BN<HXƒ<H8NRK?B:R =O6 Bƒ
O6 4³=O6 JK6Ô>V ƒ
O6 46 I7<H8DÔH6PÔHRK?8Y# RK# 6£46†8 O6 ;=<2‹7 ;=RBN<>VY?
! JK6=L
8DÔ>68œÔHRK?PY# RK# 68%R† VF 6=BN8A6?¼B6?7RK?B2;@VYX ¾ B6Õ4768œ¾7¾ LN68BLM<û¾;@BN<>VY?78œ46QÔHR ¾ ÔHRB6@S ‰0 VK¾L
X£6Õ;=<2^ ÔH6
k E
"%
"
!
$%&
! ! !
!
!
&%
!
!
"
'
¾ L 68.I7?76<û?BLNV&47I7;@BN<HVY?P6=B.ÔûR ¾ L$O6 86?BNRBN<>VY?ƒ46AÔHRqX›=O6 BNFV&46 *G$I7<&68B.RKI£;QIL.476A?VY8!BLMRJRKI&Ý
;@6ABLMRJ˜RK<ûÔ^46œBNF 68628=-0<H?78M;@LM<>B ¾ VYIL.ÔHR ¾ RLMBN<>6 47RK?78 Ôä- =O6 BNI746D46A476I&ÝoB6;
F7?7<HG$I68.476D8 ¾ O6 ;=< ^;=RBN<HVY?¼ß
ÔHR£X›=O6 BNFV&46 6=BDÔHRƒ?VKBNRBN<HVY?{/ {, UÔE8=-0R ¾7¾ I7<H6q8MILDÔHR£;@VYX ¾ Ô
O6 X£6?BNRL
<>Bo
O6 46P;@68D46I&ÝhR ¾7¾ LMV$;
F68
6=BQ;@VY?BLM< ^I6 RhÔä-0I7BN<HÔH<H8NRBN<HVY?{;@VY? VY<H?B6ƒ468öÔHRK? YR K68 ‰VKLMXƒ6ÔH8 q6=BQ468ö?VKBNRBN<>VY?78 KLMR ¾ F7<HG$I68 R
V 6=BN8 / x, ETW6=BB6 ¾ RLMBN<>6P68NBq;@VYX ¾ VY8$=O6 6ƒ4768 ¾ L&O6 8N6?BNRBN<>VY?^8Q4|-0/ {,*6=Bö4|-0I7? =O6 BNRBQ46†Ôä-0RLNBq468
BLMRJ˜RKI&Ý£8NILÞÔä-0<û?B$O6 KLMRBN<>VY?£476;@68Þ476I&ÝoX›=O6 BNFV&468.476W8 ¾ O6 ;=< ^;=RBN<>VY? Yܳ?78NI7<>B6?VYI78 ¾ L&O6 8N6?BVY?78 ?VKBLN6
;@VY?BLM< ^IBN<HVY? R¼;@6=BB6¬<H?BO6 KLMRBN<>VY?›86Ô>VY?~46IÝ ¾ RLMBN<>68Q8BNRBN<HG$I6ƒ6=BP4 $?^RKXƒ<HG$I6P6? ;=<H?7Gx;MF7R ¾ <HBLN68
G$I7<|8VY?BQß
LN6Xƒ< 6=LN6Xƒ6?BDÔ- 6@Ý$BLMRK;@BN<HVY?{468A47VY?7?³=O6 68D8BNRBN<ûGI68D46QÔHRƒ8 ¾ O6 ;=< ^;=RBN<>VY?~ß
2<ûR KLMRKXƒX£68:46Q;=ÔHRK8N868
¼O6 ?³=O6 LMRBN<>VY?”46Q;@VY?BLMRK<H?B68 T,
Ú 26I&Ý< 6X£6X£6?B:Ô- 6@Ý$BLMRK;@BN<HVY?{468A47VY?7?³=O6 68D4 &?7RKXƒ<ûGI6846PÔHR£8 ¾ O6 ;=< ^;=RBN<HVY?~ß
2<ûR KLMRKXƒX£68:4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78
2<ûR KLMRKXƒX£68:4|-0RK;@BN<>J&<>BO6
2<ûR KLMRKXƒX£6Õ476Q8O6 GI6?^;@6
o-0RKIBLN6 ¾ RLNB£?VYI^8Õ6@Ý ¾ VY8VY?78 6? ¾ RLNBN<>6 Ú ÞÔHR `O6 ?W=O6 L
RBN<>VY? RKIBVYXƒRBN<ûGI6h46b;@V&46 O6 ;@L
<>B£47RK?78†I7?
ÔHRK? YR K6 R¼V 6=BN8 R ¾ RLNBN<>LP468 ¾ O6 ;=< ‹;=RBN<>VY?78 ÞTW6=BB6 ¾ RLMBN<>6 Ú ;@VYXƒXƒ6?7;@6 ¾ RLoI7? 7LM6 =O6 BNRB†46
Ôä-0RLNB\468b47< D=O6 LN6?B68\B6;
F7?7<HG$I68\4³O6 R*Xƒ<H8N686
? QIJ$LN6x8MI7<>J&<>6846l?VKBLN6”;@VY?BL
< ^IBN<>VY? 47RK?78\Ô>6
à:ô æäáMåQ!áMãê0
þ"á &Œæ $õò˜þ˜" 0 ó ê0æ!ø ó
ê0õê0B ëUæAKø.à:Uô æäá
åQ!áNãê0 þá 7ŒÞõò˜Uõò˜.Uã! ê0þ˜þŒ áMãê0
þöþ $õòŒù
þ˜" 0 ó ê0æDø ó ê0õê0B 0
æ >à` |ø á{Uô ã ô œê0æþƒâ ëá
õU ð‹ æ2 ð‹âáM
ëœêëþŒê0æ 3ã U 2
ëáPàEõò˜Uõò˜DU%
ã 0 œêëþŒê0æ 3ã U Œ<
> úˆþ˜Œå˜æ ãäê0 è$ú (á26 õ. å£õ" %œ%
œêëæäæäê0
þƒŒ%
>3á @Mêëæä ëáöõ þŒæ ãê0ãåãê0 þŒœâ ˆUãæWê0þ˜þŒ áMþã泌Uõ òŒUõ òŒAUã
‹ ô @B 0 âŒâKB œþ=ã|õ=
âÇUô áNãê 7UþãäÞUþãäUâŒê0æäæÛUãD3 ô 2=å˜ê0âKæE
ò=ãäãâÕ 0ê uõ è åŒþ˜ê =ù õ1 ã è `ãáMãê0ÿK åŒUã @# #Þç á õ òŒUõò˜!âŒå˜ÿ 0ê 2=å˜ è
!
2 F U $#
2 m[ Q
. #
T
m. Q
. #
. #
. #
.
8# # W F b
,-,
$'
? -P;
H
'
8# # 0
$#
-
$'
/,
27
/,
8
' L#
!U
D7
,! V#
?
8
D7
27
27
2
W $0
N
0
D
,
0 2 E'
ÚKÙ
4VYXƒRK<û?6P4VY?BöÔ>6 ¾ LM<H?7;=< ¾ 6Q?VŒJ˜RB6I7Lö68BöÔHR ¾ ÔHRB6@S ‰VKL
X£6o;=< ^Ô>6ßÇÔHR YRJ˜RTRL
4 (/2?6¶=O6 J˜RKÔûI7RBN<>VY?”46
;@6=BWVYIBN<HÔ^;@VY?^;=ÔHILMRQ;@6=BB6 ¾ RLMBN<>6 ܳ?78NI7<>B6AI^?6DBLNVY<û8N< 6X£6 ¾ RLNBN<>6D;@VY?7;=ÔûILMRÕ;@68³BLMRJ˜RKI&Ý\46DLN6;
F6=LM;
F6
¾ RLœÔHR ¾ L&O6 86?BNRBN<>VY?¼468WVYIBN<ûÔH8³4WO6 R£4W=O6 JK6Ô>V ¾7¾ O6 8A6=BÔûRPXƒ<û86:6? QI7JLN6q47RK?78WI7?b;=RK8œ4|-U=O6 BNI746 7ܳ? ^?
?VYI78†;@VY?7;=ÔûILNVY?78o8NIL£Ô>68 ¾ VY<H?BN8 ˆVKLNBN8 ÞÔ>68 ¾ VY<H?BN8 RK< ^Ô>68 Ô>68†RKX›O6 ÔH<HVKLMRBN<>VY?78o6=B ¾ 6=LM8 ¾ 6;@BN<>JK68o46
;@6=BB6 =O6 BNI^46
0 $'
87
? 9 46 46129 TW6~4V&;=I7X£6?B¼46”BNF6 86¶;@VY?^;@6=LM?6 ¾ ÔHI^8N<>6ILM8¬ÔHRK?8#YR#K68$'A?7VYI78bRJKVY?78xIBN<HÔH<H8$”
O6 I7?6~;@VY?JK6?BN<HVY?
4|-UO6 ;@LM<>BNI7LN6 ¾ VYILWLN6;@VY?7?^R g>] BLN6qÔ>68;@VY?7;@6 ¾ BN86=BVF6=BN8W4762;@68œ47<2bD=O6 LN6?BN8ÔHRK?8#YR#K68$^TW6=BB6Q;@VY?JK6?BN<HVY?
68BD4WO6 ;@L
<>B6Õ47RK?78DÔ>6öBNR^ Ô>6RKI VI{
ÔHR£;
F7R g]H?6 $(' .-.-\;@VKLMLN68 ¾ VY?74hRKI&Ý 0‰VY?BN8D4^<H8BN<H?7;@BN<HJK68$
,ERK?8Y# RK# 68
TWVY?7;@6 ¾ BN8
- F6=BN8
! × Z?.?
EXPRESSION
expression
/Ux
, ×- Tœ,
expression
expression
RJR ×- TRKXƒÔ × T × T
expression expression
TWVY?JK6?BN<HVY?{4|-UO6 ;@LM<>BNI7LN6Õ468A;@VY?^;@6 ¾ BN8A6=BAV8 6=BN8:468A47< D
b =O6 LN6?BN8AÔHRK?8Y# RK# 68
,E68ö8 ¾ O6 ;=<2^7 ;=RBN<>VY?^82I7BN<HÔH<H8$=O6 68q;@VYXƒX£6†6@Ý&6X ¾ Ô>6†47RK?782Ô>68q47< D
b =O6 LN6?B68qBLMRK47I7;@BN<>VY?^8:JK6=L
82/?x ,šVYI
Ô>68AÔûRK?8Y# RK# 68R£
V8 6=BN8A8NVY?BhO6 ;@L
<>BN8R£ Ôä-0RK<û46Q46öLE6$ Y# Ô>68:469K# LMRKXƒXƒRK<HLN6Q4³O6 ;@LM<>B68247RK?78œÔ>6öBNR‹ Ô>6RKI Ú Ü Ô O6 X£6?BN8
9.O6 XƒRK?BN<ûGI6
k
,E68A;@LNV&;MF6=BN828N<2Y# ?7<D77 6?BG$I6ÕÔä- 6?BN<>B
k 68BAV BN<HVY?7?6ÔHÔ>6
O6 …
k
,E6Õ8N<2Y# ?6
8N<2Y# ?7<2^7 62G$I6ÕÔä-UO6 Ô O6 X£6?BX„
k R ¾7¾ RLMR g>] BœRKI{¾ X£VY<û?78œI7?69ˆ0 VY<H8
k
,Û6Q8N<DY# ?6 b8M<2Y# ?7<277 6qG$I6ÕÔä-UO6 Ô O6 X£6?BX…
k R ¾7¾ RLMR gH] BA46 ‹=O6 LNV R£ I^?¼?VYX:7 LN69^7 ?7<Ç46‰0 VY<H8
k
,E6Q8N<2Y# ?6 8M<2Y# ?7<277 6öG$I6QÔä-UO6 Ô O6 X£6?BX„
k R ¾7¾ RL
R g>] BA?Mˆ0 VY<H8
k l!
,Û6Q;=RLMRK;@B$6= LN6 78N<2Y# ?^<277 6öGI76Q8VY<>BAÔä- 6@Ý ¾ LN68N8M<>VY?Mk
8VY<>BAÔä- 6@Ý ¾ LN68M8N<>VY?M! R ¾7¾ RL
RK<H8N86?BAXƒRK<H8 ¾ RK8DÔ>68A46I&Ýb6?¼XM6g X£6PB6X ¾ 8
Ú Ü³Ô
O6 X£6?BN8:469K# LMRKXƒXRK<>LN6Q468AÔûRK?8Y# RK# 68DIBN<ûÔH<H8$O6 8œ47RK?78D;@6Õ4V&;=I7X£6?B
? D 9 1 3 **96 46 1 7 4 ! m!U^ CRBN<2Ç VYI6=B$'P8 T?8ÞZ VY<H8N<H?6=B$' ! CEV$VYÔH8œRK?74 ! Ú /?x , ß7R ¾ ÔHRB ˆ0 VKLMX RK?74hRƒBVVYÔÇBV ¾ LNVJ&<H46öR
/?x
,šTœÔHRK8N8 q. <HRK# LMRKX 8N<H?^;@6ÕRj! 8 ¾ 6;=<D^7 ;=RBN<>VY? FPN; TA979Ü-Pk - ڏØKØ ' @Ö BNFLU; ?B6=LM?7RBN<>VY?^RKÔTWVY?8ˆ0 6@S
LM6?7;@6†VY?”9$Vˆ0 B RLN6
9G& 8B6Xƒ8qÜ ?8Y# <û?6=6=LM<H?8¬
# RK?74xCDF6<>L?k ¾7¾ ÔH<H;=RBN<>VY?78E'PÞZ VYÔQ Ú Û' 9&68N8N<>VY? $ S = '
17VKLMXƒRKÔ_{
6=BNFV&478$7' 1L
RK?7;@6'S![ RLM<H8E' Ö S " 2. 6;@6XÇ 6=L ڏØKØ Ú mk:@2e RKXƒXƒRK4'<!UÛ CRBN<2Ç VYI6=B$'<8 SUT?ÞZ VY<H8N<H?6=B$' 2. 6ÔHRh8 ¾ O6 ;=<2^7 ;=RBN<>VY?)…! JK6=LM8ÕÔ>68ö47<HRK# LMRKXX£68
4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78!/Ux
, F' # 6 X£6 l TA9Ü-kX
; - ڏØKØYÚ Qx RY# FLN6$^ <HRK?£TWVY?8ˆ0 6=LN6?7;@6³V‹0 9$Vˆ0 B RLN6Wܳ?&S
Y# <û?6=6=LM<H?8£
# RK?74iU; ?B6ÔHÔH<2K# 6?^;@6VDk LNBN<D^7 ;=<HRKÔ ' ¾ RK# 68 E== S @Ö>= '2k ?7?7R‹ RF'P:k Ô2# =O6 LM<H6' " S $ XƒRK< ڏØKØYÚ = XP TUPÞZ VY<H8M<H?6=B$'B!U‹ CRBN<2Ç VYI6=B$'fkB2e RKXƒXƒRK4@' W! C`V$VYÔH8Qßf:k ?h6@Ý ¾ 6=LM<HX£6?BNRKÔ ¾ ÔûRB ‰0 VKLMX‰0 VKL:BNF6
ˆ0 VKLMXƒRKÔ! X£6=BNFV&4 F'8.
[ LM<H?^;=< Ô>68.RK?^4 [ LMRK;@BN<H;@6qV0<[ LNVK# LMRKXƒXƒ<û?8P# <H? Y RJ˜R ,[
[-[K - ØYÚ ' ¾ E=# S
TWVYÔHÔH6$K# 6'P2. IP^ ÔH¾ <H?'GU; LN6ÔHRK?74'B I7?6 E= S @Ö\ڏØKØYÚ @ÖYØ (' CEL
<H?7<>Bdb
e RKXƒXRK4' !U C`RBN<2Ç VYI6=B$'8 SUTU ÞZ VY<H8N<H?76=B$' \ I~\ 6< ¾ <H?P#8' 1LNVYX„RU! 9 ¾ 6;=<2^7 ;=RBN<>VY?ÕBV2/?x ,
Ö mk::
9&BNRB6;MF7RLNB 2
. <ûRK# LMRKXƒ8 F' Ö BNF ; ?B6=LM?7RBN<>VY?7RKÔATWVY?P‰0 6=LN6?^;@6\VY?š17VKLMXƒRKÔAܳ?8Y# <H?6=6=LM<û?8# { 6=BNFV&478
N; T1!Ü
¶ - ڏØKØYÚ |' ,<öA TA9 ژÖÙ +G' ¾ + K S + ÚKÚ |' 9F7RK?8Y# F7RE4]Q^' TF^<H?7RF' Ú& S Ú + - ;@BV( 6=L ڏØKØYÚ !
"
#
=Ø
+Gm!UÛCRBN<2ÇVYI6=B$'@k:e2RKXƒXƒRK4@'<8 SUTUZÞVY<H8M<H?6=B$' 1LNVYX RK?~R‹8BLMRK;@B!…8 ¾ 6;=<27^;=RBN<>VY?”BV¼/?x,
;=ÔûRK8N8.47<HRK# L
RKXƒ8 F Ú ?74%; Ü Ü³ÜWU; ?B6=LM?7RBN<HVY?7RKÔ^9G& X ¾ VY8N<HI7X5VY?9&<2#Y?7RKÔF[ LNV$;@68M8N<H?8#öRK?74%;?80ˆVKLMXƒR˜S
BN<HVY?\C`6;MF^?VYÔ>V# ; 9798[ ; Cö- ڏØKØYÚ ' ¾ Œ+ S =Ø 'P; 98!KA Ø S Ù#Ú#$ $" S Ø S +G'<{RLNL
RCK6;MF'BxRLNV&;' $ S Ú&
. 6;@6X:Ç 6=L ڏØKØYÚ 2
" m!U!i 9 CR6BN;=<2Ç<27^VY;=IR6=BNB$<>VY'G?^k:8 & F3A'36+˜G$BNF I6=;UB$?'PB86=LMTU?7GRBNÞZ <HVYVY?7<H8NRK<H?7Ô6=TB$'GVYk:?80‰G6=LM2e 6RK?7Xƒ;@6XƒVYRK?›4@' 1VK LMRXƒJRKRÔTܳRLM?84{#Y<HTW?6=V&6=4LM6?<û?8qT #L6{?6=6=LMBNRFBNV$<>VY4^? 8 ˆ0 LN;NVYT³X S
1!ÜK ¾ - ڏØKØ = |' ,<öA TA9 Ú$$ +G' ¾ = Ø" S &= $ Û' 9&<H?8Y# R ¾ VKLN6'P:A VJK6X:Ç 6=L Œ+ S ƒ# ڏØKØ = # m!U?^R& BNC`<>VYR?7BNRK<D( ÔWVYTI7VY6=B$?8'F‰0 6=PLM 6TU?7`;@ÞZ 6ƒVYVY<û?š8N<H?9$6=VB$‰0 ' B W&2T RLM66 ?6=LMRBN9F<H$ ?P8o# B68XBNR8ÕB6Ü ;
F7?PRY# LN<H?BN856=6=ˆ0 LMLNVY<H?PX¼# ! RK?78 4~¾ 6BN;=F<26‹7 <>;=LoRR BN<>VY?7ÔH8<û;=FR' BN<>VY" BN?7F 8 U; ?N; TAB6=9LSS
9Ü-P
k - ڏØKØ = 'SÞZ VYÔ Ç' 9$68N8N<>VY? Ú ßS¼ V&46ÔH<û?8#8'8:. 6;@6X:Ç 6=L Ú S ÖbڏØKØ = Ç' TAUkUr
S
¾7![ ¾ RLM<û8$7' 1LMRK?7;@6
!
#
#
#
$
"%
0
27
D#
E'
,E68 X›=O6 BNFV&468 ˆVKLMX£6ÔûÔ>68 ¾ 6=LMX£6=BB6?B 4|- O6 ;@LM<>LN6A4768.8 ¾ O6 ;=< ^;=RBN<HVY?78.LM< KVYILN6I7868 ¾ L$O6 ;=<H868.6=B³;@VYX†S
Ô¾ 6=B68 6=BA476Q4³=O6 JK6Ô>V ¾7¾ 6=LA47IbÔ>V Y<H;=<>6Ô R ¾ RLMBN<>Lœ46Q;@6ÔHÔ>68S;=< &,E6ILAIBN<HÔû<H8NRBN<>VY? ¾ 6=L
X£6=BœÔ>6ö4³=O6 JK6Ô>V ¾7¾ 6@S
X£6?BW476 ¾ LNV&47I7<HBN8Þ8 ILM8³;@62G$I7<768NB³LN6;
F6=LM;
F³qO6 4^RK?78³ÔH68 4VYXƒRK<û?68 ;@LM<HBN<HGI768 B6ÔH8³G$I62Ô>68³R ¾^¾ ÔH<H;=R˜S
BN<>VY?78 ‹RK?7;=RK<>LN68 KR`=O6 LNVY?7RKI7BN<HGI768 K6=BN; qRK?78.;@6A;MF^R ¾ <>BLN6œ?VYI78 ¾ L&O6 8N6?BVY?78 7LM< 6=JK6X£6?B.Ô>68Þ47< D=O6 LN6?BN8
B ¾ 68ö46ƒX›=O6 BNFV&468 ˆVKLMX£6ÔHÔH68:6=BQÔH6ILq6?J&<>LNVY?7?76X£6?B :VYI78ö?VYI78ö;@VY?^;@6?BLN6=LMVY?78ö6?78NI^<>B6£8NILöÔHR
X›=O6 BNFV&46³I7BN<HÔH<H8$=O6 6 4^RK?78E;@6=BB6=O6 BNI746WGI7<Y68B`ÔHR:X =O6 BNFV&46 Œ,E68`RK8 ¾ 6;@BN8`46³;@6=BB6X›=O6 BNFV&46 ¾ L$O6 86?BO6 8
8VY?BQß
9 $?BNR˜Ý$6
9 O6 XRK?BN<HG$I6
LN6IJK68
O6 ;=RK?7<H8NXƒ68:46Q;@VYX ¾ VY8M<>BN<>VY?
h
Q $'
+
g
$'
90
[
$A
!U
F
+
- Q
2b
# -
$' .
!
!
!
0
$
!
!
!
!
!
# 7 $
$$ #
h
8# # _
d D# $
h 0
,E68£X =O6 BNFV$4768 ‰VKL
X£6ÔHÔ>68 ÚKÙ 8VY?BƒI7?6b8VYÔHIBN<>VY? ¾ VYIL£;@VY?7;@6=JKVY<>L4768oÔHV Y<H;=<>6ÔH8 ^R ^ÔH68 ,E6IL
8 &?BNR˜Ý&6~6=B{Ô>6I7Lb8$O6 XRK?BN<HG$I6 8VY?B¼;=ÔHRK<>LM68 ¾ L$O6 ;=<H868h6=B¼RK;=;@VYX ¾ R Y?³=O6 68”46”L 6 YÔ>68{46~4WO6 47I^;@BN<>VY?
;@VY?747I^<H8NRK?B RƒÔHR ¾ LN6IJK6Õ4^I ‰VY?^;@BN<>VY?7?6X£6?B:4^I¼8 &8B 6X£6 ÔÛ6@Ý<H8B6 ¾ ÔHI78N<H6ILM8WB ¾ 68:46PX =O6 BNFV$4768
ˆVKLMX£6ÔHÔ>68œ;@VYXX£6 ¾ RLA6@Ý&6X ¾ ÔH6£ß
D,E68`ÔûRK? YR K68`476 8 ¾ O6 ;=< ^;=RBN<HVY?PRKÔ O6 7L
<HGI76 ˆVKLM<>6?BO6 8 ¾ LNV ¾ LM< =O6 B$O6 8 Þߌ;@68ÔHRK? YR K688VY?B ^RK8$O6 88NIL
ÔûRo?7VKBN<>VY?h46qB ¾ 6qR ‹8BLMRK<>BœRKÔ O6 7LM<ûGI6 ,`R ¾ L$O6 86?BNRBN<>VY?¼4|-0I7?\B ¾ 6öR ^8BLMRK<HBRKÔ `O6 ^LM<HG$I6q68B
;@VY?^8BN<>BNIW=O6 6¬4Û-0I7?6 ¾ RLNBN<>6ƒ4WO6 ;=ÔûRLMRBN<>VY? 8M< Y?7RBNILN6ƒ4768qV ¾ =O6 LMRBN<>VY?78P47I~B ¾ 6 :6=BÕ4|-0I7?76 ¾ RLNBN<>6
R˜Ý<>VYXƒRBN<ûGI6 O6 G$I7RBN<>VY?^8¬;@VY?74^<>BN<>VY?7?6ÔûÔ>68†VYI ¾ L&O6 4^<H;=RBN847I ¾ LN6Xƒ<>6=LVKLM4LN6¼8NI7LÔ>68ƒB6=L
X£68
;@VY?^8BLMI7<>BN8 R ¾ RLNBN<>LD476Q;@68AV ¾ =O6 LMRBN<>VY?^8 ÇT<HBVY?78 ¾ RLA6@Ý&6X ¾ Ô>6£ß
, 23œT Ö ÖKÖ T q9, Ù Ú D,E68.ÔHRK? YR K68³46A8 ¾ O6 ;=< ‹;=RBN<>VY?ƒ6?78N6X ^Ôû<H8B6 ˆVKLM<>6?BO6 8³X£V&4 6Ô>68 ÔH8Þ8VY?B ^RK8$O6 8³8NIL.ÔHRqBNFW=O6 VKL
<>6
4768b6?786X ^Ô>68b6=Bh468 ¾ L&O6 47<û;=RBN8¼47I ¾ LN6Xƒ<H6=L¬VKLM47LN6 UÔH8bIBN<ûÔH<H86?B¬468bB ¾ 68h46~4VY?^?³=O6 68
¾ L$O6 4³O6 ^?7<H8 ¾ VYILX£V$4WO6 Ôû<H86=LÔä- =O6 BNRBD47I\8 $8NB 6Xƒ6 Ro;@VY?^8BLMI7<>LM6 &TF7RKG$I62V ¾ =O6 LMRBN<>VY?b68Bœ8 ¾ O6 ;=< W=O6 6
<û?74³O6 ¾ 6?747RKXƒX£6?BA6?l4³O6 ;@LM<>JRK?Bq8VY?{6 (6=Bq8NIL2Ôä- =O6 BNRBq4^I{8 &8B 6X£6 ÞVY<H;=<GI6ÔûGI68A6@Ý$6X ¾ Ô>68
476Q;@6ÕB ¾ 6Q46QÔHRK? YR K6¬ß
8# #
h M0
27
<k 5e G"
-k!5
8# #
27
:
$7
h
8# #
$'
c S;
2# $ 2# $ 2#
c cb
=&
;
#
; d
c Z
D7
=KÚ
R ÙØ 6=B - F6;@B R ڏØ
! = ZU.9 + $ 6=B Z?.9 Ú˜Ö ,Û6 ¾ VY<H?B_ˆ0 VKLNB!468!X =O6 BNFV$4768+0‰VKLMXƒ6ÔHÔ>68`68BÔûR:;@L&O6 RBN<>VY?46WÔHV#Y<H;=<>6ÔH88 Ig LM8`6=B+7^R^Ô>68 ¾ RL C " _‡+'Œ_ Z %
Ž Z‹˜Š " aˆa " ‹ ܳÔHÔ>6P<û?B6=LNJ&<>6?B:R ¾ LE6 8öÔûR¬;@L&O6 RBN<>VY?~4^IxX£V&46 Ô>6†XƒRBNFWO6 XƒRBN<HG$I6£4|-0I7?l8 &8Bc6 X£6†6=BöÔä-0IBN<HÔH<>S
8NRBN<>VY?›4|-0I7? ÔHRK?8Y# R#K6 ¾ VYILP8 ¾ O6 ;=<D776=LoÔH68 ¾ LMV ¾ LM< =O6 BO6 8†47I¶8 &8B$6 X£6.ܳÔHÔ>6ƒ68B:^RK8$=O6 6h8NILoI7?6 ¾ LN6IJK6
XƒRBNFWO6 XƒRBN<ûGI6 IBN<HÔH<H8MRK?BqR˜Ý&<HVYX£68q6=BQLE6$ Y# Ô>68Q4Û-0<H?80 =O6 LM6?7;@6 Û Ü ÔHÔH6†;@VY?^8N<H8B6 Rh
4WO6 ;@LM<>LM6ƒÔ>6£8 $ 8NBc6 Xƒ6ƒ6=B
Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8oRKI&ÝGI6ÔûÔ>68Q<HÔ.47VY<>BQV
O6 <>LE` Ü ?78NI^<>B6ƒVY?¶4WO6 XƒVY?BLN6bG$I6Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8 ¾ 6IJK6?Bj6=g BLN6
V7 B6?$I68R ¾ RLNBN<>LA47Ih8$ 8B$6 X£6MRƒ
Ôä-0RK<H476q4Û-0I7? ¾ LNVYIJK6I7LA;@VYXƒX£6ß
[-öZ 9 #*$ e-,
TV$G @Ö ,Û68 ¾ LNVYIJK6IL
8 ¾ 6IJK6?BN6=g BLN6<û?7;=ÔHI78247RK?78öI7?”VYI7BN<HÔÞ;@VYXƒX£6ƒÔä-l
k B6Ôû<>6=L&! Ù& VYI Ô>6 ³! SC`VVYÔDÕO <>B + V¾ YILAÔHR£X›=O6 BNFV&46!U
! !
A VYI78ƒ?VYI^8o<û?B$=O6 LN68N8NVY?78LR~ ÔHR”X›=O6 BNFV&46i!U³ 9$68%ˆ0 VY?746X£6?BN8£BNFW=O6 VKLM<HG$I68£VY?B =O6 BxO6 4W$O6 ^7 ?7<û8£47RK?78
:
Ô>6i³
! ShW! VVC = `[ VYI7LƒL$O6 8NI7X£6=L6ÔHÔ>6hIBN<HÔH<û86\ÔH68 ¾ L&O6 47<H;=RBN847I ¾ LN6Xƒ<H6=L£VKLM4LN6hRJK6;xÔHR”BNFW=O6 VKLM<>6x468
6?786X:^ Ô>68:RK<H?78N<|G$I6ÕÔH6ÕÔHRK?8Y# RK# 6o468D8NIP^ 8BN<>BNIBN<HVY?78K`# O6 ?W=O6 L
RKÔH<H8$=O6 68$| ,Û6o;c$ ;=ÔH6Õ46Õ4W=O6 JK6Ô>V ¾^¾ 6Xƒ6?B2468
R ¾7¾ Ôû<H;=RBN<>VY?78 7P# Ú ¾ RK8N86 ¾ RLÔûRQL&O6 47RK;@BN<>VY?h4^I¬;=RKF7<H6=LW468;
F7RLK# 686=B8NR†8 ¾ O6 ;=<2^7 ;=RBN<>VY?bR^ 8NBLMRK<>B6
" Ø K[ RL\ÔHR 8NI^<>B6{Ô>68ƒ;=RL
RK;@B=O6 L
<H8BN<HG$I68b47I ;c& ;=Ô>6{46x4³=O6 JK6Ô>V ¾7¾ 6X£6?B\RJK6;L! 8VY?B¬I7BN<HÔH<H8$=O6 68$³ ,ER
8 ¾ O6 ;=<2‹7 ;=RBN<>VY? R‹ 8BLMRK<>B6x68B ¾ LMVYIJ.=O6 6 ¾ I7<H8£L
R*
)
?³=O6 6{BVYIB\6? ¾ L$O6 86=LNJRK?BbÔ>68 ¾ LNV ¾ LM< =O6 B$O6 8 ¾ LNVYIJ.=O6 68
47RK?78\Ôä- 6?BN<>Bl
O6 R‹ 8BLMRK<>B6[ VYIL ^7 ?7<>LÔH68¬<HX ¾ Ô
O6 X£6?BNRBN<>VY?78\47I ¾ LMVH 6=B ! 8VY?B\BLMRK47I7<>B68JK6=LM8bI7?
ÔHRK?8Y# RK# 6P;@VYX ¾ <HÔHR‹ Ô>6q6=BA6@Ý O6 ;=IBNR‹ Ô>6
; ÔÞ6@Ý<H8B6ƒ46I&Ý~R ¾7¾ LMV$;
F68QRKIBVYILo46ƒÔHRhX›=O6 BNFV&46j!UE , -0R ¾7¾ LNV&;MF76›=O6 J.O6 ?6X£6?BN<>6ÔHÔH6`' 47<>B6ƒRKI^8N8N<
8 & 8Bc6 X£6 ' Ö ' IBN<ûÔH<H86œÔ>68o=O6 J.O6 ?6X£6?BN8 ¾ VYI7L.X£V$4^<277 6=L.Ôä-U=O6 BNRB47Iƒ8 & 8Bc6 X£6>; ÔH8 ¾ 6IJK6?B 8=- 6@Ý O6 ;=IB6=Lœ8N<
Ô>6IL+Y# RLM476 ;@VY?^47<>BN<>VY? E68BÞJ$LMRK<>6K , -0R ¾7¾ LNV&;MF6œÔ>VY# <û;=<>6ÔHÔ>6W47<>B6œRKI78N8N<&;=ÔHRK8M8N<HG$I6WI7BN<HÔH<H86W468!V ¾ =O6 LMRBN<>VY?^8
O6 GI^<>J˜RKÔH6?BA468¬=O6 J.O6 ?6X£6?BN8D46öÔHR:‰0 VKL
X£6x=O6 J.O6 ?6X£6?BN<>6ÔHÔH6 WGI7<(VY?Bœ468 ¾ L&@O6 S;@VY?747<HBN<>VY?78 ˆ6?hÔH<>6I¬6=B
7 =O6 68
¾ ÔHRK;@6†468?Y# RLM476824768{=O6 J.O6 ?6X£6?BN8Õ46†ÔHR ‰0 VKL
X£6¶=O6 J.O6 ?6X£6?BN<>6ÔHÔ>6 ` T6ÔHÔ>68S;=<!4VY<>JK6?B6=g BLN6£J.=O6 LM<DW
RJRK?B¼Ôä-0R ¾7¾ 6Ô ¾ RLb?VYX´468¬V ¾ =O6 LMRBN<>VY?78Eq
. RK?78h;@6”4V&;=I7X£6?B\?7VYI78¬?7VYI78b;@VY?7;@6?BLM6=LNVY?78b8NILbÔHR
L¾ &O6 86?BNRBN<>VY?x46ÕÔä-0R ¾7¾ LNV$;
F6öÔ>VY# <H;=<>6ÔûÔ>6ö47<>B6Q;=ÔHRK8N8M<HGI76
D 6 4 !3 46 46
,`R¬X›=O6 BNFV&46 ! ?76o4W$O6 ^7 ?^<>B ¾ RK8qI7?76PR ¾7¾ Ôû<H;=RBN<>VY?{XRK<H8qI7?{X£V&46 Ô>6£XƒRBNFWO6 XƒRBN<ûGI6E TW6†X£V&46 Ô>6
68Bœ4WO6 ;@VYX ¾ VY8$öO6 6?bX£V&47I7Ô>68 XƒRK;MF^<H?68R^ 8BLMRK<HB68 ¾ VYIL;=Ô>VY<H8NVY?7?6=LÔ>68;@VY?BLMRK<û?B68œ4W$O6 ^7 ?^<>6847RK?78
Ô>6h;=RKF7<>6=Lƒ4768£;MF7RLK# 68E :
. 6x;@6=BB6{XƒRK?7<Q6= LN6bVY?*L&O6 47I^<>B£ÔHR”;@VYX ¾ Ô>6@Ý<>BhO6 6? =O6 J$<HBNRK?BƒÔ>68£<û?B6=LMRK;@BN<HVY?78
6?BLN6ÕÔ>68A4^< D
b =O6 LN6?B682;@VY?BLMRK<û?B68D6=B:Ô>6ILœL&O6 8NVYÔHIBN<>VY?7 , - O6 Ô
O6 X£6?Bq68N8N6?BN<>6ÔE46QÔHRƒX›=O6 BNFV&46! 68NBDÔHR
XƒRK;
F7<H?6†R^ 8BLMRK<HB6 7P# Ú Ú :GI^<`4W$O6 ^7 ?^<>B:Ô>6o?7<>JK6RKI”Ô>6 ¾ ÔHI78:R^ 8BLMRK<>Bq47Il8 & 8Bc6 X£6£8 ¾ O6 ;=<2
7 O6 E TF7RKG$I6
XƒRK;
F7<H?6QR^ 8NBLMRK<>B6 ¾ VYILA4W$O6 ^7 ?^<>LAI7?hX£V&47I7Ô>6ö47Ih8$ 8B$6 X£6P68BD47<HJ$<H8$qO6 6?x46I&Ýxß
/2?6 ¾ RLNBN<>6D8BNRBN<ûGI6:GI7<^;@VYX ¾ LN6?74Ô>68 4VY?^?³=O6 68 ˆ6?78N6X^ ÔH68$Y' LN6ÔHRBN<HVY?78$'ˆ0 VY?7;@BN<>VY?78$' J˜RLM<ûR^ Ô>68
6=BN; œ6=BDÔä-0<H?JRLM<HRK?BG$I7<|4W$O6 ^7 ?^<>BAÔ>68A;@VY?BLMRK<H?B68DG$I6QÔ>6Q8 & 8B$6 X£6o4VY<>BAR^ 8VYÔûI7X£6?BœLN68 ¾ 6;@B6=LE
/2?6 ¾ RLNBN<>6\48& ?7RKXƒ<HG$I6 ¾ 6=LMX£6=B†46\X£V$4^<277 6=LPÔH68ÕJRLM<HR^ ÔH68K# LHRKg ;@6IRl
Ôä-0<H?7<HBN<HRKÔH<H8NRBN<HVY?”6=BoRKI&Ý
V ¾ =O6 L
RBN<>VY?78$!
Ü ? 6c(b 6=B†Ôä-U=O6 BNRBƒ47I 8 $ 8NBc6 Xƒ6\68NBP4W$O6 ^7 ?7< ¾ RLoÔ>68ÕJRKÔ>6IL
8Õ46\;@68PJRLM<HR‹ Ô>68Q6=B†;@6
8NVY?BDÔH68œV ¾ =O6 LMRBN<>VY?78:GI^<|Ô>69‰0 VY?BAJ&<>J$LN6q6=Bb=O6 JKVYÔHI6=L247RK?78œ8VY?{6?J&<>LNVY?7?76X£6?B$
==
Cahier des charges
Spécification
Conception
Machine abstraite
Raffine
preuves
preuves de raffinement
Raffinement
Raffine
preuves
preuves de raffinement
Implémentation
preuves
Traduction
Code
Compilation
Application
TK&;=Ô>6Q46Q4W=O6 JK6Ô>V ¾^¾ 6Xƒ6?BA6? !
D D 6 !3 !3 ,E6¼;c$;=Ô>6¼476b4W=O6 JK6ÔHV ¾7¾ 6X£6?B¬46hÔ>VY# <H;=<>6ÔH8£RJK6;¼ÔHR~X›=O6 BNFV&46ii
! ;@VYXƒX£6?^;@6 ¾ RLƒI7?6hR^8NBLMRK; S
BN<>VY?7TW6=BB6QR^8NBLMRK;@BN<>VY?h4W$O6 7^?7<HBWÔ>68KK# LMRK?^468ÔH<2Y# ?68³6=B ¾ LM<H?7;=< ¾ 68 68N86?BN<>6ÔH847I 0‰VY?^;@BN<>VY?7?6X£6?Bœ47I
8 &8Bc6 X£67,Û68³LMR*)?76X£6?BN88NI^;=;@68N8N<20 8 ¾ 6=LMXƒ6=BB6?B46q4³=O6 BNRK<HÔHÔ>6=L;@6?‰0 VY?7;@BN<HVY?7?6X£6?B ¾ VYILÔ>6DLM6?74LN6
46 ¾ ÔHI^8P6? ¾ ÔHI78o;@VY?7;@LN6=B?NI78NG$I|- Rx
6?š4³O6 ;@LM<>LN6¼I7?76b<ûX ¾ Ô O6 X£6?BNRBN<>VY? R” Ôä-0RK<H46h47I*ÔHRK?PY# RK# 6i! Ø ³ ,Û6
ÔHRK?8#YR#K6i! Ø 68BƒI^?›8NVYI78S6?786X:^ Ô>6b47IšÔHRK?PY# RK# 6i!X+; Ô ¾ VY8N8c6 46hI7?6h8 & ?BNR˜Ý&6h6=BƒI7?6b8$O6 XƒRK?BN<HG$I6
BLE6 8 ¾ LNV&;MF6Õ4768DÔHRK?8Y# RK# 68246 ¾ LNVK# LMRKXƒXƒRBN<HVY?¼BLMRK47<HBN<>VY?7?6ÔH8;@6oGI7< ¾ 6=L
X£6=BDI7?6öBL
RK47I7;@BN<>VY?xRK<H8=O6 6
JK6=LM8P;@6I&ÝS;=< ` ,Û6 ¾ LM<H?7;=< ¾ 6o46;@VY?7;@L&=O6 BN<û8NRBN<>VY?›IBN<HÔH<H8$ƒ
O6 4^RK?78QÔ>64W=O6 JK6ÔHV 6X£6?B 6=L
X£6=BÕ46ƒ8N;=<û?746=L
ÔHR¼;@VYX ¾ Ô>6@Ý<>B¬
O6 468 ¾ LNV^ ÔQ6 X£68$aq
. ILMRK?BÕÔ>6ƒLMR*¬) ?6X£6?B$E' Ôä-0R^ 8BL
RK;@BN<>VY?¶¾7¾ 86=L
R¼4³=O6 BN¾ RK<HÔHÔ =O6 6. TW68Õ4W=O6 BNRK<ûÔH8
LN6?7476?B ¾ ÔûI78 ¾ L$O6 ;=<H8DÔH68A4VY?7?W=O6 68D6=BDÔ>68V ¾ =O6 LMRBN<>VY?^8:46QÔûR£XƒRK;MF7<û?6QR^ 8BLMRK<HB6
D D !967
,E68:;@VY?BLMRK<H?B68:RKIÝ&G$I6ÔHÔ>68D4VY<>BAV
O6 <>LqÔ>6Õ8$ 8B$6 X£6†8VY?B:4W$O6 ^7 ?^<>68 RL2Ô>68ALE6$ Y# ÔH682476VK# 68BN<>VY?l47I
;=RKF7<>6=Lo468Õ;
F7RLK# 68$!
Ü ÔûÔ>68Q8VY?BP4WO6 ;@LM<HB68P6? ! 47RK?78PÔä-0<H?J˜RL
<HRK?BQ8MILÕ¾ Ôä-U=O6 BNRB£47I 8 & 8B$6 X£6b8VYI78oI7?6
0ˆVKLMX£6:I^?7<HG$I6D46 ¾ LNV ¾ LM< =O6 B$öO6 8BNRBN<HG$I6Pß6ÔHÔH68³4W$O6 ^7 ?^<H8N86?B³468W;@VY?BLMRK<H?B68œGI7<‹46=J$LNVY?BX6=g BLN6qJ.=O6 LM<DW7 =O6 68
47RK?78BVYI^8œÔ>68=O6 BNRBN8D47Ih8 & 8B$6 X£6^ ܳÔHÔ>68WLN68BLM6<2Y# ?6?BÔ- 68 ¾ RK;@6Q46qJRKÔ>6ILM8G$I6 ¾ 6I7JK6?B ¾ LM6?74LN62Ô>68
JRLM<HR^ Ô>68E7 T68 ¾ LNV ¾ LM< =O6 B$O6 8 ¾ 6I7JK6?Bœ8=-0R ¾7¾ ÔH<HG$I6=Lœ8NILœI7?6qVYI ¾ ÔûI78N<>6IL
8.JRLM<HR^ Ô>68E - ?hÔ>68œR ¾7¾ 6ÔHÔ>6=LMR
¾ L&O6 47<û;=RBW46:Bh ¾ RK# 6öÔ>VKLM8NG$I|- 6ÔHÔH68.8VY?B³6? ‰0 VY?^;@BN<>VY?¬4Û-0I7?6D86I^Ô>6DJRLM<HR^ ÔH6 ,Û68³V ¾ =O6 LMRBN<>VY?78X£V&47<2^7 6?B
Ô>682JRKÔ>6ILM8q468qJRLM<HR^ ÔH68:6=Bö4VY?^;oÔ- =O6 BNRBP47I”8 $ 8NBc6 Xƒ6E Ü ?”;@VY?78$O6 G$I6?7;@6ÔûR ¾ LN6IJK6†J˜Rb;@VY?78M<H8B6=L R J.=O6 L
<277 6=LÔHRP;@VY?P‰0 VKLMX<>B2O6 462Ôä- =O6 BNRBA47I\8 $ 8NBc6 Xƒ6qRJ˜RK?B6=BWR ¾ L$6 8œÔä- V ¾ =O6 LMRBN<>VY?& ,Û6q4W=O6 JK6Ô>V ¾7¾ 6X£6?B4|-0R ¾ S
Ú
=˜Ö
L
?! $
$
¾ HÔ <û;=RBN<>VY? RÕÔ-0RK<H46D46:ÔHRQX›=O6 BNFV&46 4³O6 ^IB6 ¾ RL³I7?76DXƒRK;MF^<H?6DR ^8NBLMRK<>B6:;@VYX ¾ LN6?7RK?B³I7?¬<H?J˜RLM<ûRK?B
;@VYXƒX£6{BVYI78ƒÔ>68ƒRKI7BLN68;@VYX ¾ VY8NRK?BN8 ,E68 ¾ LN6X< 6=LN68£V ^ÔH< YRBN<>VY?78£46 ¾ LM6IJK68 R~LN6X ¾ ÔH<>L£8VY?B R
;@6Õ?7<HJK6RKI
o-0RKIBLN6 ¾ RLMBDÔ>68A47< D=O6 LN6?BN8D<H?JRLM<HRK?BN8œ468ALMR ¬?6X£6?BN8œ6=BD<HX ¾ Ô
O6 X£6?BNRBN<HVY?78
Ú
R ¾7¾ VKLNB6?BœRKI78N8N<:=O6 JK6?BNI6ÔHÔ>6X£6?BDÔ>6I7LM8 ¾ LNV ¾ LN68WV ^Ôû< YRBN<>VY?7846 ¾ LM6IJK68 Ü ? ‹?\ÔH62L
R ?6X£6?Bœ468
X£V&47I7Ô>68£R ¾^¾ VKLMB6=LMR Ô>68V ^ÔH< YRBN<>VY?^8ƒ46 ¾ LM6IJK68ƒLN6ÔûRBN<>JK68 R ÔûR ¾ L&O6 86=LNJRBN<>VY? 46{Ôä-0<H?JRLM<HRK?Bƒ468
R ^8BL
RK;@BN<>VY?78A47RK?^8AÔ>6Q;@VYX ¾ VY8NRK?BD;@VYILMRK?B
D ?
Ô>6
7P# .
2#
2b
, D#
2#
$
*)
$ 87
L
*)
9 129 4 9 1 *
, - O6 Ô O6 Xƒ6?Bœ68N8N6?BN<>6ÔÇ462ÔHRÕX›=O6 BNF7V$469! 68BWÔûRÕXƒRK;
F7<H?62R^8BLMRK<>B6 7P# Ú Ú ³GI7<‹4³$O6 7^?7<>BWÔ>6:?^<>JK6RKI
¾ ÔûI78R^8BLMRK<>B:47Ih8 & 8Bc6 X£6P8 ¾ O6 ;=<D7WO6 MACHINE
CONSTRAINTS
SETS
CONSTANTS
PROPERTIES
DEFINITIONS
VARIABLES
INVARIANT
INITIALISATION
OPERATIONS
END
Name (paramètres)
Constraints Sets Constants Properties Definitions Variables Invariant Initialisation Operations 9$BLMI^;@BNILN6ö4|-0I7?6QXRK;MF7<H?76QR^8BLMRK<>B6
D,`R ;=ÔHRKI78N6 MACHINE 4³$O6 7^?7<>BƒÔH6¼?VYXµ47I ;@VYX ¾ VY8MRK?Bƒ6=B\Ô>68 ¾ RL
RKX 6= BLN68š=O6 JK6?BNI6ÔH8$œTW68
¾ RLMRKX 6= BLN68 ¾ 6I7JK6?BV6=g BLN6P8N;=RKÔHRK<>LN68AVYI¼6?786X:^ÔH<û8B68$
8 O6 ;=<2^7 62Ô>62Bh ¾ R#K6ö468 ¾ RLMRKXM6= BLN68œ4WO6 ;@L
<>BN847RK?78WÔHRÕ;=ÔHRKI^86
Ú D,`RP;=ÔûRKI786
CONSTRAINTS ¾
MA
CHINE
= D,`R~;=ÔHRKI786 SETS 4³O6 ;=ÔHRLN6¼Ô>68†6?^86X‹ Ô>68†IBN<HÔH<H8$O6 8†47RK?^8oÔH6b;@VYX ¾ VY8MRK?B$1; ÔH8 ¾ 6IJK6?BM6=g BLN6¼476
476I&Ýl8VKLMB68$Û ,Û6 ¾ LN6X<>6=L:68NBQ46†Bh ¾ 6›O6 ?$I7X›=O6 L&O6 ¾ RLö6@Ý&6X ¾ ÔH6
VYI
BOOLEAN = false,true R‹ 8BLMRK<>B ¾ RLD6@Ý$6X ¾ Ô>6P9f
,`Rƒ;=ÔHRKI78N6 CONSTANTS 4WO6 ;=ÔHRLM6PÔ>68œ;@VY?78NBNRK?B68247I¼;@VYX ¾ VY8NRK?B$
Ö D
+GD VY,`IxR¼4;=6ÔHRK8AI7;@8NVY6 ?7PROPERTIES
¾ 6=LMX£6=BQ46ƒ4W$O6 ^7 ?^<>LÕ468Q;@VY?BLMRK<H?B68Õ8MILÕ468ö6?^86X‹ Ô>68QR^ 8BLMRK<HBN8
8NBNRK?B6824³$O6 ^7 ?7<>68œ4^RK?78AÔHR£;=ÔHRKI^86
CONSTANTS
4³O6 ;=ÔHRLN6P4768DRKÔH<HRK8AB6@Ý$BNI6Ôû8$W
' =O6 JK6?BNI76ÔHÔ>6X£6?B ¾ RL
RKX =O6 BL$O6 8$|' GI7<|8N6@S
" D LM,`VYRƒ?B³;=ÔHLNRK6I7X 8N6 ÔHDEFINITIONS
[ RL 6@Ý&6X ¾ Ô>6 Affect(x,v) ==
¾ RK;‹O6 8³RKI4W$O6 ^ IB³46DÔä-0RK?7RKÔD$ 86AÔH6@Ý&<H;=RKÔH6 ¾ RL Ô>6I7LM8.;@VKL ¾ 8E>!
6¾ =LMX£6=BBLMR£476QLN6X ¾ ÔûRK;@6=L
R¾ L
x := 2 * v + 1
Affect(v1,v2)
v1 := 2 * v2 + 1
# D ,`Rƒ;=ÔHRKI78N6 VARIABLES 4WO6 ;=ÔHRLM6ÕÔHR£ÔH<H8NB6Q468œJRLM<HR^ Ô>68œ4^Ih;@VYX ¾ VY8NRK?B$
4W$O6 ^7 ?7<HB ¾ RLq468 ¾ L$O6 47<H;=RBN8qÔ>68:;@VY?BLMRK<û?B68qLN6ÔûRBN<>JK68:RKIݼJ˜RLM<ûR^ Ô>68
$ D h,`R¬;@VY;=X ÔûRKI7LM8<H6 8œINVARIANT
>
Ô
ö
6
d
B
R
#
K
6
¾
¾
,`RP;=ÔûRKI786 INITIALISATION 77 Ý$62ÔHRQJRKÔ>6ILW<H?7<>BN<HRKÔH6A462;
F7RKG$I6:JRLM<HR‹ Ô>6D47I¬;@VYX ¾ VY8NRK?B ¾ RL
Ù D
4768A8NI8^ 8NBN<>BNIBN<>VY?78E
Ú Ú
=+
8
7
0
IBN<HÔH<H8N6\RKI78M8N<Ô>68£8NI ^8NBN<>BNIBN<>VY?78oR ^?š46 RK<>LN6 =O6 JKVYÔHI6=L\Ôä- =O6 BNRB¬47I
=Ø D,`R~;=ÔHRKI786
8 $8B 6X£6 (,ÛOPERATIONS
68DV ¾ =O6 LMRBN<>VY?78 ¾ 6I7JK6?B ¾ LM6?74LN6ö468 ¾ RLMRKX 6=BLN6824|- 6?BL&=O6 6oRK<H?78N<|G$I6Q46öLM6=BVYIL
,E68:L 6 YÔH68ö46PJ&<H8N< ^<HÔH<>B$O6 Ù 468q47< D=O6 LN6?BN8ö;@VY?78BN<>BNI^RK?BN8 RbÔä-0<H?B=O6 LM<>6ILq468247< D=O6 LM6?B68ö;=ÔHRKI^868
46QÔHR£XRK;MF7<H?76Q8VY?B:4³O6 ;@LM<>B68D4^RK?78AÔ>6öBNR ^ÔH6RKI¼8NI7<>JRK?B C`R Ú
$ E$ #
Ú
2b
=
CONSTRAINTS
PROPERTIES
INVARIANT
- [³Ü 3XkÞC5; - Aq9
INITIALISATION
6=B
E
b
TÔHRKI^868
TWVY?78BN<>BNI^RK?BN8
[RL
RKX 6= BLN68
Ü ?^86X‹Ô>68
TWVY?78BNRK?B68
. 6$‹7 ?7<>BN<>VY?78
:
Z RLM<HR‹ Ô>68
.
- ¾ =O6 LMRBN<HVY?78
D
N
Z2<û8N<2^<HÔû<>B%O6 Rƒ Ôä-0<û?B$=O6 LM<>6I7LA4|-0I7?6QXƒRK;
F7<H?6QR‹8BLMRK<>B6Q46P868
¾ NL V ¾ LN686?BN<HBO6 8
9 96 $ ! ! !
,E6ÔHRK?8#YRK# 6 ! IBN<HÔH<H8N6oÔHR¼BNF³=O6 VKLM<>6468Õ6?786X:^Ô>68$'ÛÔûRhÔ>V#Y<HG$I6ƒ468 ¾ L$O6 47<H;=RBN8Õ4^I ¾ LN6Xƒ<>6=LöVKL
4LN6
6=B”Ô>68x8MI8^8BN<>BNI7BN<>VY?78M# O6 ?W=O6 LMRKÔH<û8=O6 68$Õ
,Û68l8NI8‹8BN<>BNIBN<>VY?^8¼8VY?BlIBN<ûÔH<H8$=O6 68 ¾ RLlÔ-0<H?7<>BN<HRKÔû<H8NRBN<>VY?©6=B”Ô>68
V ¾ =O6 LMRBN<>VY?^8 ¾ VYIL`X£V$4^<277 6=LEÔ>68EJ˜RKÔH6ILM8E4768ÛJRLM<HR^ Ô>68E47RK?78Ô>6 ^ IB`46-0 RK<>LN6†=O6 JKVYÔHI76=L!Ô- =O6 BNRB!47IP8 $8NBc6 Xƒ6
,ERÕ?VKBN<>VY?£46D8MI8^ 8BN<>BNI7BN<>VY?o68B R ¾7¾ RLM6?B$=O6 6:RKI݆RHÇb 6;@BNRBN<>VY?78W468.ÔHRK?PY# R#K68 46 ¾ LMV#KLMRKXƒXƒRBN<>VY?ƒBLMR˜S
47<>BN<HVY?7?6ÔH8$@ Ü ÔûÔ>68|VY?Bq=O6 BWO6 <H?BLNV&47I7<>B68Ç6?:~
! 47RK?78ÛÔH61^ IBÛ46 4W$O6 ‹7 ?7<>LÛ468EBLMRK?78 ˆ0 VKLMXƒRB6IL
8Û46 ¾ L&O6 4^<H;=RBN8
Ö + ¾ RLœLMR ¾7¾ VKLNBRƒ I7?©=O6 BNRB (' RJRK?BDÔHR£8NI8‹ 8BN<>BNIBN<>VY?\6=B (+/.$`R ¾ L$6 8$( 9$VY<HB [ ÔHR ¾ VY8BS;@VY?747<HBN<>VY?b6=B
9lI7?6£8NIP^ 8BN<>BNIBN<HVY?lRKÔHVKLM8 09 [ 68BPÔHR ¾ ÔHI78U0 RK<2^ Ô>6 ¾ L&@O6 S;@VY?747<HBN<>VY? Ù 2?WO6 ;@68N8MRK<>LN6 ¾ VYILöG$I6¬9l86
B6=LMXƒ<û?6†6=B”=O6 BNR^ ÔH<H8M86 [__2
. RK?^8QÔ>6£BNR^ Ô>6RKI C`R Ú Ú ' GI^<Þ;@VKLNLN68 ¾ VY?74~RKI&ݔ8NI8^ 8NBN<>BNIBN<>VY?78q8N<ûX ¾ Ô>68
46QX£V&47<27‹;=RBN<>VY?h468œJRKÔ>6ILM8œ4768œJ˜RL
<HR^Ô>68qß
Ýb6=B h
8VY?BD468œJRLM<HR‹ Ô>68
9hI7?b6?786X:^Ô>6
[a' 6=BD3 468 ¾ L$O6 47<H;=RBN8$
f "#‡ _ 'Œ_ Z %
z [`] #='˜_û' [ 'Œ_ Z %
z " Š +^%('Œ_ˆ [ "
U; 46?BN<>B$O6
. (
8 &C < ¾ 3 3
. 6=J&<>6?BAB6ÔEG$I6
:
Ý~ß ,[ Ý”ß ,[ 3 :ÝÇ-2 Ý~ß 5ÝÇ- [ Ý~ß 5ÝÇ- 3
. 6=J&<>6?BhO6 Ô O6 X£6?B:46 Ý~ß 9
:
Ý”ß ›9 3 :ÝÇ-2 Ý(- 9 Ý~ß 5ÝÇ- 3
. 6=J&<>6?Bh$O6 Y# RKÔE8M<HX ¾ Ô>6 Ý~ß „Ü
:
Ý”ß qÜ 3 3 Ü × Ý . 6=J&<>6?Bh$O6 Y# RKÔEXoI7Ô>BN< ¾ Ô>6 Ý' ” ß „Ü 0' 1
:
Ý' ”
ß qÜ 0' 1 [ [ Üm0' 1 × Ý' Ú Ú 9&I8^ 8NBN<>BNIBN<>VY?78W469^ RK8N6Õ46QÔHR£X›=O6 BNFV&46! 6=B:Ô>6ILA8$O6 XƒRK?BN<HG$I6
. RK?78¼ÔH6~BNR^ Ô>6RKI Ú Ú ÔH68¼8NI8^ 8NBN<>BNIBN<>VY?78\46W^ RK8N6 47I ÔHRK?8Y# RK# 6I! 8NVY?B ¾ L&O6 8N6?B$=O6 68”RJK6; Ô>6IL
q
8$O6 XƒRK?BN<HG$I6`!
[ RL 6@Ý&6X ¾ ÔH6AÔHRQ8$O6 XƒRK?BN<HG$I6D46DÔûRö8NI8^ 8BN<HBNIBN<>VY? /!
" % 68B Ýhß l9 3
ÝÇ-2 Ý(- 9 µÝxß Ý(- 3 VI $Ý(-2 ÝÇ- ~9 ¯Ý{ß ÝÇ- 3 4WO6 ?VKB6QÔ>62LN6X ¾ ÔHRK;@6X£6?B4Û-0I7?62V$;=;=ILMLN6?7;@6
ÔH<2^ LN6{46xÝ 47RK?78\3 ¾ RL\Ý(-G$I7<DR ¾7¾ RLNBN<>6?BWR›
Ôä- 6?786X:^ Ô>6~9f³ ,`R*8NI8^ 8BN<HBNIBN<>VY? XoI7Ô>BN< ¾ Ô>6 ‰Ý' ß
Ü '01 ö68BÕI7? ;=RK8 ¾ RLNBN<H;=I^ÔH<>6=Lö;=RLÕ6ÔHÔH6ƒ68BÕ;@VYX ¾ VY8$=O6 6WR ¾ RLNBN<>LP46ÔHRh8NIP^8BN<>BNIBN<HVY?l8M<HX ¾ Ô>6†6=Bo46ƒÔHR
;@VYX ¾ VY8N<>BN<HVY? ¾ RLMRKÔHÔQ6 Ô>6 EÇ TW6=BB6Õ8NI8‹ 8BN<>BNIBN<>VY? ¾ 6IBœ8=- 6@Ý ¾ LM<ûX£6=LA8VYI78AÔH68A46I&Ý ‰0 VKL
X£68A8NI7<HJ˜RK?B68öß
D D@
="
x,y := E,F
x := E y := F
;
8
= Ôq6@Ý&<û8B6 468h8NI ‹8BN<>BNIBN<>VY?^8¬46 ;@VYX ¾ VY8M<>BN<>VY? `C R Ú bGI^< ¾ =6 LMXƒ6=BB6?B{476”;@VYX ¾ VY8N6=L{I7?6
8NI ‹8BN<>BNIBN<>VY?b;@VYX ¾ Ô>6@Ý$6PRJK6;Õ4768A8NI ^8NBN<>BNIBN<>VY?788N<ûX ¾ >Ô 68
:68M;@LM< ¾ BN<>VY?
9I ^8BN<>BNI7BN<>VY?
9 O6 XƒRK?BN<HG$I6
9.O6 GI6?^;@6X£6?B
3 3
.L&O6 ;@VY?747<HBN<>VY?7?WO6
3 3
qRLM4WO6
3 3
TFVY<uÝ (VKL
?³O6
3 3 3
TFVY<uÝb?VY? ÇVKLM?WO6
2Ý
Ý 3 7Ý 3
8
.
[
T
M
.:68M;@LM< ¾ BN<>VY?
!WÔHV$;
TWVY?747<>BN<HVY?7?6ÔHÔ>6
TFVY<uÝ (VKL
?³O6
TFVY<uÝb?VY? ÇVKLM?WO6
.L&O6 ;@VY?747<HBN<>VY?
9.O6 Ô>6;@BN<>VY?
[
$
8
T le
lT le lT e
[ T
[ T [ lT
[ T
[ T [ lT
T e
lT e lT e
f T T lT Ú = 9&I8‹8BN<>BNIBN<>VY?^8³46P;@VYX ¾ VY8N<>BN<>VY?b6=BDÔH6ILA8O6 XƒRK?BN<HGI76
9&I8‹ 8BN<>BNIBN<>VY?
9.O6 XƒRK?BN<HGI76
T
BEGIN G END
,[ T 1[ e IF P THEN G ELSE H END
T
e
CHOICE G OR H END
^Ý ,[ T ANY x WHERE P THEN G END
[ T
PRE P THEN G END
22
,[ T 22 e SELECT P THEN G WHEN Q
THEN H END
^Ý T VAR x IN G END
S
„Ü T LET y BE y = E IN G END
Ú Ö D
A VKBNRBN<>VY? =O6 B6?747I6P468A8NI8‹ 8BN<>BNIBN<>VY?^8W4^IhÔHRK?8Y# RK# 6!
M
Z.RLM<HR^Ô>6QÔHV$;=RKÔ>6
. $O6 ^7 ?^<>BN<>VY?¼Ô>V&;=RKÔ>6
¼
8
D ! 46 ! ! ,`RQX =O6 BNFV&46m!*IBN<HÔH<û86WÔûRqBNF³=O6 VKLM<>6D468.6?786X:^Ô>68.;@VYXƒXƒ6 ^RK86A46A8N68.X£V&46 Ô>68 XƒRBNFWO6 XRBN<HGI768$
,ER£X›=O6 BNF7V$46V! ?|- 68NB ¾ RK8œI7?bÔHRK?8#YR#K6Õ476 ¾ LNV#KLMRKXƒXƒRBN<HVY?bBLMRK47<>BN<>VY?^?6ÔÇ;@VYXƒX£6V[kq9^Tk:,-'^TU'6=BN;'
;=RL³ÔH68ÞJ˜RL
<HR^ Ô>68Þ?6A8NVY?B ¾ RK8ÞBh ¾ =O6 68?RÕ
Ô>6IL.4WO6 ;=ÔHRLMRBN<HVY? Ü ?ƒ6c(b 6=B$' 6ÔHÔ>68Þ8VY?B.Bh ¾ =O6 68W47RK?78.ÔHRö;=ÔûRKI786
RD
Ôä-0RK<H476 46 ¾ L$O6 47<H;=RBN847I ¾ LM6Xƒ<>6=LÛVKLM47LN6 6=B ¾ RL;@VY?^8O6 GI6?B!Ô>6 Bd ¾ RK# 6W68B!47< Db =O6 LN6?B46
INVARIANT
;@6I&ÝbIBN<HÔH<H8$O6 847RK?^8WI^?¬ÔHRK?PY# RK# 6öBLMRK47<>BN<>VY?^?6ÔQ ,`R†86I7Ô>6q8N<HXƒ<ûÔH<>BNI746A;@VY?^;@6=LM?6QÔ>68WJRLM<HR^ Ô>68W8N;=RKÔHRK<HLN68
G$I7<:;@VKLMLN68 ¾ VY?746?B\RKIÝ J˜RL
<HR^ Ô>68b47I Bh ¾ 6l6?BN<>6=LE
' ;=RLMRK;@B$6= LN6:' 6=BN;A IBN<HÔH<H8$=O6 68b47RK?^8¬Ô>68bÔHRK?PY# RK# 68
BLMRK47<HBN<>VY?7?6ÔH8 CR^Ô>6RKI Ú " (,Û68DBh ¾ 68 ^RK8N<HG$I68œIBN<HÔû<H8O6 8 ¾ RLDÔHR£X›=O6 BNF7V$46:! 8VY?B:Ô>68A8NI7<HJ˜RK?BN8qß
68BDÔ>6öBd ¾ 69Ç VVYÔ =O6 6?x4³$O6 ^7 ?7< ¾ RL
6=B
BOOL
TRUE FALSE
6=B
68NBÔä- 6?7G$86I7X:<:^;@VKÔ>6hLMLN4668 8†VY6?7?4BN6<>6=?LMB 8ƒR› LN6ÔäÔHR- 6BN?7<20 88£6X:4³$^ O6 7^Ô>6l?7< 4¾ 68¬RL 6? SBN<>6=L
' 8¬ LM6 L$,EO6 8668£?BN;@RVY^ ?7Ô>86BN8bRK?47B<>6LN86;@MAXINT
B
6
ƒ
X
6
?
b
B
N
8
K
R
7
?
8
¾
¾
MININT
4W$O6 Ç VKLM476X£6?BA8MILAÔHR£XƒRK;
F7<H?6Q;=<2‹ Ô>6qLN6 ¾ L&O6 86?B6?B2Ôä- 6?786X:^ Ô>6?; :
A C 4768œ6?BN<H6=LM8AIBN<HÔû<H8NR^ Ô>6:6?
! Ø
68BDÔ>6öBd ¾ 6Q468A;
F7R gH] ?68D46Õ;=RLMRK;@B$6= LN68$
STRING
# Û;@VKLMLN68 ¾ VY?74hRKI&ÝbBh ¾ 68D468œ6?^86X‹Ô>68¬O6 ?I^X =O6 L$O6 824W$O6 7‹?7<H8œ47RK?78DÔHR£;=ÔHRKI786 SETS [ VYILD4WO6 ;@LM<HLN6ÕÔ>68œBd ¾ 68œVY?{IBN<HÔH<H8N62Ô>68D?VKBNRBN<>VY?78:8NI7<>JRK?B68Qß
4768œ6?74W86O6 8NX:<D#Y^ ?Ô>6ö68AÔä- 4Û6?7- O6 8Ô 6O6 X:Xƒ^6?Ô>6qBN824648 6 ¾ RLN8NBNRK<H;
6F78WRK47?6 B: G$'I;6 - 68BLNS 6R˜ S4^L&<>O6 LN86Q6?ÔäB- 66P?7I^8N6?bXBh^ ÔH626P4GVYI?6BAÔû;@Ô>6VY8ƒ?7GO6 Ô
I7O6 6X£ 6?BN8D8VY?B
¾
¾
=#
VKLM4³4O6 VY8N?^<2#Y?³?=O6 6\68EÔ>64VY¾ ?LNBEV$Ô>4^6 I7<>LMBö6;=XƒR<>LN6=BL:O6 8NO6 <>Ô
6O6 ?*X£64?6BE8P668?7BE84766ÞX:Bh^ Ô>668 6=6=BEB Ô>6.@'8E6;@;VY- 6?78N4ÕBS 4R˜ 6ÞS47Bh<> LN6b6 Ôä- @6?7,86- X:V ^=O6 Ô>LM6¬RB466I8 L
RK<>
N
L
6
Ç
8
¾
¾
¾ ¾
¾
68NBDRK8N8V&;=<HRBN<205R #YRKI7;MF76'^Ô>6öBh ¾ 6QC / Z \4WO6 8M<2#Y?6ö6?hL&O6 RKÔH<HBo
O6 Ô>6qBh ¾ 6 C / Z \ [
f "#‡ _ 'Œ_ Z %
9 O6 G$I6?7;@6
3A6ÔHRBN<>VY?
1VY?7;@BN<>VY?
W< 6;@BN<>VY?
? 6;@BN<>VY?
9&IL 6;@BN<>VY?
2VYXƒRK<H?6
TV$4VYXRK<H?6
.LNV&47I7<>Bœ47<HLN6;@B
TWVYX ¾ VY8N<>BN<HVY?
?JK6=L
86
!
; H
Q
.
v Z '+'˜_ Z %
seq(Exp1)
Exp1
Exp2
Exp1
Exp2
Exp1
Exp2
Exp1
Exp2
Exp1
Exp2
dom(Exp1)
ran(Exp1)
Exp1 Exp2
Exp1 ; Exp2
" " g A n " " g A C n
CC
C
C
C
CC
C
C
C
CC
C
C
C
C Ú
C Ú
Ú
Ú
Ú
Ú
Ú
"
C C C Ú C C Ú C C Ú C C Ú C C Ú C n
C Ú C Ú CC ÚÚ CC Ú CC == C C C = C = C Ú C Ú C ;
$( Ú ,+ C
¾ RK# 6P468œ6@Ý ¾ LN68N8N<HVY?785!
.o-0RKIBLN6 ¾ RLNBÞ<HÔ$6@Ý&<H8NB6476I&ÝPV ¾ =O6 LMRB6I7LM8.46Bh ¾ RK# 6D4^RK?78ÞÔHRqX =O6 BNFV&46 ! G$I7<&8VY?B 1'9' 6=Bœß 9&<`I7?6ÕJRLM<HR‹Ô>6
68NB:Bd ¾ =O6 6ƒ46oÔHRXRK?7<,6= LN6†8NI7<>JRK?B6\ß
RJK6; I7?6P6@Ý ¾ LM68N8N<>VY?x46PBd ¾ 6
C qRKÔHVKLM8QÔ>6£Bd var
6¾ ƒ46
68BPC9 - ? ¾ RLMÔH6ƒ46£J˜RL
<HR^ Ô>6£var
8N;=RKÔHRK<HELN6ƒÔ>VKLM8NG$EI6£Ô>6£Bd ¾ 6ƒ46ƒÔHRbJRLM<HR‹Ô>6
?|- 68B ¾ RK8œ;@VY?78BN<>BNIWÕO6 4Û-0I7var
? ¾ LNV&47I7<>BW;=RLNBO6 8N<>6?¼VYIh476 ¾ RLNBN<>6ö4|-0I7?\Bh ¾ 6QGI76ÔH;@VY?7G$I6^9&<ÇI7?6qJ˜RL
<HR^Ô>6
68BPBh ¾ =O6 6\476ÔHR¼XƒRK?^<,6= LN6¬8NI^<>J˜RK?B6¼ß
RJK6; E I7?6ƒ6@Ý ¾ LN68N8M<>VY? 46¬Bh ¾ 6 C öRKÔ>VKL
8ÕÔ>6
var
var E
68B C Bh ¾ 6Õ46
var
. 68N;@LM< ¾ BN<>VY?
2
Ü ?^86X‹ Ô>68
C- ¾ 68
Ü ?786X:^ Ô>6ö468A6?BN<>6=L
8ALN6ÔHRBN<Dˆ0 8
Ü ?78N6X^ ÔH6q4768œ6?BN<H6=LM8
Ü ?^86X‹ Ô>6Q468œ6?BN<>6=LM8A?7VY?¼?I^ÔH8
ܳ?786X:^ Ô>6Q468œ6?BN<>6=LM8D;@VY?7;@LN6=BN8
NAT
ܳ?786X:^ Ô>6ö468œ6?BN<>6=LM8:;@VY?7;@LN6=BN8D?7VY?¼?I^Ô
NAT
ܳ?786X:^ Ô>6ö468œ6?BN<>6=LM8œLM6ÔHRBN<20 8A;@VY?7;@LN6=BN8
-- , INT
Ü ?^86X‹ Ô>6ö4685Ç VVYÔ =O6 6?^8
,
!
9&CA3m; A9T BOOL
Ü ?786X:^ Ô>6ö468D;MF7R gH] ?768A46Õ;=RLMRK;@B$6= LN68
STRING
Ú " C
¾ 6Q4768œ6?786X:^ Ô>68 ¾ L$O6 4³$O6 ^7 ?7<H8
. RK?78¬Ô>6bBNR^ Ô>6RKI Ú ,+GW' Ô>6hBh ¾ RK# 6{468 ¾ LM<H?7;=< ¾ RKÔ>68o6@Ý ¾ LN68N8N<>VY?^8o;@VY?^8BN<>BNI7RK?BÔ>6¼ÔHRK?PY# RK# 6 j! 68B
q
4WO6 ;@LM<>B$` ,Û68QBd ¾ 68Q<ûX ¾ Ô O6 X£6?BNR^ Ô>68 R¼
BLMRJK6=LM8PI7?6£BLMRK4^I7;@BN<>VY? =ØYÚ JK6=LM8ÕI7?~ÔûRK?8Y# RK# 6¬;@VYX ¾ <HÔHR^ Ô>6
8VY?BDÔ>68A8MI7<>JRK?BN8qß
ÔH68œJ˜RL
<HR^ Ô>68œ8N;=RKÔûRK<>LN68œBd ¾ =O6 68 Rƒ
Ôä-0RK<H476q476QÔä- 6?786X:^ Ô>6Q46öBd 6
'
ÔH68ABNR^ Ô>6RKIÝIR¬
I7?6Õ4^<HX£6?78N<HVY?hX£V$4WO6 Ôû<H8O6 8 ¾ RL:I7?6‰0 VY?7;@BN<HVY?¼¾ BVK BNRKÔ>,6†BOOL,
46QBd ¾ STRING
6 ! - - ,
;U46?B ! - - , 9&CA3 ; A9T ;U476?B [ VYILqÔ>68:BNR^ Ô>6RKI&Ý{Ô>68:<H?747<û;@68 ¾ 6IJK6?B ¾ LN6?^4LN6ÕÔ>68DBh ¾ 68 'F! - - , VYI ; 46?B ˆBd ¾ 6 * BNRK?747<û8öGI6¬Ô>68xO6 Ô
O6 X£6?BN8P47I BNR^ Ô>6RKI ¾ 6IJK6?B ¾ LN6?^4LN6£Ô>68öBd ¾ 68 'B! - - , ' 9&CD3 ; A?j
T VYI)U; 46?B
=$
ˆBh ¾ 6 * *h(+* D8NRK;MF^RK?BöG$I6oÔH6ÕBh ¾ 6:;46?BDLN6 ¾ L$O6 86?B6ƒÔH68D6?78N6X^ÔH68hO6 ?$I7X =O6 L$O6 8$Û,Û682BNR^ÔH6RKI&Ý R ¾ ÔHI^8N<>6ILM8W47<HXƒ6?78N<>VY?7886=LMVY?BD47VY?7;öX£V&4³O6 ÔH<H8$O6 8 ¾ RL:I7?690ˆVY?7;@BN<>VY?hBVKBNRKÔ>6o46öBh ¾ 6£ß
* 22 * * *d(a* D 4 !967
,E6”4W=O6 JK6ÔHV ¾7¾ 6X£6?B¼476l8 & 8B$6 X£68 ¾ RLhÔHR*X =O6 BNFV$476 ! 4VY?7?76lÔH<H6I R*
Ôä-UO6 ;@LM<HBNILN6~46”XƒRK;MF7<û?68
R^ 8BL
RK<>B68$Œ ,E68E;@VY?BLMRK<H?B68!47IQ;=RKF7<>6=L!468`;MF7RLK# 688VY?B`4W$O6 ^7 ?^<>68 ¾ RL8VY?o<H?JRLM<HRK?B$,E68ÛV^ÔH<D#YRBN<>VY?78
46 ¾ LN6IJK68Õ4WO6 ;@VYI^Ô>6?B†46ÔûR ¾ L&O6 86=LNJRBN<>VY? 46Ôä-0<H?JRLM<HRK?B ¾ RLPÔHR{XƒRK;MF7<û?6R^ 8BL
RK<>B6 R¼
BL
RJK6=LM8oÔHR
X£V&47<2^7 ;=RBN<HVY?ö46.8VY?”=O6 BNRB ¾ RLEÔ>68ÇV ¾ =O6 L
RBN<>VY?78$Hk BL
RJK6=LM8`Ô>6.LMR*
) ?76X£6?B$' <ûԈ0 RKIB ¾ L$O6 86=LNJK6=LÔä-0<H?J˜RLM<ûRK?B
V¾ YILQ=O6 J&<>B6=L.ÔHR247<H8 ¾ RLM<>BN<>VY?Õ468!;@VY?BLMRK<û?B68Þ47Io;=RKF7<>6=LÞ468!;
F7RLK# 68Þ47RK?78!Ô>68<HX ¾ Ô
O6 X£6?BNRBN<HVY?78$' 4VY?7;
VY?hV7 BN<H6?BDI^?h?VYIJK6Ô|6?78N6X^ ÔH6Q4|- V^ ÔH<2Y# RBN<HVY?78œ46 ¾ LN6I7JK6
( DF w %C + _ˆ+^%('
; Ô8=-0RY# <>B.46 ¾ LNVYIJK6=LE'SRö
Ôä-0<û?B$=O6 LM<>6I7L!4Û-0I7?6œX 6g X£6DXƒRK;
F7<H?6Y' G$I6AÔä-0<û?JRLM<HRK?B`68NBo=O6 BNR^ ÔH<7R ¾ LE6 8 Ôä-0<H?7<uS
BN<HRKÔH<û8NRBN<>VY?h6=B ¾ L&O6 86=LNJ.O6 ¾ RL2Ôä- 6@Ý O6 ;=IBN<>VY?l468:V ¾ =O6 LMRBN<>VY?78$K 6PLMR ¾7¾ 6ÔHÔ>6öÔHR¬8BLMI7;@BNI7LN6Õ4|-0I7?76ÕXƒRK;MF^<H?6
¾ RLNBN<û;=I7ÔH<Q6= LN6ö8NRK?78 ¾ RLMRKXM6= BLN682RJK6;PI7?6Q86I7ÔH6öV ¾ =O6 LMRBN<>VY? 7P# Ú = +
MACHINE
VARIABLES
INVARIANT
INITIALISATION
OPERATIONS
END
[
M
v
I
U
OP PRE P THEN S END
Ú
;
0 $
=
V!
/:?76QXƒRK;MF7<û?6
)
VYIL ¾ LNVYIJK6=L2Ôä- =O6 BNR ^ÔH<H8N8N6X£6?B:46ÕÔä-0<H?JRLM<HRK?B ¾ RLDÔä-0<H?^<>BN<HRKÔH<H8MRBN<>VY?
<HÔ|8NI BD46 ¾ LMVYIJK6=LDG$I6
I
Ô>6 ¾ &L O6 47<H;=RB
/ W68Bœ8NRBN<H8 RK<>B &,.- V ¾ =O6 LMRBN<>VY?
L¾ $O6 86=LNJK6QÔä-0<H?JRLMU<HRK?B³8N<ÇÔ>6 ¾ L&O6 47<H;=RB
Ú OP
09 W68NBA8NRBN<H8 RK<>B
-; [
; [
( DF 0 $
-[
d +›%`" Š "&%('
,EVKLM8NG$I|-0I7?6£XƒRK;
F7<H?6
Ú Ö q68BöLMR ?W=O6 6 ¾ RLQI^?6£XƒRK;MF7<û?6
Ú
MachineA
MachineR
Ô>68 ¾ LNV ¾ LM<
=O6 BO6 8ö46oÔ-0<H?JRLM<HRK?B:476
4VY<>JK6?B 6=BLN6 ¾ L&O6 86=LNJ.=O6 68 ÛÜ ÔûÔ>68 ˆVY?B24VY?^;PR ¾7¾ RLMR >BLN6
468V ^Ôû< YRBN<>VY?78œ46 ¾ LN6IJK6ö8NI ¾7¾ Ô
MachineA
O6 X£6?BNRK<HLN68œÔ>VKLM8œ46QÔ-0IBN<HÔH<H8MRBN<>VY?47I ¾ LNVYIJK6ILA8NI7LÔH6öLMR ?6X£6?B
2#
7P# ON
*) "
2#
*) g
$ m0
*)
?#
7P# ,+ '
g]
9$6ÔHVY? Ç,`RK?V KÚ Ô>68qV ^Ôû< YRBN<>VY?78246 ¾ LN6IJK68 O6 ?W=O6 L&=O6 68 ¾ VYIL ¾ L&O6 86=LNJK6=LPÔä-0<H?J˜RLM<ûRK?Bq46
Ma4^ILMRK?BÔH6öLMR ?6X£6?B ¾ RL
8VY?B:Ô>68A8NI7<HJ˜RK?B68öß
chineA
MachineR
D, -0<H?7<>BN<ûRKÔH<H8NRBN<>VY?2R ^8BL
RK<>B6.4VY<>Bq=O6 BNR ^Ôû<>LÛÔä-0<H?J˜RL
<HRK?B|;@VY?7;@LM6=B`8N<KÔ>68E;@VY?BLMRK<û?B68 ;=ÔHRKI786
CONSTRAINTS
6=B ¾ LNV ¾ LM< =O6 B$O6 8 ;=ÔHRKI786
.8NVY?BAJ$LMRK<>68Qß
PROPERTIES
MachineR
-[=
condA
propA
propR
initR initA $#
invR
Ú D, - V ¾ =O6 LMRBN<>VY?oR ^8BLMRK<HB6.4VY<>B:=O6 BNR ^ÔH<>L`Ôä-0<H?J˜RLM<ûRK?B|;@VY?7;@LN6=BE6=BEÔä- O6 YRKÔH<>B$³O6 4768|L$O6 8NI7Ô>BNRBN8`46.Ôä- V ¾ =O6 LMRBN<HVY?
;@VY?^;@L 6=B6
6=BD46QÔ- V ¾ =O6 LMRBN<>VY?{R ‹8BLMRK<>B6 . qß
resR
Ö -[
$ condA
propA
propR
invA
invR
preA
preR
subsR
subsA
=KÙ
MACHINE
CONSTRAINTS
CONSTANTS
PROPERTIES
VARIABLES
INVARIANT
INITIALISATION
OPERATIONS
END
MachineA (parMac)
condA
constA
propA
varA
invA
initA
resA operation(paraOp) PRE preA THEN subsA END
Ú Ö
MACHINE
REFINES
CONSTANTS
PROPERTIES
VARIABLES
INVARIANT
INITIALISATION
OPERATIONS
END
MachineA
MachineR (parMac)
MachineA
constR
propR
varR
invR
initR
resR operation(paraOp) PRE preR THEN subsR END
Ú
,`R£XƒRK;MF^<H?6QR ^8BL
RK<>B6
,+
*)
,Û6öLMR ?76X£6?B:46
27
Q 2#
g $
MachineA
7
T invR
6;=<|68B resA=resR
R£J.=O6 LM< 76=L ¾ VYI7LœBVYIB68DÔ>68AV ¾ =O6 LMRBN<>VY?78
qRK?782;@6=BB6£46=LM?7< 6=LN6PV ^ÔH< YRBN<HVY?¼46 ¾ LN6IJK6 ^VY?xJKVY<>B2;=ÔHRK<>LN6X£6?B:G$I6oÔHR ¾ L&@O6 S;@VY?^47<>BN<>VY?x47I¼LMR ‰S
^?6Xƒ6?B†4VY<>B 6=BLN6 =O6 BNR ^ÔH<>6b8NI7<>JRK?BoÔHR ¾ L&@O6 S;@VY?74^<>BN<>VY?›46hÔä-0R ^8BLMRK;@BN<HVY? ÞT6;=<W<ûÔHÔHI78BLM6ƒÔ>6\;@VY?^;@6 ¾ B
4|-0R |RK< ^ÔH<û8N86X£6?Bœ46QÔHR ¾ L&@O6 S;@VY?74^<>BN<>VY?
.
'
D
0
Hb 2
( DF ( e + ' "{# [`\a +¶% "$‡Y"##_‰' " " a + `Z([E]!a "l% " +'Œ_ Z %
. RK?78£Ô>6 ¾ RLMR#KL
R ¾ F6 ¾ L&O6 ;^O6 46?BƒVY?*LN6XƒRLMG$I6bÔä-0R ¾7¾ RL
<>BN<>VY?›46\ÔûRl47VYI8^Ô>6\?³$O6 #YRBN<>VY? ¾ VYIL†Ô>68
q
46I&Ý 46=L
?7<,6= LN68¬V^ÔH<2#YRBN<>VY?^8ƒ46 ¾ LN6IJK6
A:VYI78\RKÔHÔ>VY?78¬<H;=<A4VY?^?6=L¬Ôä-0<û?BNI7<HBN<>VY?š46xÔûR¶8N<2#Y?^<27^;=RBN<>VY?
46\;@6=BB6b47VYI8^ Ô>6?W$O6 #YRBN<HVY?š47RK?78oÔ>68ÕV‹ÔH<2#YRBN<>VY?78P46 ¾ LN6IJK6¬Ôû<
=O6 68oRKI LMR*)?76X£6?B$!/2?6 ¾ LM6Xƒ<,6= LN6
<H?B6=L ¾ L&=O6 BNRBN<>VY?„46*ÔHR©?³O6 ;@68N8N<>B$O6 476›;@6=BB6š4VYI8‹ Ô>6 ?W$O6 Y# RBN<>VY?„68NB›ßqI7?5LMR*
)
?6Xƒ6?B~?6*4VY<>B ¾ RK8
¾ LN6X<,6= LN6P?W$O6 Y# RBN<>VY? V6=g BLN6o6?l4³O6 8NRK;=;@VKLM4 46I&Ý<,6 X£6†?³$O6 Y# RBN<>VY? DRJK6;†8VY?lR^ 8BLMRK;@BN<>VY?@Sq. RK?782;@6=BB6
<H?B6=L ¾ L&=O6 BNRBN<>VY?”86PBLNVYIJK6†ÔHR47VYI8^ Ô>6Õ?W$O6 Y# RBN<HVY?`[ VYI7LqRKÔûÔ>6=L ¾ ÔûI78AÔ>VY<H?x47RK?782Ôä-0<H?BNI7<>BN<>VY?@7' ?VYI78DRKÔûÔ>VY?78
) ?6Xƒ6?B # Ù 6=B?VYI78;@VY?78N<H4W=O6 LN6=LMVY?78Ô>68;MF6Xƒ<û?78 ¾ RLM;@VYI7LMI78 ¾ VYIL
¾ LN6?^4LN6hI7?š6@Ý&6X ¾ Ô>6¼476¼LMR*
RLNLM<HJK6=LDRKIhL&O6 8NI7ÔHBNRBQß
8
D# 27
+ 2 x := x -2
,.-0R ¾^¾ HÔ <H;=RBN<>VY?h47x6Q:=
;@6=BxB6P
8NI ‹8BN<>BNIBN<>VY?b8N< Y?7< 76öG$I|-0<HÔ(68B ¾ YV 8N8N< ^Ô>6q8VY<>BA4|-0R VYIB6=LDVYI{46QLN6=BLMRK?^;MF6=L
R
;@6;=<E68BDI7?6ö8NI ^8BN<>BNIBN<HVY?\?7VY?¼4³=O6 B6=LMXƒ<H?^<H8B6Q47IbB ¾ 6
x
CHOICE x := x + 2 OR x := x - 2
P
d
2
ÖYØ
7/2?hLMR*)?6Xƒ6?BD476Q;@6=BB6P8 ¾ O6 ;=<27‹;=RBN<>VY?
Ug
¾ VYILNL
RK<>B 6=BLM6ß
R JK6;oI7?h<H?J˜RLM<ûRK?Bœ46Õ;@VYÔûÔHR K6 Ü ?{;@VY?78N<H4W=O6 LMRK?BDy;@:=
6=BBy6o+8 ¾ 1O6 ;=< ^;=RBN<>VY? ^<HÔ RKIBA4³O6 X£VY?BLN6=L:4|I -0
R ¾ yL 6=8 2 * xÖ ˆ6?¼?6Q;@VY?78M<H4³=O6 LMRK?B:G$I6QÔHR
¾ RLNBN<H6Q8NILAÔ>68A;@VKL ¾ 8A4|- V ¾ =O6 LMRBN<HVY?¼6=BA6?¼?7VKBNRK?B WÔä-0<û?JRLM<HRK?Bœ47IbLMR ?6Xƒ6?B 2ß
END
27
Ü ?{4³=O6 JK6Ô>V ¾7¾
@' 0
#
X;
y := y + 1 x := x + 2 x := x - 2 I
RK?BDÔHR£8NIP^8BN<>BNIBN<HVY?\476Õ;MFVY<>Ýlß
y := y + 1 x := x + 2 I x := x - 2 I
$
$' $ - [ *)
2
Vg
$
TW6=BB6Q6@Ý ¾ LN68M8N<>VY?¼8=-0<û?B6=L ¾ L 6=B6 ¾ RLQß7Ô>68D46I&Ýh;MF6Xƒ<û?78 ¾ VY8N8N< ^ÔH68W47VY<>JK6?B 6=BLM6ÕJRKÔH<H468 ܳ?¼;@VY?BN<>S
?$I7RK?B:Ô>6Q4³=O6 JK6Ô>V ¾7¾ 6X£6?B 7VY?hV 7BN<H6?BQß
y := y + 1 x := x + 2 I x := x - 2 I
; y y:=:=yy++11 x :=xx:=+x2+ I2 y := yx +:=1x x- 2:=I x - 2 I
*)
8
?g
T 6QG$I7< ¾ 6IBA8=-0<H?B6=L ¾ L&=O6 B6=L ¾ RLQß7ÔHR£8MI ^8BN<>BNI7BN<>VY?b46QLMR ?76X£6?BA47VY<>B 6=BLN6P;@VYFW=O6 LN6?B6†RJK6;ÕÔ-0I7?6
W
VYI¼Ôä-0RKI7BLN6QRKÔ>B6=LM?7RBN<HJK6Õ46QÔä-0R ^8NBLMRK;@BN<>VY?
D = ! 1 ! 46 1 * ,`RAX£V&4³O6 ÔH<H8NRBN<>VY?ö4768Û8 &8Bc6 X£68E6?:!~IBN<HÔH<û86ÔûRœ?VKBN<>VY?Q46.XƒV$47I^ÔHRLM<>B$O6 ¾ VYILÛ<H8VYÔH6=LÛÔ>68Û;@VY?BLMRK<H?B68
R7^?¬4|- 6?L&O6 4^I7<>LN6DÔûRÕ;@VYX ¾ ÔH6@Ý&<>B$O6 Fq
. RK?78³ÔH6m^ IB³46:;@L&=O6 6=Lœ46XK# LNVY8N868W8 ¾ O6 ;=<2^7 ;=RBN<HVY?78 BVYI7B³6?\IBN<HÔH<û8NRK?B
ÔHRPX£V$4^I7ÔHRLM<>B$O6 'ÔûRÕX›=O6 BNFV&46?! IBN<HÔû<H86A468WX O6 ;=RK?7<H8NXƒ68W476:;@VYX ¾ VY8N<>BN<HVY? ¾ RLWÔ>68³;=ÔûRKI7868W8NI7<>JRK?B68:ß
SEES
USES
INCLUDES
EXTENDS
PROMOTES
IMPORTS
.
#
$' E$ #
2
=
qRK?78`Ô>68 ¾ RL
R KLMR ¾ F68Û8MI7<>JRK?BN8 ÔH68ÛL 6 YÔ>6846ÞJ&<H8N< ^<ûÔH<>BO6 Ù 6?BLN6 I7?Q;@VYX ¾ VY8MRK?B
6=BEI7?Q;@VYX£S
V¾ Y8NRK?B
4³O6 ^?7<H8N8N6?B ¾ VYI7L`;MF^RKGI6;@VY?78BN<HBNI7RK?B ˆJRLM<HR ^Ô>6 Œ6?786X ^Ô>6 ˜;@VY?78BNRK?B6W6=BV C1
O6¾ LMRBN<>VY?^8 `46
=
C2
Ô>68ÞXƒ
V$468 4|-0RK;=; 68³R ¾7¾ ÔH<H;=R ^Ô>68!47RK?^8.Ô>68Þ;=ÔHRKI78N68.46A;@VYX ¾ VY8N<>BN<HVY?£46
VYIL 468 4VY?7?W=O6 68 YVY?
C2
47<H8NBN<H? YI6œÔä-0RK;=; 68W6?Ô>6;@BNI7LN6D86I7ÔH6 K6?Ô>6;@BNILM6bO6 ;@LM<>BNILM6AVYI£6?šO6 ;@L
<>BNILN6D8N6C1
I7Ô>6 VYIL³4768.V ¾ =O6 LMRBN<>VY?^8
VY?£47<H8NBN<H? YI6WÔä-0RK;=; 68 RKI&ÝoV ¾ =O6 LMRBN<>VY?78.476;@VY?^8NI7Ô>BNRBN<>VY? Ô>68!V ¾ =O6 L
RBN<>VY?78.4VY?BÞÔHRq8 ¾ O6 ;=< ^;=RBN<HVY?ƒ?6X£VS
47< ^6 ¾ RK8 Ô>68ÞJRLM<HR ‹Ô>68Þ46DÔHRöXRK;MF7<H?76 6=B RKI&Ý£V ¾ =O6 LMRBN<>VY?^8 46DXƒV$47< ^;=RBN<>VY? K,Û68 L 6 YÔ>68 476AJ$<û8N< ^<HÔû<>BO6
X£VY?BLN6?BDGI^RBLN6QB ¾ 68A46öJ&<H8N< ‹<HÔH<>B$O6 C`R ^ÔH6RKI Ú
,E68¬;@VY?^8BN<>BNI7RK?BN8 ¾ 6I7JK6?B 6=BLN6”J$<H8M< ^Ô>68ƒ;@VYXX£6lI^? 6?786X ^Ô>6xVYI I^?6{JRLM<HR ^ÔH6{47RK?78\I7?
<û?JRLM<HRK?B Ôä-0<H?J˜RL
<HRK?Bœ?6QXƒV$47< 76 ¾ RK8AÔ>68œJRKÔ>6IL
8œ468œJRLM<HR ^Ô>68 WGI7<Ç68NBDRK?7?VKB$O6 y
,E6Q;=RK8A468JRLM<HR ^ÔH68VYIbV ¾ =O6 LMRBN<>VY?78D68B ¾ ÔHI78;@VYX ¾ Ô>6@Ý$6qVY?¼4^<>LMRoGI|-0I^?6qJ˜RLM<ûR ^Ô>6268BœJ$<û8N< ^Ô>6
6=B:?VY?¼X£V&47< ^R ‹Ô>62;@6PGI7<Ç68NBDRK?7?VKB$O6 v
ܳÔHÔ>68 ¾ 6IJK6?B 6=BLN6QJ&<H8N< ‹Ô>68W6=BDX£V&47< ^R ^ÔH68W;@6PGI7<Ç68NBDRK?7?VKB$O6 ‚
,Û68:V ¾ =O6 LMRBN<>VY?^8 ¾ 6IJK6?B 6=BLN6†R ¾7¾ 6Ô =O6 682Ô>VKLM8NG$I|- 6ÔHÔ>68D8VY?B:J$<û8N< ^Ô>686=B2?VY?lX£V$4^< ^R ^Ô>68œ4^RK?78DÔ>6P;=RK8
V Ih6ÔHÔH68A?6ÕX£V&47< ^6?B ¾ RK8AÔûR†J˜RKÔ>6I7LD468œJRLM<HR ^ÔH68œ46ÕÔHR£XƒRK;
F7<H?6öVYIxÔ>VKLM8NG$I|- 6ÔHÔH68W8NVY?BAJ&<H8N< ^Ô>68W6=B
X£V&47< ^R ‹Ô>68
'
27
8#
$7
8#
H
h
@
27
27 $
( SEES
H
27 9g
'
2
:g
2
Lg
D7
'
27 >[
[
$'
27
D7 $$ #
2
:
2
2
27 D
# 2
: '
$'
,`R~;=ÔHRKI786
¾ 6=LMX£6=B R~I7?š;@VYX ¾ VY8NRK?Bƒ46bJKVY<>LƒI7?6h<H?^8BNRK?7;@6h46¼XƒRK;
F7<H?6 ÞÜ ÔûÔ>6 ¾ =6 LMXƒ6=B
4|-0RK;=;‹O6 46=LDRKIÝ\SEES
;@VY?78BN<HBNI7RK?BN846öÔHRoXƒRK;
F7<H?62J$I7628NRK?^8 ¾ VY8N8M< ^<HÔH<HB:O6 462ÔH68WXƒV$47< 76=L ,`RP;=ÔûRKI786
SEES
qRK?78
¾ 6=LMX£6=B†46bJKVY<>L£Ôä-0<H?78NBNRK?7;@6\ÔûR ¾ ÔHI78 ¾ LNV&;MF6b47RK?78†Ô>6 KLMR ¾ F76\46h4WO6 ¾ 6?747RK?^;@6b4^I ¾ LMV 6=B
#
2
D7 E
H !U .
{V$476Õ46öJ&<H8N<2^<ûÔH<>BO6
Z
A
.
268N;@L
< ¾ BN<>VY?
;@VY?78NBN<>BNI7RK?BD?VY?hJ&<H8N< ‹Ô>6
;@VY?78BN<HBNI7RK?BDJ$<H8M< ^Ô>6
;@VY?^8BN<>BNI7RK?BAJ&<H8N< ^ÔH6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öJRLM<HR ^ÔH6qI7BN<HÔH<H8$=O6 6Q47RK?^8œI7?6Q8NI ‹8BN<>BNIBN<>VY?
ÔHR†JRLM<HR ^Ô>6q68B:X£V$4^< ^R ^Ô>6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öV ¾ =O6 LMRBN<HVY?{R ¾7¾ 6Ô =O6 6Õ47RK?^8œI7?6Q8NI ‹8BN<>BNIBN<>VY?
Ôä- V ¾ =O6 LMRBN<HVY? ¾ 6IBAX£V&47< 76=LœÔ>68AJ˜RLM<ûR ^Ô>68œ46Q8NRXƒRK;MF7<û?6QR ^8BLMRK<HB6
;@VY?^8BN<>BNI7RK?BAJ&<H8N< ^ÔH6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öJRLM<HR ^ÔH6qI7BN<HÔH<H8$=O6 6Q47RK?^8œI7?6Q8NI ‹8BN<>BNIBN<>VY?
ÔHR†JRLM<HR ^ÔH6q?Û- 68B ¾ RK8DXƒV$47< ^R ^Ô>6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öV ¾ =O6 LMRBN<HVY?{R ¾7¾ 6Ô =O6 6Õ47RK?^8œI7?6Q8NI ‹8BN<>BNIBN<>VY?
;- 68B:I^?6öV ¾ =O6 LMRBN<>VY?xGI7<|?76QX£V$4^< 76 ¾ RK8AÔ>68AJ˜RLM<ûR ^Ô>68œ46Q8NRXƒRK;MF7<û?6
R ^8BLMRK<HB6
27
Ö7
7P# " Ú
2
2
2 '
27 '
2 '
27
8
8
8
D7 '
8
@'
@'
@'
@'
# -C ¾ 6Q46öJ$<û8N<2^<HÔû<>BO6
86=LMRl;@6ÔHÔ>6\<HX ¾ VKLNB$=O6 6 ¾ RL
6=Bo?7VY? ¾ RK8
Ôä- 6@Ý&6X ¾ Ô>6\8NI7<>JRK?B
Ú ÕÔûR{XƒRK;
F7<H?6¬J$I6 ¾ RL
BVYIB68DVYI{;@6ÔHÔ>68D<HX ¾ KV LNB=O6 68 ¾ RL
^,ER†L 6 YÔ>6o;@VY?7MA
8N<H8NB6 Rƒ47<>LN6QG$I6QÔHR£XRK;MF7<H?76öJ$IMD
6Õ68BDÔä-0<H?^8BNRK?7;@6
<HX ¾ VKLNB$=O6 6 ¾ RLhÔ>6 ¾ ÔûI78 ¾ LNV&;MF6 ¾ ME
RLN6?Bh46~ÔHR*XƒRK;MF^<H?6~GI^<:JKVY<HB
? ¾ 6IBhRKI78N8N<2LN6?VYXX£6=LhÔ>68
XƒRK;
F7<H?68œJ&I68
E$ #
$
$ -
ME
MB
MD
imports
MA
MB
sees
" T2LMR ¾ F76Q46Q4³O6 ¾ 6?747RK?7;@6Q4|-0I^? ¾ LNVH6=B !
,E68qL$6$ #YÔ>68ö46†J$<û8N<2^<HÔû<>BÕ
O6 46†ÔHR¬;=ÔûRKI786
8NVY?Bö4W$O6 ^7 ?7<H6824^RK?78qÔ>6PBNR‹Ô>6RKI Ú $ VI~
ÔHR¬XRK;MF7<H?76
JKVY<>BAÔHRoXƒRK;MF^<H?6
F
U; Ô(6@Ý<H8B6öI7?62LNSEES
68BL
<H;@BN<>VY?b8NILœÔHR†;=ÔHRKI78N6
ß&6ÔHÔ>6q?|- 68B ¾ RK8BL
RK?78N<>BN<>JK6
MA
JKVY<>BI7?6qXƒRK;MF^<H?6
G$I7<‹JKVY<>BSEES
I7?6qXƒRK;MF7<û?6
XƒRK<û8
?6
;- 68BS R˜ S47<HLN6öGI|-0I^?62XMB
RK;MF7<H?76
MA
MB
MC
MA
JKVY<>B ¾ RK8qÔHRXRK;MF7<H?76
Ç Ü ?xVYIBLN6†I7?6oXƒRK;MF7<û?6ÕJ&I6†4VY<>B:6=g BLM6†<ûX ¾ VKLNB=O6 6 <H?78NBNRK?7;=<HRBN<>VY? ¾ RLqÔHR
;=ÔHRKI78N6
W47RKMC
?78œÔ>6 ¾ LNVH 6=BX!X
IMPORTS
( INCLUDES, EXTENDS et PROMOTES
,E6†Ôû<>6?
6?BLN6ƒI^?x;@VYX ¾ VY8NRK?B
XƒRK;MF^<H?6†VYI”LMR*) ?6Xƒ6?B :6=BöI7?”;@VYX ¾ VY8NRK?B
6¾ =LMX£6=BƒINCLUDES
4|-0<û?7;=ÔHILN6\I7?6h<H?78NBNRK?7;@6¼46
47MA
RK?78
R^7 ?š46¼;@VY?78BL
I7<>LN6bI7?š;@VYX ¾ VY8NRK?B ¾ ÔHI^8
MB
JKVYÔHI7X<H?6I&ÝDBVYI7BÛ6?VY# RLM4^RK?BEÔH68ÛRJRK?BNRK# 6MB
8!468ERK8 ¾ 6;@MA
BN8E46.X£V&47I7ÔûRLM<>BO6 E:
k I^8N8N<KÔHRœ;=ÔHRKI^86 EXTENDS
¾ VY8N8$6 46”Ô>68\X 6g X£68 ¾ LNV ¾ LM< =O6 B$O6 8hG$I6xÔûR¶;=ÔHRKI78N6 INCLUDES 6=BhR VYIB6”ÔHR ¾ LNVYX£VKBN<>VY?©46xBVYIB68
Ô>68V ¾ =O6 LMRBN<>VY?78b468\<H?78BNRK?^;@6846lXƒRK;MF7<û?68š=O6 B6?74^I68 <H?7;=ÔHI78N68 -q
. RK?78\Ô>6x;=RK8¬VI Ô- VY? ?6xJK6IB
¾ RK8 ¾ LNVYX£VYI7JKVY<>LPBVYI7B68oÔH68ÕV ¾ =O6 LMRBN<HVY?78£4|-0I7?6\XƒRK;MF^<H?6¬4^RK?78PI^?¶;@VYX ¾ VY8NRK?B£R^ 8BLMRK<>B XƒRK;MF^<H?6
Ú
ÖÚ
Lk
!
TÔHRKI78N68A46
TWVY?78BN<>BNI^RK?BN8A476
!RLMRKX 6=BLM68
Ü ?^86X ‹Ô>68
TWVY?78BNRK?B68
.RLM<HR ‹Ô>68
¾ =O6 LMRBN<>VY?^8
[ M
Z -
CONSTRAINTS
Z
PROPERTIES
Z
INVARIANT
Z
Z
Z
OPERATIONS
Z
Z
Z
A
A
$ Zq<H8N<2‹<HÔH<>B$qO6 468œ6?BN<>BO6 8D4|-0I7?76QXƒRK;MF7<û?6öJ$I76
VYI LMR*)?6X£6?B ÕXƒRK<H8Õ;@6=LMBNRK<H?68†<HÔ 0 RKIBo4VY?7;I7BN<HÔH<H86=LPÔHR¼;=ÔHRKI78N6
6=B ¾ LNVYX£VYIJKVY<>LoÔ>68
INCLUDES
V ¾ =O6 LMRBN<>VY?^8 ;@VY?78N<û4³=O6 L$=O6 68³RJK6;:ÔHRö;=ÔûRKI786
Y ,Û68³;=ÔHRKI7868
6=B
8NVY?B
BLMRK?78M<>BN<>JK68D;- 68NBS R˜ S47<>LN6†GI76Õ47RK?78:Ô>6P;=RKPROMOTES
8:VIx
I^?6ÕXƒRK;
F7<H?6 MA GI^INCLUDES
<E<H?7;=ÔûIBœVYI =O6 B6?7EXTENDS
4lI7?6PXƒRK;MF7<û?6
GI^<_0 RK<>BqÔHRbX 6g X£6ƒ;MF7VY86 ¾ VYIL
RKÔ>VKL
8
¾ 6IBqIBN<HÔû<H86=L:ÔH682;@VY?^8BN<>BNI7RK?BN8ö46 MC ;@VYXƒX£6
MB
;@6I&ݼ46
7,Û68:L$6$ Y# Ô>68246QJ&<H8N<2^ <ûÔH<>MC
B2O6 4768D;=ÔHRKI7MA
8N68
6=B
8VY?B24³O6 ;@LM<>B68247RK?78
EXTENDS
Ô>6öBNR^ ÔH6RKMB
I¼8NI7<>JRK?B C`R Ú Ù 8NRK;MF^RK?B2GI6
<H?7;=INCLUDES
ÔHIB
VYI
=O6 B6?74
MA
MB
MA
MB
TœÔHRKI7868œ46Lk
TWVY?78BN<>BNI^RK?BN8A476 !
[ RLMRKXM6= BLM68 INCLUDES PROPERTIES INVARIANT OPERATIONS
!
Ü ?^86X‹ Ô>68
Z
Z
Z
TWVY?78BNRK?B68
Z
Z
Z
Z RLM<HR‹ Ô>68
.
Z
A
- ¾ =O6 LMRBN<>VY?^8
Ú Ù 2
Z <û8N<2^ <HÔû<>B2O6 468A6?BN<>B$O6 824|-0I7?6öXƒRK;
F7<H?6Q<û?7;=ÔHI786qVYI©=O6 B6?74^I6
Ú
((
USES
'
,EVKLM8NG$I|-0I7?h;@VYX ¾ VY8NRK?BA<H?7;=ÔHI7B ¾ ÔHI78N<>6I7LM8 <H?^8BNRK?7;@68A46QXRK;MF7<H?76 ;=ÔHRKI786
Ô>68œXƒR˜S
M; F^<H?68Q<H?^;=ÔHI7868 ¾ 6IJK6?B ¾ RLNBNR K6=L†468Q4VY?7?W=O6 68P46ƒÔä-0I7?76†4Û- 6?BLN66ÔHÔ>68 ¾ RLÕINCLUDES
I^?~ÔH<>6?
8NILQÔûR
68BbG$I|-0<HÔ ¾ 6=LMXƒ6=B¬4|USES
-0IBN<ûÔH<H86=LƒÔ>68
XƒRK;
F7<H?6 ¾ LNV ¾ LM< =O6 BNRK<HLN6x468\4VY?7?W=O6 68 W, -0RJRK?BNR K6¶4^I ÔH<>6?
USES
?Û- 68B ¾ RK8œBL
RK?78N<>BN<>JK6
¾ RLMRKX 6=BLM68 ˆVKLMX£6ÔH8œ476QÔHR£XƒRK;MF^<H?6QIBN<HÔû<H8=O6 6 C`R Ú =Ø ‹,`Rƒ;=ÔHRKI786
#
M m0
!
TWVY?78BN<>BNI^RK?BN8A476
!RLMRKX 6=BLM68
Ü ?^86X ‹Ô>68
TWVY?78BNRK?B68
.RLM<HR ‹Ô>68
¾ =O6 LMRBN<>VY?^8
[ M
Z -
E
#
Lk
TÔHRKI78N68A46
CONSTRAINTS
PROPERTIES
Z
Z
Ú =Ø
USES
Z
INVARIANT
Z
Z
Z
Z2<H8M<2^<HÔH<HBqO6 4|-0I7?76qXRK;MF7<H?76QIBN<HÔH<H8$=O6 6
Z
OPERATIONS
Z
Z
A
>=
Ö
( E w‚†kƒdön£z
" ' Qd\k‚ knPgPz
,E6Ôû<>6?
6?BLM6I^?6W<ûX ¾ ÔHRK?BNRBN<>VY?
6=BÞI7?6XƒRK;
F7<H?6
¾ 6=LMXƒ6=B4|-0I^?6 ¾ RLMB4|-0<û?78S
47RK?^8œÔ>6 ¾ LNV 6=Bœ6=BD4|-0RKIMA
BLM6 ¾ RLNBA46Q4^<H8 ¾ VY86=LMB
6?BN< 6=LM6X£6?B2468A86=LMJ$<H;@68D46
BNRK?7;=<>6=L:ÔHR£XƒIMPORTS
RK;MF^<H?6
GI^< ¾ 6IJK6?B 6=BLMMB
6 ¾ LNVYXoI78 ¾ RLÔûRo;=ÔûRKI786
;@VYXƒXƒ6 ¾ VYILÔä-0<H?^;=ÔHI78N<>VY? Y,.-0IBN<HÔH<û8NRBN<>VY?
MB
468o86=LNJ&<H;@68†46
68BoL&O6 RKÔH<H8$=O6 6 RxBLMRJK6=L
8£ÔäPROMOTES
-0R ¾7¾ 6Ô 468oV ¾ =O6 LMRBN<HVY?78†46
8NRK;
F7RK?B£G$I6bÔä- VY? 8N6
MB
MB
ÔHV Y<H;=<>6ÔÇ6=BDG$I6ÕÔ>68AV ¾ =O6 LMRBN<>VY?78:8VY?B:6@Ý O6 ;=IB$=O6 68 ¾ RL:Ô>6ILDR ¾7¾ 6Ô ˆ6ÔHÔH68A?6
¾ ÔHRK;@6P47RK?78AÔ>6Q;=RK47LN6Õ47I
8=- 6@Ý O6 ;=IB6?B ¾ RK8PRKI7BVYXƒRBN<HG$I6X£6?B†;@VYXX£6\ÔH68 =O6 J.O6 ?6X£6?BN8ƒÔ>VKLM8NG$I6\Ô>6IL YRL
46¬68NBoJ$LMRK<>6 !RL
;@VY?78$O6 G$I6?BÔHR”XƒRK;MF^<H?6¼G$I7<<HX ¾ VKLNB6b;@VY?BL VYÔH6¼Ô>68£X£V K6?^84|-UO6 ;@LM<>BNI7LN6h468£4VY?7?W=O6 68¬X£V$4^< ^R ^Ô>68
46£ÔHRbXƒRK;
F7<H?6£<HX ¾ VKLNB$=O6 6 |,.-0<ûX ¾ VKLNBNRBN<>VY? ¾ 6=LMX£6=Bö46£8BLMI7;@BNI7LN6=LöI7? ¾ LNV 6=B 6?~;@VYI7;
F68 |6?~6 ‰S
ˆ6=B†Ô-0<HX ¾ ÔHRK?BNRBN<>VY?›4|-0I7?*X£V&47I7Ô>6\8=-0<HX ¾ Ô
O6 X£6?B6 ¾ RL†<ûX ¾ VKLNBNRBN<>VY?›4|-0RKIBLN68£X£V&47I7ÔH68ÕV ÇLMRK?Bƒ468
86=LNJ&<H;@68†46 ¾ ÔHI^8 ^RK8†?7<HJK6RKI P-0RKI7BLN6 ¾ RLNB†Ô>6h;@VYX ¾ VY8NRK?B†G$I7<?|- 68B ¾ RK8†<HX ¾ VKLMBO6 VYI6hI7? L VYÔ>6
¾ RLNBN<û;=I7ÔH<>6=L RKI\86<H?¬4|-0I7? ¾ LNV 6=B ß&<HÔ68NBWÔ>6 ¾ VY<H?B³4|- 6?BL&=O6 6ö4628VY?¬6@Ý O6 ;=IBN<>VY? &,E6:BNR ‹Ô>6RKI¬8MI7<>JRK?B
CR Ú K q4WO6 ;@LM<>BPÔHR\J$<H8M< ^<HÔH<HBo
O6 468ö;@VY?78BN<HBNI7RK?BN8Õ4|-0I7?6£XƒRK;
F7<H?6£<HX ¾ VKLNB$=O6 6
RhÔä-0<û?B$=O6 LM<>6I7Lq4768
MB
;=ÔHRKI78N68A4|-0I7?6QXRK;MF7<H?76
Ug
0
I
i! #
H
Q
Hg
@
#
H V!
+[
27 $' $0
:
Hg
@ TÔHRKI^868œ46Lk
b
1.
H !
2
MA
TWVY?78BN<>BNI^RK?BN8A476 !
PROPERTIES VALUES INVARIANT
[RL
RKX 6= BLN68
Ü ?786X:^Ô>686=BqTWVY?78BNRK?B68qTVY?7;@L$6= B68
Z
Z
Z
TWVY?78BNRK?B68mkX^ 8BL
RK<>B68
Z
Z
Z RLM<ûR^ Ô>68 kX^ 8BLMRK<HB68
.
Z
Z RLM<HR‹ Ô>68:TWVY?7;@LE6= B68
.
Z
=
O6
M
L

R
N
B
H
<
Y
V
7
?
8
-¾
Ú K q
Z <H8N<D^ <HÔH<>B$qO6 468œ6?BN<>BO6 8:4Û-0I7?6QXƒRK;
F7<H?6Q<HX ¾ VKLMB=O6 6
OPERATIONS
Z
A
"%&"!
!
$
$
,`RƒX =O6 BNFV&46 68B ‹RK8=O6 6P8NILAI^?6Q8O6 XƒRK?BN<HGI76Q6=BDI7?6Q8 $?BNR˜Ý$6PXƒRBNF³O6 XƒRBN<HG$I68:BL 68 ¾ L&O6 ;=<H8N68
Ü ÔûÔ>6 ¾ 6=LMX£6=BœÔ>6q4W=O6 JK6Ô>V ¾7¾ 6X£6?Bœ4|-0R ¾7¾ Ôû<H;=RBN<>VY?78 ¾ LNVYIJ.=O6 68 7,Û6ö; &;=Ô>6ö46q4³=O6 JK6Ô>V ¾7¾ 6X£6?B ;@VY?78M<H8B6
Rƒ4WO6 ^?^<>LD47RK?78DÔä-0<H?J˜RLM<ûRK?BAÔ>68 ¾ LNV ¾ L
<
=O6 BO6 8 ;@VY?BLMRK<H?B68:XƒRBNFWO6 XRBN<HGI768 œG$I6ÕÔ>6P8 $8NB 6Xƒ6P4VY<>BDLN68S
¾ 6;@B6=L (6=B R O6 ;@LM<>LN6†Ô>68:V ¾ =O6 LMRBN<>VY?78qG$I7< ‰6=LNVY?B¼=O6 JKVYÔûI6=LöÔä- =O6 BNRBQ47Ix8 $8B 6X£6 |,E6824^< D=O6 LN6?BN8qX£V&4 6Ô>68
;@VY?78BL
I7<>BN8E4^RK?78`;@6=BB6V ¾ BN<ûGI6 ‰VY?BR ¾^¾ RLMR >BLN6 KLMRK47I6ÔHÔH6X£6?B ¾ RLEL
R ?6X£6?B`I7?oX£V&4 6Ô>6³;@VY?^;@LN6=B
BLMRK47I^<H8N< ^ÔH64^RK?78³I^?ÔHRK? YR K6q46 ¾ LNV KLMRKXƒXRBN<>VY?BL
RK47<>BN<>VY?7?76ÔBVYIBW6?¬XƒRK<û?B6?7RK?B³ÔH6DLN68 ¾ 6;@BW468
¾ LNV ¾ LM<
=O6 BO6 8.468.X£V&4 6Ô>68ÞR ^8NBLMRK<>BN8 TW6 ¾ 6?74^RK?B 6ÔHÔ>6œ8VYI (LN6œ4|-0I^?oXRK?7GI76476A;@VYX ¾ L&O6 F6?78M<>VY?£46œÔHR
O6 4|-0R ¾^¾ LN6?BN<H8N8NR K6P6=B24|-0I7BN<HÔH<H8NRBN<HVY? 7,Û682X O6 ;=RK?7<H8NXƒ68
¾ RLNB24682?VY?x<û?7<>BN< O6 8:6=B24VY?^;Õ4|-0I7?76P47< ¬;=I7Ô>BP
46\;@VYX ¾ VY8N<>BN<>VY? 468PXRK;MF7<H?768QVY?B¶=O6 B$¼
O6 ;MF7VY<H8N<H8 ¾ VYI7LPÔHR ¾ L$O6 86=LNJRBN<>VY?*468 ¾ LN6IJK68ÕXRK<H8P<ûÔH8Q8VY?B
<H?7F^R ^<>BNI6ÔH8 ¾ VYILAÔHR£8BL
I7;@BNILMRBN<>VY?{468A<H? ˆVKLMXƒRBN<HVY?78
$7
E' 2
8# #
-0
$
#
_0
)
80
$ c
g] -#
$'
8b
$
#
$ *)
b
c
!
ÖKÖ
Ö
+
.
#
L0
0
Q
qRK?78\Ô>68 ¾ RLMR KLMR ¾ F68 ¾ L&O6 ;‹O6 46?BN8h?VYI78¬RJKVY?78b;MF7VY<H8N<DÔûR X =O6 BNFV&46 ˆVKLMX£6ÔûÔ>6¼RK4³O6 GI^RB6 R ;@6
BLMRJ˜RK<HÔ^46ALN6;
F6=LM;MF76 :VYI78ÞLMR ¾7¾ 6Ô>VY?^8ÞGI6AÔH68.X =O6 BNFV&468 ˆVKLMX£6ÔûÔ>68!6=B 86Xƒ<>S ‰VKLMXƒ6ÔHÔ>68!VY?B ;MF7RK;=I^?6
Ô>6IL
8¬RJ˜RK?BNR K68x8MRK?78bGI|-0RKI^;=I7?6”?6 ¾ 6=LMXƒ6=BB6?Bh46”L&O6 ¾ VY?74LN6”;@VYX ¾ Ô 6=B6Xƒ6?B{RKIÝ Ç68VY<H?78\47I
4W=O6 JK6Ô>V ¾7¾ 6X£6?BDÔ>V Y<û;=<>6Ô
#
-0
# Q
-!
!
`A
!
"!
%
#
!
&!
!
$
!
!
!
!
- &!
! $!
!
- &!
0
: 2# 4
$
E, 68o?7VKBNRBN<>VY?78o86Xƒ<uS ˆVKLMX£6ÔHÔH68Õ8VY?B£<H?BNI^<>BN<>JK68Q6=B†8 &?BNFW=O6 BN<ûGI68†XƒRK<û8PRKX ^< YI 68†RKI›;@VY?BLMRK<HLN6
468:X =O6 BNFV$4768 ˆVKLMX£6ÔHÔH68AGI^<Û8VY?B ¾ L&O6 ;=<H8N68A6=BDL
< KVYILN6I78N68AXƒRK<H8:;@VYX ¾ Ô>6@Ý&68 ÇT68D46I&ÝhR ¾7¾ LMV$;
F68
8VY?BÞ;@VYX ¾ Ô O6 X£6?BNRK<>LN686=BÞRKI7;=I7?6468!46I&ÝÕ?Û- 68B RqR ^RK?^4VY?7?6=L!;=RLÞ<HÔ68NB<H?B=O6 LN68N8NRK?B.46;@VYX ‹<H?6=L
Ô>68:RJRK?BNR K68qLN68 ¾ 6;@BN< ˆ8A476PÔä-0I7?76ö6=B:46oÔä-0RKIBLN6 (9&6 ¾ VY86ÕXƒRK<H?B6?7RK?B:ÔHRGI68NBN<>VY?{47Ix;MFVY<>Ýh476ÕÔHR
¾ F7RK8N6³46 4W=O6 JK6ÔHV ¾7¾ 6X£6?B!G$I7<Y68BÔHR ¾ ÔHI78|R ¾7¾ LMV ¾ LM< =O6 6 R:Ô>6IL<H?B$O6 KLMRBN<HVY? qRK?78`BVYIB68!Ô>68`X =O6 BNFV$4768
86Xƒ<>S ‰VKLMXƒ6ÔHÔ>68œ;=ÔHRK8N8M<HGI768VY?hLN6=BLNVYIJK6PÔ>68 ¾ F7RK8N68A8NI7<>JRK?B68öß
RK?^RKÔ $8N6Q468 Ç68VY<H?78
8 ¾ O6 ;=< ^;=RBN<>VY?
;@VY?^;@6 ¾ BN<>VY?¼6=B:4³=O6 JK6Ô>V ¾7¾ 6X£6?B
,ER ¾ F^RK86›476›4W=O6 JK6Ô>V ¾^¾ 6Xƒ6?B qV I Ôä-0<H?BO6 KLMRBN<>VY? 46=J$LMRK<>B 6=BLN6 ÔHR ¾ ÔHI78 WO6 ?³O6 ^G$I6 ö68B~;@6ÔHÔ>6*46
ÔHR”8 ¾ O6 ;=< ‹;=RBN<>VY?*V I ÔHR ¾ L&O6 ;=<H8M<>VY? !Ôä-0R ^86?7;@6h4|-0RKX ^< YI >Bh
O6 6=BƒÔHR ¾ LN6IJK6h47I ˆVY?7;@BN<>VY?7?6Xƒ6?B£8VY?B
O6 468Õ47<ûR KLMRKXƒX£68Q4768ÕX›=O6 BNFV&468Õ8N6Xƒ<uS
¾ RLNBN<û;=I7ÔH< 6=LN6X£6?BQ<HX ¾ VKLNBNRK?B68 o-0RKIBLM6 ¾ RLNBQÔûR¼ÔH<H8N< ^<HÔH<>B$o
ˆVKLMX£6ÔHÔ>68xR ¾7¾ VKLNB6¶I7?76¶J&I6 8 &?BNF³=O6 BN<HGI76 O6 ;=ÔHRK<>L
RK?BlÔ>68x8 ¾ O6 ;=< ^;=RBN<>VY?78 ˆVKLMX£6ÔHÔ>68xGI76¶Ô>68l?VKBNR˜S
BN<>VY?78XƒRBNFWO6 XRBN<HGI768V ^8N;=ILM;=<û8N86?B TWVY?^;@6=LM?7RK?BÔ-0<H?B$O6 KLMRBN<HVY?h468X =O6 BNFV$4768 ‰VKLMXƒ6ÔHÔ>68³6=B8N6Xƒ<uS
ˆVKLMX£6ÔHÔ>68 &<ûÔÇ6@Ý&<H8NB6QBLNVY<H8œB ¾ 68A476Q4³O6 XƒRLM;MF768Õß
D,`R ¾ LN6X< 6=LN6¼4³O6 XƒRLM;
F6{J&<H86 R ¾ LNV ¾ VY86=LƒI7?6¼?VYI7JK6ÔHÔ>6hX =O6 BNFV&46xG$I7<œI7?7< 76\ÔH68ƒ46I&ݚR ¾ S
¾ LNV$;
F68 ÔÇ6@Ý<H8B6Õ46IÝ\X£V K6?78D46PÔä- V 7B6?7<>Löß
,ER ¾ LN6Xƒ< 6=LN6 ˆVKLMX£6 ¾ 6=LMX£6=BÕ46¬4³O6 ^?7<>LÕI^?6?VYIJK6ÔûÔ>6X›=O6 BNFV&46¬;@VYFW=O6 LM6?B6hG$I7<P=O6 B6?74›Ô>68
;@VY?7;@6 ¾ BN8\468?VKBNRBN<HVY?7886X<uS ‰VKL
X£6ÔHÔ>68†6@Ý<H8BNRK?B686? *R VYIBNRK?B\4768 ^RK868 ‰VKLMXƒ6ÔHÔ>68
8VYÔH<H468 26I&ÝhX›=O6 BNFV&468œL&O6 ¾ VY?746?B R£;@6Õ8N;
F³O6 XƒR ^ÔHR£X›=O6 BNF7V$46Q1^I78N<>VY? 4^RK?78œÔHRKG$I6ÔHÔ>6
Ô>68V ¾ =O6 LMRBN<>VY?78D8VY?BA4WO6 ;@L
<>B68A?VKBNRKXƒXƒ6?Bœ6?¼I7BN<HÔH<H8NRK?B³ÔûRo8NBLMI7;@BNILN6 (' 6=B (+/.$ 6@Ý&<H8NBNRK?B6o47RK?78D476Õ?VYX 7LN6I7868DX =O6 BNFV$4768 ˆVKLMX£6ÔHÔH68œ6=B:Ôä-0R ¾^¾ LNV&;MF6Õ4Û- BBN<>V WO6 VY< RB:6=B
9&RKÔHR I7? GI7< ¾ 6=LMXƒ6=BA4|-0R VYI7B6=L:468A;@VY?^;@6 ¾ BN8 ˆVKLMX£6ÔH8 ¾ LNVJK6?^RK?BD476Õ8 ¾ O6 ;=< ^;=RBN<HVY?78
lVYI¼RKÔ O6 7LM<ûGI68D47RK?78A468D47<HR KLMRKXƒXƒ68A4|- =O6 BNRBN8:/ x,
#
0
2
0
Q
E'
D0
5
'
27
27
0
m0
,
$P;
EF.
Q
4 = $
R 2# $
E'
2#
5 ?
$
$' @ $#
g
' : 2# `4]
$<.
D
$
$#
d
N0
$7
0
:
F'
:
m0
0
#
?
ÖB#
$#
H.
#
27
L0
$7 '
0
0
D7
E=
j0
lk # [
27
!U'
G$
Ö
, -0
Q
,ER246I&Ý< 6X£6 ˆVKLMX£6;@VY?78N<H8NB6 6?†I7?Õ8M;MFWO6 XƒRq;@VYX ¾ Ô 6=B6Xƒ6?BÞV ¾7¾ VY8$WO6 6?P<û?7;@VKL ¾ VKLMRK?B`Ô>68?VS
BN<>VY?78`VKLM<>6?B=O6 68SV 6=BN8 47RK?78EÔH68`X›=O6 BNFV&468 ˆVKLMX£6ÔHÔ>68EB6ÔHÔ>68GI76
VYI G$I7<46=J&<>6?7?76?B
Ú˜Ö Ù 6=B 6;@B Ú& 26o;@6=BB6£XƒRK?7< 6=LM6ÕVY?l;@VY?786=LNJK6£Ô>68:RJRK?BNR K68
RKI ?7<>JK6RKI ¾ L&O6 ;=<û8N<>VY?~468öX›=O6 BNFV&468 ˆVKLMX£6ÔûÔ>682BVYIBQ6?~8BLMI^;@BNILMRK?BQÔHRb8 ¾ O6 ;=< ^;=RBN<>VY? JK6=LM8
I7?hÔHRK? YR K6 ¾ ÔHI78 ¾ LNV&;MF76Q468AÔHRK? YR K682<HX ¾ =O6 L
RBN< ˆ8BL
RK47<>BN<>VY?7?76ÔH8 R£V 6=BN8
Ú D,`R46IÝ&< 6X£6P4³O6 XƒRLM;MF76P68B2Ôä- V 7B6?BN<>VY?{4Û-0I7?6Q8 ¾ O6 ;=< ‹;=RBN<>VY? ˆVKLMX£6ÔûÔ>6 R ¾ RLMBN<>LD4|-0I7?76Q?VKBNR˜S
BN<HVY?¶86Xƒ<>S ‰VKLMXƒ6ÔHÔ>6 Û;@6=BB6b4³O6 XƒRLM;MF76¬68BoR ¾7¾ 6Ô
=O6 6¬4W=O6 LM<HJ˜RBN<>VY? W6RKI7;@VYI ¾ 46ƒBLMRJ˜RKI&ݶ8-0<H?78S
;@L
<>JK6?Bx47RK?78¼;@6¶8M;MFWO6 XƒR ¾ RLMXƒ<öÔ>68MGI6Ôû8h?VYI78 ¾ VYIJKVY?78h;=<HB6=L ÚKÚ Ú ÖÚ G$I7<öIBN<HÔH<û86?B
ÔûR~X =O6 BNFV$476 ‰VKLMXƒ6ÔHÔ>6
o-0RKIBLN6 ¾ RLMB†4Û-0RKIBLN68£BLMRJ˜RKIÝ*IBN<ûÔH<H86?BoÔûR~X =O6 BNFV$476 j;@VYXX£6
&
˜Ö WTW68ƒ46IÝ KLNVYI ¾ 68£46hBL
RJRKI&Ý IBN<HÔH<H8N6?B†8NRKI 26@Ý&;@6 ¾ BN<>VY? Ô>68ƒX 6Xƒ68
B ¾ 68q46o47<HR KLMRKXƒXƒ68D86Xƒ<>S ‰VKLMXƒ6ÔH8 LN6Xƒ< 6=LN6Xƒ6?Bq<HÔH8A4W=O6 L
<>JK6?BqÔ>6824VY?7?W=O6 68q8BNRBN<HG$I68247I
4^<HR KLMRKXƒX£6:46D;=ÔHRK8N8N68 Ü ?^8NI7<>B6A<HÔû8ÞIBN<HÔH<H8N6?BÞÔHRö8 ¾ O6 ;=< ^;=RBN<>VY?\47Iƒ;@VYX ¾ VKLNB6X£6?B 47I8 $8NB 6Xƒ6
4WO6 ‹?7<!47RK?78qÔ>68ö47<HR KL
RKXƒX£68q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 ¾ VYILö4W=O6 LM<HJK6=LQÔ>682V ¾ =O6 LMRBN<>VY?78QG$I7<X£V&47< 76@S
LMVY?BDÔ- =O6 BNRB247I¼8 &8B 6X£6
D,`RBLMVY<H8N< 6X£6£4WO6 XƒRLM;
F6£;@VY?78N<H8NB6 R\6@Ý&BLMRK<>LN6†Ô>68:J$I68 KLMR ¾ F7<HG$I68D86X<uS ‰VKL
X£6ÔHÔ>68:46 ¾ I7<H8:ÔHR
8 ¾ O6 ;=< ^;=RBN<>VY? ˆVKLMX£6ÔHÔH6 2I›;@VY?BLMRK<>LM6b476\ÔHRl4WO6 XƒRLM;
F6 ¾ L&O6 ;^O6 46?B6 Rl?VKBLN6h;@VY?7?7RK<H8M8NRK?7;@6
¾ 6I 476ƒBLMRJRKI&ݶ;@VY?7;@6=L
?6?Bo;@6=BB6\4WO6 XRLM;MF6 26I&Ý~BLMRJRKI&Ý 6=B ˜Ø BL
RK<>B6?Bo;@6B ¾ 6
476†4WO6 XRLM;MF6 Û,E6 ¾ LN6Xƒ<>6=L ¾ L&O6 86?B6ƒI7?xVYIBN<HÔ46†BLMRK47I7;@BN<HVY?l8NVYI78 ‰VKLMXƒ6o46 KLMR ¾ F68q4|-0I7?6
8 ¾ O6 ;=< ^;=RBN<>VY? O6 ;@LM<>B626?
&,Û6:8N6;@VY?74¬4WO6 ‹?7<>B I7?76DX =O6 BNFV&462476DLN6 ¾ L&O6 8N6?BNRBN<>VY?b4|- 6@Ý$S
¾ LN68N8N<>VY?^8 LN6ÔûRBN<>VY?7?6ÔHÔH68 ¾ RLœ468 KLMR ¾ F68W6=B ¾ LNV ¾ VY862I^?¬RKÔ KVKL
<>BNF7X£6qGI^<‹;=RKÔH;=I^Ô>6öÔHR ˆVKLMXoI7Ô>6
LM6ÔHRBN<>VY?7?6ÔûÔ>6{8NRK?78bG$I7RK?BN< ^;=RB6ILb<H?B6=L ¾ L&=O6 BNRK?BbÔH6 KLMR ¾ F6 œT68BLMRJ˜RKIÝ©8VY?B\8 ¾ O6 ;=< ^G$I68
RKIÝ X£V$4 6ÔH68ƒLN6ÔHRBN<HVY?7?6ÔH8 ¾ VYIL¬Ô>68 ^RK8N68¬46x4VY?7?WO6 8 ÔHI78ƒL$O6 ;@6XƒX£6?B\I7?76{R ¾7¾ LNV&;MF76xR
O6 ?W=O6 LMRKÔû<H8o
O6 ;@68DBLMRJRKI&ݼRKI O6 ?7<>6oÔ>V Y<H;=<>6Ô|;@VYXX£6 KÚ 3D6XƒRLMG$I6ƒß^<HÔÇ6@Ý<H8B6P4|-0RKIBLN68œBL
RJRKI&Ý{RKIBVYILD476ÕÔHR£;@VY?78BL
I7;@BN<>VY?{8M<HXPI^Ô>BNRK?³=O6 6Õ46öJ&I68D/ x,
6=BD46QXƒV$4 6Ô>68 47RK?78AÔä-0R ¾^¾ LNV&;MF6 ¾ LMV ¾ VY8$=O6 6 ¾ RL RKÔHRK8 8M8NRKXƒ< YRK;=G$IVKBA6=Bq9$VYI7G$I7< 6=LN68 Ø ZU.9
R
F
+
8# #
Q
0 '
M0
aR 1.
#d* " ' " ' ## ' # " ' #= 0
#
$
$7
#
$ Q
=
27
0 _k
27
NZ?.9
27
#
M#
X!
*
0
a0
- F 9R 0 .
8# #
20
27
#
$S[ Q
M
+$ #
#
+.
N
D7
Q
#
27
V F $
0
@<!
' = '
i!
80
Mg
c
U#
$7
-Z?.? %R
2#
L# $K[
= - C - Q'P
0
'?
$ U0 # %#
27
d
0
'
27
?
, = "!
90
0
9#
E
N E cb
E b $@.
m
#
$
g g
$
Q -7
V0
27
8#
8
@g ?0 $
Q
' " ' $ ' # ' "= ' =" ' #=
,
27 K! 2b
#
#
- ? -
0
D# E
h
W!
F
27
8#
W F
2#
0 27
Q
0
c
8
$G; 0
27
27
, -0R VYIBP46 ‰VY?^46X£6?BN8 ‰VKL
X£6ÔH8öRKI&Ý X›=O6 BNFV&468Q86X<uS ‰VKL
X£6ÔHÔ>68qVYI 476ƒ?VKBNRBN<>VY?78 KL
R ¾ F7<HG$I68
RKI&ÝbX =O6 BNFV$4768 ‰VKL
X£6ÔHÔ>68W68BBL 68D;@VYX ¾ Ô>6@Ý&6 RoV 7B6?^<>L Ü ?\6 Ç6=BDÔ>68 ¾ F7<HÔHVY8V ¾ F7<>68 6X ¾ Ô>V .=O6 68:47RK?78
;@68ö46I&ݔX =O6 BNFV&468ö8VY?B2BL 68Õ47< D=O6 LM6?B68 26 ¾ ÔûI78:ÔH6PBLMRJ˜RK<ûÔ R\Xƒ6=BBLN6†6? QIJ$LN6o4^RK?78q;@6 K6?LN6
46ƒ4WO6 XƒRL
;MF6ƒ68NBQBL 68Õ<HX ¾ VKLMBNRK?Bö8NRK?78 6=BLM68 ILQ4|-0I^?”L$O6 8NI7Ô>BNRB ¾ LMV ^RK?B Ûܳ?~VYIBLN6 ¾ LNV ¾ VY86=LQI7?6
?VYIJK6ÔûÔ>6DX›=O6 BNFV&46 ¾ VY862468 ¾ LNV ^Ô 6X£68 ^?7RK?7;=<>6=L
8Þ6=BWF$I7XƒRK<û?78œßY6ÔHÔH6D?³O6 ;@68N8N<>B6qI7?6DLN6;@VY?78BLMI^;@BN<>VY?
4682R ¾7¾ ÔH<û;=RBN<>VY?78œ6@Ý<H8BNRK?B68D6=Bq<HX ¾ ÔH<HG$I6öI7?6 ˆVKLMXƒRBN<>VY?x8 ¾ O6 ;=< ^G$I6o468:I7BN<HÔH<H8NRB6I7LM8œ4VY?B:Ô>682F7R˜S
^<>BNI^468³4762BL
RJRK<HÔ ¾ 6IJK6?BLMRK4^<H;=RKÔ>6X£6?Bœ;MF7RK? K6=LA8MRK?78VYI ^ÔH<H6=LWÔ>6q;@V IBA46 R 7LM<H;=RBN<HVY?\4768³VYI7BN<HÔH8
RK8N8V&;=< O6 8
,`R\476I&Ý&< 6Xƒ6†4WO6 XRLM;MF6¬8NILöÔHRKG$I6ÔHÔ>6o46£?VYX ^LN6I&Ý{BLMRJ˜RKIÝ ÖYØ Ø ˜Ö ŒÖ
VY?B
=O6 BQO6 X£6?³O6 8;@68³46=L
?7< 6=LN68WRK?7?³=O6 68 ¾ LNVYX£6IB³ÔHRQ4W=O6 LM<>JRBN<>VY?\46:8 ¾ O6 ;=< ^;=RBN<>VY?78 R ¾ RLNBN<>LW46:47< D=O6 LN6?BN8
47<HR KL
RKXƒX£68 xC*6=B / {, ,Û68 RJRK?BNR K684|-0I7?76WB6ÔûÔ>6AR ¾7¾ LNV&;MF768NVY?B£=O6 J&<H46?BN8œßYÔHRöXƒV$4WO6 ÔH<û8NRBN<>VY?
68B.L&O6 RKÔû<H8=O6 6D6?¬46FVKLM8.4^I£;=RK4LN6D46:ÔHRöX =O6 BNFV&46 ˆVKLMX£6ÔHÔ>6œ6=B ¾ 6=L
X£6=B.RKI&݃;@VY?7;@6 ¾ B6IL
8 46AÔä-0< Y?VKLN6=L
,Û68D<H?7;@VY?J.O6 ?7<>6?BN8D8NVY?BD476Q46I&ÝbB ¾ 68Qß
,`Rh?VKBNRBN<>VY? „?|- 68B ¾ RK8qVKL
<>6?B$=O6 6@SV 6=BPXRK<H8öX£V&47I7ÔHRK<>LM6 ¾ RLQ;@VY?78$O6 G$I6?BÕÔHRb8 ¾ O6 ;=< ‹;=RBN<>VY?
R ‹8BLMRK<>B6q6? K6?747L$=O6 6 R ¾ RLNBN<>L4|-0I7?6qX£V&4³O6 ÔH<H8NRBN<>VY? RoV 6=BN868B¬O6 Ô>VY< Y?W=O6 6Q46ö;@6ÔHÔ>6qG$I7<‹RKI7LMRK<>B
=O6 B$ O6 O6 ;@LM<>B6Õ47<HLN6;@B6X£6?BA6?¼IBN<HÔû<H8NRK?BI^?6öX =O6 BNFV$476 ˆVKLMX£6ÔHÔ>6
,`RA8 ¾ O6 ;=< ‹;=RBN<>VY?Q4WO6 ;@VYI7ÔHRK?B`476.ÔHRœ4³=O6 LM<>JRBN<>VY?ö68BÛ<û?7;@VYX ¾ Ô 6=B6 ;=RLÔ>68|X›=O6 BNFV&468E8N6Xƒ<uS ˆVKLMX£6ÔHÔ>68
?76 ¾ VY8M8 646?B ¾ RK8AÔ>68D?VKBN<>VY?78œ46P8NI ^8BN<HBNIBN<>VY?78 Ô ˆRKI747LMR£4VY?7;öX£V&47< ^6=LAI7?6Q8 ¾ O6 ;=< ‹;=RBN<>VY?
50
ÖÙ
#O6 ?W=O6 L&=O6 6*RKIBVYXƒRBN<HG$I6X£6?B ¾ I7<û8 ¾ VYILM8MI7<>J$LN6 ¾ RL¼Ôä-UO6 ;@LM<HBNILN6~468bLMR*)?76X£6?BN8b6=B ¾ LMVYIJK6=L
;
F7RK;=I7?6P468AXƒRK;
F7<H?68$
TW6;=<Õ;@VY?747I7<>B R ¾ 6?78N6=L¼GI|-0I^?6 ¾ RLNBN<>6 4768¼;@VY?7;@6 ¾ B6IL
8{;MF7VY<H8N<>LMR*4|-UO6 ;@LM<HLN6¶47<>LM6;@B6X£6?Bx868
8 ¾ O6 ;=<2‹7 ;=RBN<>VY?78P6? !U<; Ô 476=J$<>6?BPRKÔHVKLM8Õ<H?B=O6 LN68N8NRK?B£46 ¾ VYIJKVY<HLQ6@Ý$BL
RK<>LN6¬476¬;@6ÔHÔ>68S;=< Ô>68~O6 Ô
O6 X£6?BN8
TW68¶O6 Ô O6 X£6?BN8£86=LNVY?B
¾ 6=LMX£6=BBNRK?Bo476\Xƒ<H6I&ݶÔ>68o;@VYX ¾ LN6?747LN6`' Ô>68 ¾ L&O6 86?B6=L£6=B†Ô>68†4V$;=I^X£6?B6=L Þ
6@Ý ¾ LM<HX›O6 8o47RK?78oI7?6?7VKBNRBN<>VY?*46¬X£V&4WO6 ÔH<H8MRBN<>VY?)K# LMR ¾ F7<HG$I646 ¾ ÔHI78Q6? ¾ ÔûI78ÕIBN<ûÔH<H8$=O6 647RK?^8PÔ>6\4VS
XƒRK<H?76A46DÔHRö;@VY?7;@6 ¾ BN<>VY?¬476AÔ>VY# <H;=<>6ÔH8 ;- 68BS R˜ S47<>LN62/Ux
,lGI7< Y' RKIƒ46ÔdRQ 4768ÞJ$I768 K# LMR ¾ F^<HGI768$Y' 47<H8 ¾ VY86
4|-0I7?hÔûRK?8Y# RK# 6P46Q;@VY?BLMRK<H?B68DR ¾^¾ 6Ô O6 - T, =Ø = - F 6;@B2TWVY?78NBLMRK<H?BN8œ,ERK?8Y# I7RK# 6 AGI^< ¾ 6=L
X£6=BA46
8 ¾ O6 ;=<2^7 6=L4768³<H?JRLM<HRK?BN8 46ö;=ÔHRK8M86 Þ6=Bœ468 ¾ L&qO6 6=B ¾ VY8NBS;@VY?747<>BN<>VY?^8³46qX›=O6 BNFV&468$ - T, ¾ 6=LMX£6=BW46
,)K# LMR ¾ F^<HGI768$7 Ü ?bVYIBLM6Õ<HÔ0 RKIBD?VKB6=L2GI6Q8M< ¾ ÔHI78N<H6ILM84³O6 XƒRLM;
F68A6@Ý<H8B6?B
¾ L&O6 ;=<H8N6=LDÔ>68œJ&I68D/?x
47RK?78ÕÔ>6ƒ4VYXƒRK<H?76†476ÔHRh4W=O6 LM<>JRBN<>VY? 4Û-0/Ux
, JK6=LM8:!UE' RKI7;=I7?6ƒ?Û- 6@Ý&<H8NB647RK?78öÔä-0RKI7BLN6ƒ86?78$_2. RK?^8QÔ>6
;=RK4LN6ƒ4Û-0I7?6†4³O6 XƒRLM;MF76<>B=O6 LMRBN<>JK6476†4W=O6 JK6ÔHV ¾7¾ 6X£6?Bö6ÔûÔ>6o8N6=LMRK<>Bö<H?747<û8 ¾ 6?78NR^ Ô>6Õ6=B ¾ 6=LMXƒ6=BBLMRK<>BöÔHR
BLMRf;=Y R^ <ûÔH<>BQO6 6?BLN6ÕÔHR£X£V&4WO6 ÔH<H8MRBN<>VY?b6=BDÔHR£8 ¾ O6 ;=<D^7 ;=RBN<>VY?
"! $
!
!
# !
!
"
$ !
A:VYI78;@VYXƒX£6?7;@6=LMVY?78 ¾ RLI7?6U7L$6= JK6 ¾ L$O6 86?BNRBN<>VY?¼46qÔHRÕ?7VKBNRBN<>VY?h/Ux,”6=Bœ46q8VY?bÔHRK?8#YR#K6ö46
468N;@L
< ¾ BN<>VY?ƒ4768³;@VY?BLMRK<H?B682ß - Tœ, >k ¾ LE6 8I7?š=O6 BNRBœ462Ôä-0RLNBW4³O6 47<
O6 ¾ LM<H?7;=< ¾ RKÔ>6X£6?BXRÕ
ÔHRP4³=O6 LM<>JRBN<>VY?
46WJ$I768`/?{
,¼6?P8 ¾ O6 ;=<D^7 ;=RBN<>VY?%!U'?7VYI78 ¾ L$O6 86?B6=LMVY?78Þ?VKBLN6 ¾ LN6Xƒ<Q6= LM6W;@VY?BLM<2^I7BN<>VY?ÕRKIBVYI7L!476WÔä- 6@Ý$S
BLMRK;@BN<>VY?x46öJ&I68A/?{
,›46 ¾ I7<û8œI7?6Q8 ¾ O6 ;=<2‹7 ;=RBN<>VY? !U( TW6=BB6P;@VY?BLM<D^ IBN<>VY?b68B:4³O6 ;@LM<>B6P4^RK?78AG$I7RBLN6
;MF^R ¾ <>BLN68$_:
. 6Iݶ;MF7R ¾ <HBLN68QBLMRK<HB6?Bo46ÔHR ¾ RLNBN<>68BNRBN<ûGI6¬468Õ8 ¾ O6 ;=<D^7 ;=RBN<>VY?78P/Ux , ,Û6 ¾ LM6Xƒ<>6=L
;MF^R ¾ <>BLN6ƒBL
RK<>B6=LMR{476Ôä- 6@Ý&BLMRK;@BN<>VY?¶47647<HRK# LMRKXX£68Õ46¬;=ÔHRK8N868P8NI7<>J&<Þ47I 46IÝ&<Q6 X£6\46ƒBLMRK4^I7;@BN<>VY?
468 ¾ LNV ¾ LM< =O6 B$O6 8<û?JRLM<HRK?B68 i
! 6? ;@VY?BLMRK<H?B68 - T, R^7 ?š46 ¾ L&O6 ;=<H8N6=LÔ>6¼47<HRK# L
RKXƒX£6¼46¼;=ÔHRK8M868$
,Û68W46I&݃;
F7R ¾ <>BLN68W8NI7<HJ˜RK?B 4W$O6 ^7 ?7<HLNVY?B³Ôä- 6@Ý$BL
RK;@BN<>VY?b468 4VY?^?³=O6 68W4P$ ?7RKX<HGI768.47I8$ 8B$6 X£6 ¾ RLWÔ>68
47<HRK# L
RKXƒX£68q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78$Û' 476†8$O6 G$I6?7;@66=Bq4Û-0RK;@BN<>J$<HBO6 8EÛ Ü ?8^7 ?”I7?76o;@VY?7;=ÔûI78N<>VY?lRK;MF6= JK6=LMRxÔ>6
4V&;=I7X£6?BA8NILAÔä-0<û?B$$O6 K# LMRBN<>VY?x468AX›=O6 BNFV&468m‰0 VKLMXƒ6ÔHÔ>68œ6=BD8N6Xƒ<uS ˆ0 VKLMX£6ÔHÔ>68 ¾ RLD6@Ý$BLMRK;@BN<HVY?
+Ø
"
$
"%
0
+Y
c
80
8# #
S' AX; k? B# ' - $
H
' E
#
8
0
$ ' 8# # ?
m0
8
$ '>!
+ " ;
Q i0
# $$# - T 8 # - F# # MT #
8# # - ,E68PX›=O6 BNFV&468o86Xƒ<uS ˆVKLMX£6ÔûÔ>68QVY?B =O6 B$h
O6 ;@VY? ;=I68 ¾ VYILPX£V&4WO6 ÔH<H8N6=LÕÔ>68o8 $8NB 6Xƒ68o4Û-0<H? ˆVKLMXƒRBN<>VY?
47RK?78oÔ>6 ^IBo4|- 6?›V 7B6?7<>L†I7?6\468N;@LM< ¾ BN<>VY?¶X£VY<û?78PRKX ^< YI 6\6=B ¾ ÔHI78P8 &?BNFW=O6 BN<HG$I6bGIÛ- 6?›ÔûRK? YR K6
?7RBNILM6Ô :VYI78 ¾ VYIJKVY?^8:;=<>B6=LqG$I6ÔHG$I68AX›=O6 BNFV&468q;@VYXƒX£6\ß‹Ü × 3 K Ö xC KÚ 6=B
/ {, 26I&ÝhX£V&4 6Ô>68DRKI¼X<H?7<HXoI7Xi8VY?BœBVYI VYI7LM8 ¾ LNV ¾ VY8$O6 8 ¾ RLD;@68DX›=O6 BNF7V$468Õß
, -0I7?h4WO6 ;@LM<>B:Ôä-0RK8 ¾ 6;@BD8BNRBN<HG$I6 7;- 68BS R˜S4^<>LN6PÔûR£8BLMI7;@BNILM6Q468A4VY?7?W=O6 68D6=BDÔ>6IL
8LN6ÔHRBN<>VY?78
, -0RKIBLN64WO6 ;@L
<>BÕÔ>68ÕBLMRK<>B6X£6?BN8ÕG$I7<ÞVY?BÕÔH<>6I~8MILÕÔ>68Q47VY?7?³=O6 68ƒßE<ûÔ.8=-0R Y<>BÕ476Ôä-0RK8 ¾ 6;@BQ4 &?7R˜S
X<HGI76
TW6=LNBNRK<û?68.X›=O6 BNFV&468.;@VYX ¾ VKLNB6?B 4|-0RKI7BLN68.X£V&4 6Ô>68.;@VYXƒXƒ6D47RK?78.ÔûR2X›=O6 BNF7V$46 {C V IƒÔ>6AX£V&4 6Ô>6
ˆVY?7;@BN<>VY?7?6Ô ¾ 6=LMXƒ6=BA46Q4³O6 ;@LM<>LN6PÔHR†BLMRK?78 ˆVKLMXƒRBN<HVY?h468AJRKÔ>6ILM8œ4768A4VY?7?W=O6 68:47RK?78œÔ>6Q8 &8B 6X£6
qRK?78Þ;@6A;MF^R ¾ <>BLN6 KÔ>6ÔHRK? YR K6A/ {,¼68B ¾ L$O6 86?BO6 TW6=BB6A?VKBNRBN<>VY?†68NB!?W=O6 6A476ÔûR I78N<>VY?†46 ¾ ÔHI^8N<>6ILM8
X›=O6 BNFV&468.V 6=BN8ÞB6ÔûÔ>68.G$I6œ6?BLM6DRKIBLN68 {C KÚ WVV&;MF =Ø 6=B
9Ü Ô7Rx=O6 B:O6 ?VKLMXRKÔH<H8$O6
6;@B xRK?7R K6X£6?B 2LMVYI ¾ ³,E6{;MF7R ¾ <>BLN6
¾ VYILÔHR ¾ LN6Xƒ< 6=LN6 ˆVY<H8£6? ÙKÙ ¾ RL¬Ô;@VYXƒX£6?^;@6 ¾ RLƒI7?6 ¾ L&O6 86?BNRBN<>VY? O6 ?W=O6 LMRKÔH6{47IšÔHRK? YR K6 ¾ I7<H8o;@VY?BN<H?$I6 ¾ RLƒÔHR ¾ L&O6 8N6?BNRBN<>VY? 468
47< D=O6 LN6?BN8D47<HR KL
RKXƒX£68œ6=BD8N6öB6=LMXƒ<H?6 ¾ RLDÔ>6QÔHRK? YR K6 T,
0
QBA
? = + B.
.
b
! !
&
*
?
: 2# 4
!
"&
!
$
N
c ?
`, RP?VKBNRBN<HVY?¬/ {, ¾ 6=LMX£6=BWÔHRÕ;@VY?^8BLMI7;@BN<>VY?\462X£V$4 6ÔH68 ,`RPX£V&4WO6 ÔH<H8MRBN<>VY?ƒ68BWL&O6 RKÔH<H8$=O6 6 RoÔä-0RK<H46
464^<HR KLMRKXƒX£68 E,Û68P47<HR KLMRKXƒXƒ68 ¾ 6=LMX£6=BB6?BPI7?76ƒJ$<û8NI7RKÔH<H8MRBN<>VY? KLMR ¾ F7<HG$I6ƒ47I 8 &8B 6X£6 / x,
47<H8 ¾ VY8N6†476ƒ?6I 47<HR KLMRKXƒXƒ68Q8NRK;MF^RK?BÕG$I6;
F7RK;=I7? 4Û- 6?BLN66I&Ý ¾ VY8M8 646I7?”L VYÔH6 ¾ L$O6 ;=<H8Õ4^RK?78öÔHR
X£V&4³O6 ÔH<H8NRBN<HVY?h47I¼8 &8B 6X£6ß
f _ˆ+ ‹ + Š Š " "x‡ a +7##"$# ß ÔÇLN6 ¾ L&O6 86?B6ÕÔ>68œ47VY?7?³=O6 68A47IbX£V&4 6Ô>6 ¾ RLNBN<H6q8NBNRBN<HGI76 UÔ RK<>B
R ‹8BLMRK;@BN<>VY? 4768 ¾ RLNBN<>68Õ4 $?^RKXƒ<HG$I68q6=BQB6X ¾ VKLN6ÔHÔH68 UÔ ¾ 6IB 6=BLN6\<H?78BNRK?7;=< O6 R¼BLMRJK6=LM8PI7?
4^<HR KLMRKXƒX£6Q4Û- V 6=BN8 UÔÇ68NBD;@VYX ¾ VY8P
O6 46Q;=ÔûRK8N868œ6=BDRK8M8V$;=<ûRBN<>VY?78
f _ˆ+ ‹ + Š Š " t Z^] "'# ß ÔLN6 ¾ L&O6 86?B6{I7?*47<HR KL
RKXƒX£6h46¼;=ÔHRK8N8N68£<H?78BNRK?7;=< =O6 68 2RK?^8ƒ;@6
4^<HR KLMRKXƒX£6WÔ>68!;=ÔHRK8N868!46=J&<>6?7?76?B ¾ ÔHI78N<H6ILM8ÇV 6=BN86=B!ÔH68`RK8N8NV$;=<HRBN<HVY?78 ¾ ÔHI78N<H6ILM8|ÔH<>6?^8Û6?BLN6
V 6=BN8 Ô;@VKLMLN68 ¾ VY?74 R:I7?o47<HR KL
RKXƒX£646W;@VYÔûÔHR ÇVKLMRBN<>VY?o8NRK?78Ô>68!<H?B6=L
RK;@BN<>VY?78!XƒRB=O6 LM<HRKÔH<û8=O6 68
¾ RLD468AX£68M8NR K68
f _ˆ+ ‹ + Š Š " "h‡Y+7# t [ 'Œ_ a _ˆ#+'Œ_ Z % ß Ô ¾ 6=LMXƒ6=BW462XƒRB=O6 LM<HRKÔH<û86=L6=BW8BL
I7;@BNILN6=LÔ>68 Ç68VY<H?78
4768IBN<HÔû<H8NRB6ILM8†47I 8 $8NB 6Xƒ6 ÔA<H46?BN< 76¼ÔH68ƒRK;@B6ILM8 IBN<HÔH<û8NRB6ILM8£47I 8 $8NB 6Xƒ6 £6=BÔH6ILM8
ò=ãäãâÕ
Þè 1 œóè õ1 #
+
#
#
8
E #
80 #
c
F;
8
F EP;
1;
$;
M #
# $
c ;
,-,.*.*.
`;
27
F
#
$;
#
+
c Hg
P; f0
g
L
$
E .
c K
+Ú
c 27
$ c
<û?B6=LMRK;@BN<HVY?78 RJK6;2ÔH6A8 $8NB 6Xƒ6 &, -0RK;@B6IL;@VY?78NI7Ô>B6DVYIX£V&47< 76œÔä-U=O6 BNRBœ47Iƒ8 $8B 6X£6 &,Û6:8 $8NB 6Xƒ6
L&O6 R Y<HBÕRKI&Ý~46XƒRK?7468ö476†Ô-0RK;@B6IL ¾ RLQÔ>68Õ47< D=O6 LM6?BN8Q;=RK8Õ4|-0IBN<HÔH<û8NRBN<>VY? ¾ VYI7LqÔH68NGI76ÔH8q<HÔ68B
¾ L$=O6 J$I
f _ˆ+ ‹ + Š Š " "Շ Z‹Š .Z #+^%('# ß Ô ¾ 6=LMX£6=BÛ46.4WO6 ;@L
<>LN6.Ô>68Û;@VYX ¾ VY8MRK?BN8E6=BEÔ>6ILM8|4WO6 ¾ 6?74^RK?7;@68
4^RK?78œÔä- 6?J$<>LMVY?7?6X£6?Bœ46öL$O6 RKÔH<H8NRBN<HVY? ,Û68A47<ûR KLMRKXƒX£68A476q;@VYX ¾ VY8MRK?BN8:8VY?BA4768œJ$I768œ8BNR˜S
BN<ûGI68D46QÔä-0<HX ¾ Ô
O6 X£6?BNRBN<HVY?h468A8 &8B 6X£682GI7<|XƒVY?BLN6?BDÔ>6Q;
FVY<uݼ46öL&O6 RKÔH<û8NRBN<>VY?
f _ˆ+ ‹ + Š Š " " †" !aˆZ _ˆ" Š "&%(' ß UÔDX£VY?BLM6{ÔHR~47<H8 ¾ VY8M<>BN<>VY? ¾ F &8N<HG$I6b6=B¬XRB=O6 L
<>6ÔHÔ>6¼G$I7<
;@VYX ¾ VY8N6lÔ>6x8 $8NB 6Xƒ6l6=BbÔHR¶L$O6 ¾ RLNBN<>BN<>VY?©468¬;@VYX ¾ VY8NRK?BN8b8NI7L¬Ô>6lXƒRB=O6 LM<>6Ô ,Û68¬LN68N8VYI7LM;@68
XRB=O6 L
<>6ÔHÔ>68o8VY?BÕLN6 ¾ L&O6 8N6?B$=O6 68ƒ8VYI^8 ˆVKLMX£6\46?V$6I7478 `Ô>68NG$I6ÔH8Õ8NVY?Bo;@VY?7?6;@BO6 8†6?BLM6¬6I&Ý
¾ RL2I7?x8NI ¾7¾ VKLNB:46P;@VYXƒXoI7?7<û;=RBN<>VY?¼6=BqÔ>6ILM8:;=RLMRK;@B=O6 LM<H8BN<ûGI68 ¾ 6IJK6?B 6=BLN6 ¾ L&O6 ;=<û8=O6 68 ETW68
4^<HR KLMRKXƒX£68ALN6 ¾ L&O6 86?B6?B2Ô>6Q4WO6 ¾ Ô>VY<H6X£6?B:468A;@VYX ¾ VY8NRK?BN8D8NI7LAÔ>6Q47<H8 ¾ VY8N<HBN< ÛXƒRB=O6 LM<>6Ô
f _ˆ+ ‹ + Š Š " "~‡ Z(a a + ].Z^ +'Œ_ Z % ß Ô`LN6 ¾ L&O6 86?B6£Ô>68:<û?B6=LMRK;@BN<HVY?78D6?BLN6£Ô>682RK;@B6ILM826=BqÔ>68
V 6=BN8 <H?^8BNRK?7;@6846q;=ÔHRK8N868 Ô ¾ 6=LMXƒ6=B³46q8 ¾ O6 ;=< 76=Lœ46qXƒRK?7< 6=LM62BL 68 ¾ L$O6 ;=<H86qÔä- VKLM4LN626=BÔ>68
;@VY?^47<>BN<>VY?78œ4Û- 6?JKVY<`468AX£68N8MR K68D46Q;@VYXƒXoI7?7<û;=RBN<>VY?h6?BLN6ÕÔ>68œV 6=BN8
f _ˆ+ ‹ + Š Š " " # "$ [ "$%`‡Y" ß ÔWLN6 ¾ L&O6 86?B6¼Ô>68£;@VYXƒXoI7?7<û;=RBN<>VY?78o6?BLM6¼Ô>68oV 6=BN886Ô>VY?
I^? ¾ VY<H?B2476PJ&I6oB6X ¾ VKLN6Ô 2RK?^8ö;@6†4^<HR KLMRKXƒX£6 (VY?~X£6=BqÔä-0RK;=;@6?BQ8NILöÔHR\;MFLNVY?7VYÔ>V Y<>6†468
6?JKVY<H8œ46öX£68M8NR K68 ^, - VKLM4LN6q4|- 6?JKVY<Û468X£68N8NR K68A68BA4³O6 ^?7< ¾ RLA8VY?b6X ¾ ÔHRK;@6X£6?Bœ8NILœÔHR
Ôû< Y?6ö46öJ&<>6Q468œV 6=BN8DG$I7<|;@VKLNLM68 ¾ VY?74hRKI¼B6X ¾ 8AGI^<|8=- O6 ;@VYI7Ô>6
f _ˆ+ ‹ + Š Š " t "'+'# € ' +^%`#_‰'Œ_ Z %`# ß UÔ(LN6 ¾ L$O6 86?B6QÔH68WXƒV$47< ^;=RBN<>VY?78W46öÔä- =O6 BNRBD4|-0I7?¬V 6=B
8N6Ô>VY?~8VY? ¾ LMV ¾ LN6£;@VYX ¾ VKLNB6X£6?BQ6=B × VYI Ô>6ƒ;@VYX ¾ VKLMB6X£6?BP468öRKIBLN68öV 6=BN8Q4^I~8 $8NB 6Xƒ6
TVYXƒX£6³8NVY?o?7VYX5Ôä-0<û?747<HG$I6ÞÔ>6³4^<HR KLMRKXƒX£6W4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?7868B!;@VYX ¾ VY8œO6 4|- =O6 BNRBN8Þ6=B4Û-0RLM;=8
VKL
<>6?B$O6 82R ¾7¾ 6Ô
O6 8œBLMRK?78M<>BN<>VY?78œG$I7<|4W=O6 B6=LMXƒ<û?6?B:Ô>68œ;MF7RK? K6X£6?BN824|-U=O6 BNRBN8
f _ˆ+ ‹ + Š Š " t +7‡K'Œ_ E_‰' "$# ß.,Û6¼47<HR KL
RKXƒX£6h4|-0RK;@BN<>J&<>B¼
O6 68BƒI7?76\JRLM<HRK?B6¼47I*47<HR KL
RKXƒX£6
4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78 !Ü ? 6 (6=B†RKI ;@VY?BLMRK<>LM6\47I 47<HR KLMRKXX£6¬4|-U=O6 BNRBN8SBL
RK?78N<>BN<>VY?^8oG$I7<.4WO6 ‹?7<>B
ÔH6o;@VYX ¾ VKLNB6Xƒ6?BQ4|-0I^?{V 6=BöVYI”;@VYX ¾ VY8NRK?B ÛÔ>6o4^<HR KLMRKXƒX£6†4|-0RK;@BN<>J&<>B$ƒ
O6 4WO6 ^?7<HBqÔH682RK;@BN<HVY?78
6@Ý O6 ;=IB=O6 68 RƒÔä-0<H?B=O6 LM<>6ILA4Û-0I7?6öX =O6 BNFV&46
qRK?78ÛÔHRœ8MI7<>B6.46.;@6 ;
F7R ¾ <>BLM6.?VYI78ÛRKÔHÔHVY?78 ¾ L&O6 86?B6=LE6?Q4W=O6 BNRK<ûÔH8ÛÔ>68Û4^< D=O6 LN6?BN8E4^<HR KLMRKXƒX£68|?WO6 ;@68M8NRK<>LN68
RƒÔä- 6@Ý&BLMRK;@BN<>VY?{468œJ&I68A/ {,›46 ¾ I7<û8WI^?6Q8 ¾ O6 ;=< ^;=RBN<HVY?
#
E;
c c
;
0
S;
#
8 2#
.
#
*
G;
Q.
# $
F
#
!
#
!
%&
!
#
$'
27
'
$7
#
D7
P#
#
!U
&!
b
c 8;
Q
Q E
8 $
$!
!
g
27
F;
#
>
$'
#
?
#
a;
$ DC cb
F
j
b
$
Q
20
F
F
c 8
$
#
#
#
$7
$7
,E6247<ûR KLMRKXƒX£6q46q;=ÔHRK8N868X£VY?BLN6öI7?62J$I7628BNRBN<ûGI6q47I\8 &8B 6X£6 Uԋ68BœÔ>6q;@VY?78BN<>BNI^RK?BÔ>6 ¾ ÔHI78
IBN<HÔû<H8DO6 46qÔHRQJ&I628BNRBN<HG$I6 Ô ˆRK<>BWR ^8BLMRK;@BN<HVY?\4768³RK8 ¾ 6;@BN84 &?7RKXƒ<HG$I68 6=B³B6X ¾ VKLN6Ôû8 &TW6 ¾ 6?74^RK?B
<HÔ!X£VY?BLN6G$I6ÔHG$I68qRK8 ¾ 6;@BN8Õ4 &?7RKXƒ<ûGI68q47I”8 &8B 6X£6\;@VYXƒX£6Ô>68öX›=O6 BNF7V$468ÕXƒRK<H8Q<HÔ!?|- 6?~4WO6 ;@L
<>B
¾ RK8AÔH6Q;@VYX ¾ VKLNB6X£6?B Ô|;@VY?BN<>6?BA6?BLN6PRKI7BLN68AÔ>68\O6 Ô O6 X£6?BN8q8NI7<>JRK?BN8qß
ÔH68A;=ÔHRK8N868D;@VYX ¾ VY8=O6 68:4|-0RBBL
< ^IBN86=B246QX =O6 BNFV&468
ÔH68 `O6 ?³=O6 LMRKÔH<H8NRBN<HVY?78
ÔH68AR KL$O6 YRBN<>VY?78 Ç;@VYX ¾ VY8N<>BN<HVY?786=BDRK8N8V&;=<HRBN<>VY?^8
5#
$B;
`; S0 8
$'
$
2
8
$'
$
# $# $'
$
? D *
* 9 4 !
,E68¼;=ÔHRK8N868{LN6 ¾ L&O6 86?B6?BxI7?#KLNVYI ¾ 6~4|- V86=BN8xGI7<qVY?B¼Ô>68¼XM6g Xƒ68{4VY?7?W=O6 68{6=B{Ô>68¼XM6g Xƒ68
;@VYX ¾ VKLNB6X£6?BN8$œ
/2?6l;=ÔûRK8N86l68BhI7?6x4768N;@LM< ¾ BN<HVY? R^8BL
RK<>B6l476l;@68\VF6=BN8$DTF7RKG$I6x;=ÔûRK8N86l68B
LN6 ¾ L&O6 8N6?B$=O6 6¶8VYI^8\ÔûRIˆ0 VKLMX£6”4|-0I7? LN6;@BNRK?8Y# Ô>6~47<HJ$<H8$x
O6 6?©BLNVY<H8b;@VYX ¾ RLNBN<ûX£6?BN8EW
,E6”;@VYX ¾ RLNBN<HX£6?B
8NI ¾ =O6 L
<>6IL¼;@VYX ¾ LM6?74 Ô>6 ?VYX 476 ÔHR*;=ÔHRK8N86D
,E6 ;@VYX ¾ RLNBN<ûX£6?BxX O6 47<HRK? ;@VY?BN<>6?B{Ô>68¼RBBLM<D^ IBN8$
,Û6x46=LM?7<>6=Lƒ<HB6X¥LN6 ¾ L&O6 86?B6xÔH6¼;@VYX ¾ VKLNB6X£6?B4|-0I7? K# LMVYI ¾ 6¼4|- VF 6=BN8$' <HÔ68B¬4³$O6 ^7 ?7<R Ôä-0RK<û46¼46
X›=O6 BNFV&468$
+=
Personne
-nom: string
-prenom: string
-date_naissance: date
-nombre_enfant: int = 0
+seMarier(p:Personne=aaaa): booleen
Ö
D
2
2
/2?6Q;=ÔHRK8N8N6 ¾ VYI7LNJ$I76q4Û-0RBBLM< ^IBN8A6=BD46QX›=O6 BNFV&468
$7
c
2'
,`RxJ&<H8N< ^<HÔH<>B$
O6 4768£RBBLM< ^IBN8P6=BƒX›=O6 BNFV&468†68Bƒ4WO6 ^?^<>6 ¾ RL†ÔH68PBLMVY<H8£;=RLMRK;@B 6=LN688MI7<>JRK?BN8\ß- SN- o-|6=Bƒ- b- Û,Û6ƒ;=RLMRK;@B 6=LN6l- SN- ('$ *& Q8N< Y?7< 76oG$I6ƒÔä-0<HB6X 68B ¾ LM<>J.ƒ
O6 ;- 68BS R˜S47<>LM6GIÛ-0<HÔ68BöJ$<û8N< ^Ô>6
I7?7<ûGI6Xƒ6?B RhÔä-0<H?B=O6 LM<>6ILö46ƒÔHRb;=ÔHRK8M86 Û,Û6ƒ;=RLMRK;@B 6=LN6x- o- ( " 28N< Y?^< 76†RKI ;@VY?BL
RK<>LN6ƒG$I|-0<HÔ`68B
J&<H8N< ^ÔH6 R¬Ôä- 6@Ý&B=O6 LM<>6ILöRKIBNRK?BöGIÛ- R¬Ôä-0<û?B$=O6 LM<>6I7L ‹Ü³? ^? - b- (' & q8N< Y?7< 76ÕG$I6oÔH68:;=ÔHRK8M868 ^ÔHÔ>68
FW=O6 LM<>B6=LMVY?BD476Q;@6=B:<>B6X RƒBLMRJK6=LM8:I7?6 O6 ?W=O6 LMRKÔH<û8NRBN<>VY?
,E68ERBBLM< ‹IBN8Û8VY?B`468 ¾ LNV ¾ L
<
=O6 BO6 8?VYXƒX›=O6 684|-0I7?76.;=ÔHRK8N86 ÔH8Û4WO6 ;@L
<>JK6?B!Ô>68Û47VY?7?³=O6 68`4768|V 6=BN8
?lV 7BN<>6?B ¾ RLö;@VY?7;=RBO6 ?7RBN<>VY?¶476†ÔH6IL:JRKÔ>6IL
82Ô- =O6 BNRBQ476oÔä- V 6=Bö<H?78NBNRK?7;=<
o
O6 476†ÔûR¬;=ÔHRK8M86 UÔH828VY?B
4WO6 ;@LM<>BN8 ¾ RLDI7?76q;
F7R H?6P46Q;=RLMRK;@B 6=LN68qGI^<|;@VYX ¾ LN6?74{Ô>68œ?VKBN<>VY?78D8NI7<>JRK?B68Qß
J$<H8M< ^<HÔH<HBO6 ä?VYX ß B ¾ 6 qJ˜RKÔ>6I7L <H?7<>BN<ûRKÔ>6
/2?£RBBLM< ^IB!68BÞV ‹ÔH< YRBVY<>LN6Xƒ6?BÞ?VYXƒX›O6 ¾ RL.;@VY?BLN6A8MRqJ$<H8M< ^<HÔH<HBO6 ˜8VY?†B ¾ R K6A6=B.8MRqJ˜RKÔ>6I7L!<û?7<>BN<HRKÔ>6
8VY?B RK;=I7Ô>BNRBN< 8
,E68ÞX =O6 BNFV$4768.4³O6 ^?7<H8M86?B!Ô>6œ;@VYX ¾ VKLNB6X£6?BÞ468!V 6=BN8Þ;@6 ¾ 6?747RK?B6ÔûÔ>68!8VY?B.8N6I7Ô>6X£6?B;=<HB=O6 68
6=BA?6 ¾ RLNBN<û;=< ¾ 6?B ¾ RK8 R£ÔHR†468N;@L
< ¾ BN<>VY?\47Ib;@VYX ¾ VKLNB6X£6?BA468œV 6=BN8 R†BLMRJK6=LM8AÔ>6ö47<HR KL
RKXƒX£6ö46
;=ÔHRK8N8N6 ^,Û68AX›=O6 BNF7V$468:8VY?BD8 ¾ O6 ;=< =O6 68 ¾ RLDÔ>6 ¾ LNVKBVKB ¾ 6Õ8NI7<>JRK?B2ß
ßB ¾ 6
J&<H8N< ^<HÔH<>B$O6 ä?VYX ¾ RL
RKX 6=BLN6 ß B ¾ 6 2JRKÔ>6IL ¾ RL 4³O6 ˆRKI7B
C`VYIBo;@VYXX£6 ¾ VYILoÔ>68oRBBLM< ^IBN8oÔ>6¬B ¾ R K6h46¬ÔHRxJRKÔ>6ILP476¬LN6=BVYI7L `Ô>6¬B ¾ R K6b6=B£ÔHR¼JRKÔ>6IL ¾ RL
4WO6 RKIBh468¬4^< D=O6 LN6?BN8 ¾ RLMRKX 6=BLN68h?76x8VY?B ¾ RK8¬V ‹ÔH< YRBVY<>LN68 ³Ü ? VYIBLN6”I7?6lX =O6 BNFV&46 ¾ 6IB\?6
¾ LN6?^4LN6öRKI7;=I7? ¾ RLMRKX 6=BLN6Õ?7<ÇLM6=BVYILM?6=LD476öJ˜RKÔ>6I7L
2 2
$
N
$ E 87 9#
2
- 2# D7
g]
2
2
c
h
E;
8
2# 27
2# D7
2
;
U7
F $
2#
2 ' h #
0 20 $
$7
F
F #
27
h
$0 h
D
d
2 h #
E' h #
$0
b
M
2# E
E
? D D ! 3
,`R# O6 ?W=O6 LMRKÔH<û8NRBN<>VY?h68BI7? ¾ LNV&;@68N8NI78WG$I7< ¾ 6=LMXƒ6=B³46q4³$O6 7^?7<>L4684VY?7?W=O6 68W6=BœI7?\;@VYX ¾ VKLNB6X£6?B
;@VYXƒXoI7?ƒ6?BLN6 ¾ ÔHI78N<H6ILM8!;=ÔHRK8N868E Ü ÔHÔH6 ¾ 6=L
X£6=B.46D4W$O6 7^?^<>L I7?6:;=ÔHRK8N86D476 ^RK86DR ¾^¾ 6Ô =O6 62;=ÔHRK8N86 " [!RLœÔHRÕ8NI^<>B6:86I^Ô>68³ÔH68³47<2Db =O6 LN6?7;@68W6?BLN6qÔ>68³;=ÔûRK8N868 . R ¾^¾ RLMR g>] BLNVY?B47RK?78 ÔH68³;=ÔHRK8M868 . $,E68
JRLM<HR^ Ô>68³6=BX =O6 BNFV$4768œ4VY?BÔHRPJ$<û8N<2^ <HÔû<>BœO6 68Bœ4³O6 ;=ÔHRL$=O6 6 (' & Q8N6=LNVY?BJ&<H8N<2‹Ô>68.I7?7<ûGI6Xƒ6?BW47RK?78
ÔHRQ;=ÔûRK8N86m‹7 ÔHÔ>6>!
[ RL;@VY?78O6 GI76?BœÔ>6ABd ¾ RK# 62468WRBBLM<2‹ IBN8$' ¾ RL
RKX 6= BLN68W6=B³JRKÔ>6ILM8.LN6=BVYILM?W=O6 68 ¾ RLWÔ>68
X›=O6 BNFV&468$' Ô>68 ¾ LNVKBVKBd ¾ 6846:X›=O6 BNF7V$468E&' ÔH68³;@VY?BLMRK<H?B68 ˆJ˜RKÔH6ILM8 ¾ RL4W$O6 0 RKIBW6=B³JRKÔ>6IL
8³<H?^<>BN<HRKÔ>68 6=BÕÔ>68ÕRK8N8V&;=<HRBN<>VY?78öLM6ÔHRBN<>JK68 R{
ÔHRh;=ÔHRK8N86 " 8VY?BPXƒRK<H?B6?$I68Q47RK?78ÕÔHRh;=ÔHRK8N86 E /2?6;=ÔûRK8N86
D¾ 6IBA<H?B6=LNJK6?7<HL:47RK?78 ¾ ÔHI78N<H6ILM8`# O6 ?³=O6 LMRKÔH<H8MRBN<>VY?78 ‹VY? ¾ RL
Ô>6ÕRKÔ>VKLM8:46V# O6 ?W=O6 LMRKÔH<û8NRBN<>VY?”XPI^Ô>BN< ¾ Ô>6
,ERN`# O6 ?W=O6 L
RKÔH<H8NRBN<>VY?l68BDLN6 ¾ L&O6 86?B=O6 6 ¾ RL:I7?hBL
<HRK?8Y# Ô>6Õ8MILD8VY?{6@Ý$BL&O6 Xƒ<HB†
O6 47I¼;>VKg B$£
O6 46ÕÔûRƒ;=ÔHRK8N86 " 6=BDI7?hRL
;QGI^<Ç68BALN6ÔH< O6 R
ÔHR£;=ÔHRK8N86 7B# Ö Ú ? D D * 1 9 1 9 1 1 * E ( ( e ## Z ‡_‰+7'Œ_ Z %
/2?6ƒRK8N8V&;=<HRBN<>VY? LN6 ¾ L&O6 86?B6¬I7?76oLM6ÔHRBN<>VY?~6?BLN646IÝxVYI ¾ ÔûI78N<>6IL
8:;=ÔHRK8M868Q4|- VF 6=BN8$ 9<ÞÔä-0RK8S
8V&;=<HRBN<>VY? LN6ÔH<>6¬46I&ݶ;=ÔHRK8N8N68$`' VY? ¾ RL
Ô>64|-0RK8N8NV$;=<HRBN<HVY?I^ <û?7RK<>LN6Û' 6ÔûÔ>668BoLN6 ¾ L&O6 8N6?B$=O6 6 ¾ RL†I7? BLMRK<>B
+Ö
MERE
FILLEB
FILLEA
T{O6 ?W=O6 L
RKÔH<H8NRBN<>VY?
Ö Ú
7P# = 6?BLN6:Ô>68³46I&݃;=ÔHRK8N8N68
Ö 9&<^Ôä-0RK8N8V&;=<HRBN<>VY?£LM6ÔH<>6ABLNVY<û8 ;=ÔHRK8N8N68.VYI ¾ ÔHI78ÞVY? ¾ RLMÔ>6A4|-0RK8M8V$;=<ûRBN<>VY?
?&SRK<>LM6 `6ÔHÔH668B†LN6 ¾ L&O6 8N6?B$=O6 6 ¾ RL†I7?›Ô>VY8NRK? K6bLN6Ôû<
O6 Rl;MF7RKG$I6h;=ÔHRK8N8N6 ¾ RL£I7? BLMRK<>B !,.-0<û?B6=LM8N6;@BN<>VY?
6?BLN62Ô- 6@Ý$BL&O6 Xƒ<HBQO6 4Û-0I7?6:RK8M8V$;=<ûRBN<>VY?6=BI7?62;=ÔHRK8N86 ¾ 6IB ¾ VKLNB6=LI7?¬?VYX G$I6qÔä- VY?\R ¾7¾ 6ÔHÔ>6AL VYÔH6 26
¾ ÔHI^8WI^?6QRK8N8V&;=<HRBN<>VY? ¾ 6IBœ;@VYX ¾ VKLNB6=L:468ARBBLM< ‹IBN8AG$I6QÔä- VY?hR ¾7¾ 6ÔHÔ>6öRBBLM< ^IBN8œ46QÔH<H6? 2RK?^8A;@6
;=RK82VY?”;@L$=O6 6†I^?6P;=ÔHRK8M86PG$I7<?6 ¾ VY8N8 646 ¾ RK8246†?VYX G$I6oÔä- VY?{LM6ÔH<>6 R¬Ôä-0RK8N8V&;=<HRBN<>VY? ¾ RLqI7?6oÔH< Y?6
6? ¾ VY<H?BN<HÔHÔ O6 8
'
8#
2
$
$
W
$
D
Hg `.
8.
2#
E ( ( ‚ [a '˜_ !a _ˆ‡_‰' "
,`R¬XoI7Ô>BN< ¾ ÔH<H;=<>B$ÕO6 ;@VY?7;@6=L
?6£Ô>6P?VYX:7LN6o4|- VF6=BN8qXƒ<H8:6?N6I ¾ VYI7L2I7?xÔH<>6? 7P# Ö ,+ D4Û-0I7?6PRK8M8VS
;=<HRBN<>VY?@7Ü ÔHÔ>62L&O6 ¾ VY?74 R£
ÔHR£G$I68BN<HVY?”ß7;@VYX^<H6?h4|- VF6=BN8A46QÔHR£;=ÔHRK8M86Q;@VY?78N<H4W=O6 L&=O6 6 ¾ 6IJK6?B96=g BLN6PXƒ<H8
6?¼LM6ÔHRBN<>VY?{RJK6;PI^?hVF 6=B:46ÕÔ-0RKIBLN6Õ6@Ý&BL&O6 Xƒ<>B$†
O6 46ÕÔä-0RK8M8V$;=<ûRBN<>VY?PÜ ÔHÔH6ö68B:4W$O6 7^?^<>6 ¾ RL2I7?h6?BN<>6=L
VYI¼I7?{<H?B6=LMJ˜RKÔHÔH6q8NVYI78AÔ>685ˆ0 VKLMX£68D8NI7<>JRK?B68Qß
A V@Ii A ' …
A:2 VI A ' 'S ' &6=BX A
A:2 ÕV@IL A ' 8NRK;
F7RK?B2GI76QÔ>68A?VKBNRBN<>VY? Ø 2 Õ6=BP8NVY?BhO6 G$I7<>JRKÔ>6?B68
Agglomération
Capitale
Ville
1
*
1
1
Pays
Ö
= T¼O6 ?³=O6 LMRKÔH<H8MRBN<>VY?'‹RK8M8V$;=<ûRBN<>VY?h6=BDXoI7Ô>BN< ¾ ÔH<H;=<>B$O6
? D ? '9 1 46!' * 1 ,`R£GI7RKÔû<27^;=RBN<>VY?b4|-0I7?76qRK8M8V$;=<ûRBN<>VY?'7RKI78N8M<|4³O6 ?VYXƒX›=O6 6QLN68NBLM<H;@BN<>VY?h4|-0I^?6öRK8N8V&;=<HRBN<>VY?'7;@VY?78M<H8B6
R{
8$O6 ÔH6;@BN<>VY?7?6=L†I7?¶8NVYI78S6?786X:^Ô>6¬4|- VF6=BN8 ¾ RL
Xƒ<.Ôä- 6?78N6X^ÔH6468PVF6=BN8oG$I7< ¾ RLNBN<û;=< ¾ 6?B Rl I7?6
RK8N8V&;=<HRBN<>VY?@!
,`RlLN68BLM<H;@BN<HVY? 68NB£L$O6 RKÔH<H8$=O6 6{RKIšX£V K 6? 4|-0I7? BNI ¾ ÔH6\4|-0RBBL
<2^ IBN8 ¾ RLNBN<û;=I7ÔH<>6=LM8E`' R ¾7¾ 6Ô O6
G$I7RKÔH<2^7 ;=RBN<DÛ0 VYI{;=Ô O6 ^' G$I7<Ç68B:IBN<HÔH<H8$QO6 ;@VY? VY<H?B6X£6?BDRJK6;PI7?hVF 6=BD46QÔûR£;=ÔHRK8N86Q8VYI7LM;@6
A
Ö Ö
qualificatif
B
D7
I7RKÔH< ^;=RBN<>VY?b4|-0RK8N8V&;=<HRBN<>VY?
27 $7
F
'
, -0<H?78BNRK?7;=<ûRBN<>VY?b4|-0I7?6qRK8N8V&;=<HRBN<>VY?hG$I7RKÔH< =O6 6ö4WO6 ^?^<>BWÔH6q?7VYX 4 68WV 6=BN8D8VYILM;@6q6=BA468BN<û?7RBN<>VY?
6=B³ÔûRöJ˜RKÔH6IL³47IGI7RKÔû< ^;=RBN< :<û?78N< Y;
F7RKGI76:<H?78NBNRK?7;@6D46DÔûRQ;=ÔHRK8N86 RK;=;@VYX ¾ R Y?W=O6 6Q476DÔHRöJRKÔ>6ILW47I
27 20 k Q'
A
'
#
++
27 D0d' 27
N
@
27
:
E ( E e ^Þ" +'Œ_ Z %
/2?6QRK# L&$O6 Y# RBN<>VY?x68BAI7?h;=RK8 ¾ RLNBN<H;=I7ÔH<H6=LW4|-0RK8M8V$;=<ûRBN<>VY?bVI¼
I7?6ö;=ÔHRK8M86ö68BA;@VYX ¾ VY8$=O6 6Õ46QÔ-0RKIBLN6
Ü ÔûÔ>6ö68BDLM6 ¾ L$O6 86?B=O6 6 ¾ RL2I7?{ÔHVY8NRK?8K# 6P4^I¼;>VKg B†
O6 476ÕÔHRƒ;=ÔHRK8M86P;@VYX ¾ VY8$=O6 6o6=B:I7?{BLMRK<>BDG$I7<ÛÔH6QLN6ÔH<>6 R¬
ÔHR
;=ÔHRK8N8N6:;@VYX ¾ VY8NRK?B6$ ܳÔHÔ>6œLN6 ¾ L$O6 86?B6qI7?6ARK8M8V$;=<ûRBN<>VY?¬RK8$ X›=O6 BLM<ûGI6247RK?78.ÔûRKGI6ÔûÔ>6AÔä-0I7?6:468 ;=ÔHRK8M868
68Bö;@VYX ¾ VY8NRK?B6ƒ46£Ôä-0RKIBLN6£8NRK?^82G$I6£Ôä-0RKIBLM6o?6£8VY<HB2BL
<2^ IBNRK<>LM6P46£8VY?l6@Ý<H8B6?7;@6@2
k I”;@VY?BLMRK<HLN6'
ÔHR†;@VYX ¾ VY8N<>BN<HVY?¬68NBAI7?b;=RK8 ¾ RLNBN<H;=I^ÔH<>6=L³4Û-0RK# L$$O6 Y# RBN<>VY?xG$I7<(?³O6 ;@68N8N<>B6PÔä- 6@Ý&<û8B6?7;@6ö46öÔä-0RKIBLN6 ܳÔHÔ>6268B
LN6 ¾ L&O6 8N6?B$=O6 6 ¾ RL ÔHRÕX 6g X£6:8 & X:( VYÔû<H8NRBN<>VY?£G$I6AÔä-0RK# L&$O6 Y# RBN<>VY?)RQ
Ô- 6@Ý&;@6 ¾ BN<HVY?47IƒÔHVY8NRK?8K# 6DG$I7<&68B ¾ Ô>6<H?
Ü ?B6=LMX£6246:XoI7Ô>BN< ¾ ÔH<H;=<>B$O6 Y' Ôä- 6@Ý&BL$O6 Xƒ<>B$öO6 46:Ô-0RK# L$$O6 Y# RBN<>VY?\VYI¬462ÔHRQ;@VYX ¾ VY8N<HBN<>VY?47I;>VKg BQO6 476DÔHRÕ;=ÔûRK8N86
;@VYX ¾ VY8NRK?B6h68B£VYIJK6=LNB6¼4^RK?78£Ô>68†46I&Ý*;=RK8£BNRK?747<H8†G$I6h46hÔä-0RKIBLN6Þ
' 47I*;>VKg B$xO6 ;@VYX ¾ VY8$O6 ' 6ÔHÔ>6\68B
#`O6 ?³=O6 LMRKÔ>6X£6?Bq;MF7< Çb L&=O6 6
G$I7RKÔH< ^;=RBN< (<H46?BN< 76†I7?”8VYI78S6?78N6X ^ÔH6o468ö<û?78BNRK?7;@68q46 GI^< ¾ RLMBN<H;=< ¾ 6?B RbÔä-0RK8N8V&;=<HRBN<>VY? Ç,`R
G$I7RKÔH< ^;=RBN<HVY? ¾ RLNBN<>BN<>VY?^?6öÔä- 6?786X ^Ô>6ö4|-0RLNL
<>J.=O6 6Q6=BDL$O6 47I7<>BARK<HB?^8N<ÇÔHR£XPI^Ô>BN< ¾ ÔH<û;=<>BqO6 476QÔä-0RK8N8V&;=<HRBN<>VY?
Moteur
1
Voiture
,+
Ö
#
*
!
!
!
*
# $#
/2?6QR KL&O6 YRBN<>VY?
"! *
"!
8
c 5;
E, 68h47<HR KLMRKXƒXƒ68¬4|-U=O6 BNRBN8SBL
RK?78N<>BN<>VY?^8¼4³O6 ;@LM<>JK6?B¼I7?6xJ$I6~4 &?7RKXƒ<ûGI6x47I 8 $8NB 6Xƒ6 UÔH8\8VY?B
LN6 ¾ L&O6 8N6?B$O6 8 ¾ RLq47682RKI7BVYXƒRB68 R =O6 BNRBN8 ^?7<û8D;@VYX ¾ VY8$O6 8Q46oBLMRK?78M<>BN<>VY?78 (4|- =O6 J.O6 ?6Xƒ6?BN8Õ6=Bq4Û-0RK;@BN<uS
J&<>BO6 8 ^,ER8O6 XƒRK?BN<ûGI6Õ6=BDÔHR£?VKBNRBN<>VY?x8VY?BD;@6ÔHÔ>68A4768A8BNRB6;MF^RLNBN8:476 :RLN6Ô Ø
$
V7
Ve
$'
+ ? ? . /2? =O6 BNRBœ68NBWLM6 ¾ L$O6 86?BO6 ¾ RLI^?ƒLN6;@BNRK?8#YÔH6qRKIݬ;@VY<H?78WRLNLNVY?74^<H8UR†
Ôä- 6@Ý;@6 ¾ BN<>VY?\468=O6 BNRBN8œ<H?7<>BN<ûRKI&Ý
6=B7‹?7RKI&ÝÛ,.- =O6 BNRBo<û?7<>BN<HRKÔ!68BÕLN6 ¾ L&O6 86?BO6 ¾ RLÕI7? 47<û8NGI76†?7VY<>LQ6=BPÔ- =O6 BNRB7^?7RKÔ ¾ RLPI7? 4^<H8NG$I6 ¾ Ô>6<H?
6?BVYIL$O6 RL¬I7?©;@6=LM;=Ô>6WÜÞÝ;@6 B~
O6 Ô>68 =O6 BNRBN8h<û?7<>BN<HRKI&ݛ6=B 7‹?7RKI&Ý' ;MF7RKG$I6 =O6 BNRB 6I7B VY8N8O6 46=LbÔ>68
¾
RK;@BN<>J&<>BO6 8:8MI7<>JRK?B68öß
¾
¾
Name of state
Entry / Action
Exit / Action
Do / Activity
On event / Action
Ö
" A:VKBNRBN<>VY?{4Û-0I7?
U
=O6 BNRBD6?x/ x,
¾
+"
S0
...
Sn
Ö
# A:VKBNRBN<>VY?{4|-0I^?h47<HR#KLMRKXƒXƒ6Q4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78
événement(paramètres)[conditions]
/actions
S1
S0
$ ADVKBNRBN<HVY?{4|-0I7?762BL
RK?78N<>BN<>VY?h;@VYX ¾ Ô>6@Ý&6
ߋRK;@BN<>VY?h6@Ý O6 ;=I7B=O6 6LR£
Ô- 6?BL&=O6 6o46QÔä- =O6 BNRB
entry / action
ß^RK;@BN<>VY?¼6@Ý O6 ;=IB$=O6 6LR£
ÔHR£8VKLMBN<>6Õ46QÔä-U=O6 BNRB
exit / action
ß^RK;@BN<>VY?{6@Ý O6 ;=IB$=O6 6 Rƒ
;
F7RKGI76V‰0 VY<û8œGI6QÔ- =O6 J.O6 ?6X£6?B2;=<HBoO6 8NILNJ&<>6?B
on event / action
ß7RK;@BN<HVY?¼L&O6 ;=ILNLM6?B6QVYIx8N<2Y# ?7<D^7 ;=RBN<>JK6&' 6@Ý O6 ;=IB$=O6 6ƒ47RK?^8œÔä- =O6 BNRB
.o-0RKIBLNdo6 ¾ /Ractivity
LNBœI7? =O6 BNRB ¾ 6IBœ;@VY?B6?^<>LAI7?h47<HRK# L
RKXƒX£6ö4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78:<H?B6=L
?6ö4VY?BAÔ- =O6 BNRBm7^?7RKÔ
4VY<>BL6=g BLN6 RBB6<H?B ¾ VYIL¬6@Ý O6 ;=IB6=L¼BVYIB6 RKI7BLN6xBL
RK?78N<>BN<>VY? 6@Ý&B6=LM?6 R*
Ôä- =O6 BNRB$mq. RK?78h;@6~;=RK8hÔä- =O6 BNRB
6?8#YÔ>V‹ RK?BQÔ>6ƒ8NVYI78S47<HRK# L
RKXƒX£6†68BÕR ¾7¾ 6Ô ƒ
O6 8NI ¾ 6=LNS˜=O6 BNRB$` ,ER¼?VKBN<HVY?~46ƒ8NI ¾ 6=LS=O6 BNRB ¾ 6IBöRKI78N8M<6=g BLN6
IBN<HÔû<H8=O6 6QÔ>VKLM8NG$I|-0<HÔ(;@VY?BN<>6?B2Ô>6Q47<HRK# L
RKXƒX£6Q;@VYX ¾ ÔH6=BA4|-0I7?6öJRLM<HR^ ÔH62VYI{4|-0I7?h8 & 8Bc6 X£6
? ? D /2?6bBLMRK?78N<HBN<>VY?›68B£LN6 ¾ L&O6 86?B=O6 6 ¾ RLƒI^?66;MF6{47VY?B£Ôä- VKLM<DY# <H?6\68B£LN6ÔH< =O6 6 R”
Ôä-U=O6 BNRB¬8NVYILM;@6b6=B
4VY?BÕÔHR¼4768BN<H?7RBN<>VY? 68BP;@VY?7?76;@B=O6 6IRx
Ôä- =O6 BNRBo;=<2‹ Ô>6E Ü ÔûÔ>6†68BP4WO6 ;@VKL&=O6 6 ¾ RLPÔ>6?VYX 46Ôä-U=O6 J.O6 ?76X£6?B
4WO6 ;=Ô>6?7;
F6ILo8NI7<>J&<Õ=O6 JK6?BNI6ÔûÔ>6X£6?BÕ46 ¾ RL
RKX 6= BLN68$`' 476ƒ;@VY?747<>BN<>VY?^8ö46ƒ4³O6 ;=Ô>6?7;
F6X£6?B Y# RLM476 26=B
4|-0I7?76ÕÔH<H8B6Q4Û-0RK;@BN<>VY?78 Rƒ
6cÇb 6;@BNI6=LEÇ ,Û68 ¾ RLMRKXM6= BLN68q8VY?B:4WO6 ;@LM<HBN8D6?BLN6 ¾ RLN6?BNF6 8N68$( ,`R;@VY?74^<>BN<>VY?
46A4WO6 ;=Ô>6?^;MF6X£6?B.68B 6@Ý ¾ L
<HX =O6 6œ6?BLM6D;@LNV&;MF6=BN8³R ¾ L$6 8.Ô>6A?VYX 476AÔä- =O6 J.O6 ?6X£6?BW6=B.ÔHRöÔH<H8B6œ4|-0RK;@BN<HVY?78
68BD8$O6 ¾ RL$=O6 6o468ABLNVY<H8 ¾ L&O6 ;‹O6 46?BN8¼O6 Ô
O6 X£6?BN8 ¾ RLDÔH6Q;=RLMRK;@Bc6= LN6¬- × -2
? ? D 1 9 ! 1 ,`RA;@VY?7;=ILNLM6?7;@6 ¾ 6IB+6=g BLN6.6@Ý ¾ LM<HX›=O6 6 8NVYI78Û46I&ÝU‰0 VKL
X£68E47RK?^8|Ô>68Û47<HRK# L
RKXƒX£68|4|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78³ß
m2. 68¬J˜RL
<HR^ Ô>68£47I 8 $ 8NBc6 Xƒ6 ¾ 6IJK6?BM6=g BLN6{6? ;@VY?7;=ILNLM6?7;@6{47RK?78;@6x;=RK8I^?6{;@VY?747<HBN<>VY?š46
BL
RK?78N<>BN<>VY?b4|-0I^?624768W476I&݁JRLM<HR^ Ô>68W68B6@Ý ¾ LM<HX›=O6 6q6? ˆ0 VY?7;@BN<>VY?b46öÔä-U=O6 BNRBD47Ib47<ûRK# LMRKXƒX£6q46
Ô-0RKIBLN6¬;@VYXX£6 ¾ VYILoÔ>68QJRLM<HR^ ÔH68 6=B 46\ÔHRi7PY# I7LN6 Ö Ù !
Ü ? 6cÇb 6=B†47RK?78ÕÔH647<HRK# LMRKXX£6
X
Y
4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78Q46 Ô>6 ¾ RK8N8NRK# 6ƒ476ƒÔä- =O6 BNRB
Rh
Ôä- =O6 BNRB 68BQ;@VY?747<>BN<HVY?7?³O6 ¾ RL X =
6?{L&$O6 0 =O6 LN6?7;@6 R
Ôä-U=O6 BNRYBq47I{4^<HRK# LMRKXƒX£6P4|- =O6 BNRy1
BN8SBLMRK?78N<HBN<>VY?7y28246 S`[ VYI7L2G$I6ÕÔHRƒBLMRK[IN
?78N<>BN<HVY?
x1]
X
476
R
I7<û8N86ö8=- 6@Ý O6 ;=I7B6=LE‹' <HÔ0 RKIBAG$I6ÕÔä-U=O6 BNRB2;@VYILMRK?BD47Ih47<HRK# L
RKXƒX£6Q46 8NVY<>B y1 y2 ¾
. 6I&Ý 8VYI78S47<HRK# LMRKXƒXƒ68 ¾ 6IJK6?B 6=g BLN6 6? ;@VY?7;=I7LNLN6?7;@6*6=B 47RK?78~;@6 ;=RK8¶Ô>6X8”46I&݅x18NVYI78S
Ú m2
4^<HRK# LMRKXƒX£68\86=LNVY?B¬8M<>BNI³O6 8 R Ôä-0<H?B=O6 LM<>6IL\4|-0I7?i=O6 BNRBh47I 47<HRK# LMRKXƒXƒ6{4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY? 47I
8$ 8B$6 X£6 7P# Ö =Ø Ö
+#
System
Y
X
OP[IN X = x1]
OP
x1
y2
y1
x2
.2<ûR#KLMRKXƒX£68A4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78:;@VY?^;=ILNLN6?BN8
Ö Ù
E1
OP
*
!
S0
...
Sn
Sn
.q<HR#KLMRKXƒX£68D;@VY?7;=ILNLN6?BN8DRKI{86<H?h4|-0I7?©=O6 BNRB
Ö =Ø
S0
...
!
!
!"
E2
! "%
!
,E68Û47<HRK# LMRKXX£68Û46.8$O6 G$I6?7;@68 6=LMX£6=BB6?BE46.X£V&4³O6 ÔH<H86=LÛÔH68ÛRK8 6;@BN8Û48&?7RKXƒ<HG$I68|468E8 $8NBc6 Xƒ68$
;ÔH8:XƒVY?BLN6?BöÔ>682<H?B6=L
RK;@BN<>VY?7826?BLM¾ 6oÔ>682VF6=BN8$Ç,ER\LN6 ¾ L&O6 8N6?BNRBN<>VY?~¾ 8N6o;@VY?7;@6?BLN6£8NILqÔHR\8O6 GI76?7;@6
4|-0<H?B6=LMRK;@BN<>VY?*4|-0I^? ¾ VY<H?B†46¬J&I6bB6X ¾ VKLN6ÔQ!
Ü ÔûÔ>6¬86bBLMRK4^I7<>B ¾ RL£Ôä- 6?JKVY<œ476\X£68M8NR#K68£6?BLN6hÔ>68
47< D
b =O6 LN6?BN8AVF 6=BN8A47I¼8$ 8B$6 X£6
? D@
= ! ,E68QRK;@B6ILM8P4|-0I7?~47<HR#KL
RKXƒX£6ƒ46ƒ8$O6 G$I6?7;@68NVY?BÕÔH68öVF6=BN8Q47I~8 &8Bc6 X£6¬4W$O6 7‹?7<H8ö47RK?78ÕÔ>6£47<HR˜S
#KLMRKXƒXƒ6P4|- VF6=BD<H?^8BNRK?7;=< O6 R ¾ RLNBN<>LD4768D;=ÔHRK8N8N68D47I¼4^<HR#KLMRKXƒX£6P46Õ;=ÔHRK8N8N68$S.qRK?78:;@6P47<HR#KL
RKXƒX£6'
Ô>68¼=O6 J.O6 ?6Xƒ6?BN8Õ6@Ý$B$=O6 LM<>6I7LM8q?6o8NVY?B ¾ RK8 ¾ LM<H8D6?”;@VYX ¾ B6| ,Û68q86I7Ôû8 ¾ FWO6 ?7VYX 6 ?68Q4WO6 ;@LM<>BN8q8VY?BqÔ>68
<H?B6=LMRK;@BN<>VY?78:6?BLN6PÔ>68:47< D
b =O6 LN6?BN8:VF 6=BN8:4^I{8 & 8Bc6 X£6| /:?{VF 6=BD68B2XƒRB=O6 LM<HRKÔH<H8$O6 ¾ RL2I7?¼LN6;@BNRK?PY# Ô>6
?VYXƒX›O6 ¾ RL:8VY?{?VYXM - ? h
R VYIB6PI^?69^ RLNLN6öJK6=LMBN<H;=RKÔ>6ÕG$I7<|;@VKLNLN68 ¾ VY?^4 Rƒ 8NRƒÔû<2Y# ?6ö46QJ&<>6ö6=BDG$I7<
LN6 ¾ L&O6 8N6?B6oI7?hR˜Ý$6ÕB6X ¾ VKLN6Ô ¾ 6=LMX£6=BBNRK?BD46Q47RB6=L2Ô>68A;@VYXƒXoI7?7<û;=RBN<>VY?78$
OBJET1
Ö K
OBJET2
#
,Û68:RK;@B6ILM8:4|-0I7?h47<HR KL
RKXƒX£6Q46Q8$O6 G$I6?7;@6
+$
? D@ D ;>!*
,E68œX£68N8NRK# 68 ¾ 6=LMX£6=BB6?BœÔHR†;@VYXƒXoI7?7<H;=RBN<>VY?\6?BLN6öÔ>6847< bD=O6 LN6?BN8V86=BN8œ47I\8 &8Bc6 X£6P;ÔH8W;@VKLS
LN68 ¾ VY?7476?B 8NVYIJK6?BVRÕ
Ô-0R ¾7¾ 6Ô74|-0I7?6:X =O6 BNFV$47624|-0I^?ƒVF6=B ¾ RL;@6ÔHÔ>6:4|-0I7?RKI7BLN6>;ÔH8 ¾ 6IJK6?B³RKI^8N8N<
8N<2Y# ?^<277 6=LqÔä- 6?JKVY< 46£4VY?7?W=O6 68$E' ÔûR\;@L&O6 RBN<HVY? VYI ÔHRb468NBLMI7;@BN<>VY?~4|-0I^?xV8 6=BöVYI~4|-0RKI7BLN68öV ¾ =O6 LMRBN<>VY?^8$
/2?hVF 6=BALN6;@6=JRK?B2I7?hX£68N8NRK# 6 ¾ 6I7B5¬
L&O6 ¾ VY?74LM6Q8NRK?78AG$I6Q;@6ÔHRƒ8NVY<>BA8 & 8BO6 XƒRBN<HG$I6
OBJET1
OBJET2
Message
Réponse
Ö Ú
#
#
,Û68DX£68N8NR K68:4|-0I7?h47<HR KL
RKXƒX£6Q46Õ8$O6 G$I6?7;@6
? D@ D 4 / 1 9 6?JKVY<>6†I7?{X£68M8NR#K6MR¬
I7?{RKI7BLN6ÕVF6=B
'^;@6†X£68N8NR#K6 ¾ 6IB
,EVKLM8NG$I|-0I7?¼V86=B
6=g BLN6¬I^?~R ¾7¾ 6ÔÞ4|- 6@Ý O6 ;=OBJET1
IBN<HVY?¶4|-0I7?76†X›=O6 BNF7V$46_.2RK?^8Õ;@6;=RK8$'`Ô>6†B6X ¾ 8QG$OBJET2
I7<Þ8=-UO6 ;@VYI7Ô>6¬6?BLM6Ôä-0RLNLM<HJ.=O6 6
47IlX£68N8NR#K6†6=BöÔ>6PLN6?JKVY<P=O6 JK6?BNI6ÔÞ46†ÔHR¬L$O6 ¾ VY?^86P68NB2I7?xB6X ¾ 8q4|- 6@Ý O6 ;=IBN<>VY?~G$I6†Ôä- VY?{LM6 ¾ L$O6 86?B6
. -0RKI7BLN6 ¾ RLNBœÔHR†46XƒRK?^46ö4|- 6@Ý O6 ;=IBN<HVY?
¾ RLAI7?\LN6;@BNRK?PY# Ô>6Q8NILAÔHR†ÔH<DY# ?624762J&<>6ö46öÔä- VF 6=Bœ;@VY?7;@6=LM?WO6 fP
46\ÔHR{X›=O6 BNFV&46 ¾ LNVŒJ$<>6?BP4Û-0I7?6X›=O6 BNFV&46b47I ¾ LN6Xƒ<>6=LPVF 6=BoGI^< 8=- 6@Ý O6 ;=IB6¼86Ô>VY? I7?6¬4^IL$=O6 6¬G$I7<
6?8Y# Ô>VÇ 6QÔHR£4^IL$=O6 6Õ4|- 6@Ý O6 ;=IBN<>VY?{476QÔHR£X =O6 BNFV&46ÕR ¾7¾ 6Ô =O6 6
OBJET2
OBJET1
Message
Réponse
Ö
E= .q<HR#KLMRKXX£6Õ46Q8$O6 G$I6?7;@6oRJK6;QB6X
¾ 8A4|- 6@Ý O6 ;=IBN<>VY?l468AX›=O6 BNFV&468
? D@ ? 4 ,EVKLM8q46oÔ-0IBN<HÔH<H8MRBN<>VY?¼4|- 6@Ý ¾ LN68N8M<>VY?78D;@VY?^47<>BN<>VY?7?76ÔHÔ>68AÔHR\ÔH<2#Y?76P46PJ$<>6 ¾ 6IB:6=g BLM6†4WO6 47VYI8^Ô =O6 6 7P#
ÔûRXM6g X£6£47RB6Ç,Û682X£68N8NR#K68qG$I7<
Ö @Ö ¾ VYIL ¾ 6=LMX£6=BBLM6P4|- 6@Ý O6 ;=IB6=LQÔä-0I7?6ÕVYIxÔä-0RKI7BLN6PX›=O6 BNFV&46iR¬
4W=O6 B6=LMXƒ<û?6?B:Ôä- 6@Ý O6 ;=IBN<HVY?{;@VY?747<HBN<>VY?7?6ÔHÔH6:468A476I&ÝbX›=O6 BNF7V$468AVY?BDÔûR£X 6g X£6ÕVKLM<DY# <H?6 ,ER£;@VY?74^<>BN<>VY?
68BbO6 ;@LM<HB6Õ6?BLN6Õ;@LNV&;MF6=BN8:46=JRK?BDÔ-0R ¾7¾ 6Ô(476ÕÔHR£X›=O6 BNFV&46
? D@ D@ !9 4 1 46
- ? ¾ 6IBPRKI^8N8N< R VYIB6=L£468oÔH<2Y# ?68P46 ¾ 86I74VS;@V&46¬6? XƒRL&K# 6\46bÔHRxÔH<2Y# ?6476¬J&<>6¬476¬Ôä- VF 6=B
;@VYXƒX£6b47RK?78oÔä- 6@Ý&6X ¾ Ô>6\8NI7<>JRK?B 7P# Ö + 1U; ;=<³VY?*IBN<HÔH<H8N6ƒ47I ¾ 86I74VS;@V&46 ¾ VYILoX£V&4³O6 ÔH<H86=L†I7?6
ÇVYI7;=Ô>6
+Ù
OBJET2
OBJET1
[Condition1] méthode 1
[Condition2] méthode 2
#
Ö @Ö
/DBN<ûÔH<H8NRBN<>VY?b46Q;@VY?^47<>BN<>VY?78œ4^RK?78AI7?h47<ûR KLMRKXƒX£6Q46Q8$O6 G$I6?7;@6
OBJET1
OBJET2
while fin>0 do
end while
+ /:BN<HÔH<û8NRBN<>VY?b46 ¾ 86I^4VS;@V$4768A47RK?78AI^?h47<HR#KLMRKXƒXƒ6Q46Q8O6 GI76?7;@6
? D@ 3 3* !
,E68³;@VY?BLMRK<H?B68B6X ¾ VKLN6ÔHÔ>68 8VY?B4WO6 ;@LM<>B68VRo
Ôä-0RK<H46:46DLN6 ¾ 6= LM68³B6X ¾ VKLM6ÔH8 8NI7L³Ô>68WÔH<2#Y?68 46DJ&<>6
468 VF6=BN8³6=B ¾ RL³I7?6:;@VY?747<>BN<>VY?ƒ6?BLN62;@LNV&;MF6=BN8³6?IBN<ûÔH<H8NRK?B.Ô>68.LM6 ¾ 6= LN68 6?¬XƒRLK# 6247Iƒ47<HR#KL
RKXƒX£6
7P# Ö " Ö
OBJET2
OBJET1
Message1
x
Réponse1
...
[y-x<1heure]
"
Ö
#
Message2
y
#
/:BN<HÔH<û8NRBN<>VY?b46Õ;@VY?BLMRK<H?B68AB6X ¾ VKLN6ÔûÔ>68œ47RK?78AI^?h47<HR KLMRKXƒXƒ6Q46Q8O6 GI76?7;@6
*
!
%
*
!
&
!
#
$1.
/ ?*47<HR KLMRKXƒXƒ6\4|-0RK;@BN<HJ$<>B$h
2
O6 68B£I7?76¬JRLM<HRK?B6h468†47<HR KLMRKXƒXƒ68o4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78 qRK?78£I7?
47<HR KL
RKXƒX£6¬4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78 !Ô>68~=O6 BNRBN8£6=B†Ô>68ÕBLMRK?78N<>BN<HVY?78Õ8VY?B†Xƒ<H8Q6?›RJRK?B†RKÔHVKLM8PG$I6\47RK?78
I7?›47<HR KLMRKXX£6¬4|-0RK;@BN<HJ$<>B$O6 8 .;@6b8VY?B£Ô>68PRK;@BN<HJ$<>B$O6 8£G$I7<W8VY?B†Xƒ<H8N68Õ6?*RJRK?B .,Û68†46I&Ý B ¾ 68†46
47<HR KL
RKXƒX£68 ¾ 6=L
X£6=BB6?BbRK<H?78M<D4|-0RJKVY<>Lh46I&Ý J&I68¬4^< D=O6 LN6?B68b8NILbÔ>68\RKIBVYXƒRB68h47I 8 $8NB 6Xƒ6
/2? 47<ûR KLMRKXƒX£6b4|-0RK;@BN<>J&<>BO6 8oJ$<H8MI7RKÔH<H86¬I7? KLMR ¾ F7<HG$I6¬4|-0RK;@BN<HJ$<>B$O6 8†G$I7<³XƒV$4WO6 ÔH<û86¬Ô>6\;@VYX ¾ VKLNB6X£6?B
4|-0I7?76bX›=O6 BNF7V$46 ³,Û68ƒ47<ûR KLMRKXƒX£68ƒ4Û-0RK;@BN<>J$<HBO6 8¬IBN<HÔH<û86?B Ç6RKI7;@VYI ¾ 4|-UO6 Ô O6 X£6?BN8\468£47<HR KLMRKXX£68
4|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78P6? BNRK?BoGI6¬J˜RL
<HRK?B6¬46¬;@6\46=LM?7<>6=L Û/:? 47<HR KLMRKXƒXƒ64|-0RK;@BN<>J&<>BO6 8ÕLM6 ¾ L$O6 86?B6
Ôä-U=O6 BNRB¬476{Ôä- 6@Ý O6 ;=I7BN<>VY? 4|-0I^?šX O6 ;=RK?7<H8NX£6 ³8VYI78ÔûR ‰VKLMXƒ6¼4|-0I7?š4W=O6 LNVYI7ÔH6X£6?B¬4|- =O6 BNR ¾ 68¬LN6 KLNVYI ¾ =O6 68
8$O6 G$I6?BN<H6ÔHÔ>6X£6?Bƒ47RK?78£468 7LMRK?7;
F68 ¾ RLMRKÔHÔ 6ÔH68£46 7VKBN8ƒ46¼;@VY?BL VYÔ>6 ³,Û6¼4WO6 ^IB£6=BƒÔûR ‹?š4|-0I7?
X›O6 ;=RK?7<H8MX£6Q8VY?BD4³O6 ^?7<H8LM68 ¾ 6;@BN<>JK6X£6?B ¾ RLAI7? =O6 BNRB:<H?^<>BN<HRKԋ6=BDI7? =O6 BNRB ^?^RKÔ RK;=I7Ô>BNRBN< ,Û68DRK;@BN<uS
#
#
#
#
$'
#
$7
N
$'
b
)#
'
Q
0
$
#
Hg $
m7 S0
d
#
$#
L7
D0d
c "Ø
Mg
,
#
J&<>BO6 8œ4|- =O6 BNRBN8D86q?VKB6?BA462ÔûRPX 6X£6QXRK?7< 6=LN6öGI76247RK?^8³Ô>6847<ûR KLMRKXƒX£684|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78D86Ô>VY?
G$I|- 6ÔHÔ>6828VY?B26@Ý O6 ;=IB=O6 68Õ6?l6?BL$=O6 6
:47IL
RK?BqÔä- 6@Ý O6 ;=I7BN<>VY?~46†Ôä- =O6 BNRB
œVYIl6?”8VKLNBN<H6
entry
do
exit
Ö Ù
7P# ? = ! #
F
c 8;
,E68œRK;@B6ILM8œ47I\47<HR KLMRKXX£628NVY?BœÔ>68WV 6=BN8œ47Ib8 &8B 6X£6 UÔû8³8VY?BLN6 ¾ L&O6 86?BO6 8 ¾ RLœ468WBLMRJ.=O6 68
?VYXƒX›=O6 68 ¾ RLAÔ>6ö?VYX 46öÔä- V 6=B ‹TF7RKG$I6 ¾ RK8N8MR K6Q4|-0I7?62BLMRJ.=O6 6 R£Ôä-0RKI7BLN6 ¾ RLAI7?6qBLMRK?78M<>BN<>VY?¬68B
;@VY?78N<û4³=O6 L$P
O6 ;@VYXƒX£6PI7?hR ¾7¾ 6Ô|46QX›=O6 BNFV&46Õ4|-0I^?bV 6=B ¾ RLDI7?6öRKIBLM6Õ46QÔä- V 6=BœLN6ÔHRBN< R£ÔHR†BL
RJ.=O6 6
Ö
7P# # F $
#
F
OBJET1
F
D05
OBJET2
...
E0
F1
...
E1
Ö
#
F2
#
,Û68ARK;@B6I7LM8D4|-0I^?h47<HR KLMRKXƒXƒ6Q4|-0RK;@BN<>J&<>BO6
? D .0/ ! 1 96 '1 1 9 !3!
,E68ö6@Ý O6 ;=IBN<HVY?78Q;@VY?7;=ILMLN6?B68Õ47RK?78öI7?”47<HR#KL
RKXƒX£6ƒ4|-0RK;@BN<>J&<>B$ƒ
O6 ?6ƒ86£?VKB6?B ¾ RK8ö476ƒÔHRbX 6g X£6
XƒRK?7<Q6= LM6GI76ƒ47RK?78QÔ>68Õ47<HR#KLMRKXƒXƒ68Q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78$ - ? IBN<HÔû<H86†I7?6 ^RLNLM6ƒFVKLM< =VY?BNRKÔ>6 ¾ VYIL
4W$O6 ^7 ?7<HLAÔ>69ˆ0 RK<HBAGI6QÔ- VY?M‰0 L
RK;@BN<>VY?7?6QÔ>6 ^VKBD4|- 6@Ý O6 ;=I7BN<>VY?¼6? ¾ ÔHI78N<>6I7LM8 7B# Ö $ OBJET1
E0
E2
E1
E3
Ö
$
V
#
Ü.Ý O6 ;=IBN<HVY?78D;@VY?7;=I7LNLN6?B68A46 7L
RK?7;MF68D4|-0I7?h47<HR KL
RKXƒX£6Q4|-0RK;@BN<>J&<>B$O6
? D 3 4 1 63 / 1 4 /2? ¾ VY<û?BÕ476\;
FVY<uݶ68B†I7?6b;@VY?747<HBN<>VY? J$LMRK<>6\VYII0 RKI78N8N6\G$I7<W4³=O6 B6=LMXƒ<H?6bÔä- VKLM<H6?BNRBN<>VY?›47I 7VKB
4|- 6@Ý O6 ;=IBN<>VY?x6?BLN6 ¾ ÔHI78M<>6ILM8K7LMRK?^;MF68:47I¼47<HR#KL
RKXƒX£6P;ÔH8A8VY?BDLM6 ¾ L$O6 86?BO6 8 ¾ RL2I7?¼Ô>VY8MRK?8#K6PRJK6;
I7?6ö;@VY?74^<>BN<>VY?'&6?BLN6Q;@LNV&;MF6=BN8$'‹R ¾7¾ ÔH<HG$IW=O6 6jR£
ÔHR†BLMRK?78M<>BN<>VY?b;@VYXƒX£6 [i 10] 47RK?^8œÔä- 6@Ý$6X ¾ Ô>6ö8NI7<>JRK?B
7P# Ö Ù "&
OBJET1
do afficher(i)
[else]
[i>10]
#
Ö Ù
!
,Û68 ¾ VY<H?BN8A46Q;
FVY<uÝh47RK?78AÔ>68D47<HR KLMRKXƒXƒ68œ4|-0RK;@BN<>J&<>BO6
!
8# # - - 8 '
$
P0
$7
+Y
2
F U
: 2# >4]
27
0
D
; !5 ? = U %g
27
? - 8# # 0
$'
c$ #
$ H g
d
H :g D7
)g
F
Tœ,
6;@BWTVY?78BLMRK<H?B ,`RK? YI7R K6 .68B³I7?76A;@VY?BLM< ^IBN<>VY?ƒ4ÛRÕ/ x,
=Ø &TVYXƒX£6
8VY?ƒ?7VYX Ôä-0<H?74^<HGI76 Œ<HÔ ¾ 6=LMX£6=B.4Û- 6@Ý ¾ L
<HX£6=LÞÔ>68.;@VY?BLMRK<H?B68 47RK?^8.Ô>6œ;@VY?B6@Ý&B6q/ x, ,E68.;@VY?BLMRK<H?B68
4|-0I7?ö8 $8B 6X£6W8VY?BE468Û<H? ‰VKLMXRBN<>VY?78Ç8NI ¾7¾ Ô
O6 X£6?BNRK<HLN68|<HX ¾ VKLNBNRK?B68ÛG$I7<K?|- VY?B ¾ RK8 ¾ I 6=BLN6W8 ¾ O6 ;=< =O6 68
R¼Ôä-0RK<û46£4|- O6 Ô
O6 X£6?BN8†46ƒXƒV$4WO6 ÔH<û8NRBN<>VY? 4WO6 ^?^<H8ö47RK?78QÔH68Q47<HR KLMRKXX£68Q/ {, TW6ƒÔHRK? YR K6 ‰VKL
X£6Ô.R
=O6 B¬
O6 ;@VY? ;=I ¾ VYILqGIÛ-0<HÔ`8NVY<>Bö;@VYX ¾ L&O6 F6?78M< ^Ô>6 ¾ RLö468ö<H? ˆVKLMXƒRBN<H;=<H6?78 ¾ VYILqG$I|-0<HÔ8=-0<H?B 6 KLM6ƒ47RK?78qÔHR
?VKBNRBN<>VY?oVKLM<H6?B$=O6 6œV 6=BÞ4|-0/ x,b6=B ¾ VYI7LQ=O6 J&<>B6=L.468!?VKBNRBN<>VY?78!XƒRBNFWO6 XRBN<HGI768 T, ¾ 6=LMX£6=B!RK<H?78N<
46QÔH<ûXƒ<>B6=LœÔ>68ARKX ^< YI HBO6 8DBVYIBA6?hLM68BNRK?B:RK;=;@68N8N< ^ÔH6 UÔÇ6@Ý ¾ LM<ûX£6†ß
ÔH682<û?JRLM<HRK?BN8:RKI~8N6<H?x4Û-0I7?6P;=ÔûRK8N86†VYI”4|-0I7?xB ¾ 6bßÇ;@VY?BL
RK<H?B68ÕGI7<4VY<>JK6?B2BVYI VYI7LM8 6=BLN6
J.=O6 LM< =O6 68 ¾ VYIL†8=-0RK8N8MILN6=L†47I (VY? ˆVY?7;@BN<>VY?7?6Xƒ6?B†468†<H?78BNRK?^;@68o476bÔûRx;=ÔHRK8M86¬VYI*47I›B ¾ 6
;@VY?^;@6=LM?³O6
ÔH682;@VY?BLMRK<H?B68öRKI”86<H?l4|-0I7?6oV ¾ =O6 LMRBN<>VY?*ßÇ;@VY?BLMRK<H?B68öGI7<4VY<>JK6?BqBVYI VYILM8 6=BLN6£J.=O6 LM< W=O6 68
¾ VYILA8-0RK8N8NILN6=L:46QÔHR ÇVY?7?6q6@Ý O6 ;=I7BN<>VY?x476QÔä- V ¾ =O6 LMRBN<>VY?x;@VY?7;@6=LM?W=O6 6
ÔH68 ¾ L&O6 6=B ¾ VY8BS;@VY?74^<>BN<>VY?78¼4Û- V ¾ =O6 LMRBN<>VY?jß:;@VY?BLMRK<H?B68xG$I7<P4VY<>JK6?B 6=BLN6›LN68 ¾ 6;@BN<>JK6X£6?B
J.=O6 LM< =O6 682RJRK?B:6=BDR ¾ L 68:Ôä- 6@Ý O6 ;=IBN<HVY?{4|-0I7?762V ¾ =O6 L
RBN<>VY?
ÔH68 YRLM468öߋ;@VY?BLMRK<û?B68:8NILDÔHR£XƒV$47< ^;=RBN<>VY?b46ÕÔä-U=O6 BNRB24|-0I7?bV 6=B
ÔH68Õ6@Ý ¾ LN68N8M<>VY?78Q46\?7RJ&< YRBN<>VY?©ß;@VY?BLMRK<û?B68 ¾ VYILÕLM6 ¾ L$O6 86?B6=L†ÔH68P;
F6Xƒ<H?78PRKI 8N6<H?¶46\ÔHR
8NBLMI7;@BNILN6Q476Q;=ÔHRK8N868
%
E
27
5#
$
2#
80
2 P;
h
#
D7
= 1 3* / TF^RKGI6o;@VY?BL
RK<H?B6 - Tœ,¶68BqÔH< =O6 6iR¬
I^?x;@VY?B6@Ý$B6£4W$O6 7^?^<H8N8NRK?B2ÔH6ÕBh ¾ 6PRKI7G$I6ÔÔHR;@VY?BLMRK<H?B6£86
LMR ¾7¾ VKLNB6ÞTF7RKG$I6<H?^8BNRK?7;@6¬4Û-0I7? Bd ¾ 6b4VY<>BQ6?78MI7<>B6LM68 ¾ 6;@B6=LoÔ>68o;@VY?BLMRK<H?B68o4W$O6 7‹?7<>68 ¾ VYILo;@6
Bh ¾ 6 ,Û62;@VY?B6@Ý&B6q4|-0I7?6œ6@Ý ¾ LN68N8M<>VY? - T,{68B³4W$O6 7‹?7<6@Ý ¾ ÔH<H;=<>B6Xƒ6?B.RJK6;:Ô>6:X£VKB ;=Ô O6
8NI^<>J$<
context
47Il?VYX 46oÔ- O6 Ô O6 Xƒ6?BQ46†X£V&4³O6 ÔH<H8NRBN<HVY?x;@VY?7;@6=L
?³o
O6 6=Bö47Il8B$=O6 L&=O6 VKBh ¾ 646†ÔHR;@VY?BLMRK<H?B6;ÔE68Bq8NI7<HJ$<
4|-0I7? ¼ß F' ¾ I7<H8œ476QÔä- 6@Ý ¾ LN68N8N<>VY?b46PÔHR£;@VY?BL
RK<H?B6ß
ÔH6³X£VKB;=Ô
O6
;@VKLNLN68 ¾ VY?74PRKIP8NB=O6 L&=O6 VKBd ¾ 6 *-* $RKÔ>VKLM8G$I6³Ô>68`X£VKBN8!;=Ô
O6 8
6=B
8VY?B
I7BN<HÔH<H8$O6 8 ¾ VYinv
ILA<H?^47<HG$I6=L³LM68 ¾ 6;@BN<>JK6X£6?BDÔ>68A8B$=O6 L&=O6 VKBd ¾ 68 (' \6=B (pre
/. -'post
ÔH6.X£VKB`;=Ô O6
86=LNBKRA
<û46?BN<D77 6=LÛÔä-0<H?78NBNRK?7;@6.;@VY?B6@Ý&BNI6ÔHÔH6?RA ÔHRKG$I6ÔHÔH6.ÔHRœ;@VY?BL
RK<H?B6W86.LMR ¾^¾ VKLMB6
self
R
ÔHR ¾ ÔHRK;@6Q47IhXƒVKBD;=Ô
O6 7' <HÔÇ68NB ¾ VY8N8N<2^ ÔH624|-0<û?78N;@LM<>LM6:I7?¼?7VYX 4|-0<H?78NBNRK?7;@6
<ûÔÛ68B ¾ VY8N8N<2^ ÔH6Q46P?VYXself
X£6=L:6@Ý ¾ ÔH<û;=<>B6X£6?BDI7?6o;@VY?BLMRK<û?B6†R^7 ?l46 ¾ VYIJKVY<>L2ÔHR4WO6 8M<2Y# ?6=L ¾ RL
ÔûRö8NI7<>B6K,Û6:?VYX 46AÔHRö;@VY?BLMRK<H?B6A68B ¾ ÔHRK;^DO6 R ¾ LE6 8 ÔH6œBh ¾ 6A476A;@VY?BLMRK<û?B6 '
VYI
inv pre
post
6=B:RJRK?B2Ô>6 hß F
ÔH68 .$+ & -( . ¾ 6=LMX£6=BB6?B4|-U=O6 B6?747LN6xÔHR¶8O6 XƒRK?BN<ûGI6x468*O6 Ô O6 X£6?BN8b46{X£V&4³O6 ÔH<H8NRBN<HVY? ß <HÔ
8-0RY# <>BD4|-0I7?hX›O6 ;=RK?^<H8NX£6Õ4Û- 6@Ý$B6?78M<2^ <HÔH<HBöO6 47IhX›=O6 BNR˜SXƒV$46 Ô>6†4|-0/?{
,-
?
"KÚ
? D = !' ! 46
! !9 ,E68Bh ¾ 68œ476U‹RK86 - T,~8VY?BAÔ>68W6?BN<H6=LM8$'Ô>68ÇVVYÔ =O6 6?^8$'Ô>68;MF7R g]H?768œ46ö;=RLMRK;@Bc6= LN68D6=BAÔH68³L&=O6 6Ôû8$
,Û6qBd ¾ 6
68B$O6 #YRKÔ>6X£6?BD4W$O6 7^?7<Ç47RK?^8 - T, F;ԋ8=-0R#Y<HBA4|-0I7?\8NI ¾ 6=LSBh ¾ 6 ¾ VYILBVYI78œÔH68³Bd ¾ 68
46 ^ RK86ƒOclAny
6=Bo47I X£V&46 Ô>6 `,E68ÕV ¾ =O6 L
RB6ILM8o4³$O6 7^?7<H8 ¾ VYI7LQ;@6¬8NI ¾ 6=LSBd ¾ 68NVY?BoF³=O6 LM<>BO6 8 ¾ RLÕBVYI78PÔ>68
Bh ¾ 68$^ ,E68œV ¾ =O6 LMRB6ILM8:8NI7<>JRK?BN8A8=-0R ¾7¾ Ôû<HGI76?BR£
;@68ABd ¾ 68:469^RK86£ß
V ¾ =O6 L
RB6ILM8.Ô>VY# <ûGI68ß
, , , , and, or, xor, implies, if...then ...else... endif, not
V ¾ =O6 L
RB6ILM82XƒRBNF³O6 XƒRBN <HG$,I 68Q
ß
V ¾ =O6 L
RB6ILM8 ¾ VYI7LÔH68A;MF7R gû] ?68A4+,6Õ;=-,RL
*,RK;@/ Bc;6= LM68Pß
Concat, toUpper
,Û68:Bh ¾ 68hO6 ?$I7X›=O6 L&O6 8Q8VY?B¼$O6 Y# RKÔH6X£6?BöRKIBVKL
<H8O6 8:4^RK?78:ÔH68A6@Ý ¾ LN68N8N<HVY?78 - Tœ, ^ ,`RƒJRKÔ>6IL:4Û-0I7?¼Bd ¾ 6
O6 ?I^X =O6 L$~
O6 68B¬<H476?BN<2
7 O6 RL¬Ô- 6@Ý LM68N8N<>VY? enumérationß>ß nom énuméré - Tœ, 68BbI7? ÔûRK?&S
#YRK# 6Bd ¾ {O6 ßÛI7?6£6@Ý ¾ LN68N¾ 8N<HVY?x68NBÕ¾ 47<>B6†JRKÔH<Hnom
46£Ô>VKLM8MGI6£Ô>68qBd ¾ 68Q476ƒ;@6=BB66@Ý ¾ LN68N8N<HVY?~8VY?BQ;@VYX ¾ R˜S
BN<2^ ÔH68$ - T,¶4W$O6 ‹7 ?7<>B ¾ RLD;@VY?BLN6ÕI^?6Q;@VY?8ˆ0 VKLMXƒ<>B$ÕO6 46öBd ¾ 6Q6?BLN6ÕI^?h6?BN<H6=LA6=BDI7?bL&=O6 6ÔQ( ,.- V ¾ =O6 LMRB6I7L
4W$O6 ^7 ?7<HB:I7?6†;@VY?747<HBN<>VY?{RKÔ>B6=L
?7RBN<>JK6| ,ER\;=ÔHRKI786
68BqV^ ÔH<2Y# RBVY<>LM6Õ6=Bö<H?&S
if...then...else...endif
BLNV&47I7<>BœI7?76ö6@Ý LM68N8N<>VY?h46QXM6g Xƒ6ÕBh 6QGI76QÔä- 6@Ý LN68N8N<>VY?h476QÔHR£;=ÔHRKI786 else ¾
¾
¾
then
? D = !' ! 9 ! 46 1 **
1 !9 ,E68E;=ÔHRK8N8M<2^7 ;=RB6ILM8 ;=ÔHRK8N868E'ŒRK8N8V&;=<HRBN<>VY?^8$' 22 |8 ¾ O6 ;=<2776?B`468EBh ¾ 68`8NI78N;@6 ¾ BN<2^Ô>68|46-7P#YILN6=L47RK?78
Ôä- 6@Ý ¾ LN68N8M<>VY? 46;@VY?BLMRK<H?B68 - T, ` ,ER¼;@VY?8ˆ0 VKLMXƒ<HB\
O6 468QBd ¾ 68o4VY<>BN6=g BLN6¬J.=O6 LM<D7W=O6 6 ¾ VYILQJRKÔH<H476=LQÔ>68
6@Ý ¾ LN68N8N<HVY?78 - T,b4³$O6 ^7 ?7<>68$˜ ,Û68LN6ÔHRBN<HVY?78`476
# O6 ?W=O6 LMRKÔH<û8NRBN<>VY?†6?BLN6œ;=ÔHRK8N868 ¾ 6=LMX£6=BB6?B476W;@VYX ¾ RLN6=L
468œBd 68œ6=B2Ô>6ILM88VYI^8SBh 68$' I7<û8NGI762Ô>68D8VYI78SBd 68D8N6Q;@VY?80‰VKL
X£6?B%Rƒ
Ô>6ILM8œ8MI 6=LSBh 68$
¾
¾
¾
¾
¾
¾
? ? = ! 46!'
,E68¬6@Ý ¾ LN68M8N<>VY?78 - T, ¾ 6IJK6?B\I7BN<HÔH<H86=L\468b<H?78BNRK?^;@68\476l;=ÔHRK8M8N<27^;=RB6IL
8VYI 468b<H?78NBNRK?7;@68
46¬Bh ¾ 6\46j‹RK86a.qRK?78oÔ>6\;=RK8P468o<H?78NBNRK?7;@68P476¬;=ÔHRK8N8M<27^;=RB6ILM8E'E<HÔ.68NB ¾ VY8N8N<2‹Ô>6ƒ4|- 6X ¾ ÔHV K6=L†468
RBBLM<2‹ IBN8$.
' 468ƒ8$O6 ÔH6;@B6ILM8ƒ6=B\468£6@Ý&BL$O6 Xƒ<>B$O6 8b46¼ÔH<>6?^8o4^RK?78ƒÔ>68ƒ;@VY?BLMRK<H?B68 - T, Þ, - =O6 JRKÔHI7RBN<HVY?
46†ÔHR¬J˜RKÔ>6I7Lq4Û-0I7?xRBBL
<2^ IB:VYIl4Û-0I7?6oV ¾ =O6 LMRBN<>VY?~46†;@VY?78NI7ÔHBNRBN<>VY?”4|-0I7?6o<H?78BNRK?7;@6o68BqV7B6?$I6†6?
X£6?BN<>VY?7?7RK?B³ÔH6:?VYX 46:Ôä-0<û?78BNRK?7;@6$' 8NI7<>J&<74|-0I7? ¾ VY<û?B ˆVYIb4|-0I^?6 @6;MF76247RK?^8³Ô>6:;=RK8W476:;@VYÔHÔ>6;@BN<HVY?78 ¾ I7<û8W476ÕÔä-0RBBLM<2‹ IBVYI¼46QÔä- V ¾ =O6 LMRBN<HVY? ß
4W$O6 ^7 ?7<HBP468†;@VY?747<HBN<>VY?78QJ.=O6 LM<2
7 =O6 68£RJ˜RK?B£Ôä- 6@Ý O6 ;=IBN<HVY?š46¬Ôä- V ¾ =O6 L
RBN<>VY?!Ôä- 6@Ý$S
Ô- 6@Ý ¾ LM68N8N<>VY?
pre
L¾ N68N8N<>VY?
4W$O6 ‹7 ?7<>BA468A;@VY?^47<>BN<>VY?78J.=O6 LM<2
7
=O6 68:R ¾ L$6 8:Ô- 6@Ý O6 ;=IBN<>VY?x46QÔä- V ¾ =O6 LMRBN<HVY?
;ÔÇ68B VY8Npost
8M<2^Ô>6q46Q4WO6 8N<2#Y?76=L:Ôä- VF6=BœLN6=BVYIL
?³O6 RLDI7?76öV =O6 LMRBN<>VY? R
Ôä-0RK<H46ö47I¼XƒVKB ¾
¾
¾
result
? D@ = !'7 9 3 !9 ,`R ¾ L&O6 8N6?7;@6o4Û-0I7?6Õ;@VY?BLMRK<H?B6£8B=O6 L$=O6 VKBh ¾ =O6 6 (/. -'x<HX ¾ VY8N6 ¾ RL0ˆVY<H8DÔ- =O6 JRKÔHI7RBN<HVY?x46oÔHR
JRKÔ>6IL:RK?B=O6 LM<>6ILM6†4Û-0I7?6 ¾ LMV ¾ LM< =O6 BO6 | Ü ?x6cb(6=B$'|Ô>VKLM8:46PÔ- =O6 JRKÔHI7RBN<HVY?l4Û-0I7?6 ¾ LMV ¾ LM< =O6 BO6 I7?{RBBLM<D^IB$'
I7?6WV ¾ =O6 LMRBN<>VY?ƒVYIoI^?6³6@Ý&BL&O6 Xƒ<>B$DO6 476Ôû<>6? |4^RK?78!I7?6 ¾ VY8NBS;@VY?747<>BN<>VY?@˜' ÔHR:JRKÔ>6ILP=O6 J˜RKÔûI³=O6 6œ68BÞ;@6ÔHÔ>6VS
B6?$I6œR ¾ L$6 8!Ôä- 6@Ý O6 ;=IBN<HVY?£46WÔ- V ¾ =O6 LMRBN<>VY?[ VYILÞ4³O6 8N<2Y# ?6=LÞÔHRDJ˜RKÔ>6I7L46ÔHR ¾ LNV ¾ L
<
=O6 BœO6 RJ˜RK?BÞÔä- 6@Ý O6 ;=IBN<HVY?
46QÔä- V =O6 L
RBN<>VY?'^Ô>6öB6=L
X£6
68B VY8BS 7Ý P
O6 RKI¼?VYX 46QÔHR LNV LM<
=O6 BO6 ¾
@pre
¾
¾
¾
? = 76 3 7 ! / ! 4 1 3
; Ô!68B ¾ VY8N8N<D^Ô>6P476ƒ?7RJ&<2#YI6=LÕÔH6†ÔHVY?8#¼468öÔH<>6?^8 ¾ VYI7L ¾ RK8N86=LÕ4|-0I^?6£;=ÔHRK8N86LRh
I7?~RKI7BLN6›O6 Ô
O6 X£6?B
46QX£V&4WO6 ÔH<H8MRBN<>VY? ,.-0<H?^8BNRK?7;@6ö46Q4WO6 ¾ RLNBœ68NBA8 ¾ O6 ;=<27=O6 6'‹8MI7<>J&<>624Û-0I7? ¾ VY<û?B ˆVYI¼4|-0I^?6 6;MF6Õ4^RK?78œÔ>6
'
Hg
Hg
$'
"=
;=RK8D476Õ;@VYÔHÔ>6;@BN<>VY?^8 ¾ I7<û8W4^I¼?VYX 47I¼L VYÔ>6öV ¾7¾ VY8$O6 ^,EVKLM8NG$I6ÕÔ>6Q?VYX 47IhL YV Ô>6Q?Û- 68B ¾ RK8 ¾ L$O6 86?B (Ô>6
?VYX 476QÔHR£;=ÔHRK8N86 RƒÔä- 6@Ý&BL$O6 Xƒ<>BP
O6 ;@VY?7;@6=L
?³=O6 6Õ68BDI7BN<HÔH<H8$O6 7Ô>6G$I6Ô|;@VYXƒXƒ6?7;@6 ¾ R LDI^?6QXƒ<H?$I78N;=I7ÔH6
?
.
= ! 1 !12 '
'
F
:
Hg h
ßY<ûÔ$8-0R#Y<>B 4|-0I7?†Bd ¾ 6AR^8NBLMRK<>B.4W$O6 7^?7<û8N8NRK?B.468!V ¾ =O6 LMRBN<>VY?78³46AXƒRK?7< ¾ I7ÔHRBN<>VY? ¾ VYIL
Collection
ÔH68A8VYI78SBd ¾ 68A;@VY?^;@LN6=BN8
ˆV7B6?I ¾ RLW?7RJ&<2#YRBN<>VY?\4|-0I7?76DRK8N8V&;=<HRBN<>VY? œß<Hԋ8=-0RY# <>BW4|-0I7?ƒ6?^86X‹Ô>6 ˆB6ÔÇI7?£6?78N6X^ÔH6
Set
XRBNF³O6 XƒRBN<HG$I6 ˆV7B6?$I ¾ RL\468b?7RJ$<DY# RBN<>VY?78\46 ¾ ÔHI78N<>6I7LM8£RK8N8V&;=<HRBN<>VY?78 hß<HÔD8-0RY# <>Bh4|-0I7? ¾ RK?7<>6=L)R Bag
L¾ NVJ&<H8N<>VY?^8 RKI78N8N<^R ¾7¾ 6Ô
O6 ¾ RLˆ0 VY<H8.XoI7Ô>BN<>S6?786X:^ Ô>6 K' V@I
I^?XM6g X£6¼O6 Ô
O6 X£6?B ¾ 6IB 6=g BLN6 ¾ L&O6 86?B
¾ ÔHI78N<>6I7LM8-ˆ0 VY<H8
ˆV7 B6?I ¾ RLEI7?6.?^RJ&<2Y# RBN<>VY?öJK6=LM8`I7?6!6@Ý&BL$O6 Xƒ<>BO6 ˜' RJK6;³ÔûRœ;@VY?BLMRK<û?B6 ordonnée Eß
Sequence
<ûÔ|8=-0RY# <>BD4|-0I^? ¾ RK?7<>6=L:R ¾ LNVJ&<H8N<>VY?^8$$' XRK<H8œVKLM4VY?^?³O6 Tœ, 4W$O6 ^7 ?^<>BP468ÕV ¾ =O6 LMRBN<>VY?78 ¾ VYILPJ˜RKÔH<û46=LEÛ' <>B$=O6 LN6=L£8NILPVYI¶;@VY?78MI7Ô>B6=L†468~O6 Ô O6 X£6?BN8£46\;@VYÔHÔ>6; S
BN<>VY?78E8Þ
Z VY<H;=<ÛI7?6QÔû<H8B6ö468œV ¾ =O6 LMRBN<HVY?78:ÔH68 ¾ ÔHI78œ;@VYIL
RKXƒX£6?BDIBN<HÔH<û8=O6 68qß
ßKLN6=BVYI7LM?6AI7?6JRKÔ>6IL1Ç V$VYÔ
=O6 6?7?6 Y;@6=BB6:J˜RKÔ>6I7LÞJ˜RKIBÞJ$LMRK<8N<Ô- 6?786X:^ Ô>668B.J&<H46'
isEmpty()
0 RKI&Ýh8N<H?VY?@
ßKLN6=BVYI7LM?6AÔHR2JRKÔ>6ILÞJ$LMRK<>6A8N<Ôä- 6?^86X‹ Ô>6W;@VY?BN<>6?B RKIƒX£VY<û?78!I7?6A<H?78NBRK?^;@6'H0 RKI&Ý
notEmpty()
8M<H?VY?
ßLN6=BVYILM?6QÔûR£;=RLM47<H?7RKÔû<>BQO6 4|-0I7?b6?786X:^ Ô>6 ˆJRKÔ>6IL:46öBh ¾ 6Q6?BN<H6=L size()
ߜLN6=BVYI7LM?6 I7? 6?BN<>6=L{G$I7<ö;@VKLNLM68 VY?74 RKI ?VYX:7 LN6 476W‰0 VY<H8bV@I count(unObjet)
7BY# ILN6q47RK?78WÔHRP;@VYÔûÔ>6;@BN<>VY? ¾ VYI7LWI7?¬6?786X:^ Ô>6&' Ô>62L$O6 8N¾ I7Ô>BNRB46q;@6=BB6öV ¾ =O6 LMRBN<>VY?b68Bˆ0 VKunObjet
LM;^O6 X£6?B
<û?80 =O6 LM<H6ILœVYI $O6 Y# RKÔR
ßLM6=BVYILM?6QÔHRƒJ˜RKÔ>6I7LA46QÔä-0RK4747<HBN<>VY?b46öBVYI78DÔH68¬O6 Ô
O6 X£6?BN8246ÕÔûR£;@VYÔHÔ>6;@BN<>VY?
sum()
ß$LM68BLM<H;@BN<>VY?¬6? ‰0 VY?^;@BN<>VY?b47I¬;@L
<>Bc6= LN6 ¾ L$O6 ;=<H8$öO6 6?BLN6 ¾ RLN6?BNF6 868$‹ TW6=BB6qV ¾ =O6 LMRBN<>VY?
select(...)
68NB\=O6 J˜RKÔHIW=O6 6iR£
I7?¼8NVYI78S6?786X:^ Ô>6Q476QÔHR£;@VYÔHÔ>6;@BN<>VY?{46Q4³O6 ¾ RLNB$
ß&ÔHRP;@VYÔHÔ>6;@BN<>VY?\V7 B6?$I6268BWI^?N^ Ro
# VYIbI7?XoI7Ô>BN<uS6?^86X‹ Ô>6DG$I7<768B
collect(uneExpression)
;@VY?^8BLMI7<>B6NR ¾ RLNBN<>LW462ÔûRP;@VYÔHÔH6;@BN<>VY?¬47624WO6 ¾ RLMB$&' XRK<H8³G$I7<‹;@VY?BN<>6?Bœ468ƒO6 Ô
O6 X£6?BN8D4|-0I7?\RKIBLN6
Bd ¾ 6 ¾ RK85‰0 VKL
;^O6 Xƒ6?BqI7?h8VYI78S6?786X:^ Ô>6 ß$LM6=BVYILM?6qÔHRoJ˜RKÔH6ILJLMRK<H628N<
68BAI7? O6 Ô
O6 X£6?BD46öÔHRo;@VYÔHÔ>6;@BN<>VY?'
includes(unObjet)
unObjet
0 RKI&Ýh8N<H?VY?@
ß(LN6=BVYILM?76oÔHRJ˜RKÔH6IL:J$LMRK<>6†8N<
68B2JL
RK<>6 ¾ VYIL2BVYI78
forAll(uneExpression)
uneExpression
ÔH68¬O6 Ô
O6 X£6?BN8q46QÔûR£;@VYÔHÔ>6;@BN<>VY?'80 RKI&Ýh8N<H?VY?@
ß LM6=BVYILM?6¼ÔHR J˜RKÔ>6I7LƒJL
RK<D8N<
68B¬JL
RK<>6 ¾ VYILRKI
exists(uneExpression)
uneExpression
XƒVY<H?78œI7?©O6 Ô O6 X£6?B:476ÕÔHR£;@VYÔHÔ>6;@BN<HVY?'8ˆ0 RKIÝb8N<û?VY?
ß LM6=BVYILM?6lBVYIB68bÔ>68¬V$;=;=ILMLN6?7;@68b46xÔ- 6?786X:^ Ô>6{6@Ý;@6 ¾ B$ O6 ;@6ÔHÔ>6l46
excluding(unObjet)
Ô- VF 6=B
unObjet
ß$LM6=BVYILM?6qBVYIB68AÔH68V$;=;=ILMLN6?7;@68A46öÔä- 6?^86X‹ Ô>6 ¾ ÔHI78;@6ÔHÔ>6ö46öÔä- VF 6=B
including(unObjet)
unObjet
ß LM6=BVYILM?6lÔHR JRKÔ>6IL¬JLMRK<H6x8N<
?|- 68B ¾ RK8\I7?iO6 Ô O6 X£6?Bh46xÔHR
excludes(unObjet)
unObjet
;@VYÔûÔ>6;@BN<>VY?¼4|- V@I{
Ôä- 6@Ý ¾ LN68N8N<>VY?b68NBDR ¾7¾ 6Ô
=O6 6Q8N<H?VY? 0 RKI&Ý
qRK?78³Ô>6A;=RK8 4|-0I^?6ARK8N8V&;=<HRBN<>VY? YÔ- 6@Ý ¾ LM68N8N<>VY?†LN6=BVYI7LM?6DI7?76A;@VYÔHÔ>6;@BN<>VY?ƒ4Û- V 6=BN8 4VY?B³Ô>6A?VYX 7LN6
68B ÇVKLM?WO6 ¾ RLDÔHR£XoI7Ô>BN< ¾ Ôû<H;=<>B2O6 4^IhL VYÔ>6 ‹TW68AB ¾ 68:46Q;@VYÔHÔ>6;@BN<HVY?78A8VY?BQß
"˜Ö
:
:
M ? = ! 1 * 1 3 ,`R¼?7RJ&<2Y# RBN<>VY? JK6=LM8P468Õ;=ÔHRK8M868SRK8N8V&;=<HRBN<>VY?^8Q68Bo4³$O6 7^?7<>6 ¾ RLoÔ>6ƒ?VYX 46Ôä-0<H?^8BNRK?7;@6ƒ4|-0I7?¶468
;=ÔHRK8N8M<2^7 ;=RB6ILM8QLN6ÔH< O6 8 ¾ RLPÔä-0RK8N8V&;=<HRBN<>VY? ;@VY?^;@6=LM?³=O6 6' 8MI7<>J&<4Û-0I7? ¾ VY<H?B$' ¾ I7<H8ö47I ?7VYX 46ƒÔHRh;=ÔHRK8M86@S
RK8N8V&;=<HRBN<>VY?{;@VYXƒX£6?+;=Y RK?B ¾ RL:I7?6öXƒ<H?$I78N;=I7ÔH6
,`RÕ?7RJ$<2Y# RBN<HVY?\4Û-0I7?6D;=ÔHRK8M86@SRK8N8V&;=<HRBN<>VY?¬JK6=LM8WÔ>68³<û?78BNRK?7;@68³GI7< RLNBN<H;=< 6?BURP
Ôä-0RK8N8V&;=<HRBN<>VY?68B
$O6 Y# RKÔ>6X£6?B ¾ VY8N8N<D^ Ô>62. RK?^8Q;@6;=RK8$E' ÔH6ƒ?VYX 46ƒÔä-0<H?^8BNRK?7;@6£46ƒÔHRh;=ÔHRK¾8M86@SRK8N8¾V&;=<HRBN<>VY?~68NBQ8NI7<>J&<!4|-0I7?
¾ VY<H?B$' ¾ I7<H847Ih?VYX 47IhLHVYg Ô>6Q;@VY?^;@6=LM?³O6 ? = !'7 !
,EVKLM8NG$I|-0I7?66@Ý ¾ LN68N8N<HVY?£R ¾7¾ RLMR g>] B ¾ ÔHI78N<>6I7LM8<ˆ0 VY<H8Þ47RK?^8ÞI7?6A;@VY?747<HBN<>VY?K' <HÔ&?|- 68B ¾ RK8.?³O6 ;@68N8NRK<>LM6D46
ÔHRoL&‹O6 O6 ;@LM<>LN6 ¾ ÔHI78M<>6ILM8-‰0 VY<H8A6=BAI7?6qJ˜RL
<HR^ Ô>6 ¾ 6IB?6=g BLN6Õ4W$O6 ^7 ?^<>6 ,Û68AX£VKBN8D;=Ô
O6 8
6=B
<H?BLNV$4^I7<H86?B
let in
ÔHR£4W$O6 ^7 ?^<>BN<>VY?h4|-0I7?76öJ˜RLM<ûR^ Ô>6ö8VYI78AÔûR%‰0 VKLMXƒ6£ß
ßÇLN6=BVYILM?76†Ô-0I7?7<>VY?l46£Ôä- 6?786X ^Ô>6†46 ¾ I^<H8:ÔH6GI6Ô!Ôä- 6@Ý ¾ LN68M8N<>VY?x68BöR ¾^¾ 6Ô =O6 6 ¾ ÔHI78
ÔH68œV$;=;=I7LNLN6?7;@68A476QÔä- 6?786X ^Ô>6Q4VY?^?³QO6 6? ¾ RML RKX 6=BLM6
union(set)
let variable : type = expression "%&"!
in expr
A:VYI78ÕRJKVY?78 ¾ L$O6 86?BhO6 47RK?^8Q;@6¬;
F7R ¾ <>BLN6¬I7?6£J&I6N#`O6 ?³=O6 LMRKÔ>6b468Õ4^<HR#KLMRKXƒX£68P/Ux,©GI6¬?VYI78
RKÔHÔ>VY?^8³BL
RK<>B6=Lœ47RK?78Ôä- 6@Ý&BLMRK;@BN<>VY?h46qJ&I68/Ux,¶46 ¾ I7<H8 I^?628 ¾ O6 ;=<27^;=RBN<>VY?M!U7,Û68œ?7VKBNRBN<>VY?78VF6=BN8
;@VYXƒX£6ƒ/?x
, 8VY?Bq4768qB6;MF7?7<ûGI682BLE6 8 ¾ 6=L&0‰VKLMXRK?B68 ¾ VYILöÔHR\X£V$4WO6 Ôû<H8NRBN<>VY?”46£8 &8Bc6 X£68$ÛܳÔHÔ>68
X£6=BB6?B¬6? J˜RKÔH6ILÔ>68¬46I&Ý RK8 ¾ 6;@BN8¬476{ÔHR X£V&4WO6 ÔH<H8MRBN<>VY? G$I7<A8VY?B¬ÔHR ¾ RLNBN<>6{4P$ ?7RKX<HGI76\6=B\ÔHR
VF 6=BN8W8VY?B
ˆ0 RK;=<ûÔ>68URP ;@VYX ¾ LN6?747LN6A;=RLW4^<>LN6;@B6X£6?B³<H?B6=L ¾ L&=O6 BNR‹ Ô>68
¾ RLNBN<H6D8BNRBN<HG$I6 ,E68 X£V&46 Ô>689RQ
47RK?78bÔ>6lX£VY?746lL&=O6 6Ôq6=Bh8NILNBVYI7B Ç 6RKI7;@VYI ¾ X£VY<H?^8\R‹ 8BLMRK<>BN8\GI76”ÔH68¬X£V&46 Ô>68hXƒRBNFWO6 XRBN<HGI768$
;ÔH8öX£VY?BLN6?BQI^?6†J$I6ƒ4Û- 6?786X:^ Ô>6%^ <>6?”8BLMI^;@BNIL$=O6 647I~8 & 8B$6 X£6ahA O6 RK?7X£VY<û?78Q/?{ , 8VYIFÇb LN6£4|-0I7?
XƒRK?7G$I6¼46 ‰0 VKLMXRKÔH<H8NX£6³
9&68ƒ;@L$O6 RB6ILM8¬VY?B¬68N8NR . ”O6 46{Ô>6¼;@VYX:^ Ô>6=L RL¬ÔHR~;@L&O6 RBN<>VY?©47I ÔûRK?8Y# RK# 6
-?VKTBNR,„BN<>G$VY?^I78D< Xƒ¾ 6=RL
BNX£FW6=O6 XƒB¬R4BN6 <ûGˆ0 IVK6LM8EXƒfRKx ÔH<H8NRK6=Ô2K#L¬L$ÕÔ>O6 68bBVY;@IVYB:?/UBLMx RK<H,¶?B6LM68h8B8N6ÕRK?7ÔHR£8\?RVKBBBN6R<HBN?7<HVY4?{LN6”8BNÔ>6lRK¾ ?7?74^<>RJKLM64¼RKI ÔHR 46 ÔûI7‰0 8VKLML$XO6 RKRKÔH<H?78N47X£I76x6Õ4;=R6L8
6ÔHÔ>6W68BÞRK47R ¾ B$=O6 6:R2
BVYI78!Ô>68Bh ¾ 68Þ464³=O6 JK6Ô>V ¾7¾ 6X£6?B$ :. 6 ¾ ÔûI78Û6ÔHÔH6³68BÞ8NI ¾7¾ VKLNB=O6 6 ¾ ¾ RL!476W¾ ?VYX:7 LN6IÝ
VYIBN<HÔû8$
$
"%
¾ ¾ ¾"! # $ % & ' (*) # ,+ ! )!- # !% (! /?. - 0 1 2 ¾ 3 ¾ ( #54 ' 67% ¾ 8 #89 % $ # <
=+ ?0 +> ? + 0 +> B
% C
$6% +>
# ! # " :#54;D 6E%& ( ! 8 % 4 C! % !%( ! F#8
# C6 GA+ @ !%A@ 0 !% +>#*# #8# H
¾ # HI#!K¾7¾J¾ 7K$ :(#! !7 @
0 !% +> #8# L ! ¾ > ! :+ NM%OF' # PQ 67%I
% # R
! +I R ! .¾' >¾ # +I =
' 67 (! 1
H !% (! J+ @ 0 !% +I #8# S6% JH ¾T 7$ (! 0 !% +> #8# #8# ) U! " ' "%U WV
- ¾ _% `S %
( a
4 % 7 c D6E%$ + 8# 8 X6% =fY[Z
6E ^
-:gh 6% - ci Y
b @ed ! ! 2 #8 ' (!
j@
\^] ¾
NO%O`KO%M WV
\^sk % %`ml # `n ('! !7@ed ' 2 po= % ! $ q 2
' 67 (! /
¾ # r+ ! 8! M 6% =Y tPO WV
\vu (!7w k % ! 6 . g x6% HY Ny%z WV
b ' ¾ ¾^¾ #*# # ¾"!{ ( ( # >
}| (p
~?{_% ;€%€ ` g $_% ;€7M %
NzEt WV Q D6E%
C~B{_% ! q ¾"! # ¾ + ? ! ¾ :_ (*) = H !%'8) H
# ' 67 (! ‚+ ! 3(+ A@ s !% +> #8# ‚ƒW„ gh . g n… ¾"! I# I
7 %+I+>3
‚ # %(p 4† @W % (! B6% Bl V d ?# >( # 67%‚
g $_% ?! ¾7¾(! s ! "# >
' 6E (! 7 %+I+>n
S # %' 4† @W % (! ‡
¾ # 7 %+I+>n. g V Q
%? #8 L ! 67%
g $_% 1_2ˆi ! % B# C
' 67 (! R
7 %+I+>L
H !{#*# 7c !% (! C$%=
4 (8#8 ' (! V ] 4 % ¾ ' u $‰% ' ‰ 2%( 0 #8 > D6E%( H# C
! +I %
(! 3
S ( J6% # T+I%' T7c NyEt WV ] 4 % 67%"` ) ? ! W ¾ %
# (8! D6% #54 (*#8 ( (! Š ! Ei !{ R
‡
‹ ¾7¾(! '$` #W4 % (8! >
L_ | +I
% (! (8) $ >ƒŒ% ! +I …B
¾ JG ¾J qK$ (! l z WV
!
&
*
"
$
!
*
!
!
!
%&
!
!
!
&!
I
7 %+p+>>
‚ # %((> ! 3# ¾# C (*#8 ¾"! + ! #* I# ¾ (( 1 (8) ‚
4 _ | +> VŽ # B ! + ¾ #9 +> H ! +I+> # B # %(($` # ? ' c $` # B%' ! (! R =#  #8 ' (! V f
' 67 (! [
1 >
7 %+I+IŠ > $ 1
% # ‹
! $ >
+I%' 7c V
z%
z%z
! #" %$
&(+') *-,/.10324,65879:);<=60>;?;@);
u #8! g $_% H # %(( Classe ƒ qI V D…X ' 6 $ s !% +> #*# +> 1l ¾ T# ‹ ! (! 4 H+p%' Š7c 8 Classe ƒ qp V O{… V b #*# @ # pZ
\ #W4 +‹c # CLASSE ! ci ¾"! ( c # L
Classe Z CLASSE Š ! % ‹
$ qK ! +p+>Š ! @ +‹c # G
#54 +‹c # :
! # ! ci ¾"! ( c # OBJETS `
\ #W4 +‹c # classe ! ci % Z classe $ q ! +p+>a ! @ +‹c # ‚
(+Šc # =6 V
CLASSE B ( #8 ¾ B#54
Classe
}
MACHINE
CONSTANTS
PROPERTIES
VARIABLES
INVARIANT
INITIALISATION
END
V \ .=Š # %(:‚. g Classe
CLASSE
CLASSE A OBJETS
classe
classe A CLASSE
classe := B
}
.=H # %( ¾ C ¾ %+1 | Š ! _ ¾
V O \2] ' 67 (! # > # %(Gl
¾ %+ $ %` #8# ? C ¾7¾ #9$ : # %((ED%FGH3IKJLD%F V b ( ¾ +> =
! 7%1p| G # %((pƒ q3 V M{… V
param : typeParam
Classe
}
.=f # %(QD%FNGHOIPJLD%F 7 c ¾ %+ $ Classe V b
¾"! ($| G ¾# J ¾ %+1 | MACHINE
CONSTRAINTS
VVV
V M \ .=G # %(MD%FNGHOIPJLD%F
6 $ s !% +> #8# +> l ¾ # [ ! (! ‹+I%' H L# C+ C +> ) :
% # C
' 67 (!
_ ¾J % # > # % CONSTRAINTS ƒ qp V t&… V
Classe(param)
param typeParam
}
4 : # %'RD%FNGHOIPJLD%F
V t \1] ' 6E (! 
4 r+I%' ¾ Š ! #" #"
3 8 + z{€
2?2?* ,:2
T c ! _ ¾ ?1. g f ¾# ‡6 c 8#88& ¾"! ( c # V ' 67 (! s !% +> #8# l #54 ' c ¾ C #8 $ ) 4 6%26 c 8#*& ¾' 6 $ ‚$ #8# 3 3# f # F |
¾"! ( ) 67 # l V Q _ ¾ 7%C
#54 ' cK ?#W4 ¾7¾ ( % 1 | #W4N! cij ? % 9
# = # %( Classe ƒ qG V {…n ! $ qK ¾ # # (! attrib ƒ qG V z{… _ ¾T$ B
# ?+p% | L( 67% % #54; &6E ' % Z attrib classe typeAttrib `" ' c % =# G ! + #54 c V
Classe
-attrib: typeAttrib
} V  \ .=‚ ' c VVV
VARIABLES
INVARIANT
INITIALISATION
VVV
attrib, classe
attrib classe
attrib := B
typeAttrib
} V z 3
\ ] ' 67 (! 4 ' c ! #" +') *40324,6587
"!$#&%')(+*,#-!.(0/1!2&/
] %SR # %(( Classe R+ ! =. g ‚ ' 6 $ s !% +> #8# +I Il % # :+I% p ! (! ¾ (( #*# G
4 !K¾T (! ƒ q2 V y{…B$ H# ‹
7 %+I+>Š
‹ # %((ƒ q
Classe ¾ =#
 V €%…TH
! ¾ % # H ! xƒŒ ! ˆ…S
#W4N!K¾T (! V$3 2 w R# ' # # ' 67 (! 1
! ¾"! R# K! ¾J (! # s !% +I (! T' 67% :Z
\ # G ! + #54NK! ¾J (! }`
\ # G ! + B# _ ¾ Š
¾ %+ | ?
4 $ %`
\ # _ ¾ ‹
¾ %+ | B
Š !%(( V
] % S# ‹
' 67 (! }` 8# s % ! +p+> T# ¾ %+ | T
? !%(( ? c 8 +> V ] 4 % ¾ ( ` # +I% ¾ # L # %'X
! 8# s % $ q Q#54; % m
X # %'X ! $ ¾ 0#W4 $ (! ‹
# :+ ! V „:C ! ! c #*  R R+ ! q # ¾(!%!% _ ¾ B
# :+ ! ¾"! _ s L ¾7¾ C4 ¾ %+ | I( ¾7¾#9 +I oo ) !%' ¾"! | #54; ( q% #54N! ci V b G ( q% ! &
% # C67 ' 7c # H+‹c # classe 4N! | ! _ ¾ 7%
% # ¾ @ ! (8! oo classe V
5768'9(:*;#-"<06=#-><0
C ! G) #54N! < ! +I+I
ƒ q‚ V U …H
$6 # f+I% Classe ƒ qF V ,?P… V .=‚ ! creerClasse
6% #*# % ‚
# %' oo $ (26E # new $ q
oo H ! ¾ G#54N!K¾T (! creerClasse !K¾J (! F ! +I+‹>
$ #!% ) # r67 # ¾ new @ CLASSE -
z%y
Classe
+oper(paramOper:typeOP): typeRetour
} V € \ .?‹+ ! VVV
OPERATIONS
out oper(oo,paramOper) PRE
oo @ classe paramOper @ typeOP
THEN
out : @ typeRetour
END ;
VVV
} V y 3
4 G+ ! \ ] ' 67 (! V 4N!K¾J (8! f6 ' qC% ¾ # 7c # C
%=( ¾ @ ! (8! ) #54 +‹c # CLASSE - classe
1 !{o¾ %6 V c C ! ( #8 VQ # ¾"! ( c 8#88& V 
6E # ( # #54 ' c ¾#8 +I $ q ! (8#8 = Š67 # val1 ¾"! %{+> ?# # (8! [ ! ¾# V r6E # $ qK ¾ ¾ %+ | _ ¾J‚ %
attrib1
# ¾ @ ! (! Šnew
#54N !K¾J val1
(! ,
6 $ 2
x ! D6% # _ ¾ p%valAttrib2
( ! 3 # 16E 7c # %{+> =# # (8! attrib2 ¾ B# G ! ¾# new valAttrib2 V
valAttrib2 @ typeAttrib2 ¾"! classe
Classe
+attrib1: typeAttrib1 = val1
+attrib2: typeAttrib2
+creerClasse(valAttrib2:typeAttrib2)
} V U \ .=‚ ! ! " ;?;@5<,60324,6587
:%( ! (! : ! #8 B I
 # %(
ƒ q‚ V D… V03 #8# = ! ' 6 $ s !% +I #8# +> l ¾ # (! ‚c Iƒ qClass1
1 V O{…L Class2
# L67 ' 7c # Bl classe1 V „H +I ') ) + C +>I 0# C= s %$ # ( s r. g 8# s % < ¾J q ¾"! classe2
w G# 2
' 67 (! f$ G8# ! c #8 { !{ +> <l C+ C +> ) # C ! + (( 8 ¾"! ! +I+I B# # (8! ((:
# >
' 67 (! V
b # (! ¾ C p $ ( #! # f+ #(>¾#* & ! a
4 % p ! #8# ) #54 7 $ { (! V Q + #(>¾K#8 n
4 J%( ! (! ¾ 6% C R
' 6 $ s !% +> #8# +I >l/ #! # 7c # % V V ] %R 7c # % # L ( I G ! $ qK ¾ "!Š G#$ V
3 8 + zU
VVV
OPERATIONS
oo creerClasse(valAttrib2) PRE
not(CLASSE-classe = B ) valAttrib2 @ typeAttrib2
THEN
ANY new WHERE
new @ CLASSE-classe
THEN
classe := classe new attrib1 := attrib1 new attrib2 := attrib2 new oo := new
END
END ;
val1 valAttrib2 VVV
} V ,? 2
\ ] ' 67 (! ! Classe1
RoleClasse1
MultClasse1
assos
RoleClasse2
MultClasse2
Classe2
Ž V \ .=Š%( ! (! VVV
VARIABLES
INVARIANT
INITIALISATION
VVV
assos, classe1, classe2
assos @ classe1 classe2
assos := B
"  V O 1
4 G%' ! (! \ ] ' 6E (! 
! " #!
') 7 +') *40>=%, ; 0324,65 7
0  #8 ( (8! F
4 I ! @ # %' SousClasse ¾ > # %( SuperClasse ' 6 $ s !% +> #8# +I GlfŠ ¾7¾#88) % ǾŽ! Q# s !% +I #8 ( (8! :
SuperClasse # m( +IB
m
6E (8! 4 3 # %(( !% I $ q ('% # #  ! @ # %( SousClasse # +I% | ( 6E% >Z
€"?
g #8(>¾#8 8& ! ? VV ? VV
VV ? VV VV g #bL# %(
assos @ classe1 classe2
assos @ classe1 classe2
assos @ classe1 classe2
assos @ classe1 classe2 dom(assos) = classe1
assos @ classe1 classe2 x.(x @ classe1 card(assos[x]) = n)
assos @ classe1 classe2 x.(x @ classe1 card(assos[x]) n)
assos @ classe1 classe2 x.(x @ classe1 card(assos[x]) n) dom(assos) = classe1
assos @ classe1 classe2 x.(x @ classe1 card(assos[x]) n)
assos @ classe1 classe2 x.(x @ classe1 n card(assos[x]) m)
VV
VV +
ran(assos) = classe2
assos @ classe2 classe1 x.(x @ classe2 card(assos[x]) = n)
assos @ classe2 classe1 x.(x @ classe2 card(assos[x]) n)
assos @ classe2 classe1 x.(x @ classe2 card(assos[x]) n) ran(assos) = classe2
assos @ classe2 classe1 x.(x @ classe2 card(assos[x]) n)
assos @ classe2 classe1 x.(x @ classe2 n card(assos[x]) m)
} V \ p+> # >
' 67 (! ‚
4 H%' ! (! ¾ (B+ #(>¾#* & g #bL# %(DO
assos @ classe2
classe1
assos @ classe2 classe1
assos @ classe2 classe1
assos @ classe2
classe1 \ # Š+I% SousClasse (8#8 # ‹+I%' SuperClasse % T# Š+I% SuperClasse
% # 1 # % USES # 1+I%' SousClasse „Hf>
$ q q¾ % # 2 ! % SOUS
% # H+I% SousClasse $ m! ¾ (8#8 ( n# : ! % SUPERCLASS # CLASS
+p%' ¾"! m# + ¾# % 7q3
B+ ! #8 ( X#54 +‹c # R
! ci ¾"! ( c # # > # %(SuperClasse
SousClasse `
\ #W4 +‹c # B
! ci % 9 T
SousClasse p ! @ +‹c # sousclasse ? # G(I( ¾ @ # %(Iƒ superclasse…`
\ # n c ‡
SousClasse ! ' 6 m
# H+ C +> s ! ) ¾"! J # %( !% '%'% ?) # > # % USES ¾ +> R#54 %$7| =%‚ ' c L
# >+I%' SuperClasse V
SuperClasse
SousClasse
} V M \ .?Š #8 ( ( ! !#"$&%')(#*+%-/, .0!213*4!2"56%'/7%8!#*:9;.*=<><+/?%'A@/(#*:B/
b ¾ 7 ¾ # # 67%x
IQ
%CNzEtED ) ! + ¾# | ¾(!K¾"! T
# Š
' 6E (! 1
T
7 %+I+>J
H # %( V Q D6E%3
g
! + ¾ # ¾(! c # | +>Š
:%x ¾7¾ # :
4N!K¾J (! 2 | #54; ' Q
% #8 ‹
%R 67% V
‹# 67%x
g $_% |
$_% ¾ ³¾ %T
# ‚+ C +>2+I%' I ) MACHINE
SEES
VARIABLES
INVARIANT
INITIALISATION
END
€
8 + SousClasse
SuperClasse
sousclasse
sousclasse @ superclasse
sousclasse := B
" V t 2
\ ] 6E (8! # C #* ( (! ! $
5>24,/.10O24,%587;
] s ?
AwB B+p ') $ B # ¾(!K¾'9 =
# %{7%l . g m` ! ?! c #8  + ! q ! + ¾# | +> 1#54N!% {% ' (! $ q % # I6p. g ¾"! p# x
' 6% l V
g $_% ( W¾ %L ! + ¾ G
s L) 4 =+ ! G. g ¾ ¾7¾ # :% :+ ! G
# C+ C +>Š # %( V b :
' 6% ¾ !K¾J (! ) ¾^¾ #*# ?H% !K¾T (! ‚
# C+ C +>
+I% V „H ¾ ¾ % # #8 lv$ ?# R ¾^¾ # L+‹ # ¾ 6% s G ¾7¾ C4 G
_ # H(%=q V ] ¾# 8# ¾ ¾ %?f ! + ¾ # ¾'! c # | +>=
4 ! + ! &_+ ‹
H ' c ‹+ ! ) 6 ! ¾7¾ C48 3
% # r+ C +>1 ¾T q$ (! V ] 4 % ¾ ( ` #54 (*#8 ( (! I
7 %+I+>>
#8 ( (! ƒŒ
7 %+I+I>
4; % (! ! a
4 % ( 6 8&ˆ …C6 ! ƒ¾ +I ‚
' 6% ># 1 !%N ¾ ƒŒ ! ˆ…
K! ¾J (! C ! # ‹ ¾7¾ # f
| 4 % !K¾J (8! V b C ¾7¾ # ! £
¾"! ( c # G l | #  ! (! ) 4;8# !{ †
¾ %> _ #*8) V .?/ _ # ‚
4 ¾7¾ # =
+
>
+
!K¾J (! op1 ) ¾7¾ #8# op2 ) ¾7¾ #8# #*# @ C op1 V)3 ‚l=` #54N!K¾J D¾ #8# | # (8#8 % # :+I%' :7c 8 : 4 % !%' ( ¾ % #54 ¾7¾ # I
K! ¾T (! G
# 2+ C +Ip+I%' # >ƒŒ # % INCLUDES… V
! "
&(+') *-,/.10324,65879:);7*45 2?5 2 ); )209 )=%;9 :5 +') *40324,65 7;
¾(!%!% _ ¾ 3
4N!K¾T (! 3 ! ' 6 3
# <+ C +>+p% | ) ¾"! p# 67%a
$
%
_
g ' >
% # ¾ 7 ¾ ¾ V f
wB 1
% # ! +I+I7%
#54N!K¾J (8! V 3 a w p# ‚ ! + #W4N!K¾T (! $6 I# ‚ ! + ‚ # %(( 6 $ % | 4 4
( 6 > ! + 4N!K¾J (8! V b !K¾T (! 3 + 8# ¾"! m# S ! +Im
4 c V b ¾"! c 4 $ 6 2# I ! 8 >
‚ ! + (%% 3) 4;8# s % I # ‚$ % | 4 4 % # > ! +I
>+I% = :!K¾J (! Iƒ + ¾K# :
¾(! c # | +I‹ZQ+p%' l 6%p !K¾J (! b ! +I% 6%‹ !K¾J (8! l b … V R ¾7¾ # L
!K¾T (! ¾ 6% C Š
' 6 B ! # ! 8(! L( 6E% :Z
\ # R ¾7¾ # LG ! A¾ %B _ #8*) `
\ # G ! ¾# G
4NK! ¾J (! ¾7¾ # % E ¾7¾ #9$ Š s œ¾ % ¾ (( G
# >+ C +>Š+I% V
 # s % ! 2 ¾ >#54NK! ¾J (! ¾^¾ #9$ 1
#54NK! ¾J (! / ¾7¾ # % 1(% ! c #8 Õ¾ C# r+ C +>
! $$% ! ‚
G' L# R
! $ V ] % # G$% ! ‚| B
! $ R !%( ¾"! >| !K¾J (! :
1+I%' L
AwB L #8# :
!{ 6% C Š
¾#88) $ S
% # L
1+I%' V$3 ( ! $ R #8 Š # ‡
Š+I%' ) ¾"! ( | ‡#W4N!K¾T (! > ¾7¾ # % Hƒ Machine1…0 ¾7¾ #9$ ƒ Machine2… ¾"! ‹) #54 ¾7¾ # !{P ¾"! ( c # V [ 6%%[
C+I%' C7c ` ! / (8#* # # %( INCLUDES % # +I%' Machine1 ¾"! q ¾ +> # 36 c 8#8 Š#54 (*#8 ( (! r
#54N!K¾J (8! ¾^¾ #9$ V 4N!K¾J Þ¾ #8# | # 4 %$ ¾ ¾ %n
Š ¾7¾ # 0
4N!K¾T (! ‡
# ?+ C +>
+I% ¾ ! ) ! # 0
¾K# % L
% # p+> ! n# S ! S c% L ( 0#54NK! ¾J €7O
< ) +> ; ) H#54 %$ ¾ V Q #8 # ^+p%' 1 %( H #* F 6% # # %( INCLUDES V ^ 6%%^
#54; + ¾#9 +I (! ! + ¾"!%( # ,+I%' 
!K¾J (8! ¾7¾ #9$ ŠD6% # # % IMPORTS V .?p% 2 ! 3 Š # ( 6%r | #54; (8! WHILE
+ C
% # + ¾#9 +> (! V
... DO ...VARIANT ... INVARIANT ... END ) 4 2¾ )
 # !  (( f
+ ¾# % 1# F(c ( (8! WHILE ¾ 2# ,(c ( (! (&r %$H+ ! q$ (! 2
L
! $ R 4 (( ! ¾ :% :
% # =$%R ! G
%
#54 7c % (! G ‡# p+> 0 S+I 0# R(c ( (! WHILE % #54; + ¾#9 +I (! V
! =60>;?;@, < 0324,6587)25 * 0>7, ;@0O24,%587 9); 5: +') *40324,65 7;
4N!% {% ( (8! p
!K¾T (! J 4 w ¾ ! V b S ! 'T ! %2 ! +Šc B
'!{ V
] 2 ¾ + I + ¾ ! ' # !K¾T (! ¾  (! ¾ V .=  '! ¾ ‚ ! ( f 4 %
!K¾J (! < ¾^¾ # % ‹ C !K¾T (! : ¾^¾ #9$ V93 ( %`K ! ('% H# !K¾T (! H ¾7¾ @
# % $` ¾7¾ #9$ L ¾7¾ # % E ¾7¾ #$ ! # ' ¾ ( 6%+I # >+I% | ‹( 67% >Z
\ dX + | ‹ ! 'pZ # !K¾J (! ? ¾7¾ # % R 8) +> `
\^] | +> ! 'pZ # !K¾J (! B ¾7¾ #9$ E ¾7¾ # % $`
\ h (!{ | +>G ! 'pZ # K! ¾J (! B ¾^¾ #9$ ? 8) +> V
3 %
8#‡ 3 ¾(! c # | +I V +I%' p !%( ¾Ž! % | # '!{ | +>p ! ' + ¾"!%($ % # ‚+I% 3
# ¾ + | p ! '2 %( m + ¾Ž!%'&$ 2
% # ‚
| +>3 ! ' ) #8# @ + C +I + ¾"!%($ r
% # ¾ + |  ! ' V 3 w 2# K! ¾J (! 2
# ¾ + | ‚ # 1
| +>> ! G ¾7¾ #8# H# !K¾T (! G
# '!{ | +>>+I : > 4 ö¾ % ¾"! ( c # V d ! ) G! + ¾"!%( # 3+p%' C
# (!{ | +>> ! 'I
%H #8# C
# 2
| +> ¾ ! + ¾"!%( ‹ #8# Š
# I
| +>
% # ¾ + | V ] % # Gc # _% H#54 ¾7¾ # # ¾ + | ! ‚6% # '!{ | +> ! a (8#8 2
!K¾J (! Iq ( 6%p
% # f
| +>‚ ! D6% # ( I
G ) }# % #W4 ¾7¾ # # C6 7c # K! ¾J (8! 
% # (!{ | +IŠ ! ' V
/, .0! 1:*4!2"$
*
*:. !#.?%'A%8!2*:9$.*=<
<+ %B , *4 .*= ! !#"$ R+I%' Š | RqK G | 6% # L
7 %+I+>R
4 @W % (8! ! ‚ ( CN ? D
! (8#8 $ ?
¾ #!  + ¾ ¾ 6% ?+ ! V Q=+ ! =(+ A@ s !% +> #8# B
_ ¾ 4 . g ! L &$  ‹ % # ¾ (( =
_%+ *) = _ ¾ H
H
7 %+I+> ¾ +> % :+ ! #* # C ! + ¾"!%( +> 4 ! ci VŽ # C

' 67 (! s !% +> #8# ?
wB :
H
7 %+p+>
4† @W % (! B‚l V ¾ + | : R# %
(! L ' ( B6% # L+I% B7c @
C
% CNyEt D V 0
| +I3 †¾ #8# | # x | # r
' 67 (! /
4 [
7 %+I+>3
2 # %' C;€7MD
¾ &? % # ¾ 7 ¾ ¾ V QR( #$¾Ž!{ ! +I+I%C
C6% ! L
' 67 (! J# ¾ & ¾ #9 +I R
4 +‹c # + V Q
% CNzEt D" #8 H B @
8! ^
67% g $_% ¾J q% | 6% # ,
6E (8! # !K¾T (! '8 % # C
7 %+I+>C
4 @W % 8(! V ] 4 % ¾ ' ' 67% ! + = $ 6 # ¾"! ( c 8#8H %
8 :G ¾J qK$ (! ‚l ‚_ | +IŠ
% (! (8) C zD V
! $
&(+') *-,/.10324,65879:)Q; 2L0O2L)<:01*L24; )7 0><,%7); 0 ; 2L*40>,/2L);
] %: ¾ '( (+ I H+ ! : (8#8 $ ¾ u $‰% ‰ CNyEtED g $_% C;€7MD‡ ¾Ž! V Q?
‚+ ! = ! H (8) R
% # ¾ >¾ V 3
AwB Š
% # s ) # ‹
' 67 (! p
'8 ¾ g $_% %' $ 3‹| p
7 %+I+>B
B # %(T
! S# Š
' 67 (! $ qK G
% # ¾ (( ¾ V
€7M
3 : S1
...
Sn
" V  2
\ ] 5 *+ #-!$#&*
H
‚_ | +>‹ ! (_+‹c !{#8 ¾ ‚$ (
%1% # B ('! Gƒ q2 V {… VK # L ! ! +I+ ?
S1 | Sn V
VVV
SETS
VARIABLES
INVARIANT
VVV
S= S1,...,Sn s
s@ S
} V z 2
\ ] ' 67 (! =( #! u $‰% ' ‰ dn! u $‰% ‰ ‡8# H
$6 =# # +> ‹
#54 +‹c # + S V 3 ( 8 8# ( $ R67 ' 7c # ¾"! $ q 8X#54 ! % I(_ | +> V 4 +‹c # + H (*#8 ¾"! # _ ¾ 7%
:67 ' 7c # L'$ # V
VQV}V
SETS
VARIABLES
INVARIANT
INITIALISATION
VVV
CLASS STATE = S1, . . ., Sn class state
class state @ Class CLASS STATE
class state := B
} V D€ 2
\ ] ' 67 (! 
H #! g $_% ! ># 1
! +I 3 !%( ¾Ž! | #54; ( q% g $_% (8#8 p s ! (! !% # 4N! ci ƒ q1 V D€%… V B% ?
wB classe
B state
# R
‚+ ! ?
‹
' 67 (! ‚ ! + +>
m % # R ! +I+I7%B
X
AwB X ( T (8#8 $ V d + ¾# %` #54 +Šc # &+ ƒ $‰% ' ‰ …S
$6 CLASSE STATE ƒ g $_% … V
S u
5 %(1%#&%! %*;!$#&%')(
4; ( #* ( (! >
4 p
7 %+I+>H
4 @W % 8(! T T ¾ & ¾ 3
) B !{³¾# Q| F
 $ r6% #54 c # V 4; ( #8 ( (! ¾ C #8 $ F
f
^+I% | AwB $` ! +I+>‹
% # B
1 + ¾K# L( 67% :Z
\ + >Z 8# Š #? c # pƒ qp V y{… \ ! ‚
+ >Z 8# ¾K# = c # pƒ qp V U … V
dn! u $‰% ‰ 0# %
(! <
#54; 8( #8 ( (8! Fƒ q‚ V O ?P…= H #8 $ ¾ C w (! ƒ :=…m
% # ?$% ! 3| #8# B + ! ¾ J#54N!K¾T -F 6F DD%FI FHƒ : @ … ) %
I #*# B ! ‚
+ V
€ˆt
S1
} V y \  ( #8 ' ( ! 1
+ S1
...
Sn
} V U \  ( #* ( ( ! 2
! ‚
+ VVV
s := S1 s : @ S
VVV
INITIALISATION
" V O ? 2
\ ] ' 67 (! 
#54; 8( #8 ( (8! p #! u $‰% ' (‰ dn! g
¾ #54; ( qK%
VVV
$_% H# I
6E (8! =# I+ C +>C+ ! #!I# B
AwB =
' =
% # ¾ 7 ¾ ƒ qx V O D… V ( g $_% (*#8 2/ ! ! +I+ creerClasse ) + 4N! ci (8#* G % # s ! (! !% # classe state V
OPERATIONS
oo creerClasse PRE
not(CLASSE - classe = B )
THEN
ANY new WHERE
new @ CLASSE - classe
THEN
VVV
END
VVV
classe state(new) := S1
oo := new
END
" V O 1
\ ] ' 6E (! 
#54; ( 8# ' (! 3( #! g $ _% 5 *#-&!)(:*-%#&%'9(:*
% 8(! Jƒ qŠ V O%O{…‡ !
6% ? c # V
dn! u $‰% ' ‰ % # x
# 7c !%$ | #54 2(c ( ¾ &$ ¾ }| '
' 67 (! ƒ q[ V O%M{… #54 ! (! IF, CASE ! SELECT V
¾
( % 4  $ q
4NK! ¾J (! ! T '  A¾ ! (! ¾ # ! + # €7
3 : SA
E
SB
...
E
SC
SD
} V O%O 1
\ ] % 8(! % (! > T# :67 # w & $ 3 | # :67 ' 7 c # s % #54 + ¾# R( E6 % $ qK ¾ T #54 c # # % (! V
VVV
OPERATIONS
E IF s=SA THEN s :=SB END ... ELSIF s=SC THEN s :=SD
SELECT s=SA THEN s :=SB END ... WHEN s=SC THEN s :=SD
CASE s OF EITHER SA THEN s :=SB END ... OR SC THEN s :=SD
END
VVV
} V O%M 2
\ ] ' 67 (! 
% (! L #8! u $ ‰% ' (‰ dn! g $_% S# ¾' >¾ 0 ! m# + C +> ¾& #54 w (! ) !K¾J $ =( # s ! (! !% # classe state ƒ qf V OEtF… V ] ¾K# *#  " | !K¾J (! ¾ ‹ % (! , ! +I+ ¾ C# ' C4 R
L$ % | J D C( 6 J
m ! +I T ! L c # L
# % 8(! V ] %
#54 + ¾# :
# Cq{ Š V O%O # % 8(! %
¾ ( #54† SA G
%H6% #54† SB V
VVV
OPERATIONS
TransitionAB ( oo ) PRE
oo @ class class state ( oo ) = SA
THEN
class state ( oo ) := SB
END ;
VVV
} V OEt 2
4 % 8 (! #! g $ _% \ ] ' 67 (! €7z
!2"! #-" * 6 ')(0/1%#&%')(0* #!26=#"%'9(:* !2/1/1%#&%')(1(0 *
nd ! u $‰% ' ‰ H# % (! ¾ 6% C F7 +> &$ <
¾ %+ | [ƒ para…2 ! A@
/
(! ƒ cond… ! r
4 % (! ƒ act… ) ! & I | # 3 ! + ¾ 8! 
r
7 %+I+>C
4 @
% (! Cƒ q V O%{… V „Hr ! ) #9 +> Š ! =! c 6 G( H# C
7 %+p+>
4 @
% (! V 3 < w ‹# ¾ %+ | I Q¾ x | # ( I
< ! + #54 $ 6 +I ( 6 # 1 ! 8(! r I (! ' ) C ! ¾ % # H67 ' 7c # H
f
7 %+I+IC
4 @
% (! V03 ( # 2$ % | 4 4`¾ E| # ‹% (8! Š ) 3 ! o¾ %C ! ¾# # L6E 7c # L
7 %+I+IG
4 @W % 8(! V
S1
E(para)[cond]/act
S2
} V O% \ .= % (! ! + ¾# ] % # %
(! Q` # ¾ %+ | : ¾7¾ C4 | # ‹( =
p ! + #54 $ 6 +I V 0Š ! (! ! $ & $ 3Š| #8# R
#W4 ! B X#54 % (! f | #54 w (! # ( 6% | #54† c # Gƒ q V O%z{… V
VVV
OPERATIONS
E(para) IF SELECT s = S1 cond
THEN s := S1’ act END
VVV
VVV
END
} V O%z 2
\ ] 6E (8! 4 % (! ! + ¾# ! "
2L)7;?,%587 9:)Q=60 9 +') *-,6.30324,6587 0>;?; 5<, +') )0 9,60 4* 0
) 9)<=%0>;@;@);
b ¾ 7 ¾ # 67%Š
X
%?' #54 ! ‹ # B
' 67 (! Š
0
7
4† @W % (! J1 ¾J q$ (! l V b H ! 1 8#*# $ ¾ L #54 + ¾# ?
&Š A@ ¾ | V
%+p+>
#W4 %( @
7/1 !2*;68>(:*- <0
‚%( ( 6% ‚# 7%r
4 ^c C ( +> V b ) 7% ¾Ž! ' | x c ! ! 4 ¾7¾ # #54 %( ( V #54; & ' #54 %( ` *# _f<c ! ! ¾ < 7% ¾Ž! ' !{ (C
( (! V %
! ¾7¾ ?( Hc ! ! 8# : #8# + X i ) 4 | #54 '' 6 $ H
#54 %( ( | #54 7% ! V .=[6 ! _{% £¾ F 7%
+ #54† 7%‚ ! % V !% ) #54 %( f+ ! 6%+> H !{ r% > ¾7¾ # ` 8# %%I
4† 7%p
( (! f s !{ # ¾ + ¾7¾ #R #* ¾ ! ^ (' 6 $ /ƒ #W4N! 6% (  2# s +> 
¾"!%( 9… V 4 %' + <% / 7%<
+I%
#!% ) ! # 3
+I%
! &< ( ( s 8 V .=
+I%
#54 7%r ! % #54 %( £
¾(! 6 !) #54N! 6% ' ¾"!%( ¾ ¾ ¾ | ( s +> V ] % # <
7 %+p+><
x # %(' 67% ƒ q  V O{€%… # / # %( Lift !%( ¾Ž! |
€%€
3 : #54 %( Button %fc ! ! V _ ¾ DIRECTION, STATUS FLOOR ! $ qK ¾ B# L+‹c # ¾ ( s R' 67% up,down , opened,closed ground..top V
Lift
-dir: DIRECTION
-curDestFloor: FLOOR
-doorStatus: STATUS
+goDown()
+goUp()
+setCurDestFloor(fl:FLOOR)
+getCurDestFloor(): FLOOR
+closeDoor()
+openDoor()
liftButton
2..*
Button
-floor: FLOOR
+getFloor(): FLOOR
" V O{€ 1
\ ] 7 %+I+>Š
G # %(?
#54 %( ( 0pq{  V O%y2+ ! # ‹
7 %+I+>C
4 @W % (! H
c ! ! V !% ) 4N! r ¾7¾ ‹( # c ! ! * #‹¾ % (2 | #W4 on ƒŒ #8# + ˆ …J B8# 4† | #W4 off V
:
press/^(self.getLift()).call(self.getFloor())
on
off
release
} V O%y 3
\ ] 7 %+p+>Š
4† @W % (! =
1c ! ! 0Iq{ ‹ V O U ¾ # ‹
7 %+I+>Š
4† @W % (! =
#54 %( V %
#W4 %( @
‚+ ! 6%+I A ¾"! ¾ + ¾7¾ # ƒ call…J R) 4 | +>G ¾^¾ # ' 6 ` 8# AwB I $ G#54 %( ( ? ¾"! 3% ¾ + ¾7¾ # D6E% G# C
| +> V „H ¾ '# > ! +I+ A@
$ (! /%_' (! V 4 {+I fl #54 ¾7¾ # call # 3+ (! 4 7%‚
4N! | *#.¾(! 6 V ! >
#54 ¾7¾ # ƒ call… #54 ( (8! 
c ! ! release _ (! C$ :8# H % % ¾ R ¾7¾"!%( | #54 (' 6 $ G
#W4 %( | #54 7%
+p%
V
! (0 >(9# # % = >(9#-!$#"%'9( /1 * #&&!.(0*-%#&%')(0* # !26=#"%'9(:*
67%2
=
%>
' 6% L# L J % (8! S
# C+ C +>:+I% | ) g $_% ` # $%= # D¾ I % # pq{ ‹ V M%O`" ! + ¾# | `} (' %` # ¾'! ij l ¾ +I% R !%( ¾"! % | # : ! !{# B
R ! @!{C # =
>_ | +>? ¾ R% !K¾J (! 3
' 6 $ %B ‹ ! 6% #*# :+I%' pƒ q3 V M ?P…:Z
\ {+> 4N!K¾J (8! ¾"! R ( q R#W4N! cij ! p Z ll
\ G ! (8! ) $ qK R#54† ! IZ lift State(ll) = lift visit
\ G w (8! ) $ q 8R#54 c # Z lift State(ll) := lift ready
p ! + #54N!K¾J (! ƒ q V M ?P…Š (8#* > # # % (8! x
x
7 %+I+>p
4 @
% (! >ƒ q‚ V O U …H !%( ¾"! % ö ¾ 2 f ! + # 2 # %(> r$ % | 4 4Ǿ"! $ 6 8 ?# ¾(! c # | +>R
4 ! + ! &_+ V QR # %'B ! ' 6 $ B
% # >+ C +>+I%' V
€7y
call(fl)[fl>curDestFloor]/
setCurDestFloor(fl);goUp()
ready
call(fl)[fl<curDestFloor]/
setCurDestFloor(fl);goDown()
movement
close
call(fl)[fl=curDestFloor]
arrive(fl)[fl=curDestFloor]/
^(self.getButton(fl)).release
visit
entry/openDoor()
exit/closeDoor()
} V O U 2
\ ] 7 %+I+>‹
4 @W % 8(! B
#54 %( MACHINE
System
SEES
Types
VVV
VARIABLES
lift, lift dir, lift curDestFloor, lift doorStatus, lift state, button ...
INVARIANT
lift A LIFT lift dir @ lift DIRECTION ...
OPERATIONS
lift close ( ll ) PRE
ll @ lift THEN
SELECT lift State(ll) = lift visit THEN
lift doorStatus(ll) := status closed lift State(ll) := lift ready
H
ELSE
END
END ;
VVV
END
} V M ? \ u ¾J q$ (8! ‚
# ¾ '( system
#54 % ( ! 
g $_% # 2% (! 2
4 $ r  !%(( 
4 ! \
¾' (> ! + ¾ V
3 r w G#54 % (! <
C !%(( C
#54† ! C #8# >
4 $ I
#54 c # ! ' 6 $ Š
%
3 : €U
MACHINE
Types
SETS
OBJECTS ;
DIRECTION = direction up,direction down ;
STATUS = status opened,status closed ;
BUTTON STATE = button on,button off ;
LIFT STATE = lift ready,lift movement,lift visit CONSTANTS
floor ground, floor top, LIFT, BUTTON
PROPERTIES
floor ground @ NAT floor top @ NAT floor ground floor top LIFT A OBJECTS BUTTON A OBJECTS END
" V M \ u ¾J q$ (8! ‚
# >+p%' Types
#54 % ( 5# 4N!K¾J (8! ) !%' ¾"! | # % (! V ] % #54 + ¾# #W4 %( G# 2
6E (8! x
# % (! close ! ( p#54 % (8! ‚ !%(( #54† visit ` exit/closeDoor() V 3 #8# 2 ' 6 $ s !% +> #8# +I 1l ¾ lift doorStatus(ll) := status closed V _ ¾ J ! (8#8 ¾ T! # +I% H
¾(! i l ! 8# ? ! $ q ?
% # p+I% ƒ q‚ V M  V MEt&… ) 6ŠƒŒ # %( SEES… ¾ R! = #8# ) (*#8 _ ¾ V TYPES
0+p%' ƒ q> V MEt&…J & $ Š
% # =c ¾"! 6 !{ ¾7¾ # !K¾T (! L
# :+I% Lift $System
!K¾T (! 3
# :+I% lift ¾ !¾ %m ¾^¾ # !K¾T (! 3
R + C +>G+I% V ( Ž! ¾ W¾ %L (8#* S# !K¾T (! R
# ‹+I% Lift ƒ qp V M%O{…J
%
# r+I%' 37cK System $ ># r(cK ( (! 4 %$ ¾ ¾ % #54 ¾7¾ # 1
!K¾J (! # p+ C +IC+p%' Šf + # % V „H ! ! c #*  $ G# p+> # 3+I%' ƒ q3 V M%M{… ¾"! (8#8 L# K! ¾T (! =
# >+p%' ƒ qp V M%O{… V
System
„H +I ') #54 ¾7¾ (! /
#54NK! ¾J (8! lift isVisit ) Lift
'( % #54; + ¾K# +> @
(! System imp ¾Ž! 6 ' q B#54 ! Š67% ?# % (! visit 6% ready V
' <1(1%6 !$#&%')( >(9#-" / %!."! */ - #-!$#-* #-&!)(:*-%#&%'9(:*
0 ! +I+‹ $ (! v x
7 %+I+>‚
4 @W % (8! ‚ #* $ ,
<
+I% | AwB GZ
\ (_ (! \ %(_ (! ¾ + | I #8 $ ¾ a + ¾# 1 ¾7¾ # #54N!K¾J (8! % #W4N!K¾T (! 6 $ r
# % (! ) +I%
# _' (! ( (! V 0a
| +>< AwB $ , % ) # % (! ) !{ C G $ $ ¾ ' #W4K C V d ! ) R! (8#8 (?=q # :
4 ) + + !%' # J ¾7¾ # S
4 $ (! ] % #W4 + ¾K# =
#54 %' ` #54 ¾7¾ # release _ (! %
) #54 ¾7¾ # call # %(_ (! V 3 [ w `m #8! # 2$% C' % 7c #8 %
y?
MACHINE
Lift
SEES
Types
VVV
VARIABLES
lift, lift dir, lift curDestFloor, lift doorStatus, lift state ...
INVARIANT
lift A LIFT
VVV
DEFINITIONS
FLOOR == (floor ground .. floor top)
OPERATIONS
lift transVisitReady(ll) PRE
ll @ lift lift State(ll) = lift visit
THEN
lift State(ll) := lift ready
END ;
lift closeDoor(ll) PRE
ll @ lift
THEN
lift doorStatus(ll) := status closed
END ;
bb lift isVisit(ll) PRE
ll @ lift
THEN
bb := BOOL(lift State(ll) = lift visit)
END
VVV
END
} V M%O ‚
\ u ¾T q$ (! #54 %( Z$%B # ƒ D6E%
g $_% …
| ¾^¾ #9% `m % ‚ ¾7¾ # ‚ ¾ % ¾' # D6E%/
‚
% CNzEtEDW`m L#54 %( † iD<
v ! (! 67% ) # ¾ + 8 7c ! ( V „H $ F
! fq # f
4 x
$ qK ¾ H# _ ¾ 7%C' 67% call queue A lift FLOOR V }!  ! C4 ¾ +I% # ? ¾7¾ # #54 %( v V „H^ | , Fq # f
4 v | #54 <
4N!K¾J (8! 4 ˆi ! ( ¾^¾ ( 8! 2
# +> V
y
IMPLEMENTATION
System imp
SEES
Types
IMPORTS
Lift
OPERATIONS
lift close(ll) VAR bb IN
bb lift isVisit(ll) ;
IF bb = TRUE THEN
lift closeDoor(ll) ;
lift transVisitReady(ll) ;
END
END ;
VVV
END
} V M%M \  + K¾ # +> ( 8! ‚
# >+I% system
System
System_ref
Types
Basic
} V MEt \
.*:%
includes
sees
refines
uses
Button
Lift
¾J q$ (! lv
_ | +I‹
G ! @!{C # Š
4 %( Š
# >
@ !#"$6%'/ ./ !2"$ 0 ¾T q$ (! l^
' 6 $ G
!{ C G ! + ¾#9 &$ ¾ L# J !%N¾ L
4N!K¾T (! 1 3$ 6% #8# +> ¾ ) #8) ¾(!K¾'9 ‚
#W4; P67 ' % ! # 7 %+I+>1. g ¾ 6% ¾' +> 1# !% #8 V Q # %{7%‚„ b X` ) s Õ¾ (( $  % 4 . g m` ¾ +> ¾ #8#* Š# +I% ) 4 ¾ ( 6 8&C H
7 %+I+>H. g $ G8#`¾ +> 4 ¾ +> H# P67 ' % =
# %(= :# ¾G D¾Ž! j@ ! (! L
!K¾J (! V
y%O
) ; 9:) 0>;@) * ') 9 ') 7, ; 3 ¾ ' ! # ( 6%x/
| _ ¾ r
rc%f
$ q „ b X`S ! ' 6 1^l ¾ _ ¾ 1 K! ¾T p !%( ¾"! % C # %{7%‚l=`m( 6E% C# 67 8# "| %
CNzEtEDRƒ 8# C
4 % D6E% CNM%zD …`m | #54 ¾(! r
_ ¾ $ # V dn! Q
%` # p !{# (! 4 ¾7¾(! +> H67 # L$ #8# ¾ s % (! $ q ¾ 1 ! ¾# :
:67 # S ( | $` ¾ + ¾# # C67 # $6 R# H ! ¾# 1 3 V ] 4 % ¾ (R#54 (8#* ( (! 2
#54N!K¾J ! + ¾ ! ! #8 [ | ) #8) B%%+> :
# I+ ! #8 ( (! #!% ) 4;*# (8#8 6%‹
s % (! R ! +I+>
= ) $6 a d = b c V
!#! $
!#! "
Q
) < 58= =6)<24,65 7
_ ¾ L !{#8# (! }` # !K¾J (! S„ b ¾ $ qK ‡ m# !K¾J (8! S„ b ) C B' _ ¾ B ! s !% +I #* Rl AwB +I+> `K( 6E% R) 4N! (*#8 # _ ¾ u `KlJ7 ! u ) V
u !{L _ ¾ ‹„ b x h ( s !% +I #8 ( (! 2‚l Z
\ # _ ¾ : !{#8# (! Set(t) ` ) { ! # J ! @ +‹c # J
t ` + ! #8 = 1l ¾ \ # _ ¾ 3 !{#8# (! Bag (t) ` ) { ! # :+‹ #(A@ +‹c # :D6% # # +>
+ ! #8 G ‚l ¾ T N \ # _ ¾ J !{#8# (! Sequence (t) ` ) { ! # n( 8 0
4† #9 +> m
t ˆ` +
+> ‚l ¾ seq(T) V
!#! t `
! #8 *-);?;@,%587 let ... in ...
4 ¾ ( ! let ... in ... f„ b ¾ +I G
# B+I% '! ) Ǿ +> ¾# #8 c # S L ¾ ( 8! V bT! +I+>Gl ¾$ 6 !{ = # %G ¾J # DEFINITION ¾Ž! $ q L+I% '! $` 8# R#!  8) H
4 (8#* J# L # %L
H
$ qK (! ¾"! + ! #8 L# J ¾ ( ! let
+I+> #W4; 8) # I
' 67 (! ) ( Z
... in ... !
#54 ¾ ( ! let v1 : type1 = val1, . . . , vn : typen = valn in exp ¾Ž! j@ ! (! =
oper
¾ +> G
$ qK R# L67 ' 7c # #! $ # v1 , . . . , vn Z
DEFINITIONS
v1 == val1 ;
... ;
vn == valn ;
! |
v1
` VVV `
`
vn val1
` VVV valn
{ ?# s %! +‹ # ( ! 1‚lv
v1 , ..., vn, val1, ...
valn
V
'9(:6 0#-**,#&"<06=#&<0& *
.=F ' c attr _ ¾ typeAttr %GI # %' Class + ! #* ¾ >67 ' 7c # Il
$q &67 ' % Z attr @ class typeAttr ` ! | # r67 ' 7c # class + ! #8 #54 +‹c # attr ¾ >#54;
4; % H w ( 6%Š
Classe
ƒŒ s  V O V O{…H $ q ! +I+>If+‹c # >l ¾"! + ! #8 typeAttr V .? ( ! (! ^c 8 typeAttr
$ q ¾ #54; &6E % assos @ class
Assos ` *# 3 ! + ! #8 1
# V u 4;8# _[
) #8 q$ ( s $ 6% # + C +>class2
G+I% | ) 4 2 c ` @ class2 , ...,: ,@ ...,class2 : V ~ ! Lˆi ! ! L%( &6E % R#* % assos , ..., @ (assos ... ) @ class ... V
!#!
y%M
*-);?;@,%587 9:) 58; 2 N< 5879,62L,%587
0 s !% +I #8 ( (8! >pl X ¾ ( ! S„ b 
¾"! j@ ! 8(! I
4 > ! ¾ ! + ¾Ž!%' +> @
# ¾ > ! +I+I( Z" !{ ‹ ¾J q$ (! x„ b preCond ` postCond {% =# ¾ @ ! (! 1 R# ¾"! j@ ! 8(! 4 !K¾J (! . g oper V 4N!K¾T (! l H+F PRE
6 $
oper ƒŒ. g n…J  $ I
# >+I% | Š( 6E% >Z
THEN END \ # p { G ¾ (( ‹
# ¾ @ ! (8! d©¾"! B _ ¾ H# B {+> $ 6% # H
#W4NK! ¾T (! !  $ : #8! # ¾ 7 ¾ Š V t V V M ¾ (( G
' 6E (! #! g $_% \ preCond 4 Û ¾ %Q6 Bƒ D F'…Xƒ preCond 6 %`$ #8# ‡ 4 Û ¾ %Q ¾T q $ X ¾#8 8 +> …
#8!% # ¾ @ ! (8! P ! + ¾"! $ p
¾ $ :
_ ¾ 7%> ¾ $ :
' 6 | ¾ (( preCond Ž
% # Š$%? ! %` # ¾ @ ! (8! P # +> ! + ¾"! $ ¾ $ ?
_ ¾ 7% ¾Ž! R# R {+I $ 6% # \ # p(cK ( (! S  $ f | ¾ (( # ¾ (( postCond ` #*# Š # s !% +>2Z x : @
ƒ -F 6F D D%FNI F'…T
% # G !%N¾ B
#54N!K¾J (! lv
#8# G !%( ) >Z
(P)
\ x #8 p
36E ' 7c # Šl ) ! P ¾ > ¾ # +> ' 6 $ >
‹ ' c ‹ %( ! (! R+I (! $ B
% postCond \ # ¾ $ P ' 6 ¾' >¾ # +I postCond (*#8 (% # ( +I%f
' 67 (! ¾"! R# R ! ¾ B. g [ # R V  V M V V
3 ¾# 0
4 (8#8 ( # =(c (8 (! -F /F D D%FNI F `7Q
% ¾'!K¾Ž! (S
4 (*#8 n# ?'c ( (! IF ...
% # C+ ! #8 ( (! 1l^
‚$%?
¾ ‹
# C ! (! THEN ... END
„ b if cond then exp1 else exp2 endif postCond
% postCond V s !% +I #8 ' (! [al ‚ ¾ ( 8! ! #8 F>| G # %(>Z
\ IF condB h 3 ~ subst(exp1) ELSE subst(exp2) END ` exp2 4 œ¾ %LH ¾ ( ! rZ
\
if ... then ... else ... endif
IF condB THEN subst(exp1) ELSIF condB2 THEN subst(exp21)
if cond2 then expr21 ...
VVV
`Q # s %! +>IZ
! | condB condB2 ! ?# s !% +I #8 ( (8! Ll cond cond2 ƒŒ. g ‡…L ?! | subst(expX)
{ # ='c ( (! Bl ' 6 $ 3 | ¾ (( #54 ¾ ( ! <„ b expX ! |  ! +Šc ( V
END
expr2
.*:@ !2"5&%'A <+ %'
.*= ! !#"$ , !
/, /
bT! +> % 67% ¾"! ¾ +I+> ( f# ^
' 67 (! }` # 67% ( A@
67% ‹ 4 ¾7¾ ‚
| > % (8! , 4 j@ | @ # % s !% +I (! P6% p
# ' 67 (! V
 # ‹ 4 (8#8 ( ö¾ %C3 !% (! /. g v+p ‹ #*# 2
‹_ | +>>
% (! (8) &$ | ¾(! 'H
H #*# =
L
7 %+I+IT
4 @W % (8! R. g V 4 % (! L #8 $ 3 | ¾ (( ¾J qK$ (! Bl^6% ?
L6L ¾ 8) Gƒ u _ | +>?
% (8! (8) &$ 9… V
! $
:; 2 )
)Q9:) 2L*40>7;?,/24,%587; ') 24, 1)2+') );
.=‚_ | +>‹
% (8! J $ q B# ) %
# ƒŒ~Š` g `;m` …L(%% ?) >Z
\ ~ R#W4 +‹c # G
$`
\ g ?#54 +‹c # :
8( %p g ~‹`
\ F B#54 +Šc # :
(8) Cƒ # 7c" # …S
% (! $`
!
yEt
@ SƒŒ~ ~H…J B# # (! % (! 1 # V
.= % (! ƒ I 7…H %( !%&$ V0h ! # % (! (8) &$ 6% C J # (! 1c =( L# ‹ƒ ! c #8 % T# # 7c" # … @ SƒŒ~ ~:… Z
… # V ƒ # @ ) )4 @ …
ƒ ) ` )K4 0 s +> % ( 6%I !%$ ` # s +> 6%2 ‹ % ( 6% #54; &6% V .= C) ~ {7c # p S) C g DW`n% +> G) (( | #54; +I7%1
( % @ # s +> 6%2@ % ( 6%2
V u s
#!% ! F !% C =D Sƒ … Sƒ … # ! (! <
( Š( G#W4 +‹c # C
G "! C :D @ Sƒ @ … Sƒ … # s ! (! f
H($ ( V u !{ r ! @ +‹c # 1~Š`‡ #!% # 1 ! + #9 +I "!%( r
| ~ V QC
$ q (! ( 67% ‹ ! @
c #8# +> (*#8 $ ‡( # (8! nc CNz%y`{y{€ D ! | `
Z
\
C =D ƒ … ) ) @ K) 4 V ƒ )K4 @ ƒ ) ` )4 … @ =…
"! C :D ƒ … )4 )4 @ ) V ƒ ) @ ƒ ) 4 ` ) … @ H…
H F C :D ƒ … H F C D ƒ …
H N D C :D ƒ … H D C D ƒ …
J!% # %` #8!% H F C =D C :D} s ! (! Q` #8!% H F C =D C :D V dn! uv
# >_ | +>3
% (8! $` # # 7c" # 6% C  ! 3 ! +I+>‚
s 2( ># ƒŒ~ ~H…S ~ Z
# (8! ) 4;8#"# 7c" #8#8 V >
$ qK (! ( 6E% G (8#8 $ ! |
C # D ƒ … ) ) @ ~ ) 4 V ƒ )K4 @ ƒ ) ) 4 … @ 1…
"! C # D ƒ … ) 4 )K4 @ ~ ) V ƒ ) @ ƒ ) )K4 … @ …
! "
M*-,%7<, ) 9:)Q< 587; 2L* <2L,%5879 7 ; :; 2 )
) 9) 2?*-017;?,/24,6587;
7,
] %H > (! }`Ž ! (! ?Š+I% | C
! 8 Š_ | +IC
% (! (8) &$ C zDW`R
$ qK % # 7 ƒ5 V z V D…`?
2< J q$ (8! v
4 _ | +>‹
4 $ 6 +> Hl V
! 7 +') *-0O24,%587 9:);+') 2?0324;
0I+I% | # # L + # H
G
$ q _ | +>
% (! (8) &$ H
L:+I @
' p7c pl 4 &+ ># ‹# % (8! V „Hx (8#8 >F_ | +I27c u %6 > #8 ‹
6E 7c # "! ! `} P67 ' % # `} ( #8 ( (! %$0`Ž #8 4†$ 6 +> ƒ'&)( +* (5… "! R @ VV +` ! | # ( %3 ! B# R w (8! ,.-CZ
,.- /0
. 1 ƒ 3ˆ… i VV 2
! | . 1Šƒ ! ! /E…R H# ! E!i({ 0 4:C .;D54 d @ C .;D d ) !% # # s c # ! (8! [ƒŒ s
O V M V {… Ž! J) # >(c (8 (! 1
4; 8( #8 ( (8! p. + : 2 7c #8 ' d ƒ d ƒ ! …… V
dn! ) ,6 ) ( ( s Q#54; &67 ' % 7# ' ) $ 6 +> &)(j` #{) X H$ 6 +> % ( 6 1 | #54 ,86` # R($ (( R
9,6 R# % (! # 7c" #8#* $ :&)( ! B ?# 67 # ! c ? | # >'c ( (! 2 #8 $ * (TZ
y%
ƒ ! … … i @ VV ] % # Gl @ c !! ‰ CNMDSƒ 7%O U z{…`Ž { q %` ƒ ! /E… @ ,86p #!% :Z
ƒ ` … @ FI %ƒ * ( …
] %R !% (! FNI # (! 1c ) ! # 67 # Š67% | # <(c ( (8! * ( V $%
‚ ! I( Ž! (! | (! "! >
# + ! ! ƒ % ! $ #54 &_ "!% }| I' G# $ 6 +I $` ) Š) # (( >% (! #54†$ 6 +> j + %
:l=`} { q ) # $ = +ƒ …? 6 …` # #8  #54†$ 6 +> l & ( * (X :# % (! L%( ! 9$ =%‚_ | +>‹
% (8! J Z
"! C & ( D # ƒ * ( …
,6
!
0C ,86
Tƒ
D
(31
*
„HII
C &)( D # ƒ * (5… H F C & ( D ƒ * (W… V ~ ! X ! p
+ +> & ( X# {7c # GZ 6% C Š ! R ( 6%+> #54 ? 8( # V
!2"5
4; $  (8! >
0
_ n
S+ ! $` s !% +> #8# X (+ A@ s !% +> #8# `D+> Ri‹' @
( #8# +> ‚
7 %+I+> ) ! Z # ?
7 %+I+>=
# %(? 4 @W % (8! V b +> R+ ! #8 ( (! p7c =
X X
B
! $ S I ! + "!%( +> p_ | +I
J q  | # s !{ s !% +> #8# +> | #W4 C
‹6H 8) V 01
' 67 (! <
H
7 %+p+>
H # %(S1l s C4 H
T S
=
! $ ) = ! % s !% +I #8# %
) # =
+I 'J (8#8 $ #!% ‡
# =
' 67 (! C
‡
7 %+I+In
4 @W % (8! +‹c # s !% +I ! ) ) #8) C !{G# 67%f ! V b ( D6E%< (8#* 4 % 7 %+I+>= ! +I+> # =
7 %+I+I=
‹$%:
4 (*#8 ( (! ‚ 4 % ( 6 8& V b 67% ! H | & ((% $`+I 8# 4 6 ) # C
' 67 (! L+ ! } | # B. g <%
:
R+I% Ll
! + #*8) $ ? p 8# ‹3| ! + Š
4 ( 4 % '?# ' 67 (!  #* $ | +> H ! 6 H( ' "!{ ! +I+> # ?+ ! # T (! L V t V O  V M V ] 4 % ( `
8# 3 8# ‹
(! ij G# ! c #8 { (! =
6%H ! !{# :
% # 2+I%' >l=` #!% H
# >6 ' q$ (8! s !% +> #8# %`( =# R6=. g / !%( "! % V d0! "!%( % "!{ 6G( B# >
' 67 (! "! +I G
4 ' ‹
+> l ! ! c % L6
. g a
# 1 J q$ (! < ! D6E *#8# (! =( :#54 % (! <
7 %+I+>H. g V bT! +I+> # !% #8I D6E%f
† iD | #8 :
% # ! +p ‹
#54; &$  (! <
=+ ! s !% +> #8# B + @ s !% +I #8# '( $ #8 %> # # <
6E (8! }`m !% +p ' 4 f( #54 % (! ,
G
7 %+I+>G
I # %(G 4 @W % 8(! ‡) p
G
7 %+I+> # ! ? ! +I+>Š G ) Š 4 % ( 6 V
"$ @/(
y%z
"!#%$ $ & (' )&*&+&
-, . 5 ."% @ !#"$
/1032547698:6-;50 83BC2DFE54 8I4A8I2 DF254J2D 8:0 DK6-;8ML8 03254ANOD 0 DF2SL8I4 036Q; 28I4:l8I2
L < 70  @ 0 P:P 8:L8:6U=TV03<?>A4Q@ 4A8I4UW~XDFE545@H>AG@ 0 <V> DF> 25420 | >A@ >A0Z@ Y38 @ 4[5698@ >A> 889\ >A@ 03>A6 @ >R< DF2]E=@Q2 P <V^ E>R< 8 P 8I2 > TV8IP 4 5@H8IG < L < 6U0 > 4JL8
>`_ DF,2 70 30 | 8aL0 8bTdc < 2eL5Yf8I0 4p@Q8I< 03252 4A>8 Whghk=TiT?E58IŠ4 4 ƒq50f@Hkr8IG 4 6 < 4 08 G P 4s8I2 DF> E 28IDF2tE5E 4:258 DF8IE544:…vLNODK8U6Uwr032 T < 4A4vDFL525034:2=4Q4vE E5@ 2Td8 cjD3k > 038I6-2 ; >R< 2DF8x2*8 LlcmLE58I24v8 L>ADF@ 2=03L52 E58U8I6o4n
>Rƒq<69DF254 032 @R8I>R4X<?@ 8 Yy0 0fk=T?P 8I4 … 8U8I>4 >A0 | @ <?0 > LG 87698IPu4vG 8I@K2=G 4A8 krG T?8I4U< W5|C8I4X03E 8I4 P 8IL < 6U0 4s> L587Tdc 2tYy0 03G 2
0 < 254 <K>^ E8v> T?8I4 => @K8pG 8 @-> < DF4 > n`69DF>z_25{L <?G >R< DF254}L8I@Q4}>R<?D @ 8 G @ 0 >R< DF2544A8 @P DF2 >~>A@ 0 <?>K8IG 4hL=03>A25@ 4~T?8v=6Q@K;=G 0 =< <?>A@> 8B€tWK 8 < 8I25@QL=< 032 >>
698I47L8IE\€6Q;=0 =<?>A@ 8I428 >A@ 0 <V> 8I2 > 034xT?8I4‚89\ 5@ 8I4R4 < DF2541Llcm0 @ k @ 8I418 > Llcj8I2 @ $8  < 4 >A@ 8 P 8I2 > ƒ @ 8I69D @ L=4…‚6U0 @
8ITVT?8I4x4ADF2 8IESE T 4 8U8I418 28 DF4R498Iƒ L8I2 0347E5258 03L5E56 DF2]L 8I6 8„0…ƒ T†cm0 L8:LlcmE5258[89\ 8I4Q4 DF2
8 G ^ E < Yy03TV8I2 > > 8p8I2M‡1>Rˆb< < |hWeG  8p6Q> ;50 =<V>A@ 8 ^ E < 8I4 > > E525889\ > 8I25>A@ 4 < DF2ML5>R8I< 4 0 =<?<@ 8 @ :4 > Cj‰3ŠHBF‰3‹ <D8I4 > L < Y < 4 8 G 8I2 5@ ^ E50 < >A@ 8
0 @R>R< 8I4UWŒ/1032541TV0 5@ 8 P< 8ƒ @ 8[25DFE541L 8IG 6 @Q< Y3DF25412D >A@ 8M0 =@ DK6-;84RE @ E528 P 036Q; < 258[0fk=4 >A@ 0 <?> 83BlL503254‚TV0
L8IEH\ 8ƒ 872DFE=4 DF2 DF254p4RE E52Ž89\H8 TV814 T?81T?8I4 8I4RE=T 0 4pD3k 8I2KE54UB5L5032=4pTV0 D 4 8ƒ 872DFE54
8 G > 8I25L< DFP254s2D >A@ 8P0 5@ >ADH@ 6Q;58 DF@E @ >A@ 0 <?> 8 P@ Ti0[69D P<VP DF4 <?>R< DF2@HLG 8 > TVE5> 4 < 8IE @ > 4 P 036Q; < 258IT4 l*8 >A> @ L5< 03<254{P TV0 ^ E50yn
>A@Q< 8ƒ P 8J2DFE54p69D P 0 @ DF254v2D >A@ 870 5@ DH6Q;80Mƒ Llcm03E >A@ 8I4 5@ D DF4 <V>R< DF254 C;€tBr3‘ D’Nq0 <?> 8I4 TiE54 @K8IG 698 P:P 8I2 > W
A“
(#* -/, @/!R8
” @ *4 !#"$ * 6%8!#*:9;.*=< < %' @/(#*:B/
); 0>< ,%7); 0 ; 2L*40>,/2L);
" $
‡‚284 8I6 w=6U0 DFF2 l 8 032 4 E56 E 8U8:8I2 036Q; 28I4x0fk=4 0 8I4UB T}8I4 2 8I698I4R4R0 8L8 DFEY38
E528 8 G ^ E < Yf{03T?G 8I25< 698Ž>R8I< 2+‡‚ˆ„| G > DF> E @ >A@698 >A> > 8b@H2G D >R< DF2+P L8 P < 036Q; < 283W~>A/‚@ 03<?2=> 4:T?8I< 4 > 8I> 6Q;52 G <V^ E58I4M<V@L8•L 8 G @Q>A< @ Yf0 >R< DF2 @
Llcm‡1ˆb|„Y38 @ 4Tl‚BtTV074RDFTVE >R< DF2:6-;D < 4 < 8s69DF254 < 4 > 8[0 ƒ @ 8 =@K8IG 4A8I2 > 8 @ E5258v6UTV034R4A8 0 @ E5258 P 036Q; < 28X0fk=4 >A@ 0 <?> 83W
‚cj8I4 > E5258[4ADFTiE >R< DF2€250 > E @ 8ITVTV8JL5032541TV0 P 8I4RE @ 8JDCESƒ Ti06UTV034Q4A88I2€‡1ˆ„|+8 > TV0 P 036Q; < 258[0fk=4 >A@ 0 <?> 88I2
l–4ADF2 > TV8I4 8IG T 8 G P 8I2 > 4Lp
8  032KE5TV0 8 8IT 8 8I2 0 8 E 8 8 8I2 L8 8$ DFE 8 L8I4JLDF252 8U8I4J8
L8I4D 8 G @ 0 >R< DF254IW51cj8I4 > DFE @@-^ ED < 2@-<?DF>tE5G 4 G 6Q;G P D < 4 < 4R> 4ADF<?2=@ 4hL^ 8 < @ 8 5@H@Q8IG P 4A8I2 >A> > 8 @ > E528 P @ 036Q@ ; < 28X0f@ kr4 >A@ 0 <?> 8 0 G @ E528>
6UTV034R4R8x69D P:P 8xL=03254pTdcj89\H8 P T?8x‹KW 8 > TV0wFE @ 8x‹KW—‘KW
" "
);
.301*-,%09 =6); )O7824, )+*4); )+27 5 58= +') )O77:)O;
 8I4ŽYf0 @Q< 0fkrT?8I4L 8UG wr2 < 8I4ŽL503254ŽTV0 P 036Q; < 28 ƒ k < +‹KW—{…L58UY < 8I2=28I2 > L 8I4Ž0 A> >A@Q< krE > 4ŽL8STV0u6UTi034R4A8
ƒ k < ‹KWj˜&… ^ E <™@ 8 5@K8IG 4A8I2 > 8J698 >A> 8 P 036Q; < 283W5/103254sTV0 P 036Q; < 2587L8xTdcj89\H8 P T?8 5@HI8 G 4R8I2 >K8G L503254vTV0:wFE @ 8
{Š €
Š3Š
MACHINE
AM
...
OPERATIONS
Op1 ... ;
Op2 ...
END
l‹KW |’0
P 30 6-; < 28
AM
AM
+Op1()
+Op2()
l‹KW—‘ŽˆbDKL
8IG T < 4R0 >R< DF2…L587TV0 P 036Q; < 28 AM 8I2…6UTi034R4A8
‹KW—KB 8I4 E528[Yf0 0fk=T?8Jk™DtDFT 8U8I25258[8 8I4 E52€8I2 8 250 E 8IT†WŒ|hc 2 03T 4R0 DF2…L58I4XYf0 0fkrT?8I4s8I4
D3k=T < Fb0 > D <?> @ 83W|C8 >z_ @Q< 07387L58I4 0G @ 0 P 8ƒ >A@ > 8Ix4v8 > > L8I4 @K8IG 4RE5>R< T > @0 > 4sLl> cmE5@ 281D {8< G @ 0<?>R>R< < DF2< l>R< 4R8‚Nq0 <?> L5032=@Q<4 TV8169D @ >4
L87698ITVTV89n`6 < 03E…2 < Y38I03EbL8I4v4REkr4 >R<?> E >R< DF2=4UW
MACHINE
AM
VARIABLES
b, x
INVARIANT
b @ BOOL x @ NAT
INITIALISATION
b := true x := 0
OPERATIONS
Op1(y) PRE y @ NAT THEN ... END
z Op2 PRE THEN z := x END
END
W?W?W
l‹KW—Žˆb036-;
< 28 P 5E 2 < 87L8Yy0 @-< 0fk=T?8I4{8I2 >R< 8ƒ @ 8I4v8 > Œk DKDFT 8UG 8I2528I4
AM
+b: bool = true
+x: NAT = 0
+Op1(y:NAT)
+Op2(): NAT
l‹KWj˜ŽˆbDKL
8IG T < 4R0 >R< DF2…L58I4pYy0 @-< 0fk=T?8I4
Q 8 Š3‰
);)7;@) =6);
;@, =6)O;
" 5 * (0*; * ! 0*;#-&!)%#&* # *$!2 %! *!2*;*;' 6 % *
‡‚2b8I2=4A8 P krT?8J0fk=4 >A@ 0 <?> qƒ 69D PP 8 A L503254XTdcj89\K8 P T?8 5@H8IG 4R8I2 >K8MG wFE @ 8[‹KW {…v8I4 >X@ 8 5@K8IG 4A8I2 >t8:G LCcmE528
0 @R> 0 @ E528v6UTi034R4A8‹qƒ 2D >K8UG 8 < 6 < E A~… 69D @R@ 8I4 DF25L5032 > 03E >z_ 8sLCc 8IG T 8 G P 8I2 > 4{L8sT†cj8I254A8 P k=T?8{8 > Llcm03E >A@ 8
0 0 E=28S034R4ADH6 0 DF28I2 8 698 8]6UTV034Q4A8S8 TV0 6UTV034R4A8 8 8I4A8I2 032 Ti0 036Q; 258 Oƒ w ‹KW—‹{…-W
| cj89@R\ > >A@H8 G P:@ <?>K8[G L8Tdcm034R4ADH< 6 >R< <0 >R< DF2ŽL5>AEŽ@ 6 D C >t8J>AG > L8TV06UTV034Q4A>8769D @R@ 8I4 DF25L=@ 0352 @K> G 03E >>`_ > 87Llc 8IG TP 8 G P 8I2 < > DF4Q498Iƒ L87E52
2D P ƒ ? I F'… ^ E < 8I4 > 698ITVE < L587Tdcj8I254A8 P k=T?8pƒ < 6 < A-… W5|C8I4vYf0 @Q< 0fkrT?8I4pL8 >z_ 88I254A8 P k=T?87L58UY < 8I2=28I2 > L58I4
034R4ADH6 < 0 >R< DF2=4h0IY38I6‚T?8IE @ 2D P 69D P:P 8X2D P L8 @@DFC T?8XL5E:6 D C >t8G 69D @R@ 8I4 DF25L5032 > 03E >`_ 8XLlc 8IG T 8 G P 8I2 > W‡‚28
Yf0 @Q< 0fk=T?8>ƒ a… 0 0 @R> 8I2=032 > 0Mƒ E528I254R8 P k=TV810fkr4 >A@ 0 <?> ƒ A… 8I4 >p@ 8 5@K8IG 4A8I2 >t8UG 8 0 @ E52807 @H8$G F 0 >R< DF2b8I2 >A@ 8
TV0•6UTV034Q4A8 @ 8 5@H8IG 4R8I2 > 032 > Ti0 P 036Q; < 28:8 > TV0b6UTV034R4A8:69D @R@ 8I4 DF25L5032 > 30 E `> _ 8 Llc 8IG T 8 G P I8 2 > 0ZY38I669D PP 8
2D P L58 @@DFC T?87L5E…6 D C >K8[G L8x698 >A> 8J6UTi034R4A87T?872D P L8xTV0Yf0 @Q< 0fk=TV83W
MACHINE
AM
SETS
A
VARIABLES
B, a
INVARIANT
BA A
...
END
a
@
A
l‹KW Žˆ„036Q;
< 258 P =E 2 < 8Llcj8I254A8 P k=T?8I4p0fkr4 >A@ 0 <?> 4
B
am
1
*
a
AM
1
E_A
1
*
am
A
l‹KW—‹ŽˆbDKL
8IG T < 4R0 >R< DF2…L8I4vYy0 @Q< 0fk=T?8I4 >`_ {8UG 8I4‚0IY38I6[L8I4p8I254A8 P k=T?8I4p0fkr4 >A@ 0 <?> 4
‡‚2869DF2 0 2 82„7{| 8 8 Llcj89\ 8 T†c 256UTVE54 DF2b8I2 8TV8I418I254A8 k=T?8I4 8 E 2Ccm0 n
0 @ 0 C4V> 034p4RE>A@ @ T?< 87> L < 07 @ 0 P:P 87@-P L581> 6UTi034R4A8I54v@Q0 <VP < 2=4 @ <l^ E5< 87Tdcm0 < 0 @R> 8I2=>A@ 03256987L8 a 0MƒP Tdcj8I254A8 AP k=>T?8 BA^ W5/1< 03254sTV0
69DF2 >A@ 0 < 2 > 8‚L8‚TV07wFE @ 8‚‹KW €tBHT?8‚69DF2 > 89\ > 8 0 @@ 0 D @R> 03E ^ E8IT=4Icj89\ 5@-<VP 8sTV0J69DF2 >A@ 0 < 2 > 8‚8I4 > TV0x6UTi034R4A8
8 4 F2 w58 2tYy0 < 032 > W 3 2E >R< T < 4R032 > T?8 ?@ DFC T?8 A L58 E < 4~698 >A> 816UTV034R4A83BtDF2:D3k >R< 8I2 > E52M8I254A8 P k=T?83W
AM > inv < <
|’0…N DF256 >R< DF2 5@H8IG L 8UG w=< 2 < 8 @-includesAll
8 @QP 8 > L584Ucm034R4RE @ 8 @x^ E8 > DFE54xTV8I4 8IG T 8 G P 8I2 > 4L8:T†cj8I254A8 P k=T?8
034R4 8xG 8I2 0 @ 0 P 8ƒ >A@ 38 ƒOD3k > 8I2KE 0 @ TV8 @@DFC T?8 B… 4ADF2 >s< 256UTiE54{L503254vTdcj8I2=4A8 P krT?81D3k > 8I2tE 0 @ T?8 @?DFC T?8 A W
‰?
context AM inv :
A includesAll(B)
and A includes(a)
l‹KW €Ž{DF2
>A@ 0 < 2 > 8I4XLlc < 256UTVE=4 < DF2L503254vE52Ž8I2=4A8 P krT?8
5 * (0*; * ( < *
‡‚2b8I2=4A8 P krT?8 8IG 2KE Pu8 G @K8G ƒq69D P:P 8 C L5032=4sTdcj89\H8 P
A
T?8[L8JTi0:wFE 8J‹KW—Š{…s8I4 8 8I4A8I2 8ML8JNO069 DF2
4 <VP< TV0 <?@ 8b0„ƒ E52 8I254R8 P k=TV80fk=4 >A@ 0 <?> B P 0 < 4 < 6 < T?86U0 @ L < 2503T L8Tdcj8I254A8@ P k=T?88I4 > >X69@ DF2552K@KElG B 0 < >t25G 4 <^ E8T?8I4
L < sG8 @ 8I2 > 8I4hYf03T?8IE @ 4 DF4R4 < k=TV8I4~L8X4A8I4 8IG T 8 G P 8I2 > 4UW|’0x6UTi034R4A8 @ 8 5@K8IG 4A8I2 > 032 > T?8I4 8IG T 8 G P 8I2 > 4{L8‚Tdcj8I254A8 P k=T?8
69DF2 >R< 8I2 > E52 0 >A>A@-< k=E > value LDF2 > T?8 >`_ 8:8I4 > L 8UG w=2 < 0 @ E5258 8IG 2KE P 8 G @ 0 >R< DF2u‡1ˆb| @ 8 8 G > 032 >
E C
T?8I4vL < sG8 @ 8I2 > 8I4vYf03T?8IE @ 4 DF4Q4 < k=T?8I4IW
MACHINE
AM
SETS
C = c1, c2, c3 VARIABLES
D, c
INVARIANT
DA C c@ C
c = c1
...
END
l‹KW—ŠŽˆb036-;
< 28 P 5E 2 < 8Llcj8I254A8 P =k T?8I4 8IG 2KE P 8 G @H8IG 4
<<énumération>>>
C_Values
+c1
+c2
+c3
am
*
1
AM
1
c
1
E_C
+value: C_Values
*
l‹KW—‰ŽˆbDHL
8IG T < 4R0 >R< DF2•L58I4v8I254A8 P k=T?8I4 8IG 2KE P 8 G @H8IG 4X8 > Yf0 @Q< 0fk=TV8I4 >`_ 8UG 8I4X0ZY38I6x698IEH\Kn`6 <
‚/ 8 P 8C P 8 ^ E8 DFE @ T?8I48I254A8 P k=T?8I4h0fkr4 >A@ 0 <?> 4UBKE528s69DF2 >A@ 0 < 2 > 8 8 @-P 8 > Llcj89\ 5@Q<iP 8 @ 698 ^ E < 2lcm0 n
0 @ 0 C4V> 034v4RE @ TV87L < 07 @ 0 P:P 87L876UTV034R4A8I4IW
am
C
D
Q 8 ‰
context AM inv :
C includesAll(D)
and C includes(c)
and c value C Values c1
W
l‹KW ,?
• DF2 >A@ 0 < 2 > 8 @ I8 TV0 R> < Y380ƒ Tdc < 256UTVE=4 < DF2lBKTdcm0 0 @R> 8I2=03256988 > dT c 8$G F03T <?>K8 G
);)7;@) =6);
9:)< 5: =6);
" 571&' / <1%# 68!2&#0 *&%>(
|’8 5@ DHL5E <?> 6U0 @R>t8IG 4 < 8I2 L8SL8IEH\*8I2=4A8 P krT?8I4 X 8 > Y Bp2D >K8 G X Y B{8I4 > Tdcj8I2=4A8 P krT?8€L5DF2 > T?8I4
8IG T 8 G P 8I2 > 44ADF2 >> DFE54MT?8I469DFE T?8I4ƒqT?8I4 0 <V@ 8I4[D @ LDF252 8UG 8I4…JLDF2 > T?8 5@ 8 P:< 8 @u8IG T 8 G P 8I2 > 0 0 @R>R< 8I2 > 0 ƒ
8 T?8:L58IEH\ < 8ƒ P 8 8IG T 8 G P 8I2 > 0 ƒ Y WC|’8 5@ DHL5E <?> 6U0 @R>K8IG 4 < 8I2uL8 X Y 8I4 >x@ 8 5@H8IG 4A8I2 >t8 G 0 @ E528:6UTV034R4R8
X >
8 0 E5287034R4ADH6 0 DF2b8I2 8J698 8M6UTV034R4A8x8 TV0:6UTi034R4A8 8 8I4A8I2 032 TV0 036-; 283Wr|C8 DFTV8
E X Y >
L5EŽ6 D C >t8xG L8TV0[@ 6UTV034R4A8725D P:<Pu>R8UG < 8 X Y>A@ @ 8 5@H8IG>A4A> 8I2 > 87T?8 5@ DH> L5E <?> 6U0 @R>t8IG @4 < 8I=2l@KW5G /10325> 4pT†> cj89\K8 PP T?8‚<L581Ti0JwF@@E C @ 8
‹KW fB’Tdcj8I2=4A8 P krT?8 A 8I4 >7< 256UTVE541L5032=4T?8 5@ DHL5E <?> 6U0 @R>t8IG 4 < 8I2 X 0 @ Y W A 8I4 > LDF256E52a8I254R8 P k=TV8L58
69DFE TV8I4UW
MACHINE
AM
SETS
X; Y
VARIABLES
A
INVARIANT
A X Y
...
END
Žˆ„036Q; < 28 P E52 < 8L8 5@ DKL5E <?> 6U0 @Q>t8IG 4 < 8I2
s8 0 E8 |C8 DKL=E 6U0 8I4 8I2„2Ccj8I4 034pNOD 6 8 8I2 TV0M2D 0 DF2…TV0 VT E=4 E=4 8U878I2‚l FD E
L 8UG w=2 <V@ P L8I@Q4 ^ 8I2=4A8 P krT?8I=4h@ L8X69<?DF> E T?@Q8I>t4 G P < 0 < 4 8ITVTV8s> 2DFE54 8@ @QP G P 8 > Ll> cjD3k > 8I2 ><V@ >RL5< 03254TV0 >A@ 30 L5E=6 <?R> >t< DFG 2lBFT?8 >z_ 0738 @
™‹KW
Y
*
X
am am
1
E_X
e_X
1
1
AM
1 am
1
l‹KW I‘•ˆ…DHL
*
E_Y
e_Y
X_Y *
E_X_Y
<<rel>>A
am
*
8IG T < 4R0 >R< DF2•L5E 5@ HD L5E V< > 6U0 @R>K8IG 4 < 8I2
1
3‰ ‘
LlcmE5269DFE T?8 0 @ Ti0xL 8UG w=2 <V>R< DF2:L8‚TV0x6UTV034Q4A8 @ 8 =@K8IG 4A8I2 > 032 > T?8I4 8IG T 8 G P 8I2 > 4pL5E 5@ DHL5E <?> 6U0 @Q>t8IG 4 < 8I2lW/103254
Tdcj89\H8 P T?8ML8:Ti0wFE @ 8‹KW fB > DFE54xT?8I48I254A8 P k=T?8I4L58:69DFE T?8I40 _ 032 > 69D P:P 8 5@ 8 P< 8 @„8IG T 8 G P 8I2 > E52
8IG T 8 G P 8I2 > L58 X 8 > 69D PP 8L8IE\ < 8ƒ P 8 8IG T 8 G P 8I2 > E52 8IG T 8 G P 8I2 > L8 Y 4A8 @ DF2 > L 8UG w=2 < 4769D P:P 8L8I4 @@DFC TV8I4
@ 8IT < 032 > TV0 P 036Q; < 2580Mƒ TV0M6UTV034R4A8 E X Y W
5 * & !$#&%')(0*
2 l‚B5T?8I4 @ 8ITV0 >R< DF254p4ADF2
3 ‚
L8I4p8I254R8 k=TV8I4pL8769DFE T?8I4
0IY38I6 0 0 8I25032 0:ƒ Tdcj8I254R8 k=TV8
8X > yi 0 0 @R> 8I25032 > 0Žƒ Tdcj8I25> 4A8 P k=T?8 Y WlP ‡X258 @ 8ITV0 >R< DF2 R xi8IE >Eyi8C >A@ 8:L 8UG xiwr2 < 8ML503@R25> 41Tdc < 2t>Yf0 @Q< 032 > P0 @ TV0
2D > 0 >R< DF2 R : X Y ^ E < 4 < F2 < w58 ^ E8 R 0 0 @R>R< 8I2 > 0•ƒ Tdcj8I254A8 P k=T?8L8I4 @ 8ITi0 >R< DF254L8MTdcj8I254R8 P k=TV8 X
L5032541Tdcj8I2=4A8 krT?8 Wl/‚8IEH\a6U034 8IEY38I2 4A8 8I4R8I2 8 T?8 8 8 4 8 4ADF2 L8I418I254R8 k=TV8I4
4 <VP T?8I4UB=TV8[P L8IE\ < Y8ƒ P 84 < X 8 > DFE Y 8I4 > > E5258 @H@ G 8ITV0 >R>< DF@2CWr|C8I415L@ 8IP:E\b< 6U@ 034< 4AXDF2 >> < YTiTVE54 >A@H8I>G 4X4RE @ Tdcj89\K8 P P T?8
L87TV0w FE @ 8x‹KW IM8 > L87TV0wFE @ 8x‹KW 9˜BrT?8 5@ 8 P:< 8 @ 0 @ R1 8 > T?87L8IEH\ < 8ƒ P 8 0 @ R2 W
MACHINE
AM
SETS
X; Y
VARIABLES
R1, R2
INVARIANT
R1 @ X Y R2 @ R1 Y
...
END
™‹KW I•ˆb036-;
< 28xE >R< T < 4R032 > L8I4 @ 8ITV0 >R< DF254
s8 0 E8 |’02D 0 DF2a89\ 8U8[4RE TV0wFE 8[‹KW 9˜•2lcj8I4 0341TV0 TVE54X69DF256 4A8 DF4R4 k=TV83W
L503254}TV01P 4 {@Q8IG^ 6 < w=6U0 >R< DF2>l‚> BFE5>R2< >`_ 8{5L5@Q8 <iPu69DFG E T?8p@ 2lcj8I4 >}>A@ DF@ EY 8 G ^ ElcmE=28> NOD < 4~03T?D @ 4 Ti0 >A@ 03L5E5<6 >R< DF2 8I< E > 8C >A@ 8 <
@L58IE 25L=EDH8 L5E TVE54p6UT0 < 4 < k=8I4 TV8s8I8I2l2bW|’E 0J>R< Tw< F4R03E 2 >8169‹KD W P:JP 8I8x4 25E5D 2P 8‚03LE 87TV08 6UTV03034RL54AE58x6 TV87DF22D PL58‚LTV0J874 Ti0 8I@ 6 8ITVw=0 6U>R0 < DF2bDF203E…l T < L8I81E…TVL=0JE•w2FED P 8
‹KW I 5@ ^ E < 4R<?E > <?> 69@R8 >tG 5@Q< < 2=6 < 83We|C8L@ D P 0 < 28X8 > > TV8‚69DHLD>A@ P 0 >A< @ 258 DF>RE < @ T?8I4{8I254R8 P {k=G TV< 8I4 L5>R81< 69DFE T?8I4:ƒ 5@ DHL5E @ <?>
Y
*
X
E_X
am am
1
AM
X_Y *
am
1
<<rel>>R1
am
1
am
e_X
1
1 1
*
E_Y
e_Y
1
E_X_Y
*
1
am
1
<<rel>>R2
*
e_X_Y
E_E_X_Y_Y
*
X_Y_Y
l‹KW 9˜
•ˆ…DHL 8IG T < 4R0 >R< DF2…L8I4 @ 8ITi0 >R< DF254
1
e_Y
Q 8 Y
*
X
E_X
am am
1
*
E_Y
e_X
1
‰3
1
e_Y
1
e_Y
1
AM
1
E_R1
<<rel>>R1
am
*
1
am
1
*
e_X_Y
E_R2
<<rel>>R2
l‹KW Ž‡X28703E
>A@ 8 P DHL 8IG T < 4R0 >R< DF2•L8I4 @ 8ITV0 >R< DF254
Y
*
X
am am
E_X
e_X
1
1
*
E_Y
e_Y
1
1
AM
1
E_F
<<fun>>F
am
*
l‹KW I‹Ž/ < 07
@ 0 P:P 8xL5876UTV034R4A8I4XLlcmE528 P 036-; < 2870ZY38I6JE5258‚NODF256 >R< DF2 F L8 X L503254 Y
6U0 @R>K8IG 4 < 8I2CB @ 8ITV0 >R< DF2CBrNODF256 >R< DF2lB < 2 8I6 >R< DF2CBŒk < 8I6 >R< DF2„8 > 4QE @ A8I6 >R< DF2K…s4ADF2 > L 8UG wr2 < 414RE @ T?8L < 07 @ 0 P:P 8
L876UTV034Q4A8I4 0 @ L58I4s2D P 4pL58 @@ DFC T?8I4UW
|’8I4’D3kA8 > 4 < 254 > 03256 <o8IG 4 L8I4’6UTi034R4A8I4 E R1 8 > E R2 @ 8 5@H8IG 4R8I2 > 8I2 > 6-;5036UE52JE52x69DFE T?8hL8I4 @ 8ITV0 >R< DF254
l @ 8I4 8I6 >R< Y38I4 R1 8 > R2 W
5 * ')(06=#&%'9(:*
|’8I4MN DF2=6 DF254M4ADF2 L8I4 8ITV0 DF254 E 258Ž69DF2 8I25258I2 034ML58IEH\ 69DFE T?8I4ML 4 256 40 032 T?8
8P C P 8 5@ 8 P:< >R8 < @8IG T 8 G P 8I2 > > WH‡‚28X@ N DF25>R6< >R< DF2^ 4A8 < >A@ 03L5E <V> >R89< \H036 > 8 P > 8I2 > 69D P:P 81E528 @ 8ITV0 >R< < DF>R2r< ƒOw> FE @ 81_ ‹KW 9> ˜&…-W
w=2„L58J6U0 @ 036 >K8 G @Q< 4R8 @ T?8I41L < sG8 @ 8I2 > 4 >`_ 8I4‚L58JNODF256 >R< DF2/ƒ < 2A8I6 >R< DF2lBŒ4RE @ A8I6 >R< DF2lBrk < A8I6 >R< DF2K… 0 @R>R< 8ITVT?8
DFE > D > 03T?83B L58I4J4 >K8 G @H8UG D >z_ 8I4ƒ 0 @ 07 @ 0 ;8Ž‹KW—‘KW {…x4RDF2 > 0 DFE >t8IG 4M4QE @ T?8L < 07 @ 0 P:P 8L86UTV034R4A80 < 254 <
^ E8JL8I4X69?DF…2 >AL@ 870 < TV2 0M> 8I4 4G8I„76 pwr| 6U0 W DF< 2T?8 l k 03LT?D 8[4sTV0MTV0MwF69EDF2@ 8[‹K0 W I2 ‹ 8>@ 8 „75{@H8IG|h4A8IB 2 > 88I4AE58I22 878JNODFw25F6 E >R< 8xDF2 ‹KW > DD €t> Br038IT?814 ƒq40>tAD8 GF@HE 8UG D 8U>z83_ W 8
fun
| 069DF2 >A@ 0 < 2 > p8 „7{{G | < @ 8ITV>R0 < >R< Y38M03EH\…@ NODF256 >R< DF2=>A4 @ > D < > 03> TV8I4IƒOwŽ‹K5W @KDG€%…‚4 <>tFG 2 < w58 @ ^ E8 DFE @ >L58IEH\bD3>tkG A8 > 4
L < sG8 @ 8I2 > 4 L8 TV0s6UTi034R4A8 E F ƒq698 >A> 8p6UTV034R4R8 @ 8 5@H8IG 4R8I2 > 8pTV0sN DF256 >R< DF2 > D > 03T?8ˆ…-B3T?8I4 D3kA8 > 4 69D @Q@ 8I4 DF25L5032 > 4
11
context AM inv :
F forAll(c1, c2 : E F c1
and F size()= X size()
l‹KW D€•
1
c2 implies c1.e X
1
c2.e X)
DF2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\•N DF256 >R< DF254 > D > 03T?8I4
y‰ ˜
03E DFT?8 4ADF2 L 8 8I2 4{8 T?82D k 81LlcjD3kA8 > 4pL81TV06UTV034R4A8 E F 8I4 > T?8 P 8C P 8 ^ E8‚698ITiE < L8‚Ti0
6UTV034R@@4RC 8 Ee XXW > < sG @ > > P @
|’8I4hNODF256 DF254 0 8ITiT?8I4~4A8 0 8I2 L8sTV0 8 8 032 8ƒ 8 E8sTV8I4 NODF256 DF254 D 03T?8I4UBC07ƒ Tdcj89\698 n
D>R< F2…L58xTV0:69DF>R2< >A@ 0 < 2 > 8J@R>R4R< E @ T?8x2D >AP @ k <?@> 87Ll> c 8IG T 8 G P 8I2P > C41P L8xP Tdcj8I2=4A< 8 P@ kr^ T?8 F ^ E < LD <?>R> < 8C >A@ 8 > < 2> N 8 G @Q< 8IE @ DFE 8$G F03T
03E•2D P k @ 8Llc 8IG T 8 G P 8I2 > 4sL8Tdcj8I2=4A8 P krT?8‚L581L 8 G 0 @R> X Wg DFE @ E528‚N DF256 >R< DF2 F 0 @R>R< 8ITVT?83BHTV069DF2 >A@ 0 < 2 > 8
5T?8I@H4 8IG 6 28IG L8I8I6 2 > DF8 25ƒO4Uw BH•k ‹KA8IW D6 €%…‚DF4U25c 4{8IG 6 8 @Q<?> 4QE 69D A8P:I6 P 8DF25L54 0325D 4‚TV030T?8Iw4sF8 E @ 80 ‹KW IŠK8ITVW T?8I 4U8W >A> 8ML < sG8 @ 8I256980 0 @ 0 C4?> 03E54R4 < 8I2 >A@ 8
< >R< < >R< > @ >R< > > > @R>R<
context AM inv :
F forAll (c1, c2 : E F c1
and F size() X size()
1
c2 implies c1.e X
l‹KW IŠ•{DF2
( ;
c2.e X
>A@ 0 < 2 > 8 @ I8 TV0 R> < Y38703EH\ŽN DF2=6 >R< DF254 0 @Q>R< 8ITVT?8I4
1
6=#&%')(
h| cj89\ 5@ 8I4R4 < DF2ŽLlcmE5258‚NODF256 >R< DF2•LCc < 2A8I6 >R< DF2 > D > 03T?8 @ 8UY < 8I2 > 0Mƒ L5DF2528 @ T?8I4p69DF2 >A@ 0 < 2 > 8I4vLlcmE5281NODF256on
>R‹K< W DFI2 ‰KW > D > 03T?83B TVE54}E5258{69DF2 >A@ 0 < 2 > 8s4RE T 8 G P 8I2 > 0 <?@ 8 ^ E < 89\ =@Q<VP 8 @ 01Tdc < 2 8I6 >R< DF2[69D PP 8sL503254~Ti01wFE @ 8
context AM inv :
1
1
F forAll(c1,c2 : E F c1
c2 implies c1.e X
c2.e X)
1
and F forAll (c1, c2 : E F c1.e X
c2.e X implies
1
c2.e Y)
c1.e Y
and F size()= X size()
l‹KW I‰•
FD 2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\ < 2 8I6 >R< DF254 > D > 03T?8I4
| 069DF2 0 2 8C„7{| 8ITV0 Y38x03EH\ 2A8I6 DF254 D 03T?8I4ƒOw‹KW D€%…s4 F2 w=8 E8 DFE L8IEH\•D3kA8 4
L < sG8 @ 8I2 > 4L>A8‚@ TV< 0x> 6UTi034R4A8 E @ F ƒq>R69< 8 >A> 86UTV034R< 4A8 @ 8 >R5< @H8IG 4A8I2> > 8> Tdc < 2A8I6 >R< DF2 > D > 03<TV8ˆ…-BH< TV8I4 ^ D3kA8 > 469@D @Q@ 8I4 DF25L5032 > >
03E @@DFC TV8 e X 4ADF2 > L < sG8 @ 8I2 > 4UW’/103254x698:6U034xT?8I41D3kA8 > 4769D @R@ 8I4 DF25L5032 > 03E @@DFC T?8 e Y T?8M4ADF2 > 03E54R4 < W
|C8J2D P k @ 87LlcjD3kA8 > 4vL87TV0M6UTi034R4A8 E F 8I4 > T?8 P 8C P 8 ^ E87698ITiE < L87TV0M6UTV034Q4A8 E X W
g DFE @ E=28 < 2A8I6 >R< DF2 F 0 @R>R< 8ITVT?83BTV0M69DF2 >A@ 0 < 2 > 8J4Uc 8IG 6 @Q<?> 69D P:P 8xL5032=4vTV0w FE @ 8x‹KW—‘ ?HW
context AM inv :
1
1
F forAll(c1,c2 : E F c1
c2 impliesc1.e X
c2.e X)
1
and F forAll (c1, c2 : E F c1.e X
c2.e Ximplies
1
c1.e Y
c2.e Y)
and F size() X size()
l‹KW—‘ ?•{DF2
>A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\ < 2A8I6 >R< DF254 0 @Q>R< 8ITVT?8I4
Q 8 ‰%
<: ; 6=#&%'9(
g DFE E=28pN DF2=6 DF2:L8v4RE 8I6 DF2 D 03T?83BF8ITVTV8v4Ucj89\ 8pL8vTV0 8 8 032 8ƒ 8 ECcmE528 2 A8I6 DF2
D> > 03T?8•0Mƒ @ Tdcj89\H698 =>R< DF>R2…< L8xTi0M69DF@ 2 >A@ >R0 < < 2 > 8 > @ 8I> TV0 >R< Y380Mƒ TV0M4QE=@@QA8<VIP 6 >R< DF2FƒOwP ‹KC P W—‘ D…-P W < @ ^ < R> <
context AM inv :
1
F forAll(c1,c2 : E F c1
c2 implies c1.e X
and F collect (c : E F c.e Y) includesAll(Y)
andF size()= X size()
l‹KW—‘
1
c2.e X)
•{DF2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\•4RE @ A8I6 >R< DF254 > D > 03T?8I4
| 069DF2 >A@ 0 < 2 > 8C„7{| @ 8ITV0 >R< Y38x03EH\ < 2A8I6 >R< DF254 > D > 03T?8I4ƒOw‹KW—‘ D…s4 < F2 < w=8 ^ E8 DFE @ L8IEH\•D3kA8 > 4
L < sG8 @ 8I2 > 4XL8JTV0:6UTV034R4R8 E F ƒq698 >A> 8M6UTV034R4R8 @ 8 5@H8IG 4A8I2 > 8TV0:4RE @ 8I6 >R< DF2 > D > 03T?8ˆ…-BŒTV8I4vD3kA8 > 4s69D @R@ 8I4 DF2Hn
L5032 03E DFT?8 4ADF2 L 8 8I2 4UW={;50 E81D3k A8 L8TV0J6UTi034R4A8 69D 8I4 DF2=La0Mƒ E5258XDH6U6UE 8I2=698
L5E @@> DFC TV8 e@@C Y eLlcmE5X2aD3k > 8 > < L5sG8:@ TV0•> 6UTV034R4A8 E^ F WC|C8> 25D P k @ 8:LlcjD3k A8E> 47YL8TV@R0•@ 6UTi034R4A8 E F 8I4 > T?8 @RP @ 8C P 8
^ E87g 69DF8IETVE < E=L28J87TV0M4RE 6UTVA803I4R6 4A8 DFE2 X W 0 8ITVT?83BTV0M69DF2 0 2 8J4Uc 8I6 69D 8xL=03254vTV0w FE 8x‹KW—‘3‘KW
>A@ < > G @Q<V> P:P
@
@
@ >R< F @Q>R<
context AM inv :
1
c2 implies c1.e X
F forAll(c1,c2 : E F c1
and F collect (c : E F c.e Y) includesAll(Y)
and F size() X size()
l‹KW—‘3‘•
1
c2.e X)
DF2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38x03E\Ž4RE @ 8I6 >R< DF254 0 @R>R< 8ITVT?8I4
% ; 6=#&%')(
‡‚28pNODF256 DF2:L8{k 8I6 DF2 D 03TV8sL 8I4 F28p8I2 8 8 8 h4 E528{N DF2=6 DF2:Llc 2 8I6 DF2[8 L58v4RE n
A8I6 >R< DF2 > D > 03TV83>RW< HDF2:89\ 5< @ 8I4R>R4 < < DF2:> 8I2> „7{|„G 8I< 4 > LDF2=2 P 8UG 8XC P 8I269> D PP k < 52 032 > T?8I469>RDF< 2 >A@ 0 < 2 < > 8I4{Ll>R<cmE5258v> N DF2=6 >R< DF@ 2
Llc < 2 8I6 >R< DF2Ž8 > L874RE @ A8I6 >R< DF2 > D > 03TV83ƒOw‹KW—‘3:DFEb‹KW—‘y˜&…-W
context AM inv :
1
1
F forAll(c1,c2 : E F c1
c2 implies c1.e X
c2.e X)
1
and F forAll (c1, c2 : E F c1.e X
c2.e X implies
1
c1.e Y
c2.e Y)
and F collect (c : E F c.e Y) includesAll(Y)
and F size()= X size()
l‹KW—‘3•
FD 2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\k < 8I6 >R< DF254 > D > 03T?8I4
g FD E @ E=28k < A8I6 >R< DF2 F 0 @R>R< 8ITVT?83BTV0M69DF2 >A@ 0 < 2 > 8J4Uc 8IG 6 @Q<?> 69D P:P 8xL5032=4vTV0wFE @ 8x‹KW—‘%KW
" #!
2L, =%, ; 0324,65 7 9:); 2+') * +') 5>2 )O;
h| cj89\ >A@ 036 >R< DF2JL8 5@ DHL5E <?> 4l6U0 @Q>t8IG 4 < 8I254UB @ 8ITV0 >R< DF2=4UBINODF256 >R< DF254UB < 2A8I6 >R< DF254UBIk < 8I6 >R< DF254l8 > 4QE @ A8I6 >R< DF254
0 @R>R< 8ITVT?8I4lDFE > D > 03T?8I4 4Icj89\ 5@-<VP 8hL8TV0 P 8C P 8 NO069 DF2J4RE @ T?8hL < 07 @ 0 P:P 8hL86UTV034R4A8I4UWy/[cmE52 D < 2 > L8 YHE8
‰3‹
context AM inv :
1
1
F forAll(c1,c2 : E F c1
c2 implies c1.e X
c2.e X
1
c2.e Y)
and c1.e Y
and F size()= X size() and F size()= Y size()
l‹KW—‘y˜
E >A@ 8 8IG 6 @Q<?> E @ 8 DF4Q4 < k=T?8‚L8xTV0M69DF2 >A@ 0 < 2 > 8 @ 8ITi0 >R< Y38x03EH\Žk < A8I6 >R< DF254 > D > 03T?8I4
context AM inv :
1
1
F forAll(c1,c2 : E F c1
c2 implies c1.e X
c2.e X)
1
and F forAll (c1, c2 : E F c1.e X
c2.e X implies
1
c2.e Y)
c1.e Y
and F collect (c : E F c.e Y) includesAll(Y)
and F size() X size()
l‹KW—‘%•{DF2
A> @ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\Žk < A8I6 >R< DF254 0 @Q>R< 8ITVT?8I4
 @ 0 ; <V^ E58 DF228 8IE > 034 Y3D <?@ TV0L < sG8 @ 8I2=698v8I2 >A@ 8 > DFE > 8I4698I4h8I2 >R<?>t8IG 4UW w=2:L58 P:< 8IEH\6U0 @ 036 >t8 G @Q< 4A8 @
T?8I4LDF252 8UG 8I489\ >A@ 0 <?> 8I4ML58ŽTi0„4 {8IG 6 < w=6U0 >R< DF2 8 > L8 P:< 8IEH\ 8 G > 0fk=T <?@ T?8T < 8I2u0ZY38I6…698I4ML8 @ 2 < 8ƒ @ 8I42DFE54
E >R< T < 4ADF254L8I4Ž4 >t8 G @K8UG D >`_ 8I4 ^ E < 4R8 @ DF2 > Y < 4 < krT?8I4:4RE @ T?8aL < 07 @ 0 P:P 8aL8€6UTi034R4A8I4 8 @QP 8 >A> 032 > 0 < 254 <
Llc < L58I2 >R< w=8 @ Y < 4RE8ITVTV8 P 8I2 > T?8I4XL < sG8 @ 8I2 > 4 >`_ 8I4‚LCcj8I254A8 P k=T?8I4‚L8[69DFE T?8I4UWŒ|’0T < 4 > 8J8I4 > L 8UG wr2 < 8L503254
T?8 > 0fk=TV8I03Eb‹KW fW
~sD P
v8 =@K8IG 4A8I2 > 0 >R< DF2…8I2 l >t8 G @K8UG D >`_ 8
s8ITV0 DF2
rel
Dk F256 >R< DF2 >R< > D > 03T?8
fun
k DF256 >R< DF2 0 @R>R< 8ITVT?8
pfun
 2 A8I6 >R< DF2 > D > 03T?8
inj
 2A8I6 >R< DF2 0 @R>R< 8ITVT?8
pinj
HE @ A8I6 >R< DF2 > D > 03T?8
surj
HE @ 8I6 >R< DF2 0 @R>R< 8ITVTV8
psurj
l < 8I6 >R< DF2 > D > 03T?8
bij
l < A8I6 >R< DF2 0 @R>R< 8ITVT?8
pbij
8>tG @H8UG D >z_ 8I41Llcm0 < L580:ƒ TV0MT?8I6 > E @ 87L8I4vL < 70  @ 0 P:P 8I4vL876UTi034R4A8I4
™‹KW
191
191
11
191
191
191
191
191
191
$
6 <
E289)Q9:)<
'(2
! <
'(2
01; 7;?< *-, :24,65 7 9 ?') 289,%0>7824; 0 7 9, =5 )
|hcjD3k 8I6 NCL8X698 89\K8 T?8s4 T w 8p8I4 TV0:38I4 DF2ŽL8sTdc 2=4R6 DF2[LCc 8 E=L 032 40Jƒ E52L T D 83W
| c < 254R6 @Q< =>R< DF>R2 < 28S4RE > > P 034Ž8 >…<iP< T‚NO03< E >•G ^ E> 8ST?8I4 8 G >R> < E5L < 032 > 4•< 4Uc < 2=@Q4R< 65@Q>R< < Y38I2 > 03G >E=4R4 < < 03EH> \*89\0 P 8I< 254IC WvP |’0
4 {8IG 6 < wr6U0 >R< DF2l L8xT†cj89\K8 P T?818I4 > LDF252 8UG 8xwFE @ 8x‹KW—‘3‹KW
‰{€
8
MACHINE
GestionDesInscriptions
SETS
ETUDIANTS ; DIPLOMES
VARIABLES
Inscrits, InscritsAuxExamens
INVARIANT
Inscrits @ ETUDIANTS DIPLOMES InscritsAuxExamens Inscrits
INITIALISATION
Inscrits := B InscritsAuxExamens := B
OPERATIONS
inscrire(etudiant, diplome) PRE
etudiant @ ETUDIANTS diplome @ DIPLOMES etudiant @ dom(Inscrits)
THEN
Inscrits := Inscrits etudiant diplome END ;
....
END
l‹KW—‘3‹ 3
"
5 9 ') =%, ;@0O24,%587
\H8 P T?87L87Ti0C38I4 >R< DF2…L8I4 < 52 4R6 -@ < 5>R< DF254
< 5 *4*-);" 5879017 2L)
|’8I4{8I254A8 k=T?8I:4 ƒq6UTV03E54A8 … ETUDIANTS 8 > DIPLOMES 8 @QP 8 >A> 8I2 > L8 @ 8 5@H8IG 4R8I2 > 8 @v> DFE=4
?T 8I4 8 G > E5L < 032 > P4[8 >> DFE54MT?8I4[L SETS
T D C P 8I4 D > 8I2 >R< 8ITV4UW}|C8I4[Yy0 @-< 0fk=T?8I41ƒq6UTV03E54A8 VARIABLES… Inscrits 8 >
<
4ADF2 8U8I41L5032=4sTdc 2tYf0 032 ƒq6UTV03E54A8
…-W
8I4 E5287NODF256on
InscritsAuxExamens
D>R< F2 0 @R>R< 8ITVTV8:8I2 >A@ 8Tdcj8I254R>s8 >zP _ {k=TVG 8L8I4 8 G > E=L < < 032 > @Q4x< 8 > > 698ITVE < L58I4xINVARIANT
L < T D C P 8I4 6fcj8IInscrire
4 > L5DF256E52> 8I254A8 P k=T?8
L8…69DFE T?8I4DlE ƒ T?8 5@ 8 P:< 8 @u8IG T 8 G P 8I2 > LlcmE52+69DFE T?8Ž8I4 > E52 8 G > E=L < 032 > 8 > T?8•L8IEH\ < 8ƒ P 8bE52+L < T D C P 83W
8I4 E=2•4ADFE54p8I254R8 P k=TV87L8 Inscrits W
InscritsAuxExamens >
 2 03TV8 8I2 > 03E56UE52 8 G > E=L < 032 > 2lcj8I4 >< 2=4R6 @Q<?> Wh|hc < 2tYy0 @Q< 032 > 8I4 > L8UY38I2KEY @ 0 < 0 5@ 8Iƒ 4ŽTdc < 2 <?>R< 03T < 4Q0yn
D>R< F2 ƒq<?6U>RTV< 03E54AP 8 INITIALISATION
…-Wp/103254STV0*6UTV03E54A8 OPERATIONS DF2 >A@ DFEY38 Tdcj8I254R8 P k=TV8uL8I4
D {8 G @ 0 >R< DF2=4UW|’0 4R8IE5T?8]D {8 G @ 0 >R< DF2 L 8IG 6 @Q<?> 8 < 6 < 8I4 > Inscrire
E < 69D @R@ 8I4 DF25L 0 ƒ Tdc < 254R6 @Q< =>R< DF2LlcmE52
^
8 G > E5L < 032 > 8I2 YKE8•LlcjD3k > 8I2 <?@ E52uL < T D C P 83W~ 8 >A> 8ŽD 8 G @ 0 >R< DF2+8I4 > 4RDFE P:< 4A8S0aƒ E528 5@K8IG 69DF25L <?>R< DF2 ^ E <
LD <?> 8C >A@ 8SY 8 G @Q< w 8UG 83W‚ 8 >A> 8 =@K8IG 69DF25L <?>R< DF2 8 @QP 8 > Llcm0 >A>A@Q< k=E8 @ E52 >`_ 8S03EH\ 0 @ 0 P 8ƒ >A@ 8I4 E < 4L8
Y 8 G @-< w58 @^ E8…Tdc 8 G > E5L < 032 > L58 P 0325L5032 > 0 ƒ < 254Q6 @Q<?@ 8•2lcj8I4 > 034:L 8 G 0 ƒ < 254R6 @-<?> W~|C8b69D @ 4:L8bTdcjD {8 G @ 0 >R< DF2
8 @QP 8 > Llcm0 ADFE > 8 @ T?869DFE T?8 etudiant diplome 0Mƒ Tdcj8I2=4A8 P krT?8 InscritsW
HE T?87L 07 0 87L87TV0wFE 8x‹KW—‘{€ME5258 0 @R>R< 8L8I4 @ 8$ƒ FT?8I4s03LD =>t8UG 8I4‚0 0 @ 0 C4?>
| @ 0 P 03< 6-; @< 28P8IP 4 > E5286UTV034R4A83@ W
‡‚2J8I254A8 P k=T?8h0fk=4 >A@ 0 <?> 69D PP 8 ETUDIANTS 8I4 >’@ 8 5@K8IG 4A8I2 >t8 G 0 @ E5286UTV034R4A8 E ETUDIANTS
69D 8I4 DF25L5032 03E 8vLlc 8IT 8 8I2 4L8vT†cj8I254A8 k=T?8{8 0 E5258{034Q4ADK6 0 DF2M8I2 8s698 8X6UTi034R4A8
8 > @QTV@ 0…6UTi034R4A8 @ 8 > 5@H8IG 4A>`8I_ 2 > 032 > G TV0 G P P 036Q> ; < 283W |hcj89\ >AP @H8 G P:<V>t8…G> L58@ Tdcm034R4ADH6 < 0 >R< DF< 2 >R< L5Eu6 D C >A>t@8•G L8>ATV> 0b6UTi034R4A8
69D @Q@ 8I4 DF25L5032 > 03E >z_ 8bLlc 8IG T 8 G P 8I2 > 4 DF4Q498Iƒ L8„E52+25D P ƒ @@ DFC T?ˆ8 … ^ E < 8I4 > 698ITVE < L8„Tdcj8I254A8 P k=T?8
‰3Š
GestionDesInscriptions
+Inscrire(etudiant:E_ETUDIANT,diplome:E_DIPLOME)
1
1
<<pfun>>Inscrits
1
1
<<pfun>>InscritAuxExamens
*
*
E_ETUDIANT_DIPLOME
e_DIPLOME
1
*
DIPLOME
K‹KW—‘{€
e_ETUDIANT
*
1
E_DIPLOME
E_ETUDIANT
ETUDIANT
x/ < 07 @ 0 P:P 8pL8p6UTV034R4R8I4~69D @R@ 8I4 DF25L5032 > 0ƒ TV0 P 036Q; < 258{0fkr4 >A@ 0 <?> 8 GestionDesInscriptions
context GestionDesInscriptions inv :
Inscrits includesAll(InscritsAuxExamens)
l‹KW—‘3Š•
DF2 >A@ 0 < 2 > 87Llc < 2=6UTVE54 < DF28I254R8 P k=T < 4 > 8L8
InscritsAuxExamens
L503254 Inscrits
ƒ6
…-W3|’8I4 Yf0 0fk=T?8I4~L58 8v8I254A8 k=T?8vL8UY 8I25258I2 L8I4034R4ADH6 0 DF254h0IY38I6‚T?8IE @
52 < D P< ETUDIANTS
69D P:P 8x25D P L8 @@DFC T?87@QL=< E…6 D C >t8[G 69D >`@R_ @ 8I4 DF25L503P 2 > 03E >`_ < 87Llc 8IG T > 8 G P 8I2 > 4IW < >R<
| 0NODF256 >R< DF2 0 @Q>R< 8ITVT?8 Inscrits 8I4 > >A@ 03L5E <V> 8 0 @ E5258v6UTV034R4A8 E ETUDIANT DIPLOME @ 8IT <o8UG 8
L=EJ6 D 8vL8{TV0s6UTi034R4A8 8 8I4A8I2 > 032 > Ti0 P 036-; < 283W
0 E5258034R4ADH6 0 DF2LDF2 T?8 DFTV88I4
{8 @ >A> 8Ž6UTi034R4A88I< 4 >]>R< 8$G F03T?8 P > 8I2 >@@@ C 8IT <o8UG 8 > Enrolled
0 @ E52807 @K8$G FC 0 >K>RG< DF2 0€ƒ TV0b6UTV034Q4A@ 8 5E@HG ETUDIANT
8> 0@
E=28703E 80:ƒ Ti0M6UTV034R4A8
W
|’8 5@ DK69>A@8I4R4QE54p8I4 > T?8 P E8C P DIPLOME
8 DFE @ TV0:N DF256 >R< DF2 0 @R>R< 8ITVT?8 InscritsAuxExamens W™g DFE @‚< 25L <i^ E8 @
8I4 > E=2„4ADFE=4X8I2=4A8 P krT?8[L58 Inscrits BlDF2aE >R< T < 4A8xTV069DF2 >A@ 0 < 2 > 38 „7{|
^L5E878 TV0InscritsAuxExamens
w FE @ 8x‹KW—‘3ŠKW
3 2•NO0 <V> 698I6 < 2874RE > 034 DFE @ L 8IG 6 @Q<V@ 87E528NODF256 >R< DF2 0 @R>R< 8ITVT?869D P:P 8 Inscrits
‡‚28 N DF2=6 >R< DF2[8I4 > E=2x8I254R8 P k=TV8 L8 69DFE T?8I4 ^ E < 258 69DF2 >R< 8I2 > 034 L58IEH\x69DFE T?8I4}L < 4 >R< 256 > 4 0 _ 032 >
TV8 8 8 8 8 8IT 8 8I2 W
‡‚2P 8SC NOP DF256 5>R<@ DF2P:< 8I4 @> G G 0 P @R>R< 8ITi> T?8ST?D @ 4 ^ E8 > DFE54bTV8I4 8IG T 8 G P 8I2 > 4€L8 Tdcj8I2=4A8 P krT?8SL8]L 8 G 0 @R> ƒ ETU…2874ADF2 034vE T 4 8I4 DFE Nq0 87L8I4v69DFE T?8I4UW
03E > LDF256 @ 0 DFE > 8 > @ TV069DF2 >R>A< @ < 0 < G 2 > :8 „x{@ |„<?‹K@ W—‘3‰ ^ E < 8 @-P 8 > L8 @ 8I4 >A@ 8 < 25L @ 8{T†cm034R4ADH6 < 0 >R< DF2:03E6U034
 TNqDIANTS
L8I4pNODF256 >R< DF2=4 0 @R>R< 8ITiT?8I4UW
context GestionDesIncriptions inv :
Inscrits forAll(c1, c2 : E ETUDIANT DIPLOME c1
1
c2.e ETUDIANT)
implies c1.e ETUDIANT
and Inscrits size() ETUDIANT size()
l‹KW—‘3‰•{DF2
1
c2
>A@ 0 < 2 > 8 @ I8 Ti0 R> < Y380:ƒ TV0NODF256 >R< DF2 0 @R>R< 8ITVTV8
Inscrits
+
‰3‰
/, @ *='!2 <+ %')@ "$<
"$!
!2"5
|’8I4 8ITV0 DF2=4€L58+Y 4 k T 8]8 Llc 254 03256 0 DF2 8I2 8 036Q; 28I4 8IEY38I2 >8C >A@ 8 P DF2 >A@H8UG 8I40 ƒ
Tdc < 2 >t8 G @Q< 8IE @ @ L=E•>R< L < 07 @ 0 P:P < 87< L< 8x<V>t6UG TV034R> 4R8I4UW < > < >R< >A@ P <
|’8I4JY < 4 < k < T <?>K8IG 418I2 >A@ 8•‡‚ˆ„|8 > l 4ADF2 > L < sG8 @ 8I2 > 8I4UW 3 2[l < Th89\ < 4 > 8E=28Y < 4 < k < T <?>K8MG L <?> 8 NI F
G J NI F DFE TV8I4JYf0 0fkrT?8I4[8 D 8 0 DF254ƒqT?8I4Yf0 0fkrT?8I4284RDF2 034 DKL w=0fk=T?8I4JLDF256
T?8I4D {8 G @ 0 >R< DF254x258 P @ DKL < w58I2 > @Q< 0347T?8I4> Yf0 @Q{< 0fG kr@ T?8I>R4< L8 P 036-; < 2@Q8:< 69Nv‘KW—KW—Š{… ^ E <> 2Ccj89\ < P4 > 8 < 0348I2 ‡1ˆb|hW
/[cm03E >A@ 8 0 @R> TV0Y < 4 < k < T <V>t8G 8I2fl 8I4 > 8 @QP< 4A8 0 @ TdcmE >R< T < 4R0 >R< DF2…L8 P 8IG 6U032 < 4 P 8ML8[69D P DF4 <?>R< DF2€03E
69DF2 >A@ 0 <?@ 8ŽLlcm‡1ˆb| DCE ƒ TV0bY < 4 < k < T <V>t8MG 8I4 > L 8UG w=2 < 8S0€ƒ TV0„L 8IG 6UTV0 @ 0 >R< DF2 L8ŽTdcm0 >A>A@Q< krE > 8 >]8UG Y38I2 > E58ITVT?8 P 8I2 >
0 @ Tdcm0 0 @Q> 8I250325698sDFEŽ2DF203E 03(6 ‰f70 383Wg DFE @ > DFE > 8I4 698I4 @ 0 < 4ADF254 < T=2lcj8I4 > 034 DF4R4 < k=TV8vL8 @H8IG 03T < 4A8 @
E528 >A@ 03L=E56 >R< DF2S69D P Td8ƒ > 88 > 89\H036 > 8L8MTV0ŽY < 4 < k < T <?>t8JG L 8UG w=2 < 8ML503254T?8I44 {8IG 6 < w=6U0 >R< DF254U0W ~ 8IG 032 P D < 254
TV0 5@ 8IEY38 8 @QP 8 > L8k=TVD ^ E8 @ T?8I4v036U6f8Iƒ 4‚2DF2…03E > D @-< 4 8IG 4s03EH\•Yf0 @Q< 0fk=TV8I4UW
$
, ;?,, =%,62') 0 2?*-0.8)+*-;
=6); <=%0 ;@);
SEES
)+2
IMPORTS
|’8I46UTV03E=4A8I4 SEES 8 > IMPORTS 8 @QP 8 >A> 8I2 > L8XY3D <?@ Yy0 @Q< 0fk=T?8I4 8 > D {8 G @ 0 >R< DF2=4UW|’0x6UTi03E54A8 SEES
8 @QP 8 > E528‚Y < 4 < k < T <?>t8 G NI F G J IPFv03T?D @ 4 ^ E8TV0J6UTi03E54A8 IMPORTS 8 @QP 8 > TV0 P DHL < w=6U0yn
>Rg}< 0DF2 69DF0 25@ 4 8T?8I4pED8I2{8 G @ 4R0 03>R6Q< DF;=25034C2 ƒOD E8 G 8M@ 0 TV>R0 < DF254 8IE5^ Y3E 8[<CkrP T?DDHL E< w588I2T?8I> 4TV0M036UYf6y038Iƒ T?4J8IE 25@ DF2€L8I034sE Yy0D @-< 0f4 8Ik=4UT?BC8I4DF…2 8 > 8IE 0 @ T?8I4v07Yy 0 2@Q8< 0fk=E5T?8I24U8 W
Y < 4 @ < k < T <?>t8 G G < ^ L8I2 >R><V^ E8 DFE >x@ ^ T?8I40 >A>A@Q5< @ krE > 4L8I4 ^ P 036Q; < 28I46 <?>t8UG 8I4:L503254> T?@Q8I< 4G L8IE\u6UTV03E5>4A8I<V4P E525<8NOD@ < 4TV0
P TV03E=6-4 ; < 28I4 8 >A@ 6 03L5Y3E 8 <?> 8xE8I8•2„696U8ITVTV03T?4Q8•4A8JL8 ‡1l(ˆb|h4R03Wl6Q{;=8 03>A2 > 8JY E< 4 8•< k TV< 0 T <?>K8G 4A8I8 E5@ Y308ŽL 0a8UG w=kr2 T?D< 8JE69D 8•P:T?8IP 48 03H6U6y8Iƒ N4 I 2 8 DFE L @ 254U8W  T{03894 \ 8C >A4 @ 88
@ 8 8 ^ REG 54 8ŽL8ŽY3D < > T?8I4[@ 8I<V2> 8I4L8< >Ti0
E528ŽL @ < sG8>A@Q@ <8I25>R69< 8Ž8I2^ >A@ 8•T?8I4L8IEH\u6UTV03E=4A8I4UB}>TV0a^ 6UTV03E54A8 5SEES
8 @QP 8 > LCc < 254 @Q> P 0325>6 < 8 @ TV> 0 P 036-; < 2<?@ 8 <VP D @Q>R>t<V>t8UG 83G W  T 8I4 >
PLDF03256-6; < 2 28I8M698I6 4R<?>K4Q8U0 G 8803T?LD @8 4 ^ 03E258M4RTV6 0Ž6U8[TV03TdE=c 4A258 4 IMPORTS
03256 0 DF2 0 E528M034R4ADH6 0 DF2l0W „2 DFE 0 03E54R4 L 8I6UTV0 8
E528‚Yf0 @QG < 0fk=T?81<?L5@ E >`_ >A81@ L581Ti0J@Q<?6U@ TV034Q4A< 8E > >R< T < 4 8U<G 8 >RP < 0 < 4{4 _H@ P kŒDFT <V^ E58 P < 8I2>R<> DF2Ž281Y3D <?> @R@ 034p<?> T?81T < 8I2l< WK/1G 03254p@ T?8@
k=E > L8 P:< 8IEH\…LDK6UE P 8I2 > 8 @ T?8J4 _ 4 > 8ƒ P 8 < Tl8I4 > 5@H8UG N 8 G @ 0fk=T?8[LlcmE >R< T < 4A8 @ E528[70  @K$8 G F0 >R< DF2 DFE @ 4 < F2 < w58 @
6UTV0 <?@ 8 P 8I2 > T†cj89\ < 4 > 8I25698xL5E•T < 8I2Ž8 > L87Tdc < 2=4 > 03256983W
"
=60 ;@)
EXTENDS INCLUDES
)2
PROMOTES
|’8I40 k=E 4X8 8 ;DHL8I4L8I416UTV034R4R8I44ADF2 8I2€Y 4 k T 8H NI UB™Y 4 k T 8 D 254 8I4 6 Y38
E^ 8„L5032=4>A>AT?@Q8I< 44 {> 8IG 6 < >7w=6UP 0 >RG <> DF2541lXW DFE > 8UN D < 4T?8 5> @ D3k=Td8ƒ P < 8 < 5< @ <?>tD YG < 8I2 > L8I4< D < 8 G < @ 0 <?>t>R<G DFP 254Ž< 2DF2 @ 5>A@ @-D < P >RE< 8I4
^0 ƒ E TV< 0 4ADF6U2TV03> E5Y 4R8< 4 < k=T?8IŠ4 ƒOY < 4 < k < T <?>KW{8G {H 8 NI 8€…-6UWTV033 E=2„4A8 8 8 8 >1< T’8 2Ccj890uƒ \ < Ti4 0 > 8 03036Q4‚; 8I22€8 ‡‚ˆ„E | 25L6U8 TVE P 8IG E=6U03228„< 4 03P E 8 8 8 G ^ E < 03Yy6-03; T?8I22 8>
L8 5@ D P DFEY3PROMOTES
D <?@ L8I4D {8 G @ 0 >R< DF2=>A4:> L8…TV0 P 036Q; @Q< 2P 8 > < 256UTVE=4A83PW 3 2+< ‡‚ˆ„|^ 4A<XD < <V> 03E=> 6UE528ŽD 8 G >A@ @ 0 >R< PDF2*2lcj<8I4 >
Y < 4 < k=TV814RD <?> 8ITVT?8I4sT?8x4ADF2 >s> DFE > 8I4IWr|C8 5@ D3k=Td8ƒ P 8x4A8x6 <?@ 69DF254R6 @Q<?> 0:ƒ TV0MY < 4 < k < T <?>K8G 6U0 @ TV0 5@ 8IEY387krT?D ^ E8
T?8I4036U6y8Iƒ 4 < TVT $8 G F03EH\™W| 0 @ 8 5@K8IG 4A8I2 > 0 >R< DF2 L8„TV0u6UTV03E54A8 INCLUDES 4A8 @ 0 @K8IG 03T < 4 8UG 8 0 @ E52 T < 8I2 L8
>`Y _ 4 8„k T034R4R8DKH 6 < 0 >RI < DF2 DF4RE036-;5032 0 >2 ^ 8IE52 8„T?8ITV4:00Y >A4>A@-k < k=T E > 8‚4L 8 8U> w=D2 {818 G @ 8I0 2‚>R< l‚DF2=W=4g DFLE 8„TV0TV0MP 6UTV03036-E=; 4A<8 28 < 256UTVE54A8…03BHE TV@ 87DF26U03> 4pE58I24 8
L << sG< 8 @ < 8I<?2 >t> G 6U0 @ 8ITVT?8 8 @p@QP P 8 > < Tdcm> E >R< <VT @< 4R0 >R< DF2€< < L8I< 4 <?>tP G 8 G > G ;DHL< 8I47L8MTV0 P 03@6-; < 28 8 G > 8I25L=EXTENDS
E8 >A@ 03L5E <V> 8J8I2 ‡1ˆ„| >
L503254hTV0 P 036Q; < 28 ^ E < Tdc 8 G > 8I25LlW  T8I4 > LDF256p2 8IG 698I4R4R0 <V@ 8XLlcmE >R< T < 4A8 @ E52L8  8IG 2 8 G @ 03T < 4R0 >R< DF2 DFE @ P 0 < 2 > 8I2 <?@
T?8 P DHLl8Iƒ T?8b‡1ˆ„| RE54 > F8 ƒ DF4R4 < k < T <?>K8•G LlcmE >R< T < 4R0 >R< DF2 L8I4 Pu8 G > ;DKL58I4L8bTi0S6UTV034R4A‚8  8IG 2 8 G @ 03TV8€L5032=4MT?8I4
6UTV034R4R8I4w=TiT?8I4 …-W /[cm03E >A@ 8 0 @R> T†cmE >R< T < 4Q0 >R< DF2 L8„TV0]6UTV03E54A8 PROMOTES D3k=T < 38…T†cmE >R< T < 4Q0 >R< DF2+LlcmE528
 8IG 2 8 G @ 03T < 4Q0 >R< DF2„L=03254pTV0 >A@ 03L5E=6 >R< DF2…LlcmE525816UTi03E54A8 INCLUDES DFE @ TV8I4 P 8 C P 8I4 @ 0 < 4ADF254IW
,?=?
#! $
"$<
@7
*:.*=!#B"5&* 15/@A% *
./ ." "; !!2"5 7%'
.*:%
@ !#"$
2?*-5 9<24,65 7
|’8I4~D3kA8I6 NO4 E8v25DFE54~2DFE54 8 DF254hw\ 8I4 8 0 8I2 L8 8 8 8vTV01Y 4RE=03T 4R0 DF2•0 ƒ 0 LlcmE528
0P 36-; < 28[0fk=4 >A>R@ < 0 <?> ^ 8Cl L8[Nq069 DF2€03EG >R> < D P 0 >R< 4 8UGG 8G8 > > <4 _ 4 > >K8 G P 0 >R<i^@QP E8M>AL>A8I@ 4XYHE8I4B<  @ 0 < ; >R<V^< E8I4s‡1ˆ„@R>R| <V@ WC 8 >A> 8
03E > D P 0 >R< 4R0 >R< DF2 8 @QP 8 > 03ES4 8IG 6 < w58IE @ l DlE+ƒ 0Žƒ TV0 8 @ 4ADF25258J6Q;=0 @  8UG 8Llc 8UG Yy03TiE8 @ TV04 8IG 6 < w=6U0 >R< DF2<l
0 ƒ 0 @Q>R<?@ L5E P DKLl8Iƒ T?8J‡‚ˆ„|uL58728 034 8 @ L @ 8L8 > 8 P 4vL503254XTV0 @ 8I6Q;58 @ 6Q;8[L8xTV0k™DF25258Y < 4QE503T < 4R0yn
>R03< L5DF0 2lW5 8U8…8 >AL5> 8E 03E D > D 2 P 0 L>R8< 4R0 YH>RE< DF8Ž2 L88ITiE 0b> T 034 E=4Rk 4 <T 698DF25DFL5E E <?2@ 880[ƒ69DF69258 L5^ E E4R818 698 >A03> 4[803Y EH< 4R\ E503T < DH4QLl0 >R8Iƒ < T?DF8I2:4[‡‚281ˆ„4A|D <?> T?8I4 034{TVTVE50 4J25TVE50y4n
E> @ 8I5Ti4U>KWŒG  8 >A> 8 @ 8I< 4 >A> @Q< 6 >R< DF2…8I4 > 8IE <V< P < <D @R<V>t> 03G 2 > 8 E < 4 ^ Elc < T™<89\ < 4 > 8 TVE54 < 8IPE @ 4 P DKLl8Iƒ TV8I4 DF4R4 < k=T?8I4 DFE @
89\ 5@Q<VP 8 @ E=2+4 _ 4 > 8ƒ P 8 @H8 G DF25L5032 > 03E P 8C P 8€6U03; < 8 @ L8I46Q;50 @ 38I44R03254 ^ E8…TdcjDF2 E < 4R4R80 @-P 8 @
0IY38I61698 @R>R<V> E5L8 ^ E81TdcmE528XL8X698I4{4ADFTVE >R< DF254 4AD <V> TV0 P 8 < TVT?8IE @ 83PW ~ 8IG 032 P D < 254 DFE @ D3k > 8I2 <?@ E52 P DHL™8Iƒ T?8
‡1ˆb| P:< 8IEH\•03L50 5>K8[G 03EH\…6 @Q<?> 8ƒ @ 8I4 8 @ 4ADF2528ITV4pL58I4v4 {8IG 6 < w58IE @ 4 ^ E < TdcmE >R< T < 4A8 @ DF2 > BTV0 5@ D DF4 <?>R< DF2ŽL8
Cj3
‘ D}69DF254 4 8Ž0Mƒ 8I2eY 4R70 38 E528 03L5E56 DF2 2 8 036 Y38x8 256 8 8I2 03T?8 E 8 8 0„0:ƒ TdcmE T 4R0yn
8> IE @ L86Q< ;5> D < 4 <?@ 0„ƒ 6Q< ;50 ^ E@ 8 8 G > 0 >A8@ 8I2 >A@ >R8 < TVE=< 4 < > 8IE @ @ 41>R03< T > 8 @ 25>‚0 <>R< Y38I@H4[G P L8 >A> @ 03L5E=^ 6 >R< < DF2]@Q0fP w=2]>A>ALl@ cjD3k > 8I2 <?>R@ < E5< 28
Y < 4RE503T < 4R0 >R< DF2b2=0 > E @ 8ITVT?83"W ~XDFE54 @ 8 5@ 8I25DF2541T?8M2 < Y38I03Ea0fk=4 >A@ 0 <V> L58T†cj89\K8 P T?8 =@ D DF4 8G L=032584 Cj3‘ D~8I2
P2DFDFE52 4v>A@ D303k 2 > 8IT?258IL4‚L DF< sG258 4 @ 8I20 > 8I24‚D 4ADFTV8 E >R< DF8 25;4pDK8IL52t83Y W < 4R07 8UG 8I4‚L=03254s698 > 0 @R>R< 6UT?83B E < 4p8I2€69D P 0 @ 032 > 0IY38I6698 ^ E8
>R< @-< @ >A@ PuG >
) 9)Q< 587 2?* 58 =6) 9 0><< );
0 0O24, )O7824;
|hcj89\K8 T?869DF254 L 8 8fƒq4 8I6 w=6U0 DF2Fl 8I4A8I2 8ŽwFE 8‹KW— P? …8I4 > 698ITVE < L8Tdc 8 G > E5L8L86U034[L5E
4 > 8ƒ P 8JL5P 8769DF2 >A@@DFC TV8x< LlG cm@K03G 6U6y8Iƒ 41{G03EH< \k >R0 C < >R<VP 8I2 > 54 @KG >tG @
TV8I4 036 > 8IE @ 4 L5E[4 _ 4 > 8ƒ P 8:ƒqT?8I4 8 @ 4RDF2528I4C8 > T?8I4 k 0 C >R<VP 8I2 > 4…C4ADF2 > @ 8 5@H8IG 4R8I2 >K8IG 4 0 @ T?8I4 8I254A8 P k=T?8I4
#! "
4_
01; ; :; 2 )
E289)Q9:)<
f0 kr4 0 4 8 > PERS B
TV8I4p03>A@ E > <?D > @Q< 4RBATS
0 >R< DF254pLlcm036U6y8Iƒ 4XL58I4 8 @ 4ADF2528I4{03EH\Žk 0 C >R<VP 8I2 > 4p4ADF2 >vP 0 >t8 G @Q< 03T < 4 8UG 8I4 0 @
B
Taut
i0M4 <?> E50 >R< DF2•L58I4 8 @ 4ADF2528I4pL=03254vT?8I4pk 0 C >R<VP 8I2 > 4p8I4 >v@ 8 =@K8IG 4A8I2 >K8UG 8 0 @ TV0NODF256 >R< DF2
TV0 @ 8ITV0 >R< DF2
> D > 03T?8 sit W
MACHINE
ControleAccesBatiments
SETS
BATS ; PERS
VARIABLES
aut, sit
INVARIANT
aut @ PERS BATS sit @ PERS BATS sit A aut ...
END
l‹KW— ? 3
\ >A@ 0 <?> L58xTV0M4 {8IG 6 < wr6U0 >R< DF2‚lL5E•69DF2 >A@@DFC T?8[Llcm036U6y8Iƒ 4X03EH\Žk 0 C >R<VP I8 2 > 4
1 #! $
,?
M );
2?*-019<24,65 7; )7
5 !201"' 60 % (9#- "!26=#&% ) # % (:68 >(9#-! 1/ 03254~Tdcm0 5@ DH6Q;8{6Q;D < 4 < 8 0 @ Cj3‘D†B3T?8I4 8I254A8 P k=T?8I4}0fk=4 >A@ 0 <V> 4 4RDF2 >}@ 8 5@H8IG 4R8I2 >K8IG 4 0 @ E=28 6UTi034R4A8p6U0 @
8 > NODF256 >R< DF2 > D > 03T?8 sit… 03E >A@ 8 P 8I2 >
< TVTV4l4 4R8 DF4R0 4U8I8Iƒ L2 8I2 >8 L8I8I4 4A8I@ 2 8ITV0 8I>R4 < DF2=0 4 E50ZY32 8I67Ll8hcm03L5E 8 >A@ k=8I0344A8I832 W >R<?>K8IG 4Š0 ƒ @ 8ITi0L>R8h< DFTz0Hƒ2 B aut
?
T
I
8
C
4
3
0
E > 8IE @ 4l8I2eY < 4R0738I2 >’>A@ D < 4’4ADFTiE >R< DF254
< 8 8I@ 4R8I< 2 8U>C8I@ 4154RE @HG TV0>twGFE 8x@ ‹KW— >z_
@Q>R<?@
@ 5@H|G 0 >KG 8ITV0 DF@ 2 L @ 8I6 E528 8ITi0 DF2+8I2 8bL8IEH\ 8I254A8 k=T?8I4 8 8I4A8I2 8I4 0 L58I4:6UTV034R4A8I4IW
{8 >A>@ 8 @ 8I>R<TV0 >R< DFaut2 8IE G > @-L<?> DF256 8C >A@@ 8 P >RDK< L 8IG T < 4 8UG >A8 @ 0 @ E5258J034R4ADHP 6 < 0 >R< DF2a@ 50 _ @K03G 2 > >tTV0 G P E=T @ >R< T < 6 <?>t8pG ƒ B …
8I2 >A@ 8698I4[6UTV034R4R8I4UW’‡‚28MN D < 476986-;D < \a8 8I6 > E 83G B < T @ 8I4 > 8L8IEH\ DF4R4 < k < T <?>t8IG 4 DFE @ TV0ŽN DF2=6 >R< DF2
> D > 3 03TVTVT?8 81sit8I4 L 8I6 8 0 E5287034R4ADH6 0 DF2bL8 E=T T 6 C8 ƒ fB …
> G @Q<?> @
< >R< P >R< < <?>tG
3 TVT?8L8UY < 8I2 > E52…0 >A>A@Q< k=E > L87TV0M6UTV034Q4A8 PERS
| 0 @ 8ITV0 >R< DF2 aut 8IE > 03E54R4 < 8C >A@ 8 @ 8 5@H8IG 4A8I2 >t8UG 8 0 @ E52 0 >A>A@Q< k=E >MP E=T >R< Yf03TVE 8•G L503254MTV0a6UTV034R4R8
DFE @Ž< 25L <V^ E8 @ T†cj8I254A8 P k=T?8„L58I4k 0 C >R<iP 8I2 > 4Ž03E > D @-< 4 8IG 4 DFE @ E5258 8 @ 4ADF25258„LDF252 8UG 83W
PERS
/103254X698x6U034UB=Ti0N DF256 >R< DF2 > D > 03T?8 sit 8I4 > E52•0 >A>A@Q< k=E > L87TV0M6UTV034R4R8 PERS W
aut
PERS
BATS
+sit: BATS
(a) deux attributs
(b) un attribut,
une association
aut
*
*
BATS
PERS
*
™‹KW—
*
*
PERS
+aut: {BATS}
+sit: BATS
1
sit
|’8I4 >A@ D < 4s4ADFTVE >R< DF2=4 DF4Q4 < k=T?8I4 8I2…‡1ˆ„|
|hc < 256UTVE54 < DF28I2 >A@ 8 sit 8 > aut 8I4 >v>A@ 03L5E <?> 8 0 @ E5258769DF2 >A@ 0 < 2 > 8„x{| W
(c) deux associations
'2#-"7!211&' 6:
/103254v25D 84ADFTVE DF2CBK2DFE=4p0IY3DF254X6Q;D 4 L58 0 8 T?8I4{8I254A8 k=T?8I4Gƒq0fkr4 0 4UB 8I2KE 8 8I4UB 8ITV0yn
F>R< D 254IBtNODF256 >R< >ADF@ 254IBrW?W?W …>RL< 81Nq069 DF2E=2 < NOD @QP 8s8I<2Ž< LDF2=25>A@ 032 <?> > L@ 8I4 @@DFC T?8I4:ƒqP 2D P L8Tdcj8I>A2=@ 4A8 <?P> krT?G8ˆ…~03P EH\G @H03G 4R4ADH@ 6 < 0yn
>RL< 8IDF4254{8I2=8I4A2 8 >A@ 87krTVT?08I4U6UW TV03 4Q8 4A8 8@ 8 4A5DF@HTV8IEG 4A8I2DF>2 032 8I>4 TV0 P D 032=6Q4; 25< 20 8E 0fk=8I4 TV>ATV8„@ 0 0 ƒ<V> 88 8 > T?8I84pƒ 6U8MTV03YK4RE4A8I8 4 @ 8 0 547@K8IG 694A88I2 ;=> 0303252 L> T?6U8I0 4 8IG T 8I8 G 4 P 8I2 0 > 4n
P
>A> >R< >xP < > @ 5@ P:< @ P <
< >x@ >
>A@ 0DF{2 83G B3DFL258 4 2L5D 03>A25@ 8 4T?8ID 4< 2 6->;50L58hYHE8I834hB 4RE 0 @ Yy03T?82 NO0 <V> E^8sElTV0Šcj8ITV T?8I8 2 8I8 4 > 0 4 _ DF4 >K2]8 G P0 ƒ 0 >R0 <V^ E8 L58 8X> 03Tdc E 2t> DYfP0 0 03>R2< 4R0f8k=TV83LWy8I/‚48 D TV8 E504 2DFDF2=E544
PlL8>A@ 69DF2 0 2 8I4B„7p|a=8I<?4 >A@ NO0 4Q0f< k=T?8‚8>^ 03E D 0 G 4RG 0f@ k=>RTV83< WH|’8H 03@R25>R<?LŽ@ L 8I4R0IYf< 032 @Q07< 38[> L81> 2D 8{0 G @ >RDK< 6-;8
8I4 > TV0x2 8IG 69>A8I@ 4Q4 < <?>t>8G L8 @ 0 ADFE > 8> @ L< 8I4 69DF2 >A@ > 0 < 2 > > 8IB4 P „7>Rp< | DFE @ 5@K8IG @6 < 4A8 @ T?8I4hG L < sG8 @ > 8I2 > 4 >`_ 8I4>A@L8XN DF2==6 @ >R< DF2lW
#!
5
01*40>,%;@587;
9:)Q< );
9:). 0 *45<);
|hcm0IYf032 70 388I4R4A8I2 8IT L8J2D 8x0 DH6Q;5878I4 Ti0 DF4R4 k T 8L8 03L5E 87E528 036Q; 28Šl E8IT n
69DF2 ^ E8aL8„> Nq069 DF203E >R> <D P 0 >R<i^ E83>AWp@ /1032554Ž@ Tdcm0 =@ DK> 6-;8 Cj3‘D†Bp< TV<0 <?>tP G DKL 8IG >AT < @ 4R0 >R< DF<?2@ 8IE > P 0 0 < @ 0 C4?>A@ 8 ^ TVE54
4 <VP T?8 P 0 < 4v2DFE=4 8I254ADF254 ^ Elc < T _ 0 TVE54 < 8IE @ 4 < 2569DF2tY 8IG 2 < 8I2 > 4
g DFE @ T†c < 254 > 032 >X@-< 8I2„2Ccj8I4 > 5@K8IG 6 < 4 8:G 03ES2 < Y38I03EaL8MTV0 >A@ 03L5E=6 >R< DF2aL8MTV0 P 036Q; < 258[0fk=4 >A@ 0 <?> 8M698
^ E < 28 8 @QP 8 > 034vL87L 8UG w=2 <?@ L8I4pYf0 @Q< 0fkrT?8I4 > 8ITVT?8I4 ^ E8 pers @ PERS ,?F‘
ControlAccesBatiments
ControlAccesBatiments
1
ControlAccesBatiments
1
ControlAccesBatiments
1
<<rel>>aut
1
*
ControlAccesBatiments
<<fun>>sit
*
E_PERS_BATS
e_PERS
1
*
e_BATS
1
E_PERS
PERS
E_BATS
l‹KW—3‘2~XD
*
>A@ 8 5@ D DF4 <V>R< DF2
TV8I48I254A8 P k=T?8I472584ADF2 > 034 >A@ 0 <?>t8IG 4JL8 P 032 < 8ƒ @ 8E=2 < NOD @QP 8 > 032 > D C >[< Ti44ADF2 >x>A@ 0 <?>t8IG 4J69D PP 8
L58I476UTV034R4A8I4IB 032 D 69D 8L8I4x0 k=E 4UB 032 D 69D 8L8I47034Q4ADK6 0 DF254UW {8 8IE 8 8
RE5L < 6 < 8IEH\€LCcm0I> Y3D <?> @ C > E528 P:> 8IP TVTV8 589\ < k >A< >AT <V@Q>t< 8„G 0„ƒ > 69DF>25L <?>>R<C DF> 2 LP:8 P 5@ 8I25L @ 8 ^ E8IT ^< E>R8I< 4 5@H8IG 6U03E >R< DF25> 4UW C >A3 @ 2
8 8 > BrTV8I4p89\K8 P T?8I4p4RE < Yy032 > 4v2872DFE=4 0 @ 0 < 4Q4A8I2 > 034pNO036 < T?8I4J0 ƒ >A@ 03L5E <?@ 8
DCE ƒ A, B 8 > C 4ADF2 > L8I4p8I2=4A8 P krT?8I4UB
ens @ A B C
DlE ƒ X 8 > Y 4ADF2 > L58I4v8I254A8 P k=T?8I4IB
R1 @ X Y R2 @ R1 Y
TV0 @ 8ITV0 >R< DF2 aut 28 8IE > 8C >A@ 8 @K8IG E >R< T < 4 8UG 8 DFE @ >`_ 8 @ E528103E >A@ 81Yy0 @-< 0fk=T?8‚69D P:P 8L503254 a1 @
W
DFaut
E @ w=2 <?@ B’Tdc < 2 > 8 @ 036 >R< DF2 0IY38I6•TdcmE >R< T < 4R0 > 8IE @ DFE @ L 8UG w=2 <?@ Ti0 P 8 < TiT?8IE @ 8 >A@ 03L=E56 >R< DF2 DF4Q4 < k=T?8
8IE 4Ucm0IY 8 8 89\ 8 8 8I2 Nq034 L 8IE=4A8~8 69D E 8IE=4A8h8I2 8 4 4RE L8I4 DHL™8Iƒ T?8I4 l]69D P T?89\H8I4
6U0 @‚> < Tl4Ucm07 G <?@ > @ LlcmE52>A@81C YP 8 G @-P <?> 0fk=>T?8 @H8UG >R89<\ 5< @ 8I4Q4 < DF2…> L87C >Ti0M4 8IG 6 < w=> 6U0 P >R< DF2CW @ P
‡‚2:0IYf032 0738 E8sTdcjDF2 8IE 25D 8 L503254~T†cm0 DH6Q;8vL58 8$‰K; B38 2 8 ˆb8 8I4 Ti0 DF4Q4 k T 8
L8MY < 4RE503T < 4A8 @> T?8I41^ N DF2=6 >R< DF254UBCT?8I> 4 < 2 > 8I6@ >R< DF254UBlT?8I4754RE @ @ 8I6 >R< DF254‚k 8 > T?<8I41k P< A8I6 < >R< DF> 254 > D@ > 03TV8I> 478 > 0 @Q>R< < 8I< TVT?<?8I>t4 G
0 @ TV8I476U0 @ L < 2=03T <?>t8IG 47LlcmE5258:034R4ADH6 < 0 >R< DF2 L <V@ 8I6 > 8 P 8I2 > 4RE @ TV8:L < 70  @ 0 P:P 8:4R032547Nq0 <?@ 8 < 2 > 8 @ Y38I2 <?@ L8
69DF2 >A@ 0 < 2 > 8I=4 „7{|hW
BATS
p *&
-, . 5 ."% @ !#"$
‡‚2]L8I4xD3kA8I6 >R< NO4xL82DF4 >A@ 0IYf03EH\ 8I4 > LCc 8 G > E=L < 8 @ Ti0 P:< 4A8M8I2]Dt8IE5Y @ 8L8I4 > 8I6Q;=2 <V^ E8I4 ^ E < 8 @ n
8 8I2 LCcm034R4 4 8 T?8h25DF2J4 8I6 03T 4 8hL58TV0 8 ;DKL58hNOD 8ITVT?8Sl L503254 TV0v69D 8I;8I254 DF2[L8h698ITiT?89n`6
8P > L>A>8vNq0I> Y3D @Q< 4R8 @ < Ti> 07@ 69D P:P E52 {< 6UG0 >R< < DF2< > 8I2 >A@ 8XT?8I4PuL G <> sG8 @ 8I2 > 4@Q03P 6 > 8IE @ 4 L=EL 8UG Y38IT?D P 8=P @KG 8I2 > 8I<2 8 @QP 8 >A> 032 > <
L87Y < 4RE=03T < 4A8 @ T?8I4X4 8IG 6 < w=6U0 >R< DF2=4Bl 0ƒ T†cm0 < L87L8xL < 0 @ 0 P:P 8I4s‡‚ˆ„| WŒ/‚032=4s698J6-;50 =<?>A@ 83B=2DFE54v03TiT?DF254
03EHn`L8IT 07ƒ L8v698 > D3k 8I6 >R< N™8I289\ TVD @ 032 > 69D P:P 8I2 >h>A@ 03254RN D @QP 8 @ T?8I4 < 2tYf0 @Q< 032 > 4~8 > T?8I4 D 8 G @ 0 >R< DF254Tl 8I2
69DF2 >A@ 0 < 2 > 8I4 7{| 8I2a4A8k=034R032 > 4RE @ TV0 >A@ 03L5E56 >R< DF2 ^ E8[25DFE54X0ZY3DF254 5@ D DF4 8UG 88I2aL < 0 @ 0 P:P 8I41L8
6UTV034R4R8I4 DFE @ T?8I4 P 036Q; < 28I4h0fk=4 >A@ 0 <?> 8IX4 l‚W 8 > 034 8I6 > 8IE > n 8
>A@ 8 < 2 >t8 G @ 8I4R4R032 > L5032=4 T?8I4h6U034 4RE < Yy032 > 4
g 8 @QP 8 >A>A@ 8€L58 E < 4:E=28b4 {8IG 6 < wr6U0 >R< DF2 l L8 8IG 2 8 G @ 8 @ E5258 P DHL 8IG T < 4R0 >R< DF2*‡‚ˆ„| W T DFE @R@ 0 <?>
4Icm0 <?@ LlcmE=28 0 @R>R< 8X6 @Q<?>R<V^ E8vLlcmE524 _ 4 > 8ƒ P 8‚4 {8IG 6 < w 8sG 8I2pl7C DŒ4RE @ TV0 ^ E58ITVT?8v4ADF2 > 8 8I6 > E 8UG 8I4pL8I4
=L58I@ 8I4 EY30 8I4UW’8I| 4s0 2P DF2…DHL 6 8IG T < 4R0 >RE< 8IDF4p2 L=‡‚E•ˆ„4 |*4 D38ƒ k > 838IW 2tE58a0 ƒ 0 @Q>R<?@ LI8 l–69D P Tq8ƒ > 8TV0 P DKL 8IG T < 4R0 >R< DF2 ‡1ˆ„|
g 8 @QP 8 >A@R>A>R@< 8E5258:69D @QP <?>R<i^ 0 @ 0 < 4RDF2 8I_ 2 >A> @ 8P Tdcj89\ 5@ 8I4R4 < Y <V>t8MG 8 > TV0…T < 4 < k < T <?>t8JG LlcmE5258:4 8IG 6 < w=6U0 >R< DF,2 l 8 >
698ITiT?8‚LCcmE528 P DKL 8IG T < 4R0 >R< DF2‡‚ˆ„| 7p| WH|’0 ^ E8I4 >R< DF203E > DFE @ Llc 7{| 8 G > 032 > L58‚4R0ZY3D <?@ 4 < 698 >A> 8
25D > 0 >R< DF2€N D @QP 8ITVT?87k < 8I2b03L50 5>K8UG 8b0ƒ E528J25D > 0 >R< DF2aL8 P DHL 8IG T < 4Q0 >R< DF2 0ƒ D3kA8 > 4 8IE > 89\ 5@-<VP 8 @
L58 P 032 < 8ƒ @ 8 8IG T 8 G F032 > 83B~69DF256 < 4A8M8 > T < 4 < krT?8[L58I4 5@H8IG L < 6U0 > 4 8UG Y38I2 > E8ITiT?8 P 8I2 > 69D P TV89\K8I4769D PP 8
TV8NO0 <?> l‚W
|’8 0IYf0 T 8I4A8I2 8xL503254pTV8I4p4A8I6 DF254p4RE Yy032 8I4p4Ucj8I4 L 8 DFE5T 80 ƒ 0 L8Tdc 8 E5L587Llcj89\K8 T?8I4
L8 P 036Q>A; @ < 258I4h< 0f5k=@H4 >AG @ 0 <?> >t8IG X4 l ^ E8sT†cjDF2:0 >R< >A@ 03L=E <?> < 8I2 >x{| W > 0 G @@Q>R<?@ LG 8s698I4 @R>A>R@ <?03@ L5E=6 >R< DFG > 254UBFE52:8I254A8P P k=T?8
L8 @ 8ƒ FT?8I4 < 2 > E <V>R< Y38I410 8 G >K8 G 8IG Ti0fkŒD @H8MG 8 > TV8I4 >A@ 03L5E56 >R< DF2=4=lY38 @ 4x{| 8UG Y38I2 > E58ITVT?8 P 8I2 >@ 8 >A@ 0ZYy0 < TiT 8UG 8I4
8I2•NODF256 >R< DF2…L58I4 @ 8ƒ FT?8I4‚03LD 5>t8UG 8I4UW
A“
, , @ .0! . %'/ !#1:*:.0!2*= !"$#%'&(
|’8I4 8ƒ FT?8I4b4ADF2 8I4A8I2 8U8I4„L5032=4•T?8 0 0 0 ;58a4QE Yf032 4ADFE54ŽTV0 NOD 8 L8S6 2 0fk=T?8I03EH\
lL c 8 G ^ E < Yf03@ T?8I25698ln)7> p5| @HG T?8I4 >tG =@K8IG L < 6U0 > 4UB T?8I4@89\ 5@ @ 8I4Q4 < DF254:< 0 @-<?> ; > P 8 G >R<V^ E8I4UB T?@Q8IP 4:89\ 5@ 8I4R<4 < DF^+254:> 8I2=4A8 P n
k=T < 4 > 8I4UBtTV8I4 @ 8ITV0 >R< DF2548 > T?8I4{4 8 G ^ E8I2=698I4UW5|C8I4 8 G ^ E < Yf03T?8I2 > 4 DF2 >8 G >t8JG L 8IG L5E <?> 40 ƒ 0 @R>R<?@ L8I4 89\K8 P T?8I4{L8
>AD @ 03L54RE=8I64J>R<69DFD 2 < 2 > 8E <?T?>R8I<4[Y38M0 8Ik 2*8I74x{8 |L8I698D 4 L58I4,G 6 <+qw=T?8Ž6U0 L>RD < DF250 4 258IG 86 @Q<?L> 88I4JTV0 8I2Fl‚03L=W}E5{6 8 @RDF> 2u0 < 28I8I4 4xL89\ 8 50 @ 8ITV4RT 84 < DFL=25034Š254.l -tDFW—‘K2 Wj>S˜W—8 ‘'G >t/-8 GB
LlP:cm03<E >A@ 8I4~69P:D P:P P 8pTV0 @ 8ƒ @ FT?@810‚L5E>[>@ 0fk=T?8I@ 03E2-tW— ^ E <P L 8IG < 6 @-<?> TdcmE52 < DF>A2[@ LlcmE52J>R8I< 254A8 P k=> T?8 8G > > Ll< cmE5G 2 8IG T 8 G P 8I2 > + ens
,?F
,?f˜
p8 > TV0 @ 8ƒ FT?8‹ML5E > 0fkrT?8I03E -tW— ^ E < L 8IG 6 @Q<?> TV04ADFE54 >A@ 036 >R< DF2bLlcmE52 8IG T 8 G P 8I2 > LlcmE52Ž8I254R8 P k=TV8
{4RDF2 > L58I4v6U034 0 @R>R< 6UE5T < 8 @ 4 P 0 < 4 ^ E < 4R8 5@K8IG 4A8I2 > 8I2 > 4RE 4R0 PP 8I2 > N @H8 G ^ E8 P:P 8I2 > 8I2
l DFE @J^ E8TdcjDF2 0 <?> 6-;D < 4 < L8TV8I4 >A@ 0 <V> 8 @ 0 @ E528 @ 8ƒ FT?8•4 8IG 6 < w ^ E83WXDFE54[03TVT?DF254 5@H8IG 4A8I2 > 8 @ 698I4
>A@ 03254RN D @QP 0 >R< DF254v4RE @ E52Ž89\K8 P T?8769D P TV8 > W
+
/
elem /
ens - elem " !"&"! $##%$&!' )(
|’8 > 0fk=T?8I03E -tW 5@K8IG 4A8I2 > 8 T?8I4 @ 8ƒ FT?8I4€L8 >A@ 03L5E56 >R< DF2 L8I4b89\ 5@ 8I4Q4 < DF254…L58u4 >A@ E=6 > E @ 0 >R< DF2 L8I4
5D @H8I8G L 0< 6U0 8I>E 4UB 4 T?0 8I4D ; {8 G @ 8 0 > 8IEE @8I4:4~LC8I25c 84AF8 03P T k=8sT < 48 > 8ILl4Mc Ll2 cm80 F03T 0 @Q83> WK8I25038I254}698983\ B Ll8Ic < 4R2=4 6UDFTVE5254 4 < DF82uDF8 E > Ll28Ic 8G2 F03E5T <?2>K8€G k™0Dt< DF25T 48U<{8I2 ^ E8•+T?* 8I4
{G @ > T?D @ 4vL87@Q<?T?> 8IE P G 2>R<i^ 8 8 0 G DF2l<?>tW G > < G <?>tG
5@ < @ > @ >
G
,*
@
@v< > @ =@KG > >R<
.- / *-% )(0!$#&%'9(
/ %68!$#
')(9#-"!.% (9#- 5
{DF2 DF2=6 >R< DF2
exp1 exp2
exp1 and exp2
‘ / < 4 DF256 >R< DF2
exp1 0 exp2
exp1 or exp2
 8 G F0 >R< DF2
exp
not exp
˜ P T < 6U0 >R< DF2
exp1 exp2
exp1 implies exp2
0
3 ^ E < Yy03TV8I25698
exp1 1 exp2
exp1 implies exp2 and exp2
exp1
‹ E5032 >R< w=6U0 > 8IE @ (elem).(elem @ ens implies
ens forAll(elem :Type pred)
‡‚2 < Y38 @ 4A8IT
pred)
E5032 >R< w=6U0 > 8IE @
ens exists(elem :Type pred)
(elem).(elem @ ens
3 \ < 4 > 8I2 >R< 8IT
pred)
Š 3 F03T <?>K8 G
exp1 = exp2
exp1 = exp2
‰ 2 8 G F03T <?>K8 G
exp1 2 exp2
not (exp1 = exp2)
,? 0 @Q> 8I250325698
ens includes (elem)
@ ens
XDF2
0 0 @R> 89n elem
elem @ ens
ens excludes(elem)
2=0325698
I‘ 256UTVE=4 < DF2
ens2 includesAll(ens1)
3 ens2
I 256UTVE=4 < DF2Ž4 >A@Q< 6 > 8 ens1
ens1 ens2
ens2 includesAll(ens1) and
not(ens1=ens2)
9˜ XDF2 < 2=6UTVE54 < DF2 ens1 4 ens2
not(ens2 includesAll(ens1))
0 XDF2
256UTVE54 DF2
not(ens2 includesAll(ens1))
4 >A@Q< 6 > 8 < < ens1 2 ens2
or ens1=ens2
I‹ E 8 G @Q< 8IE @ DFE 8G F03T exp1 exp2
exp1 exp2
- 2N 8 G @Q< 8IE @ DFE 8 G F03T
exp1 exp2
exp1 exp2
IŠ >A@Q< 6 > 8 P 8I2 >
exp1 exp2
exp1 exp2
4QE 8 G @Q< 8IE @
I‰ >A@Q< 6 > 8 P 8I2 >
exp1 exp2
exp1 exp2
2N 8 G @Q< 8IE @
<
‘ ? 3 254A8 P k=T?81Y < L8 ens = 5
ens isEmpty()
‘ / < sG8 @ 8I2 > 8I2Hn ens 2 5
ens notEmpty()
4R8 P k=TV8Y < L58
76 -tW
3 ^ E < Yy03T?8I2=698‚8I2 7{|]L58I4 5@H8IG L < 6U0 > B4 l
|’8 > 0fkrT?8I03E -tW—‘ 5@H8IG 4A8I2 > 8T?8I4 @ 8ƒ FT?8I4xL8 >A@ 03L5E56 >R< DF2SL8I4189\ 5@ 8I4Q4 < DF254‚0 @Q<?> ; P 8 G >R<i^ E8I418 > 8I2=4A8 P n
!
4
1
1
" k=T < 4 > 8I4 @ 8 > DFE @ 2=032 > E52…8I2 >R< 8 @ FD E p@ @K8IG 4RE5T > 0 > W
,?'0
- / *-% )(0!$#&%'9(
1& *;*-%'9(
L5L DF2
‘ / < sG8 <V@ >R8I< 25698
 g HD L5E
˜ / @ < Y < 4 < DF?< >2
8I2 >R< 8ƒ @ 8
0
ˆbDHL5E5T?D
‹ ˆ < 2 <iP E P
ˆ„0y\ <VP E P
Š p0 @ L < 2503T <?>t8 G
')(9#-"!.% (9#- 5
x+y
x-y
x y
x/y
x+y
x-y
x y
x.div(y)
x mod y
min(ens)
x.mod(y)
ens iterate(elem ; res :Integer=MAXINT
res.max(elem) then elem else res)
ens iterate(elem ; res :Integer=MININT
res.min(elem) then elem else res)
ens size()
max(ens)
card(ens)
if
if
tW—‘ 3 ^ E < Yy03TV8I2569818I2 7{|uL8I4p89\ 5@ 8I4R4 < DF254p0 @Q<?> ; P 8 G >R<i^ E8I4Bl
|’8 0fk=TV8I03E -tW— 8I4R8I2 8:T?8I4 8ƒ FT?8I4L8 03L5E=6 DF2„L58I4XD 8 0 8IE 418I254A8 k=T 4 8I4 8ITiT?8I4 E8TV0
L 8UG w=2 <V>R< > DF2lBHTdcmE52 < DF2CBt5Tdc @H< 2 G > 8 @ 4A> 8I6 >R< DF2@ 8 > Ti0[4RDFE5>A4 @ >A@ 036 >R< >RDF< 2CW5{8I4{89\ {5G@ @ 8I4R> 4 < DF25@ 4 @ 8 > DFE P @ 28I< 2 >> E52 > @H8IG 4RE=T ^ > 0 > L8
>`_ 878I254A8 P k=T?83W
76 - / *-% )(0!$#&%'9(
3 254A8 P k=T?8
0" *;*-%')(
e ,..., e
'9(9#-"!.% (9#- Set e ,.., e
5
‘ ‡‚2 < DF2
ens ens1
ens union(ens1)
 2 > 8 @ 4A8I6 >R< DF2
ens ens1
ens intersection (ens1)
˜ / < sG8 @ 8I25698
ens ens1
ens-ens1
0
‡‚2 < DF2 Llcj8I254A8 P k=T?8*0IY38I6 ens elem
ens including (elem)
8IG T 8 G P 8I2 >
‹ HDFE54 >A@ 036 >R< DF2Llc 8IG T 8 G P 8I2 > ens elem
ens excluding (elem)
LCcmE52Ž8I254A8 P k=T?8
 3 ^ E < Yy03T?8I2=6988I2 7{| L58I4p89\ =@ 8I4R4 < DF2=4{8I254A8 P k=T < 4 > 8I4
76 -tW—
|’8 0fk=T?8I03E -tWj˜ 8I2KE 8ƒ 8:T?8I4 8ƒ FT?8I4xL8 03L5E56 DF2SL58I41D 8 G @ 0 > 8IE @ 47L58 @ 8I4 >A@Q< 6 >R< DF2€4QE @ T?8I4LDfn
0P < 258I4M> 8 > 69DHLD P 0 < G28I4:P L8I@ 4 @ 8ITV0 >R@ < DF2544R036Q;=>A03@ 2 >Ž^ E5>R8 < dom 8 > ran
8 DFE 28I2 8I4 8I6 Y38 8I2 T?8
LD P 0 < 2,8 + e R D/s8 > TV869DHLD P 0 < 2,8 + e R C/-Wl|C8I403E >A@ 8I41D 8 G @ 0 > @ 8IE > @ 4 @@ 8 > DFE >@ 2@ 8I2 > L5>R8I< 4 @ P8ITV0 >R< > DF254
0 P D < 2=L @Q< 8I4{L87T?8IE @p@ 8I4 >A@Q< 6 >R< DF2lW5|’0 @ 8ITi0 >R< DF2…E >R< T < 4 8UG 8L503254v698 > 0fkrT?8I03E•8I4 >v>z_ {8UG 8•0:ƒ Tdcm0 < L581LCcmE52Ž8I2Hn
4A8 P k=T?8 DFE @ T?8LD P 0 < 28 + X/h8 > LlcmE52Ž03E >A@ 8 DFE @ T?869DHLD P 0 < 258 + Y/-W5{8I4{8I254A8 P k=T?8I4p4ADF2 > 89\ >A@ 0 <?>
8I2…6UTV034Q4A8I4 e X 8 > e Y W
|’8L58 2 8 0fk=T?8I03E -tW 0 0 8MT?8I4 8ƒ FT?8I4L58 03L=E56 DF2aL8I4189\ 8I4R4 DF254 8ITV0 Y38I4103EH\€4QE 8I4
8> ITVT?8I4 ^ E58s@ TV07< L @‚8UG w=> 2 <?>R< DF2lBeTV8I4 < >A25@ 4R8 <?@R> >R< DF254}@8I2 > 8
> 8‚8 > >A8I@ 2 ^ E8I>RE< 83BKT?8I4h4 8IG T?8I65>R@ < DF254h< 8I2 > @ 8
> 8‚>R8 < > 8I2 ^ E8IE83Bt<?> T?8I4
4RE 8I4R4 DF254 E=T T?8I4’Llc 8IT 8 8I2 4}8I2 8
8{8 8I2 E58IE80 2=4 E8T?8I4’D 8 0 > 8IE @ 4~L58h69DF256U0 >t8IG 250 >R< DF2
8 > LC5c <@ 2eY38 <@ 4A8 P P 8I2 > Wr>R< |C8I4XYf0 @QG < 0fG k=P T?8I4 > 7{|]> 4QE > < Y <?>> L8x^ TV06Q;50 4 25< 8JL<F8x^ 6U0 @ 036 > 8ƒ @ 8IG @4 @pre
L 8IG 25D > 8[TV0:Yy03T?8IE @
L8I4pYf0 @Q< 0fkrT?8I4p0IYf032 > Tdcj89\ 8IG 6UE >R< DF2bL87T†cjD 8 G @ 0 >R< DF2lW
,?F‹
‘

‹
˜
1& *;*-%')(
')(9#-"!.% (9#- 5
0P 38
R[X]
R select(X includes(e X)
collect(e Y)
P 038,+q4 < 2 FT?8 > DF2 /
R[ xx ]
R select(xx=e X) collect(e Y)
/‚D P 0 < 28
dom(R)
R collect(e R D)
{DKLD 0 28
R collect (e R C)
s8I4 >A@QP< 6 >R< < DF2…4RE @ T?87L5D P 0 < 28 ran(R)
X R
R select(X includes(e X))
HDFE54 >A@ 036 >R< DF2b4RE @ T?87L5D P 0 < 28 X R
R select(X excludes(e X))
s8I4 >A@Q< 6 >R< DF2…4RE @ T?8769DHLD P 0 < 28 R Y
R select(Y includes(e Y)
HDFE54 >A@ 036 >R< DF2b4RE @ T?8769DHLD P 0 < 28 R Y
R select(Y excludes(e Y)
E @ 6Q;=0 @ 38
R1 + R2
(R1 (R1 select(R2 includes(e X))))
union(R2)
t
j
W
˜
•ˆ
…
H
D
L
I
8
T
R
4
0
F
D
•
2
I
8
2
7
{

]
|
L
I
8
p
4
9
8
\
I
8
R
4
4
F
D
5
2
L
4
6
G < >R<
5@ < l D @R> 032 > 4RE @ T?8I4 @ 8ITV0 >R< DF254
/ 5
E <?> 8
[ !"!# ,...,
Sequence elem ,..., elem
!"!# ]
0 < TVTV8
suite size()
254A8 @Q>R< DF2
8I2 size(suite)
^ 25E4A8I8 E8 DF2 8I2 suite elem suite append(elem)
elem suite
suite prepend(elem)
8> > 8 @Q>R<
g @ 8 P:< 8 @
first (suite)
suite first()
8IG T 8 G P 8I2 >
/‚8 @ 2 < 8 @
last(suite)
suite last()
8IG T 8 G P 8I2 >
8
> 8
front(suite)
suite subSequence(1,
suite@pre size()-1)
E8IE8
tail(suite)
suite subSequence(2,
suite@pre size())
s8I4 >A@Q< 6 >R< DF2 0 ƒ suite $ n
suite subsequence(n+1, suite size())
Ti0 ^ E8IE58
s8I4 >A@Q< 6 >R< DF2 0 ƒ suite % n
suite subSequence(1, n)
Ti0 > 8
> 8
{DF256U0 >t8IG 250 >R< DF2 suite1& suite2 suite1 union(suite2)
2tY38 @ 4A8
rev(suite)
Sequence 1..suite size()
.-
/ *-% )(0!$#&%'9(
0
Š
-
‰
‘

˜
0
‹
Š
-
‰
,?
I‘
iterate(index ;s :T=Sequence s prepend(suite at(index)))
tW (' ^ E < Yy03TV8I2569818I2 7{|]L8I4p89\ 5@ 8I4R4 < DF254p4RE @ T?8I4s4RE <?> 8I4
6 - 0
*) ,+
$"
!#
"
|hcj89\K8 T?876Q;D 4 8I4 698ITiE LlcmE52,38I4 DF25250 87L8 DH698I4R4RE=4 +qTV0:4 8I6 wr6U0 DF2l 8I4 8I4A8I2 8U8
w FE @ 8 -tW sP 8 > Ti0 P DH< L 8I< G T < 4R0 > >R< DF2‡‚< ˆ„|bw FE @ >R8 < -tW—‘'/-W<?@  8ITVE < n`56 @ < 0 DFE @ k=E > LC{cm03G 4R< 4ADH6 < >R8 <@ E528 @ 8I4R> 4ADF5E @K@ G 698 +q>tE5G 2
5@ DH698I4R4A8IE @ 0 @ 89\K8 P T?8 /0•ƒ E52a8I254A8 P k=T?8ML8 5@ DK698I4R4QE54UWl‡X2 =@ DK698I4Q4RE54 8IE > 8
>A@ 8L503254TV8I4 8 G > 0 > 4
" MACHINE
Scheduler
SETS
PID
CONCRETE VARIABLES
active, ready, waiting
INVARIANT
active 3 PID ready 3 PID waiting 3 PID ready waiting = 5
(active = 5 or (active 2 ready
card (active) 1 active = 5 ready = 5
INITIALISATION
...
END
waiting
ready
active
tW ' \ >A@ 0 <V> L87TV0M4 {8IG 6 < w=6U0 >R< DF2l L87T†cj89\K8 P T?87L5E
6
4RE < Yy032 > 4
waiting))
,?
-
Scheduler
T?8 DK698I4Q4RE54{8I4 8I4A8I2 0 4p2DF2b6U0325L L50 0 ƒ Tdcm0 k=E DF2ŽL87TV0 @ I8 4R4RDFE @ 6983B
T?8 5@ =DH@ 698I4R4RE=4p8I4 > 5> @ =8
>@KG 0 ƒ 5@ >‚8IP25L @ < 81Ti0 @ 8I4R4ADFE @ < 6983B > A> >A@Q< >R<
TV8 5@ DH698I4R4RE54{8I4 > DF4Q4A8I4R4A8IE @ L587TV0 @ 8I4R4ADFE @ 6983W
Scheduler
1
waiting
*
1
Scheduler
1
1
1
Scheduler
PID
Scheduler
*
active
E_PID
Scheduler
*
ready
tW—‘ •ˆ…DHL 8IG T < 4R0 >R< DF2•8I2…L < 0 @ 0 P:P 87L876UTV034Q4A8I4sL87Ti0 P 30 6Q; < 28
6 - Scheduler
|hc 2eYf0 032 8I4 69D DF4 8L8 8IL 6U0 4 8IT 8I4 0 T?8‚69DF2528I6 > 8IE @ W 120 T <V^ E8vLDF256‚TV0 @ 8ƒ FT?8
1L5E > < 0fk=T?8I@Q03< E -t> W 4R> E @ T?P 8I4{69DF2G ADF256 5>R@K< DFG 2=< 4UW|C> 8 @ 5@H8I<oG GL < 6U0 > @ active 3 PID
8I4 > >A@ 03254ANOD @QPu8 G 0 @ TV0 @ 8ƒ FT?8 I‘
L5E 0fk=T?8I03E -tW ‚8I2 includesAll(active) Wt| 0 P 8
P 8 @ 8ƒ FT?874Icm0 T <V^ E8s4QE @ TV8I4L8IE\ 5@H8IG L < 6U0 > 4
4RE < Yy> 032 > 4UW |hcj89\ =@ 8I4R4 PID
< DF8I2[4A8ILl2 c < 8U2 8 > 8 8I@ 2 4A8I76 >R{< DF| 2[L50 8 LTV0p8IE69DF\72 8I2504A8 2P k=8 T?8I4 8G F03EH\•01ƒ Tdcj8I254R8 P k=TV8hY < L8h8I2Cl ready I
B
I
8
4
8
waiting = 5
D3k > 8I2KE8b8I2*0 >C@ T <i^ =E5@K03G 2 > >KTV0 G @ 8ƒ FT?8a L5E @ > 0fk=T?8I03E >A@ -t<W—]> 8 > ready
TV0 @ 8ƒ FT?8aintersection(waiting)
‘ ?uL5E > 0fk=TV8I03E -tW fW{ |C8IisEmpty()
403E 8I4
85@HIG L < 6U0 > 4:4UcjD3k >R< 8I2=28I2 > L8•TV0 P 8
P 8•NO069 DF2+8I2 @ 8I6Q;8 @ 6Q;5032 > T?8I4 @ 8ƒ FT?8I4€0Sƒ 0 T <V^ E8 @ W 12 D3k >R<>A8I@ 2 >
0 < 254 < TV0M69DF2 >A@ 0 < 2 > 8xw=2503T?87L87Ti0w FE @ 8 -tW—KW
,?FŠ
context Scheduler inv :
PID includesAll (active)
and PID includesAll(ready)
and PID includesAll(waiting)
and ready intersection(waiting) isEmpty()
and active isEmpty() or not (ready union(waiting) includesAll(active))
and active size() 1
and active isEmpty() implies ready isEmpty()
tW— @ 03254RN D @QP 0 R> < DF2…LlcmE5258 =@ D 5@Q<o8 G >K8 G < 2tYf0 @Q< 032 > 87L5E
6 - Scheduler
@R>R<
+$' (,) $# (
5 < 6 06 5
/103254JTdcj89\K8 T?8:L5E
B T~2lc 0 034JLlcj89\ 8I4R4 < DF2=418 > L 8 5@H8IG L < 6U0 > 4 >A@ 8Iƒ 4[69D P T?89\H8I4
0P < 4‚4 < 2DFE54 5P @ 8I2DF254‚E52b; 689\K8 P < T?8J 69D < P:P _ 8TV8J4RE < Yy032 > =DF@E ContenuEvacuation
8I4 > E5258xNODF256 >R< DF2
0 8ITVT?818
E528 8ITi0 DF2
(
> AutorisationEvacuation @ >R<
(xx, yy).((xx yy) @ ContenuEvacuation
yy @ AutorisationEvacuation [ xx ])
| 0 >A@ 03254RN D @QP 0 >R< DF2…8I2 7{| +Ow ,-tWj˜ /v8I4 > D3k > 8I2tE8[8I2bE >R< T < 4R032 > T?8I4 @ 8ƒ FT?8I4‹M8 > ,?L5E > 0fkrT?8I03E
-tW 8 > TV0 @ 8ƒ FT?8J‘ML=E > 0fk=T?8I03E -tWj˜W
HE @ 698 > 89\H8 P T?8sDF2 8IE > Y3D <?@ ^ E8v4 < L8v2D P k @ 8IE=4A8I4 5@ D 5@Q<o8 G >t8IG 44RDF2 > 89\ 5@Q<iP 0fk=T?8I4~0ZY38I6 x{| B
l @ 8I4 > 8xkŒ8I03E=69DFE TVE=4p69DF256 < 41 @ 03
698Ž0:ƒ L8I4sD 8 G @ 0 > 8IE @ 4 E < 4Q4R032 > 4IW 1E >A@ 87698 > 034 8I6 > BrTV0MT < 4 < k < T <?>t83G B
^ 0 E < 8ID 4 > 690 ƒ 8 @Rx> 8I{4Ž| E5W 2 NO036 > 8IE @ k™8I03E569DFE TVE544REkA8I6 >R< N B2DFE54 0 @ 0 > 8
>A@ 8 0]ƒ Tdcm0ZYy032 > 038 L8l 0 @
@ @R>
Evacuation forAll(ce : E Evacuation
AutorisationEvacuation select(
ce.E Evacuation D = E AutorisationEvacuation D)
collect(E AutorisationEvacuation C)
includes(ce.E Evacuation C))
6
tWj˜ @ 03254RN D @QP 0 >R< DF2•8I2 7 p|]LlcmE5258 =@ D 5@Q<o8 G >K8 G < 2tYf0 @Q< 032 > 8769D P T?89\H8
-
< * 5
5
g @ 8 P:< 8ƒ @ 8 P 8I2 > 25DFE54C0IY3DF2=4’D P:< 4CL8 P 032 < 8ƒ @ 8 Y3DFT?DF2 > 0 <?@ 8 T?8I4l89\ 5@ 8I4R4 < DF254CLlcm0 @ k @ 8I4l8 >’@ 8I69D @ L54 ^ E <
4ADF2 > 8IEE >R< T < 4 8UG 8I4l8I2Šl 8 > 2lcjDF2 > 034CLCc 8 G ^ E < Yf03T?8I2 > L <V@ 8I6 > L503254CTV8I4’4 >A@ E=6 > E @ 8I47p| WI/‚8IEH\ < 8ƒ P 8 P 8I2 >
698 @R> 0 < 258I4v89\ 5@ 8I4R4 < DF254Ll4RE @ T?8I4 @ 8ITV0 >R< DF254p258x4ADF2 > 034vL <V@ 8I6 > 8 P 8I2 >v>A@ 03L5E < 4 < k=T?8I48I2 7p|]0IY38I6JT?8
L < 0 @ 0 P:P 87L876UTV034Q4A8I4 0 @ 25D >A@ 8x0 5@ DK6-;8
|’D @ 4 ^ ElcjDF2E >R< T < 4A8pE5258 @ 8ITV0 >R< DF2DFEE5258vN DF2=6 >R< DF24Q03254hTdcm0ZY3D <?@ 25D P:Pu8UG 8‚L=03254hTdc < 2eYf0 @Q< 032 > Weg}0 @
89\H8 P TV83BfL=03254 TV8 5@H8IG L < 6U0 > x @ A (B C) B3TV0 @ 8ITV0 >R< DF2 B C DF4A8{E52 5@ D3krTq8ƒ P 8 < TtNq03E5L @ 0 <?>
E=2•2D P DFE @ 03E P D < 254p6 @H8UG 8 @ Ti0M6UTV034R4A8 @ 8 5@K8IG 4A8I2 > 032 > T?8I4v69DFE TV8I4UW
" ,?F‰
7 TVD @ 4 ^ ElcjDF2aE >R< T < 4R8[L8I41D {8 G @ 0 > 8IE @ 47DFESL58I41N DF256 >R< DF254Gl ^ E < 6 @H8UG 8I2 > L8I4 @ 8ITV0 >R< DF254 ^ E < 2lcj89\ < 4 n
> 0 DF< 8I252 4U>B5T?8 0341L5DKL5032=E 4T?L8[L 8I< 06 B5@ 0T?8 P:P DK8ML5LE 8M6UTV030 4Q4A038ITV4UTd8IWƒ T?183B52 TV0M698ID E > 6 <VDF> 48 @ TdDFc <2•L8IL2 8 >R<?>t8I83GTi0BlTdc DF< 2t25Y34U8 W @ 4A83BlT?8I4 5@ DA8I6on
| 0 >R< 4RDFTVE >R< DF2 5@ 69DF254 <?< >4 > 8 <?@ 0 ƒ P > DKL < 5w5@ 8 @ TV8a<?> L < 0 @ @ 0 P:P 8aL8SP6UTV034R4R8I<?4Ž>R< 8I20 DF@ E > 03>R2 < > T?8I4•6UTV034Q4A8I4Ž8 > T?8I4
034R4ADH6 < 0 >R< DF2=4h2 8IG 698I4R4R0 <V@ 8I4 8 > 8I26-;D < 4 < 4R4R032 > L8I4 2D P 4 < 2 > 8 @ 036 >R< Y38 P 8I2 > DFE03E > D P 0 >R<V^ E8 P 8I2 > DFE @
698I412DFEY38I03EH\ 8IG T 8 G P 8I2 > 4UW 12 DFE @R@ 0 <?> T <VP:<?> 8 @ 698 5@ D3k=Tq8ƒ P 8+ P 0 < 4 034XTdc 8UG Y <?> 8 @ /v8I2 <iP DF4R032 > L8I4
@ 8ƒ FT?8I4XLlc 8IG 6 @Q<?> E @ 8J4RE @ T?8I4v4 8IG 6 < w=6U0 >R< DF25B4 lXW
*)
, , @ .0!
( XDFE5472DFE=4
.
%'/"
(+ & & (
/, .*4!2"$ $
2 >K8 G @ 8I4Q4ADF254 < 6 < 0•ƒ TV0 >A@ 03L5E56 >R< DF2S8I2 7{| L8:TV0Ž6UTV03E54A8 INITIALISATION 8 > L8I4
<
D 8 0 DF2=4hL 8I6UTV0 8U8I4 L503254~TV016UTV03E=4A8
Wf‡‚28pD 8 0 DF2:8I4 69DF254 E 8U8sLlcmE528{8I2Hn > 8
> 8
8 >{LlG @ cmE=>R2•< 69D @ 4vG 69D @HP:G P 8x6 < n`L8I4R4RDFE54 OPERATIONS {G @ >R< > >R<V> G
nomOpération (ListeDeParamètres) ListeDeRésultats corps
’| 8 69D @ 4„L8I4€D {8 G @ 0 >R< DF254€8 > Tdc < 2 <?>R< 03T < 4R0 >R< DF24ADF2 > 89\ 5@Q<iPu8IG 4 0ƒ Tdcm0 < L8 L8u4QEk=4 >R<?> E >R< DF254 ^ E <
4ADF2 > L8I4J2D > 0 >R< DF254 P 0 > ; 8 G P 0 >R<V^ E8I4 8 @QP 8 >A> 032 > L8 P DKL 8IG T < 4A8 @ TV0 >A@ 03254ANOD @QP 0 >R< DF2]L8 5@H8IG L < 6U0 > 4UW
| cj8I2n > 8
> 8€69D P 5@ 8I2=L E=28T < 4 > 8D 5>R< DF2528ITiT?8L8 @H8IG 4RE5T > 0 > 4 >`_ 8IG 4 <VP T < 6 <?> 8 P 8I2 > L=03254T?869D @ 4ML8
TdcjD {8 G @ 0 >R< DF2•8 > E528T < 4 > 81D 5>R< DF2528ITiT?8‚L58 0 @ 0 P 8ƒ >A@ 8I4 >`_ 8IG 4s89\ T < 6 <V> 8 P 8I2 > 4Uc < TV4 89\ < 4 > 8I2 > @ 03
6980Mƒ TV0
4REkr4 E DF2 89n`69DF2=L DF2 Prédicat THEN Substitutions END W  8ITVT?89n`6 < 8 @-P 8 > 03E54R4 < L58
w\H8 @ >RTV<?8I> 4 >R5< @H89G n`695DF@H2=G L <?>R< DF25<?4 >R<4ADFE54 PRE
T?8I4 ^ E8ITVTV8I4hE528XD 8 G @ 0 >R< DF28I4 > 0 8IT 8UG 83W5 8 >A> 84REk=4 >R<V> E >R< DF2:69DF254 >R<?> E8
T?869D @ 4L8TdcjD {8 G @ 0 >R< DF<2 l 8 > T?8I4103E >A@ 8I44QEk=4 >R<?> E >R< DF254s4RDF2 ><VP k @Q<V^ E 8UG 8I41L5032541TV0 0 @R>R< 8 SubstituW=|C8 >z_ 0 38JL8I4 0 @ 0 P 8ƒ >A@ 8I4X8 > T?8I4 5@H89G n`69DF25L <?>R< DF254v4RDF2 > 8 8I6 > E 8IG 41L503254pTV0 0 @R>R< 8 Prédicat W
tions
|hcj89\K8 P T?8sL5E 6 < L8sTV0w FE @ 8 -tW 0 8 @-P 8 > L8vY3D <V@ Tdc < 2 <?>R< 03T < 4Q0 >R< DF2x8 > L8IEH\MD {8 G @ 0 >R< DF2=4
+
8
/-W
creer > activer
*)
( '&( " + & $
:6 * 6-;50 E58bD 8 0 DF2LlcmE5258 036Q; 28b0fk=4 0 8 l 8I4 034R4RDK6 8U8aE528…D 8 0 DF2*L58„TV0 6UTi034R4A8
8@ 5@H 8IG 4R8I2 > 03^ 2 > TV0 {P G @036Q>R; < < 283Wl| c < 2 <?>R<P 03T < 4Q0 >R< < DF2…8I4 >1>A@@ 8 =<?> @K8IG 4A8I2 >K8UG 8 > 0 @ E5<o2G 8 Pu8 G > ;DH{L8:G @ 4 {>R<8IG 6 < w ^ E8M0 8IT 8UG 8
W E5281D 8 0 DF2„LlcmE5286UTV034Q4A83B 7{| 8 8 LCcm034R4ADH6 < 8 @ E528 5@H89G n`69DF2=L <?>R< DF2Ž8 >
INITIALIZATION E528 DF4 > n`69DF2=L <?>R< DF2•LDF2 > TV0M{4 G _ @ 2 >R> <0y\K8J8I4 > TV0M4RE < Yy032 > 8 @QP >
context nomClasse : :nomOpération(ListeDeparamètres : Types) : typeResultat
pre : pré-condition
post : post-condition
| 0 =@K89G n`69DF25L <?>R< DF2 7p| DFE @ E528[D {8 G @ 0 >R< DF2 8I4 > D3k > 8I2tE58…0 ƒ 0 @R>R<V@ L=E 5@H8IG L < 6U0 > L8[Ti04RE5k=4 >R< n
> E >R< DF2 5@K89G n`69DF25L <?>R< DF2lW5|’0 DF4 > n`69DF25L <?>R< DF2Ž8I4 > D3k > 8I2tE8x8I2…L8IEH\ 8 G > 0 8I4
fW 2…6U03TV6UE5T?80 ƒ 0 @R>R<?@ L58I4v4REk=4 >R<?> E >R< DF254JlTV0 DF4 > n`69DF2=L <?>R< DF2‚l 0 @ T?8 P 8IG 6U032 < 4 P 8xL8 >A@ 03254 n
NOD @QP 0 >R< DF2•8I2 5@H8IG L < 6U0 > 0IYf032 > n`0 =@ 8Iƒ 4 Cj D 0 @ 0 @ 0 ;8x‹KW—KW—M8 > -tW fW fW
‘KWs| 0 DF4 > n`69DF25L <V>R< DF2Il 8I4 > @H8 G 8IG 6 @Q<V> 8X8I2,7{| 0xƒ Tdcm0 < L8vL5E Pu8IG 6U032 < 4 P 8XL 8IG 6 @Q<?> 8I24A8I6 >R< DF2-tW—KW—‘KW—‘KW
,?
MACHINE
Scheduler
...
INITIALISATION
active, ready, waiting := 5 , 5 , 5
OPERATIONS
creer(pp) PRE
pp @ PID pp @ 2 active pp @ 2 (ready waiting)
THEN
waiting := waiting pp END ;
activer(qq) PRE
qq @ waiting
THEN
waiting := waiting - qq +
/
5 THEN
IF
active := qq ELSE
ready := ready qq END
END ;
...
END
q036 >R< Y38
tW
6 - 0
E >A@ 889\ >A@ 0 <?> L587TV0M4 {8IG 6 < w=6U0 >R< DF2bL5E
Scheduler
" 7 context Scheduler : :INITIALIZATION()
post :active isEmpty() and ready isEmpty() and waiting isEmpty()
context Scheduler : :creer(pp : Elt PID)
pre : active excludes (pp)
and ready union(waiting) excludes(pp)
post : waiting = waiting@pre including(pp)
context Scheduler : :activer(qq : Elt PID)
pre : waiting includes(qq)
post : waiting = waiting@pre excluding(qq)
and if active@pre isEmpty() then
active = Set qq else ready = ready@pre including(qq)
endif
tW—‹ • DF2 >A@ 0 < 2 > 8 7{|S89\ >A@ 0 <?> 8[L87Tdcj89\H8 P T?8L5E Scheduler
|’8I4s69DF2 >A@ 0 < 2 > 8I4sD3k > 8I2KE8I4‚4RE @ T†cj89\K8 P T?87L5E…4R6-;8IL5E5TV8 @ DFE @ Tdc < 2 <V>R< 03T < 4R0 >R< DF28 > T?8I4pD {8 G @ 0 >R< DF2=4
8
4ADF2 > T?8I4p4QE < Yf032 > 8I4
creer > activer
'2 8I03T 83BtTV8I4 DF4 n`69DF25L DF254}DF2 8 8‚D3k 8I2KE8I4hL58pNO069 DF2 2 E Y383W3g DFE TdcjD 8 0 DF2
B
E528 DF4 @K> G n`69DF<?>K2=G L <?>R< DF2 8 G ^ > E < Yf03T?8I2<?>R> < 8x8I4 > 6U03>MTV6UG >tE5G T 8UG 8x8I> 2 -tW—KW—‘KW—‘KW < > <?>R< @ {G @ >R< activer
s8 0 E8 'F2 l‚B}E528:D 8 0 DF2 8IE 8 DFE 28 TVE54 8IE 4 8I4RE5T 0 4IW /103254JTV0 03L=E56 DF2
‡1ˆb|Cn)7P {@Q| ^ B T?8 =@ 8 P:< 8 @J@K8IG 4RE5T > {0 G> @ 8I>R4 < > 69DF254 < L >78 G @H@ 8ŽG > 69D P:@ P @ 8ŽT?8 @K8I<G 4RE5@T > 0 @K> G L8> TdcjD > 8 G @ 0 >R< DF2 8 > >AT?@ 8I4J03E >R>A< @ 8I4
4ADF2 > 034R4 8IG 4s8I2 0 @ 0 P 8ƒ >A@ 8I4X0ZY38I6J69D P:P 8 >`_ 87L8 034R4R038 out W
< ! 6 * -< !*&< 12 @ 8 =@ 8I25L < 6 < TV869D @ 4[L58ŽT†cjD 8 G @ 0 >R< DF2
8 DF2+0 T <V^ E8T?8I4 @ 8ƒ FT?8I4ML 8UG wr2 < 8I4L503254 Cj D
activer >
DFE DFEY38 TV0 DF4 n`69DF25L DF22 l‚W|C8I4{Yf0 0fkrT?8I4 8U8I4{L8I4 8IL 6U0 4p0IYf032 y0 8Iƒ 4s89\ 0 L8I4
4REkr4 @ >R<?>A> @ E >R< DF2=@ 4 l+L 8IG 2>D > 8I2 > TV<?01>R< Yf03T?8IE @ L8sTV07Yy@Q0 < @Q< 0fk=T?8v=0 @Q5<VP @ 8Iƒ G4 Tdcj89\ 8IG 6UE5>R@H< G DF2< L58I> 4h4REkr4 >R> <?> E 5>R<@ DF2=4UW 'h>A@2<?x> {| B
DF2…L 8IG 4 < F28xTV0Yf03T?8IE @ 0ZYy032 > 8I2„4RE M\032 > Ti0Yy0 @Q< 0fk=T?8 0 @ @pre W
5@ L + waiting := waiting - qq
6 - IF (active = 5 ) THEN active := qq ELSE ready := ready qq /
END
5@ LL ++ waiting := waiting 5@ IF (active = 5 )
1
qq THEN active := qq ELSE ready := ready
/
END
/
qq 0 <?>R< 2 c 0 ?< >R< 2 n ^K^ / 5@ L + +q03C 6D >R+< Y38 +q036 5 Y3 8 036 / >R< Y38 8I03L ^t^ / 8I03L
>R< 5 @ _ @ _
1
4
^t^
/
I‘
DCE ƒ
4 < F2 < w58 * > 8IT ^ E8 I8 4 > E52 5@K8IG L < 6U0 > L 8 5@K8IG 69DF25L <?>R< DF2Ž8 > E525814QEk=4 >R<?> E >R< DF2lW
1
0 <?>R< 2 c 0 <?>R< 2 n ^K^ / + 5@ L +q036 >R< Y38 036 >R< Y38 ^t^ /
5
^K^ /
0/ =@ L + +q036 >R< Y38 5 / @ 8I03L _ @ 8I30 L _
1
0 <?>R< 2 c 0 <?>R< 2 n ^K^ / + +q036 >R< Y38 L +q036 >R< Y38 ^t^ / /
=
@
5
^t^ / /
0/ + +q036 >R< Y38 5 / 5@ L + @ 8I03L _ @ 8I03L _
1
0 <?>R< 2 c 0 <?>R< 2 n ^K^ / + +q036 >R< Y38 L +q036 >R< Y38 ^t^ / /
=
@
5
^t^ / /
0/ + +q036 >R< Y38 5 / 5@ L + @ 8I03L _ @ 8I03L _
1
0 <?>R< 2 c 0 <?>R< 2 n ^K^ / + +q036 >R< Y38 036 >R< Y383c ^K^ / /
5
^K^ / /
0/ +q036 >R< Y38 2 5 @ 8I03L _ c @ 8I03L _
|’069DF2 >A@ 0 < 2 > 8 x{|]4A87L 8IG L=E <?> L87698 >A> 8 DF4 > n`69DF25L <?>R< DF2
/
4
4
4
waiting = waiting@pre excluding(qq) and
((active@pre isEmpty() and active = Set qq )
or (active@pre notEmpty() and ready = ready@pre including(qq))
)
"!#%$ $ &
& % &*~ &
-, . 5 ."% @ !#"$
/103254a698+6Q;50 r<?>A@ 8 2DFE54 5@K8IG 4A8I2 > DF254ST?8I4aL < sG8 @ 8I2 > 4a4R6-; 8 G P 034 L8 >A@ 03L5E=6 >R< DF2 L58[l Y38 @ 4aT?8I4
L < 0 @ 0 P:P 8I4MLlc 8 G > 0 > 4 n >A@ 032=4 <?>R< DF254 8 G > 8I25L5E54b0 ƒ 0 @Q>R<?@ L8I4 EkrT < 6U0 >R< DF254Cj‘'-HB}˜e‰HBh‰3‰D†W{8I4M4R6Q; 8 G P 034
69DF25698 @ 258I2 > 03E > 032 > T?8>lT?D < 6 < 8IT ^ E8MT?8>l 4 _ 4 > 8ƒ P 86U0 @ Ti04 >A@ E56 > E @ 8L8I4 # * X8I4 > TV0 P 8
P 8
L503254sT?8I4sL8IE\NOD @QP 8I4XL8Šl‚W XDFE54sL 8UG w=2 < 4R4ADF254sL503254vTV04A8I6 >R< DF2b4QE < Yf032 > 8xTV8I4vT <VP:<V> 8I4vL87698 >A> 8 >A@ 0yn
L5E56 >R< DF2]0 < 254 <h^ E8TV0 @ 0 P:P 0 <V@ 8L5Eu2D _ 03E L5EuTV032 F0381l E >R< T < 4 83G W’g}0 @ TV0b4QE <?> 82DFE=4 8IG 2DF2 69 DF2=4
T?8I4 @ 8ƒ FT?8I4L8 5@ DHL5E56 >R< DF2 L5E]L < 0 @ 0 P:P 8Llc 8 G > 0 > 4 n >A@ 03254 <V>R< DF254UW 'h2wr2 2DFE54 > 8 @QP:< 28 @ DF254 0 @ E528
L < 4Q6UE54R4 < DF2+0 ƒ 5@ D DF41L8I46Q;5D < \aL5869DF2=6U0 >t8IG 2=0 >R< DF2uL58I4L < sG8 @ 8I2 > 4L < 0 @ 0 P:P 8I4 5@ DKL5E <?> 4 E < 4‚4RE @
T?8IE @v< 2 > 8 @ =@K8 G > 0 >R< DF2lW
A“ ! < ! /?%'A( .*:@ !#"$
XDFE5428 03L5E 4RDF254 E8ŽT?8I4 0 8I44 F2 w=6U0 Y38I4xL58TV0€4 8I6 wr6U0 DF/
2 lXWh 8 8 03L=E56 DF2
28‚4Ucm0 T <i^ E8 >A@^ Elcm03E< \4 8IG ^ 6 < w=6U0 >R< DF2=4 @R0f>Rkr< 4 >A@ 0 < <?> 8I4< + P >R03< 6Q; < 28I4 0fk=4 >A@{0 G <?> < 8I4 8 > >R< @ 0 28 P 8I2 >A>> 4 / >A@ DF4R4 8IG L5>R03< 2 >
L8I4ŽYf0 @Q< 0fk=TV8I44R6U03Ti0 <?@ 8I4 >`_ {8UG 8I4u0+ƒ Tdcm0 < L8€LCcj8I254A8 P k=T?8I4 8IG 2tE P 8 G @H8IG 4IWXg}0 @ 69DF254 8 G ^ E8I2 > T?8I4Yy0 @Q< 0fk=T?8I4
@28 DF5E5@H4 8IG 4R8ITV2 0 > 69 03DF2 25> 4vLL=8I034 25@ 4p8ITVE50 2…>R< DF6U2503L4UBf87NODFDl25E…ƒ6 >RTV< 0MDF254 4IB38Ik 6 < A8w=I6U6 0 >R< DFDF252 4UB l< 2 A80I6E5>R2 < DF254 DH8L™> 8Iƒ T?4R8E @0:ƒ 8I26 D >R< DFk254}878I2:LCc 4A8 DF02 > 4‚89w=\H6U2 TiEW 8I'h4U2•W X8 DFE58 4
T?8I4L < 0 @ 0 P:P 8I4Llc 8 G > 0 > 4 n >A@ 03@ 254 <?>R< DF2=47{L8:G < TV0Ž2>RD < > 0 >R< DF2S‡1ˆ„| P 28 8 @QP 8 >A> P 8I2 > @ 034G > TV0 > @ 8 =@K8I<G 4A8I2 > 0 >R< DF2 >
L8I4v4 _ 4 > 8ƒ P 8I4 < 2wr2 < 4 69DF2 >A@ 0 <V@ 8 P 8I2 > 0:ƒ 698 @R> 0 < 258I4s2D > 0 >R< DF2=4v03T 8UG k @Q<V^ E8I4UW
.*=<><+*=!#.)% & " $
* 6%
6(2*= 9$*:9;
!#( !2 ,
 8 8 03L5E56 DF2M4Ucm0 T E803E\ 036-; 28I4~0fk=4 0 8I4}8 03EH\ 028 8I2 4~L8pTV014 8I6 wr6U0 DF2
5L Ea4 >A_ > 4 > >A8ƒ @ P 83W’|’>R0< @ 0 PP 0 <V<?^ @ 8M4RE < Yy032 P > 8ML 8 <G > 8 @QP:< 28:>A@ TV8<?> 25D _ 03> E L5Ea@ TV032 F03P 8Il> 036U698 =>t8 G {G DFE < @ 2>RD < >A@ 8
>A@ 03L5E=6 >R< DF2lW
8I6 ˆ„036Q; < 28 s0258 P 8I2 >
ˆ„036Q; < 258 MACHINE L58I2 >
 D@ 4
I
l
9˜
s028 P I8 2 >
 D@ 4 8 @ 0 >R< DF2
/‚8UNO4 K8 > 4
8I6 > 0 >R< DF2
/‚8UNO4 K8 > 4 m/‚8UNq4 K8 > 4 L 8I2 > B L8I2 > L8I2 > L8I2 > L8I2 > @ L8I2 > 8I6 0 DF254
8 @ 0 >R< DF> 2 >R< 8 @ 0 >R< DF2 L8I2 > B L8I2 > L8I2 > + L8I2 > B L8I2 > / 6 >R< DF2
L58I2 > L8I2 > B L8I2 >
L58I2 > ' \ =@ 8I4R4 < DF2
' \ 5@ 8I4R4 < DF2 B ' \ =@ 8I4R4 < DF2 L58I2 > B L8I2 >
L58I2 >
' \ =@ 8I4R4 < DF2
@
L58I2 > + ' \ =@ 8I4R4 < DF
2/
<
8I6 > 0 >R< DF254 END
BEGIN g
I
8
L
6U0 g @ 8IL < 6U0 > THEN 8I6 > 0 >R< DF254 END
PRE @ < >
g 8IL 6U0 g @ 8IL < 6U0 > THEN 8I6 > 0 >R< DF254
SELECT @ < >
g 8IL 6U0 g @ 8IL < 6U0 > THEN 8I6 > 0 >R< DF2=4 WHEN @ < >
ELSE L8I2 8IB6 > 0L>R8I< 2 DF254 END
ANY
g @ 8IL < 6U0 > > g @ 8IL > < 6U0 > WHERE
8I6 > 0 >R< DF254 END
THEN 8I6 > 0 >R< DF254 OR 8I6 > 0 >R< DF2=4 END
CHOICE g
I
8
L
U
6
0
g 8IL 6U0
8I6 > 0 >R< DF2=4
IF @ < >
6U0 @ < g > 8I L THEN
g
I
8
L
U
6
0
8I6 > 0 >R< DF254 @
<
>
ELSIF @ < >
THEN ELSE L8I 2 8I6 > 0 >R< DF254 END
> \ OF8I4R4 DF2 B '~\ 8I4R4 DF2
CASE
~
'
54 @ DF2 < B '~\ 8I4Q54 @ DF2 < THEN 8I 6 0 8I6 > DF0 25>R4 < DF254
EITHER
~
'
\
I
8
R
4
5@ 8I6 0< DF254 5@ < THEN > >R< OR
> >R< END
ELSE
END
K8 0 @ 0 > 8IE @ 8I6 > 0 >R< DF2 8I6 > 0 >R< DF2
SETS
VARIABLES
INVARIANT
@ INITIALISATION OPERATIONS END
L8I2 > REFINES L8I2 >
 D@ 4
REFINMENT
7 6 >R< DF2
8I6 > 0 >R< DF2=4
u8 *X28…4ADF2 034L 8Uw=2 4ML5032=4:698 8 0 0 8 0 4MT?8b4ADF2 L5032=4MT?8I4
0325289\H8I 4• L5E P 032K> E8IT1L 8 @K8UG N 8 G @ 8I25698 >L5ETV032 FG038x< l Cj‰3D74A8I>A6 > >R< DF2v@ l‚PW fP W—‹ <?@8 > P l‚W f< W-tW * > +* Ž8I4 >
TdcjD {8 G @ 0 > 8IE @ c c5L5032=4vT?8I4 P 036-; < 28I4v8 > E52•L8I4pD {8 G @ 0 > 8IE @ 4Jc c5DFESc?c5L5032=4vT?8I4 @ 028 P 8I2 > 4UW
*
!
7 .0!# @/! /9 , /, .*
%'
.*:%
0
@ !#"$
/103254M698 >A> 8…4A8I6 >R< DF2lB~2DFE54J89\ T < 6 <?> DF254[T?8I4 5@Q< 2=6 < 8I4 8IG 2 8 G @ 03EH\ E >R< T < 4 8IG 4 DFE @ Tdcj89\ >A@ 036 >R< DF2 L8
4 {8IG 6 < wr6U0 >R< DF254 l–8I2 L < 0 @ 0 P:P 8I4xLlc 8 G > 0 > 4 n >A@ 032=4 <?>R< DF2542D > 0 PP 8I2 > T?8IE @ 4 >A@ E56 > E @ 83W'254RE <?> 82DFE54
L 8UG w=2 < 4R4ADF254T?8I4 =@Q< 256 < 8I4 LCcj89\ >A@ 036 >R< DF2L58I4 4QEk=4 >R<?> E >R< DF254UWF|’8I4 4QEk=4 >R<?> E >R< DF254 L5ETV032 F038Hl + 0 @ 0yn
@ 0 ;58x‘KW—KW 0'/v4ADF2 > 0 @Q> 0 8UG 8I4‚8I2…L58IEH\ @ DFE 8I4sL < 4 >R< 2=6 > 4
TV8I4v4REk=4 >R<?> E >R< DF254{4 <iP T?8I4UB
TV8I4v4REk=4 >R<?> E >R< DF254{L8769D P DF4 <?>R< DF2lW
'h2 @ 8 ƒ FTV8 8IG 2 8 G @ 03T?83B TV8I44REk=4 >R<V> E >R< DF254‚4 <VP T?8I4XL 8UG wr2 < 4R4A8I2 > Tdc 8 G > 0 > 6 < k=TV8L58Ti0DFE]L8I4 >A@ 03254 <V>R< DF2 +q4 /
>T?8I03425FL 0 < 4 L^ 8IE4 8JDFT?EŽ8I4v69DF4RE25krL 4 >R<?DF> E 25>R4h< DF4A8I2=TV4 DF2L587T?8 69D P 8‚DFL54 <?8 >R< DF2•0325w54 \K8I2 DF> 2lWKTdc /‚8 G > 030 2=> 4 4R69DF81E @ 6Q69;=8x0 L87Ti8‚0DFDF2EbE L8I4 T 4A>A8@ 0307254 T?8I<?>R4< DFYy20 +q4 0f/ k=T?08I@4
8 > @ 8 > T?8I4pYf03T?8IE @ <?4 >R< ^ Elcj8ITVTV8I4 DFE @R>`@ _ DF2 > 5@ 8I>A25@ L @ 8 <?@>R8I< 4 8I6 >R< Y38 P 8I2 > =<?>A@ :>R<8 >< @ @Q < 5W
!
*
.
@ !
!
.
MACHINE M1
VARIABLES x,y
...
END
ŠKW /‚8I4sYy0 @Q< 0fk=T?8I4
 D 8 T~8I4 8I6 8I6 8IL8 8I2 T?8 256 03T 8IT 8 8I2 L8TV0 8 ;5DKL81l–8I4 TV0 036Q; 28
0fk=4 >A@ 0 <?P> 83P W~{8I< TVT?89n`6>]< G 8I4 @Q>x<?> >A@ 503@KL5G E <?G > 8 P:0 P @ E52]> 4QE =8@Q@< n 8 G > < 0 >^ EG < G P 5@ 8I25> L TV82D PP G >L8698 >A> 8 P 03> 6-; < 2P 83W /103< 254
Tdcj89\H8 P T?8Ž4RE < Yy032 > B~TV0 P 036Q; < 258 +Ow SŠKW /M4A8•2D P:P 8 M1 8 > T?8•4RE 8 @ n 8 G > 0 >M@K8IG 4RE5T > 032 > L8•4ADF2 89\Kn
>A{@ ;50360 >R< EDF82*Yy+O0 w 0fŠKk=W—T?‘'8/ 695D @ 8I8I254 L•DFT?8 25LJP 8I8
TVP T?88x032E=D 4R4P W0‚ƒ 'E=252J4R4RE E <V> 8‚8 DFn 2b8 00 DFWeE  > D8[L8I4p8 Yf0 DF@Q<E 0fk=T?TV8I8I4 4x0:ƒ 03TV6Q0 ; P 2038I6-4}; 69< 8p2824RE +Ow 8 n ŠK8 W 0 /-W
^ @Q< @Q@
<
@ G > > PP @ P <
@ G> >
5L 8U@ 8Iw=2=2 Lb28 T?8[+Ow 2D ŠKP W—'‘ L/-W 8JTV0Yf0 @Q< 0fk=T?83W T’8I4 >< 254 8 G @H8G L503254‚T?84RE 8 @ n 8 G > 0 > L8JTV0 P 036Q; < 28[DlE„ƒ TV0Yf0 @Q< 0fk=T?8x8I4 >
G <
6
M1
y
x
KŠ W—‘ ~\ >A@ 036 >R< DF2bL8I4pYf0 @Q< 0fk=T?8I4
'2w=2 T NO03E 8 TV8I4Yy0 0fk=T?8I4ML8•TV0S4 8I6 w=6U0 DF2lW D 8•2DFE54MTdcm0ZY3DF254L 8Uw=2 L=03254MTV0
4A8I6 >R< DF2 ŠKW—K< B’DF2 >M258>`_ 69DF25@ 4 < Ll8ƒ @ 8 ^ @QE5< 8:T?8I4Yf0 @Q< 0fk=T?8I{4 G >z<_ {8UG 8I>R4…< 0…ƒ T†cm0 < LP8MP Llcj8I254A8 P k=T?8I4 8IG 2tE P 8 G G @H8IG 4I<W TV44ADF2 >
L 8UG w=2 < 4 0 @ TV0M6UTV03E=4A8 SETS +Ow ŠKW—' /-W 12 >`_ 878I254RE <V> 81TV8I4pYy0 @-< 0fk=T?8I4 0 @ TV0M6UTV03E54A8 INVARIANT W
|’0:Yy0 @Q< 0fk=T?8 x 8I4 >v>`_ {8UG 8…0 ƒ 0 @R>R<?@ L587Tdcj8I254A8 P k=T?8 8IG 2KE Pu8 G @K8 G X W
0 @ 0 P:P 8[Llc 8 G > 0 > 4 n >A@ 03254 <V>R< DF254UB™DF2 >A@ 03L5E <?> T?8 >z_ 0 38L58[TV0Yy0 @-< 0fk=T?8 x 0 @ T?8
E„2 < Y38I03E„L=E„L < Nq0 <?>h^ E8 x 8IE > =@ 8I25L @ 8 > DFE > 8I4T?8I4hYy03TV8IE @ 4h69D P 5@Q< 4A8I4hL503254hT†cj8I254A8 P k=T?8 X W H036Q;5032 >^ ElcmE5258vYy03TV8IE @
6 ('
I‹
7 MACHINE M1
SETS X= vx ,...,vx VARIABLES x
INVARIANT x @ X
...
END
KŠ W— ‡‚287Yf0 @Q< 0fk=T?8 >z_ {8UG 8•0:ƒ Tdcm0 < L87LCcmE52Ž8I254A8 P k=T?8 8IG 2KE Pu8 G @K8 G
L8‚Yy0 @-< 0fk=T?8‚69D @R@ 8I4 DF25LS0ƒ E52 8 G > 0 > L=EL < 0 @ 0 P:P 81Llc 8 G > 0 > 4 n >A@ 03254 <?>R< DF254pDF2Ž6 @H8UG 87E52 8 G > 0 > 0 @ Yf03T?8IE @
+Ow ŠKWj˜ /-W
vx , ..., vx
6 M1
x
VX1
ŠKWj˜ ('~\ A> @ 036 >R< DF2bLlcmE528Yf0 @Q< 0fk=TV8 >z_ {U8 G 8•0:ƒ Tdcm0 < L581LCcmE52•8I254A8 P =k T?8 8IG 2KE P 8 G @H8 G
6
VXN
...
7
!
!2"5 ! <
'(2
/103254 698 84A8I6 DF27DF2769DF254 L 8 8 0vE528 4R8IE5T?8}Yy0 0fk=T?83WI|’8I4C4REk=4 >R<?> E >R< DF254™4 <iP T?8I4™28 L 8 G > 8 @QP< 28I2 >
E^ 87Tdc 8 G > 0 > 6 >A< k=> T?83W|C>R8I< 4v4QEk=4 >R<?> E >R< < DF25G @ 4{@4 <VP T?8I4{4ADF2 > @-<
L8I2
8
/‚8UY < >R8I<?2 >t>vG > 8IT ^ E8 +(/
/‚8UY < 8I2 >Ž8IG T 8 G P 8I2 > L8 @
/‚8UY 8I2 8 F03T’4 T?8‚8 E5T TV8
|C8I44RE5k=4 >R<?< > E >R>Ž< DFG 254 <i P >s P >R < ! ! # * # 8 > *
4Ucj89\ 8I2 4RE Yy032 TV0 0 0 8JL 8Uw=2 8 8I6 8IL8 8I2 WC/103254‚T?8I4 8ƒ FTV8I4‚L 8Uwr2 4R4R032
69# 8I4h4QEk=4 >R<?> E >R=< DF@Q25<VP 4}0 > 0 @ 0 < > E5>28{89\ =@ @ 8IP:4R4P < DF2 <?@ ^ Elc < G THNq03<E > 5< 2 @H> G 8 @ G 5@H8 P:G > 8 P @ DF> E @ 69DF25250 >A@ @ 8vT?8pDFE:T?8IG 4 8 G <> 0 > +q4 />
6 < k=TV8 +q4 /J69D @R@ 8I4 DF25L5032 > +q4 /•0Sƒ Tdcj89\ >A@ 036 >R< DF2 L8…TV0a4REk=4 >R<?> E >R< DF2lW}| c < 2 > 8 @ =@K8 G > 0 >R< DF2 L8I489\ 5@ 8I4R4 < DF254
E >R< T < 4 8UG 8I4 0 @ # 8 > ! 8IE > Nq0 <?@ 8„0 0 @ 0 >A@ 8 TVE54 < 8IE @ 4[Yy03TV8IE @ 4
>E5032258L 4A< 48IE5^ TVE8x8:Yf0369T?8I8ITiET?8:W LK88II47T?DF89\2a5T?@ 8I8IE 4Q4 < 4DF8 25403E 2 >R< T < 4 E8UG 88I4 + 0f0 k=@ T?8I 03ES ‘K W—'‘ / T 89* \ 4 #8 "D 84X> 6U0# 8 3 D 8I 4 Nq0 <?0 > 0 0 0 @ D 0 >A@ 08ƒ
< < > >A@ < >KG @Q< @1@ @R>
T?8IE @ 4{8 8 > 4X4RE @ @Tdc 8 G > 0 > L5E•4 _ 4@ > 8ƒ P G P 83W >R<V^ >
fWs‡‚28 =@ 8 P:< 8ƒ @ 8:6U0 >K8 G 3D @Q< 8Ž69D P DF4 8UG 8L58:TV0•4REk=4 >R<?> E >R< DF2 2Ccm0…03E56UE52a8 8 > 4RE @ Tdc 8 G > 0 >
L=EM4 _ 4 > 8ƒ P 83W 8IG 032 P D < 254~8ITiT?8p69D @R@ 8I4 DF25Lb0ƒ E5258 >A@ 03254 <?>R< DF2lW 'TVT?8p4A8 @ 0L5DF256 >A@ 03L5E <V> 8 0 @ E528
>A@ 03254 <?>R< DF2 @H8 G =89\ < Y38J4RE @ Tdc 8 G > 0 > 69DFE @ 032 > L5E…4 _ 4 > 8ƒ P 8 +Ow ŠKW 0'/-W
‘KWs‡‚28aL8IEH\ < 8ƒ P 8„6U0 >K8 G 3D @Q< 8S8I4 > 69D P DF4 8UG 8SL8I44REkr4 >R<?> E >R< DF2=4:2DF2L 8 G > 8 @QP:< 2 < 4 > 8I4 > 8ITVTV8I4 ^ E8
8ITiT?8I4v 4A DF 2 > !2DF2• L 88 G >> 8 @QP < 2 < 4 > 8I!4I WŒ!  # 8I 4v 4R E5k= 4 W’>R<?|’> E8>R2< DFD 25P 4{k E @ >R8:< T Ll< 4Rc 8I8 G 2 > >0 > L48I64p< k=89\ TV8I541@ 8I8I4R4 4 > < DF4R25E 4 8 G @Q< 8IE @ 0…ƒ E=2 6U0 @
x :(Expression)
x : @ Expression
7 7 7 -
Etat courant
KŠ W '~\ >A@ 036 >R< DF2„L87TV0M4RE5k=4 >R<?> E >R< DF2 |hc < 2 > 8 @ 5@H8 G > 0 >R< DF2aL8698I 4‚89\ 5@ 8I4R4 < DF254 8IE > LDF25258 @ TiE54 < 8IE @ 4{Yy03T?8IE @ 4UW 2b69DF254 < L 8 G @ 8 @ 0Tdcj8I2Hn
4R8 P k=TV8 L8I4 8 G > 0 > 4 VX1, ..., VXN >A@ 03L=E <?> 4€L8I4€Yy03T?8IE @ 4 @H8IG 4QE5T > 032 > 8I4SL8 T†c < 2Hn
>LC8 c @8 50 @K8 G 41> 0 L>R8< DF2lWv 8I44Q8IE25 k=034 2 >R<?> E >RDF< E DF254D 4ADF 2 2>8>ATd@ c 038 L50 E <?> 698IDF4E +Ow03u2 ŠKW W—‹'/ 0 @ 03E > 032 > L8 >A@ 03254 <?>R< DF254 ^ E8
G > > =@ > @ @Q< < G > > @ >
6 0
# *
*
(
(
VX1
...
Etat courant
VXN
ŠKW—‹ \ >A@ 036 >R< DF2bL8I4v4QEk=4 >R<?> E >R< DF254{4 <VP T?8I4{2DF2…L 8 G > 8 @QP:< 2 < 4 > 8I4
KW '2w=2STV0•L58 @ 2 < 8ƒ @ 8:6U0 >K8G 3D @Q< 8 ^ E < 69D @R@ 8I4 DF25LS03E\a4RE5k=4 >R<?> E >R< DF25414 <VP TV8I4‚L 8 G > 8 @-P:< 2 < 4 > 8I418I4 >
69D P DF4 8UG 8:L58I4‚4QEk=4 >R<?> E >R< DF254 * # " 8 > * # " Wl|’0L < sG8 @ 8I25698
8I2 >A@ 8p698I4~L8IEH\x4QEk=4 >R<?> E >R< DF254C8I4 > TV82D P k @ 8{L8 Yy0 @Q< 0fk=T?8I4 P DKL < w 8UG 8I4UW 'h2J8 8 > TV0‚4REk=4 >R<?> E >R< DF2
* # 8 8I6 > E8 TVE=4 < 8IE @ 4Œ4REkr4 >R<?> E >R< DF2=4 * # 4 <VP E5T > 032 8 G P 8I2 > W
/103254698 >A> 8X6U0 >K8 G 3D @Q< 81Tdc 8 G > 0 > 6 < k=T?8pL8vTV0 >A@ 03254 <?>R< DF28I4 > 6UTV0 <?@ 8 P 8I2 > L 8UG wr2 < 6U0 @ Tdc < 2 > 8 @ =@K8 G > 0 >R< DF2
L58I4p89\ =@ 8I4R4 < DF2=4pLDF25287E52 @H8IG 4QE5T > 0 > 28J69D P 5@ 8I25032 >v^ ElcmE52874A8IE=T?8Yy03TV8IE @
x := Expression
|hcj89x,\ >Ay@ 03:=6 >RExpression,
DF2 L8…698I4Expression
4REk=4 >R<?> E >R< DF254[8I4 >@K8IG 03T < 4 8UG 8„L58…TV0 P 032 < 8ƒ @ 8…4QE < Yf032 > 83Wh| 0S4REk=4 >R<?> E >R< DF2
<
* # +Ow •ŠKW -/18I4 >>A@ 03L5E <V> 8 0 @ E528 >A@ 03254 <?>R< DF2 0 @R> 032 > L58:Tdc 8 G > 0 > 69DFE @ 032 > B
8 >•^ E < 4R8aL <?@Q< 38…Y38 @ 4E=2 8 > E524A8IE5T 8 G > 0 > 6 < k=T?83B < 6 < VX1B 6U0 @ 8ITVT?8b8I4 > L 8 G > 8 @-P:< 2 < 4 > 83W | 0
4QEk=4 >R<?> E >R< DF2 * # 8 8I6 > E8 TVE54 < 8IE @ 474QEk=4 >R<?> E >R< DF254 * # "
4 <VP E=T > 032 8UG 8I4pLDF25614ADF289\ >A@ 036 >R< DF2•NO8 @ 00 0 @ 0 >A@ 8‚03E > 032 > L8‚NOD < 4 ^ E82 8IG 698I4R4Q0 <?@ 87T?814R6Q; 8 G P 0
L58sTdcj89\ 036 DF2L8sTV074QEk=4 E DF2 * 0 4 DFE L 8 8I2 8I4hYf0 0fk=TV8I4 6U0 @
8ITiT?872lcm03>AE @ > D >R@Q<< 4A8 034vTdcm0 8I6 > >R0 <?> >R< DF>R2„< L8xTV0 P 8
P 8xYy0 @Q< 0f# k=T?8 " P TVE54 < < 8IE @ 4N @ D < 4U< W sG @ > @Q<
6 ('
Etat courant
VX1
ŠKW ' \ A> @ 036 >R< DF2bL87TV0M4QEk=4 >R<?> E >R< DF2 6 -
* # . '! !2*=( !2*4 !#"$ " /, .*4 !#"$ &/, 1 , < 5
|hc 2 03T 4R0 DF28I4 E5287D 8 0 DF2 0 6UE5T 8ƒ 8 E 8I4 Ti0 8 8ƒ 8789\ 8I6UE 8U83W '2l‚BrT†c 2 0yn
T < 4Q0 >R< DF< 2Ž<?8 >R>< T?8I< 4pD >R<{8 G @ 0 >R< > DF254‚4ADF2 {>XG P @ DK>R<L 8IG T < 4 8UG 8I@R4v>R<8I2„E < >R@< T < 4Q^ 032 <> T?8I>4v4QEk=54 @ >R<?P:> E < >R< @ DF254 G 8IG 2 8 G>K@ G 03T < 4 8UG 8I4UW DFE < > 8U<?NO>RD < < 4
T 89\ 4 8•E528ŽL 8 8I25698•8I2+698 E 69DF25698 28…T?8I44RE5k=4 E DF254J69DF2=L DF25258ITVT?8I4x69DF2=698 25032 E528
Yf< 03T?8IE < @ > L8‚Yy0 @Q< 0fk=< sGT?83@W 'h28 8 > E=28‚^ 69<DF2=L <?>R< DF@24A8L 8 G > 8 @QP:< >R25<?8> >R0< @ @ 0 D @R> <?>R0ƒ< TV0[Yf03T?8IE @ LlcmE52@ 8‚Yy0 @-> < 0fk=T?8
D @ 0IYf032 > Tdc < 2 <?>R< 03T < 4Q0 >R< DF2ŽTV0MYf03T?8IE @ L58I4sYf0 @Q< 0fk=TV8I4s2lcj8I4 > 034‚L 8UG w=2 < 8[LDF2567DF2€28 8IE > 034‚0IY3D <?@ 698
IŠ
7 38I2 @ 8L8[4REk=4 >R<V> E >R< DF2u0
ƒ Tdc 2 03T 4R0 DF28I2€E T 4R032 TdcjD 8 0 8IE c c?WC 8 8I25L5032 T?8IE E T 4R0 DF2
8I4 > DF4Q4 < k=T?88I2€E >R< T < 4R032 > T?8 < <V>R < < >R< # C89\ >R5< @Q< <VP 8•G > 0ƒ Tdcm{0 <G L5@ 8x> L8J@ T†cjD 8 G @ 0 > 8IE @ c?c?B > P 0 < 4X@ T?8I>R4s< Yy< 03TV8I>RE< @ 4
L8I4Yy0 0fk=T?8I4X0[ƒ TV0wr2L8‚Tdc 2 03T 4R0 DF24A8 DF2 DFE DFE 4hT?8I4 8
8I4{6U0 Tdcm0 8I6 0 DF24R8 0 8I03T 4 8U8
8I2…NODF25@-6 < >R< DF2bL8xTV0MYf03T?8IE @ Ll< cmE5<?2>R< 8Yf< 0 @Q>R< 0f< k=TV8 ^ @ E < 4R>8 >@ 0 > DFE AD@ FE @ 4vTiP 0 P P 8
P 83W @2 8IE > >sP>R< 8 >A>A@ 8 @ > DFE@H>sG >z<_ G 8
L8:4RE5k=4 >R<?> E >R< DF2€L=03254T?8I4D {8 G @ 0 >R< DF25474 < T†cmE >R< T < 4Q0 >R< DF2b8I4 > 03E > D @Q< 4 8UG 8 0 @@ 0 D @R> 03EH\ @ 8I4 >A@Q< 6 >R< DF254
L5E8I4s03E >`_ 87L8x69D P DF4R032 > l + MACHINE DFE REFINEMENT/-W
état
cible
Nom de l'opération
ou de l'événement
état
source
état
cible
Evénement et
Opération
Initialisation
ŠKW—Š g @Q< 256 < 8 8IG 2 8 G @ 03T}L87Tdcj89\ >A@ 036 >R< DF2
‡‚28 03254 DF2 0 LlcmE52 8 0 4ADFE 698 Y38 4}E52 8 0 6 k=T?83WZ|hc 8 0 4ADFE 6988I4 L 8Uw=2 0 Ti0vYf03T?8IE
L8vTV01Yf0 @Q>A< @0fkrT?8p<?0I>R<Yf032 > T†cj@R89> \ 8IG 6UE >R< DFG >2>L8vTdcjD @ {8 G @ 0 >R@< DF2MDFE:G > L8v> Tdc 8U< G Y 8IG 28 P G 8I> 2 > > W Yy03@ 2 > Tdc < > 2 <?>RG< 03T < 4R< 0 >R< DF@ 2x03E=6UE528@
Yf03T?8IE @ L8Yf0 @Q< 0fk=T?8M2lcj8I4 > L 8UG w=2 < 83Wl| c < 2 <?>R< 03T < 4R0 >R< DF2…8I4 >7@ 8 5@H8IG 4A8I2 >t8UG 8 0 @ E=2SL < 4 ^ E82D <?@ T?8 < 2CB ^ E <
@T?8I8 4 5@H8 8IG 4R0 8I2 4 > 8•E Tdc 8 G4R> DF0 2 > 6969DFDFE 25@ 69038 2 >2 B~8I44RE < Y0 < LlTdc cmE54R4R25E8 81lL8Iƒ 876Q;Tdc 8 2 +Ow S03T ŠK4QW—0 Š'/ DF^ 2:E 4A< DF4A2 8L L <?8U@Qw=< 32 84 Y38 @0 4E5TV02 DF8 GE•> 0 T?8I> 4{6 Yf< k=03TVT?838IEW’|C4 8DFEE 8
85@ I2=G > L> Ti0J^Yf0 @Q< < 0fkrT?8‚> L=EL < 0@ @ G 0 P:P @ 8Ll< c 8 G > 0 > 4 n >A@ 0325< 4 <?<?>R>R< < DF2=< 4v4A>R8I< T?DF2 ^ E>8TV0G 4RE<k=4 >R<?> @E >R< DF28I4 > L 8 G > 8 @QP:@ < 2 ^< 4 > 8
DFE…2DF2CW
|’8I4 8UY 8I258 8I2 4‚8 T?8I4pD 8 0 DF2=4X4ADF2 8 8I4A8I2 8I4 0 E528 C8Iƒ 6Q;5,8 + 032=4 DF2 / +Ow ŠKW—'Š / E
0 @R> L8G T†c 8 G G > 0 > P 4ADFE > @ 698 > +OYf03T?8IE {@ G @ L8>R< Ti0…Yf0 @Q< 0f>vk=T?@ 8=0I@KYfG032 > >K4AGDF2u89\ @ 8IG 6UE >R< DF2 /78 >^ >AE@ < 4A8<?>RL< <?@Q< 38:Y38 @ 4[Tdc 8 G ^ > 0 > <
6 < k=TV8 +OYy03TV8IE @ L58XTV0xYy0 @Q< 0fk=T?8X0 =@ 8Iƒ 4 4RDF289\ 8IG 6UE >R< DF2 /-W= 8 >A> 8 C8Iƒ 6Q;58 =@ 8I25LTV8X2D P L8XT†c 8UG Y 8IG 28 P 8I2 > DFE
L87TdcjD {8 G @ 0 >R< DF2b03E ^ E8IT™8ITVTV874A8 @ 0 D @R> 83W
6 7
!
!2"5 %'A@ "$<
"$! !#"$
/103254X698 >A> 8J4A8I6 >R< DF2CB=DF2…E >R< T < 4A8 @ 0TV0M4QEk=4 >R<?> E >R< DF2Ž4 <VP TV8 * # " DFE @ 4 <iP T < w=8 @
T?8I4 @ 8ƒ FT?8I4pL8 5@ DHL5E56 >R< DF2L8‚Ti0 >A@ 03L5E=6 >R< DF2lW Tr8I4 > 2 8IG 032 P D < 254 DF4R4 < krT?8vLlcmE >R< T < 4A8 @ 2lc <iP D @R> 8 ^ E8ITVT?8
4REkr4 >R<?> E >R< DF24 <iP T?83W3|C8I4 @ 8ƒ FT?8I4hL58 5@ DHL5E56 >R< DF24A8 @ DF2 > P DKL < w 8UG 8I4 L8 P 032 < 8ƒ @ 8[0 ƒ @ 8 P TV03698 @ TV0x4A8IE5T?8
>A0:ƒ @ 03TV0 254 <?>R03< DFL52E56 L8‚DFTi2•0[L4QE8Jk=TV0M4 >R<?4R> EE k=>R4 < DF2 E DF2Ž E T 4 8U* 83W # " 0 @ TV0xDFE•TV8I4 >A@ 03254 <?>R< DF2+q4 /~69D @R@ 8I4 DF25L5032 > 8+q4 /
>A@ >R<
>R<?> >R< >R< < G
"
(
'&(" '&( | 0:4REk=4 >R<?> E >R< DF2 s4Ucj89\ 8IG 6UE > 84R03254v03E56UE=28769DF25L <?>R< DF2 O+ w ŠKW—‰'/-W
OP (
BEGIN x := vx END
ŠKW—‰ |’0M4RE5k=4 >R<?> E >R< DF2 |hcj89\ 036 FD 2 Nq0 0 0 0 8…E528 03254 DF2+L58 E 4M6-;50 E58 8 0 L58…TV0aYy0 0fk=T?83B 6U0 698 8
4REkr4 >R<?> E >A>R@ < DF2>R2< 8 DF4Q<?49> 8Iƒ L8s03E5@ 6UE525>A@ 8 @ 8I4 >A@Q< 6 >A>R@ < DF2lB3<?>R8 < > L <V@Q< 8UG 8v<Y38 @ 4Tdc ^8 G > 0 >^ G > E < > 69D @R@ 8I4 DF2=@-Lb< 07ƒ TV0Yf03T?8I@ E @ vx>A>
+Ow ŠKW /-W
6 (
7 7 ...
VX1
I‰
7
...
VXI
OP
VXN
OP
OP
ŠKW ('~\ A> @ 036 >R< DF2bL8xTV0M4RE5k=4 >R<?> E >R< DF2
OP
6
OP
| 0M4REk=4 E DF2 E T 4A81E52 8IL 6U0 69D 8x69DF25L <?>R< DF2•Llcj89\ 8IG 6UE >R< DF2 +Ow ŠKW /-W <
698 5@H8IG L < 6U0 > >R8I<V4> > >RNq<03EH\™B503 E5 6UE5287036 >R>R< < DF< 2b2lcj8I4 5> @H89G \ 8IG< 6UE >>K8UG P83W P:P
OP SELECT P THEN x := vx END
6 ŠKW | 0M4REk=4 >R<?> E >R< DF2 ! " ' > 032 > LDF252 8 G ^ E8‚T†cjDF228169DF25250 > 034{TV0J250 > E @ 81L5E 5@K8IG L < 6U0 > P DF2ŽT?8XNO0 <?> 0 0 @ 0 >A@ 8XL=03254TV8I4
(
"
'&(" '&( (
8 G >R<V^ E8 >A> 8I4XL58 >A@ 03254 <?>R< DF2•L87Tdcj89\ >A@ 036 >R< DF2 0 @ OP[P] +Ow ŠKW I‘'/-W
...
VX1
...
VXI
OP[P]
VXN
OP[P]
OP[P]
ŠKW I‘('~\ >A@ 036 >R< DF2bL8xTV0M4RE5k=4 >R<?> E >R< DF2 |’8I4vk @ 032=6Q;8I4 WHEN ... THEN 4ADF2 >v>A@ 03L5E <?> 8I4 0 @ E5258 >A@ 03254 <?>R< DF2•4RE T 8 G P 8I2 > 0 <?@ 83W
OP[P]
OP[P]
6
*)
!"#$ | 0b4REkr4 E DF2 SE T 4A8:E52 8IL 6U0 0 8IT 8 89n`69DF25L DF2CW’/103254JTV86U034JDFE
698 >A> 8 =@K89G n`69DF25>R<?L > <?>R>R< <DF278I4 > Y @ 0 < 8 TV0p4RE5k=4 >R>R<?< > E < >R< DF2X8I4 5> @K89G \ 8IG< 6UE >>K8UG P8%ZL5032=4lT?G 8 =6U@K03G4’69DF2 >A@ <?0>R<<?@ 8 +qTV0 5@H89G n`69DF25L <V>R< DF2
2D >K8UG 8 P 2lcj8I4 > 034vY @ 0 < 88 > L8UY < 8I2 > P/DF2…28J69DF25250 > 034sT?8 @K8IG 4RE5T > 0 > L87TdcjD {8 G @ 0 >R< DF2 +Ow ŠKW I'/-W
h' TiT?818I4 >s< 25L 8UG wr2 < 8 P 0 < 4{8ITVTV88I4 > 89\ 8IG 6UE >t8UG 83W
OP PRE P THEN x := vx END
6 ŠKW I|’0M4RE5k=4 >R<?> E >R< DF2 (
"
'&(" '&( 4
(
|hcj89\ >A@ 036 >R< DF2 Nq0 <?> 0 0 @ 0 >A@ 8•T?8 5@Q< 2=6 < 86 <?>K8…G 8I2 L 8UG krE > L8 0 @ 0 @ 0 ;83W /103254:T?8…6U034DFE P
8I4 > Y @ 0 < 8JTV8I4 >A@ 03254 <?>R< DF2=4s4ADF2 >b8 G >R<i^ E8 >K8UG 8I4 0 @ OP[P] 8 > 0ƒ T†c < 2eY38 @ 4A8 0 @ OP[ P] +Ow •ŠKW 9˜ /-WCg DFE @
03E P 8I2 > 8 @ TV0€T < 4 < k < T <V>t8:G L58ŽTi0bw FE @ 8ŽŠKW 9˜B TV8I4M4A8IE5T?8I4 >A@ 03254 <V>R< DF254 @ 8 5@H8IG 4A8I2 >t8UG 8I44ADF2 > 698ITVT?8I4[8I2 >A@ 8
T?8I4 8 0 4xY < 4 < k=T?8I4 ^ E < 4RDF2 > VX1, VXI 8 > VXN W™|’8I4 8 G > 0 > 4 @ 8 =@K8IG 4A8I2 >K8IG 4 0 @ W?W?WlDF2 > E528 >A@ 03254 <V>R< DF2
8 G >R<V^ EG > 8 >t> 8UG 8 OP[P]
L 8U8Y38 4 8 L8I4 03254 DF254 8 E8 8U8I4
Y38 4 DFE54T?8I4 8 G > 0 > 4xL=E
L < 0 @ 0 P:P 83W <?@Q< G @ VXI > >A@ <?>R< G >R<V^ >tG OP[ P] @ >
4
4
'&
)(+* ',.- / | 0:4REk=4 >R<?> E >R< DF210 2 8I4 > 25DF2…L 8 G > 8 @QP:< 2 < 4 > 82+Ow ŠKW 0'/-W
"
(
'&(" '&( !
I‘
7 OP[¬P]
OP[¬P]
OP[¬P]
OP[¬P]
OP[¬P]
OP[¬P]
OP[¬P]
OP[¬P]
VX1
...
...
VXI
OP[P]
VXN
OP[P]
OP[P]
ŠKW 9˜ (' \ A> @ 036 >R< DF2bL87Ti0M4REk=4 >R<V> E >R< DF2 OP[P]
OP[P]
OP
6
(
CHOICE x := vx ... OR x := vx END
KŠ W 0|’0:4QEk=4 >R<?> E >R< DF210 |hcj89\ >A@ 036 >R< DF2bNq0 <?> 0 0 @ 0 >A@ 87L58IEH\ @ DFE 8I4sL < 4 >R< 256 > 4vL58 >A@ 03254 <V>R< DF254UB5698ITVTV8I4 < 4R4QE8I4vL8x6-;50 ^ E8
8 G > 0 > 8 >J^ E < 69DF2tY38 @ 38I2 > Y38 @ 4[Tdc 8 G > 0 > VXI 8 > 698ITVTV8I4xY38 @ 4 VXJ +Ow €ŠKW I‹'/-W! Th89\ < 4 > 8L8I4 >A@ 03254 <?>R< DF2=4
<ŠK4RW 4QIE‹ 8I47TVLE58I4{4 T 8 G4 > 0k=> T?834 W @ 8 =@K8IG 4A8I2 >K8IG 4 0 @ W?W?W P 0 < 478ITVT?8I47284ADF2 > 034 @ 8 =@K8IG 4A8I2 >K8UG 8I4 DFE @7@ 8I25L @ 8:TV0…w FE @ 8
<<
6
!
OP
OP
OP
OP
...
VX1
VXI
...
VXJ
...
VXN
OP
OP
OP
ŠKW I‹ ~' \ A> @ 036 >R< DF2…L87Ti0M4REk=4 >R<V> E >R< DF210 OP
6
"
(
!
2
)( !"# '&(" '&( TV0{L 8 8I25698hL58 TV0p4REk=4 E DF2 XTV0p4QEk=4 E DF2 0 DZY3D E8 E=28~89\ 8I6UE DF2
5L 03254 > DFE54< sGTV8I4@ 6U034UWl|CD @ 4 ^ E8MT?>R8 <?> 5@H>R8I<G L < 6U0 > !"P 8I4 > Nq03EH\€03T?D>R<?@ > 4‚>RTi0< k @ 03256Q;58 ELSE5@ 8I4 > ^ 89\ 8IG 6UE >t8UG 83W G < 8I>R<TVTV8
2lcj8I4 > 0347L 8UG w=2 < 8+Ow „ŠKW -/E=28Mk @ 03256-;8 ELSE <VP T < 6 <?> 8[8I4 > 89\ 8IG 6UE >t8UG 8•69D P:P 8L5032=47T?8 > 0fk=T?8I03E
ŠKW 74A8ITVDF2C ˜eŠD†W
HEkr4 >R<?> E >R< DF12 0 HEk=4 >R<?> E >R< DF2 ! " IF P THEN S END
76
OP
SELECT P THEN S
4
WHEN P THEN Skip END
ŠKW (' \ >A@ 036 >R< DF2…L8xTi0M4REk=4 >R<V> E >R< DF210 S0Mƒ T†cm0 < L87L8 ! " (
IF P THEN x := vx END
ŠKW -| 0M4REk=4 >R<V> E >R< DF210 |hcj89\ >A@ 036 >R< DF2 +Ow JŠKW IŠ'/ P 8 > 8I2 8UG Y < L8I2=698vL8IEH\. @ DFE 8I4 L8 >A@ 032=4 <?>R< DF254IBfTV8I4 >A@ 03254 <V>R< DF254}69DF2eY38 @ n
38I032 > 4RE @ Tdc 8 G > 0 >
8 E8 >t8UG 8I4 0 @ OP[P] 8 > TV81 @ DFE 8sL8I4 >A@ 03254 <?>R< DF254 @H8 G =89\ < Y38I4 8 G >R<V^ E8 >t8UG 8I4 0 @
VXI G >R<V^
03L5E <?> 8I4vL87TV0k @ 03256Q;58 ELSE <VP T < 6 <?> 83W
OP[ P] >A@
6
4
7 7 I‘
7
OP[¬P]
OP[¬P]
OP[¬P]
...
VX1
...
VXI
VXN
OP[P]
KŠ W IŠ('~\ >A@ 036 >R< DF2„L87TV0M4REkr4 >R<?> E >R< DF210 |hcj89\ 036 DF2:L8vTV0‚k 032=6Q;8 ... THEN NO0 <V> 0 0 @ 0 >A@ 8pE5258 >A@ 03254 <?>R< DF2L8pTV0 P 8
P 8sN D @QP 8
E^ 87698ITVT?8 >A@ >A@ 03>RL=< E <?> 87L8 E @< 4{TV0k @ 03ELSIF
256-;8 IF ... THEN W
OP[P]
6
OP[P]
" ( '&(" '&( )( !"# " | 0:4REk=4 E DF2 0 * * DF4Q498Iƒ L8xT?8I4 8
8I4X6U0 036 8 4 E8I4 E8JTV0M4REk=4 E DF2
0 5B™>R8I<?TV> T?8 >R5< @ DZY3D ^ E8JE5258789 \ 8IG 6UE >R< DF2€L=03254 > DFE54‚P T?8I4‚P 6U034UW'@ TVT?8 >tG 8I@-E < > >R<V8
^ >A@ 8 >A@^ 03L5E <?> 878ITiT?8x>R03<?> E54R>R4 < < 0 ƒ
Tdcm0 < L581L58xTV0M4REkr4 >R<?> E >R< DF2 ! " 69D PP 8xL503254sT?8 > 0fk=T?8I03E„ŠKW—‘KW
HEkr4 >R<?> E >R< DF2 0 * HEk=4 >R<?> E >R< DF2 ! " *
CASE E OF
EITHER LC1 THEN S
OR LC2 THEN T END END
SELECT E LC1 THEN S
WHEN E LC2 THEN T
ELSE Skip END
ŠKW—‘(' \ >A@ 036 >R< DF2…L87TV0M4RE5k=4 >R<?> E >R< DF2 0 * * x0:ƒ Tdcm0 < L8L8 76
OP
CASE E OF
(
EITHER LC1 THEN x := vx
OR LC2 THEN x := vx END END
KŠ W I‰|’0:4QEk=4 >R<?> E >R< DF210 * * |hcj89\ >A@ 036 >R< DF2aNO0 <?> 0 0 @ 0 >A@ 8 >A@ D < 4 @ DFE 8I41L8 >A@ 03254 <?>R< DF254UWr‡‚2 5@ 8 P:< 8 @ @ DFE 8J8I4 >„8 G >R<V^ E8 >t8 G
0 @ OP[P1]
DlE ƒ P1 = E LC1 8 > 69DF2tY38 @ 38€Y38 @ 4Tdc 8 G > 0 > VXI 8 > T?8…L8IE\ < 8ƒ P 8bY38 @ 4 VXJ 8 > 8I4 >
8 G >R<V^ E8 >t8 G 0 @ OP[P2] DlE ƒ P2 = E LC2 W5|C8 >A@ D < 4 < 8ƒ P 8 ^ E <™@H8IG 4RE5T > 8JL87Tdcj89\ >A@ 036 >R< DF2„L8xTV0k @ 03256Q;58
T 6 8 8I2 FT?D3k™8TV8I4 >A@ 03254 <?>R< DF254 8 G >R<i^ E8 >K8UG 8I4 0 @ OP[ P] DlE ƒ P = P1 0 P2 @K8 G 589\ < Y38I474RE @
6Q<VP ;=0 ^ <E8 <?> 8 G > ELSE
0 > L5E•L < 0 @ 0 P:P 28 +OY3D <?@ w FE @ 87ŠKW I'‰ /-W
6
4
"
(
)(+* ', - / '&(" '&( | 0…69DF254 E=6 DF2]4 2 0y\ E8M8 4 8 032 E8L8TV0•4RE5k=4 E DF2 0 2 8I4 0 n
U6 E5T < 8ƒ @ 8 +Ow S>AŠK@ W—‘ >R/-< W 'h2 _ 8 > 8 > <VTd^ cm0 8I6 >> 0 >RG< DFP 2+2l>Rcj<i8I^ 4 > 034 @K8IG 03T < 4 8UG 8u>R<?0€ƒ > Td>Rcm0< < L8LlcmE52889\ 5@ 8I4R4 < DF 2 2 > < LlcmE5@R>R2< 8
Yf03T?8IE @{P 0 < 4 0 @ E52 < L8I2 >R< w=032 > ŒLDF2 > TV0xYy03T?8IE @ vx 8I4 > L 8UG wr2 < 8s8I2NODF256 >R< DF2L5E =@K8IG L < 6U0 >
W 8I4 > E526Q;5D < \2DF2L 8 G > 8 @QP:< 2 < 4 > 8‚8I2 >A@ 8 TiE54 < 8IE @ 4~Yy03TV8IE @ 4 DF4Q4 < k=T?8I4h4A8IT?DF2ŽT?8 5@K8IG L < 6U0 > P W
P vx /103254•Tdcj89\ >A@ 036 >R< DF2 +Ow ŠKW—‘3‘'/-B > 032 >…^ E8€T†cjDF2258€69DF252=0 > 034•TV0u2=0 > E @ 8aL5E 5@K8IG L < 6U0 > P TV8I4
>A@ 03254 <?>R< DF254 4RDF2 >{< 4R4RE58I4 L8 > DFE=4T?8I4 8 G > 0 > 4 8 > L < Y38 @ 38I2 > Y38 @ 4 > DFE54TV8I4 8 G > 0 > 4UW 8IG 032 P D < 254 T?8 =@K8IG L < 6U0 >
!
# I‘3‘
7 OP[¬P]
OP[¬P]
OP[¬P]
OP[P2]
OP[P2]
OP[¬P]
OP[P2]
VX1
...
...
VXI
...
VXI
VXN
OP[P1]
OP[P2]
OP[P1]
OP[P1]
ŠKW—‘ ~' \ A> @ 036 >R< DF2…L8JTV0M4REk=4 >R<?> E >R< DF210 * OP[P1]
OP
6
*
ANY Ident
WHERE P THEN x := Ident END
KŠ W—‘ |’0M4RE5k=4 >R<?> E >R< DF2 0 8I4 E5258169DF2=L DF2 DFE E87TV0 03254 <V>R< DF2•4AD <?> DF4R4 < k=T?8XLCcmE52 8 G > 0 > 0:ƒ E52Ž03E >A@ 83W=g}0 @ 96 DF254 8 G ^ E8I2 >
P >
T?8I4 >A@ 03254 <?>R< DF2=4p4A<?>RDF< 2 >Ž8 G >R<i^ E@p8 ^>K8UG 8I4 0 >A@ @ OP[P]
W
6
!
OP[P]
OP[P]
OP[P]
OP[P]
VXN
OP[P]
OP[P]
...
VXI
OP[P]
VXN
...
OP[P]
OP[P]
6
,+ &
&
ŠKW—‘3‘(' \ >A@ 036 >R< DF2bL87Ti0M4REk=4 >R<V> E >R< DF210 2 (+ ## '& (
! " +
( '&( !
( (&( (
|’8I4pL 0 0 8I4 E81TdcjDF2 8IE 8I2 8 8 0 ƒ 0 L81Tdcj89\ 036 DF2 8I6 8IL8I2 8J4ADF2 69D T?89\H8I4UW
T 8I4 > DF4R< 4 < k=@ T?8xP:L5P8TV8I4‚^ 4 <VP T < w58 @ >DFE @ G D3kG @ > 8I@ 2 <?@ E52@R8>R<?@ P 8 < TiT?8IE @ >A8[@ T < 4 >R< <k < T <?>K587G @HLG 8MG 698IEH\K> n`6 < Wl|C> 8I4 5P @H8IG L < 6U0 > 4
P6U030 41< 2 T?D > 8I4 2KE5El4 c > Ti8I4vTV44ADF^ 2 E58I89TV4v\ L503254s8IT?4‚8I48I2„8 G >RN <VDF^ 2=E6 8 >A> DF8I2„4‚L5L8[8 >ATV0@ 03Yy25034 TV<?8I>RE< DF254 2 8I03ET?Y3878I2L5>8[8
TV0>A@ 8Yy0 < 2 > 0f8 k=@ T?58 @H8 +qG 0Z>t8IYyG 41032 L503254v0369258 4 @R> 0 DF< 252 4/
8@ ITV0 >R< Y3@ 87^ 03Eb< L < 0 @ 0 > P:P 587@Q<VLlP c 8 G G > 0 > 4 n >A@ 032=4 >R<?<>R< DF254X69DF254 < L 8 G @H8 G @‚< DFE <?>R@ < T?8I4p4REkr4 >R<?> E @->R< < DF2=4 4QE < Yf032 >> 8I>A4 @ <?>R<
0 0 * * 0 XDFE5416Q;8 @ 6-;DF254:0 ƒ < 2 > 8 @ 5@K8 G > 8 @ P @ 8ITi0 >R< Y38 P 8I2 > 0
ƒ Tdc 8 G > 0 > 4ADFE @ 698L8TV0 >A@ 30 254 ?< >R< DF2CWr|C8I4X89\ 5@ 8I4R4 < DF254
< 2 > 8 @ 5@H8 G > 0fk=TV8I4vL8 P NODF2 > 0 R@ >R< 87L87TV0MT < 4 > 872DF2Ž89\;503E54 >R< Y38x4RE < Yf032 > 8
x = vx
x 2 vx
!
(
(
x
x
7 7 I‘3
7
vx , ..., vx
8
>A@ 8xvxY @ ,0 ...,< L5vx032=4sE52
(
8IE
8 0 BrT?8I4 >A@ 032=4 <?>R< DF254 8 G >R<V^ E58 >t8UG 8I4 0 @ OP[ P] < 4R4RE8I4vL58JTdc 8 G > 0 > VXI
L < 4 0 @ > 0 < 4R4R8I2 > 8 >{< 2tY38 @ 4A8 P 8IG2 > > > T?D VXI
4 Elc T8I4 Nq03EH\T?8I4 03254 DF254 8 E58 8U8I4
+ 4R4QE8I4L58
/
L < 4 0 @ 0 < 4R4R8I2 > Wy{8 8I2=L5032 > T?8 5@H8IG @ L < ^ 6U0 > < P 2l> cj8I4 > 034’D3kr>AT@ < F0 > <?D >R<?< @ 8 P 8IG 2 >R> <V^ < 2 > 8>t@ G 5@K8 G OP[P]
0> fk=T?8 L503< 254’4Q0 > D > 03VXI
T <V>t83G W
T 89\ < 4 > 8 ^ E50 >A@ 8M6U034L8w FE @ 8JDCEa
ƒ E528 0 @R>R< 8L58 P 8I4 >7< 2 > 8 @ 5@H8 G > 0fk=TV8[4R036-;5032 >7^ E8. 8IG 2 8 G @ 03T?8 P 8I2 >
E528 >A@ 03254 <?>R< DF2ML5DF2 > Ti069DF25L <?>R< DF28I4 > P (P1
LDF2=28pL8IEH\ >A@ 03254 <?>R< DF254~L < 4 >R< 256 > 8I4~TdcmE528v0ZY38I6
P2)
0
TV0M69DF25L <?>R< DF2 P1 8 > Tdcm03E >A@ 870IY38I6 P2
P
(
(P1
(P1 0
(P1
(P1 0
(P1 vrai) P P1
(P1 0 vrai) P vrai
(P1 faux) P faux
|hc 8UG Yf03 TVE50 >R< DF2 DFE @R@ 0 <?> 8
>A@ 8 @H8IG 03 T < 4 8UG 8 0Sƒ (P1Tdcm0 < 0 L8•faux)
LlcmE=2u DFEP>R< T{P169D P:P 8bTdcm032 <VP 0 > 8IE @ Nq0 < 4R032 > 0 @R>R< 8
L8[TdcjDFE >R< T0l 8I4 R> < 2 ’DKDFTV4'Cj‹0D~L 8UG Y38IT?D {8MG 03Ea4A8 < 2bL=E„| k 1Wl 8 > 032 <VP 0 > 8IE @ Cj‘0B™3‰D 8 @QP 8 >
Llc 8UG Yf03TVE8 @ LlcmE=28 0 @R> T?8I4 F0 @ L8I4p8 > 69DF25L <?>R< DF254pL8I4p4QEk=4 >R<?> E >R< DF254 8 > Llcm03E >A@ 8 0 @R> T?8I4{89\ 5@ 8I4R4 < DF254
E >R< T < 4 8UG 8I4vL503254XT?8I4v4RE5k=4 >R<?> E >R< DF254p4 <VP T?8I4pLlcm0 8I6 > 0 >R< DF2aL 8 G > 8 @QP:< 2 < 4 > 8I4+ / 8 > 2DF2bL 8 G > 8 @QP:< 2 < 4 > 8I4
P
P
P
P
4
P2) où P2
P2) où P2
P2) où P2
P2) où P2
vrai
vrai
faux
faux
P
P
P
P
‡‚8 2> 8J+(03/ E /-W >A@ 8[4 <VP T < w=6U0 >R< DF2Ž8I4 > TV04RE 5@ 8I4R4 < DF2…L8I4 >A@ 03254 <V>R< DF254 @H8 G 589\ < Y38I4103E > DFE @ L8I4 8 G > 0 > 476U0 @
8ITVT?8I4258 P DKL < w58I2 > 034xTdc 8 G > 0 > L5ES4 _ 4 > 8ƒ P 83W'hTVT?8 8 @QP 8 > E5258 P 8 < TVT?8IE @ 8[T < 4 < k < T <?>t8xG L5ESL < 0 @ 0 P:P 83W
8IG 032 P D < 254 < T{28ŽNq03E > 8I2+03E56UE52 6U034:4RE 5@Q<VP 8 @ T?8I4 >A@ 03254 <?>R< DF254 @H8 G 589\ < Y38I4M89\ >A@ 0 <?> 8I4ML8 E < 4[T?8I4
k @ 032=6Q;8I4 ELSE <VP T < 6 <?> 8I4 L8I4v4RE5k=4 >R<?> E >R< DF254 0 8 > 0 * * -W
XDFE54a03TVT?DF254„0 T E8 E52 89\H8 TV8uLlc 2 8 8 0 DF20ZY38I6 TV0*4QEk=4 E DF2 5W12
69DF254 < L 8 G @ 8 @ 0aT?8 5@H8IG L < 6U0<i^ > P@ x = vxP W~|C8•L << 0> @ @ 0 5P:@HPG > 8•>R< L8•TV0„w FE @ 8…ŠKW I‘a>RL<?> 8UY >R< < 8I2 > 03TV!D "@ 4698ITVE < L8
TV0w FE @ 8xŠKW—‘3KW
+
...
VX1
...
VXI
VXN
ŠKW—‘3('~\ >A@ 036 >R< DF2bL8xTV0M4RE5k=4 >R<?> E >R< DF2 0 5@ 8Iƒ 4 < 2 > 8 @ 5@H8 G > 0 >R< DF2bL8
OP
6
& (
# # " '
(
|’8I4hYf0 0fk=TV8I4h4ADF2 L 8I4h69DF256UE 8I2 8I4 E50325L8ITVT?8I4h0 0 8I25258I2 0Jƒ TV0 8
8 036-; 28s8 E8
TdcmE5258:NO0 <V> @Q< 0 @Q>R< 8L8TV> 0b69<V>DF2=L <?>R< DF2u@QL@ 8 >A> @ 0325^4 <?>R< DF2uL8T†cm03E >A@ 83W}@R>R/‚< 032=4[Ti0b> 4 {8IG 6 P< wr6UP 0 >R< DFP 2u4QE < <Yf032 > 8 > ^ +Ow ŠKW—‘y˜ /TV07Yf03T?8IE @ L8XTi07Yf0 @Q< 0fk=T?8 x 8I4 >{P DKL < w 8UG 8s4A8IT?DF2E528X4REk=4 >R<V> E >R< DF2:69DF25L <?>R< DF2528ITiT?8 @ 8ITV0 >R< Y38M0 ƒ y W
/103254ST?8 L 0 0 8+Llc 8 0 4 n 03254 DF254SL8+TV0*Yf0 0fk=T?8 +Ow ŠKW—‘0'/a69D 8I4 DF25L=032 0 ƒ TV0
4 {8IG 6 < wr6U0 >R< DF2 +O< w @ ŠKW—P:‘y˜ P /-B y =G > Y1> 8I>A4@ > E52<?>R8b< 69DF2=L <?>R< DF2 8ITVT?@Q8b< 8I4 > LxDF2=6…8I2 >A@ 8€6 @ DK6-@R;@ 8 > 4UW{|C8€NO0 > <?>^ E58
TV0M69DF25L <?>R< DF2•L8 >A@ 032=4 <?>R< DF2Ž8I4 > 8I2•N DF2=6 >R< DF2…L8 y 8I4 > 4 _KP k™DFT < 4 8UG 8 0 @ IN 8I2 >A@ 8J6 @ DK6-;8 > W
) (
'2l VT 8I4 0 @ 0 P 8ƒ >A@ 8I41LlcmE5287D {8 G @ 0 >R< DF2a4ADF2 > L 8UG w=2 < 4v8I2 >A@ 8 0 @ 8I2 > ;l8Iƒ 4R8I4M0ƒ TV04RE <?> 8xL=Eb2D P L8
TdcjD {8 G @ 0 >R< DF2 +Ow ŠKW—‘3‹'/-WK|’8I4 0 @ 0 P 8ƒ >A@ 8I44ADF2 > 69DF2=6 @ 8 > 4 6U0 @{< TV4~4RDF2 > 69DF254A8 @ Y 8IG 4T?D @ 4 L8I4 @ 028 P 8I2 > 4
8 > L 87T†c 8IG 6 @-<?> E @ 8xL587Tdc <VP T 8 G P I8 2 > 0 >R< DF2 ^ E < E >R< T < 4A8E52 <i^ E8 P I8 2 > L8I4sL5DF252 8UG 8I4s69DF256 @ 8ƒ > 8I4IW
"!$# %'&()*+,!.-$/01$# ,23465(783
I‘y˜
7 MACHINE M1
SETS X= VX1, ..., VXN ;Y= VY1, ..., VYN
VARIABLES x,y
INVARIANT x X y Y
INITIALISATION x := VX1 y := VY1
OPERATIONS
OP IF x = VX1 y = VY1 THEN x := VX2 y := VY2 END
END
6
ŠKW—‘y˜ /‚8IEH\•Yy0 @Q< 0fk=T?8I4p69DF256UE @Q@ 8I2 > 8I4
M1
y
x
VX1
6
...
OP(Param)
OP[IN y = VY1]
VY1
VX2
OP[IN x = VX1]
VY2
ŠKW—‘0 @ 30 L5E56 R> < DF2…L8I4pYf0 @Q< 0fk=TV8I4p69DF256UE @R@ 8I2 > 8I4
...
ŠKW—‘3‹‡‚287D {8 G @ 0 >R< DF2b0ZY38I6 0 @ 0 P 8ƒ >A@ 8
12 8 DFEY387698 0 0 8 ƒ 8xL 8Uw=2 L8TV0
8
8 032 8ƒ 88I2 8 0 8I2 ;™8Iƒ 4A8I4J0Mƒ TV04RE <?> 8L5EŽ2D P
L87TV0 A> @ @0325>A4 @ <?>R< DF2•4QE @ T?87@ L <P 0 >A@ @0 P:P G 87Ll< c 8 G > 0 > 4 n >AP @ 032=P 4 <?>R< P DF254.< +Ow @ ŠKW—‘'>A-@ /-W @ >
6
OP(Param)
6
*=(2@ '($%'
XDFE54}69DF254 < L
%8!2*:9$.*=<
ŠKW—‘'- @ 30 L5E56 R> < DF2•L8I4 0 @ 0 P 8ƒ A> @ 8I4
<
! "#$&'% '
/ 8 G @ DF254}T?8I4 k @ 03256-;8I4}69DF25L <?>R< DF2=28ITVT?8I4 CondP( LlcmE528{4REk=4 >R<?> E >R< DF2$) @Q< 256 < )=03T?8 SUB 01ƒ Tdc < 2 >t8 G @Q< 8IE @ L8I4 ^ E8ITVT?8I4 4ADF2 >~< 254 8 G @H8UG 8I4 L8I4}4RE5k=4 >R<?> E >R< DF254’L8p69D P )™DF4 <V>R< DF2J4R8I69DF2Hn
PRINCIPALE B (
L50 <?@ 8I4 SUB SECONDAIRE B( 0IY38I6M69DF25L <V>R< DF254 CondS( +Ow •ŠKW—‘3Š'/XDlE ƒ x @ 8*) @H8IG 4A8I2 > 8:T?8[2tE P 8 G @ D
L8k @ 03256Q;83W
 84ADF2 > T?8I4p4RE5k=4 >R<?> E >R< DF2544 <VP )=T?8I4 SUB SIMPLE( ^ E < L 8 G > 8 @QP:< 28I2 > Tdc 8 G > 0 > 6 < krT?8‚L581Ti0 >A@ 03254 < n
>R< DF032l25W4 @DF256-47;50 L5^ DFE52 8 8 G Td> c 80 > 0 6 < k=6 T?k=87T?L8:8 G 8I> 48 @QPL <8U2 w=8G2 )r0)=@ 0 E52T?8I874x4Q4REE5k=k=4 4>R<?> E E >R< DFDF2•25447<VP L8)rT?6987D 69D )™@R@ DF8I4 4)™DFDF252lL W g 0ƒ 0 E52 69DF 25@ DF4 E+8 )™E8x8IL2 8
>AT}@ 89\ 4<?>R<8E=2 DF> +E )™8:G > L8> < 032=4 DF> 25,4 G )r0 < 4REk=@ 4 E DF2a>R4<?> >R)=< T?8M69DF2 8I2KE]P L=0325<?47>R< T?8I474QEk=@ 4 E DFG ^ 2541L8>
<69D )™< DF> 4 DF2 @ k E 8U8I4I>AW™@ |’8I47<?>R69< DF25L DF@ 2541L8I4 >R<?> 03>R25< 4 DF<V25P 414ADF2 6U03> TV6UE5T 8U8I4 )r0 69DF256U0 >R8I<?25> 0 >R< DF2 L8I4
69DF25P L <V>R< DF<?25>R< 4‚L8I<i4P 4RE@-k=<V^ 4 >R<?>G E >R< DF25-4 ) @Q< 2=6 <<V)=>R< 03T?8I4s8 > 4R8I>A69@ DF25L5<?0 >R<?< @ 8I4‚DCESƒ 4A> 8M4 <V> E8[TiG 04RE5k=@4 >R<?> E >R< DF>t2„G 4 <iP >R< )=T?83WŒ|C8
@ DFE+)™8aL8 >A@ 03254 <?>R< DF25469D @R@ 8I4)™DF25L5032 > 0 ƒ TV0 4REk=4 >R<V> E >R< DF2 4 <VP )=T?8
0 LDF256.)™DFE @
SUB SIMPLE OP
7 7%
7
SUB PRINCIPALE B CondP THEN
SUB SECONDAIRE B CondS THEN SUB SIMPLE
SUB SECONDAIRE B CondS THEN SUB SIMPLE END
‘0
END
ŠKW—‘3Š P k @-< 6U0 >R< DF2•L8x4QEk=4 >R<?> E >R< DF254 L8x69D P )™DF4 <?>R< DF2
W|’816U03Ti6UE5TlL8I4 03254 DF254 L5E•L 0 0 8‚8I4 8I03T 4 8xL581Ti0 032 8ƒ 8
69DF25L DF2
L 8IG 6 @Q<?<V> >R8…< L=03CondP
254MT?8I4 )= 0 @ CondS
0 @ 0 )=; 8I4 ) @H8IG 6 8IG L8I2 > 44R>A8I@ T?DF2+<?TV>R0S< 4REkr4 >R<?> E < >R< DF@2 P:) @QP < 256 < )=03>pT?8@KG 8I2 < @ G 8*) @ DHL5E P < 4R032 <> @ T?8
@ DFE+)™8MD3k > 8I2KE 03E > 032 > L58MN D < 4 ^ E8:L8k @ 03256-;8I47L8:TV0•4QEk=4 >R<?> E >R< DF2a4A8I69DF25L50 <?@ 8:4R03254DFEkrT < 8 @ L8
6U03TV6UE5TV8 @ TV0M69DF25L <V>R< DF2•L8 >A@ 03254 <?>R< DF2•L5,E @ DFE )Œ83W
-,
' R” % " '
{;=0 ^ E8D ) 8 G @ 0 >R< DF2 8I4 >>A@ 03L=E <?> 8 )r0 @ E=2 P D @ 698I03E+L58L < 0 @ 0 P:P 8Llc 8 G > 0 > 4 n >A@ 03254 <V>R< DF254 @ 8ITV0 >R< N
0 ƒ E5258DFE )=TVE54 8IE 4JYy0 0fk=T?8I4UW~g DFE D3k 8I2 T?8…L 0 0 8•Llc 8 0 4 n 032=4 DF25469D )=TV8 LlcmE528
Yf0 @Q< 0fk=T?8 < T{4RE < > L@ 8•69DF@Q25< 6U0 >t8IG 28 @Ž> DFE5@ 4MT?8I> 4 P <?@ D @ 698I03EH< \ @ @ 8IP:TV0 >RP < Nq4•0]ƒ GTV>0€> Yy0 @Q>A<@ 0fk=T?83<?W~>R< /103254:6QP ;=0 ^ E> 8…4RDFE54 n
L < 0 @ 0 P:P 81T?8I4 >A@ 03254 <?>R< DF254{4ADF2 >p< 4Q4RE8I4 LlcmE52 8 G > 0 > 8 > 4A8L <?@Q< 38I2 > Y38 @ 4pE5203E >A@ 83W Tr4RE > L8 @ *8 ) @ Dfn
L5E 8JT?8I4 03254 DF2=4XL8M6-;50 E58:4ADFE54 n`L 0 0 84RE T?8ML 0 0 869D )=T?8 B )=0 0 ))ŒD 03EH\
8 G > 0 <V> @ 414ADFE @ >A69@ 8I4p8 <?> >R< 6 < k=T?8I4pL8I4 >A@^ 03254 <?>R< DF254UB < )™DF@E @ P:69DFP 256U0 >t8IG @ 28 @ T?8I< 4v4A@ DFE=P:4 n`P L < 0 @ 0 P PP 8I> 4UW @1@ @Q>
|CD @ 4 ^ E58$)=TVE=4 < 8IE @ 4vYy0 @Q< 0fk=T?8I4s4RDF2 >1P:< 4A8I4X8I2 @ 8ITV0 >R< DF2€L503254‚Tdc < 2tYy0 @-< 032 > B < TC8I4 >‚< 2 >t8 G @ 8I4R4R032 > 0 ƒ )r0 @R>R<?@
L8I4‚L < 0 @ 0 PP 8I4XL58[698I4‚Yf0 @Q< 0fk=T?8I4‚Llc 8 G > 0fk=T <V@ E52„4A8IE5T 8 > E=2 <V^ E8xL < 0 @ 0 P:P 83WC 8I6 < 03E @ 0 )™DFE @ k=E >
L8‚Yy03T < L8 @ TV8X6U03; < 8 @ L8I4{6Q;=0 @ 38I4 8I2Y 8 G @Q< w=032 > TV$0 ) @ D ) @Q<o8 G >K81G 69DF254 < L 8 G @H8UG 874RE @ T?81L < 0 @ 0 PP 8 @H8IG 4RE=T > 0 > W
12ŽD3k 8I2 T?8L 0 0 8 8I4RE5T 0 8I2Ž8 8I6 E=032 E52 ) DHL5E 4 256Q; DF2 4 818I2 87T?8I4pL 0 0 8I4
Llc 8 G > 0 > 4 >Rn < >A@ 03> 2=4 <?>R< DF< 254X@ L8IP:4pP Yf0 @Q@H< 0fG k=TV8I>4p69> DF25698 @ 2 8UG 8I> 4UW > @ <?> _ @ < G >A@ < @ PP
12b69DF254 < Ll8 ƒ @ 87TV8I4v03E > D P 0 > 8I4‚4RE < Yf032 > 4UB
B54 B' zB zB=| DCE ƒ
8I4 > T†cj8I254A8 P k=T?87L8I4 8 G > 0 > 4
4 8I4 > Tdcj8I2=4A8 P krT?87L8I4 8 G > 0 > 4 < 2 <?>R< 03EH\4 ,' 8I4 > Tdcj8I254A8 P k=T?8L8I4 8 G >R<i^ E8 >A> 8I4‚L8 >A@ 032=4 <?>R< DF2
8I4 > TV0 @ 8ITi0 >R< DF2 L8 >A@ 032=4 <?>R< DF2SL 8UG w=2 < 8 )=0 @ 3
' 
DlE ƒ  0 )
   0IY38I6 * hE5258 ) @ D )™DF4 <?>R< DF2…0 > D P:<V^ E8 @ 8ITV0 >R< Y38Ž0ƒ E5287Yf03T?8IE @ L87Yf0 @Q< 0fk=TV8xL8
T†cm03E 0 > D P 0 > 8 W | 8I4 > T?8vL 8IG 69D @ L8I4 8 G > 0 > 4{L 8UG w=2 < )=0 @ |
‘ 0ZY38I6 ‚g E52M8I2=4A8 P krT?8sL8 ) @ D )ŒDF4 <?>R< DF254
0 > D P<V^ E58I4UW
/ 8UG w=2 <?>R< DF2…L87TV0 @ 8ITi0 >R< DF2…L874R0 >R< 4ANO036 >R< DF2…LlcmE528 ) @ D )™DF4 <?>R< DF2ŽLlc 8 G > 0 > )=0 @ E52 8 G > 0 > 8I4 >
4 )b4 < 8 > 4R8IE5T?8 P 8I2 > 4 < ) | +q4 /
4 ) 0 ) 4 < 8 > 4A8IE5T?8 P 8I2 > 4 < | +q4 / ) DFE„4 )
4 )…4 < 8 > 4A8IE5T?8 P 8I2 > 4 < | +q4 / )
12bE >R< T < 4R
8 ) @ DKL5E <?> 4 _ 256-; @ DF2 < 4 8 G )ŒDFE @ D3k > 8I2 <?@ Tdcm03E > D P 0 > 8 @H8IG 4RE=T > 0 > 2D >K8 G _ 256
KD E52€8I254A8 k=T?8ML8M4 256Q; DF2 4R0 DF2 E 8I4 E52a4ADFE54An†8I254A8 k=T?8ML8 ' ' '
' WC|’8 <V> ) @ DH L5E <?> 4 _ 256Q; @ P DF2 < 4 8:G L8I47_ 03E > D @ P 0 < > 8I4 >R< ^ 8 > < BC> 25D >t8 G P _ 256[8I4 > E52S03E > D P 0 > 8
B +q4 Br4 /-B _ 2=6fB 7B=| DCE ƒ 8I4 > TV0 @ 8ITi0 >R< DF2…L8 >A@ 03254 <?>R< DF2 < 256UTVE8L5032=4 + /
6
!
"#
%$
'&
"#
"#
($
$
,
-
-
*%.
)
)
)
+*
21!3
0/
#
-
+4
,5
,5
,5
5
.
-5
06
98
)
+
"
"<
%$
=&
>$
;
+:
7
+7
)
:
)
)
‘3‹
_ 256
7 pL 8UG w=2 < 8703E54Q4 <
+q4 B54 / +q4 B=4 /
4 < 4 4 B54 S6 8 > 8 _ 256fB
+q4 B54 / +q4 B54 /
4 < 4 4 B54 S6 8 > 8 _ 256fB
+q4 BŒ4 / +q4 BŒ4 /
4 < 4 4 B™4 4 BŒ4 u6 B™4 ]6 8 >
+O8 B=8 /
5
2
f
6
W
_
/103254725D >A@ 8:69DF2 > 89\ > 8 8I4 > L 8UG w=2 <~<VP )=T < 6 <?> 8 P 8I2 > )=0 @ Ti0•4 _ 2=6Q; @ DF2 < 4R0 >R< DF2aL8I4036 >R< DF2=47L8
P 8
25P 6 8[2D P8 L8 8 8 ' > 8 8 ' 8 8 ' 8 8 ' 8 8 ' 8 8 ' |C_8I4p036 >R< DF254 ^ E < 2l cm0 ))= 0 @R> >R< 8I 2525 8I2 > ^ Elc 0 ƒ ' DFE ' @ 8I 4 > 8I> 2 > T < k @ 8I4UWt/103254{T?8I4 w FE @ 8I4 > )™DFE @ 4 <VP )=T < w58 @ B
2DFE54s2D > DF254vT?8769DFE )=T?8 )=0 @ W
)
+
)
/
<
/
$
/
$
/
$
<
5
<
/
5
<
<
$
/
$
<
$
/
/
$
5
5
8
*
:
*
*
:
MACHINE M1
SETS ETAT= ouvert,ferme
VARIABLES v1,v2
INVARIANT
v1 ETAT
v2 ETAT
v1 = ouvert
v2 = ferme
v2 = ouvert
v1 = ferme
INITIALISATION
v1 := ferme v2 := ferme
OPERATIONS
ouvrir v1
SELECT v2 = ferme THEN v1 := ouvert END ;
ouvrir v2
SELECT v1 = ferme THEN v2 := ouvert END ;
fermer
BEGIN v1 := ferme v2 := ferme END
END
ŠKW—‘3‰(' \K8 P )=T?8L8 P 036-; < 28
KD Ti0 036Q; 258 +Ow bŠKW—‘3‰'/ E )Œ8 8 L8. 8 8 L8IEH\€Yy032=28I4Llcm03T 8I2 0 DF2 8 W
‡‚28 @ 8ƒ <VF> T?81LP 8138I4 >R< < DF2 M1+ /~L5E:6U03; < 8 @ ^ L8I< 46Q;5@-0 P @ 38I> 4 4 >R< )=E5G @T?8 @ ^ E8 v1 8 > v2 28‚4ADF2 <V>P R0 P > 0 >R< <4 DFE5v1Y38 @R> 8I> 4hv28I2
P 8
P 8 > 8 P WK)=|’418I6948 L ^ 0E < 04R8 >A@ 038IL=4E L<?8I> 4 L=Yf030 254X0fT†krc < T?2e8IYf4 0 @Q< 038 2 > )r0 @ 8Iv14 )™8I=6 ouvert
Y38 P 8I2 > v2 =8 > ferme
4R DF2v2> T?=8I4houvert
4RE < Yy032 > 4
<
@
:
P
P
Q
@
<
R
>
<
v1 = ferme
v1 > v2 @
w FE @ 8xŠKW— HW
126U03TV6UE=T?8 TV8{L 0 0
8{L8 B +Ow 7ŠKW— / )=0 @ T?8 ) @ DHL5E <V> 4 _ 256Q; @ DF2 < 4 8{G L8I4}L < 0 @ 0 PP 8I4
2D >K8IG 4 L 8UG w=2 < L503254< jŠ3@ †P:Wr| P 04 _ 25M1
6-; @ DF2 < 4Q0 >R< DF2•8I4 >X@K8IG 03T < 4 8UG 8…0ƒ Tdcm0 < L58xL8I4s69DFE )=T?8I4sLCc 8UG Y 8IG 28 P 8I2 > 4L8
,
03254 DF254 E 0 ) )=0 0 4Q4A8I2 L5032=4MT?8I4ML8IEH\uL 0 0 8I4 + ,
/ E 4ADF2
4[8I2
A8>AI@ E )r<?0 >R@ < TV.8 ) ^ @ DK< L5E <?> 4 @_ 25< 6Q; @ DF> 2 < 4 8aG 0 < 254 <‚^ E8€TV8I4 < 8UG Y @ 8IG 2P:8 P P 8I2 > 4 ^ E < # 2l cm!0 ) )=0 @ # 0 <4R"4A 8I2 >^ ^ < E8aL5>:0325P:4< TdcmE52
L8I4•L8IE\L < 0 @ 0 P:P 8I4 +#%$'& )(* &+ #%$'& ,(* &.-/ 0/ DFEY @Q<?@ Y BpDFEY @Q<?@ Y‘KB
6
$
2 ‘'-
M1
v1
v2
fermer
fermer
ferme
ferme
ouvrir_v1
[IN v2 = ferme]
fermer
fermer
ouvert
6
ONO8 @QP 8 @ BjNO8 @QP 8 @ /FW
ouvrir_v2
[IN v1 = ferme]
ouvert
ŠKW— ‚E > D P 0 > 8[L8I4pYf0 @Q< 0fk=TV8I4 v1 8 > v2
;
+
M1
v1,v2
F,F
ouvrir_v2
ouvrir_v1
fermer
F,O
fermer
O,F
KŠ W— XE > D P 0 > 8xw=2=03TlL87TV0 P 036-; < 28 +
12 )™8IE > 03T?D @ 4XY 8 G @-< w58 @ T?8 @ 8I4)™8I6 > L8JTV0 @ 8ƒ FT?8L838I4 >R< DF2*+ / )=0 @ T?8x4 _ 4 > 8 ƒ P 83W T’2lcj89\ < 4 > 8)=034
Llc 8 G > 0 > 4XDlEbƒ T?8I4vL58IEH\Yf032528I4v4RDF2 > DFE5Y38 @R> 8I4s8I2 P 8
P 8 > 8 P )=4IW
-,s, |hcj89\K8 P )rT?84RE < Yy032 > 8I4 > E52u6U034Llc 8 G > E5L8 j‘ @H8IG 03T < 4 8]G 0 ƒ )=0 @R>R<V@ LlcmE=284 ) 8IG 6 < wr6U0 >R< DF2 8IG 6 @-<?> 8•4A8IT?DF2
E52870 )) @ DH6Q;8Gl 8UG Y 8IG 258 P 8I2 >R< 8ITVT?83W
6
;
$
( '&( ’| 8…4 _ 4 > 8ƒ P 8 )=; _ 4 <V^ E58S0 ƒ ) < T?D > 8 @ 8I4 > 4R6-; 8 G P 0 >R< 4 8„G L=03254MTV0 k < ]ŠKW—3‘KW T{8I4 > 69D P )™DF4 8bG L58 >A@ D < 4
L < 4 )ŒDF4 <?>R< Nq4
E=2•L < 4)™DF4 <?>R< NCLlcm0 @R@Q< Y 8UG 8xL8I4 ) < 8Iƒ 698I4s0 ) )™8IT 8G *fB
E=2•L < 4)™DF4 <?>R< NCLlc 8UG Yy036UE50 >R< DF2„L8I4) < 8Iƒ 698I4s0 ) )™8IT 8G B
E=2SL < 4)™DF4 <?>R< N}L58 >A@ 03254)™D @R> L8I4,) < 8Iƒ 698I4IB’0 ) )™8IT 8 G qB ^ E < 8I4 > E52ak @ 034 P E52 < LlcmE5258 ) < 25698
%CT?8
k @ 034ML < 4 )™DF4A8•L8 >A@ D < 4 P DFEY38 P 8I2 > 4 +OY38 @Q>R< 6U03TdBh;D @-< DF2 > 03T{8 > 8I2 ) @ D3NODF25L8IE @ / % Ti0 ) < 25698•0
8 G F03TV8 P 8I2 > E52 P DFEY38 P 8I2 > LlcjDFEY38 @R> E @ 88 > L8NO8 @QP 8 > E @ 83W
‚E56UE52•L8I4 >A@ D < 4vL < 4 )ŒDF4 <?>R< Nq428)™8IE > 69DF2 > 8I2 <?@ )=TVE54pLlcmE=28,) < 8Iƒ 6980:ƒ TV0NOD < 4UW
& $# & + (, $#%'&($ |’8I4 ) < 8Iƒ 698I4X0 @R@Q< Y38I2 > 4RE @ T?87L < 4 )™DF4 <?>R< N *78 > ™8 8I6 > E8[T?876Q;=0 @ 38 P 8I2 > L87698I-4 ) < 8Iƒ 698I4[0 ƒ )r0 @R>R<?@
L8 *18 > TV8I4vL 8IG 6Q;50 @ 38J4RE @ W5|C8I4 ) < 8Iƒ 698I4X4ADF2 > 8I254RE <V> 8 8UG Yf036UE 8UG 8I4103E > D P 0 >R<V^ E8 P 8I2 > W l28 )™8IE >
‘3Š
7 ŠKW—3‘|C8 @ D3k™D >
6Q;=0 @ 38 @ E=28 ) < 8Iƒ 698 ^ E8s4 < 8I4 > T < k @ 8 + & ( / 8 > ^ E58 *p8I4 > DK6U6UE+) 8.G +# /1+qE5258) < 8Iƒ 698s8I4 > 0 @R@Q< Y 8UG 8 /-W T
28 )™8IE > L 8IG 6Q;50 @ 38 @ E528 ) < 8Iƒ 698X4RE @ T?8pL < 4)™DF4 <V>R< N5Llc 8UG Yy036UE=0 >R< DF2 ^ E8v4 < 698ITVE < n`6 < 8I4 > T < k @ 8 + & ( /-We‡‚28
) < 8Iƒ 69828)Œ8IE > 0 @R@Q< Y38 @ 4RE @ E52L < 4)™DF4 <V>R< NrLlcm0 @Q@Q< Y 8UG 8 ^ E8‚4 < 698ITVE < 6 < 8I4 > T < k @ 8 + & ( /-WK|’8I4 P DFEY38 P 8I2 > 4
L5E•L < 4)™DF4 <?>R< NCL8 >A@ 03254)™D @R> 4ADF2 >
lL 8IG 6-;50 @ 38[8I2 )™DF4 <?>R< DF2Ž;503E > 83B
l6-;50 @ 38x8I2 )ŒDF4 <?>R< DF2k=034R4A83B
lLD <V>p> 8I2 <?@ E528) < 8Iƒ 698 )™DFE @vP DF2 > 8 @ B
lLD <V> 8 >A@ 87Y < L8)™DFE @ L8I4R698I25L @ 83W
/1032541E52b4RDFE56 < L58J4 <VP )=T < w=6U0 >R< DF2lB52DFE54X28 ) @K8IG 4A8I2 > DF2=4 )r034XTV0 P DHL 8IG T < 4R0 >R< DF2€L8I4 P DFEY38 P 8I2 > 41L8
TV0) < 256982 < 698IEH\…L5E•L < 4 )ŒDF4 <?>R< NCL8 >A@ 032=4 )™D @R> 8I2 ) @ D3NODF25L8IE @ W
6
*)
&
) ,
( (& '&((
!
*
( #$& ( ( ) &( (
| 0 036Q; 258‚0fk=4 0 8 +Ow :ŠKW—3' /{L 8I6 T?81L 4 )ŒDF4 N qW/103254pTV0[6UTV03E54R8
25DFE54
0> 3E 6Q;50 @ 38 P 8I2 > 8 >
D>A@ EY3DF2=P 4xT?8I4 < 8UG Y 8IG 28 P >A@ 8I2 <?>> 4 Chgt 8 > DchgtG @Q<?> ^ E < 69< D @R@ 8I4<?)™>RDF< 25L58I2 >@ 8I4 )Œ8I6 >R< Y38 P 8I2 OPERATIONS
F
L 8IG 6Q;=0 @ 38 P 8I2 > L8 ) < 8Iƒ 698I4)r0 @ T?8 L < 4)™DF4 <V>R< N Dt W sDFE54 @ 8 P 0 @Q^ E5DF254 ^ E8{Tdc 8UG Y 8IG 28 P 8I2 > Chgt Nq0 <?> )=034R4A8 @
L8xT†c 8 G > 0 > Y < L8 + vid/[0Mƒ Tdc 8 G > 0 > DH6U6UE+) 8 G + occ/-B)r0 @ 69DF2 >A@ 8xTdc 8UG Y 8IG 28 P 8I2 > Dchgt @H8IG 03T < 4R8xTdc < 2tY38 @ 4A83W
Dt
MACHINE Robot0
SETS ETAT= vid,occ
VARIABLES dt0
INVARIANT
dt0
vid, occ
INITIALISATION
dt0 := vid
OPERATIONS
Chgt SELECT dt0 := vid THEN dt0 :=occ END
Dchgt SELECT dt0 := occ THEN dt0 :=vid END
arr p skip
evac skip
END
ŠKW—3Žˆ„036Q; < 25870fk=4 >A@ 0 <?> 8
|’8…L < 0 @ 0 P:P 8ŽL58ŽTi0„Yf0 @Q< 0fkrT?8 dt0 +Ow ]ŠKW—3'Š /-B 8I4 > 89\ >A@ 0 <V> 0.ƒ )r0 @R>R<?@ L 8 A> @ D < 4 I8 G T 8 G P I8 2 > 4L58ŽTi0
4) 8IG 6 < wr6U0 >R< DF2l L5E @ D3kŒD > +Ow ŠKW—3'/ ^ E < 4ADF2 >
6
2 T†c < 2 <?>R< 03T < 4R0 >R< DF2
T†cjD ) 8 G @ 0 >R< DF2 Chgt
T†cjD ) 8 0 DF2
|C8JL < 0 @ 0 P:G @ P >R8‚< 89\ >ADchgt
@ 0 <?> L87Tdc < 2 <V>R< 03T < 4R0 >R< DF28I4 > 96 8ITVE < L87TV0w FE @ 8xŠKW—y˜W
‘3‰
Robot0
Dt0
vid
occ
ŠKW—y˜ / < 0 @ 0 P:P 8xLlc 8 G > 0 > 4 >A@ 03254 <?>R< DF254pL5E Robot0 89\ >A@ 0 <?> L587Tdc < 2 <?>R< 03T < 4R0 >R< DF2
|’8xL < 0 @ 0 PP 889\ >A@ 0 <?> L8xTdcjD ) 8 G @ 0 >R< DF2 Chgt 4R03254s4 <VP )=T < w=6U0 >R< DF28I4 > 698ITVE < L87TV0w FE @ 8xŠKW—0KW
6
Robot0
Dt0
vid
Chgt
[Dt0 = vid]
Chgt
[Dt0 = vid]
occ
KŠ W—0/ < 0 @ 0 P:P 8JLlc 8 G > 0 > 4 >A@ 03254 <?>R< DF2=4 L=E Robot0 89\ >A@ 0 <?> L87T†cjD ) 8 G @ 0 >R< DF2 0 12D3k >R< 8I2 > T?8aL < 0 @ 0 PP 8aŠKW—3‹ 0 ) @ 8Iƒ 4•TV0 4 <VP )=T < w=6U0 >R< DF2 )r0 @ 4QE+) ) @ 8I4Q4 < DF2 L58€TV0 >A@ 03254 <?>R< DF2
@HL8 G8I584 9\ < 03Y3258M4 4R036QDF;=2=034U2 W >^ E8 P dt0 = vid 8I4 > Y @ 0 < L503254‚Tdc 8 G > 0 > vid BŒTV069DF25L <?>R< DF2 [Dt0 = vid] L < 4 )=0 @ 0 >
>A@ <?>R<
6
Robot0
Dt0
vid
Chgt
occ
ŠKW—3‹/ < 0 @ 0 P:P 8789\ >A@ 0 <?> L87TdcjD ) 8 G @ 0 >R< DF2 Chgt 0 ) @ 8Iƒ 4X4 <VP )rT < w=6U0 >R< DF2
/‚8vTV0 P 8
P 8 P 032 < 8ƒ @ 8{DF2D3k >R< 8I2 > T?8 L < 0 @ 0 P:P 8p69D @R@ 8I4)™DF25L5032 > 01ƒ TdcjD ) 8 G @ 0 >R< DF2 Dchgt +Ow xŠKW—'-/-W
6

7 Robot0
Dt0
vid
Dchgt
occ
KŠ W—'-/ < 0 @ 0 P:P 8789\ >A@ 0 <?> L8JTdcjD ) 8 G @ 0 >R< DF2 Dchgt 0 ) @ 8Iƒ 4s4 <VP )=T < w=6U0 >R< DF2
T 8I4 8a0€
ƒ 69DF256U0 8I28 T?8I4 D 4[L 0 0 8I4xL58I4xw FE 8I4[ŠKW—y˜B ŠKW—3‹„8 > ŠKW—'- )™DFE @ 3D k > 8I2 <?@ T?8
L < 0 @ 0 @ P:P > 8769D P )=TV8 > >tGŠKW—3@Š:L8xTi>A0M@ 4<) 8IG 6 < < w=6U0 @ >R< P:DF2bP L5E @ D3k™D > ŠKW—@ 3KW
6
Robot0
Dt0
vid
Chgt
Dchgt
occ
6
ŠKW—3Š/ < 0 @ 0 P:P x8 Llc 8 G > 0 > 4 n >A@ 03254 <?>R< DF2=4sL5E
Robot0
* /103254T?8) @ 8 P< 8 @ @ 0258 P 8I2 > + k < JŠKW—3‰'/-BK25DFE54 < 2 >A@ DHL5E < 4RDF254}T?8vL < 4)™DF4 <V>R< N=Llcm0 @R@-< Y 8UG 8 @ 8*) @K8IG 4A8I2 >t8 G
)=0 @ TV0„Yy0 @-< 0fk=T?8
Wh 8 8ŽYf0 0fk=TV8 )™DF4R4U8Iƒ L8•L8IEH\ 8 0 4 Y L8 + / E5032=L Th2lc 0€03E56UE528
) < 8Iƒ 698Ž4RE @ TV8L < 4)™Da1
DF4 <V>R< NLlcm>A0 > @Q@Q< Y 8UG @Q8< 8 > DH6U6UE+) 8 G + occ/7L™8Iƒ 4G > ^ > ElcmE=28< ) < 8Iƒ 69vid88I4 > ^ 0 @R@-< Y 8UG 8Ž< 4RE @ _ 698L8 @ 2 < 8 @ W
 8 >•8UG Y 8IG 28 P 8I2 > 8I4 > L 8IG 6 @-<?> L5032=4sTV0:6UTi03E54A8 OPERATIONS )=0 @ arr p Wr| cjD ) 8 G @ 0 >R< DF2 Chgt 89\ ) @Q<VP 8
TV0$) D ) 8 84RE Yy032 8 Ti0) 2=698X28)Œ8IE 6Q;=0 38 E58X4Uc T 0[E528-) 8Iƒ 698‚4RE *X8 > ^ E8‚4 < =8I4 >
Y < L8 @ %W @Q <oTrG L >K8IG G 6 @Q<?> < T?8X6-> ;5032 38 P 8I2< > Llc 8 G > 0 > 4 <VP > E5T > 03@ 2 8XG @vL58I^ 4hYf0 @Q<< 0fk=_ TV8I4 Da1 + occ< 0 ƒ vid@ / 8 > Dt1
+
0 ƒ /-W
vid occ
XDFE54 < 2 >A@ DKL=E < 4ADF254 03E54R4 < L58IEH\ >z_ )™8I4vL8,) < 8Iƒ 698I4 T1 8 > T2 ^ E < L8UY @ DF2 > 8 >A@ 8 8UG Yf036UE 8UG 8I4X6-;5036UE52874RE @
T?8IE ) D ) 8[4 4 8ƒ 8:LCc 8UYf036UE50 DF2 8I4 )™8I6 Nq4 8 4R036Q;5032 >7^ E8 AUCUN 69D @Q@ 8I4)™DF25L€03E
Nq0 <?>@ ^ El@ c < Tr2l@ c _ _0)=> 03P 4{L8) G< 8Iƒ 6981L503>R25< 4 TV0@ ) < 256983>RWe< ‡‚2De16U0 ) > 8I> E De2
)™8 @QP 8 >A>A@ 0xL8‚69DF25250 >A@ 8XT?8 >`_ )Œ81L8) < 8Iƒ 698
@
03E…6-;50 @ 38 P 8I2 > WŒ|’8I4vL < 4 )ŒDF4 <?>R< Nq4Llc 8UG Yf036UE50 >R< DF2€4A8 @ DF2 > 8 G @K8IG ,4 )=0 @ TdcjD ) 8 G @ 0 >R< DF2 evac W
|’8„L < 0 @ 0 P:P 8„LCc 8 G > 0 > 4An >A@ 03254 <?>R< DF254L58„TV0SYf0 @Q< 0fkrT?8 Type )ŒDFE @ TdcjD ) 8 G @ 0 >R< DF2 Chgt 0ZYy032 > 4 <VP n
)=T < w=6U0 >R< DF2S8I4 > 698ITVE < L58TV0•w FE @ 8ŠKWj˜ „DlEu
ƒ TV8 ) @H8IG L < 6U0 > P 8I4 > NO03E\SL=03254xT?8I4 8 G > 0 > 4 T1 8 > T2 W’|C8I4
>A@ 03254 <?>R< DF254 < 4R4QE8I4{L87698I4 8 G > 0 > 4sLL 8U< Y4)=8I0 2 @ 0 < 4R4A8I2 > WK/103254vT†c 8 G > 0 > AUCUN T?8,W ) T~@H8I4AG L8 < 6U0b0 >LDFP256: 2(Da1
D >K8 G IN= occDa1
<
>
@
Dt1 = vid Type = AUCUN)
P (Da1 = occ Dt1 = vid)
8I2 >A@ 8b6 @ DH6Q;8 > 4a0Sƒ TV0S4RE <V> 8ŽL=E+2D P L8…TdcjD ) 8 G @ 0 >R< DF2lWh| 0 >A@ 03254 <?>R< DF2 @K8 G 589\ < Y38
= occ
Dt1 = vid
2 
REFINEMENT Robot1 REFINES Robot0
SETS TYPE = AUCUN, T1, T2
VARIABLES Dt1, Da1, De1, De2, Type
INVARIANT
Dt1 = Dt0 Da1
vid, occ
De1
vid, occ
De2
vid, occ
Type TYPE
Type = AUCUN Dt1 = vid
Type 2 AUCUN Dt1 = occ
INITIALISATION
Dt1, Da1, De1, De2, Type := vid, vid, vid, vid, AUCUN
OPERATIONS
Chgt
ANY pp WHERE pp
T1, T2
Da1 = occ Type = AUCUN
THEN Type := pp Da1,Dt1 : = vid, occ END
Dchgt SELECT De1 = vid Type = T1
THEN Dt1, De1, Type := vid, occ, AUCUN
WHEN De2 = vid Type = T2
THEN Dt1, De2, Type := vid, occ, AUCUN END
arr p
SELECT Da1 = vid THEN Da1 := occ END
evac
SELECT De1 = occ THEN De1 := vid
WHEN De2 = occ THEN De2 := vid END
END
ŠKW—3‰g @ 8 P:< 8 @p@ 028 P 8I2 > L5E @ D3k™D >
03E > DFE @ L8[Tdc 8 G > 0 > AUCUN L < 4 )=0 @ 0 > 6U0 @ 8ITVT?8[28 P DHL < w=87Tdc 8 G > 0 > LCcm03E56UE528JYy0 @Q< 0fk=T?83W 12bD3k >R< 8I2 > T?8
L < 0 @ 0 P:P 87L87TV0w FE @ 8xŠKWj˜
6
Robot1
Type
Chgt[P]
Chgt[P]
Chgt[P]
Chgt[P]
T1
Chgt[P]
T2
Chgt[P]
AUCUN
Chgt[P]
Chgt[P]
Chgt[P]
6
ŠKWj˜ / < 0 @ 0 P:P x8 Llc 8 G > 0 > 4 n >A@ 03254 <?>R< DF254XL8xTV0Yf0 @Q< 0fk=TV8
Type
)™DFE
@ Chgt
3‘
7 Robot1
Type
T1
Chgt[IN Da1 = occ et Dt1 = vid]
T2
Chgt[IN Da1 = occ et Dt1 = vid]
AUCUN
KŠ Wj˜ / < 0 @ 0 P:P 87Llc 8 G > 0 > 4 n >A@ 032=4 <?>R< DF254XL87TV0Yf0 @Q< 0fk=TV8 Type )ŒDFE @ Chgt 0 ) @ 8Iƒ 4s4 <VP )=T < w=6U0 >R< DF2
/‚8hTV0 8
8 032 8ƒ 8~DF27L 8IL5E TV8I4CL 0 0 8I4CLlc 8 0 4 n 032=4 DF254 )™DFE T?8I4C03E 8I4’D ) 8 0 DF254
8 > Tdc < 2 <?>R< 03PT < 4R0 P >R< DF2CP W'2< 69@ DF256U0 > 8Iƒ G 28J<?69> 8I4 L < 0< @ 0 @ P:PP P 8I4 )™DFE G @> D3> k > >A8I@ 2 <?@ T?<?8X>R< L < 0 @ 0 P:@ P 8169D P >A@ )=T?8 > L81G @ TV07>R< Yf0yn
@Q< 0fkrT?8 Type +Ow ŠKWj˜e‘'/-W
6
Robot1
Type
Dchgt[IN De1 = vid et Dt1 = occ]
T1
Chgt[IN Da1 = occ et Dt1 = vid]
Chgt[IN Da1 = occ et Dt1 = vid]
T2
AUCUN
Dchgt[IN De2 = vid et Dt1 = occ]
ŠKWj˜e‘/ < 0 @ 0 P:P 8xLlc 8 G > 0 > 4 n >A@ 03254 <?>R< DF2=4s69D P )=TV8 > L87TV0Yf0 @Q< 0fk=TV8 Type
HE @ T?8 P 8
P 8 ) @Q< 256 < )™8 L8pL 8IG L5E=6 >R< DF2DF2L 8UG w=2 <?> T?8I4~L < 0 @ 0 P:P 8I4}Llc 8 G > 0 > 4 n >A@ 03254 <?>R< DF254~L8I4~03E >A@ 8I4
Yf0 @Q< 0fk=T?8I4pL587TV0M4) 8IG 6 < w=6U0 >R< DF2 +Ow ŠKWj˜e'/
6
Dt1
De1
De2
Da1
Robot1
Dt1
Da1
vid
vid
Chgt [IN
Da1 = occ]
Dchgt[IN De1 = vid
et Type = T1]
Dchgt[IN De2 = vid
et Type = T2]
De2
De1
vid
vid
occ
6
Chgt[IN Dt1 = vid
et Type = AUCUN]
occ
occ
Dchgt[IN Dt1 = occ
et Type = T1]
arr_p
evac
Dchgt[IN Dt1 = occ
et Type = T2]
evac
occ
ŠKWj˜e/ < 0 @ 0 P:P x8 LCc 8 G > 0 > 4An >A@ 03254 <?>R< DF254XL58I4pYy0 @-< 0fk=T?8I4 Dt1, De1, De2 8 >
Da1
3 
g DFE D3k 8I2 T?8XL 0 0 8X69D )=T?8 L8XTV0J4) 8I6 w=6U0 DF2
L5E D3kŒD T54RE L8‚6U03TV6UE5T?8
T?8 ) @ DHL5E @ <?> 4 _> 256-<?; @ @ DF2 < 4 < 8‚G L@ 8I4{P:4APDFE=4 L < P 0 @ 0 P:> P 8I4{L816QG ;=< 0 ^ E8‚>R< Yf0 @QRobot1
0< fk=T?83W 12Ž69@ D P:P > 8I< 25698,)=0 > @ T?8) @ DHL5E <?@>
4 _ 256Q; @ DF2 < 4 8G 8I2 >A@ 8pT?8I4 L < 0 @ 0 P:P 8I4 @ 8I4)™8I6 >R< Nq4’L8 Dt1 8 > Type / / / / +†p; > B
{; /-B +q/‚6-; Br/16-; /
|C8 @H>8IG 4RE=T > 0 > / > > 8I4 >7< TVTVE54 >A@H8G )=0 @ TV0w FE @ 8ŠKWj˜3˜W’|’8I41Yy03TV8IE @ 4L8I4‚Yf0 @Q< 0fk=T?8I4 Dt1 8 > Type 8I2
NODF256 >R< DF2…L8I4 8 G > 0 > 4XL5E•L < 0 @ 0 P:P 874RDF2 > 25D >t8UG 8I4‚L503254sT?8 > 0fk=T?8I03EbŠKW—KW
2 Robot1
Dt1,Type
S1
Chgt[IN Da1 = occ]
Chgt[IN Da1 = occ]
Dchgt[IN
De1 = vid]
S2
Dchgt[IN
De2 = vid]
S3
ŠKWj˜3˜ / < 0 @ 0 PP x8 Llc 8 G > 0 > 4 n >A@ 032=4 <?>R< DF254
6
S1
S2
S3
6 ŠKW—
Dt1
vid
occ
occ
Type
AUCUN
T1
T2
03T?8IE @ 4sL8I4pYf0 @Q< 0fk=T?8I4 )™DFE @ TV8I4 8 G > 0 > 4XL8 '254RE <?> 8pDF26U03TV6UE5TV8sT?8I4hL < 0 @ 0 P:P 8I4/ Bt/ 8 > / )=0 @ TV8I4 ) @ DHL5E <?> 4{4 _ 256-; @ DF2 < 4 8IG 4
/ / / / /16Q; > B +†{; > Br{; > /-B=0 @R@ ) / / / / +q/‚6-; > Bl/16Q; > /-Bl{; > B=0 @R@ )CB8UYy036(
/ / /
+q/16Q; B™/16-; /-B™{; B=0
)CB8UYf036(
|C8 @K8IG 4RE5T > 0 > L 8… TV0 69 DF25 6U 0 >K 8IG 250 >R< DF2L5 8I4 L < 0 @ 0 P: P 8I4:L8„ 06Q/ ;50 ^ E8…Yf> 0 @Q< 0fk=TV8 > +q/ > @R @ /
LDF2 > T?8I4 8 G > 0 )Œ8I4 4ADF2 > T?8I4L < 0 @ 0 PP 8I4h/ 8 > / 8I4 > < TVTVE54 >A@K8 G )r0 @ TV0xw FE @ 8
ŠKWj˜0M8 > T?8I4pYf03T?8IE @ 4pL8I4vYy0 @Q< 0fk=T?8I4 )™DFE @ 6Q;=0 ^ E8 8 G > 0 > )=0 @ TV8 > 0fk=T?8I03EbŠKWj˜W
12 )Œ8IE
0 2 8I25032 Y 8 w58 T?8I4-) D ) 8 8I4 8ITVT?8I4 E8 28)™8IE 6Q;50 38 E5258) 8Iƒ 698 E8
4 < p8I4 > T < >vk @ P 8 + < vid> /8 >> ^ EG 8 @Q< *Ž@ 8I4 > DK@ 6U6UE+@Q) <o8UGG >K8 G + occ> /HW ^ HE @ T?8… L < 0 @ 0 P:P > 8…LCc 8 G @ > 0 > @ 4An >A@ 03254 <?< >R< DF254^ T?8
6Q;=0 @ 38 P 8I2 > L8) < 8Iƒ 698+OD ) 8 G @ 0 >R< DF2 Chgt/p4Ucj8 8I6 > E8L8*)=E < 4pTdc 8 G > 0 > S4 8 > T?8I4pYf03T?8IE @ 4 @ 8I4)™8I6 >R< Y38I4sL8
8 4ADF2 >‚@ 8I4)™8I6 >R< Y38 P 8I2 > vid 8 > occW™|C84 _ 4 > 8ƒ P 8 @ 8I4)™8I6 > 8[698 >A> 8) @ D ) @Q<o8 G >t83G W 12 )™DFE @Q@ 0 <?>
Dt1 > Da1
03E54R4 < T?8Y 8 G @Q< w58 @ )™DFE @ T?8I4v03E >A@ 8I4 ) @ D ) @Q<-8 G >t8IG 4UW
y˜
7 Robot1
Dt1,Type,Da1,De1,De2
evac
S8
evac
S1
S10
arr_p
Dchgt
Dchgt
S4
Chgt
S2
Chgt
evac
S3
evac
arr_p
arr_p
S6
S5
Dchgt
Dchgt
S7
6
S9
ŠKWj˜0/ < 0 @ 0 P:P J8 Llc 8 G > 0 > 4 n >A@ 03254 <V>R< DF254 / > _ )™8 /10 /‚8 ‚/ 8Z‘
vid
occ
occ
vid
occ
occ
vid
vid
vid
vid
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
-,{“
XD
6 ŠKWj˜
AUCUN
T1
T2
AUCUN
T2
T1
AUCUN
AUCUN
T2
T2
vid
vid
vid
occ
occ
occ
occ
vid
occ
vid
vid
vid
vid
vid
vid
vid
occ
occ
vid
vid
03TV8IE @ 4vL8I4vYy0 @Q< 0fk=T?8I4 )™DFE @ ?T 8I4 8 G > 0 > 41L8
vid
vid
vid
vid
vid
vid
vid
vid
occ
occ
% 8 Pu8 G > ;DHL8 )Œ8 @-P 8 > L8ŽLDH6UE P 8I2 > 8 @ 8 >[P:< 8IEH\]69D P ) @ 8I2=L @ 8TV8I4J4) 8IG 6 < w=6U0 >R< DF254 8I2]89\Kn
A
>
@
>A@ 0 _ 032 > L8I4YKE58I4‡1ˆb|hW '2 8 8 > TdcmE >R< T < 4R0 >R< DF2+L8 Pu8 G > ;DKL58I4NOD @QP 8ITiT?8I4 > 8ITVTV8I4 ^ E8„TV0 Pu8 G > ;DHL8
0
)™8 @QP 8 > LlcjD3k > 8I2 <?@ E52 >A@ 8Iƒ 47k™DF2S2 < Y38I03ESL58:69DF2w=0325698:L5032=4T?8:L 8UG Y38IT?D ) )™8 P 8I2 > B P 0 < 4258:LDF2528
03E56UE52582F0 @ 032 >R< 8L58Yf03T < L50 >R< DF2]L8TV0„4) 8IG 6 < w=6U0 >R< DF2 )=0 @J@ 0 ) )™D @R> 03E ) @ D3krTq8ƒ P 8 )™DF4 8G L=03254xT?86U0yn
; < 8 @ L8I4Ž6Q;50 @ 38I4UWp|’0 Pu8 G > ;DKL58€E >R< T < 4 8UG 8 )r0 @ 8 @R> B{g D > 8 > 8 > > DFE5TV4L503254 j3HB ‹B{y˜%18I4 > E528
L 8 G P 0 @ 6-;81L < sG8 @ 8I2 > 83W 'h28 8 > 8ITVT?8)™8 @QP 8 > Llcj89\ >A@ 0 <?@ 8XE524 _ 4 > 8ƒ P 81L8 >A@ 03254 <?>R< DF2=4 8 G >R<V^ E8 >t8UG 8I4p69D P n
)=T?8 >[@ 8*) @H8IG 4R8I2 > 032 > TV0 > D > 03T <?>t8bG L8I469D P )™D @R> 8 P 8I2 > 4ML5E 4 _ 4 > 8 ƒ P 8 ^ E8ITVT?8 ^ E8Ž4AD <?> TV0€4 ) 8IG 6 < wr6U0 >R< DF2
8UG Y 8IG 28 P 8I2 >R< 8ITVT?8:69DF2=4 < L 8 G @H8UG 83W 8 @R>1>A@ 0 <?> 8 > DFE > T?8MTV032 F038 _ 69D P ) @Q< 4‚T?8I414 _ 4 > 8 ƒ P 8I40Žƒ 2D P k @ 8
<4A28 wr2 k=< T?8ILl4c 8 GL > 8U0 w=> 4x2 8I42SL8T?8I4 @038*2 ) 8@Hƒ 8IG 8X4A8I4 2 > 032 kŒ> DFT)=0 @E583LWe8I/1403L 25< 04 j@30 %P†BtP 698 8I418 Llc 8 G >8 0 >;47DHLw=8‚2 < 4IcmL0 DF) 2 )=> T T?8IE4 8v8 G 03> EH0 >\ 4x4A0 DF2 >28 L8I418I2 8I2H4Un B
69D P P:P 87L=03G 254{Td< cj89\K8 P P )=T?83B< 69@ DF2 >A_H@ DFP
T?87Llcm<V03^ 6U6y8Iƒ 40ƒ E52 )=0 @ < 2 J>A> 8I2ŽPuNODFG >256 >R< DF2•L5EŽ2D <VP^ k @ 8L,8 @ )=Ti03698I4{P 8 > L> 8I4
Y3D <?> E @ 8I4L 8 G Zƒ08I2S4 > 0 >R< DF2=28 P 8I2 > B < TVTVE54 >A@H8G )=0 @ T?8I4‚w FE @ 8I41ŠKWj˜e‹KB’ŠKWj˜ -tB ŠKWj˜eŠ8 > ŠKWj˜e‰KB L8 P 032 < 8ƒ @ 8b0 ƒ
0ADFE > 8 @ L8I44ADFE54 n 8 G > 0 > 4707ƒ Tdc < 2 >K8 G @Q< 8IE @ L8I4 8 G > 0 > 4 69D @R@ 8I4)™DF25L=032 > 03E\ 8 G > 0 > 4{L5EM4 _ 4 > 8ƒ P 81L8 >A@ 03254 <?>R< DF2
L87Tdcm0fkr4 036 DF2 E B )=0 69DF2=4 8 E8I2 BrL58UY 8I2=28I2 T?8I4p4Q+E )™8 n 8 0 4sL5E 0 28 8I2 69DF254 L 8 83W 'h2
8 8 > T?8I4 >A>A@ @ D < >R4 < 8 G > 0 ^> 4p<L58sTV0@ w FE @ 8XG ^ ŠKWj˜ -x> 69D @R@ 8I4 < )™DF25L503>2 > 03EH\:Yf03T?@ 8IE G > @ 4 > L8sTV0x@ Yy0 @-< 0fk=PT?8 cc> 4ADF2 > 69< DF2=G @H4A8G @ Y 8IG 4
L503254[T?8L < 0 @ 0 P:P 889\ >A@ 0 <?> L5E @ 0 28 P 8I2 > +Ow aŠKWj˜e'‰ /-W |hc 8 G > 0 > 69D @Q@ 8I4 )™DF25L5032 > 0€ƒ TV0bYy03T?8IE @ €L8
TV0Yy0 @Q< 0fk=T?8 cc L8UY < 8I2 > E52„4R+E )™8 @ n 8 G > 0 >1< 256UTVE5032 > L8IE\•4RDFE54 n 8 G > 0 > 469D @R@ 8I4 )™DF25L=032 > 0ƒ TV0Yy03T?8IE @ L8[TV0
Yf0 @Q< 0fk=T?8 feu W
!
MACHINE Parking
CONSTANTS NbMax
&
PROPERTIES NbMax 0
VARIABLES NbVoit, cc
INVARIANT
NbVoit 0..NbMax
cc -1..1
(cc = -1
NbVoit NbMax)
&
(cc = 1
NbVoit 0)
INITIALISATION
NbVoit := 0 cc := 0
OPERATIONS
entrer SELECT NbVoit NbMax cc = 0 THEN NbVoit := NbVoit + 1 cc := 1 END
controler entree SELECT cc = 1 THEN cc := 0 END
&
sortir SELECT NbVoit 0 cc = 0 THEN NbVoit := NbVoit - 1 cc := -1 END
controler sortie SELECT cc = -1 THEN cc := 0 END
END
6
ŠKWj˜e‹| 0 P 30 6Q; < 28
Parking
QInit
[][]Init
[NbVoit<NbMax][]entrer
cc=1
[][]controler_entree
6
[][]controler_sortie
cc=0
cc=-1
ŠKWj˜ - _ 4 > 8ƒ P J8 L58 A> @ 03254 <?>R< DF254 8 G >R<V^ E58 >t8UG 8I4 @ I8 Ti0 R> < N{0:ƒ Ti0 P 30 6Q; < 28
[NbVoit>0][]sortir
Parking
3‹
7 REFINEMENT Parking r1
SETS Couleur feu = vert, rouge
VARIABLES feu
INVARIANT
feu Couleur feu
((cc=0 feu=vert)
NbVoit NbMax)
((cc=0 feu=rouge)
NbVoit = NbMax)
(cc = 1
feu = vert)
((cc=-1 feu=rouge)
NbVoit = NbMax - 1)
((cc=-1 feu=vert)
NbVoit NbMax - 1)
INITIALISATION
NbVoit := 0 cc := 0 feu := vert
OPERATIONS
entrer SELECT cc = 0 feu = vert THEN NbVoit := NbVoit + 1 cc := 1 END
controler entree SELECT cc = 1 THEN
IF NbVoit = NbMax THEN feu := rouge END
cc := 0 END
&
sortir SELECT NbVoit 0 cc = 0 THEN NbVoit := NbVoit - 1 cc := -1 END
controler sortie SELECT cc = -1 THEN
IF feu = rouge THEN feu := vert END
cc := 0 END
END
6
ŠKWj˜eŠŽ|C8 @ 0 28 P I8 2 > L87TV0 P 30 6-; < 28
Parking
cc=1 & feu=vert
[][NbVoit != NbMax]
controler_entree
[][]entrer
[][NbVoit = NbMax]
controler_entree
[][]Init
cc=0
feu=
rouge
QInit
feu=
vert
[NbVoit>0][]sortir
[NbVoit>0][]sortir
[][]controler_sortie
cc=-1
ŠKWj˜e‰ _ 4 > 8ƒ P 8JL8 >A@ 03254 <?>R< DF2=4 8 G >R<i^ E8 >K8UG 8I4 @ 8ITV0 >R< N 03E @ 028 P 8I2 > Parking r1
 8 034)™8I6 L8 032tE=TV0 8X2Ccm0)=034 8 8 8 8I2KEL=03254h2DF4 0IYf03EH\6U0 2D 8‚L 8 0 6Q;58‚69DF254 4 8
0€ƒ L 8UG w=2 > <?@ E52uL > < 0 @ 0 @ P:P 8Ll@Q<?c >K8 G >G 0 > 4 n >A@ 03254 G <?>K>R<G DF@ 254[> Nq0 < 4R032 > 0 ) )r0 @ >A0 @ >A@ 8E528 @)r0 @R>R>A< @8L58IG 4xP Yf0 @ @Q< 0fk=TV8I4)™<DFE > @
P) 8 D >A) >A@ 88 8I8I2 4[@ 698ID T < 8U)=N T?E58925\H8I8 4J)=L0 8@R>RTd< 8:c 2tL5YyE]0 6903D 2P )™B D 6f@Rcj8I> 48 P no0yƒ 8In`2 L > L58•E E5425_ 8 4 > 8ƒ 8ƒ P FT?8 8Ž@ L8I82TV0 3>R8I< N74 0…ƒ DFE52 2 L=03E]4 )Œ6U8I036 ; > 8 )=0 L@R>R8I< 4[6UE56QT ;5< 8 0 @ 3L8I8I4U4 W
|’@ 0 > 0 @Q<-< TVG TV>t8G L8I4P L < 0 @ 0 PP 8I4J<LCc 8 G > 0 @->< 4An >A> @ 03254 <?>R> < DF254[<?89@ \ >A@ 0 <V> 4[@ LCcmE5284 ) 8IG 6 < >Rw=< 6U0 >R< DF2 –8I< 4 > @ E528N DF2=6 @ >R< DF2
89\ )ŒDF258I2 >R< 8ITiT?8vL5E25D P k @ 8sL8sYf0 @Q< 0fkrT?8I4~8 > L5E:2D P k @ 8‚L8vYf03T?8IE @^ Elcj8ITVTV8I4 )™8IEY38I2 > ) @ 8I25L @ 83WtˆbD < 254
6
'
DF2 @ 8*) @H8IG 4R8I2 > 8:L8[Yf0 @Q< 0fk=T?8I4)=TVE=4XT?8L < 0 @ 0 P:P 88I4 > T < 4 < k=T?88 > 89\ )=T?D <?> 0fk=TV83Wr/103254E528[D ) >R<V^ E8L8
69DF256 < 4 < DF2 L5E*L < 0 @ 0 P:P 8 < Tp8I4 > LDF256…2 8IG 698I4Q4R0 <?@ 8€L8 @ 8I4 >A@ 8 < 25L @ 8…03E P 0y\ <VP E P Tdcj8I254R8 P k=TV8…L8I4
Yf0 @Q< 0fk=T?8I4 @ 8*) @K8IG 4A8I2 >t8UG 8I4IW
!
Parking
cc
entrer
[NbVoit<NbMax]
controler_sortie
1
0
-1
controler_entree
sortir
[NbVoit>0]
KŠ W 0 / < 0 @ 0 P:P 8xLlc 8 G > 0 > 4 n >A@ 03254 <?>R< DF2=4 @ 8ITV0 >R< N{0:ƒ TV0 P 036Q; < 25870fk=4 >A@ 0 <?> 8 Parking
‡‚2803E 8 )=0 6UE5Ti0 8JL8[698 8ML 8 0 6Q;58 8I4 L8L503254‚TV04R6 4R4 DF2„L8I4X69DF2=L DF254XL8 032Hn
4 <?>R< DF2…8I2€L8I>A@EH\ @ @RDF>RE+< )™8I4 @Q<?>t69DFG 25L <V>R< DF>A25> 4sL58JG P L 8IG 6U@ T?8I256-;@H8 G P < 8I2 > B
) @ 8 P:< 8ƒ @ 8[< 69DF< 25L <?>R< DF2…8I2 >A@ <?8[>R< 6 @ DK6-;8 > >A41@ L8I4
8
/8 69DF25L <?>R< DF254:Llcm0 >A> 8 < F2=0fk < n
>AT @ 038325B 4 L<?>R8I< EDF\254:8ƒ L58„8•TV690]DF25w L FE @ DF8„2 ŠK8IWj˜ 2 - 8…+ NbVoit
NbMax > NbVoit
0 >
8
/-Wh 8 >A> 8
<?8I>K6QG ;=2 E8b< 4UP cm0 ) )rT E8]<?>R< 0 ƒ E528b>A0@ )) 6 @ DHDK6Q6-;;8 8 > 8U4Y ŠK8I2Wj˜e8 ‰ +8INbVoit
!= NbMax > NbVoit = NbMax
2
I
8
V
T
?
T
€
8
L
b
8
V
T
0
8
5
;
K
D
L
8
(
l
D
E
ƒ
V
T
0
F
0
L
…
8
>69DF25L <V^ DF2 2 8I698I4R4R0 <V^ 8 )™DFE E8Tdc @8UY 8I28 G 8I2 G 4AP 8L 8I>R6U< T?8I256Q;583W | 0 P F0 G > L8L58TV0…4RE5k=4 E @ DF.2 8I)4 > 25E5628 n
<V>R< G <V@ @7^ G G P > G
@
>R<?> >R< @Q< <
)=03T?8L8Tdc 8UG Y 8IG 258 P 8I2 > 8I4 > LDF256TV0…69DF25L <V>R< DF2 L8L 8IG 6UTV8I256Q;50fk < T <?>K8G L58Tdc 8UG Y 8IG 28 P 8I2 > W T~8I4 > )ŒDF4Q4 < k=T?8
LlcmE >R< T < 4A8 @ E=2803E >A@ 84RE5k=4 >R<?> E >R< DF2]69DF25L <V>R< DF2528ITVTV8„0€ƒ T†c < 2 >K8 G @Q< 8IE @ L8ŽTV0€4REk=4 >R<?> E >R< DF2 ) @Q< 256 < )r03T?8M8 >
TV0a69DF25L <V>R< DF2 L8…698 >A> 8bL8IEH\ < 8ƒ P 8…4RE5k=4 >R<?> E >R< DF2]8I4 > Ti0S69DF25L <?>R< DF2 Llcm0 >A> 8 < F250fk < T <V>t8•G L8…T†c 8 G > 0 > 6 < k=T?8
L8ŽTV0 >A@ 03254 <V>R< DF2lW '2 Llcm03E >A@ 8I4 > 8 @QP 8I4UB~TV0„69DF2=L <?>R< DF2 L8ŽL 8IG 6UT?8I256-;50fk < T <V>t8•G 69D @R@ 8I4 )™DF25Lu03E @ 0 289n
PL 8I2 8 > 8IL258J698xTV.0 LCFc 8 0 @ 0 L8[6 Lk=8xT?8Tdc 8ULG Y 878IG Ti250 8 P 8I032 25> 4 L8JDF2TV0 TVD P 4036-;E8< 2L8x8I0f4vkr4A4 DF>AE5@ 0 4An<?>8 870 8 > 41TV0 0:) 69)rDF0 25L0 <?4R>R4A< DF8I2…2 LlL5cm0 03>A25> 4v8 < E=F2•250f4Rk +E < )™T <V8 >t8ŽG n 8 0:ƒ 0 TV0
>A@ <?>R< @ ^
G> > @ < >
@ G> >
L87< sGTdcm@0fkr4 >A@ 036 >RG< DF> 2l> W <
6
&
Parking
cc
entrer
[feu = vert]
1
controler_sortie
0
-1
controler_entree
sortir
[NbVoit>0]
feu
controler_entree
[IN cc = 1 et NbVoit = NbMax]
controler_entree
[IN cc = 1 et NbVoit != NbMax]
vert
rouge
controler_sortie
[IN cc = -1]
controler_entree
[IN cc = 1 et NbVoit = NbMax]
ŠKW 0 / < 0 @ 0 P:P 8xLCc 8 G > 0 > 4An >A@ 03254 <?>R< DF254XL58I4pYy0 @-< 0fk=T?8I4pL5E @ 028 P 8I2 > Parking r1
T’89\ < 4 > 8E528[L < sG8 @ 8I25698[8I2 >A@ 8T?84 _ 4 > 8 ƒ P 8ML8 >A@ 032=4 <?>R< DF254 8 G >R<V^ E8 >t8UG 8I4D3k > 8I2KE+0
ƒ Tdcm0 < L58JL8[Tdcm0 )n
) @ DH6Q;58ŽL58 8 @Q> B g D > 8 > 8 > > DFE5TV4 +Ow ]ŠKWj˜e‰'/8 > T?8•L < 0 @ 0 PP 8•Llc 8 G > 0 > 4 n >A@ 03254 <V>R< DF254:69D P )rT?8 > +Ow ŠKW 03‘'/D3k > 8I2KE0ZY38I6a2D >A@ 8a0 ) ) @ DH6Q;83B < TVTVE=4 >A@K8UG 8 )=0 @ T?8I4w FE @ 8I4ŽŠKW 0 HBvŠKW 0 BpŠKW 0]8 > ŠKW 03‘KB )™DFE @ TV0
4) 8IG 6 < wr6U0 >R< DF2•L5E @ 0258 P 8I2 > L8Tdcj89\H8 P )=TV8‚L5E )=0 @ < 2 B Parking r1 W 'h2Ž8 8 > Tdc 8 G > 0 > cc = -1 L8TV0
6
3Š
7 Parking
cc, feu
sortir[NbVoit>0]
S3
S1
controler_entree
[IN NbVoit != NbMax]
controler_sortie
entrer
controler_sortie
S2
controler_entree
[IN NbVoit = NbMax]
6
S5
S4
ŠKW 03‘/ < 0 @ 0 P:P x8 Llc 8 G > 0 > 4 n >A@ 03254 <?>R< DF2=4
S1
S2
S3
S4
S5
76 ŠKW 0
cc
0
1
-1
-1
0
sortir[NbVoit>0]
feu
vert
vert
vert
rouge
rouge
L=E @ 0 28 P I8 2 > Parking r1
03TV8IE @ 4vL8I4vYy0 @Q< 0fk=T?8I4 )™DFE @ T?8I4 8 G > 0 > 4‚L8 w FE @ 8pŠKWj˜e‰169D @Q@ 8I4)™DF25L…0ƒ L8IEH\ 8 G > 0 > 4IB S3 8 > S4 L8pTV0‚w FE @ 8pŠKW 03‘KWK 8I4~L < Y38 @ 38I25698I4 ) @ DZY < 8I2528I2 > L58
TV0 032 8ƒ 8vL8v69DF254 E 8pT?8 0 )=; E583Wf|’8I4 4 4 8ƒ 8I4 L8 03254 DF254 8 E58 8U8I4{4A8ITVDF2 8 @Q> Beg D > 8 >
8 > P > DFE5< Ti4@ 4ADF2 >a8IG Ti0fkŒ>AD@ @H8I<?G @4Ž0 ƒ )=0 @ @R>R<?@ Ll<V^ cmE=28ML < 4 ADF_ 256> >R<P DF2aL8:Td>Ac <@ 2eYf0 @Q<?>R< 03< 2 > L=G 03>R25<V^ 47TV0Ž>tG 6UTV03E54R8 ASSERTION
03T?D @ 4 ^ E81T?8I4{L < 0 @ 0 P:P 8I4 LCc 8 G > 0 > 4An >A@ 03254 <?>R< DF254UB4A8IT?DF2Ž2D >A@ 8L 8 G P 0 @ 6Q;83B54ADF2 > 69DF254 >A@ E <?> 4L58*)=E < 4T?8I4
L < 0 @ 0 P:P 8I4 @ 8I4)™8I6 >R< Nq4L8I4Yf0 @Q< 0fk=T?8I4ML58ŽTi0€4 ) 8IG 6 < w=6U0 >R< DF2lW g}0 @ 89\H8 P )=TV8 )™DFE @ TdcjDFE >R< T ‚8I28 _ 4 >
jy˜ †B T8I4 2 8I698I4R4R0 8‚LCcm0 DFE > 8 @ TV0JT < F28
L503254TV0x4 ) 8IG 6 < w=6U0 >R< DF2
ASSERTION cc=-1 or cc=0 or cc=1
L87TV0< w FE > @ 8xGŠKWj˜e‹KW <V@
! " #$ &%
'#(%*) +% -,
. /1032)547036 89036 :03;=<>2?8A@5B )DCE<F4>032G2IHJB ))DKECELNM5BOCP03;=<RBSQ 0UTN<F4-BOCP4>0R:032WVNM032YX[Z\/]:0*)DM5CE2^KE032W2)_036 8ICP`D8IBa<>CEbc;52
BadD2F<F4-BOCP<F032:eHJMD; )54>bgfF0I< Yhi/j032Clk )DKm036 kS03;=<>Ba<>CPbc;52n:jHJM5; )54>bgfF0I< o2Fbc;=<]036 8U4ACP<F03203; 7h_p0q2>bcM52sr
03;52F03ktdDKP0\:5MuKEBO;5vcBavO0 w032><BO2>2F0I.x )54>b78A@0y:032KlBO;vcBavO032z:0 )54>bOvO4-BOknknBa<>CPbc;CEk )_0I6 4ABa<>CE{|2<F4ABO:5C}r
<>CPbc;5;503KE2IhD~Ba4?8Ubc;52=036 L=M503;€<KEBn8Ubck )54N036 @03;52>CEbc;\:032[CEk )9K-036 kS03;€<>Ba<>CEbc;52W032F<[d‚03BOM58Ubc+M ).)DKEM52WBOCl2=0I6 0ƒLNM0
8U03KEKP0?:032_2 )_036 8ICP`98IBa<>CPbc;52^BadD2F<F4-BOCP<F032Ih„…036 BO;5knbcCE;52_CEK†2F0I4ABOCP<^CE;=<=0I6 4>032>2>BO;=<^:eH‡0UTN<F4-BOCP4>0:032_2 )_036 8ICP`D8IBa<>CEbc;52
8Ubc;58U430IQ <F032ƒ:032y036 Km036 kS03;=<>$2 )‚0I4Akn0I<F<>BO;€<RMD;0SkS03CEKEKP03M54>0ƒ8Ubck )54N036 @03;52>CEbc;ˆvcKPbOdDBOKP0n:0SKP03M54{‰bc;58U<>CEbc;5;0Ur
kS03;=<Ih=Š?BO;52i8U0I<F<F0Gb )5<>CELNM0G;5bcM52*B3VObc;D2i8-@bcCE2>C5:jH‡03;S0UTN<F4-BOCP4>0G:03MTƒ<Œ‹ )‚032:50G:5CEBavO4ABOkkS032*LNM5C2Fbc;=<GŽ
 KEKE03032W2W:5:5CECEBaBavOvO4A4ABOBOkkkSkS03032W2W::e0HJBO2N8U03<>6 LNCPV7MCP03<N03;56 2I8Uh 0O‘

F’ “ '% #$ ” ; )†03M5<•<F4-BO:5M5CP4>0–M5;50ˆ2 )036 8ICP`D8IBa<>CPbc; 03;—M5;:5CEBavO4-BOknkS0˜:0˜2N036 LNM03;58U0™2ACKP032…:5C}šG0I6 4>03;=<F032
knBO8-@5CE;03,2 )‚03MVO03;=<8UbcknktMD;5CELNM0I43h‚/j0n;5CPVO03BOMˆbjM–Q 8U0I<F<F08UbcknktMD;5CE8IBa<>CPbc;ˆ032F<KEB )DKlM52 )54N036 2F03;=<F0S032F<
K›HJCEk )DK-036 kS03;=<>Ba<>CPbc;eh 'KlKP0?032F<W47036 BOKECE2N0I6 0 )DBa4GKP032^B ))†03Kl2^2>M58I8U032>2>CE{|2W:5032^b )0I6 4ABa<>CPbc;523h
‰œ ž ŸG D¡\¢j£¥¤g ¦c¡
” ;™:i0I6 `D;5CP<RKE032bOd7fF0I<>2 )DBa4t4AB ) )‚bO4><BOM7T–8IKEBOM52F032
0I< hjŠ?BO;52R<FbcM52RKE032R8IBO2I‘1KE032
knBO8-@5CE;032CEk )‚bO4><N0I6 032 )DBa4+KEB[8IKEBOM52>0 IMPORTS :0IV7CP03;5;IMPORTS
03;=<:032¥bOd7fs0I<>2+SEES
:DMƒ:DCEBavO4ABOknkS0_:0_2=036 L=M503;58U0Oh
/j032RknBO8A@5Cl;032?VNM503,2 )DBa4RKEBz8IKEBOM52>0 :50IVNCP03;D;03;€<:032?bOdfs0I<>2MD;5CELNM03kS03;=<?:DBO;52KP0S8IBO2bjM˜Q 2F032
b )_0I6 4ABa<>CPbc;D22Fbc;=<M<>CEKlCE2=0I6 032Ihip038IC_032FSEES
< )†bc2A2>CPdDKP0zM5;5ClL=M03kn03;€<S:5BO;52SKE0q8IBO2nbjM§Q KP032nb )0I6 4ABa<>CPbc;52:0qKEB
knBO8-@5CE;0…;0…kSb7:5CP`503;=< )DBO2SKP032¨VaBa4ACEBadDKP032¨:0…KEByknBO8-@5CE;0Oh*ŠƒHJBOM<F4>0 )9Ba4><S8A@5BOLNM0qCE;52><>BO;58U0…:eHJM5;0
k…03© kS0–knBO8-@5CE;0ˆ:bcCP<y0I© <F4>0ˆ4>*0 )547036 2F03;=<=0I6 0™:5BO;52•KP0ˆ:5CEBavO4ABOkkS0y:50y2N036 LNM03;58U0OhYª7C[M5;0yknBO8A@DCE;0y032F<
CEk )‚bO4><N0I6 0 )DKEMD2>CP03M4A2j{‰bcCE2¥0I<4>03;bckk«0I6 0¬|`Dv­Nh ¯® 03KlKP0B ))DBa4AB¯©°P<F4AB[BOM<>BO;=<+:0_{‰bcCE2¥LNMeH‡03KEKP0032F<+CEk )‚bO4><N0I6 0
:5BO;52GKP0:5CEBavO4ABOkkS0:02N036 LNM03;58U032Ih
p_@DBOL=M0SbOdfs0I<t032F<4>*0 )547036 2>03;€<N0 6 )DBa4tM5;ˆ4A038U<>BO;vcKP00I<tM5;0KECEvc;0S:0nV7CP0n:5BO;52KE0:5CEBavO4ABOkkS0n:0
2N036 LNM03;58U0•¬|`Dv­Nh²± ® h9/1BKECPvc;0?VO0I4><>CE8IBOKE0R8UbO4>4>032 )‚bc;5:™BQ K›HŒ036 8UbcM5KP03kS03;=<Y:5Mz<F03k )D2Ih
3³ ­
IMPLEMENTATION MAIN imp
IMPORTS M1.M,M2.M
...
e­Nh  [X ;0CEk)DKm036 kn03;€<>Ba<>CPbc;
"!$#
MAIN_imp
M1.M
M2.M
e­Nh²±  / B¨<F4ABO:5M58U<>CEbc;q:eHJM5;0Clk)DKm036 kS03;=<>Ba<>CPbc;…03;qX?Z\/
‰œ‰œ ŸG D¡ 9¡g¡ D¡
p_@DBOL=M0tB ) )‚03Kj:eH‡b )_0I6 4ABa<>CPbc; )‚0I4AkS0I<GKEB8UbcknktMD;5CE8IBa<>CPbc; 03;€<F4>0tKP032G:5CPšG0I6 4>03;=<>2Y8Ubck )†bc2ABO;€<>2Y:eHJM5;
)54>bgfF0I< [h [Mn;5CPVO03BOM:0WK›H IMPLEMENTATION ‘aKP032+0UT036 8IM<>CPbc;52i:032:5CPšG0I6 4>03;=<F032CE;D2F<F4AM58U<>CPbc;D2¥2>bc;€<
2N036 LNM03;€<>CE03KEKP032Ih ” ;¨03;=<>BOkS0WK›H‡0UT036 8IM<>CPbc;n:0^K›HJCl;52F<F4AM58U<>CEbc; M5;50{|bcCE2LNM0^K›H‡0UT036 8IM<>CEbc;n:0^K›HJCE;52><F4AM58U<>CPbc;
+[032F<^<F0I4AknCl;i0I6 0Oh5Š[BO;D2WKEBƒ`5vcM4>0­Nh ³ ‘5K›H‡0UT036 8IM<>CPbc;q:DM•2>‹N2F<I03Q kS0t:i0I6 dDM<F0 )DBa4WK›HJB ))†03K†:0K›H‡b )_0I6 4-Ba<>CPbc;
:0 M1 hD~Ba4GKlBS2>M5CP<F0K›H‡b )_0I6 4-Ba<>CPbc; op2 :0 M2 032F<W0UT036 8IM5<=0I6 0Oh
op1
%!&#
('
*)
IMPLEMENTATION MAIN imp
IMPORTS M1.M,M2.M
...
OPERATIONS
main BEGIN M1.op1 ;M2.op2 END
END
e­Nh ³  X[;0b )_0I6 4ABa<>CEbc;q03; [Mq;5CPVO03BOM :5M…:5CEBavO4ABOkkS0:0R2N036 LNM03;58U0z¬|`5v­Nh =® ‘9K›HJB ))†03Ke:5032^b )0I6 4ABa<>CPbc;52 M1.op1 0I<[Zy±Nh‡b )9±
032F<S4>0*)D4N036 2F03;€<N0 6 )DBa4nM5; kS032A2>BavO0 )DBa4><>BO;=<:0qKlByKlCPvc;0…:5M <F03k )D2S:50qK›H‡bOd7fF0I< MAIN ¬|bOd7fF0I<:bc;=<
K›H‡b )_0I6 4ABa<>CEbc;032F<iB ) )‚03KEBO;€<F0 ® VO0I4A2K›H‡bOdfs0I<:5bc;€<K›H‡b )0I6 4ABa<>CPbc;032F<iB ) )‚03Km0I6 0 M1.M )‚bcM4 M1.op1
0I< M2.M )‚bcM4 M2.op2 h1/jmain
0•kS032>2>BavO0032F<tKECEd†03KlK-0 6 )9Ba4RKP0;bck :0K›H‡b )_0I6 4-Ba<>CPbc;«B ) )‚03Km0I6 0Oh¥/j0n<F03k )92
:eH‡0UT036 8IM<>CPbc;•:032k]0I6 <>@b7:032_:0GK H‡bOd7fs0I<i2F0YknBa<N0I6 4AClBOKECE2F0 )9Ba4iKP0324>038U<>BO;vcKP0322>M4KlBKECPvc;0W:jHŒ036 8UbcMDKP03kS03;=<
:5M?<F03k)92Ihgp032e4A038U<>BO;vcKP03212>‹Nktd‚bcKECE2F03;=<†KE0+<F03k )D2j:eH‡0UT036 8IM<>CPbc;ƒ:0*K›H‡b )_0I6 4ABa<>CEbc;eh¯/j0+<F03k )D2j:eH‡0UT036 8IM<>CPbc;
:0K›H‡b )_0I6 4ABa<>CEbc;qB ) )‚03KEBO;=<F0 main 03;vcKPbOd‚0KP032_<F03k )92W:032_b )_0I6 4ABa<>CPbc;D2WB ) )‚03K-0I6 032 M1.op1 0I< M2.op2 h
/j0G4>0I<FbcM4i:50GK›H‡0UT036 8IM5<>CPbc;2>M54K›H‡b )_0I6 4ABa<>CPbc; main 032F<iCEk )DKECE8ICP<F0OhaŠƒHJBOM<F4>0 )DBa4><K›HJB ))†03K:50GK›H‡b )_0I6 4ABa<>CPbc;
2IH‡0Uš‚038U<>M0M5;50ƒ{|bcCE2LNM0SKP0S<F03k )D2:jH‡0UT036 8IM<>CPbc;™:0nK›HJB ) )‚03K¥:0 M1.op1 032F<y036 8UbcM5Km06 8IBa4bc;
M2.op2
;0 )‚03M< )DBO2W0UT036 8IM<F0I4?:03M7Tzb )0I6 4ABa<>CPbc;52Y2>CEkƒM5KP<>BO;036 kS03;=<W03; 7h
%!&#
+
+
MAIN_imp
M1.M
M2.M
op1
op2
e­Nh  / B¨<F4ABO:5M58U<>CPbc; :0K›HJB ) )‚03Ke:eHJM5;50[b )_0I6 4-Ba<>CPbc;
‰œ ŸG D¡
€¡ * c ¦O¢ * 9¡q¢ †¦ ¢ i¡
¦ c D¡… ¦
Š?BO;52^KP0KEBO;5vcBavO0 Y‘5KE032_b )0I6 4ABa<>CPbc;52 )‚03MVO03;=<_4>0I<FbcM4A;50I4_MD;0?bcM )DKEM52>CE03M4A2*VaBOKP03M4-2Ihp?H‡032F<WKP0?8IBO2
:0K›H‡0UT703k)DKE02>M5CPVaBO;€<_bjM\Q K›H‡b )0I6 4ABa<>CPbc; M1.op1 4>0I<FbcM4-;0:03M7TzVgBOKE03M4A2¬|`5v­Nh ® h
%!&#
$'
'
' '
IMPLEMENTATION MAIN imp
IMPORTS M1.M
...
OPERATIONS
main VAR aa,bb IN aa,bb ! M1.op1 END
END
e­Nh  X[;0b )_0I6 4ABa<>CPbc;yLNM5C‚4>0I<FbcM4A;50:032^VaBOKP03M4A2
Š?BO;52WKE0:5CEBavO4ABOknkn0:02=036 L=M503;58U0R8UbO4>4>032 )†bc;D:5BO;€<R¬|`Dv­Nh ® bc;qB 8-@00UT )DKECE8ICE<F03kS03;€<^KP04A0I<FbcM4
BƒQ K›H‡0UT036 8IM<>CEbc;…:0[K H‡b )0I6 4ABa<>CPbc; )54ACl;58IC )DBOKP0Oh=p_0[kS032A2>BavO0?032F<^KECPd‚03KEKm06 )DBa4_KP0?;bck&:0[KlBRVaBa4ACEBadDKE0YLNM5CDVaB
0I© <F4>0tBgš‚038U<=0I6 0)DBa4GKEB¨VaBOKP03M4^4>0I<FbcM54A;i0I6 $0 )DBa4YK›H‡b )0I6 4ABa<>CPbc;eh
%!&#
"
MAIN_imp
$#
M1.M
op1
aa,bb
e­Nh  4ABO:DM58U<>CPbc;q:eHJMD;0?b )0I6 4ABa<>CPbc;yL=M5C‚4A0I<FbcM4A;0:032WVgBOKP03M54A2
"!$#
"
&%
±
s;52F<F4AM58U<>CEbc;
IF
IMPLEMENTATION MAIN IMP
IMPORTS M1.MX
...
OPERATIONS
main BEGIN
...
IF v=Value1 THEN M1.op1
ELSIF v=Value2 THEN M1.op2
ELSE M1.op3
END
END
;52><F4AM58U<>CPbc;
CASE
IMPLEMENTATION MAIN IMP
IMPORTS M1.MX
...
OPERATIONS
main BEGIN
...
CASE v OF
EITHER Value1 THEN M1.op1
OR Value2 THEN M1.op2
ELSE M1.op3
END
END
‚­Nh  D; 2F<F4AM58U<>CPbc;D2 IF 0I< CASE
"!$#
‰œ ŸG D¡7¢ ›¦ ¢ i¡
/10 ;5CPVO03BOM
:5M§KlBO;vcBavO0 )‚bc2>2I03Q :0 :5032nCE;52F<F4-M58U<>CPbc;52¨8Ubc;5:5CE<>CPbc;5;03KEKE032Ih
p032CE;D2F<F4AM58U<>CPbc;DIMPLEMENTATION
2G2Fbc;=< IF 0I< CASE ¬|<>Bad9KP03BOM–­Nh ® h1Š?BO;52KP032?2)_036 8ICP`D8IBa<>CEbc;522>M5CPVaBO;=<F032[KlBd54-BO;58A@0
B )†bcM54W8Ubc;5:5CP<>CPbc;…KlBS;i0I6 vcBa<>CPbc;\:5032W8Ubc;5:5CP<>CEbc;52^:032^d54-BO;58A@032GL=M5CeKlB)54N036 8g03Q :03;€<Ih
ELSE
Š?BO;52nKE0z:DCEBavO4ABOknkS0…:0…2N036 LNM03;58U0 8UbO4A4>032)‚bc;5:5BO;=<SBOM7T]:03MT«2)_036 8ICP`D8IBa<>CEbc;52n:0I6 `D;5CE032S:5BO;52¨KP0
<>BadDKP03BOM )547036 8D036 :03;=<_KE032*8Ubc;5:5CP<>CEbc;52*M<>CEKlCE2=0I6 032 )DBa4KP032*CE;52><F4AM58U<>CPbc;52 IF 0I< CASE 2Fbc;€<iKP032k…03© kS032:bc;58
bc;…bOd5<>CE03;€<WKP0k…03© kn0R:5CEBavO4ABOkkS0:02N036 LNM03;58U0OhD/1032GkS032>2ABavO032G8Ubc;5:5CE<>CPbc;5;03KE2ibc;=<GKEBSk…03© kS0bO4-CPvcCE;0
0I<_2F0[:DCE2F<>CE;vcM503;€< )DBa4KE032i8Ubc;5:DCP<>CPbc;52i:0YvcBa4-:032 )DKEBO8D0I6 032^:0IVaBO;€<_KP0Ykn032>2>BavO0Oh ” ;•:i036 :bcMdDKE0YKEBtKECPvc;0
:0?V7CP0:0K›H‡bOd7fF0I<W:032F<>CE;DBa<>BOCP4>0:5MzkS032>2>BavO0t8IBa4GKP032_<F4>bcCE2 )‚bc2>2ACPdDCEKECE<=036 2 )‚03MVO03;=<WB ) )DBa4AB¯©°P<F4A0?2>03KPbc;…KEB
VaBOKP03M4*:0WKEB?VaBa4ACEBad9KP0 v BQ KEBk…03© kS0G:DBa<F0Oh€Š?BO;52KEB2 )036 8ICP`D8IBa<>CPbc;nBOMD8IM5;0^VaBOKP03M4*;eH‡032F<4>0I<FbcM4A;0I6 0 )9Ba4
KP032[b )_0I6 4ABa<>CPbc;D2[:5bc;58Rbc;ˆ;0ƒ4>*0 )547036 2>03;€<F0 )DBO2Y0UT )DKECE8ICP<F03kn03;€<?KP0R4A0I<FbcM4B•Q K H‡0UT036 8IM<>CPbc;–:50ƒK›H‡b )_0I6 4-Ba<>CPbc;
B ) )‚03KEBO;=<F0Oh
MAIN_IMP
M1.MX
[v!=Value1
and v!=Value2]
op3
[v=Value2]op2
[v=Value1]op1
e­Nh  A4 BO:5M58U<>CPbc; :032WB ) )‚03KE2^:eH‡b )_0I6 4-Ba<>CPbc;]BSQ K›HJCl;€<N0I6 4ACP03M54G:eHJM5;0CE;D2F<F4AM58U<>CPbc;z8Ubc;5:DCP<>CPbc;5;03KlKP0
%!&#
%
‰œ ŸG D¡\£^¢ ž D¡ i¡ 9¡
D¡ * ¡ * 7 i; K›HJCl;52F<F4AM58U<>CEbc;
)‚0I4AkS0I<^:08U470I6 0I4G:032_d‚bcM58IKE032?¬|`Dv­Nh²­ ® h ” ;z;0,)‚03M< )9BO2_<F4ABO:5M5CP4A0
8U0I<F<F0tCl;52F<F4AM58U<>CEbc; )DBa4><>CE8IWHILE
M5KlC 0IQ 4>08UbcknkS0RKP032GBOM<F4>032Ih
Š?BO;52?KP0ƒ:5CEBavO4ABOknkn0t:0¨2=036 L=M503;58U0S8UbO4>4>032)‚bc;5:5BO;=<Gbc;yCE;=<F4>b7:5M5CP<W:5M.)D2F03MD:barž8UbN:50$)‚bcM4Y:0I6 `9;5CP4
KEBd†bcMD8IKP0zB•Q 8€bO© <=0n6 :0ƒKlBKECPvc;50t:0ƒVNCE0t:032YbOd7fF0I<>2Ih;yCE;€<F4AbN:5MDCE2>BO;=<W:5M )92F03M5:barž8Ub7:0ƒbc; )‚03M<[:bc;58
:036 KECEkCP<F0I4WKEBƒd‚bcM58IKP0 5CEKe;04>032><F0 )DKEM52_LNMeH‰BSQ CE;52N0I6 4>0I4WKE032WkS032>2>BavO0R03;€VOb ‹*036 2nBSQ K›HJCE;=<=0I6 4ACP03M4W:5Mz8UbO4 )92W:0
'
'
'
€³
IMPLEMENTATION MAIN imp
IMPORTS M1.MX
...
OPERATIONS
main VAR fin IN
fin := 25
&
WHILE fin 0 DO
M1.op1 ;
fin := fin - 1 ;
INVARIANT fin NAT
VARIANT fin END
END
END
END
‚­Nh²­  X[;0d‚bcM58IKP0?03; KEB•d‚bcM58IKP0S:5BO;52?KP0S:5ClBavO4ABOknkS0n:0S2N036 LNM03;58U0n03;=<F4>0nKP032:036 KlCEknCP<F03M4-2[:50¨:0I6 d9M<0I<:0¨`D;–:0¨d‚bcM58IKP0
¬|`5v­Nh ® h
%!&#
+
+
MAIN_IMP
M1.MX
while fin > 0
do
op1
end while
e­Nh  4ABO:5M58U<>CEbc;q:eHJM5;0?d‚bcM58IKP0
%!&#
+
&%
“ '% /1032knBO8-@5CE;032iBadD2F<F4ABOCP<F032iM<>CEKECl2F03;€<+KP0YKEBO;vcBavO0 u:0322>M5dD2F<>CP<>M<>CEbc;52¥v 036 ;0I6 4-BOKECE2N0I6 032RBRQ KlB:5C}šG0I6 4A03;58U0
:032 CEk)DKm036 kS03;=<>Ba<>CPbc;52 L=MDCcM<>CEKECl2F03;€<jKE0KEBO;vcBavO0 [8Ubck)‚bc2N0i6 :jHJCE;52F<F4AMD8U<>CPbc;52Ih3/1032jb )_0I6 4ABa<>CPbc;D2¥:0I6 `9;5CP032
:5BO;52[KP032?CEk )9K-036 kS03;€<>Ba<>CEbc;52Y2>bc;€<KP032[4AB ;503kS03;€<>2?:032[b )_0I6 4ABa<>CEbc;52:032[knBO8A@5Cl;032?BadD2F<F4ABOCP<F0323h iKEKP032
)‚bc2>2I03Q :03;=<^KP032ik…03© kn032_4N036 2>M5KP<>Ba<>20I< )DBa4ABOk…0IQ <F4>0323h iKEKP032iM<>CEKECE2>03;€<:5032:5bc;5;i0I6 032_8Ubc;58U4I0IQ <F032WBOMzKECP03M:032
:bc;5;0I6 032^Bad92F<F4ABOCP<F032M<>CEKECl2=0I6 032i:5BO;D2KE032iknBO8-@5CE;032_BadD2><F4ABOCP<F032Ih7„GbcMD2BOKlKPbc;52knbc;€<F4>0I4^M5;50Y<F4ABO:DM58U<>CPbc;
:eHJM5;…2>bcM52sr 03;52F03ktdDKP04A*0 )54N036 2F03;=<>Ba<>CP{+:08U032GCE;D2F<F4AM58U<>CPbc;D2_03;q:5CEBavO4ABOkkS0:eHJBO8U<>CPV7CP<=036 2Ih
ž ŸG D¡ N¦O €¡
N¦ ›¦ D¡
i; —bc; )‚03M<[B ) )‚03KP0I4?KP032Gb )_0I6 4-Ba<>CPbc;52 2F0I4AVNCE8U032:5032[kBO8A@5CE;5032YBadD2><F4ABOCP<F032?CE;52F<>BO;D8IC-0I6 032[B¯VO038SKEB
8IKEBOM52>0 IMPORTS h1Š?BO;52ƒKP0•8IBO2RbjM]Q K›H‡b )_0I6 4A/Ba<>CPbc; ;0•kSb7:5CP`50 )DBO2ƒKP032RVgBa4AClBadDKP032R:50KEBqkBO8A@5CE;50bc;
)‚03M<WBOM52>2ACeB ) )‚03KP0I4WKP032^b )_0I6 4ABa<>CEbc;52G:032GknBO8A@5Cl;032^V7M032 )DBa4GKlBS8IKEBOM52F0 SEES ¬|`5v­Nh ¯® h
+
$#
'
'
'
'
2
IMPLEMENTATION MAIN imp
IMPORTS aa.M1,bb.M1
SEES M2
...
END
e­Nh  /1CP03;52^:50VNCE2ACPdDCEKECE<=0[6 0I<GCEk )†bO4A<>Ba<>CPbc;•03;€<F4>0tknBO8A@5Cl;032
Š?BO;52_M5; )54>03kCP0I4<F03k)92ibc;z8U470I6 0M5;50G<F4AB¯V*0I6 0)‚bcM4_KEBƒknBO8A@5Cl;0
LNM5CD4A0*)54N036 2F03;=<F0?KE0)‚bcCE;=<
:eH‡03;=<F4N0I6 0:5M:DCEBavO4ABOknkS0?:eHJBO8U<>CPV7CP<N0O6 h ;52AM5CP<F0W<FbcM<F032^KE032iCE;D2F<>BO;58U032:MAIN
0[kBO8A@5CE;5032iB ) )9Ba4ABOCE2>2F03;=<i2>bcM52
KEB•{|bO4AkS0n:0S<F4AB¯V*0I6 032ƒ8UbcknkS0KE032CE;52F<>BO;58U032:50 M1 Ž aa 0I< bb :5BO;D2KEBz`5vcM4>0n­Nh ±Nh¥/j032knBO8-@5CE;032
V7M032tB ))DBa4ABOCE2>2>03;€<ƒM5;5CELNM03kS03;=<R2>CKP032tb )0I6 4ABa<>CPbc;52¨:0•8U032ƒkBO8A@5CE;5032t2Fbc;=<¨M<>CEKECE2N0I6 0323h sK{ BOM<tBOMD2>2>C
:bc;5;50I4GKP0<ž‹ )‚0t:0K HJCE;52F<>BO;58U0 )†bcM54 aa 0I< bb KP0<Œ‹ )‚0032F< M1 hD~¥bcM4 M2 KP0R;bckw:50RK›HJCE;52><>BO;58U0032F<
KP0<Œ‹ )‚0Oh —<F4AB3VO0I4-2Y8U0I<F<F0t<F4ABO:5M58U<>CPbc;qbc;q8Ubc;5;5B¯©°P<WKE032^b )0I6 4ABa<>CPbc;52Y:032WCE;D2F<>BO;58U032Ih
%!&#
2
%
MAIN
bb.M1
aa.M1
M2
e­Nh ±  4ABO:5M58U<>CEbc;…:032GKECE03;52_:0VNCl2>CPdDCEKlCP<=0Y6 0I<GClk)‚bO4><>Ba<>CPbc;z03;=<F4>0RknBO8-@5CE;032
‰œ
¦ ž¡ †¦ ¢ +¢ †¦ ž¢ ¦ ¦ †¦c¡ 7 *¦ †¦ ¢
/HJCE;5CP<>CEBOKlCE2>Ba<>CPbc; )‚0I4AkS0I<…:0˜:bc;5;50I4 M5;0ˆVaBOKP03M4qCE;5CE<>CEBOKP0§B§Q 8A@5BOLNM0–VaBa4ACEBadDKE0ˆ:50˜KEB knBO8A@DCE;0
BadD2F<F4-BOCP<F0O‘903;D2>M5CP<F0¨KP032Yb )0I6 4ABa<>CPbc;52M<>ClKECE2F03;=<G8U032?VaBa4ACEBadDKP032¨¬|`5v…­Nh 3³c® hj/*H‡b )_0I6 4ABa<>CEbc;–2F0t<F0I4-knCE;0¨M5;0
{|bcCE2WLNM0<FbcM<F032G8U032YCE;52F<F4-M58U<>CPbc;52_2Fbc;=<W0UT036 8IM5<=0I6 0323h
%!&#
' %
('
'
'
'
'
IMPLEMENTATION MAIN imp
...
INITIALISATION ...
OPERATIONS
OP1 ...
END
‚­Nh 3³  ;DCP<>CEBOKECE2ABa<>CPbc;0I<Gb )0I6 4ABa<>CPbc;52[:5BO;52^M5;50knBO8A@5Cl;0 Š?BO;52KP0Y:DCEBavO4ABOknkS0[:eHJBO8U<>CPV7CP<=036 2_8UbO4>4>032)‚bc;5:5BO;=<I‘=K HJCE;5CP<>CEBOKlCE2>Ba<>CPbc;ƒ032F<2F‹Nktd‚bcKECE2N0I6 0)DBa4iM5;:5CE2>LNM0
)DKP03Cl; 0I<M5;0 eQ038A@0ˆL=MDC_032F<:5CE4ACPv 0I6 0qVO0I4A2•KP0 )54A03knCP0I4 0I6 <>Ba<z:0 KEB˜8IKlBOM52F0 INITIALISATION h/j0
:0I4A;DCP0I4§0I6 <>Ba<…0UT7<F4ABOCP<z:0ˆK›H‡b )0I6 4ABa<>CPbc;<F4ABO:5MDCP<F0 )‚bc2>2I03Q :0–M5;50 <F4ABO;52ACP<>CPbc;u:DCP4ACPv¥0I6 0yVO0I4A2zK›HŒ0I6 <>Ba<…`D;5BOK
2F‹7kRd‚bcKECl2=06 )DBa4WM5;q:5Cl2>L=M50 )9KP03CE;•03;€<FbcM54N0t6 :eHJM5;…8U0I4-8IKP0¬|`5v­Nh =® h
"!$#
MAIN_imp
...
e­Nh  4ABO:5MD8U<>CPbc;q:0K›HJCl;5CP<>CEBOKECl2>Ba<>CPbc;n0I<Y:032^b )_0I6 4ABa<>CPbc;D2
* ¦ ›¦ /10R2=0*6 )DBa4ABa<F03M4[:eHJCE;52><F4AM58U<>CPbc;zM<>CEKlCE2=06 :5BO;52 S032F<YKP08IBa4ABO8U<U0IQ 4>0zH PHPh K‚0UT )54AClkS0KEBS2N036 LNM03;€<>ClBOKECP<=0 6
:032_CE;52><F4AM58U<>CPbc;52[¬|`5vn­Nh ® h5/1Bƒ2=036 L=M503;€<>CEBOKlCP<=06 CE;€<F0I4AVNCP03;=<_BOM<>BO;€<^:5BO;D2K HJCE;5CP<>CEBOKlCE2>Ba<>CPbc;SLNM0?:5BO;52KP032
b )_0I6 4ABa<>CPbc;D2Ih
%!&#
' &%
+
IMPLEMENTATION MAIN IMP
REFINES MAIN
INITIALISATION Inst ini 1 ;... ;Inst ini n
OPERATIONS
main BEGIN Inst1 ;... ;Instn END
END
e­Nh  /j02N036 LNM03;58U03kn03;€<
Š?BO;52iKP0^:5CEBavO4ABOknkn0W:eHJBO8U<>CPV7CP<=036 28UbO4>4>032 )†bc;D:5BO;€<G¬|`Dvt­Nh ® bc;S4A0I<F4>bcMVO0GK›HJCl;5CP<>CEBOKECl2>Ba<>CPbc;0I<iK›HŒ0I6 <>Ba<
:eHJBO8I8U0*)5<>Ba<>CEbc; :i036 8U4ACP<>2S:5BO;52ƒKP0 )DBa4ABavO4AB )9@0 )D4N036 8D036 :503;€<Ihp^@5BOL=M50CE;52><F4AM58U<>CPbc;™032F<¨<F4ABO;52F{|bO4Ak]0I6 0z03;
M5;0¨<F4ABO;D2>CP<>CPbc;ybjM˜Q K›HJCl;52F<F4AM58U<>CEbc;\B ) )9Ba4AB¯©°P< )547036 89036 :0z6 :eHJM5;ˆ8IBa4ABO8U<U0IQ 4>0yH / HPh¥p038IC+2>CPvc;DCP`50¨:5BO;52KP0S{|bO4Fr
knBOKECl2>kS0z:032S:5CEBavO4ABOkkS032S:eHJBO8U<>CPV7CP<=036 2nLNM0…K›HJCE;52F<F4-M58U<>CPbc;«032F<S0UT036 8IM<N0I6 0ˆ:5M4ABO;=<SKEBy<F4ABO;52>CE<>CPbc;eh/j0
:5CEBavO4-BOknkS0 )‚bc2>2I03Q :0:503M7T?2N036 LNM03;58U032¥:0+<F4ABO;D2>CP<>CPbc;523hU/ B )54>03kC 0IQ 4>0*2=036 L=M503;58U04>*0 )D4N036 2F03;€<F0KP032jCE;D2F<F4AM58mr
<>CPbc;52 Inst ini 1 B Q Inst ini n :50_KlB[8IKlBOM52F0 INITIALISATIONh /1B:03M7TC›03Q kS0^2N036 LNM03;58U0W4>*0 )D4N036 2F03;€<F0
KP032WCl;52F<F4AM58U<>CEbc;52 Inst1 B Q Instn :0RK›H‡b )_0I6 4ABa<>CEbc; OP1 h
"!$#
"
E1
/Inst_ini_1
/Inst1
I1
E2
...
...
In-1
En
/Inst_ini_n
/Instn
e­Nh  4-BO:5M58U<>CPbc;…:5M 2=036 L=M03;D8U03kS03;€<
"!$#
"
%
"
€ D¡a¡ ž¢ ¡ 7¢ ›¦ ¢ * IF CASE
9¡
/1032RCE;52><F4AM58U<>CPbc;528Ubc;D:5CP<>CPbc;5;503KEKP0322Fbc;=<t2FbcM5VO03;€<–036 8U4-CP<F032tB¯VO038MD;0CE;52><F4AM58U<>CPbc;
8UbckkS0R:5BO;52^K H‡0UTN03k )9KP08IC}rž:032>2>bcM52R¬|`5v­Nh ® h
ELSE ...
IF ... THEN ...
IF aa MAX THEN Inst1
ELSE Inst2 END
e­Nh  s;52F<F4-M58U<>CPbc;52_8Ubc;5:5CE<>CPbc;5;03KEKE0322ACEk)DKP032
/10¨:DCEBavO4ABOknkS0¨X?Z /§8UbO4A4>032)‚bc;5:5BO;=<SBzQ 8U0¨<ž‹ )‚0S:eHJCE;52F<F4-M58U<>CPbc;«¬|`Dv…­Nh ® )‚bc2>2I03Q :50¨MD;yKEbc2>BO;vO0
2F‹7kRd‚bcKECl2>BO;€<?KP0)‚bcCE;=<[:0S8-@bcC}T‚hj/j032:03M7Ty<F4ABO;52>CE<>CPbc;52?CE2>2>M5032Y:5M–KEbc2>BO;vO0)‚0I4AkS0I<F<F03;=<:eHJCE;5:5ClL=M0I4
KEBS8Ubc;5:DCP<>CPbc;z0I<GK›HJCl;52F<F4AM58U<>CEbc;•BO2A2FbN8ICm0I6 0Oh
sK )‚0I4Akn0I<Y:0ƒ8Ubc;5;5B¯©°P<F4>0ƒKEB8Ubc;D:5CP<>CPbc; 03;€<F4>0¨8U4>b78A@0I<2>MDCPVNC ‘58UbcknkS0SCEKe032F<?:0I6 `D;5C¥:5BO;52[KP
0 )DBa4ABgr
vO4AB )D@50)54N036 8D036 :03;€<I‘‚:5Mq8IBa4-BO8U<U0IQ 4A0H / H50I<Y:0RK›HJCE;D2F<F4AM58U<>CPbc;•8UbO4>4>032 )†bc;D:5BO;€<tBQ KEBS8Ubc;5:5CP<>CEbc;eh
%!&#
E1
[aa<MAX]/Inst1
[else]/Inst2
E2
e­Nh  4-BO:5M58U<>CPbc;q:5032^0UT )D4>032>2>CPbc;D2^8Ubc;5:5CP<>CPbc;D;03KEKP0322>CEk)9KP032_03;qX?Z /
/HJCE;52F<F4AMD8U<>CPbc; IF )‚03M<ƒB ))DBa4AB¯©°P<F4>0•2FbcM52 )DKEMD2>CP03M4A2{‰bO4Akn032Ih¥X[;0z:03M7TC 03Q kS0•{‰bO4Akn0032F<)54AbN8-@0
:0nK›HJCl;52F<F4AM58U<>CEbc;
¬|`Dv ­Nh ­ ® h Š?BO;528U08IBO23‘jbc;–BqM5; )‚bcCE;=<?:50n8A@bcC}T–B3VO038; )‚bc2>2>CPdDClKECP<=036 2Y:50
<F4ABO;52ACP<>CPbc;z0I<G; —CASE
±Nh
/ BS<F4ABO;52F{|bO4AknBa<>CEbc;z03; :5CEBavO4-BOknkS0:eHJBO8U<>CPV7CP<N036 2G:508U032G:03M7T…CE;52><F4AM58U<>CPbc;52032F<Y:5C}šG0I6 4A03;€<F0nŽ
 IF Žbc;qŽaCEbc;5;S2I0IQ kS4>0t0I<*:5CP8U4>bc03k8U<FkS03kS0^038U;=bc<W;5:5KEBSCP<>8UCPbcbc;ƒ;5:D03CP;=<><FCPbc4>0^;z8U034>;=b7<F8A4>@0R0I<>8U2 4>b78A@0I<>2 beM Q 032F<+:i0I6 `D;5C )DBa4+K›H‡03;52>03kRdDKE0
 CASE
var=valuex
x
‘²±NhPhPhJ; ch
X[;0R{|bcCE2WLNM0tK H‡bc; B:0I6 `9;5CjKEB8Ubc;5:5CP<>CPbc;j‘bc;\CE;D2U0IQ 4>0RK›HJCE;D2F<F4AM58U<>CPbc;…8UbO4A4>032 )‚bc;5:5BO;=<ƒBQ KlBn8Ubc;5:5CP<>CEbc;]B Q
KEBn2AM5CP<F0t:DMq8IBa4ABO8U<U0IQ 4>0…H / HPh‚Š[BO;D2YKP0t8IBO2YbjM\Q CEKj‹…B )DKEM52>CE03M4A2^CE;52><F4AM58U<>CPbc;52ƒBQ KEBn2AM5CP<F0R:5BO;D2GKEBkz03© kS0
d54ABO;D8A@0:50nK›H‡0UT )D4>032>2>CPbc;–8Ubc;D:5CP<>CPbc;5;503KEKP0¨bc;˜8U470I6 0zM5;0n2N036 LNM03;58U0:jHŒ0I6 <>Ba<>2¨B¯VO038M5;50S<F4ABO;52>CP<>CEbc; )DBa4
CE;52><F4AM58U<>CPbc;eh
"!$#
&%
&
"! $#&% '
/H‡0UT )54A032>2>CPbc; BOOL 032><•036 8U4ACP<F0•BSQ K›HJBOCl:0:eHJM5;0?0UT )54>032>2>CEbc;•8Ubc;D:5CP<>CPbc;5;503KEKP0Oh KEKP0[4>03;=VObcCP0 TRUE
bcM FALSE 2>03KPbc;qLNM0K›H‡0UT )54>032>2>CEbc;z03;€<F4>0$)DBa4>03;=<>@‚03Q 2F032W032F<GV=4ABOCE0bcM…{|BOMD2>2F0¬|`5v­Nh²± ¯® h
p0I<F<F0i0UT )D4>032>2>CPbc;n¬ BOOL(Cond )® )‚03M<*0I© <F4>0*<F4-BO:5M5CP<F0 )DBa4 K›HJM<>CEKECl2>Ba<>CPbc;?:0*K›HJCE;52><F4AM58U<>CPbc; IF Cond
h†Š?BO;52?KP0ƒ:5CEBavO4ABOknkn0ƒ:eHJBO8U<>CEVNCP<N0S6 8UbO4>4>032 )†bc;D:5BO;€<[KEB
THEN aa := TRUE ELSE aa := FALSE END
BOOL
IF Cond1 THEN Inst1
ELSEIF Cond2 THEN Inst2
...
ELSE Instn END
CASE var OF
EITHER value1 THEN Inst1
OR value2 THEN Inst2
...
ELSE Instn END
e­Nh ­  + T )54>032>2ACPbc;52^8Ubc;5:5CE<>CPbc;5;03KEKE032i8Ubck)9KP0UTN032
"!$#
E1
[Cond1 ou var=value1]/Inst1
[!Cond1 and !Cond2 and ...
ou var!=value1 and var!=
value2 and ...]
/Instn
[Cond2 ou var=value2]
/Inst2
e­Nh²±  4ABO:DM58U<>CPbc;…:032^0UT )54>032A2>CPbc;52^8Ubc;5:DCP<>CPbc;5;03KlKP032_8Ubck)DKP0UT7032^03;qX?Z /
%!&#
+
%
aa := BOOL(bb = xx)
e­Nh²±  +T )54>032>2ACPbc;52d‚b=bcKm0I6 03;5;5032
<F4ABO:5MD8U<>CPbc;…032F<G:5bc;582>CEknClKEBOCP4>0SBnQ 8U03KEKP0:0I6 `D;DCP0)547036 8D036 :03knkS03;=<S¬|`5v­Nh ® h
ŸG D¡\£^¢ ž D¡
/HJCE;52F<F4AMD8U<>CPbc; WHILE )‚0I4AkS0I<q:eH 036 8U4ACP4A0™:032…d‚bcM58IKP032z03; KEBO;vcBavO0 ¬|`Dv ­Nh²±O± ® hY/1032 kSbO<>2
0I<
;02Fbc;=< )DBO2^:032^Cl;52F<F4AM58U<>CEbc;52_knBOCE2_2Fbc;=<G;i036 8U032>2>BOCP4A032 )‚bcM4^KEB )54>03MVO0
INVARIANT VARIANT
03; [hD~Ba4Y8Ubc;D2=036 L=M03;=<G03KlKP032^;eHJB ) )DBa4-B¯©°P<F4>bc;=< )DBO2G:5BO;D2^KP0:5CEBavO4ABOkkS0:eHJBO8U<>CPV7CP<=0O6 h9/1032WCE;52F<F4-M58U<>CPbc;52
LNM5Ce2F0I4>bc;=<W<F4ABO:5MDCP<F032W2Fbc;=< Inst 1, ..., Inst n, Inst n+1ch
Š?BO;52˜KE0 :DCEBavO4ABOknkS0 :eH 0I6 <>Ba<>2sr <F4-BO;52>CP<>CPbc;D2˜8UbO4>4>032 )‚bc;5:DBO;€<uBQ KEB<F4ABO:5MD8U<>CPbc; :0 K›HJCE;52><F4AM58U<>CPbc;
"!$#
+
INITIALISATION Inst 0
OPERATIONS
main VAR ii IN
ii := 20 ;
WHILE ii /= 0 DO
Inst 1 ;
...
Inst n
INVARIANT ii : NAT
VARIANT ii
END ;
Inst n+1
END
e­Nh²±O±  XY;0Rd†bcMD8IKP0?03; ¬|`5vR­Nh²± ³c® bc;nbOdD2>0I4>VO0GM5;0_d‚bcM58IKP0^v¥036 ;0I6 470I6 0,)DBa4KE032+<F4ABO;52>CE<>CPbc;52¥0I<S0I6 <>Ba<>2CE2>2>M52+:50WKEB?<F4ABO:5M58mr
WHILE
<>CPbc;…:032GCE;52F<F4AMD8U<>CPbc;52B ) )DBa4><F03;5BO;=<GBOM…8UbO4 )92W:0KEB¨d‚bcM58IKP0 WHILEh7/1BS8Ubc;D:5CP<>CPbc;•03;…{|bc;58U<>CPbc;…:0
KEBVgBa4AClBadDKP0 )‚0I4Akn0I<Y:eH‡0UT036 8IM<F0I4KP032[CE;52F<F4AMD8U<>CPbc;52WCE;=<F0I4A;032¨BQ KlBSd‚bcM58IKP0RbcMy:eH‡03;\2FbO4><>CP4?8U0ƒLNM5Ce032><
V7CE2>CPdDKE0G2>M4_KPii0Y2A8A@036 knB7h5/ Bƒ2>bO4><>CP0?:0YKEBtd‚bcM58IKP0 )DBO2>2F0 )DBa4^K›HŒ0I6 <>Ba< En+1 h=/1Btd54ABO;D8A@0?:5M•:5CEBavO4ABOknkn0
LNM5Ce8UbO4>4>032)‚bc;5:™BQ KEB¨d‚bcM58IKP0?032F<G8Ubc;52><>CP<>Mi0I6 0t:032z0I6 <>Ba<>2 E2,...,En h
"!$#
+
En
/Inst_n-1
/Inst_n
En-1
E1
...
/Inst_2
[ii /= 0]/Inst_1
E2
[else]/Inst_n+1
e­Nh²± ³  A4 BO:5M58U<>CEbc;q:eHJM5;0?d‚bcM58IKP0
%!&#
&%
^ ¢ †¦ ¢ ¡ ¦ c D¡q 5¦ ž €¡ * c ¦O¢
i; b )0I6 4ABa<>CPbc;5;503KDKP032*2 )036 8ICP`D8IBa<>CPbc;52 )‚bc2>2U03Q :03;=<:0328IKlBOM52F032*:0Y8Ubck)‚bc2>CP<>CPbc;ehiKEKP032+CEk )†bO4A<F03;€<
:eHJBOM<F4A032 knBO8-@5CE;032I‘YB ) )DBa4><F03;5BO;=<\BOM—kz03© kS0 )54>bgfF0I< [‘Y:5BO;52 KP0˜dDM<\:eH‡03; M<>ClKECE2F0I4qKP032 2F0I4>V7CE8U032
¬|b )_0I6 4ABa<>CPbc;D2 ® ¬|`5v[­Nh²± =® h sK€0UTCE2F<F0M5;02F‹7;58-@4>bc;5CE2ABa<>CPbc;03;=<F4>0_KEBGknBO8-@5CE;0 )54ACE;58IC )DBOKP0O*‘ )‚bcCE;=<1:eH‡03;=<F4N0I6 0
:0•K›H‡0UT036 8IM<>CEbc; :5M )54Abgfs0I<I‘¥0I<ƒKE032tBOM<F4A032ƒkBO8A@5CE;5032t:bc;=<¨KP032Rb )_0I6 4-Ba<>CPbc;52¨2Fbc;=<ƒB ) )‚03Km0I6 032Ih+Š?BO;52ƒKEB
2)_036 8ICP`98IBa<>CPbc; 8IC}rž:5032>2FbcM52YKEBnknBO8-@5CE;0 M 032><YCEk )‚bO4><N0I6 0R2>bcM52GKP0;5bck MXh iKEKP0032F<G03;52>M5CP<F0tB ) )‚03K-0I6 0
)DBa4G8U0ƒ;bck )‚bcM4W03; M<>CEKECE2>0I4WKP032^b )_0I6 4ABa<>CPbc;D2Ih9/1032Wb )_0I6 4ABa<>CPbc;D2 )‚03MVO03;=< )54>03;5:54>0:032WBa4>vcMDkS03;€<>2G0I<
4>0I<FbcM4-;0I4:032?VgBOKE03M4A2nBzQ KEB`9;y:50¨KE03M4Y0UT036 8IM<>CPbc;u¬|`Dv ­Nh²± =® h1/1B•VaBOKP03M4:032?Ba4>vcM5kS03;=<>2?032F<`T0I6 0
B3VaBO;=<YK›H‡0UT036 8IM<>CPbc; :50KEB )54>03knC›0IQ 4A0CE;52F<F4AMD8U<>CPbc;…:0K›H‡b )_0I6 4ABa<>CEbc; B ) )‚03Km0I6 0Oh
'
$'
'
' ­
IMPLEMENTATION MAIN IMP
...
IMPORTS MX.M
...
OPERATIONS
main VAR zz IN
zz ! MX.OP1(25) ;
END
END
IMPLEMENTATION M IMP
OPERATIONS
res ! OP1(arg1) 4 BEGIN ... END ;
...
END ;
e­Nh²±  ) )‚03K†:jH‡b )0I6 4ABa<>CPbc;q03; /10R:5CEBavO4ABOkkS0:eHJBO8U<>CPV7CP<=036 2G0UT7<F4ABOCP<Y:0R8U032G2 )036 8ICP`D8IBa<>CPbc;52ƒ¬|`5v­Nh²± =® {|BOCE<WB ) )DBa4AB¯©°P<F4A0K›HJB ) )‚03Ke:0
K›H‡b )_0I6 4ABa<>CEbc;BOMn;5CEVO03BOMn:0WKEB[<F4ABO;52ACP<>CPbc;q¬|`5vt­Nh²± ® L=MDC )DBa4><*:0WKEB?<F4-B3V*0I6 0 MAIN VO0I4A2iKEB[<F4AB3V*0I6 0 MXh
/*HJB ))†03K:eH‡b )_0I6 4-Ba<>CPbc;–032F<;bO<N0 6 )9Ba4KP0ƒ8IBa4-BO8U<U0IQ 4A0\H ‚HPhj/10¨4>0I<FbcM4R:0SKEBz2N036 LNM03;58U0n:eH‡0UT036 8IM<>CPbc;«:5BO;52
KEB¨knBO8-@5CE;0 MAIN 032F<^47036 BOKECl2=0 6 )DBa4WM5;0?<F4ABO;52ACP<>CPbc; )DBa4><>BO;=<W:0K›HŒ0I6 <>Ba<Y8UbO4>4A032 )‚bc;5:5BO;=<BSQ K›H‡0UT036 8IM<>CPbc;
:0K›H‡b )_0I6 4-Ba<>CPbc; :5BO;D2WKEB¨<F4AB¯V*0I6 0 MX 0I<GBa4>4ACPVaBO;=<W:5BO;52WKEB¨<F4-B3V*0I6 0 MAIN h
"!$#
MAIN
MX.M
main
E1
/^OP1(25)
E2
E3
e­Nh²±  4-BO:5M58U<>CPbc;q:50K›HJB ) )‚03K‚:eH‡b )0I6 4ABa<>CPbc;
~iKEM52Yv 036 ;0I6 4-BOKP03kS03;=<I‘1KP032[:5CEBavO4ABOknkn032[:jHJBO8U<>CPVNCE<=036 22>bc;€<8IB )DBadDKE032[:50tkSbc;=<F4>0I4B Q )†03My:0¨8A@bc2>032
)54303Q 2 KP032ekz03© kS032¥BO2)‚038U<>2j:0*8UbcknkƒM5;5CE8IBa<>CEbc;2>8A@036 kBa<>CE2=036 2 )DBa41KP032e:5ClBavO4ABOknkS032j:50*2=036 L=M03;D8U0 )547036 2F03;=<=036 2
03;ƒ:i0I6 dDM< :50i8A@DB )DCP<F4>0Oh ;0Uš‚0I<KP032 :DCEBavO4ABOknkS032 :0i2N036 LNM03;58U0_kS0I<F<F03;=<03;tB¯VgBO;=<¥KE032 kS032A2>BavO0328ICP4A8IM7r
KEBO;=<03;€<F4>0^KP032¥bOd7fF0I<>2IhOŠ?BO;52+;bO<F4>0_<F4ABO:DM58U<>CPbc;¨;bcM52¥B3VObc;52M<>CEKECE2N0_6 8U032+k]036 8IBO;5CE2AkS032 )‚bcM4¥2>‹Nktd‚bcKECE2F0I4
KP032[B ) )‚03KE2G:50tk]0I6 <>@b7:032?:eHJM5; bOd7fs0I<?:*0 )DMDCE2GK›H‡0UT036 8IM<>CPbc;ˆ:eHJM5;50Rk«0I6 <>@b7:0S:eHJM5; BOM5<F4>0tbOdfs0I<Ih‚Š?BO;52
KP032[:5CEBavO4ABOkkS032Y:jHJBO8U<>CPVNCE<=036 23‘‚KE0t2F‹7kRd‚bcKECl2>kS0R;eH‡032>< )DBO2[KP0ƒkz03© kS0O‘eKP032GbOdfs0I<>2?2Fbc;=<?4>*0 )547036 2F03;=<=036 ,2 )DBa4
:032^<F4-B3V*0I6 0323‘90I<GKlBS8UbcknktMD;5CE8IBa<>CPbc;q8UbO4A4>032 )‚bc;5:…BOM7T…8A@5BO;5vO03kS03;€<[:0<F4AB¯V*0I6 032Ih
G03knBa4ALNM0ŽcXY;¨0UT703k )DKE0032><:5CE2 )‚bc;5CEdDKP0*:5BO;52+KE0W8A@5B )DCE<F4>0 :5BO;52+KP032`DvcM4>032 Nh N‘ Nh N‘ Nh
$
"!$#
&%
"
" " "
"
"
+
0I< Nh = h
"
" # ^ "
_ ‚
% # % " )
Y„ bO<F4>0t8Ubc;=<F4ACPd9M<>CPbc;…:5BO;52GK›HJCE;=<=0I6 vO4-Ba<>CPbc; :032Gk«0I6 <>@bN:5032G{|bO4AkS03KEKE032_0I<Y2F03knCPr {‰bO4Akn03KEKP032_032F<W47036 BOKlCE2=0 6
)DBa4K H‡0UTN<F4ABO8U<>CEbc;:0WV7M032*X?Z\/ 0I<:0G8Ubc;=<F4ABOCE;=<F032 ” p_/\:0*)DM5Cl2+M5;0W2)_036 8ICP`98IBa<>CPbc; [h7p_0I<F<F0W0UTN<F4-BO8mr
<>CPbc;y2IH‡0Uš‚038U<>M0S2F03KPbc;y:03M7T :5CP4A038U<>CPbc;52Ih†/1B )54>03knC›0IQ 4>0ƒ8UbO4>4>032)‚bc;5: B•Q K›H‡0UTN<F4-BO8U<>CPbc;\:5032[Cl;{‰bO4-knBa<>CPbc;52
2F<>Ba<>CELNM032W:50RKEBS2 )_036 8ICP`98IBa<>CPbc;…0I<GK›H‡0UT )54>032A2>CPbc;…:0SŽ
 Š?p_bcCEBa;€vO<F4-4ABOBOknCl;€kS<F03032 2G” :5p_0/*8IKEh BO2>2F032I‘
/1B: 03M7TC 03Q kS0 )‚0I4AkS0I<W:0Rknbc;€<F4>0I4YKP08Ubck )‚bO4><F03kS03;=<Y:5M…2>‹N2F<I03Q kS0 58U038IC18UbO4>4A032 )‚bc;5:qBOM7T…CE;{|bO4AknBgr
<>CPbc;52G:‹N;DBOknCELNM032_:0KEBS2 )_036 8ICP`98IBa<>CPbc;q0UT )54ACEk]0I6 032¨BSQ K›HJBOCE:0:5032W:5CEBavO4ABOkkS032W2>M5CEVgBO;=<?Ž
 Š?Š?CECEBaBavOvO4-4-BOBOknknkSkS03032G2G:j:jHŒHJ0IBO6 <>8UBa<><>CPVN2FrCE<=<F034A6 BO23‘;52>CP<>CEbc;52I‘
 Š?CEBavO4-BOknkS032G:502=036 L=M03;D8U0Oh

, A, " !"# #%$"&
('Œ ž ¥¦ N¦ ¢ * 9¡
9¡ * e¡a¡g D¡
„YbO<F4>0:036 knBa4-8A@08Ubc;52>CE2F<F0YBWQ 0UTN<F4ABOCE4>0*KP0*:5CEBavO4-BOknkS0*:0*8IKEBO2A2F032e4>0*)547036 2>03;€<>Ba<>CP{5:jHJM5;0+2)_036 8ICP`D8IBa<>CEbc;
[h†p038ICe032><W4N036 BOKECE2N0 6 )9Ba4W4AB ) )‚bO4><tBSQ LNM5Ba<F4>0vO4-BO;5:52 )54-CE;58IC )‚032YŽ
 KEKE03032^2W038Ubc;5;€2F03<Fkt4-BOdDCE;€KP03<F2W032 :5” 0p_<ž‹ /«)DBaBOvO2>0O2Fb7‘ 8IC-0I6 032YBOM7Tz03;52F03ktdDKP032G:0<ž‹ )DBavO0O‘
 KE032WKECP03;5203;=<F4>0RknBO8-@5CE;0323‘
 KE032^VgBa4-CEBadDKP032^2>8IBOKlBOCP4>032^bcM…03;D2F03kRd9KECE2F<F032Ih
/j$0 )5 4ACE;58IC )DBOK‚CE;58Ubc;=V*036 ;5CP03;=<G:0t;bO<F4>0Rk]0I6 <>@b7:0 )DBa4G4AB ))†bO4A<BQ 8U03KEKP0:%0 )+0 *NCl@ ³ ± 1032><YK›HJM<>ClKECE2>Ba<>CPbc;
:0?8Ubc;€<F4-BOCE;€<F032 ” p_/ )‚bcM4i:5CPšG0I6 4>03;58ICE0I4_KE032i{|bc;58U<>CPbc;D2I‘=d9C fs038U<>CEbc;52I‘=Cl;gfs038U<>CEbc;520I<^2>M54 fs038U<>CEbc;52<FbO<>BOKE032
bcM )9Ba4><>CP03KEKP0323h5„…036 BO;5kSbcCl;52YK HJM<>CEKECE2ABa<>CPbc;z:0R2F<N0I6 470I6 bO<ž‹ )‚032 )DBOKEKlCP08U0tknBO;5LNM0R:5$0 )547036 8ICE2ACPbc;qBOM ;DCPVO03BOM
)DM4A03kS03;€<vO4AB )D@DCEL=M50Oh ;•bcM<F4A0[KP032_B¯VgBO;=<>BavO032G:0?;bO<F4>0:036 knBa4-8A@02Fbc;=<_<F4I03Q 2WCE
k )‚bO4><>BO;=<>2Ih iKEKP0Y032F<
M5;5CE{‰bO4Akn0R8Ubc;€<F4-BOCP4>03kS03;=<B•Q KlBk]0I6 <>@b7:0S:"0 )+0 *NCl@\03;y8U0SL=MDC 8Ubc;58U0I4-;0SKP032G03;D2F03kRd9KP032Ih K 032F<?:bc;58
)‚bc2>2>CPd9KP0G:eHJBOM<FbckBa<>CE2F0I4WKP0 )54>b78U032>2>M52_:eH‡0UT7<F4ABO8U<>CPbc; )9M5CE2>LNMeHJCEK5;jH‡032F< )DBO2^;i036 8U032>2>BOCP4A0?:jHJCE;€<F0I4 )54N0I6 <F0I4WKEB
2 )_036 8ICP`98IBa<>CPbc; [h
'
'
'
'
O±
('Œ‰œ †¦ ¢  D¡ 7¢ ¦ ¦O D¡•Ÿ  ž¡ ž D¡ c¢ ¦ D¡ 7¢ + D¡  ¦
ª7M54_K HŒ036 8-@5BO;=<>CEKEKPbc;…:eH‡0UT703k)DKE032^L=M0;bcMD2^B3VObc;52G<F4ABOCP<=0O6 ‘DKP0,)DBO2>2ABavO0:eHJM5;02)_036 8ICP`98IBa<>CPbc; BSQ M5;0
kSb7:i036 KECE2>Ba<>CEbc;•X?Z\/er ” p_/–23H‡032F<^B3V*0I6 470t6 v 036 ;i0I6 4ABOKP03kS03;=-< )‚bc2>2>CEdDKP0Oh=/1032 )54>bOdDK›03Q kS032 )‚bcM4_KP032 )54>b )D4AC-0I6 <=036 2
2Fbc;€<KPb78IBOKECE2N036 2BzQ :032?:036 8IKEBa4-Ba<>CPbc;52CE
k )9KECE8ICP<F032GbcMuB•Q :5032Y0UT )54>032A2>CPbc;52[8Ubck )DKP0UT70328U47036 BO;=<R:0¨;bcM7r
VO03BOM7T™03;D2F03kRd9KP032R:0•8Ubc+M )DKP032z¬|4>03KEBa<>CEbc;52I‘1{|bc;58U<>CPbc;D2 ® LNM0;5bcM52R;eHJB¯VNCEbc;5$2 )9BO$2 )5470I6 V7M]CE;5CP<>CEBOKE03kS03;€<
:0\<F4ABOCP<F0I4z:5BO;52;5bO<F4>0\B ) )D4>bN8-@0 :0\v 036 ;i0I6 4ABa<>CPbc;:5M :5CEBavO4ABOknkn0\:0 8IKlBO2>2F032Ih^p032 )D4>bOdDK›03Q kS032•2F0
47*0 6 )‚0I4A8IM<F03;=<tBOM52A2>C )‚bcM4KP032b )_0I6 4-Ba<>CPbc;52ƒKPbO4A2:5M )DBO2>2>BavO0•:0nKEB )‚bc2F<srž8Ubc;5:DCP<>CPbc;ˆ0UT )54ACEk]0I6 003; B Q
KEB )†bc2><srž8Ubc;5:5CP<>CPbc;«0UT )54ACEk]0I6 0•03; ” p_/*h¥/j032¨2FbcKEM5<>CPbc;52R8Ubc;D2>CE2F<F03;=<ƒ:jHJM5;0 )9Ba4><zB Q ¬|4>0 ® 2F<F4-M58U<>M4>0I4¨KEB
2 )_036 8ICP`98IBa<>CPbc; )‚bcM40UT )9KECE8ICP<F0I4<FbcM<F032^KP032_:036 8IKEBa4ABa<>CEbc;52_;i036 8U032>2>BOCP4>032W0I<_:jHJBOM<F4>0 )DBa4><BtQ v¥036 ;0I6 4>0I4YKP032
8IKEBO2>2>032^0I<GKP032WBO2A2FbN8IClBa<>CPbc;52W2>M ) )DKm036 kS03;=<>BOCP4>032Ih
YbO4AknCE2e8U032 )54>bOdDK›03Q kn032I‘¯KP032e8Ubc;=<F4ABOCE;=<F032 ” p_/Sv 036 ;i0I6 4N0I6 032+;bcM52 )9Ba4ABOCE2>2F03;=<jKECE2ACPdDKP032D0I<18Ubc
k )547036 @03;D2>C}r
dDKP032?LNMbcCELNM0SkSbcCE;52?8Ubc;58ICl2F032L=M50¨KE03,2 )54N036 :5CE8IBa<>20UT )54AClk«036 2?03; Yh p_03KEB•032F<:*M © )DBa4><>CP03KlKP03kS03;=<[BOM7T
b )_0I6 4ABa<F03M4-2Y:5Cl2 )‚bc;5CPdDKP03203; LNM5Ce;0 )‚bc2>2I03Q :03;=< )DBO2WMD; 036 L=M5CEVgBOKP03;=<G2F<F4-CE8U<^0I<G:5CP4A038U<^03; ” p_/«knBOCE2
LNM5Ce2IH‡0UT )54ACEkS03;=< )DBa4GK HJBO2>2Fb78ICEBa<>CPbc;…:0 )DKlM52>CP03M4-2i8Ubc;52><F4AM58U<>CPbc;523h
( 'Œ ¦ D¡g * ¦ N¦ ž¢  D¡ ¢ 5 D¡y¡¯¦ †¦ * 9¡
/1032¥:DCEBavO4ABOknkS032¥:08IKEBO2>2F032B ) )‚bO4><F03;=< M5;50V7M02AM4 KP032¥2F<F4AMD8U<>M4>032¥:0:5bc;5;i0I6 032M<>CEKECE2N0I6 032 :5BO;52¥KEB
2 )_036 8ICP`98IBa<>CPbc; [h _CP03;zLNMeHJCEKE2 )DM5CE2>2>03;€<i0UT )54-CEkS0I4_8U0I4><>BOCE;032_8Ubc;=<F4ABOCE;=<F032W:0?K›HJCE;=VgBa4AClBO;€<I‘N;bO<>BOknkS03;=<
)DBa4KP032R2F<=0I6 4N0I6 bO<ž‹ )†0323‘¥KP0¨<Œ‹ )DBavO0•:032?VaBa4ACEBadDKP0323‘†0I<>8ahP‘ CEKE2;
0 )‚03MVO03;=< )DBO203;˜:036 8U4ACE4>0SKEBz<FbO<>BOKECP<N0O6 h sK
0I6 <>BOCP<¨:bc;58n;036 8U032>2ABOCP4>0z:eHJM<>CEKECl2F0I4M5;˜BOM<F4>0 )54>b78D036 :i0•6 8Ubcknkn0KEB…v¥036 ;0I6 4ABa<>CEbc;]:5032R8Ubc;=<F4ABOCE;=<F032 ” p_/
)‚bcM4 )DBOKEKECP0I48U032WknBO;5LNM032Ih YbO4AknCE2L=M503KEL=M5032 )D4>bOdDK›03Q kS032_:0?8Ubc;58ICE2>CEbc;e‘NKE0328Ubc;=<F4ABOCE;=<F032 ” p^/–;bcM52
)DBa4ABOCl2>2F03;=<WKECE2>CPd9KP0320I<Y8Ubc
k )547036 @03;52ACPdDKP032Ih
, s’ !"#% # $"&
( '|œ ž ¥¦ N¦ ¢ * 9¡
9¡ 5¦ †¦c¡ -¦ ¡ ¦ ž¢ ¡
„YbcM52jB¯VObc;52 )D4N036 2F03;€<N06 K›H‡0UTN<F4-BO8U<>CPbc;R:0321:5CEBavO4ABOknkn032j:eHŒ0I6 <>Ba<>2sr <F4ABO;52ACP<>CPbc;52 :*0 )DM5CE2‚M5;50*2 )036 8ICP`D8IBa<>CPbc;
[h KEKP0<F4ABOCP<F0^M5;ƒ8IBO2 )DBa4><>Cl8IM5KECP0I4:0322 )_036 8ICP`D8IBa<>CEbc;52 ™47036 BOKlCE2=0I6 032*BOM<FbcM4+:0^2 )_036 8ICE`D8IBa<>CPbc;52WB?Q ;bcktd54>0
:eH 0I6 <>Ba<>2S`D;DC›hªNbc;]M<>CEKlCE2>Ba<>CPbc;«;i036 8U032>2>CP<F0…M5;0zk]0I6 <>@b7:0z:eHŒ036 8U4ACP<>M4>0 )DBa4A<>CE8IM5KEC›0IQ 4>0•:032¨2 )_036 8ICP`D8IBa<>CEbc;52Ih
KlKP0 )‚0I4AkS0I<K›HJM<>CEKlCE2>Ba<>CPbc;n:DMKEBO;5vcBavO0 u4>032F<F4>03CE;=<BtQ M5;•:0?2F032_2FbcM52sr 03;D2F03kRd9KP032iBOM5<FbcM4^:0Y:bc;D;i0I6 032
2>8IBOKEBOCE4>032+<ž‹ )_0I6 032BRQ K›HJBOCl:0W:032+03;52>03kRdDKE032ƒ036 ;=MDk«0I6 4N036 2Ih„…036 BO;5kSbcCl;528U0I<F<F0?k«0I6 <>@b7:-0 )‚0I4AkS0I<*:50WV*0I6 4ACE`50I4
KP032Y4I0IQ vcKP032?:0RvO032><>CPbc;\:DM 8IBO@5CP0I4?:032[8A@5Ba4AvO032Ih ;q0Uš‚0I<I‘‚03KEKP0R:036 8U4-CP<[KlBnv 036 ;i0I6 4ABa<>CPbc;–:0ƒ:5CEBavO4ABOkkS032
:eH 0I6 <>Ba<>2sr <F4ABO;D2>CP<>CPbc;523hNp032+:5CEBavO4-BOknkS032+2Fbc;=<+0UTN<F4-BOCP<>2+4>032 )‚038U<>CPVO03kn03;€< )‚bcM4+M5;0^2F03MDKP0iVaBa4ACEBad9KP0^knBOCE2
CEKE2 )‚03MVO03;=<^0I© <F4>0W{ M52>CPbc;D;i036 2+Ba`D;S:eH‡bOd5<F03;5CE4*M5;S2F03M5K:5ClBavO4ABOknkS0 )‚bcM4*KEB[<FbO<>BOKECP<N0[6 :0WKEB?2 )_036 8ICP`D8IBa<>CEbc;eh
” ; )‚03M<BOKEbO4A2 )DKlM52[{|BO8ICEKE03kS03;€<RV*0I6 4ACP`D0I4t:032 )D4>b )54ACm0I6 <N036 2ƒCE;€VaBa4ACEBO;=<F032¬|430IQ vcKP0z:0SvO032F<>CEbc;«:5M–8IBO@DCP0I4
:032W8-@5Ba4>vO032 ® h
( '|œ ‰œ ¥¦ N¦ ¢ * 9¡
N¦ ¦ D¡
9¡ * ¡ * 7 ¦
„YbcM52B3VObc;52 )547036 2>03;€<N06 M5;0G0UTN<F4ABO8U<>CEbc;•:5032i:5ClBavO4ABOknkS032:0Y2N036 LNM03;58U0?0I<_:eHJBO8U<>CPV7CP<=036 2_:*0 )DM5CE2iM5;0
2 )_036 8ICP`98IBa<>CPbc; Yh/1032:DCEBavO4ABOknkS032:0?2=036 L=M503;58U0kSbc;€<F4A03;€<^KP032CE;=<F0I4ABO8U<>CPbc;5203;=<F4>0[KE032:DC}šG0I6 4>03;=<>2bOdr
fF0I<>2R:5M˜:DCEBavO4ABOknkS0:08IKEBO2>2>032Ih¥p038IC03;˜<F0I4AkS032t:0n<F03k )92R:eH‡0UT036 8IM<>CPbc;e‘:0:5Ba<>Ba<>CEbc;˜0I<t:jH‡bO4A:4>0
:0KEBO;D8U03kS03;€<Y:032WkS032>2ABavO032G:08UbcknkƒM5;5Cl8IBa<>CPbc;eh5„…036 BO;DkSbcCE;52WClK‚0UT7CE2><F0RM5;0?4>032F<F4-CE8U<>CPbc;™BSQ <FbcM52G8U032
B ) )‚bO4><>2YL=M5Cj4N036 2>CE:0R:DBO;52WKP0{ BOCP<GLNM0RKE0<F03k )D2[;eH‡032F< )9BO2W{|bO4AknBOKECE2ABadDKP0CE;=<=0I6 vO4-BOKP03kS03;=<Y03; 8U0tLNM5C
'
' ' ' '
$
'
'
'
'
'
'
'
'
' $ '
³
KECEkCP<F0ƒKE032B ) ‚) bO4><>2<F03k)‚bO4>03Kl2:0nK›H‡0UT7<F4ABO8U<>CPbc;™:5032:5CEBavO4ABOkkS032:0n2N036 LNM03;58U0Ohp_038IC*;eH‡032F<)9BO2M5;
)54>bOd9K 03Q kS0i8IBa4¥bc;t;jHJB ) )DBOMVN4ACP<)DBO2¥KEBW2 )036 8ICP`D8IBa<>CPbc; BGQ <F4AB3VO0I4A2K›H‡0UT7<F4ABO8U<>CPbc;jhg/1032 :5ClBavO4ABOknkS032 :eHJBO8mr
<>CPV7CP<=036 2Yknbc;€<F4>03;=<Y2AM4><FbcM<GK H‡0UT036 8IM<>CPbc;yCE;=<F0I4A;0R:5032Wb _) 0I6 4ABa<>CPbc;D2Y:5BO;D2WKP0R:0I6 <>BOCEK h9Š[0t8U0t{|BOCP<YCEKe{ BOKEKEBOCP<
M<>CEKlCE2F0I4KP032+CEkD) Km036 kn03;€<>Ba<>CPbc;D2+:032*8Ubck‚) bc2>BO;=<>2 ¬|03;nKEBO;vcBavO0 + ® 8IBa4iKP032+2_) 036 8ICP`D8IBa<>CEbc;52*BadD2F<F4-BOCP<F032
;0 ‚) bc2>2I03Q :503;€< D) BO2RKE0;5CPVO03BOM«:0:0I6 <>BOCEKE2ƒBO:036 LNM5Ba<‚) bcM4t8U0<ž‹ ‚) 0:eH‡0UT7<F4ABO8U<>CPbc;jh „YbcM52R4A03knBa4ALNMbc;52
BOM52>2AC KP0t4>038UbcMVN4>03kS03;=<,D) Ba4K›H‡0UTN<F4-BO8U<>CPbc;ˆ:032?B ) ‚) 03KE2G:eH‡b _) 0I6 4-Ba<>CPbc;–:032[BO2‚) 038U<>2:0t8UbcknkƒM5;5Cl8IBa<>CPbc;
03;=<F4>0RKP032^bOdfs0I<>2Y2>8A@036 knBa<>Cl2=036 2-D) Ba4YKP032W:5CEBavO4-BOknkS032W:02N036 LNM03;58U0Oh
( '|œ ¦ D¡g * ¦ N¦ ž¢  D¡ s¢ †¦ ¢ i¡ * 9¡
/1032ƒ:DCEBavO4ABOknkS032t:eHŒ0I6 <>Ba<>2sr <F4ABO;52ACP<>CPbc;52)‚0I4AkS0I<F<F03;=<¨:eH‡0UT )D4ACEkS0I4RKE08Ubck)‚bO4><F03kS03;=<¨:0•kBO;5C 0IQ 4>0
8Ubc;58U0*)5<>M503KEKP0+0I<")DKlM< bO© <jBadD2F<F4ABOCE<Ih YM8Ubc;=<F4ABOCP4A0O‘¯KP032j:5ClBavO4ABOknkS032e:0*2N036 LNM03;58U0i0I<1:eHJBO8U<>CPV7CP<N036 21knbc;€<F4>03;=<
M5;0[V7M0[:0I6 <>BOClKEK-0I6 0:5M8Ubck )†bO4A<F03kS03;€<^:5Mz2F‹72F<I03Q kS0Oh sKD0UTCE2F<F0?M5;•4>038UbcMVN4>03kS03;=<^:0?K›H‡0UTN<F4-BO8U<>CPbc;z:032
:5CEBavO4-BOknkS032W:02N036 LNM03;58U0 )DBa4GK›H‡0UT7<F4ABO8U<>CPbc;\:032W:5ClBavO4ABOknkS032W:jHJBO8U<>CPVNCE<=036 23hD/*H‡0UT7<F4ABO8U<>CPbc;y:0K›HJB ) )‚03K
:eH‡b )_0I6 4ABa<>CEbc;q:5Mz:5CEBavO4ABOkkS0[:jHJBO8U<>CPVNCE<=036 2W4>*0 )54>03;5:•KP032 )54-CE;58IC )‚032*:032^:DCEBavO4ABOknkS032^:50[2N036 LNM03;58U0OhD/1032
:5CEBavO4-BOknkS032:jHJBO8U<>CPVNCE<=036 2_2Fbc;=<_M5;0WVaBa4ACEBO;=<F0[:5032i:5ClBavO4ABOknkS032i:eHŒ0I6 <>Ba<>2sr <F4ABO;52>CE<>CPbc;52_:5BO;52iM5;n4>0IvcCl2F<F4>0
)DKEMD28Ubc;D8U4>0I<Ih
$
'
'
'
•5
" % " # $# " % " % " # 'u% # #$ % " i ,G, A, .( $ !
~iKEM52>CP03M54A2‚<F4AB3VaBOM7TRbc;=<+:i0 6 f¯B[Q Bad‚bO4A:0_6 KEBW<F4ABO:DM58U<>CPbc;R:50i2_036 8ICP`98IBa<>CPbc;52¥{‰bO4-kS03KEKP0321VO0I4A2 KE032 KEBO;5vcBavO032
CEk _0I6 4-Ba<>CP{|2_<F4-BO:5CP<>CPbc;5;503KE2Ih ” ; †03M5<4A0IvO4>bcM ‚0I4^KP032_<F4ABO:5M58U<>CEbc;52_03;q:03M7T•vO4>bcM ‚03
2 DBa4W4AB †bO4A<BOM7T
BO2 ‚038U<>2?:0tknbN:5MDKEBa4ACP<N0O6 h9/10 D4>03knCP0I4YvO4>bcM ‚0t;0¨8Ubc;52F0I4AVO0 9BO2YKP032[BO2 ‚038U<>2?:0¨kSbN:DM5KEBa4ACP<N0R6 8UbckkS0
KP032^<F4-BO:5M58U<>CPbc;52?Ž
 Š[Š[00 VOVO0I0I4-4-2[2 p” p_ BO k‘ K a­ h
/*HJBOM5 <F4>0_vO4>bcM ‚0kBOCE;€<>CE03;€<+KEB[;bO<>CPbc;¨:0^kSb7:5M5KEBa4-CP<=06 bcMSKEB[2>MdD2><>CP<>M0 9Ba4*KEBY;5bO<>CPbc;ƒbOd7fs0I<+:0^8IKEBO2A2F032
8UbcknkS0tKP032^<F4AB¯VgBOM7Tq2>MDCPVgBO;=<>2?Ž
 Š[Š[00 !?” Šd7fs"Z 038U< ˆ(VOVO0I0I4A24A#2 €cB3B3VaVaB $B Op Op % O± ‘ ³‘ ‘ ‘ h
„YbcM5 21BOKEKEbc;5218Ubcknkn03;58U0I4&9Ba410UT'†bc2>0I4 KP0321bOd7fs038U<>CE{|210I<(DBa4¥:bc;5;0I4¥M5;B‚0I4*8I) MR:5032j<F4AB¯VgBOM7TR:DM54>bgfF0I<
+G„ / , ” .
Z -ah ;52AM5CP<F0n;bcM52 547036 2F03;=<F0I4>bc;52¨M5;(0I6 <>Ba<S:0K›HJBa4><Rv¥036 ;0I6 4ABOKR.B Q 54>*b ‚bc2R:5032R:5C}šG0I6 4>03;=<F032
<F4ABO:5MD8U<>CPbc;52:5/0 DM5CE2*MD;0G2 _036 8ICP`98IBa<>CPbc;{|bO4AkS03KlKP0WVO0I4A2M5;KlBO;vcBavO0YCEk 0I6 4ABa<>CP{eB3VaBO;€<^LNM0GKP032ibcM<>CEKl2*:0
<F4ABO:5MD8U<>CPbc;q:5M 54Abgfs0I< ” Z'2FbcCP03;=<W47036 BOKECl2=036 2Ih
,G, s’ 0 1 32465
p0I<F<F70 DBa4><>CP0S:0n;bO<F4A0S<F4AB3VaBOCEK›‘eKEBzv¥036 ;0I6 4ABa<>CPbc;]:0S8Ub7:0O‘jB 0I6 <=06 47036 BOKECE2N0I6 0:5BO;52KP0n8IBO:4A0n:5"M 54>bar
fF0I< ” Z 8¬ ” 5<>CEkCE2=0•6 Z 036 kSbcCP4>0 ® hip90 54>bgfF0I<tV7CE2F0–B Q <F4-BO:5M5CP4>0:032¨2 036 8ICP`D8IBa<>CPbc;D2 $03;«KlBO;vcBavO0
8Ubck DClKEBadDKP0n0I<¨0UT036 8IM<>BadDKP0…:0zknBO;5C›0IQ 4>0•*b 5<>CEkCE2=0•6 ;5bO<>BOknkS03;=<ƒ03;«<F0I4AkS0…:eH‡b78I8IM DBa<>CEbc;«k]036 kSbcCE4>0Oh
/*H‡bOdfs038U<>CP{`D;DBOKe032F<G:0 54>b7:5M5CP4>0O‘jB Q 9Ba4><>CP4G:0:2 036 8ICP`D8IBa<>CPbc;5#2 [‘D:03;2 54>bOvO4ABOknkn032 ‚bcM4W:03;2 DKEBa<F0Ur
{|bO4AkS032Y03kRdDBa4-L=M0I6 03<2 DBa4[0UT703k DKP0ƒ:032Y8IBa4A<F032S9B Q DM58U0Oh ;ˆ± 7‘j:5Ba<F0¨:5M :0I6 dDM5<[:5.M 54>bgfF0I< ” Z™‘
KEB2FbN8ICm0I6 <N70 6 =[03k 9KEM52GCl;5CP<>CEBa<F03M4Y:5>M 54Abgfs0I#< ” Z M<>CEKECE2ABOCP<WK›@H ?_<F03KECP0I#4 :0Sp_KP03Ba4mªN‹…knBOCl2GKP0ƒ8UbN:0Sp
bOd5<F03;NM§7B Q DBa4A<>CP4Y:0ƒ2 _036 8ICP`D8IBa<>CEbc;5<2 ;0ƒ8Ubc;€VO03;5BOCE#< 9BO2 ‚bcM4[:032[B DKECE8IBa<>CEbc;52G8IBa4><F032n9B Q DM58U0¨8IBa4
%
+ + +
ACBEGD FCEHJIKLHJMON@PRQHSTUEGFVWEGXZYUQPS[P\RN@EGF]WP\RN@XGN@EGS@S@EGF^WS@E BEGD FCEHJIKLHJMON@PRQHSTUE_OEGXZYUE`_OXaYEbE`McT$d N@QQP:eHJMON@PRQEGQVfEGXaYUg
QPS@PR\RN@EGF;]$PR\RN@XGN@EGS@S@EGFh B KLVi]'jH E`D M ED klN@FbEGQ mS[HX`ERnoT$EGp F#qGrRrrsnomHJ_bS[E#klN[QUN@F8ME`p _OE#TsE#S[H B EGXaYE`_OXaYE;E`MlS@EklN[QUN@F8ME`p _OE
TUED Std uvQTsIF8MC_ON@ERwuSxHy_OD E{XGz I XGPklklEklN@FCFCN@PRQ9TUE|tHe}D PJ_ON@FCE`_S[HXGPQF8MON~MOIUMON@PRQ9TUEmU_OP:8E`MOFlN@QUQP:eRHJQ/MbTsE_OEGXaYE`_OXaYE;E`MTsE
T E`e}„ZEG… S@PRmUm*EGklEGQ/MiXGP/Pm E`_aH:MON@|E`Q{MC_OEcE`Q{MC_OE`mU_ON@FCEGFxE`M E€/IN@m*EGF(TsEcSH_OEGXZYUE`_OXaYE‚mUIƒS@N[€/IERw
EcFCEGmUMOEGk†ƒU_OE‚‡ˆRˆ{q;H
p kHJ_OF&‡JˆRˆR‰#^UY/MCMOm^ ŠŠJS@N~|‹XRw IQUN@e{gŒ|XGPRkMOERw |_ZŠRŽ&MaH:MON@ƒ*PRIEZMZŠ:>‘’‘i“c”
$ CEK¨0I6 <>BOCE<ƒ<F4Ab*]vObcM54AknBO;5:™03;«4A032>2FbcM4A8U032ƒk]036 kSbcCP4A032Ih¥„YbcM52¨BOKEKPbc;D20UT'†bc2>0I4ƒKP032tbOd7fF038U<>CP{ 2t:5M 54>bgfF0I<
” Z 0I
< ‚bcM4A2>MDCPV=4A;0 DBa4GMD; 0I6 <>Ba<Y:0RK HJBa4><^4>03KEBa<>CP{¥BOM7Tz<F4AB3VaBOM7T…03;€<F4A/0 54ACE2W:DBO;52^8U0t:0I4-;5CP0I43h
,G, 4y1 # $
1 24 5
/1032R8IBa4><F032…B Q DM58U0n2>bc;€<ƒM5;˜kSb ‹O03;™:02N036 8IM54ACE2F0I4ƒM5;–2F‹72F<U03Q kS0•:jHJCE;{|bO4AknBa<>CPbc;ehe/10328IBa4><F032t<F4ABgr
:5CP<>CEbc;5;03KEKP032Y2FbcM7š‚4ABOCP03;=<:0SKP03M4knBO;5LNM0S:0 50UTCPdDCEKECE<=0t6 0I<:0SKP03M4:5C 8IM5KP<=0S6 :0 54>bOvO4ABOknkBa<>CPbc;eh
?Y`D;˜:
0 DBOKlKECP0I48U032RKlCEknCP<>Ba<>CPbc;D2I‘eM5;–;bcMVO03BOM™<žf‹ †0:08IBa4><F032tB0I6 <=0•6 8Ubc‚; 8I) Mjh¥p032R8IBa4A<F032t:5CE<F032bcM7r
VO0I4><F032[;0R2Fbc;=;< 9KEM52_47036 2F0I4>V*0I6 032BOM7Tq2 _036 8ICEBOKECl2F<F032G8IBa4[03KEKP032WBO8I8U/0 D<F03;€<?:032GKlBO;vcBavO032Y:50R@5BOM<G;DCPVO03BOM
<F03K*LNM70 cB¯VgB7h¥Š[0 DKEM523‘†03KlKP03<2 ‚0I4AkS0I<F<F03;=<R:0n8A@DBa4>vO0I4 DKlM52>CP03M4-2YB 9KECE8IBa<>CPbc;52?0I< 54>*b ‚bc2F03;=<B…Q 8U032
B DKlCE8IBa<>CPbc;52i:032_k«036 8IBO;5CE2>kS032^:50[8UbN*b 0I6 4ABa<>CPbc;eh €M52>LNMeH‰
B Q D4N036 2F03;€<^KP032k]0I6 <>@b7:032^:0?:i0I6 VO03KP*b ‚03kS03;=<
8IKEBO2>2ACEL=M5032?bc;€< †0I4-knCE2?:0n:0I6 VO03KP*b ‚0I4ƒ:032B DKlCE8IBa<>CPbc;528IBa4><F0•B3‹cBO;=<tM5;™@5BOM<;5CPVO03BOM™:0LNM5BOKECP<N0 6
8U/0 ‚03;5:5BO;=<K›HŒ036 kS0I4>vO03;58U0•:5Mˆ8UbN:0nknbOdDCEKP0ƒ0I<KEB ‚bc2>2>CPdDClKECP<=0t6 :0S8-@5Ba4>vO0I4R:5M–8Ub7:0SB 54303Q 2KlB•kCE2F0¨03;
2F0I4>V7CE8U0zCE;=<F4>bN:DM5CP<R:0•;bcMVO03BOM7T]d‚032FbcCE;52R03;«<F0I4-kS0•:50•k]0I6 <>@b7:032S:0•:i0I6 VO03KP*b ‚03kS03;=<¨0I<¨:50•LNM5Bgr
KECP`98IBa<>CPbc;§:0328IBa4><F032ˆB Q DM58U>0 9Ba44AB ‚bO4><nBOMT D4>bOdDKm036 knBa<>CELNM032:0 2N036 8IM4ACE<=0y6 0I<:50 kSbOdDCEKlCP<=0 6 :5M
8Ub7:0Oh9Š?BO;52[8U0ƒ:5bcknBOCE;0RKE032Gk]0I6 <>@b7:032[{‰bO4-kS03KEKP032W2>03kRdDKE03;€<Y<F4I03Q 2 D4>bckS0I<F<F03M52F032[knBOKE@503M4>03M52F03kn03;€<
KP032Wk]0I6 <>@5bN:032G0I<WbcM<>CEKl2BO8U<>M503KEKP03kS03;=<G:5CE:2 †bc;DCPdDKP032[8¬ Y‘‚pbNL9‘ s2>Bad‚03KEKP0O‘‚hPhPh ® ;y0 ‚0I4Akn0I<F<>BOCP03;€l< 9BO2W:0
v 036 ;i0I6 4>0I4W:5M8UbN:0[:0GknBO;DC 0IQ 4>0Y0 8IBO8U0Y47/0 6 ‚bc;5:5BO;=<iBOMT8Ubc;€<F4ABOCl;€<F032<F4303Q 2_2=0I6 V90IQ 4>032^:50GKEBR8IBa4A<F0SB Q DM58U0Oh
p0I4A<F032SCEK0UTCE2F<>BOCE<ƒ:032ƒ<F4ABO:DM58U<F03M4A2¨:0 $VO0I4-2S;p Op bcM ?YŠ ?knBOCE2 DBa4¨0UT703k DKP0zKEB\<F4ABgr
:5M58U<>CEbc;–VO0I4A2Sp[‘ KEBO;5vcBavO0<F4303Q 2¨M<>CEKECl2=0 6 †bcM54RKP032R8IBa4A<F032….B Q DM58U032I(‘ 54>b7:5M5CE2>BOCE<?MD;™8Ub7:0 ‚0I4AkS0I<F<>BO;=<
K›HJCE;D2F<>BO;58ICEBa<>CPbc;™:0knBO8-@5CE;032ƒknBOCE2R4>032F<>BO;=<ƒ8Ubck DKP0UT700I<ƒvObcM4AknBO;5:™03;«k]036 knbcCP4>0y¬ M5<>CEKECE2>Ba<>CEbc;˜:0
DBa4ABOk…0IQ <F4A03l
2 ‚bcCE;€<F03M542>M54KP032_2F<F4-M58U<>M4>0328UbO4>4>032 ‚bc;5:DBO;€<_BOM7T•kBO8A@5CE;5032Cl;52F<>BO;58ICm0I6 032_:5BO;52_KP032{|bc;58mr
<>CPbc;52•<F4ABO:DM5CP<F032z:032•*b 0I6 4ABa<>CPbc;5>2 DBa4…KP0\<ŒW‹ ‚0 ‚bcCE;=<F03M4\Ž T BWallet * rS`5v h ¯® :bc;D.8 ‚03M
BO:5B 5<N0 6 ‚bcM4t:5032 9KEBa<F0Ur {‰bO4-kS032R03ktdDBa4ALNM0I6 032 B\Q {‰bO4><F032¨8Ubc;=<F4ABOCE;=<F032Sk«036 kSbcCP4>0z8UbcknkS0zKP032ƒ8IBa4><F032 B Q
DM58U0¬ KEB?8IB DBO8ICP<N0G6 k]036 knbcCP4>0^:eHJM5;0_8IBa4><F0t#
B Q DM58U00UT8g03Q :50W4ABa4>03kS03;=<+KP032L=MDBa<F4>0 *NCEKEbc2sr bN8U<F0I<>2+:5
0 +?[Z™‘
<F4>03;=<F0:03M7T *NClKPbc2sr b78U<F0I<>2:0 + ” Z 0I<:jH †~ + ” Z ® hjŠ[0 DKlM52?KP032?<F4ABO:5M58U<F03M54A2\0I6 <>BOCP03;=<_fFM5v 036 2 DBa4
KP032tCE;v 036 ;5CP03M4-2:0zp^KP03Ba4mªN‹ˆ8Ubck DKP0UT70320I< DBa4ƒ8Ubc;52=036 L=M503;€<¨:5C 8IClKP032B Q knBOCl;€<F03;5CE40I<zB\Q :i0I6 d†bOvcM50I43h
=[03
k 9KEM52B Q DBa4><>CP4^:02 _036 8ICE`D8IBa<>CPbc;5l2 47036 BOKECE2ABOCP<^M5;0?v 036 ;i0I6 4ABa<>CPbc;y:08UbN:<0 ‚bcM4^8IBa4><F032¨B Q 9M58U0knBgr
;NM03KEKP03kS03;=<Ih1p03KEKP0Urž8ICCE;=<F4>b7:5M5CE2ABOCP<YM5;50ƒ4-M 5<>M4>0¨:5BO;52KE0 D4>bN8U032A2>M52?:0 54>03MVO0S0I<;50ƒ4A03;€<>BadDClKECE2>BOCP<
DBO2WK H‡0Uš†bO4><Y:0{‰bO4-knBOKECE2>Ba<>CEbc
; DBa4W47036 :5M58U<>CEbc;q:5Mz<F032F<GMD;5CP<>BOCP4>0Oh
/10 54>bgfF0I< ” Z2IH‡032F<*CE;=<=0I6 4>032>2N0n6 BQ BOk«036 KECPbO4>0I4KP0W8UbN:50^v 036 ;0I6 470?6 03;S<F0I4-kS0G:eH‡*b 5<>ClknCE2>Ba<>CPbc;¨k]036 kSbcCE4>0
8IBa4^KP032_8IBa4><F032^;eH‡bc;=<LNM#0 ‚03M:0Y4>032>2FbcM54A8U032_k«036 kSbcCP4>032Ih/1032n0I6 <>M5:5032_bc;€
< ‚bO4><=0I6 032^2>M4_KEBtk]0I6 <>@5bN:y0 0I<GKPy0 D4>bN8U032A2>M52^:0<F4-BO:5M58U<>CPbc;eh
,G, 4y1 $ & $% & /1032^<F4AB3VaBOM7Tq:5BO;52^KE08IBO:4>0:5M 54Abgfs0I;< ” Z ¬|`5v h²± ® bc;€<W{ BOCP<•036 kS0I4>vO0I4?KEB¨;036 8U032>2>CE<=0¨6 :0:03MT
<F4ABO:5MD8U<F03M4A2z8IBa4…KP032z8IBa4ABO8U<=0I6 4ACE2F<>CELNM032…:032zKEBO;5vcBavO032…p:eHJMD; 8€bO© <N0˜6 0I< cB¯VgB :0ˆK›HJBOM<F4>0ˆ2Fbc;=<z<F4I03Q 2
:5C}šG0I6 4>03;=<F032I‘50I<GKP032GB DKECE8IBa<>CEbc;52_VNCl2=0I6 032ƒBSQ <F4AB¯VO0I4A2G8U032YKEBO;vcBavO032YBOM52>2>CŽ
 MDª7‹N; 2F‚<I03QbckSM410?KP:e0H‡KE0UBO'T ;DvcKPBabcvOCP<>0WBap<>CEbc ; 7C¬ B3=VObp 038_+ KEuBGvO'Ž 03c2FB¯<>VgCPbcBS;tp_`DBa;4A0: :+Y03M52 ;=03<>;=CE<>kSCP0I0 4A2Ii‘g;€BaV7`DCP;R4>bc:;50iknv 03036 ;i;€<0I6 ®4>0I0I4*<_KEZB 9BOBa8-@54><>CECP;00Y2FVN‹7CE2F4><I<>03Q MkS030?KEKP0 Ž
€B3VaB C¬ =b
p !?Z Ž cB¯VgBzp_Ba4A: !?CP4><>M5BOKjZ\BO8A@DCE;0 ® ‘
M D; ‚bcM4tKE0KEBO;vcBavO0 cB¯VgBy:032F<>CE;0˜6 B Q Kl>B DBa4><>CE0B DKECl8IBa<>CPVO0 LŽ ?;9KP0I<>2 €B3VaB€p_Ba4A:«0UT036 8IM<N0I6 032
9Ba4GKEBSknBO8-@5CE;0V7CP4><>M03KlKP0<€B3VaB7h
„YbO<F4>0¨<F4AB3VaBOCEK2IH‡032F<8Ubc;58U03;=<F4N06 2>M4K›H 0I6 <>M5:50O‘‚KlB8Ubc;58U/0 D<>CPbc;y0I<?KlB47036 BOKECl2>Ba<>CPbc;–:eHJM5;50t2FbcM58-@0S:0ƒ<F4ABgr
:5M58U<F03M54A2 ‚bcM4…KP032…KEBO;vcBavO032 B Q bOd7fs0I<>2 L=M5C?CE;=<U0IQ vO4>0™KP0320I6 <>MD:032…{ BOCP<F032q:5BO;52…KE0ˆ8IBO:54>0˜:5M 54>bgfF0I<
#
#
#
O­
#include stdlib.h #include "BWallet.h"
T BWallet *function new T BWallet( void)
T BWallet * this = (T BWallet *)malloc( sizeof(T BWallet))
memset( this, 0, sizeof(T BWallet) )
return this ;
//-------------------// INITIALISATION
//-------------------//IMPORTSs imported instances
void function T BWallet IMPORTS(T BWallet * this)
this- initialisation = FALSE ;
// end T BWallet : :IMPORTS
void function T BWallet INITIALISATION(T BWallet * this)
if ( this->initialisation == FALSE)
this->initialisation = TRUE ;
this->balance = 0 ;
//end T BWallet : :INITIALISATION;
//access methods
T int function T BWallet get balance(T BWallet * this)
return this->balance;
;
//----------------//Clause OPERATIONS
//----------------void function T BWallet setBalance(T BWallet * this,T int balanceInit)
this->balance = balanceInit ;
void function T BWallet debit(T BWallet * this,T int debitAmount)
this->balance = this->balance - debitAmount ;
hPhPh
*TN03k D KP0R:5M

:0K›H@?_<F03KlCP0I4J
%!&#
h
BWallet
¬ ªf036 8ICP`D8IBa<>CPbc;" Ž9`5v 3 ³ h²± ® <F4ABO:5MDCP<ƒBQ K HJBOCE:0R:5M <F4ABO:5M58U<F03M54?p
"
+
$ ” Z¬ DBO2>2ABavO0Y:
0 9Ba4ABOkz0IQ <F4>03
2 DBa4*470I6 {30I6 4>03;58U0O‘CE;52F<>BO;D8ICEBa<>CPbc;Sbc7M DBO2:032iknBO8A@DCE;032I‘c<Œ‹W9BavO0Y`D;:032
03;=<>CP0I4A2I‘9hPhPh ® ‚bcM4¨036 8Ubc;bckCE2F0I4^KEBk]036 kSbcCE4>0OhN/1032*<F4ABO:DM58U<F03M4A2i4N036 BOKECE2N036 2¬CcB¯VgBt0I<_p ® V7CE2F03;=<KP032i;bcM7r
VO03KEKP03L2 DKlBa<F0Ur {‰bO4Akn032<F038A@5;bcKEbOvcCEL=M5032WC¬ cB3VaB?0I<+Š[bO<*„G0I< ® 0I<*KP03M54A2 :036 8IKlCE;5BOCE2Fbc;D(2 ‚bcM4+KP032BDKlCE8IBa<>CPbc;52
03ktdDBa4ALNMi0I6 032Ih
%!&#
h²±
 ” dfs038U<>CP{ 2W:5MD4>bgfs0I< ” Z
G, , #
j ž c¢†¤g ¦
* 1 €¡ /10 <F4ABO:5MD8U<F03M4•:50. ¬ 2FbcMD2sr 03;52F03ktdDKP0y:eHJCEkDKm036 kn03;€<>Ba<>CPbc; :5MuKlBO;vcBavO0" ® VO0I4A2zp M<>CEKlCE2F0…KEB
2F<F4ABa<N0I6 vcCP0?2>M5CEVgBO;=<F0 1Ž€MD;nkSb7:5M5KP0_032F<MD;0W8A@5B¯©°l;0G:0W:0I6 VO03KPb*†03kn03;€<:i0I6 dDM<>BO;=<DBa4MD;0WknBO8A@DCE;0
BadD2F<F4-BOCP<F0*0I<12F0<F0I4AknCE;5BO;=i< DBa41MD;0*CEk DKm036 kn03;€<>Ba<>CPbc;jh bcM<F032¥KP032jkBO8A@5CE;5032jM<>CEKECl2=0I6 032*¬ 8IKEBOM52F0 SEES 0I<
® DBa4 KP032e8Ubck ‚bc2>BO;=<>2 :0*KlB^8A@5B¯©°E;50+03;{|bc;€<1BOMD2>2>C DBa4><>CE0Oh3/j0;bck :0*KEBWknBO8-@5CE;0*Bad92F<F4ABOCP<F0
IMPORTS
4ABO8ICE;50Y:0[KEB8A@DB¯©°E;0Y:50IVNCP03;=<iKE0Y;bck&:5MknbN:5MDKP0Ohc/j0[kSbN:DM5KP0GB DKlBa<>C5032F<bOd5<F03;N7M DBa48Ubc;58IBa<=036 ;5Ba<>CPbc;
:0_<FbcM<F032*KE032+:bc;5;0I6 032*8Ubc;58U430IQ <F032i:0^KEB?8A@5B¯©°l;0^:0^:i0I6 VO03KP*b ‚03kS03;=<*8aH‡032F<srmBgQ rž:5CP4>0Y8U03KEKP032:0^KEB?knBO8A@DCE;0
BadD2F<F4-BOCP<F0O‘W:032…4AB ;03kS03;=<>2…0I<q:0˜K›HJCEk DK-036 kS03;=<>Ba<>CPbc;ehYp032…:bc;D;i0I6 032 8Ubc;58U430IQ <F032y8Ubc;€<>CE03;5;03;=<qKP032
03;52F03ktdDKP032[8Ubc;58U4>0I<>23‘‚KE032Y8Ubc;52><>BO;€<F0328Ubc;58U430IQ <F0323‘jKP032GVaBa4ACEBad9KP032G8Ubc;58U430IQ <F0323‘jK›HJCE;5CP<>ClBOKECE2>Ba<>CPbc;zBOCE;D2>C1LNM0
KP032?*b _0I6 4ABa<>CEbc;52R:0SK›HJClk DKm036 kS03;=<>Ba<>CPbc;ehj/1032<žf‹ ‚032?4>0I<F03;=MDy2 ‚bcM48A@5BOLNM0n:bc;D;i0I6 02Fbc;=<8U03M7Tˆ:0I6 `9;5CE2
03; 7h~ bcM540I6 V7CP<F0I4GKE0328UbcKlKECE2>CPbc;D2:0;bck&03;=<F4>0KP032^:5C}šG0I6 4>03;€<F032^:5bc;5;i0I6 032^:032^:5C}šG0I6 4>03;=<F032^knBO8A@5Cl;032
¬ :03M7TS:bc;5;0I6 032iB3‹cBO;=<KE0Wkz03© kS0G;bck :DBO;52*:03M7TS8Ubck ‚bc2>BO;=<>2:0W8-@5B¯©°E;032:5C}šG0I6 4A03;€<F032i;0 ‚bc2F03;=c< DBO2
:#0 54>bOdDK›03Q kn0?kBOCE2iClKE2i2>bc;€<^8Ubc;58IBa<N036 ;036 2[:5BO;52_KEBƒkz03© kS003;€<>CE<=0 6 ® ‘98A@5BOLNM0:bc;5;0I6 0?032Fb< 5470I6 `T0I6 y0 DBa4^KP0
;bck :5MˆkSb7:5M5KE0tbjMˆQ 03KEKE0¨B DBa4AB¯©°P< ‡± h p038I‚C ‚0I4Akn0I<?:50ƒ<F4-B3VaBOCEKEKP0I4B3VO038M5;ˆ2F03M5K032 9BO8U0n:0S;bck
‚bcM4KPl
0 D4>bgfs0I<03;€<>CP0I4¯h€/j032iCE:03;=<>CP`DBO;=<>2+4>03;bcknk]036 22Fbc;=<8Ubc;52F0I4AV*036 2<F03KE2LNM03KE2:5M4ABO;=<*KEB<F4ABO:DM58U<>CPbc;
03;\p[h
j ‰œ – 1 =¡ ªN03KEbc;~¥0I<>CP#< a­ ‘=KEBt2F<F4AM58U<>M4A0G:0GKEBt2 _036 8ICP`D8IBa<>CEbc;LNM5C5032F<kSb7:5M5KEBOCP4A003; §;eH‡032>< DBO2i8Ubc;52F0I4>V*0I6 0
03; ” p_BOknKO8IBa4 ~¥0I<>CP<¥BWM<>CEKlCE2=‚0 6 †bcM54jKEB^<F4ABO:5MD8U<>CPbc;KP0*2F‹72F<I03Q kS0:0kSb7:5M5KP032 [Ba:4 ‚0I4Frž/ CEKEKECPdD4ACE:vO0Urž/10I4>b¯‹
¬ LNM0;bcM52^B ‚03KP0I4>bc;D2 [/1/˜:DBO;52^KEB¨2>M5CP<F0?:5Mz:b78IM5kS03;=< ® 547036 2F03;=<=0R6 :5BO;52 h5/102F‹N2><U03Q kn0 Y/ /˜B
‚bcM4bOd7fs038U<>CE{ :0?{|bcM4A;5CP4_M5;0?CE
k 9KEBO;€<>Ba<>CEbc;:eHJMD;•2>‹N2F<I03Q kS0t:0[knbN:5MDKP032_:0Y<ŒW‹ ‚0tªZ\/ DBa4ABOk]0I6 <F470I6 0
+
%
$#
+
'
"
"
"
DBa4WM5;…KlBO;vcBavO0R:0dDBO2>00I<lDBa4W2Fbc;…V*0I6 4ACP`D8IBa<F03M4Y:0<ž‹f‚032Ih5/j0<F0I4Akn0
:036 2>CEvc;0M5;
KEBO;vcBavO0L=M03Kl8Ubc;5L=M50¨:0/6 ‚bcM4AVNM–:0¨<FbcM<F032t8Ubc;52F<F4AMD8U<>CPbc;52:0nkSb7:5M5KlBa4ACP<=0O6 h1p0n;eH‡032F<yDBO2KE0n8IBO2:0
knBOCl2WCEKe032F
< ‚bc2>2>CPdDKE0?:jHJB DKEBa<>CP4WKP032Y2 _036 8ICP`D8IBa<>CEbc;52Y:jHJM5; 54>bgfF0I<W03;=<>CP0I4ƒ¬ 9KEM52>CP03M54A2_8Ubck ‚bc2>BO;€<>#2 ®
DBa4WM5;…BOKEvObO4ACP<>@5kS0:0:/0 6 DKlCEBavOy
0 ‚bcM4_bOd5<F03;5CP4WM5;50?2>03M5KP0?0I<WM5;5CELNM0?2 _036 8ICP`D8IBa<>CEbc;…0I<W8aH‡032F<G8U0LNM5CeB
0I6 <=0t6 47036 BOKECl2=0t6 :5BO;52G8U0<F4ABO:5M58U<F03M543h5/j04A032F<F0:0RKEB¨<F4-BO:5M58U<>CPbc;…8Ubc;58U0I4-;0RKP032^<F4AbcCEl2 DBa4><>CE032W2>M5CPVaBO;=<F032Ž
 KKE03HŒ0I62^<>Ba<ž‹f<[‚:030R2WKEknBSBO:2 ;5Ct036 98IM5CP`DK-038I6 2IBa‘ <>CPbc;™¬|VaBa4ACEBad9KP032^0I<G8Ubc;52><>BO;€<F032 ® ‘
 K HJM<>CEKECE2ABa<>CPbc;:jHJBO2>2F0I4><>CPbc;D2I‘
 KE032W2F<F4AM58U<>M54>032W:08Ubc;=<F4gbc© KP0Oh

' '' ~Ba4AknC‚8U032^8Ubc;52><>CP<>M5BO;=<>2I‘5KEB DBa4><>CP0?KEB DKEM52{|BO8IClKP0Y032><WKEBR<F4-BO:5M58U<>CPbc;z:032_2F<F4AMD8U<>M4>032^:0?8Ubc;€<F4abc© KP0
:0322:036 8ICP`D8IBa<>CPbc;52Yh p_0322F<F4AM58U<>M54>0328UbO4>4>032‚bc;5:503;€<B…Q M5;–2>bcM52sr 03;52F03ktdDKP0S:5M–KlBO;vcBavO07 q:0[h
•032F<M5;ˆ;b¯‹cBOM–LNM5C¥@5BadDCP<>M03KlKP03kS03;=<Y2F0¨<F4>bcMVO0S:5BO;D2[KE032[KlBO;vcBavO032CE
k _0I6 4ABa<>CE{|2[<F03K+LNM0Sp?‘ ?[Š ?t‘
~’??ªDbp ?Y/‘=hPhPha~Ba4+8Ubc;52=036 L=M503;€<*8U0I<F<F0_<F4ABO:5MD8U<>CPbc;t;5†0 ‚bc2F†0 DBO2:0 54AbOdDK 03Q kS032Ih KEKE0*032F<+CEKEKEMD2F<F4N0I6 0 DBa4KP0
<>BadDKP03BOM h h5Š?BO;52_8U0?<>BadDKP03BOM :i036 ;bO<F0KEBt{‰bc;58U<>CEbc;•:50Y<F4ABO;D2F{‰bO4-knBa<>CPbc;z:0328Ubc;52F<F4AM58U<>CEbc;52
VO0I4A2 ” p_BOknK›h
ª7M5dD2F<>CP<>M<>CEbc;52
4ABO:5M58U<>CEbc;…03; ” p_BOkK
¬ S®
PRE P THEN S END
¬ S®
ASSERT P THEN S END
¬ S®
BEGIN S END
¬ P®
IF P THEN S1
if
¬ S1®
ELSE S2 END
then
¬ S2®
else
¬ E® with
CASE E OF
match
¬
r
¬ S1®
®
EITHER T1 THEN S1
T1
¬ Si ®
¬ Ti® r
OR Ti THEN Si
r
¬
®
ELSE S2 END
S2
¬ I® in ¬ S®
¬ XX®
VAR XX IN I S END
let
WHILE C DO S
¬ p ® do ¬ S®
INVARIANT P
while
VARIANT V END
¬ S1®
¬ S2®
S1 ;S2
¬ XX® Ž
¬ E®
XX := E
54>bgf¯¬
¬
‘
¬ op(YY)®F®
®
XX op(YY)
XX
h  4ABO:5M58U<>CEbc;…:032G2F<F4-M58U<>M4>032^:0t8Ubc;€<F4gbc© KE0 S03; ” p_BOkK
X[;0*b _0I6 4ABa<>CPbc; 2F0<F4ABO:5MDCP4ABt03; ” p_BOkn’K 9Ba4WM5;0{|bc;58U<>CPbc;eh ?Y`D;…:08Ubc;52>0I4>VO0I4GM5;…knBgTCEkƒM5k
:eH‡0U'T 54>032>2ACPVNCE<=0…6 :5M]8Ub7:0qBOM ;5CPVO03BOM :5M 54>bO`9Ki:0…KEBy{|bc;58U<>CPbc;]v 036 ;i0I6 4N0I6 0O‘^KP032 DBa4ABOk…0IQ <F4>032n:50z2>bO4><>CP0
:eHJM5;50[*b _0I6 4-Ba<>CPbc; 2F0I4Abc;€<W<F4-BO:5M5CP<>2^03; M5;…;7ržM DKE0I<Ih
+
+
!#"
%$&
%
#"
'$(&
#"
'$(&
)#" '$(&
)#"
'$&
)#" %$&
!#" %$&
#"
#"
+*
+,
#" '$(&
-
'$(&
!#"
'$(&
*
)#" %$&
)#" '$(&
!#"
,
.
'$(&
'$(&
)#" '$(&
)#" '$(&
/
#"
)#" %$&
)#" %$&
!
1)#" '$(&
24365
#
%
!#"
%$&
0)#"
'$(&
)#"
'$(&
0)#" '$(&
+
'$&
O±
"
$ ! ! % $
% ! (
~¥bcM4¨KP032R2><F4AM58U<>M4>032ƒ:0•8Ubc;€<F4gbc© KE0•KP032tCE;{|bO4AknBa<>CPbc;D22Fbc;=<547036 2>03;€<F032¨:5BO;52tK›HJCEk9KEBO;€<>Ba<>CEbc;eh1~Ba4
8Ubc;=<F4>0 ‚bcM4:0I6 <F0I4AknCl;0I4KP032VaBa4ACEBadDKE032Y0I<tKP0328Ubc;52F<>BO;=<F032I‘1ClK032F<;i036 8U032>2>BOCP4A0:054>03;D:4>0SKP032CE;{|bO4Fr
knBa<>CPbc;D2G:5BO;52W<FbcM<F0tKEB8A@5B¯©°E;50R:0t:0I6 VO03KEb*‚03kS03;€<[:5MqkSb7:5M5KE0<&BSQ <F4ABO:5M5CE4>0Oh5/j032YVgBa4-CEBadDKP032^0I<YKP032
8Ubc;52F<>BO;=<F032[8Ubc;58U4I0IQ <F032#†03M5VO03;€<0I© <F4>0t:i036 8IKEBa4N0I6 032[0I<W<ž‹f0I6 032Y:DBO;52WKP032WBad92F<F4ABO8U<>CPbc;523h5/j032GCl;{‰bO4-knBa<>CPbc;52
;036 8U032>2>BOCE4>032BRQ KEB<F4-BO:5M58U<>CPbc;{|BOCE2ABO;€< 9Ba4><>CP0G:032BadD2F<F4-BO8U<>CPbc;522>bc;€<bOd5<F03;NM032 9Ba4i:/0 6 DKEClBavO0G:032KECP03;52
:0KEBS8IKlBOM52F0 REFINES h
/1032Y<ŒW‹ ‚032BOM<FbO4-CE2=036 #2 †bcM54[KP032?:bc;D;i0I6 0328Ubc;58U4I0IQ <F0322Fbc;=<KECEknCP<N036 2 DBa4KEB•k«0I6 <>@bN:50 BzQ M5;\2>bcM52sr
03;52F03ktdDKP0S:032?<Œ‹W‚032y—0UT7Cl2F<>BO;€<>23h p032<ž‹f‚0322Fbc;=<B‚03K-036 2?<ž‹f†0328Ubc;D8U4>0I<>2Ih p032KEClknCP<>Ba<>CPbc;52[2Fbc;=<
CE2>2AM032_:032^KEBO;vcBavO032W8ICEdDKP032_CE;5CP<>ClBOM7T:0KEB¨k«0I6 <>@b7:0 [h K‚0UTCE2F<F0:03M7Tz2F<F4ABa<N0I6 vcCP03;2 DBa4^4AB ‚bO4><BSQ 8U0
54>bOd9K 03Q kS0SŽ
 0I2>6 0R<F03KE;DCEkn:4>CE0R<F0I8U40IB<FQ <F0ƒKEBSKECEKE2FCE2F<F<F<0 0D:Ba034G2W:5<ž03f‹ 2W†kn032GBO8U8Abc@D;5CE;8U4>030I2W<>:2[0:id90 6 f¯BOBnQ 2F0O:h 0I6 `9;5CE2 ‡­ ³ ‘
ªN03KPbc ;…~¥0I<>CP<I‘†KEBS8Ubc@5BadDCE<>Ba<>CPbc;q:08U032Y:03M7T…2F<F4ABa<=0I6 vcCP032[;0y‚bc2F0yDBO2G:50y54>bOdDK›03Q kS0Oh
! / Bq8Ubc;52F0I4>VaBa<>CPbc;«:032 54A*b 54ACm0I6 <=036 2t:5032R2 _036 8ICP`98IBa<>CPbc;52_f>M52>LNM0n:5BO;D2KP08Ub7:0n032F<ƒM5;0n;bcM5VO03BOM<=0 6
‚bcM4RKEB\k«0I6 <>@b7:09[h;˜0Uš‚0I<I‘DfFM52AL=MeH‰B>Q 54N036 2F03;=<I‘¥KP08UbN:0v 036 ;i0I6 4N0…6 032F<ƒ8U03;D2=0\6 0I© <F4>0 54>bcMV*0•6 8UbO4A4>038U<I‘
0I<:bc;58¨2Fbc;ˆ0UT036 8IM<>CPbc;u0I© <F4>0n2>BO;52?0I4>4A03M43he~¥bcM4~¥0I<>CP<8U0I<F<F0nV7CE2>CPbc;ˆCE:036 BOKP0S032><<F4>b*–b*5<>CEknCl2F<F0Ohe/j0
8Ub7:0v 036 ;i0I6 4N0¨6 032F<W0UT036 8IM5<=0S6 2>M54W:032G8Ubck‚bc2>BO;=<>29@€‹72>CELNM032_:bc;=<GKP032W8IBa4ABO8U<N0I6 4ACl2F<>CELNM032Y;jH‡bc;€<9BO20I6 <=0 6
2 _036 8ICP`_0I6 032B
Q K›HJBOCE:0t:eHJM5;0ƒk«0I6 <>@bN:50R{|bO4AkS03KEKP0Oh†/*HJB fFbcM<Y:jHJBO2>2F0I4><>CPbc;D;2 ‚03M<W47/0 6 ‚bc;5:54>0zBQ 8U0 54AbOdDK 03Q kS0
03;ˆM<>CEKECl2>BO;€<YKP03#2 54>*b 54ACm0I6 <N036 2:0I6 `D;DCP032?:5BO;52[KP032?CE;€VaBa4ACEBO;=<>2[:0td‚bcM58IKE032YBOCE;D2>C LNM0¨KP03#2 5470U6 rž8Ubc;5:5CE<>CPbc;52
:032^*b _0I6 4-Ba<>CPbc;52IhD~¥0I<>CP<YM<>CEKECE2>0?KlBS;bO<>CPbc;q:08Ubc;=<F4ABa<[:i036 8U4ACP<F0R:5BO;D2 a± h
j – …£¤g N¦ 1 =¡ p032R:03M7Tˆ<F4ABO:5M58U<>CPbc;D2:/0 DM5CE2 ” dfs038U< ]VO0I4-2tp *0I<VO0I4A2 €B3VaB iM<>ClKECE2F03;=<[KlB…kz03© kS0
2F<F4ABa<N0I6 vcCP0Oh i;™0Uš‚0I< ” d7fs038U< §;70 ‚bc2>2I03Q :590 DBO2ƒKEBq;5bO<>CPbc;«:502>MdD2><>CP<>M<>CPbc;eh sK*032><ƒ:bc;D8;036 8U032>2>BOCE4>0
:eHJB fFbcM<F0I4?:5Mq8Ub7:0•BQ K HJCE;€<N0I6 4ACE03M4G:032Y2F<F4AM58U<>M4A032W<F4ABO:5MDCP<F032G:/0 9M5CE2 ” d7fF038U< ¥hD/ B 54A03knC 0IQ 4>90 U^¬ :0
” d7fF038U< VO0I4-2zp ® M<>CEKlCE2F0…M5;0q<F4-BO:5M58U<>CPbc; :5CP4>038U<F0Oh/1B˜<F4-BO:5M58U<>CPbc; ¬|`Dv h ³c® :032n03;=<>CP<N036 2z:0
<žf‹ ‚0 54AbN:5MDCP<^8IBa4><=036 2>CP03; ¬ i¬ f‹ ‚0 W‹ ‚0¯± ®F® 032><G47036 BOKECE2N0I6 0 BQ K›HJBOCE:0:0ƒ8IKEBO2>2F032Y<F03k DKlBa<F032G0I<[:eHJM5;
2F‹72F<U03Q kS0:eHJ@0I6 4ACP<>BavO0Oh/10328IKlBO2>2F032i<F03k DKEBa<F03
2 ‚0I4AkS0I<F<F03;=<:jHJM<>CEKECE2>0I4*<FbcM52_KP032i<žf‹ DBavO032^2 _036 8ICP`DLNM032:0
KEB?k]0I6 <>@b7:0_{‰bO4-kS03KEKP0 ” d7fF038U< ˆ¬ f‹ ‚0 0I< f‹ †0¯± ‚03MVO03;=<03M7TƒBOM52A2>C90I© <F4A0W:03‚2 54>b7:5M5CP<>2 8IBa4><=036 2>CP03;52 ® h
/j0•2F‹72F<U03Q kS0•:jHJ@i0I6 4ACP<>BavO0 †0I4-kS0I<R:0:DC}šG0I6 4>03;D8ICP0I4tKP032R{‰bc;D8U<>CPbc;52I‘j4A03KEBa<>CPbc;52I‘1dDC fF038U<>CPbc;52I‘12AM4 fF038U<>CPbc;52I‘
CE;gfF038U<>CPbc;52 0IL< 54>b7:5M5CP<>2 8IBa4><=036 2>CP03;52+2>BO;D2 8Ubc;=<F4ABOCE;=<F032IhO/j03L2 5470_6 0IL< †bc2><srž8Ubc;5:5CP<>CPbc;D2 2Fbc;=<M<>CEKECE2N0I6 03&2 ‚bcM4
4>03k 9KEBO8U0I4KEB…;bO<>CPbc;™:0n2>MdD2><>CP<>M<>CPbc;eh‚„…036 BO;DkSbcCE;52ClK032F<;i036 8U032>2>BOCP4A0:eHJB fFbcM<F0I4t:032RkSbO4A8U03BOM7T–:0
8Ub7:0RM5;0?{|bcCE2WKEB¨<F4-BO:5M58U<>CPbc;…0Uš‚038U<>M0I6 0Oh
'
'
%
%
%
%
template class X, class Y class Relation : public Set Pair X,Y %!&#
h³
 4ABO:5MD8U<>CPbc;q:eHJM5;50[4A03KEBa<>CPbc;
%
³
/ B:03MT7C›03Q kS0 W¬ :0 ” d7fs038U<™VO0I4A2<cB¯VgB ® ‘j;50R47036 BOKECE2>0DBO2[M5;0t<F4ABO:5M58U<>CEbc;\:5CE4>038U<F0Oh sK1M5<>CEKECE2F0
M5;zKEBO;vcBavO0Cl;€<F0I4Ak]036 :DCEBOCP4>0O‘cBO2A2¬CcB3VaBnB¯VO038BO2>2F0I4><>CEbc; ® ‘beM…Q CEKo†0I4-kS0I<^BOM54>bOvO4ABOknkn03M4W:eHJB fFbcM<F0I4
KP08Ub7:0:DM™8UbO4:D2t:032b*_0I6 4-Ba<>CPbc;52ƒ2>BO8A@5BO;=<tLNM0KE032RCE;=VgBa4-CEBO;€<>2t2Fbc;=<<F4ABO:5M5CE<>2:5BO;52t8U0KEBO;vcBavO00I<
8UbO4>4>032:†bc;D:03;€<BOM7TˆBO2>2F0I4><>CEbc;52?:5MˆKEBO;vcBavO0Oh1/10ƒ<F4-BO:5M58U<F03M4:0 €BO2>2?VO0I4A2cB¯VgB…8-@0I4A8-@0yB•Q V*0I6 4ACE`50I4
KP0S8Ub7:0nB fsbcM5<=06 03;ˆ{‰bc;58U<>CEbc;–:0nK›HJCE;=VgBa4-CEBO;€<Ih‚Š?BO;528U0n2>8-@i036 knBq:0¨<F4ABO:DM58U<>CPbc;§¬ ” d7fF038U< «VO0I4A2 €B3VaB
V7CEB cBO2>2 ® ‘DKEBSk]0I6 <>@b7:0{|bO4AkS03KEKE0 ” d7fs038U<ˆ032F<G8UbcMDKm0I6 0tB3VO038SpWª7~¥h
j – 1 €¡ ¦
/1032 <F4-BO:5M58U<F03M4A2:
0 !?Š?Z uVO0I4A2p 0I< cB¯VgB O±7‘ ‘ ³ ‘ 7{‰bc;=‚< DBa4><>CP0_:03L2 ![ŠZ bNbcKE2 Oh
/1Bƒk]0I6 <>@b7:0#![ŠZ ‚0I4AkS0I<:0Y:0I6 `9;5CP4iMD;CE;=VaBa4ACEBO;=<*0I<^:032 D4N0G6 0Ib< ‚bc2F<srž8Ubc;5:5CP<>CEbc;52Ih€/10G<F4ABO:5MD8U<F03M4
!?Š?Z VO0I4-2
p ‚0I4AkS0I<+:0_<F4ABO:5MDCP4>0_KP032+CE;=VgBa4AClBO;€<>2IhO/1bO4A2>LNMeHJM5;¨CE;=VgBa4AClBO;€<^¬|`5v h =® 032F<*M5<>CEKECE2N0 6
‚bcM44>032F<F4A03CE;5:4>0SKEBz:0I6 `D;DCP<>CPbc;–:eHJM5;ˆ<ŒW‹ ‚0O‘1KE0S<žf‹ †0S032><<F4ABO:5M5CE<[0I<tM5; 54>bO<FbO<ŒW‹ ‚0n:0S{|bc;58U<>CPbc;˜032F<
CE2>2AM :0ƒKEBS<F4ABO:5MD8U<>CPbc;\:50tK›HJCE;=VaBa4ACEBO;=<IhD/17B †bO4A<=0I6 0S:0tKEBn{|bc;58U<>CPbc; ¬|`5v h ® 032F<?KEBkz03© kS0ƒLNM0ƒ8U03KEKP0
:5M¨<ŒW‹ ‚0Oh€/10^<F4ABO:5M58U<F03M4i;0W2>M ‚bO4><>BO;=‚< DBO2*KEB[V*0I6 4ACP`D8IBa<>CPbc;:‹N;DBOknCELNM0^:0WK›HJCE;=VgBa4-CEBO;€<I‘OCEKN{ BOM<*{ BOCP4>0
knBO;NM03KEKP03kn03;€<WM5;…B †03K‚0U'T DKECl8ICP<F0BnQ KEB¨{|bc;58U<>CPbc;q:0V*0I6 4ACP`D8IBa<>CEbc; :0K›HJCl;€VaBa4ACEBO;=<Ih
'
"
'
%
S = set of int
inv s == s "!$#
h
 X[;qCE;=VgBa4AClBO;€<b!?Š?Z
boolean vdm A inv S(Set) ;
 4-BO:5M58U<>CPbc;q:50K›HJCE;=VgBa4AClBO;€b< !?Š?Z 03;\M5;0?{|bc;58U<>CPbc;\p
/10<F4ABO:5M58U<F03M54;!?Š?Z VO0I4A2€B3VaB‚0I4AkS0I<G:0<F4-BO:5M5CP4>0KE032l54706 0I<†bc2><srž8Ubc;5:5CP<>CPbc;D2^:032W{|bc;58mr
<>CPbc;523ha/ B<5470U6 rž8Ubc;5:5CE<>CPbc;¨032F<+<F4ABO:5MDCP<F0bDBa4M5;0^k]0I6 <>@b7:0W:5MSk…03© kn0G;bck LNM0^KEB?{‰bc;D8U<>CPbc;¨0I<c5470I6 `T0I6 0
DBa4ƒKEBq8A@DB¯©°E;0:08IBa4ABO8U<U0IQ 4>032
<>BO;D:5CE2LNM0KlB †bc2><srž8Ubc;5:5CP<>CPbc;˜032F< 5470I6 `5T0I6 0 DBa4tKEB 8A@5B¯©°E;50 h
/j0?<Œ‹W‚0:0?4>0I<FbcM4W:08U032W:503M7Tk]0I6 <>@b7:032^032F< boolean h€/j0?<F032F<W:0KEB5470U6 rž8Ubc;D:5CP<Fbc;z032F<^0UT036 8IM<=0 6
B3VaBO;=<_K HJB ‚03K5:0GKEBR{‰bc;D8U<>CPbc;0I<8U03KEM5C9:0YKEB ‚bc2F<srž8Ubc;5:5CP<>CEbc;S032F<_KEBO;58D0[6 B D4I03Q 2iK›HJB †03K9:0GKEBR{‰bc;D8U<>CPbc;eh
,G,
! $" / B˜<F4ABO:5MD8U<>CPbc; :50 oVO0I4A2…pw{|BOCP<•B DBa4AB¯©°E<F4>0 M5; B DKEBa<>CE2>2>03M4LNM5C^4>03;5bcknkS0\KE03203;=<>CP<=036 2 DBa4
4AB ‚bO4><WB?Q KP03M48Ubck ‚bc2>BO;=<*:eH‡bO4ACPvcCE;50Ohg/1
0 D4>bOdDK›03Q kS0_;0^2Fb0 ‚bc2Fb0 DBO2:5BO;52KP0^8IBO:4>0^:eHJM5;50i<F4ABO:DM58U<>CPbc;
VO0I4A2•KP032•KEBO;vcBavO032–B˜Q bOd7fF0I<>2z8IBa4•8U03M7TNrž8IC †bc2A2U03Q :03;€<zKEB˜;5bO<>CPbc; :50 8IKEBO2>2F0 036 L=MDCPVgBOKE03;€<F0 B«Q 8U03KEKE0 :0
kSb7:5M5KEBa4-CP<=06 :5MRKlBO;vcBavO
0 [haŠƒHJBOM<F4>
0 DBa4>< KlBW<F4ABO:5MD8U<>CPbc;R:0 ” d7fF038U< SVO0I4-2+;p { BOCP< B DBa4AB¯©°P<F4>0<FbcM<
M5;•2F‹72F<U03Q kS0:0[8IKlBO2>2F0[<F03k DKEBa<F0?;bc;•M<>CEKECE2ABadDKP0^03; cB3VaBƒbeMzQ CEKD;eH‡0UTCE2F<F#0 DBO2:0?8Ubc;58U/0 5<
bcM036 LNM5CPVaBOKP03;€<IhDp0I<F<F0R<F4ABO:5M58U<>CPbc;•{ BOCP<^BOM52>2>C‚B 9Ba4AB¯©°P<F4>0:032^2F<F4-M58U<>M4>032^:0:bc;D;i0I6 03;2 cB¯Vgtemplate
B¨4>03KlBa<>CPVO032
BOM7T {|bc;58U<>CPbc;52I‘dDC fF038U<>CPbc;52I‘+0I<>8ah_:032:2 036 8ICP`D8IBa<>CPbc;52 ¥h i; o8U03203;€<>CP<N036 2z2Fbc;=<n4AB ;0I6 032 DBa4:032
{|bc;58U<>CPbc;52…<FbO<>BOKE032 M<>CEKlCE2=0I6 032…8UbcknkS0™:5032…<>BadDKP03BOM7T 0I<q<F4ABO:DM5CP<F032…2FbcM52 KEB kz03© kS0˜{|bO4AkS0˜:5BO;D2…KP032
"!$#
h
%
$#
Y/MCMOm^ ŠŠcw N~|tHT$w T
"
$ KEBO;vcBavO032¨CEk 0I6 4ABa<>CP{ 2Ih /10•KEBO;5vcBavO90 !?Š"Z 032F<ƒ<F4303Q 2ƒbO4ACP03;=<=0•6 bOdfs0I<>2IL‘ DBa4¨8Ubc;52N036 LNM03;€<SK›H‡0Uš‚bO4><¨:0
<F4ABO:5MD8U<>CPbc;™VO0I4-2ƒKE032tKEBO;5vcBavO032…B\Q bOd7fF0I<>2ƒ032F<ƒknbcCE;5:4>07DBa4t4-B‚bO4><•ByQ 8U03KEM5CL=M5C?B.Q ‚bcM4tbO4ACPvcCE;50KP0
KEBO;vcBavO0 Yh
$
!"# %'& (% )( $ !
*,+.-,02/ 1 04/ 3 +6587:9 1;<0>= 9 ;0 ?+2@6+ ; 04/ AB1 7 0>; + 1<CD=E0>=(F +G7:5 380 +H0 / 5I0J/ 3 0 / +LKM7 C 04/ 0NC8O3 KM+P5Q9L58+LKM7M5I0P/ ;0 KM+
8
5
CQRS1 +UK T 0VB;<O+ + SW X5 K 0 TS7 C 5 0Y1 + 0 / + 1<7 Z 9[7 1<C#2O<k 1W 0\lW 38 02W C n5 m 3 WB7 = oY5897:9 1.+ ]+LKM=EK:90 3 9*9 ^9 C_; + 1<C_O<1B+ = + C TfBB+ K`37Mq587 =4O K`7 K 043_;02/ Ca58+L027`1SK b
CQ02ZdKM+rc 5 02C + 3 58Ze7:9 0] 3802Cf;0Y9 Z ^9=(F + 10h5 gi=Ej 5 G+6- #/ O<7 C q 1<Ca= Zp5 ZD021<=E045 3 5 3a0 O<049 3 02C_/ ; 0 Wwx+ C
;KM+ 0 7:5 3 ;<9 O<= 5 1s+L7M;5 02C'9 = Z K`+ BC + 1 587 C4t*9 ;<#O / R+6587:9 0VC KMK 02= A K O0u ;<9L0 5Q9L5 0 ;02C'5uC + 3vO< = K O3802C#*9 ;'0V/ ; +6581<7:9 1 0402W^C w}9 3
7AB1 C83~O 1 90yO<1 CY; O<04C/ AB1 3 7 3 9 1B043C~O<1<1C 0 5 3 + ;<3 O<= 0 587M9 1N04;3 02CuC8O1<cB1<C0 587:05 O z 587:902C1<C\3021J;02R O >T 02CYB+ 0 3 587 02C q 0 O C\7 ;|C 9 { 1 5u04K3 02CuC 5 1<3(OBC = 5 O38O023C
;0r= 9 1 5 3U9[ K 0r0 5YK 02C +U€ 02= 58+6587:9 1<C W
%'& & 0 & &H‚„ƒ ƒ $% Dƒ …B† ‡† ˆ… ‰\Š„‹fŒ , _Š Š<‹aŽ[P‘’Š”“•Ž–6?Ž^‘a— l[˜•Œ,™ '“•Š '
š 0s=(F + G7:5 380 +0 / 5I0 / 0 / K`+ c 9 3 0›/ + ] B+ 3 587 3y;<02C O<c KM7 = +6587:9 1BC œ t 4ž[k •W}*,+>5 3 + ;<OB= 587:9 1Ÿ;|{ OB1 3 9U¡ 0 5
¢@ 043vC£O<1 KM+ 1 -[+6- 0 7 1j 9 3vZ +6587Mq O0dCQ0hj +L7:5 9
+ ] B+ 3 587 3u;0hZ + =(F 7 102C Hq O 7,9 1 5N0 / 5I0p/ 38021<;<O<02CYC8O C + Z¤b
ZD7 02G1 Kv5 / = 9 1<=E5832+60]585 7M902C GW + _3 K`K K 0 93 9 =E5¥02C8/ C8O<7:C¤5 ;0¥+2@ 3 + 1<02ZD9 021 5 g‡A - 2k W K nm zx=EKM02+ CZ-[+6+ - =(F 7102+ CDC 9 1 K¦5p/ +ž WG0* Kv04/ 02 CDž ;02C
@ Z 02O 5 02C8ZDO 021 C + ZpZD1<02C 1 ;5 3 029 Cf=(F<C 0d1 ;0202C =E3KM+ 1 02-[C +6- 0202C =h7 1<O<j 1e9 3(C Z O<+6C~587M02q 1<O<CQ0202C Zd^c 9 O0r3 ;<q O O0 1 K`+p5 3 +0 ;<OB= 587:9 1 0 @ 0 043vCu=E02O 0 T bˆ= 7 02CQ1 0
C 9[7:5 j + = 7MKM7M5I04/ 0 W
+
#
$#
#
§#¨i©_ª 2k W £« š RS= K 0r;0r; 0 / @ 0 K:9* 02ZD021 5 ;¬{ O<1 3 9U¡ 0 5
2­L®
2­L­
…B†‡† † xŠ ‹#“•ŠŠG “Š ŠB™,LŽ|˜•[Š„‘’Š Ža˜ˆ™’Š„Ž! L[Ž|˜ LŠ„ŠJ‘#" ˜ ‹a“Š ŠB™,6Ž[˜•Œ,™
$V+
7 BK¦/ 58+6587:9 9 +%
5 K`+ KM+
9 K 9 ^9 + 5
+ cBC 5 3 +L7:1<5\Cpq OBO¬1{0 0 KMK 0VZ 3 +% 021Zp0s021 g‡A - 2k 1 W k[m WO"O<1”3 102pZ 021 t = O<CQ0 REFINES 1 ZpZD0 0e= Z C 1
§#¨‡©aª 2k W kh«'& + =(F 7 10 + cBC 5 3 +L7:5 0£0 5Y7 Z BK¦20 / ZD021 58+6587:9 1
…B†‡†)( *+Š Ž"‘_ŠSŒ,™-,,Š<6˜•Œ ™ ‘_Š.
Ža˜ˆ™’Š/
0
/ + 9 @ 7M9 +65 K 9 7 5 +N5 + 7 +Lq 7 BK¦/ 58+6587:9 3B+
K= M+ C8C80 1 W $VC(=(+ F 1<02CfZ =E0r=;+ 0C2t= K 021 C @U043(+ C 3 7`+ 1 c K 021 C#= O<9 381<0 =E340]= 5 021<C~C ;C 0£0.=E0 ] 5Q5 0r3 Z ;<+O =v38F 0p7 1=(0£F C 9 1 O5'0 5 3 Z + ;<O 027M5Zp02Ca021 021 @6+ 3 1 7M+ c K 02Ca;¬3¤{ 7O<1<1C0 b
58+ 1<=E0¤;0 KM+ = KM+ C8CQ0d0 5YK 02C 9*#04/ 3 +6587:9 1<Cu021PZ 0 / 5 F 9 ;02C WG* 0d= 9 1<C 5 3(O<= 5 02O3 B+ 3Y; 04/ j + O 5 ;0 KM+ = KM+ C8CQ0¥g 9 O
K 0£Z 02/ = + 1 7 C(ZD0 043(ZD0 5Q58+ 1 5~K { 7 1 7M587M+LKM7 C +6587M9 1 + OeZ 9 ZD021 5 ;0 K { 7 1BC 58+ 1<= 7M+6587:9 1 m 043(ZD0 5 ;0 5 3 + ;BO 7 380 KM+
= KM+ O<7C80 587 1+ 7:587M+LKM7 C +6587:9 1 + W š 7 0>C8=(F KM02/+ Z + 9 ;0BK 5 3 T+ 7:;<5I/O<= 587:9 1H5Q+.]5 K { - +n@U+ 581 7:9 58+6- 0J/ 58+ ;<0 5 3 /9*Kv^/ - 9 CQ04/ 3pO<+ 10 KM+ - 02-[C 58+67:- 9 1–+sC 7 9 Z B¡ K 05
;9 02C 1<C 9 1<=E+ 02C£54;W 0¤Z =(F 102C4t = Z 0 0D;0D=E0 0 02C 1 0 1 ; 0 0 O 040 O 1 0N] c 0
= 3838*,02C+ 9 1B; @ 1 7:9 @
KM+ -[+6- +N9 ¡ 5 5 / / 7
/ + 9 @ 7:9 / 7v/
+ O T Z + = =(F 1 7 104023(C C q O 1 7 1040D3(ChC 9 O<1 1 <5 B+ 1 C 7 1<C 0›58+ ]1B= 7vc04/ 02Cu0 ;<0¤02ZhO O K:c 58Œ702B1 K 040rABj = 9[704C 3¤W ;¬K { O<j +1ŸO C85£=vFq O<02Z 0¤; + ;1<0sCV= =E0¤1 ;<04043(3(1C 7 041”3V= ; + 02C ; K 00
KM+ 1 -[+6- 0¤C8O 9 3 5 0 K { O 587MKM7 C +6587:9 1e;0hZ 0 / 5 F 9 ;<02CY0 5 ;0 @6+ 3 7M+ c K 02C~;0d= KM+ C8CQ02C W$V+ 1<Cu=E0d;043(1 7 043~= + C4t KM+
KM+ 7 7:587M+LK`7 +6587:9 5 5 5 + 7:5 B+
/ 5 9 '/ 7`+LK @6+ 5 5 + K¦/ G+ KM+
5= 3 + O<;<C8OB0 = 587:1 9 1>;0 C K { 7 Z B1 K¦02/ ZD02O 021 580 +658387:0 9 1 3 7 Z ;<^O 9 3 0 58+ 1 5 3d=EO<0 5Q15 0p0dZ Z 0 + =(F F 7 1<;00W C 02= 0;0 1 0 380 0 040 3
# #
$V+
' 21 )3 K { + 3 9 =(F<0 q O0y1 9 O<CfC8O 7:@L9 1BC4t 9 1 3 7M@l7MK¦0 / -[7 0VOB10£C 5 3 +65I0 / -[7 0¤; + 1<C KM+Lq O0 KMK 0¤z
1
<
C
« *,+Ÿ5 3 + ;<O<= 587:9 1 ;|{ O<1<0JZ + =vF 7 10 B+ 3eO<10P= KM+ C8CQ0 043(ZD0 5sKM+Ÿ-}02/ 1 04/ 3 +6587M9 1H;|{ O<1= 9 ;<0.C 9 O3(=E0
=« * 9 Z *9 B3 0258/ F7 021<7 C +67 c 587MK 9 0V0 5 3 02/ O 58+ 7MK`7 C + 7:c @ K 0 + B+ 3 K 0£BC #K`+ 02/ = 7 A<02O3 5 ; 0 / @ 0 K:9*9 5802+ O3 5 W K`7:5Q5I/ +LK B+ K @U+LK
W:W:W02m C C 9 1 5YZ KM+L7 C C8C 04/ 02C¤1<+pC] ;KM+ 0~=(c F + C_3 1- 0y;<0 O>OP= g‡9 38Z 02Z B7MKM+65 =E0202OZD3\02;B1 O KM;+ 021 C#-[+6= - 1<0dC = 7 c 1 K 0 02W C 043 02C 3 02C 02O3(C4t
« * 02C 9*<587 Z 7 C +6587:9 1<C ^9 O3#C +2@L9[7 3\C4{ 7MK j + O 5
043(ZD0 5Q5 380 9 Os1 9 1 KM+ =E3 0 / +6587:9 1e;|{ 7 1<C 58+ 1<=E02C£+] G+ 3 587 3
KM+ 9 5~-,/ / B+ K 5 + 5 @ K KM+ -[+6- 7 K W
« ;¬* { 02O<CY1Z 0r02=/ = + C81 C87 0rC8ZDC 021 CuC8O 043 ^04902CC 02/ C~A 3 + c 0 K 02CY3 ;;<02O<C = K`+ 021O<-[3~+6;- 0 02C¤+] 9 04c3(C ¡ 0 5 0 CYC 9 1 1 5 O 0y587M=KM7 C c 02/ C 0 9 O<3Y; 7 C 9 C8043\;|{ O<1
^9 3 5 ;0r=E3 0 / +6587:9 1P;|{ 7 1<C 58+ 1<=E02C'0 5 ;|{ O<1¥02C B+ =E0d;0r1 9 ZpZ +6- 0 W
(
C
O
* { O 587MKM7 C +6587M9 1 3 +L7 C 9 1<1 04/ 0P;02C ^9 C8C 7 c 7MKM7:5l02/ C 96€ 043 5 02C B+ 3 K 02C KM+ 1 -[+6- 02C.+ ] 9 c ¡ 0 5 C 043vZD0 5 ;0>10 B+ C
0 5 + 380£K = 9 W 1j‡3 9 1 5l0/ + ] ;02Ca= 9 1 5 3 +L7 1 5 02C ¡ OBC 587 A + 1 5aKM+ 3 0 / +LKM7 C +6587M9 1;0 5 3 + ;<O<= 5 02O<3(Ca= 9 Z BK 0 T 02C_0 5 ; 9 1<=u1 9 1
A c 02C
! !
%'&
&ƒ $ †1 2­ 2
+Lq O0’Z + =(F 7 1<0’;|{ 7 Z BK¦02/ Zp021 58+6587:9 1 CQ043 +f+ C8C 9 = 7¦04/ 0aOB10’= KM+ C8CQ0 W š 0 5Q5 0a= KM+ C8C80 02O 5 380 3 02/ CQ021 5 043
=
(
F
KM+ + 7 7MK +Dq
K 7 58+
KMK 7 + K 9U¡ 5luW?
B+ +n@L9[7 +
-,04/ 38Z 043 =vK 02F Cf1Z 0£9 C4; { 7 AB1|= +6{R 5 02O3(C'O¬;|{ O<{ +1=40V=6CQ02] 02C¤O g 0 1<C 1<=E0£;0£=E0 0Ebˆ= ; 1<C 0 5 0 3 0 m ^9 OAB3 1eK 02;C'0£j 9 11<0 = 587:9 C 1BC'0 5\3hK 02]C
@6+ 3 7M+ c K 02CY;02C~= K`+ C8CQ02C4tO<1 B+ = *U+6- 0DCQ043 @U+ 1 5 ;|{02C B+ =E0h;<0d1 9 ZpCYCQ043 + ; 04/ AB1 7 0 5 =(F + =4O<10d;<02CY= KM+ C(CQ02C
-,02/ 1 04/ 3 04/ 02C + B+ 3 5 021 + 1 5\+ O 3 9U¡ 0 l5 CQ043 + ; 04/ AB1 7 0£; + 1BC#=E0 G+ = *6+6- 0 WG* 02Cf;<3 9[7:5 C';|{ + =4=U02] C + O T 021 587M5I02/ C
CQ043 9 1 5 =E02O T ;<O G+ = *6+6- 0 W
%'& &ƒ & l "&# …B† ˆ… Ž a˜ˆ™’/Š Š +Š Ž >‘_Š„6?Ž^‘a— l[˜•Œ,™ }Ž ,^Ž
? =(F +Lq O0’Z + =(F 7 1<0’;|{ 7 Z BK¦02/ Zp021 58+6587:9 1 CQ043 +f+ C8C 9 = 7¦04/ 0aOB10’= KM+ C8CQ0 W š 0 5Q5 0a= KM+ C8C80 02O 5 380 3 02/ CQ021 5 043
KM+ Z + =vF 7 10rC2{ 7MK 1|{R +pq O¬{ O<10£CQ02O K 0 7 1<C 58+ 1<=E0r;0r=E0 K`K 0Ebˆ= 7 ; + 1<C K 0 3 9U¡ 0 5 uW
* { O 587MKM7 C +6587:9 1;|{ OB10 + O 5 3(0VZ + =(F 7 1<0uCQ0uj +L7:†5 G+ 3 K`+ = KM+ OBCQ0 IMPORTS W $ 0Vj + = ) 9 1 -,02/ 1 04/ 3 +LK 0 K 0 KM7 021
;| { 7 Z 5 9 7 3 58+67M58K`+L7:9 7 1 + 043(ZDK 0 57 ;<0Y=EKM3 + 04/ 043f-[+6;- 02C 7 +h1<C 9 58+ ¡1<=E5 02CaW;* 0Y7 Z +58+=(F 7 1<02C 7 Z ^9 3 5l+ 04/ 02C 7Wl* 0u= 9 9 1<=E0 <5 K ;|{ 7 1<9C 58+ 1B/ =E0\021 5
K 02C 02*9C '04C / 3 Z +6587:9 1<38C~0d; ] 04/ AG=E01 7 O 02C\;; 02+ C 1BCf1=E0 5Q5 0h02CyZ ]+ =vF c 7 10 0£C 0 5 CQ{02Cf1BC 3 + 1<=E1<0V02ZD;|{ 02O<1 15 0VC W Z =(F 10 C(CE02] ;0 02C#; 1<1 0402C'0
* 02C B+ 3 587 =4O KM+ 3 7:5l02/ Cf;0 C 9 1 5~K 02C\C8O 7:@6+ 1 5 02C£z
« K 02C 5 9 C(C 7 c K 0D021 ;0s1<0 B+ C¤; 9 1B1043h;<0s1 9 Z + ] O<10 7 1<C 58+ 1<=E0LtxC4{ 7MK 1|{R +Pq O¬{ O<10¥CQ02O K 0
7 1<C 58+ 1<=E0s;0=E0 5 R 0 W}wx+ 3h0 T 02Z GK 0Lt,C 7 O<10 7 Z BKM+ 1 58+6587:9 1 M1 7 1<C 58+ 1<= 7 0OB10p0 5 O<10C802O K 0
jK 9[7 7 C BKM+ KM+ Z 58+ +6=v58F 7:97 10 M2 t?0 5 C 7BK`+ l5Z B+ + =(F 7 + 10 M27:- ^W 9 C8CE02] ;0VO<10 *9 '04/ 3 +6587M9 1 f t +LK:9 3(C K { O 587MKM7 C +6587:9 1D; + 1<C
« {K Z 02C 5 1 102/ =E02C8C +L17 3(0£M1021 ; 0 ;f 0£1¬;{029 C 1<1<043'C OB1Zd1 c 9 Z O 0 + O T7 1<C 58+ 1B=E02CfC4{ 7MK R + 021 BK O<C#;|{ O<10 W 1s0 € 0 5 C 7
7 58+ 7 T 9[7 KM+ Z + =(F 7 1<0 M2 t K { O 587MKM7 C +6587:9 1¥;0 f 02C 5~+ Zdc 7:- O 0pzx+D] q O0 K`K 0 7 1<C 58+ 1<=E0
M1 1<C 1<= 0V;<02O j C
+B+ 3 587 021 5YK`+ j 9 1<= 587:9 1 f * + C 9[K O 587:9 1N02C 5 ;0d1 9 ZZD043 K 02C 7 1BC 58+ 1<=E02C4t B+ 3Y0 T 02Z BK 0
;<0 M2
5
5 / T K + 0 K ;0 K`+ j 9 1<= 587M9 1 B+ 3 K 0r1 9 Z;0 K { 7 1<C 58+ 1<=E0 q O 7 = 9 1 587 021 5 f B+ 3
i1 0 i2 tB0 ;0 3 04A 043 {
T BK W
* 0Y0 C8=v02F Z 02/ Z +y0D-}z 02/i1.f1 04/ 3 +LK 02C 5 ; 9 1<=~;|{ + C8C 9 = 7 043r+ ] =(F +Lq O0 7 1<C 58+ 1B=E0 O<10 7 1<C 58+ 1<=E0Y;|{ O<10~= K`+ C8CQ0 ?+2@6+SW
9 O 5 04j 9[7 C; + 1BCO<1 cGO 5 ;|{ *9 B587 Z 7 C +6587M9 1|t’O<10NZ + =(F 7 1<0 q O 7 10JCQ043 +L7:5s7 1<C 58+ 1<= 7¦04/ 0 q O¬{ O<10>j 9[7 C
CQK 047 3 + 9 380 +63 0258/ 7:CQ9 021 5I04/ 9 0 G+ 3dO<+ 15Y0pK = K`+ C89 CQ0p0 5 ;02C 7 @6+ 583 + 7M+ c K 02Cy;0@ = + KM+ C85 C802C W w}/ 5 9 O3y73 0 / +L/ K`7 CQB04+ 3y=EK 0 5Q5 5 0 + 9*<587 5Z 7 C +6W 587:9 1|t
{ 1<j $ 3(Z T 1¥9 = K 1<=E043(1 1 ^9 0r1 5 Zyc<3(0r;|{ 1<C 1B=E02Cf;0 3 0 380d; 0 043(Z 1 040 3 0 3 ;<O<= 02O3
« 02*,O + Z 3 + =(c F 7 02] 1ZD0 027 C\Z CQ^0 9 3 5l04/ CQ0£021 02C 5 z 1 9 ZpZ 04/ 0yZ +L7 C 7MK 1|{R +q O|{ OB10 7 1<C 58+ 1<=E0Dz<; + 1<C KM+¤-,02/ 1 04/ 3 +6587:9 1P;0
9
9 7 B+ + 5
^9 KM+L7 q K 9 KM+ KM+ ?+2@6+ 9 ^9 + 5 W
« =*,+ ;0yZ =E+ 0d=(F 1 7 1Z 0 02; C 5NC 7 Z 3 ^ 9 3 5I04/ 0 O3\B1K O<0 C 7 02OC(3(CQC043 j 9[7 O<Ce0 Z 0r+L7 1 CeO<Z 10›;<0 ;02C = 7 1<CC858CQ+0 1<=E02Ce1¬= {0238C 3(>5 02CB+ Ce1<1; 9 Z1 Z 0 04/ 0"z
; + 1<+–C + KM+¤B-}+ 02/ 1 + 04/ 35 +6587:9 K 1P;0y9 = 9 ;0 7MKMK + j + O<K`;+ 3 + =vF 5J9[7 CK 7 3~O<+L1e7:5>1 q 9 Z 7MK ^9 O+63\-[7M=E5 0 5Q5 0hZ + =(7 F 7 1580+ W<* 0d+1 9 9Z =(F 9[7 C 7
j‡043 3  380 0›1 Z ;0 = C8- CQ0 2k 0 W 0 5 2j k W m W O|{ C4{ ;|{ O<10 1<C 1<=E0 1 1IRSZD0–z
š F anonymous
+Lq O0”= KM+ C8C80 ?NomDeClasse
+2@6+ = 9 Z 9 3 5 043 + O<g‡A 10„j 9 1<= 580 7M9 1 INITIALISATION W š 0 5Q5 0 j 9 1<= 587:9 1 CQ043 +
3 02/ = 02/ ; 04/ 0 ;BOZ 9 ; 7 AG= +65 02O3
+ K +
K`+ q 7 +>¡Q+ +L7 7 58+ 7¦/ W
š 0 5Q5 0rj 9 1<= 587:9 1 043vZD0 5Q5 3 + z static ; 1<C 0J= Ce;¬{ O<10J= C8CQ0 O 10.CQ043 Z C 1<C 1<= 040
« K`+ =E3 0 / +6587:9 1¥;02C 7 1<C 58+ 1<=E02Ca;0~Z + =vF 7 10\021 [+n@U+d@l7`+rK { *9 '04/ 3 +65 02O3 new zI=E0 5_*9 '04/ 3 +65 02O3 + 0 KMK 0
K 0r= 9 1<C 5 3(O<= 5 02O<3~;0 KM+ = KM+ C(CQ0 q O 7|+ 0 KMK 0 KM+ j 9 1<= 587:9 1 INITIALISATION ;0 K { 7 1<C 58+ 1<=E0Lt
« K { 7 1 7:587M+LK`7 C +6587:9 1;02C @6+ 3 7M+ c K 02Cf;<0 K { 7 1<C 58+ 1<=E0 9 O>;0 KM+ = K`+ C8CQ0 W
?
%
"!
#
$
%
%
'&
)(
2­
$V+
K + 9 O ] KM+ Z + =(F 7 10N02C 5 ; 7M5 0JC 58+6587Mq O0”g K 02C¥Z 0 / 5 F 9 ;<02C0 5s@6+ 3 7M+ c K 02CsC 9 1 59 3 02/ = 02/ ; 04/ 02CJ;<O
9Z 1<; C 7 AB= 0J+65 = 02O<C 3 static
m t K`+ Z 0 / 5 F 9 ;0 INITIALISATION 02C 5¤+ 0 Kv04/ 01 9 1 B+ C B+ 3hC 9 1 3 9* 380
= 9 1<- C 25 3vk O<W ® = 5 202k OW 3­[m q WO $V7 +1|{0 T7 C 5 0 + B+ C_9 Z +L7 C 5 B+ 3 K`q + Z 0 /KM+5 F 9 K`;<+ 0 INITIALISATION
;<K`0 + KM+ = / KM5 + C89 C80 q O 7<K { O 587MK`7 CQ0
:
7
5
8
5
6
+
8
5
`
7
q
9
\
5
g‡A t 9[7M5 5 1<C\+=E0y = K¦C2/ t 1¥02C +h7 C[O< 7:583 7M+LKMO7 0 / = C8CQ0r;7^KM+ 0£C KM+ Oq 0LtG7^; 7 1 58+ 7 Z 0 F5 ;KMK 0 INITIA+ O<C8C 7 ; 7:5 0
0

8
3
0
0
4
0
L
0
t
Q
C
4
0
3
1
C
4
0
Y
0
e
Z
2
0

D
Z
r
0
C
=
8
C
8
C
0
O
<
1
C
<
1
=
u
0
2
0
C
0
0
LISATION ;
C 58+6587Mq O0g 7MK 1|{R + O<3 + B+ C\;0r= 9 1BC 5 3(O<= 5 02O3 m W
…B† † xŠ ‹#“•.Š
* 02CV0 T 02Z GK 02C q O 7 C8O 7M@ 021 5u9 1 <5 ^9 O3ucBO 5 ;|{ 7MKMK O<C 5 38043 K 02Cu; 7 €~04/ 38021 5 C£= + C£;0hA - O380 q O 7( 02O @ 021 5
CQ0 3 02/ CQ021 5 043¤g‡A - 2k W t 2k W t 2k W ® 0 5 2k W ­[m W
'&
)(
IMPLEMENTATION
M1 imp /* implementation de la machine abstraite M1 */
...
END
IMPLEMENTATION
M2 imp
IMPORTS
i.M1, M1
...
§#¨i©_ª 2k W « Z ^9 3 58+6587M9 1e1 9 Z 7 1 +6587M@ 0 9 O>1 9 1>;|{ OB10rZ + =(F 7 10
'&
'% & & …B† ˆ… ‰\Š.> ‹fŠ.>‘_Š aŽ Š ‘a— “•Ž|™¬Ž¬Š
* 5
+ 9 5
« 02K C {021<R CQ0202ZdC\c ;K 0£0£c;02CfC80y021C 5871 043(C~z 380 KM+6587 jiCVt
« K {021<CQ02Zdc K 0£;02Cfc 9l9[Kv04/ 021<C BOOL = true, false t
« K {021<CQ02Zdc K 0£;02C\=vF + M102CY;0r= + 3 + = 5 04] 3802C STRINGt
« K 02Ca021BCQ02Zyc K 02C 02/ 1lO<Z 04/ 3 02/ C~0 5'+ cGC 5 3 +L7:5 C4t; 04/ AB1 7 Ca; + 1<C KM+ = K`+ O<CQ0 SETS g @L9[7 3\C802= 587:9 1eC8O 7:@6+ 1 5 0 m W
w}9 ^9 @L9[7 7 GKv/ 5 K 9 / + KM+ -[+6- 7 9 +6587Mq 58+L7 9 5 +L7 5
9C 1 5 1 02O/ =E3 02C8C +LO 7 3802Cr3 z Z 02ZD021 043 02C}; 1<1 0402C’; 1<CxO<1 1 0 1j 3vZ O0LtU=E043 102C = 1 3 1 02C
« * 02CD021 587 043(C= 9 1B=E380 5 C; 9[7M@ 021 5+ B+ 3 5 021 7 3J+Ÿ] K { 7 1 5 043 @U+LK`K 0 INT W INT 02C 5 O<1 C 9 O<Cb•021<CQ02Zdc K 0
W\* + @6+LK 02O3P;0Ÿ=E02C
;<9 0 K {5802+ 1<CQ5 02Zdc K 0 5†BV+ t_+ c 9 3(/ 1 5 0 / + GK + 3 K 02K:9CJ= KM9 + 1<C 58++ 1 5 027 C MININT
0 5 KMK MAXINT
7
K
5
9
5
q
= 1BC / 1 5802+ C'02K C 3 KMZ+ 0 3+ c 7 0£CQ0 5#1 q 7MK Z =(F +L7:1†5 0YB= + c 0Lt?;0 / 09 0uC 3 0 5 OK:9 0 K 02C#; 9 1<+L1 K 04/ 02C'K C W 9[š 7 021 5 7
3(0 9[7:53 02CQ021 +L7 c 02+ C'C8O37:@ + Z =vF KM1+ 0Y-[0 +6- O| { ^1|9 {R q KMCa+ ;< 0u; 04@ c 3(;0258Zp7 021 C 9 3(C#B;502C#W = =4O C 02=
« ;* 02C'C CQ9 0£O<jCb•02381<0 C802ZyONc 1 K 02Ca0 ;|Oe{021 ;<58O 7 043(Ca1 0 5'K 020 C_021BCQ02ZyOc3 K 02O<C 0 + cGC 5 3 +L38027:5 O C#; 0£9[027:1@ 021 5021<0 15 3(0r0u= ;02Z C 7 1 0 5 043 @6+LKMK 02Ca;|{021Sb
587 043(C\= 9 1<=E380 5 C W
%
2­ œ
class M1 ...
void INITIALISATION () /* initialisation des variables de M1 */
M1() INITIALISATION();
class M2 /* On suppose M2 instancié plusieurs fois */
...
M1 i, anonymousM1 ;
void INITIALISATION () /* Création des instances */
i = new M1() ;
anonymousM1 = new M1() ;
/* initialisation des variables de M2 */
...
M2() INITIALISATION () ;
§#¨‡©aª 2k W « š 3 0 / +6587M9 1N;0r;02O T¥7 1BC 58+ 1<=E02C\;0
)(
# 1
M1
K { O<10r1|{ 0 / 58+ 1 5;B+ C\1 9 ZpZ 04/ 0
* -[K 5 B+6- 9 5r+ / K:9[7:- /
KMK
KM+ -[+6- 9L- + +6587:9
K= M+ C8C 7M02q C£O<0340]W<* 0202CrC\;; 07:€~04/ R 38021<=E020CY;1 0 9L5Q9[7 38C 02C 1 + O>C81 C807:@ 0 +0 O>;<021 Cf040202Cy1<CQ;<020pZd=Ec 0 K 02C\02C£C 9 ;|1 { O<5~1 K 02CfC81 O 7:@6+ 0p1 5 ;020 Crz 3 3 ZpZ 1
« K { 7 Z ^9 3 58+6587:9 1¥;0yZ + =(F 7 1<02C +2@ 02=h;02C B+ 3 + Ze0] 5 3(02C~j 9 3(ZD0 K Cf;<0 5 R 0y021<CQ02Zdc K 0Lt
« K`+¤@U+LK O +6587:9 1>;|{021<C802Zyc K 02Cf;0rZ + =(F 7 10+p] K { 7 1 5l04/ 3 7 02O<3\;0 K { 7 Z GKv02/ ZD021 58+6587M9 1 W
$V+ 1<C K 02C KM+ 1 -[+6- 02C~;0 3 9L- 3 + ZpZ +6587M9 1 7 Z #04/ 3 +6587 jiC'= KM+ C8C 7Mq O02C4tSO<10 @6+ 3 7M+ c K 0u02C 5'5 R '04/ 0r0 5 C 9 1 5 R 0
1/0r/ @U=v+LF K + 1 / - +0 GK O<9 C W š 0r1|{02C 5 K B+ C K 0r+ = + C~;<O KM+ 5 1 9 -[+6- 0 u9 W ^1>9 0 €7M580 7:9 5~K 0 5 R 0r+ ;|{ O<7 1>= 9 1<C K`58+ 7:5 O + 1 5l 02O 5 0 5 38m 0 W
3* 0 + 0 + O ¡Q09 7:5IOp/ = O<3(C’7;<OD=ERSK:=5l/ 0~;0f3 5 B+61- 02ZD021 Op587M;5I0\/ = Z +C 7 1D;02C’/ Z 7 =vF + 102C\gi= O<CQ+0 IMPORTS
- 5
5 R Z0 q O0 3 K { 0u9 1 ;<02+ Ca; 0 KMK 04=43 O + 3(0202C_= ;<9 0O @ R3(02ZD020£1 5 ;;02Ca+ 1<021C KM+ 02C(C'O ;7:5 020rC#;<Z Oe;=vF 9 =41O<02ZDCa023 102C54W ;0u; 1<Ca=E02C#=vF 1 02ZD021 C';0
W 0 10hZ + =(F 7 10 + cBC 5 3 +L7:5 0 02O 5 0  5 3(0 B+ 3 + Z 0 / 5 3 04/ 0>+] K { +L7 ;0d;|{ O<1e021<C802Zyc K 0sg‡A - 2k W m W $V+ 1<Cu=E0
=+ + C K 0 5 R 7 09 ;0p+6=E580 7:5Q9 5 0s021 587:5 5I0/ B02+6C - 5d-,02/ 1 04/ 3 0Ÿ/ 5Q+ ] 5 G+ 3 58587 7:3y5I/ ;<W O š 1 9 58Z +L7 ;0 K {021B58CQ7:025IZy/ c K 0p= KM+ + 3d1 9 + OBCr7 1|{ +2@L99 1BC5
5 R OB'=404O</ 021CD0 +¤] 1K { j +L7 3v;Z 0£;0£=E1–0 5 ;020 1<C802R Zyc K 00 W C8?;O 33202=E] 0CfOB0.10 021@’04/ 3 7 0 AG= +658047:9 3 1 K:91=02+LCK 0021 +¤] KM+ 02CsZ ;<+ 0=(F 7 10rZ ;02=(C F 5 R 1 0N02CC4t 1 KM+
58+ c K 0y;02C 5 R 02C\;<02Cf021 587M5I02/ Cu;0 KM+ Z + =(F 7 1<0 A 02C 5 ; 04/ AB1 7 0r; + 1<C K 0 58+ c K 0 + O 2k W W
1<7 C8O 7M5 0y;<O- 3 2+ k 1 W 5Y[m K W{ + š 1 +L5QK 5RSCQ0d;<+ O 7 3 9U¡ 7 0 5  9 t 5KM+pKM@’+ 04/ 3 7 AB+ = +6587 7M9 1P;<W 0 *¬5 9 R 02CVCQK 0473 + ^0 9€ 0258= +65 58O 7:904/ 0pC8K O<3 KM+ Z + K b
=vF 10 B g‡A
0 0'Z =(F 1<0 Z 3 0 Z =(F 10 A 3vC};<0 { Z 3 1 {021<CQ02Zdc 0
!
!
ž
IMPLEMENTATION
M1 imp /* implementation de la machine abstraite M1 */
OPERATIONS
...
op1 ...
...
END
IMPLEMENTATION
M2 imp /* implementation de la machine abstraite M2 */
...
OPERATIONS
...
op2 ...
...
END
IMPLEMENTATION
M3 imp
IMPORTS
i.M1, M2
...
OPERATIONS
...
op ...i.op1 ;...op2 ;...END
...
END
§#¨‡©aª 2k W ®h« 0~587MK`7 C +6587:9 1¥;0yZ + =(F 7 1<02C 7 Z ^9 3 5I04/ 02C~O<1<0rCQ02O K 0Vj 9[7 C
R 20 C
1 587:5I02/ C
!
ENSEMBLE1
aa
dd
bb
$
ª 2k W V« R 0r;<02Cf021 587M5I02/ Cu;0 KM+ Z + =(F 7 1<0 A + 3402] C @’04/ 3 7 AB= +6587:9 1 K:9 = +LK 0r;02C 5 R 02C
5h/ @U+LK O 0 / G+ 3 K { 7 1 5 043 @U+LK`K 0 0..255 ;0 5 R 0 g m W $ O3 + 1 5 KM+V@’04/ 3 7 AB= +6587:9 1 KM9 = +LK 0
ENSEMBLE1 02C 0
5
;<K`+e02C 58+ R K 02C C(O3 5 B t K 0 5 R 0f;0 587:ENSEMBLE1
t7
tLK`K ; 9[7:5 0 5 5838+ 0f38K 02+Z BK`2+ k = W 0 k / W B+š 3 7 g m 5 t
I
5
/
M
K
+
+
l
@
7
5
KM9 = +LK c 0 501;<002C ^9 R CQ0 02CdB+ ;<C¤02Cr;0 021 3 9 02c CdK 02] ;ZD0 0 9 3 Z K { + =vF 10 0 K ;<A0 ;K 0{ 9*'0204/ 13 +658=E7:9 0 1 0op1;<O ;0 c KM+ 0 Z O + =(F 7 10 A02= ; + 021BC C
K { *9 #04/ 3 +6587:9 1 op2 ;0 KM+ Z + =vF 7 10 B 02C 5 3 0 / +LK`7 C 04/ 0.+J] K { +L7 ;0p;<OŸ1 9 ZycB380 5 W š 0 5y+ 0 K 02C 5yK¦0 / -[+LK
= + 3 5 02C 5 ;0 5 R 0 g m t K 0uZe02 ZD0 q O0V=E0 K O 7 ;0 ENSEMBLE1 Z +L7 C KM+y58+ c K 0u;02C 5 R 02C';0 KM+
2
3
$
class M1 ...
static void INITIALISATION () ... /* Bloc exécuté pour l’initialisation de la classe */
static void op1() ... ...
class M2 ...
static void INITIALISATION () ... /* Bloc exécuté pour l’initialisation de la classe */
static void op2() ... ...
class M3 /* On suppose M3 instancié une fois */
void INITIALISATION () /* initialisation des variables de M3 */
M1.INITIALISATION();
M2.INITIALISATION();
...
M3() INITIALISATION () ;
... op () ... M1.op1() ; ... ; M2.op2() ; ... §#¨i©_ª 2k W ­h« 0~587MK`7 C +6587:9 1e;0r;<02O T Z + =vF 7 102Cdg M1 0 5 M2m 1 9 1 7 1<C 58+ 1<= 7¦04/ 02CY; + 1<C M3
Z+”+ / 5I=(F/ 7 1<0 + A-,02/ CW 5l^9 O3 58+ 1 5 021>; 02/ C + =4= 9 3(; +2@ 02=d=E0 3 7 1<= 7Œ 0u= + 3YCQ02O K|K 0 5 R 0r;0 ENSEMBLE1
0 0h=(F 1 0
1 587:5I02/ C
R 02m C
g
ENSEMBLE1
!
$
aa
dd
bb
243
B
ª 2k W kD« R 0y;<02Cf021 587M5I02/ CV;0 KM+ Z + =vF 7 10 A + 3402] C @’04/ 3 7 AB= +6587:9 1 K:9 = +LK 0 B+ 3 587 0 KMK 0£;02C 5 R 02CY;0
K 02C 5 ; 9 1B=u1 02/ =E02C(C +L7 380y;<0VZ 9 ; 7 A<043 K 0 5 R 0r;<0 5Q9 O 5 02C K 02C'021 587:5I02/ C~;0 KM+ Z + =(F 7 1<0 A 5 R '04/ 02CD+ ]
K { +L7 ;0d;<0 ENSEMBLE1 9 O<3 9 c 5 021 7 3YO<10 58+ c K 0h;02C 5 R 02Cp+r] ¡9 O3u= 9 ZpZD0¤; + 1<C K 0 58+ c K 0 + O
$
k
MACHINE A(ENSEMBLE1)
VARIABLES aa
INVARIANT aa ENSEMBLE1
OPERATIONS
bb op1(dd) PRE
dd ENSEMBLE1
THEN
bb : ENSEMBLE1
END
END
§#¨i©_ª 2k W « T 20 Z BK r0 ;0rZ + =(F 7 1<0 2+ @ 20 =h;02C B+ 3 + Ze0] 5 3(02C\021<CQ02Zdc KM7 C 5 02C
!
IMPLEMENTATION B
IMPORTS
A(0..255)
...
OPERATIONS
cc op2 BEGIN
cc op1(5)
END
END
§#¨‡©aª 2k W h« ’T 20 Z GK r0 ;|{ 7 Z ^9 3 58+6587M9 1s;<0rZ + =(F 7 102C +2@ 02=h;02C G+ 3 + Z¥0] 5 3802CY021<CQ02Zdc KM7 C 5 02C
2k W lW
R 02m C
1 587:5l02/ C
g
ENSEMBLE1
!
'&
!
$
aa
dd
bb
ª 2k W « R 0£;02C'021 587:5I02/ C~;0 KM+ Z + =vF 7 10 A + 3402] C @’04/ 3 7 AB= +6587:9 1 K:9 = +LK 0£= 9 Z BK 0] 5 0d;02C 5 R 02Cf;0
B
k W~w}9 O3 KM+£@6+LK O +6587:9 1;|{021<CQ02Zdc K 02C K 0 3 9 c K 02] ZD0\02C 5 C 7 Z 7MK`+L7 380Lt 9 1 B+ 3 5 ;0 KM+ Z¥02 ZD0Yj + = ) 9 1s;|{ O<10
Z$V+ + =(F 7 1<0 A+ g‡A - 2k W œ m 5VW 9 7 BK¦/ 58+6587:9 - 2k W 4ž?m K 587:5I/
K
5 R 1<0 CyO<g 1P m 3 W?* 0 15 02R ZD 020r1 ;02C O @6+ O<3 17M+0 c K Z 02C aa,02Zpbb021 0 5 dd1–; g‡9[A 7M5#+ O<C(C 7 0 5 3({0y021 Z 9 ;0 7 AENSEMBLE2
/0VC 7 1 9 1s=E02= 7i 3 389 02@L1<9l; q O00
OB10J043(3802O3e= + 3 K 02+C¥;02m O W¬T"* 5 R 02C¥10K C 9 1 55DB@U+ +LC K 7 ;/ 02q 1 587Mq O<02CPg K 0 K 5 R 9[70 ;0 9 aa,K bb 0 9 5 ddK B+ C8CQ05
;<0 9 9[7 ] 9 5 +L7:- {02+1<CQ025 Zdc9 0> 1¬{02C 5D7 ^O 9 0 5 O|{ OB10sC802+ O 0¥7 j CDG;K 1<7 = 0 9[3 7 c +202] @ ZD0¥02C
c^0 + ENSEMBLE2
O<= O Z 1<C¤= 1 3 1 1 g 1 02O Z 3 043¤O<10eZ =vF 10 O<C 02O<3(Crj C 02=N;02C
243
'&
$
&
MACHINE A
SETS ENSEMBLE2
CONCRETE VARIABLES
aa
INVARIANT
aa ENSEMBLE2
...
OPERATIONS
bb op1(dd) PRE
dd ENSEMBLE2
THEN
bb : ENSEMBLE2
END
END
§#¨i©_ª 2k W œ « T 02Z B K 0r;0rZ + =(F 7 1<0 +2@ 02=yOB1e021<CQ02Zdc K 0 + cBC 5 3 +L7:5
!
MACHINE A imp
REFINES A
VALUES
ENSEMBLE2 = 10..100
...
OPERATIONS
...
END
#§ ¨i©_ª 2k W 4žD« T 02Z BK 02Cf;|{ 7 Z BK¦02/ Zp021 58+6587:9 1 +2@ 02= 5 R G+6- 0d;|{ O<1¥021BCQ02Zyc K 0 + cBC 5 3 +L7M5
@6+LK O +6587M9 1<C’;|{021<C802Zyc K 0~; 7 €~04/ 38021 5 02C#Z +L7 C_; + 1<C K 0Y=ERl= K 0Y;0\3 + 1<02ZD021 5a9 110 02O 5_@U+LK O<043_O<1
021BCQ02Zyc K 0 q O¬{ O<10rCQ02O K 0uj 9[7 C m W
0 10 3802Z 7 04] 380\C 9[K O 587M9 1DC 7 =E02C 5 R 02C’C 9 1 5 ;02C’= K`+ C8CQ02C 02C 5 ;|{ O 587MKM7 CQ043 K`+ = KM+ C8CQ0 Object ;0 $?(!‚?
m W<w}+ 3V= 9 1<C 0 / q O021 5
;7MK 9 1 + 5Y5Q5 9 OBC587MKMK 702C 5 R 02CYF + 04/ 3 5 7:5 021 5 9[ZK +L587:7 9 Cu=E02q C 5 7VR + 02CV+LC 7:9 5 1 5 C 7 Z 5 BK 02Cyg int/ 0 5 + boolean
8
5
+
5
j7 O 58+ O C8043O<+10 7 O W<3(0.* C 7 O 58+ 1 O O3 + 7 O 0 380›;+L0 7 =E3 5 04043 7:€~/ O 1 7¦/ ;0 B= + KM+ C(K CQ025C [+n@U+ 587Mq KM7 O0 /
;|{ 1BC 1<=E02C\;0rZ =(F 1<0 02C 1<C 1<=E02C\;<0rZ =(F 102C CQ043 021 ; 0438021<= 0402C 3 0 R 0rO C 0
^9 O3 @U+LK O043 K {021<CQ02Zdc K 0 W6* 0 3 9 c K 02] ZD0 7 1<F 04/ 38021 5 + ] =E0 5Q5 0YC 5 3 +65I0 / -[7 0\02C 5’K 0a38021 9 ZpZ +6- 0\;0 KM+ Z + =(F 7 10
;<7 O3 + 581 7 5y+ K`+e5 5 3 B+ K;<O<= 7 587M9 1 W KM+ 1Ÿ0 € 0 ?5¤+2@6K 02+7Cd^Z 9 + =(F 7 102C q O K7 O 587`KM+ 7 CQ0217 5 =E0 5Qm 5 0 587 1<7MKMC7 58+ 1<=E09 1<0K C 7 + O3 589 + 1 57MB+658+ 7:C 9 q O0 K7
;KMK 021 A 5 1 / g O<+LC7 02Om 3vC\5 = ^9 C8CQ02C / 5 9O3uO<1-W 0d0 C802O 0dZ 7 =(F 1<0 9[K 587M9O +CQ04/ 3 5I/ / KMO<+ 3 9 { 1B/ C W a1<KM= K 1„giC 5
0 0D02C / 1 02=E02C8C K`+ 3(0 0 +n@ OK 3r5 CQ02CdZ 0 58F 7 ;<02C G+ 10T ;04B3(1 K 04] 380pC m O 5 1 5 0+ 0 0 9 c 3 04K0 7 0 587 043(+ ZD05
;09I9[=EK¦3 / 04043¤O<10p= C8CQ0 02= 0 R 0p58027:@ 1 043g 5 3y0 02Z 0 5 intK:9Sq 0 ;K 0 583 7MK`7 1<+6CQj587:9 3(ZD043 025 C ;021 A 1 C
c^9 0402K 1B7 C 58FALSE,TRUE
3802C 02= 02Zp021 021 .+ B0 + c O049 3 K { O C 5 1>B+6;B- O R K 0 STRING
O587MK`7 3 / { 1<5~C K + 1<5 = 7M+6 587M9 1 W 587 $ 0W =E0 5Q5 0¥Z + 1 7 04] 380 7`K 1|{R + 0,1
O3 Cy;0 3 c 02] ZD0;0 R 0Pz 0pC802O K’5 R 0
O C 0V02C 0 R 0r021 043
!
!
!
(
…B† † }—a˜ ,^Ž|“•ŠB™!SŠŸŠB™,L[Š  ‹fŠ.
Š> ‹fŠ. ,Ž ,^Ž
$V+ 1<CrOB1 3802Z 7 043 5 02Z Cr1 9 O<C +n@L9 1<Cr02C8C + R 0s/ ;0D=E3 04/ 043d;02C 5 R 02Cr021 6 043(Zp0 5Q58+ 1 5 OB10 BK O<C
KM+ 3 - 0uO 587MKM7 C +6587:9 1¤;02C 5 R 02C#;<O KM+ 1 -[+6- 0u= 7 c K 0\=6{02C 5 b¦+ ] bˆ; 7 3(0 [+n@U+SWSoY9 O<C +n@L9 1<C'; 04/ AB1 7<K 02C 5 R 02C jBint,
5
9
7 5 @6+LKMK 02CfC8O3 ^9 O3\; 04/ AG1 7 3 K 02C 5 R 02C int, short 0 5 byte
jBshort 0 jBbyte = ZpZp0r;02C 1 043
[+n@U+ t=E0 q O 7’ 043(ZD0 5 ;0r; 04/ AB1 7 3 K 02C 0 / q O 7:@6+LK 021<INT
=E02C\;<O 58+ c K 0 + O 2k W W
w w $?(!‚?
BOOL
boolean
p
9
5
5
k ­ W:W k ­ m
g
=
0
2
C
<
t
b
jBint
int
9
k
= 95 0 5 5 C4tB5 b k2k ­ W:W W:2W k k m ­ m
jBshort
short g
= 0 t<b
jBbyte
byte g
STRING
String
ª 2k W « w 3 *9 ^9 C 7:587:9 1p;¬{ 0 / q O 7:@6+LK 021<=E0V1 9 1380 5 021lO0V021 5 380 K 02C 5 R 02C#;<0~c + CQ0 0 5'K 02C 5 R 02C ?+2@6+
9[7 7 t7 G+ T 9 K 9 9 5 9 7:5 +p+ + 9
5Q5 / 5 9
« 3 *,+ C Z 3 7 C81<0#= 021 +O BKM7 3= +6c 587:9 02] 1DZp;02C\0\1=E0 5QO<5 C 0 0 / 1q O 7:= @6+L1<K 02;B1<O =E0\C2] {02C c 5 F1<02; O3 1<5I0 1/ 04+ 3\O T=E0 3 0d9 c Z K 02] 0 ZDF 02C_;;00fz 3802= 9 O @ 3802ZD021 5
;<0 5875 R 02Cp9lgi9[=EK¦j / 2k W ® W 5eW n/ m q O 7x/ 9 / c WKM7:- 0N+ ] O 587MKM7 CQ043uOB1 5 R 0 int 9 O short ^9 O3 5Q9 O<C K 02C 5 R 02C
« 02* 1 02Cf04Z 3(C\+ =(c F 7 10204C'021<;Cf0V0 c + 02CQ01IO<5 Z0 KMK04023 C 02C q O0 BASIC IO O 587MKM7 CQ021 5#K 0 5 R 0 INT W š 0 5 R 0£= 9 383(02C ^9 1<;
9 O jBbyte W KB+ O3 +L7:5 j +LKMK Op=E3 04/ 043fO<10~Z + =vF 7 10 3 02/ = 9 ; 04/ 0
C80 K:9 1 K 0u= + C + O Tp5 R 02C 54jBshort
G+ 3 5 R 0p= 7M5I0 / 3 02/ = 02/ ;02ZpjBint,
W
$
B
K
ZD021 0 OBC 7`K j +LKMKM+L7M5Y-}04/ 38043 K 0D=(F 9[7 T ;0 K { O 587`KM7 C +6587:9 1P;|{ O<1 5 R 0
9 ON;|{ O<1 + O 5 380 W
« * { + ¡9 O 5 021 ;02C 5 R 02C jBint, jBbyte 0 5 jBshort 1 9 O<C + O<3 +L7:5’9 c K`7:-,0h/ +y] + ¡Q9 O 5 043 K 02C 5 F 0 / 9 3202] ZD02C
043(Zp0 5Q58+ 1 5~K`
+ 3802O @ 0£= + 3 7`K 1|{0 TS7 C 5 0 B+ Cf;0 5 F 0 / 9 3202] ZD02CV= 9 1<1lO<C\;<0 K { +65 0 KM7 043 j + = 7MKM7:58+ 1 5fKM+
3802O @ 0 G+ 3d3 + 9 3 5 + ] =E02C 5 R 02C Wx* 02C 9 c KM7:-[+6587:9 1BCy;0 3802O @ 02Cy380 KM+6587:@ 02Ce+J
] K { O 587MKM7 C +6587:9 1 ;0
91 O @ 0 + O Te5 R 02C\C 9 1 5 ;0r;02O T C 9 3 5 02Cyz
« K { O 587MKM7 C +6587:9 1sC 7 Z BK 0V;<0r=E02C 5 R 02C « K / B+ 5 + B+ 7M5I/ W
oY9 O<Cr1 9 O<02C£C\C; 9 0 ZpZDC8C80202C£ZD3802021C 5 38CY0 ;7 1 0y5 C = + O TJ= 5 R 0 02Cr;<0Dc + CQ02Cr= 9 1<1lO<C£021 5 0 K C q O<0 NAT, INT, BOOL 0 5
W S+ =(F + 1 5'q O<0 K 0YcBO 5 ;0u=E0 5 3 + ;<O<= 5 02O3#02C 5 ;0Y=E3 04/ 043f;02C + BKM7 = +6587:9 1<C ^9 O3 [+2@6+ š + 3(; K 02C
STRING
5 R 02CrO 587MK`7 C 02/ CV; 9[7:@ 021 5 0 5 3(0 9*<587 Z 7 C 02/ C W K 02C 5 ; 9 1<=¤1 02/ =E02C8C +L7 380;0 9 O @L9[7 3£=(F 9[7 C 7 3 K 0 5 R 0pO 587MKM7 C 0 /
^9 O3 K`+>5 3 + ;<OB= 587:9 1 ;<02C 5 R 02C ž WxoY9 O<C KM+L7 C8C 9 1<Cy; 9 1B= K 0¥=(F 9[7:T +J
K { O 587MKM7 C +65 02O<3y;0 5 3 + ;<O 7 380 K 02C
]
5 R 02CV021 587 043(C£0 5 c 9I9[K¦04/ 021BC B+ 3rO<1 5 R 0 int 9 O short giCQ0 K:9 1 K { O 587MKM7 C +6587M9 1N; 04/ AB1 7 0h021 2k W ® W W nm
02K 1 [+29 @6+ 58C8+ 0 K:59 1NCQ02CYc^02C 9[7 1<C 5W š 02= 7 02C #5 ^9 C8C 7 c K K 0 B+ 9 3~3@ + 9 3 9 5 +] KM+ 38+ 02O @ 0d•02W 1 @6+LK O + 1 5 ; 7 €~04/ 3802ZpZD021 5
02C\= 1BC 1 02C MININT 0 MAXINT C8O3 0 3 O 02O3\= ZpZD0d; 1<C
)(
!
$
!
$
(
(
(
&
(
(
&
(
&
(
'&
)(
243
$
'% & ƒ …B† ˆ… .Š Ž }—_Š.
K + 5 +L7 +65Q5 587:9 +JK 9
@6+LK +6587M9 + 7MK 5h7 ^9 58+ 54W +6587Mq 7MK + 5
5 3 + ;<O 7 j 380 O K 02Cxj 021<3(CQ0 02Zdc 02K 021 Cx0 5’1HK 02]C = 9 { 1B3(C ;5838+ 01 5 ;<0202CaC ; + 1<CO K { 9 3v;1<38Cy0'= ;023 C @U+L02K O C +6587:Z 9 1<C\g3 7 W 0 1 W t[;¬{ + c 1 9 3v; 3 K 02C @UO+L0LK t O +658j7:9 O1<C
7 Z GKM7 = 7:5 02C B+ 3\= 9[KMK`+6- 0 O 7 Cf=E0 K`K 02C\;0 KM+ = K`+ O<CQ0 VALUES 0 5 ; + 1<C K { 9 3(;380£;0y=E0 5Q5 0h= KM+ O<CQ0 m W
!
#
…B† † ‰\Š.NŠB™UŠ a “•Š/
®
## # *,+ = KM+ O<C80 SETS CQ043 5 + ] ; 04/ AB1 7 3 K 02Cr021BCQ02Zyc K 02C 02/ 1lO<Z 04/ 3 02/ C 9 O + cBC 5 3 +L7:5 Cy;¬{ O<1›= 9 Z ^9 C + 1 54W š 02C
¥
T
;02O 5 R 02C\;|{021<C802Zyc K 02C\C 9 1 5 = 9 Z ^9 C 02/ C~;|{ 0 / K¦02/ ZD021 5 CV;0rZe02 ZD0 5 R 0pz
W 0 1 021<C802Zyc K 0 02/ 1lO<Z 04/ 3 0L/ tf= 9 ZpZD0JC 9 1–1 9 Z K { 7 1<; 7Mq O0Lt}CQ043 5 + ] ; 02/ =E3 7 380NO<10 02/ 1lO<Z 04/ 3 +6587:9 1;0
@6+LK 02O3vC\CQRSZyc 9[KM7Mq O02C W
k W 0 1 021<CQ02Zdc K 0 + cBC 5 3 +L7:5 02C 5 O 587MK`7 C 0 / ^9 O3d; 02/ C 7:- 1043d;<02C 9 c ¡ 0 5 Ch; 9 1 5d9 1 1<0 @ 02O 5B+ Cy; 04/ AG1 7 3
K`+ C 5 3(O<= 5 O3(0 + ON1 7:@ 0 + O>;0 K { + cGC 5 3 + = 587:9 1 W 9 O<C K 02C'021<CQ02Zdc K 02C + cBC 5 3 +L7:5 CfC 9 1 5 3 + ZD021 02/ C¤+ ] O<1
7 1 5 043 @6+LKMK 0f021 587 043aAB1 7 1 9 1 @l7 ;<0Lt + O1 7:@ 0 + O;0 K { 7 Z BKM+ 1 58+6587:9 1>gi= KM+ O<C80 VALUESm W K R + ;02O T
O« 587MKM7 / C +6587M7 9 1<C';0r9 =E02@ C + 7 1 5 Te043 5 @6+L KMK 02CVz 9 + K B+ +6- + 2k W ® W « ;; 0404/ ABAB11 7 3\3 K;020rC\1 c 9 O 3v1002C O 7 1j 04/ R 3 7 0202OC\3802= C'Zp0 5 ZDC8O0h'; 04/ 3 1<7 02C O<380 02Cf;|3 { O<1 3 58+ c FK 0 0 + O W t
$V+ 5Q9 K + K 7 / 5 K`+L7 K 9 B7MKM+65 [+2@6+ / +LK`7 K *9 <587 7 +6587:9 WoY9
+Z LK 02Zp1<021C 57`O<K C ;0 02@ C~3 +L= 7:5 C4t ^9 { O ; @L049[0£7 3D02C 3802Z;0 GKM+ =EC804CQ3 043 K 02Cp0r== 9 Z1BC 58+ 1 5 0202CsO3 0 5K 02CD30 0 fT 38CQ0204C83C 7:9 021BC CD= 9 1<Z C 58+ C 1 5 02C 1<BC + 3 K 023QCb
@6+LK 02O3(Cf1lO<Z 04/ 3 7Mq O02C\= 9 3(3802C ^9 1<; + 1 5 02C W
$
## *
K + 5 +L7:5 + 5 + 7 5 @U+LKMK - 2k W nm q 7 9 5 587`KM7 / ^9
/; 04AB1 7023_CD;02021<C CQ@U02+Zd3 c7`+ c02C K 02C cG02C1<C83 02Zyc CpK`7 C8C 0>5 023 C 9 ZeOs02] ;10202C’1 021B] CQ02;Zy02cC K 021 C_;|043 { 7 1<; 7 02=EC>02C’g‡;<A 0 58+ c K 0 + O W O K C’CQC 043 1 9 1 5O 3(0 C 3 0202/C CQ021 5IO02/ C3
021 '[/ +2@67 + G+ W<3Y* O<10d7 = 5 KM+ C8@6CQ0h+LKM;K + 1<C K`+L9 q O5 0 K`K 0r CQ/043 + 5I; / 04/ ABG1 +7 0r02KM+1P= KM9 + 1<C 58+ 1 5 0 KM+ c 9 q3(10 7¬+ 7 1j 04/ + 3 7 02O380£T 0 5V+KM+ c 9 3(10
02O380 + 02C K¦/ 1 043 0258C\7:@ CQ043 1 5 380 3 02CQ021 02C 3 = C(CQ5 0 BRange O O3 ;02OWI* =(F 9 Z 5 C~;0
5C8RO 0043 int
0 + @L9[7 - 2k W 2k[m W 0¤= 1<C 3(O<=¦b
3802C 02= 02ZD021 5Q5 borneInferieure
5 02O3~;<0 KM+ = KM+ C80 CQ0 02CYBRange
043vZD0 3 + ;|{ 7 1 7:587M+LKM7 C8043a=E02C~;<02O T =vborneSuperieure
F Z Cdg 3~A
SETS
VITESSE
VALUES
VITESSE = 0..100 ;
#§ ¨i©_ª 2k W £« 0 1>021<CQ02Zdc K 0 + cBC 5 3 +L7:5 021 * 02C 5 R 02C BOOL, NATURAL 0 5 INT K:9 3vC q O¬{ 7MK CrCQ043 9 1 5 O 587MK`7 C 02/ Cr021 1 9 1 ^9 O3 5 R 043DO<1<0
@6+ 3 7M+ c K 0YZ +L7 C#= 9 ZpZD0 7 1 5 043 @U+LKMK 0~CQ043 9 1 5a5 3 + ;<O 7:5 C_021 ?+2@6+G+ 3#O<1<0 7 1<C 58+ 1<=E0Y;0 KM+ = K`+ C8CQ0 BRange W
oY9 O<C +2@L9 1BCy=(F 9[7 C 7 K 0 5 R 0 int O 587MKM7 C 0D/ ; + 1<C K`+¥5 3 + ;<O<= 587:9 1Ÿ;0 K {021<CQ02Zdc K 0 VITESSE g‡A - 2k W 2k[m
+L7 K 5 + O3 +L7M5 O K O 7¬+ O<C8C 7 0 5 380¤=(F 9[7 C 7 = + 3 7MK ; 0 / 021<;J;<O 5 R 0h;0yc + C80d=(F 9[7 C 7x^9 O3
KMZ +¤5 3 C + ;B0 O<= R 587:9 0 1 short
W
## * KM+ -[+6- [+n@U+ ^9 B+
/ + 7 / / 7 ^9 / 7
/ / +6587M9 W
* { 7 ; 04/ 0¤0 = 9 1 1BC 7 C 5 0 0 7 = 7 + ] ; 1040/ AG1 7 32C8t^C402]= ;9 0ZpZD0DCd; ;+ 01<ZC K0202= Cu1A - C(OZD3(0202CC 2k 3 02W ; 04AB0 15 C2k W Ot 3 OB021=E0h3 38= 0sK`+ O<C8CQ10 0 B02+ 1l3VO<02Z 1<04CQ3 02Zdc K 1 0 W
š 0 5Q5 0y= K`+ C8CQ0y10r= 9 1 587 021 5Yq O0r;02C\= 9 1BC 58+ 1 5 02C Oc KM7Mq O02C_0 5 10rCQ043 +G+ C 7 1<C 58+ 1B= 7v04/ 0 W
&
(
­
class BRange final int borneInferieure;
final int borneSuperieure;
BRange (int bi, int bs) borneInferieure = bi ;
borneSuperieure = bs ;
...
BRange VITESSE = new BRange (0, 100) ;
...
§#¨i©_ª 2k W 2k¤« 3 + <; O<= 587:9 1>;¬{ O<1¥021<CQ02Zdc K 0 + cBC 5 3 +L7:5 021 ? +2@6+
$
SETS
ETAT = haut, milieu, bas ;
§#¨‡©aª 2k W « 0 e1 021BCQ02Zyc K 0 02/ I1 O<Z 04/ 3 0h/ 021
&
class ETAT static final short haut = 0 ;
static final short milieu = 1 ;
static final short bas = 2 ;
static final short borneInferieure = haut ;
static final short borneSuperieure = bas ;
static Brange getBRange() ... /* Fonction pour utiliser les ensembles énumérés */
/* comme arguments de machine */
§#¨‡©aª 2k W « 3 + ;BO<= 587:9 1e;|{ O<1>021<CQ02Zdc K 0 02/ 1IOBZ 04/ 3 0d/ 021 ?+2@6+
…B† )( ‰\Š. SŒ ™ LŽ|™,6/Š SŒ ™SŠLŠ.
* 02C 7 ;021 587 A + 1 5 C¬;02C|= 9 1<C 58+ 1 5 02C}= 9 1<=E320] 5 02CxC 9 1 5u02/ 1IO<Z 04/ 3 02/ Cx; + 1BC|O<10’= KM+ O<C80 CONCRETE CON9 5u5 R #02/ C£; + 1<CVO<10h= KM+ O<CQ0 PROPERTIES 0 5 C 9 1 5u@6+LK O 02/ CV; + 1<CuO<10h= KM+ O<CQ0 VALUES
STANTS tGC 1
g‡A - * 2k W 2®[9 m 021 58+ u5W 9 5 9 ^9 5 +KM+ / 7:587:9 9 58+ 5
5+ 7
9; 1<1 0402/ 0›CJ=; 9 1<1 C 5eKM+„1 02@6C +LK 02= O3e1<=E13200] 02@UCŸ+ 3 = 7 0 38G3802+ C C Wf* 1<+;021 1 9L587:] 9 1 0 / q ; O 047:AG@61 +LK 021 5 1 0 ;0 0T7 C = 5 0 1<C ; + 1B1 C 02KC402t£C =6K`{+ 021C -[b¦+6] - bˆ; 02C 380 7 1O<j 9 13Q0 b
Z +658« 7Mq OK 02C W<*,7 €~+D/ 5 3 + 5;<OB= / Kv58/7:9 1¥025C 5 3809 K`+6587:@ 02ZD+ 025u1 5~K +L7 C 049 / 0sg‡58A + - 5 2k W 2­[9 m 5 z TS5 +L7:5 7:€~/ 5 KM+
« K`02+ C\= ; 9 1<C 045838+ 021 1 5 0yC 020 C 5 02ZD; 0402/ AG1 1 Cu7 0r= ; 1<+ =E1<04C 3(1KM+ 1= KM+ C802CQCf0£= 0 5 1<1 C 9 1>1 ; 02+ CY1<CC K 1 02C 07 1<C 583 + 1B=ECY02C\;02;C\0r; Z + 04=v38F 027 1 10 02W C~= OBCQ02C4t
(
$
#
CONCRETE CONSTANTS
constante
PROPERTIES
constante NAT
VALUES
constante = 10 ;
...
§#¨‡©aª 2k W 2®h« 0 1 0r= 9 1BC 58+ 1 5 0d021
static final int constante = 10 ;
§#¨‡©aª 2k W 2­D« 3 + ;BO<= 587:9 1>;|{ OB10£= 9 1<C 58+ 1 5 0y021 ?+2@6+
0
9 58+ 5 5 5
587
9I9[K¦/ / Kv/ 5
K / //9
+ cBC 5 3 +L17:0r5 m = tBO<1<1 C 7 1 1 5 040 3 @6+LKMK 0V02ABO 1 7 0 0 385 0y1 OB9 1¥1 02@S1 7 ;0 043n9 tBO>O<O<1¥1 c 58+ c 04K 002+1¬O t<O<W 1 0 02ZD021 ;|{ O<1¥021<C802Zyc 0g 021lO<Z 043 0 O
+
+q
« 02*,Z + 3 = KM+ OO<02C8C£0 z CONCRETE CONSTANTS 02O 5 0 5 380J; 04/ AG1 7 0 7 1B; 7 €~04/ 3(02ZpZD021 5 ; + 1<C K 02CpZ + b
=« v* F 7 102@6C +LK + cBC 5 3 +L7:9 5 02C2t</ ; + 1<+ C TK 02C\9 3 + 58+102ZD5 021 5 C+ 9 OJK ; + 1<CKM+ K 02C 7 Z BKM+ 1 58+6587:9 1< C4t @ 5 +L7 7 5 @ 7
02C 02O3(CV; 1<1 0402C O = 1BC 1 02Cd; 1<C 02Cy= O<CQ02C 5 + 7 02O W 021 j 380 1 043 021 3
;<02Cf021 587M5I02/ C¤g‡021<CQ02Zdc K 02C2t<= 9 1<C 58+ 1 5 02C m ; 04/ AG1 7 02Cf; + 1<C~;|{ + O VALUES
3802C\Z =(F 1<02C
…B† ‰\.Š ,Ž^?˜ˆŽ a“•/Š SŒ ™ S Š<6/Š
š 02C @U+ 3 7M+ c K 02C’= 9 3(3802C ^9 1<;021 5 + ] O<1<0~; 04/ AB1 7:587M9 1p;0~; 9 1B1 04/ 02C_Z 9 ; 7 A + c K 02C W _KMK 02C’C 9 1 5 ; 04/ AB1 7 02C 021
g‡A - 2k W m ; + 1<C KM+ = K`+ O<CQ0
5 '/ + KM+ KM+
CONCRETE VARIABLES t R 0402C¤; 1<C
50 D@6+LK O 04/ 02CD; + 1<C KM+ = KM+ O<C80 INITIALISATION
W-0 1<0 @6+ 3 7M+ c K 0= 9 1<=E320] 5 0 C8= 043 +POBCQ5 0 3 + INVARIANT
7:5 0¥021 O<1<0
<
;
O
@6+ 3 7M+ c K 0h; + 1<CVO<1 KM+ 1 -[+6- 0 7 1<j 9 3(Z +6587Mq O<0 .W 0 1<0 @6+ 3 7M+ c K 0d= 9 1<=E320] 5 0 02O 5 0 5 380DO<1.C8= +LKM+L7 380 9 O.O<1
58+ c K 0 + O W
*,+ 9L587:9 @6+ 7M+ K T7 5 + K KM+ -[+6- 7 9 +6587Mq W?* +h5 + 587:9 - 2k W [m 02C 5
K380 M+6587M@ 021 ZD021 5Y1+L;<7 C 0 04/ 0z 3 c 0~0 C 0£; 1<C 02C 1 02C 1<j 3(Z O<02C 3 ;BO<= 1.g‡A
« K 02C\; 7 €~04/ 38021 5 C 0 / Kv02/ ZD021 5 Cu= 9 1<=E043(1 + 1 5uK 02C @U+ 3 7M+ c K 02CfC 9 1 5 0 TS5 3 +L7:5 CY;02C\; 7 €~04/ 38021 5 02C~= KM+ O<C802C4t
« C2{ 7MK 1|{0 T7 C 5 0 q O|{ O<10 7 1<C 58+ 1<=E0>;0 KM+ Z + =vF 7 10Lt K 02C @U+ 3 7M+ c K 02CDC 9 1 57 Z BKv02/ ZD021 5I04/ 02C;0ej + = ) 9 1
C 97 Z 5~7MKM+L7 7 380BK¦+ / O T = 5I9 / 1<C 58+ 91 5 02Ch; + 1<C KM@6+ + = 7MK`+ + C8CQK 0P+e] K {0 T KM+ =E0 <587:9 1Ÿ;<O›Z 9L5 = K¦0 / final z K 02C @6+ 3 7M+ c K 02C
« CC2{ 7M1K 0 TZ7 C 5 0 02BZDK O<02C 1 7 0204O023(CYC = 7 1<ZpC 58+Zp1<0y=E02;C#02;C 0 KM+ 3 Z c + 02=(FCf7 ;1<0r0Lt = K 02C C8CQ@602+ C23 t 7M+ c K 02CaC 9 1 5'7 Z BK¦02/ ZD021 5I04/ 02Cf= 9 ZpZD0V;02C
@6+ 3 7M+ c K 02Cf;|{ 7 1<C 58+ 1<=E0£0 5~K 0rZ 9L5 = Kv0 / static ; 7 C G+ 3 +  54W
+
+ q 9 K 9 58+ 5 9 5 K @6+ 7M+ K 9 5 @ 5 5 / 7
+; 1<C 02K 02Z C 5 3 3 9[O7 C 05 z^R = 02ZpCY;ZD0r0 = 9 02Z CY^= 9 1BC +C 1 5 1 C W 02C£= 1B=E340] 02C4t 02C 3 c 02C~= 1<=E320] 02C 02O 021 0 3(0¤; 04AG1 02C
…B† ‰\.Š J˜ˆ™,LŠ< ,^Ž|“ˆ“•/Š
*,+y5 3 + ;BO<= 587:9 1s;02C 7 1 5 043 @6+LKMK 02C_02C 5'7 ;021 587Mq O<0h+ ] =E0 K`K 0Y;02Ca021<CQ02Zdc K 02C + cBC 5 3 +L7:5 C~z 7MK C2{ +6-[7 3 + ;|{ O<10
7 1<C 58+ 1<=E0r;0 KM+ = KM+ C(CQ0 BRangeW
$
!
%
CONCRETE VARIABLES
monEntier,
monBooleen
INVARIANT
monEntier INT
monBooleen BOOL
INITIALISATION
monEntier := 10 ; monBooleen := TRUE
§#¨i©_ª 2k W « $ 20 C 6@ + 3 7M+ c K 02C'021
int monEntier ;
int monBooleen ;
void INITIALISATION(...) monEntier = 10 ;
monBooleen = true ;
§#¨i©_ª 2k W D« 3 + <; O<= 587:9 1e;02C U@ + 3 7`+ c K 02C'021 ? +2@6+
$
…B† ###
‰\Š.>LŽ #“•Š<Ž|—
# * 02C 58+ c K 0 + O T C 9 1 5 ;02C'= 9 1<C 58+ 1 5 02C~= 9 1B=E340] 5 02C 9 Oe;02C @U+ 3 7M+ c K 02C#= 9 1<=E320] 5 02C~Z +L7 C q O 7o 3 02/ CQ021 5 021 5
C588+O K C ++ ZpZD021 5 5 ;5 0 B+ 3 5877 =4O 5 KM+ 3@U7:+L5lK`02/K C ^9 O/ 3~0 7f5 38/ 0@ 5 3 5+L7:5I02/ KMC'K ;0~j + 5b= ) 9B1+ C 0 / G+ 3 04/ 0 W<* {02K1<CQ02+ Zdc 5 K 0u+L7M;5 02m C 7 1<; 7 =E02C_;|{ O<K 1
043 0dW gi; 04AB1 0 021 O<0 02ZD021 3#OB1p021<CQ02Zdc 0 cBC 3 tIO<1021<CQ02Zdc 0
/021Ic OBZ 0 04/ O 3 0 / 9 02O O K {0 021<38CQ0£02ZdO<1 c K 01 BOOL
* { 7 1 7:587M+LK`7 C +6587:9 1›g KM+@6+LK O +6587:9 1 m ;|{ O<1 58+ c K 0 + O.CQ0hj +L7:5 C8O3 5Q9 O<C K 02C 7 1<; 7 =E02C B+ 3 9 3(;380h=E3 9[7 C8C + 1 5
;K 0 KM@6+ +LKc 9 3(10 / 7 1j 04/ 3 7/ 02O/ 380s+s] KM+ c 9 3v1 0y7 C8O '04/ 3 7 02O38^0 9 ^9 OK 3 K 02@6C +LK 7 1 5 043 @6+L9lKMK 9[02K¦C2/ t B+ 3 9 W 3(;380h;|{ +B+ 3 7M587:9 1 ^9 O3
02C 02O3vC 021IO<Z 043 0402C2t FALSE O C TRUE O3 02C 02O3vC'c 04021<102C
+ 02Z + 3 q O0Dz K 02C 58+ c K 0 + O T 02O @ 021 5 CQ043 @l7 3¤+D] 7 Z BK¦02/ ZD021 5 043~;02C\021<CQ02Zdc K 02C W
### (
3 3
* 58+ K + T 9 58+ 1 5 C£+ ] O<1<0~; 7 ZD021BC 7:9 1¤C 9 1 5 ; 04/ AB1 7 C 021 g‡A - 2k W œ m = 9 ZpZp0 K 02C’= 9 1BC 58+ 1 5 02C
5
Wx* +›5 3 + ;<O<= 587:9 1
›+ ] K { +L7 02;C 0e;c 02Cp0 = OKM+ O<C8= 02C 1BC CONCRETE
CONSTANTS t PROPERTIES 0 VALUES
1+ 0¤5lj +L/ 7:57 G+ C + +K B+ 3 B+ +  5 3(0¤q ;<02C 7MK 58+ c587`K KM0 7 + O T 9[= 7:9 5r1BK C 587 + 1 55 Cy; +L+ KM1<KM9 C K 0D/ +2= @6+ + C 9 5 O ] 7MK K02C +U5r€ 7 1 7:5 587`+LKMG7 C + 0 / +n@ 02=p@6O<+L1 K 3 9 ;<O 7:- 5
=2k 3 W k602ž?C m W 021„= 3 {02C =E0 O|{ O CQ0D; O 0 380 O 0 1 ;0 { 02= 043 3d;02C 02O3vCg‡A
%
#
6œ
CONCRETE CONSTANTS
tableau1, tableau2, tableau3, tableau4
PROPERTIES
tableau1 (0..2)
INT /* Un tableau commençant à l’indice 0 */
tableau2 (-1..1)
NAT /* Un tableau commençant à l’indice -1 */
tableau3 (0..6)
INT /* Tableau initialisé avec une valeur */
tableau4 (2..8)
INT
VALUES
tableau1 = 0 2, 1 4, 2 -6 ;
tableau2 = -1 3, 0 5, 1 7 ;
tableau3 = (0..6)* 6 ;
tableau4 = (2..8)* 9 ;
§#¨‡©aª 2k W œ « š 9 <1 C 58+ 1 5 02C 85 + c K 0 + O T + ] O<10r; 7 Zp021<C 7:9 1s021
static
static
static
static
final
final
final
final
int[]
int[]
int[]
int[]
tableau1
tableau2
tableau3
tableau4
=
=
=
=
2,
3,
new
new
4, -6 ;
5, 7 ;
int [6-(0)+1] ;
int [8-(2)+1] ;
void INITIALISATION() Arrays.fill(tableau3, 6) ;
Arrays.fill(tableau4, 9) ;
§#¨i©_ª 2k W k6žD« 3 + <; O<= 587:9 1N;0r= 9 1<C 58+ 1 5 02CY;<0 5 R 0 85 + c K 0 + O T 021 [ +n@U+
$
CONCRETE VARIABLES
tableau1, tableau2, tableau3, tableau4
INVARIANT
tableau1 (0..2)
INT /* Un tableau commençant en 0 */
tableau2 (-1..1)
NAT /* Un tableau commençant en -1 */
INT /* Tableau initialisé avec une valeur */
tableau3 (0..6)
tableau4 (2..8)
NAT
INITIALISATION
tableau1 := 0 2, 1 4, 2 -6 ;
tableau2 := -1 3, 0 5, 1 7 ;
tableau3 := (0..6)* 6 ;
tableau4 := (2..8)* 9 ;
§#¨i©_ª 2k W k r« !’+ 3 7M+ c K 02C\;0 5 R 0 85 + c K 0 + O T 021
6ž
int[]
int[]
int[]
int[]
tableau1
tableau2
tableau3
tableau4
2,
3,
new
new
=
=
=
=
4, -6 ;
5, 7 ;
int[6-(0)+1] ;
int[8-(2)+1] ;
void INITIALISATION() Arrays.fill(tableau3, 6 ) ;
Arrays.fill(tableau4, 9) ;
§#¨i©_ª 2k W kLk¤« 3 + ;<O<= 587:9 1N;02C @6+ 3 7M+ c K 02Cf;<0 5 R 0 58+ c K 0 + O T 021 [ +n@U+
$
###
(
###
(
3
*3
3 * 0Z 9L5 = Kv0/ C 58+6587 =sCQ043 +L7M5 O 587MKM7 C 0p/ C4{ 7MK 1¬{R +n@U+L7M5dq O|{ O<10 7 1<C 58+ 1<=E0;<0 KM+ Z + =(F 7 1<0 W-0 1 0 / Kv02/ ZD021 5
;0 - 58+ 2c k K W 0 k + nO>m W 020C 5u+ =45 =E02K>C8C / 7Kvc / K 0y; + 5 1<C K 0258C + 9*'K 04/ + 3 +6587M9 1<C+ 5 +B+ 3Y7:O<5 1<0yCQ¡8RS+21 @658+ +UT B0d+ ;0 KM+ j 9 3(ZD0 identifiant(index)
g‡A
1 0 0 02W4ZDwx02+ 1 T ;0 BK c 0 O CQ043 3 ;<O @6+ 021 5 + KM3+ identifiant[index
- O380 2k W kLk 0 5 CQ043 +V5 3 + ;<O 7:-5
_
3
0
2
0
Z
0
;
B
1
C
A
borneInferieure]
tableau4(3) O
021 ?+2@6+ B+ 3 tableau4[3-2] W
3
*,+r5 3 + ;<OB= 587:9 1;02C + c K 0 + O T ; 9 1 5aK 02C 7 1<; 7 =E02C C 9 1 5 ;02C @U+LK 02O<3(C 02/ 1lO<Z 04/ 3 04/ 02C 9 Opc 9l9[Kv04/ 021<102CVg‡A + 7 G+ 587 KM7 W K 5 / +L7 587MKM7
587 9
2k W k m 9 5\5 + 7M5
7 1<; 7 =E02C4Ct B1 + 3 = 39 1<;<C O0 / q OC\02;|1 5{ O<1 19 0dOBZC 5 3 1 + ;<04] O 380 7 C 9 1<C3 K 0 =4O5 R 04] 0 3(0 02/ 1lO<Z 02C04/ 3 0 / 1 9 02Or=E02c C8C9l9[K¦3804/0d021 ;¬{ BO + 3,;C80204C¬3'02;<1<02C8C\02Zy021 c K 0204C|3(C~;|{= 021 Z587 ZD043(0C
g‡A - 2k W k m W
$
&
(
SETS
Enumere = e1, e2, e3, e4 CONCRETE CONSTANTS
tableau1, tableau2
PROPERTIES
tableau1 Enumere
INT
tableau2 BOOL INT
VALUES
tableau1 = e1 0, e2 1, e3 2, e4 3 ;
tableau2 = FALSE 0, TRUE 1 ;
§#¨‡©aª 2k W k « + c K 0 + O T ; 9 1 5~K 02C 7 1<; 7 =E02C#C 9 1 5 ;<02C 02/ I1 OBZ 04/ 3 02/ C 9 OJ;02Cfc 9I9[K¦04/ 021BCf021
&
###
(
$
3
( * 02C 58+ c K 0 + O T 20 O @ 021 5 C8043 l@ 7 J3 + ] 7 Z BK¦20 / ZD021 5 043p;02C¤021<C802Zyc K 02CD= 9 ZpZD0N; + 1BC K { 0 T 02Z BK e0 ;0 KM+
A - O3(0 2k W kL® W
#
static final int[] tableau1 = 0, 1, 2, 3 ;
static final int[] tableau2 = 0, 1 ;
#§ ¨‡©aª 2k W k « 3 + ;BO<= 587:9 1.;02C 85 + c K 0 + O T ; 9 1 5VK 02C 7 1<; 7 =E02CuC 9 1 5 ;<02C 02/ l1 O<Z 04/ 3 02/ C 9 O ;02Cuc 9l9[K¦04/ 021<C
021 ?+2@6+
(
$
MACHINE
M1
...
SETS
VITESSE
ABSTRACT VARIABLES
Vitesse VITESSE
...
END
IMPLEMENTATION
...
VALUES
VITESSE = 0..100 ;
CONCRETE VARIABLES
VitesseImp
INVARIANT
VitesseImp VITESSE
...
END
BOOL
§#¨i©_ª 2k W kL®¤« + c K 0 + O q O 7 380 3 02/ C8021 5 0yOB10 U@ + 3 7M+ c K 0V021<CQ02Zdc KM7 C 5 0
$
###
(
* 58+ K + T 58+ K + T - 2 k W kL­[m C 9 1 5d5 3 + ;<O 7:5 C£021 [ +n@U+.B+ 3d;<02C 58+ c K 0 + O T +>] BK OBC 7 02O3(C
7; Zp021<02CC 7:9 1<c C£0g‡A -O 2k ;W 0k m W c 0 O g‡A
…B† ##
‰\Š.N‹_Ž^[Ž ŠL[Š.>‘_Š.
Ža˜ˆ™_Š.
* B+ + 5 9 K - 2k W k[m ;02C~Z + =(F 7 102C 02O @ 021 5 0 5 83 0pz
« 02;<C 02Cf023 1<CQZe02Zd0] c3(02K 02C\C j + 3(cGZDC 5 0 3 +LCy7:5 g‡C4A t
« ;<02C 0 / Kv02/ ZD021 5 C 5 R '02/ Cu; + 1<C KM+ = K`+ O<CQ0 CONSTRAINTS t
« ;<02C 7 1<C 58+ 1B=E02C\;0£c 9I9[K¦04/ 021BC4tB;|{021 587 043(C4t
« ;<02C 0 / Kv02/ ZD021 5 C +G+ 3 5 021 + 1 5 + ] O<1e021<C802Zyc K 0 + cBC 5 3 +L7:54W
Lk
CONCRETE CONSTANTS
tableau1, tableau2
PROPERTIES
tableau1 (0..2)
((0..1)
INT)
tableau2 (0..1)*(0..3)
INT
VALUES
tableau1 = 0 0 -12, 1 0 ,
1 0 -13, 1 1 ,
2 0 -14, 1 2 ;
tableau2 = (0..1)*(0..3)*5 ;
§#¨‡©aª 2k W kL­h« + c K 0 + O T ;<0 85 + c K 0 + O T 021
$
static final int[][] tableau1 = -12,0 , -13,1 , -14,2 ;
static final int[][] tableau2 = new int [1-(0)+1][3-(0)+1];
static for (int i = 0 ; i = 1 ; i += 1) Arrays.fill(tableau2[i], 5) ;
§#¨‡©aª 2k W k « 3 + ;BO<= 587:9 1e021 ?+2@6+ ; 0 85 + c K 0 + O T ;0 85 + c K 0 + O T
$
## ##
* 02C B+ 3 + Ze0] 5 3802Cy0 € 02= 587 j‡Cg‡A - 2k W k[m q O 7 C8O 7:@ 021 5rK 0D1 9 Z ;0 K`+ Z + =(F 7 1<0p; + 1<C KM+ = KM+ O<C80 IM @ 5 5
PORTS 02O 021 0  3(0z
$
« 02CYC8= +LKM+L7 3802Crz<;02C\021 587 043(C4t<;<02Cfc 9I9[K¦04/ 021<C2t<;02C @6+LK 02O3(Cf;¬{ O<1¥021<CQ02Zdc K 0 02/ 1lO<Z 04/ 3 0 /
« $ 02C~021<CQ02Zdc K 02C£z 02/ 1lO<Z 04/ 3 02/ C4t 7 1 5 043 @U+LK`K 02CfC8O3 K 02C\021 587 043vC4t 3 02/ ; 04/ AB1 7 Cyg BOOL t NAT 0 5 INTm
š 02Cy; 7 €~04/ 3(021 5 C B+ 3 + Ze0] 5 3802C +B+ 3 +L7 C(CQ021 5 ; + 1<C K { 9 3(;3(0¤; + 1<C KM+ j 9 1<= 587:9 1 INITIALISATION
- 2k W k œ m W š 5Q5 9 587:9 5a+ K¦/ 9[7:5†B+ K 9 5 5 KM+ K`+ q 7 ) 9[7:5aK 7
Kg‡02A C B+ 3 + Ze0] 5 38020 C#0 0~5 jCQ0Y1<= = 9 1 5 1021 025 C 0r;0 K 020 C_043 0u0 / C 043(=4O 5 043 3f; 0u+ = 1<C 1<K C 0Y3(= OB+ = C'02;<OO3#Zd;<O0 KM587 b =7 1<C C858CQ+ 0 1B=E0LO t?C 3(9[0 7:= 5 ; 7 3802O = 5 bˆ02Z¥ZD02 02ZD1 05
; + 1<C K 0r= + C~;|{ OB10 7 1<C 58+ 1<=E0rOB1 7Mq O0 W
%'& ¢ƒ …B† ˆ… ‰\Ž"6?Ž^‘a— l[˜•Œ,™ ‘_.Š >Œ¬‹ Š< [Ž[˜•Œ !™ ŠJ‘’/Š >‹_Ž^[Ž ŠL[.Š N‘#"MŠB™,L Š< Š
*,+ = KM+ OBCQ0 OPERATIONS g‡A - 2k W ž?m 043(ZD0 5 ;0P; 04/ AB1 7 3 K 02C *9 #04/ 3 +6587:9 1<Ce;|{ OB1"= 9 Z ^9 C + 1 54W
* 02C *9 '04/ 3 +6587M9 1<C£; 04/ AB1 7 C(CQ021 5VKM9+ B+ 3 587 0¤;RS1 + Z 7Mq O0h;<O K`+ 1 -[+6- 0 YW aKMK 02C 02O @ 021 5 j +L7 380 0 / @L9[K O043 K 02C
'&
!
IMPLEMENTATION
M1 imp (capacite, MONENSEMBLE)
/* implementation de la machine abstraite M1 */
...
END
IMPLEMENTATION
M2 imp
IMPORTS
i.M1 (10, 2..8), M1(30, 6..9)
...
§#¨‡©aª 2k W kh« š 3 0 / +6587:9 1N;<0 B K O<C 7 02O3(C 7 1<C 58+ 1<=E02C B + 3 + Z 0 / 5 3 04/ 02Cu021
class M1 ...
void INITIALISATION (int capacite, BRange MONENSEMBLE) ...
M1(int capacite, BRange MONENSEMBLE) /* initialisation des variables de M1 */
...
INITIALISATION(capacite, MONENSEMBLE) ;
class M2 ...
M1 i, anonymousM1 ;
void INITIALISATION () /* initialisation des variables de M2 */
...
/* Création des instances */
i = new M1(10, new BRange(2,8)) ;
anonymousM1 = new M1(30, new BRange(6,9));
M2() INITIALISATION () ;
§#¨i©_ª 2k W k œ « 3 + ;<O<= 587:9 1e;<0 BK <O C 7 02O3(C 7 1<C 58+ 1<=E02C B+ 3 + Z 0 / 5 3 04/ 02Cu021 [ +n@U+
$
&
(
@6+ 3 7M+ c K 02Cy;<O = 9 Z ^9 C + 1 54W 0 10 9*'04/ 3 +6587:9 1 02O 5r+2@L9[7 3h;02C B+ 3 + Ze0] 5 3802Ch;|{021 5 3 04/ 00 5 ;0pC 9 3 587 0Pg K 02C
3 02/ C8O KM58+65 C m W
0 10 *9 '04/ 3 +6587M9 1>02C 5 = 9 Z 9 C 04/ 0h;0r;02O TB+ 3 587 02CVz
« K {021Sb 5 0 5 0V; 04/ AG1 7:5_K 0u1 9 Z ;<0 KM+ j 9 1<= 587:9 1 +L7 1<C 7<q O<0 K 02C B+ 3 + Ze0] 5 3802C#j 9 3(ZD0 K Ca;|{021 5 3 04/ 0u0 5 9 O¥;0
9 587 / @ 5 K
« CK 0'3 = 9 30 0 C ;0201 K O{ *9 0 'C404/ t 3 +6587:9 1p02C 5 O<10'C8OcBC 587:5 O 587:9 1¥g 02= 587:9 1 lW ­[m q O 7 = 9 383802C 9 1B;e+£] K { 7 Z BKM+ 1 58+6587:9 1
5Q5 *9 '/ +6587:9 W
oY9 ;<O<0rCe=E1 0 9 O<0 C 7 1 045I3 04/ 3802C8C 1 9 1BC 7 = 7 OB1 7Mq O02ZD021 5 +”] KM+„5 3 + ;<O<= 587M9 1;<0 K {021b 5 0 5 0 ;0 K { 9*#04/ 3 +6587:9 1 W0 10
9*'04/ 3 +6587:9 1 CQ0 5 3 + ;<O 7:5 1 +65 O380 K`K 02ZD021 5B+ 3'O<10uj 9 1B= 587:9 1 ?+2@6+SWw,9 O<3 K 02C B+ 3 + Z¥0] 5 3802C\;|{021 5 3 04/ 0Lt K 02C
; 7 €~04«/ 3802K 1 5 C~5 = + C~C 9 1 5~B+ K 02Cf+ C8O 7:5 @6+ 1 5 Cr5 z 5 + +LKM9 K 7 7 5d5 + 7M5
0?+2@6+R ^09 ;<O / + 3 5YZeK 0] 380s02C 9OB1 R 5 09 ;05~K c 5 CQ0 5~3(KM+¤Cd5=E0 + O bˆ= 587:029 C 3 5;<O 021ŸO<+1<0 @Uu+ 3W 7M+ c K 0
« 7|K 0 5 R C80rC 02;¬; { O<1 1 B0r+ 3 Ze+ Ze02 Zp0] 5 0y380 1 Z 02C 0 5 O<; 1 1 7 1 5 040 3 @UR +LK`K 0£0Lt 02K C 0 5 R 0r3 =(;<F OB9[7= C 7 021>1 ;<[O+2@6+ R 02C 0y5Y;K 00£5c R CQ0r0 ;<0£c + CQ0
0« 21 7}-[K K:9 cB++ 1 + 54W 5 5 @6+LK
0 3 Z¥0] K:9380p02K C 5 O< 1<0 02O+ 3£;|{ O<9[1P7 02i7 1<BC802+ ZycK K 0 587M02KM/ 71lO<+6Z5 04/ 3 0L/ W t K 0 5 R 0p=(F 9[7 C 7 021 [+n@U+ 02C 5 int
9 O short
CQ0 1 0 R 0y;<0£c CQ0r=(F C 3 { O C 02O3
&
…B† † ‰\Š„‹_[Œ-a“ Š Š”‘’Š/> Š. 6—a“ LŽ –—_“•L˜ˆ‹a“ˆŠ.
*,+›5 3 + ;<OB= 587:9 1";|{ OB10 9*'04/ 3 +6587:9 1021 [+2@6+ 9 C80JO<10J; 7 =4O KM5I0J/ Z + ¡ 02O<380Lta; + 1BC K 0N= + C 9 O ] K 02C
3[02+n/ C8@UO + KM58+65 C- C 9 1 5B++ OK 1 9 ZycB5Q389 0N;0N;<02K:O 58T7tGK 9 O WB0 K OBC W *9 + 58; 7:7 9 =4?O +2K:5l@60e/+ 3 02/ C 7 ;5 0N9[; 7:+ 5 1<C 5QK 0e9 j +L7:5q O0 K 0 K`+ B1 + -[+6- 0
10 04] 3(0 C 02Cr380 O3(C£ZhO 02C 10¤j 1<= 1
02O C 380 O3v1043 5 BK g 7 Cr;<0
3809[5QK 9 O587:3 9 m C 9[7:5 O<1 5 R 0£;0uc + CQ0 9 OeO<1 9 c ¡ 0 54W 1B= 9 380£O<10uj 9[7 C2tl1 9 OBC +n@L9 1<C K 0£=vF 9[7 T 02void
1 380 OBC 02O3(C
C O « & 1<CV5Qz5 K B+ + 5
0+ 380 027MCK + 3 5yZeq 0] 3802K Ch;B0p+ C +9 3 587 0p5 ; + 1<C 9[7 K 02C 5 B+ 3 + Ze9 0] 5¡ 38025 Cd;|+ {021 [5 3 +n04/@U0 +JW}5w}9 + O3 q O5y0pK =E0 5Q5 + 0- C 9[K O 587:9 5 1
Z 3(=(F0Lt j O O0 02C 3 Z¥0] 3802C¤C 021 ;02C c 0 Cd= 3
3 1<¡9 C8Zp0 W 02C 3 O<ZD021 C
G+ 3 @U+LK 02O3f0 5~K 02C @6+LK 02O3vC\;0rC 9 3 587 0r10rCQ043 +L7 021 5 ; 9 1B= ¡Q+ Z +L7 C\Z 7 CQ02Cy+V
« + 0 5Q9 O3(1043,O<1 58+ c K 0 + O q O 7 = 9 1 587 021<;3 +L7:5¬K 02C¬; 7:€~04/ 38021 5 02C @6+LK 02O3(C|;<0 380 5Q]9 O3 WO0 3 1 + O 5 380 3 9 c K 02] ZD0
C80 7 ^q9 CQ0~z ^9 O9 3 = ¡ 9 1 5 5 021 7 3 5 7 1<; 7:€~04/ 3802ZpZp021 W 5 š 1|{ 7 Z 7’^7 9 3B5 K`0 7Mq q O0 K?5 R 0L9tUO<@1 5 0 K?7M9 58+ c K 0 + Od5 1 0 02O@ 5 = 9 1K 5 0Eb
1 K`+ 3 O<0p;@ 02C KM*9 c 0 'W Cy? ;K 0 7 R@ 0 Object9 @ 02= 7:9 Z KM+ O<0dKM+O<10p= 1 @ 04K:*9 3(C 1Ÿ@ ;02C K R 5 02C 043(C 02+ O3
= 9 C8CQ0V^0291 0 + 5 0 5 / { 1 04+L3(7 CQ0LtS+ O< 10£= K 1 043(5QC9 1eW ;0 = C8C80u021 0 0 043(C 0 R 0£;0Vc CQ0
« =+ 023(C 385 0238C 0 7 1B;1<38; 0V1 021 02C K 0r1 021 =E9 02ZdC8C c<38380r0 ;<0£3320202]/ C8C O K:0£58+6385 0 C O9 3 C(C 7 c K 02Cr+ ] + O>Z +UT7 ZdOBZ W
« 3 +n@U+L7MK`K 043 +2@ 02=h;02C @6+ 3 7M+ c K 02C -[K:9 c +LK 02C W
*,+ C 9[K O 587M9 1e=(F 9[7 C 7 0£02C 5\KM+ C8O 7:@U+ 1 5 0g‡A - 2k W nm z
« * 0 3802Z 7 043'3 02/ C8O K:58+6#5 02C 5 38021 @L9 R 0¤/ = 9 ZpZD0 K 0£3 02/ C8O K:58+65 1 9 3(Z +LK ;<0 KM+ j 9 1B= 587:9 1 [+n@U+
« * 02C + O 5 3802C_3 02/ C8O K:58+65 C ;0 @l7 021<1021 5 ;02C B+ 3 + Ze0] 5 3(02C_;|{021 5 3 04/ 0Y;0 KM+ j 9 1B= 587:9 1 [+n@U+ z K 02C 5 R 02C
C(= +LKM+L7 3802C 0 / 58+ 1 5 5 021<= + C(O + Kv02/ C£; + 1<C K 02O<3 5 R m W 0D021 @ 0 K:9* 0>g INT ; + 1<C BInteger t NAT ; + 1<C
* { +2BInteger
@6+ 1 58+6- 0y;<0V0 =E0 5QBOOL
5 0rC 9[K O ; 587:9 1<1C 02BBoolean
5 5Q5 5 + + K + @l7 9
5
9= 1 5 3 +L7 1 5 CD= 9 ZpZD0>O<10¥= + 3 5 0 "+ ] O<C =E0 ;0 g K 0e04C 3v'ZD02/ = 0 7 AB02380VO3 ;|{ 0 38; 0£9[07M5 C4= { + =EcG0rC 5 ; 021 1<7 3¤C ; 0V+ 1<= C¤Cf=E;|0>{02= 1 + ;383 0e1<;|1{ 02O ZD587MKM027 1 CQ04C3
BK OBC_;|{ O<1s3 02/ C8O K:58+6b
5 B+ 3 *9 #04/ 3 +6587:9 1 m 0 5 ;0u3802C 5 043 3 9 =(F<0V;¬{ O<10 3 9L- 3 + ZpZ +6587M9 1s= K`+ C8C 7Mq O0~021 ?+2@6+SW
$V+ 1<C K 0\= + C 9 O ] K {021 @l7 3 9 1<102ZD021 5 = 7 c K 0 ^9 C8C402] ;0Y;02Cx3802C8C 9 O<3(=E02C_C8O C + 1 5 02C4t K 02C ^9 C8C 7 c 7MKM7:5l02/ C 96€ 043 5 02C
043(ZD0 5Q5 021 5 ;|{ O 587`KM7 CQ043 K {021<CQ02Zdc K 0r;BO KM+ 1 -[+6- 0 uW
!
$
'&
L®
B… † )( ›™ Š Š ‹a“ˆŠ
$V+ 1<C K {0 T 02Z BK 0u;0 KM+ A - O380 2k W ž t K { 9*'04/ 3 +6587:9 1 foo 380 5Q9 O3(1<0 5 3 9[7 Ca3 02/ C(O K:58+65 CfZ +L7 C'10 38021B;
B+ C};0 B+ 3 + Ze0 ] 5 3802C WL*,+\5 3 + ;<OB= 587:9 1d;<0#=E0 5Q5 0 9*'04/ 3 +6587:9 1eg‡A - 2k W nm j +L7:5,+G+ 3 +  5 380#O<1dC802O K 3 02/ C8O K:58+65 t
=E02/ = 7 KM0258C+65V5 7 Z ^9 C /0 / 9 B+ 3 K 02T Cu= 5\9 1<5 =E9[0 7<5 C ?+2K @6*9 + 'tG/ 0 +65 58;7:9 02O >T uGW + 3 + Z¥0] 5 3802C q O 7 3 02/ C8O K:5 021 5 ;0 KM+p5 3 + ;BO<= 587:9 1P;02C
3 02C8O C~1lO<Z 043 ;02O 0 3 C\;0 { 043 1
'&
'&
%
IMPLEMENTATION
M imp
CONCRETE VARIABLES
var1,
var2
INVARIANT
var1 INT
var2 INT
INITIALISATION
var1 := 10 ;
var2 := 20
OPERATIONS
bb test(v) BEGIN bb := BOOL(var1 = v ) END ;
augmenter BEGIN var2 := var2 + 1 END ;
v1,v2,bb foo BEGIN v1 := var1 ; v2 := var2 ; bb := BOOL(var1 = var2) END
END
§#¨i©_ª 2k W žD« 0 e1 0 T 02Z B K 0r;0 B + C(C +6- 0y;0 G + 3 + Z¥0] 5 3802C\021
'&
…B†
.ŠLŒ —’ U—_ “•Ž Š Ž|™,L˜ x—’Š”‘_— ‹_ŽUŽ¬Š–‘’Š”‹_Ž^[Ž ŠL[Š.>ŠB™ 0 KM9 1 k 20 1 t K 02C 9*#04/ 3 +6587:9 1<C£C 9 1 5 ; 02/ = KM+ 3 04/ 02C + O 1 7:@ 0 + O.;02CVZ + =(F 7 102C B+ 3£O<1 5 0 TS5 0p;0 KM+
j 9 3(ZD0Dz
r
op(p) PRE P THEN S END
9 O ] 02C 5 O<10 KM7 C 5 0y;0 G+ 3 + Z¥0] 5 3802CYj 9 3(Zp0 K C~;|{021 5 3 04/ 0h0 5 r 02C 5 O<10 KM7 C 5 0r;0 B+ 3 + Z¥0] 5 3802Cuj 9 3(Zp0 K C
;0uC K 9 *9 3 #587 / 0 W?+6* 587:0 9 3 02/ ; 7 = +6/ 5 7:5 02C 5#KM+y 3 02/ = 9 1<; 9 7:587:9 1p0 5 5¤SKM+JKM+ KM7 C8O5 cBC 587M5 O B587:+ 9 1p+ = 9 3 5 C_;0 € K { 9*#58047 / 3 +6587:9 1 W29 0 581 7 + 0 K
;KM7 0 5 { 043 @U+ 7`+ 1 K opm C2{ 025 =E3 KM+ez K`v7 5 op(e)G+ O ]+ v 025 C € C 5807 ;<02C 5 3 / Z¥0] 3802C¤KM0 7 5 02= j‡C¤T'; 0sC 7:3 9 0.m giW¬O<*,1+0
/C 02C Z 0¤+ 1;<580 7Mq O0h3 ;<c 0 02K {C +0 0 K e ;|{ 9*#04C/ 3 +60p587:;9 021 C ; + 1B3 C Z¥K 0 0] 3802b aCr9l0 9 02= UjiCy02C;|5 {02; 1 04/ AB3 041 0P7 0 giOBB1+ 03 KM+ C 320D0] -[;|K 0D{0 ;0h38C802OC(CcBC 581<7:5 C O 587:9 1
C8O 7M@U+ 1 5 0Dz
g nm z v op(e) 32t z @ t0 PRE P THEN S END
)&
L­
class M ...
boolean test(int v) return (var1 == v) ;
void augmenter() var2 := var2 + 1 ;
int foo(BInteger v2, BBoolean bb) v1 = var1 ;
v2.setValue (var2) ;
bb.setValue (var1==var2) ;
return (v1) ;
§#¨i©_ª 2k W £« 3 + ;<O<= 587:9 1>;BO B+ C8C +6- 0y;<0 B+ 3 + Ze0] 5 3802CY021 [+n@U+
* 02CN3802C 5 3 7 = 587:9 1<CNC8O3 K { + 0 K C 9 1 5Pq O<0 v 02C 5 O<10 K`7 C 5 0Ÿ;0 @U+ 3 7`+ c K 02C>C 7 Z BK 02CŸg‡0 5 1 9 1H;<02C
3 04/ j 04/ 5 3(021<=E02CY9 + ] ;+LK`027MC + 0 / 7K¦02/ Zp- m 02W1 *,5 +C ;0 / 58+ c 7:58K 7M0 9 + O¬t Bnm + 3}0 5~T 02+ Z +B<K 0 5lm / 0 5}+Dq KMO+0' =E02C @6@ + 3 7M+ c +LK 027 C 1|{ +5lBB+ +3 +L7 9*C8C8#02/ 1 5&+658B7:+9 Cx; + K`1<K C
C 1 ; 04AB1 1.g 02C ; 040e] 3802O 0Lt<Z Cf1|{02C C 043 1<10 0
P 0 S gi1 1
^9 O3 KM+y5 3 + ;<O<= 587:9 1 W 1s0 € 0 5 tO<1 + 0 K ;|{ 9*'04/ 3 +6587:9 1¥021 ; 9[7M5†^9 O @L9[7 3'CQ0 5 3 + ;<O 7 380 B+ 3fO<1 + 0 K
+ OŸ= 9 ;0;<0p=E0 5Q5 0 *9 '04/ 3 +6587M9 1 W,*,+ 340] -[K 0= 7 bˆ;02C8C8O<C£1¬{02C 5 ; 7 3(02= 5 02ZD021 5h+BKM7 = + c K 0 q O0C8O3 K 02CyC8Ocb
CK 587:5 O+ 587:9 1<C~7;BONB1 K¦7:/ @ 0 + OJ58+6Z 587:+ 9 =(F 7 1q0Lt 7q O 7 C #@ 02/ = 7 5 A<0h9 O<1N5 =vF 7 + 1 - 02ZD02/ q 1 5 ;|{ 0 / 58+65 ;<5 0dZ 9 + 1 7 04] 3(0 7M5I+6/ 5Q9 +6Z 587:97Mq O0 W7MK $V++ 1<C5
0£587M= K`7 C\;02KM+ C Z -[K 02ZD027:@61 + 5 1<C4t O 02O 021 = 1 021 3Y;02CfC 0 O<021<=E02ZD021 C O>;02C 043 1<C4t j O
O CQ043 320] 0yC(O 1 0Dz
g k[m z v op(e) PRE z 0 P THEN VAR p,r IN p := e ;S ;v :=r END END
q O 7 = 9 3(3802C ^9 1<; 0 'T BKM7 = 7M5 02ZD021 5h+ O B+ C(C +6- 0 G+ 3h= *9 B7 0 W,* 02Cd3802C 5 3 7 = 587:9 1<CrC(O3 KM+ C 5 3(O<= 5 O<3 +6587:9 1
;02Cf02C B+ =E02C~;0 @6+ 3 7M+ c K 02C'021 j 9 1 5~q O0 KM+ 320] -[K 0sg k[m 02C 5e0 / q O 7M@U+LK 021 5 0s+D] KM+ j 9 3(ZD0z
g m z v op(e) PRE P THEN VAR p IN p := e ; S END END
*,+ +L7 9
587 K`K K / q 7M@U+LK
5 k[m 5 m 5pq K @6+ 7M+ K K`+ KM7 5
+1|{ G+ 3 3 +L7 C8C CQ021”1 b5 02BC8C8+ 02Cf1 ; + 0 1<C 0eS;W0 7MK {C40 {021<O C(O 7:5'02q 1BO=E00eK 02021 C G380„+ 3 g+ Z¥0] 0 5 3802gCf3 02/ C802O C K:58+65 OC 0 0202O C @ 021 3 5 0 c 5 3(020rCDC8O;<cB0 C 587M5 O 02/C C4t0 =Ev0
q O 7 = 9 383802C ^9 1<;N+ ] O<1 B+ C8C +6- 0 B+ 3’3 04/ j 04/ 38021<=E0 W š {02C 5 =E0 5Q5 0Y340] -[K 0 q O 7 02C 5 O 587MKM7 C 04/ 0 B+ 3 K 02C 5 3 + ;<O<= 5 02O<3(C
;0 K { ?'5 0 KM7 043 uW 0 1.;043v1 7 043~3 02/ C(O K:58+65 02C 5£q O<0 K 02C B+ 3 + Z¥0] 5 3802C£;|{021 5 3 04/ 0 02O @ 021 5V+ O<C8C 7 0 5 380 B+ C(C 02/ C
B+ 3\3 04/ j 04/ 38021<=E0¤C 9 O<C K`+ = 9 1<; 7:587:9 1.z
« K`+KM7 C 5 0y;02C B+ 3 + Ze0] 5 3802Cu0 € 02= 587 j‡CV;|{021 5 3 04/ 0D10d= 9 1 587 021 5u+ OB=4O<10 9 =4=4O383(021<=E0d;02C B+ 3 + Ze0] 5 3(02C
0 € 02= 587 jiC\3 02/ C8O K:58+65 C4tB1 7|+ OB=4O<10 9 =4=4O3838021<=E0d;02C @6+ 3 7M+ c K 02C'3 04/ j 04/ 38021<= 04/ 02C£; + 1<C K { *9 #04/ 3 +6587:9 1 W
l9 OBC}=E02C_F?R ^9L5 F^02] CQ02C4t 7MfK 02O 5 0  5 380\Z 9 1 5 3 0 / q O0 KM+ 340 ] -[K 0rg nm 02C 5’+ BK`7 = + c K 0_C(O3 K 02CxC8OcBC 587M5 O 587:9 1<C
+ ;<Z 7 CQ02C¬; + 1<C K 02C 7 Z BK¦02/ ZD021 58+6587:9 1<C W * l+ 3(02O @ 0’02C 5 ; 0 / 58+L7MKMK¦04/ 0'; + 1<C 6ž •W š 0 5Q5 0 *9 <587 Z 7 C +6587:9 1 043(ZD0 5
'&
$
"!
&
&
;0+ 5 3 + K ;<O 7+ 3(0 K 02C G++ + 0 K Cr5 ;|{ 9*'04/ 3 +65 587M 9 1<C 58+ K B+ + 3hG;02+ C GT + C8C +6G- K02C B+ + 3hKM3 + 04/ j 04/ 9*38G021<7 =E0Lt’5¥=E0 / @Sq 7:5IO / 7 W02C 5h7 1 5I04/ 3(02C8C + 1 5
; 1<?C r0 5 = C~;0 5 7:35£K Z¥0] +3802Cu;K 0 R 9*#0 / +6c587:9 0 O K`3f+ 0 - 02Z 0L2tBk W= k 3 9 = 5r7 0r5 02C 7:5 0 W’?Y04@60 + 5rKM+ / +6587M9
O 3802ZD021 ; 02C 0 Cu;¬{ 043 1Ÿ;<0 A O380 C 1 1 043(; C 1 =E3 0 1
'&
x
op(x)
x, x
op(...)
op (x, x)
#§ ¨‡©aª 2k W k¤« ? 0 K Cf;|{ 9*'04/ 3 +6587M9 1 7 1 5 043(; 7:5 C
;02C 9 O 587MK C#3 0 / +LKM7 C 02/ CY; + 1<C K 0r= + ;3(0r;<O 3 9U¡ 0 5 & t K 0 B+ C8C +6- 0y;<02C 58+ c K 0 + O T g‡A - 2k W m CQ0rj +L7 C +L7:5
B+ 3'= 9*B7 0u0 5#7`Kf0 / 58+L7:5f7 Z ^9 C8C 7 c K 0f;0VZ 9 ; 7 A<043#O<1 58+ c K 0 + O G+ C8C 0£/ = 9 ZpZD0 B+ 3 + Ze0 ] 5 380£;|{021 5 3 04/ 0 W<w}9 O3
0 5 380 9 GK O<C¤3 0K / +LKM7 CB5 + 0 + @S7 CN5+ ] @S7 Cp58+ ;02K C + + T BKM7 = +69 587M9 51<BC¤+ 021 / 5 04B3(ZD+ 0J;/ 0N/ ; 0 / @ 0 K:9* - 02ZD2k 02W 1 5 m 0 5 ;|{ 02/ = 9 1 9 Z 58+ 7 0P5¤;K 02C
3802-[C8C K O3(7 =E02C 7Mq 02C / ¡ 3 Ze5 0] +238@602+ C 54W c 0 O CQ043 1 C8C 02C 3h3 04j 0438021B=E0Ÿg‡A
021„3802C 02= 1 02C
320] 02C 1<; O 0402C O<C 0 1
'&
'& &
'& (
MACHINE
...
OPERATIONS
T6, T5 op(T4) PRE T4 : 1..4
BOOL
THEN
/* T4 n’est pas accessible en écriture
T4(2) := TRUE */
T5 := T4 T6 := T4
END
END
IMPLEMENTATION
...
OPERATIONS
T6, T5 op(T4) BEGIN
/* T4 n’est pas accessible en écriture
T4(2) := TRUE */
T5 := T4 ;
T6 := T4
END
END
§#¨i©_ª 2k W « 0 >1 0 T 02Z GK r0 ;0 B+ (C C +6- 0y;|{ O<1 G+ 3 + Z¥0] 5 380 85 + c K 0 + O B+ \3 3 04/ j 04/ 38021<=E0
'& &
class ... ...
boolean[] op( boolean[] T4, boolean[] T5) boolean[] T6 = new boolean[T4.length];
/* T4 n’est pas accessible écriture
T4[2-(1)] = true ;
*/
System.arraycopy (T4, 0, T5, 0 ) ;
System.arraycopy (T4, 0, T6, 0) ;
return (T6) ;
§#¨‡©aª 2k W « 3 + ;<OB= 587:9 1¥021 ?+2@6+ |; { O<1 B+ 3 + Z¥0] 5 380 85 + c K 0 + O B+ 8C C 0 / B+ 3f3 04/ j 04/ 38021B=E0
'& (
$
'% & …B† ˆ… ™,L[Œ ‘_—!lL˜ˆŒ ™
0 10JC(OcBC 587:5 O 587:9 1 02C 5 O<10J1 9L58+6587:9 1Z +65 F 02/ Z +6587Mq O0 043(Zp0 5Q58+ 1 5 ;0JZ 9 ; 0 / KM7 CQ043 KM+Ÿ5 3 + 1<CQj 9 3Qb
Z +6587:589 7:1"5 ;|587:{ 9 0 / 58+6W 5 ? C G+ 37:@ O<1+ 0 5 3 + 1B CQžj 9 3vK Z +6587:9 1–587:;5 0 58 7:9 3 02/ ; 7 = 9+65 C 5yW +$u+ 1BCK¦/ K 02C 7 9*'5 04/ 3 +658587M7M9 9 1<C4t K 0>+ = 9 3 KM+sCD5 02C 5 7 O<19 0
C8K:9LO-[cG7 C O š K 1 + O›^1 9 0 O 9;BO 5 K 02CrKM7 C8OcG+2C @ O 1BKMCY+ C -[1 +6- 0 04029LC - 1<+ C 3(O<+6= 587:9 1<W|CV* ; 1<C 58047M5 3(Z 587:91 b
0D;0 0 3 R O3VZ 1 38043 0 021 02=O<1 1 0p;G0 + 5837 3 Zpq Z KMK 1 029 C£C8OcB9 C O 1<5C
3 02/ CQ021 5I04/ 02C\= 7 bˆ;02C(C 9 O<C_= 9 3(3802C ^9 1<;021 5a+ O T C8O<cBC 587:5 O 587M9 1<CY+
] 3 3a;<02C O<0 02C’;<O= ;<0uC O<3(=E0 02O
50 380 -}02/ 1 04/ 3 0 / W
1<C 5 3(OB= 587:9 5 1 58z¬7:9 z $ @S7 5 _-[+LK
1<C 3v5 O<= 587:1 9 ?0 021 K # +6587:9
1<C 3vO<= 1 0 043 1
1<C 55 3vO<= 58587:7:99 1 ' 0 K:9q O021<=E0
1<C 5 3vO<= 587:9 1 = 587:5
1<C 5 3vO<= 587:9 1 !’;+ 021 7`+ K0 *¬9 +LK
1<C 3vO<= 1 3 c 0 = 0
1<C 55 3vO<= 58587:7:99 1 šš 9+ 1B; 7:587:9 1<1<0 KMK 0
1<C 5 3vO<= 587:9 1 + C 5
1<C 5 3vO<= 587:9 1 ? 1 587MO9 0
1<C 3vO<= 1 C8CQ043 1
* 0 58+ c K 0 + O 2k W ® 380 3 02/ CQ021 5 0 KM+s5 3 + ;<O<= 587M9 1P;<02CuC 5 3(O<= 5 O3802CV;0¤= 9 1 5 3U9[ K 0p;0 ž 021 ?+2@6+SW $V+ 1<C
8
5
=E0 / + 7 c K+60 5 + O S, S1, S2,'T S3 0 7:95 Si C 9 1 5 ;7 02CfC8O58cG7 C + 587:5 5 O 587:9 @61B+ C4t 7MT1+ K 0 5 5Ti ;02C @67 +LK 025 O3vC4t587:C,9 P,q P1,$7 P2 0 5 5 V ; 02ž C
3 02; = C4t O<10’0 3802C8C 1|t O<1 ;<021 A 1 ;<0 3 c 0 0 OB10 1BC 3(O<= 1 O 043vZD0 021
;0 5 5 R 043 K 02EC @6+ 37 7M+ c 5 K 02C 58KM97:9 = +LK 025~C XXW KM+ 9 0 585 7:9 5 ; +02/ 1 9L5 9 021 5 +63858027:C 9 02=I587M@ 02ZD9 021 5 5\K`+ 58j 7:9 9 1<= 587:9 1e@ ;¬{0 Tl[5 +n3 @U+ +S= 58W 7M9 1
;<O R 0y;|{ OB10 1<C 3(OB= 1¥0 j 1<= 1>;<0 3 1<CQj 3(Z 1N;02C\= 1<C 3vO<= 1<C 043(C
!
$
œ
3 + ;BO<= 587: 9 1¥ 021 m ?+2@6+
g Sm
PRE P THEN S END
g Sm
ASSERT P THEN S END
gS m
BEGIN S END
Q
m
m
g
g
g S1 m
IF P1 THEN S1
if
P1 Q
m
m
g P2 m g S2 ELSIF P2 THEN S2
else if g
g S3mQm
ELSE S3 END
else g
gE m CASE E OF
switch
m
g T1m z g S1m break ;
EITHER T1 THEN S1
case
g Ti z g Sim break ;
OR Ti THEN Si
case
g break
ELSE S2 END
default :
g 8m ; ; g S m 0?g mQm g m S2
g
R
VAR XX IN I ;S END
I
XX WHILE C DO S
g C m ) g S m INVARIANT P
while (
VARIANT V END
g S1 m g S2m
S1 ;S2
g XXm z
g Em
XX := E
ª 2k W ¤® « 3 + ;BO<= 587:9 1>;02C~C 5 3(O<= 5 O3(02C\;0r= 9 1 5 3U9[ K 0 ž 021 [+2@6+
…B† † ‰\Ž U—! [˜ [— [˜ˆŒ ™
*,+ C(OcBC 587:5 O 587:9 1›z g m 3(02Z BKM+ =E0¤O<10 @U+ 3 7M+ c K 0 B+ 3rO<10d0 fT 3(02C8C 7:9 1 W _K`K 0d= 9 383(02Cb
^9 1<;e; 9 1<=+ ] O<10 +U€ 02= 58+6587M9 1 W* 02C\; 7 €~04/ 38021 5 02C ^9 C8C 7 c 7MKM7:5l02/ C'C 9 1 5~K 02C\C8O 7:@U+ 1 5 02CVz
« +U€ 02= 58+6587:9 1P;|{ O<10£; 9 1B1 04/ 0y021 587 04] 380Lt
« +U€ 02= 58+6587:9 1P;|{ O<10£; 9 1B1 04/ 0yc 9I9[K¦04/ 021B10+p] K { +L7 ;<0V;¬{ O<10£= 9 1<; 7:587M9 1|t
« +U€ 02= 58+6587:9 1P;|{ O<1 0 / K¦02/ ZD021 5 ;<0 58+ c K 0 + O|t
« +U€ 02= 58+6587:9 1P;|{ O<10£; 9 1B1 04/ 0 58+ c K 0 + O W
1<C 5 3(OB!’= 58+ 7:9 7M1 + $ K 0 @l7 021 5 _-[+LK 'T z¬z 7:9 +LKM+L7
3 + cK + 0 z 'T 3802C8C 7:19 = + K 38+0
c0O z
3802C(C 1 c 0 O
$V+ K + 7 BK KM+d5 + 587:9
[+n@U+ @S7 5 +
BK`+
K B+ 2W $V+ K +
58+ c K 0 + O 1<T C + ] 0VO<= 1C'0sC ; Z 7 ZD020L1Bt C 7:9 1 3 9 1„;<O<O = 587MKM7 C81043 02+e1 KM+ j 9 1<38= 0 587:9 021 1 ;0] =3802*9 ZG7 0Pg +=E043833 + RS0d= z*9 R m 3;0 KM+ = KM1<+ C8C CQ0 0V = RSC'C 5 ;0202Z C
g‡A - K`2+k W ® 0 5 7 2k W ­[7 m W $V+ 7:1<9 C K 0y5Y= KM+ + CY;<9 02C 58587:+ 9 c K 0 + O T 9*+G] 7 ;<02O T + ; 7 ZD587M02KM7 1<C / 7:9 1<^C49 tSO<1KM0+ 7:5l04/ 3 +6TS587 7M9 1JCQ043 7 + 0 € 027:= 9 5 O W04/ 0
C8O3 3802Z 04] 380d; ZD021<C 10 j 1B= 1>;0y= 0rCQ043 O C 040 O3 ;02O 02] ZD0d; ZD021<C 1
…B† )( x— ! [˜ [— [˜•Œ,™¢Ž^‹_‹fŠB“£
‘ "MŒ¬‹ Š< [Ž[˜•Œ ™
aKMK 0 043vZD0 5 ;|{ + BKM7`q O043 KM+ C8OcBC 587:5 O 587:9 1;|{ O<10 *9 '04/ 3 +6587:9 1¢021 3802Z BKM+ = ) + 1 5eK 02C B+ 3 + Ze0] 5 3(02C
j 9 T'3( ZD0 K C 7M9G+ 3Y;02+LC KM+LB7 + 3 + Ze0] 5 385802+ CY0 K € + 02= Ty587 j‡BCh+ g‡A - / 2Bk + W m / W|/ * 02C B+ 3 5 + Ze0] 5 3802Cu+ ;|{021 KM5 7:3 5Q045l/ 0L/ t+LC2K { 7MK W R¥* 021 B+ + tC + 9 1 5 5 ;02C
0 389 02C858C 7 1</ @C¬C8= 5 K 3802C49t2;502C c @U0 + O 7`+ K C8C 02C +LKM+L7 3 3 04j 9 0438021<=E0#580+ ;K 02+ C,=(W F `102C 043 02C 02C 3 Ze0] 3(02C
;0rC 3 0 0 021 O<0 C~C 1 ;02C 3 c 02CfC8= 3802C ONOB1 c 0 O
1<C 5 3vO<= 587:9!’1 + ?7M+ K0 K # 043 +6587:+ 9 1 K + z|z
+ c K0 + O
3 c0
c 0 O {:t:{ !’+ 3 7M+ c K 0
{ {
OcBC 587M5 O 587:9 1<C
$
*
-
3
*
.
.
$
*
-
.
2
*
-
.
-
$
$
!
!
!
% !
$
'&
'&
!
'&
%
-
$
*
$
.
œž
MACHINE
Tableaux
CONCRETE VARIABLES
T1, T2, T3
INVARIANT
T1 -5..5
INT
T2 -5..5
INT
T3 (1..2)*(1..2)
BOOL
INITIALISATION
INT T1 : -5..5
T2 : -5..5
INT T3 : (1..2)*(1..2)
BOOL
...
IMPLEMENTATION
Tableaux imp
REFINES
Tableaux
INITIALISATION
T1 := (-5..5)*1 ;
T2 := T1 ;
T3 := 1 1 TRUE,1 2
...
OPERATIONS
...
var := T3(1 2) ;
T1(2) := T2(5) ;
...
END
FALSE,2
1
FALSE,2
2
TRUE §#¨i©_ª 2k W ®¤« OcGC 587:5 O 587:9 1 '^9 O3 K 02C 58+ c K 0 + O T
# 043 +6587:9 1 ou+ ZD0
+ c K 0 + O l5 3 7 1 {`gX{ ’fT 'T 3802C8C 7:9 7:91 = +L+LKM+LK`+L7 387 0
+ c K 0 + O l5 3 7 1 - { m {
{:t:{ 3802C(C 1 = 380
'&
-
!
!
$
$
*
.
?+2@6+
5Q5 587:5 587:9 9 9 + + K / 5 9 W|* K:9 q 7MK T7 5 5
5 3 + ;<O 1 7:5B+ 3 t^=EW 0 _5 0pO<; C(O7:9 cB1<C C_C8OO 3 q O1>0 =KMq O38380202C_C 0 T 021BZ ;”G] K 02O<C 1 K 02Ca; 7 €~0 04/ 38;020¤1 5 Z 02C 0 ^F 9 C8;C 7 0 c 7MKM7:5l0 02/ C\g‡A - 3v2C k W O¬{ 0 0 5 2C k W 0h[m02C W
* { + 0 K ;0Nj 9 1<= 587:9 1C8Oc 7M5pK 02CZe02 ZD02C¥= 9 1 5 3 +L7 1 5 02C q O0 KM+ ; 04/ AB1 7:587:9 1–;0JZ 0 / 5 F 9 ;<02C.gi= K`+ O<CQ0
K 5Q9 K:587tGK 02C W?wx+ 3~= 9 1<C 0 / q O021 5 t 7MK 02C 5 1 02/ =E02C8C +L7 3(0r;0
m q 7 9
OPERATIONS tI021e=E0 O = 1<=E043(1<0 02C'380 O3(CfZhO
j +L/ 7 380¥KM58O<+615 0= 9 1 +@ 043(C 7MK¦9 / 1 ;7`K 02Cd= + K`+ C8CQ02C¤021 @ / 0 9K:9*^ 9 025C @ T_04/ 3vC 9 K 02C 5 /R @S 7:5 02C K 3 7 Z 7:587 ji/ C£KM;+ 0 +6[58+n7M9 @U+SW? 7 O”1 7:@ @U0 + + O„7M+ ;02K C
3 025C8O 587MKM7 CV/ 021<B= K C87 O 02C2t 9[7 R 9 OB1J1lO<Z / 043 K:58+65 C *9 A #/0 +6587:9 O<3 W 0 043 02Cu3802; 02= 3 1<CrC O<10 3 c 0
02C O C 040 O<C 02O3vC_j Cf= ZpZD0y3 02C8O ;¬{ 043 1
!
!
'&
'&
œ
class Tableaux int[] T1 = new int[5-(-5)+1];
int[] T2 = new int[5-(-5)+1];
boolean[][] T3 = true, false , false, true ;
void INITIALISATION() Arrays.fill (T1, 1) ;
System.arraycopy (T1, 0, T2, 0) ;
...
...
var = T3[1-(1)][2-(1)];
T1[2-(-5)] = T2[5-(-5)] ;
...
§#¨‡©aª 2k W ­h« 3 + ;BO<= 587:9 1¥021 ?+2@6+ ;0 KM+ C(OcBC 587:5 O 587:9 1 '9 O<3 K 02C 58+ c K 0 + O T
…B†
x—! [˜ [— [˜•Œ,™ *,+ C8OcGC 587:5 O 587:9 1 = 9 3(3802C ^9 1<;+J] K { +BK`7 = +6587:9 1 021 C 0 / q O021B=E0¥;<0;02O T C8O<cBC 587:5 OSb
587:9 1<C W 3 + ;<O 7 380 K 0DC 0 / q O021B=E02ZD021 5 02C 5 C 7 Z GK 0z 7MK C8O 5 ;<0 5 3 + ;<O 7 380 K 02C£;02O T C8OcGC 587:5 O 587:9 1BC q O|{ 7MK
= 9 1 587 021 5 t5 ; + 1<58C 7:9 K { 9 3v;q 380r;|{ + G+ 3 7:587:9 1 g‡A - 5 2k 58W L7:9 œ 0 5 2k W ž?m W 5 587M9
1<C 3vO<= 1 0 O021<=E0 z|z 1BC 3(O<= 1 { :{ 1<C 3(O<= 1
…B† x— ! [˜ [— [˜•Œ,™ aKMK 0JC8043 5 +„] - 3 9 O 043 BK OBC 7 02O3(CC8OcBC 587M5 O 587:9 1<C q O 7 CQ043 9 1 5 0 € 02= 5 O 04/ 02CN021C 0 / q O021<=E0 W aKMK 0PCQ043 5
B
;+ 0 K:+ 5838+602581 7:@ 5 F|02] CQ+ 0Lt|021 K q O+ 0 KMq O0dC 9 3 5 0 W _587:KM5 K 0d58027:9 C 5 1 02/ =E7M02q C8C +LW7 380p; + 1<C K 0¤= + Cr;0 BK OBC 7 02O3(CYC8OcBC 587:5 O 587:9 1<C~0 5
j =4O 5 0y; 587:1<9 C '0rK:9 = CY;|{ O<10£C8OcGC O 1¥5 O<1 587MO<9 0
1<+ C 3vK O<= 7 1 7t = 5yz|zK BEGIN K 1<C KM9 3(O<= 1 / { 5I:{ / B1<+ C 5 3vO<= 587:9 9 1 BK END
[
2
+
6
@
+ 9[KM+
m
9C 1 1 5£9 c KM7:t -[+60 5Q9[7 338021<C = q O<0d0 02^C 9 O3£0pO<Ze1P02 ZDc KM0J9 =hz ;|02{ CV+ O c Z =49[C47 t|1B3(C£0 ;023 02O CQTJ021 7 1B02C C 5 3(O<= 583d7:9 O<1B1 C W = š O 0 020p1B;¬; {+ 1 =45 = t|; + ;1B02CuCOBg 1 C 9 t}O<1= 0 7
;0r= KM+ 3 5I0L/ t 7MK 02C 5 3 04/ j 04/ 3 + c K 0y;0rZD0 5Q5 380hCQRSC 5I02/ Z +6587Mq O02ZD021 5YK 02C + =4= 9[KM+ ;<02C W
'&
$
% $
'&
)(
!
!
!
!
…B†
*
x—! [˜ [— [˜•Œ,™
š 5Q5 587M5 587:9 +L7:5 7 W aKMK 5 587MK`7 / B+ T GK 9 7 7Mq q 58+L7
+c<3 1B=(0 F02CD0;|C8O{ OBcB1C 0 7 O1<C 5 3(1POB= 1580¤7:9 1j IF3 9 02O 1 CASE0h02C 10eO Z 9 ;C 047 A<0 021 53VB0 + C 02Z K 02C 0@U+ 3 7`+ O<c 3 K 02C1<W ; _K`OK 0043 02C 5DO0D5 3 =E+ 04;<3 O 7:5 0e102C C 7
1 02/ =E02C8C +L7 385 0r021 587:¡89 +2@6'+ K:B9 + 3YO<1¥c K:9 = @l7 ;0 W
1<C 3vO<= 1 = z|z Skip
!
!
œk
IMPLEMENTATION
M imp
CONCRETE VARIABLES
res1,res2, res3
IMPORTS
i.M2
INVARIANT
res1 INT
res2 0..4
INT
res3 BOOL
INITIALISATION
res1 = 10 ;
res2 = (0..4)* -1 ;
res3 = TRUE
OPERATIONS
foo BEGIN
res1 i.op1(res2) ;
i.op2 (1, TRUE) ;
res2,res3 i.op3
END
...
§#¨i©_ª 2k W « * + C(OcBC 587:5 O 587:9 1 + 0 K ;|{ 9*#04/ 3 +6587:9 1N021 …B†
x—! [˜ [— [˜•Œ,™ $V+ 1<C K 02C 9*#04/ 3 +6587:9 1<C2t 7MK 02C c5 B+ 3(j 9[7 C 1 02/ =E02C(C +L7 380~;¬{ O 587MKM7 C8043x;<02C @U+ 3 7M+ c K 02C q O 7 10\C 9 1 5B+ C’; 04/ AG1 7 02C
+ O1 7:@ 0 + O;0 KM+ = KM+ O<CQ0 CONCRETE VARIABLES W * + C8OcBC 587M5 O 587:9 1 @6+ 3 7M+ c K 0 K:9 = +LK 0 043(ZD0 5 t
=š 9 ZpZD@6+ 0p7MC+ 9 1 K 1 9 Z K9 { 7 1<5 ; B7Mq+ O<0L5 tB';0D/ ; 04/K:AB9 1 7 3£O<1<K 0 KM7 C 5 0h/ KM;<+ 02C +658@U7:+9 3 7`+ c +LK 027 C K:K:99 = +LK 02CK +¥] K { 9* #04/ 3 +6587 7:9 1"+Ug‡A€ - 582+6k 58W 7:9 nm WW
02C 3 c 02Cx10\C 1 C R 0402C 3(C ;0 02O<3’; 02= 3 1pZ C 3(C ;<0 02O3 3802Z 04] 3(0 02= 1
1<C 5 3(OB= 587:9 1 ' K:9 = 58z7 z
;5 021 587:9 A<043 {:t:{ ;021 587 A<043
VAR
1 END
IN 1<C 3(O<=
* +s5 3 + ;BO<= 587:9 1J021 ?+2@6+ CQ0hj +L7:#5 B+ 3£O<1Jc K:9 =r0 5£K 02C @6+ 3 7M+ c K 02C K:9 = +LK 02CVC 9 1 5 ; 02/ = K`+ 3 04/ 02C + O ; 04/ cBO 5 ;0
=E0rc KM9 =pg‡A - 2k W k[m W
…B†
x— ! [˜ [— [˜•Œ,™ *,+ C(OcBC 587:5 O 587:9 1= 9 1B; 7:587:9 1<1<0 KMK 0 IF ; 04/ AB1 7M5 O<1 9 O BK O<C 7 02O3vC’= 9 Z ^9 3 5 02ZD021 5 Cf021sj 9 1B= 587:9 1e;0 KM+
@6+LKM7 ; 7:5l0r/ ;|{ OB10 9 O BK O<C 7 02O3(C#= 9 1<; 7:587M9 1<C W S+ CQRS1 58+UT 0r02C 5~KM+ C8O 7M@U+ 1 5 0Dz
1<C 5 3(OB= 587:9 š 1 9 š 9 1<7:58; 7M97:587:9 1<10 K`K 0 z¬z 5 587:9
1<; 1 THEN 1BC 3(O<= 1
IF
'&
)(
*
)(
œ
class M int res1 ;
int[] res2 = new int[4-(0)+1] ;
M2 i ;
...
void foo() res1 = i.op1(res2) ;
i.op2(1, true) ;
BBoolean res3 Object = new BBoolean() ;
res2 = i.op3(res3 Object) ;
res3 = res3 Object.getValue();
...
§#¨i©_ª 2k W ¤« 3 + ;<O<= 587:9 1e;0 KM+ C8OcBC 587:5 O 587:9 1 + 0 K ;|{ 9*'04/ 3 +6587M9 1>021 ? +2@6+
'&
$
tmp := x ;
x := y ;
y := tmp ;
§#¨i©_ª 2k W Lœ « * 0rC 0 / q O021<=E02Zp021 5<
'&
tmp = x ;
x = y;
y = tmp ;
§#¨‡©aª 2k W ž¤« 3 + ;<O<= 587M9 1¥021 [ +n@U+ ;<O )(
$
(
VAR bb, ii IN
bb := unBooleen ;
ii := 2 + unEntier ;
...
END
§#¨i©_ª 2k W £« * 02C~C8OcBC 587M5 O 587:9 1<C
š 9 1<; 7:587:9 1 THEN 1<C 5 3vO<= 587:9 1
1BC 5 3(O<= 587:9 1
)(
-
ELSIF
ELSE
*
.
021
&
œ
(
boolean bb ;
int ii ;
bb = unBooleen ;
ii = 2 + unEntier ;
...
§#¨i©_ª 2k W ¤k « 3 + ;<O<= 587:9 1e;<02C~C8OcGC 587:5 O 587:9 1BC
)(
$
! 021 [ +n@U+
END
aKMK O 5l 38021<;<380 BK O<C 7 02O3(Caj 9 3(Zp02C£z
KM+ j 9 3(ZD0rZ 7 1 7 Z +LK 0 W* + C(OcBC 587:5 O 587:9 1 s 02C 5~+BK`7Mq O 04/ 0£C 7 p 02C 5\@’04/ 3 7 A 0 / W
« IF0 p02THEN
s END z
« IF p THEN s1 ELSE s2 END z KM+ C(OcBC 587:5 O 587:9 1 s1 02C 5u+BKM7Mq O 04/ 0dC 7 p 02C 5u@’04/ 3 7 A 0 / W$V+ 1<C K 0
+ 9 5 +L7 5uKM+ 587:5 587:9 q 7 5~+BKM7Mq O 04/ 0 W
« = CY= 1 3 380LtB=6{02C C8OcGC O 1 s2 O 02C
!
IF p1 THEN s1 ELSIF p2 THEN s2 ... ELSIF pn THEN sn END : cette forme est
équivalente à imbriquer plusieurs substitutions IF. La substitution s1 est appliquée
si p1 est vérifié, s2 si p2 est vérifié, etc...
– IF p1 [THEN s1 ELSIF p2 THEN s2 ... ELSIF pn THEN sn ELSE sd END
zfZe02 ZD0
; 04/ 5~AG1+7:58B7:9 KM7`1 q q O/ 0 + 3 02/ = + 02/ ;902ZZD+ 021 5 t’+] K {/ 0 T 7 =E0+6<5 587M9 1 5fq O¬@’{ / 7MK 7 0 TS/ 7W C 5 0yO<10rC(OcBC 587:5 O 587:9 1 B+ 3Y; 04/ j + O 5~q O 7
9 02O<C C K 02C K`+ 1 -[O +604- 0 02C’O>;0 = C 3 9L- O ] 3 + ZpO<=4Z O<+61 587:9 3 1 02; ^9 = C8C402] ;<1¬02{021 C 5 O<1<040'3 CA 5 0 3(O<= 5 O380f;0\=vF 9[7 TŸ0 / q O 7M@U+LK 021 5 0 q O0 K { 9 1
02O 5f@L9[7 3~C(O3 K 02C\;02O T 0 T 02Z BK 02C\C(O 7:@6+ 1 5 C\;BO 58+ c K 0 + O 2k W ­ W
$
IF a b THEN
a := b
END
IF a b THEN
b := 0
ELSIF a b THEN
a := 0
ELSE
a := b/2
END
b) ª 2k W ­h« O<cBC 587:5 O 587M9 1
021 g8+D] -[+ OB=(F0 m 0 5 021 [+n@U+ g8+ ] ;3 9[7M5 0 m
19L5 + 02O 5 387|02K Z + B3 q + O<043 5 q O0Y;029 C + KM=47M-[= +69[5QKM+ 9[;7 02C'; + 0 / KM5Q7 Z 9 7:5 021 5aK 02 Cac / K:9 7 =4+6C_5 ZeW 02 ZD0VC 7 =E0u1|{02C 5†B+ C#1 02/ =E02C8C +L7 380 W
1 043 O<C(C 02C 3(021 F|02] CQ02C c 3802C O O3u;02C 3 02; = C
243
?
if (a b) a = b;
if (a b) b = 0
else if (a
a = 0;
else a = b/2 ;
Ϩ
B… †
x—! [˜ [— [˜•Œ,™ š 0 5Q5 0£;02O TS7 02] ZD0£C8O<cBC 587:5 O 587M9 1p= 9 1<; 7:587M9 1<10 KMK 0 043vZD0 5 ;<0Y=(F 9[7 C 7 3#021 5 3(0V; 7:@ 043(C#= 9 Z ^9 3 5 02ZD021 5 C
0521sj 9 1B= 587:9 9[17 T ;<0 TKM7+d5 @6+LK 02+ O3';|KM+
{ O<B1K 0YG0 Tf+ 5 3(02C8C 7:9 KM+ 1.g‡-[A +6- - 2k W m W 9L- 9 O + 5 = 9 Zp+658Zp7:9 0 K`+ C8O[cG+2C @658+ 7:5 O 587:9 15 K IF7 t K`5 + C 5 3v58O<7:9 =¦b
O380’;<0’=(F - 02k W C 0_m W; 1BC O 3 ;02C 1 02C,;0 3 3 ZpZ 1Dz4021 t =6{02C { 1<C 3(O<= 1
switch g‡A
1<C 5 3(OB= 587:9 1 š 9 1<'T ; 7:587:9 1<7:19 0 K` K 0 +LKM+Lz¬7 z
3802C8C š 1 9 = 58+ 5 380 +LOFK`+L7
CASE
1<C5 1 +L0 KM+L7= 380 THEN
1<C 5 3v+LO<KM= +L587 7:9 1
EITHER
š
š
9
8
5
+
9
8
5
+
5
1BC 5 1 580 7M9 = 380 {:t:{ 1<C 1 0 = 380 THEN 1<C 5 3(O<= 587M9 1
OR
1
ELSE 1<C 3(O<=
)(
&
$
)( (
!
-
*
*
.
END
END
CASE x/5+3 OF
EITHER 3 THEN
y := 0
OR 4,5,6 THEN
y := x
OR 10 THEN
y := 10
ELSE
y := -x
END
END
#§ ¨i©_ª 2k W « * + C(OcBC 587:5 O 587:9 1
021 …B† ˆ… x—! [˜ [— [˜ˆŒ ™ š 0 5Q5 0eC8O<cBC 587:5 O 587M9 1›3 0 / +LKM7 C80sO<1<0 7:5l04/ 3 +6587:9 1”C8O<3hO<1 c K:9 = W,* 02C 7 1<C 5 3(OB= 587:9 1<Cy= 9 1 5 021lO02CD; + 1<Ch=E0
cBK:K 9 ='C@ 9 1+L57 0 € K 02= T_5 O / 04/ 0258C 7M958+ 1 5aq ^O|9 { OB10f= 7:9 5'1<+2; @ 7:587:9 K 1e7 giO<51 3 5802/ 7:; 9 7 = +65 m 7:@602C+ 5 5'@’04/K`3+ 7 A 04/9 0 WI* K 9 3(C q - O0 2k KM+ W = ®[9 m 1<W ; 7:587M9 1D1|{02C 5
OBC 3 0Lt {0 02=4O 1NCQ0 O3(C(O 02= { 1<C 3vO<= 1¥C8O 1 c OB= 0g‡A
1<C 5 3(OB= 587:9 1 + 1 š 5 9 O<0 7:587M9 z|z
1<; w 1 7 +6DO
WHILE
3802; = 5
INVARIANT
'T 3802C8C 7M9 1
VARIANT
)(
&
)(
$
!
END
* 02C MK + 1 -[+6- 02C 7 1j 9 3(Z +6587Mq O02C ^9 C8CE02] ;021 5\5Q9 O<C~OB10£C 5 3(O<= 5 O3(0 0 / q O 7M@U+LK 021 5 0 W
$V+ 1<C K { 0 T 02Z BK 0N= 7 bˆ;02C8C8O<CPg‡A - 2k W ­[m t\1 9 O<C @L9 R 9 1<C q O<0 K 02C B+ 3 587 02C VARIANT 0 5 INVAMK + (C OcBC 587:5 O 587:9 11|{ 7 1 O021 5B+ C'C8O<3 K`+y5 3 + ;BO<= 587:9 1 W 1sj +L7:5 tl=E02Cf;<02O T = KM+ O<C802C#C8043 @ 021 5 + ]
RIANT ;0
KM+ 3(02O @ 0Lt ^9 O3 ’@ 04/ 3 7 A<043~1 9L58+ ZpZp021 5uq O0 K`+ c 9 OB= K 0£CQ0 5 043(Z 7 10Vj 9 3(= 02/ ZD021 54W
)(
"!
œ­
switch (x/5+3) case 3 :
y = 0;
break ;
case 4 :
case 5 :
case 6 :
y = x;
break ;
case 10 :
y = 10 ;
break ;
default :
y = -x ;
§#¨‡©aª 2k W « 3 + ;<O<= 587M9 1¥021 [+n@U+ ; 0 MK + 8C OcGC 587:5 O 587:9 1
)( (
$
;<0
i := 0 ;
WHILE i 5 DO
var := var * 2 ;
i := i + 1
INVARIANT
i NAT
var NAT
VARIANT
5-i
END
§#¨‡©aª 2k W ®h« *,+ C8OcBC 587:5 O 587:9 1
)(
1
021
i = 0;
while (i 5) var = var * 2 ;
i = i + 1;
#§ ¨‡©aª 2k W ­D« 3 + ;<O<= 587M9 1e;0 KM+ C8OcGC 587:5 O 587:9 1 021 [+n@U+
…B† ˆ…¬… x—! [˜ [— [˜ˆŒ ™ $V+ 1<C =E0 5Q5 0 7 1BC 5 3(O<= 587:9 1d; 9 1 5xK`+ CQRS1 58+UT 0'02C 5 ; 9 1<1 04/ 0f= 7 bˆ;<02C8C 9 O<C4t6CQ02O K 0 KM+B+ 3 587 0 1<C 5 3vO<= 587:9 1
02C 5.5 3 + ;<O 7:5 0 G+ 3›O<1Hc K:9 = [+n@U+ = + 3 9 1 j +L7:5 K { FIR ^9L5 F|02] CQ0 q O0 K 02C = 9 Z ^9 C + 1 5 C !+ O3 9 1 5H0 / 5I0 /
)(
$
1
3 0 / +LKM+ c K 02ZD021 5 3 9 O @’02/ C W
1<C 5 3(OB= 587:9 1 ? C8CQ04w 3 58+ 7:9 1 $ š z|? z
ASSERT
œ
1<C 5 3vO<= 587:9 1 END
+ 20 Z + 3 q O0Nz 9 1›02C 5¤KM7 Z 7M5I0 / B+ 3 K 02Cd= + 3 + = 5I04/ 3 7 C 587`q O02C¤;<O KM+ 1 -[+6- 0s= 7 c K 0Z +LK:- 3 0 / K 02Ch; 7 C 9 C 7:587 jiC
5 3 9 O @’02/ C ^9 O3 B+LK`KM7 043 K 0rZ + 1 q O0r;0 0 TS7 c 7MKM7:5l0£/ ;<O KM+ 1 -[+6- 0 [+n@U+G+ 3\3 +^9 3 5 + ] uW
!
$
THEN
œ
! !¢
% (% ) š +B7:5 @l7 + TBKM7`q K 7 7B+LK 7 €~/
5
5 + 587:9 +n@U+ 58+
+; 3(; 0>0 5 =vF O<1<0 3(5 0 3 + ;<O<C80›= 587:] 9 1 0 ^9 O3.O04O<3 1002C BKM+63 5 1<0Eb•= j 9 3(ZD020 Cy;02Zdc 0438+ 023 1Bq =EO 0204/ Cp0–02;<1 O 380>5 R O< 100 +n3 @U+;<š OB=+ 3v; Wr1o~ 9 OBC C= 9 Z¤1Sbb
ZD029 1 = 9 1BC B/ + 3#9 ; 7 0 / 58/ +L7MKMK 043 K 02C_C '02T / = 7 AG= G7:K5I02/ C#7;<0 BKM+K BK`+65 0E^b•9j 9 3(5 Zp09 +n@U+ +Lš 7 + 3v/ ; K W 5 1<9 C8O 7M7:q 5 0\1 W’9 oYO<C’9 Z 9 1 '5 3 / 9 1<7 C K { 9 + b
3 =(F<0 3 02= 1 C 040NC8O<3¤OB1”0 02Z 0eC Z 0;0 3 0EbˆZ 1<1 0 0 02= 3 1 O0 O<CDC 02= A<043 1<C
=EoY0 9 5 0 T 02Z BK/ 0e0215 9 O 7 C¤5 1 9 T O<Cp; G9 K 1B1049 3 9 1<C KM+ KM+.9 5 3 + ;BO<= 587:9 1 ^+9 BOK3D5.O<1/ 0 7:B5 K`+65 0Eb•+ j 9 3(ZpKM0K +2@6+ 5C ^589 + 1B; + 3(; W
+ n@UO<+ Cyš 3(+ 0 3(; 3 W 02CQ0211 AB1e043 1 1<9 C¤OBC =E00 / 5 O<0 ; 7 0204Z3 9 1<C\0= C 9 ZpOBCZD021 5Vj 7 3(1 Zp5l0 / 0- 38;|04{ 3 O<1<K 0 0 ^9 3 5 0E0 bˆZ 029 =E1B3 1 +L0¥7 0 Z 0 / K 021l= O5 30 9 1 027MZDq O021 0yC '02/ = O7 3hA 0d/ O<0211 0
021–Z 9 ; 7 A + 1 5¤š K { + BK 0 5 ^9 O3DO<10 BK`+65 0Eb•j 9 3(Zp0 +2@6+ C 58+ 1B; + 3(; ^9 O3 9 c 5 021 7 3pOB10 BKM+65 0Eb•j 9 3(ZD0
02Zdc + 3 q O 04/ 0 +n@U+ + 3(; W
% &
"!$# &%(' *) ,+ .- .… ( ‡† ˆ… ‰\.Š U‹ .Š 0˜ / ˜  .Š e‘_Š„“ˆŽ–‹a“ˆŽ62Š 143Œ¬6 58
Š 7,Ž ,^:Ž 9Ž^?‘
!
!
§#¨‡©aª; lW; « $>0 / @ 0 K:9< 02ZD021 5 ;|{ OB10 + BK 0 5 +2@6+ š + 3(;
&
;2œLœ
k6žLž
#
MACHINE
BWallet
CONSTANTS
MAX BALANCE, MAX TRANSACTION AMOUNT, DEFAULT BALANCE
PROPERTIES
MAX BALANCE NAT MAX BALANCE 50000
MAX TRANSACTION AMOUNT NAT DEFAULT BALANCE NAT
DEFAULT BALANCE MAX BALANCE
CONCRETE VARIABLES
balance
INVARIANT
balance 0..MAX BALANCE
INITIALISATION
balance := DEFAULT BALANCE
OPERATIONS
...
setBalance (balanceInit) PRE
balanceInit NAT
balanceInit 0..MAX BALANCE
THEN
balance := balanceInit
END ;
debit (debitAmount) PRE
debitAmount NAT
(debitAmount 0)
(debitAmount MAX TRANSACTION AMOUNT)
(balance - debitAmount 0)
THEN
balance := balance - debitAmount
END ;
credit (creditAmount) PRE
creditAmount NAT (creditAmount 0 )
(creditAmount MAX TRANSACTION AMOUNT)
((balance + creditAmount) MAX BALANCE)
THEN
balance := balance + creditAmount
END
END
§#¨‡©aª; lW kh« # 20 / = 7 AB= +6587:9 1 + cBC 5 3 +L7:5 0 ;BO ^ 9 3 5 0EbˆZ 9 1<1 +L7 0 0 / K 20 = 5 3 9 1 7Mq O0
&
k6ž ;
IMPLEMENTATION
BWallet imp
...
VALUES
MAX BALANCE = 10000 ;
MAX TRANSACTION AMOUNT = 100 ;
DEFAULT BALANCE = 0
...
END
#§ ¨i©_ª; lW « Z BKv02/ ZD021 58+6587:9 1;<O ^9 3 5 0EbˆZ 9 1<1 +L7 0 0 / K 02= 5 3 9 1 7Mq O<0
* #/ 7 7:5l/ KM+ GKM+65 9 +2@6+ š + ® ; k B+ +^9 5 +”KM+ GKM+65 0Eb•j 9 3vZD0 +2@6+
5C 8+ 1<; 02+ Cs3(;>C C 029 = 1 AB5\= K 02C\02CeC8O ;7:@U0 + 1 5 02C£z 0Eb•j 3vZD0 3(; t 33 3 ]
« K 1|{R +$B+ C\;<0y=(F + 3 - 02ZD021 5 ;RS1 + Z 7Mq O0V;0y= KM+ C8C802C W
« 1 02O 5 =E3 04/ 043r;Rl1 + Z 7Mq O02ZD021 5 ;02C 9 c ¡ 0 5 C¤gi1<0
m 021.Z 02/ Z 9[7 380 043(Z + 1021 5 0¤Z +L7 C 7MK 1|{R +
G+ C ;0a3 + Z + C8CQ0EbˆZ 7 0 5Q5 0LtU1 7 ;0aZ 9 RL021 9 O<3 ; 02/ C +LKMK:9 O<043 0 TBKM7 = 7:5 02Zp021 5 K 02C 9 c ¡ 0 5 C W6* + Z 02/ Z 9[7 380
+LK`K:9 O 04/ 0u1<0 02O 5 ; 9 1B=y0 5 380u3 02/ =4O '04/ 3 04/ 0 9 3 KM+yq O + 1 587:5I0V/ ;<0~Z 02/ Z 9[7 380u02C 5 j +L7 c K 0 W K R +d5Q9 O 5 04j 9[7 C
K`+ ^9 C8C 7 c 7MKM7:5l0_/ ;<0#=E3 04/ 043_;<02C 9 c ¡ 0 5 C 5 3 + 1BC 7:5Q9[7 3802Cfg‡021 &.m 021 G+ C8C + 1 &5 G+ 3 K { w ;<OhCQRlC 5 02] Zp0 W
« * 02C 5 R 02C';0uc + CQ0 + O 5Q9 3 7 C 02/ CfC 9 1 5'K 02C byte g c 7:5 C m t K 02C short g ; ­ c 7:5 C m 0 5'K 02C boolean W
* 0 5 R 0 int g k c 7:5 C m 02O 5 0 5 380dC(O ^9 3 5I0r/ ;0£j + = 9 1 <9 <587:9 1B10 KMK 0 W
« 1>10r; 7 C 9 C80 q O0y;02C 58+ c K 0 + O T + ] O<10£; 7 ZD021<C 7:9 1 W
« K 1|{R $+ B+ C\;<0 5 F380 + ;<C W
« *,$+ ^9[KM7:587Mq O0u;0yC 02/ =4O3 7M5I0d/ 02C 5~7 1B= 9 3 ^9 3 04/ 0r; + 1<C KM+ Z + =(F 7 1<0 @l7 3 5 O0 KMK 0 W
« * 02C + BKM7 = +6587:9 1BC ;02C 587 1 04/ 02C'+ ] =E0 5Q5 0 BKM+65 0Eb•j 9 3(ZD0aC 9 1 5 ;02C +BK 0 5 C +n@U+ š + 3v;zUO<10a;<02C,= KM+ C(CQ02C
0m 5h5 7 Z BK¦02/ ZD021 5 043 ^+9 O Z 5 7 1 +L77:Zh5 O<Z K K 02Cy9 j 9 1<= +587M9 1<C install
; ^9[9 7:5 F 04/K 3 7 7:5 043¤58+L;KMKM0 +658KM7:+ 9 = K`+ C8CQ0 Applet
+
B
K
5
587 1 04/ 02C
g+¥K +O 3 BK { 1B5 m C W|w}9 -[1 + ;|+ { O<5817 0 9 0 580 7M9 process
g
O
3
3
4
0
3
2
0
h
C
=
p
Z
Z
<
1
;
2
0
¤
C
;
2
0
C
] { 5 + 0 + 587:9 O3 + 3 1 3rK O<1P7:@ j + 1<= m W 0 1<102ZD/ 021 + 5 7= 9 F 04/ 38021 5d- 7MK 58R 7M9 + O<1PBZ + 02/ = 58+ +61 - 7 C8ZD0p9 ;<¡ 0 5 - 02C 587:5 9 1
;<+ 02CBK 3 5 1<C T7= 5 1</ CV-[+Lg8K] O<1sCQ5402W O 1 0 O 1¥Z 02= 1 C(ZD0u;<0 02C 1s;<0 3 0£;|{ c 0 C#021 380
« *,+ = 90 ZpCfZd0 OB1 C 7 =0 +60 587:9 1¥0202Zp1 025 1380 KM+ = + 3 5 0£0 5\K 0 K 02= 5 02O<3f02C 5 3 0 / +LKM7 C 04/ 0 B+ 3\OB1 3 9L5Q9 = 9[K 0rO 587MKM7 C + 1 5 ;02C
G+Lq O0 5 C $Vw 0dW
K j + O 5h+ O<C8C 7 3802Z + 3 q O043 q O0 KM+ BKM+65 0Eb•j 9 3(ZD0 +2@6+ š + 3(;„02C 5 021 0 / @L9[K O 587:9 1„3 + B7 ;<0p0 5hq O0s;02C
5
385 02C 3 7 =9[58K:9L7:9 -[1<7MqC B+ 3¤53 + ^KM9 +3 5 + ] KMKM+ 7 +6B58KM7:+69 5 0Eb•j 9 3(ZD0 9 @ +2@6KM+ K C 9 1 '5p/ K 70 @’04/ +60258C 7:9 + O”W jiO3¤0 5 + ] ZD02C8O380¥;02C +n@U+ 1<= 04/ 02C
02=(FB1 O02C\0 ;0 Oc = 1¥;02C\1 O 0 02CfC 02= AB= 1<C
.… ( ‡† † ,L?!— lL—_[Š ‘ "`—_™_Š Ž^‹_‹a“ˆŠN‹fŒ —_ 7,Ž ,^:Ž 9Ž^?‘
*,+ 5 5
+ GK 5 ^9 +n@U+ š + 5 9 9 / 5 9[7 B+ 587 - ; lW ; m z
« OBC 1e3(Z O<= 9 ;BO<O 38K0r0£;;020rC = 9 ZpZh0 O<C 1 7 = +6O5837M9 1|t 3v;>02C = Z C 040h;0 3 C 3 02Cyg‡A
« K 02C 3 02/ = 9 1<; 7M587:9 1<Cf;02C <9 '04/ 3 +6587:9 1<C 5 3 + ;<O 7:5 02Cf021 +2@6+ t
« K 0r= 9 ;0d;02C 7 Z GKv02/ ZD021 58+6587M9 1<Cf021 ž W
* 0yZ 9 ;<O K 0£;0r= 9 ZpZhO<1 7 = +6587:9 1 - 04] 380 K 0 BO T ;0 B+Lq O0 5 C w$ 0 021 5 3(0 K 0 K 02= 5 02O<3\0 5YKM+ = + 3 5 0¥+ ]
O<=E0 W<* 0 3 9L5Q9 = 9[K 0yO 587MKM7 C 0 / 043(ZD0 5 ;|{ 7 ;021 587 A<043 K { + BK 0 5fq O 7 = 9 ZpZhO<1 7Mq O0 B+ 3\OB1 7 ;021 587 A + 1 54W
&
'&
&
&
k6ž[k
#
IMPLEMENTATION
UsingBWallet imp
REFINES
UsingBWallet
IMPORTS
BWallet, BT IO
OPERATIONS
main VAR balanceAmount, creditAmount, balanceFuture IN
balanceAmount
getBalance ;
INT WRITE (balanceAmount) ;
creditAmount := 100 ;
balanceFuture := balanceAmount + creditAmount ;
IF (creditAmount 0) (creditAmount MAX TRANSACTION AMOUNT)
(balanceFuture MAX BALANCE)
THEN
credit (creditAmount)
END ;
getBalance ;
balanceAmount
INT WRITE (balanceAmount)
END
END
§#¨‡©aª; lW « *,+ C '02/ = 7 AB= +6587M9 1 ;0 K { 0 T 02Z B K r0 ;BO  9 3 5 0EbˆZ 9 1<1 +L7 0
&
)(
# # k6ž
&
§#¨i©_ª; lW ®¤« 3 + <; O<= 587:9 1e;<0 K { +BK 0 5 BWallet
% ) $! # ! &% ) ƒ # ….( ( ˆ…  Š/ ŠG™ LŽ[˜•Œ ™
* T GK ^9 5 9 +L7 / K 5 9 7Mq ^9 5 K 5 9[7 9 587M9 +LKM7:5l/ 7M@U+ 5 K
/; 04c 7:5 {t 0 K 0r02Z=E3 02/ ; 0d7:5 ;<0 O 5~K`+¤3 @’04/0E3 bˆ7 Z AG= +61<581 7:9 1N0 ;<0 Oe02=C 9[3 K ;10r;<OO<0h^C89 O 3 5 0EbˆZ 3 9 0 1B1 02+LC 7 0 W 3 C~j 1<= 1<1 02CVC8O 1 02Cyz 0
….( ( † ‰\.Š 5Ž *_˜ ™’.Š * 0 3 9U¡ 0 5 Hg‡A - ; lW k 0 .5 ; lW m tS021 587 04] 3802Zp021 5 3 9 O @’0L/ tI= 9 Z 38021<;pO<1<0~Z + =(F 7 10 + cBC 5 3 +L7:5 0\0 5 C 9 1
7 Z GKv02/ ZD021 58+6587M9 1 380 3 02/ CQ021 58+ 1 5yK 0 ^9 3 5 0EbˆZ 9 1<1 +L7 0 0 / K 02= 5 3 9 1 7Mq O0D0 5 O<1<0pZ + =(F 7 10 + cBC 5 3 +L7:5 00 5 C 9 1
&
$
&
&
)(
k6ž
(
#
/**** class BWallet.java * generated on 20 févr. 2003 19 :06 :28 ****/
package wallet ;
class BWallet static final int MAX BALANCE = 10000 ;
static final int MAX TRANSACTION AMOUNT = 100 ;
static final int DEFAULT BALANCE = 0 ;
static int balance ;
static void INITIALISATION() balance = 0 ;
public static void setBalance ( int balanceInit) balance = balanceInit ;
public static void debit ( int debitAmount) balance = balance - debitAmount ;
public static void credit (int creditAmount) balance = balance + creditAmount ;
public static int getBalance () int amount = 0 ;
amount = balance ;
return amount ;
§#¨‡©aª; lW ­h« š 9 ;<0 +2@6+D-}02/ 1 04/ 3 0 / ^9 O3 K {0 T 02Z BK 0r;<O ^9 3 5 0EbˆZ 9 1<1 +L7 0Dz<= 9 1 5 021IOP;<O ^9 3 5 0EbˆZ 9 1B1 +L7 0
7 Z GKv02/ ZD021 58+6587M9 1 043(ZD0 5Q58+ 1 5 ;|{ O 587`KM7 CQ043 K 0 ^9 3 5 0EbˆZ 9 1B1 +L7 0 0 / K 02= 5 3 9 1 7`q O0 W,o~9 O<Cd10 3 02/ C8021 5Q9 1<C 7 = 7
q O0 KM+ Z + =(F 7 10 + cBC 5 3 +L7:5 0 BWallet q O 7 043(ZD0 5 ;0 @L9[7 3 K 02C 3 02/ = 9 1<; 7:587:9 1<Cpg K { 7 Z BK¦02/ ZD021 58+6587:9 1 10
^9 O3 @6+LK O043 K 02Cf= 9 1<C 58+ 1 5 02C m 0 5\K { 7 Z GKv02/ ZD021 58+6587M9 1 q O 7
j +L587 7MC K`+7 1 5\+ B+ 3 +  5 3(0 q O0 KM+ = KM+ OBCQ0 VALUES
O CQ0 BWallet g UsingBWallet impm W
.… ( ( )( ‰\Ž"6?Ž^‘a— l[˜•Œ,™HŠB™ 7}Ž ,^Ž
*,+›-,/ / +6587:9 9 +2@6+ - 380 + O 58+ 1 5 ;0N= KM+ C8C802C q O0N;|{ 7 Z BK¦02/ ZD021 58+6587:9 1<C W š 02C
K= M+ C8C802C + 021B04+ 3 3 587 021<1 102;<1 O–5|5Q=9 O ;5 020 C + O B+ 02= 16+6-021<0 ;wallet
3 02/ CQ021 58+ 1 5,K 0 3 9U¡ 0 5 W 0 1<0 7 Z BK¦02/ ZD021 58+6587:9 1
8
3
0
02 1 9U¡ +254@6W + K ;0 KM+ + Z + + =(F 7 1KM+0>;'0¥/ c 7 + CQ0 +658BT7:9 IO q g‡A -; lW7 ®[m 58O + 587MK`7 C 04/ 0¥02^C 5 9 3 5 + ¡Q9 O 9 5I04/ 0 +L+ 7 O 5Q9 / K Z +65 587`9 q O7M02q Zp021 + 5+ O 7
K { 3<9 <580 7 Z 7 C +6581¬7:{9 R 1s02C ; 5Y+ 1<C BKM7Mq C O 04/ 020¤= z ABK = 0 ^9 3 1 5 0E bˆZ 9 O|1<{ 1 O<+L17 0 0V021<C C 5 380 1B =E3 0¤02/ C8;B02O 1 5l0 / G3 + 0E3~bˆZ O<10£1<1 = KM+ 0C8C80r0 02; = 9 1 3 5Y1 K 02CfO<=(0 F + Z OBC8 C C
&
%
&
6k ž[®
0 5/ K 02C9[7 Z 0 / 5q F 9 ;02C¥KMK C 9 1 q 5 7'C 58@S+67 587Mq O+ 02C.58g‡7MA KM7 -; lW ­ 0 5 KM+; lW m W 9 š 0 55Q5 K 0.C 5 3 +6/ 5l5 0 / -[9 7 0P02C 5 5 Z 9[7 + 1<C -L9 O3(Z + 9 1<;<5 0>B02+ 1
Z 58+60258Z 7Mq 3(0 W O<0N=E0 0 O CQ0 ] O C8043¤OB10>= C8CQ0J; 1 02CpZ 0 F ;02C0 =(F Z C10JC 1 C
C O02C
% ƒ ¢ƒ ,+ .- .… ( ˆ… ‰ "MŽ^‹a‹a“•Š<
 7,Ž ,:Ž 9Ž^?‘ ‘a— ‹fŒ¬LLŠ 1 5Œ,™_™’Ž|˜ˆŠ ŠB “ˆ.Š lL[Œ ™a˜ x—’Š
š 0 5Q5 0 + GK 0 5 02C 5 O<10 + BKM7 = +6587:9 1 +2@6+ š + 3(; s= KM+ C(C 7Mq O0J; 0 / @ 0 K:<9 #04/ 0.; + 1<C ; k W O0 K~q O0
9[7:5dK 9
/ @ K:<9 5 587MKM7 / + K - ; lW [m 9 7 + 5Q9 +6587Mq - ; lW œ m
9C 1e02C 5~0 9 c 3 KM7:-}=E020y/ C8;C8OB0 Cr ;38020p1<; ;0 380V0 021J= 9 02Z ZD<0251 0 K O 02C~C #C 0p02/ = Z 7 AB= 1l7:5lO02/ 0CY;g‡0 A KM+ +2@6+ š + OŸ3(;>CQ02; Z 02/ =Eb 3 7MO5 0y02Z 1 ; lW k OW0J;6W g‡A 1 02O 5
W 0 1<0_j 9[7 C K { + GK 0 5¬7 1<C 58+LK`Kv04/ 0Yg K {021 @l7 3 9 1<102ZD021 5
3802Z 5 + 3 q O04+ 3 q O0Kv/ Wallet
F +04/ 3 7:5 0a;<0 KM58+ 7 = KM+ C(CQ0 @lApplet
š
K
2
+
6
@
+
7
9
m tL=E0 KMK 0Ebˆ= 7 02C 5
CQRS/ K C 02] 58ZD7:9 0 / 0 0 7 0 9[7M5\5 +L7:53v; ~K OB1 9 Zp0 + 1 3 1<BZD+ 021 K`+5’+ 9 0 58KM7:K 90 KM+ j 9 1<= 587M9 1 install
š
W
Q
5
5
9
587:9 1J380 = 9[7:5
C 0 02= G+Lq 1B1 045 0 O !w C\$ ; 0 m 3 @L9 043 / 02C~= Z7 Z K 1<5;02C 7 3 +LK j+ 1<= K q 1 process
0
d
0
j
<
1
=
;7 025 C / 5O0 CP^9 g / '/021 K R 02C¥7 ;09 O +6C 587:09 043(q Z 7 1 5 ; 9 1<C @ 0 54W O 0 K CQK 0 5K 3 9<9 'O /@ 0 +658KM7:+ 9 = + 3 5 0N0 / 5 7M; 5 9[7M5p5'K 7 02C 7
1 043 3 0 043 O3’3 02=4O 043(043 02C 1<j 3(Z 1<C O C2{R 3 O 021 02O 0 { 043 1¥;0Y=E3 02; 02C =
; 9 1<1 04/ 0 W
.… ( † ‰\Š„‹_[Œ S.Š 6—P‘’Š +
‘ Š , ŠB“ˆŒ¬‹_‹fŠ 5ŠB™, 7}Ž ,^:Ž 9Ž^?‘ UŠ 5 ˜ 1¦Ž|—’6:Œ 5Ž[˜ x—_Š
G+ 587 9
K T GK ; lW / 7:5 + KMK 5 9 5~@L9[7 q KM+ '/ 7 +6587:9
9= Z BK 0] 5 0V3 ;03V5;<0 ONKMK 02= C ;+ 0DB;KM07 = +6{580 7:9 021BZ C’CQ0403 +L7:5 B+ 023 58=E7 3 =4O KMZ7 04] 38021lZDO020 1 502ZD= 9 02Z 1 Gt K 0 T 1 0¤+ ] 02O02/ =E3 7 3(0~3 021 O<H0 g 5 3 +LC 7:5 0202=ZDAG02=1 5 C';1 0
c+2@ + Ch1 K 7:@ Tl0 +5lO / 7 +2@ 02=¥m W ;$ 02C + 9<5#04/ 3 +6B58+ 7:9 51<CD;<0- ; 02+ / = +LKM+6- B0e+ ;580s7 c 7:5 C4t 9 KM+ 1<=E02ZD5#02K`1 7v/5 ;¬+¤{0 KMT+d=E5 0 <587M9 1|9[K:t,9L= -[9 7 Zp+ Zh5O<1 7 KM= K +658q7:9 1 7
0202O = 50 / {0@L9[K O043 043u02O<3 +3 B7 ;<02{ ZDO 021 38540 W š {302C 5 O<^190 O3 3 q O 1<9[;7 0 1 9 O<3 C 0u3 ;<<9 ^Os9 = C 9 ;1<0VCf02;C 0y3 0 / 0402/ 0p=E3 ] 7 380 K { +02=(FBB1 KM7 = +6587M9 0 1 = 3 02O/ = 0 02/ ;0 021 5O 0
021 KM« + ; * 02/ = 9 O Bq + 1 75 021>5r;KM+s02O K:T9L-[= 7MKMq + C8C802C£z K + GKM7 +6587:9
{ O<9 1@’0 / O 02C -; lWOk 0DZ¥502 ; ZDl0W m ;W'0 * { 5 + = 5 1 +2@6+ 0 5rq 5 O &7 ^9 -}O/383 + / 0 5 380pK C '9 02/ = 7 A 04/ 0p+2@60 + 5
9= 3 3(38O 02C 04^0N9 1<02; 1 + 1 5 Og‡A 587`KM7 C + c K 0'0 C(O3 +2@6+ š + 0 3(; 3 g‡A ;B- O<; = l02W ­[Om 3 ; 0 O 7 C KM04+ 3(ZDC '0 02/ = 7 AB;0= +6587M029 1 1 0438; 04l3 W k 0>W š = 0 ;020 1<; + 1 5
K / @ K:<9 5 @ + 5 K -[K / 7 5I/ B+ K / @ K:<9 5 +2@6+ š +
« 0Y02; 1 0 587 0 043Y= 9 O023ZD5 t021 ;0 3 3802C 02= 043 02C_340] 02C 02; = 0402C 3 0Y; 0 0 02ZD021 3(;Jz
« 58+ c K 0 + O + ] OB10r; 7 ZD021BC 7:9 1|t
« B+ C~;0y380 5Q9 O3YZhO K:587BK 02C';0 B+ 3 + Z¥0] 5 3802C 9 O<3 0 / @l7:5 043 K 02C\=E3 0 / +6587M9 1<CV;Rl1 + Z 7Mq O02Cf;|{ 9 c ¡ 0 5 C
587MKM7 C 02/ C ^9 O3 5 3 + ;<O 7 380 K 02C\3 02/ C8O K:58+65 CYZdO KM587 BK 02C';|{ <9 '04/ 3 +6587M9 1 W
O
« * { + O 5 380Lt 02/ =E3 7:5 0YZ + 1lO0 KMK 02ZD021 5 t q O 7 j +L7:5aK { 7 1 5 0438j + =E0 +2@ 02= K {0 Tl5l04/ 3 7 02O32t K`+ = KM+ C8CQ0 t[0 5aq O 7
02K`+6C 585V7:9 K 0y380 <0 5 ;9L05Q9 KM+9[K5 02=(F<1 9[KM9 9L-[7 0 +27@6+ +6š 587:+ 9 3(; ;B9 OJ5dZ K 9 Zp029 1 54W š 0 5d5Q5 @l0 7 B7 + K 3 587 0 04KM3(+ ZD0 - 5Q5 3 +K ; {02l1BW = + + C8OSb
= 0;0= 5 ZpZdOB1 = 1 / ; 15 0KM= + ;0/ 5 02C 9 mC W c 0DC8O<B3+ K A O< 380 9 ; 1<C
K 02CdZ 1Ÿ0 / 5 ;<F O 9 ;023 C process
/; 0 @ 0 KM<9 02ZD021 5 CQ02Z 7 b + O 5Q9 0 Z credit
+6587Mq O0¤= + 3 gi; 7M04K cBj O+ O<;;3 0 +p@’04/ 3 Z 7 A<0 043£F Z ;<+ 0 1lO0 KMK 1 02ZD021 3 5Y0q ;O0 0 K 023 CY=Ej 902C(1<C8= O<58Cy7M9 ;<1<0C
#02/ = 7 A 04/ 02C~021CQ043 9 1 5 c 7 021 + 0 K¦04/ 02C + 3402] C K 0 5 02C 5 ;0 K 02O3 3 02/ = 9 1<; 7:587:9 1 g‡A - ; lW œ m W
C
K + 5 9L5 7 7 q KM+ 9 q 7¬-}/ K 9 +n@U+ 9[7:5 / 5 7 7,K ^9 5 9 +L7
/0 K 02j = 5 O 3 9 1 1 7`q O040P3 ;= 0 @ 3 O+ 0 0 5 380 047 1<3(CC 58+ 1<1<1= 0 7¦0 / O BK O<C 027 1|0204O] 383(0 Chj 0h9[7 = C ;<+2@60 + 1 5 ;0J; C 9 O<;F 0+L7:504043(3sZ O<1<1040 3uqC O0 0 K = 9 1 3 q O0E0bˆZ <9 B1<5817 Z 7 0 b
C +6587:9 1 W_wx+ 3; 04/ j + O 5 0 5 ^9 O3 BK O<CD;0>C 02/ =4O<3 7:5I0L/ t K 0 -,02/ 1 04/ 3 +65 02O3>;0N= 9 ;0>021 - 021B;380>;<O–= 9 ;0 +2@6+
043(ZD0 5Q58+ 1 5~K { 7 1BC 58+ 1<= 7M+6587:9 1¥ZhO K:587 GK 0 W
&
&
&
&
&
!
&
&
&
)(
&
&
&
&
!"$#% &('*)+$,'- ".&/!01*2&12,0-.
k6ž[­
#
/*** class UsingBWallet.java * generated on 20 févr. 2003 19 :06 :28 ****/
package wallet ;
class UsingBWallet static void INITIALISATION() BWallet.INITIALISATION();
BT IO.INITIALISATION();
public static void main ( String Args[]) INITIALISATION();
int balanceAmount ;
int creditAmount ;
int balanceFuture ;
balanceAmount = BWallet.getBalance();
BT IO.writeInteger(balanceAmount);
creditAmount = 100 ;
balanceFuture = balanceAmount + creditAmount ;
if (creditAmount = 0
&& creditAmount = BWallet.MAX TRANSACTION AMOUNT
&& balanceFuture = BWallet.MAX BALANCE) BWallet.credit(creditAmount);
balanceAmount = BWallet.getBalance();
BT IO.writeInteger(balanceAmount);
§#¨‡©aª*; lW « š 9 ;0. +2@6+h-,02/ 1 04/ 3 0 / 9 O<3 K {0 T 02Z BK 0Y;<O 9 3 5 0EbˆZ 9 1<1 +L7 0hz 9[7 1 5 ;|{021 5 3 04/ 0£;<Os= 9 ;0 +2@6+
&
k6ž package wallet ;
import javacard.framework.*;
public class Wallet extends Applet ...
final static byte WALLET = 0xAA ;
// codes of INS byte in the command APDU header
final static byte GET = 0x01 ;
final static byte CREDIT = 0x02 ;
final static byte DEBIT = 0x03 ;
final static short MAX BALANCE = 10000 ;
final static short MAX TRANSACTION AMOUNT = 100 ;
private short balance ;
public Wallet() balance = 0 ; register() ; public static void install( APDU apdu ) new Wallet() ; public void process( APDU apdu ) byte[] buffer = apdu.getBuffer();
if ( buffer[ISO.OFFSET CLA] != WALLET )
ISOException.throwIt(ISO.SW CLA NOT SUPPORTED) ;
switch (buffer[ ISO.OFFSET INS]) case GET : getBalance(buffer); break ;
case CREDIT : credit(buffer); break ;
case DEBIT : debit(buffer); break ;
default : ISOException.throwIt(ISO.SW INS NOT SUPPORTED) ;
...
void credit( Byte[] buffer) byte byteRead = (byte) apdu.setIncomingAndReceive();
if (byteRead != 1) ISOException. throwIt( ISO.SW WRONG LENGTH) ;
short creditAmount = (buffer[ISO.OFFSET CDATA]
8)
buffer[ISO.OFFSET CDATA+1] ;
// process data
if ((creditAmount
MAX TRANSACTION AMOUNT) (creditAmount
0 ))
ISOException.throwIt (INVALID TRANSACTION AMOUNT) ;
// check the new balance
if ((balance - creditAmount)
MAX BALANCE)
ISOException.throwIt(EXCEED MAXIMUM BALANCE) ;
balance = balance - creditAmount ;
§#¨‡©aª; lW h« &
Mq š "! # $% &
6ž
#
package wallet ;
import javacard.framework.*;
public class Wallet extends Applet ...
BWallet bw ;
public Wallet() bw = new BWallet() ; register() ; public static void install( APDU apdu ) new Wallet() ; public void process( APDU apdu ) ...
void credit(Byte[] buffer) ...
bw.credit(creditAmount);
§#¨‡©aª&; œ « &
š #! ! Wallet
! " #
" %
$'&(! ) *+! " ,.- /0
! 1
2 32
!5 4 76
98 # ;: <: >
= @?BA DC &
! ! < % !FE " ! ! $ !HG I % . KJ LE " $ NM POQ$ ! "! SR KT
VU 6W YX I 3M ;[Z]\V^& I `_ J " ! < " "a U d&^# ! ! Ccb I P O$Q ! d^ "! ! eCg
f $ &
! i
h "&3 MFko j X lbmhnj \ 3M &
U
s
r
&
u
t
!
!
$
T
$
%
T
pq % $xt b t $ # y &^ zwC $v #! ! C $ % 3M $ & % " { R ! U $ |(r ~}V € pq $^& C"2 $ $ $ ! NM $ aU ! C <
$ ! C C r
p^q $ % < a E"
$! aU #x$ t " { R ! ! I !
! % I ‚U  O
! $# ! „ ! † … c ƒav M ! KE ! C "
! C $ j #! eC ! #! j #! … ^ "dE ! I ! … ! I % ‚U $ q G I % j "! ‡o
p $$ a U xt $R E T ! % T
p $ < " %R $ ˆ C p " $$ ‡O eR % & ! & < F R @E " ! j "! Kˆ $ ! M ! process install ! &^ ! $& ! C ! eC v]‰
; v
"! #! $%&'(&') +,* -
$./&'012'! $ 2 43.5 6 %+ 7 #98:7<;-=?>@
"! ! … EaE R KU1A CB. ED ! U ! !HG $! 2 R ! b <
% % ! C $ % ! C ." j "! f ; v ; yE$! ! C t ! "! ; vKv & !‚E … ! & zC t "‚U $ ! "! R ! C EaE R KUFA T !
EaE FjG ! ! t EaE R ! & ! " " d^& q ! ! ^ ^ !‚G sr utd^ $ T t !HG ! $$ ^ " ! M ! q G $ EaE VjG # &" ! ^& C ^ C … ! ! $! ! % & ! $xt ! NM $ ! U … ^ "! & "
T U ^ & ! < Yo aU " T % &
jG ˆ xt " ; T $ ; zT
Zc‰ E
2 ! _ ˆ J & I v ‰I H I % f ! # K
J ! $ vKvIJ R I $ # CL vKvIJ ^ E
2 L DC $! "! c‰NM C I U ! C t ! A ! < … ^ % & ‚U ! dU j t $ & "! iE # ! ! G ! # t o
p jG S P$O ! ! ! $< % ! 4 D ! R Q Q s r I T {T
p jG $xt VE pb I " w^& C !$& ! eC ! W O X h $ ! \ E " ! ! $ ! ! " j # & FT & T
" eC t ^& !ˆ V
U XSˆ "‚U d^ ! $ N\ D t KT $ !WT & %& ! R & ! NM $ ! U "$ $
% & j " ! ! " ! ! % &
%! t R ! zC $ I W YX W O & u R .C t $ !{ˆ . ! ‚U S q ! BPQ[Z eC "! W \X W O ! j D r
! Bh "!]Q A
$ X M W " " D ‚E \ ?^_^_^ `*'ba ) '*#.' ',c`
?^_^_^ 2ceEfhgie/,cj !'&.gie/ce* &('*)+?k$lm bkl$m noqp'r 9 s1t
u/ bfigKv &* "$#Ng awv &('*) ce* v , 9x 02cgij '*"ye/ ?z|{m-m_}p
d
2)
bg
#
%f
)
$
+
{ ! < ,! <w 0! ;<;
!%
& 1 2P332 @;_>C8$;-=?>@
N A A wW ; v T J ; T ‰ Z T ‰Kƒ ! ! eC aU M ! ! C aU ~U R ! … ! C dE % &V^& ! ! < % ! r ! 3M 3M $! " ~O % E ‚E aU KT & eC a R R ! & $! ‚U NA A wW & K UFA I & o
p ! ! < R ! ! ! C r % I %& ! U % $! & ! x t $ ! ^ ! NM NM
p j ! I % $! ! U t "2 ! U N M
F NT M
& ! # ! EaE p j K E XY S $I ! % T Q B T f ‚ t U T \ 7E ^& & $
‚%U ! 7 r R %M $ # j C ! < d ^& ^& C G 3 M H t ! EaE j I % & & ! U ! " ! U t
N A t " $ Fo
p _ D z b Q o_ "o ! cƒ ; ! … I % j " $ R p (U X  OQ$ R B \ U ! % & ! p ! " $ T ^& ! U $ ! . ! T ! % &
! $ ! ! ! 5X I ‚ U !
\ p _ " y D
r$
? Z d ^& U ! & $ % & t ! C E ! … sr R % ! C ! " T % & % Jp o „ % ! C V J IH J ! ! 3 M? O $ E
^ C t … 3 M 'Q E I % $# bfigKv &* "$#Ng awv &('*) ce* v , 9x 02cgij '*"ye/ m oq}}r
?^_^_^_awf !,1 g) b`$ v , br e(!( 1e/,!'#.#ye(!0 g&/' f!1 '*"yf !0
u/ ?^_^_^_awf !,1 g ) b$` v , br e(!( 1e/,!'#.#ye(!0 g&/' f!1 '*"yf !0
?^_^_^ (
e &(!( !'2'*#% 2&* " $ x ) bf ! !ce() !02 ,' j% )%f
d
"!
;J
;M
2P3.5
2 )
%$
"!$#?7<;&%('> *) >.) ) 8@
„ ! < ! ! C eC t " ! !$aE" % f Q X ;P\ T ! C "! EaE R KU1A n^ jG X "
\ $& ! ! ! ! xt NA b ! ! ! † … I % I " $ ! < % & ! $ R M ! C r !
NA "!# $!%'&( *3 )+#($),## 5-#+
I X … E [; ZP; \ !$ ! xt E"! V^ & eC r XSJ W r 3MbO \ B‡U1A ‚U" 7r X B \ …NM ! C "NA & ! C aU"!
|7
;[Z; p NM ! I wW
.0/21(3
B B $
D
r , r aE ! $ $ " … b & "!$ … 3 M ' Q …3M 'Q & r KU 7U aU " R eC $! ! B jwM K ^ " R I % 6wW B B D ! $ ! B 4
9
5687:9;!% <=>?@
W r(  jwM?O ! ! xt @o $ |r( 3M?O O % % eC r sr&
utd^& ! … $ ! ^ eC % r &
d^ "$ U%! W r( 3M?O ! " … $ |r( aE j ! " E ! ! … 3M 'Q ! ! r NM?O % j & t " … $ ! r ! &
& r BA ! ! % ut $ T q G T |r( aE ! t &
R `X A TCwTC T \ ED X A \‡X I W aU \ c‰ J ˆ !$
%N M 3 M " R &
t ; vKv FU # U" ;[Z
1 "
$ ut ! C "$aU r ! R D "! 0..15
r ! ! < X … E ;P\ T var … & var
9
56
),#+
56
4
5
&($)+#
5
& t ! R # ! eC t ! r ! &
R 3M $ ! $ ! 3M $ aU " ^ NM $ <# ! & t " … b VE % ! ! t M ! C r ! & o
p !! e C " r … 7
r$& u!t ^&| r( a E &
d^& KT
q p $ y A ! &
! R M j &
&
" Fo
p 3M $U &I r ! T I % T
p a U # R T
p "$a U a U "$ R T
p < # Bo 7 E % & j p
O % | r( R %$ N M &; ^ r O !# < " ! % & ! | r( X I ; Z; ;P\ ˆ "& " … ! |r( ! &
r % "$a U ! † … U VAR ... IN ...
& t % %! % " … M ! | r(a E END
!‚ G & & ! 3 M P OQ ! " T % & 3^& C E r ! $ ! & a U " J t K T G " M ! r a E ! < " & $ N M $ a U " ! 3 M P OQ ! " T % & q! & t " I T !"& #! PQ D T ! C t" % | r( a E 83 )?65
5
jwM K ^& …NM I PQ & & U & ! ! ! zC t ! < # $ & t " r aE ! $ T t " X 3M $ T T SEES T IMPORTS T \ aU "$ X & # T & $! \ ! 3M $ X … E ;[Z \ ! U ! E" ! … 3M 'Q E W r jwMbO ! # ! … E ;[Z &
9;!?8#
5
" % & !% r aE I "
! eC "! $ EaE R KUFA ! I ! ! $! & r PB‡U1A X jG \ $ I r aE !"& "! PQ & ! † … ! … E ;[Z J 5 (9
"5"!
3M ! U PQ X … E ;[Z T ;[Z J $;[Z M \ " ! % ! B‡U1A dU" 7r $ ^ Substitution T Parallel X … E8;[Z Z]\ Precondition X … E
;[Z \ ;
2 "Bo~o t " ; v ! C r C &
j &Bo~o Q 3M $ †… % & b % &
j & t olo
U j" t j U " 7J " U " q $
U " 9B. " J " q B. " I ! j & q t " q &
q t " B # X j t D
)
%$
;[Z p ˆ U ! ;E" $ 'Q .0/13
W r( lo or †b ! &
… W r yD "$E
W r W r W r qJ W r J ! j " W
W (r(r †ybD ! #$&
E … o~ Fo o~o r W yr D †"b $! E &
… X r b ˆ yq D „ "W $bmhE b q X W r †b ! &
… W (r olo Wr X r W W r( o~o W r( † b E W X r †b & E W (r qJ Bolo W (r J D W r X r J D W (r J ! j " W o~o (r j W "$ J W "! r r X r j J ! W
W W W
W
;[Z J p W "! $ ! r aE 'Q .0/13
substitution { R ! Parallel T Sequencing
M " `X … E ;[Z \ j ! "$ ! E" $ ‚E ! Precondition
! † … $
! U $ ‡o
D U o~o J # $ D ^ $E J !
$ B % ! C 7U ! sr ut R 'Q ^& ! R NM K^ …N M P Q #! 'Q $! ! $ 'Q $ X PQ \ T C % & ^ G $ r " I {
3 M ! "! B R U ! !HG ! C t " ! ! a E" % f Q ! #! $ EaE R KUFA ! |r( jG q G T F T ! C y A M ! ! C t# ! "! $ ! NM K^ ! B D T e C "$! K T ! e C < d ^ ! C t $ ! # $ X classe Start T " !& R i E" ! … E ;[Z \ x t I $ ! e C 7 U X … E
;H
< $.$
3M o~o
Q NM $ j t ! j "$& b ! f D D j j & U " j & J < j "$aU U " #$aU b "$& "
b $ B. " X Q 3 M $ D U $ o~o J " $ D ^ $ E J !$
J " $$ o~o J " $$ D U D U X J " $
D ^ E olo
D ^ E
D U D U X D ^ $
J !
$y olo J !
$ ;J ! 4 D U J !
$
Q
E
;[Z M p f ! ;E" ! … 3M 'Q .0/13
abstract class Substitution extends BObject
class Parallel extends Substitution Substitution[] substitutions;
public Parallel() public void setFields (BObject[] values) substitutions = new Substitution[values.length];
values.length; i += 1 ) for (int i = 0 ; i
substitutions[i] = ((Substitution) values[i]) ;
;[Z Z p q t ! ! B !& xt U ;[Z Z [; Z \ 2P 3 >8 ;_= #
ˆ "aE" M ! & & $ NA A wW ‡^& !
r sr utd^ ^& " … ! |r( " … ! r " ! 7U ! eC r sr utd^ ! C U ! …NM G u O $ ! |r( aE "! U ! …3M 'Q ! 7^ $ ! r I PQ " ! U‚U M~R ^ ! ! $ ! C …3M 'Q 7U ! C KU1A &
& ! … 3M I % A wW & R ! " E $ eC ! $A q !$ ! t ! ! X … E[; Z H \ ^& % Fo
.0/13
p
" sr&
utd^& KT
(
;ƒ
2 )
%$
class Precondition extends Substitution Predicate precondition ;
Substitution substitution;
public Precondition() public void setFields (BObject[] values) precondition = (Predicate) values[0] ;
substitution = (Substitution) values[1] ;
.0/13
;[Z p t ! ! B ! xt U $
p zC ! $! ! ;R U ! C O … 3 M s r
U % & T M d^ ! %
T
p zC ! " … ! |r( eC T 3M aE ! " T
p "!
!$aE" % f Q X !$aE" ! N\ T
p #! SR ! C "NA $ W Q M r( t p " !& xt $ 3M $ T X SEES, IMPORTS
\T
p
"! 5 )+;
5
af Q ! ! " +X … E ;[Z ƒ \ D U ! "2
! NM ! $ E " ! f Q ^ < % &! C ^& R E M ! KEd^ R U FT " ! C t $ $! ! 3M
X P; \ b % $$% ! C t " $ !$aE" ! &"$& B j b %! …3M ' Q X …NM $ 3M $ \ "! " i^ t aU $ eC dU 7E f Q $ v ;[Z M j ! …3M PQ b X ' Q Q q W ˆ LW b „ W q j „ _ q h B Q LW \ & & $ I R ! f Q ! NA 7E f Q "< R KE „ ! … 3M ! $ ! ! !$aE" .C C e R o
7E f Q ! " ! & ! C ! % & ! ! $ ^& $ !$aE" % ! T ! C $ " $% & $ $ $ "! & ! $ $ & ! $ $
R ! & & NM Ht ! C 3E f Q A
… ‚U ! C " $ KT
! ! < ! " $ & X f Q v \ " E $ ! &"$& B j q & KT dM % &^ ^ $ & o
p ^7E!f ‚G Q R & ! R $$" ! &Cgf Q . T r " ! ! "‚U < " $ p aC ^& ! ! r ! !$aE" % T
?^_^_^
c`
%f '2,c`
2, '*"$)
;‰
< $.$
;[Z H p E$ $A q !$
.0/13
;[Z ƒ p 3M ! !HG & p "`E ! #$ PB j C eR .0/21(3
DC KU1A I ! t R … E ! eC " ! C !$& R ! O % . C $ " F T I "^ ! C $ "$ xt
v
2 )
%$
t % … $ ! eC t $ ! … E \
U FX DIPLOMES ! O ETUDIANTS
#$aU X \
!$& !SETS
VARIABLES Inscrits
& r ! eC "$& X \
I InscritsAuxExamens
$$ eC U $ ! !$& ! INVARIANT
! O % `o aC Inscrits
! U ! 2 # % & ! C !$& ! xt R % ! O % U $ ! InscritsAuxExamens
D
b $ $% !$& C $ " Inscrits
C $& " ! &# R eC $
$ " ,
X \ <ˆ e C U $ ! < " INITIALISATION
$ < " ! " b OPERATIONS
" ^ ! R z C $ "
! C ^
!$& ! C K U ! O % j < " R !
$
!y
O " … j !
% ! C "d U r x t " {
R ! # … V ^ e C ! R $ "$ C ! A R $ " < " ! $ Ea E & t" ! U E " %
T PRE j %< # $$ $ % ! C t # % ^ I & < # ˆ :=,
" U & O # … ^ e C $& " " R e C t ! e C < # ! z C < " % ! "y A 2 $ (etudiant diplome) R e C U Inscrits ( ! … TeC af Q !$ &
`^ ! $ iR O … ^ % & eC ! ! 7E f Q R "# $ …3M PQ b ^ ! R $ f Q ! &" . O R $ ! C $% & af Q " $ NM $ aU " % ! C KU !$aE# %
! ! … E ;[Z ‰ D !$a E" % "
! R E !< "PO QFo
p 3M U a U " & ETUDIANTS
p " !& % r ! C # %ETUDIANT
& ! zC U , Elt
& &
3 M D C t $ ! e C $ ! O ! " !& r ! C R ! X u O \D^ ! eC U X \ % #$a U %! | r( U ! & ! $ ETUDIANTS
% ! u O ! O !& r ! C # % p I !$ & $ u O @ b # R " ! &
Elt Inscrits
3 M Elt Inscrits
Inscrits
E % & a E E R Elt ETUDIANTS R
Elt DIPLOMES
J $! ^& p ^$ % O % I U ! $ InscritsAuxExamens
! ! T
! InscritsAuxExamens
T &"$& B j † … subset & ! x t Inscrits
o
q I I $
F T ! U "! 2 I L ^
"&
$ , %! x Inscrits
t
! [ r&
p $ O % # % &
p I \
& " $ 7^& I ! % & ! z C U ! ! ( X ETUDIANTS
"!
!
!
!
:%
;
;[Z ‰ p ˆ $aE" ! ! ;E $ ! " &(((+@ 7 9
.0/21(3
4
7 "! EaE R KUFA B % zC af Q …NM 'Q & eC 7U aU "$ ‡E R eC $! ! B …3M jG VE " 3M &@^ eC ! † … $ & Fo
p $$ r ! ! C & ! NA T X U‚U M~R ^ KT
p $ r ! U R | p r ! % ! ! …NM XKjG $& ! C $& ! C & !
N A 3M $ "$ ^ % & !
N A ! z C $ & "! zC t D C t KT "! $ I " "P OQ$ ! "$ " U‚ U $ M R ^& D $ t
KU SR % ! % & ! | r X I ; Z; ;P\ 3 M " ! $ ! 3M r ! U ! e C int short T e C K T
N M .
^ C I a U " {
R | r X U" MININT MAXINT\ e C K U &
! " ^ $ C % " 2P3
>@"!b8 -=?>@
ˆ 3M # & I % A$ W q ! I $ ! C r sr utd^ KT &
d^ ! " … ! |r aE E ! ! …NM 'Q X % " \ b " t& aU B " K ^ $ & U" 3M $ '"$ (xt ! I % ^& o
2 )
%$
"! EaE %R KUFA T
t" ! !$aE" % f Q p
$% & ! ! C t# ! ! aE" % ! ! &"$& B j $% & 3 M ! C "! … „ ! ! $ ! C ! e C af Q ! C $ I $ ! "! #$ CB j r y A ! %xt t " ! C !$ E" nˆ C I % ! C zC J " nJ " IH % &
Y
R x t ! $ ! bkhnj T ! ! 3MbO $ E ^& % …N M PQ E I % p
"!
?^_^_^ (e &(!( !'2'*#% 2&* "
/ $
x
)
$#
bf ! !ce()
j
%f
!02 ,' % )
<w/0! ,! ( '
2 332 @;_>C8$;-=?>@
ˆ M !"#$ C aE%&('")*+ !",-.#+/!&0%-#&,1'HG(+2 !,3 ,(',2 )4/5 M ,6' 2 … &,('
( 7,8/#'9( M ,R :5;9<;=+' C +2 !;'>3?@:+' C +2 !;'960%5'+2 A62 ,!<;4+/5! I 0%;,8,#;!&,;95
I ,;xBt 70%#&0!,"'C+&5+;#/!0%D>~(„ 0%;E##&0%F.#dA^ ;9+F#&,F0%G 7‚U ;9!&0%F'9C90%F 5H8I;Jt 5;9"
!0NA +6>xˆ ;9 !,)C +R ! /!!&:90%;< At 5!0%#&,'aE 5)C)*, f QK?L+0%G 7G ,B j ?
;M(';N'9,;Ot ,R )* /!!N90%;:#M#&0%6 t $0% +F#&NA,2 !;#&!/F'9P#= 5';!0%Q'; 50NAR+:,
;9" #+/!&0%S <t ,2 +;9!aU #&>
2
3.5
7 T= B UT:7 ~: ˆS+ J ,!&0% T 90%;=##&0%C'+2 !M##&+V#&,4'‚G(+2 !,3 ,S †R E%#&,V'9 E, !0%W';W+ M &+S'9,
M /7E,(' C ;X+/!! I 0%;9$0%!A,2 '3('9,;t I ,;xt-'9"+&5+;#M/!&0%S 50%#&0!,,>
Y Z =#, $),#
?U+/!! I 0%;9$0%! ,R '9',;xt I ,;xtF 5M0%#&0!,+>u„(0%;[,80%\ M 0%!3'99 !,'9!],N0%) #
E, !&0%='9, ^+2 0%" $0%;9_ (0%,G !+; ^3;9,)C,G]!;9#F+&5+;#M/!&0%*'9,<; 0%)*0KU#&,,>]ˆ C ; !
/!90%;9: 5& 0%1.#, ,)
`07!/!&0% Xa ,) ' C #M#;)CaE'9, I ,;t \<`#PsrA M !0%!/!&0%
'; 5!a E4;b50%; E> J G$+ T #, I ,x; tJ' C ;J+/5! I 0%;E 0%3 XR ;J !GF 0%;";J!0%; E ;
,!;& # C ; .! ;P8+q !+]> ˆ\90 !1)*0O' ,R #&1; I ,; !!;P!0%; E5);#&!,2 )*,3\; 5!a E
;-8+!6'9E# C ;9 5>
MAIN
CARREFOUR
aa.FEU
BASIC_IO
imports
sees
bb.FEU
\c >c p _ 5 M E'"' 2 `,'"'; !0NAR+'"+/!! I 0%;9
.0/13
dd J
dd M
$% |?1 % $
Y ),!(O Z Z &( 9" -
?U, †R E%#&,6'9FE, !&0% ^3;9"'0%&1!,$, +(#&"7rA ,R )*N 0%3(#&,!;&8I3 ,Fo
c/>(; I ,;X, );D'9" !0%M1#) $,!0%;E T 07EE+8+5 T
d >(; I ,;X 50%#&0!" `,;H80%&@ ^A; C ;F+(;9" ,;#&F#) $ *R # C +2 !/:#M#;) 2 T
1, +2 !/:'9 I 0%!&0%+1 0%;(#&, I ,x; t-';X+/!5 I 0%;9 ! ,3 R
J >(#057 ^A;9"#&"s rO ,R )* C , '
# C 05 EE+#d E%90!G T
; `,; +O 5E;X8+!(0%; CR # C 05 E"!D+( ,;#&,)*,3!D# C ;9 !E, ;X!0%; E>
M >(; I ,
4
2 3 "4 =s6
7<;_=?>@ C8 _>A; 8
ˆ 6 !0NA +#$ t9 " !0%M10%) $0%!G:' !M!‡o
p ##"I+,/; !!T I 0%;9 T
p #"0%) $0%!G 5+#.' C t<,2 +;9!&0%@>
?@p !0KE 5)4)*5M+(#A^ ;0%3 u0%O #&:#&6sOr ,R )*0%) #&+) $0! (#&60%) $0%!G CARREFOUR
^A;U#; ) ,O )*E)
`05 E'9,;xKt !,(';Q0%) $0%!3 Feu X … EQc >cP\7>D?U I ,;X, )N;U', !0%
#) $,!0%; E T 05E "+(8+!+>
568 ) -!%)
#,
Feu
?U:0%) $0%!3 X … VE c > d T c > J \.E +R !"# !5aE:'9,#) $,'9:# C +2 !/S+2 ,3FX off\ NR ##;) 2
X on\! M 3V^3;"'9Feu
,;xtS#M) $,1'; I ,;X 50%#&0!F9 $,;98,3'B+O 5E##;) +2 ,,X) ,O )*" ,) .+>
MACHINE Feu
SETS ETAT = on, off CONCRETE VARIABLES rr, oo, vv
INVARIANT
rr ETAT oo ETAT vv ETAT (rr = on (oo = off vv = off))
(oo = on (rr = off vv = off)) (vv = on (rr = off oo = off))
INITIALISATION rr, oo, vv := off, on, off
OPERATIONS
estRouge
estIlRouge BEGIN estRouge := bool (rr = on) END ;
estOrange
estIlOrange BEGIN estOrange := bool (oo = on) END ;
estIlVert BEGIN estVert := bool (vv = on) END ;
estVert
devientRouge BEGIN rr, oo, vv := on, off, off END ;
devientOrange BEGIN rr, oo, vv := off, on, off END ;
devientVert BEGIN rr, oo, vv := off, off, on END ;
END
\c > d p D ,2 + … +/!&0%XaU 7& E';-0%) $0%!3
.0/21(3
Feu
dd Z
F ! $
$']& , )
IMPLEMENTATION Feu imp
REFINES Feu
INITIALISATION rr := off ; oo := on ; vv := off
OPERATIONS
estRouge
estIlRouge BEGIN estRouge := bool (rr = on) END ;
estOrange
estIlOrange BEGIN estOrange := bool (oo = on) END ;
estVert
estIlVert BEGIN estVert := bool (vv = on) END ;
devientRouge BEGIN rr := on ; oo := off ; vv := off END ;
devientOrange BEGIN rr := off ; oo := on ; vv := off END ;
devientVert BEGIN rr := off ; oo := off ; vv := on END ;
END
\c > J p b ) #^,2 )C,G!/!&0%K';-0%) $0%!3
.0/13
4
568 ) -!%)
#,
Feu
CARREFOUR
?U0%
) `0%5G
X … E*c > +c > Z]\ E +R 5(#&,] M E,)*,3!_!)N;#&!,2 ]'910%;#,;95
'9, I ,;xtP! M 3 ^ACARREFOUR
;9#&,]',;xt I ,;xt*9'$ ,M ;98,3 $+5)*+ !;t8_ 2 M +;#&,_''! +_,4) ,O )*
,) 6!; I '6#&E+ /!!M+;#&+'9# C 05EN+#‚E%90!36#&077^3;E#&EsrO ,R )*P C , , +2 !/
'9 I 0%!&0%+,>
MACHINE CARREFOUR
SETS COUL= rouge, orange, vert ABSTRACT CONSTANTS suiv
PROPERTIES
suiv COUL COUL suiv(rouge) = vert
suiv(vert) = orange suiv(orange) = rouge
VARIABLES feu1, feu2
INVARIANT
feu1 COUL feu2 COUL ((feu1=orange feu2=orange) or
(feu1=rouge feu2 rouge) or (feu1 rouge feu2=rouge))
INITIALISATION feu1, feu2 := orange, orange
OPERATIONS
MiseEnService SELECT feu1 = orange feu2 = orange THEN feu1, feu2 := rouge, vert END ;
ChangerFeux
SELECT feu1 = vert feu2 = rouge THEN feu1 := orange
WHEN feu1 = rouge feu2 = vert THEN feu2 := orange
WHEN feu1 = rouge feu2 = orange THEN feu1, feu2 := vert, rouge
WHEN feu1 = orange feu2 = rouge THEN feu1, feu2 := rouge, vert
END
END
\c > M p D ,2 + … +/!&0%KaU! 5& "';-0%) $0%!3
.0/13
CARREFOUR
dd $% |?1 % $
IMPLEMENTATION CARREFOUR imp
REFINES CARREFOUR
SEES BASIC IO
IMPORTS aa.Feu, bb.Feu
INVARIANT
(aa.vv = on
(feu1 = vert) ) (aa.oo = on (feu1 = orange))
(aa.rr = on (feu1 = rouge)) (bb.vv = on (feu2 = vert))
(bb.oo = on (feu2 = orange)) (bb.rr = on (feu2 = rouge))
INITIALISATION aa.devientOrange ; bb.devientOrange
OPERATIONS
MiseEnService
VAR aaOrange, bbRouge IN
aaOrange
aa.estIlOrange ; bbOrange
bb.estIlOrange
IF aaOrange = TRUE bbOrange = TRUE THEN aa.devientRouge ; bb.devientVert END
END ;
ChangerFeux
VAR aaRouge, aaVert, aaOrange, bbRouge, bbVert, bbOrange IN
aa.estIlRouge ; aaVert
aa.estIlVert ;
aaRouge
aaOrange
aa.estIlOrange ; bbRouge bb.estIlRouge ;
bbVert
bb.estIlVert ; bbOrange
bb.estIlOrange ;
IF aaVert = TRUE bbRouge = TRUE THEN aa.devientOrange
ELSIF aaRouge = TRUE bbVert = TRUE THEN bb.devientOrange
ELSIF aaRouge = TRUE bbOrange = TRUE THEN aa.devientVert ; bb.devientRouge
ELSIF aaOrange = TRUE bbRouge = TRUE THEN aa.devientRouge ; bb.devientVert
END ;
aaRouge
aa.estIlRouge ;
IF aaRouge = TRUE THEN STRING WRITE (”feu 1 Rouge”) END ;
aa.estIlVert ;
aaVert
IF aaVert = TRUE THEN STRING WRITE (”feu 1 Vert”) END ;
aaOrange
aa.estIlOrange ;
IF aaOrange = TRUE THEN STRING WRITE (”feu 1 Orange”) END ;
bbRouge
bb.estIlRouge ;
IF bbRouge = TRUE THEN STRING WRITE (”, feu 2 Rouge n”) END ;
bbVert
bb.estIlVert ;
IF bbVert = TRUE THEN STRING WRITE (”, feu 2 Vert n”) END ;
bbOrange
bb.estIlOrange ;
IF bbOrange = TRUE THEN STRING WRITE (”, feu 2 Orange n”) END
END
END
\c > Z p b ) #^,2 )C,G!/!&0%Q';-0%) $0%!3
.0/13
) -!%)
#+"!( #( !
CARREFOUR
?U0%)
`0%5G 5+(# X … E-c > \ E +R !"# U$0%;+#&‡^3; I & `,#`;V M E,)*,G':0%;#,;95
'; 0%) $0%!3 CARREFOUR >lˆP#&U.;9'9!0%;98+*#Q0%G8+3E,X'9V#K,2 + … +/!&0% T #&
d d H
90%) U!4' C &3+2 5/!&0%'9=# U`0%;+#&*, #M)C&A 2 R d v )C#_'90%&i+O 5S … \'"',E0%'!&0%
O +2 ,##&,('9 I 0%!&0%9,)C,G+>
$ &' ',
MACHINE MAIN
OPERATIONS
main BEGIN skip END
END
IMPLEMENTATION MAIN imp
REFINES MAIN
IMPORTS CARREFOUR, BASIC IO
OPERATIONS
main
VAR ii IN
STRING WRITE(”Deux feux a un carrefour n”) ;
STRING WRITE(”Mise en service des feux n”) ;
MiseEnService ; ii := 20 ;
WHILE ii 0 DO
STRING WRITE (”Changer les feux n”) ;
ChangerFeux ;
ii := ii - 1
INVARIANT ii NAT
VARIANT ii
END
END
END
\c > p ?U"0%) $0%!G 5+#
.0/13
2
B 8
ˆ-+ !,!&0% 90%;V,80%- tA 7&- 0%;-#&,V'aE7)C)*,-'90%3-90%;V,80%K'90%J2 #&
5M+($='CK'90O+;)*,3C'9- M~,R > b #X C aE%&
4' C tA 7&!XsrO 3,2 )C/!d^A;9,)*,34 0%;4#&,
'aE7)C)*,#`0%5!‚ U#&, `0%;[ M K^3;9,2 + … +/!&0%)4['0% +58+\#,['MaE5)C)*, !;! !‚U#&,
' C '+#*0%) O 2 M ,!&0%-+(#MP8I#M'/!&0%-';-s rO ,R )*!,#/!&8,)*,3(;X+ M &+('9, M /7 E,+>
? '&( ?U,C'9,x; t ,2 + … +/!0%C!‚ E% … +/!&8,*'; !N0 AR+ , +5)*K' C MG8//53!P+C' C 0 +2 5/!&0%
;b8,;ba U 5" 0%GN#&,F ,2 + … +/!&0%E',"0%) $0%!3! CARREFOUR + Feu l> „60%;,80%
'90%P tO 5&'9C,##&, +<#&,"'a E7)C)*,"'9C+#M! ,F!,$ `,! I F'9, … E%;9!,Cc > H +4c > ‰ ' ;
#&, A,2 '+/!S'9K|r.aEL'K# C 38I/7G+>?@Q'aE5)C)*B'9K+#5 ,4 tO 5&S'9Q#M ,2 + … +/!&0%
'90%&@ +O !F0%) #^+2 3 2 /1#N0%G 7G , B j (? X … ESc > ƒ \<^3; $+5)*+' C t5)*+#&,
CARREFOUR
0%3 53 ,(! 0O+^+2 , C#;U A ,!&0%V 0!#& >
3
6 ; _7'$;-=b>@
R
suiv
dd ƒ
$% |?1 <<bij>>suiv
CARREFOUR
1
% $
E_suiv
*
+feu1: COUL_Value
+feu2: COUL_Value
1 am
<<énumération>>
1
e_Y
E_COUL
COUL
+rouge
+vert
+jaune
1
e_X
COUL_Value
*
+value: COUL_Value
\c > H p ˆaE7)C)*E'9"+#M! ,1 tO 5&('"#*,2 + … +/!0%
.0/13
CARREFOUR
context CARREFOUR inv :
suiv forAll(c1,c2 : E suiv c1 c2 implies c1.e X c2.e X)
and suiv forAll (c1, c2 : E suiv c1.e X c2.e X implies
c1.e Y c2.e Y)
and F collect (c : E suiv c.e Y) includesAll(E COUL)
and suiv size()= E COUL size()
\c > ƒ p j 0%3 53 "!,#M/!&8 CR #;U AR,!&0%V 0!#
.0/13
suiv
<<énumération>>
FEU
ETAT_Value
+on
+off
1
1
1
E_ETAT
+value: ETAT_Value
\c > ‰ p ˆaE7)C)*"'9E+#M! ,1 tO 5&('"#*,2 + … +/!0%
.0/13
4
),#+ #+
Feu
<5
?U,
O,2 'M+/!4'9X|r.aEQ 0%34;9!#M3,2 $0%;9`E[,2 +2 !+-#&,C'MaE5)C)*,='9X+#! ,,><?@, !0 5^+2 A,2 :0%) #& tO,('"# C 38I/5MG 0%3O`2 ,2 5& ,:,X0%3 53 ,PB j ? 5 0A+^+2 ,:;xt-'aE5)4)*,
'9+#5 ,+> ˆ: #M;\#&, $ 0% 0%'!&0%]'9,]0 +2 7/!&0%<!0%G<;!!O 5';& ,],C0%3 53 ,B j ?_>
ˆP#X$ ,2 + … +/!&0%
T #&, A,2 '+/!N' 2 … !5GN#&,E5, 5!&0%E'9,8I#,;95
! 0O+^+2 ,;xt*8I/5MaU#&, feuACARREFOUR
+ feuB 0%3< 5';&!],C#E0%G 5MG PB j ?A,2 ,GA+2 … E%;95Ec >c v >
j + E0%3 53 05!, $0%' CR #P †R E%#E'9BE, !0% J ';-+ M +('9, M /7E,+>
?U, !0 5^+2 A,2 C0%
) #& tO,*'9-# C 38I/5MGP'9-#B,2 + … +/!&0% Feu 0!5,$0%'9,3 LR #B †R E%#&
'9 E, !&0% d ';K+ M +',6 M /7 E,+> #M#&,6' 2 … ! ,36#,(!,! 5!&0%:'9,68I#,;95:! 0O+7+2 ,F'9,
8//5a U#&, rr, oo + vv >? C [ 2 ^A;&8/#&,Eq `,; +O 5" 5'; "'&!, ,)*,31,[B j ? C , $0%;9N^3;90%
0%X;9!M# '9,x; t-) #M+/!&0% $0%;9< E[,2 +2 !+#*0%G 7G N'9"# … E%;!Cc >cc/>
$ &' ',
dd ‰
context CARREFOUR inv :
feuA = COUL Value : :orange and feuB = COUL Value : :orange and
feuA = COUL Value : :rouge and not(feuB = COUL Value : :rouge) and
not(feuA = COUL Value : :rouge) and feuB = COUL Value : :rouge
c >c v p j 0%G 7G S!,#/!8=;xt 505^+2 3,2 P0%) #& tO,'=# C 38//53E'9=#MK,2 + … +/!&0%
.0/13
CARREFOUR
X
X
\s\ and
\
\s\ and
\ and
\s\ and
\ and
context Feu inv :
rr = ETAT Value : :on implies oo = ETAT Value : :off and vv = ETAT Value : :off
oo = ETAT Value : :off and vv = ETAT Value : :off implies rr = ETAT Value : :on
oo = ETAT Value : :on implies rr = ETAT Value : :off and vv = ETAT Value : :off
rr = ETAT Value : :off and vv = ETAT Value : :off implies oo = ETAT Value : :on
vv = ETAT Value : :on implies rr = ETAT Value : :off and oo = ETAT Value : :off
rr = ETAT Value : :off and oo = ETAT Value : :off implies vv = ETAT Value : :on
XsX
X
XsX
X
XsX
X
X
\
\
\
c >cc p j 0%G 7G S!,#/!8=;xt 505^+2 3,2 P0%) #& tO,'=# C 38//53E'9=#MK,2 + … +/!&0%
.0/13
Feu
ˆ_ !0NA + T #A, _33+2 5,!!3'9O.2 ,2 5&!6, B j ?X#, `0%! 0%'&!&0%]'9,\0+2 5/!&0% Mi+
';*0%) $0%!3
X … E4c >c d +(c >c J \]+/0%) $0%!G
seEnService ChangerFeux
0%) $0! E# C G8//531#& #;'+2 8,#02 > CARREFOUR -'& / Z # $)+# ?U,:'aE5)C)*,' C +2 !/! 7!&!&0% =R tO 5&5N 0%3F,;xt%!0H8,3F'9,,2 + … +/!0%
?
+ CARREFOUR >aˆ#M !,)C +R 5(,2 + … +/!0% T Feu T … 4' C ##^†2 E+#&('MaE5)C)* … E%;9!Ec Feu
>c M
90%;(,80%(!,) #.E2 #,18I#,;95 on + off !,$`,!8,)*,G / O + F >
5'nX SELECT feu1 = orange feu2 = orange THEN feu1, feu2 := rouge, vert END\
XsX 7I ' ,;@XsX c I ,;Uc 070E5 E I , ; d I ,; d 070E5\ E\ 7' X I ,I ;U,;Uc;c o T I ,!; 0%d ;Eo !0%I ,;; Ed T o 8+58N+\ !N\s\
XsX I ,;@c 07E I ,; d 07E\ X I ,;@c C 50%;E I ,; d C 8+5N\s\
?U40%G 5MG 4B j ? "' ,2 ';&'9"+ `0%! 0%'&!&0%yo
Context CARREFOUR : :MiseEnService() post :
((feu1@pre = COUL Value : :orange and feu2@pre = COUL Value : :orange) and
feu1 = COUL Value : :rouge and feu2 = COUL Value : :vert
X
\s\
\c >c d pq tA 7!&0%K'9"#M`0%! 0%'&!&0%-'"# C 0+2 5/!&0%
.0/13
MiseEnService
d Jav
$% |?1 5'nX SELECT feu1 = vert feu2 = rouge THEN feu1 := orange
WHEN feu1 = rouge feu2 = vert THEN feu2 := orange
WHEN feu1 = rouge feu2 = orange THEN feu1, feu2 := vert, rouge
WHEN feu1 = orange feu2 = rouge THEN feu1, feu2 := rouge, vert
END
\
5'nXsX I ,;@c
8 +! I ,; d !0%; E\ I ,;@c`o 07E X I ,;@c !0%;E I ,; d 8+!N\ I ,; d o 05E X I ,;@c !0%;E I ,; d 05E\ I ,;@c T I ,; d o 8+! T !0%; E X I ,;@c 05 E I ,; d !0%;E\ I ,;@c T I ,; d o !0%;E T 8+5N\
5' XsX I ,;@c 8+! I ,; d !0%;E\ I ,;Uc`o 05E\
5' XsX I ,;@c !0%; E I ,; d 8+!N\ I ,; d o 05E\
5' XsX I ,;@c !0%; E I ,; d 05E\ I ,;@c T I ,; d o 8+! T !0%;E\
5' XsX I ,;@c 05 E I ,; d !0%;E\ I ,;@c T I ,; d o !0%; E T 8+!N\
XsX I ,;@c 8+! I ,; d !0%; E \ 5' X I ,;@c o 05E\s\
XsX I ,;@c !0%; E I ,; d 8+!N \ 5' X I ,; d o 05 E \s\
XsX I ,;@c !0%; E I ,; d 05 E \ 5' X I ,;@c T I ,; d o 8+! T !0%; E \s\
XsX I ,;@c 05 E I ,; d !0%; E \ 5' X I ,;@c T I ,; d o !0%; E T 8+!N \s\
XsX I ,;@c 8+! I ,; d !0%; E \ 5' X I ,;@c o 05 E \s\
XsX I ,;@c !0%; E I ,; d 8+!N \ 5' X I ,; d o 05 E \s\
XsX I ,;@c !0%; E I ,; d 05 E \ 5' X I ,;@c o 8+! I ,; d o !0%; E \s\
XsX I ,;@c 05 E I ,; d !0%; E \ 5' X I ,;@c o !0%; E I ,; d o 8+!N \s\
XsX I ,;@c 8+! I ,; d !0%; E \ I ,;@c C 07 E \
XsX I ,;@c !0%; E I ,; d 8+!N \ I ,; d C 07 E \
XsX I ,;@c !0%; E I ,; d 05 E \ X I ,;@c C 8+! I ,; d C !0%; E \s\
XsX I ,;@c 05 E I ,; d !0%; E \ X I ,;@c C !0%; E I ,; d C 8+!N \s\
?U40%G 5MG 4 B j ? "',2 ';&'9"+ `0%! 0%'&!&0%y o
Context CARREFOUR : :ChangerFeux() post :
((feu1@pre = COUL Value : :vert and feu2@pre = COUL Value : :rouge) and
feu1 = COUL Value : :orange) or
((feu1@pre = COUL Value : :rouge and feu2@pre = COUL Value : :vert) and
feu2 = COUL Value : :orange) or
((feu1@pre = COUL Value : :rouge and feu2@pre = COUL Value : :orange) and
(feu1 = COUL Value : :vert and feu2 = COUL Value : :rouge)) or
((feu1@pre = COUL Value : :orange and feu2@pre = COUL Value : :rouge) and
(feu1 = COUL Value : :rouge and feu2 = COUL Value : :vert))
\c >c J p q tA 5!0%K'9"#$0% 0%'&!&0%-'9"# C 0+2 5/!&0%
.0/13
ChangerFeux
% $
$ &' ',
dJc
Feu
rr,jj,vv
F,O,F
DevientRouge
DevientVert
DevientJaune
DevientJaune
DevientRouge
O,F,F
F,F,O
DevientVert
\c >c M p ˆaE5)C)CE' C +2 !/! 55&!&0%( tA 5('9"#*,2 + … +/!&0%
.0/21(3
Feu
ˆ4'aE5)4)*C' C +2 !/! 55&!&0% X … E c >c M \ T 0% $,;9F8/#'9+"#&C0%)
`05 +5)*,3E'9
#S,2 + … +/!0%B'; !,#/!&8,)*,3F;L+ M &+'9, M /7E,,>qBF$,;9!U8I#M'9+6#,6 †R E%#,*c
+(!;! 0%;9 d ,2 90%.+2 Feu
,'(#* ,!&0%bc > d > d >
J 0%;9P#&,E){,O )C,7 0% 3^ ;9S'# … %E ;!Kc >c M 90%;,80%N!,) .#S2 #&,E8I#,;95 rouge,
+
vert
orange
!,$`,!8,)*,G /
R, V
+ J >
CARREFOUR
FeuA,FeuB
MiseEnService
J,J
R,V
ChangerFeu
ChangerFeu
R,J
J,R
ChangerFeu
ChangerFeu
V,R
\c >c[Z p ˆaE5)C)CE' C +2 !/! 55&!&0%( tA 5('9"#*,2 + … +/!&0% CARREFOUR
D ;E='MaE5)C)*C' C +2 !/! 7!&!&0% X … E c >c[Z]\F0% $,;9F8/#'9+"#X †R E%#& J '94#X!,!&0%
c >d >d >
? -'&( <Z (#( ?U<'a E5)4)*]'9<A[ 2 ^A;9,<'9_#M … E%;9!c >c 0!!, $0%' R # C tA 5!0%"'9 ;MD# ,2 + … +/!&0%
> b # $+5)*+1'9F8O!;#M +#,1 $,#1'9,0 +2 5/!&0%(s rO) U$0%#M3,2 /'9,)*, CARREFOUR imp
!a E,(,G !#&,#‚ E%,1'9F8A"'9,1K0 U1A +!+>
4
? -'& Z ?UQ'a E7)C)*Q' C !&8A3,2 V'9B# … E%;9! c >c H , = tA 7&S'Q# ,2 + … +/!&0% MAIN imp >
? C M 5;!0% WHILE '9(#E ,2 + … +/!&0%4, <5 A,2 ,33+2 F 0%;_# I 05)*(' C ;9< U$0%;+#&(' C +2 !/!F X '9
.0/21(3
dJd
CARREFOUR
$% |?1 bb.Feu
aa.Feu
% $
BASIC_IO
estIlRouge
aaRouge
estIlVert
aaVert
estIlJaune
aaJaune
estIlRouge
bbRouge
estIlVert
bbVert
estIlJaune
bbJaune
[aaRouge=TRUE et bbVert=TRUE]devientJaune
[aaRouge=TRUE et bbJaune=TRUE]devientRouge
[aaJaune=TRUE et bbRouge=TRUE]devientVert
[aaVert=TRUE et bbRouge=TRUE]devientJaune
[aaRouge=TRUE et bbJaune=TRUE]devientVert
[aaJaune=TRUE et bbRouge=TRUE]devientRouge
estIlRouge
aaRouge
[aaRouge=TRUE]STRING_WRITE("feu1 Rouge")
estIlVert
aaVert
[aaVert=TRUE]STRING_WRITE("feu1 Vert")
estIlJaune
aaJaune
\c >c p ˆaE5)C)CE'9"A[2 ^A;9,E tO 5&'E#*,2 + … +/!&0%
.0/21(3
E7
R
[aaJaune=TRUE]STRING_WRITE("feu1 Jaune")
estIlRouge
bbRouge
[bbRouge=TRUE]STRING_WRITE("feu2 Rouge")
estIlVert
bbVert
[bbVert=TRUE]STRING_WRITE("feu2 Vert")
estIlJaune
bbJaune
[bbJaune=TRUE]STRING_WRITE("feu2 Jaune")
E11
CARREFOUR imp
\7> j<M K^3;Q+2 !/:! O,2 !,G E#M … X' C t<,2 +;9!&0%K'" M K^A;9E 5;!&0%@>
2 3 _7 C8$;_=?>@ @'7 7
ˆ :+ 7';!&0% X … EQc >c ƒ T c >c ‰ +Nc > d v \6#&" r$'9 U ;!#AF2 , :#&E|r$
+/1#&,8I#&,;5',<8//5aU #,;9!M#A+2 ,@X rr, vv, oo + ii\_'9,) .#7,2 )*,G!/!0% 0%G0%) 5M ,short
'
# C 3 +!8/##& d T d >wˆC#&-+*0%; #L8I/7aU#& , 4;9!#M3+2 -'HG(+2 5,)C)*,3 X 90%) U!
' C &A+2 5/!0%-,2 J #&+8_H *K2 ƒ '9J #iH `UIH0%;+#&\ #@!+5=,2 ,5!&!N' C +O !ii5;'9,3 ^A;G 4R # C ;!#!/!0%-';X|r$
'9;U X # C 0%;!#\'9!,;98P'9+8A5 +O ! /5) +2 O2 /F* r`$0%;9F#&,0% !3 , MININT +
7\ >
MAXINT
dJJ
&]%
$ N 1
MAIN
CARREFOUR
BASIC_IO
/STRING_WRITE("Deux feux à un carrefour\n")
E0
E1
E2
/STRING_WRITE("Mise en service des feux\n")
E3
E4
/MiseEnService
E5
E6
/ii = 20
[else]
E7
[ii>0]/STRING_WRITE("Changer les feux\n")
E8
E9
/ii=ii-1
/ChangerFeux
E10
E11
\c >c H p ˆaE7)C)*E' C !8A&A,2 ( tA 5('9"#*,2 + … +/!&0%
.0/13
MAIN imp
d JNM
$% |?1 import java.util.Arrays;
class MAIN
static void INITIALISATION() BASIC IO.INITIALISATION();
CARREFOUR.INITIALISATION();
X
\
public static void main String Args[] INITIALISATION();
short ii ;
BASIC IO.STRING WRITE("Deux feux a un carrefour n") ;
BASIC IO.STRING WRITE("Mise en service des feux n") ;
CARREFOUR.MiseEnService();
!
ii = short short 20
while (ii short 0 BASIC IO.STRING WRITE("Changer les feux n") ;
CARREFOUR.ChangerFeux();
!
ii = short ii - short 1
X
\ XsX
X
X
\ \
\ \
\X
X
\ \
\c >c ƒ p W 5';!&0%-';X0%)
`0%5G5+(.#,G,8/
.0/13
% $
dJZ
&]%
$ N 1
import java.util.Arrays;
class CARREFOUR static Feu aa ; static Feu bb ; static boolean hh ;
static void INITIALISATION() bb = new Feu() ; aa = new Feu() ;
aa.devientOrange(); bb.devientOrange();
public static void MiseEnService () aa.devientRouge(); bb.devientVert();
public static void ChangerFeux () short aaRouge ; short aaVert ; short aaOrange ;
short bbRouge ; short bbVert ; short bbOrange ;
aaRouge = aa.estIlRouge(); aaVert = aa.estIlVert();
aaOrange = aa.estIlOrange(); bbRouge = bb.estIlRouge();
bbVert = bb.estIlVert(); bbOrange = bb.estIlOrange();
if (aaVert == 1 && bbRouge == 1) aa.devientOrange(); else if (aaRouge == 1 && bbVert == 1) bb.devientOrange();
else if (aaRouge == 1 && bbOrange == 1) aa.devientVert(); bb.devientRouge();
else if (aaOrange == 1 && bbRouge == 1)
aa.devientRouge(); bb.devientVert();
aaRouge = aa.estIlRouge();
if (aaRouge == 1) BASIC IO.STRING WRITE("feu 1 Rouge") ; aaVert = aa.estIlVert();
if (aaVert == 1) BASIC IO.STRING WRITE("feu 1 Vert") ; aaOrange = aa.estIlOrange();
if (aaOrange == 1) BASIC IO.STRING WRITE("feu 1 Orange") ; bbRouge = bb.estIlRouge();
if (bbRouge == 1) BASIC IO.STRING WRITE(", feu 2 Rouge n") ; bbVert = bb.estIlVert();
if (bbVert == 1) BASIC IO.STRING WRITE(", feu 2 Vert n") ; bbOrange = bb.estIlOrange();
if (bbOrange == 1) BASIC IO.STRING WRITE(", feu 2 Orange n") ;
\c >c ‰ p W 7';!&0%X';-0%) $0%!G
.0/21(3
CARREFOUR
,%H8I
dJ
$% |?1 % $
import java.util.Arrays;
class Feu
short rr ; short oo ; short vv ;
public Feu () INITIALISATION(); void INITIALISATION() !
rr = short ETAT.off oo = short ETAT.on
X
\X
\
X
\X
\
X
!
\X
\
!
vv = short ETAT.off
public short estIlRouge () short estRouge = 0 ;
if rr == ETAT.on estRouge = 1 ; else estRouge = 0 ;
return estRouge ;
XsX
\s\
public short estIlOrange () short estOrange = 0 ;
if oo == ETAT.on estOrange = 1 ; else estOrange = 0 ; return estOrange ;
XsX
\s\
public short estIlVert () short estVert = 0 ;
if vv == ETAT.on estVert = 1 ; else estVert = 0 ; return estVert ;
XsX
\s\
X
\X
\
X
\X
X
\X
\
X
\X
X
\X
\
X
\X
\
public void devientRouge () !
rr = short ETAT.on oo = short ETAT.off
public void devientOrange () !
rr = short ETAT.off oo = short ETAT.on
\
!
!
public void devientVert () !
rr = short ETAT.off oo = short ETAT.off
X
\X
\
X
\X
\
!
vv = short ETAT.off
\
vv = short ETAT.off
!
X
\X
vv = short ETAT.on
\
!
!
public void changerCouleur () short cc ;
cc = short (rr) ; rr = short (oo) ; oo = short (vv) ; vv = short (cc) ;
X
\
X
\
X
\c > d v p W 7';!&0%X';-0%) $0%!G
.0/21(3
\
Feu
,%H8I
X
\
1 d JIH
1 _ 0%;9' $05'X5 `,#0%5+ 8,)C,GA;990%601 A ,! 6&!;xtV8AM!&,34#M4)C!E,%#
'9 5M+($,4' MGA2 5/!&0% '9,-) +2 90O'9,a05)*,##,=+X!,)Ca05)*,##&,S+ # 5';!&0% '9
,2 +.+/!&0% 07)*,##&,<8+5#,#!%,01A +!+> 0%;9,+`'9+8I#+" !F) .#GA:2 '#&6%$O+#&
'9C'+2 8,#&0 `,)C,GE',F#&0%+&,#,>$?& 332 7/!&0% '9,E) +2 90A', 07)*,##&,+" ,)4 07)*,##&,$,;9
+" !EO,2 #M3+2 0%;1 !0%a05)*,('
) MMGGAA22 55//!!&&0%0%//('tO+2 5,8I/!!&0%&0%++* *
) MGA2 5/!&0% / tO 5!&0%D>
,60%;) ,80%6-90%!D# MGA2 5/!&0%/ tO 5!&0%`0%;#&,15!0%1!;&8/3 ,'
) ?&', 33'92,;x7t-/!) &0%+2 90O/'91, (tO 0%,)C!)C&0%E-# $!+,5;)C8F+ 0%;X.#&1F#5P T40%, )*+!,8/G/+!> &0%X'9,1H8I3!,6+' `0%MG! a0!!
) ?&!0% ;93532K7,/!!
&0% #;C/5P4'+2 55&8/3/;!K&0%# b') ;+2 9 0O'9/B!N+, #&*.'06a,20#5+)*/, X##7'27;.>&89 &;93!;9 -#&/V!4#/#&,%=1,2 0+90+!//!!0%0%32
0 ,3;9,9( 0%3" 0%) #+ ,*A#O, <'0%,2 ,!!!6':$Py A 0%;9 ++!!MP,2 #^,2 )*,3! ;
'"#&,' !0%;8+,>
) ?&' 3E32 +7 / !-&0% 5//A2 % &tAV 50% !0%0%)C*;)*A,;990%;/J,,82 0%7&!=-9#MK0%!* ,2 +!.,+/'4!&,0%V ,0% ) # /% 3 ,2 9,0% )<#, 9!F5+G/
#M!S0%;95*x; t 0% ,;95,>_?@ 5+( $C, C' , tO 5&! /*#L!;& S#,P8A;9,>'= QQ?
$+5)C+ !G('")C&,x; tV#*'90O+;)*,3 +(+(#*0%
) !,'95>
?U 5,)C&+&.;9'9:+ " 5/A2 %&*'#&:%$A+#:'9:'+2 8,#&0 $,)*,31'9,#0%+&,#*G, 1#"8/# '/!&0%4'9,_ ,2 +.+/!&0%" ./_5 $0!];4+&+<'9,_-/,+>A?@,) +2 90A',?a05)*,##&, ./5! ,3
0%;98,3(' +, :',2 #+/+>?U !,)C&+0!!+#&";!A;9,#$0%X (9,;! , 0%;98,3(;9F' T4+;#&AF2 '9
#&,!;95>$?& tA 7!&0%J'9P8A;,@'= QQ? $+5)*+*$8AM=#&,:8O;9,'= QK?&*$;9N)C,##&,;95#5#3"2 >A;
$+5)*+_;)*,##&,;!10%) OA2 9,5&0% $0%;9_#&,_0%C&!^,2 _+<'90%;9;9!#M!/!&0% /<;
;/#M
#;#M/>
?U('9,x; t9B, )*101 A ,!$'9(90 !0%3 5.;9!&0%P, <#%C'91 ,) .]+<'90%('9' !0O';!&8O&A12 #^ 2
P# ;9!#M!/!&0%C',1) +2 90A',C 05)C,##&,+>;D<S%E`+#6 ,) .':'+2 8,#&0 `,)C,G
) /!!FP# ;!#! !&0%*'9,]) +2 0A'9,? 05)C,##&, , _#/,)C,G_!; +2 5&,;9GF,#;O'91# ;!#!/!0%E'9,]) +2 90O'9,_!,)C a05)*,##&,,>IHR#A, <'90%,2 ,5!&! $0%;9];)C,##&,;95;9!#M!/!&0%N'91O,2 ';!1#&,\ ,) JA;9#;A 0%3
) ./!!_'#&:'+2 8,#&0 $,)*,310%) #&+q A ;43;K# ) .#G!/!0%D>G?@, ,) '9:'+2 8,#&0 $,)*,3
'9, 3 ,"' #$A!*+E' ,2 5&!;954'9," ,2 +L+/!&0%L+2 !3M0%) !,5!#&,:#M ;'95F,N% %9+E5;9E#&*!,! 4';J%$O+#&4'9C'+2 8,#&0 `,)C,G+>O,60%;E!,) #M! 0%:+E01 A ,! $0%;9"#&,F5M 0%
!;8I3 ,'
d JP
d M]v
<
) #' F8A'9;9,NG#=EQQ8I??#M* '/!&0%4',,2 +L+/!&0% /5$0!;=++'9,4/,/ tA 5!0%
) #M#MPA5,2 '';;!&!0%&0%X4',;9' 0%)C/ !,L(A;9'9("'9 ,,! *,2 ++;+/ E!0%'9J#a05)*!,,;9#8#&,"_'8,+5_#&,,2 _+#M/+/%!0%, "a0051)*AR+,!##&<,A,* #?A;9
) G,8/*+ G >
P3 >@;q ="!8 ;-=?>@ ,60 !0%3 5.;9!&0%V, :'&8O3+2 F,K'9,; t/5!&,+>?[ !,)C+ 5", A+2 P!;9# ;9!#5/!&0%V'9,
90!/!&0%K01 A +! $0%;98I#M'9+E+P'90O+;)*,3 +N#MK ,2 +.+/!&0% 05)C,##&>U?US)*0O', #& !0 $0%A 2
O,2 0%M :# ;9!#5/!&0%C0%N A 0%3 :'9#) +2 90A' +1'9,0!/!&0%(E0F AR+!+>/D##&, 10%!!&!;+2 ' ; , ,) .#&X'9K!-,2 )CS' tA 7!&0% '9K8A;9, = QQ? ' ;*#&,4 ,2 ++/!&0% :><?@,4' 5)C)C, 5&A,2 6'+ N 5/32 %&!0%G(;Q90%) !"'9(A;/ ! '
) ''55)C)C)*)*""''+" +2 !+/#!! ,5* !&!0%*
) '5)C)*"'"3A2 3;9,*
) '5)C)*"'+ !&8A3,2 ,>
8:)#;:90%;: 5'; 0%:#&, !077+2 3,2 F0%)
#& tO,:'P# G8//53(+F#&, OP2 +$0% 0%'!&0%
'9,0 +2 5/!&0%,=#!% B#?L A; $+5)*+':#&,' +; t='5)4)*,':+#5 ,'90%
' ; 07)C +(#NO,2 5;#&!/F0%) #&+F'9P# tO 5!&0%D$> ,F) +2 0A'9,F'+ tA 5!0%J 0%GO,2 #M3+2 , /!!:' ;B!0%; , ,) #&P';B#/%
'90%3:#&,F/4!,6+F!,05' 0%3 tO+#;+>8 ; ! /!
# tO 5!&0%J'9*'M5)C)*,' +2 !/! 5!&!&0%", Q,2 #$0A+2 /!!&';L)<," )*C 0%; , ,) #&
!, 5,G[x; t" ,2 ++/!&0%['90%3U;)*0%@;9_8//5#&],!U $ +2 ((# '_' , ,) #&,,2 A;) +2 O,2 +>
?UN'9,x; t9, )*F0%3 5;9!0%4, 1;( 5';!&0%1 /5!&'+ ) #^,2 )*,3!/!&0% ,2 5& , P# '9:';
0%; , ,) #& v 0 #M/%:'+ ) #^,2 )*,3!/!&0%='9 2\8+5#&,#/%,0%) #.#&,G"01 A +! ,#
A;9 G,8/L+% G > ,P'9,x; t 0%3 5;!&0%J+2 !3*O,2 #A+2 ,4;9 0%;9*'9 #*]90%;NH80%C-90%!'9
05 +1#&, , O,2 #M)C&5,_' #$O $OG!u t9LA;9(+1'968_+2 5.+/!&0%V'96 $ $,'9, !N0 A +!
'1;9 #/ a05)*E0%)4);>
'&+
(
$)+#
&
5
?U<%$A+#_'9_'+2 8,#&0 $,)*,3U';"#M/% 06! d >c 2D, @0%) #&++> H # $+5)*+@'J[+2 5+[,3!B+ !,)*,3
#&<%$O+#&<'<'+2 8,#&0$,)*,3[#&0%M+&,# 06!Nc/>c 2&./!!&U'9#' !)0% !0% X D ,2 ++/!0%D> ,60 !
0%3 5;9!0%C# ;9!M#!/!&0%V0%N A 0%3 '9,() +2 90A',Ga05)*,##,1+( ,)C 05)C,##&,' /( tA 5!0%
'9S8A;, '= QK? +N'9V0%3 53 , B*? '90%&P'90%S3 +!8,&N!;9P#&,N !0%b+2 ! `,P!;&8I3 ,P';
%$O+#&E'9"'+2 8,#&0 `,)C,G('+ #+/!0%06!Kc/>c 2 '
) $M) ,2+#^,2 )*+/,!3&!0%/ !&X0% 0%X 0O '!&0%* *
) M) #3!/!&0% X , +>
?@,P) 'E(+2 !,3 ,N tA 5!0% ,2 90%+2 , O,2 .,2 '9,)C)C,G*!,)
#!!,G /4a& ,)C,GP#&,;9NI0%" #&=8A
8O6',K+2 ! $,F'9P ,2 +.+/!&0% X 0% !0%J+F' ) #^,2 )C,G!/!&0% X 0A'>DQ%E$+F# P'9
,2 +.+/!&0% X 0% !0%*O,2 #A+2 *# '9F'9,1)44, 5 , 3;`'2 .! ,3#&,10% !
[,2 +2 5x; tL';X $O %, )**`, (8/#'+2 !,#/!&8,)*,36;Q+&+:'9,(-/, /6#&,( tA 7!&0%6!,# !&8,6x; tV. 5!&0%(0%)C)* '
) ##,,'0%G 57)4G)*,',B*'9"?&+*#5 ,*
) #,'5)4)*,' +2 !/! 5!&!&0%,>
)
dMc
?U N' ) .#7,2 )*,G!/!0% X 0A'* A;3=,##&*, 68I#M'+2 0%; AR0%;97!,#/!8,)*,G;K+&+
'9,-/,/#&,1 tO 5!&0%(' ;9 5,'5)4)*,0%)C)* '
) ##,,''55)4)4)*)*,,'9'" AA!2 A&8O;9&,A,2 +> *
)
,+ $+5)*+<'968I#M'9+<#&:0%) $0! ,)*,3'+2 !M##762 ';= $O %, )*F+/,'7)C)*,<!0%G tA 7&!
'9 ;P#&,*) #^,2 )C,G!/!&0%C'9,C ,2 +L+/!&0%
:>&,-,2 )*0%C# $0!*'9-8/#'/!0% + ;9!3-' ) $0!! A;9% $0%;9V# /!!&L 7& L+V0% !;9,##&L'9,V ,2 +.+/!&0%-+/-#&
#/% v , ] A, !0O491'9,]#M/%,_) +2 7/!a 5'&!&0%9,#M+> \/_0%AA2 A;9,3#3, _0%) 5
/(; #;C5'-90%) !>
.)4 P
7 &((),#
+@
'&+
5
?[= 7';!&0%L'9*,2 +.+/!&0% ,J#M/%5=0FAR+!"' $$
% H8I<A;9*90%;,80%E)C ,
.#$,;9_ .#LA;9+_'_',;xtC0%G tO ,' E(+2 5,G!+>A?@!,)C&+_,!< # 3;2 ;xtC#&0%M+&,#
$0%;9\#&,\ $A!%, )C,_/a05)C/!A,2 \ !'/5'+>/?@'9,;xt9, )*, \!,#/!L;xt. #+/!&0%[,) /4A;+2 ,
#;./!!+;#+ 5,)*,G $0%;9 G,8/ /5'D>O8E#&,F'9,;xtJ+*U90%;F,80%E!, !,3"#V 5';!&0%
,#0;A;3# !+M/!&0% ./(#& $$ STRING '9F)C-9,' !,30%)4)* /5)+ 5,('9,
, ,) #&,,>+,(0%;E,80%N)C3 ,3; #-90!&0%J'9C)C0A';#/5&A
2 , #V!;! !&!;3 /E#MS0!&0%
'9+#! >/,60%;,80%0!)CA2 #&,+#! ,'G ,8/ ,2 +2 O+2 ,6,S +5)*F'9) ,2 )*0%&!,V;9!#M!G'9,
8//5#&,+) +2 90A','9* $$4!!/!L3;C+", $ +5)*+ !3E'9=490%5&"#&* $$ 4' ,3!&+E'9 $0%;9# #/ a05)*F+#&> D<V# +2 !/(!;,#@+ $ 0%!!M#&362 '9+8A5 +" !";9!#M3+2 :H8, O,2 +;!&0%
+/#! ;9 ./5) +2 !+1#&,<0% !G , MININT + MAXINT ,8/G'9 !0%;98+#&,$ ,2 ++/!&0%
:> ?[X 5';!&0% % ,8/B !'/5' $ +5)*+# ;9!#5/!&0%J'; #M/% v '!K 0!#M&3<2 05)C
#P!,! 5!&0%-+&A+2 A,2 ,2 '9,)C)*,36!'A;9"#P 5';!&0%- ,2 + A;9 $ 0%;9 G ,8/ /5'-, #;
0%3 5%3 X+; ='9C!,E ,2 +.+&3,2 E, +5)*,E'C) ,2 )*0%&!=+E'94 7;!;9!>@?& tA ,5&0%
$0%;9]';P0A' G , ],##&1;5!A +5)C+2 > HR#O +5& $ 0%!!L#&'490%5&]' ;9 !,]#!%,@01A +!
'$` 0%5G"'9S# ,2 +2 5+3X2 5;9#&,E $$ , 5M)C&! F0%)C)* . '9 ,2 +2 !+C#,'E(+2 !,3!
$$ ,' ,3!&+5+>
'&+
4
! *), - 7 )) #
?
)
@ ,60%;(H80% A,2 ,GAP2 # #/ a05)*% A 030%#,> + #M/ 05)C", (0%) $0%A+2 N'9 0%!&0% #3,2 :0%)C)N;9,' #L$A N $OG!ut9LA;9*.A,2 )C3!LA;9N+:'98_+2 5L+/!&0%L'9E $.>$?UEO,2 !;#&!/
, :,9!%! AN2 '6'9,#-&+5 'QQ? 0 ;%/:0%)
`0%5G 27>3HR#U,!6,5;& " t&#&0%&!.#& /#
B? 0 B 1 AR,6?U7/$/2!;#3;,##&8A,9,3!(!%E$+6#&,10%;!#1'9"# .#/ 07)*"0%)C)* '
) ;;VV 5tA '5; ,,;;9:('98"+5'(#&,(5#)C/)*%,G,=9CQQ0?_1 > AR+!A*
)
!;9,##&,)*,30%;' $0% 0%F' ;b tO 5 ,;9*'9='5)C)*, = QQ? /!!,##&,)*,3E4+8_V2 +
' ;Q 5'; ,;9 #A2 > 89 ;9 ! /!90 ! #/ a05)* $,;96A G +4a+F,8,4# 0%;9!# _!0 ,>
_50 I
H , B; 0%;9!#'9 )C0A'9,# 49, O ! A;E;9!M# b#&, -&+5 ' QQ?[,2 +2 O,2 /L90 !
#/ a05)*> +*0%;9!#10%) .#7,2 )*,G!! b,x; t '+2 8,#&0 ,2 S; ,M '; ?+H $+5)*+ 7&C;
4+ 8,)C,G 0!#U'"# #/ a05)* ./5 $0!1;X%$O+#&E'9"'+2 8,#0 $,)*,G 0 L d >c 27>
?^_^_^ e! !"#"%$& '#% (")! *'9f+,!$)# !ce-*.!/#)0"9j& *%f
dMd
<
'&+
+9#+ &
),#+ 0
;$),#
U? ,332 7/!&0%('") +2 90A', a05)*,##&,+6 ,)Ca05)*,##,33+2 5&,;95,O,2 #A+2 ,:#& #M; 0%; 8,3 ./'+2 7&8I/!0%S)C+ !&,G1, A ,;V'9,;xt4'7)C)*,@'9#&,'5)C)*,'9+#!!,+'+ +2 !/! 55&!&0%+> ,(0 5N tO 5!&0%J'8O;9, =QQ?'9 .;(;9,2 +L+/!&0% A 2 `0%'Q;xtQ tO,,
';-'90%)49"+/(,#M#&"0%) !,'3;/ 5E'5)4)*,'90%3,;xtX'9"+#!!,+(' +2 !/! 7!&!&0%
, .#;*'9K# tA 5!0%W'9,
!0 5^+2 A,2 S0%) #& tO,4'K# 38I/7G*,W0%G 7G ,RB*?<>&,60 !
tO 5!&0% &* /5 " !-;!!1#&V 5 ,)*,GC', /!!&,*0%A+ ,S'9,*)*0O', #&,*0%)C)CX#&,
'7)C)*,F'9CAA2 A;9,C+"'+ !&8A3,2 E tA 7&! /!!"'9,F) #^,2 )C,G!/!&0%+>@?UV 5';!&0%
'9,6 ,2 ++/!&0% 8+76#&,6#/%,>C01 A +!6, 6+.#7+2 !;9:;X#/4'90%)CM9 ;M3;+ ,##&:, ' A+2 C;9!3Fx; tQ#&0%M+&,#: !'/5'#A;KS# ,) ./43;*2 0%)C)CN#&, G,8/ /5'+> D<#M#&E0 !M)C ;9!3 A;9 $0%!!.#&N#40A' [,2 +2 AV2 )4"'90%& +" 5 %;'+2 /E# ;9!M#!/ ,;9F'"+!!E++>
,60%;(H80%A.2 *2 ;K0%;9!#D5!0%; 36' ;9 /!:# tA 7!&0%Q'"8A;,G'= QK? 0 0%3 53 ,P B#?
0%) 7 ,-2N+S' ;9 !% /!4#Mb 5';!&0%8+5 %H8I + G > ,+6 $+5)C*'5 05 +S#&,
'+2 8,#&0 $,)*,3!' #$O $OG!u t9LA;9(+1A,2 )C3!LA;9:', !N0 AR+! :> +0%;!#b+2 3B2 +2 ,'; /
# 3 + + K,8,B# 0%;9!M# <!0 +&A 2 O,2 .,2 '9,)4)*,G+> + % #/ a05)*-O 2 $0%' b',>$, 0%
'; 5&,#M*'9 /V#&,S) +2 90O'9,V0% !;9,##,=;9!M#A+2 ,
$0%;9S;9B)*,##&,;!X0%G 7;9!&0%W'9
4+;9E' ,3 !",#M#&, '
) #M#, ) !,+2 ;989"0O'9'9,,(( ) ,)4+2 90A0'7,)* ,a#0#&,51)*,##&$,10!' ,)C3A;;99"#&,)C' , ##&,;9!,5:'9#MF! ,#M &!362 * ';50NAR+*
+ ) /6#&,+#,1'9,' E(+2 !,3!1 5'; ,;5'+2 8,#&0 ,2 '
) GG,,8/8/C $ !0%;9 '%/H5'N8I '1 /5'1#M'+/ !&.0%#-+#&/0!%&0%+,#D, ) !/'4/A5;'++2 *,+>
)
P3.5
' <"$;_= E ?U,' $+5 $,!&8,'9", 5,8/x; tX'9F, N 0%G6'9(3;/ !F05'9!,,>?U !,)4B+ !F, (' 0 ,&
;90%38+,,3 !# 332 5/!&0% /]'+2 58I/!&0%N+_# MGA2 5/!&0% ./ tO 5!&0%@>%?U'9,x; t9B, )*
8O Q) ,2 #&0!+P#&, 5+( $,F' tO 5!&0% '9,N'5)4)*,E' +2 !/! 7!&!&0%+> ?[X !0%M!B, )*
, V'9B +5)C9+S# #/ a05)* B B? D ><?[A;/ 5, )*L8O . ;!&0%9+4#&, 5M+( $,*'9
5';!&0%1+('+ tA 5!0%+>
'&+
Z ( $@Z ,=#, ),# @ &V@Z $),#
!;9,##&,)C,G"#&,'9,
; tB',2 )C/5-9,"' MGA2 5/!&0% '9,F) +2 90O'9,a05)*,##&,:+" ,)4 07)*,##&,
'&8+4,G*F# ;9!M#!/!&0% !;+,!!8 ' # ;9 +J'9 # ;9 5* A;9,#LA;9 0%&L# 05'9! ' ;9!M#!/!&0%
'+2 5&8//!&0% +* tO 5!&0% 0%; 8O 8+5! *_9 $+5)*+ P'9V!+8,P; )C0A', #&-'9V' 2 /!+>_?U,
+; ,F'P+ ='&8+,C!0%G -)*+ !*,L5,#/!&0%L,8,C#9.;9:'P,E'9,x; tQ',2 )C/749,+> D<
%E$+<#&1)*0O' , #& 07)*,#OA,2 !;#&!/'91#F'+2 5&8//!&0%*'90%&+" ! !0%;98_2 , < 0%P0 ,G!&0%C!'JA;9
#&*)*0O' , #&C ,)C 05)C,#[ tO 5&*D t&#M+& +"'0A+;)C,G C#V ,2 +L+/!&0%Na05)*,##> 89 ;9 5 /!
#&,_',x; tC) +2 90A',*3 ,)4 07)*,##&+&a05)*,#M#&*0%G'9,Ja0%'9,)*,3!_ A, 'E(+2 !,3!+> ,-,2 )*0%#
+5<33+2 5,!!3' +2 !;'&+<#"0%38+,F'96,'9,; tN ,-LA;9,<'+ GA2 5/!0%='_# 0 !LA;9
' ;N',2 )C/749*&A+2 5/!&8C ,! '&!C' 0 ,&#&N)," )CP)C0A', #&* A, F# #+/!0%Q'9,'9,; t
5 05)4/!&0%!;+,!!&8,)*,365;9(#&E)C0A', #&'9E' 2 /!+> !D#&,( ,2 +#! ,('9E#MC) +2 90O'9
W+,; tS'9F#N90!/!&0%'= QK? `0%;!!0%3 0%;9 N 0%;91,974#&F)*0O' , #&F A, 143;9F&A+2 5/!0%
0%)C)*V'#&," 7,8/x; t '9R B O #M: B5!)C* D 0%;!3;B+ !,"+ %A;90 Jav !-39A;9=-A;9
)*0O' , #&>0 0%; = QQ?F2< +5,!; 5!7&'# ; !690!/!0% ./ tO 5!&0%S0%;S'+2 5&8//!&0%D>
dMJ
' - "& / Z # ),# ?& tA 5!0% '9,*'M5)C)*,*' +2 !/! 7!&!&0%4 0%; E$!X'9A ;9,#LA;9,!0.#B, )*,*';*;xt
!, 7!&0%@5;9U#&<!0%; , ,) #&';"#/% b0%!M'+2 A2 >IDF%`E + 90%;[,80% #)C32 # tA 7!&0%
;xtJ8//5#&," $+2 ,*,8,S'9,",!,) #,J,2 A;) +2 A,2 +>J8# 0!LA ;9C'94O+2 +*;J0%;!#U* #< +5
+!!,)*,G `0%5!#&' ) ,2 #0!+(#>A;#&AE2 ';VA,2 !;#&!/('"# tA 7!&0%D>
'&+
4
Z )?
$),#
&(
$),#
&
&( ,
( HR#$, $,;9+" ! $0%!5#&' ,2 #/%&6#&" 0%; , ,) .#&F';-#/% ;!#AF2 '1+ tA 7 !&0%D>A?@,!,#/!0%;!#A+2 ,* 0%!&0%* A ,!&0%*A!;9 A ,!&0%+MNAR,!0%_ 0!#&,0%;/5!&,##&,
0%3C 0%;98,34'2 ,P, ./C; , ,) #&-' ,3!&+5P8+54; ;9 !-, ,) #&-' ,3!&+5,>_?@
!0.#B, )*K!,0%G OJ2 #&05S'9B# tA 7!&0%W'Q'7)C)*,S' +2 !/! 5!!&0%V'9 ;M4 ,9!
'9* ,2 +.+/!&0%, F# t&#&0%!0%Q0%) / 0%!9A; ,L',2 0%;#&C+/F,LO,2 #3C2 ,", ,) #&,:! 8O&,9,3 '9, !0%S, ,) #&, ,2 3;) +2 O,2 X 5&3,2 -'S90 !L) +2 90O'9>CH #: +5& $0%!!.#&X'9
O,2 ';!*# t.#&0%!&0%B0%) ./ 0%&!*, ./5) +2 53E;9P!, 7!&0%J!;9F;P!,;#&P8I#,;9F';J'90 )C'91#:!,#M/!&0%D>,-,2 )*0%M_#3, _,2 ,!!!'910% "& 5#M6A,2 )C3!LA;9'91# ,2 +.+/!&0%
'90% ,;#A# ;9!M#!/ ,;9 '9# #M+/!&0%( ,2 +2 53# tO 5!&0% $,;9 %E`,!;+_ ,!1'9)4( ; #/!&0%@>I89 ;9 ! /5 #3 +5,2 ,!!!1' ;9!#M +U;P)Cu t9);) #&,\+/5A+2 5M !LA;9,]'9)*0A';#/5&A 2
'9P#S) +2 90A' +/"#&05A; #+$KS !0 J'98//5.#&,*.#'7)C)*P +5 3;'Q)," )*CM##!L#&
+( t#0%&!#&>
!;9,##&,)C,G(0%; tO 5A$0%6;Q'5)4)*"' +2 !/! 55&!&0%/6)44E 5 E';
!0NA +6>]?[K8/#'/!0% '9V#Q,2 ++/!&0% ./5 `05;xt A %#,*'9 ,!!&0% '; +&+P'9,
4/,E,!"A,2 #A+2 NX# '9C'44'7)C)*>U?U,F %#&,N 0%GE 5';& ,E'"# MG8//53/
'9, 50 5^+2 3,2 (A;9*#&N$A , )*='90%&!, $, +,>D<#M#&, 0%G t&5) +2 ,", a0%!&0%J',8I/5M#&,+>
8;953-# tA 7!&0% #G ;'97& $0%;980%&V40%!&V#&,=8I/5M#&,N )C0%G !+-'S#Q'7)C)*
'9K)4B+ ! #&,4M 0%#&+4';!, L';'7)C)*K0%) .#&+4'9B#b ,2 +.+/!&0% A;1,!40 ,A;
'=90 !B',2 )C/54>?& ,8/G!b'9Q#&,4!0%#&+ $+5)*+='9K)*+ !B,5,#&+!!S $,!
';J0%) $0! ,)C,GE';J $A!%, )C4+"'9C#&C0%
) /!+Ex; tLA %#&,'2 &,"'F# 38I/7G+>D?& 0%;9!#
A; `+7)*+F' tA 7&!*#&*'5)4)**' +2 !/! 5!!&0% $0%;955=A,2 #,!&0%9+E#,68//5.#&,F;9! #A+2 ,:,L ; .#&+6':#,6A %#,F'9 ,!!&0%L';L+&+F'9,4/4,+> BB0!&,3:;B'7)C)*
!,#/!L:x; t 8//5#,*)C ,*,0 AR,; /4#&,4 %#&,=', !&0% ./=+#+;#('; !0O';&* $O-9!0 AQ2 '9,4'M5)C)*,='9K43;9Q8I/7#&> 51#&, +2 !/!- +!0%3=',4 ; .#&+C'9X8/#&,;954'9,
8//5#&,40%G ,A;9,S'4# A,2 '+/S0%!'+2 O2 > D<%E$+=-A;9KA %#&B'9 , !0% ';+&+
'9,4/,F, 5';& ./"; A,2 '+/ 0 C , F;% O,2 'M+/'N $ .72:'9*# 38I/5MG+>
HR#+ ;9 !,'9!4A;9 A,2 '+/0%) #& tOP'9# MG8//53* tO 5&!P#&,:'9,3!3!('98I/5M#&,
0%) 7 Q# 33+2 7&,;9E+N t&5)*+N; '5)C)*S' +2 !/! 55&!&0%N, 0%!0% ; 3;9,)C,G
'9C,8I/7#&,+>8#&C+0%3 5&5*U , '&5= #]+ tO! "'9 !0 5^+2 A,2 N0%) #& tO,
'9N# 38I/5MG()C+ !G,C AR,; #;!,;958//5#&,A*#&,:'5)C)C,()*0%3 53:#&N0%) $0! ,)*,3
'&8AM';9,#\'9=-A;9=8//5.#&= +50%GP!F; T45G!+> ,+!) #M+5&F#K7" 49-'9=8I#M'/!&0% '9,
,2 +,;95 '= QK?<>
dMM
<
! = )? - 7
"5
?U,6 7'; ,;95: 0%3 +5)C,2 ;B0%G 5!*'9,6' E(+2 !,3 , tO 5!&0%+> # ,;9!!;,##&
##M/ 05)C B B? D $+5)*+_' tO 5&!#,]'5)C)C,_'9+#!!,_+_+!!,<0%3 53 ,
B*?<>78 ;EH8,& !0O4 * #3 +5& GA+2 !,5!G]'9 $0%;980%&U tO 5&590%N ,;#&,)C,G # , ,) #&
'9,X0%3 53 , B#? )CM-;!!F#&,K' (E +2 5,G!X' 5)C)*,K)*0%G 7GK#b0%) $0! ,)*,3K';
O$ %, )*0%)4)* '
) ''55)C)C)*)*""'+'" +2 !3/A2 !3 ;9 , 5!* &!0%*
) ' 5)C)*"'+ !&8A3,2 ,>
HR#U +) 5(;Q)C0%,2 ,!5&!P'9 $+5)*+ 5E# tO 5!&0%B'9,6'5)C)*,6' +2 !/! 55&!&0%6+
' !&8O&A,2 .;A ;9# $,# '+ 0+2 5/!&0%"',"' 5)4)*,F' !&8O&3,2 "!,0%;83! !,A ;9 0!# )*,3(#&,0%)4);+/!&0%1'9,(' 5)C)C,'9"AA2 A ;9,>
'&+
),# & &
Z );& ( ),# 7 &($),#
:= 9 +2 8,3!;9,## ;!0% ,G 5L#,4) +2 9 0O'9,-' tO 5!&0% '9B' 5)C)C,='9B+#! ,S+V'9
5';!&0%E8+7[#&, #/% , 601 A +!$0%;9!7&J+" !,G 5 5 *+2 !G]'90%C2 A ;9#&, '9,;xt"#!% ,
+ #,F 0%GE , 50A-9 ,"+/M#$0%!%, '9,3" 0%;E',;xtL#M-90!&0%b' 0F AR++>OD J%$E +E#\ t9 $,;
'9V' (E +2 !,-,3 !-#&,P' 5)C)C,N'S+#5 ,P+*#&,*'90%+2 ,*',2 5 ,*'P#&,P+#! ,
G,8/O>
?UQ' (E +2 !,4,3 !S#&,E'9,;tJ#M/% ,EO,2 5'9='"#Q90!/!&0%D>F<D b%$E +#MX90!/!&0% = QQ? 9
$+5)*+ N'9S',2 7&!V'9S#MQ)," )*-)CB+ !3 ;9V#Q90!/!&0% %H8IB0%; G #&, tA 5!0%*'9
!,#/!0%+>[?U,N!,#/!&0%N 0%3 7';& ,, G,8/B+ G /P'9,! #&,;xt '90%GP#&S'90%)C9S'9
'2 !&0%'9B# 'MN0 $0%;9=#&,C! #,;xt ;K')*,!&0%3E2 , S'2 ./=#&K'0%)C9K'K#
!,#/!0%-+6#&'90%)C9"'E'2 &!0%X'9,8/#&,;97'/6#E0A'0%)C9"'9#*!,#/!0%D> B:94 5,8+7
# tO 5!&0%#,P!,#/!&0%*'+8A&,9,G*'9,4 A2 % /!&0%+> H #1 +7 `,; +" 5$0%!!. #& J# M'9-'9,
90%;98,#M#&,:8+5!&0%' '= QQ??D* '90%3#M48+55&0% d . &,G70" F'M$0% #& & /!!&D* ' ;a 05)C +6,
'9,;xt"$,!+>I-, ,2 )C0% #/!;95'9,[/a 05)C/!&0%@ 5&3+2 ,/[# 5';!&0%E8+5 #&,U#!% ,
-01 A +!"+# tA 7!&0% '9C' 5)C)*,", E' (E +2 !,3 =+/#M!,)C+ !*,! ;9!,)C,G"0%A+ 4# 0$0%3E2 '9#MC'9,;xt9B, )* A ;D, 6 , 5& >3(, 0%;:9E!0%)C)*,.(;B)<," )*8,;X,3 !
# tO 5!&0% '9L8O;9,<= QQ? O,2 #M3+2 /!!&V'; 0%; , ,) . #&J';W#M/% . 5&V+-#
5';!&0%P8+5"%H8I"+ G ,/ ,'9O+2 9./!!&]';P 0%; , ,) . #&1' ) #^,2 )C,G!/!&0%*';N#M/% @* #& v >
'&+
4
& $),# & !-Z ),# +
#+ (@& , 8 *'90O+;)*,3690%;H80%$0%;96# M !36'2 #48I#M'/!&0%B'9,6$,2 + +/!&0% /
tO 5!&0%*'98O;9,M= QQ?-+\8_+2 5L +/!&0%*'9#:0%/ 07)C&32 '9,\' 5)4)*,/\5$0!\;N+ &+
'9,"- / ,"'C)C+ !C! 05)C,##& /";J,2 +#M C'9*#-90!/!0%1= QQ?_>+6, 0%;"H80%E;!!
',2 5&#a &A ; !;9,##,)*,G'.#;!&,;5)C0A', #&,G= QQ? $0%;98/&,3$,2 + +#&")," )* A$ !%, )C"+
A ;9E@# ;-@# ; !E 0%#;!&0%X +2 !&@ 07,2 )C,G#&E)*,M##&,;9,>O?@,:' (E +2 !,,6'9E90!/!&0%( 0%3
a0%!&0%P'9,J !;'9, '9 7,8/#9'9,\;9 ,;95\'91#:,2 +. +/!&0%D>H #O +7&]GA+2 !,5!G_'O,2 #M +
;9B+2 !;' 5/!LA ;9F'1#&"'0%)C9F'; 5&,#`0%+5G(#M8/#'/!&0%V'9")*0O' , #&, '= QK? /
5$0!1;Q+ &+('9,(4 / ,,>
'&+
, -#+"&
Lt
c "> 7# ><D O ,'/(&90%;"4/%M/Q& 06 0P'9+8,#&0./K'M 5; ,'B$A ,)4-27>
HR(,567*`,'& 0A*!!"$#%"$'&"()+*,"-/.("0+*1!23465'"798;:7*<,Cc!= P ) c P *
,60H8,) $+Nc PP A= > H?>@ , d P = BA d dC d >
d > "
> 5# > 0% 7;!&0%=' ;9 0%)C/!5)*,=M'; 7&,#*,8,:
> HRED ,@DF
DF
*
,'& 0A*FHGB#<$I" KJL8@JNMKOQP R@S *@c PPBT >
VU >W"
> 5M# >6XY*,"K-[Z\-L!I] >) 5'! =:&8+7!& $ _5,!*@c PP A= >&H%>,C
, C d c \^ P O= c P C >
^ >W
5#`'S?_>K
_ ;!!/+>FH 3 !0O';+/N'/$O)C60% 53!1 @>OHR`!!"$#%"$'&"a+*@"
-.("0+*1!2 *.80%#;)*"?O, [B
> c U P U *b. , A U ) c d A * 95* 7#]c PPA >c>1 5/+e]d +5#9>
C > A)-> 8X+2 8,#&0$ ,)*,GFa05)*,#G',@#&0%+&,#M@3,2 +;95&!!,U'95
_ D DDKE
>H f#g;&h!ji"0#?"0'&g"
+*@"k-l.("0+*1m2 *'. , U ) c *[c PP A= >
= > A)*) >n ,90%* >)&8A!*I' > ob
_ >X
_ $O'&+H>H5
_ D DDk
' 5;+, ;#G. #+/!&0%
0 -*#M/Q !0p ,+>?HRrqs#tu2aHG#%"v8Y#.w5t<x)"0+*1!2- *b. , U = P ) U ABT *]c PPP >
T :
>j +7)*0%'D> 8:,N? ,2 ++/!&0%Q 8+5E#4)*0O' , #& =LQ
_ ? '9,E'90%+2 ,*U 0 ,) ! d d >
6
$ 0!@'9<!!*78 D>> 8X+2 8,#&0b` ,)C,G\'9<?U0%+&,#yM> ;9" 5* ?j> DQ_ , 1_ *) /7 0?27>
A 8N>Y +!*`> >; 0%;#) 2 *y_ > ?_> 0 +* >Y
AA;9+*U' ?_>;]d 0%5D> ' !#& 7!#/ 0"0
z>1$ ,++/!0%" 0ND<) $,'9,' <!05)C,> HR{8jx|}P ~1B€ * 80%#M;)*V?O, [> d A C *. ,
P ^ ) cc U * !9H !#M&* d U ><>, 5/+ \]d +5#9>
P _ > '90%&N' >FX
_ 0%!!,+>‚;JQƒ1O…„y0"0#wx†5‡5teZKˆgb9#?!2‡&m9‰9\r„Y‰ŠHG†+*,"‹..}
JKt G1"mŒ$#?5‰&fƒŽ@"h&0‰ &h59‰‘OY5HGB‡@5mGH%" *[80%#;)* d P >v>, 5/+ \]d +5#/* d 9^ ><H?>@ , ' U C ^ d ’T == \N“ >
c w” >( 030O4D> •–Œ9—!"%&m9Z•e#‰\"$b"h2˜JL'5tš™g‰Š5'2˜M›"‰œGBž‰++*ŸJŽ’Ž't ‰&h5B9‰97 > 9 ,!p )4'¡ ;)4)C/% <;/.#M/ 0%)} $*/HR*!,0%'-,'&!0%*Dc PP 9^ > H%>,C , A C U C U ^ d >
cc > >C9,D> 9S,3!& $ !,#/!&0%u )*0A',#G' 0m /5' B;,' 8A&0 0('/!O>NHR`Jw;x
X#?5@$5’&!9‰)sM5\5’Œh50"ƒb™n$"$.- *' , P ) U ;= *`)C/5"c PBT A= >
c d w¢ >C9,D>¤£,5¥5˜5#?2lX'"h&$*’'tœ%GB™s0#ƒ.}5#$5#?2†¦kJL#§&0*’‰9"%&!9‡,#%"†5'2‘¨©#§hG#?5.›.}"0#,P ª ‡,‰2’" > '' 0% \J
« ,!#$* d > H%>,C
, d cT U d P T >
c U 8N>0%#&,)C*[> 50%#'*y`> >Y 0O'90EM*:>+8:0%##M*;E
> ” #-95 * >Y:
A$,A*\' > +5,)*,+>
•–Œ—0"h&!9Z?#‰"0b"%2M›"$¥"0tœŽ'.("$b6¦wXY*,"f8F‡1g‰`x)"0+*1m/2 > <!,3!v6
#M#*FD/%#&0
030O' #E$*
, *c@D ,p , 05&,3 ,'K +5,,'&!&0%*@c PP 9^ >
c$^ >'0 3;3' ” >6
;9++>›XY*,"›&h5tu&0‡,tš‡1¬§¬&h@9#‡&!9‰ > H / > 0%)w@ >*@c PAA > T /= 0 d 27>
c C 0!>-–Z0X'!t ]n‰9¬„Y!"$#@P Lx†5‡5t 3N7!„;­–:¬O\/2 >D ;a05'.0B=L® 2-*Uc PP A= >
,#&, U > d >
c!= +! 8N>:' H8 > 0% 5;!&0% 0 \& ?[$,##&,' 5!!&0%‚;> $O ,)C 50%)¯
7w;
> $O ,)C,> H `ˆ?8x~1’BI *\80%#;)*S?O, [> c P ^ C *j. , d U C ) dC /^ * 8:%!!;!#* d >
>, 5/+ \]d +5#9>
av
av v
v
v
vKv
av
v
vKv
avKv
v
vKv
v
v av
vKvKv
v
v v uv
‡t
d^C
vKvKv
d ^’=
c T >&8’>O#&8/ *:>&8:A $0%9,*_' >_X p!O> 905)C#%`,+L+/!&0% K'9+8,#&0)C,GC0
M'; 7#]#M+/!&0% ' 9S!;/1 $ ?$+,' 0%G !0%#)*,-5)-> HR 8[•LX<|(P R’*y.,
d v’T ) dd c*]c PP c/>
c A › >J8:M ' >]?@0%;!`+7!/>1HRG 5/!M/†>A 5;!;95,' ' [07)C# }_K+90A'<' d:M!;#
50%4X 0 d@k
8 _ > HR† €B'2}ˆgb"$#'59‰'5tem0"0#?"0'&g"Q|©ƒ1|QkP RB*', U T ) C P >Y>15/+ d]+7#/c* D 0$+Ec PP c/>
c P D(V> « >J8 pA! 5O
> J 2‰ 0&0‰ Ž'tš‰Š "s§6Ž'#§hG#?5.›.‰+HG%> _!,3! :##*MD</%#0 0A0A'+*#E$*c PBT =A>
%H >,C,' v c U d c C ABT $c “>
d v E>38; * [> ®"* ” '> 0%!*.' ” > >O)CD›
> XY*," •–Œ9—!"%&!
ƒŽ"%&0‰ &g59‰9aO;51G‡5!GH"+>860 ./ ,)C,GP0(0%w) .;9 +*!+&,>M=6&8+5!& $J0 ;9+,5#'* ; 7 * >A0a /! d]+5.+/!&0%
(, ,/5- ,3 +A*H837#]c PP c/>
d c E> 8; * ” ’> 0% *3' ” 1> >9)C&D<> D@, p , ¢ 'G¬
>1$,+.+/!&0%*?U/%; '980A+/ ,' 09
8:,!7u !&0%K0 >A!'/5'+> ,4+Y# (0 `05 P ^ \^ C *=6&8+5!& $=0 F;9+,!#''* >A0a /!
d]+7+/!&0%v
(, ,/5- ,3 +A* F;9+,!#'* ; 7# *!8:,,) $+Nc PP ^9>
dd >$>!8:; ;/$* P>?@,'97;*9v
' _b> C! / ,+0%;'@>?H 3 5/!!f Dk_ s' D@, p , ¢ >JHR -jƒ
8@J}jƒ,|¬•eƒ¬•k•Fx q#h]nh*1Ž3*.?U0%'90% L
= ®>*@c PBP T >
d U >$> 8@; ;/$* N>\?@,'97;*@' _b> C! / ,+0%;'@> 5!#/!/K9 Dk_ '!$A)4C)*0O'9,#
MG f0 D , pR, ¢ >JH † ’+*)!!"$#%"$'&"›§‘‡10"$#g-b* , U ^ T ) U ==;<* +5# ” +5)C $*Uc PP A >
d ^ D(W> E>38:;!' @> d_s
®"/ ( p`> d@k8 _ 05)4Y# >1$,++/!&0%-?[/%;(a0N D@, p , 07&,G ,'<8:,!%@>+H .NŽ'‡@"$#Kƒ™$"$.k5'2w0§$9F5#?"K|©HG‰+ "h"0#g‰+HG ’* , d $c ^ ) d c P >!H D&D D
>O0A+&+ $ _!,!A*@c PP d >
d C > 0%;!A;9+C+}
:>_?@,/7' + ,> d_,#&++> =6 a05)C/>,,2 '+2 5/ ,;9 `0%;P# +2 8/#;/!0%'9
% ,2 ++/!&0%? 05)C,##&,\,w
505)C)C/!&0%*#0%L3;H8,(0%3 53 ,+> H } _Q&!,#M#& 8;+532 *
,'& 0AF* ¨e#?%G#?5.›.}59‰‚"$‘OY%G‰0‡b"s5¥"h&†b9#?5‰+b"g3Q£8¨O[kP ~1B€*<80%#;)* (07N!+5&
K> H<90 +8O;9K'9, >9+&,,P+ ,40%#&0%&K'9X#:H /a05)C/!0%32-* , d v U ) d !c =;* )4&,*
p!; d vKv U > (+7)*,(?[,80%!+,>
d = _ > :> ” ;'9,#:+ :e> _Q/!!L+ [> >94#,/+=+ ” ©> +590+/
> ¨©#jmi" &0‰Ša2’" G[$i" ‰\"atu%G‰&0‰\"$t >
_Q! 0%+*Uc PP =A> %H >,C, d dd C A C c AP 5c/>
d T @> 6)4)C'S+e :> /!L`0%; + + > H> d]0%59++>O8:F#N? ,2 ++/!&0% V8+5#&,'5)4)*,
'+ +2 !/! 5!&!0%L= _Q?_>GH E
S0‰$I" .("6x jƒ1|FJLˆ,P ~,B~†79x‹5!G*’#?"nŒ$‰5 m0"0#?"0'&g"(§¬ƒ §gF5#?"
|©HG‰+ "g"$#‰ŠHG 5'2wˆgb"$t+t ‰uGH"0'&g"kJK#9‰ &0‰5t :7@* ,c UU ) $c ^ U *D)C d vKv d >
d A > ',;E+F8n> +5U+ >$m> 0%;#) <2 +j _b> ?<)> 0 +[+F,E> >A 0%;#@+U?_n> d]0%!D> 5';!0%"'9
8+5]',]#/%,_'9 !07)C)C/!&0%<' $0%3! '8O;91'
; !0 p + [Dk_b> H } JL8@JNMKOQP ~1B€*
., ABT ) c v d <* ,,* d vKv U > §H %H > >
d P › > > _K0%J+ ” j> 6;9++E
> .NŽ'#?"0'2#%" t " . !i" +*1!2’"$N0#.}"0tŠt " ¦F¨[5'#?5.}5)"0k‡@9‰+t tœZ
GB‰
!‡b"7F> _Q! 0%+*Uc PP =A> %H >,C, d dd C A C U v ^ C >
VU v 8N> 8Nc> D/#k
D!!)C@+ c> >A0%;!A;+ !,(+ > / > A;90+L> DK+2 5/!&0%:'90% 5;!&0%Q'9
% ,2 ++/!&0%6);#&! 8O;9,1;)C#$+ U>JH s
JL8@JNMKO6P !* ,Ecc C ) c d P ’* p!; d vKv ^9>
VU c :> /!$0%; + =+ > > d]0%59++> #;/% @* H$ $ 4, O//*C[,2 +2 5/!&0% 'Q0O'9}
p!,8/ +
8O!;#!/!&0%K'9Q !0 p +!L , _Q? '(#MC90%;98,##Q #/ a05)*[ p 0A0%#+>HR‹ £@‡,#Qmi" "$
2‡fG#?‡nŽ@"Q- 2‡ ª MlJNOy¨C* C, _ \/5M* 95* c U 5$c ^kp!; d vKv d >
VU d > 9 OL +K?<> ,)C6+
>`–> _X+ > 5 05)4/!&0% '9,X? ,2 +L+/!&0%v , ',-' 7)C)*, L= _Q?_>GH JN8@JLMKOQP ~1B,3kS!+*‘!ji"0#?"0'&g" ¦yJeŽBŽ'#?!&0*,"e$#g.("$t+t "[Ž@‡,#t?P 5‰92H"}5‡
2©$i" ¥"0tœŽBŽ@"$.("0b[2’"¬tu%G‰&0‰\"$t -* .,Ec U c ) $c ^’=;<* ,! 0%* 5* p!;L!c = 5c A d vKv ^9>
d^T
VUU ,>b>A 0%;#+[_b> ?<> 0 ++>MD.t1.#+&!/!&0%=';S0%G I0%" #"'9:'+2 8,#0$,)*,G!© +2 8_,2 9,)C,G!&,# >
HRJL8@JNMKO6P !*@,Ec U ) d A *’p ; d vKv ^9>
VU ^ ,>;>A 0%;#6+K_ > ?_> 0 +F+N“N><_X05!,## > ” ,2 n2 >;$O >' ” ,2 +2 5/!&0%b' ;K $O %, )**'9N 5 5&!&0% +2 !L3;+3+2 , †./!!&V' ;9B?,2 ++/!&0% +2 8_,2 9,)*,3!&,# >HRrJN8@JLMKOQP /F* .,
U c T ) U d v *Hp!; d vKv ^9>
VU C > >b_K;##&++ ,E> ” +!!+,>x†!2©0i" t ‰Š$59‰‹’Œ—0"!F5¥"h&„<xO\> D&$350%##&,* d vKvKv >J?H >,C, d d c d v P c dd d >
VU = E>–_K/7+90+5,>?+2 8;$> 7 a05)C/!&0% ' 90!/!&0%sD*1? , t,!,!!0% 6> HR
JL8@JLMLO6P ~,B*., U P ) ^ P * d vKv c/>
VU T >BA) + >8:, 04,_+>’_X p!O> #M+/!&0%'#M6) +2 90O'9[ '\# M'; 7&?a+!!0 8O&5>?H aJŽBŽ t ‰&h59‰)2H"fX "%&$*H‰
!‡b"K8Y#g.("0tŠt "5‡ O;hG‰&0‰\"$t b* , C P ) AA <> D@. +!8// 0%&!
a5 + M'9,1 ,-LA;9,H8I.+2 ,*$?UH80%!&+ )D W+#k8 D#@*Uc PBP T > U >
VU A > !&042 + > 0% ,/"+ ” j> >O# ; @> HRGA2 5/!&0% '9*'90%+2 , 07)*,##&,'F#,F' 7)C)*,('+ +2 !/!:' K= _K?<>?HR > o_ > 2 `A2 A;9,#*,'& 0A'* JL8@JNMKO ~1B€ b* , U ) c T '* ,9,*
d vKv U >
VU P > ) `+5F+
>`> C9,)4B+6 :>U?@,/5'@> H 332 5/!&0% '9C'90%)CM9, -8//5#&,'";
!0%#&8,;9X'9J0%3 53 ,-, ,) #! ,+> HRr
_K&5,##&58;+532 *(,'& 0 [* ¨©#§hG#?5.›.w5B9‰9/"0
OY%G‰0‡b" 5¥"%& b9#§5‰Šb"$h3K£8¨O[kP ~1B€* 80%#;)C(
(07E +5( L> H90 (+8A;9='9, >O+,,
+ ,-90%#&0%&'9E#:HR/a05)C/!&0%32-,* , d c T ) ddd * )C,n* p ; d vKv U > 6+5)*,?[,80%5&+,>
^ v > 0%* E> ?[#&,;*]‘
' E> >J,#%;/$,D†> _Q / D@, p ,>8:M5)CP3 a0 z>1$,++ !0%+>+HRf >15/+ \d]+7#/*G,' 0A,* x)"0+*1!2[ˆgb"G#?59‰Eq#h]nh*1Žb3j|et "%&m9#§b‰9&qs#g]mg*1gŽb
‰+{.NŽ'‡@9‰Š1G7 "@qv‰§':n3OY"g"%2 7m„<­–:Ib* _K/74 c PP =A>
^c > M!49+H
> .(Œ0‰Š'5B9‰9{5 2s‰+.NŽ't "$.("$b\5B9‰9 ?LŽ'#§m&g"g0"$ 5'2 M5\5Q#?. jƒ1¨©Z• \
£@5¥5/> & 8 ,!*!=:&8+532 ' D#'9, ;94/* ##&,)C%* A;/$ d vKvKv >
^ d E> 95* > _ F> 5;9,#F* _ ><?[/!!0%'90 / + 5*_' D> ” 5G+> (0!0%;*0, p , 05&,3 ,'
)C0A'9,#M/ 'JH 3 5/!/. 05)4#1'/a05)C#90!/!&0%+> H +*‹ˆgb"0#g 59‰9'5teJLxsJQƒjX
!0"0#?"0'&g"b* , d !c = ) d U v >D?O, [>Bc U ^ P * %H >,C, U C ^ v o= U AAA 5c*<c PBP T >
^ U > > _ > d_ ” ! +!,DF> •e +*,"[h*15Ž@"K§©.}5+*,"0.w5B9‰9&g5tc5#9GB‡1.("0b+7<> >15!+ \d]+5#/*/?O, [>
^^ C * c PaP v > %H >,C, ' U C ^ v Cd A ^ aP v >
^^ › > > ” 0%;,* <> _X, %;+A*D' 8N> <#M ,'Dk
> ¨e#?%G#?5.›.›‰ŠHGa‰9+* ¨–5#?5.("09#‰ n"%2 JQŒ$9#§5B&m
•–Œ—0"h&!+Q‰+‘•F-–£A> 9+0$V' <5!"0 >A0a /! ,490%#&0$*3,60! 60%##'*Dc P A U >
^ C 8N> ” 5&,+¬
> XY*,"¬ƒ &0‰\"$'&"¬?L¨e#?%G#?5.›.›‰Š1G–> >15M/+ \d]+5#/*/,60 _0 k= > *[c PA c/>
^’= › V> d> ” ;9 !/* > > (05//*' > _ > « M/9> XY*,"eO;5#§&0*[$5.›‰+tŠtš™?e\Ž@"h&0‰ &h59‰ tu5HGB‡@5mGH"^>
H D&D ED >A0a /! d 0 C 2-*[c PA C >
^ T b> :5,> ˆgb9#§m2‡&!9‰zI5 tœ5(Ž¬!i" &!‰ &g59‰> _Q! 0%+*Uc PP U > %H >,C, ' d dd C A d T = A v >
^ A y> :5M+s
> ƒŽ!i" &0‰ &g59‰9 $#.("$t+tu"v5¥"h&}-> 6+5)*,E5+&, ;/#+/!0%* d vKv c/>?H >@ ,
d T ^’= d v U v d d >
^ P ;> :)C)C'<* :> /!L`0%; + * > ˜d]0%!+*@a
' « <> «J,u ./9> 950%) l>,`,+L+/!&0%B 0
= _Ql
K
? >A!/ ,-/!<85)C+> H +*‘ˆgb"$#'59‰'5t!!"$#%"$ &g" 8;#g.}5t©|eHGB‰Š "g"$#‰Š1G
x)"0+*1m2h3ˆ;8j|xrP ~1B~ c* > !%* C * DF 0`+ d c d C4d vKv d >$?O, [>`>
C v 8Nc> 6/5,# K
> >A!/ ,-/!!9' 8A5;#+a05)C#M!) a0:0%w) .#& tK $O ,)C+¬> ƒ'&0‰\"$'&"w§ .NŽ'‡@"$#
¨©#§hG#?5.›.‰+HG * A 0 U 2 ' d U c ) d T ^/* ;9Cc P ABT >
$ d^A
ut
C c > >H
E>160%/!> S O&0%)4/! 5&a00%)w;9 +!05)4)C/9>HR).›.›‡,‰&h59‰@¬§
+*@"kJw;x *980%#;)*Cc d *, C T = ) C A *\c P = P >
C d H 8/> 9kd@8k_ 0 ,8/ 0O'9 ” ,+5/ 0A* d >
C U H 8 > 9(8@$A)4F?U \+#& $ a0[d 8k_ * d c/>
C ^ H 8/> 9k@
d 8k_ ?U7/$* d c/>
CC H 8 > 9k@
d 8k_ O> ? 0 0O'9 ” ,+5/ 0A* d c/>
C = H^> 0!0%*c_ >$C95M +5 0%* > 0%! 0%*$' ” >;:
D 8+%/5'@>v•–Œ9—!"%&!9Z$•e#‰"0b"%2 ƒ §9F5#?"
|©HG‰+ "g"$#‰ŠHG ¦;J „y0"&g50"kM6#‰Š¥"$vJŽBŽ #§5Bm&$G* > '' 0% \J
« ,!#&$*@c PP d >&H%>,C
, d c C ^^ U C >
C T « > 0 0%Q' ” ><(
0% > ” ;'9,#M9,a0:N)CA;# 0%G8+7!&0%B0e@
D @Rp , ¢ 0 9*
U
U
c PP > ,4+#c
0$ 0! P c$/^ * =6&8+5!& $*0 ;+,!#'+*1A> 0a /!k]d +5+/!0%f(
, ,/5-
,G +A*;9+,!#M'* ; 5# *Dc PP U >
C A >n:
> 0%9,+>ƒb™n$"$.}59‰&[ƒ §9F5#?"eM›"$¥"$tugŽ'.("$b;‡H‰Š1G MKJ
x > _!,3! :
##*I=–$ +j9> ''#&
6
&8+A* , ’T ^ C A * =k> *@c PP >
C P C
® >`?[909> ¢ 9*. @
D ,p , 05&,3 ,' D O ,!&0%Q 0 ¢ >GHR `‡10"0#6F#g]mg*1gŽb3(q#h]nh*1Ž ‰+
&g.NŽ'‡@9‰Š1G *b. ,Ec C c ) c T d *YD 05'10B=L® 2-*Uc PP c/> >!D(>!,6M490%##M*'>1 5M/+ \]d +5#9>
= C
® >?[909> XY*@"v-¤OY5HGH5!GH" 5'2†x†"!+*1!2 ¦Q5 ª ‡,‰92H"\‹¨e#?5B&!9‰&h5t[8Y#.w5t[M›"0¥"$tugŽ'.("0b >
>, 5/+ \]d +5#/*@c PP A= >&H%>,C
, U C ^ T = UU \9^ >
O= c C
® >[?U0B')E
>j6
;! G90%@> H )} !0H8O/K9 <!0A,5E0L> $A ,) >1$ ,++/!&0% '†(
.)*,3N‘: > H +* –"9.("0bkF#g]mg*1gŽ ˆgb"$#'59‰'5tJLxsJQƒjX !!"$#%"$ &g" >J8N> ##
D'& 0A*'>, 5/+ \]d +5#/*Dc PP 9^ >
= d C
® >?U90/*[
>[(
0%;! G 0%*6' >©« 9+,#+,>z8Y#.w5tLx†"!+*1!2†5'2‚•–Œ9—!"%&msX'"h&$*’ tœhG™E¦
ˆg'"\G#?59‰+HG)8Y#.w5tK5 2‘ƒb9#g‡&m9‡1#%"%2)x†"0+*,!2s‰+•–Œ9—!"%&!9Z$•e#‰"0b"%2)ƒ™"0. M›"0¥"$tugŽ'.("0b >
>, 5/+ \]d +5#/*@c PP A= >&H%>,C
, U C ^ 5c PPBTT d >
= U >D?@,'!9> 8:,F+F' ;!#!/!0%V;9%
,2 ++/!&0% :
> H ‹JL8@JNMKO6P  *' ,*c U c ) c$^ *
av
vKvKv
vKv
vKv
vKv
v
v
av
v v
v
@t
Lt
v v
v
v
,:%$* d vKv c/>
=^ >.?U,'/9}
> X@#?5B2‡&m9‰9‹g™@0i" .w5B9‰
!‡"}2’"6\Žmi" &0‰ &h5B9‰9„;xsO "$-(> !8 9,!M*?jDk
H =68+5!&A 2 ,:%$ d * ,6%$ 95*0H8,) ! d vKv d >
= C :>U?U,/5'* > ,;9!,; t *@)
' _b>+=6 !/9> 0%w) /5M 0%L09} ' ¡ ¢ , ,+5/!&0% )*+90O'+> H XY*," d ˆgb"0#g'5B9‰9 5t ‚5'2- !0"0#?"0'&g"‹7 -fP ~0:I* 80%#M;)*
? , –> dd T d b* , U v P ) U d P * ” !,90#* 95* A;/$ d vKv d c> >17/+ \ d]+5#M9>
== “N>?U+!0 $> )*0O';#M/)*0A';#& $A! ,)* 5#\c PP =Ae> , ,/5-X!0 $0! d A ==;*3H L
, H >
= T _ >$?@,;!-9,# a
' _ c> ;!#&+,> <!B0 ' )*0O'9,#U-9, + 0K :>GHR ®F, p &50 7 A<* >A ” 9,!*U'189
0 _Q'950%#*`,'& 05* 8jx| ~1B€‹¦F8Y#.w5tx)"0+*1!2-*[? , –> d Aav C y* .,
CA C ) ABT ^9Y> >15/+ \ d]+7#/* d vKv U >
= A >@?@0% ,; t y* >`> ” 5 * y> >O AM* Y> 0%;n p+p *@†
' >`;> ,!#,)-> _!0 $+! $ <!, +!8O/
7!&0% a0F9w
d6+7+/!&0%B0 0%+;9!,36 >;$O ,)C+> H † 8Y.}5tjx†"!+*1!2w‰+†ƒ™$"$.
M›"$g‰uG!*980%#;)*6
=;* ,c ) U =;* c PP C >
= P y> _Q#&0%; 0 8.> ‘
D@, p , ,' !0%-b 0X( 05)CF# _K+90O'D> HR) -fP R["h&g"0b
J¬2¥5'&g"$ ‰ŠE+*," M"0¥"0tœgŽ .}"0b65 2˜„y0"s§v+*,"f-zx†"!+*1!2* .,K!c = d ) c A c©
* _X0%3? $,##&+
U
U
5*[c P
P A >`?O, [>Lc P >
' d^P
Tuv >_Q)C)C/H> =6!#!/!0% '95 9,($0%;9C#b?,2 +L+/!&0% ' 07);#,*!,#/!&0%9,##&,*
!0 ,) ! c PPA >r
6$0!C'9Q!!Q'9 8@D HH D H , DFd@D 0%0!0% '9,= $A!%, )C,
M/ 07)C/!LA;9,1,8/,2 +>
T c w” >_Q/5909>’|e¥5tš‡@5B9‰9f2’"tu%G‰&0‰\"$t &0#‰99‰
!‡"$2©0i" ¥"$tugŽBŽi" ;Ž@5#tu5L. 0i" +*1m2’"- ¦„j "e5gŽBŽ #§!&0*,"
!‡5b9‰9\59‰Š¥"> !8 9,!M*A=6&8+5!&A<2 ' d_#&,+&,9,D+['Q; 6M;9 ) O,2 !A*H',2 ,) !
c PBP T >
T d :k
> _X$+H> '&g" Ž 9‰9 "0QŽ'#?%G#?5.›.}59‰9z#g‰\"$b@ni" "‘HŒ9—!"0 > D&$350%##&,* d vKvKv > %H >,C, '
dd c d v P ccc T >
T U D(’> _X$+Hc> M $i" ¥"$tugŽBŽ@"0.}"0bH$#.("$t Ž,5#K’Œ9—!"0+–¦ ‡@9‰Štš‰Š$59‰s&h!—$‰Šb"K2H"-˜"0y2YP „;xsO]> &!8
,!*? DK
H &=:&8+7!&3 2 ,:%$ d * ,6%$ 5*.)4/5 d vKv c/>
T ^ D('> _K$+:' > >O0%;!3;B+ !,+> >;$O ,)C/!M b!0%4K 0 7 a05) Dk_ 85)C( 0
˜>1$,++/!&0%D>MHRs 8xrP RBRb* ., ABT C ) AP C >$?O, [>Lc TuvBA 80%# >Uc*Uc PPP >
(
T C >9; _KM!0% $O ,)C+> ,8/ +/5' d > d ? $,++/!0% ' '9+8,#&0 .)*,G A& ;95# '
3 ? . ' ¡¡%p!,8/O> !;@> 0%) ¡n!0O';!g ¡%p!,8/+/5'' ¡3>
T = ,>,6%; ( 5+> a05)C#A 0a /!? $,++/!0%" 0A0%#A;!/69,3!& $ !,#M/!&0% )*0O'9,# >
HR +5+#,"?@0%;0 $0%;#0%*D,'& 0A* |eb9‰99™Z["0tœ5B9‰9h*’‰ Ž`JeŽBŽ'#?!5B&$*)ZN| P R,3e-–‡1g‰+ "$h¬x‹Z
2H"$t+t ‰+HG5'2 ["0Z|©HG‰+ "h"0#g‰+HG3N€B+*ˆgb"$#'59‰'5tKm0"0#?"0'&g" +*,"›|e'9‰+9™Z ["$tu59‰@h*H‰WŽ
JeŽBŽ'#?!5B&0*B3Fx‹5'&0*,"$"$#g3¬„š­ 3y¨e#?!&g"g"%2‰+HG-*$?O, [> AA cb* , U c C ) UU d Y> >15!+A*`c PP ^9>
TT > > ,#%;/$,D©> M 0i" #g‰+¥5B9‰9‹2’"6Ž!i" &!‰ &h59‰@F0#.("$t+tu"$K- QI5 Ž,5#$9‰Š#w2’"6Ž¬!i" &!‰ &g59‰@Q!"$.›‰ŠZ
0#.("$t+tu"$7> &!8 9,!A* 0%!+!8I/ 0%! /!&0%#N'9,L/!!B+B) +2 !&+7* /7 97*
',2 ,) !Sc PP A >
TA >$> DL5* > _b> (; ;$*[',> > I/H> dQ> ' !0 0 H$ $S8+5+/!&0% $O ,)->5HR
8:+0 Q®E ;9A*,'& 0 H* B+*Kˆg'"$#'59‰'5t<!!"$#%"$'&"[¬JK‡,\.w5B"%2–M›"%2‡@&m9‰9 7;JNMK|:7*
80%#M;)*v = v’T 0K Oy"%&m9‡1#%" 46B" ‰Š‘JK#9‰ &0‰5tFˆgb"0tŠtš‰œG1"$'&"%* , T ^ A ) T Cd e* >O/5/ 0% * , *
;9Cc PP d ><>15!+ \d]+5#9>
TP 8N> +!&+> ª 0i" 6$i" #?59‰‹5‡@\.}59‰0‡b"›2’"&h.NŽ,$5betu%GB‰9&!‰"0t k‡, #g`KI5 Ž@5#9‰+#2H"kŽ!i" &!‰ &h59‰@
0#.("$t+tu"$F-(> &!8 9,!*I=6&8+5!&A2 '9F d_#,+&,9,[+\'¬
; :; ) A,2 !*/',2 ,) !
d vKv U >
Aav _ > ?_> 0 ++> D_!;'9 'ž
; .!! '9˜
./5)<+ !, ' # ) +2 90A' 0 !M)C! !0% ) ,2 )C0%&!* d vKv c/> 6 $0!K ,-LA;9 '˜
; !0 pR+ [Dk_ >@L= (? ' G ? ' ¡¡I# /> ;8 0%) >: ¡
+!/!L`0%;+g ¡n« D [Dk_ >
A c ,> AA;9+' ” 1> 0%5!;D>+D<) $,''!
905)C##L$ _!0 8,' 0O'9:4› >O)C/! /5' ' 0%38+ !M/} 0 :>JHR 8;#g.}5t;|eHGB‰Šc"h"$#‰+HGwx†"0+*,!26~1’BIb* .,Ec C ) dd * d vKvKv >
A d › b> (;) ;! * _bb> # * « > _!,)*+7#* > D&8 8 *.' « >.?@0!,!,DQ
> •–Œ9—!"%&m9Z§#‰\"$b"h2
.}!2H"$t+t ‰+HGv5 2 2’"‰œGB> _5,G! :##*!,60 +5 $*Uc PP c/>
A U > >9490A$,#&,D> ($i" #‰ &g59‰†2’"6tœhG‰&0‰\"$t 7F> d_;$+!*Dc PPP >&%H >,C, ' d T cc T A =^’= U >
A ^ D(Y> >A +5 A > ” 7 +# '9,!%B0!,!&8C $O ,)C+>HR‹
-fP R¦ ["%&"$bL5B2¥5'&g"$›‰+)+*@"
2H"$¥"0tœŽ'.("$b5'26‡10"L§©+*,"e-–Zx)"0+*1!2* ,1c A d ) c PBT *3? , [>4c U P U H* _K0%G? $,##M&+ 97*
5M# c P
PA>
A C E> >A+ > ¨©#§hG#?5.›.‰+HGstœ5HG‡5!G1"¬¦©'&"oŽ +›5'2 &h@9#‡&!+7> '' 0%f
«J,!#&$* c PAP >
A = _ b> > 9!0EKf
' EW> :> 5> n0 /5' 05)C#M ,/!&0%=0 K= _K? #M!e >O 5;!;9!, ¢ >OHR
e•Fx¨eƒ1J}kP R@SA*@c PPBT >
$ dC v
ABT › >>O O+> ;,' !0%- a04 !;'!$A!B !0$+!!&,P0: 5!!&0% $O ,)C+> HR
XY*@"%#‰+9‰&h5te.NŽ'‡@"0#6ƒ'&!‰"0'&g"*980%#;)*4c A *b, dd T ) dC A *]c PA d >
AA 6
/!&0%#
O> 0 o /! 0%$ 05/!&0%D>
„j‰ "%2
x‹!2H"$tš‰ŠHG
O;51G‡5!GH"+>
3 ?. ' ¡¡n–[" > 5/!&0%# > 0%) I¡ ;)C#*'O> G! #/5>=k> *@c PPBT >
A P H^> A> 0%)4)*+!8O##&>OY"KG[$i" ‰\"6tœ%GB‰9&!‰"0t > '' 0% \J
« ,!#$*@c PP d >&H%>,C
, d ABT P BA UU P >
P › > b
_ >;>1 8$> XY*," `'\59‰`¦yJ #%"9!"$#%"$ &g"x‹5‡5t > d 'K,'!&0%* <!,3! 6#M#*3D/%#& 0A0A' 1# ED*/, >*Uc PP d >
P c O> +5O> ,#&+g
' _!,;8,1+ O,)w #&,* d c/> ,#&+N 8+5!&0% U > A= >
P d O> 3+2 7O>jJK"0t ‰\"$#©-©3;x‹5b‡"0t 2;P ‡@9‰Štš‰Š$5"0‡1#ZQX'"h&$*’'tœ%GB‰"$62’"Lt?P ‰+!0#g.}59‰ > , /<!0H8,
0?2-* c PPA >F]d +5!0% U > C >
P U O> 3+2 7O> Q
_ 3;,#9'9A2 ,+2 !,:';P#/%;[:
> ,4+#O!0$ 0!*’A> A+2 5 * d >`8+5!0%-c/> A >V9^ >
P ^ :
> /!$0%;9++> D_8/#;/!0% '; 5'; ,; H8IO>{6
$ 0! ,-LA;9-?+H @*F
,! 0%*
av
t
av v
vKv
vKvKv
‚t
/0+;" d vKv d >
P C :> /!$0%;9++>9?UL#/ a05)*yp% 030%#M+> H f£@‡,#g6ni" "–‡@9‰+t jŽ,‡,#L"!y5‡@\‡,#–2’"e-G*H ,L
GD > ?[##&* 97*[c U 5c$^Qp ;M d vKv c/>
P = :> /!$0%;9+* > 6)4)C'*_' > :>d]0%!++> !0%) 5 z>,`,+L+/!&0% 0
=K_Q? 1#!?85)4+>H s ~B'26ˆ?||F| ˆgb"0#g'5B9‰9 5t<ƒ™.NŽ,g‰+‡,. ƒ‰uG'5t@¨©#§!&"gg‰+HG(5 2
ˆgm$#.}59‰EX "%&$*H'tu%G™ 7+ˆgƒbƒ1¨FˆXKP ~1B~!:7* , C ) c v * 86,,) $+ d vKv d > H?>@ , v PBT d T c A = v C >
PBT :> /!$0%;9+* > AA;9+* > :> d]0%!M9+*' b> :)C)C'@> ,8/ /7' 0O'9 ” ,9+7/!&0%
a!0%) >1$,++/!0%+> H +*›ˆgb"0#g'5B9‰9 5tF!!"$#%"$'&"Q 8;#.}5t'|eHGB‰Šc"h"$#‰+HG6x†"!+*1!2
79ˆ;8|FxrP ~1B€$:7* , U v = ) U c A ;* >O!% `05*!,(0 8,) $+ d vKv U >`?O, [> d AA C >
PA :> /!$0%;9+-' > :e> d]0%!++> DQD? > ' d K= _Q?'( #/ a05) ' 0A0%#
0 <!0H8O'9LL= _Q? #!<85)a!0%) >1$,++/!0%D> HRr
ˆjƒƒ1|FJP ~1B3}+*
ˆg'"$#'59‰'5t!!"$#%"$'&"L ƒ'§$9F5#?"K5'2¬ƒ™"$.|©HG‰+ "h"0#g‰+HG›5'2 XY*,"0‰Š#JeŽBŽ'tš‰&h59‰@ *
80%#M;)*k d]0%# d * /7* 95*38:,,) $+N ^ o= d vKv c/> 05)Cy# _K+90O'N >A,5!&0%D>
PP :> /!$0%;9+' > :@> d]0%M!9++> ” ,9+5/!! >A!/ ,4/5!#a!0%ž
) ˜>,`,+L+/!&0%+>JHR‹ +*
ˆg'"$#'59‰'5tK!!"$#%"$'&"(‘ƒ'§$9F5#%" 5'2vƒ™"$.¬|e1G‰+ "h"0#g‰+HGa5'2+*,"$‰+#}5gŽBŽ'tš‰9&g59‰@
79ˆjƒƒ1|JsP ~1B€0:7*`80%#;)*Cc* 8:,,) $+ d vKv U >
c vKv › > :b> d]0%M!9++> 7'; ,;9– 8+5 ,8/ '`?@, 7'9,(#M%9,'9# w
) #^,2 )C,G!/!&0%K,X8O;9
'+ ;9F tO ,!&0%4' ;9 !,#M/%,+F> 6 $0! ,-LA;9"?O-H * ,5 0%*./0+;" d vKv d >
c v c › > :b> d]0%M!9++> 5'; ,;9L
8+5 H8I5' _Q3;,#[;9!M#!/ ,;9H> ( b`05 ,-LA;9N?+H @*
,! 0%*./0+;9" d vKv d >
c v d › > :,> d]0%!+,* :> /!$0%;9+*9' @> :)C)C'Db> p? 0A0%#@' .D t1$+5M)*,G!# <#M/ 05)a0
05)4<# E_K+90O'D> HRv ¨e#‰Š &0‰ Ž'tu"$k5'2¨©#§5’&!9‰&g"§–¨e#?%G#?5.›.›‰Š1Gf‰Š£,5¥5s79¨F¨¨e£P ~!:7*
.,Ec U T ) $c ^ v * 7& $ 0%##*!8:;!#*;H !,#'* ;9 d vKv d >
c v U › y> «b/7)*+*' > ®"#&0 $> XY*,"•–Œ—0"h&!w@$9#§5‰ŠbLO;5HGB‡5!GH"s¦¨e#%"%&!‰ !"}x‹m2’"$tš‰Š1G ‰9+*
„;xsO]> '' 0% \«J,5#&$*@c PPP > %H >,C, v d v c U TP ^ v o=A>
Z Z
?U,( 5H8I;tK'9"!,-9+54'6#&E'90%)49E'; [,2 &N#0%+&,#D0%3–$+5)CM1'9E0%+80%&F'9,;t
$1$,U' b!0O49*,#&,[) +2 90O'9,+a05)*,##,+3; `+7)*+ ,G ' ,2 5&!<+U'9_8_+2 5+U;9<?,2 +.+/!&0%
' ;V $O , )* P# ':' ;9:0!/!&0%X!5;96'9,1)4/,2 )C/!LA;9,1+#&,) +2 90O'9, ,)4 07)*,##&,
05&,33+2 ,:0,pR+ A;<$+5)*+ ,36'9N)*0O',2 # +(;K $O %, )*N,Q;9!M#!3'9,8O;9,G5 LA;9,+>.?@
$0%3<'9'02 /!'9690% 5H8I;xt=!0$0% :5;9;6) +2 90O'9@ 05)C,##&('O#E) +2 0A'9K
:>;,60%; $0 0%\;90%G 7;9!&0%' '9,x; tJ+2 ! $,\';N'+2 8,#&0 $,)*,3 #&0%M+&,# > ?U !,)C&+[, # GA2 5/!0%
'9,6'9,;xtV $1`,6'9E) +2 90O'9¬ / tO 5!&0%B'9"8O;9, 5 3LA;9,L= _Q? '90 ;1;9E? ,2 +.+/!&0%
a05)*,##& :)> + Q tA 7!&0%, =/!5&8_+2 J)C/!;953s 2 ;A; ,##S)*+4,a pR,; #&,*'5)4)*,
'9E+#M! ,*`' +2 !/! 5!!&0%6+6#&,60%G 5MG ,k D*? 0%)C)*#Mw #@; ./!'9,(MGA2 5/!&0%6' 2 p7
O,2 #A+2 , ,##&,C3;:#N'+2 5&8//!&0%V'990!/!&0% 5 3LA;9,<8+71#&,) +2 90A',C 05)C,##&,+>;8 ; !
/!\90%; ,80%];!!A'2 3# tA 7!&0%*'9'5)C)*,j #M;@0%!+!]0%)4)*1,x; t'93A2 3;,
+'+ !&8A3,2 ,> ?[K'9,x; t9, )*40%3 5.;9!&0% '490%" 7,8/x; tb, P#- 5';!&0% '9,? ,2 ++/!0%
,B#/%P0%w
) #M#&F+( t<,2 +;9!#&$> + N 5';!&0%X, :+#^+2 N!;96;K#/'90%)C9N+/
,##&*,!" #LA;+2 Cx; tJ#&0%+&,#MF !'/5' -# '9C'9 ,8/-+ )CF;!5#-# ,) /4A;C2 ,
;9!#M!3 ,8/6 $0%;9 ,8/ /5'D>;=6[ #/ a05)*6!!0%@; 3<#&,<0%;9!#_!,#/! #",'9,x; tC0%3 5 ;9!0%_J+2 AF2 '+2 8,#&0 +2 ".4'9 05!+#&,'+2 8,#&0 $,)*,3!0%)C);'+ #$O ( $OG!u t9LA;9
+(A,2 )C3!LA;9E'9,(? ,2 ++/!&0%– :>
” ,2 &F#&0%M+&,#* .
D tA 7!&0%* L= _Q??* _ +2 0A'9Q @* 7';!&0%1* d_#'/!&0%* ,8/
+ V>
4!, ,/74 0AN$0%;9P 0 o/5S,!%9++5!K ##&0n(E 0LMJ;@ o0J!0%4 $1$,*
9a05)C#\)*+90O'KGM4B##&0m6 0f(5& *'B8+56K$ - O$ ,) ?$,+ +/!0%6&Q-0!/!&0%
a!0%) )4/9,)C/!+'=9 ,)Ca05)C#.)*+9 0O'<0@ pR, 05,G ,' G 4= ##&0m6< 0*)*0O'9,#N $O ,) ;!!5 48A0(+> ='90/5!;9!C01 0%;90ANE9 f 05)4#)*+ 0A'D>Y«Jf!0H8O'9
-0%3 5;9!0%BMQo0Q !/ ,F09* 0 o/54'9+8,#&0)C,G+> 9 5 F:9 C3 5/!&0%L0 9 0-)*+90O'B $1`,#;$X tA 7!&0%L0&K= _K? 53 +68A&06Ga !0%)
07)C#[%`,+L +/!&0%D> tO 5!&0%5$,V 04)C/!;95 $<$ ,+; "&'9,#M©(&- !/ - /!!D* +#5 ,' 7)C'D#?
0% 7G!# 6)*0% 13 5/!&0%f0O#&5,'/4$ '90%9 5 M(90!/!&0%V'9+7&8I/!0%4 0a 05)C#
)*+90O'+> HRL''&!&0%aC# 0-'9 ,'Q N tO 5!&0%b0 0%5+ 4' 5)4:#M * A3 ;,C'
!&8O& B$ 0%9,+> P!,0%'J0%G 7 ;9!&0%B0 0%;9k0 AF:9 P 5!#/!&0%L0 ?$,+. +/!&0%: 0
0%)wM# #&:'V tA,+;! #&F#/% ; ,,> 5!#M/!&0%-!/ + ,'-0%-*#/4 '0%)C $ ,+; &1b#&,'S0%X !'/5'- 0a /!66& H8IC' ;91#!0C0%-,) ` ,''9,'-#M+/!&0%f(&
H8I( 0 ,8/ /5'D> #M/ 05)C()*+% !F
9 100%3 5 ;!&0%\!,#/!8,] 030%#M'9+8,#&0$,'
V05'+ 0 05 +"9 0%)C)*0%K'+8,#&0)*,3!10] O$ G!!E'X ,)C3!"#A$ 5+>
>A0a /!C,!% 9++5!/* .
D tA 7!&0%*+K= _K?&;* l_K+9 0O'* 5!#/!0%'* d_#M' !&0%* ,8/C' S>