ࡱ>  |}~`![*,&ߜP㨋C:[x|c&W1ƜmH3m۶mvڶm۶mmߵVJߨU5:<*!EC @P[hskؠ}G7VcH~~+4*?L`"I\eGKlDtDCDB&a!o&?d|'3!@f=ܑrK +Wd\ErQY*eUrV(erR 9 ȱOQ=ʧ#\5>u g;(x(Y~y*^^y vs%]]ݝѪ(((*} H?+5 2H_IhzieњBirIe&HfhB dƗyOj\YqdƖKVkLYܤeFأQF#8F+!^FёK>DG+t L,FIw ?E.$DjdCAIʢ: a,#1EX،]8q%\m<<ų Q9^5˱?oz~A|Dq{KXD$χH?|hIHCI&dEF>R (4ʢ*jhfZshy;άk#K_Uh2ǐ> e+||P2'>,eCҧ>eO#էOn dDf9 9#|~9 _LNRrڗ35䂯'|c[UNr;~}?Nϕ~?,A@$İx ,N@rbd,Z@!P"T-l@= B`2 HZf?X?>/7~[eO~{}v_]j+;Nv޹>;C>#=>壻>>>䓻Ap|J֧r}nnfnn&|nn/"n/bn//z2/򮳯:JZ*ꮉڮ**z4J F #/r.'?! 2!4H|?9pD7Ǐ؜/&s(!k±0 :X~+羸+>+޸+^+n\鮸.l,N$N(,bc3c5V`1a&nv[! VnDiʢjPmj6[mCCZh]=1C0#11S0 31c.R&ν[ YW,?0bYaq4K,>џ~X"Zb}-mI}OK满3:Zrm-oFo)}ԴT*[j_,/(Bȏܖ@VggzEJ$G$D\9Vdsa !XguF5s 5.+wF;>v)E ǭ֭nstLD7AG}_v6sݴ5\;Zi)L Flfp54\EMklWZӰpԻ.2WLcIDxYdeDtn 7g=2ʺ*C3Qґ Y"5R]T:ZcioDK}iND6:jIU'Z-U*DK%DV RKi+GĔVFXi)D淒DM m%'Q͊9E$2XaSIHOxc$b  #,B#$ cbo/|o0V"b$ kv-[XW6h=YGֆ̢d6T- %bfk+"LvDg{LN2V;]e4L{0f&C#RHoD&ZJg"#ԞHjcB'JS,:C,syRC%RQIy])euֵD:)nBM1ֽCɇcDIIyIqߑzܔz]U}s9~k8M9%C8sQGH2Yq0m^mmm$Us-7r2RbBϵr't6l#\>\!\'#<~=1JGGFWFgW& bC! PK H舉8HHHH Ȅȁ<p(eÈapmT%櫣$GQFSg`^/k}q~j0  #7zR34&4"4$4 ԷVR,R R Rz^QQQjIQ2F!LFDFHFHF@F(OF(''RARA#)I .b#Y% "# B!8`"+oWxDc<$.n&W˸E?H#w;_S66֑Vk}vlCvncvpSOF "~ ?:#Qޓ'=/{4)m١٭-عMɍ:<<mƾDe#/"n(7M#'m̳Wfqst#u%D27q븶\n w{"D!2Q"'[#=gEg33ɲSDDpQ8g3(M$ G͇o2O=-/ "pDF4o Ģ"A\g?'Db˞+ɐ%?{>0Z3S<#';-u\eŽ}=gKƓYǓ&i'r/'q'sprߦqϦsfpfgpOr?q7O-f,a,cZ~ZMYZOu٨yVMٟٗ ٧yVuyVuؿ!kRj)󜪳ǫ\5M=y Ӌ>@/zهED"^qPHȠ}s"/ M_/J}m; Zoa$`1 31KLX5XFllE,]T/آmmCFZx I-Ola|B XׂcH o]BG`[_}>u{q/{7SU@/{zsq7'U=.awQߝսr'u;1FwH׻Un.wu۩ lY:ŭ nqu[2hHvnt3d&hU7N+Zڍbnt5jZ[Sur5k\ Zi0B5ӟDZ#`VGX-}`5U[VUYelUгV^OY9=ae}+̞%QK ;nS" ++.\S,g&L<IJˬ,vFZ*m) qYf-x8Ҥ]YTn43r j\_ׇjz[E/7/t D"1zzA{N|Juև Kqnlц٢Sq2c457k3\zMRJ\e 3)b(Lu.|tIyّʝi)I qA^帿>y:v G_ԣDcP>$:DDf3LAd.5LKdO{.=#<=& vqqGp{.l{2s9 ;w)mkA%.uqIKl]"kZ#V \\r.te]LbXNݲ!f\TKMEdH"Y|QN\8 ZX$Sw\(m!YO>7xi C3g-ruձ8luճVX; .[#j:nYcM9F3ל㶰^Y+{>[[n엵7u,uv.\OWq},n \OKzYr$q},}oyZ!uJ,*VUQ_uPє[vNn^g(F``<&b a&`_XX؀M؂؉=؋8#8N. [/nI{AQ6I6ha[uXUXZb>`阊I1aZcA{:Zk kƨڨ((ȏȎL|7= p9c" "mZ~1w~#2|䱇$ݡ%9d+dD;l~ `ӏH:;Ĝ}ݒvo~ &fV0{-c[쾀`fӘ0MbV(!&`, f#1 e渟:ߴ3GOf̈ݙ3tgxwqS{3aٟf3`Pf#{0JMdf\?h.A؃d l3'DU{31,p/o}{1$pbnLG7ȗ2]Jnoc+ %>t`,TҺZerrJOXKo pu,.\Qbzw U,_$@Kp)!/^!hVcJlqy5>&Dci2)x%\3jJ͢5x%fU i-+5╲RAj%^+5rZW+j6Jhx6Dj3λ=}ж:X0#cNT3,v9_"TrJZ/ѶPwpQ(=‘= G?NҫN[N:>k>љ3ֹNI]YO]bK2 FF i+54’Z2(""{ԂQУ*YS3YEMOl>59}jbzq\1G#Ӌ' F3z_[jNȳz9Oo͠75bZ5?t};&uOW'7Gf{iL$CD^xfXph!x"xR<536mIOڔ}ؘ{img i5ke,Q>~QDK!o͇<ȅd͈? ^8N帡9G(|:z _c {*HVIUVUXuio5ՖnVWzYke5BZ+nmdAZ'o]duSZon}e ޹6DpYdd yyzMU6]V,Ykse=}-M\:nemKvQ3akevAU9h7q=k|W1׃!dLF5/SQfm9t'mSvv6vVvfv&vFjzuRZ[Nz2KPùNq>Ϧ1E6Wg̴%LTu:32YmɶI'Vhudڭl/X;c8g^N|x̴qaf#97;) Y%kn2Kgv_caϙ_q̖β06"0f}-u[SQY b,eҊX|+eQ<=r59b}{t.2%\S۬}mic!\{_EWMUS[=augki] ps<,>/|^y+y3y;C9^w \b(8DH䖛XML&6r#r3ozil{왦TzXTN JB:m!u ST0QQuf LKDG1NOh=o &+їto[wH j?To_?po_G?m:ւs\^.sXȹgAw-:Vj=[ϝB_['d4](v}3X?Cs0^Q9Rl d\a**NzK.#"3DG,!G"$Er@*EdF698NW8~IUSϾ>~VO +jV*%_AICfŽEdŽA.N=I&)'39N_'ĎIZ0Kr=*quLDE$D@Bp79%_ING9#䬼R.s$OUYPkhns;x5 &+OvSjMKǯ*0&WQ҈IjviXvkh !kpvg';roqxJd}&>+9Pc]8DBT~bx%7x ؞$pwq 7pqgq p[k9J,u l!boS1sqtŲbZ;EhY]E*("[i`ׅ\_V2rЖNBZb>q-$ ܟY(g團p~OOL컾O>Oz>>߳ɳFOkWz^{{9Ssɴݞ{D70G tV0-ηue0Yv&M:n0Бi&)s띁٬}.װоbi׶2wwߺĶn3gYcV>m!켅nXhca큅'^XD{kEo~[4<<-Ob}ELDHa\(>fo ?oj;^WgrK3r#wC+zsӝk^!]r';OgSW'A~=AKmmnn&m$#qtp[KɋJ]@Dg:9-I nrvsțt(y/m7M{{M.Ln9w6'G7!W7 gqôU]zinCnu!wԮkbVԀVԂ5𮉆v4kէn%ԡҏV\P]_Y5}nUU!T&TU[V^[9jeeSWN[ =VZ>8'675/ϵϵ(y_R=S&"t;k_]}X#y[S} yK_y[b{:Kٞ~ d&c bOkn]%\YIQ7xg[x[XIn( _^芎hh&/bZmYwz7R#9בȍ\S Dq-< 7Ĕkaghm̸vzUanvҺQl:Vkorkm-6Z,knӬM6c6Pe 9{ڀַVLu9SP9rmV#[5t ޭ+jUE4<=g|.?*1 p9G!UsE6Ȋ+ní,ie]ƦXYalVkȵV暫zκsngX~Vtgug \V{UeUXS%+{}>}coεϬ=Ϯϰ#u%E oׅܕݍrIi\/h{GgtCOח:җ/{/{H?z~Ԓ~~~60 KFlVlN<pppg@'^^eW6ICFL4M\1`" :0egѕCO>L }3 d:T0i`(p&Ll7Io ST96g"f$:p3"M\Ofә1?͚)Szݭt}ZizX+QcZɽb=T{3¬gtguvw&y׃<{y;7G6WֳgֱwVV2.f-dg `_T$x&LC篟^d_^zViI'vzHZiW ܕrO~Q&n98Wp된7 !"1iGg3b*wLLt5ޕ,Vf5%J(uT@e*U\[] @{b8j?Fb4=LTjt\,`XeX5XM؊؅swG9 qv,}z}K j֮+N~|m]߼{>|?="?=axb>*ԀԂ8 ,.{cs0 YL8 00 a{kae"&.28>FNV^fl_x_~___ܲ#2P}2"3";r@aEqDi ʢ<*2j.!Z5ڡ:s!M210-$'$'[%XT5X A(mvvNf~3wsNNQd`_`}g|c|e|e|a|f|b|dg|d7|`穿 '7O3>c5OY13#z̊[,:&EEdD.GXޑ>(A=uA Ʊ.8B[.»;.8㞹x^K޻K⾺d~?G0)\(A8D)]dDEtDlE|$Db$HSLtȀL' !r! q(铻2(J>퓸>k&hA!k>kcGs}Gt]}8݇v=}H^]o6ljdæ6ӟ9lcK6[7*Ŷϱ~mL~mi}';[1NvWs]`$tM[>e}]w?>?^}7ca F ?=Q|YGJcQ}M?$w[-Hn冿)/F.r ~.g97)NNrܯc~_ <9gA?KO}~e 8?Z,2g21Cz+:ڡm,>HV~NsK7Oz9 I/_ce/+}_I u8o}TLd"S}O ?@f!2Ǐy\?Qk]rDV{ou~ld?"[IqW[܇{܏'ܛWܣܯ7#>YQ􄏥|B=3>ϥ}AK^_Tl =a닰ovGqc]M}s<=NvGaǶc>)RQΎ@;Q}9b^_c}}4])NbgoKLu@'$ 0?#3. 19>Z"?h|tbq=Xk_ ,-y ?bZVӲo<~#'K_`E t+'YirCY?!Vʞw꾽-obu|=|/ }kĽj[_Sњ֜{dzV>BZkom_1j[q GW؈Xg'=Z)m:JJb"״9%Ϥ-9-|Drm !i31QM|(@pxmL~jKC⡁*S/*cK WOUu/K%rWEV*oQ)Ib$8 EZ)L"w w'o%钋|\Ïl~d$,@I[ғn'!(i|{IJ*ZR?Rh*ƒWx-o&!}sP|' K ;IxߕH'2ItNL?\b75& &s$ y7דүg[XNַf'$ ''9>'''?0(Ϡ8ϨϬOe=Zgъ>V򅴲/U|Ekh5__Sjv5}_ hL,, 3۰q^5s9sgJ J> "SѬOb| - [rPiTJe@VF5+B.*L.*D, otsO\wܾ;zZ.{m]` *hN(fͦmq )˂ȏ%QUPͳh[ktB?QnMtzXU{$[jq)^c<q دH9sKəȗɗsɗdFFxuߙgwgggra 0\>~-!s\y&8nlZ,cd:CЏY;:0E߅oQKr!+#k #b *p$D@XA(t.RО"5 Nc?5&⸴ ]M?\j͍(2.VD R)ZzbK0S0K qpo@A$@<$AJȎ<("(2(jԁ>֢E-E-E?Z: *"ʣ,J8 2#R!)  ,Cwx.V2t BotA[4C}@%A1DndCFӒ&C"G#b"""Ġ=WhHWIt5ePJ\ ?Vr +2" "!pPUGwS~7i};no䛽sjOXܓOv`佝wv5TYu9dUc8nU$U[~{[ Ԕ{V5DZ3yd-䱵F[ybQZyfDoya W6X^0yc#0Fx6Ne3Xle|E\RsVs'[[~>wHs'Ĺ9 pqEݒ.KHPB'=0%HX%,7~D#<"l"쓐y~]D :b"p/G"P$G .2o"r!/ (k,Y,[,],WQ 54:hhV6l|:pv nZ1o5hxW[ùv>P8,샛/U^WVHHHȎ((*h茞L,:l 9\\M]}W^:*.AE@T$+(;KGC NBoW{ιswߝ;3I:_-Hz14 RB2HZRᕫ/܃p5@F9Ga?$!5hX3aD2 CO&  ?@T+(ak&!;du%#^wCgl8`#?dF*RI.l[ n򾍐\6V> MlY͓l|nK%HA[/mm픢[SC59o|kg$9]psi =rT˛DZ@2H-tZ2[Zٲ@6x?FGZg[>(?X!(_Vf癅̵yZ֖ii[%m~cqZAQ>z1c\1%0ń0DQ0"aB'h94PC5o+ A~_ZrM[E[a|X`ZRG}ނF F j9b p Ge'qMr&bi=1#֖ђ[+鈩46]RIA-& qȢF, #Ƈ+sS#+OwoxNk9<_^ghM]:R4=8^v)MV_ثoysad/uala6 !8 sE 7܇G oxXiRHk5%46xHKoe#{Ja[),%CI9 p.e7܅szZf77g8Z4k]5/R(ÙR3䆏 #nG刱]yΐU RAqZ2HcVCCib4%7 A J`uEZrk͙׆ v6HSOwh#֙Buҕ/oj6Jo}82gV׃l l! A7c8fgH.&܆p_F8N:¡| W:sk:>B3y>ܐK{ށ!>RArH̓h/WzG'm|pJw~w7KOI7lm蟺^؍vv6 *|cO[:,d=.XiҊ\Ӓӂ9Ҍ|X>҈Րި9.]ZK-&P>+Ո'wS%(OҌ-K%+Py ҜbK~[I>3ysMM/J7G"o-?8]?qLlBlU#~%~#~'W5IM?Z6fm:.gi=(ɳ m|n|C޲ my ?a/2\p_߅1u5Ϭ2X"C΀iI?dCN#5" zE;`SULBM?~6,Z&~Gz*-*&Yr(eY2W[oDw黖lc4mҷmfxdk-ڌiRMG=855r*Աm&1FjbjD԰YOkB#6ѧZ_km}5VZUi[ZJoh ѫZP/k>ED/z^s9ͥg}=;zZ)ͤ'5Azfde{<9r2! χ.ѩ0ՇZ]K(5ƎrT۾'wP7Q|5>m~kv9hn |73ty>;|2o69Y)7FNֱ.kX 57tEp֥5%j zdI+s%FOV}y9zߟ!~YS&Q;uLSM: zy#!nn%' @V W@7pgDNY/ľؗ `_&ˀ}߭M})/)%¾~}NЇԵW܂Ժ误P^pf\y p,3"_ak{~}zG:+=VFtz|Rni1ff}j.hnؗ;?a ?(@^*_ (+F>-OƷ%~KKZx(cP> #vK.;A='` `( a ̀0"X1 gTͬl5jjm!VP[`E"X`l Y0aQ0Fdm( _Еk#vZB4 F[}\&TjU; {bf4 ڙl$:.P튎et :nd a|X̘mu%sfvViGdm@;qa V+]/bl.-a>c( `cО?Q#z&CMe5jNӂ}NkޘH1Zz*54jk3gQ̢^MM=z.u +kѫͧ^@Zzb%K_D ~^Fݴl9} UW%+mܒcŮ5 88>Lvz{un#/ѳnm;QmnB߸:nD le=:궵kmU+E,5 zhZFCaS<Kx "%1$T2AV2PCRPnT:Z@; = n)0 R5 m 8<\kp xO9/{A&/]uf|gy ܅[pE8  &X\q`L]W};tB~;h.Ԁ_{2 B2AzlJ) )$%g졧w]wmz\ϵ'o9ϵ\@0.RkA7LЍ&n6sQhK7V[q֍?&ig7YMמnq\0PGEx2V RgU:ϭхn.q5mnƹxn6_wֽp;G)= wNO z] ^q7C\WzωsC2HKkw\޲.pY{Ǯwnv }嶣C;>cN׶&e K`\?&X\#`(b~ =岎orX+tiN{VjlV]V6q$|2ZQl+[~B>\.e\r˂?ނ.qI,%>JYb̓\/M9<5'^} C=`+op F}/G㈣:!a$10M0MLuSt>qMRb3\A\r t-kR]M\A,,w1a| |4D3_4.Ab-$EOG)}\@'﻽.%nu9 I*nw(뤸[ټ3dt$q.eT*nIU~u1;ԀZPlu9  y? :Tv;/yw1nE>)WBCa9ǎ c>`LNw{v(CNi\C]곧fW[jw=ܯz{7]uoMrmu=wC9הk-s9'Zo&wj\fKK?KZO'tӤt_zA?C3v e##\@E2/)~L+e_#3:X\"&7x( /NXKo̥/~!̗vixY4xFsDENKDUvun99aGcGpfZ{#^0S1'=N[p.'*%M,d9 䆏ig2sfmV mEmyͷol%VbZEJ*[(ur]wt&g4_7:U` F}uGl޶iz.]}6_B}j-՗i ՕXTX! == KMKAe$dDdH# Yrh}.,y=h@͂v+nvHMu'f.zet.K[dͳNnuqiݡnA\t(5-~4V0~%Ϯ^^ܛZ_ `M.kv[Cu6.`GAʒwv= p|y.*܀یy ݣ.$ s;ftوNVg,.>cBlMs:FB~ NߏQ灏uPtϩC]\͘1?׉>NtBgb:ۗй[K|_ZЗ P\ 0WsUu^ >\1XF1hdDpdFtT46ͧ>l7[ut1uk Wu[nN~8;~G^qu t;"s &6ZVTS[Oc}ZlOnm!Ž>`G77w$ƑSWwP빳ӛun%^; t!~5N#8v8 mz.L=sgu Gw 9;a;F5Vr M>~c?o|Z7Iƿ| WÏ>= vj,E؀zaJJDT&+>LB( `!i8W WuJ!jG |78x흇U57 J{w8{P(`oT J^T^$ ux\gVd2J&}LK1 ) i-ʐ]])|])cI#Q)b4aJ//O)OQm,jc (̴2{yIԼjmv97?9[dr;MU4qLLj0b[hE|p)"چKL.3ZL6sy^,2 YfA8Sz9a3La3?L Y 'dKȼiU=wQ&`YvE>O\(<, O`.QcoAlЈ (ǃh;xޣp7qǃ WWAw(yeCAw }kXlSEЏ']Ag{0dV.+̖ʓ}!ퟐtVB}`؞h)LoW>}ŢzS_Vcn*[m'޼y3aKbcSd̓n,vC|Vwq+{ ^ʫ2ҽ%=i>ܳSz2}(Vޕe? *d;$i~nyN!D{RHv&o<_,1< +<+?pxE*H nG h5XZ)%PMJm^' {/H1(nkRj@UEYEQو:)>Y#9s>@zWPY Kc̖BZĸKvemv.f0)0ٛ1{iٴ ¥ryV wkyוU[)č.{=٥`K&ղUYsxGc=,ݳLSޣCvHsH%du_w>v`'0k~N/\` gej;Z>(=]Xgg\/&)17טÔv:70;\y=g`>bzA-ڽܼ\|o2V U` CM=it?.Fz|ܳcJNVbJ֑g.[/yYkve Y_Ȼw^޿<,'(smݓUqy֭ݿwz u۟|SLgMd%2Ci)AC<٧@_{Sޓ8}\nЉuiii y/C]ao!*샥YEY<2e&51`r5 r}ϝݟA;w9hؠ)\J.TsY#2JUF8 .UbR J%;s$HnZsKAv 5~Һq7AO/{{!8g/_['9)+Gm!=E- QW)9e?m6v񼓲O[iՖmJIy͔mJnyi :6CV(d#w6h;ǖY7 \}M ۤr=LzdV:\k55]}Gj (+cr)yB)JS ʸF:ʻQTrLeZڮ7]iH;vAf CzfFaX@VHK#0w}$8 8G㱜WWث.g ?r6z#m"*_I#4TPK5"nso*5M5/ĩՕ{NjW@ߣ}KُE~9\zis/βRY`g#^'f+{ )g>k`)ݥ4>B33K2oD|fsי]'Np)6 ˴>l32ľp2<@sfB8 U(6!5AǕf;/*̃2OY`Fb{VPqT5EYȻY;?2픮0=s#?z{jgDijSg9]+ˈ$B&cyMHu#|+3gЁDIDΞ6Fi"tUeJiY PI-sngN!xBܟ(S2='m[SSتD|VnFQJIyĖl9YEh[DOшհve'ѵ@"aDãe&B_=OΞVI3>LRyҖ;IyEm`/^+}9!^^_"љ,TR:Ok&ukio@1dr$]r.˵JNldUKLeTJHtKOL%i%RQWS3"M? n E0 ! ~Oq!|k8qx #3Z )gΑ|vӅ/d](D?(3ؑK_1ңɏn|sv"mc{7pF>t,zGS7}8mc8'g$hNq0fCg-XB;i}KN9l~ًnS`ьs2q>$zi=mUMeM$z]Jه|ʺż|)ΎJPGtn&+=QֆV1q- g[[F՞ ߗr,;ǜ?6o0W"9ήElqx=4S3O.Xq*zVDr=x~gr\ģl>u e1-ryZ Ielߍ= ع`6mgs6{b|y om{7(F!t?:k伏SNe93y&!C{ϓyxbN=-Կ˼˼na63oVz^-J}y)m<Ǽ@Mp+zxIFVzڮGz9l;S9Eqێ)[{mb "[}[&ny{=8qx=s';=r%%\Qk~;:vDܣ!~LEYK)[Jrv`]~vP_e%=;%Q~ZѹXnS/D{"0ǐ{ۈظyyLd,.` ^d^b&!C[]xi/$=gL|WsN]!=G8^:IS?z{xi|8G&ND۝g-= Ea(% ep{!6.J˹y%ő-E8QP8]=T+=h\4 mG6i5gi'O{Zk=ve=H{{aHw腟R6xz]'QJCtҞGtJWtt>J'MKv 31QXRZXF:OL=F+ow!2uя KRx;LD5l}wx(?#XX*AU,Tg5U $tpee+."PXfNwEeR\&{r(Lj=m (JYa !_YP(d>bP **sF.꡻>6g:̊ޯ,T{eHK03Ef>d}IP."O~̜9%9sʐlTS*SU*Ub/){]P '_삞9Ц$'AIvOO1v¤ћ i+l =7{s-w4fpReDUJZ[چs"mM}nmVيEOc,h@QOzC5ʪQW<mp4DG^Ͷ6Ԡ**X_YI.+UϪ1RhD9ȵE>v;p3N"nIkWc呉"Ƈc)%AY^sYr7;ʽ0w܃<^g;7obܗvf70a{dxSV^rGBrK!,Kr;lo{2ws_~UJ7f'#a(Q̨g,rD)螂Sd,D)N։v i_2q>$zh|j=e=- | y#?qgeza =jNel~|Hwڼ E͇J1VvFZ4:sSl9=Vrڏ'_rOyd>UhWW ;l1/` 0 1ކL="+sE07_17ljsXIg2?'4|:G/J`~c=Cʙr*g\Q9b;%:R߼1,rhkG/;\T.q6^v[!04梒\̯mVs~ y>:7~gwr<"O~"NpK:MbOJcԐ2d,s ID]Kϟܧ/YMq4xsE2of._h3:~!}w"‹p MLA%0]*ǥ19]ZsKg2A:S&,bkp"8T<OK֓(Z(Ś(KZT2/j5,+ו|/KGk0^8/aae.nxi{sŶb'CS`=u°S\vuM1ҒP[\VwL 83H**LtGR Mi)Ś(\iڕcUti{;: JS}uYu]YLF hݍ)s!WozjrdʓƳrAd}IU<ץKyr.=i&Fj*B6F>e\FLIgZbOh- i ǚ(1ݍkAGjFH 764t4fj-rMڣ/ =I)I1r}g7]Nӄ7ԁ.^ˁ\&f 343tCʱV(C;F˓gTv?'5;+)kN3 iJ+wx^FxsQQiC1C ٍ'ߢ8Ak=g;inۄ]ms={JYRv҃Rʹ]x>|ٿz(<LF{|ߎ=;cr*ݡ/e؍*ypolF)Ht ʼ V+L?d7r}iןy tf,u?=3mRax F4ĉ:%);b#vF속\'V oR7uGkwdUوeON>l.߀Ş0܇Oߜd9%=4Bc9U6Uxs,X|QnuIwAX-=?F:d8w4/QObHӅ;N/Ce{YR^Wf*/Sn%EIJGKO&[6RJ_أ}֓n9_젴u/^XNbx#y>qvĮ!M}8C%{٨l܏=zΖNw)g;qH`5X"#qlGU)~+ße;~yE)YOH=8LS~,폠ZYRGr޳ r s*0yq<}38ܹH'Qyn݇ch{3M溉<7S9emؾKݽI=xs)Z$u2xVr^%.D JY0{kCvsOU(|'Y$Yg=d~ eeL])j'lyYx ^#+CdӖ]6=JCe7|q|'،gl,,ؒʖ&Oe&m}4m(k'0AXkcwm?=5&TXm,T|l+aQ2K0"|6#w9(%Rڥ2.d幀t%hDW""KK'spѝd4 p7隽X{#hj3aon9g2"y\w'OON)HI*_ H*Y& iBJIڷ(l>r#ns-s+\YJgMIrNdeX1<јCKɑVz42<ҥgON,{;\ JvZ+:cwfwJM?G>NgtuDWz ۔6ui[JtK]^kNƒa=HI]Fē%VZPI}hbd3fbl;dt"I8vOD~"n1sDtׅS3I#p{jlnyvL#e$\k:$7e}Gﲯ.fcY>{6YVzޥ2:q1mWHe)̒QvLŶ+vEKV*ư6vWA̷DZug{󼚲5 u q|;;1{g|vR<*b5<%[~gdy 9/2-4~լy̓Y6lEV3ښe[ۼa-Sm+}!ͱp\yoo7_f/z>Ntl뚭 oRlͣY}mle {1d/û1\voQ2b_ltx9^mUx.8<Ţ1z=)@XkSyCGSu1]wSUij@mR^_IЌFy*u;㶦 ={zStL5׃>WG<ZG4nOL{ydgںAj1}a2̌ğc@3Ɍ`V3U s(efҭV(DLuLqEW,vY(33aIc 12t> Vȫ45 >fOޙw f}TfKss pq '7ݹu]G_q]W8=8oB`ᡱ.=}f2]3ee,mU+xq~@:r#nN޵A-UVlDnq>!MQ}"s>{0xGDO"K+Ŷwũm{`ܳ_~(V{ẉn&$iL 0^iLD4t̖n!^X<܋%El$y ^h >ʇ}mlwb$4my}3O 8-CT0F3f]tҡX%lw{!#90[Jt|N?&?sNzpC'D'<Jot$I*<*#(pL 7dl2Q#Hm4@-Z+i4~gv=v| Uvh~-cM= _K圴 cw.)Gi~/ó-vyğ-CBa3̔07c̰0ogXVja=38l֡z=&zRaZSM#lif6 Le4 `U}]-MִP:vaFio)m$jʅɌ4UñV8d  Z>? 0׈RWLbBbKJsAe? S|<ﮖUhhYj2Ie\'1KAŘ0+{2k]UҚ.q;-+A~S||}/V*Pvf/ U&gvf-+y҉yQy+On+m3ENn*]&QpyFfw5nY&cgYMݥ2˴Mij9x" qL4T׺VVxGwX C^'~eǐzF}wSme)S(]ͳ vmc^. {$by\e*;o\bZfk+ ̴-th1ԍ^.-eZPZGײľ Jz3fE63NdFڴfMmY/8?`g0^ ۫ ky\ P6U~ FjĹ# Ee-!#e/}.Os!x^ޣʟeKn'j.wzYeS6<}6&h}&Vl}iaV?x_zfo 9XOX5<'WuKy.;ܫ,ԲSg賍{!E`!'6l'^'EŒ&F>)#z^\'xmexGgfn݃%KpOp ŵSΝ9ߏ^7>lYĥNUg!))ԺK(Ie&VQa$7;^X+j,= <)45n5Yk4 Y|SgZcюjlޅI;w^/d&\Xݖ.>q5RxKmMp+k b3/?{?zaZY?s@'@k-94B zPj-mVʶX+B(gK,Z J@1( пSES]l 3`dNd8-h6Rpc4 ՜mfi&mij)!$>YoM Ă;Dq ~YLE/?u!]UGhcaЛy=2 ֎逾vm~_=mXOklj}-%Sv a@X2~1,dnr8 XMVKֶ蛊蟤YQVԕ,F`Uެ/?`aՃ;Џ}Lod@~wY ak]ːV*Xk!ĸ-yۑy!{~l A8Cvbq|~X} aQ=ٻ =@C:/XwXmMX/cfY_ ?_ ~MT~M$tNcs1x{4ϟaxē)0ff.dbF-H]Ռ^Z~<] dn 2c^ [AD3 GlAx?H@"H5ڂ/zZC &PjW?U x^+J8*9Z5fU> ෂ<+n#>%WS_]];ao V\Ni@DYM9D %:.ֵ5&2n!=dvt0~ &[0"_`L,w0~&{Vwcn߅~'Iv`N߅a߃W> ~ό aTOCBNۡy(9JB$OO8 "\+p bM w>cxgM 6h__Xf:zڱ:ڳU,06>vPBBB BBBB#B$]5:kzA}/o7uցv1렯.Շo M9z-T6cmڈ^д^{:omN:ot(w(t5uu5vv( a]5-KOZ}1} >7$-%ާC{a7쀭 C sV d-@|YCLT+ɯVQǓkc 9P\ANVl@4b'7fO homɩБ];$zC_a 0g40T`BX KaYa-A | [a;`!a8 $3pE^h/vnΤ0nz;9v]ďU5u|>ә?nnnrX k sz=l-v|8{N)ttoc0;f`7t|C7_əB|&w>;?={΋wZG+<ɡcr&%w-/ mO/qf C7ѕt%>~ɏݏݏQbuubvyX{>ĸ/1v''90a<4""{6"5(3QاQ8GU39 G">ؗ>bSYid}IedIRsmOe=!@]K^cծI',킴NK;! ԵCRBJGN)cۤm"A X5VJV[&mKR# mĵӦJt/Fg:@ko?ҎKm#˵2EHm*tV MjϊC^dJ[JBm-k[tUIO/} 2TN(9 eL2KY&KeA&v-{_K9K'78ƻ󌹩ZHjQ*H"9:RJk&54Dg %#l2l@FYm;dDw=vEm9hO䨽di2E%P%9/8osrߦ˸c y>QIJ]ddG4ONS4ٱGٽ-YjM'kmE[< ĶR2Kk,-l6r +`6|lU!VXmm5.:/v[Wkj=6j0̊H)VfZqEVmluݶXVۉ潖`1Km-ǪnYO%оbD%Đ%.t),Ki]KAFl<\d.#XB :DOb=xϬ=b wݰW.X;OXy;B kkVx+f-6ͲN6lFZjP|8zM`Fϰĥͷx>j#ı<]X!Z;jY,Mcg(Š Pj@mb/t@^]`(zG L22{QZZhUU"reVZUvh5"Z*W֔#ZHזTϳZO.j}2 Ɇrzz^#=j$uGvu8dqM@1X2Qp2r䳱R/nMA3~f>Y@>g4U֒Umn]z.gT2H;,cu$4̥o `G.~j ;tݑMv]X{dr|J{}lO/쫼d;'hrB2ƅ4t i,65%%Kq,HQCs{x=9<C 5; ~FհwáȘ` @? ]æ\P{o-]2\Jp.4w8.~5Ki#LpI!1$tN .愎 CtI"B=zx.a |7^s[bܗ?]#1mbxKb$&I.KwIBrwQR@*H i!=d̐C< CwU!.4B9wCʻR*Cձ&Ԇ:P@Ch MZ@+B;dGf']z7ņ0{? 0FXa2L0a.GB-_U_-صntd3>ފ{ !!8{pNp25dp}xǼ3%s_! # H.|&'_ɑo>OU~KⱯ=2Oz"o^T!&ֈ^;xRsRv)1K>/n/n W2/98 )Ɵp߇2~?uqtkkCǶEӍ.H}{Jt9RbB^^ffq{O)-yV&8y>F0!09?CF=tAO'} aWh >BmԀjȪJ+~l+C."'JWR#ɕ!'dYVga\eFFfeFGfe7YQ|3*+~̆_>'qEss!r>s95?hWkABvU#p -Y\u.K ,/ii7`) yBsN \D5D=t>Fsx= f.esQ,2ؖŷܛR܇RqJG DmJF a$ 4뿿3 b36N-iS%NSJ;WAK YFW2". E-+fy<+%S>) XEdT.VչĦ词:Ras=s}pkZdAcM'nӗxޑ{bgvaNWvGFOz_ D`tΡ#a4q0&~La4LgL¾9ȝZm_i 1XrX*Xga#c63v ocv] {YKA8|p d8"r :9pŴ.=tQlO\D{/ };r>q>XAH$3>%=촷-}W1~F;CrpIn\%+Κ⬱K IΌ\98s.a?72hrbC{M&g^;ɡz7WXzKO3E w7C]jm ~q"?~ P CABnȉCV !=1Hi C"H!^8c>SKpCLjbџdq4DjTh^|AKq$K KɼˠL˪lˡ˭+ٽB+ E5W\sy%4WRx|4W*h~@U-UZȫuWk!p@3-5|G{B} Ԓ` aZʛd3a6̃rXk &n Al; v3<\d]WX|p)~z/k?ǟg|UyOe2y2xYz/"Zj/"[rH !!ć 1X /EbX4Ų(^ųH^|%^"Kb̜Ki⥶_ԛݯԜOoyZ+_S5M5D:JhMc5Ӕ:ASDM5NL:M ͦ35:G\ͯº@hӅ?>!3w`L1eNaDV>y =9uf1Yu$kf  `~<˘ތŜrj]ݰ:j!(~CvaOekgԀZPA}hȸF )zaK3ja? 0F3w,2!k6IȞum|[/Oe|Uw,K Xzeqk]ƚr9XOVif BjH)BH !>ă8ȍ 1Ā Q 6E߰V_PJro@gdF+/ҧ2Ct} L2YoD.2F/h=/?ep 0ƅX a^LI0o=v迌W:vľzblYR}!˰s96a%YV5y _/K > _A.?i2Hi dl!d^a(,>q+ FC7wΌ =ہ/5Zg3mЌndtؿ ԁ ա*TPJA "H)Hy@S6ʪ2=#dt, V”XaRe֓}}5&`o&`ogyYuS k|je %$dRCH驩!dl^jAjBCQjE1jG1jIqjJ LIjOIR)j\i-Ѳr^9@U*ߪߚZ:^mKOmHmDmLmBmf^GmAmu^ #`RW}0s!0n9f^GfmENF^cQ9]'4vs}/ˬ*&o;.~~{G~} ~)qyJ| e'}NĐ!c+nF&tm~o@zj;;[K_C?aò4GYzz$czڊk%J$㵲70 Fp  釟 {;]Qg|uGO{a{[_M) 9$u)L]0Yj n%9P]ZC)wNK3pJpk(aÍ۫mnVraVvk[U%TP-np󵦛,4&Dk=7Vs;h0PsCh ͸!pݴ%7VZN[s~ڞwӞDwpӎ܎(˻ 0, X a"l} mm 7]z`cxK>` Y#sMiuUq6{MW}5nUaVYf%naVYfynapAwY%<')#O܃%GA!N"/'295yٱrj4FS#;b𖘼&N/s7#?3y5NNh0g^ֽ\ً/k>rfO'oYC][`-UBC9Bu[0_n̂0M)0&x==L ;Mq=J|Az;AOz3pgx3 c2yp Y7y7ɇ[軍;f]lK{}>kZ }> G>z8 g%בyn=G_+kZ~z.Yβ3?M"N'ȁcQt!! A8=q(gG9cϝ%g$/N7T?sLx6^x/ <TrS;UgcYi Q? ֮h7٠%H{r 7>"q/3uLA>**..HH,,HGUVX[   z( // 5)(.(   D W#3$$"% 2$*$$#$ !     !"#$%&'( )*+,-./0123456789:;<=@ABC_2$*,&ߜP[:r$JJDT&+>LBi [2$W WuJ!q8h\$2$6l'^'EŒ&'ٔ 0e0e    A A5% 8c8c     ?A)BCD|E||s "0e@    @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab ___f3|@8QRH& ʚ;ʚ;g4PdPd` 0ppp@ <4dddd@k 0t/ <4BdBd@l 0t@0___PPT10 pp___PPT9^VnL+%㨹O3!`PNG  IHDR asRGBcPLTE!!!BBBkccsssRJJ911111)))便{{{RRRkkkZZZ֭skkB99cZZ999)!!|7 cmPPJCmp0712,JQtRNS0J`IDATnAaUh: te)Kܿ gAcN2JmݛeGMU9^yW?{gMܤ`j{5nLIENDB`t\?  %'Proof Obligation Generator for Jive/JML'  Ghislain Fourny March 11th, 2005$!>    Proof Obligation Generator  Introduction The new version of Jive: why JML Environment of the PO Generator Data Flow Interfaces How it works: an animated example Structure of a JML document The Proof Obligation Accumulator The example Complements Sugars Variable declarations Nested Specifications lZAnZZ"lZInZ lZ3nZ A"  I   3  [g 1.1. Why JML?  %"A comment in natural language &$@And what a computer understands& !!(  '#First-order logic (%~What you actually want a non-mathematician programmer to write& @@(? +'JML as excellent compromise *(A comment in JML gi1.2. External architecture POG Environment: Data Flow )&$POG Environment: External Interfaces%%($ \h2.1. An animated example  Iterating on types .+Iterating on types -*Iterating on methods /,Iterating on methods 1.Iterating on methods 2/Iterating on specifications 30Iterating on specifications 41Specification: A closer look 54Specification: A closer look =;The method reference hj%2.2. The Proof Obligation Accumulator&&(% <: The Proof Obligation Accumulator!!(  >< The Proof Obligation Accumulator!!(  kmSpecification: A closer look 75Specification: A closer look ?=Specification: A closer look @>Specification: A closer look A?Specification: A closer look B@No assignable locations DHSpecification: A closer look :7Specification: A closer look CASpecification: A closer look EBOld expressions FDOld expressions GGOld expressions HEOld expressions IFOld expressions JI We are done!  ]f2.3. Signal clauses QPSignals UUSignals VVSignals WWSignals KJ3.1. Some sugars cd Some sugars  LK Some sugars  ML Some sugars  NM Some sugars  ON Some sugars  PO Some sugars  ik3.2. Variable declaration RQOld variable declaration XXForall variable declaration$  jl3.2. Nested Specification TSNested Specification tNested Specification YYNested Specification d\Nested Specification e]Nested Specification f_Nested Specification ZZNested Specification u Conclusion  vThank you for your attention! oAssignable locations pAssignable locations qAssignable locations rAssignable locations sAssignable locations 98&To add or not to add class invariants?''(& /nopqrstuvw x y z { |}~ !"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLOP  0` z` ff[[ffRR|` py``Ӣ` ΂´vy` hk][^ROQGTП` N]1FS+BO)33` vs3db3` f` r3>?" dd@,?ldd@ n2 ld@n2`ld n?" dd@   @@``PR    @ ` `6p>> ښҚPTR(  T$T 8q T "8q T # lA] ?y @? "  <  T # l P?y @? "gm <  T # l ؕ?y @? " <  T # lcCD?y @? "  <  T # lp%?y @? "u { <  T # lmX?y @? "  <   T # l?y @? "  <   T 3 rD?yd @? "GBM <   T 3 r&Ԫ?yd @? "[  <   T 3 r?yd @? "*. <   T 3 ry?yd @? "9 ?  <  T 3 r0,?vyd @? " A "G  <  T 3 r?Myd @? "'p +v  <  T 3 r(n[l?yd @? "y q  <  T 3 r&a?yd @? "  <  T 3 r é?yd @? "OD <  T # lݤƩ?yd @? "n8 >  <  T 3 r0ʩ?yd @? ":D hJ  <  T 3 r lͩ?yd @? "[(O . <  T 3 rl Щ?yd @? "R X <  T # lY<ԩ?|yd @? "(   <  T # lEfxש?d @? "Q W <  T 3 r ۩?yd @? "P <  T # lwtީ?yd @? "v  <  T # l;?yd @? "P.4 <  T # lA<D?yd @? " <  T # l^?yd @? "ag <  T 3 re]?yd @? " <  T 3 rwb|?yd @? "r <   T 3 rZ?yd @? "c <  !T 3 rRL?yd @? "4 :  <  "T 3 r(T?yd @? "Rg *m  < 2 #T  `?yd @? "  2 $T  `?yd @? " a 2 %T  `?yd @? "Dc2 &T  `?yd @? "e  2 'T  `?yd @? " oc 2 (T  `?yd @? ") 2 2 )T  `?yd @? " p 2 *T  `?yd @? "o`  2 +T  `?yd @? "R 0 2 ,T  `?yd @? "a  2 -T  `?yd @? "v S 2 .T  `?yd @? "jT 2 /T  `?yd @? "  B I 2 0T  `?yd @? " j} 2 1T  `?yd @? " =2 2T  `?yd @? " hH2 3T  `?yd @? " x 02 4T  `?yd @? " S 12 5T  `?yd @? " pX 2 6T  `?yd @? "!  2 7T  `?yd @? "G)2 8T  `?yd @? "t2 9T  `?yd @? " -O 2 :T  `?yd @? "<2 ;T  `?yd @? "v H2 T  `?yd @? "oq2 ?T  `?yd @? "  82 @T  `?yd @? "\92 AT Z?yd @? "Dv2 BT  `?yd @? "|2 CT Z?yd @? "GB2 DT Z?yd @? "qm2 ET  `?yd @? " ;P 2 FT  `?yd @? ".2 GT  `?yd @? "  2 HT  `?yd @? " | '2 IT Z?yd @? ",2 JT Z?yd @? "?Nq2 KT  `?yd @? "i2 LT  `?yd @? "E;n2 MT Z?yd @? "2 NT Z?yd @? "V2 OT  `?yd @? "'2 PT  `?yd @? ") A s2 QT  `?yd @? "|  2 RT Z?yd @? "&2 ST Z?yd @? "=jo2 TT Z?yd @? "_2 UT Z?yd @? "2 VT Z?yd @? "G ; m2 WT Z?yd @? "  2 XT  `?yd @? " B 2 YT  `?yd @? "} ? q2 ZT  `?yd @? "C2 [T  `?yd @? "2 \T  `?yd @? "=2 ]T  `?yd @? "Hvz2 ^T  `?yd @? "E2 _T  `?yd @? "2 `T  `?yd @? " ] q 2 aT  `?yd @? ", 3 2 bT  `?yd @? "[ l 2 cT  `?yd @? " F 2 dT  `?yd @? "   2 eT  `?yd @? " >G 2 fT  `?yd @? "&2 gT  `?yd @? "n/2 hT  `?yd @? "Pj2 iT  `?yd @? "sB2 jT  `?yd @? "2 kT  `?yd @? "5Cu2 lT  `?yd @? "C2 mT  `?yd @? "B2 nT  `?yd @? "k2 oT Z?yd @? " F 2 pT  `?yd @? " V 2 qT Z?yd @? "P  >2 rT Z?yd @? " < 2 sT Z?yd @? " X 2 tT Z?yd @? "m 2 uT Z?yd @? "/72 vT Z?yd @? "# 2 wT Z?yd @? "U2 xT Z?yd @? "c72 yT Z?yd @? "1N2 zT Z?yd @? " 2 {T  `?yd @? "U$2 |T  `?yd @? "72 }T  `?yd @? "Ly2 ~T Z?yd @? " L y2 T Z?yd @? "$  2 T Z?yd @? "v U 2 T Z?yd @? "+  B2 T Z?yd @? "=2 T Z?yd @? "@)2 T Z?yd @? ";Fs2 T Z?yd @? "2 T Z?yd @? "{$Q2 T Z?yd @? "nG2 T Z?yd @? "`'T2 T  `?yd @? "#12 T Z?yd @? " 2 T Z?yd @? " c 2 T Z?yd @? "f X 2 T Z?yd @? "\  H2 T Z?yd @? " @ 2 T Z?yd @? "`  ;2 T Z?yd @? " 4 2 T Z?yd @? "M y2 T Z?yd @? "\2 T Z?yd @? "SLy2 T Z?yd @? "2 T Z?yd @? "J:w2 T Z?yd @? "/ 62 T Z?yd @? "c?l2 T Z?yd @? "i2 T Z?yd @? "~2 T Z?yd @? ""X2 T Z?yd @? ":2 T Z?yd @? "ma2 T Z?yd @? "k2 T Z?yd @? "2 T Z?yd @? " 2 T Z?yd @? "L"x2 T Z?yd @? "w L2 T  `?yd @? "Z2 T  `?yd @? "=2 T  `?yd @? "02 T  `?yd @? "D2 T  `?yd @? " u 2 T  `?yd @? ")  2 T Z?yd @? "2 T  `?yd @? " x 2 T Z?yd @? "#:2 T Z?yd @? ">2 T  `?yd @? "V2 T  `?yd @? "?2 T  `?yd @? "e2 T  `?yd @? "r8Z2 T  `?yd @? "~e2 T  `?yd @? " 2 T  `?yd @? "y2 T  `?yd @? "^2 T  `?yd @? "42 T  `?yd @? "$2 T  `?yd @? " W` 2 T  `?yd @? " 1 N 2 T  `?yd @? " @ { 2 T  `?yd @? "L 1 2 T  `?yd @? "a  2 T  `?yd @? "  2 T  `?yd @? " mR 2 T  `?yd @? "h/2 T  `?yd @? "r@2 T  `?yd @? "2 T  `?yd @? "L2 T  `?yd @? ")2 T  `?yd @? "N2 T  `?yd @? "$2 T  `?yd @? #"   { Q2 T  `?yd @? #"  Cm2 T  `?dyd @? #"  yn2 T  `?dyd @? #"  O:2 T  `?yd @? #"  D = 2 T  `?yd @? #"  E N 2 T  `?dyd @? #"  Z [ 2 T  `?yd @? #"  9 e 2 T  `?yd @? #"  , U 2 T  `?dyd @? #"  y?  2 T  `?yd @? #"  q @ 2 T  `?yd @? #"  f  2 T  `?yd @? #"  DM2 T  `?yd @? #"  ) S 2 T  `?yd @? #"  L2 T  `?yd @? #"  M2 T  `?yd @? #"  9P2 T  `?yd @? #"  x  2 T  `?yd @? "1 U 2 T  `?yd @? "  2 T Z?yd @? "a2 T  `?dyd @? #"   T 64 #" `] `}  T*   T 6$4 #" `] `}  R*   T 6 = #" `]}   n(Proof Obligations Generator for Jive/JML))  )$ T 0@ " `  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S T 6?yd @? "[  :   X 3 rB?yd @? "*. :   X 3 ryPF?yd @? "9 ?  :  X 3 r0I?vyd @? " A "G  :  X 3 rM?Myd @? "'p +v  :  X 3 r(n[O?yd @? "y q  :  X 3 r&a  :  X 3 r0\]?yd @? ":D hJ  :  X 3 r `?yd @? "[(O . :  X 3 rl d?yd @? "R X :  X # lY|g?|yd @? "(   :  X # lEfxj?d @? "Q W :  X 3 rX  `?yd @? "oq2 ?X  `?yd @? "  82 @X  `?yd @? "\92 AX Z?yd @? "Dv2 BX  `?yd @? "|2 CX Z?yd @? "GB2 DX Z?yd @? "qm2 EX  `?yd @? " ;P 2 FX  `?yd @? ".2 GX  `?yd @? "  2 HX  `?yd @? " | '2 IX Z?yd @? ",2 JX Z?yd @? "?Nq2 KX  `?yd @? "i2 LX  `?yd @? "E;n2 MX Z?yd @? "2 NX Z?yd @? "V2 OX  `?yd @? "'2 PX  `?yd @? ") A s2 QX  `?yd @? "|  2 RX Z?yd @? "&2 SX Z?yd @? "=jo2 TX Z?yd @? "_2 UX Z?yd @? "2 VX Z?yd @? "G ; m2 WX Z?yd @? "  2 XX  `?yd @? " B 2 YX  `?yd @? "} ? q2 ZX  `?yd @? "C2 [X  `?yd @? "2 \X  `?yd @? "=2 ]X  `?yd @? "Hvz2 ^X  `?yd @? "E2 _X  `?yd @? "2 `X  `?yd @? " ] q 2 aX  `?yd @? ", 3 2 bX  `?yd @? "[ l 2 cX  `?yd @? " F 2 dX  `?yd @? "   2 eX  `?yd @? " >G 2 fX  `?yd @? "&2 gX  `?yd @? "n/2 hX  `?yd @? "Pj2 iX  `?yd @? "sB2 jX  `?yd @? "2 kX  `?yd @? "5Cu2 lX  `?yd @? "C2 mX  `?yd @? "B2 nX  `?yd @? "k2 oX Z?yd @? " F 2 pX  `?yd @? " V 2 qX Z?yd @? "P  >2 rX Z?yd @? " < 2 sX Z?yd @? " X 2 tX Z?yd @? "m 2 uX Z?yd @? "/72 vX Z?yd @? "# 2 wX Z?yd @? "U2 xX Z?yd @? "c72 yX Z?yd @? "1N2 zX Z?yd @? " 2 {X  `?yd @? "U$2 |X  `?yd @? "72 }X  `?yd @? "Ly2 ~X Z?yd @? " L y2 X Z?yd @? "$  2 X Z?yd @? "v U 2 X Z?yd @? "+  B2 X Z?yd @? "=2 X Z?yd @? "@)2 X Z?yd @? ";Fs2 X Z?yd @? "2 X Z?yd @? "{$Q2 X Z?yd @? "nG2 X Z?yd @? "`'T2 X  `?yd @? "#12 X Z?yd @? " 2 X Z?yd @? " c 2 X Z?yd @? "f X 2 X Z?yd @? "\  H2 X Z?yd @? " @ 2 X Z?yd @? "`  ;2 X Z?yd @? " 4 2 X Z?yd @? "M y2 X Z?yd @? "\2 X Z?yd @? "SLy2 X Z?yd @? "2 X Z?yd @? "J:w2 X Z?yd @? "/ 62 X Z?yd @? "c?l2 X Z?yd @? "i2 X Z?yd @? "~2 X Z?yd @? ""X2 X Z?yd @? ":2 X Z?yd @? "ma2 X Z?yd @? "k2 X Z?yd @? "2 X Z?yd @? " 2 X Z?yd @? "L"x2 X Z?yd @? "w L2 X  `?yd @? "Z2 X  `?yd @? "=2 X  `?yd @? "02 X  `?yd @? "D2 X  `?yd @? " u 2 X  `?yd @? ")  2 X Z?yd @? "2 X  `?yd @? " x 2 X Z?yd @? "#:2 X Z?yd @? ">2 X  `?yd @? "V2 X  `?yd @? "?2 X  `?yd @? "e2 X  `?yd @? "r8Z2 X  `?yd @? "~e2 X  `?yd @? " 2 X  `?yd @? "y2 X  `?yd @? "^2 X  `?yd @? "42 X  `?yd @? "$2 X  `?yd @? " W` 2 X  `?yd @? " 1 N 2 X  `?yd @? " @ { 2 X  `?yd @? "L 1 2 X  `?yd @? "a  2 X  `?yd @? "  2 X  `?yd @? " mR 2 X  `?yd @? "h/2 X  `?yd @? "r@2 X  `?yd @? "2 X  `?yd @? "L2 X  `?yd @? ")2 X  `?yd @? "N2 X  `?yd @? "$2 X  `?yd @? #"   { Q2 X  `?yd @? #"  Cm2 X  `?dyd @? #"  yn2 X  `?dyd @? #"  O:2 X  `?yd @? #"  D = 2 X  `?yd @? #"  E N 2 X  `?dyd @? #"  Z [ 2 X  `?yd @? #"  9 e 2 X  `?yd @? #"  , U 2 X  `?dyd @? #"  y?  2 X  `?yd @? #"  q @ 2 X  `?yd @? #"  f  2 X  `?yd @? #"  DM2 X  `?yd @? #"  ) S 2 X  `?yd @? #"  L2 X  `?yd @? #"  M2 X  `?yd @? #"  9P2 X  `?yd @? #"  x  2 X  `?yd @? "1 U 2 X  `?yd @? "  2 X Z?yd @? "a2 X  `?dyd @? #"   X <@ "  T Click to edit Master title style! ! X 0 " `    W#Click to edit Master subtitle style$ $ X 6 #" `] `}  R*   X 6  #" ``   >   X 6h #" `] `}  T*  ` X H|yd޽h @ ? vs3db3___PPT10i. 0)+D=' = @B +Q 0 zr (    0ߍ P    P*    0     R*  d  c $ ?    0  0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  6t _P   P*    6$ʍ _   R*  H  0޽h ? 3380___PPT10.&&0R 0L0  0(  x  c $X  x  c $0X `    H  0޽h ? 33___PPT10i.b@ Z+D=' = @B + Q 0L0 `:(  `r ` S x.T `}  .  ` S T ` . "P@08XH ` 0޽h ? 33___PPT10i.b@ Z+D=' = @B +  Q 0   (  x  c $L.T2T   . H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +F Q 0L0 E=p -\(  \x \ c $.T `}  .  )\ B?"0@NNN?Nq; s/* o should not be null @returns true of o already was in the set. Ensures that the final set is the former one with o as member and that none of the members is modified. */ boolean add(Object o)BC(k((J      H \ 0޽h ? 33___PPT10i.b@ Z+D=' = @B + Q 0L0  l%(  lx l c $cT `}   m l Bԏ?"0@NNN?Nq;  boolean add(Obje ct o)o should not set. Ensures that the final set is theFormer one wit o as member andth at none of the Me mbers is d\-h)(_(      2        H l 0޽h ? 33___PPT10i.b@ Z+D=' = @B +E Q 0L0 D< h(  hx h c $!.T `}  .  h B".?"0@NNN?Nqi r boolean add(Object o) pre o`"null post result=(o aSet(this,$^)) aSet(this,$) = {0} aSet(this,$^) " Object X: inRepSet(X,this,$^) unchanged(X,$,$^) J(&((((/(&V(                   #      H h 0޽h ? 33___PPT10i.b@ Z+D=' = @B + Q  0L0  p%(  px p c $X.Tq}  . m p B.?"0@NNN?Nq;  boolean add(Obje ct o)o should not set. Ensures that the final set is theFormer one wit o as member andth at none of the Me mbers is d\-h)(_(      2        H p 0޽h ? 33___PPT10i.b@ Z+D=' = @B +~  Q 0L0 }u  | (  |x | c $в.Tq}  . 2 | T3sv3sd @?"6@ NNN?Nq` 2 | T3sud @?"6@ NNN?N/Y | 0.?"0@NNN?N2M n  VJava 2  | 00.?"0@NNN?Nc z J  UJML 2  | 0.?"0@NNN?Nl cFirst-order logic 2   | 0,.?"0@NNN?N   ZAssembly 2    | 0`.?"0@NNN?N2CV YEnglish 2   | 0.?"0@NNN?N   XGerman 2 H | 0޽h ? 33___PPT10i.b@ Z+D=' = @B +  Q 0L0  E(  x  c $.T `}  . $  B.?"0@NNN?N-< z//@invariant modelSet!=null; /*@public normal_behavior @requires o!=null; @assignable o,modelSet; @ensures \result == \old(modelSet.contains(o)); @ensures modelSet == \old(modelSet.add(o)); @*/ public boolean add(Object o);p/<@     $   #            a  <.GHf?"0@NNN?N,$D 0 'All invariants of all classes in INV($)(('' H  0޽h ? 33___PPT10.b@ Z+ksDO' = @B D ' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+8+0+0 +  Q 0  @(  x  c $.T2T   . H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q  0 mP(  l m H.Ԕ?"0@NNN?N) + > r Il S .T9t  . 2 m H.Ԕ?"0@NNN?N 'T >  m HH.Ԕ?"0@NNN?NT gJML-Annotated Program  m H2Ԕ?"0@NNN?N fAbstract Syntax Tree 2 m H2Ԕ?"0@NNN?Nj jJML Parser (and Checker) 2 m Ht 2Ԕ?"0@NNN?NC~ G  lProof Obligation Generator   m 0Ԕ?"0@NNN?NV(^W  m 0Ԕ?"0@NNN?NVW  m@ 0Ԕ?"0@NNN?N  m H2Ԕ?"0@NNN?Nq  aExpression Tree % m H2Ԕ?"0@NNN?N {  uKatja Term or Formula$   m@ 0Ԕ?"0@NNN?N  m@ 0Ԕ?"0@NNN?N 47a  m 0Ԕ?"0@NNN?N DGa  m 0Ԕ?"0@NNN?N r  m H|2Ԕ?"0@NNN?NIS< nProof Obligation Accumulator  m@ 0Ԕ?"0@NNN?NS NJ ' m H2Ԕ?"0@NNN?N Y wOld expressions Hashmap$   m 0Ԕ?"0@NNN?N  w m H|$2Ԕ?"0@NNN?NV tZw kLogical Variable Registry  m 0Ԕ?"0@NNN?N gJ   m H8)2Ԕ?"0@NNN?NV Fw YTriples 2 m H$2Ԕ?"0@NNN?Ns d  hExpression Transformer H l 0޽h ?@mm mmm mmm mm mm mmmmmmmmm mmm$mmm%mmm vs3db3___PPT10i.cCQ+D=' = @B + Q  0  'tm(  tx t c $n.T9t  . (2 t  52A(Ԕ?Large checker board"0@NNN?N,  > 2 t H(82Ԕ?"0@NNN?Na  lProof Obligation Generator #R t H@=2Ԕ?"0@NNN?NC  sKatja Term, Formula$  !R t HA2Ԕ?"0@NNN?Nb  qMJ and JML Abstract Syntax Tree   '2 t HPF2Ԕ?"0@NNN?N& F  wOld Expressions Hashmap$  R t HL2Ԕ?"0@NNN?N ,i >  t s *Ԕ?"0@NNN?N  t@ s *Ԕ?"0@NNN?Nj j  t s *Ԕ?"0@NNN?Nj m 6   t s *Ԕ?"0@NNN?NC dM !t s *Ԕ?"0@NNN?N W  "t@ s *Ԕ?"0@NNN?N 4  #t s *Ԕ?"0@NNN?N C  R $t HLP2Ԕ?"0@NNN?N B nProof Obligation Accumulator 2 t HU2Ԕ?"0@NNN?N `  kLogical Variable Registry  R t HZ2Ԕ?"0@NNN?N  YTriples T2 %t ~<_2*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer B &t 6DԔ?"0@NNN?NB 't 6DԔ?"0@NNN?N  H t 0޽h ? ttt tttttttt ttt!ttt"ttt#t vs3db3___PPT10i.cCQ+D=' = @B +  Q  0  0(  x  c $g2T2T   2 H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +&D Q  0L0    ' (    6?"0@NNN?N Z  6?"0@NNN?N 0 ,$D  0x  c $l2T `}  2  " 6?"0@NNN?N 0 ,$D   0 # 6?"0@NNN?N 0 ,$D   0 % 6?"0@NNN?N 0 ,$D  0 & 6?"0@NNN?N 0 ,$D  0  6?"0@NNN?NM 2,$D 0   6?"0@NNN?NM 2,$@ 0 ! 6?"0@NNN?NM 2,$@ 0 $ 6?"0@NNN?NM 2,$@ 0 ' 6?"0@NNN?NM 2,$@ 0H  0޽h ? vs3db399___PPT109.cCQ+$Dh9' = @B D#9' = @BA?%,( < +O%,( < +D'' =%(D' =%(Do' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-{6Bslide(fromTop)*<3<*D' =%(Do' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-{6Bslide(fromTop)*<3<* D1' =4@BB*BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 3.7037E-7 L -3.61111E-6 0.43056 *3>*B ppt_xB ppt_y=@0BBAApBBBq\><*D+0' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D' =%(D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*D;' =%(Do' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*!%(D' =-{6Bslide(fromTop)*<3<*!D!' =4@BB*BB%()?)?Du' =.=7 BBBBBOM -2.5E-6 3.7037E-7 L -2.5E-6 0.43056 *3>*B ppt_xB ppt_y=@0BBAApBBBq\><* DC' =4@BB BB%(D' =-6B%slide(fromBottom)*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*"%(D' =-}6B!slide(fromLeft)*<3<*"D' =%( D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*"D' =%( DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*#%(D' =-}6B!slide(fromLeft)*<3<*#D' =%( D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*#DG' =%(Do' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*$%(D' =-{6Bslide(fromTop)*<3<*$D-' =4@BB*BB%()?)?D' =.I7 BBBBB[M 8.33333E-7 3.7037E-7 L 8.33333E-7 0.43056 *3>*B ppt_xB ppt_y=@0BBAApBBBq\><*!DC' =4@BB BB%(D' =-6B%slide(fromBottom)*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%%(D' =-}6B!slide(fromLeft)*<3<*%D' =%(|D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*%D' =%(pDA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*&%(D' =-}6B!slide(fromLeft)*<3<*&D' =%(dD1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*&DG' =%(XDo' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*'%(D' =-{6Bslide(fromTop)*<3<*'D-' =4@BB*BB%()?)?D' =.I7 BBBBB[M 8.33333E-7 3.7037E-7 L 8.33333E-7 0.43056 *3>*B ppt_xB ppt_y=@0BBAApBBBq\><*$DC' =4@BB BB%(D' =-6B%slide(fromBottom)*<3<*!D' =1:Bhidden*o3>+B#style.visibility<*!%(+a  Q 0L0 RJ0 (    6?"0@NNN?NM 2x  c $~2T `}  2 8  Z  Z  6?"0@NNN?N Z  6?"0@NNN?N c HH  0޽h ? vs3db3___PPT10w.cCQ+DK' = @B D' = @BA?%,( < +O%,( < +D=' =%(%(D' =%(D0' =4@BBBB%(D' =0l9 fCfCBB*<3<*D5' =4@BB@BB%()?)?D' =.Q7 BBBBBcM -3.61111E-6 3.33333E-6 L -3.61111E-6 -0.17871 *3>*B ppt_xB ppt_y=@0BBAApBBB<*+3  Q 0L0 2 *   (  x  c $2T `}  2   6?"0@NNN?N  B2?"0@NNN?NzZ, @& \   B42?"0@NNN?NS} `__________________________ __________________________ __________________________ ______________ aa` \   B2?"0@NNN?NPS `__________________________ __________________________ __________________________ ______________ aa` \   B 2?"0@NNN?NS  `__________________________ __________________________ __________________________ ______________ aa` \  Bx2?"0@NNN?N Sf  `__________________________ __________________________ __________________________ ______________ aa`   02?"0@NNN?NzZ t ] Class C { 2     0H2?"0@NNN?NZ  U} 2 H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +- Q 0L0 RJ@  (  x  c $|2T `}  2   6?"0@NNN?N  B@2?"0@NNN?NzZ, @& \  B2?"0@NNN?NS} `__________________________ __________________________ __________________________ ______________ aa` \  B2?"0@NNN?NPS `__________________________ __________________________ __________________________ ______________ aa`   6?"0@NNN?N`P s ,$D  0  <fff?"0@NNN?N},$D 0\   B@2?"0@NNN?NS  `__________________________ __________________________ __________________________ ______________ aa` \   Bh2?"0@NNN?N Sf  `__________________________ __________________________ __________________________ ______________ aa`    6?"0@NNN?N`" s ,$D  0   6?"0@NNN?N`P s ,$D   0   6?"0@NNN?N`" s ,$D  0  02?"0@NNN?NzZ t ] Class C { 2     02?"0@NNN?NZ  U} 2 H  0޽h ? vs3db3SK___PPT10+.cCQ+sD' = @B D' = @BA?%,( < +O%,( < +D' =%(%(D' =%(D?' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-{6Bslide(fromTop)*<3<*D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D' =%(D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*D' =%(D1' =4@BB*BB%()?)?D' =.M7 BBBBB_M 3.33333E-6 -4.16281E-6 L 3.33333E-6 0.14154 *3>*B ppt_xB ppt_y=@0BBAApBBB=<*D' =%( DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-}6B!slide(fromLeft)*<3<* D' =%( D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<* D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-}6B!slide(fromLeft)*<3<* D' =%(D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<* D' =%(D)' =4@BB*BB%()?)?D}' =.E7 BBBBBWM 3.33333E-6 0.14154 L 3.33333E-6 0.27799 *3>*B ppt_xB ppt_y=@0BBAApBBB=<*D' =%(pDA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-}6B!slide(fromLeft)*<3<* D' =%(dD1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<* + Q 0L0 ` L(  x  c $L2T `}  2 F p   p   6?"0@NNN?Np   B2?"0@NNN?NZp  @&   <fff?"0@NNN?Np d  B2?"0@NNN?NS  `__________________________ __________________________ __________________________ ______________ aa`  8  @    6?"0@NNN?N  B2?"0@NNN?NZz, @& d  B2?"0@NNN?NS} `__________________________ __________________________ __________________________ ______________ aa` d  B2?"0@NNN?NPS `__________________________ __________________________ __________________________ ______________ aa` d   Bx2?"0@NNN?NS  `__________________________ __________________________ __________________________ ______________ aa` d   BL2?"0@NNN?N Sf  `__________________________ __________________________ __________________________ ______________ aa`   0h?"0@NNN?NZz t ] Class C { 2     0h?"0@NNN?NZ  U} 2   <fff?"0@NNN?N8 H  0޽h ? vs3db3___PPT10.cCQ+Dp' = @B D+' = @BA?%,( < +O%,( < +Db' =%(%(D' =%(D0' =4@BBBB%(D' =0l9 CCBB*<3<*D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(+9* Q 0L0 p  (  x  c $|hT `}  h   6?"0@NNN?N  B4h?"0@NNN?Nz, @&   Bth?"0@NNN?Nq} /*@ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ----------------------------------------------------------------------------------------------------    6?"0@NNN?N`P s ,$D  0G  Hhfff?"0@NNN?N},$D 0 c (&&    6?"0@NNN?N`" s ,$D  0   6?"0@NNN?N`P s ,$D   0  B#h?"0@NNN?Nq%   @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ----------------------------------------------------------------------------------------------------    B%h?"0@NNN?N q   @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ --------------------------------------------------------------------------------------------------- @*/    B0h?"0@NNN?N) q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           H  0޽h ? vs3db3___PPT10.cCQ+,ɷ:D' 8h= @B Dk' = @BA?%,( < +O%,( < +D' =%(D' =%(DL' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-{6Bslide(fromTop)*<3<*D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D' =%(D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<*D' =%(D>' =A@BB*BB0B%()?)?D' =.M7 BBBBB_M 3.33333E-6 -4.16281E-6 L 3.33333E-6 0.14154 *3>*B ppt_xB ppt_y=@0BBAApBBB=<*D' =%( DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-}6B!slide(fromLeft)*<3<* D' =%( D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<* Dj' =%( D' =A@BB*BB0B%()?)?DY' =.!7 BBBBB3M 0 0.14131 L 0 0.31985 *3>*B ppt_xB ppt_y=@0BBAApBBBҶ=<*D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-}6B!slide(fromLeft)*<3<* D' =%(D1' =4@BB?BB%()?)?D' =.M7 BBBBB_M -3.61111E-6 6.93802E-7 L 0.58282 6.93802E-7 *3>*B ppt_xB ppt_y=@0BBAApBB'>B<* ++0+0 ++0+0 ++0+0 + Q 0L0 RJ (    6?"0@NNN?N,x  c $hBhT `}  h  8     6?"0@NNN?N  BEh?"0@NNN?Nz, @&   BHh?"0@NNN?Nq} /*@ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ----------------------------------------------------------------------------------------------------    HMhfff?"0@NNN?N%   c (&&    B`Vh?"0@NNN?Nq%   @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ----------------------------------------------------------------------------------------------------     BHah?"0@NNN?Nq    @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ --------------------------------------------------------------------------------------------------- @*/     Bch?"0@NNN?Nq)  ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           8 q   q  BLmh?"0@NNN?Nq    @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ ---------------------------------------------------------------------------------------------------- @ --------------------------------------------------------------------------------------------------- @*/    Hrh?"0@NNN?Nq(  ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           z ,  ,,$D  0  6?"0@NNN?N,  B}h?"0@NNN?Nq  d /*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/&8J  o  =   Bh?"0@NNN?Nq(  ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           H  0޽h ? vs3db3___PPT10.cCQ+uD' = @B Di' = @BA?%,( < +O%,( < +D' =%(D' =%(D)' =4@BB BB%(D' =-g6B fade*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(D' =%(Dg' =4@BBBB%()))D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-s6Bwipe(down)*<3<*+ Q 0  y(  x  c $hT `}  h 8 , ,  6?"0@NNN?N,   Hh?"0@NNN?Nq  d /*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/&8J  o  =   Hh?"0@NNN?Nq(  ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q 0  )(    6?"0@NNN?N,x  c $j_T `}  _   BHk_?"0@NNN?Nq  d /*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/&8J  o  =   Bt_?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?NG) p  <{_GH?"0@NNN?N  \Markers: Java compiler considers it a comment JML parser identifies this as a specification6 T- T\ H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +7 Q 0 NF@  (  x  c $hT `}  h 8 ,  ,  6?"0@NNN?N,  Bԩh?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ;   Bȫh?"0@NNN?Nq(  ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           f  <lhGH?"0@NNN?NM   FAn external method computes a method reference, here IntMathOps:isqrt.(GF05   H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +  Q 0  P(  x  c $_T2T   _ H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q 0  /(  x  c $hT `}  h d  C <A$MCj02381640000[1]Gc vA  <PhGHs?"0@NNN?N/ p EGeneration of a brand new Proof Obligation on which we can then work.(F+ F   Bhh?"0@NNN?N 3  fIntMathOps:isqrt   6?"0@NNN?N 3 c   BXh?"0@NNN?N3  Xtrue&    B`h?"0@NNN?N 3  Xtrue& H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q 0 2*P  (  x  c $ċ_T `}  _ d  C <A$MCj02381640000[1]Gc v  <\_GH̋?"0@NNN?N 5  n Hoare Triple(     B _?"0@NNN?N 3  fIntMathOps:isqrt   6?"0@NNN?N 3 c  B_?"0@NNN?N3  Xtrue&   B_?"0@NNN?N 3  Xtrue&    B3ffԔ?"0@NNN?N 3 H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +c Q 0 zr(  x  c $hT `}  h   <?"0@NNN?N{,  Bh?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ;   Bh?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~           H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +, Q 0 C; (    6?"0@NNN?N,x  c $_T `}  _   B_?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?N@P  B,_?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ;   <_GH,7?"0@NNN?N   sThe precondition ( H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +$( Q 0 ` w(    6?"0@NNN?N,  Bh?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ; x  c $xhT `}  h   Bth?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?N@Pz ,   ` ] ) ,$D  002   dlA(Ԕ?Large checker board"0@NNN?N,  > \2   ~l*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer z Gc   [,$D 0l   C <A$MCj02381640000[1]Gc v  Bh?"0@NNN?N 3  fIntMathOps:isqrt   6?"0@NNN?N3  c   Bl?"0@NNN?N3  Xtrue&   Bl?"0@NNN?N 3  @&    C <A$MCj04063900000[1]c W,$D 0=  <lG^H?"0@NNN?Nt ,$D 0 eAND( H  0޽h ? vs3db3___PPT10.cCQ+/D ' l= @B D' = @BA?%,( < +O%,( < +D' =%(%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D' =%(D?' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-{6Bslide(fromTop)*<3<* D: ' =%(D' =%(DC' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-6B#slide(fromRight)*<3<* D?' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BB?BB%()?)?Dq' =.97 BBBBBKM 5E-6 4.93062E-6 L 0.45643 0.02127 *3>*B ppt_xB ppt_y=@0BBAApBBi>BAL.<<* D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D' =%(DY' =4@BB BB%()))D' =-g6B fade*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(DY' =4@BB BB%()))D' =-g6B fade*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<*%(+p+0+0 ++0+0 +[  Q! 0 rjp  (    6?"0@NNN?N,x  c $$T `}     B?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?NP    B?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ; F  <ȹGHD?"0@NNN?N 6  This is a sequence of clauses. We always, in this order: Add the invariants (or not& ) Handle assignable locations Process postconditions 69T-n0}   H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +[ Q  0 rj (    6?"0@NNN?N,x  c $$lT `}  l   B$&l?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?NP`  BL.l?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ; F  <p6lGG HZ?"0@NNN?N   @The frame conditions No location may be modified by this method.(A,@ H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +8 Q" 0  !V;(  x  c $ T `}   , 2 0h?"0@NNN?N 'Z: J"loc.alive(ref(loc),S) $(loc)=S(loc)& 2&& & 3 0?"0@NNN?NzT! OS=$(2& l   ? ' ,$D 0l : C <A$MCj02381640000[1] }  ; B?"0@NNN?No $ :  fIntMathOps:isqrt   < 6?"0@NNN?N$   = B?"0@NNN?N: $  Xtrue&  > B?"0@NNN?N $ o  bcurrent *    l  w  I ' ,$D 0r 5 S BA$MCj02381640000[1] }  6 H"?"0@NNN?No :  fIntMathOps:isqrt   7 HD'?"0@NNN?N  w  [S Store  8 H+?"0@NNN?N:   Xtrue&  9 HL1?"0@NNN?N o  acurrent*    B E s *D?"0@NNN?N  l  4  H ' ,$@ 0  G BP6?"0@NNN?N} 2  [S Store l @ C <A$MCj02381640000[1]#  A B8;?"0@NNN?N(  fIntMathOps:isqrt    C B??"0@NNN?N( 4  Xtrue& 6 D B@E?"0@NNN?N(~ current S=$:     B F s *D?"0@NNN?N==  N C <A$MCj04063900000[1]< 6 ,$D 0 O C <A$MCj04063900000[1]H c ,$D 0#z  4  P  ' ,$D  0  Q BDK?"0@NNN?N} 2  [S Store l R C <A$MCj02381640000[1]#  S BP?"0@NNN?N(  fIntMathOps:isqrt   T BTU?"0@NNN?N( 4  fNothing assignable  6 U B$Y?"0@NNN?N(~ current S=$:     B V s *D?"0@NNN?N== H  0޽h ? vs3db3tl___PPT10L.cCQ+2D ' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(DC' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*?%(D' =-6B#slide(fromRight)*<3<*?D' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*I%(D' =-g6B fade*<3<*ID ' =%(D' =%(D?' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*N%(D' =-{6Bslide(fromTop)*<3<*ND' =%(D+' =4@BB?BB%()?)?D' =.G7 BBBBBYM 2.77778E-7 -1.20259E-7 L 0.30677 0.34667 *3>*B ppt_xB ppt_y=@0BBAApBBP>Bc`1><*ND' =%( D[' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*H%(D' =-g6B fade*<3<*HDY' =4@BB BB%()))D' =-g6B fade*<3<*ND' =1:Bhidden*o3>+B#style.visibility<*N%(D ' =%(D' =%(D?' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*O%(D' =-{6Bslide(fromTop)*<3<*OD' =%(D+' =4@BB?BB%()?)?D' =.G7 BBBBBYM -3.61111E-6 2.6827E-7 L 0.30695 -0.12234 *3>*B ppt_xB ppt_y=@0BBAApBB'>B{<*OD' =%( DY' =4@BB BB%()))D' =-g6B fade*<3<*OD' =1:Bhidden*o3>+B#style.visibility<*O%(D[' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*P%(D' =-g6B fade*<3<*P+% Q# 0 ME  (      6?"0@NNN?N,   B(@l?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ; x   c $DlT `}  l    BHl?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~              <|ff?"0@NNN?N/    <|ff?"0@NNN?N/?@   <PlG%@H?"0@NNN?N s  DThis is a normal specification The method cannot throw an exception.(E& E z  4     ' ,$D 0    B4Vl?"0@NNN?N} 2  [S Store l   C <A$MCj02381640000[1]#    Bd[l?"0@NNN?N(  fIntMathOps:isqrt      B_l?"0@NNN?N( 4  [current     Bcl?"0@NNN?N(~ Scurrent   B   s *D?"0@NNN?N== z  4     }' ,$D 0    Bhl?"0@NNN?N} 2  [S Store l   C <A$MCj02381640000[1]#    Btml?"0@NNN?N(  fIntMathOps:isqrt  B   B`ql?"0@NNN?N( 4  currentc!=Exc*  &       B0wl?"0@NNN?N(~ Scurrent   B   s *D?"0@NNN?N== "   0tl?"0@NNN?NV  ,$D 0 V c!=Exc 2& H   0޽h ?  vs3db3___PPT10.cCQ+oD' tl= @B D' = @BA?%,( < +O%,( < +DC' =%(%(D' =%(Ds' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-6B#slide(fromRight)*<3<* D' =%(D' =%(D8' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-g6B fade*<3<* D' =%(D' =%(D:' =A@BB?BB0B%()?)?D' =.I7 BBBBB[M -1.94444E-6 3.14524E-7 L 0.50018 -0.03839 *3>*B ppt_xB ppt_y=@0BBAApBB>B;?<* D' =%(D6' =A@BB BB0B%(D' =-g6B fade*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-g6B fade*<3<* ++0+ 0 ++0+ 0 ++0+ 0 +5 Q$ 0 LD  (    6?"0@NNN?N,x  c $cT `}     Be?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?N`    Bl?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ;    <tGH֔?"0@NNN?N0 Z |The normal postcondition&     H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +? Q% 0  ")(    6?"0@NNN?N,  <3ff?"0@NNN?N,,$@ 0x  c $lT `}  l   B= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ; z  4    * ,$D 0    Bl?"0@NNN?N} 2  [S Store l   C <A$MCj02381640000[1]#    Bl?"0@NNN?N(  fIntMathOps:isqrt      B8l?"0@NNN?N( 4  [current     Bl?"0@NNN?N(~ Scurrent   B  s *D?"0@NNN?N== $z  4    ' ,$D  0   B l?"0@NNN?N} 2  [S Store l  C <A$MCj02381640000[1]#   Bxl?"0@NNN?N(  fIntMathOps:isqrt  J  B,l?"0@NNN?N( 4  $current postcond*  &      Bl?"0@NNN?N(~ Scurrent   B  s *D?"0@NNN?N== z ,    ,$D  002  0lA(Ԕ?Large checker board"0@NNN?N,  > \2  ~4l*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer   C <A$MCj04063900000[1]}  ,$D 0  C <A$MCj02909300000[1] U ,$D  0, ! 08l?"0@NNN?N G ,$D  0 `c=Normal (2 &  H  0޽h ? vs3db3$&&___PPT10%.cCQ+uD`%' l= @B D%' = @BA?%,( < +O%,( < +D' =%(%(D' =%(D?' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-{6Bslide(fromTop)*<3<*Ds' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-6B#slide(fromRight)*<3<*Ds ' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D' =%(D?' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-{6Bslide(fromTop)*<3<*D' =%(D-' =4@BB?BB%()?)?D' =.I7 BBBBB[M -4.44444E-6 -2.59019E-7 L 0.46424 0.21022 *3>*B ppt_xB ppt_y=@0BBAApBB[m>B=<*DN' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*!%(D' =-}6B!slide(fromLeft)*<3<*!DE' =%(D:' =%(DY' =4@BB BB%()))D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(DN' =A@BB BB0B%(D' =-6B#slide(fromRight)*<3<*!D' =1:Bhidden*o3>+B#style.visibility<*!%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*D' =%( D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D' =%( D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*D' =%( D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*+p+0+!0 ++0+!0 +) Q& 0  2l(  x  c $,|T `}   F  4    '    B}?"0@NNN?N} 2  [S Store l  C <A$MCj02381640000[1]#   B?"0@NNN?N(  fIntMathOps:isqrt  J  B?"0@NNN?N( 4  $current postcond*  &      B?"0@NNN?N(~ Scurrent   B  s *D?"0@NNN?N== F ,    02  A(Ԕ?Large checker board"0@NNN?N,  > \2  ~p*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer d  C <A$MCj02909300000[1] U  l :  /: ,$D  0 " <p3?"0@NNN?N# F  P  @` ! < 3?"0@NNN?N # F  jJInt  @`   <x3?"0@NNN?N: F  g!x0  @`  <3?"0@NNN?N#   hTree  @`  <3?"0@NNN?N#  hType  @`  <Ρ3?"0@NNN?N:  hName  @`B # <o ?"0@NNN?N:B $ 61 ?"0@NNN?N:  B % <o ?"0@NNN?N:F F B & <o ?"0@NNN?N::F B ' 61 ?"0@NNN?NF B ( 61 ?"0@NNN?N# # F B ) <o ?"0@NNN?NF l , C <A$MCj04063900000[1] { # 0 0tС?"0@NNN?N  p ,$D 0 Wy(2& z 1 <աG+H_?"0@NNN?Nz~,$D 0 2Expression What we want to compute in the prestate(3 ($*   2 <ۡGH'?"0@NNN?N   zA \old expression has been found! Either \old(& ) Or parameter6"-"= H  0޽h ?/ 12 vs3db3  ___PPT10 .cCQ+u'˧D ' = @B Dt ' = @BA?%,( < +O%,( < +D' =%(D' =%(Df' =A@BB BB0B%()))D' =-g6B fade*<3<*2D' =1:Bhidden*o3>+B#style.visibility<*2%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*/%(D' =-}6B!slide(fromLeft)*<3<*/D' =%(D' =%(DL' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-{6Bslide(fromTop)*<3<*0D' =%(D' =%(D8' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*1%(D' =-g6B fade*<3<*1++0+00 ++0+10 ++0+20 + Q' 0  (  x  c $lT `}  l F  4    }'    B4l?"0@NNN?N} 2  [S Store l  C <A$MCj02381640000[1]#   Bl?"0@NNN?N(  fIntMathOps:isqrt  J  Bl?"0@NNN?N( 4  $current postcond*  &      Bl?"0@NNN?N(~ Scurrent   B   s *D?"0@NNN?N== F ,     02   lA(Ԕ?Large checker board"0@NNN?N,  > \2   ~l*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer d   C <A$MCj02909300000[1] U  F :   :   6l3?"0@NNN?N# F  P  @`  6r3?"0@NNN?N # F  jJInt  @`   6 r3?"0@NNN?N: F  g!x0  @`  6Lr3?"0@NNN?N#   hTree  @`  6pr3?"0@NNN?N#  hType  @`  6x!r3?"0@NNN?N:  hName  @`B  6o ?"0@NNN?N:B  01 ?"0@NNN?N:  B  6o ?"0@NNN?N:F F B  6o ?"0@NNN?N::F B  01 ?"0@NNN?NF B  01 ?"0@NNN?N# # F B  6o ?"0@NNN?NF l  C <A$MCj04063900000[1] {   0,r?"0@NNN?N  p  Wy(2& _  <0rG%H?"0@NNN?Nz~ ?Logical Variable How we can recall this value in the poststate.(@/05    H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +; Q( 0 RJ (  x  c $T `}   F  4    }'    BL?"0@NNN?N} 2  [S Store l  C <A$MCj02381640000[1]#   B|?"0@NNN?N(  fIntMathOps:isqrt  J  B?"0@NNN?N( 4  $current postcond*  &      B?"0@NNN?N(~ Scurrent   B   s *D?"0@NNN?N== F ,     02   A(Ԕ?Large checker board"0@NNN?N,  > \2   ~*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer d   C <A$MCj02909300000[1] U  F :   :   6 3?"0@NNN?N# F  P  @`  63?"0@NNN?N # F  jJInt  @`   68%3?"0@NNN?N: F  g!x0  @`  63?"0@NNN?N#   hTree  @`  6h63?"0@NNN?N#  hType  @`  6?3?"0@NNN?N:  hName  @`B  6o ?"0@NNN?N:B  01 ?"0@NNN?N:  B  6o ?"0@NNN?N:F F B  6o ?"0@NNN?N::F B  01 ?"0@NNN?NF B  01 ?"0@NNN?N# # F B  6o ?"0@NNN?NF l  C <A$MCj04063900000[1] {   0TB?"0@NNN?N  p  Wy(2&   < GGVJH?"0@NNN?N~ ~ r!x0 is used here( H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +% Q) 0  #(  s 8 :F  !:F   <Br3?"0@NNN?N# F  P  @`  <pDr3?"0@NNN?N # F  jJInt  @`  <=r3?"0@NNN?N: F  g!x0  @`  <\r3?"0@NNN?N#   hTree  @`  <der3?"0@NNN?N#  hType  @`  <nr3?"0@NNN?N:  hName  @`B  <o ?"0@NNN?N:B  61 ?"0@NNN?N:  B  <o ?"0@NNN?N:F F B  <o ?"0@NNN?N::F B  61 ?"0@NNN?NF B  61 ?"0@NNN?N# # F B  <o ?"0@NNN?NF x  c $,prT `}  r F  4    }'    Bqr?"0@NNN?N} 2  [S Store l  C <A$MCj02381640000[1]#   B wr?"0@NNN?N(  fIntMathOps:isqrt    B$zr?"0@NNN?N( 4  acurrent*      Br?"0@NNN?N(~ Scurrent   B   s *D?"0@NNN?N== # " 04r?"0@NNN?N :t ,$D 0 W=(2& j  S BA$MCj04063900000[1] P    6܎r3?"0@NNN?N :>  g!x0  @`H  0޽h ? vs3db3___PPT10.cCQ+/T`D'' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*!D' =1:Bhidden*o3>+B#style.visibility<*!%(D8' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*"%(D' =-g6B fade*<3<*"+8+0+"0 +w Q* 0  #(  x  c $NT `}   F  4    }'    BtP?"0@NNN?N} 2  [S Store l  C <A$MCj02381640000[1]#   BU?"0@NNN?N(  fIntMathOps:isqrt    BX?"0@NNN?N( 4  acurrent*      B^?"0@NNN?N(~ Scurrent   B  s *D?"0@NNN?N== 8 :    :   0b?"0@NNN?N: t  W=(2& l  C <A$MCj04063900000[1]P    6m3?"0@NNN?N: >  g!x0  @`?l ~ o+  # ' ,$D 0:  Ho?"0@NNN?Nt o)  S Store !x0 Jint 0   r  S BA$MCj02381640000[1]~    Ht?"0@NNN?N   fIntMathOps:isqrt     Htz?"0@NNN?N +  acurrent*      ! H?"0@NNN?Nu   hcurrent !x0=y   B " 0D?"0@NNN?N  H  0޽h ? vs3db3  ___PPT10.cCQ+?D' = @B D' = @BA?%,( < +O%,( < +D' =%(%(D' =%(D-' =4@BB@BB%()?)?D' =.I7 BBBBB[M -4.72222E-6 -2.6642E-6 L 0.36615 -0.03099 *3>*B ppt_xB ppt_y=@0BBAApBB`;>B_}<*D' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*#%(D' =-g6B fade*<3<*#+ Q+ 0   0  (    6?"0@NNN?N,x  c $rT `}  r   Br?"0@NNN?N( q ?public static int isqrt(int y) { return (int) Math.sqrt(y); } @@~             <|ff?"0@NNN?N   BПr?"0@NNN?Nq  O/*@ public normal_behavior @ requires y >= 0; @ assignable \nothing; @ ensures 0 <= \result @ && \result * \result <= y @ && y < ((\result+1) * (\result+1)); @*/J   k  ; j   S BA$MCj02381640000[1]  8 p '  p ' :   HTr?"0@NNN?Np %  S Store !x0 Jint 0      H+B#style.visibility<*%(D' =-g6B fade*<3<*D1' =4@BB@BB%()?)?D' =.M7 BBBBB_M -4.16667E-6 -3.89454E-6 L -0.21388 -0.29486 *3>*B ppt_xB ppt_y=@0BBAApBB۽B<*D0' =4@BBBB%(D' =0l9 HBHBBB*<3<*D#' =%(D' =%(Ds' =4@BB BB%()))D' =-6B%slide(fromBottom)*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(+8+0+0 +  Q, 0  (  x  c $hT2T    H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q- 0    , (  ,x , c $rT `}  r  , 6?"0@NNN?N,B , B@r?"0@NNN?N( q  public void method(Iterator i); $! 0     , B|r?"0@NNN?Nq  $/*@ & @ @ signals (EClass1 e) expr1 @ signals (EClass2 e) expr2 @*/PN "M  , <|ff?"0@NNN?N`p,$D 0z ,  ,  w,$D  002 , rA(Ԕ?Large checker board"0@NNN?N,  > \2 , ~r*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer  , 0|r?"0@NNN?N],$D 0 L t(ExcV)<:EClass1 [ExcV/e]'(2'&@      , C <A$MCj04063900000[1]) *F,$D 0H , 0޽h ? vs3db3w___PPT10W.cCQ++D' r= @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =-g6B fade*<3<*,D' =%(D' =%(D8' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =-g6B fade*<3<*,D' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =-}6B!slide(fromLeft)*<3<*,D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*,%(D' =%(D' =%(D-' =4@BB?BB%()?)?D' =.I7 BBBBB[M -4.16667E-6 2.57169E-6 L 0.39671 -0.47156 *3>*B ppt_xB ppt_y=@0BBAApBBK>Bۍq<*,+8+0+,0 + Q. 0    D (  Dx D c $苣T `}    D 6?"0@NNN?N,B D Bx?"0@NNN?N( q  public void method(Iterator i); $! 0     D B,?"0@NNN?Nq  $/*@ & @ @ signals (EClass1 e) expr1 @ signals (EClass2 e) expr2 @*/PN "M  D <|ff?"0@NNN?NCS F ,  D  w02 D @A(Ԕ?Large checker board"0@NNN?N,  > \2  D ~*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer   D 0x?"0@NNN?N,$D 0 Jt(ExcV)<:EClass2 [ExcV/e]&(2&&@       D C <A$MCj04063900000[1]) *F,$D 0d  D 0(?"0@NNN?N] Jt(ExcV)<:EClass1 [ExcV/e]&(2&&@     d  D C <A$MCj04063900000[1]/ LH D 0޽h ? vs3db3  ___PPT10{ .cCQ+rCD ' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D8' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<* D%(D' =-g6B fade*<3<* DD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* D%(D' =%(D' =%(D-' =4@BB?BB%()?)?D' =.I7 BBBBB[M -4.16667E-6 2.57169E-6 L 0.39671 -0.36679 *3>*B ppt_xB ppt_y=@0BBAApBBK>B;<* D+8+0+ D0 +1 Q/ 0  H(  Hx H c $rT `}  r  H 6?"0@NNN?N,B H Br?"0@NNN?N( q  public void method(Iterator i); $! 0     H Br?"0@NNN?Nq  $/*@ & @ @ signals (EClass1 e) expr1 @ signals (EClass2 e) expr2 @*/PN "M  H <|ff?"0@NNN?NCS F ,  H  w02 H DsA(Ԕ?Large checker board"0@NNN?N,  > \2  H ~s*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer cl  @  H@  ,$D 0 H H s?"0@NNN?N&   [current r H S BA$MCj02381640000[1] @  H H,s?"0@NNN?N h  fIntMathOps:isqrt   H Hs?"0@NNN?Nh   acurrent*      H Hls?"0@NNN?N'   Scurrent   @ H 0(s?"0@NNN?Nv*A ,$D  0 t c=Exc(2&&   8 / H/l  H 0s?"0@NNN?N Jt(ExcV)<:EClass2 [ExcV/e]&(2&&@     l  H C <A$MCj04063900000[1] l  H 0#s?"0@NNN?N] Jt(ExcV)<:EClass1 [ExcV/e]&(2&&@     l  H C <A$MCj04063900000[1] /Lz  @  H @~ o ,$D  0  H B)s?"0@NNN?N&   [current l H C <A$MCj02381640000[1] @  H B,+s?"0@NNN?N h  fIntMathOps:isqrt  l H B2s?"0@NNN?Nh   8currentExceptional postcond*  4     H B8s?"0@NNN?N'   Scurrent   H H 0޽h ? vs3db35-___PPT10 .cCQ+89>wD9' :s= @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D`' =4@BBBB%()))D' =0l9  B BBB*<3<*HD+' =4@BB*BB%()?)?D' =.G7 BBBBBYM -1.11111E-6 2.80296E-6 L 0.07882 0.55643 *3>*B ppt_xB ppt_y=@0BBAApBBl!=B%r><*HD' =%(DN' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*H%(D' =-}6B!slide(fromLeft)*<3<*HD' =%(D' =%(DC' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*H%(D' =-6B#slide(fromRight)*<3<*HD7 ' =%(D' =%(D8' =A@BB?BB0B%()?)?D' =.G7 BBBBBYM -4.72222E-6 8.78816E-7 L 0.2599 -0.12211 *3>*B ppt_xB ppt_y=@0BBAApBBP>B^z<*HD' =4@BB@BB%()?)?Dq' =.97 BBBBBKM 0.07882 0.55643 L 0.33073 0.43062 *3>*B ppt_xB ppt_y=@0BBAApBB>B0Ԁ<*HD"' =%(D6' =A@BB BB0B%(D' =-g6B fade*<3<*HD' =1:Bhidden*o3>+B#style.visibility<*H%(D)' =4@BB BB%(D' =-g6B fade*<3<*HD' =1:Bhidden*o3>+B#style.visibility<*H%(D[' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*H%(D' =-g6B fade*<3<*H++0+H0 ++0+H0 ++0+H0 +q Q0 0  L$(  Lx L c $dT `}    L 6?"0@NNN?N,B L B趣?"0@NNN?N( q  public void method(Iterator i); $! 0     L BĽ?"0@NNN?Nq  $/*@ & @ @ signals (EClass1 e) expr1 @ signals (EClass2 e) expr2 @*/PN "M F ,  L  w02 L PƣA(Ԕ?Large checker board"0@NNN?N,  > \2  L ~0ɣ*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer  L <|ff?"0@NNN?N`S xF  @  L @    L BPţ?"0@NNN?N&   [current l L C <A$MCj02381640000[1] @  L Bpѣ?"0@NNN?N h  fIntMathOps:isqrt  l L B0֣?"0@NNN?Nh   8currentExceptional postcond*  4     L Bۣ?"0@NNN?N'   Scurrent    L C <A$MCj02909300000[1] U ,$D 0H L 0޽h ? vs3db3}___PPT10].cCQ+ !D1' = @B D ' = @BA?%,( < +O%,( < +D# ' =%(%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*L%(D' =-g6B fade*<3<*LD' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*LD' =1:Bhidden*o3>+B#style.visibility<*L%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*L%(D' =-g6B fade*<3<*LD' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*LD' =1:Bhidden*o3>+B#style.visibility<*L%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*L%(D' =-g6B fade*<3<*L+ Q6 0 ( @ (  x  c $CsT2T   s H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +i Q< 0 x (  x  c $T `}     6?"0@NNN?N,v  B0?"0@NNN?N( q .public /*@ non_null @*/ Integer isqrt(int y);0/J       <  B,?"0@NNN?Nq  @/*@ & @ @ @ @ & @*/!!  H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q= 0 P 8(  x  c $xHsT `}  s   6?"0@NNN?N,r  BIs?"0@NNN?N( q .public /*@ non_null @*/ Integer isqrt(int y);,/J       h  B$Rs?"0@NNN?Nq  l/*@ & @ @ ensures \result!=null @ @ & @*/776 H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q> 0 ` )(  x  c $T `}     6?"0@NNN?N,  BD?"0@NNN?N( q -public int isqrt(/*@ non_null @*/ Integer y);0. d       <  B?"0@NNN?Nq  @/*@ & @ @ @ @ & @*/!!  H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q? 0 p  ](   x   c $ZsT `}  s    6?"0@NNN?N,   B\s?"0@NNN?N( q -public int isqrt(/*@ non_null @*/ Integer y);B. d       ^   B0^s?"0@NNN?Nq  b/*@ & @ @ requires y!=null @ @ & @*/221 H   0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +` Q@ 0 wo $(  $x $ c $T `}    $ 6?"0@NNN?N,m $ B?"0@NNN?N( q %public /*@ pure @*/ int isqrt(int y);0& J      < $ B?"0@NNN?Nq  @/*@ & @ @ @ @ & @*/!!  H $ 0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + QA 0   (1(  (x ( c $nsT `}  s  ( 6?"0@NNN?N,i ( Bos?"0@NNN?N( q %public /*@ pure @*/ int isqrt(int y);,& J      4 ( Bqs?"0@NNN?Nq  8/*@ @ requires true; @ assignable \nothing; @*/998 . ( <<}sGHl=?"0@NNN?Nmm  (Additional and independent Specification()(( H ( 0޽h ?( vs3db3___PPT10i.cCQ+D=' = @B +  QB 0  `(  x  c $lT2T    H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +< QC 0  !0(  0x 0 c $HsT `}  s  0 6?"0@NNN?N,B 0 Bs?"0@NNN?N( q  public void method(Iterator i); $! 0     0 B8s?"0@NNN?Nq  Fn/*@ & @ @ old int alter_i= expr; @ @ & @*/P8 d       z ,  0  w,$D  002 0 4sA(Ԕ?Large checker board"0@NNN?N,  > \2 0 ~0s*Ԕ?Wide upward diagonal"6@ NNN?N-S  hExpression Transformer  0 <|ff?"0@NNN?NSz  @   0 @  ,$D 0   0 BРs?"0@NNN?N&   [current l  0 C <A$MCj02381640000[1] @   0 B4s?"0@NNN?N h  fIntMathOps:isqrt    0 Bs?"0@NNN?Nh   acurrent*     0 Bs?"0@NNN?N'   Scurrent   `l  @  0@  ,$D 0v 0 Hs?"0@NNN?N-&   current alter_i int 6 J      r 0 S BA$MCj02381640000[1] @  0 Hĺs?"0@NNN?N (h  fIntMathOps:isqrt   0 Hs?"0@NNN?Nh (  acurrent*      0 Hs?"0@NNN?N' (  Scurrent   B 0 s *D?"0@NNN?N  9 0 0s?"0@NNN?Np  ,$D 0 m alter_i = (2 &$   0 C <A$MCj04063900000[1] *,$D 0yz  @  0 Q  ,$D  0p 0 Bs?"0@NNN?N-&   current alter_i int 6 J      l 0 C <A$MCj02381640000[1] @  0 B8s?"0@NNN?N (h  fIntMathOps:isqrt   0 Bs?"0@NNN?Nh (  acurrent*    .  0 BXs?"0@NNN?N' (  |"currentalter_i=&    B !0 s *D?"0@NNN?N  H 0 0޽h ? vs3db3___PPT10x.cCQ+{?vD' s= @B D_' = @BA?%,( < +O%,( < +D' =%(D' =%(DC' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* 0%(D' =-6B#slide(fromRight)*<3<* 0Ds' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-g6B fade*<3<*0D' =%(D8' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-g6B fade*<3<*0D' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-}6B!slide(fromLeft)*<3<*0D' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-g6B fade*<3<*0D' =%(D' =%(D+' =4@BB?BB%()?)?D' =.G7 BBBBBYM -4.16667E-6 8.69565E-7 L 0.26285 -0.2197 *3>*B ppt_xB ppt_y=@0BBAApBB>B<*0D' =%(D' =%(D:' =A@BB?BB0B%()?)?D' =.I7 BBBBB[M -1.94444E-6 -4.87512E-6 L 0.46077 0.08766 *3>*B ppt_xB ppt_y=@0BBAApBB?k>B3=<*0D' =4@BB?BB%()?)?Dq' =.97 BBBBBKM 0.26285 -0.2197 L 0.6882 -0.13575 *3>*B ppt_xB ppt_y=@0BBAApBBY>Bt+=<*0DJ' =%(D' =%(D6' =A@BB BB0B%(D' =-g6B fade*<3<*0D' =1:Bhidden*o3>+B#style.visibility<*0%(D)' =4@BB BB%(D' =-g6B fade*<3<*0D' =1:Bhidden*o3>+B#style.visibility<*0%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*0%(D' =-g6B fade*<3<*0++0+00 ++0+00 ++0+00 ++ QD 0 0 P+(  Px P c $T `}    P B?"0@NNN?N, @& B P B!?"0@NNN?N( q  public void method(Iterator i); $! 0     P B'?"0@NNN?Nq  8`/*@ & @ @ forall int var; @ @ & @*/P1 d         P <|ff?"0@NNN?NSz  @   P @  ,$D 0   P B<1?"0@NNN?N&   [current l  P C <A$MCj02381640000[1] @   P B6?"0@NNN?N h  fIntMathOps:isqrt   P B43?"0@NNN?Nh   acurrent*     P B??"0@NNN?N'   Scurrent   Nz  @  P @  ,$D 0n P BHD?"0@NNN?N-&   current var int 6 J      l P C <A$MCj02381640000[1] @  P BK?"0@NNN?N (h  fIntMathOps:isqrt   P BO?"0@NNN?Nh (  acurrent*     P BN?"0@NNN?N' (  Scurrent   B P s *D?"0@NNN?N  H P 0޽h ? vs3db380___PPT10.cCQ+S%D' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(DC' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* P%(D' =-6B#slide(fromRight)*<3<* PD' =%(D' =%(D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*P%(D' =-g6B fade*<3<*P+  QE 0  p(  x  c $sT2T   s H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + QF 0  $8(  8x 8 c $\T `}    8 6?"0@NNN?N,4 8 Bd ?"0@NNN?N( q  public void method(Iterator i); !!0     8 Bc?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        ,  8 <|ff?"0@NNN?N? 8 6?"0@NNN?Ni 8 6?"0@NNN?N9 F  @  8 j 8 Bn?"0@NNN?N-&   Qcurrent  l 8 C <A$MCj02381640000[1] @  8 Ba?"0@NNN?N (h  fIntMathOps:isqrt  8 Bw?"0@NNN?Nh (  acurrent*   8 Bu?"0@NNN?N' (  Scurrent  F  @  8    8 B?"0@NNN?N-&   Qcurrent  l !8 C <A$MCj02381640000[1] @  "8 Bl?"0@NNN?N (h  fIntMathOps:isqrt  #8 BT?"0@NNN?Nh (  acurrent*   $8 Bd?"0@NNN?N' (  Scurrent  %8  @  8@    8 H?"0@NNN?N-&   Qcurrent  r  8 S BA$MCj02381640000[1] @   8 Hh?"0@NNN?N (h  fIntMathOps:isqrt    8 H?"0@NNN?Nh (  acurrent*       8 H?"0@NNN?N' (  Scurrent   H 8 0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +  QL 0 c(  x  c $sT `}  s   6?"0@NNN?N,4  B0s?"0@NNN?N( q  public void method(Iterator i); !!0      Bw?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        ,   <|ff?"0@NNN?N@  6?"0@NNN?Ni  6?"0@NNN?N9    6?"0@NNN?N 8 ,$D 0F  @    j   B w?"0@NNN?N-&   Qcurrent  l   C <A$MCj02381640000[1] @    B w?"0@NNN?N (h  fIntMathOps:isqrt   Bw?"0@NNN?Nh (  acurrent*    B w?"0@NNN?N' (  Scurrent  F  @      Bw?"0@NNN?N-&   Qcurrent  l  C <A$MCj02381640000[1] @   BDw?"0@NNN?N (h  fIntMathOps:isqrt   B$#w?"0@NNN?Nh (  acurrent*    Bw?"0@NNN?N' (  Scurrent  F  @   @    B+w?"0@NNN?N-&   Qcurrent  l  C <A$MCj02381640000[1] @   Bp*w?"0@NNN?N (h  fIntMathOps:isqrt    B2w?"0@NNN?Nh (  acurrent*      B7w?"0@NNN?N' (  Scurrent   H  0޽h ? vs3db3___PPT10.cCQ+bӕD' = @B DI' = @BA?%,( < +O%,( < +D' =%(%(D' =%(D0' =4@BBBB%(D' =0l9 AABB*<3<*D+' =4@BB#BB%()?)?D' =.G7 BBBBBYM 3.88889E-6 7.40056E-8 L -0.70035 0.17507 *3>*B ppt_xB ppt_y=@0BBAApBBIB=<*DE' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-6B%slide(fromBottom)*<3<* +' QG 0 @ "1TR(  Tx T c $즤T `}    T 6?"0@NNN?N,4 T B?"0@NNN?N( q  public void method(Iterator i); !!0     T 6?"0@NNN?Ni T 6?"0@NNN?N9  T 6?"0@NNN?N 8 F  @  T j T B<?"0@NNN?N-&   Qcurrent  l T C <A$MCj02381640000[1] @  T B?"0@NNN?N (h  fIntMathOps:isqrt  T B`?"0@NNN?Nh (  acurrent*   T Bp?"0@NNN?N' (  Scurrent  F  @  T   T B?"0@NNN?N-&   Qcurrent  l T C <A$MCj02381640000[1] @   T BŤ?"0@NNN?N (h  fIntMathOps:isqrt  !T B<ʤ?"0@NNN?Nh (  acurrent*   "T BLϤ?"0@NNN?N' (  Scurrent   1T BӤ?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        , F  @  #T s 9  $T Bݤ?"0@NNN?N-&   Qcurrent  l %T C <A$MCj02381640000[1] @  &T B?"0@NNN?N (h  fIntMathOps:isqrt  'T Bt?"0@NNN?Nh (  acurrent*   (T B?"0@NNN?N' (  Scurrent  B /T 6D)?"0@NNN?N) 0 ) ,$@  0Iz  @  )T   ,$D 0 *T B?"0@NNN?N-&   Qcurrent  l +T C <A$MCj02381640000[1] @  ,T B?"0@NNN?N (h  fIntMathOps:isqrt   -T B?"0@NNN?Nh (  acurrent*     .T B?"0@NNN?N' (  Scurrent    0T <|ff?"0@NNN?NGH T 0޽h ? vs3db3  ___PPT10s .cCQ+afDG ' = @B D ' = @BA?%,( < +O%,( < +D@' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*/T%(D' =-}6B!slide(fromLeft)*<3<*/TDG' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*)T%(D' =-6B'blinds(horizontal)*<3<*)TD' =%(D' =%(DA' =4@BB BB%(D' =-6B#slide(fromRight)*<3<*/TD' =1:Bhidden*o3>+B#style.visibility<*/T%(+r) QH 0 skp "#`(  `x ` c $psT `}  w  ` 6?"0@NNN?N,4 ` B @w?"0@NNN?N( q  public void method(Iterator i); !!0     ` 6?"0@NNN?Ni ` 6?"0@NNN?N9  ` 6?"0@NNN?N 8 F  @   ` j  ` BXFw?"0@NNN?N-&   Qcurrent  l  ` C <A$MCj02381640000[1] @   ` BKw?"0@NNN?N (h  fIntMathOps:isqrt   ` BLHw?"0@NNN?Nh (  acurrent*   ` BlJw?"0@NNN?N' (  Scurrent  F  @  `   ` BpWw?"0@NNN?N-&   Qcurrent  l ` C <A$MCj02381640000[1] @  ` BX\w?"0@NNN?N (h  fIntMathOps:isqrt  ` B``w?"0@NNN?Nh (  acurrent*   ` Bpew?"0@NNN?N' (  Scurrent  F  @  ` s 9  ` Bbw?"0@NNN?N-&   Qcurrent  l ` C <A$MCj02381640000[1] @  ` B$nw?"0@NNN?N (h  fIntMathOps:isqrt  ` B$sw?"0@NNN?Nh (  acurrent*   ` Bxw?"0@NNN?N' (  Scurrent   #` B$}w?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        ,  ` <|ff?"0@NNN?Nd ` C <A$MCj02381640000[1] } `F p '  `    ` B`w?"0@NNN?Np %  ] V Type      ` B w?"0@NNN?N   fIntMathOps:isqrt  '  ` Bw?"0@NNN?N '  u Postcondition*        !` BLw?"0@NNN?Nq   X Precondition     B "` s *D?"0@NNN?N  H ` 0޽h ? vs3db3  ___PPT10 .cCQ+DS ' = @B D ' = @BA?%,( < +O%,( < +D9' =%(%(D' =%(D1' =4@BB@BB%()?)?D' =.M7 BBBBB_M -4.16667E-6 -3.89454E-6 L -0.21388 -0.29486 *3>*B ppt_xB ppt_y=@0BBAApBB۽B<*`D0' =4@BBBB%(D' =0l9 HBHBBB*<3<*`D#' =%(D' =%(Ds' =4@BB BB%()))D' =-6B%slide(fromBottom)*<3<*`D' =1:Bhidden*o3>+B#style.visibility<*`%(D' =%(D' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*`D' =1:Bhidden*o3>+B#style.visibility<*`%(+' QI 0  "#dR(  dx d c $_T `}  _  d 6?"0@NNN?N,4 d Bx_?"0@NNN?N( q  public void method(Iterator i); !!0     d 6?"0@NNN?Ni d 6?"0@NNN?N9  d 6?"0@NNN?N 8 F  @   d j  d B_?"0@NNN?N-&   Qcurrent  l  d C <A$MCj02381640000[1] @   d Bf?"0@NNN?N (h  fIntMathOps:isqrt   d B _?"0@NNN?Nh (  acurrent*   d BX#_?"0@NNN?N' (  Scurrent   #d Bf?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        , F  @  d   d B0_?"0@NNN?N-&   Qcurrent  l d C <A$MCj02381640000[1] @  d B5_?"0@NNN?N (h  fIntMathOps:isqrt  d Bp:_?"0@NNN?Nh (  acurrent*   d BP>_?"0@NNN?N' (  Scurrent  F  @  d s 9  d BC_?"0@NNN?N-&   Qcurrent  l d C <A$MCj02381640000[1] @  d B`G_?"0@NNN?N (h  fIntMathOps:isqrt  d BH_?"0@NNN?Nh (  acurrent*   d B4P_?"0@NNN?N' (  Scurrent  B d 6D)?"0@NNN?N) 0 ) ,$@  0 d <|ff?"0@NNN?NCIz  @  d   ,$D 0 d BT_?"0@NNN?N-&   Qcurrent  l d C <A$MCj02381640000[1] @   d B\Y_?"0@NNN?N (h  fIntMathOps:isqrt   !d B8]_?"0@NNN?Nh (  acurrent*     "d B\_?"0@NNN?N' (  Scurrent   H d 0޽h ? vs3db3  ___PPT10s .cCQ+nYDG ' = @B D ' = @BA?%,( < +O%,( < +D@' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*d%(D' =-}6B!slide(fromLeft)*<3<*dDG' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*d%(D' =-6B'blinds(horizontal)*<3<*dD' =%(D' =%(DA' =4@BB BB%(D' =-6B#slide(fromRight)*<3<*dD' =1:Bhidden*o3>+B#style.visibility<*d%(+r) QJ 0 sk "#l(  lx l c $DwT `}  w  l 6?"0@NNN?N,4 l Bw?"0@NNN?N( q  public void method(Iterator i); !!0     l 6?"0@NNN?Ni l 6?"0@NNN?N9  l 6?"0@NNN?N 8 F  @   l j  l Bw?"0@NNN?N-&   Qcurrent  l  l C <A$MCj02381640000[1] @   l Bw?"0@NNN?N (h  fIntMathOps:isqrt   l Bw?"0@NNN?Nh (  acurrent*   l B@w?"0@NNN?N' (  Scurrent  F  @  l   l Bw?"0@NNN?N-&   Qcurrent  l l C <A$MCj02381640000[1] @  l Bw?"0@NNN?N (h  fIntMathOps:isqrt  l B(w?"0@NNN?Nh (  acurrent*   l Bw?"0@NNN?N' (  Scurrent   #l Bw?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        , F  @  l s 9  l Bw?"0@NNN?N-&   Qcurrent  l l C <A$MCj02381640000[1] @  l Bw?"0@NNN?N (h  fIntMathOps:isqrt  l Bw?"0@NNN?Nh (  acurrent*   l Bw?"0@NNN?N' (  Scurrent   l <|ff?"0@NNN?NC d l C <A$MCj02381640000[1] } `F p '  l    l Bw?"0@NNN?Np %  ] V Type      l BLw?"0@NNN?N   fIntMathOps:isqrt  '  l Blw?"0@NNN?N '  u Postcondition*        !l Bw?"0@NNN?Nq   X Precondition     B "l s *D?"0@NNN?N  H l 0޽h ? vs3db3  ___PPT10 .cCQ+DS ' = @B D ' = @BA?%,( < +O%,( < +D9' =%(%(D' =%(D1' =4@BB@BB%()?)?D' =.M7 BBBBB_M -4.16667E-6 -3.89454E-6 L -0.21388 -0.29486 *3>*B ppt_xB ppt_y=@0BBAApBB۽B<*lD0' =4@BBBB%(D' =0l9 HBHBBB*<3<*lD#' =%(D' =%(Ds' =4@BB BB%()))D' =-6B%slide(fromBottom)*<3<*lD' =1:Bhidden*o3>+B#style.visibility<*l%(D' =%(D' =%(D)' =4@BB BB%(D' =-g6B fade*<3<*lD' =1:Bhidden*o3>+B#style.visibility<*l%(+ QK 0 P #X/(  Xx X c $fT `}  f  X 6?"0@NNN?N,4 X BȬf?"0@NNN?N( q  public void method(Iterator i); !!0     X <|ff?"0@NNN?N   X 6?"0@NNN?Ni X 6?"0@NNN?N9  X 6?"0@NNN?N 8 F  @  X j X Bf?"0@NNN?N-&   Qcurrent  l X C <A$MCj02381640000[1] @  X Bf?"0@NNN?N (h  fIntMathOps:isqrt  X B(f?"0@NNN?Nh (  acurrent*   X Bf?"0@NNN?N' (  Scurrent   #X Bhf?"0@NNN?Nq  F/*@ & @ requires i!=null; @ {| @ requires i.hasNext(); @ ensures expr; @ also @ requires !i.hasNext(); @ ensures expr2; @ |} @... @*/P5Nd4        , F  @  X   X BXf?"0@NNN?N-&   Qcurrent  l X C <A$MCj02381640000[1] @  X Bf?"0@NNN?N (h  fIntMathOps:isqrt  X Bf?"0@NNN?Nh (  acurrent*   X B,f?"0@NNN?N' (  Scurrent  F  @  X s 9  X B,f?"0@NNN?N-&   Qcurrent  l X C <A$MCj02381640000[1] @   X B\f?"0@NNN?N (h  fIntMathOps:isqrt  !X B+B#style.visibility<*X%(D=' =4@BB BB%(D' =-{6Bslide(fromTop)*<3<*XD' =1:Bhidden*o3>+B#style.visibility<*X%(+O QO 0 f^(  x  c $$xTZ'g*  x >  6x #  \POG implemented Debugging phase (JUnit testing) Formatted output Proof obligation Visualizer]]>!  ,   H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + QP 0 3+  (   x   c $aT'g       6e    dm: ksznm!4    >    H   0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +  Q7 0   (  x  c $ xT2T   x H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B + Q8 0 @o(  x  c $fT `}  f   6?"0@NNN?N,  Bf?"0@NNN?N q ?int y; public void isqrt() { y = (int) Math.sqrt(y); } @@r         |  Bf?"0@NNN?Nq  J/*@ model int value; @ represents value <- y @ assignable value; @*/4K/0   = H  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +t Q9 0 `(  x  c $xT `}  x   6?"0@NNN?N,  Bx?"0@NNN?N q ?int y; public void isqrt() { y = (int) Math.sqrt(y); } @@r         |  Bx?"0@NNN?Nq  J/*@ model int value; @ represents value <- y @ assignable value; @*/4K/0   =   <|ff?"0@NNN?NH  0޽h ? vs3db3___PPT10i.cCQ+D=' = @B +V Q: 0 m e   (  x  c $$xT `}  x   6?"0@NNN?N,  B%x?"0@NNN?N q ?int y; public void isqrt() { y = (int) Math.sqrt(y); } @@r         |  B/x?"0@NNN?Nq  J/*@ model int value; @ represents value <- y @ assignable value; @*/4K/0   =   <|ff?"0@NNN?N7b  B3x?"0@NNN?N6 ,$D  0 Yvalue& ?b  N8x?"0@NNN?N6 ,$D  0 Uy& B   6D)?"0@NNN?NC CC,$D  0r   <@>xGH?"0@NNN?NF P t,$@ 0 8Computing  downward closure ( H  0޽h ?  vs3db3___PPT10i.cCQ+ӾD ' = @B DP ' = @BA?%,( < +O%,( < +D' =%(D' =%(DA' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-}6B!slide(fromLeft)*<3<* D' =%(DA' =4@BB BB%(D' =-6B#slide(fromRight)*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(DN' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D' =%(D?' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(DN' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*++0+0 ++0+0 ++0+ 0 +PA Q; 0  (  x  c $MxT `}  x   6?"0@NNN?N,  BdOx?"0@NNN?N q ?int y; public void isqrt() { y = (int) Math.sqrt(y); } @@r         |  B\Qx?"0@NNN?Nq  J/*@ model int value; @ represents value <- y @ assignable value; @*/4K/0   =   <|ff?"0@NNN?NSz  @   @~ o ,$D 0   B^x?"0@NNN?N&   [current l   C <A$MCj02381640000[1] @    Bbx?"0@NNN?N h  fIntMathOps:isqrt     Bgx?"0@NNN?Nh   acurrent*       Blx?"0@NNN?N'   Scurrent   |F 6    6  b  Bix?"0@NNN?N6  Yvalue& b  Nux?"0@NNN?N6  Uy&   0\yx?"0@NNN?NZA K,$D  0 PM=(2&  z  @   @~ o ,$D  0   B}x?"0@NNN?N&   [current l  C <A$MCj02381640000[1] @   BȂx?"0@NNN?N h  fIntMathOps:isqrt    Bpx?"0@NNN?Nh   acurrent*    L  Bċx?"0@NNN?N'   &currentM={value,y} 4     p  0Dx?"0@NNN?N9q,$D  0 Z"loc.loc M, alive(ref(loc),$) $(loc)=S(loc). 2." .z  @   @~ o ,$@ 0   Bx?"0@NNN?N&   [current l  C <A$MCj02381640000[1] @   B(x?"0@NNN?N h  fIntMathOps:isqrt  >  Bx?"0@NNN?Nh   $currentassignable*    L  Bx?"0@NNN?N'   &currentM={value,y} 4       C <A$MCj04063900000[1] . ,$D  0H  0޽h ? vs3db3$$___PPT10$.cCQ+jVyD#' x= @B Dr#' = @BA?%,( < +O%,( < +D' =%(%(D' =%(D0' =4@BBBB%(D' =0l9 HBHBBB*<3<* D-' =4@BB*BB%()?)?D' =.I7 BBBBB[M -4.16667E-6 8.32562E-7 L -0.28333 0.43016 *3>*B ppt_xB ppt_y=@0BBAApBBB=\><* D' =%(DN' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-}6B!slide(fromLeft)*<3<*D#' =%(D' =%(Ds' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-6B#slide(fromRight)*<3<*D' =%(D' =%(D8' =A@BB?BB0B%()?)?D' =.G7 BBBBBYM 1.94444E-6 1.59112E-6 L 0.25208 -0.25532 *3>*B ppt_xB ppt_y=@0BBAApBB>B1<*D!' =4@BB?BB%()?)?Du' =.=7 BBBBBOM -0.28333 0.43016 L -0.02343 0.17831 *3>*B ppt_xB ppt_y=@0BBAApBBP>B<* Dz' =%(D"' =%(D6' =A@BB BB0B%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D)' =4@BB BB%(D' =-g6B fade*<3<* D' =1:Bhidden*o3>+B#style.visibility<* %(D[' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D ' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D/' =4@BB?BB%()?)?D' =.K7 BBBBB]M -1.11111E-6 -1.48011E-6 L 0.29445 -0.15356 *3>*B ppt_xB ppt_y=@0BBAApBBl>B;?<*D' =%(D[' =4@BB BB%()))D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(++0+0 ++0+0 ++0+0 ++0+0 +K5 Q 0 && 2C &(  x  c $xT `}  x " pp  # #" ` x  6+B#style.visibility<*%(D)' =4@BB BB%(D' =-g6B fade*<3<*D' =1:Bhidden*o3>+B#style.visibility<*%(D)' =4@BB BB%(D' =-g6B fade*<3<**D' =1:Bhidden*o3>+B#style.visibility<**%(D)' =4@BB BB%(D' =-g6B fade*<3<*CD' =1:Bhidden*o3>+B#style.visibility<*C%(D`' =4@BBBB%()))D' =0l9 CCBB*<3<*?D'' =4@BB#BB%()?)?D{' =.C7 BBBBBUM -2.5E-6 4.71785E-7 L -0.26389 -0.19982 *3>*B ppt_xB ppt_y=@0BBAApBBrBM̽<*?+  0 (  X  C      S  0    H  0޽h ? 3380___PPT10.&&`<0  0 (  X  C      S   0    H  0޽h ? 3380___PPT10.&&@1 g 0 (  X  C      S h 0    H  0޽h ? 3380___PPT10.&& o2 " 0 (  X  C      S  0    H  0޽h ? 3380___PPT10.&&po2 $ 0 (  X  C      S  0    H  0޽h ? 3380___PPT10.&&3 # 0 (  X  C      S  0    H  0޽h ? 3380___PPT10.&&`l3 ' 0 (  X  C      S % 0    H  0޽h ? 3380___PPT10.&&3 ( 0  (  X  C      S * 0    H  0޽h ? 3380___PPT10.&&`w@4 i 0 0(  X  C      S 0 0    H  0޽h ? 3380___PPT10.&&+4  0 @(  X  C      S 6 0    H  0޽h ? 3380___PPT10.&&4 & 0 P(  X  C      S @B 0    H  0޽h ? 3380___PPT10.&&<5 h 0 `(  X  C      S G 0    H  0޽h ? 3380___PPT10.&&p5  0 p(  X  C      S M 0    H  0޽h ? 3380___PPT10.&&@:5 % 0 (  X  C      S |S 0    H  0޽h ? 3380___PPT10.&& + 0 (  X  C      S LY 0    H  0޽h ? 3380___PPT10.&& * 0 (  X  C      S _ 0    H  0޽h ? 3380___PPT10.&&  , 0 (  X  C      S (d 0    H  0޽h ? 3380___PPT10.&& . 0 (  X  C      S i 0    H  0޽h ? 3380___PPT10.&&@q / 0 (  X  C      S d 0    H  0޽h ? 3380___PPT10.&&P 0 0 (  X  C      S ,t 0    H  0޽h ? 3380___PPT10.&&٬ 1 0 (  X  C      S y 0    H  0޽h ? 3380___PPT10.&&pn 4 0 (  X  C      S t 0    H  0޽h ? 3380___PPT10.&&~; ; 0 (  X  C      S 0 0    H  0޽h ? 3380___PPT10.&&@e_ j 0   (   X   C       S  0    H   0޽h ? 3380___PPT10.&&@ : 0 0(  X  C      S ؄ 0    H  0޽h ? 3380___PPT10.&&P] < 0 @(  X  C      S 4 0    H  0޽h ? 3380___PPT10.&&# m 0 P(  X  C      S  0    H  0޽h ? 3380___PPT10.&&S 5 0 p (   X   C       S ܔ 0    H   0޽h ? 3380___PPT10.&& = 0 $(  $X $ C     $ S 0 0    H $ 0޽h ? 3380___PPT10.&&N 8 0 ,(  ,X , C     , S  0    H , 0޽h ? 3380___PPT10.&&pk ? 0 0(  0X 0 C     0 S ؤ 0    H 0 0޽h ? 3380___PPT10.&& > > 0 4(  4X 4 C     4 S 4 0    H 4 0޽h ? 3380___PPT10.&&k @ 0 8(  8X 8 C     8 S  0    H 8 0޽h ? 3380___PPT10.&&@ H 0 <(  <X < C     < S ܴ 0    H < 0޽h ? 3380___PPT10.&& = 7 0 @(  @X @ C     @ S ĥ 0    H @ 0޽h ? 3380___PPT10.&& A 0 D(  DX D C     D S hʥ 0    H D 0޽h ? 3380___PPT10.&&j B 0 H(  HX H C     H S  0    H H 0޽h ? 3380___PPT10.&&`bC D 0  L(  LX L C     L S ե 0    H L 0޽h ? 3380___PPT10.&&> G 0 0P(  PX P C     P S ڥ 0    H P 0޽h ? 3380___PPT10.&& E 0 @T(  TX T C     T S  0    H T 0޽h ? 3380___PPT10.&& F 0 PX(  XX X C     X S ` 0    H X 0޽h ? 3380___PPT10.'&`j I 0 `\(  \X \ C     \ S 0 0    H \ 0޽h ? 3380___PPT10.'&Pwj f 0 p`(  `X ` C     ` S  0    H ` 0޽h ? 3380___PPT10.'&@|l P 0 d(  dX d C     d S  0    H d 0޽h ? 3380___PPT10.'&0!m U 0 h(  hX h C     h S  0    H h 0޽h ? 3380___PPT10.'&Pq V 0 l(  lX l C     l S  0    H l 0޽h ? 3380___PPT10.'&]Nt W 0 p(  pX p C     p S  0    H p 0޽h ? 3380___PPT10.'& J 0 (  X  C      S   0    H  0޽h ? 3380___PPT10./&_o 0 0((  ^  S    _  c $_ 0  _  H  0޽h ? 3380___PPT10.'&Fp 0 P((  ^  S      c $ 0    H  0޽h ? 3380___PPT10.'&p)q 0 p((  ^  S      c $ 0    H  0޽h ? 3380___PPT10.'&P.kr 0 ((  ^  S      c $ 0    H  0޽h ? 3380___PPT10.'&୺s 0 ((  ^  S      c $" 0    H  0޽h ? 3380___PPT10.'&x d 0 (  X  C      S ( 0    H  0޽h ? 3380___PPT10./&( K 0 (  X  C      S d. 0    H  0޽h ? 3380___PPT10./&p L 0 (  X  C      S ,4 0    H  0޽h ? 3380___PPT10.0&4 M 0 (  X  C      S 9 0    H  0޽h ? 3380___PPT10.0& 6 N 0 (  X  C      S 4 0    H  0޽h ? 3380___PPT10.0&0< O 0 (  X  C      S 0D 0    H  0޽h ? 3380___PPT10.0&4= k 0  (  X  C      S I 0    H  0޽h ? 3380___PPT10.0&)Xl Q 0 0(  X  C      S J 0    H  0޽h ? 3380___PPT10.0&0Fm X 0 @(  X  C      S T 0    H  0޽h ? 3380___PPT10.0& l 0 P(  X  C      S Y 0    H  0޽h ? 3380___PPT10.0&`Y S 0 `(  X  C      S Z 0    H  0޽h ? 3380___PPT10.0&А@ Y 0 p(  X  C      S d 0    H  0޽h ? 3380___PPT10.0&!O \ 0 (  X  C      S i 0    H  0޽h ? 3380___PPT10.1&0 ] 0 (  X  C      S j 0    H  0޽h ? 3380___PPT10.1&  _ 0 (  X  C      S t 0    H  0޽h ? 3380___PPT10.1&@X4  Z 0 (  X  C    _  S _ 0  _  H  0޽h ? 3380___PPT10.1&t 0 ((  ^  S      c $y 0    H  0޽h ? 3380___PPT10.0&А@u 0 ((  ^  S    _  c $_ 0  _  H  0޽h ? 3380___PPT10.2&`~5v 0 0((  ^  S    _  c $<_ 0  _  H  0޽h ? 3380___PPT10.2&`~5r`@ށٲ ]%pK7"-0-$/91PLfD~Q77_9 <p)("2:s< " <8Xq  / %U+4TOu  qrf:L؊c/f=Ȱ1>m{T*h,|.02468:=?0ADCXElGIKMOQSU X Z4\H^\` pbd fhjlnps$u8wLy`{t}ą؇]ϓK4TtȚܜ,@Th|̵@sʈ4<T1Oh+'0T hp    $,(Proof Obligation Generator for Jive/JMLGDigital DotsG21Microsoft Office PowerPoint@@@`b@NW&"GSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwAA4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwwkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBkBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkBkBkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkkkkBBBBBBBkBBBBBBBkBBBBBBBBBBkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBBBBBBBBkBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBkBkBBBkBBBkBBBBBBBkBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkBkkkkkkkkkkkkkkkBkkkBkkkBkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkBkBBBkBBBkBBBkBBBkBBBkBBBBBkkkkBBBBBBBBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBBkBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkBkBBBkBBBkBBBkBBBkBBBkBBBBBkkkBBBBBBBBBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkkkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBkBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBBBBkBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBBBkBkBkBBBkBBBkBBBkBBBkBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkHkBkkkBkkkBkkkBkkkBkkkBkBkkkkBkBkBkBkBkBkBkBkBkBkBkBkkkkkBkBkBkBkBkkkkkkkkkkBkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkkHkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBBBkBBBkBBBkBBBkBBBkkkkBBBBBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkBkkkkBBBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkBBBkBkBkBBBkBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkBkBkBkBkBBkkkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkBBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkkkkBkkkBkkBkkBBkBkBkkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBBBkkkBkBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkkkkBkBkBkBkBkBkBkBkBkBkBkkkkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkBBBkBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBBBkBkBkBBBkBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkBkBkkBkkBkBkBBkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBBBkBBBkBBBkBBBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkBkBkkkBkBkBkBkBBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBBBBBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBBkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBBBkBBBkBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkkkkkBkBkBkkkBkBkBkBkBkBkkkkkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBBBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkHkBkBkkkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBBBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkHkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkBkkkBBkBBkBBkBkkBBkBBkBBkkBBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkBkBkBkBkBkkkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkkBkBBBkBkBkBkBkBkBkBkkkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkBkBkBkBkkkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkBkBkkkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkBkBkBkBBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkkkkBkkkBkBkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkpkkkkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkkkBkBkBkBkBkBkBkBkkkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkBkkkkkBkBkBkBkBkBkBkkkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkpkkkkkkkkkkkkkkBkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkBkkkBkkkBkkkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkBkBkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkBkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkkkBkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk՜.+,0`     On-screen ShowETHHH NArialTimes New Roman WingdingsSymbol Webdings Digital Dots(Proof Obligation Generator for Jive/JMLProof Obligation Generator1.1. Why JML?A comment in natural language!And what a computer understandsFirst-order logic@What you actually want a non-mathematician programmer to writeJML as excellent compromiseA comment in JML1.2. External architecturePOG Environment: Data Flow%POG Environment: External Interfaces2.1. An animated exampleIterating on typesIterating on typesIterating on methodsIterating on methodsIterating on methodsIterating on specificationsIterating on specificationsSpecification: A closer lookSpecification: A closer lookThe method reference&2.2. The Proof Obligation Accumulator!The Proof Obligation Accumulator!The Proof Obligation AccumulatorSpecification: A closer lookSpecification: A closer lookSpecification: A closer lookSpecification: A closer lookSpecification: A closer lookNo assignable locationsSpecification: A closer lookSpecification: A closer lookSpecification: A closer lookOld expressionsOld expressionsOld expressionsOld expressionsOld expressions We are done!2.3. Signal clausesSignalsSignalsSignalsSignals3.1. Some sugars Some sugars Some sugars Some sugars Some sugars Some sugars Some sugars3.2. Variable declarationOld variable declarationForall variable declaration3.2. Nested SpecificationNested SpecificationNested SpecificationNested SpecificationNested SpecificationNested SpecificationNested SpecificationNested Specification ConclusionThank you for your attention!Assignable locationsAssignable locationsAssignable locationsAssignable locationsAssignable locations'To add or not to add class invariants?  Fonts UsedDesign Template Slide TitlesH_0GG  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkmnopqrsuvwxyz{Root EntrydO)PicturesCurrent UsertSummaryInformation(A UPowerPoint Document(_ DocumentSummaryInformation8l