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=mkn
g
} b
z "$_+ a _' " e [ ' Z +'_ [ "{"' w %E Z^ +7'_ [ "
rxD{
b
Q¡£¢¢¢¥¤*¡
¤5«Mb¨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=JRK?BDÔHRTWVYXX<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# 6RLM4 ¾ VYILARJKVY<>L:RK;=;@6 ¾ B£O6 46 ¾ L$O6 8N<H46=LAX£VY?% IL&¬ 46QBNF6 8N6'
)(+*
K 6RK?7<û?69&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 ,Û6I7LM8LN6XRL
GI68DXh- VY?B ¾ 6=L
X<H84|-0RKXO6 Ô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 ;@VYXX£6?BNRK<>LN68³8NIL.Ô>68 4³=O6 JK6Ô>V ¾7¾ 6X£6?BN8 ¾ LMRBN<ûGI68.LN6ÔHRBN<20 8ÞRKI
47VYXRK<H?6Q<H?^47I78BLM<H6Ô^46Õ;@68DBLMRJRKI&Ý
3³! L
I7?VC`RBN<2Ç VYI6=4 B6=B56Y RK;=G$I685Y I^ÔHÔH<HRK?74£G$I7<VY?B47<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 ¾ RBN<>6?^;@6
6=LM;=<9R{ BVYI78Ô>68oX£6X:7LN6\47I¶,<;U1`T 6? ¾ RLNBN<H;=I^ÔH<>6=LÕÔ>68o;@VYÔ>V&;=RBNRK<>LN6847I9&RKI7?7R Ö>=KÚ T?'`CI78$'
{
1LN64@'BA:<DC$ÔHRK8E'F!WLMI^?V8'9G&Ô>JRK<û?¬6=Bq9&I ¾ F7RC&<>B$'&RJK6;PGI7<ÇBL
RJRK<HÔHÔ>6=L50 IBBVYIHVYILM8AI^? ¾ Ô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?78RKI78N8N< R~LN6X£6=LM;=<H6=L¬XR RKX<ûÔHÔ>6hGI^<AXh-0R¶8NVYIB6?I 6=B6?7;@VYI7LMR `
O6 4^RK?78Ô>68X£VYX£6?BN8
R KL&O6 R ^Ô>68\XRK<H8RKI78N8N<4WO6 8NR KL&O6 R Ô>68 K6 ¾ 6?786 ¾ ÔûI78 ¾ RLNBN<H;=I^ÔH< 6=LN6X£6?B R XR~X 6=LN6 WX£68 KL
RK?7478
¾ RLN6?BN8 7VY?^;=Ô>686=BABNRK?B68 3DV$4 Q< &< 3AVYILNVYI ÇR 71!Ô>V 2RBNF 2<H;@V6=B
$'
/2?WK# LNVY8QX6=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'`TO6 '_xRLM86<ûÔ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'WTO6 Ôû<H?6'
@' # 22 ¾
Ü YRKÔ>6X£6?B¬X£6=LM;=< R X£68RKX<H84|- 6? RK?7;@6¼4|-0Ü JK6=BB6@SU9&RKÔ Ç6=LNB\;=<>B
TFL
<H8BV ¾ F6 xRLM8 7, $47<H6 71ÔHVÝ
$LN6=BB6 :RBNF 3AVYXRK<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öRK4VKLMRB6ILM8Õ468
47<>6IÝ\CRLNVY8A6=B W6Ô>VKBNI^8
m!
$22
=
Ö
w %( ' ZTW!VY[ ?KB'6@_Ý$Z B%69VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú TFVY<>Ýb46QÔûR£X =O6 BNFV$476V0VKL
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;=RBN<HVY?78<H8N8NI68476Õ;@6QBLMRJRK<HÔE46öBNF6 86MVV9VV9VV9VV9VV
sÚ + j; "?'BLN% V&Z47 I7"';@BN&<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú ,Û68:X =O6 BNFV&468 0VKLMX£6ÔHÔH68 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú = ,ERX =O6 BNFV$476! 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú = 1VY?^46X£6?BN8:46QÔûR£X =O6 BNFV$476! V9VV9VV9VV9VV9VV9VV
) ?6X£6?BA6=BD<HX ¾ Ô
O6 X£6?BNRBN<>VY? 9VV9VV9VV9VV9VV9VV
Ú = Ú 3:R*
Ú = = [ LN6IJK6j9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú = Ö 9$BL
I7;@BNILN69# O6 ?W=O6 LMRKÔ>64|-0I7?76qXRK;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Õ4686?^86X Ô>686=BABd ¾ RK# 6 VV9VV9VV9VV9VV9VV
Ú = # - ÔH<2Y# RBN<>VY?78476 ¾ LN6IJK6VV9VV9VV9VV9VV9VV9VV9VV
Ú = $ ,E68DXO6 ;=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 VKLMXS6ÔûÔ>68 V9VV9VV
= Ú { VKBN<>JRBN<HVY?78V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
= = TWVY?B6?Ix46QÔHR£46IÝ&<Q6 X£6 ¾ RLNBN<>6 V9VV9VV9VV9VV9VV9VV9VV
E Ös +¶% Z; ?'B+LN'V&_ 47Z I7% ;@BNp¼<HVY
? Vs 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
T O6 ?W=O6 LMRKÔH<HBO6 8 V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ú {
. <HRK# LMRKXX6Õ46Õ;=ÔHRK8M868 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö = q
Ö = TÔûRK8N868$'7RBBLM<D^IBN86=BDX=O6 BNF7V$468 9VV9VV9VV9VV9VV9VV
T O6 ?W=O6 LMRKÔû<H8NRBN<>VY? VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö = Ú {
+
!Ú "
Ú#
Ú #
Ú$
ÚKÙ
ÚKÙ
( =&
&=
K= Ú
K= Ú
==
==
=Ö
=+
="
=$
ÖYØ
Ö>=
?3@
EÖBF#
ÖG$
ÖÙ
+
+
++ Ú
Ú
+=
"
= = k28N8V&;=<HRBN<>VY?'7G$I7RKÔH<D7^;=RBN<>VY?'XoI7Ô>BN< ¾ Ôû<H;=<>BO6 'R#KL$$O6 #YRBN<>VY?l6=BD;@VYX ¾ VY8N<>BN<>VY? VV
= Ö I^RKÔH<27^;=RBN<>VY?h4768ARK8N8V&;=<HRBN<>VY?78 V9VV9VV9VV9VV9VV9VV
Ö Ö .q<HRK# LMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78mVV9VV9VV9VV9VV9VV9VV9VV
Ö Ö Ü BNRBN8 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ö Ú C`LMRK?78N<HBN<>VY?78"V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ö = TWVY?^;=ILNLN6?7;@6 9VV9VV9VV9VV9VV9VV9VV9VV9VV
. <HRK# LMRKXX6Õ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
[ 86I74VS;@V&46?V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+G,+ ³
Ö ,+G " TWVY?BLMRK<H?B68AB6X ¾ VKLM6ÔHÔ>68V9VV9VV9VV9VV9VV9VV9VV
. <HRK# LMRKXX6Õ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Ô>68V ¾ =O6 L
RB6ILM8 VV9VV9VV9VV9VV9VV
Ö # = ,E68ABh ¾ 686=BD8VYI^8SBh ¾ 68D46Q;=ÔHRK8M8N<2^7 ;=RB6IL
8NVV9VV9VV9VV9VV
Ö # Ö ,E68 ¾ LNV ¾ LM<
=O6 BO6 8D468V8 6=BN8XV9VV9VV9VV9VV9VV9VV9VV
Ö # ,+ ,E68AJRKÔ>6ILM8RK?B=O6 LM<>6ILN68iVV9VV9VV9VV9VV9VV9VV9VV
Ö # " ,`R?7RJ&<2Y# RBN<>VY?¼JK6=LM8DÔ>68A6@Ý$BL&O6 X<HBO6 8q4|-0RK8M8V$;=<ûRBN<>VY? VV9VV9VV9VV
Ö # # ,E68D;@VYÔHÔ>6;@BN<HVY?78 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö # $ ,E68D;=ÔHRK8N8N68SRK8N8V&;=<HRBN<>VY?78 V9VV9VV9VV9VV9VV9VV9VV
Ö # Ù ,E68AJRLM<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 <>JRBN¼.<>VY=? O6 LM<>R JR¾ BNR<>VYLNBN?{<>LA47468A6Q;=47ÔH<ûRKR8NK# 8LM6RK8 XX£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Ôû<H8NRBN<>VY? VV9VV9VV9VV9VV9VV9VV9VV9VV
+G = ÜÞÝ&Ú B6?78N<HVY?¼46QÔHR£4W=O6 LM<HJRBN<>VY?{468A47<HRK# L
RKXX£68A46Q;=ÔûRK8N868NVV9VV9VV9VV
+G+G = ¼.{ =O6 VKLMBN<><>JJRRBNBN<><>VYVY?{?78 476V8 9LNVVKVBVKBd 9V68AV6=9B:VR V96ÔH8V4|- VV 9=O6 VLMRVBN<>9VY?^8 VVV99VVVV99VVVV99VVVV
+G == Ú= TÔûRK8N8N<2^7 ;=RBN<HVY?b6=BA¾ VKLY# RK?7<H¾ 8MRBN<>VY?¼4¾76¾ 8V ¾ =O6 L
RBN¾ <>VY?78)9VV9VV9VV9VV
+G Ö ¼.+G =O6 LM <>JRBN¼.<>VY=? O6 LM<>R JR¾ BNR<>VYLNBN?{<>LA4746Õ6Q8BN47R<ûBR6K# ;MLMF^RKRXLNBNX£8D668A?{4ÛX- =O6 RKBNR;MBNF78<ûS?B6LM8ARK?7R8N^ <>BN8B<HVYL
?7RK<>8mB68 VVV99VVVV99VVVV99VVVV
+G ÖÖ Ú Ü.Ý$B6?78M<>VY?¼46QÔHR£4W=O6 L
<>JRBN<HVY?¼RK8N8V&;=<
=O6 6PRKI¼4^<HRK# LMRKXX£6Q476Q;=ÔHRK8N868jVV9VV
+G,+ C`+G,LM+GRK 47I7;@BNC
<>VY ?{648A6847696@Ý ^ ¾ 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 X6P46öBLMRK?^8N<>BN<>VY?787 ?7<-9VV9VV
+G ܳ?I7X=O6 L
RBN<>VY?{468\=O6 BNRBN8 VV9VV9VV9VV9VV9VV9VV9VV
+G # TWVY" ?7= ;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
g A|' +7K'_ Z % " _+ ^ + "$# "l a +7##"#
" ;2. ?6PBLNÔHV&R£478 I7;@BNO6 ;=<HVY<2^7 ? ;=RVBN<>VY9?iV! VRK9I{V47V<HRK# LM9RKXVXV6Q94V6QV;=9ÔHRK8N8V68LV99VVVV99VVVV99VVVV99VVVV99VVVV
"Ú
" Ú ¾ ,E,E668D8AJXRRKLM;
<HRF7^ <H?Ô>6688A6R? BN8<QB6= LMLNRK6<>8DB66=8B Ç VVVY9Ô =VO6 6V?7?7968?VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ú Ú ,E68A6?786X:^ Ô>688M<HX Ô>68/VV9VV9VV9VV9VV9VV9VV9VV
"Ú=
" Ú ,Ö+ ,E/:6BN8A<HÔH<H68M?7R8BN6<>VYX:?h^ 4Ô>66Q8847B$6Õ=O6 L&;@=¾O6 VYVKIBh ¾ Ô>668 8 99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
"Ú
" = /2?h6@Ý$6X ¾ Ô>6Q8N<HX ¾ Ô>6 V9VV9¾ VV9VV9VV9VV9VV9VV9VV9VV
" = Ü{ BNV$I74W4O6 6QÔû<H48NR6Õ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?Ô>689;=ÔûVRKI7¾V8968 VV9VV9VV9VV9VV9VV9VV
6=B
V9VV9VV9VV
"Ö
IMPORTS
6=B
V
V
9V9VVV9V
" Ö Ú TÔûRKI786 EXTENDS ' INCLUDESSEES
PROMOTES
" ,+ TW,VY+GX ¾ RLM; 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Ý ^ RBN<ûX£6?BN8 VV9VV
" Ú
" ,,+G+G = ,ETW6VY8AX BLMRKR47LMRKI^<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?JRLM<HRK?BN8 ! V9VV9VV9VV9VV9VV9VV
# Ú ;C?RB^ LMV$Ô>647RKI^I&;@ÝhBN<>4|VY?-UO6 G$I79<>JVRKÔ>V6?7;@96V! VJK96=LMV8 V9T,VVV99VVVV99VVVV99VVVV99VVVV99VVVV
# Ú Ú , - 6@Ý$6X Ô>6Q47Ix9&;
F647I7ÔH6=L/V9VV- 9VV9VV9VV9VV9VV9VV
#Ú=
Ú Ö ,E68 ¾ LNV¾ Ô,6 X£68LN6?7;@VY?BL&O6 8 9VV9VV9VV9VV9VV9VV9VV
#
# = 3b(O6 O6 ;@LM<>BNI7LN6P6? - T, 468AV ¾ =O6 LMRBN<>VY?78U! V9VV9VV9VV9VV9VV9VV
# = [C`LML$RKO6 8?768 ?0 VKBNRLMXBN<HVYR?xBN<HVY4?h68A6?V ¾ =O6 LMTR,¶BN<>VY4|?7-08XI7?! 6öVV 9=O6 LMRVBN<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 LMRKXXRK<>LN6Q47I{?V Y RKIx47IhÔHRK?8Y# RK# 6ÕI7BN<HÔH<H8$O6 VV9VV9VV9VV9VV9VV
$=
$ ,Ö+ .[,ERL
<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<û8NRBN<>VY?$' V ¾ =O6 LMRBN<>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 +7K'_ EC _' "$#
Ù ;?BLNV&47I7;@BN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú .q<HR#KLMRKXX6Õ46Õ8$O6 G$I6?7;@6 V9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú ,E68AVF 6=BN8 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú Ú ,E68DX£68N8MRK# 6839VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú = ,E68 ¾ RLMRKXM6= BLM68A6=BDJRKÔ>6IL
846öLN6=BVYILD4768V ¾ =O6 LMRBN<>VY?78 9VV9VV9VV
Ù Ú Ö ,E68D;@VY?747<HBN<>VY?78 VV9VV9VV9VV9VV9VV9VV9VV9VV
Ù Ú ,+ ,E68 Ç VYI7;=Ô>6847RK?^8AÔ>6847<HRK# L
RKXX£68A46Q8$O6 G$I6?7;@6 VV9VV9VV9VV
. <HRK# LMRKXX68D4|-0RK;@BN<>J&<>B$O6 8 V9VV9VV9VV9VV9VV9VV9VV9VV
Ù = q
Ù = ,E68DRK;@B6ILM8:47Ih47<HRK# L
RKXX£6Q4|-0RK;@BN<>J&<>B$O6 8 9VV9VV9VV9VV9VV
Ù = Ú ; ?7<>BN<HRKÔû<H8NRBN<>VY?$' V ¾ =O6 LMRBN<>VY?{6=Bh=O6 BNRBN824|-0RK;=;@6 ¾ BNRBN<>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 LMRBN<>VY?^8$' ¾ RLMRKXM6= BLM68D6=BAJRKÔ>6IL
846öLN6=BVYIL VV9VV9VV
m Z %E a[ #_ Z %©# [`ha t "B|A ' +7K'_ Z % " C [ "# ^ + `% _ [ "#
=Ø ÜÞÝ&BLMRK;@BN<>VY?x468A<H?P0VKLMXRBN<>VY?788BNRBN<HG$I68V9VV9VV9VV9VV9VV9VV
=Ø Ü.Ý$BLMRK;@BN<HVY?{468A4^<HRK# LMRKXX£68D46Q;=ÔHRK8N868 9VV9VV9VV9VV9VV
T O6 ?W=O6 LMRBN<HVY?468Þ;@VY?BLMRK<H?B68 - T,h46 ¾ I7<H8Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8Þ;@VYX ¾ Ô>6@Ý$68Þ476Ô-0<H?&S
=Ø Ú {
JRLM<HRK?BX9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
=Ø = 9G& ?BNF6 86P46QÔ- 6@Ý$BLMRK;@BN<HVY?¼468D47VY?7?³=O6 68A8BNRBN<HG$I685VV9VV9VV9VV
=Ø Ú ÜÞÝ&BLMRK;@BN<>VY?x468A<H?P0 VKLMXRBN<>VY?7848& ?7RKX<HG$I68WVV9VV9VV9VV9VV9VV
=Ø Ú Ü.Ý$BLMRK;@BN<HVY?{468A4^<HRK# LMRKXX£68D4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78 VV9VV9VV9VV
=Ø Ú Ú Ü.Ý$BLMRK;@BN<HVY?{468A4^<HRK# LMRKXX£68D46Q8O6 GI76?7;@6Õ6=BD4Û-0RK;@BN<>J$<HBO6 8 V9VV9VV
=Ø Ú = 9G& ?BNF6 86P46QÔ- 6@Ý$BLMRK;@BN<HVY?¼468D<û?80 VKL
XRBN<>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< ;=RBN<>VY?78 ¾ RL\=O6 JRKÔûI7RBN<>VY?{47686@Ý ¾ LN68N8N<>VY?^8
Ù .RLM<ûR ^Ô>68A;@VY?7;=I7LNLN6?B68
=Ø !RLMRKX 6=BLN68
Ù TRKÔH;=I^Ô|46Q47<HR KLMRKXX£686@Ý&BLMRK<>BN8D476Q8NI ^8BN<HBNIBN<>VY?78<HX 7LM<HG$IW=O6 68
=Ø TRKÔH;=I^Ô|47I¼47<HR KL
RKXX£6Q8N< Y?^< ^;=RBN< ¾ RLD8O6 Ô>6;@BN<>VY?x46öJRL
<HR ^Ô>68
K ,.- 6@Ý&6X ¾ ÔH6Õ47Ih3AV ÇVKB
L$O6 86?BNRBN<HVY?
K
K Ú LM<H?7;=< ¾ 6846 VY?7;@BN<>VY?7?76X£6?B
K q<HR KLMRKXX£6Õ4|-U=O6 BNRBN82BLMRK?78N<HBN<>VY?78468DXRK;MF7<H?768R ^8BLMRK<>B68
Ú TWVYX ¾ RLMRK<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_VVY+79'_ Z V%`V#9 ZV V9" aa "$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
RJRKI&ݼ46öBNF6 86 V9VV9VV9VV9VV
+ Ü.BNRB246QÔä-0RLNB?V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
K ,©
ß7476©! JK6=LM82T 9VV9VV9VV9VV9VV9VV9VV
K ,+G [ LNVH 6=BX! - ¯
. 6:©! JK6=LM8 - TRKXÔfV9VV9VV9VV9VV9VV9VV9VV9VV
K ,+G Ú 2
K ,+G = .26 - F6;@B RJK6=LM8:T × YRJR VV9VV9VV9VV9VV9VV9VV
. 6Z?.9
JK6=LM82T56=BXY RJR 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?B46Q4WO6 ¾ RLNB:46QÔûRBLMRK47I7;@BN<>VY? ß7Ô>6V! Ø 9VV9VV9VV9VV
Ú Ú Ú Ü.Ý$6X ¾ Ô>6xO6 Ô
O6 X£6?BNRK<HLN6P46 XRK;MF7<û?6QR^ 8BLMRK<HB6Q6=BD4|-0<HX ¾ Ô
O6 X£6?BNRBN<>VY?M9VV
Ú Ú = 9&;
F³O6 XR476Q;@VY?JK6=LM8M<>VY?{468DXRK;MF7<û?68KVV9VV9VV9VV9VV9VV
Ú = ,ERLN6 ¾ L&O6 86?BNRBN<>VY?{4Û-0I7? ¾ LNVH 6=B !V9VV9VV9VV9VV9VV9VV9VV
Ú Ö ,ERLN6 ¾ L&O6 86?BNRBN<>VY?{4768DXRK;
F7<H?686? Y RJR VV9VV9VV9VV9VV9VV
RK;MF7<û?68m! 6=BD8M;MFWO6 XRK8246öBLMRK47I^;@BN<>VY? Y RJRV9VV9VV9VV9VV
Ú Ö x
Ú Ö Ú Ü.Ý$6X ¾ Ô>68VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+ ,Û68DBh ¾ 68 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú ,©
Ú ,+G ,E68ABh ¾ 68A469^ RK8N6Õ47IhÔHRK?8Y# RK# 6:! 9VV9VV9VV9VV9VV9VV
Ú ,+G Ú Ü³GI7<HJRKÔ>6?^;@6ö6?BLN6ÕBh ¾ 68m! 6=BABh ¾ 68mY RJRVV9VV9VV9VV9VV
Ú " ,ERCELMRK4^I7;@BN<>VY?h468:4VY?7?W=O6 68 9VV9VV9VV9VV9VV9VV9VV9VV
Ú " 3D6XRLMG$I68 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " Ú ,E68A6?786X:^ Ô>68:9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " = ,E68D;@VY?78BNRK?B682;@VY?7;@L$6= B68 V9VV9VV9VV9VV9VV9VV9VV
Ú " Ö ,E68AJRLM<HR^ Ô>68;@VY?^;@L$6= B68 VV9VV9VV9VV9VV9VV9VV9VV
Ú " ,+ ,E68D<H?B6=LNJRKÔHÔ>689VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " " ,E68ABNR^ Ô>6RKIÝ 9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú " # ,E68 ¾ RLMRKXM6= BLM68D468:XRK;MF7<û?683V9VV9VV9VV9VV9VV9VV
Ú # ,Û68DV ¾ =O6 LMRBN<>VY?789VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú # ,`R£BLMRK47I7;@BN<HVY?¼468V ¾ =O6 LMRBN<HVY?78m! 6=BD4768 ¾ RLMRKXM6= BLN68:4|- 6?BL$=O6 6 VV9VV
Ú # Ú ,E6 ¾ LNV^ÔQ6 X6Q468L&O6 8NI7ÔHBNRBN8DXoI7Ô>BN< ¾ ÔH68VV9VV9VV9VV9VV9VV
Ú # = /2?h6@Ý&6X ¾ Ô>6 V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú # Ö 3D6=BVYIL:8NI7LAÔHR£8O6 XRK?BN<HGI76Õ47I ¾ RK8M8NRK# 6Õ46 ¾ RL
RKX 6= BLN68D6? ! VV9VV
Ú $ ,Û68:8NI8^ 8NBN<>BNIBN<>VY?78 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú $ ; ?BLMV$47I^;@BN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú $ Ú ,`R8NI8^ 8NBN<>BNIBN<>VY? *8VV9VV9VV9VV9VV9VV9VV
Ú $ = 9&IP^ 8BN<>BNIBN<HVY?\R ¾^¾ 6Ô|4Û- V ¾ =O6 LMRBN<>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 ¾ ÔHRB6@S 0 VKLMX£6: RJRTRLM4WV9VV9VV9VV9VV9VV9VV9VV9VV
E= Ú ,E68D8 ¾ O6 ;=<27 ;=<>BO6 8D46QÔHR ¾ ÔHRB6@S 0 VKL
X£6:Y RJRTRLM4iV9VV9VV9VV9VV
E= Ú Ú 9$BL
I7;@BNILN6Q4|-0I^?6öR Ô>6=B VYILm RJRTRLM4 9VV9VV9VV9VV9VV
E= = ,.- 6@Ý&6X ¾ ÔH6Õ47I ¾ VKLNB6@SX£VY?7?^¾7RK¾ <>6xO6 Ô>¾ 6;@BLNVY?7<HG$I6 VV9VV9VV9VV9VV9VV
E= = [ L$O6 86?BNRBN<HVY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV
E= = Ú ,E68DXRK;
F7<H?68 ! VV9VV9VV9VV9VV9VV9VV9VV9VV
E= = = ,`R£BLMRK47I7;@BN<HVY?h6? Y RJR VV9VV9VV9VV9VV9VV9VV9VV
E= Ö {T O6 ?W=O6 LMRBN<>VY?46Q;@V&46: RJRTRLM46VV9VV9VV9VV9VV9VV9VV9VV
E= Ö , -0R ¾7¾ Ô>6=Bm RJRTRLM4{4^I ¾ VKLMB6@SX£VY?7?7RK<>6lO6 Ô>6;@BLMVY?7<HG$I69V9VV9VV9VV
E= Ö Ú ,E6 ¾ LNV&;@68N8NI78476Q4³=O6 JK6Ô>V ¾7¾ 6X£6?BUY RJRTRLM4¼86X<>SRKIBVYXRBN<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 ;=RBN<HVY?78m©
@Ö Ú Ü.JRKÔHI7RBN<HVY?iVV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú
Ú
Ú
Ú
Ú
96 ' 1 s +G+ !a; +7?'BLN" V& 47 Z^I7;@ BN<HVY" ? &Vn Z|9ZVa # V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ,ER ¾ ÔHRB6@S 0VKLMX£6Õ;@VYXXoI7?6%V9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú :k LM;MF^<>B6;@BNILN6Q6=B ¾ LM<H?7;=< ¾ 6246V0 VY?7;@BN<>VY?7?76X£6?B 9VV9VV9VV9VV
+G Ú Ú ,E6ÕC- ¾ 6TF6;&KC 6=L V9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú = ,E6oTWVY?B6@Ý$B6! VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú Ö ,E6V0 VKL
XRB
9{ , VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ,+ ,`R£BLMRK47I7;@BN<HVY?¼47IbBh ¾ RK# 6P6??x ,VV9VV9VV9VV9VV9VV
+G Ú " ,`RN! - F 6;@BA,E<2^ LMRL ,! - ,VV9VV9VV9VV9VV9VV9VV
+G = ,Û68DVYIBN<HÔH8 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G = , - VYIBN<HÔ@! Ú /?{ ,VV9VV9VV9VV9VV9VV9VV9VV9VV
+G = Ú C`LMRK47I7;@B6I7LAJK6=LM8X RJR × T
9VV9VV9VV9VV9VV9VV9VV
+G Ö TWVY?7;=ÔûI78N<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
e a _Y+'_ Z % "' _#"{"&% Z " [ C "
" ; ?BLNV&47I7;@BN<HVY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
" Ú TRKF7<H6=LD468A;
F7RLK# 68V9VV9VV9VV9VV9VV9VV9VV9VV9VV
" Ú [ L$O6 86?BNRBN<HVY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV
" Ú Ú [ LNV LM< =O6 B$O6 8247Ih8 & 8Bc6 X£6VV9VV9VV9VV9VV9VV9VV9VV
" = 9 ¾ O6 ;=<27 ;=RBN<>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öRKXJ&IX£66Õ8A/?46Q{;=,ÔHRK8MV868"9VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ö TWVY?BLMRK<H?B68 T,/V9VV9VV9VV9VV9VV9VV9VV9VV
"" ÖÖ Ú= q. <HRK# LMRKXX£6Õ4|- -U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78 9VV9VV9VV9VV9VV9VV
"" ÖÖ ,Ö+ q.q. <H<HRRK#K# LMLMRKRKXXX£X£6Õ6Õ44|6Q-0RK8$;@BNO6 G$<>J&I<>6B$?7O6 8 ;@6VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" ,+©C`LMRK47I7;@BN<>VY?¼6? Y RJR V9VV9VV9VV9VV9VV9VV9VV9VV9VV
1 9 *
F m # Z %E TWa[ VY#?_BZ LM<2%©^ I7"BN' <>VY ?7"8) # 9"VY'V_DC 9"$V# V9VV9VV9VV9VV9VV9VV9VV9VV
# Ü.C`LMÝ$RKB47LMRKI7;@;@BNBN<H<HVYVY?{?h4JK6ö6=LMJ&8AIÔ>668A8D/?ÔHRK{?8Y# ,IRK# V689RVVVF9 6=BN8UVY VR9JR£V6=VBq9T
VVV99VVVV99VVVV99VVVV
# Ú ,`R ÔHRB6@S 0VKLMX£6!CEV$VYÔH8 V9VV9VV9VV9VV9VV9VV9VV
# = 9G& ?¾ BNF6 86P468D;@VY?BLM<D^ IBN<>VY?78
9VV9VV9VV9VV9VV9VV9VV
# Ö
# Ú [ # 6=LMÚ 8 ¾ 6;@¼. BN<>JKO6 X68 RLMV;
F6o9<HVB=O6 VL
R9BN<>VJK6ÕV6?B9LN6ÕVÔäV- 6@9Ý&BVLMRKV;@9BN<>VY?{V6=VBD9ÔHR£V4WV=O6 LM9<HJRVBN<>VYV? 9VVVV99VVVV99VVVV
## ÚÚ Ú= 2k2k X;MF6=O6 ÔHJK<>VK6LMX£R6BN<H?VYBö?{446Q6QÔHR Ôä- 6@Ý&ÔûBRLMBRK6@;@S 0BNVK<>VYLM?{X6:46 8A! 47C <HR- K# - L
RK,X9 X£6V8A94|-U=O6 BNVRVBN89SBL
VRKV?78N9<>BN<>VYV?^8NV99VVVV
# Ú ,Ö+ .Z17I^RK8NÔH<û<>47VYR?¼BN<>4VY6?¼8D446Q6I&8 ÝhO6 X ;=<2¾ =^7O6 BN;=FRV$BN47<>VY6?78D8AÜÞLNÝ&6BÔHRLMRKBN<>;@JKBN6<>VYX£? 6× ?CEBDLMRKRKIx4^I7;=;@RKBNF7<>VY<>6=? LDV4968DV;MVF7R9LK#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?76qXRK;MF7<H?76ÕR^ 8BLMRK<HB6 VV9VV9VV9VV9VV9VV9VV
Ú = /2?6ÕXRK;
F7<H?6V! 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
V9V9VVV9V9VVV9V9VVV9V
Ú Ö ,ERXRK;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Û-0RBBLM<2^ IBN86=B246QX=O6 BNFV&468 VV9VV9VV9VV9VV
T O6 ?W=O6 LMRKÔH<û8NRBN<>VY?i9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ö Ú {
T O6 ?W=O6 LMRKÔH<û8NRBN<>VY?(' RK8N8V&;=<HRBN<>VY?h6=BDXoI7Ô>BN< ¾ ÔH<H;=<>B$O6 VV9VV9VV9VV9VV9VV
Ö = {
Ö Ö I7RKÔû<2^7 ;=RBN<>VY?h4|-0RK8M8V$;=<ûRBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV
Ö ,+ /2?6ÕRK# L&$O6 Y# RBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
A VKBNRBN<>VY?x4Û-0I7? =O6 BNRB:6?¼/?x , 9VV9VV9VV9VV9VV9VV9VV9VV
Ö " :
A VKBNRBN<>VY?x4Û-0I7?h47<HRK# LMRKXX£6Q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 9VV9VV9VV9VV9VV
Ö # :
A VKBNRBN<>VY?x4Û-0I7?6qBLMRK?78N<HBN<>VY?h;@VYX ¾ Ô>6@Ý&6MVV9VV9VV9VV9VV9VV9VV
Ö $ :
. <HRK# LMRKXX68D4|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78:;@VY?7;=ILNLM6?BN8 V9VV9VV9VV9VV9VV
Ö Ù q
. <HRK# LMRKXX68D;@VY?7;=ILMLN6?BN8:RKI¼86<H?h4Û-0I7? =O6 BNRB VV9VV9VV9VV9VV9VV
Ö =Ø q
Ö K ,Û68:RK;@B6ILM8:4|-0I7?h47<HRK# L
RKXX£6Q46Q8$O6 G$I6?7;@6iVV9VV9VV9VV9VV9VV
Ö Ú ,Û68:X£68N8NRK# 68:4|-0I7?h47<ûRK# LMRKXX£6Q46Q8$O6 G$I6?7;@6 VV9VV9VV9VV9VV9VV
. <HRK# LMRKXX6Õ46Õ8$O6 G$I6?7;@6ÕRJK6;ÕB6X ¾ 8A4|- 6@Ý O6 ;=IBN<>VY?{4768AX =O6 BNFV&468NV9VV9VV
Ö E= q
Ö @Ö /:BN<HÔH<H8NRBN<HVY?h46Q;@VY?747<>BN<HVY?7847RK?78AI^?h47<HRK# LMRKXX6Q46Q8O6 GI76?7;@6 9VV9VV9VV
+ /:BN<HÔH<H8NRBN<HVY?h46 ¾ 86I747VS;@V$468D47RK?78AI7?h4^<HRK# LMRKXX£6Q476Q8O6 GI6?^;@6 VV9VV9VV
Ö ©
Ö " /:BN<HÔH<H8NRBN<HVY?h46Q;@VY?BL
RK<H?B68:B6X ¾ VKLN6ÔHÔH6847RK?78I7?¼4^<HRK# LMRKXX£6Q476Q8O6 GI6?^;@69VV
O6 9VV9VV9VV9VV9VV9VV
Ö # ,Û68:RK;@B6ILM8:4|-0I7?h47<HRK# L
RKXX£6Q4|-0RK;@BN<>J&<>B$
Ö $ ÜÞÝ O6 ;=IBN<>VY?78:;@VY?7;=ILNLM6?B68:4697 LMRK?7;
F68A4|-0I^?h47<HRK# LMRKXX6Q4|-0RK;@BN<>J&<>BO6 9VV9VV
O6 9VV9VV9VV9VV
Ö Ù ,Û68 ¾ VY<H?BN8476Q;MFVY<uݼ47RK?^8Ô>68A47<HRK# L
RKXX£68A4|-0RK;@BN<HJ$<>B$3
+G /2?6Õ;=ÔHRK8N8N6ö6?{/?{ , V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú ¼. =O6 LM<>JRBN<>VY?{46PÔHR£;=ÔHRK8N86ö6? ! 9VV9VV9VV9VV9VV9VV9VV9VV
+G = /2?6Õ;=ÔHRK8N8N6 " ('*& V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ö ¼. =O6 LM<>JRBN<>VY?{4|-0I^?6Q;=ÔHRK8N86 !" ('!* 9VV9VV9VV9VV9VV9VV9VV
+G,+ /2?¼RBBLM<2^ I7B V9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G " ¼. =O6 LM<>JRBN<>VY?{4|-0I^?hRBBLM<2^ IBV9VV9VV9VV9VV9VV9VV9VV9VV
+G # /2?6ÕX=O6 BNFV&4669VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G $ ¼. =O6 LM<>JRBN<>VY?{4|-0I^?6QX =O6 BNFV&46 9VV9VV9VV9VV9VV9VV9VV9VV
E=
"
==
=Ö
=$
Ú
K= Ù
=KÙ
Ö7
+=
+Ö
+Ö
+Ö
++
++
+"
+"
+#
+#
+#
+$
+$
+Ù
+Ù
+Ù
" Ø
" Ø
&"
""
""
""
""
"#
"#
"$
"$
@Ö
+G Ù /2?¼;@VY?78BLMI^;@B6IL VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G =Ø .¼=O6 LM<>JRBN<>VY?{47I{;@VY?78BLMI7;@B6I7L 9VV9VV9VV9VV9VV9VV9VV9VV
+G K /2?6ÕRK8N8V&;=<HRBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G Ú .¼=O6 LM<>JRBN<>VY?{4|-0I^?6QRK8N8V&;=<HRBN<>VY? 9VV9VV9VV9VV9VV9VV9VV9VV
+G E= /2?6V#`O6 ?³=O6 LMRKÔH<H8MRBN<>VY? V9VV9VV9VV9VV9VV9VV9VV9VV9VV
+G+G @Ö+ .¼.2=6O6 LM8h<>J=O6 RBNRBN<>BNVY8 ?{4V6PVÔHR%#`9O6 V?³=VO6 LMRK9ÔH<HV8NRVBN<HVY?9VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
+G " .¼=O6 LM<>JRBN<>VY?{468b=O6 BNRBN8:86ÔHVY?x9$6$CK6=LM<H?^8 C$< V9VV9VV9VV9VV9VV9VV
+G # .¼=O6 LM<>JRBN<>VY?{468b=O6 BNRBN8:86ÔHVY? ¼6$K6=L 9VV9VV9VV9VV9VV9VV9VV
+G $ ;?7<>BN<HRKÔH<û8NRBN<>VY?b4³=O6 B6=LMX<H?^<H8B669VV9VV9VV9VV9VV9VV9VV9VV
+G Ù ;?7<>BN<HRKÔH<û8NRBN<>VY?b?VY?¼4W=O6 B6=LMX<H?7<H8B6jVV9VV9VV9VV9VV9VV9VV9VV
+G ÚØ .¼=O6 LM<>JRBN<>VY?{46PÔä-0<H?7<>BN<ûRKÔH<H8NRBN<>VY?¬86Ô>VY?x9&6$CK6=LM<H?78 C&<aV9VV9VV9VV9VV9VV
+G+G Ú& .¼.2=6O6 LM8A<>JBLMRRKBN?^<>VY8N?{<>BN<>4VY6P?783Ôä-0<H?79<>BNV<ûRKVÔH<H8N9RVBN<>VYV?¬896Ô>VVY? V{9V6$KV6=L 9VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
ÚKÚ
+G Ú= .¼=O6 LM<>JRBN<>VY?{468ABLMRK?78N<>BN<HVY?7886Ô>VY?x9&6$CK6=LM<H?78 C&< VV9VV9VV9VV9VV9VV
+G ÚÖ .¼=O6 LM<>JRBN<>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<>JRBN<>VY?{4|-0I^?6öBLMRK?78N<HBN<>VY?h;@VYX ¾ Ô>6@Ý&6)V9VV9VV9VV9VV9VV9VV
+G Ú# q. <HRK# LMRKXX6Õ46Õ;=ÔHRK8M868A46QÔä-0RK8M;@6?786IL V9VV9VV9VV9VV9VV9VV
+G+G Ú$ q.q. <H<HRRK#K# LMLMRKRKXXXX6Õ6Õ4|4|-- ==O6 O6 BNBNRRBNBN88SSBBLMLMRKRK?7?78M8M<><>BNBN<><>VYVY?7?782824746QI ÔäÇ -0RKVY8NI;@B6VY?^? 86IVL V99VVVV99VVVV99VVVV99VVVV99VVVV
ÚKÙ
+G = Ø 9 ¾ O6 ;=<27 ;=RBN<>VY?{46QÔûR ¾ RLNBN<>6 system 46QÔ-0RK8N;@6?786IL59V9VVV9V9VVV9V
+G 9 O6 ;=<27 ;=RBN<>VY?{46QÔûR£XRK;MF7<û?6 46QÔä-0RK8M;@6?786IL)V9VVV9V9VVV9V
+G K=&= Ú 9 ¾¾ O6 ;=<27 ;=RBN<>VY?{46QÔ-0RK8N;@6?786ILÕTypes
ß7;=RK8 `# O6 ?³=O6 LMRKÔ BLMRJRKI&ݼ46{
6$K 6=L VV9VV9VV
+G == ; X ¾ Ô O6 X£6?BNRBN<>VY?{476QÔHR£XRK;MF^<H?6 system V9VVV9V9VVV9V9VVV9V
+G = Ö :k LM;MF7<HB6;@BNILN6Õ46QÔûR£8 ¾ O6 ;=<2^7 ;=RBN<>VY?L! 47Ih8 & 8Bc6 X£6P476Q;@VY?BLHVYg ÔH6Õ4|-0RK8N;@6?78N6ILM8 9VV
" ,ERXRK;MF7<û?6 46PÔH9R£XVRK9;MF^V<H?V6 V96V?{9;=VÔûRKV8N896 VVV99VVVV99VVVV99VVVV99VVVV99VVVV
" Ú x{ V$RK;M4WF7O6 <HÔH?7<û8N6ÕRBNXP<>VYI^?¼AM
6?BN<Q6= LN68D6=B Ç VVYÔ =O6 6?^?68 9VV9VV9VV9VV
" = { V$4WO6 ÔH<û8NRBN<>VY?¼?7<>46ö68A46QJRJLMR<û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?RBBN6<>VY8D?¼4|4-0<û6?78A;=ÔHJI7R8NLM<H<ûVYR?¬^ Ô>476RK8?^Bh8A ¾I7=?bO6 68q6?7R8JK66X:;P^ 4Ô>66 86?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<û8NRBN<>VY?¼468A6?786X:^ Ô>68bO6 ?$I7X=O6 L&O6 8:6=BAJRL
<HR^ Ô>68Bd =O6 68qRJK6;P;@6I&Ý$S;=<5V9VV
" Ù TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6 R£ Ôä-0<H?7;=ÔûI78N<>VY?&' Ôä-0R RLNB6?7RK?7;@6ö6=BDÔ- $¾ O6 Y# RKÔû<>BjO6 9VV9VV9VV
" =Ø x RK;MF7<H?76ÕXPI^?7<>6ö46 LMV$47I^<>BW;=RLMBO6 8M<>6? ¾7¾ V9VV9VV9VV9VV9VV9VV
"" KÚ {V$4WO6 ÔH<û8NRBN<>VY?¼47I LN¾V&47I7<>B;=RLNBO6 8N<>6? 9VV9VV9VV9VV9VV9VV9VV
" E= x{ V$RK;M4WF7O6 <HÔH?7<û8N6ÕRBNI<>BNVY<H?¼ÔH<û8N4RK6?8AB¾ LN466ÔHR8ABNLN<>VY6?7ÔHR8BN<>VY?798 VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV
" @Ö©+ /2?6ÕRKIBLN6QXV$4WO6 ÔH<û8NRBN<>VY?¼468ALN6ÔHRBN<>VY?78 V9VV9VV9VV9VV9VV9VV
" q. <HRK# LMRKXX6Õ46Õ;=ÔHRK8M868A4|-0I7?76qXRK;MF7<H?76QRJK6;oI7?690 VY?7;@BN<>VY?
46 47RK?78
9VV
" "
" # TWTWVYVY??BBLMLMRKRK<H<H??BB6Q6QLNLN66ÔHÔHRRBNBN<H<HJKJK6Õ6ÕRKRKI&I&ÝÝ 00 VYVY?7?7;@;@BNBN<H<HVYVY?7?788 BVKRBNLNRKBNÔ><H668 ÔHÔ>68XVVVV99VVVV99FVVVV99XVVVV99VVYVV99VVVV
"" Ù$ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6ÕRKI&Ýh<H?H 6;@BN<>VY?78¾ BVKBNRKÔ>68 VV9VV9VV9VV9VV9VV
" ÚØ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6ÕRKI&Ýh<H?H 6;@BN<>VY?78 ¾ RLNBN<H6ÔHÔ>68 V9VV9VV9VV9VV9VV
"$
"KÙ
"KÙ
"KÙ
# Ø
$#
#=
#=
#=
# Ö
# Ö
# Ö
# Ö
# ++
#+
#
#*"
#*"
##
##*$#
#*$
#Ù
$Ø
$&
&$
$$
$$
$$
$$K$Ù
$KÙ
ÙØ
Ù Ø
Ù Ø
&Ù
&Ù
&Ù
ÙKÚ
ÙKÚ
Ù=
=
Ù=
Ù
ÙÖ
Ù Ö
Ù Ö
+
" Ú& TWTWVYVY??BBLMLMRKRK<H<H??BB6Q6QLNLN66ÔHÔHRRBNBN<H<HJKJK6Õ6ÕRKRKI&I&ÝhÝh8N8NIIL,L,66;@;@BNBN<><>VYVY?7?788 BVKRBNLMRKBNÔ><>668 ÔHÔ>68:VVV99VVVV99VVVV99VVVV99VVVV99VVVV Ù ++
" ÚKÚ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6ÕRKI&Ý ^< 6;@BN<>VY?78BVK¾ BNRKÔ>68 VV9VV9VV9VV9VV9VV Ù +
" Ú=
Ù
" ÚÖ+ k2TWVYI?BLNB6LMRKO6 <H;@?LMB<>6QBNI7LNLN66 ÔHR¾BN<HVYJK8N6Õ8N<2RKI&Ô>62Ý 47^6Q< 6ÔHR£;@BN;@<>VYVY??7B8 L
RK<HR?LNBBN6Õ<H6LNÔHÔ>66ÔH8RBN<>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?XB6Õ6 4|4-06.<H?^;=;=ÔHÔHRKI78N8N8N<>6VY8E?¬;@6VK?7LNLN8668 X:¾ ^VYÔH?^<û847¾ BRK6Q?4B
6 R ÔûRXRK;MF7<û?6.R^8BLMRK<HB6 47GestionDesInscriptions
Ù$
RK?78
9V Ù$
" Ú$ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6 R£ ÔHR 0VY?7;@BN<>VY? RLNBN<>6InscritsAuxExamens
Inscrits
H
Ô
>
Ô
6
9
V
V
V
9
V
9
V
V
V
9V Ù$
" ÚKÙ
¾
Inscrits
" = Ø ÜÞÝ&BLMRK<>B:46QÔHR£8 ¾ O6 ;=<27;=RBN<>VY? ! 47I¼;@VY?BLHVYg Ô>6P4|-0RK;=;H6 8:RKI&ÝMaRg 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:8NR4BN6Q<>VYÔH?hR£86¾?xO6 47;=<2<H7R;=#KRLMRKBN<>XVY? X!6Q446Q6Q;=ÔäÔH- RK6@Ý&8N866X 8D¾ 4ÔH6Q6QÔH47R£I XScheduler
RK;
F7<H?6
V9VV9VV =ØG#
#Ú
Scheduler
VV9VV9VV9VV =Ø$
# = C`C`LMLMRKRK?7?788 00VKVKLMLMXXRRBNBN<><>VYVY?¼?{64|? -0I7?6 T¾ , LNV 4|¾ -0I7LM<
?=O6 6 BPO6 <HLN?V JRLML
<
=<HO6 RKB?ÕO6 B<H6Q?J4^RI LM<ûScheduler
RK?B6Q;@VYX ¾ Ô>6@Ý$6 V9VV9VV =Ø$
# ,Ö+ k2IBLN6Q6@Ý&BLMRK<>BD476QÔHR£- 8 O6 ;=<27^;=RBN<HVY?¼¾ 47I ¾
9VV9VV9VV9VV9VV K=Ø
#
¾
Scheduler
# " TWVY?BLMRK<H?B6 - T,¶6@Ý$BL
RK<>B6Õ46QÔä- 6@Ý&6X ¾ ÔH6Q47I Scheduler 9VV9VV9VV9VV KK
$ .2ÜÞÝ&68ABLMJRKR;@LMBN<H<>VYR^?xÔH648 68JR9LM<HVR^VÔH698 VVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV K ++
$ Ú /2?6QJRLM<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£6q8NJIPR^LM8<HBNR<>^BNIÔH6öBN<HBhVY ?$¾ =#O6 6 R Ôä-0RK<û
4V6ö94|-0I7?bVV6?7986VX:V^9Ô>6O6 V?$I7VX9=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#
! " $ $ [.,ERL
<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Ù
$ Ú ,ER8NI8^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 ÚØ
$ " ,ER8NI8^ 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 Ú&
$ ÚØ ,ER8NI8^ 8BN<HBNIBN<>VY? '0"-
9VV9VV9VV9VV9VV9VV9VV ÚKÚ
$ Ú& ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR£8NIP^ 8BN<>BNIBN<HVY? !'0"#$
9VV9VV9VV9VV9VV ÚKÚ
$ ÚKÚ
ÚKÚ
$ Ú= ÜÞ.2Ý&6BI&LMÝhRK;@JBNR<>VYL
<H?xR^4Ô>6Q68ÔHR£;@VY8N?7IP;=^ I78LNBNLN<>BN6I?BNB<H6VY8 ?9V V9V\VR 9¾ L$6 V8:<ûV?9B6=VL ¾ VL$=9O6 BNRBNV<>VYV?¼946,VV9VVVV99VVVV Ú=
$ ÚÖ©+ C`LMRK47I7;@BN<>VY?{468JRLM<HR^ Ô>68;@VY?^;=ILNLN6?B68 9VV9VV9VV9VV9VV9VV ÚÖ
$Ú
ÚÖ
$ Ú" /2C`LM?RK6Q47VI7¾;@BN=O6 <>LMVYR?{BN<>VY4?x68 RJKR6LM; RK¾ XMR6= LMBRKLMXM68X6= BLN6 9VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV99VVVV ÚÖ
$ Ú#
ÚÖ
¾
"
$ Ú$ ;ÜÞXÝ&76XL
<H;=RÔH6QBN<>VY4?¼6Q4X6QRK8M;MI8F^^<H?86BN<>BNI79BNV<>VYV?78496QV;@VVYX 9¾ VVYV8N<>9BN<HVY? VVV99VVVV99VVVV99VVVV99VVVV99VVVV Ú +
$ ÚKÙ k2IBVYX¾ RB6P4768JRL
<HR^Ô>68 6=B 9VV9VV9VV9VV9VV9VV9VV Ú"
$ = Ø k2IBVYXRB67?7RKÔ|46QÔHR£XRKv1;
F7<H?6v2 9VV9VV9VV9VV9VV9VV9VV Ú#
$ &= ,Û6ÕLNVÇVKB 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ú#
$ K= Ú xRK;MF7<H?76ÕR^8BLMRK<HB69VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ú$
$$ ==Ö= .q<HR#KLMRKXX6Õ4|- =O6 BNRBN82BLMRK?78N<>BN<HVY?7847I
Ú$
6@Ý&BLMRK<>BD476QÔä-0<H?7<>BN<ûRKÔH<H8NRBN<>VY?jVVV9V ÚKÙ
6@Ý&BLMRK<>BD476QÔä- V ¾ =O6 LMRBN<>VY? V9V ÚKÙ
$ = + .q<HR#KLMRKXX6Õ4|- =O6 BNRBN82BLMRK?78N<>BN<HVY?7847I Robot0
Robot0
R ¾ LE6 8:8N<HX ¾ ÔH<27^;=RBN<>VY? VV9VV9VV ÚKÙ
$ =" .q.q<H<HRR#K#KLMLMRKRKXXXX6Q6Q6@6@Ý$Ý$BBL
L
RKRK<><>BDBD446Q6QÔäÔä-- VV ¾ ==O6 O6 L
L
RRBNBN<><>VYVY?? Chgt
$ =# .q<HR#KLMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>¾ BN<>VY?78247I Dchgt R V¾ L$V6 8DV8N9<HX ¾ VÔH<297^;=VRVBN<HVYV? 9VV99VVVVVV99VV E=Ø
$ =$ [.LM6X<>6=LALMR*)¬?6X£6?BA47IbLNVÇVKB VVRobot0
E=Ø
$ K= Ù .q<HR#KLMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78246QÔH9RVJRVLM<H9R^ÔHV6 V9VVVY9ILVV9VVV99VVVVV99VVV E=&
$$ ÖYÖ7Ø .q<HR#KLMRKXX6Q4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78A46öÔHRPJRLM<HR^Ô>6 Type ¾ VYIL Chgt R L$6 88N<HX ÔH<27^;=RBN<>VY? E=E=&KÚ
¾
¾
¾
JRL
<HR^Ô>6 Chgt9VV9VV9VV E=KÚ
$ ÖÚ .q<HR#KLMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?782;@VYX ¾ Ô>6=BA476QÔHRType
Type
6=B
VVV9V E=KÚ
$ Ö>= .q.q<H<HRR#K#KLMLMRKRKXXXX6Õ6Õ4|4|-- ==O6 O6 BNBNRRBNBN88SSBBLMLMRKRK?7?78M8M<><>BNBN<><>VYVY?7?7828 468J
RLM<H R^ÔH68 VDt1,
V9De2VV9VDa1V9VV9VV E==
$ ÖKÖ+ .q<HR#KLMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 * V9VDe1,
* * * 9VV9VV9VV9VV E=Ö
$ Ö ,ERXRK;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?7X8RK=O6 ;MBNF7<HG<û?I76 6=B=O6 682LN6ÔûRBN<2059R£ VÔûR£VXVRK9;MVF7<û?6 9Parking
V
V
V
9
V
9VVV9V E="
=O6 682LN6ÔûRBN<20RKI¼LMR*)?6X£6?B
VV9VV E="
$ ,Ö+ Ù .q9G&<HR8Bc#K6 LMX£RKX6PX476ö6ÕB4|LM-RK=O6 ?7BNR8N<>BNBN8<HSVYB?7LMRK8?7=O6 8MBN<><HBNG<>VYI7?76=B8:Parking
Parking r1
$ ,+ Ø .q<HR#KLMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?782LN466ÔH8RBNJ<2R05LMR <HRÔH^R£ÔH6X8RK47;
IbF7<HLM?R*6Q)R?68XBLM6RK?<>BB 6 Parking V99VVV E=#
$ ,+ .q<HR#KLMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 47IbLMR*)¬?6X£6?B ParkingVr1V9VV E=#
E=$
$ Ú
*
Parking r1
Ù /2?6Õ<HX ¾ Ô
O6 X£6?BNRBN<HVY? 9VV9VV9VV9VV9VV9VV9VV9VV9VV @ÖYØ
Ù Ú ,ERBLMRK47I7;@BN<>VY?{4|-0I7?6ö<HX ¾ Ô
O6 X£6?BNRBN<HVY?h6?¼/?{, 9VV9VV9VV9VV9VV @ÖYØ
Ù = /2?6QV ¾ =O6 LMRBN<>VY?{6?i! Ø 9VV9VV9VV9VV9VV9VV9VV9VV9VV @ÖYØ
Ù Ö ,ERBLMRK47I7;@BN<>VY?{46QÔä-0R ¾7¾ 6ÔÇ4|-0I7?6öV ¾ =O6 L
RBN<>VY? VV9VV9VV9VV9VV9VV @Ö7
Ù ,+ /2?6QV ¾ =O6 LMRBN<>VY?xGI^<ÇLN6=BVYILM?6Q4768JRKÔH6ILM8i9VV9VV9VV9VV9VV9VV @Ö7
Ù " C`LMRK47I7;@BN<>VY?{4|-0I7?6qV ¾ =O6 LMRBN<>VY?lG$I7<ÇLN6=BVYILM?76Q468JRKÔ>6ILM8 VV9VV9VV9VV @Ö7
6=B
VV9VV9V9VVV9V9VVV9V9VVV9V @ÖÚ
Ù # ;?78BLMI7;@BN<HVY?78
68AR ¾7CASE
6¾ ÔH84|- V ¾ =O6 L
RBN<>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 ¾ VKLNBNRBN<>VY?\6?BLN6ÕXRK;
F7<H?68 V9VV9VV9VV9VV @ÖKÖ
Ù Ú C`LMRK47I7;@BN<>VY?{468AÔH<>6?^846öJ$<û8N<2^<HÔû<>BDO6 6=BD<HX ¾ VKLMBNRBN<>VY?b6?BLM6ÕXRK;MF^<H?689VV9VV @ÖKÖ
Ù E= ;?7<>BN<HRKÔH<û8NRBN<>VY?\6=BAV ¾ =O6 LMRBN<>VY?^8D47RK?78DI7?6öXRK;MF^<H?6V! VV9VV9VV9VV9VV @ÖKÖ
Ù @Ö C`LMRK47I7;@BN<>VY?{46QÔä-0<H?7<HBN<HRKÔH<H8NRBN<HVY?6=BD468AV ¾ =O6 LMRBN<>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?{4686@Ý ¾ 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?{4686@Ý ¾ 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?BNRBN<HVY? V9VV9VV9VV9VV9VV9VV
Ú = ;X ¾ VKLNBNRBN<>VY?¼?VYX<H?7RBN<>JK6öVYI¼?7VY?¼4|-0I7?6öXRK;
F7<H?6 VV9VV9VV9VV9VV
Ô-0I7?6ö?|- =O6 BNRK?B ¾ RK8A?7VYXX =O6 69VV9VV9VV
Ú Ö TWL&O6 RBN<>VY?x46Õ46IÝ\<H?78NBNRK?7;@68A46
M1
Ú ,+©/:BN<HÔH<H8NRBN<HVY?h46QXRK;MF^<H?68A<HX ¾ VKLMB=O6 68DI7?6Q86I7ÔH690 VY<H8:VV9VV9VV9VV9VV
6=B
?VY?h<H?78NBNRK?7;=<
=O6 68D47RK?^8 M3 VV9V
Ú " /:BN<HÔH<H8NRBN<HVY?h46Q46I&ÝhXRK;MF^<H?68 M1
M2
Ú # ÜÞÝ&6X ¾ ÔH6Q46QXRK;MF^<H?6QRJK6;o468 ¾ RLMRKX 6= BLN68A6?^86X ÔH<H8B68 VV9VV9VV9VV
Ú $ ÜÞÝ&6X ¾ ÔH6Q4|-0<HX ¾ VKLNBNRBN<>VY?b46PXRK;MF7<û?68ARJK6;P468 ¾ RL
RKX 6= BLN68D6?^86X ÔH<H8B68 9VV
Ú Ù ÜÞÝ&6X ¾ ÔH6Q46QXRK;MF^<H?6QRJK6;oI7?b6?78N6X^ ÔH6QR^ 8BLMRK<>BVV9VV9VV9VV9VV
Ú =Ø ÜÞÝ&6X ¾ ÔH68A4|-0<HX ¾ Ô
O6 X£6?BNRBN<HVY?¼RJK6;ÕBh ¾ RK# 6P4|-0I^?b6?786X:^ Ô>6QR^ 8BL
RK<>B 9VV9VV
Ú K /2?h6?786X:^ Ô>6QR^ 8NBLMRK<>B6? ! 9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú C`LMRK47I7;@BN<>VY?{4|-0I7?b6?786X:^ Ô>6QR 8BLMRK<>B6? RJR VV9VV9VV9VV9VV9VV
O6 6?i! 9VV9VV9VV9VV9VV9VV9VV9VV
Ú E= /2?h6?786X:^ Ô>6O6 ?$I7X=O6 L&o
O6 6? Y RJR 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 RJRVV9VV9VV9VV9VV9VV9VV
. 68AJRLM<HR^ ÔH686? ! V9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú # 2
Ú $ C`LMRK47I7;@BN<>VY?{468JRLM<HR^ Ô>686?LY RJR 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 RJR 9VV9VV9VV9VV
Z RLM<HR Ô>68A46öBd ¾ 6QBNR^ ÔH6RKI&Ý\6? ! V9VV9VV9VV9VV9VV9VV9VV
Ú Ú& .
Ú ÚKÚ C`LMRK47I7;@BN<>VY?{468JRLM<HR^ Ô>68476öBh ¾ 6ÕBNR^ Ô>6RKI&Ýb6? Y RJR 9VV9VV9VV9VV
Ú Ú= CR^ Ô>6RKI&Ýh4VY?BDÔ>68A<H?^47<H;@688VY?BD468bO6 ?$I7X=O6 L&O6 82VYI¼4685Ç V$VYÔ
=O6 6?786?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 RJR 9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú $+ CR^ Ô>6RKI¼G$I7<ÇLN6 ¾ L&O6 8N6?B6oI7?6öJRLM<HR^ Ô>6q6?78N6X^ Ôû<H8B6WVV9VV9VV9VV9VV
Ú Ú" CR^ Ô>6RKI&Ýh46QBNR^ ÔH6RKI&Ý\6? ! 9VV9VV9VV9VV9VV9VV9VV9VV
Ú Ú# C`LMRK47I7;@BN<>VY?¼6? Y RJR476QBNR^ Ô>6RKI&Ýh46öBNR^ ÔH6RKI&Ý V9VV9VV9VV9VV9VV
Ú Ú$ TWL&O6 RBN<>VY?x46 ¾ ÔûI78N<>6IL
8³<H?^8BNRK?7;@68 ¾ RL
RKX =O6 BL$=O6 68:6? ! V9VV9VV9VV9VV
Ú ÚKÙ C`LMRK47I7;@BN<>VY?{46 ¾ ÔHI78M<>6ILM8W<H?78BNRK?^;@68 ¾ RLMRKX=O6 BL&=O6 6826? RJR VV9VV9VV9VV
Ú = Ø /2?h6@Ý$6X ¾ Ô>6Q46 ¾ RK8N8NRK# 6Õ46 ¾ RLMRKX 6= BLN68:6?i! V9VV9VV9VV9VV9VV
Ú &= C`LMRK47I7;@BN<>VY?{47I ¾ RK8N8NRK# 6P46 ¾ RLMRKXM6= BLM68A6?L RJR VV9VV9VV9VV9VV
Ú K= Ú k ¾7¾ 6ÔH84|- V ¾ =O6 LMRBN<>VY?x<H?B6=LM47<>BN8I9VV9VV9VV9VV9VV9VV9VV9VV
Ú == /2?h6@Ý$6X ¾ Ô>6Q46 ¾ RK8N8NRK# 6Õ4|-0I^? ¾ RLMRKXM6= BLN6PBNR^ Ô>6RKI ¾ RLDL$$O6 0 =O6 LN6?7;@6 V9VV9VV
Ú = Ö C`LMRK47I7;@BN<>VY?¼6? Y RJR4Û-0I7? ¾ RLMRKXM6= BLN6PBNR^ Ô>6RKI ¾ RK8N8$O6 ¾ RLDL$$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 LMRBN<>VY?{6?
Ù Ú ©C`LMRK47I7;@BN<>VY?{46QÔä-0R ¾7¾ 6Ô|4|- V ¾ =O6 LMRBN<HVY?
9 ¾ O6 ;=< ^;=RBN<>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ÔHRBN<HVY?
K Ö /2?¼<H?JRLM<ûRK?B
6?¼I7?6 VY?7;@BN<>VY?lT
K ©C`LMRK47I7;@BN<>VY?{46QÔä-0<H?JRL
<HRK?B
=
G$
G$
#
@Ö
@Ö
@ÖÙ
@ÖÙ
+Ù
"Ø
"KÚ
"=
" =
"+
""
" $
"KÙ
# Ø
#$
# Ú
# Ú
#=
#=+
#
#*"
#*"
#*"
##
##
#*$
#*$
#Ù
# Ù
# Ù
$Ø
$Ø
$&
$&
$KÚ
$KÚ
$=
$ =
$+
$"
$#
$#
$$
$
= +9&I88BN<>BNIBN<>VY? * ¾ VYILAÔ>68BNRÔ>6RKI&Ý V9VV9VV9VV9VV9VV ÙØ
=" C`LMRK47I7;@BN<>VY?¼6? YRJR476ÕÔHR£8NI88BN<>BNIBN<>VY? * ¾ VYILAÔ>68BNRÔ>6RKI&Ý V9VV Ù&
=# ,ER8NI8^ 8BN<HBNIBN<>VY?bR ¾7¾ 6Ô|4|- V ¾ =O6 LMRBN<>VY?{6?i!/9VV9VV9VV9VV9VV9VV ÙKÚ
=$ C`LMRK47I7;@BN<>VY?{46QÔHR£8NI8 8BN<>BNIBN<>VY?bR ¾7¾ 6Ô|4|- V ¾ =O6 L
RBN<>VY?¼6? RJR V9VV9VV9VV Ù=
K= Ù ,Û6P8O6 GI6?^;@6X£6?BU!V9VV9VV9VV9VV9VV9VV9VV9VV9VV Ù=
ÖYØ C`LMRK47I7;@BN<>VY?¼6? Y RJR4^I ' " ! VV9VV9VV9VV9VV9VV Ù=
Ö7 ,Û68:8NI8^ 8NBN<>BNIBN<>VY?78 *&-* " . -* .6?i! VV9VV9VV9VV9VV9VV Ù=
ÖÚ C`LMRK47I7;@BN<>VY?{468A8NI8 8BN<>BNIBN<>VY?^8 *-* " . !-* . ! 6? Y RJRV9VV9VV9VV ÙÖ
Ö>= ,ER8NI8^ 8BN<HBNIBN<>VY? %')(* */.6? ! 9VV9VV9VV9VV9VV9VV Ù +
ÖKÖ C`LMRK47I7;@BN<>VY?¼6? Y RJR476ÕÔHR£8NI8 8BN<>BNIBN<>VY? %)(*&,*.46V! V9VV9VV Ù"
Ö $+ ,ER8NI8^ 8BN<HBNIBN<>VY? * ! 6?i!V9VV9VV9VV9VV9VV9VV Ù"
ÖG" C`LMRK47I7;@BN<>VY?{46QÔHR£8NI8 8BN<>BNIBN<>VY? * ! 6? Y RJR VV9VV9VV9VV Ù"
E= ¼. =O6 JK6Ô>V ¾7¾ 6X£6?B24|-0I^?6öR ¾7¾ Ô>6=Bm RJRTRLM4 9VV9VV9VV9VV9VV9VV ÙKÙ
E= Ú 9 ¾ O6 ;=<27 ;=RBN<>VY?{R^ 8NBLMRK<>B6V! 47I ¾ VKLNB6@SX£VY?^?7RK<>6O6 Ô>6;@BLNVY?^<HGI76 V9VV9VV9VV ÚØKØ
E= = ; X ¾ Ô O6 X£6?BNRBN<>VY? ! 4^I ¾ VKLMB6@SX£VY?7?7RK<>6lO6 Ô>6;@BLMVY?7<HG$I6 V9VV9VV9VV9VV ÚØ
E= Ö ,ER8 ¾ O6 ;=<2^7 ;=RBN<>VY?L! 46ÕÔä- 6@Ý&6X ¾ Ô>6ö47I ¾ VKLNB6@SXVY?7?7RK<>6WV9VV9VV9VV9VV ÚØYÚ
E= ,©+ C`LMRK47I7;@BN<>VY?{46QÔä-0R ¾7¾ ÔH6=B BWallet V9V9VVV9V9VVV9V9VVV9V ÚØ =
E= " TWV&46Y RJRj`# 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 RJR# O6 ?W=O6 L&O6 ¾ VYIL Ôä- 6@Ý&6X ¾ ÔH6A47I ¾ VKLNB6@SX£VY?^?7RK<>6Qß ¾ VY<H?B 4|- 6?BL&=O6 6q47I;@V&46U RJR ÚØ"
E= $ ,Û6 ¾ VKLMB6@SX£VY?7?7RK<>6lO6 Ô>6;@BLMVY?7<HG$I6 ¾ VYIL Y RJRTRL
4 O6 ;@LM<>BAXRK?I6ÔûÔ>6X£6?BUVV9VV ÚØG#
E= Ù ; X ¾ Ô O6 X£6?BNRBN<>VY?L RJRTRLM4x46QÔHR£;=ÔHRK8N8N6 Wallet 9V9VVV9V9VVV9V ÚØ$
+G :k LM;MF7<HB6;@BNILN6Õ46QÔûR ¾ ÔHRB6@S 0 VKLMX£6:>W! C - - ,9 VV9VV9VV9VV9VV9VV Ú&@Ö
+G Ú ¼. $O6 ^ IB:476QÔHR%K# LMRKXXRK<HLN6 ?x , VV9VV9VV9VV9VV9VV9VV9VV Ú& "
+G = C`LMRK47I7;@BN<>VY?{47IbBh ¾ RK# 6Õ6? ?x , V9VV9VV9VV9VV9VV9VV9VV Ú& "
+G Ö /2?6 ¾ RLNBN<H6Q46QÔHR%K# LMRKXXRK<>LN6Q46857 ;MF7<>6=L
8 ?x , 9VV9VV9VV9VV9VV Ú& #
+G,©+ ÜÞÝ&6X ¾ ÔH6Q46Q;=ÔHRK8N868UY RJR476QÔHR ! - ,¶;@VKLNLM68 ¾ VY?747RK?BARKI&Ýb8MI8^ 8BN<>BNI7BN<>VY?78 (* * . Ú& #
+G " 2k IBLN6~6@Ý&6X ¾ Ô>6 46 ;=ÔûRK8N868 RJR46 Ô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# LMRKXX6Õ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;=RLNLM6$0 VYIL 9VV9VV9VV9VV9VV ÚKÚ=
" Ú 9 ¾ O6 ;=<27 ;=RBN<>VY?{R^ 8NBLMRK<>B6Q47I¼;@VYX ¾ VY8MRK?B Feu VV9VV9VV9VV9VV9VV ÚKÚÖ
" = ; X ¾ Ô O6 X£6?BNRBN<>VY?{4^Ih;@VYX ¾ VY8NRK?B Feu VV9VV9VV9VV9VV9VV9VV ÚKÚ +
" Ö 9 O6 ;=<27 ;=RBN<>VY?{R^ 8NBLMRK<>B6Q47I¼;@VYX VY8MRK?B CARREFOUR 9VV9VV9VV9VV ÚKÚ +
9VV9VV9VV9VV9VV ÚKÚ"
" ,+ ; X ¾ ¾ Ô O6 X£6?BNRBN<>VY?{4^Ih;@VYX ¾ VY8NRK?B ¾ CARREFOUR
" " ,Û6P;@VYX ¾ VY8NRK?B ¾ LM<H?7;=< ¾ RKÔ V9VV9VV9VV9VV9VV9VV9VV9VV ÚKÚ#
" # q. <HRK# LMRKXX6Õ46Õ;=ÔHRK8M8686@Ý&BLMRK<>BD46QÔûR£8 ¾ O6 ;=<2^7 ;=RBN<>VY? CARREFOUR 9VV9VV ÚKÚ$
" $ TWVY?BLMRK<H?B6QLN6ÔHRBN<HJK6 R£ ÔHR ^ < 6;@BN<>VY?bBVKBNRKÔH6 suiv 9VV9VV9VV9VV9VV ÚKÚ$
" Ù q. <HRK# LMRKXX6Õ46Õ;=ÔHRK8M8686@Ý&BLMRK<>BD46QÔûR£8 O6 ;=<2^7 ;=RBN<>VY? VV9VV9VV9VV ÚKÚ$
Ôä-0<H?JRLM<HRK?B:46ÔHR\8 ¾ O6 ;=<2^7 ;=RBN<>VY?
" =Ø TWVY?BLMRK<H?B6LN6ÔHRBN<>JK96£VRKVI&Ý9V¾ LNVV ¾LM9< =O6 VB$O6 V8ö9;@VYV¾ X V¾ 9ÔH6@Ý$6V8qV496£Feu
VV9VV9VV9VV9VV ÚKÚKÙ
TWVY?BLMRK<H?B6LN6ÔHRBN<>JK6£RKI&Ý ¾ LNV ¾ LM< =O6 B$O6 8ö;@VYX ¾ ÔH6@Ý$68q46£Ôä-0<H?JRLM<HRK?B:46ÔHR\8 ¾ O6 ;=<2^7 ;=RBN<>VY?
" K CARREFOUR
9V9VVV9V9VVV9V9VV9VV9VV9VV9VV9VV9VV ÚKÚKÙ
Feu
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
Ú
VV9VV9VV
" Ú ÜÞÝ&BLMRK;@BN<>VY?x46QÔHR VY8BS;@VY?74^<>BN<>VY?h46QÔä- V =O6 L
RBN<>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# LMRKXX6Õ4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78:6@Ý$BL
RK<>BA46ÕÔHR£8 ¾ O6 O6 ;=;=<2<27^7^;=;=RRBNBN<><>VYVY?? Feu VV9VV99VVVV
" q. <HRK# LMRKXX6Õ46Õ8$O6 G$I6?7;@6Q6@Ý&BLMRK<>B:46QÔHR£8 O6 ;=<27 ;=R¾ BN<>VY? CARREFOUR 9VV
"" "# q. <HRK# LMRKXX6Õ4|-0RK;@BN<>J&<>BO6 8D6@Ý&BLMRK<>BA476ÕÔHR£8 ¾O6 ;=<27 ;=RBN<>VY? CARREFOUR
imp
V
9
VVV9V
¾
V9VimpV9VV9VV9VV
"" Ù$ C`C`LMLMRKRK4747I7I7;@;@BNBN<><>VYVY?{?{4747IhIh;@;@VYVYXX ¾ VYVY8N8NRKRK??BB ¾ LM<H?^;=< ¾ RKÔ6? Y R6J?R VRJ9R VMAIN
V9VV9VV9VV9VV
6? Y RJR9VV9VV9VV9VV9VV9VV
" ÚØ 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?76QXRK;MF7<û?6QR^ 8BLMRK<HB6Q46Õ868 ¾ LNV ¾ LN686?BN<>BO6 8 V9VV = +
9&I88BN<>BNIBN<>VY?^8W4769^RK86Õ46QÔûR£X =O6 BNFV$476! 6=BDÔ>6ILA8$O6 XRK?BN<HG$I69VV9VV9VV = +
9&I88BN<>BNIBN<>VY?^8W476Q;@VYX ¾ VY8N<>BN<>VY?b6=BDÔH6ILA8O6 XRK?BN<HGI76 V9VV9VV9VV9VV ="
A:VKBNRBN<>VY? =O6 B6?74^I6Õ468A8MI8^8BN<>BNI7BN<>VY?7847IhÔHRK?8Y# RK# 6! V9VV9VV9VV9VV ="
C
¾ R#K6o4686@Ý ¾ LN68N8M<>VY?785! 9VV9VV9VV9VV9VV9VV9VV9VV =#
C
¾ 6Q4686?^86XÔ>68 ¾ L&O6 4W$O6 ^7 ?^<H8 VV9VV9VV9VV9VV9VV9VV9VV =#
C
6Q46QJ&<H8N<D^<HÔH<>B$O6 VV9VV9VV9VV9VV9VV9VV9VV9VV9VV Ö7
Zq<H8N¾ <2^ <ûÔH<>B2O6 47686?BN<HBO6 824|-0I7?76QXRK;MF7<û?6öJ$I76 VV9VV9VV9VV9VV9VV ÖÚ
Zq<H8N<2^ <ûÔH<>B2O6 47686?BN<HBO6 824|-0I7?76QXRK;MF7<û?6Q<H?7;=ÔHI^86:VYI =O6 B6?747I6 VV9VV9VV9VV ÖÚ
Zq<H8N<2^ <ûÔH<>B2O6 4Û-0I7?6QXRK;
F7<H?6QIBN<ûÔH<H8$=O6 6 V9VV9VV9VV9VV9VV9VV9VV ÖÚ
Zq<H8N<2^ <ûÔH<>B2O6 47686?BN<HBO6 824|-0I7?76QXRK;MF7<û?6Q<HX ¾ VKLNB$=O6 6 9VV9VV9VV9VV9VV Ö>=
k ) ?6X£6?BD46QÔHR£4W=O6 L
<>JRBN<HVY?¼4|-0I7?6QRK8M8V$;=<ûRBN<>VY? ¾ RLD8N68AXPI^Ô>BN< ¾ ÔH<û;=<>BO6 8XVV9VV #Ø
9$B$=O6 L&=O6 VKBh ¾ 68ö4|-0RK<H46jR
ÔûR£Ô>6;@BNILN6Q468D47<HRK# LMRKXX68A46Q;=ÔHRK8N8N68 9VV9VV9VV Ù"
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468 ¾ L$O6 47<H;=RBN8X! V9VV9VV9VV9VV9VV9VV =ØÖ
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468A6@Ý ¾ LM68N8N<>VY?78RL
<>BNF7X=O6 BN<HG$I68 ! VV9VV9VV9VV =Ø +
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468A6@Ý ¾ LM68N8N<>VY?786?^86X ÔH<H8B68 V9VV9VV9VV9VV =Ø +
V$4WO6 ÔH<û8NRBN<>VY?h6? - T, 468A6@Ý ¾ LM68N8N<>VY?785! ¾ VKLNBNRK?BA8NIL:Ô>68LN6ÔHRBN<>VY?^8 VV9VV =Ø"
{
Ü G$I7<>JRKÔ>6?7;@6ö6? - T, 468A6@Ý ¾ LM68N8N<>VY?788MILDÔ>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
8A468AJRLM<HR Ô>68 ¾ VYILÔ>68b=O6 BNRBN8246 * VV9VV9 V V9VV9VV E==
Z.RKÔ>6IL
8A468AJRLM<HRÔ>68 ¾ VYILÔ>68b=O6 BNRBN8246 * * * VV9VV9VV E=Ö
Z.RKÔ>6IL
8A468AJRLM<HR Ô>68 ¾ VYILÔ>68b=O6 BNRBN8246 * 9VV9VV9VV9VV9VV E=$
C`LMRK47I7;@BN<>VY?{468A8BLMI^;@BNILN68A46Q;@VY?BLHVYg Ô>6:! Ø 6? - TRKXÔ VV9VV9VV9VV "&
C
¾ 6Q4686?BN<>B$O6 8246QÔHRXRK;
F7<H?6 R ¾ L$6 8AJ.=O6 L
<2^7 ;=RBN<>VY?¼ÔHV$;=RKÔ>6Q4768Bh ¾ 68XV9VV #Ø
C
¾ 6468q6?BN<>BO6 8P476ÔHRbXRK;MF7<û?6 A R ¾ L$6 8QJ.=O6 LM<2^7 ;=RBN<>VY?¶Ô>V$;=RKÔH6 ¾ RLNBN<>6ÔHÔ>6£468qBd ¾ 68
46
V9VVV9V9VVV9AV9VV9VV9VV9VV9VV9VV9VV #$
B
C
¾ 6P4768D6?BN<>BO6 8ö46PÔûR¬XRK;
F7<H?6 R ¾ LE6 82J.=O6 LM<2^7 ;=RBN<>VY?lÔ>V&;=RKÔ>6P;@VYX ¾ Ô,6= B6£468DBd ¾ 68
46
V9VVV9V9VVV9AV9VV9VV9VV9VV9VV9VV9VV #Ú
B
[ LMV ¾ VY8M<>BN<>VY?4Û- O6 G$I7<>JRKÔ>6?7;@6ö?VY?¬LN6=B6?$I6q6?BLM62Ô>68WBd ¾ 6846U^ RK86?! 6=BÔ>68³Bh ¾ 685 RJR #Ö
.
TWVY?JK6?BN<HVY?{4|-UO6 ;@LM<>BNI7LN6Õ468A;@VY?^;@6 ¾ BN8A6=BAV 6=BN8:468A47< D=O6 LN6?BN8DÔHRK? YR K68
Ü Ô O6 X6?BN8246 KLMRKXXRK<>LN6Q468AÔûRK? YR K68DIBN<ûÔH<H8$O6 847RK?78D;@6Õ4V&;=I7X£6?B
Ú&
ÚKÚ
,+
Hg :!
i! #
V9VV9VV9VV9VV $KÙ
V9VV9VV ÙÖ
Ú ©C`LMRK47I7;@BN<>VY?{468A8BLMI^;@BNILN68A46Q;@VY?BL VYÔ>6 Ø 6? YRJR
R YRKI7;
F6 =6 BD6? YRJR R4LNVY<>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<û8NRBN<>VY?~46Ô-0<H? VKLMXRBN<HG$I68=- 68BPL$O6 ¾ RK?747I76¬47RK?78ÕÔ>68
R 7¾ ¾ Ôû<H;=RBN<>VY?78:<H?747I78NBLM<>6ÔHÔ>68ÔH68 ¾ ÔHI78D4^<>JK6=LM868 ÇÜ ?l;@VY?78$O6 G$I6?7;@6 ÛÔ>64W=O6 JK6Ô>V ¾7¾ 6X£6?Bö4|-0R ¾7¾ Ôû<H;=RBN<>VY?78
8 ILM6868BA46=JK6?$I{I7? Ç68VY<û?h;@LMI7;=<HRKÔ|RKIxX£VY<H?78 ¾ VYILBLNVY<û8LMRK<H8VY?78Qß
,`R ¾ LN6X< 6=LN6Þ68BÛÔ>6ÞLM<û8NGI76!F$I7XRK<û?q6=BE;@VY?7;@6=LM?6³Ô>68|4VYXRK<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?747668BoÔHR¼46XRK?^46;@LNVY<H8N8MRK?B6\4|-0R ¾7¾ ÔH<û;=RBN<>VY?78ö8 ILM68Q47RK?78PÔ>68Õ4VYXRK<H?68Q?VY?¶;@LM<uS
BN<ûGI68 !RLP6@Ý&6X ¾ Ô>6\Ô>6LN6=BVYI7Lo46 ¾ LNV&47I7<>BN8qJK6?74^I78 ¾ VYILÕI^?6;@VKLNLN6;@BN<HVY?4^I Ô>V Y<H;=<>6Ô 6XS
RLMGIWÕO6 VYI¼?VY?b68BABL 68DVY?³=O6 LN6I&ݼ8NRK?78 ¾ RLMÔ>6=LA46QÔûRPLM6X<H86ö6?¼;=RKI^86Q46QÔä-0<HXR K6Q46QXRLMG$I6
476QÔHR£8V&;=<
=O6 BO6 ¾ LNV&47I7;@BL
<H;@6
,`R£BLNVY<H8M< 6X£6ö68BDÔä-0RKI YX£6?BNRBN<HVY?{;@LNVY<H8M8NRK?B6P46QÔHR£;@VYX ¾ ÔH6@Ý&<>B$ÕO6 4768AÔ>V Y<H;=<>6Ôû8RJK6;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 RIBN<ûÔH<H86=L468B6;
F7?VYÔ>V Y<H68
46 ¾ ÔûI78!6? ¾ ÔHI^8 VKLMXRKÔ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?BG$I7<³VY?B ¾ VYIL ^IBP4Û- V 7B6?7<>L;@6=LNBNRK<H?78?7<HJK6RKI&ݶ46
G$I7RKÔH<>B$O6
?~;=RL
RK;@B=O6 L
<H86¬ÔH64W=O6 JK6ÔHV ¾7¾ 6X£6?BPÔ>V Y<H;=<>6Ô ¾ RLQÔä- 6?^86X Ô>6£468qB6;MF7?^<HGI768öGI7<Þ8NVY?BQIBN<ûÔH<H8$=O6 68
47RK?782Ô>6 ¾ LNV&;@68N8NI782;@VYX ¾ Ô>6=B246;@L$O6 RBN<>VY?~;- 68BS RS47<>LM6o46Ôä-0<H476?BN< ;=RBN<>VY?¼47I Ç68VY<H? R\Ôä-0IBN<ûÔH<H8NRBN<>VY?
6 Ç6;@BN<>JK6 46~Ôä-0R ¾7¾ Ôû<H;=RBN<>VY? ,E68h47< D=O6 LN6?B68hRK;@BN<HJ$<>B$O6 8¼476l;@6 ¾ LMV$;@68N8MI78¬8NVY?Bh47<>J&<H8$=O6 68\6? G$I7RBLN6
G$I7<8VY?B£4W=O6 BNRK<HÔûÔ
=O6 6847RK?7
8 Ú KÙ ¾ L 68Ô-0<H46?BN< ^;=RBN<>VY?47I Ç68VY<H?
¾ F7RK8N68£XR 6I7LN68
4|-0I7?*?VYI7JK6RKI Ô>V Y<H;=<>6Ô !<ûÔ³68NB?³O6 ;@68N8NRK<>LN6¼476¼;@VY?7?7R >BLN6hÔ>6h;=RK4LM6¼4|-0R ¾7¾ ÔH<û;=RBN<>VY?*46h;@6ÔHI7<uS;=< Þ/2?6
¾ LN6X< 6=LN6 ¾ F^RK86x4|-0RK?^RKÔ $8N6{468 (68NVY<H?78L&O6 ¾ VY?74 R ;@6=BB6~G$I68BN<>VY? WTW6=BB6 =O6 BNI74686 ^RK8N6x8NIL\Ô>6
4VYXRK<û?6\4Û-0R ¾7¾ ÔH<H;=RBN<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? VKLMXRBN<HG$I68XRK<û8468D8N;=<H6?7;@68A;@V Y?7<>BN<HJK68
Ô6?L&O6 8MI7Ô>B6DI7?76D8 ¾ O6 ;=< ^;=RBN<HVY?<H? VKLMX£6ÔûÔ>6GI62Ôä- VY?RP;@VYIBNI7X£624|-0R ¾7¾ 6Ô>6=L.Ô>6D;=RKF^<>6=L³468³;MF7RL K68
¾ RLNBN<HL246£;@6ÔHI^<uS;=< I^?6 ¾ F7RK8646o8 ¾ O6 ;=< ^;=RBN<>VY? × ;@VY?^;@6 ¾ BN<>VY? ¾ 6=LMX£6=Bq464³O6 ^?7<>Lq8N;
F³O6 XRBN<HG$I6X£6?B
;@6 RGI7VY<(Ô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ÔHRL&O6 RKÔH<û8NRBN<>VY? ÛTW6=BB6 ¾ F7RK86P68Bq8NI7<>J&<>6QRKI78N8M<>B VKB24Û-0I7?6QJRKÔH<H47RBN<HVY?{G$I7< ¾ 6=LMX£6=B246oJ.=O6 LM< ^6=L28N<`Ô>6
Ô>V Y<H;=<H6Ô|L$O6 ¾ VY?74¼BVKBNRKÔ>6X6?BqRKI&Ý Ç68VY<H?78A4768 IBNILM8AI7BN<HÔH<H8NRB6I7LM8 UÔÛ68B:RKÔ>VKL
8 ¾ VY8N8N< Ô>6ö4|- 6?BNRKX6=L
Ôä-0<HX ¾ Ô
O6 X£6?BNRBN<>VY?86Ô>VY?~ÔHR\8 ¾ O6 ;=< ^;=RBN<HVY?~GI7<68BQÔH6o4W=O6 JK6Ô>V ¾^¾ 6X6?B ¾ LMV ¾ LN6X£6?Bö47<>B 2RK?^8ö;@6=BB6
RK;@BN<>J&<>BAO6 JKVY?B R ¾7¾ RLMR 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<û;=RBN<>VY? ܳÔHÔ>6 ;@VY?78M<H8B6 RDX£6=BBLN66? ¾ ÔHRK;@6WI7?Õ6?^86X Ô>6³46 ¾ LNV KLMRKXX£68E6@Ý O6 ;=IBNR ^Ô>68 YTq- 68B
Ô>VKLM8³46D;@6=BB6{=O6 BNR ¾ 62G$I6DÔ>6 ¾ LNV 6=B³<H? VKLMXRBN<ûGI6A;@VYXX£6?7;@6 RP86:XRB=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 KLMRBN<>VY?*47RK?78PÔä- 6?J$<>LMVY?7?6X£6?BQ68BI7?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 ¾ 6LM6X£6=BB6?BÕ6? ;=RKI786£BVYIB68ÕÔ>68
RK;@BN<>J&<>BO6 8.47I4W=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=BBLM66?¶;=RKI78N6I7?6 R ¾ ÔHI78N<>6I7LM8 (JKVY<>LN6BVYIB68PÔ>68=O6 BNR ¾ 68ÕG$I7<.ÔûR ¾ L$O6 ; 646?B4|- V I Ôä-0<H?B=O6 L 6=Bo46
Ôä-0RKIBVYXRBN<H8NRBN<>VY?¼4^I¼XRÝ<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 ¾^¾ 6X6?B24|-0R ¾7¾ ÔH<û;=RBN<>VY?78 ¾ 6IJK6?B 6=BLN6P;=ÔHRK8M8=O6 68
86Ô>VY?{Ô>6Q?7<>JK6RKI¼476 VKLMXRKÔH<H8NRBN<>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 VKLMX6ÔHÔ>68
,.-0I7BN<HÔH<H8NRBN<HVY?4768X =O6 BNFV&468¬<û? VKL
X£6ÔHÔ>68;@VY?78N<û8B6 R X£6=BBLN6x6? ¾ ÔHRK;@6x468?VKLMX6846 ¾ LMV KLMRKXS
XRBN<>VY?©6=Bh46;@6=LNBN< ^;=RBN<HVY?78b47I ;@V&46 ¾ LNV&47I7<>B TW6 ¾ LNV$;@68M8NI78b464³=O6 JK6Ô>V ¾7¾ 6X£6?BbR ¾ 6=LMX<H8¬46
4W=O6 JK6Ô>V ¾7¾ 6=L468R ¾7¾ ÔH<H;=RBN<>VY?78o8 ILM68oXRK<H88VYI ÇLN6\?WO6 RK?^X£VY<H?78£4|-0I^? XRK?^GI6b46bJ.=O6 L
< ^;=RBN<>VY? VKLS
X£6ÔHÔH6D46:Ô-0R ¾7¾ ÔH<H;=RBN<HVY? ¾ LNV&47I7<>B6 ,.-0IBN<HÔû<H8NRBN<>VY?4768³X=O6 BNFV&46886X<>S VKLMX6ÔHÔ>68.RKI YX6?BNRÔ>6D?^<>JK6RKI
46h8BLMI^;@BNILMRBN<>VY?*47IÔ>V Y<H;=<>6ÔWV 7B6?$I;=RL£6ÔHÔ>684VY?^?6?BI7?6\J&I6 KLMR ¾ F7<HG$I6¬6=B8 $?BNFW=O6 BN<HG$I6h47I
8 &8B 6X£6 ³, - O6 X£6=L K6?7;@6l468X=O6 BNFV&468 VKLMX£6ÔHÔH68 ¾ 6=L
X<>BÔHR~;@L$O6 RBN<>VY? 4Û-0R ¾7¾ ÔH<H;=RBN<HVY?78oBVKBNRKÔ>6X£6?B
8 ILM68.VYI ¾ LN68NG$I6D47I RK<HB 46:ÔH6IL ¾ L&O6 ;=<û8N<>VY?6=BW46:Ô-0IBN<HÔH<H8MRBN<>VY?£46:ÔûR ¾ LN6IJK6 $,Û68W<H?7;@VY?J.O6 ?7<H6?BN8W46
Ôä-0IBN<ûÔH<H8NRBN<>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!XR >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<H8MRBN<>VY?¼I7?7<ûGI6 &RK47R ¾ B$=O6 6 RBVYIB682Ô>688N<>BNI7RBN<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.47IXVY?746:<û?747I78BL
<>6Ô&8VY?BÔ>68³8NI7<>JRK?BN8DßI7?76DRKI YX£6?BNRBN<>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<>JK6RKI46Ô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<H8MRBN<>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<H8NRBN<>VY?l464^<>JK6=LM8ö47<HR KL
RKXX£68 EܳÔHÔ>68qLN6 ¾ L$O6 86?B6?BPÔH68 $8NB 6X6¬4|-0I7?76XRK?7< 6=LN6 R{ÔHR VY<û8Q<H?&S
BNI7<>BN<HJK6¼6=B8 &?BNFW=O6 BN<ûGI6 26x;@6 RK<>B .6ÔûÔ>688VY?B ^<>6? RK47R ¾ B=O6 68 R ÔHR ¾ ÔûI ¾ RLNB£468¬IBN<HÔH<H8MRB6ILM8o6=B
;@VY?7;@6 ¾ B6I7LM8:4768D8 &8B 6X£68ö4|-0<H? VKLMXRBN<>VY?78 ^TW682RJRK?BNR K68qVY?Bq;@VY?BLM< ^I³O6 RL$O6 ¾ RK?74LN6PBL 68qÔHRL K6@S
X£6?B³Ô>6I7L.IBN<HÔH<H8MRBN<>VY?£47RK?78.Ô-0<H?747I78NBLM<>6 ,Û6IL ¾ LM<H?7;=< ¾ RKÔ$4WO6 RKIB³68B³Ô>6:XRK?7G$I6A46 ¾ L&O6 ;=<û8N<>VY?46:Ô>6IL
8$O6 XRK?BN<HG$I6öGI7<LN6?74bÔ>6I7LW?VKBNRBN<HVY? ¾ RL VY<H8³RKX ^< YI 6 26 ¾ ÔHI^8 ;@68X=O6 BNFV&468?6 ¾ 6=LMX£6=BB6?B ¾ RK8
46£8=-0RK8N8MILN6=LQ47I ÇVY? VY?^;@BN<>VY?7?6X£6?BQ47I8 &8B 6X£6 `ܳ?6 (6=BQÔ- 6@Ý ¾ =O6 LM<H6?7;@6468öRK?7RKÔ &8B68Q;@VY?^;@6 ¾ S
B6ILM8:68BqÔ>6P8N6I7Ô ¾ RL
RK;MF$IB6o;@VY?BLN6£Ô>68 ¾ LNV ^Ô 6X68:4|- 6@Ý O6 ;=IBN<>VY?47Ix8 $8NB 6X6;=RLö<HÔE68B:<ûX ¾ VY8N8N< ^ÔH6
46 ¾ LNVYI7JK6=L8NVY? VY?7;@BN<>VY?^?6X£6?B ¾ RL4768WXV K6?78A;=RKÔû;=I7ÔHRBVY<>LN68 Ô(68B4VY?7;q?³O6 ;@68N8NRK<>LM6Q462X6=BBLN6
6? ¾ ÔHRK;@6qI7?6 KLNVY8M86 RBB6=LM<>6q46DB68BN8 ¾ VYILW8=-0RK8N8NILM6=LW47I ÇVY? VY?7;@BN<>VY?7?6X6?B46:ÔûRÕXR VKLM<>B$qO6 468
;=RK8D4Û-0IBN<HÔH<H8MRBN<>VY?b8NRK?78ARBB6<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 VKLMX6ÔHÔ>68PVY?B£468;=RLMRK;@B$=O6 LM<H8NBN<HGI7688VYIJK6?B Rl
Ô- V VY8bO6 4768oX=O6 BNF7V$468£8N6X<uS
0VKLMX£6ÔHÔ>68EÛÜ ÔHÔ>68 ¾ VY8N8$6 476?BÕ4768Õ?VKBNRBN<>VY?^8öLM<2#KVYILM6I7868Q<H8M8NI68ö468QXR¾7BN¾F³O6 XRBN<HG$I68$!T6;=< ¾ 6=LMX£6=B
46 4WO6 ;@LM<HLN6¶Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8{4^I 8 $8NBc6 X6R ;@VY?78NBLMI7<>LN6~46 XRK?7<,6= LN6 BLE6 8 ¾ L&O6 ;=<H86X.:6 ;@6)0RK<HB¼;@68
X=O6 BNFV&468!47<H8 ¾ VY86?B$' ¾ VYIL;@6=LNBNRK<H?68;@VYXX£6ÔHRDX=O6 BNF7V$46!U'46³B6;MF7?^<HGI768`46 ¾ LN6IJK68<H?BLNV&47I7<>B68
e VYRLN6 + ¾ 6=LMX£6=BBNRK?BP46£J.=O6 LM<277 6=LÕ;@VYX ¾ Ô,6= B6X£6?BoÔ>6;c& ;=Ô>64764³=O6 JK6Ô>V ¾7¾ 6X£6?BÕ468QÔ>VY# <û;=<>6ÔH8
¾ RL:
46 ¾ I^<H8qÔ>68 ¾ LN6X<,6= LN68öR^ 8BLMRK;@BN<HVY?78KN I78NG$I|- Rh
Ôä-0<HX ¾ ÔHRK?BNRBN<HVY? ;@V&46;@VYX ¾ <HÔHR^ ÔH6o4VY?^;6@Ý O6 ;=IBNR^ ÔH6 TW68:RJRK?BNRK# 68Q8NVY?B2;@VY?BLN6$ RKÔHRK?7;^O6 8 ¾ RL:Ôä-0I7BN<HÔH<H8NRBN<HVY?h4|-0I7?M0 VKLMXRKÔH<û8NX£6öLN6$^ I7BNRK?B ¾ VYI7L Ç 6RKI7;@VYI ¾
46Q8 ¾ O6 ;=<ûRKÔH<H8B68 Ö>= ' $ + 47Ib4VYXRK<H?6q6=BD4Û-0I7?bXRK?7G$I6ö4|-0RKILMR£47RK?^8WÔH6QX£VY?746ö<H?74^I78BLM<>6Ô ¾ VYIL468
LMRK<H8NVY?78:476o;@V@Ig Bq6=Bö4|-0<H?JK68BN<H8M86X£6?B2?VY?;@VYX ¾ LN68N8N<2 Ô>6Õ46 8öÔ>64³$O6 ^ IBq47I ¾ LNVH 6=Bq476o;@L&O6 RBN<>VY?@Û Ü ?
6cÇb 6=B$7' Ô>6qB6X ¾ 8<HX ¾ RLNBN<RKIh4W=O6 JK6ÔHV ¾7¾ 6X£6?BR£
Ôä-0RK<û4624768X =O6 BNFV$47680 VKLMX6ÔHÔ>688NRK?78RKI7;=I7?76 ¾ LN6IJK6
47I8 & 8B$6 X£6¼68NB4³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 ¾ LN6IJK647I8 & 8Bc6 X£6RKI8Y# X6?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³RJRK?BNRK# 68NILEÔ>68EX =O6 BNFV$4768`86X<uS 0 VKL
X£6ÔHÔ>68!ß6ÔHÔ>68
¾ 6=LMX£6=BB6?B46:L&O6 4^I7<>LN6qÔ>68WB68BN8I7?7<HBNRK<>LN68³6=B47VY?7;q46:L&O6 4^I7<>LN6qÔ>68WLN6=BVYILM8RKI&Ý =O6 BNR ¾ 68RK?B=O6 LM<>6ILM68
47RK?78³Ô>6:;c& ;=Ô>6246DJ&<>6:4Û-0I7?Ô>VY# <H;=<H6ÔQ>!
[ RL;@VY?78O6 GI76?BW6ÔHÔ>68 ¾ 6IJK6?BW<H?BLNV$4^I7<>LN6I7?jY# RK<H?¬476AB6X ¾ 8³6=B
4VY?7;o4|-0RLK# 6?Bö8NILöÔHR ^7 ?l47Ix4W=O6 JK6ÔHV ¾7¾ 6X£6?B$2
. 6 ¾ RLqÔ>6ILq;@VYX ¾ Ô O6 X£6?BNRLM<>B$O6 Ô-0<H?B$$O6 K# LMRBN<HVY?~4|-0I7?6
X=O6 BNFV&46V0 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<>VKLMRBN<HVY?¼?VKBNR^ Ô>6
#
!
!
!
!
!
.qRK?78`?VKBLN6.;@VY?B6@Ý$B6?VYI78|RJKVY?78`;
FVY<H8N<KÔûRX =O6 BNFV$476 0VKL
X£6ÔHÔ>61! ¾ VYILÛ47<>JK6=L
868ÇLMRK<H8VY?^8|4³=O6 BNRK<HÔHÔ =O6 68
47RK?78:Ô>68DÔû<2Y# ?68D8MI7<>JRK?B68$S:
. 6?VYX:7 LN6I&ÝhBLMRJRKIÝ{8VY?B:6cb(6;@BNIWO6 8 VYI7LA6=B:RKIBVYI7L246:! 47RK?78:I7?6
;@VYXXoI7?7RKIB$¶
O6 RK;@BN<HJK6 A
/2?6 =O6 JRKÔûI7RBN<>VY? G$I7RK?BN<HBNRBN<>JK6 R =O6 BO6 L$O6 RK¾ÔH<H8$=O6 6 ¾ RL xRLM<HRK?7V #$ :TW6=BB6
=O6 JRKÔûI7RBN<>VY? 68B O6 ÔûR( VKL&=O6 6 ¾ RLhLMR ¾7¾ VKLNBIR
;@6=LNBNRK<H?768¼;=RLMRK;@B=O6 LM<H8BN<ûGI68x47I 4³=O6 JK6Ô>V ¾7¾ 6X£6?Bi0VKLMX£6Ô
;@VYXX£6ÔHRDBNRK<HÔHÔ>6' ÔHR2;@VYX ¾ Ô>6@Ý<>B³O6 VYIÔHR28BLMI^;@BNILN6 ܳÔHÔ>6W;@VY?78BN<>BNI6I7?6
Y# RLMRK?BN<>6GI6WÔ>68!8 ¾ O6 ;=<27^;=RBN<HVY?78
8VY?B9^ <>6? 0 VKLMX =O6 68$ TW6=BB6¬X =O6 BNFV$476 ¾ VY8M8c6 4646890 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Ô>6X6?B\46I&Ý*VYIBN<HÔH8£RKIBVYI7L46 ! G$I7<8VY?B
³
Ôä-l
k B6ÔH<H6=L&! ÙKÚ 6=BDÔ>6V! C`VVYÔ QO <>B + ^ ,E68A86=LNJ&<H;@68VÇb 6=LNBN8 ¾ RLD;@68AVYI7BN<HÔH88VY?BDÔ>68A8MI7<>JRK?BN8qß
k ?7RKÔ2& 86QÔ>6@Ý<H;=RKÔ>6ö6=B:8 $ ?BNRÝ<HGI76Q468AX£V&46 Ô>68
2
Z =O6 LM<2^7 ;=RBN<HVY?{47IbBd ¾ RK# 6
¼
T O6 ?W=O6 L
RBN<>VY?468V^ ÔH<DY# RBN<>VY?7846 ¾ LM6IJK68
{
[ LNVYIJK6IL:RKIBVYXRBN<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Ôû<H8NRBN<>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 Ô>646¼J&<>B68N8N6x47I X =O6 BLNV46lTRKÔH;=I7BBNR # W' Ô>6 LNVH 6=B { ܳCAÜ - 3 =# ' " ;@VY?78BL
I7;@BN<>VY?¼46PÔHR ¾ LN6X<Q6= LM6QÔH<2Y# ?6öRKIBVYXRBN<û8=O6 6o47IhX=O6 BLMV ¾ RLM<û8N<>6?¬S ,E¾ <2Y# ?76 @Ö 2
"!
! $#
!
&%
'!(
i
!
!
&%)
!
*%)
$0
!
c
,`R\;@VY?BLM< IBN<>VY?{476o?VY82BLMRJRKIÝl868N<>BNI6 R\46I&Ýx<H?^8BNRK?BN8q;=Ô>6 8247I; $;=Ô>6464³=O6 JK6Ô>V ¾7¾ 6X£6?B
4|-0I7?hÔHV Y<H;=<>6Ô
öß
D,E6 ¾ LN6X<>6=L68B.ÔHR:JRKÔH<H47RBN<>VY?o47I;=RKF7<>6=LÞ468Þ;
F7RL K68 RqÔHR ^?46Ôä- =O6 BNR ¾ 6A468 ¾ O6 ;=< ^;=RBN<>VY? × ;@VY?&S
;@6 ¾ BN<>VY? ÇÜ ?¼6 Ç6=BqRJRK?Bö46 ¾ RK8N86=L R¬Ô- =O6 BNR ¾ 68NI7<>JRK?B6 Ôä-0<HX ¾ ÔHRK?BNRBN<>VY? 7<HÔE68B2?WO6 ;@68M8NRK<>LN646
J.=O6 LM< 76=LQÔûR¬;@VY?7;@VKL
47RK?7;@6£6?BLN6£Ô>68ö8 ¾ O6 ;=< ^;=RBN<HVY?78ö468q;@VY?7;@6 ¾ B6IL
8q6=BQÔ>6o;=RKF^<>6=Lö468ö;MF7RL K68
ò=ãäãâÕ
|ù 0æ è ê AáMóè #
+
#
27
7P# cb
,-,.*.*.
N
/, *,
27
# m U7
'
'
27
&#
$
Ú
4W$O6 7 ?7<H8 RLPÔ>68PIBN<HÔH<H8MRB6ILM8ö47I ÔHV#Y<H;=<>6ÔQE,`R¼4WO6 XRLM;
F6b;@VY?78N<H8B6WR¼
6@Ý&BLMRK<>LN6¬468QJ&I68Õ8N6X<uS
0VKLMX£6ÔûÔ>6¾ 846 ¾ I7<û8WÔûR£8 ¾ O6 ;=<27^;=RBN<>VY?L!UB.26Õ;@6=BB6PXRK?^<,6= LN6öVY?hV7BN<>6?BDI7?762J&I6Q4|- 6?^86XÔ>6Q47I
¾ LNVH 6=Bj^ <>6? ¾ ÔûI788 $?BNFW=O6 BN<HG$I6xG$I6¼Ô>68¬8 ¾ O6 ;=<27^;=RBN<HVY?78N7L
IB68 O6 ;@LM<>B68¬6? !U-;Ô68B6?^8NI7<>B6
LM6ÔHRBN<>JK6X£6?B8N<HX ¾ ÔH6 ¾ VYIL³I7?\8 ¾ O6 ;=<HRKÔû<H8B6q4|-0/Ux
,~462JRKÔû<H46=L³ÔH68³J&I68W/Ux , ¾ RLWLMR ¾7¾ VKLNBWRKI
;=RKF^<>6=Lö468ö;MF7RL&K# 68$U; Ô_0 RKIBö?VKB6=LQGI76oÔ>VKL
82476o;@6=BB6*=O6 BNR ¾ 6Ô>68 ¾ O6 ;=<HRKÔH<û8B6£?6o;@L&=O6 6=L
R ¾ RK8qI7?
XV$46 Ô>6Q4^<>LN6;@B6X£6?B6?h/Ux
, ¾ VYIL;@VYX ¾ RLN6=LDRJK6;ÕÔ>6öX£V$46 ÔH6ö6@Ý$BLMRK<HB$7 Ü ?b6cÇb 6=B$^' <HÔÇ?|- 6@Ý<H8B6
R¾ K8QI7?6I7?^<HGI76XRK?7<,6= LN64|-UO6 ;@LM<>LM6I7?~X£V&46 Ô>6/?{
, 6=B ¾ RLP;@VY?78O6 GI76?BoÔ>6X£V&46 Ô>66@Ý&BLMRK<>B
b =O6 LM6?BA46ö;@6ÔHI^<L&O6 RKÔû<H8O6 ¾ RLAÔä- 6@Ý ¾ 6=LNB$ ,Û6ö8 ¾ O6 ;=<HRKÔH<û8B6qJ.=O6 LM<2^7 6=LMRÔHR;@VY?80 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^RLK# 68$^ ,E68Y# RK<H?7846 ¾ LNV&47I7;@BN<HJ$<>B$O6
476XRK?74WO6 847RK?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
RKI7BVYXRBN<H8NRBN<>VY?@
VF 6=BN8$^ TW6;=<(68BI7?
Ú D,E62476I&Ý&<Q6 X6:68BÔHRÕBLMRK47I7;@BN<HVY?\47628 ¾ O6 ;=<D^7 ;=RBN<>VY?78! JK6=L
8WÔH68³ÔHRK?PY# RK# 68RÕ
4768ÛL&O6 8NI7ÔHBNRBN84^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=JRK?B ¾ 6=L
X£6=BBLN6I7?6 IBN<ûÔH<H8NRBN<>VY?Õ46³ÔHR:X =O6 BNFV&46
!U' BLMRK47I7<HB6 ¾ VYILÕ468 ¾ ÔHRB68S 0 VKLMX680 VKLNB6X£6?Bo;@VY?BLMRK<H?B68£46¬Bh ¾ 6\;=RLNB6)R ¾ I^;@6_:A VKBLN6
BL
RK47I7;@B6ILQ46=JRK<>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 846¼ÔûRl;@VYXXPI7?^RKIBL
O6 !U-2
. 6 ¾ ÔHI^8o<ûÔW476=JRK<>Bi6=g BLM6¼V ¾ BN<HX<û8hO6 6?B6=LMX£684Û- V$;=;=I ¾ RBN<>VY?
XO6 XVY<>LN66=B ¾ 6=LMX6=BBLN6ÔHR\L$O6 RKÔH<H8NRBN<HVY?~6?)! 4|-0R ¾7¾ ÔH<H;=RBN<>VY?78 ¾ LMVYIJ.=O6 68 ¾ VYILQÔH68Y RJRTRL
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£468 O6 ;=<27 ;=RBN<>VY?
! JK6=L
8DÔ>68ÔHRK?PY# RK# 68%R VF 6=BN8A6?¼B6?7RK?B2;@VYX ¾ B6Õ4768¾7¾ LN68BLM<û¾;@BN<>VY?7846QÔHR ¾ ÔHRB6@S 0 VK¾L
X£6Õ;=<2^ ÔH6
k E
"%
"
!
$%&
! ! !
!
!
&%
!
!
"
'
¾ L 68.I7?76<û?BLNV&47I7;@BN<HVY?P6=B.ÔûR ¾ L$O6 86?BNRBN<>VY?46AÔHRqX=O6 BNFV&46 *G$I7<&68B.RKI£;QIL.476A?VY8!BLMRJRKI&Ý
;@6ABLMRJRK<ûÔ^46BNF 68628=-0<H?78M;@LM<>B ¾ VYIL.ÔHR ¾ RLMBN<>6 47RK?78 Ôä- =O6 BNI746D46A476I&ÝoB6;
F7?7<HG$I68.476D8 ¾ O6 ;=< ^;=RBN<HVY?¼ß
ÔHR£X=O6 BNFV&46 6=BDÔHR?VKBNRBN<HVY?{/ {, UÔE8=-0R ¾7¾ I7<H6q8MILDÔHR£;@VYX ¾ Ô
O6 X£6?BNRL
<>Bo
O6 46P;@68D46I&ÝhR ¾7¾ LMV$;
F68
6=BQ;@VY?BLM< ^I6 RhÔä-0I7BN<HÔH<H8NRBN<HVY?{;@VY? VY<H?B6468öÔHRK? YR K68 VKLMX6ÔH8 q6=BQ468ö?VKBNRBN<>VY?78 KLMR ¾ F7<HG$I68 R
V 6=BN8 / x, ETW6=BB6 ¾ RLMBN<>6P68NBq;@VYX ¾ VY8$=O6 64768 ¾ L&O6 8N6?BNRBN<>VY?^8Q4|-0/ {,*6=Bö4|-0I7? =O6 BNRBQ46Ôä-0RLNBq468
BLMRJRKI&Ý£8NILÞÔä-0<û?B$O6 KLMRBN<>VY?£476;@68Þ476I&ÝoX=O6 BNFV&468.476W8 ¾ O6 ;=< ^;=RBN<>VY? Yܳ?78NI7<>B6?VYI78 ¾ L&O6 8N6?BVY?78 ?VKBLN6
;@VY?BLM< ^IBN<HVY? R¼;@6=BB6¬<H?BO6 KLMRBN<>VY?86Ô>VY?~46IÝ ¾ RLMBN<>68Q8BNRBN<HG$I66=BP4 $?^RKX<HG$I6P6? ;=<H?7Gx;MF7R ¾ <HBLN68
G$I7<|8VY?BQß
LN6X< 6=LN6X6?BDÔ- 6@Ý$BLMRK;@BN<HVY?{468A47VY?7?³=O6 68D8BNRBN<ûGI68D46QÔHR8 ¾ O6 ;=< ^;=RBN<>VY?~ß
2<ûR KLMRKXX£68:46Q;=ÔHRK8N868
¼O6 ?³=O6 LMRBN<>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 ;=< ^;=RBN<HVY?~ß
2<ûR KLMRKXX£68:4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78
2<ûR KLMRKXX£68:4|-0RK;@BN<>J&<>BO6
2<ûR KLMRKXX£6Õ476Q8O6 GI6?^;@6
o-0RKIBLN6 ¾ RLNB£?VYI^8Õ6@Ý ¾ VY8VY?78 6? ¾ RLNBN<>6 Ú ÞÔHR `O6 ?W=O6 L
RBN<>VY? RKIBVYXRBN<ûGI6h46b;@V&46 O6 ;@L
<>B£47RK?78I7?
ÔHRK? YR K6 R¼V 6=BN8 R ¾ RLNBN<>LP468 ¾ O6 ;=< ;=RBN<>VY?78 ÞTW6=BB6 ¾ RLMBN<>6 Ú ;@VYXX6?7;@6 ¾ RLoI7? 7LM6 =O6 BNRB46
Ôä-0RLNB\468b47< D=O6 LN6?B68\B6;
F7?7<HG$I68\4³O6 R*X<H8N686
? QIJ$LN6x8MI7<>J&<>6846l?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Ù
4VYXRK<û?6P4VY?BöÔ>6 ¾ LM<H?7;=< ¾ 6Q?VJRB6I7Lö68BöÔHR ¾ ÔHRB6@S VKL
X£6o;=< ^Ô>6ßÇÔHR YRJRTRL
4 (/2?6¶=O6 JRKÔûI7RBN<>VY?46
;@6=BWVYIBN<HÔ^;@VY?^;=ÔHILMRQ;@6=BB6 ¾ RLMBN<>6 ܳ?78NI7<>B6AI^?6DBLNVY<û8N< 6X£6 ¾ RLNBN<>6D;@VY?7;=ÔûILMRÕ;@68³BLMRJRKI&Ý\46DLN6;
F6=LM;
F6
¾ RLÔHR ¾ L&O6 86?BNRBN<>VY?¼468WVYIBN<ûÔH8³4WO6 R£4W=O6 JK6Ô>V ¾7¾ O6 8A6=BÔûRPX<û86:6? QI7JLN6q47RK?78WI7?b;=RK84|-U=O6 BNI746 7ܳ? ^?
?VYI78;@VY?7;=ÔûILNVY?78o8NIL£Ô>68 ¾ VY<H?BN8 VKLNBN8 ÞÔ>68 ¾ VY<H?BN8 RK< ^Ô>68 Ô>68RKXO6 ÔH<HVKLMRBN<>VY?78o6=B ¾ 6=LM8 ¾ 6;@BN<>JK68o46
;@6=BB6 =O6 BNI^46
0 $'
87
? 9 46 46129 TW6~4V&;=I7X£6?B¼46BNF6 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;@6847<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&Ý 0VY?BN8D4^<H8BN<H?7;@BN<HJK68$
,ERK?8Y# RK# 68
TWVY?7;@6 ¾ BN8
- F6=BN8
! × Z?.?
EXPRESSION
expression
/Ux
, ×- T,
expression
expression
RJR ×- 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 ;=RBN<>VY?^82I7BN<HÔH<H8$=O6 68q;@VYXX£66@Ý&6X ¾ Ô>647RK?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# LMRKXXRK<HLN6Q4³O6 ;@LM<>B68247RK?78Ô>6öBNR Ô>6RKI Ú Ü Ô O6 X£6?BN8
9.O6 XRK?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¾ RLMR g>] BRKI{¾ X£VY<û?78I7?690 VY<H8
k
,Û6Q8N<DY# ?6 b8M<2Y# ?7<277 6qG$I6ÕÔä-UO6 Ô O6 X£6?BX
k R ¾7¾ RLMR gH] BA46 =O6 LNV R£ I^?¼?VYX:7 LN69^7 ?7<Ç460 VY<H8
k
,E6Q8N<2Y# ?6 8M<2Y# ?7<277 6öG$I6QÔä-UO6 Ô O6 X£6?BX
k R ¾7¾ RL
R g>] BA?M0 VY<H8
k l!
,Û6Q;=RLMRK;@B$6= LN6 78N<2Y# ?^<277 6öGI76Q8VY<>BAÔä- 6@Ý ¾ LN68N8M<>VY?Mk
8VY<>BAÔä- 6@Ý ¾ LN68M8N<>VY?M! R ¾7¾ RL
RK<H8N86?BAXRK<H8 ¾ RK8DÔ>68A46I&Ýb6?¼XM6g X£6PB6X ¾ 8
Ú Ü³Ô
O6 X£6?BN8:469K# LMRKXXRK<>LN6Q468AÔûRK?8Y# RK# 68DIBN<ûÔH<H8$O6 847RK?78D;@6Õ4V&;=I7X£6?B
? D 9 1 3 **96 46 1 7 4 ! m!U^ CRBN<2Ç VYI6=B$'P8 T?8ÞZ VY<H8N<H?6=B$' ! CEV$VYÔH8RK?74 ! Ú /?x , ß7R ¾ ÔHRB 0 VKLMX RK?74hRBVVYÔÇBV ¾ LNVJ&<H46öR
/?x
,TÔHRK8N8 q. <HRK# LMRKX 8N<H?^;@6ÕRj! 8 ¾ 6;=<D^7 ;=RBN<>VY? FPN; TA979Ü-Pk - ÚØKØ ' @Ö BNFLU; ?B6=LM?7RBN<>VY?^RKÔTWVY?80 6@S
LM6?7;@6VY?9$V0 B RLN6
9G& 8B6X8qÜ ?8Y# <û?6=6=LM<H?8¬
# RK?74xCDF6<>L?k ¾7¾ ÔH<H;=RBN<>VY?78E'PÞZ VYÔQ Ú Û' 9&68N8N<>VY? $ S = '
17VKLMXRKÔ_{
6=BNFV&478$7' 1L
RK?7;@6'S![ RLM<H8E' Ö S " 2. 6;@6XÇ 6=L ÚØKØ Ú mk:@2e RKXXRK4'<!UÛ CRBN<2Ç VYI6=B$'<8 SUT?ÞZ VY<H8N<H?6=B$' 2. 6ÔHRh8 ¾ O6 ;=<2^7 ;=RBN<>VY?)
! JK6=LM8ÕÔ>68ö47<HRK# LMRKXX£68
4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78!/Ux
, F' # 6 X£6 l TA9Ü-kX
; - ÚØKØYÚ Qx RY# FLN6$^ <HRK?£TWVY?80 6=LN6?7;@6³V0 9$V0 B RLN6Wܳ?&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 $ XRK< ÚØKØYÚ = XP TUPÞZ VY<H8M<H?6=B$'B!U CRBN<2Ç VYI6=B$'fkB2e RKXXRK4@' W! C`V$VYÔH8Qßf:k ?h6@Ý ¾ 6=LM<HX£6?BNRKÔ ¾ ÔûRB 0 VKLMX0 VKL:BNF6
0 VKLMXRKÔ! X£6=BNFV&4 F'8.
[ LM<H?^;=< Ô>68.RK?^4 [ LMRK;@BN<H;@6qV0<[ LNVK# LMRKXX<û?8P# <H? Y RJR ,[
[-[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 RKXXRK4' !U C`RBN<2Ç VYI6=B$'8 SUTU ÞZ VY<H8N<H?76=B$' \ I~\ 6< ¾ <H?P#8' 1LNVYXRU! 9 ¾ 6;=<2^7 ;=RBN<>VY?ÕBV2/?x ,
Ö mk::
9&BNRB6;MF7RLNB 2
. <ûRK# LMRKX8 F' Ö BNF ; ?B6=LM?7RBN<>VY?7RKÔATWVY?P0 6=LN6?^;@6\VY?17VKLMXRKÔ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ÛCRBN<2ÇVYI6=B$'@k:e2RKXXRK4@'<8 SUTUZÞVY<H8M<H?6=B$' 1LNVYX RK?~R8BLMRK;@B!
8 ¾ 6;=<27^;=RBN<>VY?BV¼/?x,
;=ÔûRK8N8.47<HRK# L
RKX8 F Ú ?74%; Ü Ü³ÜWU; ?B6=LM?7RBN<HVY?7RKÔ^9G& X ¾ VY8N<HI7X5VY?9&<2#Y?7RKÔF[ LNV$;@68M8N<H?8#öRK?74%;?80VKLMXRS
BN<HVY?\C`6;MF^?VYÔ>V# ; 9798[ ; Cö- ÚØKØYÚ ' ¾ + S =Ø 'P; 98!KA Ø S Ù#Ú#$ $" S Ø S +G'<{RLNL
RCK6;MF'BxRLNV&;' $ S Ú&
. 6;@6X:Ç 6=L ÚØKØYÚ 2
" m!U!i 9 CR6BN;=<2Ç<27^VY;=IR6=BNB$<>VY'G?^k:8 & F3A'36+G$BNF I6=;UB$?'PB86=LMTU?7GRBNÞZ <HVYVY?7<H8NRK<H?7Ô6=TB$'GVYk:?80G6=LM2e 6RK?7X;@6XVYRK?4@' 1VK LMRXJRKRÔTܳRLM?84{#Y<HTW?6=V&6=4LM6?<û?8qT #L6{?6=6=LMBNRFBNV$<>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'F0 6=PLM 6TU?7`;@ÞZ 6VYVY<û?8N<H?9$6=VB$0 ' B W&2T RLM66 ?6=LMRBN9F<H$ ?P8o# B68XBNR8ÕB6Ü ;
F7?PRY# LN<H?BN856=6=0 LMLNVY<H?PX¼# ! RK?78 4~¾ 6BN;=F<267 <>;=LoRR 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![ ¾ RLM<û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 ;=< ^;=RBN<HVY?78.LM< KVYILN6I7868 ¾ L$O6 ;=<H868.6=B³;@VYXS
Ô¾ 6=B68 6=BA476Q4³=O6 JK6Ô>V ¾7¾ 6=LA47IbÔ>V Y<H;=<>6Ô R ¾ RLMBN<>L46Q;@6ÔHÔ>68S;=< &,E6ILAIBN<HÔû<H8NRBN<>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 4VYXRK<û?68 ;@LM<HBN<HGI768 B6ÔH8³G$I62Ô>68³R ¾^¾ ÔH<H;=RS
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ö46X=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 XRK?BN<HG$I6
LN6IJK68
O6 ;=RK?7<H8NX68: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?BI7?6b8VYÔHIBN<>VY? ¾ VYIL£;@VY?7;@6=JKVY<>L4768oÔHV Y<H;=<>6ÔH8 ^R ^ÔH68 ,E6IL
8 &?BNRÝ&6~6=B{Ô>6I7Lb8$O6 XRK?BN<HG$I6 8VY?B¼;=ÔHRK<>LM68 ¾ L$O6 ;=<H868h6=B¼RK;=;@VYX ¾ R Y?³=O6 6846L 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;@VYXX£6 ¾ RLA6@Ý&6X ¾ ÔH6£ß
D,E68`ÔûRK? YR K68`476 8 ¾ O6 ;=< ^;=RBN<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<>BRKÔ O6 7LM<ûGI6 ,`R ¾ L$O6 86?BNRBN<>VY?¼4|-0I7?\B ¾ 6öR ^8BLMRK<HBRKÔ `O6 ^LM<HG$I6q68B
;@VY?^8BN<>BNIW=O6 6¬4Û-0I7?6 ¾ RLNBN<>64WO6 ;=ÔûRLMRBN<>VY? 8M< Y?7RBNILN64768qV ¾ =O6 LMRBN<>VY?78P47I~B ¾ 6 :6=BÕ4|-0I7?76 ¾ RLNBN<>6
RÝ<>VYXRBN<ûGI6 O6 G$I7RBN<>VY?^8¬;@VY?74^<>BN<>VY?7?6ÔûÔ>68VYI ¾ L&O6 4^<H;=RBN847I ¾ LN6X<>6=LVKLM4LN6¼8NI7LÔ>68B6=L
X£68
;@VY?^8BLMI7<>BN8 R ¾ RLNBN<>LD476Q;@68AV ¾ =O6 LMRBN<>VY?^8 ÇT<HBVY?78 ¾ RLA6@Ý&6X ¾ Ô>6£ß
, 23T Ö ÖKÖ T q9, Ù Ú D,E68.ÔHRK? YR K68³46A8 ¾ O6 ;=< ;=RBN<>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<û;=RBN8¼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 BNRBD47I\8 $8NB 6X6 Ro;@VY?^8BLMI7<>LM6 &TF7RKG$I62V ¾ =O6 LMRBN<>VY?b68B8 ¾ O6 ;=< W=O6 6
<û?74³O6 ¾ 6?747RKXX£6?BA6?l4³O6 ;@LM<>JRK?Bq8VY?{6 (6=Bq8NIL2Ôä- =O6 BNRBq4^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+0VKLMX6ÔHÔ>68`68BÔûR:;@L&O6 RBN<>VY?46WÔHV#Y<H;=<>6ÔH88 Ig LM8`6=B+7^R^Ô>68 ¾ RL C " _+'_ Z %
Z " aa " ܳÔHÔ>6P<û?B6=LNJ&<>6?B:R ¾ LE6 8öÔûR¬;@L&O6 RBN<>VY?~4^IxX£V&46 Ô>6XRBNFWO6 XRBN<HG$I6£4|-0I7?l8 &8Bc6 X£66=BöÔä-0IBN<HÔH<>S
8NRBN<>VY?4|-0I7? ÔHRK?8Y# R#K6 ¾ VYILP8 ¾ O6 ;=<D776=LoÔH68 ¾ LMV ¾ LM< =O6 BO6 847I¶8 &8B$6 X£6.ܳÔHÔ>668B:^RK8$=O6 6h8NILoI7?6 ¾ LN6IJK6
XRBNFWO6 XRBN<û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 X66=B
Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8oRKI&ÝGI6ÔûÔ>68Q<HÔ.47VY<>BQV
O6 <>LE` Ü ?78NI^<>B6VY?¶4WO6 XVY?BLN6bG$I6Ô>68 ¾ LNV ¾ LM< =O6 B$O6 8 ¾ 6IJK6?Bj6=g BLN6
V7 B6?$I68R ¾ RLNBN<>LA47Ih8$ 8B$6 X£6MR
Ôä-0RK<H476q4Û-0I7? ¾ LNVYIJK6I7LA;@VYXX£6ß
[-öZ 9 #*$ e-,
TV$G @Ö ,Û68 ¾ LNVYIJK6IL
8 ¾ 6IJK6?BN6=g BLN6<û?7;=ÔHI78247RK?78öI7?VYI7BN<HÔÞ;@VYXX£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~ ÔHRX=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 = `[ VYI7LL$O6 8NI7X£6=L6ÔHÔ>6hIBN<HÔH<û86\ÔH68 ¾ L&O6 47<H;=RBN847I ¾ LN6X<H6=L£VKLM4LN6hRJK6;xÔHRBNFW=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 ¾^¾ 6X6?B2468
R ¾7¾ Ôû<H;=RBN<>VY?78 7P# Ú ¾ RK8N86 ¾ RLÔûRQL&O6 47RK;@BN<>VY?h4^I¬;=RKF7<H6=LW468;
F7RLK# 686=B8NR8 ¾ O6 ;=<2^7 ;=RBN<>VY?bR^ 8NBLMRK<>B6
" Ø K[ RL\ÔHR 8NI^<>B6{Ô>68;=RL
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 ;=<27 ;=RBN<>VY? R 8BLMRK<>B6x68B ¾ LMVYIJ.=O6 6 ¾ I7<H8£L
R*
)
?³=O6 6{BVYIB\6? ¾ L$O6 86=LNJRK?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?BNRBN<>VY?78\47I ¾ LMVH 6=B ! 8VY?B\BLMRK47I7<>B68JK6=LM8bI7?
ÔHRK?8Y# RK# 6P;@VYX ¾ <HÔHR Ô>6q6=BA6@Ý O6 ;=IBNR Ô>6
; ÔÞ6@Ý<H8B646I&Ý~R ¾7¾ LMV$;
F68QRKIBVYILo46ÔHRhX=O6 BNFV&46j!UE , -0R ¾7¾ LNV&;MF76=O6 J.O6 ?6X£6?BN<>6ÔHÔH6`' 47<>B6RKI^8N8N<
8 & 8Bc6 X£6 ' Ö ' IBN<ûÔH<H86Ô>68o=O6 J.O6 ?6X£6?BN8 ¾ VYI7L.X£V$4^<277 6=L.Ôä-U=O6 BNRB47I8 & 8Bc6 X£6>; ÔH8 ¾ 6IJK6?B 8=- 6@Ý O6 ;=IB6=L8N<
Ô>6IL+Y# RLM476 ;@VY?^47<>BN<>VY? E68BÞJ$LMRK<>6K , -0R ¾7¾ LNV&;MF6Ô>VY# <û;=<>6ÔHÔ>6W47<>B6RKI78N8N<&;=ÔHRK8M8N<HG$I6WI7BN<HÔH<H86W468!V ¾ =O6 LMRBN<>VY?^8
O6 GI^<>JRKÔH6?BA468¬=O6 J.O6 ?6X£6?BN8D46öÔHR:0 VKL
X£6x=O6 J.O6 ?6X£6?BN<>6ÔHÔH6 WGI7<(VY?B468 ¾ L&@O6 S;@VY?747<HBN<>VY?78 6?hÔH<>6I¬6=B
7 =O6 68
¾ ÔHRK;@6468?Y# RLM476824768{=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
RJRK?B¼Ôä-0R ¾7¾ 6Ô ¾ RLb?VYX´468¬V ¾ =O6 LMRBN<>VY?78Eq
. RK?78h;@64V&;=I7X£6?B\?7VYI78¬?7VYI78b;@VY?7;@6?BLM6=LNVY?78b8NILbÔHR
L¾ &O6 86?BNRBN<>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;=RBN<>VY?{XRK<H8qI7?{X£V&46 Ô>6£XRBNFWO6 XRBN<ûGI6E TW6X£V&46 Ô>6
68B4WO6 ;@VYX ¾ VY8$öO6 6?bX£V&47I7Ô>68 XRK;MF^<H?68R^ 8BLMRK<HB68 ¾ VYIL;=Ô>VY<H8NVY?7?6=LÔ>68;@VY?BLMRK<û?B684W$O6 ^7 ?^<>6847RK?78
Ô>6h;=RKF7<>6=L4768£;MF7RLK# 68E :
. 6x;@6=BB6{XRK?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:Ô>6ILL&O6 8NVYÔHIBN<>VY?7 , - O6 Ô
O6 X£6?Bq68N8N6?BN<>6ÔE46QÔHRX=O6 BNFV&46! 68NBDÔHR
XRK;
F7<H?6R^ 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
XRK;
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 ¾ RLNBN<>6D8BNRBN<ûGI6:GI7<^;@VYX ¾ LN6?74Ô>68 4VY?^?³=O6 68 6?78N6X^ ÔH68$Y' LN6ÔHRBN<HVY?78$'0 VY?7;@BN<>VY?78$' JRLM<ûR^ Ô>68
6=BN; 6=BDÔä-0<H?JRLM<HRK?BG$I7<|4W$O6 ^7 ?^<>BAÔ>68A;@VY?BLMRK<H?B68DG$I6QÔ>6Q8 & 8B$6 X£6o4VY<>BAR^ 8VYÔûI7X£6?BLN68 ¾ 6;@B6=LE
/2?6 ¾ RLNBN<>6\48& ?7RKX<HG$I6 ¾ 6=LMX£6=B46\X£V$4^<277 6=LPÔH68ÕJRLM<HR^ ÔH68K# LHRKg ;@6IRl
Ôä-0<H?7<HBN<HRKÔH<H8NRBN<HVY?6=BoRKI&Ý
V ¾ =O6 L
RBN<>VY?78$!
Ü ? 6c(b 6=BÔä-U=O6 BNRB47I 8 $ 8NBc6 X6\68NBP4W$O6 ^7 ?7< ¾ RLoÔ>68ÕJRKÔ>6IL
8Õ46\;@68PJRLM<HR Ô>68Q6=B;@6
8NVY?BDÔH68V ¾ =O6 LMRBN<>VY?78:GI^<|Ô>690 VY?BAJ&<>J$LN6q6=Bb=O6 JKVYÔHI6=L247RK?788VY?{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 ¾^¾ 6X6?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
! ;@VYXX£6?^;@6 ¾ RLI7?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 0VY?^;@BN<>VY?7?6X£6?B47I
8 &8Bc6 X£67,Û68³LMR*)?76X£6?BN88NI^;=;@68N8N<20 8 ¾ 6=LMX6=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?BNRBN<>VY? R Ôä-0RK<H46h47I*ÔHRK?PY# RK# 6i! Ø ³ ,Û6
ÔHRK?8#YR#K6i! Ø 68BI^?8NVYI78S6?786X:^ Ô>6b47IÔHRK?PY# RK# 6i!X+; Ô ¾ VY8N8c6 46hI7?6h8 & ?BNRÝ&6h6=BI7?6b8$O6 XRK?BN<HG$I6
BLE6 8 ¾ LNV&;MF6Õ4768DÔHRK?8Y# RK# 68246 ¾ LNVK# LMRKXXRBN<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<û8NRBN<>VY?IBN<HÔH<H8$
O6 4^RK?78QÔ>64W=O6 JK6ÔHV 6X£6?B 6=L
X£6=BÕ468N;=<û?746=L
ÔHR¼;@VYX ¾ Ô>6@Ý<>B¬
O6 468 ¾ LNV^ ÔQ6 X£68$aq
. ILMRK?BÕÔ>6LMR*¬) ?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 LMRBN<>VY?^8:46QÔûR£XRK;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£68VY?B:4W$O6 ^7 ?^<>68 RL2Ô>68ALE6$ Y# ÔH682476VK# 68BN<>VY?l47I
;=RKF7<>6=Lo468Õ;
F7RLK# 68$!
Ü ÔûÔ>68Q8VY?BP4WO6 ;@LM<HB68P6? ! 47RK?78PÔä-0<H?JRL
<HRK?BQ8MILÕ¾ Ôä-U=O6 BNRB£47I 8 & 8B$6 X£6b8VYI78oI7?6
0VKLMX£6:I^?7<HG$I6D46 ¾ LNV ¾ LM< =O6 B$öO6 8BNRBN<HG$I6Pß6ÔHÔH68³4W$O6 ^7 ?^<H8N86?B³468W;@VY?BLMRK<H?B68GI7<46=J$LNVY?BX6=g BLN6qJ.=O6 LM<DW7 =O6 68
47RK?78BVYI^8Ô>68=O6 BNRBN8D47Ih8 & 8B$6 X£6^ ܳÔHÔ>68WLN68BLM6<2Y# ?6?BÔ- 68 ¾ RK;@6Q46qJRKÔ>6ILM8G$I6 ¾ 6I7JK6?B ¾ LM6?74LN62Ô>68
JRLM<HR^ Ô>68E7 T68 ¾ LNV ¾ LM< =O6 B$O6 8 ¾ 6I7JK6?B8=-0R ¾7¾ ÔH<HG$I6=L8NILI7?6qVYI ¾ ÔûI78N<>6IL
8.JRLM<HR^ Ô>68E - ?hÔ>68R ¾7¾ 6ÔHÔ>6=LMR
¾ L&O6 47<û;=RBW46:Bh ¾ RK# 6öÔ>VKLM8NG$I|- 6ÔHÔH68.8VY?B³6? 0 VY?^;@BN<>VY?¬4Û-0I7?6D86I^Ô>6DJRLM<HR^ ÔH6 ,Û68³V ¾ =O6 LMRBN<>VY?78X£V&47<2^7 6?B
Ô>682JRKÔ>6ILM8q468qJRLM<HR^ ÔH68:6=Bö4VY?^;oÔ- =O6 BNRBP47I8 $ 8NBc6 X6E Ü ?;@VY?78$O6 G$I6?7;@6ÔûR ¾ LN6IJK6JRb;@VY?78M<H8B6=L R J.=O6 L
<277 6=LÔHRP;@VY?P0 VKLMX<>B2O6 462Ôä- =O6 BNRBA47I\8 $ 8NBc6 X6qRJRK?B6=BWR ¾ L$6 8Ôä- V ¾ =O6 LMRBN<>VY?& ,Û6q4W=O6 JK6Ô>V ¾7¾ 6X£6?B4|-0R ¾ S
Ú
=Ö
L
?! $
$
¾ HÔ <û;=RBN<>VY? RÕÔ-0RK<H46D46:ÔHRQX=O6 BNFV&46 4³O6 ^IB6 ¾ RL³I7?76DXRK;MF^<H?6DR ^8NBLMRK<>B6:;@VYX ¾ LN6?7RK?B³I7?¬<H?JRLM<ûRK?B
;@VYXX£6{BVYI78Ô>68RKI7BLN68;@VYX ¾ VY8NRK?BN8 ,E68 ¾ LN6X< 6=LN68£V ^ÔH< YRBN<>VY?78£46 ¾ LM6IJK68 R~LN6X ¾ ÔH<>L£8VY?B R
;@6Õ?7<HJK6RKI
o-0RKIBLN6 ¾ RLMBDÔ>68A47< D=O6 LN6?BN8D<H?JRLM<HRK?BN8468ALMR ¬?6X£6?BN86=BD<HX ¾ Ô
O6 X£6?BNRBN<HVY?78
Ú
R ¾7¾ VKLNB6?BRKI78N8N<:=O6 JK6?BNI6ÔHÔ>6X£6?BDÔ>6I7LM8 ¾ LNV ¾ LN68WV ^Ôû< YRBN<>VY?7846 ¾ LM6IJK68 Ü ? ?\ÔH62L
R ?6X£6?B468
X£V&47I7Ô>68£R ¾^¾ VKLMB6=LMR Ô>68V ^ÔH< YRBN<>VY?^846 ¾ LM6IJK68LN6ÔûRBN<>JK68 R ÔûR ¾ L&O6 86=LNJRBN<>VY? 46{Ôä-0<H?JRLM<HRK?B468
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 X6?B68N8N6?BN<>6ÔÇ462ÔHRÕX=O6 BNF7V$469! 68BWÔûRÕXRK;
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?6QXRK;MF7<H?76QR^8BLMRK<>B6
D,`R ;=ÔHRKI78N6 MACHINE 4³$O6 7^?7<>BÔH6¼?VYXµ47I ;@VYX ¾ VY8MRK?B6=B\Ô>68 ¾ RL
RKX 6= BLN68=O6 JK6?BNI6ÔH8$TW68
¾ RLMRKX 6= BLN68 ¾ 6I7JK6?BV6=g BLN6P8N;=RKÔHRK<>LN68AVYI¼6?786X:^ÔH<û8B68$
8 O6 ;=<2^7 62Ô>62Bh ¾ R#K6ö468 ¾ RLMRKXM6= BLN684WO6 ;@L
<>BN847RK?78WÔHRÕ;=ÔHRKI^86
Ú D,`RP;=ÔûRKI786
CONSTRAINTS ¾
MA
CHINE
= D,`R~;=ÔHRKI786 SETS 4³O6 ;=ÔHRLN6¼Ô>686?^86X Ô>68IBN<HÔH<H8$O6 847RK?^8oÔH6b;@VYX ¾ VY8MRK?B$1; ÔH8 ¾ 6IJK6?BM6=g BLN6¼476
476I&Ýl8VKLMB68$Û ,Û6 ¾ LN6X<>6=L:68NBQ46Bh ¾ 6O6 ?$I7X=O6 L&O6 ¾ RLö6@Ý&6X ¾ ÔH6
VYI
BOOLEAN = false,true R 8BLMRK<>B ¾ RLD6@Ý$6X ¾ Ô>6P9f
,`R;=ÔHRKI78N6 CONSTANTS 4WO6 ;=ÔHRLM6PÔ>68;@VY?78NBNRK?B68247I¼;@VYX ¾ VY8NRK?B$
Ö D
+GD VY,`IxR¼4;=6ÔHRK8AI7;@8NVY6 ?7PROPERTIES
¾ 6=LMX£6=BQ464W$O6 ^7 ?^<>LÕ468Q;@VY?BLMRK<H?B68Õ8MILÕ468ö6?^86X Ô>68QR^ 8BLMRK<HBN8
8NBNRK?B6824³$O6 ^7 ?7<>684^RK?78AÔHR£;=ÔHRKI^86
CONSTANTS
4³O6 ;=ÔHRLN6P4768DRKÔH<HRK8AB6@Ý$BNI6Ôû8$W
' =O6 JK6?BNI76ÔHÔ>6X£6?B ¾ RL
RKX =O6 BL$O6 8$|' GI7<|8N6@S
" D LM,`VYR?B³;=ÔHLNRK6I7X 8N6 ÔHDEFINITIONS
[ RL 6@Ý&6X ¾ Ô>6 Affect(x,v) ==
¾ RK;O6 8³RKI4W$O6 ^ IB³46DÔä-0RK?7RKÔD$ 86AÔH6@Ý&<H;=RKÔH6 ¾ RL Ô>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 ;=ÔHRLM6ÕÔHR£ÔH<H8NB6Q468JRLM<HR^ Ô>684^Ih;@VYX ¾ VY8NRK?B$
4W$O6 ^7 ?7<HB ¾ RLq468 ¾ L$O6 47<H;=RBN8qÔ>68:;@VY?BLMRK<û?B68qLN6ÔûRBN<>JK68:RKIݼJRLM<ûR^ Ô>68
$ D h,`R¬;@VY;=X ÔûRKI7LM8<H6 8INVARIANT
>
Ô
ö
6
d
B
R
#
K
6
¾
¾
,`RP;=ÔûRKI786 INITIALISATION 77 Ý$62ÔHRQJRKÔ>6ILW<H?7<>BN<HRKÔH6A462;
F7RKG$I6:JRLM<HR Ô>6D47I¬;@VYX ¾ VY8NRK?B ¾ RL
Ù 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 BNRB¬47I
=Ø D,`R~;=ÔHRKI786
8 $8B 6X£6 (,ÛOPERATIONS
68DV ¾ =O6 LMRBN<>VY?78 ¾ 6I7JK6?B ¾ LM6?74LN6ö468 ¾ RLMRKX 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£XRK;MF7<H?76Q8VY?B:4³O6 ;@LM<>B68D4^RK?78AÔ>6öBNR ^ÔH6RKI¼8NI7<>JRK?B C`R Ú
$ E$ #
Ú
2b
=
CONSTRAINTS
PROPERTIES
INVARIANT
- [³Ü 3XkÞC5; - Aq9
INITIALISATION
6=B
E
b
TÔHRKI^868
TWVY?78BN<>BNI^RK?BN8
[RL
RKX 6= BLN68
Ü ?^86XÔ>68
TWVY?78BNRK?B68
. 6$7 ?7<>BN<>VY?78
:
Z RLM<HR Ô>68
.
- ¾ =O6 LMRBN<HVY?78
D
N
Z2<û8N<2^<HÔû<>B%O6 R Ôä-0<û?B$=O6 LM<>6I7LA4|-0I7?6QXRK;
F7<H?6QR8BLMRK<>B6Q46P868
¾ NL V ¾ LN686?BN<HBO6 8
9 96 $ ! ! !
,E6ÔHRK?8#YRK# 6 ! IBN<HÔH<H8N6oÔHR¼BNF³=O6 VKLM<>6468Õ6?786X:^Ô>68$'ÛÔûRhÔ>V#Y<HG$I6468 ¾ L$O6 47<H;=RBN8Õ4^I ¾ LN6X<>6=LöVKL
4LN6
6=BÔ>68x8MI8^8BN<>BNI7BN<>VY?78M# O6 ?W=O6 LMRKÔH<û8=O6 68$Õ
,Û68l8NI88BN<>BNIBN<>VY?^8¼8VY?BlIBN<ûÔH<H8$=O6 68 ¾ RLlÔ-0<H?7<>BN<HRKÔû<H8NRBN<>VY?©6=BÔ>68
V ¾ =O6 LMRBN<>VY?^8 ¾ VYIL`X£V$4^<277 6=LEÔ>68EJRKÔH6ILM8E4768ÛJRLM<HR^ Ô>68E47RK?78Ô>6 ^ IB`46-0 RK<>LN6=O6 JKVYÔHI76=L!Ô- =O6 BNRB!47IP8 $8NBc6 X6
,ERÕ?VKBN<>VY?£46D8MI8^ 8BN<>BNI7BN<>VY?o68B R ¾7¾ RLM6?B$=O6 6:RKIÝRHÇb 6;@BNRBN<>VY?78W468.ÔHRK?PY# R#K68 46 ¾ LMV#KLMRKXXRBN<>VY?BLMRS
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 VKLMXRB6IL
8Û46 ¾ L&O6 4^<H;=RBN8
Ö + ¾ RLLMR ¾7¾ VKLNBR I7?©=O6 BNRB (' RJRK?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<û?66=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;=RBN<>VY?h468JRKÔ>6ILM84768JRL
<HR^Ô>68qß
Ýb6=B h
8VY?BD468JRLM<HR Ô>68
9hI7?b6?786X:^Ô>6
[a' 6=BD3 468 ¾ L$O6 47<H;=RBN8$
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 XRK?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 68RJK6; Ô>6IL
q
8$O6 XRK?BN<HG$I6`!
[ RL 6@Ý&6X ¾ ÔH6AÔHRQ8$O6 XRK?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 ¾ RL\Ý(-G$I7<DR ¾7¾ RLNBN<>6?BWR
Ôä- 6?786X:^ Ô>6~9f³ ,`R*8NI8^ 8BN<HBNIBN<>VY? XoI7Ô>BN< ¾ Ô>6 Ý' ß
Ü '01 ö68BÕI7? ;=RK8 ¾ RLNBN<H;=I^ÔH<>6=Lö;=RLÕ6ÔHÔH668BÕ;@VYX ¾ VY8$=O6 6WR ¾ RLNBN<>LP46ÔHRh8NIP^8BN<>BNIBN<HVY?l8M<HX ¾ Ô>66=Bo46ÔHR
;@VYX ¾ VY8N<>BN<HVY? ¾ RLMRKÔHÔQ6 Ô>6 EÇ TW6=BB6Õ8NI8 8BN<>BNIBN<>VY? ¾ 6IB8=- 6@Ý ¾ LM<ûX£6=LA8VYI78AÔH68A46I&Ý 0 VKL
X£68A8NI7<HJRK?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 LMX6=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 XRK?BN<HG$I6
9.O6 GI6?^;@6X£6?B
3 3
.L&O6 ;@VY?747<HBN<>VY?7?WO6
3 3
qRLM4WO6
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&I88BN<>BNIBN<>VY?^8³46P;@VYX ¾ VY8N<>BN<>VY?b6=BDÔH6ILA8O6 XRK?BN<HGI76
9&I8 8BN<>BNIBN<>VY?
9.O6 XRK?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 VKBNRBN<>VY? =O6 B6?747I6P468A8NI8 8BN<>BNIBN<>VY?^8W4^IhÔHRK?8Y# RK# 6!
M
Z.RLM<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.;@VYXX6 ^RK86A46A8N68.X£V&46 Ô>68 XRBNFWO6 XRBN<HGI768$
,ER£X=O6 BNF7V$46V! ?|- 68NB ¾ RK8I7?bÔHRK?8#YR#K6Õ476 ¾ LNV#KLMRKXXRBN<HVY?bBLMRK47<>BN<>VY?^?6ÔÇ;@VYXX£6V[kq9^Tk:,-'^TU'6=BN;'
;=RL³ÔH68ÞJRL
<HR^ Ô>68Þ?6A8NVY?B ¾ RK8ÞBh ¾ =O6 68?RÕ
Ô>6IL.4WO6 ;=ÔHRLMRBN<HVY? Ü ?6c(b 6=B$' 6ÔHÔ>68Þ8VY?B.Bh ¾ =O6 68W47RK?78.ÔHRö;=ÔûRKI786
RD
Ôä-0RK<H476 46 ¾ L$O6 47<H;=RBN847I ¾ LM6X<>6=LÛVKLM47LN6 6=B ¾ RL;@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 ,`R86I7Ô>6q8N<HX<ûÔH<>BNI746A;@VY?^;@6=LM?6QÔ>68WJRLM<HR^ Ô>68W8N;=RKÔHRK<HLN68
G$I7<:;@VKLMLN68 ¾ VY?746?B\RKIÝ JRL
<HR^ Ô>68b47I Bh ¾ 6l6?BN<>6=LE
' ;=RLMRK;@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$I68IBN<HÔû<H8O6 8 ¾ RLDÔHR£X=O6 BNF7V$46:! 8VY?B:Ô>68A8NI7<HJRK?BN8qß
68BDÔ>6öBd ¾ 69Ç VVYÔ =O6 6?x4³$O6 ^7 ?7< ¾ RL
6=B
BOOL
TRUE FALSE
6=B
68NBÔä- 6?7G$86I7X:<:^;@VKÔ>6hLMLN4668 8VY6?7?4BN6<>6=?LMB 8R LN6ÔäÔHR- 6BN?7<20 88£6X:4³$^ O6 7^Ô>6l?7< 4¾ 68¬RL 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£XRK;
F7<H?6Q;=<2 Ô>6qLN6 ¾ L&O6 86?B6?B2Ôä- 6?786X:^ Ô>6?; :
A C 47686?BN<H6=LM8AIBN<HÔû<H8NR^ Ô>6:6?
! Ø
68BDÔ>6öBd ¾ 6Q468A;
F7R gH] ?68D46Õ;=RLMRK;@B$6= LN68$
STRING
# Û;@VKLMLN68 ¾ VY?74hRKI&ÝbBh ¾ 68D4686?^86XÔ>68¬O6 ?I^X =O6 L$O6 824W$O6 7?7<H847RK?78DÔHR£;=ÔHRKI786 SETS [ VYILD4WO6 ;@LM<HLN6ÕÔ>68Bd ¾ 68VY?{IBN<HÔH<H8N62Ô>68D?VKBNRBN<>VY?78:8NI7<>JRK?B68Qß
47686?74W86O6 8NX:<D#Y^ ?Ô>6ö68AÔä- 4Û6?7- O6 8Ô 6O6 X:X^6?Ô>6qBN824648 6 ¾ RLN8NBNRK<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;=XR<>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¬RB466I8 L
RK<>
N
L
6
Ç
8
¾
¾
¾ ¾
¾
68NBDRK8N8V&;=<HRBN<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ÔHRBN<>VY?
1VY?7;@BN<>VY?
W< 6;@BN<>VY?
? 6;@BN<>VY?
9&IL 6;@BN<>VY?
2VYXRK<H?6
TV$4VYXRK<H?6
.LNV&47I7<>B47<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# 6P4686@Ý ¾ LN68N8N<HVY?785!
.o-0RKIBLN6 ¾ RLNBÞ<HÔ$6@Ý&<H8NB6476I&ÝPV ¾ =O6 LMRB6I7LM8.46Bh ¾ RK# 6D4^RK?78ÞÔHRqX =O6 BNFV&46 ! G$I7<&8VY?B 1'9' 6=Bß 9&<`I7?6ÕJRLM<HRÔ>6
68NB:Bd ¾ =O6 646oÔHRXRK?7<,6= LN68NI7<>JRK?B6\ß
RJK6; I7?6P6@Ý ¾ LM68N8N<>VY?x46PBd ¾ 6
C qRKÔHVKLM8QÔ>6£Bd var
6¾ 46
68BPC9 - ? ¾ RLMÔH646£JRL
<HR^ Ô>6£var
8N;=RKÔHRK<HELN6Ô>VKLM8NG$EI6£Ô>6£Bd ¾ 646ÔHRbJRLM<HRÔ>6
?|- 68B ¾ RK8;@VY?78BN<>BNIWÕO6 4Û-0I7var
? ¾ LNV&47I7<>BW;=RLNBO6 8N<>6?¼VYIh476 ¾ RLNBN<>6ö4|-0I7?\Bh ¾ 6QGI76ÔH;@VY?7G$I6^9&<ÇI7?6qJRL
<HR^Ô>6
68BPBh ¾ =O6 6\476ÔHR¼XRK?^<,6= LN6¬8NI^<>JRK?B6¼ß
RJK6; E I7?66@Ý ¾ 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ÔHRBN<D0 8
Ü ?78N6X^ ÔH6q47686?BN<H6=LM8
Ü ?^86X Ô>6Q4686?BN<>6=LM8A?7VY?¼?I^ÔH8
ܳ?786X:^ Ô>6Q4686?BN<>6=LM8D;@VY?7;@LN6=BN8
NAT
ܳ?786X:^ Ô>6ö4686?BN<>6=LM8:;@VY?7;@LN6=BN8D?7VY?¼?I^Ô
NAT
ܳ?786X:^ Ô>6ö4686?BN<>6=LM8LM6ÔHRBN<20 8A;@VY?7;@LN6=BN8
-- , INT
Ü ?^86X Ô>6ö4685Ç VVYÔ =O6 6?^8
,
!
9&CA3m; A9T BOOL
Ü ?786X:^ Ô>6ö468D;MF7R gH] ?768A46Õ;=RLMRK;@B$6= LN68
STRING
Ú " C
¾ 6Q47686?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<>JRK?BN8qß
ÔH68JRL
<HR^ Ô>688N;=RKÔûRK<>LN68Bd ¾ =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 ¾ RL:I7?60 VY?7;@BN<HVY?¼¾ BVK BNRKÔ>,6BOOL,
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<HX6?78N<>VY?7886=LMVY?BD47VY?7;öX£V&4³O6 ÔH<H8$O6 8 ¾ RL:I7?690VY?7;@BN<>VY?hBVKBNRKÔ>6o46öBh ¾ 6£ß
* 22 * * *d(a* D 4 !967
,E64W=O6 JK6ÔHV ¾7¾ 6X£6?B¼476l8 & 8B$6 X£68 ¾ RLhÔHR*X =O6 BNFV$476 ! 4VY?7?76lÔH<H6I R*
Ôä-UO6 ;@LM<HBNILN6~46XRK;MF7<û?68
R^ 8BL
RK<>B68$ ,E68E;@VY?BLMRK<H?B68!47IQ;=RKF7<>6=L!468`;MF7RLK# 688VY?B`4W$O6 ^7 ?^<>68 ¾ RL8VY?o<H?JRLM<HRK?B$,E68ÛV^ÔH<D#YRBN<>VY?78
46 ¾ LN6IJK68Õ4WO6 ;@VYI^Ô>6?B46ÔûR ¾ L&O6 86=LNJRBN<>VY? 46Ôä-0<H?JRLM<HRK?B ¾ RLPÔHR{XRK;MF7<û?6R^ 8BL
RK<>B6 R¼
BL
RJK6=LM8oÔHR
X£V&47<2^7 ;=RBN<HVY?ö46.8VY?=O6 BNRB ¾ RLEÔ>68ÇV ¾ =O6 L
RBN<>VY?78$Hk BL
RJK6=LM8`Ô>6.LMR*
) ?76X£6?B$' <ûÔ0 RKIB ¾ L$O6 86=LNJK6=LÔä-0<H?JRLM<ûRK?B
V¾ YILQ=O6 J&<>B6=L.ÔHR247<H8 ¾ RLM<>BN<>VY?Õ468!;@VY?BLMRK<û?B68Þ47Io;=RKF7<>6=LÞ468!;
F7RLK# 68Þ47RK?78!Ô>68<HX ¾ Ô
O6 X£6?BNRBN<HVY?78$' 4VY?7;
VY?hV7 BN<H6?BDI^?h?VYIJK6Ô|6?78N6X^ ÔH6Q4|- V^ ÔH<2Y# RBN<HVY?7846 ¾ LN6I7JK6
( DF w %C + _+^%('
; Ô8=-0RY# <>B.46 ¾ LNVYIJK6=LE'SRö
Ôä-0<û?B$=O6 LM<>6I7L!4Û-0I7?6X 6g X£6DXRK;
F7<H?6Y' G$I6AÔä-0<û?JRLM<HRK?B`68NBo=O6 BNR^ ÔH<7R ¾ LE6 8 Ôä-0<H?7<uS
BN<HRKÔH<û8NRBN<>VY?h6=B ¾ L&O6 86=LNJ.O6 ¾ RL2Ôä- 6@Ý O6 ;=IBN<>VY?l468:V ¾ =O6 LMRBN<>VY?78$K 6PLMR ¾7¾ 6ÔHÔ>6öÔHR¬8BLMI7;@BNI7LN6Õ4|-0I7?76ÕXRK;MF^<H?6
¾ RLNBN<û;=I7ÔH<Q6= LN6ö8NRK?78 ¾ RLMRKXM6= BLN682RJK6;PI7?6Q86I7ÔH6öV ¾ =O6 LMRBN<>VY? 7P# Ú = +
MACHINE
VARIABLES
INVARIANT
INITIALISATION
OPERATIONS
END
[
M
v
I
U
OP PRE P THEN S END
Ú
;
0 $
=
V!
/:?76QXRK;MF7<û?6
)
VYIL ¾ LNVYIJK6=L2Ôä- =O6 BNR ^ÔH<H8N8N6X£6?B:46ÕÔä-0<H?JRLM<HRK?B ¾ RLDÔä-0<H?^<>BN<HRKÔH<H8MRBN<>VY?
<HÔ|8NI BD46 ¾ LMVYIJK6=LDG$I6
I
Ô>6 ¾ &L O6 47<H;=RB
/ W68B8NRBN<H8 RK<>B &,.- V ¾ =O6 LMRBN<>VY?
L¾ $O6 86=LNJK6QÔä-0<H?JRLMU<HRK?B³8N<ÇÔ>6 ¾ L&O6 47<H;=RB
Ú OP
09 W68NBA8NRBN<H8 RK<>B
-; [
; [
( DF 0 $
-[
d +%`" "&%('
,EVKLM8NG$I|-0I7?6£XRK;
F7<H?6
Ú Ö q68BöLMR ?W=O6 6 ¾ RLQI^?6£XRK;MF7<û?6
Ú
MachineA
MachineR
Ô>68 ¾ LNV ¾ LM<
=O6 BO6 8ö46oÔ-0<H?JRLM<HRK?B:476
4VY<>JK6?B 6=BLN6 ¾ L&O6 86=LNJ.=O6 68 ÛÜ ÔûÔ>68 VY?B24VY?^;PR ¾7¾ RLMR >BLN6
468V ^Ôû< YRBN<>VY?7846 ¾ LN6IJK6ö8NI ¾7¾ Ô
MachineA
O6 X£6?BNRK<HLN68Ô>VKLM846QÔ-0IBN<HÔH<H8MRBN<>VY?47I ¾ LNVYIJK6ILA8NI7LÔH6öLMR ?6X£6?B
2#
7P# ON
*) "
2#
*) g
$ m0
*)
?#
7P# ,+ '
g]
9$6ÔHVY? Ç,`RK?V KÚ Ô>68qV ^Ôû< YRBN<>VY?78246 ¾ LN6IJK68 O6 ?W=O6 L&=O6 68 ¾ VYIL ¾ L&O6 86=LNJK6=LPÔä-0<H?JRLM<ûRK?Bq46
Ma4^ILMRK?BÔH6öLMR ?6X£6?B ¾ RL
8VY?B:Ô>68A8NI7<HJRK?B68öß
chineA
MachineR
D, -0<H?7<>BN<ûRKÔH<H8NRBN<>VY?2R ^8BL
RK<>B6.4VY<>Bq=O6 BNR ^Ôû<>LÛÔä-0<H?JRL
<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 LMRBN<>VY?oR ^8BLMRK<HB6.4VY<>B:=O6 BNR ^ÔH<>L`Ôä-0<H?JRLM<ûRK?B|;@VY?7;@LN6=BE6=BEÔä- O6 YRKÔH<>B$³O6 4768|L$O6 8NI7Ô>BNRBN8`46.Ôä- V ¾ =O6 LMRBN<HVY?
;@VY?^;@L 6=B6
6=BD46QÔ- V ¾ =O6 LMRBN<>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£XRK;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 ¾ VYI7LBVYIB68DÔ>68AV ¾ =O6 LMRBN<>VY?78
qRK?782;@6=BB6£46=LM?7< 6=LN6PV ^ÔH< YRBN<HVY?¼46 ¾ LN6IJK6 ^VY?xJKVY<>B2;=ÔHRK<>LN6X£6?B:G$I6oÔHR ¾ L&@O6 S;@VY?^47<>BN<>VY?x47I¼LMR S
^?6X6?B4VY<>B 6=BLN6 =O6 BNR ^ÔH<>6b8NI7<>JRK?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?B46QÔ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 ¾ RLMR#KL
R ¾ F6 ¾ L&O6 ;^O6 46?BVY?*LN6XRLMG$I6bÔä-0R ¾7¾ RL
<>BN<>VY?46\ÔûRl47VYI8^Ô>6\?³$O6 #YRBN<>VY? ¾ VYILÔ>68
q
46I&Ý 46=L
?7<,6= LN68¬V^ÔH<2#YRBN<>VY?^846 ¾ LN6IJK6
A:VYI78\RKÔHÔ>VY?78¬<H;=<A4VY?^?6=L¬Ôä-0<û?BNI7<HBN<>VY?46xÔûR¶8N<2#Y?^<27^;=RBN<>VY?
46\;@6=BB6b47VYI8^ Ô>6?W$O6 #YRBN<HVY?47RK?78oÔ>68ÕVÔH<2#YRBN<>VY?78P46 ¾ LN6IJK6¬Ôû<
=O6 68oRKI LMR*)?76X£6?B$!/2?6 ¾ LM6X<,6= LN6
<H?B6=L ¾ L&=O6 BNRBN<>VY?46*ÔHR©?³O6 ;@68N8N<>B$O6 476;@6=BB64VYI8 Ô>6 ?W$O6 Y# RBN<>VY?68NBßqI7?5LMR*
)
?6X6?B~?6*4VY<>B ¾ RK8
¾ LN6X<,6= LN6P?W$O6 Y# RBN<>VY? V6=g BLN6o6?l4³O6 8NRK;=;@VKLM4 46I&Ý<,6 X£6?³$O6 Y# RBN<>VY? DRJK6;8VY?lR^ 8BLMRK;@BN<>VY?@Sq. RK?782;@6=BB6
<H?B6=L ¾ L&=O6 BNRBN<>VY?86PBLNVYIJK6ÔHR47VYI8^ Ô>6Õ?W$O6 Y# RBN<HVY?`[ VYI7LqRKÔûÔ>6=L ¾ ÔûI78AÔ>VY<H?x47RK?782Ôä-0<H?BNI7<>BN<>VY?@7' ?VYI78DRKÔûÔ>VY?78
) ?6X6?B # Ù 6=B?VYI78;@VY?78N<H4W=O6 LN6=LMVY?78Ô>68;MF6X<û?78 ¾ RLM;@VYI7LMI78 ¾ VYIL
¾ LN6?^4LN6hI7?6@Ý&6X ¾ Ô>6¼476¼LMR*
RLNLM<HJK6=LDRKIhL&O6 8NI7ÔHBNRBQß
8
D# 27
+ 2 x := x -2
,.-0R ¾^¾ HÔ <H;=RBN<>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*)?6X6?BD476Q;@6=BB6P8 ¾ O6 ;=<27;=RBN<>VY?
Ug
¾ VYILNL
RK<>B 6=BLM6ß
R JK6;oI7?h<H?JRLM<ûRK?B46Õ;@VYÔûÔHR K6 Ü ?{;@VY?78N<H4W=O6 LMRK?BDy;@:=
6=BBy6o+8 ¾ 1O6 ;=< ^;=RBN<>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
¾ RLNBN<H6Q8NILAÔ>68A;@VKL ¾ 8A4|- V ¾ =O6 LMRBN<HVY?¼6=BA6?¼?7VKBNRK?B WÔä-0<û?JRLM<HRK?B47IbLMR ?6X6?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 ¾ RLQß7Ô>68D46I&Ýh;MF6X<û?78 ¾ VY8N8N< ^ÔH68W47VY<>JK6?B 6=BLM6ÕJRKÔ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 ¾ RLQß7ÔHR£8MI ^8BN<>BNI7BN<>VY?b46QLMR ?76X£6?BA47VY<>B 6=BLN6P;@VYFW=O6 LN6?B6RJK6;ÕÔ-0I7?6
W
VYI¼Ôä-0RKI7BLN6QRKÔ>B6=LM?7RBN<HJK6Õ46QÔä-0R ^8NBLMRK;@BN<>VY?
D = ! 1 ! 46 1 * ,`RAX£V&4³O6 ÔH<H8NRBN<>VY?ö4768Û8 &8Bc6 X£68E6?:!~IBN<HÔH<û86ÔûR?VKBN<>VY?Q46.XV$47I^ÔHRLM<>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=L46XK# LNVY8N868W8 ¾ O6 ;=<2^7 ;=RBN<HVY?78 BVYI7B³6?\IBN<HÔH<û8NRK?B
ÔHRPX£V$4^I7ÔHRLM<>B$O6 'ÔûRÕX=O6 BNFV&46?! IBN<HÔû<H86A468WX O6 ;=RK?7<H8NX68W476:;@VYX ¾ VY8N<>BN<HVY? ¾ RLWÔ>68³;=ÔûRKI7868W8NI7<>JRK?B68:ß
SEES
USES
INCLUDES
EXTENDS
PROMOTES
IMPORTS
.
#
$' E$ #
2
=
qRK?78`Ô>68 ¾ RL
R KLMR ¾ F68Û8MI7<>JRK?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 JRLM<HR ^Ô>6 6?786X ^Ô>6 ;@VY?78BNRK?B6W6=BV C1
O6¾ LMRBN<>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 LMRBN<>VY?^8
VY?£47<H8NBN<H? YI6WÔä-0RK;=; 68 RKI&ÝoV ¾ =O6 LMRBN<>VY?78.476;@VY?^8NI7Ô>BNRBN<>VY? Ô>68!V ¾ =O6 L
RBN<>VY?78.4VY?BÞÔHRq8 ¾ O6 ;=< ^;=RBN<HVY??6X£VS
47< ^6 ¾ RK8 Ô>68ÞJRLM<HR Ô>68Þ46DÔHRöXRK;MF7<H?76 6=B RKI&Ý£V ¾ =O6 LMRBN<>VY?^8 46DXV$47< ^;=RBN<>VY? K,Û68 L 6 YÔ>68 476AJ$<û8N< ^<HÔû<>BO6
X£VY?BLN6?BDGI^RBLN6QB ¾ 68A46öJ&<H8N< <HÔH<>B$O6 C`R ^ÔH6RKI Ú
,E68¬;@VY?^8BN<>BNI7RK?BN8 ¾ 6I7JK6?B 6=BLN6J$<H8M< ^Ô>68;@VYXX£6lI^? 6?786X ^Ô>6xVYI I^?6{JRLM<HR ^ÔH6{47RK?78\I7?
<û?JRLM<HRK?B Ôä-0<H?JRL
<HRK?B?6QXV$47< 76 ¾ RK8AÔ>68JRKÔ>6IL
8468JRLM<HR ^Ô>68 WGI7<Ç68NBDRK?7?VKB$O6 y
,E6Q;=RK8A468JRLM<HR ^ÔH68VYIbV ¾ =O6 LMRBN<>VY?78D68B ¾ ÔHI78;@VYX ¾ Ô>6@Ý$6qVY?¼4^<>LMRoGI|-0I^?6qJRLM<ûR ^Ô>6268BJ$<û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 LMRBN<>VY?^8 ¾ 6IJK6?B 6=BLN6R ¾7¾ 6Ô =O6 682Ô>VKLM8NG$I|- 6ÔHÔ>68D8VY?B:J$<û8N< ^Ô>686=B2?VY?lX£V$4^< ^R ^Ô>684^RK?78DÔ>6P;=RK8
V Ih6ÔHÔH68A?6ÕX£V&47< ^6?B ¾ RK8AÔûRJRKÔ>6I7LD468JRLM<HR ^ÔH6846ÕÔHR£XRK;
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?B46bJKVY<>LI7?6h<H?^8BNRK?7;@6h46¼XRK;
F7<H?6 ÞÜ ÔûÔ>6 ¾ =6 LMX6=B
4|-0RK;=;O6 46=LDRKIÝ\SEES
;@VY?78BN<HBNI7RK?BN846öÔHRoXRK;
F7<H?62J$I7628NRK?^8 ¾ VY8N8M< ^<HÔH<HB:O6 462ÔH68WXV$47< 76=L ,`RP;=ÔûRKI786
SEES
qRK?78
¾ 6=LMX£6=B46bJKVY<>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öJRLM<HR ^ÔH6qI7BN<HÔH<H8$=O6 6Q47RK?^8I7?6Q8NI 8BN<>BNIBN<>VY?
ÔHRJRLM<HR ^Ô>6q68B:X£V$4^< ^R ^Ô>6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öV ¾ =O6 LMRBN<HVY?{R ¾7¾ 6Ô =O6 6Õ47RK?^8I7?6Q8NI 8BN<>BNIBN<>VY?
Ôä- V ¾ =O6 LMRBN<HVY? ¾ 6IBAX£V&47< 76=LÔ>68AJRLM<ûR ^Ô>6846Q8NRXRK;MF7<û?6QR ^8BLMRK<HB6
;@VY?^8BN<>BNI7RK?BAJ&<H8N< ^ÔH6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öJRLM<HR ^ÔH6qI7BN<HÔH<H8$=O6 6Q47RK?^8I7?6Q8NI 8BN<>BNIBN<>VY?
ÔHRJRLM<HR ^ÔH6q?Û- 68B ¾ RK8DXV$47< ^R ^Ô>6
8M<|Ô>6Q;@VY?78BN<>BNI^RK?BA68NBDI7?6öV ¾ =O6 LMRBN<HVY?{R ¾7¾ 6Ô =O6 6Õ47RK?^8I7?6Q8NI 8BN<>BNIBN<>VY?
;- 68B:I^?6öV ¾ =O6 LMRBN<>VY?xGI7<|?76QX£V$4^< 76 ¾ RK8AÔ>68AJRLM<ûR ^Ô>6846Q8NRXRK;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 ¾ RL
6=Bo?7VY? ¾ RK8
Ôä- 6@Ý&6X ¾ Ô>6\8NI7<>JRK?B
Ú ÕÔûR{XRK;
F7<H?6¬J$I6 ¾ RL
BVYIB68DVYI{;@6ÔHÔ>68D<HX ¾ KV LNB=O6 68 ¾ RL
^,ERL 6 YÔ>6o;@VY?7MA
8N<H8NB6 R47<>LN6QG$I6QÔHR£XRK;MF7<H?76öJ$IMD
6Õ68BDÔä-0<H?^8BNRK?7;@6
<HX ¾ VKLNB$=O6 6 ¾ RLhÔ>6 ¾ ÔûI78 ¾ LNV&;MF6 ¾ ME
RLN6?Bh46~ÔHR*XRK;MF^<H?6~GI^<:JKVY<HB
? ¾ 6IBhRKI78N8N<2LN6?VYXX£6=LhÔ>68
XRK;
F7<H?68J&I68
E$ #
$
$ -
ME
MB
MD
imports
MA
MB
sees
" T2LMR ¾ F76Q46Q4³O6 ¾ 6?747RK?7;@6Q4|-0I^? ¾ LNVH6=B !
,E68qL$6$ #YÔ>68ö46J$<û8N<2^<HÔû<>BÕ
O6 46ÔHR¬;=ÔûRKI786
8NVY?Bö4W$O6 ^7 ?7<H6824^RK?78qÔ>6PBNRÔ>6RKI Ú $ VI~
ÔHR¬XRK;MF7<H?76
JKVY<>BAÔHRoXRK;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?6qXRK;MF^<H?6
G$I7<JKVY<>BSEES
I7?6qXRK;MF7<û?6
XRK<û8
?6
;- 68BS R S47<HLN6öGI|-0I^?62XMB
RK;MF7<H?76
MA
MB
MC
MA
JKVY<>B ¾ RK8qÔHRXRK;MF7<H?76
Ç Ü ?xVYIBLN6I7?6oXRK;MF7<û?6ÕJ&I64VY<>B:6=g BLM6<ûX ¾ VKLNB=O6 6 <H?78NBNRK?7;=<HRBN<>VY? ¾ RLqÔHR
;=ÔHRKI78N6
W47RKMC
?78Ô>6 ¾ LNVH 6=BX!X
IMPORTS
( INCLUDES, EXTENDS et PROMOTES
,E6Ôû<>6?
6?BLN6I^?x;@VYX ¾ VY8NRK?B
XRK;MF^<H?6VYILMR*) ?6X6?B :6=BöI7?;@VYX ¾ VY8NRK?B
6¾ =LMX£6=BINCLUDES
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# RLM4^RK?BEÔH68ÛRJRK?BNRK# 6MB
8!468ERK8 ¾ 6;@MA
BN8E46.X£V&47I7ÔûRLM<>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
Ô>68V ¾ =O6 LMRBN<>VY?78b468\<H?78BNRK?^;@6846lXRK;MF7<û?68=O6 B6?74^I68 <H?7;=ÔHI78N68 -q
. RK?78\Ô>6x;=RK8¬VI Ô- VY? ?6xJK6IB
¾ RK8 ¾ LNVYX£VYI7JKVY<>LPBVYI7B68oÔH68ÕV ¾ =O6 LMRBN<HVY?78£4|-0I7?6\XRK;MF^<H?6¬4^RK?78PI^?¶;@VYX ¾ VY8NRK?B£R^ 8BLMRK<>B XRK;MF^<H?6
Ú
ÖÚ
Lk
!
TÔHRKI78N68A46
TWVY?78BN<>BNI^RK?BN8A476
!RLMRKX 6=BLM68
Ü ?^86X Ô>68
TWVY?78BNRK?B68
.RLM<HR Ô>68
¾ =O6 LMRBN<>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 4686?BN<>BO6 8D4|-0I7?76QXRK;MF7<û?6öJ$I76
VYI LMR*)?6X£6?B ÕXRK<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 LMRBN<>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<>LN6GI76Õ47RK?78:Ô>6P;=RKPROMOTES
8:VIx
I^?6ÕXRK;
F7<H?6 MA GI^INCLUDES
<E<H?7;=ÔûIBVYI =O6 B6?7EXTENDS
4lI7?6PXRK;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 ;@VYXX£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<>JRK?B C`R Ú Ù 8NRK;MF^RK?B2GI6
<H?7;=INCLUDES
ÔHIB
VYI
=O6 B6?74
MA
MB
MA
MB
TÔHRKI786846Lk
TWVY?78BN<>BNI^RK?BN8A476 !
[ RLMRKXM6= BLM68 INCLUDES PROPERTIES INVARIANT OPERATIONS
!
Ü ?^86X Ô>68
Z
Z
Z
TWVY?78BNRK?B68
Z
Z
Z
Z RLM<HR Ô>68
.
Z
A
- ¾ =O6 LMRBN<>VY?^8
Ú Ù 2
Z <û8N<2^ <HÔû<>B2O6 468A6?BN<>B$O6 824|-0I7?6öXRK;
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;@68A46QXRK;MF7<H?76 ;=ÔHRKI786
Ô>68XRS
M; F^<H?68Q<H?^;=ÔHI7868 ¾ 6IJK6?B ¾ RLNBNR K6=L468Q4VY?7?W=O6 68P46Ôä-0I7?764Û- 6?BLN66ÔHÔ>68 ¾ RLÕINCLUDES
I^?~ÔH<>6?
8NILQÔûR
68BbG$I|-0<HÔ ¾ 6=LMX6=B¬4|USES
-0IBN<ûÔH<H86=LÔ>68
XRK;
F7<H?6 ¾ LNV ¾ LM< =O6 BNRK<HLN6x468\4VY?7?W=O6 68 W, -0RJRK?BNR K6¶4^I ÔH<>6?
USES
?Û- 68B ¾ RK8BL
RK?78N<>BN<>JK6
¾ RLMRKX 6=BLM68 VKLMX£6ÔH8476QÔHR£XRK;MF^<H?6QIBN<HÔû<H8=O6 6 C`R Ú =Ø ,`R;=ÔHRKI786
#
M m0
!
TWVY?78BN<>BNI^RK?BN8A476
!RLMRKX 6=BLM68
Ü ?^86X Ô>68
TWVY?78BNRK?B68
.RLM<HR Ô>68
¾ =O6 LMRBN<>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?76qXRK;MF7<H?76QIBN<HÔH<H8$=O6 6
Z
OPERATIONS
Z
Z
A
>=
Ö
( E wkdön£z
" ' Qd\k knPgPz
,E6Ôû<>6?
6?BLM6I^?6W<ûX ¾ ÔHRK?BNRBN<>VY?
6=BÞI7?6XRK;
F7<H?6
¾ 6=LMX6=B4|-0I^?6 ¾ RLMB4|-0<û?78S
47RK?^8Ô>6 ¾ LNV 6=B6=BD4|-0RKIMA
BLM6 ¾ RLNBA46Q4^<H8 ¾ VY86=LMB
6?BN< 6=LM6X£6?B2468A86=LMJ$<H;@68D46
BNRK?7;=<>6=L:ÔHR£XIMPORTS
RK;MF^<H?6
GI^< ¾ 6IJK6?B 6=BLMMB
6 ¾ LNVYXoI78 ¾ RLÔûRo;=ÔûRKI786
;@VYXX6 ¾ VYILÔä-0<H?^;=ÔHI78N<>VY? Y,.-0IBN<HÔH<û8NRBN<>VY?
MB
468o86=LNJ&<H;@6846
68BoL&O6 RKÔH<H8$=O6 6 RxBLMRJK6=L
8£ÔäPROMOTES
-0R ¾7¾ 6Ô 468oV ¾ =O6 LMRBN<HVY?7846
8NRK;
F7RK?B£G$I6bÔä- VY? 8N6
MB
MB
ÔHV Y<H;=<>6ÔÇ6=BDG$I6ÕÔ>68AV ¾ =O6 LMRBN<>VY?78:8VY?B:6@Ý O6 ;=IB$=O6 68 ¾ RL:Ô>6ILDR ¾7¾ 6Ô 6ÔHÔH68A?6
¾ ÔHRK;@6P47RK?78AÔ>6Q;=RK47LN6Õ47I
8=- 6@Ý O6 ;=IB6?B ¾ RK8PRKI7BVYXRBN<HG$I6X£6?B;@VYXX£6\ÔH68 =O6 J.O6 ?6X£6?BN8Ô>VKLM8NG$I6\Ô>6IL YRL
46¬68NBoJ$LMRK<>6 !RL
;@VY?78$O6 G$I6?BÔHRXRK;MF^<H?6¼G$I7<<HX ¾ VKLNB6b;@VY?BL VYÔH6¼Ô>68£X£V K6?^84|-UO6 ;@LM<>BNI7LN6h468£4VY?7?W=O6 68¬X£V$4^< ^R ^Ô>68
46£ÔHRbXRK;
F7<H?6£<HX ¾ VKLNB$=O6 6 |,.-0<ûX ¾ VKLNBNRBN<>VY? ¾ 6=LMX£6=Bö46£8BLMI7;@BNI7LN6=LöI7? ¾ LNV 6=B 6?~;@VYI7;
F68 |6?~6 S
6=BÔ-0<HX ¾ ÔHRK?BNRBN<>VY?4|-0I7?*X£V&47I7Ô>6\8=-0<HX ¾ Ô
O6 X£6?B6 ¾ RL<ûX ¾ VKLNBNRBN<>VY?4|-0RKIBLN68£X£V&47I7ÔH68ÕV ÇLMRK?B468
86=LNJ&<H;@6846 ¾ ÔHI^8 ^RK8?7<HJK6RKI P-0RKI7BLN6 ¾ RLNBÔ>6h;@VYX ¾ VY8NRK?BG$I7<?|- 68B ¾ RK8<HX ¾ VKLMBO6 VYI6hI7? L VYÔ>6
¾ RLNBN<û;=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<>JRK?B
CR Ú K q4WO6 ;@LM<>BPÔHR\J$<H8M< ^<HÔH<HBo
O6 468ö;@VY?78BN<HBNI7RK?BN8Õ4|-0I7?6£XRK;
F7<H?6£<HX ¾ VKLNB$=O6 6
RhÔä-0<û?B$=O6 LM<>6I7Lq4768
MB
;=ÔHRKI78N68A4|-0I7?6QXRK;MF7<H?76
Ug
0
I
i! #
H
Q
Hg
@
#
H V!
+[
27 $' $0
:
Hg
@ TÔHRKI^86846Lk
b
1.
H !
2
MA
TWVY?78BN<>BNI^RK?BN8A476 !
PROPERTIES VALUES INVARIANT
[RL
RKX 6= BLN68
Ü ?786X:^Ô>686=BqTWVY?78BNRK?B68qTVY?7;@L$6= B68
Z
Z
Z
TWVY?78BNRK?B68mkX^ 8BL
RK<>B68
Z
Z
Z RLM<ûR^ Ô>68 kX^ 8BLMRK<HB68
.
Z
Z RLM<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 4686?BN<>BO6 8:4Û-0I7?6QXRK;
F7<H?6Q<HX ¾ VKLMB=O6 6
OPERATIONS
Z
A
"%&"!
!
$
$
,`RX =O6 BNFV&46 68B RK8=O6 6P8NILAI^?6Q8O6 XRK?BN<HGI76Q6=BDI7?6Q8 $?BNRÝ$6PXRBNF³O6 XRBN<HG$I68:BL 68 ¾ L&O6 ;=<H8N68
Ü ÔûÔ>6 ¾ 6=LMX£6=BÔ>6q4W=O6 JK6Ô>V ¾7¾ 6X£6?B4|-0R ¾7¾ Ôû<H;=RBN<>VY?78 ¾ LNVYIJ.=O6 68 7,Û6ö; &;=Ô>6ö46q4³=O6 JK6Ô>V ¾7¾ 6X£6?B ;@VY?78M<H8B6
R4WO6 ^?^<>LD47RK?78DÔä-0<H?JRLM<ûRK?BAÔ>68 ¾ LNV ¾ L
<
=O6 BO6 8 ;@VY?BLMRK<H?B68:XRBNFWO6 XRBN<HGI768 G$I6ÕÔ>6P8 $8NB 6X6P4VY<>BDLN68S
¾ 6;@B6=L (6=B R O6 ;@LM<>LN6Ô>68:V ¾ =O6 LMRBN<>VY?78qG$I7< 6=LNVY?B¼=O6 JKVYÔûI6=LöÔä- =O6 BNRBQ47Ix8 $8B 6X£6 |,E6824^< D=O6 LN6?BN8qX£V&4 6Ô>68
;@VY?78BL
I7<>BN8E4^RK?78`;@6=BB6V ¾ BN<ûGI6 VY?BR ¾^¾ RLMR >BLN6 KLMRK47I6ÔHÔH6X£6?B ¾ RLEL
R ?6X£6?B`I7?oX£V&4 6Ô>6³;@VY?^;@LN6=B
BLMRK47I^<H8N< ^ÔH64^RK?78³I^?ÔHRK? YR K6q46 ¾ LNV KLMRKXXRBN<>VY?BL
RK47<>BN<>VY?7?76ÔBVYIBW6?¬XRK<û?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Ô>68VYI (LN64|-0I^?oXRK?7GI76476A;@VYX ¾ L&O6 F6?78M<>VY?£46ÔHR
O6 4|-0R ¾^¾ LN6?BN<H8N8NR K6P6=B24|-0I7BN<HÔH<H8NRBN<HVY? 7,Û682X O6 ;=RK?7<H8NX68
¾ RLNB24682?VY?x<û?7<>BN< O6 8:6=B24VY?^;Õ4|-0I7?76P47< ¬;=I7Ô>BP
46\;@VYX ¾ VY8N<>BN<>VY? 468PXRK;MF7<H?768QVY?B¶=O6 B$¼
O6 ;MF7VY<H8N<H8 ¾ VYI7LPÔHR ¾ L$O6 86=LNJRBN<>VY?*468 ¾ LN6IJK68ÕXRK<H8P<ûÔH8Q8VY?B
<H?7F^R ^<>BNI6ÔH8 ¾ VYILAÔHR£8BL
I7;@BNILMRBN<>VY?{468A<H? VKLMXRBN<HVY?78
$7
E' 2
8# #
-0
$
#
_0
)
80
$ c
g] -#
$'
8b
$
#
$ *)
b
c
!
ÖKÖ
Ö
+
.
#
L0
0
Q
qRK?78\Ô>68 ¾ RLMR KLMR ¾ F68 ¾ L&O6 ;O6 46?BN8h?VYI78¬RJKVY?78b;MF7VY<H8N<DÔûR X =O6 BNFV&46 VKLMX£6ÔûÔ>6¼RK4³O6 GI^RB6 R ;@6
BLMRJRK<HÔ^46ALN6;
F6=LM;MF76 :VYI78ÞLMR ¾7¾ 6Ô>VY?^8ÞGI6AÔH68.X =O6 BNFV&468 VKLMX£6ÔûÔ>68!6=B 86X<>S VKLMX6ÔHÔ>68!VY?B ;MF7RK;=I^?6
Ô>6IL
8¬RJRK?BNR K68x8MRK?78bGI|-0RKI^;=I7?6?6 ¾ 6=LMX6=BB6?Bh46L&O6 ¾ VY?74LN6;@VYX ¾ Ô 6=B6X6?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?7VKBNRBN<>VY?78o86X<uS VKLMX£6ÔHÔH68Õ8VY?B£<H?BNI^<>BN<>JK68Q6=B8 &?BNFW=O6 BN<ûGI68XRK<û8PRKX ^< YI 68RKI;@VY?BLMRK<HLN6
468:X =O6 BNFV$4768 VKLMX£6ÔHÔH68AGI^<Û8VY?B ¾ L&O6 ;=<H8N68A6=BDL
< KVYILN6I78N68AXRK<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!;=RLÞ<HÔ68NB<H?B=O6 LN68N8NRK?B.46;@VYX <H?6=L
Ô>68:RJRK?BNR K68qLN68 ¾ 6;@BN< 8A476PÔä-0I7?76ö6=B:46oÔä-0RKIBLN6 (9&6 ¾ VY86ÕXRK<H?B6?7RK?B:ÔHRGI68NBN<>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 KLMRBN<HVY? qRK?78`BVYIB68!Ô>68`X =O6 BNFV$4768
86X<>S VKLMX6ÔHÔ>68;=ÔHRK8N8M<HGI768VY?hLN6=BLNVYIJK6PÔ>68 ¾ F7RK8N68A8NI7<>JRK?B68öß
RK?^RKÔ $8N6Q468 Ç68VY<H?78
8 ¾ O6 ;=< ^;=RBN<>VY?
;@VY?^;@6 ¾ BN<>VY?¼6=B:4³=O6 JK6Ô>V ¾7¾ 6X£6?B
,ER ¾ F^RK864764W=O6 JK6Ô>V ¾^¾ 6X6?B qV I Ôä-0<H?BO6 KLMRBN<>VY? 46=J$LMRK<>B 6=BLN6 ÔHR ¾ ÔHI78 WO6 ?³O6 ^G$I6 ö68B~;@6ÔHÔ>6*46
ÔHR8 ¾ O6 ;=< ;=RBN<>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?6X6?B£8VY?B
O6 468Õ47<ûR KLMRKXX£68Q4768ÕX=O6 BNFV&468Õ8N6X<uS
¾ RLNBN<û;=I7ÔH< 6=LN6X£6?BQ<HX ¾ VKLNBNRK?B68 o-0RKIBLM6 ¾ RLNBQÔû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 ;=< ^;=RBN<>VY?78 VKLMX£6ÔHÔ>68xGI76¶Ô>68l?VKBNRS
BN<>VY?78XRBNFWO6 XRBN<HGI768V ^8N;=ILM;=<û8N86?B TWVY?^;@6=LM?7RK?BÔ-0<H?B$O6 KLMRBN<HVY?h468X =O6 BNFV$4768 VKLMX6ÔHÔ>68³6=B8N6X<uS
VKLMX£6ÔHÔ>68 &<ûÔÇ6@Ý&<H8NB6QBLNVY<H8B ¾ 68A476Q4³O6 XRLM;MF768Õß
D,`R ¾ LN6X< 6=LN6¼4³O6 XRLM;
F6{J&<H86 R ¾ LNV ¾ VY86=LI7?6¼?VYI7JK6ÔHÔ>6hX =O6 BNFV&46xG$I7<I7?7< 76\ÔH6846I&Ý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ÔûÔ>6X=O6 BNFV&46¬;@VYFW=O6 LM6?B6hG$I7<P=O6 B6?74Ô>68
;@VY?7;@6 ¾ BN8\468?VKBNRBN<HVY?7886X<uS VKL
X£6ÔHÔ>686@Ý<H8BNRK?B686? *R VYIBNRK?B\4768 ^RK868 VKLMX6ÔHÔ>68
8VYÔH<H468 26I&ÝhX=O6 BNFV&468L&O6 ¾ VY?746?B R£;@6Õ8N;
F³O6 XR ^ÔHR£X=O6 BNF7V$46Q1^I78N<>VY? 4^RK?78ÔHRKG$I6ÔHÔ>6
Ô>68V ¾ =O6 LMRBN<>VY?78D8VY?BA4WO6 ;@L
<>B68A?VKBNRKXX6?B6?¼I7BN<HÔH<H8NRK?B³ÔûRo8NBLMI7;@BNILN6 (' 6=B (+/.$ 6@Ý&<H8NBNRK?B6o47RK?78D476Õ?VYX 7LN6I7868DX =O6 BNFV$4768 VKLMX£6ÔHÔH686=B:Ôä-0R ¾^¾ LNV&;MF6Õ4Û- BBN<>V WO6 VY< RB:6=B
9&RKÔHR I7? GI7< ¾ 6=LMX6=BA4|-0R VYI7B6=L:468A;@VY?^;@6 ¾ BN8 VKLMX£6ÔH8 ¾ LNVJK6?^RK?BD476Õ8 ¾ O6 ;=< ^;=RBN<HVY?78
lVYI¼RKÔ O6 7LM<ûGI68D47RK?78A468D47<HR KLMRKXX68A4|- =O6 BNRBN8:/ 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 XRq;@VYX ¾ Ô 6=B6X6?BÞV ¾7¾ VY8$WO6 6?P<û?7;@VKL ¾ VKLMRK?B`Ô>68?VS
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£XRK?7< 6=LM6ÕVY?l;@VY?786=LNJK6£Ô>68:RJRK?BNR K68
RKI ?7<>JK6RKI ¾ L&O6 ;=<û8N<>VY?~468öX=O6 BNFV&468 VKLMX£6ÔûÔ>682BVYIBQ6?~8BLMI^;@BNILMRK?BQÔHRb8 ¾ O6 ;=< ^;=RBN<>VY? JK6=LM8
I7?hÔHRK? YR K6 ¾ ÔHI78 ¾ LNV&;MF76Q468AÔHRK? YR K682<HX ¾ =O6 L
RBN< 8BL
RK47<>BN<>VY?7?76ÔH8 R£V 6=BN8
Ú D,`R46IÝ&< 6X£6P4³O6 XRLM;MF76P68B2Ôä- V 7B6?BN<>VY?{4Û-0I7?6Q8 ¾ O6 ;=< ;=RBN<>VY? VKLMX£6ÔûÔ>6 R ¾ RLMBN<>LD4|-0I7?76Q?VKBNRS
BN<HVY?¶86X<>S VKLMX6ÔHÔ>6 Û;@6=BB6b4³O6 XRLM;MF76¬68BoR ¾7¾ 6Ô
=O6 6¬4W=O6 LM<HJRBN<>VY? W6RKI7;@VYI ¾ 46BLMRJRKI&ݶ8-0<H?78S
;@L
<>JK6?Bx47RK?78¼;@6¶8M;MFWO6 XR ¾ RLMX<öÔ>68MGI6Ôû8h?VYI78 ¾ VYIJKVY?78h;=<HB6=L ÚKÚ Ú ÖÚ G$I7<öIBN<HÔH<û86?B
ÔûR~X =O6 BNFV$476 VKLMX6ÔHÔ>6
o-0RKIBLN6 ¾ RLMB4Û-0RKIBLN68£BLMRJRKIÝ*IBN<ûÔH<H86?BoÔûR~X =O6 BNFV$476 j;@VYXX£6
&
Ö WTW6846IÝ KLNVYI ¾ 68£46hBL
RJRKI&Ý IBN<HÔH<H8N6?B8NRKI 26@Ý&;@6 ¾ BN<>VY? Ô>68X 6X68
B ¾ 68q46o47<HR KLMRKXX68D86X<>S VKLMX6ÔH8 LN6X< 6=LN6X6?Bq<HÔH8A4W=O6 L
<>JK6?BqÔ>6824VY?7?W=O6 68q8BNRBN<HG$I68247I
4^<HR KLMRKXX£6:46D;=ÔHRK8N8N68 Ü ?^8NI7<>B6A<HÔû8ÞIBN<HÔH<H8N6?BÞÔHRö8 ¾ O6 ;=< ^;=RBN<>VY?\47I;@VYX ¾ VKLNB6X£6?B 47I8 $8NB 6X6
4WO6 ?7<!47RK?78qÔ>68ö47<HR KL
RKXX£68q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78 ¾ VYILö4W=O6 LM<HJK6=LQÔ>682V ¾ =O6 LMRBN<>VY?78QG$I7<X£V&47< 76@S
LMVY?BDÔ- =O6 BNRB247I¼8 &8B 6X£6
D,`RBLMVY<H8N< 6X£6£4WO6 XRLM;
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 ;=< ^;=RBN<>VY? VKLMX£6ÔHÔH6 2I;@VY?BLMRK<>LM6b476\ÔHRl4WO6 XRLM;
F6 ¾ L&O6 ;^O6 46?B6 Rl?VKBLN6h;@VY?7?7RK<H8M8NRK?7;@6
¾ 6I 476BLMRJRKI&ݶ;@VY?7;@6=L
?6?Bo;@6=BB6\4WO6 XRLM;MF6 26I&Ý~BLMRJRKI&Ý 6=B Ø BL
RK<>B6?Bo;@6B ¾ 6
4764WO6 XRLM;MF6 Û,E6 ¾ LN6X<>6=L ¾ L&O6 86?B6I7?xVYIBN<HÔ46BLMRK47I7;@BN<HVY?l8NVYI78 VKLMX6o46 KLMR ¾ F68q4|-0I7?6
8 ¾ O6 ;=< ^;=RBN<>VY? O6 ;@LM<>B626?
&,Û6:8N6;@VY?74¬4WO6 ?7<>B I7?76DX =O6 BNFV&462476DLN6 ¾ L&O6 8N6?BNRBN<>VY?b4|- 6@Ý$S
¾ LN68N8N<>VY?^8 LN6ÔûRBN<>VY?7?6ÔHÔH68 ¾ RL468 KLMR ¾ F68W6=B ¾ LNV ¾ VY862I^?¬RKÔ KVKL
<>BNF7X£6qGI^<;=RKÔH;=I^Ô>6öÔHR VKLMXoI7Ô>6
LM6ÔHRBN<>VY?7?6ÔûÔ>6{8NRK?78bG$I7RK?BN< ^;=RB6ILb<H?B6=L ¾ L&=O6 BNRK?BbÔH6 KLMR ¾ F6 T68BLMRJRKIÝ©8VY?B\8 ¾ O6 ;=< ^G$I68
RKIÝ X£V$4 6ÔH68LN6ÔHRBN<HVY?7?6ÔH8 ¾ VYIL¬Ô>68 ^RK8N68¬46x4VY?7?WO6 8 ÔHI78L$O6 ;@6XX£6?B\I7?76{R ¾7¾ LNV&;MF76xR
O6 ?W=O6 LMRKÔû<H8o
O6 ;@68DBLMRJRKI&ݼRKI O6 ?7<>6oÔ>V Y<H;=<>6Ô|;@VYXX£6 KÚ 3D6XRLMG$I6ß^<HÔÇ6@Ý<H8B6P4|-0RKIBLN68BL
RJRKI&Ý{RKIBVYILD476ÕÔHR£;@VY?78BL
I7;@BN<>VY?{8M<HXPI^Ô>BNRK?³=O6 6Õ46öJ&I68D/ x,
6=BD46QXV$4 6Ô>68 47RK?78AÔä-0R ¾^¾ LNV&;MF6 ¾ LMV ¾ VY8$=O6 6 ¾ RL 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?VKBNRBN<>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:ÔH6PBLMRJRK<ûÔ R\X6=BBLN66? QIJ$LN6o4^RK?78q;@6 K6?LN6
464WO6 XRL
;MF668NBQBL 68Õ<HX ¾ VKLMBNRK?Bö8NRK?78 6=BLM68 ILQ4|-0I^?L$O6 8NI7Ô>BNRB ¾ LMV ^RK?B Ûܳ?~VYIBLN6 ¾ LNV ¾ VY86=LQI7?6
?VYIJK6ÔûÔ>6DX=O6 BNFV&46 ¾ VY862468 ¾ LNV ^Ô 6X£68 ^?7RK?7;=<>6=L
8Þ6=BWF$I7XRK<û?78ßY6ÔHÔH6D?³O6 ;@68N8N<>B6qI7?6DLN6;@VY?78BLMI^;@BN<>VY?
4682R ¾7¾ ÔH<û;=RBN<>VY?786@Ý<H8BNRK?B68D6=Bq<HX ¾ ÔH<HG$I6öI7?6 VKLMXRBN<>VY?x8 ¾ O6 ;=< ^G$I6o468:I7BN<HÔH<H8NRB6I7LM84VY?B:Ô>682F7RS
^<>BNI^468³4762BL
RJRK<HÔ ¾ 6IJK6?BLMRK4^<H;=RKÔ>6X£6?B;MF7RK? K6=LA8MRK?78VYI ^ÔH<H6=LWÔ>6q;@V IBA46 R 7LM<H;=RBN<HVY?\4768³VYI7BN<HÔH8
RK8N8V&;=< O6 8
,`R\476I&Ý&< 6X64WO6 XRLM;MF6¬8NILöÔHRKG$I6ÔHÔ>6o46£?VYX ^LN6I&Ý{BLMRJRKIÝ ÖYØ Ø Ö Ö
VY?B
=O6 BQO6 X£6?³O6 8;@68³46=L
?7< 6=LN68WRK?7?³=O6 68 ¾ LNVYX£6IB³ÔHRQ4W=O6 LM<>JRBN<>VY?\46:8 ¾ O6 ;=< ^;=RBN<>VY?78 R ¾ RLNBN<>LW46:47< D=O6 LN6?BN8
47<HR KL
RKXX£68 xC*6=B / {, ,Û68 RJRK?BNR K684|-0I7?76WB6ÔûÔ>6AR ¾7¾ LNV&;MF768NVY?B£=O6 J&<H46?BN8ßYÔHRöXV$4WO6 ÔH<û8NRBN<>VY?
68B.L&O6 RKÔû<H8=O6 6D6?¬46FVKLM8.4^I£;=RK4LN6D46:ÔHRöX =O6 BNFV&46 VKLMX£6ÔHÔ>66=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?VKBNRBN<>VY? ?|- 68B ¾ RK8qVKL
<>6?B$=O6 6@SV 6=BPXRK<H8öX£V&47I7ÔHRK<>LM6 ¾ RLQ;@VY?78$O6 G$I6?BÕÔHRb8 ¾ O6 ;=< ;=RBN<>VY?
R 8BLMRK<>B6q6? K6?747L$=O6 6 R ¾ RLNBN<>L4|-0I7?6qX£V&4³O6 ÔH<H8NRBN<>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 ;=< ;=RBN<>VY?Q4WO6 ;@VYI7ÔHRK?B`476.ÔHR4³=O6 LM<>JRBN<>VY?ö68BÛ<û?7;@VYX ¾ Ô 6=B6 ;=RLÔ>68|X=O6 BNFV&468E8N6X<uS VKLMX£6ÔHÔ>68
?76 ¾ VY8M8 646?B ¾ RK8AÔ>68D?VKBN<>VY?7846P8NI ^8BN<HBNIBN<>VY?78 Ô RKI747LMR£4VY?7;öX£V&47< ^6=LAI7?6Q8 ¾ O6 ;=< ;=RBN<>VY?
50
ÖÙ
#O6 ?W=O6 L&=O6 6*RKIBVYXRBN<HG$I6X£6?B ¾ I7<û8 ¾ VYILM8MI7<>J$LN6 ¾ RL¼Ôä-UO6 ;@LM<HBNILN6~468bLMR*)?76X£6?BN8b6=B ¾ LMVYIJK6=L
;
F7RK;=I7?6P468AXRK;
F7<H?68$
TW6;=<Õ;@VY?747I7<>B R ¾ 6?78N6=L¼GI|-0I^?6 ¾ RLNBN<>6 4768¼;@VY?7;@6 ¾ B6IL
8{;MF7VY<H8N<>LMR*4|-UO6 ;@LM<HLN6¶47<>LM6;@B6X£6?Bx868
8 ¾ O6 ;=<27 ;=RBN<>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Ô>684V$;=I^X£6?B6=L Þ
6@Ý ¾ LM<HXO6 8o47RK?78oI7?6?7VKBNRBN<>VY?*46¬X£V&4WO6 ÔH<H8MRBN<>VY?)K# LMR ¾ F7<HG$I646 ¾ ÔHI78Q6? ¾ ÔûI78ÕIBN<ûÔH<H8$=O6 647RK?^8PÔ>6\4VS
XRK<H?76A46DÔHRö;@VY?7;@6 ¾ BN<>VY?¬476AÔ>VY# <H;=<>6ÔH8 ;- 68BS R S47<>LN62/Ux
,lGI7< Y' RKI46Ô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?JRLM<HRK?BN8 46ö;=ÔHRK8M86 Þ6=B468 ¾ 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 XRLM;
F68A6@Ý<H8B6?B
¾ L&O6 ;=<H8N6=LDÔ>68J&I68D/?x
47RK?78ÕÔ>64VYXRK<H?76476ÔHRh4W=O6 LM<>JRBN<>VY? 4Û-0/Ux
, JK6=LM8:!UE' RKI7;=I7?6?Û- 6@Ý&<H8NB647RK?78öÔä-0RKI7BLN686?78$_2. RK?^8QÔ>6
;=RK4LN64Û-0I7?64³O6 XRLM;MF76<>B=O6 LMRBN<>JK64764W=O6 JK6ÔHV ¾7¾ 6X£6?Bö6ÔûÔ>6o8N6=LMRK<>Bö<H?747<û8 ¾ 6?78NR^ Ô>6Õ6=B ¾ 6=LMX6=BBLMRK<>BöÔHR
BLMRf;=Y R^ <ûÔH<>BQO6 6?BLN6ÕÔHR£X£V&4WO6 ÔH<H8MRBN<>VY?b6=BDÔHR£8 ¾ O6 ;=<D^7 ;=RBN<>VY?
"! $
!
!
# !
!
"
$ !
A:VYI78;@VYXX£6?7;@6=LMVY?78 ¾ RLI7?6U7L$6= JK6 ¾ L$O6 86?BNRBN<>VY?¼46qÔHRÕ?7VKBNRBN<>VY?h/Ux,6=B46q8VY?bÔHRK?8#YR#K6ö46
468N;@L
< ¾ BN<>VY?4768³;@VY?BLMRK<H?B682ß - T, >k ¾ LE6 8I7?=O6 BNRB462Ôä-0RLNBW4³O6 47<
O6 ¾ LM<H?7;=< ¾ RKÔ>6X£6?BXRÕ
ÔHRP4³=O6 LM<>JRBN<>VY?
46WJ$I768`/?{
,¼6?P8 ¾ O6 ;=<D^7 ;=RBN<>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<û8I7?6Q8 ¾ O6 ;=<27 ;=RBN<>VY? !U( TW6=BB6P;@VY?BLM<D^ IBN<>VY?b68B:4³O6 ;@LM<>B6P4^RK?78AG$I7RBLN6
;MF^R ¾ <>BLN68$_:
. 6Iݶ;MF7R ¾ <HBLN68QBLMRK<HB6?Bo46ÔHR ¾ RLNBN<>68BNRBN<ûGI6¬468Õ8 ¾ O6 ;=<D^7 ;=RBN<>VY?78P/Ux , ,Û6 ¾ LM6X<>6=L
;MF^R ¾ <>BLN6BL
RK<>B6=LMR{476Ôä- 6@Ý&BLMRK;@BN<>VY?¶47647<HRK# LMRKXX£68Õ46¬;=ÔHRK8N868P8NI7<>J&<Þ47I 46IÝ&<Q6 X£6\46BLMRK4^I7;@BN<>VY?
468 ¾ LNV ¾ LM< =O6 B$O6 8<û?JRLM<HRK?B68 i
! 6? ;@VY?BLMRK<H?B68 - T, R^7 ?46 ¾ L&O6 ;=<H8N6=LÔ>6¼47<HRK# L
RKXX£6¼46¼;=ÔHRK8M868$
,Û68W46I&Ý;
F7R ¾ <>BLN68W8NI7<HJRK?B 4W$O6 ^7 ?7<HLNVY?B³Ôä- 6@Ý$BL
RK;@BN<>VY?b468 4VY?^?³=O6 68W4P$ ?7RKX<HGI768.47I8$ 8B$6 X£6 ¾ RLWÔ>68
47<HRK# L
RKXX£68q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78$Û' 4768$O6 G$I6?7;@66=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# LMRBN<>VY?x468AX=O6 BNFV&468m0 VKLMX6ÔHÔ>686=BD8N6X<uS 0 VKLMX£6ÔHÔ>68 ¾ RLD6@Ý$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 6X68o4Û-0<H? VKLMXRBN<>VY?
47RK?78oÔ>6 ^IBo4|- 6?V 7B6?7<>LI7?6\468N;@LM< ¾ BN<>VY?¶X£VY<û?78PRKX ^< YI 6\6=B ¾ ÔHI78P8 &?BNFW=O6 BN<HG$I6bGIÛ- 6?ÔûRK? YR K6
?7RBNILM6Ô :VYI78 ¾ VYIJKVY?^8:;=<>B6=LqG$I6ÔHG$I68AX=O6 BNFV&468q;@VYXX£6\ßÜ × 3 K Ö xC KÚ 6=B
/ {, 26I&ÝhX£V&4 6Ô>68DRKI¼X<H?7<HXoI7Xi8VY?BBVYI VYI7LM8 ¾ LNV ¾ VY8$O6 8 ¾ RLD;@68DX=O6 BNF7V$468Õß
, -0I7?h4WO6 ;@LM<>B:Ôä-0RK8 ¾ 6;@BD8BNRBN<HG$I6 7;- 68BS RS4^<>LN6PÔûR£8BLMI7;@BNILM6Q468A4VY?7?W=O6 68D6=BDÔ>6IL
8LN6ÔHRBN<>VY?78
, -0RKIBLN64WO6 ;@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 &?7RS
X<HGI76
TW6=LNBNRK<û?68.X=O6 BNFV&468.;@VYX ¾ VKLNB6?B 4|-0RKI7BLN68.X£V&4 6Ô>68.;@VYXX6D47RK?78.ÔûR2X=O6 BNF7V$46 {C V IÔ>6AX£V&4 6Ô>6
VY?7;@BN<>VY?7?6Ô ¾ 6=LMX6=BA46Q4³O6 ;@LM<>LN6PÔHRBLMRK?78 VKLMXRBN<HVY?h468AJRKÔ>6ILM84768A4VY?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?VKBNRBN<>VY?68NB!?W=O6 6A476ÔûR I78N<>VY?46 ¾ ÔHI^8N<>6ILM8
X=O6 BNFV&468.V 6=BN8ÞB6ÔûÔ>68.G$I66?BLM6DRKIBLN68 {C KÚ WVV&;MF =Ø 6=B
9Ü Ô7Rx=O6 B:O6 ?VKLMXRKÔH<H8$O6
6;@B xRK?7R K6X£6?B 2LMVYI ¾ ³,E6{;MF7R ¾ <>BLN6
¾ VYILÔHR ¾ LN6X< 6=LN6 VY<H8£6? ÙKÙ ¾ RL¬Ô;@VYXX£6?^;@6 ¾ RLI7?6 ¾ L&O6 86?BNRBN<>VY? O6 ?W=O6 LMRKÔH6{47IÔHRK? YR K6 ¾ I7<H8o;@VY?BN<H?$I6 ¾ RLÔHR ¾ L&O6 8N6?BNRBN<>VY? 468
47< D=O6 LN6?BN8D47<HR KL
RKXX£686=BD8N6öB6=LMX<H?6 ¾ RLDÔ>6QÔHRK? YR K6 T,
0
QBA
? = + B.
.
b
! !
&
*
?
: 2# 4
!
"&
!
$
N
c ?
`, RP?VKBNRBN<HVY?¬/ {, ¾ 6=LMX£6=BWÔHRÕ;@VY?^8BLMI7;@BN<>VY?\462X£V$4 6ÔH68 ,`RPX£V&4WO6 ÔH<H8MRBN<>VY?68BWL&O6 RKÔH<H8$=O6 6 RoÔä-0RK<H46
464^<HR KLMRKXX£68 E,Û68P47<HR KLMRKXX68 ¾ 6=LMX£6=BB6?BPI7?76J$<û8NI7RKÔH<H8MRBN<>VY? KLMR ¾ F7<HG$I647I 8 &8B 6X£6 / x,
47<H8 ¾ VY8N6476?6I 47<HR KLMRKXX68Q8NRK;MF^RK?BÕG$I6;
F7RK;=I7? 4Û- 6?BLN66I&Ý ¾ VY8M8 646I7?L VYÔH6 ¾ L$O6 ;=<H8Õ4^RK?78öÔHR
X£V&4³O6 ÔH<H8NRBN<HVY?h47I¼8 &8B 6X£6ß
f _+ + " "x a +7##"$# ß ÔÇLN6 ¾ L&O6 86?B6ÕÔ>6847VY?7?³=O6 68A47IbX£V&4 6Ô>6 ¾ RLNBN<H6q8NBNRBN<HGI76 UÔ RK<>B
R 8BLMRK;@BN<>VY? 4768 ¾ RLNBN<>68Õ4 $?^RKX<HG$I68q6=BQB6X ¾ VKLN6ÔHÔH68 UÔ ¾ 6IB 6=BLN6\<H?78BNRK?7;=< O6 R¼BLMRJK6=LM8PI7?
4^<HR KLMRKXX£6Q4Û- V 6=BN8 UÔÇ68NBD;@VYX ¾ VY8P
O6 46Q;=ÔûRK8N8686=BDRK8M8V$;=<ûRBN<>VY?78
f _+ + " t Z^] "'# ß ÔLN6 ¾ L&O6 86?B6{I7?*47<HR KL
RKXX£6h46¼;=ÔHRK8N8N68£<H?78BNRK?7;=< =O6 68 2RK?^8;@6
4^<HR KLMRKXX£6WÔ>68!;=ÔHRK8N868!46=J&<>6?7?76?B ¾ ÔHI78N<H6ILM8ÇV 6=BN86=B!ÔH68`RK8N8NV$;=<HRBN<HVY?78 ¾ ÔHI78N<H6ILM8|ÔH<>6?^8Û6?BLN6
V 6=BN8 Ô;@VKLMLN68 ¾ VY?74 R:I7?o47<HR KL
RKXX£646W;@VYÔûÔHR ÇVKLMRBN<>VY?o8NRK?78Ô>68!<H?B6=L
RK;@BN<>VY?78!XRB=O6 LM<HRKÔH<û8=O6 68
¾ RLD468AX£68M8NR K68
f _+ + " "hY+7# t [ '_ a _#+'_ Z % ß Ô ¾ 6=LMX6=BW462XRB=O6 LM<HRKÔH<û86=L6=BW8BL
I7;@BNILN6=LÔ>68 Ç68VY<H?78
4768IBN<HÔû<H8NRB6ILM847I 8 $8NB 6X6 ÔA<H46?BN< 76¼ÔH68RK;@B6ILM8 IBN<HÔH<û8NRB6ILM8£47I 8 $8NB 6X6 £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 6X6 &, -0RK;@B6IL;@VY?78NI7Ô>B6DVYIX£V&47< 76Ôä-U=O6 BNRB47I8 $8B 6X£6 &,Û6:8 $8NB 6X6
L&O6 R Y<HBÕRKI&Ý~46XRK?7468ö476Ô-0RK;@B6IL ¾ RLQÔ>68Õ47< D=O6 LM6?BN8Q;=RK8Õ4|-0IBN<HÔH<û8NRBN<>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?B46öL$O6 RKÔH<H8NRBN<HVY? ,Û68A47<ûR KLMRKXX£68A476q;@VYX ¾ VY8MRK?BN8:8VY?BA4768J$I7688BNRS
BN<ûGI68D46QÔä-0<HX ¾ Ô
O6 X£6?BNRBN<HVY?h468A8 &8B 6X£682GI7<|XVY?BLN6?BDÔ>6Q;
FVY<uݼ46öL&O6 RKÔH<û8NRBN<>VY?
f _+ + " " " !aZ _" "&%(' ß UÔDX£VY?BLM6{ÔHR~47<H8 ¾ VY8M<>BN<>VY? ¾ F &8N<HG$I6b6=B¬XRB=O6 L
<>6ÔHÔ>6¼G$I7<
;@VYX ¾ VY8N6lÔ>6x8 $8NB 6X6l6=BbÔHR¶L$O6 ¾ RLNBN<>BN<>VY?©468¬;@VYX ¾ VY8NRK?BN8b8NI7L¬Ô>6lXRB=O6 LM<>6Ô ,Û68¬LN68N8VYI7LM;@68
XRB=O6 L
<>6ÔHÔ>68o8VY?BÕLN6 ¾ L&O6 8N6?B$=O6 688VYI^8 VKLMX£6\46?V$6I7478 `Ô>68NG$I6ÔH8Õ8NVY?Bo;@VY?7?6;@BO6 86?BLM6¬6I&Ý
¾ RL2I7?x8NI ¾7¾ VKLNB:46P;@VYXXoI7?7<û;=RBN<>VY?¼6=BqÔ>6ILM8:;=RLMRK;@B=O6 LM<H8BN<ûGI68 ¾ 6IJK6?B 6=BLN6 ¾ L&O6 ;=<û8=O6 68 ETW68
4^<HR KLMRKXX£68ALN6 ¾ L&O6 86?B6?B2Ô>6Q4WO6 ¾ Ô>VY<H6X£6?B:468A;@VYX ¾ VY8NRK?BN8D8NI7LAÔ>6Q47<H8 ¾ VY8N<HBN< ÛXRB=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=LMX6=B³46q8 ¾ O6 ;=< 76=L46qXRK?7< 6=LM62BL 68 ¾ L$O6 ;=<H86qÔä- VKLM4LN626=BÔ>68
;@VY?^47<>BN<>VY?784Û- 6?JKVY<`468AX£68N8MR K68D46Q;@VYXXoI7?7<û;=RBN<>VY?h6?BLN6ÕÔ>68V 6=BN8
f _+ + " " # "$ [ "$%`Y" ß ÔWLN6 ¾ L&O6 86?B6¼Ô>68£;@VYXXoI7?7<û;=RBN<>VY?78o6?BLM6¼Ô>68oV 6=BN886Ô>VY?
I^? ¾ VY<H?B2476PJ&I6oB6X ¾ VKLN6Ô 2RK?^8ö;@64^<HR KLMRKXX£6 (VY?~X£6=BqÔä-0RK;=;@6?BQ8NILöÔHR\;MFLNVY?7VYÔ>V Y<>6468
6?JKVY<H846öX£68M8NR K68 ^, - VKLM4LN6q4|- 6?JKVY<Û468X£68N8NR K68A68BA4³O6 ^?7< ¾ RLA8VY?b6X ¾ ÔHRK;@6X£6?B8NILÔHR
Ôû< Y?6ö46öJ&<>6Q468V 6=BN8DG$I7<|;@VKLNLM68 ¾ VY?74hRKI¼B6X ¾ 8AGI^<|8=- O6 ;@VYI7Ô>6
f _+ + " t "'+'# ' +^%`#_'_ Z %`# ß UÔ(LN6 ¾ L$O6 86?B6QÔH68WXV$47< ^;=RBN<>VY?78W46öÔä- =O6 BNRBD4|-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 6X6
TVYXX£6³8NVY?o?7VYX5Ôä-0<û?747<HG$I6ÞÔ>6³4^<HR KLMRKXX£6W4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?7868B!;@VYX ¾ VY8O6 4|- =O6 BNRBN8Þ6=B4Û-0RLM;=8
VKL
<>6?B$O6 82R ¾7¾ 6Ô
O6 8BLMRK?78M<>BN<>VY?78G$I7<|4W=O6 B6=LMX<û?6?B:Ô>68;MF7RK? K6X£6?BN824|-U=O6 BNRBN8
f _+ + " t +7K'_ E_' "$# ß.,Û6¼47<HR KL
RKXX£6h4|-0RK;@BN<>J&<>B¼
O6 68BI7?76\JRLM<HRK?B6¼47I*47<HR KL
RKXX£6
4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78 !Ü ? 6 (6=BRKI ;@VY?BLMRK<>LM6\47I 47<HR KLMRKXX£6¬4|-U=O6 BNRBN8SBL
RK?78N<>BN<>VY?^8oG$I7<.4WO6 ?7<>B
ÔH6o;@VYX ¾ VKLNB6X6?BQ4|-0I^?{V 6=BöVYI;@VYX ¾ VY8NRK?B ÛÔ>6o4^<HR KLMRKXX£64|-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ÛÔHR8MI7<>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 KLMRKXX£68|?WO6 ;@68M8NRK<>LN68
RÔä- 6@Ý&BLMRK;@BN<>VY?{468J&I68A/ {,46 ¾ I7<û8WI^?6Q8 ¾ O6 ;=< ^;=RBN<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 KLMRKXX£6q46q;=ÔHRK8N868X£VY?BLN6öI7?62J$I7628BNRBN<ûGI6q47I\8 &8B 6X£6 UÔ68BÔ>6q;@VY?78BN<>BNI^RK?BÔ>6 ¾ ÔHI78
IBN<HÔû<H8DO6 46qÔHRQJ&I628BNRBN<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?BLN6G$I6ÔHG$I68qRK8 ¾ 6;@BN8Õ4 &?7RKX<ûGI68q47I8 &8B 6X£6\;@VYXX£6Ô>68öX=O6 BNF7V$468ÕXRK<H8Q<HÔ!?|- 6?~4WO6 ;@L
<>B
¾ RK8AÔH6Q;@VYX ¾ VKLNB6X£6?B Ô|;@VY?BN<>6?BA6?BLN6PRKI7BLN68AÔ>68\O6 Ô O6 X£6?BN8q8NI7<>JRK?BN8qß
ÔH68A;=ÔHRK8N868D;@VYX ¾ VY8=O6 68:4|-0RBBL
< ^IBN86=B246QX =O6 BNFV&468
ÔH68 `O6 ?³=O6 LMRKÔH<H8NRBN<HVY?78
ÔH68AR KL$O6 YRBN<>VY?78 Ç;@VYX ¾ VY8N<>BN<HVY?786=BDRK8N8V&;=<HRBN<>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 X68{4VY?7?W=O6 68{6=B{Ô>68¼XM6g X68
;@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\ÔûRI0 VKLMX£64|-0I7? LN6;@BNRK?8Y# Ô>6~47<HJ$<H8$x
O6 6?©BLNVY<H8b;@VYX ¾ RLNBN<ûX£6?BN8EW
,E6;@VYX ¾ RLNBN<HX£6?B
8NI ¾ =O6 L
<>6IL¼;@VYX ¾ LM6?74 Ô>6 ?VYX 476 ÔHR*;=ÔHRK8N86D
,E6 ;@VYX ¾ RLNBN<ûX£6?BxX O6 47<HRK? ;@VY?BN<>6?B{Ô>68¼RBBLM<D^ IBN8$
,Û6x46=LM?7<>6=L<HB6X¥LN6 ¾ L&O6 86?B6xÔH6¼;@VYX ¾ VKLNB6X£6?B4|-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Û-0RBBLM< ^IBN8A6=BD46QX=O6 BNFV&468
$7
c
2'
,`RxJ&<H8N< ^<HÔH<>B$
O6 4768£RBBLM< ^IBN8P6=BX=O6 BNFV&46868B4WO6 ^?^<>6 ¾ RLÔH68PBLMVY<H8£;=RLMRK;@B 6=LN688MI7<>JRK?BN8\ß- SN- o-|6=B- b- Û,Û6;=RLMRK;@B 6=LN6l- SN- ('$ *& Q8N< Y?7< 76oG$I6Ôä-0<HB6X 68B ¾ LM<>J.
O6 ;- 68BS RS47<>LM6GIÛ-0<HÔ68BöJ$<û8N< ^Ô>6
I7?7<ûGI6X6?B RhÔä-0<H?B=O6 LM<>6ILö46ÔHRb;=ÔHRK8M86 Û,Û6;=RLMRK;@B 6=LN6x- o- ( " 28N< Y?^< 76RKI ;@VY?BL
RK<>LN6G$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 RBLMRJK6=LM8:I7?6 O6 ?W=O6 LMRKÔH<û8NRBN<>VY?
,E68ERBBLM< IBN8Û8VY?B`468 ¾ LNV ¾ L
<
=O6 BO6 8?VYXX=O6 684|-0I7?76.;=ÔHRK8N86 ÔH8Û4WO6 ;@L
<>JK6?B!Ô>68Û47VY?7?³=O6 68`4768|V 6=BN8
?lV 7BN<>6?B ¾ RLö;@VY?7;=RBO6 ?7RBN<>VY?¶476ÔH6IL:JRKÔ>6IL
82Ô- =O6 BNRBQ476oÔä- V 6=Bö<H?78NBNRK?7;=<
o
O6 476ÔûR¬;=ÔHRK8M86 UÔH828VY?B
4WO6 ;@LM<>BN8 ¾ RLDI7?76q;
F7R H?6P46Q;=RLMRK;@B 6=LN68qGI^<|;@VYX ¾ LN6?74{Ô>68?VKBN<>VY?78D8NI7<>JRK?B68Qß
J$<H8M< ^<HÔH<HBO6 ä?VYX ß B ¾ 6 qJRKÔ>6I7L <H?7<>BN<ûRKÔ>6
/2?£RBBLM< ^IB!68BÞV ÔH< YRBVY<>LN6X6?BÞ?VYXXO6 ¾ RL.;@VY?BLN6A8MRqJ$<H8M< ^<HÔH<HBO6 8VY?B ¾ R K6A6=B.8MRqJRKÔ>6I7L!<û?7<>BN<HRKÔ>6
8VY?B RK;=I7Ô>BNRBN< 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 ¾ RLNBN<û;=< ¾ 6?B ¾ RK8 R£ÔHR468N;@L
< ¾ BN<>VY?\47Ib;@VYX ¾ VKLNB6X£6?BA468V 6=BN8 RBLMRJK6=LM8AÔ>6ö47<HR KL
RKXX£6ö46
;=ÔHRK8N8N6 ^,Û68AX=O6 BNF7V$468:8VY?BD8 ¾ O6 ;=< =O6 68 ¾ RLDÔ>6 ¾ LNVKBVKB ¾ 6Õ8NI7<>JRK?B2ß
ßB ¾ 6
J&<H8N< ^<HÔH<>B$O6 ä?VYX ¾ RL
RKX 6=BLN6 ß B ¾ 6 2JRKÔ>6IL ¾ RL 4³O6 RKI7B
C`VYIBo;@VYXX£6 ¾ VYILoÔ>68oRBBLM< ^IBN8oÔ>6¬B ¾ R K6h46¬ÔHRxJRKÔ>6ILP476¬LN6=BVYI7L `Ô>6¬B ¾ R K6b6=B£ÔHR¼JRKÔ>6IL ¾ RL
4WO6 RKIBh468¬4^< D=O6 LN6?BN8 ¾ RLMRKX 6=BLN68h?76x8VY?B ¾ RK8¬V ÔH< YRBVY<>LN68 ³Ü ? VYIBLN6I7?6lX =O6 BNFV&46 ¾ 6IB\?6
¾ LN6?^4LN6öRKI7;=I7? ¾ RLMRKX 6=BLN6Õ?7<ÇLM6=BVYILM?6=LD476öJRKÔ>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<û8NRBN<>VY?h68BI7? ¾ LNV&;@68N8NI78WG$I7< ¾ 6=LMX6=B³46q4³$O6 7^?7<>L4684VY?7?W=O6 68W6=BI7?\;@VYX ¾ VKLNB6X£6?B
;@VYXXoI7?6?BLN6 ¾ ÔHI78N<H6ILM8!;=ÔHRK8N868E Ü ÔHÔH6 ¾ 6=L
X£6=B.46D4W$O6 7^?^<>L I7?6:;=ÔHRK8N86D476 ^RK86DR ¾^¾ 6Ô =O6 62;=ÔHRK8N86 " [!RLÔHRÕ8NI^<>B6:86I^Ô>68³ÔH68³47<2Db =O6 LN6?7;@68W6?BLN6qÔ>68³;=ÔûRK8N868 . R ¾^¾ RLMR g>] BLNVY?B47RK?78 ÔH68³;=ÔHRK8M868 . $,E68
JRLM<HR^ Ô>68³6=BX =O6 BNFV$47684VY?BÔHRPJ$<û8N<2^ <HÔû<>BO6 68B4³O6 ;=ÔHRL$=O6 6 (' & Q8N6=LNVY?BJ&<H8N<2Ô>68.I7?7<ûGI6X6?BW47RK?78
ÔHRQ;=ÔûRK8N86m7 ÔHÔ>6>!
[ RL;@VY?78O6 GI76?BÔ>6ABd ¾ RK# 62468WRBBLM<2 IBN8$' ¾ RL
RKX 6= BLN68W6=B³JRKÔ>6ILM8.LN6=BVYILM?W=O6 68 ¾ RLWÔ>68
X=O6 BNFV&468$' Ô>68 ¾ LNVKBVKBd ¾ 6846:X=O6 BNF7V$468E&' ÔH68³;@VY?BLMRK<H?B68 JRKÔH6ILM8 ¾ RL4W$O6 0 RKIBW6=B³JRKÔ>6IL
8³<H?^<>BN<HRKÔ>68 6=BÕÔ>68ÕRK8N8V&;=<HRBN<>VY?78öLM6ÔHRBN<>JK68 R{
ÔHRh;=ÔHRK8N86 " 8VY?BPXRK<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<H8MRBN<>VY?78 VY? ¾ RL
Ô>6ÕRKÔ>VKLM8:46V# O6 ?W=O6 LMRKÔH<û8NRBN<>VY?XPI^Ô>BN< ¾ Ô>6
,ERN`# O6 ?W=O6 L
RKÔH<H8NRBN<>VY?l68BDLN6 ¾ L&O6 86?B=O6 6 ¾ RL:I7?hBL
<HRK?8Y# Ô>6Õ8MILD8VY?{6@Ý$BL&O6 X<HB
O6 47I¼;>VKg B$£
O6 46ÕÔûR;=ÔHRK8N86 " 6=BDI7?hRL
;QGI^<Ç68BALN6ÔH< O6 R
ÔHR£;=ÔHRK8N86 7B# Ö Ú ? D D * 1 9 1 9 1 1 * E ( ( e ## Z _+7'_ Z %
/2?6RK8N8V&;=<HRBN<>VY? LN6 ¾ L&O6 86?B6¬I7?76oLM6ÔHRBN<>VY?~6?BLN646IÝxVYI ¾ ÔûI78N<>6IL
8:;=ÔHRK8M868Q4|- VF 6=BN8$ 9<ÞÔä-0RK8S
8V&;=<HRBN<>VY? LN6ÔH<>6¬46I&ݶ;=ÔHRK8N8N68$`' VY? ¾ RL
Ô>64|-0RK8N8NV$;=<HRBN<HVY?I^ <û?7RK<>LN6Û' 6ÔûÔ>668BoLN6 ¾ L&O6 8N6?B$=O6 6 ¾ RLI7? BLMRK<>B
+Ö
MERE
FILLEB
FILLEA
T{O6 ?W=O6 L
RKÔH<H8NRBN<>VY?
Ö Ú
7P# = 6?BLN6:Ô>68³46I&Ý;=ÔHRK8N8N68
Ö 9&<^Ôä-0RK8N8V&;=<HRBN<>VY?£LM6ÔH<>6ABLNVY<û8 ;=ÔHRK8N8N68.VYI ¾ ÔHI78ÞVY? ¾ RLMÔ>6A4|-0RK8M8V$;=<ûRBN<>VY?
?&SRK<>LM6 `6ÔHÔH668BLN6 ¾ L&O6 8N6?B$=O6 6 ¾ RLI7?Ô>VY8NRK? K6bLN6Ôû<
O6 Rl;MF7RKG$I6h;=ÔHRK8N8N6 ¾ RL£I7? BLMRK<>B !,.-0<û?B6=LM8N6;@BN<>VY?
6?BLN62Ô- 6@Ý$BL&O6 X<HBQO6 4Û-0I7?6:RK8M8V$;=<ûRBN<>VY?6=BI7?62;=ÔHRK8N86 ¾ 6IB ¾ VKLNB6=LI7?¬?VYX G$I6qÔä- VY?\R ¾7¾ 6ÔHÔ>6AL VYÔH6 26
¾ ÔHI^8WI^?6QRK8N8V&;=<HRBN<>VY? ¾ 6IB;@VYX ¾ VKLNB6=L:468ARBBLM< IBN8AG$I6QÔä- VY?hR ¾7¾ 6ÔHÔ>6öRBBLM< ^IBN846QÔH<H6? 2RK?^8A;@6
;=RK82VY?;@L$=O6 6I^?6P;=ÔHRK8M86PG$I7<?6 ¾ VY8N8 646 ¾ RK8246?VYX G$I6oÔä- VY?{LM6ÔH<>6 R¬Ôä-0RK8N8V&;=<HRBN<>VY? ¾ RLqI7?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?6PRK8M8VS
;=<HRBN<>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ÔHRBN<>VY?{RJK6;PI^?hVF 6=B:46ÕÔ-0RKIBLN6Õ6@Ý&BL&O6 X<>B$
O6 46ÕÔä-0RK8M8V$;=<ûRBN<>VY?PÜ ÔHÔH6ö68B:4W$O6 7^?^<>6 ¾ RL2I7?h6?BN<>6=L
VYI¼I7?{<H?B6=LMJRKÔHÔH6q8NVYI78AÔ>6850 VKLMX£68D8NI7<>JRK?B68Qß
A V@Ii A '
A:2 VI A ' 'S ' &6=BX A
A:2 ÕV@IL A ' 8NRK;
F7RK?B2GI76QÔ>68A?VKBNRBN<>VY? Ø 2 Õ6=BP8NVY?BhO6 G$I7<>JRKÔ>6?B68
Agglomération
Capitale
Ville
1
*
1
1
Pays
Ö
= T¼O6 ?³=O6 LMRKÔH<H8MRBN<>VY?'RK8M8V$;=<ûRBN<>VY?h6=BDXoI7Ô>BN< ¾ ÔH<H;=<>B$O6
? D ? '9 1 46!' * 1 ,`R£GI7RKÔû<27^;=RBN<>VY?b4|-0I7?76qRK8M8V$;=<ûRBN<>VY?'7RKI78N8M<|4³O6 ?VYXX=O6 6QLN68NBLM<H;@BN<>VY?h4|-0I^?6öRK8N8V&;=<HRBN<>VY?'7;@VY?78M<H8B6
R{
8$O6 ÔH6;@BN<>VY?7?6=LI7?¶8NVYI78S6?786X:^Ô>6¬4|- VF6=BN8 ¾ RL
X<.Ôä- 6?78N6X^ÔH6468PVF6=BN8oG$I7< ¾ RLNBN<û;=< ¾ 6?B Rl I7?6
RK8N8V&;=<HRBN<>VY?@!
,`RlLN68BLM<H;@BN<HVY? 68NB£L$O6 RKÔH<H8$=O6 6{RKIX£V K 6? 4|-0I7? BNI ¾ ÔH6\4|-0RBBL
<2^ IBN8 ¾ RLNBN<û;=I7ÔH<>6=LM8E`' R ¾7¾ 6Ô O6
G$I7RKÔH<2^7 ;=RBN<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< ^;=RBN<>VY?b4|-0RK8N8V&;=<HRBN<>VY?
27 $7
F
'
, -0<H?78BNRK?7;=<ûRBN<>VY?b4|-0I7?6qRK8N8V&;=<HRBN<>VY?hG$I7RKÔH< =O6 6ö4WO6 ^?^<>BWÔH6q?7VYX 4 68WV 6=BN8D8VYILM;@6q6=BA468BN<û?7RBN<>VY?
6=B³ÔûRöJRKÔH6IL³47IGI7RKÔû< ^;=RBN< :<û?78N< Y;
F7RKGI76:<H?78NBNRK?7;@6D46DÔûRQ;=ÔHRK8N86 RK;=;@VYX ¾ R Y?W=O6 6Q476DÔHRöJRKÔ>6ILW47I
27 20 k Q'
A
'
#
++
27 D0d' 27
N
@
27
:
E ( E e ^Þ" +'_ Z %
/2?6QRK# L&$O6 Y# RBN<>VY?x68BAI7?h;=RK8 ¾ RLNBN<H;=I7ÔH<H6=LW4|-0RK8M8V$;=<ûRBN<>VY?bVI¼
I7?6ö;=ÔHRK8M86ö68BA;@VYX ¾ VY8$=O6 6Õ46QÔ-0RKIBLN6
Ü ÔûÔ>6ö68BDLM6 ¾ L$O6 86?B=O6 6 ¾ RL2I7?{Ô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Ô>6LN6 ¾ L$O6 86?B6qI7?6ARK8M8V$;=<ûRBN<>VY?¬RK8$ X=O6 BLM<ûGI6247RK?78.ÔûRKGI6ÔûÔ>6AÔä-0I7?6:468 ;=ÔHRK8M868
68Bö;@VYX ¾ VY8NRK?B646£Ôä-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 ¾ RLNBN<H;=I^ÔH<>6=L³4Û-0RK# L$$O6 Y# RBN<>VY?xG$I7<(?³O6 ;@68N8N<>B6PÔä- 6@Ý&<û8B6?7;@6ö46öÔä-0RKIBLN6 ܳÔHÔ>6268B
LN6 ¾ L&O6 8N6?B$=O6 6 ¾ RL ÔHRÕX 6g X£6:8 & X:( VYÔû<H8NRBN<>VY?£G$I6AÔä-0RK# L&$O6 Y# RBN<>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# RBN<>VY?\VYI¬462ÔHRQ;@VYX ¾ VY8N<HBN<>VY?47I;>VKg BQO6 476DÔHRÕ;=ÔûRK8N86
;@VYX ¾ VY8NRK?B6h68B£VYIJK6=LNB6¼4^RK?78£Ô>6846I&Ý*;=RK8£BNRK?747<H8G$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< ^;=RBN< (<H46?BN< 76I7?8VYI78S6?78N6X ^ÔH6o468ö<û?78BNRK?7;@68q46 GI^< ¾ RLMBN<H;=< ¾ 6?B RbÔä-0RK8N8V&;=<HRBN<>VY? Ç,`R
G$I7RKÔH< ^;=RBN<HVY? ¾ RLNBN<>BN<>VY?^?6öÔä- 6?786X ^Ô>6ö4|-0RLNL
<>J.=O6 6Q6=BDL$O6 47I7<>BARK<HB?^8N<ÇÔHR£XPI^Ô>BN< ¾ ÔH<û;=<>BqO6 476QÔä-0RK8N8V&;=<HRBN<>VY?
Moteur
1
Voiture
,+
Ö
#
*
!
!
!
*
# $#
/2?6QR KL&O6 YRBN<>VY?
"! *
"!
8
c 5;
E, 68h47<HR KLMRKXX68¬4|-U=O6 BNRBN8SBL
RK?78N<>BN<>VY?^8¼4³O6 ;@LM<>JK6?B¼I7?6xJ$I6~4 &?7RKX<ûGI6x47I 8 $8NB 6X6 UÔH8\8VY?B
LN6 ¾ L&O6 8N6?B$O6 8 ¾ RLq47682RKI7BVYXRB68 R =O6 BNRBN8 ^?7<û8D;@VYX ¾ VY8$O6 8Q46oBLMRK?78M<>BN<>VY?78 (4|- =O6 J.O6 ?6X6?BN8Õ6=Bq4Û-0RK;@BN<uS
J&<>BO6 8 ^,ER8O6 XRK?BN<ûGI6Õ6=BDÔHR£?VKBNRBN<>VY?x8VY?BD;@6ÔHÔ>68A4768A8BNRB6;MF^RLNBN8:476 :RLN6Ô Ø
$
V7
Ve
$'
+ ? ? . /2? =O6 BNRB68NBWLM6 ¾ L$O6 86?BO6 ¾ RLI^?LN6;@BNRK?8#YÔH6qRKIݬ;@VY<H?78WRLNLNVY?74^<H8UR
Ôä- 6@Ý;@6 ¾ BN<>VY?\468=O6 BNRBN8<H?7<>BN<ûRKI&Ý
6=B7?7RKI&ÝÛ,.- =O6 BNRBo<û?7<>BN<HRKÔ!68BÕLN6 ¾ L&O6 86?BO6 ¾ RLÕI7? 47<û8NGI76?7VY<>LQ6=BPÔ- =O6 BNRB7^?7RKÔ ¾ RLPI7? 4^<H8NG$I6 ¾ Ô>6<H?
6?BVYIL$O6 RL¬I7?©;@6=LM;=Ô>6WÜÞÝ;@6 B~
O6 Ô>68 =O6 BNRBN8h<û?7<>BN<HRKI&Ý6=B 7?7RKI&Ý' ;MF7RKG$I6 =O6 BNRB 6I7B VY8N8O6 46=LbÔ>68
¾
RK;@BN<>J&<>BO6 8:8MI7<>JRK?B68öß
¾
¾
Name of state
Entry / Action
Exit / Action
Do / Activity
On event / Action
Ö
" A:VKBNRBN<>VY?{4Û-0I7?
U
=O6 BNRBD6?x/ x,
¾
+"
S0
...
Sn
Ö
# A:VKBNRBN<>VY?{4|-0I^?h47<HR#KLMRKXX6Q4|- =O6 BNRBN8SBLMRK?78N<HBN<>VY?78
événement(paramètres)[conditions]
/actions
S1
S0
$ ADVKBNRBN<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 BNRB
entry / action
ß^RK;@BN<>VY?¼6@Ý O6 ;=IB$=O6 6LR£
ÔHR£8VKLMBN<>6Õ46QÔä-U=O6 BNRB
exit / action
ß^RK;@BN<>VY?{6@Ý O6 ;=IB$=O6 6 R
;
F7RKGI76V0 VY<û8GI6QÔ- =O6 J.O6 ?6X£6?B2;=<HBoO6 8NILNJ&<>6?B
on event / action
ß7RK;@BN<HVY?¼L&O6 ;=ILNLM6?B6QVYIx8N<2Y# ?7<D^7 ;=RBN<>JK6&' 6@Ý O6 ;=IB$=O6 647RK?^8Ôä- =O6 BNRB
.o-0RKIBLNdo6 ¾ /Ractivity
LNBI7? =O6 BNRB ¾ 6IB;@VY?B6?^<>LAI7?h47<HRK# L
RKXX£6ö4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78:<H?B6=L
?6ö4VY?BAÔ- =O6 BNRBm7^?7RKÔ
4VY<>BL6=g BLN6 RBB6<H?B ¾ VYIL¬6@Ý O6 ;=IB6=L¼BVYIB6 RKI7BLN6xBL
RK?78N<>BN<>VY? 6@Ý&B6=LM?6 R*
Ôä- =O6 BNRB$mq. RK?78h;@6~;=RK8hÔä- =O6 BNRB
6?8#YÔ>V RK?BQÔ>68NVYI78S47<HRK# L
RKXX£668BÕR ¾7¾ 6Ô
O6 8NI ¾ 6=LNS=O6 BNRB$` ,ER¼?VKBN<HVY?~468NI ¾ 6=LS=O6 BNRB ¾ 6IBöRKI78N8M<6=g BLN6
IBN<HÔû<H8=O6 6QÔ>VKLM8NG$I|-0<HÔ(;@VY?BN<>6?B2Ô>6Q47<HRK# L
RKXX£6Q;@VYX ¾ ÔH6=BA4|-0I7?6öJRLM<HR^ ÔH62VYI{4|-0I7?h8 & 8Bc6 X£6
? ? D /2?6bBLMRK?78N<HBN<>VY?68B£LN6 ¾ L&O6 86?B=O6 6 ¾ RLI^?66;MF6{47VY?B£Ôä- VKLM<DY# <H?6\68B£LN6ÔH< =O6 6 R
Ôä-U=O6 BNRB¬8NVYILM;@6b6=B
4VY?BÕÔHR¼4768BN<H?7RBN<>VY? 68BP;@VY?7?76;@B=O6 6IRx
Ôä- =O6 BNRBo;=<2 Ô>6E Ü ÔûÔ>668BP4WO6 ;@VKL&=O6 6 ¾ RLPÔ>6?VYX 46Ôä-U=O6 J.O6 ?76X£6?B
4WO6 ;=Ô>6?7;
F6ILo8NI7<>J&<Õ=O6 JK6?BNI6ÔûÔ>6X£6?BÕ46 ¾ RL
RKX 6= BLN68$`' 476;@VY?747<>BN<>VY?^8ö464³O6 ;=Ô>6?7;
F6X£6?B Y# RLM476 26=B
4|-0I7?76ÕÔH<H8B6Q4Û-0RK;@BN<>VY?78 R
6cÇb 6;@BNI6=LEÇ ,Û68 ¾ RLMRKXM6= BLN68q8VY?B:4WO6 ;@LM<HBN8D6?BLN6 ¾ RLN6?BNF6 8N68$( ,`R;@VY?74^<>BN<>VY?
46A4WO6 ;=Ô>6?^;MF6X£6?B.68B 6@Ý ¾ L
<HX =O6 66?BLM6D;@LNV&;MF6=BN8³R ¾ L$6 8.Ô>6A?VYX 476AÔä- =O6 J.O6 ?6X£6?BW6=B.ÔHRöÔH<H8B64|-0RK;@BN<HVY?78
68BD8$O6 ¾ RL$=O6 6o468ABLNVY<H8 ¾ L&O6 ;O6 46?BN8¼O6 Ô
O6 X£6?BN8 ¾ RLDÔH6Q;=RLMRK;@Bc6= LN6¬- × -2
? ? D 1 9 ! 1 ,`RA;@VY?7;=ILNLM6?7;@6 ¾ 6IB+6=g BLN6.6@Ý ¾ LM<HX=O6 6 8NVYI78Û46I&ÝU0 VKL
X£68E47RK?^8|Ô>68Û47<HRK# L
RKXX£68|4|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78³ß
m2. 68¬JRL
<HR^ Ô>68£47I 8 $ 8NBc6 X6 ¾ 6IJK6?BM6=g BLN6{6? ;@VY?7;=ILNLM6?7;@6{47RK?78;@6x;=RK8I^?6{;@VY?747<HBN<>VY?46
BL
RK?78N<>BN<>VY?b4|-0I^?624768W476I&ÝJRLM<HR^ Ô>68W68B6@Ý ¾ LM<HX=O6 6q6? 0 VY?7;@BN<>VY?b46öÔä-U=O6 BNRBD47Ib47<ûRK# LMRKXX£6q46
Ô-0RKIBLN6¬;@VYXX£6 ¾ VYILoÔ>68QJRLM<HR^ ÔH68 6=B 46\ÔHRi7PY# I7LN6 Ö Ù !
Ü ? 6cÇb 6=B47RK?78ÕÔH647<HRK# LMRKXX£6
X
Y
4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78Q46 Ô>6 ¾ RK8N8NRK# 6476Ôä- =O6 BNRB
Rh
Ôä- =O6 BNRB 68BQ;@VY?747<>BN<HVY?7?³O6 ¾ RL X =
6?{L&$O6 0 =O6 LN6?7;@6 R
Ôä-U=O6 BNRYBq47I{4^<HRK# LMRKXX£6P4|- =O6 BNRy1
BN8SBLMRK?78N<HBN<>VY?7y28246 S`[ VYI7L2G$I6ÕÔHRBLMRK[IN
?78N<>BN<HVY?
x1]
X
476
R
I7<û8N86ö8=- 6@Ý O6 ;=I7B6=LE' <HÔ0 RKIBAG$I6ÕÔä-U=O6 BNRB2;@VYILMRK?BD47Ih47<HRK# L
RKXX£6Q46 8NVY<>B y1 y2 ¾
. 6I&Ý 8VYI78S47<HRK# LMRKXX68 ¾ 6IJK6?B 6=g BLN6 6? ;@VY?7;=I7LNLN6?7;@6*6=B 47RK?78~;@6 ;=RK8¶Ô>6X846I&Ý
x18NVYI78S
Ú m2
4^<HRK# LMRKXX£68\86=LNVY?B¬8M<>BNI³O6 8 R Ôä-0<H?B=O6 LM<>6IL\4|-0I7?i=O6 BNRBh47I 47<HRK# LMRKXX6{4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY? 47I
8$ 8B$6 X£6 7P# Ö =Ø Ö
+#
System
Y
X
OP[IN X = x1]
OP
x1
y2
y1
x2
.2<ûR#KLMRKXX£68A4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78:;@VY?^;=ILNLN6?BN8
Ö Ù
E1
OP
*
!
S0
...
Sn
Sn
.q<HR#KLMRKXX£68D;@VY?7;=ILNLN6?BN8DRKI{86<H?h4|-0I7?©=O6 BNRB
Ö =Ø
S0
...
!
!
!"
E2
! "%
!
,E68Û47<HRK# LMRKXX£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 X68$
;ÔH8:XVY?BLN6?BöÔ>682<H?B6=L
RK;@BN<>VY?7826?BLM¾ 6oÔ>682VF6=BN8$Ç,ER\LN6 ¾ L&O6 8N6?BNRBN<>VY?~¾ 8N6o;@VY?7;@6?BLN6£8NILqÔHR\8O6 GI76?7;@6
4|-0<H?B6=LMRK;@BN<>VY?*4|-0I^? ¾ VY<H?B46¬J&I6bB6X ¾ VKLN6ÔQ!
Ü ÔûÔ>6¬86bBLMRK4^I7<>B ¾ RL£Ôä- 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
RKXX£6468$O6 G$I6?7;@68NVY?BÕÔH68öVF6=BN8Q47I~8 &8Bc6 X£6¬4W$O6 7?7<H8ö47RK?78ÕÔ>6£47<HRS
#KLMRKXX6P4|- VF6=BD<H?^8BNRK?7;=< O6 R ¾ RLNBN<>LD4768D;=ÔHRK8N8N68D47I¼4^<HR#KLMRKXX£6P46Õ;=ÔHRK8N8N68$S.qRK?78:;@6P47<HR#KL
RKXX£6'
Ô>68¼=O6 J.O6 ?6X6?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=BD68B2XRB=O6 LM<HRKÔH<H8$O6 ¾ RL2I7?¼LN6;@BNRK?PY# Ô>6
?VYXXO6 ¾ RL:8VY?{?VYXM - ? h
R VYIB6PI^?69^ RLNLN6ö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?BD46Q47RB6=L2Ô>68A;@VYXXoI7?7<û;=RBN<>VY?78$
OBJET1
Ö K
OBJET2
#
,Û68:RK;@B6ILM8:4|-0I7?h47<HR KL
RKXX£6Q46Q8$O6 G$I6?7;@6
+$
? D@ D ;>!*
,E68X£68N8NRK# 68 ¾ 6=LMX£6=BB6?BÔHR;@VYXXoI7?7<H;=RBN<>VY?\6?BLN6öÔ>6847< bD=O6 LN6?BN8V86=BN847I\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 ¾ RL;@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 RBN<HVY? VYI ÔHRb468NBLMI7;@BN<>VY?~4|-0I^?xV8 6=BöVYI~4|-0RKI7BLN68öV ¾ =O6 LMRBN<>VY?^8$
/2?hVF 6=BALN6;@6=JRK?B2I7?hX£68N8NRK# 6 ¾ 6I7B5¬
L&O6 ¾ VY?74LM6Q8NRK?78AG$I6Q;@6ÔHR8NVY<>BA8 & 8BO6 XRBN<HG$I6
OBJET1
OBJET2
Message
Réponse
Ö Ú
#
#
,Û68DX£68N8NR K68:4|-0I7?h47<HR KL
RKXX£6Q46Õ8$O6 G$I6?7;@6
? D@ D 4 / 1 9 6?JKVY<>6I7?{X£68M8NR#K6MR¬
I7?{RKI7BLN6ÕVF6=B
'^;@6X£68N8NR#K6 ¾ 6IB
,EVKLM8NG$I|-0I7?¼V86=B
6=g BLN6¬I^?~R ¾7¾ 6ÔÞ4|- 6@Ý O6 ;=OBJET1
IBN<HVY?¶4|-0I7?76X=O6 BNF7V$46_.2RK?^8Õ;@6;=RK8$'`Ô>6B6X ¾ 8QG$OBJET2
I7<Þ8=-UO6 ;@VYI7Ô>6¬6?BLM6Ôä-0RLNLM<HJ.=O6 6
47IlX£68N8NR#K66=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 ¾ RLNBÔHR46XRK?^46ö4|- 6@Ý O6 ;=IBN<HVY?
¾ RLAI7?\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 ¾ LNVJ$<>6?BP4Û-0I7?6X=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#KLMRKXX£6Õ46Q8$O6 G$I6?7;@6oRJK6;QB6X
¾ 8A4|- 6@Ý O6 ;=IBN<>VY?l468AX=O6 BNFV&468
? D@ ? 4 ,EVKLM8q46oÔ-0IBN<HÔH<H8MRBN<>VY?¼4|- 6@Ý ¾ LN68N8M<>VY?78D;@VY?^47<>BN<>VY?7?76ÔHÔ>68AÔHR\ÔH<2#Y?76P46PJ$<>6 ¾ 6IB:6=g BLM64WO6 47VYI8^Ô =O6 6 7P#
ÔûRXM6g X£6£47RB6Ç,Û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=JRK?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 ¾ 86I74VS;@V&46¬6? XRL&K# 6\46bÔHRxÔH<2Y# ?6476¬J&<>6¬476¬Ôä- VF 6=B
;@VYXX£6b47RK?78oÔä- 6@Ý&6X ¾ Ô>6\8NI7<>JRK?B 7P# Ö + 1U; ;=<³VY?*IBN<HÔH<H8N647I ¾ 86I74VS;@V&46 ¾ VYILoX£V&4³O6 ÔH<H86=LI7?6
ÇVYI7;=Ô>6
+Ù
OBJET2
OBJET1
[Condition1] méthode 1
[Condition2] méthode 2
#
Ö @Ö
/DBN<ûÔH<H8NRBN<>VY?b46Q;@VY?^47<>BN<>VY?784^RK?78AI7?h47<ûR KLMRKXX£6Q46Q8$O6 G$I6?7;@6
OBJET1
OBJET2
while fin>0 do
end while
+ /:BN<HÔH<û8NRBN<>VY?b46 ¾ 86I^4VS;@V$4768A47RK?78AI^?h47<HR#KLMRKXX6Q46Q8O6 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 ¾ RL³I7?6:;@VY?747<>BN<>VY?6?BLN62;@LNV&;MF6=BN8³6?IBN<ûÔH<H8NRK?B.Ô>68.LM6 ¾ 6= LN68 6?¬XRLK# 6247I47<HR#KL
RKXX£6
7P# Ö " Ö
OBJET2
OBJET1
Message1
x
Réponse1
...
[y-x<1heure]
"
Ö
#
Message2
y
#
/:BN<HÔH<û8NRBN<>VY?b46Õ;@VY?BLMRK<H?B68AB6X ¾ VKLN6ÔûÔ>6847RK?78AI^?h47<HR KLMRKXX6Q46Q8O6 GI76?7;@6
*
!
%
*
!
&
!
#
$1.
/ ?*47<HR KLMRKXX6\4|-0RK;@BN<HJ$<>B$h
2
O6 68B£I7?76¬JRLM<HRK?B6h46847<HR KLMRKXX68o4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78 qRK?78£I7?
47<HR KL
RKXX£6¬4Û- =O6 BNRBN8SBLMRK?78N<>BN<HVY?78 !Ô>68~=O6 BNRBN8£6=BÔ>68ÕBLMRK?78N<>BN<HVY?78Õ8VY?BX<H8Q6?RJRK?BRKÔHVKLM8PG$I6\47RK?78
I7?47<HR KLMRKXX£6¬4|-0RK;@BN<HJ$<>B$O6 8 .;@6b8VY?B£Ô>68PRK;@BN<HJ$<>B$O6 8£G$I7<W8VY?BX<H8N68Õ6?*RJRK?B .,Û6846I&Ý B ¾ 6846
47<HR KL
RKXX£68 ¾ 6=L
X£6=BB6?BbRK<H?78M<D4|-0RJKVY<>Lh46I&Ý J&I68¬4^< D=O6 LN6?B68b8NILbÔ>68\RKIBVYXRB68h47I 8 $8NB 6X6
/2? 47<ûR KLMRKXX£6b4|-0RK;@BN<>J&<>BO6 8oJ$<H8MI7RKÔH<H86¬I7? KLMR ¾ F7<HG$I6¬4|-0RK;@BN<HJ$<>B$O6 8G$I7<³XV$4WO6 ÔH<û86¬Ô>6\;@VYX ¾ VKLNB6X£6?B
4|-0I7?76bX=O6 BNF7V$46 ³,Û6847<ûR KLMRKXX£684Û-0RK;@BN<>J$<HBO6 8¬IBN<HÔH<û86?B Ç6RKI7;@VYI ¾ 4|-UO6 Ô O6 X£6?BN8\468£47<HR KLMRKXX£68
4|-U=O6 BNRBN8SBLMRK?^8N<>BN<>VY?78P6? BNRK?BoGI6¬JRL
<HRK?B6¬46¬;@6\46=LM?7<>6=L Û/:? 47<HR KLMRKXX64|-0RK;@BN<>J&<>BO6 8ÕLM6 ¾ L$O6 86?B6
Ôä-U=O6 BNRB¬476{Ôä- 6@Ý O6 ;=I7BN<>VY? 4|-0I^?X O6 ;=RK?7<H8NX£6 ³8VYI78ÔûR VKLMX6¼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?B47RK?78£468 7LMRK?7;
F68 ¾ RLMRKÔHÔ 6ÔH68£46 7VKBN846¼;@VY?BL VYÔ>6 ³,Û6¼4WO6 ^IB£6=BÔûR ?4|-0I7?
XO6 ;=RK?7<H8MX£6Q8VY?BD4³O6 ^?7<H8LM68 ¾ 6;@BN<>JK6X£6?B ¾ RLAI7? =O6 BNRB:<H?^<>BN<HRKÔ6=BDI7? =O6 BNRB ^?^RKÔ RK;=I7Ô>BNRBN< ,Û68DRK;@BN<uS
#
#
#
#
$'
#
$7
N
$'
b
)#
'
Q
0
$
#
Hg $
m7 S0
d
#
$#
L7
D0d
c "Ø
Mg
,
#
J&<>BO6 84|- =O6 BNRBN8D86q?VKB6?BA462ÔûRPX 6X£6QXRK?7< 6=LN6öGI76247RK?^8³Ô>6847<ûR KLMRKXX£684|-U=O6 BNRBN8SBLMRK?^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 BNRB
VYIl6?8VKLNBN<H6
entry
do
exit
Ö Ù
7P# ? = ! #
F
c 8;
,E68RK;@B6ILM847I\47<HR KLMRKXX£628NVY?BÔ>68WV 6=BN847Ib8 &8B 6X£6 UÔû8³8VY?BLN6 ¾ L&O6 86?BO6 8 ¾ RL468WBLMRJ.=O6 68
?VYXX=O6 68 ¾ RLAÔ>6ö?VYX 46öÔä- V 6=B TF7RKG$I6 ¾ RK8N8MR K6Q4|-0I7?62BLMRJ.=O6 6 R£Ôä-0RKI7BLN6 ¾ RLAI7?6qBLMRK?78M<>BN<>VY?¬68B
;@VY?78N<û4³=O6 L$P
O6 ;@VYXX£6PI7?hR ¾7¾ 6Ô|46QX=O6 BNFV&46Õ4|-0I^?bV 6=B ¾ RLDI7?6öRKIBLM6Õ46QÔä- V 6=BLN6ÔHRBN< R£ÔHRBL
RJ.=O6 6
Ö
7P# # F $
#
F
OBJET1
F
D05
OBJET2
...
E0
F1
...
E1
Ö
#
F2
#
,Û68ARK;@B6I7LM8D4|-0I^?h47<HR KLMRKXX6Q4|-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
RKXX£64|-0RK;@BN<>J&<>B$
O6 ?686£?VKB6?B ¾ RK8ö476ÔHRbX 6g X£6
XRK?7<Q6= LM6GI7647RK?78QÔ>68Õ47<HR#KLMRKXX68Q4|- =O6 BNRBN8SBLMRK?78M<>BN<>VY?78$ - ? IBN<HÔû<H86I7?6 ^RLNLM6FVKLM< =VY?BNRKÔ>6 ¾ VYIL
4W$O6 ^7 ?7<HLAÔ>690 RK<HBAGI6QÔ- VY?M0 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
RKXX£6Q4|-0RK;@BN<>J&<>B$O6
? D 3 4 1 63 / 1 4 /2? ¾ VY<û?BÕ476\;
FVY<uݶ68BI7?6b;@VY?747<HBN<>VY? J$LMRK<>6\VYII0 RKI78N8N6\G$I7<W4³=O6 B6=LMX<H?6bÔä- VKLM<H6?BNRBN<>VY?47I 7VKB
4|- 6@Ý O6 ;=IBN<>VY?x6?BLN6 ¾ ÔHI78M<>6ILM8K7LMRK?^;MF68:47I¼47<HR#KL
RKXX£6P;ÔH8A8VY?BDLM6 ¾ L$O6 86?BO6 8 ¾ RL2I7?¼Ô>VY8MRK?8#K6PRJK6;
I7?6ö;@VY?74^<>BN<>VY?'&6?BLN6Q;@LNV&;MF6=BN8$'R ¾7¾ ÔH<HG$IW=O6 6jR£
ÔHRBLMRK?78M<>BN<>VY?b;@VYXX£6 [i 10] 47RK?^8Ôä- 6@Ý$6X ¾ Ô>6ö8NI7<>JRK?B
7P# Ö Ù "&
OBJET1
do afficher(i)
[else]
[i>10]
#
Ö Ù
!
,Û68 ¾ VY<H?BN8A46Q;
FVY<uÝh47RK?78AÔ>68D47<HR KLMRKXX684|-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,
=Ø &TVYXX£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? VKLMXRBN<>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?BN846XV$4WO6 ÔH<û8NRBN<>VY? 4WO6 ^?^<H8ö47RK?78QÔH68Q47<HR KLMRKXX£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 ¾ RLö468ö<H? VKLMXRBN<H;=<H6?78 ¾ VYILqG$I|-0<HÔ8=-0<H?B 6 KLM647RK?78qÔHR
?VKBNRBN<>VY?oVKLM<H6?B$=O6 6V 6=BÞ4|-0/ x,b6=B ¾ VYI7LQ=O6 J&<>B6=L.468!?VKBNRBN<>VY?78!XRBNFWO6 XRBN<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<û?JRLM<HRK?BN8:RKI~8N6<H?x4Û-0I7?6P;=ÔûRK8N86VYI4|-0I7?xB ¾ 6bßÇ;@VY?BL
RK<H?B68ÕGI7<4VY<>JK6?B2BVYI VYI7LM8 6=BLN6
J.=O6 LM< =O6 68 ¾ VYIL8=-0RK8N8MILN6=L47I (VY? VY?7;@BN<>VY?7?6X6?B468<H?78BNRK?^;@68o476bÔûRx;=ÔHRK8M86¬VYI*47IB ¾ 6
;@VY?^;@6=LM?³O6
ÔH682;@VY?BLMRK<H?B68öRKI86<H?l4|-0I7?6oV ¾ =O6 LMRBN<>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 LMRBN<>VY?x;@VY?7;@6=LM?W=O6 6
ÔH68 ¾ L&O6 6=B ¾ VY8BS;@VY?74^<>BN<>VY?78¼4Û- V ¾ =O6 LMRBN<>VY?jß:;@VY?BLMRK<H?B68xG$I7<P4VY<>JK6?B 6=BLN6LN68 ¾ 6;@BN<>JK6X£6?B
J.=O6 LM< =O6 682RJRK?B:6=BDR ¾ L 68:Ôä- 6@Ý O6 ;=IBN<HVY?{4|-0I7?762V ¾ =O6 L
RBN<>VY?
ÔH68 YRLM468öß;@VY?BLMRK<û?B68:8NILDÔHR£XV$47< ^;=RBN<>VY?b46ÕÔä-U=O6 BNRB24|-0I7?bV 6=B
ÔH68Õ6@Ý ¾ LN68N8M<>VY?78Q46\?7RJ&< YRBN<>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<>B6LM68 ¾ 6;@B6=LoÔ>68o;@VY?BLMRK<H?B68o4W$O6 7?7<>68 ¾ VYILo;@6
Bh ¾ 6 ,Û62;@VY?B6@Ý&B6q4|-0I7?66@Ý ¾ LN68N8M<>VY? - T,{68B³4W$O6 7?7<6@Ý ¾ ÔH<H;=<>B6X6?B.RJK6;:Ô>6:X£VKB ;=Ô O6
8NI^<>J$<
context
47Il?VYX 46oÔ- O6 Ô O6 X6?BQ46X£V&4³O6 ÔH<H8NRBN<HVY?x;@VY?7;@6=L
?³o
O6 6=Bö47Il8B$=O6 L&=O6 VKBh ¾ 646ÔHR;@VY?BLMRK<H?B6;ÔE68Bq8NI7<HJ$<
4|-0I7? ¼ß F' ¾ I7<H8476QÔä- 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;@6Q47IhXVKBD;=Ô
O6 7' <HÔÇ68NB ¾ VY8N8N<2^ ÔH624|-0<û?78N;@LM<>LM6:I7?¼?7VYX 4|-0<H?78NBNRK?7;@6
<ûÔÛ68B ¾ VY8N8N<2^ ÔH6Q46P?VYXself
X£6=L:6@Ý ¾ ÔH<û;=<>B6X£6?BDI7?6o;@VY?BLMRK<û?B6R^7 ?l46 ¾ VYIJKVY<>L2ÔHR4WO6 8M<2Y# ?6=L ¾ RL
ÔûRö8NI7<>B6K,Û6:?VYX 46AÔHRö;@VY?BLMRK<H?B6A68B ¾ ÔHRK;^DO6 R ¾ LE6 8 ÔH6Bh ¾ 6A476A;@VY?BLMRK<û?B6 '
VYI
inv pre
post
6=B:RJRK?B2Ô>6 hß F
ÔH68 .$+ & -( . ¾ 6=LMX£6=BB6?B4|-U=O6 B6?747LN6xÔHR¶8O6 XRK?BN<ûGI6x468*O6 Ô O6 X£6?BN8b46{X£V&4³O6 ÔH<H8NRBN<HVY? ß <HÔ
8-0RY# <>BD4|-0I7?hXO6 ;=RK?^<H8NX£6Õ4Û- 6@Ý$B6?78M<2^ <HÔH<HBöO6 47IhX=O6 BNRSXV$46 Ô>64|-0/?{
,-
?
"KÚ
? D = !' ! 46
! !9 ,E68Bh ¾ 68476URK86 - T,~8VY?BAÔ>68W6?BN<H6=LM8$'Ô>68ÇVVYÔ =O6 6?^8$'Ô>68;MF7R g]H?76846ö;=RLMRK;@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 ^ RK86OclAny
6=Bo47I X£V&46 Ô>6 `,E68ÕV ¾ =O6 L
RB6ILM8o4³$O6 7^?7<H8 ¾ VYI7LQ;@6¬8NI ¾ 6=LSBd ¾ 68NVY?BoF³=O6 LM<>BO6 8 ¾ RLÕBVYI78PÔ>68
Bh ¾ 68$^ ,E68V ¾ =O6 LMRB6ILM8:8NI7<>JRK?BN8A8=-0R ¾7¾ Ôû<HGI76?BR£
;@68ABd ¾ 68:469^RK86£ß
V ¾ =O6 L
RB6ILM8.Ô>VY# <ûGI68ß
, , , , and, or, xor, implies, if...then ...else... endif, not
V ¾ =O6 L
RB6ILM82XRBNF³O6 XRBN <HG$,I 68Q
ß
V ¾ =O6 L
RB6ILM8 ¾ VYI7LÔH68A;MF7R gû] ?68A4+,6Õ;=-,RL
*,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, ^ ,`RJRKÔ>6IL:4Û-0I7?¼Bd ¾ 6
O6 ?I^X =O6 L$~
O6 68B¬<H476?BN<2
7 O6 RL¬Ô- 6@Ý LM68N8N<>VY? enumérationß>ß nom énuméré - T, 68BbI7? ÔûRK?&S
#YRK# 6Bd ¾ {O6 ßÛI7?6£6@Ý ¾ LN68N¾ 8N<HVY?x68NBÕ¾ 47<>B6JRKÔH<Hnom
46£Ô>VKLM8MGI6£Ô>68qBd ¾ 68Q476;@6=BB66@Ý ¾ LN68N8N<HVY?~8VY?BQ;@VYX ¾ RS
BN<2^ ÔH68$ - T,¶4W$O6 7 ?7<>B ¾ RLD;@VY?BLN6ÕI^?6Q;@VY?80 VKLMX<>B$ÕO6 46öBd ¾ 6Q6?BLN6ÕI^?h6?BN<H6=LA6=BDI7?bL&=O6 6ÔQ( ,.- V ¾ =O6 LMRB6I7L
4W$O6 ^7 ?7<HB:I7?6;@VY?747<HBN<>VY?{RKÔ>B6=L
?7RBN<>JK6| ,ER\;=ÔHRKI786
68BqV^ ÔH<2Y# RBVY<>LM6Õ6=Bö<H?&S
if...then...else...endif
BLNV&47I7<>BI7?76ö6@Ý LM68N8N<>VY?h46QXM6g X6ÕBh 6QGI76QÔä- 6@Ý LN68N8N<>VY?h476QÔHR£;=ÔHRKI786 else ¾
¾
¾
then
? D = !' ! 9 ! 46 1 **
1 !9 ,E68E;=ÔHRK8N8M<2^7 ;=RB6ILM8 ;=ÔHRK8N868E'RK8N8V&;=<HRBN<>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?80 VKLMX<HB\
O6 468QBd ¾ 68o4VY<>BN6=g BLN6¬J.=O6 LM<D7W=O6 6 ¾ VYILQJRKÔH<H476=LQÔ>68
6@Ý ¾ LN68N8N<HVY?78 - T,b4³$O6 ^7 ?7<>68$ ,Û68LN6ÔHRBN<HVY?78`476
# O6 ?W=O6 LMRKÔH<û8NRBN<>VY?6?BLN6;=ÔHRK8N868 ¾ 6=LMX£6=BB6?B476W;@VYX ¾ RLN6=L
468Bd 686=B2Ô>6ILM88VYI^8SBh 68$' I7<û8NGI762Ô>68D8VYI78SBd 68D8N6Q;@VY?80VKL
X£6?B%R
Ô>6ILM88MI 6=LSBh 68$
¾
¾
¾
¾
¾
¾
? ? = ! 46!'
,E68¬6@Ý ¾ LN68M8N<>VY?78 - T, ¾ 6IJK6?B\I7BN<HÔH<H86=L\468b<H?78BNRK?^;@68\476l;=ÔHRK8M8N<27^;=RB6IL
8VYI 468b<H?78NBNRK?7;@68
46¬Bh ¾ 6\46jRK86a.qRK?78oÔ>6\;=RK8P468o<H?78NBNRK?7;@68P476¬;=ÔHRK8N8M<27^;=RB6ILM8E'E<HÔ.68NB ¾ VY8N8N<2Ô>64|- 6X ¾ ÔHV K6=L468
RBBLM<2 IBN8$.
' 4688$O6 ÔH6;@B6ILM86=B\468£6@Ý&BL$O6 X<>B$O6 8b46¼ÔH<>6?^8o4^RK?78Ô>68;@VY?BLMRK<H?B68 - T, Þ, - =O6 JRKÔHI7RBN<HVY?
46ÔHR¬JRKÔ>6I7Lq4Û-0I7?xRBBL
<2^ IB:VYIl4Û-0I7?6oV ¾ =O6 LMRBN<>VY?~46;@VY?78NI7ÔHBNRBN<>VY?4|-0I7?6o<H?78BNRK?7;@6o68BqV7B6?$I66?
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ÕÔä-0RBBLM<2 IBVYI¼46QÔä- V ¾ =O6 LMRBN<HVY? ß
4W$O6 ^7 ?7<HBP468;@VY?747<HBN<>VY?78QJ.=O6 LM<2
7 =O6 68£RJRK?B£Ôä- 6@Ý O6 ;=IBN<HVY?46¬Ôä- V ¾ =O6 L
RBN<>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 LMRBN<HVY?
;ÔÇ68B VY8Npost
8M<2^Ô>6q46Q4WO6 8N<2#Y?76=L:Ôä- VF6=BLN6=BVYIL
?³O6 RLDI7?76öV =O6 LMRBN<>VY? R
Ôä-0RK<H46ö47I¼XVKB ¾
¾
¾
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 ¾ RL0VY<H8DÔ- =O6 JRKÔHI7RBN<HVY?x46oÔHR
JRKÔ>6IL:RK?B=O6 LM<>6ILM64Û-0I7?6 ¾ LMV ¾ LM< =O6 BO6 | Ü ?x6cb(6=B$'|Ô>VKLM8:46PÔ- =O6 JRKÔHI7RBN<HVY?l4Û-0I7?6 ¾ LMV ¾ LM< =O6 BO6 I7?{RBBLM<D^IB$'
I7?6WV ¾ =O6 LMRBN<>VY?VYIoI^?6³6@Ý&BL&O6 X<>B$DO6 476Ôû<>6? |4^RK?78!I7?6 ¾ VY8NBS;@VY?747<>BN<>VY?@' ÔHR:JRKÔ>6ILP=O6 JRKÔûI³=O6 668BÞ;@6ÔHÔ>6VS
B6?$I6R ¾ L$6 8!Ôä- 6@Ý O6 ;=IBN<HVY?£46WÔ- V ¾ =O6 LMRBN<>VY?[ VYILÞ4³O6 8N<2Y# ?6=LÞÔHRDJRKÔ>6I7L46ÔHR ¾ LNV ¾ L
<
=O6 BO6 RJRK?BÞÔä- 6@Ý O6 ;=IBN<HVY?
46QÔä- V =O6 L
RBN<>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?~RKI7BLN6O6 Ô
O6 X£6?B
46QX£V&4WO6 ÔH<H8MRBN<>VY? ,.-0<H?^8BNRK?7;@6ö46Q4WO6 ¾ RLNB68NBA8 ¾ 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Ô|;@VYXX6?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 LMRBN<>VY?78³46AXRK?7< ¾ I7ÔHRBN<>VY? ¾ VYIL
Collection
ÔH68A8VYI78SBd ¾ 68A;@VY?^;@LN6=BN8
V7B6?I ¾ RLW?7RJ&<2#YRBN<>VY?\4|-0I7?76DRK8N8V&;=<HRBN<>VY? ß<HÔ8=-0RY# <>BW4|-0I7?6?^86XÔ>6 B6ÔÇI7?£6?78N6X^ÔH6
Set
XRBNF³O6 XRBN<HG$I6 V7B6?$I ¾ RL\468b?7RJ$<DY# RBN<>VY?78\46 ¾ ÔHI78N<>6I7LM8£RK8N8V&;=<HRBN<>VY?78 hß<HÔD8-0RY# <>Bh4|-0I7? ¾ RK?7<>6=L)R Bag
L¾ NVJ&<H8N<>VY?^8 RKI78N8N<^R ¾7¾ 6Ô
O6 ¾ RL0 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 ¾ RLEI7?6.?^RJ&<2Y# RBN<>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$$' XRK<H8VKLM4VY?^?³O6 T, 4W$O6 ^7 ?^<>BP468ÕV ¾ =O6 LMRBN<>VY?78 ¾ VYILPJRKÔH<û46=LEÛ' <>B$=O6 LN6=L£8NILPVYI¶;@VY?78MI7Ô>B6=L468~O6 Ô O6 X£6?BN8£46\;@VYÔHÔ>6; S
BN<>VY?78E8Þ
Z VY<H;=<ÛI7?6QÔû<H8B6ö468V ¾ =O6 LMRBN<HVY?78:ÔH68 ¾ ÔHI78;@VYIL
RKXX£6?BDIBN<HÔH<û8=O6 68qß
ßKLN6=BVYI7LM?6AI7?6JRKÔ>6IL1Ç V$VYÔ
=O6 6?7?6 Y;@6=BB6:JRKÔ>6I7LÞJRKIBÞJ$LMRK<8N<Ô- 6?786X:^ Ô>668B.J&<H46'
isEmpty()
0 RKI&Ýh8N<H?VY?@
ßKLN6=BVYI7LM?6AÔHR2JRKÔ>6ILÞJ$LMRK<>6A8N<Ôä- 6?^86X Ô>6W;@VY?BN<>6?B RKIX£VY<û?78!I7?6A<H?78NBRK?^;@6'H0 RKI&Ý
notEmpty()
8M<H?VY?
ßLN6=BVYILM?6QÔûR£;=RLM47<H?7RKÔû<>BQO6 4|-0I7?b6?786X:^ Ô>6 JRKÔ>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 476W0 VY<H8bV@I count(unObjet)
7BY# ILN6q47RK?78WÔHRP;@VYÔûÔ>6;@BN<>VY? ¾ VYI7LWI7?¬6?786X:^ Ô>6&' Ô>62L$O6 8N¾ I7Ô>BNRB46q;@6=BB6öV ¾ =O6 LMRBN<>VY?b68B0 VKunObjet
LM;^O6 X£6?B
<û?80 =O6 LM<H6ILVYI $O6 Y# RKÔR
ßLM6=BVYILM?6QÔHRJRKÔ>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 ¾ RLN6?BNF6 868$ TW6=BB6qV ¾ =O6 LMRBN<>VY?
select(...)
68NB\=O6 JRKÔHIW=O6 6iR£
I7?¼8NVYI78S6?786X:^ Ô>6Q476QÔHR£;@VYÔHÔ>6;@BN<>VY?{46Q4³O6 ¾ RLNB$
ß&ÔHRP;@VYÔHÔ>6;@BN<>VY?\V7 B6?$I6268BWI^?N^ Ro
# VYIbI7?XoI7Ô>BN<uS6?^86X Ô>6DG$I7<768B
collect(uneExpression)
;@VY?^8BLMI7<>B6NR ¾ RLNBN<>LW462ÔûRP;@VYÔHÔH6;@BN<>VY?¬47624WO6 ¾ RLMB$&' XRK<H8³G$I7<;@VY?BN<>6?B468O6 Ô
O6 X£6?BN8D4|-0I7?\RKIBLN6
Bd ¾ 6 ¾ RK850 VKL
;^O6 X6?BqI7?h8VYI78S6?786X:^ Ô>6 ß$LM6=BVYILM?6qÔHRoJRKÔ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ÔHRJRKÔH6IL:J$LMRK<>68N<
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 JRKÔ>6I7LJL
RK<D8N<
68B¬JL
RK<>6 ¾ VYILRKI
exists(uneExpression)
uneExpression
XVY<H?78I7?©O6 Ô O6 X£6?B:476ÕÔHR£;@VYÔHÔ>6;@BN<HVY?'80 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 JRKÔ>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&;=<HRBN<>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 ¾ RLDÔ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# RBN<>VY? JK6=LM8P468Õ;=ÔHRK8M868SRK8N8V&;=<HRBN<>VY?^8Q68Bo4³$O6 7^?7<>6 ¾ RLoÔ>6?VYX 46Ôä-0<H?^8BNRK?7;@64|-0I7?¶468
;=ÔHRK8N8M<2^7 ;=RB6ILM8QLN6ÔH< O6 8 ¾ RLPÔä-0RK8N8V&;=<HRBN<>VY? ;@VY?^;@6=LM?³=O6 6' 8MI7<>J&<4Û-0I7? ¾ VY<H?B$' ¾ I7<H8ö47I ?7VYX 46ÔHRh;=ÔHRK8M86@S
RK8N8V&;=<HRBN<>VY?{;@VYXX£6?+;=Y RK?B ¾ RL:I7?6öX<H?$I78N;=I7ÔH6
,`RÕ?7RJ$<2Y# RBN<HVY?\4Û-0I7?6D;=ÔHRK8M86@SRK8N8V&;=<HRBN<>VY?¬JK6=LM8WÔ>68³<û?78BNRK?7;@68³GI7< RLNBN<H;=< 6?BURP
Ôä-0RK8N8V&;=<HRBN<>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&;=<HRBN<>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¾ RLMR 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?6qJRL
<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öJRLM<ûR^ Ô>6ö8VYI78AÔûR%0 VKLMX6£ß
ßÇLN6=BVYILM?76Ô-0I7?7<>VY?l46£Ôä- 6?786X ^Ô>646 ¾ I^<H8:ÔH6GI6Ô!Ôä- 6@Ý ¾ LN68M8N<>VY?x68BöR ¾^¾ 6Ô =O6 6 ¾ ÔHI78
ÔH68V$;=;=I7LNLN6?7;@68A476QÔä- 6?786X ^Ô>6Q4VY?^?³QO6 6? ¾ RML 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#KLMRKXX£68P/Ux,©GI6¬?VYI78
RKÔHÔ>VY?^8³BL
RK<>B6=L47RK?78Ôä- 6@Ý&BLMRK;@BN<>VY?h46qJ&I68/Ux,¶46 ¾ I7<H8 I^?628 ¾ O6 ;=<27^;=RBN<>VY?M!U7,Û68?7VKBNRBN<>VY?78VF6=BN8
;@VYXX£6/?x
, 8VY?Bq4768qB6;MF7?7<ûGI682BLE6 8 ¾ 6=L&0VKLMXRK?B68 ¾ VYILöÔHR\X£V$4WO6 Ôû<H8NRBN<>VY?46£8 &8Bc6 X£68$ÛܳÔHÔ>68
X£6=BB6?B¬6? JRKÔH6ILÔ>68¬46I&Ý RK8 ¾ 6;@BN8¬476{ÔHR X£V&4WO6 ÔH<H8MRBN<>VY? G$I7<A8VY?B¬ÔHR ¾ RLNBN<>6{4P$ ?7RKX<HGI76\6=B\ÔHR
VF 6=BN8W8VY?B
0 RK;=<ûÔ>68URP ;@VYX ¾ LN6?747LN6A;=RLW4^<>LN6;@B6X£6?B³<H?B6=L ¾ L&=O6 BNR Ô>68
¾ RLNBN<H6D8BNRBN<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 Ô>68hXRBNFWO6 XRBN<HGI768$
;ÔH8öX£VY?BLN6?BQI^?6J$I64Û- 6?786X:^ Ô>6%^ <>6?8BLMI^;@BNIL$=O6 647I~8 & 8B$6 X£6ahA O6 RK?7X£VY<û?78Q/?{ , 8VYIFÇb LN6£4|-0I7?
XRK?7G$I6¼46 0 VKLMXRKÔH<H8NX£6³
9&68;@L$O6 RB6ILM8¬VY?B¬68N8NR . O6 46{Ô>6¼;@VYX:^ Ô>6=L RL¬ÔHR~;@L&O6 RBN<>VY?©47I ÔûRK?8Y# RK# 6
-?VKTBNR,BN<>G$VY?^I78D< X¾ 6=RL
BNX£FW6=O6 XB¬R4BN6 <ûG0 IVK6LM8EXfRKx ÔH<H8NRK6=Ô2K#L¬L$ÕÔ>O6 68bBVY;@IVYB:?/UBLMx RK<H,¶?B6LM68h8B8N6ÕRK?7ÔHR£8\?RVKBBBN6R<HBN?7<HVY4?{LN68BNÔ>6lRK¾ ?7?74^<>RJKLM64¼RKI ÔHR 46 ÔûI70 8VKLML$XO6 RKRKÔH<H?78N47X£I76x6Õ4;=R6L8
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 ¾ ¾ RL!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_2i ! % 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 # | +IZQ+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 % (! Bl 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 #* Rl AwB +I+> `K( 6E% R) 4N! (*#8 # _ ¾ u `KlJ7 ! u ) V
u !{L _ ¾ b x h ( s !% +I #8 ( (! 2l 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 %! + # ( ! 1lv
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 ~ ! Li ! ! 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?E58I4 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
>Rq<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@> 8BtWK 8 < 8I25@QL=< 032 >>
698I47L8IE\6Q;=0 =<?>A@ 8I428 >A@ 0 <V> 8I2 > 034xT?8I489\ 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 80
Tcm0 L8:LlcmE5258[89\ 8I4Q4 DF2
8 G ^ E < Yy03TV8I2 > > 8p8I2M1>Rb< < |hWeG 8p6Q> ;50 =<V>A@ 8 ^ E < 8I4 > > E525889\ > 8I25>A@ 4 < DF2ML5>R8I< 4 0 =<?<@ 8 @ :4 > Cj3HBF3 <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-;84RE @ E528 P 036Q; < 258[0fk=4 >A@ 0 <?> 83BlL503254TV0
L8IEH\ 8 872DFE=4 DF2 DF254p4RE E5289\H8 TV814 T?81T?8I4 8I4RE=T 0 4pD3k 8I2KE54UB5L5032=4pTV0 D 4 8 872DFE54
8 G > 8I25L< DFP254s2D >A@ 8P0 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;tBr3 DNq0 <?> 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@L8L 8 G @Q>A< @ Yf0 >R< DF2 @
Llcm1b|Y38 @ 4TlBtTV074RDFTVE >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< DF2250 > E @ 8ITVTV8JL5032541TV0 P 8I4RE @ 8JDCES Ti06UTV034Q4A88I21|+8 > TV0 P 036Q; < 258[0fk=4 >A@ 0 <?> 88I2
l4ADF2 > TV8I4 8IG T 8 G P 8I2 > 4Lp
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?8xKW 8 > TV0wFE @ 8xKWKW
" "
);
.301*-,%09 =6); )O7824, )+*4); )+27 5 58= +') )O77:)O;
8I4Yf0 @Q< 0fkrT?8I4L 8UG wr2 < 8I4L503254TV0 P 036Q; < 28 k < +KW{
L58UY < 8I2=28I2 > L 8I40 A> >A@Q< krE > 4L8STV0u6UTi034R4A8
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 >K8G L503254vTV0:wFE @ 8
{
3
MACHINE
AM
...
OPERATIONS
Op1 ... ;
Op2 ...
END
lKW |0
P 30 6-; < 28
AM
AM
+Op1()
+Op2()
lKWbDKL
8IG T < 4R0 >R< DF2
L587TV0 P 036Q; < 28 AM 8I2
6UTi034R4A8
KWKB 8I4 E528[Yf0 0fk=T?8JkDtDFT 8U8I25258[8 8I4 E528I2 8 250 E 8ITW|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< 4R8Nq0 <?> 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
lKWb036-;
< 28 P 5E 2 < 87L8Yy0 @-< 0fk=T?8I4{8I2 >R< 8 @ 8I4v8 > k DKDFT 8UG 8I2528I4
AM
+b: bool = true
+x: NAT = 0
+Op1(y:NAT)
+Op2(): NAT
lKWjbDKL
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 @ E528v6UTi034R4A8q 2D >K8UG 8 < 6 < E A~
69D @R@ 8I4 DF25L5032 > 03E >z_ 8sLCc 8IG T 8 G P 8I2 > 4{L8sTcj8I254A8 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 L8Tdcm034R4ADH< 6 >R< <0 >R< DF2L5>AE@ 6 D C >t8J>AG > L8TV06UTV034Q4A>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_ 88I254A8 P k=T?87L58UY < 8I2=28I2 > L58I4
034R4ADH6 < 0 >R< DF2=4h0IY38I6T?8IE @ 2D P 69D P:P 8X2D P L8 @@DFC T?8XL5E:6 D C >t8G 69D @R@ 8I4 DF25L5032 > 03E >`_ 8XLlc 8IG T 8 G P 8I2 > W28
Yf0 @Q< 0fk=T?8> a
0 0 @R> 8I2=032 > 0M E528I254R8 P k=TV810fkr4 >A@ 0 <?> A
8I4 >p@ 8 5@K8IG 4A8I2 >t8UG 8 0 @ E52807 @H8$G F 0 >R< DF2b8I2 >A@ 8
TV06UTV034Q4A8 @ 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 L8xTV0Yf0 @Q< 0fk=TV83W
MACHINE
AM
SETS
A
VARIABLES
B, a
INVARIANT
BA A
...
END
a
@
A
lKW 036Q;
< 258 P =E 2 < 8Llcj8I254A8 P k=T?8I4p0fkr4 >A@ 0 <?> 4
B
am
1
*
a
AM
1
E_A
1
*
am
A
lKWbDKL
8IG T < 4R0 >R< DF2
L8I4vYy0 @Q< 0fk=T?8I4 >`_ {8UG 8I40IY38I6[L8I4p8I254A8 P k=T?8I4p0fkr4 >A@ 0 <?> 4
2869DF2 0 2 827{| 8 8 Llcj89\ 8 Tc 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 0MP Tdcj8I254A8 AP k=>T?8 BA^ W5/1< 03254sTV0
69DF2 >A@ 0 < 2 > 8L8TV07wFE @ 8KW tBHT?869DF2 > 89\ > 8 0 @@ 0 D @R> 03E ^ E8IT=4Icj89\ 5@-<VP 8sTV0J69DF2 >A@ 0 < 2 > 88I4 > 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 > 4L8:Tcj8I254A8 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)
lKW {DF2
>A@ 0 < 2 > 8I4XLlc < 256UTVE=4 < DF2L503254vE528I2=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 8JKW{
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 L8Tdcj8I254A8@ 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{L8Tdcj8I254A8 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< DF2u1b| @ 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
lKWb036-;
< 28 P 5E 2 < 8Llcj8I254A8 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
*
lKWbDHL
8IG T < 4R0 >R< DF2L58I4v8I254A8 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
lKW ,?
DF2 >A@ 0 < 2 > 8 @ I8 TV0 R> < Y380 Tdc < 256UTVE=4 < DF2lBKTdcm0 0 @R> 8I2=03256988 > dT c 8$G F03T <?>K8 G
);)7;@) =6);
9:)< 5: =6);
" 571&' / <1%# 68!2� *&%>(
|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?8L5DF2 > T?8I4
8IG T 8 G P 8I2 > 44ADF2 >> DFE54MT?8I469DFE T?8I4qT?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 >
L5E6 D C >t8xG L8TV0[@ 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 fBTdcj8I2=4A8 P krT?8 A 8I4 >7< 256UTVE541L5032=4T?8 5@ DHL5E <?> 6U0 @R>t8IG 4 < 8I2 X 0 @ Y W A 8I4 > LDF256E52a8I254R8 P k=TV8L58
69DFE TV8I4UW
MACHINE
AM
SETS
X; Y
VARIABLES
A
INVARIANT
A X Y
...
END
036Q; < 28 P E52 < 8L8 5@ DKL5E <?> 6U0 @Q>t8IG 4 < 8I2
s8 0 E8 |C8 DKL=E 6U0 8I4 8I22Ccj8I4 034pNOD 6 8 8I2 TV0M2D 0 DF2
TV0 VT E=4 E=4 8U878I2l 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
lKW I
DHL
*
E_Y
e_Y
X_Y *
E_X_Y
<<rel>>A
am
*
8IG T < 4R0 >R< DF2L5E 5@ HD L5E V< > 6U0 @R>K8IG 4 < 8I2
1
3
LlcmE5269DFE T?8 0 @ Ti0xL 8UG w=2 <V>R< DF2:L8TV0x6UTV034Q4A8 @ 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 @ 8KW fB > DFE54xT?8I48I254A8 P k=T?8I4L58:69DFE T?8I40 _ 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 8L8I4 @@DFC TV8I4
@ 8IT < 032 > TV0 P 036Q; < 2580M TV0M6UTV034R4A8 E X Y W
5 * & !$#&%')(0*
2 lB5T?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?8L8I4 @ 8ITi0 >R< DF254L8MTdcj8I254R8 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 84 < 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
L87TV0w FE @ 8xKW IM8 > L87TV0wFE @ 8xKW 9BrT?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 Ib036-;
< 28xE >R< T < 4R032 > L8I4 @ 8ITV0 >R< DF254
s8 0 E8 |02D 0 DF2a89\ 8U8[4RE TV0wFE 8[KW 92lcj8I4 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 >8169KD W P:JP 8I8x4 25E5D 2P 803LE 87TV08 6UTV03034RL54AE58x6 TV87DF22D PL58LTV0J874 Ti0 8I@ 6 8ITVw=0 6U>R0 < DF2bDF203E
l T < L8I81E
TVL=0JEw2FED P 8
KW I 5@ ^ E < 4R<?E > <?> 69@R8 >tG 5@Q< < 2=6 < 83We|C8L@ D P 0 < 28X8 > > TV869DHLD>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
lKW 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
lKW X28703E
>A@ 8 P DHL 8IG T < 4R0 >R< DF2L8I4 @ 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
*
lKW I/ < 07
@ 0 P:P 8xL5876UTV034R4A8I4XLlcmE528 P 036-; < 2870ZY38I6JE5258NODF256 >R< DF2 F L8 X L503254 Y
6U0 @R>K8IG 4 < 8I2CB @ 8ITV0 >R< DF2CBrNODF256 >R< DF2lB < 2 8I6 >R< DF2CBk < 8I6 >R< DF28 > 4QE @ A8I6 >R< DF2K
s4ADF2 > L 8UG wr2 < 414RE @ T?8L < 07 @ 0 P:P 8
L876UTV034Q4A8I4 0 @ L58I4s2D P 4pL58 @@ DFC T?8I4UW
|8I4D3kA8 > 4 < 254 > 03256 <o8IG 4 L8I46UTi034R4A8I4 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 25869DF2 8I25258I2 034ML58IEH\ 69DFE T?8I4ML 4 256 40 032 T?8
8P C P 8 5@ 8 P:< >R8 < @8IG T 8 G P 8I2 > > WH28X@ 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=2L58J6U0 @ 036 >K8 G @Q< 4R8 @ T?8I41L < sG8 @ 8I2 > 4 >`_ 8I4L58JNODF256 >R< DF2/ < 2A8I6 >R< DF2lB4RE @ 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 ;8KWKW {
x4RDF2 > 0 DFE >t8IG 4M4QE @ T?8L < 07 @ 0 P:P 8L86UTV034R4A80 < 254 <
^ E8JL8I4X69?DF
2 >AL@ 870 < TV2 0M> 8I4 4G8I76 pwr| 6U0 W DF< 2T?8 l k 03LT?D 8[4sTV0MTV0MwF69EDF2@ 8[K0 W I2 8>@ 8 75{@H8IG|h4A8IB 2 > 88I4AE58I22 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> TV8I4IOwK5W @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()
lKW 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?82D k 81LlcjD3kA8 > 4pL81TV06UTV034R4A8 E F 8I4 > T?8 P 8C P 8 ^ E8698ITiE < L8Ti0
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
03E2D P k @ 8Llc 8IG T 8 G P 8I2 > 4sL8Tdcj8I2=4A8 P krT?8L581L 8 G 0 @R> X Wg DFE @ E528N DF256 >R< DF2 F 0 @R>R< 8ITVT?83BHTV069DF2 >A@ 0 < 2 > 8
5T?8I@H4 8IG 6 28IG L8I8I6 2 > DF8 25O4Uw BHk KA8IW D6 %
DF4U25c 4{8IG 6 8 @Q<?> 4QE 69D A8P:I6 P 8DF25L54 0325D 4TV030T?8Iw4sF8 E @ 80 KW IK8ITVW T?8I 4U8W >A> 8ML < sG8 @ 8I256980 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
lKW 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 < DF2LlcmE5258NODF256 >R< DF2LCc < 2A8I6 >R< DF2 > D > 03T?8 @ 8UY < 8I2 > 0M L5DF2528 @ T?8I4p69DF2 >A@ 0 < 2 > 8I4vLlcmE5281NODF256on
>RK< 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()
lKW I
FD 2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\ < 2 8I6 >R< DF254 > D > 03T?8I4
| 069DF2 0 2 8C7{| 8ITV0 Y38x03EH\ 2A8I6 DF254 D 03T?8I4OwKW D%
s4 F2 w=8 E8 DFE L8IEH\D3kA8 4
L < sG8 @ 8I2 > 4L>A8@ TV< 0x> 6UTi034R4A8 E @ F q>R69< 8 >A> 86UTV034R< 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=4vTV0w FE @ 8xKW ?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()
lKW ?{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?80M @ Tdcj89\H698 =>R< DF>R2
< L8xTi0M69DF@ 2 >A@ >R0 < < 2 > 8 > @ 8I> TV0 >R< Y380M TV0M4QE=@@QA8<VIP 6 >R< DF2FOwP 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()
lKW
1
c2.e X)
{DF2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\4RE @ A8I6 >R< DF254 > D > 03T?8I4
| 069DF2 >A@ 0 < 2 > 8C7{| @ 8ITV0 >R< Y38x03EH\ < 2A8I6 >R< DF254 > D > 03T?8I4OwKW D
s4 < F2 < w=8 ^ E8 DFE @ L8IEH\D3kA8 > 4
L < sG8 @ 8I2 > 4XL8JTV0:6UTV034R4R8 E F q698 >A> 8M6UTV034R4R8 @ 8 5@H8IG 4A8I2 > 8TV0:4RE @ 8I6 >R< DF2 > D > 03T?8
-BTV8I4vD3kA8 > 4s69D @R@ 8I4 DF2Hn
L5032 03E DFT?8 4ADF2 L 8 8I2 4UW={;50 E81D3k A8 L8TV0J6UTi034R4A8 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=03254vTV0w FE 8xKW3KW
>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()
lKW3
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 8I269> 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< DF28 > L874RE @ A8I6 >R< DF2 > D > 03TV83OwKW3:DFEbKWy&
-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()
lKW3
FD 2 >A@ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\k < 8I6 >R< DF254 > D > 03T?8I4
g FD E @ E=28k < A8I6 >R< DF2 F 0 @R>R< 8ITVT?83BTV0M69DF2 >A@ 0 < 2 > 8J4Uc 8IG 6 @Q<?> 69D P:P 8xL5032=4vTV0wFE @ 8xKW%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()
lKWy
E >A@ 8 8IG 6 @Q<?> E @ 8 DF4Q4 < k=T?8L8xTV0M69DF2 >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()
lKW%{DF2
A> @ 0 < 2 > 8 @ 8ITV0 >R< Y38703EH\k < A8I6 >R< DF254 0 @Q>R< 8ITVT?8I4
@ 0 ; <V^ E58 DF228 8IE > 034 Y3D <?@ TV0L < sG8 @ 8I2=698v8I2 >A@ 8 > DFE > 8I4698I4h8I2 >R<?>t8IG 4UW w=2:L58 P:< 8IEH\6U0 @ 036 >t8 G @Q< 4A8 @
T?8I4LDF252 8UG 8I489\ >A@ 0 <?> 8I4ML58Ti04 {8IG 6 < w=6U0 >R< DF2 8 > L8 P:< 8IEH\ 8 G > 0fk=T <?@ T?8T < 8I2u0ZY38I6
698I4ML8 @ 2 < 8 @ 8I42DFE54
E >R< T < 4ADF254L8I44 >t8 G @K8UG D >`_ 8I4 ^ E < 4R8 @ DF2 > Y < 4 < krT?8I4:4RE @ T?8aL < 07 @ 0 P:P 8aL86UTi034R4A8I4 8 @QP 8 >A> 032 > 0 < 254 <
Llc < L58I2 >R< w=8 @ Y < 4RE8ITVTV8 P 8I2 > T?8I4XL < sG8 @ 8I2 > 4 >`_ 8I4LCcj8I254A8 P k=T?8I4L8[69DFE T?8I4UW|0T < 4 > 8J8I4 > L 8UG wr2 < 8L503254
T?8 > 0fk=TV8I03EbKW 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 DF2L8sTdc 2=4R6 DF2[LCc 8 E=L 032 40J E52L T D 83W
| c < 254R6 @Q< =>R< DF>R2 < 28S4RE > > P 0348 >
<iP< TNO03< 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 L8xTcj89\K8 P T?818I4 > LDF252 8UG 8xwFE @ 8xKW3KW
{
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
lKW3 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?8I41q6UTV03E54A8 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?8I4DlE T?8 5@ 8 P:< 8 @u8IG T 8 G P 8I2 > LlcmE52+69DFE T?88I4 > E52 8 G > E=L < 032 > 8 > T?8L8IEH\ < 8 P 8bE52+L < T D C P 83W
8I4 E=24ADFE54p8I254R8 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 4Tdc < 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 YKE8LlcjD3k > 8I2 <?@ E52uL < T D C P 83W~ 8 >A> 8D 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 < 4L8
Y 8 G @-< w58 @^ E8
Tdc 8 G > E5L < 032 > L58 P 0325L5032 > 0 < 254Q6 @Q<?@ 82lcj8I4 > 034:L 8 G 0 < 254R6 @-<?> W~|C8b69D @ 4:L8bTdcjD {8 G @ 0 >R< DF2
8 @QP 8 > Llcm0 ADFE > 8 @ T?869DFE T?8 etudiant diplome 0M Tdcj8I2=4A8 P krT?8 InscritsW
HE T?87L 07 0 87L87TV0wFE 8xKW{ME5258 0 @R>R< 8L8I4 @ 8$ FT?8I4s03LD =>t8UG 8I40 0 @ 0 C4?>
| @ 0 P 03< 6-; @< 28P8IP 4 > E5286UTV034R4A83@ 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 4L8vTcj8I254A8 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@8G L8>ATV> 0b6UTi034R4A8
69D @Q@ 8I4 DF25L5032 > 03E >z_ 8bLlc 8IG T 8 G P 8I2 > 4 DF4Q498I L8E52+25D P @@ DFC T?8
^ E < 8I4 > 698ITVE < L8Tdcj8I254A8 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
KKW{
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)
lKW3
DF2 >A@ 0 < 2 > 87Llc < 2=6UTVE54 < DF28I254R8 P k=T < 4 > 8L8
InscritsAuxExamens
L503254 Inscrits
6
-W3|8I4 Yf0 0fk=T?8I4~L58 8v8I254A8 k=T?8vL8UY 8I25258I2 L8I4034R4ADH6 0 DF254h0IY38I6T?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<
| 0NODF256 >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 DF2LDF2 T?8 DFTV88I4
{8 @ >A> 86UTi034R4A88I< 4 >]>R< 8$G F03T?8 P > 8I2 >@@@ C 8IT <o8UG 8 > Enrolled
0 @ E52807 @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 Wg DFE @< 25L <i^ E8 @
8I4 > E=24ADFE=4X8I2=4A8 P krT?8[L58 Inscrits BlDF2aE >R< T < 4A8xTV069DF2 >A@ 0 < 2 > 38 7{|
^L5E878 TV0InscritsAuxExamens
w FE @ 8xKW3KW
3 2NO0 <V> 698I6 < 2874RE > 034 DFE @ L 8IG 6 @Q<V@ 87E528NODF256 >R< DF2 0 @R>R< 8ITVT?869D 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 > 4L8 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 > @ TV069DF2 >R>A< @ < 0 < G 2 > :8 x{@ |<?K@ W3 ^ E < 8 @-P 8 > L8 @ 8I4 >A@ 8 < 25L @ 8{Tcm034R4ADH6 < 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()
lKW3{DF2
1
c2
>A@ 0 < 2 > 8 @ I8 Ti0 R> < Y380: TV0NODF256 >R< DF2 0 @R>R< 8ITVTV8
Inscrits
+
3
/, @ *='!2 <+ %')@ "$<
"$!
!2"5
|8I4 8ITV0 DF2=4L58+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 > 8E=28Y < 4 < k < T <?>K8MG L <?> 8 NI F
G J NI F DFE TV8I4JYf0 0fkrT?8I4[8 D 8 0 DF254qT?8I4Yf0 0fkrT?8I4284RDF2 034 DKL w=0fk=T?8I4JLDF256
T?8I4D {8 G @ 0 >R< DF254x258 P @ DKL < w58I2 > @Q< 0347T?8I4> Yf0 @Q{< 0fG kr@ T?8I>R4< L8 P 036-; < 2@Q8:< 69NvKWKW{
^ E <> 2Ccj89\ < P4 > 8 < 0348I2 1b|hW
/[cm03E >A@ 8 0 @R> TV0Y < 4 < k < T <V>t8G 8I2fl 8I4 > 8 @QP< 4A8 0 @ TdcmE >R< T < 4R0 >R< DF2
L8 P 8IG 6U032 < 4 P 8ML8[69D P DF4 <?>R< DF203E
69DF2 >A@ 0 <?@ 8Llcm1b| DCE TV0bY < 4 < k < T <V>t8MG 8I4 > L 8UG w=2 < 8S0 TV0L 8IG 6UTV0 @ 0 >R< DF2 L8Tdcm0 >A>A@Q< krE > 8 >]8UG Y38I2 > E58ITVT?8 P 8I2 >
0 @ Tdcm0 0 @Q> 8I250325698sDFE2DF203E 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 > 8L8MTV0Y < 4 < k < T <?>t8JG L 8UG w=2 < 8ML503254T?8I44 {8IG 6 < w=6U0 >R< DF254U0W ~ 8IG 032 P D < 254
TV0 5@ 8IEY38 8 @QP 8 > L8k=TVD ^ E8 @ T?8I4v036U6f8I 42DF2
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 > E528Y < 4 < k < T <?>t8 G NI F G J IPFv03T?D @ 4 ^ E8TV0J6UTi03E54A8 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< w588I2T?8I> 4TV0M036UYf6y038I T?4J8IE 25@ DF2L8I034sE 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?8I40 >A>A@Q5< @ krE > 4L8I4 ^ P 036Q; < 28I46 <?>t8UG 8I4:L503254> T?@Q8I< 4G L8IE\u6UTV03E5>4A8I<V4P E525<8NOD@ < 4TV0
P TV03E=6-4 ; < 28I4 8 >A@ 6 03L5Y3E 8 <?> 8xE8I82696U8ITVTV03T?4Q84A8JL8 1l(b|h4R03Wl6Q{;=8 03>A2 > 8JY E< 4 8< k TV< 0 T <?>K8G 4A8I8 E5@ Y308L 0a8UG w=kr2 T?D< 8JE69D 8P:T?8IP 48 03H6U6y8I N4 I 2 8 DFE L @ 254U8W T{03894 \ 8C >A4 @ 88
@ 8 8 ^ REG 54 8L8Y3D < > T?8I4[@ 8I<V2> 8I4L8< >Ti0
E528L @ < sG8>A@Q@ <8I25>R69< 88I2^ >A@ 8T?8I4L8IEH\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 06U8[TV03TdE=c 4A258 4 IMPORTS
03256 0 DF2 0 E528M034R4ADH6 0 DF2l0W 2 DFE 0 03E54R4 L 8I6UTV0 8
E528Yf0 @QG < 0fk=T?81<?L5@ E >`_ >A81@ L581Ti0J@Q<?6U@ TV034Q4A< 8E > >R< T < 4 8U<G 8 >RP < 0 < 4{4 _H@ P kDFT <V^ E58 P < 8I2>R<> DF2281Y3D <?> @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 > Tcj89\ < 4 > 8I25698xL5ET < 8I28 > L87Tdc < 2=4 > 03256983W
"
=60 ;@)
EXTENDS INCLUDES
)2
PROMOTES
|8I40 k=E 4X8 8 ;DHL8I4L8I416UTV034R4R8I44ADF2 8I2Y 4 k T 8H NI UBY 4 k T 8 D 254 8I4 6 Y38
E^ 8L5032=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?8I4 OY < 4 < k < T <?>KW{8G {H 8 NI 8
-6UWTV033 E=24A8 8 8 8 >1< T8 2Ccj890u \ < Ti4 0 > 8 03036Q4; 8I228 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 <?@ L8I4D {8 G @ 0 >R< DF2=>A4:> L8
TV0 P 036Q; @Q< 2P 8 > < 256UTVE=4A83PW 3 2+< |^ 4A<XD < <V> 03E=> 6UE528D 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 <?>K8G 6U0 @ TV0 5@ 8IEY387krT?D ^ E8
T?8I4036U6y8I 4 < TVT $8 G F03EH\W| 0 @ 8 5@K8IG 4A8I2 > 0 >R< DF2 L8TV0u6UTV03E54A8 INCLUDES 4A8 @ 0 @K8IG 03T < 4 8UG 8 0 @ E52 T < 8I2 L8
>`Y _ 4 8k T034R4R8DKH 6 < 0 >RI < DF2 DF4RE036-;5032 0 >2 ^ 8IE52 8T?8ITV4:00Y >A4>A@-k < k=T E > 84L 8 8U> w=D2 {818 G @ 8I0 2>R< lDF2=W=4g DFLE 8TV0TV0MP 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?8b1| RE54 > F8 DF4R4 < k < T <?>K8G LlcmE >R< T < 4R0 >R< DF2 L8I4 Pu8 G > ;DKL58I4L8bTi0S6UTV034R4A8 8IG 2 8 G @ 03TV8L5032=4MT?8I4
6UTV034R4R8I4w=TiT?8I4
-W /[cm03E >A@ 8 0 @R> TcmE >R< T < 4Q0 >R< DF2 L8TV0]6UTV03E54A8 PROMOTES D3k=T < 38
TcmE >R< T < 4Q0 >R< DF2+LlcmE528
8IG 2 8 G @ 03T < 4Q0 >R< DF2L=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 DF20 0 LlcmE528
0P 36-; < 28[0fk=4 >A>R@ < 0 <?> ^ 8Cl L8[Nq069 DF203EG >R> < D P 0 >R< 4 8UGG 8G8 > > <4 _ 4 > >K8 G P 0 >R<i^@QP E8M>AL>A8I@ 4XYHE8I4B< @ 0 < ; >R<V^< E8I4s1@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 @ 8L8 > 8 P 4vL503254XTV0 @ 8I6Q;58 @ 6Q;8[L8xTV0kDF25258Y < 4QE503T < 4R0yn
>R03< L5DF0 2lW5 8U8
8 >AL5> 8E 03E D > D 2 P 0 L>R8< 4R0 YH>RE< DF82 L88ITiE 0b> T 034 E=4Rk 4 <T 698DF25DFL5E E <?2@ 880[69DF69258 L5^ E E4R818 698 >A03> 4[803Y EH< 4R\ E503T < DH4QLl0 >R8I < T?DF8I2:4[2814A|D <?> T?8I4 034{TVTVE50 4J25TVE50y4n
E> @ 8I5Ti4U>KWG 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 86U03; < 8 @ L8I46Q;50 @ 38I44R03254 ^ E8
TdcjDF2 E < 4R4R80 @-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 DHL8I T?8
1b| 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< DF2L8
Cj3
D}69DF254 4 80M 8I2eY 4R70 38 E528 03L5E56 DF2 2 8 036 Y38x8 256 8 8I2 03T?8 E 8 8 00: 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> L58Tcj89\K8 P T?8 =@ D DF4 8G L=032584 Cj3 D~8I2
P2DFDFE52 4v>A@ D303k 2 > 8IT?258IL4L DF< sG258 4 @ 8I20 > 8I24D 4ADFTV8 E >R< DF8 25;4pDK8IL52t83Y W < 4R07 8UG 8I4L=03254s698 > 0 @R>R< 6UT?83B E < 4p8I269D P 0 @ 032 > 0IY38I6698 ^ E8
>R< @-< @ >A@ PuG >
) 9)Q< 587 2?* 58 =6) 9 0><< );
0 0O24, )O7824;
|hcj89\K8 T?869DF254 L 8 8fq4 8I6 w=6U0 DF2Fl 8I4A8I2 8wFE 8KW P?
8I4 > 698ITVE < L8Tdc 8 G > E5L8L86U034[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< DF2L58I4 8 @ 4ADF2528I4pL=03254vT?8I4pk 0 C >R<VP 8I2 > 4p8I4 >v@ 8 =@K8IG 4A8I2 >K8UG 8 0 @ TV0NODF256 >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
lKW ? 3
\ >A@ 0 <?> L58xTV0M4 {8IG 6 < wr6U0 >R< DF2lL5E69DF2 >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 @ Cj3DB3T?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 40 @ 8ITi0L>R8h< DFTz0H2 B aut
?
T
I
8
C
4
3
0
E > 8IE @ 4l8I2eY < 4R0738I2 >>A@ D < 44ADFTiE >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[6UTV034R4R8I4UW28MN D < 476986-;D < \a8 8I6 > E 83G B < T @ 8I4 > 8L8IEH\ DF4R4 < k < T <?>t8IG 4 DFE @ TV0N 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?8L8UY < 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 8G L503254MTV0a6UTV034R4R8
DFE @< 25L <V^ E8 @ Tcj8I254A8 P k=T?8L58I4k 0 C >R<iP 8I2 > 403E > D @-< 4 8IG 4 DFE @ E5258 8 @ 4ADF25258LDF252 8UG 83W
PERS
/103254X698x6U034UB=Ti0N DF256 >R< DF2 > D > 03T?8 sit 8I4 > E520 >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 < DF28I2 >A@ 8 sit 8 > aut 8I4 >v>A@ 03L5E <?> 8 0 @ E5258769DF2 >A@ 0 < 2 > 8x{| W
(c) deux associations
'2#-"7!211&' 6:
/103254v25D 84ADFTVE DF2CBK2DFE=4p0IY3DF254X6Q;D 4 L58 0 8 T?8I4{8I254A8 k=T?8I4Gq0fkr4 0 4UB 8I2KE 8 8I4UB 8ITV0yn
F>R< D 254IBtNODF256 >R< >ADF@ 254IBrW?W?W
>RL< 81Nq069 DF2E=2 < NOD @QP 8s8I<2< LDF2=25>A@ 032 <?> > L@ 8I4 @@DFC T?8I4:qP 2D P L8Tdcj8I>A2=@ 4A8 <?P> krT?G8
~03P EH\G @H03G 4R4ADH@ 6 < 0yn
>RL< 8IDF4254{8I2=8I4A2 8 >A@ 87krTVT?08I4U6UW TV03 4Q8 4A8 8@ 8 4A5DF@HTV8IEG 4A8I2DF>2 032 8I>4 TV0 P D 032=6Q4; 25< 20 8E 0fk=8I4 TV>ATV8@ 0 0 <V> 88 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^8sElTV0cj8ITV 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 8I4B7p|a=8I<?4 >A@ NO0 4Q0f< k=T?88>^ 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>8G 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 388I4R4A8I2 8IT L8J2D 8x0 DH6Q;5878I4 Ti0 DF4R4 k T 8L8 03L5E 87E528 036Q; 28l E8IT n
69DF2 ^ E8aL8> Nq069 DF203E >R> <D P 0 >R<i^ E83>AWp@ /1032554@ Tdcm0 =@ DK> 6-;8 Cj3DBp< 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 @ Tc < 254 > 032 >X@-< 8I22Ccj8I4 > 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
lKW32~XD
*
>A@ 8 5@ D DF4 <V>R< DF2
TV8I48I254A8 P k=T?8I472584ADF2 > 034 >A@ 0 <?>t8IG 4JL8 P 032 < 8 @ 8E=2 < NOD @QP 8 > 032 > D C >[< Ti44ADF2 >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< 8G 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?869D P:P 8L503254 a1 @
W
DFaut
E @ w=2 <?@ BTdc < 2 > 8 @ 036 >R< DF2 0IY38I6TdcmE >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 DHL8I 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~Tcm0 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< DF254k 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 Tcm0 < L87L8xL < 0 @ 0 P:P 8I4s| W/032=4s698J6-;50 =<?>A@ 83B=2DFE54v03TiT?DF254
03EHn`L8IT 07 L8v698 > D3k 8I6 >R< N8I289\ 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{| 8I2a4A8k=034R032 > 4RE @ TV0 >A@ 03L5E56 >R< DF2 ^ E8[25DFE54X0ZY3DF254 5@ D DF4 8UG 88I2aL < 0 @ 0 P:P 8I41L8
6UTV034R4R8I4 DFE @ T?8I4 P 036Q; < 28I4h0fk=4 >A@ 0 <?> 8IX4 lW 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@ 8L58 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 84 {8IG 6 < w 8sG 8I2pl7C D4RE @ TV0 ^ E58ITVT?8v4ADF2 > 8 8I6 > E 8UG 8I4pL8I4
=L58I@ 8I4 EY30 8I4UW8I| 4s0 2P DF2
DHL 6 8IG T < 4R0 >RE< 8IDF4p2 L=E4 |*4 D38 k > 838IW 2tE58a0 0 @Q>R<?@ LI8 l69D 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?8LCcmE528 P DKL 8IG T < 4R0 >R< DF2| 7p| WH|0 ^ E8I4 >R< DF203E > DFE @ Llc 7{| 8 G > 032 > L584R0ZY3D <?@ 4 < 698 >A> 8
25D > 0 >R< DF2N 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
TV8NO0 <?> lW
|8 0IYf0 T 8I4A8I2 8xL503254pTV8I4p4A8I6 DF254p4RE Yy032 8I4p4Ucj8I4 L 8 DFE5T 80 0 L8Tdc 8 E5L587Llcj89\K8 T?8I4
L8 P 036Q>A; @ < 258I4h< 0f5k=@H4 >AG @ 0 <?> >t8IG X4 l ^ E8sTcjDF2: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 Ti0fkD @H8MG 8 > TV8I4 >A@ 03L5E56 >R< DF2=4=lY38 @ 4x{| 8UG Y38I2 > E58ITVT?8 P 8I2 >@ 8 >A@ 0ZYy0 < TiT 8UG 8I4
8I2NODF256 >R< DF2
L58I4 @ 8 FT?8I403LD 5>t8UG 8I4UW
A
, , @ .0! . %'/ !#1:*:.0!2*= !"$#%'&(
|8I4 8 FT?8I4b4ADF2 8I4A8I2 8U8I4L5032=4T?8 0 0 0 ;58a4QE Yf032 4ADFE54TV0 NOD 8 L8S6 2 0fk=T?8I03EH\
lL c 8 G ^ E < Yf03@ T?8I25698ln)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 <?> 40 0 @R>R<?@ L8I4 89\K8 P T?8I4{L8
>AD @ 03L54RE=8I64J>R<69DFD 2 < 2 > 8E <?T?>R8I<4[Y38M0 8Ik 2*8I74x{8 |L8I698D 4 L58I4,G 6 <+qw=T?86U0 L>RD < DF250 4 258IG 86 @Q<?L> 88I4JTV0 8I2Fl03L=W}E5{6 8 @RDF> 2u0 < 28I8I4 4xL89\ 8 50 @ 8ITV4RT 84 < DFL=25034254.l -tDFWK2 Wj>SW8 'G >t/-8 GB
LlP:cm03<E >A@ 8I4~69P:D P:P P 8pTV0 @ 8 @ FT?@810L5E>[>@ 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?8ML5E > 0fkrT?8I03E -tW ^ E < L 8IG 6 @Q<?> TV04ADFE54 >A@ 036 >R< DF2bLlcmE52 8IG T 8 G P 8I2 > LlcmE528I254R8 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^ E8TdcjDF2 0 <?> 6-;D < 4 < L8TV8I4 >A@ 0 <V> 8 @ 0 @ E528 @ 8 FT?84 8IG 6 < w ^ E83WXDFE54[03TVT?DF254 5@H8IG 4A8I2 > 8 @ 698I4
>A@ 03254RN D @QP 0 >R< DF254v4RE @ E5289\K8 P T?8769D P TV8 > W
+
/
elem /
ens - elem " !"&"! $##%$&!' )(
|8 > 0fk=T?8I03E -tW 5@K8IG 4A8I2 > 8 T?8I4 @ 8 FT?8I4L8 >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 8I4D ; {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>K8G k0Dt< 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 < DF24 >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=TV8Y < L58
76 -tW
3 ^ E < Yy03T?8I2=6988I2 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 < DF2540 @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?8I4L8 03L5E=6 DF2L58I4XD 8 0 8IE 418I254A8 k=T 4 8I4 8ITiT?8I4 E8TV0
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)
LCcmE528I254A8 P k=T?8
3 ^ E < Yy03T?8I2=6988I2 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< DF24QE @ T?8I4LDfn
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 > TV869DHLD P 0 < 2,8 + e R C/-Wl|C8I403E >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 8L503254v698 > 0fkrT?8I03E8I4 >v>z_ {8UG 80: Tdcm0 < L581LCcmE528I2Hn
4A8 P k=T?8 DFE @ T?8LD P 0 < 28 + X/h8 > LlcmE5203E >A@ 8 DFE @ T?869DHLD P 0 < 258 + Y/-W5{8I4{8I254A8 P k=T?8I4p4ADF2 > 89\ >A@ 0 <?>
8I2
6UTV034Q4A8I4 e X 8 > e Y W
|8L58 2 8 0fk=T?8I03E -tW 0 0 8MT?8I4 8 FT?8I4L58 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
> 88 > >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?8I4Llc 8IT 8 8I2 4}8I2 8
8{8 8I2 E58IE80 2=4 E8T?8I4D 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< DF2bL87TcjD 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@ DK698I4R4QE54UWlX2 =@ DK698I4Q4RE54 8IE > 8
>A@ 8L503254TV8I4 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 L87Tcj89\K8 P T?87L5E
6
4RE < Yy032 > 4
waiting))
,?
-
Scheduler
T?8 DK698I4Q4RE54{8I4 8I4A8I2 0 4p2DF2b6U0325L L50 0 Tdcm0 k=E DF2L87TV0 @ 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< DF28I2
L < 0 @ 0 P:P 87L876UTV034Q4A8I4sL87Ti0 P 30 6Q; < 28
6 - Scheduler
|hc 2eYf0 032 8I4 69D DF4 8L8 8IL 6U0 4 8IT 8I4 0 T?869DF2528I6 > 8IE @ W 120 T <V^ E8vLDF256TV0 @ 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 > L8TV0 P 8
P 8NO069 DF2+8I2 @ 8I6Q;8 @ 6Q;5032 > T?8I4 @ 8 FT?8I40S 0 T <V^ E8 @ W 12 D3k >R<>A8I@ 2 >
0 < 254 < TV0M69DF2 >A@ 0 < 2 > 8xw=2503T?87L87Ti0w FE @ 8 -tWKW
,?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 < 44 < 2DFE54 5P @ 8I2DF254E52b; 689\K8 P < T?8J 69D < P:P _ 8TV8J4RE < 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?8I4M8 > ,?L5E > 0fkrT?8I03E
-tW 8 > TV0 @ 8 FT?8JML=E > 0fk=T?8I03E -tWjW
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 > 8xk8I03E=69DFE TVE=4p69DF256 < 41 @ 03
6980: 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 @ k8I03E569DFE TVE544REkA8I6 >R< N B2DFE54 0 @ 0 > 8
>A@ 8 0] Tdcm0ZYy032 > 038 L8l 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< DF28I2 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=4D P:< 4CL8 P 032 < 8 @ 8 Y3DFT?DF2 > 0 <?@ 8 T?8I4l89\ 5@ 8I4R4 < DF254CLlcm0 @ k @ 8I4l8 >@ 8I69D @ L54 ^ E <
4ADF2 > 8IEE >R< T < 4 8UG 8I4l8I2l 8 > 2lcjDF2 > 034CLCc 8 G ^ E < Yf03T?8I2 > L <V@ 8I6 > L503254CTV8I44 >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 8L=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=22D 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 4T?L8[L 8I< 06 B5@ 0T?8 P:P DK8ML5LE 8M6UTV030 4Q4A038ITV4UTd8IW T?183B52 TV0M698ID E > 6 <VDF> 48 @ TdDFc <2L8IL2 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?8I46UTV034Q4A8I48 > 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:TV06UTV03E54A8 INITIALISATION 8 > L8I4
<
D 8 0 DF2=4hL 8I6UTV0 8U8I4 L503254~TV016UTV03E=4A8
Wf28pD 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 @ 4L8I4D {8 G @ 0 >R< DF2548 > 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
> 869D P 5@ 8I2=L E=28T < 4 > 8D 5>R< DF2528ITiT?8L8 @H8IG 4RE5T > 0 > 4 >`_ 8IG 4 <VP T < 6 <?> 8 P 8I2 > L=03254T?869D @ 4ML8
TdcjD {8 G @ 0 >R< DF28 > E528T < 4 > 81D 5>R< DF2528ITiT?8L58 0 @ 0 P 8 >A@ 8I4 >`_ 8IG 4s89\ T < 6 <V> 8 P 8I2 > 4Uc < TV4 89\ < 4 > 8I2 > @ 03
6980M 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< DF28I4 > 0 8IT 8UG 83W5 8 >A> 84REk=4 >R<V> E >R< DF2:69DF254 >R<?> E8
T?869D @ 4L8TdcjD {8 G @ 0 >R< DF<2 l 8 > T?8I4103E >A@ 8I44QEk=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 < L8sTV0w 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*L58TV0 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 DF2LlcmE5286UTV034Q4A83B 7{| 8 8 LCcm034R4ADH6 < 8 @ E528 5@H89G n`69DF2=L <?>R< DF28 >
INITIALIZATION E528 DF4 > n`69DF2=L <?>R< DF2LDF2 > 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< DF28I4 > 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< DF2l 0 @ T?8 P 8IG 6U032 < 4 P 8xL8 >A@ 03254 n
NOD @QP 0 >R< DF28I2 5@H8IG L < 6U0 > 0IYf032 > n`0 =@ 8I 4 Cj D 0 @ 0 @ 0 ;8xKWKWM8 > -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-tWKWKWKW
,?
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@ 889\ >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?8L5E Scheduler
|8I4s69DF2 >A@ 0 < 2 > 8I4sD3k > 8I2KE8I44RE @ Tcj89\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 8D3k 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 -tWKWKWKW < > <?>R< @ {G @ >R< activer
s8 0 E8 'F2 lB}E528:D 8 0 DF2 8IE 8 DFE 28 TVE54 8IE 4 8I4RE5T 0 4IW /103254JTV0 03L=E56 DF2
1b|Cn)7P {@Q| ^ B T?8 =@ 8 P:< 8 @J@K8IG 4RE5T > {0 G> @ 8I>R4 < > 69DF254 < L >78 G @H@ 8G > 69D P:@ P @ 8T?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 < TV869D @ 4[L58TcjD 8 G @ 0 >R< DF2
8 DF2+0 T <V^ E8T?8I4 @ 8 FT?8I4ML 8UG wr2 < 8I4L503254 Cj D
activer >
DFE DFEY38 TV0 DF4 n`69DF25L DF22 lW|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 < F28xTV0Yf03T?8IE @ 0ZYy032 > 8I24RE M\032 > Ti0Yy0 @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< DF28 > 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}eHBh3DW{8I4M4R6Q; 8 G P 034
69DF25698 @ 258I2 > 03E > 032 > T?8>lT?D < 6 < 8IT ^ E8MT?8>l 4 _ 4 > 8 P 86U0 @ Ti04 >A@ E56 > E @ 8L8I4 # * X8I4 > TV0 P 8
P 8
L503254sT?8I4sL8IE\NOD @QP 8I4XL8lW 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 Wg}0 @ TV0b4QE <?> 82DFE=4 8IG 2DF2 69 DF2=4
T?8I4 @ 8 FT?8I4L8 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 DF41L8I46Q;5D < \aL5869DF2=6U0 >t8IG 2=0 >R< DF2uL58I4L < sG8 @ 8I2 > 4L < 0 @ 0 P:P 8I4 5@ DKL5E <?> 4 E < 44RE @
T?8IE @v< 2 > 8 @ =@K8 G > 0 >R< DF2lW
A ! < ! /?%'A( .*:@ !#"$
XDFE5428 03L5E 4RDF254 E8T?8I4 0 8I44 F2 w=6U0 Y38I4xL58TV04 8I6 wr6U0 DF/
2 lXWh 8 8 03L=E56 DF2
284Ucm0 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 >
L8I4Yf0 @Q< 0fk=TV8I44R6U03Ti0 <?@ 8I4 >`_ {8UG 8I4u0+ Tdcm0 < L8LCcj8I254A8 P k=T?8I4 8IG 2tE P 8 G @H8IG 4IWXg}0 @ 69DF254 8 G ^ E8I2 > T?8I4Yy0 @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?4R8E @0: 8I26 D >R< DFk254}878I2:LCc 4A8 DF02 > 489w=\H6U2 TiEW 8I'h4U2W X8 DFE58 4
T?8I4L < 0 @ 0 P:P 8I4Llc 8 G > 0 > 4 n >A@ 03@ 254 <?>R< DF2=47{L8:G < TV02>RD < > 0 >R< DF2S1| P 28 8 @QP 8 >A> P 8I2 > @ 034G > 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 Cj3D74A8I>A6 > >R< DF2v@ lPW fP W <?@8 > P lW f< W-tW * > +* 8I4 >
TdcjD {8 G @ 0 > 8IE @ c c5L5032=4vT?8I4 P 036-; < 28I4v8 > E52L8I4pD {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 l8I2 L < 0 @ 0 P:P 8I4xLlc 8 G > 0 > 4 n >A@ 032=4 <?>R< DF2542D > 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< DF2L58I4 4QEk=4 >R<?> E >R< DF254UWF|8I4 4QEk=4 >R<?> E >R< DF254 L5ETV032 F038Hl + 0 @ 0yn
@ 0 ;58xKWKW 0'/v4ADF2 > 0 @Q> 0 8UG 8I48I2
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 TV8I44REk=4 >R<V> E >R< DF2544 <VP T?8I4XL 8UG wr2 < 4R4A8I2 > Tdc 8 G > 0 > 6 < k=TV8L58Ti0DFE]L8I4 >A@ 03254 <V>R< DF2 +q4 /
>T?8I03425FL 0 < 4 L^ 8IE4 8JDFT?E8I4v69DF4RE25krL 4 >R<?DF> E 25>R4h< DF4A8I2=TV4 DF2L587T?8 69D P 8DFL54 <?8 >R< DF20325w54 \K8I2 DF> 2lWKTdc /8 G > 030 2=> 4 4R69DF81E @ 6Q69;=8x0 L87Ti80DFDF2EbE 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 L8TV0 8 ;5DKL81l8I4 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?84RE < Yy032 > B~TV0 P 036Q; < 258 +Ow SKW /M4A82D P:P 8 M1 8 > T?84RE 8 @ n 8 G > 0 >M@K8IG 4RE5T > 032 > L84ADF2 89\Kn
>A{@ ;50360 >R< EDF82*Yy+O0 w 0fKk=WT?'8/ 695D @ 8I8I254 LDFT?8 25LJP 8I8
TVP T?88x032E=D 4R4P W0 'E=252J4R4RE E <V> 88 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 T8I4 >< 254 8 G @H8G L503254T?84RE 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 TV8I4Yy0 0fk=T?8I4ML8TV0S4 8I6 w=6U0 DF2lW D 82DFE54MTdcm0ZY3DF254L 8Uw=2 L=03254MTV0
4A8I6 >R< DF2 KWK< BDF2 >M258>`_ 69DF25@ 4 < Ll8 @ 8 ^ @QE5< 8:T?8I4Yf0 @Q< 0fk=T?8I{4 G >z<_ {8UG 8I>R4
< 0
Tcm0 < LP8MP Llcj8I254A8 P k=T?8I4 8IG 2tE P 8 G G @H8IG 4I<W TV44ADF2 >
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< DF254UBDF2 >A@ 03L5E <?> T?8 >z_ 0 38L58[TV0Yy0 @-< 0fk=T?8 x 0 @ T?8
E2 < Y38I03EL=EL < Nq0 <?>h^ E8 x 8IE > =@ 8I25L @ 8 > DFE > 8I4T?8I4hYy03TV8IE @ 4h69D P 5@Q< 4A8I4hL503254hTcj8I254A8 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 80: Tdcm0 < L87LCcmE528I254A8 P k=T?8 8IG 2KE Pu8 G @K8 G
L8Yy0 @-< 0fk=T?869D @R@ 8I4 DF25LS0 E52 8 G > 0 > L=EL < 0 @ 0 P:P 81Llc 8 G > 0 > 4 n >A@ 03254 <?>R< DF254pDF26 @H8UG 87E52 8 G > 0 > 0 @ Yf03T?8IE @
+Ow KWj /-W
vx , ..., vx
6 M1
x
VX1
KWj ('~\ A> @ 036 >R< DF2bLlcmE528Yf0 @Q< 0fk=TV8 >z_ {U8 G 80: Tdcm0 < L581LCcmE528I254A8 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< DF2544 <iP T?8I428 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 F03T4 T?88 E5T TV8
|C8I44RE5k=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/103254T?8I4 8 FTV8I4L 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 L8I489\ 5@ 8I4R4 < DF254
E >R< T < 4 8UG 8I4 0 @ # 8 > ! 8IE > Nq0 <?@ 80 0 @ 0 >A@ 8 TVE54 < 8IE @ 4[Yy03TV8IE @ 4
>E5032258L 4A< 48IE5^ TVE8x8:Yf0369T?8I8ITiET?8:W LK88II47T?DF89\2a5T?@ 8I8IE 4Q4 < 4DF8 25403E 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 > L5E4 _ 4@ > 8 P G P 83W >R<V^ >
fWs28 =@ 8 P:< 8 @ 8:6U0 >K8 G 3D @Q< 869D P DF4 8UG 8L58:TV04REk=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 @ 0L5DF256 >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
KWs28aL8IEH\ < 8 P 86U0 >K8 G 3D @Q< 8S8I4 > 69D P DF4 8UG 8SL8I44REkr4 >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 > L48I64p< 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< DF2L87TV0M4RE5k=4 >R<?> E >R< DF2 |hc < 2 > 8 @ 5@H8 G > 0 >R< DF2aL8698I 489\ 5@ 8I4R4 < DF254 8IE > LDF25258 @ TiE54 < 8IE @ 4{Yy03T?8IE @ 4UW 2b69DF254 < L 8 G @ 8 @ 0Tdcj8I2Hn
4R8 P k=TV8 L8I4 8 G > 0 > 4 VX1, ..., VXN >A@ 03L=E <?> 4L8I4Yy03T?8IE @ 4 @H8IG 4QE5T > 032 > 8I4SL8 Tc < 2Hn
>LC8 c @8 50 @K8 G 41> 0 L>R8< DF2lWv 8I44Q8IE25 k=034 2 >R<?> E >RDF< E DF254D 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=2STV0L58 @ 2 < 8 @ 8:6U0 >K8G 3D @Q< 8 ^ E < 69D @R@ 8I4 DF25LS03E\a4RE5k=4 >R<?> E >R< DF25414 <VP TV8I4L 8 G > 8 @-P:< 2 < 4 > 8I418I4 >
69D P DF4 8UG 8:L58I44QEk=4 >R<?> E >R< DF254 * # " 8 > * # " Wl|0L < 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 > TV04REk=4 >R<?> E >R< DF2
* # 8 8I6 > E8 TVE=4 < 8IE @ 44REkr4 >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< DF28I4 > 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?8Yy03TV8IE @
x := Expression
|hcj89x,\ >Ay@ 03:=6 >RExpression,
DF2 L8
698I4Expression
4REk=4 >R<?> E >R< DF254[8I4 >@K8IG 03T < 4 8UG 8L58
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 @ 4E=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 8I4pLDF25614ADF289\ >A@ 036 >R< DF2NO8 @ 00 0 @ 0 >A@ 803E > 032 > L8NOD < 4 ^ E82 8IG 698I4R4Q0 <?@ 87T?814R6Q; 8 G P 0
L58sTdcj89\ 036 DF2L8sTV074QEk=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 DF28I4 E5287D 8 0 DF2 0 6UE5T 8 8 E 8I4 Ti0 8 8 8789\ 8I6UE 8U83W '2lBrTc 2 0yn
T < 4Q0 >R< DF< 2<?8 >R>< T?8I< 4pD >R<{8 G @ 0 >R< > DF2544ADF2 {>XG P @ DK>R<L 8IG T < 4 8UG 8I@R4v>R<8I2E < >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 8E528L 8 8I256988I2+698 E 69DF25698 28
T?8I44RE5k=4 E DF254J69DF2=L DF25258ITVT?8I4x69DF2=698 25032 E528
Yf< 03T?8IE < @ > L8Yy0 @Q< 0fk=< sGT?83@W 'h28 8 > E=28^ 69<DF2=L <?>R< DF@24A8L 8 G > 8 @QP:< >R25<?8> >R0< @ @ 0 D @R> <?>R0< TV0[Yf03T?8IE @ LlcmE52@ 8Yy0 @-> < 0fk=T?8
D @ 0IYf032 > Tdc < 2 <?>R< 03T < 4Q0 >R< DF2TV0MYf03T?8IE @ L58I4sYf0 @Q< 0fk=TV8I4s2lcj8I4 > 034L 8UG w=2 < 8[LDF2567DF228 8IE > 0340IY3D <?@ 698
I
7 38I2 @ 8L8[4REk=4 >R<V> E >R< DF2u0
Tdc 2 03T 4R0 DF28I2E T 4R032 TdcjD 8 0 8IE c c?WC 8 8I25L5032 T?8IE E T 4R0 DF2
8I4 > DF4Q4 < k=T?88I2E >R< T < 4R032 > T?8 < <V>R < < >R< # C89\ >R5< @Q< <VP 8G > 0 Tdcm{0 <G L5@ 8x> L8J@ TcjD 8 G @ 0 > 8IE @ c?c?B > P 0 < 4X@ T?8I>R4s< Yy< 03TV8I>RE< @ 4
L8I4Yy0 0fk=T?8I4X0[ TV0wr2L8Tdc 2 03T 4R0 DF24A8 DF2 DFE DFE 4hT?8I4 8
8I4{6U0 Tdcm0 8I6 0 DF24R8 0 8I03T 4 8U8
8I2
NODF25@-6 < >R< DF2bL8xTV0MYf03T?8IE @ Ll< cmE5<?2>R< 8Yf< 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< DF2L=03254T?8I4D {8 G @ 0 >R< DF25474 < TcmE >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 > Tcj@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 @ L8Yf0 @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 ^ E82D <?@ T?8 < 2CB ^ E <
@T?8I8 4 5@H8 8IG 4R0 8I2 4 > 8E Tdc 8 G4R> DF0 2 > 6969DFDFE 25@ 69038 2 >2 B~8I44RE < Y0 < LlTdc cmE54R4R25E8 81lL8I 876Q;Tdc 8 2 +Ow S03T K4QW0 '/ DF^ 2:E 4A< DF4A2 8L L <?8U@Qw=< 32 84 Y38 @0 4E5TV02 DF8 GE> 0 T?8I> 4{6 Yf< k=03TVT?838IEW|C4 8DFEE 8
85@ I2=G > L> Ti0J^Yf0 @Q< < 0fkrT?8> L=EL < 0@ @ G 0 P:P @ 8Ll< c 8 G > 0 > 4 n >A@ 0325< 4 <?<?>R>R< < DF2=< 4v4A>R8I< T?DF2 ^ E>8TV0G 4RE<k=4 >R<?> @E >R< DF28I4 > L 8 G > 8 @QP:@ < 2 ^< 4 > 8
DFE
2DF2CW
|8I4 8UY 8I258 8I2 48 T?8I4pD 8 0 DF2=4X4ADF2 8 8I4A8I2 8I4 0 E528 C8I 6Q;5,8 + 032=4 DF2 / +Ow KW' / E
0 @R> L8G Tc 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 L8XTc 8UG Y 8IG 28 P 8I2 > DFE
L87TdcjD {8 G @ 0 >R< DF2b03E ^ E8IT8ITVTV874A8 @ 0 D @R> 83W
6 7
!
!2"5 %'A@ "$<
"$! !#"$
/103254X698 >A> 8J4A8I6 >R< DF2CB=DF2
E >R< T < 4A8 @ 0TV0M4QEk=4 >R<?> E >R< DF24 <VP TV8 * # " DFE @ 4 <iP T < w=8 @
T?8I4 @ 8 FT?8I4pL8 5@ DHL5E56 >R< DF2L8Ti0 >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< DF24 <iP T?83W3|C8I4 @ 8 FT?8I4hL58 5@ DHL5E56 >R< DF24A8 @ DF2 > P DKL < w 8UG 8I4 L8 P 032 < 8 @ 8[0 @ 8 P TV03698 @ TV0x4A8IE5T?8
>A0: @ 03TV0 254 <?>R03< DFL52E56 L8DFTi20[L4QE8Jk=TV0M4 >R<?4R> EE k=>R4 < DF2 E DF2 E T 4 8U* 83W # " 0 @ TV0xDFETV8I4 >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 > 84R03254v03E56UE=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 TV0Yf03T?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< DF2Llcj89\ 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 ^ E8TcjDF228169DF25250 > 034{TV0J250 > E @ 81L5E 5@K8IG L < 6U0 > P DF2T?8XNO0 <?> 0 0 @ 0 >A@ 8XL=03254TV8I4
(
"
'&(" '&( (
8 G >R<V^ E8 >A> 8I4XL58 >A@ 03254 <?>R< DF2L87Tdcj89\ >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< DF24RE 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@K03G469DF2 >A@ <?0>R<<?@ 8 +qTV0 5@H89G n`69DF25L <V>R< DF2
2D >K8UG 8 P 2lcj8I4 > 034vY @ 0 < 88 > 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{8ITVTV88I4 > 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@ 8T?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 Tc < 2eY38 @ 4A8 0 @ OP[ P] +Ow KW 9 /-WCg DFE @
03E P 8I2 > 8 @ TV0T < 4 < k < T <V>t8:G L58Ti0bw FE @ 8KW 9B 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 8U8Y38 4 8 L8I4 03254 DF254 8 E8 8U8I4
Y38 4 DFE54T?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 > 8L8I4 >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 869D P:P 8L5032=47T?8 > 0fk=T?8I03E
KW 74A8ITVDF2C eDW
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 Tcm0 < L87L8 ! " (
IF P THEN x := vx END
KW -| 0M4REk=4 >R<V> E >R< DF210 |hcj89\ >A@ 036 >R< DF2 +Ow JKW 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 <?> 8I4vL87TV0k @ 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< DF2L87TV0M4REkr4 >R<?> E >R< DF210 |hcj89\ 036 DF2:L8vTV0k 032=6Q;8 ... THEN NO0 <V> 0 0 @ 0 >A@ 8pE5258 >A@ 03254 <?>R< DF2L8pTV0 P 8
P 8sN D @QP 8
E^ 87698ITVT?8 >A@ >A@ 03>RL=< E <?> 87L8 E @< 4{TV0k @ 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< DF2L=03254 > DFE54P T?8I4P 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?8I03EKWKW
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 < L8L8 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< DF254UWr2 5@ 8 P:< 8 @ @ DFE 8J8I4 >8 G >R<V^ E8 >t8 G
0 @ OP[P1]
DlE P1 = E LC1 8 > 69DF2tY38 @ 38Y38 @ 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< DF2L8xTV0k @ 03256Q;58
T 6 8 8I2 FT?D3k8TV8I4 >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 > L5EL < 0 @ 0 P:P 28 +OY3D <?@ w FE @ 87KW I' /-W
6
4
"
(
)(+* ', - / '&(" '&( | 0
69DF254 E=6 DF2]4 2 0y\ E8M8 4 8 032 E8L8TV04RE5k=4 E DF2 0 2 8I4 0 n
U6 E5T < 8 @ 8 +Ow S>AK@ 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< < L8LlcmE52889\ 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< DF2L5E =@K8IG L < 6U0 >
W 8I4 > E526Q;5D < \2DF2L 8 G > 8 @QP:< 2 < 4 > 88I2 >A@ 8 TiE54 < 8IE @ 4~Yy03TV8IE @ 4 DF4Q4 < k=T?8I4h4A8IT?DF2T?8 5@K8IG L < 6U0 > P W
P vx /103254Tdcj89\ >A@ 036 >R< DF2 +Ow KW3'/-B > 032 >
^ E8TcjDF225869DF252=0 > 034TV0u2=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 >
!
# I3
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< DF24AD <?> DF4R4 < k=T?8XLCcmE52 8 G > 0 > 0: E5203E >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
,+ &
&
KW3(' \ >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:L5P8TV8I4^ 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?48I48I28 G >RN <VDF^ 2=E6 8 >A> DF8I24L5L8[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 @ 698L8TV0 >A@ 30 254 ?< >R< DF2CWr|C8I4X89\ 5@ 8I4R4 < DF254
< 2 > 8 @ 5@H8 G > 0fk=TV8I4vL8 P NODF2 > 0 R@ >R< 87L87TV0MT < 4 > 872DF289\;503E54 >R< Y38x4RE < Yf032 > 8
x = vx
x 2 vx
!
(
(
x
x
7 7 I3
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 > 034D3kr>AT@ < F0 > <?D >R<?< @ 8 P 8IG 2 >R> <V^ < 2 > 8>t@ G 5@K8 G OP[P]
0> fk=T?8 L503< 2544Q0 > D > 03VXI
T <V>t83G W
T 89\ < 4 > 8 ^ E50 >A@ 8M6U034L8w FE @ 8JDCEa
E528 0 @R>R< 8L58 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 > Ti069DF25L <?>R< DF28I4 > 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 L8faux)
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'Cj0D~L 8UG Y38IT?D {8MG 03Ea4A8 < 2bL=E| k 1Wl 8 > 032 <VP 0 > 8IE @ Cj0B3D 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< DF28I4 > TV04RE 5@ 8I4R4 < DF2
L8I4 >A@ 03254 <V>R< DF254 @H8 G 589\ < Y38I4103E > DFE @ L8I4 8 G > 0 > 476U0 @
8ITVT?8I4258 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{28Nq03E > 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?DF2540 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~|C8L << 0> @ @ 0 5P:@HPG > 8>R< L8TV0w FE @ 8
KW Ia>RL<?> 8UY >R< < 8I2 > 03TV!D "@ 4698ITVE < L8
TV0w FE @ 8xKW3KW
+
...
VX1
...
VXI
VXN
KW3('~\ >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< 8L8TV> 0b69<V>DF2=L <?>R< DF2u@QL@ 8 >A> @ 0325^4 <?>R< DF2uL8Tcm03E >A@ 83W}@R>R/< 032=4[Ti0b> 4 {8IG 6 P< wr6UP 0 >R< DFP 2u4QE < <Yf032 > 8 > ^ +Ow KWy /TV07Yf03T?8IE @ L8XTi07Yf0 @Q< 0fk=T?8 x 8I4 >{P DKL < w 8UG 8s4A8IT?DF2E528X4REk=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 KW0'/a69D 8I4 DF25L=032 0 TV0
4 {8IG 6 < wr6U0 >R< DF2 +O< w @ KWP:y P /-B y =G > Y1> 8I>A4@ > E52<?>R8b< 69DF2=L <?>R< DF2 8ITVT?@Q8b< 8I4 > LxDF2=6
8I2 >A@ 86 @ DK6-@R;@ 8 > 4UW{|C8NO0 > <?>^ E58
TV0M69DF25L <?>R< DF2L8 >A@ 032=4 <?>R< DF28I4 > 8I2N DF2=6 >R< DF2
L8 y 8I4 > 4 _KP kDFT < 4 8UG 8 0 @ IN 8I2 >A@ 8J6 @ DK6-;8 > W
) (
'2l 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 KW3'/-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 87Tc 8IG 6 @-<?> E @ 8xL587Tdc <VP T 8 G P I8 2 > 0 >R< DF2 ^ E < E >R< T < 4A8E52 <i^ E8 P I8 2 > L8I4sL5DF252 8UG 8I4s69DF256 @ 8 > 8I4IW
"!$# %'&()*+,!.-$/01$# ,23465(783
Iy
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
KWy /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
KW0 @ 30 L5E56 R> < DF2
L8I4pYf0 @Q< 0fk=TV8I4p69DF256UE @R@ 8I2 > 8I4
...
KW3287D {8 G @ 0 >R< DF2b0ZY38I6 0 @ 0 P 8 >A@ 8
12 8 DFEY387698 0 0 8 8xL 8Uw=2 L8TV0
8
8 032 8 88I2 8 0 8I2 ;8I 4A8I4J0M TV04RE <?> 8L5E2D P
L87TV0 A> @ @0325>A4 @ <?>R< DF24QE @ 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> < DF2L8I4 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< DF254L8p69D P )DF4 <V>R< DF2J4R8I69DF2Hn
PRINCIPALE B (
L50 <?@ 8I4 SUB SECONDAIRE B( 0IY38I6M69DF25L <V>R< DF254 CondS( +Ow KW3'/XDlE x @ 8*) @H8IG 4A8I2 > 8:T?8[2tE P 8 G @ D
L8k @ 03256Q;83W
84ADF2 > 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?8L581Ti0 >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< DFDF225447<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< 4L8I<i4P 4RE@-k=<V^ 4 >R<?>G E >R< DF25-4 ) @Q< 2=6 <<V)=>R< 03T?8I4s8 > 4R8I>A69@ DF25L5<?0 >R<?< @ 8I4DCES 4A> 8M4 <V> E8[TiG 04RE5k=@4 >R<?> E >R< DF>t2G 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
KW3 P k @-< 6U0 >R< DF2L8x4QEk=4 >R<?> E >R< DF254 L8x69D P )DF4 <?>R< DF2
W|816U03Ti6UE5TlL8I4 03254 DF254 L5EL 0 0 88I4 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:TV04QEk=4 >R<?> E >R< DF2a4A8I69DF25L50 <?@ 8:4R03254DFEkrT < 8 @ L8
6U03TV6UE5TV8 @ TV0M69DF25L <V>R< DF2L8 >A@ 03254 <?>R< DF2L5,E @ DFE )83W
-,
' R % " '
{;=0 ^ E8D ) 8 G @ 0 >R< DF2 8I4 >>A@ 03L=E <?> 8 )r0 @ E=2 P D @ 698I03E+L58L < 0 @ 0 P:P 8Llc 8 G > 0 > 4 n >A@ 03254 <V>R< DF254 @ 8ITV0 >R< N
0 E5258DFE )=TVE54 8IE 4JYy0 0fk=T?8I4UW~g DFE D3k 8I2 T?8
L 0 0 8Llc 8 0 4 n 032=4 DF25469D )=TV8 LlcmE528
Yf0 @Q< 0fk=T?8 < T{4RE < > L@ 869DF@Q25< 6U0 >t8IG 28 @> DFE5@ 4MT?8I> 4 P <?@ D @ 698I03EH< \ @ @ 8IP:TV0 >RP < Nq40] 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 > 4A8L <?@Q< 38I2 > Y38 @ 4pE5203E >A@ 83W Tr4RE > L8 @ *8 ) @ Dfn
L5E 8JT?8I4 03254 DF2=4XL8M6-;50 E58:4ADFE54 n`L 0 0 84RE T?8ML 0 0 869D )=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< DF2L503254Tdc < 2tYy0 @-< 032 > B < TC8I4 >< 2 >t8 G @ 8I4R4R032 > 0 )r0 @R>R<?@
L8I4L < 0 @ 0 PP 8I4XL58[698I4Yf0 @Q< 0fk=T?8I4Llc 8 G > 0fk=T <V@ E524A8IE5T 8 > E=2 <V^ E8xL < 0 @ 0 P:P 83WC 8I6 < 03E @ 0 )DFE @ k=E >
L8Yy03T < 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
12D3k 8I2 T?8L 0 0 8 8I4RE5T 0 8I28 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 > 8I44RE < Yf032 > 4UB
B54 B' zB zB=| DCE
8I4 > Tcj8I254A8 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?8L8I4 8 G >R<i^ E8 >A> 8I4L8 >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< Y380 E5287Yf03T?8IE @ L87Yf0 @Q< 0fk=TV8xL8
Tcm03E 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< DF2Llc 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 / ) DFE4 )
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 E528I254A8 k=T?8ML8M4 256Q; DF2 4R0 DF2 E 8I4 E52a4ADFE54An8I254A8 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 < 256UTVE8L5032=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 B4 / +q4 B4 /
4 < 4 4 B4 4 B4 u6 B4 ]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 @ Ti04 _ 2=6Q; @ DF2 < 4R0 >R< DF2aL8I4036 >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
KW3(' \K8 P )=T?8L8 P 036-; < 28
KD Ti0 036Q; 258 +Ow bKW3'/ E )8 8 L8. 8 8 L8IEH\Yy032=28I4Llcm03T 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 284ADF2 <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 254X0fTkrc < 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 @ 8xKW HW
126U03TV6UE=T?8 TV8{L 0 0
8{L8 B +Ow 7KW / )=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< j3@ P:Wr| P 04 _ 25M1
6-; @ DF2 < 4Q0 >R< DF28I4 >X@K8IG 03T < 4 8UG 8
0 Tdcm0 < L58xL8I4s69DFE )=T?8I4sLCc 8UG Y 8IG 28 P 8I2 > 4L8
,
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 <^ E8TV8I4 < 8UG Y @ 8IG 2P:8 P P 8I2 > 4 ^ E < # 2l cm!0 ) )=0 @ # 0 <4R"4A 8I2 >^ ^ < E8aL5>:0325P:4< TdcmE52
L8I4L8IE\L < 0 @ 0 P:P 8I4 +#%$'& )(* &+ #%$'& ,(* &.-/ 0/ DFEY @Q<?@ Y BpDFEY @Q<?@ YKB
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?8L838I4 >R< DF2*+ / )=0 @ T?8x4 _ 4 > 8 P 83W T2lcj89\ < 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 > E52u6U034Llc 8 G > E5L8 j @H8IG 03T < 4 8]G 0 )=0 @R>R<V@ LlcmE=284 ) 8IG 6 < wr6U0 >R< DF2 8IG 6 @-<?> 84A8IT?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 8G L=03254MTV0 k < ]KW3KW T{8I4 > 69D P )DF4 8bG L58 >A@ D < 4
L < 4 )DF4 <?>R< Nq4
E=2L < 4)DF4 <?>R< NCLlcm0 @R@Q< Y 8UG 8xL8I4 ) < 8I 698I4s0 ) )8IT 8G *fB
E=2L < 4)DF4 <?>R< NCLlc 8UG Yy036UE50 >R< DF2L8I4) < 8I 698I4s0 ) )8IT 8G B
E=2SL < 4)DF4 <?>R< N}L58 >A@ 03254)D @R> L8I4,) < 8I 698I4IB0 ) )8IT 8 G qB ^ E < 8I4 > E52ak @ 034 P E52 < LlcmE5258 ) < 25698
%CT?8
k @ 034ML < 4 )DF4A8L8 >A@ D < 4 P DFEY38 P 8I2 > 4 +OY38 @Q>R< 6U03TdBh;D @-< DF2 > 03T{8 > 8I2 ) @ D3NODF25L8IE @ / % Ti0 ) < 256980
8 G F03TV8 P 8I2 > E52 P DFEY38 P 8I2 > LlcjDFEY38 @R> E @ 88 > L8NO8 @QP 8 > E @ 83W
E56UE52L8I4 >A@ D < 4vL < 4 )DF4 <?>R< Nq428)8IE > 69DF2 > 8I2 <?@ )=TVE54pLlcmE=28,) < 8I 6980: TV0NOD < 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 KW3|C8 @ D3kD >
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 + & ( /-We28
) < 8I 69828)8IE > 0 @R@Q< Y38 @ 4RE @ E52L < 4)DF4 <V>R< NrLlcm0 @Q@Q< Y 8UG 8 ^ E84 < 698ITVE < 6 < 8I4 > T < k @ 8 + & ( /-WK|8I4 P DFEY38 P 8I2 > 4
L5EL < 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< DF2k=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< DF2L8I4 P DFEY38 P 8I2 > 41L8
TV0) < 256982 < 698IEH\
L5EL < 4 )DF4 <?>R< NCL8 >A@ 032=4 )D @R> 8I2 ) @ D3NODF25L8IE @ W
6
*)
&
) ,
( (& '&((
!
*
( #$& ( ( ) &( (
| 0 036Q; 2580fk=4 0 8 +Ow :KW3' /{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 @
L8xTc 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
KW3036Q; < 25870fk=4 >A@ 0 <?> 8
|8
L < 0 @ 0 P:P 8L58Ti0Yf0 @Q< 0fkrT?8 dt0 +Ow ]KW3' /-B 8I4 > 89\ >A@ 0 <V> 0. )r0 @R>R<?@ L 8 A> @ D < 4 I8 G T 8 G P I8 2 > 4L58Ti0
4) 8IG 6 < wr6U0 >R< DF2l L5E @ D3kD > +Ow KW3'/ ^ E < 4ADF2 >
6
2 Tc < 2 <?>R< 03T < 4R0 >R< DF2
TcjD ) 8 G @ 0 >R< DF2 Chgt
TcjD ) 8 0 DF2
|C8JL < 0 @ 0 P:G @ P >R8< 89\ >ADchgt
@ 0 <?> L87Tdc < 2 <V>R< 03T < 4R0 >R< DF28I4 > 96 8ITVE < L87TV0w FE @ 8xKWyW
3
Robot0
Dt0
vid
occ
KWy / < 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 889\ >A@ 0 <?> L8xTdcjD ) 8 G @ 0 >R< DF2 Chgt 4R03254s4 <VP )=T < w=6U0 >R< DF28I4 > 698ITVE < L87TV0w FE @ 8xKW0KW
6
Robot0
Dt0
vid
Chgt
[Dt0 = vid]
Chgt
[Dt0 = vid]
occ
K W0/ < 0 @ 0 P:P 8JLlc 8 G > 0 > 4 >A@ 03254 <?>R< DF2=4 L=E Robot0 89\ >A@ 0 <?> L87TcjD ) 8 G @ 0 >R< DF2 0 12D3k >R< 8I2 > T?8aL < 0 @ 0 PP 8aKW3 0 ) @ 8I 4TV0 4 <VP )=T < w=6U0 >R< DF2 )r0 @ 4QE+) ) @ 8I4Q4 < DF2 L58TV0 >A@ 03254 <?>R< DF2
@HL8 G8I584 9\ < 03Y3258M4 4R036QDF;=2=034U2 W >^ E8 P dt0 = vid 8I4 > Y @ 0 < L503254Tdc 8 G > 0 > vid BTV069DF25L <?>R< DF2 [Dt0 = vid] L < 4 )=0 @ 0 >
>A@ <?>R<
6
Robot0
Dt0
vid
Chgt
occ
KW3/ < 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{DF2D3k >R< 8I2 > T?8 L < 0 @ 0 P:P 8p69D @R@ 8I4)DF25L5032 > 01 TdcjD ) 8 G @ 0 >R< DF2 Dchgt +Ow xKW'-/-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[KWyB KW38 > KW'- )DFE @ 3D k > 8I2 <?@ T?8
L < 0 @ 0 @ P:P > 8769D P )=TV8 > >tGKW3@:L8xTi>A0M@ 4<) 8IG 6 < < w=6U0 @ >R< P:DF2bP L5E @ D3kD > KW@ 3KW
6
Robot0
Dt0
vid
Chgt
Dchgt
occ
6
KW3/ < 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 < JKW3'/-BK25DFE54 < 2 >A@ DHL5E < 4RDF254}T?8vL < 4)DF4 <V>R< N=Llcm0 @R@-< Y 8UG 8 @ 8*) @K8IG 4A8I2 >t8 G
)=0 @ TV0Yy0 @-< 0fk=T?8
Wh 8 8Yf0 0fk=TV8 )DF4R4U8I L8L8IEH\ 8 0 4 Y L8 + / E5032=L Th2lc 003E56UE528
) < 8I 6984RE @ TV8L < 4)Da1
DF4 <V>R< NLlcm>A0 > @Q@Q< Y 8UG @Q8< 8 > DH6U6UE+) 8 G + occ/7L8I 4G > ^ > ElcmE=28< ) < 8I 69vid88I4 > ^ 0 @R@-< Y 8UG 8< 4RE @ _ 698L8 @ 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 84RE Yy032 8 Ti0) 2=698X28)8IE 6Q;=0 38 E58X4Uc T 0[E528-) 8I 6984RE *X8 > ^ E84 < =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)DF25L03E
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@ 0xL869DF25250 >A@ 8XT?8 >`_ )81L8) < 8I 698
@
03E
6-;50 @ 38 P 8I2 > W|8I4vL < 4 )DF4 <?>R< Nq4Llc 8UG Yf036UE50 >R< DF24A8 @ DF2 > 8 G @K8IG ,4 )=0 @ TdcjD ) 8 G @ 0 >R< DF2 evac W
|8L < 0 @ 0 P:P 8LCc 8 G > 0 > 4An >A@ 03254 <?>R< DF254L58TV0SYf0 @Q< 0fkrT?8 Type )DFE @ TdcjD ) 8 G @ 0 >R< DF2 Chgt 0ZYy032 > 4 <VP n
)=T < w=6U0 >R< DF2S8I4 > 698ITVE < L58TV0w FE @ 8KWj 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/103254vTc 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> 8L=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
KW3g @ 8 P:< 8 @p@ 028 P 8I2 > L5E @ D3kD >
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 87L87TV0w FE @ 8xKWj
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< DF254XL8xTV0Yf0 @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< DF254XL87TV0Yf0 @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 8I4D ) 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 KWje'/-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]
KWje/ < 0 @ 0 P:P 8xLlc 8 G > 0 > 4 n >A@ 03254 <?>R< DF2=4s69D P )=TV8 > L87TV0Yf0 @Q< 0fk=TV8 Type
HE @ T?8 P 8
P 8 ) @Q< 256 < )8 L8pL 8IG L5E=6 >R< DF2DF2L 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 KWje'/
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
KWje/ < 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 D3kD T54RE L86U03TV6UE5T?8
T?8 ) @ DHL5E @ <?> 4 _> 256-<?; @ @ DF2 < 4 < 8G L@ 8I4{P:4APDFE=4 L < P 0 @ 0 P:> P 8I4{L816QG ;=< 0 ^ E8>R< Yf0 @QRobot1
0< fk=T?83W 1269@ 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< Nq4L8 Dt1 8 > Type / / / / +p; > B
{; /-B +q/6-; Br/16-; /
|C8 @H>8IG 4RE=T > 0 > / > > 8I4 >7< TVTVE54 >A@H8G )=0 @ TV0w FE @ 8KWj3W|8I41Yy03TV8IE @ 4L8I4Yf0 @Q< 0fk=T?8I4 Dt1 8 > Type 8I2
NODF256 >R< DF2
L8I4 8 G > 0 > 4XL5EL < 0 @ 0 P:P 874RDF2 > 25D >t8UG 8I4L503254sT?8 > 0fk=T?8I03EbKWKW
2 Robot1
Dt1,Type
S1
Chgt[IN Da1 = occ]
Chgt[IN Da1 = occ]
Dchgt[IN
De1 = vid]
S2
Dchgt[IN
De2 = vid]
S3
KWj3 / < 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 <?> 8pDF26U03TV6UE5TV8sT?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
KWj0M8 > T?8I4pYf03T?8IE @ 4pL8I4vYy0 @Q< 0fk=T?8I4 )DFE @ 6Q;=0 ^ E8 8 G > 0 > )=0 @ TV8 > 0fk=T?8I03EbKWjW
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 > E8L8*)=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|C84 _ 4 > 8 P 8 @ 8I4)8I6 > 8[698 >A> 8) @ D ) @Q<o8 G >t83G W 12 )DFE @Q@ 0 <?>
Dt1 > Da1
03E54R4 < T?8Y 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
KWj0/ < 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 > L8LDH6UE P 8I2 > 8 @ 8 >[P:< 8IEH\]69D P ) @ 8I2=L @ 8TV8I4J4) 8IG 6 < w=6U0 >R< DF254 8I2]89\Kn
A
>
@
>A@ 0 _ 032 > L8I4YKE58I41b|hW '2 8 8 > TdcmE >R< T < 4R0 >R< DF2+L8 Pu8 G > ;DKL58I4NOD @QP 8ITiT?8I4 > 8ITVTV8I4 ^ E8TV0 Pu8 G > ;DHL8
0
)8 @QP 8 > LlcjD3k > 8I2 <?@ E52 >A@ 8I 47kDF2S2 < Y38I03ESL58:69DF2w=0325698:L5032=4T?8:L 8UG Y38IT?D ) )8 P 8I2 > B P 0 < 4258:LDF2528
03E56UE52582F0 @ 032 >R< 8L58Yf03T < L50 >R< DF2]L8TV04) 8IG 6 < w=6U0 >R< DF2 )=0 @J@ 0 ) )D @R> 03E ) @ D3krTq8 P 8 )DF4 8G L=03254xT?86U0yn
; < 8 @ L8I46Q;50 @ 38I4UWp|0 Pu8 G > ;DKL58E >R< T < 4 8UG 8 )r0 @ 8 @R> B{g D > 8 > 8 > > DFE5TV4L503254 j3HB 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 L8I469D P )D @R> 8 P 8I2 > 4ML5E 4 _ 4 > 8 P 8 ^ E8ITVT?8 ^ E84AD <?> TV04 ) 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< 4T?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/1403L 25< 04 j@30 %PBtP 698 8I418 Llc 8 G >8 0 >;47DHLw=82 < 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 40 E52 )=0 @ < 2 J>A> 8I2PuNODFG >256 >R< DF2L5E2D <VP^ k @ 8L,8 @ )=Ti03698I4{P 8 > L> 8I4
Y3D <?> E @ 8I4L 8 G Z08I2S4 > 0 >R< DF2=28 P 8I2 > B < TVTVE54 >A@H8G )=0 @ T?8I4w FE @ 8I41KWjeKBKWj -tB KWje8 > KWjeKB 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?8L < 0 @ 0 P:P 889\ >A@ 0 <?> L5E @ 0 28 P 8I2 > +Ow aKWje' /-W |hc 8 G > 0 > 69D @Q@ 8I4 )DF25L5032 > 0 TV0bYy03T?8IE @ L8
TV0Yy0 @Q< 0fk=T?8 cc L8UY < 8I2 > E524R+E )8 @ n 8 G > 0 >1< 256UTVE5032 > L8IE\4RDFE54 n 8 G > 0 > 469D @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
KWje| 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
KWje|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
KWje _ 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 8L 8 0 6Q;5869DF254 4 8
0 L 8UG w=2 > <?@ E52uL > < 0 @ 0 @ P:P 8Ll@Q<?c >K8 G >G 0 > 4 n >A@ 03254 G <?>K>R<G DF@ 254[> Nq0 < 4R032 > 0 ) )r0 @ >A0 @ >A@ 8E528 @)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 > L58E 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 L8I4P 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 @ 8L8vYf03T?8IE @^ Elcj8ITVTV8I4 )8IEY38I2 > ) @ 8I25L @ 83WtbD < 254
6
'
DF2 @ 8*) @H8IG 4R8I2 > 8:L8[Yf0 @Q< 0fk=T?8I4)=TVE=4XT?8L < 0 @ 0 P:P 88I4 > T < 4 < k=T?88 > 89\ )=T?D <?> 0fk=TV83Wr/103254E528[D ) >R<V^ E8L8
69DF256 < 4 < DF2 L5E*L < 0 @ 0 P:P 8 < Tp8I4 > LDF256
2 8IG 698I4Q4R0 <?@ 8L8 @ 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
2803E 8 )=0 6UE5Ti0 8JL8[698 8ML 8 0 6Q;58 8I4 L8L503254TV04R6 4R4 DF2L8I4X69DF2=L DF254XL8 032Hn
4 <?>R< DF2
8I2L8I>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 L588TV690]DF25w L FE @ DF82 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 K8I2Wje8 +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@ 84RE5k=4 >R<?> E >R< DF2]69DF25L <V>R< DF2528ITVTV80 Tc < 2 >K8 G @Q< 8IE @ L8TV04REk=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>t8G L8
Tc 8 G > 0 > 6 < k=T?8
L8TV0 >A@ 03254 <V>R< DF2lW '2 Llcm03E >A@ 8I4 > 8 @QP 8I4UB~TV069DF2=L <?>R< DF2 L8L 8IG 6UT?8I256-;50fk < T <V>t8G 69D @R@ 8I4 )DF25Lu03E @ 0 289n
PL 8I2 8 > 8IL258J698xTV.0 LCFc 8 0 @ 0 L8[6 Lk=8xT?8Tdc 8ULG Y 878IG Ti250 8 P 8I032 25> 4 L8JDF2TV0 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=F2250f4Rk +E < )T <V8 >t8G 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
T89\ < 4 > 8E528[L < sG8 @ 8I25698[8I2 >A@ 8T?84 _ 4 > 8 P 8ML8 >A@ 032=4 <?>R< DF254 8 G >R<V^ E8 >t8UG 8I4D3k > 8I2KE+0
Tdcm0 < L58JL8[Tdcm0 )n
) @ DH6Q;58L58 8 @Q> B g D > 8 > 8 > > DFE5TV4 +Ow ]KWje'/8 > T?8L < 0 @ 0 PP 8Llc 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 @ 8I4KW 0 HBvKW 0 BpKW 0]8 > KW 03KB )DFE @ TV0
4) 8IG 6 < wr6U0 >R< DF2L5E @ 0258 P 8I2 > L8Tdcj89\H8 P )=TV8L5E )=0 @ < 2 B Parking r1 W 'h28 8 > Tdc 8 G > 0 > cc = -1 L8TV0
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 > 4L8 w FE @ 8pKWje169D @Q@ 8I4)DF25L
0 L8IEH\ 8 G > 0 > 4IB S3 8 > S4 L8pTV0w FE @ 8pKW 03KWK 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 @40 )=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?DF22D >A@ 8L 8 G P 0 @ 6Q;83B54ADF2 > 69DF254 >A@ E <?> 4L58*)=E < 4T?8I4
L < 0 @ 0 P:P 8I4 @ 8I4)8I6 >R< Nq4L8I4Yf0 @Q< 0fk=T?8I4ML58Ti04 ) 8IG 6 < w=6U0 >R< DF2lW g}0 @ 89\H8 P )=TV8 )DFE @ TdcjDFE >R< T 8I28 _ 4 >
jy B T8I4 2 8I698I4R4R0 8LCcm0 DFE > 8 @ TV0JT < F28
L503254TV0x4 ) 8IG 6 < w=6U0 >R< DF2
ASSERTION cc=-1 or cc=0 or cc=1
L87TV0< w FE > @ 8xGKWjeKW <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<[d03BOM58Ubc+M ).)DKEM52WBOCl2=0I6 0LNM0
8U03KEKP0?:032_2 )_036 8ICP`98IBa<>CPbc;52^BadD2F<F4-BOCP<F032Ih
036 BO;5knbcCE;52_CEK2F0I4ABOCP<^CE;=<=0I6 4>032>2>BO;=<^:eH0UTN<F4-BOCP4>0:032_2 )_036 8ICP`D8IBa<>CEbc;52
8Ubc;58U430IQ <F032:032y036 Km036 kS03;=<>$2 )0I4Akn0I<F<>BO;<RMD;0SkS03CEKEKP03M54>08Ubck )54N036 @03;52>CEbc;vcKPbOdDBOKP0n:0SKP03M54{bc;58U<>CEbc;5;0Ur
kS03;=<Ih=?BO;52i8U0I<F<F0Gb )5<>CELNM0G;5bcM52*B3VObc;D2i8-@bcCE2>C5:jH03;S0UTN<F4-BOCP4>0G:03MT< )032:50G:5CEBavO4ABOkkS032*LNM5C2Fbc;=<G
KEKE03032W2W:5:5CECEBaBavOvO4A4ABOBOkkkSkS03032W2W::e0HJBO2N8U03<>6 LNCPV7MCP03<N03;56 2I8Uh 0O
F '% #$ ; )03M5<<F4-BO:5M5CP4>0M5;502 )036 8ICP`D8IBa<>CPbc; 03;M5;:5CEBavO4-BOknkS0:02N036 LNM03;58U02ACKP032
:5C}G0I6 4>03;=<F032
knBO8-@5CE;03,2 )03MVO03;=<8UbcknktMD;5CELNM0I43h/j0n;5CPVO03BOMbjMQ 8U0I<F<F08UbcknktMD;5CE8IBa<>CPbc;032F<KEB )DKlM52 )54N036 2F03;=<F0S032F<
KHJCEk )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<RKE032bOd7fF0I<>2 )DBa4t4AB ) )bO4><BOM7T8IKEBOM52F032
0I< hj?BO;52R<FbcM52RKE032R8IBO2I1KE032
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<>2MD;5CELNM03kS03;=<?:DBO;52KP0S8IBO2bjMQ 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© kS0knBO8-@5CE;0:bcCP<y0I© <F4>04>*0 )547036 2F03;=<=0I6 0:5BO;52KP0:5CEBavO4ABOkkS0y:50y2N036 LNM03;58U0OhYª7C[M5;0yknBO8A@DCE;0y032F<
CEk )bO4><N0I6 0 )DKEMD2>CP03M4A2j{bcCE2¥0I<4>03;bckk«0I6 0¬|`DvNh ¯® 03KlKP0B ))DBa4AB¯©°P<F4AB[BOM<>BO;=<+:0_{bcCE2¥LNMeH03KEKP0032F<+CEk )bO4><N0I6 0
:5BO;52GKP0:5CEBavO4ABOkkS0:02N036 LNM03;58U032Ih
p_@DBOL=M0SbOdfs0I<t032F<4>*0 )547036 2>03;<N0 6 )DBa4tM5;4A038U<>BO;vcKP00I<tM5;0KECEvc;0S:0nV7CP0n:5BO;52KE0:5CEBavO4ABOkkS0n:0
2N036 LNM03;58U0¬|`DvNh²± ® h9/1BKECPvc;0?VO0I4><>CE8IBOKE0R8UbO4>4>032 )bc;5:BQ KH036 8UbcM5KP03kS03;=<Y:5Mz<F03k )D2Ih
3³
IMPLEMENTATION MAIN imp
IMPORTS M1.M,M2.M
...
eNh [X ;0CEk)DKm036 kn03;<>Ba<>CPbc;
"!$#
MAIN_imp
M1.M
M2.M
eNh²± / B¨<F4ABO:5M58U<>CEbc;q:eHJM5;0Clk)DKm036 kS03;=<>Ba<>CPbc;
03;qX?Z\/
G D¡ 9¡g¡ D¡
p_@DBOL=M0tB ) )03Kj:eHb )_0I6 4ABa<>CPbc; )0I4AkS0I<GKEB8UbcknktMD;5CE8IBa<>CPbc; 03;<F4>0tKP032G:5CPG0I6 4>03;=<>2Y8Ubck )bc2ABO;<>2Y:eHJM5;
)54>bgfF0I< [h [Mn;5CPVO03BOM:0WKH IMPLEMENTATION aKP032+0UT036 8IM<>CPbc;52i:032:5CPG0I6 4>03;=<F032CE;D2F<F4AM58U<>CPbc;D2¥2>bc;<
2N036 LNM03;<>CE03KEKP032Ih ;¨03;=<>BOkS0WKH0UT036 8IM<>CPbc;n:0^KHJCl;52F<F4AM58U<>CEbc; M5;50{|bcCE2LNM0^KH0UT036 8IM<>CEbc;n:0^KHJCE;52><F4AM58U<>CPbc;
+[032F<^<F0I4AknCl;i0I6 0Oh5[BO;D2WKEB`5vcM4>0Nh ³ 5KH0UT036 8IM<>CPbc;q:DM2>N2F<I03Q kS0t:i0I6 dDM<F0 )DBa4WKHJB ))03K:0KHb )_0I6 4-Ba<>CPbc;
:0 M1 hD~Ba4GKlBS2>M5CP<F0KHb )_0I6 4-Ba<>CPbc; op2 :0 M2 032F<W0UT036 8IM5<=0I6 0Oh
op1
%!&#
('
*)
IMPLEMENTATION MAIN imp
IMPORTS M1.M,M2.M
...
OPERATIONS
main BEGIN M1.op1 ;M2.op2 END
END
eNh ³ X[;0b )_0I6 4ABa<>CEbc;q03; [Mq;5CPVO03BOM :5M
:5CEBavO4ABOkkS0:0R2N036 LNM03;58U0z¬|`5vNh =® 9KHJB ))03Ke:5032^b )0I6 4ABa<>CPbc;52 M1.op1 0I<[Zy±Nhb )9±
032F<S4>0*)D4N036 2F03;<N0 6 )DBa4nM5; kS032A2>BavO0 )DBa4><>BO;=<:0qKlByKlCPvc;0
:5M <F03k )D2S:50qKHbOd7fF0I< MAIN ¬|bOd7fF0I<:bc;=<
KHb )_0I6 4ABa<>CEbc;032F<iB ) )03KEBO;<F0 ® VO0I4A2KHbOdfs0I<:5bc;<KHb )0I6 4ABa<>CPbc;032F<iB ) )03Km0I6 0 M1.M )bcM4 M1.op1
0I< M2.M )bcM4 M2.op2 h1/jmain
0kS032>2>BavO0032F<tKECEd03KlK-0 6 )9Ba4RKP0;bck :0KHb )_0I6 4-Ba<>CPbc;«B ) )03Km0I6 0Oh¥/j0n<F03k )92
:eH0UT036 8IM<>CPbc;:032k]0I6 <>@b7:032_:0GK HbOd7fs0I<i2F0YknBa<N0I6 4AClBOKECE2F0 )9Ba4iKP0324>038U<>BO;vcKP0322>M4KlBKECPvc;0W:jH036 8UbcMDKP03kS03;=<
:5M?<F03k)92Ihgp032e4A038U<>BO;vcKP03212>NktdbcKECE2F03;=<KE0+<F03k )D2j:eH0UT036 8IM<>CPbc;:0*KHb )_0I6 4ABa<>CEbc;eh¯/j0+<F03k )D2j:eH0UT036 8IM<>CPbc;
:0KHb )_0I6 4ABa<>CEbc;qB ) )03KEBO;=<F0 main 03;vcKPbOd0KP032_<F03k )92W:032_b )_0I6 4ABa<>CPbc;D2WB ) )03K-0I6 032 M1.op1 0I< M2.op2 h
/j0G4>0I<FbcM4i:50GKH0UT036 8IM5<>CPbc;2>M54KHb )_0I6 4ABa<>CPbc; main 032F<iCEk )DKECE8ICP<F0OhaHJBOM<F4>0 )DBa4><KHJB ))03K:50GKHb )_0I6 4ABa<>CPbc;
2IH0U038U<>M0M5;50{|bcCE2LNM0SKP0S<F03k )D2:jH0UT036 8IM<>CPbc;:0nKHJB ) )03K¥:0 M1.op1 032F<y036 8UbcM5Km06 8IBa4bc;
M2.op2
;0 )03M< )DBO2W0UT036 8IM<F0I4?:03M7Tzb )0I6 4ABa<>CPbc;52Y2>CEkM5KP<>BO;036 kS03;=<W03; 7h
%!&#
+
+
MAIN_imp
M1.M
M2.M
op1
op2
eNh / B¨<F4ABO:5M58U<>CPbc; :0KHJB ) )03Ke:eHJM5;50[b )_0I6 4-Ba<>CPbc;
G D¡
¡ * c ¦O¢ * 9¡q¢ ¦ ¢ i¡
¦ c D¡
¦
?BO;52^KP0KEBO;5vcBavO0 Y5KE032_b )0I6 4ABa<>CPbc;52 )03MVO03;=<_4>0I<FbcM4A;50I4_MD;0?bcM )DKEM52>CE03M4A2*VaBOKP03M4-2Ihp?H032F<WKP0?8IBO2
:0KH0UT703k)DKE02>M5CPVaBO;<_bjM\Q KHb )0I6 4ABa<>CPbc; M1.op1 4>0I<FbcM4-;0:03M7TzVgBOKE03M4A2¬|`5vNh ® h
%!&#
$'
'
' '
IMPLEMENTATION MAIN imp
IMPORTS M1.M
...
OPERATIONS
main VAR aa,bb IN aa,bb ! M1.op1 END
END
eNh X[;0b )_0I6 4ABa<>CPbc;yLNM5C4>0I<FbcM4A;50:032^VaBOKP03M4A2
?BO;52WKE0:5CEBavO4ABOknkn0:02=036 L=M503;58U0R8UbO4>4>032 )bc;D:5BO;<R¬|`DvNh ® bc;qB 8-@00UT )DKECE8ICE<F03kS03;<^KP04A0I<FbcM4
BQ KH0UT036 8IM<>CEbc;
:0[K Hb )0I6 4ABa<>CPbc; )54ACl;58IC )DBOKP0Oh=p_0[kS032A2>BavO0?032F<^KECPd03KEKm06 )DBa4_KP0?;bck&:0[KlBRVaBa4ACEBadDKE0YLNM5CDVaB
0I© <F4>0tBg038U<=0I6 0)DBa4GKEB¨VaBOKP03M4^4>0I<FbcM54A;i0I6 $0 )DBa4YKHb )0I6 4ABa<>CPbc;eh
%!&#
"
MAIN_imp
$#
M1.M
op1
aa,bb
eNh 4ABO:DM58U<>CPbc;q:eHJMD;0?b )0I6 4ABa<>CPbc;yL=M5C4A0I<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
p032CE;D2F<F4AM58U<>CPbc;DIMPLEMENTATION
2G2Fbc;=< IF 0I< CASE ¬|<>Bad9KP03BOMNh ® h1?BO;52KP032?2)_036 8ICP`D8IBa<>CEbc;522>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;<iKP032k
03© kS032:bc;58
bc;
bOd5<>CE03;<WKP0k
03© kn0R:5CEBavO4ABOkkS0:02N036 LNM03;58U0OhD/1032GkS032>2ABavO032G8Ubc;5:5CE<>CPbc;5;03KE2ibc;=<GKEBSk
03© kS0bO4-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:0KHbOd7fF0I<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 BQ KEBk
03© kS0G:DBa<F0Oh?BO;52KEB2 )036 8ICP`D8IBa<>CPbc;nBOMD8IM5;0^VaBOKP03M4*;eH032F<4>0I<FbcM4A;0I6 0 )9Ba4
KP032[b )_0I6 4ABa<>CPbc;D2[:5bc;58Rbc;;04>*0 )547036 2>03;<F0 )DBO2Y0UT )DKECE8ICP<F03kn03;<?KP0R4A0I<FbcM4BQ K H0UT036 8IM<>CPbc;:50KHb )_0I6 4-Ba<>CPbc;
B ) )03KEBO;=<F0Oh
MAIN_IMP
M1.MX
[v!=Value1
and v!=Value2]
op3
[v=Value2]op2
[v=Value1]op1
eNh A4 BO:5M58U<>CPbc; :032WB ) )03KE2^:eHb )_0I6 4-Ba<>CPbc;]BSQ KHJCl;<N0I6 4ACP03M54G:eHJM5;0CE;D2F<F4AM58U<>CPbc;z8Ubc;5:DCP<>CPbc;5;03KlKP0
%!&#
%
G D¡\£^¢ D¡ i¡ 9¡
D¡ * ¡ * 7 i; KHJCl;52F<F4AM58U<>CEbc;
)0I4AkS0I<^:08U470I6 0I4G:032_dbcM58IKE032?¬|`DvNh² ® h ;z;0,)03M< )9BO2_<F4ABO:5M5CP4A0
8U0I<F<F0tCl;52F<F4AM58U<>CEbc; )DBa4><>CE8IWHILE
M5KlC 0IQ 4>08UbcknkS0RKP032GBOM<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:bar8UbN:50$)bcM4Y:0I6 `9;5CP4
KEBdbcMD8IKP0zBQ 8bO© <=0n6 :0KlBKECPvc;50t:0VNCE0t:032YbOd7fF0I<>2Ih;yCE;<F4AbN:5MDCE2>BO;=<W:5M )92F03M5:bar8Ub7:0bc; )03M<[:bc;58
:036 KECEkCP<F0I4WKEBdbcM58IKP0 5CEKe;04>032><F0 )DKEM52_LNMeHBSQ CE;52N0I6 4>0I4WKE032WkS032>2>BavO0R03;VOb *036 2nBSQ KHJCE;=<=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[;0dbcM58IKP0?03; KEBdbcM58IKP0S:5BO;52?KP0S:5ClBavO4ABOknkS0n:0S2N036 LNM03;58U0n03;=<F4>0nKP032:036 KlCEknCP<F03M4-2[:50¨:0I6 d9M<0I<:0¨`D;:0¨dbcM58IKP0
¬|`5vNh ® h
%!&#
+
+
MAIN_IMP
M1.MX
while fin > 0
do
op1
end while
eNh 4ABO:5M58U<>CEbc;q:eHJM5;0?dbcM58IKP0
%!&#
+
&%
'% /1032knBO8-@5CE;032iBadD2F<F4ABOCP<F032iM<>CEKECl2F03;<+KP0YKEBO;vcBavO0 u:0322>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;<jKE0KEBO;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<F032Ih7GbcMD2BOKlKPbc;52knbc;<F4>0I4^M5;50Y<F4ABO:DM58U<>CPbc;
:eHJM5;
2>bcM52sr 03;52F03ktdDKP04A*0 )54N036 2F03;=<>Ba<>CP{+:08U032GCE;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;52KP08IBO2RbjM]Q KHb )_0I6 4A/Ba<>CPbc; ;0kSb7:5CP`50 )DBO2KP032RVgBa4AClBadDKP032R:50KEBqkBO8A@5CE;50bc;
)03M<WBOM52>2ACeB ) )03KP0I4WKP032^b )_0I6 4ABa<>CEbc;52G:032GknBO8A@5Cl;032^V7M032 )DBa4GKlBS8IKEBOM52F0 SEES ¬|`5vNh ¯® h
+
$#
'
'
'
'
2
IMPLEMENTATION MAIN imp
IMPORTS aa.M1,bb.M1
SEES M2
...
END
eNh /1CP03;52^:50VNCE2ACPdDCEKECE<=0[6 0I<GCEk )bO4A<>Ba<>CPbc;03;<F4>0tknBO8A@5Cl;032
?BO;52_M5; )54>03kCP0I4<F03k)92ibc;z8U470I6 0M5;50G<F4AB¯V*0I6 0)bcM4_KEBknBO8A@5Cl;0
LNM5CD4A0*)54N036 2F03;=<F0?KE0)bcCE;=<
:eH03;=<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 0328UbcknkS0KE032CE;52F<>BO;58U032:50 M1 aa 0I< bb :5BO;D2KEBz`5vcM4>0nNh ±Nh¥/j032knBO8-@5CE;032
V7M032tB ))DBa4ABOCE2>2>03;<M5;5CELNM03kS03;=<R2>CKP032tb )0I6 4ABa<>CPbc;52¨:08U032kBO8A@5CE;5032t2Fbc;=<¨M<>CEKECE2N0I6 0323h sK{ BOM<tBOMD2>2>C
:bc;5;50I4GKP0< )0t:0K HJCE;52F<>BO;58U0 )bcM54 aa 0I< bb KP0< )0032F< M1 hD~¥bcM4 M2 KP0R;bckw:50RKHJCE;52><>BO;58U0032F<
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
eNh ± 4ABO:5M58U<>CEbc;
:032GKECE03;52_:0VNCl2>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;0VaBOKP03M4qCE;5CE<>CEBOKP0§B§Q 8A@5BOLNM0VaBa4ACEBadDKE0:50KEB knBO8A@DCE;0
BadD2F<F4-BOCP<F0O903;D2>M5CP<F0¨KP032Yb )0I6 4ABa<>CPbc;52M<>ClKECE2F03;=<G8U032?VaBa4ACEBadDKP032¨¬|`5v
Nh 3³c® hj/*Hb )_0I6 4ABa<>CEbc;2F0t<F0I4-knCE;0¨M5;0
{|bcCE2WLNM0<FbcM<F032G8U032YCE;52F<F4-M58U<>CPbc;52_2Fbc;=<W0UT036 8IM5<=0I6 0323h
%!&#
' %
('
'
'
'
'
IMPLEMENTATION MAIN imp
...
INITIALISATION ...
OPERATIONS
OP1 ...
END
Nh 3³ ;DCP<>CEBOKECE2ABa<>CPbc;0I<Gb )0I6 4ABa<>CPbc;52[:5BO;52^M5;50knBO8A@5Cl;0 ?BO;52KP0Y:DCEBavO4ABOknkS0[:eHJBO8U<>CPV7CP<=036 2_8UbO4>4>032)bc;5:5BO;=<I=K HJCE;5CP<>CEBOKlCE2>Ba<>CPbc;032F<2FNktdbcKECE2N0I6 0)DBa4iM5;:5CE2>LNM0
)DKP03Cl; 0I<M5;0 eQ038A@0L=MDC_032F<:5CE4ACPv 0I6 0qVO0I4A2KP0 )54A03knCP0I4 0I6 <>Ba<z:0 KEB8IKlBOM52F0 INITIALISATION h/j0
:0I4A;DCP0I4§0I6 <>Ba<
0UT7<F4ABOCP<z:0KHb )0I6 4ABa<>CPbc;<F4ABO:5MDCP<F0 )bc2>2I03Q :0M5;50 <F4ABO;52ACP<>CPbc;u:DCP4ACPv¥0I6 0yVO0I4A2zKH0I6 <>Ba<
`D;5BOK
2F7kRdbcKECl2=06 )DBa4WM5;q:5Cl2>L=M50 )9KP03CE;03;<FbcM54N0t6 :eHJM5;
8U0I4-8IKP0¬|`5vNh =® h
"!$#
MAIN_imp
...
eNh 4ABO:5MD8U<>CPbc;q:0KHJCl;5CP<>CEBOKECl2>Ba<>CPbc;n0I<Y:032^b )_0I6 4ABa<>CPbc;D2
* ¦ ¦ /10R2=0*6 )DBa4ABa<F03M4[:eHJCE;52><F4AM58U<>CPbc;zM<>CEKlCE2=06 :5BO;52 S032F<YKP08IBa4ABO8U<U0IQ 4>0zH PHPh K0UT )54AClkS0KEBS2N036 LNM03;<>ClBOKECP<=0 6
:032_CE;52><F4AM58U<>CPbc;52[¬|`5vnNh ® h5/1B2=036 L=M503;<>CEBOKlCP<=06 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
eNh /j02N036 LNM03;58U03kn03;<
?BO;52iKP0^:5CEBavO4ABOknkn0W:eHJBO8U<>CPV7CP<=036 28UbO4>4>032 )bc;D:5BO;<G¬|`DvtNh ® bc;S4A0I<F4>bcMVO0GKHJCl;5CP<>CEBOKECl2>Ba<>CPbc;0I<iKH0I6 <>Ba<
:eHJBO8I8U0*)5<>Ba<>CEbc; :i036 8U4ACP<>2S:5BO;52KP0 )DBa4ABavO4AB )9@0 )D4N036 8D036 :503;<Ihp^@5BOL=M50CE;52><F4AM58U<>CPbc;032F<¨<F4ABO;52F{|bO4Ak]0I6 0z03;
M5;0¨<F4ABO;D2>CP<>CPbc;ybjMQ KHJCl;52F<F4AM58U<>CEbc;\B ) )9Ba4AB¯©°P< )547036 89036 :0z6 :eHJM5;8IBa4ABO8U<U0IQ 4>0yH / HPh¥p038IC+2>CPvc;DCP`50¨:5BO;52KP0S{|bO4Fr
knBOKECl2>kS0z:032S:5CEBavO4ABOkkS032S:eHJBO8U<>CPV7CP<=036 2nLNM0
KHJCE;52F<F4-M58U<>CPbc;«032F<S0UT036 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;58U04>*0 )D4N036 2F03;<F0KP032jCE;D2F<F4AM58mr
<>CPbc;52 Inst ini 1 B Q Inst ini n :50_KlB[8IKlBOM52F0 INITIALISATIONh /1B:03M7TC03Q kS0^2N036 LNM03;58U0W4>*0 )D4N036 2F03;<F0
KP032WCl;52F<F4AM58U<>CEbc;52 Inst1 B Q Instn :0RKHb )_0I6 4ABa<>CEbc; OP1 h
"!$#
"
E1
/Inst_ini_1
/Inst1
I1
E2
...
...
In-1
En
/Inst_ini_n
/Instn
eNh 4-BO:5M58U<>CPbc;
:5M 2=036 L=M03;D8U03kS03;<
"!$#
"
%
"
D¡a¡ ¢ ¡ 7¢ ¦ ¢ * IF CASE
9¡
/1032RCE;52><F4AM58U<>CPbc;528Ubc;D:5CP<>CPbc;5;503KEKP0322Fbc;=<t2FbcM5VO03;<036 8U4-CP<F032tB¯VO038MD;0CE;52><F4AM58U<>CPbc;
8UbckkS0R:5BO;52^K H0UTN03k )9KP08IC}r:032>2>bcM52R¬|`5vNh ® h
ELSE ...
IF ... THEN ...
IF aa MAX THEN Inst1
ELSE Inst2 END
eNh 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
2F7kRdbcKECl2>BO;<?KP0)bcCE;=<[:0S8-@bcC}Thj/j032:03M7Ty<F4ABO;52>CE<>CPbc;52?CE2>2>M5032Y:5MKEbc2>BO;vO0)0I4AkS0I<F<F03;=<:eHJCE;5:5ClL=M0I4
KEBS8Ubc;5:DCP<>CPbc;z0I<GKHJCl;52F<F4AM58U<>CEbc;BO2A2FbN8ICm0I6 0Oh
sK )0I4Akn0I<Y:08Ubc;5;5B¯©°P<F4>0KEB8Ubc;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:0RKHJCE;D2F<F4AM58U<>CPbc;8UbO4>4>032 )bc;D:5BO;<tBQ KEBS8Ubc;5:5CP<>CEbc;eh
%!&#
E1
[aa<MAX]/Inst1
[else]/Inst2
E2
eNh 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>02FbcM52 )DKEMD2>CP03M4A2{bO4Akn032Ih¥X[;0z:03M7TC 03Q kS0{bO4Akn0032F<)54AbN8-@0
:0nKHJCl;52F<F4AM58U<>CEbc;
¬|`Dv Nh ® h ?BO;528U08IBO23jbc;BqM5; )bcCE;=<?:50n8A@bcC}TB3VO038; )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:508U032G:03M7T
CE;52><F4AM58U<>CPbc;52032F<Y:5C}G0I6 4A03;<F0n
IF bc;qaCEbc;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+KH03;52>03kRdDKE0
CASE
var=valuex
x
²±NhPhPhJ; ch
X[;0R{|bcCE2WLNM0tK Hbc; B:0I6 `9;5CjKEB8Ubc;5:5CP<>CPbc;jbc;\CE;D2U0IQ 4>0RKHJCE;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;52BQ KEBn2AM5CP<F0R:5BO;D2GKEBkz03© kS0
d54ABO;D8A@0:50nKH0UT )D4>032>2>CPbc;8Ubc;D:5CP<>CPbc;5;503KEKP0¨bc;8U470I6 0zM5;0n2N036 LNM03;58U0:jH0I6 <>Ba<>2¨B¯VO038M5;50S<F4ABO;52>CP<>CEbc; )DBa4
CE;52><F4AM58U<>CPbc;eh
"!$#
&%
&
"! $#&% '
/H0UT )54A032>2>CPbc; BOOL 032><036 8U4ACP<F0BSQ KHJBOCl:0:eHJM5;0?0UT )54>032>2>CEbc;8Ubc;D:5CP<>CPbc;5;503KEKP0Oh KEKP0[4>03;=VObcCP0 TRUE
bcM FALSE 2>03KPbc;qLNM0KH0UT )54>032>2>CEbc;z03;<F4>0$)DBa4>03;=<>@03Q 2F032W032F<GV=4ABOCE0bcM
{|BOMD2>2F0¬|`5vNh²± ¯® h
p0I<F<F0i0UT )D4>032>2>CPbc;n¬ BOOL(Cond )® )03M<*0I© <F4>0*<F4-BO:5M5CP<F0 )DBa4 KHJM<>CEKECl2>Ba<>CPbc;?:0*KHJCE;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
eNh + 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
eNh²± 4ABO:DM58U<>CPbc;
:032^0UT )54>032A2>CPbc;52^8Ubc;5:DCP<>CPbc;5;03KlKP032_8Ubck)DKP0UT7032^03;qX?Z /
%!&#
+
%
aa := BOOL(bb = xx)
eNh²± +T )54>032>2ACPbc;52db=bcKm0I6 03;5;5032
<F4ABO:5MD8U<>CPbc;
032F<G:5bc;582>CEknClKEBOCP4>0SBnQ 8U03KEKP0:0I6 `D;DCP0)547036 8D036 :03knkS03;=<S¬|`5vNh ® h
G D¡\£^¢ D¡
/HJCE;52F<F4AMD8U<>CPbc; WHILE )0I4AkS0I<q:eH 036 8U4ACP4A0:032
dbcM58IKP032z03; KEBO;vcBavO0 ¬|`Dv Nh²±O± ® hY/1032 kSbO<>2
0I<
;02Fbc;=< )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;52KE0 :DCEBavO4ABOknkS0 :eH 0I6 <>Ba<>2sr <F4-BO;52>CP<>CPbc;D28UbO4>4>032 )bc;5:DBO;<uBQ KEB<F4ABO:5MD8U<>CPbc; :0 KHJCE;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
eNh²±O± XY;0RdbcMD8IKP0?03; ¬|`5vRNh²± ³c® bc;nbOdD2>0I4>VO0GM5;0_dbcM58IKP0^v¥036 ;0I6 470I6 0,)DBa4KE032+<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:0KEB¨dbcM58IKP0 WHILEh7/1BS8Ubc;D:5CP<>CPbc;03;
{|bc;58U<>CPbc;
:0
KEBVgBa4AClBadDKP0 )0I4Akn0I<Y:eH0UT036 8IM<F0I4KP032[CE;52F<F4AMD8U<>CPbc;52WCE;=<F0I4A;032¨BQ KlBSdbcM58IKP0RbcMy:eH03;\2FbO4><>CP4?8U0LNM5Ce032><
V7CE2>CPdDKE0G2>M4_KPii0Y2A8A@036 knB7h5/ B2>bO4><>CP0?:0YKEBtdbcM58IKP0 )DBO2>2F0 )DBa4^KH0I6 <>Ba< En+1 h=/1Btd54ABO;D8A@0?:5M:5CEBavO4ABOknkn0
LNM5Ce8UbO4>4>032)bc;5:BQ KEB¨dbcM58IKP0?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
eNh²± ³ A4 BO:5M58U<>CEbc;q:eHJM5;0?dbcM58IKP0
%!&#
&%
^ ¢ ¦ ¢ ¡ ¦ c D¡q 5¦ ¡ * c ¦O¢
i; b )0I6 4ABa<>CPbc;5;503KDKP032*2 )036 8ICP`D8IBa<>CPbc;52 )bc2>2U03Q :03;=<:0328IKlBOM52F032*:0Y8Ubck)bc2>CP<>CPbc;ehiKEKP032+CEk )bO4A<F03;<
:eHJBOM<F4A032 knBO8-@5CE;032IYB ) )DBa4><F03;5BO;=<\BOMkz03© kS0 )54>bgfF0I< [Y:5BO;52 KP0dDM<\:eH03; M<>ClKECE2F0I4qKP032 2F0I4>V7CE8U032
¬|b )_0I6 4ABa<>CPbc;D2 ® ¬|`5v[Nh²± =® h sK0UTCE2F<F0M5;02F7;58-@4>bc;5CE2ABa<>CPbc;03;=<F4>0_KEBGknBO8-@5CE;0 )54ACE;58IC )DBOKP0O* )bcCE;=<1:eH03;=<F4N0I6 0
:0KH0UT036 8IM<>CEbc; :5M )54Abgfs0I<I¥0I<KE032tBOM<F4A032kBO8A@5CE;5032t:bc;=<¨KP032Rb )_0I6 4-Ba<>CPbc;52¨2Fbc;=<B ) )03Km0I6 032Ih+?BO;52KEB
2)_036 8ICP`98IBa<>CPbc; 8IC}r:5032>2FbcM52YKEBnknBO8-@5CE;0 M 032><YCEk )bO4><N0I6 0R2>bcM52GKP0;5bck MXh iKEKP0032F<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¨KE03M4Y0UT036 8IM<>CPbc;u¬|`Dv Nh²± =® h1/1BVaBOKP03M4:032?Ba4>vcM5kS03;=<>2?032F<`T0I6 0
B3VaBO;=<YKH0UT036 8IM<>CPbc; :50KEB )54>03knC0IQ 4A0CE;52F<F4AMD8U<>CPbc;
:0KHb )_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 ;
eNh²± ) )03K:jHb )0I6 4ABa<>CPbc;q03; /10R:5CEBavO4ABOkkS0:eHJBO8U<>CPV7CP<=036 2G0UT7<F4ABOCP<Y:0R8U032G2 )036 8ICP`D8IBa<>CPbc;52¬|`5vNh²± =® {|BOCE<WB ) )DBa4AB¯©°P<F4A0KHJB ) )03Ke:0
KHb )_0I6 4ABa<>CEbc;BOMn;5CEVO03BOMn:0WKEB[<F4ABO;52ACP<>CPbc;q¬|`5vtNh²± ® L=MDC )DBa4><*:0WKEB?<F4-B3V*0I6 0 MAIN VO0I4A2iKEB[<F4AB3V*0I6 0 MXh
/*HJB ))03K:eHb )_0I6 4-Ba<>CPbc;032F<;bO<N0 6 )9Ba4KP08IBa4-BO8U<U0IQ 4A0\H HPhj/10¨4>0I<FbcM4R:0SKEBz2N036 LNM03;58U0n:eH0UT036 8IM<>CPbc;«:5BO;52
KEB¨knBO8-@5CE;0 MAIN 032F<^47036 BOKECl2=0 6 )DBa4WM5;0?<F4ABO;52ACP<>CPbc; )DBa4><>BO;=<W:0KH0I6 <>Ba<Y8UbO4>4A032 )bc;5:5BO;=<BSQ KH0UT036 8IM<>CPbc;
:0KHb )_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
eNh²± 4-BO:5M58U<>CPbc;q:50KHJB ) )03K:eHb )0I6 4ABa<>CPbc;
~iKEM52Yv 036 ;0I6 4-BOKP03kS03;=<I1KP032[:5CEBavO4ABOknkn032[:jHJBO8U<>CPVNCE<=036 22>bc;<8IB )DBadDKE032[:50tkSbc;=<F4>0I4B Q )03My:0¨8A@bc2>032
)54303Q 2 KP032ekz03© kS032¥BO2)038U<>2j:0*8UbcknkM5;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 ;0U0I<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;52M<>CEKECE2N0_6 8U032+k]036 8IBO;5CE2AkS032 )bcM4¥2>NktdbcKECE2F0I4
KP032[B ) )03KE2G:50tk]0I6 <>@b7:032?:eHJM5; bOd7fs0I<?:*0 )DMDCE2GKH0UT036 8IM<>CPbc;:eHJM5;50Rk«0I6 <>@b7:0S:eHJM5; BOM5<F4>0tbOdfs0I<Ih?BO;52
KP032[:5CEBavO4ABOkkS032Y:jHJBO8U<>CPVNCE<=036 23KE0t2F7kRdbcKECl2>kS0R;eH032>< )DBO2[KP0kz03© kS0OeKP032GbOdfs0I<>2?2Fbc;=<?4>*0 )547036 2F03;=<=036 ,2 )DBa4
:032^<F4-B3V*0I6 032390I<GKlBS8UbcknktMD;5CE8IBa<>CPbc;q8UbO4A4>032 )bc;5:
BOM7T
8A@5BO;5vO03kS03;<[:0<F4AB¯V*0I6 032Ih
G03knBa4ALNM0cXY;¨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;52GKHJCE;=<=0I6 vO4-Ba<>CPbc; :032Gk«0I6 <>@bN:5032G{|bO4AkS03KEKE032_0I<Y2F03knCPr {bO4Akn03KEKP032_032F<W47036 BOKlCE2=0 6
)DBa4K H0UTN<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;y2IH0U038U<>M0S2F03KPbc;y:03M7T :5CP4A038U<>CPbc;52Ih/1B )54>03knC0IQ 4>08UbO4>4>032)bc;5: BQ KH0UTN<F4-BO8U<>CPbc;\:5032[Cl;{bO4-knBa<>CPbc;52
2F<>Ba<>CELNM032W:50RKEBS2 )_036 8ICP`98IBa<>CPbc;
0I<GKH0UT )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>0I4YKP08Ubck )bO4><F03kS03;=<Y:5M
2>N2F<I03Q kS0 58U038IC18UbO4>4A032 )bc;5:qBOM7T
CE;{|bO4AknBgr
<>CPbc;52G:N;DBOknCELNM032_:0KEBS2 )_036 8ICP`98IBa<>CPbc;q0UT )54ACEk]0I6 032¨BSQ KHJBOCE:0:5032W:5CEBavO4ABOkkS032W2>M5CEVgBO;=<?
??CECEBaBavOvO4-4-BOBOknknkSkS03032G2G:j:jHHJ0IBO6 <>8UBa<><>CPVN2FrCE<=<F034A6 BO23;52>CP<>CEbc;52I
?CEBavO4-BOknkS032G:502=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;
[hp038ICe032><W4N036 BOKECE2N0 6 )9Ba4W4AB ) )bO4><tBSQ LNM5Ba<F4>0vO4-BO;5:52 )54-CE;58IC )032Y
KEKE03032^2W038Ubc;5;2F03<Fkt4-BOdDCE;KP03<F2W032 :5 0p_< /«)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 )DBOKCE;58Ubc;=V*036 ;5CP03;=<G:0t;bO<F4>0Rk]0I6 <>@b7:0 )DBa4G4AB ))bO4A<BQ 8U03KEKP0:%0 )+0 *NCl@ ³ ± 1032><YKHJM<>ClKECE2>Ba<>CPbc;
:0?8Ubc;<F4-BOCE;<F032 p_/ )bcM4i:5CPG0I6 4>03;58ICE0I4_KE032i{|bc;58U<>CPbc;D2I=d9C fs038U<>CEbc;52I=Cl;gfs038U<>CEbc;520I<^2>M54 fs038U<>CEbc;52<FbO<>BOKE032
bcM )9Ba4><>CP03KEKP0323h5
036 BO;5kSbcCl;52YK HJM<>CEKECE2ABa<>CPbc;z:0R2F<N0I6 470I6 bO< )032 )DBOKEKlCP08U0tknBO;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@02Fbc;=<_<F4I03Q 2WCE
k )bO4><>BO;=<>2Ih iKEKP0Y032F<
M5;5CE{bO4Akn0R8Ubc;<F4-BOCP4>03kS03;=<BQ 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_:eH0UT7<F4ABO8U<>CPbc; )9M5CE2>LNMeHJCEK5;jH032F< )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 H036 8-@5BO;=<>CEKEKPbc;
:eH0UT703k)DKE032^L=M0;bcMD2^B3VObc;52G<F4ABOCP<=0O6 DKP0,)DBO2>2ABavO0:eHJM5;02)_036 8ICP`98IBa<>CPbc; BSQ M5;0
kSb7:i036 KECE2>Ba<>CEbc;X?Z\/er p_/23H032F<^B3V*0I6 470t6 v 036 ;i0I6 4ABOKP03kS03;=-< )bc2>2>CEdDKP0Oh=/1032 )54>bOdDK03Q kS032 )bcM4_KP032 )54>b )D4AC-0I6 <=036 2
2Fbc;<KPb78IBOKECE2N036 2BzQ :032?:036 8IKEBa4-Ba<>CPbc;52CE
k )9KECE8ICP<F032GbcMuBQ :5032Y0UT )54>032A2>CPbc;52[8Ubck )DKP0UT70328U47036 BO;=<R:0¨;bcM7r
VO03BOM7T03;D2F03kRd9KP032R:08Ubc+M )DKP032z¬|4>03KEBa<>CEbc;52I1{|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>bOdDK03Q kS0322F0
47*0 6 )0I4A8IM<F03;=<tBOM52A2>C )bcM4KP032b )_0I6 4-Ba<>CPbc;52KPbO4A2:5M )DBO2>2>BavO0:0nKEB )bc2F<sr8Ubc;5:DCP<>CPbc;0UT )54ACEk]0I6 003; B Q
KEB )bc2><sr8Ubc;5:5CP<>CPbc;«0UT )54ACEk]0I6 003; 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>bOdDK03Q 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;58ICl2F032L=M50¨KE03,2 )54N036 :5CE8IBa<>20UT )54AClk«036 2?03; Yh p_03KEB032F<:*M © )DBa4><>CP03KlKP03kS03;=<[BOM7T
b )_0I6 4ABa<F03M4-2Y:5Cl2 )bc;5CPdDKP03203; LNM5Ce;0 )bc2>2I03Q :03;=< )DBO2WMD; 036 L=M5CEVgBOKP03;=<G2F<F4-CE8U<^0I<G:5CP4A038U<^03; p_/«knBOCE2
LNM5Ce2IH0UT )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;50V7M02AM4 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?KHJCE;=VgBa4AClBO;<IN;bO<>BOknkS03;=<
)DBa4KP032R2F<=0I6 4N0I6 bO< )0323¥KP0¨< )DBavO0:032?VaBa4ACEBadDKP03230I<>8ahP CEKE2;
0 )03MVO03;=< )DBO203;:036 8U4ACE4>0SKEBz<FbO<>BOKECP<N0O6 h sK
0I6 <>BOCP<¨:bc;58n;036 8U032>2ABOCP4>0z:eHJM<>CEKECl2F0I4M5;BOM<F4>0 )54>b78D036 :i06 8Ubcknkn0KEB
v¥036 ;0I6 4ABa<>CEbc;]:5032R8Ubc;=<F4ABOCE;=<F032 p_/
)bcM4 )DBOKEKECP0I48U032WknBO;5LNM032Ih YbO4AknCE2L=M503KEL=M5032 )D4>bOdDK03Q kS032_:0?8Ubc;58ICE2>CEbc;eNKE0328Ubc;=<F4ABOCE;=<F032 p^/;bcM52
)DBa4ABOCl2>2F03;=<WKECE2>CPd9KP0320I<Y8Ubc
k )547036 @03;52ACPdDKP032Ih
, s !"#% # $"&
( '| ¥¦ N¦ ¢ * 9¡
9¡ 5¦ ¦c¡ -¦ ¡ ¦ ¢ ¡
YbcM52jB¯VObc;52 )D4N036 2F03;<N06 KH0UTN<F4-BO8U<>CPbc;R:0321:5CEBavO4ABOknkn032j:eH0I6 <>Ba<>2sr <F4ABO;52ACP<>CPbc;52 :*0 )DM5CE2M5;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;DChªNbc;]M<>CEKlCE2>Ba<>CPbc;«;i036 8U032>2>CP<F0
M5;0zk]0I6 <>@b7:0z:eH036 8U4ACP<>M4>0 )DBa4A<>CE8IM5KEC0IQ 4>0:032¨2 )_036 8ICP`D8IBa<>CEbc;52Ih
KlKP0 )0I4AkS0I<KHJM<>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 032BRQ KHJBOCl:0W:032+03;52>03kRdDKE032036 ;=MDk«0I6 4N036 2Ih
036 BO;5kSbcCl;528U0I<F<F0?k«0I6 <>@b7:-0 )0I4AkS0I<*:50WV*0I6 4ACE`50I4
KP032Y4I0IQ vcKP032?:0RvO032><>CPbc;\:DM 8IBO@5CP0I4?:032[8A@5Ba4AvO032Ih ;q0U0I<I03KEKP0R: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:eHbOd5<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 2CE;VaBa4ACEBO;=<F032¬|430IQ vcKP0z:0SvO032F<>CEbc;«:5M8IBO@DCP0I4
:032W8-@5Ba4>vO032 ® h
( '| ¥¦ N¦ ¢ * 9¡
N¦ ¦ D¡
9¡ * ¡ * 7 ¦
YbcM52B3VObc;52 )547036 2>03;<N06 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;58U0kSbc;<F4A03;<^KP032CE;=<F0I4ABO8U<>CPbc;5203;=<F4>0[KE032:DC}G0I6 4>03;=<>2bOdr
fF0I<>2R:5M:DCEBavO4ABOknkS0:08IKEBO2>2>032Ih¥p038IC03;<F0I4AkS032t:0n<F03k )92R:eH0UT036 8IM<>CPbc;e:0:5Ba<>Ba<>CEbc;0I<t:jHbO4A:4>0
:0KEBO;D8U03kS03;<Y:032WkS032>2ABavO032G:08UbcknkM5;5Cl8IBa<>CPbc;eh5
036 BO;DkSbcCE;52WClK0UT7CE2><F0RM5;0?4>032F<F4-CE8U<>CPbc;BSQ <FbcM52G8U032
B ) )bO4><>2YL=M5Cj4N036 2>CE:0R:DBO;52WKP0{ BOCP<GLNM0RKE0<F03k )D2[;eH032F< )9BO2W{|bO4AknBOKECE2ABadDKP0CE;=<=0I6 vO4-BOKP03kS03;=<Y03; 8U0tLNM5C
'
' ' ' '
$
'
'
'
'
'
'
'
'
' $ '
³
KECEkCP<F0KE032B ) ) bO4><>2<F03k)bO4>03Kl2:0nKH0UT7<F4ABO8U<>CPbc;:5032:5CEBavO4ABOkkS032:0n2N036 LNM03;58U0Ohp_038IC*;eH032F<)9BO2M5;
)54>bOd9K 03Q kS0i8IBa4¥bc;t;jHJB ) )DBOMVN4ACP<)DBO2¥KEBW2 )036 8ICP`D8IBa<>CPbc; BGQ <F4AB3VO0I4A2KH0UT7<F4ABO8U<>CPbc;jhg/1032 :5ClBavO4ABOknkS032 :eHJBO8mr
<>CPV7CP<=036 2Yknbc;<F4>03;=<Y2AM4><FbcM<GK H0UT036 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 <>BOCEKE2BO:036 LNM5Ba<) bcM4t8U0< ) 0:eH0UT7<F4ABO8U<>CPbc;jh YbcM52R4A03knBa4ALNMbc;52
BOM52>2AC KP0t4>038UbcMVN4>03kS03;=<,D) Ba4KH0UTN<F4-BO8U<>CPbc;:032?B ) ) 03KE2G:eHb _) 0I6 4-Ba<>CPbc;:032[BO2) 038U<>2:0t8UbcknkM5;5Cl8IBa<>CPbc;
03;=<F4>0RKP032^bOdfs0I<>2Y2>8A@036 knBa<>Cl2=036 2-D) Ba4YKP032W:5CEBavO4-BOknkS032W:02N036 LNM03;58U0Oh
( '| ¦ D¡g * ¦ N¦ ¢ D¡ s¢ ¦ ¢ i¡ * 9¡
/1032:DCEBavO4ABOknkS032t:eH0I6 <>Ba<>2sr <F4ABO;52ACP<>CPbc;52)0I4AkS0I<F<F03;=<¨:eH0UT )D4ACEkS0I4RKE08Ubck)bO4><F03kS03;=<¨:0kBO;5C 0IQ 4>0
8Ubc;58U0*)5<>M503KEKP0+0I<")DKlM< bO© <jBadD2F<F4ABOCE<Ih YM8Ubc;=<F4ABOCP4A0O¯KP032j:5ClBavO4ABOknkS032e:0*2N036 LNM03;58U0i0I<1:eHJBO8U<>CPV7CP<N036 21knbc;<F4>03;=<
M5;0[V7M0[:0I6 <>BOClKEK-0I6 0:5M8Ubck )bO4A<F03kS03;<^:5Mz2F72F<I03Q kS0Oh sKD0UTCE2F<F0?M5;4>038UbcMVN4>03kS03;=<^:0?KH0UTN<F4-BO8U<>CPbc;z:032
:5CEBavO4-BOknkS032W:02N036 LNM03;58U0 )DBa4GKH0UT7<F4ABO8U<>CPbc;\:032W:5ClBavO4ABOknkS032W:jHJBO8U<>CPVNCE<=036 23hD/*H0UT7<F4ABO8U<>CPbc;y:0KHJB ) )03K
:eHb )_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:eH0I6 <>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 BadbO4A: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:03M7TvO4>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<=06 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;B0I4*8I) MR:5032j<F4AB¯VgBOM7TR:DM54>bgfF0I<
+G / , .
Z -ah ;52AM5CP<F0n;bcM52 547036 2F03;=<F0I4>bc;52¨M5;(0I6 <>Ba<S:0KHJBa4><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<F4AB3VaBOCEKeKEBzv¥036 ;0I6 4ABa<>CPbc;]:0S8Ub7:0OjB 0I6 <=06 47036 BOKECE2N0I6 0:5BO;52KP0n8IBO:4A0n:5"M 54>bar
fF0I< Z 8¬ 5<>CEkCE2=06 Z 036 kSbcCP4>0 ® hip90 54>bgfF0I<tV7CE2F0B Q <F4-BO:5M5CP4>0:032¨2 036 8ICP`D8IBa<>CPbc;D2 $03;«KlBO;vcBavO0
8Ubck DClKEBadDKP0n0I<¨0UT036 8IM<>BadDKP0
:0zknBO;5C0IQ 4>0*b 5<>CEkCE2=06 ;5bO<>BOknkS03;=<03;«<F0I4AkS0
:eHb78I8IM DBa<>CEbc;«k]036 kSbcCE4>0Oh
/*HbOdfs038U<>CP{`D;DBOKe032F<G:0 54>b7:5M5CP4>0OjB 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 ;± 7j: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
knBOCl2GKP08UbN:0Sp
bOd5<F03;NM§7B Q DBa4A<>CP4Y:02 _036 8ICP`D8IBa<>CEbc;5<2 ;08Ubc;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(TsEcSH_OEGXZYUE`_OXaYEmUIS@N[/IERw
EcFCEGmUMOEGkU_OER{q;H
p kHJ_OF&JRR#^UY/MCMOm^ JS@N~|XRw IQUN@e{g|XGPRkMOERw |_ZR&MaH:MON@*PRIEZMZ:>ic
$ CEK¨0I6 <>BOCE<<F4Ab*]vObcM54AknBO;5:03;«4A032>2FbcM4A8U032k]036 kSbcCP4A032Ih¥YbcM52¨BOKEKPbc;D20UT'bc2>0I4KP032tbOd7fF038U<>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 8IM54ACE2F0I4M5;2F72F<U03Q kS0:jHJCE;{|bO4AknBa<>CPbc;ehe/10328IBa4><F032t<F4ABgr
:5CP<>CEbc;5;03KEKP032Y2FbcM74ABOCP03;=<:0SKP03M4knBO;5LNM0S:0 50UTCPdDCEKECE<=0t6 0I<:0SKP03M4:5C 8IM5KP<=0S6 :0 54>bOvO4ABOknkBa<>CPbc;eh
?Y`D;:
0 DBOKlKECP0I48U032RKlCEknCP<>Ba<>CPbc;D2IeM5;;bcMVO03BOM<f 0:08IBa4><F032tB0I6 <=06 8Ubc; 8I) Mjh¥p032R8IBa4A<F032t:5CE<F032bcM7r
VO0I4><F032[;0R2Fbc;=;< 9KEM52_47036 2F0I4>V*0I6 032BOM7Tq2 _036 8ICEBOKECl2F<F032G8IBa4[03KEKP032WBO8I8U/0 D<F03;<?:032GKlBO;vcBavO032Y:50R@5BOM<G;DCPVO03BOM
<F03K*LNM70 cB¯VgB7h¥[0 DKEM52303KlKP03<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:032B DKlCE8IBa<>CPbc;528IBa4><F0B3cBO;=<tM5;@5BOM<;5CPVO03BOM:0LNM5BOKECP<N0 6
8U/0 03;5:5BO;=<KH036 kS0I4>vO03;58U0:5M8UbN:0nknbOdDCEKP00I<KEB bc2>2>CPdDClKECP<=0t6 :0S8-@5Ba4>vO0I4R:5M8Ub7:0SB 54303Q 2KlBkCE2F0¨03;
2F0I4>V7CE8U0zCE;=<F4>bN:DM5CP<R:0;bcMVO03BOM7T]d032FbcCE;52R03;«<F0I4-kS0:50k]0I6 <>@b7:032S:0:i0I6 VO03KP*b 03kS03;=<¨0I<¨:50LNM5Bgr
KECP`98IBa<>CPbc;§:0328IBa4><F032B 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¬ YpbNL9 s2>Bad03KEKP0OhPhPh ® ;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<F032SCEK0UTCE2F<>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;=<
KHJCE;D2F<>BO;58ICEBa<>CPbc;:0knBO8-@5CE;032knBOCE2R4>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;<_BOM7TkBO8A@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>0z8UbcknkS0zKP0328IBa4><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ªN8Ubck DKP0UT70320I< DBa48Ubc;52=036 L=M503;<¨:5C 8IClKP032B Q knBOCl;<F03;5CE40I<zB\Q :i0I6 dbOvcM50I43h
=[03
k 9KEM52B Q DBa4><>CP4^:02 _036 8ICE`D8IBa<>CPbc;5l2 47036 BOKECE2ABOCP<^M5;0?v 036 ;i0I6 4ABa<>CPbc;y:08UbN:<0 bcM4^8IBa4><F032¨B Q 9M58U0knBgr
;NM03KEKP03kS03;=<Ih1p03KEKP0Ur8ICCE;=<F4>b7:5M5CE2ABOCP<YM5;504-M 5<>M4>0¨:5BO;52KE0 D4>bN8U032A2>M52?:0 54>03MVO0S0I<;504A03;<>BadDClKECE2>BOCP<
DBO2WK H0UbO4><Y:0{bO4-knBOKECE2>Ba<>CEbc
; DBa4W47036 :5M58U<>CEbc;q:5Mz<F032F<GMD;5CP<>BOCP4>0Oh
/10 54>bgfF0I< Z2IH032F<*CE;=<=0I6 4>032>2N0n6 BQ 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^;eHbc;=<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^KE08IBO: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; 8bO© <N06 0I< cB¯VgB :0KHJBOM<F4>02Fbc;=<z<F4I03Q 2
:5C}G0I6 4>03;=<F032I50I<GKP032GB DKECE8IBa<>CEbc;52_VNCl2=0I6 032BSQ <F4AB¯VO0I4A2G8U032YKEBO;vcBavO032YBOM52>2>C
MDª7N; 2F<I03QbckSM410?KP:e0HKE0UBO'T ;DvcKPBabcvOCP<>0WBap<>CEbc ; 7C¬ B3=VObp 038_+ KEuBGvO' 03c2FB¯<>VgCPbcBS;tp_`DBa;4A0: :+Y03M52 ;=03<>;=CE<>kSCP0I0 4A2Iig;BaV7`DCP;R4>bc:;50iknv 03036 ;i;<0I6 ®4>0I0I4*<_KEZB 9BOBa8-@54><>CECP;00Y2FVN7CE2F4><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;06 B Q Kl>B DBa4><>CE0B DKECl8IBa<>CPVO0 L ?;9KP0I<>2 B3VaBp_Ba4A:«0UT036 8IM<N0I6 032
9Ba4GKEBSknBO8-@5CE;0V7CP4><>M03KlKP0<B3VaB7h
YbO<F4>0¨<F4AB3VaBOCEK2IH032F<8Ubc;58U03;=<F4N06 2>M4KH 0I6 <>M5:50OKlB8Ubc;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>0KP0320I6 <>MD:032
{ BOCP<F032q:5BO;52
KE08IBO: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
:0KH@?_<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;58U0OCE;52F<>BO;D8ICEBa<>CPbc;Sbc7M DBO2:032iknBO8A@DCE;032Ic<W9BavO0Y`D;:032
03;=<>CP0I4A2I9hPhPh ® bcM4¨036 8Ubc;bckCE2F0I4^KEBk]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 1MD;nkSb7:5M5KP0_032F<MD;0W8A@5B¯©°l;0G:0W:0I6 VO03KPb*03kn03;<:i0I6 dDM<>BO;=<DBa4MD;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[KEB8A@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;=<*8aH032F<srmBgQ r:5CP4>0Y8U03KEKP032:0^KEB?knBO8A@DCE;0
BadD2F<F4-BOCP<F0OW:032
4AB ;03kS03;=<>2
0I<q:0KHJCEk DK-036 kS03;=<>Ba<>CPbc;ehYp032
:bc;D;i0I6 032 8Ubc;58U430IQ <F032y8Ubc;<>CE03;5;03;=<qKP032
03;52F03ktdDKP032[8Ubc;58U4>0I<>23KE032Y8Ubc;52><>BO;<F0328Ubc;58U430IQ <F0323jKP032GVaBa4ACEBad9KP032G8Ubc;58U430IQ <F0323jKHJCE;5CP<>ClBOKECE2>Ba<>CPbc;zBOCE;D2>C1LNM0
KP032?*b _0I6 4ABa<>CEbc;52R:0SKHJClk DKm036 kS03;=<>Ba<>CPbc;ehj/1032<f 032?4>0I<F03;=MDy2 bcM48A@5BOLNM0n:bc;D;i0I6 02Fbc;=<8U03M7T:0I6 `9;5CE2
03; 7h~ bcM540I6 V7CP<F0I4GKE0328UbcKlKECE2>CPbc;D2:0;bck&03;=<F4>0KP032^:5C}G0I6 4>03;<F032^:5bc;5;i0I6 032^:032^:5C}G0I6 4>03;=<F032^knBO8A@5Cl;032
¬ :03M7TS:bc;5;0I6 032iB3cBO;=<KE0Wkz03© kS0G;bck :DBO;52*:03M7TS8Ubck bc2>BO;=<>2:0W8-@5B¯©°E;032:5C}G0I6 4A03;<F032i;0 bc2F03;=c< DBO2
:#0 54>bOdDK03Q kn0?kBOCE2iClKE2i2>bc;<^8Ubc;58IBa<N036 ;036 2[:5BO;52_KEBkz03© kS003;<>CE<=0 6 ® 98A@5BOLNM0:bc;5;0I6 0?032Fb< 5470I6 `T0I6 y0 DBa4^KP0
;bck :5MkSb7:5M5KE0tbjMQ 03KEKE0¨B DBa4AB¯©°P< ± h p038IC 0I4Akn0I<?:50<F4-B3VaBOCEKEKP0I4B3VO038M5;2F03M5K032 9BO8U0n:0S;bck
bcM4KPl
0 D4>bgfs0I<03;<>CP0I4¯h/j032iCE:03;=<>CP`DBO;=<>2+4>03;bcknk]036 22Fbc;=<8Ubc;52F0I4AV*036 2<F03KE2LNM03KE2: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; §;eH032>< DBO2i8Ubc;52F0I4>V*0I6 0
03; p_BOknKO8IBa4 ~¥0I<>CP<¥BWM<>CEKlCE2=0 6 bcM54jKEB^<F4ABO:5MD8U<>CPbc;KP0*2F72F<I03Q kS0:0kSb7: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/102FN2><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:0dDBO2>00I<lDBa4W2Fbc;
V*0I6 4ACP`D8IBa<F03M4Y:0<f032Ih5/j0<F0I4Akn0
:036 2>CEvc;0M5;
KEBO;vcBavO0L=M03Kl8Ubc;5L=M50¨:0/6 bcM4AVNM:0¨<FbcM<F032t8Ubc;52F<F4AMD8U<>CPbc;52:0nkSb7:5M5KlBa4ACP<=0O6 h1p0n;eH032F<yDBO2KE0n8IBO2: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<W8aH032F<G8U0LNM5CeB
0I6 <=0t6 47036 BOKECl2=0t6 :5BO;52G8U0<F4ABO:5M58U<F03M543h5/j04A032F<F0:0RKEB¨<F4-BO:5M58U<>CPbc;
8Ubc;58U0I4-;0RKP032^<F4AbcCEl2 DBa4><>CE032W2>M5CPVaBO;=<F032
KKE03H0I62^<>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:08Ubc;=<F4gbc© KP0Oh
' '' ~Ba4AknC8U032^8Ubc;52><>CP<>M5BO;=<>2I5KEB DBa4><>CP0?KEB DKEM52{|BO8IClKP0Y032><WKEBR<F4-BO:5M58U<>CPbc;z:032_2F<F4AMD8U<>M4>032^:0?8Ubc;<F4abc© KP0
:0322:036 8ICP`D8IBa<>CPbc;52Yh p_0322F<F4AM58U<>M54>0328UbO4>4>032bc;5:503;<B
Q M5;2>bcM52sr 03;52F03ktdDKP0S:5MKlBO;vcBavO07 q:0[h
032F<M5;;b¯cBOMLNM5C¥@5BadDCP<>M03KlKP03kS03;=<Y2F0¨<F4>bcMVO0S:5BO;D2[KE032[KlBO;vcBavO032CE
k _0I6 4ABa<>CE{|2[<F03K+LNM0Sp? ?[ ?t
~??ªDbp ?Y/=hPhPha~Ba4+8Ubc;52=036 L=M503;<*8U0I<F<F0_<F4ABO:5MD8U<>CPbc;t;50 bc2F0 DBO2:0 54AbOdDK 03Q kS032Ih KEKE0*032F<+CEKEKEMD2F<F4N0I6 0 DBa4KP0
<>BadDKP03BOM h h5?BO;52_8U0?<>BadDKP03BOM :i036 ;bO<F0KEBt{bc;58U<>CEbc;:50Y<F4ABO;D2F{bO4-knBa<>CPbc;z:0328Ubc;52F<F4AM58U<>CEbc;52
VO0I4A2 p_BOknKh
ª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_BOknK 9Ba4WM5;0{|bc;58U<>CPbc;eh ?Y`D;
:08Ubc;52>0I4>VO0I4GM5;
knBgTCEkM5k
:eH0U'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;
;7rM DKE0I<Ih
+
+
!#"
%$&
%
#"
'$(&
#"
'$(&
)#" '$(&
)#"
'$&
)#" %$&
!#" %$&
#"
#"
+*
+,
#" '$(&
-
'$(&
!#"
'$(&
*
)#" %$&
)#" '$(&
!#"
,
.
'$(&
'$(&
)#" '$(&
)#" '$(&
/
#"
)#" %$&
)#" %$&
!
1)#" '$(&
24365
#
%
!#"
%$&
0)#"
'$(&
)#"
'$(&
0)#" '$(&
+
'$&
O±
"
$ ! ! % $
% ! (
~¥bcM4¨KP032R2><F4AM58U<>M4>032:08Ubc;<F4gbc© KE0KP032tCE;{|bO4AknBa<>CPbc;D22Fbc;=<547036 2>03;<F032¨:5BO;52tKHJCEk9KEBO;<>Ba<>CEbc;eh1~Ba4
8Ubc;=<F4>0 bcM4:0I6 <F0I4AknCl;0I4KP032VaBa4ACEBadDKE032Y0I<tKP0328Ubc;52F<>BO;=<F032I1ClK032F<;i036 8U032>2>BOCP4A0:054>03;D:4>0SKP032CE;{|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>032BRQ KEB<F4-BO:5M58U<>CPbc;{|BOCE2ABO;< 9Ba4><>CP0G:032BadD2F<F4-BO8U<>CPbc;522>bc;<bOd5<F03;NM032 9Ba4i:/0 6 DKEClBavO0G:032KECP03;52
:0KEBS8IKlBOM52F0 REFINES h
/1032Y<W 032BOM<FbO4-CE2=036 #2 bcM54[KP032?:bc;D;i0I6 0328Ubc;58U4I0IQ <F0322Fbc;=<KECEknCP<N036 2 DBa4KEBk«0I6 <>@bN:50 BzQ M5;\2>bcM52sr
03;52F03ktdDKP0S:032?<W032y0UT7Cl2F<>BO;<>23h p032<f0322Fbc;=<B03K-036 2?<f0328Ubc;D8U4>0I<>2Ih p032KEClknCP<>Ba<>CPbc;52[2Fbc;=<
CE2>2AM032_:032^KEBO;vcBavO032W8ICEdDKP032_CE;5CP<>ClBOM7T:0KEB¨k«0I6 <>@b7:0 [h K0UTCE2F<F0:03M7Tz2F<F4ABa<N0I6 vcCP03;2 DBa4^4AB bO4><BSQ 8U0
54>bOd9K 03Q kS0S
0I2>6 0R<F03KE;DCEkn:4>CE0R<F0I8U40IB<FQ <F0KEBSKECEKE2FCE2F<F<F<0 0D:Ba034G2W:5<03f 2Wkn032GBO8U8Abc@D;5CE;8U4>030I2W<>:2[0:id90 6 f¯BOBnQ 2F0O:h 0I6 `9;5CE2 ³
ªN03KPbc ;
~¥0I<>CP<IKEBS8Ubc@5BadDCE<>Ba<>CPbc;q:08U032Y:03M7T
2F<F4ABa<=0I6 vcCP032[;0ybc2F0yDBO2G:50y54>bOdDK03Q kS0Oh
! / Bq8Ubc;52F0I4>VaBa<>CPbc;«:032 54A*b 54ACm0I6 <=036 2t:5032R2 _036 8ICP`98IBa<>CPbc;52_f>M52>LNM0n:5BO;D2KP08Ub7:0n032F<M5;0n;bcM5VO03BOM<=0 6
bcM4RKEB\k«0I6 <>@b7:09[h;0U0I<IDfFM52AL=MeHB>Q 54N036 2F03;=<I¥KP08UbN:0v 036 ;i0I6 4N0
6 032F<8U03;D2=0\6 0I© <F4>0 54>bcMV*06 8UbO4A4>038U<I
0I<:bc;58¨2Fbc;0UT036 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:0v 036 ;i0I6 4N0¨6 032F<W0UT036 8IM5<=0S6 2>M54W:032G8Ubckbc2>BO;=<>29@72>CELNM032_:bc;=<GKP032W8IBa4ABO8U<N0I6 4ACl2F<>CELNM032Y;jHbc;<9BO20I6 <=0 6
2 _036 8ICP`_0I6 032B
Q KHJBOCE:0t:eHJM5;0k«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[:0tdbcM58IKE032YBOCE;D2>C LNM0¨KP03#2 5470U6 r8Ubc;5:5CE<>CPbc;52
:032^*b _0I6 4-Ba<>CPbc;52IhD~¥0I<>CP<YM<>CEKECE2>0?KlBS;bO<>CPbc;q:08Ubc;=<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;0U0I< d7fs038U< §;70 bc2>2I03Q :590 DBO2KEBq;5bO<>CPbc;«:502>MdD2><>CP<>M<>CPbc;eh sK*032><:bc;D8;036 8U032>2>BOCE4>0
:eHJB fFbcM<F0I4?:5Mq8Ub7:0BQ 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 KHJBOCE:0:08IKEBO2>2F032Y<F03k DKlBa<F032G0I<[:eHJM5;
2F72F<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;=<03M7TBOM52A2>C90I© <F4A0W:032 54>b7:5M5CP<>2 8IBa4><=036 2>CP03;52 ® h
/j02F72F<U03Q kS0:jHJ@i0I6 4ACP<>BavO0 0I4-kS0I<R:0:DC}G0I6 4>03;D8ICP0I4tKP032R{bc;D8U<>CPbc;52Ij4A03KEBa<>CPbc;52I1dDC fF038U<>CPbc;52I12AM4 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><sr8Ubc;5:5CP<>CPbc;D2 2Fbc;=<M<>CEKECE2N0I6 03&2 bcM4
4>03k 9KEBO8U0I4KEB
;bO<>CPbc;:0n2>MdD2><>CP<>M<>CPbc;eh
036 BO;DkSbcCE;52ClK032F<;i036 8U032>2>BOCP4A0:eHJB fFbcM<F0I4t:032RkSbO4A8U03BOM7T:0
8Ub7:0RM5;0?{|bcCE2WKEB¨<F4-BO:5M58U<>CPbc;
0U038U<>M0I6 0Oh
'
'
%
%
%
%
template class X, class Y class Relation : public Set Pair X,Y %!&#
h³
4ABO:5MD8U<>CPbc;q:eHJM5;50[4A03KEBa<>CPbc;
%
³
/ B:03MT7C03Q kS0 W¬ :0 d7fs038U<VO0I4A2<cB¯VgB ® j;50R47036 BOKECE2>0DBO2[M5;0t<F4ABO:5M58U<>CEbc;\:5CE4>038U<F0Oh sK1M5<>CEKECE2F0
M5;zKEBO;vcBavO0Cl;<F0I4Ak]036 :DCEBOCP4>0OcBO2A2¬CcB3VaBnB¯VO038BO2>2F0I4><>CEbc; ® beM
Q CEKo0I4-kS0I<^BOM54>bOvO4ABOknkn03M4W:eHJB fFbcM<F0I4
KP08Ub7:0:DM8UbO4:D2t:032b*_0I6 4-Ba<>CPbc;522>BO8A@5BO;=<tLNM0KE032RCE;=VgBa4-CEBO;<>2t2Fbc;=<<F4ABO:5M5CE<>2:5BO;52t8U0KEBO;vcBavO00I<
8UbO4>4>032:bc;D:03;<BOM7TBO2>2F0I4><>CEbc;52?:5MKEBO;vcBavO0Oh1/10<F4-BO:5M58U<F03M4:0 BO2>2?VO0I4A2cB¯VgB
8-@0I4A8-@0yBQ V*0I6 4ACE`50I4
KP0S8Ub7:0nB fsbcM5<=06 03;{bc;58U<>CEbc;:0nKHJCE;=VgBa4-CEBO;<Ih?BO;528U0n2>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 uVO0I4A2p 0I< cB¯VgB O±7 ³ 7{bc;=< DBa4><>CP0_:03L2 ![Z bNbcKE2 Oh
/1Bk]0I6 <>@b7:0#![Z 0I4AkS0I<:0Y:0I6 `9;5CP4iMD;CE;=VaBa4ACEBO;=<*0I<^:032 D4N0G6 0Ib< bc2F<sr8Ubc;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
bcM44>032F<F4A03CE;5:4>0SKEBz:0I6 `D;DCP<>CPbc;:eHJM5;<W 0O1KE0S<f 0S032><<F4ABO:5M5CE<[0I<tM5; 54>bO<FbO<W 0n:0S{|bc;58U<>CPbc;032F<
CE2>2AM :0KEBS<F4ABO:5MD8U<>CPbc;\:50tKHJCE;=VaBa4ACEBO;=<IhD/17B bO4A<=0I6 0S:0tKEBn{|bc;58U<>CPbc; ¬|`5v h ® 032F<?KEBkz03© kS0LNM08U03KEKP0
:5M¨<W 0Oh/10^<F4ABO:5M58U<F03M4i;0W2>M bO4><>BO;=< DBO2*KEB[V*0I6 4ACP`D8IBa<>CPbc;:N;DBOknCELNM0^:0WKHJCE;=VgBa4-CEBO;<IOCEKN{ BOM<*{ BOCP4>0
knBO;NM03KEKP03kn03;<WM5;
B 03K0U'T DKECl8ICP<F0BnQ KEB¨{|bc;58U<>CPbc;q:0V*0I6 4ACP`D8IBa<>CEbc; :0KHJCl;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:50KHJCE;=VgBa4AClBO;b< !??Z 03;\M5;0?{|bc;58U<>CPbc;\p
/10<F4ABO:5M58U<F03M54;!??Z VO0I4A2B3VaB0I4AkS0I<G:0<F4-BO:5M5CP4>0KE032l54706 0I<bc2><sr8Ubc;5:5CP<>CPbc;D2^:032W{|bc;58mr
<>CPbc;523ha/ B<5470U6 r8Ubc;5:5CE<>CPbc;¨032F<+<F4ABO:5MDCP<F0bDBa4M5;0^k]0I6 <>@b7:0W:5MSk
03© kn0G;bck LNM0^KEB?{bc;D8U<>CPbc;¨0I<c5470I6 `T0I6 0
DBa4KEBq8A@DB¯©°E;0:08IBa4ABO8U<U0IQ 4>032
<>BO;D:5CE2LNM0KlB bc2><sr8Ubc;5:5CP<>CPbc;032F< 5470I6 `5T0I6 0 DBa4tKEB 8A@5B¯©°E;50 h
/j0?<W0:0?4>0I<FbcM4W:08U032W:503M7Tk]0I6 <>@b7:032^032F< boolean h/j0?<F032F<W:0KEB5470U6 r8Ubc;D:5CP<Fbc;z032F<^0UT036 8IM<=0 6
B3VaBO;=<_K HJB 03K5:0GKEBR{bc;D8U<>CPbc;0I<8U03KEM5C9:0YKEB bc2F<sr8Ubc;5:5CP<>CEbc;S032F<_KEBO;58D0[6 B D4I03Q 2iKHJB 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;=<*:eHbO4ACPvcCE;50Ohg/1
0 D4>bOdDK03Q kS0_;0^2Fb0 bc2Fb0 DBO2:5BO;52KP0^8IBO:4>0^:eHJM5;50i<F4ABO:DM58U<>CPbc;
VO0I4A2KP032KEBO;vcBavO032BQ bOd7fF0I<>2z8IBa48U03M7TNr8IC bc2A2U03Q :03;<zKEB;5bO<>CPbc; :50 8IKEBO2>2F0 036 L=MDCPVgBOKE03;<F0 B«Q 8U03KEKE0 :0
kSb7:5M5KEBa4-CP<=06 :5MRKlBO;vcBavO
0 [haHJBOM<F4>
0 DBa4>< KlBW<F4ABO:5MD8U<>CPbc;R:0 d7fF038U< SVO0I4-2+;p { BOCP< B DBa4AB¯©°P<F4>0<FbcM<
M5;2F72F<U03Q kS0:0[8IKlBO2>2F0[<F03k DKEBa<F0?;bc;M<>CEKECE2ABadDKP0^03; cB3VaBbeMzQ CEKD;eH0UTCE2F<F#0 DBO2:0?8Ubc;58U/0 5<
bcM036 LNM5CPVaBOKP03;<IhDp0I<F<F0R<F4ABO:5M58U<>CPbc;{ BOCP<^BOM52>2>CB 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;52IdDC 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 /10KEBO;5vcBavO90 !?"Z 032F<<F4303Q 2bO4ACP03;=<=06 bOdfs0I<>2IL DBa4¨8Ubc;52N036 LNM03;<SKH0UbO4><¨:0
<F4ABO:5MD8U<>CPbc;VO0I4-2KE032tKEBO;5vcBavO032
B\Q bOd7fF0I<>2032F<knbcCE;5:4>07DBa4t4-BbO4><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[P6?^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 gA - 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
2L®
2L
B x #G B,L|[ a! L[| LJ#" 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 gA - 2k 1 W k[m WO"O<13 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<1C0 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 058+ ]1B= 7vc04/ 02Cu0 ;<0¤02ZhO O K:c 58702B1 K 040rABj = 9[704C 3¤W ;¬K { O<j +1O C85£=vFq O<02Z 0¤; + ;1<0sCV= =E0¤1 ;<04043(3(1C 7 0413V= ; + 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= g9 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 1j3 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 O0Z + =(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`+ C8CQ02C4tO<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 O0Z + =(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|tO<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
j043 3 380 01 Z ;0 = C8- CQ0 2k 0 W 0 5 2j k W m W O|{ C4{ ;|{ O<10 1<C 1<=E0 1 1IRSZD0z
F anonymous
+Lq O0= KM+ C8C80 ?NomDeClasse
+2@6+ = 9 Z 9 3 5 043 + O<gA 10j 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 O0g 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
gA 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¤gA - 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<Cb021<CQ02Zdc K 0
W\* + @6+LK 02O3P;0=E02C
;<9 0 K {5802+ 1<CQ5 02Zdc K 0 5BV+ 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:15 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<jCb02381<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(C7;<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 0sgA - 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£=E10 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 gA
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;<O1 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+ gA - 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; g9[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 4D« 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 02CC 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 5K 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+ 10 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<=E09 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 1giC 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 K5 R 0
O C 0V02C 0 R 0r021 043
!
!
!
(
B }a ,^|B!SB,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:59 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 @ 0d02W 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 51HK 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 \.NBU 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 11 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] ;10202C1 021B] CQ02;Zy02cC K 021 C_;|043 { 7 1<; 7 02=EC>02Cg;<A 0 58+ c K 0 + O W O K CCQC 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 gA - 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 SL.
* 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
gA - * 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/ 0CJ=; 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 / 0sg58A + - 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 2D« 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¤g021<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 02CC 9 1 5 ; 04/ AB1 7 02C 021
gA - 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.gA
« 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;<OZ 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 1g 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 gA - 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 02O3vCgA
%
#
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 k6D« 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)
gA
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<102CVgA + 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
gA - 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£0gA -O 2k ;W 0k m W c 0 O gA
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 gC4A 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 kLh« + 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 jCgA - 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:5B+ K 9 5 5 KM+ K`+ q 7 ) 9[7:5aK 7
Kg02A 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 b02Z¥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#"MB,L <
*,+ = KM+ OBCQ0 OPERATIONS gA - 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 021O<+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 /> . 6a L _La.
*,+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 0gA - 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 1egA - 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= jC¤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 @ t0 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 02Cg0 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 CQ0211 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+ 33 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 jCV;|{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 @ 002C 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 =E0Lt5¥=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 gA - 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=E0gA
0213802C 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[ _!lL
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 CQj 9 3vK Z +6587:9 1587:;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<100 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 1z 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(02Cb
^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
gA - 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 ! [ [ [,¢^_fB£
"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 jBCh+ gA - / 2Bk + W m / W|/ * 02C B+ 3 5 + Ze0] 5 3802Cu+ ;|{021 KM5 7:3 5Q045l/ 0L/ t+LC2K { 7MK W R¥* 021 B+ + tC + 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\gA - 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 O1 7:@ @U0 + + O7M+ ;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 t5 ; + 1<58C 7:9 K { 9 3v;q 380r;|{ + G+ 3 7:587:9 1 gA - 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"+UgA - 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 =pgA - 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 02CO>;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 T0 / 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 5B+ 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 gA
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 13 0 / +LKM7 C80sO<1<0 7:5l04/ 3 +6587:9 1C8O<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= 0gA
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<CPgA - 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+ 3O<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 102C 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/ Cp002;<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^b9j 9 3(5 Zp09 +n@U+ +L 7 + 3v/ ; K W 5 1<9 C8O 7M7:q 5 0\1 W9 oYO<C9 Z 9 1 '5 3 / 9 1<7 C K { 9 + b
3 =(F<0 3 02= 1 C 040NC8O<3¤OB10 02Z 0eC Z 0;0 3 0EbZ 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 bZ 029 =E1B3 1 +L0¥7 0 Z 0 / K 021l= O5 30 9 1 027MZDq O021 0yC '02/ = O7 3hA 0d/ O<0211 0
021Z 9 ; 7 A + 1 5¤ K { + BK 0 5 ^9 O3DO<10 BK`+65 0Ebj 9 3(Zp0 +2@6+ C 58+ 1B; + 3(; ^9 O3 9 c 5 021 7 3pOB10 BKM+65 0Ebj 9 3(ZD0
02Zdc + 3 q O 04/ 0 +n@U+ + 3(; W
% &
"!$# &%(' *) ,+ .- .
(
\. U . 0 / . e_a62 143¬6 58
7, ,^: 9^?
!
!
§#¨©aª; lW; « $>0 / @ 0 K:9< 02ZD021 5 ;|{ OB10 + BK 0 5 +2@6+ + 3(;
&
;2L
k6L
#
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 0EbZ 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 0EbZ 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 0Ebj 9 3vZD0 +2@6+
5C 8+ 1<; 02+ Cs3(;>C C 029 = 1 AB5\= K 02C\02CeC8O ;7:@U0 + 1 5 02C£z 0Ebj 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 + C8CQ0EbZ 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 3802Cfg021 &.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 0Ebj 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 0Ebj 9 3(ZD0 +2@6+ + 3(;02C 5 021 0 / @L9[K O 587:9 13 + 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 0Ebj 9 3(ZD0 9 @ +2@6KM+ K C 9 1 '5p/ K 70 @04/ +60258C 7:9 + OW 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?! lL_[ "`__ ^_aNf _ 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 02CygA
« 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 0EbZ 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 b7 Z AG= +61<581 7:9 1N0 ;<0 Oe02=C 9[3 K ;10r;<OO<0h^C89 O 3 5 0EbZ 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 HgA - ; 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 0EbZ 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 0EbZ 9 1<1 +L7 0Dz<= 9 1 5 021IOP;<O ^9 3 5 0EbZ 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 0EbZ 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[,HB 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 O5|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 gA -; 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 bZ 9 O|1<{ 1 O<+L17 0 0V021<C C 5 380 1B =E3 0¤02/ C8;B02O 1 5l0 / G3 + 0E3~bZ 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.58g7MA 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^aa<
7, ,: 9^? a f¬LL 1 5,_| B . lL[ 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;g0 A KM+ +2@6+ + O3(;>CQ02; Z 02/ =Eb 3 7MO5 0y02Z 1 ; lW k OW0J;6W gA 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 O33 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. 6P +
, B¬_f 5B, 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 CCQ0403 +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 OgA 587`KM7 C + c K 0'0 C(O3 +2@6+ + 0 3(; 3 gA ;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 10 / 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 gA - ; 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 O0E0bZ <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 0EbZ 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 $! "! cNM 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 \ BU1A 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 PBU1A X jG \ $ I r aE !"& "! PQ & !
!
E ;[Z J 5 (9
"5"!
3M ! U PQ X
E ;[Z T ;[Z J $;[Z M \ " ! % ! BU1A 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 " ! UU 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 UU 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 7U ;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 >lP#&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 >wC#&-+*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%!!,+>;JQ1O
y0"0#wx55teZKgb9#?!2&m99\rYHG+*,"..}
JKt G1"m$#?5&f@"h&0 &h59OY5HGB@5mGH%" *[80%#;)* d P >v>, 5/+ \]d +5#/* d 9^ ><H?>@ , ' U C ^ d T == \N >
c w >( 030O4D> 9!"%&m9Ze#\"$b"h2JL'5tg5'2M"GB++*J't &h5B997 > 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\5h50"bn$"$.- *' , P ) U ;= *`)C/5"c PBT A= >
c d w¢ >C9,D>¤£,5¥55#?2lX'"h&$*'t%GBs0#.}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*,"f8F1g`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,t1¬§¬&h@9#&!9 > H / > 0%)w@ >*@c PAA > T /= 0 d 27>
c C 0!>-Z0X'!t ]n9¬Y!"$#@P Lx55t 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~1BI *\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 vT ) 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 &g599aO;51G5!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¬kFx q#h]nh*13*.?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§$9F5#?"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%G0b"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" &0a2" 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 j1|FJL,P ~,B~79x5!G*#?"n$5 m0"0#?"0'&g"(§¬ §gF5#?"
|©HG+ "g"$#HG 5'2wgb"$t+t uGH"0'&g"kJK#9 &05t :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#.}"0tt " ¦F¨[5'#?5.}5)"0k@9+t tZ
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" "$
2fG#?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" ¦yJeB'#?!&0*,"e$#g.("$t+t "[@,#t?P 592H"}5
2©$i" ¥"0tB@"$.("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+NN><_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 $590"!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 aJB t &h59)2H"fX "%&$*H
!b"K8Y#g.("0tt "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..w5B99/"0
OY%G0b" 5¥"%& b9#§5b"$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#?59Eq#h]nh*1b3j|et "%&m9#§b9&qs#g]mg*1gb
+{.N'@91G7 "@qv§':n3OY"g"%2 7m<:Ib* _K/74 c PP =A>
^c > M!49+H
> .(0'5B99{5 2s+.N't "$.("$b\5B99 ?L'#§m&g"g0"$ 5'2 M5\5Q#?. j1¨©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 599'5teJLxsJQjX
!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.w5B99&g5tc5#9GB1.("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..HGa9+* ¨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.+tt?e\@"h&0 &h59 tu5HGB@5mGH"^>
H D&D ED >A0a /! d 0 C 2-*[c PA C >
^ T b> :5,> gb9#§m2&!9zI5 t5(¬!i" &! &g59> _Q! 0%+*Uc PP U > %H >,C, ' d dd C A d T = A v >
^ A y> :5M+s
> !i" &0 &g599 $#.("$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'@>v9!"%&!9Z$e#"0b"%2 §9F5#?"
|©HG+ "g"$#HG ¦;J y0"&g50"kM6#¥"$vJB #§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,+>bn$"$.}59&[ §9F5#?"eM"$¥"$tug'.("$b;H1G 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#6F#g]mg*1gb3(q#h]nh*1 +
&g.N'@91G *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'2x"!+*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.("0bkF#g]mg*1g gb"$#'59'5tJLxsJQjX !!"$#%"$ &g" >J8N> ##
D'& 0A*'>, 5/+ \]d +5#/*Dc PP 9^ >
= d C
® >?U90/*[
>[(
0%;! G 0%*6' >©« 9+,#+,>z8Y#.w5tLx"!+*1!25'29!"%&msX'"h&$* thGE¦
g'"\G#?59+HG)8Y#.w5tK5 2b9#g&m91#%"%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&m99g@0i" .w5B9
!"}2"6\mi" &0 &h5B99;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'5B99 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"$guG!*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¥"0tg .}"0b65 2y0"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@5B99f2"tu%G&0\"$t &0#99
!"$2©0i" ¥"$tugBi" ;@5#tu5L. 0i" +*1m2"- ¦j "e5gB #§!&0*,"
!5b99\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" 99 "0Q'#?%G#?5..}599z#g\"$b@ni" "H9!"0 > D&$350%##&,* d vKvKv > %H >,C, '
dd c d v P ccc T >
T U D(> _X$+Hc> M $i" ¥"$tugB@"0.}"0bH$#.("$t ,5#K9!"0+¦ @9t$59s&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* |eb999Z["0t5B99h* `JeB'#?!5B&$*)ZN| P R,3e-1g+ "$h¬xZ
2H"$t+t +HG5'2 ["0Z|©HG+ "h"0#g+HG3NB+*gb"$#'59'5tKm0"0#?"0'&g" +*,"|e'9+9Z ["$tu59@h*HW
JeB'#?!5B&0*B3Fx5'&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+¥5B992"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+*Kg'"$#'59'5t<!!"$#%"$'&"[¬JK,\.w5B"%2M"%2@&m99 7;JNMK|:7*
80%#M;)*v = vT 0K Oy"%&m91#%" 46B" JK#9 &05tFgb"0ttG1"$'&"%* , T ^ A ) T Cd e* >O/5/ 0% * , *
;9Cc PP d ><>15!+ \d]+5#9>
TP 8N> +!&+> ª 0i" 6$i" #?595@\.}590b"2"&h.N,$5betu%GB9&!"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;|eHGBc"h"$#+HGwx"0+*,!26~1BIb* .,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" # &g592"6thG&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'2610"L§©+*,"e-Zx)"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..+HGst5HG5!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
eFx¨e1J}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"$tHG
O;51G5!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%GB9&!"0t > '' 0% \J
« ,!#$*@c PP d >&H%>,C
, d ABT P BA UU P >
P > b
_ >;>1 8$> XY*," `'\59`¦yJ #%"9!"$#%"$ &g"x55t > 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;x5b"0t 2;P @9t$5"01#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'5B99 5t<.N,g+,. uG'5t@¨©#§!&"gg+HG(5 2
gm$#.}59EX "%&$*H'tu%G 7+gb1¨FXKP ~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'5B99 5tF!!"$#%"$'&"Q 8;#.}5t'|eHGBc"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
j1|FJP ~1B3}+*
g'"$#'59'5t!!"$#%"$'&"L '§$9F5#?"K5'2¬"$.|©HG+ "h"0#g+HG5'2 XY*,"0#JeB'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!!"$#%"$'&"('§$9F5#%" 5'2v"$.¬|e1G+ "h"0#g+HGa5'2+*,"$+#}5gB't9&g59@
79j1|JsP ~1B0: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#§5bLO;5HGB5!GH"s¦¨e#%"%&! !"}xm2"$t1G 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>