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>