diff options
-rw-r--r-- | wiley.ps | 21900 | ||||
-rw-r--r-- | wiley.ps.gz | bin | 0 -> 431755 bytes |
2 files changed, 0 insertions, 21900 deletions
diff --git a/wiley.ps b/wiley.ps deleted file mode 100644 index f18f0cf..0000000 --- a/wiley.ps +++ /dev/null @@ -1,21900 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) -%%Title: notes.dvi -%%Pages: 250 -%%PageOrder: Ascend -%%BoundingBox: 0 0 596 842 -%%EndComments -%DVIPSCommandLine: dvips -f notes.dvi -%DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 1999.09.29:1650 -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N -/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 -mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} -ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale -isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div -hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul -TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} -forall round exch round exch]setmatrix}N /@landscape{/isls true N}B -/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B -/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ -/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N -string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N -end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ -/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] -N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup -length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ -128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub -get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data -dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N -/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup -/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx -0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff -setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff -.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N -/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id -gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp -add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add -/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ -dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 -adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 -idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string -putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval -adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} -{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ -adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 -chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] -}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup -length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ -cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin -0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul -add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict -/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook -known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X -/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn -put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N -/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley -X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[ -(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup -length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} -forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false -RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 -false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform -round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg -rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail -{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} -B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ -4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ -p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p -a}B /bos{/SS save N}B /eos{SS restore}B end - -%%EndProcSet -TeXDict begin 39158280 55380996 1000 600 600 (notes.dvi) -@start -%DVIPSBitmapFont: Fa cmsy6 6 1 -/Fa 1 49 df<EA01E0EA03F0A4EA07E0A213C0120FA21380A2EA1F00A2121EA2123E123C -A25AA3127012F05A12600C1A7E9B12>48 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fb cmcsc10 12 26 -/Fb 26 123 df<EC7FC0903803FFF890380FC07E90393F001F80017E6D7E496D7E48486D -7E48486D7EA248486D7E000F8149147E001F157FA3003F1680A249143F007F16C0A600FF -16E0B3A2007F16C0A66C6CEC7F80A3001F1600A36C6C14FEA200075D6D130100035D6C6C -495A6C6C495A017E495A6D495A90260FC07EC7FC903803FFF89038007FC02B447BC137> -48 D<1438147814F81303130F13FFB5FC13F713071200B3B3B0497E497EB712C0A32242 -76C137>I<49B4FC010F13F0013F13FC9038FC03FF2601E00013C0D807C0EB3FE048486D -7E90C76C7E001E6E7E4881003814030078811270007C80B416807F7F81A46C485B6CC7FC -C8FC17005DA25E15075E4B5AA24B5A5E4B5A4B5A4BC7FC5D4A5A4A5A4A5AEC0FC04A5A92 -C8FC143E5C5C495A4948EB0380EB078049C7FC011EEC07005B5B5B48485C485A49141E48 -B612FE5A5A5A5AB75AA329427AC137>I<157015F8A34A7EA24A7EA3EC077FA2020F7FEC -0E3FA2021E7FEC1C1FA24A6C7EA202787FEC7007A24A6C7EA2010180ECC001A2010380EC -8000A249C7127FA2498191B6FCA24981011CC7121F013C810138140FA201788101701407 -A201F06E7E5B000182487E000782D81FF84A7EB5027F13F8A335347CB33D>97 -D<B77E16F016FC3A03FC0003FF6C4801001380EE3FC017E0161FEE0FF0A217F8A21607A2 -160FA217F0161F17E0EE3FC0EE7F80EEFF00ED03FE90B612F0A29039F80007FE9238007F -80EE1FC0EE0FF0EE07F817FC160317FE160117FFA617FE1603A2EE07FCEE0FF8EE1FF0EE -3FE0486C903801FFC0B8120016FC16E030337BB23A>I<4AB4EB0180021FEBF00391B5EA -FC0701039038007E0FD907F8EB0F9FD91FE0EB03DF4948EB01FF01FFC8FC4848157F4848 -153FA24848151F4848150F121F491507123F5BA2007F1603A3484892C7FCAB6C7EEF0380 -A2123FA27F001F16076D1600000F5E6C6C150E6C6C151E171C6C6C153C6C6C5DD93FC05C -6D6CEB03E0D907F8495A902703FF807FC7FC0100EBFFFC021F13F00201138031357BB33B ->I<B7FC16F016FC3A03FE0003FF6C489038007F80EE1FE0707E707E707E1601707E177F -A21880173F18C0A2EF1FE0A418F0AA18E0A4EF3FC0A21880177F180017FE16015F4C5AEE -0FF04C5AEE7FC0486CD903FFC7FCB712FC16F093C8FC34337BB23E>I<B812F0A3D803FE -C7123F6C48EC07F816011600A21778A21738A3171C1507A31700A25DA25D157F90B6FCA3 -9038FC007F151F81A2811707A3170E92C7FCA4171EA2173CA2177C17FC16011607486C14 -3FB812F8A330337BB238>I<B812C0A3D803FEC7FC6C48EC1FE0160716031601A21600A4 -1770A2150EA21700A3151EA2153E15FE90B5FCA3EBFC00153E151EA2150EA592C8FCAB48 -B4FCB512FEA32C337BB235>I<DA03FF1303021FEBE00791B5EAF80F0103903800FE1FD9 -0FF8EB1F3FD91FE0EB07BFD97F806DB4FC49C77E484880484881484881A2484881121F49 -81123F5BA2007F82A25B00FF93C7FCAA4BB512F86C7EA2DB00011380003F6F1300837F12 -1F7F120F6C7E7F12036C7E6C6C5DEB7FC0D91FE05BD90FF8EB07DF903A03FF803F8F0100 -9038FFFE07021FEBF80302030180C7FC35357BB340>I<B5D8F803B512E0A3D803FEC738 -0FF8006C486E5AB390B7FCA301FCC71207B3A3486C4A7EB5D8F803B512E0A333337BB23D ->I<B512F8A33803FE006C5AB3B3A7487EB512F8A315337BB21E>I<90383FFFFEA3903800 -7FE0EC1FC0B3B1127EB4FCA4EC3F805A0070EB7F006C137E001E5B380F83F83803FFE0C6 -90C7FC1F347BB22A>I<B500F890380FFFF0A3D803FEC76C13806C48913803FC0017F04C -5A5F4CC7FC161E5E5E5EED03E04B5A4B5A4BC8FC153E5D15F014014A7E4A7E140F4A7EEC -7CFF4A6C7EEBFDF09039FFE03FC04A6C7EEC800FD9FE007F496D7E6F7EA26F7E6F7E8283 -707E707EA2707E707E83160383486C913807FF80B500F8011F13F8A335337BB23F>I<B5 -12FEA3000390C9FCEA01FCB3A9EE01C0A416031780A41607A2160F161FA2167FEEFF0048 -6C1307B8FCA32A337BB233>I<D8FFFEEE7FFFA26D93B5FC000318C06C1880D9DF80EC01 -DFA2D9CFC0EC039FA3D9C7E0EC071FA2D9C3F0140EA3D9C1F8141CA2D9C0FC1438A3027E -1470A26E14E0A391391F8001C0A291390FC00380A3913907E00700A2913803F00EA36E6C -5AA26E6C5AA3ED7E70A26F5AA3486C6D5A487ED81FFC6D48EB3FC0B50080020FB5FCA2ED -070040337BB24A>I<D8FFFC91383FFFE07FA2D801FF020713006EEB01FC6E6D5A1770EB -DFE0EBCFF013C780EBC3FC13C180EBC0FF80816E7E6E7EA26E7E6E7E1403816E7E140081 -ED7F80ED3FC0A2ED1FE0ED0FF0150716F8ED03FC150116FEED00FF167F17F0163F161FA2 -160F1607486C1403487ED81FFC1401B56C1300A2177033337BB23D>I<EC07FF023F13E0 -903901FE03FC903907F0007FD90FC0EB1F80D93F80EB0FE049C76C7E01FE6E7E48486E7E -48486E7E4848157FA24848ED3F80001F17C0A24848ED1FE0A3007F17F049150FA300FF17 -F8AA007F17F06D151FA2003F17E0A26D153F001F17C0A26C6CED7F80000717006D5D0003 -5E6C6C4A5A6C6C4A5A017F4A5A6D6C495AD90FC0EB1F80D907F0017FC7FC903901FE03FC -9039003FFFE0020790C8FC35357BB33F>I<B7FC16F016FC3A03FE0003FF6C489038007F -80EE3FC0EE1FE0EE0FF0A2EE07F8A217FCA617F8A2EE0FF0A2EE1FE0EE3FC0EEFF00ED03 -FE90B612F816C001FCC9FCB3A2487EB512F8A32E337BB238>I<EC07FF023F13E0903901 -FE03FC903907F0007FD90FC0EB1F80D93F80EB0FE049C76C7E01FE6E7E48486E7E48486E -7E0007824981000F17804848ED3FC0A2003F17E049151FA2007F17F0A249150FA200FF17 -F8AA007F17F0A26D151F003F17E0A36C6CED3FC0A26C6CED7F80000702F814009026F803 -FE5B0003D907075B3B01FC0E0381FC3B00FE0C01C3F8017F903800E7F0D93F8CEBEFE0D9 -0FCCEB7F80D907FE91C7FC903901FF03FC9027003FFFF813180207133C91C7123E183804 -3F137893381FC1F8EFFFF0A37013E0A27013C0701380701300EE007C35427BB33F>I<B6 -12F8EDFF8016E03A03FE000FF86C48EB03FEED00FF707E707E83161FA283A55FA24C5A5F -4CC7FC16FEED03FCED1FF090B6128003FCC8FC9038FC003FED0FC06F7E6F7E6F7E821500 -82A382A383A4EFC01CA2167FEFE03C486C023F1338B500F890381FF07893380FF8F09338 -03FFE0CAEA7F8036347BB23C>I<90390FF0018090387FFE0348B512873907F00FEF390F -C001FF48C7FC003E143F151F5A150F5A1507A36C1403A27E6C91C7FC6C7E7FEA3FF8EBFF -806C13FC6CEBFFC06C14F06C80C614FE011F7F01031480D9001F13C014019138003FE015 -1F150FED07F0150312E01501A37EA216E06C1403A26CEC07C06CEC0F806C6CEB1F0001E0 -133ED8FBFE13FC00F0B55AD8E01F13E0D8C00390C7FC24357BB32E>I<007FB812C0A390 -3A8007FC003F277E0003F8130F007C16070078160300701601A200F017E0A2481600A6C7 -1600B3AA4A7E4A7E010FB512FEA333327CB13B>I<B500F890383FFFE0A3D803FEC70007 -13006C48EC01FC705A1770B3AE000016F06D5DA2017E1401017F4A5A7F6D6C495A6E49C7 -FC6D6C131ED903F0137C903901FE03F89039007FFFE0021F1380DA03FCC8FC33347BB23D ->I<B500F091387FFF80A30003018091381FFC006C90C8EA0FE06C6D5D017F5E6D6C4AC7 -FC171E6D6C5C6D6C143817786D6C5C6D6C5C16016D6C495A6D6C5C16076E6C48C8FC9138 -3FC00E161E6E6C5A91380FF03816786E6C5A6E6C5AEDFDC0EC01FF6E5B93C9FC81B14B7E -023F13FEA339337EB23D>121 D<003FB7FCA39039FC0001FE01E01303018014FC90C7EA -07F8003E140F003C15F0007CEC1FE00078EC3FC0A2ED7F800070ECFF00A24A5A4A5AC712 -075D4A5A141F5D4A5A4A5AA24AC7FC495AA2495A495A130F4A1307495A133F5C495A49C7 -FC160F485A485AA24848141E485A001F153E49147E484814FE007F140349131FB7FCA328 -337BB232>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fc cmmi8 8 17 -/Fc 17 117 df<14C0A5497EA700F0EC03C039FF83F07F003FB61200000F14FC000114E0 -6C6C1380D91FFEC7FCEB07F8497EA2497EEB3F3FEB3E1F496C7EEB7807496C7EA248486C -7E48486C7E49137090C71230222180A023>63 D<013FB512FEEEFFC0903A00FE0007F0EE -01F84AEB007E8301018118804A140F18C00103150718E05CA21307A25CA2130FA24A140F -A2131F18C04A141FA2013F1680173F91C81300A249157EA2017E5D5F01FE14014C5A494A -5A4C5A00014BC7FC163E4914FCED03F00003EC1FC0B7C8FC15F8332D7CAC3A>68 -D<013FB71280A2D900FEC7127F170F4A1407A20101150318005CA21303A25C1630010714 -7094C7FC4A136016E0130F15019138C007C091B5FC5BECC0074A6C5AA2133FA20200EB00 -0CA249151C92C71218017E1538173001FE15705F5B4C5A000115034C5A49140F161F0003 -4AB4C7FCB8FC5E312D7DAC34>I<90383FFFFCA2903800FE00A25CA21301A25CA21303A2 -5CA21307A25CA2130FA25CA2131FA25CA2133FA291C7FCA25BA2137EA213FEA25BA21201 -A25BA21203B512E0A21E2D7DAC1F>73 D<ED7FC0913807FFF891381F807E91397C001F80 -D901F0EB0FC0D907E0EB03E0D90F8014F049C71201013EEC00F84915FC5B12014848157E -485AA2485A121FA2485A17FE90C9FC5AA300FEED01FCA3EE03F8A217F0160717E0160FEE -1FC01780007EED3F005E6C157E5E6C6C495AED03E06C6CEB0FC06C6C49C7FCD803F8137E -3900FE03F890383FFFC0D907FEC8FC2F2F7CAD36>79 D<013FB6FC17E0903A00FE0007F0 -EE01FC4AEB007EA2010181A25C1880010316005F5CA2010715FEA24A5C4C5A010F4A5A4C -5A4AEB1F8004FFC7FC91B512F84914C00280C9FCA3133F91CAFCA35B137EA313FE5BA312 -015BA21203B512E0A2312D7DAC2D>I<913807F00691383FFE0E9138F80F9E903903E001 -FE903807800049C7127C131E49143CA2491438A313F81630A26D1400A27FEB7F8014F86D -B47E15F06D13FC01077F01007F141F02011380EC003F151F150FA215071218A3150F0038 -1500A2151EA2007C5C007E5C007F5C397B8003E039F1F00F8026E07FFEC7FC38C00FF027 -2F7CAD2B>83 D<B500C090380FFFC0A2D807F8C73801FC006C48EC00F05F4C5A5F6D4AC7 -FC120116065EA25E6D5C12005E5EA24B5A6D49C8FCA2017E13065DA25D017F5BA26D5B5D -A24A5A0283C9FCA2EB1F86148CA2149814F0A26D5A5CA25C91CAFCA21306322E7CAC29> -86 D<90260FFFFCEB7FFFA29026007FC0EB0FF06E48148018006E6C131E1718020F5C6F -5B02075C6F485A020349C7FCEDF8065E6E6C5A5E6E6C5A5EED7F8093C8FC6F7EA26F7E15 -3F156FEDCFE0EC018791380307F0EC0703020E7F141C4A6C7E14704A6C7E495A4948137F -49C7FC010E6E7E5B496E7E5BD801F081D807F8143FD8FFFE0103B5FCA2382D7EAC3A>88 -D<EB07E0EB1FF890387C1CE0EBF80D3801F00F3803E007EA07C0120FD81F8013C0A2EA3F -00140F481480127EA2141F00FE14005AA2EC3F02EC3E06A25AEC7E0E007CEBFE0C14FC01 -01131C393E07BE18391F0E1E38390FFC0FF03903F003C01F1F7D9D25>97 -D<13F8121FA21201A25BA21203A25BA21207A25BA2120FEBC7E0EB9FF8EBB83C381FF01E -EBE01F13C09038800F80EA3F00A2123EA2007E131FA2127CA2143F00FC14005AA2147EA2 -147C14FC5C387801F01303495A383C0F806C48C7FCEA0FFCEA03F0192F7DAD1E>I<EB01 -F8EB0FFE90383E0780EB7C01D801F813C03803F0073807E00FEA0FC001801380121F48C8 -FCA25A127EA312FE5AA51560007C14E0EC01C0EC03806CEB0F00001E131C380F81F83807 -FFE0C648C7FC1B1F7D9D1F>I<157C4AB4FC913807C380EC0F87150FEC1F1FA391383E0E -0092C7FCA3147E147CA414FC90383FFFF8A2D900F8C7FCA313015CA413035CA413075CA5 -130F5CA4131F91C8FCA4133EA3EA383C12FC5BA25B12F0EAE1E0EA7FC0001FC9FC213D7C -AE22>102 D<14FCEB03FF90380F839C90381F01BC013E13FCEB7C005B1201485A15F848 -5A1401120F01C013F0A21403121F018013E0A21407A215C0A2000F130F141F0007EB3F80 -EBC07F3803E1FF3800FF9F90383E1F0013005CA2143EA2147E0038137C00FC13FC5C495A -38F807E038F00F80D87FFEC7FCEA1FF81E2C7E9D22>I<90387C01F89038FE07FE3901CF -8E0F3A03879C0780D907B813C0000713F000069038E003E0EB0FC0000E1380120CA2D808 -1F130712001400A249130F16C0133EA2017EEB1F80A2017C14005D01FC133E5D15FC6D48 -5A3901FF03E09038FB87C0D9F1FFC7FCEBF0FC000390C8FCA25BA21207A25BA2120FA2EA -FFFCA2232B829D24>112 D<903807E03090381FF87090387C1CF0EBF80D3801F00F3903 -E007E0EA07C0000F1303381F800715C0EA3F00A248130F007E1480A300FE131F481400A3 -5C143E5A147E007C13FE5C1301EA3E07EA1F0E380FFCF8EA03F0C7FC13015CA313035CA2 -1307A2EBFFFEA21C2B7D9D20>I<130E131FA25BA2133EA2137EA2137CA213FCA2B512F8 -A23801F800A25BA21203A25BA21207A25BA2120FA25BA2001F1310143013001470146014 -E0381E01C0EB0380381F0700EA0F0EEA07FCEA01F0152B7EA919>116 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fd cmr6 6 7 -/Fd 7 110 df<1438B2B712FEA3C70038C7FCB227277C9F2F>43 -D<13FF000313C0380781E0380F00F0001E137848133CA248131EA400F8131FAD0078131E -A2007C133E003C133CA26C13786C13F0380781E03803FFC0C6130018227DA01E>48 -D<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>I<EA01FC3807FF8038 -1C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013FCC7FC14F8A2EB01F0 -EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600185A5A383FFFF85AB5 -12F0A216217CA01E>I<13FF000313C0380F03E0381C00F014F8003E13FC147CA2001E13 -FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00F01478147C143E143F -1230127812FCA2143E48137E0060137C003813F8381E03F0380FFFC00001130018227DA0 -1E>I<14E01301A213031307130F130D131913391371136113C11201EA03811301120612 -0E121C12181230127012E0B6FCA2380001E0A6EB03F0EB3FFFA218217DA01E>I<3A0F0F -F00FF03AFF3FFC3FFC9039703E703E3A1FC01FC01F6C486C487EA201001300AD3BFFF0FF -F0FFF0A22C157D9432>109 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fe cmbsy10 12 2 -/Fe 2 21 df<007FBA12F8BB12FCA46C19F84606779B59>0 D<1A78F101FC1907191F19 -7F953801FFF8060713C0061F1300F07FFC943801FFF0050713C0051F90C7FCEF7FFC9338 -01FFF0040713C0041F90C8FCEEFFFC030313F0030F13C0033F90C9FCEDFFFC020313F002 -0F1380DA3FFECAFCECFFF8010313E0010F1380D93FFECBFCEBFFF8000313E0000F1380D8 -3FFECCFCEAFFF813E0A213F8EA7FFE380FFF80000313E0C613F8EB3FFE90380FFF800103 -13E0010013F8EC3FFE91380FFF80020313E0020013FCED3FFF030F13C0030313F0030013 -FCEE3FFF040713C0040113F09338007FFCEF1FFF050713C0050113F09438007FFCF01FFF -060713C0060113F09538007FFC191F19071901F100781A00B2003FBA12F04819F8BB12FC -A36C19F8465C77C459>20 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Ff cmmib10 12 2 -/Ff 2 64 df<127812FE6C7E13E013F8EA3FFE380FFF80000313E0C613F8EB3FFE90380F -FF80010313E0010013F8EC3FFE91380FFF80020313F0020013FCED3FFF030F13C0030313 -F0030013FCEE1FFF040713C0040113F09338007FFCEF1FFF050713C0050113F09438007F -FCF01FFF060713C0060113F89538007FFC191FA2197F953801FFF8060713C0061F1300F0 -7FFC943801FFF0050713C0051F90C7FCEF7FFC933801FFF0040713C0041F90C8FCEEFFFC -030313F0030F13C0033F90C9FCEDFFFC020313F0020F1380DA3FFECAFCECFFF8010313E0 -010F1380D93FFECBFCEBFFF8000313E0000F1380D83FFECCFCEAFFF813E0138048CDFC12 -78464477BA59>62 D<156015F0A34A7EA64A7EA64A7E00401720D8FFC0ED3FF0D9FF87EB -1FFF91B7FC6C17E0001F17800007EEFE00000116F86C6C15E0011F158001074AC7FC0101 -14F86D5C6E5BA291B57EA24980A249EB9FFC150F49486C7EECFC0349486C7E4A7E49486D -7E4A133F49486D7E91C7120F013E1407496E7E0178140101306E5A34327EB139>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg cmex10 10 12 -/Fg 12 126 df<EE03C0160F163F167F923801FF004B5A4B5AED0FF04B5A4B5A4B5A4BC7 -FC5C5D4A5A14075D4A5AA2141F5DA24A5AA44A5AB3B3B3B214FF92C8FCA35B5CA2495AA2 -5C13075C130F495A5C133F495A49C9FC485A485A485A485AEA1FC0485AB4CAFC12FCA2B4 -FCEA3F806C7EEA0FF06C7E6C7E6C7E6C7E6D7E6D7E131F806D7E130780130380A26D7EA2 -807FA381147FB3B3B3B26E7EA46E7EA281140FA26E7E8114036E7E81806F7E6F7E6F7E6F -7EED07FC6F7E6F7E9238007FC0163F160F16032AF8748243>40 D<EC01F01407140F143F -147F903801FFC0491380491300495A495A495A495A5C495A485B5A91C7FC485AA2485AA2 -485AA2123F5BA2127F5BA412FF5BB3B3A71C4B607E4A>56 D<EAFFC0B3B3A77F127FA47F -123FA27F121FA26C7EA26C7EA26C7E807E6C7F6D7E806D7E6D7E6D7E6D7E6D13806D13C0 -9038007FF0143F140F140714011C4B60804A>58 D<EC1FF8B3B3A7143F15F0A4EC7FE0A3 -15C014FFA2491380A215005B5C1307495A5C131F495A5C495A495A4890C7FC485A485A48 -5A485AEA7FE0EAFF8090C8FC12FCB4FC7FEA7FE0EA1FF06C7E6C7E6C7E6C7E6C7F6D7E6D -7E806D7E130F806D7E1303807F1580A26D13C0A2147F15E0A3EC3FF0A415F8141FB3B3A7 -1D9773804A>60 D<EAFFC0B3A90A1B60804A>62 D<0078EF078000FCEF0FC0B3B3B3B3A4 -BAFCA47E6C18803A537B7F45>70 D<0078EF078000FCEF0FC0B3B3B3A46C171F007E1880 -A2007F173F6C1800A26D5E001F177E6D16FE6C6C4B5A6D15036C6C4B5A6C6C4B5A6C6C4B -5A6C6C6CEC7FC06D6C4A5AD93FF8010790C7FC6DB4EB3FFE6D90B55A010315F06D5D6D6C -1480020F01FCC8FC020113E03A537B7F45>83 D<913801FFE0020F13FC027FEBFF8049B6 -12E04981010F15FC499038003FFED93FF8EB07FFD97FC001007F49486E7E4848C8EA1FE0 -48486F7E48486F7E48486F7E49150148486F7E49167E003F177F90CA7EA2481880007E17 -1FA200FE18C048170FB3B3B3A40078EF07803A537B7F45>I<EE7F80ED0FFF157F4AB5FC -140F143F5C49B6FC13075B4991C7FC4913E090B5C8FC4813F84813E014804848C9FC485A -EA1FF0485A5B485A48CAFCA25A5A5A291B838925>122 D<B4FC13F813FF14C014F814FE -8015C015F081C66C7F01037F9039007FFF80020F7F02037F1400ED3FF06F7EED07FC6F7E -15016F7EEE7F80A2163F161F160F291B818925>I<12F87E7E7EA26C7E6C7E7F6C7EEA0F -FC6C7E6C6C7E14E06C13F86C13FF013F13E06D13FF6DECFF807F13016D7E80140F14016E -7E150FED007F291B839A25>I<EE0F80161F163F167FA2EEFF004B5A15034B5AED1FF84B -5AEDFFE01403020F5B027F5B902603FFFEC7FC017F5BB65A5D15C092C8FC5C14F814C091 -C9FC13F890CAFC291B819A25>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fh lasy10 12 2 -/Fh 2 51 df<127012FCB4FC13C013F0EAF7FCEAF1FF38F07FC0EB1FF0EB07FCEB01FF90 -38007FC0EC1FF0EC07FE913801FF809138007FE0ED1FF8ED03FE923800FF80EE3FE0EE0F -F8EE03FE933800FF80EF3FE0EF0FF8EF03FE943800FF80F03FE0F00FF0A2F03FE0F0FF80 -943803FE00EF0FF8EF3FE0EFFF80DC03FEC7FCEE0FF8EE3FE0EEFF80DB03FEC8FCED1FF8 -ED7FE0913801FF80DA07FEC9FCEC1FF0EC7FC04948CAFCEB07FCEB1FF0EB7FC0D8F1FFCB -FCEAF7FCEAFFF013C090CCFC12FC12703C3A78B54D>3 D<003FB9FC481880BAFCA200F0 -CA1207B3B3ADBAFCA37E393977BE4A>50 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fi cmsy8 8 6 -/Fi 6 85 df<B812C0A32A037A9137>0 D<130C131EA50060EB01800078130739FC0C0F -C0007FEB3F80393F8C7F003807CCF83801FFE038007F80011EC7FCEB7F803801FFE03807 -CCF8383F8C7F397F0C3F8000FCEB0FC039781E078000601301000090C7FCA5130C1A1D7C -9E23>3 D<137813FE1201A3120313FCA3EA07F8A313F0A2EA0FE0A313C0121F1380A3EA -3F00A3123E127E127CA35AA35A0F227EA413>48 D<171017F0160116031607A2160FA216 -1F161B163B1633167316E3A2ED01C316831503EE03F81507150E1601151C1538A2157015 -E0A2EC01C0EC038083EC0700140E92B5FC141F5C5C0270C77E5C495AD82003157E387007 -80D8780FC8127FEAFE3ED8FFFE160449ED3F9C4916F86C4816E06C48ED1FC06C48ED0E00 -0007CBFC36337EAF38>65 D<496C13FC0107EB07FF011F011F1380017F017F13C03B01FF -81E07FE03A039F03801F3A021F0F000F26003F1E13075C4A14C014F84AEB0F804A14004A -131E017F14384A5B4B5A9138000F80033EC7FC9038FE01FF020713E0021F13F849487F91 -38001FFE4848EB03FF1500EE7F8049143FA20003151FA25BA21207491500A2000F153E5B -5E001F1578013C5C01FEEB01C03A3FFFC01F80003ED9FFFEC7FC486C13F8D8703F13C026 -C007FCC8FC2B2F7EAD2E>I<180C183C0107B712F8011F16E0017F16C048B81200270380 -007CC8FC000FC712FC121E123E007E495A127C12FC12F000C0495AC7FCA34A5AA44A5AA4 -4A5AA4143F92C9FCA4147EA3147C14FCA25C1301A25C13035CA2495A5C010ECAFC130836 -347DAE27>84 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fj cmbx12 17.28 43 -/Fj 43 122 df<94387FFF80041FB512F04BB612FC030F81037F6F7E4AB5D8E0077F4A49 -C76C7E020F01F0EC1FF04A01C0147F4A90C8487E4A485C4A484A7F49495C495BA2495B4E -7F49705B5DA3725B725B725B735A96C9FCAB0503B512FEBBFCA6D8000F01E0C7120184B3 -B3AF003FB6D8F803B71280A651657DE45A>12 D<EA01FCEA07FF4813804813C04813E048 -13F0A2B512F8A76C13F0A26C13E06C13C06C13806C1300EA01FC151574942D>46 -D<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007C7FCB3B3B3B2 -007FB91280A6395D74DC51>49 D<913801FFF8023FEBFFC049B612FC010715FF011F16C0 -4916F09026FFFC0180489026C0003F13FE4890C7000F7FD807FC0203148048486E14C048 -486E14E0496F13F0D83FFC816D17F8486C816E6E13FCB57E19FE6E80A219FFA283A36C5B -A26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D13E0A24D13C01980 -94B512004C5B604C5B4C5B4C5B604C5B4C48C7FC4C5A4C5A4B13E04B5B4B5B4CC8FC4B5A -4B5A4B5ADB7FC0143F4B5A4A90C8FC4A5A4A48157EEC0FF04A5A4A5A4A5A4AC912FEEB01 -FC495A4948ED01FC4948150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A440 -5D78DC51>I<92B5FC020F14F8027F14FF49B712E001078249D9C01F13FC90273FFC0003 -7FD97FE001007FD9FF806E7F4848C86C7F6D834801C06E7F487F6E826E80486D82A4805C -A37E4A4A5B6C5B6C5B6C495E011FC85A90C95CA24D5B6194B5FC4C91C7FC604C5B4C13F0 -041F5B047F1380030FB5C8FC020FB512FC17E0178017F8EFFF8091C7001F13E0040313F8 -7013FE706C7E7113C0717F85717F85838585A2711480A31AC0A2EA03FCEA0FFF487F487F -487FA2B57EA21A80A35F1A005C6C604A5C616C494A5B49C8FCD81FF84B5B6C6C4B5B6CB4 -6C91B55A6C01F001035C6C9026FF801F49C7FC6C6C90B65A6D16F0010F16C0010193C8FC -D9003F14F0020149C9FC425E79DC51>I<F01F804E7E187F18FFA25F5F5F5FA25F5F5FA2 -94B5FC5E5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED03F8ED07F0A2ED0FE0ED1FC0ED3F -8016005D15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7FC14FE495A5C1303495A495A495A -5C133F49C8FC13FE485AA2485A485A485A5B121F485A48C9FC12FEBCFCA6CA6CEBC000B1 -037FB8FCA6485E7CDD51>I<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5 -FC92B712801900606060606060604DC7FC5F17F017C04CC8FC16F8D9FC7F90C9FC91CBFC -AEED3FFF0203B512F0021F14FE027F6E7E01FDB712E090B5D8E00F7F9126FC000313FC02 -F001007F02C06E7E91C86C13804917C0496F13E05B6C486F13F090C9FC19F8A219FC8319 -FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC4917F85B -D83FF04B13F013806C6C17E06D4B13C06C6C4B13806C6C92B51200D803FE4A5B6C6C6C49 -5B6C01E0011F5BD97FFE90B55A6DB712C06D5E01074BC7FC010115F0D9003F1480020301 -F0C8FC405E78DC51>I<EE1FFF0303B512E0031F14F892B612FE020381020FD9F8037F4A -9039C0007FC0027F90C7EA1FE0DAFFFC6E7E4901F014074949EC7FF8494914FF49495B49 -90C7487F5B49485C495AA2485BA25A48496E5BA248705B715B4A6F5A4894C8FCA35AA25C -5A923801FFE0030F13FE033F6D7E4B14E002C1B612F8B526C3FE037F913AC7F0007FFF03 -C0011F7FDACF806D7F02DFC76C7F02DE6E7F14FE4A6E7F854A82A24A8283A24A1780A41A -C05CA27EA77EA3806C1980A37E1A007E5F6C6D5EA26C606E4A5B7E6D6C4A5B6E5E6D6C4A -5B6D6D495B6D01E0017F90C7FC01039039FC03FFFE6D90B612F86D5E023F15C0020F92C8 -FC020114FCDA001F1380425E79DC51>I<EA01FCEA07FF4813804813C04813E04813F0A2 -B512F8A76C13F0A26C13E06C13C06C13806C1300EA01FCC8FCB3A4EA01FCEA07FF481380 -4813C04813E04813F0A2B512F8A76C13F0A26C13E06C13C06C13806C1300EA01FC154074 -BF2D>58 D<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80A24D80A34D80A24D80A34D -80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217F804076D80A24D7E040F82 -17E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03016F7FA24C800303845E03 -076F80A24C80030F845E031F6F80A24C81033F845E037F707F93B9FCA292BA7EA24A85A2 -03FCC912070203865D020771805D86020F864B82021F865D87023F864B83027F8692CBFC -874A864A840101875C0103738090381FFFC0B700E092B812FEA66F647BE37A>65 -D<BB12F0F2FF801BF81BFEF3FFC088D800010280C814F8081F7F080713FF748074808675 -7F757FA2757FA28987A289A965A263656365636598B55A505C5091C7FC505B081F5B087F -13F04FB512C096B6C8FC93B812F81BC01BF8F3FF801CE00480C8001F13F8080313FE746D -7E746C7F757F757F89757F757F89871E80A27514C0A41EE087A663A21EC0A3631E80A251 -14006365515B63515B98B55A08035C080F5C97B6C7FCBD5A1CF81CE099C8FC1BF898C9FC -63627AE173>I<942601FFFEED03C0057FD9FFF01407040FB600FE140F047FDBFFC0131F -0303B800F0133F030F05FC137F033F9127F8007FFE13FF92B548C73807FF81020302F002 -0113C34A02809138003FF7021F49C96CB5FC4A01F816074A01E08291B54816004991CB7E -494984494984495B494984498649498490B55A88485C884891CDFC481C7F5C5A1D3F5C5A -A21D1F485BA34899C7FCA35CA2B5FCB07EA280A37EA2F50FC06C7FA37E801D1F6C1D8080 -7E6C6E193F1E006C6E611D7E6D6D19FE6D6D616D1A016D6D4E5A6D6D18076D6D4E5A6D6D -6C4D5A6D6E4D5A6E6D4D5A6E01F84C48C7FC6E01FEEE07FE02076D6CED1FFC6E02F0ED7F -F0020002FE913803FFE0033FD9FFF8013F1380030F91B7C8FC030317FCDB007F16E0040F -1680DC007F02F8C9FC050191CAFC626477E275>I<BB12E0F2FF801BF01BFE757E1CF0D8 -00010280C7000780DF003F13FE08076D7E080180746C7F091F7F7513FC757F09017F878A -767F767F888A767FA2767FA2767FA28A881F80A37614C0A41FE0A5891FF0B09AB512E0A5 -1FC0A4521480A31F006466A2525BA2525BA2525B525BA2525B99B55A5191C7FC515B515B -091F5B097F5B50B512C008075C083F91C8FC0707B512FCBD12F01CC051C9FC1BF81B8008 -E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201F1000F1A01F2007F1B3F1B0F -1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A499C7FC19FEA31801A2180318 -07181F18FF93B6FCA6EEC000181F180718031801A21800A21D7E197EA21DFCA696C81201 -1DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF63631B0F093F13C098B5FC1A07 -97B6FCBEFCA31D80A35F617AE06A>I<BD12E0A41CF0A2D8000102C0C71207F1003F1A0F -1A031A001B7F1B3FF31FF81B0FA21B07A21B03A21B011CFCA31B00A419FCA21C7EA41C00 -A21801A31803A21807180F183FEF01FF93B6FCA6EEC001EF003F180F18071803A21801A3 -1800A896C9FCB3A5B912F8A657617AE065>I<B700E0040FB712808282A28282D800016E -DC000101FCC7FC719338001FC0A283838302FD8014FC6F7F6F7F836F80816F806F80846F -806F8082707F8470807080827080857080708083717F8571807180837180718086718084 -727F727F8772807280847280877280737F85737F1C807314C07314E0857314F07314F81C -FC7413FE867413FF74149F1DDF7414FF868686A287878787A287878787A28888888888A2 -8890261FFFC084B700F8831D7FA21D3F1D1F775A71627AE17E>78 -D<BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F0DF003F7F080F7F747F -747F7414807414C0A27513E0A21DF0A27513F8A41DFCA91DF8A45113F0A21DE0A298B512 -C01D8062501400505B505B083F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04 -C0CCFCB3B3A2B97EA65E627AE16E>80 D<DBFFFEEC01E0020FD9FFE01303027F02FC1307 -49B7EA800F010716E0011FEEF01F49D9C007EBFC3F4948C7383FFE7FD9FFF00207B5FC48 -4914014801806E7E4890C97E48170F4982001F834982123F844848177FA2193FA200FF18 -1FA36D170FA27FA26D17078080806E93C7FC6C13FCECFF8015F86CECFFC016FC6CEDFFE0 -17FE6CEEFFE018F86C17FE6C717E6C846C18F06D836D836D836D83010318807F6D6C17C0 -020F17E01401DA000F16F01500040715F8EE007F050314FC1700183F84060713FE84A200 -7C8300FC83A2197FA3193F7EA21AFC7EA36D18F86D177FA26D18F06D17FF6D18E06D5E6D -18C06D6C4B138002E05D02F84B130002FEED3FFE9026CFFFE0ECFFFC018701FF010713F0 -010191B65A486C6C5E021F93C7FC48010315FC48D9007F14E048020149C8FC476477E25A ->83 D<001FBEFCA64849C79126E0000F148002E0180091C8171F498601F81A0349864986 -A2491B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3 -B3A3021FBAFCA663617AE070>I<B800F8011FB80203B7FCA6D8000F91C9000102E0CAEB -FE006D72F207F0707260230F6D73627072171F6D6A708277173F6D7397C7FC70846B6E72 -197E707217FE6E726170855118016E6870731503636E68704C6E15076E68718451180F6E -DE7E7F607172151F6E06FE61714B7E08016F153F6E4E6C95C8FC71840803616F4D6C177E -7102076F15FE6F66714B7E080F7013016F4D6C5F7185081F18036F4D6C5F71023F701307 -6F94C75F728450180F6F047E6E5E7272131F1AFE6F4C6E5EDEE00171133F6F4C6E93C9FC -06F084070361704B6E157E06F87213FE1907704B6E5DDEFC0F1881704B6E5D06FE19C107 -1F18C3704B6E5DDEFF3F18E7706407BFC9FC07FF18FF704A705CA3704A705CA27099CAFC -4F82A27149705BA37149705BA27149705BA37149705BA37190CB5BA27148725AA3714872 -5A714872CBFCA0637DE1A7>87 D<913807FFFC91B612E0010715FC011F15FF4916C09027 -7FFC003F7FD9FFC0010F7F4801F001037F486D6D7F707F486D6E7E85717FA2717FA36C49 -6E7FA26C5B6C5BEB3F8090C9FCA70303B6FC92B7FC140F147F0103B5EAFE0F010F148001 -3FEBFC004913E048B512804849C7FC485B4813F05A5C485B5A5CA2B5C8FCA45FA25F806C -5E806C16FB6ED903F37F6C6DD907E313FF6C01FCD91FC114FE6C9027FF80FF8114FF0001 -91B5C6FC6C6C4A7F011F02F8131F010302E0010313FE9026003FFECAFC48437BC14E>97 -D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF -038F010014C0DBBFF0011F7FDBFFC001077F93C700017F4B6E7F03F86F7E4B6F7E4B1780 -4B6F13C0A27313E0A27313F0A21BF8A37313FCA41BFEAE1BFCA3611BF8A31BF0611BE0A2 -4F13C06F17804F13006F5D6F4B5A6F4A5B4AB44A5B4A6C6C010F5B9126F83FE0013F13C0 -9127F00FFC01B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E0 -4F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901 -F0010113804901C0010713C049494913E0017F90C7FC49484A13F05C485B5A485BA2485B -7113E05A4A6E13C048701380943800FE0095C7FC5A5CA3B5FCAE7E80A37EA2806C18FCA2 -6C6D150119F86C7F6C17036EED07F06C6D16E06C6D150F6D6DEC1FC06D6DEC7F806D01F0 -ECFF00010701FCEB03FE6D9039FF803FFC010091B512F0023F5D020F1580020102FCC7FC -DA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3A892380FFF804AB512F8 -020F14FE023FECFF8391B712E301039138007FF34901F8EB0FFB011F01E00103B5FC4901 -8013004990C87E4948814849814849814A815A485BA25A5C5AA35A5CA3B5FCAE7EA46C7F -A37EA26C7FA26C6D5DA26C6D5D6C5F6C6D5D6D6C92B5FC6D6C0203806D01C049806D01F0 -D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14F8020314E09127003F -FE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FECFF80023F15E091B712F80103 -D9FE017F499039F0003FFE4901C0EB0FFF4990C76C7F49486E7F49486E7F49486E7F4884 -4849157F48844A153F48845A4A151F855AA3485B721380A3B5FCA291B9FCA41A000280CB -FCA67EA3807EA37E6E160F6CF01F80A26C6D163F6C19006E5E6C6D16FE6C606D6C15016D -6C6CEC07F86D6D4A5A6D01F0EC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A -021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307B51280033F14C0 -4AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F05B49 -13E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01 -C0C8FCB3B3B0007FB612FCA638657CE431>I<DBFFFEEC0FF8020FD9FFE0EBFFFE027FDA -FC037F49B7000F1480010793B6FC49D9F01F02F913C049D9800314814948C7EBFC034948 -027F7F4948EC3FFE4805FF14804A6E6D130048F0803E97C7FC48496E7FA34884A96C60A3 -6C6D4A5BA26C95C8FC6E5C6C5F6D6C4A5A6D6C4A5A90271FFF80035BDBF01F5B4990B65A -4993C9FCD97C7F14FCD9FC0F14E049C649CAFC000191CCFCA37FA212037F6C7E8014E091 -B77E18FEF0FFC06C18F019FC6D17FF6D84866D846D84013F8448BAFC48854801E0C71201 -4890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F007F616D173F003F61 -6D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B -011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A5F7CC051>I<903807 -FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F9227 -81FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA2 -5DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E497E487F4880A248 -80A76C5CA26C91C7FC6C5B6D5A6D5AEB0FE090C9FCAF903807FF80007FB5FCA6C6FC7F7F -B3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3A90503B61280A6DD00 -3FEB8000DE0FF8C7FC4E5A4E5A4E5A4E5ADD03FEC8FC4D5A4D5A4D5A4D5AEFFF804C90C9 -FC4C5A4C5A4C5AEE3FE04C5A4C7E158103837F038F7F039F7F15BF92B57E838415FC4B6C -7F4B6C7F03E080ED801F707F707F8482707F7080A2717F717F8583717F717F8583717F71 -80868495B512F0B7D8E00FECFFF0A64C647BE355>107 D<903807FF80B6FCA6C6FC7F7F -B3B3B3B3ADB712E0A623647BE32C>I<902607FF80D91FFFEEFFF8B691B500F00207EBFF -80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE00 -1F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7 -804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8 -FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691B5 -12F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F -6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A6 -51417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E0107 -01F0010F13E04901C001037F4990C87F49486F7E49486F7E49486F7E48496F13804819C0 -4A814819E04819F04A814819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13 -FCA36C19F8A26C6D4B13F0A26C6D4B13E06C19C06E5D6C19806C6D4B13006D6C4B5A6D6C -4B5A6D01C001035B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E0 -020092C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381 -B612FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D490201 -7F03F86E7F4B824B6F13804B6F13C0A27313E0A21BF0851BF8A2851BFCA47313FEAE4F13 -FCA41BF861A21BF0611BE0611BC06F4B13801B006F92B5FC6F4A5B6F4A5B03FF4A5B7001 -1F5B04E0017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC0403 -13E093CBFCB3A3B712F0A64F5D7BC05A>I<DB0FFFEC01F04AB500E01303020F02F81307 -023F14FE91B7130F01030280EB801F49903AFC001FC03F011F01F0EB0FE04901C0903803 -F07F4949903801F8FF90B5C87E484992B5FC48498184485B48835C48835C5A845C5AA4B5 -5AAE6C7FA47E80A27EA26C6D5D606C7F606C6D5D6C7F6C94B5FC6D6C5C6D6D13076D01E0 -EB0FEF6D01F8EB3FCF6D9039FE01FF8F010190B6120F6D6C14FC021F14F0020314C09139 -003FFE0092C8FCB3A3053FB612FCA64E5D7BC055>I<D90FFFEB0FFCB690383FFF8093B5 -12E04B14F04B14F8923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E15 -7C15F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC0 -42>I<913A3FFF8007800107B5EAF81F011FECFE3F017F91B5FC48B8FC48EBE0014890C7 -121FD80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13 -FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F -16C01303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163F -A2171F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE -02FCEB7FFC019FB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I< -EC07E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8 -FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B -6DEBFF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0 -ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D -6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F01 -8002F0C7FC51427BC05A>I<B700C00103B512FCA6C66C01C0C8381FFE006D6DED07F0A2 -6D6D5E190F6D6D5E191F6D606F153F6D95C7FC6F5DA26D6D157E19FE6D6E5C18016E5E70 -13036E5E701307A26E6D5C180F6E6D5C181F6E6D5C183F6E93C8FC705BA26E6D13FEA26E -6E5A17816FEBC1F817C36F5C17E76F5C17FFA26F5CA26F5CA26F91C9FCA26F5BA36F5BA2 -705AA2705AA2705AA2705A4E417DBF55>I<007FB600C0017FB512F8A6D8001F01F8C700 -03EBE0006D040090C7FC6D6D4A5A6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D -495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9 -FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B -486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC8 -6C7F49486F7F4A6F7F0103707FEB3FFFB600F049B7FCA650407EBF55>120 -D<B700C00103B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D -6D5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E7013 -0F6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7 -F0A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA2 -5F163F94CAFC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F -4B5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1F -E04E5D7DBF55>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fk cmr10 10 36 -/Fk 36 122 df<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A12 -06120E5A5A5A12600A19798817>44 D<121C127FEAFF80A5EA7F00121C0909798817>46 -D<EB01C013031307131F13FFB5FCA2131F1200B3B3A8497E007FB512F0A31C3879B72A> -49 D<EB0FF0EB7FFE48B57E3903E03FE0390F000FF0000E6D7E486D7E486D7E12300070 -6D7E126012FCB4EC7F807FA56CC7FC121CC8FCEDFF00A34A5A5D14035D4A5A5D140F4A5A -4A5A92C7FC147C5C495A495A495A495A91C8FC011EEB01805B5B49130348481400485A48 -5A000EC75A000FB6FC5A5A485CB6FCA321387CB72A>I<EB07F8EB3FFF4913C03901F80F -F03903C007F848486C7E380E0001000F80381FE0006D7FA56C5A6C5AC85A1401A25D4A5A -A24A5A5DEC0F80027EC7FCEB1FFCECFF809038000FE06E7EEC01FC816E7EED7F80A216C0 -A2153F16E0A2121EEA7F80487EA416C049137F007F1580007EC7FC0070ECFF006C495A12 -1E390F8003F83907F00FF00001B512C06C6C90C7FCEB0FF8233A7DB72A>I<1538A3157C -A315FEA34A7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7FEC180FA202387FEC -3007A202707FEC6003A202C07F1501A2D901807F81A249C77F167FA20106810107B6FCA2 -4981010CC7121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C81D80FFC02071380 -B56C90B512FEA3373C7DBB3E>65 D<913A01FF800180020FEBE003027F13F8903A01FF80 -7E07903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE153F1201 -4848151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6D -ED0180A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D -6C5CD91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F13F002 -011380313D7BBA3C>67 D<B648B512FEA30001902680000313006C90C76C5AB3A491B6FC -A391C71201B3A6486D497EB648B512FEA337397DB83E>72 D<B649B5FCA3000101809038 -007FF06C90C8EA3F80053EC7FC173C17385F5F4C5A4C5A4CC8FC160E5E5E5E5E4B5AED07 -80030EC9FC5D153E157E15FF5C4A7F4A6C7E140E4A6C7E4A6C7E14704A6C7E4A6C7E1480 -4A6C7E6F7EA26F7F707EA2707E707EA2707EA2707E707EA2707E707F8484486D497FB601 -1FEBFF80A339397DB841>75 D<B612E0A3000101C0C8FC6C90C9FCB3AD1718A517381730 -A31770A317F0A216011603160FEE1FE0486D13FFB8FCA32D397DB834>I<B712C016F816 -FE000190398001FF806C90C7EA3FC0EE0FE0EE07F0EE03F817FC17FE1601A217FFA717FE -A2EE03FCA2EE07F817F0EE0FE0EE3FC0923801FF0091B512FC16F091C9FCB3A5487FB6FC -A330397DB839>80 D<B612FEEDFFE016F8000190388007FE6C90C76C7EEE3FC0707E707E -707EA2707EA283A65FA24C5AA24C5A4C5AEE3F8004FFC8FCED07FC91B512E05E9138000F -F0ED03F8ED00FE82707E707EA2161F83A583A6F00180A217F8160F1803486D01071400B6 -6D6C5A04011306933800FE0ECAEA3FFCEF07F0393B7DB83D>82 D<D90FF813C090383FFE -0190B512813903F807E33907E000F74848137F4848133F48C7121F003E140F007E1407A2 -007C140312FC1501A36C1400A37E6D14006C7E7F13F86CB47E6C13F8ECFF806C14E06C14 -F86C14FEC680013F1480010714C0EB007F020713E0EC007FED3FF0151F150FED07F8A200 -C01403A21501A37EA216F07E15036C15E06C14076C15C06C140F6DEB1F80D8FBF0EB3F00 -D8F0FE13FE39E03FFFF8010F13E0D8C00190C7FC253D7CBA2E>I<003FB812E0A3D9C003 -EB001F273E0001FE130348EE01F00078160000701770A300601730A400E01738481718A4 -C71600B3B0913807FF80011FB612E0A335397DB83C>I<B6903807FFFEA3000101809038 -007FE06C90C8EA1F80EF0F001706B3B2170E6D150C80171C133F17186D6C14385F6D6C14 -F06D6C5C6D6C495A6D6CEB07806D6C49C7FC91387F807E91381FFFF8020713E09138007F -80373B7DB83E>I<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01 -F06D6C5C5F6D6C5C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E -6C5A16E06E6C5A91380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF913801 -9FF09138038FF8150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A -6D7E49486D7E130391C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80 -010713E0B500E0013FEBFF80A339397EB83E>88 D<EB1FE0EBFFFC3803E03F3907000F80 -390F8007E0486C6C7E13E06E7EA26E7E6C5A6C5AC8FCA4147FEB07FFEB3FE0EBFE00EA03 -F8EA0FF0EA1FC0123F485A90C7FC160C12FEA31401A26C13036CEB077C903980063E1838 -3FC01E3A0FE0781FF03A03FFF00FE03A007F8007C026277DA52A>97 -D<EA03F012FFA3120F1203B0EC1FE0EC7FF89038F1E03E9039F3801F809039F7000FC001 -FEEB07E049EB03F049EB01F85BED00FCA216FEA2167E167FAA167E16FEA216FC15016D14 -F8ED03F07F01EEEB07E001C6EB0FC09039C7801F00903881E07E903800FFF8C7EA1FC028 -3B7EB92E>I<EB03FC90381FFF8090387E03E03901F80070484813F83907E001FC380FC0 -03A2EA1F80123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14067F001F14 -0E6D130C000F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB07F81F277D -A525>I<ED0FC0EC03FFA3EC003F150FB0EB03F8EB1FFF90387E078F9038F801EF3903F0 -007F4848133F4848131FA24848130F123F90C7FC5AA2127E12FEAA127E127FA27EA26C6C -131FA26C6C133F6C6C137F6C6CEBEFF03A01F801CFFF39007C078F90381FFE0FD907F813 -C0283B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F001F0D807E013F8380F -C0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FCA5127EA2127FA26C14 -037F001F14076C6C13060007140E6D131CD801F013386C6C137090387E03E090381FFF80 -903803FC0020277EA525>I<147E903803FF8090380FC1E0EB1F8790383F0FF0137EA213 -FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387FFFF8A31C3B7FBA19>I< -ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00FE03903E007C03A07C003E0 -10000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D485A6D48C7FC38073FFC38 -060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF804815C03A0F80007FE048 -C7EA0FF0003E140348140116F8481400A56C1401007C15F06CEC03E0003F1407D80F80EB -0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC26387EA52A>I<EA03F012FFA3 -120F1203B0EC0FF0EC3FFCECF03F9039F1C01F809039F3800FC0EBF70013FE496D7EA25B -A35BB3A3486C497EB500C1B51280A3293A7EB92E>I<EA0380EA0FE0487EA56C5AEA0380 -C8FCAAEA03F012FFA312071203B3AA487EB512C0A312387EB717>I<EA03F012FFA3120F -1203B1913801FFFCA39138007FC01600157C15705D4A5A4A5A4AC7FC141E1438147814FC -13F1EBF3FEEBF73F01FE7FEBF81F496C7E8114076E7E6E7E811400157E157F811680ED1F -C0486CEB3FF0B500C0B5FCA3283A7EB92C>107 D<EA03F012FFA3120F1203B3B3AD487E -B512C0A3123A7EB917>I<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903B -F1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3 -495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00FF000FFEB3F -FCECF03F9039F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3486C497EB5 -00C1B51280A329257EA42E>I<EB03FE90380FFF8090383E03E09038F800F84848137C48 -487F48487F4848EB0F80001F15C090C712074815E0A2007EEC03F0A400FE15F8A9007E15 -F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C137EC66C13F890 -387E03F090381FFFC0D903FEC7FC25277EA52A>I<3807E01F00FFEB7FC09038E1E3E090 -38E387F0380FE707EA03E613EE9038EC03E09038FC0080491300A45BB3A2487EB512F0A3 -1C257EA421>114 D<EBFF03000313E7380F80FF381E003F487F487F00707F12F0A2807E -A27EB490C7FCEA7FE013FF6C13E06C13F86C7F00037FC67F01071380EB007F141F00C0EB -0FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038C03F801A27 -7DA521>I<1318A51338A31378A313F8120112031207001FB5FCB6FCA2D801F8C7FCB215 -C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347FB220>I<D803F0EB07E0 -00FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77F86D9038E7 -FF8090383F03C790381FFF87903A03FC07E00029267EA42E>I<B53A1FFFE03FFEA3260F -F8009038000FF86C48017EEB03E018C00003023EEB0180A26C6C013FEB0300A36C6CEC80 -06156FA2017E9038EFC00C15C7A2D93F016D5A15830281EBF038D91F831430150102C3EB -F87090260FC6001360A2D907E66D5A02EC137CA2D903FCEB7F804A133FA2010192C7FC4A -7FA20100141E4A130E0260130C37257EA33C>119 D<B538803FFEA33A0FF8000FF06C48 -EB07C00003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F -1360A26D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A2147014 -60A25CA2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C ->121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fl cmbx10 10 6 -/Fl 6 115 df<B500F80403B512F06E5EA26E5ED8007FF1E000A2D97BFF161EA201796D -5DA201786D5DA26E6C5DA36E6C4A5AA26E6C4A5AA26E6C4A5AA26E6C4A5AA26E6C141EA3 -6E6D5BA26E6D5BA26F6C5BA26F6C485AA36F6C485AA26F6C485AA26F6C48C7FCA2923803 -FF1EA36F13BCA26F13F8A2705AA2705AA213FCB500FC6D4848B612F0A2EE0F80EE070054 -397DB85B>77 D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03FF6D6C7F6E7FA26F -7EA26C5A6C5AEA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3F -F85B485A12FF5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC0390FFFFE1F0003EBF8 -0F39003FE0032A257DA42E>97 D<EE7F80ED7FFFA4150381AF903801FF81010F13F1013F -13FD9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312FFAA127FA2 -7F123FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF9011F13E10103 -13012F3A7DB935>100 D<EA01F0EA07FC487EA2487EA56C5AA26C5AEA01F0C8FCA913FF -127FA412077EB3A9B512F8A4153B7DBA1B>105 D<01FEEB7FC000FF903803FFF8020F13 -FE91381F03FFDA3C011380000713780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F -13FFA430257DA435>110 D<9038FE03F000FFEB0FFEEC3FFF91387C7F809138F8FFC000 -075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3A2B512FEA422257EA427> -114 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fm cmr7 7 1 -/Fm 1 50 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fn cmr8 8 37 -/Fn 37 122 df<9138FF807E01079038E1FF80903A1F807FC3C0D93E00EB87E049EBFF07 -4913FE485A00039138FC018049017CC7FCAAB712FCA22703E0007CC7FCB3A6486C13FE3A -7FFF0FFFF0A22B2F7FAE29>11 D<14FF010713E090381F80F090383E003849137C4913FC -485A1203491378153092C7FCA7157CB612FCA23803E000157CB3A5486C13FE3A7FFF0FFF -E0A2232F7FAE27>I<EC0380B3A4B812FCA3C7D80380C7FCB3A42E2F7CA737>43 -D<EB3FC0EBFFF03803E07C48487E48487E497E001EEB0780A2003E14C0A248EB03E0A500 -FC14F0B0007C14E0A3007E1307003E14C0A36CEB0F806C14006D5A3807C03E3803F0FC38 -00FFF0EB3FC01C2D7DAB23>48 D<130C133C137CEA03FC12FFEAFC7C1200B3B113FE387F -FFFEA2172C7AAB23>I<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC05A0060 -EB07E012F000FC14F07E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00147E14 -7C5C495A495A495A495A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0001FB5 -FC5A4814C0B6FCA21C2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC1F8000 -3F14C0A2EB800F1300A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014F0EB00 -FC143FEC1F8015C0140F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C0007013 -1F6C1480001EEB3F00380780FC3801FFF038007FC01C2D7DAB23>I<140EA2141E143EA2 -147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0EA0180120313 -001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2D7EAC -23>I<000CEB0180380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8EB1FC0EB7F -F8380DE07C380F801F01001380000E130F000CEB07C0C713E0A2140315F0A4127812FCA4 -48EB07E012E0006014C00070130F6C14806CEB1F006C133E380780F83801FFE038007F80 -1C2D7DAB23>I<EB03F8EB0FFE90383E0780EBF8013901F007C03803E00FEA07C0EA0F80 -A2391F00078091C7FC123EA2127EA2127CEB0FC038FC3FF0EBF07C38FDC01EB4487E0100 -1380EC07C04814E0A214034814F0A4127CA3127EA2003E14E01407121E001F14C06CEB0F -803907801F003803C03E6C6C5A38007FF0EB1FC01C2D7DAB23>I<EB3F80EBFFF03803E0 -783807C03E48487E48487E003E14801407007E14C0127C00FC14E01403A315F0A5007C13 -07127EA2003E130F7E6C131F3807803B3803E0F33800FFC390383F03E013001407A215C0 -A2140F001E1480003F14005C143E143C003E5B001C5B380E03E03807FF80D801FEC7FC1C -2D7DAB23>57 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC30FCA2EC70FEEC607EA24A -7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2011FB57EA29038180001496D7E -A349147EA201E0147F4980A20001ED1F801203000716C0D80FF0EC3FE0D8FFFC0103B5FC -A2302F7EAE35>65 D<B612FCEDFF803A03F8000FC00001EC03F06F7E6F7E82167E167FA6 -167E16FE5E4B5A4B5AED0FE0ED7F8090B6C7FC16E09039F80003F0ED01FC6F7E167F8217 -80161F17C0A61780163F17005E16FEED03FC0003EC0FF0B712C04BC7FC2A2D7DAC32>I< -B612F815FF3A03F8001FE00001EC03F0ED00F8167E82EE1F80160F17C0EE07E0A2EE03F0 -A217F81601A317FCAA17F8A3EE03F0A217E0160717C0160FEE1F80EE3F00167E5EED03F0 -0003EC1FE0B7128003F8C7FC2E2D7DAC36>68 D<B712FEA23903F800010001EC003E8282 -82A282A3178016011518A293C7FCA31538157815F890B5FCA2EBF800157815381518A217 -60A392C712C0A4160117801603A21607160F163F0003913801FF00B8FCA22B2D7EAC30> -I<B612FCEDFF803A03F8000FE00001EC03F0ED00F882167E167F821780A617005E167E5E -5EED03F0ED0FE090B6128003FCC7FC01F8C9FCB2487EB512F0A2292D7EAC30>80 -D<90383F80303901FFF0703807C07C390F000EF0001E13074813034813011400127000F0 -1470A315307EA26C1400127E127FEA3FE013FE381FFFE06C13FC6C13FF00011480D8003F -13E013039038003FF0EC07F81401140015FC157C12C0153CA37EA215787E6C14706C14F0 -6CEB01E039F78003C039E3F00F0038E07FFE38C00FF01E2F7CAD27>83 -D<B500C090380FFFC0A2D807FCC73803FE006C48EC00F800015E5F6C7E5F6D1401017E5D -A26D4AC7FCA26E5B011F140680010F5CA26D6C5BA26E133801031430A26D6C5BA26E13E0 -01005C8091387E0180A26E48C8FCA21583EC1F86A2EC0FCCA215FC6E5AA26E5AA36E5AA2 -6E5A322E7FAC35>86 D<EAFFE0A3EAE000B3B3B3A7EAFFE0A30B4379B114>91 -D<EAFFE0A31200B3B3B3A712FFA30B437FB114>93 D<13FF000713C0380F01F0381C00F8 -003F137C80A2143F001E7FC7FCA4EB07FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F0012 -7E00FE14065AA3143F7E007E137F007FEBEF8C391F83C7FC390FFF03F83901FC01E01F20 -7D9E23>97 D<EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A003EEB0F -00007E90C7FCA2127C12FCA9127EA215C07E6C130101801380380FC0033907E007003801 -F03E38007FF8EB1FC01A207E9E1F>99 D<15F8141FA214011400ACEB0FE0EB7FF83801F8 -1E3803E0073807C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E13017E -EB8003000F13073903E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27>I<EB -1F80EBFFF03803E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C12FC -A3B6FCA200FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E00F3801 -F03C38007FF8EB1FC01A207E9E1F>I<EB03F0EB0FFCEB3E1EEB7C3F13F8EA01F0A23803 -E00C1400AAB512E0A23803E000B3A6487E387FFF80A2182F7FAE16>I<EA0780EA0FC0EA -1FE0A4EA0FC0EA0780C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EAFFFCA20E2E7EAD14 ->105 D<130FEB1F80EB3FC0A4EB1F80EB0F0090C7FCA8EB07C013FFA2130F1307B3AD12 -30127838FC0F80A21400485AEA783EEA3FF8EA07E0123C83AD16>I<EA07C012FFA2120F -1207ADEC1FFEA2EC0FF0EC07C05D020EC7FC5C5C5C5CEBC3C013C7EBCFE0EBDFF013F9EB -F0F8497EEBC07E143E80816E7E14076E7E816E7E486C487E3AFFFE07FF80A2212E7EAD25 ->I<2607C07FEB07F03BFFC3FFC03FFC903AC783F0783F3C0FCE01F8E01F803B07DC00F9 -C00F01F8D9FF8013C04990387F000749137EA249137CB2486C01FEEB0FE03CFFFE0FFFE0 -FFFEA2371E7E9D3C>109 D<3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8496C -7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>I<EB1FE0EB7FF83801F03E3803 -C00F3907800780390F0003C04814E0003EEB01F0A248EB00F8A300FC14FCA9007C14F8A2 -6CEB01F0A26CEB03E0A2390F8007C03907C00F803901F03E0038007FF8EB1FE01E207E9E -23>I<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC49137E49133E49133F -ED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038 -C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>I<380781F838FF87FEEB8E -3FEA0F9CEA07B813B0EBF01EEBE000A45BB0487EB5FCA2181E7E9D1C>114 -D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7EB41300EA7FF06CB4 -FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C133CA26C13 -7838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A21207121FB5 -12F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7FA81B>I< -3AFFFC07FF80A23A0FF003FC000003EB01F0000114C06D485A000091C7FCEB7C06EB3E0E -6D5A14B8EB0FB0EB07E013036D7E497E1307EB067C497EEB1C1F01387FEB700F496C7E6E -7ED803C07F00076D7E391FE003FC3AFFF007FFC0A2221D7F9C25>120 -D<3AFFFC01FFC0A23A0FE0007E000007147C1538000314306D137000011460A26C6C5BA2 -EBFC01017C5BEB7E03013E90C7FCA2EB1F06A2148EEB0F8CA2EB07D8A2EB03F0A36D5AA2 -6D5AA2495AA2130391C8FC1278EAFC06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C -25>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fo cmmi12 12 16 -/Fo 16 122 df<EB01FCD907FF15E0011F13C0017F6DEB01C090B56C1480486E13032603 -FE0715002707F000FC5B01C0017C130648C76C130E001E021E130C001C80003C6E131C00 -381618486E1338EE8030006002011370176000E016E0C86D5A150016C15F16C394C7FC16 -E316E71666166E166CA2167C1678A3167016F05EA35EA31501A25E1503A44BC8FCA35D15 -0EA45DA45DA333417EAB33>13 D<1730A317701760A317E05FA316015FA3160394C8FCA3 -5E1606A3160E160C013E1607D9FF80ED1F802603C3C0011CEB3FC0260703E01318260601 -F0157F000E173F001C1538D818030230131F0038170F0030170700701570D86007026013 -035CA2D8E00F02E0148000C049491301EA001F4A150303011500013F5C14006049010314 -06017E91C7FC180E180C01FE49141C4901061418183860030E1460030C14E04D5A4D5A03 -1C49C7FC0318130E017E5D5F6D01385B90261F80305BD90FC0EB03C0D907F0010FC8FC90 -3901FE707C9039003FFFF002031380DA0060C9FC15E05DA314015DA3140392CAFCA35C14 -06A3140E140C3A597DC43F>32 D<EC07FE91387FFFC049B512F0010714F890391FF003FE -49C7127E0178143E01E0140848481400485A90C9FC5A1206A412077EEB803E3901E7FFC0 -39007FC1E014FFD801E75BD80380C8FC48C9FC120E5A5A5A1260A212E05AA4ED01806C14 -036C150000705C0078140E003E143C391FC003F86CB512E000035CC649C7FCEB1FF0272F -7EAC2E>34 D<F101C04F7E190186A21900861A781A7C86A286747EA2747E747E87747E74 -7E1B7E87F31F80F30FC0F307F0007FBC12F8BD12FEA27E571C7BB262>42 -D<137EEA01FF1207EA0FFEEA1FC0EA3F00127C127812F85AA67E1278127C123FEA1FC0EA -0FFEEA07FF1201EA007E10187BAE1B>44 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A -0A78891B>58 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113 -80120313005A1206120E5A5A5A12600B1D78891B>I<F001C0F007E0181FF07FC0943801 -FF00EF07FCEF1FF0EF7FC04C48C7FCEE0FFCEE3FF0EEFFC0030390C8FCED0FF8ED3FE0ED -FF80DA03FEC9FCEC1FF8EC7FE0903801FF80D907FECAFCEB1FF0EB7FC04848CBFCEA07FC -EA1FF0EA7FC048CCFCA2EA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FE903801FF -809038007FE0EC1FF8EC03FE913800FF80ED3FE0ED0FF8ED03FF030013C0EE3FF0EE0FFC -EE01FF9338007FC0EF1FF0EF07FCEF01FF9438007FC0F01FE01807F001C03B3878B44C> -I<127012FCB4FCEA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FE903801FF809038 -007FE0EC1FF8EC03FE913800FF80ED3FE0ED0FF8ED03FF030013C0EE3FF0EE0FFCEE01FF -9338007FC0EF1FF0EF07FCEF01FF9438007FC0F01FE0A2F07FC0943801FF00EF07FCEF1F -F0EF7FC04C48C7FCEE0FFCEE3FF0EEFFC0030390C8FCED0FF8ED3FE0EDFF80DA03FEC9FC -EC1FF8EC7FE0903801FF80D907FECAFCEB1FF0EB7FC04848CBFCEA07FCEA1FF0EA7FC048 -CCFC12FC12703B3878B44C>62 D<15C0A54A7EA84A7EA500FCEE0FC0D87FE0913801FF80 -D81FFF91383FFE0000079039FBF7FFF8000190B612E0D8003F92C7FC010F14FC010314F0 -010014C0023F90C8FC6E5AA24A7E4A7FA29138FF3FC0ECFE1F49486C7EECF80749486C7E -49486C7EECC0004948137C91C7123C49143E011E141E4980013880496E7E016014013230 -81B031>I<91B87E19F019FC02009039C00007FF6F489038007FC003FFED1FE0737E93C8 -6C7E737E19014A707E5D1A7FA20203EF3F805DA21BC014075DA3140F4B17E0A3141F4B17 -C0A3143F4B167FA3027F18804B16FFA302FF180092C95A62A24917034A5F19076201034D -5A5C4F5A620107173F4A5F4FC7FC19FE010F4C5A4A15034E5AF00FE0011F4C5A4A4B5A06 -FFC8FC013FED01FCEF0FF84AEC3FE001FF913803FF80B848C9FC17F094CAFC4B447CC351 ->68 D<EC0FC0EC7FF0903901F8381C903907E01C7E90380FC00E90393F0007FE496D5A13 -FE485A49130100035D485A120F491303001F5DA2485A1507007F5D5BA2150F00FF5D90C7 -FCA2151F5E5AA2033F1330EE00701760A24B13E017C015FE007E130102031301003ED907 -3E1380003F010E13036C011C14006C6C486C5A3A07C0F00F0E3A01FFC007FC3A007F0001 -F02C2D7CAB33>97 D<01F8D903FCEC7F80D803FED91FFF903803FFE0D8071F903B7C0FC0 -0F81F83E0E0F80E007E01C00FC001C9026C3C0030178137C271807C700D9F0E0137E02CE -902601F1C0133E003801DCDAFB80133F003001D892C7FCD90FF814FF0070495C0060495C -A200E04949485CD8C01F187E4A5C1200040715FE013F6091C75BA2040F14014960017E5D -1903041F5D13FE494B130762043F160E0001060F130C4992C713C0191F4CED801C00031A -1849027E1638F2003004FE167000071A60494A16E0F201C0030192380F0380000FF18700 -494AEC03FED80380D90070EC00F84F2D7DAB55>109 D<01F8EB03FCD803FEEB1FFFD807 -1F90387C0FC03B0E0F80E007E03A0C07C3C003001CD9C7007F001801CE1301003801DC80 -003013D8EB0FF800705B00605BA200E0491303D8C01F5D5C12001607013F5D91C7FCA216 -0F495D137E161F5F13FE49143F94C7FC187000014B136049147E16FE4C13E0000317C049 -150104F81380170300071700495D170EEE781C000FED7C3849EC1FF0D80380EC07C0342D -7DAB3A>I<02FCEB07E0903A03FF801FFC903A0F07C0781E903A1C03E0E01F903A3801F1 -C07FD9700013804901FB13FF4848EBFF00495B000316FE90C71438484A13001206140100 -0E5C120CC7FC14035DA314075DA3140F5DA3021F143817305D1770023F1460121E003F16 -E0267F807FEB01C0026F148000FF01EF1303D901CFEB070000FE903887C00E267C03835B -3A3C0F01E0783A1FFC00FFE0D803F0EB3F80302D7EAB37>120 D<133ED9FF8014E02603 -C3C0EB03F0380703E0380601F0000E1507001C16E0EA180312380030150F007016C0EA60 -075C161FD8E00F158000C05BEA001F4A133F1700133F91C7FC5E49147E137EA216FE01FE -5C5BA215015E485AA215035EA200001407150F6D5C017C131F153F6D13FF90391F03CFC0 -903807FF8F903801FC0F90C7121F5EA2153F93C7FCD807C05BD81FE0137E5DA24848485A -4A5A01805B39380007C00018495A001C49C8FC6C137C380781F83803FFE0C66CC9FC2C40 -7DAB30>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fp cmbx12 14.4 46 -/Fp 46 122 df<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FC -DAFFF0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190 -C7FC715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03 -B612C0A542547DD34B>12 D<151E153E157E15FCEC01F8EC07F0EC0FE0EC1FC01580143F -EC7F0014FE1301495A5C1307495AA2495A133F5C137FA2495AA24890C7FCA25A5BA21207 -A2485AA3121F5BA3123FA25BA3127FA55B12FFB3A3127F7FA5123FA37FA2121FA37F120F -A36C7EA21203A27F7EA26C7FA26D7EA2133F80131F6D7EA26D7E1303806D7E1300147FEC -3F80141F15C0EC0FE0EC07F0EC01F8EC00FC157E153E151E1F7973D934>40 -D<127012F8127C127E7EEA1FC06C7E6C7E12037F6C7E6C7E7F6D7E133F806D7EA26D7E80 -130780A26D7EA26D7EA215807FA215C0A2EC7FE0A315F0143FA315F8A2141FA315FCA514 -0F15FEB3A315FC141FA515F8A3143FA215F0A3147F15E0A3ECFFC0A21580A25B1500A249 -5AA2495AA25C130F5C495AA2495A5C137F49C7FC5B485A485A5B1207485A485A48C8FC12 -7E127C5A12701F7979D934>I<B712F0AB240B7F9F2D>45 D<EC3FFE0103B512E0010F14 -FC013F14FF90B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F -48488001F01680486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C9 -14E05EA218C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE0 -4B5A4A5B4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A49 -5AD91F80140749C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79 -CD43>50 D<177C17FE1601A216031607160FA2161F163F167F16FFA25D5D5DA2ED0FBF15 -1FED3F3F157E157C15F81401EC03F0EC07E015C0140FEC1F80EC3F00143E5C14FC495A49 -5A5C495A130F495A91C7FC133E137E5B485A5B485A1207485A5B48C8FC5A127E5ABA12C0 -A5C96C48C7FCAF020FB712C0A53A4E7CCD43>52 D<ED0FFF92B512E0020780021F14FC91 -397FFE03FE903A01FFF0007F4901C0EB3F804990C7121F4948EC7FC0494814FF49484913 -E049485B01FF5C485BA2485B5AA2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC -5AA21508913801FFF8020713FFB54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013 -804A15C0A24A15E07013F05C18F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E0 -6C6D15C07E6E4913806C6D15006D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C001 -0092C7FC023F13FC020713C0364F7ACD43>54 D<171F4D7E4D7EA24D7EA34C7FA24C7FA3 -4C7FA24C7FA34C7FA24C80A283047F80EE7E3F04FE8016FC830301814C7E03038116F083 -0307814C7E030F8116C083031F814C7E033F8293C7FC844B82037E8003FE825D84020183 -4B800203835D840207834B80020F8392B8FCA24A83A24A8492C9FC854A84027E8202FE84 -5C850101854A820103855C850107854A82010F855C011F83D9FFFC84B600F8020FB712E0 -A55B537BD266>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F73 -7F070F7F737F878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A06 -0713F892B812E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87 -737F747E1C807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C00 -4F5B19074F5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<9326 -01FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003 -EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F88249 -49824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181F -A3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C -1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC -4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0 -020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19 -FCF1FF801AF01AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E -747F747F86747F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D -80A2631D00A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96 -B512C0060F91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8 -C7000114C0F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01 -A497C7FC1701A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B -3EA31B7CA395C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101 -FF1907191F0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF0 -007F191F190785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A31703 -1707170F177F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A -517CD055>I<B812F8A5D8000701F8CAFCB3B3A91A7CA41AFC1AF8A51901A31903A21907 -1AF0190FA2191F193F197F19FF180360183F4DB5FCBB12E0A546527CD151>76 -D<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA202EF6DEF03CFA202 -E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D173CA26F6C1778A26F6C17F0A26F -6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA26F6D5DA3706C5DA2 -706C5DA2706D495AA2706D495AA2706D495AA3706D49C7FCA2706D131EA2706D5BA2716C -5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101FFC8FCA3715BA2715BA2725AA2 -725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD180>I<B600F893B7FC81818182 -D800076E9239003FFC00F307E082828202EF7F8214E702E37F02E18002E080836F7F816F -7F6F7F6F7F83816F806F80707F707F8482707F707F707F85827080717F717F717F858371 -7F717F7114801AC0837213E07213F07213F87213FC1AFE847213FF7214877214C71BE773 -13F7857313FF8585A28585858686A286868686A286861B7FD93FFC183FB7171FA21B0F1B -07755A60527CD169>I<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F -01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F -49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83481B804A83481BC0 -A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0 -A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B -6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC -90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0565479D265>I<BA -FC19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313C0070F13E01BF085 -7313F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C04F13004E -485A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C>I<B912F0 -F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F737F85737F87A273 -7FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092B8C9FC19 -F819E019F89226F0000313FE9439007FFF80061F7F727F727F86727F8486A2727FA887A7 -1D1C1D3E8785A275137E73157C7315FC736D13F8B86C6DEBF801739038FE07F07390B512 -E0736C14C0080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B500F85B010702 -FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48 -488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C0 -6C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82 -010F821303010082021F16801400030F15C0ED007F040714E01600173F050F13F08383A2 -00788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01 -FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC -48010F14F048D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49 -C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC -1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>I<B700FC017FB600FE91B612 -F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D7161876F1C1F6D7196C7FC6F8373 -606D1E3E6F836D7160876F1CFC6D666F4B801F016D66704A806E525A88704A17076E059F -5F70021F80080F160F6E6570023F806EDC3E074CC8FC8870027E5F6EDC7C03163E7002FC -804F6C167E6E1C7C700101814F6C16FC6E745B70010317016E4C6D5D060716C00580496D -14036F63DDC00F16E04F6D14076F07F05BDDE01F170F6F92C76C5D1DF8DDF03E6E141F6F -98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F4A6E147C1DFFDDFFF06E14FC6F62 -A24E816F62A270496F5BA24E817061A295C97E7061A270487090CAFCA37048705AA24D16 -01040360A27048705A84537DD18B>87 D<EC7FFF0107B512F0013F14FE90B77E48D9E00F -7F2703FE000113F0486C6D7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5A -C9FCA6037FB5FC020FB6FC91B7FC01071487013FEBF0074913803901FFFC004813F0485B -485B485B4890C7FC5A5BA2485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C -9026C003E0EBFFE06C9027F81FC07F13F06C90B5487EC64B7E011F01FC010713E0010101 -E090C8FC3C387CB641>97 D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEB -FFC092B612F002F301017F913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A -824A6E7FA2727EA285A28584A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B -6F495BDACFC04990C7FCDA87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01 -FCC8FC90C7000313C041547BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F -9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F13 -8091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C0 -7E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390 -B55A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3 -A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5 -FC49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA2 -6C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF -6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F -13FC49B6FC010715C04901817F903A3FFC007FF04948EB1FF8D9FFE06D7E488248496D7E -48814A15805A4890C76C13C0A24817E0A282485A18F0A312FFA390B8FCA318E049CAFCA5 -127FA46C7EA26C17E0EF01F06C7F17036C17E06C6D14076C6DEC0FC06CEE1F806D6CEC3F -00D93FFC14FE6D6CEB03FC903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F0 -34387CB63D>I<ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB -807F49903800FFFC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526 -007FF8C8FCB3B3A7007FB512FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010F -DAFC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990 -387FF01F4890C7D83FF813E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA2 -6C6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314 -F02607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C -836D828448B9FC12074848C700031480D81FF8EC003F4848150748486F13C083485A83A5 -6D5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01 -FE011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0 -B5FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F8092391FE07FFC92393F001FFE03 -7C8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A5 -42537BD24B>I<137F497E487F487F487F487FA76C5B6C5B6C5B6C5B6DC7FC90C8FCADEB -3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I<EB3FF0B5FCA51203C6FCB3A54CB5 -12F8A59339003FFE00EF1FE04D5A4D5A4DC7FCEE01FCEE07F84C5A4C5AEE3F8004FFC8FC -4B5A4B5AED07F0ED1FE0153F4B7E4B7E02F37F02F77F91B5FC82039F7F030F7F4A7EDAF8 -037F02F0806F7F6F7F167F707E83707F707F8284707F707F82717E84717E1980B6D8F003 -B6FCA540537CD247>107 D<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>I<D9 -3FF0D91FFCEDFFE0B591B500C0010713FE030302F0011F6D7E030F6E017F8092271FE07F -FCD9FF037F922A3F001FFE01F8007F0003027C9126FF03E080C602F06DD90780137FDAF1 -E0038FC77FDAF3C0159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6 -D8F807B6D8C03FB512FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F0030F80 -92391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502FFC7 -FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B612C0 -010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F -4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F -18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F -90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A -3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0 -EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060 -A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE07 -5B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<9126 -01FFE0EB0780021F01F8130F91B500FE131F0103ECFF80010F9039F03FC03F499039800F -E07F903A7FFE0003F04948903801F8FF4849EB00FD4849147F4A805A4849805A4A805AA2 -91C87E5AA35B12FFAC6C7EA37EA2806C5EA26C6D5CA26C6D5C6C6D5C6C93B5FC6C6D5B6D -6C5B6DB4EB0FEF010F9038C07FCF6D90B5120F010114FED9003F13F80203138091C8FCB1 -040FB61280A5414D7CB547>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1F -F89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8 -EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>I<903903FFF00F013FEBFE1F90B7FC -120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F091 -C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15C0 -1300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D14 -1F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F80714 -8048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F13 -3F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015 -806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801 -FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E3 -13F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7 -FC42377BB54B>I<B600F00107B5FCA5C601F8C8EA7FC06EED3F00A26D6C153E187E013F -167C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B -027F143E6F137E023F147C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5C -A26E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5A6F5A40357DB447>I<B6D8E07FB5D8C0 -03B512C0A5000101F0C701F0C7381FF8006E027FED07E06C715DA26E023F150F017F705D -6E181F013F7092C7FC177F6E606D92B5143E6F177E6D71137C5E03C001F315FC6D02036E -5B03E001E114016D05E05B160703F001C014036D020F02F05B03F8EB807FF1F8076D021F -5E03FCD9003F130F027F04FC5B5EDBFE3E90381FFE1F023F017E93C8FCDBFF7C010F5B6E -EEFF3E16FC4C6D13FE6E5F4C7F6E5FA24C7F6E5F4C7F6E5FA24C147F6E5F93C8123F6F5E -A2033E6FC9FC5A357DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC -03F86D6D495A6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E -6C485A6EEB8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F -92B5FCDA01FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D -7F4A6D7F495A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357E -B447>I<B600F00107B5FCA5C601F8C8EA7FC06EED3F00A26D6C153E187E013F167C6E15 -FC6D5E6F13016D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B027F143E -6F137E023F147C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA26E91C8 -FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E -486C137C486C13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C -13F000035BC690CBFC404D7DB447>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fq line10 10 10 -/Fq 10 84 df<1C0C1C1E1C3E1C7C1CF8F301F0F303E0F307C0F30F80F31F001B3E6363 -505A505A505A505A50C7FC1A3E62624F5A4F5A4F5A4F5A4FC8FC193E61614E5A4E5A4E5A -4E5A4EC9FC183E60604D5A4D5A4D5A4D5A4DCAFC173E5F5F4C5A4C5A4C5A4C5A4CCBFC16 -3E5E5E4B5A4B5A4B5A4B5A4BCCFC153E5D5D4A5A4A5A4A5A4A5A4ACDFC143E5C5C495A49 -5A495A495A49CEFC133E5B5B485A485A485A485A48CFFC123E5A5A5A1260575782D453> -0 D<1718173C177C177817F817F0160117E0160317C016071780160F17005E161E163E16 -3C167C167816F85E15015E15035E15075E150F93C7FC5D151E153E153C157C157815F85D -14015D14035D14075D140F92C8FC5C141E143E143C147C147814F85C13015C13035C1307 -5C130F91C9FC5B131E133E133C137C137813F85B12015B12035B12075B120F90CAFC5A12 -1E123E123C127C127812F85A12602E5782D42A>I<1C0C1C3E1CFEF303FCF30FF8F33FE0 -F3FF80973803FE00F20FF8F23FE0F2FF80DF03FEC7FCF10FF8F13FE0F1FF80DE03FEC8FC -F00FF8F03FE0F0FF80DD03FEC9FCEF0FF8EF3FE0EFFF80DC03FECAFCEE0FF8EE3FE0EEFF -80DB03FECBFCED0FF8ED3FE0EDFF80DA03FECCFCEC0FF8EC3FE0ECFF80D903FECDFCEB0F -F8EB3FE0EBFF80D803FECEFCEA0FF8EA3FE0EA7F8000FECFFC12F81260572E82AB53>8 -D<1C0C1C3E1C7EF301FCF303F8F30FE0F31FC0F37F001BFEF203F8505AF21FC0505A08FE -C7FC4F5AF107F04F5AF13F804FC8FCF001FC4E5AF00FE04E5A067FC9FC18FEEF03F84D5A -EF1FC0EF7F8005FECAFCEE03FCEE07F0EE1FC04C5A04FECBFC4B5AED07F04B5AED3F804B -CCFCEC01FC4A5AEC0FE04A5A027FCDFC14FEEB03F8495AEB1FC0495A01FECEFC485AEA07 -F0485AEA3F8048CFFC12FC5A1260573B82B853>17 D<F10180F103C019071A80190FF11F -00193E193C197C614E5A6118034E5A4E5A96C7FC60183E60187818F84D5A4D5A6017074D -5A4DC8FC171E173E5F5F5F16014C5A4C5A5F160F4CC9FC163E163C167C5E4B5A5E15034B -5A4B5A93CAFC5D153E5D157815F84A5A4A5A5D14074A5A4ACBFC141E143E5C5C5C130149 -5A495A5C130F49CCFC133E133C137C5B485A5B1203485A485A90CDFC5A123E5A127812F8 -5A1260425782D43E>19 D<126012F07E127C7E7E6C7E6C7E6C7E6C7E6C7E137C7F7F6D7E -6D7E6D7E6D7E6D7E147C80806E7E6E7E6E7E6E7E6E7E157C81816F7E6F7E6F7E6F7E6F7E -167C8282707E707E707E707E707E177C8383717E717E717E717E717E187C8484727E727E -727E727E727E197C8585737E737E737E737E737E1A7C8686747E747E747E747E747E1B7C -8787F30F80F307C0F303E0F301F0F300F81C7C1C3E1C1E1C0C575782D453>64 -D<126012F07E1278127C123C123E121E121F7E7F12077F12037F12017F12007F1378137C -133C133E131E131F7F801307801303801301801300801478147C143C143E141E141F8081 -1407811403811401811400811578157C153C153E151E151F818215078215038215018215 -00821678167C163C163E161E161F821780160717C0160317E0160117F0160017F8177817 -7C173C17182E5782D42A>I<126012F812FEEA7F80EA3FE0EA0FF8EA03FEC66C7EEB3FE0 -EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE9238 -00FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FE943800FF80F03FE0F00F -F8F003FE953800FF80F13FE0F10FF8F103FE963800FF80F23FE0F20FF8F203FE973800FF -80F33FE0F30FF8F303FCF300FE1C3E1C0C572E82AB53>72 D<126012F87E127F6C7EEA0F -E06C7EEA01FC6C7EEB3F806D7EEB07F06D7EEB00FE147FEC1FC06E7EEC03F86E7EEC007F -6F7EED0FE06F7EED01FC6F7EEE3F80707EEE07F0EE03FCEE00FEEF7F80EF1FC0EF07F071 -7EEF00FE187FF01FC0727EF003F8727EF0007F737EF10FE0737EF101FC737EF23F80747E -F207F0747EF200FE1B7FF31FC0F30FE0F303F8F301FCF3007E1C3E1C0C573B82B853>81 -D<126012F07E1278127C7E7E7E7F6C7E6C7E12017F6C7E137C133C133E7F6D7E1307806D -7E6D7E130080147C80141E141F6E7E6E7E1403816E7E6E7E1578157C818181826F7E6F7E -1501826F7E167C163C163E82707E160783707E707E160083177C83171E171F717E717E17 -0384717E717E1878187C84848485727E727E180185727E197C193C193E85F10F8019071A -C01903F10180425782D43E>83 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fr cmtt12 12 70 -/Fr 70 127 df<00085B003EEB07C0007FEB0FE0A24814F0A26C14E0B3A2007E1307003E -14C0A20008EB01001C1E75BD33>34 D<D803E01438D80FF8147C486C14FEA2486C13015E -EA7F7FD87E3F13035E00FEEB8007D8FC1F5CA2150F5EA2151F5ED8FE3F133F007E01005B -A2D87F7F137FD83FFE91C7FC5D6C485BA2380FF801D803E05BC7FC14035D14075DA2140F -5D141F5DA2143F5DA2147F92C8FC5C5CA213015C13035CA20107147C4A48B4FC4B138013 -0F4A4813C0131F9139C00FEFE016C7013F011F13F002801383137F1400A25B5BA2120149 -14C70003020F13E04914EF923807FFC01207496D1380A26C486D13006C48EB007C2C4D7D -C433>37 D<EB03E0EB0FF8497E497E497E90B5FC9038FE3F803801FC1F13F8000380EBF0 -0FA7141F5D91393F87FFE001F84913F00001137F147E14FE9026F9FC0713E001FF903801 -F8006C13F8ECF00302E05B1507D97FC05B14809038FF000F485D148048141F4801C05B5A -391FEFE03FD83FC791C7FC903887F07FD87F03137EECF8FE6D6C5A12FEEB00FF6E5AA291 -393FF00180EE03C091391FE007E0140F6CEB1FF06C133FEC7FF8903980FFFE0FD83FC301 -FF13C0D9FFFC13FF6C496C13806C497E6CD9E00F13006C90388007FE3A00FE0001F82C3F -7DBD33>I<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA613FE13FCA21201EA -03F8A2EA07F0120FEA1FE0EA7FC0EAFF8013005A5A12700F1E6EBC33>I<140FEC3F8014 -7F14FF491300495AEB07F8495A495A495A495A49C7FC5B12015B485A12075B120F5B121F -5BA2123F5BA2127F90C8FCA45A5AAD7E7EA47F123FA27F121FA27F120F7F12077F12036C -7E7F12007F6D7E6D7E6D7E6D7E6D7EEB03FE6D7E6D1380147F143FEC0F00194D6FC433> -I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7E6D7E133F80131F6D7E8013078013 -03801301A2801300A28080A41580143FAD147F1500A45C5CA213015CA213035C13075C13 -0F5C495A133F5C137F49C7FC485A485A485A485AEA3FE0485A485A90C8FC5A1278194D78 -C433>I<14F0497EA8007015E000F8EC01F000FE140700FF140F01C1133F01F113FF263F -F9F913C0000FB61200000314FCC614F06D5B011F1380D907FEC7FC90381FFF80017F13E0 -90B57E000314FC000F14FF263FF9F913C026FFF1F813F001C1133F0101130F00FE140700 -F814010070EC00E000001500A86D5A242B79B333>I<140E141F4A7EB0003FB7FC481680 -B812C0A36C16806C1600C7D83F80C7FCB06EC8FC140E2A2B7CB333>I<EA07C0EA0FF0EA -1FF8123F13FCA213FEA2121F120F1207EA007E13FEA213FC1201EA03F81207EA0FF0EA7F -E012FF13C013005A12780F196E8A33>I<003FB612FC4815FEB8FCA36C15FE6C15FC2807 -7BA133>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6C8A33>I<167016F8 -ED01FCA2150316F8150716F0A2150F16E0151F16C0153F1680157F1600A25D5D14015D14 -035D14075DA2140F5D141F5D143F5D147F92C7FCA25C5C13015C13035CA213075C130F5C -131F5C133F5CA2137F91C8FC5B5B12015B12035BA212075B120F5B121F5B123F5BA2127F -90C9FC5A5AA2127C1238264D7AC433>I<14FF010313C0010F13F0497F497F497F9038FF -81FF3A01FE007F804848EB3FC049131F4848EB0FE0A24848EB07F0A24848EB03F8A24848 -EB01FCA348C812FEA4007E157E00FE157FAE6C15FF6C15FEA46D1301003F15FCA26D1303 -001F15F8A26C6CEB07F0A26C6CEB0FE06D131F6C6CEB3FC0A26CB4EBFF806C018113006D -B45A6D5B6D5B6D5B010313C0010090C7FC283F7BBD33>I<EB01E0497EA21307A2130FA2 -131F133F137F13FF1203123F5AEAFFF713E71387EA7E071200B3B3A2003FB512FE488016 -80A216006C5C213E76BD33>I<EB03FF011F13E0017F13FC48B57E48ECFF804815C0260F -FE0313E03A1FF0007FF049EB1FF84848130F49EB03FC127F90C7EA01FE4814005A6C15FF -167FA3127E123CC9FCA216FF16FEA2150116FC150316F81507ED0FF0ED1FE0153F16C0ED -7F80EDFF004A5AEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495AEB07F8EB1FF0495A495A -495A4890C8FC4848143E4848147FEA0FF0485A48B7FCB8FCA37E6C15FE283E7BBD33>I< -903801FFC0010F13F8013F13FE90B67E48814881489038807FF03A0FFC000FF801F06D7E -484813036F7EA21500A26C5A6C5AC9FC15015EA215034B5A150F4B5A4B5A913803FFC001 -03B55A4991C7FC5D8116C06D8090C76C7EED0FF8ED03FC6F7E6F7E821780163FA2EE1FC0 -A3123C127EB4FCA2163F1780167F6C16006D5C6D495A6C6C1303D81FF8EB0FFC3A0FFF80 -7FF86C90B55A6C5D6C15806C6C91C7FC010F13FC010113C02A3F7CBD33>I<0007B612F0 -4815F85AA316F001C0C8FCB0ECFFC001C713F801DF7F90B6FC168016C0028013E09039FC -001FF001F0EB0FF849130749EB03FC6C4813016CC713FEC9FCA216FF167FA41218127EA2 -B415FF16FEA24814016C15FC6C14036DEB07F86D130F6C6CEB1FF06C6CEB7FE09039FE03 -FFC06CB612806C150000015C6C14F8013F13E0010390C7FC283E7BBC33>53 -D<127CB8128017C0A4178048C813004B5A4B5A007C4A5AC8485A5E151F4B5A4B5A93C7FC -5D5D4A5A14035D14075D140F5D141F5D143F5DA24AC8FCA25C5CA213015CA3495AA41307 -5CA5130F5CAA6D5A6D5A2A3F7CBD33>55 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80 -EA1F00C7FCB3A3121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2B6CAA33>58 -D<EA07C0EA0FE0EA1FF0EA3FF8A5EA1FF0EA0FE0EA07C0C7FCB3A3EA07C0EA0FE0EA1FF0 -EA3FF8A213FCA3121F120F12071200A2120113F81203EA07F0120FEA1FE0127FEAFFC013 -80130012FC12700E396EAA33>I<161C167E16FF15035DED1FFEED3FFCEDFFF84A13E002 -0713C04A1300EC3FFEEC7FF849485A4913C0010F5B4948C7FCEB7FFCEBFFF000035B4813 -80001F90C8FCEA3FFC485AEAFFE05B7FEA7FF86C7E6CB4FC00077F6C13E0C67FEB7FFCEB -1FFE6D6C7E01037F6D13F06D6C7EEC3FFEEC0FFF6E13C0020113E06E13F8ED3FFCED1FFE -ED07FF811500167E161C28337BB733>I<003FB7FC481680B812C0A36C16806C1600CBFC -A9003FB7FC481680B812C0A36C16806C16002A177CA933>I<1238127EB4FC13C07FEA7F -F86C7E6CB4FC00077F6C13E0C67FEB7FFCEB1FFE6D6C7E01037F6D13F06D6C7EEC3FFEEC -0FFF6E13C0020113E06E13F8ED3FFCED1FFEED07FF815DED1FFEED3FFCEDFFF84A13E002 -0713C04A1300EC3FFEEC7FF849485A4913C0010F5B4948C7FCEB7FFCEBFFF000035B4813 -80001F90C8FCEA3FFC485AEAFFE05B90C9FC127E123828337BB733>I<EC1F804A7E4A7E -A34A7EA314F901017FA501037FA214F0A201077FA4ECE07E010F137FA449486C7EA54948 -6C7EA4017F80EC000FA291B5FCA290B67EA43A01FE0007F8491303A4000381491301A300 -0781491300D87FFF90380FFFE0B56C4813F06E5AA24A7E6C496C13E02C3E7DBD33>65 -D<007FB512F8B7FC16C082826C813A03F8000FFCED03FE15016F7E82A2EE3F80A7EE7F00 -A25E4B5AA2ED07FCED1FF890B65A5E1680828216F89039F8000FFCED01FE6F7EEE7F8016 -3F17C0161FA2EE0FE0A7161F17C0A2163FEE7F8016FF4B1300150F007FB65AB75A5E16E0 -5E6C4AC7FC2B3D7DBC33>I<91391FE00780DAFFFC13C00103EBFF0F010F148F4914FF5B -90387FF81F9038FFC00748497E4848487E497F485A167F485A49143F121F5B003F151F5B -A2127F90C8EA0F8093C7FCA25A5AAD7E7EA36DEC0F80003FED1FC0A27F121F7F000F153F -6D15806C7E167F6C6CECFF007F3A01FF8003FE6C6D485A90397FF81FF86DB55A6D5C6D5C -010391C7FC010013FCEC1FE02A3F7CBD33>I<003FB512F04814FCB7FC826C816C813A03 -F8007FF0ED1FF8ED07FC15036F7E8281EE7F80A2163F17C0161FA217E0160FA4EE07F0AD -160F17E0A4161F17C0163FA21780167FEEFF00A24B5A15034B5AED1FF8ED7FF0003FB6FC -4815C0B75A93C7FC6C14FC6C14F02C3D7EBC33>I<003FB712E04816F0B8FCA27E7ED801 -FCC71207A8EE03E093C7FCA6151F4B7EA490B6FCA69038FC003FA46FC7FC92C8FCA817F8 -EE01FCA9003FB7FC5AB8FCA27E6C16F82E3D7EBC33>I<003FB712E04816F0B8FCA27E7E -D801FCC71207A8EE03E093C7FCA7151F4B7EA490B6FCA69038FC003FA46FC7FC92C8FCB1 -383FFFF8487FB57EA26C5B6C5B2C3D7DBC33>I<003FB612804815C0B712E0A26C15C06C -1580260003F8C7FCB3B3AD003FB612804815C0B712E0A26C15C06C1580233D78BC33>73 -D<387FFFF8B57E80A25C6C5BD801FCC9FCB3B3A3EE03E0EE07F0A9007FB7FCB8FCA46C16 -E02C3D7DBC33>76 D<D83FF8EC1FFC486CEC3FFE486CEC7FFFA2007F16FE6C6CECFFFC00 -0716E001EF14F7EC8001A39039E7C003E7A3ECE007A201E314C7A2ECF00FA201E11487EC -F81FA201E01407A2ECFC3FA2EC7C3EA2EC7E7EEC3E7CA3EC1E78EC1FF8A2EC0FF0A3EC07 -E0EC03C091C7FCAED83FFCEC3FFC486CEC7FFEB591B5FCA26C48EC7FFE6C48EC3FFC303D -7FBC33>I<D87FFC90381FFFE0486C4913F07FA36C6D6C13E00003913800FC0013F780A2 -13F380A3EBF1F0A38013F0A280A2147C147EA2143E143FA2801580A3140F15C0A2140715 -E0A2140315F0A21401A215F81400A3157CA3153C153EA2151E151F387FFF80B5EAC00FA3 -15076C496C5A2C3D7DBC33>I<003FB512FC48ECFF80B712E016F86C816C813A01FC000F -FF030313801500EE7FC0163FEE1FE0160FA217F01607A6160F17E0A2161FEE3FC0167FEE -FF801503030F130090B65A5E5E16E0168003FCC7FC01FCC9FCB3383FFFE0487FB57EA26C -5B6C5B2C3D7EBC33>80 D<007FB57EB612F815FE81826C812603F8007FED3FF0ED0FF815 -076F7E1501A26F7EA74B5AA215034B5A150FED3FF0EDFFE090B65A5E93C7FC5D8182D9F8 -007F153F6F7E150F821507AA173E177FA416F8030313FF267FFFC014FEB538E001FF17FC -81EE7FF86C49EB3FF0C9EA0FC0303E7EBC33>82 D<D907FE137890393FFFC07C90B5EAF0 -FC4814FC000714FF5AEBFC03391FF0007F4848133F0180131F007F140F90C71207481403 -5AA21501A46CEC00F86C15007F7F6C7E7FEA1FFE380FFFE06C13FF6C14F06C14FC6C6C13 -FF011F1480010314C0D9003F13E0020313F09138003FF8ED0FFC1507ED03FE1501150016 -FFA2007C157F12FEA56C15FF16FE7FED01FC6D130301F0EB07F801FC130F9039FF807FF0 -91B512E016C000FC1580013FEBFE00D8F80F5BD8780013E0283F7BBD33>I<003FB712F8 -4816FCB8FCA43AFE000FE001A8007CED00F8C71500B3B3A40107B512C049804980A26D5C -6D5C2E3D7EBC33>I<273FFFE001B5FC486D481480B56C4814C0A26C496C14806C496C14 -00D801FCC7EA0FE0B3B3A36D141F00005EA26D143F6D5DA26D6C49C7FC6E5B6D6C485AEC -F00390390FFC0FFC6DB55A6D5C6D5C6D6C1380DA1FFEC8FCEC07F8323E80BC33>I<D87F -FF903803FFF8B56C4813FCA46C496C13F8D807F09038003F806D147F00031600A36D5C00 -015DA46C6C495AA46D13036D5CA3EC8007013F5CA3ECC00F011F5CA46D6C485AA46D6C48 -5AA4010391C7FC6E5AA30101137EA2ECFCFEA201005BA5EC7FF8A46E5AA26E5A6E5A2E3E -7EBC33>I<D83FFCEC3FFC486CEC7FFEB591B5FCA26C48EC7FFE6C48EC3FFCD80FC0EC03 -F0A76D1407000716E0A86C6CEC0FC0A2EC07E0EC0FF0EC1FF8A3000116809039F83FFC1F -EC3E7CA4EC7E7EA200001600A2EC7C3E01FC5CECFC3FA3ECF81F017C143EA590397DF00F -BEA3013D14BC90393FE007FCA5ECC003011F5C6D486C5A303E7FBC33>I<007FB512C0B6 -12E0A415C048C8FCB3B3B3ABB612C015E0A46C14C01B4D6CC433>91 -D<1238127C12FEA27E7E7F123FA27F121F7F120F7F12077F1203A27F12017F12007F7F80 -133FA280131F80130F801307801303A28013018013008080A281143F81141F81140F8114 -07A28114038114018114008181A21680153F16C0151F16E0150F16F01507A216F8150316 -FC1501A2ED00F81670264D7AC433>I<007FB512C0B612E0A47EC7120FB3B3B3AB007FB5 -FCB6FCA46C14C01B4D7DC433>I<EB7FFE0003B512C04814F048804880819038E007FF02 -007F6C486D7E6C48133FC8121F82150FA4EC0FFF0103B5FC131F90B6FC120348140F4813 -80381FFC00EA3FE0485A5B48C7FC5AA47E151F6C6C133F6D13FF263FF8077F6CB712F06C -16F86C14F76C14E3C61401903A3FF8003FF02D2B7BAA33>97 D<EA3FFC487E12FFA2127F -123F1200AC4AB4FC020F13C0023F13F04A13FC91B57E90B7FCDAFE071380DAF80013C002 -E0137F4AEB3FE04A131F91C7EA0FF016074915F81603A217FC1601A81603A217F87F1607 -17F06E130F6EEB1FE0163F6EEB7FC09139F801FF80DAFE07130091B55A495C6E5B6E13E0 -D97E0F138090263C03FEC7FC2E3D7FBC33>I<ECFFFC0107EBFF80011F14C0017F14E090 -B612F05A48EB800F3807FE00D80FF8EB07E049EB03C0484890C7FC485AA2485A90C9FCA3 -5A5AA77E7EA27FA26C6CEB01F06DEB03F8121FD80FF813076D14F06CB4131F6C9038E07F -E06C90B5FC6C15C06D1400011F5B010713F8010013C0252B79AA33>I<ED7FF84B7E5CA2 -80157F1501ACEB01FF010F13C1013F13F14913FD90B6FC5A4813803907FE003FD80FF813 -1F4848130F491307484813035B007F140190C7FCA25AA25AA87E7E15037F003F14077F6C -6C130F6D131F6C6C133F6D137F3907FF81FF6C90B612F06C02FD13F86C02F913FC013F13 -E1010F018113F8902601FE0013F02E3D7DBC33>I<ECFF80010713F0011F13FC017F13FF -90B612804815C048018013E03907FE001FD80FF8EB0FF049EB07F848481303485A49EB01 -FC127F90C7FC16FE150012FEB7FCA516FC48C9FC7E7EA27F123F6D147C001F15FE7F6C6C -1301EA07FC6DEB07FC3A03FFC03FF86C90B5FC6C6C14F06D14C0010F14800103EBFE0090 -38007FF0272B7BAA33>I<ED3FF0913801FFFC020713FE141F4A13FF5CECFFC04913004A -137E494813184A1300A8003FB612F84815FCB7FCA36C15F8260003F8C7FCB3AD003FB612 -804815C0A46C1580283D7DBC33>I<EE1FC0D901FEEBFFF090260FFFC313F8013F13F749 -90B512FC90B7FC4815F148010313812607FC00EB80F849017F1360484890383FC0004913 -1FA2001F8149130FA66D131F000F5DA26D133F6C6C495A6D13FF2603FF0390C7FCECFFFE -485C5D5DD80FCF13C0D9C1FEC8FC01C0C9FCA36C7E7F6CB512FEEDFFC06C15F800078148 -15FF4816809026E0000713C0D83F80EB007F48C8EA1FE0160F007E150700FE16F0481503 -A56C1507007FED0FE06D141FD83FE0EC7FC0D81FF8903801FF80270FFF801F13006C90B5 -5A6C5DC615F0013F14C0010F91C7FC010013F02E437DAB33>I<EA3FFC487E12FFA2127F -123F1200AC4AB4FC020713C0021F13F0027F7F91B57E90B6FC9138FE03FEECF801ECF000 -02C07F825C91C7FCA35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FFA26C496C13FE6C -496C13FC303D7FBC33>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCAA383FFFF8487F -A47EEA0001B3AD007FB612C0B712E016F0A216E06C15C0243E78BD33>I<EA7FF8487EA4 -127F1200AC4AB512C04A14E04A14F0A26E14E06E14C09139000FF0004B5A4B5A4B5A4BC7 -FC4A5A4A5A4A5A4A5A4A5A4A5A4A5A4A7E01FD7F90B5FC81ECF3F8ECE3FC14C1EC80FEEC -007F5B496D7E6F7E82150F6F7E6F7E8215016F7E3B7FFFF80FFFF0B56C4813F817FCA217 -F86C496C13F02E3D7EBC33>107 D<383FFFFC487FB5FCA27E7EC7FCB3B3AD003FB612F8 -4815FCB712FEA26C15FC6C15F8273D7ABC33>I<267FC0FC137E3BFFE3FF01FF8001EF01 -877F90B500CF7F15DF6C91B57E0007010F1387496CEB03F801FC13FE9039F803FC01A201 -F013F8A301E013F0B3A53C7FFE0FFF07FF80B548018F13C0A46C486C01071380322B80AA -33>I<393FFC01FF267FFE0713C000FF011F13F0027F7F007F90B57E6CB6FCC69038FE03 -FEECF801ECF00002C07F825C91C7FCA35BB3A43B3FFFF80FFFFC486D4813FEB56C4813FF -A26C496C13FE6C496C13FC302B7FAA33>I<EB01FE90380FFFC0013F13F0497F48B512FE -48804801031380EBFC00D80FF0EB3FC04848EB1FE049130F003F15F0491307007F15F890 -C71203A2007E140100FE15FCA86C14036C15F8A36D1307003F15F06D130F6C6CEB1FE06D -133F6C6CEB7FC06C6CEBFF80EBFF036C90B512006C5C6C6C13F86D5B010F13C0D901FEC7 -FC262B7AAA33>I<393FFC01FF267FFE0F13C000FF013F13F04A13FC007F90B57E6CB7FC -C6D9FE071380DAF80013C002E0137F4AEB3FE04A131F91C7EA0FF016074915F81603A217 -FC1601A81603A217F87F160717F06E130F6EEB1FE0163F6EEB7FC09139F801FF80DAFE07 -130091B55A495C6E5B6E13E0020F1380DA03FEC7FC91C9FCB0383FFFF8487FB57EA26C5B -6C5B2E417FAA33>I<02FF137C0107EBE0FE011F13F0017F13FC90B512FE4814FF4813C0 -3907FE003FD80FF8131F4848130F49130748481303A24848130190C7FCA2481400A25AA8 -7E7E15017F003F14037F6C6C13076D130F6C6C131F6C6C137F9038FF81FF6CEBFFFE6C14 -FC6C6C13F86D13F0010F13C0903801FE0090C8FCB092387FFFFC92B512FEA46F13FC2F41 -7CAA33>I<3A7FFF8003FEB539C01FFF80037F13E002C1B5FC02C314F06C13C73A001FCF -FE0FECDFF09139FFC007E092388003C04AC8FCA25C5C5CA25CA45CB1007FB512FEB7FCA4 -6C5C2C2B7DAA33>I<90381FFE0F90B5EACF80000314FF120F5A5A387FF003EB800000FE -C7127F153F5AA36CEC1F006C91C7FCEA7FC0EA3FFEEBFFF06CEBFF80000714F06C14FCC6 -6C7F010F7FD9003F1380020113C09138003FE0007C140F00FEEC07F01503A27EA27F6D13 -076DEB0FE06D131F9039FC01FFC090B61280A200FDECFE0000FC5CD8F83F13F0D8780790 -C7FC242B79AA33>I<EB03C0497E130FAA003FB612FC4881B7FCA36C5D26000FE0C8FCB3 -A3161FEE3F80A5167F6E14006D6C485A9138FE07FE6DB5FC5E6D5C6D14E0023F1380DA07 -FCC7FC29377EB633>I<D83FFCEB1FFE486C497E00FF5CA2007F80003F800000EC007FB3 -A75EA25D6D5B5D90387FC03F91B612FC6D15FE6DEC7FFF6D13FE6D01F813FE01009038C0 -3FFC302B7FAA33>I<3B3FFFC00FFFF0486D4813F8B56C4813FCA26C496C13F86C496C13 -F0D801F8C7EA7E006D14FE00005DA26D1301017E5CA2017F13036D5CA2EC8007011F5CA2 -ECC00F010F5CA36D6C485AA3ECF03F010391C7FCA26E5A0101137EA2ECFCFE01005BA214 -FF6E5AA36E5AA26E5A6E5A2E2B7EAA33>I<3B7FFF8007FFF8B56C4813FC6E5AA24A7E6C -496C13F8D80FC0C7EA0FC06D141F00071680A56D143F00031600A3EC0FC0EC1FE0A23A01 -F83FF07EA3EC7FF8147CA20000157C9039FCFCFCFCA3ECF87CA2017C5C017D137EECF03E -A2017F133FA26D486C5AA3ECC00F90390F8007C02E2B7EAA33>I<3B3FFFC07FFF80486D -B512C0B500F114E0A26C01E014C06C496C13803B00FE000FE000017F495AEB3F804B5A6D -6C48C7FC90380FE07E903807F0FEECF1FC903803FBF8EB01FF6D5B5D6E5A143F6E5A143F -814A7E14FF903801FBF0ECF9F8903803F1FCEB07E0157E90380FC07F011F6D7E90383F80 -1F02007F496D7E01FE6D7E484813033B7FFFC03FFFE0B56C4813F0A46C496C13E02C2B7D -AA33>I<3B7FFF801FFFE0B56C4813F06E4813F8A24A6C13F06C496C13E0D803F8C7EAFC -00000114015E7F000014036D5C137EA2017F495A7FA26E485A131FA26D6C485AA214E001 -0749C7FCA214F01303157EEB01F8A2157C010013FC14FC5D147C147DEC3FF0A36E5AA36E -5AA2141F5DA2143F92C8FCA3147EA214FE003F5B1301387F83F81387EB1FF0EBFFE06C5B -5C6C90C9FC6C5AEA03F02D417DAA33>I<000FB712804816C05AA317800180C713004B5A -4B5A4B5A4B5A6CC7485AC8485A4B5A4BC7FC4A5A4A5A4A5A4A5A4A5A4A5A4A5A4AC8FC49 -5A495A495A495A495A495A495A49C7EA0F804848EC1FC0485A485A485A485A485A48B7FC -B8FCA46C16802A2B7DAA33>I<1238127C12FEB3B3B3B3127C1238074D6AC433>124 -D<013E13079039FF800F8000039038C01FC048EBE03F48EBF07F489038F9FF803A7FE7FF -FE00D8FF835B01015B486C5B007CEB7FC00038011FC7FC220C78BC33>126 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fs cmti12 12 62 -/Fs 62 125 df<4CB414FC040F9039C003FF80933B3F81F00783C0933B7C00781F01E04C -9038F83F03923C01F001FC3E07F003030103EB7E0F922607E007EB7C1F19FCDB0FC001F8 -14E0943A03F0F80FC0DD01E1EB0780031FD9000190C7FC5E180361153F93C7FCA2180761 -5D157EA2180F6115FE91B912F0A3DA00FCC7D81F80C7FC1401A25D183F96C8FCA214035D -A260187E14075DA218FE60140F5DA2170160141F5DA2170360143F92C7FCA21707605C14 -7EA2170F6014FE5CA24D5AA2495A95C9FC5F5C0103153E177E001CEBE038007F02FE137C -26FF07E114FC02C15C4C5AEB0F8100FE903901FC03E0D8F81F9038F007C03B701E00E00F -80D8783CD9F83ECAFCD81FF0EB3FF8D807C0EB0FE04C5A83C53C>11 -D<EF7FF80407B5FC93391FC00FC093393E0001E004FCEB00F04B4813014B4813075E0307 -140FA24B5A19E0031FEC03804C90C7FCA3153F93C9FCA45D157EA415FE91B8FCA260DA00 -FCC7127E020115FE4B5CA317016014035D170360A214074B130760A3020F140F4B5CA317 -1F021F5D5DA2053F13E01801023F16C092C7FCA2EF7F03057E13805C027E15071900173E -180E02FEEC1E1E4AEC1F1CEF07F8EF01E094C8FC495AA35C1303A2001C5B127FEAFF075C -A2495A00FE90CBFCEAF81FEA701EEA783CEA1FF0EA07C03C5A83C537>I<EFFFC00407EB -F83F93381F807E93397E000F7F04F8EB1F7E4B48EB3FFE0303147F4B4813FF19FC4B5A18 -7E183D4B48EB01F8A31803033F15F093C7FCA218074B15E0A2157E180F19C0A215FE91B8 -FC1980A2DA00FCC7121F0201153F4B1500A3600203157E5DA218FE6014075D170160A214 -0F4B130360A3021F14074B5CA3050F1338023FEDC07892C71470A3051F13F04AED80E014 -7E188119C0170F02FEED83804AEC0787F0C700EF01FEEF0078494892C7FCA4495AA3001C -5BEA7F0700FF5BA25C130F00FE90CBFCEAF81E12F0EA783CEA1FF0EA07C0405A83C539> -I<141EEC3F80ECFFC0A35B1580A315005BA25CA35C1307A25CA35C130FA25CA35C131FA2 -5CA349C7FCA3133EA35BA31378A35BA35BA35B90C8FCA9120FEA3FC0127FA212FFA35B6C -C8FC123C1A4776C61E>33 D<13F0EA03F8EA07FC120FA6EA03CCEA001C1318A213381330 -A2137013E013C0120113801203EA0700120E5A5A5A5A5A0E1D6BC41E>39 -D<13F0EA03FC1207A2EA0FFEA4EA07FCEA03CCEA000C131C1318A2133813301370136013 -E0EA01C013801203EA0700120E5A5A5A5A5A0F1D7A891E>44 D<007FB5FCB6FCA214FEA2 -1805789723>I<16C01501A215031507ED0F80151F153F157F913801FF005C140F147F90 -3807FCFEEB0FF0EB0700EB00015DA314035DA314075DA3140F5DA3141F5DA3143F5DA314 -7F92C7FCA35C5CA313015CA313035CA313075CA2130FA2131F133FB612FCA25D224276C1 -32>49 D<ED03FCED1FFF037F13C0913801FE07913903F001E091380FE00091381F800391 -383F000F027E131F5C495A495A010715C04948EB07004A90C7FC131F495AA249C9FCA213 -FE1201A2485AEC07F09038F83FFC0007EBF81F9039F9C00F803A0FFB8007C0EBF70001FE -80491303001F815B5B82485AA3491307127F5BA2150F5E90C7FCA2151F485DA25A4B5AA2 -007E5D157F93C7FC5D5D4A5A003E495A003F5C4A5A6C6C485A000FEB3F80D9C0FEC8FC38 -03FFFC6C13F038007F802B4475C132>54 D<ED1FE0EDFFFC020313FF913907E03F809139 -1F800FC091393E0007E04A13034A14F049481301495AA2495AA2495AA21603011F15E0A2 -16076E14C0EE0F806E131F6EEB3F006E133E6D6C5B02FF13F0ED83E06DEBC7C06D01FFC7 -FC6D13FC6D5B6E7E6E7E91B57ED901EF7FD907837FEB1F01D93E007F496D7E49133F4848 -131F4848130F48486D7E48481303001F140190C7FC5A003E1400007E5D127CA2150100FC -5D5A4B5AA24B5A127C4B5A4BC7FC6C143E003F5C6C495A390FC003F03907F01FC06CB5C8 -FCC613FCEB1FE02C4477C132>56 D<ED3FC0EDFFF0020313FC91380FE07E91383F803F4A -487E02FC14800101140F494814C0495A495AA2495A133F4A14E0137FA249C7FC161FA248 -16C05BA2163F12035BA2167F17804914FFA34B130012015D5D00005D6D130F017C131D15 -3B6DEB73FC90381F03E3903907FF83F8903801FC0790C7FC5E150F5E151F5E4B5AA24BC7 -FCA2001C14FE007F5C48495A4A5A14074A5A485C00F8013FC8FC48137E5C387C07F0383F -FFE06C1380D803FCC9FC2B4476C132>I<130FEB1FC0133FEB7FE013FFA214C0EB7F8014 -00131E90C7FCB3A5120FEA3FC0127FA212FFA35B6CC7FC123C132B76AA1E>I<EF038017 -07A24D7EA2171FA2173F177FA217FFA25EA2EE03BF1607173F160F160E161C841638171F -167016F016E0ED01C0A2ED0380A2ED0700A2150E151E151C5D845D170F5D14015D14035D -4AC7FC92B6FC5CA2021CC7120F143C14385CA24A81A249481407A2495A130791C8FC130E -131EA25B137C13FC00014C7ED807FE151FB500E00107B512F8A219F03D477BC648>65 -D<DC0FF8130393B513070307ECC00F923A1FF803E01F923A7FC000F81E4BC7EA7C3EDA03 -FCEC3C7EDA0FF0EC1EFE4A48EC0FFC4A4814074AC8FC02FE1503494816F8130349481501 -495A494816F0495A137F5C01FF17E04890C9FCA2485A19C0485AA2485A95C7FC121F5BA2 -123F5BA3127F5BA4485AA41838A218781870A218F0007F5F1701601703003F5F17076D4B -C7FC001F160E171E6C6C5D6D5D00075E6C6C4A5A6DEC07C06C6C4A5AD8007F023EC8FCD9 -3FC013FC90391FF807F00107B512C0010191C9FC9038001FF0404872C546>67 -D<91B712F818FF19C00201903980003FF06E90C7EA0FF84AED03FCF000FE4B157FA2F13F -800203EE1FC05DF10FE0A214074B16F01907A2140F5D1AF8A2141F5DA2190F143F5D1AF0 -A2147F4B151FA302FF17E092C9123FA34918C04A167F1A80A2010317FF4A1700A24E5A13 -074A4B5A611807010F5F4A4B5A181F61011F4C5A4A4BC7FC18FE4D5A013F4B5A4A4A5A4D -5A017FED3FC005FFC8FC4AEB03FE01FFEC1FF8B812E094C9FC16F845447AC34A>I<91B9 -12C0A30201902680000313806E90C8127F4A163F191F4B150FA30203EE07005DA314074B -5D190EA2140F4B1307A25F021F020E90C7FC5DA2171E023F141C4B133C177C17FC027FEB -03F892B5FCA39139FF8003F0ED00011600A2495D5CA2160101034B13705C19F061010791 -C8FC4A1501611803010F5F4A150796C7FC60131F4A151E183E183C013F167C4A15FC4D5A -017F1503EF0FF04A143F01FF913803FFE0B9FCA26042447AC342>I<91B91280A3020190 -2680000713006E90C8FC4A163FA24B81A30203160E5DA314074B151E191CA2140F5D1707 -5F021F020E90C7FC5DA2171E023F141C4B133CA2177C027F5CED800392B5FCA291B65AED -00071601A2496E5A5CA2160101035D5CA2160301075D4A90CAFCA3130F5CA3131F5CA313 -3F5CA2137FA313FFB612E0A341447AC340>I<DC0FF81306DCFFFE130E03079038FF801E -923A1FF807E03E923A7F8001F03CDA01FEC7EA787CDA03F8EC3CFCDA0FF0141D4A48EC1F -F8DA3F80140F4AC8FCD901FE1507494816F05C01071603495A494816E0495A137F5C01FF -17C04890C9FC5B12031980485AA2485A95C7FC121F5BA2123F5BA3127F5BA4485A043FB5 -12E0A39339001FF80060A360A2007F163F60A3177F003F5F7F121F17FF6D93C7FC000F5D -6C6C5C7F6C6C4A5A6C6CEC1F3E6C6C143ED93FC0EBF81E903A1FF007F01C0107B5EAC00C -010149C9FC9038003FF03F4872C54B>I<91B6D8803FB512E0A302010180C7387FE0006E -90C86C5A4A167FA24B5EA219FF14034B93C7FCA26014074B5DA21803140F4B5DA2180714 -1F4B5DA2180F143F4B5DA2181F147F92B75AA3DAFF80C7123F92C85BA2187F5B4A5EA218 -FF13034A93C8FCA25F13074A5DA21703130F4A5DA21707131F4A5DA2170F133F4A5DA201 -7F151FA24A5D496C4A7EB6D8803FB512E0A34B447AC348>I<027FB512E091B6FCA20200 -EBE000ED7F8015FFA293C7FCA35C5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3 -147F5DA314FF92C8FCA35B5CA313035CA313075CA3130F5CA3131F5CA2133FA25CEBFFE0 -B612E0A25D2B447BC326>I<91B66C90383FFFF8A302010180C7000F13006E90C8EA07FC -4A17F01AC04B4B5A4FC7FC193C02035E4B5DF003E0F0078002074BC8FC4B141E6018F802 -0F4A5A4BEB03C04D5A4DC9FC021F141E4B137C17F04C5A023F495A4B487E161F163F027F -497EED80FFED81EF923883CFF89138FF8F8FED1E07033C7F157849EBF00303E07F15C092 -380001FF495A5C707FA213074A6E7EA2173F010F825C171F84131F4A140F84A2013F6F7E -5CA2017F6F7EA24A4A7E496C4A7FB66C90B512FC5E614D447AC34B>75 -D<91B612F0A25F020101C0C7FC6E5B4A90C8FCA25DA314035DA314075DA3140F5DA3141F -5DA3143F5DA3147F5DA314FF92C9FCA35B5CA3010316104A1538A21878010716705C18F0 -18E0010F15015C18C01703011F15074A1580170FA2013FED1F004A5C5F017F15FE16034A -130F01FFEC7FFCB8FCA25F35447AC33D>I<91B56C93387FFFC08298B5FC02014DEBC000 -6E614A5FA203DF4C6CC7FC1A0E63912603CFE05D038F5F1A381A711407030FEEE1FCA2F1 -01C3020FEE0383020E60F107036F6C1507021E160E021C60191CF1380F143C023804705B -A2F1E01F0278ED01C091267003F85EF003801A3F02F0ED070002E0030E5CA24E137F1301 -02C04B91C8FC606201036D6C5B02805F4D5A943803800113070200DA07005BA2050E1303 -495D010E606F6C5A1907011E5D011C4B5CA27048130F133C01384B5C017892C7FC191F01 -F85C486C027E5DD807FE027C4A7EB500F00178013FB512C0A216705A447AC357>I<91B5 -6C49B512E0A28202009239000FFC00F107F0706E5A4A5F15DF705D1907EC03CFDB8FF892 -C7FCA203875D02077F0303150EA270141EEC0F01020E161C826F153C141E021C6E133816 -7F1978023C800238013F1470A27113F00278131F02705E83040F130102F014F84A5E1607 -EFFC0313014A01035C17FE1807010314014A02FF90C8FCA2705B0107168F91C8138E177F -18DE5B010EED3FDC18FCA2011E151F011C5EA2170F133C01386F5A1378A201F81503486C -5EEA07FEB500F01401A2604B447AC348>I<EE1FF84BB5FC923907F01FC092391F8003F0 -92397E0001F8DA01F86D7EDA03E0147EDA0FC0804A48EC1F804AC813C0027E150F4A16E0 -49481507494816F01307495A494816F8013F16035C137F49C9FC4917FC120112035B1207 -491607120FA25B121F19F849160F123FA34848EE1FF0A3183F19E0485A19C0187FA2F0FF -80A219005F604D5AA2007F4C5A4D5AA24D5A003F5F4D5A6D4BC7FC001F5E4C5A6C6C5DEE -03F06C6C4A5A0003ED1FC06C6C4A5A6C6C027EC8FC017EEB01F890393F8007F090390FE0 -3F80902603FFFEC9FC9038007FE03E4872C54B>I<91B712F018FEF0FF80020190398000 -7FE06E90C7EA1FF04AED07F818034B15FCF001FE1403A24B15FFA21407A25DA2140FF003 -FE5DA2021F16FC18074B15F8180F023F16F0F01FE04B15C0F03F80027FED7F0018FE4BEB -03FCEF0FF002FFEC7FC092B6C7FC17F892CAFC5BA25CA21303A25CA21307A25CA2130FA2 -5CA2131FA25CA2133FA25CA2137FA25C497EB67EA340447AC342>I<EE1FF84BB5FC9239 -07F01FC092391F8007F092397E0001F8DA01F86D7E4A48147EDA0FC0804A4815804AC8EA -1FC0147E4AED0FE013014948ED07F0495A495A011F17F8495A5C137F49C9120319FC485A -000317075B12075B120FA25B121FF00FF85B123FA34848EE1FF0A449EE3FE012FF19C018 -7FA2198018FF190090C95A604D5AA26C4C5A6D5E170F03F85C003FD907FE495ADA0F0749 -5ADA1C0349C7FC3A1FC0380180023014FE000F0170EB81FCD9E060EB83F00007913800C7 -E03B03F0E001CFC02601F8C0EBFF80D800FC4AC8FCD97EE013F890393F6007F090270FF0 -3FC013300103B5FC9026007FE11470DA0003146018E0A2170170485A170770485A923807 -F83F93B5C7FCA26F5B5FA25F6F5B6F13C0043FC8FC3E5972C54B>I<91B77E18F818FE02 -0190398001FF806E90C7EA3FC04AED1FE0F00FF04BEC07F8180319FC14034B15FEA31407 -5DA3020FED07FC5DA2F00FF8141F4B15F0F01FE0F03FC0023F16804BEC7F0018FEEF03F8 -027F4A5A4BEB1FC04CB4C7FC92B512F891B612E092380003F8EE00FE177F496F7E4A6E7E -A28413034A140FA2171F13075CA2173F130F5CA24D5A131F5CA3013F170E5CA2017FEE80 -1E191C4A163C496C1638B66C90383FC070051F13F094380FE1E0CA3803FF80943800FE00 -3F467AC347>I<DB03FE130C92390FFF801C037FEBE03C9238FE03F8913A03F0007C7C4A -48EB3EF84A48131F4A48130F4AC7FC027EEC07F05C1703495A18E0495AA213074A15C0A3 -130F1880A28094C7FCA280806D7EECFFE015FC6DEBFF806D14F016FC6D14FF023F80020F -801403DA003F7F150703007F163F161F160FA21607A3120716031607A2485EA2120E160F -001E5EA2001F4B5AA2484BC7FC6D143E167E6D5C007F4A5A6D495AD87CF0495AD8787CEB -1F8027F03F807FC8FC90381FFFFCD8E00713F039C0007F80364879C537>I<48B912F85A -A2913B0007FC001FF0D807F84A130701E0010F140349160148485C90C71500A2001E021F -15E05E121C123C0038143F4C1301007818C0127000F0147F485DA3C800FF91C7FC93C9FC -A35C5DA314035DA314075DA3140F5DA3141F5DA3143F5DA3147F5DA314FF92CAFCA35B5C -A21303A21307497E007FB612C0A25E3D446FC346>I<B6913807FFFEA25C000301C00200 -13E06C90C9EA7F00183E183C60A26C1770601701604D5AA24DC7FC5F170E6E5CA2017F5D -177817705FA24C5AA24C5A16076E91C8FC160E133F5E163C16385EA25E15015E6E485AA2 -4BC9FC131F150E151E151C5DA25D15F05DECF1C0A290380FF38014F792CAFC14FEA25CA2 -5C5CA25C13075CA25C91CBFC3F466CC348>86 D<023FB5D8C003B512E0A21780020001F8 -C7387FFC006F48EC3FE06F48158097C7FC031F153E705C1978030F15E07013014E5A0307 -4A5A7091C8FC180E03035C705B187803015C70485A606FEB83800587C9FC178FEE7FDE17 -FC5F705A5F161F83A2160F4C7EA2163FEE77FC16F7ED01E3923803C3FEED07831601030E -7F151CED3C004B805D4B6D7E4A5A4A5A4AC76C7E5C141E4A6E7E14384A140F4A81495A01 -031507494881130F133F017F4B7E2603FFC04A7E007F01F849B512FEB5FC614B447CC348 ->88 D<007FB54AB51280B65CA2000101E09139007FF0006C49ED3FC04A93C7FC6D6C153E -601878013F5E6E4A5A604D5A6D6C4AC8FC5F171E010F151C6E5C5F010715F06E495A5F4C -5A6D6C49C9FC5E161E0101141C6E5B5E16F06DEB81E05EED8380DA7F87CAFC15CF15DEEC -3FDC15F85DA26E5A5D143FA35D147FA392CBFC5CA35C1301A35C1303A3495AA3497E000F -B512F8A341446DC348>I<021FB712F85C19F093C7121F03F0EC3FE0DA7FC0EC7FC04BEC -FF80027EC813004A5C4A4A5A4D5A49484A5A4A5D4D5A4A143F01034B5A4A4A5A4C90C7FC -01075D91C712034C5A4C5A90C8485A5F163F4C5A4C5A4B90C8FC5E15034B5A4B5A4B5A5E -4B5A157F4B5A4A90C9FC4A5A5D14074A5A4A4814E04A5A5D027F14014A485C4990C7FC49 -4814034A5D130749481407495A49484AC7FC5C49485C01FF151E4890C8123E4848157E48 -4815FE494A5A000F1503484814074848EC3FF84848EB03FF90B7FCB8FC5F3D4479C33C> -I<EC1F80EC7FE0903901F07070903907C039F890380F801D90381F001F013E6D5A137E5B -484813075E485A120749130F000F5DA2485A151F003F5D5BA2153F007F92C7FC90C7FCA2 -5D157E12FEA29238FE0380EDFC071700A2007E13015E913803F80E1407003E010F131E16 -1C6C131C02385B3A0F80F078783A07C3E07C703A01FF801FE03A007E000780292D76AB32 ->97 D<EB0FE0EA07FFA338001FC0130F131FA25CA3133F91C8FCA35B137EA313FE5BA312 -015BEC1F80EC7FE03903F9E0F89038F3C07C9038F7003E13FE48487F5BA2491480485AA2 -5BA2121F5BA2153F123F90C7FCA2157F481500127EA25D5D5AA24A5AA24A5AA2007C5C4A -5A140F5D4A5A003C49C7FC003E137E001E5B6C485A380783E03803FF80C648C8FC214676 -C42D>I<EC0FE0EC7FF8903801F81E903807E00F90390F80078090381F0003017E14C049 -131F0001143F5B4848EB7F801207485AED3E00484890C7FCA2485AA2127F90C9FCA35A5A -A45AA5ED0180ED03C0ED0780A2007CEC0F00007E141E003E147C15F06CEB03E0390F800F -802607C07EC7FC3801FFF838007FC0222D75AB2D>I<EE07F0ED03FFA39238000FE01607 -160FA217C0A2161FA21780A2163FA21700A25EA2167EA216FEA25EEC1F80EC7FE1903801 -F071903907C039F890380F801D90381F001F013E130F017E5C5B48481307A248485C1207 -49130F120F5E485A151F123F495CA2153F127F90C790C7FCA25DA200FE147EA29238FE03 -80160703FC1300A2007E13015E913803F80E1407003E010F131E161C6C131C02385B3A0F -80F078783A07C3E07C703A01FF801FE03A007E0007802C4676C432>I<EC0FE0EC7FF890 -3801F83E903807C00F90391F800780EB3F00017E14C0491303485A48481307000715805B -000F140F484814005D4848133E15FCEC07F0007FEBFFC0D9FFFEC7FC14C090C9FC5A5AA5 -5AA4ED0180ED03C0007CEC0780A2007EEC0F00003E141E157C6C14F06CEB03E03907800F -802603C07EC7FC3801FFF838003FC0222D75AB2D>I<EE0F80EE3FE0EEF870923801F038 -923803E0F8923807E1FC16C3ED0FC7A2EE87F892381F83F0EE81E0EE8000153F93C7FCA4 -5D157EA415FE5DA349B512FEA390260001F8C7FCA314035DA414075DA4140F5DA4141F5D -A4143F92C8FCA55C147EA314FE5CA413015CA4495AA35C1307121C007F5B12FF495AA291 -C9FC485AEAF81E485AEA7878EA1FF0EA07C02E5A83C51E>I<15FCEC03FF91390F838380 -91393E01CFC091387C00EF4A13FF4948137F010315804948133F495A131F4A1400133F91 -C75A5B167E13FE16FE1201495CA215011203495CA21503A2495CA21507A25EA2150F151F -5E0001143F157F6C6C13FF913801DF8090387C039F90383E0F3FEB0FFCD903F090C7FC90 -C7FC5DA2157EA215FEA25DA2001C495A127F48495A14074A5A485C023FC8FC00F8137E38 -7C01F8381FFFE0000390C9FC2A407BAB2D>I<14FE137FA3EB01FC13001301A25CA21303 -A25CA21307A25CA2130FA25CA2131FA25C157F90393F83FFC091388F81F091381E00F802 -387F4948137C5C4A137EA2495A91C7FCA25B484814FE5E5BA2000314015E5BA200071403 -5E5B1507000F5DA249130F5E001F1678031F1370491480A2003F023F13F0EE00E090C7FC -160148023E13C01603007E1680EE070000FEEC1E0FED1F1E48EC0FF80038EC03E02D467A -C432>I<143C147E14FE1301A3EB00FC14701400AE137C48B4FC3803C780380703C0000F -13E0120E121C13071238A21278EA700F14C0131F00F0138012E0EA003F1400A25B137EA2 -13FE5B12015BA212035B141E0007131C13E0A2000F133CEBC038A21478EB807014F014E0 -EB81C0EA0783EBC7803803FE00EA00F8174378C11E>I<16F0ED03F8A21507A316F0ED01 -C092C7FCAEEC01F0EC07FCEC1E1EEC380F0270138014E0130114C0EB03800107131F1400 -A2130E153F131E011C140090C7FC5DA2157EA215FEA25DA21401A25DA21403A25DA21407 -A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C147EA214FE001C5B127F48485A495A -A248485A495AD8F81FC8FCEA707EEA3FF8EA0FC0255683C11E>I<14FE137FA3EB01FC13 -001301A25CA21303A25CA21307A25CA2130FA25CA2131FA25C167E013F49B4FC92380783 -C09138000E07ED3C1F491370ED603F017E13E0EC01C09026FE03801380913907000E00D9 -FC0E90C7FC5C00015B5C495AEBF9C03803FB8001FFC9FCA214F03807F3FCEBF07F9038E0 -1FC06E7E000F130781EBC003A2001F150FA20180140EA2003F151E161C010013E0A2485D -A2007E1578167000FE01015B15F1489038007F800038021FC7FC2A467AC42D>I<EB03F8 -EA01FFA3380007F013031307A214E0A2130FA214C0A2131FA21480A2133FA21400A25BA2 -137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA2 -90C7FCA2387F01C01303007E1380A2130700FE130012FCA25B130EEA7C1E131CEA3C3CEA -3E786C5AEA07C0154678C419>I<D801F0D90FE0EB07F0D803FCD97FF8EB3FFC28071E01 -F03EEBF81F3E0E1F03C01F01E00F80271E0F8700D983807F001C018E90390F870007003C -019C148E003801B802DC8002F814FC26781FF05C0070495CA24A5C00F0494948130FD8E0 -3F6091C75B1200043F141F4960017E92C7FCA24C143F01FE95C7FC49147E6104FE147E12 -01494A14FE610301EE0780000305011400494A14F8A2030302035B0007F0F00E495C1A1E -0307EDE01C000F193C494A153862030F020113F0001FF0F1E0494A903800FF800007C7D8 -0380023EC7FC492D78AB50>I<D801F0EB0FE0D803FCEB7FF83A071E01F03E3A0E0F03C0 -1F001ED987001380001C018E130F003C139C003801B814C014F838781FF000705BA25C00 -F049131FD8E03F158091C7FC1200163F491500137EA25E01FE147E5B16FE5E1201491301 -5E170F00030203130E4914F0A20307131E0007EDE01C5B173CEEC038000F167849157017 -E0ED03C1001FEDE3C049903801FF000007C8127C302D78AB37>I<EC0FE0EC7FFC903801 -F83E903907E00F8090390F8007C0EB1F00017EEB03E04914F0A248481301484814F81207 -485AA2485AA2485A1503127F90C7FCA215074815F05AA2150F16E05AED1FC0A21680153F -16005D157E5D007C495A007E495A003E5C4A5A6CEB1F80260F803EC7FC3807C0FC3801FF -F038003F80252D75AB32>I<D903E0137E903A07F801FF80903A0E3C0783E0903A1C1E0F -01F0903A3C1F1C00F801385B017849137C01705BA24A48137E01E05BA292C7FC00015B13 -C0147EC7FC02FE14FEA25CA20101140117FC5CA20103140317F85CA20107EC07F0A24AEB -0FE0A2010F15C0EE1F80163F1700496C137E5E4B5A9138B803F090393F9C07E091389E0F -80DA07FEC7FCEC01F849C9FCA2137EA213FEA25BA21201A25BA21203A21207B512F0A25C -2F3F7FAB32>I<91381F800C91387FE01C903901F0703C903907C0387890390F801CF890 -381F001D013E130F017E14F05B48481307A2484814E012075B000F140F16C0485AA2003F -141F491480A3007F143F90C71300A35D00FE147EA315FE5DA2007E1301A24A5A1407003E -130FA26C495A143B380F80F33807C3E73901FF87E038007E071300140F5DA3141F5DA314 -3F92C7FCA25CA25C017F13FEA25D263F76AB2D>I<D801F0EB3F803A03FC01FFF03A071E -03C0F83A0E0F0F007C001E90389E01FC001C139CECB803003813F0A2D91FE013F80078EC -00E00070491300A200F05BEAE03F91C8FC1200A25B137EA313FE5BA312015BA312035BA3 -12075BA3120F5BA3121F5B0007C9FC262D78AB29>I<EC0FE0EC7FF8903801F01E903803 -C00F90390780078090380F0003011E14C0150749131FA2017CEB3F801378137CED0E0092 -C7FC137E137F14F014FF6D13C06D13F06D7F6D7F1300EC0FFE14011400157F81120E003F -141E487EA2153E48C7123CA200FC5C12705D0078495A6C495A6CEB0F80260F803EC7FC38 -03FFF838007FC0222D7AAB28>I<1470EB01F8A313035CA313075CA3130F5CA3131F5CA2 -007FB512E0B6FC15C0D8003FC7FCA25B137EA313FE5BA312015BA312035BA312075BA312 -0F5BA2EC0780001F140013805C140E003F131EEB001C143C14385C6C13F0495A6C485AEB -8780D807FEC7FCEA01F81B3F78BD20>I<137C48B414072603C780EB1F80380703C0000F -7F000E153F121C0107150012385E1278D8700F147E5C011F14FE00F05B00E05DEA003FEC -0001A2495C137E150313FE495CA215071201495CA2030F13380003167849ECC070A3031F -13F0EE80E0153F00011581037F13C06DEBEF8300000101148090397C03C787903A3E0F07 -C70090391FFE01FE903903F000782D2D78AB34>I<017C143848B414FC3A03C78001FE38 -0703C0000F13E0120E001C14000107147E1238163E1278D8700F141E5C131F00F049131C -12E0EA003F91C7123C16385B137E167801FE14705BA216F0000115E05B150116C0A24848 -EB0380A2ED0700A2150E12015D6D5B000014786D5B90387C01E090383F0780D90FFFC7FC -EB03F8272D78AB2D>I<017CEE038048B4020EEB0FC02603C780013FEB1FE0380703C000 -0E7F5E001C037E130F01071607123804FE130300785DEA700F4A1501011F130100F00180 -4914C012E0EA003FDA000314034C14805B137E0307140701FE1700495CA2030F5C000117 -0E495CA260A24848495A60A2601201033F5C7F4B6C485A000002F713036D9039E7E00780 -90267E01C349C7FC903A1F0781F81E903A0FFF007FF8D901FCEB0FE03B2D78AB41>I<02 -F8133FD907FEEBFFE0903A0F0F83C0F0903A1C07C780F890393803CF03017013EE01E0EB -FC07120101C013F8000316F00180EC01C000074AC7FC13001407485C120EC7FC140F5DA3 -141F5DA3143F92C8FCA34AEB03C01780147EA202FEEB0700121E003F5D267F81FC130E6E -5BD8FF83143CD903BE5B26FE079E5B3A7C0F1F01E03A3C1E0F83C0271FF803FFC7FC3907 -E000FC2D2D7CAB2D>I<137C48B414072603C780EB1F80380703C0000F7F000E153F001C -1600130712385E0078157EEA700F5C011F14FE00F0495B12E0EA003FEC00015E5B137E15 -0301FE5C5BA2150700015D5BA2150F00035D5BA2151F5EA2153F12014BC7FC6D5B00005B -EB7C0390383E0F7EEB1FFEEB03F090C712FE5DA214015D121F397F8003F0A24A5A484848 -5A5D48131F00F049C8FC0070137E007813F8383801F0381E07C06CB4C9FCEA01FC294078 -AB2F>I<027C130749B4130F49EB800E010F141E49EBC03CEDE03890393F03F07890397C -00FDF00178EB3FE00170EB03C001F0148049130790C7EA0F00151E5D5D5D4A5A4A5A4A5A -4AC7FC141E5C5C5C495A495A495A49C8FC011E14F04914E05B491301485A4848EB03C0D8 -07B0130701FEEB0F80390FCF801F3A1F07E07F00393E03FFFED83C015B486C5B00705C00 -F0EB7FC048011FC7FC282D7BAB28>I<B812F0A22C02779B32>I<BE12C0A25A02759B64> -I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Ft cmsy10 12 52 -/Ft 52 120 df<007FB912E0BA12F0A26C18E03C04789A4D>0 D<121FEA3F80EA7FC0EA -FFE0A5EA7FC0EA3F80EA1F000B0B789E1C>I<0060160600F0160F6C161F007C163E6C16 -7C6C16F86C6CEC01F06C6CEC03E06C6CEC07C06C6CEC0F806C6CEC1F00017C143E6D5C6D -5C6D6C485A6D6C485A6D6C485A6D6C485A6D6C48C7FCEC7C3E6E5A6E5A6E5A6E5AA24A7E -4A7EEC3E7C4A7E4A7E49486C7E49486C7E49486C7E49486C7E49C77E013E147C49804980 -4848EC0F804848EC07C04848EC03E04848EC01F048C912F8003E167C48163E48161F4816 -0F00601606303072B04D>I<14034A7E4A7E4A7E4A7EEC7CF8ECF87C49487E49487E4948 -6C7E49486C7E49486C7E013E6D7E496D7E49147C4848804848804848EC0F804848EC07C0 -48C8EA03E0003EED01F048ED00F848167CA2007C16F86CED01F06CED03E06C6CEC07C06C -6CEC0F806C6CEC1F006C6C143E6C6C5C017C5C6D495A6D495A6D6C485A6D6C485A6D6C48 -C7FC903801F03E6D6C5AEC7CF8EC3FF06E5A6E5A6E5A6EC8FC2E2E7EAF33>5 -D<49B4FC010F13E0013F13F890B512FE48EB01FF3A03F8003F80D807E0EB0FC0D80F80EB -03E048C7EA01F0001E1400003E15F8003C1578007C157C0078153C00F8153E48151EA86C -153E0078153C007C157C003C1578003E15F8001E15F0001F14016C6CEB03E0D807E0EB0F -C0D803F8EB3F803A01FF01FF006CEBFFFE013F13F8010F13E0010190C7FC27267BAB32> -14 D<49B4FC010F13E0013F13F890B512FE48804815804815C04815E04815F0A24815F8 -A24815FCA2B712FEAA6C15FCA26C15F8A26C15F0A26C15E06C15C06C15806C15006C5C01 -3F13F8010F13E0010190C7FC27267BAB32>I<007FBA1280BB12C0A26C1980CEFCB0007F -BA1280BB12C0A26C1980CEFCB0007FBA1280BB12C0A26C1980422C7BAE4D>17 -D<92B712E0020F16F0143F91B812E001030180C9FCD90FF8CAFCEB1FE0EB3F80017ECBFC -13F8485A485A485A5B120F48CCFC121E123E123CA2127C1278A212F85AAA7E1278A2127C -123CA2123E121E121F6C7E12077F6C7E6C7E6C7E137E6D7EEB1FE0EB0FF8903803FF8001 -0090B712E0023F16F0140F020016E092CAFCB0001FB912E04818F0A26C18E03C4E78BE4D ->I<007FB612F0B8FC17C06C16F0C9EA1FFCEE01FF706C7EEF1FC0EF07E0EF01F0717E18 -7C84181E181FF00F80180719C01803A219E01801A219F01800AA180119E0A2180319C0A2 -18071980180FF01F00181E183E60604D5AEF07E0EF1FC0EF7F804C48C7FCEE1FFC007FB7 -12F0B812C094C8FC6C15F0CDFCB0007FB91280BA12C0A26C18803C4E78BE4D>I<19E0F0 -03F0180FF03FE0F0FF80943803FE00EF0FF8EF3FE0EFFF80DC03FEC7FCEE0FF8EE3FE0EE -FF80DB03FEC8FCED1FF8ED7FE0913801FF80DA07FEC9FCEC1FF0EC7FC04948CAFCEB07FC -EB1FF0EB7FC04848CBFCEA07FCEA1FF0EA7FC048CCFCA2EA7FC0EA1FF0EA07FCEA01FF38 -007FC0EB1FF0EB07FCEB01FF9038007FC0EC1FF0EC07FC913801FF809138007FE0ED1FF8 -ED07FE923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FE943800FF80 -F03FE0F00FF01803F000E01900B0007FB912E0BA12F0A26C18E03C4E78BE4D>I<127012 -FCB4FCEA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01FF9038007FC0EC1FF0 -EC07FC913801FF809138007FE0ED1FF8ED07FE923800FF80EE3FE0EE0FF8EE03FE933800 -FF80EF3FE0EF0FF8EF03FE943800FF80F03FE0F00FF0A2F03FE0F0FF80943803FE00EF0F -F8EF3FE0EFFF80DC03FEC7FCEE0FF8EE3FE0EEFF80DB03FEC8FCED1FF8ED7FE0913801FF -80DA07FEC9FCEC1FF0EC7FC04948CAFCEB07FCEB1FF0EB7FC04848CBFCEA07FCEA1FF0EA -7FC048CCFC12FC1270CDFCB0007FB912E0BA12F0A26C18E03C4E78BE4D>I<D907F81780 -D93FFFEE01C090B512C04814F048804814FE270FF807FF1503261FC00001C0158048C7D8 -3FE01407003EDA0FF8140F486E6CEC1F000078DA01FF5C00706E01C013FE00F092393FF8 -07FC486FB55A04075C705C04005C053F90C7FC0040EE07F8CEFCA4D907F81780D93FFFEE -01C090B512C04814F048804814FE270FF807FF1503261FC00001C0158048C7D83FE01407 -003EDA0FF8140F486E6CEC1F000078DA01FF5C00706E01C013FE00F092393FF807FC486F -B55A04075C705C04005C053F90C7FC0040EE07F8422C7BAF4D>25 -D<1AF0A3861A78A21A7C1A3CA21A3E1A1E1A1F747EA2747E747E87747E747E1B7E87757E -F30FE0F303F8007FBC12FEBE1280A26CF3FE00CEEA03F8F30FE0F31F8051C7FC1B7E6350 -5A505A63505A505AA250C8FC1A1E1A3E1A3CA21A7C1A78A21AF862A359347BB264>33 -D<18034E7E85180385180185727E1978197C8585737E86737E737E007FBA7EBB7E866C85 -CDEA0FC0747EF203F8F200FEF37F80F31FE0F307FC983801FF80A2983807FC00F31FE0F3 -7F8009FEC7FCF203F8F207E0505A007FBBC8FCBB5A626C61CCEA03F04F5A4F5A624FC9FC -193E61197819F84E5A6118036118076172CAFC59387BB464>41 D<02C0130C496C131EB3 -B3AF00C0170C00F0173C00FC17FC00FE1601D83F81ED07F0D80FC1ED0FC0D807E1ED1F80 -D801F9ED7E00D800FD5D017FEC1FF8011F15E0010F5D01075D010392C7FC6D6C133E0100 -143C6E137C027C5B6E485A021E5BEC1F03020F5B9138078780A2DA03CFC8FCA2EC01FEA2 -6E5AA31578A31530A236587DC43D>43 D<031CED01C0033E4B7E033C1501037C82037815 -0003F8824B16780201177C4B163C0203173E4A48824B82020F844ACA6C7E023E717E027E -8491BA7E498549854985D90FC0CBEA1F804948727E017FCCEA07F001FCF101F8D803F8F1 -00FED80FE0F23F80D83FC0F21FE0B4CEEA07F8A2D83FC0F21FE0D80FE0F23F80D803F8F2 -FE00C66CF101F8017FF107F0D91F80F00FC06D6C4E5A6DBBC7FC6D616D616D61027ECAEA -03F0023E606E4D5A6E6C4C5A020795C8FC6F5E6E6C163E0201173C6F167C020017786F16 -F803785E037C1501033C5E033E1503031C6F5A5D387DB464>I<92B6FC020F1580143F91 -B7120001030180C8FCD90FF8C9FCEB1FE0EB3F80017ECAFC13F8485A485A485A5B120F48 -CBFC121E123E123CA2127C1278A212F85AA3B9FC1880A2180000F0CBFCA37E1278A2127C -123CA2123E121E121F6C7E12077F6C7E6C7E6C7E137E6D7EEB1FE0EB0FF8903803FF8001 -0090B6FC023F1580140F02001500313A78B542>50 D<1706170F171F171E173E173C177C -177817F817F0160117E0160317C016071780160F17005E161E163E163C167C167816F85E -15015E15035E15075E150F93C7FC5D151E153E153C157C157815F85D14015D14035DA214 -075D140F92C8FC5C141E143E143C147C147814F85C13015C13035C13075C130F91C9FC5B -131E133E133C137C137813F85B12015B12035B12075B120F90CAFC5A121E123E123C127C -127812F85A1260305C72C600>54 D<126012F0B012FC12FEA212FC12F0B0126007267BAB -00>I<0060171800F0173CA26C177C00781778A2007C17F8003C17F0003E1601001E17E0 -A2001F16036C17C0A26D1507000717806D150F00031700A26D5D0001161EA26D153E0000 -163C90B712FC6D5DA3013CC85AA2013E1401011E5D011F14036D5DA26E130701075DA26E -130F010392C7FC6E5B0101141EA26E133E0100143CA26E137C02781378027C13F8023C5B -A2EC3E01021E5BA2EC1F03020F5B158702075BA215CF020390C8FCA215FF6E5AA26E5AA3 -1578A21530364780C437>I<007FB712E0B812F0A27ECAFCB3AA001FB7FC5A5A7ECAFCB3 -AB007FB7FCB8FCA26C16E02C457BC437>I<007FB812FCB912FEA27ECB121EB3A4180C37 -1B7BA342>I<4B7E4B7EA215075EA2ECFF87010313EF90260F80FFC7FC90383E003F497F -498048488048488049133F0007EC3DF049133C000FEC7CF8157848C7137CA248ECF87E15 -F0A2140148ECE07F007E81A2140315C0A200FE010714801580A3140F1500A25C141EA314 -3E143CA3147C1478A214F85CA31301007E491400A213035C007F5DA2D83F07147E5CA213 -0F001F90C7127C018F14FC000F5D139F01DE130100075DD803FE495A5B00014A5A00004A -5A017C49C7FC017E133E90387F80F89038FBFFE001F0138091C9FCA212015BA26C5A2955 -7CCC32>I<16C04B7EB3B3B3A7007FBA1280BB12C0A26C198042427BC14D>63 -D<190E193E197EF001FE1803A21807A2180FA2181FA2183F183B187B187318F318E31701 -18C31703188317071803170F171EA2173CA21778177017F0EE01E0A2EE03C0A2DC07807F -EE0F00A2161EA24C7F5EA25E15015E4B5A15074C81DB0F1FB6FCED1F7F4BB7FCA25D92B8 -FC03F0C8FC0201834A5A4A5A5D0030130F007049C96C7E143E00F8137E6C5B6C48488326 -FF87F0043F133801FFF0F8F04AEFFFE04A18C04A70138091CAEBFE006C48EF0FF86C48EF -07C06C4894C8FCEA07E04D4D7DC750>65 D<DA01C0EB01FE020791381FFF80DA1F8090B5 -12E0027F010314F0D901FF010F14F80107023F14FC49EC7E01499139F8007FFE013CD983 -E0131F01204948130F0100494813074BC7FC033E1403037E15FC495B5D19F85D4BEC07F0 -19E04B15C049EE0F804BEC1F00187E92C812F8EF03F04948EC1FC0EF7F80DC03FEC7FC4A -EB1FF893B5FC90260FF80314C04B14F04B804A4880DB00077F011F02007F053F13804A14 -0F7113C0834948807113E0A2187F495AA2183F91C9FCA24917C0A25B00011880A249EE7F -00187E485A604D5A2607F0305DD9F1F04A5A48486C4A5AD9EFFEEC1F80496C6C017EC7FC -001F9138F003FC019F90B512F0D83F8F15C0010792C8FCD87E0114F82678007F13C000E0 -D90FFCC9FC3F487DC541>I<EE01FE93381FFF8093B512C0030714E0151F157F913801FE -01913903F0007FDA07C0133F021FC713C0143E5C4A1580495A4948EC7F001307495A4948 -14FEA249C7485A495D137E494A5AEE07C0000193C7FC484891C8FCA2485AA3485AA2121F -A25B123FA4485AA512FFA77FA3171E6D5D007F16FC4C5A6D4A5A6D5D003F4B5A6D4A5A6D -4AC7FC6C6C143E6C01C013F89138F803F06C90B55A6C15806C4AC8FC6C14F8013F13C0D9 -07FCC9FC33487FC534>I<031FB512C00203B7FC021F16E091B812F8010317FE010F717E -90283FE07FC03F80D97E00020080D801F84A011F7FD803E004077F484804017F000FEF00 -7F4848717E003F02FF151F737E48C782007E92C8FC4872138012F0008084C8FC4A5A85A4 -4A5AA21B00A34A5AA24F5A5D62140FA24B4B5A141F4F5A4B5EA2023F4C5A4F5A5D027F4C -C7FC197E92C9127C6102FE4B5A4E5A4E5A49484B5A063EC8FC01035E4A4A5AEF07E04948 -EC1FC005FFC9FCEE07FC4948EBFFF091B61280017F4ACAFC90B612F04815804802F8CBFC -4891CCFC49447EC34D>I<0403B712F8043F16FE4BB9FC1507151F157FDBFC0090C7EA07 -FE912703F001FEEC01F8DA07C017F0DA0F801780021F94C7FCEC3F004A495A147E14FE5C -49485C4A1307495A91C7FC90C85B160FA25FA2161F5FA2163F5FA2167F94B612C0A293B7 -FC624FC7FC4B5D04FCC712704B4891C8FCA34B5AA24B5AA25E151F5E153FA24BCBFCA215 -FEA25D14015D486C485AEA07C0001F495A383FE00FD87FF05B39FFFC1F80D87FFF90CCFC -14FE6C5B6C13F06C5B00031380D800FCCDFC50477EC348>70 D<EF07F8EF7FFE4CB5FC04 -0714805E043F14C0EE7C0F923801F8034B487EED07E0030F7F4B5A4B5AA24BC713804B15 -004B14FC020115F04B14C0020392C7FC5D1407A24A5AA2141F5DA2143F5DA2147F5DA214 -FFA292CAFC5BA35C1303A35C1307A25CA2130F5CA2495AA349481608197C494816F891C9 -1203180790B56CEC0FF04814F803FFEC1FE04803F014C004FE1480489239FFE03F00D80F -E0EDFFFC261FC00F5D263F800115E0007EC7001F5C007C020391C7FC00F09138003FF03E -487DC545>76 D<DC03801960040F1AE04C7E043F1901047FF103C01E071E0F1E1F83F63F -8004FF197F1EFF65715F651F004B6104EF60DCCFF85F1D7E1DFD0303F1F9FE0487EF01F1 -711603F407E10307F00FC10407EF1F83706CEE3F031C7E030F62030E18FC706CED01F8F3 -03F0031CEF07E098380FC007706DEC1F804BEF3F00661B7E4B6D6C5C505A505A4B6E4948 -130F053F4A5A02014D5A4B163F716C49C7FC4A4804FE5D6272485A4AC7000F495A72485A -4A4C48141F020E0207495A7248C8FC4A0203137EF0FFFE023C5E02386E5B02785E02706E -5B02F05E0010496F5AD8380194C9FC267C03C0153ED87F87041CEFF830B548031018F095 -CAEBFFE091CE14C0491D809A380FFE00491CF86C48F307C06C4898C8FCEA07E06C4B7DC5 -78>I<F50FE01DFF1C031C0F64645213C0161E043E94B5128004FEF0C0004B6CDC01FCC7 -FC1CF01CC0515A4B7FA251C8FC83A21B0E8316BF03075FA2EE9FF0041F163C1B3883ED0F -0F63030E7F16071BF0031E6D5D1603151C711401705E153C033880704B5AA20378800370 -017F14077291C9FCA203F0133F4B6E5B051F140EA24A4880050F141E1A1C4A4880170772 -133C4AC71538170384020E6E1478F18070A24A6E13C01AF0726C5A5CF03FF0027816F102 -7092381FF9C0001801F016FD001C49150FD83E0117FF267FC3C08101FF705B5CB58291C9 -91CAFC725A6C4817786C4894CBFC6C5AEA03F0635283CC52>I<DB01C0EB3FC0923A0780 -01FFF892261F000F13FE033E013F7F03FC90B61280912601F00115C0912803E007E03F13 -E0913A0F800F800791281F001F000113F0023E013E6D13F84A49147F4A49143F902601F0 -0116FC49484848141F49484848140F130F4948484815FE90263F001F15075E017E133F49 -91C8FC4B15034848137E00035C495B0007495A15804848CAFC1AFC121F5BA2123FF107F8 -A2485AA21AF0190FA200FF19E0A2F11FC0A21A80193F1A006D177EA2614E5A7F007F4D5A -4E5A6D5F4E5A6C6C4CC7FC6D163E606C6C5E6D4B5A6C6DEC07C06C01E04A5A6E023FC8FC -6C01FC14FC6C9039FFC00FF86C91B512E06D1580011F02FCC9FC6D14F0010391CAFC9038 -003FF047487AC54F>I<031FB512F00203B77E021F16F091B812FC010317FF010F188090 -283FE07FC00F14C0D97E00DA007F13E0D801F84A010F13F0D803E016034848040013F800 -0F187F4848EF3FFC003F02FF151FA248C790C8120F127E48180712F0008019F8C75A5DA2 -1AF0190F1AE04A5A1AC0F11F80A24BED3F000207167E197C614E5A4A484A5A4E5A061FC7 -FC4B143E18FC021FEC07F0EF7FE09239C07FFF8091273FC1FFFCC8FC03C313F0038F1380 -DB9FFCC9FC027F13800380CAFC92CBFC5CA25CA2495AA3495AA213075CA2130F5CA2495A -A3495A91CCFC137E137C136046497EC345>I<031FB512FC0203B712E0021F16FC91B9FC -010318C0010F8490283FE07FC00380D97E00DA001F7FD801F84A1303D803E004007F4848 -173F000F181F4848170F003F14FF190748C790C8FC007E615A12F0008061C75A4B4B5AA2 -62191F624A484BC7FC193E61614E5A4A48EC07E0F00F80063FC8FCEF03FC4B48B45A020F -010F13E04C90C9FC4B485A4C7E021F90B5FC041F7FDBC0077F023F7F707F158082027F6E -7E92C7FC717E5C4A81171F13014A6E7E1B0349486E6C141F1B3E73137C49486E6D13F8F2 -01F049486E9038E003E09638F007C0719038FC1F80494892397FFFFE006249486F13F091 -C96C13C0013C7048C7FC0170EE03F050467EC354>82 D<EF7FF0933807FFFE043FEBFF80 -93B612E0030315F0030F15F892381F800F92267E000113FC03F8EB007F4A48141F020315 -0F4A5A020FED07F85D021F16F0023F16E019C0F00F00027F150895C7FC81A281A2816E7E -816E6C7E16E06E13F86E13FE6EEBFFC06E14F06E6C13FC031F7F03076D7E030180DB003F -7F040F7F04037F82706C7E173F010E6F7E017C150F5BD803F01507485A48481503121F48 -485EA2127F60A200FF4C5A7F604D5A6D5E6D4BC7FC6C6C153E6D5D01FFEC01F06C01C0EB -07E06C01FCEB7FC06C90B6C8FC6C15FC6C15E0C61580013F01FCC9FC010313803E487EC5 -3C>I<1B3C1B7CF201F8020FB912F091BA12E001031980010FF0FE004918F8017F188001 -F8C7D807F0C9FCD803F0140F4848141F120F48485D003F153FA2127F5F4848147F90C8FC -5A00F85E00E015FFC9FCA294CAFC5DA35E1503A35E1507A35E150FA35E151FA35E153FA3 -5E157FA35E15FFA293CBFCA25CA25D1403A25DA24A5AA34A5AA24A5AA25D143F5D027ECC -FC147814604E4E7CC636>I<D907F81678D93FFF16FE4901C04A7E48B56C1680486E5CD8 -07C36D16C0390F807FFC9038001FFEC7000F9238003FE06E6C150F6E16076E6D1403A26E -6D1401A2157F7015C0153FA219036F6C1580A3F107006F7E61190E191E0307151CA261A2 -70147861A24E5A03035D18034E5AA24EC7FC181EA2606018F8604D5A17034D5A4D5A95C8 -FC5F173E5F5FEEFDF016FF5F5F5F94C9FC5E5E00204A5A00705D4B5A00F04A5A6CEC7F80 -4BCAFC6C495A6CEB07F839FF801FF09038E07FE06CB55A92CBFC6C5B5C6C13F06C13C000 -0390CCFCEA00FC43527DC343>89 D<0060170C00F0171EB3B3A76C173E0078173CA2007C -177C6C17F8001E17F0001F16016C6CED03E0D807E0ED0FC06C6CED1F80D801FEEDFF006C -6C6CEB03FED93FFCEB7FF86DB65A0103158001004AC7FC020713C0373D7BBA42>91 -D<913807FFC091B512FE01036E7E011F15F0903A3FFC007FF8D9FF80EB03FE4848C87ED8 -03F0ED1F804848ED0FC0D80F80ED03E048C9EA01F0001E1600003E17F848177C0078173C -A200F8173E48171EB3B3A70060170C373D7BBA42>I<1538157CA315FEA24A7E15EF0203 -7F15C702077F1583A2020F7F1501021F7FEC1E00023E7F023C1378027C137C0278133CA2 -02F8133E4A131E0101141F4A7F0103814A13070107814A1303A2010F8191C71201498101 -1E1400013E81013C1578017C157C0178153C01F8153E49151EA20001161F498100031780 -491507000717C0491503000F17E090C91201A24817F0001E1600003E17F8003C1778007C -177C0078173C00F8173E48171EA20060170C373D7BBA42>94 D<0060170C00F0171EA26C -173E0078173C007C177C003C1778003E17F8001E17F0001F16016C17E0A26D1503000717 -C06D1507000317806D150F000117006D5D0000161EA26D153E0178153C017C157C013C15 -78013E15F8011E5D011F14016D5D6E130301075DA26E130701035D6E130F010192C7FC6E -5B0100141E6E133E0278133CA2027C137C023C1378023E13F8021E5BEC1F01020F5B1583 -02075BA215C702035B15EF020190C8FC15FF6E5AA2157CA31538373D7BBA42>I<126012 -F0B3ADB9128018C0A300F0CBFCB3AE126032457BC43D>I<ED0FE015FF913803FC00EC0F -E0EC3FC04A5A4AC7FC5C495AA2495AB3AD495AA2495A131F495A495A01FEC8FCEA07F8EA -FFE0A2EA07F8EA00FEEB7F806D7E6D7E130F6D7EA26D7EB3AD6D7EA26D7E806E7E6E7EEC -0FE0EC03FC913800FFE0150F236479CA32>102 D<12FEEAFFE0EA07F8EA00FEEB7F806D -7E6D7E130F6D7EA26D7EB3AD6D7EA26D7E806E7E6E7EEC0FE0EC03FC913800FFE0A29138 -03FC00EC0FE0EC3FC04A5A4AC7FC5C495AA2495AB3AD495AA2495A131F495A495A01FEC8 -FCEA07F8EAFFE048C9FC236479CA32>I<140C141EA2143E143C147C1478A214F814F013 -0114E0A2130314C013071480A2130F14005B131EA2133E133C137C1378A213F85BA21201 -5B12035BA212075B120F90C7FCA25A121E123E123CA2127C127812F85AA27E1278127C12 -3CA2123E121E121F7EA27F12077F1203A27F12017F1200A27F1378A2137C133C133E131E -A2131F7F14801307A214C0130314E01301A214F0130014F81478A2147C143C143E141EA2 -140C176476CA27>I<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203 -A27F12017F1200A27F1378137C133CA2133E131EA2131F7F14801307A214C0130314E013 -01A214F0130014F81478A2147C143C143E141EA2143E143C147C1478A214F814F0130114 -E0A2130314C013071480A2130F14005B131EA2133E133CA2137C137813F85BA212015B12 -035BA212075B120F90C7FCA25A121E123E123CA2127C127812F85AA2126017647BCA27> -I<126012F0B3B3B3B3B3A81260046474CA1C>I<126012F0A27E1278A2127C123C123E12 -1EA2121F7EA27F1207A27F12037F1201A27F1200A27F1378A2137C133C133E131EA2131F -7FA2801307A2801303801301A2801300A2801478A2147C143C143E141EA2141F80A28114 -07811403A2811401A2811400A2811578157C153CA2153E151EA2151F81A21680150716C0 -1503A216E01501A216F01500A216F81678167C163CA2163E161EA2160C27647BCA32> -110 D<0060173000F01778B3B3B2B912F8A36C17F0353B7ABA42>116 -D<003FB912F84818FCA219F80078CCFCB3B3AE007FB912F819FCA26C18F8CDFCB0007FB9 -12F8BA12FCA26C18F83E4E78BE4D>118 D<007FB912F0BA12F8A27ECC1278B3B3AE007F -B912F8BAFCA26C18F0CDFCB0007FB912F8BA12FCA26C18F83E4E7ABE4D>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fu cmr12 12 91 -/Fu 91 128 df<B91280A300019038C000036C6C489038003FC0171F17071703A21701A2 -EF00E0A31860A418701830A31800B3B3A58048487EB612F8A334447CC33D>0 -D<027FB67EA39126001FFEC9FC6F5A6F5AA8B46CEFFF8001E01603D81FF0933807FC006C -6C4C5A0007606D161F000360A26D163F000160AC6C6C5F187FA4D97F804BC7FCA2013F5E -02C01401131F02E04A5A010F5ED907F01407D903F85DD901FC4A5AD900FE4A5A027F027F -C8FCDA1FC713FE0207B512F8020114C09126001FFCC9FCED07F8A84B7E4B7E027FB67EA3 -41447BC34C>9 D<9239FFC001FC020F9038F80FFF913B3F803E3F03C0913BFC00077E07 -E0D903F890390FFC0FF0494890383FF81F4948EB7FF0495A494814E049C7FCF00FE04991 -393FC0038049021F90C7FCAFB912F0A3C648C7D81FC0C7FCB3B2486CEC3FF0007FD9FC0F -B512E0A33C467EC539>11 D<4AB4FC020F13E091387F80F8903901FC001C49487FD907E0 -130F4948137F011FECFF80495A49C7FCA25B49EC7F00163E93C7FCACEE3F80B8FCA3C648 -C7FC167F163FB3B0486CEC7FC0007FD9FC1FB5FCA330467EC536>I<913801FFC0020FEB -FB8091387F803F903801FC00494813FFEB07E0EB1FC0A2495A49C7FC167F49143F5BAFB8 -FCA3C648C7123FB3B2486CEC7FC0007FD9FC1FB5FCA330467EC536>I<DBFF80EB3FE002 -0F9039F001FFFC913B3F807C0FF01F913CFC000E3F800380D903F86D48486C7E4948D90F -FC804948D93FF8130F4948017F4A7E49485C49C75BA25B494B6D5A041F6E5A96C8FCACF1 -07F0BBFCA3C648C7391FC0001F190F1907B3B0486C4A6C497E007FD9FC0FB50083B512E0 -A34B467EC551>I<131F1480133F137FA2EBFF00485A485A5B485A485A138048C7FC123E -123C5A12E0124011126CC431>19 D<1606A25E161C1618163816305EEC7F80903903FFF0 -C090380FC0FC90393E001F8049130F01F0EB03C04848497E0003814848EB0CF84848147C -1518001F157E48C7487E157015604802E01380007EECC01FEC0180A200FED9030013C0A2 -1406140E140C141C14185CA25C007E16805CD87F01143F003F4914001303001F90C7123E -0186147E000F157C01CC14FC00075DD803F8495A00014A5A00004A5A017E011FC7FC9038 -7F807E9038C7FFF89038C07F804848C9FCA248CAFC5A1206120E120C5AA22A3F7DB431> -28 D<121EEA7F80EAFFC0A9EA7F80ACEA3F00AB121EAC120CA5C7FCAA121EEA7F80A2EA -FFC0A4EA7F80A2EA1E000A4778C61B>33 D<001EEB03C0397F800FF000FF131F01C013F8 -A201E013FCA3007F130F391E6003CC0000EB000CA401E0131C491318A300011438491330 -0003147090C712604814E0000614C0000E130148EB038048EB070048130E0060130C1E1D -7DC431>I<EC03F0EC0FF8EC3E1EEC7C0E4A7E49487E130302E07F01071301A3EB0FC0A4 -150393CAFC14E05D1506150E5D1518010713386E5A156015E0ECF1C0DAFB800107B512C0 -6DB4C7FC5C4A9139007FFC000101EE1FE019806E6FC7FC0100160E497E495E496C6C1418 -010E1638496C6C1430011816709026381FE05C01705E496C6C1301D801C06D5C00030107 -1403D807806D91C8FC000F6D6C5B001F0101140E003F6E130C90C7EB801C48027F5BEEC0 -304891383FE070031F5B705AED0FF9923807FB806D6DB4C812C05E6F7E007F6E6D13016D -6E6C14804C6C13036C6C496D1400001F912603CFF85B6C6C90260F07FC130E6C6C90263E -01FE133C3D03FE01F800FF80F8C6B54890383FFFF0013F0180010713C0D907FCC890C7FC -42497CC64C>38 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A31201 -1380120313005A1206120E5A5A5A12600B1D78C41B>I<140C141C1438147014E0EB01C0 -1303EB0780EB0F00A2131E5BA25B13F85B12015B1203A2485AA3485AA348C7FCA35AA212 -3EA2127EA4127CA312FCB3A2127CA3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA212 -017F12007F13787FA27F7FA2EB0780EB03C01301EB00E014701438141C140C166476CA26 ->I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378137C133C133E131E131FA2EB -0F80A3EB07C0A3EB03E0A314F0A21301A214F8A41300A314FCB3A214F8A31301A414F0A2 -1303A214E0A3EB07C0A3EB0F80A3EB1F00A2131E133E133C137C13785BA2485A485AA248 -5A48C7FC120E5A5A5A5A5A16647BCA26>I<14F0A2805CA70078EC01E000FCEC03F0B414 -0FD87F80EB1FE0D83FC0EB3FC03A0FF060FF003903F861FC3900FC63F090383F6FC0D90F -FFC7FCEB03FCEB00F0EB03FCEB0FFF90383F6FC09038FC63F03903F861FC390FF060FF3A -3FC0F03FC0D87F80EB1FE0D8FF00EB0FF000FC14030078EC01E0C790C7FCA7805CA2242B -7ACA31>I<16C04B7EB3AB007FBAFCBB1280A26C1900C8D801E0C9FCB3AB6F5A41407BB8 -4C>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313 -005A1206120E5A5A5A12600B1D78891B>I<B612C0A61A067F9721>I<121EEA7F80A2EAFF -C0A4EA7F80A2EA1E000A0A78891B>I<1618163CA2167C1678A216F816F0A2150116E015 -0316C0A215071680A2150F1600A25D151EA2153E153CA2157C157815F85DA214015DA214 -035DA214075DA2140F92C7FC5C141EA2143E143CA2147C1478A214F85CA213015CA21303 -5C13075CA2130F91C8FCA25B131EA2133E133CA2137C137813F85BA212015BA212035BA2 -12075BA2120F90C9FCA25A121E123E123CA2127C1278A212F85AA2126026647BCA31>I< -14FF010713E090381F81F890383E007C01FC133F4848EB1F8049130F4848EB07C04848EB -03E0A2000F15F0491301001F15F8A2003F15FCA390C8FC4815FEA54815FFB3A46C15FEA5 -6D1301003F15FCA3001F15F8A26C6CEB03F0A36C6CEB07E0000315C06D130F6C6CEB1F80 -6C6CEB3F00013E137C90381F81F8903807FFE0010090C7FC28447CC131>I<143014F013 -011303131F13FFB5FC13E713071200B3B3B0497E497E007FB6FCA3204278C131>I<EB03 -FE90381FFFC0017F13F03901F80FFC3903C001FE48486C7E000EC7EA7F8048EC3FC0ED1F -E04815F00030140F007015F800601407126CB415FC7F7F1503A46C4813076CC7FCC8FC16 -F8A2150F16F0151F16E0A2ED3FC0ED7F8016005D5D4A5A4A5A4A5A5D4A5A4A5A4AC7FC14 -7C5C5C495A495A495A49C7120C131E5B013814185B5B485A4848143848C81230000E1570 -001FB612F0A25A5AB712E0A326427BC131>I<49B4FC010F13E0013F13FC9038FE01FE3A -01F0007F80D803C0EB3FC048C7EA1FE0120EED0FF0EA0FE0486C14F8A215077F5BA26C48 -130FEA03C0C813F0A3ED1FE0A2ED3FC01680ED7F0015FE4A5AEC03F0EC1FC0D90FFFC7FC -15F090380001FCEC007FED3F80ED1FC0ED0FE016F0ED07F816FC150316FEA2150116FFA3 -121EEA7F80487EA416FE491303A2007EC713FC00701407003015F80038140F6C15F06CEC -1FE06C6CEB3FC0D803E0EB7F803A01FE01FE0039007FFFF8010F13E0010190C7FC28447C -C131>I<ED0380A21507150FA2151F153FA2157F15FFA25CEC03BF153F14071406140C14 -1C141814301470146014C013011480EB03005B13065B131C13185B1370136013E0485A5B -120390C7FC1206120E120C5A123812305A12E0B812C0A3C8383F8000ADEDFFE0027FEBFF -C0A32A437DC231>I<000615C0D807C0130701FCEB7F8090B612005D5D5D15E015802606 -3FFCC7FC90C9FCAE14FF010713C090381F01F090383800FC01F0137ED807C07F49EB1F80 -16C090C7120F000615E0C8EA07F0A316F81503A216FCA5123E127F487EA416F890C71207 -5A006015F0A20070140F003015E00038EC1FC07E001EEC3F806CEC7F006C6C13FE6C6C48 -5A3901F807F039007FFFE0011F90C7FCEB07F826447BC131>I<EC07FCEC3FFF91B512C0 -903903FC03E0903907E000F0D91FC0133849C71258017EEB01FC01FE1303491307485A48 -5AA24848EB03F8000FEC01F092C7FC485AA3485AA3127FA29038007F80903801FFF09038 -0780FC39FF0E003E49EB1F8049EB0FC049EB07E0136001E0EB03F04914F8150116FC5BED -00FEA390C812FFA47EA57F123FA216FE121F15016D14FC120FED03F86C7EED07F06C6C14 -E06C6CEB0FC06C6CEB1F80017EEB3F0090383F80FE90380FFFF8010313E0010013802844 -7CC131>I<121CA2EA1F8090B712C0A3481680A217005E0038C8120C0030151C00705D00 -60153016705E5E4814014B5A4BC7FCC81206150E5D151815385D156015E04A5AA24A5A14 -0792C8FC5CA25C141E143EA2147E147CA214FCA21301A3495AA41307A6130FAA6D5AEB01 -C02A457BC231>I<14FF010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB -0FC049EB07E00007EC03F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03 -E013FC6C6CEB07C09039FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFF -C07F01077F6D13F8497F90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000 -079038007FF84848EB3FFC48C7120F003EEC07FE150148140016FF167F48153FA2161FA5 -6C151E007C153EA2007E153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8 -EB1F80C6B4EBFF0090383FFFFC010F13F00101138028447CC131>I<14FF010713E0011F -13F890387F80FC9038FC007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F048 -5A16F8007F140190C713FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C -1306150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116 -FCA4ED03F8A216F0D80F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001E -C75A001C495A000F495A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<121EEA -7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A -2B78AA1B>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121E127FEAFF80A213 -C0A4127F121E1200A512011380A3120313005A1206120E120C121C5A5A12600A3E78AA1B ->I<007FBAFCBB1280A26C1900CEFCB0007FBAFCBB1280A26C190041187BA44C>61 -D<EB0FFC90387FFFC03901F007F039078001FC000EC77E48147F48EC3F804815C0006014 -1F00FE15E07E7FA56CC7FC001CEC3FC0C8FCED7F80A2EDFF004A5AEC03F84A5A5D4A5A4A -5A92C7FC143E143C5CA2147014F05CA25C1301A35CA990C9FCAAEB03C0EB0FF0A2497EA4 -6D5AA2EB03C023467BC52E>63 D<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FFA2 -03707FED607FA203E07FEDC03FA2020180ED801FA2DA03007F160FA20206801607A24A6D -7EA34A6D7EA34A6D7EA20270810260147FA202E08191B7FCA249820280C7121FA249C87F -170FA20106821707A2496F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037FB5 -00E0027FEBFFC0A342477DC649>65 D<B8FC17E017FC00019039C00003FF6C6C4801007F -EF3FC0717E717E717E84170384170184A760A21703601707604D5A4D5AEF7FC04DC7FCEE -03FEEE3FF091B65A17FC0280C7B47EEF1FC0EF0FF0717E717E717E717E1980187F19C0A2 -183F19E0A8F07FC0A2198018FF4D1300A24D5AEF0FFC4D5AEF7FE048486C903803FFC0B9 -C7FC17FC17C03B447CC345>I<DB0FFE146092B500C013E0020314F0913A0FFC01FC0191 -393FC0003E02FFC7EA0F83D903FCEC03C74948EC01E74948EC00FF4948157F4948153F49 -48151F49C9120F485A491607120348481603A248481601A248481600A2123FA249176012 -7FA31900485AAE6C7EA21960A2123F7FA2001F18E07F000F18C0A26C6C160119806C6C16 -0312016DEE07006C6C16066D6C150E6D6C5D6D6C5D6D6C15786D6C5D6D6C4A5AD900FFEC -0780DA3FC0011FC7FCDA0FFC13FC0203B512F0020014C0DB0FFEC8FC3B487BC546>I<B8 -FC17F017FC00019039C00007FF6C499038007FC0017FED1FE0EF07F0EF03FC717E717E84 -727E727E727EA2727E85180385A2180185A38584A31A80AD1A00A36061A3611803611807 -61180F614E5A183F614EC7FC18FEEF03FC4D5AEF1FE001FFED7FC0486DD907FFC8FCB812 -FC17F094C9FC41447CC34B>I<B912F8A3000101C0C7127F6C6C48EC07FC17011700187C -183C181CA284A31806A4180704067FA395C7FCA4160EA2161E163E16FE91B5FCA3EC8000 -163E161E160EA21606A319C0A3F0018093C7FCA41803A21900A260A260A2181EA2183E18 -7EEF01FE170748486C147FB95AA33A447CC342>I<B912F0A3000101C0C7127F6C6C48EC -0FF817031701170018781838A2181CA3180CA4180E1806160CA21800A5161CA2163C167C -ED01FC91B5FCA3EC8001ED007C163C161CA2160CA793C8FCB08048487EB612F8A337447C -C340>I<DB0FFE146092B500C013E0020314F0913A0FFC01FC0191393FC0003E02FFC7EA -0F83D903FCEC03C74948EC01E74948EC00FF4948157F4948153F4948151F49C9120F485A -491607120348481603A248481601A248481600A2123FA2491760127FA396C7FC485AAD4C -B612C06C7EA293C7387FF000725A003F171F7FA2121F7F120FA26C7EA26C7E6C7EA26C7E -6D7E6D6C153F6D7E6D6C157F6D6C15E7D903FEEC01C7D900FFEC0383DA3FE0EB0F01DA0F -FCEBFE000203B500F81360020002E090C7FCDB0FFEC9FC42487BC54D>I<B6D8C003B6FC -A3000101E0C70007138026007F80913801FE00B3A991B7FCA30280C71201B3AC2601FFE0 -913807FF80B6D8C003B6FCA340447CC349>I<B612F0A3C6EBF0006D5A6D5AB3B3B3A449 -7E497EB612F0A31C447DC323>I<010FB512FEA3D9000313806E130080B3B3AB123F487E -487EA44A5A13801300006C495A00705C6C13076C5C6C495A6CEB1F802603E07FC7FC3800 -FFFCEB1FE027467BC332>I<B600C049B512C0A3000101E0C8387FFC006C49ED3FE06D48 -1680063EC7FC183C183860604D5A4D5A4DC8FC171E17385F5F4C5A4C5A4CC9FC160E5E5E -5E5E4B5A4B7E4B7E150F4B7E4B7E1577EDE3FE913881C1FFEC8381DA87007F028E6D7E14 -9C02B86D7E02F06D7E14C04A6D7E707EA2707E707EA2707F717EA2717E717EA2717E717E -A2717E717EA2717F8585496C82486D4A13FCB600C0011FEBFFE0A343447CC34C>I<B612 -F8A3000101E0C9FC6C6C5A5CB3B31830A418701860A518E0A3EF01C0A217031707A2170F -173F177FEE01FF48486C011F1380B9FCA334447CC33D>I<B56C933807FFFC6E5EA20001 -F1FE0026006FE0EE1BF8A3D967F01633A2D963F81663A3D961FC16C3A3D960FEED0183A2 -027FED0303A36E6C1406A36E6C140CA26E6C1418A36E6C1430A36E6C1460A26E6C14C0A3 -6E6CEB0180A3037FEB0300A292383F8006A36F6C5AA36F6C5AA26F6C5AA36F6C5AA36F6C -5AA26FB45AA370C7FC13F0A2486C143ED80FFFEF0FFEB500F0011C0107B512FCA34E447B -C359>I<B56C020FB5FC8080C6040013F06D6CED1F80D96FF8ED0F00A2D967FC1506EB63 -FEA2EB61FF01607FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E -6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE -01FF701386A2EF7FC6EF3FE6A2EF1FF6EF0FFEA217071703A217011700A201F0167E183E -487ED80FFF161EB500F0150EA2180640447CC349>I<ED1FFC4AB512C0913907F007F091 -391F8000FC027EC7123FD901F8EC0FC049486E7E49486E7E49486E7E49486E7E49C9127E -017E8201FE834848707E4848707EA24848707EA2000F84491603001F84A24848707EA300 -7F84A24982A300FF1980AD6C6C4C1300A4003F606D1603A2001F60A26C6C4C5AA26C6C4C -5AA20003606D161F6C6C4C5A000060017F4CC7FC6E5D013F5E6D6C4A5AD907E0EC03F06D -6C4A5AD901FCEC1FC0D9007E4AC8FCDA1F8013FC913907F007F00201B512C09126001FFC -C9FC41487BC54C>I<B712FCEEFFC017F800019039C0000FFC6C6C48EB01FF9338007F80 -EF1FE0170FEF07F018F8EF03FCA218FE1701A218FFA718FEA2170318FCA2EF07F818F0EF -0FE0EF1FC0EF7F80933801FE00EE0FFC91B612F017800280C9FCB3AA3801FFE0B612C0A3 -38447CC342>I<B712E016FF17C000019039C0003FF86C6C48EB03FCEE00FF717E717E71 -7E717E717EA284170384A760A21707604D5AA24D5A4D5A4DC8FCEE01FEEE07F8EE3FE091 -B6C9FC16FC913980007F80EE0FE0707EEE03FC707E160083717EA2717EA784A71A608417 -1FA21AE0716C13C02601FFE002071301B600C01680943801FC03943900FE0700CBEA3FFE -F007F843467CC348>82 D<49B41303010FEBE007013F13F89039FE00FE0FD801F8131FD8 -07E0EB079F49EB03DF48486DB4FC48C8FC4881003E81127E82127C00FC81A282A37E82A2 -7EA26C6C91C7FC7F7FEA3FF813FE381FFFE06C13FE6CEBFFE06C14FC6C14FF6C15C0013F -14F0010F80010180D9001F7F14019138001FFF03031380816F13C0167F163F161F17E000 -C0150FA31607A37EA36C16C0160F7E17806C151F6C16006C5D6D147ED8FBC05CD8F9F049 -5AD8F07C495A90393FC00FE0D8E00FB51280010149C7FC39C0003FF02B487BC536>I<00 -3FB912F8A3903BF0001FF8001F01806D481303003EC7150048187C0078183CA20070181C -A30060180CA5481806A5C81600B3B3A54B7EED7FFE49B77EA33F447DC346>I<B600C001 -0FB5FCA3000101E0C813F026007F80ED1F80F00F00A21806B3B3A7180E6D6C150CA2181C -131F6E1518010F163818306D6C1570606D6C14016D6C5D6D6CEC0780027F4AC7FC6E6C13 -1EDA1FE0137C913907FC03F00201B55A6E6C1380DB07FCC8FC40467CC349>I<B692383F -FFF0A3000301E003071300C649ED01FC4A5E017F705A6E5E133F616E1501011F5FA26D6C -4BC7FCA28001071606A26E150E0103160CA26D6C5DA2806D5EA26F1470027F156081023F -5DA281021F4A5AA26F1303020F92C8FC8102071406A26F130E0203140CA26E6C5BA2816E -5CA2EE8070037F1360A26F6C5AA216E092381FE180A216F3030F90C9FC16FBED07FEA36F -5AA36F5AA26F5AA3166044467EC349>I<B60107B500F890380FFFFEA3000301E0D9001F -90C813F06C0180DA0FFCED3FC091C86C48ED1F006C871C0E6D6C6E7E1C0CA26D6C6F5DA3 -6EDA06FF1538011F1A30A26E020E6D1470010FDB0C7F1560A26E021C7F0107DB183F5DA2 -856D6CDA301F4A5AA36D6C4A6C6C49C7FCA36D6C4A6C6C1306A3DB80016E130E027FDA80 -03140CA2DBC00380023FDA00015CA203E081021F01066D5CA36E6C486E6C5AA36E6C486E -6C5AA36F48EC1FE1020360A2DBFE7015F302010160020F90C8FCA2DBFFE015FB6E49EC07 -FEA36F486E5AA36FC86C5AA3031E6F5AA4030C16605F467EC364>I<003FB500E0011FB5 -FCA3C691C7000713E0D93FFC020190C7FC6D4815FC010F6F5A6D6C15E0A26D6C4A5A6D6C -5D4DC8FC6D6D5B6E6C13065F6E6C131C6E6C13185F6E6C13706E6C13605F913803FE01DA -01FF5B4CC9FC6E1387ED7FC616CCED3FFC6F5A5E6F7E6F7EA26F7E82A203067F150E9238 -0C7FC04B6C7E15389238301FF04B6C7E15E04B6C7E4A486C7E14034B6C7E02066D7F140E -020C6E7E4A6E7E143802306E7E4A6E7E14E04A6E7E49486E7E130349C86C7E496F7F5B49 -6C8201FF83000701E0020313F8B500F8021FEBFFF0A344447EC349>I<B66C91380FFFFC -A3000101F8C8000313C026007FE0923800FE0061013F17F06D6C5E80010F5F6D6C4B5A18 -036D6C93C7FC6E15066D160E6D6D140C181C6E6C14186E6C5C18706E6C146018E06E6C5C -6E6C495A17036E6C91C8FC5F6E6C13066E6D5A171C92387FC0185FED3FE06F6C5A17E06F -6C5AEEF980ED07FF6F90C9FCA26F5AB3A6923807FF800203B6FCA346447FC349>I<EAFF -FCA4EAF000B3B3B3B3B3A2EAFFFCA40E6476CA1B>91 D<01C01318000114384848137048 -C712E0000EEB01C0000C1480001C13030018140000385B003013060070130E0060130CA3 -00E0131C481318A400CFEB19E039FFC01FF801E013FCA3007F130FA2003F130701C013F8 -390F0001E01E1D71C431>I<EAFFFCA4EA003CB3B3B3B3B3A2EAFFFCA40E647ECA1B>I<13 -C01201EA0380EA0700120E120C121C12181238123012701260A312E05AA412CFEAFFC013 -E0A3127FA2123F13C0EA0F000B1D79C41B>96 D<EB07FC90383FFF809038F80FE03903C0 -03F048C66C7E000E6D7ED80FC0137E486C137F6D6D7EA36F7EA26C5AEA0380C8FCA4EC0F -FF49B5FC90380FFE1FEB3FC0EBFF00EA03FC485A485A485A485A127F5B176048C7FCA315 -3FA36D137F007F14EF6D9038C7E0C0003F13013A1FE00783F13B07F81E03FF802701FFFC -0113003A001FE0007C2B2E7CAC31>I<EA01FC12FFA3120712031201B3EC03FC91380FFF -8091383C07E091387001F89039FDE0007E02807F01FFEC1F8091C713C049EC0FE0491407 -17F0A2EE03F8A217FCA2160117FEAB17FC1603A217F8A2EE07F0A26DEC0FE017C06D141F -01FBEC3F80D9F380EB7E00D9E1C05B9039E0F001F89039C03C07E09039801FFF80C7D803 -FCC7FC2F467DC436>I<EC7F80903803FFF090380FC07C90383F000F01FCEB03804848EB -01C00003140F4848EB1FE049133F120F485AA2485AED1FC0007FEC070092C7FCA290C9FC -5AAB7E7FA2123F16307F001F15706C6C146016E06C6C14C06C6C13010001EC03806C6CEB -0700013F131E90381FC078903807FFF001001380242E7DAC2B>I<167FED3FFFA3150181 -82B3EC7F80903803FFF090380FC07C90383F000E017E1307496D5AD803F87F48487F5B00 -0F81485AA2485AA2127FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B00035C6C -6C9038077F806C6C010E13C0013F011C13FE90380FC0F8903803FFE09026007F0013002F -467DC436>I<EB01FE903807FFC090381F03F090387E00FC49137E48487F485A4848EB1F -80000F15C049130F121F484814E01507A2007F15F090C7FCA25AA390B6FCA290C9FCA67E -A27FA2123F16306C7E1670000F15606D14E06C6C14C0000314016C6CEB03806C6CEB0700 -013E131E90381F80F8903803FFE0010090C7FC242E7DAC2B>I<EC0FE0EC7FF8903801F8 -1E903803F03F90390FE07F8090381FC0FF5C133F495AA2ED7F0001FE131C92C7FCAFB67E -A3C648C8FCB3B2486C7E007F13FFA321467EC51E>I<EE0F80D901FCEB7FE0903A0FFF81 -F0F090393F07E3819039FC01FF033A01F800FE014848017E13E00007027FC7FC497F000F -8149131F001F81A9000F5D6D133F000792C7FC6D5B0003147E6C6C5B6D485A3903BF07E0 -90380FFF80260701FCC8FC90CAFCA25AA37F6C7E7F90B512F86C14FF16E06C15F86C6C80 -48B67E3A07C0000FFF48481300003FC8EA3F80003E151F48ED0FC0A2481507A56C150F00 -7C1680007E151F003E16006C153E6C6C5CD807E0495AD801F8EB07E0D8007FEB3F809026 -1FFFFEC7FC010113E02C427DAC31>I<EA01FC12FFA3120712031201B3EC01FE913807FF -C091381E07F091383801F802707FECE000D9FDC07F5C01FF147F91C7FCA25BA35BB3A848 -6CECFF80B5D8F83F13FEA32F457DC436>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FC -ADEA01FC12FFA3120712031201B3B0487EB512F8A315437DC21C>I<143C14FFA2491380 -A46D1300A2143C91C7FCADEC7F80EB3FFFA31300147F143FB3B3AA123E127F39FF807F00 -A2147EA25C6C485A383C01F06C485A3807FF80D801FEC7FC195785C21E>I<EA01FC12FF -A3120712031201B3A292381FFFE0A36F1300ED07F816E05E5E030EC7FC5D5D5D5D4A5A4A -5A4AC8FC5CEC3F804A7E14FF9038FDCFE09038FF8FF01407496C7E01FC7F14016E7E8181 -6F7E82151F6F7E821507826F7E8282486C491380B5D8F81F13F8A32D457DC433>I<EA01 -FC12FFA3120712031201B3B3B3A5487EB512F8A315457DC41C>I<D801FC01FFEC1FE000 -FF010701E0EBFFFC913B0F03F801E07F913C3C01FC07803F800007903C7000FE0E001FC0 -000349D97E1C130F2601FDC0D97F38804A143001FFDA3FF06D7E91C75BA2495DA3495DB3 -A8486C4A6C497EB5D8F81FB50003B512E0A34B2C7DAB52>I<3901FC01FE00FF903807FF -C091381E07F091383801F8000701707F0003EBE0002601FDC07F5C01FF147F91C7FCA25B -A35BB3A8486CECFF80B5D8F83F13FEA32F2C7DAB36>I<EC7F80903803FFF090380FC0FC -90383E001F496D7E496D7E48486D7E48486D7E48486D7E000F81A24848147E003F157FA2 -90C87E481680A44816C0AA6C1680A26D147F003F1600A2001F157E6D14FE000F5D6D1301 -00075D6C6C495A6C6C495A6C6C495A013E49C7FC90381FC0FE903807FFF89038007F802A -2E7DAC31>I<3901FC03FC00FF90380FFF8091383C07E091387001F83A07FDE000FE0001 -0180137F01FFEC3F8091C7EA1FC04915E049140F17F0160717F8160317FCA3EE01FEABEE -03FCA3EE07F8A217F0160F6D15E0EE1FC06D143F17806EEB7E00D9FDC05B9039FCF003F8 -91383C0FE091381FFF80DA03FCC7FC91C9FCAE487EB512F8A32F3F7DAB36>I<91387F80 -03903903FFE00790380FE07890393F801C0F90387E000E496D5AD803F8EB039F0007EC01 -BF4914FF48487F121F5B003F81A2485AA348C8FCAB6C7EA3123F7F121F6D5C120F6D5B12 -076C6C5B6C6C497E6C6C130E013F131C90380FC0F8903803FFE09038007F0091C7FCAEEE -FF80033F13FEA32F3F7DAB33>I<3903F803F000FFEB1FFCEC3C3EEC707F0007EBE0FF38 -03F9C000015B13FBEC007E153C01FF13005BA45BB3A748B4FCB512FEA3202C7DAB26>I< -90383FE0183901FFFC383907E01F78390F0003F8001E1301481300007C1478127800F814 -38A21518A27EA27E6C6C13006C7E13FC383FFFE06C13FC6C13FF6C14C06C14E0C614F001 -1F13F81300EC0FFC140300C0EB01FE1400157E7E153EA27EA36C143C6C147C15786C14F8 -6CEB01F039F38003E039F1F00F8039E07FFE0038C00FF01F2E7DAC26>I<1306A5130EA4 -131EA3133E137EA213FE12011207001FB512F0B6FCA2C648C7FCB3A4150CAA017E131C01 -7F1318A26D133890381F8030ECC070903807E0E0903801FFC09038007F001E3E7EBC26> -I<D801FC147F00FFEC3FFFA300071401000380000181B3A85EA35DA212006D5B017E9038 -077F80017F010E13C06D011C13FE90380FC078903803FFF09026007F8013002F2D7DAB36 ->I<B539F001FFFCA3000790C7EA7FE06C48EC1F8000011600160E1200160C017F5CA280 -013F5CA26E1370011F146080010F5CA2ECF00101075CA26D6C48C7FCA26E5A01011306A2 -6D6C5AA214FF6E5AA215B8EC3FB015F06E5AA36E5AA26E5AA36EC8FC2E2C7EAA33>I<B5 -00E0B539E03FFF80A30007903C000FFE000FFC00D803FCD903F8EB03F8F001E012010301 -5D6D80000060A26D6E13036DD9037E91C7FCA20280017F5B013FD9063F1306A2D91FC06E -5AED0C1FA2D90FE06E5AED180FA2D907F06E5AED3007A2D903F86E5AED6003A2902601FC -E06D5AEDC00117FCD900FFECFD80ED800017FF027F92C8FC92C77EA26E147E023E143EA2 -021E143C021C141CA2412C7EAA46>I<B539F007FFFCA30003D9C00113C0C6496C130001 -7F14FC013F5C6E13E06D7E010F495A6D6C485A02F890C7FC903803FC060101130E6E5A90 -3800FF186E5AEC3FF05D141F140F6E7E81140FEC0DFCEC19FEEC38FF4A7E9138603F8002 -C07F0101131F49486C7E02007F01066D7E010E1303496D7E013C80017C80D801FC1580D8 -0FFE4913C0B5D8800F13FFA3302B7FAA33>I<B539F001FFFCA3000790C7EA7FE06C48EC -1F8000011600160E0000150C6D141C6D1418A26E1338013F1430A26D6C5BA26E13E0010F -5CA26D6C485AA2ECF803010391C7FCA2903801FC06A2ECFE0E0100130CA2EC7F18A215B8 -EC3FB0A2EC1FE0A36E5AA26E5AA36EC8FCA21406A35CA25CA2123C007E5BB4FC5CA25CEA -FE01387C0380D87007C9FCEA3C1EEA0FFCEA03F02E3F7EAA33>I<003FB612E0A29038C0 -003F90C713C0003CEC7F800038ECFF00A20030495A0070495AA24A5A0060495AA24A5A4A -5AA2C7485A4AC7FC5B5C495A13075C495A131F4A1360495A495AA249C712C0485AA2485A -485A1501485A48481303A24848EB07804848131F00FF14FF90B6FCA2232B7DAA2B>I<B9 -FCA23002809B31>I<BF1280A26102809B62>I<001EEB0780007FEB0FE039FF801FF0EBC0 -3FA4EB801F397F000FE0001EEB07801C0A76C231>127 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fv cmbx12 24.88 45 -/Fv 45 122 df[<96380FFFFE060FB612E04DB712FC051F16FF94B912C0040784041F18 -F8047F9126FC001F7F4BB6008001017F030702F8C8EA3FFF4B02E0030F7F033F02804B7F -4B49C9127F92B54893B57E4A02F05D4A4A4B804A4A5D4A4A84634A91C9FC4A5BA24A5B51 -80755C91B5FC5EA3755CA2755C755C755CE23FFEC8FCF40FF899CAFCAF083FB612FCBFFC -A9C702FCC912038787B3B3B3B2003FB800F0013FB812F0A9>116 -144 123 271 129 12 D[<EF01F8EF07FC170F171F177FEE01FF1607161F93B5FC150315 -3F0203B6FC49B7FCB9FCA615C3ECFC03EBFE00C8FCB3B3B3B3B3AE007FBC1280A9>81 -135 110 262 116 49 D[<93381FFFF00303B612E0033F15FC4AB812C0020717F0021F17 -FC027F17FF49BA12C0010719F049DA800F814901F8C715FE4901C0021F804948C8000781 -49486F814801F00300814849708048018070804890CA6C806E70804813F002FC7080486D -70158080486E6F15C0817315E081B6836F19F0A3861DF8A56C5CA26C5CA26C5C6C91CAFC -6C5B000113F826007FE01AF090CCFC62A21DE0A297B6FC1DC0A24F1580A24F150064A24F -5C64614F5C644F5C644F91C7FC96B55A4E5C634E5C4E5C4E5C98C8FC4E5B4E5B4E5B95B5 -12E04D5C624D49C9FC4D5B4D5B4D13E04D5B4D5B4D48CAFC4C5B4C5B4C5B4C01C0ED0FF8 -4C5B4C90C9FC4C5A4C48EE1FF04B13F04B5B4B5B4B5B4B90CAFCDB3FFC173F4B4818E04B -5A4A5B4A49177F4A90CBFC4A4818FF5D4A485F4A48053F13C04ABBFC91BCFC5B5B5B5B49 -1B805B5B90BDFC5A5A5A5A481C005A5ABEFCA464A4>93 135 117 -262 116 I[<933807FFFE93B612F8030FEDFF80033F16F04AB812FE0207717E4A18E002 -3F844A9026FC003F14FC49B500C00107804901FCC70001804901F06E6C14C04901C06F80 -4990C97E4A708049488549B46C6F8015E090B500F8846F8148878181A2481C808285A461 -A36C92C8FC1D006C5CA26D5B6D494B5C6D5B010713C0010190C95D90CB5A64A24F5C6461 -644F5C96B6C7FC634E5C4E5C4E14E04E5C063F5C95B548C8FC050314F80407B612E00307 -B712804B4BC9FC19F885F1FFC01AF86F16FF92C86C14C0060714F0060114FC7280073F6D -7E738073807314F888738085881D807315C0A21DE0861DF0A21DF8A27414FCA41DFEEB7F -F03801FFFC487F000F6D7E4880A248804880A3B67E1DFCA45014F8A34B19F07E97B612E0 -5D1DC06C5C4B4B15806C91C9FC02FC4C15006C494C5C6C01C0616E4C5C6C01F84C5C6C01 -FE4C5C6C6D6C4B5C6D01F04AB65A011F01FF020792C7FC6D02F8017F14FC010391B85A01 -0019E0023F1880020F4DC8FC020317F0DA007F1680030303F8C9FCDB000F49CAFC>95 -137 118 262 116 I[<F37FC0517E6262A2626262A2626297B5FC61A2616161A2616161 -96B6FCA2606060A2606060F07FEF19CF18FF4D138F4D130F18FE1707EF0FFCEF1FF8EF3F -F018E0177FEFFFC04C138018005E4C5A4C5A4C5A5F163F4C5A4C5A5F5D4B90C7FC4B5A4B -5A5E151F4B5A4B5A5E15FF4A5B4A90C8FC4A5A5D140F4A5A4A5A5D147F4A5A495B4990C9 -FC5C1307495A495A5C133F495A495A485B91CAFC5A485A485A5B121F485A485A485A90BE -12FEA9CC003F02E0C7FCB3A6040FBA12FEA9>103 136 122 263 -116 I[<010E1AE0D91FC0F007F002F0183F02FFEF01FF03E0160F03FF4BB5FC04FE91B6 -5A93B95AA26499C7FC6363636363636398C8FC1AFC621AE06297C9FC19FC19F019C04ECA -FC18F0DAF87F49CBFC92CEFCB3A394B5FC041F14F84BB77E030716E0031F16FC037F16FF -02F9B912C002FBDA800F8091B526F0000114F893C86C7F03FC6F7F03F06F7F03C06F804B -6F804AC96C804A854A70804A85854A856D5A90CC6C7FA21D80A21DC0A21DE086A21DF0A5 -1DF8A3EB7FC03801FFF000077F4813FE5A487F815A81B6FCA31DF0A41DE0625D6C1CC092 -CAFC5C1D806C01F894B6FC4A1A006C13C001F8CA485C6C6C626D5F0007636D4D5C6C6D61 -6C01E05E6C6D4C5C6E4C5CD97FFE93B548C7FC6D6C6C4A5C6D01E002075C010701FC023F -5C6D9026FFE003B612C06D91B8C8FC6D6C5F021F17F0020717C0020194C9FC6E6C15F003 -0792CAFCDB007F13C0>93 137 117 262 116 I[<95380FFFE00503B6FC053F15C04CB7 -12F8040782043F16FF93B97E4B8403079126FE003F7F031F02E001037F4B91C87F92B500 -FCED3FFC4A02F06F7E4A02C0150F4A4A92B5FC4A91C812034A01FC5D4A494B14804A495D -91B5FC494A4B14C0495C494A5DA24991C9FC5B5D5B5D5B90B57114805D48731400A2745B -484A705B745B48070013E098C8FCA2485CA35AA35AA34B903807FFE0053FEBFF80484BB6 -12F04C15FC040F15FF4C16C04C16F093267FF803809327FF80003F13FEB600C190C7000F -7FDBC3FC6E80DBC7F86E804C6E80DBCFE06E80DBDFC06F7F4C6F7F03FF8493C96C7F5D1D -804B7014C0A21DE05D1DF0A25D7414F8A34B19FCA47E1DFEA25DA67EA56C80A46C1CFCA3 -7EA21DF87E81626C1CF0A26C1CE0A26D6D19C0626D1B806D6D1900626D6D606D6D4C5B70 -5F6D95B55A6D6E4A5C6D6E4A5C6E01F84A5C6E6D021F91C7FC6E01FF027F5B0207DAF007 -B55A6E91B712F00200606F1780031F4CC8FC030316F8030016C0041F4AC9FC04001480> -95 137 118 262 116 I[<48B4FCA3487F14E014FE91B512F893BB12E0A45AA41EC01E80 -1E0048646565A2656565654899C7FCA26464646402E0CB5BD83FFCCB5A494E5B505B4997 -C8FC505A505A49183F505A007F4F5A63494D5B4F5B614F90C9FC4F5A4848604F5A4F5A19 -FFCB485B4E5B624E90CAFC604E5A61183F4E5AA24E5A5F615F4D5BA25F4D5BA25F96CBFC -5FA24D5AA25EA24C5BA25EA25EA24C5BA25EA35E60A293B5FCA35DA35DA35D60A35DA65D -A75DAE6F5CA36F5C6F91CCFC6F5B6F5B9238007FF0EE1FC0>99 142 -115 267 116 I[<F31FF0517E517EA2517EA3507FA25080A25080A35080A25080A35080 -A25080A397B67EA24F81A34F82A24F82A34F82A2DF1FFD811AFC62073F6D80A2DF7FF081 -871AE007FF6D80A24E01C081871A804E6E81A24E0100828761060F6E81A24E4883876106 -3F6F80A24E486E80A26106FF6F80A24D496E80A2614D7081A24D90C86C81A260050F7081 -A24D486F81A260053F7180A24D487080A26005FF7180A24C497080A2604C7281A24C90CA -6C81A25F040F728194BDFC4C88A34C88A24C88A3DCFFE0CB001F80A24B497280A25F4B74 -81A24B90CC6C81A25E030F7481A24B487381A25E033F7580A24B487480A25E03FF7580A2 -4A497480A25E4A7681A24A90CE6C81A25D91261FFF8074810103B512FEB900C0040FBA12 -FEA9>159 145 120 272 176 65 D[<BFFC1EFEF6FFE01FFCF7FF8020E020FC8C7A7EC7 -00034ACA001F15E00B0381E3007F800C1F80788078800C01818E788179808B8E8B8E8B8E -A27980A4791580AB551500A4555CA26A676A676A555C9CB65AA2545D5492C7FC545C5414 -F80C3F5C9BB65A5315800B0F4AC8FC0B7F14F80A1FB612E094BCC9FC1FF81F801FF8F7FF -8020F020FE4DCA00016E7EE3003F14F00C07807814FE0C006E7E79807980798079807980 -8E7980791580A27915C023E08C23F0A223F88CA223FCA38C23FEAB5614FCA55614F8A29D -B612F0A35515E06723C055158067551500555C555C9CB6FC0C035D5415E00C1F5D9BB75A -0B0F93C7FCC212FC6921E021800EFCC8FC20F09DC9FC1FF00CFCCAFC>143 -142 120 269 165 I[<0803B500C0EE01F00703B600FEEE03F8077FDBFFE015070607B8 -00FC150F063F05FF151F4DBA00E0143F050F07F8147F053F07FE14FF94BC5B04039326F8 -000FECC003040F4BC86CEBF007043F03C0030F6D5A93B648C900036D5A4B03F09339007F -FF3F030703C0051F90B5FC4B92CB7E033F02FC18034B02F08492B648844A0380193F4A92 -CD7E4A4A864A4A864A02F0864A4A864A8991B65A494B874992CF7E4C885B494A885E498B -494A88A2495C8D90B65A8D5A5E48217FA24892D1FC223FA25A5DA248211FA3485CFA0FF0 -9FC7FCA25AA45DA3B6FCB27EA381A47EA46C80FA07F0FA0FF87EA2817EA36C6F1D1F23F0 -7E827E223F6D6E1EE0A26D6E1D7F23C06D6E1DFF7F705213806D806D55130070646D6F64 -6D6F515A6E6E1B1F6E6E515A6E6E515A6E6E1BFF6E6E505B6E6E505B6E6F4F5B6E03E04F -90C7FC6F6EF13FFE6F02FC4F5A030F02FF4E485A6F03C005075B030103F0051F5B6F03FE -057F1380043FDAFFE00303B5C8FC040F03FE033F13FC0403DBFFF80107B55A040093B812 -E0053F1A80050F4FC9FC050119F8DD003F18C0060795CAFCDE007F16F0070393CBFCDF00 -0314C0>141 146 115 271 168 I[<BE12FEF5FFFCF6FFC01FFCF7FF8020E020FC20FF21 -C0C7000392C9000116F0E2000F810B0015FE0C1F800C0315C00C00810D3F8079800D0714 -FE79807981796C808C7A807A808F7A807A808C8F7A818DA17E8DA17E8DA17EA27B80A2A1 -7E8DA17EA28DA17EA3A113808DA3A113C0A57B15E0A6A113F0B3A2A113E0A569A113C0A5 -A11380A269A2A11300A3575CA2A15AA269A15A69A15AA2575CA15A69A15A9EB6FC5692C7 -FC6B565C68565C565C565C565C9DB65A5592C8FC0D075C555C0D3F5C9CB65A0C0315C00C -0F5D0C7F92C9FC0B07B612FC52B712F0C212C09ECAFC20FC20F020800DFCCBFC1FE00CFC -CCFC53CDFC>156 142 120 269 178 I[<C21280A421C0A5C700030380C81201F40007F5 -007F0C1F14E01E071E018A1F3F8B8B8B7913F0A28B8BA2207FA3203F21F8201FA4200FA3 -21FC2007A4F47FC0A3F803FEA49DC7FCA31CFFA463A263A26363631B7F50B5FC1A1F95B8 -FCA9953880001F1A01747E1B1F878787A287A287A41C7FAA99CBFCB3AFBC12F0A9>127 -141 120 268 146 70 D[<BC1280A9C7000103C0C8FCB3B3B3B3B3B3B0BC1280A9>73 -142 121 269 87 73 D[<BC12F0A9C700030380CEFCB3B3B3B3A5F8FF80A4672100A667 -A368A21F07A41F0FA3555AA21F3FA21F7FA21FFFA2666668666666666653B5FC651D0F53 -5C1D7F0A03B6FC1C1F0903B7FCC1FCA468A5>121 142 120 269 -140 76 D[<B96C0C3FB812E07266729BB9FC7265A37265A27265C70003A101F8C8FC72F5 -0FF7A2706DF51FE7A3706EF43FC7A2706EF47F87A2706EF4FF07A2706EF301FEA3706EF3 -03FCA2706EF307F8A2706EF30FF0A2716DF31FE0A3716EF23FC0A2716EF27F80A2716EF2 -FF00A2716E4F5AA3716E4F5AA2716E4F5AA2716E4F5AA2726D4F5AA3726E4E5AA2726E4E -5AA2726E4EC7FCA2726E4D5AA3726E4D5AA2726E4D5AA2726E4D5AA2736D4D5AA3736E4C -5AA2736E4C5AA2736E4CC8FCA3736E4B5AA2736E4B5AA2736E4B5AA2736E4B5AA3746D4B -5AA2746E4A5AA2746E4A5AA2746E4AC9FCA3746E495AA2746E495AA2746E495AA2746E49 -5AA3756D495AA2756E485AA2756E485AA2756E48CAFCA375ECF1FEA275ECFBFCA275ECFF -F8A2755DA3765CA2765CA2765CA27691CBFCA3765B4A7F49B500FE715BB900FC51BB12E0 -765BA2765BA3775A775A775A>203 142 120 269 220 I[<B900C04EB912F8848484A284 -848485C7000399C7000302FCC7FC73DF000F90C8FC73745A858585A28570807081708182 -867081708170818286718071817181718183877181718171818487728172817281728184 -8872817281738085897381738173817381A27381738174807481868A7481748174817481 -A27481758075817581878B758175817581878B7680768176817681888C76817681768189 -8C7715807715C07715E07715F08921F87715FC7715FE7814FF8A22877815C77815E77815 -F77815FFA28A8A8B8B8BA28B8B8B8BA28B8C8C8C8CA28C8C8C8CA28D8D8D8D8DA24A6D88 -49B500FE88B900FC86227FA2223F221F220F2207A27C5A>165 142 -120 269 182 I[<97B512F0077FECFFE00607B712FE067FEEFFE00503B912FC051FF0FF -80057F19E00403BB12FC040F9226E0007F14FF043F02FCC7000315C04C02E0DA007F804B -B60080031F14F8030702FCC9000314FE4B4A70804B02E0706C80037F0280051F14E092B6 -CB6C804A4A72804A4A72804A02F00600804A4A737F4A4A73804A8B4A4A738091B6CD6C80 -494A7480A2494A7480494A7480498C4C86498D4C87498D494A7580A290B68B4C87488EA2 -4892CF6C80A3488E4B88A2488EA3484A761580A34823C0A5484A7615E0A7B621F0B36C23 -E0A26F64A56C23C0A46F646C2380A36C23006F64A26C6AA270636C6AA26C6A70636C6A70 -636D69A26D6E98B65AA26D6E505DA26D6E5092C7FC6D6870626D6E505C6D686D6F4F5C6E -6E4F5C6E6E4F5CA26E6E96B65A6E6E4E92C8FC6E6E4E5C020102FF060F14F86E6F4D5C6F -6E4D5C6F02F094B65A030F6E4C92C9FC6F02FE04075C03016E6C031F14F86F03F092B65A -043F02FE020715C0040FDAFFF090B7CAFC040392B812FC04001AF0051F198005074ECBFC -DD007F17E0060F94CCFCDE007F15E0070002F0CDFC>148 146 115 -271 175 I[<BE12F8F5FFF01EFF1FE01FFCF7FF8020E020F820FEC7000392C9000781E2 -003F15C00B03810B00810C3F8078800C07807880788178818E8B8E8B8E8B8EA28EA28B8E -A42380AC2300A46A67A26AA26A676A676A9CB65A6A665492C7FC545C0C1F5C545C9BB612 -E00B075D0B3F5D0A07B648C8FC95BB12F820E0208055C9FC1FF09CCAFC1EF00BF8CBFC06 -80D0FCB3B3B2BB12FEA9>137 142 120 269 159 I[<BD12FCF4FFFCF5FFE01EFCF6FFC0 -1FF01FFE797E20E0C7000392C96C15F80A0181E2003F14FF0B07810B0115E0776C807880 -7880788078808A78818E7881A28E8B8EA37980A48EAA6AA3676AA26AA29CB65AA26A545D -9FCAFC66545C545C545C545C9BB612C0535D0B074ACBFC0B3F5C52B612F00A7F15C095BB -CCFC1FF81FC054CDFC1EF81EFE787E95C8000315E0E1003F14F80A0F14FE0A0380768176 -6C807780778077808C77807780A27781A27781A28DA28A8DA88DA98DA87BED1FC0A1EB3F -E0A28AA28D8AA1137F7C15C08A7818FF7C1580786F5B781900BB00FC6F6F5B796E495A79 -02FEEB1FFC799139FFC07FF80D0792B55A0D015F796C5E0E1F5E0E034BC7FCD4001F14F8 -E7003F13C0>163 144 120 269 173 82 D[<93260FFFF8163E4BB600E0153F031F03FE -5D037FDBFFC05C0203B800F05B020F05FC5B4A05FF5B027FF0C00F91B526FC000FECF01F -010302C0D9007F6D5A4949C800076D5A4901F8030090B6FC4901E0163F4949160F494982 -90B5CA12014A834849844849181F87484984A2484984874886A248498588A24887A388A2 -B58680A36E85A3806E85A28080816C6E725A03F096C7FC8115FE6F7E6C15F0EEFF8017F8 -6CEEFFC018FC6CEFFFE019FE6CF0FFF01AFE6CF1FFC06C1AF01BFC6C1AFF6D1AC06D866D -1AF86D866D866D866D876D87023F866E860207860201866E7E031F85030385ED007F0407 -1980EE003F050318C0EF001F060117E0F0000F1900080F15F01A031A007514F81B1F8787 -7514FC87A2007F86486C86A288A288A46D86A31EF87FA37F1EF0A26D626D1CE0A27F6D50 -13C0A26E1B806E616E1B0002F896B5FC6E4E5B6E4E5B6E6C5F03E04D5B03F84D5B03FE4D -5BDBFFC093B55A04F803035C496CD9FF80021F91C7FCD9FC1F02FF49B55AD9F80792B75A -496C19F049C66149011F18804901074DC8FC90C817F848031F16C04803004BC9FC007C04 -011480>102 146 115 271 129 I[<000FC312F8A6488EA304C0C7001F02FCC7120103F8 -C8F0000F03C01C0192C9737E02FC1E1F4A8A02E01E034A8A4A8A4890CA757EA249203F49 -201FA349200FA2492007A4492003007F8EA4498CA848487A1380A6CC99C7FCB3B3B3B3AA -030FBD12F8A9>145 140 120 267 162 I[<BB00C00507B812F8A9C7001F4ACE000192C7 -FC71E1000713E06E791380A2846E5590C8FC846E555A846E555AA26E6F64223F846F545A -846F545AA26F6E6469846F535B856F5390C9FC856F66210F856F535A856F535A8570525A -A28570525A8570515B8570515BA2706F96CAFC688670515A8670515A867064203F867150 -5A8671505A8671636786714F5B87714F90CBFC87714F5AA287714F5A87714F5A87724E5A -A2726E5E1FFF87724D5B87724D5B887296CCFC6688724D5A88724D5A8872601E3F88734C -5A88734C5A88734B5BA21CFF734B5B1D8373038790CDFC1DC773EDCFFEA273EDEFFC1DFF -A2735EA2745DA2745DA3745DA2745DA27492CEFCA3745CA2745CA2745CA3755BA2755BA2 -755BA2755BA27590CFFC755A>165 144 123 269 176 86 D<93B512FC037FECFFF00207 -B8FC023F17E091B912F84918FE0107727E499126C0007F14E04901E0C7000F80496D0203 -80496D020014FE6F6F7F90B570806F6F8085486E6F807380A27380A28885886C5CA26D49 -82886D5B6D5B010713C0010190CAFC90CCFCA90603B7FC050FB8FC0403B9FC167F0307BA -FC153F4AB7EA807F020FEDE000023F02FCC7FC91B612E0010392C8FC4914FC011F14F049 -14C0495C90B548C9FC485C485C485C485C5A5D485CA24891CAFCA3B6FC5CA397B6FCA461 -806C60F107EF6C6E150F6F16CF6C183F6FDB7F8F806C6EDBFF0F14E06C02FCDA03FE15FE -6C6E91260FFC0791B5FC6C6E6CD93FF817806C923AF803FFF003013F91B6487E010FEF80 -00010394C77E010004FC141F021F03F0140702010380DA007F1400DA000701F8CDFC695F -79DD71>97 D[<ED1FF0017FB5FCB7FCA9EA003F1307A27FB3B296383FFFC00607B512FE -063FECFFE04DB712F8050716FF051F17C0057F17F094B5D8C00F8004F301FCC714FE04F7 -01E0023F7F93B50080020F804DC86C14E005F80301804D6F804D707F05808294CA804C71 -7F4C7180A24C71808BA27680A28B88A28BA28BA3888BA52080B02000A56764A267A36764 -67A2525CA267647062704D91C7FC704D5BA2714C5B7193B55A05F04B5CDCBFF84B5CDC1F -FC030F5C4B6CB44B91C8FC7001C0027F5B4B6C01F00103B55A4BC601FF013F14F04B6D90 -B712C04B011F94C9FC4B6D16FC4B010316F092C86C15804A030F02F8CAFC90CB49CBFC> -113 144 121 270 129 I<94387FFFF0041FB612E093B712FE0307707E031F17F092B97E -4A18FE020784021F9126F8000F14804A0280010014C04A49C74814E049B500F85C494A17 -F0494A5C495C494A4A14F84991C8FC5D495B90B5FC5D5A485C7314F05A4B6F14E05A7314 -C0487214804B93383FFE00F20FF84896C8FCA4485CA5B6FCB07EA281A37EA36C80A37E6F -18FE6CF201FFA26C6E5F1CFE6C801B076C6EEF0FFC6D7F70EE1FF86DF13FF06D6E167F6D -6EEEFFE06D02F84B13C06D6E5D6D02FF030F13806D03C0023F1300023F02F0903801FFFC -6E9126FF801F5B020792B65A6E18C0020060033F4CC7FC030716F8030016C0041F4AC8FC -DC007F13C0585F78DD67>I[<F53FE098B6FC4FB7FCA996C77E1B0FA287B3B294383FFF80 -040FB512FC93B71280030716E0031F16F8037F16FE4AB9128702074AC66C13C7021F02E0 -010713F74A91C890B6FC4A01FC153F49B548150F4902E081494A81494A814991CA7E495B -8749498390B548835A5D5AA2485CA25A5D5AA35AA25D5AA5B6FCB07EA57E81A37EA27EA2 -817EA26C80A26C626C6E5F636D7F6D6D94B6FC6D606D6D1607705D6D6E4B81010102F015 -7F6D6E92B712FE6E01FE020301EF91B512806E6D6C011F13CF020FDAF801B5120F020391 -B612FE6E17F86E6C16E0030F16800301EDFC00DB003F14E0040049C74AC8FC>113 -144 120 270 129 I<94387FFFC0040FB6FC93B712E0030716FC031F16FF037F17C04AB9 -12F00207DAF80380021F912680003F13FE4A49C7000F7F4A01F802038049B5486E804902 -C06E6C7F494A6F7F4991C9FC49727F4949707F4B84498490B548707F5A4B198048855D48 -1CC086481CE05D5A871DF05AA25D5AA21DF887A2B6FCA392BBFCA51DF00380CDFCA77EA4 -817EA37EA2817EA26CF307F06FF00FF87E816C1B1F6F19F06C1B3F6D6DF07FE06D7FF4FF -C06D6E4C13806D6E5E6D02F04C13006D6EEE1FFE6D6E4C5A6D6C01FFEEFFF86E02E00203 -5B6E02FC021F5B02079126FFC003B55A6E92B7C7FC020060033F17F8030F17E003011780 -DB003F03FCC8FC040315C0DC000F01F8C9FC5D5F7ADD6A>I[<95383FFF80050FB512F094 -B612FE040781041F16C0047F824BB87E0307DAF8077F031FDAC00F7F4B49C6487F4B495B -92B500F0814A4A5B4A5C4A93B612805F4A91C7FC5C5E5C5E5C731400A24C6E5B91B56F5B -A2735B070313E00700138097C8FCB3A4BA12F8A9C702FCCBFCB3B3B3B3A2003FB9FCA9> -81 144 121 271 71 I<F5FFC093260FFFFC030F13F04BB600E0027F7F031F03FE49B512 -FE037F9226FF8007800203B8EAF01F020FDDFC3F15804A7148133F027FDA003F90B500F0 -14C091B500F80107ED807F4902E00101ECFC00010702806D6C5B93C87E49496F7F49496F -7F49496F6D6D1380491A8077130090B5486F6E6C5AF503F84875C8FCA2484A6F80A44887 -AB6C63A46C6E4B5CA26C63A26D6D4B5CA26D97C9FC6D6D4B5B6D6D4B5B6D6D4B5B705C01 -0102E049B512E06D02F801075C4902FF013F5C4992B648CAFC496002F317F090260FE07F -1680031F4BCBFC90261FC00115E0DB000F01FCCCFC013F91CFFCA3137FA280A380A28080 -806E7E15F092B812F06DF0FFE01BFEF3FFC06D1AF81CFE767E6D1BE06D87896D1BFE6D87 -7F6E878A0103BD7E130F013F8890BEFC4802E0C9003F814891CBFC4801FC180F48490601 -804849727E484985884849737F88A2B55A88A66E616C65A26E616C6D4F5B6C656E616C6D -4F5B6C6D96B55A6C6D6C05035C6F5FC602F0051F49C7FC6D01FC057F5B6DD9FF800303B5 -5A010F02F8033F14E06DDAFFE0010FB65A010192B9C8FCD9003F19F8020F19E0020196C9 -FCDA001F17F0030194CAFCDB000192CBFC6A887ADD74>I[<ED1FF0017FB5FCB7FCA9EA00 -3F1307A27FB3B2963803FFFC073FEBFFE096B612F8060715FE061F6F7E4E16E095B87E4D -D9FC03804DD9C000804D48C76C7FDD0FF880DD1FE0824D486E804D5A05FEC881DCF1FC81 -5F04F385EEF7F04D81EEFFC0A24D84A294C9FCA25EA35EA45EB3B3AFB9D8E001B912C0A9 ->114 143 119 270 129 I[<EC3FC0ECFFF0010313FC497F497F498049804980A290B67E -A24881A86C5DA26D5CA26D5C6D5C6D91C8FC6D5B6D5B010013F0EC3FC091CAFCB3A3ED1F -F0017FB5FCB7FCA9EA003F1307A27FB3B3B3B0B91280A9>49 144 -119 271 65 I[<ED1FF0017FB5FCB7FCA9EA003F1307A27FB3B3B3B3B3B3ACB912C0A9> -50 143 119 270 65 108 D<DB3FE0912601FFFC943801FFFC017FB5031FD9FFE0041FEB -FFE0B792B600FC93B612FC060303FF030315FF060F04C0020F16C0063F04F0023F16F095 -B86C91B87E4DD9FC036E49D9FC03804DD9C0006E49D9C000804D48C7003F6D4948C7003F -7FDD0FF86EDB0FF880D8003F4B48714848830107DB3FC06E9126C03FC06E804D484E5A6D -4BC86F48C881DCE1FE6FDAE1FE814D61DCE3F8DEF3F884DCE7F0F0F7F04D6F4B81DCEFC0 -F0FFC0A2DCFF804F84A294C993C9FCA24C61A34C61A44C61B3B3AFB900E090B900E090B9 -12E0A9B35D77DCC2>I<DB3FE0913803FFFC017FB5033FEBFFE0B792B612F8060715FE06 -1F6F7E4E16E095B87E4DD9FC03804DD9C000804D48C76C7FDD0FF880D8003FDB1FE08201 -074B486E804D5A6D03FEC881DCE1FC815F04E385EEE7F04D81EEEFC0A2DCFF8084A294C9 -FCA25EA35EA45EB3B3AFB9D8E001B912C0A9725D77DC81>I<94381FFFF00407B612C004 -7F15FC0303B87E030F17E0037F17FC4ABAFC4A9126FC007F80020F02C0010714E04A49C8 -80027F01F8033F13FC91B5486F7F4902C003077F494A6F804991C96C8049497080494971 -7F49874949717FA290B548717F48884B83481D80A2481DC04B83481DE0A2481DF0A3484A -7114F8A4481DFCA5B61BFEAF6C1DFCA56C6E4D14F8A36C1DF0A36C1DE06F5F6C1DC0A26C -6E4D1480A26C1D006F5F6C646D6D4D5B6F94B5FC6D636D6D4C5C6D6E4B5C6D6E4B5C6D02 -F0031F5C6D6E4B91C7FC6D6C01FE92B512FC6ED9FFC001075C6E02FC017F5C020791B812 -C0020196C8FC6E6C17FC031F17F003031780DB007F03FCC9FC040715C0DC001F01F0CAFC -675F7ADD74>I<DB1FF091381FFFC0017FB50203B6FCB7021F15E095B712FC050316FF05 -0F17C0053F17F094B912FC04F1DAC01F8004F79026FC00018093B500E06D6C14C0D8003F -93C86C8001074B030F8005F86F806D03E06F804D6F804D8194CA6C7F4C864C71805E7680 -A27680A27680A28B88A28BA288A28BA4882080B0200064A467A26467A3525CA267646764 -67647062704D91C7FC7094B55AA2714B5C714B5C714B5C05F84B5C71033F5C05FF4B91C8 -FC06C049B55A04FB01F001075C04F801FF017F14F07190B712C0051F94C9FC7116FC0503 -16F0DD007F1580060F02F8CAFC060049CBFC96CDFCB3ACB912E0A9718579DC81>I<DB7F -C049B47E90B6021F13F8B7027F13FE4DB67E4D15E04D814D814D01077F94263FF00F7F94 -387FC01F4D48487FD8003F16000107DAC1FE491480EEC3FC6D5DEEC7F05F16CF5F16DF4D -6D1400A204FFC76C5BA2735B4C6E5B735B070013C04C92C8FCA45EA65EB3B3AAB912FCA9 -515D79DC5F>114 D<92261FFFF814F80203B638C001FC023FEDFC0791B8121F010317FF -130F013F9038F8001F4990C8FCD9FFF8153F4801E0150F484915034849814890CAFC197F -4848173F191F485AA2007F180FA31907487EA27FA28002E0705A6E93C8FC14FC14FF15F0 -6CECFF8016FCEEFFF06CEEFF8018F06C17FE727E6C18E0856C18FC6C846C727E6C856D84 -011F846D841303010084023F83140F020183EC001FDB007F16801603DC000F15C0170018 -3F060F14E0007F1703486C82727E857F85857FA2857F1BC07FA27F1B806D5F7F1B006E5E -6E5F6E163F6E4C5A02FC4C5A6E03035B6E6C4A5B03F0023F5B03FF0107B55A01F991B7C7 -FCD9F07F16FCD9E01F16F0D9800716C0D9000193C8FC48D9003F14F8007C020349C9FC4B -5F78DD5C>I[<ED03FEA81507A5150FA4151FA3153FA2157FA215FFA25CA25C5CA25C5C5C -5C91B5FC13035B131F017F91B712F00007BAFCBBFCA7C74AC9FCB3B3AAF101FFB1616E17 -FE82A219076E17FC836EEE0FF871131F6E6EEB3FF071137F6E6EEBFFE06EDAFF0313C06E -92B512806E1700033F5D6F5D03075D030015E0041F1480040001FCC7FC>72 -132 124 258 90 I<DB0FF8F01FF0017FB594B6FCB74BB7FCA9D8003F94C77E0107190F -A26D85B3B3B063A463A263A27F6398B6FCA26DF001FB7015036EEF07F3E00FE3806E6D15 -1FE07FC314FF6E6D6CDAFF83EDFFC06E6E010313036E02FCEB3FFE6E91B612FC020017F8 -6F16E0031F16800303EDFE00DB007F14F8040102C093C8FC725E77DC81>I<B90303B7FC -A9D8000702F8CA000FEBFE006D6E050013E0666D6E6164826D5090C7FC836E4F5AA26E6E -4C5AA26E6E4C5AA26E6E5F1C3F836E4F5A836E4F5AA26E6E4B5BA26E6E4B90C8FCA26F6E -5D1B07846F4D5A846F4D5AA26F6E4A5AA26F6E4A5AA26F6E5D1BFF846F4C5B846F4C90C9 -FCA2706E485AA27002C05B1A0F7002E05B1A1F19F0704B5A19F8704B5AA2706E485AA270 -6E5B96B5FC7093CAFCA3715CA2715CA2715CA2715CA3715CA2715CA2715CA27191CBFCA2 -725AA3725A725A725A705D7BDB7B>I<B800FE017FB700F8023FB612F8A9D8000F02F0C8 -000702C0C9003FEBF800100313806D6E6F7390C7FC775E6D69706F6E1607A26D6E6F6277 -160F6D6970706D161FA26E6E6F61516D163F6E687192B6167FA26E68714A6F15FF6E6871 -4A608A6E9DC8FC714A6F5C6E6771DA0FFD17078A6E06F86071021F6F140F6E67714A486C -161F8A6F4D6C5F72017F6F143F6F667249486C167F8A6F4D6C5F72487113FFA26F02F04A -6C4B5B4F17C06F4C6D94C9FCDEF807715AA26F02FC496D4B5A070F17F06F4C6D5EDEFE1F -EFF80FA26F02FF496E4A5A073F17FC704B6E5D07FFEFFE3FA2704B6E4A5A1FFF704B6E5D -20FFA27092C86C5DA2704A6F92CAFCA3704A6F5CA2704A6F5CA3704A705BA27149705BA3 -7149705BA27149705BA37190CA6C5BA271487190CBFC7148715A9D5D7BDBA8>I<007FB8 -6C49B712FEA9C792C9000F02C0C7FC6E6E030101F0C8FC715F6E6E4B5B6E6E4B5B6E4E90 -C9FC6E6E5E71151F6E6E4B5A6E6E4B5A6E4E5A6F6E495B72495B6F6E495B6F806F6E4990 -CAFC6F4C5A72495A6F6E495A6F6E495A6F03815B705E7014C307E75B7091B5CBFC705D70 -5D705D6282705D715C8386718071807180837180864D814D815F4D81874D814D81DDFFF3 -804C13E14C01C1804C0180814E6C804C6E804C487F4C48824C486D804C486D804B496D80 -4B497F73804B49834B90C86C804B486F804B48814B486F804B48844C6F804A71804A496F -804A49814A90CA814A487180023F7280010FB500E07080B8031FB812E0A9735C7CDB7B> -I<007FB800C04AB71280A9D800034ACA000791C7FC6D080013F0775A6D6E4E5AA26E6E60 -64836E4F90C8FC836E4F5A836E4F5AA26E6E4C5AA26E6E5F1C3F6E6E5F1C7F836E4F5A84 -6F4D5B846F4D90C9FCA26F6E4A5AA26F6E5D1B0F846F4D5A846F4D5A846F4D5AA26F6E4A -5AA2706E5C627002C091CAFC6219E0704B5A19F0704B5AA2706E485AA2706E485AA27002 -FE5B1A7F19FF704B5AA2715DA27192CBFCA2715CA2715CA3715CA2715CA2715CA2715CA2 -725BA27290CCFCA3725AA2725AA24E5AA24E5AA261187FA24E5AA24D5B13FE2603FF804A -90CDFC000F13E0486D4A5A487F486D4A5AA260B56C141F4D5AA24D5A17FF604C5B4A4990 -CEFC6C5D4C5A6C49EB3FFC4A495A6C4948485A9026FE80075B270FFFC03F5B6C90B6CFFC -6C5D6C15F86C6C5C011F14C0010749D0FC9038007FE071857CDB7B>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fw cmbx12 12 61 -/Fw 61 123 df<DB3FFEEB07FE0207B539C07FFF80023F02F1B512E0913CFFF003FFFE07 -F00103D980019038F81FF849494801F013FCD91FFC49EBE03F49485B18C0495A18804948 -EE1FF8A270EC07E07091C7FCABBA12F0A4C69026E000030180C7FCB3B2007FD9FFC1B67E -A446457EC441>11 D<ED1FFE0203B512C0021F14F09139FFF803F8010390388000FC4990 -C77ED91FFCEB03FF013F5C5C495A4C13804948150082A3705AEE00F894C7FCA74BB51280 -B9FCA4C69038E00003B3B2007FD9FFC1B6FCA438457EC43E>I<EC01C01403EC0F80EC1F -00143E5C14FC495A495A495AA2495A131F495AA249C7FC5B5B12015B1203A2485AA3485A -A3121F5BA2123FA35B127FA612FFA25BAE7FA2127FA6123F7FA3121FA27F120FA36C7EA3 -6C7EA212017F12007F7F6D7EA26D7E130F6D7EA26D7E6D7E6D7E147C8080EC0F80EC03C0 -14011A6475CA2C>40 D<12E07E127C7E7E6C7E7F6C7E6C7E6C7EA26C7E7F137FA26D7E80 -131F80130F80A26D7EA36D7EA3801301A280A37F1580A615C0A2147FAE14FFA21580A615 -005BA35CA213035CA3495AA3495AA25C131F5C133F5C49C7FCA213FE5B485AA2485A485A -485A5B48C8FC123E5A12F05A1A647ACA2C>I<B612F8A91D097F9A25>45 -D<EA0780EA1FE0EA3FF0EA7FF8EAFFFCA6EA7FF8EA3FF0EA1FE0EA07800E0E788D1F>I< -EC3FF849B5FC010F14E090393FF01FF890397FC007FC49486C7E48496C7E48486D138048 -48EC7FC0A24848EC3FE0A2001F16F0A2003F16F849141FA2007F16FCA600FF16FEB3A300 -7F16FCA5003F16F86D143FA2001F16F0A2000F16E06D147F000716C0A26C6CECFF806C6C -4913006C6D485A6D6C485A90393FF01FF8010FB512E0010314809026003FF8C7FC2F427C -C038>48 D<EC03C01407141F147FEB03FF133FB6FCA313C3EA0003B3B3AFB712FCA42641 -77C038>I<ECFFE0010F13FE013FEBFFC090B612F02603FE017F3A07F0007FFED80FC0EB -1FFF48486D138048C76C13C04816E001C07F01F06D13F012FF7F6F13F8A56C5A6C5A6C5A -C9FC4B13F0A34B13E017C05D17804B13005E4B5A4B5A5E4B5AEDFF804A90C7FC4A5AEC07 -F84A5A4A5AEC3F804AC71278147E5CD901F014F8494814F0495A495A49C8FC013C140149 -140390B7FC4816E05A5A5A5A5A5AB812C0A42D417BC038>I<ECFFF0010713FF011F14C0 -D97F8013F09039FC003FFCD803F06D7E48486D7EA2D80FF86D138013FE001F16C07FA66C -5A6C4815806C485BC81400A24B5A5E4B5A4B5A4B5A4A1380DA0FFEC7FC903807FFF85D15 -FF90C713C0ED3FF0ED1FFC6FB4FC6F138017C08117E017F081A217F8A2EA0FC0EA3FF048 -7EA2487EA317F05DA26C4815E04915C0495BD83F804913806C6C1500D80FF0EB3FFE6CB4 -EBFFF8000190B55A6C6C14C0011F49C7FC010113E02D427BC038>I<161F5EA25E5E5DA2 -5D5D5D5DA25D5D92B5FCEC01F715E7EC03C7EC0787140FEC1F07141E143C147814F8EB01 -F014E0EB03C0EB0780130FEB1F00131E5B5B13F85B485A485A485A120F90C7FC121E5A12 -7C5AB91280A4C8000F90C7FCAC027FB61280A431417DC038>I<0007150301E0143F01FF -EB07FF91B55A5EA25E16E05E5E4BC7FC15F815E04AC8FC01C0C9FCAAEC3FF001C3B5FC01 -CF14C09039DFE03FF09039FE000FFC01F86D7E496D7E491580496D13C06C5AC814E08117 -F0A317F8A31206EA1FC0EA7FE07F12FF7FA317F05B5D6C4815E01380007CC714C06C5C6C -16806D4913006C6C495AD807F0EB3FFCD803FEEBFFF0C6B65A013F1480010F01FCC7FC01 -0113C02D427BC038>I<4AB47E021F13F0027F13FC903901FF807F903A07FC001F804948 -130FD93FE0EB1FC04948137F01FFECFFE048495A481300A2485A120FA248486D13C0EE7F -80EE1E00003F92C7FCA25B127FA3EC1FFE00FF90387FFFC091B512F09039F9E00FF89039 -FBC007FC9039FF8003FF4A7E17804915C06F13E05B17F0A317F85BA4127FA5123FA317F0 -6C7EA2000F16E05D6C6C15C017806C6C4913006C6D5A6C9038C00FFC90397FF03FF8011F -B55A010714C0010191C7FC9038003FF82D427BC038>I<121E121F13FC90B712FEA44816 -FC17F817F017E0A217C01780481600007EC8127E007C157C16FC00784A5A4B5A4B5A00F8 -5D48140F4B5A4BC7FCC8127E157C15FC4A5A14035D14075D140F141F5D143FA2147F5D14 -FFA35BA34990C8FCA35BA65BAA6D5A6D5A6D5A2F447AC238>I<EC7FF00103B5FC010F14 -C090393F801FF090397C0007FC4848EB01FE48486D7E49800007168049143F000F16C016 -1F121FA27FA27F7F01FE143F6D158002C0137F02F014006C01FC13FEECFE016C9038FF83 -FCEDE7F06CECFFE06C15806C92C7FC6D14C06D80010F14F86D80011F80017F802601FE3F -14802603FC0F14C02607F80314E04848C6FC48486D13F04848131F150748486D13F81500 -00FF157F90C8123F161F160FA21607A36D15F0A2007F150F6D15E0123F6DEC1FC06C6CEC -3F806C6CEC7F00D807FEEB01FE3A03FFC00FFCC690B512F0013F14C0010F91C7FC010013 -F02D427BC038>I<EC7FF0903807FFFE011F6D7E90397FE03FE09039FF801FF048496C7E -48486D7E00076E7E484880001F80003F16805B007F16C08117E012FFA217F0A617F8A400 -7F5CA4123F5D6C7E000F5C6C7E00035C6C6C131E6C6D5A90387FFFF8011F5B010301C013 -F090C8FCA317E05DA2EA03C0D80FF015C0487E486C15805D17004B5AA24B5A49495A6C48 -5C01C0EB7FE0000F4A5A2607F8035B6CB548C7FC6C14F86C6C13E0D907FEC8FC2D427BC0 -38>I<EA0780EA1FE0EA3FF0EA7FF8EAFFFCA6EA7FF8EA3FF0EA1FE0EA0780C7FCB0EA07 -80EA1FE0EA3FF0EA7FF8EAFFFCA6EA7FF8EA3FF0EA1FE0EA07800E2C78AB1F>I<EE1F80 -A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F031F80161F82033F80ED3E0703 -7E80157C8203FC804B7E02018115F0820203814B137F0207815D173F020F814B7F021F82 -92C77EA24A82023E80027E82027FB7FCA291B87EA2D901F8C700017F4A80A20103834A15 -7F0107834A153FA249488284011F8491C97E4984133E842601FFC083B6020FB612F0A44C -457CC455>65 D<B9FC18F018FE727E26003FFCC7000713E005017F717FF03FFC85727E84 -1A80A27213C0A84E1380A21A00604E5A614E5A4D485A4D13C0051F90C7FC91B712FC18F0 -18FF02FCC7000313C0050013F0F03FFC727E727E7213801AC07213E0A27213F0A31AF8A8 -1AF0601AE0601AC0604E13804E1300F0FFFE050713F8BA5A19C04EC7FC18E045447CC350 ->I<DCFFF81470031F01FF14F04AB6EAE0010207EDF803023F9039E003FE07DAFFFEC7EA -7F0F4901F0EC1FDF010701C0EC07FF4949804948C87E4948814948167F4948163F484916 -1F5A4849160FA248491607A24890CA1203A25A5B1901127FA296C7FC5B12FFAE127F7FA2 -1AF0123FA27F7E19016C6D17E0A26C6D16031AC06C6D16076C19806C6D160F6D6CEE1F00 -6D6C163E6D6C5E6D6C6C5D6D6DEC03F0010101F04A5A6D01FEEC3FC091283FFFE001FFC7 -FC020790B512FC020115F0DA001F1480030001F8C8FC44467AC451>I<B9FC18F018FE72 -7E26003FFEC7001F13E0050113F8716C7EF01FFF06077F727F727F727F197F86737EA273 -7EA2737EA21B80A2851BC0A51BE0AD1BC0A51B8061A21B00A24F5AA24F5A62197F4F5A4E -5B4E5B4E5B061F90C7FC4E5A943801FFF8051F5BBA12C04EC8FC18F095C9FC4B447CC356 ->I<BA12F8A4D8001F90C700037FEF003F180F180318011800A2197C197E193EA2191EA4 -0578131F85A396C7FCA217F8A316011603161F92B5FCA4ED001F160316011600A30578EB -01E0A3F103C0A394C7FCA21907A21A80190FA3191FA2193FF17F0061601807181F4DB5FC -BBFC61A343447DC34A>I<BA1280A426003FFEC7001F13C01701EF007F183F181F180F18 -07A2F003E0A31801A4F000F0EE01E0A31900A31603A31607160F167F91B6FCA49138FE00 -7F160F16071603A31601A693C9FCB0B712F0A43C447CC346>I<B712E0A4D8001F90C7FC -B3B3B3A6B712E0A423447DC32A>73 D<B712F0A426003FFECAFCB3B3F00780A4180F1900 -A460A360A2187EA218FE170117031707171F177FEE03FFB95AA439447CC343>76 -D<B500FE067FB512806E95B6FCA26F5ED8003F50C7FCA2013D6DEE03DFA2013C6DEE079F -A26E6CEE0F1FA26E6C161EA26E6C163CA36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC -03C0A36E6DEC0780A26F6CEC0F00A26F6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485A -A26F6D485AA26F6D485AA3706C48C7FCA293383FF81EA2706C5AA2706C5AA3706C5AA270 -5BA2705BA2705BA213FFB66EC7007FB61280A2173E171C61447CC36A>I<B64BB512FE81 -81A2D8003F6D91390001FE006FED007881013D7F81133C6E7E6E7F6E7F6E7F6E7F82806E -7F6E7F6F7E6F7F83816F7F6F7F6F7F6F7F6F7F8382707F707F707F707F8482707F707F71 -7E7113807113C019E0837113F07113F87113FC7113FE19FF847213F884848484A2848419 -7F193F191FA2190F190701FF1703B6160119001A78A24F447CC358>I<923807FFC092B5 -12FE0207ECFFC091261FFE0013F0DA7FF0EB1FFC902601FFC0EB07FF010790C7000113C0 -49486E7F49486F7E49486F7E49486F7E49486F7E48496F7E4819804A814819C091C97E48 -19E0A248487013F0A2003F19F8A3007F19FC49177FA400FF19FEAD007F19FC6D17FFA300 -3F19F8A36C6C4C13F0A36C6D4B13E0A26C6D4B13C06C19806E5D6C19006C6D4B5A6D6C4B -5A6D6C4B5A6D6C4B5A6D6C4A5B6D01C001075B010101F0011F90C7FC6D01FEEBFFFE023F -B612F8020715C002004AC8FC030713C047467AC454>I<B9FC18F018FE727ED8001F90C7 -001F13E005017F716C7E727E727E85721380A27213C0A31AE0A81AC0A34E1380A24E1300 -614E5AF0FFF84D5B051F13C092B7C7FC18FC18C092CBFCB3A9B712E0A443447DC34D>I< -B812F8EFFFC018F818FED8001F90C7383FFF80050713E005017F716C7E727E85727EA272 -7FA286A762A26097C7FC61183F614E5A943801FFE005075B057F90C8FC92B612F818C084 -DB000113F89338003FFEEF0FFF717F717F858385A2717FA785A61B0F85A2187F1B1F726C -131E72143EB700E06DEB807C72EBE0F80601EBFFF0726C13E0CC0007138050457DC354> -82 D<DAFFE0131C010701FE133C013F9038FF807C90B6EAE0FC489038801FF93A03FC00 -03FF4848EB007F4848143F4848141F4848140F1607007F1503491401A2160012FF177CA2 -7F173C7F7F7F6D92C7FC6CB4FC14E014FE6CEBFFF015FF6C15E016FC6C816C6F7E6C826C -826C6C81011F810107811300020F80140003077FED007F82040F138082A200F08182A382 -7EA218007EA26C5D5F7E6D4A5A13E06D4A5A01FC4A5AD9FF80EB3FE026FE7FF8EBFFC0D8 -FC1FB6C7FCD8F80714FC48C614F0480107138031467AC43E>I<003FBA12E0A49026FE00 -0FEB800301F0EE007FD87FC0EF1FF049170F90C71607007E1803007C1801A300781800A4 -00F819F8481978A5C81700B3B3A40107B8FCA445437CC24E>I<B76C010FB512F8A42600 -3FFEC9380FF800F103E0B3B3A9011F17076280190F6D60A26D6D4BC7FC6D5F6F153E6D6D -5D6DEE01FCDA7FF84A5A6E6CEC0FF0DA0FFFEC3FE06E9039F003FF80020190B6C8FC6E6C -14FC030F14E09226007FFEC9FC4D457CC356>I<B792B6FCA4C66C48C900031300013FEF -007C6E17FC6D606F15016D608119036D606F15076D606F150F6D6081191F6D6D93C7FC61 -027F163E6F157E023F167C8119FC6E6D5C18016E5E7013036E5E8218076E6D5C180F6E5E -70131F6E93C8FC705B037F143E82187E033F147C7013FC6F5C17816F5C17C117C36F5C17 -E76F5C17FF6F5CA36F91C9FCA2705AA2705AA3705AA2705AA2705AA250457EC355>I<B6 -00FE017FB691B512FEA426007FFCC8D83FFEC800011300F5003C6E70167C013F70177880 -7415F86D705F6F7014016D705FA26F7014036D64814E6D14076D646F70140F6D041E94C7 -FCA26F023E6D5C6DDC3C7F151E81027F037C6D5CF0783F6F70147C023F4B6C1578A26F01 -016F13F86E4B6C5D16806E02036F485A4E7E04C0EEE0036E4A486C5DA2DCE00FEDF0076E -4B6C5D16F06E4A6F48C8FC051E7F04F8705A6E4A027F131EA2DCFC7CEDFE3E037F017802 -3F133C04FE16FF033F01F85E4D8004FF17F86F496E5BA36F496E5BA26F604D80A26F90C8 -6C5BA36F486F90C9FCA26F48167EA30478163C6F457EC374>I<001FB812FEA402F8C713 -FC02804913F849C75A01F816F0494A13E0495C4916C048485C4C138090C814005E003E4B -5A5F5D4B5B003C5E5D5F4B5BC85A5F4B90C7FC5D5E4B5A5C5E4A5B5C5E4A5B5C5E4A90C8 -FC5C5D4A5A49160F5D495B5B5D4949141F5B4B141E5B4990C8FC4A153E13FF485B4A157E -5A484915FE4A14014816034A14074849140F48EE3FFC91C812FF4848140FB9FCA438447A -C344>90 D<903807FFF0017F13FF48B612C03A03FC007FF0486CEB1FF8486CEB0FFE6F7E -A26F7FA26F7F6C5A6C5AEA00F090C7FCA44AB5FC147F0107B6FC013F13C19038FFF80100 -0313E0481380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B003F141ED81FFE4913 -F83C0FFF80F87FFFC00003EBFFF0C6ECC01F90390FFE0007322C7DAB36>97 -D<EB7FC0B5FCA412037EB3ED1FF802C1B5FC02C714E09139DFC03FF89139FF000FFC02FC -EB03FE4A6D7E4A15804A6D13C04A15E0177F18F0A2EF3FF8A318FCAB18F8A3177F18F0A2 -18E017FF6E15C06E4913806E491300027C495A496C495A903AFC1FC07FF0D9F807B512C0 -D9F00191C7FC9039E0003FF036457DC43E>I<EC3FFF0103B512F0010F14FC90393FF001 -FE9039FFC003FF4849481380481300485A485A121F5B003F6E13006F5A007FEC00784991 -C7FCA312FFAA127FA27FA2123FEE03C06C7E16076C6C15806C6C140F6C6DEB1F006C6D13 -3E6C6D13FC90393FF807F8010FB512E0010314809026003FF8C7FC2A2C7CAB32>I<EE03 -FEED07FFA4ED001F160FB3EC3FF0903803FFFE010FEBFF8F90393FF807EF9039FFC001FF -48903880007F4890C7123F4848141F4848140F121F5B123FA2127F5BA312FFAB127FA36C -7EA2121F7F000F151F6C6C143F0003157F6C6C14FF6CD9C0037F90277FF01FCF13FC011F -B5120F010313FC9038007FE036457CC43E>I<EC3FFC0103B57E011F14E090393FF81FF8 -9039FFC007FC48496C7E48496C7E48486D13804848147F17C0485A003FED3FE0A2127F49 -15F0A2161F12FFA290B7FCA301F0C9FCA5127FA36C7EA217F06C7E000F15016C6C15E016 -036C6CEC07C0C66DEB1F80D97FE0EB7F0090393FFC03FE010FB512F8010114E09026001F -FEC7FC2C2C7DAB33>I<4AB4FC021F13E091B512F00103EB83F8903907FE0FFCD90FFC13 -FE90381FF81F133FEB7FF0A2EBFFE0ED0FFCA2ED03F092C7FCABB612F8A4C601E0C7FCB3 -B2007FEBFFE0A427457DC422>I<177E9139FFE003FF010FD9FE071380013F9039FF9F9F -C0903AFFC07FFE3F489038001FF84848130F4848EB07FC000F9238FE1F80001F9238FF0F -00496D90C7FCA2003F82A7001F93C7FCA26D5B000F5D00075D6C6C495A6C6C495A489038 -C07FE091B51280D8078F49C8FC018013E0000F90CAFCA47F7F7F90B612C016FE6C6F7E17 -E06C826C16FC7E000382000F82D81FF0C7123FD83FC014074848020113808248C9FC177F -A46D15FF007F17006C6C4A5A6D1403D81FF8EC0FFCD807FEEC3FF03B01FFC001FFC06C6C -B6C7FC010F14F80100148032417DAC38>I<EB7FC0B5FCA412037EB3ED07FE92383FFFC0 -92B512F09139C3F03FF89139C7C01FFC9138CF000F02DE8014FC4A6D7EA25C5CA35CB3A8 -B60083B512FEA437457CC43E>I<13FC487E487E4813804813C0A66C13806C13006C5A6C -5A90C7FCACEB7FC0EA7FFFA412037EB3B0B6FCA418467CC520>I<EB7FC0B5FCA412037E -B393387FFFE0A493380FF800EE07E0EE1FC04CC7FC167E5EED03F8ED07E04B5A4B5A037F -C8FC15FEECC1FCECC3FE14C7ECDFFF91B57E82A202F97F02E17F02C07FEC807F6F7E826F -7E816F7F836F7F816F7F83707E163F17FFB60003B512F8A435457DC43B>107 -D<EB7FC0B5FCA412037EB3B3B3A5B61280A419457CC420>I<90277F8007FFEC0FFEB501 -3F01C090387FFF8092B5D8F001B512E0913D81F81FFC03F03FF8913D87C00FFE0F801FFC -000390268F000790381E000F6C019E6E488002BC5D02B86D496D7E14F84A5DA24A5DA24A -5DB3A8B60081B60003B512FEA4572C7CAB5E>I<90397F8007FEB590383FFFC092B512F0 -913983F03FF8913987C01FFC000390388F000F6C019E8014BC02B86D7E14F85C5CA35CB3 -A8B60083B512FEA4372C7CAB3E>I<EC1FFC49B512C0010F14F890393FF80FFE90397FC0 -01FF4848C7EA7FC048486E7E48486E7E000F8249140F001F82A2003F82491407007F82A3 -00FF1780AA007F1700A46C6C4A5AA2001F5E6C6C4A5AA26C6C4A5A6C6C4A5A6C6D495A6C -6D485B90273FF80FFEC7FC010FB512F8010114C09026001FFCC8FC312C7DAB38>I<9039 -7FC01FF8B500C1B5FC02C714E09139DFC03FF89139FF001FFC000301FCEB07FE6C496D7E -4A15804A6D13C04A15E08218F0177F18F8A3EF3FFCAB18F8177FA318F017FF18E05E6E15 -C06E4913806E4913006E495A6E495A9139DFC07FF002C7B512C002C191C7FC9138C03FF0 -92C9FCAFB67EA4363F7DAB3E>I<DA3FF0131E902603FFFC133E010F01FF137E903A3FF8 -0FC0FE9039FFE003E0489038C001F14890388000FB4890C7127F4848143F001F151F5B00 -3F150F5B127FA35B12FFAB6C7EA3123F7F121F6D141F000F153F6C6C147F6C15FF6C6D5A -6C9038E003EF90393FF01FCF6DB5120F010313FC9038007FE091C7FCAF0307B512FCA436 -3F7CAB3B>I<90387F807FB53881FFE0028313F091388F87F891389F0FFC000390389E1F -FE6C13BC14B814F814F0A29138E00FFCED07F8ED01E092C7FCA25CB3A6B612E0A4272C7D -AB2E>I<90391FFE038090B512CF000314FF380FF003391FC0007F48C7123F48141F007E -140FA200FE1407A27E7F6D90C7FC13F0EBFF806C13FCECFF806C14E015F86C14FE6C8012 -03C61580013F14C01301D9000F13E0140000F0147F153F6C141FA2150F7E16C07E6C141F -168001C0133F6DEB7F009038F801FC00FCB55AD8F03F13E026E007FEC7FC232C7CAB2C> -I<EB01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA3C601 -E0C7FCB3A4ED01E0A91503D97FF013C0A2013FEB0780ECF80F90391FFC1F00903807FFFE -010113F89038003FE0233F7EBE2C>I<D97FC049B4FCB50103B5FCA40003EC000F6C81B3 -A85EA25EA26C5DA26E5B017FD901F7138090273FF807E713FE010FB512870103EBFE0790 -38007FF8372C7CAB3E>I<B6903803FFFCA4000101C09038007F806EEC3E006C163C8001 -7F5D8017F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6D -EBE01E163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90 -C8FCA26E5AA26E5AA21578362C7EAB3B>I<B5D8FE1FB539801FFFF0A400039027C0007F -E0C7EAFE006C033F157C7114786E17F86C6F6C5C6E1601017F6E6C5CA26E011F1403013F -6F5C6E013F1407011F6F5CA26E0179140F010F048090C7FC6E01F95C6D02F0EBC01E1580 -6D902681E07F5B18E003C3157C6D9139C03FF07815E76DDA801F5B18F803FF14F96E9039 -000FFDE018FF6E486D5BA36E486D5BA26E486D90C8FCA24B7F02075DA26E48147C4B143C -4C2C7EAB51>I<B500FE90383FFFF0A4000101E0903807F8006C6DEB03E06D6C495A013F -4A5A6D6C49C7FC6E5B6D6C137E6DEB807C6D6D5A6DEBC1F0EDE3E06DEBF7C06EB45A806E -90C8FC5D6E7E6E7F6E7FA24A7F4A7F8291381F3FFCEC3E1F027C7F4A6C7E49486C7F0103 -6D7F49487E02C08049486C7F49C76C7E013E6E7E49141F48B46E7EB500E090B512FCA436 -2C7EAB3B>I<B6903803FFFCA4000101C09038007F806EEC3E006C163C80017F5D8017F8 -013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E163E -6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA26E5A -A26E5AA21578A215F85D14015D001F1303D83F805B387FC007D8FFE05B140F92C9FC5C14 -3E6C485A5C383F07F0381FFFC06C5BD801FCCAFC363F7EAB3B>I<001FB71280A39026FC -000F130001E05B49495A49495A90C75B15FF003E495B5E4A5B003C5B4A5B93C7FC5C4A5A -C7485A5D14FF495B5D495B5B495B92380007805B495A495A4A130F01FF1500485B5C4849 -5B5A485B91C75A485D48485C4848EB03FE49131FB7FCA3292C7DAB32>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fx cmti10 10.95 6 -/Fx 6 117 df<147E49B47E903907C1C38090391F80EFC090383F00FF017E137F491480 -4848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA21401485C5A -A21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E137FECF3E1 -261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97 -D<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA21503A25EA21507A25E -147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F5B48486D5A485AA248 -5A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A485CA2140316384814 -F0A21407167891380FE070127C021F13F0007E013F5B003E137FECF3E1261F01E35B3A0F -8781E3802703FF00FFC7FCD800FC133E294077BE2E>100 D<EC3F80903801FFE0903807 -E0F890381F803CEB3E0001FC131E485A485A12074848133E49133C121F4848137C15F8EC -03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45AA61506150E151E007C143C15786C14 -F0EC01E06CEB07C0390F801F003807C0FC3801FFF038007F801F2976A72A>I<1478EB01 -FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0121E121CEA3C0F -1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA212035B14381207 -13E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03FEEA00F8163E79 -BC1C>105 D<D801F0D93F80137F3D07FC01FFE003FFC03D0F3E07C1F80F83F03D0E1F0F -00FC1E01F8001E011C90387C3800001C49D97E707F003C01F05C0038157F4A5C26783FC0 -5C12704A91C7FC91C7127E00F003FE1301494A5CEA007EA20301140301FE5F495CA20303 -1407000160495C180F03075D0003051F13E0494A1480A2030FEC3F810007F001C0495CA2 -031F91383E0380120F494AEC0700A2033F150E001FEF1E1C4991C7EA0FF80007C7000EEC -03E0432979A74A>109 D<EB01C0EB03F01307A25CA2130FA25CA2131FA25CA2133FA291 -C7FCA2007FB51280B6FC1500D8007EC7FC13FEA25BA21201A25BA21203A25BA21207A25B -A2120FA25BA2121F141C1380A2003F133C1438EB0078147014F05C495AEA1F03495A6C48 -C7FCEA07FCEA01F0193A78B81E>116 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fy cmtt10 10.95 15 -/Fy 15 120 df<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30> -46 D<16E0ED01F0ED03F8A2150716F0150F16E0151F16C0153F1680A2157F16005D5D14 -015D14035D14075D140F5D141F5DA2143F5D147F92C7FC5C5C13015C13035C13075C130F -5C131F5CA2133F5C137F91C8FC5B5B12015B12035B12075B120F5BA2121F5B123F5B127F -90C9FC5A5AA2127C123825477BBE30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3F -C0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630> -58 D<EB7FFC0003B57E000F14E015F84880819038E007FF02017F390FC0007F6C48133F -C87F151FA391B5FC130F137F48B6FC12075A003FEB801FEBF800EA7FE0138048C7FC5AA4 -6C143F6C6C137F6D13FF383FF80F90B712C06C16E07E000314E7C6140390263FF80013C0 -2B277CA630>97 D<913801FFE04A7F5CA28080EC0007ABEB03FE90381FFF87017F13E790 -B6FC5A5A481303390FFC007FD81FF0133F49131F4848130F5B007F140790C7FCA25A5AA7 -7E7E150F7F003F141F7F6D133F6C6C137F390FF801FFEBFE076CB712C06C16E06C02F713 -F06C6C13C7011F010713E0902607FC0313C02C387DB730>100 D<EA3FFC487E12FFA212 -7F123F1200ABEC03FE91380FFFC0023F7F91B57E90B67E82ECFE07ECF00102E07FECC000 -5C91C7FCA35BB33B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F -3880B730>104 D<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E -7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I<EA7FF8487EA4127F -1200AB0203B512804A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5A -EC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D -7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D38 -7FB730>107 D<267FC0FC137E3BFFE7FF03FF8001EF01877F90B500CF7F92B57E7E0007 -010F1387496CEB03F89039FC03FE0101F813FC01F013F8A301E013F0B3A23C7FFE0FFF07 -FF80B548018F13C0A46C486C01071380322781A630>109 D<393FFC03FE3A7FFE0FFFC0 -00FF013F7F91B57E6CB67E6C81C6EBFE07ECF00102E07FECC0005C91C7FCA35BB33B3FFF -F81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2780A630>I<393FFC03 -FE3A7FFE1FFF8000FF017F13E090B612F86C816C81C69038FE07FFECF001DAC00013804A -EB7FC091C7123FEE1FE05B160FA217F01607A7160F17E07F161F17C06E133F6EEB7F806E -13FFDAF00313009138FC0FFE91B55A5E495C6E5B021F1380DA03FCC7FC91C9FCAE383FFF -F8487FB57EA26C5B6C5B2C3B80A630>112 D<3A3FFF800FF8489038C07FFFB500C1B512 -8014C36C01CF14C06C13DF3A001FFFFC3F15E09238801F809238000F0002FC90C7FCA25C -5CA25CA35CAF003FB512FC4880B7FCA26C5C6C5C2A277EA630>114 -D<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA4 -150302E013F890380FF0079138F81FF06DB5FC16E06D14C06D14006D6C5AEC1FF026327E -B130>116 D<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A415 -01A215036D130F90387FC03F91B612F86D15FC17FE6D5B010701F813FC01019038C07FF8 -2F2780A630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA -3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2 -ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D27 -7FA630>119 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fz cmsy10 10.95 2 -/Fz 2 25 df<EE3FFC0307B512E0033F14FC92B7FC0203D9E00713C0DA0FFCC7EA3FF0DA -1FE0EC07F8DA3F80EC01FC02FEC9127FD901F8EE1F804948707E4948707ED90F80EE01F0 -49CB7E013E187C49840178181E01F8181F4848F00F804848F007C049180300071AE04918 -01000F1AF090CDFC481AF8001E1A78A2003E1A7C003C1A3CA2007C1A3E00781A1EA300F8 -1A1F481A0FAD6C1A1F00781A1EA3007C1A3E003C1A3CA2003E1A7C001E1A78A2001F1AF8 -6C1AF06D180100071AE06D180300031AC06D18076C6CF00F806C6CF01F000178181E017C -183E6D606D606D6C4C5AD907E0EE07E06D6C4C5A6D6C4C5AD900FE047FC7FCDA3F80EC01 -FCDA1FE0EC07F8DA0FFCEC3FF0913B03FFE007FFC0020090B6C8FC033F14FC030714E092 -26003FFCC9FC50557BC05B>13 D<D91FE01620D97FF816703801FFFE486D7E48804814F0 -9038E01FF8271F8007FC15E0393E0001FE003CD9007F1401007CDA3FC013030078DA0FE0 -14C00070DA07F81307DB03FEEB1F8048913A01FF807F006F90B5FC043F5B705B04075B04 -0113E000409238007F803C157BA047>24 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: FA cmr10 10.95 38 -/FA 38 122 df<EC0FC0EC3FE0ECF878903801F018903803E01C903807C00C130FEC800E -011F1306A2EB3F00A4150EEC800CA2151C5D153015705D6D6C5A14C1ECC38002C7CAFC02 -EE91383FFFFCEB0FEC14FC4A020313C06D48913800FE006E15F818706D6C1560010716E0 -496C5D011D1501D939FF4A5A017093C7FC496D5B0001017F1406496C6C130E00036E5B26 -07801F1418000F6E1338001F6D6C5B383F0007486E5B6E6C485AEC01FF486D495A0487C8 -FCED7FCEED3FEEDB1FFC14186D6D5AA2007F6E6C14386D6D6C1430003F4A6C14706D496C -6C13E0001F91391E3FC0016C6C903AFC1FF003C03D07FC07F007FC0F800001B5D8C001B5 -12006C6C90C7EA7FFCD90FF8EC0FF03E437CC047>38 D<1430147014E0EB01C0EB038013 -07EB0F00131E133E133C5B13F85B12015B12035B1207A2485AA348C7FCA35AA2123EA212 -7EA4127CA312FCB2127CA3127EA4123EA2123FA27EA36C7EA36C7EA212037F12017F1200 -7F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>40 -D<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F1378137C133C133EA27FA3EB0F80 -A314C0A21307A214E0A41303A314F0B214E0A31307A414C0A2130FA21480A3EB1F00A313 -3EA2133C137C137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323> -I<B512FEA617067F951E>45 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919> -I<14C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78 -BC2D>49 D<EB07FC90383FFF8090B512E03903F01FF839078007FC390F0001FE001E6D7E -001C158048EC7FC05AED3FE01260B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216 -C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495AEB03C0495A -49C8FC011E14305B13385B491460485A485A48C8FC000E15E0001FB6FCA25A4815C0B7FC -A3243D7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C7E4848137C -000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F153FA36C7E -A2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE13E0EB07F0 -90C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB8007391E00 -0FE04A5A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>57 -D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E -1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>59 -D<1507A34B7EA34B7EA24B7EA34B7E156FA2EDEFF815C7A291380187FC1583A291380303 -FE1501A291380600FFA34A6D7EA34A6D7EA34A6D7EA20270800260130FA202E0804A1307 -A201018191B6FCA2498191C71201A201068182A2496F7EA3496F7EA3496F7EA21370717E -13F800014C7ED80FFE4B7EB500E0010FB512F8A33D417DC044>65 -D<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F005B -006C130700705C6C495A6C495A000F495A2603C07EC7FC3800FFF8EB3FC026407CBD2F> -74 D<D907FC130C90391FFF801C017F13F03A01FC03F83C3A03F0003E7CD807C0EB1FFC -48481307001F140348C71201003E1400127E167C007C153C12FCA2161CA36C150CA27EA2 -6C6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E001 -0714F0EB007F020713F89138007FFC150FED07FE15031501ED00FFA200C0157FA3163FA2 -7EA36C153EA26C157E167C6C15FC6C15F86C14016DEB03F001E0EB07E0D8F9F8EB0FC03A -F07F803F803AE01FFFFE00010713F839C0007FC028427BBF33>83 -D<003FB91280A3903AE0007FE00090C76C48131F007EEF0FC0007C170700781703007017 -01A300601700A5481860A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B500FE -017FB5D88003B5FCA3000301C0010101E0C7EA7FF86C90C849EC0FE07148EC07807E716C -150080017F1906717E6E180E013F190C4D7E80011F614D7E17676D6C60EFE7FC17C36D6C -6084EE01816D6C60A24CC67E6D6C4D5AA20406EB7F806E17036D96C7FC4CEB3FC003805E -027F17064CEB1FE003C0160E023F170C4CEB0FF015E0021F5F047014F804601307DA0FF0 -5E04E014FC4C1303DA07F85E19FEDBF9801301DA03FD5EA203FFC812FF6E5FA24B157F02 -0094C8FCA24B81A2037C153E0378151EA20338151C0330150C58407EBD5D>87 -D<EB0FF8EBFFFE3903F01F8039070007E0486C6C7E9038E001F8D81FF07F6E7EA3157F6C -5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485A -A248C7FCEE018012FEA315FFA3007F5BEC03BF3B3F80071F8300261FC00E13C73A07F03C -0FFE3A01FFF807FC3A003FC001F0292A7DA82D>97 D<EA01FC12FFA3120712031201B1EC -03FC91381FFF8091387C07E09138E001F09039FDC000FCD9FF80137E91C77E4915804914 -1F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5CD9 -FB8013FE9039F1C001F89039E0E003F09039C0780FC09026801FFFC7FCC7EA07F82D407E -BE33>I<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B -121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003F15C07F001F140116806C -6C13036C6CEB0700000314066C6C131E6C6C133890383F01F090380FFFC0D901FEC7FC22 -2A7DA828>I<ED01FC15FFA3150715031501B114FF010713C190381F80F190387E003949 -131FD803F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA2 -6C7E000F14037F000714076C6C497E6C6CEB1DFFD8007C017913F890383F01E190380FFF -C1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C -7E4848137E48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6 -FCA290C9FCA67EA27F123F16606C7E16E0000F15C06C6C13016DEB03806C6CEB0700C66C -130E017E5B90381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801 -F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C6 -48C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F809039 -7E0FCE0F9039F803FC1F3A03F001F80F170048486C6CC7FC000F8049137E001F147FA800 -0F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CA -FC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01 -FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB -0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA31207120312 -01B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91 -C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA4 -6C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I< -1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E -127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185 -BD1C>I<EA01FC12FFA3120712031201B292387FFF80A392381FFC00ED0FE0168093C7FC -151C5D5D5D4A5AEC0780020EC8FC141E143F4A7E14FF9038FDDFC09038FF9FE0140F9038 -FC07F001F87F6E7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B -3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F8 -01FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001 -F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3 -A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FF -C091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF -5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F89038 -7E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FC -A248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C -6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D> -I<3901FC03FC00FF90381FFF8091387C0FE09138E003F03A03FDC001FC6CB4486C7E91C7 -127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE -7F007F6E13FE9039FDC001F89039FCE007F09138780FC0DA1FFFC7FCEC07F891C9FCAD48 -7EB512F8A32D3A7EA733>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381 -EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>114 -D<90383FC0603901FFF8E03807C03D381F000F003E1303003C1301127C0078130012F815 -60A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E00103 -13F0EB001FEC0FF800C01303A214017E1400A27E15F07E6C130115E06CEB03C039FF8007 -8039F1E01F0038E0FFFC38C01FE01D2A7DA824>I<130CA5131CA4133CA2137CA213FC12 -0112031207001FB512C0B6FCA2D801FCC7FCB3A21560A9000014E06D13C0A2EB7F01013F -1380EB1F83903807FF00EB01FC1B397EB723>I<D801FC14FE00FF147FA3000714030003 -140100011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC90381FC078 -903807FFE00100903880FE002E297DA733>I<B539E007FFE0A32707FE000113006C48EB -007C1678000115707F00001560A2017F5CA2EC8001013F5CA26D6C48C7FCA26E5A010F13 -06A26D6C5AA2ECF81C01031318A26D6C5AA2ECFE7001001360A2EC7FC0A36E5AA26EC8FC -A3140EA22B287EA630>I<B53BC3FFFE01FFF8A33D0FFE003FF0007FC06C48D91FC0EB1F -800003020F15000001170E70130C15076C6C6E5BA27F6D6E5B150D02801570013F6E1360 -151802C015E0011FD938FE5BED307ED90FE090387F0180ED603FA2D907F00283C7FCEDC0 -1F02F81487010315C69138F9800F02FD14CED901FF14ECED00076D15F84A1303A2027E5C -027C1301A2023C5C0238130002185C3D287EA642>I<B539F01FFFE0A300039039C007FE -00C690388003F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF00C6D6C5A01 -0313386D6C5A6E5A6D6C5A6E5A143F81141F6E7E4A7E4A7E1473EC61FCECC1FE903801C0 -FF49487E49486C7E010680010E6D7E49130F013C6D7E017C80D801FC80D80FFE497EB590 -383FFFF8A32D277FA630>I<B539E007FFE0A32707FE000113006C48EB00FC0001157816 -706C7E16607F6D5CA26D6C485AA2ECC003011F91C7FCA290380FE006A2ECF00E0107130C -14F801035BA2ECFC380101133014FE01005BA2EC7FC0A36E5AA26EC8FCA3140EA2140CA2 -141C1418A25CA200181370007E1360B413E05C13015C4848C9FCEA7E07EA700EEA383CEA -1FF8EA07E02B3A7EA630>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: FB cmsl12 14.4 13 -/FB 13 116 df<0103BA12F05BA21BE0D9000301E0C7120F6E4914001A3F1A1F4C150F1A -071A03A21A015C93C9FCA55C5D1BC0A4020F150E5D97C7FCA3181E021F151C5D183CA218 -7C18FC023F4A5A4B130F92B6FCA4913A7FF0001FF04B13071701A21700A202FF5D5DA549 -4B5A5D94CAFCA45B92CCFCA55B5CA5130F5CA2497E496C7E007FB612E0B7FCA34C527BD1 -4C>70 D<0107B600FC013FB612E0A24D17C0A2D9000301F0C8001FEB80006E01C06F48C7 -FCA34C5EA41A1F5C93C95BA41A3F5C4B5FA41A7F140F4B5FA41AFF141F4B5FA4614AB9FC -63A303F0C8120161147F4B94C8FCA46114FF4B5EA4190F5B4B5EA4191F5B92C95BA4193F -5B4A5FA4197F130F4A5FA2496C4C7E496C4B7FB7D88007B612FCA204005EA25B527BD158 ->72 D<0107B500E0037FB512E0821DC082D900010503EBF8006E9438007FC07070C7FC4A -183EDBCFFE161E1B1CEDC7FFA203C36D153C140303816D1538A203807FA2706C15781407 -4B6C6C1570A2707EA2706C15F05C020E6D6C5DA2707FA2706D1301141E021C6F5C82A271 -7E1A03023C6E7E023860717EA2717E1A0702786E7E027095C8FC711380A27113C06202F0 -6E13E04A170EF07FF0A2F03FF81A1E0101EE1FFC4A171CF00FFEA2F007FF1A3C010318BC -4A6F13B81AF884A284130791CA6C5AA2193FA249171FA249715A497E496C16073803FFF8 -B600C01503A24B6F5AA25B527BD158>78 D<0107B8FC19F019FE737ED900039026E00007 -13E06E499038007FF8F11FFCF107FE4C6E7E737F737FA2747E5C93C97FA55C5DA4505A14 -0F4B5F61634F90C7FC62021F16074BED0FF84F5A4F5AF1FF80060390C8FC023FED0FFC4B -ECFFF092B7128006FCC9FC84923AF00003FF80027F9138007FE04B6E7EF00FF8727E8572 -7E14FF4B8086A45B5DA5495E92C8FCA5494C90C8FC5CA2F301C0A21B03010F1A804A811B -07496C05801300496C6F5CB76C6D141E736C5A93C86C6C5A73B45ACC00075B9638007F80 -52547BD156>82 D<EC03FF023F13E091B512FC903903FC01FE903A07C0007F8049C76C7E -496E7EEB3FC06E6D7E137F707EA35C6D5A6DC7FC90C8FCA3160FA25FED07FF0203B5FC02 -1F138F9138FFE01F903807FE00D91FF05CEB7FC049C7FCEA03FE4848143F485A48485D5B -485A007F173849147FEF807012FF90C812FFA25DA24BEB00E04B7E6D130E007F91391E3F -81C06C6C013C1383D81FF001F0EBC7803C0FFC07E01FFF006CB500805BC649486C5AD91F -F0EB03E0353679B43B>97 D<EDFFC0020713F8023F13FE91387F80FF903A01FC003FC0D9 -07F8EB1FE0D90FE0130F4948EB07F0494814F849C712035B4848EC01FC485AA2485A120F -5B121F5B123FA348B7FCA301C0C9FC12FF5BAA127F17E0A216016C6C15C016036C6CEC07 -80000F16006D5C6C6C141E6C6C147C6C6C14F06C6CEB03E090393FE01F80010FB5C7FC01 -0313F89038007FC02E3679B434>101 D<F003F0DB07F8EB1FFCDB7FFFEB7FFE4AB538C1 -F87E913A07F80FF3C0913B0FE003FF00FE91393FC001FE91267F8000147C4AC714104A02 -7F1300495A0103825C1307A2495AA417FF95C7FC5CA24C5AA26E495A01075D4C5A6D6C49 -5A6D6C495A496C495A91267F81FEC8FC9039071FFFFCD90E0713E0D91E0190C9FC011CCB -FCA2133CA5133EA2EB3F8091B512FCEEFFC06D15F817FE6D8118C0133F01FEC700077FD8 -03F89138007FF04848151FD80FC0150F48481507003F707E90C9FC5A007E1601170300FE -5F5AA26C1607007E4C5A60007F161F6C6C4B5A6C6C03FFC7FC6C6CEC01FC6C6CEC07F8D8 -03FEEC3FE03B00FFC003FF80013FB548C8FC010714E09026007FFEC9FC3F4E7FB43B> -103 D<EC03C0EC0FF0EC1FF8143FA2147FA4EC3FF0EC1FE0EC0F8091C7FCB0EC7FC0EB7F -FF1580A290B5FC13031300A21500A55B5CA513035CA513075CA5130F5CA5131F5CA5133F -5CA2137F497E007FEBFFC0B6FC1580A21D507CCF21>105 D<EC03FEEB03FF5B15FCA2EB -001F1407A315F8A5140F15F0A5141F15E0A5143F15C0A5147F1580A514FF1500A55B5CA5 -13035CA513075CA5130F5CA5131F5CA5133F5CA2137FEBFFF0007FEBFFE0B612C0A31F53 -7CD221>108 D<91277F8003FE4AB4FC90B590261FFFC0010F13E0DB007F01F0013F13F8 -922701F80FFC9038FC07FE923D03C003FE01E001FF010390260F00019038078000010001 -1E6D6C48C7EA7F804B151E4A485D037015384B6E48143F6E485D4B4A48147F5B92C85BA2 -4A93C8FCA301034B16FF4A4B1600A5010703035D4A4B5DA5010F030715034A4B5DA5011F -030F15074A4B5DA5013F031F150F4A4B5DA2017F033F151FD9FFF0DA7FF8EC3FFC007F90 -26FFE03FB5D8F01FB512F8B648484A4814F0A35D347CB363>I<91397F8007FE90B59038 -1FFFC0DB007F7F923901F80FF8923907C007FC010390380F00030100011E6D7E5DECFE70 -A24B13006E5A4B13015B92C7FCA25CA2170313034A5DA4170713074A5DA4170F130F4A5D -A4171F131F4A5DA4173F133F4A5DA2017F157FD9FFF0ECFFF0007F9026FFE07FEBFFE0B6 -48B612C0A33B347CB341>I<ED7FC0913803FFFC021F13FF91397F807F80903A01FE000F -E0D903F86D7ED907E06D7ED91FC06D7E4948130049C8127E017E157F5B0001EE3F80485A -12074916C0120FA2485AA2003F17E05BA2127FA34848ED7FC0A5EFFF80A390C913005E5F -A26C6C4A5AA24C5A003F5E4C5A6C6C141F5F6C6C4A5A6C6C4AC7FCED01FCD803FC495AC6 -6CEB0FF090397FC07FC0011FB5C8FC010713F8010013C0333678B43B>I<DA07FE13E091 -383FFFC149B512F3903A03FC01FFC090390FC0007F4948133F49C7121F017E140F5BEE07 -80485AA4120317007F7F6D91C7FC6C13C014F8ECFFC06C14FC6D13FF6D14C06D806D8001 -0380D9007F7F14039138003FFE15076F7E001C8081A282A2003E157EA45E123F485D6D13 -014B5A6D495A6D495AD87CF0495AD8F87E01FFC7FC39F03FFFFCD8E00F13F0D8C00390C8 -FC2B367CB42E>115 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: FC cmsy10 14.4 4 -/FC 4 84 df<943807FFF094B67E040715F0043F15FE93B87E03039026FC001F13E0030F -0180010013F8DB3FFCC8EA1FFEDBFFE0923803FF804A018003007F4A48CAEA3FE0DA0FF8 -EF0FF8DA1FE0EF03FC4A48717E4A48717E02FECCEA3F804948737E4948737E4948737E49 -48737E4A19014948737E49CE127E491B7F017E8749757E491B0F000189491B0700038949 -1B03000789491B01000F89491B00001F8990D0127CA2481D7E003E1D3EA3007E1D3F007C -89A400FC1E80481D0FAE6C1D1F007C1E00A4007E65003E1D3EA3003F1D7E6C1D7CA26D1C -FC000F656D1B010007656D1B030003656D1B070001656D1B0F0000656D1B1F017E51C7FC -017F636D1B7E6D6C626D6C4F5A6E19036D6C4F5A6D6C4F5A6D6C4F5A6D6C4F5ADA7F8006 -FFC8FC6E6C4D5A6E6C4D5ADA0FF8EF0FF8DA03FEEF3FE06E6C6CEEFFC06E01E003035BDB -3FFCDB1FFEC9FC92260FFF80ECFFF8030301FC011F13E0030090B71280043F4BCAFC0407 -15F004001580050701F0CBFC696E79D478>13 D<DD07801A03050F63DD3FC062057F6369 -05FF1B3E217E21FE72190120034C642007200F201F72193F207F4C6420FF05DF61726067 -040762179F058F4F5B72F03FBF040FF27F3F050F19FFF601FE716C18FC041F963803F87F -041EDF07F05BF60FE00503181F043E6DEF3FC0043CF17F801F000CFE13FF4C6C6D4B485C -1D03535A04F04E5A716D4B5A6603014F485A4CF07F00726C5D52485D4B484D5A525A0307 -6E6C4A5A4C60525A4BC76D023F5C061F4B5A52C7FC031E4D5A726C495A033E4D4893C7FC -033C4D5A73495A4B0207143F73495A515A4B6E4990C85AF283FE02016FEB87FC4BEECFF8 -0203EFDFF04B6EEBFFE0634A486F5B98C9FC020F705A4AC95B0008725A001E013E5F003F -017E704884D9E0FC5FD87FFF7148F083C04A70CAECCF804A93CB14FF2200B5487613FC4A -6621E06C49761380001F90D1007CC7FC6C489BC8FCEA01F882597DD390>77 -D<93B612FC031FEDFFE092B812FC0207EFFF80023F18E091BA7E010319FC490181D98007 -8090261FF003DA003F7FD93F8004071480D9FE00040014C0484892C87E4848061F13E048 -4884000F8548487213F086003F5C494A81127F90C7FC00FE1A7F12F800401BE0C8485AA2 -1CC0A21C804C16FF031F1800A2505AA24C4B5A033F5F1A07505A4C5E505A037F4C5A50C7 -FC4C15FE4F5A03FFED07F04F5A4CEC3F8007FFC8FC4AED07FCF0FFF84CB512E004071480 -4A4949C9FCDBFE3F13F04C138005FCCAFC913907FCFF8093CCFCA24A5AA34A5AA34A5AA3 -4A5AA34A5AA34990CDFCA25C1303A25C13075C130F5C5CEB1F8091CEFC131854587DD153 ->80 D<F07FF80507B57E053F14E04CB612F8040715FE041F814C16809338FFC00FDB01FC -C714C0DB07F0143F4B48140F4B48804B4880157F4BC86C1380A24A5A0203180062020717 -F84F5A1A80020F93C8FCA281A282A282826E7F826E13FE826E14C06E14F06F13FC6F13FF -030F14C06F14F0030114FC6F6C13FF041F80040714E0040180706C7F051F7F05077F717F -1700727F84D903C06F7F011F82D97F808149C9FCD803FE82EA07F8484882121F4960123F -A2007F96C7FCA26100FF17036D5F616D16074E5A6D5F6D4C5A6C6C4C5A6E4BC8FC6C01E0 -EC01FC6EEC07F86C01FEEC1FF06C903AFFE003FFC06C91B6C9FC6C16FCC616F06D15C001 -1F4ACAFC010314F09026003FFECBFC4A567ED348>83 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: FD cmr12 14.4 1 -/FD 1 100 df<EC0FFE91387FFFE049B512F8903907F801FE90391FE0001FD93F80EB07 -8049C7EA0FC001FE143F484815E00003157F485A485AA2485AEE3FC0003FED0F004991C7 -FCA2127FA35B12FFAB127F7FA3123F6D1570121F6D15F0000F16E06D140112076C6CEC03 -C06D15806C6C14076C6DEB0F00D93FC0131E6D6C137C903907FC03F06DB55AD9007F1380 -DA0FF8C7FC2C367CB434>99 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: FE cmr17 24.88 25 -/FE 25 118 df[<1AF04F7E4F7EA34F7EA34F7EA34F7FA34F7FA34F7FA296B57EA219FB -06018019F319F106038019E119E0060780F1C07FA2060F804F7EA2061F814F7EA2063E81 -86067E81187C8606FC8160860501824E7FA20503824E7FA20507824E147FA24D48818705 -1F8395C8FC874D83173E87057E83177C8705FC834D81A20401844D81A20403844D81A24C -48831C7F040F845F88041F8594CAFC884C85043E83A2047E85047C83A204FC854C8393BB -FC4B86A24B86A3DB07E0CB7F5E1D7F030F865E89031F8793CC7EA24B87033E85A2037E87 -037C85A24B87890201885D890203885D890207884B1A7FA2020F884B86A2021F8992CE7E -5C8C4A878C5C8A498A497F010F6D507F496D88017F6D083F7F0007B500FE4FB612C0B700 -C095B812F0A6>132 145 123 272 143 65 D[<96261FFF8016380607B512FC063FDAFF -8015784DB712E0050F04FC15F8053F04FF14014CB526FE000F7F4C02C0010001E0130304 -0F01FCC8EA1FF0043F01E0DB07FC130793B50080ED01FE4B49CA007F130F030701F8EF3F -804B01E094381FC01F4B49EF07E04B90CB3803F03FDBFFFEF001F84A49953800FC7F4A49 -197E4A01E0F13FFF4A5B4A49858A4A90CD7E4A5A4A48864949865D4988495B49491B7FA2 -49491B3FA24990CF121F5B5C01FF1D0F5C5A4A1C075AA24A1C035AA25C481E01A3485BA2 -1F005AA25CA2481F00A691D2FCB5FCB37E80A67EA28020787EA36C7FA37E6E1DF820F07E -80A26C6D1C0120E07E80017F1D036E1DC06D1D076D7F20806D6D1B0F6F1C006D656D6D1B -1E6D6D1B3E676D7F6E6C636E6C1A016E6D62704F5A6E6D19076E6D4F5A6E6D4F5A6E6D4F -C7FC6E6D197EDB3FFF616F01C04D5A6F6D4D5A6F01F8EF0FE0030101FE4D5A6F6D6CEE7F -80043F01E0DB01FEC8FC040F01FCED0FFC0403D9FFC0EC7FF07002FE903807FFE0DC003F -90B71280050F4CC9FC050116F0DD003F15C0060702FCCAFCDE001F13C0>117 -147 118 271 138 67 D[<BF12FEA58AD8001F0280C9120F010349CB123F6D4918071C00 -6D871D1F891D03777FA2891E7F1E3FA21E1FA3787EA31E07A31E03A38BA21E01A7E003C0 -811E00A49CC7FCA61A07A41A0FA21A1FA21A3F1A7FF101FF1907197F92B9FCA603FCC87E -19071901F1007F1A3F1A1FA21A0FA21A07A41A03A4F703C0A4F70780A397CAFCA4F70F00 -A567A31F1E1F3EA41F7EA21F7C1FFCA31E01A21E031E07671E0F1E1F1E3F1E7F1EFF651D -07535B491B7F52B5FC496D181F011F6D6C0407B6FCC0FCA267A4>114 -141 117 268 130 69 D[<BF12F0A58AD8001F0280C97E010349CA12016D49EF001F1C07 -6D1A01881D3F1D1F777E1D07A21D031D01A21D00A21E7C1E7EA21E3EA41E1EA31E1FA28A -A71F801E07F20780A39BC7FCA81A0FA41A1FA21A3FA21A7F1AFF1903190F96B5FC92B9FC -A603FCC8FC190F190319001A7F1A3FA21A1FA21A0FA41A07AB97CBFCB3B0497FA2496D7E -011F14F8B912C0A6>105 141 117 268 124 I[<B800FC033FB8FCA6D8001F02E0CA0007 -ECF800010391CC14C06D49735BA26D497390C7FCB3B3B392BDFCA603FCCC123FB3B3B3A6 -496D4F7FA2496D96B57E011F02E0050714F8B800FC033FB8FCA6>120 -141 117 268 143 72 D[<B9FCA6D8000FECF000010114806D91C7FCA26E5AB3B3B3B3B3 -B3AD91B5FCA24980010F14F0B9FCA6>48 141 118 268 68 I[<B912C0A6D8001F02F8CD -FC010314806D49CEFCA26D5BB3B3B3B3A61EF0A5F501E0A81D03A31EC0A31D07A41D0FA3 -1D1F1E801D3FA21D7FA21DFFA264646452130064646451B5FC1B0749191F1B7F496D0403 -B6FC011F6D6C157FBFFC65A5>100 141 117 268 119 76 D[<B600FE9AB612FE6F64A3 -7063A2D8001FF9F000D903F76DE107BF138001019EC7FCA2D900F36D98380F3FFEA202F1 -6D1B1EA302F06D1B3CA36F6C1B78A36F6C1BF0A270F201E081A26F6DF103C0A36F6DF107 -80A36F6DF10F00A36F6D191EA26F6D61A3706C61A3706C61A3706C4E5AA2706D4D5AA370 -6D4D5AA3706D4DC7FCA3706D171EA2706D5FA3716C5FA3716C5FA3716C4C5AA2535A717F -A2716D4B5AA3716D4BC8FCA3716D151EA3716D5DA2726C5DA3726C5DA3726C4A5AA3726D -495AA2726D495AA3726D49C9FCA3726D131EA3726D5BA2736C5BA3736C5BA3736C485AA3 -73EB83C0A2F387807313C7A27301EFCAFCA37313FEA3496C705BA3496C715A497E496C71 -484D7E497F017F01E09AB57E0003B500FC7048040714F0B700F0083FB712FEA2745AA374 -5A>151 141 116 268 176 I[<B600FC060FB7FC8181A282A2D800076EDD003F14C00100 -6E0607EBFE000B0113F870725B02F7755A02F36D735A70735A14F102F07F7073C7FC8183 -816F7F838183816F7F83816F7FA2707E8482707FA2707F8482707F84828482717E858385 -83717F8583717FA2717F8583727EA2727F8684727F86848684727F86848685737F878573 -7FA2737F8785737FA2737F8786747F88868886747F88868886747F8887751380A27513C0 -1DE0877513F0A27513F81DFC877513FE1DFF881E8F887613CF1EEF881EFF8888A28888A2 -89A28989A2496C86A289496C86497E496C86497F017F01E0850003B500FC86B712F08AA2 -8A8AA2>120 141 117 268 143 I[<F17FFE061FB512F895B7FC050716E0053FD9C00313 -FCDDFFF8C7EA1FFF040301C0020313C0040F90C913F0DC3FFCEE3FFCDC7FF0EE0FFE4B48 -48706C7E4B018004017F030F90CB13F0DB1FFCF03FF84B48727E4B48727E4B48727E4A49 -727F4A49727F4A90CD7F4A48747E021F884A48747E4A48747E4A48747EA24949747F4949 -747F498A4B86498A92CFFC498A4948767EA24948767EA201FF8A4A884820804A884820C0 -A348497613E0A348497613F0A34820F8A24A884820FCA54820FEA291D1FCA5B51FFFB26C -6D5213FEA76C20FC6E64A36C20F8A26E64A26C20F0A26E646C20E0A36C6D5213C0A26C20 -806E646C20006E64017F66A26D6C525AA26D6D505BA26D6D505B6D666F626D666D6D505B -6F626D9BC7FC6E6C505A6E6C505A6E6C505A6E646E6D4E5B70606E6D4E5B02006D4E90C8 -FC6F6C4E5A6F6C4E5A6F6C4E5A6F6C4E5A030301C0040313C06F6D4C5B9226007FF8DC1F -FEC9FCDC3FFEEE7FFC93260FFF80913801FFF0040301E0020713C0040001FC023F90CAFC -943B3FFFC003FFFC050790B612E005011680DD001F02F8CBFC9526007FFECCFC>128 -147 118 271 149 I[<BB12FCF2FFF01BFEF3FFC01CF01CFCD8001F0280C8003F13FF01 -0349C9000114C06D49DC003F7F090713F86D07017F757FF43FFF767F767F767F767F767F -767FA2777E8A891F80A2891FC0A21FE0A289A21FF0AB1FE0A3651FC0A31F80651F006566 -A2535A525B6664525B525B525B5290C7FCF4FFFC515B09075B093F13C050B55A083F49C8 -FC92BA12F81CC051C9FC1BF008FCCAFC03FCCFFCB3B3B3A2497FA2497F011F14E0B812FC -A6>108 141 117 268 130 I[<922601FFF01507031FEBFF8092B600F05C020315FC020F -03FF5C023F16C091B5D8000F01F05B4901F09038007FF84901C0DA0FFE5B010F90C8EA03 -FFD91FFC03006D5A4948EE3FC04948EE1FE14AEE0FF14948EE07FB484916014890CBB5FC -5B48488486484884A248488486123F4984A2007F85A24984A212FF87A387A37F87A37FA2 -007F867FA27F7F003F97C7FC7F806C7F806C7F806C13FE806C14C06C14F8EDFF806C15F0 -6D14FF6D15F06D15FF6D16F06D16FE6DEEFFE06D17F86D6C16FE021F707E020717E00201 -17F86E6C82030F82030082040F82040082051F81050181DD001F801801DE003F7F070F7F -8507017F85741380867413C0867413E0A2867413F0A286A200F01A7F1CF8A21B3FA41B1F -7EA57EA21CF0A27E1B3F7E1CE07F1B7F6D1AC0A26D19FF1C806D606D1A006D606D616D18 -076E4D5AD9DFC04D5A6E60D98FF0173FD987FC4D5AD903FF4C485A010001C04B5B48D97F -F04B90C7FCDA3FFEED1FFE4890260FFFC0ECFFF8020301FF01075B486D91B612C06E6C5E -48020F4BC8FC030115F048DA003F14C0040001FCC9FC>85 147 118 -271 106 83 D[<001FC112C0A603C0C700070280C7121F02FCC8000149C9FC4801E06F49 -041F13E091CA1807498901F81D00491E7F491E3F491E1FA2491E0FA290CB1907A2003E1F -03A3007E20F0007C1F01A600781F00A800F820F8482078A7CC1A00B3B3B3B3AC4E7F4E7F -4E80067F14F8047FB912F8A6>125 140 122 267 138 I[<B800C0030FB700FC0403B7FC -A6C66C02E0CA00074ACB001F14E0010F91CB000102F0060714006D497202C0060113FC6D -497349725B4B73755A6DA16D5AA15E6F73755A6D89A193C7FC6F85027FA1121E8B6F856E -A15A8B7084A1157C6E506D1978A27022F86E7661657021016E76616570DE1E7F19036EA1 -5A0B3E7F70F03C3F6E595A0B7C8070F0781FA1140F6E08F86E95C8FC537E7069037F7617 -1E52487E70213E6F76173C1C03714D6C197C6F22780A0781714D7E6F6A0A0F817194C7FC -A113016F4E6F5F0A1E147F711F036F765F5280711F076F775E1C7C7104786E170F6F9FC9 -FC0AF882714C80047F201E090183714C80A1133E70040371153C5280721E7C7076157851 -4880721EF870765D1B0F7292C916017068518372021E167F70555A093E8372023C82A112 -0770047C725C097882721D0F707791CAFC51827265057F76131E1A01724A70153E711E3C -08038507804982716608078507C04982A112F871020F735B98CBFC07E01B01710AFE5B08 -1E187F07F01B03710AFF5B1A3EDFF83C7213077166087C1A87DFFC7884710B8FCBFC08F8 -1ACF73488423DFDE7FFF1BFE5084A272645084A27264A250847264A297CDFC7264A24F1A -7FA20603644F1A3FA20601644F1A1FA2060099CCFC4F86>192 144 -126 268 197 87 D<ED0FFF92B512F0020714FE021F6E7E91267FF00313E04AC7EA7FF8 -D903FCEC1FFCD907F0EC07FFD90FC06E7F49486E7F49C97F013E707E49707E49161F8549 -707E48B4FC02C06F7E80486D836E81A3727FA46C5BA238007FC06D5A90CAFCA8053FB5FC -041FB6FC4BB7FC031FEBFE0192B512800203EBF800021F1380DA7FFEC7FC903801FFF049 -13C0010F5B4948C8FC495A495A48485A5C485B485B4890C9FCA2485AA248481A3CA2485A -A312FF5B60A460A2606D160E007F171E181C6D163C003F4D6C6C13786D16F06C6C15016C -6D4A486C6C13F06C6DEC07C06C6D913B1F801FF801E06C01F8DA3E00EBFC0326007FFED9 -01FC90390FFF9FC090283FFFC00FF86DEBFF80010F90B500E06D1400010103806D5BD900 -3F01FCC813F8020301C0ED1FC0565C78DA5F>97 D<EE3FFC0303B512C0031F14F8037F14 -FF912701FFE00313C0020790C7EA3FE0DA0FFCEC07F8DA3FF0EC01FC4A48EC007E4A4881 -4949ED0F804990C9EA07C04948EE03E0495A4948EE01F0013F17004948EE0FF84A163F01 -FF177F4849EEFFFC60485BA25A91C9FC5AA248487013F8A2F13FE0003FF01FC04994C7FC -A2127FA45BA212FFAF127F7FA4123FA27FA2121FA27F6C190F806C191F1A1E6C7F1A3E6C -6D173C6C197C6E17786D6C17F8013F18F06D6C16016EEE03E06D6CEE07C06D6DED0F806D -6D151F6D6DED3F006D6C6C157EDA3FFC15F86EB4EC03F0020701C0EB1FE0020101F8EBFF -806E6CB548C7FC031F14F8030314C09226003FFCC8FC485C79DA54>99 -D[<1BFCF11FFF0607B5FCA6F0000719001A7F1A3FA21A1FB3B3A4EE1FFC0303B512C003 -1F14F8037F14FE913B01FFF801FF8002079039C0001FC04A48C7EA07F0DA3FF8EC01F84A -48EC007CDAFFC0153E4949151F4990C9EA0F9F4948EE07DF4948EE03FF494882013F8349 -5A4948177F1A3F485B1A1F485B5A91CBFC5AA25B121FA2123F5BA3127FA35BA212FFAF12 -7FA37FA3123FA36C7EA3120F7F7EA26C6D173FA26C6D177FA26C6D17FF017F5F806D6C5E -011FEF07DF6D6CEE0F9F6D6C93381F1FFE6D6C163E6D6D037C7F6D01E0DA01F8806E6CDA -03F014F0DA1FFCDA0FC0ECFFF06EB4EC7F8002039039E007FE00020090B512F8033F14E0 -030791C7FC9226007FF04BC7FC>92 144 121 270 106 I[<EB07F0497E497E497E497E -90B57EA76D90C7FC6D5A6D5A6D5A6D5A90C9FCB3ACEC1F8048B5FC127FA6C67E131F7F7F -A27FB3B3B3AE497F497F013F13F8B712F8A6>37 137 121 264 52 -105 D[<EC1F800003B5FCB6FCA6C6FC131F7F7FA27FB3B3B3B3B3B3AD497F497F013F13 -F8B712FEA6>39 143 121 270 52 108 D<023F912601FFE0933807FF800003B5021F01 -FE047F13F8B6027FD9FFC04AB6FC4CB600F0020715C0932607FC0101FC91261FF00713F0 -93280FC0001FFE4AC76C7E043FC76C6C02FC6E7E047C020390268001F0EC0FFEC64B6E6D -48486E7E011F49486E6D48486E7F6D4948704848826D4A037F91C87E4B48DCF81E836D49 -C9003F4981030E1838031E93261FFC78707E4B60A24BEFFDE009FF8403707049163F15F0 -4B60A34B95CAFCA44B5FB3B3B0496D4C6C4D7E496D4C6D4C7E013F01F893B500E003036D -7EB700FE0103B700F8010FB712E0A6935A79D9A0>I<023F913801FFE00003B5021F13FE -B6027FEBFFC04CB612F0932607FC0113FC933A0FC0001FFE043FC76C7E047C02037FC64B -6E7F011F49486E7F6D4948826D4A157F4B48826D49C9123F150E031E707E5DA25D870370 -160F15F05DA35DA45DB3B3B0496D4C7E496D4C7F013F01F893B512E0B700FE0103B712F8 -A65D5A79D96A>I<EE1FFE4BB512E0030F14FC037FECFF809226FFF0037F020390398000 -7FF0DA0FFCC7EA0FFCDA1FF0EC03FEDA7FE06E6C7EDAFF806E6C7E4990C96C7E4948707E -4948707E4948707E4948707EA24948707E4948707F01FF854A177F48864890CB6C7EA248 -8649181F000F86A34848727EA3003F86A34848721380A500FF1BC0AF007F1B80A26D60A3 -003F1B00A3001F626D181FA2000F62A26C6C4E5AA26C626E177F6C626E17FF6C626D6C4C -5BA26D6C4C90C7FC6D6C4C5A6D6C4C5A0107606D6C4C5A6D6C4C5A6D01C0EDFFC06E6C4A -5BDA3FF8020790C8FCDA0FFCEC0FFC6EB46CEB7FF802019039F003FFE06E6CB61280030F -02FCC9FC030114E09226001FFECAFC525C7ADA5F>I<023FEC0FF00003B5EC7FFEB649B5 -1280040714E093391FF00FF093383F803F93397E007FF85EC6DA01F0EBFFFC011F495A6D -5C6D13075E6D49C7FC4BEC7FF8151E031CEC1FE0033CEC0780033891C7FC1578A2157015 -F0A25DA45DA55DB3B3AB815B497F013F13FCB812C0A63E5A7AD949>114 -D<15F0A91401A61403A41407A4140FA2141FA2143FA2147FA214FF5B5B5B5B5B137F90B9 -FC120FBAFCA4C7D87FF0C9FCB3B3AAF001E0B218036E6C15C0A318076E6C1580A2180F6E -6C1500606E6C141E6E6D133E606E6D5B6E9038F001F092393FFC07E06FB55A03075C0301 -49C7FC9238001FF03B807DFE49>116 D<DA1F80177E0003B593380FFFFEB60303B5FCA6 -C6EF0003011FEF007F6D183F6D181FA26D180FB3B3AE1A1FA41A3FA31A7FA26D18FFA2F1 -01EF816DEF03CFF1078FA26E6C92380F0FFF191E6E6C033C806E6C0378806E6CDA01F014 -F86E6CDA03E0ECFFF86E6C6CEB0FC06E01F8EB7F806E6CB5EAFE00031F14F8030314E092 -26003FFEC791C7FC5D5B79D96A>I E -%EndDVIPSBitmapFont -end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%PaperSize: A4 - -%%EndSetup -%%Page: 0 1 -0 0 bop 383 1805 a FE(SEMANTICS)60 b(WITH)j(APPLICA)-16 -b(TIONS)1078 2107 y(A)62 b(F)-16 b(ormal)61 b(In)-5 b(tro)5 -b(duction)904 2545 y FD(c)870 2549 y FC(\015)p FB(Hanne)38 -b(Riis)g(Nielson)2158 2545 y FD(c)2124 2549 y FC(\015)p -FB(Flemming)d(Nielson)864 3281 y FA(c)839 3284 y Fz(\015)o -FA(The)47 b(w)m(ebpage)h Fy(http://www.daimi.au.dk/)p -Fz(\030)-7 b Fy(hrn)47 b FA(con)m(tains)839 3397 y(information)19 -b(ab)s(out)i(ho)m(w)g(to)g(do)m(wnload)g(a)g(cop)m(y)h(of)f(this)f(b)s -(o)s(ok)g(\(sub-)839 3510 y(ject)31 b(to)g(the)g(conditions)d(listed)h -(b)s(elo)m(w\).)839 3670 y(The)41 b(b)s(o)s(ok)h(ma)m(y)h(b)s(e)e(do)m -(wnloaded)g(and)h(prin)m(ted)f(free)h(of)g(c)m(harge)839 -3783 y(for)34 b(p)s(ersonal)f(study;)j(it)e(ma)m(y)h(b)s(e)f(do)m -(wnloaded)g(and)g(prin)m(ted)f(free)839 3896 y(of)28 -b(c)m(harge)h(b)m(y)f(instructors)f(for)h Fx(imme)-5 -b(diate)36 b FA(photo)s(cop)m(ying)28 b(to)h(stu-)839 -4008 y(den)m(ts)35 b(pro)m(vided)g(that)h(no)g(fee)g(is)f(c)m(harged)h -(for)g(the)f(course;)k(these)839 4121 y(p)s(ermissions)29 -b(explicitly)h(exclude)i(the)h(righ)m(t)f(to)i(an)m(y)f(other)g -(distri-)839 4234 y(bution)19 b(of)j(the)f(b)s(o)s(ok)g(\(b)s(e)g(it)g -(electronically)f(or)h(b)m(y)g(making)g(ph)m(ysical)839 -4347 y(copies\).)839 4507 y(All)29 b(other)h(distribution)d(should)h(b) -s(e)i(agreed)h(with)e(the)i(authors.)839 4667 y(This)22 -b(is)i(a)h(revised)f(edition)f(completed)i(in)e(July)g(1999;)29 -b(the)c(original)839 4780 y(edition)e(from)i(1992)i(w)m(as)f(published) -21 b(b)m(y)k(John)f(Wiley)h(&)f(Sons;)j(this)839 4893 -y(should)h(b)s(e)i(ac)m(kno)m(wledged)h(in)e(all)g(references)i(to)g -(the)g(b)s(o)s(ok.)p eop -%%Page: 1 2 -1 1 bop 3441 130 a Fw(i)p 0 193 3473 4 v eop -%%Page: 5 3 -5 2 bop 0 1181 a Fv(Con)-6 b(ten)g(ts)0 1733 y Fw(List)37 -b(of)g(T)-9 b(ables)2688 b(vii)0 1954 y(Preface)3019 -b(ix)0 2174 y(1)90 b(In)m(tro)s(duction)2652 b(1)146 -2296 y Fu(1.1)100 b(Seman)m(tic)32 b(description)g(metho)s(ds)66 -b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)142 b(1)146 2418 y(1.2)100 b(The)33 b(example)f -(language)g Fw(While)64 b Fu(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)142 b(7)146 -2540 y(1.3)100 b(Seman)m(tics)32 b(of)g(expressions)72 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)142 b(9)146 2662 y(1.4)100 -b(Prop)s(erties)32 b(of)g(the)h(seman)m(tics)g(.)50 b(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -93 b(15)0 2882 y Fw(2)d(Op)s(erational)37 b(Seman)m(tics)2107 -b(19)146 3004 y Fu(2.1)100 b(Natural)31 b(seman)m(tics)38 -b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(20)146 -3126 y(2.2)100 b(Structural)32 b(op)s(erational)e(seman)m(tics)35 -b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)93 b(32)146 3248 y(2.3)100 b(An)33 b(equiv)-5 -b(alence)32 b(result)48 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 -b(40)146 3370 y(2.4)100 b(Extensions)34 b(of)e Fw(While)64 -b Fu(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(44)146 3492 -y(2.5)100 b(Blo)s(c)m(ks)32 b(and)h(pro)s(cedures)81 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(50)0 3713 y Fw(3)d(Pro)m(v)-6 -b(ably)37 b(Correct)f(Implemen)m(tation)1554 b(63)146 -3834 y Fu(3.1)100 b(The)33 b(abstract)g(mac)m(hine)e(.)50 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(63)146 3956 y(3.2)100 -b(Sp)s(eci\014cation)31 b(of)i(the)g(translation)f(.)50 -b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)93 b(69)146 4078 y(3.3)100 b(Correctness)85 -b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 -b(73)146 4200 y(3.4)100 b(An)33 b(alternativ)m(e)e(pro)s(of)h(tec)m -(hnique)39 b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(81)0 4421 y Fw(4)d(Denotational)37 -b(Seman)m(tics)2054 b(85)146 4543 y Fu(4.1)100 b(Direct)31 -b(st)m(yle)j(seman)m(tics:)43 b(sp)s(eci\014cation)48 -b(.)i(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)93 b(85)146 4664 y(4.2)100 b(Fixed)32 b(p)s(oin)m(t)g(theory)84 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(93)146 4786 -y(4.3)100 b(Direct)31 b(st)m(yle)j(seman)m(tics:)43 b(existence)37 -b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)44 b(107)146 4908 y(4.4)100 b(An)33 b(equiv)-5 -b(alence)32 b(result)48 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 -b(112)146 5030 y(4.5)100 b(Extensions)34 b(of)e Fw(While)64 -b Fu(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 b(117)0 5251 -y Fw(5)90 b(Static)37 b(Program)f(Analysis)1958 b(133)146 -5373 y Fu(5.1)100 b(Prop)s(erties)32 b(and)h(prop)s(ert)m(y)g(states)44 -b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)44 b(135)146 5494 y(5.2)100 b(The)33 -b(analysis)42 b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -44 b(142)1710 5849 y(v)p eop -%%Page: 6 4 -6 3 bop 251 130 a Fw(vi)2944 b(Con)m(ten)m(ts)p 251 193 -3473 4 v 430 515 a Fu(5.3)99 b(Safet)m(y)34 b(of)e(the)h(analysis)52 -b(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(153)430 636 y(5.4)99 -b(Bounded)34 b(iteration)e(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -44 b(160)283 854 y Fw(6)91 b(Axiomatic)35 b(Program)h(V)-9 -b(eri\014cation)1587 b(169)430 974 y Fu(6.1)99 b(Direct)32 -b(pro)s(ofs)g(of)g(program)f(correctness)98 b(.)50 b(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(169)430 -1094 y(6.2)99 b(P)m(artial)31 b(correctness)k(assertions)d(.)50 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)44 b(175)430 1215 y(6.3)99 b(Soundness)35 -b(and)d(completeness)54 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(183)430 -1335 y(6.4)99 b(Extensions)34 b(of)e(the)h(axiomatic)d(system)68 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)44 b(191)430 1456 y(6.5)99 b(Assertions)34 b(for)e(execution)h -(time)99 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(200)283 1674 y Fw(7)91 -b(F)-9 b(urther)37 b(Reading)2348 b(209)283 1891 y(A)62 -b(Review)36 b(of)i(Notation)2200 b(213)283 2109 y(App)s(endices)2741 -b(212)283 2327 y(B)67 b(In)m(tro)s(duction)36 b(to)h(Miranda)h -(Implemen)m(tations)1092 b(217)430 2448 y Fu(B.1)79 b(Abstract)33 -b(syn)m(tax)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 -b(217)430 2568 y(B.2)79 b(Ev)-5 b(aluation)31 b(of)h(expressions)39 -b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(218)283 2786 y Fw(C)66 -b(Op)s(erational)37 b(Seman)m(tics)f(in)h(Miranda)1468 -b(221)430 2906 y Fu(C.1)78 b(Natural)32 b(seman)m(tics)37 -b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(221)430 -3027 y(C.2)78 b(Structural)32 b(op)s(erational)e(seman)m(tics)35 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)44 b(223)430 3147 y(C.3)78 b(Extensions)34 -b(of)e Fw(While)65 b Fu(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 -b(225)430 3268 y(C.4)78 b(Pro)m(v)-5 b(ably)33 b(correct)g(implemen)m -(tation)97 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)44 b(227)283 3485 y Fw(D)61 b(Denotational)36 -b(Seman)m(tics)h(in)g(Miranda)1415 b(229)430 3606 y Fu(D.1)73 -b(Direct)32 b(st)m(yle)h(seman)m(tics)27 b(.)50 b(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)44 b(229)430 3726 y(D.2)73 b(Extensions)34 b(of)e -Fw(While)65 b Fu(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 -b(230)430 3847 y(D.3)73 b(Static)32 b(program)f(analysis)h(.)50 -b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b(230)283 4065 y Fw(Bibliograph)m(y)2675 -b(233)283 4282 y(Index)38 b(of)g(Sym)m(b)s(ols)2454 b(235)283 -4500 y(Index)3029 b(237)p eop -%%Page: 7 5 -7 4 bop 0 1180 a Fv(List)77 b(of)g(T)-19 b(ables)146 -1632 y Fu(1.1)100 b(The)33 b(seman)m(tics)g(of)f(arithmetic)f -(expressions)f(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)93 b(13)146 1752 y(1.2)100 b(The)33 b(seman)m(tics)g(of)f(b) -s(o)s(olean)f(expressions)63 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(14)146 1956 y(2.1)100 -b(Natural)31 b(seman)m(tics)i(for)f Fw(While)24 b Fu(.)50 -b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)93 b(20)146 2076 y(2.2)100 b(Structural)32 -b(op)s(erational)e(seman)m(tics)j(for)f Fw(While)98 b -Fu(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 -b(33)146 2197 y(2.3)100 b(Natural)31 b(seman)m(tics)i(for)f(statemen)m -(ts)h(of)f Fw(Blo)s(c)m(k)53 b Fu(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)93 b(52)146 2317 y(2.4)100 b(Natural)31 -b(seman)m(tics)i(for)f(v)-5 b(ariable)31 b(declarations)55 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 -b(52)146 2437 y(2.5)100 b(Natural)31 b(seman)m(tics)i(for)f -Fw(Pro)s(c)g Fu(with)g(dynamic)g(scop)s(e)h(rules)51 -b(.)f(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(54)146 2558 y(2.6)100 -b(Pro)s(cedure)33 b(calls)f(in)g(case)h(of)f(mixed)g(scop)s(e)h(rules)g -(\(c)m(ho)s(ose)g(one\))69 b(.)49 b(.)h(.)g(.)g(.)g(.)93 -b(56)146 2678 y(2.7)100 b(Natural)31 b(seman)m(tics)i(for)f(v)-5 -b(ariable)31 b(declarations)g(using)h(lo)s(cations)82 -b(.)50 b(.)g(.)g(.)g(.)93 b(58)146 2798 y(2.8)100 b(Natural)31 -b(seman)m(tics)i(for)f Fw(Pro)s(c)g Fu(with)g(static)g(scop)s(e)h -(rules)101 b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 -b(59)146 3002 y(3.1)100 b(Op)s(erational)30 b(seman)m(tics)j(for)f -Fw(AM)101 b Fu(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(65)146 3122 y(3.2)100 -b(T)-8 b(ranslation)31 b(of)h(expressions)89 b(.)50 b(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -93 b(70)146 3243 y(3.3)100 b(T)-8 b(ranslation)31 b(of)h(statemen)m(ts) -h(in)f Fw(While)50 b Fu(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)93 b(71)146 3446 y(4.1)100 b(Denotational)30 -b(seman)m(tics)i(for)g Fw(While)g Fu(.)50 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)93 b(86)146 -3566 y(4.2)100 b(Denotational)30 b(seman)m(tics)i(for)g -Fw(While)f Fu(using)i(lo)s(cations)58 b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)44 b(119)146 3687 y(4.3)100 b(Denotational)30 -b(seman)m(tics)i(for)g(v)-5 b(ariable)31 b(declarations)63 -b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 b(121)146 -3807 y(4.4)100 b(Denotational)30 b(seman)m(tics)i(for)g(non-recursiv)m -(e)i(pro)s(cedure)g(declarations)71 b(.)50 b(.)44 b(122)146 -3928 y(4.5)100 b(Denotational)30 b(seman)m(tics)i(for)g -Fw(Pro)s(c)93 b Fu(.)50 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)44 b(123)146 4048 y(4.6)100 -b(Denotational)30 b(seman)m(tics)i(for)g(recursiv)m(e)i(pro)s(cedure)g -(declarations)c(.)50 b(.)g(.)g(.)g(.)44 b(125)146 4168 -y(4.7)100 b(Con)m(tin)m(uation)31 b(st)m(yle)j(seman)m(tics)e(for)g -Fw(While)27 b Fu(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)44 b(128)146 4289 y(4.8)100 b(Con)m(tin)m(uation)31 -b(st)m(yle)j(seman)m(tics)e(for)g Fw(Exc)61 b Fu(.)49 -b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 -b(130)146 4492 y(5.1)100 b(Analysis)32 b(of)g(expressions)62 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 b(143)146 4613 y(5.2)100 -b(Analysis)32 b(of)g(statemen)m(ts)i(in)d Fw(While)100 -b Fu(.)50 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)44 b(144)146 4816 y(6.1)100 b(Axiomatic)30 -b(system)k(for)e(partial)e(correctness)84 b(.)50 b(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 b(178)146 4936 -y(6.2)100 b(Axiomatic)30 b(system)k(for)e(total)f(correctness)88 -b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)44 -b(192)146 5057 y(6.3)100 b(Exact)33 b(execution)g(times)f(for)g -(expressions)54 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)44 b(202)146 5177 y(6.4)100 b(Natural)31 -b(seman)m(tics)i(for)f Fw(While)f Fu(with)h(exact)h(execution)h(times) -79 b(.)49 b(.)h(.)g(.)g(.)g(.)44 b(203)146 5297 y(6.5)100 -b(Axiomatic)30 b(system)k(for)e(order)g(of)h(magnitude)e(of)h -(execution)h(time)46 b(.)k(.)g(.)g(.)g(.)44 b(204)1683 -5849 y(vii)p eop -%%Page: 8 6 -8 5 bop 251 130 a Fw(viii)2654 b(List)37 b(of)h(T)-9 -b(ables)p 251 193 3473 4 v eop -%%Page: 9 7 -9 6 bop 0 1180 a Fv(Preface)0 1632 y Fu(Man)m(y)37 b(b)s(o)s(oks)f(on)h -(formal)c(seman)m(tics)k(b)s(egin)e(b)m(y)i(explaining)e(that)h(there)g -(are)h(three)f(ma)5 b(jor)0 1752 y(approac)m(hes)34 b(to)e(seman)m -(tics,)h(that)f(is)145 1923 y Ft(\017)49 b Fu(op)s(erational)30 -b(seman)m(tics,)145 2115 y Ft(\017)49 b Fu(denotational)30 -b(seman)m(tics,)j(and)145 2308 y Ft(\017)49 b Fu(axiomatic)30 -b(seman)m(tics;)0 2478 y(but)36 b(then)g(they)h(go)e(on)h(to)f(study)i -(just)f Fs(one)43 b Fu(of)35 b(these)i(in)e(greater)g(detail.)52 -b(The)36 b(purp)s(ose)h(of)0 2598 y(this)32 b(b)s(o)s(ok)g(is)g(to)145 -2769 y Ft(\017)49 b Fu(presen)m(t)34 b(the)f Fs(fundamental)h(ide)-5 -b(as)40 b Fu(b)s(ehind)32 b Fs(al)5 b(l)43 b Fu(of)32 -b(these)i(approac)m(hes,)145 2961 y Ft(\017)49 b Fu(to)25 -b(stress)i(their)d Fs(r)-5 b(elationship)30 b Fu(b)m(y)d(form)m -(ulating)22 b(and)j(pro)m(ving)g(the)h(relev)-5 b(an)m(t)25 -b(theorems,)244 3082 y(and)145 3274 y Ft(\017)49 b Fu(to)i(illustrate)f -(the)i Fs(applic)-5 b(ability)60 b Fu(of)51 b(formal)e(seman)m(tics)j -(as)g(a)f(to)s(ol)f(in)h(computer)244 3395 y(science)q(.)0 -3565 y(This)45 b(is)g(an)g(am)m(bitious)e(goal)h(and)h(to)f(ac)m(hiev)m -(e)j(it,)g(the)f(bulk)f(of)f(the)i(dev)m(elopmen)m(t)g(con-)0 -3685 y(cen)m(trates)37 b(on)f(a)g(rather)f(small)f(core)i(language)f -(of)g Fr(while)p Fu(-programs)h(for)f(whic)m(h)h(the)h(three)0 -3806 y(approac)m(hes)e(are)g(dev)m(elop)s(ed)g(to)f(roughly)f(the)i -(same)f(lev)m(el)g(of)f(sophistication.)47 b(T)-8 b(o)34 -b(demon-)0 3926 y(strate)f(the)g Fs(applic)-5 b(ability)40 -b Fu(of)32 b(formal)f(seman)m(tics)h(w)m(e)i(sho)m(w)145 -4097 y Ft(\017)49 b Fu(ho)m(w)34 b(to)g(use)g(seman)m(tics)g(for)f(v)-5 -b(alidating)31 b(protot)m(yp)s(e)j(implemen)m(tations)d(of)i(program-) -244 4217 y(ming)e(languages,)145 4409 y Ft(\017)49 b -Fu(ho)m(w)41 b(to)g(use)g(seman)m(tics)g(for)g(v)m(erifying)f(analyses) -h(used)h(in)e(more)g(adv)-5 b(anced)42 b(imple-)244 4530 -y(men)m(tations)32 b(of)g(programming)d(languages,)j(and)145 -4722 y Ft(\017)49 b Fu(ho)m(w)29 b(to)g(use)h(seman)m(tics)f(for)f(v)m -(erifying)h(useful)g(program)e(prop)s(erties)i(including)e(infor-)244 -4843 y(mation)j(ab)s(out)j(execution)g(time.)0 5013 y(The)k(dev)m -(elopmen)m(t)f(is)f Fs(intr)-5 b(o)g(ductory)45 b Fu(as)36 -b(is)f(already)g(re\015ected)i(in)e(the)h(title.)51 b(F)-8 -b(or)35 b(this)g(rea-)0 5133 y(son)c(v)m(ery)i(man)m(y)e(adv)-5 -b(anced)32 b(concepts)h(within)d(op)s(erational,)f(denotational)g(and)i -(axiomatic)0 5254 y(seman)m(tics)36 b(ha)m(v)m(e)h(had)f(to)f(b)s(e)h -(omitted.)52 b(Also)35 b(w)m(e)i(ha)m(v)m(e)g(had)f(to)f(omit)f -(treatmen)m(t)i(of)f(other)0 5374 y(approac)m(hes)26 -b(to)f(seman)m(tics,)h(for)f(example)f(P)m(etri-nets)h(and)g(temp)s -(oral)e(logic.)39 b(Some)24 b(p)s(oin)m(ters)0 5494 y(to)32 -b(further)h(reading)f(are)h(giv)m(en)f(in)g(Chapter)h(7.)1697 -5849 y(ix)p eop -%%Page: 10 8 -10 7 bop 251 130 a Fw(x)3050 b(Preface)p 251 193 3473 -4 v 283 419 V 283 3790 4 3371 v 1711 1523 a Fq(\010)1628 -1565 y(\010)1545 1606 y(\010)1462 1648 y(\010)1379 1689 -y(\010)1296 1731 y(\010)1279 1739 y(\010)1711 2270 y(\010)1628 -2312 y(\010)1545 2353 y(\010)1462 2395 y(\010)1379 2437 -y(\010)1296 2478 y(\010)1279 2486 y(\010)1711 3018 y(\010)1628 -3059 y(\010)1545 3101 y(\010)1462 3142 y(\010)1379 3184 -y(\010)1296 3225 y(\010)1279 3234 y(\010)2126 1523 y(H)2209 -1565 y(H)2292 1606 y(H)2375 1648 y(H)2458 1689 y(H)2541 -1731 y(H)2558 1739 y(H)2126 2270 y(H)2209 2312 y(H)2292 -2353 y(H)2375 2395 y(H)2458 2437 y(H)2541 2478 y(H)2558 -2486 y(H)2126 3018 y(H)2209 3059 y(H)2292 3101 y(H)2375 -3142 y(H)2458 3184 y(H)2541 3225 y(H)2558 3234 y(H)p -1959 1208 4 308 v 1959 1955 4 474 v 1959 2702 V 1959 -3408 4 432 v 1711 765 485 4 v 1711 903 4 139 v 1739 859 -a Fu(Chapter)34 b(1)p 2192 903 V 1711 906 485 4 v 1587 -1234 735 4 v 1587 1465 4 232 v 1740 1328 a(Chapter)f(2)1615 -1440 y(Sections)g(2.1{2.3)p 2318 1465 V 1587 1468 735 -4 v 798 1762 V 798 1880 4 118 v 826 1855 a(Sections)g(2.4{2.5)p -1529 1880 V 798 1883 735 4 v 2541 1761 485 4 v 2541 1900 -4 139 v 1065 w(Chapter)g(3)p 3023 1900 V 2541 1903 485 -4 v 1587 1981 735 4 v 1587 2212 4 232 v 1740 2075 a(Chapter)g(4)1615 -2187 y(Sections)g(4.1{4.4)p 2318 2212 V 1587 2215 735 -4 v 881 2510 523 4 v 881 2627 4 118 v 909 2603 a(Section)g(4.5)p -1400 2627 V 881 2630 523 4 v 2541 2508 485 4 v 2541 2647 -4 139 v 1194 w(Chapter)g(5)p 3023 2647 V 2541 2650 485 -4 v 1587 2728 735 4 v 1587 2960 4 232 v 1740 2822 a(Chapter)g(6)1615 -2935 y(Sections)g(6.1{6.3)p 2318 2960 V 1587 2963 735 -4 v 881 3257 523 4 v 881 3375 4 118 v 909 3350 a(Section)g(6.4)p -1400 3375 V 881 3378 523 4 v 2541 3257 V 2541 3375 4 -118 v 1194 w(Section)f(6.5)p 3061 3375 V 2541 3378 523 -4 v 1711 3422 485 4 v 1711 3560 4 139 v 1739 3516 a(Chapter)i(7)p -2192 3560 V 1711 3563 485 4 v 3753 3790 4 3371 v 283 -3793 3473 4 v 283 4078 a Fp(Ov)l(erview)283 4281 y Fu(As)26 -b(is)e(illustrated)e(in)i(the)h(dep)s(endency)i(diagram,)d(Chapters)h -(1,)h(2,)g(4,)g(6)e(and)h(7)f(form)g(the)g(core)283 4402 -y(of)34 b(the)g(b)s(o)s(ok.)47 b(Chapter)35 b(1)f(in)m(tro)s(duces)g -(the)h(example)e(language)g(of)g Fr(while)p Fu(-programs)h(that)283 -4522 y(is)28 b(used)h(throughout)f(the)h(b)s(o)s(ok.)41 -b(In)29 b(Chapter)g(2)e(w)m(e)j(co)m(v)m(er)f(t)m(w)m(o)g(approac)m -(hes)g(to)f Fs(op)-5 b(er)g(ational)283 4642 y(semantics)p -Fu(,)43 b(the)f(natural)e(seman)m(tics)h(of)g(G.)g(Kahn)g(and)g(the)h -(structural)f(op)s(erational)e(se-)283 4763 y(man)m(tics)30 -b(of)g(G.)h(Plotkin.)41 b(Chapter)32 b(4)e(dev)m(elops)i(the)f -Fs(denotational)h(semantics)38 b Fu(of)30 b(D.)i(Scott)283 -4883 y(and)40 b(C.)h(Strac)m(hey)g(including)d(simple)h(\014xed)i(p)s -(oin)m(t)e(theory)-8 b(.)66 b(Chapter)40 b(6)g(in)m(tro)s(duces)g -Fs(pr)-5 b(o-)283 5004 y(gr)g(am)33 b(veri\014c)-5 b(ation)36 -b Fu(based)31 b(on)f(op)s(erational)e(and)i(denotational)e(seman)m -(tics)j(and)f(go)s(es)g(on)g(to)283 5124 y(presen)m(t)e(the)e -(axiomatic)d(approac)m(h)j(due)h(to)e(C.)h(A.)g(R.)f(Hoare.)42 -b(Finally)-8 b(,)24 b(Chapter)i(7)g(con)m(tains)283 5244 -y(suggestions)34 b(for)e(further)g(reading.)430 5374 -y(The)i(\014rst)f(three)h(or)f(four)f(sections)i(of)f(eac)m(h)g(of)g -(the)g(Chapters)i(2,)e(4)f(and)i(6)e(are)h(dev)m(oted)283 -5494 y(to)i(the)h(language)d(of)i Fr(while)p Fu(-programs)g(and)g(co)m -(v)m(ers)i(sp)s(eci\014cation)d(as)i(w)m(ell)e(as)h(theoretical)p -eop -%%Page: 11 9 -11 8 bop 0 130 a Fw(Preface)3019 b(xi)p 0 193 3473 4 -v 0 515 a Fu(asp)s(ects.)44 b(In)32 b(eac)m(h)g(of)f(the)g(c)m(hapters) -i(w)m(e)f(extend)h(the)e Fr(while)p Fu(-language)g(with)g(v)-5 -b(arious)30 b(other)0 636 y(constructs)c(and)e(the)g(emphasis)g(is)f -(here)i(on)f(sp)s(eci\014cation)g(rather)g(than)g(theory)-8 -b(.)41 b(In)24 b(Sections)0 756 y(2.4)39 b(and)h(2.5)g(w)m(e)h -(consider)f(extensions)h(with)e(ab)s(ortion,)i(non-determinism,)e -(parallelism,)0 877 y(blo)s(c)m(k)33 b(constructs,)h(dynamic)f(and)g -(static)f(pro)s(cedures,)j(and)e(non-recursiv)m(e)h(and)f(recursiv)m(e) -0 997 y(pro)s(cedures.)86 b(In)47 b(Section)f(4.5)g(w)m(e)i(consider)e -(extensions)i(of)e(the)h Fr(while)p Fu(-language)f(with)0 -1117 y(static)37 b(pro)s(cedures)i(that)e(ma)m(y)h(or)f(ma)m(y)g(not)h -(b)s(e)f(recursiv)m(e)i(and)f(w)m(e)h(sho)m(w)f(ho)m(w)g(to)g(handle)0 -1238 y(exceptions,)e(that)d(is,)h(certain)g(kinds)g(of)g(jumps.)47 -b(Finally)-8 b(,)32 b(in)h(Section)h(6.4)f(w)m(e)i(consider)f(an)0 -1358 y(extension)c(with)e(non-recursiv)m(e)i(and)f(recursiv)m(e)i(pro)s -(cedures)f(and)f(w)m(e)h(also)e(sho)m(w)i(ho)m(w)g(total)0 -1478 y(correctness)46 b(prop)s(erties)e(are)f(handled.)77 -b(The)45 b(sections)g(on)e(extending)i(the)f(op)s(erational,)0 -1599 y(denotational)31 b(and)h(axiomatic)e(seman)m(tics)j(ma)m(y)g(b)s -(e)f(studied)h(in)f(an)m(y)h(order.)146 1728 y(The)d(applicabilit)m(y)c -(of)j(op)s(erational,)e(denotational)g(and)i(axiomatic)e(seman)m(tics)i -(is)g(illus-)0 1848 y(trated)h(in)f(Chapters)j(3,)e(5)g(and)g(6.)42 -b(In)31 b(Chapter)f(3)g(w)m(e)h(sho)m(w)g(ho)m(w)g(to)f(pro)m(v)m(e)h -(the)f(correctness)0 1969 y(of)37 b(a)g(simple)f(compiler)f(for)i(the)h -Fr(while)p Fu(-language)f(using)g(the)h(op)s(erational)d(seman)m(tics.) -58 b(In)0 2089 y(Chapter)35 b(5)f(w)m(e)i(pro)m(v)m(e)g(an)e(analysis)g -(for)g(the)g Fr(while)p Fu(-language)h(correct)g(using)f(the)h(denota-) -0 2209 y(tional)f(seman)m(tics.)54 b(Finally)-8 b(,)34 -b(in)h(Section)h(6.5)g(w)m(e)h(extend)g(the)g(axiomatic)c(approac)m(h)k -(so)f(as)0 2330 y(to)c(obtain)g(information)d(ab)s(out)j(execution)h -(time)f(of)g Fr(while)p Fu(-programs.)146 2459 y(App)s(endix)27 -b(A)g(reviews)h(the)f(mathematical)c(notation)i(on)h(whic)m(h)i(this)e -(b)s(o)s(ok)g(is)g(based.)42 b(It)0 2579 y(is)30 b(mostly)g(standard)g -(notation)g(but)g(some)h(ma)m(y)f(\014nd)h(our)f(use)i(of)e -Fo(,)-17 b Ft(!)30 b Fu(and)h Ft(\005)e Fu(non-standard.)0 -2700 y(W)-8 b(e)38 b(use)g Fs(D)47 b Fo(,)-17 b Ft(!)37 -b Fs(E)50 b Fu(for)37 b(the)g(set)h(of)f Fs(p)-5 b(artial)48 -b Fu(functions)37 b(from)f Fs(D)47 b Fu(to)37 b Fs(E)12 -b Fu(;)38 b(this)f(is)g(b)s(ecause)h(w)m(e)0 2820 y(\014nd)j(that)g -(the)g Fs(D)50 b Fo(*)40 b Fs(E)53 b Fu(notation)39 b(is)i(to)s(o)e -(easily)h(o)m(v)m(erlo)s(ok)m(ed.)69 b(Also)41 b(w)m(e)g(use)h -Fs(R)j Ft(\005)39 b Fs(S)53 b Fu(for)0 2940 y(the)32 -b(comp)s(osition)d(of)i(binary)h(relations)e Fs(R)36 -b Fu(and)31 b Fs(S)12 b Fu(;)32 b(this)f(is)g(b)s(ecause)i(of)e(the)h -(di\013eren)m(t)g(order)0 3061 y(of)44 b(comp)s(osition)e(used)k(for)e -(relations)f(and)h(functions.)79 b(When)46 b(dealing)d(with)h -(axiomatic)0 3181 y(seman)m(tics)c(w)m(e)h(use)f(form)m(ulae)e -Ft(f)i Fs(P)50 b Ft(g)39 b Fs(S)52 b Ft(f)39 b Fs(Q)49 -b Ft(g)40 b Fu(for)f(partial)e(correctness)42 b(assertions)e(but)0 -3302 y Ft(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 -b(+)h Fs(Q)41 b Ft(g)28 b Fu(for)g(total)e(correctness)31 -b(assertions)d(b)s(ecause)i(the)e(explicit)f(o)s(ccurrence)j(of)0 -3422 y Ft(+)i Fu(\(for)g(termination\))e(ma)m(y)j(prev)m(en)m(t)h(the)f -(studen)m(t)h(from)e(confusing)g(the)h(t)m(w)m(o)g(systems.)146 -3551 y(App)s(endices)27 b(B,)f(C)g(and)g(D)f(con)m(tain)g(implemen)m -(tations)e(of)i(some)h(of)f(the)h(seman)m(tic)g(sp)s(eci-)0 -3671 y(\014cations)e(using)g(the)g(functional)e(language)h -Fw(Miranda)p Fu(.)2073 3635 y Fn(1)2154 3671 y Fu(The)i(in)m(ten)m -(tion)f(is)f(that)h(the)g(abilit)m(y)0 3792 y(to)39 b(exp)s(erimen)m(t) -h(with)g(seman)m(tic)f(de\014nitions)g(enhances)j(the)e(understanding)g -(of)f(material)0 3912 y(that)32 b(is)f(often)h(regarded)h(as)f(b)s -(eing)f(terse)i(and)g(hea)m(vy)g(with)f(formalism.)40 -b(It)32 b(should)g(b)s(e)g(p)s(os-)0 4032 y(sible)j(to)g(rew)m(ork)i -(these)g(implemen)m(tations)c(in)i(an)m(y)h(functional)f(language)f -(but)i(if)f(an)g(eager)0 4153 y(language)42 b(\(lik)m(e)g -Fw(Standard)i(ML)p Fu(\))f(is)f(used,)47 b(great)42 b(care)h(m)m(ust)g -(b)s(e)g(tak)m(en)h(in)e(the)h(imple-)0 4273 y(men)m(tation)37 -b(of)h(the)h(\014xed)h(p)s(oin)m(t)d(com)m(binator.)60 -b(Ho)m(w)m(ev)m(er,)42 b(no)d(con)m(tin)m(uit)m(y)f(is)g(lost)g(if)f -(these)0 4394 y(app)s(endices)c(are)g(ignored.)0 4618 -y Fp(Notes)46 b(for)f(the)g(instructor)0 4820 y Fu(The)35 -b(reader)g(should)g(preferably)f(b)s(e)h(acquain)m(ted)g(with)f(the)h -(BNF-st)m(yle)g(of)f(sp)s(ecifying)g(the)0 4941 y(syn)m(tax)e(of)e -(programming)d(languages)i(and)i(should)f(b)s(e)g(familiar)c(with)k -(most)g(of)g(the)g(mathe-)0 5061 y(matical)c(concepts)k(surv)m(ey)m(ed) -h(in)d(App)s(endix)h(A.)g(T)-8 b(o)29 b(appreciate)f(the)h(protot)m(yp) -s(e)g(implemen-)0 5181 y(tations)j(of)g(the)h(app)s(endices)h(some)f -(exp)s(erience)h(in)e(functional)f(programming)f(is)i(required.)p -0 5304 1389 4 v 112 5365 a Fm(1)149 5395 y Fl(Miranda)24 -b Fk(is)f(a)g(trademark)f(of)h(Researc)n(h)e(Soft)n(w)n(are)h(Limited,) -j(23)d(St)i(Augustines)f(Road,)h(Can)n(terbury)-7 b(,)0 -5494 y(Ken)n(t)27 b(CT1)g(1XP)-7 b(,)27 b(UK.)p eop -%%Page: 12 10 -12 9 bop 251 130 a Fw(xii)2986 b(Preface)p 251 193 3473 -4 v 283 515 a Fu(W)-8 b(e)24 b(ha)m(v)m(e)g(ourselv)m(es)h(used)f(this) -f(b)s(o)s(ok)g(for)f(an)h(undergraduate)h(course)g(at)f(Aarh)m(us)h -(Univ)m(ersit)m(y)283 636 y(in)32 b(whic)m(h)h(the)g(required)g -(functional)e(programming)f(is)i(in)m(tro)s(duced)h(\\on-the-\015y".) -430 756 y(W)-8 b(e)48 b(pro)m(vide)g(t)m(w)m(o)g(kinds)g(of)f -(exercises.)90 b(One)48 b(kind)f(helps)h(the)g(studen)m(t)h(in)e -(his/her)283 877 y(understanding)31 b(of)e(the)h -(de\014nitions/results/tec)m(hniques)h(used)g(in)e(the)h(text.)44 -b(In)30 b(particular)283 997 y(there)38 b(are)e(exercises)j(that)d(ask) -h(the)g(studen)m(t)i(to)d(pro)m(v)m(e)i(auxiliary)c(results)j(needed)h -(for)e(the)283 1117 y(main)23 b(results)i(but)f(then)h(the)g(pro)s(of)f -(tec)m(hniques)i(will)c(b)s(e)i(minor)f(v)-5 b(ariations)22 -b(of)i(those)h(already)283 1238 y(explained)37 b(in)g(the)h(text.)58 -b(W)-8 b(e)38 b(ha)m(v)m(e)g(mark)m(ed)g(those)g(exercises)h(whose)f -(results)g(are)f(needed)283 1358 y(later)d(b)m(y)i(\\)p -Fw(\(Essen)m(tial\))p Fu(".)47 b(The)36 b(other)f(kind)g(of)f -(exercises)i(are)f(more)f(c)m(hallenging)f(in)h(that)283 -1478 y(they)g(extend)g(the)g(dev)m(elopmen)m(t,)f(for)g(example)f(b)m -(y)i(relating)d(it)h(to)g(other)h(approac)m(hes.)45 b(W)-8 -b(e)283 1599 y(use)36 b(a)e(star)h(to)f(mark)g(the)h(more)f(di\016cult) -f(of)h(these)i(exercises.)52 b(Exercises)36 b(mark)m(ed)f(b)m(y)g(t)m -(w)m(o)283 1719 y(stars)42 b(are)e(rather)h(length)m(y)g(and)f(ma)m(y)h -(require)g(insigh)m(t)e(not)i(otherwise)g(presen)m(ted)i(in)c(the)283 -1840 y(b)s(o)s(ok.)70 b(It)42 b(will)d(not)i(b)s(e)h(necessary)h(for)e -(studen)m(ts)j(to)d(attempt)g(all)e(the)j(exercises)h(but)f(w)m(e)283 -1960 y(do)33 b(recommend)f(that)g(they)i(read)f(them)f(and)h(try)f(to)h -(understand)h(what)e(the)h(exercises)i(are)283 2080 y(ab)s(out.)283 -2369 y Fp(Ac)l(kno)l(wledgemen)l(ts)283 2554 y Fu(In)47 -b(writing)d(this)h(b)s(o)s(ok)h(w)m(e)g(ha)m(v)m(e)h(b)s(een)g(greatly) -e(assisted)i(b)m(y)f(the)g(commen)m(ts)g(and)g(sug-)283 -2674 y(gestions)h(pro)m(vided)g(b)m(y)g(colleagues)f(and)g(review)m -(ers)i(and)e(b)m(y)i(studen)m(ts)g(and)f(instructors)283 -2795 y(at)c(Aarh)m(us)h(Univ)m(ersit)m(y)-8 b(.)75 b(This)43 -b(includes)g(Anders)h(Gammelgaard,)f(Chris)g(Hankin,)i(T)-8 -b(or-)283 2915 y(b)s(en)40 b(Am)m(toft)e(Hansen,)j(Jens)f(P)m(alsb)s -(erg)f(J\034rgensen,)j(Ernst-R)s(\177)-51 b(udiger)37 -b(Olderog,)j(Da)m(vid)e(A.)283 3035 y(Sc)m(hmidt,)29 -b(Kirsten)f(L.)g(Solb)s(erg)f(and)h(Bernhard)g(Ste\013en.)43 -b(Sp)s(ecial)27 b(thanks)i(are)f(due)g(to)g(Stef-)283 -3156 y(fen)g(Grarup,)g(Jacob)g(Seligmann,)f(and)g(Bettina)g(Blaab)s -(erg)f(S\034rensen)j(for)e(their)g(en)m(th)m(usiasm)283 -3276 y(and)33 b(great)f(care)h(in)f(reading)g(preliminary)e(v)m -(ersions.)283 3633 y(Aarh)m(us,)k(Octob)s(er)f(1991)1721 -b(Hanne)33 b(Riis)e(Nielson)2985 3800 y(Flemming)e(Nielson)283 -4089 y Fp(Revised)46 b(Edition)283 4274 y Fu(In)36 b(this)f(revised)i -(edition)d(w)m(e)i(ha)m(v)m(e)h(corrected)g(a)e(n)m(um)m(b)s(er)h(of)f -(t)m(yp)s(ographical)f(errors)i(and)f(a)283 4394 y(few)h(mistak)m(es;)h -(ho)m(w)m(ev)m(er,)i(no)c(ma)5 b(jor)34 b(c)m(hanges)j(ha)m(v)m(e)f(b)s -(een)h(made.)51 b(Since)35 b(the)h(publication)283 4515 -y(of)49 b(the)g(\014rst)g(edition)e(w)m(e)j(ha)m(v)m(e)g(obtained)e -(helpful)g(commen)m(ts)g(from)g(Jens)i(Kno)s(op)e(and)283 -4635 y(Anders)35 b(Sandholm.)45 b(The)34 b(w)m(ebpage)h(for)e(the)h(b)s -(o)s(ok)f(no)m(w)h(also)e(con)m(tains)i(implemen)m(tations)283 -4756 y(of)f(App)s(endices)g(B,)g(C)g(and)g(D)f(in)g(Gofer)f(as)i(w)m -(ell)f(as)h(in)f(Miranda.)283 5112 y(Aarh)m(us,)i(July)e(1999)1883 -b(Hanne)33 b(Riis)e(Nielson)2985 5280 y(Flemming)e(Nielson)p -eop -%%Page: 1 11 -1 10 bop 0 1183 a Fv(Chapter)78 b(1)0 1602 y(In)-6 b(tro)6 -b(duction)0 2058 y Fu(The)34 b(purp)s(ose)f(of)f(this)g(b)s(o)s(ok)g -(is)145 2279 y Ft(\017)49 b Fu(to)32 b(describ)s(e)h(some)g(of)f(the)h -(main)e(ideas)h(and)h(metho)s(ds)f(used)i(in)e(seman)m(tics,)145 -2501 y Ft(\017)49 b Fu(to)32 b(illustrate)f(these)i(on)g(in)m -(teresting)f(applications,)f(and)145 2722 y Ft(\017)49 -b Fu(to)32 b(in)m(v)m(estigate)h(the)g(relationship)d(b)s(et)m(w)m(een) -35 b(the)e(v)-5 b(arious)32 b(metho)s(ds.)0 2944 y(F)-8 -b(ormal)47 b(seman)m(tics)k(is)e(concerned)j(with)d(rigorously)g(sp)s -(ecifying)g(the)i(meaning,)i(or)d(b)s(e-)0 3064 y(ha)m(viour,)32 -b(of)g(programs,)g(pieces)i(of)e(hardw)m(are)h(etc.)44 -b(The)34 b(need)f(for)f(rigour)g(arises)g(b)s(ecause)145 -3286 y Ft(\017)49 b Fu(it)31 b(can)i(rev)m(eal)g(am)m(biguities)d(and)i -(subtle)h(complexities)e(in)h(apparen)m(tly)g(crystal)h(clear)244 -3406 y(de\014ning)f(do)s(cumen)m(ts)i(\(for)e(example)g(programming)d -(language)j(man)m(uals\),)f(and)145 3627 y Ft(\017)49 -b Fu(it)36 b(can)i(form)f(the)h(basis)f(for)g(implemen)m(tation,)f -(analysis)h(and)g(v)m(eri\014cation)g(\(in)g(par-)244 -3748 y(ticular)31 b(pro)s(ofs)h(of)g(correctness\).)0 -3969 y(W)-8 b(e)30 b(will)d(use)k(informal)26 b(set)31 -b(theoretic)e(notation)g(\(review)m(ed)i(in)d(App)s(endix)j(A\))e(to)g -(represen)m(t)0 4090 y(seman)m(tic)40 b(concepts.)67 -b(This)40 b(will)e(su\016ce)j(in)e(this)h(b)s(o)s(ok)f(but)i(for)e -(other)h(purp)s(oses)h(greater)0 4210 y(notational)25 -b(precision)i(\(that)g(is,)h(formalit)m(y\))d(ma)m(y)i(b)s(e)g(needed,) -j(for)d(example)g(when)i(pro)s(cess-)0 4330 y(ing)j(seman)m(tic)h -(descriptions)f(b)m(y)i(mac)m(hine)f(as)g(in)f(seman)m(tics)h(directed) -g(compiler-compilers)0 4451 y(or)f(mac)m(hine)g(assisted)i(pro)s(of)d -(c)m(hec)m(k)m(ers.)0 4806 y Fj(1.1)161 b(Seman)l(tic)52 -b(description)h(metho)t(ds)0 5032 y Fu(It)45 b(is)f(customary)h(to)f -(distinguish)f(b)s(et)m(w)m(een)k(the)e(syn)m(tax)i(and)d(the)i(seman)m -(tics)e(of)h(a)f(pro-)0 5153 y(gramming)34 b(language.)55 -b(The)37 b Fs(syntax)49 b Fu(is)36 b(concerned)j(with)d(the)h -(grammatical)c(structure)38 b(of)0 5273 y(programs.)43 -b(So)32 b(a)g(syn)m(tactic)i(analysis)e(of)g(the)h(program)244 -5494 y Fr(z)p Fu(:=)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(y)p -Fu(;)g Fr(y)p Fu(:=)p Fr(z)1712 5849 y Fu(1)p eop -%%Page: 2 12 -2 11 bop 251 130 a Fw(2)2631 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 283 515 a Fu(will)32 b(realize)i(that)g(it)f(consists) -i(of)f(three)h(statemen)m(ts)g(separated)g(b)m(y)h(the)e(sym)m(b)s(ol)g -(`;'.)49 b(Eac)m(h)283 636 y(of)36 b(these)i(statemen)m(ts)f(has)g(the) -g(form)e(of)h(a)g(v)-5 b(ariable)35 b(follo)m(w)m(ed)g(b)m(y)i(the)g -(comp)s(osite)f(sym)m(b)s(ol)283 756 y(`:=')d(and)g(an)f(expression)i -(whic)m(h)f(is)f(just)h(a)g(v)-5 b(ariable.)430 878 y(The)42 -b Fs(semantics)48 b Fu(is)40 b(concerned)j(with)d(the)i(meaning)d(of)h -(grammatically)d(correct)k(pro-)283 998 y(grams.)57 b(So)37 -b(it)f(will)f(express)k(that)e(the)g(meaning)f(of)h(the)g(ab)s(o)m(v)m -(e)h(program)e(is)g(to)h(exc)m(hange)283 1118 y(the)i(v)-5 -b(alues)38 b(of)f(the)h(v)-5 b(ariables)37 b Fr(x)h Fu(and)g -Fr(y)g Fu(\(and)g(setting)g Fr(z)g Fu(to)f(the)i(\014nal)e(v)-5 -b(alue)37 b(of)g Fr(y)p Fu(\).)60 b(If)38 b(w)m(e)283 -1239 y(w)m(ere)33 b(to)e(explain)g(this)g(in)g(more)f(detail)g(w)m(e)j -(w)m(ould)e(lo)s(ok)f(at)h(the)h(grammatical)c(structure)k(of)283 -1359 y(the)h(program)f(and)g(use)i(explanations)e(of)g(the)h(meanings)f -(of)429 1568 y Ft(\017)48 b Fu(sequences)36 b(of)c(statemen)m(ts)i -(separated)f(b)m(y)h(`;',)f(and)429 1777 y Ft(\017)48 -b Fu(a)33 b(statemen)m(t)g(consisting)f(of)g(a)g(v)-5 -b(ariable)31 b(follo)m(w)m(ed)g(b)m(y)j(`:=')f(and)f(an)h(expression.) -283 1986 y(The)e(actual)d(explanations)h(can)h(b)s(e)f(formalized)e(in) -i(di\013eren)m(t)h(w)m(a)m(ys.)44 b(In)30 b(this)f(b)s(o)s(ok)g(w)m(e)h -(shall)283 2106 y(consider)j(three)h(approac)m(hes.)44 -b(V)-8 b(ery)34 b(roughly)-8 b(,)32 b(the)h(ideas)f(are)h(as)f(follo)m -(ws:)283 2315 y Fw(Op)s(erational)37 b(seman)m(tics:)48 -b Fu(The)32 b(meaning)d(of)i(a)f(construct)i(is)e(sp)s(eci\014ed)i(b)m -(y)f(the)h(compu-)527 2435 y(tation)40 b(it)f(induces)j(when)g(it)e(is) -g(executed)j(on)d(a)h(mac)m(hine.)67 b(In)41 b(particular,)g(it)f(is)g -(of)527 2555 y(in)m(terest)33 b Fs(how)43 b Fu(the)33 -b(e\013ect)g(of)g(a)f(computation)f(is)h(pro)s(duced.)283 -2764 y Fw(Denotational)37 b(seman)m(tics:)48 b Fu(Meanings)29 -b(are)g(mo)s(delled)e(b)m(y)i(mathematical)d(ob)5 b(jects)30 -b(that)527 2885 y(represen)m(t)42 b(the)d(e\013ect)i(of)e(executing)h -(the)f(constructs.)66 b(Th)m(us)41 b Fs(only)47 b Fu(the)40 -b(e\013ect)g(is)f(of)527 3005 y(in)m(terest,)34 b(not)e(ho)m(w)h(it)f -(is)g(obtained.)283 3214 y Fw(Axiomatic)j(seman)m(tics:)48 -b Fu(Sp)s(eci\014c)i(prop)s(erties)g(of)f(the)h(e\013ect)h(of)e -(executing)h(the)g(con-)527 3334 y(structs)31 b(are)f(expressed)j(as)c -Fs(assertions)p Fu(.)42 b(Th)m(us)31 b(there)g(ma)m(y)e(b)s(e)h(asp)s -(ects)h(of)e(the)i(execu-)527 3455 y(tions)h(that)h(are)f(ignored.)283 -3663 y(T)-8 b(o)32 b(get)g(a)g(feeling)f(for)g(their)h(di\013eren)m(t)g -(nature)g(let)f(us)i(see)g(ho)m(w)g(they)g(express)h(the)e(meaning)283 -3784 y(of)h(the)g(example)f(program)f(ab)s(o)m(v)m(e.)283 -4079 y Fp(Op)t(erational)47 b(seman)l(tics)f(\(Chapter)g(2\))283 -4266 y Fu(An)34 b(op)s(erational)c(explanation)i(of)g(the)h(meaning)f -(of)g(a)g(construct)i(will)d(tell)g(ho)m(w)j(to)e Fs(exe)-5 -b(cute)283 4387 y Fu(it:)429 4595 y Ft(\017)48 b Fu(T)-8 -b(o)30 b(execute)i(a)e(sequence)j(of)c(statemen)m(ts)i(separated)g(b)m -(y)g(`;')g(w)m(e)g(execute)h(the)e(individ-)527 4716 -y(ual)i(statemen)m(ts)h(one)g(after)g(the)g(other)f(and)h(from)e(left)h -(to)g(righ)m(t.)429 4925 y Ft(\017)48 b Fu(T)-8 b(o)31 -b(execute)h(a)f(statemen)m(t)g(consisting)e(of)h(a)h(v)-5 -b(ariable)28 b(follo)m(w)m(ed)i(b)m(y)h(`:=')g(and)g(another)527 -5045 y(v)-5 b(ariable)35 b(w)m(e)j(determine)e(the)i(v)-5 -b(alue)36 b(of)g(the)h(second)h(v)-5 b(ariable)35 b(and)i(assign)f(it)g -(to)g(the)527 5165 y(\014rst)d(v)-5 b(ariable.)283 5374 -y(W)d(e)34 b(shall)e(record)i(the)g(execution)g(of)f(the)h(example)f -(program)f(in)h(a)g(state)h(where)h Fr(x)f Fu(has)f(the)283 -5494 y(v)-5 b(alue)32 b Fw(5)p Fu(,)h Fr(y)g Fu(the)g(v)-5 -b(alue)32 b Fw(7)g Fu(and)h Fr(z)g Fu(the)g(v)-5 b(alue)32 -b Fw(0)g Fu(b)m(y)i(the)f(follo)m(wing)d(\\deriv)-5 b(ation)31 -b(sequence":)p eop -%%Page: 3 13 -3 12 bop 0 130 a Fw(1.1)112 b(Seman)m(tic)37 b(description)f(metho)s -(ds)1685 b(3)p 0 193 3473 4 v 493 500 a Ft(h)p Fr(z)p -Fu(:=)p Fr(x)p Fu(;)33 b Fr(x)p Fu(:=)p Fr(y)p Fu(;)g -Fr(y)p Fu(:=)p Fr(z)p Fu(,)100 b([)p Fr(x)p Ft(7!)p Fw(5)p -Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p Fu(,)f Fr(z)p Ft(7!)p -Fw(0)p Fu(])p Ft(i)294 668 y(\))364 b(h)p Fr(x)p Fu(:=)p -Fr(y)p Fu(;)33 b Fr(y)p Fu(:=)p Fr(z)p Fu(,)100 b([)p -Fr(x)p Ft(7!)p Fw(5)p Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p -Fu(,)f Fr(z)p Ft(7!)p Fw(5)p Fu(])p Ft(i)294 835 y(\))629 -b(h)p Fr(y)p Fu(:=)p Fr(z)p Fu(,)100 b([)p Fr(x)p Ft(7!)p -Fw(7)p Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p Fu(,)f Fr(z)p -Ft(7!)p Fw(5)p Fu(])p Ft(i)294 1003 y(\))1020 b Fu([)p -Fr(x)p Ft(7!)p Fw(7)p Fu(,)32 b Fr(y)p Ft(7!)p Fw(5)p -Fu(,)h Fr(z)p Ft(7!)p Fw(5)p Fu(])0 1193 y(In)45 b(the)f(\014rst)h -(step)g(w)m(e)h(execute)g(the)f(statemen)m(t)g Fr(z)p -Fu(:=)p Fr(x)f Fu(and)h(the)f(v)-5 b(alue)44 b(of)g Fr(z)g -Fu(is)g(c)m(hanged)0 1313 y(to)f Fw(5)g Fu(whereas)i(those)f(of)f -Fr(x)g Fu(and)h Fr(y)f Fu(are)h(unc)m(hanged.)77 b(The)44 -b(remaining)d(program)h(is)h(no)m(w)0 1434 y Fr(x)p Fu(:=)p -Fr(y)p Fu(;)33 b Fr(y)p Fu(:=)p Fr(z)q Fu(.)70 b(After)42 -b(the)g(second)g(step)h(the)f(v)-5 b(alue)41 b(of)g Fr(x)h -Fu(is)f Fw(7)g Fu(and)h(w)m(e)h(are)e(left)g(with)g(the)0 -1554 y(program)32 b Fr(y)p Fu(:=)p Fr(z)p Fu(.)45 b(The)34 -b(third)e(and)h(\014nal)g(step)g(of)g(the)g(computation)f(will)f(c)m -(hange)j(the)f(v)-5 b(alue)0 1675 y(of)32 b Fr(y)h Fu(to)f -Fw(5)p Fu(.)44 b(Therefore)34 b(the)f(initial)c(v)-5 -b(alues)32 b(of)g Fr(x)h Fu(and)g Fr(y)g Fu(ha)m(v)m(e)h(b)s(een)f(exc) -m(hanged,)i(using)d Fr(z)h Fu(as)0 1795 y(a)f(temp)s(orary)g(v)-5 -b(ariable.)146 1915 y(This)45 b(explanation)d(giv)m(es)j(an)f -Fs(abstr)-5 b(action)51 b Fu(of)43 b(ho)m(w)i(the)f(program)f(is)h -(executed)i(on)e(a)0 2036 y(mac)m(hine.)65 b(It)40 b(is)g(imp)s(ortan)m -(t)e(to)h(observ)m(e)j(that)e(it)f(is)g(indeed)i(an)f(abstraction:)57 -b(w)m(e)41 b(ignore)0 2156 y(details)21 b(lik)m(e)g(use)j(of)d -(registers)i(and)f(addresses)i(for)e(v)-5 b(ariables.)39 -b(So)22 b(the)g(op)s(erational)e(seman)m(tics)0 2277 -y(is)32 b(rather)h(indep)s(enden)m(t)h(of)e(mac)m(hine)g(arc)m -(hitectures)h(and)g(implemen)m(tation)c(strategies.)146 -2397 y(In)24 b(Chapter)h(2)e(w)m(e)i(shall)d(formalize)f(this)j(kind)f -(of)h(op)s(erational)d(seman)m(tics)j(whic)m(h)g(is)f(often)0 -2517 y(called)36 b Fs(structur)-5 b(al)40 b(op)-5 b(er)g(ational)38 -b(semantics)44 b Fu(\(or)37 b(small-step)e(seman)m(tics\).)57 -b(An)37 b(alternativ)m(e)0 2638 y(op)s(erational)20 b(seman)m(tics)i -(is)g(called)f Fs(natur)-5 b(al)25 b(semantics)k Fu(\(or)22 -b(big-step)g(seman)m(tics\))g(and)g(di\013ers)0 2758 -y(from)34 b(the)i(structural)f(op)s(erational)e(seman)m(tics)j(b)m(y)g -(hiding)e(ev)m(en)j(more)e(execution)h(details.)0 2878 -y(In)e(the)f(natural)g(seman)m(tics)g(the)h(execution)g(of)f(the)h -(example)e(program)g(in)h(the)h(same)f(state)0 2999 y(as)g(b)s(efore)f -(will)f(b)s(e)h(represen)m(ted)k(b)m(y)d(the)g(follo)m(wing)d(\\deriv) --5 b(ation)31 b(tree":)294 3187 y Ft(h)o Fr(z)p Fu(:=)p -Fr(x)p Fu(,)j Fs(s)646 3202 y Fn(0)685 3187 y Ft(i)e(!)g -Fs(s)936 3202 y Fn(1)1293 3187 y Ft(h)p Fr(x)p Fu(:=)p -Fr(y)p Fu(,)h Fs(s)1645 3202 y Fn(1)1685 3187 y Ft(i)f(!)g -Fs(s)1936 3202 y Fn(2)p 244 3274 1782 4 v 661 3475 a -Ft(h)p Fr(z)p Fu(:=)p Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(y)p -Fu(,)g Fs(s)1278 3490 y Fn(0)1317 3475 y Ft(i)g(!)f Fs(s)1569 -3490 y Fn(2)2293 3475 y Ft(h)p Fr(y)p Fu(:=)p Fr(z)p -Fu(,)h Fs(s)2645 3490 y Fn(2)2684 3475 y Ft(i)g(!)f Fs(s)2936 -3490 y Fn(3)p 244 3562 2782 4 v 1028 3763 a Ft(h)p Fr(z)p -Fu(:=)p Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(y)p Fu(;)g Fr(y)p -Fu(:=)p Fr(z)p Fu(,)g Fs(s)1910 3778 y Fn(0)1950 3763 -y Ft(i)f(!)g Fs(s)2201 3778 y Fn(3)0 3954 y Fu(where)i(w)m(e)f(ha)m(v)m -(e)h(used)g(the)f(abbreviations:)294 4123 y Fs(s)342 -4138 y Fn(0)481 4123 y Fu(=)99 b([)p Fr(x)p Ft(7!)p Fw(5)p -Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p Fu(,)g Fr(z)p Ft(7!)o -Fw(0)p Fu(])294 4290 y Fs(s)342 4305 y Fn(1)481 4290 -y Fu(=)99 b([)p Fr(x)p Ft(7!)p Fw(5)p Fu(,)33 b Fr(y)p -Ft(7!)p Fw(7)p Fu(,)g Fr(z)p Ft(7!)o Fw(5)p Fu(])294 -4458 y Fs(s)342 4473 y Fn(2)481 4458 y Fu(=)99 b([)p -Fr(x)p Ft(7!)p Fw(7)p Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p -Fu(,)g Fr(z)p Ft(7!)o Fw(5)p Fu(])294 4626 y Fs(s)342 -4641 y Fn(3)481 4626 y Fu(=)99 b([)p Fr(x)p Ft(7!)p Fw(7)p -Fu(,)33 b Fr(y)p Ft(7!)p Fw(5)p Fu(,)g Fr(z)p Ft(7!)o -Fw(5)p Fu(])0 4816 y(This)i(is)f(to)h(b)s(e)g(read)g(as)g(follo)m(ws:) -47 b(The)36 b(execution)f(of)g Fr(z)p Fu(:=)p Fr(x)g -Fu(in)f(the)h(state)h Fs(s)2857 4831 y Fn(0)2931 4816 -y Fu(will)c(result)j(in)0 4936 y(the)30 b(state)g Fs(s)449 -4951 y Fn(1)518 4936 y Fu(and)g(the)g(execution)g(of)f -Fr(x)p Fu(:=)p Fr(y)h Fu(in)f(state)h Fs(s)2041 4951 -y Fn(1)2110 4936 y Fu(will)d(result)j(in)e(state)i Fs(s)2954 -4951 y Fn(2)2994 4936 y Fu(.)42 b(Therefore)0 5057 y(the)33 -b(execution)h(of)e Fr(z)p Fu(:=)p Fr(x)p Fu(;)h Fr(x)p -Fu(:=)p Fr(y)h Fu(in)e(state)h Fs(s)1621 5072 y Fn(0)1693 -5057 y Fu(will)e(giv)m(e)h(state)i Fs(s)2366 5072 y Fn(2)2405 -5057 y Fu(.)44 b(F)-8 b(urthermore,)33 b(execution)0 -5177 y(of)k Fr(y)p Fu(:=)p Fr(z)h Fu(in)f(state)h Fs(s)770 -5192 y Fn(2)847 5177 y Fu(will)d(giv)m(e)j(state)g Fs(s)1534 -5192 y Fn(3)1611 5177 y Fu(so)g(in)e(total)h(the)h(execution)g(of)f -(the)h(program)e(in)0 5297 y(state)d Fs(s)287 5312 y -Fn(0)359 5297 y Fu(will)d(giv)m(e)j(the)g(resulting)e(state)i -Fs(s)1600 5312 y Fn(3)1640 5297 y Fu(.)43 b(This)33 b(is)f(expressed)k -(b)m(y)244 5494 y Ft(h)p Fr(z)p Fu(:=)p Fr(x)p Fu(;)d -Fr(x)p Fu(:=)p Fr(y)p Fu(;)g Fr(y)p Fu(:=)p Fr(z)p Fu(,)g -Fs(s)1126 5509 y Fn(0)1165 5494 y Ft(i)g(!)f Fs(s)1417 -5509 y Fn(3)p eop -%%Page: 4 14 -4 13 bop 251 130 a Fw(4)2631 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 283 515 a Fu(but)33 b(no)m(w)h(w)m(e)f(ha)m(v)m(e)h -(hidden)f(the)g(ab)s(o)m(v)m(e)g(explanation)f(of)g(ho)m(w)h(it)e(w)m -(as)j(actually)d(obtained.)430 637 y(In)39 b(Chapter)g(3)g(w)m(e)h -(shall)d(use)j(the)f(natural)f(seman)m(tics)h(as)g(the)g(basis)g(for)f -(pro)m(ving)g(the)283 758 y(correctness)d(of)d(an)h(implemen)m(tation)c -(of)j(a)h(simple)e(programming)e(language.)283 1057 y -Fp(Denotational)48 b(seman)l(tics)e(\(Chapter)g(4\))283 -1246 y Fu(In)38 b(the)f(denotational)e(seman)m(tics)j(w)m(e)g(concen)m -(trate)g(on)f(the)h Fs(e\013e)-5 b(ct)46 b Fu(of)36 b(executing)i(the)f -(pro-)283 1366 y(grams)32 b(and)h(w)m(e)h(shall)d(mo)s(del)g(this)h(b)m -(y)h(mathematical)d(functions:)429 1578 y Ft(\017)48 -b Fu(The)h(e\013ect)g(of)e(a)h(sequence)i(of)e(statemen)m(ts)h -(separated)f(b)m(y)h(`;')56 b(is)47 b(the)h(functional)527 -1699 y(comp)s(osition)31 b(of)h(the)h(e\013ects)h(of)e(the)h -(individual)d(statemen)m(ts.)429 1911 y Ft(\017)48 b -Fu(The)26 b(e\013ect)g(of)e(a)h(statemen)m(t)g(consisting)f(of)h(a)f(v) --5 b(ariable)23 b(follo)m(w)m(ed)h(b)m(y)i(`:=')f(and)g(another)527 -2031 y(v)-5 b(ariable)33 b(is)h(the)h(function)f(that)g(giv)m(en)h(a)f -(state)h(will)d(pro)s(duce)k(a)e(new)h(state:)48 b(it)34 -b(is)g(as)527 2151 y(the)j(original)c(one)j(except)i(that)e(the)g(v)-5 -b(alue)36 b(of)g(the)g(\014rst)h(v)-5 b(ariable)34 b(of)i(the)g -(statemen)m(t)527 2272 y(is)c(equal)h(to)f(that)g(of)h(the)g(second)g -(v)-5 b(ariable.)283 2484 y(F)d(or)49 b(the)h(example)e(program)g(w)m -(e)i(obtain)f(functions)g(written)g Ft(S)8 b Fu([)-17 -b([)p Fr(z)p Fu(:=)p Fr(x)p Fu(])g(])q(,)54 b Ft(S)8 -b Fu([)-17 b([)p Fr(x)p Fu(:=)p Fr(y)p Fu(])g(])q(,)54 -b(and)283 2604 y Ft(S)8 b Fu([)-17 b([)q Fr(y)p Fu(:=)p -Fr(z)p Fu(])g(])44 b(for)f(eac)m(h)i(of)e(the)g(assignmen)m(t)h -(statemen)m(ts)g(and)g(for)e(the)i(o)m(v)m(erall)f(program)f(w)m(e)283 -2725 y(get)33 b(the)g(function)527 2937 y Ft(S)8 b Fu([)-17 -b([)q Fr(z)p Fu(:=)p Fr(x)p Fu(;)33 b Fr(x)p Fu(:=)p -Fr(y)p Fu(;)g Fr(y)p Fu(:=)p Fr(z)p Fu(])-17 b(])34 b(=)e -Ft(S)8 b Fu([)-17 b([)p Fr(y)p Fu(:=)p Fr(z)p Fu(])g(])34 -b Ft(\016)e(S)8 b Fu([)-17 b([)q Fr(x)p Fu(:=)p Fr(y)p -Fu(])g(])33 b Ft(\016)g(S)7 b Fu([)-17 b([)q Fr(z)p Fu(:=)p -Fr(x)p Fu(])g(])283 3149 y(Note)45 b(that)g(the)g Fs(or)-5 -b(der)55 b Fu(of)44 b(the)h(statemen)m(ts)g(ha)m(v)m(e)h(c)m(hanged)g -(b)s(ecause)g(w)m(e)g(use)f(the)g(usual)283 3269 y(notation)36 -b(for)h(function)g(comp)s(osition)e(where)k(\()p Fs(f)58 -b Ft(\016)37 b Fs(g)9 b Fu(\))37 b Fs(s)46 b Fu(means)37 -b Fs(f)58 b Fu(\()p Fs(g)46 b(s)8 b Fu(\).)58 b(If)37 -b(w)m(e)i(w)m(an)m(t)f(to)283 3390 y(determine)g(the)g(e\013ect)h(of)e -(executing)i(the)f(program)f(on)g(a)h(particular)e(state)i(then)h(w)m -(e)g(can)283 3510 y Fs(apply)i Fu(the)33 b(function)f(to)h(that)f -(state)h(and)g Fs(c)-5 b(alculate)39 b Fu(the)33 b(resulting)f(state)h -(as)g(follo)m(ws:)527 3722 y Ft(S)8 b Fu([)-17 b([)q -Fr(z)p Fu(:=)p Fr(x)p Fu(;)33 b Fr(x)p Fu(:=)p Fr(y)p -Fu(;)g Fr(y)p Fu(:=)p Fr(z)p Fu(])-17 b(])q(\([)p Fr(x)p -Ft(7!)p Fw(5)p Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p Fu(,)f -Fr(z)p Ft(7!)p Fw(0)p Fu(]\))796 3890 y(=)g(\()p Ft(S)8 -b Fu([)-17 b([)q Fr(y)p Fu(:=)p Fr(z)p Fu(])g(])33 b -Ft(\016)g(S)8 b Fu([)-17 b([)p Fr(x)p Fu(:=)p Fr(y)p -Fu(])g(])34 b Ft(\016)e(S)8 b Fu([)-17 b([)p Fr(z)p Fu(:=)p -Fr(x)p Fu(])g(])r(\)\([)p Fr(x)p Ft(7!)o Fw(5)p Fu(,)33 -b Fr(y)p Ft(7!)p Fw(7)p Fu(,)g Fr(z)p Ft(7!)o Fw(0)p -Fu(]\))796 4057 y(=)f Ft(S)8 b Fu([)-17 b([)q Fr(y)p -Fu(:=)p Fr(z)p Fu(])g(])q(\()p Ft(S)8 b Fu([)-17 b([)p -Fr(x)p Fu(:=)p Fr(y)p Fu(])g(])q(\()p Ft(S)8 b Fu([)-17 -b([)q Fr(z)p Fu(:=)p Fr(x)p Fu(])g(])q(\([)p Fr(x)p Ft(7!)p -Fw(5)p Fu(,)32 b Fr(y)p Ft(7!)p Fw(7)p Fu(,)h Fr(z)p -Ft(7!)p Fw(0)p Fu(]\)\)\))796 4225 y(=)f Ft(S)8 b Fu([)-17 -b([)q Fr(y)p Fu(:=)p Fr(z)p Fu(])g(])q(\()p Ft(S)8 b -Fu([)-17 b([)p Fr(x)p Fu(:=)p Fr(y)p Fu(])g(])q(\([)p -Fr(x)p Ft(7!)p Fw(5)p Fu(,)33 b Fr(y)p Ft(7!)p Fw(7)p -Fu(,)f Fr(z)p Ft(7!)p Fw(5)p Fu(]\)\))796 4392 y(=)g -Ft(S)8 b Fu([)-17 b([)q Fr(y)p Fu(:=)p Fr(z)p Fu(])g(])q(\([)p -Fr(x)p Ft(7!)p Fw(7)p Fu(,)33 b Fr(y)p Ft(7!)o Fw(7)p -Fu(,)g Fr(z)p Ft(7!)p Fw(5)p Fu(]\))796 4560 y(=)f([)p -Fr(x)p Ft(7!)p Fw(7)p Fu(,)h Fr(y)p Ft(7!)p Fw(5)p Fu(,)g -Fr(z)p Ft(7!)p Fw(5)p Fu(])283 4772 y(Note)j(that)f(w)m(e)i(are)e(only) -g(manipulating)d(mathematical)h(ob)5 b(jects;)38 b(w)m(e)e(are)g(not)f -(concerned)283 4893 y(with)c(executing)h(programs.)42 -b(The)31 b(di\013erence)h(ma)m(y)f(seem)g(small)d(for)j(a)f(program)g -(with)g(only)283 5013 y(assignmen)m(t)35 b(and)g(sequencing)i(statemen) -m(ts)f(but)f(for)f(programs)g(with)h(more)f(sophisticated)283 -5133 y(constructs)g(it)e(is)g(substan)m(tial.)43 b(The)33 -b(b)s(ene\014ts)h(of)e(the)g(denotational)f(approac)m(h)i(are)f(mainly) -283 5254 y(due)f(to)e(the)h(fact)f(that)g(it)g(abstracts)h(a)m(w)m(a)m -(y)h(from)d(ho)m(w)i(programs)f(are)g(executed.)45 b(Therefore)283 -5374 y(it)f(b)s(ecomes)g(easier)h(to)f(reason)g(ab)s(out)g(programs)g -(as)g(it)f(simply)g(amoun)m(ts)h(to)g(reasoning)283 5494 -y(ab)s(out)30 b(mathematical)e(ob)5 b(jects.)44 b(Ho)m(w)m(ev)m(er,)33 -b(a)d(prerequisite)h(for)f(doing)f(so)i(is)f(to)g(establish)g(a)p -eop -%%Page: 5 15 -5 14 bop 0 130 a Fw(1.1)112 b(Seman)m(tic)37 b(description)f(metho)s -(ds)1685 b(5)p 0 193 3473 4 v 0 515 a Fu(\014rm)30 b(mathematical)e -(basis)j(for)g(denotational)e(seman)m(tics)i(and)g(this)g(task)g(turns) -h(out)f(not)g(to)0 636 y(b)s(e)i(en)m(tirely)f(trivial.)146 -771 y(The)48 b(denotational)e(approac)m(h)h(can)h(easily)e(b)s(e)i -(adapted)f(to)g(express)j(other)d(sorts)h(of)0 891 y(prop)s(erties)32 -b(of)h(programs.)42 b(Some)32 b(examples)h(are:)145 1169 -y Ft(\017)49 b Fu(Determine)29 b(whether)i(all)d(v)-5 -b(ariables)29 b(are)h(initialized)c(b)s(efore)k(they)h(are)f(used)h(|)f -(if)f(not)244 1290 y(a)j(w)m(arning)g(ma)m(y)h(b)s(e)g(appropriate.)145 -1568 y Ft(\017)49 b Fu(Determine)33 b(whether)i(a)e(certain)g -(expression)i(in)e(the)h(program)f(alw)m(a)m(ys)h(ev)-5 -b(aluates)34 b(to)244 1688 y(a)e(constan)m(t)i(|)e(if)f(so)i(one)g(can) -g(replace)f(the)h(expression)h(b)m(y)f(the)g(constan)m(t.)145 -1966 y Ft(\017)49 b Fu(Determine)23 b(whether)j(all)c(parts)i(of)g(the) -g(program)f(are)h(reac)m(hable)h(|)f(if)f(not)h(they)h(could)244 -2087 y(as)33 b(w)m(ell)e(b)s(e)i(remo)m(v)m(ed)h(or)e(a)g(w)m(arning)g -(migh)m(t)g(b)s(e)g(appropriate.)0 2365 y(In)h(Chapter)g(5)g(w)m(e)g -(dev)m(elop)g(an)g(example)f(of)g(this.)146 2500 y(While)c(w)m(e)h -(prefer)g(the)g(denotational)e(approac)m(h)i(when)h(reasoning)e(ab)s -(out)g(programs)f(w)m(e)0 2620 y(ma)m(y)k(prefer)g(an)g(op)s(erational) -e(approac)m(h)j(when)g(implemen)m(ting)c(the)k(language.)41 -b(It)32 b(is)e(there-)0 2741 y(fore)39 b(of)g(in)m(terest)h(whether)g -(a)f(denotational)f(de\014nition)g(is)h Fs(e)-5 b(quivalent)48 -b Fu(to)39 b(an)g(op)s(erational)0 2861 y(de\014nition)32 -b(and)g(this)g(is)h(studied)g(in)e(Section)i(4.3.)0 3242 -y Fp(Axiomatic)46 b(seman)l(tics)g(\(Chapter)g(6\))0 -3457 y Fu(Often)29 b(one)h(is)e(in)m(terested)j(in)d -Fs(p)-5 b(artial)31 b(c)-5 b(orr)g(e)g(ctness)31 b(pr)-5 -b(op)g(erties)37 b Fu(of)29 b(programs:)41 b(A)29 b(program)f(is)0 -3578 y(partially)j(correct,)k(with)e(resp)s(ect)i(to)f(a)f -(precondition)g(and)h(a)f(p)s(ostcondition,)g(if)g(whenev)m(er)0 -3698 y(the)c(initial)c(state)30 b(ful\014ls)d(the)j(precondition)e(and) -h(the)g(program)e(terminates,)i(then)h(the)f(\014nal)0 -3818 y(state)34 b(is)g(guaran)m(teed)g(to)g(ful\014l)e(the)i(p)s -(ostcondition.)46 b(F)-8 b(or)33 b(our)g(example)h(program)e(w)m(e)j -(ha)m(v)m(e)0 3939 y(the)e(partial)d(correctness)35 b(prop)s(ert)m(y:) -244 4217 y Ft(f)d Fr(x)p Fu(=)p Fr(n)h Ft(^)g Fr(y)p -Fu(=)p Fr(m)g Ft(g)f Fr(z)p Fu(:=)p Fr(x)p Fu(;)h Fr(x)p -Fu(:=)p Fr(y)p Fu(;)h Fr(y)p Fu(:=)p Fr(z)f Ft(f)f Fr(y)p -Fu(=)p Fr(n)h Ft(^)g Fr(x)p Fu(=)p Fr(m)g Ft(g)0 4495 -y Fu(where)k Fr(x)p Fu(=)p Fr(n)f Ft(^)g Fr(y)p Fu(=)p -Fr(m)f Fu(is)g(the)h(precondition)f(and)h Fr(y)p Fu(=)p -Fr(n)g Ft(^)f Fr(x)p Fu(=)p Fr(m)h Fu(is)f(the)h(p)s(ostcondition.)51 -b(The)0 4615 y(names)33 b Fr(n)g Fu(and)g Fr(m)g Fu(are)g(used)h(to)f -(\\remem)m(b)s(er")f(the)h(initial)d(v)-5 b(alues)32 -b(of)h Fr(x)g Fu(and)g Fr(y)p Fu(,)g(resp)s(ectiv)m(ely)-8 -b(.)0 4736 y(The)26 b(state)f([)p Fr(x)p Ft(7!)p Fw(5)p -Fu(,)h Fr(y)p Ft(7!)p Fw(7)p Fu(,)g Fr(z)p Ft(7!)p Fw(0)p -Fu(])f(satis\014es)g(the)h(precondition)d(b)m(y)j(taking)e -Fr(n)p Fu(=)p Fw(5)h Fu(and)f Fr(m)p Fu(=)p Fw(7)h Fu(and)0 -4856 y(when)37 b(w)m(e)h(ha)m(v)m(e)f Fs(pr)-5 b(ove)g(d)46 -b Fu(the)37 b(partial)d(correctness)k(prop)s(ert)m(y)f(w)m(e)g(can)g -(deduce)h(that)e Fs(if)57 b Fu(the)0 4976 y(program)29 -b(terminates)h Fs(then)38 b Fu(it)30 b(will)f(do)h(so)h(in)f(a)h(state) -g(where)h Fr(y)f Fu(is)f Fw(5)h Fu(and)g Fr(x)g Fu(is)f -Fw(7)p Fu(.)43 b(Ho)m(w)m(ev)m(er,)0 5097 y(the)35 b(partial)d -(correctness)37 b(prop)s(ert)m(y)e(do)s(es)g(not)f(ensure)i(that)e(the) -h(program)e Fs(wil)5 b(l)45 b Fu(terminate)0 5217 y(although)31 -b(this)i(is)f(clearly)f(the)i(case)h(for)e(the)h(example)f(program.)146 -5352 y(The)j(axiomatic)c(seman)m(tics)j(pro)m(vides)g(a)g -Fs(lo)-5 b(gic)g(al)35 b(system)40 b Fu(for)34 b(pro)m(ving)f(partial)e -(correct-)0 5473 y(ness)40 b(prop)s(erties)e(of)g(individual)d -(programs.)60 b(A)38 b(pro)s(of)g(of)f(the)i(ab)s(o)m(v)m(e)g(partial)d -(correctness)0 5593 y(prop)s(ert)m(y)d(ma)m(y)g(b)s(e)f(expressed)k(b)m -(y)d(the)g(follo)m(wing)d(\\pro)s(of)i(tree":)p eop -%%Page: 6 16 -6 15 bop 251 130 a Fw(6)2631 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 577 668 a Ft(f)32 b Fs(p)715 683 y Fn(0)787 -668 y Ft(g)h Fr(z)p Fu(:=)p Fr(x)g Ft(f)f Fs(p)1246 683 -y Fn(1)1318 668 y Ft(g)317 b(f)32 b Fs(p)1823 683 y Fn(1)1895 -668 y Ft(g)h Fr(x)p Fu(:=)p Fr(y)g Ft(f)f Fs(p)2354 683 -y Fn(2)2426 668 y Ft(g)p 527 754 1999 4 v 999 956 a(f)g -Fs(p)1137 971 y Fn(0)1209 956 y Ft(g)g Fr(z)p Fu(:=)p -Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(y)g Ft(f)g Fs(p)1933 -971 y Fn(2)2004 956 y Ft(g)739 b(f)32 b Fs(p)2931 971 -y Fn(2)3003 956 y Ft(g)h Fr(y)p Fu(:=)p Fr(z)g Ft(f)f -Fs(p)3462 971 y Fn(3)3534 956 y Ft(g)p 527 1042 3107 -4 v 1420 1244 a(f)g Fs(p)1558 1259 y Fn(0)1630 1244 y -Ft(g)g Fr(z)p Fu(:=)p Fr(x)p Fu(;)i Fr(x)p Fu(:=)p Fr(y)p -Fu(;)f Fr(y)p Fu(:=)p Fr(z)g Ft(f)f Fs(p)2619 1259 y -Fn(3)2691 1244 y Ft(g)283 1436 y Fu(where)i(w)m(e)g(ha)m(v)m(e)g(used)g -(the)f(abbreviations)577 1608 y Fs(p)633 1623 y Fn(0)772 -1608 y Fu(=)100 b Fr(x)p Fu(=)p Fr(n)33 b Ft(^)f Fr(y)p -Fu(=)p Fr(m)577 1775 y Fs(p)633 1790 y Fn(1)772 1775 -y Fu(=)100 b Fr(z)p Fu(=)p Fr(n)33 b Ft(^)f Fr(y)p Fu(=)p -Fr(m)577 1943 y Fs(p)633 1958 y Fn(2)772 1943 y Fu(=)100 -b Fr(z)p Fu(=)p Fr(n)33 b Ft(^)f Fr(x)p Fu(=)p Fr(m)577 -2111 y Fs(p)633 2126 y Fn(3)772 2111 y Fu(=)100 b Fr(y)p -Fu(=)p Fr(n)33 b Ft(^)f Fr(x)p Fu(=)p Fr(m)283 2303 y -Fu(W)-8 b(e)39 b(ma)m(y)f(view)h(the)f(logical)e(system)j(as)f(a)g(sp)s -(eci\014cation)g(of)g(only)f(certain)h(asp)s(ects)i(of)d(the)283 -2424 y(seman)m(tics.)42 b(It)27 b(usually)f(do)s(es)i(not)e(capture)i -(all)d(asp)s(ects)j(for)e(the)h(simple)f(reason)h(that)g(all)d(the)283 -2544 y(partial)32 b(correctness)k(prop)s(erties)e(listed)g(b)s(elo)m(w) -f(can)i(b)s(e)f(pro)m(v)m(ed)i(using)d(the)i(logical)c(system)283 -2664 y(but)i(certainly)f(w)m(e)i(w)m(ould)e(not)h(regard)f(the)h -(programs)f(as)h(b)s(eha)m(ving)f(in)g(the)h(same)f(w)m(a)m(y:)552 -2832 y Ft(f)h Fr(x)p Fu(=)p Fr(n)f Ft(^)h Fr(y)p Fu(=)p -Fr(m)g Ft(g)g Fr(z)p Fu(:=)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p -Fr(y)p Fu(;)g Fr(y)p Fu(:=)p Fr(z)g Ft(f)f Fr(y)p Fu(=)p -Fr(n)h Ft(^)g Fr(x)p Fu(=)p Fr(m)g Ft(g)550 3000 y(f)d -Fr(x)p Fu(=)p Fr(n)h Ft(^)g Fr(y)p Fu(=)p Fr(m)f Ft(g)h -Fr(if)g(x)p Fu(=)p Fr(y)f(then)i(skip)f(else)h Fu(\()p -Fr(z)p Fu(:=)p Fr(x)p Fu(;)f Fr(x)p Fu(:=)p Fr(y)p Fu(;)h -Fr(y)p Fu(:=)p Fr(z)p Fu(\))f Ft(f)f Fr(y)p Fu(=)p Fr(n)h -Ft(^)f Fr(x)p Fu(=)p Fr(m)h Ft(g)552 3167 y(f)i Fr(x)p -Fu(=)p Fr(n)f Ft(^)h Fr(y)p Fu(=)p Fr(m)g Ft(g)g Fr(while)g(true)h(do)f -(skip)h Ft(f)e Fr(y)p Fu(=)p Fr(n)h Ft(^)g Fr(x)p Fu(=)p -Fr(m)g Ft(g)283 3335 y Fu(The)26 b(b)s(ene\014ts)f(of)f(the)h -(axiomatic)d(approac)m(h)j(are)f(that)g(the)h(logical)c(systems)26 -b(pro)m(vide)f(an)f(easy)283 3455 y(w)m(a)m(y)29 b(of)e(pro)m(ving)g -(prop)s(erties)g(of)g(programs)f(|)h(and)g(to)g(a)g(large)f(exten)m(t)j -(it)d(has)i(b)s(een)g(p)s(ossible)283 3576 y(to)42 b(automate)e(it.)69 -b(Of)41 b(course)i(this)e(is)g(only)g(w)m(orth)m(while)g(if)g(the)h -(axiomatic)d(seman)m(tics)i(is)283 3696 y(faithful)31 -b(to)i(the)g(\\more)f(general")g(\(denotational)f(or)h(op)s -(erational\))f(seman)m(tics)i(w)m(e)g(ha)m(v)m(e)i(in)283 -3816 y(mind)d(and)g(w)m(e)i(shall)d(discuss)j(this)e(in)g(Section)g -(6.3.)283 4104 y Fp(The)45 b(complemen)l(tary)h(view)283 -4289 y Fu(It)30 b(is)g(imp)s(ortan)m(t)e(to)h(note)h(that)g(these)h -(kinds)f(of)g(seman)m(tics)g(are)g Fs(not)39 b Fu(riv)-5 -b(al)28 b(approac)m(hes,)k(but)283 4410 y(are)25 b(di\013eren)m(t)g -(tec)m(hniques)h(appropriate)e(for)g(di\013eren)m(t)h(purp)s(oses)h -(and)e(|)h(to)f(some)g(exten)m(t)i(|)283 4530 y(for)32 -b(di\013eren)m(t)g(programming)c(languages.)43 b(T)-8 -b(o)32 b(stress)h(this,)f(the)g(dev)m(elopmen)m(t)g(will)d(address)283 -4650 y(the)k(follo)m(wing)d(issues:)429 4850 y Ft(\017)48 -b Fu(It)53 b(will)e(dev)m(elop)j(eac)m(h)g(of)e(the)i(approac)m(hes)g -(for)e(a)h(simple)f(language)g(of)g Fr(while)p Fu(-)527 -4970 y(programs.)429 5172 y Ft(\017)c Fu(It)40 b(will)d(illustrate)h -(the)i(p)s(o)m(w)m(er)g(and)g(w)m(eakness)i(of)e(eac)m(h)g(of)f(the)h -(approac)m(hes)h(b)m(y)g(ex-)527 5292 y(tending)33 b(the)g -Fr(while)p Fu(-language)f(with)g(other)h(programming)c(constructs.)429 -5494 y Ft(\017)48 b Fu(It)25 b(will)e(pro)m(v)m(e)j(the)f(relationship) -e(b)s(et)m(w)m(een)k(the)e(approac)m(hes)h(for)f(the)g -Fr(while)p Fu(-language.)p eop -%%Page: 7 17 -7 16 bop 0 130 a Fw(1.2)112 b(The)38 b(example)f(language)h(While)1734 -b(7)p 0 193 3473 4 v 145 515 a Ft(\017)49 b Fu(It)32 -b(will)d(giv)m(e)i(examples)h(of)f(applications)e(of)i(the)h(seman)m -(tic)g(descriptions)f(in)g(order)h(to)244 636 y(illustrate)e(their)i -(merits.)0 967 y Fj(1.2)161 b(The)53 b(example)h(language)g(While)0 -1186 y Fu(This)37 b(b)s(o)s(ok)f(illustrates)e(the)j(v)-5 -b(arious)36 b(forms)f(of)h(seman)m(tics)h(on)f(a)g(v)m(ery)i(simple)d -(imp)s(erativ)m(e)0 1307 y(programming)30 b(language)h(called)g -Fw(While)p Fu(.)42 b(As)33 b(a)g(\014rst)g(step)g(w)m(e)h(m)m(ust)f(sp) -s(ecify)g(its)f(syn)m(tax.)146 1427 y(The)26 b(syn)m(tactic)g(notation) -d(w)m(e)j(use)f(is)g(based)g(on)g(BNF.)g(First)e(w)m(e)j(list)d(the)j -(v)-5 b(arious)24 b Fs(syntac-)0 1548 y(tic)29 b(c)-5 -b(ate)g(gories)33 b Fu(and)26 b(giv)m(e)f(a)h(meta-v)-5 -b(ariable)23 b(that)i(will)f(b)s(e)i(used)h(to)e(range)h(o)m(v)m(er)h -Fs(c)-5 b(onstructs)34 b Fu(of)0 1668 y(eac)m(h)f(category)-8 -b(.)44 b(F)-8 b(or)32 b(our)g(language)g(the)h(meta-v)-5 -b(ariables)30 b(and)j(categories)f(are)h(as)f(follo)m(ws:)244 -1865 y Fs(n)40 b Fu(will)30 b(range)i(o)m(v)m(er)i(n)m(umerals,)e -Fw(Num)p Fu(,)244 2032 y Fs(x)44 b Fu(will)30 b(range)j(o)m(v)m(er)h(v) --5 b(ariables,)31 b Fw(V)-9 b(ar)p Fu(,)244 2200 y Fs(a)40 -b Fu(will)30 b(range)i(o)m(v)m(er)i(arithmetic)d(expressions,)j -Fw(Aexp)p Fu(,)244 2367 y Fs(b)k Fu(will)31 b(range)h(o)m(v)m(er)i(b)s -(o)s(olean)d(expressions,)j Fw(Bexp)p Fu(,)f(and)244 -2535 y Fs(S)44 b Fu(will)30 b(range)j(o)m(v)m(er)h(statemen)m(ts,)f -Fw(Stm)p Fu(.)0 2732 y(The)k(meta-v)-5 b(ariables)34 -b(can)i(b)s(e)h(primed)e(or)g(subscripted.)56 b(So,)37 -b(for)f(example,)g Fs(n)7 b Fu(,)37 b Fs(n)3117 2696 -y Fi(0)3141 2732 y Fu(,)g Fs(n)3267 2747 y Fn(1)3307 -2732 y Fu(,)g Fs(n)3433 2747 y Fn(2)0 2852 y Fu(all)30 -b(stand)k(for)e(n)m(umerals.)146 2972 y(W)-8 b(e)31 b(assume)g(that)f -(the)h(structure)g(of)f(n)m(umerals)g(and)g(v)-5 b(ariables)29 -b(is)h(giv)m(en)g(elsewhere;)j(for)0 3093 y(example)38 -b(n)m(umerals)f(migh)m(t)g(b)s(e)h(strings)g(of)g(digits,)g(and)g(v)-5 -b(ariables)37 b(strings)h(of)f(letters)h(and)0 3213 y(digits)31 -b(starting)h(with)g(a)g(letter.)43 b(The)34 b(structure)g(of)e(the)h -(other)f(constructs)j(is:)294 3401 y Fs(a)116 b Fu(::=)100 -b Fs(n)40 b Ft(j)32 b Fs(x)44 b Ft(j)32 b Fs(a)1051 3416 -y Fn(1)1124 3401 y Fu(+)g Fs(a)1289 3416 y Fn(2)1361 -3401 y Ft(j)g Fs(a)1478 3416 y Fn(1)1551 3401 y Fo(?)g -Fs(a)1689 3416 y Fn(2)1761 3401 y Ft(j)g Fs(a)1878 3416 -y Fn(1)1950 3401 y Ft(\000)h Fs(a)2117 3416 y Fn(2)294 -3569 y Fs(b)121 b Fu(::=)100 b Fr(true)33 b Ft(j)g Fr(false)g -Ft(j)g Fs(a)1394 3584 y Fn(1)1466 3569 y Fu(=)f Fs(a)1631 -3584 y Fn(2)1703 3569 y Ft(j)h Fs(a)1821 3584 y Fn(1)1893 -3569 y Ft(\024)g Fs(a)2060 3584 y Fn(2)2132 3569 y Ft(j)f(:)q -Fs(b)38 b Ft(j)32 b Fs(b)2453 3584 y Fn(1)2525 3569 y -Ft(^)h Fs(b)2675 3584 y Fn(2)294 3737 y Fs(S)111 b Fu(::=)100 -b Fs(x)44 b Fu(:=)33 b Fs(a)39 b Ft(j)33 b Fr(skip)g -Ft(j)f Fs(S)1429 3752 y Fn(1)1501 3737 y Fu(;)h Fs(S)1628 -3752 y Fn(2)1700 3737 y Ft(j)f Fr(if)h Fs(b)38 b Fr(then)c -Fs(S)2283 3752 y Fn(1)2355 3737 y Fr(else)f Fs(S)2659 -3752 y Fn(2)511 3904 y Ft(j)151 b Fr(while)34 b Fs(b)k -Fr(do)33 b Fs(S)0 4094 y Fu(Th)m(us,)39 b(a)e(b)s(o)s(olean)e -(expression)j Fs(b)43 b Fu(can)37 b(only)f(ha)m(v)m(e)i(one)f(of)f(six) -h(forms.)55 b(It)37 b(is)f(called)g(a)g Fs(b)-5 b(asis)0 -4214 y(element)37 b Fu(if)27 b(it)h(is)g Fr(true)h Fu(or)f -Fr(false)i Fu(or)e(has)h(the)g(form)e Fs(a)2002 4229 -y Fn(1)2074 4214 y Fu(=)33 b Fs(a)2240 4229 y Fn(2)2308 -4214 y Fu(or)28 b Fs(a)2480 4229 y Fn(1)2552 4214 y Ft(\024)33 -b Fs(a)2719 4229 y Fn(2)2787 4214 y Fu(where)d Fs(a)3122 -4229 y Fn(1)3190 4214 y Fu(and)f Fs(a)3433 4229 y Fn(2)0 -4335 y Fu(are)35 b(arithmetic)f(expressions.)54 b(It)35 -b(is)g(called)g(a)g Fs(c)-5 b(omp)g(osite)36 b(element)44 -b Fu(if)35 b(it)f(has)i(the)g(form)e Ft(:)q Fs(b)0 4455 -y Fu(where)g Fs(b)k Fu(is)31 b(a)h(b)s(o)s(olean)f(expression,)j(or)e -(the)h(form)e Fs(b)1971 4470 y Fn(1)2042 4455 y Ft(^)i -Fs(b)2192 4470 y Fn(2)2263 4455 y Fu(where)h Fs(b)2596 -4470 y Fn(1)2668 4455 y Fu(and)e Fs(b)2908 4470 y Fn(2)2980 -4455 y Fu(are)g(b)s(o)s(olean)0 4576 y(expressions.)45 -b(Similar)29 b(remarks)k(apply)f(to)h(arithmetic)d(expressions)k(and)f -(statemen)m(ts.)146 4696 y(The)g(sp)s(eci\014cation)e(ab)s(o)m(v)m(e)i -(de\014nes)g(the)f Fs(abstr)-5 b(act)34 b(syntax)44 b -Fu(of)31 b Fw(While)f Fu(in)h(that)g(it)g(simply)0 4816 -y(sa)m(ys)39 b(ho)m(w)g(to)e(build)f(arithmetic)g(expressions,)41 -b(b)s(o)s(olean)36 b(expressions)k(and)d(statemen)m(ts)i(in)0 -4937 y(the)d(language.)51 b(One)36 b(w)m(a)m(y)h(to)e(think)g(of)g(the) -h(abstract)g(syn)m(tax)h(is)e(as)h(sp)s(ecifying)f(the)h(parse)0 -5057 y(trees)42 b(of)f(the)h(language)e(and)i(it)e(will)f(then)j(b)s(e) -g(the)f(purp)s(ose)h(of)f(the)h Fs(c)-5 b(oncr)g(ete)42 -b(syntax)54 b Fu(to)0 5177 y(pro)m(vide)33 b(su\016cien)m(t)h -(information)29 b(that)j(enable)h(unique)g(parse)g(trees)h(to)e(b)s(e)h -(constructed.)146 5298 y(So)g(giv)m(en)g(the)g(string)e(of)i(c)m -(haracters:)244 5494 y Fr(z)p Fu(:=)p Fr(x)p Fu(;)g Fr(x)p -Fu(:=)p Fr(y)p Fu(;)g Fr(y)p Fu(:=)p Fr(z)p eop -%%Page: 8 18 -8 17 bop 251 130 a Fw(8)2631 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 283 515 a Fu(the)47 b(concrete)h(syn)m(tax)g(of)d(the) -i(language)e(m)m(ust)i(b)s(e)f(able)g(to)g(resolv)m(e)h(whic)m(h)g(of)e -(the)i(t)m(w)m(o)283 636 y(abstract)33 b(syn)m(tax)i(trees)e(b)s(elo)m -(w)f(it)g(is)g(in)m(tended)h(to)g(represen)m(t:)2799 -794 y Fs(S)2467 1209 y(S)285 b Fu(;)297 b Fs(S)2733 918 -y Fq(\000)2650 1001 y(\000)2567 1084 y(\000)2525 1126 -y(\000)p 2814 1126 4 291 v 2816 918 a(@)2899 1001 y(@)2982 -1084 y(@)3023 1126 y(@)2218 1624 y Fs(S)202 b Fu(;)214 -b Fs(S)2421 1333 y Fq(\023)2359 1416 y(\023)2297 1499 -y(\023)2276 1527 y(\023)p 2482 1541 V 2484 1333 a(S)2546 -1416 y(S)2608 1499 y(S)2629 1527 y(S)2027 2039 y Fr(z)115 -b Fu(:=)63 b Fs(a)2359 2288 y Fr(x)2193 1748 y Fq(\001)2151 -1831 y(\001)2110 1914 y(\001)2093 1948 y(\001)p 2233 -1956 V 2234 1748 a(A)2276 1831 y(A)2318 1914 y(A)2334 -1948 y(A)p 2382 2205 4 125 v 2525 2039 a Fr(x)115 b Fu(:=)63 -b Fs(a)2857 2288 y Fr(y)2691 1748 y Fq(\001)2650 1831 -y(\001)2608 1914 y(\001)2591 1948 y(\001)p 2731 1956 -4 291 v 2733 1748 a(A)2774 1831 y(A)2816 1914 y(A)2832 -1948 y(A)p 2880 2205 4 125 v 2940 1624 a Fr(y)115 b Fu(:=)63 -b Fs(a)3272 1873 y Fr(z)3106 1333 y Fq(\001)3065 1416 -y(\001)3023 1499 y(\001)3007 1533 y(\001)p 3146 1541 -4 291 v 3148 1333 a(A)3189 1416 y(A)3231 1499 y(A)3247 -1533 y(A)p 3296 1790 4 125 v 973 794 a Fs(S)906 918 y -Fq(\000)823 1001 y(\000)740 1084 y(\000)699 1126 y(\000)640 -1209 y Fs(S)616 1333 y Fq(\001)574 1416 y(\001)533 1499 -y(\001)516 1533 y(\001)474 1624 y Fr(z)p 655 1541 4 291 -v 91 w Fu(:=)657 1333 y Fq(A)699 1416 y(A)740 1499 y(A)757 -1533 y(A)782 1624 y Fs(a)p 805 1790 4 125 v 782 1873 -a Fr(x)p 987 1126 4 291 v 981 1209 a Fu(;)989 918 y Fq(@)1072 -1001 y(@)1155 1084 y(@)1197 1126 y(@)1305 1209 y Fs(S)1259 -1333 y Fq(\023)1197 1416 y(\023)1134 1499 y(\023)1114 -1527 y(\023)1554 1624 y Fs(S)890 2039 y Fr(x)90 b Fu(:=)63 -b Fs(a)1197 2288 y Fr(y)1031 1748 y Fq(\001)989 1831 -y(\001)948 1914 y(\001)931 1948 y(\001)p 1071 1956 V -1072 1748 a(A)1114 1831 y(A)1155 1914 y(A)1172 1948 y(A)p -1220 2205 4 125 v 1320 1541 4 291 v 1313 1624 a Fu(;)1321 -1333 y Fq(S)1384 1416 y(S)1446 1499 y(S)1467 1527 y(S)1056 -1624 y Fs(S)1388 2039 y Fr(y)90 b Fu(:=)63 b Fs(a)1695 -2288 y Fr(z)1529 1748 y Fq(\001)1487 1831 y(\001)1446 -1914 y(\001)1429 1948 y(\001)p 1569 1956 V 1570 1748 -a(A)1612 1831 y(A)1653 1914 y(A)1670 1948 y(A)p 1718 -2205 4 125 v 283 2622 a Fu(In)37 b(this)f(b)s(o)s(ok)g(w)m(e)h(shall)e -Fs(not)46 b Fu(b)s(e)37 b(concerned)h(with)e(concrete)h(syn)m(tax.)57 -b(Whenev)m(er)38 b(w)m(e)g(talk)283 2742 y(ab)s(out)47 -b(syn)m(tactic)i(en)m(tities)e(suc)m(h)h(as)g(arithmetic)d -(expressions,)53 b(b)s(o)s(olean)46 b(expressions)j(or)283 -2863 y(statemen)m(ts)e(w)m(e)g(will)c(alw)m(a)m(ys)k(b)s(e)f(talking)e -(ab)s(out)h(the)h(abstract)g(syn)m(tax)h(so)f(there)h(is)e(no)283 -2983 y(am)m(biguit)m(y)g(with)g(resp)s(ect)i(to)e(the)h(form)f(of)g -(the)h(en)m(tit)m(y)-8 b(.)84 b(In)46 b(particular,)h(the)f(t)m(w)m(o)h -(trees)283 3103 y(ab)s(o)m(v)m(e)34 b(are)e(b)s(oth)h(elemen)m(ts)g(of) -f(the)h(syn)m(tactic)g(category)g Fw(Stm)p Fu(.)430 3224 -y(It)e(is)g(rather)g(cum)m(b)s(ersome)g(to)g(use)h(the)g(graphical)d -(represen)m(tation)j(of)f(abstract)g(syn)m(tax)283 3344 -y(and)i(w)m(e)h(shall)d(therefore)i(use)h(a)e(linear)f(notation.)42 -b(So)33 b(w)m(e)g(shall)e(write)527 3528 y Fr(z)p Fu(:=)p -Fr(x)p Fu(;)i(\()p Fr(x)p Fu(:=)p Fr(y)p Fu(;)h Fr(y)p -Fu(:=)p Fr(z)p Fu(\))283 3712 y(for)e(the)i(leftmost)d(syn)m(tax)j -(tree)f(and)527 3897 y(\()p Fr(z)p Fu(:=)p Fr(x)p Fu(;)g -Fr(x)p Fu(:=)p Fr(y)p Fu(\);)g Fr(y)p Fu(:=)p Fr(z)283 -4081 y Fu(for)i(the)h(righ)m(tmost)e(one.)52 b(F)-8 b(or)35 -b(statemen)m(ts)h(one)g(often)f(writes)g(the)h(brac)m(k)m(ets)i(as)d -Fr(begin)i Ft(\001)17 b(\001)g(\001)283 4201 y Fr(end)41 -b Fu(but)e(w)m(e)h(shall)e(feel)h(free)h(to)f(use)h(\()33 -b Ft(\001)17 b(\001)g(\001)30 b Fu(\))39 b(in)g(this)g(b)s(o)s(ok.)63 -b(Similarly)-8 b(,)37 b(w)m(e)k(use)f(brac)m(k)m(ets)283 -4322 y(\()33 b Ft(\001)17 b(\001)g(\001)31 b Fu(\))e(to)f(resolv)m(e)i -(am)m(biguities)d(for)i(elemen)m(ts)g(in)f(the)i(other)f(syn)m(tactic)h -(categories.)42 b(T)-8 b(o)29 b(cut)283 4442 y(do)m(wn)k(on)e(the)h(n)m -(um)m(b)s(er)g(of)f(brac)m(k)m(ets)i(needed)g(w)m(e)f(shall)e(allo)m(w) -g(to)h(use)i(the)e(familiar)d(relativ)m(e)283 4562 y(binding)j(p)s(o)m -(w)m(ers)j(\(precedences\))h(of)c(+,)i Fo(?)e Fu(and)i -Ft(\000)f Fu(etc.)44 b(and)32 b(so)h(write)f Fr(1)p Fu(+)p -Fr(x)p Fo(?)p Fr(2)g Fu(for)g Fr(1)p Fu(+\()p Fr(x)p -Fo(?)p Fr(2)p Fu(\))283 4683 y(but)h(not)g(for)f(\()p -Fr(1)p Fu(+)p Fr(x)p Fu(\))p Fo(?)p Fr(2)p Fu(.)283 4885 -y Fw(Exercise)37 b(1.1)49 b Fu(The)33 b(follo)m(wing)d(statemen)m(t)j -(is)f(in)g Fw(While)p Fu(:)527 5070 y Fr(y)p Fu(:=)p -Fr(1)p Fu(;)h Fr(while)h Ft(:)q Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p -Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\))283 5254 y(It)23 b(computes)h(the)f(factorial)d(of)j(the)g -(initial)c(v)-5 b(alue)22 b(b)s(ound)h(to)g Fr(x)g Fu(\(pro)m(vided)g -(that)f(it)g(is)h(p)s(ositiv)m(e\))283 5374 y(and)34 -b(the)f(result)g(will)e(b)s(e)i(the)g(\014nal)f(v)-5 -b(alue)33 b(of)f Fr(y)p Fu(.)45 b(Dra)m(w)33 b(a)g(graphical)e -(represen)m(tation)j(of)e(the)283 5494 y(abstract)h(syn)m(tax)i(tree.) -2516 b Fh(2)p eop -%%Page: 9 19 -9 18 bop 0 130 a Fw(1.3)112 b(Seman)m(tics)37 b(of)g(expressions)1956 -b(9)p 0 193 3473 4 v 0 515 a(Exercise)36 b(1.2)49 b Fu(Assume)42 -b(that)e(the)h(initial)c(v)-5 b(alue)40 b(of)g(the)h(v)-5 -b(ariable)39 b Fr(x)i Fu(is)f Fs(n)48 b Fu(and)41 b(that)f(the)0 -636 y(initial)31 b(v)-5 b(alue)34 b(of)g Fr(y)h Fu(is)f -Fs(m)7 b Fu(.)49 b(W)-8 b(rite)34 b(a)g(statemen)m(t)h(in)f -Fw(While)f Fu(that)h(assigns)h Fr(z)g Fu(the)g(v)-5 b(alue)34 -b(of)g Fs(n)0 756 y Fu(to)e(the)h(p)s(o)m(w)m(er)h(of)e -Fs(m)7 b Fu(,)33 b(that)f(is)244 984 y Fo(n)22 b(?)g -Ft(\001)17 b(\001)g(\001)k Fo(?)g(n)244 1019 y Fg(|)p -281 1019 135 10 v 135 w({z)p 490 1019 V 135 w(})279 1124 -y Fs(m)40 b Fu(times)0 1317 y(Giv)m(e)32 b(a)h(linear)e(as)h(w)m(ell)g -(as)h(a)f(graphical)f(represen)m(tation)i(of)f(the)h(abstract)g(syn)m -(tax.)275 b Fh(2)146 1579 y Fu(The)37 b(seman)m(tics)g(of)e -Fw(While)g Fu(is)g(giv)m(en)h(b)m(y)h(de\014ning)f(so-called)f -Fs(semantic)i(functions)44 b Fu(for)0 1700 y(eac)m(h)i(of)f(the)h(syn)m -(tactic)g(categories.)81 b(The)47 b(idea)d(is)h(that)g(a)g(seman)m(tic) -g(function)g(tak)m(es)i(a)0 1820 y(syn)m(tactic)40 b(en)m(tit)m(y)f(as) -g(argumen)m(t)f(and)h(returns)h(its)e(meaning.)60 b(The)40 -b(op)s(erational,)e(denota-)0 1940 y(tional)24 b(and)j(axiomatic)c -(approac)m(hes)28 b(men)m(tioned)e(earlier)f(will)f(b)s(e)i(used)i(to)e -(sp)s(ecify)h(seman)m(tic)0 2061 y(functions)34 b(for)f(the)i(statemen) -m(ts)f(of)g Fw(While)p Fu(.)46 b(F)-8 b(or)33 b(n)m(umerals,)h -(arithmetic)e(expressions)j(and)0 2181 y(b)s(o)s(olean)c(expressions)j -(the)f(seman)m(tic)g(functions)f(are)h(sp)s(eci\014ed)g(once)h(and)e -(for)g(all)f(b)s(elo)m(w.)0 2544 y Fj(1.3)161 b(Seman)l(tics)52 -b(of)i(expressions)0 2773 y Fu(Before)38 b(em)m(barking)g(on)g(sp)s -(ecifying)f(the)i(seman)m(tics)f(of)g(the)g(arithmetic)e(and)i(b)s(o)s -(olean)f(ex-)0 2893 y(pressions)f(of)e Fw(While)g Fu(let)g(us)h(ha)m(v) -m(e)i(a)d(brief)h(lo)s(ok)e(at)i(the)g(n)m(umerals;)h(this)f(will)d -(presen)m(t)37 b(the)0 3014 y(main)31 b(ingredien)m(ts)i(of)g(the)h -(approac)m(h)f(in)g(a)g(v)m(ery)h(simple)e(setting.)45 -b(So)33 b(assume)h(for)e(the)i(mo-)0 3134 y(men)m(t)42 -b(that)g(the)g(n)m(umerals)g(are)g(in)f(the)h Fs(binary)50 -b Fu(system.)73 b(Their)42 b(abstract)g(syn)m(tax)i(could)0 -3254 y(then)33 b(b)s(e)g(sp)s(eci\014ed)g(b)m(y:)244 -3482 y Fs(n)40 b Fu(::=)32 b Fr(0)h Ft(j)f Fr(1)h Ft(j)f -Fs(n)40 b Fr(0)33 b Ft(j)f Fs(n)40 b Fr(1)0 3710 y Fu(In)47 -b(order)g(to)f(determine)h(the)g(n)m(um)m(b)s(er)g(represen)m(ted)i(b)m -(y)f(a)f(n)m(umeral)f(w)m(e)h(shall)f(de\014ne)i(a)0 -3830 y(function)244 4058 y Ft(N)14 b Fu(:)44 b Fw(Num)32 -b Ft(!)g Fw(Z)0 4286 y Fu(This)f(is)g(called)e(a)i Fs(semantic)h -(function)38 b Fu(as)32 b(it)d(de\014nes)k(the)f(seman)m(tics)f(of)f -(the)h(n)m(umerals.)43 b(W)-8 b(e)0 4406 y(w)m(an)m(t)42 -b Ft(N)56 b Fu(to)41 b(b)s(e)g(a)g Fs(total)i(function)49 -b Fu(b)s(ecause)42 b(w)m(e)g(w)m(an)m(t)h(to)d(determine)h(a)g(unique)h -(n)m(um)m(b)s(er)0 4527 y(for)36 b(eac)m(h)h(n)m(umeral)f(of)g -Fw(Num)p Fu(.)54 b(If)36 b Fs(n)44 b Ft(2)37 b Fw(Num)e -Fu(then)i(w)m(e)h(write)e Ft(N)14 b Fu([)-17 b([)q Fs(n)7 -b Fu(])-17 b(])37 b(for)f(the)h(application)0 4647 y(of)i -Ft(N)53 b Fu(to)39 b Fs(n)7 b Fu(,)41 b(that)e(is)g(for)g(the)h -(corresp)s(onding)f(n)m(um)m(b)s(er.)64 b(In)39 b(general,)i(the)e -(application)e(of)0 4767 y(a)k(seman)m(tic)g(function)g(to)g(a)g(syn)m -(tactic)h(en)m(tit)m(y)g(will)d(b)s(e)j(written)f(within)f(the)i(\\syn) -m(tactic")0 4888 y(brac)m(k)m(ets)34 b(`[)-17 b([)q(')32 -b(and)g(`])-17 b(])q(')32 b(rather)h(than)f(the)g(more)g(usual)g(`\(')g -(and)g(`\)'.)44 b(These)34 b(brac)m(k)m(ets)g(ha)m(v)m(e)f(no)0 -5008 y(sp)s(ecial)c(meaning)f(but)i(throughout)f(this)h(b)s(o)s(ok)f(w) -m(e)i(shall)d(enclose)i(syn)m(tactic)h(argumen)m(ts)f(to)0 -5128 y(seman)m(tic)23 b(functions)g(using)g(the)h(\\syn)m(tactic")g -(brac)m(k)m(ets)h(whereas)g(w)m(e)f(use)h(ordinary)d(brac)m(k)m(ets)0 -5249 y(\(or)32 b(juxtap)s(ositioning\))e(in)i(all)e(other)j(cases.)146 -5374 y(The)28 b(seman)m(tic)f(function)g Ft(N)41 b Fu(is)27 -b(de\014ned)h(b)m(y)g(the)f(follo)m(wing)e Fs(semantic)k(clauses)34 -b Fu(\(or)27 b Fs(e)-5 b(qua-)0 5494 y(tions)p Fu(\):)p -eop -%%Page: 10 20 -10 19 bop 251 130 a Fw(10)2575 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 577 500 a Ft(N)15 b Fu([)-17 b([)p Fr(0)p -Fu(])g(])195 b(=)100 b Fw(0)577 668 y Ft(N)15 b Fu([)-17 -b([)p Fr(1)p Fu(])g(])195 b(=)100 b Fw(1)577 835 y Ft(N)15 -b Fu([)-17 b([)p Fs(n)40 b Fr(0)p Fu(])-17 b(])100 b(=)g -Fw(2)32 b Ff(?)h Ft(N)15 b Fu([)-17 b([)p Fs(n)7 b Fu(])-17 -b(])577 1003 y Ft(N)15 b Fu([)-17 b([)p Fs(n)40 b Fr(1)p -Fu(])-17 b(])100 b(=)g Fw(2)32 b Ff(?)h Ft(N)15 b Fu([)-17 -b([)p Fs(n)7 b Fu(])-17 b(])34 b(+)e Fw(1)283 1205 y -Fu(Here)38 b Fw(0)e Fu(and)h Fw(1)g Fu(are)f(n)m(um)m(b)s(ers,)j(that)d -(is)g(elemen)m(ts)h(of)g Fw(Z)p Fu(.)g(F)-8 b(urthermore,)37 -b Ff(?)g Fu(and)f(+)h(are)f(the)283 1326 y(usual)e(arithmetic)e(op)s -(erations)h(on)h(n)m(um)m(b)s(ers.)48 b(The)35 b(ab)s(o)m(v)m(e)f -(de\014nition)f(is)h(an)f(example)h(of)f(a)283 1446 y -Fs(c)-5 b(omp)g(ositional)45 b Fu(de\014nition;)37 b(this)f(means)g -(that)g(for)g(eac)m(h)h(p)s(ossible)f(w)m(a)m(y)h(of)f(constructing)g -(a)283 1566 y(n)m(umeral)f(it)f(tells)h(ho)m(w)h(the)g(corresp)s -(onding)f(n)m(um)m(b)s(er)h(is)f(obtained)g(from)f(the)i(meanings)e(of) -283 1687 y(the)f Fs(sub)p Fu(constructs.)283 1924 y Fw(Example)k(1.3)49 -b Fu(W)-8 b(e)25 b(can)f(calculate)g(the)g(n)m(um)m(b)s(er)h -Ft(N)14 b Fu([)-17 b([)q Fr(101)p Fu(])g(])26 b(corresp)s(onding)e(to)g -(the)h(n)m(umeral)283 2044 y Fr(101)34 b Fu(as)f(follo)m(ws:)527 -2254 y Ft(N)15 b Fu([)-17 b([)p Fr(101)p Fu(])g(])34 -b(=)f Fw(2)f Ff(?)h Ft(N)14 b Fu([)-17 b([)q Fr(10)p -Fu(])g(])34 b(+)e Fw(1)885 2421 y Fu(=)h Fw(2)f Ff(?)h -Fu(\()p Fw(2)f Ff(?)h Ft(N)15 b Fu([)-17 b([)p Fr(1)p -Fu(])g(])q(\))33 b(+)f Fw(1)885 2589 y Fu(=)h Fw(2)f -Ff(?)h Fu(\()p Fw(2)f Ff(?)h Fw(1)p Fu(\))g(+)f Fw(1)885 -2756 y Fu(=)h Fw(5)283 2966 y Fu(Note)g(that)g(the)g(string)e -Fr(101)j Fu(is)e(decomp)s(osed)h(according)f(to)g(the)h(syn)m(tax)h -(for)e(n)m(umerals.)79 b Fh(2)430 3202 y Fu(So)27 b(far)g(w)m(e)i(ha)m -(v)m(e)g(only)e Fs(claime)-5 b(d)36 b Fu(that)28 b(the)f(de\014nition)g -(of)g Ft(N)42 b Fu(giv)m(es)28 b(rise)f(to)g(a)h(w)m(ell-de\014ned)283 -3322 y(total)37 b(function.)58 b(W)-8 b(e)38 b(shall)f(no)m(w)h(presen) -m(t)i(a)d Fs(formal)i(pr)-5 b(o)g(of)58 b Fu(sho)m(wing)38 -b(that)g(this)f(is)h(indeed)283 3443 y(the)33 b(case.)p -283 3564 3473 5 v 283 3745 a Fw(F)-9 b(act)38 b(1.4)49 -b Fu(The)33 b(ab)s(o)m(v)m(e)h(equations)f(for)f Ft(N)14 -b Fu(,)33 b(de\014ne)g(a)g(total)e(function)h Ft(N)14 -b Fu(:)44 b Fw(Num)31 b Ft(!)i Fw(Z)p Fu(.)p 283 3866 -V 283 4075 a Fw(Pro)s(of:)38 b Fu(W)-8 b(e)33 b(ha)m(v)m(e)h(a)e(total) -f(function)h Ft(N)14 b Fu(,)33 b(if)e(for)i(all)d(argumen)m(ts)j -Fs(n)39 b Ft(2)33 b Fw(Num)552 4242 y Fu(there)g(is)g(exactly)g(one)f -(n)m(um)m(b)s(er)h Fw(n)g Ft(2)g Fw(Z)g Fu(suc)m(h)h(that)f -Ft(N)14 b Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])33 b(=)f -Fw(n)699 b Fu(\(*\))283 4410 y(Giv)m(en)38 b(a)f(n)m(umeral)g -Fs(n)44 b Fu(it)37 b(can)h(ha)m(v)m(e)g(one)g(of)f(four)g(forms:)53 -b(it)36 b(can)i(b)s(e)g(a)f(basis)g(elemen)m(t)h(and)283 -4530 y(then)33 b(it)e(is)g(equal)g(to)h Fr(0)g Fu(or)f -Fr(1)p Fu(,)h(or)g(it)f(can)h(b)s(e)g(a)f(comp)s(osite)g(elemen)m(t)g -(and)h(then)h(it)d(is)i(equal)f(to)283 4651 y Fs(n)345 -4615 y Fi(0)369 4651 y Fr(0)d Fu(or)g Fs(n)625 4615 y -Fi(0)649 4651 y Fr(1)g Fu(for)g(some)g(other)g(n)m(umeral)f -Fs(n)1797 4615 y Fi(0)1821 4651 y Fu(.)42 b(So,)29 b(in)e(order)h(to)g -(pro)m(v)m(e)h(\(*\))f(w)m(e)h(ha)m(v)m(e)h(to)e(consider)283 -4771 y(all)j(four)h(p)s(ossibilities.)430 4893 y(The)37 -b(pro)s(of)f(will)e(b)s(e)i(conducted)i(b)m(y)f Fs(induction)44 -b Fu(on)36 b(the)h Fs(structur)-5 b(e)44 b Fu(of)36 b(the)h(n)m(umeral) -f Fs(n)7 b Fu(.)283 5013 y(In)33 b(the)f Fs(b)-5 b(ase)33 -b(c)-5 b(ase)39 b Fu(w)m(e)33 b(pro)m(v)m(e)g(\(*\))e(for)g(the)i -(basis)e(elemen)m(ts)h(of)g Fw(Num)p Fu(,)f(that)h(is)f(for)g(the)h -(cases)283 5133 y(where)41 b Fs(n)47 b Fu(is)39 b Fr(0)h -Fu(or)f Fr(1)p Fu(.)64 b(In)40 b(the)g Fs(induction)h(step)k -Fu(w)m(e)40 b(consider)g(the)g(comp)s(osite)f(elemen)m(ts)g(of)283 -5254 y Fw(Num)p Fu(,)32 b(that)f(is)g(the)i(cases)g(where)g -Fs(n)39 b Fu(is)31 b Fs(n)1839 5218 y Fi(0)1862 5254 -y Fr(0)h Fu(or)g Fs(n)2126 5218 y Fi(0)2149 5254 y Fr(1)p -Fu(.)44 b(The)32 b(induction)f(h)m(yp)s(othesis)i(will)c(then)283 -5374 y(allo)m(w)35 b(us)i(to)f(assume)h(that)g(\(*\))f(holds)g(for)g -(the)h(immediate)c(constituen)m(t)k(of)f Fs(n)7 b Fu(,)38 -b(that)e(is)g Fs(n)3705 5338 y Fi(0)3729 5374 y Fu(.)283 -5494 y(W)-8 b(e)42 b(shall)f(then)h(pro)m(v)m(e)h(that)e(\(*\))g(holds) -g(for)g Fs(n)7 b Fu(.)71 b(It)42 b(then)g(follo)m(ws)e(that)i(\(*\))f -(holds)g(for)g(all)p eop -%%Page: 11 21 -11 20 bop 0 130 a Fw(1.3)112 b(Seman)m(tics)37 b(of)g(expressions)1900 -b(11)p 0 193 3473 4 v 0 515 a Fu(n)m(umerals)32 b Fs(n)40 -b Fu(b)s(ecause)34 b(an)m(y)f(n)m(umeral)f Fs(n)39 b -Fu(can)33 b(b)s(e)g(constructed)h(in)e(that)h(w)m(a)m(y)-8 -b(.)0 683 y Fw(The)31 b(case)h Fs(n)38 b Fu(=)31 b Fr(0)p -Fu(:)43 b(Only)31 b(one)g(of)g(the)g(seman)m(tic)g(clauses)h -(de\014ning)f Ft(N)45 b Fu(can)32 b(b)s(e)f(used)h(and)f(it)0 -803 y(giv)m(es)37 b Ft(N)14 b Fu([)-17 b([)q Fs(n)7 b -Fu(])-17 b(])37 b(=)f Fw(0)p Fu(.)55 b(So)36 b(clearly)f(there)i(is)f -(exactly)h(one)g(n)m(um)m(b)s(er)f Fw(n)h Fu(in)f Fw(Z)g -Fu(\(namely)g Fw(0)p Fu(\))g(suc)m(h)0 924 y(that)c Ft(N)15 -b Fu([)-17 b([)p Fs(n)7 b Fu(])-17 b(])34 b(=)e Fw(n)p -Fu(.)0 1091 y Fw(The)h(case)g Fs(n)40 b Fu(=)32 b Fr(1)h -Fu(is)f(similar)d(and)k(w)m(e)h(omit)c(the)j(details.)0 -1259 y Fw(The)k(case)h Fs(n)44 b Fu(=)36 b Fs(n)738 1223 -y Fi(0)762 1259 y Fr(0)p Fu(:)52 b(Insp)s(ection)37 b(of)g(the)g -(clauses)g(de\014ning)g Ft(N)51 b Fu(sho)m(ws)39 b(that)d(only)h(one)g -(of)0 1379 y(the)44 b(clauses)h(is)f(applicable)e(and)i(w)m(e)h(ha)m(v) -m(e)g Ft(N)15 b Fu([)-17 b([)p Fs(n)7 b Fu(])-17 b(])45 -b(=)f Fw(2)g Ff(?)g Ft(N)15 b Fu([)-17 b([)p Fs(n)2486 -1343 y Fi(0)2510 1379 y Fu(])g(].)78 b(W)-8 b(e)45 b(can)f(no)m(w)h -(apply)0 1500 y(the)38 b(induction)e(h)m(yp)s(othesis)j(to)d -Fs(n)1282 1464 y Fi(0)1343 1500 y Fu(and)i(get)f(that)g(there)h(is)f -(exactly)h(one)f(n)m(um)m(b)s(er)h Fw(n)3224 1464 y Fi(0)3285 -1500 y Fu(suc)m(h)0 1620 y(that)32 b Ft(N)14 b Fu([)-17 -b([)q Fs(n)407 1584 y Fi(0)431 1620 y Fu(])g(])32 b(=)g -Fw(n)670 1584 y Fi(0)694 1620 y Fu(.)43 b(But)33 b(then)g(it)e(is)h -(clear)f(that)h(there)h(is)f(exactly)h(one)f(n)m(um)m(b)s(er)h -Fw(n)f Fu(\(namely)0 1741 y Fw(2)h Ff(?)f Fw(n)240 1704 -y Fi(0)264 1741 y Fu(\))g(suc)m(h)i(that)f Ft(N)14 b -Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])33 b(=)g Fw(n)p -Fu(.)0 1908 y Fw(The)g(case)g Fs(n)40 b Fu(=)32 b Fs(n)721 -1872 y Fi(0)745 1908 y Fr(1)h Fu(is)f(similar)d(and)k(w)m(e)g(omit)e -(the)i(details.)1117 b Fh(2)146 2121 y Fu(The)31 b(general)f(tec)m -(hnique)h(that)f(w)m(e)h(ha)m(v)m(e)g(applied)e(in)g(the)h -(de\014nition)f(of)g(the)i(syn)m(tax)g(and)0 2242 y(seman)m(tics)i(of)f -(n)m(umerals)g(can)h(b)s(e)g(summarized)e(as)i(follo)m(ws:)p -0 2324 3470 4 v 0 2341 V -2 2548 4 208 v 15 2548 V 1101 -2469 a Fw(Comp)s(ositional)d(De\014nitions)p 3452 2548 -V 3469 2548 V 0 2552 3470 4 v -2 3041 4 490 v 15 3041 -V 66 2717 a Fu(1:)143 b(The)34 b(syn)m(tactic)f(category)g(is)f(sp)s -(eci\014ed)i(b)m(y)f(an)g(abstract)g(syn)m(tax)h(giving)d(the)i -Fs(b)-5 b(asis)285 2837 y(elements)52 b Fu(and)44 b(the)g -Fs(c)-5 b(omp)g(osite)51 b(elements)8 b Fu(.)77 b(The)45 -b(comp)s(osite)e(elemen)m(ts)h(ha)m(v)m(e)i(a)285 2958 -y(unique)33 b(decomp)s(osition)e(in)m(to)h(their)g(immediate)e -(constituen)m(ts.)p 3452 3041 V 3469 3041 V -2 3690 4 -650 v 15 3690 V 66 3125 a(2:)143 b(The)29 b(seman)m(tics)f(is)f -(de\014ned)i(b)m(y)g Fs(c)-5 b(omp)g(ositional)36 b Fu(de\014nitions)27 -b(of)g(a)h(function:)40 b(There)285 3246 y(is)24 b(a)g -Fs(semantic)29 b(clause)i Fu(for)23 b(eac)m(h)i(of)f(the)g(basis)g -(elemen)m(ts)h(of)f(the)g(syn)m(tactic)h(category)285 -3366 y(and)i(one)g(for)f(eac)m(h)h(of)f(the)h(metho)s(ds)f(for)g -(constructing)h(comp)s(osite)f(elemen)m(ts.)41 b(The)285 -3487 y(clauses)28 b(for)e(comp)s(osite)g(elemen)m(ts)i(are)f(de\014ned) -h(in)e(terms)h(of)g(the)g(seman)m(tics)g(of)g(the)285 -3607 y(immediate)j(constituen)m(ts)k(of)e(the)h(elemen)m(ts.)p -3452 3690 V 3469 3690 V 0 3694 3470 4 v 0 3710 V 0 3859 -a(The)42 b(pro)s(of)f(tec)m(hnique)i(w)m(e)f(ha)m(v)m(e)h(applied)d(is) -h(closely)g(connected)i(with)e(the)h(approac)m(h)g(to)0 -3979 y(de\014ning)33 b(seman)m(tic)f(functions.)43 b(It)33 -b(can)g(b)s(e)g(summarized)e(as)i(follo)m(ws:)p 0 4081 -V 0 4097 V -2 4305 4 208 v 15 4305 V 1232 4226 a Fw(Structural)f -(Induction)p 3452 4305 V 3469 4305 V 0 4308 3470 4 v --2 4678 4 370 v 15 4678 V 66 4474 a Fu(1:)143 b(Pro)m(v)m(e)39 -b(that)f(the)g(prop)s(ert)m(y)g(holds)f(for)g(all)f(the)i -Fs(b)-5 b(asis)45 b Fu(elemen)m(ts)37 b(of)g(the)h(syn)m(tactic)285 -4594 y(category)-8 b(.)p 3452 4678 V 3469 4678 V -2 5206 -4 529 v 15 5206 V 66 4762 a(2:)143 b(Pro)m(v)m(e)39 b(that)d(the)i -(prop)s(ert)m(y)f(holds)g(for)f(all)f(the)i Fs(c)-5 b(omp)g(osite)44 -b Fu(elemen)m(ts)37 b(of)f(the)i(syn-)285 4882 y(tactic)44 -b(category:)66 b(Assume)45 b(that)f(the)g(prop)s(ert)m(y)h(holds)e(for) -h(all)e(the)i(immediate)285 5003 y(constituen)m(ts)d(of)f(the)g(elemen) -m(t)g(\(this)f(is)h(called)f(the)h Fs(induction)h(hyp)-5 -b(othesis)p Fu(\))39 b(and)285 5123 y(pro)m(v)m(e)34 -b(that)e(it)g(also)g(holds)g(for)g(the)h(elemen)m(t)f(itself.)p -3452 5206 V 3469 5206 V 0 5210 3470 4 v 0 5226 V 146 -5374 a(In)41 b(the)f(remainder)f(of)h(this)f(b)s(o)s(ok)h(w)m(e)h -(shall)d(assume)j(that)f(n)m(umerals)f(are)h(in)f(decimal)0 -5494 y(notation)30 b(and)h(ha)m(v)m(e)i(their)e(normal)e(meanings)h -(\(so)i(for)e(example)h Ft(N)14 b Fu([)-17 b([)q Fr(137)p -Fu(])g(])33 b(=)e Fw(137)g Ft(2)h Fw(Z)p Fu(\).)f(It)p -eop -%%Page: 12 22 -12 21 bop 251 130 a Fw(12)2575 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 283 515 a Fu(is)30 b(imp)s(ortan)m(t)e(to)i -(understand,)i(ho)m(w)m(ev)m(er,)h(that)d(there)h(is)f(a)g(distinction) -e(b)s(et)m(w)m(een)k(n)m(umerals)283 636 y(\(whic)m(h)27 -b(are)f(syn)m(tactic\))i(and)e(n)m(um)m(b)s(ers)h(\(whic)m(h)g(are)f -(seman)m(tic\),)h(ev)m(en)h(in)e(decimal)e(notation.)283 -922 y Fp(Seman)l(tic)46 b(functions)283 1107 y Fu(The)36 -b(meaning)d(of)h(an)g(expression)h(dep)s(ends)h(on)f(the)f(v)-5 -b(alues)35 b(b)s(ound)f(to)g(the)h(v)-5 b(ariables)33 -b(that)283 1228 y(o)s(ccur)38 b(in)f(it.)58 b(F)-8 b(or)36 -b(example,)j(if)d Fr(x)i Fu(is)f(b)s(ound)h(to)f Fw(3)h -Fu(then)g(the)g(arithmetic)e(expression)j Fr(x)p Fu(+)p -Fr(1)283 1348 y Fu(ev)-5 b(aluates)33 b(to)f Fw(4)g Fu(but)h(if)e -Fr(x)h Fu(is)g(b)s(ound)g(to)g Fw(2)h Fu(then)g(the)f(expression)i(ev) --5 b(aluates)32 b(to)g Fw(3)p Fu(.)44 b(W)-8 b(e)32 b(shall)283 -1468 y(therefore)f(in)m(tro)s(duce)f(the)h(concept)g(of)e(a)h -Fs(state)p Fu(:)43 b(to)29 b(eac)m(h)i(v)-5 b(ariable)28 -b(the)j(state)f(will)e(asso)s(ciate)283 1589 y(its)h(curren)m(t)h(v)-5 -b(alue.)41 b(W)-8 b(e)29 b(shall)f(represen)m(t)i(a)f(state)g(as)g(a)f -(function)h(from)e(v)-5 b(ariables)27 b(to)i(v)-5 b(alues,)283 -1709 y(that)33 b(is)f(an)g(elemen)m(t)h(of)f(the)h(set)527 -1900 y Fw(State)g Fu(=)f Fw(V)-9 b(ar)32 b Ft(!)h Fw(Z)283 -2090 y Fu(Eac)m(h)42 b(state)f Fs(s)49 b Fu(sp)s(eci\014es)42 -b(a)e(v)-5 b(alue,)42 b(written)f Fs(s)48 b(x)12 b Fu(,)43 -b(for)d(eac)m(h)h(v)-5 b(ariable)39 b Fs(x)53 b Fu(of)40 -b Fw(V)-9 b(ar)p Fu(.)67 b(Th)m(us)42 b(if)283 2211 y -Fs(s)f Fr(x)33 b Fu(=)f Fw(3)h Fu(then)g(the)g(v)-5 b(alue)32 -b(of)g Fr(x)p Fu(+)p Fr(1)h Fu(in)f(state)h Fs(s)40 b -Fu(is)33 b Fw(4)p Fu(.)430 2331 y(Actually)-8 b(,)41 -b(this)e(is)h(just)g(one)g(of)g(sev)m(eral)h(represen)m(tations)g(of)e -(the)i(state.)66 b(Some)40 b(other)283 2451 y(p)s(ossibilities)30 -b(are)j(to)f(use)h(a)g(table:)p 527 2553 877 4 v 525 -2801 4 249 v 728 2718 a Fr(x)p 978 2801 V 368 w Fw(5)p -1402 2801 V 525 2969 4 168 v 728 2886 a Fr(y)p 978 2969 -V 385 w Fw(7)p 1402 2969 V 525 3137 V 728 3053 a Fr(z)p -978 3137 V 385 w Fw(0)p 1402 3137 V 527 3140 877 4 v -283 3288 a Fu(or)g(a)f(\\list")f(of)h(the)h(form)527 -3478 y([)p Fr(x)p Ft(7!)p Fw(5)p Fu(,)g Fr(y)p Ft(7!)p -Fw(7)p Fu(,)g Fr(z)p Ft(7!)o Fw(0)p Fu(])283 3669 y(\(as)28 -b(in)f(Section)g(1.1\).)41 b(In)28 b(all)d(cases)k(w)m(e)g(m)m(ust)e -(ensure)i(that)f(exactly)f(one)h(v)-5 b(alue)27 b(is)g(asso)s(ciated) -283 3789 y(with)36 b(eac)m(h)g(v)-5 b(ariable.)51 b(By)37 -b(requiring)d(a)i(state)g(to)f(b)s(e)h(a)g(function)f(this)g(is)g -(trivially)e(ful\014lled)283 3909 y(whereas)49 b(for)e(the)g -(alternativ)m(e)f(represen)m(tations)j(ab)s(o)m(v)m(e)e(extra)h -(restrictions)f(ha)m(v)m(e)h(to)f(b)s(e)283 4030 y(enforced.)430 -4150 y(Giv)m(en)33 b(an)g(arithmetic)e(expression)k Fs(a)41 -b Fu(and)33 b(a)g(state)h Fs(s)41 b Fu(w)m(e)34 b(can)g(determine)f -(the)h(v)-5 b(alue)32 b(of)283 4271 y(the)41 b(expression.)66 -b(Therefore)40 b(w)m(e)h(shall)d(de\014ne)j(the)f(meaning)e(of)i -(arithmetic)d(expressions)283 4391 y(as)f(a)g(total)e(function)h -Ft(A)g Fu(that)h(tak)m(es)h(t)m(w)m(o)f(argumen)m(ts:)50 -b(the)37 b(syn)m(tactic)f(construct)h Fs(and)45 b Fu(the)283 -4511 y(state.)f(The)34 b(functionalit)m(y)d(of)h Ft(A)g -Fu(is)527 4702 y Ft(A)p Fu(:)43 b Fw(Aexp)33 b Ft(!)f -Fu(\()p Fw(State)h Ft(!)f Fw(Z)p Fu(\))283 4893 y(This)h(means)e(that)h -Ft(A)f Fu(tak)m(es)j(its)d(parameters)h Fs(one)h(at)i(a)f(time)p -Fu(.)43 b(So)32 b(w)m(e)h(ma)m(y)e(supply)i Ft(A)e Fu(with)283 -5013 y(its)i(\014rst)g(parameter,)g(sa)m(y)h Fr(x)p Fu(+)p -Fr(1)p Fu(,)f(and)g(study)h(the)f(function)g Ft(A)o Fu([)-17 -b([)q Fr(x)p Fu(+)p Fr(1)p Fu(])g(])q(.)44 b(It)33 b(has)h -(functionalit)m(y)283 5133 y Fw(State)45 b Ft(!)g Fw(Z)g -Fu(and)g(only)g(when)h(w)m(e)f(supply)h(it)e(with)g(a)h(state)g(\(whic) -m(h)h(happ)s(ens)f(to)g(b)s(e)g(a)283 5254 y(function)32 -b(but)g(that)g(do)s(es)g(not)g(matter\))f(do)h(w)m(e)h(obtain)e(the)i -(v)-5 b(alue)31 b(of)h(the)g(expression)h Fr(x)p Fu(+)p -Fr(1)p Fu(.)430 5374 y(Assuming)25 b(the)g(existence)i(of)e(the)h -(function)e Ft(N)40 b Fu(de\014ning)25 b(the)h(meaning)e(of)g(n)m -(umerals,)j(w)m(e)283 5494 y(can)f(de\014ne)g(the)f(function)g -Ft(A)f Fu(b)m(y)i(de\014ning)f(its)f(v)-5 b(alue)25 b -Ft(A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q Fs(s)33 -b Fu(on)25 b(eac)m(h)h(arithmetic)d(expression)p eop -%%Page: 13 23 -13 22 bop 0 130 a Fw(1.3)112 b(Seman)m(tics)37 b(of)g(expressions)1900 -b(13)p 0 193 3473 4 v 0 419 V 0 1260 4 841 v 432 528 -a Ft(A)o Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])q Fs(s)381 -b Fu(=)100 b Ft(N)14 b Fu([)-17 b([)q Fs(n)7 b Fu(])-17 -b(])432 696 y Ft(A)o Fu([)g([)q Fs(x)12 b Fu(])-17 b(])p -Fs(s)387 b Fu(=)100 b Fs(s)40 b(x)432 863 y Ft(A)o Fu([)-17 -b([)q Fs(a)606 878 y Fn(1)678 863 y Fu(+)33 b Fs(a)844 -878 y Fn(2)883 863 y Fu(])-17 b(])q Fs(s)109 b Fu(=)100 -b Ft(A)o Fu([)-17 b([)q Fs(a)1420 878 y Fn(1)1460 863 -y Fu(])g(])p Fs(s)41 b Fu(+)32 b Ft(A)p Fu([)-17 b([)p -Fs(a)1860 878 y Fn(2)1900 863 y Fu(])g(])q Fs(s)432 1031 -y Ft(A)o Fu([)g([)q Fs(a)606 1046 y Fn(1)678 1031 y Fo(?)33 -b Fs(a)817 1046 y Fn(2)856 1031 y Fu(])-17 b(])q Fs(s)136 -b Fu(=)100 b Ft(A)o Fu([)-17 b([)q Fs(a)1420 1046 y Fn(1)1460 -1031 y Fu(])g(])p Fs(s)41 b Ff(?)33 b Ft(A)o Fu([)-17 -b([)q Fs(a)1842 1046 y Fn(2)1881 1031 y Fu(])g(])q Fs(s)432 -1199 y Ft(A)o Fu([)g([)q Fs(a)606 1214 y Fn(1)678 1199 -y Ft(\000)33 b Fs(a)845 1214 y Fn(2)885 1199 y Fu(])-17 -b(])q Fs(s)107 b Fu(=)100 b Ft(A)o Fu([)-17 b([)q Fs(a)1420 -1214 y Fn(1)1460 1199 y Fu(])g(])p Fs(s)41 b Fe(\000)32 -b Ft(A)p Fu([)-17 b([)q Fs(a)1874 1214 y Fn(2)1913 1199 -y Fu(])g(])q Fs(s)p 3469 1260 V 0 1263 3473 4 v 654 1424 -a Fu(T)-8 b(able)32 b(1.1:)43 b(The)34 b(seman)m(tics)e(of)g -(arithmetic)f(expressions)0 1708 y Fs(a)41 b Fu(and)33 -b(state)h Fs(s)8 b Fu(.)46 b(The)34 b(de\014nition)f(of)g -Ft(A)g Fu(is)g(giv)m(en)g(in)g(T)-8 b(able)33 b(1.1.)45 -b(The)35 b(clause)e(for)g Fs(n)41 b Fu(re\015ects)0 1828 -y(that)29 b(the)g(v)-5 b(alue)28 b(of)h Fs(n)36 b Fu(in)28 -b(an)m(y)h(state)h(is)e Ft(N)15 b Fu([)-17 b([)p Fs(n)7 -b Fu(])-17 b(])q(.)42 b(The)30 b(v)-5 b(alue)28 b(of)h(a)f(v)-5 -b(ariable)28 b Fs(x)40 b Fu(in)28 b(state)i Fs(s)37 b -Fu(is)28 b(the)0 1949 y(v)-5 b(alue)34 b(b)s(ound)i(to)e -Fs(x)47 b Fu(in)34 b Fs(s)8 b Fu(,)36 b(that)e(is)h Fs(s)43 -b(x)12 b Fu(.)50 b(The)36 b(v)-5 b(alue)34 b(of)h(the)g(comp)s(osite)f -(expression)i Fs(a)3260 1964 y Fn(1)3300 1949 y Fu(+)p -Fs(a)3433 1964 y Fn(2)0 2069 y Fu(in)31 b Fs(s)40 b Fu(is)31 -b(the)i(sum)e(of)h(the)g(v)-5 b(alues)32 b(of)f Fs(a)1398 -2084 y Fn(1)1470 2069 y Fu(and)h Fs(a)1716 2084 y Fn(2)1787 -2069 y Fu(in)f Fs(s)8 b Fu(.)44 b(Similarly)-8 b(,)28 -b(the)k(v)-5 b(alue)31 b(of)g Fs(a)3037 2084 y Fn(1)3110 -2069 y Fo(?)h Fs(a)3248 2084 y Fn(2)3319 2069 y Fu(in)g -Fs(s)0 2189 y Fu(is)f(the)h(pro)s(duct)f(of)g(the)h(v)-5 -b(alues)31 b(of)g Fs(a)1361 2204 y Fn(1)1432 2189 y Fu(and)g -Fs(a)1677 2204 y Fn(2)1748 2189 y Fu(in)g Fs(s)8 b Fu(,)32 -b(and)f(the)h(v)-5 b(alue)31 b(of)f Fs(a)2740 2204 y -Fn(1)2811 2189 y Ft(\000)i Fs(a)2977 2204 y Fn(2)3048 -2189 y Fu(in)f Fs(s)39 b Fu(is)31 b(the)0 2310 y(di\013erence)i(b)s(et) -m(w)m(een)h(the)f(v)-5 b(alues)32 b(of)g Fs(a)1438 2325 -y Fn(1)1510 2310 y Fu(and)g Fs(a)1756 2325 y Fn(2)1828 -2310 y Fu(in)g Fs(s)8 b Fu(.)43 b(Note)32 b(that)g(+)h(,)f -Ff(?)g Fu(and)h Fe(\000)f Fu(o)s(ccurring)0 2430 y(on)i(the)g(righ)m(t) -f(of)h(these)h(equations)f(are)g(the)g(usual)g(arithmetic)e(op)s -(erations,)h(whilst)g(on)h(the)0 2550 y(left)42 b(they)i(are)f(just)h -(pieces)f(of)g(syn)m(tax;)50 b(this)42 b(is)h(analogous)f(to)h(the)g -(distinction)e(b)s(et)m(w)m(een)0 2671 y(n)m(umerals)32 -b(and)h(n)m(um)m(b)s(ers)g(but)g(w)m(e)h(shall)d(not)h(b)s(other)h(to)f -(use)i(di\013eren)m(t)e(sym)m(b)s(ols.)0 2897 y Fw(Example)37 -b(1.5)48 b Fu(Supp)s(ose)34 b(that)e Fs(s)41 b Fr(x)33 -b Fu(=)f Fw(3)p Fu(.)44 b(Then:)294 3091 y Ft(A)o Fu([)-17 -b([)q Fr(x)p Fu(+)p Fr(1)p Fu(])g(])q Fs(s)108 b Fu(=)99 -b Ft(A)p Fu([)-17 b([)p Fr(x)p Fu(])g(])q Fs(s)41 b Fu(+)32 -b Ft(A)p Fu([)-17 b([)p Fr(1)p Fu(])g(])q Fs(s)775 3259 -y Fu(=)99 b(\()p Fs(s)41 b Fr(x)p Fu(\))32 b(+)h Ft(N)14 -b Fu([)-17 b([)q Fr(1)p Fu(])g(])775 3426 y(=)99 b Fw(3)33 -b Fu(+)f Fw(1)775 3594 y Fu(=)99 b Fw(4)0 3795 y Fu(Note)33 -b(that)g(here)g Fr(1)h Fu(is)e(a)h(n)m(umeral)f(\(enclosed)h(in)f(the)i -(brac)m(k)m(ets)h(`[)-17 b([')33 b(and)g(`])-17 b(])q('\))33 -b(whereas)h Fw(1)f Fu(is)g(a)0 3915 y(n)m(um)m(b)s(er.)3049 -b Fh(2)0 4142 y Fw(Example)37 b(1.6)48 b Fu(Supp)s(ose)28 -b(w)m(e)g(add)f(the)g(arithmetic)d(expression)k Ft(\000)16 -b Fs(a)35 b Fu(to)26 b(our)h(language.)40 b(An)0 4262 -y(acceptable)33 b(seman)m(tic)f(clause)h(for)f(this)g(construct)i(w)m -(ould)e(b)s(e)244 4464 y Ft(A)o Fu([)-17 b([)q Ft(\000)16 -b Fs(a)7 b Fu(])-17 b(])r Fs(s)40 b Fu(=)33 b Fw(0)f -Fe(\000)h Ft(A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q -Fs(s)0 4666 y Fu(whereas)39 b(the)f(alternativ)m(e)e(clause)i -Ft(A)o Fu([)-17 b([)q Ft(\000)16 b Fs(a)7 b Fu(])-17 -b(])q Fs(s)46 b Fu(=)37 b Ft(A)o Fu([)-17 b([)q Fr(0)37 -b Ft(\000)h Fs(a)7 b Fu(])-17 b(])q Fs(s)45 b Fu(w)m(ould)38 -b(con)m(tradict)f(the)h(com-)0 4786 y(p)s(ositionalit)m(y)29 -b(requiremen)m(t.)2301 b Fh(2)0 5013 y Fw(Exercise)36 -b(1.7)49 b Fu(Pro)m(v)m(e)f(that)e(the)h(equations)g(of)f(T)-8 -b(able)46 b(1.1)g(de\014ne)h(a)f(total)f(function)h Ft(A)0 -5133 y Fu(in)51 b Fw(Aexp)g Ft(!)g Fu(\()p Fw(State)h -Ft(!)f Fw(Z)p Fu(\):)h(First)e(argue)i(that)f(it)f(is)h(su\016cien)m(t) -i(to)e(pro)m(v)m(e)i(that)e(for)0 5254 y(eac)m(h)39 b -Fs(a)h Ft(2)33 b Fw(Aexp)39 b Fu(and)f(eac)m(h)h Fs(s)47 -b Ft(2)39 b Fw(State)f Fu(there)h(is)f(exactly)h(one)g(v)-5 -b(alue)38 b Fw(v)g Ft(2)h Fw(Z)g Fu(suc)m(h)h(that)0 -5374 y Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q -Fs(s)41 b Fu(=)32 b Fw(v)p Fu(.)48 b(Next)35 b(use)g(structural)f -(induction)f(on)h(the)h(arithmetic)d(expressions)j(to)f(pro)m(v)m(e)0 -5494 y(that)e(this)h(is)f(indeed)h(the)g(case.)2221 b -Fh(2)p eop -%%Page: 14 24 -14 23 bop 251 130 a Fw(14)2575 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 283 419 V 283 2160 4 1741 v 715 528 -a Ft(B)t Fu([)-17 b([)p Fr(true)p Fu(])g(])r Fs(s)239 -b Fu(=)99 b Fw(tt)715 696 y Ft(B)t Fu([)-17 b([)p Fr(false)p -Fu(])g(])r Fs(s)188 b Fu(=)99 b Fw(\013)715 954 y Ft(B)t -Fu([)-17 b([)p Fs(a)878 969 y Fn(1)951 954 y Fu(=)32 -b Fs(a)1116 969 y Fn(2)1156 954 y Fu(])-17 b(])p Fs(s)110 -b Fu(=)1518 779 y Fg(8)1518 854 y(<)1518 1003 y(:)1633 -869 y Fw(tt)83 b Fu(if)31 b Ft(A)p Fu([)-17 b([)p Fs(a)2067 -884 y Fn(1)2107 869 y Fu(])g(])p Fs(s)41 b Fu(=)32 b -Ft(A)p Fu([)-17 b([)q Fs(a)2508 884 y Fn(2)2547 869 y -Fu(])g(])q Fs(s)1633 1037 y Fw(\013)106 b Fu(if)31 b -Ft(A)p Fu([)-17 b([)p Fs(a)2067 1052 y Fn(1)2107 1037 -y Fu(])g(])p Fs(s)41 b Ft(6)p Fu(=)32 b Ft(A)p Fu([)-17 -b([)q Fs(a)2508 1052 y Fn(2)2547 1037 y Fu(])g(])q Fs(s)715 -1306 y Ft(B)t Fu([)g([)p Fs(a)878 1321 y Fn(1)951 1306 -y Ft(\024)33 b Fs(a)1118 1321 y Fn(2)1157 1306 y Fu(])-17 -b(])q Fs(s)108 b Fu(=)1518 1131 y Fg(8)1518 1206 y(<)1518 -1356 y(:)1633 1221 y Fw(tt)83 b Fu(if)31 b Ft(A)p Fu([)-17 -b([)p Fs(a)2067 1236 y Fn(1)2107 1221 y Fu(])g(])p Fs(s)41 -b Fe(\024)33 b Ft(A)o Fu([)-17 b([)q Fs(a)2521 1236 y -Fn(2)2561 1221 y Fu(])g(])p Fs(s)1633 1389 y Fw(\013)106 -b Fu(if)31 b Ft(A)p Fu([)-17 b([)p Fs(a)2067 1404 y Fn(1)2107 -1389 y Fu(])g(])p Fs(s)41 b Ff(>)33 b Ft(A)o Fu([)-17 -b([)q Fs(a)2521 1404 y Fn(2)2561 1389 y Fu(])g(])p Fs(s)715 -1658 y Ft(B)t Fu([)g([)p Ft(:)33 b Fs(b)6 b Fu(])-17 -b(])q Fs(s)294 b Fu(=)1518 1484 y Fg(8)1518 1558 y(<)1518 -1708 y(:)1633 1573 y Fw(tt)83 b Fu(if)31 b Ft(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 b Fw(\013)1633 -1741 y(\013)106 b Fu(if)31 b Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 b Fw(tt)715 2010 y -Ft(B)t Fu([)-17 b([)p Fs(b)872 2025 y Fn(1)944 2010 y -Ft(^)33 b Fs(b)1094 2025 y Fn(2)1134 2010 y Fu(])-17 -b(])p Fs(s)132 b Fu(=)1518 1836 y Fg(8)1518 1911 y(<)1518 -2060 y(:)1633 1926 y Fw(tt)83 b Fu(if)31 b Ft(B)t Fu([)-17 -b([)p Fs(b)2050 1941 y Fn(1)2089 1926 y Fu(])g(])q Fs(s)41 -b Fu(=)32 b Fw(tt)g Fu(and)g Ft(B)t Fu([)-17 b([)p Fs(b)2782 -1941 y Fn(2)2822 1926 y Fu(])g(])p Fs(s)41 b Fu(=)32 -b Fw(tt)1633 2093 y(\013)106 b Fu(if)31 b Ft(B)t Fu([)-17 -b([)p Fs(b)2050 2108 y Fn(1)2089 2093 y Fu(])g(])q Fs(s)41 -b Fu(=)32 b Fw(\013)h Fu(or)f Ft(B)t Fu([)-17 b([)p Fs(b)2690 -2108 y Fn(2)2730 2093 y Fu(])g(])p Fs(s)41 b Fu(=)32 -b Fw(\013)p 3753 2160 V 283 2163 3473 4 v 991 2323 a -Fu(T)-8 b(able)33 b(1.2:)43 b(The)33 b(seman)m(tics)g(of)f(b)s(o)s -(olean)f(expressions)430 2588 y(The)g(v)-5 b(alues)31 -b(of)f(b)s(o)s(olean)f(expressions)k(are)d(truth)h(v)-5 -b(alues)30 b(so)h(in)f(a)g(similar)e(w)m(a)m(y)k(w)m(e)f(shall)283 -2709 y(de\014ne)j(their)e(meanings)g(b)m(y)h(a)g(\(total\))e(function)h -(from)f Fw(State)i Fu(to)f Fw(T)p Fu(:)527 2882 y Ft(B)t -Fu(:)43 b Fw(Bexp)33 b Ft(!)f Fu(\()p Fw(State)h Ft(!)f -Fw(T)p Fu(\))283 3055 y(Here)i Fw(T)e Fu(consists)i(of)e(the)h(truth)f -(v)-5 b(alues)33 b Fw(tt)f Fu(\(for)f(true\))i(and)g -Fw(\013)g Fu(\(for)f(false\).)430 3176 y(Using)g Ft(A)h -Fu(w)m(e)h(can)f(de\014ne)h Ft(B)i Fu(b)m(y)e(the)f(seman)m(tic)g -(clauses)h(of)e(T)-8 b(able)33 b(1.2.)44 b(Again)32 b(w)m(e)i(ha)m(v)m -(e)283 3296 y(the)h(distinction)e(b)s(et)m(w)m(een)k(syn)m(tax)f -(\(e.g.)49 b Ft(\024)35 b Fu(on)f(the)h(left-hand)f(side\))g(and)h -(seman)m(tics)g(\(e.g.)283 3416 y Fe(\024)e Fu(on)g(the)g(righ)m -(t-hand)e(side\).)283 3604 y Fw(Exercise)37 b(1.8)49 -b Fu(Assume)33 b(that)g Fs(s)40 b Fr(x)33 b Fu(=)f Fw(3)h -Fu(and)g(determine)f Ft(B)s Fu([)-17 b([)q Ft(:)p Fu(\()p -Fr(x)33 b Fu(=)f Fr(1)p Fu(\)])-17 b(])q Fs(s)8 b Fu(.)579 -b Fh(2)283 3793 y Fw(Exercise)37 b(1.9)49 b Fu(Pro)m(v)m(e)38 -b(that)e(the)h(equations)g(of)f(T)-8 b(able)37 b(1.2)f(de\014ne)i(a)e -(total)f(function)i Ft(B)j Fu(in)283 3913 y Fw(Bexp)33 -b Ft(!)f Fu(\()p Fw(State)h Ft(!)f Fw(T)p Fu(\).)2380 -b Fh(2)283 4101 y Fw(Exercise)37 b(1.10)49 b Fu(The)26 -b(syn)m(tactic)g(category)g Fw(Bexp)2211 4065 y Fi(0)2260 -4101 y Fu(is)e(de\014ned)j(as)f(the)f(follo)m(wing)e(extension)283 -4221 y(of)33 b Fw(Bexp)p Fu(:)577 4386 y Fs(b)106 b Fu(::=)99 -b Fr(true)34 b Ft(j)e Fr(false)i Ft(j)e Fs(a)1661 4401 -y Fn(1)1733 4386 y Fu(=)h Fs(a)1899 4401 y Fn(2)1971 -4386 y Ft(j)f Fs(a)2088 4401 y Fn(1)2160 4386 y Ft(6)p -Fu(=)h Fs(a)2326 4401 y Fn(2)2398 4386 y Ft(j)f Fs(a)2515 -4401 y Fn(1)2587 4386 y Ft(\024)h Fs(a)2754 4401 y Fn(2)2827 -4386 y Ft(j)f Fs(a)2944 4401 y Fn(1)3016 4386 y Ft(\025)h -Fs(a)3183 4401 y Fn(2)830 4554 y Ft(j)99 b Fs(a)1014 -4569 y Fn(1)1087 4554 y Fo(<)32 b Fs(a)1252 4569 y Fn(2)1324 -4554 y Ft(j)g Fs(a)1441 4569 y Fn(1)1514 4554 y Fo(>)g -Fs(a)1679 4569 y Fn(2)1751 4554 y Ft(j)g(:)q Fs(b)38 -b Ft(j)32 b Fs(b)2072 4569 y Fn(1)2144 4554 y Ft(^)h -Fs(b)2294 4569 y Fn(2)2366 4554 y Ft(j)f Fs(b)2477 4569 -y Fn(1)2549 4554 y Ft(_)h Fs(b)2699 4569 y Fn(2)830 4721 -y Ft(j)99 b Fs(b)1008 4736 y Fn(1)1080 4721 y Ft(\))32 -b Fs(b)1263 4736 y Fn(2)1335 4721 y Ft(j)h Fs(b)1447 -4736 y Fn(1)1518 4721 y Ft(,)g Fs(b)1702 4736 y Fn(2)283 -4888 y Fu(Giv)m(e)g(a)f Fs(c)-5 b(omp)g(ositional)41 -b Fu(extension)34 b(of)e(the)h(seman)m(tic)f(function)g -Ft(B)k Fu(of)c(T)-8 b(able)32 b(1.2.)430 5008 y(Tw)m(o)h(b)s(o)s(olean) -e(expressions)k Fs(b)1572 5023 y Fn(1)1644 5008 y Fu(and)d -Fs(b)1884 5023 y Fn(2)1956 5008 y Fu(are)h Fs(e)-5 b(quivalent)41 -b Fu(if)32 b(for)g(all)e(states)k Fs(s)8 b Fu(,)527 5181 -y Ft(B)t Fu([)-17 b([)p Fs(b)684 5196 y Fn(1)724 5181 -y Fu(])g(])p Fs(s)41 b Fu(=)32 b Ft(B)t Fu([)-17 b([)p -Fs(b)1107 5196 y Fn(2)1147 5181 y Fu(])g(])p Fs(s)283 -5355 y Fu(Sho)m(w)35 b(that)e(for)f(eac)m(h)i Fs(b)1174 -5319 y Fi(0)1231 5355 y Fu(of)e Fw(Bexp)1594 5319 y Fi(0)1651 -5355 y Fu(there)i(exists)g(a)f(b)s(o)s(olean)f(expression)i -Fs(b)39 b Fu(of)33 b Fw(Bexp)g Fu(suc)m(h)283 5475 y(that)g -Fs(b)546 5439 y Fi(0)602 5475 y Fu(and)f Fs(b)39 b Fu(are)32 -b(equiv)-5 b(alen)m(t.)2186 b Fh(2)p eop -%%Page: 15 25 -15 24 bop 0 130 a Fw(1.4)112 b(Prop)s(erties)36 b(of)i(the)f(seman)m -(tics)1763 b(15)p 0 193 3473 4 v 0 515 a Fj(1.4)161 b(Prop)t(erties)53 -b(of)h(the)f(seman)l(tics)0 737 y Fu(Later)29 b(in)g(the)h(b)s(o)s(ok)g -(w)m(e)g(shall)e(b)s(e)i(in)m(terested)h(in)e(t)m(w)m(o)h(kinds)g(of)f -(prop)s(erties)g(for)h(expressions.)0 858 y(One)39 b(is)g(that)f(their) -g(v)-5 b(alues)39 b(do)g(not)g(dep)s(end)h(on)e(v)-5 -b(alues)39 b(of)g(v)-5 b(ariables)37 b(that)i(do)f(not)h(o)s(ccur)0 -978 y(in)h(them.)67 b(The)41 b(other)g(is)f(that)g(if)g(w)m(e)h -(replace)g(a)f(v)-5 b(ariable)39 b(with)h(an)g(expression)i(then)f(w)m -(e)0 1098 y(could)d(as)h(w)m(ell)e(ha)m(v)m(e)j(made)e(a)g(similar)d(c) -m(hange)40 b(in)d(the)i(state.)61 b(W)-8 b(e)39 b(shall)e(formalize)f -(these)0 1219 y(prop)s(erties)c(b)s(elo)m(w)h(and)g(pro)m(v)m(e)g(that) -g(they)g(do)g(hold.)0 1516 y Fp(F)-11 b(ree)45 b(v)-7 -b(ariables)0 1704 y Fu(The)27 b Fs(fr)-5 b(e)g(e)29 b(variables)34 -b Fu(of)26 b(an)g(arithmetic)f(expression)i Fs(a)34 b -Fu(is)26 b(de\014ned)i(to)e(b)s(e)h(the)g(set)g(of)f(v)-5 -b(ariables)0 1824 y(o)s(ccurring)41 b(in)f(it.)69 b(F)-8 -b(ormally)g(,)41 b(w)m(e)h(ma)m(y)f(giv)m(e)h(a)f(comp)s(ositional)d -(de\014nition)i(of)h(the)h(subset)0 1944 y(FV\()p Fs(a)7 -b Fu(\))32 b(of)h Fw(V)-9 b(ar)p Fu(:)294 2152 y(FV\()p -Fs(n)7 b Fu(\))373 b(=)99 b Ft(;)294 2319 y Fu(FV\()p -Fs(x)12 b Fu(\))378 b(=)99 b Ft(f)33 b Fs(x)44 b Ft(g)294 -2487 y Fu(FV\()p Fs(a)526 2502 y Fn(1)598 2487 y Fu(+)32 -b Fs(a)763 2502 y Fn(2)803 2487 y Fu(\))101 b(=)e(FV\()p -Fs(a)1349 2502 y Fn(1)1389 2487 y Fu(\))32 b Ft([)h Fu(FV\()p -Fs(a)1790 2502 y Fn(2)1830 2487 y Fu(\))294 2654 y(FV\()p -Fs(a)526 2669 y Fn(1)598 2654 y Fo(?)f Fs(a)736 2669 -y Fn(2)776 2654 y Fu(\))128 b(=)99 b(FV\()p Fs(a)1349 -2669 y Fn(1)1389 2654 y Fu(\))32 b Ft([)h Fu(FV\()p Fs(a)1790 -2669 y Fn(2)1830 2654 y Fu(\))294 2822 y(FV\()p Fs(a)526 -2837 y Fn(1)598 2822 y Ft(\000)g Fs(a)765 2837 y Fn(2)804 -2822 y Fu(\))100 b(=)f(FV\()p Fs(a)1349 2837 y Fn(1)1389 -2822 y Fu(\))32 b Ft([)h Fu(FV\()p Fs(a)1790 2837 y Fn(2)1830 -2822 y Fu(\))0 3031 y(As)d(an)f(example)g(FV\()p Fr(x)p -Fu(+)p Fr(1)p Fu(\))g(=)g Ft(f)g Fr(x)h Ft(g)f Fu(and)g(FV\()p -Fr(x)p Fu(+)p Fr(y)p Fo(?)p Fr(x)p Fu(\))g(=)g Ft(f)g -Fr(x)p Fu(,)i Fr(y)e Ft(g)p Fu(.)42 b(It)30 b(should)f(b)s(e)g(ob)m -(vious)0 3151 y(that)39 b(only)g(the)h(v)-5 b(ariables)38 -b(in)h(FV\()p Fs(a)7 b Fu(\))39 b(ma)m(y)g(in\015uence)h(the)g(v)-5 -b(alue)39 b(of)g Fs(a)7 b Fu(.)64 b(This)39 b(is)g(formally)0 -3272 y(expressed)c(b)m(y:)p 0 3394 3473 5 v 0 3576 a -Fw(Lemma)i(1.11)49 b Fu(Let)39 b Fs(s)48 b Fu(and)39 -b Fs(s)1158 3540 y Fi(0)1220 3576 y Fu(b)s(e)h(t)m(w)m(o)f(states)h -(satisfying)f(that)f Fs(s)48 b(x)i Fu(=)39 b Fs(s)2839 -3540 y Fi(0)2902 3576 y Fs(x)51 b Fu(for)38 b(all)f Fs(x)51 -b Fu(in)0 3697 y(FV\()p Fs(a)7 b Fu(\).)43 b(Then)34 -b Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)41 -b Fu(=)32 b Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q -Fs(s)1256 3660 y Fi(0)1279 3697 y Fu(.)p 0 3817 V 0 4027 -a Fw(Pro)s(of:)26 b Fu(W)-8 b(e)24 b(shall)e(giv)m(e)h(a)g(fairly)e -(detailed)h(pro)s(of)g(of)h(the)h(lemma)d(using)h(structural)h -(induction)0 4148 y(on)30 b(the)h(arithmetic)d(expressions.)44 -b(W)-8 b(e)31 b(shall)d(\014rst)j(consider)f(the)h(basis)f(elemen)m(ts) -g(of)g Fw(Aexp)p Fu(:)0 4315 y Fw(The)35 b(case)g Fs(n)7 -b Fu(:)48 b(F)-8 b(rom)33 b(T)-8 b(able)34 b(1.1)g(w)m(e)i(ha)m(v)m(e)g -Ft(A)o Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])q Fs(s)42 -b Fu(=)35 b Ft(N)14 b Fu([)-17 b([)q Fs(n)7 b Fu(])-17 -b(])35 b(as)g(w)m(ell)f(as)g Ft(A)p Fu([)-17 b([)p Fs(n)7 -b Fu(])-17 b(])q Fs(s)3043 4279 y Fi(0)3101 4315 y Fu(=)34 -b Ft(N)15 b Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(].)0 4436 -y(So)32 b Ft(A)p Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])p -Fs(s)41 b Fu(=)32 b Ft(A)p Fu([)-17 b([)q Fs(n)7 b Fu(])-17 -b(])p Fs(s)806 4399 y Fi(0)862 4436 y Fu(and)33 b(clearly)f(the)h -(lemma)d(holds)i(in)g(this)g(case.)0 4603 y Fw(The)e(case)h -Fs(x)12 b Fu(:)42 b(F)-8 b(rom)28 b(T)-8 b(able)30 b(1.1)f(w)m(e)i(ha)m -(v)m(e)g Ft(A)p Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])p -Fs(s)38 b Fu(=)30 b Fs(s)38 b(x)j Fu(as)30 b(w)m(ell)g(as)g -Ft(A)o Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])p Fs(s)2862 -4567 y Fi(0)2916 4603 y Fu(=)29 b Fs(s)3069 4567 y Fi(0)3123 -4603 y Fs(x)12 b Fu(.)42 b(F)-8 b(rom)0 4724 y(the)31 -b(assumptions)f(of)g(the)h(lemma)d(w)m(e)j(get)g Fs(s)38 -b(x)k Fu(=)31 b Fs(s)1927 4687 y Fi(0)1980 4724 y Fs(x)42 -b Fu(b)s(ecause)32 b Fs(x)42 b Ft(2)31 b Fu(FV\()p Fs(x)12 -b Fu(\))30 b(so)h(clearly)e(the)0 4844 y(lemma)h(holds)j(in)e(this)i -(case.)146 4966 y(Next)h(w)m(e)f(turn)g(to)f(the)h(comp)s(osite)f -(elemen)m(ts)h(of)f Fw(Aexp)p Fu(:)0 5133 y Fw(The)f(case)g -Fs(a)509 5148 y Fn(1)579 5133 y Fu(+)f Fs(a)742 5148 -y Fn(2)781 5133 y Fu(:)43 b(F)-8 b(rom)29 b(T)-8 b(able)30 -b(1.1)g(w)m(e)h(ha)m(v)m(e)h Ft(A)o Fu([)-17 b([)q Fs(a)2064 -5148 y Fn(1)2134 5133 y Fu(+)30 b Fs(a)2297 5148 y Fn(2)2337 -5133 y Fu(])-17 b(])p Fs(s)39 b Fu(=)30 b Ft(A)o Fu([)-17 -b([)q Fs(a)2733 5148 y Fn(1)2773 5133 y Fu(])g(])p Fs(s)38 -b Fu(+)31 b Ft(A)o Fu([)-17 b([)q Fs(s)3160 5148 y Fn(2)3199 -5133 y Fu(])g(])q Fs(s)38 b Fu(and)0 5254 y(similarly)24 -b Ft(A)p Fu([)-17 b([)p Fs(a)568 5269 y Fn(1)636 5254 -y Fu(+)28 b Fs(a)797 5269 y Fn(2)836 5254 y Fu(])-17 -b(])q Fs(s)922 5218 y Fi(0)973 5254 y Fu(=)28 b Ft(A)o -Fu([)-17 b([)q Fs(a)1251 5269 y Fn(1)1291 5254 y Fu(])g(])p -Fs(s)1376 5218 y Fi(0)1427 5254 y Fu(+)28 b Ft(A)p Fu([)-17 -b([)p Fs(s)1696 5269 y Fn(2)1736 5254 y Fu(])g(])p Fs(s)1821 -5218 y Fi(0)1845 5254 y Fu(.)42 b(Since)28 b Fs(a)2221 -5269 y Fn(i)2273 5254 y Fu(\(for)f(i)g(=)g(1,2\))h(is)f(an)h(immediate) -0 5374 y(sub)s(expression)35 b(of)e Fs(a)789 5389 y Fn(1)862 -5374 y Fu(+)g Fs(a)1028 5389 y Fn(2)1101 5374 y Fu(and)g(FV\()p -Fs(a)1523 5389 y Fn(i)1547 5374 y Fu(\))g Ft(\022)h Fu(FV\()p -Fs(a)1961 5389 y Fn(1)2033 5374 y Fu(+)f Fs(a)2199 5389 -y Fn(2)2239 5374 y Fu(\))g(w)m(e)h(can)g(apply)f(the)g(induction)0 -5494 y(h)m(yp)s(othesis)i(\(that)f(is)g(the)g(lemma\))e(to)i -Fs(a)1534 5509 y Fn(i)1592 5494 y Fu(and)g(get)h Ft(A)o -Fu([)-17 b([)q Fs(a)2122 5509 y Fn(i)2146 5494 y Fu(])g(])p -Fs(s)43 b Fu(=)34 b Ft(A)o Fu([)-17 b([)q Fs(a)2550 5509 -y Fn(i)2574 5494 y Fu(])g(])p Fs(s)2659 5458 y Fi(0)2683 -5494 y Fu(.)48 b(It)34 b(is)g(no)m(w)h(easy)g(to)p eop -%%Page: 16 26 -16 25 bop 251 130 a Fw(16)2575 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v 283 515 a Fu(see)34 b(that)f(the)g(lemma)d(holds)i -(for)g Fs(a)1596 530 y Fn(1)1668 515 y Fu(+)h Fs(a)1834 -530 y Fn(2)1906 515 y Fu(as)g(w)m(ell.)283 683 y Fw(The)38 -b(cases)h Fs(a)851 698 y Fn(1)928 683 y Ft(\000)f Fs(a)1100 -698 y Fn(2)1177 683 y Fu(and)g Fs(a)1429 698 y Fn(1)1506 -683 y Fo(?)f Fs(a)1649 698 y Fn(2)1726 683 y Fu(follo)m(w)f(the)i(same) -g(pattern)f(and)h(are)g(omitted.)57 b(This)283 803 y(completes)33 -b(the)g(pro)s(of.)2529 b Fh(2)430 1009 y Fu(In)41 b(a)f(similar)e(w)m -(a)m(y)k(w)m(e)g(ma)m(y)e(de\014ne)j(the)e(set)g(FV\()p -Fs(b)6 b Fu(\))41 b(of)f(free)h(v)-5 b(ariables)40 b(in)g(a)g(b)s(o)s -(olean)283 1130 y(expression)34 b Fs(b)39 b Fu(b)m(y)577 -1336 y(FV\()p Fr(true)p Fu(\))231 b(=)100 b Ft(;)577 -1504 y Fu(FV\()p Fr(false)p Fu(\))180 b(=)100 b Ft(;)577 -1672 y Fu(FV\()p Fs(a)809 1687 y Fn(1)881 1672 y Fu(=)32 -b Fs(a)1046 1687 y Fn(2)1086 1672 y Fu(\))101 b(=)f(FV\()p -Fs(a)1633 1687 y Fn(1)1672 1672 y Fu(\))33 b Ft([)g Fu(FV\()p -Fs(a)2074 1687 y Fn(2)2113 1672 y Fu(\))577 1839 y(FV\()p -Fs(a)809 1854 y Fn(1)881 1839 y Ft(\024)g Fs(a)1048 1854 -y Fn(2)1088 1839 y Fu(\))99 b(=)h(FV\()p Fs(a)1633 1854 -y Fn(1)1672 1839 y Fu(\))33 b Ft([)g Fu(FV\()p Fs(a)2074 -1854 y Fn(2)2113 1839 y Fu(\))577 2007 y(FV\()p Ft(:)p -Fs(b)6 b Fu(\))318 b(=)100 b(FV\()p Fs(b)6 b Fu(\))577 -2175 y(FV\()p Fs(b)803 2190 y Fn(1)875 2175 y Ft(^)33 -b Fs(b)1025 2190 y Fn(2)1064 2175 y Fu(\))123 b(=)100 -b(FV\()p Fs(b)1627 2190 y Fn(1)1666 2175 y Fu(\))32 b -Ft([)h Fu(FV\()p Fs(b)2061 2190 y Fn(2)2100 2175 y Fu(\))283 -2421 y Fw(Exercise)k(1.12)49 b(\(Essen)m(tial\))31 b -Fu(Let)j Fs(s)41 b Fu(and)34 b Fs(s)2024 2385 y Fi(0)2080 -2421 y Fu(b)s(e)g(t)m(w)m(o)g(states)h(satisfying)d(that)h -Fs(s)42 b(x)j Fu(=)33 b Fs(s)3654 2385 y Fi(0)3711 2421 -y Fs(x)283 2541 y Fu(for)f(all)f Fs(x)44 b Fu(in)32 b(FV\()p -Fs(b)6 b Fu(\).)43 b(Pro)m(v)m(e)34 b(that)f Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)2218 2505 -y Fi(0)2241 2541 y Fu(.)1413 b Fh(2)283 2845 y Fp(Substitutions)283 -3034 y Fu(W)-8 b(e)46 b(shall)d(later)g(b)s(e)i(in)m(terested)h(in)e -(replacing)f(eac)m(h)j(o)s(ccurrence)g(of)e(a)h(v)-5 -b(ariable)42 b Fs(y)54 b Fu(in)44 b(an)283 3155 y(arithmetic)j -(expression)i Fs(a)56 b Fu(with)48 b(another)g(arithmetic)e(expression) -k Fs(a)3003 3170 y Fn(0)3042 3155 y Fu(.)91 b(This)48 -b(is)g(called)283 3275 y Fs(substitution)39 b Fu(and)30 -b(w)m(e)i(write)e Fs(a)7 b Fu([)p Fs(y)i Ft(7!)p Fs(a)1685 -3290 y Fn(0)1725 3275 y Fu(])30 b(for)g(the)h(arithmetic)d(expression)k -(so)f(obtained.)42 b(The)283 3395 y(formal)31 b(de\014nition)g(is)h(as) -h(follo)m(ws:)577 3583 y Fs(n)7 b Fu([)p Fs(y)i Ft(7!)p -Fs(a)879 3598 y Fn(0)919 3583 y Fu(])449 b(=)100 b Fs(n)577 -3840 y(x)12 b Fu([)p Fs(y)d Ft(7!)p Fs(a)874 3855 y Fn(0)913 -3840 y Fu(])455 b(=)1571 3666 y Fg(8)1571 3741 y(<)1571 -3890 y(:)1686 3756 y Fs(a)1743 3771 y Fn(0)1866 3756 -y Fu(if)31 b Fs(x)44 b Fu(=)33 b Fs(y)1686 3923 y(x)135 -b Fu(if)31 b Fs(x)44 b Ft(6)p Fu(=)33 b Fs(y)577 4103 -y Fu(\()p Fs(a)672 4118 y Fn(1)744 4103 y Fu(+)g Fs(a)910 -4118 y Fn(2)949 4103 y Fu(\)[)p Fs(y)9 b Ft(7!)p Fs(a)1227 -4118 y Fn(0)1267 4103 y Fu(])101 b(=)f(\()p Fs(a)1666 -4118 y Fn(1)1705 4103 y Fu([)p Fs(y)9 b Ft(7!)p Fs(a)1945 -4118 y Fn(0)1985 4103 y Fu(]\))32 b(+)h(\()p Fs(a)2286 -4118 y Fn(2)2325 4103 y Fu([)p Fs(y)9 b Ft(7!)p Fs(a)2565 -4118 y Fn(0)2605 4103 y Fu(]\))577 4270 y(\()p Fs(a)672 -4285 y Fn(1)744 4270 y Fo(?)33 b Fs(a)883 4285 y Fn(2)922 -4270 y Fu(\)[)p Fs(y)9 b Ft(7!)p Fs(a)1200 4285 y Fn(0)1240 -4270 y Fu(])128 b(=)100 b(\()p Fs(a)1666 4285 y Fn(1)1705 -4270 y Fu([)p Fs(y)9 b Ft(7!)p Fs(a)1945 4285 y Fn(0)1985 -4270 y Fu(]\))32 b Fo(?)h Fu(\()p Fs(a)2259 4285 y Fn(2)2298 -4270 y Fu([)p Fs(y)9 b Ft(7!)p Fs(a)2538 4285 y Fn(0)2578 -4270 y Fu(]\))577 4438 y(\()p Fs(a)672 4453 y Fn(1)744 -4438 y Ft(\000)33 b Fs(a)911 4453 y Fn(2)951 4438 y Fu(\)[)p -Fs(y)9 b Ft(7!)p Fs(a)1229 4453 y Fn(0)1268 4438 y Fu(])100 -b(=)g(\()p Fs(a)1666 4453 y Fn(1)1705 4438 y Fu([)p Fs(y)9 -b Ft(7!)p Fs(a)1945 4453 y Fn(0)1985 4438 y Fu(]\))32 -b Ft(\000)h Fu(\()p Fs(a)2287 4453 y Fn(2)2327 4438 y -Fu([)p Fs(y)9 b Ft(7!)p Fs(a)2567 4453 y Fn(0)2606 4438 -y Fu(]\))283 4652 y(As)34 b(an)e(example)g(\()p Fr(x)p -Fu(+)p Fr(1)p Fu(\)[)p Fr(x)p Ft(7!)p Fr(3)p Fu(])h(=)g -Fr(3)p Fu(+)p Fr(1)g Fu(and)f(\()p Fr(x)p Fu(+)p Fr(y)p -Fo(?)p Fr(x)p Fu(\)[)p Fr(x)p Ft(7!)q Fr(y)p Ft(\000)p -Fr(5)p Fu(])h(=)g(\()p Fr(y)p Ft(\000)p Fr(5)p Fu(\)+)p -Fr(y)p Fo(?)p Fu(\()p Fr(y)p Ft(\000)p Fr(5)p Fu(\).)430 -4775 y(W)-8 b(e)48 b(also)e(ha)m(v)m(e)j(a)e(notion)f(of)h -(substitution)g(\(or)g(up)s(dating\))f(for)h(states.)89 -b(W)-8 b(e)48 b(de\014ne)283 4895 y Fs(s)8 b Fu([)p Fs(y)h -Ft(7!)p Fs(v)i Fu(])33 b(to)f(b)s(e)h(the)g(state)g(that)f(is)g(as)h -Fs(s)40 b Fu(except)35 b(that)d(the)h(v)-5 b(alue)32 -b(b)s(ound)h(to)f Fs(y)41 b Fu(is)33 b Fs(v)11 b Fu(,)32 -b(that)g(is)527 5198 y(\()p Fs(s)8 b Fu([)p Fs(y)h Ft(7!)p -Fs(v)i Fu(]\))32 b Fs(x)45 b Fu(=)1147 5023 y Fg(8)1147 -5098 y(<)1147 5247 y(:)1262 5113 y Fs(v)176 b Fu(if)31 -b Fs(x)44 b Fu(=)33 b Fs(y)1262 5281 y(s)41 b(x)95 b -Fu(if)31 b Fs(x)44 b Ft(6)p Fu(=)33 b Fs(y)283 5494 y -Fu(The)h(relationship)d(b)s(et)m(w)m(een)j(the)f(t)m(w)m(o)h(concepts)g -(is)e(sho)m(wn)i(in)e(the)h(follo)m(wing)c(exercise:)p -eop -%%Page: 17 27 -17 26 bop 0 130 a Fw(1.4)112 b(Prop)s(erties)36 b(of)i(the)f(seman)m -(tics)1763 b(17)p 0 193 3473 4 v 0 515 a(Exercise)36 -b(1.13)49 b(\(Essen)m(tial\))37 b Fu(Pro)m(v)m(e)k(that)e -Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu([)p Fs(y)i Ft(7!)p -Fs(a)2164 530 y Fn(0)2204 515 y Fu(]])-17 b(])q Fs(s)47 -b Fu(=)39 b Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q(\()p -Fs(s)8 b Fu([)p Fs(y)h Ft(7!A)p Fu([)-17 b([)p Fs(a)3126 -530 y Fn(0)3166 515 y Fu(])g(])q Fs(s)8 b Fu(]\))39 b(for)0 -636 y(all)30 b(states)k Fs(s)8 b Fu(.)2910 b Fh(2)0 864 -y Fw(Exercise)36 b(1.14)49 b(\(Essen)m(tial\))25 b Fu(De\014ne)i -(substitution)f(for)g(b)s(o)s(olean)g(expressions:)42 -b Fs(b)6 b Fu([)p Fs(y)j Ft(7!)p Fs(a)3406 879 y Fn(0)3445 -864 y Fu(])0 984 y(is)44 b(to)h(b)s(e)g(the)h(b)s(o)s(olean)d -(expression)j(that)f(is)f(as)i Fs(b)k Fu(except)d(that)e(all)e(o)s -(ccurrences)j(of)f(the)0 1105 y(v)-5 b(ariable)26 b Fs(y)37 -b Fu(are)28 b(replaced)h(b)m(y)g(the)f(arithmetic)e(expression)k -Fs(a)2268 1120 y Fn(0)2307 1105 y Fu(.)42 b(Pro)m(v)m(e)30 -b(that)e(y)m(our)g(de\014nition)0 1225 y(satis\014es)244 -1429 y Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu([)p Fs(y)j Ft(7!)p -Fs(a)641 1444 y Fn(0)680 1429 y Fu(]])-17 b(])q Fs(s)41 -b Fu(=)32 b Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])q(\()p -Fs(s)8 b Fu([)p Fs(y)h Ft(7!)o(A)p Fu([)-17 b([)q Fs(a)1572 -1444 y Fn(0)1611 1429 y Fu(])g(])q Fs(s)8 b Fu(]\))0 -1632 y(for)32 b(all)f(states)i Fs(s)8 b Fu(.)2761 b Fh(2)p -eop -%%Page: 18 28 -18 27 bop 251 130 a Fw(18)2575 b(1)113 b(In)m(tro)s(duction)p -251 193 3473 4 v eop -%%Page: 19 29 -19 28 bop 0 1180 a Fv(Chapter)78 b(2)0 1595 y(Op)6 b(erational)77 -b(Seman)-6 b(tics)0 2047 y Fu(The)27 b(role)e(of)g(a)h(statemen)m(t)g -(in)f Fw(While)f Fu(is)h(to)h(c)m(hange)h(the)f(state.)41 -b(F)-8 b(or)25 b(example,)i(if)e Fr(x)h Fu(is)f(b)s(ound)0 -2168 y(to)i Fw(3)g Fu(in)g Fs(s)35 b Fu(and)27 b(w)m(e)i(execute)g(the) -f(statemen)m(t)f Fr(x)h Fu(:=)f Fr(x)h Fu(+)f Fr(1)g -Fu(then)h(w)m(e)g(get)g(a)f(new)h(state)g(where)g Fr(x)0 -2288 y Fu(is)k(b)s(ound)h(to)f Fw(4)p Fu(.)44 b(So)33 -b(while)f(the)h(seman)m(tics)g(of)f(arithmetic)e(and)j(b)s(o)s(olean)e -(expressions)k(only)0 2408 y Fs(insp)-5 b(e)g(ct)43 b -Fu(the)34 b(state)h(in)e(order)h(to)g(determine)g(the)g(v)-5 -b(alue)34 b(of)f(the)i(expression,)h(the)e(seman)m(tics)0 -2529 y(of)e(statemen)m(ts)i(will)c Fs(mo)-5 b(dify)41 -b Fu(the)33 b(state)g(as)f(w)m(ell.)146 2649 y(In)38 -b(an)g(op)s(erational)e(seman)m(tics)i(w)m(e)g(are)g(concerned)i(with)d -Fs(how)48 b Fu(to)37 b(execute)j(programs)0 2769 y(and)27 -b(not)g(merely)f(what)h(the)h(results)f(of)g(execution)g(are.)42 -b(More)27 b(precisely)-8 b(,)28 b(w)m(e)g(are)f(in)m(terested)0 -2890 y(in)39 b(ho)m(w)h(the)f(states)i(are)e(mo)s(di\014ed)f(during)h -(the)h(execution)g(of)f(the)h(statemen)m(t.)64 b(W)-8 -b(e)40 b(shall)0 3010 y(consider)33 b(t)m(w)m(o)g(di\013eren)m(t)g -(approac)m(hes)h(to)e(op)s(erational)e(seman)m(tics:)145 -3211 y Ft(\017)49 b Fs(Natur)-5 b(al)36 b(semantics)p -Fu(:)43 b(its)33 b(purp)s(ose)h(is)e(to)h(describ)s(e)h(ho)m(w)g(the)f -Fs(over)-5 b(al)5 b(l)43 b Fu(results)33 b(of)g(exe-)244 -3332 y(cutions)f(are)h(obtained.)145 3535 y Ft(\017)49 -b Fs(Structur)-5 b(al)26 b(op)-5 b(er)g(ational)24 b(semantics)p -Fu(:)37 b(its)21 b(purp)s(ose)i(is)e(to)h(describ)s(e)h(ho)m(w)f(the)g -Fs(individual)244 3655 y(steps)40 b Fu(of)32 b(the)h(computations)f -(tak)m(e)h(place.)0 3856 y(W)-8 b(e)46 b(shall)e(see)i(that)f(for)g -(the)h(language)e Fw(While)g Fu(w)m(e)i(can)g(easily)e(sp)s(ecify)i(b)s -(oth)f(kinds)h(of)0 3977 y(seman)m(tics)41 b(and)g(that)g(they)h(will)d -(b)s(e)i(\\equiv)-5 b(alen)m(t")40 b(in)h(a)f(sense)j(to)e(b)s(e)g -(made)g(clear)f(later.)0 4097 y(Ho)m(w)m(ev)m(er,)33 -b(w)m(e)f(shall)d(also)h(giv)m(e)h(examples)f(of)g(programming)e -(constructs)k(where)g(one)f(of)f(the)0 4217 y(approac)m(hes)k(is)e(sup) -s(erior)g(to)g(the)h(other.)146 4338 y(F)-8 b(or)43 b(b)s(oth)h(kinds)g -(of)f(op)s(erational)e(seman)m(tics,)47 b(the)d(meaning)e(of)h -(statemen)m(ts)i(will)c(b)s(e)0 4458 y(sp)s(eci\014ed)33 -b(b)m(y)h(a)e Fs(tr)-5 b(ansition)35 b(system)p Fu(.)43 -b(It)33 b(will)d(ha)m(v)m(e)k(t)m(w)m(o)f(t)m(yp)s(es)h(of)e -(con\014gurations:)294 4651 y Ft(h)o Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)99 b Fu(represen)m(ting)39 b(that)f(the)g(statemen)m(t) -g Fs(S)49 b Fu(is)38 b(to)f(b)s(e)h(executed)i(from)645 -4771 y(the)33 b(state)g Fs(s)8 b Fu(,)33 b(and)294 4939 -y Fs(s)311 b Fu(represen)m(ting)34 b(a)e(terminal)e(\(that)j(is)f -(\014nal\))g(state.)0 5133 y(The)24 b Fs(terminal)i(c)-5 -b(on\014gur)g(ations)31 b Fu(will)21 b(b)s(e)i(those)h(of)f(the)h -(latter)e(form.)39 b(The)25 b Fs(tr)-5 b(ansition)26 -b(r)-5 b(elation)0 5254 y Fu(will)31 b(then)j(describ)s(e)g(ho)m(w)g -(the)g(execution)g(tak)m(es)h(place.)45 b(The)34 b(di\013erence)g(b)s -(et)m(w)m(een)i(the)e(t)m(w)m(o)0 5374 y(approac)m(hes)40 -b(to)f(op)s(erational)d(seman)m(tics)j(amoun)m(ts)g(to)f(di\013eren)m -(t)i(w)m(a)m(ys)g(of)f(sp)s(ecifying)f(the)0 5494 y(transition)31 -b(relation.)1687 5849 y(19)p eop -%%Page: 20 30 -20 29 bop 251 130 a Fw(20)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 2467 -4 2049 v 609 528 a Fu([ass)761 543 y Fn(ns)833 528 y -Fu(])372 b Ft(h)p Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])609 -743 y([skip)807 758 y Fn(ns)879 743 y Fu(])326 b Ft(h)p -Fr(skip)p Fu(,)34 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)609 1035 -y Fu([comp)864 1050 y Fn(ns)935 1035 y Fu(])1242 948 -y Ft(h)p Fs(S)1348 963 y Fn(1)1387 948 y Fu(,)h Fs(s)8 -b Ft(i)32 b(!)g Fs(s)1746 912 y Fi(0)1770 948 y Fu(,)g -Ft(h)p Fs(S)1935 963 y Fn(2)1974 948 y Fu(,)h Fs(s)2082 -912 y Fi(0)2105 948 y Ft(i)f(!)h Fs(s)2357 912 y Fi(00)p -1242 1012 1158 4 v 1481 1116 a Ft(h)o Fs(S)1586 1131 -y Fn(1)1626 1116 y Fu(;)p Fs(S)1720 1131 y Fn(2)1759 -1116 y Fu(,)g Fs(s)8 b Ft(i)32 b(!)g Fs(s)2118 1080 y -Fi(00)609 1397 y Fu([if)706 1361 y Fn(tt)694 1422 y(ns)764 -1397 y Fu(])1658 1310 y Ft(h)p Fs(S)1764 1325 y Fn(1)1803 -1310 y Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)2162 1274 y -Fi(0)p 1242 1374 1360 4 v 1242 1478 a Ft(h)p Fr(if)h -Fs(b)38 b Fr(then)c Fs(S)1804 1493 y Fn(1)1876 1478 y -Fr(else)f Fs(S)2180 1493 y Fn(2)2220 1478 y Fu(,)f Fs(s)8 -b Ft(i)33 b(!)f Fs(s)2579 1442 y Fi(0)2677 1397 y Fu(if)f -Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fw(tt)609 1759 y Fu([if)706 1723 y Fn(\013)694 -1784 y(ns)764 1759 y Fu(])1658 1673 y Ft(h)p Fs(S)1764 -1688 y Fn(2)1803 1673 y Fu(,)h Fs(s)8 b Ft(i)32 b(!)g -Fs(s)2162 1636 y Fi(0)p 1242 1736 V 1242 1841 a Ft(h)p -Fr(if)h Fs(b)38 b Fr(then)c Fs(S)1804 1856 y Fn(1)1876 -1841 y Fr(else)f Fs(S)2180 1856 y Fn(2)2220 1841 y Fu(,)f -Fs(s)8 b Ft(i)33 b(!)f Fs(s)2579 1804 y Fi(0)2677 1759 -y Fu(if)f Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p -Fs(s)41 b Fu(=)32 b Fw(\013)609 2121 y Fu([while)871 -2085 y Fn(tt)859 2146 y(ns)930 2121 y Fu(])1242 2035 -y Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1707 -1998 y Fi(0)1730 2035 y Fu(,)h Ft(h)p Fr(while)g Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)2510 1998 y Fi(0)2534 -2035 y Ft(i)g(!)g Fs(s)2785 1998 y Fi(00)p 1242 2098 -1586 4 v 1528 2203 a Ft(h)o Fr(while)i Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 b(!)h Fs(s)2500 -2166 y Fi(00)2903 2121 y Fu(if)e Ft(B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 b Fw(tt)609 -2406 y Fu([while)871 2370 y Fn(\013)859 2431 y(ns)930 -2406 y Fu(])275 b Ft(h)p Fr(while)34 b Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)41 -b Fu(if)31 b Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q Fs(s)40 b Fu(=)33 b Fw(\013)p 3753 2467 4 2049 -v 283 2470 3473 4 v 1166 2631 a Fu(T)-8 b(able)32 b(2.1:)44 -b(Natural)31 b(seman)m(tics)i(for)f Fw(While)283 2881 -y Fj(2.1)161 b(Natural)55 b(seman)l(tics)283 3100 y Fu(In)34 -b(a)f(natural)e(seman)m(tics)j(w)m(e)g(are)f(concerned)i(with)d(the)i -(relationship)d(b)s(et)m(w)m(een)k(the)e Fs(initial)283 -3220 y Fu(and)j(the)g Fs(\014nal)45 b Fu(state)36 b(of)f(an)g -(execution.)53 b(Therefore)37 b(the)f(transition)e(relation)f(will)g -(sp)s(ecify)283 3340 y(the)40 b(relationship)d(b)s(et)m(w)m(een)k(the)f -(initial)35 b(state)k(and)h(the)f(\014nal)f(state)i(for)e(eac)m(h)i -(statemen)m(t.)283 3461 y(W)-8 b(e)33 b(shall)f(write)g(a)g(transition) -f(as)527 3640 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(!)g Fs(s)992 3604 y Fi(0)283 3819 y Fu(In)m(tuitiv)m(ely)38 -b(this)f(means)h(that)f(the)i(execution)f(of)f Fs(S)50 -b Fu(from)36 b Fs(s)46 b Fu(will)36 b(terminate)g(and)i(the)g(re-)283 -3940 y(sulting)32 b(state)h(will)d(b)s(e)j Fs(s)1208 -3904 y Fi(0)1231 3940 y Fu(.)430 4060 y(The)i(de\014nition)e(of)h -Ft(!)g Fu(is)g(giv)m(en)g(b)m(y)h(the)g(rules)f(of)g(T)-8 -b(able)34 b(2.1.)48 b(A)34 b Fs(rule)42 b Fu(has)35 b(the)f(general)283 -4181 y(form)537 4323 y Ft(h)p Fs(S)643 4338 y Fn(1)682 -4323 y Fu(,)f Fs(s)790 4338 y Fn(1)829 4323 y Ft(i)g(!)f -Fs(s)1081 4286 y Fi(0)1081 4347 y Fn(1)1120 4323 y Fu(,)h -Ft(\001)17 b(\001)g(\001)n Fu(,)33 b Ft(h)p Fs(S)1462 -4338 y Fn(n)1505 4323 y Fu(,)f Fs(s)1612 4338 y Fn(n)1656 -4323 y Ft(i)g(!)g Fs(s)1907 4286 y Fi(0)1907 4347 y Fn(n)p -537 4386 1414 4 v 1000 4491 a Ft(h)p Fs(S)12 b Fu(,)32 -b Fs(s)8 b Ft(i)32 b(!)h Fs(s)1465 4454 y Fi(0)2026 4409 -y Fu(if)e Ft(\001)17 b(\001)g(\001)283 4652 y Fu(where)40 -b Fs(S)638 4667 y Fn(1)677 4652 y Fu(,)g Ft(\001)17 b(\001)g(\001)n -Fu(,)39 b Fs(S)993 4667 y Fn(n)1074 4652 y Fu(are)g Fs(imme)-5 -b(diate)38 b(c)-5 b(onstituents)47 b Fu(of)37 b Fs(S)50 -b Fu(or)38 b(are)g(statemen)m(ts)h Fs(c)-5 b(onstructe)g(d)283 -4772 y(fr)g(om)43 b Fu(the)35 b(immediate)e(constituen)m(ts)j(of)f -Fs(S)12 b Fu(.)35 b(A)g(rule)g(has)h(a)e(n)m(um)m(b)s(er)i(of)f -Fs(pr)-5 b(emises)42 b Fu(\(written)283 4893 y(ab)s(o)m(v)m(e)29 -b(the)f(solid)f(line\))f(and)i(one)g Fs(c)-5 b(onclusion)34 -b Fu(\(written)28 b(b)s(elo)m(w)g(the)g(solid)e(line\).)41 -b(A)28 b(rule)f(ma)m(y)283 5013 y(also)32 b(ha)m(v)m(e)i(a)e(n)m(um)m -(b)s(er)h(of)e Fs(c)-5 b(onditions)40 b Fu(\(written)32 -b(to)g(the)h(righ)m(t)f(of)g(the)g(solid)f(line\))g(that)i(ha)m(v)m(e) -283 5133 y(to)j(b)s(e)g(ful\014lled)e(whenev)m(er)k(the)e(rule)g(is)f -(applied.)52 b(Rules)36 b(with)f(an)h(empt)m(y)g(set)g(of)g(premises) -283 5254 y(are)d(called)e Fs(axioms)40 b Fu(and)33 b(the)g(solid)e -(line)g(is)h(then)h(omitted.)430 5374 y(In)m(tuitiv)m(ely)-8 -b(,)32 b(the)g(axiom)e([ass)1531 5389 y Fn(ns)1604 5374 -y Fu(])i(sa)m(ys)h(that)f(in)f(a)h(state)h Fs(s)8 b Fu(,)32 -b Fs(x)44 b Fu(:=)32 b Fs(a)39 b Fu(is)32 b(executed)i(to)e(yield)283 -5494 y(a)38 b(\014nal)f(state)h Fs(s)8 b Fu([)p Fs(x)k -Ft(7!)o(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 -b Fu(])38 b(whic)m(h)g(is)f(as)h Fs(s)45 b Fu(except)40 -b(that)d Fs(x)49 b Fu(has)38 b(the)g(v)-5 b(alue)37 b -Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 -b Fu(.)59 b(This)p eop -%%Page: 21 31 -21 30 bop 0 130 a Fw(2.1)112 b(Natural)37 b(seman)m(tics)2216 -b(21)p 0 193 3473 4 v 0 515 a Fu(is)45 b(really)f(an)i -Fs(axiom)g(schema)52 b Fu(b)s(ecause)47 b Fs(x)12 b Fu(,)49 -b Fs(a)j Fu(and)46 b Fs(s)54 b Fu(are)45 b(meta-v)-5 -b(ariables)44 b(standing)h(for)0 636 y(arbitrary)33 b(v)-5 -b(ariables,)33 b(arithmetic)e(expressions)36 b(and)d(states)i(but)f(w)m -(e)h(shall)d(simply)g(use)j(the)0 756 y(term)h(axiom)f(for)h(this.)56 -b(W)-8 b(e)37 b(obtain)e(an)i Fs(instanc)-5 b(e)43 b -Fu(of)36 b(the)h(axiom)e(b)m(y)j(selecting)e(particular)0 -877 y(v)-5 b(ariables,)30 b(arithmetic)e(expressions)k(and)f(states.)43 -b(As)31 b(an)g(example,)f(if)f Fs(s)2725 892 y Fn(0)2795 -877 y Fu(is)h(the)h(state)g(that)0 997 y(assigns)i(the)g(v)-5 -b(alue)32 b Fw(0)g Fu(to)h(all)d(v)-5 b(ariables)31 b(then)244 -1188 y Ft(h)p Fr(x)h Fu(:=)h Fr(x)p Fu(+)p Fr(1)p Fu(,)g -Fs(s)788 1203 y Fn(0)827 1188 y Ft(i)g(!)f Fs(s)1079 -1203 y Fn(0)1118 1188 y Fu([)p Fr(x)p Ft(7!)p Fw(1)p -Fu(])0 1379 y(is)i(an)f(instance)i(of)e([ass)882 1394 -y Fn(ns)954 1379 y Fu(])h(b)s(ecause)i Fs(x)45 b Fu(is)34 -b(instan)m(tiated)f(to)h Fr(x)p Fu(,)h Fs(a)41 b Fu(to)33 -b Fr(x)p Fu(+)p Fr(1)p Fu(,)i Fs(s)42 b Fu(to)34 b Fs(s)3045 -1394 y Fn(0)3084 1379 y Fu(,)h(and)f(the)0 1499 y(v)-5 -b(alue)32 b Ft(A)p Fu([)-17 b([)p Fr(x)p Fu(+)p Fr(1)p -Fu(])g(])q Fs(s)633 1514 y Fn(0)705 1499 y Fu(is)32 b(determined)h(to)f -(b)s(e)h Fw(1)p Fu(.)146 1619 y(Similarly)23 b([skip)753 -1634 y Fn(ns)824 1619 y Fu(])j(is)g(an)g(axiom)f(and,)j(in)m(tuitiv)m -(ely)-8 b(,)26 b(it)f(sa)m(ys)i(that)f Fr(skip)i Fu(do)s(es)e(not)h(c)m -(hange)0 1740 y(the)33 b(state.)44 b(Letting)32 b Fs(s)836 -1755 y Fn(0)908 1740 y Fu(b)s(e)h(as)f(ab)s(o)m(v)m(e)i(w)m(e)f(obtain) -244 1931 y Ft(h)p Fr(skip)p Fu(,)g Fs(s)595 1946 y Fn(0)635 -1931 y Ft(i)f(!)g Fs(s)886 1946 y Fn(0)0 2122 y Fu(as)h(an)f(instance)h -(of)f(the)h(axiom)e([skip)1402 2137 y Fn(ns)1474 2122 -y Fu(].)146 2242 y(In)m(tuitiv)m(ely)-8 b(,)35 b(the)f(rule)g([comp) -1263 2257 y Fn(ns)1334 2242 y Fu(])g(sa)m(ys)i(that)e(to)g(execute)i -Fs(S)2356 2257 y Fn(1)2395 2242 y Fu(;)p Fs(S)2489 2257 -y Fn(2)2563 2242 y Fu(from)d(state)i Fs(s)42 b Fu(w)m(e)35 -b(m)m(ust)0 2362 y(\014rst)k(execute)i Fs(S)630 2377 -y Fn(1)708 2362 y Fu(from)d Fs(s)8 b Fu(.)63 b(Assuming)38 -b(that)h(this)f(yields)h(a)g(\014nal)f(state)h Fs(s)2836 -2326 y Fi(0)2898 2362 y Fu(w)m(e)h(shall)e(then)0 2483 -y(execute)26 b Fs(S)408 2498 y Fn(2)472 2483 y Fu(from)d -Fs(s)742 2447 y Fi(0)765 2483 y Fu(.)41 b(The)25 b(premises)f(of)g(the) -h(rule)f(are)g(concerned)i(with)e(the)g(t)m(w)m(o)h(statemen)m(ts)0 -2603 y Fs(S)67 2618 y Fn(1)134 2603 y Fu(and)i Fs(S)385 -2618 y Fn(2)451 2603 y Fu(whereas)i(the)f(conclusion)f(expresses)j(a)d -(prop)s(ert)m(y)h(of)f(the)h(comp)s(osite)e(statemen)m(t)0 -2723 y(itself.)42 b(The)34 b(follo)m(wing)c(is)i(an)g -Fs(instanc)-5 b(e)39 b Fu(of)32 b(the)h(rule:)254 2896 -y Ft(h)p Fr(skip)p Fu(,)g Fs(s)605 2911 y Fn(0)645 2896 -y Ft(i)f(!)g Fs(s)896 2911 y Fn(0)936 2896 y Fu(,)g Ft(h)p -Fr(x)h Fu(:=)f Fr(x)p Fu(+)p Fr(1)p Fu(,)h Fs(s)1539 -2911 y Fn(0)1579 2896 y Ft(i)f(!)g Fs(s)1830 2911 y Fn(0)1870 -2896 y Fu([)p Fr(x)p Ft(7!)p Fw(1)p Fu(])p 254 2960 1878 -4 v 492 3064 a Ft(h)p Fr(skip)p Fu(;)i Fr(x)e Fu(:=)h -Fr(x)p Fu(+)p Fr(1)p Fu(,)g Fs(s)1301 3079 y Fn(0)1340 -3064 y Ft(i)g(!)f Fs(s)1592 3079 y Fn(0)1631 3064 y Fu([)p -Fr(x)p Ft(7!)p Fw(1)p Fu(])0 3241 y(Here)j Fs(S)299 3256 -y Fn(1)372 3241 y Fu(is)f(instan)m(tiated)f(to)g Fr(skip)p -Fu(,)j Fs(S)1467 3256 y Fn(2)1540 3241 y Fu(to)e Fr(x)g -Fu(:=)g Fr(x)g Fu(+)g Fr(1)p Fu(,)h Fs(s)42 b Fu(and)34 -b Fs(s)2512 3205 y Fi(0)2569 3241 y Fu(are)g(b)s(oth)g(instan)m(tiated) -0 3361 y(to)e Fs(s)167 3376 y Fn(0)239 3361 y Fu(and)h -Fs(s)477 3325 y Fi(00)552 3361 y Fu(is)f(instan)m(tiated)g(to)g -Fs(s)1357 3376 y Fn(0)1397 3361 y Fu([)p Fr(x)p Ft(7!)p -Fw(1)p Fu(].)43 b(Similarly)254 3540 y Ft(h)p Fr(skip)p -Fu(,)33 b Fs(s)605 3555 y Fn(0)645 3540 y Ft(i)f(!)g -Fs(s)896 3555 y Fn(0)936 3540 y Fu([)p Fr(x)p Ft(7!)p -Fw(5)p Fu(],)g Ft(h)p Fr(x)h Fu(:=)f Fr(x)p Fu(+)p Fr(1)p -Fu(,)h Fs(s)1800 3555 y Fn(0)1840 3540 y Fu([)p Fr(x)p -Ft(7!)p Fw(5)p Fu(])p Ft(i)f(!)h Fs(s)2353 3555 y Fn(0)p -254 3603 2139 4 v 753 3708 a Ft(h)p Fr(skip)p Fu(;)h -Fr(x)f Fu(:=)f Fr(x)p Fu(+)p Fr(1)p Fu(,)h Fs(s)1562 -3723 y Fn(0)1602 3708 y Ft(i)f(!)g Fs(s)1853 3723 y Fn(0)0 -3886 y Fu(is)37 b(an)g(instance)g(of)g([comp)998 3901 -y Fn(ns)1069 3886 y Fu(])g(although)f(it)h(is)f(less)i(in)m(teresting)f -(b)s(ecause)h(its)f(premises)g(can)0 4007 y(nev)m(er)d(b)s(e)f(deriv)m -(ed)g(from)f(the)h(axioms)e(and)i(rules)f(of)g(T)-8 b(able)33 -b(2.1.)146 4127 y(F)-8 b(or)24 b(the)g Fr(if)p Fu(-construct)i(w)m(e)f -(ha)m(v)m(e)g(t)m(w)m(o)g(rules.)41 b(The)25 b(\014rst)g(one,)h([if) -2505 4091 y Fn(tt)2493 4152 y(ns)2563 4127 y Fu(],)g(sa)m(ys)g(that)e -(to)f(execute)0 4247 y Fr(if)41 b Fs(b)46 b Fr(then)41 -b Fs(S)546 4262 y Fn(1)625 4247 y Fr(else)g Fs(S)937 -4262 y Fn(2)1016 4247 y Fu(w)m(e)h(simply)c(execute)k -Fs(S)1911 4262 y Fn(1)1991 4247 y Fu(pro)m(vided)e(that)g -Fs(b)46 b Fu(ev)-5 b(aluates)40 b(to)g Fw(tt)f Fu(in)0 -4368 y(the)46 b(state.)81 b(The)47 b(other)e(rule,)j([if)1311 -4332 y Fn(\013)1299 4392 y(ns)1369 4368 y Fu(],)h(sa)m(ys)d(that)f(if)f -Fs(b)51 b Fu(ev)-5 b(aluates)45 b(to)g Fw(\013)h Fu(then)g(to)e -(execute)0 4488 y Fr(if)33 b Fs(b)38 b Fr(then)c Fs(S)523 -4503 y Fn(1)595 4488 y Fr(else)f Fs(S)899 4503 y Fn(2)980 -4488 y Fu(w)m(e)42 b(just)g(execute)h Fs(S)1759 4503 -y Fn(2)1799 4488 y Fu(.)69 b(T)-8 b(aking)41 b Fs(s)2277 -4503 y Fn(0)2358 4488 y Fr(x)h Fu(=)f Fw(0)g Fu(the)h(follo)m(wing)d -(is)h(an)0 4609 y(instance)33 b(of)f(the)h(rule)f([if)951 -4572 y Fn(tt)939 4633 y(ns)1009 4609 y Fu(]:)912 4787 -y Ft(h)p Fr(skip)p Fu(,)h Fs(s)1263 4802 y Fn(0)1303 -4787 y Ft(i)f(!)g Fs(s)1554 4802 y Fn(0)p 254 4850 1999 -4 v 254 4955 a Ft(h)p Fr(if)h(x)f Fu(=)h Fr(0)g(then)g(skip)h(else)f(x) -g Fu(:=)g Fr(x)p Fu(+)p Fr(1)p Fu(,)g Fs(s)1922 4970 -y Fn(0)1961 4955 y Ft(i)f(!)h Fs(s)2213 4970 y Fn(0)0 -5133 y Fu(b)s(ecause)40 b Ft(B)t Fu([)-17 b([)p Fr(x)39 -b Fu(=)g Fr(0)p Fu(])-17 b(])q Fs(s)815 5148 y Fn(0)893 -5133 y Fu(=)39 b Fw(tt)p Fu(.)61 b(Ho)m(w)m(ev)m(er,)43 -b(had)c(it)f(b)s(een)h(the)h(case)f(that)g Fs(s)2801 -5148 y Fn(0)2879 5133 y Fr(x)g Ft(6)p Fu(=)g Fw(0)g Fu(then)g(it)0 -5254 y(w)m(ould)31 b(not)g(b)s(e)h(an)f(instance)g(of)g(the)h(rule)f -([if)1667 5218 y Fn(tt)1655 5278 y(ns)1725 5254 y Fu(])g(b)s(ecause)i -(then)f Ft(B)s Fu([)-17 b([)q Fr(x)31 b Fu(=)g Fr(0)p -Fu(])-17 b(])q Fs(s)2796 5269 y Fn(0)2867 5254 y Fu(w)m(ould)31 -b(amoun)m(t)0 5374 y(to)26 b Fw(\013)p Fu(.)41 b(F)-8 -b(urthermore)26 b(it)f(w)m(ould)g(not)h(b)s(e)g(an)g(instance)h(of)e -(the)h(rule)g([if)2520 5338 y Fn(\013)2508 5399 y(ns)2578 -5374 y Fu(])g(b)s(ecause)h(the)g(premise)0 5494 y(has)33 -b(the)g(wrong)g(form.)p eop -%%Page: 22 32 -22 31 bop 251 130 a Fw(22)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 430 515 a Fu(Finally)-8 -b(,)28 b(w)m(e)k(ha)m(v)m(e)g(one)f(rule)f(and)h(one)g(axiom)e -(expressing)j(ho)m(w)f(to)f(execute)j(the)e Fr(while)p -Fu(-)283 636 y(construct.)60 b(In)m(tuitiv)m(ely)-8 b(,)38 -b(the)g(meaning)e(of)h(the)h(construct)g Fr(while)h Fs(b)k -Fr(do)38 b Fs(S)50 b Fu(in)36 b(the)i(state)g Fs(s)283 -756 y Fu(can)33 b(b)s(e)g(explained)f(as)h(follo)m(ws:)429 -955 y Ft(\017)48 b Fu(If)29 b(the)g(test)g Fs(b)35 b -Fu(ev)-5 b(aluates)28 b(to)h(true)g(in)e(the)i(state)g -Fs(s)37 b Fu(then)29 b(w)m(e)h(\014rst)f(execute)i(the)e(b)s(o)s(dy)f -(of)527 1076 y(the)33 b(lo)s(op)e(and)i(then)g(con)m(tin)m(ue)g(with)g -(the)g(lo)s(op)e(itself)g(from)g(the)i(state)g(so)g(obtained.)429 -1278 y Ft(\017)48 b Fu(If)35 b(the)h(test)g Fs(b)41 b -Fu(ev)-5 b(aluates)35 b(to)g(false)f(in)h(the)g(state)h -Fs(s)43 b Fu(then)36 b(the)f(execution)h(of)f(the)g(lo)s(op)527 -1398 y(terminates.)283 1597 y(The)47 b(rule)d([while)966 -1561 y Fn(tt)954 1622 y(ns)1025 1597 y Fu(])h(formalizes)e(the)j -(\014rst)f(case)h(where)h Fs(b)k Fu(ev)-5 b(aluates)45 -b(to)g Fw(tt)f Fu(and)h(it)f(sa)m(ys)283 1717 y(that)49 -b(then)h(w)m(e)f(ha)m(v)m(e)i(to)d(execute)j Fs(S)60 -b Fu(follo)m(w)m(ed)48 b(b)m(y)i Fr(while)34 b Fs(b)k -Fr(do)33 b Fs(S)61 b Fu(again.)91 b(The)49 b(axiom)283 -1838 y([while)545 1802 y Fn(\013)533 1862 y(ns)604 1838 -y Fu(])33 b(formalizes)e(the)j(second)g(p)s(ossibilit)m(y)d(and)j -(states)g(that)f(if)f Fs(b)39 b Fu(ev)-5 b(aluates)33 -b(to)g Fw(\013)g Fu(then)283 1958 y(w)m(e)41 b(terminate)d(the)h -(execution)h(of)f(the)h Fr(while)p Fu(-construct)h(lea)m(ving)d(the)i -(state)f(unc)m(hanged.)283 2079 y(Note)33 b(that)f(the)h(rule)f([while) -1355 2042 y Fn(tt)1343 2103 y(ns)1413 2079 y Fu(])g(sp)s(eci\014es)i -(the)f(meaning)e(of)g(the)i Fr(while)p Fu(-construct)h(in)e(terms)283 -2199 y(of)d(the)h(meaning)e(of)h(the)h(v)m(ery)h(same)e(construct)i(so) -f(that)f(w)m(e)h(do)g Fs(not)38 b Fu(ha)m(v)m(e)31 b(a)e(comp)s -(ositional)283 2319 y(de\014nition)j(of)g(the)h(seman)m(tics)g(of)f -(statemen)m(ts.)430 2440 y(When)e(w)m(e)g(use)g(the)f(axioms)f(and)h -(rules)g(to)f(deriv)m(e)i(a)f(transition)e Ft(h)p Fs(S)12 -b Fu(,)28 b Fs(s)8 b Ft(i)29 b(!)g Fs(s)3293 2404 y Fi(0)3345 -2440 y Fu(w)m(e)h(obtain)283 2560 y(a)41 b Fs(derivation)h(tr)-5 -b(e)g(e)p Fu(.)68 b(The)42 b Fs(r)-5 b(o)g(ot)50 b Fu(of)40 -b(the)h(deriv)-5 b(ation)40 b(tree)h(is)f Ft(h)p Fs(S)12 -b Fu(,)41 b Fs(s)8 b Ft(i)40 b(!)h Fs(s)3074 2524 y Fi(0)3138 -2560 y Fu(and)g(the)g Fs(le)-5 b(aves)283 2680 y Fu(are)37 -b(instances)g(of)e(axioms.)53 b(The)37 b Fs(internal)h(no)-5 -b(des)44 b Fu(are)36 b(conclusions)g(of)f(instan)m(tiated)h(rules)283 -2801 y(and)k(they)h(ha)m(v)m(e)g(the)f(corresp)s(onding)g(premises)f -(as)h(their)f(immediate)e(sons.)66 b(W)-8 b(e)40 b(request)283 -2921 y(that)c(all)e(the)j(instan)m(tiated)e(conditions)g(of)h(axioms)f -(and)h(rules)g(m)m(ust)g(b)s(e)g(satis\014ed.)55 b(When)283 -3042 y(displa)m(ying)37 b(a)h(deriv)-5 b(ation)37 b(tree)i(it)e(is)g -(common)g(to)h(ha)m(v)m(e)i(the)e(ro)s(ot)g(at)f(the)i(b)s(ottom)e -(rather)283 3162 y(than)28 b(at)e(the)i(top;)g(hence)h(the)e(son)h(is)e -Fs(ab)-5 b(ove)34 b Fu(its)26 b(father.)42 b(A)27 b(deriv)-5 -b(ation)25 b(tree)j(is)e(called)g Fs(simple)283 3282 -y Fu(if)32 b(it)f(is)i(an)f(instance)h(of)f(an)g(axiom,)g(otherwise)h -(it)e(is)h(called)g Fs(c)-5 b(omp)g(osite)7 b Fu(.)283 -3505 y Fw(Example)37 b(2.1)49 b Fu(Let)33 b(us)g(\014rst)g(consider)g -(the)g(statemen)m(t)g(of)f(Chapter)h(1:)527 3704 y(\()p -Fr(z)p Fu(:=)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(y)p Fu(\);)g -Fr(y)p Fu(:=)p Fr(z)283 3903 y Fu(Let)i Fs(s)508 3918 -y Fn(0)582 3903 y Fu(b)s(e)f(the)h(state)f(that)g(maps)g(all)e(v)-5 -b(ariables)33 b(except)j Fr(x)f Fu(and)f Fr(y)h Fu(to)e -Fw(0)i Fu(and)f(has)h Fs(s)3436 3918 y Fn(0)3508 3903 -y Fr(x)d Fu(=)h Fw(5)283 4023 y Fu(and)g Fs(s)521 4038 -y Fn(0)593 4023 y Fr(y)g Fu(=)f Fw(7)p Fu(.)44 b(Then)34 -b(the)f(follo)m(wing)c(is)k(an)f(example)g(of)g(a)g(deriv)-5 -b(ation)31 b(tree:)577 4217 y Ft(h)p Fr(z)p Fu(:=)p Fr(x)p -Fu(,)i Fs(s)929 4232 y Fn(0)969 4217 y Ft(i)f(!)g Fs(s)1220 -4232 y Fn(1)1577 4217 y Ft(h)p Fr(x)p Fu(:=)p Fr(y)p -Fu(,)h Fs(s)1929 4232 y Fn(1)1968 4217 y Ft(i)f(!)h Fs(s)2220 -4232 y Fn(2)p 527 4303 1782 4 v 944 4505 a Ft(h)p Fr(z)p -Fu(:=)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(y)p Fu(,)g Fs(s)1561 -4520 y Fn(0)1601 4505 y Ft(i)f(!)g Fs(s)1852 4520 y Fn(2)2576 -4505 y Ft(h)p Fr(y)p Fu(:=)p Fr(z)p Fu(,)h Fs(s)2928 -4520 y Fn(2)2968 4505 y Ft(i)f(!)g Fs(s)3219 4520 y Fn(3)p -527 4591 2782 4 v 1274 4793 a Ft(h)p Fu(\()p Fr(z)p Fu(:=)p -Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(y)p Fu(\);)g Fr(y)p Fu(:=)p -Fr(z)p Fu(,)g Fs(s)2232 4808 y Fn(0)2271 4793 y Ft(i)g(!)f -Fs(s)2523 4808 y Fn(3)283 4985 y Fu(where)i(w)m(e)g(ha)m(v)m(e)g(used)g -(the)f(abbreviations:)577 5156 y Fs(s)625 5171 y Fn(1)764 -5156 y Fu(=)100 b Fs(s)988 5171 y Fn(0)1027 5156 y Fu([)p -Fr(z)p Ft(7!)p Fw(5)p Fu(])577 5324 y Fs(s)625 5339 y -Fn(2)764 5324 y Fu(=)g Fs(s)988 5339 y Fn(1)1027 5324 -y Fu([)p Fr(x)p Ft(7!)p Fw(7)p Fu(])577 5492 y Fs(s)625 -5507 y Fn(3)764 5492 y Fu(=)g Fs(s)988 5507 y Fn(2)1027 -5492 y Fu([)p Fr(y)p Ft(7!)p Fw(5)p Fu(])p eop -%%Page: 23 33 -23 32 bop 0 130 a Fw(2.1)112 b(Natural)37 b(seman)m(tics)2216 -b(23)p 0 193 3473 4 v 0 515 a Fu(The)40 b(deriv)-5 b(ation)37 -b(tree)j(has)g(three)f(lea)m(v)m(es)i(denoted)f Ft(h)o -Fr(z)p Fu(:=)p Fr(x)p Fu(,)i Fs(s)2331 530 y Fn(0)2370 -515 y Ft(i)d(!)g Fs(s)2635 530 y Fn(1)2674 515 y Fu(,)i -Ft(h)p Fr(x)p Fu(:=)p Fr(y)p Fu(,)g Fs(s)3102 530 y Fn(1)3141 -515 y Ft(i)e(!)g Fs(s)3406 530 y Fn(2)3445 515 y Fu(,)0 -636 y(and)28 b Ft(h)p Fr(y)p Fu(:=)p Fr(z)p Fu(,)h Fs(s)533 -651 y Fn(2)573 636 y Ft(i)e(!)h Fs(s)815 651 y Fn(3)854 -636 y Fu(,)h(corresp)s(onding)f(to)g(three)g(applications)e(of)i(the)g -(axiom)e([ass)3136 651 y Fn(ns)3208 636 y Fu(].)42 b(The)0 -756 y(rule)32 b([comp)450 771 y Fn(ns)521 756 y Fu(])h(has)g(b)s(een)g -(applied)e(t)m(wice.)44 b(One)33 b(instance)g(is)254 -916 y Ft(h)p Fr(z)p Fu(:=)p Fr(x)p Fu(,)g Fs(s)606 931 -y Fn(0)645 916 y Ft(i)f(!)h Fs(s)897 931 y Fn(1)936 916 -y Fu(,)g Ft(h)o Fr(x)p Fu(:=)p Fr(y)p Fu(,)h Fs(s)1348 -931 y Fn(1)1387 916 y Ft(i)e(!)h Fs(s)1639 931 y Fn(2)p -254 980 1425 4 v 492 1084 a Ft(h)p Fr(z)p Fu(:=)p Fr(x)p -Fu(;)g Fr(x)p Fu(:=)p Fr(y)p Fu(,)g Fs(s)1109 1099 y -Fn(0)1149 1084 y Ft(i)f(!)g Fs(s)1400 1099 y Fn(2)0 1245 -y Fu(whic)m(h)j(has)g(b)s(een)g(used)h(to)e(com)m(bine)g(the)g(lea)m(v) -m(es)i Ft(h)p Fr(z)p Fu(:=)p Fr(x)p Fu(,)f Fs(s)2224 -1260 y Fn(0)2264 1245 y Ft(i)f(!)g Fs(s)2519 1260 y Fn(1)2593 -1245 y Fu(and)g Ft(h)p Fr(x)p Fu(:=)p Fr(y)p Fu(,)h Fs(s)3138 -1260 y Fn(1)3178 1245 y Ft(i)f(!)g Fs(s)3433 1260 y Fn(2)0 -1365 y Fu(with)e(the)h(in)m(ternal)f(no)s(de)g(lab)s(elled)f -Ft(h)o Fr(z)p Fu(:=)p Fr(x)p Fu(;)j Fr(x)p Fu(:=)p Fr(y)p -Fu(,)f Fs(s)1964 1380 y Fn(0)2003 1365 y Ft(i)f(!)h Fs(s)2255 -1380 y Fn(2)2294 1365 y Fu(.)44 b(The)33 b(other)g(instance)g(is)254 -1525 y Ft(h)p Fr(z)p Fu(:=)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p -Fr(y)p Fu(,)g Fs(s)871 1540 y Fn(0)910 1525 y Ft(i)g(!)f -Fs(s)1162 1540 y Fn(2)1201 1525 y Fu(,)h Ft(h)p Fr(y)p -Fu(:=)p Fr(z)p Fu(,)g Fs(s)1613 1540 y Fn(2)1652 1525 -y Ft(i)g(!)f Fs(s)1904 1540 y Fn(3)p 254 1589 1690 4 -v 454 1693 a Ft(h)p Fu(\()p Fr(z)p Fu(:=)p Fr(x)p Fu(;)h -Fr(x)p Fu(:=)p Fr(y)p Fu(\);)g Fr(y)p Fu(:=)p Fr(z)p -Fu(,)g Fs(s)1412 1708 y Fn(0)1452 1693 y Ft(i)f(!)g Fs(s)1703 -1708 y Fn(3)0 1854 y Fu(whic)m(h)h(has)f(b)s(een)i(used)f(to)f(com)m -(bine)g(the)g(in)m(ternal)f(no)s(de)i Ft(h)p Fr(z)p Fu(:=)p -Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(y)p Fu(,)f Fs(s)2785 -1869 y Fn(0)2825 1854 y Ft(i)g(!)g Fs(s)3076 1869 y Fn(2)3148 -1854 y Fu(and)g(the)0 1974 y(leaf)g Ft(h)o Fr(y)p Fu(:=)p -Fr(z)p Fu(,)h Fs(s)533 1989 y Fn(2)573 1974 y Ft(i)f(!)g -Fs(s)824 1989 y Fn(3)896 1974 y Fu(with)h(the)g(ro)s(ot)e -Ft(h)p Fu(\()p Fr(z)p Fu(:=)p Fr(x)p Fu(;)i Fr(x)p Fu(:=)p -Fr(y)p Fu(\);)g Fr(y)p Fu(:=)p Fr(z)p Fu(,)g Fs(s)2453 -1989 y Fn(0)2493 1974 y Ft(i)f(!)g Fs(s)2744 1989 y Fn(3)2784 -1974 y Fu(.)587 b Fh(2)146 2161 y Fu(Consider)37 b(no)m(w)f(the)h -(problem)d(of)i(constructing)g(a)g(deriv)-5 b(ation)34 -b(tree)i(for)g(a)f(giv)m(en)h(state-)0 2282 y(men)m(t)43 -b Fs(S)54 b Fu(and)43 b(state)g Fs(s)8 b Fu(.)74 b(The)43 -b(b)s(est)h(w)m(a)m(y)g(to)e(approac)m(h)h(this)f(is)h(to)f(try)h(to)f -(construct)i(the)0 2402 y(tree)37 b(from)f(the)i(ro)s(ot)e(up)m(w)m -(ards.)58 b(So)37 b(w)m(e)h(will)c(start)j(b)m(y)h(\014nding)f(an)g -(axiom)e(or)i(rule)f(with)h(a)0 2523 y(conclusion)g(where)j(the)e -(left-hand)f(side)h(matc)m(hes)h(the)f(con\014guration)f -Ft(h)p Fs(S)12 b Fu(,)38 b Fs(s)8 b Ft(i)p Fu(.)59 b(There)39 -b(are)0 2643 y(t)m(w)m(o)33 b(cases:)145 2816 y Ft(\017)49 -b Fu(If)43 b(it)e(is)h(an)h Fs(axiom)49 b Fu(and)43 b(if)f(the)h -(conditions)f(of)g(the)h(axiom)e(are)i(satis\014ed)g(then)g(w)m(e)244 -2936 y(can)37 b(determine)g(the)h(\014nal)f(state)g(and)h(the)f -(construction)h(of)f(the)g(deriv)-5 b(ation)36 b(tree)i(is)244 -3057 y(completed.)145 3250 y Ft(\017)49 b Fu(If)28 b(it)g(is)g(a)h -Fs(rule)36 b Fu(then)29 b(the)g(next)h(step)f(is)g(to)f(try)h(to)f -(construct)i(deriv)-5 b(ation)27 b(trees)j(for)e(the)244 -3370 y(premises)33 b(of)f(the)h(rule.)44 b(When)34 b(this)e(has)i(b)s -(een)f(done,)h(it)d(m)m(ust)i(b)s(e)g(c)m(hec)m(k)m(ed)j(that)d(the)244 -3490 y(conditions)e(of)g(the)i(rule)e(are)h(ful\014lled,)f(and)h(only)f -(then)i(can)f(w)m(e)h(determine)f(the)g(\014nal)244 3611 -y(state)h(corresp)s(onding)f(to)h Ft(h)o Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)p Fu(.)0 3784 y(Often)25 b(there)h(will)d(b)s(e)i(more) -f(than)i(one)f(axiom)e(or)i(rule)g(that)g(matc)m(hes)g(a)g(giv)m(en)g -(con\014guration)0 3904 y(and)j(then)h(the)f(v)-5 b(arious)28 -b(p)s(ossibilities)d(ha)m(v)m(e)k(to)f(b)s(e)g(insp)s(ected)h(in)e -(order)h(to)g(\014nd)g(a)g(deriv)-5 b(ation)0 4024 y(tree.)53 -b(W)-8 b(e)36 b(shall)e(see)i(later)f(that)g(for)g Fw(While)f -Fu(there)i(will)d(b)s(e)j(at)f(most)g(one)h(deriv)-5 -b(ation)34 b(tree)0 4145 y(for)27 b(eac)m(h)i(transition)e -Ft(h)o Fs(S)12 b Fu(,)28 b Fs(s)8 b Ft(i)28 b(!)g Fs(s)1251 -4109 y Fi(0)1302 4145 y Fu(but)g(that)g(this)g(need)h(not)f(hold)f(in)g -(extensions)i(of)f Fw(While)p Fu(.)0 4332 y Fw(Example)37 -b(2.2)48 b Fu(Consider)33 b(the)g(factorial)e(statemen)m(t:)244 -4505 y Fr(y)p Fu(:=)p Fr(1)p Fu(;)i Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\))0 4678 y(and)g(let)f Fs(s)40 -b Fu(b)s(e)33 b(a)f(state)h(with)f Fs(s)41 b Fr(x)33 -b Fu(=)f Fw(3)p Fu(.)44 b(In)33 b(this)f(example)g(w)m(e)i(shall)d(sho) -m(w)i(that)269 4845 y Ft(h)o Fr(y)p Fu(:=)p Fr(1)p Fu(;)h -Fr(while)f Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g -Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)g Fo(?)f Fr(x)p Fu(;)h -Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(\),)h Fs(s)8 -b Ft(i)32 b(!)g Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(6)p -Fu(][)p Fr(x)p Ft(7!)p Fw(1)p Fu(])277 b(\(*\))0 5013 -y(T)-8 b(o)42 b(do)f(so)h(w)m(e)g(shall)e(sho)m(w)j(that)e(\(*\))g(can) -h(b)s(e)g(obtained)e(from)h(the)h(transition)d(system)k(of)0 -5133 y(T)-8 b(able)37 b(2.1.)56 b(This)37 b(is)g(done)g(b)m(y)h -(constructing)g(a)e(deriv)-5 b(ation)36 b(tree)h(with)g(the)g -(transition)f(\(*\))0 5254 y(as)d(its)f(ro)s(ot.)146 -5374 y(Rather)26 b(than)g(presen)m(ting)h(the)f(complete)g(deriv)-5 -b(ation)24 b(tree)j Fs(T)39 b Fu(in)25 b(one)h(go,)h(w)m(e)g(shall)e -(build)0 5494 y(it)i(in)h(an)g(up)m(w)m(ards)j(manner.)41 -b(Initially)-8 b(,)27 b(w)m(e)i(only)f(kno)m(w)i(that)e(the)h(ro)s(ot)e -(of)h Fs(T)42 b Fu(is)28 b(of)g(the)h(form:)p eop -%%Page: 24 34 -24 33 bop 251 130 a Fw(24)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(h)p Fr(y)p -Fu(:=)p Fr(1)p Fu(;)c Fr(while)h Ft(:)p Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)g Fo(?)g Fr(x)p Fu(;)f Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)33 b(!)f Fs(s)2808 530 -y Fn(61)283 700 y Fu(Ho)m(w)m(ev)m(er,)j(the)e(statemen)m(t)527 -885 y Fr(y)p Fu(:=)p Fr(1)p Fu(;)g Fr(while)h Ft(:)q -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\))283 1070 y(is)38 b(of)f(the)h(form)e -Fs(S)978 1085 y Fn(1)1017 1070 y Fu(;)k Fs(S)1151 1085 -y Fn(2)1228 1070 y Fu(so)e(the)g(only)f(rule)g(that)h(could)f(ha)m(v)m -(e)i(b)s(een)f(used)h(to)e(pro)s(duce)h(the)283 1190 -y(ro)s(ot)32 b(of)g Fs(T)46 b Fu(is)32 b([comp)1072 1205 -y Fn(ns)1143 1190 y Fu(].)43 b(Therefore)34 b Fs(T)46 -b Fu(m)m(ust)32 b(ha)m(v)m(e)i(the)f(form:)813 1372 y -Ft(h)p Fr(y)p Fu(:=)p Fr(1)p Fu(,)g Fs(s)8 b Ft(i!)p -Fs(s)1352 1387 y Fn(13)2411 1372 y Fs(T)2494 1387 y Fn(1)p -527 1459 2325 4 v 577 1664 a Ft(h)p Fr(y)p Fu(:=)p Fr(1)p -Fu(;)33 b Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p -Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h Fs(s)8 b Ft(i!)o Fs(s)2727 1679 y Fn(61)283 -1842 y Fu(for)32 b(some)h(state)g Fs(s)964 1857 y Fn(13)1071 -1842 y Fu(and)g(some)f(deriv)-5 b(ation)31 b(tree)i Fs(T)2241 -1857 y Fn(1)2313 1842 y Fu(whic)m(h)h(has)f(ro)s(ot)552 -2009 y Ft(h)p Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p -Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)h Fs(s)2251 2024 y Fn(13)2326 2009 y Ft(i)o(!)p -Fs(s)2512 2024 y Fn(61)3582 2009 y Fu(\(**\))283 2177 -y(Since)d Ft(h)p Fr(y)p Fu(:=)p Fr(1)p Fu(,)g Fs(s)8 -b Ft(i)31 b(!)f Fs(s)1134 2192 y Fn(13)1239 2177 y Fu(has)h(to)f(b)s(e) -h(an)g(instance)g(of)f(the)h(axiom)e([ass)2886 2192 y -Fn(ns)2958 2177 y Fu(])h(w)m(e)i(get)e(that)h Fs(s)3575 -2192 y Fn(13)3680 2177 y Fu(=)283 2297 y Fs(s)8 b Fu([)p -Fr(y)p Ft(7!)q Fw(1)p Fu(].)430 2418 y(The)34 b(missing)e(part)h -Fs(T)1275 2433 y Fn(1)1348 2418 y Fu(of)g Fs(T)47 b Fu(is)33 -b(a)g(deriv)-5 b(ation)32 b(tree)i(with)f(ro)s(ot)g(\(**\).)45 -b(Since)34 b(the)g(state-)283 2538 y(men)m(t)39 b(of)e(\(**\))h(has)g -(the)h(form)e Fr(while)i Fs(b)44 b Fr(do)39 b Fs(S)50 -b Fu(the)38 b(deriv)-5 b(ation)37 b(tree)i Fs(T)3003 -2553 y Fn(1)3080 2538 y Fu(m)m(ust)g(ha)m(v)m(e)g(b)s(een)283 -2658 y(constructed)48 b(b)m(y)f(applying)e(either)h(the)g(rule)g -([while)2326 2622 y Fn(tt)2314 2683 y(ns)2384 2658 y -Fu(])h(or)e(the)i(axiom)d([while)3337 2622 y Fn(\013)3325 -2683 y(ns)3396 2658 y Fu(].)84 b(Since)283 2779 y Ft(B)t -Fu([)-17 b([)q Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])q -Fs(s)796 2794 y Fn(13)904 2779 y Fu(=)33 b Fw(tt)f Fu(w)m(e)j(see)f -(that)f(only)g(the)h(rule)f([while)2490 2743 y Fn(tt)2478 -2804 y(ns)2548 2779 y Fu(])h(could)f(ha)m(v)m(e)h(b)s(een)g(applied)f -(so)283 2899 y Fs(T)366 2914 y Fn(1)439 2899 y Fu(will)d(ha)m(v)m(e)k -(the)f(form:)813 3071 y Fs(T)896 3086 y Fn(2)2221 3071 -y Fs(T)2304 3086 y Fn(3)p 527 3158 2135 4 v 577 3363 -a Ft(h)p Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p -Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h Fs(s)2276 3378 y Fn(13)2351 3363 y Ft(i)o(!)p -Fs(s)2537 3378 y Fn(61)283 3541 y Fu(where)g Fs(T)648 -3556 y Fn(2)720 3541 y Fu(is)e(a)h(deriv)-5 b(ation)31 -b(tree)i(with)f(ro)s(ot)527 3726 y Ft(h)p Fr(y)p Fu(:=)p -Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(,)h Fs(s)1373 3741 y Fn(13)1448 3726 y Ft(i!)o -Fs(s)1634 3741 y Fn(32)283 3910 y Fu(and)f Fs(T)556 3925 -y Fn(3)628 3910 y Fu(is)f(a)h(deriv)-5 b(ation)31 b(tree)i(with)f(ro)s -(ot)552 4078 y Ft(h)p Fr(while)i Ft(:)p Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)h Fs(s)2251 4093 y Fn(32)2326 4078 y Ft(i)o(!)p -Fs(s)2512 4093 y Fn(61)3534 4078 y Fu(\(***\))283 4246 -y(for)e(some)h(state)g Fs(s)964 4261 y Fn(32)1039 4246 -y Fu(.)430 4366 y(Using)h(that)g(the)h(form)e(of)h(the)h(statemen)m(t)g -Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)f Fu(is)f Fs(S)2962 4381 y Fn(1)3002 -4366 y Fu(;)p Fs(S)3096 4381 y Fn(2)3169 4366 y Fu(it)g(is)g(no)m(w)h -(easy)283 4486 y(to)e(see)g(that)g(the)g(deriv)-5 b(ation)31 -b(tree)i Fs(T)1676 4501 y Fn(2)1748 4486 y Fu(is)577 -4658 y Ft(h)p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p Fu(,)g -Fs(s)1029 4673 y Fn(13)1104 4658 y Ft(i!)o Fs(s)1290 -4673 y Fn(33)1682 4658 y Ft(h)p Fr(x)p Fu(:=)p Fr(x)p -Ft(\000)p Fr(1)p Fu(,)h Fs(s)2163 4673 y Fn(33)2238 4658 -y Ft(i!)o Fs(s)2424 4673 y Fn(32)p 527 4745 2022 4 v -947 4950 a Ft(h)p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p -Fu(;)f Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(,)h -Fs(s)1793 4965 y Fn(13)1868 4950 y Ft(i!)o Fs(s)2054 -4965 y Fn(32)283 5133 y Fu(where)40 b Fs(s)619 5148 y -Fn(33)731 5133 y Fu(=)e Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p -Fw(3)p Fu(])38 b(and)g Fs(s)1435 5148 y Fn(32)1548 5133 -y Fu(=)f Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(3)p Fu(][)p -Fr(x)p Ft(7!)q Fw(2)p Fu(].)59 b(The)39 b(lea)m(v)m(es)g(of)e -Fs(T)3008 5148 y Fn(2)3086 5133 y Fu(are)h(instances)g(of)283 -5254 y([ass)435 5269 y Fn(ns)507 5254 y Fu(])33 b(and)g(they)g(are)g -(com)m(bined)f(using)g([comp)2085 5269 y Fn(ns)2156 5254 -y Fu(].)44 b(So)32 b(no)m(w)i Fs(T)2676 5269 y Fn(2)2748 -5254 y Fu(is)e(fully)f(constructed.)430 5374 y(In)k(a)g(similar)d(w)m -(a)m(y)k(w)m(e)g(can)f(construct)i(the)e(deriv)-5 b(ation)34 -b(tree)h Fs(T)2831 5389 y Fn(3)2906 5374 y Fu(with)f(ro)s(ot)h(\(***\)) -f(and)283 5494 y(w)m(e)g(get:)p eop -%%Page: 25 35 -25 34 bop 0 130 a Fw(2.1)112 b(Natural)37 b(seman)m(tics)2216 -b(25)p 0 193 3473 4 v 294 500 a Ft(h)o Fr(y)p Fu(:=)p -Fr(y)p Fo(?)q Fr(x)p Fu(,)33 b Fs(s)746 515 y Fn(32)820 -500 y Ft(i!)p Fs(s)1007 515 y Fn(62)1399 500 y Ft(h)p -Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(,)h Fs(s)1880 -515 y Fn(62)1954 500 y Ft(i!)p Fs(s)2141 515 y Fn(61)p -244 587 2022 4 v 664 788 a Ft(h)o Fr(y)p Fu(:=)p Fr(y)p -Fo(?)q Fr(x)p Fu(;)f Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(,)g Fs(s)1509 803 y Fn(32)1584 788 y Ft(i!)p -Fs(s)1771 803 y Fn(61)2533 788 y Fs(T)2616 803 y Fn(4)p -244 875 2462 4 v 457 1079 a Ft(h)p Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)h Fs(s)2156 1094 y Fn(32)2231 -1079 y Ft(i)o(!)p Fs(s)2417 1094 y Fn(61)0 1294 y Fu(where)39 -b Fs(s)335 1309 y Fn(62)447 1294 y Fu(=)e Fs(s)8 b Fu([)p -Fr(y)p Ft(7!)p Fw(6)p Fu(][)p Fr(x)p Ft(7!)p Fw(2)p Fu(],)39 -b Fs(s)1244 1309 y Fn(61)1356 1294 y Fu(=)e Fs(s)8 b -Fu([)p Fr(y)p Ft(7!)p Fw(6)p Fu(][)p Fr(x)p Ft(7!)p Fw(1)p -Fu(])38 b(and)f Fs(T)2354 1309 y Fn(4)2431 1294 y Fu(is)g(a)g(deriv)-5 -b(ation)36 b(tree)i(with)0 1415 y(ro)s(ot)244 1631 y -Ft(h)p Fr(while)33 b Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))g Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p -Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h Fs(s)1943 1646 y Fn(61)2017 1631 y Ft(i!)p Fs(s)2204 -1646 y Fn(61)146 1847 y Fu(Finally)-8 b(,)28 b(w)m(e)i(see)h(that)e -(the)h(deriv)-5 b(ation)27 b(tree)j Fs(T)1892 1862 y -Fn(4)1961 1847 y Fu(is)f(an)h(instance)f(of)g(the)h(axiom)e([while)3387 -1810 y Fn(\013)3375 1871 y(ns)3445 1847 y Fu(])0 1967 -y(b)s(ecause)h Ft(B)s Fu([)-17 b([)q Ft(:)p Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\)])g(])q Fs(s)868 1982 y Fn(61)971 -1967 y Fu(=)27 b Fw(\013)p Fu(.)42 b(This)28 b(completes)f(the)h -(construction)g(of)f(the)h(deriv)-5 b(ation)26 b(tree)0 -2087 y Fs(T)46 b Fu(for)32 b(\(*\).)2981 b Fh(2)0 2333 -y Fw(Exercise)36 b(2.3)49 b Fu(Consider)33 b(the)g(statemen)m(t)244 -2549 y Fr(z)p Fu(:=)p Fr(0)p Fu(;)g Fr(while)h(y)p Ft(\024)q -Fr(x)e(do)h Fu(\()p Fr(z)p Fu(:=)p Fr(z)p Fu(+)p Fr(1)p -Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(y)p Fu(\))0 -2765 y(Construct)39 b(a)e(deriv)-5 b(ation)36 b(tree)i(for)f(this)g -(statemen)m(t)h(when)h(executed)g(in)e(a)g(state)h(where)h -Fr(x)0 2886 y Fu(has)33 b(the)g(v)-5 b(alue)32 b Fw(17)h -Fu(and)f Fr(y)h Fu(has)g(the)g(v)-5 b(alue)32 b Fw(5)p -Fu(.)1709 b Fh(2)146 3132 y Fu(W)-8 b(e)33 b(shall)f(in)m(tro)s(duce)h -(the)g(follo)m(wing)d(terminology:)41 b(The)34 b(execution)g(of)e(a)g -(statemen)m(t)i Fs(S)0 3252 y Fu(on)e(a)h(state)g Fs(s)145 -3468 y Ft(\017)49 b Fs(terminates)40 b Fu(if)32 b(and)g(only)g(if)g -(there)h(is)f(a)g(state)h Fs(s)2032 3432 y Fi(0)2088 -3468 y Fu(suc)m(h)h(that)f Ft(h)o Fs(S)12 b Fu(,)33 b -Fs(s)8 b Ft(i)32 b(!)g Fs(s)2984 3432 y Fi(0)3008 3468 -y Fu(,)g(and)145 3684 y Ft(\017)49 b Fs(lo)-5 b(ops)40 -b Fu(if)31 b(and)i(only)f(if)f(there)j(is)e Fs(no)38 -b Fu(state)33 b Fs(s)1854 3648 y Fi(0)1910 3684 y Fu(suc)m(h)h(that)e -Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)2806 -3648 y Fi(0)2829 3684 y Fu(.)0 3900 y(W)-8 b(e)40 b(shall)e(sa)m(y)j -(that)e(a)g(statemen)m(t)h Fs(S)51 b(always)41 b(terminates)47 -b Fu(if)39 b(its)g(execution)h(on)f(a)h(state)g Fs(s)0 -4021 y Fu(terminates)31 b(for)g(all)f(c)m(hoices)j(of)e -Fs(s)8 b Fu(,)32 b(and)g Fs(always)i(lo)-5 b(ops)39 b -Fu(if)31 b(its)g(execution)i(on)f(a)f(state)i Fs(s)39 -b Fu(lo)s(ops)0 4141 y(for)32 b(all)f(c)m(hoices)i(of)f -Fs(s)8 b Fu(.)0 4390 y Fw(Exercise)36 b(2.4)49 b Fu(Consider)33 -b(the)g(follo)m(wing)d(statemen)m(ts)145 4606 y Ft(\017)49 -b Fr(while)34 b Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f -Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p Fu(;)g -Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(\))145 4822 -y Ft(\017)49 b Fr(while)34 b(1)p Ft(\024)p Fr(x)f(do)g -Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)q Fr(x)p Fu(;)f Fr(x)p -Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(\))145 5038 y Ft(\017)49 -b Fr(while)34 b(true)f(do)g(skip)0 5254 y Fu(F)-8 b(or)28 -b(eac)m(h)j(statemen)m(t)e(determine)g(whether)i(or)e(not)g(it)f(alw)m -(a)m(ys)i(terminates)f(and)g(whether)i(or)0 5374 y(not)k(it)f(alw)m(a)m -(ys)i(lo)s(ops.)50 b(T)-8 b(ry)36 b(to)f(argue)g(for)f(y)m(our)i(answ)m -(ers)h(using)e(the)g(axioms)f(and)i(rules)f(of)0 5494 -y(T)-8 b(able)32 b(2.1.)2978 b Fh(2)p eop -%%Page: 26 36 -26 35 bop 251 130 a Fw(26)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fp(Prop)t(erties)46 -b(of)f(the)h(seman)l(tics)283 700 y Fu(The)32 b(transition)d(system)j -(giv)m(es)f(us)g(a)g(w)m(a)m(y)h(of)e(arguing)f(ab)s(out)i(statemen)m -(ts)g(and)g(their)f(prop-)283 820 y(erties.)44 b(As)31 -b(an)g(example)f(w)m(e)i(ma)m(y)f(b)s(e)g(in)m(terested)h(in)e(whether) -j(t)m(w)m(o)e(statemen)m(ts)h Fs(S)3391 835 y Fn(1)3462 -820 y Fu(and)f Fs(S)3717 835 y Fn(2)283 941 y Fu(are)i -Fs(semantic)-5 b(al)5 b(ly)34 b(e)-5 b(quivalent)p Fu(;)32 -b(b)m(y)h(this)g(w)m(e)g(mean)f(that)h(for)f(all)e(states)k -Fs(s)40 b Fu(and)33 b Fs(s)3303 905 y Fi(0)527 1140 y -Ft(h)p Fs(S)633 1155 y Fn(1)672 1140 y Fu(,)g Fs(s)8 -b Ft(i)32 b(!)g Fs(s)1031 1104 y Fi(0)1087 1140 y Fu(if)g(and)g(only)h -(if)e Ft(h)p Fs(S)1776 1155 y Fn(2)1815 1140 y Fu(,)i -Fs(s)8 b Ft(i)32 b(!)g Fs(s)2174 1104 y Fi(0)p 283 1339 -3473 5 v 283 1509 a Fw(Lemma)38 b(2.5)49 b Fu(The)33 -b(statemen)m(t)527 1708 y Fr(while)h Fs(b)39 b Fr(do)33 -b Fs(S)283 1907 y Fu(is)g(seman)m(tically)d(equiv)-5 -b(alen)m(t)33 b(to)520 2098 y Fr(if)g Fs(b)38 b Fr(then)c -Fu(\()p Fs(S)12 b Fu(;)32 b Fr(while)i Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(\))33 b Fr(else)g(skip)p Fu(.)p 283 2219 -V 283 2418 a Fw(Pro)s(of:)38 b Fu(The)33 b(pro)s(of)f(is)g(in)g(t)m(w)m -(o)h(stages.)44 b(W)-8 b(e)33 b(shall)f(\014rst)h(pro)m(v)m(e)g(that)g -(if)552 2585 y Ft(h)p Fr(while)h Fs(b)k Fr(do)33 b Fs(S)12 -b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1524 2549 y Fi(00)3631 -2585 y Fu(\(*\))283 2753 y(then)552 2920 y Ft(h)p Fr(if)h -Fs(b)38 b Fr(then)c Fu(\()p Fs(S)12 b Fu(;)32 b Fr(while)i -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(\))32 b Fr(else)i(skip)p -Fu(,)f Fs(s)8 b Ft(i)33 b(!)f Fs(s)2658 2884 y Fi(00)3582 -2920 y Fu(\(**\))283 3088 y(Th)m(us,)j(if)d(the)h(execution)h(of)e(the) -h(lo)s(op)f(terminates)g(then)h(so)g(do)s(es)h(its)e(one-lev)m(el)g -(unfolding.)283 3208 y(Later)26 b(w)m(e)g(shall)f(sho)m(w)h(that)g(if)e -(the)i(unfolded)f(lo)s(op)f(terminates)h(then)h(so)g(will)d(the)j(lo)s -(op)e(itself;)283 3329 y(the)33 b(conjunction)g(of)f(these)i(results)f -(then)g(pro)m(v)m(e)h(the)f(lemma.)430 3449 y(Because)44 -b(\(*\))f(holds)f(w)m(e)i(kno)m(w)g(that)f(w)m(e)h(ha)m(v)m(e)g(a)f -(deriv)-5 b(ation)41 b(tree)j Fs(T)56 b Fu(for)42 b(it.)74 -b(It)43 b(can)283 3570 y(ha)m(v)m(e)g(one)e(of)f(t)m(w)m(o)i(forms)e -(dep)s(ending)h(on)g(whether)h(it)e(has)h(b)s(een)g(constructed)i -(using)d(the)283 3690 y(rule)30 b([while)738 3654 y Fn(tt)726 -3715 y(ns)796 3690 y Fu(])g(or)f(the)h(axiom)e([while)1683 -3654 y Fn(\013)1671 3715 y(ns)1742 3690 y Fu(].)42 b(In)30 -b(the)h(\014rst)f(case)g(the)g(deriv)-5 b(ation)28 b(tree)j -Fs(T)42 b Fu(has)30 b(the)283 3810 y(form:)813 3982 y -Fs(T)896 3997 y Fn(1)1253 3982 y Fs(T)1336 3997 y Fn(2)p -527 4068 1168 4 v 604 4273 a Ft(h)o Fr(while)k Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 b(!)h -Fs(s)1576 4237 y Fi(00)283 4471 y Fu(where)e Fs(T)645 -4486 y Fn(1)714 4471 y Fu(is)e(a)g(deriv)-5 b(ation)28 -b(tree)i(with)f(ro)s(ot)g Ft(h)o Fs(S)12 b Fu(,)30 b -Fs(s)8 b Ft(i)o(!)p Fs(s)2355 4435 y Fi(0)2408 4471 y -Fu(and)29 b Fs(T)2677 4486 y Fn(2)2746 4471 y Fu(is)g(a)g(deriv)-5 -b(ation)28 b(tree)i(with)283 4591 y(ro)s(ot)h Ft(h)p -Fr(while)h Fs(b)38 b Fr(do)31 b Fs(S)12 b Fu(,)32 b Fs(s)1207 -4555 y Fi(0)1230 4591 y Ft(i!)o Fs(s)1416 4555 y Fi(00)1459 -4591 y Fu(.)43 b(F)-8 b(urthermore,)31 b Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])q Fs(s)39 b Fu(=)31 b Fw(tt)p -Fu(.)42 b(Using)31 b(the)h(deriv)-5 b(ation)30 b(trees)283 -4711 y Fs(T)366 4726 y Fn(1)439 4711 y Fu(and)j Fs(T)712 -4726 y Fn(2)785 4711 y Fu(as)g(the)h(premises)f(for)g(the)g(rules)g -([comp)2278 4726 y Fn(ns)2349 4711 y Fu(])g(w)m(e)h(can)g(construct)g -(the)f(deriv)-5 b(ation)283 4832 y(tree:)813 5003 y Fs(T)896 -5018 y Fn(1)1327 5003 y Fs(T)1410 5018 y Fn(2)p 527 5090 -1241 4 v 577 5294 a Ft(h)p Fs(S)12 b Fu(;)32 b Fr(while)i -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 -b(!)h Fs(s)1676 5258 y Fi(00)283 5494 y Fu(Using)g(that)f -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])q Fs(s)40 -b Fu(=)33 b Fw(tt)e Fu(w)m(e)j(can)f(use)g(the)g(rule)f([if)2223 -5458 y Fn(tt)2211 5519 y(ns)2282 5494 y Fu(])g(to)g(construct)i(the)f -(deriv)-5 b(ation)31 b(tree)p eop -%%Page: 27 37 -27 36 bop 0 130 a Fw(2.1)112 b(Natural)37 b(seman)m(tics)2216 -b(27)p 0 193 3473 4 v 530 500 a Fs(T)613 515 y Fn(1)2051 -500 y Fs(T)2134 515 y Fn(2)p 244 587 2248 4 v 797 791 -a Ft(h)p Fs(S)12 b Fu(;)32 b Fr(while)i Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1896 -755 y Fi(00)p 244 878 V 294 1083 a Ft(h)o Fr(if)h Fs(b)39 -b Fr(then)34 b Fu(\()p Fs(S)12 b Fu(;)32 b Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\))33 b Fr(else)g(skip)p -Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)2399 1047 y Fi(00)0 -1267 y Fu(thereb)m(y)i(sho)m(wing)f(that)f(\(**\))g(holds.)146 -1388 y(Alternativ)m(ely)-8 b(,)27 b(the)f(deriv)-5 b(ation)25 -b(tree)h Fs(T)39 b Fu(is)26 b(an)g(instance)g(of)f([while)2621 -1352 y Fn(\013)2609 1412 y(ns)2680 1388 y Fu(].)41 b(Then)27 -b Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fw(\013)0 1508 y Fu(and)h(w)m(e)g(m)m(ust)g(ha)m(v)m(e)h -(that)e Fs(s)1059 1472 y Fi(00)1102 1508 y Fu(=)p Fs(s)8 -b Fu(.)43 b(So)33 b Fs(T)45 b Fu(simply)31 b(is)244 1694 -y Ft(h)p Fr(while)i Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 -b Fs(s)8 b Ft(i)33 b(!)f Fs(s)0 1880 y Fu(Using)g(the)h(axiom)e([skip) -930 1895 y Fn(ns)1002 1880 y Fu(])h(w)m(e)i(get)e(a)h(deriv)-5 -b(ation)31 b(tree)244 2066 y Ft(h)p Fr(skip)p Fu(,)i -Fs(s)8 b Ft(i!)p Fs(s)782 2030 y Fi(00)0 2252 y Fu(and)33 -b(w)m(e)g(can)g(no)m(w)g(apply)g(the)g(rule)f([if)1444 -2216 y Fn(\013)1432 2276 y(ns)1502 2252 y Fu(])h(to)f(construct)h(a)g -(deriv)-5 b(ation)31 b(tree)i(for)f(\(**\):)1045 2435 -y Ft(h)p Fr(skip)p Fu(,)h Fs(s)8 b Ft(i)33 b(!)f Fs(s)1648 -2399 y Fi(00)p 244 2521 V 294 2726 a Ft(h)o Fr(if)h Fs(b)39 -b Fr(then)34 b Fu(\()p Fs(S)12 b Fu(;)32 b Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\))33 b Fr(else)g(skip)p -Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)2399 2690 y Fi(00)0 -2905 y Fu(This)h(completes)f(the)h(\014rst)g(part)g(of)f(the)h(pro)s -(of.)146 3026 y(F)-8 b(or)38 b(the)h(second)h(stage)f(of)f(the)h(pro)s -(of)e(w)m(e)j(assume)f(that)f(\(**\))g(holds)g(and)h(shall)e(pro)m(v)m -(e)0 3146 y(that)29 b(\(*\))g(holds.)42 b(So)29 b(w)m(e)h(ha)m(v)m(e)g -(a)f(deriv)-5 b(ation)27 b(tree)j Fs(T)42 b Fu(for)29 -b(\(**\))f(and)h(m)m(ust)g(construct)i(one)e(for)0 3266 -y(\(*\).)46 b(Only)34 b(t)m(w)m(o)g(rules)g(could)f(giv)m(e)h(rise)f -(to)h(the)g(deriv)-5 b(ation)32 b(tree)i Fs(T)47 b Fu(for)33 -b(\(**\),)g(namely)g([if)3387 3230 y Fn(tt)3375 3291 -y(ns)3445 3266 y Fu(])0 3387 y(or)f([if)216 3351 y Fn(\013)204 -3411 y(ns)274 3387 y Fu(].)44 b(In)33 b(the)g(\014rst)g(case,)h -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fw(tt)g Fu(and)g(w)m(e)i(ha)m(v)m(e)g(a)e(deriv)-5 -b(ation)31 b(tree)i Fs(T)2975 3402 y Fn(1)3047 3387 y -Fu(with)g(ro)s(ot)244 3573 y Ft(h)p Fs(S)12 b Fu(;)32 -b Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 -b Ft(i!)o Fs(s)1277 3536 y Fi(00)0 3759 y Fu(The)34 b(statemen)m(t)g -(has)f(the)h(general)f(form)e Fs(S)1632 3774 y Fn(1)1672 -3759 y Fu(;)i Fs(S)1799 3774 y Fn(2)1872 3759 y Fu(and)g(the)h(only)e -(rule)h(that)g(could)g(giv)m(e)g(this)0 3879 y(is)f([comp)353 -3894 y Fn(ns)424 3879 y Fu(].)44 b(Therefore)33 b(there)h(are)e(deriv) --5 b(ation)31 b(trees)j Fs(T)2150 3894 y Fn(2)2222 3879 -y Fu(and)e Fs(T)2494 3894 y Fn(3)2566 3879 y Fu(for)244 -4065 y Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i!)p Fs(s)644 -4029 y Fi(0)667 4065 y Fu(,)33 b(and)244 4232 y Ft(h)p -Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)964 -4196 y Fi(0)988 4232 y Ft(i!)o Fs(s)1174 4196 y Fi(00)0 -4418 y Fu(for)d(some)g(state)g Fs(s)670 4382 y Fi(0)693 -4418 y Fu(.)43 b(It)29 b(is)g(no)m(w)g(straigh)m(tforw)m(ard)g(to)g -(use)h(the)f(rule)g([while)2741 4382 y Fn(tt)2729 4443 -y(ns)2799 4418 y Fu(])h(to)e(com)m(bine)h Fs(T)3433 4433 -y Fn(2)0 4539 y Fu(and)k Fs(T)273 4554 y Fn(3)345 4539 -y Fu(to)f(a)g(deriv)-5 b(ation)31 b(tree)i(for)f(\(*\).)146 -4659 y(In)i(the)g(second)h(case,)f Ft(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])p Fs(s)42 b Fu(=)33 b Fw(\013)h -Fu(and)f Fs(T)47 b Fu(is)33 b(constructed)i(using)e(the)h(rule)f([if) -3124 4623 y Fn(\013)3112 4684 y(ns)3182 4659 y Fu(].)46 -b(This)0 4780 y(means)33 b(that)f(w)m(e)i(ha)m(v)m(e)f(a)g(deriv)-5 -b(ation)31 b(tree)i(for)244 4965 y Ft(h)p Fr(skip)p Fu(,)g -Fs(s)8 b Ft(i!)p Fs(s)782 4929 y Fi(00)0 5151 y Fu(and)36 -b(according)f(to)h(axiom)e([skip)1249 5166 y Fn(ns)1321 -5151 y Fu(])i(it)f(m)m(ust)h(b)s(e)g(the)g(case)h(that)f -Fs(s)8 b Fu(=)p Fs(s)2634 5115 y Fi(00)2676 5151 y Fu(.)54 -b(But)36 b(then)g(w)m(e)h(can)0 5272 y(use)f(the)f(axiom)e([while)895 -5236 y Fn(\013)883 5296 y(ns)953 5272 y Fu(])i(to)f(construct)i(a)e -(deriv)-5 b(ation)33 b(tree)i(for)f(\(*\).)50 b(This)35 -b(completes)f(the)0 5392 y(pro)s(of.)3148 b Fh(2)p eop -%%Page: 28 38 -28 37 bop 251 130 a Fw(28)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a(Exercise)g(2.6)49 -b Fu(Pro)m(v)m(e)42 b(that)f(the)h(t)m(w)m(o)g(statemen)m(ts)g -Fs(S)2359 530 y Fn(1)2398 515 y Fu(;\()p Fs(S)2530 530 -y Fn(2)2570 515 y Fu(;)p Fs(S)2664 530 y Fn(3)2703 515 -y Fu(\))f(and)g(\()p Fs(S)3085 530 y Fn(1)3125 515 y -Fu(;)p Fs(S)3219 530 y Fn(2)3258 515 y Fu(\);)p Fs(S)3390 -530 y Fn(3)3470 515 y Fu(are)h(se-)283 636 y(man)m(tically)21 -b(equiv)-5 b(alen)m(t.)40 b(Construct)25 b(a)e(statemen)m(t)h(sho)m -(wing)f(that)g Fs(S)2843 651 y Fn(1)2882 636 y Fu(;)p -Fs(S)2976 651 y Fn(2)3039 636 y Fu(is)g(not,)i(in)d(general,)283 -756 y(seman)m(tically)31 b(equiv)-5 b(alen)m(t)33 b(to)f -Fs(S)1492 771 y Fn(2)1531 756 y Fu(;)p Fs(S)1625 771 -y Fn(1)1664 756 y Fu(.)1990 b Fh(2)283 970 y Fw(Exercise)37 -b(2.7)49 b Fu(Extend)34 b(the)f(language)e Fw(While)g -Fu(with)h(the)h(statemen)m(t)527 1163 y Fr(repeat)h Fs(S)45 -b Fr(until)34 b Fs(b)283 1355 y Fu(and)39 b(de\014ne)h(the)f(relation)e -Ft(!)h Fu(for)g(it.)61 b(\(The)39 b(seman)m(tics)g(of)f(the)h -Fr(repeat)p Fu(-construct)i(is)d(not)283 1476 y(allo)m(w)m(ed)45 -b(to)g(rely)g(on)g(the)h(existence)h(of)e(a)g Fr(while)p -Fu(-construct)i(in)e(the)h(language.\))80 b(Pro)m(v)m(e)283 -1596 y(that)44 b Fr(repeat)i Fs(S)56 b Fr(until)45 b -Fs(b)50 b Fu(and)44 b Fs(S)12 b Fu(;)44 b Fr(if)h Fs(b)50 -b Fr(then)45 b(skip)g(else)g Fu(\()p Fr(repeat)h Fs(S)56 -b Fr(until)45 b Fs(b)6 b Fu(\))44 b(are)283 1717 y(seman)m(tically)31 -b(equiv)-5 b(alen)m(t.)2381 b Fh(2)283 1931 y Fw(Exercise)37 -b(2.8)49 b Fu(Another)33 b(iterativ)m(e)f(construct)h(is)527 -2123 y Fr(for)h Fs(x)44 b Fu(:=)32 b Fs(a)995 2138 y -Fn(1)1068 2123 y Fr(to)h Fs(a)1260 2138 y Fn(2)1332 2123 -y Fr(do)g Fs(S)283 2316 y Fu(Extend)h(the)f(language)f -Fw(While)e Fu(with)i(this)g(statemen)m(t)h(and)g(de\014ne)h(the)e -(relation)f Ft(!)h Fu(for)g(it.)283 2436 y(Ev)-5 b(aluate)33 -b(the)g(statemen)m(t)527 2629 y Fr(y)p Fu(:=)p Fr(1)p -Fu(;)g Fr(for)h(z)p Fu(:=)p Fr(1)f(to)g(x)g(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\))283 2822 y(from)38 b(a)h(state)h(where)g -Fr(x)f Fu(has)h(the)f(v)-5 b(alue)39 b(5.)63 b(Hin)m(t:)56 -b(Y)-8 b(ou)39 b(ma)m(y)g(need)h(to)f(assume)g(that)g(y)m(ou)283 -2942 y(ha)m(v)m(e)30 b(an)f(\\in)m(v)m(erse")h(to)e Ft(N)14 -b Fu(,)30 b(so)f(that)f(there)h(is)g(a)f(n)m(umeral)g(for)g(eac)m(h)h -(n)m(um)m(b)s(er)g(that)g(ma)m(y)f(arise)283 3062 y(during)41 -b(the)g(computation.)67 b(\(The)42 b(seman)m(tics)f(of)f(the)i -Fr(for)p Fu(-construct)g(is)e(not)h(allo)m(w)m(ed)f(to)283 -3183 y(rely)33 b(on)f(the)h(existence)h(of)f(a)f Fr(while)p -Fu(-construct)i(in)e(the)h(language.\))855 b Fh(2)430 -3397 y Fu(In)31 b(the)f(ab)s(o)m(v)m(e)i(pro)s(of)d(w)m(e)j(used)f(T)-8 -b(able)30 b(2.1)g(to)g(insp)s(ect)h(the)g(structure)h(of)e(the)g(deriv) --5 b(ation)283 3517 y(tree)30 b(for)e(a)g(certain)g(transition)f(kno)m -(wn)j(to)f(hold.)41 b(In)29 b(the)g(pro)s(of)f(of)g(the)h(next)h -(result)f(w)m(e)g(shall)283 3638 y(com)m(bine)34 b(this)g(with)h(an)f -Fs(induction)i(on)g(the)h(shap)-5 b(e)36 b(of)g(the)g(derivation)g(tr) --5 b(e)g(e)p Fu(.)49 b(The)36 b(idea)e(can)283 3758 y(b)s(e)f -(summarized)f(as)g(follo)m(ws:)p 283 3888 3470 4 v 283 -3904 V 281 4112 4 208 v 298 4112 V 967 4033 a Fw(Induction)g(on)h(the)f -(Shap)s(e)i(of)f(Deriv)-6 b(ation)31 b(T)-9 b(rees)p -3735 4112 V 3752 4112 V 283 4115 3470 4 v 281 4484 4 -370 v 298 4484 V 350 4281 a Fu(1:)143 b(Pro)m(v)m(e)24 -b(that)f(the)h(prop)s(ert)m(y)g(holds)f(for)f(all)f(the)j(simple)e -(deriv)-5 b(ation)21 b(trees)j(b)m(y)h(sho)m(wing)569 -4401 y(that)32 b(it)g(holds)g(for)g(the)h Fs(axioms)40 -b Fu(of)32 b(the)h(transition)e(system.)p 3735 4484 V -3752 4484 V 281 5013 4 529 v 298 5013 V 350 4569 a(2:)143 -b(Pro)m(v)m(e)31 b(that)g(the)f(prop)s(ert)m(y)h(holds)f(for)g(all)e -(comp)s(osite)h(deriv)-5 b(ation)29 b(trees:)43 b(F)-8 -b(or)30 b(eac)m(h)569 4689 y Fs(rule)50 b Fu(assume)44 -b(that)f(the)g(prop)s(ert)m(y)h(holds)e(for)h(its)f(premises)h(\(this)g -(is)g(called)e(the)569 4809 y Fs(induction)29 b(hyp)-5 -b(othesis)p Fu(\))27 b(and)g(pro)m(v)m(e)i(that)e(it)g(also)f(holds)h -(for)g(the)h(conclusion)e(of)h(the)569 4930 y(rule)32 -b(pro)m(vided)h(that)f(the)h(conditions)f(of)g(the)h(rule)f(are)h -(satis\014ed.)p 3735 5013 V 3752 5013 V 283 5016 3470 -4 v 283 5033 V 283 5181 a(T)-8 b(o)28 b(form)m(ulate)f(the)h(theorem)f -(w)m(e)i(shall)e(sa)m(y)h(that)g(the)g(seman)m(tics)g(of)f(T)-8 -b(able)28 b(2.1)f(is)h Fs(determin-)283 5302 y(istic)39 -b Fu(if)31 b(for)h(all)f(c)m(hoices)i(of)f Fs(S)12 b -Fu(,)32 b Fs(s)8 b Fu(,)33 b Fs(s)1594 5266 y Fi(0)1650 -5302 y Fu(and)g Fs(s)1888 5266 y Fi(00)1963 5302 y Fu(w)m(e)g(ha)m(v)m -(e)h(that)527 5494 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b(!)g Fs(s)992 5458 y Fi(0)1048 5494 y Fu(and)h -Ft(h)o Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1702 -5458 y Fi(00)1777 5494 y Fu(imply)f Fs(s)2099 5458 y -Fi(0)2155 5494 y Fu(=)h Fs(s)2311 5458 y Fi(00)p eop -%%Page: 29 39 -29 38 bop 0 130 a Fw(2.1)112 b(Natural)37 b(seman)m(tics)2216 -b(29)p 0 193 3473 4 v 0 515 a Fu(This)22 b(means)g(that)f(for)h(ev)m -(ery)h(statemen)m(t)g Fs(S)33 b Fu(and)22 b(initial)c(state)k -Fs(s)30 b Fu(w)m(e)23 b(can)f(uniquely)g(determine)0 -636 y(a)32 b(\014nal)g(state)h Fs(s)585 600 y Fi(0)641 -636 y Fu(if)e(\(and)i(only)f(if)7 b(\))31 b(the)i(execution)h(of)e -Fs(S)44 b Fu(terminates.)p 0 759 3473 5 v 0 949 a Fw(Theorem)37 -b(2.9)49 b Fu(The)34 b(natural)d(seman)m(tics)i(of)f(T)-8 -b(able)32 b(2.1)g(is)g(deterministic.)p 0 1069 V 0 1286 -a Fw(Pro)s(of:)37 b Fu(W)-8 b(e)33 b(assume)g(that)g -Ft(h)o Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i!)o Fs(s)1456 -1250 y Fi(0)1512 1286 y Fu(and)33 b(shall)e(pro)m(v)m(e)j(that)244 -1503 y(if)d Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i!)p -Fs(s)733 1466 y Fi(00)808 1503 y Fu(then)33 b Fs(s)1078 -1466 y Fi(0)1134 1503 y Fu(=)f Fs(s)1290 1466 y Fi(00)1333 -1503 y Fu(.)0 1719 y(W)-8 b(e)33 b(shall)e(pro)s(ceed)j(b)m(y)f -(induction)f(on)g(the)h(shap)s(e)g(of)f(the)h(deriv)-5 -b(ation)31 b(tree)i(for)f Ft(h)p Fs(S)12 b Fu(,)33 b -Fs(s)8 b Ft(i)o(!)p Fs(s)3384 1683 y Fi(0)3407 1719 y -Fu(.)0 1887 y Fw(The)34 b(case)h Fu([ass)611 1902 y Fn(ns)683 -1887 y Fu(]:)46 b(Then)36 b Fs(S)45 b Fu(is)34 b Fs(x)12 -b Fu(:=)p Fs(a)41 b Fu(and)34 b Fs(s)1730 1851 y Fi(0)1787 -1887 y Fu(is)g Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p Fu([)-17 -b([)q Fs(a)7 b Fu(])-17 b(])p Fs(s)8 b Fu(].)48 b(The)35 -b(only)f(axiom)e(or)i(rule)0 2007 y(that)39 b(could)f(b)s(e)i(used)g -(to)f(giv)m(e)g Ft(h)o Fs(x)12 b Fu(:=)p Fs(a)7 b Fu(,)41 -b Fs(s)8 b Ft(i!)o Fs(s)1743 1971 y Fi(00)1825 2007 y -Fu(is)39 b([ass)2082 2022 y Fn(ns)2154 2007 y Fu(])g(so)g(it)f(follo)m -(ws)g(that)h Fs(s)3043 1971 y Fi(00)3124 2007 y Fu(m)m(ust)g(b)s(e)0 -2128 y Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o Fu([)-17 b([)q -Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])32 b(and)h(thereb)m(y)h -Fs(s)1141 2091 y Fi(0)1197 2128 y Fu(=)f Fs(s)1354 2091 -y Fi(00)1396 2128 y Fu(.)0 2295 y Fw(The)g(case)g Fu([skip)654 -2310 y Fn(ns)726 2295 y Fu(]:)43 b(Analogous.)0 2463 -y Fw(The)33 b(case)g Fu([comp)711 2478 y Fn(ns)782 2463 -y Fu(]:)43 b(Assume)34 b(that)244 2679 y Ft(h)p Fs(S)350 -2694 y Fn(1)389 2679 y Fu(;)p Fs(S)483 2694 y Fn(2)522 -2679 y Fu(,)f Fs(s)8 b Ft(i!)o Fs(s)816 2643 y Fi(0)0 -2896 y Fu(holds)32 b(b)s(ecause)244 3113 y Ft(h)p Fs(S)350 -3128 y Fn(1)389 3113 y Fu(,)h Fs(s)8 b Ft(i)o(!)p Fs(s)683 -3128 y Fn(0)755 3113 y Fu(and)33 b Ft(h)o Fs(S)1050 3128 -y Fn(2)1090 3113 y Fu(,)f Fs(s)1197 3128 y Fn(0)1237 -3113 y Ft(i!)o Fs(s)1423 3076 y Fi(0)0 3329 y Fu(for)c(some)h -Fs(s)434 3344 y Fn(0)474 3329 y Fu(.)42 b(The)30 b(only)e(rule)g(that)h -(could)f(b)s(e)h(applied)f(to)h(giv)m(e)f Ft(h)p Fs(S)2490 -3344 y Fn(1)2529 3329 y Fu(;)p Fs(S)2623 3344 y Fn(2)2663 -3329 y Fu(,)h Fs(s)8 b Ft(i!)p Fs(s)2954 3293 y Fi(00)3025 -3329 y Fu(is)28 b([comp)3374 3344 y Fn(ns)3445 3329 y -Fu(])0 3450 y(so)33 b(there)g(is)f(a)g(state)h Fs(s)835 -3465 y Fn(1)907 3450 y Fu(suc)m(h)i(that)244 3666 y Ft(h)p -Fs(S)350 3681 y Fn(1)389 3666 y Fu(,)e Fs(s)8 b Ft(i)o(!)p -Fs(s)683 3681 y Fn(1)755 3666 y Fu(and)33 b Ft(h)o Fs(S)1050 -3681 y Fn(2)1090 3666 y Fu(,)f Fs(s)1197 3681 y Fn(1)1237 -3666 y Ft(i!)o Fs(s)1423 3630 y Fi(00)0 3883 y Fu(The)47 -b(induction)d(h)m(yp)s(othesis)j(can)f(b)s(e)g(applied)e(to)i(the)g -(premise)f Ft(h)p Fs(S)2637 3898 y Fn(1)2676 3883 y Fu(,)k -Fs(s)8 b Ft(i!)p Fs(s)2987 3898 y Fn(0)3072 3883 y Fu(and)46 -b(from)0 4003 y Ft(h)p Fs(S)106 4018 y Fn(1)145 4003 -y Fu(,)33 b Fs(s)8 b Ft(i)o(!)p Fs(s)439 4018 y Fn(1)512 -4003 y Fu(w)m(e)34 b(get)g Fs(s)868 4018 y Fn(0)941 4003 -y Fu(=)f Fs(s)1098 4018 y Fn(1)1138 4003 y Fu(.)46 b(Similarly)-8 -b(,)29 b(the)34 b(induction)f(h)m(yp)s(othesis)h(can)g(b)s(e)f(applied) -g(to)0 4123 y(the)g(premise)f Ft(h)p Fs(S)632 4138 y -Fn(2)671 4123 y Fu(,)h Fs(s)779 4138 y Fn(0)818 4123 -y Ft(i!)p Fs(s)1005 4087 y Fi(0)1061 4123 y Fu(and)f(from)g -Ft(h)o Fs(S)1586 4138 y Fn(2)1626 4123 y Fu(,)g Fs(s)1733 -4138 y Fn(0)1773 4123 y Ft(i!)o Fs(s)1959 4087 y Fi(00)2034 -4123 y Fu(w)m(e)i(get)e Fs(s)2388 4087 y Fi(0)2444 4123 -y Fu(=)h Fs(s)2601 4087 y Fi(00)2676 4123 y Fu(as)f(required.)0 -4291 y Fw(The)h(case)g Fu([if)553 4255 y Fn(tt)541 4316 -y(ns)611 4291 y Fu(]:)44 b(Assume)33 b(that)244 4508 -y Ft(h)p Fr(if)g Fs(b)38 b Fr(then)c Fs(S)806 4523 y -Fn(1)877 4508 y Fr(else)g Fs(S)1182 4523 y Fn(2)1221 -4508 y Fu(,)f Fs(s)8 b Ft(i)32 b(!)g Fs(s)1580 4472 y -Fi(0)0 4724 y Fu(holds)g(b)s(ecause)244 4941 y Ft(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 -b Fw(tt)g Fu(and)h Ft(h)p Fs(S)1043 4956 y Fn(1)1082 -4941 y Fu(,)f Fs(s)8 b Ft(i!)p Fs(s)1376 4905 y Fi(0)0 -5158 y Fu(F)-8 b(rom)45 b Ft(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])p Fs(s)54 b Fu(=)46 b Fw(tt)g Fu(w)m(e)h(get)f(that)g -(the)h(only)e(rule)h(that)g(could)g(b)s(e)g(applied)f(to)h(giv)m(e)g -(the)0 5278 y(alternativ)m(e)32 b Ft(h)o Fr(if)i Fs(b)k -Fr(then)c Fs(S)1050 5293 y Fn(1)1121 5278 y Fr(else)g -Fs(S)1426 5293 y Fn(2)1465 5278 y Fu(,)f Fs(s)8 b Ft(i)32 -b(!)g Fs(s)1824 5242 y Fi(00)1899 5278 y Fu(is)g([if)2094 -5242 y Fn(tt)2082 5303 y(ns)2153 5278 y Fu(].)43 b(So)33 -b(it)e(m)m(ust)i(b)s(e)g(the)g(case)g(that)244 5494 y -Ft(h)p Fs(S)350 5509 y Fn(1)389 5494 y Fu(,)g Fs(s)8 -b Ft(i)32 b(!)g Fs(s)748 5458 y Fi(00)p eop -%%Page: 30 40 -30 39 bop 251 130 a Fw(30)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(But)30 -b(then)h(the)f(induction)f(h)m(yp)s(othesis)i(can)f(b)s(e)g(applied)e -(to)i(the)g(premise)f Ft(h)p Fs(S)3155 530 y Fn(1)3194 -515 y Fu(,)i Fs(s)8 b Ft(i)29 b(!)h Fs(s)3546 479 y Fi(0)3599 -515 y Fu(and)283 636 y(from)i Ft(h)p Fs(S)620 651 y Fn(1)659 -636 y Fu(,)g Fs(s)8 b Ft(i)33 b(!)f Fs(s)1018 600 y Fi(00)1093 -636 y Fu(w)m(e)i(get)e Fs(s)1447 600 y Fi(0)1503 636 -y Fu(=)g Fs(s)1659 600 y Fi(00)1702 636 y Fu(.)283 803 -y Fw(The)h(case)g Fu([if)836 767 y Fn(\013)824 828 y(ns)895 -803 y Fu(]:)43 b(Analogous.)283 971 y Fw(The)33 b(case)g -Fu([while)1001 935 y Fn(tt)989 996 y(ns)1060 971 y Fu(]:)44 -b(Assume)33 b(that)527 1198 y Ft(h)p Fr(while)h Fs(b)k -Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g -Fs(s)1499 1162 y Fi(0)283 1425 y Fu(b)s(ecause)527 1652 -y Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)41 -b Fu(=)32 b Fw(tt)p Fu(,)g Ft(h)o Fs(S)12 b Fu(,)33 b -Fs(s)8 b Ft(i!)o Fs(s)1457 1667 y Fn(0)1529 1652 y Fu(and)33 -b Ft(h)p Fr(while)h Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 -b Fs(s)2440 1667 y Fn(0)2479 1652 y Ft(i!)o Fs(s)2665 -1615 y Fi(0)283 1879 y Fu(The)40 b(only)e(rule)h(that)f(could)g(b)s(e)h -(applied)f(to)g(giv)m(e)h Ft(h)p Fr(while)h Fs(b)k Fr(do)c -Fs(S)12 b Fu(,)38 b Fs(s)8 b Ft(i)39 b(!)f Fs(s)3223 -1842 y Fi(00)3304 1879 y Fu(is)g([while)3670 1842 y Fn(tt)3658 -1903 y(ns)3729 1879 y Fu(])283 1999 y(b)s(ecause)c Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)41 b Fu(=)32 -b Fw(tt)g Fu(and)g(this)h(means)f(that)527 2226 y Ft(h)p -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)o(!)p Fs(s)927 2241 -y Fn(1)999 2226 y Fu(and)33 b Ft(h)o Fr(while)h Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)1909 2241 y Fn(1)1949 -2226 y Ft(i)g(!)g Fs(s)2200 2190 y Fi(00)283 2453 y Fu(m)m(ust)46 -b(hold)e(for)h(some)g Fs(s)1234 2468 y Fn(1)1273 2453 -y Fu(.)81 b(Again)44 b(the)i(induction)e(h)m(yp)s(othesis)i(can)f(b)s -(e)h(applied)e(to)g(the)283 2573 y(premise)33 b Ft(h)o -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i!)o Fs(s)1041 2588 y -Fn(0)1113 2573 y Fu(and)33 b(from)e Ft(h)p Fs(S)12 b -Fu(,)33 b Fs(s)8 b Ft(i)o(!)p Fs(s)1933 2588 y Fn(1)2005 -2573 y Fu(w)m(e)34 b(get)e Fs(s)2359 2588 y Fn(0)2431 -2573 y Fu(=)h Fs(s)2588 2588 y Fn(1)2627 2573 y Fu(.)44 -b(Th)m(us)34 b(w)m(e)f(ha)m(v)m(e)527 2800 y Ft(h)p Fr(while)h -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)1248 2815 -y Fn(0)1287 2800 y Ft(i!)p Fs(s)1474 2764 y Fi(0)1530 -2800 y Fu(and)f Ft(h)p Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 -b Fu(,)33 b Fs(s)2440 2815 y Fn(0)2479 2800 y Ft(i!)p -Fs(s)2666 2764 y Fi(00)283 3027 y Fu(Since)44 b Ft(h)o -Fr(while)g Fs(b)49 b Fr(do)44 b Fs(S)12 b Fu(,)42 b Fs(s)1310 -3042 y Fn(0)1350 3027 y Ft(i!)o Fs(s)1536 2991 y Fi(0)1602 -3027 y Fu(is)h(a)f(premise)h(of)f(\(the)i(instance)f(of)7 -b(\))42 b([while)3327 2991 y Fn(tt)3315 3051 y(ns)3386 -3027 y Fu(])h(w)m(e)h(can)283 3147 y(apply)37 b(the)h(induction)e(h)m -(yp)s(othesis)j(to)d(it.)57 b(F)-8 b(rom)35 b Ft(h)p -Fr(while)k Fs(b)k Fr(do)37 b Fs(S)12 b Fu(,)37 b Fs(s)2925 -3162 y Fn(0)2965 3147 y Ft(i!)o Fs(s)3151 3111 y Fi(00)3231 -3147 y Fu(w)m(e)h(therefore)283 3268 y(get)33 b Fs(s)494 -3231 y Fi(0)550 3268 y Fu(=)f Fs(s)706 3231 y Fi(00)781 -3268 y Fu(as)h(required.)283 3435 y Fw(The)g(case)g Fu([while)1001 -3399 y Fn(\013)989 3460 y(ns)1060 3435 y Fu(]:)44 b(Straigh)m(tforw)m -(ard.)1826 b Fh(2)283 3784 y Fw(Exercise)37 b(2.10)49 -b Fu(*)83 b(Pro)m(v)m(e)43 b(that)e Fr(repeat)i Fs(S)53 -b Fr(until)43 b Fs(b)48 b Fu(\(as)41 b(de\014ned)i(in)e(Exercise)i -(2.7\))e(is)283 3904 y(seman)m(tically)k(equiv)-5 b(alen)m(t)47 -b(to)g Fs(S)12 b Fu(;)32 b Fr(while)i Ft(:)p Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(.)86 b(Argue)47 b(that)f(this)h(means)g(that) -f(the)283 4025 y(extended)35 b(seman)m(tics)e(is)f(deterministic.)1860 -b Fh(2)430 4286 y Fu(It)42 b(is)f(w)m(orth)i(observing)f(that)g(w)m(e)h -(could)e(not)h(pro)m(v)m(e)i(Theorem)e(2.9)f(using)h(structural)283 -4406 y(induction)h(on)g(the)h(statemen)m(t)h Fs(S)12 -b Fu(.)43 b(The)h(reason)h(is)e(that)g(the)h(rule)f([while)3160 -4370 y Fn(tt)3148 4431 y(ns)3219 4406 y Fu(])g(de\014nes)i(the)283 -4527 y(seman)m(tics)30 b(of)f Fr(while)i Fs(b)k Fr(do)30 -b Fs(S)41 b Fu(in)29 b(terms)g(of)g(itself.)41 b(Structural)29 -b(induction)g(w)m(orks)i(\014ne)f(when)283 4647 y(the)k(seman)m(tics)f -(is)f(de\014ned)i Fs(c)-5 b(omp)g(ositional)5 b(ly)40 -b Fu(\(as)33 b(e.g.)45 b Ft(A)32 b Fu(and)h Ft(B)j Fu(in)c(Chapter)i -(1\).)43 b(But)33 b(the)283 4768 y(natural)i(seman)m(tics)h(of)f(T)-8 -b(able)35 b(2.1)g(is)g Fs(not)45 b Fu(de\014ned)38 b(comp)s -(ositionally)31 b(b)s(ecause)37 b(of)e(the)h(rule)283 -4888 y([while)545 4852 y Fn(tt)533 4913 y(ns)604 4888 -y Fu(].)430 5013 y(Basically)-8 b(,)46 b(induction)e(on)h(the)g(shap)s -(e)h(of)e(deriv)-5 b(ation)44 b(trees)i(is)e(a)h(kind)g(of)f -(structural)283 5133 y(induction)g(on)g(the)g(deriv)-5 -b(ation)43 b(trees:)68 b(In)44 b(the)h Fs(b)-5 b(ase)45 -b(c)-5 b(ase)51 b Fu(w)m(e)45 b(sho)m(w)g(that)f(the)h(prop)s(ert)m(y) -283 5254 y(holds)40 b(for)g(the)g(simple)e(deriv)-5 b(ation)39 -b(trees.)66 b(In)41 b(the)f Fs(induction)h(step)46 b -Fu(w)m(e)41 b(assume)g(that)e(the)283 5374 y(prop)s(ert)m(y)d(holds)e -(for)g(the)h(immediate)d(constituen)m(ts)j(of)g(a)f(deriv)-5 -b(ation)33 b(tree)i(and)f(sho)m(w)i(that)283 5494 y(it)c(also)g(holds)g -(for)g(the)h(comp)s(osite)e(deriv)-5 b(ation)31 b(tree.)p -eop -%%Page: 31 41 -31 40 bop 0 130 a Fw(2.1)112 b(Natural)37 b(seman)m(tics)2216 -b(31)p 0 193 3473 4 v 0 515 a Fp(The)44 b(seman)l(tic)j(function)d -FC(S)1440 533 y Fk(ns)0 700 y Fu(The)37 b Fs(me)-5 b(aning)44 -b Fu(of)36 b(statemen)m(ts)h(can)g(no)m(w)g(b)s(e)g(summarized)e(as)i -(a)f(\(partial\))e(function)i(from)0 820 y Fw(State)d -Fu(to)f Fw(State)p Fu(.)43 b(W)-8 b(e)33 b(de\014ne)244 -1017 y Ft(S)312 1032 y Fn(ns)383 1017 y Fu(:)43 b Fw(Stm)32 -b Ft(!)g Fu(\()p Fw(State)h Fo(,)-17 b Ft(!)32 b Fw(State)p -Fu(\))0 1214 y(and)h(this)f(means)h(that)f(for)g(ev)m(ery)i(statemen)m -(t)f Fs(S)45 b Fu(w)m(e)33 b(ha)m(v)m(e)h(a)f(partial)d(function)244 -1411 y Ft(S)312 1426 y Fn(ns)383 1411 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])33 b Ft(2)g Fw(State)g Fo(,)-17 -b Ft(!)33 b Fw(State)p Fu(.)0 1607 y(It)g(is)f(giv)m(en)g(b)m(y)244 -1861 y Ft(S)312 1876 y Fn(ns)383 1861 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])q Fs(s)40 b Fu(=)714 1715 y Fg(\()822 -1800 y Fs(s)870 1763 y Fi(0)1148 1800 y Fu(if)31 b Ft(h)p -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1702 -1763 y Fi(0)822 1920 y Fu(undef)p 822 1933 243 4 v 91 -w(otherwise)0 2114 y(Note)e(that)g Ft(S)510 2129 y Fn(ns)611 -2114 y Fu(is)g(a)g(w)m(ell-de\014ned)g(partial)e(function)h(b)s(ecause) -j(of)e(Theorem)g(2.9.)42 b(The)31 b(need)0 2234 y(for)36 -b(partialit)m(y)f(is)h(demonstrated)h(b)m(y)h(the)f(statemen)m(t)g -Fr(while)d(true)f(do)g(skip)38 b Fu(that)f(alw)m(a)m(ys)0 -2355 y(lo)s(ops)32 b(\(see)h(Exercise)h(2.4\);)e(w)m(e)i(then)f(ha)m(v) -m(e)244 2552 y Ft(S)312 2567 y Fn(ns)383 2552 y Fu([)-17 -b([)p Fr(while)34 b(true)g(do)f(skip)p Fu(])-17 b(])34 -b Fs(s)41 b Fu(=)32 b(undef)p 1546 2565 236 4 v 0 2748 -a(for)g(all)f(states)i Fs(s)8 b Fu(.)0 2968 y Fw(Exercise)36 -b(2.11)49 b Fu(The)38 b(seman)m(tics)g(of)e(arithmetic)f(expressions)k -(is)e(giv)m(en)g(b)m(y)h(the)g(function)0 3088 y Ft(A)p -Fu(.)61 b(W)-8 b(e)39 b(can)g(also)f(use)h(an)g(op)s(erational)d -(approac)m(h)j(and)g(de\014ne)g(a)g(natural)e(seman)m(tics)i(for)0 -3208 y(the)33 b(arithmetic)d(expressions.)46 b(It)32 -b(will)f(ha)m(v)m(e)j(t)m(w)m(o)f(kinds)g(of)f(con\014gurations:)294 -3397 y Ft(h)o Fs(a)7 b Fu(,)33 b Fs(s)8 b Ft(i)100 b -Fu(denoting)32 b(that)g Fs(a)40 b Fu(has)33 b(to)f(b)s(e)h(ev)-5 -b(aluated)32 b(in)g(state)h Fs(s)8 b Fu(,)33 b(and)294 -3564 y Fs(z)302 b Fu(denoting)32 b(the)h(\014nal)f(v)-5 -b(alue)32 b(\(an)g(elemen)m(t)g(of)g Fw(Z)p Fu(\).)0 -3754 y(The)i(transition)c(relation)h Ft(!)1103 3769 y -Fn(Aexp)1300 3754 y Fu(has)i(the)g(form)244 3951 y Ft(h)p -Fs(a)7 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)618 3966 y Fn(Aexp)816 -3951 y Fs(z)0 4147 y Fu(where)e(the)g(idea)e(is)h(that)f -Fs(a)38 b Fu(ev)-5 b(aluates)29 b(to)h Fs(z)42 b Fu(in)29 -b(state)i Fs(s)8 b Fu(.)42 b(Some)30 b(example)f(axioms)g(and)h(rules)0 -4268 y(are)244 4465 y Ft(h)p Fs(n)7 b Fu(,)32 b Fs(s)8 -b Ft(i)33 b(!)623 4480 y Fn(Aexp)821 4465 y Ft(N)14 b -Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])244 4679 y Ft(h)p -Fs(x)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 b(!)618 4694 y Fn(Aexp)815 -4679 y Fs(s)41 b(x)254 4885 y Ft(h)p Fs(a)350 4900 y -Fn(1)389 4885 y Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)668 4900 -y Fn(Aexp)865 4885 y Fs(z)917 4900 y Fn(1)957 4885 y -Fu(,)g Ft(h)p Fs(a)1112 4900 y Fn(2)1152 4885 y Fu(,)g -Fs(s)8 b Ft(i)33 b(!)1430 4900 y Fn(Aexp)1628 4885 y -Fs(z)1680 4900 y Fn(2)p 254 4948 1466 4 v 536 5053 a -Ft(h)p Fs(a)632 5068 y Fn(1)704 5053 y Fu(+)f Fs(a)869 -5068 y Fn(2)909 5053 y Fu(,)h Fs(s)8 b Ft(i)32 b(!)1188 -5068 y Fn(Aexp)1385 5053 y Fs(z)1826 4971 y Fu(where)i -Fs(z)45 b Fu(=)32 b Fs(z)2353 4986 y Fn(1)2425 4971 y -Fu(+)g Fs(z)2585 4986 y Fn(2)0 5234 y Fu(Complete)k(the)h(sp)s -(eci\014cation)f(of)h(the)g(transition)e(system.)57 b(Use)37 -b(structural)g(induction)e(on)0 5355 y Fw(Aexp)e Fu(to)f(pro)m(v)m(e)i -(that)f(the)g(meaning)e(of)h Fs(a)40 b Fu(de\014ned)34 -b(b)m(y)g(this)e(relation)f(is)h(the)h(same)g(as)g(that)0 -5475 y(de\014ned)h(b)m(y)f Ft(A)p Fu(.)2820 b Fh(2)p -eop -%%Page: 32 42 -32 41 bop 251 130 a Fw(32)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a(Exercise)g(2.12)49 -b Fu(In)24 b(a)h(similar)c(w)m(a)m(y)k(w)m(e)h(can)e(sp)s(ecify)h(a)f -(natural)f(seman)m(tics)i(for)f(the)g(b)s(o)s(olean)283 -636 y(expressions.)46 b(The)33 b(transitions)f(will)e(ha)m(v)m(e)k(the) -f(form)527 865 y Ft(h)p Fs(b)6 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(!)896 880 y Fn(Bexp)1090 865 y Fs(t)283 1094 y Fu(where)27 -b Fs(t)34 b Ft(2)25 b Fw(T)p Fu(.)g(Sp)s(ecify)g(the)h(transition)d -(system)j(and)f(pro)m(v)m(e)h(that)e(the)i(meaning)d(of)i -Fs(b)30 b Fu(de\014ned)283 1215 y(in)i(this)g(w)m(a)m(y)i(is)e(the)h -(same)g(as)g(that)f(de\014ned)i(b)m(y)f Ft(B)t Fu(.)1487 -b Fh(2)283 1479 y Fw(Exercise)37 b(2.13)49 b Fu(Determine)i(whether)i -(or)e(not)h(seman)m(tic)g(equiv)-5 b(alence)52 b(of)f -Fs(S)3349 1494 y Fn(1)3441 1479 y Fu(and)h Fs(S)3717 -1494 y Fn(2)283 1600 y Fu(amoun)m(ts)33 b(to)f Ft(S)864 -1615 y Fn(ns)935 1600 y Fu([)-17 b([)q Fs(S)1040 1615 -y Fn(1)1079 1600 y Fu(])g(])33 b(=)f Ft(S)1325 1615 y -Fn(ns)1396 1600 y Fu([)-17 b([)q Fs(S)1501 1615 y Fn(2)1540 -1600 y Fu(])g(])q(.)2076 b Fh(2)283 1964 y Fj(2.2)161 -b(Structural)53 b(op)t(erational)i(seman)l(tics)283 2194 -y Fu(In)34 b(structural)g(op)s(erational)d(seman)m(tics)j(the)g -(emphasis)f(is)g(on)h(the)g Fs(individual)h(steps)41 -b Fu(of)33 b(the)283 2314 y(execution,)i(that)f(is)f(the)i(execution)f -(of)f(assignmen)m(ts)i(and)e(tests.)49 b(The)35 b(transition)d -(relation)283 2435 y(has)h(the)g(form)527 2664 y Ft(h)p -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))g Fo(\015)283 -2893 y Fu(where)39 b Fo(\015)j Fu(either)37 b(is)f(of)h(the)g(form)f -Ft(h)p Fs(S)1675 2857 y Fi(0)1698 2893 y Fu(,)i Fs(s)1811 -2857 y Fi(0)1835 2893 y Ft(i)e Fu(or)h(of)g(the)g(form)f -Fs(s)2605 2857 y Fi(0)2628 2893 y Fu(.)57 b(The)38 b(transition)e -(expresses)283 3014 y(the)30 b Fs(\014rst)39 b Fu(step)31 -b(of)e(the)h(execution)g(of)f Fs(S)41 b Fu(from)28 b(state)i -Fs(s)8 b Fu(.)43 b(There)30 b(are)g(t)m(w)m(o)g(p)s(ossible)f -(outcomes:)429 3243 y Ft(\017)48 b Fu(If)25 b Fo(\015)k -Fu(is)24 b(of)g(the)h(form)e Ft(h)p Fs(S)1378 3207 y -Fi(0)1401 3243 y Fu(,)j Fs(s)1502 3207 y Fi(0)1526 3243 -y Ft(i)e Fu(then)h(the)g(execution)g(of)f Fs(S)36 b Fu(from)23 -b Fs(s)33 b Fu(is)24 b Fs(not)34 b Fu(completed)24 b(and)527 -3363 y(the)42 b(remaining)e(computation)g(is)h(expressed)k(b)m(y)d(the) -g(in)m(termediate)f(con\014guration)527 3484 y Ft(h)p -Fs(S)633 3447 y Fi(0)656 3484 y Fu(,)33 b Fs(s)764 3447 -y Fi(0)787 3484 y Ft(i)p Fu(.)429 3713 y Ft(\017)48 b -Fu(If)32 b Fo(\015)k Fu(is)31 b(of)g(the)g(form)g Fs(s)1362 -3677 y Fi(0)1416 3713 y Fu(then)h(the)g(execution)g(of)f -Fs(S)43 b Fu(from)30 b Fs(s)40 b(has)f Fu(terminated)30 -b(and)h(the)527 3833 y(\014nal)h(state)h(is)f Fs(s)1129 -3797 y Fi(0)1153 3833 y Fu(.)283 4063 y(W)-8 b(e)33 b(shall)f(sa)m(y)h -(that)f Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b -Fu(is)g Fs(stuck)44 b Fu(if)31 b(there)i(is)f(no)h Fo(\015)k -Fu(suc)m(h)d(that)f Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 -b Ft(i)32 b(\))g Fo(\015)5 b Fu(.)430 4188 y(The)45 b(de\014nition)f -(of)g Ft(\))g Fu(is)g(giv)m(en)h(b)m(y)g(the)g(axioms)e(and)i(rules)f -(of)g(T)-8 b(able)45 b(2.2)f(and)g(the)283 4308 y(general)36 -b(form)g(of)g(these)h(are)g(as)g(in)e(the)i(previous)g(section.)56 -b(Axioms)35 b([ass)3082 4323 y Fn(sos)3178 4308 y Fu(])i(and)f([skip) -3633 4323 y Fn(sos)3729 4308 y Fu(])283 4429 y(ha)m(v)m(e)46 -b(not)e(c)m(hanged)i(at)d(all)g(b)s(ecause)i(the)g(assignmen)m(t)f(and) -g Fr(skip)i Fu(statemen)m(ts)f(are)f(fully)283 4549 y(executed)35 -b(in)d(one)h(step.)430 4675 y(The)k(rules)f([comp)1138 -4639 y Fn(1)1126 4699 y(sos)1221 4675 y Fu(])g(and)g([comp)1744 -4639 y Fn(2)1732 4699 y(sos)1827 4675 y Fu(])g(express)j(that)d(to)g -(execute)i Fs(S)2992 4690 y Fn(1)3031 4675 y Fu(;)p Fs(S)3125 -4690 y Fn(2)3201 4675 y Fu(in)d(state)i Fs(s)44 b Fu(w)m(e)283 -4795 y(\014rst)34 b(execute)g Fs(S)901 4810 y Fn(1)973 -4795 y Fu(one)f(step)g(from)f Fs(s)8 b Fu(.)43 b(Then)34 -b(there)f(are)g(t)m(w)m(o)g(p)s(ossible)f(outcomes:)429 -5024 y Ft(\017)48 b Fu(If)31 b(the)g(execution)h(of)e -Fs(S)1400 5039 y Fn(1)1470 5024 y Fu(has)i(not)e(b)s(een)i(completed)e -(w)m(e)i(ha)m(v)m(e)g(to)f(complete)f(it)g(b)s(efore)527 -5145 y(em)m(barking)i(on)h(the)g(execution)g(of)f Fs(S)1922 -5160 y Fn(2)1961 5145 y Fu(.)429 5374 y Ft(\017)48 b -Fu(If)35 b(the)g(execution)h(of)e Fs(S)1416 5389 y Fn(1)1490 -5374 y Fu(has)i(b)s(een)f(completed)g(w)m(e)h(can)f(start)g(on)f(the)i -(execution)f(of)527 5494 y Fs(S)594 5509 y Fn(2)634 5494 -y Fu(.)p eop -%%Page: 33 43 -33 42 bop 0 130 a Fw(2.2)112 b(Structural)37 b(op)s(erational)f(seman)m -(tics)1506 b(33)p 0 193 3473 4 v 0 419 V 0 2340 4 1922 -v 331 528 a Fu([ass)483 543 y Fn(sos)579 528 y Fu(])348 -b Ft(h)o Fs(x)45 b Fu(:=)32 b Fs(a)7 b Fu(,)33 b Fs(s)8 -b Ft(i)33 b(\))f Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])331 743 y([skip)529 -758 y Fn(sos)624 743 y Fu(])303 b Ft(h)o Fr(skip)p Fu(,)34 -b Fs(s)8 b Ft(i)33 b(\))f Fs(s)331 1035 y Fu([comp)598 -999 y Fn(1)586 1059 y(sos)681 1035 y Fu(])1097 948 y -Ft(h)p Fs(S)1203 963 y Fn(1)1242 948 y Fu(,)h Fs(s)8 -b Ft(i)32 b(\))g(h)p Fs(S)1659 912 y Fi(0)1659 973 y -Fn(1)1698 948 y Fu(,)h Fs(s)1806 912 y Fi(0)1829 948 -y Ft(i)p 964 1012 1038 4 v 964 1116 a(h)o Fs(S)1069 1131 -y Fn(1)1109 1116 y Fu(;)p Fs(S)1203 1131 y Fn(2)1242 -1116 y Fu(,)g Fs(s)8 b Ft(i)32 b(\))g(h)p Fs(S)1659 1080 -y Fi(0)1659 1141 y Fn(1)1698 1116 y Fu(;)p Fs(S)1792 -1131 y Fn(2)1832 1116 y Fu(,)g Fs(s)1939 1080 y Fi(0)1963 -1116 y Ft(i)331 1397 y Fu([comp)598 1361 y Fn(2)586 1422 -y(sos)681 1397 y Fu(])1152 1310 y Ft(h)p Fs(S)1258 1325 -y Fn(1)1297 1310 y Fu(,)h Fs(s)8 b Ft(i)32 b(\))g Fs(s)1656 -1274 y Fi(0)p 964 1374 905 4 v 964 1478 a Ft(h)o Fs(S)1069 -1493 y Fn(1)1109 1478 y Fu(;)p Fs(S)1203 1493 y Fn(2)1242 -1478 y Fu(,)h Fs(s)8 b Ft(i)32 b(\))g(h)p Fs(S)1659 1493 -y Fn(2)1698 1478 y Fu(,)h Fs(s)1806 1442 y Fi(0)1829 -1478 y Ft(i)331 1682 y Fu([if)428 1646 y Fn(tt)416 1707 -y(sos)510 1682 y Fu(])417 b Ft(h)o Fr(if)34 b Fs(b)k -Fr(then)c Fs(S)1516 1697 y Fn(1)1587 1682 y Fr(else)g -Fs(S)1892 1697 y Fn(2)1931 1682 y Fu(,)f Fs(s)8 b Ft(i)32 -b(\))g(h)p Fs(S)2348 1697 y Fn(1)2387 1682 y Fu(,)h Fs(s)8 -b Ft(i)32 b Fu(if)g Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fw(tt)331 1897 y Fu([if)428 -1861 y Fn(\013)416 1922 y(sos)510 1897 y Fu(])417 b Ft(h)o -Fr(if)34 b Fs(b)k Fr(then)c Fs(S)1516 1912 y Fn(1)1587 -1897 y Fr(else)g Fs(S)1892 1912 y Fn(2)1931 1897 y Fu(,)f -Fs(s)8 b Ft(i)32 b(\))g(h)p Fs(S)2348 1912 y Fn(2)2387 -1897 y Fu(,)h Fs(s)8 b Ft(i)32 b Fu(if)g Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(\013)331 -2112 y Fu([while)581 2127 y Fn(sos)675 2112 y Fu(])252 -b Ft(h)o Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 b -Fu(,)32 b Fs(s)8 b Ft(i)33 b(\))1281 2279 y(h)p Fr(if)g -Fs(b)39 b Fr(then)33 b Fu(\()p Fs(S)12 b Fu(;)33 b Fr(while)g -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(\))32 b Fr(else)i(skip)p -Fu(,)f Fs(s)8 b Ft(i)p 3469 2340 4 1922 v 0 2343 3473 -4 v 574 2504 a Fu(T)-8 b(able)32 b(2.2:)43 b(Structural)32 -b(op)s(erational)e(seman)m(tics)j(for)f Fw(While)0 2798 -y Fu(The)h(\014rst)g(case)g(is)e(captured)i(b)m(y)g(the)g(rule)e([comp) -1874 2762 y Fn(1)1862 2822 y(sos)1957 2798 y Fu(]:)43 -b(If)32 b(the)h(result)f(of)g(executing)g(the)h(\014rst)0 -2918 y(step)e(of)e Ft(h)p Fs(S)12 b Fu(,)29 b Fs(s)8 -b Ft(i)30 b Fu(is)f(an)h(in)m(termediate)f(con\014guration)g -Ft(h)o Fs(S)2076 2882 y Fi(0)2076 2943 y Fn(1)2116 2918 -y Fu(,)h Fs(s)2221 2882 y Fi(0)2244 2918 y Ft(i)g Fu(then)g(the)h(next) -f(con\014guration)0 3039 y(is)g Ft(h)p Fs(S)202 3002 -y Fi(0)202 3063 y Fn(1)241 3039 y Fu(;)p Fs(S)335 3054 -y Fn(2)375 3039 y Fu(,)h Fs(s)481 3002 y Fi(0)504 3039 -y Ft(i)g Fu(sho)m(wing)g(that)f(w)m(e)i(ha)m(v)m(e)h(to)d(complete)g -(the)h(execution)h(of)e Fs(S)2823 3054 y Fn(1)2893 3039 -y Fu(b)s(efore)h(w)m(e)h(can)0 3159 y(start)f(on)f Fs(S)432 -3174 y Fn(2)471 3159 y Fu(.)43 b(The)32 b(second)g(case)f(ab)s(o)m(v)m -(e)h(is)e(captured)i(b)m(y)f(the)g(rule)f([comp)2792 -3123 y Fn(2)2780 3184 y(sos)2875 3159 y Fu(]:)43 b(If)30 -b(the)h(result)0 3279 y(of)g(executing)g Fs(S)611 3294 -y Fn(1)682 3279 y Fu(from)e Fs(s)40 b Fu(is)30 b(a)h(\014nal)f(state)i -Fs(s)1667 3243 y Fi(0)1721 3279 y Fu(then)g(the)f(next)h -(con\014guration)e(is)h Ft(h)p Fs(S)3118 3294 y Fn(2)3157 -3279 y Fu(,)i Fs(s)3265 3243 y Fi(0)3288 3279 y Ft(i)p -Fu(,)e(so)0 3400 y(that)h(w)m(e)i(can)f(no)m(w)g(start)g(on)f -Fs(S)1173 3415 y Fn(2)1212 3400 y Fu(.)146 3524 y(F)-8 -b(rom)47 b(the)i(axioms)e([if)1043 3488 y Fn(tt)1031 -3549 y(sos)1125 3524 y Fu(])h(and)h([if)1503 3488 y Fn(\013)1491 -3549 y(sos)1585 3524 y Fu(])f(w)m(e)h(see)h(that)e(the)g(\014rst)h -(step)g(in)f(executing)h(a)0 3645 y(conditional)22 b(is)j(to)g(p)s -(erform)f(the)h(test)h(and)f(to)g(select)h(the)f(appropriate)f(branc)m -(h.)42 b(Finally)-8 b(,)24 b(the)0 3765 y(axiom)i([while)535 -3780 y Fn(sos)629 3765 y Fu(])h(sho)m(ws)i(that)e(the)h(\014rst)g(step) -g(in)e(the)i(execution)g(of)f(the)h Fr(while)p Fu(-construct)h(is)0 -3886 y(to)i(unfold)f(it)g(one)h(lev)m(el,)g(that)g(is)f(to)h(rewrite)g -(it)e(as)j(a)e(conditional.)41 b(The)32 b(test)f(will)e(therefore)0 -4006 y(b)s(e)h(p)s(erformed)g(in)g(the)g(second)i(step)f(of)f(the)g -(execution)h(\(where)g(one)g(of)f(the)g(axioms)f(for)h(the)0 -4126 y Fr(if)p Fu(-construct)k(is)e(applied\).)42 b(W)-8 -b(e)33 b(shall)e(see)j(an)e(example)h(of)f(this)g(shortly)-8 -b(.)146 4251 y(A)33 b Fs(derivation)h(se)-5 b(quenc)g(e)39 -b Fu(of)32 b(a)g(statemen)m(t)i Fs(S)44 b Fu(starting)32 -b(in)f(state)i Fs(s)41 b Fu(is)32 b(either)145 4476 y -Ft(\017)49 b Fu(a)32 b Fs(\014nite)40 b Fu(sequence)458 -4700 y Fo(\015)515 4715 y Fn(0)554 4700 y Fu(,)33 b Fo(\015)670 -4715 y Fn(1)709 4700 y Fu(,)g Fo(\015)825 4715 y Fn(2)864 -4700 y Fu(,)g Ft(\001)17 b(\001)g(\001)n Fu(,)33 b Fo(\015)1156 -4715 y Fn(k)244 4925 y Fu(of)24 b(con\014gurations)g(satisfying)g -Fo(\015)1451 4940 y Fn(0)1515 4925 y Fu(=)g Ft(h)p Fs(S)12 -b Fu(,)24 b Fs(s)8 b Ft(i)p Fu(,)27 b Fo(\015)1969 4940 -y Fn(i)2017 4925 y Ft(\))d Fo(\015)2197 4940 y Fn(i+1)2335 -4925 y Fu(for)h(0)p Ft(\024)p Fu(i)p Fo(<)p Fu(k,)g(k)p -Ft(\025)q Fu(0,)h(and)f(where)244 5045 y Fo(\015)300 -5060 y Fn(k)374 5045 y Fu(is)32 b(either)g(a)h(terminal)d -(con\014guration)h(or)i(a)f(stuc)m(k)i(con\014guration,)e(or)g(it)g(is) -145 5270 y Ft(\017)49 b Fu(an)32 b Fs(in\014nite)40 b -Fu(sequence)458 5494 y Fo(\015)515 5509 y Fn(0)554 5494 -y Fu(,)33 b Fo(\015)670 5509 y Fn(1)709 5494 y Fu(,)g -Fo(\015)825 5509 y Fn(2)864 5494 y Fu(,)g Ft(\001)17 -b(\001)g(\001)p eop -%%Page: 34 44 -34 43 bop 251 130 a Fw(34)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Fu(of)32 -b(con\014gurations)h(satisfying)e Fo(\015)1758 530 y -Fn(0)1830 515 y Fu(=)i Ft(h)o Fs(S)12 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b Fu(and)h Fo(\015)2469 530 y Fn(i)2525 515 -y Ft(\))f Fo(\015)2713 530 y Fn(i+1)2860 515 y Fu(for)g(0)p -Ft(\024)p Fu(i)283 715 y(W)-8 b(e)40 b(shall)d(write)i -Fo(\015)1004 730 y Fn(0)1082 715 y Ft(\))1181 678 y Fn(i)1244 -715 y Fo(\015)1300 730 y Fn(i)1362 715 y Fu(to)g(indicate)f(that)g -(there)i(are)e(i)g(steps)i(in)e(the)i(execution)f(from)283 -835 y Fo(\015)339 850 y Fn(0)413 835 y Fu(to)c Fo(\015)591 -850 y Fn(i)649 835 y Fu(and)g(w)m(e)g(write)f Fo(\015)1294 -850 y Fn(0)1367 835 y Ft(\))1467 799 y Fi(\003)1541 835 -y Fo(\015)1597 850 y Fn(i)1655 835 y Fu(to)h(indicate)e(that)h(there)i -(is)e(a)g(\014nite)g(n)m(um)m(b)s(er)h(of)f(steps.)283 -955 y(Note)i(that)f Fo(\015)792 970 y Fn(0)867 955 y -Ft(\))966 919 y Fn(i)1025 955 y Fo(\015)1081 970 y Fn(i)1140 -955 y Fu(and)g Fo(\015)1389 970 y Fn(0)1463 955 y Ft(\))1563 -919 y Fi(\003)1637 955 y Fo(\015)1693 970 y Fn(i)1752 -955 y Fu(need)i Fs(not)44 b Fu(b)s(e)36 b(deriv)-5 b(ation)33 -b(sequences:)53 b(they)36 b(will)d(b)s(e)283 1076 y(so)g(if)f(and)g -(only)g(if)g Fo(\015)1042 1091 y Fn(i)1098 1076 y Fu(is)g(either)h(a)f -(terminal)e(con\014guration)i(or)g(a)g(stuc)m(k)j(con\014guration.)283 -1298 y Fw(Example)i(2.14)49 b Fu(Consider)33 b(the)g(statemen)m(t)527 -1497 y(\()p Fr(z)g Fu(:=)g Fr(x)p Fu(;)f Fr(x)h Fu(:=)g -Fr(y)p Fu(\);)g Fr(y)f Fu(:=)h Fr(z)283 1697 y Fu(of)j(Chapter)h(1)f -(and)g(let)g Fs(s)1252 1712 y Fn(0)1328 1697 y Fu(b)s(e)g(the)h(state)f -(that)g(maps)g(all)e(v)-5 b(ariables)35 b(except)j Fr(x)e -Fu(and)h Fr(y)f Fu(to)g Fw(0)283 1817 y Fu(and)d(that)g(has)f -Fs(s)906 1832 y Fn(0)979 1817 y Fr(x)g Fu(=)h Fw(5)f -Fu(and)h Fs(s)1497 1832 y Fn(0)1569 1817 y Fr(y)g Fu(=)f -Fw(7)p Fu(.)44 b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)h(the)f(deriv)-5 -b(ation)31 b(sequence:)527 2016 y Ft(h)p Fu(\()p Fr(z)i -Fu(:=)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(y)p Fu(\);)h -Fr(y)g Fu(:=)g Fr(z)p Fu(,)f Fs(s)1680 2031 y Fn(0)1720 -2016 y Ft(i)934 2184 y(\))g(h)p Fr(x)h Fu(:=)f Fr(y)p -Fu(;)h Fr(y)g Fu(:=)f Fr(z)p Fu(,)h Fs(s)1813 2199 y -Fn(0)1853 2184 y Fu([)p Fr(z)p Ft(7!)p Fw(5)p Fu(])p -Ft(i)934 2351 y(\))f(h)p Fr(y)h Fu(:=)f Fr(z)p Fu(,)h(\()p -Fs(s)1521 2366 y Fn(0)1561 2351 y Fu([)p Fr(z)p Ft(7!)p -Fw(5)p Fu(]\)[)p Fr(x)p Ft(7!)p Fw(7)p Fu(])p Ft(i)934 -2519 y(\))f Fu(\(\()p Fs(s)1190 2534 y Fn(0)1230 2519 -y Fu([)p Fr(z)p Ft(7!)p Fw(5)p Fu(]\)[)p Fr(x)p Ft(7!)p -Fw(7)p Fu(]\)[)p Fr(y)p Ft(7!)p Fw(5)p Fu(])283 2718 -y(Corresp)s(onding)c(to)g Fs(e)-5 b(ach)34 b Fu(of)28 -b(these)h(steps)g(w)m(e)g(ha)m(v)m(e)g Fs(derivation)h(tr)-5 -b(e)g(es)36 b Fu(explaining)26 b(wh)m(y)j(they)283 2839 -y(tak)m(e)34 b(place.)43 b(F)-8 b(or)32 b(the)h(\014rst)g(step)527 -3038 y Ft(h)p Fu(\()p Fr(z)g Fu(:=)f Fr(x)p Fu(;)h Fr(x)g -Fu(:=)f Fr(y)p Fu(\);)h Fr(y)g Fu(:=)g Fr(z)p Fu(,)f -Fs(s)1680 3053 y Fn(0)1720 3038 y Ft(i)g(\))g(h)p Fr(x)h -Fu(:=)f Fr(y)p Fu(;)h Fr(y)g Fu(:=)f Fr(z)p Fu(,)h Fs(s)2670 -3053 y Fn(0)2710 3038 y Fu([)p Fr(z)p Ft(7!)p Fw(5)p -Fu(])p Ft(i)283 3237 y Fu(the)g(deriv)-5 b(ation)31 b(tree)j(is)1314 -3408 y Ft(h)p Fr(z)f Fu(:=)f Fr(x)p Fu(,)h Fs(s)1731 -3423 y Fn(0)1771 3408 y Ft(i)f(\))g Fs(s)2022 3423 y -Fn(0)2061 3408 y Fu([)p Fr(z)p Ft(7!)p Fw(5)p Fu(])p -527 3495 2583 4 v 945 3699 a Ft(h)p Fr(z)h Fu(:=)f Fr(x)p -Fu(;)h Fr(x)g Fu(:=)f Fr(y)p Fu(,)h Fs(s)1692 3714 y -Fn(0)1732 3699 y Ft(i)f(\))g(h)p Fr(x)h Fu(:=)f Fr(y)p -Fu(,)h Fs(s)2352 3714 y Fn(0)2392 3699 y Fu([)p Fr(z)p -Ft(7!)p Fw(5)p Fu(])p Ft(i)p 527 3786 V 577 3991 a(h)p -Fu(\()p Fr(z)g Fu(:=)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(y)p -Fu(\);)h Fr(y)g Fu(:=)f Fr(z)p Fu(,)h Fs(s)1730 4006 -y Fn(0)1770 3991 y Ft(i)f(\))g(h)p Fr(x)h Fu(:=)f Fr(y)p -Fu(;)h Fr(y)g Fu(:=)f Fr(z)p Fu(,)h Fs(s)2720 4006 y -Fn(0)2760 3991 y Fu([)p Fr(z)p Ft(7!)p Fw(5)p Fu(])p -Ft(i)283 4193 y Fu(and)41 b(it)e(has)i(b)s(een)g(constructed)h(from)d -(the)i(axiom)e([ass)2404 4208 y Fn(sos)2500 4193 y Fu(])h(and)g(the)h -(rules)g([comp)3449 4157 y Fn(1)3437 4218 y(sos)3531 -4193 y Fu(])g(and)283 4313 y([comp)550 4277 y Fn(2)538 -4338 y(sos)633 4313 y Fu(].)49 b(The)36 b(deriv)-5 b(ation)33 -b(tree)i(for)f(the)g(second)i(step)g(is)d(constructed)k(in)c(a)h -(similar)e(w)m(a)m(y)283 4434 y(using)j(only)g([ass)910 -4449 y Fn(sos)1006 4434 y Fu(])g(and)g([comp)1527 4398 -y Fn(2)1515 4458 y(sos)1610 4434 y Fu(])g(and)g(for)g(the)g(third)g -(step)h(it)e(simply)f(is)i(an)g(instance)g(of)283 4554 -y([ass)435 4569 y Fn(sos)531 4554 y Fu(].)3096 b Fh(2)283 -4777 y Fw(Example)37 b(2.15)49 b Fu(Assume)37 b(that)f -Fs(s)45 b Fr(x)36 b Fu(=)h Fw(3)p Fu(.)55 b(The)37 b(\014rst)g(step)g -(of)f(execution)h(from)e(the)i(con-)283 4897 y(\014guration)527 -5096 y Ft(h)p Fr(y)p Fu(:=)p Fr(1)p Fu(;)c Fr(while)h -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)g Fo(?)g Fr(x)p Fu(;)f Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)283 5295 -y Fu(will)31 b(giv)m(e)h(the)h(con\014guration)527 5494 -y Ft(h)p Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)g Fo(?)f -Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(])p -Ft(i)p eop -%%Page: 35 45 -35 44 bop 0 130 a Fw(2.2)112 b(Structural)37 b(op)s(erational)f(seman)m -(tics)1506 b(35)p 0 193 3473 4 v 0 515 a Fu(This)39 b(is)g(ac)m(hiev)m -(ed)h(using)e(the)i(axiom)d([ass)1617 530 y Fn(sos)1713 -515 y Fu(])i(and)g(the)g(rule)g([comp)2618 479 y Fn(2)2606 -540 y(sos)2701 515 y Fu(])g(as)g(sho)m(wn)h(b)m(y)g(the)0 -636 y(deriv)-5 b(ation)31 b(tree:)929 798 y Ft(h)p Fr(y)p -Fu(:=)p Fr(1)p Fu(,)i Fs(s)8 b Ft(i)32 b(\))g Fs(s)8 -b Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(])p 244 885 2235 4 -v 294 1089 a Ft(h)o Fr(y)p Fu(:=)p Fr(1)p Fu(;)34 b Fr(while)f -Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)h Fs(s)8 b Ft(i)32 b(\))362 -1257 y(h)o Fr(while)i Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p -Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(])p -Ft(i)0 1440 y Fu(The)43 b(next)h(step)f(of)f(the)h(execution)g(will)d -(rewrite)i(the)h(lo)s(op)e(as)i(a)f(conditional)e(using)i(the)0 -1561 y(axiom)31 b([while)540 1576 y Fn(sos)634 1561 y -Fu(])i(so)g(w)m(e)g(get)g(the)g(con\014guration)244 1751 -y Ft(h)p Fr(if)g Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))g Fr(then)g Fu(\(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)q -Fr(x)p Fu(;)f Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\);)1046 1919 y Fr(while)i Ft(:)q Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))e Fr(do)i Fu(\()p Fr(y)p Fu(:=)p Fr(y)p -Fo(?)p Fr(x)p Fu(;)f Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\)\))771 2086 y Fr(else)g(skip)p Fu(,)h Fs(s)8 -b Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(])p Ft(i)0 2276 y Fu(The)38 -b(follo)m(wing)c(step)k(will)d(p)s(erform)h(the)i(test)g(and)f(yields)g -(\(according)f(to)h([if)2937 2240 y Fn(tt)2925 2301 y(sos)3019 -2276 y Fu(]\))g(the)h(con-)0 2397 y(\014guration)244 -2587 y Ft(h)p Fu(\()p Fr(y)p Fu(:=)p Fr(y)p Fo(?)p Fr(x)p -Fu(;)33 b Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(\);)h -Fr(while)f Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g -Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)g Fo(?)f Fr(x)p Fu(;)h -Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(\),)h Fs(s)8 -b Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(])p Ft(i)0 2777 y Fu(W)-8 -b(e)33 b(can)g(then)g(use)h([ass)890 2792 y Fn(sos)985 -2777 y Fu(],)f([comp)1339 2741 y Fn(2)1327 2802 y(sos)1422 -2777 y Fu(])g(and)f([comp)1938 2741 y Fn(1)1926 2802 -y(sos)2021 2777 y Fu(])h(to)f(obtain)f(the)i(con\014guration)244 -2967 y Ft(h)p Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(;)g Fr(while)h Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)g Fo(?)f -Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(3)p Fu(])p -Ft(i)0 3157 y Fu(as)33 b(is)f(v)m(eri\014ed)h(b)m(y)h(the)f(deriv)-5 -b(ation)31 b(tree:)1156 3339 y Ft(h)p Fr(y)p Fu(:=)p -Fr(y)p Fo(?)p Fr(x)p Fu(,)i Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p -Fw(1)p Fu(])p Ft(i\))o Fs(s)g Fu([)p Fr(y)p Ft(7!)p Fw(3)p -Fu(])p 204 3426 3066 4 v 723 3630 a Ft(h)p Fr(y)p Fu(:=)p -Fr(y)p Fo(?)p Fr(x)p Fu(;)33 b Fr(x)p Fu(:=)p Fr(x)p -Ft(\000)p Fr(1)p Fu(,)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p -Fw(1)p Fu(])p Ft(i\)h)o Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(,)34 b Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(3)p -Fu(])p Ft(i)p 204 3717 V 253 3922 a(h)p Fu(\()p Fr(y)p -Fu(:=)p Fr(y)p Fo(?)p Fr(x)p Fu(;)33 b Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\);)h Fr(while)g Ft(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(1)p -Fu(])p Ft(i)32 b(\))507 4089 y(h)p Fr(x)p Fu(:=)p Fr(x)p -Ft(\000)p Fr(1)p Fu(;)i Fr(while)g Ft(:)p Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(3)p -Fu(])p Ft(i)0 4282 y Fu(Using)32 b([ass)426 4297 y Fn(sos)522 -4282 y Fu(])h(and)f([comp)1038 4246 y Fn(2)1026 4307 -y(sos)1121 4282 y Fu(])h(the)g(next)g(con\014guration)f(will)e(then)k -(b)s(e)244 4473 y Ft(h)p Fr(while)f Ft(:)q Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(3)p -Fu(][)p Fr(x)p Ft(7!)p Fw(2)p Fu(])p Ft(i)0 4663 y Fu(Con)m(tin)m(uing) -32 b(in)g(this)g(w)m(a)m(y)i(w)m(e)f(ev)m(en)m(tually)h(reac)m(h)f(the) -g(\014nal)f(state)h Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(6)p -Fu(][)p Fr(x)p Ft(7!)p Fw(1)p Fu(].)304 b Fh(2)0 4873 -y Fw(Exercise)36 b(2.16)49 b Fu(Construct)34 b(a)e(deriv)-5 -b(ation)31 b(sequence)36 b(for)c(the)h(statemen)m(t)244 -5064 y Fr(z)p Fu(:=)p Fr(0)p Fu(;)g Fr(while)h(y)p Ft(\024)q -Fr(x)e(do)h Fu(\()p Fr(z)p Fu(:=)p Fr(z)p Fu(+)p Fr(1)p -Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(y)p Fu(\))0 -5254 y(when)24 b(executed)h(in)d(a)g(state)h(where)h -Fr(x)f Fu(has)g(the)g(v)-5 b(alue)22 b Fw(17)h Fu(and)g -Fr(y)g Fu(has)g(the)g(v)-5 b(alue)22 b Fw(5)p Fu(.)40 -b(Determine)0 5374 y(a)33 b(state)g Fs(s)41 b Fu(suc)m(h)35 -b(that)d(the)i(deriv)-5 b(ation)31 b(sequence)36 b(obtained)c(for)h -(the)g(ab)s(o)m(v)m(e)h(statemen)m(t)f(and)0 5494 y Fs(s)41 -b Fu(is)32 b(in\014nite.)2893 b Fh(2)p eop -%%Page: 36 46 -36 45 bop 251 130 a Fw(36)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 430 515 a Fu(Giv)m(en)30 -b(a)g(statemen)m(t)h Fs(S)42 b Fu(in)29 b(the)i(language)e -Fw(While)g Fu(and)h(a)g(state)g Fs(s)39 b Fu(it)29 b(is)h(alw)m(a)m(ys) -h(p)s(ossible)283 636 y(to)43 b(\014nd)g Fs(at)i(le)-5 -b(ast)44 b(one)50 b Fu(deriv)-5 b(ation)41 b(sequence)46 -b(that)d(starts)g(in)f(the)h(con\014guration)f Ft(h)p -Fs(S)12 b Fu(,)43 b Fs(s)8 b Ft(i)p Fu(:)283 756 y(simply)29 -b(apply)h(axioms)e(and)j(rules)f(forev)m(er)g(or)g(un)m(til)f(a)g -(terminal)f(or)i(stuc)m(k)h(con\014guration)e(is)283 -877 y(reac)m(hed.)60 b(Insp)s(ection)37 b(of)g(T)-8 b(able)37 -b(2.2)g(sho)m(ws)i(that)e(there)h(are)f(no)h(stuc)m(k)h -(con\014gurations)e(in)283 997 y Fw(While)30 b Fu(and)i(Exercise)g -(2.22)f(b)s(elo)m(w)g(will)e(sho)m(w)k(that)e(there)h(is)f(in)g(fact)g -(only)g(one)g(deriv)-5 b(ation)283 1117 y(sequence)41 -b(that)c(starts)h(with)f Ft(h)p Fs(S)12 b Fu(,)37 b Fs(s)8 -b Ft(i)p Fu(.)59 b(Ho)m(w)m(ev)m(er,)41 b(some)c(of)g(the)h(constructs) -h(considered)g(in)283 1238 y(Section)k(2.4)g(that)f(extend)j -Fw(While)c Fu(will)f(ha)m(v)m(e)45 b(con\014gurations)d(that)h(are)g -(stuc)m(k)h(or)f(more)283 1358 y(than)33 b(one)g(deriv)-5 -b(ation)31 b(sequence)k(that)e(starts)g(in)e(a)i(giv)m(en)f -(con\014guration.)430 1496 y(In)j(analogy)f(with)h(the)h(terminology)d -(of)h(the)i(previous)g(section)f(w)m(e)h(shall)e(sa)m(y)i(that)f(the) -283 1616 y(execution)f(of)e(a)g(statemen)m(t)h Fs(S)45 -b Fu(on)32 b(a)g(state)h Fs(s)429 1905 y Ft(\017)48 b -Fs(terminates)e Fu(if)36 b(and)i(only)g(if)e(there)j(is)e(a)g(\014nite) -h(deriv)-5 b(ation)36 b(sequence)k(starting)d(with)527 -2025 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)o Fu(,)33 -b(and)429 2314 y Ft(\017)48 b Fs(lo)-5 b(ops)54 b Fu(if)46 -b(and)g(only)g(if)f(there)j(is)e(an)g(in\014nite)g(deriv)-5 -b(ation)44 b(sequence)50 b(starting)45 b(with)527 2434 -y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)o Fu(.)283 -2723 y(W)-8 b(e)37 b(shall)d(sa)m(y)j(that)f(the)g(execution)g(of)g -Fs(S)47 b Fu(on)36 b Fs(s)44 b(terminates)37 b(suc)-5 -b(c)g(essful)5 b(ly)45 b Fu(if)34 b Ft(h)p Fs(S)12 b -Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))3613 2687 y Fi(\003)3685 -2723 y Fs(s)3733 2687 y Fi(0)283 2844 y Fu(for)k(some)f(state)i -Fs(s)974 2807 y Fi(0)997 2844 y Fu(;)h(in)d Fw(While)f -Fu(an)i(execution)g(terminates)f(successfully)i(if)e(and)h(only)f(if)g -(it)283 2964 y(terminates)e(b)s(ecause)h(there)g(are)f(no)g(stuc)m(k)i -(con\014gurations.)45 b(Finally)-8 b(,)30 b(w)m(e)k(shall)e(sa)m(y)i -(that)f(a)283 3084 y(statemen)m(t)e Fs(S)42 b(always)32 -b(terminates)38 b Fu(if)29 b(it)g(terminates)h(on)g(all)e(states,)k -(and)e Fs(always)i(lo)-5 b(ops)38 b Fu(if)29 b(it)283 -3205 y(lo)s(ops)j(on)g(all)f(states.)283 3570 y Fw(Exercise)37 -b(2.17)49 b Fu(Extend)42 b Fw(While)d Fu(with)i(the)g(construct)h -Fr(repeat)g Fs(S)53 b Fr(until)42 b Fs(b)k Fu(and)41 -b(sp)s(ec-)283 3690 y(ify)i(the)g(structural)g(op)s(erational)e(seman)m -(tics)i(for)f(it.)74 b(\(The)44 b(seman)m(tics)f(for)f(the)i -Fr(repeat)p Fu(-)283 3811 y(construct)34 b(is)e(not)h(allo)m(w)m(ed)e -(to)i(rely)f(on)h(the)g(existence)h(of)e(a)g Fr(while)p -Fu(-construct.\))380 b Fh(2)283 4158 y Fw(Exercise)37 -b(2.18)49 b Fu(Extend)42 b Fw(While)c Fu(with)j(the)f(construct)i -Fr(for)f Fs(x)52 b Fu(:=)41 b Fs(a)2989 4173 y Fn(1)3069 -4158 y Fr(to)g Fs(a)3269 4173 y Fn(2)3349 4158 y Fr(do)g -Fs(S)52 b Fu(and)283 4279 y(sp)s(ecify)31 b(the)f(structural)f(op)s -(erational)e(seman)m(tics)j(for)f(it.)42 b(Hin)m(t:)f(Y)-8 -b(ou)30 b(ma)m(y)f(need)i(to)e(assume)283 4399 y(that)j(y)m(ou)g(ha)m -(v)m(e)h(an)e(\\in)m(v)m(erse")h(to)f Ft(N)15 b Fu(,)31 -b(so)h(that)f(there)h(is)f(a)h(n)m(umeral)e(for)h(eac)m(h)h(n)m(um)m(b) -s(er)g(that)283 4520 y(ma)m(y)40 b(arise)g(during)f(the)i(computation.) -64 b(\(The)41 b(seman)m(tics)f(for)g(the)g Fr(for)p Fu(-construct)h(is) -f(not)283 4640 y(allo)m(w)m(ed)32 b(to)h(rely)f(on)g(the)h(existence)i -(of)d(a)g Fr(while)p Fu(-construct.\))1080 b Fh(2)283 -5034 y Fp(Prop)t(erties)46 b(of)f(the)h(seman)l(tics)283 -5254 y Fu(F)-8 b(or)44 b(structural)g(op)s(erational)e(seman)m(tics)i -(it)f(is)h(often)h(useful)f(to)g(conduct)h(pro)s(ofs)f(b)m(y)h(in-)283 -5374 y(duction)40 b(on)g(the)g Fs(length)47 b Fu(of)39 -b(the)h(deriv)-5 b(ation)39 b(sequences.)68 b(The)41 -b(pro)s(of)e(tec)m(hnique)i(ma)m(y)f(b)s(e)283 5494 y(summarized)32 -b(as)h(follo)m(ws:)p eop -%%Page: 37 47 -37 46 bop 0 130 a Fw(2.2)112 b(Structural)37 b(op)s(erational)f(seman)m -(tics)1506 b(37)p 0 193 3473 4 v 0 419 3470 4 v 0 436 -V -2 643 4 208 v 15 643 V 544 564 a(Induction)32 b(on)g(the)h(Length)g -(of)g(Deriv)-6 b(ation)31 b(Sequences)p 3452 643 V 3469 -643 V 0 647 3470 4 v -2 895 4 249 v 15 895 V 66 812 a -Fu(1:)143 b(Pro)m(v)m(e)34 b(that)f(the)g(prop)s(ert)m(y)g(holds)f(for) -g(all)f(deriv)-5 b(ation)31 b(sequences)k(of)e(length)f(0.)p -3452 895 V 3469 895 V -2 1424 4 529 v 15 1424 V 66 980 -a(2:)143 b(Pro)m(v)m(e)35 b(that)d(the)i(prop)s(ert)m(y)f(holds)g(for)f -(all)f(other)i(deriv)-5 b(ation)31 b(sequences:)47 b(Assume)285 -1100 y(that)39 b(the)h(prop)s(ert)m(y)g(holds)f(for)g(all)e(deriv)-5 -b(ation)38 b(sequences)k(of)d(length)g(at)g(most)g(k)285 -1220 y(\(this)31 b(is)f(called)g(the)h Fs(induction)i(hyp)-5 -b(othesis)p Fu(\))31 b(and)g(sho)m(w)h(that)e(it)g(holds)h(for)f(deriv) --5 b(a-)285 1341 y(tion)32 b(sequences)k(of)c(length)g(k+1.)p -3452 1424 V 3469 1424 V 0 1427 3470 4 v 0 1444 V 0 1640 -a(The)27 b(induction)f(step)h(of)g(a)f(pro)s(of)g(follo)m(wing)d(this)k -(principle)e(will)f(often)i(b)s(e)h(done)g(b)m(y)h(insp)s(ect-)0 -1760 y(ing)k(either)145 1960 y Ft(\017)49 b Fu(the)33 -b(structure)h(of)e(the)h(syn)m(tactic)g(elemen)m(t,)g(or)145 -2162 y Ft(\017)49 b Fu(the)33 b(deriv)-5 b(ation)31 b(tree)i(v)-5 -b(alidating)29 b(the)k(\014rst)h(transition)c(of)j(the)g(deriv)-5 -b(ation)30 b(sequence.)0 2361 y(Note)j(that)f(the)h(pro)s(of)f(tec)m -(hnique)i(is)e(a)g(simple)f(application)f(of)i(mathematical)e -(induction.)146 2482 y(T)-8 b(o)30 b(illustrate)e(the)i(use)h(of)e(the) -i(pro)s(of)e(tec)m(hnique)i(w)m(e)g(shall)d(pro)m(v)m(e)j(the)f(follo)m -(wing)e(lemma)0 2602 y(\(to)22 b(b)s(e)h(used)g(in)f(the)h(next)g -(section\).)40 b(In)m(tuitiv)m(ely)-8 b(,)24 b(the)f(lemma)d(expresses) -26 b(that)c(the)h(execution)0 2723 y(of)35 b(a)h(comp)s(osite)e -(construct)j Fs(S)1159 2738 y Fn(1)1198 2723 y Fu(;)p -Fs(S)1292 2738 y Fn(2)1367 2723 y Fu(can)f(b)s(e)g(split)e(in)m(to)h(t) -m(w)m(o)h(parts,)h(one)f(corresp)s(onding)g(to)0 2843 -y Fs(S)67 2858 y Fn(1)139 2843 y Fu(and)c(the)h(other)g(corresp)s -(onding)g(to)f Fs(S)1564 2858 y Fn(2)1603 2843 y Fu(.)p -0 2963 3473 5 v 0 3134 a Fw(Lemma)37 b(2.19)49 b Fu(If)26 -b Ft(h)p Fs(S)842 3149 y Fn(1)881 3134 y Fu(;)p Fs(S)975 -3149 y Fn(2)1015 3134 y Fu(,)h Fs(s)8 b Ft(i)26 b(\))1282 -3098 y Fn(k)1349 3134 y Fs(s)1397 3098 y Fi(00)1466 3134 -y Fu(then)h(there)g(exists)g(a)f(state)h Fs(s)2544 3098 -y Fi(0)2593 3134 y Fu(and)f(natural)g(n)m(um)m(b)s(ers)0 -3254 y(k)51 3269 y Fn(1)123 3254 y Fu(and)33 b(k)364 -3269 y Fn(2)437 3254 y Fu(suc)m(h)h(that)e Ft(h)p Fs(S)974 -3269 y Fn(1)1013 3254 y Fu(,)h Fs(s)8 b Ft(i)32 b(\))1292 -3218 y Fn(k)1329 3227 y Fd(1)1400 3254 y Fs(s)1448 3218 -y Fi(0)1504 3254 y Fu(and)h Ft(h)o Fs(S)1799 3269 y Fn(2)1839 -3254 y Fu(,)f Fs(s)1946 3218 y Fi(0)1970 3254 y Ft(i)g(\))2141 -3218 y Fn(k)2178 3227 y Fd(2)2249 3254 y Fs(s)2297 3218 -y Fi(00)2372 3254 y Fu(where)i(k)f(=)f(k)2897 3269 y -Fn(1)2937 3254 y Fu(+k)3064 3269 y Fn(2)3104 3254 y Fu(.)p -0 3375 V 0 3574 a Fw(Pro)s(of:)44 b Fu(The)39 b(pro)s(of)f(is)g(b)m(y)h -(induction)f(on)g(the)h(n)m(um)m(b)s(er)g(k,)i(that)d(is)g(b)m(y)h -(induction)f(on)g(the)0 3695 y(length)32 b(of)g(the)h(deriv)-5 -b(ation)31 b(sequence)k Ft(h)p Fs(S)1545 3710 y Fn(1)1584 -3695 y Fu(;)p Fs(S)1678 3710 y Fn(2)1718 3695 y Fu(,)d -Fs(s)8 b Ft(i)33 b(\))1996 3659 y Fn(k)2070 3695 y Fs(s)2118 -3659 y Fi(00)2161 3695 y Fu(.)146 3815 y(If)g(k)g(=)f(0)h(then)g(the)g -(result)f(holds)g(v)-5 b(acuously)d(.)146 3936 y(F)g(or)26 -b(the)h(induction)f(step)i(w)m(e)g(assume)f(that)f(the)h(lemma)e(holds) -h(for)h(k)33 b Ft(\024)g Fu(k)2889 3951 y Fn(0)2955 3936 -y Fu(and)27 b(w)m(e)h(shall)0 4056 y(pro)m(v)m(e)34 b(it)d(for)h(k)560 -4071 y Fn(0)600 4056 y Fu(+1.)43 b(So)33 b(assume)g(that)244 -4256 y Ft(h)p Fs(S)350 4271 y Fn(1)389 4256 y Fu(;)p -Fs(S)483 4271 y Fn(2)522 4256 y Fu(,)g Fs(s)8 b Ft(i)32 -b(\))801 4219 y Fn(k)838 4228 y Fd(0)873 4219 y Fn(+1)1000 -4256 y Fs(s)1048 4219 y Fi(00)0 4455 y Fu(This)h(means)f(that)h(the)g -(deriv)-5 b(ation)31 b(sequence)k(can)e(b)s(e)g(written)f(as)244 -4655 y Ft(h)p Fs(S)350 4670 y Fn(1)389 4655 y Fu(;)p -Fs(S)483 4670 y Fn(2)522 4655 y Fu(,)h Fs(s)8 b Ft(i)32 -b(\))g Fo(\015)38 b Ft(\))1022 4619 y Fn(k)1059 4628 -y Fd(0)1130 4655 y Fs(s)1178 4619 y Fi(00)0 4854 y Fu(for)29 -b(some)h(con\014guration)f Fo(\015)5 b Fu(.)43 b(No)m(w)30 -b(one)h(of)e(t)m(w)m(o)i(cases)g(applies)e(dep)s(ending)h(on)g(whic)m -(h)g(of)g(the)0 4975 y(t)m(w)m(o)j(rules)g([comp)685 -4939 y Fn(1)673 4999 y(sos)768 4975 y Fu(])f(and)h([comp)1284 -4939 y Fn(2)1272 4999 y(sos)1367 4975 y Fu(])f(w)m(as)i(used)g(to)e -(obtain)f Ft(h)p Fs(S)2365 4990 y Fn(1)2404 4975 y Fu(;)p -Fs(S)2498 4990 y Fn(2)2538 4975 y Fu(,)h Fs(s)8 b Ft(i)33 -b(\))f Fo(\015)5 b Fu(.)146 5095 y(In)33 b(the)g(\014rst)g(case)h -(where)g([comp)1393 5059 y Fn(1)1381 5120 y(sos)1475 -5095 y Fu(])f(is)f(used)i(w)m(e)f(ha)m(v)m(e)244 5295 -y Ft(h)p Fs(S)350 5310 y Fn(1)389 5295 y Fu(;)p Fs(S)483 -5310 y Fn(2)522 5295 y Fu(,)g Fs(s)8 b Ft(i)32 b(\))g(h)p -Fs(S)939 5259 y Fi(0)939 5319 y Fn(1)978 5295 y Fu(;)p -Fs(S)1072 5310 y Fn(2)1112 5295 y Fu(,)g Fs(s)1219 5259 -y Fi(0)1243 5295 y Ft(i)0 5494 y Fu(b)s(ecause)p eop -%%Page: 38 48 -38 47 bop 251 130 a Fw(38)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(h)p Fs(S)633 -530 y Fn(1)672 515 y Fu(,)c Fs(s)8 b Ft(i)32 b(\))g(h)p -Fs(S)1089 479 y Fi(0)1089 540 y Fn(1)1128 515 y Fu(,)h -Fs(s)1236 479 y Fi(0)1259 515 y Ft(i)283 732 y Fu(W)-8 -b(e)33 b(therefore)h(ha)m(v)m(e)527 950 y Ft(h)p Fs(S)633 -913 y Fi(0)633 974 y Fn(1)672 950 y Fu(;)p Fs(S)766 965 -y Fn(2)806 950 y Fu(,)e Fs(s)913 913 y Fi(0)937 950 y -Ft(i)g(\))1108 913 y Fn(k)1145 922 y Fd(0)1216 950 y -Fs(s)1264 913 y Fi(00)283 1167 y Fu(and)37 b(the)h(induction)e(h)m(yp)s -(othesis)i(can)f(b)s(e)g(applied)f(to)g(this)h(deriv)-5 -b(ation)35 b(sequence)k(b)s(ecause)283 1287 y(it)29 b(is)h(shorter)h -(than)f(the)g(one)h(w)m(e)g(started)f(with.)43 b(This)30 -b(means)g(that)g(there)g(is)g(a)g(state)g Fs(s)3529 1302 -y Fn(0)3599 1287 y Fu(and)283 1408 y(natural)i(n)m(um)m(b)s(ers)h(k) -1069 1423 y Fn(1)1142 1408 y Fu(and)f(k)1382 1423 y Fn(2)1455 -1408 y Fu(suc)m(h)i(that)527 1625 y Ft(h)p Fs(S)633 1588 -y Fi(0)633 1649 y Fn(1)672 1625 y Fu(,)f Fs(s)780 1588 -y Fi(0)803 1625 y Ft(i)g(\))974 1588 y Fn(k)1011 1597 -y Fd(1)1083 1625 y Fs(s)1131 1640 y Fn(0)1203 1625 y -Fu(and)f Ft(h)p Fs(S)1498 1640 y Fn(2)1537 1625 y Fu(,)h -Fs(s)1645 1640 y Fn(0)1685 1625 y Ft(i)f(\))1855 1588 -y Fn(k)1892 1597 y Fd(2)1964 1625 y Fs(s)2012 1588 y -Fi(00)283 1842 y Fu(where)i(k)616 1857 y Fn(1)656 1842 -y Fu(+k)783 1857 y Fn(2)823 1842 y Fu(=k)950 1857 y Fn(0)990 -1842 y Fu(.)43 b(Using)32 b(that)h Ft(h)p Fs(S)1652 1857 -y Fn(1)1691 1842 y Fu(,)f Fs(s)8 b Ft(i)33 b(\))f(h)p -Fs(S)2108 1806 y Fi(0)2107 1866 y Fn(1)2147 1842 y Fu(,)h -Fs(s)2255 1806 y Fi(0)2278 1842 y Ft(i)f Fu(and)h Ft(h)p -Fs(S)2645 1806 y Fi(0)2644 1866 y Fn(1)2684 1842 y Fu(,)f -Fs(s)2791 1806 y Fi(0)2815 1842 y Ft(i)g(\))2986 1806 -y Fn(k)3023 1815 y Fd(1)3094 1842 y Fs(s)3142 1857 y -Fn(0)3214 1842 y Fu(w)m(e)i(get)527 2059 y Ft(h)p Fs(S)633 -2074 y Fn(1)672 2059 y Fu(,)f Fs(s)8 b Ft(i)32 b(\))951 -2023 y Fn(k)988 2032 y Fd(1)1023 2023 y Fn(+1)1150 2059 -y Fs(s)1198 2074 y Fn(0)283 2276 y Fu(W)-8 b(e)34 b(ha)m(v)m(e)g -(already)f(seen)h(that)f Ft(h)o Fs(S)1551 2291 y Fn(2)1591 -2276 y Fu(,)g Fs(s)1699 2291 y Fn(0)1738 2276 y Ft(i)g(\))1909 -2240 y Fn(k)1946 2249 y Fd(2)2018 2276 y Fs(s)2066 2240 -y Fi(00)2142 2276 y Fu(and)g(since)g(\(k)2660 2291 y -Fn(1)2700 2276 y Fu(+1\)+k)2990 2291 y Fn(2)3062 2276 -y Fu(=)g(k)3222 2291 y Fn(0)3262 2276 y Fu(+1)g(w)m(e)h(ha)m(v)m(e)283 -2396 y(pro)m(v)m(ed)h(the)e(required)g(result.)430 2520 -y(The)f(second)h(p)s(ossibilit)m(y)c(is)h(that)i([comp)1980 -2483 y Fn(2)1968 2544 y(sos)2062 2520 y Fu(])g(has)f(b)s(een)h(used)h -(to)e(obtain)f(the)h(deriv)-5 b(ation)283 2640 y Ft(h)p -Fs(S)389 2655 y Fn(1)428 2640 y Fu(;)p Fs(S)522 2655 -y Fn(2)562 2640 y Fu(,)32 b Fs(s)8 b Ft(i)33 b(\))f Fo(\015)5 -b Fu(.)43 b(Then)34 b(w)m(e)g(ha)m(v)m(e)527 2857 y Ft(h)p -Fs(S)633 2872 y Fn(1)672 2857 y Fu(,)f Fs(s)8 b Ft(i)32 -b(\))g Fs(s)1031 2821 y Fi(0)283 3074 y Fu(and)h Fo(\015)38 -b Fu(is)32 b Ft(h)p Fs(S)766 3089 y Fn(2)805 3074 y Fu(,)g -Fs(s)912 3038 y Fi(0)936 3074 y Ft(i)g Fu(so)h(that)527 -3291 y Ft(h)p Fs(S)633 3306 y Fn(2)672 3291 y Fu(,)g -Fs(s)780 3255 y Fi(0)803 3291 y Ft(i)g(\))974 3255 y -Fn(k)1011 3264 y Fd(0)1083 3291 y Fs(s)1131 3255 y Fi(00)283 -3508 y Fu(The)h(result)e(no)m(w)i(follo)m(ws)d(b)m(y)j(c)m(ho)s(osing)e -(k)1862 3523 y Fn(1)1902 3508 y Fu(=1)g(and)g(k)2299 -3523 y Fn(2)2339 3508 y Fu(=k)2466 3523 y Fn(0)2506 3508 -y Fu(.)1148 b Fh(2)283 3842 y Fw(Exercise)37 b(2.20)49 -b Fu(Supp)s(ose)27 b(that)f Ft(h)o Fs(S)1661 3857 y Fn(1)1701 -3842 y Fu(;)p Fs(S)1795 3857 y Fn(2)1834 3842 y Fu(,)h -Fs(s)8 b Ft(i\))2075 3806 y Fi(\003)2114 3842 y Ft(h)p -Fs(S)2220 3857 y Fn(2)2259 3842 y Fu(,)28 b Fs(s)2362 -3806 y Fi(0)2385 3842 y Ft(i)p Fu(.)41 b(Sho)m(w)27 b(that)e(it)g(is)h -Fs(not)35 b Fu(necessarily)283 3962 y(the)e(case)h(that)e -Ft(h)p Fs(S)975 3977 y Fn(1)1014 3962 y Fu(,)h Fs(s)8 -b Ft(i\))1260 3926 y Fi(\003)1300 3962 y Fs(s)1348 3926 -y Fi(0)1371 3962 y Fu(.)2283 b Fh(2)283 4210 y Fw(Exercise)37 -b(2.21)49 b(\(Essen)m(tial\))30 b Fu(Pro)m(v)m(e)k(that)527 -4427 y(if)e Ft(h)p Fs(S)723 4442 y Fn(1)762 4427 y Fu(,)g -Fs(s)8 b Ft(i)33 b(\))1040 4391 y Fn(k)1114 4427 y Fs(s)1162 -4391 y Fi(0)1218 4427 y Fu(then)g Ft(h)p Fs(S)1546 4442 -y Fn(1)1585 4427 y Fu(;)p Fs(S)1679 4442 y Fn(2)1719 -4427 y Fu(,)f Fs(s)8 b Ft(i)33 b(\))1997 4391 y Fn(k)2071 -4427 y Ft(h)p Fs(S)2177 4442 y Fn(2)2216 4427 y Fu(,)g -Fs(s)2324 4391 y Fi(0)2347 4427 y Ft(i)283 4644 y Fu(that)g(is)f(the)h -(execution)g(of)f Fs(S)1375 4659 y Fn(1)1447 4644 y Fu(is)g(not)h -(in\015uenced)g(b)m(y)h(the)f(statemen)m(t)g(follo)m(wing)d(it.)240 -b Fh(2)430 4891 y Fu(In)25 b(the)h(previous)g(section)f(w)m(e)h -(de\014ned)h(a)e(notion)f(of)h(determinism)e(based)j(on)f(the)h -(natural)283 5012 y(seman)m(tics.)59 b(F)-8 b(or)37 b(the)h(structural) -f(op)s(erational)e(seman)m(tics)j(w)m(e)g(de\014ne)h(the)f(similar)c -(notion)283 5132 y(as)g(follo)m(ws.)46 b(The)35 b(seman)m(tics)e(of)h -(T)-8 b(able)33 b(2.2)g(is)h Fs(deterministic)k Fu(if)33 -b(for)g(all)e(c)m(hoices)k(of)e Fs(S)12 b Fu(,)34 b Fs(s)8 -b Fu(,)34 b Fo(\015)283 5252 y Fu(and)f Fo(\015)529 5216 -y Fi(0)585 5252 y Fu(w)m(e)h(ha)m(v)m(e)f(that)527 5470 -y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))g -Fo(\015)38 b Fu(and)32 b Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 -b Ft(i)33 b(\))f Fo(\015)1695 5433 y Fi(0)1751 5470 y -Fu(imply)e Fo(\015)38 b Fu(=)32 b Fo(\015)2277 5433 y -Fi(0)p eop -%%Page: 39 49 -39 48 bop 0 130 a Fw(2.2)112 b(Structural)37 b(op)s(erational)f(seman)m -(tics)1506 b(39)p 0 193 3473 4 v 0 515 a(Exercise)36 -b(2.22)49 b(\(Essen)m(tial\))d Fu(Sho)m(w)j(that)f(the)g(structural)g -(op)s(erational)e(seman)m(tics)i(of)0 636 y(T)-8 b(able)38 -b(2.2)g(is)g(deterministic.)60 b(Deduce)39 b(that)f(there)h(is)f -(exactly)h(one)g(deriv)-5 b(ation)37 b(sequence)0 756 -y(starting)25 b(in)g(a)h(con\014guration)f Ft(h)p Fs(S)12 -b Fu(,)26 b Fs(s)8 b Ft(i)p Fu(.)41 b(Argue)26 b(that)g(a)g(statemen)m -(t)h Fs(S)37 b Fu(of)26 b Fw(While)e Fu(cannot)j(b)s(oth)0 -877 y(terminate)34 b(and)h(lo)s(op)f(on)h(a)g(state)g -Fs(s)44 b Fu(and)35 b(hence)h(it)f(cannot)g(b)s(oth)g(b)s(e)g(alw)m(a)m -(ys)h(terminating)0 997 y(and)d(alw)m(a)m(ys)g(lo)s(oping.)2555 -b Fh(2)146 1166 y Fu(In)31 b(the)g(previous)h(section)e(w)m(e)i -(de\014ned)g(a)f(notion)e(of)h(t)m(w)m(o)i(statemen)m(ts)g -Fs(S)2848 1181 y Fn(1)2917 1166 y Fu(and)f Fs(S)3172 -1181 y Fn(2)3242 1166 y Fu(b)s(eing)0 1287 y(seman)m(tically)26 -b(equiv)-5 b(alen)m(t.)41 b(The)29 b(similar)24 b(notion)i(can)i(b)s(e) -g(de\014ned)h(based)f(on)g(the)g(structural)0 1407 y(op)s(erational)i -(seman)m(tics:)44 b Fs(S)1060 1422 y Fn(1)1132 1407 y -Fu(and)32 b Fs(S)1388 1422 y Fn(2)1460 1407 y Fu(are)h -Fs(semantic)-5 b(al)5 b(ly)34 b(e)-5 b(quivalent)41 b -Fu(if)31 b(for)h(all)f(states)i Fs(s)145 1567 y Ft(\017)49 -b(h)p Fs(S)350 1582 y Fn(1)389 1567 y Fu(,)32 b Fs(s)8 -b Ft(i)31 b(\))666 1530 y Fi(\003)737 1567 y Fo(\015)37 -b Fu(if)30 b(and)i(only)f(if)f Ft(h)p Fs(S)1509 1582 -y Fn(2)1548 1567 y Fu(,)i Fs(s)8 b Ft(i)32 b(\))1825 -1530 y Fi(\003)1896 1567 y Fo(\015)5 b Fu(,)32 b(whenev)m(er)j -Fo(\015)h Fu(is)31 b(a)h(con\014guration)f(that)244 1687 -y(is)h(either)g(stuc)m(k)j(or)d(terminal,)e(and)145 1876 -y Ft(\017)49 b Fu(there)30 b(is)e(an)h(in\014nite)f(deriv)-5 -b(ation)28 b(sequence)k(starting)c(in)g Ft(h)p Fs(S)2475 -1891 y Fn(1)2514 1876 y Fu(,)i Fs(s)8 b Ft(i)29 b Fu(if)f(and)h(only)g -(if)f(there)244 1996 y(is)k(one)h(starting)e(in)h Ft(h)p -Fs(S)1104 2011 y Fn(2)1143 1996 y Fu(,)h Fs(s)8 b Ft(i)p -Fu(.)0 2155 y(Note)47 b(that)f(in)g(the)g(\014rst)h(case)h(the)f -(length)e(of)h(the)h(t)m(w)m(o)g(deriv)-5 b(ation)45 -b(sequences)50 b(ma)m(y)c(b)s(e)0 2276 y(di\013eren)m(t.)0 -2445 y Fw(Exercise)36 b(2.23)49 b Fu(Sho)m(w)f(that)f(the)h(follo)m -(wing)d(statemen)m(ts)j(of)e Fw(While)g Fu(are)h(seman)m(tically)0 -2566 y(equiv)-5 b(alen)m(t)32 b(in)g(the)h(ab)s(o)m(v)m(e)h(sense:)145 -2725 y Ft(\017)49 b Fs(S)12 b Fu(;)p Fr(skip)33 b Fu(and)g -Fs(S)145 2914 y Ft(\017)49 b Fr(while)34 b Fs(b)k Fr(do)33 -b Fs(S)45 b Fu(and)32 b Fr(if)h Fs(b)39 b Fr(then)33 -b Fu(\()p Fs(S)12 b Fu(;)33 b Fr(while)h Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(\))32 b Fr(else)i(skip)145 3103 y Ft(\017)49 -b Fs(S)311 3118 y Fn(1)350 3103 y Fu(;\()p Fs(S)482 3118 -y Fn(2)521 3103 y Fu(;)p Fs(S)615 3118 y Fn(3)655 3103 -y Fu(\))32 b(and)h(\()p Fs(S)1020 3118 y Fn(1)1059 3103 -y Fu(;)p Fs(S)1153 3118 y Fn(2)1193 3103 y Fu(\);)p Fs(S)1325 -3118 y Fn(3)0 3262 y Fu(Y)-8 b(ou)42 b(ma)m(y)g(use)i(the)e(result)g -(of)g(Exercise)i(2.22.)72 b(Discuss)43 b(to)f(what)g(exten)m(t)i(the)f -(notion)e(of)0 3382 y(seman)m(tic)24 b(equiv)-5 b(alence)25 -b(in)m(tro)s(duced)g(ab)s(o)m(v)m(e)g(is)f(the)i(same)e(as)h(that)f -(de\014ned)i(from)e(the)h(natural)0 3503 y(seman)m(tics.)2961 -b Fh(2)0 3672 y Fw(Exercise)36 b(2.24)49 b Fu(Pro)m(v)m(e)37 -b(that)f Fr(repeat)h Fs(S)47 b Fr(until)37 b Fs(b)k Fu(\(as)36 -b(de\014ned)h(in)d(Exercise)j(2.17\))e(is)g(se-)0 3793 -y(man)m(tically)30 b(equiv)-5 b(alen)m(t)32 b(to)g Fs(S)12 -b Fu(;)33 b Fr(while)h Ft(:)f Fs(b)38 b Fr(do)33 b Fs(S)12 -b Fu(.)1512 b Fh(2)0 4074 y Fp(The)44 b(seman)l(tic)j(function)d -FC(S)1440 4092 y Fk(sos)0 4259 y Fu(As)f(in)f(the)h(previous)g(section) -f(the)h Fs(me)-5 b(aning)50 b Fu(of)42 b(statemen)m(ts)h(can)g(b)s(e)g -(summarized)e(b)m(y)j(a)0 4379 y(\(partial\))30 b(function)i(from)g -Fw(State)g Fu(to)g Fw(State)p Fu(:)244 4538 y Ft(S)312 -4553 y Fn(sos)407 4538 y Fu(:)43 b Fw(Stm)32 b Ft(!)g -Fu(\()p Fw(State)h Fo(,)-17 b Ft(!)32 b Fw(State)p Fu(\))0 -4698 y(It)h(is)f(giv)m(en)g(b)m(y)244 4939 y Ft(S)312 -4954 y Fn(sos)407 4939 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])q Fs(s)40 b Fu(=)738 4764 y Fg(8)738 4839 y(<)738 -4988 y(:)853 4854 y Fs(s)901 4818 y Fi(0)1179 4854 y -Fu(if)31 b Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 -b(\))1652 4818 y Fi(\003)1724 4854 y Fs(s)1772 4818 y -Fi(0)853 5022 y Fu(undef)p 853 5035 243 4 v 91 w(otherwise)0 -5180 y(The)h(w)m(ell-de\014nedness)g(of)e(the)h(de\014nition)e(follo)m -(ws)h(from)f(Exercise)j(2.22.)0 5349 y Fw(Exercise)i(2.25)49 -b Fu(Determine)i(whether)i(or)f(not)g(seman)m(tic)f(equiv)-5 -b(alence)53 b(of)e Fs(S)3066 5364 y Fn(1)3157 5349 y -Fu(and)h Fs(S)3433 5364 y Fn(2)0 5470 y Fu(amoun)m(ts)32 -b(to)h Ft(S)580 5485 y Fn(sos)676 5470 y Fu([)-17 b([)p -Fs(S)780 5485 y Fn(1)819 5470 y Fu(])g(])34 b(=)e Ft(S)1066 -5485 y Fn(sos)1161 5470 y Fu([)-17 b([)p Fs(S)1265 5485 -y Fn(2)1305 5470 y Fu(])g(].)2029 b Fh(2)p eop -%%Page: 40 50 -40 49 bop 251 130 a Fw(40)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fj(2.3)161 -b(An)53 b(equiv)-9 b(alence)55 b(result)283 734 y Fu(W)-8 -b(e)29 b(ha)m(v)m(e)g(giv)m(en)e(t)m(w)m(o)i(de\014nitions)e(of)g(the)h -(seman)m(tics)g(of)f Fw(While)f Fu(and)i(w)m(e)h(shall)d(no)m(w)i -(address)283 855 y(the)33 b(question)g(of)g(their)f(equiv)-5 -b(alence.)p 283 975 3473 5 v 283 1142 a Fw(Theorem)38 -b(2.26)49 b Fu(F)-8 b(or)31 b(ev)m(ery)k(statemen)m(t)e -Fs(S)44 b Fu(of)32 b Fw(While)f Fu(w)m(e)j(ha)m(v)m(e)g -Ft(S)2863 1157 y Fn(ns)2934 1142 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])33 b(=)g Ft(S)3284 1157 y Fn(sos)3380 -1142 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(.)p 283 -1263 V 283 1459 a(This)33 b(result)g(expresses)i(t)m(w)m(o)f(prop)s -(erties:)429 1655 y Ft(\017)48 b Fu(If)27 b(the)g(execution)g(of)f -Fs(S)38 b Fu(from)26 b(some)g(state)h(terminates)f(in)g(one)g(of)h(the) -f(seman)m(tics)h(then)527 1776 y(it)32 b(also)g(terminates)f(in)h(the)h -(other)g(and)g(the)g(resulting)e(states)j(will)c(b)s(e)j(equal.)429 -1977 y Ft(\017)48 b Fu(If)36 b(the)g(execution)h(of)e -Fs(S)48 b Fu(from)34 b(some)i(state)g(lo)s(ops)f(in)g(one)h(of)f(the)h -(seman)m(tics)g(then)h(it)527 2097 y(will)31 b(also)g(lo)s(op)g(in)h -(the)h(other.)283 2294 y(It)26 b(should)g(b)s(e)g(fairly)e(ob)m(vious)i -(that)g(the)g(\014rst)g(prop)s(ert)m(y)h(follo)m(ws)d(from)h(the)h -(theorem)f(b)s(ecause)283 2414 y(there)i(are)f(no)f(stuc)m(k)i -(con\014gurations)f(in)f(the)h(structural)f(op)s(erational)e(seman)m -(tics)j(of)f Fw(While)p Fu(.)283 2534 y(F)-8 b(or)40 -b(the)h(other)f(prop)s(ert)m(y)h(supp)s(ose)h(that)e(the)h(execution)g -(of)e Fs(S)53 b Fu(on)40 b(state)g Fs(s)49 b Fu(lo)s(ops)39 -b(in)h(one)283 2655 y(of)c(the)g(seman)m(tics.)52 b(If)36 -b(it)e(terminates)h(in)g(the)h(other)f(seman)m(tics)h(w)m(e)h(ha)m(v)m -(e)g(a)e(con)m(tradiction)283 2775 y(with)27 b(the)g(\014rst)g(prop)s -(ert)m(y)h(b)s(ecause)g(b)s(oth)f(seman)m(tics)g(are)f(deterministic)f -(\(Theorem)i(2.9)g(and)283 2895 y(Exercise)34 b(2.22\).)43 -b(Hence)34 b Fs(S)44 b Fu(will)31 b(ha)m(v)m(e)j(to)e(lo)s(op)f(on)h -(state)h Fs(s)41 b Fu(also)32 b(in)f(the)i(other)g(seman)m(tics.)430 -3016 y(The)g(theorem)f(is)f(pro)m(v)m(ed)j(in)d(t)m(w)m(o)h(stages)h -(as)f(expressed)j(b)m(y)e(Lemma)e(2.27)g(and)h(Lemma)283 -3136 y(2.28)g(b)s(elo)m(w.)44 b(W)-8 b(e)33 b(shall)e(\014rst)i(pro)m -(v)m(e:)p 283 3257 V 283 3424 a Fw(Lemma)38 b(2.27)49 -b Fu(F)-8 b(or)31 b(ev)m(ery)k(statemen)m(t)e Fs(S)44 -b Fu(of)32 b Fw(While)f Fu(and)i(states)g Fs(s)41 b Fu(and)33 -b Fs(s)3134 3388 y Fi(0)3190 3424 y Fu(w)m(e)g(ha)m(v)m(e)527 -3620 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g -Fs(s)992 3584 y Fi(0)1048 3620 y Fu(implies)e Ft(h)p -Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(\))1763 3584 y -Fi(\003)1835 3620 y Fs(s)1883 3584 y Fi(0)1907 3620 y -Fu(.)283 3817 y(So)40 b(if)e(the)i(execution)g(of)f Fs(S)51 -b Fu(from)38 b Fs(s)47 b Fu(terminates)39 b(in)f(the)i(natural)e(seman) -m(tics)i(then)g(it)e(will)283 3937 y(terminate)32 b(in)g(the)h(same)f -(state)h(in)f(the)h(structural)f(op)s(erational)e(seman)m(tics.)p -283 4057 V 283 4254 a Fw(Pro)s(of:)45 b Fu(The)40 b(pro)s(of)e(pro)s -(ceeds)i(b)m(y)g(induction)e(on)g(the)i(shap)s(e)f(of)f(the)i(deriv)-5 -b(ation)37 b(tree)i(for)283 4374 y Ft(h)p Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 4338 y Fi(0)772 4374 -y Fu(.)283 4542 y Fw(The)h(case)g Fu([ass)891 4557 y -Fn(ns)964 4542 y Fu(]:)43 b(W)-8 b(e)33 b(assume)g(that)527 -4738 y Ft(h)p Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(,)33 b -Fs(s)8 b Ft(i)32 b(!)g Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])283 -4934 y(F)-8 b(rom)32 b([ass)692 4949 y Fn(sos)787 4934 -y Fu(])h(w)m(e)h(get)e(the)h(required)527 5131 y Ft(h)p -Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(\))g Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o Fu([)-17 b([)q -Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])283 5327 y Fw(The)33 -b(case)g Fu([skip)937 5342 y Fn(ns)1009 5327 y Fu(]:)44 -b(Analogous.)283 5494 y Fw(The)33 b(case)g Fu([comp)994 -5509 y Fn(ns)1065 5494 y Fu(]:)44 b(Assume)33 b(that)p -eop -%%Page: 41 51 -41 50 bop 0 130 a Fw(2.3)112 b(An)38 b(equiv)-6 b(alence)37 -b(result)2047 b(41)p 0 193 3473 4 v 244 515 a Ft(h)p -Fs(S)350 530 y Fn(1)389 515 y Fu(;)p Fs(S)483 530 y Fn(2)522 -515 y Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)881 479 y -Fi(00)0 711 y Fu(b)s(ecause)244 907 y Ft(h)p Fs(S)350 -922 y Fn(1)389 907 y Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 -871 y Fi(0)804 907 y Fu(and)h Ft(h)o Fs(S)1099 922 y -Fn(2)1139 907 y Fu(,)f Fs(s)1246 871 y Fi(0)1270 907 -y Ft(i)g(!)g Fs(s)1521 871 y Fi(00)0 1103 y Fu(The)f(induction)e(h)m -(yp)s(othesis)i(can)f(b)s(e)h(applied)d(to)i(b)s(oth)g(of)f(the)i -(premises)f Ft(h)p Fs(S)2871 1118 y Fn(1)2910 1103 y -Fu(,)h Fs(s)8 b Ft(i)29 b(!)h Fs(s)3262 1067 y Fi(0)3315 -1103 y Fu(and)0 1224 y Ft(h)p Fs(S)106 1239 y Fn(2)145 -1224 y Fu(,)j Fs(s)253 1187 y Fi(0)276 1224 y Ft(i)f(!)g -Fs(s)527 1187 y Fi(00)602 1224 y Fu(and)h(giv)m(es)244 -1420 y Ft(h)p Fs(S)350 1435 y Fn(1)389 1420 y Fu(,)g -Fs(s)8 b Ft(i)32 b(\))667 1383 y Fi(\003)739 1420 y Fs(s)787 -1383 y Fi(0)843 1420 y Fu(and)h Ft(h)p Fs(S)1139 1435 -y Fn(2)1178 1420 y Fu(,)g Fs(s)1286 1383 y Fi(0)1309 -1420 y Ft(i)f(\))1480 1383 y Fi(\003)1552 1420 y Fs(s)1600 -1383 y Fi(00)0 1616 y Fu(F)-8 b(rom)31 b(Exercise)j(2.21)e(w)m(e)i(get) -244 1811 y Ft(h)p Fs(S)350 1826 y Fn(1)389 1811 y Fu(;)p -Fs(S)483 1826 y Fn(2)522 1811 y Fu(,)f Fs(s)8 b Ft(i)32 -b(\))801 1775 y Fi(\003)873 1811 y Ft(h)p Fs(S)979 1826 -y Fn(2)1018 1811 y Fu(,)g Fs(s)1125 1775 y Fi(0)1149 -1811 y Ft(i)0 2007 y Fu(and)h(thereb)m(y)h Ft(h)p Fs(S)648 -2022 y Fn(1)687 2007 y Fu(;)p Fs(S)781 2022 y Fn(2)820 -2007 y Fu(,)f Fs(s)8 b Ft(i)32 b(\))1099 1971 y Fi(\003)1171 -2007 y Fs(s)1219 1971 y Fi(00)1261 2007 y Fu(.)0 2175 -y Fw(The)h(case)g Fu([if)553 2139 y Fn(tt)541 2200 y(ns)611 -2175 y Fu(]:)44 b(Assume)33 b(that)244 2371 y Ft(h)p -Fr(if)g Fs(b)38 b Fr(then)c Fs(S)806 2386 y Fn(1)877 -2371 y Fr(else)g Fs(S)1182 2386 y Fn(2)1221 2371 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)g Fs(s)1580 2335 y Fi(0)0 2567 y -Fu(b)s(ecause)244 2763 y Ft(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(and)h -Ft(h)p Fs(S)1043 2778 y Fn(1)1082 2763 y Fu(,)f Fs(s)8 -b Ft(i)33 b(!)f Fs(s)1441 2727 y Fi(0)0 2959 y Fu(Since)h -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fw(tt)g Fu(w)m(e)i(get)244 3155 y Ft(h)p -Fr(if)f Fs(b)38 b Fr(then)c Fs(S)806 3170 y Fn(1)877 -3155 y Fr(else)g Fs(S)1182 3170 y Fn(2)1221 3155 y Fu(,)f -Fs(s)8 b Ft(i)32 b(\))g(h)p Fs(S)1638 3170 y Fn(1)1677 -3155 y Fu(,)h Fs(s)8 b Ft(i)32 b(\))1956 3119 y Fi(\003)2028 -3155 y Fs(s)2076 3119 y Fi(0)0 3351 y Fu(where)39 b(the)f(\014rst)g -(relationship)e(comes)i(from)e([if)1828 3315 y Fn(tt)1816 -3375 y(sos)1910 3351 y Fu(])i(and)g(the)g(second)h(from)d(the)i -(induction)0 3471 y(h)m(yp)s(othesis)c(applied)d(to)h(the)h(premise)g -Ft(h)o Fs(S)1573 3486 y Fn(1)1613 3471 y Fu(,)f Fs(s)8 -b Ft(i)33 b(!)f Fs(s)1972 3435 y Fi(0)1995 3471 y Fu(.)0 -3639 y Fw(The)h(case)g Fu([if)553 3603 y Fn(\013)541 -3663 y(ns)611 3639 y Fu(]:)44 b(Analogous.)0 3806 y Fw(The)33 -b(case)g Fu([while)718 3770 y Fn(tt)706 3831 y(ns)777 -3806 y Fu(]:)43 b(Assume)34 b(that)244 4002 y Ft(h)p -Fr(while)f Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 -b Ft(i)33 b(!)f Fs(s)1216 3966 y Fi(00)0 4198 y Fu(b)s(ecause)244 -4394 y Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p -Fs(s)41 b Fu(=)32 b Fw(tt)p Fu(,)g Ft(h)p Fs(S)12 b Fu(,)32 -b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1239 4358 y Fi(0)1295 4394 -y Fu(and)g Ft(h)p Fr(while)i Fs(b)39 b Fr(do)33 b Fs(S)12 -b Fu(,)32 b Fs(s)2205 4358 y Fi(0)2228 4394 y Ft(i)h(!)f -Fs(s)2480 4358 y Fi(00)0 4590 y Fu(The)i(induction)d(h)m(yp)s(othesis)j -(can)f(b)s(e)g(applied)e(to)i(b)s(oth)f(of)g(the)h(premises)g -Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)3259 -4554 y Fi(0)3315 4590 y Fu(and)0 4711 y Ft(h)p Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)721 4675 y -Fi(0)744 4711 y Ft(i)f(!)g Fs(s)995 4675 y Fi(00)1070 -4711 y Fu(and)h(giv)m(es)244 4907 y Ft(h)p Fs(S)12 b -Fu(,)32 b Fs(s)8 b Ft(i)32 b(\))628 4870 y Fi(\003)700 -4907 y Fs(s)748 4870 y Fi(0)804 4907 y Fu(and)h Ft(h)o -Fr(while)h Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)1714 -4870 y Fi(0)1737 4907 y Ft(i)h(\))1908 4870 y Fi(\003)1980 -4907 y Fs(s)2028 4870 y Fi(00)0 5103 y Fu(Using)f(Exercise)i(2.21)e(w)m -(e)i(get)244 5299 y Ft(h)p Fs(S)12 b Fu(;)32 b Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(\))1262 5262 y Fi(\003)1334 5299 y Fs(s)1382 5262 y -Fi(00)0 5494 y Fu(Using)g([while)524 5509 y Fn(sos)619 -5494 y Fu(])g(and)h([if)965 5458 y Fn(tt)953 5519 y(sos)1047 -5494 y Fu(])g(\(with)f Ft(B)s Fu([)-17 b([)q Fs(b)6 b -Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(tt)p Fu(\))g(w)m(e)i(get)e(the)h -(\014rst)g(t)m(w)m(o)g(steps)h(of)p eop -%%Page: 42 52 -42 51 bop 251 130 a Fw(42)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(h)p Fr(while)d -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)855 -683 y(\))32 b(h)p Fr(if)h Fs(b)38 b Fr(then)c Fu(\()p -Fs(S)12 b Fu(;)32 b Fr(while)i Fs(b)39 b Fr(do)33 b Fs(S)12 -b Fu(\))32 b Fr(else)h(skip)p Fu(,)h Fs(s)8 b Ft(i)855 -851 y(\))32 b(h)p Fs(S)12 b Fu(;)32 b Fr(while)i Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)855 1018 -y(\))955 982 y Fi(\003)1027 1018 y Fs(s)1075 982 y Fi(00)283 -1225 y Fu(and)33 b(w)m(e)h(ha)m(v)m(e)g(already)e(argued)h(for)f(the)h -(last)e(part.)283 1392 y Fw(The)i(case)g Fu([while)1001 -1356 y Fn(\013)989 1417 y(ns)1060 1392 y Fu(]:)44 b(Straigh)m(tforw)m -(ard.)1826 b Fh(2)430 1596 y Fu(This)45 b(completes)g(the)g(pro)s(of)f -(of)h(Lemma)f(2.27.)80 b(The)46 b(second)g(part)f(of)g(the)g(theorem) -283 1717 y(follo)m(ws)32 b(from:)p 283 1838 3473 5 v -283 2015 a Fw(Lemma)38 b(2.28)49 b Fu(F)-8 b(or)21 b(ev)m(ery)j -(statemen)m(t)e Fs(S)34 b Fu(of)21 b Fw(While)p Fu(,)i(states)g -Fs(s)30 b Fu(and)22 b Fs(s)2878 1979 y Fi(0)2923 2015 -y Fu(and)h(natural)d(n)m(um)m(b)s(er)283 2136 y(k)33 -b(w)m(e)h(ha)m(v)m(e)g(that)527 2342 y Ft(h)p Fs(S)12 -b Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))912 2306 y Fn(k)985 -2342 y Fs(s)1033 2306 y Fi(0)1089 2342 y Fu(implies)e -Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1885 -2306 y Fi(0)1908 2342 y Fu(.)283 2549 y(So)g(if)e(the)i(execution)g(of) -f Fs(S)43 b Fu(from)30 b Fs(s)39 b Fu(terminates)31 b(in)g(the)h -(structural)f(op)s(erational)e(seman)m(tics)283 2669 -y(then)34 b(it)d(will)f(terminate)i(in)g(the)h(same)f(state)h(in)f(the) -h(natural)e(seman)m(tics.)p 283 2789 V 283 2996 a Fw(Pro)s(of:)38 -b Fu(The)33 b(pro)s(of)f(pro)s(ceeds)h(b)m(y)h(induction)d(on)i(the)f -(length)g(of)g(the)h(deriv)-5 b(ation)31 b(sequence)283 -3116 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))668 -3080 y Fn(k)742 3116 y Fs(s)790 3080 y Fi(0)813 3116 -y Fu(,)h(that)f(is)g(b)m(y)h(induction)f(on)h(k.)430 -3237 y(If)f(k=0)h(then)g(the)g(result)g(holds)f(v)-5 -b(acuously)d(.)430 3358 y(T)g(o)37 b(pro)m(v)m(e)h(the)g(induction)e -(step)i(w)m(e)g(assume)f(that)g(the)h(lemma)d(holds)h(for)h(k)c -Ft(\024)g Fu(k)3522 3373 y Fn(0)3599 3358 y Fu(and)283 -3478 y(w)m(e)j(shall)d(then)i(pro)m(v)m(e)g(that)g(it)e(holds)h(for)g -(k)1919 3493 y Fn(0)1959 3478 y Fu(+1.)48 b(W)-8 b(e)35 -b(pro)s(ceed)g(b)m(y)g(cases)h(on)f(ho)m(w)g(the)f(\014rst)283 -3599 y(step)40 b(of)f Ft(h)o Fs(S)12 b Fu(,)39 b Fs(s)8 -b Ft(i)39 b(\))1010 3563 y Fn(k)1047 3572 y Fd(0)1082 -3563 y Fn(+1)1215 3599 y Fs(s)1263 3563 y Fi(0)1325 3599 -y Fu(is)g(obtained,)h(that)e(is)h(b)m(y)g(insp)s(ecting)g(the)g(deriv) --5 b(ation)37 b(tree)i(for)283 3719 y(the)33 b(\014rst)h(step)f(of)f -(computation)f(in)h(the)h(structural)f(op)s(erational)e(seman)m(tics.) -283 3887 y Fw(The)j(case)g Fu([ass)891 3902 y Fn(sos)987 -3887 y Fu(]:)44 b(Straigh)m(tforw)m(ard)32 b(\(and)g(k)2065 -3902 y Fn(0)2138 3887 y Fu(=)g(0\).)283 4054 y Fw(The)h(case)g -Fu([skip)937 4069 y Fn(sos)1033 4054 y Fu(]:)44 b(Straigh)m(tforw)m -(ard)31 b(\(and)i(k)2111 4069 y Fn(0)2183 4054 y Fu(=)g(0\).)283 -4222 y Fw(The)g(cases)h Fu([comp)1051 4186 y Fn(1)1039 -4247 y(sos)1134 4222 y Fu(])e(and)h([comp)1650 4186 y -Fn(2)1638 4247 y(sos)1733 4222 y Fu(]:)43 b(In)33 b(b)s(oth)f(cases)i -(w)m(e)g(assume)f(that)527 4428 y Ft(h)p Fs(S)633 4443 -y Fn(1)672 4428 y Fu(;)p Fs(S)766 4443 y Fn(2)806 4428 -y Fu(,)f Fs(s)8 b Ft(i)33 b(\))1084 4392 y Fn(k)1121 -4401 y Fd(0)1156 4392 y Fn(+1)1283 4428 y Fs(s)1331 4392 -y Fi(00)283 4635 y Fu(W)-8 b(e)40 b(can)f(no)m(w)h(apply)e(Lemma)g -(2.19)g(and)h(get)g(that)g(there)g(exists)h(a)e(state)i -Fs(s)3189 4599 y Fi(0)3251 4635 y Fu(and)f(natural)283 -4755 y(n)m(um)m(b)s(ers)34 b(k)728 4770 y Fn(1)800 4755 -y Fu(and)f(k)1041 4770 y Fn(2)1113 4755 y Fu(suc)m(h)h(that)527 -4961 y Ft(h)p Fs(S)633 4976 y Fn(1)672 4961 y Fu(,)f -Fs(s)8 b Ft(i)32 b(\))951 4925 y Fn(k)988 4934 y Fd(1)1059 -4961 y Fs(s)1107 4925 y Fi(0)1163 4961 y Fu(and)h Ft(h)p -Fs(S)1459 4976 y Fn(2)1498 4961 y Fu(,)g Fs(s)1606 4925 -y Fi(0)1629 4961 y Ft(i)f(\))1800 4925 y Fn(k)1837 4934 -y Fd(2)1908 4961 y Fs(s)1956 4925 y Fi(00)283 5168 y -Fu(where)c(k)610 5183 y Fn(1)650 5168 y Fu(+k)777 5183 -y Fn(2)817 5168 y Fu(=k)944 5183 y Fn(0)984 5168 y Fu(+1.)41 -b(The)28 b(induction)d(h)m(yp)s(othesis)j(can)f(no)m(w)g(b)s(e)g -(applied)f(to)g(eac)m(h)h(of)g(these)283 5288 y(deriv)-5 -b(ation)31 b(sequences)36 b(b)s(ecause)e(k)1596 5303 -y Fn(1)1669 5288 y Ft(\024)f Fu(k)1830 5303 y Fn(0)1902 -5288 y Fu(and)g(k)2143 5303 y Fn(2)2215 5288 y Ft(\024)g -Fu(k)2376 5303 y Fn(0)2416 5288 y Fu(.)43 b(So)33 b(w)m(e)h(get)527 -5494 y Ft(h)p Fs(S)633 5509 y Fn(1)672 5494 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)g Fs(s)1031 5458 y Fi(0)1087 5494 -y Fu(and)h Ft(h)p Fs(S)1383 5509 y Fn(2)1422 5494 y Fu(,)g -Fs(s)1530 5458 y Fi(0)1553 5494 y Ft(i)f(!)g Fs(s)1804 -5458 y Fi(00)p eop -%%Page: 43 53 -43 52 bop 0 130 a Fw(2.3)112 b(An)38 b(equiv)-6 b(alence)37 -b(result)2047 b(43)p 0 193 3473 4 v 0 515 a Fu(Using)32 -b([comp)529 530 y Fn(ns)600 515 y Fu(])h(w)m(e)g(no)m(w)h(get)e(the)h -(required)g Ft(h)p Fs(S)1825 530 y Fn(1)1864 515 y Fu(;)p -Fs(S)1958 530 y Fn(2)1998 515 y Fu(,)f Fs(s)8 b Ft(i)33 -b(!)f Fs(s)2357 479 y Fi(00)2399 515 y Fu(.)0 683 y Fw(The)h(case)g -Fu([if)553 647 y Fn(tt)541 708 y(sos)635 683 y Fu(]:)44 -b(Assume)33 b(that)f Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(and)g(that)244 902 -y Ft(h)p Fr(if)h Fs(b)38 b Fr(then)c Fs(S)806 917 y Fn(1)877 -902 y Fr(else)g Fs(S)1182 917 y Fn(2)1221 902 y Fu(,)f -Fs(s)8 b Ft(i)32 b(\))g(h)p Fs(S)1638 917 y Fn(1)1677 -902 y Fu(,)h Fs(s)8 b Ft(i)32 b(\))1956 865 y Fn(k)1993 -874 y Fd(0)2065 902 y Fs(s)2113 865 y Fi(0)0 1120 y Fu(The)d(induction) -d(h)m(yp)s(othesis)j(can)f(b)s(e)g(applied)f(to)g(the)h(deriv)-5 -b(ation)27 b(sequence)j Ft(h)p Fs(S)2975 1135 y Fn(1)3014 -1120 y Fu(,)j Fs(s)8 b Ft(i)32 b(\))3293 1084 y Fn(k)3330 -1093 y Fd(0)3401 1120 y Fs(s)3449 1084 y Fi(0)0 1240 -y Fu(and)h(giv)m(es)244 1459 y Ft(h)p Fs(S)350 1474 y -Fn(1)389 1459 y Fu(,)g Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 -1423 y Fi(0)0 1678 y Fu(The)i(result)e(no)m(w)h(follo)m(ws)f(using)g -([if)1348 1641 y Fn(tt)1336 1702 y(ns)1406 1678 y Fu(].)0 -1845 y Fw(The)h(case)g Fu([if)553 1809 y Fn(\013)541 -1870 y(sos)635 1845 y Fu(]:)44 b(Analogous.)0 2013 y -Fw(The)33 b(case)g Fu([while)706 2028 y Fn(sos)800 2013 -y Fu(]:)44 b(W)-8 b(e)33 b(ha)m(v)m(e)244 2231 y Ft(h)p -Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 -b Ft(i)571 2399 y(\))33 b(h)o Fr(if)g Fs(b)39 b Fr(then)33 -b Fu(\()p Fs(S)12 b Fu(;)33 b Fr(while)h Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(\))32 b Fr(else)i(skip)p Fu(,)g Fs(s)8 -b Ft(i)571 2567 y(\))671 2530 y Fn(k)708 2539 y Fd(0)780 -2567 y Fs(s)828 2530 y Fi(00)0 2785 y Fu(The)46 b(induction)e(h)m(yp)s -(othesis)i(can)f(b)s(e)g(applied)f(to)g(the)h(k)2204 -2800 y Fn(0)2289 2785 y Fu(last)f(steps)i(of)f(the)g(deriv)-5 -b(ation)0 2905 y(sequence)35 b(and)e(giv)m(es)244 3124 -y Ft(h)p Fr(if)g Fs(b)38 b Fr(then)c Fu(\()p Fs(S)12 -b Fu(;)32 b Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\))33 -b Fr(else)g(skip)p Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)2349 -3088 y Fi(00)0 3343 y Fu(and)h(from)e(Lemma)g(2.5)h(w)m(e)i(get)f(the)g -(required)269 3510 y Ft(h)o Fr(while)h Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1241 -3474 y Fi(00)3398 3510 y Fh(2)0 3789 y Fw(Pro)s(of)43 -b(of)g(Theorem)g(2.26:)98 b Fu(F)-8 b(or)36 b(an)i(arbitrary)e -(statemen)m(t)i Fs(S)49 b Fu(and)38 b(state)g Fs(s)45 -b Fu(it)37 b(follo)m(ws)0 3909 y(from)27 b(Lemmas)g(2.27)g(and)h(2.28)g -(that)g(if)f Ft(S)1555 3924 y Fn(ns)1627 3909 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q Fs(s)36 b Fu(=)27 b Fs(s)1996 -3873 y Fi(0)2048 3909 y Fu(then)h Ft(S)2333 3924 y Fn(sos)2428 -3909 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])p Fs(s)36 -b Fu(=)28 b Fs(s)2798 3873 y Fi(0)2850 3909 y Fu(and)g(vice)g(v)m -(ersa.)0 4029 y(This)35 b(su\016ces)i(for)d(sho)m(wing)h(that)f(the)h -(functions)g Ft(S)1958 4044 y Fn(ns)2029 4029 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])35 b(and)g Ft(S)2465 4044 -y Fn(sos)2560 4029 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])35 b(m)m(ust)g(b)s(e)g(equal:)48 b(if)0 4150 y(one)31 -b(is)f(de\014ned)i(on)e(a)h(state)f Fs(s)39 b Fu(then)31 -b(so)g(is)f(the)h(other,)g(and)g(therefore,)g(if)f(one)h(is)f(not)g -(de\014ned)0 4270 y(on)i(a)h(state)g Fs(s)40 b Fu(then)34 -b(neither)e(is)g(the)h(other.)1794 b Fh(2)0 4523 y Fw(Exercise)36 -b(2.29)49 b Fu(Consider)28 b(the)g(extension)h(of)e(the)h(language)e -Fw(While)g Fu(with)h(the)h(statemen)m(t)0 4643 y Fr(repeat)47 -b Fs(S)58 b Fr(until)47 b Fs(b)6 b Fu(.)83 b(The)46 b(natural)f(seman)m -(tics)h(of)f(the)h(construct)h(w)m(as)g(considered)f(in)0 -4763 y(Exercise)30 b(2.7)d(and)i(the)f(structural)h(op)s(erational)c -(seman)m(tics)k(in)e(Exercise)j(2.17.)41 b(Mo)s(dify)28 -b(the)0 4884 y(pro)s(of)k(of)g(Theorem)h(2.26)f(so)g(that)h(the)g -(theorem)f(applies)g(to)g(the)h(extended)i(language.)106 -b Fh(2)0 5133 y Fw(Exercise)36 b(2.30)49 b Fu(Consider)28 -b(the)g(extension)h(of)e(the)h(language)e Fw(While)g -Fu(with)h(the)h(statemen)m(t)0 5254 y Fr(for)j Fs(x)43 -b Fu(:=)30 b Fs(a)462 5269 y Fn(1)532 5254 y Fr(to)h -Fs(a)722 5269 y Fn(2)792 5254 y Fr(do)g Fs(S)12 b Fu(.)31 -b(The)g(natural)f(seman)m(tics)h(of)f(the)h(construct)g(w)m(as)h -(considered)f(in)0 5374 y(Exercise)f(2.8)d(and)i(the)f(structural)h(op) -s(erational)c(seman)m(tics)k(in)e(Exercise)j(2.18.)41 -b(Mo)s(dify)28 b(the)0 5494 y(pro)s(of)k(of)g(Theorem)h(2.26)f(so)g -(that)h(the)g(theorem)f(applies)g(to)g(the)h(extended)i(language.)106 -b Fh(2)p eop -%%Page: 44 54 -44 53 bop 251 130 a Fw(44)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 430 515 a Fu(The)h(pro)s(of)e(tec)m -(hnique)j(emplo)m(y)m(ed)e(in)g(the)g(pro)s(of)f(of)h(Theorem)h(2.26)e -(ma)m(y)h(b)s(e)g(summa-)283 636 y(rized)c(as)g(follo)m(ws:)p -283 765 3470 4 v 283 782 V 281 990 4 208 v 298 990 V -1371 911 a Fw(Pro)s(of)f(Summary)h(for)f(While)p Fu(:)p -3735 990 V 3752 990 V 281 1197 V 298 1197 V 997 1118 -a Fw(Equiv)-6 b(alence)32 b(of)g(t)m(w)m(o)g(Op)s(erational)g(Seman)m -(tics)p 3735 1197 V 3752 1197 V 283 1201 3470 4 v 281 -1690 4 490 v 298 1690 V 350 1366 a Fu(1:)143 b(Pro)m(v)m(e)24 -b(b)m(y)h Fs(induction)h(on)f(the)i(shap)-5 b(e)25 b(of)h(derivation)g -(tr)-5 b(e)g(es)31 b Fu(that)23 b(for)g(eac)m(h)h(deriv)-5 -b(ation)569 1487 y(tree)46 b(in)e(the)i(natural)e(seman)m(tics)h(there) -h(is)f(a)g(corresp)s(onding)g(\014nite)g(deriv)-5 b(ation)569 -1607 y(sequence)35 b(in)d(the)h(structural)f(op)s(erational)e(seman)m -(tics.)p 3735 1690 V 3752 1690 V 281 2099 4 409 v 298 -2099 V 350 1775 a(2:)143 b(Pro)m(v)m(e)45 b(b)m(y)g Fs(induction)g(on)g -(the)h(length)f(of)g(derivation)f(se)-5 b(quenc)g(es)52 -b Fu(that)43 b(for)h(eac)m(h)569 1895 y(\014nite)33 b(deriv)-5 -b(ation)31 b(sequence)36 b(in)c(the)i(structural)f(op)s(erational)d -(seman)m(tics)j(there)h(is)569 2015 y(a)e(corresp)s(onding)h(deriv)-5 -b(ation)30 b(tree)k(in)d(the)i(natural)f(seman)m(tics.)p -3735 2099 V 3752 2099 V 283 2102 3470 4 v 283 2119 V -283 2314 a(When)41 b(pro)m(ving)e(the)h(equiv)-5 b(alence)40 -b(of)f(t)m(w)m(o)h(op)s(erational)d(seman)m(tics)j(for)f(a)g(language)f -(with)283 2435 y(additional)29 b(programming)f(constructs)k(one)g(ma)m -(y)f(need)h(to)f(amend)g(the)g(ab)s(o)m(v)m(e)h(pro)s(of)e(tec)m(h-)283 -2555 y(nique.)70 b(One)41 b(reason)h(is)f(that)g(the)g(equiv)-5 -b(alence)42 b(result)f(ma)m(y)g(ha)m(v)m(e)h(to)f(b)s(e)g(expressed)j -(dif-)283 2675 y(feren)m(tly)37 b(from)e(that)h(of)g(Theorem)h(2.26)e -(\(as)i(will)d(b)s(e)i(the)h(case)g(if)e(the)i(extended)h(language)283 -2796 y(is)43 b(non-deterministic\).)75 b(Also)43 b(one)g(migh)m(t)f(w)m -(an)m(t)j(to)e(consider)h(only)f(some)g(of)g(the)h(\014nite)283 -2916 y(deriv)-5 b(ation)31 b(sequences,)36 b(for)c(example)g(those)i -(ending)e(in)g(a)g(terminal)e(con\014guration.)283 3242 -y Fj(2.4)161 b(Extensions)53 b(of)g(While)283 3461 y -Fu(In)29 b(order)f(to)f(illustrate)f(the)i(p)s(o)m(w)m(er)h(and)f(w)m -(eakness)j(of)d(the)g(t)m(w)m(o)h(approac)m(hes)g(to)e(op)s(erational) -283 3582 y(seman)m(tics)38 b(w)m(e)h(shall)d(consider)i(v)-5 -b(arious)37 b(extensions)i(of)e(the)h(language)e Fw(While)p -Fu(.)57 b(F)-8 b(or)37 b(eac)m(h)283 3702 y(extension)d(w)m(e)f(shall)f -(sho)m(w)h(ho)m(w)h(to)e(mo)s(dify)f(the)i(op)s(erational)d(seman)m -(tics.)283 3984 y Fp(Ab)t(ortion)283 4169 y Fu(W)-8 b(e)35 -b(\014rst)f(extend)h Fw(While)d Fu(with)h(the)h(simple)e(statemen)m(t)i -Fr(abort)p Fu(.)48 b(The)35 b(idea)e(is)g(that)h Fr(abort)283 -4289 y Fs(stops)52 b Fu(the)44 b(execution)g(of)g(the)g(complete)f -(program.)75 b(This)44 b(means)f(that)h Fr(abort)h Fu(b)s(eha)m(v)m(es) -283 4410 y(di\013eren)m(tly)30 b(from)f Fr(while)i(true)g(do)f(skip)h -Fu(in)e(that)h(it)f(causes)i(the)f(execution)h(to)f(stop)g(rather)283 -4530 y(than)25 b(lo)s(op.)39 b(Also)24 b Fr(abort)h Fu(b)s(eha)m(v)m -(es)i(di\013eren)m(tly)d(from)f Fr(skip)i Fu(b)s(ecause)h(a)e(statemen) -m(t)h(follo)m(wing)283 4651 y Fr(abort)34 b Fu(will)d(nev)m(er)j(b)s(e) -e(executed)j(whereas)f(one)f(follo)m(wing)d Fr(skip)k -Fu(certainly)d(will.)430 4771 y(F)-8 b(ormally)g(,)29 -b(the)k(new)h(syn)m(tax)g(of)e(statemen)m(ts)i(is)e(giv)m(en)g(b)m(y:) -577 4928 y Fs(S)112 b Fu(::=)99 b Fs(x)45 b Fu(:=)32 -b Fs(a)40 b Ft(j)32 b Fr(skip)i Ft(j)e Fs(S)1713 4943 -y Fn(1)1785 4928 y Fu(;)g Fs(S)1911 4943 y Fn(2)1983 -4928 y Ft(j)g Fr(if)h Fs(b)39 b Fr(then)33 b Fs(S)2566 -4943 y Fn(1)2638 4928 y Fr(else)h Fs(S)2943 4943 y Fn(2)795 -5095 y Ft(j)150 b Fr(while)34 b Fs(b)39 b Fr(do)33 b -Fs(S)44 b Ft(j)32 b Fr(abort)283 5254 y Fu(W)-8 b(e)31 -b(shall)d(not)h(rep)s(eat)h(the)g(de\014nitions)f(of)h(the)g(sets)h(of) -e(con\014gurations)g(but)h(tacitly)e(assume)283 5374 -y(that)k(they)g(are)g(mo)s(di\014ed)e(so)h(as)h(to)f(corresp)s(ond)h -(to)g(the)f(extended)j(syn)m(tax.)45 b(The)32 b(task)g(that)283 -5494 y(remains,)g(therefore,)h(is)g(to)f(de\014ne)i(the)f(new)g -(transition)e(relations)g Ft(!)h Fu(and)h Ft(\))p Fu(.)p -eop -%%Page: 45 55 -45 54 bop 0 130 a Fw(2.4)112 b(Extensions)37 b(of)h(While)2119 -b(45)p 0 193 3473 4 v 146 515 a Fu(The)26 b(fact)f(that)g -Fr(abort)h Fu(stops)g(the)g(execution)g(of)e(the)i(program)e(is)g(mo)s -(delled)f(b)m(y)j(ensuring)0 636 y(that)40 b(the)h(con\014gurations)f -(of)g(the)h(form)e Ft(h)p Fr(abort)p Fu(,)44 b Fs(s)8 -b Ft(i)40 b Fu(are)h Fs(stuck)11 b Fu(.)67 b(Therefore)41 -b(the)g Fs(natur)-5 b(al)0 756 y(semantics)47 b Fu(of)39 -b(the)h(extended)i(language)c(is)i(still)d(de\014ned)k(b)m(y)g(the)f -(transition)e(relation)g Ft(!)0 877 y Fu(of)31 b(T)-8 -b(able)31 b(2.1.)43 b(So)31 b(although)g(the)h(language)e(and)i(thereb) -m(y)h(the)f(set)g(of)f(con\014gurations)g(ha)m(v)m(e)0 -997 y(b)s(een)c(extended)h(w)m(e)f(do)f(not)f(mo)s(dify)g(the)h -(de\014nition)f(of)g(the)i(transition)d(relation.)39 -b(Similarly)-8 b(,)0 1117 y(the)40 b Fs(structur)-5 b(al)43 -b(op)-5 b(er)g(ational)40 b(semantics)47 b Fu(of)39 b(the)h(extended)i -(language)d(is)g(still)e(de\014ned)k(b)m(y)0 1238 y(T)-8 -b(able)32 b(2.2.)146 1358 y(F)-8 b(rom)39 b(the)i(structural)g(op)s -(erational)d(seman)m(tics)i(p)s(oin)m(t)g(of)g(view)h(it)e(is)h(clear)g -(no)m(w)i(that)0 1478 y Fr(abort)34 b Fu(and)f Fr(skip)g -Fu(cannot)g(b)s(e)g(seman)m(tically)d(equiv)-5 b(alen)m(t.)44 -b(This)32 b(is)h(b)s(ecause)244 1648 y Ft(h)p Fr(skip)p -Fu(,)g Fs(s)8 b Ft(i)33 b(\))f Fs(s)0 1818 y Fu(is)g(the)h(only)f -(deriv)-5 b(ation)31 b(sequence)k(for)d Fr(skip)i Fu(starting)e(in)f -Fs(s)41 b Fu(and)244 1989 y Ft(h)p Fr(abort)p Fu(,)34 -b Fs(s)8 b Ft(i)0 2159 y Fu(is)28 b(the)h(only)g(deriv)-5 -b(ation)27 b(sequence)k(for)e Fr(abort)h Fu(starting)d(in)h -Fs(s)8 b Fu(.)43 b(Similarly)-8 b(,)25 b Fr(abort)30 -b Fu(cannot)f(b)s(e)0 2279 y(seman)m(tically)i(equiv)-5 -b(alen)m(t)32 b(to)g Fr(while)i(true)g(do)f(skip)g Fu(b)s(ecause)244 -2449 y Ft(h)p Fr(while)g(true)h(do)f(skip)p Fu(,)h Fs(s)8 -b Ft(i)571 2617 y(\))33 b(h)o Fr(if)g(true)h(then)g Fu(\()p -Fr(skip)p Fu(;)f Fr(while)h(true)g(do)f(skip)p Fu(\))g -Fr(else)h(skip)p Fu(,)f Fs(s)8 b Ft(i)571 2784 y(\))33 -b(h)o Fr(skip)p Fu(;)h Fr(while)g(true)f(do)h(skip)p -Fu(,)f Fs(s)8 b Ft(i)571 2952 y(\))33 b(h)o Fr(while)h(true)g(do)f -(skip)p Fu(,)h Fs(s)8 b Ft(i)571 3119 y(\))33 b(\001)17 -b(\001)g(\001)0 3289 y Fu(is)27 b(an)h(in\014nite)f(deriv)-5 -b(ation)26 b(sequence)31 b(for)c Fr(while)i(true)g(do)f(skip)h -Fu(whereas)g Fr(abort)h Fu(has)e(none.)0 3410 y(Th)m(us)d(w)m(e)f -(shall)d(claim)g(that)i(the)g(structural)g(op)s(erational)e(seman)m -(tics)i(captures)h(the)f(informal)0 3530 y(explanation)31 -b(giv)m(en)i(earlier.)146 3651 y(F)-8 b(rom)32 b(the)i(natural)d(seman) -m(tics)j(p)s(oin)m(t)e(of)h(view)g(it)f(is)h(also)f(clear)h(that)g -Fr(skip)h Fu(and)f Fr(abort)0 3771 y Fu(cannot)25 b(b)s(e)g(seman)m -(tically)e(equiv)-5 b(alen)m(t.)40 b(Ho)m(w)m(ev)m(er,)29 -b(it)24 b(turns)h(out)f(that)h Fr(while)34 b(true)f(do)g(skip)0 -3891 y Fu(and)25 b Fr(abort)i Fs(ar)-5 b(e)32 b Fu(seman)m(tically)23 -b(equiv)-5 b(alen)m(t!)41 b(The)26 b(reason)g(is)e(that)h(in)g(the)g -(natural)f(seman)m(tics)0 4012 y(w)m(e)39 b(are)f(only)f(concerned)j -(with)d(executions)i(that)f(terminate)f(prop)s(erly)-8 -b(.)58 b(So)38 b(if)f(w)m(e)i(do)f(not)0 4132 y(ha)m(v)m(e)31 -b(a)e(deriv)-5 b(ation)28 b(tree)i(for)f Ft(h)p Fs(S)12 -b Fu(,)29 b Fs(s)8 b Ft(i)30 b(!)f Fs(s)1549 4096 y Fi(0)1602 -4132 y Fu(then)h(w)m(e)g(cannot)g(tell)e(whether)j(it)d(is)h(b)s -(ecause)i(w)m(e)0 4253 y(en)m(tered)39 b(a)e(stuc)m(k)j -(con\014guration)c(or)h(a)h(lo)s(oping)d(execution.)59 -b(W)-8 b(e)38 b(can)g(summarize)e(this)h(as)0 4373 y(follo)m(ws:)p -0 4503 3472 4 v 0 4519 V -2 4727 4 208 v 15 4727 V 283 -4648 a Fw(Natural)32 b(Seman)m(tics)g(v)m(ersus)h(Structural)f(Op)s -(erational)g(Seman)m(tics)p 3453 4727 V 3470 4727 V 0 -4730 3472 4 v -2 5099 4 370 v 15 5099 V 66 4896 a Ft(\017)100 -b Fu(In)27 b(a)g(natural)e(seman)m(tics)i(w)m(e)h(cannot)f(distinguish) -f(b)s(et)m(w)m(een)j Fs(lo)-5 b(oping)34 b Fu(and)27 -b Fs(abnormal)216 5016 y(termination)p Fu(.)p 3453 5099 -V 3470 5099 V -2 5508 4 409 v 15 5508 V 66 5184 a Ft(\017)100 -b Fu(In)32 b(a)g(structural)g(op)s(erational)e(seman)m(tics)i -Fs(lo)-5 b(oping)40 b Fu(is)32 b(re\015ected)i(b)m(y)f(in\014nite)e -(deriv)-5 b(a-)216 5304 y(tion)22 b(sequences)27 b(and)c -Fs(abnormal)i(termination)30 b Fu(b)m(y)24 b(\014nite)f(deriv)-5 -b(ation)22 b(sequences)27 b(end-)216 5424 y(ing)k(in)h(a)h(stuc)m(k)h -(con\014guration.)p 3453 5508 V 3470 5508 V 0 5511 3472 -4 v 0 5528 V eop -%%Page: 46 56 -46 55 bop 251 130 a Fw(46)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(W)-8 b(e)41 -b(should)f(note,)j(ho)m(w)m(ev)m(er,)i(that)40 b(if)f(abnormal)g -(termination)f(is)h(mo)s(delled)g(b)m(y)i(\\normal)283 -636 y(termination")22 b(in)i(a)h(sp)s(ecial)e(error)i(con\014guration)f -(\(included)g(in)g(the)h(set)h(of)e(terminal)e(con\014g-)283 -756 y(urations\))34 b(then)g(w)m(e)h(can)f(distinguish)f(b)s(et)m(w)m -(een)j(the)e(three)h(statemen)m(ts)f(in)g(b)s(oth)f(seman)m(tic)283 -877 y(st)m(yles.)283 1092 y Fw(Exercise)k(2.31)49 b Fu(Theorem)30 -b(2.26)f(expresses)k(that)d(the)g(natural)f(seman)m(tics)h(and)g(the)g -(struc-)283 1213 y(tural)41 b(op)s(erational)e(seman)m(tics)j(of)f -Fw(While)f Fu(are)i(equiv)-5 b(alen)m(t.)70 b(Discuss)42 -b(whether)h(or)f(not)f(a)283 1333 y(similar)30 b(result)i(holds)h(for)f -Fw(While)f Fu(extended)j(with)e Fr(abort)p Fu(.)1159 -b Fh(2)283 1549 y Fw(Exercise)37 b(2.32)49 b Fu(Extend)34 -b Fw(While)d Fu(with)h(the)h(statemen)m(t)527 1743 y -Fr(assert)h Fs(b)39 b Fr(before)34 b Fs(S)283 1937 y -Fu(The)23 b(idea)e(is)h(that)f(if)g Fs(b)28 b Fu(ev)-5 -b(aluates)21 b(to)h(true)g(then)g(w)m(e)h(execute)h Fs(S)34 -b Fu(and)22 b(otherwise)g(the)g(execution)283 2057 y(of)48 -b(the)h(complete)e(program)g(ab)s(orts.)90 b(Extend)49 -b(the)g(structural)f(op)s(erational)e(seman)m(tics)283 -2178 y(of)40 b(T)-8 b(able)39 b(2.2)h(to)f(express)j(this)e(\(without)f -(assuming)g(that)h Fw(While)e Fu(con)m(tains)i(the)g -Fr(abort)p Fu(-)283 2298 y(statemen)m(t\).)k(Sho)m(w)31 -b(that)f Fr(assert)h(true)g(before)h Fs(S)42 b Fu(is)30 -b(seman)m(tically)e(equiv)-5 b(alen)m(t)30 b(to)g Fs(S)42 -b Fu(but)283 2419 y(that)i Fr(assert)h(false)f(before)h -Fs(S)56 b Fu(neither)43 b(is)g(equiv)-5 b(alen)m(t)43 -b(to)g Fr(while)i(true)g(do)f(skip)g Fu(nor)283 2539 -y Fr(skip)p Fu(.)3167 b Fh(2)283 2826 y Fp(Non-determinism)283 -3011 y Fu(The)34 b(second)g(extension)f(of)f Fw(While)f -Fu(has)i(statemen)m(ts)h(giv)m(en)f(b)m(y)577 3197 y -Fs(S)112 b Fu(::=)99 b Fs(x)45 b Fu(:=)32 b Fs(a)40 b -Ft(j)32 b Fr(skip)i Ft(j)e Fs(S)1713 3212 y Fn(1)1785 -3197 y Fu(;)g Fs(S)1911 3212 y Fn(2)1983 3197 y Ft(j)g -Fr(if)h Fs(b)39 b Fr(then)33 b Fs(S)2566 3212 y Fn(1)2638 -3197 y Fr(else)h Fs(S)2943 3212 y Fn(2)795 3364 y Ft(j)150 -b Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)44 b Ft(j)32 -b Fs(S)1707 3379 y Fn(1)1779 3364 y Fr(or)h Fs(S)1981 -3379 y Fn(2)283 3551 y Fu(The)i(idea)f(is)f(here)i(that)f(in)f -Fs(S)1400 3566 y Fn(1)1474 3551 y Fr(or)h Fs(S)1677 3566 -y Fn(2)1750 3551 y Fu(w)m(e)h(can)g(non-deterministically)30 -b(c)m(ho)s(ose)35 b(to)f(execute)283 3672 y(either)f -Fs(S)627 3687 y Fn(1)699 3672 y Fu(or)f Fs(S)885 3687 -y Fn(2)924 3672 y Fu(.)44 b(So)32 b(w)m(e)i(shall)d(exp)s(ect)j(that)e -(execution)h(of)f(the)h(statemen)m(t)527 3866 y Fr(x)g -Fu(:=)g Fr(1)f(or)h Fu(\()p Fr(x)g Fu(:=)g Fr(2)p Fu(;)g -Fr(x)f Fu(:=)h Fr(x)g Fu(+)f Fr(2)p Fu(\))283 4060 y(could)c(result)f -(in)g(a)g(state)h(where)g Fr(x)g Fu(has)g(the)g(v)-5 -b(alue)27 b Fw(1)p Fu(,)h(but)g(it)f(could)g(as)g(w)m(ell)g(result)h -(in)e(a)h(state)283 4180 y(where)34 b Fr(x)f Fu(has)g(the)g(v)-5 -b(alue)32 b Fw(4)p Fu(.)430 4301 y(When)c(sp)s(ecifying)f(the)h -Fs(natur)-5 b(al)31 b(semantics)j Fu(w)m(e)29 b(extend)g(T)-8 -b(able)27 b(2.1)g(with)h(the)g(t)m(w)m(o)g(rules:)527 -4555 y([or)653 4519 y Fn(1)641 4579 y(ns)712 4555 y Fu(])1297 -4468 y Ft(h)p Fs(S)1403 4483 y Fn(1)1442 4468 y Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1801 4432 y Fi(0)p 1160 -4532 802 4 v 1160 4636 a Ft(h)p Fs(S)1266 4651 y Fn(1)1338 -4636 y Fr(or)h Fs(S)1540 4651 y Fn(2)1579 4636 y Fu(,)g -Fs(s)8 b Ft(i)32 b(!)g Fs(s)1938 4600 y Fi(0)527 4917 -y Fu([or)653 4881 y Fn(2)641 4942 y(ns)712 4917 y Fu(])1297 -4831 y Ft(h)p Fs(S)1403 4846 y Fn(2)1442 4831 y Fu(,)h -Fs(s)8 b Ft(i)32 b(!)g Fs(s)1801 4794 y Fi(0)p 1160 4894 -V 1160 4998 a Ft(h)p Fs(S)1266 5013 y Fn(1)1338 4998 -y Fr(or)h Fs(S)1540 5013 y Fn(2)1579 4998 y Fu(,)g Fs(s)8 -b Ft(i)32 b(!)g Fs(s)1938 4962 y Fi(0)283 5180 y Fu(Corresp)s(onding)42 -b(to)f(the)g(con\014guration)g Ft(h)o Fr(x)h Fu(:=)f -Fr(1)h(or)f Fu(\()p Fr(x)h Fu(:=)f Fr(2)p Fu(;)46 b Fr(x)41 -b Fu(:=)g Fr(x)p Fu(+)p Fr(2)p Fu(\),)j Fs(s)8 b Ft(i)41 -b Fu(w)m(e)i(ha)m(v)m(e)283 5300 y(deriv)-5 b(ation)31 -b(trees)j(for)527 5494 y Ft(h)p Fr(x)f Fu(:=)f Fr(1)h(or)g -Fu(\()p Fr(x)g Fu(:=)f Fr(2)p Fu(;)h Fr(x)g Fu(:=)g Fr(x)p -Fu(+)p Fr(2)p Fu(\),)f Fs(s)8 b Ft(i)33 b(!)f Fs(s)8 -b Fu([)p Fr(x)p Ft(7!)p Fw(1)p Fu(])p eop -%%Page: 47 57 -47 56 bop 0 130 a Fw(2.4)112 b(Extensions)37 b(of)h(While)2119 -b(47)p 0 193 3473 4 v 0 515 a Fu(as)33 b(w)m(ell)f(as)244 -712 y Ft(h)p Fr(x)g Fu(:=)h Fr(1)g(or)g Fu(\()p Fr(x)f -Fu(:=)h Fr(2)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Fu(+)p Fr(2)p -Fu(\),)h Fs(s)8 b Ft(i)32 b(!)h Fs(s)8 b Fu([)p Fr(x)p -Ft(7!)p Fw(4)p Fu(])0 910 y(It)39 b(is)f(imp)s(ortan)m(t)f(to)h(note)h -(that)f(if)g(w)m(e)i(replace)e Fr(x)h Fu(:=)g Fr(1)g -Fu(b)m(y)g Fr(while)h(true)g(do)f(skip)h Fu(in)e(the)0 -1030 y(ab)s(o)m(v)m(e)33 b(statemen)m(t)g(then)h(w)m(e)f(will)e(only)h -(ha)m(v)m(e)i(one)e(deriv)-5 b(ation)31 b(tree,)i(namely)f(that)h(for) -244 1227 y Ft(h)p Fu(\()p Fr(while)g(true)h(do)f(skip)p -Fu(\))h Fr(or)f Fu(\()p Fr(x)f Fu(:=)h Fr(2)p Fu(;)g -Fr(x)f Fu(:=)h Fr(x)p Fu(+)p Fr(2)p Fu(\),)g Fs(s)8 b -Ft(i)32 b(!)g Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p Fw(4)p Fu(])146 -1424 y(T)-8 b(urning)29 b(to)g(the)h Fs(structur)-5 b(al)33 -b(op)-5 b(er)g(ational)31 b(semantics)36 b Fu(w)m(e)30 -b(shall)e(extend)j(T)-8 b(able)29 b(2.2)g(with)0 1545 -y(the)k(t)m(w)m(o)g(axioms:)244 1742 y([or)370 1705 y -Fn(1)358 1766 y(sos)453 1742 y Fu(])387 b Ft(h)p Fs(S)973 -1757 y Fn(1)1044 1742 y Fr(or)34 b Fs(S)1247 1757 y Fn(2)1286 -1742 y Fu(,)e Fs(s)8 b Ft(i)33 b(\))f(h)p Fs(S)1703 1757 -y Fn(1)1742 1742 y Fu(,)h Fs(s)8 b Ft(i)244 1956 y Fu([or)370 -1920 y Fn(2)358 1981 y(sos)453 1956 y Fu(])387 b Ft(h)p -Fs(S)973 1971 y Fn(1)1044 1956 y Fr(or)34 b Fs(S)1247 -1971 y Fn(2)1286 1956 y Fu(,)e Fs(s)8 b Ft(i)33 b(\))f(h)p -Fs(S)1703 1971 y Fn(2)1742 1956 y Fu(,)h Fs(s)8 b Ft(i)0 -2154 y Fu(F)-8 b(or)29 b(the)h(statemen)m(t)h Fr(x)f -Fu(:=)f Fr(1)h(or)h Fu(\()p Fr(x)f Fu(:=)f Fr(2)p Fu(;)i -Fr(x)g Fu(:=)e Fr(x)p Fu(+)p Fr(2)p Fu(\))h(w)m(e)h(ha)m(v)m(e)g(t)m(w) -m(o)g(deriv)-5 b(ation)28 b(sequences:)244 2351 y Ft(h)p -Fr(x)k Fu(:=)h Fr(1)g(or)g Fu(\()p Fr(x)f Fu(:=)h Fr(2)p -Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Fu(+)p Fr(2)p Fu(\),)h Fs(s)8 -b Ft(i)32 b(\))1803 2315 y Fi(\003)1875 2351 y Fs(s)8 -b Fu([)p Fr(x)p Ft(7!)p Fw(1)p Fu(])0 2548 y(and)244 -2745 y Ft(h)p Fr(x)32 b Fu(:=)h Fr(1)g(or)g Fu(\()p Fr(x)f -Fu(:=)h Fr(2)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Fu(+)p Fr(2)p -Fu(\),)h Fs(s)8 b Ft(i)32 b(\))1803 2709 y Fi(\003)1875 -2745 y Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p Fw(4)p Fu(])0 2942 -y(If)34 b(w)m(e)h(replace)g Fr(x)f Fu(:=)g Fr(1)h Fu(b)m(y)g -Fr(while)g(true)h(do)e(skip)i Fu(in)d(the)i(ab)s(o)m(v)m(e)g(statemen)m -(t)g(then)f(w)m(e)i(still)0 3062 y(ha)m(v)m(e)e(t)m(w)m(o)f(deriv)-5 -b(ation)31 b(sequences.)47 b(One)33 b(is)f(in\014nite)244 -3259 y Ft(h)p Fu(\()p Fr(while)h(true)h(do)f(skip)p Fu(\))h -Fr(or)f Fu(\()p Fr(x)f Fu(:=)h Fr(2)p Fu(;)g Fr(x)f Fu(:=)h -Fr(x)p Fu(+)p Fr(2)p Fu(\),)g Fs(s)8 b Ft(i)609 3427 -y(\))65 b(h)p Fr(while)34 b(true)f(do)g(skip)p Fu(,)h -Fs(s)8 b Ft(i)609 3595 y(\))709 3559 y Fn(3)774 3595 -y Ft(h)p Fr(while)34 b(true)f(do)g(skip)p Fu(,)h Fs(s)8 -b Ft(i)609 3762 y(\))65 b(\001)17 b(\001)g(\001)0 3959 -y Fu(and)33 b(the)g(other)f(is)g(\014nite)244 4156 y -Ft(h)p Fu(\()p Fr(while)h(true)h(do)f(skip)p Fu(\))h -Fr(or)f Fu(\()p Fr(x)f Fu(:=)h Fr(2)p Fu(;)g Fr(x)f Fu(:=)h -Fr(x)p Fu(+)p Fr(2)p Fu(\),)g Fs(s)8 b Ft(i)32 b(\))2475 -4120 y Fi(\003)2547 4156 y Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p -Fw(4)p Fu(])146 4354 y(Comparing)31 b(the)h(natural)f(seman)m(tics)i -(and)f(the)g(structural)g(op)s(erational)e(seman)m(tics)i(w)m(e)0 -4474 y(see)42 b(that)e(the)h(latter)f(can)h(c)m(ho)s(ose)g(the)h -(\\wrong")e(branc)m(h)h(of)g(the)g Fr(or)p Fu(-statemen)m(t)g(whereas)0 -4594 y(the)33 b(\014rst)g(alw)m(a)m(ys)g(c)m(ho)s(oses)h(the)f(\\righ)m -(t")e(branc)m(h.)45 b(This)33 b(is)f(summarized)f(as)i(follo)m(ws:)p -0 4743 3472 4 v 0 4760 V -2 4968 4 208 v 15 4968 V 283 -4889 a Fw(Natural)f(Seman)m(tics)g(v)m(ersus)h(Structural)f(Op)s -(erational)g(Seman)m(tics)p 3453 4968 V 3470 4968 V 0 -4971 3472 4 v -2 5220 4 249 v 15 5220 V 66 5136 a Ft(\017)100 -b Fu(In)33 b(a)f(natural)f(seman)m(tics)i Fs(non-determinism)g(wil)5 -b(l)34 b(suppr)-5 b(ess)35 b(lo)-5 b(oping)p Fu(,)31 -b(if)h(p)s(ossible.)p 3453 5220 V 3470 5220 V -2 5508 -4 289 v 15 5508 V 66 5304 a Ft(\017)100 b Fu(In)44 b(a)f(structural)h -(op)s(erational)d(seman)m(tics)j Fs(non-determinism)f(do)-5 -b(es)44 b(not)h(suppr)-5 b(ess)216 5424 y(lo)g(oping)p -Fu(.)p 3453 5508 V 3470 5508 V 0 5511 3472 4 v 0 5528 -V eop -%%Page: 48 58 -48 57 bop 251 130 a Fw(48)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a(Exercise)g(2.33)49 -b Fu(Consider)33 b(the)g(statemen)m(t)527 718 y Fr(x)g -Fu(:=)g Ft(\000)p Fr(1)p Fu(;)g Fr(while)h(x)p Ft(\024)q -Fr(0)e(do)h Fu(\()p Fr(x)g Fu(:=)g Fr(x)p Ft(\000)p Fr(1)g(or)g(x)g -Fu(:=)f(\()p Ft(\000)p Fr(1)p Fu(\))p Fo(?)q Fr(x)p Fu(\))283 -921 y(Giv)m(en)39 b(a)g(state)h Fs(s)47 b Fu(describ)s(e)40 -b(the)f(set)h(of)f(\014nal)f(states)i(that)f(ma)m(y)g(result)g -(according)g(to)f(the)283 1041 y(natural)32 b(seman)m(tics.)43 -b(F)-8 b(urther)33 b(describ)s(e)g(the)g(set)g(of)f(deriv)-5 -b(ation)31 b(sequences)36 b(that)c(are)g(sp)s(ec-)283 -1162 y(i\014ed)42 b(b)m(y)g(the)g(structural)f(op)s(erational)e(seman)m -(tics.)70 b(Based)42 b(on)g(this)f(discuss)h(whether)h(or)283 -1282 y(not)35 b(y)m(ou)g(w)m(ould)g(regard)f(the)h(natural)e(seman)m -(tics)i(as)g(b)s(eing)f(equiv)-5 b(alen)m(t)34 b(to)g(the)h(structural) -283 1402 y(op)s(erational)c(seman)m(tics)h(for)g(this)h(particular)d -(statemen)m(t.)1207 b Fh(2)283 1630 y Fw(Exercise)37 -b(2.34)49 b Fu(W)-8 b(e)33 b(shall)e(no)m(w)i(extend)h -Fw(While)d Fu(with)h(the)h(statemen)m(t)527 1833 y Fr(random)p -Fu(\()p Fs(x)12 b Fu(\))283 2035 y(and)42 b(the)f(idea)f(is)h(that)g -(its)f(execution)i(will)d(c)m(hange)j(the)f(v)-5 b(alue)41 -b(of)f Fs(x)53 b Fu(to)41 b(b)s(e)g(an)m(y)g(p)s(ositiv)m(e)283 -2156 y(natural)23 b(n)m(um)m(b)s(er.)41 b(Extend)26 b(the)e(natural)f -(seman)m(tics)h(as)g(w)m(ell)f(as)h(the)h(structural)e(op)s(erational) -283 2276 y(seman)m(tics)38 b(to)f(express)j(this.)58 -b(Discuss)38 b(whether)h Fr(random)p Fu(\()p Fs(x)12 -b Fu(\))39 b(is)e(a)h(sup)s(er\015uous)h(construct)283 -2396 y(in)32 b(the)h(case)h(where)g Fw(While)d Fu(is)h(also)f(extended) -k(with)d(the)h Fr(or)g Fu(construct.)648 b Fh(2)283 2685 -y Fp(P)l(arallelism)283 2870 y Fu(W)-8 b(e)38 b(shall)e(no)m(w)h -(consider)h(an)f(extension)h(of)e Fw(While)g Fu(with)h(a)g(parallel)d -(construct.)58 b(So)37 b(no)m(w)283 2990 y(the)c(syn)m(tax)i(of)d -(expressions)i(is)e(giv)m(en)h(b)m(y)577 3185 y Fs(S)112 -b Fu(::=)99 b Fs(x)45 b Fu(:=)32 b Fs(a)40 b Ft(j)32 -b Fr(skip)i Ft(j)e Fs(S)1713 3200 y Fn(1)1785 3185 y -Fu(;)g Fs(S)1911 3200 y Fn(2)1983 3185 y Ft(j)g Fr(if)h -Fs(b)39 b Fr(then)33 b Fs(S)2566 3200 y Fn(1)2638 3185 -y Fr(else)h Fs(S)2943 3200 y Fn(2)795 3352 y Ft(j)150 -b Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)44 b Ft(j)32 -b Fs(S)1707 3367 y Fn(1)1779 3352 y Fr(par)h Fs(S)2032 -3367 y Fn(2)283 3548 y Fu(The)k(idea)f(is)f(that)h(b)s(oth)f(statemen)m -(ts)i(of)f Fs(S)1923 3563 y Fn(1)1998 3548 y Fr(par)g -Fs(S)2254 3563 y Fn(2)2330 3548 y Fu(ha)m(v)m(e)h(to)e(b)s(e)h -(executed)j(but)d(that)f(the)283 3669 y(execution)f(can)f(b)s(e)f -Fs(interle)-5 b(ave)g(d)p Fu(.)43 b(This)33 b(means)f(that)h(a)f -(statemen)m(t)h(lik)m(e)527 3871 y Fr(x)g Fu(:=)g Fr(1)f(par)i -Fu(\()p Fr(x)e Fu(:=)h Fr(2)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p -Fu(+)p Fr(2)p Fu(\))283 4074 y(can)f(giv)m(e)g(three)g(di\013eren)m(t)f -(results)h(for)f Fr(x)p Fu(,)h(namely)f Fw(4)p Fu(,)h -Fw(1)f Fu(and)h Fw(3)p Fu(:)42 b(If)31 b(w)m(e)g(\014rst)g(execute)h -Fr(x)h Fu(:=)g Fr(1)283 4194 y Fu(and)44 b(then)h Fr(x)e -Fu(:=)h Fr(2)p Fu(;)50 b Fr(x)44 b Fu(:=)f Fr(x)p Fu(+)p -Fr(2)h Fu(w)m(e)h(get)f(the)g(\014nal)f(v)-5 b(alue)43 -b Fw(4)p Fu(.)77 b(Alternativ)m(ely)-8 b(,)45 b(if)e(w)m(e)h(\014rst) -283 4315 y(execute)c Fr(x)e Fu(:=)g Fr(2)p Fu(;)j Fr(x)d -Fu(:=)g Fr(x)p Fu(+)p Fr(2)g Fu(and)g(then)h Fr(x)f Fu(:=)g -Fr(1)g Fu(w)m(e)h(get)f(the)g(\014nal)f(v)-5 b(alue)38 -b Fw(1)p Fu(.)59 b(Finally)-8 b(,)37 b(w)m(e)283 4435 -y(ha)m(v)m(e)c(the)e(p)s(ossibilit)m(y)d(of)j(\014rst)g(executing)g -Fr(x)g Fu(:=)g Fr(2)p Fu(,)g(then)h Fr(x)e Fu(:=)h Fr(1)g -Fu(and)g(lastly)e Fr(x)k Fu(:=)g Fr(x)p Fu(+)p Fr(2)e -Fu(and)283 4556 y(w)m(e)j(then)f(get)g(the)g(\014nal)f(v)-5 -b(alue)32 b Fw(3)p Fu(.)430 4676 y(T)-8 b(o)43 b(express)j(this)d(in)g -(the)h Fs(structur)-5 b(al)45 b(op)-5 b(er)g(ational)44 -b(semantics)51 b Fu(w)m(e)44 b(extend)h(T)-8 b(able)43 -b(2.2)283 4796 y(with)33 b(the)g(follo)m(wing)d(rules:)527 -5059 y([par)707 5023 y Fn(1)695 5084 y(sos)790 5059 y -Fu(])1485 4973 y Ft(h)p Fs(S)1591 4988 y Fn(1)1630 4973 -y Fu(,)j Fs(s)8 b Ft(i)32 b(\))h(h)o Fs(S)2047 4937 y -Fi(0)2047 4997 y Fn(1)2087 4973 y Fu(,)f Fs(s)2194 4937 -y Fi(0)2218 4973 y Ft(i)p 1160 5036 1422 4 v 1160 5141 -a(h)p Fs(S)1266 5156 y Fn(1)1338 5141 y Fr(par)h Fs(S)1591 -5156 y Fn(2)1630 5141 y Fu(,)g Fs(s)8 b Ft(i)32 b(\))h(h)o -Fs(S)2047 5105 y Fi(0)2047 5165 y Fn(1)2119 5141 y Fr(par)g -Fs(S)2372 5156 y Fn(2)2412 5141 y Fu(,)f Fs(s)2519 5105 -y Fi(0)2543 5141 y Ft(i)527 5421 y Fu([par)707 5385 y -Fn(2)695 5446 y(sos)790 5421 y Fu(])1445 5335 y Ft(h)o -Fs(S)1550 5350 y Fn(1)1590 5335 y Fu(,)g Fs(s)8 b Ft(i)33 -b(\))f Fs(s)1949 5299 y Fi(0)p 1160 5398 1096 4 v 1160 -5503 a Ft(h)p Fs(S)1266 5518 y Fn(1)1338 5503 y Fr(par)h -Fs(S)1591 5518 y Fn(2)1630 5503 y Fu(,)g Fs(s)8 b Ft(i)32 -b(\))h(h)o Fs(S)2047 5518 y Fn(2)2087 5503 y Fu(,)f Fs(s)2194 -5467 y Fi(0)2218 5503 y Ft(i)p eop -%%Page: 49 59 -49 58 bop 0 130 a Fw(2.4)112 b(Extensions)37 b(of)h(While)2119 -b(49)p 0 193 3473 4 v 244 577 a Fu([par)424 541 y Fn(3)412 -602 y(sos)507 577 y Fu(])1202 490 y Ft(h)p Fs(S)1308 -505 y Fn(2)1347 490 y Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))g(h)p -Fs(S)1764 454 y Fi(0)1764 515 y Fn(2)1803 490 y Fu(,)h -Fs(s)1911 454 y Fi(0)1934 490 y Ft(i)p 877 554 1422 4 -v 877 658 a(h)p Fs(S)983 673 y Fn(1)1054 658 y Fr(par)h -Fs(S)1308 673 y Fn(2)1347 658 y Fu(,)f Fs(s)8 b Ft(i)32 -b(\))g(h)p Fs(S)1764 673 y Fn(1)1836 658 y Fr(par)h Fs(S)2089 -622 y Fi(0)2089 683 y Fn(2)2128 658 y Fu(,)g Fs(s)2236 -622 y Fi(0)2259 658 y Ft(i)244 939 y Fu([par)424 903 -y Fn(4)412 964 y(sos)507 939 y Fu(])1161 853 y Ft(h)p -Fs(S)1267 868 y Fn(2)1306 853 y Fu(,)g Fs(s)8 b Ft(i)32 -b(\))g Fs(s)1665 816 y Fi(0)p 877 916 1096 4 v 877 1020 -a Ft(h)p Fs(S)983 1035 y Fn(1)1054 1020 y Fr(par)i Fs(S)1308 -1035 y Fn(2)1347 1020 y Fu(,)f Fs(s)8 b Ft(i)32 b(\))g(h)p -Fs(S)1764 1035 y Fn(1)1803 1020 y Fu(,)h Fs(s)1911 984 -y Fi(0)1934 1020 y Ft(i)0 1212 y Fu(The)g(\014rst)g(t)m(w)m(o)h(rules)e -(tak)m(e)h(accoun)m(t)h(of)e(the)h(case)g(where)h(w)m(e)g(b)s(egin)d(b) -m(y)j(executing)f(the)g(\014rst)0 1332 y(step)h(of)e(statemen)m(t)i -Fs(S)839 1347 y Fn(1)878 1332 y Fu(.)45 b(If)33 b(the)g(execution)h(of) -e Fs(S)1831 1347 y Fn(1)1903 1332 y Fu(is)h(not)g(fully)e(completed)i -(w)m(e)h(mo)s(dify)d(the)0 1452 y(con\014guration)h(so)g(as)h(to)f -(remem)m(b)s(er)g(ho)m(w)h(far)f(w)m(e)i(ha)m(v)m(e)f(reac)m(hed.)45 -b(Otherwise)33 b(only)f Fs(S)3259 1467 y Fn(2)3331 1452 -y Fu(has)0 1573 y(to)38 b(b)s(e)g(executed)j(and)d(w)m(e)h(up)s(date)g -(the)f(con\014guration)g(accordingly)-8 b(.)59 b(The)39 -b(last)e(t)m(w)m(o)i(rules)0 1693 y(are)33 b(similar)c(but)k(for)f(the) -h(case)g(where)h(w)m(e)g(b)s(egin)d(b)m(y)j(executing)f(the)g(\014rst)g -(step)h(of)e Fs(S)3199 1708 y Fn(2)3238 1693 y Fu(.)146 -1815 y(Using)43 b(these)h(rules)f(w)m(e)h(get)f(the)h(follo)m(wing)c -(deriv)-5 b(ation)42 b(sequences)k(for)c(the)i(example)0 -1935 y(statemen)m(t:)244 2144 y Ft(h)p Fr(x)32 b Fu(:=)h -Fr(1)g(par)g Fu(\()p Fr(x)g Fu(:=)f Fr(2)p Fu(;)h Fr(x)g -Fu(:=)f Fr(x)p Fu(+)p Fr(2)p Fu(\),)h Fs(s)8 b Ft(i)33 -b(\))f(h)p Fr(x)g Fu(:=)h Fr(2)p Fu(;)g Fr(x)f Fu(:=)h -Fr(x)p Fu(+)p Fr(2)p Fu(,)g Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p -Fw(1)p Fu(])p Ft(i)1755 2312 y(\))32 b(h)p Fr(x)g Fu(:=)h -Fr(x)p Fu(+)p Fr(2)p Fu(,)g Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p -Fw(2)p Fu(])p Ft(i)1755 2479 y(\))32 b Fs(s)8 b Fu([)p -Fr(x)p Ft(7!)p Fw(4)p Fu(])244 2694 y Ft(h)p Fr(x)32 -b Fu(:=)h Fr(1)g(par)g Fu(\()p Fr(x)g Fu(:=)f Fr(2)p -Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Fu(+)p Fr(2)p Fu(\),)h Fs(s)8 -b Ft(i)33 b(\))f(h)p Fr(x)g Fu(:=)h Fr(1)g(par)g(x)g -Fu(:=)f Fr(x)p Fu(+)p Fr(2)p Fu(,)h Fs(s)8 b Fu([)p Fr(x)p -Ft(7!)p Fw(2)p Fu(])p Ft(i)1755 2862 y(\))32 b(h)p Fr(x)g -Fu(:=)h Fr(1)p Fu(,)g Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p -Fw(4)p Fu(])p Ft(i)1755 3029 y(\))32 b Fs(s)8 b Fu([)p -Fr(x)p Ft(7!)p Fw(1)p Fu(])0 3238 y(and)244 3447 y Ft(h)p -Fr(x)32 b Fu(:=)h Fr(1)g(par)g Fu(\()p Fr(x)g Fu(:=)f -Fr(2)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Fu(+)p Fr(2)p Fu(\),)h -Fs(s)8 b Ft(i)33 b(\))f(h)p Fr(x)g Fu(:=)h Fr(1)g(par)g(x)g -Fu(:=)f Fr(x)p Fu(+)p Fr(2)p Fu(,)h Fs(s)8 b Fu([)p Fr(x)p -Ft(7!)p Fw(2)p Fu(])p Ft(i)1755 3615 y(\))32 b(h)p Fr(x)g -Fu(:=)h Fr(x)p Fu(+)p Fr(2)p Fu(,)g Fs(s)8 b Fu([)p Fr(x)p -Ft(7!)p Fw(1)p Fu(])p Ft(i)1755 3783 y(\))32 b Fs(s)8 -b Fu([)p Fr(x)p Ft(7!)p Fw(3)p Fu(])146 3992 y(T)-8 b(urning)34 -b(to)g(the)h Fs(natur)-5 b(al)37 b(semantics)42 b Fu(w)m(e)35 -b(migh)m(t)e(start)h(b)m(y)i(extending)f(T)-8 b(able)34 -b(2.1)g(with)0 4112 y(the)f(t)m(w)m(o)g(rules:)254 4284 -y Ft(h)p Fs(S)360 4299 y Fn(1)399 4284 y Fu(,)f Fs(s)8 -b Ft(i)33 b(!)f Fs(s)758 4247 y Fi(0)781 4284 y Fu(,)h -Ft(h)p Fs(S)947 4299 y Fn(2)986 4284 y Fu(,)g Fs(s)1094 -4247 y Fi(0)1117 4284 y Ft(i)f(!)g Fs(s)1368 4247 y Fi(00)p -254 4347 1158 4 v 396 4452 a Ft(h)p Fs(S)502 4467 y Fn(1)574 -4452 y Fr(par)h Fs(S)827 4467 y Fn(2)867 4452 y Fu(,)f -Fs(s)8 b Ft(i)33 b(!)f Fs(s)1226 4415 y Fi(00)254 4654 -y Ft(h)p Fs(S)360 4669 y Fn(2)399 4654 y Fu(,)g Fs(s)8 -b Ft(i)33 b(!)f Fs(s)758 4618 y Fi(0)781 4654 y Fu(,)h -Ft(h)p Fs(S)947 4669 y Fn(1)986 4654 y Fu(,)g Fs(s)1094 -4618 y Fi(0)1117 4654 y Ft(i)f(!)g Fs(s)1368 4618 y Fi(00)p -254 4717 V 396 4822 a Ft(h)p Fs(S)502 4837 y Fn(1)574 -4822 y Fr(par)h Fs(S)827 4837 y Fn(2)867 4822 y Fu(,)f -Fs(s)8 b Ft(i)33 b(!)f Fs(s)1226 4786 y Fi(00)0 5013 -y Fu(Ho)m(w)m(ev)m(er,)50 b(it)44 b(is)g(easy)i(to)f(see)h(that)e(this) -h(will)d(not)j(do)g(b)s(ecause)h(the)f(rules)g(only)f(express)0 -5133 y(that)36 b(either)f Fs(S)561 5148 y Fn(1)636 5133 -y Fu(is)g(executed)j(b)s(efore)e Fs(S)1507 5148 y Fn(2)1582 -5133 y Fu(or)g(vice)g(v)m(ersa.)54 b(This)36 b(means)g(that)f(w)m(e)i -(ha)m(v)m(e)g(lost)0 5254 y(the)h(abilit)m(y)e(to)i Fs(interle)-5 -b(ave)44 b Fu(the)39 b(execution)f(of)g(t)m(w)m(o)g(statemen)m(ts.)61 -b(F)-8 b(urthermore,)39 b(it)d(seems)0 5374 y(imp)s(ossible)28 -b(to)i(b)s(e)h(able)f(to)g(express)i(this)e(in)g(the)h(natural)e(seman) -m(tics)i(b)s(ecause)h(w)m(e)f(consider)0 5494 y(the)h(execution)g(of)f -(a)h(statemen)m(t)g(as)f(an)h(atomic)d(en)m(tit)m(y)k(that)e(cannot)h -(b)s(e)f(split)g(in)m(to)f(smaller)p eop -%%Page: 50 60 -50 59 bop 251 130 a Fw(50)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(pieces.)45 -b(This)32 b(ma)m(y)h(b)s(e)g(summarized)e(as)i(follo)m(ws:)p -283 664 3472 4 v 283 681 V 281 889 4 208 v 298 889 V -567 810 a Fw(Natural)f(Seman)m(tics)f(v)m(ersus)j(Structural)d(Op)s -(erational)h(Seman)m(tics)p 3736 889 V 3753 889 V 283 -892 3472 4 v 281 1261 4 370 v 298 1261 V 350 1057 a Ft(\017)99 -b Fu(In)42 b(a)f(natural)f(seman)m(tics)h(the)h(execution)g(of)e(the)i -(immediate)c(constituen)m(ts)43 b(is)d(an)499 1178 y -Fs(atomic)35 b(entity)41 b Fu(so)33 b(w)m(e)h(cannot)f(express)h(in)m -(terlea)m(ving)e(of)g(computations.)p 3736 1261 V 3753 -1261 V 281 1549 4 289 v 298 1549 V 350 1345 a Ft(\017)99 -b Fu(In)36 b(a)e(structural)h(op)s(erational)d(seman)m(tics)j(w)m(e)h -(concen)m(trate)h(on)d(the)i Fs(smal)5 b(l)36 b(steps)43 -b Fu(of)499 1466 y(the)33 b(computation)e(so)i(w)m(e)h(can)f(easily)e -(express)k(in)m(terlea)m(ving.)p 3736 1549 V 3753 1549 -V 283 1553 3472 4 v 283 1569 V 283 1833 a Fw(Exercise)i(2.35)49 -b Fu(Consider)j(an)f(extension)h(of)f Fw(While)f Fu(that)h(in)g -(addition)f(to)h(the)h Fr(par)p Fu(-)283 1954 y(construct)34 -b(also)e(con)m(tains)g(the)h(construct)527 2206 y Fr(protect)i -Fs(S)44 b Fr(end)283 2459 y Fu(The)37 b(idea)f(is)f(that)h(the)g -(statemen)m(t)h Fs(S)47 b Fu(has)37 b(to)e(b)s(e)h(executed)i(as)f(an)e -(atomic)f(en)m(tit)m(y)j(so)f(that)283 2579 y(for)c(example)527 -2832 y Fr(x)h Fu(:=)g Fr(1)f(par)i(protect)g Fu(\()p -Fr(x)f Fu(:=)f Fr(2)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Fu(+)p -Fr(2)p Fu(\))h Fr(end)283 3085 y Fu(only)26 b(has)g(t)m(w)m(o)g(p)s -(ossible)g(outcomes)f(namely)g Fw(1)h Fu(and)g Fw(4)p -Fu(.)41 b(Extend)27 b(the)g(structural)e(op)s(erational)283 -3205 y(seman)m(tics)38 b(to)f(express)i(this.)57 b(Can)38 -b(y)m(ou)g(sp)s(ecify)f(a)g(natural)f(seman)m(tics)i(for)e(the)i -(extended)283 3325 y(language?)2977 b Fh(2)283 3623 y -Fw(Exercise)37 b(2.36)49 b Fu(Sp)s(ecify)37 b(a)h(structural)f(op)s -(erational)e(seman)m(tics)i(for)g(arithmetic)f(expres-)283 -3743 y(sions)42 b(where)h(the)f(individual)d(parts)j(of)g(an)f -(expression)i(ma)m(y)f(b)s(e)g(computed)g(in)e(parallel.)283 -3863 y(T)-8 b(ry)34 b(to)e(pro)m(v)m(e)i(that)e(y)m(ou)h(still)e -(obtain)g(the)i(result)g(that)f(w)m(as)i(sp)s(eci\014ed)f(b)m(y)g -Ft(A)p Fu(.)468 b Fh(2)283 4257 y Fj(2.5)161 b(Blo)t(c)l(ks)54 -b(and)f(pro)t(cedures)283 4496 y Fu(W)-8 b(e)38 b(no)m(w)f(extend)i -(the)e(language)f Fw(While)f Fu(with)i(blo)s(c)m(ks)g(con)m(taining)e -(declarations)h(of)h(v)-5 b(ari-)283 4616 y(ables)33 -b(and)g(pro)s(cedures.)44 b(In)33 b(doing)f(so)h(w)m(e)g(in)m(tro)s -(duce)g(a)f(couple)h(of)f(imp)s(ortan)m(t)e(concepts:)429 -4869 y Ft(\017)48 b Fu(v)-5 b(ariable)31 b(and)i(pro)s(cedure)g(en)m -(vironmen)m(ts,)h(and)429 5121 y Ft(\017)48 b Fu(lo)s(cations)31 -b(and)i(stores.)283 5374 y(W)-8 b(e)36 b(shall)e(concen)m(trate)j(on)e -(the)h(natural)e(seman)m(tics)i(and)f(will)f(consider)h(dynamic)g(as)h -(w)m(ell)283 5494 y(as)d(static)f(scop)s(e)i(and)e(non-recursiv)m(e)i -(as)f(w)m(ell)f(as)g(recursiv)m(e)i(pro)s(cedures.)p -eop -%%Page: 51 61 -51 60 bop 0 130 a Fw(2.5)112 b(Blo)s(c)m(ks)37 b(and)h(pro)s(cedures) -1998 b(51)p 0 193 3473 4 v 0 515 a Fp(Blo)t(c)l(ks)45 -b(and)g(simple)g(declarations)0 700 y Fu(W)-8 b(e)37 -b(\014rst)g(extend)h(the)f(language)f Fw(While)f Fu(with)h(blo)s(c)m -(ks)h(con)m(taining)e(declarations)h(of)g(lo)s(cal)0 -820 y(v)-5 b(ariables.)42 b(The)34 b(new)f(language)f(is)g(called)f -Fw(Blo)s(c)m(k)h Fu(and)g(its)g(syn)m(tax)i(is)294 1001 -y Fs(S)111 b Fu(::=)100 b Fs(x)44 b Fu(:=)33 b Fs(a)39 -b Ft(j)33 b Fr(skip)g Ft(j)f Fs(S)1429 1016 y Fn(1)1501 -1001 y Fu(;)h Fs(S)1628 1016 y Fn(2)1700 1001 y Ft(j)f -Fr(if)h Fs(b)38 b Fr(then)c Fs(S)2283 1016 y Fn(1)2355 -1001 y Fr(else)f Fs(S)2659 1016 y Fn(2)511 1168 y Ft(j)151 -b Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)45 b Ft(j)32 b -Fr(begin)i Fs(D)1729 1183 y Fc(V)1822 1168 y Fs(S)44 -b Fr(end)0 1350 y Fu(where)32 b Fs(D)363 1365 y Fc(V)454 -1350 y Fu(is)d(a)h(meta-v)-5 b(ariable)28 b(ranging)h(o)m(v)m(er)i(the) -g(syn)m(tactic)g(category)g Fw(Dec)2946 1365 y Fn(V)3034 -1350 y Fu(of)e Fs(variable)0 1471 y(de)-5 b(clar)g(ations)p -Fu(.)42 b(The)34 b(syn)m(tax)g(of)e(v)-5 b(ariable)31 -b(declarations)g(is)h(giv)m(en)h(b)m(y:)294 1658 y Fs(D)377 -1673 y Fc(V)537 1658 y Fu(::=)100 b Fr(var)33 b Fs(x)45 -b Fu(:=)32 b Fs(a)7 b Fu(;)33 b Fs(D)1378 1673 y Fc(V)1471 -1658 y Ft(j)g Fo(")0 1848 y Fu(where)h Fo(")f Fu(is)g(the)g(empt)m(y)h -(declaration.)43 b(The)34 b(idea)e(is)h(that)g(the)g(v)-5 -b(ariables)32 b(declared)h(inside)g(a)0 1969 y(blo)s(c)m(k)f -Fr(begin)i Fs(D)629 1984 y Fc(V)723 1969 y Fs(S)44 b -Fr(end)33 b Fu(are)g Fs(lo)-5 b(c)g(al)42 b Fu(to)32 -b(it.)43 b(So)32 b(in)g(a)g(statemen)m(t)h(lik)m(e)244 -2157 y Fr(begin)h(var)f(y)g Fu(:=)f Fr(1)p Fu(;)533 2325 -y(\()p Fr(x)g Fu(:=)h Fr(1)p Fu(;)533 2493 y Fr(begin)h(var)f(x)g -Fu(:=)f Fr(2)p Fu(;)h Fr(y)g Fu(:=)f Fr(x)p Fu(+)p Fr(1)h(end)p -Fu(;)533 2660 y Fr(x)g Fu(:=)f Fr(y)p Fu(+)p Fr(x)p Fu(\))244 -2828 y Fr(end)0 3017 y Fu(the)d Fr(x)f Fu(in)g Fr(y)g -Fu(:=)g Fr(x)p Fu(+)p Fr(1)h Fu(relates)f(to)g(the)h(lo)s(cal)d(v)-5 -b(ariable)27 b Fr(x)h Fu(in)m(tro)s(duced)g(b)m(y)i Fr(var)f(x)f -Fu(:=)g Fr(2)p Fu(,)i(whereas)0 3137 y(the)e Fr(x)g Fu(in)f -Fr(x)h Fu(:=)g Fr(y)p Fu(+)p Fr(x)g Fu(relates)f(to)h(the)g(global)d(v) --5 b(ariable)26 b Fr(x)i Fu(that)g(is)f(also)g(used)i(in)e(the)h -(statemen)m(t)0 3257 y Fr(x)k Fu(:=)h Fr(1)p Fu(.)43 -b(In)33 b(b)s(oth)f(cases)i(the)e Fr(y)h Fu(refers)g(to)f(the)g -Fr(y)h Fu(declared)f(in)g(the)h(outer)f(blo)s(c)m(k.)43 -b(Therefore,)0 3378 y(the)37 b(statemen)m(t)g Fr(y)g -Fu(:=)f Fr(x)p Fu(+)p Fr(1)h Fu(assigns)g Fr(y)f Fu(the)h(v)-5 -b(alue)36 b Fw(3)p Fu(,)i(rather)e(than)h Fw(2)p Fu(,)g(and)g(the)g -(statemen)m(t)0 3498 y Fr(x)c Fu(:=)f Fr(y)p Fu(+)p Fr(x)h -Fu(assigns)g Fr(x)g Fu(the)g(v)-5 b(alue)32 b Fw(4)p -Fu(,)g(rather)h(than)g Fw(5)p Fu(.)146 3619 y(Before)28 -b(going)e(in)m(to)h(the)h(details)e(of)h(ho)m(w)i(to)e(sp)s(ecify)h -(the)g(seman)m(tics)f(w)m(e)i(shall)d(de\014ne)j(the)0 -3739 y(set)k(D)m(V\()p Fs(D)418 3754 y Fc(V)479 3739 -y Fu(\))g(of)f(v)-5 b(ariables)31 b(declared)i(in)e Fs(D)1646 -3754 y Fc(V)1707 3739 y Fu(:)294 3925 y(D)m(V\()p Fr(var)i -Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(;)33 b Fs(D)1088 3940 -y Fc(V)1148 3925 y Fu(\))100 b(=)g Ft(f)p Fs(x)12 b Ft(g)31 -b([)i Fu(D)m(V\()p Fs(D)2015 3940 y Fc(V)2076 3925 y -Fu(\))294 4092 y(D)m(V\()p Fo(")o Fu(\))726 b(=)100 b -Ft(;)146 4274 y Fu(W)-8 b(e)43 b(next)g(de\014ne)h(the)e -Fs(natur)-5 b(al)44 b(semantics)p Fu(.)71 b(The)44 b(idea)d(will)f(b)s -(e)j(to)e(ha)m(v)m(e)j(one)f(transi-)0 4395 y(tion)36 -b(system)i(for)f Fs(e)-5 b(ach)43 b Fu(of)37 b(the)g(syn)m(tactic)h -(categories)f Fw(Stm)f Fu(and)h Fw(Dec)2692 4410 y Fn(V)2750 -4395 y Fu(.)57 b(F)-8 b(or)36 b(statemen)m(ts)0 4515 -y(the)i(transition)d(system)j(is)f(as)g(in)g(T)-8 b(able)37 -b(2.1)f(but)i(extended)h(with)e(the)g(rule)g(of)g(T)-8 -b(able)37 b(2.3.)0 4635 y(The)28 b(transition)e(system)j(for)d(v)-5 -b(ariable)26 b(declarations)g(has)i(con\014gurations)f(of)g(the)h(t)m -(w)m(o)g(forms)0 4756 y Ft(h)p Fs(D)122 4771 y Fc(V)183 -4756 y Fu(,)k Fs(s)8 b Ft(i)37 b Fu(and)h Fs(s)45 b Fu(and)37 -b(the)h(idea)f(is)f(that)h(the)h(transition)e(relation)f -Ft(!)2627 4771 y Fc(D)2728 4756 y Fu(sp)s(eci\014es)j(the)g(rela-)0 -4876 y(tionship)31 b(b)s(et)m(w)m(een)k(initial)29 b(and)k(\014nal)e -(states)j(as)f(b)s(efore:)244 5065 y Ft(h)p Fs(D)366 -5080 y Fc(V)427 5065 y Fu(,)f Fs(s)8 b Ft(i)32 b(!)705 -5080 y Fc(D)802 5065 y Fs(s)850 5029 y Fi(0)0 5254 y -Fu(The)g(relation)d Ft(!)654 5269 y Fc(D)749 5254 y Fu(for)h(v)-5 -b(ariable)29 b(declarations)h(is)g(giv)m(en)h(in)f(T)-8 -b(able)30 b(2.4.)43 b(W)-8 b(e)31 b(generalize)f(the)0 -5374 y(substitution)42 b(op)s(eration)f(on)i(states)g(and)g(write)f -Fs(s)1939 5338 y Fi(0)1962 5374 y Fu([)p Fs(X)16 b Ft(7\000)-15 -b(!)o Fs(s)8 b Fu(])43 b(for)f(the)h(state)g(that)f(is)g(as)h -Fs(s)3449 5338 y Fi(0)0 5494 y Fu(except)34 b(for)e(v)-5 -b(ariables)32 b(in)f(the)i(set)h Fs(X)48 b Fu(where)34 -b(it)e(is)g(as)h(sp)s(eci\014ed)g(b)m(y)g Fs(s)8 b Fu(.)44 -b(F)-8 b(ormally)g(,)p eop -%%Page: 52 62 -52 61 bop 251 130 a Fw(52)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 736 4 -318 v 773 605 a Fu([blo)s(c)m(k)1025 620 y Fn(ns)1096 -605 y Fu(])1689 519 y Ft(h)p Fs(D)1811 534 y Fc(V)1872 -519 y Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)2150 534 y Fc(D)2247 -519 y Fs(s)2295 483 y Fi(0)2318 519 y Fu(,)g Ft(h)p Fs(S)12 -b Fu(,)32 b Fs(s)2591 483 y Fi(0)2614 519 y Ft(i)h(!)f -Fs(s)2866 483 y Fi(00)p 1406 582 1787 4 v 1406 687 a -Ft(h)o Fr(begin)i Fs(D)1816 702 y Fc(V)1910 687 y Fs(S)44 -b Fr(end)p Fu(,)33 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)2522 -650 y Fi(00)2564 687 y Fu([D)m(V\()p Fs(D)2857 702 y -Fc(V)2918 687 y Fu(\))p Ft(7\000)-16 b(!)p Fs(s)8 b Fu(])p -3753 736 4 318 v 283 739 3473 4 v 873 900 a(T)-8 b(able)32 -b(2.3:)43 b(Natural)31 b(seman)m(tics)i(for)f(statemen)m(ts)i(of)e -Fw(Blo)s(c)m(k)p 283 976 V 283 1508 4 533 v 720 1162 -a Fu([v)-5 b(ar)880 1177 y Fn(ns)951 1162 y Fu(])1382 -1076 y Ft(h)p Fs(D)1504 1091 y Fc(V)1565 1076 y Fu(,)32 -b Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o Fu([)-17 b([)q Fs(a)7 -b Fu(])-17 b(])q Fs(s)8 b Fu(])p Ft(i)32 b(!)2314 1091 -y Fc(D)2410 1076 y Fs(s)2458 1040 y Fi(0)p 1353 1139 -1158 4 v 1353 1244 a Ft(h)p Fr(var)h Fs(x)45 b Fu(:=)32 -b Fs(a)7 b Fu(;)33 b Fs(D)2003 1259 y Fc(V)2064 1244 -y Fu(,)g Fs(s)8 b Ft(i)32 b(!)2343 1259 y Fc(D)2439 1244 -y Fs(s)2487 1208 y Fi(0)720 1447 y Fu([none)947 1462 -y Fn(ns)1019 1447 y Fu(])297 b Ft(h)p Fo(")p Fu(,)32 -b Fs(s)8 b Ft(i)33 b(!)1706 1462 y Fc(D)1803 1447 y Fs(s)p -3753 1508 4 533 v 283 1511 3473 4 v 874 1672 a Fu(T)-8 -b(able)32 b(2.4:)43 b(Natural)32 b(seman)m(tics)h(for)f(v)-5 -b(ariable)30 b(declarations)527 1961 y(\()p Fs(s)613 -1925 y Fi(0)637 1961 y Fu([)p Fs(X)16 b Ft(7\000)-16 -b(!)o Fs(s)8 b Fu(]\))33 b Fs(x)44 b Fu(=)1256 1815 y -Fg(\()1364 1900 y Fs(s)d(x)118 b Fu(if)31 b Fs(x)45 b -Ft(2)33 b Fs(X)1364 2020 y(s)1412 1984 y Fi(0)1468 2020 -y Fs(x)95 b Fu(if)31 b Fs(x)45 b Ft(62)33 b Fs(X)283 -2180 y Fu(This)c(op)s(eration)d(will)g(ensure)j(that)f(lo)s(cal)d(v)-5 -b(ariables)27 b(are)h(restored)h(to)e(their)h(previous)g(v)-5 -b(alues)283 2301 y(when)34 b(the)f(blo)s(c)m(k)g(is)f(left.)283 -2475 y Fw(Exercise)37 b(2.37)49 b Fu(Use)35 b(the)f(natural)g(seman)m -(tics)g(of)g(T)-8 b(able)34 b(2.3)f(to)h(sho)m(w)h(that)f(execution)h -(of)283 2595 y(the)e(statemen)m(t)527 2758 y Fr(begin)h(var)g(y)e -Fu(:=)h Fr(1)p Fu(;)816 2926 y(\()p Fr(x)g Fu(:=)f Fr(1)p -Fu(;)816 3093 y Fr(begin)i(var)f(x)g Fu(:=)g Fr(2)p Fu(;)f -Fr(y)h Fu(:=)g Fr(x)p Fu(+)p Fr(1)g(end)p Fu(;)816 3261 -y Fr(x)g Fu(:=)f Fr(y)p Fu(+)p Fr(x)p Fu(\))527 3429 -y Fr(end)283 3592 y Fu(will)f(lead)h(to)g(a)g(state)h(where)h -Fr(x)f Fu(has)g(the)g(v)-5 b(alue)32 b Fw(4)p Fu(.)1525 -b Fh(2)430 3766 y Fu(It)32 b(is)f(somewhat)h(harder)g(to)f(sp)s(ecify)i -(a)e Fs(structur)-5 b(al)35 b(op)-5 b(er)g(ational)33 -b(semantics)39 b Fu(for)31 b(the)i(ex-)283 3886 y(tended)c(language.)41 -b(One)28 b(approac)m(h)g(is)f(to)g(replace)h(states)g(with)g(a)f -(structure)i(that)e(is)g(similar)283 4007 y(to)34 b(the)g(run-time)f -(stac)m(ks)i(used)h(in)d(the)h(implemen)m(tation)d(of)i(blo)s(c)m(k)h -(structured)h(languages.)283 4127 y(Another)43 b(is)f(to)g(extend)h -(the)g(statemen)m(ts)g(with)f(fragmen)m(ts)g(of)f(the)i(state.)73 -b(Ho)m(w)m(ev)m(er,)47 b(w)m(e)283 4247 y(shall)32 b(not)g(go)g -(further)h(in)m(to)f(this.)283 4529 y Fp(Pro)t(cedures)283 -4714 y Fu(W)-8 b(e)27 b(shall)f(no)m(w)h(extend)h(the)f(language)e -Fw(Blo)s(c)m(k)h Fu(with)g(pro)s(cedure)h(declarations.)41 -b(The)27 b(syn)m(tax)283 4834 y(of)33 b(the)g(language)e -Fw(Pro)s(c)h Fu(is:)577 4989 y Fs(S)189 b Fu(::=)99 b -Fs(x)45 b Fu(:=)32 b Fs(a)40 b Ft(j)32 b Fr(skip)i Ft(j)e -Fs(S)1790 5004 y Fn(1)1862 4989 y Fu(;)g Fs(S)1988 5004 -y Fn(2)2060 4989 y Ft(j)g Fr(if)h Fs(b)39 b Fr(then)33 -b Fs(S)2643 5004 y Fn(1)2715 4989 y Fr(else)h Fs(S)3020 -5004 y Fn(2)872 5156 y Ft(j)150 b Fr(while)34 b Fs(b)39 -b Fr(do)33 b Fs(S)44 b Ft(j)32 b Fr(begin)i Fs(D)2089 -5171 y Fc(V)2183 5156 y Fs(D)2266 5171 y Fc(P)2357 5156 -y Fs(S)44 b Fr(end)33 b Ft(j)g Fr(call)g Fs(p)577 5324 -y(D)660 5339 y Fc(V)821 5324 y Fu(::=)99 b Fr(var)34 -b Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(;)32 b Fs(D)1661 5339 -y Fc(V)1755 5324 y Ft(j)g Fo(")577 5492 y Fs(D)660 5507 -y Fc(P)821 5492 y Fu(::=)99 b Fr(proc)34 b Fs(p)k Fr(is)33 -b Fs(S)12 b Fu(;)33 b Fs(D)1721 5507 y Fc(P)1812 5492 -y Ft(j)f Fo(")p eop -%%Page: 53 63 -53 62 bop 0 130 a Fw(2.5)112 b(Blo)s(c)m(ks)37 b(and)h(pro)s(cedures) -1998 b(53)p 0 193 3473 4 v 0 515 a Fu(Here)27 b Fs(p)33 -b Fu(is)26 b(a)g(meta-v)-5 b(ariable)24 b(ranging)i(o)m(v)m(er)h(the)g -(syn)m(tactic)h(category)f Fw(Pname)f Fu(of)g(pro)s(cedure)0 -636 y(names;)31 b(in)e(the)h(concrete)h(syn)m(tax)h(there)e(need)h(not) -f(b)s(e)g(an)m(y)g(di\013erence)h(b)s(et)m(w)m(een)g(pro)s(cedure)0 -756 y(names)37 b(and)g(v)-5 b(ariable)36 b(names)h(but)g(in)g(the)g -(abstract)h(syn)m(tax)g(it)e(is)h(con)m(v)m(enien)m(t)i(to)e(b)s(e)g -(able)0 877 y(to)c(distinguish)f(b)s(et)m(w)m(een)j(the)f(t)m(w)m(o.)46 -b(F)-8 b(urthermore,)33 b Fs(D)2061 892 y Fc(P)2152 877 -y Fu(is)g(a)g(meta-v)-5 b(ariable)30 b(ranging)i(o)m(v)m(er)0 -997 y(the)h(syn)m(tactic)g(category)g Fw(Dec)1160 1012 -y Fn(P)1245 997 y Fu(of)f Fs(pr)-5 b(o)g(c)g(e)g(dur)g(e)34 -b(de)-5 b(clar)g(ations)p Fu(.)146 1117 y(W)d(e)40 b(shall)d(giv)m(e)i -(three)h(di\013eren)m(t)f(seman)m(tics)g(of)f(this)h(language.)61 -b(They)40 b(di\013er)f(in)f(their)0 1238 y(c)m(hoice)33 -b(of)f(scop)s(e)h(rules)g(for)f(v)-5 b(ariables)31 b(and)i(pro)s -(cedures:)145 1436 y Ft(\017)49 b Fu(dynamic)32 b(scop)s(e)h(for)f(v)-5 -b(ariables)31 b(as)i(w)m(ell)f(as)h(pro)s(cedures,)145 -1637 y Ft(\017)49 b Fu(dynamic)32 b(scop)s(e)h(for)f(v)-5 -b(ariables)31 b(but)i(static)f(scop)s(e)i(for)e(pro)s(cedures,)i(and) -145 1839 y Ft(\017)49 b Fu(static)32 b(scop)s(e)h(for)f(v)-5 -b(ariables)32 b(as)g(w)m(ell)g(as)h(pro)s(cedures.)0 -2037 y(T)-8 b(o)33 b(illustrate)d(the)j(di\013erence)g(consider)g(the)g -(statemen)m(t)244 2235 y Fr(begin)h(var)f(x)g Fu(:=)f -Fr(0)p Fu(;)533 2403 y Fr(proc)h(p)g(is)g(x)g Fu(:=)f -Fr(x)h Fo(?)f Fr(2)p Fu(;)533 2570 y Fr(proc)h(q)g(is)g(call)h(p)p -Fu(;)533 2738 y Fr(begin)g(var)f(x)g Fu(:=)f Fr(5)p Fu(;)822 -2905 y Fr(proc)h(p)g(is)g(x)g Fu(:=)f Fr(x)h Fu(+)f(1;)822 -3073 y Fr(call)h(q)p Fu(;)g Fr(y)g Fu(:=)f Fr(x)533 3241 -y(end)244 3408 y(end)0 3606 y Fu(If)39 b Fs(dynamic)i(sc)-5 -b(op)g(e)46 b Fu(is)39 b(used)h(for)f(v)-5 b(ariables)38 -b(as)i(w)m(ell)f(as)g(pro)s(cedures)i(then)f(the)g(\014nal)f(v)-5 -b(alue)0 3727 y(of)42 b Fr(y)h Fu(is)f Fw(6)p Fu(.)74 -b(The)44 b(reason)f(is)f(that)h Fr(call)g(q)g Fu(will)e(call)g(the)i -Fs(lo)-5 b(c)g(al)52 b Fu(pro)s(cedure)44 b Fr(p)e Fu(whic)m(h)i(will)0 -3847 y(up)s(date)31 b(the)g Fs(lo)-5 b(c)g(al)40 b Fu(v)-5 -b(ariable)29 b Fr(x)p Fu(.)43 b(If)30 b(w)m(e)i(use)f(dynamic)f(scop)s -(e)i(for)e(v)-5 b(ariables)29 b(but)i Fs(static)i(sc)-5 -b(op)g(e)0 3967 y Fu(for)35 b(pro)s(cedures)i(then)f -Fr(y)g Fu(gets)g(the)g(v)-5 b(alue)35 b Fw(10)p Fu(.)52 -b(The)37 b(reason)f(is)f(that)g(no)m(w)i Fr(call)f(q)g -Fu(will)d(call)0 4088 y(the)38 b Fs(glob)-5 b(al)47 b -Fu(pro)s(cedure)39 b Fr(p)f Fu(and)g(it)f(will)e(up)s(date)j(the)g -Fs(lo)-5 b(c)g(al)47 b Fu(v)-5 b(ariable)36 b Fr(x)p -Fu(.)60 b(Finally)-8 b(,)36 b(if)h(w)m(e)h(use)0 4208 -y(static)28 b(scop)s(e)h(for)e(v)-5 b(ariables)27 b(as)h(w)m(ell)f(as)i -(pro)s(cedures)g(then)g Fr(y)f Fu(gets)h(the)f(v)-5 b(alue)28 -b Fw(5)p Fu(.)42 b(The)29 b(reason)0 4329 y(is)39 b(that)g -Fr(call)h(q)g Fu(no)m(w)g(will)d(call)g(the)j Fs(glob)-5 -b(al)49 b Fu(pro)s(cedure)40 b Fr(p)f Fu(whic)m(h)h(will)d(up)s(date)j -(the)f Fs(glob)-5 b(al)0 4449 y Fu(v)g(ariable)31 b Fr(x)i -Fu(so)f(the)h(lo)s(cal)e(v)-5 b(ariable)31 b Fr(x)h Fu(is)g(unc)m -(hanged.)0 4708 y Fw(Dynamic)37 b(scop)s(e)g(rules)g(for)h(v)-6 -b(ariables)37 b(and)h(pro)s(cedures)0 4893 y Fu(The)44 -b(general)f(idea)f(is)h(that)g(to)g(execute)i(the)e(statemen)m(t)h -Fr(call)g Fs(p)49 b Fu(w)m(e)44 b(shall)e(execute)j(the)0 -5013 y(b)s(o)s(dy)34 b(of)f(the)i(pro)s(cedure.)48 b(This)34 -b(means)g(that)g(w)m(e)g(ha)m(v)m(e)i(to)d(k)m(eep)j(trac)m(k)e(of)g -(the)g(asso)s(ciation)0 5133 y(of)k(pro)s(cedure)i(names)f(with)g(pro)s -(cedure)h(b)s(o)s(dies.)62 b(T)-8 b(o)39 b(facilitate)d(this)j(w)m(e)h -(shall)d(in)m(tro)s(duce)0 5254 y(the)42 b(notion)f(of)g(a)h -Fs(pr)-5 b(o)g(c)g(e)g(dur)g(e)42 b(envir)-5 b(onment)p -Fu(.)70 b(Giv)m(en)42 b(a)f(pro)s(cedure)i(name)e(the)h(pro)s(cedure)0 -5374 y(en)m(vironmen)m(t)25 b Fs(env)709 5389 y Fc(P)792 -5374 y Fu(will)d(return)k(the)f(statemen)m(t)g(that)g(is)f(its)g(b)s(o) -s(dy)-8 b(.)41 b(So)25 b Fs(env)2844 5389 y Fc(P)2927 -5374 y Fu(is)f(an)h(elemen)m(t)0 5494 y(of)p eop -%%Page: 54 64 -54 63 bop 251 130 a Fw(54)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 3862 -4 3443 v 654 528 a Fu([ass)806 543 y Fn(ns)878 528 y -Fu(])372 b Fs(env)1433 543 y Fc(P)1523 528 y Ft(`)33 -b(h)o Fs(x)45 b Fu(:=)32 b Fs(a)7 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b(!)g Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)p Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])654 743 y([skip)852 -758 y Fn(ns)923 743 y Fu(])327 b Fs(env)1433 758 y Fc(P)1523 -743 y Ft(`)33 b(h)o Fr(skip)p Fu(,)h Fs(s)8 b Ft(i)32 -b(!)g Fs(s)654 1035 y Fu([comp)909 1050 y Fn(ns)980 1035 -y Fu(])1287 948 y Fs(env)1443 963 y Fc(P)1533 948 y Ft(`)h(h)o -Fs(S)1732 963 y Fn(1)1772 948 y Fu(,)f Fs(s)8 b Ft(i)33 -b(!)f Fs(s)2131 912 y Fi(0)2154 948 y Fu(,)h Fs(env)2370 -963 y Fc(P)2460 948 y Ft(`)f(h)p Fs(S)2659 963 y Fn(2)2698 -948 y Fu(,)h Fs(s)2806 912 y Fi(0)2829 948 y Ft(i)g(!)f -Fs(s)3081 912 y Fi(00)p 1287 1012 1837 4 v 1695 1116 -a Fs(env)1851 1131 y Fc(P)1942 1116 y Ft(`)g(h)p Fs(S)2141 -1131 y Fn(1)2180 1116 y Fu(;)p Fs(S)2274 1131 y Fn(2)2313 -1116 y Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)2672 1080 y -Fi(00)654 1397 y Fu([if)739 1361 y Fn(tt)739 1422 y(ns)809 -1397 y Fu(])1703 1310 y Fs(env)1859 1325 y Fc(P)1949 -1310 y Ft(`)h(h)p Fs(S)2149 1325 y Fn(1)2188 1310 y Fu(,)f -Fs(s)8 b Ft(i)33 b(!)f Fs(s)2547 1274 y Fi(0)p 1287 1374 -1700 4 v 1287 1478 a Fs(env)1443 1493 y Fc(P)1533 1478 -y Ft(`)h(h)o Fr(if)g Fs(b)39 b Fr(then)33 b Fs(S)2188 -1493 y Fn(1)2260 1478 y Fr(else)h Fs(S)2565 1493 y Fn(2)2604 -1478 y Fu(,)f Fs(s)8 b Ft(i)32 b(!)g Fs(s)2963 1442 y -Fi(0)1513 1635 y Fu(if)f Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q Fs(s)41 b Fu(=)32 b Fw(tt)654 1927 y -Fu([if)739 1890 y Fn(\013)739 1951 y(ns)809 1927 y Fu(])1703 -1840 y Fs(env)1859 1855 y Fc(P)1949 1840 y Ft(`)h(h)p -Fs(S)2149 1855 y Fn(2)2188 1840 y Fu(,)f Fs(s)8 b Ft(i)33 -b(!)f Fs(s)2547 1804 y Fi(0)p 1287 1903 V 1287 2008 a -Fs(env)1443 2023 y Fc(P)1533 2008 y Ft(`)h(h)o Fr(if)g -Fs(b)39 b Fr(then)33 b Fs(S)2188 2023 y Fn(1)2260 2008 -y Fr(else)h Fs(S)2565 2023 y Fn(2)2604 2008 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)g Fs(s)2963 1972 y Fi(0)1513 2165 -y Fu(if)f Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q -Fs(s)41 b Fu(=)32 b Fw(\013)654 2456 y Fu([while)904 -2420 y Fn(tt)904 2481 y(ns)974 2456 y Fu(])1287 2370 -y Fs(env)1443 2385 y Fc(P)1533 2370 y Ft(`)h(h)o Fs(S)12 -b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)2091 2334 y Fi(0)2115 -2370 y Fu(,)g Fs(env)2330 2385 y Fc(P)2421 2370 y Ft(`)g(h)p -Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)3235 -2334 y Fi(0)3258 2370 y Ft(i)f(!)g Fs(s)3509 2334 y Fi(00)p -1287 2433 2266 4 v 1742 2538 a Fs(env)1898 2553 y Fc(P)1989 -2538 y Ft(`)g(h)p Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 -b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)3054 2502 y Fi(00)1513 -2694 y Fu(if)f Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q Fs(s)41 b Fu(=)32 b Fw(tt)654 2909 y Fu([while)904 -2873 y Fn(\013)904 2934 y(ns)974 2909 y Fu(])276 b Fs(env)1433 -2924 y Fc(P)1523 2909 y Ft(`)33 b(h)o Fr(while)h Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 b(!)h -Fs(s)1513 3077 y Fu(if)e Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q Fs(s)41 b Fu(=)32 b Fw(\013)654 3368 -y Fu([blo)s(c)m(k)906 3383 y Fn(ns)977 3368 y Fu(])1410 -3282 y Ft(h)p Fs(D)1532 3297 y Fc(V)1593 3282 y Fu(,)g -Fs(s)8 b Ft(i)33 b(!)1871 3297 y Fc(D)1968 3282 y Fs(s)2016 -3246 y Fi(0)2039 3282 y Fu(,)g(up)s(d)2264 3297 y Fn(P)2316 -3282 y Fu(\()p Fs(D)2437 3297 y Fc(P)2496 3282 y Fu(,)g -Fs(env)2712 3297 y Fc(P)2769 3282 y Fu(\))g Ft(`)f(h)p -Fs(S)12 b Fu(,)32 b Fs(s)3146 3246 y Fi(0)3170 3282 y -Ft(i)g(!)g Fs(s)3421 3246 y Fi(00)p 1287 3345 2301 4 -v 1287 3450 a Fs(env)1443 3465 y Fc(P)1533 3450 y Ft(`)h(h)o -Fr(begin)h Fs(D)2037 3465 y Fc(V)2131 3450 y Fs(D)2214 -3465 y Fc(P)2305 3450 y Fs(S)44 b Fr(end)p Fu(,)34 b -Fs(s)8 b Ft(i)32 b(!)g Fs(s)2917 3414 y Fi(00)2960 3450 -y Fu([D)m(V\()p Fs(D)3253 3465 y Fc(V)3313 3450 y Fu(\))p -Ft(7\000)-16 b(!)p Fs(s)8 b Fu(])654 3731 y([call)829 -3694 y Fn(rec)829 3755 y(ns)922 3731 y Fu(])1400 3644 -y Fs(env)1556 3659 y Fc(P)1646 3644 y Ft(`)33 b(h)p Fs(S)12 -b Fu(,)32 b Fs(s)8 b Ft(i)32 b(!)h Fs(s)2205 3608 y Fi(0)p -1287 3707 1055 4 v 1287 3812 a Fs(env)1443 3827 y Fc(P)1533 -3812 y Ft(`)g(h)o Fr(call)h Fs(p)6 b Fu(,)32 b Fs(s)8 -b Ft(i)33 b(!)f Fs(s)2318 3776 y Fi(0)2449 3731 y Fu(where)i -Fs(env)2887 3746 y Fc(P)2977 3731 y Fs(p)k Fu(=)33 b -Fs(S)p 3753 3862 4 3443 v 283 3865 3473 4 v 640 4026 -a Fu(T)-8 b(able)32 b(2.5:)44 b(Natural)31 b(seman)m(tics)i(for)f -Fw(Pro)s(c)g Fu(with)g(dynamic)g(scop)s(e)h(rules)527 -4322 y Fw(En)m(v)719 4337 y Fn(P)804 4322 y Fu(=)f Fw(Pname)h -Fo(,)-17 b Ft(!)32 b Fw(Stm)430 4552 y Fu(The)45 b(next)g(step)g(will)c -(b)s(e)k(to)e(extend)j(the)e(natural)f(seman)m(tics)h(to)g(tak)m(e)h -(the)f(en)m(viron-)283 4672 y(men)m(t)35 b(in)m(to)f(accoun)m(t.)50 -b(W)-8 b(e)35 b(shall)e(extend)j(the)f(transition)e(system)j(for)e -(statemen)m(ts)h(to)g(ha)m(v)m(e)283 4793 y(transitions)d(of)g(the)h -(form)527 5023 y Fs(env)683 5038 y Fc(P)774 5023 y Ft(`)f(h)p -Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1332 -4987 y Fi(0)283 5254 y Fu(The)e(presence)g(of)e(the)h(en)m(vironmen)m -(t)f(means)h(that)f(w)m(e)h(can)g(alw)m(a)m(ys)g(access)h(it)d(and)h -(therefore)283 5374 y(get)36 b(hold)g(of)f(the)i(b)s(o)s(dies)e(of)h -(declared)g(pro)s(cedures.)55 b(The)37 b(result)f(of)f(mo)s(difying)f -(T)-8 b(able)35 b(2.1)283 5494 y(to)e(incorp)s(orate)e(this)h(extra)h -(information)d(is)i(sho)m(wn)i(in)e(T)-8 b(able)32 b(2.5.)p -eop -%%Page: 55 65 -55 64 bop 0 130 a Fw(2.5)112 b(Blo)s(c)m(ks)37 b(and)h(pro)s(cedures) -1998 b(55)p 0 193 3473 4 v 146 515 a Fu(Concerning)39 -b(the)f(rule)g(for)g Fr(begin)h Fs(D)1573 530 y Fc(V)1672 -515 y Fs(D)1755 530 y Fc(P)1852 515 y Fs(S)50 b Fr(end)39 -b Fu(the)f(idea)g(is)f(that)h(w)m(e)i(up)s(date)e(the)0 -636 y(pro)s(cedure)44 b(en)m(vironmen)m(t)f(so)f(that)h(the)g(pro)s -(cedures)h(declared)f(in)f Fs(D)2666 651 y Fc(P)2767 -636 y Fu(will)e(b)s(e)j(a)m(v)-5 b(ailable)0 756 y(when)41 -b(executing)f Fs(S)12 b Fu(.)39 b(Giv)m(en)h(a)f(global)e(en)m -(vironmen)m(t)j Fs(env)2234 771 y Fc(P)2331 756 y Fu(and)g(a)f -(declaration)f Fs(D)3210 771 y Fc(P)3269 756 y Fu(,)j(the)0 -877 y(up)s(dated)33 b(pro)s(cedure)h(en)m(vironmen)m(t,)f(up)s(d)1588 -892 y Fn(P)1640 877 y Fu(\()p Fs(D)1761 892 y Fc(P)1820 -877 y Fu(,)f Fs(env)2035 892 y Fc(P)2093 877 y Fu(\),)h(is)f(sp)s -(eci\014ed)h(b)m(y:)244 1072 y(up)s(d)409 1087 y Fn(P)461 -1072 y Fu(\()p Fr(proc)h Fs(p)k Fr(is)33 b Fs(S)12 b -Fu(;)33 b Fs(D)1170 1087 y Fc(P)1228 1072 y Fu(,)g Fs(env)1444 -1087 y Fc(P)1502 1072 y Fu(\))f(=)h(up)s(d)1846 1087 -y Fn(P)1898 1072 y Fu(\()p Fs(D)2019 1087 y Fc(P)2078 -1072 y Fu(,)f Fs(env)2293 1087 y Fc(P)2351 1072 y Fu([)p -Fs(p)6 b Ft(7!)p Fs(S)12 b Fu(]\))244 1240 y(up)s(d)409 -1255 y Fn(P)461 1240 y Fu(\()p Fo(")p Fu(,)33 b Fs(env)761 -1255 y Fc(P)818 1240 y Fu(\))g(=)f Fs(env)1153 1255 y -Fc(P)146 1436 y Fu(As)j(the)f(v)-5 b(ariable)32 b(declarations)g(do)i -(not)g(need)g(to)g(access)h(the)f(pro)s(cedure)h(en)m(vironmen)m(t)0 -1556 y(it)c(is)h(not)g(necessary)j(to)d(extend)i(the)f(transition)e -(system)i(for)f(declarations)f(with)h(the)h(extra)0 1677 -y(comp)s(onen)m(t.)44 b(So)32 b(for)g(v)-5 b(ariable)31 -b(declarations)g(w)m(e)j(still)c(ha)m(v)m(e)k(transitions)d(of)i(the)g -(form)244 1873 y Ft(h)p Fs(D)9 b Fu(,)32 b Fs(s)8 b Ft(i)33 -b(!)644 1888 y Fc(D)741 1873 y Fs(s)789 1837 y Fi(0)0 -2069 y Fu(The)h(relation)c(is)i(de\014ned)i(as)f(for)f(the)h(language)f -Fw(Blo)s(c)m(k)p Fu(,)f(that)h(is)g(b)m(y)i(T)-8 b(able)32 -b(2.4.)146 2189 y(W)-8 b(e)25 b(can)g(no)m(w)g(complete)e(the)i(sp)s -(eci\014cation)f(of)g(the)h(seman)m(tics)f(of)g(blo)s(c)m(ks)h(and)f -(pro)s(cedure)0 2309 y(calls.)42 b(Note)31 b(that)g(in)g(the)h(rule)f -([blo)s(c)m(k)1425 2324 y Fn(ns)1496 2309 y Fu(])g(of)g(T)-8 -b(able)31 b(2.5)g(w)m(e)h(use)g(the)g(up)s(dated)g(en)m(vironmen)m(t)0 -2430 y(when)47 b(executing)f(the)g(b)s(o)s(dy)f(of)g(the)h(blo)s(c)m -(k.)82 b(In)46 b(the)g(rule)f([call)2495 2394 y Fn(rec)2495 -2454 y(ns)2588 2430 y Fu(])g(for)g(pro)s(cedure)i(calls)0 -2550 y(w)m(e)g(mak)m(e)f(use)i(of)d(the)i(information)c(pro)m(vided)j -(b)m(y)h(the)g(en)m(vironmen)m(t.)85 b(It)46 b(follo)m(ws)f(that)0 -2671 y(pro)s(cedures)34 b(will)c Fs(always)40 b Fu(b)s(e)33 -b(recursiv)m(e.)0 2889 y Fw(Exercise)j(2.38)49 b Fu(Consider)33 -b(the)g(follo)m(wing)d(statemen)m(t)j(of)f Fw(Pro)s(c)p -Fu(:)244 3085 y Fr(begin)i(proc)f(fac)h(is)f(begin)h(var)f(z)g -Fu(:=)f Fr(x)p Fu(;)1381 3252 y Fr(if)h(x)f Fu(=)h Fr(1)g(then)g(skip) -1381 3420 y(else)g Fu(\()p Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(;)i Fr(call)g(fac)p Fu(;)f Fr(y)g Fu(:=)f Fr(z)p -Fo(?)p Fr(y)p Fu(\))1092 3588 y Fr(end)p Fu(;)533 3755 -y(\()p Fr(y)g Fu(:=)h Fr(1)p Fu(;)g Fr(call)g(fac)p Fu(\))244 -3923 y Fr(end)0 4119 y Fu(Construct)26 b(a)f(deriv)-5 -b(ation)23 b(tree)j(for)e(the)i(execution)f(of)g(this)g(statemen)m(t)g -(from)f(a)h(state)g Fs(s)33 b Fu(where)0 4239 y Fs(s)41 -b Fr(x)32 b Fu(=)h Fw(3)p Fu(.)3042 b Fh(2)0 4458 y Fw(Exercise)36 -b(2.39)49 b Fu(Use)34 b(the)f(seman)m(tics)g(to)f(v)m(erify)h(that)f -(the)h(statemen)m(t)244 4653 y Fr(begin)h(var)f(x)g Fu(:=)f -Fr(0)p Fu(;)533 4821 y Fr(proc)h(p)g(is)g(x)g Fu(:=)f -Fr(x)h Fo(?)f Fr(2)p Fu(;)533 4989 y Fr(proc)h(q)g(is)g(call)h(p)p -Fu(;)533 5156 y Fr(begin)g(var)f(x)g Fu(:=)f Fr(5)p Fu(;)822 -5324 y Fr(proc)h(p)g(is)g(x)g Fu(:=)f Fr(x)h Fu(+)f(1;)822 -5492 y Fr(call)h(q)p Fu(;)g Fr(y)g Fu(:=)f Fr(x)p eop -%%Page: 56 66 -56 65 bop 251 130 a Fw(56)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 1434 -4 1015 v 955 605 a Fu([call)1130 620 y Fn(ns)1200 605 -y Fu(])1701 519 y Fs(env)1857 483 y Fi(0)1857 543 y Fc(P)1948 -519 y Ft(`)32 b(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 -b(!)f Fs(s)2506 483 y Fi(0)p 1588 582 1055 4 v 1588 687 -a Fs(env)1744 702 y Fc(P)1834 687 y Ft(`)h(h)p Fr(call)g -Fs(p)6 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)2619 650 -y Fi(0)1814 843 y Fu(where)i Fs(env)2252 858 y Fc(P)2343 -843 y Fs(p)k Fu(=)32 b(\()p Fs(S)12 b Fu(,)33 b Fs(env)2860 -807 y Fi(0)2860 868 y Fc(P)2918 843 y Fu(\))955 1135 -y([call)1130 1099 y Fn(rec)1130 1159 y(ns)1223 1135 y -Fu(])1588 1048 y Fs(env)1744 1012 y Fi(0)1744 1073 y -Fc(P)1802 1048 y Fu([)p Fs(p)6 b Ft(7!)p Fu(\()p Fs(S)12 -b Fu(,)32 b Fs(env)2305 1012 y Fi(0)2305 1073 y Fc(P)2363 -1048 y Fu(\)])g Ft(`)h(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 -b Ft(i)32 b(!)g Fs(s)3018 1012 y Fi(0)p 1588 1112 1454 -4 v 1788 1216 a Fs(env)1944 1231 y Fc(P)2034 1216 y Ft(`)g(h)p -Fr(call)i Fs(p)6 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)2819 -1180 y Fi(0)1814 1373 y Fu(where)i Fs(env)2252 1388 y -Fc(P)2343 1373 y Fs(p)k Fu(=)32 b(\()p Fs(S)12 b Fu(,)33 -b Fs(env)2860 1337 y Fi(0)2860 1397 y Fc(P)2918 1373 -y Fu(\))p 3753 1434 4 1015 v 283 1437 3473 4 v 572 1603 -a(T)-8 b(able)32 b(2.6:)43 b(Pro)s(cedure)34 b(calls)d(in)h(case)i(of)e -(mixed)g(scop)s(e)h(rules)g(\(c)m(ho)s(ose)g(one\))816 -1894 y Fr(end)527 2061 y(end)283 2264 y Fu(considered)h(earlier)d(do)s -(es)i(indeed)g(assign)f(the)h(exp)s(ected)i(v)-5 b(alue)32 -b(to)g Fr(y)p Fu(.)781 b Fh(2)283 2524 y Fw(Static)37 -b(scop)s(e)h(rules)f(for)g(pro)s(cedures)283 2709 y Fu(W)-8 -b(e)36 b(shall)d(no)m(w)j(mo)s(dify)d(the)i(seman)m(tics)g(of)f -Fw(Pro)s(c)h Fu(to)f(sp)s(ecify)h(static)g(scop)s(e)g(rules)g(for)f -(pro-)283 2829 y(cedures.)46 b(The)33 b(\014rst)g(step)h(will)c(b)s(e)j -(to)f(extend)i(the)f(pro)s(cedure)g(en)m(vironmen)m(t)g -Fs(env)3367 2844 y Fc(P)3457 2829 y Fu(so)g(that)283 -2949 y(pro)s(cedure)g(names)f(are)f(asso)s(ciated)h(with)f(their)g(b)s -(o)s(dy)g(as)h(w)m(ell)f(as)h(the)g(pro)s(cedure)g(en)m(viron-)283 -3070 y(men)m(t)h(at)f(the)h(p)s(oin)m(t)f(of)g(declaration.)42 -b(T)-8 b(o)33 b(this)f(end)h(w)m(e)h(de\014ne)527 3273 -y Fw(En)m(v)719 3288 y Fn(P)804 3273 y Fu(=)e Fw(Pname)h -Fo(,)-17 b Ft(!)32 b Fw(Stm)g Ft(\002)h Fw(En)m(v)1959 -3288 y Fn(P)283 3476 y Fu(This)j(de\014nition)e(ma)m(y)h(seem)g -(problematic)e(b)s(ecause)k Fw(En)m(v)2495 3491 y Fn(P)2582 -3476 y Fu(is)d(de\014ned)j(in)d(terms)h(of)g(itself.)283 -3596 y(Ho)m(w)m(ev)m(er,)41 b(this)c(is)g(not)h(really)e(a)h(problem)f -(b)s(ecause)j(a)e(concrete)h(pro)s(cedure)h(en)m(vironmen)m(t)283 -3717 y(alw)m(a)m(ys)31 b(will)d(b)s(e)i(built)f(from)f(smaller)g(en)m -(vironmen)m(ts)j(starting)e(with)h(the)g(empt)m(y)h(pro)s(cedure)283 -3837 y(en)m(vironmen)m(t.)65 b(The)41 b(function)e(up)s(d)1665 -3852 y Fn(P)1757 3837 y Fu(up)s(dating)f(the)i(pro)s(cedure)h(en)m -(vironmen)m(t)e(can)h(then)283 3958 y(b)s(e)33 b(rede\014ned)i(as:)527 -4161 y(up)s(d)692 4176 y Fn(P)745 4161 y Fu(\()p Fr(proc)e -Fs(p)39 b Fr(is)33 b Fs(S)12 b Fu(;)32 b Fs(D)1453 4176 -y Fc(P)1512 4161 y Fu(,)h Fs(env)1728 4176 y Fc(P)1785 -4161 y Fu(\))g(=)f(up)s(d)2129 4176 y Fn(P)2182 4161 -y Fu(\()p Fs(D)2303 4176 y Fc(P)2361 4161 y Fu(,)h Fs(env)2577 -4176 y Fc(P)2635 4161 y Fu([)p Fs(p)6 b Ft(7!)o Fu(\()p -Fs(S)12 b Fu(,)33 b Fs(env)3138 4176 y Fc(P)3196 4161 -y Fu(\)]\))527 4328 y(up)s(d)692 4343 y Fn(P)745 4328 -y Fu(\()p Fo(")o Fu(,)g Fs(env)1044 4343 y Fc(P)1102 -4328 y Fu(\))f(=)h Fs(env)1437 4343 y Fc(P)430 4531 y -Fu(The)28 b(seman)m(tics)f(of)g(v)-5 b(ariable)25 b(declarations)h(are) -i(una\013ected)g(and)f(so)h(is)e(the)i(seman)m(tics)f(of)283 -4652 y(most)f(of)f(the)h(statemen)m(ts.)42 b(Compared)26 -b(with)g(T)-8 b(able)25 b(2.5)g(w)m(e)i(shall)e(only)g(need)i(to)e(mo)s -(dify)f(the)283 4772 y(rules)36 b(for)g(pro)s(cedure)g(calls.)52 -b(In)36 b(the)h(case)f(where)h(the)g(pro)s(cedures)g(of)e -Fw(Pro)s(c)g Fu(are)h(assumed)283 4893 y(to)42 b(b)s(e)h -Fs(non-r)-5 b(e)g(cursive)48 b Fu(w)m(e)c(simply)d(consult)h(the)g(pro) -s(cedure)i(en)m(vironmen)m(t)e(to)g(determine)283 5013 -y(the)35 b(b)s(o)s(dy)f(of)g(the)g(pro)s(cedure)h(and)f(the)h(en)m -(vironmen)m(t)f(at)g(the)g(p)s(oin)m(t)g(of)f(declaration.)47 -b(This)283 5133 y(is)35 b(expressed)j(b)m(y)e(the)g(rule)e([call)1505 -5148 y Fn(ns)1575 5133 y Fu(])h(of)g(T)-8 b(able)35 b(2.6.)51 -b(In)35 b(the)h(case)g(where)g(the)g(pro)s(cedures)g(of)283 -5254 y Fw(Pro)s(c)25 b Fu(are)h(assumed)g(to)f(b)s(e)h -Fs(r)-5 b(e)g(cursive)32 b Fu(w)m(e)27 b(ha)m(v)m(e)g(to)e(mak)m(e)g -(sure)i(that)e(o)s(ccurrences)i(of)e Fr(call)34 b Fs(p)283 -5374 y Fu(inside)j(the)h(b)s(o)s(dy)f(of)g Fs(p)43 b -Fu(refer)37 b(to)g(the)h(pro)s(cedure)g(itself.)56 b(W)-8 -b(e)37 b(shall)f(therefore)i(up)s(date)f(the)283 5494 -y(pro)s(cedure)c(en)m(vironmen)m(t)g(to)e(con)m(tain)h(that)g -(information.)40 b(This)32 b(is)f(expressed)k(b)m(y)e(the)f(rule)p -eop -%%Page: 57 67 -57 66 bop 0 130 a Fw(2.5)112 b(Blo)s(c)m(ks)37 b(and)h(pro)s(cedures) -1998 b(57)p 0 193 3473 4 v 0 515 a Fu([call)175 479 y -Fn(rec)175 540 y(ns)268 515 y Fu(])28 b(of)f(T)-8 b(able)27 -b(2.6.)42 b(The)28 b(remaining)d(axioms)i(and)h(rules)f(are)h(as)g(in)f -(T)-8 b(ables)28 b(2.5)f(\(without)0 636 y([call)175 -600 y Fn(rec)175 660 y(ns)268 636 y Fu(]\))32 b(and)h(2.4.)43 -b(\(Clearly)32 b(a)g(c)m(hoice)h(should)f(b)s(e)h(made)f(b)s(et)m(w)m -(een)j([call)2752 651 y Fn(ns)2822 636 y Fu(])d(or)g([call)3175 -600 y Fn(rec)3175 660 y(ns)3268 636 y Fu(].\))0 880 y -Fw(Exercise)k(2.40)49 b Fu(Construct)36 b(a)d(statemen)m(t)i(that)f -(illustrates)e(the)j(di\013erence)g(b)s(et)m(w)m(een)h(the)0 -1000 y(t)m(w)m(o)26 b(rules)g(for)f(pro)s(cedure)h(call)e(giv)m(en)i -(in)f(T)-8 b(able)25 b(2.6.)41 b(V)-8 b(alidate)23 b(y)m(our)k(claim)c -(b)m(y)j(constructing)0 1121 y(deriv)-5 b(ation)31 b(trees)j(for)e(the) -h(executions)g(of)f(the)h(statemen)m(t)g(from)f(a)g(suitable)g(state.) -274 b Fh(2)0 1363 y Fw(Exercise)36 b(2.41)49 b Fu(Use)43 -b(the)f(seman)m(tics)g(to)g(v)m(erify)g(that)f(the)h(statemen)m(t)h(of) -e(Exercise)i(2.39)0 1483 y(assigns)33 b(the)g(exp)s(ected)h(v)-5 -b(alue)32 b(to)g Fr(y)p Fu(.)2048 b Fh(2)0 1755 y Fw(Static)36 -b(scop)s(e)i(rules)f(for)g(v)-6 b(ariables)0 1943 y Fu(W)e(e)34 -b(shall)e(no)m(w)i(mo)s(dify)e(the)i(seman)m(tics)f(of)h -Fw(Pro)s(c)e Fu(to)h(sp)s(ecify)h(static)f(scop)s(e)i(rules)e(for)g(v) --5 b(ari-)0 2064 y(ables)37 b(as)g(w)m(ell)f(as)h(pro)s(cedures.)57 -b(T)-8 b(o)37 b(ac)m(hiev)m(e)h(this)e(w)m(e)i(shall)e(replace)g(the)i -(states)f(with)g(t)m(w)m(o)0 2184 y(mappings:)h(a)23 -b Fs(variable)j(envir)-5 b(onment)32 b Fu(that)24 b(asso)s(ciates)g(a)f -Fs(lo)-5 b(c)g(ation)30 b Fu(with)24 b(eac)m(h)g(v)-5 -b(ariable)22 b(and)0 2305 y(a)35 b Fs(stor)-5 b(e)42 -b Fu(that)34 b(asso)s(ciates)h(a)g(v)-5 b(alue)34 b(with)h(eac)m(h)g -(lo)s(cation.)48 b(F)-8 b(ormally)g(,)33 b(w)m(e)j(de\014ne)g(a)e(v)-5 -b(ariable)0 2425 y(en)m(vironmen)m(t)33 b Fs(env)717 -2440 y Fc(V)810 2425 y Fu(as)f(an)h(elemen)m(t)f(of)244 -2638 y Fw(En)m(v)436 2653 y Fn(V)526 2638 y Fu(=)h Fw(V)-9 -b(ar)32 b Ft(!)g Fw(Lo)s(c)0 2851 y Fu(where)h Fw(Lo)s(c)f -Fu(is)f(a)g(set)i(of)e(lo)s(cations.)41 b(F)-8 b(or)31 -b(the)h(sak)m(e)h(of)e(simplicit)m(y)e(w)m(e)k(shall)d(tak)m(e)j -Fw(Lo)s(c)e Fu(=)h Fw(Z)p Fu(.)0 2972 y(A)h(store)g Fs(sto)38 -b Fu(is)32 b(an)h(elemen)m(t)f(of)244 3185 y Fw(Store)g -Fu(=)h Fw(Lo)s(c)f Ft([)h(f)g Fu(next)g Ft(g)f(!)h Fw(Z)0 -3398 y Fu(where)i(`next')g(is)e(a)h(sp)s(ecial)f(tok)m(en)h(used)h(to)f -(hold)f(the)h(next)h(free)f(lo)s(cation.)45 b(W)-8 b(e)34 -b(shall)e(need)0 3519 y(a)g(function)244 3732 y(new:)44 -b Fw(Lo)s(c)33 b Ft(!)f Fw(Lo)s(c)0 3945 y Fu(that)37 -b(giv)m(en)h(a)g(lo)s(cation)d(will)g(pro)s(duce)k(the)f(next)g(one.)59 -b(In)38 b(our)g(case)g(where)h Fw(Lo)s(c)f Fu(is)f Fw(Z)h -Fu(w)m(e)0 4065 y(tak)m(e)33 b(`new')h(to)e(b)s(e)h(the)g(successor)i -(function)d(on)h(the)g(in)m(tegers.)146 4188 y(So)44 -b(rather)f(than)h(ha)m(ving)f(a)g(single)f(mapping)g -Fs(s)52 b Fu(from)42 b(v)-5 b(ariables)42 b(to)h(v)-5 -b(alues)44 b(w)m(e)g(ha)m(v)m(e)0 4308 y(split)33 b(it)g(in)m(to)h(t)m -(w)m(o)h(mappings)e Fs(env)1301 4323 y Fc(V)1395 4308 -y Fu(and)i Fs(sto)40 b Fu(and)35 b(the)f(idea)g(is)g(that)g -Fs(s)42 b Fu(=)34 b Fs(sto)41 b Ft(\016)34 b Fs(env)3226 -4323 y Fc(V)3286 4308 y Fu(.)48 b(T)-8 b(o)0 4428 y(determine)32 -b(the)h(v)-5 b(alue)32 b(of)g(a)h(v)-5 b(ariable)30 b -Fs(x)45 b Fu(w)m(e)33 b(shall)f(\014rst)145 4642 y Ft(\017)49 -b Fu(determine)32 b(the)h(lo)s(cation)d Fs(l)43 b Fu(=)32 -b Fs(env)1570 4657 y Fc(V)1663 4642 y Fs(x)44 b Fu(asso)s(ciated)33 -b(with)f Fs(x)44 b Fu(and)33 b(then)145 4855 y Ft(\017)49 -b Fu(determine)32 b(the)h(v)-5 b(alue)32 b Fs(sto)39 -b(l)k Fu(asso)s(ciated)32 b(with)g(the)h(lo)s(cation)d -Fs(l)10 b Fu(.)0 5068 y(Similarly)-8 b(,)29 b(to)j(assign)g(a)g(v)-5 -b(alue)32 b Fs(v)43 b Fu(to)33 b(a)f(v)-5 b(ariable)31 -b Fs(x)44 b Fu(w)m(e)34 b(shall)d(\014rst)145 5281 y -Ft(\017)49 b Fu(determine)32 b(the)h(lo)s(cation)d Fs(l)43 -b Fu(=)32 b Fs(env)1570 5296 y Fc(V)1663 5281 y Fs(x)44 -b Fu(asso)s(ciated)33 b(with)f Fs(x)44 b Fu(and)33 b(then)145 -5494 y Ft(\017)49 b Fu(up)s(date)33 b(the)g(store)g(to)f(ha)m(v)m(e)i -Fs(sto)39 b(l)j Fu(=)33 b Fs(v)11 b Fu(.)p eop -%%Page: 58 68 -58 67 bop 251 130 a Fw(58)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 1119 -4 700 v 562 605 a Fu([v)-5 b(ar)722 620 y Fn(ns)793 605 -y Fu(])1195 519 y Ft(h)p Fs(D)1317 534 y Fc(V)1378 519 -y Fu(,)32 b Fs(env)1593 534 y Fc(V)1653 519 y Fu([)p -Fs(x)12 b Ft(7!)p Fs(l)e Fu(],)33 b Fs(sto)6 b Fu([)p -Fs(l)k Ft(7!)p Fs(v)h Fu(][next)p Ft(7!)p Fu(new)34 b -Fs(l)10 b Fu(])p Ft(i)33 b(!)3079 534 y Fc(D)3176 519 -y Fu(\()p Fs(env)3370 483 y Fi(0)3370 543 y Fc(V)3430 -519 y Fu(,)f Fs(sto)3617 483 y Fi(0)3641 519 y Fu(\))p -1195 582 2484 4 v 1465 687 a Ft(h)o Fr(var)i Fs(x)44 -b Fu(:=)32 b Fs(a)7 b Fu(;)33 b Fs(D)2114 702 y Fc(V)2175 -687 y Fu(,)g Fs(env)2391 702 y Fc(V)2451 687 y Fu(,)g -Fs(sto)6 b Ft(i)32 b(!)2810 702 y Fc(D)2906 687 y Fu(\()p -Fs(env)3100 650 y Fi(0)3100 711 y Fc(V)3160 687 y Fu(,)h -Fs(sto)3348 650 y Fi(0)3371 687 y Fu(\))1454 843 y(where)h -Fs(v)43 b Fu(=)32 b Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q(\()p Fs(sto)6 b Ft(\016)p Fs(env)2516 858 y Fc(V)2576 -843 y Fu(\))33 b(and)f Fs(l)43 b Fu(=)32 b Fs(sto)39 -b Fu(next)562 1058 y([none)789 1073 y Fn(ns)861 1058 -y Fu(])297 b Ft(h)p Fo(")p Fu(,)32 b Fs(env)1485 1073 -y Fc(V)1545 1058 y Fu(,)h Fs(sto)6 b Ft(i)32 b(!)1904 -1073 y Fc(D)2000 1058 y Fu(\()p Fs(env)2194 1073 y Fc(V)2254 -1058 y Fu(,)h Fs(sto)6 b Fu(\))p 3753 1119 4 700 v 283 -1122 3473 4 v 542 1283 a(T)-8 b(able)32 b(2.7:)43 b(Natural)31 -b(seman)m(tics)i(for)f(v)-5 b(ariable)31 b(declarations)g(using)i(lo)s -(cations)430 1570 y(The)44 b(initial)39 b(v)-5 b(ariable)41 -b(en)m(vironmen)m(t)j(could)e(for)g(example)h(map)f(all)f(v)-5 -b(ariables)42 b(to)g(the)283 1690 y(lo)s(cation)35 b -Fw(0)i Fu(and)h(the)f(initial)d(store)j(could)g(for)f(example)h(map)f -(`next')j(to)d Fw(1)p Fu(.)58 b(The)38 b(v)-5 b(ariable)283 -1810 y(en)m(vironmen)m(t)23 b(\(and)g(the)g(store\))g(is)f(up)s(dated)h -(b)m(y)g(the)g(v)-5 b(ariable)21 b(declarations.)39 b(The)23 -b(transition)283 1931 y(system)34 b(for)e(v)-5 b(ariable)31 -b(declarations)g(is)h(therefore)i(mo)s(di\014ed)d(to)h(ha)m(v)m(e)i -(the)f(form)527 2139 y Ft(h)p Fs(D)649 2154 y Fc(V)710 -2139 y Fu(,)g Fs(env)926 2154 y Fc(V)986 2139 y Fu(,)f -Fs(sto)6 b Ft(i)33 b(!)1344 2154 y Fc(D)1441 2139 y Fu(\()p -Fs(env)1635 2102 y Fi(0)1635 2163 y Fc(V)1695 2139 y -Fu(,)g Fs(sto)1883 2102 y Fi(0)1906 2139 y Fu(\))283 -2346 y(b)s(ecause)g(a)d(v)-5 b(ariable)30 b(declaration)f(will)g(mo)s -(dify)g(the)i(v)-5 b(ariable)30 b(en)m(vironmen)m(t)h(as)g(w)m(ell)f -(as)h(the)283 2467 y(store.)42 b(The)25 b(relation)e(is)h(de\014ned)i -(in)e(T)-8 b(able)24 b(2.7.)40 b(Note)25 b(that)g(w)m(e)g(use)h(`)p -Fs(sto)k Fu(next')c(to)e(determine)283 2587 y(the)33 -b(lo)s(cation)d Fs(l)43 b Fu(to)32 b(b)s(e)g(asso)s(ciated)g(with)g -Fs(x)44 b Fu(in)32 b(the)h(v)-5 b(ariable)30 b(en)m(vironmen)m(t.)44 -b(Also)32 b(the)g(store)283 2708 y(is)j(up)s(dated)h(to)f(hold)g(the)g -(correct)h(v)-5 b(alue)35 b(for)g Fs(l)45 b Fu(as)36 -b(w)m(ell)f(as)g(`next'.)53 b(Finally)33 b(note)i(that)g(the)283 -2828 y(declared)e(v)-5 b(ariables)32 b(will)e(get)i(p)s(ositiv)m(e)g -(lo)s(cations.)430 2949 y(T)-8 b(o)37 b(obtain)g(static)g(scoping)h -(for)f(v)-5 b(ariables)36 b(w)m(e)j(shall)d(extend)j(the)f(pro)s -(cedure)h(en)m(viron-)283 3070 y(men)m(t)28 b(to)f(hold)g(the)h(v)-5 -b(ariable)26 b(en)m(vironmen)m(t)i(at)g(the)g(p)s(oin)m(t)f(of)g -(declaration.)40 b(Therefore)29 b Fs(env)3698 3085 y -Fc(P)283 3190 y Fu(will)i(no)m(w)i(b)s(e)g(an)f(elemen)m(t)h(of)527 -3398 y Fw(En)m(v)719 3413 y Fn(P)804 3398 y Fu(=)f Fw(Pname)h -Fo(,)-17 b Ft(!)32 b Fw(Stm)g Ft(\002)h Fw(En)m(v)1959 -3413 y Fn(V)2049 3398 y Ft(\002)g Fw(En)m(v)2351 3413 -y Fn(P)283 3606 y Fu(The)41 b(pro)s(cedure)g(en)m(vironmen)m(t)f(is)g -(up)s(dated)g(b)m(y)h(the)f(pro)s(cedure)h(declarations)e(as)h(b)s -(efore,)283 3726 y(the)d(only)e(di\013erence)i(b)s(eing)e(that)h(the)g -(curren)m(t)h(v)-5 b(ariable)34 b(en)m(vironmen)m(t)j(is)e(supplied)h -(as)g(an)283 3846 y(additional)30 b(parameter.)43 b(The)34 -b(function)e(up)s(d)1996 3861 y Fn(P)2081 3846 y Fu(is)g(no)m(w)h -(de\014ned)h(b)m(y:)527 4054 y(up)s(d)692 4069 y Fn(P)745 -4054 y Fu(\()p Fr(proc)f Fs(p)39 b Fr(is)33 b Fs(S)12 -b Fu(;)32 b Fs(D)1453 4069 y Fc(P)1512 4054 y Fu(,)h -Fs(env)1728 4069 y Fc(V)1788 4054 y Fu(,)f Fs(env)2003 -4069 y Fc(P)2061 4054 y Fu(\))h(=)764 4222 y(up)s(d)929 -4237 y Fn(P)981 4222 y Fu(\()p Fs(D)1102 4237 y Fc(P)1161 -4222 y Fu(,)f Fs(env)1376 4237 y Fc(V)1436 4222 y Fu(,)h -Fs(env)1652 4237 y Fc(P)1710 4222 y Fu([)p Fs(p)6 b Ft(7!)o -Fu(\()p Fs(S)12 b Fu(,)33 b Fs(env)2213 4237 y Fc(V)2273 -4222 y Fu(,)g Fs(env)2489 4237 y Fc(P)2546 4222 y Fu(\)]\))527 -4389 y(up)s(d)692 4404 y Fn(P)745 4389 y Fu(\()p Fo(")o -Fu(,)g Fs(env)1044 4404 y Fc(V)1104 4389 y Fu(,)g Fs(env)1320 -4404 y Fc(P)1378 4389 y Fu(\))f(=)g Fs(env)1712 4404 -y Fc(P)430 4597 y Fu(Finally)-8 b(,)30 b(the)j(transition)e(system)i -(for)f(statemen)m(ts)i(will)c(ha)m(v)m(e)k(the)f(form:)527 -4805 y Fs(env)683 4820 y Fc(V)743 4805 y Fu(,)g Fs(env)959 -4820 y Fc(P)1049 4805 y Ft(`)g(h)p Fs(S)12 b Fu(,)32 -b Fs(sto)6 b Ft(i)32 b(!)h Fs(sto)1768 4769 y Fi(0)283 -5013 y Fu(so)26 b(giv)m(en)g(a)g(v)-5 b(ariable)24 b(en)m(vironmen)m(t) -i(and)g(a)g(pro)s(cedure)g(en)m(vironmen)m(t)h(w)m(e)f(get)g(a)g -(relationship)283 5133 y(b)s(et)m(w)m(een)37 b(an)d(initial)c(store)k -(and)h(a)e(\014nal)h(store.)48 b(The)35 b(mo)s(di\014cation)d(of)h(T)-8 -b(ables)34 b(2.5)g(and)g(2.6)283 5254 y(is)h(rather)f(straigh)m(tforw)m -(ard)g(and)h(is)f(giv)m(en)h(in)f(T)-8 b(able)34 b(2.8.)50 -b(Note)34 b(that)h(in)f(the)h(new)g(rule)f(for)283 5374 -y(blo)s(c)m(ks)d(there)g(is)f(no)g(analogue)g(of)g Fs(s)1615 -5338 y Fi(00)1657 5374 y Fu([D)m(V\()p Fs(D)1950 5389 -y Fc(V)2011 5374 y Fu(\))p Ft(7\000)-16 b(!)o Fs(s)8 -b Fu(])31 b(as)g(the)f(v)-5 b(alues)31 b(of)f(v)-5 b(ariables)29 -b(only)h(can)283 5494 y(b)s(e)j(obtained)f(b)m(y)i(accessing)f(the)g -(en)m(vironmen)m(t.)p eop -%%Page: 59 69 -59 68 bop 0 130 a Fw(2.5)112 b(Blo)s(c)m(ks)37 b(and)h(pro)s(cedures) -1998 b(59)p 0 193 3473 4 v 0 510 V 0 5220 4 4710 v 193 -620 a Fu([ass)345 635 y Fn(ns)417 620 y Fu(])254 b Fs(env)854 -635 y Fc(V)914 620 y Fu(,)32 b Fs(env)1129 635 y Fc(P)1220 -620 y Ft(`)g(h)p Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(,)33 -b Fs(sto)6 b Ft(i)32 b(!)g Fs(sto)6 b Fu([)p Fs(l)k Ft(7!)p -Fs(v)h Fu(])934 787 y(where)34 b Fs(l)43 b Fu(=)32 b -Fs(env)1548 802 y Fc(V)1641 787 y Fs(x)44 b Fu(and)33 -b Fs(v)43 b Fu(=)32 b Ft(A)p Fu([)-17 b([)p Fs(a)7 b -Fu(])-17 b(])q(\()p Fs(sto)6 b Ft(\016)p Fs(env)2700 -802 y Fc(V)2760 787 y Fu(\))193 1002 y([skip)391 1017 -y Fn(ns)462 1002 y Fu(])209 b Fs(env)854 1017 y Fc(V)914 -1002 y Fu(,)32 b Fs(env)1129 1017 y Fc(P)1220 1002 y -Ft(`)g(h)p Fr(skip)p Fu(,)i Fs(sto)6 b Ft(i)32 b(!)g -Fs(sto)193 1294 y Fu([comp)448 1309 y Fn(ns)519 1294 -y Fu(])708 1207 y Fs(env)864 1222 y Fc(V)924 1207 y Fu(,)g -Fs(env)1139 1222 y Fc(P)1230 1207 y Ft(`)g(h)p Fs(S)1429 -1222 y Fn(1)1468 1207 y Fu(,)h Fs(sto)6 b Ft(i)32 b(!)g -Fs(sto)1987 1171 y Fi(0)2011 1207 y Fu(,)65 b Fs(env)2259 -1222 y Fc(V)2319 1207 y Fu(,)33 b Fs(env)2535 1222 y -Fc(P)2625 1207 y Ft(`)f(h)p Fs(S)2824 1222 y Fn(2)2864 -1207 y Fu(,)g Fs(sto)3051 1171 y Fi(0)3075 1207 y Ft(i)g(!)g -Fs(sto)3406 1171 y Fi(00)p 708 1270 2741 4 v 1350 1375 -a Fs(env)1506 1390 y Fc(V)1566 1375 y Fu(,)h Fs(env)1782 -1390 y Fc(P)1872 1375 y Ft(`)g(h)p Fs(S)2072 1390 y Fn(1)2111 -1375 y Fu(;)p Fs(S)2205 1390 y Fn(2)2244 1375 y Fu(,)g -Fs(sto)6 b Ft(i)32 b(!)g Fs(sto)2763 1339 y Fi(00)193 -1656 y Fu([if)278 1620 y Fn(tt)278 1680 y(ns)348 1656 -y Fu(])1124 1569 y Fs(env)1280 1584 y Fc(V)1340 1569 -y Fu(,)h Fs(env)1556 1584 y Fc(P)1646 1569 y Ft(`)f(h)p -Fs(S)1845 1584 y Fn(1)1884 1569 y Fu(,)h Fs(sto)6 b Ft(i)32 -b(!)h Fs(sto)2404 1533 y Fi(0)p 708 1633 2136 4 v 708 -1737 a Fs(env)864 1752 y Fc(V)924 1737 y Fu(,)f Fs(env)1139 -1752 y Fc(P)1230 1737 y Ft(`)g(h)p Fr(if)h Fs(b)38 b -Fr(then)c Fs(S)1885 1752 y Fn(1)1957 1737 y Fr(else)f -Fs(S)2261 1752 y Fn(2)2301 1737 y Fu(,)f Fs(sto)6 b Ft(i)33 -b(!)f Fs(sto)2820 1701 y Fi(0)934 1894 y Fu(if)f Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(\()p Fs(sto)6 -b Ft(\016)p Fs(env)1590 1909 y Fc(V)1650 1894 y Fu(\))32 -b(=)h Fw(tt)193 2185 y Fu([if)278 2149 y Fn(\013)278 -2210 y(ns)348 2185 y Fu(])1124 2099 y Fs(env)1280 2114 -y Fc(V)1340 2099 y Fu(,)g Fs(env)1556 2114 y Fc(P)1646 -2099 y Ft(`)f(h)p Fs(S)1845 2114 y Fn(2)1884 2099 y Fu(,)h -Fs(sto)6 b Ft(i)32 b(!)h Fs(sto)2404 2063 y Fi(0)p 708 -2162 V 708 2267 a Fs(env)864 2282 y Fc(V)924 2267 y Fu(,)f -Fs(env)1139 2282 y Fc(P)1230 2267 y Ft(`)g(h)p Fr(if)h -Fs(b)38 b Fr(then)c Fs(S)1885 2282 y Fn(1)1957 2267 y -Fr(else)f Fs(S)2261 2282 y Fn(2)2301 2267 y Fu(,)f Fs(sto)6 -b Ft(i)33 b(!)f Fs(sto)2820 2231 y Fi(0)934 2423 y Fu(if)f -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(\()p Fs(sto)6 -b Ft(\016)p Fs(env)1590 2438 y Fc(V)1650 2423 y Fu(\))32 -b(=)h Fw(\013)193 2832 y Fu([while)443 2796 y Fn(tt)443 -2857 y(ns)513 2832 y Fu(])969 2637 y Fs(env)1125 2652 -y Fc(V)1185 2637 y Fu(,)g Fs(env)1401 2652 y Fc(P)1491 -2637 y Ft(`)g(h)o Fs(S)12 b Fu(,)33 b Fs(sto)6 b Ft(i)32 -b(!)g Fs(sto)2209 2601 y Fi(0)2233 2637 y Fu(,)708 2746 -y Fs(env)864 2761 y Fc(V)924 2746 y Fu(,)g Fs(env)1139 -2761 y Fc(P)1230 2746 y Ft(`)g(h)p Fr(while)i Fs(b)k -Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(sto)2124 2710 y Fi(0)2147 -2746 y Ft(i)f(!)h Fs(sto)2479 2710 y Fi(00)p 708 2809 -1814 4 v 719 2914 a Fs(env)875 2929 y Fc(V)935 2914 y -Fu(,)g Fs(env)1151 2929 y Fc(P)1241 2914 y Ft(`)g(h)p -Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(sto)6 -b Ft(i)33 b(!)f Fs(sto)2467 2878 y Fi(00)934 3070 y Fu(if)f -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(\()p Fs(sto)6 -b Ft(\016)p Fs(env)1590 3085 y Fc(V)1650 3070 y Fu(\))32 -b(=)h Fw(tt)193 3285 y Fu([while)443 3249 y Fn(\013)443 -3310 y(ns)513 3285 y Fu(])158 b Fs(env)854 3300 y Fc(V)914 -3285 y Fu(,)32 b Fs(env)1129 3300 y Fc(P)1220 3285 y -Ft(`)g(h)p Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 -b Fs(sto)6 b Ft(i)32 b(!)g Fs(sto)934 3453 y Fu(if)f -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(\()p Fs(sto)6 -b Ft(\016)p Fs(env)1590 3468 y Fc(V)1650 3453 y Fu(\))32 -b(=)h Fw(\013)193 3862 y Fu([blo)s(c)m(k)445 3877 y Fn(ns)516 -3862 y Fu(])1040 3666 y Ft(h)p Fs(D)1162 3681 y Fc(V)1223 -3666 y Fu(,)f Fs(env)1438 3681 y Fc(V)1499 3666 y Fu(,)g -Fs(sto)6 b Ft(i)33 b(!)1857 3681 y Fc(D)1954 3666 y Fu(\()p -Fs(env)2148 3630 y Fi(0)2148 3691 y Fc(V)2208 3666 y -Fu(,)f Fs(sto)2395 3630 y Fi(0)2419 3666 y Fu(\),)1109 -3775 y Fs(env)1265 3739 y Fi(0)1265 3800 y Fc(V)1325 -3775 y Fu(,)h Fs(env)1541 3739 y Fi(0)1541 3800 y Fc(P)1631 -3775 y Ft(`)f(h)p Fs(S)12 b Fu(,)33 b Fs(sto)2018 3739 -y Fi(0)2041 3775 y Ft(i)f(!)h Fs(sto)2373 3739 y Fi(00)p -708 3838 2109 4 v 708 3943 a Fs(env)864 3958 y Fc(V)924 -3943 y Fu(,)f Fs(env)1139 3958 y Fc(P)1230 3943 y Ft(`)g(h)p -Fr(begin)i Fs(D)1734 3958 y Fc(V)1827 3943 y Fs(D)1910 -3958 y Fc(P)2001 3943 y Fs(S)45 b Fr(end)p Fu(,)33 b -Fs(sto)6 b Ft(i)33 b(!)f Fs(sto)2774 3907 y Fi(00)934 -4100 y Fu(where)i Fs(env)1372 4063 y Fi(0)1372 4124 y -Fc(P)1462 4100 y Fu(=)f(up)s(d)1736 4115 y Fn(P)1788 -4100 y Fu(\()p Fs(D)1909 4115 y Fc(P)1968 4100 y Fu(,)f -Fs(env)2183 4063 y Fi(0)2183 4124 y Fc(V)2243 4100 y -Fu(,)h Fs(env)2459 4115 y Fc(P)2517 4100 y Fu(\))193 -4391 y([call)368 4406 y Fn(ns)437 4391 y Fu(])821 4305 -y Fs(env)977 4269 y Fi(0)977 4330 y Fc(V)1037 4305 y -Fu(,)g Fs(env)1253 4269 y Fi(0)1253 4330 y Fc(P)1343 -4305 y Ft(`)g(h)o Fs(S)12 b Fu(,)33 b Fs(sto)6 b Ft(i)32 -b(!)g Fs(sto)2061 4269 y Fi(0)p 708 4368 1491 4 v 708 -4473 a Fs(env)864 4488 y Fc(V)924 4473 y Fu(,)g Fs(env)1139 -4488 y Fc(P)1230 4473 y Ft(`)g(h)p Fr(call)i Fs(p)6 b -Fu(,)32 b Fs(sto)6 b Ft(i)32 b(!)h Fs(sto)2175 4437 y -Fi(0)934 4629 y Fu(where)h Fs(env)1372 4644 y Fc(P)1462 -4629 y Fs(p)39 b Fu(=)32 b(\()p Fs(S)12 b Fu(,)32 b Fs(env)1979 -4593 y Fi(0)1979 4654 y Fc(V)2039 4629 y Fu(,)h Fs(env)2255 -4593 y Fi(0)2255 4654 y Fc(P)2313 4629 y Fu(\))193 4921 -y([call)368 4885 y Fn(rec)368 4946 y(ns)461 4921 y Fu(])708 -4835 y Fs(env)864 4798 y Fi(0)864 4859 y Fc(V)924 4835 -y Fu(,)f Fs(env)1139 4798 y Fi(0)1139 4859 y Fc(P)1197 -4835 y Fu([)p Fs(p)6 b Ft(7!)p Fu(\()p Fs(S)12 b Fu(,)32 -b Fs(env)1700 4798 y Fi(0)1700 4859 y Fc(V)1760 4835 -y Fu(,)h Fs(env)1976 4798 y Fi(0)1976 4859 y Fc(P)2034 -4835 y Fu(\)])f Ft(`)h(h)p Fs(S)12 b Fu(,)32 b Fs(sto)6 -b Ft(i)32 b(!)h Fs(sto)2850 4798 y Fi(0)p 708 4898 2166 -4 v 1045 5003 a Fs(env)1201 5018 y Fc(V)1261 5003 y Fu(,)g -Fs(env)1477 5018 y Fc(P)1567 5003 y Ft(`)g(h)o Fr(call)h -Fs(p)6 b Fu(,)33 b Fs(sto)6 b Ft(i)32 b(!)g Fs(sto)2512 -4966 y Fi(0)934 5159 y Fu(where)i Fs(env)1372 5174 y -Fc(P)1462 5159 y Fs(p)39 b Fu(=)32 b(\()p Fs(S)12 b Fu(,)32 -b Fs(env)1979 5123 y Fi(0)1979 5184 y Fc(V)2039 5159 -y Fu(,)h Fs(env)2255 5123 y Fi(0)2255 5184 y Fc(P)2313 -5159 y Fu(\))p 3469 5220 4 4710 v 0 5223 3473 4 v 420 -5384 a(T)-8 b(able)32 b(2.8:)44 b(Natural)31 b(seman)m(tics)i(for)f -Fw(Pro)s(c)g Fu(with)g(static)g(scop)s(e)h(rules)p eop -%%Page: 60 70 -60 69 bop 251 130 a Fw(60)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a(Exercise)g(2.42)49 -b Fu(Apply)23 b(the)h(natural)f(seman)m(tics)h(of)f(T)-8 -b(able)23 b(2.8)g(to)g(the)h(factorial)d(statemen)m(t)283 -636 y(of)33 b(Exercise)h(2.38)d(and)i(a)f(store)h(where)h(the)f(lo)s -(cation)d(for)i Fr(x)h Fu(has)g(the)g(v)-5 b(alue)32 -b Fw(3)p Fu(.)456 b Fh(2)283 830 y Fw(Exercise)37 b(2.43)49 -b Fu(V)-8 b(erify)24 b(that)h(the)g(seman)m(tics)g(applied)e(to)i(the)g -(statemen)m(t)g(of)f(Exercise)i(2.39)283 950 y(giv)m(es)33 -b(the)g(exp)s(ected)i(result.)2318 b Fh(2)283 1144 y -Fw(Exercise)37 b(2.44)49 b Fu(*)38 b(An)h(alternativ)m(e)g(seman)m -(tics)g(of)f(the)h(language)f Fw(While)f Fu(is)i(de\014ned)h(b)m(y)283 -1264 y(the)30 b(axioms)e(and)h(rules)g([ass)1341 1279 -y Fn(ns)1413 1264 y Fu(],)h([skip)1695 1279 y Fn(ns)1766 -1264 y Fu(],)g([comp)2105 1279 y Fn(ns)2176 1264 y Fu(],)g([if)2345 -1228 y Fn(tt)2345 1289 y(ns)2415 1264 y Fu(],)g([if)2584 -1228 y Fn(\013)2584 1289 y(ns)2654 1264 y Fu(],)g([while)2988 -1228 y Fn(tt)2988 1289 y(ns)3059 1264 y Fu(])f(and)g([while)3551 -1228 y Fn(\013)3551 1289 y(ns)3621 1264 y Fu(])g(of)283 -1384 y(T)-8 b(able)35 b(2.8.)50 b(F)-8 b(orm)m(ulate)33 -b(and)i(pro)m(v)m(e)i(the)e(equiv)-5 b(alence)35 b(b)s(et)m(w)m(een)i -(this)e(seman)m(tics)g(and)g(that)283 1505 y(of)e(T)-8 -b(able)32 b(2.1.)2866 b Fh(2)283 1699 y Fw(Exercise)37 -b(2.45)49 b Fu(Mo)s(dify)40 b(the)i(syn)m(tax)h(of)e(pro)s(cedure)h -(declarations)e(so)h(that)g(pro)s(cedures)283 1819 y(tak)m(e)34 -b(t)m(w)m(o)f Fs(c)-5 b(al)5 b(l-by-value)39 b Fu(parameters:)527 -1996 y Fs(D)610 2011 y Fc(P)702 1996 y Fu(::=)32 b Fr(proc)i -Fs(p)6 b Fu(\()p Fs(x)1253 2011 y Fn(1)1292 1996 y Fu(,)p -Fs(x)1376 2011 y Fn(2)1415 1996 y Fu(\))33 b Fr(is)g -Fs(S)12 b Fu(;)32 b Fs(D)1830 2011 y Fc(P)1921 1996 y -Ft(j)g Fo(")527 2164 y Fs(S)45 b Fu(::=)32 b Ft(\001)17 -b(\001)g(\001)31 b(j)h Fr(call)i Fs(p)6 b Fu(\()p Fs(a)1387 -2179 y Fn(1)1426 2164 y Fu(,)p Fs(a)1510 2179 y Fn(2)1550 -2164 y Fu(\))283 2342 y(Pro)s(cedure)34 b(en)m(vironmen)m(ts)g(will)c -(no)m(w)j(b)s(e)g(elemen)m(ts)g(of)527 2519 y Fw(En)m(v)719 -2534 y Fn(P)804 2519 y Fu(=)f Fw(Pname)h Fo(,)-17 b Ft(!)32 -b Fw(V)-9 b(ar)32 b Ft(\002)h Fw(V)-9 b(ar)32 b Ft(\002)h -Fw(Stm)f Ft(\002)h Fw(En)m(v)2595 2534 y Fn(V)2686 2519 -y Ft(\002)g Fw(En)m(v)2988 2534 y Fn(P)283 2697 y Fu(Mo)s(dify)g(the)h -(seman)m(tics)g(giv)m(en)g(ab)s(o)m(v)m(e)g(to)g(handle)f(this)g -(language.)46 b(In)33 b(particular,)g(pro)m(vide)283 -2817 y(new)42 b(rules)g(for)e(pro)s(cedure)i(calls:)59 -b(one)42 b(for)e(non-recursiv)m(e)j(pro)s(cedures)f(and)f(another)g -(for)283 2937 y(recursiv)m(e)c(pro)s(cedures.)52 b(Construct)37 -b(statemen)m(ts)f(that)f(illustrate)e(ho)m(w)i(the)h(new)g(rules)f(are) -283 3058 y(used.)3182 b Fh(2)283 3252 y Fw(Exercise)37 -b(2.46)49 b Fu(No)m(w)27 b(consider)g(the)h(language)e -Fw(Pro)s(c)g Fu(and)h(the)g(task)h(of)e(ac)m(hieving)g -Fs(mutual)283 3372 y(r)-5 b(e)g(cursion)p Fu(.)43 b(The)34 -b(pro)s(cedure)g(en)m(vironmen)m(t)e(is)h(no)m(w)g(de\014ned)h(to)e(b)s -(e)h(an)f(elemen)m(t)h(of)527 3549 y Fw(En)m(v)719 3564 -y Fn(P)804 3549 y Fu(=)f Fw(Pname)h Fo(,)-17 b Ft(!)32 -b Fw(Stm)g Ft(\002)h Fw(En)m(v)1959 3564 y Fn(V)2049 -3549 y Ft(\002)g Fw(En)m(v)2351 3564 y Fn(P)2436 3549 -y Ft(\002)g Fw(Dec)2733 3564 y Fn(P)283 3727 y Fu(The)49 -b(idea)e(is)h(that)g(if)e Fs(env)1321 3742 y Fc(P)1427 -3727 y Fs(p)54 b Fu(=)47 b(\()p Fs(S)12 b Fu(,)48 b Fs(env)1990 -3691 y Fi(0)1990 3752 y Fc(V)2050 3727 y Fu(,)k Fs(env)2285 -3691 y Fi(0)2285 3752 y Fc(P)2343 3727 y Fu(,)f Fo(D)2505 -3691 y Fc(?)2502 3752 y(P)2561 3727 y Fu(\))d(then)g -Fo(D)2968 3691 y Fc(?)2965 3752 y(P)3072 3727 y Fu(con)m(tains)g(all)d -(the)283 3847 y(pro)s(cedure)34 b(declarations)d(that)i(are)f(made)h -(in)e(the)i(same)g(blo)s(c)m(k)f(as)h Fs(p)6 b Fu(.)43 -b(De\014ne)33 b(up)s(d)3409 3811 y Fi(0)3409 3872 y Fc(P)3501 -3847 y Fu(b)m(y)527 4025 y(up)s(d)692 3989 y Fi(0)692 -4049 y Fc(P)751 4025 y Fu(\()p Fr(proc)h Fs(p)k Fr(is)33 -b Fs(S)12 b Fu(;)33 b Fs(D)1460 4040 y Fc(P)1518 4025 -y Fu(,)g Fs(env)1734 4040 y Fc(V)1794 4025 y Fu(,)g Fs(env)2010 -4040 y Fc(P)2068 4025 y Fu(,)f Fo(D)2211 3989 y Fc(?)2208 -4049 y(P)2267 4025 y Fu(\))g(=)796 4192 y(up)s(d)961 -4156 y Fi(0)961 4217 y Fc(P)1020 4192 y Fu(\()p Fs(D)1141 -4207 y Fc(P)1200 4192 y Fu(,)g Fs(env)1415 4207 y Fc(V)1475 -4192 y Fu(,)h Fs(env)1691 4207 y Fc(P)1749 4192 y Fu([)p -Fs(p)6 b Ft(7!)p Fu(\()p Fs(S)12 b Fu(,)32 b Fs(env)2252 -4207 y Fc(V)2312 4192 y Fu(,)h Fs(env)2528 4207 y Fc(P)2586 -4192 y Fu(,)p Fo(D)2697 4156 y Fc(?)2694 4217 y(P)2752 -4192 y Fu(\)],)g Fo(D)2961 4156 y Fc(?)2958 4217 y(P)3017 -4192 y Fu(\))527 4360 y(up)s(d)692 4324 y Fi(0)692 4385 -y Fc(P)751 4360 y Fu(\()p Fo(")p Fu(,)g Fs(env)1051 4375 -y Fc(V)1111 4360 y Fu(,)f Fs(env)1326 4375 y Fc(P)1384 -4360 y Fu(,)p Fo(D)1495 4324 y Fc(?)1492 4385 y(P)1551 -4360 y Fu(\))g(=)h Fs(env)1886 4375 y Fc(P)283 4538 y -Fu(Next)h(rede\014ne)g(up)s(d)1050 4553 y Fc(P)1141 4538 -y Fu(b)m(y)527 4715 y(up)s(d)692 4730 y Fc(P)751 4715 -y Fu(\()p Fs(D)872 4730 y Fc(P)931 4715 y Fu(,)f Fs(env)1147 -4730 y Fc(V)1207 4715 y Fu(,)f Fs(env)1422 4730 y Fc(P)1480 -4715 y Fu(\))h(=)f(up)s(d)1824 4679 y Fi(0)1824 4740 -y Fc(P)1883 4715 y Fu(\()p Fs(D)2004 4730 y Fc(P)2063 -4715 y Fu(,)g Fs(env)2278 4730 y Fc(V)2338 4715 y Fu(,)h -Fs(env)2554 4730 y Fc(P)2612 4715 y Fu(,)f Fs(D)2754 -4730 y Fc(P)2813 4715 y Fu(\))283 4893 y(Mo)s(dify)d(the)i(seman)m -(tics)e(of)g Fw(Pro)s(c)g Fu(so)h(as)g(to)f(obtain)g(m)m(utual)f -(recursion)i(among)e(pro)s(cedures)283 5013 y(de\014ned)33 -b(in)e(the)h(same)f(blo)s(c)m(k.)43 b(Illustrate)31 b(ho)m(w)h(the)g -(new)g(rules)f(are)h(used)h(on)e(an)g(in)m(teresting)283 -5133 y(statemen)m(t)j(of)e(y)m(our)h(c)m(hoice.)430 5254 -y(\(Hin)m(t:)39 b(Con)m(vince)26 b(y)m(ourself,)g(that)f([call)1899 -5218 y Fn(rec)1899 5278 y(ns)1992 5254 y Fu(])f(is)g(the)i(only)e(rule) -g(that)g(needs)j(to)d(b)s(e)h(c)m(hanged;)283 5374 y(then)36 -b(consider)g(whether)h(or)e(not)g(the)h(function)f(up)s(d)2287 -5389 y Fc(P)2381 5374 y Fu(migh)m(t)f(b)s(e)i(useful)f(in)g(the)g(new)i -(de\014-)283 5494 y(nition)31 b(of)h([call)851 5458 y -Fn(rec)851 5519 y(ns)944 5494 y Fu(].\))2645 b Fh(2)p -eop -%%Page: 61 71 -61 70 bop 0 130 a Fw(2.5)112 b(Blo)s(c)m(ks)37 b(and)h(pro)s(cedures) -1998 b(61)p 0 193 3473 4 v 0 515 a(Exercise)36 b(2.47)49 -b Fu(W)-8 b(e)46 b(shall)e(consider)i(a)f(v)-5 b(arian)m(t)45 -b(of)g(the)h(seman)m(tics)f(where)i(w)m(e)g(use)f(the)0 -636 y(v)-5 b(ariable)45 b(en)m(vironmen)m(t)i(rather)f(than)h(the)g -(store)g(to)f(hold)g(the)h(next)g(free)g(lo)s(cation.)83 -b(So)0 756 y(assume)33 b(that)244 960 y Fw(En)m(v)436 -975 y Fn(V)526 960 y Fu(=)g Fw(V)-9 b(ar)32 b Ft([)h(f)f -Fu(next)h Ft(g)g(!)f Fw(Lo)s(c)0 1163 y Fu(and)244 1366 -y Fw(Store)g Fu(=)h Fw(Lo)s(c)f Ft(!)h Fw(Z)0 1570 y -Fu(As)j(b)s(efore)f(w)m(e)h(shall)d(write)i Fs(sto)41 -b Ft(\016)35 b Fs(env)1474 1585 y Fc(V)1569 1570 y Fu(for)f(the)i -(state)f(obtained)g(b)m(y)h(\014rst)f(using)g Fs(env)3291 -1585 y Fc(V)3386 1570 y Fu(to)0 1690 y(\014nd)29 b(the)f(lo)s(cation)e -(of)h(the)i(v)-5 b(ariable)26 b(and)i(then)h Fs(sto)34 -b Fu(to)27 b(\014nd)i(the)f(v)-5 b(alue)28 b(of)f(the)i(lo)s(cation.)39 -b(The)0 1811 y(clauses)33 b(of)f(T)-8 b(able)33 b(2.7)f(are)g(no)m(w)i -(replaced)e(b)m(y)254 1996 y Ft(h)p Fs(D)376 2011 y Fc(V)437 -1996 y Fu(,)g Fs(env)652 2011 y Fc(V)712 1996 y Fu([)p -Fs(x)12 b Ft(7!)p Fs(l)e Fu(][next)p Ft(7!)q Fu(new)33 -b Fs(l)10 b Fu(],)33 b Fs(sto)6 b Fu([)p Fs(l)k Ft(7!)p -Fs(v)h Fu(])p Ft(i)32 b(!)2138 2011 y Fc(D)2234 1996 -y Fu(\()p Fs(env)2428 1960 y Fi(0)2428 2021 y Fc(V)2488 -1996 y Fu(,)h Fs(sto)2676 1960 y Fi(0)2700 1996 y Fu(\))p -254 2059 2484 4 v 523 2164 a Ft(h)p Fr(var)g Fs(x)45 -b Fu(:=)32 b Fs(a)7 b Fu(;)33 b Fs(D)1173 2179 y Fc(V)1234 -2164 y Fu(,)g Fs(env)1450 2179 y Fc(V)1510 2164 y Fu(,)f -Fs(sto)6 b Ft(i)33 b(!)1868 2179 y Fc(D)1965 2164 y Fu(\()p -Fs(env)2159 2128 y Fi(0)2159 2189 y Fc(V)2219 2164 y -Fu(,)g Fs(sto)2407 2128 y Fi(0)2430 2164 y Fu(\))513 -2319 y(where)g Fs(v)43 b Fu(=)33 b Ft(A)o Fu([)-17 b([)q -Fs(a)7 b Fu(])-17 b(])q(\()p Fs(sto)6 b Ft(\016)p Fs(env)1575 -2334 y Fc(V)1635 2319 y Fu(\))32 b(and)h Fs(l)43 b Fu(=)32 -b Fs(env)2227 2334 y Fc(V)2320 2319 y Fu(next)244 2534 -y Ft(h)p Fo(")o Fu(,)h Fs(env)544 2549 y Fc(V)604 2534 -y Fu(,)g Fs(sto)6 b Ft(i)32 b(!)963 2549 y Fc(D)1059 -2534 y Fu(\()p Fs(env)1253 2549 y Fc(V)1313 2534 y Fu(,)h -Fs(sto)6 b Fu(\))0 2737 y(Construct)25 b(a)f(statemen)m(t)h(that)e -(computes)i(di\013eren)m(t)f(results)h(under)g(the)f(t)m(w)m(o)h(v)-5 -b(arian)m(ts)23 b(of)h(the)0 2858 y(seman)m(tics.)43 -b(V)-8 b(alidate)29 b(y)m(our)i(claim)d(b)m(y)j(constructing)f(deriv)-5 -b(ation)29 b(trees)j(for)d(the)i(executions)0 2978 y(of)h(the)h -(statemen)m(t)g(from)e(a)i(suitable)e(state.)1758 b Fh(2)p -eop -%%Page: 62 72 -62 71 bop 251 130 a Fw(62)2086 b(2)112 b(Op)s(erational)37 -b(Seman)m(tics)p 251 193 3473 4 v eop -%%Page: 63 73 -63 72 bop 0 1180 a Fv(Chapter)78 b(3)0 1596 y(Pro)-6 -b(v)-13 b(ably)76 b(Correct)i(Implemen)-6 b(tation)0 -2049 y Fu(A)31 b(formal)e(sp)s(eci\014cation)h(of)h(the)h(seman)m(tics) -f(of)g(a)f(programming)e(language)i(is)h(useful)g(when)0 -2169 y(implemen)m(ting)c(it.)42 b(In)31 b(particular,)e(it)g(b)s -(ecomes)i(p)s(ossible)f(to)f(argue)i(ab)s(out)f(the)g(correctness)0 -2290 y(of)38 b(the)i(implemen)m(tation.)59 b(W)-8 b(e)39 -b(shall)f(illustrate)e(this)j(b)m(y)h(sho)m(wing)f(ho)m(w)g(to)g -(translate)f(the)0 2410 y(language)29 b Fw(While)f Fu(in)m(to)h(a)h -(structured)h(form)e(of)g(assem)m(bler)h(co)s(de)h(for)e(an)h(abstract) -g(mac)m(hine)0 2530 y(and)c(w)m(e)h(shall)e(then)i(pro)m(v)m(e)g(that)f -(the)h(translation)d(is)i(correct.)42 b(The)27 b(idea)e(is)h(that)g(w)m -(e)h(\014rst)f(de-)0 2651 y(\014ne)h(the)g Fs(me)-5 b(aning)34 -b Fu(of)25 b(the)i(abstract)g(mac)m(hine)f(instructions)g(b)m(y)h(an)f -(op)s(erational)e(seman)m(tics.)0 2771 y(Then)33 b(w)m(e)g(de\014ne)f -Fs(tr)-5 b(anslation)34 b(functions)39 b Fu(that)32 b(will)d(map)i -(expressions)j(and)d(statemen)m(ts)i(in)0 2892 y(the)41 -b Fw(While)d Fu(language)i(in)m(to)f(sequences)44 b(of)c(suc)m(h)h -(instructions.)67 b(The)41 b(correctness)h(result)0 3012 -y(will)30 b(then)j(state)g(that)g(if)e(w)m(e)145 3218 -y Ft(\017)49 b Fu(translate)32 b(a)g(program)f(in)m(to)h(co)s(de,)h -(and)145 3424 y Ft(\017)49 b Fu(execute)34 b(the)f(co)s(de)g(on)g(the)g -(abstract)g(mac)m(hine,)0 3631 y(then)41 b(w)m(e)f(get)g(the)h(same)e -(result)h(as)g(w)m(as)h(sp)s(eci\014ed)g(b)m(y)g(the)f(seman)m(tic)g -(functions)f Ft(S)3204 3646 y Fn(ns)3315 3631 y Fu(and)0 -3751 y Ft(S)68 3766 y Fn(sos)195 3751 y Fu(of)33 b(the)g(previous)g(c)m -(hapter.)0 4087 y Fj(3.1)161 b(The)53 b(abstract)g(mac)l(hine)0 -4308 y Fu(When)33 b(sp)s(ecifying)f(the)g(abstract)h(mac)m(hine)f(it)f -(is)g(con)m(v)m(enien)m(t)j(\014rst)f(to)f(presen)m(t)i(its)d -(con\014gu-)0 4428 y(rations)h(and)g(next)i(its)e(instructions)g(and)h -(their)f(meanings.)146 4549 y(The)i(abstract)f(mac)m(hine)f -Fw(AM)g Fu(has)h(con\014gurations)f(of)h(the)g(form)e -Ft(h)p Fs(c)6 b Fu(,)32 b Fs(e)7 b Fu(,)33 b Fs(s)8 b -Ft(i)32 b Fu(where)145 4755 y Ft(\017)49 b Fs(c)38 b -Fu(is)32 b(the)h(sequence)i(of)d(instructions)h(\(or)f(co)s(de\))h(to)f -(b)s(e)h(executed,)145 4962 y Ft(\017)49 b Fs(e)40 b -Fu(is)32 b(the)h(ev)-5 b(aluation)31 b(stac)m(k,)i(and)145 -5168 y Ft(\017)49 b Fs(s)40 b Fu(is)33 b(the)g(storage.)0 -5374 y(W)-8 b(e)33 b(use)g(the)g Fs(evaluation)h(stack)43 -b Fu(to)32 b(ev)-5 b(aluate)32 b(arithmetic)e(and)j(b)s(o)s(olean)d -(expressions.)46 b(F)-8 b(or-)0 5494 y(mally)g(,)30 b(it)i(is)g(a)g -(list)f(of)h(v)-5 b(alues,)33 b(so)g(writing)1687 5849 -y(63)p eop -%%Page: 64 74 -64 73 bop 251 130 a Fw(64)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 527 -515 a(Stac)m(k)c Fu(=)f(\()p Fw(Z)h Ft([)g Fw(T)p Fu(\))1288 -479 y Fc(?)283 703 y Fu(w)m(e)39 b(ha)m(v)m(e)g Fs(e)45 -b Ft(2)38 b Fw(Stac)m(k)p Fu(.)59 b(F)-8 b(or)37 b(the)h(sak)m(e)h(of)e -(simplicit)m(y)e(w)m(e)k(shall)d(assume)j(that)e(the)h -Fs(stor)-5 b(age)283 824 y Fu(is)44 b(similar)d(to)j(the)h(state,)i -(that)d(is)g Fs(s)53 b Ft(2)44 b Fw(State)p Fu(,)j(and)e(it)e(is)h -(used)h(to)f(hold)f(the)i(v)-5 b(alues)44 b(of)283 944 -y(v)-5 b(ariables.)430 1064 y(The)33 b Fs(instructions)41 -b Fu(of)32 b Fw(AM)g Fu(are)h(giv)m(en)g(b)m(y)g(the)g(abstract)g(syn)m -(tax)577 1244 y Fs(inst)109 b Fu(::=)100 b Fb(push)p -Fu(-)p Fs(n)39 b Ft(j)32 b Fb(add)h Ft(j)f Fb(mul)-7 -b(t)33 b Ft(j)g Fb(sub)894 1411 y Ft(j)151 b Fb(tr)n(ue)32 -b Ft(j)g Fb(f)-9 b(alse)32 b Ft(j)h Fb(eq)f Ft(j)g Fb(le)g -Ft(j)h Fb(and)f Ft(j)h Fb(neg)894 1579 y Ft(j)151 b Fb(fetch)p -Fu(-)p Fs(x)44 b Ft(j)32 b Fb(store)p Fu(-)p Fs(x)894 -1746 y Ft(j)151 b Fb(noop)33 b Ft(j)f Fb(branch)p Fu(\()p -Fs(c)6 b Fu(,)32 b Fs(c)6 b Fu(\))32 b Ft(j)g Fb(loop)p -Fu(\()p Fs(c)6 b Fu(,)33 b Fs(c)6 b Fu(\))577 1914 y -Fs(c)221 b Fu(::=)100 b Fo(")32 b Ft(j)g Fs(inst)9 b -Fu(:)p Fs(c)283 2095 y Fu(where)32 b Fo(")e Fu(is)h(the)g(empt)m(y)g -(sequence.)45 b(W)-8 b(e)31 b(shall)e(write)i Fw(Co)s(de)g -Fu(for)f(the)h(syn)m(tactic)g(category)g(of)283 2215 -y Fs(se)-5 b(quenc)g(es)40 b(of)f(instructions)p Fu(,)h(so)e -Fs(c)44 b Fu(is)38 b(a)g(meta-v)-5 b(ariable)35 b(ranging)i(o)m(v)m(er) -j Fw(Co)s(de)p Fu(.)61 b(Therefore)283 2336 y(w)m(e)34 -b(ha)m(v)m(e)527 2524 y Ft(h)p Fs(c)6 b Fu(,)32 b Fs(e)7 -b Fu(,)33 b Fs(s)8 b Ft(i)33 b(2)f Fw(Co)s(de)h Ft(\002)g -Fw(Stac)m(k)g Ft(\002)g Fw(State)283 2711 y Fu(A)h(con\014guration)f -(is)g(a)g Fs(terminal)43 b Fu(\(or)33 b(\014nal\))f(con\014guration)h -(if)f(its)h(co)s(de)h(comp)s(onen)m(t)f(is)g(the)283 -2832 y(empt)m(y)h(sequence,)h(that)d(is)g(if)g(it)f(has)i(the)g(form)f -Ft(h)o Fo(")p Fu(,)h Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)o -Fu(.)430 2952 y(The)33 b(seman)m(tics)f(of)f(the)h(instructions)g(of)f -(the)i(abstract)f(mac)m(hine)f(is)h(giv)m(en)g(b)m(y)h(an)e -Fs(op)-5 b(er-)283 3072 y(ational)38 b(semantics)p Fu(.)55 -b(As)37 b(in)e(the)i(previous)g(c)m(hapter)h(it)d(will)g(b)s(e)h(sp)s -(eci\014ed)i(b)m(y)f(a)f(transition)283 3193 y(system.)69 -b(The)42 b(con\014gurations)e(ha)m(v)m(e)i(the)f(form)e -Ft(h)p Fs(c)6 b Fu(,)42 b Fs(e)7 b Fu(,)43 b Fs(s)8 b -Ft(i)41 b Fu(as)g(describ)s(ed)g(ab)s(o)m(v)m(e)h(and)e(the)283 -3313 y(transition)31 b(relation)g Fh(\003)i Fu(sp)s(eci\014es)h(ho)m(w) -f(to)f(execute)j(the)e(instructions:)527 3501 y Ft(h)p -Fs(c)6 b Fu(,)32 b Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)33 -b Fh(\003)g Ft(h)o Fs(c)1107 3465 y Fi(0)1130 3501 y -Fu(,)g Fs(e)1242 3465 y Fi(0)1265 3501 y Fu(,)g Fs(s)1373 -3465 y Fi(0)1396 3501 y Ft(i)283 3689 y Fu(The)40 b(idea)e(is)g(that)g -Fs(one)i(step)g(of)g(exe)-5 b(cution)45 b Fu(will)36 -b(transform)i(the)h(con\014guration)e Ft(h)p Fs(c)6 b -Fu(,)40 b Fs(e)7 b Fu(,)40 b Fs(s)8 b Ft(i)283 3809 y -Fu(in)m(to)46 b Ft(h)o Fs(c)584 3773 y Fi(0)607 3809 -y Fu(,)j Fs(e)735 3773 y Fi(0)759 3809 y Fu(,)g Fs(s)883 -3773 y Fi(0)907 3809 y Ft(i)o Fu(.)84 b(The)47 b(relation)d(is)h -(de\014ned)i(b)m(y)g(the)f(axioms)f(of)h(T)-8 b(able)45 -b(3.1)h(where)h(w)m(e)283 3930 y(\(am)m(biguously\))35 -b(use)i(the)g(notation)e(`:')50 b(b)s(oth)36 b(for)g(app)s(ending)g(t)m -(w)m(o)g(instruction)g(sequences)283 4050 y(and)c(for)f(prep)s(ending)g -(an)g(elemen)m(t)g(to)g(a)g(sequence.)46 b(The)32 b(ev)-5 -b(aluation)30 b(stac)m(k)j(is)d(represen)m(ted)283 4170 -y(as)f(a)g(sequence)i(of)d(elemen)m(ts.)43 b(It)29 b(has)g(the)g(top)g -(of)f(the)h(stac)m(k)h(to)e(the)h(left)f(and)h(w)m(e)h(shall)d(write) -283 4291 y Fo(")33 b Fu(for)f(the)h(empt)m(y)g(sequence.)430 -4411 y(In)27 b(addition)e(to)i(the)h(usual)f(arithmetic)e(and)i(b)s(o)s -(olean)e(op)s(erations)i(w)m(e)h(ha)m(v)m(e)g(six)f(instruc-)283 -4531 y(tions)35 b(that)f(mo)s(dify)f(the)i(ev)-5 b(aluation)33 -b(stac)m(k:)49 b(The)35 b(op)s(eration)e Fb(push)p Fu(-)p -Fs(n)41 b Fu(pushes)c(a)d(constan)m(t)283 4652 y(v)-5 -b(alue)32 b Fs(n)39 b Fu(on)m(to)31 b(the)i(stac)m(k)g(and)f -Fb(tr)n(ue)f Fu(and)h Fb(f)-9 b(alse)31 b Fu(push)i(the)g(constan)m(ts) -g Fw(tt)e Fu(and)h Fw(\013)p Fu(,)g(resp)s(ec-)283 4772 -y(tiv)m(ely)-8 b(,)35 b(on)m(to)g(the)g(stac)m(k.)51 -b(The)36 b(op)s(eration)d Fb(fetch)p Fu(-)p Fs(x)46 b -Fu(pushes)36 b(the)f(v)-5 b(alue)34 b(b)s(ound)h(to)g -Fs(x)46 b Fu(on)m(to)283 4893 y(the)25 b(stac)m(k)h(whereas)g -Fb(store)p Fu(-)p Fs(x)35 b Fu(p)s(ops)25 b(the)f(topmost)g(elemen)m(t) -g(o\013)g(the)h(stac)m(k)h(and)e(up)s(dates)h(the)283 -5013 y(storage)35 b(so)f(that)g(the)h(p)s(opp)s(ed)f(v)-5 -b(alue)34 b(is)g(b)s(ound)g(to)g Fs(x)12 b Fu(.)48 b(The)35 -b(instruction)e Fb(branch)p Fu(\()p Fs(c)3529 5028 y -Fn(1)3568 5013 y Fu(,)g Fs(c)3679 5028 y Fn(2)3718 5013 -y Fu(\))283 5133 y(will)e(also)h(c)m(hange)h(the)g(\015o)m(w)g(of)g -(con)m(trol:)43 b(If)32 b(the)h(top)g(of)f(the)h(stac)m(k)h(is)e(the)h -(v)-5 b(alue)32 b Fw(tt)g Fu(\(that)g(is)283 5254 y(some)d(b)s(o)s -(olean)e(expression)j(has)f(b)s(een)h(ev)-5 b(aluated)28 -b(to)g(true\))h(then)h(the)f(stac)m(k)h(is)e(p)s(opp)s(ed)h(and)283 -5374 y Fs(c)334 5389 y Fn(1)408 5374 y Fu(is)35 b(to)g(b)s(e)g -(executed)i(next.)52 b(Otherwise,)36 b(if)e(the)h(top)g(elemen)m(t)g -(of)g(the)g(stac)m(k)h(is)f Fw(\013)g Fu(then)h(it)283 -5494 y(will)31 b(b)s(e)i(p)s(opp)s(ed)f(and)h Fs(c)1188 -5509 y Fn(2)1260 5494 y Fu(will)d(b)s(e)j(executed)h(next.)p -eop -%%Page: 65 75 -65 74 bop 0 130 a Fw(3.1)112 b(The)38 b(abstract)g(mac)m(hine)2038 -b(65)p 0 193 3473 4 v 0 419 V 0 3830 4 3411 v 416 528 -a Ft(h)o Fb(push)p Fu(-)p Fs(n)7 b Fu(:)p Fs(c)f Fu(,)32 -b Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)525 b Fh(\003)101 -b Ft(h)o Fs(c)6 b Fu(,)32 b Ft(N)15 b Fu([)-17 b([)q -Fs(n)7 b Fu(])-17 b(]:)p Fs(e)7 b Fu(,)33 b Fs(s)8 b -Ft(i)416 697 y(h)o Fb(add)p Fu(:)p Fs(c)e Fu(,)33 b Fs(z)829 -712 y Fn(1)869 697 y Fu(:)p Fs(z)948 712 y Fn(2)987 697 -y Fu(:)p Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)421 b Fh(\003)101 -b Ft(h)o Fs(c)6 b Fu(,)32 b(\()p Fs(z)2050 712 y Fn(1)2090 -697 y Fu(+)p Fs(z)2218 712 y Fn(2)2257 697 y Fu(\):)p -Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)2664 696 y Fu(if)31 -b Fs(z)2805 711 y Fn(1)2844 696 y Fu(,)i Fs(z)2956 711 -y Fn(2)2995 696 y Ft(2)q Fw(Z)416 865 y Ft(h)o Fb(mul)-7 -b(t)p Fu(:)p Fs(c)6 b Fu(,)34 b Fs(z)883 880 y Fn(1)922 -865 y Fu(:)p Fs(z)1001 880 y Fn(2)1040 865 y Fu(:)p Fs(e)7 -b Fu(,)33 b Fs(s)8 b Ft(i)368 b Fh(\003)101 b Ft(h)o -Fs(c)6 b Fu(,)32 b(\()p Fs(z)2050 880 y Fn(1)2090 865 -y Fo(?)p Fs(z)2191 880 y Fn(2)2230 865 y Fu(\):)p Fs(e)7 -b Fu(,)33 b Fs(s)8 b Ft(i)2664 864 y Fu(if)31 b Fs(z)2805 -879 y Fn(1)2844 864 y Fu(,)i Fs(z)2956 879 y Fn(2)2995 -864 y Ft(2)q Fw(Z)416 1034 y Ft(h)o Fb(sub)p Fu(:)p Fs(c)6 -b Fu(,)32 b Fs(z)808 1049 y Fn(1)848 1034 y Fu(:)p Fs(z)927 -1049 y Fn(2)966 1034 y Fu(:)p Fs(e)7 b Fu(,)33 b Fs(s)8 -b Ft(i)442 b Fh(\003)101 b Ft(h)o Fs(c)6 b Fu(,)32 b(\()p -Fs(z)2050 1049 y Fn(1)2090 1034 y Ft(\000)p Fs(z)2219 -1049 y Fn(2)2259 1034 y Fu(\):)p Fs(e)7 b Fu(,)33 b Fs(s)8 -b Ft(i)2664 1033 y Fu(if)31 b Fs(z)2805 1048 y Fn(1)2844 -1033 y Fu(,)i Fs(z)2956 1048 y Fn(2)2995 1033 y Ft(2)q -Fw(Z)416 1201 y Ft(h)o Fb(tr)n(ue)p Fu(:)p Fs(c)6 b Fu(,)32 -b Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)610 b Fh(\003)101 -b Ft(h)o Fs(c)6 b Fu(,)32 b Fw(tt)p Fu(:)p Fs(e)7 b Fu(,)33 -b Fs(s)8 b Ft(i)416 1369 y(h)o Fb(f)-9 b(alse)p Fu(:)p -Fs(c)6 b Fu(,)33 b Fs(e)7 b Fu(,)32 b Fs(s)8 b Ft(i)586 -b Fh(\003)101 b Ft(h)o Fs(c)6 b Fu(,)32 b Fw(\013)p Fu(:)p -Fs(e)7 b Fu(,)34 b Fs(s)8 b Ft(i)416 1537 y(h)o Fb(eq)p -Fu(:)p Fs(c)e Fu(,)33 b Fs(z)763 1552 y Fn(1)802 1537 -y Fu(:)p Fs(z)881 1552 y Fn(2)920 1537 y Fu(:)p Fs(e)7 -b Fu(,)33 b Fs(s)8 b Ft(i)488 b Fh(\003)101 b Ft(h)o -Fs(c)6 b Fu(,)32 b(\()p Fs(z)2050 1552 y Fn(1)2090 1537 -y Fu(=)p Fs(z)2218 1552 y Fn(2)2257 1537 y Fu(\):)p Fs(e)7 -b Fu(,)33 b Fs(s)8 b Ft(i)2664 1536 y Fu(if)31 b Fs(z)2805 -1551 y Fn(1)2844 1536 y Fu(,)i Fs(z)2956 1551 y Fn(2)2995 -1536 y Ft(2)q Fw(Z)416 1706 y Ft(h)o Fb(le)p Fu(:)p Fs(c)6 -b Fu(,)32 b Fs(z)750 1721 y Fn(1)790 1706 y Fu(:)p Fs(z)869 -1721 y Fn(2)908 1706 y Fu(:)p Fs(e)7 b Fu(,)33 b Fs(s)8 -b Ft(i)500 b Fh(\003)101 b Ft(h)o Fs(c)6 b Fu(,)32 b(\()p -Fs(z)2050 1721 y Fn(1)2090 1706 y Ft(\024)p Fs(z)2219 -1721 y Fn(2)2259 1706 y Fu(\):)p Fs(e)7 b Fu(,)33 b Fs(s)8 -b Ft(i)2664 1705 y Fu(if)31 b Fs(z)2805 1720 y Fn(1)2844 -1705 y Fu(,)i Fs(z)2956 1720 y Fn(2)2995 1705 y Ft(2)q -Fw(Z)416 1873 y Ft(h)o Fb(and)p Fu(:)p Fs(c)6 b Fu(,)33 -b Fs(t)817 1888 y Fn(1)857 1873 y Fu(:)p Fs(t)925 1888 -y Fn(2)966 1873 y Fu(:)p Fs(e)7 b Fu(,)33 b Fs(s)8 b -Ft(i)442 b Fh(\003)921 1957 y Fg(8)921 2031 y(<)921 2181 -y(:)1036 2046 y Ft(h)p Fs(c)5 b Fo(;)17 b Fw(tt)27 b -Fu(:)h Fs(e)7 b Fo(;)17 b Fs(s)8 b Ft(i)1036 2214 y(h)p -Fs(c)d Fo(;)17 b Fw(\013)38 b Fu(:)28 b Fs(e)7 b Fo(;)17 -b Fs(s)8 b Ft(i)1647 2046 y Fu(if)31 b Fs(t)1777 2061 -y Fn(1)1818 2046 y Fu(=)p Fw(tt)g Fu(and)i Fs(t)2244 -2061 y Fn(2)2284 2046 y Fu(=)p Fw(tt)1647 2214 y Fu(if)e -Fs(t)1777 2229 y Fn(1)1818 2214 y Fu(=)p Fw(\013)h Fu(or)h -Fs(t)2152 2229 y Fn(2)2192 2214 y Fu(=)p Fw(\013)p Fu(,)g -Fs(t)2434 2229 y Fn(1)2474 2214 y Fu(,)g Fs(t)2575 2229 -y Fn(2)2615 2214 y Ft(2)p Fw(T)416 2483 y Ft(h)o Fb(neg)p -Fu(:)p Fs(c)6 b Fu(,)32 b Fs(t)9 b Fu(:)p Fs(e)e Fu(,)34 -b Fs(s)8 b Ft(i)594 b Fh(\003)1812 2309 y Fg(8)1812 2384 -y(<)1812 2533 y(:)1927 2399 y Ft(h)p Fs(c)5 b Fo(;)17 -b Fw(\013)38 b Fu(:)28 b Fs(e)7 b Fo(;)17 b Fs(s)8 b -Ft(i)1927 2566 y(h)p Fs(c)d Fo(;)17 b Fw(tt)27 b Fu(:)h -Fs(e)7 b Fo(;)17 b Fs(s)8 b Ft(i)2664 2399 y Fu(if)31 -b Fs(t)9 b Fu(=)p Fw(tt)2664 2566 y Fu(if)31 b Fs(t)9 -b Fu(=)p Fw(\013)416 2745 y Ft(h)o Fb(fetch)p Fu(-)p -Fs(x)j Fu(:)p Fs(c)6 b Fu(,)32 b Fs(e)7 b Fu(,)33 b Fs(s)8 -b Ft(i)466 b Fh(\003)101 b Ft(h)o Fs(c)6 b Fu(,)32 b(\()p -Fs(s)41 b(x)12 b Fu(\):)p Fs(e)7 b Fu(,)33 b Fs(s)8 b -Ft(i)416 2914 y(h)o Fb(store)p Fu(-)p Fs(x)k Fu(:)p Fs(c)6 -b Fu(,)31 b Fs(z)12 b Fu(:)p Fs(e)7 b Fu(,)33 b Fs(s)8 -b Ft(i)392 b Fh(\003)101 b Ft(h)o Fs(c)6 b Fu(,)32 b -Fs(e)7 b Fu(,)33 b Fs(s)8 b Fu([)p Fs(x)k Ft(7!)p Fs(z)g -Fu(])p Ft(i)2664 2913 y Fu(if)31 b Fs(z)12 b Ft(2)p Fw(Z)416 -3081 y Ft(h)o Fb(noop)p Fu(:)p Fs(c)6 b Fu(,)33 b Fs(e)7 -b Fu(,)33 b Fs(s)8 b Ft(i)600 b Fh(\003)101 b Ft(h)o -Fs(c)6 b Fu(,)32 b Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)416 -3339 y(h)o Fb(branch)p Fu(\()p Fs(c)903 3354 y Fn(1)942 -3339 y Fu(,)33 b Fs(c)1053 3354 y Fn(2)1092 3339 y Fu(\):)p -Fs(c)6 b Fu(,)32 b Fs(t)9 b Fu(:)p Fs(e)e Fu(,)34 b Fs(s)8 -b Ft(i)99 b Fh(\003)1812 3165 y Fg(8)1812 3240 y(<)1812 -3389 y(:)1927 3255 y Ft(h)p Fs(c)2016 3270 y Fn(1)2083 -3255 y Fu(:)28 b Fs(c)6 b Fo(;)17 b Fs(e)7 b Fo(;)17 -b Fs(s)7 b Ft(i)1927 3422 y(h)p Fs(c)2016 3437 y Fn(2)2083 -3422 y Fu(:)28 b Fs(c)6 b Fo(;)17 b Fs(e)7 b Fo(;)17 -b Fs(s)7 b Ft(i)2664 3255 y Fu(if)31 b Fs(t)9 b Fu(=)p -Fw(tt)2664 3422 y Fu(if)31 b Fs(t)9 b Fu(=)p Fw(\013)416 -3601 y Ft(h)o Fb(loop)p Fu(\()p Fs(c)776 3616 y Fn(1)816 -3601 y Fu(,)32 b Fs(c)926 3616 y Fn(2)965 3601 y Fu(\):)p -Fs(c)6 b Fu(,)33 b Fs(e)7 b Fu(,)32 b Fs(s)8 b Ft(i)295 -b Fh(\003)921 3769 y Ft(h)o Fs(c)1010 3784 y Fn(1)1049 -3769 y Fu(:)p Fb(branch)p Fu(\()p Fs(c)1525 3784 y Fn(2)1564 -3769 y Fu(:)p Fb(loop)p Fu(\()p Fs(c)1913 3784 y Fn(1)1953 -3769 y Fu(,)32 b Fs(c)2063 3784 y Fn(2)2102 3769 y Fu(\),)h -Fb(noop)p Fu(\):)p Fs(c)6 b Fu(,)32 b Fs(e)7 b Fu(,)33 -b Fs(s)8 b Ft(i)p 3469 3830 V 0 3833 3473 4 v 844 3994 -a Fu(T)-8 b(able)32 b(3.1:)43 b(Op)s(erational)30 b(seman)m(tics)j(for) -f Fw(AM)146 4287 y Fu(There)43 b(are)f(t)m(w)m(o)h(instructions)f(that) -f(c)m(hange)i(the)f(\015o)m(w)h(of)e(con)m(trol.)71 b(The)43 -b(instruction)0 4407 y Fb(branch)p Fu(\()p Fs(c)449 4422 -y Fn(1)488 4407 y Fu(,)i Fs(c)611 4422 y Fn(2)650 4407 -y Fu(\))d(will)e(b)s(e)j(used)h(to)e(implemen)m(t)e(the)j(conditional:) -61 b(as)42 b(describ)s(ed)i(ab)s(o)m(v)m(e)0 4527 y(it)f(will)f(c)m(ho) -s(ose)i(the)h(co)s(de)f(comp)s(onen)m(t)g Fs(c)1602 4542 -y Fn(1)1685 4527 y Fu(or)g Fs(c)1867 4542 y Fn(2)1950 -4527 y Fu(dep)s(ending)g(on)g(the)g(curren)m(t)h(v)-5 -b(alue)43 b(on)0 4648 y(top)g(of)g(the)h(stac)m(k.)76 -b(If)44 b(the)f(top)g(of)g(the)h(stac)m(k)g(is)f(not)g(a)g(truth)h(v)-5 -b(alue)42 b(the)i(mac)m(hine)f(will)0 4768 y(halt)e(as)i(there)g(is)f -(no)h(next)g(con\014guration)f(\(since)h(the)g(meaning)e(of)h -Fb(branch)p Fu(\()p Ft(\001)17 b(\001)g(\001)n Fu(,)p -Ft(\001)g(\001)g(\001)n Fu(\))43 b(is)0 4889 y(not)i(de\014ned)h(in)e -(that)h(case\).)82 b(A)45 b(lo)s(oping)d(construct)k(suc)m(h)g(as)g -(the)f Fr(while)p Fu(-construct)i(of)0 5009 y Fw(While)40 -b Fu(can)i(b)s(e)g(implemen)m(ted)f(using)g(the)h(instruction)f -Fb(loop)p Fu(\()p Fs(c)2516 5024 y Fn(1)2555 5009 y Fu(,)j -Fs(c)2677 5024 y Fn(2)2716 5009 y Fu(\).)71 b(The)43 -b(seman)m(tics)0 5129 y(of)35 b(this)g(instruction)f(is)h(de\014ned)i -(b)m(y)f(rewriting)f(it)f(to)h(a)g(com)m(bination)e(of)i(other)h -(constructs)0 5250 y(including)29 b(the)i Fb(branch)p -Fu(-instruction)e(and)h(itself.)42 b(W)-8 b(e)31 b(shall)e(see)j -(shortly)e(ho)m(w)h(this)f(can)h(b)s(e)0 5370 y(used.)146 -5494 y(The)40 b(op)s(erational)d(seman)m(tics)i(of)f(T)-8 -b(able)38 b(3.1)h(is)f(indeed)h(a)g(structural)g(op)s(erational)d(se-)p -eop -%%Page: 66 76 -66 75 bop 251 130 a Fw(66)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 283 -515 a Fu(man)m(tics)29 b(for)g Fw(AM)p Fu(.)g(Corresp)s(onding)g(to)g -(the)g(deriv)-5 b(ation)28 b(sequences)k(of)d(Chapter)h(2)f(w)m(e)h -(shall)283 636 y(de\014ne)36 b(a)e Fs(c)-5 b(omputation)36 -b(se)-5 b(quenc)g(e)40 b Fu(for)34 b Fw(AM)p Fu(.)g(Giv)m(en)g(a)g -(sequence)j Fs(c)i Fu(of)34 b(instructions)g(and)g(a)283 -756 y(storage)f Fs(s)8 b Fu(,)33 b(a)f(computation)f(sequence)k(for)d -Fs(c)38 b Fu(and)33 b Fs(s)41 b Fu(is)32 b(either)429 -956 y Ft(\017)48 b Fu(a)33 b Fs(\014nite)39 b Fu(sequence)742 -1159 y Fo(\015)798 1174 y Fn(0)837 1159 y Fu(,)33 b Fo(\015)953 -1174 y Fn(1)992 1159 y Fu(,)g Fo(\015)1108 1174 y Fn(2)1148 -1159 y Fu(,)f Ft(\001)17 b(\001)g(\001)31 b Fu(,)i Fo(\015)1472 -1174 y Fn(k)527 1361 y Fu(of)c(con\014gurations)f(satisfying)g -Fo(\015)1747 1376 y Fn(0)1815 1361 y Fu(=)g Ft(h)p Fs(c)6 -b Fu(,)29 b Fo(")p Fu(,)g Fs(s)8 b Ft(i)29 b Fu(and)g -Fo(\015)2525 1376 y Fn(i)2577 1361 y Fh(\003)g Fo(\015)2739 -1376 y Fn(i+1)2882 1361 y Fu(for)f(0)p Ft(\024)p Fu(i)p -Fo(<)p Fu(k,)h(k)p Ft(\025)q Fu(0,)h(and)527 1482 y(where)k(there)f(is) -g(no)f Fo(\015)38 b Fu(suc)m(h)c(that)e Fo(\015)1868 -1497 y Fn(k)1942 1482 y Fh(\003)h Fo(\015)5 b Fu(,)33 -b(or)f(it)f(is)429 1684 y Ft(\017)48 b Fu(an)33 b Fs(in\014nite)39 -b Fu(sequence)742 1886 y Fo(\015)798 1901 y Fn(0)837 -1886 y Fu(,)33 b Fo(\015)953 1901 y Fn(1)992 1886 y Fu(,)g -Fo(\015)1108 1901 y Fn(2)1148 1886 y Fu(,)f Ft(\001)17 -b(\001)g(\001)527 2089 y Fu(of)32 b(con\014gurations)h(satisfying)e -Fo(\015)1758 2104 y Fn(0)1830 2089 y Fu(=)i Ft(h)o Fs(c)6 -b Fu(,)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fu(and)h -Fo(\015)2558 2104 y Fn(i)2614 2089 y Fh(\003)g Fo(\015)2780 -2104 y Fn(i+1)2927 2089 y Fu(for)f(0)p Ft(\024)p Fu(i.)283 -2289 y(Note)e(that)g(initial)c(con\014gurations)j(alw)m(a)m(ys)h(ha)m -(v)m(e)h(an)f Fs(empty)38 b Fu(ev)-5 b(aluation)28 b(stac)m(k.)44 -b(A)30 b(compu-)283 2410 y(tation)i(sequence)j(is)429 -2610 y Ft(\017)48 b Fs(terminating)41 b Fu(if)31 b(and)i(only)f(if)g -(it)f(is)h(\014nite,)h(and)429 2812 y Ft(\017)48 b Fs(lo)-5 -b(oping)40 b Fu(if)32 b(and)h(only)f(if)f(it)h(is)g(in\014nite.)283 -3013 y(A)f(terminating)d(computation)h(sequence)k(ma)m(y)d(end)h(in)f -(a)g(terminal)e(con\014guration)h(\(that)h(is)283 3133 -y(a)38 b(con\014guration)g(with)g(an)g(empt)m(y)h(co)s(de)f(comp)s -(onen)m(t\))h(or)f(in)f(a)h(stuc)m(k)i(con\014guration)d(\(for)283 -3253 y(example)c Ft(h)o Fb(add)p Fu(,)g Fo(")p Fu(,)g -Fs(s)8 b Ft(i)p Fu(\).)283 3478 y Fw(Example)37 b(3.1)49 -b Fu(Consider)33 b(the)g(instruction)f(sequence)527 3678 -y Fb(push)p Fu(-)p Fr(1)p Fu(:)p Fb(fetch)p Fu(-)p Fr(x)p -Fu(:)p Fb(add)p Fu(:)p Fb(store)p Fu(-)p Fr(x)283 3878 -y Fu(Assuming)h(that)f(the)h(initial)c(storage)j Fs(s)41 -b Fu(has)33 b Fs(s)41 b Fr(x)32 b Fu(=)h Fw(3)f Fu(w)m(e)i(get)527 -4079 y Ft(h)p Fb(push)p Fu(-)p Fr(1)p Fu(:)p Fb(fetch)p -Fu(-)p Fr(x)p Fu(:)p Fb(add)p Fu(:)p Fb(store)p Fu(-)p -Fr(x)p Fu(,)d Fo(")p Fu(,)i Fs(s)8 b Ft(i)873 4246 y -Fh(\003)33 b Ft(h)p Fb(fetch)p Fu(-)p Fr(x)p Fu(:)p Fb(add)p -Fu(:)p Fb(store)p Fu(-)p Fr(x)p Fu(,)f Fw(1)p Fu(,)h -Fs(s)8 b Ft(i)873 4414 y Fh(\003)33 b Ft(h)p Fb(add)p -Fu(:)p Fb(store)p Fu(-)p Fr(x)p Fu(,)f Fw(3)p Fu(:)p -Fw(1)p Fu(,)h Fs(s)8 b Ft(i)873 4582 y Fh(\003)33 b Ft(h)p -Fb(store)p Fu(-)p Fr(x)p Fu(,)f Fw(4)p Fu(,)g Fs(s)8 -b Ft(i)873 4749 y Fh(\003)33 b Ft(h)p Fo(")p Fu(,)f Fo(")p -Fu(,)h Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p Fw(4)p Fu(])p Ft(i)283 -4950 y Fu(The)36 b(computation)c(no)m(w)j(stops)g(b)s(ecause)g(there)g -(is)f(no)g(next)h(step.)49 b(This)34 b(is)g(an)g(example)f(of)283 -5070 y(a)g(terminating)d(computation)h(sequence.)1820 -b Fh(2)283 5294 y Fw(Example)37 b(3.2)49 b Fu(Consider)33 -b(the)g(co)s(de)527 5494 y Fb(loop)p Fu(\()p Fb(tr)n(ue)p -Fu(,)g Fb(noop)p Fu(\))p eop -%%Page: 67 77 -67 76 bop 0 130 a Fw(3.1)112 b(The)38 b(abstract)g(mac)m(hine)2038 -b(67)p 0 193 3473 4 v 0 515 a Fu(W)-8 b(e)33 b(ha)m(v)m(e)244 -681 y Ft(h)p Fb(loop)p Fu(\()p Fb(tr)n(ue)p Fu(,)f Fb(noop)p -Fu(\),)h Fo(")o Fu(,)g Fs(s)8 b Ft(i)554 848 y Fh(\003)33 -b Ft(h)p Fb(tr)n(ue)p Fu(:)p Fb(branch)p Fu(\()p Fb(noop)p -Fu(:)p Fb(loop)p Fu(\()p Fb(tr)n(ue)p Fu(,)f Fb(noop)p -Fu(\),)h Fb(noop)p Fu(\),)f Fo(")p Fu(,)h Fs(s)8 b Ft(i)554 -1016 y Fh(\003)33 b Ft(h)p Fb(branch)p Fu(\()p Fb(noop)p -Fu(:)p Fb(loop)p Fu(\()p Fb(tr)n(ue)p Fu(,)f Fb(noop)p -Fu(\),)h Fb(noop)p Fu(\),)g Fw(tt)p Fu(,)f Fs(s)8 b Ft(i)554 -1183 y Fh(\003)33 b Ft(h)p Fb(noop)p Fu(:)p Fb(loop)p -Fu(\()p Fb(tr)n(ue)p Fu(,)f Fb(noop)p Fu(\),)h Fo(")p -Fu(,)f Fs(s)8 b Ft(i)554 1351 y Fh(\003)33 b Ft(h)p Fb(loop)p -Fu(\()p Fb(tr)n(ue)p Fu(,)f Fb(noop)p Fu(\),)h Fo(")o -Fu(,)g Fs(s)8 b Ft(i)554 1519 y Fh(\003)33 b Ft(\001)17 -b(\001)g(\001)0 1684 y Fu(and)40 b(the)h(unfolding)d(of)i(the)g -Fb(loop)p Fu(-instruction)f(is)h(rep)s(eated.)67 b(This)40 -b(is)f(an)h(example)g(of)g(a)0 1804 y(lo)s(oping)30 b(computation)h -(sequence.)2089 b Fh(2)0 1982 y Fw(Exercise)36 b(3.3)49 -b Fu(Consider)33 b(the)g(co)s(de)244 2147 y Fb(push)p -Fu(-)p Fr(0)p Fu(:)p Fb(store)p Fu(-)p Fr(z)p Fu(:)p -Fb(fetch)p Fu(-)p Fr(x)p Fu(:)p Fb(store)p Fu(-)p Fr(r)p -Fu(:)244 2315 y Fb(loop)p Fu(\()p Fb(fetch)p Fu(-)p Fr(r)p -Fu(:)p Fb(fetch)p Fu(-)p Fr(y)p Fu(:)p Fb(le)p Fu(,)515 -2482 y Fb(fetch)p Fu(-)p Fr(y)p Fu(:)p Fb(fetch)p Fu(-)p -Fr(r)p Fu(:)p Fb(sub)p Fu(:)p Fb(store)p Fu(-)p Fr(r)p -Fu(:)515 2650 y Fb(push)p Fu(-)p Fr(1)p Fu(:)p Fb(fetch)p -Fu(-)p Fr(z)p Fu(:)p Fb(add)p Fu(:)p Fb(store)p Fu(-)p -Fr(z)p Fu(\))0 2815 y(Determine)f(the)h(function)f(computed)g(b)m(y)i -(this)e(co)s(de.)1378 b Fh(2)0 3097 y Fp(Prop)t(erties)46 -b(of)f(AM)0 3282 y Fu(The)40 b(seman)m(tics)f(w)m(e)h(ha)m(v)m(e)h(sp)s -(eci\014ed)e(for)g(the)g(abstract)h(mac)m(hine)e(is)h(concerned)h(with) -f(the)0 3402 y(execution)27 b(of)g(individual)d(instructions)i(and)h -(is)f(therefore)i(close)f(in)f(spirit)f(to)h(the)i(structural)0 -3523 y(op)s(erational)j(seman)m(tics)j(studied)g(in)e(Chapter)j(2.)46 -b(When)34 b(pro)m(ving)f(the)h(correctness)i(of)d(the)0 -3643 y(co)s(de)44 b(generation)g(w)m(e)g(shall)f(need)i(a)f(few)g -(results)g(analogous)f(to)h(those)g(holding)f(for)g(the)0 -3764 y(structural)d(op)s(erational)e(seman)m(tics.)66 -b(As)41 b(their)f(pro)s(ofs)g(follo)m(w)e(the)j(same)f(lines)f(as)i -(those)0 3884 y(for)32 b(the)h(structural)f(op)s(erational)e(seman)m -(tics)i(w)m(e)i(shall)d(lea)m(v)m(e)i(them)f(as)g(exercises)i(and)f -(only)0 4004 y Fs(r)-5 b(eformulate)40 b Fu(the)33 b(pro)s(of)e(tec)m -(hnique)j(from)e(Section)g(2.2:)p 0 4153 3470 4 v 0 4170 -V -2 4378 4 208 v 15 4378 V 478 4299 a Fw(Induction)g(on)h(the)f -(Length)h(of)g(Computation)f(Sequences)p 3452 4378 V -3469 4378 V 0 4381 3470 4 v -2 4630 4 249 v 15 4630 V -66 4546 a Fu(1:)143 b(Pro)m(v)m(e)34 b(that)f(the)g(prop)s(ert)m(y)g -(holds)f(for)g(all)f(computation)g(sequences)36 b(of)c(length)g(0.)p -3452 4630 V 3469 4630 V -2 5159 4 529 v 15 5159 V 66 -4714 a(2:)143 b(Pro)m(v)m(e)41 b(that)f(the)g(prop)s(ert)m(y)g(holds)f -(for)g(all)f(other)i(computation)e(sequences:)60 b(As-)285 -4834 y(sume)37 b(that)f(the)h(prop)s(ert)m(y)g(holds)g(for)f(all)e -(computation)h(sequences)40 b(of)c(length)g(at)285 4955 -y(most)31 b(k)g(\(this)g(is)f(called)g(the)i Fs(induction)h(hyp)-5 -b(othesis)p Fu(\))30 b(and)h(sho)m(w)h(that)f(it)f(holds)h(for)285 -5075 y(computation)g(sequences)36 b(of)c(length)g(k+1.)p -3452 5159 V 3469 5159 V 0 5162 3470 4 v 0 5179 V 0 5374 -a(The)f(induction)d(step)j(of)e(a)g(pro)s(of)g(follo)m(wing)e(this)i -(tec)m(hnique)j(will)27 b(often)j(b)s(e)f(done)i(b)m(y)f(a)f(case)0 -5494 y(analysis)j(on)g(the)h(\014rst)g(instruction)f(of)g(the)h(co)s -(de)g(comp)s(onen)m(t)g(of)f(the)h(con\014guration.)p -eop -%%Page: 68 78 -68 77 bop 251 130 a Fw(68)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 283 -515 a(Exercise)g(3.4)49 b(\(Essen)m(tial\))30 b Fu(By)j(analogy)f(with) -g(Exercise)i(2.21)e(pro)m(v)m(e)h(that)527 717 y(if)f -Ft(h)p Fs(c)707 732 y Fn(1)746 717 y Fu(,)g Fs(e)857 -732 y Fn(1)897 717 y Fu(,)g Fs(s)8 b Ft(i)33 b Fh(\003)1153 -681 y Fn(k)1227 717 y Ft(h)p Fs(c)1317 681 y Fi(0)1340 -717 y Fu(,)f Fs(e)1451 681 y Fi(0)1475 717 y Fu(,)h Fs(s)1583 -681 y Fi(0)1606 717 y Ft(i)f Fu(then)h Ft(h)p Fs(c)1989 -732 y Fn(1)2028 717 y Fu(:)p Fs(c)2106 732 y Fn(2)2145 -717 y Fu(,)g Fs(e)2257 732 y Fn(1)2297 717 y Fu(:)p Fs(e)2376 -732 y Fn(2)2415 717 y Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)2672 -681 y Fn(k)2746 717 y Ft(h)p Fs(c)2836 681 y Fi(0)2858 -717 y Fu(:)p Fs(c)2936 732 y Fn(2)2976 717 y Fu(,)g Fs(e)3087 -681 y Fi(0)3111 717 y Fu(:)p Fs(e)3190 732 y Fn(2)3230 -717 y Fu(,)g Fs(s)3337 681 y Fi(0)3361 717 y Ft(i)283 -919 y Fu(This)25 b(means)g(that)f(w)m(e)i(can)e(extend)i(the)f(co)s(de) -g(comp)s(onen)m(t)g(as)g(w)m(ell)e(as)i(the)g(stac)m(k)h(comp)s(onen)m -(t)283 1039 y(without)33 b(c)m(hanging)f(the)h(b)s(eha)m(viour)f(of)g -(the)h(mac)m(hine.)1349 b Fh(2)283 1265 y Fw(Exercise)37 -b(3.5)49 b(\(Essen)m(tial\))30 b Fu(By)j(analogy)f(with)g(Lemma)f(2.19) -h(pro)m(v)m(e)i(that)e(if)527 1467 y Ft(h)p Fs(c)617 -1482 y Fn(1)656 1467 y Fu(:)p Fs(c)734 1482 y Fn(2)773 -1467 y Fu(,)h Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)32 b Fh(\003)1142 -1431 y Fn(k)1215 1467 y Ft(h)p Fo(")p Fu(,)g Fs(e)1411 -1431 y Fi(00)1454 1467 y Fu(,)h Fs(s)1562 1431 y Fi(00)1604 -1467 y Ft(i)283 1669 y Fu(then)40 b(there)f(exists)g(a)g -(con\014guration)e Ft(h)p Fo(")p Fu(,)j Fs(e)1930 1633 -y Fi(0)1953 1669 y Fu(,)g Fs(s)2068 1633 y Fi(0)2092 -1669 y Ft(i)e Fu(and)h(natural)e(n)m(um)m(b)s(ers)j(k)3163 -1684 y Fn(1)3241 1669 y Fu(and)f(k)3488 1684 y Fn(2)3566 -1669 y Fu(with)283 1789 y(k)334 1804 y Fn(1)374 1789 -y Fu(+k)501 1804 y Fn(2)541 1789 y Fu(=k)33 b(suc)m(h)h(that)527 -1991 y Ft(h)p Fs(c)617 2006 y Fn(1)656 1991 y Fu(,)f -Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)32 b Fh(\003)1024 1955 -y Fn(k)1061 1964 y Fd(1)1133 1991 y Ft(h)p Fo(")o Fu(,)h -Fs(e)1329 1955 y Fi(0)1353 1991 y Fu(,)f Fs(s)1460 1955 -y Fi(0)1484 1991 y Ft(i)g Fu(and)g Ft(h)p Fs(c)1834 2006 -y Fn(2)1873 1991 y Fu(,)h Fs(e)1985 1955 y Fi(0)2008 -1991 y Fu(,)g Fs(s)2116 1955 y Fi(0)2139 1991 y Ft(i)g -Fh(\003)2288 1955 y Fn(k)2325 1964 y Fd(2)2397 1991 y -Ft(h)o Fo(")p Fu(,)g Fs(e)2593 1955 y Fi(00)2635 1991 -y Fu(,)g Fs(s)2743 1955 y Fi(00)2785 1991 y Ft(i)283 -2193 y Fu(This)c(means)f(that)f(the)i(execution)g(of)e(a)h(comp)s -(osite)f(sequence)j(of)e(instructions)g(can)g(b)s(e)g(split)283 -2313 y(in)m(to)k(t)m(w)m(o)i(pieces.)2739 b Fh(2)430 -2539 y Fu(The)23 b(notion)d(of)i(determinism)e(is)h(de\014ned)i(as)f -(for)f(the)i(structural)e(op)s(erational)f(seman)m(tics.)283 -2660 y(So)34 b(the)g(seman)m(tics)g(of)g(an)f(abstract)i(mac)m(hine)e -(is)g Fs(deterministic)39 b Fu(if)32 b(for)i(all)d(c)m(hoices)k(of)e -Fo(\015)5 b Fu(,)35 b Fo(\015)3733 2624 y Fi(0)283 2780 -y Fu(and)e Fo(\015)529 2744 y Fi(00)572 2780 y Fu(:)527 -2982 y Fo(\015)38 b Fh(\003)33 b Fo(\015)782 2946 y Fi(0)838 -2982 y Fu(and)f Fo(\015)38 b Fh(\003)33 b Fo(\015)1282 -2946 y Fi(00)1357 2982 y Fu(imply)e Fo(\015)1687 2946 -y Fi(0)1742 2982 y Fu(=)i Fo(\015)1907 2946 y Fi(00)283 -3208 y Fw(Exercise)k(3.6)49 b(\(Essen)m(tial\))36 b Fu(Sho)m(w)j(that)f -(the)h(mac)m(hine)f(seman)m(tics)h(of)f(T)-8 b(able)38 -b(3.1)g(is)g(de-)283 3329 y(terministic.)48 b(Deduce)36 -b(that)e(there)i(is)e(exactly)h(one)g(computation)e(sequence)k -(starting)d(in)g(a)283 3449 y(con\014guration)e Ft(h)p -Fs(c)6 b Fu(,)32 b Fs(e)7 b Fu(,)33 b Fs(s)8 b Ft(i)p -Fu(.)2432 b Fh(2)283 3737 y Fp(The)45 b(execution)h(function)e -FC(M)283 3922 y Fu(W)-8 b(e)37 b(shall)e(de\014ne)j(the)f -Fs(me)-5 b(aning)44 b Fu(of)36 b(a)g(sequence)j(of)d(instructions)g(as) -h(a)f(\(partial\))e(function)283 4043 y(from)e Fw(State)g -Fu(to)h Fw(State)p Fu(:)527 4244 y Ft(M)p Fu(:)43 b Fw(Co)s(de)33 -b Ft(!)g Fu(\()p Fw(State)f Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(\))283 4446 y(It)g(is)f(giv)m(en)h(b)m(y)527 4730 -y Ft(M)p Fu([)-17 b([)q Fs(c)6 b Fu(])-17 b(])32 b Fs(s)41 -b Fu(=)994 4555 y Fg(8)994 4630 y(<)994 4779 y(:)1110 -4645 y Fs(s)1158 4609 y Fi(0)1428 4645 y Fu(if)32 b Ft(h)o -Fs(c)6 b Fu(,)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)1969 -4609 y Fi(\003)2041 4645 y Ft(h)o Fo(")p Fu(,)h Fs(e)7 -b Fu(,)33 b Fs(s)2345 4609 y Fi(0)2368 4645 y Ft(i)1110 -4813 y Fu(undef)p 1110 4826 236 4 v 83 w(otherwise)283 -5013 y(The)e(function)f(is)f(w)m(ell-de\014ned)i(b)s(ecause)g(of)e -(Exercise)j(3.6.)42 b(Note)30 b(that)g(the)g(de\014nition)f(do)s(es)283 -5133 y(not)k(require)g(the)g(stac)m(k)h(comp)s(onen)m(t)e(of)h(the)g -(terminal)d(con\014guration)i(to)g(b)s(e)h(empt)m(y)g(but)g(it)283 -5254 y(do)s(es)g(require)g(the)g(co)s(de)g(comp)s(onen)m(t)g(to)f(b)s -(e)h(so.)430 5374 y(The)j(abstract)g(mac)m(hine)g Fw(AM)f -Fu(ma)m(y)h(seem)g(far)f(remo)m(v)m(ed)h(from)f(more)g(traditional)d -(ma-)283 5494 y(c)m(hine)h(arc)m(hitectures.)45 b(In)33 -b(the)g(next)h(few)f(exercises)h(w)m(e)g(shall)d(gradually)g(bridge)h -(this)g(gap.)p eop -%%Page: 69 79 -69 78 bop 0 130 a Fw(3.2)112 b(Sp)s(eci\014cation)37 -b(of)h(the)f(translation)1596 b(69)p 0 193 3473 4 v 0 -515 a(Exercise)36 b(3.7)49 b(AM)29 b Fu(refers)h(to)f(v)-5 -b(ariables)28 b(b)m(y)i(their)f Fs(name)36 b Fu(rather)29 -b(than)g(b)m(y)i(their)d Fs(addr)-5 b(ess)p Fu(.)0 636 -y(The)34 b(abstract)e(mac)m(hine)g Fw(AM)1153 651 y Fn(1)1225 -636 y Fu(di\013ers)h(from)e Fw(AM)i Fu(in)e(that)145 -805 y Ft(\017)49 b Fu(the)31 b(con\014gurations)g(ha)m(v)m(e)h(the)f -(form)f Ft(h)o Fs(c)6 b Fu(,)31 b Fs(e)7 b Fu(,)32 b -Fs(m)7 b Ft(i)30 b Fu(where)i Fs(c)37 b Fu(and)31 b Fs(e)38 -b Fu(are)30 b(as)i(in)e Fw(AM)g Fu(and)244 925 y Fs(m)7 -b Fu(,)33 b(the)g Fs(memory)9 b Fu(,)31 b(is)i(a)f(\(\014nite\))g(list) -f(of)h(v)-5 b(alues,)33 b(that)f(is)g Fs(m)40 b Ft(2)33 -b Fw(Z)2662 889 y Fc(?)2702 925 y Fu(,)f(and)145 1117 -y Ft(\017)49 b Fu(the)38 b(instructions)f Fb(fetch)p -Fu(-)p Fs(x)48 b Fu(and)38 b Fb(store)p Fu(-)p Fs(x)48 -b Fu(are)37 b(replaced)h(b)m(y)g(instructions)f Fb(get)p -Fu(-)p Fs(n)244 1237 y Fu(and)c Fb(put)p Fu(-)p Fs(n)38 -b Fu(where)c Fs(n)40 b Fu(is)32 b(a)g(natural)g(n)m(um)m(b)s(er)h(\(an) -f(address\).)0 1406 y(Sp)s(ecify)37 b(the)h(op)s(erational)c(seman)m -(tics)j(of)g(the)g(mac)m(hine.)56 b(Y)-8 b(ou)37 b(ma)m(y)g(write)g -Fs(m)7 b Fu([)p Fs(n)g Fu(])37 b(to)g(select)0 1527 y(the)30 -b Fo(n)p Fu(th)g(v)-5 b(alue)28 b(in)h(the)h(list)e Fs(m)36 -b Fu(\(when)31 b Fs(n)36 b Fu(is)29 b(p)s(ositiv)m(e)g(but)h(less)f -(than)h(or)f(equal)g(to)g(the)h(length)0 1647 y(of)i -Fs(m)7 b Fu(\).)44 b(What)32 b(happ)s(ens)i(if)d(w)m(e)j(reference)g -(an)f(address)h(that)e(is)g(outside)h(the)g(memory?)104 -b Fh(2)0 1829 y Fw(Exercise)36 b(3.8)49 b Fu(The)37 b(next)h(step)f(is) -e(to)h(get)h(rid)e(of)h(the)g(op)s(erations)g Fb(branch)p -Fu(\()p Ft(\001)17 b(\001)g(\001)n Fu(,)p Ft(\001)g(\001)g(\001)n -Fu(\))36 b(and)0 1950 y Fb(loop)p Fu(\()p Ft(\001)17 -b(\001)g(\001)o Fu(,)p Ft(\001)g(\001)g(\001)n Fu(\).)79 -b(The)46 b(idea)e(is)g(to)g(in)m(tro)s(duce)g(instructions)h(for)f -Fs(de\014ning)g(lab)-5 b(els)52 b Fu(and)45 b(for)0 2070 -y Fs(jumping)32 b(to)i(lab)-5 b(els)p Fu(.)42 b(The)32 -b(abstract)f(mac)m(hine)f Fw(AM)1932 2085 y Fn(2)2002 -2070 y Fu(di\013ers)h(from)e Fw(AM)2710 2085 y Fn(1)2780 -2070 y Fu(\(of)i(Exercise)h(3.7\))0 2190 y(in)g(that)145 -2359 y Ft(\017)49 b Fu(the)27 b(con\014gurations)f(ha)m(v)m(e)h(the)g -(form)e Ft(h)p Fs(p)-5 b(c)6 b Fu(,)27 b Fs(c)6 b Fu(,)27 -b Fs(e)7 b Fu(,)28 b Fs(m)7 b Ft(i)26 b Fu(where)i Fs(c)6 -b Fu(,)27 b Fs(e)34 b Fu(and)26 b Fs(m)33 b Fu(are)27 -b(as)f(b)s(efore)244 2480 y(and)i Fs(p)-5 b(c)34 b Fu(is)28 -b(the)h(program)e(coun)m(ter)j(\(a)e(natural)f(n)m(um)m(b)s(er\))i(p)s -(oin)m(ting)e(to)h(an)g(instruction)244 2600 y(in)k Fs(c)6 -b Fu(,)32 b(and)145 2792 y Ft(\017)49 b Fu(the)38 b(instructions)f -Fb(branch)p Fu(\()p Ft(\001)17 b(\001)g(\001)n Fu(,)p -Ft(\001)g(\001)g(\001)o Fu(\))37 b(and)h Fb(loop)p Fu(\()p -Ft(\001)17 b(\001)g(\001)n Fu(,)p Ft(\001)g(\001)g(\001)n -Fu(\))38 b(are)f(replaced)h(b)m(y)h(the)f(in-)244 2912 -y(structions)h Fb(label)p Fu(-)p Fs(l)10 b Fu(,)39 b -Fb(jump)p Fu(-)p Fs(l)49 b Fu(and)38 b Fb(jumpf)-9 b(alse)p -Fu(-)p Fs(l)48 b Fu(where)40 b Fs(l)49 b Fu(is)38 b(a)g(lab)s(el)e(\(a) -j(natural)244 3033 y(n)m(um)m(b)s(er\).)0 3201 y(The)31 -b(idea)f(is)f(that)h(w)m(e)h(will)d(execute)k(the)f(instruction)e(in)h -Fs(c)35 b Fu(that)30 b Fs(p)-5 b(c)36 b Fu(p)s(oin)m(ts)30 -b(to)f(and)i(in)e(most)0 3322 y(cases)41 b(this)e(will)e(cause)j(the)g -(program)e(coun)m(ter)i(to)f(b)s(e)h(incremen)m(ted)g(b)m(y)g(1.)63 -b(The)41 b(instruc-)0 3442 y(tion)32 b Fb(label)p Fu(-)p -Fs(l)42 b Fu(has)32 b(no)h(e\013ect)g(except)i(up)s(dating)c(the)i -(program)e(coun)m(ter.)45 b(The)33 b(instruction)0 3563 -y Fb(jump)p Fu(-)p Fs(l)53 b Fu(will)41 b(mo)m(v)m(e)j(the)f(program)f -(coun)m(ter)i(to)f(the)h(unique)f(instruction)g Fb(label)p -Fu(-)p Fs(l)52 b Fu(\(if)42 b(it)0 3683 y(exists\).)51 -b(The)36 b(instruction)d Fb(jumpf)-9 b(alse)p Fu(-)p -Fs(l)45 b Fu(will)33 b(only)h(mo)m(v)m(e)h(the)g(program)f(coun)m(ter)i -(to)e(the)0 3803 y(instruction)j Fb(label)p Fu(-)p Fs(l)48 -b Fu(if)37 b(the)i(v)-5 b(alue)38 b(on)g(top)g(of)g(the)h(stac)m(k)h -(is)e Fw(\013)p Fu(;)j(if)c(it)h(is)g Fw(tt)f Fu(the)i(program)0 -3924 y(coun)m(ter)34 b(will)c(b)s(e)j(incremen)m(ted)g(b)m(y)g(1.)146 -4044 y(Sp)s(ecify)42 b(an)f(op)s(erational)e(seman)m(tics)i(for)g -Fw(AM)1959 4059 y Fn(2)1999 4044 y Fu(.)69 b(Y)-8 b(ou)42 -b(ma)m(y)f(write)g Fs(c)6 b Fu([)p Fs(p)-5 b(c)6 b Fu(])40 -b(for)h(the)h(in-)0 4164 y(struction)h(in)g Fs(c)49 b -Fu(p)s(oin)m(ted)43 b(to)g(b)m(y)i Fs(p)-5 b(c)49 b Fu(\(if)42 -b Fs(p)-5 b(c)49 b Fu(is)43 b(p)s(ositiv)m(e)f(and)i(less)g(than)f(or)h -(equal)f(to)g(the)0 4285 y(length)32 b(of)g Fs(c)6 b -Fu(\).)43 b(What)33 b(happ)s(ens)g(if)f(the)h(same)f(lab)s(el)f(is)h -(de\014ned)i(more)e(than)h(once?)295 b Fh(2)0 4467 y -Fw(Exercise)36 b(3.9)49 b Fu(Finally)-8 b(,)32 b(w)m(e)j(shall)e -(consider)h(an)h(abstract)f(mac)m(hine)g Fw(AM)2838 4482 -y Fn(3)2911 4467 y Fu(where)h(the)g(la-)0 4587 y(b)s(els)f(of)h(the)g -(instructions)f Fb(jump)p Fu(-)p Fs(l)45 b Fu(and)35 -b Fb(jumpf)-9 b(alse)p Fu(-)p Fs(l)44 b Fu(of)34 b(Exercise)i(3.8)f -(are)f Fs(absolute)j(ad-)0 4708 y(dr)-5 b(esses)p Fu(;)32 -b(so)g Fb(jump)p Fu(-7)g(means)g(jump)g(to)g(the)h(7th)f(instruction)g -(of)g(the)g(co)s(de)h(\(rather)f(than)h(to)0 4828 y(the)26 -b(instruction)f Fb(label)p Fu(-7\).)41 b(Sp)s(ecify)26 -b(the)g(op)s(erational)e(seman)m(tics)i(of)f(the)i(mac)m(hine.)40 -b(What)0 4949 y(happ)s(ens)34 b(if)d(w)m(e)j(jump)e(to)g(an)g -(instruction)g(that)g(is)h(not)f(in)g(the)h(co)s(de?)779 -b Fh(2)0 5275 y Fj(3.2)161 b(Sp)t(eci\014cation)53 b(of)h(the)f -(translation)0 5494 y Fu(W)-8 b(e)33 b(shall)e(no)m(w)i(study)h(ho)m(w) -f(to)g(generate)g(co)s(de)g(for)f(the)h(abstract)g(mac)m(hine.)p -eop -%%Page: 70 80 -70 79 bop 251 130 a Fw(70)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 283 -515 a Fp(Expressions)283 700 y Fu(Arithmetic)g(and)h(b)s(o)s(olean)f -(expressions)j(will)c(b)s(e)i(ev)-5 b(aluated)38 b(on)g(the)h(ev)-5 -b(aluation)36 b(stac)m(k)j(of)283 820 y(the)d(mac)m(hine)e(and)g(the)i -(co)s(de)e(to)h(b)s(e)g(generated)g(m)m(ust)g(e\013ect)g(this.)50 -b(This)35 b(is)f(accomplished)283 941 y(b)m(y)g(the)f(\(total\))e -(functions)527 1124 y Ft(C)6 b(A)p Fu(:)44 b Fw(Aexp)32 -b Ft(!)g Fw(Co)s(de)283 1308 y Fu(and)527 1491 y Ft(C)6 -b(B)t Fu(:)44 b Fw(Bexp)32 b Ft(!)g Fw(Co)s(de)283 1674 -y Fu(sp)s(eci\014ed)27 b(in)f(T)-8 b(able)26 b(3.2.)41 -b(Note)26 b(that)g(the)g(co)s(de)h(generated)g(for)e(binary)h -(expressions)i(consists)p 283 1800 V 283 3694 4 1894 -v 715 1909 a Ft(C)6 b(A)p Fu([)-17 b([)q Fs(n)7 b Fu(])-17 -b(])361 b(=)100 b Fb(push)p Fu(-)p Fs(n)715 2077 y Ft(C)6 -b(A)p Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])366 b(=)100 -b Fb(fetch)p Fu(-)p Fs(x)715 2245 y Ft(C)6 b(A)p Fu([)-17 -b([)q Fs(a)948 2260 y Fn(1)987 2245 y Fu(+)p Fs(a)1120 -2260 y Fn(2)1160 2245 y Fu(])g(])154 b(=)100 b Ft(C)6 -b(A)p Fu([)-17 b([)p Fs(a)1759 2260 y Fn(2)1799 2245 -y Fu(])g(]:)p Ft(C)6 b(A)p Fu([)-17 b([)q Fs(a)2096 2260 -y Fn(1)2136 2245 y Fu(])g(]:)p Fb(add)715 2412 y Ft(C)6 -b(A)p Fu([)-17 b([)q Fs(a)948 2427 y Fn(1)1020 2412 y -Fo(?)32 b Fs(a)1158 2427 y Fn(2)1198 2412 y Fu(])-17 -b(])116 b(=)100 b Ft(C)6 b(A)p Fu([)-17 b([)p Fs(a)1759 -2427 y Fn(2)1799 2412 y Fu(])g(]:)p Ft(C)6 b(A)p Fu([)-17 -b([)q Fs(a)2096 2427 y Fn(1)2136 2412 y Fu(])g(]:)p Fb(mul)-7 -b(t)715 2580 y Ft(C)6 b(A)p Fu([)-17 b([)q Fs(a)948 2595 -y Fn(1)987 2580 y Ft(\000)p Fs(a)1121 2595 y Fn(2)1162 -2580 y Fu(])g(])152 b(=)100 b Ft(C)6 b(A)p Fu([)-17 b([)p -Fs(a)1759 2595 y Fn(2)1799 2580 y Fu(])g(]:)p Ft(C)6 -b(A)p Fu([)-17 b([)q Fs(a)2096 2595 y Fn(1)2136 2580 -y Fu(])g(]:)p Fb(sub)715 2795 y Ft(C)6 b(B)t Fu([)-17 -b([)q Fr(true)p Fu(])g(])230 b(=)100 b Fb(tr)n(ue)715 -2962 y Ft(C)6 b(B)t Fu([)-17 b([)q Fr(false)p Fu(])g(])179 -b(=)100 b Fb(f)-9 b(alse)715 3130 y Ft(C)6 b(B)t Fu([)-17 -b([)q Fs(a)937 3145 y Fn(1)1009 3130 y Fu(=)32 b Fs(a)1174 -3145 y Fn(2)1214 3130 y Fu(])-17 b(])100 b(=)g Ft(C)6 -b(A)p Fu([)-17 b([)p Fs(a)1759 3145 y Fn(2)1799 3130 -y Fu(])g(]:)p Ft(C)6 b(A)p Fu([)-17 b([)q Fs(a)2096 3145 -y Fn(1)2136 3130 y Fu(])g(]:)p Fb(eq)715 3298 y Ft(C)6 -b(B)t Fu([)-17 b([)q Fs(a)937 3313 y Fn(1)976 3298 y -Ft(\024)q Fs(a)1111 3313 y Fn(2)1151 3298 y Fu(])g(])163 -b(=)100 b Ft(C)6 b(A)p Fu([)-17 b([)p Fs(a)1759 3313 -y Fn(2)1799 3298 y Fu(])g(]:)p Ft(C)6 b(A)p Fu([)-17 -b([)q Fs(a)2096 3313 y Fn(1)2136 3298 y Fu(])g(]:)p Fb(le)715 -3465 y Ft(C)6 b(B)t Fu([)-17 b([)q Ft(:)p Fs(b)6 b Fu(])-17 -b(])317 b(=)100 b Ft(C)6 b(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])q(:)p Fb(neg)715 3633 y Ft(C)6 b(B)t Fu([)-17 -b([)q Fs(b)931 3648 y Fn(1)970 3633 y Ft(^)p Fs(b)1087 -3648 y Fn(2)1127 3633 y Fu(])g(])187 b(=)100 b Ft(C)6 -b(B)s Fu([)-17 b([)q Fs(b)1742 3648 y Fn(2)1781 3633 -y Fu(])g(])q(:)p Ft(C)6 b(B)t Fu([)-17 b([)p Fs(b)2061 -3648 y Fn(1)2101 3633 y Fu(])g(]:)p Fb(and)p 3753 3694 -V 283 3697 3473 4 v 1235 3858 a Fu(T)-8 b(able)33 b(3.2:)43 -b(T)-8 b(ranslation)31 b(of)h(expressions)283 4081 y(of)45 -b(the)f(co)s(de)h(for)f(the)h Fs(right)54 b Fu(argumen)m(t)44 -b(follo)m(w)m(ed)g(b)m(y)h(that)g(for)f(the)h Fs(left)54 -b Fu(argumen)m(t)44 b(and)283 4201 y(\014nally)j(the)h(appropriate)f -(instruction)f(for)h(the)h(op)s(erator.)88 b(In)48 b(this)g(w)m(a)m(y)g -(it)f(is)g(ensured)283 4322 y(that)39 b(the)h(argumen)m(ts)f(app)s(ear) -g(on)g(the)g(ev)-5 b(aluation)38 b(stac)m(k)i(in)e(the)i(order)f -(required)g(b)m(y)h(the)283 4442 y(instructions)33 b(\(in)e(T)-8 -b(able)33 b(3.1\).)43 b(Note)32 b(that)h Ft(C)6 b(A)32 -b Fu(and)h Ft(C)6 b(B)36 b Fu(are)d(de\014ned)h(comp)s(ositionally)-8 -b(.)283 4644 y Fw(Example)37 b(3.10)49 b Fu(F)-8 b(or)38 -b(the)i(arithmetic)d(expression)j Fr(x)p Fu(+)p Fr(1)g -Fu(w)m(e)g(calculate)e(the)i(co)s(de)f(as)h(fol-)283 -4764 y(lo)m(ws:)552 4932 y Ft(C)6 b(A)p Fu([)-17 b([)q -Fr(x)p Fu(+)p Fr(1)p Fu(])g(])33 b(=)g Ft(C)6 b(A)o Fu([)-17 -b([)q Fr(1)p Fu(])g(])q(:)p Ft(C)6 b(A)p Fu([)-17 b([)p -Fr(x)p Fu(])g(])q(:)p Fb(add)33 b Fu(=)g Fb(push)p Fu(-)p -Fr(1)p Fu(:)p Fb(fetch)p Fu(-)p Fs(x)12 b Fu(:)p Fb(add)762 -b Fh(2)283 5133 y Fw(Exercise)37 b(3.11)49 b Fu(It)26 -b(is)g(clear)f(that)h Ft(A)p Fu([)-17 b([\()p Fs(a)1809 -5148 y Fn(1)1849 5133 y Fu(+)p Fs(a)1982 5148 y Fn(2)2022 -5133 y Fu(\)+)p Fs(a)2193 5148 y Fn(3)2232 5133 y Fu(])g(])27 -b(equals)f Ft(A)p Fu([)-17 b([)p Fs(a)2759 5148 y Fn(1)2799 -5133 y Fu(+\()p Fs(a)2970 5148 y Fn(2)3010 5133 y Fu(+)p -Fs(a)3143 5148 y Fn(3)3182 5133 y Fu(\)])g(])q(.)41 b(Sho)m(w)27 -b(that)283 5254 y(it)43 b(is)g Fs(not)53 b Fu(the)45 -b(case)f(that)g Ft(C)6 b(A)o Fu([)-17 b([)q(\()p Fs(a)1581 -5269 y Fn(1)1621 5254 y Fu(+)p Fs(a)1754 5269 y Fn(2)1793 -5254 y Fu(\)+)p Fs(a)1964 5269 y Fn(3)2004 5254 y Fu(])g(])44 -b(equals)g Ft(C)6 b(A)p Fu([)-17 b([)p Fs(a)2624 5269 -y Fn(1)2664 5254 y Fu(+\()p Fs(a)2835 5269 y Fn(2)2875 -5254 y Fu(+)p Fs(a)3008 5269 y Fn(3)3047 5254 y Fu(\)])g(])q(.)76 -b(Nonetheless,)283 5374 y(sho)m(w)31 b(that)e Ft(C)6 -b(A)o Fu([)-17 b([)q(\()p Fs(a)1000 5389 y Fn(1)1040 -5374 y Fu(+)p Fs(a)1173 5389 y Fn(2)1212 5374 y Fu(\)+)p -Fs(a)1383 5389 y Fn(3)1423 5374 y Fu(])g(])29 b(and)h -Ft(C)6 b(A)o Fu([)-17 b([)q Fs(a)1908 5389 y Fn(1)1948 -5374 y Fu(+\()p Fs(a)2119 5389 y Fn(2)2158 5374 y Fu(+)p -Fs(a)2291 5389 y Fn(3)2331 5374 y Fu(\)])g(])29 b(do)g(in)g(fact)g -Fs(b)-5 b(ehave)35 b Fu(similar)26 b(to)j(one)283 5494 -y(another.)3046 b Fh(2)p eop -%%Page: 71 81 -71 80 bop 0 130 a Fw(3.2)112 b(Sp)s(eci\014cation)37 -b(of)h(the)f(translation)1596 b(71)p 0 193 3473 4 v 0 -515 a Fp(Statemen)l(ts)0 700 y Fu(The)38 b(translation)e(of)h(statemen) -m(ts)h(in)m(to)f(abstract)h(mac)m(hine)f(co)s(de)g(is)g(giv)m(en)h(b)m -(y)g(the)g(\(total\))0 820 y(function)244 1012 y Ft(C)6 -b(S)i Fu(:)43 b Fw(Stm)32 b Ft(!)g Fw(Co)s(de)0 1204 -y Fu(sp)s(eci\014ed)i(in)e(T)-8 b(able)33 b(3.3.)44 b(The)34 -b(co)s(de)g(generated)g(for)e(an)h(arithmetic)e(expression)j -Fs(a)40 b Fu(ensures)p 0 1336 V 0 2176 4 841 v 432 1445 -a Ft(C)6 b(S)i Fu([)-17 b([)q Fs(x)44 b Fu(:=)32 b Fs(a)7 -b Fu(])-17 b(])757 b(=)100 b Ft(C)6 b(A)p Fu([)-17 b([)p -Fs(a)7 b Fu(])-17 b(])q(:)p Fb(store)p Fu(-)p Fs(x)432 -1612 y Ft(C)6 b(S)i Fu([)-17 b([)q Fr(skip)p Fu(])g(])834 -b(=)100 b Fb(noop)432 1780 y Ft(C)6 b(S)i Fu([)-17 b([)q -Fs(S)663 1795 y Fn(1)702 1780 y Fu(;)p Fs(S)796 1795 -y Fn(2)835 1780 y Fu(])g(])799 b(=)100 b Ft(C)6 b(S)i -Fu([)-17 b([)q Fs(S)2078 1795 y Fn(1)2117 1780 y Fu(])g(]:)p -Ft(C)6 b(S)j Fu([)-17 b([)p Fs(S)2412 1795 y Fn(2)2452 -1780 y Fu(])g(])432 1948 y Ft(C)6 b(S)i Fu([)-17 b([)q -Fr(if)33 b Fs(b)38 b Fr(then)c Fs(S)1119 1963 y Fn(1)1190 -1948 y Fr(else)g Fs(S)1495 1963 y Fn(2)1534 1948 y Fu(])-17 -b(])100 b(=)g Ft(C)6 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(:)p Fb(branch)p Fu(\()p Ft(C)6 b(S)i Fu([)-17 b([)p -Fs(S)2755 1963 y Fn(1)2795 1948 y Fu(])g(],)p Ft(C)6 -b(S)j Fu([)-17 b([)p Fs(S)3090 1963 y Fn(2)3129 1948 -y Fu(])g(])q(\))432 2115 y Ft(C)6 b(S)i Fu([)-17 b([)q -Fr(while)33 b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])464 b(=)100 b Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)p Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]\))p 3469 2176 V 0 2179 3473 -4 v 742 2340 a(T)-8 b(able)32 b(3.3:)43 b(T)-8 b(ranslation)31 -b(of)h(statemen)m(ts)i(in)d Fw(While)0 2550 y Fu(that)45 -b(the)h(v)-5 b(alue)45 b(of)g(the)h(expression)h(is)e(on)g(top)h(of)f -(the)g(ev)-5 b(aluation)44 b(stac)m(k)j(when)g(it)d(has)0 -2670 y(b)s(een)e(computed.)70 b(So)41 b(in)f(the)i(co)s(de)f(for)g -Fs(x)53 b Fu(:=)41 b Fs(a)49 b Fu(it)40 b(su\016ces)j(to)e(app)s(end)h -(the)f(co)s(de)h(for)f Fs(a)0 2790 y Fu(with)g(the)g(instruction)f -Fb(store)p Fu(-)p Fs(x)12 b Fu(.)67 b(This)41 b(instruction)f(assigns)h -Fs(x)53 b Fu(the)41 b(appropriate)f(v)-5 b(alue)0 2911 -y(and)36 b(additionally)d(p)s(ops)j(the)h(stac)m(k.)55 -b(F)-8 b(or)36 b(the)g Fr(skip)p Fu(-statemen)m(t)h(w)m(e)g(generate)g -(the)g Fb(noop)p Fu(-)0 3031 y(instruction.)42 b(F)-8 -b(or)30 b(sequencing)j(of)d(statemen)m(ts)i(w)m(e)h(just)e(concatenate) -h(the)g(t)m(w)m(o)f(instruction)0 3152 y(sequences.)73 -b(When)42 b(generating)f(co)s(de)h(for)f(the)h(conditional,)f(the)g(co) -s(de)h(for)f(the)h(b)s(o)s(olean)0 3272 y(expression)d(will)c(ensure)k -(that)f(a)f(truth)h(v)-5 b(alue)37 b(will)e(b)s(e)j(placed)f(on)h(top)f -(of)g(the)h(ev)-5 b(aluation)0 3392 y(stac)m(k)48 b(and)g(the)f -Fb(branch)p Fu(-instruction)f(will)f(then)i(insp)s(ect)h(\(and)f(p)s -(op\))g(that)g(v)-5 b(alue)46 b(and)0 3513 y(select)28 -b(the)g(appropriate)e(piece)i(of)f(co)s(de.)42 b(Finally)-8 -b(,)26 b(the)h(co)s(de)h(for)f(the)h Fr(while)p Fu(-construct)h(uses)0 -3633 y(the)38 b Fb(loop)p Fu(-instruction.)56 b(Again)35 -b(w)m(e)k(ma)m(y)d(note)i(that)f Ft(C)6 b(S)45 b Fu(is)36 -b(de\014ned)j(in)d(a)h(comp)s(ositional)0 3754 y(manner.)0 -3966 y Fw(Example)g(3.12)49 b Fu(The)33 b(co)s(de)f(generated)h(for)f -(the)g(factorial)e(statemen)m(t)j(considered)g(earlier)0 -4087 y(is)f(as)h(follo)m(ws:)244 4279 y Ft(C)6 b(S)i -Fu([)-17 b([)q Fr(y)p Fu(:=)p Fr(1)p Fu(;)33 b Fr(while)g -Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p -Fr(y)p Fu(:=)p Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(\)])-17 b(])370 4446 y(=)32 -b Ft(C)6 b(S)i Fu([)-17 b([)q Fr(y)p Fu(:=)p Fr(1)p Fu(])g(])q(:)p -Ft(C)6 b(S)i Fu([)-17 b([)q Fr(while)34 b Ft(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])370 4614 y(=)32 b Ft(C)6 b(A)p -Fu([)-17 b([)q(1])g(]:)p Fb(store)p Fu(-)p Fr(y)p Fu(:)p -Fb(loop)p Fu(\()p Ft(C)6 b(B)s Fu([)-17 b([)q Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])q(,)p Ft(C)6 -b(S)j Fu([)-17 b([)p Fr(y)p Fu(:=)p Fr(y)33 b Fo(?)f -Fr(x)p Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p -Fu(])-17 b(])r(\))370 4782 y(=)32 b Fb(push)p Fu(-)p -Fr(1)p Fu(:)p Fb(store)p Fu(-)p Fr(y)p Fu(:)p Fb(loop)p -Fu(\()p Ft(C)6 b(B)s Fu([)-17 b([)p Fr(x)p Fu(=)p Fr(1)p -Fu(])g(])q(:)p Fb(neg)p Fu(,)p Ft(C)6 b(S)i Fu([)-17 -b([)q Fr(y)p Fu(:=)p Fr(y)33 b Fo(?)f Fr(x)p Fu(])-17 -b(])q(:)p Ft(C)6 b(S)i Fu([)-17 b([)q Fr(x)p Fu(:=)p -Fr(x)p Ft(\000)p Fr(1)p Fu(])g(])r(\))370 4925 y(.)370 -4958 y(.)370 4991 y(.)370 5159 y(=)32 b Fb(push)p Fu(-)p -Fr(1)p Fu(:)p Fb(store)p Fu(-)p Fr(y)p Fu(:)p Fb(loop)p -Fu(\()p Fb(push)p Fu(-)p Fr(1)p Fu(:)p Fb(fetch)p Fu(-)p -Fr(x)p Fu(:)p Fb(eq)p Fu(:)p Fb(neg)p Fu(,)1478 5326 -y Fb(fetch)p Fu(-)p Fr(x)p Fu(:)p Fb(fetch)p Fu(-)p Fr(y)p -Fu(:)p Fb(mul)-7 b(t)p Fu(:)p Fb(store)p Fu(-)p Fr(y)p -Fu(:)1654 5494 y Fb(push)p Fu(-)p Fr(1)p Fu(:)p Fb(fetch)p -Fu(-)p Fr(x)p Fu(:)p Fb(sub)p Fu(:)p Fb(store)p Fu(-)p -Fr(x)p Fu(\))412 b Fh(2)p eop -%%Page: 72 82 -72 81 bop 251 130 a Fw(72)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 283 -515 a(Exercise)g(3.13)49 b Fu(Use)33 b Ft(C)6 b(S)41 -b Fu(to)32 b(generate)h(co)s(de)g(for)f(the)h(statemen)m(t)527 -727 y Fr(z)p Fu(:=)p Fr(0)p Fu(;)g Fr(while)h(y)p Ft(\024)q -Fr(x)f(do)g Fu(\()p Fr(z)p Fu(:=)p Fr(z)p Fu(+)p Fr(1)p -Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(y)p Fu(\))283 -939 y(T)-8 b(race)41 b(the)e(computation)f(of)h(the)h(co)s(de)g -(starting)e(from)g(a)h(storage)h(where)g Fr(x)g Fu(is)f -Fw(17)g Fu(and)h Fr(y)283 1059 y Fu(is)33 b Fw(5)p Fu(.)3216 -b Fh(2)283 1300 y Fw(Exercise)37 b(3.14)49 b Fu(Extend)34 -b Fw(While)e Fu(with)h(the)h(construct)g Fr(repeat)h -Fs(S)45 b Fr(until)34 b Fs(b)39 b Fu(and)33 b(sp)s(ecify)283 -1420 y(ho)m(w)h(to)e(generate)h(co)s(de)f(for)g(it.)43 -b(Note)32 b(that)g(the)h(de\014nition)e(has)i(to)f(b)s(e)h(comp)s -(ositional)c(and)283 1540 y(that)k(it)e(is)h Fs(not)42 -b Fu(necessary)35 b(to)e(extend)h(the)f(instruction)e(set)j(of)e(the)h -(abstract)g(mac)m(hine.)93 b Fh(2)283 1780 y Fw(Exercise)37 -b(3.15)49 b Fu(Extend)42 b Fw(While)c Fu(with)j(the)f(construct)i -Fr(for)f Fs(x)52 b Fu(:=)41 b Fs(a)2989 1795 y Fn(1)3069 -1780 y Fr(to)g Fs(a)3269 1795 y Fn(2)3349 1780 y Fr(do)g -Fs(S)52 b Fu(and)283 1901 y(sp)s(ecify)38 b(ho)m(w)h(to)e(generate)h -(co)s(de)g(for)f(it.)57 b(As)38 b(in)f(Exercise)i(3.14)e(the)h -(de\014nition)f(has)g(to)h(b)s(e)283 2021 y(comp)s(ositional)26 -b(but)j(y)m(ou)g(ma)m(y)g(ha)m(v)m(e)h(to)f(in)m(tro)s(duce)f(an)h -(instruction)f Fb(copy)h Fu(that)f(duplicates)283 2142 -y(the)33 b(elemen)m(t)g(on)f(top)h(of)f(the)h(ev)-5 b(aluation)31 -b(stac)m(k.)1569 b Fh(2)283 2441 y Fp(The)45 b(seman)l(tic)h(function)f -FC(S)1723 2459 y Fk(am)283 2629 y Fu(The)e(meaning)d(of)i(a)f(statemen) -m(t)h Fs(S)54 b Fu(can)42 b(no)m(w)g(b)s(e)g(obtained)f(b)m(y)i -(\014rst)f(translating)e(it)h(in)m(to)283 2749 y(co)s(de)33 -b(for)f Fw(AM)g Fu(and)h(next)g(executing)g(the)g(co)s(de)f(on)h(the)f -(abstract)h(mac)m(hine.)43 b(The)33 b(e\013ect)g(of)283 -2870 y(this)g(is)f(expressed)j(b)m(y)f(the)f(function)527 -3082 y Ft(S)595 3097 y Fn(am)693 3082 y Fu(:)44 b Fw(Stm)32 -b Ft(!)g Fu(\()p Fw(State)g Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(\))283 3294 y(de\014ned)h(b)m(y)527 3505 y Ft(S)595 -3520 y Fn(am)693 3505 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])33 b(=)f(\()p Ft(M)g(\016)h(C)6 b(S)i Fu(\)[)-17 -b([)p Fs(S)12 b Fu(])-17 b(])283 3747 y Fw(Exercise)37 -b(3.16)49 b Fu(Mo)s(dify)27 b(the)h(co)s(de)g(generation)f(so)h(as)g -(to)f(translate)g Fw(While)f Fu(in)m(to)h(co)s(de)h(for)283 -3868 y(the)40 b(abstract)f(mac)m(hine)g Fw(AM)1424 3883 -y Fn(1)1502 3868 y Fu(of)g(Exercise)h(3.7.)63 b(Y)-8 -b(ou)39 b(ma)m(y)g(assume)g(the)h(existence)h(of)d(a)283 -3988 y(function)527 4200 y Fs(env)11 b Fu(:)43 b Fw(V)-9 -b(ar)32 b Ft(!)g Fw(N)283 4412 y Fu(that)f(maps)g(v)-5 -b(ariables)30 b(to)g(their)h(addresses.)45 b(Apply)31 -b(the)h(co)s(de)f(generation)f(function)h(to)f(the)283 -4532 y(factorial)e(statemen)m(t)j(of)e(Exercise)j(1.1)e(and)g(execute)i -(the)f(co)s(de)f(so)g(obtained)g(starting)f(from)283 -4652 y(a)k(memory)e(where)j Fr(x)f Fu(is)f Fw(3)p Fu(.)2393 -b Fh(2)283 4893 y Fw(Exercise)37 b(3.17)49 b Fu(Mo)s(dify)27 -b(the)h(co)s(de)g(generation)f(so)h(as)g(to)f(translate)g -Fw(While)f Fu(in)m(to)h(co)s(de)h(for)283 5013 y(the)36 -b(abstract)f(mac)m(hine)f Fw(AM)1411 5028 y Fn(2)1486 -5013 y Fu(of)g(Exercise)i(3.8.)50 b(Be)35 b(careful)g(to)f(generate)i -(unique)f(lab)s(els,)283 5133 y(for)e(example)f(b)m(y)i(ha)m(ving)f -(\\the)g(next)h(un)m(used)h(lab)s(el")c(as)i(an)g(additional)d -(parameter)j(to)f(the)283 5254 y(co)s(de)44 b(generation)f(functions.) -76 b(Apply)44 b(the)g(co)s(de)g(generation)e(function)h(to)g(the)h -(factorial)283 5374 y(statemen)m(t)34 b(and)f(execute)i(the)f(co)s(de)g -(so)f(obtained)g(starting)f(from)g(a)g(memory)h(where)h -Fr(x)f Fu(has)283 5494 y(the)g(v)-5 b(alue)32 b Fw(3)p -Fu(.)2895 b Fh(2)p eop -%%Page: 73 83 -73 82 bop 0 130 a Fw(3.3)112 b(Correctness)2530 b(73)p -0 193 3473 4 v 0 515 a Fj(3.3)161 b(Correctness)0 734 -y Fu(The)33 b(correctness)g(of)f(the)g(implemen)m(tation)c(amoun)m(ts)k -(to)f(sho)m(wing)h(that,)g(if)f(w)m(e)h(\014rst)h(trans-)0 -855 y(late)42 b(a)i(statemen)m(t)f(in)m(to)g(co)s(de)h(for)e -Fw(AM)i Fu(and)f(then)h(execute)h(that)e(co)s(de,)k(then)d(w)m(e)g(m)m -(ust)0 975 y(obtain)31 b(the)i(same)g(result)f(as)h(sp)s(eci\014ed)h(b) -m(y)f(the)g(op)s(erational)d(seman)m(tics)j(of)f Fw(While)p -Fu(.)0 1263 y Fp(Expressions)0 1447 y Fu(The)40 b(correctness)i(of)d -(the)g(implemen)m(tation)d(of)j(arithmetic)e(expressions)42 -b(is)c(expressed)k(b)m(y)0 1568 y(the)33 b(follo)m(wing)d(lemma:)p -0 1688 3473 5 v 0 1854 a Fw(Lemma)37 b(3.18)49 b Fu(F)-8 -b(or)32 b(all)e(arithmetic)h(expressions)j Fs(a)40 b -Fu(w)m(e)34 b(ha)m(v)m(e)244 2049 y Ft(hC)6 b(A)o Fu([)-17 -b([)q Fs(a)7 b Fu(])-17 b(])q(,)32 b Fo(")p Fu(,)h Fs(s)8 -b Ft(i)32 b Fh(\003)915 2013 y Fi(\003)987 2049 y Ft(h)o -Fo(")p Fu(,)h Ft(A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q Fs(s)8 b Fu(,)32 b Fs(s)8 b Ft(i)0 2244 y Fu(F)-8 -b(urthermore,)51 b(all)45 b(in)m(termediate)h(con\014gurations)h(of)g -(this)h(computation)e(sequence)k(will)0 2365 y(ha)m(v)m(e)34 -b(a)e(non-empt)m(y)h(ev)-5 b(aluation)31 b(stac)m(k.)p -0 2485 V 0 2680 a Fw(Pro)s(of:)40 b Fu(The)d(pro)s(of)d(is)h(b)m(y)h -(structural)g(induction)e(on)h Fs(a)7 b Fu(.)52 b(Belo)m(w)36 -b(w)m(e)g(shall)e(giv)m(e)h(the)h(pro)s(of)0 2800 y(for)c(three)h -(illustrativ)m(e)e(cases,)j(lea)m(ving)d(the)i(remaining)d(ones)k(as)f -(an)f(exercise.)0 2968 y Fw(The)h(case)g Fs(n)7 b Fu(:)44 -b(W)-8 b(e)33 b(ha)m(v)m(e)h Ft(C)6 b(A)o Fu([)-17 b([)q -Fs(n)7 b Fu(])-17 b(])33 b(=)g Fb(push)p Fu(-)p Fs(n)38 -b Fu(and)33 b(from)e(T)-8 b(able)33 b(3.1)f(w)m(e)h(get)244 -3163 y Ft(h)p Fb(push)p Fu(-)p Fs(n)7 b Fu(,)31 b Fo(")p -Fu(,)i Fs(s)8 b Ft(i)32 b Fh(\003)h Ft(h)p Fo(")o Fu(,)g -Ft(N)14 b Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])q(,)32 -b Fs(s)8 b Ft(i)0 3358 y Fu(Since)33 b Ft(A)o Fu([)-17 -b([)q Fs(n)7 b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 b Ft(N)14 -b Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])33 b(\(see)h(T)-8 -b(able)32 b(1.1\))g(w)m(e)i(ha)m(v)m(e)g(completed)e(the)h(pro)s(of)e -(in)h(this)g(case.)0 3526 y Fw(The)h(case)g Fs(x)12 b -Fu(:)43 b(W)-8 b(e)33 b(ha)m(v)m(e)h Ft(C)6 b(A)p Fu([)-17 -b([)q Fs(x)12 b Fu(])-17 b(])32 b(=)h Fb(fetch)p Fu(-)p -Fs(x)44 b Fu(and)32 b(from)g(T)-8 b(able)32 b(3.1)g(w)m(e)i(get)244 -3721 y Ft(h)p Fb(fetch)p Fu(-)p Fs(x)12 b Fu(,)31 b Fo(")p -Fu(,)i Fs(s)8 b Ft(i)32 b Fh(\003)h Ft(h)p Fo(")o Fu(,)g(\()p -Fs(s)41 b(x)12 b Fu(\),)32 b Fs(s)8 b Ft(i)0 3916 y Fu(Since)33 -b Ft(A)o Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fs(s)41 b(x)j Fu(this)32 b(is)g(the)h(required)h(result.)0 -4083 y Fw(The)44 b(case)g Fs(a)535 4098 y Fn(1)574 4083 -y Fu(+)p Fs(a)707 4098 y Fn(2)747 4083 y Fu(:)65 b(W)-8 -b(e)44 b(ha)m(v)m(e)g Ft(C)6 b(A)p Fu([)-17 b([)q Fs(a)1486 -4098 y Fn(1)1525 4083 y Fu(+)p Fs(a)1658 4098 y Fn(2)1698 -4083 y Fu(])g(])44 b(=)f Ft(C)6 b(A)p Fu([)-17 b([)q -Fs(a)2131 4098 y Fn(2)2170 4083 y Fu(])g(])q(:)p Ft(C)6 -b(A)p Fu([)-17 b([)p Fs(a)2467 4098 y Fn(1)2507 4083 -y Fu(])g(])q(:)p Fb(add)p Fu(.)76 b(The)44 b(induction)0 -4204 y(h)m(yp)s(othesis)34 b(applied)d(to)h Fs(a)998 -4219 y Fn(1)1071 4204 y Fu(and)g Fs(a)1317 4219 y Fn(2)1389 -4204 y Fu(giv)m(es)h(that)244 4399 y Ft(hC)6 b(A)o Fu([)-17 -b([)q Fs(a)515 4414 y Fn(1)555 4399 y Fu(])g(],)33 b -Fo(")p Fu(,)f Fs(s)8 b Ft(i)33 b Fh(\003)954 4363 y Fi(\003)1026 -4399 y Ft(h)p Fo(")o Fu(,)g Ft(A)p Fu([)-17 b([)p Fs(a)1344 -4414 y Fn(1)1384 4399 y Fu(])g(])p Fs(s)8 b Fu(,)33 b -Fs(s)8 b Ft(i)0 4594 y Fu(and)244 4789 y Ft(hC)e(A)o -Fu([)-17 b([)q Fs(a)515 4804 y Fn(2)555 4789 y Fu(])g(],)33 -b Fo(")p Fu(,)f Fs(s)8 b Ft(i)33 b Fh(\003)954 4753 y -Fi(\003)1026 4789 y Ft(h)p Fo(")o Fu(,)g Ft(A)p Fu([)-17 -b([)p Fs(a)1344 4804 y Fn(2)1384 4789 y Fu(])g(])p Fs(s)8 -b Fu(,)33 b Fs(s)8 b Ft(i)0 4984 y Fu(In)46 b(b)s(oth)f(cases)i(all)d -(in)m(termediate)g(con\014gurations)h(will)e(ha)m(v)m(e)k(a)e(non-empt) -m(y)h(ev)-5 b(aluation)0 5104 y(stac)m(k.)45 b(Using)32 -b(Exercise)i(3.4)e(w)m(e)i(get)e(that)244 5299 y Ft(hC)6 -b(A)o Fu([)-17 b([)q Fs(a)515 5314 y Fn(2)555 5299 y -Fu(])g(]:)p Ft(C)6 b(A)p Fu([)-17 b([)q Fs(a)852 5314 -y Fn(1)892 5299 y Fu(])g(]:)p Fb(add)p Fu(,)33 b Fo(")p -Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)1503 5263 y Fi(\003)1575 -5299 y Ft(hC)6 b(A)p Fu([)-17 b([)q Fs(a)1847 5314 y -Fn(1)1886 5299 y Fu(])g(])q(:)p Fb(add)p Fu(,)33 b Ft(A)p -Fu([)-17 b([)p Fs(a)2370 5314 y Fn(2)2410 5299 y Fu(])g(])p -Fs(s)8 b Fu(,)33 b Fs(s)8 b Ft(i)0 5494 y Fu(Applying)32 -b(the)h(exercise)h(once)f(more)f(w)m(e)h(get)g(that)p -eop -%%Page: 74 84 -74 83 bop 251 130 a Fw(74)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 527 -515 a Ft(hC)6 b(A)p Fu([)-17 b([)p Fs(a)798 530 y Fn(1)838 -515 y Fu(])g(])q(:)p Fb(add)p Fu(,)33 b Ft(A)p Fu([)-17 -b([)p Fs(a)1322 530 y Fn(2)1362 515 y Fu(])g(])p Fs(s)8 -b Fu(,)33 b Fs(s)8 b Ft(i)32 b Fh(\003)1704 479 y Fi(\003)1776 -515 y Ft(h)p Fb(add)p Fu(,)h(\()p Ft(A)o Fu([)-17 b([)q -Fs(a)2272 530 y Fn(1)2312 515 y Fu(])g(])p Fs(s)8 b Fu(\):\()p -Ft(A)p Fu([)-17 b([)p Fs(a)2674 530 y Fn(2)2714 515 y -Fu(])g(])q Fs(s)8 b Fu(\),)32 b Fs(s)8 b Ft(i)283 709 -y Fu(Using)33 b(the)g(transition)e(relation)f(for)i Fb(add)h -Fu(giv)m(en)g(in)f(T)-8 b(able)32 b(3.1)g(w)m(e)i(get)527 -903 y Ft(h)p Fb(add)p Fu(,)f(\()p Ft(A)p Fu([)-17 b([)p -Fs(a)1023 918 y Fn(1)1063 903 y Fu(])g(])q Fs(s)8 b Fu(\):\()p -Ft(A)o Fu([)-17 b([)q Fs(a)1426 918 y Fn(2)1465 903 y -Fu(])g(])q Fs(s)8 b Fu(\),)33 b Fs(s)8 b Ft(i)32 b Fh(\003)h -Ft(h)p Fo(")o Fu(,)g Ft(A)p Fu([)-17 b([)p Fs(a)2196 -918 y Fn(1)2236 903 y Fu(])g(])p Fs(s)8 b Fu(+)p Ft(A)p -Fu([)-17 b([)q Fs(a)2572 918 y Fn(2)2611 903 y Fu(])g(])q -Fs(s)8 b Fu(,)33 b Fs(s)8 b Ft(i)283 1097 y Fu(It)25 -b(is)e(easy)j(to)e(c)m(hec)m(k)i(that)e(all)e(in)m(termediate)h -(con\014gurations)h(ha)m(v)m(e)h(a)f(non-empt)m(y)h(ev)-5 -b(aluation)283 1217 y(stac)m(k.)45 b(Since)33 b Ft(A)o -Fu([)-17 b([)q Fs(a)1000 1232 y Fn(1)1040 1217 y Fu(+)p -Fs(a)1173 1232 y Fn(2)1212 1217 y Fu(])g(])q Fs(s)41 -b Fu(=)32 b Ft(A)o Fu([)-17 b([)q Fs(a)1613 1232 y Fn(1)1653 -1217 y Fu(])g(])p Fs(s)41 b Fu(+)32 b Ft(A)p Fu([)-17 -b([)p Fs(a)2053 1232 y Fn(2)2093 1217 y Fu(])g(])q Fs(s)40 -b Fu(w)m(e)34 b(ha)m(v)m(e)g(the)f(desired)g(result.)336 -b Fh(2)430 1421 y Fu(W)-8 b(e)33 b(ha)m(v)m(e)h(a)e(similar)d(result)k -(for)f(b)s(o)s(olean)f(expressions:)283 1636 y Fw(Exercise)37 -b(3.19)49 b(\(Essen)m(tial\))30 b Fu(Sho)m(w)k(that)e(for)g(all)e(b)s -(o)s(olean)h(expressions)k Fs(b)j Fu(w)m(e)c(ha)m(v)m(e)527 -1830 y Ft(hC)6 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(,)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)1181 -1794 y Fi(\003)1253 1830 y Ft(h)o Fo(")p Fu(,)h Ft(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)8 b Fu(,)33 -b Fs(s)8 b Ft(i)283 2024 y Fu(F)-8 b(urthermore,)48 b(sho)m(w)d(that)g -(all)d(in)m(termediate)i(con\014gurations)g(of)g(this)g(computation)g -(se-)283 2144 y(quence)35 b(will)30 b(ha)m(v)m(e)k(a)e(non-empt)m(y)h -(ev)-5 b(aluation)31 b(stac)m(k.)1385 b Fh(2)283 2432 -y Fp(Statemen)l(ts)283 2616 y Fu(When)42 b(form)m(ulating)c(the)j -(correctness)h(of)e(the)h(result)g(for)f(statemen)m(ts)i(w)m(e)f(ha)m -(v)m(e)h(a)e(c)m(hoice)283 2737 y(b)s(et)m(w)m(een)35 -b(using)429 2931 y Ft(\017)48 b Fu(the)33 b(natural)f(seman)m(tics,)h -(or)429 3131 y Ft(\017)48 b Fu(the)33 b(structural)g(op)s(erational)d -(seman)m(tics.)283 3325 y(Here)e(w)m(e)g(shall)d(use)j(the)f(natural)f -(seman)m(tics)h(but)g(in)f(the)i(next)f(section)g(w)m(e)h(sk)m(etc)m(h) -h(the)f(pro)s(of)283 3445 y(in)k(the)h(case)h(where)g(the)f(structural) -f(op)s(erational)e(seman)m(tics)j(is)f(used.)430 3565 -y(The)k(correctness)i(of)d(the)h(translation)d(of)i(statemen)m(ts)i(is) -e(expressed)j(b)m(y)f(the)f(follo)m(wing)283 3686 y(theorem:)p -283 3806 3473 5 v 283 3971 a Fw(Theorem)i(3.20)49 b Fu(F)-8 -b(or)31 b(ev)m(ery)k(statemen)m(t)e Fs(S)44 b Fu(of)32 -b Fw(While)f Fu(w)m(e)j(ha)m(v)m(e)g Ft(S)2863 3986 y -Fn(ns)2934 3971 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])33 -b(=)g Ft(S)3284 3986 y Fn(am)3383 3971 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])q(.)p 283 4091 V 430 4285 a(This)28 -b(theorem)g(relates)g(the)h(b)s(eha)m(viour)f(of)g(a)g(statemen)m(t)h -(under)g(the)g(natural)e(seman)m(tics)283 4406 y(with)47 -b(the)g(b)s(eha)m(viour)f(of)g(the)h(co)s(de)g(on)g(the)g(abstract)g -(mac)m(hine)f(under)h(its)f(op)s(erational)283 4526 y(seman)m(tics.)e -(In)33 b(analogy)e(with)i(Theorem)g(2.26)e(it)h(expresses)k(t)m(w)m(o)d -(prop)s(erties:)429 4720 y Ft(\017)48 b Fu(If)27 b(the)g(execution)g -(of)f Fs(S)38 b Fu(from)26 b(some)g(state)h(terminates)f(in)g(one)g(of) -h(the)f(seman)m(tics)h(then)527 4840 y(it)32 b(also)g(terminates)f(in)h -(the)h(other)g(and)g(the)g(resulting)e(states)j(will)c(b)s(e)j(equal.) -429 5040 y Ft(\017)48 b Fu(F)-8 b(urthermore,)39 b(if)e(the)i -(execution)g(of)f Fs(S)50 b Fu(from)37 b(some)h(state)g(lo)s(ops)f(in)h -(one)g(of)g(the)h(se-)527 5161 y(man)m(tics)32 b(then)h(it)f(will)e -(also)i(lo)s(op)f(in)h(the)h(other.)283 5355 y(The)d(theorem)e(is)f -(pro)m(v)m(ed)j(in)e(t)m(w)m(o)h(stages)f(as)h(expressed)i(b)m(y)e -(Lemmas)e(3.21)h(and)g(3.22)g(b)s(elo)m(w.)283 5475 y(W)-8 -b(e)33 b(shall)f(\014rst)h(pro)m(v)m(e:)p eop -%%Page: 75 85 -75 84 bop 0 130 a Fw(3.3)112 b(Correctness)2530 b(75)p -0 193 3473 4 v 0 515 3473 5 v 0 683 a(Lemma)37 b(3.21)49 -b Fu(F)-8 b(or)31 b(ev)m(ery)j(statemen)m(t)e Fs(S)44 -b Fu(of)32 b Fw(While)e Fu(and)i(states)h Fs(s)40 b Fu(and)32 -b Fs(s)2844 647 y Fi(0)2867 683 y Fu(,)g(w)m(e)h(ha)m(v)m(e)h(that)244 -880 y(if)d Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 -b(!)f Fs(s)798 843 y Fi(0)886 880 y Fu(then)i Ft(h)o(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 b Fo(")p -Fu(,)f Fs(s)8 b Ft(i)33 b Fh(\003)1777 843 y Fi(\003)1849 -880 y Ft(h)p Fo(")o Fu(,)g Fo(")p Fu(,)f Fs(s)2146 843 -y Fi(0)2170 880 y Ft(i)0 1076 y Fu(So)48 b(if)f(the)h(execution)h(of)e -Fs(S)60 b Fu(from)47 b Fs(s)56 b Fu(terminates)47 b(in)g(the)h(natural) -f(seman)m(tics)h(then)h(the)0 1197 y(execution)34 b(of)e(the)h(co)s(de) -g(for)g Fs(S)44 b Fu(from)32 b(storage)g Fs(s)41 b Fu(will)31 -b(terminate)g(and)i(the)h(resulting)d(states)0 1317 y(and)i(storages)g -(will)d(b)s(e)j(equal.)p 0 1437 V 0 1634 a Fw(Pro)s(of:)e -Fu(W)-8 b(e)27 b(pro)s(ceed)h(b)m(y)g(induction)e(on)g(the)i(shap)s(e)f -(of)g(the)g(deriv)-5 b(ation)25 b(tree)j(for)e Ft(h)p -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)o(!)p Fs(s)3422 1598 -y Fi(0)3445 1634 y Fu(.)0 1802 y Fw(The)33 b(case)g Fu([ass)608 -1817 y Fn(ns)680 1802 y Fu(]:)44 b(W)-8 b(e)33 b(assume)g(that)244 -1998 y Ft(h)p Fs(x)12 b Fu(:=)p Fs(a)7 b Fu(,)32 b Fs(s)8 -b Ft(i!)p Fs(s)794 1962 y Fi(0)0 2195 y Fu(where)34 b -Fs(s)330 2159 y Fi(0)353 2195 y Fu(=)p Fs(s)8 b Fu([)p -Fs(x)k Ft(7!A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q -Fs(s)8 b Fu(].)43 b(F)-8 b(rom)31 b(T)-8 b(able)33 b(3.3)f(w)m(e)h(ha)m -(v)m(e)244 2391 y Ft(C)6 b(S)i Fu([)-17 b([)q Fs(x)12 -b Fu(:=)p Fs(a)7 b Fu(])-17 b(])33 b(=)f Ft(C)6 b(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q(:)p Fb(store)p -Fu(-)p Fs(x)0 2588 y Fu(F)-8 b(rom)31 b(Lemma)g(3.18)h(applied)g(to)g -Fs(a)40 b Fu(w)m(e)33 b(get)244 2785 y Ft(hC)6 b(A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q(,)32 b Fo(")p -Fu(,)h Fs(s)8 b Ft(i)32 b Fh(\003)915 2749 y Fi(\003)987 -2785 y Ft(h)o Fo(")p Fu(,)h Ft(A)o Fu([)-17 b([)q Fs(a)7 -b Fu(])-17 b(])q Fs(s)8 b Fu(,)32 b Fs(s)8 b Ft(i)0 2981 -y Fu(and)33 b(then)g(Exercise)h(3.4)e(giv)m(es)h(the)g(\014rst)g(part)f -(of)244 3178 y Ft(hC)6 b(A)o Fu([)-17 b([)q Fs(a)7 b -Fu(])-17 b(])q(:)p Fb(store)p Fu(-)p Fs(x)12 b Fu(,)31 -b Fo(")p Fu(,)i Fs(s)8 b Ft(i)32 b Fh(\003)1314 3142 -y Fi(\003)1386 3178 y Ft(h)p Fb(store)p Fu(-)p Fs(x)12 -b Fu(,)31 b(\()p Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q Fs(s)8 b Fu(\),)33 b Fs(s)8 b Ft(i)1237 3346 y -Fh(\003)72 b Ft(h)p Fo(")p Fu(,)32 b Fo(")p Fu(,)h Fs(s)8 -b Fu([)p Fs(x)k Ft(7!)o(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q Fs(s)8 b Fu(])p Ft(i)0 3542 y Fu(and)35 b(the)g(second)h(part)e -(follo)m(ws)g(from)f(the)i(op)s(erational)d(seman)m(tics)j(for)f -Fb(store)p Fu(-)p Fs(x)45 b Fu(giv)m(en)35 b(in)0 3663 -y(T)-8 b(able)32 b(3.1.)43 b(Since)33 b Fs(s)766 3626 -y Fi(0)822 3663 y Fu(=)f Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])33 -b(this)f(completes)g(the)h(pro)s(of.)0 3830 y Fw(The)g(case)g -Fu([skip)654 3845 y Fn(ns)726 3830 y Fu(]:)43 b(Straigh)m(tforw)m(ard.) -0 3998 y Fw(The)33 b(case)g Fu([comp)711 4013 y Fn(ns)782 -3998 y Fu(]:)43 b(Assume)34 b(that)244 4194 y Ft(h)p -Fs(S)350 4209 y Fn(1)389 4194 y Fu(;)p Fs(S)483 4209 -y Fn(2)522 4194 y Fu(,)f Fs(s)8 b Ft(i)32 b(!)g Fs(s)881 -4158 y Fi(00)0 4391 y Fu(holds)g(b)s(ecause)244 4588 -y Ft(h)p Fs(S)350 4603 y Fn(1)389 4588 y Fu(,)h Fs(s)8 -b Ft(i)32 b(!)g Fs(s)748 4551 y Fi(0)804 4588 y Fu(and)h -Ft(h)o Fs(S)1099 4603 y Fn(2)1139 4588 y Fu(,)f Fs(s)1246 -4551 y Fi(0)1270 4588 y Ft(i)g(!)g Fs(s)1521 4551 y Fi(00)0 -4784 y Fu(F)-8 b(rom)31 b(T)-8 b(able)32 b(3.3)g(w)m(e)i(ha)m(v)m(e)244 -4981 y Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)475 4996 y Fn(1)514 -4981 y Fu(;)p Fs(S)608 4996 y Fn(2)647 4981 y Fu(])g(])33 -b(=)g Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)1056 4996 y Fn(1)1096 -4981 y Fu(])g(]:)p Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)1391 -4996 y Fn(2)1430 4981 y Fu(])g(])0 5177 y(W)-8 b(e)44 -b(shall)e(no)m(w)i(apply)g(the)g(induction)e(h)m(yp)s(othesis)j(to)e -(the)h(premises)g Ft(h)p Fs(S)2850 5192 y Fn(1)2889 5177 -y Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)3248 5141 y Fi(0)3315 -5177 y Fu(and)0 5298 y Ft(h)p Fs(S)106 5313 y Fn(2)145 -5298 y Fu(,)h Fs(s)253 5262 y Fi(0)276 5298 y Ft(i)f(!)g -Fs(s)527 5262 y Fi(00)602 5298 y Fu(and)h(w)m(e)h(get)244 -5494 y Ft(hC)6 b(S)i Fu([)-17 b([)p Fs(S)513 5509 y Fn(1)553 -5494 y Fu(])g(],)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 -b Fh(\003)952 5458 y Fi(\003)1024 5494 y Ft(h)p Fo(")o -Fu(,)h Fo(")o Fu(,)g Fs(s)1321 5458 y Fi(0)1344 5494 -y Ft(i)p eop -%%Page: 76 86 -76 85 bop 251 130 a Fw(76)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 283 -515 a Fu(and)527 716 y Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)797 -731 y Fn(2)836 716 y Fu(])g(])q(,)32 b Fo(")p Fu(,)g -Fs(s)1086 680 y Fi(0)1110 716 y Ft(i)g Fh(\003)1259 680 -y Fi(\003)1331 716 y Ft(h)o Fo(")p Fu(,)h Fo(")o Fu(,)g -Fs(s)1628 680 y Fi(00)1670 716 y Ft(i)283 917 y Fu(Using)g(Exercise)h -(3.4)e(w)m(e)h(then)h(ha)m(v)m(e)527 1117 y Ft(hC)6 b(S)i -Fu([)-17 b([)q Fs(S)797 1132 y Fn(1)836 1117 y Fu(])g(])q(:)p -Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)1131 1132 y Fn(2)1171 -1117 y Fu(])g(],)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 -b Fh(\003)1570 1081 y Fi(\003)1642 1117 y Ft(hC)6 b(S)i -Fu([)-17 b([)p Fs(S)1911 1132 y Fn(2)1951 1117 y Fu(])g(],)33 -b Fo(")o Fu(,)g Fs(s)2201 1081 y Fi(0)2224 1117 y Ft(i)g -Fh(\003)2373 1081 y Fi(\003)2445 1117 y Ft(h)p Fo(")o -Fu(,)g Fo(")p Fu(,)f Fs(s)2742 1081 y Fi(00)2785 1117 -y Ft(i)283 1318 y Fu(and)h(the)g(result)g(follo)m(ws.)283 -1486 y Fw(The)g(case)g Fu([if)836 1450 y Fn(tt)824 1510 -y(ns)895 1486 y Fu(]:)43 b(Assume)34 b(that)527 1686 -y Ft(h)p Fr(if)f Fs(b)39 b Fr(then)33 b Fs(S)1089 1701 -y Fn(1)1161 1686 y Fr(else)h Fs(S)1466 1701 y Fn(2)1505 -1686 y Fu(,)e Fs(s)8 b Ft(i)33 b(!)f Fs(s)1864 1650 y -Fi(0)283 1887 y Fu(b)s(ecause)i Ft(B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])q Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(and)527 -2088 y Ft(h)p Fs(S)633 2103 y Fn(1)672 2088 y Fu(,)h -Fs(s)8 b Ft(i)32 b(!)g Fs(s)1031 2052 y Fi(0)283 2288 -y Fu(F)-8 b(rom)32 b(T)-8 b(able)32 b(3.3)g(w)m(e)i(get)e(that)527 -2489 y Ft(C)6 b(S)i Fu([)-17 b([)q Fr(if)33 b Fs(b)38 -b Fr(then)c Fs(S)1214 2504 y Fn(1)1286 2489 y Fr(else)f -Fs(S)1590 2504 y Fn(2)1630 2489 y Fu(])-17 b(])33 b(=)f -Ft(C)6 b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(]:)p -Fb(branch)p Fu(\()p Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)2717 -2504 y Fn(1)2756 2489 y Fu(])g(])q(,)32 b Ft(C)6 b(S)i -Fu([)-17 b([)q Fs(S)3084 2504 y Fn(2)3123 2489 y Fu(])g(])q(\))283 -2690 y(Using)33 b(Exercises)h(3.19)e(and)h(3.4)f(w)m(e)h(get)g(the)g -(\014rst)g(part)f(of)527 2890 y Ft(hC)6 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(:)p Fb(branch)p Fu(\()p -Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)1475 2905 y Fn(1)1514 -2890 y Fu(])g(],)33 b Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)1842 -2905 y Fn(2)1881 2890 y Fu(])g(])q(\),)32 b Fo(")p Fu(,)g -Fs(s)8 b Ft(i)819 3058 y Fh(\003)896 3022 y Fi(\003)968 -3058 y Ft(h)p Fb(branch)p Fu(\()p Ft(C)e(S)i Fu([)-17 -b([)q Fs(S)1636 3073 y Fn(1)1675 3058 y Fu(])g(])q(,)32 -b Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)2003 3073 y Fn(2)2042 -3058 y Fu(])g(])q(\),)32 b(\()p Ft(B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])q Fs(s)8 b Fu(\),)32 b Fs(s)8 b -Ft(i)819 3226 y Fh(\003)72 b Ft(hC)6 b(S)i Fu([)-17 b([)q -Fs(S)1238 3241 y Fn(1)1277 3226 y Fu(])g(])q(,)32 b Fo(")p -Fu(,)h Fs(s)8 b Ft(i)819 3393 y Fh(\003)896 3357 y Fi(\003)968 -3393 y Ft(h)p Fo(")p Fu(,)32 b Fo(")p Fu(,)h Fs(s)1266 -3357 y Fi(0)1289 3393 y Ft(i)283 3594 y Fu(The)49 b(second)h(part)d -(follo)m(ws)g(from)f(the)j(de\014nition)e(of)g(the)h(meaning)f(of)g -(the)i(instruction)283 3714 y Fb(branch)31 b Fu(in)f(the)h(case)h -(where)g(the)f(elemen)m(t)g(on)f(top)h(of)f(the)h(ev)-5 -b(aluation)29 b(stac)m(k)j(is)f Fw(tt)e Fu(\(whic)m(h)283 -3835 y(is)39 b(the)h(v)-5 b(alue)38 b(of)h Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)8 b Fu(\).)64 b(The)40 -b(third)e(part)h(of)g(the)g(computation)f(sequence)k(comes)d(from)283 -3955 y(applying)32 b(the)h(induction)e(h)m(yp)s(othesis)j(to)e(the)h -(premise)g Ft(h)o Fs(S)2515 3970 y Fn(1)2555 3955 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)h Fs(s)2914 3919 y Fi(0)2937 3955 -y Fu(.)283 4123 y Fw(The)g(case)g Fu([if)836 4087 y Fn(\013)824 -4147 y(ns)895 4123 y Fu(]:)43 b(Analogous.)283 4290 y -Fw(The)33 b(case)g Fu([while)1001 4254 y Fn(tt)989 4315 -y(ns)1060 4290 y Fu(]:)44 b(Assume)33 b(that)527 4491 -y Ft(h)p Fr(while)h Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1499 4455 y Fi(00)283 4692 -y Fu(b)s(ecause)i Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q Fs(s)41 b Fu(=)32 b Fw(tt)p Fu(,)527 4892 y Ft(h)p -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)992 4856 -y Fi(0)1048 4892 y Fu(and)h Ft(h)o Fr(while)h Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)1958 4856 y Fi(0)1982 -4892 y Ft(i)g(!)g Fs(s)2233 4856 y Fi(00)283 5093 y Fu(F)-8 -b(rom)32 b(T)-8 b(able)32 b(3.3)g(w)m(e)i(ha)m(v)m(e)527 -5294 y Ft(C)6 b(S)i Fu([)-17 b([)q Fr(while)34 b Fs(b)k -Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b(=)g Fb(loop)p -Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(]\))283 5494 y(and)33 b(get)p eop -%%Page: 77 87 -77 86 bop 0 130 a Fw(3.3)112 b(Correctness)2530 b(77)p -0 193 3473 4 v 244 515 a Ft(h)p Fb(loop)p Fu(\()p Ft(C)6 -b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fo(")p -Fu(,)f Fs(s)8 b Ft(i)516 683 y Fh(\003)48 b Ft(h)o(C)6 -b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(]:)p Fb(branch)p -Fu(\()p Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(]:)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fb(noop)p Fu(\),)g -Fo(")o Fu(,)g Fs(s)8 b Ft(i)516 851 y Fh(\003)593 814 -y Fi(\003)641 851 y Ft(h)o Fb(branch)p Fu(\()p Ft(C)e(S)i -Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]:)p Fb(loop)p Fu(\()p -Ft(C)6 b(B)f Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 -b Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\),)33 -b Fb(noop)p Fu(\),)g(\()p Ft(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])p Fs(s)8 b Fu(\),)33 b Fs(s)8 b Ft(i)516 -1018 y Fh(\003)48 b Ft(h)o(C)6 b(S)j Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q(:)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)0 1211 y Fu(Here)25 b(the)f(\014rst)g(part)g(follo)m(ws)f(from)g -(the)h(meaning)e(of)i(the)g Fb(loop)p Fu(-instruction)f(\(see)i(T)-8 -b(able)24 b(3.1\))0 1331 y(and)32 b(the)h(second)h(part)e(from)f -(Exercises)j(3.19)e(and)g(3.4.)43 b(Since)33 b Ft(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 -b Fw(tt)f Fu(the)i(third)f(part)0 1451 y(follo)m(ws)38 -b(from)h(the)h(meaning)e(of)h(the)i Fb(branch)p Fu(-instruction.)63 -b(The)41 b(induction)d(h)m(yp)s(othesis)0 1572 y(can)33 -b(no)m(w)f(b)s(e)h(applied)e(to)h(the)h(premises)f Ft(h)p -Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)2002 -1536 y Fi(0)2058 1572 y Fu(and)g Ft(h)p Fr(while)h Fs(b)38 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)2966 1536 y Fi(0)2990 -1572 y Ft(i)g(!)g Fs(s)3241 1536 y Fi(00)3315 1572 y -Fu(and)0 1692 y(giv)m(es)244 1885 y Ft(hC)6 b(S)i Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b Fo(")p Fu(,)h Fs(s)8 -b Ft(i)32 b Fh(\003)912 1849 y Fi(\003)984 1885 y Ft(h)p -Fo(")p Fu(,)g Fo(")p Fu(,)h Fs(s)1282 1849 y Fi(0)1305 -1885 y Ft(i)244 2052 y(h)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fo(")p -Fu(,)f Fs(s)1385 2016 y Fi(0)1409 2052 y Ft(i)g Fh(\003)1557 -2016 y Fi(\003)1629 2052 y Ft(h)p Fo(")p Fu(,)g Fo(")p -Fu(,)h Fs(s)1927 2016 y Fi(00)1969 2052 y Ft(i)0 2245 -y Fu(so)g(using)f(Exercise)i(3.4)e(w)m(e)i(get)244 2437 -y Ft(hC)6 b(S)i Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(:)p -Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q(,)33 b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q(\),)32 b Fo(")p Fu(,)g Fs(s)8 b Ft(i)578 -2605 y Fh(\003)655 2569 y Fi(\003)727 2605 y Ft(h)p Fb(loop)p -Fu(\()p Ft(C)e(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 -b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(\),)32 -b Fo(")p Fu(,)h Fs(s)1869 2569 y Fi(0)1892 2605 y Ft(i)578 -2773 y Fh(\003)655 2736 y Fi(\003)727 2773 y Ft(h)p Fo(")p -Fu(,)f Fo(")p Fu(,)h Fs(s)1025 2736 y Fi(00)1067 2773 -y Ft(i)0 2965 y Fw(The)28 b(case)g Fu([while)708 2929 -y Fn(\013)696 2990 y(ns)767 2965 y Fu(]:)41 b(Assume)28 -b(that)f Ft(h)p Fr(while)i Fs(b)k Fr(do)28 b Fs(S)12 -b Fu(,)28 b Fs(s)8 b Ft(i)27 b(!)g Fs(s)2366 2929 y Fi(0)2417 -2965 y Fu(holds)h(b)s(ecause)g Ft(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(\013)0 -3085 y Fu(and)h(then)g Fs(s)40 b Fu(=)33 b Fs(s)649 3049 -y Fi(0)672 3085 y Fu(.)44 b(W)-8 b(e)33 b(ha)m(v)m(e)244 -3278 y Ft(h)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)516 3445 y Fh(\003)48 b Ft(h)o(C)6 b(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(]:)p Fb(branch)p Fu(\()p Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]:)p Fb(loop)p -Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(]\),)33 b Fb(noop)p Fu(\),)g Fo(")o Fu(,)g Fs(s)8 b -Ft(i)516 3613 y Fh(\003)593 3577 y Fi(\003)641 3613 y -Ft(h)o Fb(branch)p Fu(\()p Ft(C)e(S)i Fu([)-17 b([)q -Fs(S)12 b Fu(])-17 b(]:)p Fb(loop)p Fu(\()p Ft(C)6 b(B)f -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fb(noop)p -Fu(\),)g(\()p Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)8 b Fu(\),)33 b Fs(s)8 b Ft(i)516 3781 y Fh(\003)48 -b Ft(h)o Fb(noop)p Fu(,)33 b Fo(")p Fu(,)g Fs(s)8 b Ft(i)516 -3948 y Fh(\003)48 b Ft(h)o Fo(")p Fu(,)33 b Fo(")o Fu(,)g -Fs(s)8 b Ft(i)0 4141 y Fu(using)36 b(the)h(de\014nitions)f(of)g(the)h -Fb(loop)p Fu(-,)g Fb(branch)p Fu(-)f(and)g Fb(noop)p -Fu(-instructions)g(in)g(T)-8 b(able)36 b(3.1)0 4261 y(together)d(with)f -(Exercises)i(3.19)e(and)h(3.4.)1821 b Fh(2)146 4465 y -Fu(This)33 b(pro)m(v)m(es)h(Lemma)e(3.21.)42 b(The)34 -b(second)g(part)e(of)g(the)h(theorem)g(follo)m(ws)e(from:)p -0 4585 3473 5 v 0 4748 a Fw(Lemma)37 b(3.22)49 b Fu(F)-8 -b(or)31 b(ev)m(ery)j(statemen)m(t)e Fs(S)44 b Fu(of)32 -b Fw(While)e Fu(and)i(states)h Fs(s)40 b Fu(and)32 b -Fs(s)2844 4712 y Fi(0)2867 4748 y Fu(,)g(w)m(e)h(ha)m(v)m(e)h(that)244 -4941 y(if)d Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)1002 -4905 y Fn(k)1076 4941 y Ft(h)o Fo(")p Fu(,)h Fs(e)7 b -Fu(,)33 b Fs(s)1380 4905 y Fi(0)1403 4941 y Ft(i)f Fu(then)h -Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)2161 -4905 y Fi(0)2217 4941 y Fu(and)h Fs(e)40 b Fu(=)32 b -Fo(")0 5133 y Fu(So)f(if)f(the)i(execution)g(of)f(the)h(co)s(de)f(for)g -Fs(S)43 b Fu(from)30 b(a)i(storage)f Fs(s)39 b Fu(terminates)31 -b(then)h(the)g(natural)0 5254 y(seman)m(tics)k(of)g Fs(S)48 -b Fu(from)34 b Fs(s)44 b Fu(will)34 b(terminate)h(in)g(a)h(state)g(b)s -(eing)f(equal)h(to)g(the)g(storage)g(of)g(the)0 5374 -y(terminal)30 b(con\014guration.)p 0 5494 V eop -%%Page: 78 88 -78 87 bop 251 130 a Fw(78)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 283 -515 a(Pro)s(of:)29 b Fu(W)-8 b(e)26 b(shall)d(pro)s(ceed)j(b)m(y)g -(induction)e(on)h(the)h(length)e(k)i(of)e(the)i(computation)d(sequence) -283 636 y(of)37 b(the)f(abstract)h(mac)m(hine.)55 b(If)37 -b(k)f(=)h(0)f(the)h(result)f(holds)h(v)-5 b(acuously)37 -b(b)s(ecause)g Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)12 b -Fu(])-17 b(])37 b(=)f Fo(")283 756 y Fu(cannot)d(o)s(ccur.)43 -b(So)32 b(assume)h(that)f(it)f(holds)h(for)g(k)g Ft(\024)h -Fu(k)2331 771 y Fn(0)2403 756 y Fu(and)f(w)m(e)h(shall)e(pro)m(v)m(e)i -(that)f(it)f(holds)283 877 y(for)h(k)i(=)e(k)676 892 -y Fn(0)716 877 y Fu(+1.)43 b(W)-8 b(e)33 b(pro)s(ceed)g(b)m(y)h(cases)g -(on)e(the)h(statemen)m(t)g Fs(S)12 b Fu(.)283 1044 y -Fw(The)33 b(case)g Fs(x)12 b Fu(:=)p Fs(a)7 b Fu(:)44 -b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)h Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 b(])33 b(=)f -Ft(C)6 b(A)p Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q(:)p -Fb(store)p Fu(-)p Fs(x)43 b Fu(so)33 b(assume)g(that)527 -1245 y Ft(hC)6 b(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q(:)p Fb(store)p Fu(-)p Fs(x)12 b Fu(,)32 b Fo(")o -Fu(,)h Fs(s)8 b Ft(i)32 b Fh(\003)1598 1209 y Fn(k)1635 -1218 y Fd(0)1670 1209 y Fn(+1)1797 1245 y Ft(h)o Fo(")p -Fu(,)h Fs(e)7 b Fu(,)32 b Fs(s)2100 1209 y Fi(0)2124 -1245 y Ft(i)283 1446 y Fu(Then)41 b(b)m(y)f(Exercise)h(3.5)e(there)h(m) -m(ust)g(b)s(e)f(a)g(con\014guration)g(of)g(the)g(form)f -Ft(h)p Fo(")p Fu(,)32 b Fs(e)3297 1409 y Fi(00)3340 1446 -y Fu(,)h Fs(s)3448 1409 y Fi(00)3490 1446 y Ft(i)39 b -Fu(suc)m(h)283 1566 y(that)527 1767 y Ft(hC)6 b(A)p Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])q(,)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)33 b Fh(\003)1198 1730 y Fn(k)1235 1739 y Fd(1)1307 -1767 y Ft(h)o Fo(")p Fu(,)g Fs(e)1503 1730 y Fi(00)1545 -1767 y Fu(,)g Fs(s)1653 1730 y Fi(00)1695 1767 y Ft(i)527 -1934 y(h)p Fb(store)p Fu(-)p Fs(x)12 b Fu(,)31 b Fs(e)1050 -1898 y Fi(00)1093 1934 y Fu(,)i Fs(s)1201 1898 y Fi(00)1243 -1934 y Ft(i)g Fh(\003)1392 1898 y Fn(k)1429 1907 y Fd(2)1500 -1934 y Ft(h)p Fo(")p Fu(,)g Fs(e)7 b Fu(,)32 b Fs(s)1804 -1898 y Fi(0)1828 1934 y Ft(i)283 2135 y Fu(where)h(k)615 -2150 y Fn(1)687 2135 y Fu(+)e(k)845 2150 y Fn(2)916 2135 -y Fu(=)g(k)1074 2150 y Fn(0)1146 2135 y Fu(+)g(1.)43 -b(F)-8 b(rom)30 b(Lemma)g(3.18)h(and)g(Exercise)i(3.6)e(w)m(e)i(get)e -(that)h Fs(e)3473 2099 y Fi(00)3547 2135 y Fu(m)m(ust)283 -2255 y(b)s(e)39 b(\()p Ft(A)o Fu([)-17 b([)q Fs(a)7 b -Fu(])-17 b(])q Fs(s)8 b Fu(\))37 b(and)i Fs(s)1039 2219 -y Fi(00)1119 2255 y Fu(m)m(ust)f(b)s(e)g Fs(s)8 b Fu(.)60 -b(Using)38 b(the)g(seman)m(tics)g(of)g Fb(store)p Fu(-)p -Fs(x)48 b Fu(w)m(e)39 b(therefore)g(see)283 2376 y(that)33 -b Fs(s)543 2340 y Fi(0)599 2376 y Fu(is)f Fs(s)8 b Fu([)p -Fs(x)k Ft(7!)o(A)p Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])p -Fs(s)8 b Fu(])33 b(and)g Fs(e)40 b Fu(is)32 b Fo(")o -Fu(.)44 b(It)32 b(no)m(w)i(follo)m(ws)d(from)g([ass)2748 -2391 y Fn(ns)2820 2376 y Fu(])i(that)f Ft(h)p Fs(x)12 -b Fu(:=)p Fs(a)7 b Fu(,)33 b Fs(s)8 b Ft(i)o(!)p Fs(s)3641 -2340 y Fi(0)3664 2376 y Fu(.)283 2543 y Fw(The)33 b(case)g -Fr(skip)p Fu(:)45 b(Straigh)m(tforw)m(ard.)283 2711 y -Fw(The)33 b(case)g Fs(S)806 2726 y Fn(1)846 2711 y Fu(;)p -Fs(S)940 2726 y Fn(2)979 2711 y Fu(:)44 b(Assume)33 b(that)527 -2912 y Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)797 2927 y Fn(1)836 -2912 y Fu(])g(])q(:)p Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)1131 -2927 y Fn(2)1171 2912 y Fu(])g(],)33 b Fo(")o Fu(,)g -Fs(s)8 b Ft(i)32 b Fh(\003)1570 2875 y Fn(k)1607 2884 -y Fd(0)1642 2875 y Fn(+1)1769 2912 y Ft(h)o Fo(")p Fu(,)h -Fs(e)7 b Fu(,)33 b Fs(s)2073 2875 y Fi(00)2115 2912 y -Ft(i)283 3112 y Fu(Then)c(b)m(y)f(Exercise)g(3.5)f(there)h(m)m(ust)f(b) -s(e)h(a)e(con\014guration)h(of)f(the)i(form)e Ft(h)p -Fo(")o Fu(,)i Fs(e)3146 3076 y Fi(0)3170 3112 y Fu(,)g -Fs(s)3273 3076 y Fi(0)3297 3112 y Ft(i)e Fu(suc)m(h)j(that)527 -3313 y Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)797 3328 y Fn(1)836 -3313 y Fu(])g(])q(,)32 b Fo(")p Fu(,)g Fs(s)8 b Ft(i)33 -b Fh(\003)1235 3277 y Fn(k)1272 3286 y Fd(1)1344 3313 -y Ft(h)p Fo(")o Fu(,)g Fs(e)1540 3277 y Fi(0)1563 3313 -y Fu(,)g Fs(s)1671 3277 y Fi(0)1694 3313 y Ft(i)527 3481 -y(hC)6 b(S)i Fu([)-17 b([)q Fs(S)797 3496 y Fn(2)836 -3481 y Fu(])g(])q(,)32 b Fs(e)985 3444 y Fi(0)1009 3481 -y Fu(,)g Fs(s)1116 3444 y Fi(0)1140 3481 y Ft(i)g Fh(\003)1289 -3444 y Fn(k)1326 3453 y Fd(2)1397 3481 y Ft(h)p Fo(")o -Fu(,)h Fs(e)7 b Fu(,)33 b Fs(s)1701 3444 y Fi(00)1743 -3481 y Ft(i)283 3681 y Fu(where)e(k)613 3696 y Fn(1)682 -3681 y Fu(+)f(k)839 3696 y Fn(2)908 3681 y Fu(=)f(k)1064 -3696 y Fn(0)1134 3681 y Fu(+)g(1.)42 b(The)31 b(induction)d(h)m(yp)s -(othesis)j(can)e(no)m(w)h(b)s(e)g(applied)e(to)h(the)h(\014rst)283 -3802 y(of)j(these)g(computation)e(sequences)36 b(b)s(ecause)e(k)2068 -3817 y Fn(1)2141 3802 y Ft(\024)f Fu(k)2302 3817 y Fn(0)2374 -3802 y Fu(and)g(giv)m(es)527 4002 y Ft(h)p Fs(S)633 4017 -y Fn(1)672 4002 y Fu(,)g Fs(s)8 b Ft(i)32 b(!)g Fs(s)1031 -3966 y Fi(0)1087 4002 y Fu(and)h Fs(e)1329 3966 y Fi(0)1385 -4002 y Fu(=)g Fo(")283 4203 y Fu(Th)m(us)49 b(w)m(e)f(ha)m(v)m(e)g -Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)1212 4218 y Fn(2)1251 -4203 y Fu(])g(])q(,)50 b Fo(")p Fu(,)g Fs(s)1537 4167 -y Fi(0)1561 4203 y Ft(i)c Fh(\003)1724 4167 y Fn(k)1761 -4176 y Fd(2)1847 4203 y Ft(h)p Fo(")o Fu(,)51 b Fs(e)7 -b Fu(,)51 b Fs(s)2187 4167 y Fi(00)2229 4203 y Ft(i)c -Fu(and)g(since)g(k)2823 4218 y Fn(2)2910 4203 y Ft(\024)h -Fu(k)3086 4218 y Fn(0)3172 4203 y Fu(the)g(induction)283 -4323 y(h)m(yp)s(othesis)34 b(can)f(b)s(e)g(applied)e(to)h(this)h -(computation)e(sequence)k(and)e(giv)m(es)527 4524 y Ft(h)p -Fs(S)633 4539 y Fn(2)672 4524 y Fu(,)g Fs(s)780 4488 -y Fi(0)803 4524 y Ft(i)g(!)f Fs(s)1055 4488 y Fi(00)1130 -4524 y Fu(and)g Fs(e)40 b Fu(=)33 b Fo(")283 4725 y Fu(The)h(rule)e -([comp)934 4740 y Fn(ns)1005 4725 y Fu(])h(no)m(w)g(giv)m(es)g -Ft(h)p Fs(S)1613 4740 y Fn(1)1652 4725 y Fu(;)p Fs(S)1746 -4740 y Fn(2)1785 4725 y Fu(,)g Fs(s)8 b Ft(i)32 b(!)g -Fs(s)2144 4689 y Fi(00)2219 4725 y Fu(as)h(required.)283 -4892 y Fw(The)g(case)g Fr(if)h Fs(b)k Fr(then)c Fs(S)1263 -4907 y Fn(1)1334 4892 y Fr(else)g Fs(S)1639 4907 y Fn(2)1678 -4892 y Fu(:)44 b(The)33 b(co)s(de)g(generated)g(for)g(the)g -(conditional)d(is)527 5093 y Ft(C)6 b(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(]:)p Fb(branch)p Fu(\()p Ft(C)6 b(S)i -Fu([)-17 b([)q Fs(S)1436 5108 y Fn(1)1475 5093 y Fu(])g(])q(,)32 -b Ft(C)6 b(S)i Fu([)-17 b([)q Fs(S)1803 5108 y Fn(2)1842 -5093 y Fu(])g(])q(\))283 5294 y(so)33 b(w)m(e)h(assume)f(that)527 -5494 y Ft(hC)6 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(:)p Fb(branch)p Fu(\()p Ft(C)6 b(S)i Fu([)-17 b([)q -Fs(S)1475 5509 y Fn(1)1514 5494 y Fu(])g(],)33 b Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)1842 5509 y Fn(2)1881 5494 -y Fu(])g(])q(\),)32 b Fo(")p Fu(,)g Fs(s)8 b Ft(i)33 -b Fh(\003)2318 5458 y Fn(k)2355 5467 y Fd(0)2390 5458 -y Fn(+1)2517 5494 y Ft(h)p Fo(")o Fu(,)g Fs(e)7 b Fu(,)33 -b Fs(s)2821 5458 y Fi(0)2844 5494 y Ft(i)p eop -%%Page: 79 89 -79 88 bop 0 130 a Fw(3.3)112 b(Correctness)2530 b(79)p -0 193 3473 4 v 0 515 a Fu(Then)39 b(b)m(y)h(Exercise)f(3.5)f(there)h(m) -m(ust)f(b)s(e)h(a)f(con\014guration)f(of)h(the)h(form)e -Ft(h)p Fo(")o Fu(,)j Fs(e)3008 479 y Fi(00)3051 515 y -Fu(,)f Fs(s)3165 479 y Fi(00)3208 515 y Ft(i)f Fu(suc)m(h)0 -636 y(that)244 848 y Ft(hC)6 b(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(],)33 b Fo(")p Fu(,)f Fs(s)8 b Ft(i)33 b -Fh(\003)897 812 y Fn(k)934 821 y Fd(1)1006 848 y Ft(h)o -Fo(")p Fu(,)g Fs(e)1202 812 y Fi(00)1244 848 y Fu(,)g -Fs(s)1352 812 y Fi(00)1395 848 y Ft(i)0 1060 y Fu(and)244 -1272 y Ft(h)p Fb(branch)p Fu(\()p Ft(C)6 b(S)i Fu([)-17 -b([)p Fs(S)911 1287 y Fn(1)950 1272 y Fu(])g(])q(,)33 -b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)1278 1287 y Fn(2)1318 -1272 y Fu(])g(]\),)33 b Fs(e)1505 1235 y Fi(00)1547 1272 -y Fu(,)g Fs(s)1655 1235 y Fi(00)1698 1272 y Ft(i)f Fh(\003)1846 -1235 y Fn(k)1883 1244 y Fd(2)1955 1272 y Ft(h)p Fo(")o -Fu(,)h Fs(e)7 b Fu(,)33 b Fs(s)2259 1235 y Fi(0)2282 -1272 y Ft(i)0 1484 y Fu(where)42 b(k)341 1499 y Fn(1)421 -1484 y Fu(+)e(k)588 1499 y Fn(2)669 1484 y Fu(=)g(k)836 -1499 y Fn(0)916 1484 y Fu(+)h(1.)66 b(F)-8 b(rom)39 b(Exercises)k(3.19) -d(and)g(3.6)g(w)m(e)i(get)e(that)g Fs(e)3039 1447 y Fi(00)3123 -1484 y Fu(m)m(ust)g(b)s(e)0 1604 y Ft(B)s Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])q Fs(s)39 b Fu(and)32 b Fs(s)511 -1568 y Fi(00)586 1604 y Fu(m)m(ust)g(b)s(e)g Fs(s)8 b -Fu(.)43 b(W)-8 b(e)32 b(shall)f(no)m(w)h(assume)h(that)e -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)40 -b Fu(=)31 b Fw(tt)p Fu(.)43 b(Then)33 b(there)f(m)m(ust)0 -1724 y(b)s(e)h(a)f(con\014guration)g Ft(hC)6 b(S)i Fu([)-17 -b([)p Fs(S)1074 1739 y Fn(1)1113 1724 y Fu(])g(])q(,)33 -b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fu(suc)m(h)i(that)244 -1936 y(\()p Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)512 1951 -y Fn(1)552 1936 y Fu(])g(],)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)33 b Fh(\003)951 1900 y Fn(k)988 1909 y Fd(2)1023 -1900 y Fi(\000)p Fn(1)1150 1936 y Ft(h)o Fo(")p Fu(,)g -Fs(e)7 b Fu(,)33 b Fs(s)1454 1900 y Fi(0)1477 1936 y -Ft(i)0 2148 y Fu(The)24 b(induction)d(h)m(yp)s(othesis)j(can)f(no)m(w)g -(b)s(e)g(applied)e(to)h(this)h(computation)e(sequence)k(b)s(ecause)0 -2269 y(k)51 2284 y Fn(2)123 2269 y Ft(\000)33 b Fu(1)g -Ft(\024)g Fu(k)476 2284 y Fn(0)548 2269 y Fu(and)g(w)m(e)g(get)244 -2481 y Ft(h)p Fs(S)350 2496 y Fn(1)389 2481 y Fu(,)g -Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 2444 y Fi(0)804 2481 -y Fu(and)h Fs(e)39 b Fu(=)33 b Fo(")0 2692 y Fu(The)g(rule)e([if)491 -2656 y Fn(tt)479 2717 y(ns)549 2692 y Fu(])h(giv)m(es)g(the)g(required) -g Ft(h)p Fr(if)g Fs(b)38 b Fr(then)33 b Fs(S)1954 2707 -y Fn(1)2025 2692 y Fr(else)f Fs(S)2328 2707 y Fn(2)2368 -2692 y Fu(,)g Fs(s)8 b Ft(i)31 b(!)g Fs(s)2724 2656 y -Fi(0)2748 2692 y Fu(.)43 b(The)33 b(case)f(where)0 2813 -y Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])q Fs(s)40 -b Fu(=)33 b Fw(\013)f Fu(is)h(similar.)0 2980 y Fw(The)d(case)g -Fr(while)h Fs(b)36 b Fr(do)30 b Fs(S)12 b Fu(:)29 b(The)i(co)s(de)f -(for)f(the)h Fr(while)p Fu(-lo)s(op)f(is)g Fb(loop)p -Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)31 b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])q(\))29 b(and)0 3101 y(w)m(e)34 b(therefore)f(assume)g(that)244 -3313 y Ft(h)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)33 b Fh(\003)1534 3277 y Fn(k)1571 3286 y Fd(0)1606 -3277 y Fn(+1)1733 3313 y Ft(h)p Fo(")o Fu(,)g Fs(e)7 -b Fu(,)33 b Fs(s)2037 3277 y Fi(00)2079 3313 y Ft(i)0 -3525 y Fu(Using)48 b(the)g(de\014nition)f(of)g(the)h -Fb(loop)p Fu(-instruction)f(this)h(means)g(that)g(the)g(computation)0 -3645 y(sequence)35 b(can)e(b)s(e)g(rewritten)g(as)244 -3857 y Ft(h)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)516 4025 y Fh(\003)98 b Ft(hC)6 b(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])q(:)p Fb(branch)p Fu(\()p -Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(:)p -Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q(,)33 b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q(\),)32 b Fb(noop)p Fu(\),)h Fo(")p Fu(,)f -Fs(s)8 b Ft(i)516 4192 y Fh(\003)593 4156 y Fn(k)630 -4165 y Fd(0)691 4192 y Ft(h)p Fo(")o Fu(,)33 b Fs(e)7 -b Fu(,)33 b Fs(s)995 4156 y Fi(00)1037 4192 y Ft(i)0 -4404 y Fu(According)f(to)h(Exercise)h(3.5)e(there)h(will)d(then)j(b)s -(e)g(a)f(con\014guration)g Ft(h)p Fo(")p Fu(,)g Fs(e)2780 -4368 y Fi(0)2804 4404 y Fu(,)g Fs(s)2911 4368 y Fi(0)2935 -4404 y Ft(i)g Fu(suc)m(h)i(that)244 4616 y Ft(hC)6 b(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fo(")p Fu(,)f -Fs(s)8 b Ft(i)33 b Fh(\003)897 4580 y Fn(k)934 4589 y -Fd(1)1006 4616 y Ft(h)o Fo(")p Fu(,)g Fs(e)1202 4580 -y Fi(0)1225 4616 y Fu(,)g Fs(s)1333 4580 y Fi(0)1356 -4616 y Ft(i)0 4828 y Fu(and)244 5040 y Ft(h)p Fb(branch)p -Fu(\()p Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])q(:)p Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])q(,)32 b Ft(C)6 b(S)j Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(\),)32 b Fb(noop)p Fu(\),)h -Fs(e)2318 5004 y Fi(0)2342 5040 y Fu(,)f Fs(s)2449 5004 -y Fi(0)2473 5040 y Ft(i)g Fh(\003)2621 5004 y Fn(k)2658 -5013 y Fd(2)2730 5040 y Ft(h)p Fo(")o Fu(,)h Fs(e)7 b -Fu(,)33 b Fs(s)3034 5004 y Fi(00)3076 5040 y Ft(i)0 5252 -y Fu(where)k(k)336 5267 y Fn(1)411 5252 y Fu(+)e(k)573 -5267 y Fn(2)648 5252 y Fu(=)h(k)811 5267 y Fn(0)851 5252 -y Fu(.)51 b(F)-8 b(rom)34 b(Exercises)k(3.19)c(and)i(3.6)f(w)m(e)h(get) -g Fs(e)2539 5216 y Fi(0)2598 5252 y Fu(=)f Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)44 b Fu(and)35 b Fs(s)3227 -5216 y Fi(0)3286 5252 y Fu(=)g Fs(s)8 b Fu(.)0 5372 y(W)-8 -b(e)33 b(no)m(w)g(ha)m(v)m(e)h(t)m(w)m(o)f(cases.)146 -5494 y(In)g(the)g(\014rst)g(case)h(assume)f(that)f Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 -b Fw(\013)p Fu(.)44 b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)p -eop -%%Page: 80 90 -80 89 bop 251 130 a Fw(80)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 527 -515 a Ft(h)p Fb(branch)p Fu(\()p Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]:)p Fb(loop)p Fu(\()p Ft(C)6 -b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fb(noop)p -Fu(\),)f Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q -Fs(s)8 b Fu(,)33 b Fs(s)8 b Ft(i)926 683 y Fh(\003)33 -b Ft(h)p Fb(noop)p Fu(,)g Fo(")o Fu(,)g Fs(s)8 b Ft(i)926 -851 y Fh(\003)33 b Ft(h)p Fo(")o Fu(,)g Fo(")p Fu(,)f -Fs(s)8 b Ft(i)283 1033 y Fu(so)25 b Fs(e)33 b Fu(=)24 -b Fo(")h Fu(and)g Fs(s)32 b Fu(=)25 b Fs(s)1047 997 y -Fi(00)1090 1033 y Fu(.)40 b(Using)25 b(rule)f([while)1873 -997 y Fn(\013)1861 1058 y(ns)1932 1033 y Fu(])h(w)m(e)h(get)e -Ft(h)p Fr(while)i Fs(b)31 b Fr(do)25 b Fs(S)12 b Fu(,)25 -b Fs(s)8 b Ft(i)25 b(!)f Fs(s)3200 997 y Fi(00)3267 1033 -y Fu(as)h(required.)430 1154 y(In)33 b(the)g(second)h(case)f(assume)g -(that)f Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p -Fs(s)41 b Fu(=)32 b Fw(tt)p Fu(.)43 b(Then)33 b(w)m(e)h(ha)m(v)m(e)527 -1337 y Ft(h)p Fb(branch)p Fu(\()p Ft(C)6 b(S)i Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(]:)p Fb(loop)p Fu(\()p Ft(C)6 -b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Ft(C)6 -b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\),)33 b Fb(noop)p -Fu(\),)f Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q -Fs(s)8 b Fu(,)33 b Fs(s)8 b Ft(i)926 1504 y Fh(\003)163 -b Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]:)p -Fb(loop)p Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(],)33 b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q(\),)32 b Fo(")p Fu(,)h Fs(s)8 b Ft(i)926 -1672 y Fh(\003)1004 1636 y Fn(k)1041 1645 y Fd(2)1075 -1636 y Fi(\000)p Fn(1)1166 1672 y Ft(h)p Fo(")p Fu(,)32 -b Fs(e)7 b Fu(,)33 b Fs(s)1470 1636 y Fi(00)1513 1672 -y Ft(i)283 1855 y Fu(W)-8 b(e)31 b(then)f(pro)s(ceed)h(v)m(ery)h(m)m -(uc)m(h)e(as)g(in)g(the)g(case)h(of)f(the)g(comp)s(osition)e(statemen)m -(t)i(and)g(get)g(a)283 1975 y(con\014guration)i Ft(h)p -Fo(")p Fu(,)g Fs(e)1070 1939 y Fi(0)1094 1975 y Fu(,)g -Fs(s)1201 1939 y Fi(0)1225 1975 y Ft(i)g Fu(suc)m(h)i(that)527 -2158 y Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)1196 -2122 y Fn(k)1233 2131 y Fd(3)1304 2158 y Ft(h)p Fo(")p -Fu(,)g Fs(e)1500 2122 y Fi(0)1524 2158 y Fu(,)h Fs(s)1632 -2122 y Fi(0)1655 2158 y Ft(i)527 2326 y(h)p Fb(loop)p -Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b Ft(C)6 b(S)i Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])q(\),)32 b Fs(e)1567 2289 y Fi(0)1591 2326 y Fu(,)h -Fs(s)1699 2289 y Fi(0)1722 2326 y Ft(i)f Fh(\003)1871 -2289 y Fn(k)1908 2298 y Fd(4)1979 2326 y Ft(h)p Fo(")p -Fu(,)g Fs(e)7 b Fu(,)33 b Fs(s)2283 2289 y Fi(00)2326 -2326 y Ft(i)283 2508 y Fu(where)h(k)616 2523 y Fn(3)689 -2508 y Fu(+)f(k)849 2523 y Fn(4)921 2508 y Fu(=)g(k)1081 -2523 y Fn(2)1153 2508 y Ft(\000)g Fu(1.)44 b(Since)33 -b(k)1689 2523 y Fn(3)1762 2508 y Ft(\024)g Fu(k)1923 -2523 y Fn(0)1995 2508 y Fu(w)m(e)h(can)f(apply)f(the)i(induction)d(h)m -(yp)s(othesis)j(to)283 2629 y(the)f(\014rst)h(of)e(these)h(computation) -f(sequences)j(and)e(get)527 2812 y Ft(h)p Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)992 2775 y Fi(0)1048 2812 -y Fu(and)h Fs(e)1290 2775 y Fi(0)1346 2812 y Fu(=)f Fo(")283 -2994 y Fu(W)-8 b(e)35 b(can)g(then)f(use)i(that)e(k)1292 -3009 y Fn(4)1366 2994 y Ft(\024)g Fu(k)1528 3009 y Fn(0)1603 -2994 y Fu(and)g(apply)g(the)g(induction)g(h)m(yp)s(othesis)h(to)f(the)h -(compu-)283 3115 y(tation)d(sequence)j Ft(h)p Fb(loop)p -Fu(\()p Ft(C)6 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(,)32 b Ft(C)6 b(S)j Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])q(\),)32 b Fo(")p Fu(,)g Fs(s)2116 3079 y Fi(0)2140 -3115 y Ft(i)g Fh(\003)2288 3079 y Fn(k)2325 3088 y Fd(4)2397 -3115 y Ft(h)p Fo(")o Fu(,)h Fs(e)7 b Fu(,)33 b Fs(s)2701 -3079 y Fi(00)2743 3115 y Ft(i)g Fu(and)f(get)527 3298 -y Ft(h)p Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 -b Fs(s)1248 3261 y Fi(0)1271 3298 y Ft(i)g(!)f Fs(s)1523 -3261 y Fi(00)1598 3298 y Fu(and)g Fs(e)40 b Fu(=)33 b -Fo(")283 3480 y Fu(Using)24 b(rule)f([while)997 3444 -y Fn(tt)985 3505 y(ns)1056 3480 y Fu(])h(w)m(e)h(then)f(get)g -Ft(h)p Fr(while)h Fs(b)30 b Fr(do)24 b Fs(S)12 b Fu(,)24 -b Fs(s)8 b Ft(i)24 b(!)f Fs(s)2529 3444 y Fi(00)2596 -3480 y Fu(as)h(required.)41 b(This)24 b(completes)283 -3601 y(the)33 b(pro)s(of)f(of)g(the)h(lemma.)2385 b Fh(2)430 -3804 y Fu(The)37 b(pro)s(of)e(tec)m(hnique)j(emplo)m(y)m(ed)e(in)g(the) -g(ab)s(o)m(v)m(e)h(pro)s(of)f(ma)m(y)g(b)s(e)g(summarized)f(as)i(fol-) -283 3924 y(lo)m(ws:)p 283 4054 3470 4 v 283 4071 V 281 -4279 4 208 v 298 4279 V 1371 4200 a Fw(Pro)s(of)32 b(Summary)h(for)f -(While)p Fu(:)p 3735 4279 V 3752 4279 V 281 4486 V 298 -4486 V 1266 4407 a Fw(Correctness)g(of)h(Implemen)m(tation)p -3735 4486 V 3752 4486 V 283 4490 3470 4 v 281 4979 4 -490 v 298 4979 V 350 4655 a Fu(1:)143 b(Pro)m(v)m(e)24 -b(b)m(y)h Fs(induction)h(on)f(the)i(shap)-5 b(e)25 b(of)h(derivation)g -(tr)-5 b(e)g(es)31 b Fu(that)23 b(for)g(eac)m(h)h(deriv)-5 -b(ation)569 4775 y(tree)34 b(in)g(the)g(natural)f(seman)m(tics)i(there) -g(is)e(a)h(corresp)s(onding)g(\014nite)g(computation)569 -4896 y(sequence)h(on)e(the)g(abstract)f(mac)m(hine.)p -3735 4979 V 3752 4979 V 281 5508 4 529 v 298 5508 V 350 -5063 a(2:)143 b(Pro)m(v)m(e)26 b(b)m(y)f Fs(induction)i(on)g(the)h -(length)f(of)g(c)-5 b(omputation)27 b(se)-5 b(quenc)g(es)32 -b Fu(that)25 b(for)f(eac)m(h)h(\014-)569 5184 y(nite)h(computation)f -(sequence)k(obtained)d(from)f(executing)i(a)f(statemen)m(t)h(of)f -Fw(While)569 5304 y Fu(on)41 b(the)h(abstract)f(mac)m(hine)g(there)h -(is)e(a)h(corresp)s(onding)h(deriv)-5 b(ation)39 b(tree)j(in)e(the)569 -5424 y(natural)31 b(seman)m(tics.)p 3735 5508 V 3752 -5508 V 283 5511 3470 4 v 283 5528 V eop -%%Page: 81 91 -81 90 bop 0 130 a Fw(3.4)112 b(An)38 b(alternativ)m(e)e(pro)s(of)i(tec) -m(hnique)1593 b(81)p 0 193 3473 4 v 0 515 a Fu(Note)28 -b(the)h Fs(similarities)35 b Fu(b)s(et)m(w)m(een)30 b(this)e(pro)s(of)f -(tec)m(hnique)i(and)f(that)g(for)g(sho)m(wing)g(the)g(equiv-)0 -636 y(alence)j(of)g(t)m(w)m(o)i(op)s(erational)28 b(seman)m(tics)k -(\(see)h(Section)e(2.3\).)42 b(Again)31 b(one)g(has)h(to)f(b)s(e)h -(careful)0 756 y(when)47 b(adapting)d(this)i(approac)m(h)g(to)f(a)g -(language)g(with)g(additional)e(programming)g(con-)0 -877 y(structs)34 b(or)e(a)g(di\013eren)m(t)h(mac)m(hine)f(language.)0 -1091 y Fw(Exercise)k(3.23)49 b Fu(Consider)33 b(the)f(\\optimized")e -(co)s(de)j(generation)e(function)h Ft(C)6 b(S)3021 1055 -y Fi(0)3077 1091 y Fu(that)32 b(is)f(as)0 1211 y Ft(C)6 -b(S)46 b Fu(of)37 b(T)-8 b(able)38 b(3.3)f(except)j(that)e -Ft(C)6 b(S)1371 1175 y Fi(0)1394 1211 y Fu([)-17 b([)p -Fr(skip)p Fu(])g(])40 b(=)e Fo(")o Fu(.)60 b(W)-8 b(ould)37 -b(this)g(complicate)g(the)h(pro)s(of)f(of)0 1332 y(Theorem)c(3.20?)2766 -b Fh(2)0 1546 y Fw(Exercise)36 b(3.24)49 b Fu(Extend)29 -b(the)e(pro)s(of)f(of)h(Theorem)g(3.20)f(to)h(hold)f(for)h(the)g -Fw(While)e Fu(language)0 1666 y(extended)48 b(with)e -Fr(repeat)i Fs(S)58 b Fr(until)48 b Fs(b)6 b Fu(.)85 -b(The)47 b(co)s(de)g(generated)g(for)f(this)g(construct)h(w)m(as)0 -1787 y(studied)33 b(in)f(Exercise)i(3.14)e(and)g(its)g(natural)g(seman) -m(tics)h(in)e(Exercise)j(2.7.)593 b Fh(2)0 2001 y Fw(Exercise)36 -b(3.25)49 b Fu(Pro)m(v)m(e)27 b(that)f(the)g(co)s(de)g(generated)g(for) -g Fw(AM)2314 2016 y Fn(1)2379 2001 y Fu(in)e(Exercise)j(3.16)f(is)f -(correct.)0 2121 y(What)33 b(assumptions)f(do)h(y)m(ou)g(need)g(to)g -(mak)m(e)f(ab)s(out)g Fs(env)11 b Fu(?)1168 b Fh(2)0 -2452 y Fj(3.4)161 b(An)53 b(alternativ)l(e)h(pro)t(of)g(tec)l(hnique)0 -2671 y Fu(In)32 b(Theorem)f(3.20)g(w)m(e)i(pro)m(v)m(ed)g(the)e -(correctness)j(of)d(the)h(implemen)m(tation)c(with)j(resp)s(ect)i(to)0 -2792 y(the)j(natural)f(seman)m(tics.)53 b(It)36 b(is)f(ob)m(vious)h -(that)g(the)g(implemen)m(tation)d(will)g(also)i(b)s(e)h(correct)0 -2912 y(with)c(resp)s(ect)i(to)e(the)h(structural)g(op)s(erational)d -(seman)m(tics,)j(that)f(is)244 3105 y Ft(S)312 3120 y -Fn(sos)407 3105 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])33 -b(=)g Ft(S)758 3120 y Fn(am)856 3105 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])33 b(for)f(all)f(statemen)m(ts)i -Fs(S)45 b Fu(of)32 b Fw(While)0 3298 y Fu(b)s(ecause)41 -b(w)m(e)g(sho)m(w)m(ed)h(in)d(Theorem)h(2.26)g(that)f(the)i(natural)e -(seman)m(tics)h(is)f(equiv)-5 b(alen)m(t)40 b(to)0 3418 -y(the)35 b(structural)f(op)s(erational)e(seman)m(tics.)49 -b(Ho)m(w)m(ev)m(er,)37 b(one)e(migh)m(t)e(argue)h(that)g(it)g(w)m(ould) -g(b)s(e)0 3538 y(easier)e(to)f(giv)m(e)h(a)g(direct)f(pro)s(of)h(of)f -(the)h(correctness)i(of)e(the)g(implemen)m(tation)d(with)i(resp)s(ect)0 -3659 y(to)d(the)h(structural)f(op)s(erational)e(seman)m(tics,)j(b)s -(ecause)h(b)s(oth)e(approac)m(hes)i(are)e(based)i(on)e(the)0 -3779 y(idea)c(of)h(sp)s(ecifying)g(the)g(individual)e(steps)j(of)f(the) -g(computation.)40 b(W)-8 b(e)25 b(shall)f(commen)m(t)g(up)s(on)0 -3899 y(this)32 b(shortly)-8 b(.)146 4020 y(A)39 b(direct)g(pro)s(of)f -(of)h(the)g(correctness)i(result)e(with)g(resp)s(ect)h(to)f(the)g -(structural)g(op)s(era-)0 4140 y(tional)31 b(seman)m(tics)j(could)f -(pro)s(ceed)h(as)g(follo)m(ws.)45 b(W)-8 b(e)34 b(shall)e(de\014ne)j(a) -e Fs(bisimulation)40 b Fu(relation)0 4261 y Ft(\031)31 -b Fu(b)s(et)m(w)m(een)i(the)e(con\014gurations)g(of)f(the)h(structural) -g(op)s(erational)d(seman)m(tics)j(and)g(those)h(of)0 -4381 y(the)h(op)s(erational)d(seman)m(tics)j(for)f Fw(AM)p -Fu(.)h(It)f(is)g(de\014ned)i(b)m(y)294 4565 y Ft(h)o -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)99 b(\031)h(hC)6 b(S)i -Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 b Fo(")p Fu(,)f -Fs(s)8 b Ft(i)498 4733 y Fs(s)107 b Ft(\031)100 b(h)p -Fo(")p Fu(,)32 b Fo(")p Fu(,)h Fs(s)8 b Ft(i)0 4919 y -Fu(for)30 b(all)f(statemen)m(ts)j Fs(S)42 b Fu(and)31 -b(states)h Fs(s)8 b Fu(.)43 b(The)31 b(\014rst)h(stage)f(will)d(then)k -(b)s(e)f(to)f(pro)m(v)m(e)i(that)f(when-)0 5039 y(ev)m(er)43 -b Fs(one)48 b Fu(step)43 b(of)e(the)h(structural)g(op)s(erational)d -(seman)m(tics)j Fs(changes)48 b Fu(the)42 b(con\014guration)0 -5160 y(then)32 b(there)g(is)f(a)f Fs(se)-5 b(quenc)g(e)38 -b Fu(of)31 b(steps)i(in)d(the)i(seman)m(tics)f(of)g Fw(AM)g -Fu(that)g(will)e(mak)m(e)i(a)g Fs(similar)0 5280 y(change)39 -b Fu(in)32 b(the)h(con\014guration)e(of)i(the)g(abstract)f(mac)m(hine:) -0 5494 y Fw(Exercise)k(3.26)49 b Fu(*)33 b(Sho)m(w)g(that)f(if)p -eop -%%Page: 82 92 -82 91 bop 251 130 a Fw(82)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v 527 -515 a Fo(\015)583 530 y Fn(sos)711 515 y Ft(\031)c Fo(\015)877 -530 y Fn(am)1008 515 y Fu(and)f Fo(\015)1253 530 y Fn(sos)1381 -515 y Ft(\))g Fo(\015)1569 479 y Fi(0)1569 540 y Fn(sos)283 -774 y Fu(then)i(there)f(exists)g(a)g(con\014guration)e -Fo(\015)1752 738 y Fi(0)1752 798 y Fn(am)1883 774 y Fu(suc)m(h)j(that) -527 1032 y Fo(\015)583 1047 y Fn(am)714 1032 y Fh(\003)792 -996 y Fn(+)883 1032 y Fo(\015)939 996 y Fi(0)939 1057 -y Fn(am)1070 1032 y Fu(and)f Fo(\015)1316 996 y Fi(0)1316 -1057 y Fn(sos)1443 1032 y Ft(\031)g Fo(\015)1609 996 -y Fi(0)1609 1057 y Fn(am)283 1291 y Fu(Argue)g(that)g(this)f(means)h -(that)f(if)f Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(\))1959 1255 y Fi(\003)2030 1291 y Fs(s)2078 1255 y -Fi(0)2134 1291 y Fu(then)i Ft(h)o(C)7 b(S)g Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(],)33 b Fo(")p Fu(,)f Fs(s)8 -b Ft(i)33 b Fh(\003)3025 1255 y Fi(\003)3097 1291 y Ft(h)p -Fo(")o Fu(,)g Fo(")p Fu(,)f Fs(s)3394 1255 y Fi(0)3418 -1291 y Ft(i)o Fu(.)198 b Fh(2)430 1596 y Fu(The)33 b(second)h(part)e -(of)g(the)h(pro)s(of)e(is)h(to)g(sho)m(w)i(that)e(whenev)m(er)j -Fw(AM)d Fu(mak)m(es)h(a)f(sequence)283 1717 y(of)f(mo)m(v)m(es)h(from)e -(a)h(con\014guration)g(with)g(an)g Fs(empty)40 b Fu(ev)-5 -b(aluation)29 b(stac)m(k)k(to)e(another)g(con\014gu-)283 -1837 y(ration)j(with)g(an)h Fs(empty)44 b Fu(ev)-5 b(aluation)33 -b(stac)m(k,)k(then)e(the)h(structural)e(op)s(erational)f(seman)m(tics) -283 1957 y(can)39 b(mak)m(e)g(a)f(similar)d(c)m(hange)40 -b(of)e(con\014gurations.)60 b(Note)39 b(that)f Fw(AM)h -Fu(ma)m(y)f(ha)m(v)m(e)i(to)e(mak)m(e)283 2078 y(more)e(than)g(one)h -(step)g(to)f(arriv)m(e)g(at)g(a)g(con\014guration)g(with)g(an)g(empt)m -(y)h(stac)m(k,)h(due)f(to)f(the)283 2198 y(w)m(a)m(y)48 -b(it)e(ev)-5 b(aluates)47 b(expressions;)56 b(in)46 b(the)h(structural) -f(op)s(erational)f(seman)m(tics,)50 b(ho)m(w)m(ev)m(er,)283 -2319 y(expressions)35 b(are)d(ev)-5 b(aluated)33 b(as)f(part)h(of)f(a)g -(single)g(step.)283 2635 y Fw(Exercise)37 b(3.27)49 b -Fu(**)32 b(Assume)h(that)g Fo(\015)1734 2650 y Fn(sos)1861 -2635 y Ft(\031)g Fo(\015)2039 2599 y Fn(1)2027 2660 y(am)2158 -2635 y Fu(and)527 2893 y Fo(\015)595 2857 y Fn(1)583 -2918 y(am)714 2893 y Fh(\003)g Fo(\015)892 2857 y Fn(2)880 -2918 y(am)1011 2893 y Fh(\003)g Ft(\001)17 b(\001)g(\001)31 -b Fh(\003)i Fo(\015)1447 2857 y Fn(k)1436 2918 y(am)283 -3152 y Fu(where)e(k)p Fo(>)p Fu(1)e(and)h(only)f Fo(\015)1232 -3116 y Fn(1)1221 3177 y(am)1348 3152 y Fu(and)g Fo(\015)1602 -3116 y Fn(k)1590 3177 y(am)1718 3152 y Fu(ha)m(v)m(e)h(empt)m(y)g(ev)-5 -b(aluation)28 b(stac)m(ks)j(\(that)e(is,)g(are)h(of)e(the)283 -3272 y(form)k Ft(h)p Fs(c)6 b Fu(,)32 b Fo(")o Fu(,)h -Fs(s)8 b Ft(i)p Fu(\).)43 b(Sho)m(w)34 b(that)e(there)h(exists)h(a)e -(con\014guration)g Fo(\015)2679 3236 y Fi(0)2679 3297 -y Fn(sos)2806 3272 y Fu(suc)m(h)i(that)527 3531 y Fo(\015)583 -3546 y Fn(sos)711 3531 y Ft(\))e Fo(\015)899 3495 y Fi(0)899 -3555 y Fn(sos)1027 3531 y Fu(and)g Fo(\015)1272 3495 -y Fi(0)1272 3555 y Fn(sos)1400 3531 y Ft(\031)h Fo(\015)1578 -3495 y Fn(k)1566 3555 y(am)283 3789 y Fu(Argue)g(that)g(this)f(means)h -(that)f(if)f Ft(hC)6 b(S)i Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b Fo(")o Fu(,)g Fs(s)8 b Ft(i)32 b Fh(\003)2243 -3753 y Fi(\003)2315 3789 y Ft(h)p Fo(")o Fu(,)h Fo(")o -Fu(,)g Fs(s)2612 3753 y Fi(0)2635 3789 y Ft(i)g Fu(then)g -Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 b(\))3313 -3753 y Fi(\003)3385 3789 y Fs(s)3433 3753 y Fi(0)3456 -3789 y Fu(.)198 b Fh(2)283 4095 y Fw(Exercise)37 b(3.28)49 -b Fu(Sho)m(w)e(that)f(Exercises)i(3.26)d(and)i(3.27)e(together)i -(constitute)f(a)g(direct)283 4215 y(pro)s(of)32 b(of)g -Ft(S)717 4230 y Fn(sos)812 4215 y Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])33 b(=)f Ft(S)1163 4230 y Fn(am)1261 4215 -y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 b(for)f(all)e(statemen)m -(ts)k Fs(S)44 b Fu(of)32 b Fw(While)p Fu(.)912 b Fh(2)430 -4520 y Fu(The)41 b(success)i(of)d(this)g(approac)m(h)h(relies)e(on)i -(the)f(t)m(w)m(o)h(seman)m(tics)g(pro)s(ceeding)f(in)g -Fs(lo)-5 b(ck-)283 4641 y(step)p Fu(:)51 b(that)36 b(one)h(is)f(able)f -(to)h(\014nd)h(con\014gurations)f(in)f(the)i(t)m(w)m(o)g(deriv)-5 -b(ation)35 b(sequences)k(that)283 4761 y(corresp)s(ond)e(to)f(one)g -(another)g(\(as)h(sp)s(eci\014ed)f(b)m(y)h(the)g(bisim)m(ulation)32 -b(relation\).)52 b(Often)36 b(this)283 4882 y(is)41 b(not)g(p)s -(ossible)f(and)i(then)f(one)h(has)f(to)g(raise)g(the)g(lev)m(el)g(of)f -(abstraction)h(for)f(one)i(of)e(the)283 5002 y(seman)m(tics.)h(This)23 -b(is)g(exactly)h(what)f(happ)s(ens)i(when)f(the)g(structural)f(op)s -(erational)e(seman)m(tics)283 5122 y(is)31 b(replaced)g(b)m(y)h(the)f -(natural)f(seman)m(tics:)43 b(w)m(e)31 b(do)g(not)g(care)g(ab)s(out)g -(the)g(individual)d(steps)k(of)283 5243 y(the)h(execution)h(but)f(only) -f(on)g(the)h(result.)430 5374 y(The)27 b(pro)s(of)f(tec)m(hnique)i -(emplo)m(y)m(ed)f(in)e(the)i(ab)s(o)m(v)m(e)g(sk)m(etc)m(h)i(of)d(pro)s -(of)g(ma)m(y)g(b)s(e)h(summarized)283 5494 y(as)33 b(follo)m(ws:)p -eop -%%Page: 83 93 -83 92 bop 0 130 a Fw(3.4)112 b(An)38 b(alternativ)m(e)e(pro)s(of)i(tec) -m(hnique)1593 b(83)p 0 193 3473 4 v 0 419 3470 4 v 0 -436 V -2 643 4 208 v 15 643 V 1088 564 a(Pro)s(of)32 -b(Summary)g(for)h(While)p Fu(:)p 3452 643 V 3469 643 -V -2 851 V 15 851 V 513 772 a Fw(Correctness)g(of)g(Implemen)m(tation)d -(using)i(Bisim)m(ulation)p 3452 851 V 3469 851 V 0 854 -3470 4 v -2 1464 4 610 v 15 1464 V 66 1020 a Fu(1:)143 -b(Pro)m(v)m(e)36 b(that)e(one)g(step)h(in)e(the)i(structural)f(op)s -(erational)e(seman)m(tics)i(can)g(b)s(e)h(sim)m(u-)285 -1140 y(lated)j(b)m(y)i(a)f(non-empt)m(y)g(sequence)i(of)d(steps)j(on)d -(the)i(abstract)f(mac)m(hine.)61 b(Sho)m(w)285 1260 y(that)56 -b(this)f(extends)j(to)d(sequences)k(of)c(steps)i(in)e(the)h(structural) -g(op)s(erational)285 1381 y(seman)m(tics.)p 3452 1464 -V 3469 1464 V -2 1993 4 529 v 15 1993 V 66 1549 a(2:)143 -b(Pro)m(v)m(e)44 b(that)e(a)f(carefully)g(selected)j(non-empt)m(y)e -(sequence)i(of)e(steps)h(on)f(the)h(ab-)285 1669 y(stract)d(mac)m(hine) -e(can)h(b)s(e)g(sim)m(ulated)f(b)m(y)i(a)f(step)g(in)g(the)g -(structural)g(op)s(erational)285 1789 y(seman)m(tics.)49 -b(Sho)m(w)35 b(that)f(this)g(extends)i(to)e(more)g(general)g(sequences) -j(of)d(steps)h(on)285 1910 y(the)e(abstract)g(mac)m(hine.)p -3452 1993 V 3469 1993 V 0 1996 3470 4 v 0 2013 V 0 2209 -a(Again,)41 b(this)g(metho)s(d)f(needs)i(to)e(b)s(e)g(mo)s(di\014ed)g -(when)h(considering)f(a)g(programming)e(lan-)0 2329 y(guage)32 -b(with)h(additional)c(constructs)34 b(or)f(a)f(di\013eren)m(t)h -(abstract)g(mac)m(hine.)0 2557 y Fw(Exercise)j(3.29)49 -b Fu(*)34 b(Consider)f(the)h(follo)m(wing,)e(seemingly)g(inno)s(cen)m -(t,)i(mo)s(di\014cation)d(of)i(the)0 2678 y(structural)e(op)s -(erational)d(seman)m(tics)j(of)g(T)-8 b(able)30 b(2.2)h(in)f(whic)m(h)h -([while)2571 2693 y Fn(sos)2666 2678 y Fu(])g(is)f(replaced)h(b)m(y)h -(the)0 2798 y(t)m(w)m(o)h(axioms:)244 3001 y Ft(h)p Fr(while)g -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 -b(\))f(h)p Fs(S)12 b Fu(;)32 b Fr(while)i Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b Fu(if)g Ft(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 -b Fw(tt)244 3169 y Ft(h)p Fr(while)h Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(\))f Fs(s)878 -b Fu(if)32 b Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fw(\013)0 3372 y Fu(Sho)m(w)h(that)g(the)g -(mo)s(di\014ed)e(seman)m(tic)h(function,)h Ft(S)1916 -3336 y Fi(0)1916 3397 y Fn(sos)2011 3372 y Fu(,)g(satis\014es)244 -3576 y Ft(S)312 3591 y Fn(sos)407 3576 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])33 b(=)g Ft(S)758 3540 y Fi(0)758 -3600 y Fn(sos)853 3576 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])33 b(for)f(all)f(statemen)m(ts)i Fs(S)45 b Fu(of)32 -b Fw(While)0 3779 y Fu(In)m(v)m(estigate)h(whether)h(or)d(not)h(this)g -(complicates)f(the)h(pro)s(ofs)g(of)g(\(analogues)f(of)7 -b(\))32 b(Exercises)0 3900 y(3.26)g(and)h(3.27.)2801 -b Fh(2)p eop -%%Page: 84 94 -84 93 bop 251 130 a Fw(84)1535 b(3)112 b(Pro)m(v)-6 b(ably)36 -b(Correct)h(Implemen)m(tation)p 251 193 3473 4 v eop -%%Page: 85 95 -85 94 bop 0 1184 a Fv(Chapter)78 b(4)0 1604 y(Denotational)g(Seman)-6 -b(tics)0 2062 y Fu(In)45 b(the)g(op)s(erational)d(approac)m(h)j(w)m(e)h -(w)m(ere)g(in)m(terested)g(in)e Fs(how)54 b Fu(a)45 b(program)e(is)h -(executed.)0 2182 y(This)37 b(is)g(con)m(trary)h(to)f(the)h -(denotational)d(approac)m(h)j(where)g(w)m(e)h(are)e(merely)g(in)m -(terested)h(in)0 2302 y(the)32 b Fs(e\013e)-5 b(ct)40 -b Fu(of)30 b(executing)i(a)f(program.)42 b(By)31 b(e\013ect)h(w)m(e)g -(here)g(mean)f(an)g(asso)s(ciation)e(b)s(et)m(w)m(een)0 -2423 y(initial)k(states)38 b(and)e(\014nal)g(states.)57 -b(The)38 b(idea)e(then)h(is)g(to)f(de\014ne)i(a)e Fs(semantic)i -(function)44 b Fu(for)0 2543 y(eac)m(h)27 b Fs(syntactic)j(c)-5 -b(ate)g(gory)p Fu(.)41 b(It)27 b(maps)f(eac)m(h)h Fs(syntactic)j(c)-5 -b(onstruct)36 b Fu(to)26 b(a)h Fs(mathematic)-5 b(al)28 -b(obje)-5 b(ct)p Fu(,)0 2664 y(often)33 b(a)f(function,)g(that)g -(describ)s(es)i(the)f(e\013ect)g(of)g(executing)g(that)f(construct.)146 -2789 y(The)i(hallmark)c(of)i(denotational)e(seman)m(tics)j(is)f(that)g -(seman)m(tic)g(functions)h(are)f(de\014ned)0 2909 y Fs(c)-5 -b(omp)g(ositional)5 b(ly)p Fu(,)31 b(that)i(is)145 3137 -y Ft(\017)49 b Fu(there)d(is)e(a)h(seman)m(tic)g(clause)g(for)g(eac)m -(h)h(of)e(the)i(basis)f(elemen)m(ts)g(of)g(the)h(syn)m(tactic)244 -3257 y(category)-8 b(,)33 b(and)145 3485 y Ft(\017)49 -b Fu(for)32 b(eac)m(h)h(metho)s(d)f(of)f(constructing)i(a)f(comp)s -(osite)f(elemen)m(t)h(\(in)g(the)g(syn)m(tactic)i(cate-)244 -3605 y(gory\))40 b(there)i(is)e(a)g(seman)m(tic)g(clause)h(de\014ned)h -(in)e(terms)g(of)h(the)g(seman)m(tic)f(function)244 3726 -y(applied)31 b(to)i(the)g(immediate)c(constituen)m(ts)34 -b(of)e(the)h(comp)s(osite)f(elemen)m(t.)0 3953 y(The)j(functions)e -Ft(A)h Fu(and)f Ft(B)k Fu(de\014ned)f(in)d(Chapter)h(1)f(are)h -(examples)g(of)f(denotational)f(de\014ni-)0 4073 y(tions:)51 -b(the)36 b(mathematical)e(ob)5 b(jects)37 b(asso)s(ciated)g(with)f -(arithmetic)e(expressions)k(are)e(func-)0 4194 y(tions)26 -b(in)f Fw(State)33 b Ft(!)f Fw(Z)27 b Fu(and)f(those)h(asso)s(ciated)g -(with)e(b)s(o)s(olean)g(expressions)j(are)f(functions)f(in)0 -4314 y Fw(State)33 b Ft(!)f Fw(T)p Fu(.)42 b(The)29 b(functions)f -Ft(S)1247 4329 y Fn(ns)1347 4314 y Fu(and)g Ft(S)1600 -4329 y Fn(sos)1724 4314 y Fu(asso)s(ciate)g(mathematical)d(ob)5 -b(jects)29 b(with)f(eac)m(h)0 4435 y(statemen)m(t,)43 -b(namely)d(partial)f(functions)h(in)g Fw(State)h Fo(,)-17 -b Ft(!)41 b Fw(State)p Fu(.)68 b(Ho)m(w)m(ev)m(er,)45 -b(they)d(are)e Fs(not)0 4555 y Fu(examples)28 b(of)g(denotational)e -(de\014nitions)i(b)s(ecause)i(they)f(are)f Fs(not)38 -b Fu(de\014ned)29 b(comp)s(ositionally)-8 b(.)0 4918 -y Fj(4.1)161 b(Direct)53 b(st)l(yle)g(seman)l(tics:)70 -b(sp)t(eci\014cation)0 5147 y Fu(The)32 b(e\013ect)g(of)f(executing)h -(a)f(statemen)m(t)g Fs(S)43 b Fu(is)31 b(to)g(c)m(hange)h(the)g(state)f -(so)h(w)m(e)g(shall)e(de\014ne)i(the)0 5267 y(meaning)f(of)h -Fs(S)45 b Fu(to)32 b(b)s(e)h(a)f(partial)e(function)i(on)h(states:)244 -5494 y Ft(S)312 5509 y Fn(ds)383 5494 y Fu(:)43 b Fw(Stm)32 -b Ft(!)g Fu(\()p Fw(State)h Fo(,)-17 b Ft(!)32 b Fw(State)p -Fu(\))1687 5849 y(85)p eop -%%Page: 86 96 -86 95 bop 251 130 a Fw(86)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 1501 -4 1083 v 666 519 a Ft(S)733 534 y Fn(ds)805 519 y Fu([)-17 -b([)p Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 b(])q Fs(s)40 -b Fu(=)33 b Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p Fu([)-17 -b([)q Fs(a)7 b Fu(])-17 b(])p Fs(s)8 b Fu(])666 710 y -Ft(S)733 725 y Fn(ds)805 710 y Fu([)-17 b([)p Fr(skip)p -Fu(])g(])34 b(=)f(id)666 901 y Ft(S)733 916 y Fn(ds)805 -901 y Fu([)-17 b([)p Fs(S)909 916 y Fn(1)981 901 y Fu(;)33 -b Fs(S)1108 916 y Fn(2)1147 901 y Fu(])-17 b(])33 b(=)f -Ft(S)1393 916 y Fn(ds)1464 901 y Fu([)-17 b([)q Fs(S)1569 -916 y Fn(2)1608 901 y Fu(])g(])33 b Ft(\016)g(S)1828 -916 y Fn(ds)1900 901 y Fu([)-17 b([)p Fs(S)2004 916 y -Fn(1)2043 901 y Fu(])g(])666 1092 y Ft(S)733 1107 y Fn(ds)805 -1092 y Fu([)g([)p Fr(if)33 b Fs(b)39 b Fr(then)33 b Fs(S)1365 -1107 y Fn(1)1437 1092 y Fr(else)h Fs(S)1742 1107 y Fn(2)1781 -1092 y Fu(])-17 b(])33 b(=)f(cond\()p Ft(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)33 b Ft(S)2520 1107 y Fn(ds)2591 -1092 y Fu([)-17 b([)q Fs(S)2696 1107 y Fn(1)2735 1092 -y Fu(])g(],)33 b Ft(S)2900 1107 y Fn(ds)2971 1092 y Fu([)-17 -b([)q Fs(S)3076 1107 y Fn(2)3115 1092 y Fu(])g(]\))666 -1284 y Ft(S)733 1299 y Fn(ds)805 1284 y Fu([)g([)p Fr(while)34 -b Fs(b)k Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b(=)g(FIX)f -Fs(F)1138 1451 y Fu(where)i Fs(F)45 b(g)c Fu(=)33 b(cond\()p -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b -Fs(g)41 b Ft(\016)33 b(S)2453 1466 y Fn(ds)2524 1451 -y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))p -3753 1501 V 283 1504 3473 4 v 1054 1665 a(T)-8 b(able)33 -b(4.1:)43 b(Denotational)30 b(seman)m(tics)i(for)h Fw(While)283 -1920 y Fu(This)k(is)f(also)g(the)h(functionalit)m(y)e(of)h -Ft(S)1743 1935 y Fn(ns)1850 1920 y Fu(and)h Ft(S)2112 -1935 y Fn(sos)2244 1920 y Fu(and)f(the)h(need)h(for)e(partialit)m(y)e -(is)i(again)283 2041 y(demonstrated)26 b(b)m(y)g(the)g(statemen)m(t)f -Fr(while)i(true)f(do)g(skip)p Fu(.)42 b(The)26 b(de\014nition)e(is)h -(summarized)283 2161 y(in)38 b(T)-8 b(able)39 b(4.1)f(and)h(w)m(e)g -(explain)f(it)g(in)g(detail)f(b)s(elo)m(w;)k(in)d(particular,)h(w)m(e)g -(shall)f(de\014ne)h(the)283 2281 y Fs(auxiliary)c(functions)40 -b Fu(`cond')34 b(and)e(FIX.)430 2402 y(F)-8 b(or)32 b(assignmen)m(t)g -(the)h(clause)527 2590 y Ft(S)595 2605 y Fn(ds)666 2590 -y Fu([)-17 b([)q Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 -b(])q Fs(s)40 b Fu(=)33 b Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])283 -2778 y(ensures)34 b(that)e(if)f Ft(S)993 2793 y Fn(ds)1064 -2778 y Fu([)-17 b([)q Fs(x)43 b Fu(:=)32 b Fs(a)7 b Fu(])-17 -b(])q Fs(s)40 b Fu(=)32 b Fs(s)1656 2741 y Fi(0)1711 -2778 y Fu(then)h Fs(s)1981 2741 y Fi(0)2036 2778 y Fs(x)44 -b Fu(=)31 b Ft(A)p Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])p -Fs(s)40 b Fu(and)32 b Fs(s)2761 2741 y Fi(0)2817 2778 -y Fs(y)41 b Fu(=)32 b Fs(s)40 b(y)g Fu(for)32 b Fs(y)9 -b Ft(6)p Fu(=)p Fs(x)j Fu(.)43 b(The)283 2898 y(clause)35 -b(for)g Fr(skip)h Fu(expresses)h(that)e(no)g(state)g(c)m(hange)h(tak)m -(es)g(place:)47 b(the)36 b(function)e(id)g(is)g(the)283 -3018 y(iden)m(tit)m(y)f(function)f(on)g Fw(State)h Fu(so)g -Ft(S)1637 3033 y Fn(ds)1708 3018 y Fu([)-17 b([)p Fr(skip)p -Fu(])g(])r Fs(s)41 b Fu(=)32 b Fs(s)8 b Fu(.)430 3139 -y(F)-8 b(or)32 b(sequencing)i(the)f(clause)f(is)527 3327 -y Ft(S)595 3342 y Fn(ds)666 3327 y Fu([)-17 b([)q Fs(S)771 -3342 y Fn(1)843 3327 y Fu(;)32 b Fs(S)969 3342 y Fn(2)1009 -3327 y Fu(])-17 b(])33 b(=)f Ft(S)1255 3342 y Fn(ds)1326 -3327 y Fu([)-17 b([)q Fs(S)1431 3342 y Fn(2)1470 3327 -y Fu(])g(])33 b Ft(\016)f(S)1690 3342 y Fn(ds)1761 3327 -y Fu([)-17 b([)q Fs(S)1866 3342 y Fn(1)1905 3327 y Fu(])g(])283 -3515 y(So)42 b(the)g(e\013ect)h(of)e(executing)i Fs(S)1505 -3530 y Fn(1)1586 3515 y Fu(;)j Fs(S)1726 3530 y Fn(2)1807 -3515 y Fu(is)41 b(the)i(functional)d(comp)s(osition)f(of)i(the)i -(e\013ect)f(of)283 3635 y(executing)26 b Fs(S)779 3650 -y Fn(1)843 3635 y Fu(and)e(that)h(of)f(executing)i Fs(S)1827 -3650 y Fn(2)1866 3635 y Fu(.)41 b(F)-8 b(unctional)22 -b(comp)s(osition)h(is)h(de\014ned)i(suc)m(h)g(that)283 -3755 y(if)31 b(one)h(of)f(the)h(functions)g(is)f(unde\014ned)j(on)e(a)f -(giv)m(en)h(argumen)m(t)f(then)i(their)e(comp)s(osition)e(is)283 -3876 y(unde\014ned)35 b(as)e(w)m(ell.)42 b(Giv)m(en)33 -b(a)f(state)h Fs(s)8 b Fu(,)33 b(w)m(e)g(therefore)h(ha)m(v)m(e)527 -4064 y Ft(S)595 4079 y Fn(ds)666 4064 y Fu([)-17 b([)q -Fs(S)771 4079 y Fn(1)843 4064 y Fu(;)32 b Fs(S)969 4079 -y Fn(2)1009 4064 y Fu(])-17 b(])p Fs(s)846 4228 y Fu(=)99 -b(\()p Ft(S)1127 4243 y Fn(ds)1198 4228 y Fu([)-17 b([)q -Fs(S)1303 4243 y Fn(2)1342 4228 y Fu(])g(])33 b Ft(\016)g(S)1562 -4243 y Fn(ds)1634 4228 y Fu([)-17 b([)p Fs(S)1738 4243 -y Fn(1)1777 4228 y Fu(])g(])q(\))p Fs(s)846 4735 y Fu(=)1021 -4312 y Fg(8)1021 4386 y(>)1021 4411 y(>)1021 4436 y(>)1021 -4461 y(>)1021 4486 y(>)1021 4511 y(>)1021 4536 y(>)1021 -4561 y(>)1021 4586 y(>)1021 4611 y(>)1021 4635 y(<)1021 -4785 y(>)1021 4810 y(>)1021 4835 y(>)1021 4860 y(>)1021 -4885 y(>)1021 4909 y(>)1021 4934 y(>)1021 4959 y(>)1021 -4984 y(>)1021 5009 y(>)1021 5034 y(:)1137 4399 y Fs(s)1185 -4363 y Fi(00)1455 4399 y Fu(if)32 b(there)h(exists)h -Fs(s)2112 4363 y Fi(0)2167 4399 y Fu(suc)m(h)g(that)f -Ft(S)2667 4414 y Fn(ds)2738 4399 y Fu([)-17 b([)p Fs(S)2842 -4414 y Fn(1)2882 4399 y Fu(])g(])p Fs(s)41 b Fu(=)32 -b Fs(s)3156 4363 y Fi(0)1455 4567 y Fu(and)h Ft(S)1713 -4582 y Fn(ds)1784 4567 y Fu([)-17 b([)q Fs(S)1889 4582 -y Fn(2)1928 4567 y Fu(])g(])q Fs(s)2014 4531 y Fi(0)2069 -4567 y Fu(=)33 b Fs(s)2226 4531 y Fi(00)1137 4734 y Fu(undef)p -1137 4747 236 4 v 83 w(if)f Ft(S)1613 4749 y Fn(ds)1684 -4734 y Fu([)-17 b([)p Fs(S)1788 4749 y Fn(1)1828 4734 -y Fu(])g(])p Fs(s)41 b Fu(=)32 b(undef)p 2054 4747 V -1455 4902 a(or)h(if)e(there)i(exists)h Fs(s)2231 4866 -y Fi(0)2287 4902 y Fu(suc)m(h)g(that)e Ft(S)2786 4917 -y Fn(ds)2857 4902 y Fu([)-17 b([)q Fs(S)2962 4917 y Fn(1)3001 -4902 y Fu(])g(])p Fs(s)41 b Fu(=)32 b Fs(s)3275 4866 -y Fi(0)1455 5070 y Fu(but)h Ft(S)1702 5085 y Fn(ds)1773 -5070 y Fu([)-17 b([)q Fs(S)1878 5085 y Fn(2)1917 5070 -y Fu(])g(])q Fs(s)2003 5033 y Fi(0)2059 5070 y Fu(=)32 -b(undef)p 2167 5083 V 283 5254 a(It)46 b(follo)m(ws)f(that)h(the)g -(sequencing)h(construct)g(will)d(only)h(giv)m(e)h(a)f(de\014ned)j -(result)d(if)g(b)s(oth)283 5374 y(comp)s(onen)m(ts)34 -b(do.)430 5494 y(F)-8 b(or)32 b(conditional)e(the)j(clause)f(is)p -eop -%%Page: 87 97 -87 96 bop 0 130 a Fw(4.1)112 b(Direct)36 b(st)m(yle)g(seman)m(tics:)50 -b(sp)s(eci\014cation)1342 b(87)p 0 193 3473 4 v 244 515 -a Ft(S)312 530 y Fn(ds)383 515 y Fu([)-17 b([)p Fr(if)34 -b Fs(b)k Fr(then)c Fs(S)944 530 y Fn(1)1015 515 y Fr(else)g -Fs(S)1320 530 y Fn(2)1359 515 y Fu(])-17 b(])33 b(=)g(cond\()p -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b -Ft(S)2098 530 y Fn(ds)2169 515 y Fu([)-17 b([)q Fs(S)2274 -530 y Fn(1)2313 515 y Fu(])g(])q(,)32 b Ft(S)2478 530 -y Fn(ds)2549 515 y Fu([)-17 b([)q Fs(S)2654 530 y Fn(2)2693 -515 y Fu(])g(])q(\))0 715 y(and)33 b(the)g(auxiliary)d(function)i -(`cond')h(has)g(functionalit)m(y)244 915 y(cond:)44 b(\()p -Fw(State)32 b Ft(!)h Fw(T)p Fu(\))f Ft(\002)h Fu(\()p -Fw(State)f Fo(,)-17 b Ft(!)33 b Fw(State)p Fu(\))g Ft(\002)g -Fu(\()p Fw(State)f Fo(,)-17 b Ft(!)33 b Fw(State)p Fu(\))515 -1082 y Ft(!)f Fu(\()p Fw(State)h Fo(,)-17 b Ft(!)32 b -Fw(State)p Fu(\))0 1282 y(and)h(is)f(de\014ned)i(b)m(y)244 -1563 y(cond\()p Fs(p)6 b Fu(,)33 b Fs(g)652 1578 y Fn(1)691 -1563 y Fu(,)f Fs(g)804 1578 y Fn(2)843 1563 y Fu(\))h -Fs(s)41 b Fu(=)1103 1389 y Fg(8)1103 1464 y(<)1103 1613 -y(:)1218 1479 y Fs(g)1272 1494 y Fn(1)1344 1479 y Fs(s)91 -b Fu(if)31 b Fs(p)39 b(s)h Fu(=)33 b Fw(tt)1218 1646 -y Fs(g)1272 1661 y Fn(2)1344 1646 y Fs(s)91 b Fu(if)31 -b Fs(p)39 b(s)h Fu(=)33 b Fw(\013)0 1845 y Fu(The)e(\014rst)g -(parameter)f(to)f(`cond')i(is)f(a)g(function)g(that,)g(when)i(supplied) -e(with)f(an)i(argumen)m(t,)0 1965 y(will)d(select)i(either)g(the)h -(second)g(or)f(the)g(third)f(parameter)h(of)f(`cond')i(and)f(then)h -(supply)g(that)0 2085 y(parameter)h(with)g(the)h(same)g(argumen)m(t.)43 -b(Th)m(us)34 b(w)m(e)g(ha)m(v)m(e)244 2285 y Ft(S)312 -2300 y Fn(ds)383 2285 y Fu([)-17 b([)p Fr(if)34 b Fs(b)k -Fr(then)c Fs(S)944 2300 y Fn(1)1015 2285 y Fr(else)g -Fs(S)1320 2300 y Fn(2)1359 2285 y Fu(])-17 b(])33 b Fs(s)530 -2450 y Fu(=)99 b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(],)33 b Ft(S)1266 2465 y Fn(ds)1337 2450 -y Fu([)-17 b([)q Fs(S)1442 2465 y Fn(1)1481 2450 y Fu(])g(],)33 -b Ft(S)1646 2465 y Fn(ds)1717 2450 y Fu([)-17 b([)q Fs(S)1822 -2465 y Fn(2)1861 2450 y Fu(])g(])q(\))32 b Fs(s)530 2870 -y Fu(=)705 2546 y Fg(8)705 2621 y(>)705 2646 y(>)705 -2670 y(>)705 2695 y(>)705 2720 y(>)705 2745 y(>)705 2770 -y(<)705 2920 y(>)705 2944 y(>)705 2969 y(>)705 2994 y(>)705 -3019 y(>)705 3044 y(>)705 3069 y(:)821 2617 y Fs(s)869 -2581 y Fi(0)1139 2617 y Fu(if)g Ft(B)s Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(and)h -Ft(S)1990 2632 y Fn(ds)2061 2617 y Fu([)-17 b([)p Fs(S)2165 -2632 y Fn(1)2205 2617 y Fu(])g(])p Fs(s)41 b Fu(=)32 -b Fs(s)2479 2581 y Fi(0)1139 2785 y Fu(or)h(if)e Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 -b Fw(\013)g Fu(and)f Ft(S)2087 2800 y Fn(ds)2158 2785 -y Fu([)-17 b([)q Fs(S)2263 2800 y Fn(2)2302 2785 y Fu(])g(])q -Fs(s)40 b Fu(=)33 b Fs(s)2577 2749 y Fi(0)821 2953 y -Fu(undef)p 821 2966 236 4 v 83 w(if)f Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(tt)g -Fu(and)h Ft(S)1990 2968 y Fn(ds)2061 2953 y Fu([)-17 -b([)p Fs(S)2165 2968 y Fn(1)2205 2953 y Fu(])g(])p Fs(s)41 -b Fu(=)32 b(undef)p 2431 2966 V 1139 3120 a(or)h(if)e -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)40 -b Fu(=)33 b Fw(\013)g Fu(and)f Ft(S)2087 3135 y Fn(ds)2158 -3120 y Fu([)-17 b([)q Fs(S)2263 3135 y Fn(2)2302 3120 -y Fu(])g(])q Fs(s)40 b Fu(=)33 b(undef)p 2529 3133 V -0 3313 a(So)f(if)e(the)j(selected)g(branc)m(h)f(giv)m(es)h(a)e -(de\014ned)j(result)d(then)i(so)f(do)s(es)g(the)h(conditional.)40 -b(Note)0 3434 y(that)32 b(since)h Ft(B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])33 b(is)g(a)f(total)f(function,)h -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)40 -b Fu(cannot)33 b(b)s(e)g(undef)p 2227 3447 V(.)146 3554 -y(De\014ning)38 b(the)i(e\013ect)g(of)e Fr(while)i Fs(b)45 -b Fr(do)39 b Fs(S)51 b Fu(is)38 b(a)h(ma)5 b(jor)38 b(task.)63 -b(T)-8 b(o)39 b(motiv)-5 b(ate)37 b(the)i(actual)0 3674 -y(de\014nition)32 b(w)m(e)h(\014rst)g(observ)m(e)i(that)d(the)h -(e\013ect)g(of)f Fr(while)i Fs(b)39 b Fr(do)33 b Fs(S)44 -b Fu(m)m(ust)33 b(equal)f(that)h(of)244 3874 y Fr(if)g -Fs(b)38 b Fr(then)c Fu(\()p Fs(S)12 b Fu(;)32 b Fr(while)i -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(\))32 b Fr(else)i(skip)0 -4074 y Fu(Using)e(the)h(parts)g(of)f Ft(S)871 4089 y -Fn(ds)975 4074 y Fu(that)g(ha)m(v)m(e)i(already)e(b)s(een)h(de\014ned,) -h(this)f(giv)m(es)269 4241 y Ft(S)337 4256 y Fn(ds)408 -4241 y Fu([)-17 b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(])-17 b(])33 b(=)f(cond\()p Ft(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)33 b Ft(S)1758 4256 y Fn(ds)1830 -4241 y Fu([)-17 b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(])-17 b(])33 b Ft(\016)f(S)2662 4256 y -Fn(ds)2733 4241 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 -b(id\))294 b(\(*\))0 4409 y(Note)35 b(that)f(w)m(e)i(cannot)f(use)h -(\(*\))e(as)h(the)g(de\014nition)f(of)g Ft(S)2158 4424 -y Fn(ds)2229 4409 y Fu([)-17 b([)q Fr(while)36 b Fs(b)k -Fr(do)c Fs(S)12 b Fu(])-17 b(])35 b(b)s(ecause)h(then)0 -4529 y Ft(S)68 4544 y Fn(ds)172 4529 y Fu(w)m(ould)c -Fs(not)42 b Fu(b)s(e)33 b(a)f(comp)s(ositional)d(de\014nition.)43 -b(Ho)m(w)m(ev)m(er,)35 b(\(*\))d(expresses)j(that)244 -4729 y Ft(S)312 4744 y Fn(ds)383 4729 y Fu([)-17 b([)p -Fr(while)31 b Fs(b)k Fr(do)30 b Fs(S)12 b Fu(])-17 b(])30 -b(m)m(ust)f(b)s(e)g(a)g Fs(\014xe)-5 b(d)32 b(p)-5 b(oint)29 -b Fu(of)f(the)i(functional)e Fs(F)42 b Fu(de\014ned)31 -b(b)m(y)458 4931 y Fs(F)46 b(g)41 b Fu(=)32 b(cond\()p -Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fs(g)41 -b Ft(\016)33 b(S)1491 4946 y Fn(ds)1563 4931 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))0 5133 y(that)39 -b(is)g Ft(S)391 5148 y Fn(ds)462 5133 y Fu([)-17 b([)q -Fr(while)41 b Fs(b)k Fr(do)40 b Fs(S)12 b Fu(])-17 b(])40 -b(=)g Fs(F)52 b Fu(\()p Ft(S)1510 5148 y Fn(ds)1581 5133 -y Fu([)-17 b([)q Fr(while)41 b Fs(b)k Fr(do)40 b Fs(S)12 -b Fu(])-17 b(])q(\).)64 b(In)40 b(this)f(w)m(a)m(y)i(w)m(e)g(will)c -(get)j(a)0 5254 y(comp)s(ositional)28 b(de\014nition)j(of)g -Ft(S)1231 5269 y Fn(ds)1334 5254 y Fu(b)s(ecause)i(when)g(de\014ning)f -Fs(F)44 b Fu(w)m(e)33 b(only)e(apply)h Ft(S)3116 5269 -y Fn(ds)3219 5254 y Fu(to)f(the)0 5374 y(immediate)g(constituen)m(ts)k -(of)f Fr(while)h Fs(b)k Fr(do)c Fs(S)45 b Fu(and)34 b(not)g(to)g(the)g -(construct)h(itself.)46 b(Th)m(us)35 b(w)m(e)0 5494 y(write)p -eop -%%Page: 88 98 -88 97 bop 251 130 a Fw(88)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(S)595 -530 y Fn(ds)666 515 y Fu([)-17 b([)q Fr(while)34 b Fs(b)k -Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b(=)g(FIX)f Fs(F)704 -683 y Fu(where)i Fs(F)45 b(g)c Fu(=)33 b(cond\()p Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Fs(g)41 -b Ft(\016)33 b(S)2019 698 y Fn(ds)2090 683 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))283 897 y(to)i(indicate)e -(that)i Ft(S)1053 912 y Fn(ds)1125 897 y Fu([)-17 b([)p -Fr(while)35 b Fs(b)k Fr(do)c Fs(S)12 b Fu(])-17 b(])33 -b(is)h(a)f(\014xed)i(p)s(oin)m(t)d(of)h Fs(F)13 b Fu(.)34 -b(The)h(functionalit)m(y)c(of)i(the)283 1017 y(auxiliary)e(function)h -(FIX)g(is)527 1231 y(FIX:)h(\(\()p Fw(State)f Fo(,)-17 -b Ft(!)33 b Fw(State)p Fu(\))g Ft(!)f Fu(\()p Fw(State)g -Fo(,)-17 b Ft(!)33 b Fw(State)p Fu(\)\))f Ft(!)g Fu(\()p -Fw(State)h Fo(,)-17 b Ft(!)33 b Fw(State)p Fu(\))283 -1477 y Fw(Example)k(4.1)49 b Fu(Consider)33 b(the)g(statemen)m(t)527 -1691 y Fr(while)h Ft(:)q Fu(\()p Fr(x)e Fu(=)h Fr(0)p -Fu(\))f Fr(do)h(skip)283 1905 y Fu(It)g(is)f(easy)i(to)e(v)m(erify)h -(that)f(the)h(corresp)s(onding)g(functional)e Fs(F)2633 -1868 y Fi(0)2689 1905 y Fu(is)h(de\014ned)i(b)m(y)527 -2200 y(\()p Fs(F)642 2164 y Fi(0)698 2200 y Fs(g)9 b -Fu(\))32 b Fs(s)41 b Fu(=)1011 2026 y Fg(8)1011 2101 -y(<)1011 2250 y(:)1126 2116 y Fs(g)g(s)92 b Fu(if)31 -b Fs(s)41 b Fr(x)32 b Ft(6)p Fu(=)h Fw(0)1126 2283 y -Fs(s)178 b Fu(if)31 b Fs(s)41 b Fr(x)32 b Fu(=)h Fw(0)283 -2496 y Fu(The)h(function)e Fs(g)920 2511 y Fn(1)992 2496 -y Fu(de\014ned)i(b)m(y)527 2791 y Fs(g)581 2806 y Fn(1)653 -2791 y Fs(s)40 b Fu(=)842 2617 y Fg(8)842 2692 y(<)842 -2841 y(:)957 2707 y Fu(undef)p 957 2720 236 4 v 84 w(if)31 -b Fs(s)41 b Fr(x)33 b Ft(6)p Fu(=)f Fw(0)957 2874 y Fs(s)279 -b Fu(if)31 b Fs(s)41 b Fr(x)33 b Fu(=)f Fw(0)283 3091 -y Fu(is)h(a)f(\014xed)i(p)s(oin)m(t)d(of)h Fs(F)1141 -3055 y Fi(0)1197 3091 y Fu(b)s(ecause)577 3386 y(\()p -Fs(F)692 3350 y Fi(0)748 3386 y Fs(g)802 3401 y Fn(1)841 -3386 y Fu(\))g Fs(s)108 b Fu(=)1235 3212 y Fg(8)1235 -3287 y(<)1235 3436 y(:)1350 3302 y Fs(g)1404 3317 y Fn(1)1475 -3302 y Fs(s)91 b Fu(if)32 b Fs(s)41 b Fr(x)32 b Ft(6)p -Fu(=)h Fw(0)1350 3469 y Fs(s)216 b Fu(if)32 b Fs(s)41 -b Fr(x)32 b Fu(=)h Fw(0)1059 3739 y Fu(=)1235 3564 y -Fg(8)1235 3639 y(<)1235 3789 y(:)1350 3654 y Fu(undef)p -1350 3667 V 84 w(if)e Fs(s)41 b Fr(x)32 b Ft(6)p Fu(=)h -Fw(0)1350 3822 y Fs(s)279 b Fu(if)31 b Fs(s)41 b Fr(x)32 -b Fu(=)h Fw(0)1059 3947 y Fu(=)100 b Fs(g)1289 3962 y -Fn(1)1360 3947 y Fs(s)283 4155 y Fu(Next)34 b(w)m(e)g(claim)c(that)i -(the)h(function)f Fs(g)1741 4170 y Fn(2)1813 4155 y Fu(de\014ned)i(b)m -(y)527 4369 y Fs(g)581 4384 y Fn(2)653 4369 y Fs(s)40 -b Fu(=)33 b(undef)p 842 4382 V 33 w(for)f(all)f Fs(s)283 -4583 y Fu(cannot)39 b(b)s(e)g(a)f(\014xed)h(p)s(oin)m(t)f(for)g -Fs(F)1569 4546 y Fi(0)1592 4583 y Fu(.)61 b(The)39 b(reason)g(is)f -(that)g(if)g Fs(s)2661 4546 y Fi(0)2722 4583 y Fu(is)g(a)g(state)h -(with)f Fs(s)3434 4546 y Fi(0)3496 4583 y Fr(x)h Fu(=)f -Fw(0)283 4703 y Fu(then)c(\()p Fs(F)621 4667 y Fi(0)676 -4703 y Fs(g)730 4718 y Fn(2)769 4703 y Fu(\))f Fs(s)888 -4667 y Fi(0)944 4703 y Fu(=)f Fs(s)1100 4667 y Fi(0)1156 -4703 y Fu(whereas)i Fs(g)1579 4718 y Fn(2)1651 4703 y -Fs(s)1699 4667 y Fi(0)1755 4703 y Fu(=)e(undef)p 1863 -4716 V 1 w(.)1555 b Fh(2)430 4946 y Fu(Unfortunately)-8 -b(,)39 b(this)g(do)s(es)f Fs(not)48 b Fu(su\016ce)40 -b(for)e(de\014ning)h Ft(S)2590 4961 y Fn(ds)2662 4946 -y Fu([)-17 b([)p Fr(while)40 b Fs(b)k Fr(do)39 b Fs(S)12 -b Fu(])-17 b(])q(.)61 b(W)-8 b(e)39 b(face)283 5067 y(t)m(w)m(o)34 -b(problems:)429 5281 y Ft(\017)48 b Fu(there)34 b(are)e(functionals)g -(that)g(ha)m(v)m(e)i Fs(mor)-5 b(e)34 b(than)h(one)f(\014xe)-5 -b(d)34 b(p)-5 b(oint)p Fu(,)33 b(and)429 5494 y Ft(\017)48 -b Fu(there)34 b(are)e(functionals)g(that)g(ha)m(v)m(e)i -Fs(no)g(\014xe)-5 b(d)35 b(p)-5 b(oint)41 b Fu(at)32 -b(all.)p eop -%%Page: 89 99 -89 98 bop 0 130 a Fw(4.1)112 b(Direct)36 b(st)m(yle)g(seman)m(tics:)50 -b(sp)s(eci\014cation)1342 b(89)p 0 193 3473 4 v 0 515 -a Fu(The)39 b(functional)e Fs(F)747 479 y Fi(0)808 515 -y Fu(of)h(Example)f(4.1)h(has)h(more)e(than)h(one)h(\014xed)g(p)s(oin)m -(t.)60 b(In)38 b(fact,)i Fs(every)0 636 y Fu(function)34 -b Fs(g)438 600 y Fi(0)495 636 y Fu(of)f Fw(State)h Fo(,)-17 -b Ft(!)35 b Fw(State)f Fu(satisfying)f Fs(g)1820 600 -y Fi(0)1877 636 y Fs(s)42 b Fu(=)34 b Fs(s)42 b Fu(if)33 -b Fs(s)42 b Fr(x)35 b Fu(=)f Fw(0)g Fu(will)e(b)s(e)i(a)g(\014xed)h(p)s -(oin)m(t)0 756 y(of)d Fs(F)188 720 y Fi(0)211 756 y Fu(.)146 -877 y(T)-8 b(o)28 b(giv)m(e)g(an)f(example)h(of)f(a)g(functional)f -(that)i(has)g(no)g(\014xed)g(p)s(oin)m(ts)g(consider)g -Fs(F)3102 892 y Fn(1)3169 877 y Fu(de\014ned)0 997 y(b)m(y)244 -1277 y Fs(F)321 1292 y Fn(1)393 1277 y Fs(g)41 b Fu(=)587 -1103 y Fg(8)587 1178 y(<)587 1327 y(:)703 1193 y Fs(g)757 -1208 y Fn(1)879 1193 y Fu(if)31 b Fs(g)41 b Fu(=)33 b -Fs(g)1217 1208 y Fn(2)703 1360 y Fs(g)757 1375 y Fn(2)879 -1360 y Fu(otherwise)0 1558 y(If)f Fs(g)151 1573 y Fn(1)190 -1558 y Ft(6)p Fu(=)p Fs(g)320 1573 y Fn(2)391 1558 y -Fu(then)h(clearly)f(there)h(will)d(b)s(e)i(no)h(function)e -Fs(g)2061 1573 y Fn(0)2133 1558 y Fu(suc)m(h)j(that)e -Fs(F)2641 1573 y Fn(1)2712 1558 y Fs(g)2766 1573 y Fn(0)2838 -1558 y Fu(=)g Fs(g)3000 1573 y Fn(0)3039 1558 y Fu(.)43 -b(Th)m(us)34 b Fs(F)3433 1573 y Fn(1)0 1678 y Fu(has)f(no)f(\014xed)i -(p)s(oin)m(ts)e(at)h(all.)0 1900 y Fw(Exercise)j(4.2)49 -b Fu(Determine)32 b(the)h(functional)e Fs(F)45 b Fu(asso)s(ciated)33 -b(with)f(the)h(statemen)m(t)244 2099 y Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(0)p Fu(\))f Fr(do)g(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)0 2298 y Fu(using)27 b(the)g(seman)m(tic)g -(equations)h(of)f(T)-8 b(able)26 b(4.1.)42 b(Consider)27 -b(the)h(follo)m(wing)c(partial)h(functions)0 2418 y(of)32 -b Fw(State)h Fo(,)-17 b Ft(!)32 b Fw(State)p Fu(:)244 -2617 y Fs(g)298 2632 y Fn(1)369 2617 y Fs(s)41 b Fu(=)32 -b(undef)p 558 2630 236 4 v 34 w(for)g(all)e Fs(s)244 -2866 y(g)298 2881 y Fn(2)369 2866 y Fs(s)41 b Fu(=)558 -2692 y Fg(8)558 2767 y(<)558 2916 y(:)674 2782 y Fs(s)8 -b Fu([)p Fr(x)p Ft(7!)p Fw(0)p Fu(])83 b(if)31 b Fs(s)41 -b Fr(x)33 b Ft(\025)g Fw(0)674 2949 y Fu(undef)p 674 -2962 V 157 w(if)e Fs(s)41 b Fr(x)33 b Fo(<)f Fw(0)244 -3221 y Fs(g)298 3236 y Fn(3)369 3221 y Fs(s)41 b Fu(=)558 -3046 y Fg(8)558 3121 y(<)558 3271 y(:)674 3136 y Fs(s)8 -b Fu([)p Fr(x)p Ft(7!)p Fw(0)p Fu(])83 b(if)31 b Fs(s)41 -b Fr(x)33 b Ft(\025)g Fw(0)674 3304 y Fs(s)352 b Fu(if)31 -b Fs(s)41 b Fr(x)33 b Fo(<)f Fw(0)244 3476 y Fs(g)298 -3491 y Fn(4)369 3476 y Fs(s)41 b Fu(=)32 b Fs(s)8 b Fu([)p -Fr(x)p Ft(7!)p Fw(0)p Fu(])33 b(for)f(all)f Fs(s)244 -3643 y(g)298 3658 y Fn(5)369 3643 y Fs(s)41 b Fu(=)32 -b Fs(s)41 b Fu(for)32 b(all)f Fs(s)0 3842 y Fu(Determine)h(whic)m(h)h -(of)f(these)i(functions)e(are)h(\014xed)g(p)s(oin)m(ts)g(of)f -Fs(F)13 b Fu(.)955 b Fh(2)0 4064 y Fw(Exercise)36 b(4.3)49 -b Fu(Consider)33 b(the)g(follo)m(wing)d(fragmen)m(t)i(of)g(the)h -(factorial)d(statemen)m(t)244 4263 y Fr(while)k Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\))0 4462 y(Determine)40 b(the)i(functional) -d Fs(F)54 b Fu(asso)s(ciated)41 b(with)g(this)g(statemen)m(t.)70 -b(Determine)40 b(at)h(least)0 4582 y(t)m(w)m(o)33 b(di\013eren)m(t)g -(\014xed)h(p)s(oin)m(ts)e(for)g Fs(F)13 b Fu(.)2047 b -Fh(2)0 4870 y Fp(Requiremen)l(ts)47 b(on)d(the)i(\014xed)e(p)t(oin)l(t) -0 5055 y Fu(Our)h(solution)e(to)i(the)g(t)m(w)m(o)g(problems)g(listed)e -(ab)s(o)m(v)m(e)j(will)d(b)s(e)i(to)f(dev)m(elop)i(a)e(framew)m(ork)0 -5175 y(where)145 5374 y Ft(\017)49 b Fu(w)m(e)36 b(imp)s(ose)d -(requiremen)m(ts)j(on)e(the)i(\014xed)f(p)s(oin)m(ts)g(and)g(sho)m(w)g -(that)g(there)g(is)g(at)f(most)244 5494 y(one)f(\014xed)g(p)s(oin)m(t)f -(ful\014lling)d(these)34 b(requiremen)m(ts,)g(and)p eop -%%Page: 90 100 -90 99 bop 251 130 a Fw(90)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 429 515 a Ft(\017)48 -b Fu(all)35 b(functionals)g(originating)e(from)j(statemen)m(ts)h(in)f -Fw(While)f Fu(do)i(ha)m(v)m(e)h(a)e(\014xed)i(p)s(oin)m(t)527 -636 y(that)33 b(satis\014es)g(these)h(requiremen)m(ts.)430 -833 y(T)-8 b(o)28 b(motiv)-5 b(ate)26 b(our)i(c)m(hoice)h(of)e -(requiremen)m(ts)i(let)f(us)h(consider)f(the)h(execution)f(of)g(a)g -(state-)283 953 y(men)m(t)33 b Fr(while)h Fs(b)k Fr(do)33 -b Fs(S)45 b Fu(from)31 b(a)h(state)h Fs(s)1735 968 y -Fn(0)1775 953 y Fu(.)43 b(There)34 b(are)f(three)g(p)s(ossible)f -(outcomes:)367 1151 y Fw(A)p Fu(:)48 b(it)32 b Fs(terminates)8 -b Fu(,)372 1352 y Fw(B)p Fu(:)48 b(it)32 b Fs(lo)-5 b(ops)40 -b(lo)-5 b(c)g(al)5 b(ly)k Fu(,)32 b(that)g(is)g(there)h(is)g(a)f -(construct)i(in)d Fs(S)45 b Fu(that)32 b(lo)s(ops,)g(or)371 -1553 y Fw(C)p Fu(:)48 b(it)32 b Fs(lo)-5 b(ops)40 b(glob)-5 -b(al)5 b(ly)k Fu(,)32 b(that)g(is)g(the)h(outer)g Fr(while)p -Fu(-construct)h(lo)s(ops.)283 1751 y(W)-8 b(e)40 b(shall)d(no)m(w)j(in) -m(v)m(estigate)e(what)i(can)f(b)s(e)g(said)f(ab)s(out)g(the)i -(functional)d Fs(F)51 b Fu(and)39 b(its)g(\014xed)283 -1871 y(p)s(oin)m(ts)33 b(in)e(eac)m(h)j(of)e(the)h(three)g(cases.)283 -2039 y Fw(The)e(case)h(A)p Fu(:)e(In)h(this)f(case)i(the)f(execution)g -(of)f Fr(while)i Fs(b)37 b Fr(do)31 b Fs(S)42 b Fu(from)29 -b Fs(s)2975 2054 y Fn(0)3046 2039 y Fu(terminates.)42 -b(This)283 2159 y(means)33 b(that)f(there)i(are)e(states)i -Fs(s)1531 2174 y Fn(1)1570 2159 y Fu(,)f Ft(\001)17 b(\001)g(\001)n -Fu(,)33 b Fs(s)1854 2174 y Fn(n)1930 2159 y Fu(suc)m(h)h(that)527 -2438 y Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 -b Fs(s)802 2453 y Fn(i)859 2438 y Fu(=)967 2264 y Fg(8)967 -2338 y(<)967 2488 y(:)1082 2353 y Fw(tt)83 b Fu(if)31 -b(i)p Fo(<)p Fu(n)1082 2521 y Fw(\013)106 b Fu(if)31 -b(i=n)283 2717 y(and)527 2914 y Ft(S)595 2929 y Fn(ds)666 -2914 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])33 b Fs(s)889 -2929 y Fn(i)945 2914 y Fu(=)g Fs(s)1102 2929 y Fn(i+1)1313 -2914 y Fu(for)f(i)p Fo(<)p Fu(n)283 3111 y(An)c(example)g(of)f(a)g -(statemen)m(t)i(and)f(a)f(state)h(satisfying)f(these)i(conditions)e(is) -g(the)h(statemen)m(t)527 3309 y Fr(while)34 b(0)p Ft(\024)q -Fr(x)f(do)g(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)283 3506 -y Fu(and)h(an)m(y)g(state)g(where)h Fr(x)f Fu(has)g(a)f(non-negativ)m -(e)h(v)-5 b(alue.)430 3626 y(Let)40 b Fs(g)666 3641 y -Fn(0)744 3626 y Fu(b)s(e)g(an)m(y)h(\014xed)f(p)s(oin)m(t)f(of)g -Fs(F)13 b Fu(,)40 b(that)g(is)f(assume)h(that)f Fs(F)53 -b(g)2899 3641 y Fn(0)2978 3626 y Fu(=)39 b Fs(g)3147 -3641 y Fn(0)3186 3626 y Fu(.)65 b(In)40 b(the)g(case)283 -3747 y(where)34 b(i)p Fo(<)p Fu(n)e(w)m(e)i(calculate)577 -3919 y Fs(g)631 3934 y Fn(0)703 3919 y Fs(s)751 3934 -y Fn(i)874 3919 y Fu(=)100 b(\()p Fs(F)45 b(g)1251 3934 -y Fn(0)1290 3919 y Fu(\))33 b Fs(s)1409 3934 y Fn(i)874 -4087 y Fu(=)100 b(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q(,)32 b Fs(g)1596 4102 y Fn(0)1668 4087 -y Ft(\016)g(S)1818 4102 y Fn(ds)1889 4087 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(],)33 b(id\))f Fs(s)2291 4102 -y Fn(i)874 4254 y Fu(=)100 b Fs(g)1104 4269 y Fn(0)1175 -4254 y Fu(\()p Ft(S)1281 4269 y Fn(ds)1352 4254 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])33 b Fs(s)1575 4269 y Fn(i)1598 -4254 y Fu(\))874 4422 y(=)100 b Fs(g)1104 4437 y Fn(0)1175 -4422 y Fs(s)1223 4437 y Fn(i+1)283 4612 y Fu(In)33 b(the)g(case)h -(where)g(i=n)d(w)m(e)j(get)577 4801 y Fs(g)631 4816 y -Fn(0)703 4801 y Fs(s)751 4816 y Fn(n)894 4801 y Fu(=)99 -b(\()p Fs(F)46 b(g)1271 4816 y Fn(0)1310 4801 y Fu(\))32 -b Fs(s)1428 4816 y Fn(n)894 4969 y Fu(=)99 b(cond\()p -Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fs(g)1616 -4984 y Fn(0)1687 4969 y Ft(\016)g(S)1838 4984 y Fn(ds)1909 -4969 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))g -Fs(s)2310 4984 y Fn(n)894 5136 y Fu(=)99 b(id)32 b Fs(s)1231 -5151 y Fn(n)894 5304 y Fu(=)99 b Fs(s)1117 5319 y Fn(n)283 -5494 y Fu(Th)m(us)35 b Fs(every)41 b Fu(\014xed)34 b(p)s(oin)m(t)d -Fs(g)1339 5509 y Fn(0)1411 5494 y Fu(of)h Fs(F)45 b Fu(will)31 -b(satisfy)p eop -%%Page: 91 101 -91 100 bop 0 130 a Fw(4.1)112 b(Direct)36 b(st)m(yle)g(seman)m(tics:)50 -b(sp)s(eci\014cation)1342 b(91)p 0 193 3473 4 v 244 515 -a Fs(g)298 530 y Fn(0)369 515 y Fs(s)417 530 y Fn(0)489 -515 y Fu(=)33 b Fs(s)646 530 y Fn(n)0 716 y Fu(so)j(in)e(this)h(case)h -(w)m(e)h(do)e(not)g(obtain)g(an)m(y)h(additional)c(requiremen)m(ts)k -(that)g(will)d(help)i(us)h(to)0 836 y(c)m(ho)s(ose)d(one)g(of)f(the)h -(\014xed)h(p)s(oin)m(ts)e(as)h(the)g(preferred)h(one.)0 -1004 y Fw(The)41 b(case)h(B)p Fu(:)f(In)g(this)g(case)h(the)g -(execution)f(of)g Fr(while)h Fs(b)47 b Fr(do)42 b Fs(S)53 -b Fu(from)39 b Fs(s)2833 1019 y Fn(0)2914 1004 y Fu(lo)s(ops)h -Fs(lo)-5 b(c)g(al)5 b(ly)k Fu(.)0 1124 y(This)33 b(means)f(that)h -(there)g(are)g(states)g Fs(s)1470 1139 y Fn(1)1510 1124 -y Fu(,)f Ft(\001)17 b(\001)g(\001)n Fu(,)33 b Fs(s)1793 -1139 y Fn(n)1869 1124 y Fu(suc)m(h)h(that)244 1324 y -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)486 -1339 y Fn(i)543 1324 y Fu(=)32 b Fw(tt)g Fu(for)g(i)p -Ft(\024)p Fu(n)0 1524 y(and)244 1787 y Ft(S)312 1802 -y Fn(ds)383 1787 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])q Fs(s)573 1802 y Fn(i)629 1787 y Fu(=)738 1612 y -Fg(8)738 1687 y(<)738 1836 y(:)853 1702 y Fs(s)901 1717 -y Fn(i+1)1172 1702 y Fu(for)32 b(i)p Fo(<)p Fu(n)853 -1870 y(undef)p 853 1883 236 4 v 84 w(for)g(i=n)0 2068 -y(An)c(example)f(of)h(a)f(statemen)m(t)h(and)g(a)g(state)g(satisfying)f -(these)i(conditions)d(is)i(the)g(statemen)m(t)244 2268 -y Fr(while)34 b(0)p Ft(\024)p Fr(x)f(do)g Fu(\()p Fr(if)g(x)p -Fu(=)p Fr(0)g(then)h Fu(\()p Fr(while)g(true)f(do)g(skip)p -Fu(\))1264 2436 y Fr(else)h(x)f Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\))0 2636 y(and)h(an)m(y)g(state)g(where)h -Fr(x)f Fu(has)f(a)h(non-negativ)m(e)f(v)-5 b(alue.)146 -2757 y(Let)37 b Fs(g)379 2772 y Fn(0)454 2757 y Fu(b)s(e)f(an)m(y)h -(\014xed)g(p)s(oin)m(t)f(of)f Fs(F)13 b Fu(,)37 b(that)e(is)h -Fs(F)49 b(g)2014 2772 y Fn(0)2089 2757 y Fu(=)36 b Fs(g)2255 -2772 y Fn(0)2294 2757 y Fu(.)55 b(In)36 b(the)h(case)g(where)g(i)p -Fo(<)p Fu(n)e(w)m(e)0 2877 y(obtain)244 3077 y Fs(g)298 -3092 y Fn(0)369 3077 y Fs(s)417 3092 y Fn(i)474 3077 -y Fu(=)d Fs(g)636 3092 y Fn(0)708 3077 y Fs(s)756 3092 -y Fn(i+1)0 3277 y Fu(just)h(as)g(in)f(the)h(previous)g(case.)44 -b(Ho)m(w)m(ev)m(er,)35 b(in)d(the)h(case)g(where)h(i=n)e(w)m(e)h(get) -294 3469 y Fs(g)348 3484 y Fn(0)419 3469 y Fs(s)467 3484 -y Fn(n)610 3469 y Fu(=)100 b(\()p Fs(F)45 b(g)987 3484 -y Fn(0)1026 3469 y Fu(\))33 b Fs(s)1145 3484 y Fn(n)610 -3637 y Fu(=)100 b(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q(,)32 b Fs(g)1332 3652 y Fn(0)1404 3637 -y Ft(\016)g(S)1554 3652 y Fn(ds)1625 3637 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(],)33 b(id\))f Fs(s)2027 3652 -y Fn(n)610 3804 y Fu(=)100 b(\()p Fs(g)878 3819 y Fn(0)949 -3804 y Ft(\016)33 b(S)1099 3819 y Fn(ds)1171 3804 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(\))32 b Fs(s)1431 3819 -y Fn(n)610 3972 y Fu(=)100 b(undef)p 786 3985 V 0 4165 -a(Th)m(us)34 b Fs(any)41 b Fu(\014xed)34 b(p)s(oin)m(t)e -Fs(g)985 4180 y Fn(0)1056 4165 y Fu(of)g Fs(F)46 b Fu(will)30 -b(satisfy)244 4365 y Fs(g)298 4380 y Fn(0)369 4365 y -Fs(s)417 4380 y Fn(0)489 4365 y Fu(=)j(undef)p 598 4378 -V 0 4565 a(so,)e(again,)f(in)g(this)g(case)h(w)m(e)h(do)e(not)g(obtain) -g(an)m(y)h(additional)d(requiremen)m(ts)j(that)f(will)f(help)0 -4686 y(us)k(to)f(c)m(ho)s(ose)i(one)f(of)f(the)h(\014xed)h(p)s(oin)m -(ts)e(as)h(the)g(preferred)g(one.)0 4853 y Fw(The)27 -b(case)g(C)p Fu(:)g(The)h(p)s(oten)m(tial)d(di\013erence)i(b)s(et)m(w)m -(een)i(\014xed)f(p)s(oin)m(ts)e(comes)h(to)f(ligh)m(t)f(when)j(w)m(e)0 -4974 y(consider)j(the)h(p)s(ossibilit)m(y)c(that)j(the)g(execution)h -(of)e Fr(while)j Fs(b)j Fr(do)c Fs(S)42 b Fu(from)30 -b Fs(s)2804 4989 y Fn(0)2874 4974 y Fu(lo)s(ops)g Fs(glob)-5 -b(al)5 b(ly)k Fu(.)0 5094 y(This)33 b(means)f(that)h(there)g(are)g -(in\014nitely)e(man)m(y)h(states)i Fs(s)2145 5109 y Fn(1)2184 -5094 y Fu(,)f Ft(\001)17 b(\001)g(\001)31 b Fu(suc)m(h)j(that)244 -5294 y Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p -Fs(s)486 5309 y Fn(i)543 5294 y Fu(=)32 b Fw(tt)g Fu(for)g(all)e(i)0 -5494 y(and)p eop -%%Page: 92 102 -92 101 bop 251 130 a Fw(92)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(S)595 -530 y Fn(ds)666 515 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])p Fs(s)856 530 y Fn(i)913 515 y Fu(=)32 b Fs(s)1069 -530 y Fn(i+1)1216 515 y Fu(for)g(all)e(i.)283 713 y(An)e(example)g(of)f -(a)g(statemen)m(t)i(and)f(a)f(state)h(satisfying)f(these)i(conditions)e -(is)g(the)h(statemen)m(t)527 912 y Fr(while)34 b Ft(:)q -Fu(\()p Fr(x)p Fu(=)p Fr(0)p Fu(\))e Fr(do)h(skip)283 -1110 y Fu(and)g(an)m(y)g(state)g(where)h Fr(x)f Fu(is)f(not)h(equal)f -(to)g Fw(0)p Fu(.)430 1230 y(Let)g Fs(g)658 1245 y Fn(0)728 -1230 y Fu(b)s(e)g(an)m(y)h(\014xed)g(p)s(oin)m(t)d(of)i -Fs(F)13 b Fu(,)31 b(that)h(is)f Fs(F)45 b(g)2249 1245 -y Fn(0)2319 1230 y Fu(=)32 b Fs(g)2481 1245 y Fn(0)2520 -1230 y Fu(.)43 b(As)32 b(in)f(the)i(previous)f(cases)h(w)m(e)283 -1350 y(get)527 1549 y Fs(g)581 1564 y Fn(0)653 1549 y -Fs(s)701 1564 y Fn(i)757 1549 y Fu(=)g Fs(g)920 1564 -y Fn(0)991 1549 y Fs(s)1039 1564 y Fn(i+1)283 1747 y -Fu(for)f(all)f(i)p Ft(\025)p Fu(0.)43 b(Th)m(us)34 b(w)m(e)g(ha)m(v)m -(e)527 1945 y Fs(g)581 1960 y Fn(0)653 1945 y Fs(s)701 -1960 y Fn(0)773 1945 y Fu(=)e Fs(g)935 1960 y Fn(0)1007 -1945 y Fs(s)1055 1960 y Fn(i)1111 1945 y Fu(for)g(all)f(i)283 -2143 y(and)38 b(w)m(e)g(cannot)f(determine)f(the)i(v)-5 -b(alue)36 b(of)g Fs(g)2007 2158 y Fn(0)2083 2143 y Fs(s)2131 -2158 y Fn(0)2208 2143 y Fu(in)g(this)h(w)m(a)m(y)-8 b(.)57 -b(This)37 b(is)g(the)g(situation)f(in)283 2263 y(whic)m(h)e(the)f(v)-5 -b(arious)31 b(\014xed)j(p)s(oin)m(ts)e(of)g Fs(F)46 b -Fu(ma)m(y)32 b(di\013er.)430 2384 y(This)24 b(is)g(not)g(surprising)g -(b)s(ecause)h(the)g(statemen)m(t)g Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(0)p Fu(\))e Fr(do)h(skip)h Fu(of)d(Example)283 -2504 y(4.1)33 b(has)g(the)g(functional)e Fs(F)1318 2468 -y Fi(0)1373 2504 y Fu(giv)m(en)i(b)m(y)527 2784 y(\()p -Fs(F)642 2748 y Fi(0)698 2784 y Fs(g)9 b Fu(\))32 b Fs(s)41 -b Fu(=)1011 2609 y Fg(8)1011 2684 y(<)1011 2834 y(:)1126 -2699 y Fs(g)g(s)92 b Fu(if)31 b Fs(s)41 b Fr(x)32 b Ft(6)p -Fu(=)h Fw(0)1126 2867 y Fs(s)178 b Fu(if)31 b Fs(s)41 -b Fr(x)32 b Fu(=)h Fw(0)283 3063 y Fu(and)38 b Fs(any)45 -b Fu(partial)35 b(function)i Fs(g)45 b Fu(of)37 b Fw(State)g -Fo(,)-17 b Ft(!)37 b Fw(State)g Fu(satisfying)f Fs(g)46 -b(s)f Fu(=)37 b Fs(s)45 b Fu(if)36 b Fs(s)45 b Fr(x)37 -b Fu(=)g Fw(0)g Fu(will)283 3184 y(indeed)29 b(b)s(e)g(a)f(\014xed)i(p) -s(oin)m(t)e(of)g Fs(F)1461 3148 y Fi(0)1484 3184 y Fu(.)42 -b(Ho)m(w)m(ev)m(er,)32 b(our)d(computational)c(exp)s(erience)30 -b(tells)e(us)h(that)283 3304 y(w)m(e)34 b(w)m(an)m(t)527 -3565 y Ft(S)595 3580 y Fn(ds)666 3565 y Fu([)-17 b([)q -Fr(while)34 b Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(0)p Fu(\))f -Fr(do)g(skip)p Fu(])-17 b(])r Fs(s)1772 3580 y Fn(0)1844 -3565 y Fu(=)1952 3390 y Fg(8)1952 3465 y(<)1952 3614 -y(:)2067 3480 y Fu(undef)p 2067 3493 236 4 v 84 w(if)32 -b Fs(s)2524 3495 y Fn(0)2596 3480 y Fr(x)g Ft(6)p Fu(=)h -Fw(0)2067 3648 y Fs(s)2115 3663 y Fn(0)2386 3648 y Fu(if)f -Fs(s)2524 3663 y Fn(0)2596 3648 y Fr(x)g Fu(=)h Fw(0)283 -3848 y Fu(in)c(order)g(to)g(record)h(the)f(lo)s(oping.)40 -b(Th)m(us)31 b(our)e(preferred)h(\014xed)h(p)s(oin)m(t)d(of)h -Fs(F)3095 3812 y Fi(0)3147 3848 y Fu(is)g(the)g(function)283 -3969 y Fs(g)337 3984 y Fn(0)409 3969 y Fu(de\014ned)34 -b(b)m(y)527 4248 y Fs(g)581 4263 y Fn(0)653 4248 y Fs(s)40 -b Fu(=)842 4074 y Fg(8)842 4149 y(<)842 4298 y(:)957 -4164 y Fu(undef)p 957 4177 V 84 w(if)31 b Fs(s)41 b Fr(x)33 -b Ft(6)p Fu(=)f Fw(0)957 4331 y Fs(s)279 b Fu(if)31 b -Fs(s)41 b Fr(x)33 b Fu(=)f Fw(0)283 4532 y Fu(The)42 -b(prop)s(ert)m(y)f(that)f(distinguishes)g Fs(g)1755 4547 -y Fn(0)1835 4532 y Fu(from)f(some)h(other)h(\014xed)h(p)s(oin)m(t)d -Fs(g)3148 4496 y Fi(0)3211 4532 y Fu(of)h Fs(F)3407 4496 -y Fi(0)3471 4532 y Fu(is)g(that)283 4652 y(whenev)m(er)c -Fs(g)766 4667 y Fn(0)837 4652 y Fs(s)41 b Fu(=)32 b Fs(s)1074 -4616 y Fi(0)1130 4652 y Fu(then)h(w)m(e)h(also)d(ha)m(v)m(e)j -Fs(g)1970 4616 y Fi(0)2026 4652 y Fs(s)40 b Fu(=)33 b -Fs(s)2263 4616 y Fi(0)2319 4652 y Fu(but)f(not)h(vice)g(v)m(ersa.)430 -4773 y(Generalizing)41 b(this)h(exp)s(erience)j(leads)d(to)h(the)h -(follo)m(wing)c(requiremen)m(t:)65 b(the)43 b(desired)283 -4893 y(\014xed)34 b(p)s(oin)m(t)e(FIX)g Fs(F)46 b Fu(should)32 -b(b)s(e)h(some)g(partial)d(function)i Fs(g)2525 4908 -y Fn(0)2564 4893 y Fu(:)43 b Fw(State)33 b Fo(,)-17 b -Ft(!)33 b Fw(State)f Fu(suc)m(h)i(that)429 5091 y Ft(\017)48 -b Fs(g)581 5106 y Fn(0)653 5091 y Fu(is)32 b(a)g(\014xed)i(p)s(oin)m(t) -e(of)g Fs(F)13 b Fu(,)32 b(that)h(is)f Fs(F)45 b(g)2043 -5106 y Fn(0)2115 5091 y Fu(=)32 b Fs(g)2277 5106 y Fn(0)2316 -5091 y Fu(,)h(and)429 5293 y Ft(\017)48 b Fu(if)32 b -Fs(g)41 b Fu(is)32 b(another)h(\014xed)g(p)s(oin)m(t)f(of)g -Fs(F)13 b Fu(,)33 b(that)f(is)g Fs(F)46 b(g)41 b Fu(=)32 -b Fs(g)9 b Fu(,)32 b(then)742 5494 y Fs(g)796 5509 y -Fn(0)867 5494 y Fs(s)41 b Fu(=)32 b Fs(s)1104 5458 y -Fi(0)1160 5494 y Fu(implies)e Fs(g)42 b(s)e Fu(=)33 b -Fs(s)1815 5458 y Fi(0)p eop -%%Page: 93 103 -93 102 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2183 -b(93)p 0 193 3473 4 v 244 515 a Fu(for)32 b(all)e(c)m(hoices)k(of)e -Fs(s)41 b Fu(and)32 b Fs(s)1286 479 y Fi(0)1310 515 y -Fu(.)0 743 y(Note)h(that)f(if)f Fs(g)590 758 y Fn(0)662 -743 y Fs(s)41 b Fu(=)32 b(undef)p 851 756 236 4 v 33 -w(then)h(there)h(are)e(no)h(requiremen)m(ts)g(on)g Fs(g)41 -b(s)8 b Fu(.)0 1009 y Fw(Exercise)36 b(4.4)49 b Fu(Determine)39 -b(whic)m(h)i(of)f(the)h(\014xed)g(p)s(oin)m(ts)f(considered)h(in)e -(Exercise)j(4.2)e(is)0 1129 y(the)33 b(desired)g(\014xed)h(p)s(oin)m -(t,)e(if)f(an)m(y)-8 b(.)2122 b Fh(2)0 1391 y Fw(Exercise)36 -b(4.5)49 b Fu(Determine)35 b(the)h(desired)g(\014xed)h(p)s(oin)m(t)e -(of)g(the)h(functional)e(constructed)j(in)0 1512 y(Exercise)d(4.3.)2862 -b Fh(2)0 1874 y Fj(4.2)161 b(Fixed)54 b(p)t(oin)l(t)g(theory)0 -2102 y Fu(T)-8 b(o)26 b(prepare)h(for)f(a)g(framew)m(ork)g(that)h -(guaran)m(tees)g(the)g(existence)g(of)f(the)h(desired)g(\014xed)g(p)s -(oin)m(t)0 2223 y(FIX)35 b Fs(F)47 b Fu(w)m(e)36 b(shall)d(reform)m -(ulate)h(the)h(requiremen)m(ts)h(to)e(FIX)h Fs(F)47 b -Fu(in)34 b(a)h(sligh)m(tly)e(more)h(formal)0 2343 y(w)m(a)m(y)-8 -b(.)72 b(The)43 b(\014rst)f(step)h(will)d(b)s(e)i(to)f(formalize)e(the) -k(requiremen)m(t)f(that)f(FIX)h Fs(F)55 b Fu(shares)43 -b(its)0 2464 y(results)c(with)f(all)f(other)i(\014xed)h(p)s(oin)m(ts.) -61 b(T)-8 b(o)39 b(do)f(so)h(w)m(e)h(de\014ne)g(an)e -Fs(or)-5 b(dering)47 b Ft(v)39 b Fu(on)g(partial)0 2584 -y(functions)33 b(of)f Fw(State)g Fo(,)-17 b Ft(!)33 b -Fw(State)p Fu(.)43 b(W)-8 b(e)33 b(set)244 2811 y Fs(g)298 -2826 y Fn(1)369 2811 y Ft(v)g Fs(g)533 2826 y Fn(2)0 -3039 y Fu(when)38 b(the)f(partial)d(function)j Fs(g)1190 -3054 y Fn(1)1229 3039 y Fu(:)51 b Fw(State)37 b Fo(,)-17 -b Ft(!)37 b Fw(State)f Fs(shar)-5 b(es)38 b(its)h(r)-5 -b(esults)45 b Fu(with)37 b(the)g(partial)0 3159 y(function)32 -b Fs(g)436 3174 y Fn(2)475 3159 y Fu(:)44 b Fw(State)32 -b Fo(,)-17 b Ft(!)33 b Fw(State)f Fu(in)g(the)h(sense)i(that)244 -3386 y(if)c Fs(g)387 3401 y Fn(1)459 3386 y Fs(s)40 b -Fu(=)33 b Fs(s)696 3350 y Fi(0)752 3386 y Fu(then)g Fs(g)1028 -3401 y Fn(2)1099 3386 y Fs(s)41 b Fu(=)32 b Fs(s)1336 -3350 y Fi(0)0 3613 y Fu(for)g(all)f(c)m(hoices)i(of)f -Fs(s)41 b Fu(and)32 b Fs(s)1042 3577 y Fi(0)1066 3613 -y Fu(.)0 3880 y Fw(Example)37 b(4.6)48 b Fu(Let)25 b -Fs(g)875 3895 y Fn(1)914 3880 y Fu(,)h Fs(g)1021 3895 -y Fn(2)1060 3880 y Fu(,)g Fs(g)1167 3895 y Fn(3)1230 -3880 y Fu(and)e Fs(g)1465 3895 y Fn(4)1528 3880 y Fu(b)s(e)h(partial)d -(functions)i(in)f Fw(State)h Fo(,)-17 b Ft(!)25 b Fw(State)f -Fu(de\014ned)0 4000 y(as)33 b(follo)m(ws:)244 4227 y -Fs(g)298 4242 y Fn(1)369 4227 y Fs(s)41 b Fu(=)32 b Fs(s)41 -b Fu(for)32 b(all)f Fs(s)244 4477 y(g)298 4492 y Fn(2)369 -4477 y Fs(s)41 b Fu(=)558 4302 y Fg(8)558 4377 y(<)558 -4527 y(:)674 4392 y Fs(s)278 b Fu(if)32 b Fs(s)40 b Fr(x)33 -b Ft(\025)g Fw(0)674 4560 y Fu(undef)p 674 4573 V 83 -w(otherwise)244 4831 y Fs(g)298 4846 y Fn(3)369 4831 -y Fs(s)41 b Fu(=)558 4657 y Fg(8)558 4732 y(<)558 4881 -y(:)674 4747 y Fs(s)278 b Fu(if)32 b Fs(s)40 b Fr(x)33 -b Fu(=)g Fw(0)674 4914 y Fu(undef)p 674 4927 V 83 w(otherwise)244 -5186 y Fs(g)298 5201 y Fn(4)369 5186 y Fs(s)41 b Fu(=)558 -5011 y Fg(8)558 5086 y(<)558 5235 y(:)674 5101 y Fs(s)278 -b Fu(if)32 b Fs(s)40 b Fr(x)33 b Ft(\024)g Fw(0)674 5269 -y Fu(undef)p 674 5282 V 83 w(otherwise)0 5494 y(Then)h(w)m(e)f(ha)m(v)m -(e)p eop -%%Page: 94 104 -94 103 bop 251 130 a Fw(94)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Fs(g)581 -530 y Fn(1)653 515 y Ft(v)d Fs(g)817 530 y Fn(1)856 515 -y Fu(,)527 683 y Fs(g)581 698 y Fn(2)653 683 y Ft(v)g -Fs(g)817 698 y Fn(1)856 683 y Fu(,)f Fs(g)969 698 y Fn(2)1041 -683 y Ft(v)h Fs(g)1205 698 y Fn(2)1244 683 y Fu(,)527 -851 y Fs(g)581 866 y Fn(3)653 851 y Ft(v)g Fs(g)817 866 -y Fn(1)856 851 y Fu(,)f Fs(g)969 866 y Fn(3)1041 851 -y Ft(v)h Fs(g)1205 866 y Fn(2)1244 851 y Fu(,)g Fs(g)1358 -866 y Fn(3)1429 851 y Ft(v)g Fs(g)1593 866 y Fn(3)1632 -851 y Fu(,)g Fs(g)1746 866 y Fn(3)1817 851 y Ft(v)g Fs(g)1981 -866 y Fn(4)2020 851 y Fu(,)g(and)527 1018 y Fs(g)581 -1033 y Fn(4)653 1018 y Ft(v)g Fs(g)817 1033 y Fn(1)856 -1018 y Fu(,)f Fs(g)969 1033 y Fn(4)1041 1018 y Ft(v)h -Fs(g)1205 1033 y Fn(4)1244 1018 y Fu(.)283 1228 y(It)f(is)f(neither)g -(the)h(case)g(that)g Fs(g)1451 1243 y Fn(2)1521 1228 -y Ft(v)g Fs(g)1684 1243 y Fn(4)1754 1228 y Fu(nor)g(that)f -Fs(g)2191 1243 y Fn(4)2261 1228 y Ft(v)h Fs(g)2424 1243 -y Fn(2)2463 1228 y Fu(.)43 b(Pictorially)-8 b(,)29 b(the)i(ordering)g -(ma)m(y)283 1348 y(b)s(e)i(expressed)j(as)c(follo)m(ws)1262 -1312 y Fn(1)1301 1348 y Fu(:)1366 1666 y Ft(\017)65 b -Fs(g)1535 1681 y Fn(1)976 1915 y Ft(\017)g Fs(g)1145 -1930 y Fn(2)1756 1915 y Ft(\017)g Fs(g)1925 1930 y Fn(4)1366 -2164 y Ft(\017)g Fs(g)1535 2179 y Fn(3)1275 2139 y Fq(Q)1192 -2084 y(Q)1108 2028 y(Q)1025 1973 y(Q)1416 2139 y(\021)1499 -2084 y(\021)1582 2028 y(\021)1665 1973 y(\021)1275 1713 -y(\021)1192 1768 y(\021)1108 1823 y(\021)1025 1879 y(\021)1416 -1713 y(Q)1499 1768 y(Q)1582 1823 y(Q)1665 1879 y(Q)283 -2456 y Fu(The)29 b(idea)d(is)h(that)g(the)g(smaller)e(elemen)m(ts)j -(are)f(at)g(the)g(b)s(ottom)f(of)h(the)g(picture)g(and)h(that)e(the)283 -2577 y(lines)38 b(indicate)f(the)i(order)f(b)s(et)m(w)m(een)i(the)f -(elemen)m(ts.)61 b(Ho)m(w)m(ev)m(er,)42 b(w)m(e)d(shall)e(not)h(dra)m -(w)h(lines)283 2697 y(when)e(there)g(already)e(is)h(a)f(\\brok)m(en)i -(line",)e(so)h(the)g(fact)g(that)g Fs(g)2722 2712 y Fn(3)2796 -2697 y Ft(v)h Fs(g)2964 2712 y Fn(1)3038 2697 y Fu(is)f(left)f -(implicit)d(in)283 2817 y(the)h(picture.)2905 b Fh(2)283 -3054 y Fw(Exercise)37 b(4.7)49 b Fu(Let)33 b Fs(g)1148 -3069 y Fn(1)1187 3054 y Fu(,)f Fs(g)1300 3069 y Fn(2)1372 -3054 y Fu(and)g Fs(g)1615 3069 y Fn(3)1687 3054 y Fu(b)s(e)h(de\014ned) -h(as)e(follo)m(ws:)527 3345 y Fs(g)581 3360 y Fn(1)653 -3345 y Fs(s)40 b Fu(=)842 3171 y Fg(8)842 3245 y(<)842 -3395 y(:)957 3260 y Fs(s)279 b Fu(if)31 b Fs(s)41 b Fr(x)33 -b Fu(is)f(ev)m(en)957 3428 y(undef)p 957 3441 236 4 v -84 w(otherwise)527 3699 y Fs(g)581 3714 y Fn(2)653 3699 -y Fs(s)40 b Fu(=)842 3525 y Fg(8)842 3600 y(<)842 3749 -y(:)957 3615 y Fs(s)279 b Fu(if)31 b Fs(s)41 b Fr(x)33 -b Fu(is)f(a)g(prime)957 3782 y(undef)p 957 3795 V 84 -w(otherwise)527 3922 y Fs(g)581 3937 y Fn(3)653 3922 -y Fs(s)40 b Fu(=)33 b Fs(s)283 4132 y Fu(First,)42 b(determine)d(the)i -(ordering)e(among)g(these)i(partial)d(functions.)66 b(Next,)42 -b(determine)e(a)283 4252 y(partial)32 b(function)i Fs(g)1037 -4267 y Fn(4)1109 4252 y Fu(suc)m(h)i(that)e Fs(g)1598 -4267 y Fn(4)1670 4252 y Ft(v)h Fs(g)1836 4267 y Fn(1)1875 -4252 y Fu(,)f Fs(g)1990 4267 y Fn(4)2063 4252 y Ft(v)g -Fs(g)2228 4267 y Fn(2)2301 4252 y Fu(and)g Fs(g)2546 -4267 y Fn(4)2619 4252 y Ft(v)g Fs(g)2784 4267 y Fn(3)2823 -4252 y Fu(.)48 b(Finally)-8 b(,)32 b(determine)h(a)283 -4372 y(partial)c(function)h Fs(g)1030 4387 y Fn(5)1099 -4372 y Fu(suc)m(h)i(that)e Fs(g)1580 4387 y Fn(1)1650 -4372 y Ft(v)h Fs(g)1812 4387 y Fn(5)1851 4372 y Fu(,)g -Fs(g)1963 4387 y Fn(2)2032 4372 y Ft(v)g Fs(g)2194 4387 -y Fn(5)2264 4372 y Fu(and)f Fs(g)2505 4387 y Fn(5)2575 -4372 y Ft(v)h Fs(g)2737 4387 y Fn(3)2806 4372 y Fu(but)g -Fs(g)3037 4387 y Fn(5)3106 4372 y Fu(is)f(neither)h(equal)283 -4493 y(to)i Fs(g)457 4508 y Fn(1)496 4493 y Fu(,)f Fs(g)609 -4508 y Fn(2)681 4493 y Fu(nor)g Fs(g)908 4508 y Fn(3)947 -4493 y Fu(.)2707 b Fh(2)283 4729 y Fw(Exercise)37 b(4.8)49 -b(\(Essen)m(tial\))36 b Fu(An)j(alternativ)m(e)f(c)m(haracterization)f -(of)h(the)h(ordering)f Ft(v)h Fu(on)283 4850 y Fw(State)33 -b Fo(,)-17 b Ft(!)33 b Fw(State)f Fu(is)552 5017 y Fs(g)606 -5032 y Fn(1)678 5017 y Ft(v)h Fs(g)842 5032 y Fn(2)913 -5017 y Fu(if)f(and)g(only)g(if)g(graph\()p Fs(g)1832 -5032 y Fn(1)1871 5017 y Fu(\))g Ft(\022)h Fu(graph\()p -Fs(g)2387 5032 y Fn(2)2426 5017 y Fu(\))1167 b(\(*\))283 -5185 y(where)39 b(graph\()p Fs(g)9 b Fu(\))36 b(is)h(the)g(graph)g(of)g -(the)h(partial)d(function)h Fs(g)46 b Fu(as)37 b(de\014ned)i(in)d(App)s -(endix)i(A.)283 5305 y(Pro)m(v)m(e)c(that)f(\(*\))f(is)g(indeed)h -(correct.)2028 b Fh(2)p 283 5403 1389 4 v 396 5464 a -Fm(1)433 5494 y Fk(Suc)n(h)28 b(a)f(diagram)f(is)h(sometimes)h(called)f -(a)g(Hasse)g(diagram.)p eop -%%Page: 95 105 -95 104 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2183 -b(95)p 0 193 3473 4 v 146 515 a Fu(The)47 b(set)f Fw(State)f -Fo(,)-17 b Ft(!)45 b Fw(State)g Fu(equipp)s(ed)h(with)f(the)h(ordering) -e Ft(v)i Fu(is)f(an)g(example)g(of)g(a)0 636 y(partially)32 -b(ordered)j(set)f(as)h(w)m(e)g(shall)e(see)i(in)f(Lemma)f(4.13)g(b)s -(elo)m(w.)49 b(In)34 b(general,)h(a)e Fs(p)-5 b(artial)5 -b(ly)0 756 y(or)-5 b(der)g(e)g(d)29 b(set)f Fu(is)e(a)h(pair)g(\()p -Fs(D)9 b Fu(,)27 b Ft(v)1097 771 y Fc(D)1161 756 y Fu(\))g(where)i -Fs(D)63 b Fu(is)27 b(a)g(set)h(and)f Ft(v)2218 771 y -Fc(D)2309 756 y Fu(is)g(a)g(relation)e(on)i Fs(D)36 b -Fu(satisfying)294 999 y Fs(d)42 b Ft(v)464 1014 y Fc(D)560 -999 y Fs(d)1529 b Fu(\(re\015exivit)m(y\))294 1167 y -Fs(d)354 1182 y Fn(1)426 1167 y Ft(v)503 1182 y Fc(D)600 -1167 y Fs(d)660 1182 y Fn(2)732 1167 y Fu(and)33 b Fs(d)982 -1182 y Fn(2)1054 1167 y Ft(v)1131 1182 y Fc(D)1228 1167 -y Fs(d)1288 1182 y Fn(3)1360 1167 y Fu(imply)d Fs(d)1693 -1182 y Fn(1)1766 1167 y Ft(v)1843 1182 y Fc(D)1940 1167 -y Fs(d)2000 1182 y Fn(3)2139 1167 y Fu(\(transitivit)m(y\))294 -1335 y Fs(d)354 1350 y Fn(1)426 1335 y Ft(v)503 1350 -y Fc(D)600 1335 y Fs(d)660 1350 y Fn(2)732 1335 y Fu(and)j -Fs(d)982 1350 y Fn(2)1054 1335 y Ft(v)1131 1350 y Fc(D)1228 -1335 y Fs(d)1288 1350 y Fn(1)1360 1335 y Fu(imply)d Fs(d)1693 -1350 y Fn(1)1766 1335 y Fu(=)i Fs(d)1934 1350 y Fn(2)2139 -1335 y Fu(\(an)m(ti-symmetry\))0 1574 y(The)41 b(relation)d -Ft(v)650 1589 y Fc(D)754 1574 y Fu(is)i(said)f(to)h(b)s(e)g(a)f -Fs(p)-5 b(artial)42 b(or)-5 b(der)39 b Fu(on)h Fs(D)49 -b Fu(and)40 b(w)m(e)h(shall)d(often)i(omit)e(the)0 1694 -y(subscript)f Fs(D)45 b Fu(of)35 b Ft(v)733 1709 y Fc(D)832 -1694 y Fu(and)h(write)g Ft(v)q Fu(.)53 b(Occasionally)-8 -b(,)35 b(w)m(e)i(ma)m(y)f(write)g Fs(d)2701 1709 y Fn(1)2773 -1694 y Ft(w)d Fs(d)2943 1709 y Fn(2)3018 1694 y Fu(instead)72 -b(of)0 1815 y Fs(d)60 1830 y Fn(2)132 1815 y Ft(v)33 -b Fs(d)302 1830 y Fn(1)373 1815 y Fu(and)e(w)m(e)h(shall)d(sa)m(y)j -(that)f Fs(d)1366 1830 y Fn(2)1437 1815 y Fs(shar)-5 -b(es)32 b(its)i(information)e(with)38 b(d)2676 1830 y -Fn(1)2716 1815 y Fu(.)43 b(An)31 b(elemen)m(t)g Fs(d)41 -b Fu(of)0 1935 y Fs(D)h Fu(satisfying)244 2181 y Fs(d)h -Ft(v)33 b Fs(d)507 2145 y Fi(0)562 2181 y Fu(for)g(all)d -Fs(d)907 2145 y Fi(0)963 2181 y Fu(of)i Fs(D)0 2427 y -Fu(is)g(called)f Fs(a)k(le)-5 b(ast)35 b(element)41 b -Fu(of)32 b Fs(D)42 b Fu(and)32 b(w)m(e)i(shall)d(sa)m(y)j(that)e(it)g -(con)m(tains)g Fs(no)j(information)p Fu(.)p 0 2556 3473 -5 v 0 2782 a Fw(F)-9 b(act)37 b(4.9)49 b Fu(If)31 b(a)f(partially)e -(ordered)j(set)g(\()p Fs(D)9 b Fu(,)30 b Ft(v)q Fu(\))g(has)h(a)f -(least)g(elemen)m(t)h Fs(d)40 b Fu(then)31 b Fs(d)41 -b Fu(is)30 b(unique.)p 0 2902 V 0 3148 a Fw(Pro)s(of:)51 -b Fu(Assume)45 b(that)g Fs(D)53 b Fu(has)45 b(t)m(w)m(o)g(least)f -(elemen)m(ts)h Fs(d)2171 3163 y Fn(1)2255 3148 y Fu(and)g -Fs(d)2517 3163 y Fn(2)2556 3148 y Fu(.)80 b(Since)44 -b Fs(d)2989 3163 y Fn(1)3074 3148 y Fu(is)g(a)g(least)0 -3269 y(elemen)m(t)34 b(w)m(e)h(ha)m(v)m(e)g Fs(d)793 -3284 y Fn(1)867 3269 y Ft(v)f Fs(d)1038 3284 y Fn(2)1078 -3269 y Fu(.)48 b(Since)34 b Fs(d)1469 3284 y Fn(2)1543 -3269 y Fu(is)f(a)h(least)g(elemen)m(t)f(w)m(e)i(also)f(ha)m(v)m(e)h -Fs(d)2945 3284 y Fn(2)3019 3269 y Ft(v)f Fs(d)3190 3284 -y Fn(1)3230 3269 y Fu(.)47 b(The)0 3389 y(an)m(ti-symmetry)32 -b(of)g(the)h(ordering)e Ft(v)i Fu(then)h(giv)m(es)f(that)f -Fs(d)2160 3404 y Fn(1)2232 3389 y Fu(=)h Fs(d)2401 3404 -y Fn(2)2440 3389 y Fu(.)931 b Fh(2)146 3601 y Fu(This)30 -b(fact)g(p)s(ermits)f(us)i(to)f(talk)f(ab)s(out)g Fs(the)38 -b Fu(least)29 b(elemen)m(t)h(of)g Fs(D)9 b Fu(,)30 b(if)f(one)h -(exists,)h(and)f(w)m(e)0 3721 y(shall)h(denote)i(it)f(b)m(y)i -Ft(?)853 3736 y Fc(D)950 3721 y Fu(or)e(simply)f Ft(?)i -Fu(\(pronounced)h(\\b)s(ottom"\).)0 4018 y Fw(Example)j(4.10)49 -b Fu(Let)32 b Fs(S)45 b Fu(b)s(e)32 b(a)h(non-empt)m(y)f(set)i(and)e -(de\014ne)244 4264 y Ft(P)8 b Fu(\()p Fs(S)k Fu(\))33 -b(=)f Ft(f)g Fs(K)47 b Ft(j)32 b Fs(K)47 b Ft(\022)33 -b Fs(S)45 b Ft(g)0 4510 y Fu(Then)34 b(\()p Ft(P)8 b -Fu(\()p Fs(S)k Fu(\),)32 b Ft(\022)q Fu(\))g(is)g(a)h(partially)d -(ordered)j(set)g(b)s(ecause)145 4756 y Ft(\017)49 b(\022)33 -b Fu(is)f(re\015exiv)m(e:)45 b Fs(K)i Ft(\022)33 b Fs(K)145 -5002 y Ft(\017)49 b(\022)33 b Fu(is)f(transitiv)m(e:)43 -b(if)31 b Fs(K)1103 5017 y Fn(1)1175 5002 y Ft(\022)i -Fs(K)1375 5017 y Fn(2)1446 5002 y Fu(and)g Fs(K)1726 -5017 y Fn(2)1797 5002 y Ft(\022)g Fs(K)1997 5017 y Fn(3)2069 -5002 y Fu(then)g Fs(K)2381 5017 y Fn(1)2452 5002 y Ft(\022)g -Fs(K)2652 5017 y Fn(3)145 5248 y Ft(\017)49 b(\022)33 -b Fu(is)f(an)m(ti-symmetric:)41 b(if)32 b Fs(K)1342 5263 -y Fn(1)1413 5248 y Ft(\022)h Fs(K)1613 5263 y Fn(2)1685 -5248 y Fu(and)f Fs(K)1964 5263 y Fn(2)2036 5248 y Ft(\022)h -Fs(K)2236 5263 y Fn(1)2307 5248 y Fu(then)g Fs(K)2619 -5263 y Fn(1)2691 5248 y Fu(=)f Fs(K)2889 5263 y Fn(2)0 -5494 y Fu(In)h(the)g(case)g(where)h Fs(S)45 b Fu(=)32 -b Ft(f)p Fu(a,b,c)p Ft(g)h Fu(the)g(ordering)e(can)i(b)s(e)g(depicted)g -(as)g(follo)m(ws:)p eop -%%Page: 96 106 -96 105 bop 251 130 a Fw(96)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 1696 540 a Ft(\017)130 -b(f)p Fu(a,b,c)p Ft(g)1032 872 y(\017)g(f)p Fu(a,b)p -Ft(g)254 b(\017)130 b(f)p Fu(a,c)p Ft(g)266 b(\017)130 -b(f)p Fu(b,c)p Ft(g)1032 1204 y(\017)g(f)p Fu(a)p Ft(g)335 -b(\017)130 b(f)p Fu(b)p Ft(g)331 b(\017)130 b(f)p Fu(c)p -Ft(g)1696 1537 y(\017)g(;)1605 1503 y Fq(H)1522 1462 -y(H)1439 1420 y(H)1356 1379 y(H)1273 1337 y(H)1190 1296 -y(H)1107 1254 y(H)1082 1242 y(H)p 1720 1478 4 266 v 1746 -1503 a(\010)1829 1462 y(\010)1912 1420 y(\010)1995 1379 -y(\010)2078 1337 y(\010)2161 1296 y(\010)2244 1254 y(\010)2269 -1242 y(\010)p 1056 1146 V 1082 1171 a(\010)1165 1130 -y(\010)1248 1088 y(\010)1331 1047 y(\010)1414 1005 y(\010)1497 -964 y(\010)1580 922 y(\010)1605 910 y(\010)1605 1171 -y(H)1522 1130 y(H)1439 1088 y(H)1356 1047 y(H)1273 1005 -y(H)1190 964 y(H)1107 922 y(H)1082 910 y(H)1746 1171 -y(\010)1829 1130 y(\010)1912 1088 y(\010)1995 1047 y(\010)2078 -1005 y(\010)2161 964 y(\010)2244 922 y(\010)2269 910 -y(\010)2269 1171 y(H)2186 1130 y(H)2103 1088 y(H)2020 -1047 y(H)1937 1005 y(H)1854 964 y(H)1771 922 y(H)1746 -910 y(H)p 2384 1146 V 1082 839 a(\010)1165 798 y(\010)1248 -756 y(\010)1331 715 y(\010)1414 673 y(\010)1497 632 y(\010)1580 -590 y(\010)1605 578 y(\010)p 1720 814 V 2269 839 a(H)2186 -798 y(H)2103 756 y(H)2020 715 y(H)1937 673 y(H)1854 632 -y(H)1771 590 y(H)1746 578 y(H)283 1816 y Fu(Also,)33 -b(\()p Ft(P)8 b Fu(\()p Fs(S)k Fu(\),)32 b Ft(\022)q -Fu(\))g(has)h(a)f(least)h(elemen)m(t,)f(namely)g Ft(;)p -Fu(.)1398 b Fh(2)283 2059 y Fw(Exercise)37 b(4.11)49 -b Fu(Sho)m(w)32 b(that)g(\()p Ft(P)8 b Fu(\()p Fs(S)k -Fu(\),)31 b Ft(\023)q Fu(\))g(is)h(a)f(partially)e(ordered)j(set)g(and) -g(determine)f(the)283 2180 y(least)i(elemen)m(t.)43 b(Dra)m(w)32 -b(a)h(picture)f(of)g(the)h(ordering)f(when)i Fs(S)44 -b Fu(=)33 b Ft(f)p Fu(a,b,c)p Ft(g)p Fu(.)644 b Fh(2)283 -2423 y Fw(Exercise)37 b(4.12)49 b Fu(Let)33 b Fs(S)44 -b Fu(b)s(e)33 b(a)f(non-empt)m(y)h(set)g(and)g(de\014ne)527 -2637 y Ft(P)605 2652 y Fn(\014n)687 2637 y Fu(\()p Fs(S)12 -b Fu(\))33 b(=)f Ft(f)g Fs(K)47 b Ft(j)32 b Fs(K)47 b -Fu(is)33 b(\014nite)f(and)g Fs(K)47 b Ft(\022)33 b Fs(S)45 -b Ft(g)283 2852 y Fu(V)-8 b(erify)47 b(that)f(\()p Ft(P)926 -2867 y Fn(\014n)1008 2852 y Fu(\()p Fs(S)12 b Fu(\),)47 -b Ft(\022)p Fu(\))g(and)g(\()p Ft(P)1706 2867 y Fn(\014n)1789 -2852 y Fu(\()p Fs(S)12 b Fu(\),)46 b Ft(\023)p Fu(\))h(are)g(partially) -d(ordered)j(sets.)87 b(Do)46 b(b)s(oth)283 2972 y(partially)30 -b(ordered)k(sets)f(ha)m(v)m(e)h(a)f(least)f(elemen)m(t)g(for)g(all)f(c) -m(hoices)i(of)f Fs(S)12 b Fu(?)730 b Fh(2)p 283 3216 -3473 5 v 283 3403 a Fw(Lemma)38 b(4.13)49 b Fu(\()p Fw(State)22 -b Fo(,)-17 b Ft(!)22 b Fw(State)p Fu(,)45 b Ft(v)q Fu(\))22 -b(is)g(a)g(partially)e(ordered)j(set.)41 b(The)23 b(partial)d(function) -283 3523 y Ft(?)q Fu(:)43 b Fw(State)33 b Fo(,)-17 b -Ft(!)33 b Fw(State)f Fu(de\014ned)i(b)m(y)527 3737 y -Ft(?)f Fs(s)41 b Fu(=)32 b(undef)p 826 3750 236 4 v 34 -w(for)g(all)e Fs(s)283 3952 y Fu(is)j(the)g(least)f(elemen)m(t)g(of)g -Fw(State)h Fo(,)-17 b Ft(!)32 b Fw(State)p Fu(.)p 283 -4072 3473 5 v 283 4286 a Fw(Pro)s(of:)g Fu(W)-8 b(e)27 -b(shall)f(\014rst)i(pro)m(v)m(e)h(that)e Ft(v)h Fu(ful\014ls)e(the)h -(three)h(requiremen)m(ts)h(to)e(a)g(partial)e(order:)283 -4407 y(Clearly)-8 b(,)43 b Fs(g)49 b Ft(v)42 b Fs(g)49 -b Fu(holds)41 b(b)s(ecause)h Fs(g)50 b(s)f Fu(=)41 b -Fs(s)1941 4371 y Fi(0)2005 4407 y Fu(trivially)d(implies)g(that)j -Fs(g)50 b(s)f Fu(=)41 b Fs(s)3290 4371 y Fi(0)3354 4407 -y Fu(so)g Ft(v)h Fu(is)e(a)283 4527 y Fs(r)-5 b(e\015exive)40 -b Fu(ordering.)430 4650 y(T)-8 b(o)30 b(see)h(that)f(it)f(is)h(a)g -Fs(tr)-5 b(ansitive)37 b Fu(ordering)29 b(assume)i(that)f -Fs(g)2617 4665 y Fn(1)2686 4650 y Ft(v)h Fs(g)2848 4665 -y Fn(2)2917 4650 y Fu(and)f Fs(g)3158 4665 y Fn(2)3227 -4650 y Ft(v)g Fs(g)3388 4665 y Fn(3)3458 4650 y Fu(and)g(w)m(e)283 -4770 y(shall)j(pro)m(v)m(e)i(that)f Fs(g)1044 4785 y -Fn(1)1117 4770 y Ft(v)h Fs(g)1283 4785 y Fn(3)1322 4770 -y Fu(.)48 b(Assume)35 b(that)f Fs(g)2027 4785 y Fn(1)2100 -4770 y Fs(s)42 b Fu(=)33 b Fs(s)2339 4734 y Fi(0)2363 -4770 y Fu(.)48 b(F)-8 b(rom)32 b Fs(g)2749 4785 y Fn(1)2822 -4770 y Ft(v)j Fs(g)2988 4785 y Fn(2)3061 4770 y Fu(w)m(e)g(get)f -Fs(g)3424 4785 y Fn(2)3496 4770 y Fs(s)40 b Fu(=)33 b -Fs(s)3733 4734 y Fi(0)283 4890 y Fu(and)g(then)g Fs(g)749 -4905 y Fn(2)821 4890 y Ft(v)g Fs(g)985 4905 y Fn(3)1056 -4890 y Fu(giv)m(es)g(that)g Fs(g)1561 4905 y Fn(3)1632 -4890 y Fs(s)41 b Fu(=)32 b Fs(s)1869 4854 y Fi(0)1893 -4890 y Fu(.)430 5013 y(T)-8 b(o)32 b(see)h(that)f(it)f(is)g(an)h -Fs(anti-symmetric)37 b Fu(ordering)31 b(assume)i(that)e -Fs(g)2934 5028 y Fn(1)3005 5013 y Ft(v)i Fs(g)3169 5028 -y Fn(2)3240 5013 y Fu(and)f Fs(g)3483 5028 y Fn(2)3554 -5013 y Ft(v)g Fs(g)3717 5028 y Fn(1)283 5133 y Fu(and)40 -b(w)m(e)g(shall)d(then)j(pro)m(v)m(e)g(that)f Fs(g)1634 -5148 y Fn(1)1712 5133 y Fu(=)g Fs(g)1881 5148 y Fn(2)1920 -5133 y Fu(.)62 b(Assume)40 b(that)f Fs(g)2649 5148 y -Fn(1)2727 5133 y Fs(s)47 b Fu(=)39 b Fs(s)2977 5097 y -Fi(0)3000 5133 y Fu(.)63 b(Then)40 b Fs(g)3405 5148 y -Fn(2)3483 5133 y Fs(s)47 b Fu(=)39 b Fs(s)3733 5097 y -Fi(0)283 5254 y Fu(follo)m(ws)31 b(from)g Fs(g)887 5269 -y Fn(1)957 5254 y Ft(v)i Fs(g)1121 5269 y Fn(2)1191 5254 -y Fu(so)f Fs(g)1364 5269 y Fn(1)1435 5254 y Fu(and)g -Fs(g)1678 5269 y Fn(2)1749 5254 y Fu(are)f(equal)h(on)g -Fs(s)8 b Fu(.)43 b(If)32 b Fs(g)2571 5269 y Fn(1)2642 -5254 y Fs(s)39 b Fu(=)32 b(undef)p 2829 5267 236 4 v -33 w(then)g(it)f(m)m(ust)h(b)s(e)283 5374 y(the)i(case)g(that)f -Fs(g)925 5389 y Fn(2)997 5374 y Fs(s)41 b Fu(=)33 b(undef)p -1187 5387 V 34 w(since)h(otherwise)f Fs(g)2184 5389 y -Fn(2)2256 5374 y Fs(s)42 b Fu(=)32 b Fs(s)2494 5338 y -Fi(0)2551 5374 y Fu(and)h(the)h(assumption)e Fs(g)3480 -5389 y Fn(2)3552 5374 y Ft(v)i Fs(g)3717 5389 y Fn(1)283 -5494 y Fu(then)g(giv)m(es)f Fs(g)799 5509 y Fn(1)870 -5494 y Fs(s)41 b Fu(=)32 b Fs(s)1107 5458 y Fi(0)1163 -5494 y Fu(whic)m(h)h(is)f(a)h(con)m(tradiction.)42 b(Th)m(us)34 -b Fs(g)2554 5509 y Fn(1)2626 5494 y Fu(and)e Fs(g)2869 -5509 y Fn(2)2941 5494 y Fu(will)e(b)s(e)j(equal)f(on)h -Fs(s)8 b Fu(.)p eop -%%Page: 97 107 -97 106 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2183 -b(97)p 0 193 3473 4 v 146 515 a Fu(Finally)-8 b(,)39 -b(w)m(e)i(shall)e(pro)m(v)m(e)i(that)e Ft(?)i Fu(is)e(the)h -Fs(le)-5 b(ast)42 b(element)48 b Fu(of)40 b Fw(State)g -Fo(,)-17 b Ft(!)40 b Fw(State)p Fu(.)65 b(It)40 b(is)0 -636 y(easy)35 b(to)f(see)h(that)f Ft(?)h Fu(is)e(indeed)i(an)f(elemen)m -(t)g(of)f Fw(State)i Fo(,)-17 b Ft(!)34 b Fw(State)g -Fu(and)g(it)f(is)h(also)f(ob)m(vious)0 756 y(that)f Ft(?)h(v)g -Fs(g)41 b Fu(holds)33 b(for)f(all)e Fs(g)41 b Fu(since)33 -b Ft(?)g Fs(s)41 b Fu(=)32 b Fs(s)1729 720 y Fi(0)1785 -756 y Fu(v)-5 b(acuously)33 b(implies)d(that)j Fs(g)41 -b(s)f Fu(=)33 b Fs(s)3096 720 y Fi(0)3119 756 y Fu(.)252 -b Fh(2)146 960 y Fu(Ha)m(ving)27 b(in)m(tro)s(duced)g(an)g(ordering)f -(on)h(the)h(partial)c(functions)j(w)m(e)h(can)g(no)m(w)f(giv)m(e)g(a)g -(more)0 1080 y(precise)33 b(statemen)m(t)g(of)f(the)h(requiremen)m(ts)h -(to)e(FIX)h Fs(F)13 b Fu(:)145 1265 y Ft(\017)49 b Fu(FIX)32 -b Fs(F)46 b Fu(is)32 b(a)g Fs(\014xe)-5 b(d)34 b(p)-5 -b(oint)42 b Fu(of)32 b Fs(F)13 b Fu(,)33 b(that)f(is)g -Fs(F)13 b Fu(\(FIX)33 b Fs(F)13 b Fu(\))32 b(=)g(FIX)h -Fs(F)13 b Fu(,)33 b(and)145 1462 y Ft(\017)49 b Fu(FIX)32 -b Fs(F)46 b Fu(is)32 b(a)g Fs(le)-5 b(ast)42 b Fu(\014xed)34 -b(p)s(oin)m(t)e(of)g Fs(F)13 b Fu(,)32 b(that)h(is)458 -1660 y(if)f Fs(F)45 b(g)c Fu(=)33 b Fs(g)41 b Fu(then)33 -b(FIX)g Fs(F)45 b Ft(v)33 b Fs(g)9 b Fu(.)0 1902 y Fw(Exercise)36 -b(4.14)49 b Fu(By)30 b(analogy)e(with)h(F)-8 b(act)28 -b(4.9)h(sho)m(w)h(that)f(if)f Fs(F)42 b Fu(has)29 b(a)g(least)g -(\014xed)h(p)s(oin)m(t)e Fs(g)3433 1917 y Fn(0)0 2023 -y Fu(then)33 b Fs(g)276 2038 y Fn(0)348 2023 y Fu(is)f(unique.)2641 -b Fh(2)146 2227 y Fu(The)30 b(next)f(task)h(will)c(b)s(e)j(to)f(ensure) -i(that)f(all)d(functionals)i Fs(F)41 b Fu(that)29 b(ma)m(y)f(arise)g -(do)h(indeed)0 2347 y(ha)m(v)m(e)37 b(least)d(\014xed)j(p)s(oin)m(ts.) -51 b(W)-8 b(e)35 b(shall)f(do)h(so)h(b)m(y)g(dev)m(eloping)f(a)g -(general)f(theory)i(that)f(giv)m(es)0 2467 y(more)h(structure)h(to)f -(the)g(partially)e(ordered)j(sets)g(and)g(that)f(imp)s(oses)f -(restrictions)h(on)g(the)0 2588 y(functionals)31 b(so)i(that)g(they)g -(ha)m(v)m(e)h(least)e(\014xed)i(p)s(oin)m(ts.)0 2792 -y Fw(Exercise)i(4.15)49 b Fu(Determine)37 b(the)h(least)f(\014xed)i(p)s -(oin)m(ts)f(of)f(the)h(functionals)f(considered)h(in)0 -2912 y(Exercises)c(4.2)f(and)f(4.3.)43 b(Compare)33 b(with)f(Exercises) -i(4.4)e(and)h(4.5.)873 b Fh(2)0 3198 y Fp(Complete)46 -b(partially)h(ordered)e(sets)0 3383 y Fu(Consider)38 -b(a)e(partially)f(ordered)j(set)g(\()p Fs(D)9 b Fu(,)37 -b Ft(v)p Fu(\))g(and)g(assume)h(that)f(w)m(e)h(ha)m(v)m(e)h(a)d(subset) -j Fs(Y)57 b Fu(of)0 3503 y Fs(D)9 b Fu(.)31 b(W)-8 b(e)32 -b(shall)d(b)s(e)j(in)m(terested)g(in)e(an)h(elemen)m(t)g(of)g -Fs(D)40 b Fu(that)31 b(summarizes)f(all)f(the)j(information)0 -3623 y(of)c Fs(Y)48 b Fu(and)29 b(this)f(is)g(called)g(an)g -Fs(upp)-5 b(er)31 b(b)-5 b(ound)39 b Fu(of)28 b Fs(Y)20 -b Fu(;)28 b(formally)-8 b(,)27 b(it)h(is)g(an)g(elemen)m(t)h -Fs(d)38 b Fu(of)28 b Fs(D)38 b Fu(suc)m(h)0 3744 y(that)244 -3929 y Ft(8)p Fs(d)359 3893 y Fi(0)415 3929 y Ft(2)33 -b Fs(Y)20 b Fu(.)32 b Fs(d)725 3893 y Fi(0)781 3929 y -Ft(v)h Fs(d)0 4114 y Fu(An)g(upp)s(er)g(b)s(ound)g Fs(d)42 -b Fu(of)32 b Fs(Y)53 b Fu(is)32 b(a)g Fs(le)-5 b(ast)35 -b(upp)-5 b(er)34 b(b)-5 b(ound)33 b Fu(if)e(and)i(only)f(if)244 -4299 y Fs(d)304 4263 y Fi(0)360 4299 y Fu(is)g(an)g(upp)s(er)i(b)s -(ound)e(of)g Fs(Y)53 b Fu(implies)30 b(that)i Fs(d)43 -b Ft(v)33 b Fs(d)2214 4263 y Fi(0)0 4485 y Fu(Th)m(us)i(a)f(least)g -(upp)s(er)g(b)s(ound)g(of)g Fs(Y)53 b Fu(will)32 b(add)i(as)g(little)d -(extra)k(information)30 b(as)k(p)s(ossible)g(to)0 4605 -y(that)e(already)g(presen)m(t)j(in)d(the)h(elemen)m(ts)f(of)h -Fs(Y)19 b Fu(.)0 4809 y Fw(Exercise)36 b(4.16)49 b Fu(By)31 -b(analogy)f(with)g(F)-8 b(act)30 b(4.9)g(sho)m(w)h(that)g(if)e -Fs(Y)50 b Fu(has)31 b(a)f(least)g(upp)s(er)h(b)s(ound)0 -4929 y Fs(d)43 b Fu(then)33 b Fs(d)43 b Fu(is)32 b(unique.)2581 -b Fh(2)146 5133 y Fu(If)37 b Fs(Y)56 b Fu(has)37 b(a)f(\(necessarily)h -(unique\))g(least)f(upp)s(er)h(b)s(ound)g(w)m(e)g(shall)e(denote)j(it)d -(b)m(y)3284 5067 y Fg(F)3354 5133 y Fs(Y)19 b Fu(.)0 -5254 y(Finally)-8 b(,)30 b(a)i(subset)i Fs(Y)52 b Fu(is)32 -b(called)f(a)i Fs(chain)39 b Fu(if)31 b(it)g(is)h(consisten)m(t)i(in)d -(the)i(sense)i(that)d(if)f(w)m(e)j(tak)m(e)0 5374 y(an)m(y)28 -b(t)m(w)m(o)f(elemen)m(ts)g(of)g Fs(Y)46 b Fu(then)27 -b(one)h(will)c(share)k(its)e(information)e(with)i(the)h(other;)i -(formally)-8 b(,)0 5494 y(this)32 b(is)g(expressed)k(b)m(y)p -eop -%%Page: 98 108 -98 107 bop 251 130 a Fw(98)2034 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(8)q Fs(d)643 -530 y Fn(1)682 515 y Fu(,)d Fs(d)802 530 y Fn(2)874 515 -y Ft(2)g Fs(Y)20 b Fu(.)32 b Fs(d)1184 530 y Fn(1)1256 -515 y Ft(v)h Fs(d)1426 530 y Fn(2)1498 515 y Fu(or)g -Fs(d)1678 530 y Fn(2)1750 515 y Ft(v)g Fs(d)1920 530 -y Fn(1)283 758 y Fw(Example)k(4.17)49 b Fu(Consider)d(the)g(partially)d -(ordered)j(set)g(\()p Ft(P)9 b Fu(\()p Ft(f)p Fu(a,b,c)p -Ft(g)p Fu(\),)48 b Ft(\022)q Fu(\))d(of)g(Example)283 -879 y(4.10.)e(Then)34 b(the)f(subset)527 1091 y Fs(Y)619 -1106 y Fn(0)691 1091 y Fu(=)f Ft(f)h(;)o Fu(,)g Ft(f)p -Fu(a)p Ft(g)p Fu(,)f Ft(f)p Fu(a,c)p Ft(g)g(g)283 1304 -y Fu(is)i(a)f(c)m(hain.)48 b(Both)33 b Ft(f)p Fu(a,b,c)p -Ft(g)h Fu(and)g Ft(f)p Fu(a,c)p Ft(g)g Fu(are)g(upp)s(er)g(b)s(ounds)h -(of)e Fs(Y)2775 1319 y Fn(0)2848 1304 y Fu(and)h Ft(f)p -Fu(a,c)p Ft(g)g Fu(is)f(the)h(least)283 1424 y(upp)s(er)k(b)s(ound.)55 -b(The)38 b(elemen)m(t)e Ft(f)p Fu(a,b)p Ft(g)g Fu(is)g -Fs(not)46 b Fu(an)37 b(upp)s(er)g(b)s(ound)g(b)s(ecause)h -Ft(f)p Fu(a,c)p Ft(g)e(6\022)h(f)p Fu(a,b)p Ft(g)p Fu(.)283 -1545 y(In)e(general,)f(the)g(least)g(upp)s(er)h(b)s(ound)f(of)g(a)f -(non-empt)m(y)i(c)m(hain)f(in)f Ft(P)8 b Fu(\()p Ft(f)p -Fu(a,b,c)p Ft(g)p Fu(\))34 b(will)e(b)s(e)i(the)283 1665 -y(largest)e(elemen)m(t)h(of)f(the)h(c)m(hain.)430 1787 -y(The)47 b(subset)i Ft(f)d(;)p Fu(,)k Ft(f)p Fu(a)p Ft(g)p -Fu(,)g Ft(f)p Fu(c)p Ft(g)p Fu(,)h Ft(f)p Fu(a,c)p Ft(g)46 -b(g)h Fu(is)f Fs(not)56 b Fu(a)46 b(c)m(hain)h(b)s(ecause)h -Ft(f)p Fu(a)p Ft(g)e Fu(and)h Ft(f)p Fu(c)p Ft(g)g Fu(are)283 -1908 y(unrelated)42 b(b)m(y)g(the)g(ordering.)69 b(Ho)m(w)m(ev)m(er,)46 -b(it)40 b(do)s(es)i(ha)m(v)m(e)h(a)e(least)g(upp)s(er)h(b)s(ound,)i -(namely)283 2028 y Ft(f)p Fu(a,c)p Ft(g)p Fu(.)430 2150 -y(The)35 b Fs(subset)43 b Ft(;)34 b Fu(of)g Ft(P)8 b -Fu(\()p Ft(f)p Fu(a,b,c)p Ft(g)p Fu(\))34 b(is)g(a)g(c)m(hain)g(and)g -(it)f(has)i(an)m(y)g(elemen)m(t)e(of)h Ft(P)9 b Fu(\()p -Ft(f)p Fu(a,b,c)p Ft(g)p Fu(\))34 b(as)283 2271 y(an)f(upp)s(er)g(b)s -(ound.)44 b(Its)33 b(least)f(upp)s(er)h(b)s(ound)g(is)f(the)h -Fs(element)41 b Ft(;)p Fu(.)981 b Fh(2)283 2512 y Fw(Exercise)37 -b(4.18)49 b Fu(Let)37 b Fs(S)49 b Fu(b)s(e)37 b(a)g(non-empt)m(y)h(set) -f(and)h(consider)f(the)h(partially)c(ordered)k(set)283 -2632 y(\()p Ft(P)9 b Fu(\()p Fs(S)j Fu(\),)33 b Ft(\022)p -Fu(\).)45 b(Sho)m(w)34 b(that)f(ev)m(ery)i(subset)f(of)f -Ft(P)8 b Fu(\()p Fs(S)k Fu(\))33 b(has)g(a)g(least)g(upp)s(er)g(b)s -(ound.)45 b(Rep)s(eat)33 b(the)283 2753 y(exercise)h(for)e(the)h -(partially)d(ordered)k(set)f(\()p Ft(P)8 b Fu(\()p Fs(S)k -Fu(\),)33 b Ft(\023)p Fu(\).)1362 b Fh(2)283 2994 y Fw(Exercise)37 -b(4.19)49 b Fu(Let)37 b Fs(S)49 b Fu(b)s(e)37 b(a)g(non-empt)m(y)h(set) -f(and)h(consider)f(the)h(partially)c(ordered)k(set)283 -3114 y(\()p Ft(P)399 3129 y Fn(\014n)481 3114 y Fu(\()p -Fs(S)12 b Fu(\),)31 b Ft(\022)q Fu(\))f(as)i(de\014ned)g(in)e(Exercise) -j(4.12.)42 b(Sho)m(w)32 b(b)m(y)g(means)f(of)f(an)h(example)f(that)h -(there)283 3234 y(are)45 b(c)m(hoices)h(of)e Fs(S)57 -b Fu(suc)m(h)46 b(that)f(\()p Ft(P)1605 3249 y Fn(\014n)1688 -3234 y Fu(\()p Fs(S)12 b Fu(\),)44 b Ft(\022)q Fu(\))h(has)g(a)f(c)m -(hain)h(with)g(no)f(upp)s(er)i(b)s(ound)f(and)283 3355 -y(therefore)34 b(no)e(least)g(upp)s(er)h(b)s(ound.)2051 -b Fh(2)283 3596 y Fw(Example)37 b(4.20)49 b Fu(Let)33 -b Fs(g)1223 3611 y Fn(n)1266 3596 y Fu(:)43 b Fw(State)33 -b Fo(,)-17 b Ft(!)32 b Fw(State)h Fu(b)s(e)g(de\014ned)h(b)m(y)527 -3969 y Fs(g)581 3984 y Fn(n)657 3969 y Fs(s)40 b Fu(=)846 -3719 y Fg(8)846 3794 y(>)846 3819 y(>)846 3844 y(>)846 -3869 y(<)846 4018 y(>)846 4043 y(>)846 4068 y(>)846 4093 -y(:)961 3800 y Fu(undef)p 961 3813 236 4 v 235 w(if)31 -b Fs(s)41 b Fr(x)33 b Fo(>)f Fu(n)961 3968 y Fs(s)8 b -Fu([)p Fr(x)p Ft(7!\000)p Fw(1)p Fu(])84 b(if)31 b Fw(0)i -Ft(\024)g Fs(s)40 b Fr(x)33 b Fu(and)g Fs(s)40 b Fr(x)33 -b Ft(\024)g Fu(n)961 4135 y Fs(s)430 b Fu(if)31 b Fs(s)41 -b Fr(x)33 b Fo(<)f Fw(0)283 4341 y Fu(It)38 b(is)f(straigh)m(tforw)m -(ard)g(to)g(v)m(erify)h(that)f Fs(g)1858 4356 y Fn(n)1939 -4341 y Ft(v)h Fs(g)2108 4356 y Fn(m)2208 4341 y Fu(whenev)m(er)i(n)e -Ft(\024)f Fu(m)g(b)s(ecause)i Fs(g)3386 4356 y Fn(n)3466 -4341 y Fu(will)d(b)s(e)283 4462 y(unde\014ned)f(for)d(more)g(states)h -(than)g Fs(g)1680 4477 y Fn(m)1742 4462 y Fu(.)44 b(No)m(w)33 -b(de\014ne)h Fs(Y)2408 4477 y Fn(0)2480 4462 y Fu(to)f(b)s(e)527 -4674 y Fs(Y)619 4689 y Fn(0)691 4674 y Fu(=)f Ft(f)h -Fs(g)936 4689 y Fn(n)1011 4674 y Ft(j)f Fu(n)h Ft(\025)g -Fu(0)f Ft(g)283 4887 y Fu(Then)i Fs(Y)630 4902 y Fn(0)702 -4887 y Fu(is)e(a)g(c)m(hain)h(b)s(ecause)h Fs(g)1554 -4902 y Fn(n)1629 4887 y Ft(v)f Fs(g)1793 4902 y Fn(m)1888 -4887 y Fu(whenev)m(er)i(n)e Ft(\024)g Fu(m.)43 b(The)33 -b(partial)d(function)527 5181 y Fs(g)41 b(s)g Fu(=)802 -5007 y Fg(8)802 5081 y(<)802 5231 y(:)918 5096 y Fs(s)8 -b Fu([)p Fr(x)p Ft(7!\000)p Fw(1)p Fu(])83 b(if)32 b -Fw(0)g Ft(\024)h Fs(s)41 b Fr(x)918 5264 y Fs(s)429 b -Fu(if)32 b Fs(s)40 b Fr(x)33 b Fo(<)g Fw(0)283 5475 y -Fu(is)g(the)g(least)f(upp)s(er)h(b)s(ound)g(of)f Fs(Y)19 -b Fu(.)2094 b Fh(2)p eop -%%Page: 99 109 -99 108 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2183 -b(99)p 0 193 3473 4 v 0 515 a(Exercise)36 b(4.21)49 b -Fu(Construct)e(a)f(subset)h Fs(Y)66 b Fu(of)45 b Fw(State)h -Fo(,)-17 b Ft(!)46 b Fw(State)g Fu(suc)m(h)h(that)f Fs(Y)65 -b Fu(has)46 b(no)0 636 y(upp)s(er)33 b(b)s(ound)g(and)g(hence)h(no)e -(least)g(upp)s(er)h(b)s(ound.)1420 b Fh(2)0 826 y Fw(Exercise)36 -b(4.22)49 b Fu(Let)33 b Fs(g)920 841 y Fn(n)996 826 y -Fu(b)s(e)f(the)h(partial)e(function)h(de\014ned)i(b)m(y)244 -1083 y Fs(g)298 1098 y Fn(n)373 1083 y Fs(s)41 b Fu(=)562 -909 y Fg(8)562 983 y(<)562 1133 y(:)678 998 y Fs(s)8 -b Fu([)p Fr(y)p Ft(7!)p Fu(\()p Fs(s)40 b Fr(x)p Fu(\)!][)p -Fr(x)p Ft(7!)q Fw(1)p Fu(])83 b(if)31 b Fw(0)i Fo(<)f -Fs(s)41 b Fr(x)33 b Fu(and)f Fs(s)41 b Fr(x)33 b Ft(\024)g -Fu(n)678 1166 y(undef)p 678 1179 236 4 v 597 w(if)e Fs(s)41 -b Fr(x)33 b Ft(\024)g Fw(0)f Fu(or)g Fs(s)41 b Fr(x)33 -b Fo(>)f Fu(n)0 1345 y(\(where)h Fo(m)p Fu(!)f(denotes)h(the)f -(factorial)d(of)i Fo(m)p Fu(.\))44 b(De\014ne)32 b Fs(Y)2060 -1360 y Fn(0)2131 1345 y Fu(=)f Ft(f)g Fs(g)2373 1360 -y Fn(n)2448 1345 y Ft(j)g Fu(n)h Ft(\025)g Fu(0)g Ft(g)f -Fu(and)h(sho)m(w)h(that)0 1466 y(it)d(is)h(a)g(c)m(hain.)43 -b(Characterize)32 b(the)f(upp)s(er)h(b)s(ounds)g(of)f -Fs(Y)2119 1481 y Fn(0)2190 1466 y Fu(and)g(determine)g(the)h(least)f -(upp)s(er)0 1586 y(b)s(ound.)3103 b Fh(2)146 1777 y Fu(A)33 -b(partially)d(ordered)k(set)g(\()p Fs(D)9 b Fu(,)32 b -Ft(v)q Fu(\))h(is)f(called)g(a)g Fs(chain)j(c)-5 b(omplete)39 -b Fu(partially)30 b(ordered)k(set)0 1897 y(\(abbreviated)j -Fs(c)-5 b(cp)g(o)p Fu(\))36 b(whenev)m(er)1262 1831 y -Fg(F)1331 1897 y Fs(Y)56 b Fu(exists)74 b(for)36 b(all)e(c)m(hains)j -Fs(Y)20 b Fu(.)37 b(It)f(is)g(a)h Fs(c)-5 b(omplete)37 -b(lattic)-5 b(e)0 2017 y Fu(if)89 1951 y Fg(F)159 2017 -y Fs(Y)52 b Fu(exists)33 b(for)f(all)f(subsets)j Fs(Y)52 -b Fu(of)33 b Fs(D)9 b Fu(.)0 2208 y Fw(Example)37 b(4.23)49 -b Fu(Exercise)35 b(4.18)f(sho)m(ws)i(that)e(\()p Ft(P)8 -b Fu(\()p Fs(S)k Fu(\),)34 b Ft(\022)q Fu(\))g(and)h(\()p -Ft(P)8 b Fu(\()p Fs(S)k Fu(\),)34 b Ft(\023)q Fu(\))g(are)g(complete)0 -2328 y(lattices,)51 b(and)d(hence)h(ccp)s(o's,)k(for)47 -b(all)f(non-empt)m(y)i(sets)i Fs(S)12 b Fu(.)47 b(Exercise)j(4.19)d -(sho)m(ws)j(that)0 2449 y(\()p Ft(P)115 2464 y Fn(\014n)198 -2449 y Fu(\()p Fs(S)12 b Fu(\),)32 b Ft(\022)q Fu(\))g(need)i(not)e(b)s -(e)h(a)f(complete)g(lattice)f(nor)i(a)f(ccp)s(o.)1051 -b Fh(2)p 0 2639 3473 5 v 0 2785 a Fw(F)-9 b(act)37 b(4.24)49 -b Fu(If)33 b(\()p Fs(D)9 b Fu(,)32 b Ft(v)q Fu(\))g(is)g(a)h(ccp)s(o)g -(then)g(it)e(has)i(a)g(least)f(elemen)m(t)g Ft(?)h Fu(giv)m(en)g(b)m(y) -g Ft(?)q Fu(=)3174 2719 y Fg(F)3243 2785 y Ft(;)p Fu(.)p -0 2906 V 0 3081 a Fw(Pro)s(of:)k Fu(It)c(is)f(straigh)m(tforw)m(ard)g -(to)h(c)m(hec)m(k)h(that)f Ft(;)f Fu(is)g(a)h(c)m(hain)f(and)h(since)g -(\()p Fs(D)9 b Fu(,)33 b Ft(v)p Fu(\))g(is)f(a)g(ccp)s(o)0 -3201 y(w)m(e)g(get)g(that)514 3135 y Fg(F)583 3201 y -Ft(;)f Fu(exists.)44 b(Using)31 b(the)h(de\014nition)e(of)1953 -3135 y Fg(F)2022 3201 y Ft(;)h Fu(w)m(e)i(see)f(that)f(for)g(an)m(y)h -(elemen)m(t)f Fs(d)42 b Fu(of)0 3321 y Fs(D)g Fu(w)m(e)33 -b(ha)m(v)m(e)484 3255 y Fg(F)553 3321 y Ft(;)g(v)g Fs(d)10 -b Fu(.)43 b(This)33 b(means)f(that)1609 3255 y Fg(F)1678 -3321 y Ft(;)g Fu(is)g(the)h(least)g(elemen)m(t)f(of)g -Fs(D)9 b Fu(.)562 b Fh(2)146 3525 y Fu(Exercise)26 b(4.21)e(sho)m(ws)j -(that)d Fw(State)h Fo(,)-17 b Ft(!)24 b Fw(State)h Fu(is)f(not)h(a)f -(complete)g(lattice.)39 b(F)-8 b(ortunately)g(,)0 3645 -y(w)m(e)34 b(ha)m(v)m(e)p 0 3766 V 0 3912 a Fw(Lemma)j(4.25)49 -b Fu(\()p Fw(State)39 b Fo(,)-17 b Ft(!)39 b Fw(State)p -Fu(,)f Ft(v)q Fu(\))h(is)f(a)g(ccp)s(o.)63 b(The)39 b(least)g(upp)s(er) -g(b)s(ound)3107 3845 y Fg(F)3176 3912 y Fs(Y)58 b Fu(of)39 -b(a)0 4032 y(c)m(hain)32 b Fs(Y)53 b Fu(is)32 b(giv)m(en)g(b)m(y)244 -4207 y(graph\()526 4141 y Fg(F)595 4207 y Fs(Y)20 b Fu(\))32 -b(=)865 4141 y Fg(S)935 4207 y Ft(f)g Fu(graph\()p Fs(g)9 -b Fu(\))32 b Ft(j)g Fs(g)41 b Ft(2)p Fs(Y)53 b Ft(g)0 -4382 y Fu(that)32 b(is)g(\()347 4316 y Fg(F)417 4382 -y Fs(Y)19 b Fu(\))p Fs(s)41 b Fu(=)32 b Fs(s)783 4346 -y Fi(0)839 4382 y Fu(if)f(and)i(only)f(if)g Fs(g)41 b(s)f -Fu(=)33 b Fs(s)1745 4346 y Fi(0)1801 4382 y Fu(for)f(some)g -Fs(g)41 b Ft(2)33 b Fs(Y)20 b Fu(.)p 0 4503 V 0 4678 -a Fw(Pro)s(of:)37 b Fu(The)d(pro)s(of)e(is)g(in)f(three)j(stages:)44 -b(First)32 b(w)m(e)h(pro)m(v)m(e)h(that)269 4779 y Fg(S)338 -4845 y Ft(f)e Fu(graph\()p Fs(g)9 b Fu(\))32 b Ft(j)g -Fs(g)41 b Ft(2)33 b Fs(Y)52 b Ft(g)2103 b Fu(\(*\))0 -5013 y(is)41 b(indeed)h(a)f(graph)h(of)f(a)g(partial)f(function)h(in)g -Fw(State)h Fo(,)-17 b Ft(!)41 b Fw(State)p Fu(.)71 b(Secondly)-8 -b(,)44 b(w)m(e)f(pro)m(v)m(e)0 5133 y(that)29 b(this)g(function)g(will) -d(b)s(e)k(an)f(upp)s(er)h(b)s(ound)f(of)g Fs(Y)49 b Fu(and)29 -b(thirdly)f(that)h(it)f(is)h(less)g(than)h(an)m(y)0 5254 -y(other)j(upp)s(er)g(b)s(ound)g(of)f Fs(Y)19 b Fu(,)33 -b(that)f(is)g(it)g(is)g(the)h(least)f(upp)s(er)h(b)s(ound)g(of)f -Fs(Y)20 b Fu(.)146 5374 y(T)-8 b(o)25 b(v)m(erify)g(that)g(\(*\))f(sp)s -(eci\014es)i(a)f Fs(p)-5 b(artial)27 b(function)32 b -Fu(w)m(e)26 b(only)e(need)i(to)f(sho)m(w)h(that)e(if)g -Ft(h)p Fs(s)8 b Fu(,)32 b Fs(s)3410 5338 y Fi(0)3434 -5374 y Ft(i)0 5494 y Fu(and)h Ft(h)o Fs(s)8 b Fu(,)33 -b Fs(s)384 5458 y Fi(00)427 5494 y Ft(i)f Fu(are)g(elemen)m(ts)h(of)p -eop -%%Page: 100 110 -100 109 bop 251 130 a Fw(100)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Fs(X)49 b -Fu(=)756 449 y Fg(S)826 515 y Ft(f)32 b Fu(graph\()p -Fs(g)9 b Fu(\))32 b Ft(j)g Fs(g)9 b Ft(2)p Fs(Y)52 b -Ft(g)283 710 y Fu(then)35 b Fs(s)555 673 y Fi(0)613 710 -y Fu(=)f Fs(s)771 673 y Fi(00)813 710 y Fu(.)49 b(When)35 -b Ft(h)p Fs(s)8 b Fu(,)34 b Fs(s)1371 673 y Fi(0)1395 -710 y Ft(i)g(2)g Fs(X)51 b Fu(there)35 b(will)c(b)s(e)k(a)f(partial)e -(function)i Fs(g)41 b Ft(2)33 b Fs(Y)53 b Fu(suc)m(h)36 -b(that)283 830 y Fs(g)k(s)f Fu(=)30 b Fs(s)601 794 y -Fi(0)625 830 y Fu(.)43 b(Similarly)-8 b(,)27 b(when)32 -b Ft(h)p Fs(s)8 b Fu(,)31 b Fs(s)1573 794 y Fi(00)1616 -830 y Ft(i)f(2)h Fs(X)47 b Fu(then)32 b(there)g(will)c(b)s(e)j(a)g -(partial)e(function)h Fs(g)3510 794 y Fi(0)3565 830 y -Ft(2)j Fs(Y)283 950 y Fu(suc)m(h)i(that)d Fs(g)769 914 -y Fi(0)824 950 y Fs(s)41 b Fu(=)32 b Fs(s)1061 914 y -Fi(00)1104 950 y Fu(.)43 b(Since)33 b Fs(Y)52 b Fu(is)33 -b(a)f(c)m(hain)g(w)m(e)i(will)c(ha)m(v)m(e)k(that)f(either)f -Fs(g)41 b Ft(v)33 b Fs(g)3281 914 y Fi(0)3337 950 y Fu(or)f -Fs(g)3510 914 y Fi(0)3565 950 y Ft(v)h Fs(g)9 b Fu(.)283 -1071 y(In)44 b(an)m(y)h(case)f(w)m(e)h(get)f Fs(g)52 -b(s)g Fu(=)43 b Fs(g)1520 1034 y Fi(0)1587 1071 y Fs(s)51 -b Fu(and)44 b(this)g(means)f(that)h Fs(s)2661 1034 y -Fi(0)2728 1071 y Fu(=)f Fs(s)2895 1034 y Fi(00)2981 1071 -y Fu(as)h(required.)78 b(This)283 1191 y(completes)33 -b(the)g(\014rst)g(part)f(of)g(the)h(pro)s(of.)430 1311 -y(In)g(the)g(second)h(part)e(of)g(the)h(pro)s(of)f(w)m(e)h(de\014ne)h -(the)f(partial)d(function)j Fs(g)3124 1326 y Fn(0)3195 -1311 y Fu(b)m(y)527 1506 y(graph\()p Fs(g)863 1521 y -Fn(0)902 1506 y Fu(\))g(=)1081 1439 y Fg(S)1150 1506 -y Ft(f)g Fu(graph\()p Fs(g)9 b Fu(\))31 b Ft(j)i Fs(g)41 -b Ft(2)33 b Fs(Y)52 b Ft(g)283 1700 y Fu(T)-8 b(o)33 -b(sho)m(w)g(that)f Fs(g)933 1715 y Fn(0)1004 1700 y Fu(is)g(an)g(upp)s -(er)h(b)s(ound)f(of)g Fs(Y)52 b Fu(let)31 b Fs(g)41 b -Fu(b)s(e)32 b(an)g(elemen)m(t)g(of)g Fs(Y)20 b Fu(.)32 -b(Then)h(w)m(e)h(ha)m(v)m(e)283 1820 y(graph\()p Fs(g)9 -b Fu(\))36 b Ft(\022)g Fu(graph\()p Fs(g)1142 1835 y -Fn(0)1181 1820 y Fu(\))g(and)g(using)f(the)h(result)g(of)g(Exercise)h -(4.8)e(w)m(e)i(see)g(that)f Fs(g)44 b Ft(v)37 b Fs(g)3594 -1835 y Fn(0)3669 1820 y Fu(as)283 1940 y(required)d(and)e(w)m(e)i(ha)m -(v)m(e)g(completed)e(the)h(second)h(part)e(of)g(the)h(pro)s(of.)430 -2061 y(In)26 b(the)h(third)e(part)h(of)g(the)h(pro)s(of)e(w)m(e)i(sho)m -(w)h(that)e Fs(g)2296 2076 y Fn(0)2361 2061 y Fu(is)g(the)g(least)g -(upp)s(er)h(b)s(ound)f(of)g Fs(Y)20 b Fu(.)26 b(So)283 -2181 y(let)33 b Fs(g)479 2196 y Fn(1)551 2181 y Fu(b)s(e)h(some)f(upp)s -(er)h(b)s(ound)f(of)g Fs(Y)19 b Fu(.)34 b(Using)f(the)g(de\014nition)f -(of)h(an)g(upp)s(er)h(b)s(ound)g(w)m(e)g(get)283 2302 -y(that)29 b Fs(g)38 b Ft(v)30 b Fs(g)735 2317 y Fn(1)803 -2302 y Fu(m)m(ust)f(hold)f(for)h(all)e Fs(g)38 b Ft(2)p -Fs(Y)20 b Fu(.)29 b(Exercise)i(4.8)d(giv)m(es)i(that)f(graph\()p -Fs(g)9 b Fu(\))28 b Ft(\022)i Fu(graph\()p Fs(g)3652 -2317 y Fn(1)3691 2302 y Fu(\).)283 2422 y(Hence)k(it)e(m)m(ust)h(b)s(e) -f(the)h(case)h(that)527 2550 y Fg(S)597 2616 y Ft(f)e -Fu(graph\()p Fs(g)9 b Fu(\))32 b Ft(j)g Fs(g)41 b Ft(2)33 -b Fs(Y)52 b Ft(g)32 b(\022)h Fu(graph\()p Fs(g)1982 2631 -y Fn(1)2021 2616 y Fu(\))283 2810 y(But)28 b(this)g(is)f(the)h(same)f -(as)h(graph\()p Fs(g)1604 2825 y Fn(0)1643 2810 y Fu(\))f -Ft(\022)h Fu(graph\()p Fs(g)2149 2825 y Fn(1)2188 2810 -y Fu(\))g(and)f(Exercise)i(4.8)f(giv)m(es)g(that)f Fs(g)3464 -2825 y Fn(0)3531 2810 y Ft(v)h Fs(g)3690 2825 y Fn(1)3729 -2810 y Fu(.)283 2931 y(This)k(sho)m(ws)h(that)e Fs(g)1048 -2946 y Fn(0)1118 2931 y Fu(is)f(the)i(least)f(upp)s(er)h(b)s(ound)f(of) -g Fs(Y)50 b Fu(and)32 b(thereb)m(y)h(w)m(e)f(ha)m(v)m(e)g(completed)283 -3051 y(the)h(pro)s(of.)2980 b Fh(2)283 3421 y Fp(Con)l(tin)l(uous)46 -b(functions)283 3606 y Fu(Let)35 b(\()p Fs(D)9 b Fu(,)34 -b Ft(v)p Fu(\))g(and)g(\()p Fs(D)1103 3570 y Fi(0)1126 -3606 y Fu(,)h Ft(v)1265 3570 y Fi(0)1288 3606 y Fu(\))f(b)s(e)g(ccp)s -(o's)h(and)f(consider)h(a)e(\(total\))g(function)g Fs(f)21 -b Fu(:)46 b Fs(D)d Ft(!)34 b Fs(D)3593 3570 y Fi(0)3616 -3606 y Fu(.)48 b(If)283 3726 y Fs(d)343 3741 y Fn(1)416 -3726 y Ft(v)33 b Fs(d)586 3741 y Fn(2)657 3726 y Fu(then)g(the)f(in)m -(tuition)e(is)h(that)h Fs(d)1812 3741 y Fn(1)1884 3726 -y Fu(shares)h(its)e(information)e(with)j Fs(d)3122 3741 -y Fn(2)3161 3726 y Fu(.)43 b(So)32 b(when)h(the)283 3847 -y(function)k Fs(f)58 b Fu(has)37 b(b)s(een)h(applied)e(to)h(the)g(t)m -(w)m(o)h(elemen)m(ts)f Fs(d)2465 3862 y Fn(1)2542 3847 -y Fu(and)g Fs(d)2796 3862 y Fn(2)2872 3847 y Fu(then)h(w)m(e)g(shall)e -(exp)s(ect)283 3967 y(that)31 b(a)g(similar)c(relationship)i(holds)i(b) -s(et)m(w)m(een)i(the)e(results.)43 b(That)31 b(is)g(w)m(e)g(shall)f -(exp)s(ect)i(that)283 4088 y Fs(f)55 b(d)428 4103 y Fn(1)502 -4088 y Ft(v)579 4051 y Fi(0)637 4088 y Fs(f)g(d)782 4103 -y Fn(2)855 4088 y Fu(and)34 b(when)h(this)f(is)g(the)g(case)h(w)m(e)g -(sa)m(y)g(that)f Fs(f)55 b Fu(is)33 b Fs(monotone)p Fu(.)47 -b(F)-8 b(ormally)g(,)31 b Fs(f)55 b Fu(is)283 4208 y(monotone)32 -b(if)g(and)g(only)g(if)527 4402 y Fs(d)587 4417 y Fn(1)659 -4402 y Ft(v)h Fs(d)829 4417 y Fn(2)902 4402 y Fu(implies)d -Fs(f)53 b(d)1376 4417 y Fn(1)1448 4402 y Ft(v)1526 4366 -y Fi(0)1581 4402 y Fs(f)h(d)1725 4417 y Fn(2)283 4596 -y Fu(for)32 b(all)f(c)m(hoices)i(of)g Fs(d)1068 4611 -y Fn(1)1140 4596 y Fu(and)f Fs(d)1389 4611 y Fn(2)1429 -4596 y Fu(.)283 4812 y Fw(Example)37 b(4.26)49 b Fu(Consider)24 -b(the)h(ccp)s(o's)g(\()p Ft(P)8 b Fu(\()p Ft(f)p Fu(a,b,c)p -Ft(g)p Fu(\),)26 b Ft(\022)p Fu(\))e(and)h(\()p Ft(P)8 -b Fu(\()p Ft(f)p Fu(d,e)p Ft(g)p Fu(\),)26 b Ft(\022)p -Fu(\).)41 b(The)25 b(func-)283 4932 y(tion)32 b Fs(f)535 -4947 y Fn(1)574 4932 y Fu(:)44 b Ft(P)8 b Fu(\()p Ft(f)p -Fu(a,b,c)p Ft(g)p Fu(\))33 b Ft(!)f(P)8 b Fu(\()p Ft(f)p -Fu(d,e)p Ft(g)p Fu(\))33 b(de\014ned)h(b)m(y)g(the)f(table)639 -5205 y Fs(X)p 869 5288 4 249 v 209 w Ft(f)p Fu(a,b,c)p -Ft(g)100 b(f)p Fu(a,b)p Ft(g)i(f)p Fu(a,c)p Ft(g)g(f)p -Fu(b,c)p Ft(g)h(f)p Fu(a)p Ft(g)f(f)p Fu(b)p Ft(g)d(f)p -Fu(c)p Ft(g)h(;)p 527 5291 2620 4 v 577 5457 a Fs(f)628 -5472 y Fn(1)700 5457 y Fs(X)p 869 5528 4 237 v 186 w -Ft(f)p Fu(d,e)p Ft(g)176 b(f)p Fu(d)p Ft(g)137 b(f)p -Fu(d,e)p Ft(g)100 b(f)p Fu(d,e)p Ft(g)g(f)p Fu(d)p Ft(g)g(f)p -Fu(d)p Ft(g)f(f)p Fu(e)p Ft(g)h(;)p eop -%%Page: 101 111 -101 110 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2127 -b(101)p 0 193 3473 4 v 0 515 a Fu(is)32 b(monotone:)43 -b(it)31 b(simply)h(c)m(hanges)h(a's)g(and)g(b's)g(to)g(d's)g(and)g(c's) -g(to)f(e's.)146 636 y(The)i(function)e Fs(f)780 651 y -Fn(2)819 636 y Fu(:)44 b Ft(P)8 b Fu(\()p Ft(f)p Fu(a,b,c)p -Ft(g)p Fu(\))33 b Ft(!)f(P)8 b Fu(\()p Ft(f)p Fu(d,e)p -Ft(g)p Fu(\))33 b(de\014ned)h(b)m(y)g(the)f(table)355 -917 y Fs(X)p 585 1001 4 249 v 210 w Ft(f)p Fu(a,b,c)p -Ft(g)100 b(f)p Fu(a,b)p Ft(g)f(f)p Fu(a,c)p Ft(g)g(f)p -Fu(b,c)p Ft(g)k(f)p Fu(a)p Ft(g)f(f)p Fu(b)p Ft(g)d(f)p -Fu(c)p Ft(g)146 b(;)p 244 1004 2707 4 v 294 1169 a Fs(f)345 -1184 y Fn(2)417 1169 y Fs(X)p 585 1240 4 237 v 221 w -Ft(f)p Fu(d)p Ft(g)211 b(f)p Fu(d)p Ft(g)170 b(f)p Fu(d)p -Ft(g)i(f)p Fu(e)p Ft(g)140 b(f)p Fu(d)p Ft(g)105 b(f)p -Fu(e)p Ft(g)g(f)p Fu(e)p Ft(g)100 b(f)p Fu(e)p Ft(g)0 -1406 y Fu(is)36 b Fs(not)46 b Fu(monotone)36 b(b)s(ecause)j -Ft(f)p Fu(b,c)p Ft(g)d(\022)i(f)p Fu(a,b,c)p Ft(g)e Fu(but)h -Fs(f)2050 1421 y Fn(2)2127 1406 y Ft(f)p Fu(b,c)p Ft(g)f(6\022)i -Fs(f)2553 1421 y Fn(2)2629 1406 y Ft(f)p Fu(a,b,c)p Ft(g)p -Fu(.)56 b(In)m(tuitiv)m(ely)-8 b(,)0 1527 y(all)36 b(sets)j(that)f(con) -m(tain)g(an)g(a)g(are)g(mapp)s(ed)g(to)g Ft(f)p Fu(d)p -Ft(g)g Fu(whereas)h(the)g(others)g(are)f(mapp)s(ed)g(to)0 -1647 y Ft(f)p Fu(e)p Ft(g)43 b Fu(and)h(since)g(the)g(elemen)m(ts)g -Ft(f)p Fu(d)p Ft(g)f Fu(and)g Ft(f)p Fu(e)p Ft(g)h Fu(are)f -(incomparable)f(this)h(do)s(es)h(not)f(giv)m(e)h(a)0 -1767 y(monotone)32 b(function.)42 b(Ho)m(w)m(ev)m(er,)35 -b(if)c(w)m(e)j(c)m(hange)f(the)g(de\014nition)e(suc)m(h)j(that)e(sets)h -(with)f(an)h(a)0 1888 y(are)e(mapp)s(ed)g(to)g Ft(f)p -Fu(d)p Ft(g)f Fu(and)i(all)c(other)k(sets)g(to)f Ft(;)f -Fu(then)i(the)g(function)e(will)f(b)s(e)i(monotone.)75 -b Fh(2)0 2116 y Fw(Exercise)36 b(4.27)49 b Fu(Consider)37 -b(the)g(ccp)s(o)g(\()p Ft(P)9 b Fu(\()p Fw(N)p Fu(\),)36 -b Ft(\022)p Fu(\).)55 b(Determine)36 b(whic)m(h)h(of)f(the)h(follo)m -(wing)0 2237 y(functions)c(in)e Ft(P)9 b Fu(\()p Fw(N)p -Fu(\))32 b Ft(!)g(P)8 b Fu(\()p Fw(N)p Fu(\))33 b(are)f(monotone:)145 -2440 y Ft(\017)49 b Fs(f)295 2455 y Fn(1)367 2440 y Fs(X)f -Fu(=)33 b Fw(N)f Ft(n)g Fs(X)145 2643 y Ft(\017)49 b -Fs(f)295 2658 y Fn(2)367 2643 y Fs(X)f Fu(=)33 b Fs(X)49 -b Ft([)32 b(f)p Fw(27)p Ft(g)145 2847 y(\017)49 b Fs(f)295 -2862 y Fn(3)367 2847 y Fs(X)f Fu(=)33 b Fs(X)49 b Ft(\\)32 -b(f)p Fw(7)p Fu(,)h Fw(9)p Fu(,)g Fw(13)p Ft(g)145 3050 -y(\017)49 b Fs(f)295 3065 y Fn(4)367 3050 y Fs(X)f Fu(=)33 -b Ft(f)f Fs(n)40 b Ft(2)33 b Fs(X)49 b Ft(j)32 b Fs(n)40 -b Fu(is)32 b(a)g(prime)f Ft(g)145 3254 y(\017)49 b Fs(f)295 -3269 y Fn(5)367 3254 y Fs(X)f Fu(=)33 b Ft(f)f Fw(2)h -Fo(?)f Fs(n)40 b Ft(j)32 b Fs(n)40 b Ft(2)33 b Fs(X)48 -b Ft(g)2031 b Fh(2)0 3482 y Fw(Exercise)36 b(4.28)49 -b Fu(Determine)32 b(whic)m(h)h(of)f(the)h(follo)m(wing)d(functionals)h -(of)244 3685 y(\()p Fw(State)h Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(\))g Ft(!)f Fu(\()p Fw(State)g Fo(,)-17 b Ft(!)33 -b Fw(State)p Fu(\))0 3889 y(are)g(monotone:)145 4092 -y Ft(\017)49 b Fs(F)321 4107 y Fn(0)393 4092 y Fs(g)41 -b Fu(=)32 b Fs(g)145 4377 y Ft(\017)49 b Fs(F)321 4392 -y Fn(1)393 4377 y Fs(g)41 b Fu(=)587 4203 y Fg(8)587 -4277 y(<)587 4427 y(:)703 4292 y Fs(g)757 4307 y Fn(1)879 -4292 y Fu(if)31 b Fs(g)41 b Fu(=)33 b Fs(g)1217 4307 -y Fn(2)703 4460 y Fs(g)757 4475 y Fn(2)879 4460 y Fu(otherwise)1494 -4377 y(where)h Fs(g)1830 4392 y Fn(1)1902 4377 y Ft(6)p -Fu(=)e Fs(g)2064 4392 y Fn(2)145 4767 y Ft(\017)49 b -Fu(\()p Fs(F)359 4731 y Fi(0)415 4767 y Fs(g)9 b Fu(\))32 -b Fs(s)40 b Fu(=)728 4593 y Fg(8)728 4668 y(<)728 4817 -y(:)843 4683 y Fs(g)h(s)91 b Fu(if)32 b Fs(s)40 b Fr(x)33 -b Ft(6)p Fu(=)f Fw(0)843 4850 y Fs(s)177 b Fu(if)32 b -Fs(s)40 b Fr(x)33 b Fu(=)f Fw(0)3398 4767 y Fh(2)146 -5077 y Fu(The)d(monotone)d(functions)i(ha)m(v)m(e)g(a)f(couple)h(of)f -(in)m(teresting)g(prop)s(erties.)41 b(First)27 b(w)m(e)h(pro)m(v)m(e)0 -5198 y(that)k(the)h(comp)s(osition)e(of)h(t)m(w)m(o)h(monotone)f -(functions)g(is)g(a)h(monotone)e(function.)p eop -%%Page: 102 112 -102 111 bop 251 130 a Fw(102)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 3473 5 v 283 -689 a(F)-9 b(act)38 b(4.29)49 b Fu(Let)e(\()p Fs(D)9 -b Fu(,)47 b Ft(v)p Fu(\),)k(\()p Fs(D)1476 653 y Fi(0)1499 -689 y Fu(,)g Ft(v)1654 653 y Fi(0)1677 689 y Fu(\))c(and)g(\()p -Fs(D)2087 653 y Fi(00)2130 689 y Fu(,)j Ft(v)2285 653 -y Fi(00)2327 689 y Fu(\))d(b)s(e)g(ccp)s(o's)h(and)f(let)f -Fs(f)21 b Fu(:)72 b Fs(D)56 b Ft(!)47 b Fs(D)3733 653 -y Fi(0)283 809 y Fu(and)42 b Fs(f)533 773 y Fi(0)557 -809 y Fu(:)h Fs(D)710 773 y Fi(0)766 809 y Ft(!)32 b -Fs(D)981 773 y Fi(00)1065 809 y Fu(b)s(e)42 b(monotone)f(functions.)71 -b(Then)43 b Fs(f)2467 773 y Fi(0)2522 809 y Ft(\016)33 -b Fs(f)21 b Fu(:)43 b Fs(D)f Ft(!)32 b Fs(D)3057 773 -y Fi(00)3141 809 y Fu(is)41 b(a)h(monotone)283 930 y(function.)p -283 1050 V 283 1253 a Fw(Pro)s(of:)33 b Fu(Assume)d(that)f -Fs(d)1245 1268 y Fn(1)1313 1253 y Ft(v)g Fs(d)1479 1268 -y Fn(2)1519 1253 y Fu(.)42 b(The)30 b(monotonicit)m(y)d(of)h -Fs(f)50 b Fu(giv)m(es)29 b(that)g Fs(f)50 b(d)3142 1268 -y Fn(1)3210 1253 y Ft(v)3287 1217 y Fi(0)3339 1253 y -Fs(f)g(d)3479 1268 y Fn(2)3519 1253 y Fu(.)42 b(The)283 -1373 y(monotonicit)m(y)31 b(of)h Fs(f)1036 1337 y Fi(0)1092 -1373 y Fu(then)h(giv)m(es)g Fs(f)1604 1337 y Fi(0)1660 -1373 y Fu(\()p Fs(f)53 b(d)1841 1388 y Fn(1)1881 1373 -y Fu(\))32 b Ft(v)2029 1337 y Fi(00)2104 1373 y Fs(f)2155 -1337 y Fi(0)2211 1373 y Fu(\()p Fs(f)53 b(d)2392 1388 -y Fn(2)2431 1373 y Fu(\))33 b(as)g(required.)683 b Fh(2)430 -1576 y Fu(Next)33 b(w)m(e)g(pro)m(v)m(e)h(that)e(the)h(image)e(of)h(a)g -(c)m(hain)g(under)h(a)g(monotone)e(function)h(is)g(itself)f(a)283 -1697 y(c)m(hain.)p 283 1817 V 283 1991 a Fw(Lemma)38 -b(4.30)49 b Fu(Let)24 b(\()p Fs(D)9 b Fu(,)23 b Ft(v)q -Fu(\))h(and)g(\()p Fs(D)1708 1955 y Fi(0)1731 1991 y -Fu(,)h Ft(v)1861 1955 y Fi(0)1884 1991 y Fu(\))f(b)s(e)g(ccp)s(o's)h -(and)f(let)f Fs(f)e Fu(:)39 b Fs(D)33 b Ft(!)23 b Fs(D)3095 -1955 y Fi(0)3142 1991 y Fu(b)s(e)h(a)g(monotone)283 2111 -y(function.)42 b(If)30 b Fs(Y)49 b Fu(is)29 b(a)h(c)m(hain)f(in)g -Fs(D)39 b Fu(then)30 b Ft(f)f Fs(f)51 b(d)39 b Ft(j)30 -b Fs(d)39 b Ft(2)30 b Fs(Y)49 b Ft(g)30 b Fu(is)f(a)g(c)m(hain)h(in)f -Fs(D)3104 2075 y Fi(0)3127 2111 y Fu(.)42 b(F)-8 b(urthermore,)552 -2212 y Fg(F)621 2243 y Fi(0)645 2279 y Ft(f)32 b Fs(f)53 -b(d)43 b Ft(j)32 b Fs(d)43 b Ft(2)33 b Fs(Y)52 b Ft(g)32 -b(v)1439 2243 y Fi(0)1495 2279 y Fs(f)21 b Fu(\()1584 -2212 y Fg(F)1653 2279 y Fs(Y)e Fu(\))p 283 2399 V 283 -2602 a Fw(Pro)s(of:)42 b Fu(If)37 b Fs(Y)56 b Fu(=)36 -b Ft(;)g Fu(then)h(the)g(result)f(holds)h(immediately)c(since)k -Ft(?)2868 2566 y Fi(0)2928 2602 y Ft(v)3005 2566 y Fi(0)3065 -2602 y Fs(f)57 b Ft(?)q Fu(.)e(So)36 b(assume)283 2722 -y(that)d Fs(Y)53 b Ft(6)p Fu(=)33 b Ft(;)p Fu(.)45 b(W)-8 -b(e)34 b(shall)e(\014rst)h(pro)m(v)m(e)i(that)e Ft(f)g -Fs(f)54 b(d)43 b Ft(j)33 b Fs(d)43 b Ft(2)33 b Fs(Y)53 -b Ft(g)33 b Fu(is)g(a)g(c)m(hain)g(in)f Fs(D)3283 2686 -y Fi(0)3306 2722 y Fu(.)46 b(So)33 b(let)f Fs(d)3716 -2686 y Fi(0)3716 2747 y Fn(1)283 2843 y Fu(and)37 b Fs(d)537 -2806 y Fi(0)537 2867 y Fn(2)613 2843 y Fu(b)s(e)f(t)m(w)m(o)h(elemen)m -(ts)g(of)f Ft(f)g Fs(f)57 b(d)46 b Ft(j)36 b Fs(d)47 -b Ft(2)36 b Fs(Y)56 b Ft(g)p Fu(.)f(Then)37 b(there)g(are)f(elemen)m -(ts)h Fs(d)3387 2858 y Fn(1)3463 2843 y Fu(and)f Fs(d)3716 -2858 y Fn(2)283 2963 y Fu(in)d Fs(Y)54 b Fu(suc)m(h)35 -b(that)e Fs(d)1017 2927 y Fi(0)1017 2988 y Fn(1)1090 -2963 y Fu(=)h Fs(f)54 b(d)1344 2978 y Fn(1)1417 2963 -y Fu(and)34 b Fs(d)1668 2927 y Fi(0)1668 2988 y Fn(2)1741 -2963 y Fu(=)f Fs(f)55 b(d)1995 2978 y Fn(2)2035 2963 -y Fu(.)46 b(Since)34 b Fs(Y)53 b Fu(is)33 b(a)h(c)m(hain)f(w)m(e)i(ha)m -(v)m(e)g(that)e(either)283 3083 y Fs(d)343 3098 y Fn(1)416 -3083 y Ft(v)g Fs(d)586 3098 y Fn(2)660 3083 y Fu(or)i -Fs(d)842 3098 y Fn(2)917 3083 y Ft(v)g Fs(d)1089 3098 -y Fn(1)1129 3083 y Fu(.)51 b(In)35 b(either)g(case)h(w)m(e)g(get)g -(that)f(the)g(same)g(order)g(holds)g(b)s(et)m(w)m(een)i -Fs(d)3716 3047 y Fi(0)3716 3108 y Fn(1)283 3204 y Fu(and)g -Fs(d)537 3168 y Fi(0)537 3228 y Fn(2)613 3204 y Fu(b)s(ecause)h(of)e -(the)h(monotonicit)m(y)e(of)h Fs(f)21 b Fu(.)56 b(This)36 -b(pro)m(v)m(es)j(that)d Ft(f)g Fs(f)58 b(d)47 b Ft(j)36 -b Fs(d)47 b Ft(2)36 b Fs(Y)57 b Ft(g)36 b Fu(is)g(a)283 -3324 y(c)m(hain.)430 3444 y(T)-8 b(o)46 b(pro)m(v)m(e)g(the)h(second)g -(part)e(of)g(the)h(lemma)e(consider)i(an)f(arbitrary)g(elemen)m(t)h -Fs(d)55 b Fu(of)283 3565 y Fs(Y)20 b Fu(.)48 b(Then)g(it)f(will)e(b)s -(e)j(the)g(case)g(that)g Fs(d)57 b Ft(v)2042 3498 y Fg(F)2111 -3565 y Fs(Y)20 b Fu(.)48 b(The)g(monotonicit)m(y)e(of)h -Fs(f)68 b Fu(giv)m(es)48 b(that)283 3685 y Fs(f)54 b(d)43 -b Ft(v)537 3649 y Fi(0)593 3685 y Fs(f)21 b Fu(\()682 -3619 y Fg(F)751 3685 y Fs(Y)f Fu(\).)76 b(Since)44 b(this)f(holds)g -(for)g(all)e Fs(d)54 b Ft(2)44 b Fs(Y)63 b Fu(w)m(e)45 -b(get)e(that)h Fs(f)21 b Fu(\()3012 3619 y Fg(F)3081 -3685 y Fs(Y)e Fu(\))44 b(is)f(an)g(upp)s(er)283 3806 -y(b)s(ound)33 b(on)g Ft(f)f Fs(f)53 b(d)43 b Ft(j)32 -b Fs(d)43 b Ft(2)p Fs(Y)53 b Ft(g)o Fu(,)33 b(that)f(is)1740 -3739 y Fg(F)1810 3769 y Fi(0)1865 3806 y Ft(f)h Fs(f)53 -b(d)43 b Ft(j)32 b Fs(d)43 b Ft(2)p Fs(Y)52 b Ft(g)33 -b(v)2627 3769 y Fi(0)2683 3806 y Fs(f)21 b Fu(\()2772 -3739 y Fg(F)2841 3806 y Fs(Y)f Fu(\).)683 b Fh(2)430 -4009 y Fu(In)40 b(general)f(w)m(e)i(cannot)f(exp)s(ect)h(that)e(a)g -(monotone)g(function)h(preserv)m(es)i(least)d(upp)s(er)283 -4129 y(b)s(ounds)d(on)f(c)m(hains,)g(that)g(is)1402 4063 -y Fg(F)1471 4093 y Fi(0)1529 4129 y Ft(f)g Fs(f)55 b(d)45 -b Ft(j)35 b Fs(d)44 b Ft(2)q Fs(Y)54 b Ft(g)35 b Fu(=)f -Fs(f)21 b Fu(\()2428 4063 y Fg(F)2497 4129 y Fs(Y)f Fu(\).)35 -b(This)g(is)f(illustrated)f(b)m(y)i(the)283 4250 y(follo)m(wing)30 -b(example:)283 4477 y Fw(Example)37 b(4.31)49 b Fu(F)-8 -b(rom)29 b(Example)i(4.23)f(w)m(e)i(get)f(that)f(\()p -Ft(P)9 b Fu(\()p Fw(N)30 b Ft([)h(f)p Fu(a)p Ft(g)p Fu(\),)g -Ft(\022)p Fu(\))g(is)f(a)h(ccp)s(o.)43 b(No)m(w)283 4597 -y(consider)33 b(the)g(function)f Fs(f)21 b Fu(:)44 b -Ft(P)8 b Fu(\()p Fw(N)32 b Ft([)h(f)p Fu(a)p Ft(g)p Fu(\))f -Ft(!)g(P)9 b Fu(\()p Fw(N)32 b Ft([)h(f)p Fu(a)p Ft(g)p -Fu(\))f(de\014ned)i(b)m(y)527 4887 y Fs(f)54 b(X)48 b -Fu(=)840 4713 y Fg(8)840 4788 y(<)840 4937 y(:)955 4803 -y Fs(X)379 b Fu(if)32 b Fs(X)48 b Fu(is)32 b(\014nite)955 -4970 y Fs(X)49 b Ft([)33 b(f)p Fu(a)p Ft(g)82 b Fu(if)32 -b Fs(X)48 b Fu(is)32 b(in\014nite)283 5171 y(Clearly)-8 -b(,)34 b Fs(f)54 b Fu(is)33 b(a)h(monotone)e(function:)46 -b(if)32 b Fs(X)1960 5186 y Fn(1)2033 5171 y Ft(\022)i -Fs(X)2232 5186 y Fn(2)2306 5171 y Fu(then)g(also)f Fs(f)54 -b(X)2898 5186 y Fn(1)2971 5171 y Ft(\022)35 b Fs(f)54 -b(X)3255 5186 y Fn(2)3295 5171 y Fu(.)46 b(Ho)m(w)m(ev)m(er,)283 -5292 y Fs(f)54 b Fu(do)s(es)33 b(not)f(preserv)m(e)i(the)f(least)f(upp) -s(er)h(b)s(ounds)g(of)f(c)m(hains.)44 b(T)-8 b(o)32 b(see)i(this)e -(consider)g(the)h(set)527 5494 y Fs(Y)53 b Fu(=)32 b -Ft(f)g(f)p Fu(0,1,)p Ft(\001)17 b(\001)g(\001)n Fu(,n)p -Ft(g)33 b(j)f Fu(n)p Ft(\025)q Fu(0)g Ft(g)p eop -%%Page: 103 113 -103 112 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2127 -b(103)p 0 193 3473 4 v 0 515 a Fu(It)25 b(consists)h(of)f(the)g(elemen) -m(ts)h Ft(f)p Fu(0)p Ft(g)p Fu(,)g Ft(f)p Fu(0,1)p Ft(g)p -Fu(,)g Ft(f)p Fu(0,1,2)p Ft(g)p Fu(,)f Ft(\001)17 b(\001)g(\001)24 -b Fu(and)h(it)f(is)h(straigh)m(tforw)m(ard)f(to)h(v)m(erify)0 -636 y(that)40 b(it)f(is)h(a)g(c)m(hain)g(with)g Fw(N)g -Fu(as)g(its)g(least)f(upp)s(er)i(b)s(ound,)i(that)d(is)2597 -569 y Fg(F)2666 636 y Fs(Y)60 b Fu(=)40 b Fw(N)p Fu(.)g(When)h(w)m(e)0 -756 y(apply)32 b Fs(f)54 b Fu(to)32 b(the)h(elemen)m(ts)g(of)f -Fs(Y)52 b Fu(w)m(e)34 b(get)244 897 y Fg(F)346 963 y -Ft(f)e Fs(f)53 b(X)c Ft(j)32 b Fs(X)49 b Ft(2)33 b Fs(Y)52 -b Ft(g)32 b Fu(=)1227 897 y Fg(F)1296 963 y Fs(Y)52 b -Fu(=)33 b Fw(N)0 1171 y Fu(Ho)m(w)m(ev)m(er,)i(w)m(e)f(also)d(ha)m(v)m -(e)244 1378 y Fs(f)53 b Fu(\()365 1312 y Fg(F)434 1378 -y Fs(Y)20 b Fu(\))33 b(=)f Fs(f)53 b Fw(N)33 b Fu(=)f -Fw(N)g Ft([)h(f)p Fu(a)p Ft(g)0 1585 y Fu(sho)m(wing)g(that)f -Fs(f)54 b Fu(do)s(es)33 b(not)f(preserv)m(e)j(the)e(least)f(upp)s(er)h -(b)s(ounds)g(of)g(c)m(hains.)542 b Fh(2)146 1819 y Fu(W)-8 -b(e)31 b(shall)e(b)s(e)i(in)m(terested)h(in)e(functions)g(that)h -(preserv)m(e)h(least)f(upp)s(er)g(b)s(ounds)g(of)f(c)m(hains,)0 -1939 y(that)i(is)g(functions)h Fs(f)53 b Fu(that)33 b(satisfy)244 -2080 y Fg(F)313 2110 y Fi(0)336 2147 y Ft(f)g Fs(f)53 -b(d)43 b Ft(j)32 b Fs(d)43 b Ft(2)p Fs(Y)52 b Ft(g)33 -b Fu(=)f Fs(f)21 b Fu(\()1218 2080 y Fg(F)1287 2147 y -Fs(Y)f Fu(\))0 2354 y(In)m(tuitiv)m(ely)-8 b(,)54 b(this)c(means)g -(that)g(w)m(e)i(obtain)d(the)i(same)f(information)d(indep)s(enden)m -(tly)k(of)0 2474 y(whether)42 b(w)m(e)g(determine)f(the)g(least)g(upp)s -(er)h(b)s(ound)f(b)s(efore)g(or)f(after)h(applying)f(the)h(func-)0 -2595 y(tion)32 b Fs(f)20 b Fu(.)146 2716 y(W)-8 b(e)31 -b(shall)d(sa)m(y)j(that)f(a)f(function)h Fs(f)21 b Fu(:)42 -b Fs(D)c Ft(!)30 b Fs(D)1815 2680 y Fi(0)1868 2716 y -Fu(de\014ned)h(on)f(ccp)s(o's)h(\()p Fs(D)9 b Fu(,)30 -b Ft(v)p Fu(\))g(and)g(\()p Fs(D)3253 2680 y Fi(0)3276 -2716 y Fu(,)h Ft(v)3411 2680 y Fi(0)3435 2716 y Fu(\))0 -2836 y(is)h Fs(c)-5 b(ontinuous)32 b Fu(if)g(it)f(is)h(monotone)g(and) -244 2977 y Fg(F)313 3007 y Fi(0)336 3043 y Ft(f)h Fs(f)53 -b(d)43 b Ft(j)32 b Fs(d)43 b Ft(2)p Fs(Y)52 b Ft(g)33 -b Fu(=)f Fs(f)21 b Fu(\()1218 2977 y Fg(F)1287 3043 y -Fs(Y)f Fu(\))0 3251 y(holds)40 b(for)g(all)f Fs(non-empty)h -Fu(c)m(hains)h Fs(Y)19 b Fu(.)41 b(If)1622 3184 y Fg(F)1691 -3251 y Ft(f)f Fs(f)62 b(d)50 b Ft(j)41 b Fs(d)50 b Ft(2)41 -b Fs(Y)61 b Ft(g)40 b Fu(=)g Fs(f)21 b Fu(\()2677 3184 -y Fg(F)2746 3251 y Fs(Y)f Fu(\))41 b(holds)f(for)g(the)0 -3371 y(empt)m(y)33 b(c)m(hain,)g(that)f(is)g Ft(?)h Fu(=)f -Fs(f)54 b Ft(?)p Fu(,)33 b(then)g(w)m(e)h(shall)d(sa)m(y)i(that)g -Fs(f)53 b Fu(is)32 b Fs(strict)p Fu(.)0 3606 y Fw(Example)37 -b(4.32)49 b Fu(The)37 b(function)g Fs(f)1353 3621 y Fn(1)1429 -3606 y Fu(of)f(Example)g(4.26)h(is)f(also)g(con)m(tin)m(uous.)57 -b(T)-8 b(o)37 b(see)h(this)0 3726 y(consider)31 b(a)g(non-empt)m(y)g(c) -m(hain)g Fs(Y)50 b Fu(of)31 b Ft(P)8 b Fu(\()p Ft(f)p -Fu(a,b,c)p Ft(g)p Fu(\).)43 b(The)32 b(least)f(upp)s(er)g(b)s(ound)g -(of)g Fs(Y)51 b Fu(will)28 b(b)s(e)0 3846 y(the)33 b(largest)f(elemen)m -(t,)g(sa)m(y)i Fs(X)1127 3861 y Fn(0)1167 3846 y Fu(,)e(of)g -Fs(Y)52 b Fu(\(see)34 b(Example)e(4.17\).)43 b(Therefore)34 -b(w)m(e)f(ha)m(v)m(e)294 4051 y Fs(f)345 4066 y Fn(1)417 -4051 y Fu(\()455 3984 y Fg(F)524 4051 y Fs(Y)19 b Fu(\))100 -b(=)h Fs(f)981 4066 y Fn(1)1053 4051 y Fs(X)1141 4066 -y Fn(0)1879 4051 y Fu(b)s(ecause)34 b Fs(X)2328 4066 -y Fn(0)2400 4051 y Fu(=)2508 3984 y Fg(F)2577 4051 y -Fs(Y)753 4218 y Ft(\022)930 4152 y Fg(F)999 4218 y Ft(f)f -Fs(f)1132 4233 y Fn(1)1204 4218 y Fs(X)49 b Ft(j)32 b -Fs(X)49 b Ft(2)33 b Fs(Y)52 b Ft(g)100 b Fu(b)s(ecause)34 -b Fs(X)2328 4233 y Fn(0)2400 4218 y Ft(2)f Fs(Y)0 4424 -y Fu(Using)41 b(that)h Fs(f)555 4439 y Fn(1)636 4424 -y Fu(is)f(monotone)g(w)m(e)i(get)f(from)e(Lemma)h(4.30)g(that)2559 -4358 y Fg(F)2628 4424 y Ft(f)h Fs(f)2771 4439 y Fn(1)2852 -4424 y Fs(X)58 b Ft(j)41 b Fs(X)58 b Ft(2)42 b Fs(Y)62 -b Ft(g)0 4545 y(\022)36 b Fs(f)163 4560 y Fn(1)238 4545 -y Fu(\()276 4478 y Fg(F)345 4545 y Fs(Y)20 b Fu(\).)35 -b(It)g(follo)m(ws)f(that)h Fs(f)1233 4560 y Fn(1)1307 -4545 y Fu(is)g(con)m(tin)m(uous.)52 b(Also,)35 b Fs(f)2243 -4560 y Fn(1)2317 4545 y Fu(is)g(a)g(strict)f(function)h(b)s(ecause)0 -4665 y Fs(f)51 4680 y Fn(1)123 4665 y Ft(;)d Fu(=)h Ft(;)o -Fu(.)146 4786 y(The)j(function)f Fs(f)56 b Fu(of)35 b(Example)f(4.31)h -(is)g Fs(not)44 b Fu(a)35 b(con)m(tin)m(uous)h(function)e(b)s(ecause)j -(there)f(is)0 4907 y(a)c(c)m(hain)h(for)f(whic)m(h)h(it)e(do)s(es)i -(not)g(preserv)m(e)i(the)e(least)f(upp)s(er)h(b)s(ound.)790 -b Fh(2)0 5140 y Fw(Exercise)36 b(4.33)49 b Fu(Sho)m(w)34 -b(that)e(the)h(functional)e Fs(F)1863 5104 y Fi(0)1919 -5140 y Fu(of)h(Example)g(4.1)g(is)g(con)m(tin)m(uous.)226 -b Fh(2)0 5374 y Fw(Exercise)36 b(4.34)49 b Fu(Assume)33 -b(that)e(\()p Fs(D)9 b Fu(,)31 b Ft(v)q Fu(\))g(and)h(\()p -Fs(D)1898 5338 y Fi(0)1921 5374 y Fu(,)g Ft(v)2057 5338 -y Fi(0)2081 5374 y Fu(\))f(are)h(ccp)s(o's)g(and)g(that)f -Fs(f)21 b Fu(:)43 b Fs(D)d Ft(!)31 b Fs(D)3449 5338 y -Fi(0)0 5494 y Fu(satis\014es)p eop -%%Page: 104 114 -104 113 bop 251 130 a Fw(104)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 449 a Fg(F)597 -479 y Fi(0)620 515 y Ft(f)c Fs(f)54 b(d)42 b Ft(j)32 -b Fs(d)43 b Ft(2)q Fs(Y)52 b Ft(g)32 b Fu(=)g Fs(f)21 -b Fu(\()1501 449 y Fg(F)1570 515 y Fs(Y)f Fu(\))283 721 -y(for)32 b(all)f Fs(non-empty)h Fu(c)m(hains)h Fs(Y)52 -b Fu(of)32 b Fs(D)9 b Fu(.)33 b(Sho)m(w)g(that)f Fs(f)54 -b Fu(is)32 b(monotone.)863 b Fh(2)430 953 y Fu(W)-8 b(e)33 -b(can)h(extend)h(the)e(result)g(of)g(Lemma)f(4.29)h(to)g(sho)m(w)h -(that)f(the)h(comp)s(osition)c(of)j(t)m(w)m(o)283 1074 -y(con)m(tin)m(uous)h(functions)e(will)f(also)g(b)s(e)i(con)m(tin)m -(uous:)p 283 1195 3473 5 v 283 1372 a Fw(Lemma)38 b(4.35)49 -b Fu(Let)38 b(\()p Fs(D)9 b Fu(,)38 b Ft(v)p Fu(\),)h(\()p -Fs(D)1597 1336 y Fi(0)1621 1372 y Fu(,)g Ft(v)1764 1336 -y Fi(0)1788 1372 y Fu(\))e(and)i(\()p Fs(D)2180 1336 -y Fi(00)2222 1372 y Fu(,)g Ft(v)2366 1336 y Fi(00)2408 -1372 y Fu(\))f(b)s(e)g(ccp)s(o's)h(and)f(let)f Fs(f)21 -b Fu(:)54 b Fs(D)47 b Ft(!)38 b Fs(D)3733 1336 y Fi(0)283 -1493 y Fu(and)d Fs(f)526 1456 y Fi(0)550 1493 y Fu(:)43 -b Fs(D)703 1456 y Fi(0)759 1493 y Ft(!)32 b Fs(D)974 -1456 y Fi(00)1051 1493 y Fu(b)s(e)j(con)m(tin)m(uous)g(functions.)50 -b(Then)36 b Fs(f)2449 1456 y Fi(0)2505 1493 y Ft(\016)c -Fs(f)21 b Fu(:)44 b Fs(D)d Ft(!)32 b Fs(D)3039 1456 y -Fi(00)3116 1493 y Fu(is)j(a)f(con)m(tin)m(uous)283 1613 -y(function.)p 283 1733 V 283 1939 a Fw(Pro)s(of:)48 b -Fu(F)-8 b(rom)40 b(Lemma)h(4.29)g(w)m(e)h(get)g(that)g -Fs(f)2067 1903 y Fi(0)2132 1939 y Ft(\016)g Fs(f)62 b -Fu(is)42 b(monotone.)70 b(T)-8 b(o)41 b(pro)m(v)m(e)i(that)f(it)e(is) -283 2060 y(con)m(tin)m(uous)34 b(let)e Fs(Y)52 b Fu(b)s(e)33 -b(a)f(non-empt)m(y)h(c)m(hain)f(in)g Fs(D)9 b Fu(.)33 -b(The)g(con)m(tin)m(uit)m(y)g(of)f Fs(f)53 b Fu(giv)m(es)527 -2199 y Fg(F)597 2230 y Fi(0)620 2266 y Ft(f)32 b Fs(f)54 -b(d)42 b Ft(j)32 b Fs(d)43 b Ft(2)33 b Fs(Y)52 b Ft(g)33 -b Fu(=)f Fs(f)53 b Fu(\()1566 2199 y Fg(F)1636 2266 y -Fs(Y)19 b Fu(\))283 2472 y(Since)36 b Ft(f)e Fs(f)56 -b(d)46 b Ft(j)34 b Fs(d)45 b Ft(2)36 b Fs(Y)54 b Ft(g)35 -b Fu(is)g(a)g(\(non-empt)m(y\))g(c)m(hain)g(in)f Fs(D)2487 -2436 y Fi(0)2545 2472 y Fu(w)m(e)i(can)g(use)g(the)f(con)m(tin)m(uit)m -(y)g(of)283 2592 y Fs(f)334 2556 y Fi(0)390 2592 y Fu(and)e(get)527 -2732 y Fg(F)597 2762 y Fi(00)639 2798 y Ft(f)f Fs(f)772 -2762 y Fi(0)828 2798 y Fs(d)888 2762 y Fi(0)944 2798 -y Ft(j)g Fs(d)1064 2762 y Fi(0)1120 2798 y Ft(2)h(f)f -Fs(f)54 b(d)42 b Ft(j)33 b Fs(d)42 b Ft(2)33 b Fs(Y)52 -b Ft(g)33 b(g)f Fu(=)h Fs(f)2177 2762 y Fi(0)2233 2798 -y Fu(\()2271 2732 y Fg(F)2340 2762 y Fi(0)2364 2798 y -Ft(f)f Fs(f)53 b(d)43 b Ft(j)32 b Fs(d)43 b Ft(2)33 b -Fs(Y)52 b Ft(g)p Fu(\))283 3004 y(whic)m(h)34 b(is)e(equiv)-5 -b(alen)m(t)32 b(to)527 3144 y Fg(F)597 3174 y Fi(00)639 -3210 y Ft(f)g Fs(f)772 3174 y Fi(0)828 3210 y Fu(\()p -Fs(f)53 b(d)10 b Fu(\))33 b Ft(j)f Fs(d)43 b Ft(2)33 -b Fs(Y)52 b Ft(g)32 b Fu(=)h Fs(f)1698 3174 y Fi(0)1753 -3210 y Fu(\()p Fs(f)54 b Fu(\()1913 3144 y Fg(F)1982 -3210 y Fs(Y)20 b Fu(\)\))283 3416 y(This)33 b(pro)m(v)m(es)i(the)e -(result.)2439 b Fh(2)283 3732 y Fw(Exercise)37 b(4.36)49 -b Fu(Pro)m(v)m(e)34 b(that)e(if)g Fs(f)53 b Fu(and)33 -b Fs(f)1875 3696 y Fi(0)1930 3732 y Fu(are)g(strict)f(functions)h(then) -g(so)g(is)f Fs(f)3260 3696 y Fi(0)3316 3732 y Ft(\016)g -Fs(f)21 b Fu(.)205 b Fh(2)430 3964 y Fu(W)-8 b(e)33 b(can)g(no)m(w)g -(de\014ne)h(the)f(required)g(\014xed)g(p)s(oin)m(t)f(op)s(erator)g -(FIX:)p 283 4085 V 283 4262 a Fw(Theorem)38 b(4.37)49 -b Fu(Let)29 b Fs(f)21 b Fu(:)42 b Fs(D)d Ft(!)29 b Fs(D)38 -b Fu(b)s(e)30 b(a)f(con)m(tin)m(uous)h(function)g(on)f(the)h(ccp)s(o)g -(\()p Fs(D)9 b Fu(,)29 b Ft(v)q Fu(\))g(with)283 4382 -y(least)k(elemen)m(t)f Ft(?)q Fu(.)43 b(Then)527 4588 -y(FIX)33 b Fs(f)53 b Fu(=)924 4522 y Fg(F)993 4588 y -Ft(f)32 b Fs(f)1126 4552 y Fn(n)1202 4588 y Ft(?)h(j)f -Fu(n)p Ft(\025)q Fu(0)g Ft(g)283 4794 y Fu(de\014nes)j(an)d(elemen)m(t) -h(of)f Fs(D)41 b Fu(and)33 b(this)f(elemen)m(t)h(is)f(the)h(least)f -(\014xed)i(p)s(oin)m(t)d(of)h Fs(f)21 b Fu(.)p 283 4915 -V 283 5121 a(Here)34 b(w)m(e)f(ha)m(v)m(e)h(used)g(that)527 -5327 y Fs(f)578 5291 y Fn(0)650 5327 y Fu(=)f(id,)f(and)527 -5494 y Fs(f)578 5458 y Fn(n+1)744 5494 y Fu(=)h Fs(f)53 -b Ft(\016)32 b Fs(f)1069 5458 y Fn(n)1145 5494 y Fu(for)g(n)p -Ft(\025)q Fu(0)p eop -%%Page: 105 115 -105 114 bop 0 130 a Fw(4.2)112 b(Fixed)38 b(p)s(oin)m(t)e(theory)2127 -b(105)p 0 193 3473 4 v 0 515 a(Pro)s(of:)33 b Fu(W)-8 -b(e)28 b(\014rst)h(sho)m(w)h(the)f Fs(wel)5 b(l-de\014ne)-5 -b(dness)34 b Fu(of)28 b(FIX)g Fs(f)21 b Fu(.)42 b(Note)29 -b(that)f Fs(f)2724 479 y Fn(0)2792 515 y Ft(?)h Fu(=)f -Ft(?)h Fu(and)g(that)0 636 y Ft(?)k(v)g Fs(d)43 b Fu(for)32 -b(all)e Fs(d)43 b Ft(2)33 b Fs(D)9 b Fu(.)32 b(By)h(induction)f(on)h(n) -f(one)h(ma)m(y)f(sho)m(w)i(that)244 801 y Fs(f)295 765 -y Fn(n)371 801 y Ft(?)f(v)g Fs(f)642 765 y Fn(n)717 801 -y Fs(d)0 966 y Fu(for)i(all)f Fs(d)46 b Ft(2)36 b Fs(D)45 -b Fu(since)36 b Fs(f)56 b Fu(is)36 b(monotone.)52 b(It)36 -b(follo)m(ws)e(that)i Fs(f)2233 930 y Fn(n)2312 966 y -Ft(?)g(v)g Fs(f)2589 930 y Fn(m)2688 966 y Ft(?)g Fu(whenev)m(er)i(n)p -Ft(\024)q Fu(m.)0 1086 y(Hence)33 b Ft(f)f Fs(f)422 1050 -y Fn(n)497 1086 y Ft(?)h(j)e Fu(n)p Ft(\025)q Fu(0)h -Ft(g)g Fu(is)f(a)h(\(non-empt)m(y\))g(c)m(hain)g(in)f -Fs(D)41 b Fu(and)32 b(FIX)g Fs(f)53 b Fu(exists)33 b(b)s(ecause)g -Fs(D)41 b Fu(is)0 1207 y(a)32 b(ccp)s(o.)146 1327 y(W)-8 -b(e)44 b(next)f(sho)m(w)h(that)f(FIX)g Fs(f)63 b Fu(is)43 -b(a)f Fs(\014xe)-5 b(d)44 b(p)-5 b(oint)p Fu(,)45 b(that)d(is)h -Fs(f)63 b Fu(\(FIX)43 b Fs(f)21 b Fu(\))43 b(=)f(FIX)33 -b Fs(f)21 b Fu(.)74 b(W)-8 b(e)0 1448 y(calculate:)294 -1585 y Fs(f)53 b Fu(\(FIX)33 b Fs(f)20 b Fu(\))100 b(=)g -Fs(f)53 b Fu(\()1105 1518 y Fg(F)1174 1585 y Ft(f)32 -b Fs(f)1307 1549 y Fn(n)1383 1585 y Ft(?)h(j)f Fu(n)p -Ft(\025)q Fu(0)g Ft(g)p Fu(\))325 b(\(de\014nition)31 -b(of)h(FIX)h Fs(f)21 b Fu(\))808 1752 y(=)984 1686 y -Fg(F)1053 1752 y Ft(f)32 b Fs(f)21 b Fu(\()p Fs(f)1275 -1716 y Fn(n)1351 1752 y Ft(?)p Fu(\))33 b Ft(j)f Fu(n)p -Ft(\025)q Fu(0)g Ft(g)357 b Fu(\(con)m(tin)m(uit)m(y)32 -b(of)h Fs(f)21 b Fu(\))808 1920 y(=)984 1854 y Fg(F)1053 -1920 y Ft(f)32 b Fs(f)1186 1884 y Fn(n)1262 1920 y Ft(?)h(j)f -Fu(n)p Ft(\025)q Fu(1)g Ft(g)808 2088 y Fu(=)984 2021 -y Fg(F)1053 2088 y Fu(\()p Ft(f)g Fs(f)1224 2052 y Fn(n)1300 -2088 y Ft(?)h(j)f Fu(n)p Ft(\025)q Fu(1)g Ft(g)g([)h(f?)q(g)p -Fu(\))99 b(\()2217 2021 y Fg(F)2286 2088 y Fu(\()p Fs(Y)52 -b Ft([)33 b(f?g)p Fu(\))g(=)2903 2021 y Fg(F)2972 2088 -y Fs(Y)2179 2255 y Fu(for)f(all)e(c)m(hains)j Fs(Y)20 -b Fu(\))808 2423 y(=)984 2357 y Fg(F)1053 2423 y Ft(f)32 -b Fs(f)1186 2387 y Fn(n)1262 2423 y Ft(?)h(j)f Fu(n)p -Ft(\025)q Fu(0)g Ft(g)484 b Fu(\()p Fs(f)2268 2387 y -Fn(0)2340 2423 y Ft(?)33 b Fu(=)f Ft(?)q Fu(\))808 2591 -y(=)100 b(FIX)32 b Fs(f)961 b Fu(\(de\014nition)31 b(of)h(FIX)h -Fs(f)21 b Fu(\))146 2749 y(T)-8 b(o)39 b(see)h(that)e(FIX)h -Fs(f)60 b Fu(is)38 b(the)h Fs(le)-5 b(ast)48 b Fu(\014xed)40 -b(p)s(oin)m(t)e(assume)h(that)g Fs(d)49 b Fu(is)38 b(some)g(other)h -(\014xed)0 2869 y(p)s(oin)m(t.)i(Clearly)28 b Ft(?)h(v)g -Fs(d)39 b Fu(so)29 b(the)g(monotonicit)m(y)e(of)h Fs(f)50 -b Fu(giv)m(es)29 b Fs(f)2267 2833 y Fn(n)2339 2869 y -Ft(?)g(v)g Fs(f)2602 2833 y Fn(n)2678 2869 y Fs(d)39 -b Fu(for)28 b(n)p Ft(\025)q Fu(0)g(and)h(as)g Fs(d)0 -2990 y Fu(w)m(as)34 b(a)f(\014xed)i(p)s(oin)m(t)d(w)m(e)j(obtain)d -Fs(f)1262 2953 y Fn(n)1339 2990 y Ft(?)h(v)h Fs(d)44 -b Fu(for)33 b(all)e(n)p Ft(\025)q Fu(0.)45 b(Hence)35 -b Fs(d)43 b Fu(is)33 b(an)g(upp)s(er)h(b)s(ound)g(of)0 -3110 y(the)g(c)m(hain)g Ft(f)f Fs(f)561 3074 y Fn(n)637 -3110 y Ft(?)g(j)g Fu(n)p Ft(\025)p Fu(0)f Ft(g)i Fu(and)g(using)g(that) -g(FIX)e Fs(f)55 b Fu(is)33 b(the)i(least)e(upp)s(er)i(b)s(ound)f(w)m(e) -h(ha)m(v)m(e)0 3230 y(FIX)d Fs(f)54 b Ft(v)33 b Fs(d)10 -b Fu(.)2913 b Fh(2)0 3491 y Fw(Example)37 b(4.38)49 b -Fu(Consider)33 b(the)g(function)f Fs(F)1745 3455 y Fi(0)1800 -3491 y Fu(of)g(Example)h(4.1:)244 3737 y(\()p Fs(F)359 -3701 y Fi(0)415 3737 y Fs(g)9 b Fu(\))32 b Fs(s)40 b -Fu(=)728 3563 y Fg(8)728 3638 y(<)728 3787 y(:)843 3653 -y Fs(g)h(s)91 b Fu(if)32 b Fs(s)40 b Fr(x)33 b Ft(6)p -Fu(=)f Fw(0)843 3820 y Fs(s)177 b Fu(if)32 b Fs(s)40 -b Fr(x)33 b Fu(=)f Fw(0)0 3984 y Fu(W)-8 b(e)32 b(shall)e(determine)i -(its)f(least)g(\014xed)i(p)s(oin)m(t)d(using)i(the)g(approac)m(h)g(of)f -(Theorem)h(4.37.)42 b(The)0 4105 y(least)32 b(elemen)m(t)h -Ft(?)g Fu(of)g Fw(State)f Fo(,)-17 b Ft(!)33 b Fw(State)g -Fu(is)g(giv)m(en)f(b)m(y)i(Lemma)e(4.13)g(and)h(has)g -Ft(?)g Fs(s)41 b Fu(=)33 b(undef)p 3237 4118 236 4 v -0 4225 a(for)f(all)f Fs(s)8 b Fu(.)43 b(W)-8 b(e)33 b(then)g(determine) -f(the)h(elemen)m(ts)g(of)f(the)h(set)h Ft(f)e Fs(F)2406 -4189 y Fi(0)p Fn(n)2501 4225 y Ft(?)h(j)f Fu(n)p Ft(\025)q -Fu(0)g Ft(g)h Fu(as)f(follo)m(ws:)294 4387 y(\()p Fs(F)409 -4351 y Fi(0)p Fn(0)500 4387 y Ft(?)p Fu(\))h Fs(s)107 -b Fu(=)100 b(\(id)32 b Ft(?)p Fu(\))h Fs(s)663 b Fu(\(de\014nition)32 -b(of)g Fs(F)2634 4351 y Fi(0)p Fn(0)2725 4387 y Ft(?)p -Fu(\))795 4578 y(=)100 b(undef)p 971 4591 V 768 w(\(de\014nition)32 -b(of)g(id)g(and)g Ft(?)q Fu(\))294 4770 y(\()p Fs(F)409 -4733 y Fi(0)p Fn(1)500 4770 y Ft(?)p Fu(\))h Fs(s)107 -b Fu(=)100 b(\()p Fs(F)1086 4733 y Fi(0)1142 4770 y Ft(?)p -Fu(\))33 b Fs(s)644 b Fu(\(de\014nition)32 b(of)g Fs(F)2634 -4733 y Fi(0)p Fn(1)2725 4770 y Ft(?)p Fu(\))795 5051 -y(=)971 4877 y Fg(8)971 4951 y(<)971 5101 y(:)1086 4966 -y Ft(?)h Fs(s)91 b Fu(if)32 b Fs(s)40 b Fr(x)33 b Ft(6)p -Fu(=)f Fw(0)1086 5134 y Fs(s)201 b Fu(if)32 b Fs(s)40 -b Fr(x)33 b Fu(=)f Fw(0)1974 5051 y Fu(\(de\014nition)g(of)g -Fs(F)2634 5015 y Fi(0)2690 5051 y Ft(?)p Fu(\))795 5403 -y(=)971 5229 y Fg(8)971 5304 y(<)971 5453 y(:)1086 5319 -y Fu(undef)p 1086 5332 V 84 w(if)f Fs(s)41 b Fr(x)33 -b Ft(6)p Fu(=)f Fw(0)1086 5486 y Fs(s)279 b Fu(if)31 -b Fs(s)41 b Fr(x)33 b Fu(=)f Fw(0)1974 5403 y Fu(\(de\014nition)g(of)g -Ft(?)p Fu(\))p eop -%%Page: 106 116 -106 115 bop 251 130 a Fw(106)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 577 500 a Fu(\()p Fs(F)692 -464 y Fi(0)p Fn(2)783 500 y Ft(?)q Fu(\))c Fs(s)108 b -Fu(=)99 b Fs(F)1331 464 y Fi(0)1387 500 y Fu(\()p Fs(F)1502 -464 y Fi(0)p Fn(1)1593 500 y Ft(?)q Fu(\))32 b Fs(s)643 -b Fu(\(de\014nition)31 b(of)i Fs(F)3084 464 y Fi(0)p -Fn(2)3175 500 y Ft(?)p Fu(\))1079 781 y(=)1254 607 y -Fg(8)1254 682 y(<)1254 831 y(:)1370 697 y Fu(\()p Fs(F)1485 -661 y Fi(0)p Fn(1)1576 697 y Ft(?)p Fu(\))g Fs(s)91 b -Fu(if)31 b Fs(s)41 b Fr(x)32 b Ft(6)p Fu(=)h Fw(0)1370 -864 y Fs(s)445 b Fu(if)31 b Fs(s)41 b Fr(x)32 b Fu(=)h -Fw(0)2424 781 y Fu(\(de\014nition)e(of)i Fs(F)3084 745 -y Fi(0)3107 781 y Fu(\))1079 1134 y(=)1254 959 y Fg(8)1254 -1034 y(<)1254 1183 y(:)1370 1049 y Fu(undef)p 1370 1062 -236 4 v 83 w(if)f Fs(s)40 b Fr(x)33 b Ft(6)p Fu(=)g Fw(0)1370 -1217 y Fs(s)278 b Fu(if)32 b Fs(s)40 b Fr(x)33 b Fu(=)g -Fw(0)2424 1134 y Fu(\(de\014nition)e(of)i Fs(F)3084 1097 -y Fi(0)p Fn(1)3175 1134 y Ft(?)p Fu(\))765 1318 y(.)765 -1351 y(.)765 1384 y(.)283 1580 y(In)g(general)f(w)m(e)i(ha)m(v)m(e)g -Fs(F)1187 1544 y Fi(0)p Fn(n)1282 1580 y Ft(?)f Fu(=)f -Fs(F)1577 1544 y Fi(0)p Fn(n+1)1762 1580 y Ft(?)h Fu(for)f(n)h -Fo(>)g Fu(0.)43 b(Therefore)527 1707 y Fg(F)597 1774 -y Ft(f)32 b Fs(F)756 1737 y Fi(0)p Fn(n)851 1774 y Ft(?)h(j)f -Fu(n)p Ft(\025)q Fu(0)g Ft(g)g Fu(=)1425 1707 y Fg(F)1526 -1774 y Ft(f)p Fs(F)1653 1737 y Fi(0)p Fn(0)1744 1774 -y Ft(?)q Fu(,)g Fs(F)1958 1737 y Fi(0)p Fn(1)2049 1774 -y Ft(?)q(g)g Fu(=)h Fs(F)2395 1737 y Fi(0)p Fn(1)2486 -1774 y Ft(?)283 1967 y Fu(b)s(ecause)h Fs(F)721 1931 -y Fi(0)p Fn(0)812 1967 y Ft(?)f Fu(=)g Ft(?)p Fu(.)44 -b(Th)m(us)34 b(the)f(least)f(\014xed)i(p)s(oin)m(t)e(of)g -Fs(F)2501 1931 y Fi(0)2556 1967 y Fu(will)f(b)s(e)h(the)h(function)552 -2216 y Fs(g)606 2231 y Fn(1)678 2216 y Fs(s)40 b Fu(=)867 -2042 y Fg(8)867 2116 y(<)867 2266 y(:)982 2131 y Fu(undef)p -982 2144 V 84 w(if)31 b Fs(s)41 b Fr(x)33 b Ft(6)p Fu(=)f -Fw(0)982 2299 y Fs(s)279 b Fu(if)31 b Fs(s)41 b Fr(x)33 -b Fu(=)f Fw(0)3681 2216 y Fh(2)283 2512 y Fw(Exercise)37 -b(4.39)49 b Fu(Redo)39 b(Exercise)h(4.15)e(using)h(the)g(approac)m(h)g -(of)g(Theorem)g(4.37,)h(that)e(is)283 2633 y(deduce)d(the)e(general)f -(form)g(of)g(the)h(iterands,)g Fs(F)2102 2597 y Fn(n)2178 -2633 y Ft(?)p Fu(,)g(for)g(the)g(functional,)e Fs(F)13 -b Fu(,)33 b(of)f(Exercises)283 2753 y(4.2)h(and)f(4.3.)2899 -b Fh(2)283 2968 y Fw(Exercise)37 b(4.40)49 b(\(Essen)m(tial\))36 -b Fu(Let)j Fs(f)20 b Fu(:)56 b Fs(D)47 b Ft(!)38 b Fs(D)47 -b Fu(b)s(e)39 b(a)f(con)m(tin)m(uous)h(function)f(on)g(a)h(ccp)s(o)283 -3088 y(\()p Fs(D)9 b Fu(,)33 b Ft(v)p Fu(\))g(and)g(let)f -Fs(d)10 b Ft(2)p Fs(D)42 b Fu(satisfy)32 b Fs(f)54 b(d)42 -b Ft(v)33 b Fs(d)10 b Fu(.)44 b(Sho)m(w)33 b(that)g(FIX)f -Fs(f)54 b Ft(v)33 b Fs(d)10 b Fu(.)821 b Fh(2)430 3303 -y Fu(The)38 b(table)f(b)s(elo)m(w)g(summarizes)g(the)h(dev)m(elopmen)m -(t)g(w)m(e)h(ha)m(v)m(e)g(p)s(erformed)e(in)g(order)g(to)283 -3424 y(demonstrate)c(the)g(existence)h(of)e(least)h(\014xed)g(p)s(oin)m -(ts:)p 283 3573 3470 4 v 283 3589 V 281 3797 4 208 v -298 3797 V 1541 3718 a Fw(Fixed)g(P)m(oin)m(t)d(Theory)p -3735 3797 V 3752 3797 V 283 3800 3470 4 v 281 4049 4 -249 v 298 4049 V 350 3966 a Fu(1:)143 b(W)-8 b(e)33 b(restrict)f -(ourselv)m(es)i(to)e Fs(chain)i(c)-5 b(omplete)34 b(p)-5 -b(artial)5 b(ly)35 b(or)-5 b(der)g(e)g(d)34 b(sets)41 -b Fu(|)32 b(ccp)s(o's.)p 3735 4049 V 3752 4049 V 281 -4217 4 168 v 298 4217 V 350 4133 a(2:)143 b(W)-8 b(e)33 -b(restrict)f(ourselv)m(es)i(to)e Fs(c)-5 b(ontinuous)35 -b(functions)40 b Fu(on)33 b(ccp)s(o's.)p 3735 4217 V -3752 4217 V 281 4505 4 289 v 298 4505 V 350 4301 a(3:)143 -b(W)-8 b(e)26 b(sho)m(w)h(that)f(con)m(tin)m(uous)g(functions)g(on)g -(ccp)s(o's)h(alw)m(a)m(ys)f(ha)m(v)m(e)i Fs(le)-5 b(ast)28 -b(\014xe)-5 b(d)28 b(p)-5 b(oints)569 4421 y Fu(\(Theorem)33 -b(4.37\).)p 3735 4505 V 3752 4505 V 283 4508 3470 4 v -283 4525 V 283 4702 a Fw(Exercise)k(4.41)49 b Fu(*)32 -b(Let)h(\()p Fs(D)9 b Fu(,)32 b Ft(v)q Fu(\))g(b)s(e)h(a)f(ccp)s(o)h -(and)g(de\014ne)h(\()p Fs(D)9 b Ft(!)o Fs(D)g Fu(,)p -Ft(v)2878 4666 y Fi(0)2901 4702 y Fu(\))33 b(b)m(y)g(setting)527 -4895 y Fs(f)578 4910 y Fn(1)650 4895 y Ft(v)728 4859 -y Fi(0)784 4895 y Fs(f)834 4910 y Fn(2)906 4895 y Fu(if)f(and)g(only)h -(if)e Fs(f)1540 4910 y Fn(1)1612 4895 y Fs(d)43 b Ft(v)33 -b Fs(f)1865 4910 y Fn(2)1937 4895 y Fs(d)43 b Fu(for)32 -b(all)f Fs(d)42 b Ft(2)33 b Fs(D)283 5089 y Fu(Sho)m(w)h(that)e(\()p -Fs(D)9 b Ft(!)p Fs(D)g Fu(,)p Ft(v)1160 5052 y Fi(0)1184 -5089 y Fu(\))32 b(is)g(a)h(ccp)s(o)f(and)h(that)f(FIX)h(is)f(\\con)m -(tin)m(uous")h(in)f(the)h(sense)h(that)527 5282 y(FIX)f(\()770 -5215 y Fg(F)839 5246 y Fi(0)895 5282 y Ft(F)9 b Fu(\))33 -b(=)1155 5215 y Fg(F)1224 5282 y Ft(f)g Fu(FIX)f Fs(f)54 -b Ft(j)32 b Fs(f)53 b Ft(2)33 b(F)42 b(g)283 5475 y Fu(holds)33 -b(for)f(all)e(non-empt)m(y)j(c)m(hains)g Ft(F)42 b(\022)33 -b Fs(D)9 b Ft(!)p Fs(D)41 b Fu(of)32 b(con)m(tin)m(uous)h(functions.) -538 b Fh(2)p eop -%%Page: 107 117 -107 116 bop 0 130 a Fw(4.3)112 b(Direct)36 b(st)m(yle)g(seman)m(tics:) -50 b(existence)1444 b(107)p 0 193 3473 4 v 0 515 a(Exercise)36 -b(4.42)49 b Fu(**)34 b(\(F)-8 b(or)34 b(mathematicians\))e(Giv)m(en)j -(a)f(ccp)s(o)h(\()p Fs(D)9 b Fu(,)35 b Ft(v)p Fu(\))g(w)m(e)h(de\014ne) -g(an)e Fs(op)-5 b(en)0 636 y(set)42 b Fu(of)32 b Fs(D)42 -b Fu(to)32 b(b)s(e)h(a)f(subset)i Fs(Y)52 b Fu(of)32 -b Fs(D)42 b Fu(satisfying)70 849 y(\(1\))49 b(if)31 b -Fs(d)393 864 y Fn(1)433 849 y Ft(2)p Fs(Y)52 b Fu(and)33 -b Fs(d)873 864 y Fn(1)945 849 y Ft(v)g Fs(d)1115 864 -y Fn(2)1187 849 y Fu(then)h Fs(d)1470 864 y Fn(2)1509 -849 y Ft(2)q Fs(Y)19 b Fu(,)33 b(and)70 1063 y(\(2\))49 -b(if)30 b Fs(Y)424 1027 y Fi(0)479 1063 y Fu(is)h(a)h(non-empt)m(y)g(c) -m(hain)f(satisfying)1834 997 y Fg(F)1903 1063 y Fs(Y)1995 -1027 y Fi(0)2050 1063 y Ft(2)h Fs(Y)52 b Fu(then)32 b(there)g(exists)h -(an)f(elemen)m(t)244 1184 y Fs(d)43 b Fu(of)32 b Fs(Y)539 -1147 y Fi(0)595 1184 y Fu(whic)m(h)h(also)f(is)g(an)g(elemen)m(t)h(of)f -Fs(Y)20 b Fu(.)0 1397 y(The)36 b(set)f(of)g(op)s(en)f(sets)i(of)f -Fs(D)43 b Fu(is)35 b(denoted)h Ft(O)1686 1412 y Fc(D)1750 -1397 y Fu(.)50 b(Sho)m(w)35 b(that)g(this)f(is)h(indeed)g(a)f -Fs(top)-5 b(olo)g(gy)43 b Fu(on)0 1518 y Fs(D)9 b Fu(,)33 -b(that)f(is)g(sho)m(w)i(that)145 1731 y Ft(\017)49 b(;)32 -b Fu(and)h Fs(D)41 b Fu(are)33 b(mem)m(b)s(ers)f(of)g -Ft(O)1400 1746 y Fc(D)1464 1731 y Fu(,)g(and)145 1945 -y Ft(\017)49 b Fu(the)33 b(in)m(tersection)f(of)g(t)m(w)m(o)i(op)s(en)e -(sets)i(is)e(an)h(op)s(en)g(set,)g(and)145 2159 y Ft(\017)49 -b Fu(the)33 b(union)f(of)g(an)m(y)h(collection)e(of)h(op)s(en)h(sets)g -(is)f(an)h(op)s(en)g(set.)0 2372 y(Let)c(\()p Fs(D)9 -b Fu(,)28 b Ft(v)q Fu(\))g(and)g(\()p Fs(D)797 2336 y -Fi(0)821 2372 y Fu(,)h Ft(v)955 2336 y Fi(0)978 2372 -y Fu(\))f(b)s(e)h(ccp)s(o's.)43 b(A)28 b(function)g Fs(f)21 -b Fu(:)p Fs(D)9 b Ft(!)p Fs(D)2323 2336 y Fi(0)2375 2372 -y Fu(is)28 b Fs(top)-5 b(olo)g(gic)g(al)5 b(ly-c)-5 b(ontinuous)0 -2493 y Fu(if)31 b(and)i(only)f(if)g(the)h(function)f -Fs(f)1184 2457 y Fi(\000)p Fn(1)1278 2493 y Fu(:)43 b -Ft(P)9 b Fu(\()p Fs(D)1547 2457 y Fi(0)1570 2493 y Fu(\))33 -b Ft(!)f(P)8 b Fu(\()p Fs(D)h Fu(\))33 b(de\014ned)h(b)m(y)244 -2706 y Fs(f)295 2670 y Fi(\000)p Fn(1)389 2706 y Fu(\()p -Fs(Y)519 2670 y Fi(0)542 2706 y Fu(\))e(=)h Ft(f)f Fs(d)43 -b Ft(2)33 b Fs(D)41 b Ft(j)32 b Fs(f)54 b(d)43 b Ft(2)33 -b Fs(Y)1537 2670 y Fi(0)1593 2706 y Ft(g)0 2920 y Fu(maps)24 -b(op)s(en)g(sets)h(to)e(op)s(en)h(sets,)j(that)d(is)f(sp)s(ecializes)g -(to)h Fs(f)2119 2884 y Fi(\000)p Fn(1)2213 2920 y Fu(:)39 -b Ft(O)2361 2935 y Fc(D)2421 2916 y Fa(0)2471 2920 y -Ft(!)24 b(O)2677 2935 y Fc(D)2741 2920 y Fu(.)40 b(Sho)m(w)25 -b(that)f Fs(f)44 b Fu(is)24 b(a)0 3041 y(con)m(tin)m(uous)h(function)f -(b)s(et)m(w)m(een)i Fs(D)33 b Fu(and)25 b Fs(D)1594 3004 -y Fi(0)1641 3041 y Fu(if)e(and)h(only)g(if)f(it)g(is)h(a)g(top)s -(ologically-con)m(tin)m(uous)0 3161 y(function)32 b(b)s(et)m(w)m(een)j -Fs(D)41 b Fu(and)33 b Fs(D)1147 3125 y Fi(0)1170 3161 -y Fu(.)2201 b Fh(2)0 3506 y Fj(4.3)161 b(Direct)53 b(st)l(yle)g(seman)l -(tics:)70 b(existence)0 3730 y Fu(W)-8 b(e)43 b(ha)m(v)m(e)h(no)m(w)g -(obtained)e(the)h(mathematical)d(foundations)i(needed)i(to)e(pro)m(v)m -(e)i(that)f(the)0 3850 y(seman)m(tic)33 b(clauses)h(of)f(T)-8 -b(able)33 b(4.1)g(do)h(indeed)f(de\014ne)i(a)e(function.)46 -b(So)33 b(consider)h(once)g(again)0 3970 y(the)f(clause)244 -4184 y Ft(S)312 4199 y Fn(ds)383 4184 y Fu([)-17 b([)p -Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])33 b(=)f(FIX)h Fs(F)480 4352 y Fu(where)h Fs(F)45 -b(g)c Fu(=)33 b(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q(,)33 b Fs(g)41 b Ft(\016)32 b(S)1795 -4367 y Fn(ds)1866 4352 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b(id\))0 4565 y(F)-8 b(or)43 b(this)g(to)h(mak)m(e)f(sense)j(w) -m(e)f(m)m(ust)e(sho)m(w)i(that)f Fs(F)56 b Fu(is)43 b(con)m(tin)m -(uous.)78 b(T)-8 b(o)44 b(do)f(so)h(w)m(e)h(\014rst)0 -4686 y(observ)m(e)34 b(that)244 4899 y Fs(F)45 b(g)c -Fu(=)33 b Fs(F)625 4914 y Fn(1)697 4899 y Fu(\()p Fs(F)812 -4914 y Fn(2)884 4899 y Fs(g)9 b Fu(\))0 5113 y(where)244 -5327 y Fs(F)321 5342 y Fn(1)393 5327 y Fs(g)41 b Fu(=)32 -b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 -b Fs(g)9 b Fu(,)32 b(id\))244 5494 y Fs(F)321 5509 y -Fn(2)393 5494 y Fs(g)41 b Fu(=)32 b Fs(g)41 b Ft(\016)33 -b(S)824 5509 y Fn(ds)895 5494 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])p eop -%%Page: 108 118 -108 117 bop 251 130 a Fw(108)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(Using)29 -b(Lemma)f(4.35)h(w)m(e)i(then)f(obtain)e(the)i(con)m(tin)m(uit)m(y)f -(of)g Fs(F)42 b Fu(b)m(y)31 b(sho)m(wing)e(that)g Fs(F)3384 -530 y Fn(1)3453 515 y Fu(and)g Fs(F)3716 530 y Fn(2)283 -636 y Fu(are)k(con)m(tin)m(uous.)44 b(W)-8 b(e)33 b(shall)e(\014rst)i -(pro)m(v)m(e)h(that)f Fs(F)2121 651 y Fn(1)2193 636 y -Fu(is)f(con)m(tin)m(uous:)p 283 756 3473 5 v 283 928 -a Fw(Lemma)38 b(4.43)49 b Fu(Let)32 b Fs(g)1157 943 y -Fn(0)1196 928 y Fu(:)44 b Fw(State)32 b Fo(,)-17 b Ft(!)33 -b Fw(State)p Fu(,)g Fs(p)6 b Fu(:)43 b Fw(State)33 b -Ft(!)f Fw(T)g Fu(and)h(de\014ne)527 1129 y Fs(F)46 b(g)41 -b Fu(=)32 b(cond\()p Fs(p)6 b Fu(,)33 b Fs(g)9 b Fu(,)32 -b Fs(g)1352 1144 y Fn(0)1391 1129 y Fu(\))283 1329 y(Then)i -Fs(F)46 b Fu(is)32 b(con)m(tin)m(uous.)p 283 1450 V 283 -1651 a Fw(Pro)s(of:)39 b Fu(W)-8 b(e)33 b(shall)f(\014rst)i(pro)m(v)m -(e)h(that)e Fs(F)46 b Fu(is)33 b Fs(monotone)7 b Fu(.)45 -b(So)33 b(assume)h(that)f Fs(g)3145 1666 y Fn(1)3217 -1651 y Ft(v)h Fs(g)3382 1666 y Fn(2)3454 1651 y Fu(and)g(w)m(e)283 -1771 y(shall)29 b(sho)m(w)i(that)f Fs(F)45 b(g)1120 1786 -y Fn(1)1192 1771 y Ft(v)33 b Fs(F)45 b(g)1465 1786 y -Fn(2)1504 1771 y Fu(.)e(It)30 b(su\016ces)i(to)e(consider)g(an)g -(arbitrary)f(state)i Fs(s)38 b Fu(and)30 b(sho)m(w)283 -1891 y(that)527 2092 y(\()p Fs(F)46 b(g)729 2107 y Fn(1)768 -2092 y Fu(\))32 b Fs(s)41 b Fu(=)32 b Fs(s)1075 2056 -y Fi(0)1131 2092 y Fu(implies)e(\()p Fs(F)46 b(g)1664 -2107 y Fn(2)1703 2092 y Fu(\))32 b Fs(s)41 b Fu(=)32 -b Fs(s)2010 2056 y Fi(0)283 2293 y Fu(If)i Fs(p)40 b(s)i -Fu(=)34 b Fw(tt)f Fu(then)i(\()p Fs(F)47 b(g)1212 2308 -y Fn(1)1251 2293 y Fu(\))34 b Fs(s)42 b Fu(=)33 b Fs(g)1568 -2308 y Fn(1)1641 2293 y Fs(s)42 b Fu(and)34 b(from)f -Fs(g)2200 2308 y Fn(1)2273 2293 y Ft(v)h Fs(g)2438 2308 -y Fn(2)2511 2293 y Fu(w)m(e)h(get)f(that)g Fs(g)3087 -2308 y Fn(1)3160 2293 y Fs(s)42 b Fu(=)34 b Fs(s)3400 -2257 y Fi(0)3457 2293 y Fu(implies)283 2413 y Fs(g)337 -2428 y Fn(2)411 2413 y Fs(s)42 b Fu(=)34 b Fs(s)651 2377 -y Fi(0)674 2413 y Fu(.)48 b(Since)34 b(\()p Fs(F)47 b(g)1208 -2428 y Fn(2)1247 2413 y Fu(\))34 b Fs(s)42 b Fu(=)34 -b Fs(g)1565 2428 y Fn(2)1638 2413 y Fs(s)42 b Fu(w)m(e)35 -b(ha)m(v)m(e)h(pro)m(v)m(ed)f(the)g(result.)48 b(So)34 -b(consider)g(the)h(case)283 2534 y(where)30 b Fs(p)35 -b(s)i Fu(=)28 b Fw(\013)p Fu(.)43 b(Then)30 b(\()p Fs(F)41 -b(g)1410 2549 y Fn(1)1449 2534 y Fu(\))29 b Fs(s)37 b -Fu(=)28 b Fs(g)1751 2549 y Fn(0)1819 2534 y Fs(s)37 b -Fu(and)28 b(similarly)d(\()p Fs(F)46 b(g)2678 2549 y -Fn(2)2717 2534 y Fu(\))32 b Fs(s)37 b Fu(=)29 b Fs(g)3023 -2549 y Fn(0)3090 2534 y Fs(s)37 b Fu(and)29 b(the)g(result)283 -2654 y(is)k(immediate.)430 2775 y(T)-8 b(o)29 b(pro)m(v)m(e)h(that)f -Fs(F)42 b Fu(is)28 b Fs(c)-5 b(ontinuous)37 b Fu(let)29 -b Fs(Y)48 b Fu(b)s(e)30 b(a)e(non-empt)m(y)h(c)m(hain)g(in)g -Fw(State)j Fo(,)-17 b Ft(!)33 b Fw(State)p Fu(.)283 2895 -y(W)-8 b(e)33 b(m)m(ust)g(sho)m(w)h(that)527 3096 y Fs(F)46 -b Fu(\()675 3029 y Fg(F)744 3096 y Fs(Y)20 b Fu(\))32 -b Ft(v)1016 3029 y Fg(F)1085 3096 y Ft(f)h Fs(F)45 b(g)c -Ft(j)32 b Fs(g)9 b Ft(2)p Fs(Y)53 b Ft(g)283 3297 y Fu(since)32 -b Fs(F)43 b Fu(\()666 3230 y Fg(F)736 3297 y Fs(Y)19 -b Fu(\))31 b Ft(w)1004 3230 y Fg(F)1073 3297 y Ft(f)g -Fs(F)44 b(g)39 b Ft(j)30 b Fs(g)9 b Ft(2)p Fs(Y)51 b -Ft(g)30 b Fu(follo)m(ws)g(from)f(the)i(monotonicit)m(y)e(of)i -Fs(F)43 b Fu(\(see)32 b(Lemma)283 3417 y(4.30\).)43 b(Th)m(us)34 -b(w)m(e)g(ha)m(v)m(e)g(to)e(sho)m(w)i(that)527 3618 y(graph\()p -Fs(F)13 b Fu(\()924 3551 y Fg(F)993 3618 y Fs(Y)20 b -Fu(\)\))32 b Ft(\022)1303 3551 y Fg(S)1373 3618 y Ft(f)g -Fu(graph\()p Fs(F)45 b(g)9 b Fu(\))32 b Ft(j)g Fs(g)9 -b Ft(2)p Fs(Y)53 b Ft(g)283 3819 y Fu(using)26 b(the)h(c)m -(haracterization)e(of)h(least)g(upp)s(er)h(b)s(ounds)g(of)f(c)m(hains)g -(in)g Fw(State)g Fo(,)-17 b Ft(!)26 b Fw(State)h Fu(giv)m(en)283 -3939 y(in)h(Lemma)f(4.25.)42 b(So)28 b(assume)h(that)f(\()p -Fs(F)41 b Fu(\()1832 3872 y Fg(F)1901 3939 y Fs(Y)20 -b Fu(\)\))28 b Fs(s)37 b Fu(=)28 b Fs(s)2326 3903 y Fi(0)2377 -3939 y Fu(and)h(let)f(us)h(determine)f Fs(g)37 b Ft(2)28 -b Fs(Y)48 b Fu(suc)m(h)283 4059 y(that)30 b(\()p Fs(F)42 -b(g)9 b Fu(\))29 b Fs(s)37 b Fu(=)30 b Fs(s)988 4023 -y Fi(0)1011 4059 y Fu(.)42 b(If)30 b Fs(p)35 b(s)j Fu(=)29 -b Fw(\013)h Fu(w)m(e)g(ha)m(v)m(e)h Fs(F)45 b Fu(\()2047 -3993 y Fg(F)2117 4059 y Fs(Y)19 b Fu(\))33 b Fs(s)k Fu(=)29 -b Fs(g)2515 4074 y Fn(0)2587 4059 y Fs(s)37 b Fu(=)30 -b Fs(s)2818 4023 y Fi(0)2870 4059 y Fu(and)g(clearly)-8 -b(,)29 b(for)g(ev)m(ery)283 4180 y(elemen)m(t)k Fs(g)42 -b Fu(of)33 b(the)h(non-empt)m(y)f(set)h Fs(Y)53 b Fu(w)m(e)34 -b(ha)m(v)m(e)g(\()p Fs(F)46 b(g)9 b Fu(\))32 b Fs(s)41 -b Fu(=)33 b Fs(g)2663 4195 y Fn(0)2735 4180 y Fs(s)41 -b Fu(=)33 b Fs(s)2973 4144 y Fi(0)2996 4180 y Fu(.)46 -b(If)33 b Fs(p)39 b(s)i Fu(=)33 b Fw(tt)f Fu(then)283 -4300 y(w)m(e)i(get)f(\()p Fs(F)45 b Fu(\()775 4234 y -Fg(F)844 4300 y Fs(Y)20 b Fu(\)\))32 b Fs(s)41 b Fu(=)32 -b(\()1271 4234 y Fg(F)1340 4300 y Fs(Y)20 b Fu(\))33 -b Fs(s)40 b Fu(=)33 b Fs(s)1740 4264 y Fi(0)1795 4300 -y Fu(so)g Ft(h)p Fs(s)8 b Fu(,)33 b Fs(s)2110 4264 y -Fi(0)2133 4300 y Ft(i)f(2)h Fu(graph\()2585 4234 y Fg(F)2654 -4300 y Fs(Y)20 b Fu(\).)32 b(Since)527 4501 y(graph\()809 -4434 y Fg(F)878 4501 y Fs(Y)20 b Fu(\))32 b(=)1149 4434 -y Fg(S)1218 4501 y Ft(f)g Fu(graph\()p Fs(g)9 b Fu(\))32 -b Ft(j)g Fs(g)9 b Ft(2)p Fs(Y)53 b Ft(g)283 4702 y Fu(\(according)25 -b(to)f(Lemma)g(4.25\))g(w)m(e)i(therefore)f(ha)m(v)m(e)i -Fs(g)9 b Ft(2)p Fs(Y)44 b Fu(suc)m(h)26 b(that)f Fs(g)33 -b(s)g Fu(=)25 b Fs(s)3148 4665 y Fi(0)3196 4702 y Fu(and)g(it)f(follo)m -(ws)283 4822 y(that)33 b(\()p Fs(F)45 b(g)9 b Fu(\))32 -b Fs(s)41 b Fu(=)32 b Fs(s)1003 4786 y Fi(0)1027 4822 -y Fu(.)43 b(This)33 b(pro)m(v)m(es)h(the)f(result.)1626 -b Fh(2)283 5130 y Fw(Exercise)37 b(4.44)49 b(\(Essen)m(tial\))29 -b Fu(Pro)m(v)m(e)j(that)f(\(in)g(the)g(setting)g(of)g(Lemma)f(4.43\))g -Fs(F)44 b Fu(de\014ned)283 5250 y(b)m(y)38 b Fs(F)50 -b(g)c Fu(=)37 b(cond\()p Fs(p)6 b Fu(,)38 b Fs(g)1154 -5265 y Fn(0)1193 5250 y Fu(,)g Fs(g)9 b Fu(\))37 b(is)f(con)m(tin)m -(uous,)j(that)e(is)f(`cond')i(is)e(con)m(tin)m(uous)i(in)e(its)h -(second)283 5371 y(and)c(third)f(argumen)m(ts.)2495 b -Fh(2)p eop -%%Page: 109 119 -109 118 bop 0 130 a Fw(4.3)112 b(Direct)36 b(st)m(yle)g(seman)m(tics:) -50 b(existence)1444 b(109)p 0 193 3473 4 v 0 515 3473 -5 v 0 683 a(Lemma)37 b(4.45)49 b Fu(Let)33 b Fs(g)874 -698 y Fn(0)913 683 y Fu(:)43 b Fw(State)33 b Fo(,)-17 -b Ft(!)33 b Fw(State)f Fu(and)h(de\014ne)244 880 y Fs(F)45 -b(g)c Fu(=)33 b Fs(g)41 b Ft(\016)32 b Fs(g)770 895 y -Fn(0)0 1077 y Fu(Then)i Fs(F)45 b Fu(is)32 b(con)m(tin)m(uous.)p -0 1198 V 0 1395 a Fw(Pro)s(of:)48 b Fu(W)-8 b(e)43 b(shall)d(\014rst)j -(pro)m(v)m(e)g(that)f Fs(F)55 b Fu(is)41 b(monotone.)71 -b(If)42 b Fs(g)2373 1410 y Fn(1)2454 1395 y Ft(v)h Fs(g)2628 -1410 y Fn(2)2709 1395 y Fu(then)f(graph\()p Fs(g)3276 -1410 y Fn(1)3315 1395 y Fu(\))g Ft(\022)0 1515 y Fu(graph\()p -Fs(g)336 1530 y Fn(2)375 1515 y Fu(\))32 b(according)g(to)g(Exercise)i -(4.8)f(so)f(that)244 1712 y(graph\()p Fs(g)580 1727 y -Fn(0)619 1712 y Fu(\))g Ft(\005)f Fu(graph\()p Fs(g)1107 -1727 y Fn(1)1146 1712 y Fu(\))i Ft(\022)g Fu(graph\()p -Fs(g)1663 1727 y Fn(0)1702 1712 y Fu(\))f Ft(\005)f Fu(graph\()p -Fs(g)2190 1727 y Fn(2)2229 1712 y Fu(\))0 1909 y(and)h(this)g(sho)m(ws) -i(that)e Fs(F)45 b(g)1033 1924 y Fn(1)1105 1909 y Ft(v)32 -b Fs(F)46 b(g)1378 1924 y Fn(2)1417 1909 y Fu(.)d(Next)33 -b(w)m(e)g(shall)e(pro)m(v)m(e)j(that)e Fs(F)45 b Fu(is)32 -b(con)m(tin)m(uous.)44 b(If)32 b Fs(Y)0 2029 y Fu(is)g(a)g(non-empt)m -(y)h(c)m(hain)g(then)244 2226 y(graph\()p Fs(F)13 b Fu(\()641 -2160 y Fg(F)710 2226 y Fs(Y)19 b Fu(\)\))33 b(=)f(graph\(\()1338 -2160 y Fg(F)1407 2226 y Fs(Y)20 b Fu(\))32 b Ft(\016)h -Fs(g)1706 2241 y Fn(0)1745 2226 y Fu(\))910 2394 y(=)f(graph\()p -Fs(g)1354 2409 y Fn(0)1393 2394 y Fu(\))h Ft(\005)e Fu(graph\()1828 -2328 y Fg(F)1897 2394 y Fs(Y)20 b Fu(\))910 2562 y(=)32 -b(graph\()p Fs(g)1354 2577 y Fn(0)1393 2562 y Fu(\))h -Ft(\005)1546 2495 y Fg(S)1615 2562 y Ft(f)p Fu(graph\()p -Fs(g)9 b Fu(\))32 b Ft(j)g Fs(g)9 b Ft(2)p Fs(Y)20 b -Ft(g)910 2729 y Fu(=)1018 2663 y Fg(S)1087 2729 y Ft(f)p -Fu(graph\()p Fs(g)1473 2744 y Fn(0)1512 2729 y Fu(\))33 -b Ft(\005)e Fu(graph\()p Fs(g)9 b Fu(\))32 b Ft(j)g Fs(g)9 -b Ft(2)p Fs(Y)20 b Ft(g)910 2897 y Fu(=)32 b(graph\()1300 -2830 y Fg(F)1369 2897 y Ft(f)p Fs(F)46 b(g)41 b Ft(j)32 -b Fs(g)9 b Ft(2)p Fs(Y)19 b Ft(g)p Fu(\))0 3094 y(where)34 -b(w)m(e)f(ha)m(v)m(e)h(used)g(Lemma)d(4.25)h(t)m(wice.)44 -b(Th)m(us)34 b Fs(F)46 b Fu(\()2112 3027 y Fg(F)2181 -3094 y Fs(Y)20 b Fu(\))32 b(=)2451 3027 y Fg(F)2521 3094 -y Ft(f)p Fs(F)45 b(g)c Ft(j)32 b Fs(g)9 b Ft(2)p Fu(Y)p -Ft(g)p Fu(.)302 b Fh(2)0 3397 y Fw(Exercise)36 b(4.46)49 -b(\(Essen)m(tial\))29 b Fu(Pro)m(v)m(e)k(that)e(\(in)f(the)i(setting)f -(of)g(Lemma)e(4.45\))i Fs(F)44 b Fu(de\014ned)0 3517 -y(b)m(y)33 b Fs(F)46 b(g)41 b Fu(=)32 b Fs(g)493 3532 -y Fn(0)565 3517 y Ft(\016)g Fs(g)41 b Fu(is)32 b(con)m(tin)m(uous,)i -(that)e(is)g Ft(\016)h Fu(is)f(con)m(tin)m(uous)h(in)f(b)s(oth)g -(argumen)m(ts.)260 b Fh(2)146 3737 y Fu(W)-8 b(e)26 b(ha)m(v)m(e)g(no)m -(w)g(established)f(the)h(results)f(needed)i(to)e(sho)m(w)h(that)f(the)h -(equations)f(of)g(T)-8 b(able)0 3857 y(4.1)32 b(de\014ne)i(a)e -(function)g Ft(S)970 3872 y Fn(ds)1041 3857 y Fu(:)p -0 3978 V 0 4145 a Fw(Prop)s(osition)k(4.47)49 b Fu(The)44 -b(seman)m(tic)e(equations)i(of)f(T)-8 b(able)42 b(4.1)h(de\014ne)h(a)f -(total)f(function)0 4266 y Ft(S)68 4281 y Fn(ds)172 4266 -y Fu(in)31 b Fw(Stm)h Ft(!)g Fu(\()p Fw(State)h Fo(,)-17 -b Ft(!)32 b Fw(State)p Fu(\).)p 0 4386 V 0 4583 a Fw(Pro)s(of:)37 -b Fu(The)d(pro)s(of)e(is)g(b)m(y)h(structural)f(induction)g(on)g(the)h -(statemen)m(t)h Fs(S)12 b Fu(.)0 4751 y Fw(The)24 b(case)g -Fs(x)36 b Fu(:=)23 b Fs(a)7 b Fu(:)40 b(Clearly)23 b(the)h(function)f -(that)g(maps)h(a)f(state)h Fs(s)32 b Fu(to)23 b(the)i(state)f -Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p Fu([)-17 b([)p Fs(a)7 -b Fu(])-17 b(])q Fs(s)8 b Fu(])0 4871 y(is)32 b(w)m(ell-de\014ned.)0 -5039 y Fw(The)h(case)g Fr(skip)p Fu(:)45 b(Clearly)31 -b(the)i(function)f(id)g(is)g(w)m(ell-de\014ned.)0 5206 -y Fw(The)42 b(case)h Fs(S)542 5221 y Fn(1)582 5206 y -Fu(;)p Fs(S)676 5221 y Fn(2)715 5206 y Fu(:)63 b(The)43 -b(induction)e(h)m(yp)s(othesis)i(giv)m(es)g(that)f Ft(S)2486 -5221 y Fn(ds)2557 5206 y Fu([)-17 b([)p Fs(S)2661 5221 -y Fn(1)2701 5206 y Fu(])g(])42 b(and)h Ft(S)3048 5221 -y Fn(ds)3119 5206 y Fu([)-17 b([)p Fs(S)3223 5221 y Fn(2)3263 -5206 y Fu(])g(])42 b(are)0 5327 y(w)m(ell-de\014ned)33 -b(and)f(clearly)g(their)g(comp)s(osition)e(will)h(b)s(e)h(w)m -(ell-de\014ned.)0 5494 y Fw(The)42 b(case)f Fr(if)h Fs(b)47 -b Fr(then)c Fs(S)1023 5509 y Fn(1)1103 5494 y Fr(else)f -Fs(S)1416 5509 y Fn(2)1456 5494 y Fu(:)60 b(The)43 b(induction)d(h)m -(yp)s(othesis)i(giv)m(es)g(that)f Ft(S)3220 5509 y Fn(ds)3291 -5494 y Fu([)-17 b([)q Fs(S)3396 5509 y Fn(1)3435 5494 -y Fu(])g(])p eop -%%Page: 110 120 -110 119 bop 251 130 a Fw(110)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(and)41 -b Ft(S)549 530 y Fn(ds)620 515 y Fu([)-17 b([)q Fs(S)725 -530 y Fn(2)764 515 y Fu(])g(])41 b(are)g(w)m(ell-de\014ned)f(functions) -h(and)g(clearly)e(this)h(prop)s(ert)m(y)i(is)e(preserv)m(ed)j(b)m(y)283 -636 y(the)33 b(function)g(`cond'.)283 803 y Fw(The)24 -b(case)g Fr(while)g Fs(b)29 b Fr(do)24 b Fs(S)12 b Fu(:)23 -b(The)h(induction)e(h)m(yp)s(othesis)i(giv)m(es)g(that)f -Ft(S)2903 818 y Fn(ds)2974 803 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])24 b(is)f(w)m(ell-de\014ned.)283 924 y(The)34 -b(functions)f Fs(F)982 939 y Fn(1)1053 924 y Fu(and)g -Fs(F)1320 939 y Fn(2)1392 924 y Fu(de\014ned)h(b)m(y)527 -1121 y Fs(F)604 1136 y Fn(1)676 1121 y Fs(g)41 b Fu(=)33 -b(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 -b Fs(g)9 b Fu(,)33 b(id\))527 1288 y Fs(F)604 1303 y -Fn(2)676 1288 y Fs(g)41 b Fu(=)33 b Fs(g)41 b Ft(\016)32 -b(S)1107 1303 y Fn(ds)1178 1288 y Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])283 1485 y(are)34 b(con)m(tin)m(uous)h(according)e(to)h -(Lemmas)f(4.43)g(and)h(4.45.)47 b(Th)m(us)35 b(Lemma)e(4.35)g(giv)m(es) -h(that)283 1606 y Fs(F)47 b(g)c Fu(=)34 b Fs(F)669 1621 -y Fn(1)742 1606 y Fu(\()p Fs(F)857 1621 y Fn(2)931 1606 -y Fs(g)9 b Fu(\))33 b(is)h(con)m(tin)m(uous.)49 b(F)-8 -b(rom)32 b(Theorem)j(4.37)e(w)m(e)i(then)g(ha)m(v)m(e)g(that)f(FIX)g -Fs(F)47 b Fu(is)283 1726 y(w)m(ell-de\014ned)37 b(and)g(thereb)m(y)i -(that)d Ft(S)1655 1741 y Fn(ds)1726 1726 y Fu([)-17 b([)q -Fr(while)38 b Fs(b)k Fr(do)c Fs(S)12 b Fu(])-17 b(])37 -b(is)f(w)m(ell-de\014ned.)56 b(This)37 b(completes)283 -1846 y(the)c(pro)s(of.)2980 b Fh(2)283 2149 y Fw(Example)37 -b(4.48)49 b Fu(Consider)33 b(the)g(denotational)e(seman)m(tics)h(of)g -(the)h(factorial)e(statemen)m(t:)527 2346 y Ft(S)595 -2361 y Fn(ds)666 2346 y Fu([)-17 b([)q Fr(y)33 b Fu(:=)f -Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p Fr(y)p -Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])283 2543 y(W)-8 b(e)29 b(shall)d(b)s(e)i(in)m -(terested)h(in)e(applying)g(this)g(function)h(to)f(a)h(state)g -Fs(s)2780 2558 y Fn(0)2848 2543 y Fu(where)h Fr(x)f Fu(has)g(the)g(v)-5 -b(alue)283 2663 y Fw(3)p Fu(.)44 b(T)-8 b(o)33 b(do)f(that)g(w)m(e)i -(shall)d(\014rst)i(apply)g(the)g(clauses)g(of)f(T)-8 -b(able)32 b(4.1)g(and)h(w)m(e)h(then)f(get)f(that)527 -2860 y Ft(S)595 2875 y Fn(ds)666 2860 y Fu([)-17 b([)q -Fr(y)33 b Fu(:=)f Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)p Fu(:=)p -Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])35 b Fs(s)2705 2875 y Fn(0)764 -3028 y Fu(=)d(\(FIX)g Fs(F)13 b Fu(\))33 b Fs(s)1310 -3043 y Fn(0)1349 3028 y Fu([)p Fr(y)p Ft(7!)p Fw(1)p -Fu(])283 3225 y(where)527 3484 y Fs(F)46 b(g)41 b(s)g -Fu(=)912 3310 y Fg(8)912 3384 y(<)912 3534 y(:)1027 3399 -y Fs(g)g Fu(\()p Ft(S)1219 3414 y Fn(ds)1290 3399 y Fu([)-17 -b([)q Fr(y)p Fu(:=)33 b Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)p -Fu(:=)p Fr(x)p Ft(\000)p Fr(1)p Fu(])-17 b(])34 b Fs(s)8 -b Fu(\))83 b(if)31 b Ft(B)t Fu([)-17 b([)p Ft(:)q Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])33 b Fs(s)41 b Fu(=)32 -b Fw(tt)1027 3567 y Fs(s)1232 b Fu(if)31 b Ft(B)t Fu([)-17 -b([)p Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])33 -b Fs(s)41 b Fu(=)32 b Fw(\013)283 3763 y Fu(or,)h(equiv)-5 -b(alen)m(tly)d(,)527 4041 y Fs(F)46 b(g)41 b(s)g Fu(=)912 -3867 y Fg(8)912 3942 y(<)912 4091 y(:)1027 3957 y Fs(g)g -Fu(\()p Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fu(\()p Fs(s)41 -b Fr(y)p Fu(\))p Fo(?)p Fu(\()p Fs(s)f Fr(x)p Fu(\)][)p -Fr(x)p Ft(7!)q Fu(\()p Fs(s)g Fr(x)p Fu(\))p Ft(\000)p -Fw(1)p Fu(]\))84 b(if)31 b Fs(s)41 b Fr(x)33 b Ft(6)p -Fu(=)f Fw(1)1027 4124 y Fs(s)1469 b Fu(if)31 b Fs(s)41 -b Fr(x)33 b Fu(=)f Fw(1)283 4320 y Fu(W)-8 b(e)34 b(can)g(no)m(w)g -(calculate)f(the)g(v)-5 b(arious)33 b(functions)h Fs(F)2246 -4284 y Fn(n)2322 4320 y Ft(?)g Fu(used)h(in)e(the)g(de\014nition)g(of)g -(FIX)g Fs(F)283 4440 y Fu(in)f(Theorem)h(4.37:)527 4637 -y(\()p Fs(F)642 4601 y Fn(0)714 4637 y Ft(?)q Fu(\))f -Fs(s)41 b Fu(=)32 b(undef)p 1051 4650 236 4 v 527 4892 -a(\()p Fs(F)642 4856 y Fn(1)714 4892 y Ft(?)q Fu(\))g -Fs(s)41 b Fu(=)1051 4718 y Fg(8)1051 4792 y(<)1051 4942 -y(:)1166 4807 y Fu(undef)p 1166 4820 V 84 w(if)32 b Fs(s)40 -b Fr(x)33 b Ft(6)p Fu(=)f Fw(1)1166 4975 y Fs(s)279 b -Fu(if)32 b Fs(s)40 b Fr(x)33 b Fu(=)f Fw(1)527 5325 y -Fu(\()p Fs(F)642 5289 y Fn(2)714 5325 y Ft(?)q Fu(\))g -Fs(s)41 b Fu(=)1051 5076 y Fg(8)1051 5150 y(>)1051 5175 -y(>)1051 5200 y(>)1051 5225 y(<)1051 5375 y(>)1051 5400 -y(>)1051 5424 y(>)1051 5449 y(:)1166 5156 y Fu(undef)p -1166 5169 V 675 w(if)32 b Fs(s)40 b Fr(x)33 b Ft(6)p -Fu(=)g Fw(1)f Fu(and)h Fs(s)40 b Fr(x)33 b Ft(6)p Fu(=)g -Fw(2)1166 5324 y Fs(s)8 b Fu([)p Fr(y)p Ft(7!)q Fu(\()p -Fs(s)40 b Fr(y)p Fu(\))p Fo(?)p Fw(2)p Fu(][)p Fr(x)p -Ft(7!)p Fw(1)p Fu(])83 b(if)32 b Fs(s)40 b Fr(x)33 b -Fu(=)g Fw(2)1166 5492 y Fs(s)870 b Fu(if)32 b Fs(s)40 -b Fr(x)33 b Fu(=)g Fw(1)p eop -%%Page: 111 121 -111 120 bop 0 130 a Fw(4.3)112 b(Direct)36 b(st)m(yle)g(seman)m(tics:) -50 b(existence)1444 b(111)p 0 193 3473 4 v 0 515 a Fu(Th)m(us)32 -b(if)d Fr(x)h Fu(is)g Fw(1)g Fu(or)g Fw(2)g Fu(then)h(the)f -Fs(F)1260 479 y Fn(2)1330 515 y Ft(?)g Fu(will)e(giv)m(e)i(the)h -(correct)g(v)-5 b(alue)29 b(for)h Fr(y)g Fu(and)h(for)e(all)f(other)0 -636 y(v)-5 b(alues)27 b(of)g Fr(x)h Fu(the)g(result)f(is)g -(unde\014ned.)44 b(This)28 b(is)f(a)g(general)g(pattern:)41 -b(the)28 b(n)m(th)g Fs(iter)-5 b(and)37 b(F)3319 600 -y Fn(n)3395 636 y Ft(?)0 756 y Fu(will)d(determine)h(the)i(correct)g(v) --5 b(alue)35 b(if)g(it)g(can)h(b)s(e)g(computed)h(with)e -Fs(at)k(most)c Fu(n)i Fs(unfoldings)0 877 y Fu(of)i(the)h -Fr(while)p Fu(-lo)s(op)f(\(that)h(is)f(n)g(ev)-5 b(aluations)39 -b(of)g(the)h(b)s(o)s(olean)e(condition\).)63 b(The)41 -b(general)0 997 y(form)m(ula)31 b(is)269 1227 y(\()p -Fs(F)384 1191 y Fn(n)460 1227 y Ft(?)p Fu(\))h Fs(s)41 -b Fu(=)796 1052 y Fg(8)796 1127 y(<)796 1277 y(:)912 -1142 y Fu(undef)p 912 1155 236 4 v 989 w(if)31 b Fs(s)41 -b Fr(x)32 b Fo(<)h Fw(1)f Fu(or)h Fs(s)40 b Fr(x)33 b -Fo(>)f Fu(n)912 1310 y Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p -Fu(\()p Fs(s)40 b Fr(y)p Fu(\))p Fo(?)p Fs(j)14 b Ft(\001)j(\001)g -(\001)o Fo(?)p Fw(2)p Fo(?)o Fw(1)p Fu(][)p Fr(x)p Ft(7!)p -Fw(1)p Fu(])84 b(if)31 b Fs(s)41 b Fr(x)32 b Fu(=)h Fs(j)46 -b Fu(and)33 b Fw(1)p Ft(\024)q Fs(j)46 b Fu(and)33 b -Fs(j)14 b Ft(\024)q Fu(n)0 1476 y(W)-8 b(e)33 b(then)g(ha)m(v)m(e)244 -1793 y(\(FIX)f Fs(F)13 b Fu(\))33 b Fs(s)40 b Fu(=)823 -1619 y Fg(8)823 1694 y(<)823 1843 y(:)938 1709 y Fu(undef)p -938 1722 V 1007 w(if)31 b Fs(s)41 b Fr(x)33 b Fo(<)f -Fw(1)938 1876 y Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fu(\()p -Fs(s)41 b Fr(y)p Fu(\))p Fo(?)p Fs(n)7 b Ft(\001)17 b(\001)g(\001)n -Fo(?)p Fw(2)p Fo(?)p Fw(1)p Fu(][)p Fr(x)p Ft(7!)p Fw(1)p -Fu(])83 b(if)31 b Fs(s)41 b Fr(x)33 b Fu(=)f Fs(n)40 -b Fu(and)33 b Fs(n)7 b Ft(\025)p Fw(1)0 2130 y Fu(So)32 -b(in)f(the)i(state)f Fs(s)702 2145 y Fn(0)773 2130 y -Fu(where)i Fr(x)e Fu(has)g(the)h(v)-5 b(alue)31 b Fw(3)h -Fu(w)m(e)h(get)f(that)g(the)g(v)-5 b(alue)32 b(computed)g(b)m(y)h(the)0 -2250 y(factorial)d(statemen)m(t)j(is)244 2505 y(\(FIX)f -Fs(F)13 b Fu(\))33 b(\()p Fs(s)720 2520 y Fn(0)759 2505 -y Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(]\))g Fr(y)g Fu(=)f -Fw(1)h Fo(?)f Fw(3)g Fo(?)h Fw(2)f Fo(?)g Fw(1)h Fu(=)f -Fw(6)0 2760 y Fu(as)h(exp)s(ected.)2879 b Fh(2)0 3061 -y Fw(Exercise)36 b(4.49)49 b Fu(Consider)33 b(the)g(statemen)m(t)244 -3315 y Fr(z)p Fu(:=)p Fr(0)p Fu(;)g Fr(while)h(y)p Ft(\024)q -Fr(x)e(do)h Fu(\()p Fr(z)p Fu(:=)p Fr(z)p Fu(+)p Fr(1)p -Fu(;)h Fr(x)p Fu(:=)p Fr(x)p Ft(\000)p Fr(y)p Fu(\))0 -3570 y(and)f(p)s(erform)e(a)h(dev)m(elopmen)m(t)i(analogous)d(to)h -(that)h(of)f(Example)g(4.48.)694 b Fh(2)0 3871 y Fw(Exercise)36 -b(4.50)49 b Fu(Sho)m(w)30 b(that)f Ft(S)1220 3886 y Fn(ds)1292 -3871 y Fu([)-17 b([)p Fr(while)30 b(true)g(do)g(skip)p -Fu(])-17 b(])30 b(is)e(the)i(totally)d(unde\014ned)j(func-)0 -3991 y(tion)i Ft(?)p Fu(.)3093 b Fh(2)0 4292 y Fw(Exercise)36 -b(4.51)49 b Fu(Extend)42 b(the)f(language)e(with)h(the)h(statemen)m(t)g -Fr(repeat)34 b Fs(S)44 b Fr(until)34 b Fs(b)46 b Fu(and)0 -4412 y(giv)m(e)37 b(the)g(new)g(\(comp)s(ositional\))c(clause)k(for)f -Ft(S)1795 4427 y Fn(ds)1866 4412 y Fu(.)56 b(V)-8 b(alidate)34 -b(the)j(w)m(ell-de\014nedness)i(of)d(the)0 4532 y(extended)f(v)m -(ersion)e(of)f Ft(S)925 4547 y Fn(ds)996 4532 y Fu(.)2375 -b Fh(2)0 4833 y Fw(Exercise)36 b(4.52)49 b Fu(Extend)37 -b(the)e(language)f(with)g(the)h(statemen)m(t)g Fr(for)h -Fs(x)47 b Fu(:=)34 b Fs(a)2937 4848 y Fn(1)3012 4833 -y Fr(to)h Fs(a)3206 4848 y Fn(2)3280 4833 y Fr(do)h Fs(S)0 -4953 y Fu(and)f(giv)m(e)g(the)g(new)h(\(comp)s(ositional\))c(clause)j -(for)f Ft(S)1977 4968 y Fn(ds)2048 4953 y Fu(.)51 b(V)-8 -b(alidate)33 b(the)i(w)m(ell-de\014nedness)i(of)0 5074 -y(the)c(extended)i(v)m(ersion)e(of)f Ft(S)1093 5089 y -Fn(ds)1164 5074 y Fu(.)2207 b Fh(2)146 5374 y Fu(T)-8 -b(o)31 b(summarize,)f(the)h(w)m(ell-de\014nedness)h(of)e -Ft(S)1851 5389 y Fn(ds)1952 5374 y Fu(relies)g(on)g(the)h(follo)m(wing) -d(results)j(estab-)0 5494 y(lished)h(ab)s(o)m(v)m(e:)p -eop -%%Page: 112 122 -112 121 bop 251 130 a Fw(112)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 3470 4 v 283 -436 V 281 643 4 208 v 298 643 V 1371 564 a(Pro)s(of)c(Summary)h(for)f -(While)p Fu(:)p 3735 643 V 3752 643 V 281 851 V 298 851 -V 961 772 a Fw(W)-9 b(ell)p Fu(-)p Fw(de\014nedness)32 -b(of)h(Denotational)e(Seman)m(tics)p 3735 851 V 3752 -851 V 283 854 3470 4 v 281 1223 4 370 v 298 1223 V 350 -1020 a Fu(1:)143 b(The)34 b(set)g Fw(State)g Fo(,)-17 -b Ft(!)33 b Fw(State)g Fu(equipp)s(ed)h(with)f(an)h(appropriate)e -(order)i Ft(v)f Fu(is)g(a)g(ccp)s(o)569 1140 y(\(Lemmas)e(4.13)h(and)h -(4.25\).)p 3735 1223 V 3752 1223 V 281 1511 4 289 v 298 -1511 V 350 1308 a(2:)143 b(Certain)34 b(functions)g(\011:)47 -b(\()p Fw(State)34 b Fo(,)-17 b Ft(!)35 b Fw(State)p -Fu(\))f Ft(!)g Fu(\()p Fw(State)g Fo(,)-17 b Ft(!)35 -b Fw(State)p Fu(\))f(are)g(con)m(tin-)569 1428 y(uous)f(\(Lemmas)e -(4.43)h(and)h(4.45\).)p 3735 1511 V 3752 1511 V 281 1799 -V 298 1799 V 350 1596 a(3:)143 b(In)31 b(the)g(de\014nition)f(of)g -Ft(S)1464 1611 y Fn(ds)1566 1596 y Fu(w)m(e)i(only)e(apply)g(the)i -(\014xed)g(p)s(oin)m(t)e(op)s(eration)f(to)h(con)m(tin-)569 -1716 y(uous)j(functions)f(\(Prop)s(osition)f(4.47\).)p -3735 1799 V 3752 1799 V 283 1803 3470 4 v 283 1819 V -283 2069 a Fp(Prop)t(erties)46 b(of)f(the)h(seman)l(tics)283 -2260 y Fu(In)35 b(the)f(op)s(erational)d(seman)m(tics)j(w)m(e)h -(de\014ned)g(a)f(notion)f(of)g(t)m(w)m(o)h(statemen)m(ts)h(b)s(eing)e -(seman-)283 2380 y(tically)46 b(equiv)-5 b(alen)m(t.)87 -b(A)48 b(similar)c(notion)i(can)i(b)s(e)g(de\014ned)g(based)h(on)e(the) -h(denotational)283 2501 y(seman)m(tics:)c Fs(S)831 2516 -y Fn(1)903 2501 y Fu(and)33 b Fs(S)1160 2516 y Fn(2)1231 -2501 y Fu(are)g Fs(semantic)-5 b(al)5 b(ly)34 b(e)-5 -b(quivalent)41 b Fu(if)32 b(and)g(only)h(if)527 2720 -y Ft(S)595 2735 y Fn(ds)666 2720 y Fu([)-17 b([)q Fs(S)771 -2735 y Fn(1)810 2720 y Fu(])g(])33 b(=)g Ft(S)1056 2735 -y Fn(ds)1128 2720 y Fu([)-17 b([)p Fs(S)1232 2735 y Fn(2)1272 -2720 y Fu(])g(])283 2973 y Fw(Exercise)37 b(4.53)49 b -Fu(Sho)m(w)f(that)f(the)g(follo)m(wing)e(statemen)m(ts)j(of)f -Fw(While)e Fu(are)j(seman)m(tically)283 3093 y(equiv)-5 -b(alen)m(t)33 b(in)f(the)h(ab)s(o)m(v)m(e)g(sense:)429 -3312 y Ft(\017)48 b Fs(S)12 b Fu(;)p Fr(skip)34 b Fu(and)f -Fs(S)429 3531 y Ft(\017)48 b Fs(S)594 3546 y Fn(1)634 -3531 y Fu(;\()p Fs(S)766 3546 y Fn(2)805 3531 y Fu(;)p -Fs(S)899 3546 y Fn(3)938 3531 y Fu(\))33 b(and)f(\()p -Fs(S)1303 3546 y Fn(1)1343 3531 y Fu(;)p Fs(S)1437 3546 -y Fn(2)1476 3531 y Fu(\);)p Fs(S)1608 3546 y Fn(3)429 -3749 y Ft(\017)48 b Fr(while)34 b Fs(b)39 b Fr(do)33 -b Fs(S)44 b Fu(and)33 b Fr(if)g Fs(b)38 b Fr(then)c Fu(\()p -Fs(S)12 b Fu(;)32 b Fr(while)i Fs(b)k Fr(do)c Fs(S)12 -b Fu(\))32 b Fr(else)h(skip)651 b Fh(2)283 3999 y Fw(Exercise)37 -b(4.54)49 b Fu(*)29 b(Pro)m(v)m(e)h(that)f Fr(repeat)i -Fs(S)41 b Fr(until)30 b Fs(b)35 b Fu(and)29 b Fs(S)12 -b Fu(;)29 b Fr(while)h Ft(:)q Fs(b)35 b Fr(do)29 b Fs(S)41 -b Fu(are)29 b(seman-)283 4120 y(tically)i(equiv)-5 b(alen)m(t)33 -b(using)g(the)h(denotational)d(approac)m(h.)45 b(The)34 -b(seman)m(tics)g(of)e(the)i Fr(repeat)p Fu(-)283 4240 -y(construct)g(is)e(giv)m(en)h(in)f(Exercise)i(4.51.)1917 -b Fh(2)283 4592 y Fj(4.4)161 b(An)53 b(equiv)-9 b(alence)55 -b(result)283 4817 y Fu(Ha)m(ving)33 b(pro)s(duced)h(y)m(et)g(another)g -(seman)m(tics)f(of)f(the)i(language)e Fw(While)f Fu(w)m(e)k(shall)c(b)s -(e)j(in)m(ter-)283 4937 y(ested)d(in)e(its)f(relation)g(to)h(the)h(op)s -(erational)d(seman)m(tics)i(and)g(for)g(this)g(w)m(e)i(shall)d(fo)s -(cus)h(on)g(the)283 5058 y(structural)k(op)s(erational)d(seman)m(tics.) -p 283 5181 3473 5 v 283 5374 a Fw(Theorem)38 b(4.55)49 -b Fu(F)-8 b(or)31 b(ev)m(ery)k(statemen)m(t)e Fs(S)44 -b Fu(of)32 b Fw(While)f Fu(w)m(e)j(ha)m(v)m(e)g Ft(S)2863 -5389 y Fn(sos)2958 5374 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])33 b(=)g Ft(S)3308 5389 y Fn(ds)3380 5374 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(.)p 283 5494 V eop -%%Page: 113 123 -113 122 bop 0 130 a Fw(4.4)112 b(An)38 b(equiv)-6 b(alence)37 -b(result)1991 b(113)p 0 193 3473 4 v 0 515 a Fu(Both)25 -b Ft(S)302 530 y Fn(ds)373 515 y Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])25 b(and)g Ft(S)790 530 y Fn(sos)885 515 -y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])25 b(are)g(functions)f(in)g -Fw(State)h Fo(,)-17 b Ft(!)24 b Fw(State)p Fu(,)j(that)d(is)g(they)i -(are)e(elemen)m(ts)0 636 y(of)40 b(a)h(partially)c(ordered)42 -b(set.)68 b(T)-8 b(o)41 b(pro)m(v)m(e)h(that)e(t)m(w)m(o)i(elemen)m(ts) -e Fs(d)2485 651 y Fn(1)2566 636 y Fu(and)g Fs(d)2823 -651 y Fn(2)2904 636 y Fu(of)g(a)g(partially)0 756 y(ordered)30 -b(set)g(are)g(equal)f(it)g(is)g(su\016cien)m(t)i(to)e(pro)m(v)m(e)i -(that)e Fs(d)2153 771 y Fn(1)2222 756 y Ft(v)h Fs(d)2389 -771 y Fn(2)2458 756 y Fu(and)g(that)f Fs(d)2913 771 y -Fn(2)2982 756 y Ft(v)h Fs(d)3149 771 y Fn(1)3188 756 -y Fu(.)43 b(Th)m(us)0 877 y(to)32 b(pro)m(v)m(e)i(Theorem)f(4.55)f(w)m -(e)i(shall)d(sho)m(w)i(that)145 1066 y Ft(\017)49 b(S)312 -1081 y Fn(sos)407 1066 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])33 b Ft(v)g(S)759 1081 y Fn(ds)830 1066 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(],)33 b(and)145 1264 y Ft(\017)49 -b(S)312 1279 y Fn(ds)383 1264 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])33 b Ft(v)g(S)735 1279 y Fn(sos)830 1264 -y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(].)0 1454 y(The)34 -b(\014rst)f(result)f(is)g(expressed)k(b)m(y)d(the)g(follo)m(wing)d -(lemma:)p 0 1574 3473 5 v 0 1734 a Fw(Lemma)37 b(4.56)49 -b Fu(F)-8 b(or)32 b(ev)m(ery)i(statemen)m(t)f Fs(S)45 -b Fu(of)32 b Fw(While)f Fu(w)m(e)i(ha)m(v)m(e)h Ft(S)2501 -1749 y Fn(sos)2596 1734 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])33 b Ft(v)g(S)2949 1749 y Fn(ds)3020 1734 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(.)p 0 1854 V 0 2044 a -Fw(Pro)s(of:)37 b Fu(It)c(is)f(su\016cien)m(t)i(to)e(pro)m(v)m(e)i -(that)e(for)g(all)f(states)i Fs(s)41 b Fu(and)32 b Fs(s)2427 -2007 y Fi(0)269 2211 y Ft(h)o Fs(S)12 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b(\))653 2175 y Fi(\003)725 2211 y Fs(s)773 -2175 y Fi(0)829 2211 y Fu(implies)e Ft(S)1228 2226 y -Fn(ds)1299 2211 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q -Fs(s)40 b Fu(=)33 b Fs(s)1678 2175 y Fi(0)3348 2211 y -Fu(\(*\))0 2379 y(T)-8 b(o)33 b(do)f(so)h(w)m(e)g(shall)f(need)h(to)f -(establish)h(the)g(follo)m(wing)c(prop)s(ert)m(y)310 -2538 y Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(\))f -Fs(s)775 2502 y Fi(0)1109 2538 y Fu(implies)80 b Ft(S)1558 -2553 y Fn(ds)1629 2538 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fs(s)2008 2502 y Fi(0)310 2706 -y Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(\))f(h)p -Fs(S)833 2670 y Fi(0)856 2706 y Fu(,)g Fs(s)963 2670 -y Fi(0)987 2706 y Ft(i)83 b Fu(implies)d Ft(S)1558 2721 -y Fn(ds)1629 2706 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Ft(S)2028 2721 y Fn(ds)2099 -2706 y Fu([)-17 b([)q Fs(S)2204 2670 y Fi(0)2227 2706 -y Fu(])g(])p Fs(s)2312 2670 y Fi(0)3299 2623 y Fu(\(**\))0 -2872 y(Assuming)39 b(that)g(\(**\))g(holds)h(the)g(pro)s(of)e(of)h -(\(*\))h(is)f(a)g(straigh)m(tforw)m(ard)g(induction)f(on)i(the)0 -2992 y(length)32 b(k)h(of)f(the)h(deriv)-5 b(ation)31 -b(sequence)k Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(\))1908 2956 y Fn(k)1981 2992 y Fs(s)2029 2956 y Fi(0)2085 -2992 y Fu(\(see)i(Section)e(2.2\).)146 3113 y(W)-8 b(e)40 -b(no)m(w)g(turn)f(to)g(the)g(pro)s(of)g(of)f(\(**\))h(and)g(for)g(this) -g(w)m(e)h(shall)e(use)i(induction)e(on)h(the)0 3233 y(shap)s(e)33 -b(of)f(the)h(deriv)-5 b(ation)31 b(tree)i(for)f Ft(h)p -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(\))g Fs(s)1820 -3197 y Fi(0)1876 3233 y Fu(or)g Ft(h)p Fs(S)12 b Fu(,)32 -b Fs(s)8 b Ft(i)33 b(\))f(h)p Fs(S)2518 3197 y Fi(0)2541 -3233 y Fu(,)g Fs(s)2648 3197 y Fi(0)2672 3233 y Ft(i)o -Fu(.)0 3401 y Fw(The)h(case)g Fu([ass)608 3416 y Fn(sos)704 -3401 y Fu(]:)44 b(W)-8 b(e)32 b(ha)m(v)m(e)244 3590 y -Ft(h)p Fs(x)44 b Fu(:=)32 b Fs(a)7 b Fu(,)33 b Fs(s)8 -b Ft(i)33 b(\))f Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p Fu([)-17 -b([)q Fs(a)7 b Fu(])-17 b(])p Fs(s)8 b Fu(])0 3779 y(and)33 -b(since)g Ft(S)496 3794 y Fn(ds)568 3779 y Fu([)-17 b([)p -Fs(x)45 b Fu(:=)32 b Fs(a)7 b Fu(])-17 b(])q Fs(s)41 -b Fu(=)32 b Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o Fu([)-17 -b([)q Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])32 b(the)h(result)g(follo)m -(ws.)0 3947 y Fw(The)g(case)g Fu([skip)654 3962 y Fn(sos)749 -3947 y Fu(]:)44 b(Analogous.)0 4114 y Fw(The)33 b(case)g -Fu([comp)723 4078 y Fn(1)711 4139 y(sos)806 4114 y Fu(]:)43 -b(Assume)34 b(that)244 4304 y Ft(h)p Fs(S)350 4319 y -Fn(1)389 4304 y Fu(;)p Fs(S)483 4319 y Fn(2)522 4304 -y Fu(,)f Fs(s)8 b Ft(i)32 b(\))g(h)p Fs(S)939 4268 y -Fi(0)939 4328 y Fn(1)978 4304 y Fu(;)p Fs(S)1072 4319 -y Fn(2)1112 4304 y Fu(,)g Fs(s)1219 4268 y Fi(0)1243 -4304 y Ft(i)0 4493 y Fu(b)s(ecause)39 b Ft(h)o Fs(S)471 -4508 y Fn(1)511 4493 y Fu(,)f Fs(s)8 b Ft(i)37 b(\))g(h)o -Fs(S)942 4457 y Fi(0)942 4517 y Fn(1)982 4493 y Fu(,)h -Fs(s)1095 4457 y Fi(0)1118 4493 y Ft(i)p Fu(.)57 b(Then)39 -b(the)e(induction)g(h)m(yp)s(othesis)h(applied)e(to)h(the)g(latter)0 -4613 y(transition)31 b(giv)m(es)i Ft(S)752 4628 y Fn(ds)823 -4613 y Fu([)-17 b([)q Fs(S)928 4628 y Fn(1)967 4613 y -Fu(])g(])p Fs(s)41 b Fu(=)32 b Ft(S)1261 4628 y Fn(ds)1332 -4613 y Fu([)-17 b([)q Fs(S)1437 4577 y Fi(0)1437 4638 -y Fn(1)1476 4613 y Fu(])g(])q Fs(s)1562 4577 y Fi(0)1618 -4613 y Fu(and)32 b(w)m(e)i(get)244 4802 y Ft(S)312 4817 -y Fn(ds)383 4802 y Fu([)-17 b([)p Fs(S)487 4817 y Fn(1)527 -4802 y Fu(;)p Fs(S)621 4817 y Fn(2)660 4802 y Fu(])g(])33 -b Fs(s)41 b Fu(=)32 b Ft(S)987 4817 y Fn(ds)1058 4802 -y Fu([)-17 b([)q Fs(S)1163 4817 y Fn(2)1202 4802 y Fu(])g(])q(\()p -Ft(S)1345 4817 y Fn(ds)1417 4802 y Fu([)g([)p Fs(S)1521 -4817 y Fn(1)1560 4802 y Fu(])g(])q Fs(s)8 b Fu(\))811 -4970 y(=)32 b Ft(S)987 4985 y Fn(ds)1058 4970 y Fu([)-17 -b([)q Fs(S)1163 4985 y Fn(2)1202 4970 y Fu(])g(])q(\()p -Ft(S)1345 4985 y Fn(ds)1417 4970 y Fu([)g([)p Fs(S)1521 -4934 y Fi(0)1521 4995 y Fn(1)1560 4970 y Fu(])g(])q Fs(s)1646 -4934 y Fi(0)1669 4970 y Fu(\))811 5138 y(=)32 b Ft(S)987 -5153 y Fn(ds)1058 5138 y Fu([)-17 b([)q Fs(S)1163 5102 -y Fi(0)1163 5162 y Fn(1)1202 5138 y Fu(;)p Fs(S)1296 -5153 y Fn(2)1335 5138 y Fu(])g(])q Fs(s)1421 5102 y Fi(0)0 -5327 y Fu(as)33 b(required.)0 5494 y Fw(The)g(case)g -Fu([comp)723 5458 y Fn(2)711 5519 y(sos)806 5494 y Fu(]:)43 -b(Assume)34 b(that)p eop -%%Page: 114 124 -114 123 bop 251 130 a Fw(114)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Ft(h)p Fs(S)633 -530 y Fn(1)672 515 y Fu(;)p Fs(S)766 530 y Fn(2)806 515 -y Fu(,)c Fs(s)8 b Ft(i)33 b(\))f(h)p Fs(S)1223 530 y -Fn(2)1262 515 y Fu(,)g Fs(s)1369 479 y Fi(0)1393 515 -y Ft(i)283 747 y Fu(b)s(ecause)44 b Ft(h)p Fs(S)760 762 -y Fn(1)799 747 y Fu(,)g Fs(s)8 b Ft(i\))42 b Fs(s)1147 -711 y Fi(0)1170 747 y Fu(.)72 b(Then)43 b(the)f(induction)f(h)m(yp)s -(othesis)i(applied)e(to)h(that)f(transition)283 867 y(giv)m(es)33 -b Ft(S)590 882 y Fn(ds)661 867 y Fu([)-17 b([)q Fs(S)766 -882 y Fn(1)805 867 y Fu(])g(])q Fs(s)41 b Fu(=)32 b Fs(s)1080 -831 y Fi(0)1136 867 y Fu(and)g(w)m(e)i(get)527 1099 y -Ft(S)595 1114 y Fn(ds)666 1099 y Fu([)-17 b([)q Fs(S)771 -1114 y Fn(1)810 1099 y Fu(;)p Fs(S)904 1114 y Fn(2)944 -1099 y Fu(])g(])p Fs(s)41 b Fu(=)32 b Ft(S)1238 1114 -y Fn(ds)1309 1099 y Fu([)-17 b([)q Fs(S)1414 1114 y Fn(2)1453 -1099 y Fu(])g(])q(\()p Ft(S)1596 1114 y Fn(ds)1668 1099 -y Fu([)g([)p Fs(S)1772 1114 y Fn(1)1811 1099 y Fu(])g(])q -Fs(s)8 b Fu(\))32 b(=)h Ft(S)2144 1114 y Fn(ds)2215 1099 -y Fu([)-17 b([)p Fs(S)2319 1114 y Fn(2)2359 1099 y Fu(])g(])p -Fs(s)2444 1063 y Fi(0)283 1331 y Fu(where)40 b(the)g(\014rst)f(equalit) -m(y)f(comes)h(from)e(the)i(de\014nition)f(of)g Ft(S)2659 -1346 y Fn(ds)2769 1331 y Fu(and)h(w)m(e)g(just)h(argued)e(for)283 -1451 y(the)33 b(second)h(equalit)m(y)-8 b(.)43 b(This)33 -b(pro)m(v)m(es)h(the)f(result.)283 1619 y Fw(The)g(case)g -Fu([if)836 1582 y Fn(tt)824 1643 y(sos)919 1619 y Fu(]:)43 -b(Assume)34 b(that)527 1850 y Ft(h)p Fr(if)f Fs(b)39 -b Fr(then)33 b Fs(S)1089 1865 y Fn(1)1161 1850 y Fr(else)h -Fs(S)1466 1865 y Fn(2)1505 1850 y Fu(,)e Fs(s)8 b Ft(i)33 -b(\))f(h)p Fs(S)1922 1865 y Fn(1)1961 1850 y Fu(,)h Fs(s)8 -b Ft(i)283 2082 y Fu(b)s(ecause)34 b Ft(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])33 b Fs(s)41 b Fu(=)32 b -Fw(tt)p Fu(.)43 b(Then)552 2249 y Ft(S)620 2264 y Fn(ds)691 -2249 y Fu([)-17 b([)q Fr(if)33 b Fs(b)38 b Fr(then)c -Fs(S)1252 2264 y Fn(1)1324 2249 y Fr(else)f Fs(S)1628 -2264 y Fn(2)1667 2249 y Fu(])-17 b(])q Fs(s)41 b Fu(=)32 -b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 -b Ft(S)2455 2264 y Fn(ds)2526 2249 y Fu([)-17 b([)p Fs(S)2630 -2264 y Fn(1)2670 2249 y Fu(])g(],)33 b Ft(S)2835 2264 -y Fn(ds)2906 2249 y Fu([)-17 b([)p Fs(S)3010 2264 y Fn(2)3050 -2249 y Fu(])g(]\))p Fs(s)41 b Fu(=)32 b Ft(S)3382 2264 -y Fn(ds)3453 2249 y Fu([)-17 b([)q Fs(S)3558 2264 y Fn(1)3597 -2249 y Fu(])g(])q Fs(s)283 2417 y Fu(as)33 b(required.)283 -2585 y Fw(The)g(case)g Fu([if)836 2549 y Fn(\013)824 -2609 y(sos)919 2585 y Fu(]:)43 b(Analogous.)283 2752 -y Fw(The)33 b(case)g Fu([while)989 2767 y Fn(sos)1084 -2752 y Fu(]:)43 b(Assume)34 b(that)527 2984 y Ft(h)p -Fr(while)g Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b(\))g(h)p Fr(if)h Fs(b)39 b Fr(then)33 b Fu(\()p -Fs(S)12 b Fu(;)33 b Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)12 -b Fu(\))32 b Fr(else)i(skip)p Fu(,)f Fs(s)8 b Ft(i)283 -3216 y Fu(F)-8 b(rom)41 b(the)i(de\014nition)f(of)g Ft(S)1359 -3231 y Fn(ds)1473 3216 y Fu(w)m(e)h(ha)m(v)m(e)h Ft(S)1929 -3231 y Fn(ds)2000 3216 y Fu([)-17 b([)q Fr(while)43 b -Fs(b)49 b Fr(do)42 b Fs(S)12 b Fu(])-17 b(])43 b(=)f(FIX)h -Fs(F)55 b Fu(where)44 b Fs(F)55 b(g)c Fu(=)283 3336 y(cond\()p -Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fs(g)41 -b Ft(\016)33 b(S)1012 3351 y Fn(ds)1084 3336 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\).)43 b(W)-8 -b(e)33 b(therefore)g(get)527 3568 y Ft(S)595 3583 y Fn(ds)666 -3568 y Fu([)-17 b([)q Fr(while)34 b Fs(b)k Fr(do)33 b -Fs(S)12 b Fu(])-17 b(])q(=)32 b(\(FIX)h Fs(F)13 b Fu(\))1316 -3735 y(=)32 b Fs(F)46 b Fu(\(FIX)32 b Fs(F)13 b Fu(\))1316 -3903 y(=)32 b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b -Fu(])-17 b(],)33 b Ft(S)1985 3918 y Fn(ds)2056 3903 y -Fu([)-17 b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 -b Fu(])-17 b(])33 b Ft(\016)f(S)2888 3918 y Fn(ds)2959 -3903 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 b(id\))1316 -4070 y(=)f(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b Ft(S)1985 4085 y Fn(ds)2056 4070 y Fu([)-17 -b([)p Fs(S)12 b Fu(;)33 b Fr(while)h Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(])-17 b(])q(,)32 b Ft(S)2959 4085 y Fn(ds)3030 -4070 y Fu([)-17 b([)q Fr(skip)p Fu(])g(])q(\))1316 4238 -y(=)32 b Ft(S)1492 4253 y Fn(ds)1563 4238 y Fu([)-17 -b([)q Fr(if)33 b Fs(b)38 b Fr(then)c Fu(\()p Fs(S)12 -b Fu(;)32 b Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\))33 -b Fr(else)g(skip)p Fu(])-17 b(])283 4470 y(as)33 b(required.)44 -b(This)33 b(completes)f(the)h(pro)s(of)f(of)g(\(**\).)1450 -b Fh(2)430 4679 y Fu(Note)39 b(that)g(\(*\))g(do)s(es)g -Fs(not)49 b Fu(imply)37 b(that)i Ft(S)2032 4694 y Fn(sos)2127 -4679 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])40 b(=)f -Ft(S)2491 4694 y Fn(ds)2562 4679 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])40 b(as)f(w)m(e)h(ha)m(v)m(e)h(only)d(pro)m(v)m(ed)283 -4799 y(that)26 b Fs(if)46 b Ft(S)662 4814 y Fn(sos)757 -4799 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])p Fs(s)33 -b Ft(6)p Fu(=)26 b(undef)p 1074 4812 236 4 v 26 w Fs(then)33 -b Ft(S)1617 4814 y Fn(sos)1713 4799 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])q Fs(s)33 b Fu(=)25 b Ft(S)2097 -4814 y Fn(ds)2168 4799 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])p Fs(s)8 b Fu(.)42 b(Still)23 b(there)j(is)f(the)h(p)s(ossibilit)m -(y)d(that)283 4919 y Ft(S)351 4934 y Fn(ds)422 4919 y -Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])28 b(ma)m(y)f(b)s(e)h(de\014ned)h -(for)e(more)f(argumen)m(ts)i(than)f Ft(S)2399 4934 y -Fn(sos)2494 4919 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(].)42 b(Ho)m(w)m(ev)m(er)30 b(this)d(is)g(ruled)g(out)283 -5040 y(b)m(y)34 b(the)f(follo)m(wing)d(lemma:)p 283 5166 -3473 5 v 283 5374 a Fw(Lemma)38 b(4.57)49 b Fu(F)-8 b(or)31 -b(ev)m(ery)k(statemen)m(t)e Fs(S)44 b Fu(of)32 b Fw(While)f -Fu(w)m(e)j(ha)m(v)m(e)g Ft(S)2785 5389 y Fn(ds)2856 5374 -y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])33 b Ft(v)g(S)3208 -5389 y Fn(sos)3303 5374 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(].)p 283 5494 V eop -%%Page: 115 125 -115 124 bop 0 130 a Fw(4.4)112 b(An)38 b(equiv)-6 b(alence)37 -b(result)1991 b(115)p 0 193 3473 4 v 0 515 a(Pro)s(of:)37 -b Fu(W)-8 b(e)33 b(pro)s(ceed)h(b)m(y)f(structural)f(induction)g(on)h -(the)g(statemen)m(t)g Fs(S)12 b Fu(.)0 683 y Fw(The)38 -b(case)g Fs(x)50 b Fu(:=)37 b Fs(a)7 b Fu(:)54 b(Clearly)37 -b Ft(S)1251 698 y Fn(ds)1322 683 y Fu([)-17 b([)q Fs(x)49 -b Fu(:=)38 b Fs(a)7 b Fu(])-17 b(])q Fs(s)46 b Fu(=)37 -b Ft(S)1957 698 y Fn(sos)2052 683 y Fu([)-17 b([)q Fs(x)49 -b Fu(:=)38 b Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(.)59 -b(Note)37 b(that)h(this)f(means)0 803 y(that)32 b Ft(S)279 -818 y Fn(sos)407 803 y Fu(satis\014es)h(the)g(clause)g(de\014ning)f -Ft(S)1658 818 y Fn(ds)1762 803 y Fu(in)g(T)-8 b(able)32 -b(4.1.)0 971 y Fw(The)h(case)g Fr(skip)p Fu(:)45 b(Clearly)31 -b Ft(S)1138 986 y Fn(ds)1209 971 y Fu([)-17 b([)q Fr(skip)p -Fu(])g(])r Fs(s)40 b Fu(=)32 b Ft(S)1746 986 y Fn(sos)1841 -971 y Fu([)-17 b([)q Fr(skip)p Fu(])g(])r Fs(s)8 b Fu(.)0 -1139 y Fw(The)28 b(case)h Fs(S)514 1154 y Fn(1)582 1139 -y Fu(;)g Fs(S)705 1154 y Fn(2)745 1139 y Fu(:)41 b(Recall)26 -b(that)i Ft(\016)g Fu(is)g(monotone)f(in)h(b)s(oth)g(argumen)m(ts)g -(\(Lemma)f(4.45)g(and)0 1259 y(Exercise)34 b(4.46\).)43 -b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)244 1456 y Ft(S)312 -1471 y Fn(ds)383 1456 y Fu([)-17 b([)p Fs(S)487 1471 -y Fn(1)559 1456 y Fu(;)33 b Fs(S)686 1471 y Fn(2)725 -1456 y Fu(])-17 b(])33 b(=)g Ft(S)971 1471 y Fn(ds)1043 -1456 y Fu([)-17 b([)p Fs(S)1147 1471 y Fn(2)1186 1456 -y Fu(])g(])34 b Ft(\016)e(S)1407 1471 y Fn(ds)1478 1456 -y Fu([)-17 b([)p Fs(S)1582 1471 y Fn(1)1622 1456 y Fu(])g(])795 -1623 y Ft(v)32 b(S)971 1638 y Fn(sos)1067 1623 y Fu([)-17 -b([)p Fs(S)1171 1638 y Fn(2)1210 1623 y Fu(])g(])33 b -Ft(\016)g(S)1431 1638 y Fn(sos)1526 1623 y Fu([)-17 b([)p -Fs(S)1630 1638 y Fn(1)1670 1623 y Fu(])g(])0 1820 y(b)s(ecause)39 -b(the)g(induction)e(h)m(yp)s(othesis)i(applied)e(to)h -Fs(S)2004 1835 y Fn(1)2081 1820 y Fu(and)g Fs(S)2343 -1835 y Fn(2)2421 1820 y Fu(giv)m(es)g Ft(S)2733 1835 -y Fn(ds)2804 1820 y Fu([)-17 b([)q Fs(S)2909 1835 y Fn(1)2948 -1820 y Fu(])g(])33 b Ft(v)g(S)3196 1835 y Fn(sos)3291 -1820 y Fu([)-17 b([)q Fs(S)3396 1835 y Fn(1)3435 1820 -y Fu(])g(])0 1940 y(and)44 b Ft(S)269 1955 y Fn(ds)340 -1940 y Fu([)-17 b([)q Fs(S)445 1955 y Fn(2)484 1940 y -Fu(])g(])33 b Ft(v)g(S)732 1955 y Fn(sos)827 1940 y Fu([)-17 -b([)p Fs(S)931 1955 y Fn(2)971 1940 y Fu(])g(].)78 b(F)-8 -b(urthermore,)46 b(Exercise)f(2.21)f(giv)m(es)g(that)g(if)f -Ft(h)o Fs(S)3011 1955 y Fn(1)3051 1940 y Fu(,)32 b Fs(s)8 -b Ft(i)32 b(\))3329 1904 y Fi(\003)3401 1940 y Fs(s)3449 -1904 y Fi(0)0 2060 y Fu(then)h Ft(h)p Fs(S)328 2075 y -Fn(1)400 2060 y Fu(;)f Fs(S)526 2075 y Fn(2)566 2060 -y Fu(,)g Fs(s)8 b Ft(i)33 b(\))844 2024 y Fi(\003)916 -2060 y Ft(h)p Fs(S)1022 2075 y Fn(2)1061 2060 y Fu(,)g -Fs(s)1169 2024 y Fi(0)1192 2060 y Ft(i)f Fu(and)h(hence)244 -2257 y Ft(S)312 2272 y Fn(sos)407 2257 y Fu([)-17 b([)p -Fs(S)511 2272 y Fn(2)551 2257 y Fu(])g(])33 b Ft(\016)f(S)771 -2272 y Fn(sos)866 2257 y Fu([)-17 b([)q Fs(S)971 2272 -y Fn(1)1010 2257 y Fu(])g(])33 b Ft(v)g(S)1258 2272 y -Fn(sos)1353 2257 y Fu([)-17 b([)p Fs(S)1457 2272 y Fn(1)1529 -2257 y Fu(;)33 b Fs(S)1656 2272 y Fn(2)1695 2257 y Fu(])-17 -b(])0 2453 y(and)38 b(this)f(pro)m(v)m(es)i(the)f(result.)58 -b(Note)38 b(that)f(in)g(this)g(case)h Ft(S)2243 2468 -y Fn(sos)2376 2453 y Fu(ful\014ls)e(a)h(w)m(eak)m(er)j(v)m(ersion)e(of) -0 2574 y(the)33 b(clause)g(de\014ning)f Ft(S)892 2589 -y Fn(ds)996 2574 y Fu(in)g(T)-8 b(able)32 b(4.1.)0 2741 -y Fw(The)d(case)h Fr(if)f Fs(b)35 b Fr(then)30 b Fs(S)961 -2756 y Fn(1)1030 2741 y Fr(else)g Fs(S)1331 2756 y Fn(2)1370 -2741 y Fu(:)42 b(Recall)27 b(that)i(`cond')g(is)g(monotone)f(in)g(its)h -(second)h(and)0 2862 y(third)i(argumen)m(t)g(\(Lemma)f(4.43)h(and)h -(Exercise)h(4.44\).)43 b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)244 -3058 y Ft(S)312 3073 y Fn(ds)383 3058 y Fu([)-17 b([)p -Fr(if)34 b Fs(b)k Fr(then)c Fs(S)944 3073 y Fn(1)1015 -3058 y Fr(else)g Fs(S)1320 3073 y Fn(2)1359 3058 y Fu(])-17 -b(])33 b(=)g(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 b -Fu(])-17 b(])q(,)32 b Ft(S)2098 3073 y Fn(ds)2169 3058 -y Fu([)-17 b([)q Fs(S)2274 3073 y Fn(1)2313 3058 y Fu(])g(])q(,)32 -b Ft(S)2478 3073 y Fn(ds)2549 3058 y Fu([)-17 b([)q Fs(S)2654 -3073 y Fn(2)2693 3058 y Fu(])g(])q(\))1429 3226 y Ft(v)32 -b Fu(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(,)32 b Ft(S)2098 3241 y Fn(sos)2193 3226 y Fu([)-17 -b([)q Fs(S)2298 3241 y Fn(1)2337 3226 y Fu(])g(])q(,)32 -b Ft(S)2502 3241 y Fn(sos)2597 3226 y Fu([)-17 b([)q -Fs(S)2702 3241 y Fn(2)2741 3226 y Fu(])g(])q(\))0 3422 -y(b)s(ecause)39 b(the)g(induction)e(h)m(yp)s(othesis)i(applied)e(to)h -Fs(S)2004 3437 y Fn(1)2081 3422 y Fu(and)g Fs(S)2343 -3437 y Fn(2)2421 3422 y Fu(giv)m(es)g Ft(S)2733 3437 -y Fn(ds)2804 3422 y Fu([)-17 b([)q Fs(S)2909 3437 y Fn(1)2948 -3422 y Fu(])g(])33 b Ft(v)g(S)3196 3437 y Fn(sos)3291 -3422 y Fu([)-17 b([)q Fs(S)3396 3437 y Fn(1)3435 3422 -y Fu(])g(])0 3543 y(and)33 b Ft(S)257 3558 y Fn(ds)329 -3543 y Fu([)-17 b([)p Fs(S)433 3558 y Fn(2)473 3543 y -Fu(])g(])33 b Ft(v)g(S)720 3558 y Fn(sos)816 3543 y Fu([)-17 -b([)p Fs(S)920 3558 y Fn(2)959 3543 y Fu(])g(])q(.)43 -b(F)-8 b(urthermore,)33 b(it)e(follo)m(ws)g(from)h([if)2405 -3507 y Fn(tt)2393 3568 y(sos)2487 3543 y Fu(])g(and)h([if)2833 -3507 y Fn(\013)2821 3568 y(sos)2915 3543 y Fu(])g(that)244 -3739 y Ft(S)312 3754 y Fn(sos)407 3739 y Fu([)-17 b([)p -Fr(if)33 b Fs(b)39 b Fr(then)33 b Fs(S)967 3754 y Fn(1)1039 -3739 y Fr(else)h Fs(S)1344 3754 y Fn(2)1383 3739 y Fu(])-17 -b(])q Fs(s)40 b Fu(=)33 b Ft(S)1677 3754 y Fn(sos)1773 -3739 y Fu([)-17 b([)p Fs(S)1877 3754 y Fn(1)1916 3739 -y Fu(])g(])q Fs(s)73 b Fu(if)32 b Ft(B)s Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(tt)244 -3907 y Ft(S)312 3922 y Fn(sos)407 3907 y Fu([)-17 b([)p -Fr(if)33 b Fs(b)39 b Fr(then)33 b Fs(S)967 3922 y Fn(1)1039 -3907 y Fr(else)h Fs(S)1344 3922 y Fn(2)1383 3907 y Fu(])-17 -b(])q Fs(s)40 b Fu(=)33 b Ft(S)1677 3922 y Fn(sos)1773 -3907 y Fu([)-17 b([)p Fs(S)1877 3922 y Fn(2)1916 3907 -y Fu(])g(])q Fs(s)73 b Fu(if)32 b Ft(B)s Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])p Fs(s)41 b Fu(=)32 b Fw(\013)0 -4104 y Fu(so)h(that)244 4300 y(cond\()p Ft(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)33 b Ft(S)804 4315 y -Fn(sos)899 4300 y Fu([)-17 b([)q Fs(S)1004 4315 y Fn(1)1043 -4300 y Fu(])g(])q(,)32 b Ft(S)1208 4315 y Fn(sos)1303 -4300 y Fu([)-17 b([)q Fs(S)1408 4315 y Fn(2)1447 4300 -y Fu(])g(])q(\))32 b(=)h Ft(S)1731 4315 y Fn(sos)1827 -4300 y Fu([)-17 b([)p Fr(if)33 b Fs(b)39 b Fr(then)33 -b Fs(S)2387 4315 y Fn(1)2459 4300 y Fr(else)h Fs(S)2764 -4315 y Fn(2)2803 4300 y Fu(])-17 b(])0 4497 y(and)39 -b(this)g(pro)m(v)m(es)i(the)f(result.)63 b(Note)39 b(that)g(in)g(this)f -(case)i Ft(S)2263 4512 y Fn(sos)2397 4497 y Fu(ful\014ls)e(the)i -(clause)f(de\014ning)0 4617 y Ft(S)68 4632 y Fn(ds)172 -4617 y Fu(in)31 b(T)-8 b(able)33 b(4.1.)0 4785 y Fw(The)g(case)g -Fr(while)h Fs(b)k Fr(do)33 b Fs(S)12 b Fu(:)33 b(W)-8 -b(e)33 b(ha)m(v)m(e)244 4981 y Ft(S)312 4996 y Fn(ds)383 -4981 y Fu([)-17 b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(])-17 b(])33 b(=)f(FIX)h Fs(F)0 5178 y -Fu(where)i Fs(F)47 b(g)42 b Fu(=)34 b(cond\()p Ft(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q(,)34 b Fs(g)42 -b Ft(\016)34 b(S)1323 5193 y Fn(ds)1395 5178 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)34 b(id\))f(and)g(w)m(e)i(recall)e -(that)g Fs(F)47 b Fu(is)33 b(con)m(tin)m(uous.)48 b(It)34 -b(is)0 5298 y(su\016cien)m(t)g(to)e(pro)m(v)m(e)i(that)244 -5494 y Fs(F)13 b Fu(\()p Fs(S)426 5509 y Fn(sos)521 5494 -y Fu([)-17 b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 -b Fu(])-17 b(]\))33 b Ft(v)g Fs(S)1418 5509 y Fn(sos)1512 -5494 y Fu([)-17 b([)q Fr(while)34 b Fs(b)k Fr(do)33 b -Fs(S)12 b Fu(])-17 b(])p eop -%%Page: 116 126 -116 125 bop 251 130 a Fw(116)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(b)s(ecause)g(then)f -(Exercise)h(4.40)e(giv)m(es)h(FIX)f Fs(F)47 b Ft(v)35 -b Fs(S)2201 530 y Fn(sos)2296 515 y Fu([)-17 b([)q Fr(while)35 -b Fs(b)41 b Fr(do)34 b Fs(S)12 b Fu(])-17 b(])35 b(as)g(required.)49 -b(F)-8 b(rom)283 636 y(Exercise)34 b(2.21)e(w)m(e)i(get)602 -795 y Ft(S)670 810 y Fn(sos)765 795 y Fu([)-17 b([)q -Fr(while)33 b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])101 b(=)f(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b -Fu(])-17 b(],)33 b Ft(S)2251 810 y Fn(sos)2347 795 y -Fu([)-17 b([)p Fs(S)45 b Fu(;)32 b Fr(while)i Fs(b)k -Fr(do)33 b Fs(S)12 b Fu(])-17 b(])q(,)33 b(id\))1514 -963 y Ft(w)100 b Fu(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(],)33 b Ft(S)2251 978 y Fn(sos)2347 963 -y Fu([)-17 b([)p Fr(while)34 b Fs(b)k Fr(do)c Fs(S)12 -b Fu(])-17 b(])32 b Ft(\016)h(S)3179 978 y Fn(sos)3274 -963 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))283 -1129 y(The)h(induction)e(h)m(yp)s(othesis)i(applied)d(to)i -Fs(S)43 b Fu(giv)m(es)32 b Ft(S)2259 1144 y Fn(ds)2330 -1129 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])32 b Ft(v)g(S)2681 -1144 y Fn(sos)2776 1129 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])32 b(so)g(using)f(the)h(mono-)283 1249 y(tonicit)m(y)g(of)g -Ft(\016)h Fu(and)f(`cond')h(w)m(e)h(get)527 1453 y Ft(S)595 -1468 y Fn(sos)690 1453 y Fu([)-17 b([)q Fr(while)34 b -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b Ft(w)g -Fu(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 -b Ft(S)2043 1468 y Fn(sos)2138 1453 y Fu([)-17 b([)p -Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])33 b Ft(\016)f(S)2970 1468 y Fn(sos)3065 1453 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))1372 1620 -y Ft(w)h Fu(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b Ft(S)2043 1635 y Fn(sos)2138 1620 y Fu([)-17 -b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])33 b Ft(\016)f(S)2970 1635 y Fn(ds)3041 1620 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)33 b(id\))1372 1788 -y(=)h Fs(F)13 b Fu(\()p Ft(S)1665 1803 y Fn(sos)1760 -1788 y Fu([)-17 b([)q Fr(while)33 b Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(])-17 b(]\))283 1991 y(Note)37 b(that)e(in)h(this)f -(case)i Ft(S)1326 2006 y Fn(sos)1457 1991 y Fu(also)e(ful\014ls)g(a)g -(w)m(eak)m(er)j(v)m(ersion)f(of)e(the)i(clause)f(de\014ning)g -Ft(S)3685 2006 y Fn(ds)283 2112 y Fu(in)c(T)-8 b(able)33 -b(4.1.)2863 b Fh(2)430 2315 y Fu(The)33 b(k)m(ey)h(tec)m(hnique)g(used) -g(in)e(the)h(pro)s(of)f(can)h(b)s(e)f(summarized)g(as)h(follo)m(ws:)p -283 2393 3470 4 v 283 2410 V 281 2618 4 208 v 298 2618 -V 1371 2539 a Fw(Pro)s(of)f(Summary)h(for)f(While)p Fu(:)p -3735 2618 V 3752 2618 V 281 2825 V 298 2825 V 402 2746 -a Fw(Equiv)-6 b(alence)31 b(of)i(Op)s(erational)f(Seman)m(tics)g(and)h -(Denotational)f(Seman)m(tics)p 3735 2825 V 3752 2825 -V 283 2829 3470 4 v 281 4290 4 1461 v 298 4290 V 350 -2994 a Fu(1:)143 b(Pro)m(v)m(e)23 b(that)g Ft(S)1102 -3009 y Fn(sos)1197 2994 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])23 b Ft(v)f(S)1529 3009 y Fn(ds)1600 2994 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])23 b(b)m(y)g(\014rst)g(using)f -Fs(induction)j(on)g(the)g(shap)-5 b(e)25 b(of)g(deriva-)569 -3114 y(tion)34 b(tr)-5 b(e)g(es)41 b Fu(to)32 b(sho)m(w)i(that)714 -3318 y Ft(\017)49 b Fu(if)d(a)h(statemen)m(t)h(is)f(executed)i -Fs(one)f(step)54 b Fu(in)46 b(the)i(structural)f(op)s(erational)813 -3438 y(seman)m(tics)f(and)h(do)s(es)g(not)g(terminate)e(then)i(this)f -(do)s(es)h(not)g(c)m(hange)g(the)813 3559 y(meaning)31 -b(in)h(the)h(denotational)d(seman)m(tics,)j(and)714 3762 -y Ft(\017)49 b Fu(if)d(a)h(statemen)m(t)h(is)f(executed)i -Fs(one)f(step)54 b Fu(in)46 b(the)i(structural)f(op)s(erational)813 -3882 y(seman)m(tics)39 b(and)f(do)s(es)i(terminate,)f(then)g(the)h -(same)e(result)h(is)f(obtained)h(in)813 4003 y(the)33 -b(denotational)d(seman)m(tics.)569 4206 y(and)i(secondly)i(b)m(y)f -(using)g Fs(induction)h(on)g(the)h(length)g(of)f(derivation)g(se)-5 -b(quenc)g(es)p Fu(.)p 3735 4290 V 3752 4290 V 281 5391 -4 1102 v 298 5391 V 350 4374 a(2:)143 b(Pro)m(v)m(e)34 -b(that)e Ft(S)1123 4389 y Fn(ds)1194 4374 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])33 b Ft(v)g(S)1546 4389 -y Fn(sos)1642 4374 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 -b(])33 b(b)m(y)h(sho)m(wing)e(that)714 4577 y Ft(\017)49 -b(S)880 4592 y Fn(sos)998 4577 y Fu(ful\014ls)21 b(sligh)m(tly)f(w)m -(eak)m(er)25 b(v)m(ersions)e(of)f(the)g(clauses)h(de\014ning)f -Ft(S)3254 4592 y Fn(ds)3348 4577 y Fu(in)f(T)-8 b(able)813 -4698 y(4.1,)32 b(that)g(is)g(if)1027 4901 y Ft(S)1095 -4916 y Fn(ds)1166 4901 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])33 b(=)f(\011\()p Ft(\001)17 b(\001)g(\001)31 b(S)1779 -4916 y Fn(ds)1851 4901 y Fu([)-17 b([)p Fs(S)1955 4865 -y Fi(0)1978 4901 y Fu(])g(])34 b Ft(\001)17 b(\001)g(\001)n -Fu(\))813 5104 y(then)33 b Ft(S)1103 5119 y Fn(sos)1198 -5104 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])33 b Ft(w)g -Fu(\011\()p Ft(\001)17 b(\001)g(\001)31 b(S)1813 5119 -y Fn(sos)1908 5104 y Fu([)-17 b([)p Fs(S)2012 5068 y -Fi(0)2035 5104 y Fu(])g(])34 b Ft(\001)17 b(\001)g(\001)n -Fu(\))569 5308 y(A)32 b(pro)s(of)g(b)m(y)i Fs(structur)-5 -b(al)35 b(induction)40 b Fu(then)33 b(giv)m(es)g(that)f -Ft(S)2684 5323 y Fn(ds)2755 5308 y Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])33 b Ft(v)g(S)3108 5323 y Fn(sos)3203 -5308 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q(.)p 3735 -5391 V 3752 5391 V 283 5395 3470 4 v 283 5411 V eop -%%Page: 117 127 -117 126 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(117)p 0 193 3473 4 v 0 515 a(Exercise)36 b(4.58)49 -b Fu(Giv)m(e)33 b(a)f(detailed)f(argumen)m(t)i(sho)m(wing)f(that)236 -683 y Ft(S)304 698 y Fn(sos)399 683 y Fu([)-17 b([)q -Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 -b Ft(w)g Fu(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b Ft(S)1751 698 y Fn(sos)1847 683 y Fu([)-17 -b([)p Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])33 b Ft(\016)g(S)2679 698 y Fn(sos)2774 683 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\).)276 b Fh(2)0 -861 y Fw(Exercise)36 b(4.59)49 b Fu(Extend)24 b(the)e(pro)s(of)g(of)f -(Theorem)i(4.55)e(so)h(that)g(it)f(applies)g(to)h(the)g(language)0 -981 y(when)34 b(augmen)m(ted)f(with)f Fr(repeat)i Fs(S)44 -b Fr(until)34 b Fs(b)6 b Fu(.)1619 b Fh(2)0 1159 y Fw(Exercise)36 -b(4.60)49 b Fu(Extend)24 b(the)e(pro)s(of)g(of)f(Theorem)i(4.55)e(so)h -(that)g(it)f(applies)g(to)h(the)g(language)0 1279 y(when)34 -b(augmen)m(ted)f(with)f Fr(for)h Fs(x)12 b Fu(:=)p Fs(a)1376 -1294 y Fn(1)1448 1279 y Fr(to)33 b Fs(a)1640 1294 y Fn(2)1712 -1279 y Fr(do)g Fs(S)12 b Fu(.)1457 b Fh(2)0 1457 y Fw(Exercise)36 -b(4.61)49 b Fu(Com)m(bining)31 b(the)i(results)f(of)g(Theorem)h(2.26)e -(and)i(Theorem)f(4.55)g(w)m(e)h(get)0 1577 y(that)h Ft(S)281 -1592 y Fn(ns)352 1577 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])35 b(=)f Ft(S)707 1592 y Fn(ds)778 1577 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])34 b(holds)h(for)e(ev)m(ery)k(statemen)m -(t)e Fs(S)46 b Fu(of)34 b Fw(While)p Fu(.)48 b(Giv)m(e)34 -b(a)g(direct)g(pro)s(of)0 1698 y(of)e(this)g(\(that)h(is)f(without)g -(using)g(the)h(t)m(w)m(o)g(theorems\).)1329 b Fh(2)0 -2024 y Fj(4.5)161 b(Extensions)52 b(of)i(While)0 2243 -y Fu(W)-8 b(e)23 b(shall)e(conclude)i(this)g(c)m(hapter)g(b)m(y)h -(considering)e(a)g(couple)h(of)f(extensions)i(of)e(the)h(language)0 -2363 y Fw(While)p Fu(.)88 b(The)49 b(extensions)h(ha)m(v)m(e)f(b)s(een) -g(c)m(hosen)g(so)f(as)h(to)e(illustrate)f(t)m(w)m(o)j(of)f(the)g(most)0 -2484 y(imp)s(ortan)m(t)31 b(concepts)j(of)e(denotational)f(seman)m -(tics:)145 2649 y Ft(\017)49 b Fs(lo)-5 b(c)g(ations)p -Fu(,)32 b(and)145 2840 y Ft(\017)49 b Fs(c)-5 b(ontinuations)p -Fu(.)0 3005 y(In)32 b(the)g(\014rst)g(case)g Fw(While)e -Fu(is)h(extended)j(with)d(blo)s(c)m(ks)h(and)g(pro)s(cedures)h(and)e -(in)g(the)h(second)0 3126 y(case)g(with)f(exceptions.)44 -b(In)31 b(b)s(oth)g(cases)i(w)m(e)f(shall)e(sho)m(w)i(ho)m(w)g(to)f(mo) -s(dify)e(the)j(seman)m(tics)f(of)0 3246 y(T)-8 b(able)32 -b(4.1.)0 3528 y Fp(The)44 b(concept)h(of)g(lo)t(cations)0 -3713 y Fu(W)-8 b(e)32 b(shall)e(\014rst)i(extend)h Fw(While)d -Fu(with)h(blo)s(c)m(ks)h(declaring)f(lo)s(cal)e(v)-5 -b(ariables)30 b(and)i(pro)s(cedures.)0 3833 y(The)i(new)f(language)e -(is)i(called)e Fw(Pro)s(c)h Fu(and)g(its)h(syn)m(tax)h(is)294 -3990 y Fs(S)188 b Fu(::=)100 b Fs(x)44 b Fu(:=)33 b Fs(a)40 -b Ft(j)32 b Fr(skip)h Ft(j)f Fs(S)1506 4005 y Fn(1)1578 -3990 y Fu(;)h Fs(S)1705 4005 y Fn(2)1777 3990 y Ft(j)f -Fr(if)h Fs(b)38 b Fr(then)c Fs(S)2360 4005 y Fn(1)2432 -3990 y Fr(else)f Fs(S)2736 4005 y Fn(2)588 4158 y Ft(j)151 -b Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)45 b Ft(j)32 b -Fr(begin)i Fs(D)1806 4173 y Fc(V)1899 4158 y Fs(D)1982 -4173 y Fc(P)2073 4158 y Fs(S)45 b Fr(end)33 b Ft(j)f -Fr(call)i Fs(p)294 4326 y(D)377 4341 y Fc(V)537 4326 -y Fu(::=)100 b Fr(var)33 b Fs(x)45 b Fu(:=)32 b Fs(a)7 -b Fu(;)33 b Fs(D)1378 4341 y Fc(V)1471 4326 y Ft(j)g -Fo(")294 4493 y Fs(D)377 4508 y Fc(P)537 4493 y Fu(::=)100 -b Fr(proc)34 b Fs(p)k Fr(is)33 b Fs(S)12 b Fu(;)32 b -Fs(D)1437 4508 y Fc(P)1529 4493 y Ft(j)g Fo(")0 4652 -y Fu(where)i Fs(D)365 4667 y Fc(V)459 4652 y Fu(and)f -Fs(D)732 4667 y Fc(P)823 4652 y Fu(are)g(meta-v)-5 b(ariables)31 -b(ranging)g(o)m(v)m(er)j(the)f(syn)m(tactic)h(categories)f -Fw(Dec)3415 4667 y Fn(V)0 4772 y Fu(of)c(v)-5 b(ariable)27 -b(declarations)h(and)i Fw(Dec)1383 4787 y Fn(P)1464 4772 -y Fu(of)f(pro)s(cedure)h(declarations,)f(resp)s(ectiv)m(ely)-8 -b(,)30 b(and)g Fs(p)35 b Fu(is)0 4893 y(a)c(meta-v)-5 -b(ariable)29 b(ranging)h(o)m(v)m(er)i(the)64 b(syn)m(tactic)32 -b(category)g Fw(Pname)f Fu(of)g(pro)s(cedure)h(names.)0 -5013 y(The)k(idea)f(is)f(that)h(v)-5 b(ariables)34 b(and)i(pro)s -(cedures)g(are)g(only)e(kno)m(wn)j(inside)d(the)i(blo)s(c)m(k)f(where)0 -5133 y(they)26 b(are)g(declared.)41 b(Pro)s(cedures)28 -b(ma)m(y)d(or)g(ma)m(y)h(not)f(b)s(e)h(recursiv)m(e)h(and)f(w)m(e)g -(shall)e(emphasize)0 5254 y(the)33 b(di\013erences)h(in)e(the)h(seman)m -(tics)f(to)h(b)s(e)f(sp)s(eci\014ed)i(b)s(elo)m(w.)146 -5374 y(W)-8 b(e)39 b(shall)d(adopt)i Fs(static)i(sc)-5 -b(op)g(e)39 b(rules)46 b Fu(rather)38 b(than)g(dynamic)f(scop)s(e)i -(rules.)60 b(Consider)0 5494 y(the)33 b(follo)m(wing)d(statemen)m(t:)p -eop -%%Page: 118 128 -118 127 bop 251 130 a Fw(118)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Fr(begin)e(var)g(x)e -Fu(:=)h Fr(7)p Fu(;)g Fr(proc)g(p)g(is)g(x)g Fu(:=)f -Fr(0)p Fu(;)816 683 y Fr(begin)i(var)f(x)g Fu(:=)g Fr(5)p -Fu(;)f Fr(call)i(p)f(end)527 851 y(end)283 1024 y Fu(Using)k(static)g -(scop)s(e)h(rules)f(the)g(e\013ect)h(of)f(executing)h -Fr(call)g(p)f Fu(in)g(the)g(inner)g(blo)s(c)m(k)g(will)e(b)s(e)283 -1144 y(to)k(mo)s(dify)e(the)i Fs(glob)-5 b(al)48 b Fu(v)-5 -b(ariable)37 b Fr(x)p Fu(.)63 b(Using)38 b(dynamic)g(scop)s(e)i(rules)f -(the)g(e\013ect)h(will)c(b)s(e)j(to)283 1264 y(mo)s(dify)31 -b(the)i Fs(lo)-5 b(c)g(al)43 b Fu(v)-5 b(ariable)30 b -Fr(x)p Fu(.)430 1385 y(T)-8 b(o)48 b(obtain)e(static)h(scop)s(e)i -(rules)f(w)m(e)g(shall)f(in)m(tro)s(duce)g(the)h(notion)f(of)g -Fs(lo)-5 b(c)g(ations)8 b Fu(:)73 b(to)283 1505 y(eac)m(h)39 -b(v)-5 b(ariable)35 b(w)m(e)k(asso)s(ciate)e(a)g(unique)g(lo)s(cation)e -(and)j(to)f(eac)m(h)h(lo)s(cation)d(w)m(e)j(asso)s(ciate)f(a)283 -1625 y(v)-5 b(alue.)43 b(This)31 b(is)f(in)h(con)m(trast)g(to)g(what)g -(w)m(e)h(did)f(in)f(T)-8 b(able)30 b(4.1)h(where)h(w)m(e)g(emplo)m(y)m -(ed)f(a)g(direct)283 1746 y(asso)s(ciation)36 b(b)s(et)m(w)m(een)j(v)-5 -b(ariables)35 b(and)i(v)-5 b(alues.)57 b(The)38 b(idea)e(then)i(is)e -(that)h(whenev)m(er)i(a)e(new)283 1866 y(v)-5 b(ariable)33 -b(is)h(declared)h(it)e(is)h(asso)s(ciated)g(with)g(a)h(new)g(un)m(used) -h(lo)s(cation)c(and)j(that)f(it)f(is)h(the)283 1987 y(v)-5 -b(alue)31 b(of)f(this)h(lo)s(cation)d(that)j(is)g(c)m(hanged)h(b)m(y)f -(assignmen)m(t)g(to)g(the)g(v)-5 b(ariable.)41 b(With)31 -b(resp)s(ect)283 2107 y(to)d(the)g(ab)s(o)m(v)m(e)g(statemen)m(t)g -(this)f(means)h(that)f(the)h(global)d(v)-5 b(ariable)26 -b Fr(x)i Fu(and)f(the)h(lo)s(cal)e(v)-5 b(ariable)283 -2227 y Fr(x)35 b Fu(will)e(ha)m(v)m(e)j(di\013eren)m(t)f(lo)s(cations.) -48 b(In)35 b(the)h(inner)e(blo)s(c)m(k)h(w)m(e)g(can)g(only)g(directly) -f(access)i(the)283 2348 y(lo)s(cation)i(of)h(the)h(lo)s(cal)d(v)-5 -b(ariable)38 b(but)i(the)g(pro)s(cedure)g(b)s(o)s(dy)g(for)f -Fr(p)h Fu(ma)m(y)f(only)g(access)i(the)283 2468 y(lo)s(cation)31 -b(of)h(the)h(global)d(v)-5 b(ariable.)283 2723 y Fw(Stores)38 -b(and)g(v)-6 b(ariable)37 b(en)m(vironmen)m(ts)283 2907 -y Fu(So)32 b(far)e(states)j(in)d Fw(State)i Fu(ha)m(v)m(e)g(b)s(een)g -(used)h(to)e(asso)s(ciate)g(v)-5 b(alues)31 b(with)g(v)-5 -b(ariables.)42 b(W)-8 b(e)31 b(shall)283 3028 y(no)m(w)48 -b(replace)e(states)h(with)f Fs(stor)-5 b(es)55 b Fu(that)46 -b(map)f(lo)s(cations)g(to)h(v)-5 b(alues)46 b(and)h(with)f -Fs(variable)283 3148 y(envir)-5 b(onments)40 b Fu(that)32 -b(map)g(v)-5 b(ariables)31 b(to)h(lo)s(cations.)42 b(W)-8 -b(e)33 b(in)m(tro)s(duce)g(the)g(domain)527 3321 y Fw(Lo)s(c)g -Fu(=)g Fw(Z)283 3494 y Fu(of)g(lo)s(cations)f(whic)m(h)i(for)f(the)h -(sak)m(e)h(of)e(simplicit)m(y)e(has)j(b)s(een)g(iden)m(ti\014ed)f(with) -g(the)h(in)m(tegers.)283 3614 y(W)-8 b(e)33 b(shall)f(need)h(an)g(op)s -(eration)527 3787 y(new:)45 b Fw(Lo)s(c)33 b Ft(!)f Fw(Lo)s(c)283 -3960 y Fu(on)37 b(lo)s(cations)d(that)i(giv)m(en)h(a)f(lo)s(cation)d -(will)h(giv)m(e)j(the)f(next)i(one;)g(since)f Fw(Lo)s(c)f -Fu(is)g Fw(Z)h Fu(w)m(e)g(ma)m(y)283 4081 y(tak)m(e)d(`new')g(to)e(b)s -(e)h(the)g(successor)h(function)f(on)f(the)h(in)m(tegers.)430 -4201 y(W)-8 b(e)33 b(can)g(no)m(w)g(de\014ne)h(a)e(store,)h -Fs(sto)6 b Fu(,)33 b(as)g(an)f(elemen)m(t)g(of)527 4374 -y Fw(Store)h Fu(=)f Fw(Lo)s(c)h Ft([)g(f)p Fu(next)p -Ft(g)g(!)f Fw(Z)283 4547 y Fu(where)h(`next')f(is)f(a)g(sp)s(ecial)f -(tok)m(en)i(used)g(to)f(hold)g(the)g Fs(next)j(fr)-5 -b(e)g(e)33 b(lo)-5 b(c)g(ation)p Fu(.)42 b(Note)31 b(that)g(since)283 -4667 y Fw(Lo)s(c)i Fu(is)f Fw(Z)h Fu(w)m(e)h(ha)m(v)m(e)g(that)e(`)p -Fs(sto)39 b Fu(next')34 b(is)e(a)g(lo)s(cation.)430 4788 -y(A)g(v)-5 b(ariable)31 b(en)m(vironmen)m(t)i Fs(env)1618 -4803 y Fc(V)1711 4788 y Fu(is)f(an)g(elemen)m(t)h(of)527 -4960 y Fw(En)m(v)719 4975 y Fn(V)810 4960 y Fu(=)f Fw(V)-9 -b(ar)32 b Ft(!)g Fw(Lo)s(c)283 5133 y Fu(Th)m(us)j(the)e(v)-5 -b(ariable)30 b(en)m(vironmen)m(t)j(will)e(assign)h(a)g(lo)s(cation)e -(to)j(eac)m(h)g(v)-5 b(ariable.)430 5254 y(So,)43 b(rather)e(than)h(ha) -m(ving)f(a)f(single)h(mapping)e Fs(s)49 b Fu(from)40 -b(v)-5 b(ariables)40 b(to)h(v)-5 b(alues)41 b(w)m(e)i(ha)m(v)m(e)283 -5374 y(split)29 b(it)g(in)m(to)g(t)m(w)m(o)i(mappings)e -Fs(env)1563 5389 y Fc(V)1653 5374 y Fu(and)h Fs(sto)36 -b Fu(and)30 b(the)h(idea)e(is)h(that)f Fs(s)38 b Fu(=)30 -b Fs(sto)36 b Ft(\016)30 b Fs(env)3436 5389 y Fc(V)3496 -5374 y Fu(.)43 b(This)283 5494 y(motiv)-5 b(ates)32 b(de\014ning)g(the) -h(function)f(`lo)s(okup')g(b)m(y)p eop -%%Page: 119 129 -119 128 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(119)p 0 193 3473 4 v 0 419 V 0 1836 4 1418 v 382 519 -a Ft(S)450 483 y Fi(0)450 543 y Fn(ds)521 519 y Fu([)-17 -b([)q Fs(x)12 b Fu(:=)p Fs(a)7 b Fu(])-17 b(])p Fs(env)969 -534 y Fc(V)1062 519 y Fs(sto)39 b Fu(=)32 b Fs(sto)6 -b Fu([)p Fs(l)k Ft(7!A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q(\(lo)s(okup)32 b Fs(env)2347 534 y Fc(V)2439 519 -y Fs(sto)6 b Fu(\)])651 686 y(where)34 b Fs(l)42 b Fu(=)33 -b Fs(env)1265 701 y Fc(V)1357 686 y Fs(x)382 878 y Ft(S)450 -841 y Fi(0)450 902 y Fn(ds)521 878 y Fu([)-17 b([)q Fr(skip)p -Fu(])g(])q Fs(env)957 893 y Fc(V)1050 878 y Fu(=)32 b(id)382 -1069 y Ft(S)450 1033 y Fi(0)450 1093 y Fn(ds)521 1069 -y Fu([)-17 b([)q Fs(S)626 1084 y Fn(1)697 1069 y Fu(;)33 -b Fs(S)824 1084 y Fn(2)863 1069 y Fu(])-17 b(])q Fs(env)1057 -1084 y Fc(V)1150 1069 y Fu(=)32 b(\()p Ft(S)1364 1033 -y Fi(0)1364 1093 y Fn(ds)1435 1069 y Fu([)-17 b([)p Fs(S)1539 -1084 y Fn(2)1579 1069 y Fu(])g(])p Fs(env)1772 1084 y -Fc(V)1832 1069 y Fu(\))33 b Ft(\016)f Fu(\()p Ft(S)2091 -1033 y Fi(0)2091 1093 y Fn(ds)2162 1069 y Fu([)-17 b([)q -Fs(S)2267 1084 y Fn(1)2306 1069 y Fu(])g(])q Fs(env)2500 -1084 y Fc(V)2560 1069 y Fu(\))382 1260 y Ft(S)450 1224 -y Fi(0)450 1285 y Fn(ds)521 1260 y Fu([)g([)q Fr(if)33 -b Fs(b)38 b Fr(then)c Fs(S)1082 1275 y Fn(1)1154 1260 -y Fr(else)f Fs(S)1458 1275 y Fn(2)1497 1260 y Fu(])-17 -b(])q Fs(env)1691 1275 y Fc(V)1784 1260 y Fu(=)651 1428 -y(cond\()p Ft(B)t Fu([)g([)p Fs(b)6 b Fu(])-17 b(])q -Ft(\016)p Fu(\(lo)s(okup)31 b Fs(env)1647 1443 y Fc(V)1707 -1428 y Fu(\),)i Ft(S)1873 1392 y Fi(0)1873 1452 y Fn(ds)1944 -1428 y Fu([)-17 b([)q Fs(S)2049 1443 y Fn(1)2088 1428 -y Fu(])g(])p Fs(env)2281 1443 y Fc(V)2342 1428 y Fu(,)32 -b Ft(S)2469 1392 y Fi(0)2469 1452 y Fn(ds)2540 1428 y -Fu([)-17 b([)q Fs(S)2645 1443 y Fn(2)2684 1428 y Fu(])g(])q -Fs(env)2878 1443 y Fc(V)2938 1428 y Fu(\))382 1619 y -Ft(S)450 1583 y Fi(0)450 1644 y Fn(ds)521 1619 y Fu([)g([)q -Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)12 b Fu(])-17 b(])p -Fs(env)1326 1634 y Fc(V)1419 1619 y Fu(=)32 b(FIX)h Fs(F)618 -1787 y Fu(where)h Fs(F)46 b(g)41 b Fu(=)32 b(cond\()p -Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Ft(\016)p -Fu(\(lo)s(okup)32 b Fs(env)2201 1802 y Fc(V)2261 1787 -y Fu(\),)g Fs(g)41 b Ft(\016)33 b Fu(\()p Ft(S)2632 1750 -y Fi(0)2632 1811 y Fn(ds)2704 1787 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q Fs(env)3002 1802 y Fc(V)3062 1787 y -Fu(\),)32 b(id\))p 3469 1836 V 0 1839 3473 4 v 438 2000 -a(T)-8 b(able)33 b(4.2:)43 b(Denotational)30 b(seman)m(tics)j(for)f -Fw(While)f Fu(using)h(lo)s(cations)244 2286 y(lo)s(okup)g -Fs(env)720 2301 y Fc(V)812 2286 y Fs(sto)39 b Fu(=)32 -b Fs(sto)39 b Ft(\016)32 b Fs(env)1480 2301 y Fc(V)0 -2491 y Fu(so)h(that)f(`lo)s(okup)g Fs(env)834 2506 y -Fc(V)894 2491 y Fu(')h(will)d(transform)i(a)g(store)h(to)f(a)g(state,)i -(that)e(is)244 2696 y(lo)s(okup:)43 b Fw(En)m(v)794 2711 -y Fn(V)884 2696 y Ft(!)32 b Fw(Store)g Ft(!)h Fw(State)146 -2902 y Fu(Ha)m(ving)e(replaced)g(a)g(one)h(stage)f(mapping)e(with)i(a)g -(t)m(w)m(o)h(stage)f(mapping)f(w)m(e)i(shall)e(w)m(an)m(t)0 -3022 y(to)38 b(reform)m(ulate)g(the)h(seman)m(tic)f(equations)h(of)f(T) --8 b(able)39 b(4.1)f(to)g(use)i(v)-5 b(ariable)37 b(en)m(vironmen)m(ts) -0 3142 y(and)c(stores.)44 b(The)34 b(new)f(seman)m(tic)f(function)g -Ft(S)1760 3106 y Fi(0)1760 3167 y Fn(ds)1864 3142 y Fu(has)h -(functionalit)m(y)244 3347 y Ft(S)312 3311 y Fi(0)312 -3372 y Fn(ds)383 3347 y Fu(:)43 b Fw(Stm)32 b Ft(!)g -Fw(En)m(v)1009 3362 y Fn(V)1100 3347 y Ft(!)g Fu(\()p -Fw(Store)g Fo(,)-17 b Ft(!)33 b Fw(Store)p Fu(\))0 3553 -y(so)f(that)g(only)f(the)i(store)f(is)f(up)s(dated)i(during)e(the)h -(execution)h(of)f(statemen)m(ts.)44 b(The)33 b(clauses)0 -3673 y(de\014ning)41 b Ft(S)445 3637 y Fi(0)445 3698 -y Fn(ds)557 3673 y Fu(are)g(giv)m(en)g(in)f(T)-8 b(able)41 -b(4.2.)68 b(Note)41 b(that)g(in)f(the)i(clause)f(for)f(assignmen)m(t)h -(the)0 3793 y(v)-5 b(ariable)40 b(en)m(vironmen)m(t)h(is)g(consulted)h -(to)g(determine)f(the)h(lo)s(cation)d(of)i(the)h(v)-5 -b(ariable)39 b(and)0 3914 y(this)g(lo)s(cation)e(is)i(up)s(dated)h(in)f -(the)h(store.)64 b(In)40 b(the)g(clauses)g(for)f(the)h(conditional)c -(and)k(the)0 4034 y Fr(while)p Fu(-construct)35 b(w)m(e)e(use)h(the)f -(auxiliary)d(function)i(`cond')h(of)g(functionalit)m(y)244 -4239 y(cond:)44 b(\()p Fw(Store)32 b Ft(!)g Fw(T)p Fu(\))h -Ft(\002)g Fu(\()p Fw(Store)f Fo(,)-17 b Ft(!)33 b Fw(Store)p -Fu(\))f Ft(\002)h Fu(\()p Fw(Store)f Fo(,)-17 b Ft(!)33 -b Fw(Store)p Fu(\))749 4407 y Ft(!)f Fu(\()p Fw(Store)g -Fo(,)-17 b Ft(!)33 b Fw(Store)p Fu(\))0 4612 y(and)g(its)f -(de\014nition)f(is)h(as)h(in)f(Section)g(4.1.)0 4843 -y Fw(Exercise)k(4.62)49 b Fu(W)-8 b(e)34 b(ha)m(v)m(e)g(to)f(mak)m(e)g -(sure)g(that)g(the)h(clauses)f(of)g(T)-8 b(able)32 b(4.2)h(de\014ne)h -(a)f(w)m(ell-)0 4964 y(de\014ned)h(function)e Ft(S)786 -4928 y Fi(0)786 4988 y Fn(ds)857 4964 y Fu(.)44 b(T)-8 -b(o)32 b(do)h(so)145 5169 y Ft(\017)49 b Fu(equip)33 -b Fw(Store)f Fo(,)-17 b Ft(!)33 b Fw(Store)f Fu(with)g(a)g(partial)f -(ordering)h(suc)m(h)i(that)e(it)g(b)s(ecomes)h(a)f(ccp)s(o,)145 -5374 y Ft(\017)49 b Fu(sho)m(w)31 b(that)e Ft(\016)g -Fu(is)h(con)m(tin)m(uous)g(in)f(b)s(oth)g(of)g(its)h(argumen)m(ts)f -(and)h(that)g(`cond')g(is)f(con)m(tin-)244 5494 y(uous)k(in)f(its)g -(second)i(and)e(third)g(argumen)m(t,)h(and)p eop -%%Page: 120 130 -120 129 bop 251 130 a Fw(120)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 429 515 a Ft(\017)48 -b Fu(sho)m(w)34 b(that)e(the)h(\014xed)h(p)s(oin)m(t)e(op)s(eration)f -(is)h(only)g(applied)g(to)g(con)m(tin)m(uous)h(functions.)283 -717 y(Conclude)h(that)e Ft(S)991 681 y Fi(0)991 742 y -Fn(ds)1094 717 y Fu(is)h(a)f(w)m(ell-de\014ned)h(function.)1496 -b Fh(2)283 943 y Fw(Exercise)37 b(4.63)49 b Fu(*)32 b(Pro)m(v)m(e)i -(that)e(the)h(t)m(w)m(o)h(seman)m(tic)e(functions)h Ft(S)2787 -958 y Fn(ds)2891 943 y Fu(and)g Ft(S)3149 907 y Fi(0)3149 -967 y Fn(ds)3252 943 y Fu(satisfy)527 1144 y Ft(S)595 -1159 y Fn(ds)666 1144 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])33 b Ft(\016)f Fu(\(lo)s(okup)g Fs(env)1437 1159 -y Fc(V)1497 1144 y Fu(\))g(=)h(\(lo)s(okup)f Fs(env)2190 -1159 y Fc(V)2250 1144 y Fu(\))g Ft(\016)g Fu(\()p Ft(S)2508 -1108 y Fi(0)2508 1169 y Fn(ds)2579 1144 y Fu([)-17 b([)q -Fs(S)12 b Fu(])-17 b(])p Fs(env)2877 1159 y Fc(V)2937 -1144 y Fu(\))283 1346 y(for)44 b(all)e(statemen)m(ts)j -Fs(S)55 b Fu(of)44 b Fw(While)e Fu(and)i(for)g(all)d -Fs(env)2326 1361 y Fc(V)2430 1346 y Fu(suc)m(h)46 b(that)e -Fs(env)3041 1361 y Fc(V)3145 1346 y Fu(is)f(an)h(injectiv)m(e)283 -1466 y(mapping.)3001 b Fh(2)283 1692 y Fw(Exercise)37 -b(4.64)49 b Fu(Ha)m(ving)23 b(replaced)h(a)f(one)h(stage)g(mapping)f -(with)g(a)g(t)m(w)m(o)i(stage)f(mapping)e(w)m(e)283 1812 -y(migh)m(t)j(consider)h(rede\014ning)g(the)g(seman)m(tic)g(functions)f -Ft(A)h Fu(and)f Ft(B)t Fu(.)41 b(The)27 b(new)g(functionalities)283 -1933 y(of)33 b Ft(A)f Fu(and)g Ft(B)k Fu(migh)m(t)31 -b(b)s(e)527 2134 y Ft(A)607 2098 y Fi(0)630 2134 y Fu(:)44 -b Fw(Aexp)32 b Ft(!)g Fw(En)m(v)1314 2149 y Fn(V)1405 -2134 y Ft(!)g Fu(\()p Fw(Store)g Ft(!)g Fw(Z)p Fu(\))527 -2302 y Ft(B)596 2266 y Fi(0)619 2302 y Fu(:)44 b Fw(Bexp)32 -b Ft(!)g Fw(En)m(v)1298 2317 y Fn(V)1389 2302 y Ft(!)g -Fu(\()p Fw(Store)g Ft(!)g Fw(T)p Fu(\))283 2504 y(and)h(the)g(in)m -(tended)g(relationship)e(is)h(that)527 2705 y Ft(A)607 -2669 y Fi(0)630 2705 y Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q Fs(env)919 2720 y Fc(V)1011 2705 y Fu(=)33 b Ft(A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])33 b Ft(\016)f Fu(\(lo)s(okup)g -Fs(env)1960 2720 y Fc(V)2020 2705 y Fu(\))527 2873 y -Ft(B)596 2837 y Fi(0)619 2873 y Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])p Fs(env)901 2888 y Fc(V)994 2873 y Fu(=)32 -b Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b Ft(\016)g -Fu(\(lo)s(okup)e Fs(env)1925 2888 y Fc(V)1985 2873 y -Fu(\))283 3074 y(Giv)m(e)40 b(a)g(comp)s(ositional)c(de\014nition)j(of) -h(the)g(functions)g Ft(A)2479 3038 y Fi(0)2542 3074 y -Fu(and)g Ft(B)2808 3038 y Fi(0)2871 3074 y Fu(suc)m(h)h(that)f(this)g -(is)f(the)283 3195 y(case.)3198 b Fh(2)283 3454 y Fw(Up)s(dating)38 -b(the)f(v)-6 b(ariable)37 b(en)m(vironmen)m(t)283 3639 -y Fu(The)g(v)-5 b(ariable)34 b(en)m(vironmen)m(t)j(is)e(up)s(dated)h -(whenev)m(er)j(w)m(e)e(en)m(ter)f(a)g(blo)s(c)m(k)g(con)m(taining)e(lo) -s(cal)283 3759 y(declarations.)60 b(T)-8 b(o)38 b(express)i(this)e(w)m -(e)h(shall)e(in)m(tro)s(duce)h(a)g(seman)m(tic)f(function)h -Ft(D)3357 3723 y Fn(V)3357 3784 y(ds)3466 3759 y Fu(for)f(the)283 -3880 y(syn)m(tactic)d(category)f(of)f(v)-5 b(ariable)31 -b(declarations.)42 b(It)33 b(has)g(functionalit)m(y)527 -4081 y Ft(D)607 4045 y Fn(V)607 4106 y(ds)678 4081 y -Fu(:)44 b Fw(Dec)936 4096 y Fn(V)1026 4081 y Ft(!)32 -b Fw(En)m(v)1350 4096 y Fc(V)1443 4081 y Ft(\002)h Fw(Store)g -Ft(!)f Fw(En)m(v)2169 4096 y Fc(V)2262 4081 y Ft(\002)h -Fw(Store)283 4283 y Fu(The)i(function)f Ft(D)949 4246 -y Fn(V)949 4307 y(ds)1020 4283 y Fu([)-17 b([)p Fs(D)1140 -4298 y Fc(V)1201 4283 y Fu(])g(])35 b(will)c(tak)m(e)k(a)f(pair)f(as)h -(argumen)m(ts:)47 b(the)34 b(\014rst)h(comp)s(onen)m(t)f(of)f(that)283 -4403 y(pair)22 b(will)e(b)s(e)i(the)h(curren)m(t)g(v)-5 -b(ariable)21 b(en)m(vironmen)m(t)h(and)h(the)f(second)i(comp)s(onen)m -(t)e(the)h(curren)m(t)283 4523 y(store.)62 b(The)39 b(function)f(will)e -(return)j(the)g(up)s(dated)f(v)-5 b(ariable)37 b(en)m(vironmen)m(t)i -(as)f(w)m(ell)g(as)g(the)283 4644 y(up)s(dated)32 b(store.)44 -b(The)32 b(function)f(is)g(de\014ned)h(b)m(y)h(the)e(seman)m(tic)g -(clauses)h(of)f(T)-8 b(able)31 b(4.3.)43 b(Note)283 4764 -y(that)36 b(w)m(e)i(pro)s(cess)f(the)g(declarations)e(from)g(left)g(to) -h(righ)m(t)g(and)g(that)g(w)m(e)h(up)s(date)g(the)f(v)-5 -b(alue)283 4885 y(of)33 b(the)g(tok)m(en)g(`next')h(in)e(the)h(store.) -430 5005 y(In)28 b(the)h(case)g(where)g(there)g(are)f -Fs(no)34 b Fu(pro)s(cedure)29 b(declarations)e(in)h(a)g(blo)s(c)m(k)g -(w)m(e)h(can)f(extend)283 5125 y(the)33 b(seman)m(tic)g(function)f -Ft(S)1306 5089 y Fi(0)1306 5150 y Fn(ds)1409 5125 y Fu(of)g(T)-8 -b(able)33 b(4.2)f(with)g(a)g(clause)h(lik)m(e)527 5327 -y Ft(S)595 5291 y Fi(0)595 5351 y Fn(ds)666 5327 y Fu([)-17 -b([)q Fr(begin)34 b Fs(D)1076 5342 y Fc(V)1169 5327 y -Fs(S)45 b Fr(end)p Fu(])-17 b(])q Fs(env)1616 5342 y -Fc(V)1709 5327 y Fs(sto)38 b Fu(=)33 b Ft(S)2045 5291 -y Fi(0)2045 5351 y Fn(ds)2117 5327 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q Fs(env)2415 5291 y Fi(0)2415 5351 y -Fc(V)2507 5327 y Fs(sto)2635 5291 y Fi(0)796 5494 y Fu(where)34 -b Ft(D)1158 5458 y Fn(V)1158 5519 y(ds)1229 5494 y Fu([)-17 -b([)p Fs(D)1349 5509 y Fc(V)1410 5494 y Fu(])g(])q(\()p -Fs(env)1642 5509 y Fc(V)1702 5494 y Fu(,)32 b Fs(sto)6 -b Fu(\))33 b(=)f(\()p Fs(env)2262 5458 y Fi(0)2262 5519 -y Fc(V)2322 5494 y Fu(,)h Fs(sto)2510 5458 y Fi(0)2534 -5494 y Fu(\))p eop -%%Page: 121 131 -121 130 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(121)p 0 193 3473 4 v 0 419 V 0 1102 4 683 v 382 526 -a Ft(D)462 489 y Fn(V)462 550 y(ds)533 526 y Fu([)-17 -b([)p Fr(var)34 b Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(;)32 -b Fs(D)1181 541 y Fc(V)1242 526 y Fu(])-17 b(])q(\()p -Fs(env)1474 541 y Fc(V)1534 526 y Fu(,)33 b Fs(sto)6 -b Fu(\))32 b(=)651 693 y Ft(D)730 657 y Fn(V)730 718 -y(ds)802 693 y Fu([)-17 b([)p Fs(D)922 708 y Fc(V)983 -693 y Fu(])g(])q(\()p Fs(env)1215 708 y Fc(V)1275 693 -y Fu([)p Fs(x)12 b Ft(7!)o Fs(l)e Fu(],)33 b Fs(sto)6 -b Fu([)p Fs(l)k Ft(7!)p Fs(v)h Fu(][next)p Ft(7!)q Fu(new)33 -b Fs(l)10 b Fu(]\))651 861 y(where)34 b Fs(l)42 b Fu(=)33 -b Fs(sto)38 b Fu(next)c(and)f Fs(v)43 b Fu(=)32 b Ft(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q(\(lo)s(okup)32 -b Fs(env)2601 876 y Fc(V)2693 861 y Fs(sto)6 b Fu(\))382 -1052 y Ft(D)462 1016 y Fn(V)462 1077 y(ds)533 1052 y -Fu([)-17 b([)p Fo(")p Fu(])g(])33 b(=)g(id)p 3469 1102 -V 0 1105 3473 4 v 479 1266 a(T)-8 b(able)32 b(4.3:)43 -b(Denotational)30 b(seman)m(tics)j(for)f(v)-5 b(ariable)31 -b(declarations)0 1536 y(Th)m(us)g(w)m(e)e(ev)-5 b(aluate)29 -b(the)g(b)s(o)s(dy)g Fs(S)41 b Fu(in)28 b(an)h(up)s(dated)g(v)-5 -b(ariable)28 b(en)m(vironmen)m(t)h(and)g(an)g(up)s(dated)0 -1657 y(store.)55 b(W)-8 b(e)36 b(shall)f(later)g(mo)s(dify)g(the)h(ab)s -(o)m(v)m(e)i(clause)e(to)g(tak)m(e)h(the)f(pro)s(cedure)h(declarations) -0 1777 y(in)m(to)32 b(accoun)m(t.)0 2025 y Fw(Exercise)k(4.65)49 -b Fu(Consider)33 b(the)g(follo)m(wing)d(statemen)m(t)j(of)f -Fw(Pro)s(c)p Fu(:)244 2241 y Fr(begin)i(var)f(y)g Fu(:=)f -Fr(0)p Fu(;)h Fr(var)h(x)e Fu(:=)h Fr(1)p Fu(;)533 2409 -y Fr(begin)h(var)f(x)g Fu(:=)f Fr(7)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Fu(+)p Fr(1)h(end)p Fu(;)533 2576 y Fr(y)g Fu(:=)f -Fr(x)244 2744 y(end)0 2960 y Fu(Use)g(the)f(seman)m(tic)f(equations)h -(to)f(sho)m(w)i(that)f(the)g(lo)s(cation)d(for)i Fr(y)h -Fu(is)f(assigned)h(the)g(v)-5 b(alue)30 b Fw(1)0 3080 -y Fu(in)i(the)h(\014nal)f(store.)2666 b Fh(2)0 3355 y -Fw(Pro)s(cedure)37 b(en)m(vironmen)m(ts)0 3545 y Fu(T)-8 -b(o)32 b(cater)g(for)g(pro)s(cedures)h(w)m(e)g(shall)e(in)m(tro)s(duce) -h(the)g(notion)f(of)h(a)g Fs(pr)-5 b(o)g(c)g(e)g(dur)g(e)34 -b(envir)-5 b(onment)p Fu(.)0 3666 y(It)43 b(will)e(b)s(e)j(a)f(total)e -(function)i(that)g(will)e(asso)s(ciate)i(eac)m(h)h(pro)s(cedure)g(with) -f(the)h(e\013ect)g(of)0 3786 y(executing)38 b(its)g(b)s(o)s(dy)-8 -b(.)59 b(This)38 b(means)g(that)f(a)h(pro)s(cedure)g(en)m(vironmen)m -(t,)i Fs(env)2918 3801 y Fc(P)2976 3786 y Fu(,)f(will)c(b)s(e)j(an)0 -3906 y(elemen)m(t)32 b(of)244 4122 y Fw(En)m(v)436 4137 -y Fn(P)520 4122 y Fu(=)h Fw(Pname)f Ft(!)g Fu(\()p Fw(Store)h -Fo(,)-17 b Ft(!)32 b Fw(Store)p Fu(\))0 4338 y Fw(Remark)24 -b Fu(This)h(notion)e(of)h(pro)s(cedure)h(en)m(vironmen)m(t)g(di\013ers) -f(from)g(that)g(of)g(the)h(op)s(erational)0 4458 y(approac)m(h.)2984 -b Fh(2)146 4581 y Fu(The)46 b(pro)s(cedure)g(en)m(vironmen)m(t)f(is)f -(up)s(dated)i(using)e(the)h(seman)m(tic)g(function)f -Ft(D)3240 4545 y Fn(P)3240 4606 y(ds)3356 4581 y Fu(for)0 -4702 y(pro)s(cedure)34 b(declarations.)42 b(It)33 b(has)g(functionalit) -m(y)244 4917 y Ft(D)323 4881 y Fn(P)323 4942 y(ds)395 -4917 y Fu(:)43 b Fw(Dec)652 4932 y Fn(P)737 4917 y Ft(!)32 -b Fw(En)m(v)1061 4932 y Fn(V)1151 4917 y Ft(!)g Fw(En)m(v)1475 -4932 y Fn(P)1560 4917 y Ft(!)g Fw(En)m(v)1884 4932 y -Fn(P)0 5133 y Fu(So)e(giv)m(en)f(the)i(curren)m(t)g(v)-5 -b(ariable)27 b(en)m(vironmen)m(t)k(and)e(the)i(curren)m(t)f(pro)s -(cedure)h(en)m(vironmen)m(t)0 5254 y(the)k(function)e -Ft(D)633 5218 y Fn(P)633 5278 y(ds)704 5254 y Fu([)-17 -b([)q Fs(D)825 5269 y Fc(P)883 5254 y Fu(])g(])35 b(will)d(up)s(date)i -(the)h(pro)s(cedure)g(en)m(vironmen)m(t.)48 b(The)35 -b(v)-5 b(ariable)33 b(en)m(vi-)0 5374 y(ronmen)m(t)e(m)m(ust)g(b)s(e)h -(a)m(v)-5 b(ailable)29 b(b)s(ecause)j(pro)s(cedures)h(m)m(ust)e(kno)m -(w)h(the)g(v)-5 b(ariables)30 b(that)h(ha)m(v)m(e)0 5494 -y(b)s(een)i(declared)g(so)g(far.)43 b(An)33 b(example)f(is)g(the)h -(statemen)m(t)p eop -%%Page: 122 132 -122 131 bop 251 130 a Fw(122)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 934 4 -516 v 666 526 a Ft(D)745 489 y Fn(P)745 550 y(ds)816 -526 y Fu([)-17 b([)q Fr(proc)34 b Fs(p)k Fr(is)33 b Fs(S)12 -b Fu(;)32 b Fs(D)1524 541 y Fc(P)1583 526 y Fu(])-17 -b(])q Fs(env)1777 541 y Fc(V)1869 526 y Fs(env)2025 541 -y Fc(P)2116 526 y Fu(=)32 b Ft(D)2304 489 y Fn(P)2304 -550 y(ds)2375 526 y Fu([)-17 b([)q Fs(D)2496 541 y Fc(P)2554 -526 y Fu(])g(])q Fs(env)2748 541 y Fc(V)2840 526 y Fu(\()p -Fs(env)3034 541 y Fc(P)3092 526 y Fu([)p Fs(p)6 b Ft(7!)p -Fs(g)j Fu(]\))934 693 y(where)34 b Fs(g)41 b Fu(=)33 -b Ft(S)1478 708 y Fn(ds)1550 693 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])q Fs(env)1848 708 y Fc(V)1940 693 y Fs(env)2096 -708 y Fc(P)666 884 y Ft(D)745 848 y Fn(P)745 909 y(ds)816 -884 y Fu([)g([)q Fo(")p Fu(])g(])p Fs(env)1093 899 y -Fc(V)1186 884 y Fu(=)32 b(id)p 3753 934 V 283 937 3473 -4 v 421 1098 a(T)-8 b(able)32 b(4.4:)43 b(Denotational)30 -b(seman)m(tics)j(for)f(non-recursiv)m(e)h(pro)s(cedure)h(declarations) -527 1360 y Fr(begin)g(var)g(x)e Fu(:=)h Fr(7)p Fu(;)g -Fr(proc)g(p)g(is)g(x)g Fu(:=)f Fr(0)p Fu(;)816 1527 y -Fr(begin)i(var)f(x)g Fu(:=)g Fr(5)p Fu(;)f Fr(call)i(p)f(end)527 -1695 y(end)283 1864 y Fu(where)k(the)f(b)s(o)s(dy)g(of)f -Fr(p)h Fu(m)m(ust)g(kno)m(w)h(that)e(a)h(v)-5 b(ariable)34 -b Fr(x)h Fu(has)h(b)s(een)h(declared)f(in)f(the)h(outer)283 -1984 y(blo)s(c)m(k.)430 2104 y(The)h(seman)m(tic)g(clauses)g -(de\014ning)g Ft(D)1826 2068 y Fn(P)1826 2129 y(ds)1933 -2104 y Fu(in)f(the)h(case)h(of)e Fs(non-r)-5 b(e)g(cursive)38 -b(pr)-5 b(o)g(c)g(e)g(dur)g(es)36 b Fu(are)283 2225 y(giv)m(en)i(in)e -(T)-8 b(able)37 b(4.4.)56 b(In)37 b(the)h(clause)f(for)g(pro)s(cedure)h -(declarations)e(w)m(e)i(use)g(the)f(seman)m(tic)283 2345 -y(function)30 b Ft(S)730 2360 y Fn(ds)831 2345 y Fu(for)f(statemen)m -(ts)i(\(de\014ned)g(b)s(elo)m(w\))e(to)g(determine)g(the)h(meaning)f -(of)g(the)h(b)s(o)s(dy)283 2465 y(of)35 b(the)h(pro)s(cedure)g(using)f -(that)h Fs(env)1652 2480 y Fc(V)1747 2465 y Fu(and)g -Fs(env)2096 2480 y Fc(P)2189 2465 y Fu(are)f(the)h(en)m(vironmen)m(ts)g -(at)f(the)h(p)s(oin)m(t)e(of)283 2586 y(declaration.)41 -b(The)30 b(v)-5 b(ariables)28 b(o)s(ccurring)h(in)f(the)h(b)s(o)s(dy)h -Fs(S)40 b Fu(of)29 b Fs(p)35 b Fu(will)27 b(therefore)j(b)s(e)f(b)s -(ound)g(to)283 2706 y(the)37 b(lo)s(cations)e(of)h(the)h(v)-5 -b(ariables)35 b(as)h(kno)m(wn)i(at)e(the)h(time)e(of)h(declaration)e -(but)j(the)g(v)-5 b(alues)283 2827 y(of)39 b(the)g(lo)s(cations)e(will) -f(not)j(b)s(e)g(kno)m(wn)h(un)m(til)d(the)i(time)f(of)g(call.)60 -b(In)39 b(this)g(w)m(a)m(y)h(w)m(e)f(ensure)283 2947 -y(that)j(w)m(e)g(obtain)f(static)g(scop)s(e)h(for)f(v)-5 -b(ariables.)69 b(Also)41 b(an)g(o)s(ccurrence)i(of)e -Fr(call)i Fs(p)3433 2911 y Fi(0)3498 2947 y Fu(in)d(the)283 -3067 y(b)s(o)s(dy)g(of)e(the)i(pro)s(cedure)g(will)d(refer)i(to)g(a)g -(pro)s(cedure)h Fs(p)2439 3031 y Fi(0)2502 3067 y Fu(men)m(tioned)e(in) -h Fs(env)3259 3082 y Fc(P)3317 3067 y Fu(,)h(that)f(is)g(a)283 -3188 y(pro)s(cedure)k(declared)g(in)e(an)h(outer)g(blo)s(c)m(k)g(or)g -(in)f(the)i(curren)m(t)g(blo)s(c)m(k)f(but)g(preceding)g(the)283 -3308 y(presen)m(t)32 b(pro)s(cedure.)44 b(In)30 b(this)g(w)m(a)m(y)h(w) -m(e)g(obtain)e(static)h(scop)s(e)h(for)f(pro)s(cedures.)44 -b(This)30 b(will)e(b)s(e)283 3429 y(illustrated)j(in)h(Exercise)i(4.67) -e(b)s(elo)m(w.)283 3682 y Fw(The)38 b(seman)m(tic)e(function)h -Ft(S)1483 3697 y Fn(ds)1592 3682 y Fw(for)g(Pro)s(c)283 -3867 y Fu(The)j(meaning)c(of)i(a)g(statemen)m(t)g(dep)s(ends)i(on)e -(the)h(v)-5 b(ariables)37 b(and)h(pro)s(cedures)i(that)e(ha)m(v)m(e)283 -3987 y(b)s(een)i(declared.)63 b(Therefore)40 b(the)f(seman)m(tic)g -(function)f Ft(S)2451 4002 y Fn(ds)2561 3987 y Fu(for)g(statemen)m(ts)i -(in)e Fw(Pro)s(c)g Fu(will)283 4108 y(ha)m(v)m(e)c(functionalit)m(y)527 -4276 y Ft(S)595 4291 y Fn(ds)666 4276 y Fu(:)44 b Fw(Stm)32 -b Ft(!)g Fw(En)m(v)1293 4291 y Fn(V)1383 4276 y Ft(!)g -Fw(En)m(v)1707 4291 y Fn(P)1792 4276 y Ft(!)g Fu(\()p -Fw(Store)g Fo(,)-17 b Ft(!)33 b Fw(Store)p Fu(\))283 -4445 y(The)f(function)d(is)h(de\014ned)i(b)m(y)f(the)f(clauses)h(of)f -(T)-8 b(able)30 b(4.5.)42 b(In)30 b(most)g(cases)i(the)e(de\014nition)f -(of)283 4565 y Ft(S)351 4580 y Fn(ds)453 4565 y Fu(is)h(a)g(straigh)m -(tforw)m(ard)h(mo)s(di\014cation)d(of)i(the)h(clauses)g(of)f -Ft(S)2648 4529 y Fi(0)2648 4590 y Fn(ds)2719 4565 y Fu(.)43 -b(Note)31 b(that)f(the)h(meaning)283 4686 y(of)i(a)f(pro)s(cedure)h -(call)e(is)h(obtained)g(b)m(y)i(simply)d(consulting)h(the)h(pro)s -(cedure)g(en)m(vironmen)m(t.)283 4867 y Fw(Example)k(4.66)49 -b Fu(This)29 b(example)e(sho)m(ws)j(ho)m(w)g(w)m(e)f(obtain)e(static)h -(scop)s(e)h(rules)g(for)f(the)h(v)-5 b(ari-)283 4988 -y(ables.)44 b(Consider)33 b(the)g(application)d(of)i(the)h(seman)m(tic) -f(function)g Ft(S)2778 5003 y Fn(ds)2882 4988 y Fu(to)g(the)h(statemen) -m(t)527 5156 y Fr(begin)h(var)g(x)e Fu(:=)h Fr(7)p Fu(;)g -Fr(proc)g(p)g(is)g(x)g Fu(:=)f Fr(0)p Fu(;)816 5324 y -Fr(begin)i(var)f(x)g Fu(:=)g Fr(5)p Fu(;)f Fr(call)i(p)f(end)527 -5492 y(end)p eop -%%Page: 123 133 -123 132 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(123)p 0 193 3473 4 v 0 419 V 0 2889 4 2471 v 382 519 -a Ft(S)450 534 y Fn(ds)521 519 y Fu([)-17 b([)q Fs(x)12 -b Fu(:=)p Fs(a)7 b Fu(])-17 b(])p Fs(env)969 534 y Fc(V)1062 -519 y Fs(env)1218 534 y Fc(P)1308 519 y Fs(sto)39 b Fu(=)32 -b Fs(sto)6 b Fu([)p Fs(l)k Ft(7!A)p Fu([)-17 b([)q Fs(a)7 -b Fu(])-17 b(]\(lo)s(okup)32 b Fs(env)2593 534 y Fc(V)2686 -519 y Fs(sto)6 b Fu(\)])651 686 y(where)34 b Fs(l)42 -b Fu(=)33 b Fs(env)1265 701 y Fc(V)1357 686 y Fs(x)382 -878 y Ft(S)450 893 y Fn(ds)521 878 y Fu([)-17 b([)q Fr(skip)p -Fu(])g(])q Fs(env)957 893 y Fc(V)1050 878 y Fs(env)1206 -893 y Fc(P)1296 878 y Fu(=)33 b(id)382 1069 y Ft(S)450 -1084 y Fn(ds)521 1069 y Fu([)-17 b([)q Fs(S)626 1084 -y Fn(1)697 1069 y Fu(;)33 b Fs(S)824 1084 y Fn(2)863 -1069 y Fu(])-17 b(])q Fs(env)1057 1084 y Fc(V)1150 1069 -y Fs(env)1306 1084 y Fc(P)1396 1069 y Fu(=)32 b(\()p -Ft(S)1610 1084 y Fn(ds)1681 1069 y Fu([)-17 b([)q Fs(S)1786 -1084 y Fn(2)1825 1069 y Fu(])g(])q Fs(env)2019 1084 y -Fc(V)2111 1069 y Fs(env)2267 1084 y Fc(P)2325 1069 y -Fu(\))33 b Ft(\016)f Fu(\()p Ft(S)2584 1084 y Fn(ds)2655 -1069 y Fu([)-17 b([)q Fs(S)2760 1084 y Fn(1)2799 1069 -y Fu(])g(])p Fs(env)2992 1084 y Fc(V)3085 1069 y Fs(env)3241 -1084 y Fc(P)3299 1069 y Fu(\))382 1260 y Ft(S)450 1275 -y Fn(ds)521 1260 y Fu([)g([)q Fr(if)33 b Fs(b)38 b Fr(then)c -Fs(S)1082 1275 y Fn(1)1154 1260 y Fr(else)f Fs(S)1458 -1275 y Fn(2)1497 1260 y Fu(])-17 b(])q Fs(env)1691 1275 -y Fc(V)1784 1260 y Fs(env)1940 1275 y Fc(P)2030 1260 -y Fu(=)651 1428 y(cond\()p Ft(B)t Fu([)g([)p Fs(b)6 b -Fu(])-17 b(])q Ft(\016)p Fu(\(lo)s(okup)31 b Fs(env)1647 -1443 y Fc(V)1707 1428 y Fu(\),)i Ft(S)1873 1443 y Fn(ds)1944 -1428 y Fu([)-17 b([)q Fs(S)2049 1443 y Fn(1)2088 1428 -y Fu(])g(])p Fs(env)2281 1443 y Fc(V)2374 1428 y Fs(env)2530 -1443 y Fc(P)2588 1428 y Fu(,)1359 1595 y Ft(S)1427 1610 -y Fn(ds)1498 1595 y Fu([)g([)q Fs(S)1603 1610 y Fn(2)1642 -1595 y Fu(])g(])q Fs(env)1836 1610 y Fc(V)1929 1595 y -Fs(env)2085 1610 y Fc(P)2142 1595 y Fu(\))382 1787 y -Ft(S)450 1802 y Fn(ds)521 1787 y Fu([)g([)q Fr(while)34 -b Fs(b)k Fr(do)33 b Fs(S)12 b Fu(])-17 b(])p Fs(env)1326 -1802 y Fc(V)1419 1787 y Fs(env)1575 1802 y Fc(P)1665 -1787 y Fu(=)33 b(FIX)f Fs(F)618 1954 y Fu(where)i Fs(F)46 -b(g)41 b Fu(=)32 b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])p Ft(\016)p Fu(\(lo)s(okup)32 b Fs(env)2201 -1969 y Fc(V)2261 1954 y Fu(\),)1359 2122 y Fs(g)42 b -Ft(\016)32 b Fu(\()p Ft(S)1634 2137 y Fn(ds)1705 2122 -y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q Fs(env)2003 -2137 y Fc(V)2095 2122 y Fs(env)2251 2137 y Fc(P)2309 -2122 y Fu(\),)33 b(id\))382 2313 y Ft(S)450 2328 y Fn(ds)521 -2313 y Fu([)-17 b([)q Fr(begin)34 b Fs(D)931 2328 y Fc(V)1024 -2313 y Fs(D)1107 2328 y Fc(P)1198 2313 y Fs(S)44 b Fr(end)p -Fu(])-17 b(])r Fs(env)1645 2328 y Fc(V)1738 2313 y Fs(env)1894 -2328 y Fc(P)1984 2313 y Fs(sto)39 b Fu(=)32 b Ft(S)2321 -2328 y Fn(ds)2392 2313 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])p Fs(env)2690 2277 y Fi(0)2690 2338 y Fc(V)2783 2313 -y Fs(env)2939 2277 y Fi(0)2939 2338 y Fc(P)3029 2313 -y Fs(sto)3157 2277 y Fi(0)651 2481 y Fu(where)34 b Ft(D)1012 -2445 y Fn(V)1012 2505 y(ds)1083 2481 y Fu([)-17 b([)q -Fs(D)1204 2496 y Fc(V)1265 2481 y Fu(])g(])q(\()p Fs(env)1497 -2496 y Fc(V)1557 2481 y Fu(,)32 b Fs(sto)6 b Fu(\))33 -b(=)f(\()p Fs(env)2117 2445 y Fi(0)2117 2505 y Fc(V)2177 -2481 y Fu(,)h Fs(sto)2365 2445 y Fi(0)2388 2481 y Fu(\))651 -2648 y(and)f Ft(D)920 2612 y Fn(P)920 2673 y(ds)991 2648 -y Fu([)-17 b([)q Fs(D)1112 2663 y Fc(P)1171 2648 y Fu(])g(])p -Fs(env)1364 2612 y Fi(0)1364 2673 y Fc(V)1457 2648 y -Fs(env)1613 2663 y Fc(P)1703 2648 y Fu(=)33 b Fs(env)1968 -2612 y Fi(0)1968 2673 y Fc(P)382 2840 y Ft(S)450 2855 -y Fn(ds)521 2840 y Fu([)-17 b([)q Fr(call)33 b Fs(p)6 -b Fu(])-17 b(])q Fs(env)1046 2855 y Fc(V)1138 2840 y -Fs(env)1294 2855 y Fc(P)1385 2840 y Fu(=)32 b Fs(env)1649 -2855 y Fc(P)1740 2840 y Fs(p)p 3469 2889 V 0 2892 3473 -4 v 801 3053 a Fu(T)-8 b(able)32 b(4.5:)43 b(Denotational)30 -b(seman)m(tics)j(for)f Fw(Pro)s(c)0 3325 y Fu(Assume)49 -b(that)f(the)g(initial)c(en)m(vironmen)m(ts)49 b(are)f -Fs(env)2033 3340 y Fc(V)2141 3325 y Fu(and)g Fs(env)2502 -3340 y Fc(P)2608 3325 y Fu(and)g(that)g(the)g(initial)0 -3445 y(store)40 b Fs(sto)46 b Fu(has)41 b Fs(sto)46 b -Fu(next)40 b(=)g Fw(12)p Fu(.)66 b(Then)41 b(the)f(\014rst)h(step)f -(will)e(b)s(e)i(to)g(up)s(date)g(the)g(v)-5 b(ariable)0 -3565 y(en)m(vironmen)m(t)33 b(with)f(the)h(declarations)f(of)g(the)h -(outer)f(blo)s(c)m(k:)244 3783 y Ft(D)323 3747 y Fn(V)323 -3808 y(ds)395 3783 y Fu([)-17 b([)p Fr(var)34 b(x)e Fu(:=)h -Fr(7)p Fu(;])-17 b(])q(\()p Fs(env)1148 3798 y Fc(V)1208 -3783 y Fu(,)32 b Fs(sto)6 b Fu(\))513 3951 y(=)32 b Ft(D)701 -3914 y Fn(V)701 3975 y(ds)772 3951 y Fu([)-17 b([)p Fo(")p -Fu(])g(])q(\()p Fs(env)1087 3966 y Fc(V)1147 3951 y Fu([)p -Fr(x)p Ft(7!)p Fw(12)p Fu(],)32 b Fs(sto)6 b Fu([)p Fw(12)p -Ft(7!)p Fw(7)p Fu(][next)p Ft(7!)q Fw(13)p Fu(]\))513 -4118 y(=)32 b(\()p Fs(env)815 4133 y Fc(V)875 4118 y -Fu([)p Fr(x)p Ft(7!)p Fw(12)p Fu(],)h Fs(sto)6 b Fu([)p -Fw(12)p Ft(7!)p Fw(7)p Fu(][next)p Ft(7!)q Fw(13)p Fu(]\))0 -4336 y(Next)33 b(w)m(e)h(up)s(date)f(the)g(pro)s(cedure)g(en)m -(vironmen)m(t:)244 4553 y Ft(D)323 4517 y Fn(P)323 4578 -y(ds)395 4553 y Fu([)-17 b([)p Fr(proc)34 b(p)f(is)g(x)f -Fu(:=)h(0;])-17 b(]\()p Fs(env)1415 4568 y Fc(V)1475 -4553 y Fu([)p Fr(x)p Ft(7!)p Fw(12)p Fu(]\))33 b Fs(env)2019 -4568 y Fc(P)513 4721 y Fu(=)f Ft(D)701 4685 y Fn(P)701 -4746 y(ds)772 4721 y Fu([)-17 b([)p Fo(")p Fu(])g(])q(\()p -Fs(env)1087 4736 y Fc(V)1147 4721 y Fu([)p Fr(x)p Ft(7!)p -Fw(12)p Fu(]\))32 b(\()p Fs(env)1728 4736 y Fc(P)1786 -4721 y Fu([)p Fr(p)p Ft(7!)p Fs(g)9 b Fu(]\))513 4889 -y(=)32 b Fs(env)777 4904 y Fc(P)835 4889 y Fu([)p Fr(p)p -Ft(7!)p Fs(g)9 b Fu(])0 5106 y(where)244 5324 y Fs(g)41 -b(sto)e Fu(=)32 b Ft(S)667 5339 y Fn(ds)738 5324 y Fu([)-17 -b([)q Fr(x)32 b Fu(:=)h Fr(0)p Fu(])-17 b(])q(\()p Fs(env)1278 -5339 y Fc(V)1338 5324 y Fu([)p Fr(x)p Ft(7!)p Fw(12)p -Fu(]\))32 b Fs(env)1881 5339 y Fc(P)1972 5324 y Fs(sto)491 -5492 y Fu(=)g Fs(sto)6 b Fu([)p Fw(12)p Ft(7!)p Fw(0)p -Fu(])p eop -%%Page: 124 134 -124 133 bop 251 130 a Fw(124)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 515 a Fu(b)s(ecause)44 -b Fr(x)f Fu(is)f(to)g(b)s(e)g(found)g(in)g(lo)s(cation)e -Fw(12)i Fu(according)g(to)g(the)h(v)-5 b(ariable)40 b(en)m(vironmen)m -(t.)283 636 y(Then)34 b(w)m(e)g(get)527 798 y Ft(S)595 -813 y Fn(ds)666 798 y Fu([)-17 b([)q Fr(begin)34 b(var)f(x)g -Fu(:=)f Fr(7)p Fu(;)h Fr(proc)h(p)f(is)g(x)f Fu(:=)h -Fr(0)p Fu(;)993 965 y Fr(begin)h(var)f(x)g Fu(:=)f Fr(5)p -Fu(;)h Fr(call)h(p)e(end)i(end)p Fu(])-17 b(])q Fs(env)2653 -980 y Fc(V)2746 965 y Fs(env)2902 980 y Fc(P)2992 965 -y Fs(sto)527 1133 y Fu(=)33 b Ft(S)704 1148 y Fn(ds)775 -1133 y Fu([)-17 b([)p Fr(begin)34 b(var)f(x)g Fu(:=)g -Fr(5)p Fu(;)g Fr(call)g(p)g(end)p Fu(])-17 b(])34 b(\()p -Fs(env)2357 1148 y Fc(V)2417 1133 y Fu([)p Fr(x)p Ft(7!)p -Fw(12)p Fu(]\))f(\()p Fs(env)2999 1148 y Fc(P)3056 1133 -y Fu([)p Fr(p)p Ft(7!)p Fs(g)9 b Fu(]\))1269 1300 y(\()p -Fs(sto)d Fu([)p Fw(12)p Ft(7!)o Fw(7)p Fu(][next)p Ft(7!)q -Fw(13)p Fu(]\))283 1462 y(F)-8 b(or)32 b(the)h(v)-5 b(ariable)31 -b(declarations)h(of)g(the)h(inner)f(blo)s(c)m(k)g(w)m(e)i(ha)m(v)m(e) -527 1624 y Ft(D)607 1588 y Fn(V)607 1649 y(ds)678 1624 -y Fu([)-17 b([)q Fr(var)33 b(x)g Fu(:=)f Fr(5)p Fu(;])-17 -b(])q(\()p Fs(env)1431 1639 y Fc(V)1491 1624 y Fu([)p -Fr(x)p Ft(7!)p Fw(12)p Fu(],)33 b Fs(sto)6 b Fu([)p Fw(12)p -Ft(7!)p Fw(7)p Fu(][next)p Ft(7!)q Fw(13)p Fu(]\))796 -1792 y(=)32 b Ft(D)984 1755 y Fn(V)984 1816 y(ds)1055 -1792 y Fu([)-17 b([)q Fo(")p Fu(])g(]\()p Fs(env)1370 -1807 y Fc(V)1430 1792 y Fu([)p Fr(x)p Ft(7!)p Fw(13)p -Fu(],)33 b Fs(sto)6 b Fu([)p Fw(12)p Ft(7!)p Fw(7)p Fu(][)p -Fw(13)p Ft(7!)p Fw(5)p Fu(][next)p Ft(7!)q Fw(14)p Fu(]\))796 -1959 y(=)32 b(\()p Fs(env)1098 1974 y Fc(V)1159 1959 -y Fu([)p Fr(x)p Ft(7!)p Fw(13)p Fu(],)g Fs(sto)6 b Fu([)p -Fw(12)p Ft(7!)p Fw(7)p Fu(][)p Fw(13)p Ft(7!)p Fw(5)p -Fu(][next)p Ft(7!)q Fw(14)p Fu(]\))283 2121 y(and)527 -2283 y Ft(D)607 2247 y Fn(P)607 2307 y(ds)678 2283 y -Fu([)-17 b([)q Fo(")o Fu(])g(])q(\()p Fs(env)993 2298 -y Fc(V)1053 2283 y Fu([)p Fr(x)p Ft(7!)p Fw(13)p Fu(]\))33 -b(\()p Fs(env)1635 2298 y Fc(P)1692 2283 y Fu([)p Fr(p)p -Ft(7!)p Fs(g)9 b Fu(]\))33 b(=)f Fs(env)2286 2298 y Fc(P)2344 -2283 y Fu([)p Fr(p)p Ft(7!)p Fs(g)9 b Fu(])283 2445 y(Th)m(us)35 -b(w)m(e)e(get)527 2606 y Ft(S)595 2621 y Fn(ds)666 2606 -y Fu([)-17 b([)q Fr(begin)34 b(var)f(x)g Fu(:=)f Fr(5)p -Fu(;)h Fr(call)h(p)f(end)p Fu(])-17 b(])34 b(\()p Fs(env)2249 -2621 y Fc(V)2309 2606 y Fu([)p Fr(x)p Ft(7!)p Fw(12)p -Fu(]\))e(\()p Fs(env)2890 2621 y Fc(P)2948 2606 y Fu([)p -Fr(p)p Ft(7!)p Fs(g)9 b Fu(]\))1269 2774 y(\()p Fs(sto)d -Fu([)p Fw(12)p Ft(7!)o Fw(7)p Fu(][next)p Ft(7!)q Fw(13)p -Fu(]\))796 2942 y(=)32 b Ft(S)972 2957 y Fn(ds)1043 2942 -y Fu([)-17 b([)q Fr(call)34 b(p)p Fu(])-17 b(]\()p Fs(env)1601 -2957 y Fc(V)1662 2942 y Fu([)p Fr(x)p Ft(7!)p Fw(13)p -Fu(]\))32 b(\()p Fs(env)2243 2957 y Fc(P)2301 2942 y -Fu([)p Fr(p)p Ft(7!)p Fs(g)9 b Fu(]\))1269 3109 y(\()p -Fs(sto)d Fu([)p Fw(12)p Ft(7!)o Fw(7)p Fu(][)p Fw(13)p -Ft(7!)p Fw(5)p Fu(][next)p Ft(7!)q Fw(14)p Fu(]\))796 -3277 y(=)32 b Fs(g)42 b Fu(\()p Fs(sto)6 b Fu([)p Fw(12)p -Ft(7!)o Fw(7)p Fu(][)p Fw(13)p Ft(7!)p Fw(5)p Fu(][next)p -Ft(7!)q Fw(14)p Fu(]\))796 3445 y(=)32 b Fs(sto)6 b Fu([)p -Fw(12)p Ft(7!)p Fw(0)p Fu(][)p Fw(13)p Ft(7!)p Fw(5)p -Fu(][next)p Ft(7!)q Fw(14)p Fu(])283 3606 y(so)33 b(w)m(e)h(see)g(that) -e(in)g(the)h(\014nal)e(store)i(the)g(lo)s(cation)e(for)h(the)h(lo)s -(cal)d(v)-5 b(ariable)31 b(has)i(the)g(v)-5 b(alue)32 -b Fw(5)283 3727 y Fu(and)h(the)g(one)g(for)f(the)h(global)d(v)-5 -b(ariable)31 b(has)i(the)g(v)-5 b(alue)32 b Fw(0)p Fu(.)1214 -b Fh(2)283 3899 y Fw(Exercise)37 b(4.67)49 b Fu(Consider)33 -b(the)g(follo)m(wing)d(statemen)m(t)j(in)f Fw(Pro)s(c)p -Fu(:)527 4061 y Fr(begin)i(var)g(x)e Fu(:=)h Fr(0)p Fu(;)816 -4229 y Fr(proc)h(p)f(is)g(x)f Fu(:=)h Fr(x)p Fu(+)p Fr(1)p -Fu(;)816 4397 y Fr(proc)h(q)f(is)g(call)g(p)p Fu(;)816 -4564 y Fr(begin)h(proc)g(p)e(is)h(x)g Fu(:=)g Fr(7)p -Fu(;)1105 4732 y Fr(call)h(q)816 4899 y(end)527 5067 -y(end)283 5229 y Fu(Use)i(the)g(seman)m(tic)e(clauses)i(of)e -Fw(Pro)s(c)h Fu(to)f(illustrate)f(that)i(pro)s(cedures)h(ha)m(v)m(e)g -(static)f(scop)s(e,)283 5349 y(that)i(is)e(sho)m(w)j(that)e(the)h -(\014nal)e(store)i(will)d(asso)s(ciate)i(the)g(lo)s(cation)e(of)i -Fr(x)h Fu(with)e(the)i(v)-5 b(alue)36 b Fw(1)283 5470 -y Fu(\(rather)d(than)g Fw(7)p Fu(\).)2718 b Fh(2)p eop -%%Page: 125 135 -125 134 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(125)p 0 193 3473 4 v 0 419 V 0 934 4 516 v 382 526 -a Ft(D)462 489 y Fn(P)462 550 y(ds)533 526 y Fu([)-17 -b([)p Fr(proc)34 b Fs(p)k Fr(is)c Fs(S)12 b Fu(;)32 b -Fs(D)1241 541 y Fc(P)1300 526 y Fu(])-17 b(])p Fs(env)1493 -541 y Fc(V)1586 526 y Fs(env)1742 541 y Fc(P)1832 526 -y Fu(=)33 b Ft(D)2020 489 y Fn(P)2020 550 y(ds)2091 526 -y Fu([)-17 b([)q Fs(D)2212 541 y Fc(P)2271 526 y Fu(])g(])p -Fs(env)2464 541 y Fc(V)2557 526 y Fu(\()p Fs(env)2751 -541 y Fc(P)2809 526 y Fu([)p Fs(p)6 b Ft(7!)o Fu(FIX)33 -b Fs(F)13 b Fu(]\))651 693 y(where)34 b Fs(F)45 b(g)c -Fu(=)33 b Ft(S)1304 708 y Fn(ds)1376 693 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])q Fs(env)1674 708 y Fc(V)1766 -693 y Fu(\()p Fs(env)1960 708 y Fc(P)2018 693 y Fu([)p -Fs(p)6 b Ft(7!)p Fs(g)j Fu(]\))382 884 y Ft(D)462 848 -y Fn(P)462 909 y(ds)533 884 y Fu([)-17 b([)p Fo(")p Fu(])g(])q -Fs(env)810 899 y Fc(V)902 884 y Fu(=)33 b(id)p 3469 934 -V 0 937 3473 4 v 232 1098 a(T)-8 b(able)32 b(4.6:)43 -b(Denotational)30 b(seman)m(tics)j(for)f(recursiv)m(e)i(pro)s(cedure)g -(declarations)0 1370 y Fw(Recursiv)m(e)i(pro)s(cedures)0 -1555 y Fu(In)d(the)f(case)h(where)h(pro)s(cedures)f(are)g(allo)m(w)m -(ed)e(to)h(b)s(e)g Fs(r)-5 b(e)g(cursive)39 b Fu(w)m(e)34 -b(shall)c(b)s(e)j(in)m(terested)g(in)0 1675 y(a)f(function)g -Fs(g)41 b Fu(in)32 b Fw(Store)h Fo(,)-17 b Ft(!)32 b -Fw(Store)h Fu(satisfying)244 1859 y Fs(g)41 b Fu(=)32 -b Ft(S)506 1874 y Fn(ds)577 1859 y Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])p Fs(env)875 1874 y Fc(V)968 1859 y Fu(\()p -Fs(env)1162 1874 y Fc(P)1220 1859 y Fu([)p Fs(p)6 b Ft(7!)o -Fs(g)j Fu(]\))0 2043 y(since)29 b(this)f(will)f(ensure)j(that)e(the)h -(meaning)f(of)g(all)e(the)j(recursiv)m(e)i(calls)c(is)h(the)h(same)g -(as)g(that)0 2164 y(of)g(the)h(pro)s(cedure)g(b)s(eing)f(de\014ned.)44 -b(F)-8 b(or)28 b(this)h(only)g(the)h(clause)f(for)g Ft(D)2599 -2127 y Fn(P)2599 2188 y(ds)2670 2164 y Fu([)-17 b([)q -Fr(proc)33 b Fs(p)39 b Fr(is)33 b Fs(S)12 b Fu(;)32 b -Fo(D)3376 2179 y Fc(P)3435 2164 y Fu(])-17 b(])0 2284 -y(needs)42 b(to)e(b)s(e)h(mo)s(di\014ed)f(and)g(the)h(new)h(clause)f -(is)f(giv)m(en)h(in)f(T)-8 b(able)40 b(4.6.)67 b(W)-8 -b(e)41 b(shall)e(see)j(in)0 2404 y(Exercise)34 b(4.69)e(that)h(this)f -(is)h(a)f(p)s(ermissible)f(de\014nition,)h(that)h(is)f -Fs(F)46 b Fu(of)32 b(T)-8 b(able)32 b(4.6)h(is)f(indeed)0 -2525 y(con)m(tin)m(uous.)0 2692 y Fw(Remark)e Fu(Let)g(us)h(brie\015y)f -(compare)g(the)g(ab)s(o)m(v)m(e)h(seman)m(tics)g(with)f(the)g(op)s -(erational)e(seman-)0 2813 y(tics)35 b(giv)m(en)g(in)g(Section)g(2.5)g -(for)f(the)i(same)f(language.)51 b(In)35 b(the)h(op)s(erational)d -(seman)m(tics)i(the)0 2933 y(p)s(ossibilit)m(y)27 b(of)i(recursion)g -(is)g(handled)g(b)m(y)h(up)s(dating)e(the)i(en)m(vironmen)m(t)f -Fs(e)-5 b(ach)32 b(time)f(the)h(pr)-5 b(o-)0 3053 y(c)g(e)g(dur)g(e)42 -b(is)g(c)-5 b(al)5 b(le)-5 b(d)50 b Fu(and,)43 b(except)f(for)e -(recording)g(the)h(declaration,)h(no)e(action)g(tak)m(es)i(place)0 -3174 y(when)27 b(the)f(pro)s(cedure)g(is)f(declared.)41 -b(In)26 b(the)g(denotational)e(approac)m(h,)j(the)f(situation)e(is)h(v) -m(ery)0 3294 y(di\013eren)m(t.)66 b(The)41 b(p)s(ossibilit)m(y)c(of)j -(recursion)g(is)g(handled)f Fs(onc)-5 b(e)41 b(and)g(for)h(al)5 -b(l)p Fu(,)41 b(namely)e Fs(when)0 3415 y(the)c(pr)-5 -b(o)g(c)g(e)g(dur)g(e)34 b(is)h(de)-5 b(clar)g(e)g(d)p -Fu(.)2340 b Fh(2)0 3617 y Fw(Exercise)36 b(4.68)49 b -Fu(Consider)33 b(the)g(declaration)e(of)h(the)h(factorial)d(pro)s -(cedure)244 3801 y Fr(proc)j(fac)h(is)f(begin)h(var)f(z)g -Fu(:=)f Fr(x)p Fu(;)1092 3969 y Fr(if)h(x)f Fu(=)h Fr(1)g(then)g(skip) -1092 4136 y(else)g Fu(\()p Fr(x)g Fu(:=)f Fr(x)h Ft(\000)g -Fr(1)p Fu(;)g Fr(call)h(fac)p Fu(;)f Fr(y)g Fu(:=)f Fr(z)h -Fo(?)f Fr(y)p Fu(\))803 4304 y Fr(end)p Fu(;)0 4488 y(Assume)39 -b(that)g(the)g(initial)c(en)m(vironmen)m(ts)k(are)g Fs(env)1977 -4503 y Fc(V)2076 4488 y Fu(and)f Fs(env)2427 4503 y Fc(P)2524 -4488 y Fu(and)g(that)h Fs(env)3093 4503 y Fc(V)3192 4488 -y Fr(x)f Fu(=)h Fs(l)3431 4503 y Fn(x)0 4608 y Fu(and)33 -b Fs(env)346 4623 y Fc(V)438 4608 y Fr(y)g Fu(=)f Fs(l)665 -4623 y Fn(y)708 4608 y Fu(.)44 b(Determine)31 b(the)i(up)s(dated)g(pro) -s(cedure)h(en)m(vironmen)m(t.)586 b Fh(2)146 4811 y Fu(As)31 -b(for)e Fw(While)f Fu(w)m(e)j(m)m(ust)f(ensure)h(that)f(the)g(seman)m -(tic)g(clauses)g(de\014ne)h(a)f(total)e(function)0 4931 -y Ft(S)68 4946 y Fn(ds)139 4931 y Fu(.)43 b(W)-8 b(e)33 -b(lea)m(v)m(e)h(the)f(details)e(to)h(the)h(exercise)h(b)s(elo)m(w.)0 -5133 y Fw(Exercise)i(4.69)49 b Fu(**)40 b(T)-8 b(o)40 -b(ensure)h(that)f(the)g(clauses)h(for)e Ft(S)2243 5148 -y Fn(ds)2354 5133 y Fu(de\014ne)i(a)f(total)e(function)h(w)m(e)0 -5254 y(m)m(ust)23 b(sho)m(w)h(that)f(FIX)g(is)f(only)h(applied)e(to)i -(con)m(tin)m(uous)h(functions.)40 b(In)23 b(the)h(case)f(of)g(recursiv) -m(e)0 5374 y(pro)s(cedures)34 b(this)f(is)f(a)h(rather)g(lab)s(orious)d -(task.)45 b(First)32 b(one)h(ma)m(y)g(use)h(structural)e(induction)0 -5494 y(to)g(sho)m(w)i(that)e Ft(D)652 5458 y Fn(V)652 -5519 y(ds)756 5494 y Fu(is)g(indeed)h(a)f(w)m(ell-de\014ned)h -(function.)43 b(Secondly)33 b(one)g(ma)m(y)f(de\014ne)p -eop -%%Page: 126 136 -126 135 bop 251 130 a Fw(126)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 527 515 a Fs(env)683 -530 y Fc(P)774 515 y Ft(v)851 479 y Fi(0)907 515 y Fs(env)1063 -479 y Fi(0)1063 540 y Fc(P)1153 515 y Fu(if)c(and)h(only)f(if)f -Fs(env)1892 530 y Fc(P)1982 515 y Fs(p)39 b Ft(v)33 b -Fs(env)2337 479 y Fi(0)2337 540 y Fc(P)2427 515 y Fs(p)39 -b Fu(for)32 b(all)e Fs(p)39 b Ft(2)33 b Fw(Pname)283 -712 y Fu(and)j(sho)m(w)g(that)e(\()p Fw(En)m(v)1163 727 -y Fn(P)1215 712 y Fu(,)i Ft(v)1355 676 y Fi(0)1379 712 -y Fu(\))e(is)h(a)g(ccp)s(o.)51 b(Finally)-8 b(,)32 b(one)k(ma)m(y)e -(use)i(Exercise)h(4.41)d(\(with)g Fs(D)283 833 y Fu(b)s(eing)k -Fw(Store)f Fo(,)-17 b Ft(!)38 b Fw(Store)p Fu(\))g(to)f(sho)m(w)i(that) -f(for)g(all)d Fs(env)2370 848 y Fc(V)2468 833 y Ft(2)k -Fw(En)m(v)2765 848 y Fn(V)2860 833 y Fu(the)g(clauses)f(of)g(T)-8 -b(ables)283 953 y(4.3,)33 b(4.5)f(and)h(4.6)f(do)g(de\014ne)i(con)m -(tin)m(uous)f(functions)527 1150 y Ft(S)595 1165 y Fn(ds)666 -1150 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])p Fs(env)964 -1165 y Fc(V)1024 1150 y Fu(:)44 b Fw(En)m(v)1287 1165 -y Fn(P)1371 1150 y Ft(!)33 b Fu(\()p Fw(Store)f Fo(,)-17 -b Ft(!)32 b Fw(Store)p Fu(\))527 1318 y Ft(D)607 1282 -y Fn(P)607 1343 y(ds)678 1318 y Fu([)-17 b([)q Fs(D)799 -1333 y Fc(P)857 1318 y Fu(])g(])q Fs(env)1051 1333 y -Fc(V)1111 1318 y Fu(:)44 b Fw(En)m(v)1374 1333 y Fn(P)1458 -1318 y Ft(!)32 b Fw(En)m(v)1782 1333 y Fn(P)283 1515 -y Fu(This)38 b(is)e(p)s(erformed)g(using)h(m)m(utual)f(structural)g -(induction)g(on)h(statemen)m(ts)h Fs(S)49 b Fu(and)37 -b(decla-)283 1635 y(rations)32 b Fs(D)692 1650 y Fn(P)744 -1635 y Fu(.)2910 b Fh(2)283 1855 y Fw(Exercise)37 b(4.70)49 -b Fu(Mo)s(dify)43 b(the)h(syn)m(tax)h(of)e(pro)s(cedures)i(so)f(that)f -(they)i(tak)m(e)f(t)m(w)m(o)h Fs(c)-5 b(al)5 b(l-by-)283 -1976 y(value)40 b Fu(parameters:)527 2173 y Fs(D)610 -2188 y Fc(P)702 2173 y Fu(::=)32 b Fr(proc)i Fs(p)6 b -Fu(\()p Fs(x)1253 2188 y Fn(1)1292 2173 y Fu(,)p Fs(x)1376 -2188 y Fn(2)1415 2173 y Fu(\))33 b Fr(is)g Fs(S)12 b -Fu(;)32 b Fs(D)1830 2188 y Fc(P)1921 2173 y Ft(j)g Fo(")527 -2340 y Fs(S)45 b Fu(::=)32 b Ft(\001)17 b(\001)g(\001)31 -b(j)h Fr(call)i Fs(p)6 b Fu(\()p Fs(a)1387 2355 y Fn(1)1426 -2340 y Fu(,)p Fs(a)1510 2355 y Fn(2)1550 2340 y Fu(\))283 -2537 y(The)41 b(meaning)c(of)i(a)g(pro)s(cedure)h(will)d(no)m(w)j(dep)s -(end)g(up)s(on)g(the)f(v)-5 b(alues)39 b(of)g(its)g(parameters)283 -2658 y(as)34 b(w)m(ell)f(as)h(the)g(state)g(in)f(whic)m(h)h(it)f(is)g -(executed.)49 b(W)-8 b(e)34 b(therefore)g(c)m(hange)h(the)f -(de\014nition)e(of)283 2778 y Fw(En)m(v)475 2793 y Fn(P)560 -2778 y Fu(to)g(b)s(e)527 2975 y Fw(En)m(v)719 2990 y -Fn(P)804 2975 y Fu(=)g Fw(Pname)h Ft(!)f Fu(\(\()p Fw(Z)h -Ft(\002)g Fw(Z)p Fu(\))g Ft(!)f Fu(\()p Fw(Store)g Fo(,)-17 -b Ft(!)33 b Fw(Store)p Fu(\)\))283 3172 y(so)d(that)f(giv)m(en)h(a)f -(pair)f(of)h(v)-5 b(alues)29 b(and)g(a)h(store)f(w)m(e)i(can)e -(determine)g(the)h(\014nal)f(store.)42 b(Mo)s(dify)283 -3293 y(the)h(de\014nition)e(of)g Ft(S)1092 3308 y Fn(ds)1205 -3293 y Fu(to)g(use)i(this)e(pro)s(cedure)i(en)m(vironmen)m(t.)72 -b(Also)41 b(pro)m(vide)h(seman)m(tic)283 3413 y(clauses)36 -b(for)f Ft(D)844 3377 y Fn(P)844 3438 y(ds)950 3413 y -Fu(in)f(the)i(case)g(of)e(non-recursiv)m(e)j(as)e(w)m(ell)f(as)i -(recursiv)m(e)g(pro)s(cedures.)53 b(Con-)283 3533 y(struct)34 -b(statemen)m(ts)f(that)g(illustrate)d(ho)m(w)j(the)g(new)h(clauses)f -(are)g(used.)723 b Fh(2)283 3753 y Fw(Exercise)37 b(4.71)49 -b Fu(*)35 b(Mo)s(dify)f(the)h(seman)m(tics)h(of)e Fw(Pro)s(c)h -Fu(so)g(that)g(dynamic)f(scop)s(e)i(rules)f(are)283 3874 -y(emplo)m(y)m(ed)e(for)f(v)-5 b(ariables)32 b(as)g(w)m(ell)g(as)h(pro)s -(cedures.)1492 b Fh(2)283 4161 y Fp(The)45 b(concept)g(of)g(con)l(tin)l -(uations)283 4346 y Fu(Another)35 b(imp)s(ortan)m(t)c(concept)k(from)d -(denotational)g(seman)m(tics)i(is)f(that)g(of)g Fs(c)-5 -b(ontinuations)8 b Fu(.)283 4466 y(T)-8 b(o)35 b(illustrate)e(it)h(w)m -(e)i(shall)d(consider)i(an)g(extension)h(of)e Fw(While)f -Fu(where)k(exceptions)f(can)f(b)s(e)283 4587 y(raised)e(and)f(handled.) -44 b(The)33 b(new)h(language)d(is)i(called)e Fw(Exc)h -Fu(and)h(its)f(syn)m(tax)i(is:)577 4775 y Fs(S)112 b -Fu(::=)99 b Fs(x)45 b Fu(:=)32 b Fs(a)40 b Ft(j)32 b -Fr(skip)i Ft(j)e Fs(S)1713 4790 y Fn(1)1785 4775 y Fu(;)g -Fs(S)1911 4790 y Fn(2)1983 4775 y Ft(j)g Fr(if)h Fs(b)39 -b Fr(then)33 b Fs(S)2566 4790 y Fn(1)2638 4775 y Fr(else)h -Fs(S)2943 4790 y Fn(2)795 4943 y Ft(j)150 b Fr(while)34 -b Fs(b)39 b Fr(do)33 b Fs(S)44 b Ft(j)32 b Fr(begin)i -Fs(S)1996 4958 y Fn(1)2068 4943 y Fr(handle)g Fs(e)7 -b Fu(:)44 b Fs(S)2598 4958 y Fn(2)2669 4943 y Fr(end)34 -b Ft(j)e Fr(raise)i Fs(e)283 5133 y Fu(The)c(meta-v)-5 -b(ariable)26 b Fs(e)36 b Fu(ranges)29 b(o)m(v)m(er)h(the)f(syn)m -(tactic)g(category)g Fw(Exception)56 b Fu(of)29 b(exceptions.)283 -5254 y(The)34 b(statemen)m(t)e Fr(raise)i Fs(e)39 b Fu(is)32 -b(a)f(kind)h(of)g(jump)g(instruction:)42 b(when)33 b(it)e(is)h(encoun)m -(tered,)i(the)283 5374 y(execution)f(of)d(the)i(encapsulating)f(blo)s -(c)m(k)g(is)g(stopp)s(ed)h(and)g(the)f(\015o)m(w)h(of)f(con)m(trol)g -(is)g(giv)m(en)g(to)283 5494 y(the)i(statemen)m(t)h(declaring)d(the)i -(exception)g Fs(e)7 b Fu(.)44 b(An)33 b(example)f(is)g(the)h(statemen)m -(t)p eop -%%Page: 127 137 -127 136 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(127)p 0 193 3473 4 v 244 515 a Fr(begin)34 b(while)g(true)f(do)g(if)g -(x)p Ft(\024)q Fr(0)1194 683 y(then)h(raise)g(exit)1194 -851 y(else)g(x)f Fu(:=)f Fr(x)p Ft(\000)p Fr(1)533 1018 -y(handle)i(exit)p Fu(:)44 b Fr(y)33 b Fu(:=)g Fr(7)244 -1186 y(end)0 1381 y Fu(Assume)d(that)f Fs(s)614 1396 -y Fn(0)683 1381 y Fu(is)f(the)i(initial)25 b(state)30 -b(and)f(that)g Fs(s)1898 1396 y Fn(0)1967 1381 y Fr(x)g -Fo(>)g Fw(0)p Fu(.)43 b(Then)30 b(the)g(false)e(branc)m(h)i(of)f(the)0 -1502 y(conditional)h(will)h(b)s(e)h(c)m(hosen)j(and)e(the)g(v)-5 -b(alue)32 b(of)g Fr(x)h Fu(decremen)m(ted.)46 b(Ev)m(en)m(tually)-8 -b(,)33 b Fr(x)g Fu(gets)g(the)0 1622 y(v)-5 b(alue)31 -b Fw(0)g Fu(and)g(the)g(true)h(branc)m(h)g(of)e(the)i(conditional)c -(will)h(raise)i(the)g(exception)h Fr(exit)p Fu(.)44 b(This)0 -1742 y(will)37 b(cause)k(the)e(execution)h(of)f(the)h -Fr(while)p Fu(-lo)s(op)f(to)g(b)s(e)h(terminated)e(and)h(con)m(trol)g -(will)e(b)s(e)0 1863 y(transferred)d(to)f(the)h(handler)g(for)e -Fr(exit)p Fu(.)48 b(Th)m(us)35 b(the)f(statemen)m(t)g(will)d(terminate) -h(in)h(a)g(state)0 1983 y(where)h Fr(x)f Fu(has)g(the)g(v)-5 -b(alue)32 b Fw(0)g Fu(and)h Fr(y)g Fu(the)g(v)-5 b(alue)32 -b Fw(7)p Fu(.)146 2103 y(The)39 b(meaning)e(of)g(an)h(exception)h(will) -c(b)s(e)j(the)h(e\013ect)f(of)g Fs(exe)-5 b(cuting)39 -b(the)h(r)-5 b(emainder)39 b(of)0 2224 y(the)c(pr)-5 -b(o)g(gr)g(am)39 b Fu(starting)32 b(from)f(the)i(handler.)43 -b(Consider)33 b(a)g(statemen)m(t)g(of)f(the)h(form)244 -2419 y(\()p Fr(if)g Fs(b)38 b Fr(then)c Fs(S)805 2434 -y Fn(1)877 2419 y Fr(else)f Fs(S)1181 2434 y Fn(2)1221 -2419 y Fu(\))f(;)h Fs(S)1418 2434 y Fn(3)0 2614 y Fu(In)43 -b(the)h(language)e Fw(While)g Fu(it)g(is)g(eviden)m(t)i(that)f(indep)s -(enden)m(tly)h(of)f(whether)h(w)m(e)g(execute)0 2735 -y Fs(S)67 2750 y Fn(1)144 2735 y Fu(or)38 b Fs(S)336 -2750 y Fn(2)413 2735 y Fu(w)m(e)h(ha)m(v)m(e)g(to)e(con)m(tin)m(ue)i -(with)e Fs(S)1606 2750 y Fn(3)1646 2735 y Fu(.)59 b(When)39 -b(w)m(e)g(in)m(tro)s(duce)e(exceptions)i(this)f(do)s(es)0 -2855 y(not)32 b(hold)f(an)m(y)h(longer:)43 b(if)30 b(one)j(of)e(the)h -(branc)m(hes)i(raises)e(an)g(exception)g(not)g(handled)g(inside)0 -2975 y(that)41 b(branc)m(h,)j(then)d(w)m(e)h(will)d(certainly)h(not)g -(execute)j Fs(S)2173 2990 y Fn(3)2212 2975 y Fu(.)69 -b(It)41 b(is)f(therefore)i(necessary)h(to)0 3096 y(rewrite)32 -b(the)h(seman)m(tics)f(of)f Fw(While)g Fu(to)h(mak)m(e)g(the)g -(\\e\013ect)h(of)e(executing)i(the)g(remainder)e(of)0 -3216 y(the)i(program")e(more)h(explicit.)0 3475 y Fw(Con)m(tin)m -(uation)k(st)m(yle)h(seman)m(tics)f(for)i(While)0 3659 -y Fu(In)26 b(a)f Fs(c)-5 b(ontinuation)27 b(style)i(semantics)j -Fu(the)26 b(con)m(tin)m(uations)f(describ)s(e)h(the)51 -b Fs(e\013e)-5 b(ct)28 b(of)g(exe)-5 b(cuting)0 3780 -y(the)31 b(r)-5 b(emainder)29 b(of)h(the)h(pr)-5 b(o)g(gr)g(am)p -Fu(.)41 b(F)-8 b(or)27 b(us)i(a)e Fs(c)-5 b(ontinuation)35 -b(c)e Fu(is)28 b(an)g(elemen)m(t)f(of)h(the)g(domain)244 -3975 y Fw(Con)m(t)k Fu(=)h Fw(State)f Fo(,)-17 b Ft(!)33 -b Fw(State)0 4170 y Fu(and)38 b(is)f(th)m(us)h(a)f(partial)f(function)h -(from)f Fw(State)h Fu(to)g Fw(State)p Fu(.)59 b(Sometimes)36 -b(one)i(uses)h(partial)0 4291 y(functions)24 b(from)f -Fw(State)h Fu(to)f(a)h(\\simpler")e(set)i Fw(Ans)g Fu(of)g(answ)m(ers)i -(but)e(in)f(all)f(cases)j(the)g(purp)s(ose)0 4411 y(of)e(a)g(con)m(tin) -m(uation)g(is)g(to)g(express)i(the)f(\\outcome")f(of)g(the)h(remainder) -e(of)h(the)h(program)e(when)0 4531 y(started)33 b(in)f(a)g(giv)m(en)h -(state.)146 4652 y(Consider)e(a)f(statemen)m(t)g(of)g(the)g(form)f -Ft(\001)17 b(\001)g(\001)n Fu(;)31 b Fs(S)42 b Fu(;)30 -b Ft(\001)17 b(\001)g(\001)28 b Fu(and)i(let)g(us)h(explain)e(the)h -(meaning)f(of)0 4772 y Fs(S)47 b Fu(in)34 b(terms)g(of)h(the)g -(e\013ect)h(of)e(executing)i(the)f(remainder)f(of)g(the)i(program.)49 -b(The)35 b(starting)0 4893 y(p)s(oin)m(t)40 b(will)f(b)s(e)j(the)g(con) -m(tin)m(uation)e Fs(c)47 b Fu(determining)39 b(the)j(e\013ect)g(of)f -(executing)h(the)g(part)f(of)0 5013 y(the)35 b(program)f -Fs(after)45 b(S)12 b Fu(,)35 b(that)g(is)f Fs(c)41 b(s)i -Fu(is)34 b(the)h(state)h(obtained)e(when)i(the)g(remainder)e(of)g(the)0 -5133 y(program)29 b(is)i(executed)i(from)c(state)j Fs(s)8 -b Fu(.)43 b(W)-8 b(e)31 b(shall)e(then)j(determine)e(the)i(e\013ect)f -(of)g(executing)0 5254 y Fs(S)45 b Fu(and)32 b(the)i(remainder)e(of)g -(the)h(program,)f(that)g(is)h(w)m(e)g(shall)f(determine)g(a)h(con)m -(tin)m(uation)f Fs(c)3450 5218 y Fi(0)0 5374 y Fu(suc)m(h)f(that)e -Fs(c)476 5338 y Fi(0)529 5374 y Fs(s)37 b Fu(is)29 b(the)h(state)g -(obtained)f(when)i(executing)f Fs(S)42 b Fu(and)29 b(the)h(part)g(of)f -(the)h(program)0 5494 y(follo)m(wing)g Fs(S)44 b Fu(from)32 -b(state)h Fs(s)8 b Fu(.)43 b(Pictorially)-8 b(,)30 b(from)p -eop -%%Page: 128 138 -128 137 bop 251 130 a Fw(128)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 1501 -4 1083 v 666 519 a Ft(S)733 483 y Fi(0)733 543 y Fn(cs)797 -519 y Fu([)-17 b([)p Fs(x)12 b Fu(:=)p Fs(a)7 b Fu(])-17 -b(])q Fs(c)38 b(s)j Fu(=)32 b Fs(c)38 b Fu(\()p Fs(s)8 -b Fu([)p Fs(x)k Ft(7!A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q Fs(s)8 b Fu(]\))666 710 y Ft(S)733 674 y Fi(0)733 -735 y Fn(cs)797 710 y Fu([)-17 b([)p Fr(skip)p Fu(])g(])34 -b(=)f(id)666 901 y Ft(S)733 865 y Fi(0)733 926 y Fn(cs)797 -901 y Fu([)-17 b([)p Fs(S)901 916 y Fn(1)973 901 y Fu(;)33 -b Fs(S)1100 916 y Fn(2)1139 901 y Fu(])-17 b(])33 b(=)f -Ft(S)1385 865 y Fi(0)1385 926 y Fn(cs)1449 901 y Fu([)-17 -b([)p Fs(S)1553 916 y Fn(1)1592 901 y Fu(])g(])34 b Ft(\016)e(S)1813 -865 y Fi(0)1813 926 y Fn(cs)1876 901 y Fu([)-17 b([)q -Fs(S)1981 916 y Fn(2)2020 901 y Fu(])g(])666 1092 y Ft(S)733 -1056 y Fi(0)733 1117 y Fn(cs)797 1092 y Fu([)g([)p Fr(if)33 -b Fs(b)39 b Fr(then)33 b Fs(S)1357 1107 y Fn(1)1429 1092 -y Fr(else)h Fs(S)1734 1107 y Fn(2)1773 1092 y Fu(])-17 -b(])q Fs(c)38 b Fu(=)32 b(cond\()p Ft(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(],)33 b Ft(S)2563 1056 y Fi(0)2563 -1117 y Fn(cs)2626 1092 y Fu([)-17 b([)p Fs(S)2730 1107 -y Fn(1)2770 1092 y Fu(])g(])p Fs(c)6 b Fu(,)32 b Ft(S)2985 -1056 y Fi(0)2985 1117 y Fn(cs)3049 1092 y Fu([)-17 b([)p -Fs(S)3153 1107 y Fn(2)3193 1092 y Fu(])g(])p Fs(c)6 b -Fu(\))666 1284 y Ft(S)733 1248 y Fi(0)733 1308 y Fn(cs)797 -1284 y Fu([)-17 b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(])-17 b(])33 b(=)f(FIX)g Fs(G)934 1451 -y Fu(where)i(\()p Fs(G)42 b(g)9 b Fu(\))32 b Fs(c)38 -b Fu(=)32 b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b Ft(S)2247 1415 y Fi(0)2247 1476 y Fn(cs)2310 -1451 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(]\()p Fs(g)41 -b(c)6 b Fu(\),)32 b Fs(c)6 b Fu(\))p 3753 1501 V 283 -1504 3473 4 v 937 1665 a(T)-8 b(able)32 b(4.7:)43 b(Con)m(tin)m(uation) -32 b(st)m(yle)h(seman)m(tics)g(for)f Fw(While)769 1959 -y Ft(\001)17 b(\001)g(\001)240 b Fu(;)300 b Fs(S)310 -b Fu(;)275 b Ft(\001)17 b(\001)g(\001)1879 1994 y Fg(|)p -1916 1994 226 10 v 226 w({z)p 2216 1994 V 226 w(})2154 -2075 y Fs(c)283 2266 y Fu(w)m(e)34 b(w)m(an)m(t)g(to)e(obtain)769 -2491 y Ft(\001)17 b(\001)g(\001)240 b Fu(;)300 b Fs(S)278 -b Fu(;)259 b Ft(\001)17 b(\001)g(\001)1187 2545 y Fg(|)p -1224 2545 548 10 v 548 w({z)p 1846 2545 V 548 w(})1772 -2657 y Fs(c)1823 2621 y Fi(0)283 2851 y Fu(W)-8 b(e)49 -b(shall)d(de\014ne)j(a)e(seman)m(tic)g(function)h Ft(S)1987 -2815 y Fi(0)1987 2876 y Fn(cs)2098 2851 y Fu(for)f Fw(While)g -Fu(that)g(ac)m(hiev)m(es)i(this.)89 b(It)47 b(has)283 -2971 y(functionalit)m(y)527 3196 y Ft(S)595 3160 y Fi(0)595 -3221 y Fn(cs)658 3196 y Fu(:)d Fw(Stm)32 b Ft(!)g Fu(\()p -Fw(Con)m(t)g Ft(!)g Fw(Con)m(t)p Fu(\))283 3421 y(and)j(is)f(de\014ned) -h(in)f(T)-8 b(able)34 b(4.7.)48 b(The)36 b(clauses)f(for)e(assignmen)m -(t)h(and)h Fr(skip)g Fu(are)f(straigh)m(tfor-)283 3542 -y(w)m(ard;)g(ho)m(w)m(ev)m(er,)h(note)e(that)g(w)m(e)h(no)m(w)f(use)h -(id)e(as)h(the)g(iden)m(tit)m(y)g(function)f(on)h Fw(Con)m(t)p -Fu(,)g(that)f(is)283 3662 y(id)c Fs(c)35 b(s)h Fu(=)29 -b Fs(c)34 b(s)8 b Fu(.)42 b(In)29 b(the)g(clause)g(for)g(comp)s -(osition)d(the)j(order)g(of)f(the)h(functional)e(comp)s(osition)283 -3783 y(is)33 b Fs(r)-5 b(everse)g(d)42 b Fu(compared)33 -b(with)g(the)g(direct)g(st)m(yle)g(seman)m(tics)h(of)e(T)-8 -b(able)33 b(4.1.)44 b(In)m(tuitiv)m(ely)-8 b(,)32 b(the)283 -3903 y(reason)43 b(is)e(that)h(the)g(con)m(tin)m(uations)f(are)h -(\\pulled)f(bac)m(kw)m(ards")i(through)f(the)g(t)m(w)m(o)h(state-)283 -4023 y(men)m(ts.)55 b(So)36 b(assuming)f(that)h Fs(c)41 -b Fu(is)36 b(the)g(con)m(tin)m(uation)f(for)h(the)g(remainder)f(of)h -(the)g(program)283 4144 y(w)m(e)44 b(shall)c(\014rst)j(determine)f(a)g -(con)m(tin)m(uation)f(for)g Fs(S)2239 4159 y Fn(2)2321 -4144 y Fu(follo)m(w)m(ed)g(b)m(y)i(the)g(remainder)e(of)g(the)283 -4264 y(program)32 b(and)g(next)i(for)e Fs(S)1299 4279 -y Fn(1)1371 4264 y Fu(follo)m(w)m(ed)f(b)m(y)j Fs(S)1950 -4279 y Fn(2)2022 4264 y Fs(and)42 b Fu(the)33 b(remainder)e(of)i(the)g -(program.)430 4389 y(The)42 b(clause)g(for)f(the)g(conditional)e(is)i -(straigh)m(tforw)m(ard)g(as)g(the)h(con)m(tin)m(uation)f(applies)283 -4509 y(to)g(b)s(oth)g(branc)m(hes.)72 b(In)41 b(the)h(clause)f(for)g -(the)h Fr(while)p Fu(-construct)h(w)m(e)f(use)h(the)e(\014xed)i(p)s -(oin)m(t)283 4630 y(op)s(erator)33 b(as)g(in)g(the)h(direct)f(st)m(yle) -g(seman)m(tics.)46 b(If)33 b(the)h(test)g(of)f Fr(while)h -Fs(b)39 b Fr(do)34 b Fs(S)45 b Fu(ev)-5 b(aluates)33 -b(to)283 4750 y Fw(\013)g Fu(then)f(w)m(e)h(return)f(the)g(con)m(tin)m -(uation)f Fs(c)37 b Fu(for)31 b(the)h(remainder)f(of)g(the)i(program.) -41 b(If)32 b(the)g(test)283 4870 y(ev)-5 b(aluates)33 -b(to)g Fw(tt)f Fu(then)i Fs(g)41 b(c)e Fu(denotes)34 -b(the)g(e\013ect)g(of)e(executing)i(the)f(remainder)f(of)h(the)g(lo)s -(op)283 4991 y(follo)m(w)m(ed)j(b)m(y)h(the)g(remainder)e(of)h(the)h -(program)d(and)j(is)f(the)g(con)m(tin)m(uation)g(to)f(b)s(e)i(used)g -(for)283 5111 y(the)c(\014rst)h(unfolding)c(of)i(the)h(lo)s(op.)283 -5374 y Fw(Example)k(4.72)49 b Fu(Consider)34 b(the)g(statemen)m(t)g -Fr(z)g Fu(:=)f Fr(x)p Fu(;)i Fr(x)f Fu(:=)f Fr(y)p Fu(;)i -Fr(y)e Fu(:=)h Fr(z)g Fu(of)f(Chapter)h(1.)47 b(Let)283 -5494 y(id)32 b(b)s(e)h(the)g(iden)m(tit)m(y)f(function)h(on)f -Fw(State)p Fu(.)44 b(Then)33 b(w)m(e)h(ha)m(v)m(e)p eop -%%Page: 129 139 -129 138 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(129)p 0 193 3473 4 v 244 515 a Ft(S)312 479 y Fi(0)312 -540 y Fn(cs)375 515 y Fu([)-17 b([)q Fr(z)32 b Fu(:=)h -Fr(x)p Fu(;)g Fr(x)g Fu(:=)f Fr(y)p Fu(;)h Fr(y)g Fu(:=)f -Fr(z)p Fu(])-17 b(])q(id)413 683 y(=)32 b(\()p Ft(S)627 -647 y Fi(0)627 708 y Fn(cs)690 683 y Fu([)-17 b([)q Fr(z)32 -b Fu(:=)h Fr(x)p Fu(])-17 b(])33 b Ft(\016)g(S)1218 647 -y Fi(0)1218 708 y Fn(cs)1282 683 y Fu([)-17 b([)p Fr(x)33 -b Fu(:=)g Fr(y)p Fu(])-17 b(])33 b Ft(\016)f(S)1810 647 -y Fi(0)1810 708 y Fn(cs)1874 683 y Fu([)-17 b([)p Fr(y)33 -b Fu(:=)f Fr(z)p Fu(])-17 b(])q(\))33 b(id)413 851 y(=)f(\()p -Ft(S)627 814 y Fi(0)627 875 y Fn(cs)690 851 y Fu([)-17 -b([)q Fr(z)32 b Fu(:=)h Fr(x)p Fu(])-17 b(])33 b Ft(\016)g(S)1218 -814 y Fi(0)1218 875 y Fn(cs)1282 851 y Fu([)-17 b([)p -Fr(x)33 b Fu(:=)g Fr(y)p Fu(])-17 b(])q(\))32 b Fs(g)1752 -866 y Fn(1)681 1018 y Fu(where)i Fs(g)1017 1033 y Fn(1)1089 -1018 y Fs(s)40 b Fu(=)33 b(id\()p Fs(s)8 b Fu([)p Fr(y)p -Ft(7!)o Fu(\()p Fs(s)41 b Fr(z)p Fu(\)]\))413 1186 y(=)32 -b Ft(S)589 1150 y Fi(0)589 1211 y Fn(cs)652 1186 y Fu([)-17 -b([)q Fr(z)33 b Fu(:=)f Fr(x)p Fu(])-17 b(])q Fs(g)1052 -1201 y Fn(2)681 1354 y Fu(where)34 b Fs(g)1017 1369 y -Fn(2)1089 1354 y Fs(s)40 b Fu(=)33 b Fs(g)1332 1369 y -Fn(1)1371 1354 y Fu(\()p Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p -Fu(\()p Fs(s)40 b Fr(y)p Fu(\)]\))1169 1521 y(=)33 b(id\()p -Fs(s)8 b Fu([)p Fr(x)p Ft(7!)o Fu(\()p Fs(s)41 b Fr(y)p -Fu(\)][)p Fr(y)p Ft(7!)p Fu(\()p Fs(s)f Fr(z)p Fu(\)]\))413 -1689 y(=)32 b Fs(g)575 1704 y Fn(3)681 1856 y Fu(where)i -Fs(g)1017 1871 y Fn(3)1089 1856 y Fs(s)40 b Fu(=)33 b -Fs(g)1332 1871 y Fn(2)1371 1856 y Fu(\()p Fs(s)8 b Fu([)p -Fr(z)p Ft(7!)p Fu(\()p Fs(s)40 b Fr(x)p Fu(\)]\))1169 -2024 y(=)33 b(id\()p Fs(s)8 b Fu([)p Fr(z)p Ft(7!)o Fu(\()p -Fs(s)41 b Fr(x)p Fu(\)][)p Fr(x)p Ft(7!)p Fu(\()p Fs(s)f -Fr(y)p Fu(\)][)p Fr(y)p Ft(7!)q Fu(\()p Fs(s)g Fr(x)p -Fu(\)]\))0 2242 y(Note)33 b(that)f(the)h(seman)m(tic)f(function)g(is)h -(constructed)h(in)e(a)g(\\bac)m(kw)m(ards")i(manner.)258 -b Fh(2)146 2491 y Fu(As)35 b(in)f(the)h(case)g(of)f(the)h(direct)g(st)m -(yle)g(seman)m(tics)f(w)m(e)i(m)m(ust)f(ensure)g(that)g(the)g(seman)m -(tic)0 2612 y(clauses)e(de\014ne)h(a)e(total)f(function)h -Ft(S)1372 2576 y Fi(0)1372 2636 y Fn(cs)1436 2612 y Fu(.)43 -b(W)-8 b(e)33 b(lea)m(v)m(e)g(the)g(details)f(to)g(the)h(exercise)h(b)s -(elo)m(w.)0 2864 y Fw(Exercise)i(4.73)49 b Fu(**)40 b(T)-8 -b(o)41 b(ensure)h(that)e(the)h(clauses)h(for)e Ft(S)2247 -2828 y Fi(0)2247 2889 y Fn(cs)2351 2864 y Fu(de\014ne)i(a)e(total)f -(function)h(w)m(e)0 2984 y(m)m(ust)31 b(sho)m(w)h(that)e(FIX)h(is)f -(only)g(applied)f(to)i(con)m(tin)m(uous)g(functions.)43 -b(First)30 b(one)h(ma)m(y)f(de\014ne)244 3203 y Fs(g)298 -3218 y Fn(1)369 3203 y Ft(v)447 3166 y Fi(0)503 3203 -y Fs(g)557 3218 y Fn(2)628 3203 y Fu(if)i(and)g(only)g(if)g -Fs(g)1265 3218 y Fn(1)1336 3203 y Fs(c)38 b Ft(v)33 b -Fs(g)1583 3218 y Fn(2)1655 3203 y Fs(c)38 b Fu(for)32 -b(all)f Fs(c)38 b Ft(2)33 b Fw(Con)m(t)0 3421 y Fu(and)g(sho)m(w)g -(that)g(\()p Fw(Con)m(t)f Ft(!)g Fw(Con)m(t)p Fu(,)g -Ft(v)1462 3385 y Fi(0)1485 3421 y Fu(\))h(is)f(a)g(ccp)s(o.)44 -b(Secondly)-8 b(,)33 b(one)g(ma)m(y)f(de\014ne)244 3639 -y([)p Fw(Con)m(t)g Ft(!)g Fw(Con)m(t)p Fu(])h(=)f Ft(f)g -Fs(g)9 b Fu(:)43 b Fw(Con)m(t)33 b Ft(!)f Fw(Con)m(t)g -Ft(j)g Fs(g)41 b Fu(is)32 b(con)m(tin)m(uous)i Ft(g)0 -3857 y Fu(and)29 b(sho)m(w)i(that)e(\([)p Fw(Con)m(t)g -Ft(!)f Fw(Con)m(t)p Fu(],)i Ft(v)1497 3821 y Fi(0)1520 -3857 y Fu(\))f(is)g(a)g(ccp)s(o.)42 b(Finally)-8 b(,)28 -b(one)h(ma)m(y)g(use)h(Exercise)h(4.41)0 3978 y(\(with)26 -b Fs(D)36 b Fu(=)26 b([)p Fw(Con)m(t)g Ft(!)g Fw(Con)m(t)p -Fu(]\))h(to)f(sho)m(w)i(that)e(the)h(clauses)g(of)f(T)-8 -b(able)27 b(4.7)f(de\014ne)i(a)e(function)244 4196 y -Ft(S)312 4160 y Fi(0)312 4221 y Fn(cs)375 4196 y Fu(:)43 -b([)p Fw(Con)m(t)33 b Ft(!)f Fw(Con)m(t)p Fu(])0 4414 -y(using)g(structural)h(induction)e(on)i Fs(S)12 b Fu(.)2029 -b Fh(2)0 4664 y Fw(Exercise)36 b(4.74)49 b Fu(*)33 b(Pro)m(v)m(e)h -(that)e(the)h(t)m(w)m(o)g(seman)m(tic)g(functions)f Ft(S)2504 -4679 y Fn(ds)2608 4664 y Fu(and)g Ft(S)2865 4627 y Fi(0)2865 -4688 y Fn(cs)2961 4664 y Fu(satisfy)244 4882 y Ft(S)312 -4846 y Fi(0)312 4906 y Fn(cs)375 4882 y Fu([)-17 b([)q -Fs(S)12 b Fu(])-17 b(])p Fs(c)38 b Fu(=)33 b Fs(c)38 -b Ft(\016)32 b(S)942 4897 y Fn(ds)1013 4882 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])0 5100 y(for)32 b(all)f(statemen)m(ts)i -Fs(S)44 b Fu(of)33 b Fw(While)d Fu(and)j(for)f(all)f(con)m(tin)m -(uations)h Fs(c)6 b Fu(.)933 b Fh(2)0 5349 y Fw(Exercise)36 -b(4.75)49 b Fu(Extend)26 b(the)g(language)d Fw(While)g -Fu(with)h(the)h(construct)h Fr(repeat)34 b Fs(S)45 b -Fr(until)34 b Fs(b)0 5470 y Fu(and)f(giv)m(e)f(the)h(new)h(\(comp)s -(ositional\))29 b(clause)j(for)g Ft(S)1960 5433 y Fi(0)1960 -5494 y Fn(cs)2024 5470 y Fu(.)1347 b Fh(2)p eop -%%Page: 130 140 -130 139 bop 251 130 a Fw(130)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v 283 419 V 283 2219 -4 1800 v 666 519 a Ft(S)733 534 y Fn(cs)797 519 y Fu([)-17 -b([)p Fs(x)12 b Fu(:=)p Fs(a)7 b Fu(])-17 b(])q Fs(env)1245 -534 y Fc(E)1336 519 y Fs(c)38 b(s)j Fu(=)32 b Fs(c)38 -b Fu(\()p Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o Fu([)-17 b([)q -Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(]\))666 710 y Ft(S)733 -725 y Fn(cs)797 710 y Fu([)-17 b([)p Fr(skip)p Fu(])g(])r -Fs(env)1233 725 y Fc(E)1324 710 y Fu(=)33 b(id)666 901 -y Ft(S)733 916 y Fn(cs)797 901 y Fu([)-17 b([)p Fs(S)901 -916 y Fn(1)973 901 y Fu(;)33 b Fs(S)1100 916 y Fn(2)1139 -901 y Fu(])-17 b(])q Fs(env)1333 916 y Fc(E)1424 901 -y Fu(=)32 b(\()p Ft(S)1638 916 y Fn(cs)1701 901 y Fu([)-17 -b([)q Fs(S)1806 916 y Fn(1)1845 901 y Fu(])g(])q Fs(env)2039 -916 y Fc(E)2098 901 y Fu(\))32 b Ft(\016)g Fu(\()p Ft(S)2356 -916 y Fn(cs)2419 901 y Fu([)-17 b([)q Fs(S)2524 916 y -Fn(2)2563 901 y Fu(])g(])q Fs(env)2757 916 y Fc(E)2816 -901 y Fu(\))666 1092 y Ft(S)733 1107 y Fn(cs)797 1092 -y Fu([)g([)p Fr(if)33 b Fs(b)39 b Fr(then)33 b Fs(S)1357 -1107 y Fn(1)1429 1092 y Fr(else)h Fs(S)1734 1107 y Fn(2)1773 -1092 y Fu(])-17 b(])q Fs(env)1967 1107 y Fc(E)2058 1092 -y Fs(c)38 b Fu(=)934 1260 y(cond\()p Ft(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)33 b Ft(S)1495 1275 y Fn(cs)1558 -1260 y Fu([)-17 b([)q Fs(S)1663 1275 y Fn(1)1702 1260 -y Fu(])g(])q Fs(env)1896 1275 y Fc(E)1987 1260 y Fs(c)6 -b Fu(,)32 b Ft(S)2165 1275 y Fn(cs)2228 1260 y Fu([)-17 -b([)q Fs(S)2333 1275 y Fn(2)2372 1260 y Fu(])g(])q Fs(env)2566 -1275 y Fc(E)2657 1260 y Fs(c)6 b Fu(\))666 1451 y Ft(S)733 -1466 y Fn(cs)797 1451 y Fu([)-17 b([)p Fr(while)34 b -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 b(])p Fs(env)1602 -1466 y Fc(E)1693 1451 y Fu(=)33 b(FIX)f Fs(G)934 1619 -y Fu(where)i(\()p Fs(G)42 b(g)9 b Fu(\))32 b Fs(c)38 -b Fu(=)32 b(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b Ft(S)2247 1634 y Fn(cs)2310 1619 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])p Fs(env)2608 1634 y Fc(E)2699 -1619 y Fu(\()p Fs(g)41 b(c)6 b Fu(\),)33 b Fs(c)6 b Fu(\))666 -1810 y Ft(S)733 1825 y Fn(cs)797 1810 y Fu([)-17 b([)p -Fr(begin)34 b Fs(S)1190 1825 y Fn(1)1262 1810 y Fr(handle)g -Fs(e)7 b Fu(:)44 b Fs(S)1792 1825 y Fn(2)1864 1810 y -Fr(end)p Fu(])-17 b(])q Fs(env)2211 1825 y Fc(E)2302 -1810 y Fs(c)38 b Fu(=)934 1978 y Ft(S)1002 1993 y Fn(cs)1065 -1978 y Fu([)-17 b([)q Fs(S)1170 1993 y Fn(1)1209 1978 -y Fu(])g(])q(\()p Fs(env)1441 1993 y Fc(E)1500 1978 y -Fu([)p Fs(e)7 b Ft(7!S)1746 1993 y Fn(cs)1810 1978 y -Fu([)-17 b([)p Fs(S)1914 1993 y Fn(2)1954 1978 y Fu(])g(])p -Fs(env)2147 1993 y Fc(E)2238 1978 y Fs(c)6 b Fu(]\))33 -b Fs(c)666 2169 y Ft(S)733 2184 y Fn(cs)797 2169 y Fu([)-17 -b([)p Fr(raise)34 b Fs(e)7 b Fu(])-17 b(])q Fs(env)1369 -2184 y Fc(E)1460 2169 y Fs(c)38 b Fu(=)33 b Fs(env)1808 -2184 y Fc(E)1899 2169 y Fs(e)p 3753 2219 V 283 2222 3473 -4 v 991 2383 a Fu(T)-8 b(able)33 b(4.8:)43 b(Con)m(tin)m(uation)31 -b(st)m(yle)j(seman)m(tics)e(for)g Fw(Exc)283 2677 y(The)38 -b(seman)m(tic)e(function)h Ft(S)1483 2692 y Fn(cs)1584 -2677 y Fw(for)g(Exc)283 2871 y Fu(In)30 b(order)g(to)f(k)m(eep)i(trac)m -(k)f(of)f(the)h(exceptions)h(that)e(ha)m(v)m(e)i(b)s(een)f(in)m(tro)s -(duced)g(w)m(e)g(shall)e(use)j(an)283 2992 y Fs(exc)-5 -b(eption)34 b(envir)-5 b(onment)p Fu(.)43 b(It)32 b(will)f(b)s(e)h(an)h -(elemen)m(t,)f Fs(env)2408 3007 y Fc(E)2467 2992 y Fu(,)h(of)527 -3219 y Fw(En)m(v)719 3234 y Fn(E)804 3219 y Fu(=)f Fw(Exception)g -Ft(!)g Fw(Con)m(t)283 3446 y Fu(Giv)m(en)h(an)f(exception)h(en)m -(vironmen)m(t)f Fs(env)1853 3461 y Fc(E)1944 3446 y Fu(and)h(an)f -(exception)h Fs(e)7 b Fu(,)33 b(the)f(e\013ect)h(of)f(executing)283 -3566 y(the)f(remainder)e(of)g(the)i(program)d(starting)h(from)g(the)h -(handler)g(for)f Fs(e)38 b Fu(will)27 b(then)k(b)s(e)f -Fs(env)3588 3581 y Fc(E)3677 3566 y Fs(e)7 b Fu(.)430 -3691 y(The)40 b(seman)m(tic)f(function)f Ft(S)1504 3706 -y Fn(cs)1606 3691 y Fu(for)h(the)h(statemen)m(ts)g(of)e(the)i(language) -e Fw(Exc)g Fu(has)i(func-)283 3812 y(tionalit)m(y)527 -4039 y Ft(S)595 4054 y Fn(cs)658 4039 y Fu(:)k Fw(Stm)32 -b Ft(!)g Fw(En)m(v)1285 4054 y Fn(E)1369 4039 y Ft(!)h -Fu(\()p Fw(Con)m(t)f Ft(!)g Fw(Con)m(t)p Fu(\))283 4265 -y(The)25 b(function)f(is)f(de\014ned)i(b)m(y)g(the)g(clauses)f(of)g(T) --8 b(able)23 b(4.8.)40 b(Most)25 b(of)e(the)h(clauses)h(are)f(straigh)m -(t-)283 4386 y(forw)m(ard)g(extensions)h(of)e(those)h(giv)m(en)g(for)f -Fw(While)f Fu(in)g(T)-8 b(able)23 b(4.7.)40 b(The)25 -b(meaning)d(of)h(the)h(blo)s(c)m(k)283 4506 y(construct)33 -b(is)d(to)h(execute)i(the)f(b)s(o)s(dy)f(in)f(the)i(up)s(dated)g(en)m -(vironmen)m(t.)43 b(Therefore)32 b(the)g(en)m(vi-)283 -4627 y(ronmen)m(t)g(is)g(up)s(dated)g(so)g(that)g Fs(e)39 -b Fu(is)32 b(b)s(ound)g(to)g(the)g(e\013ect)h(of)e(executing)i(the)f -(remainder)f(of)283 4747 y(the)i(program)d(starting)h(from)f(the)i -(handler)f(for)g Fs(e)39 b Fu(and)32 b(this)f(is)h(the)g(con)m(tin)m -(uation)e(obtained)283 4867 y(b)m(y)j(executing)f(\014rst)g -Fs(S)1120 4882 y Fn(2)1191 4867 y Fu(and)g(then)g(the)g(remainder)f(of) -g(the)h(program,)e(that)h(is)h Ft(S)3296 4882 y Fn(cs)3360 -4867 y Fu([)-17 b([)p Fs(S)3464 4882 y Fn(2)3504 4867 -y Fu(])g(])p Fs(env)3697 4882 y Fc(E)283 4988 y Fs(c)6 -b Fu(.)48 b(Finally)-8 b(,)31 b(in)i(the)i(clause)f(for)f -Fr(raise)i Fs(e)41 b Fu(w)m(e)35 b Fs(ignor)-5 b(e)41 -b Fu(the)34 b(con)m(tin)m(uation)f(that)h(is)f(otherwise)283 -5108 y(supplied.)44 b(So)32 b(rather)h(than)f(using)h -Fs(c)38 b Fu(w)m(e)33 b(c)m(ho)s(ose)h(to)e(use)i Fs(env)2598 -5123 y Fc(E)2689 5108 y Fs(e)7 b Fu(.)283 5374 y Fw(Example)37 -b(4.76)49 b Fu(Let)40 b Fs(env)1332 5389 y Fc(E)1431 -5374 y Fu(b)s(e)g(an)g(initial)c(en)m(vironmen)m(t)k(and)g(assume)h -(that)e(the)i(initial)283 5494 y(con)m(tin)m(uation)32 -b(is)g(the)h(iden)m(tit)m(y)g(function,)f(id.)42 b(Then)34 -b(w)m(e)g(ha)m(v)m(e)p eop -%%Page: 131 141 -131 140 bop 0 130 a Fw(4.5)112 b(Extensions)37 b(of)h(While)2063 -b(131)p 0 193 3473 4 v 244 515 a Ft(S)312 530 y Fn(cs)375 -515 y Fu([)-17 b([)q Fr(begin)33 b(while)h(true)g(do)f(if)g(x)p -Ft(\024)q Fr(0)g(then)g(raise)h(exit)g(else)f(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)413 683 y(handle)i(exit)p Fu(:)44 -b Fr(y)33 b Fu(:=)g Fr(7)f(end)p Fu(])-17 b(])r Fs(env)1679 -698 y Fc(E)1770 683 y Fu(id)244 851 y(=)93 b(\(FIX)32 -b Fs(G)9 b Fu(\))33 b(id)0 1054 y(where)h Fs(G)42 b Fu(is)32 -b(de\014ned)i(b)m(y)244 1257 y Fs(G)42 b(g)f(c)d(s)i -Fu(=)33 b(cond\()p Ft(B)t Fu([)-17 b([)p Fr(true)p Fu(])g(])r(,)957 -1425 y(cond\()p Ft(B)t Fu([)g([)q Fr(x)p Ft(\024)q Fr(0)p -Fu(])g(],)33 b Fs(c)1630 1440 y Fn(exit)1749 1425 y Fu(,)g -Fs(S)1876 1440 y Fn(cs)1939 1425 y Fu([)-17 b([)q Fr(x)33 -b Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(])-17 b(])r Fs(env)2570 -1440 y Fc(E)2628 1425 y Fu([)p Fr(exit)p Ft(7!)p Fs(c)3010 -1440 y Fn(exit)3131 1425 y Fu(])32 b(\()p Fs(g)41 b(c)6 -b Fu(\)\),)957 1593 y Fs(c)g Fu(\))32 b Fs(s)610 1850 -y Fu(=)719 1676 y Fg(8)719 1751 y(<)719 1900 y(:)834 -1766 y Fs(c)885 1781 y Fn(exit)1037 1766 y Fs(s)756 b -Fu(if)31 b Fs(s)41 b Fr(x)32 b Ft(\024)h Fw(0)834 1933 -y Fu(\()p Fs(g)41 b(c)6 b Fu(\))32 b(\()p Fs(s)8 b Fu([)p -Fr(x)p Ft(7!)p Fu(\()p Fs(s)41 b Fr(x)p Fu(\))p Ft(\000)p -Fw(1)p Fu(]\))84 b(if)31 b Fs(s)41 b Fr(x)32 b Fo(>)h -Fw(0)0 2135 y Fu(and)g(the)g(con)m(tin)m(uation)e Fs(c)972 -2150 y Fn(exit)1124 2135 y Fu(asso)s(ciated)i(with)f(the)h(exception)g -Fr(exit)h Fu(is)e(giv)m(en)g(b)m(y)244 2339 y Fs(c)295 -2354 y Fn(exit)447 2339 y Fs(s)40 b Fu(=)33 b(id)f(\()p -Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(7)p Fu(]\))32 b(=)h -Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(7)p Fu(])0 2542 y(Note)36 -b(that)f Fs(G)45 b Fu(ma)m(y)36 b(c)m(ho)s(ose)h(to)e(use)i(the)f -(\\default")f(con)m(tin)m(uation)f Fs(c)42 b Fu(or)35 -b(the)h(con)m(tin)m(uation)0 2663 y Fs(c)51 2678 y Fn(exit)203 -2663 y Fu(asso)s(ciated)c(with)h(the)g(exception,)g(as)g(appropriate.) -42 b(W)-8 b(e)33 b(then)g(get)269 2912 y(\(FIX)f Fs(G)9 -b Fu(\))33 b(id)f Fs(s)40 b Fu(=)969 2738 y Fg(8)969 -2812 y(<)969 2962 y(:)1084 2827 y Fs(s)8 b Fu([)p Fr(y)p -Ft(7!)p Fw(7)p Fu(])344 b(if)32 b Fs(s)40 b Fr(x)33 b -Ft(\024)g Fw(0)1084 2995 y Fs(s)8 b Fu([)p Fr(x)p Ft(7!)p -Fw(0)p Fu(][)p Fr(y)p Ft(7!)p Fw(7)p Fu(])83 b(if)32 -b Fs(s)40 b Fr(x)33 b Fo(>)g Fw(0)3398 2912 y Fh(2)0 -3222 y Fw(Exercise)j(4.77)49 b Fu(Sho)m(w)33 b(that)f(FIX)g -Fs(G)42 b Fu(as)32 b(sp)s(eci\014ed)h(in)f(the)g(ab)s(o)m(v)m(e)h -(example)f(is)f(indeed)i(the)0 3342 y(least)39 b(\014xed)j(p)s(oin)m -(t,)f(that)e(is)h(construct)h(the)f(iterands)g Fs(G)2171 -3306 y Fn(n)2254 3342 y Ft(?)h Fu(and)f(sho)m(w)h(that)e(their)h(least) -0 3463 y(upp)s(er)33 b(b)s(ound)g(is)f(as)h(sp)s(eci\014ed.)2213 -b Fh(2)0 3691 y Fw(Exercise)36 b(4.78)49 b Fu(**)31 b(Extend)j -(Exercise)f(4.73)e(to)g(sho)m(w)i(the)f(w)m(ell-de\014nedness)h(of)e -(the)h(func-)0 3811 y(tion)g Ft(S)268 3826 y Fn(cs)364 -3811 y Fu(de\014ned)i(b)m(y)g(the)f(clauses)g(of)f(T)-8 -b(able)32 b(4.8.)1537 b Fh(2)0 4040 y Fw(Exercise)36 -b(4.79)49 b Fu(Supp)s(ose)36 b(that)e(there)i(is)e(a)g(distinguished)g -(output)h(v)-5 b(ariable)33 b Fr(out)i Ft(2)g Fw(V)-9 -b(ar)0 4160 y Fu(and)38 b(that)f(only)h(the)g(\014nal)f(v)-5 -b(alue)37 b(of)g(this)h(v)-5 b(ariable)36 b(is)h(of)g(in)m(terest.)60 -b(This)38 b(migh)m(t)e(motiv)-5 b(ate)0 4280 y(de\014ning)244 -4484 y Fw(Con)m(t)32 b Fu(=)h Fw(State)f Fo(,)-17 b Ft(!)33 -b Fw(Z)0 4687 y Fu(De\014ne)h(the)h(initial)30 b(con)m(tin)m(uation)j -Fs(c)1372 4702 y Fn(0)1444 4687 y Ft(2)h Fw(Con)m(t)p -Fu(.)47 b(What)34 b(c)m(hanges)h(to)f Fw(En)m(v)2808 -4702 y Fn(E)2860 4687 y Fu(,)g(the)g(function-)0 4808 -y(alit)m(y)d(of)h Ft(S)401 4823 y Fn(cs)497 4808 y Fu(and)h(T)-8 -b(able)32 b(4.8)g(are)h(necessary?)1680 b Fh(2)p eop -%%Page: 132 142 -132 141 bop 251 130 a Fw(132)1978 b(4)112 b(Denotational)36 -b(Seman)m(tics)p 251 193 3473 4 v eop -%%Page: 133 143 -133 142 bop 0 1185 a Fv(Chapter)78 b(5)0 1606 y(Static)g(Program)f -(Analysis)0 2063 y Fu(When)41 b(implemen)m(ting)36 b(a)k(programming)d -(language)h(it)h(is)g(crucial)f(that)i(the)g(implemen)m(ta-)0 -2184 y(tion)30 b(is)h(faithful)f(to)h(the)h(seman)m(tics)g(of)f(the)h -(language)e(and)i(in)e(Chapter)j(3)e(w)m(e)h(sa)m(w)h(ho)m(w)f(the)0 -2304 y(op)s(erational)27 b(seman)m(tics)j(could)f(b)s(e)h(used)g(to)f -(pro)m(v)m(e)i(this)e(formally)-8 b(.)40 b(Ho)m(w)m(ev)m(er,)32 -b(it)d(is)g(also)g(im-)0 2425 y(p)s(ortan)m(t)f(that)f(the)h(implemen)m -(tation)d(is)j(reasonably)f(e\016cien)m(t)i(and)f(it)f(is)g(therefore)i -(common)0 2545 y(to)f(com)m(bine)f(the)h(co)s(de)h(generation)e(with)g -(v)-5 b(arious)28 b(analyses)g(collecting)e(information)f(ab)s(out)0 -2665 y(the)34 b(programs.)45 b(In)34 b(this)f(c)m(hapter)i(w)m(e)f -(shall)e(dev)m(elop)i(one)g(suc)m(h)h(analysis)e(in)f(detail)g(but)i -(let)0 2786 y(us)f(\014rst)g(consider)g(a)f(couple)h(of)f(example)g -(analyses.)146 2912 y Fs(Constant)47 b(pr)-5 b(op)g(agation)53 -b Fu(is)46 b(an)g(analysis)g(that)g(determines)h(whether)h(an)e -(expression)0 3032 y(alw)m(a)m(ys)30 b(ev)-5 b(aluates)30 -b(to)f(a)h(constan)m(t)g(v)-5 b(alue)30 b(and)f(if)g(so)h(determines)g -(that)f(v)-5 b(alue.)42 b(The)31 b(analysis)0 3152 y(is)44 -b(the)g(basis)g(for)g(an)g(optimization)d(called)i Fs(c)-5 -b(onstant)45 b(folding)51 b Fu(where)46 b(the)e(expression)i(is)0 -3273 y(replaced)30 b(b)m(y)i(the)e(constan)m(t.)44 b(As)31 -b(an)f(example)g(the)g(analysis)g(will)e(detect)j(that)f(the)h(v)-5 -b(alue)30 b(of)0 3393 y Fr(y)j Fu(in)f(the)h(statemen)m(t)244 -3624 y Fr(x)g Fu(:=)f Fr(5)p Fu(;)h Fr(y)g Fu(:=)f Fr(x)h -Fo(?)f Fr(x)h Fu(+)g Fr(25)0 3854 y Fu(will)d(alw)m(a)m(ys)j(b)s(e)g -Fw(50)p Fu(.)44 b(It)32 b(is)g(therefore)i(safe)f(to)f(replace)g(the)h -(statemen)m(t)g(b)m(y)244 4085 y Fr(x)g Fu(:=)f Fr(5)p -Fu(;)h Fr(y)g Fu(:=)f Fr(50)0 4316 y Fu(and)h(more)f(e\016cien)m(t)h -(co)s(de)g(can)g(b)s(e)f(generated.)146 4441 y(Another)j(example)f(is)g -(the)h Fs(dete)-5 b(ction)36 b(of)h(signs)f(analysis)41 -b Fu(where)36 b(the)f(idea)f(is)g(to)g(deter-)0 4562 -y(mine)e(the)i(sign)e(of)h(expressions.)47 b(So)33 b(it)f(will)f(for)i -(example)f(determine)h(that)g(the)h(v)-5 b(alue)32 b(of)h -Fr(y)0 4682 y Fu(in)244 4913 y Fr(y)g Fu(:=)f Fr(x)h -Fo(?)f Fr(x)h Fu(+)f Fr(25)0 5143 y Fu(alw)m(a)m(ys)24 -b(will)e(b)s(e)h(p)s(ositiv)m(e)g(\(indep)s(enden)m(tly)i(of)e(the)h(v) --5 b(alue)23 b(assigned)h(to)f Fr(x)p Fu(\).)41 b(This)24 -b(information)0 5264 y(will)30 b(b)s(e)j(useful)g(for)f(an)g -(optimization)d(kno)m(wn)34 b(as)f Fs(c)-5 b(o)g(de)34 -b(elimination)p Fu(:)42 b(in)32 b(a)g(statemen)m(t)h(as)244 -5494 y Fr(y)g Fu(:=)f Fr(x)h Fo(?)f Fr(x)h Fu(+)f Fr(25)p -Fu(;)i Fr(while)f(y)g Ft(\024)g Fr(0)g(do)g Ft(\001)17 -b(\001)g(\001)1663 5849 y Fu(133)p eop -%%Page: 134 144 -134 143 bop 251 130 a Fw(134)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a Fu(there)48 -b(is)f(no)g(need)h(to)f(generate)h(co)s(de)g(for)e(the)i -Fr(while)p Fu(-lo)s(op)e(b)s(ecause)j(it)d(will)f(nev)m(er)k(b)s(e)283 -636 y(executed.)430 757 y(The)30 b(example)f(analysis)f(to)h(b)s(e)h -(dev)m(elop)s(ed)g(in)e(this)h(c)m(hapter)h(is)f(a)g -Fs(dep)-5 b(endency)31 b(analysis)p Fu(.)283 878 y(Here)38 -b(the)f(idea)g(is)f(to)g(regard)h(some)g(of)f(the)i(v)-5 -b(ariables)35 b(as)i Fs(input)47 b Fu(v)-5 b(ariables)35 -b(and)i(others)h(as)283 998 y Fs(output)k Fu(v)-5 b(ariables.)41 -b(The)32 b(analysis)e(will)f(then)j(determine)e(whether)i(or)f(not)g -(the)g(\014nal)f(v)-5 b(alues)283 1118 y(of)24 b(the)g(output)g(v)-5 -b(ariables)23 b(only)g(dep)s(end)i(up)s(on)f(the)g(initial)c(v)-5 -b(alues)24 b(of)f(the)h(input)g(v)-5 b(ariables.)39 b(If)283 -1239 y(so)27 b(w)m(e)g(shall)e(sa)m(y)i(that)f(there)h(is)e(a)h -Fs(functional)i(dep)-5 b(endency)34 b Fu(b)s(et)m(w)m(een)28 -b(the)f(input)e(and)i(output)283 1359 y(v)-5 b(ariables)32 -b(of)g(the)h(statemen)m(t.)44 b(As)33 b(an)f(example)h(consider)f(once) -i(more)e(the)h(statemen)m(t)527 1568 y Fr(y)g Fu(:=)g -Fr(x)f Fo(?)h Fr(x)f Fu(+)h Fr(25)283 1776 y Fu(and)26 -b(assume)g(that)g Fr(x)g Fu(is)f(an)h(input)f(v)-5 b(ariable)24 -b(and)i Fr(y)g Fu(an)f(output)h(v)-5 b(ariable.)40 b(Then)26 -b(the)h(analysis)283 1897 y(will)j(conclude)i(that)f(there)h(is)f -(indeed)h(a)f(functional)f(dep)s(endency)k(b)s(et)m(w)m(een)g(the)e -(input)f(and)283 2017 y(output)37 b(v)-5 b(ariables)36 -b(for)g(the)i(ab)s(o)m(v)m(e)f(statemen)m(t.)57 b(Ho)m(w)m(ev)m(er,)40 -b(if)c Fr(x)h Fu(is)f Fs(not)46 b Fu(an)37 b(input)g(v)-5 -b(ariable)283 2138 y(then)30 b(the)f(analysis)f(will)f(determine)i -(that)f(the)i(v)-5 b(alue)28 b(of)g Fr(y)h Fu(is)g(dubious)g(as)g(it)f -(do)s(es)h(not)g(solely)283 2258 y(dep)s(end)e(on)e(the)g(v)-5 -b(alues)25 b(of)f(the)i(input)e(v)-5 b(ariables.)40 b(In)25 -b(that)g(case)h(the)f(compiler)e(migh)m(t)h(c)m(ho)s(ose)283 -2378 y(to)33 b(issue)g(a)f(w)m(arning)g(as)h(this)f(probably)g(is)h -(not)f(the)h(in)m(ten)m(tion)f(of)g(the)h(programmer.)430 -2500 y(A)f(more)g(in)m(teresting)g(example)h(program)e(is)h(the)h -(factorial)d(statemen)m(t:)527 2708 y Fr(y)j Fu(:=)g -Fr(1)p Fu(;)f Fr(while)i Ft(:)f Fu(\()p Fr(x)g Fu(=)f -Fr(1)p Fu(\))h Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)h -Fo(?)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)g Fr(x)f Ft(\000)h -Fr(1)p Fu(\))283 2917 y(Again)h(assume)h(that)f Fr(x)h -Fu(is)f(an)g(input)g(v)-5 b(ariable)33 b(and)h(that)h -Fr(y)f Fu(is)g(an)h(output)f(v)-5 b(ariable.)48 b(Then)283 -3038 y(the)35 b(\014nal)d(v)-5 b(alue)34 b(of)f Fr(y)h -Fu(only)f(dep)s(ends)i(up)s(on)f(the)g(initial)c(v)-5 -b(alue)33 b(of)g Fr(x)p Fu(.)47 b(Ho)m(w)m(ev)m(er,)37 -b(if)32 b(w)m(e)j(drop)283 3158 y(the)k(initialization)32 -b(of)37 b Fr(y)h Fu(\(and)g(assume)g(that)g Fr(y)g Fu(is)f(not)h(an)f -(input)h(v)-5 b(ariable\))36 b(and)i(consider)283 3278 -y(the)33 b(statemen)m(t)527 3487 y Fr(while)h Ft(:)f -Fu(\()p Fr(x)g Fu(=)f Fr(1)p Fu(\))h Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)h Fo(?)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)h Ft(\000)g Fr(1)p Fu(\))283 3696 y(then)42 b(the)f(\014nal)f(v)-5 -b(alue)40 b(of)g Fr(y)g Fu(do)s(es)h(not)g(only)f(dep)s(end)i(on)e(the) -h(initial)c(v)-5 b(alue)40 b(of)g(the)h(input)283 3816 -y(v)-5 b(ariable)23 b Fr(x)p Fu(,)j(but)e(also)f(on)h(the)g(initial)c -(v)-5 b(alue)23 b(of)h Fr(y)p Fu(,)i(so)e(it)f(is)g Fs(not)34 -b Fu(the)24 b(case)h(that)e(the)i(\014nal)e(v)-5 b(alues)283 -3936 y(of)33 b(the)g(output)f(v)-5 b(ariables)32 b(only)g(dep)s(end)h -(on)g(the)g(initial)c(v)-5 b(alues)32 b(of)g(the)h(input)f(v)-5 -b(ariables.)430 4058 y(The)38 b(kind)f(of)g(analyses)g(exempli\014ed)g -(ab)s(o)m(v)m(e)h(can)g(b)s(e)f(sp)s(eci\014ed)h(b)m(y)g(de\014ning)f -(so-called)283 4178 y Fs(non-standar)-5 b(d)42 b(semantics)47 -b Fu(of)41 b(the)g(programming)d(language.)67 b(These)42 -b(seman)m(tics)f(will)e(b)s(e)283 4299 y(patterned)k(after)e(the)h -(denotational)e(seman)m(tics)i(of)f(Chapter)h(4)g(but)g(they)g -(di\013er)f(in)g(that)283 4419 y(they)30 b(do)f Fs(not)39 -b Fu(op)s(erate)29 b(on)f(the)i(exact)g(v)-5 b(alues)29 -b(of)f(v)-5 b(ariables)28 b(and)h(expressions)i(but)e(rather)g(on)283 -4539 y Fs(pr)-5 b(op)g(erties)42 b Fu(of)33 b(the)h(exact)h(v)-5 -b(alues.)47 b(F)-8 b(or)33 b(the)h(constan)m(t)h(propagation)d -(analysis)h(w)m(e)i(ma)m(y)f(use)283 4660 y(prop)s(erties)f(lik)m(e)527 -4868 y Fb(any)p Fu(,)g Fb(const)p Fu(-)p Fb(0)p Fu(,)f -Fb(const)p Fu(-)p Fb(1)p Fu(,)g Fb(const)p Fu(-)p Fb(2)p -Fu(,)g Ft(\001)17 b(\001)g(\001)283 5077 y Fu(F)-8 b(or)32 -b(the)h(detection)g(of)f(signs)h(analysis)e(w)m(e)j(ma)m(y)e(use)i -(prop)s(erties)e(lik)m(e)527 5286 y Fb(any)p Fu(,)h Fb(pos)p -Fu(,)f Fb(neg)p Fu(,)h(and)f Fb(zer)n(o)283 5494 y Fu(and)h(for)f(the)h -(dep)s(endency)i(analysis)d(w)m(e)i(ma)m(y)e(use)i(prop)s(erties)p -eop -%%Page: 135 145 -135 144 bop 0 130 a Fw(5.1)112 b(Prop)s(erties)36 b(and)j(prop)s(ert)m -(y)e(states)1540 b(135)p 0 193 3473 4 v 244 515 a Fb(d)p -Fu(?)33 b(\(meaning)e(dubious\))h(and)h Fb(ok)g Fu(\(meaning)e(prop)s -(er\))146 701 y(Usually)-8 b(,)38 b(the)g(analyses)g(will)d(b)s(e)j -(part)f(of)g(a)g(compiler)e(and)j(it)e(is)h(therefore)h(imp)s(ortan)m -(t)0 821 y(that)29 b(they)g(alw)m(a)m(ys)h(terminate)d(ev)m(en)k(for)d -(programs)g(that)g(lo)s(op)f(when)j(executed.)45 b(The)30 -b(price)0 942 y(w)m(e)c(pa)m(y)f(for)f(alw)m(a)m(ys)h(getting)f(answ)m -(ers)j(is)d(that)g(w)m(e)i(o)s(ccasionally)c(get)j(imprecise)f(answ)m -(ers.)42 b(So)0 1062 y(in)28 b(the)i(case)g(of)f(constan)m(t)h -(propagation)d(the)j(prop)s(ert)m(y)g Fb(any)f Fu(means)g(that)g(the)h -(analysis)e(w)m(as)0 1182 y(not)e(able)f(to)h(detect)h(that)f(the)h(v) --5 b(alue)25 b(alw)m(a)m(ys)i(w)m(ould)f(b)s(e)g(constan)m(t.)43 -b(Similarly)-8 b(,)23 b(the)k(prop)s(ert)m(y)0 1303 y -Fb(any)40 b Fu(for)f(the)h(detection)g(of)g(signs)f(analysis)h(means)f -(that)h(the)g(analysis)f(w)m(as)i(not)f(able)f(to)0 1423 -y(detect)f(a)e(unique)h(sign)f(for)f(the)i(v)-5 b(alue.)55 -b(F)-8 b(or)35 b(the)i(dep)s(endency)i(analysis)d(the)h(prop)s(ert)m(y) -g Fb(d)p Fu(?)0 1544 y(means)k(that)h(the)f(analysis)g(w)m(as)h(not)g -(able)e(to)h(detect)i(that)e(the)h(v)-5 b(alue)41 b(only)f(dep)s(ends)j -(on)0 1664 y(the)f(input)g(v)-5 b(ariables.)69 b(Note)42 -b(that)g(an)f(analysis)h(that)f(alw)m(a)m(ys)h(returns)h(these)g -(\\fail-safe")0 1784 y(prop)s(erties)35 b(will)e(b)s(e)j(a)f(safe)h -(analysis)e(although)h(not)g(a)g(v)m(ery)i(informativ)m(e)c(one.)52 -b(Also)35 b(note)0 1905 y(that)29 b(in)f(the)i(case)g(of)f(the)h(dep)s -(endency)h(analysis)e(w)m(e)h(could)f(alw)m(a)m(ys)h(exp)s(ect)g(the)g -(answ)m(er)h Fb(ok)0 2025 y Fu(if)h(all)g(v)-5 b(ariables)32 -b(w)m(ere)j(regarded)f(as)g(input)f(v)-5 b(ariables)32 -b(but)i(again)e(this)h(is)g(not)h(what)g(w)m(e)g(are)0 -2145 y(in)m(terested)g(in.)146 2266 y(The)e(analysis)d(w)m(e)j(shall)d -(dev)m(elop)i(will)d(detect)j(whether)h(or)e(not)g(a)g(statemen)m(t)h -Fs(de\014nitely)0 2386 y Fu(has)k(a)f(functional)f(dep)s(endency)k(b)s -(et)m(w)m(een)f(its)e(input)g(and)h(output)f(v)-5 b(ariables.)48 -b(The)35 b(o)m(v)m(erall)0 2507 y(algorithm)h(op)s(erates)k(as)g(follo) -m(ws:)56 b(initially)36 b(all)h(input)i(v)-5 b(ariables)39 -b(ha)m(v)m(e)h(the)g(prop)s(ert)m(y)h Fb(ok)0 2627 y -Fu(and)31 b(all)e(other)h(v)-5 b(ariables)30 b(the)h(prop)s(ert)m(y)h -Fb(d)p Fu(?.)43 b(Then)32 b(the)f(analysis)f(is)g(p)s(erformed)g(and)h -(when)0 2747 y(it)g(has)h(terminated)g(the)g(prop)s(erties)g(of)g(the)g -(output)g(v)-5 b(ariables)31 b(are)h(insp)s(ected.)44 -b(If)32 b(they)h(are)0 2868 y(all)26 b Fb(ok)i Fu(then)h(the)f -(analysis)g(returns)g(the)h(answ)m(er)g(YES)g(and)f(otherwise)g(NO?.)42 -b(The)29 b(analysis)0 2988 y(is)36 b(guaran)m(teed)h(to)g(giv)m(e)f(an) -h(answ)m(er)g(within)f(a)g(\014nite)g(amoun)m(t)g(of)h(time)e(\(dep)s -(ending)h(up)s(on)0 3108 y(the)41 b(statemen)m(t\))g(but)g(the)g(answ)m -(er)h(will)d(not)h(b)s(e)h(precise)g(in)f(all)f(cases.)69 -b(Ho)m(w)m(ev)m(er,)45 b(it)40 b(will)0 3229 y(alw)m(a)m(ys)33 -b(b)s(e)g Fs(safe)39 b Fu(in)32 b(the)h(sense)h(that)145 -3414 y Ft(\017)49 b Fu(if)21 b(the)i(analysis)f(sa)m(ys)i(YES)f(then)g -(there)g(is)f(indeed)g(a)h(functional)d(dep)s(endency)25 -b(b)s(et)m(w)m(een)244 3535 y(input)32 b(and)h(output,)g(but)145 -3732 y Ft(\017)49 b Fu(if)33 b(the)i(analysis)f(sa)m(ys)i(NO?)e(then)h -(there)g(ma)m(y)g(or)f(ma)m(y)g(not)g(b)s(e)h(a)f(functional)f(dep)s -(en-)244 3853 y(dency)h(b)s(et)m(w)m(een)h(input)d(and)g(output.)0 -4038 y(The)c(analysis)e(will)e(b)s(e)j(sp)s(eci\014ed)g -Fs(c)-5 b(omp)g(ositional)5 b(ly)34 b Fu(just)27 b(as)g(the)g -(denotational)e(seman)m(tics)i(of)0 4158 y(Chapter)33 -b(4.)43 b(As)33 b(men)m(tioned)e(ab)s(o)m(v)m(e)i(the)g(main)d -(di\013erence)j(b)s(et)m(w)m(een)h(the)e(analysis)g(and)g(the)0 -4279 y(denotational)j(seman)m(tics)i(is)f(that)g(the)h(analysis)f(do)s -(es)h(not)g(op)s(erate)f(on)h(exact)h(v)-5 b(alues)36 -b(but)0 4399 y(rather)31 b(on)g Fs(pr)-5 b(op)g(erties)38 -b Fu(of)31 b(exact)g(v)-5 b(alues.)43 b(Because)33 b(of)d(the)h(close)g -(corresp)s(ondence)i(b)s(et)m(w)m(een)0 4520 y(the)d(sp)s -(eci\014cation)g(of)f(the)i(analysis)e(and)h(the)g(denotational)e -(seman)m(tics)i(w)m(e)h(shall)e(pro)m(v)m(e)i(the)0 4640 -y(safet)m(y)j(of)e(the)h(analysis)f(with)g(resp)s(ect)i(to)e(the)h -(denotational)e(seman)m(tics.)0 4970 y Fj(5.1)161 b(Prop)t(erties)53 -b(and)g(prop)t(ert)l(y)g(states)0 5189 y Fu(F)-8 b(or)32 -b(the)h(dep)s(endency)i(analysis)d(w)m(e)h(shall)f(b)s(e)g(in)m -(terested)i(in)e(t)m(w)m(o)h(prop)s(erties:)145 5374 -y Ft(\017)49 b Fb(ok)39 b Fu(meaning)f(that)h(the)g(v)-5 -b(alue)39 b Fs(de\014nitely)47 b Fu(only)39 b(dep)s(ends)h(on)f(the)h -(initial)35 b(v)-5 b(alues)39 b(of)244 5494 y(the)33 -b(input)f(v)-5 b(ariables,)31 b(and)p eop -%%Page: 136 146 -136 145 bop 251 130 a Fw(136)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 429 515 a Ft(\017)48 -b Fb(d)p Fu(?)42 b(meaning)e(that)h(the)h(v)-5 b(alue)41 -b Fs(may)49 b Fu(dep)s(end)43 b(on)e(the)h(initial)37 -b(v)-5 b(alues)42 b(of)f(non-input)527 636 y(v)-5 b(ariables,)32 -b(that)g(is)g(the)h(v)-5 b(alue)32 b(ma)m(y)h(b)s(e)f(dubious.)283 -822 y(W)-8 b(e)33 b(shall)f(write)527 1008 y Fw(P)g Fu(=)h -Ft(f)p Fb(ok)p Fu(,)g Fb(d)p Fu(?)p Ft(g)283 1194 y Fu(for)41 -b(this)g(set)i(of)e(prop)s(erties)g(and)h(w)m(e)g(use)g -Fs(p)48 b Fu(as)41 b(a)h(meta-v)-5 b(ariable)38 b(ranging)i(o)m(v)m(er) -j Fw(P)p Fu(.)e(It)g(is)283 1314 y(more)34 b(informativ)m(e)e(to)h(kno) -m(w)i(that)f(an)g(expression)h(has)f(the)h(prop)s(ert)m(y)f -Fb(ok)h Fu(than)f Fb(d)p Fu(?.)48 b(As)34 b(a)283 1435 -y(record)g(of)e(this)g(w)m(e)h(de\014ne)h(a)f(partial)d(order)j -Ft(v)2036 1450 y Fn(P)2121 1435 y Fu(on)f Fw(P)p Fu(:)527 -1621 y Fb(ok)h Ft(v)764 1636 y Fn(P)849 1621 y Fb(d)p -Fu(?,)98 b Fb(ok)33 b Ft(v)1318 1636 y Fn(P)1403 1621 -y Fb(ok)p Fu(,)98 b Fb(d)p Fu(?)33 b Ft(v)1872 1636 y -Fn(P)1957 1621 y Fb(d)p Fu(?)283 1807 y(and)g(depicted)g(as)942 -2232 y Ft(\017)65 b Fb(ok)942 1942 y Ft(\017)g Fb(d)p -Fu(?)p 966 2174 4 225 v 283 2501 a(Th)m(us)35 b(the)e(more)e -(informativ)m(e)g(prop)s(ert)m(y)i(is)f(at)h(the)g(b)s(ottom)e(of)h -(the)h(ordering!)43 b(W)-8 b(e)33 b(ha)m(v)m(e)p 283 -2622 3473 5 v 283 2779 a Fw(F)-9 b(act)38 b(5.1)49 b -Fu(\()p Fw(P)p Fu(,)32 b Ft(v)973 2794 y Fn(P)1026 2779 -y Fu(\))g(is)g(a)g(complete)g(lattice.)42 b(If)33 b Fs(Y)52 -b Fu(is)32 b(a)g(subset)j(of)d Fw(P)g Fu(then)552 2880 -y Fg(F)621 2961 y Fn(P)674 2946 y Fs(Y)52 b Fu(=)32 b -Fb(d)p Fu(?)h(if)e(and)i(only)f(if)f Fb(d)p Fu(?)i Ft(2)g -Fs(Y)p 283 3067 V 283 3253 a Fw(Pro)s(of:)g Fu(The)c(pro)s(of)f(is)g -(straigh)m(tforw)m(ard)g(using)g(the)h(de\014nition)f(of)f(complete)h -(lattices)g(giv)m(en)283 3373 y(in)k(Chapter)i(4.)2828 -b Fh(2)430 3577 y Fu(It)35 b(is)f(con)m(v)m(enien)m(t)i(to)f(write)f -Fs(p)1551 3592 y Fn(1)1623 3577 y Ft(t)1690 3592 y Fn(P)1774 -3577 y Fs(p)1830 3592 y Fn(2)1904 3577 y Fu(instead)h(of)2356 -3510 y Fg(F)2426 3592 y Fn(P)2478 3577 y Ft(f)p Fs(p)2584 -3592 y Fn(1)2623 3577 y Fu(,)g Fs(p)2741 3592 y Fn(2)2781 -3577 y Ft(g)p Fu(.)49 b(It)35 b(follo)m(ws)f(from)f(F)-8 -b(act)283 3697 y(5.1)33 b(that)f(the)h(binary)f(op)s(eration)f -Ft(t)1629 3712 y Fn(P)1714 3697 y Fu(ma)m(y)h(b)s(e)h(giv)m(en)f(b)m(y) -i(the)f(table)585 3875 y Ft(t)652 3890 y Fn(P)p 752 3911 -4 121 v 803 3875 a Fb(ok)101 b(d)p Fu(?)p 527 3914 661 -4 v 577 3998 a Fb(ok)p 752 4035 4 121 v 100 w(ok)g(d)p -Fu(?)596 4119 y Fb(d)p Fu(?)p 752 4155 V 109 w Fb(d)p -Fu(?)109 b Fb(d)p Fu(?)430 4298 y(When)23 b(reasoning)f(ab)s(out)g(the) -h(safet)m(y)g(of)f(the)h(analysis)e(w)m(e)j(need)f(to)f(b)s(e)h(a)f -(bit)f(more)h(precise)283 4418 y(ab)s(out)29 b(the)g(meaning)f(of)h -(the)g(prop)s(erties)g(with)g(resp)s(ect)h(to)e(the)i(v)-5 -b(alues)29 b(of)f(the)i(denotational)283 4539 y(seman)m(tics.)43 -b(While)28 b(it)g(ma)m(y)h(b)s(e)g(in)m(tuitiv)m(ely)f(clear)h(whether) -h(or)f(not)g(the)h(v)-5 b(alue)28 b(of)h(a)g(v)-5 b(ariable)283 -4659 y(only)42 b(dep)s(ends)h(on)f(the)g(input)f(v)-5 -b(ariables,)43 b(it)e(turns)h(out)g(to)f(b)s(e)h(imp)s(ossible)e(to)h -(insp)s(ect)h(a)283 4780 y(sp)s(eci\014c)36 b(v)-5 b(alue,)35 -b(for)f(example)g Fw(27)p Fu(,)h(and)g(decide)g(whether)h(or)f(not)f -(this)g(is)h(indeed)g(the)g(case.)283 4900 y(The)k(reason)g(is)e(that)h -(w)m(e)g(lose)g(the)g(con)m(text)h(in)e(whic)m(h)i(the)f(v)-5 -b(alue)37 b(arises.)60 b(W)-8 b(e)38 b(shall)e(solv)m(e)283 -5020 y(this)42 b(di\016cult)m(y)f(in)g(Section)h(5.3)f(and)h(to)f -(prepare)h(for)f(the)h(solution)f(w)m(e)h(shall)f(de\014ne)h(the)283 -5141 y(follo)m(wing)30 b(parameterized)i(relations:)527 -5327 y(rel)p 527 5340 109 4 v 15 x Fn(Aexp)801 5327 y -Fu(:)43 b Fw(P)32 b Ft(!)g Fu(\()p Fw(Z)h Ft(\002)g Fw(Z)g -Ft(!)f Fw(T)p Fu(\))527 5494 y(rel)p 527 5507 V 15 x -Fn(Bexp)798 5494 y Fu(:)43 b Fw(P)32 b Ft(!)g Fu(\()p -Fw(T)h Ft(\002)g Fw(T)f Ft(!)g Fw(T)p Fu(\))p eop -%%Page: 137 147 -137 146 bop 0 130 a Fw(5.1)112 b(Prop)s(erties)36 b(and)j(prop)s(ert)m -(y)e(states)1540 b(137)p 0 193 3473 4 v 0 515 a Fu(F)-8 -b(or)32 b(arithmetic)e(expressions)35 b(the)e(relation)d(is)i -(de\014ned)i(b)m(y:)244 801 y(rel)p 244 814 109 4 v 352 -816 a Fn(Aexp)517 801 y Fu(\()p Fs(p)6 b Fu(\)\()p Fs(v)743 -816 y Fn(1)782 801 y Fu(,)32 b Fs(v)897 816 y Fn(2)936 -801 y Fu(\))h(=)1115 627 y Fg(8)1115 701 y(<)1115 851 -y(:)1231 716 y Fw(tt)82 b Fs(p)38 b Fu(=)33 b Fb(d)p -Fu(?)f(or)h Fs(v)1914 731 y Fn(1)1985 716 y Fu(=)f Fs(v)2149 -731 y Fn(2)1231 884 y Fw(\013)105 b Fu(otherwise)0 1087 -y(and)33 b(similarly)c(for)j(b)s(o)s(olean)f(expression:)244 -1372 y(rel)p 244 1385 V 352 1387 a Fn(Bexp)514 1372 y -Fu(\()p Fs(p)6 b Fu(\)\()p Fs(v)740 1387 y Fn(1)779 1372 -y Fu(,)33 b Fs(v)895 1387 y Fn(2)934 1372 y Fu(\))f(=)1112 -1198 y Fg(8)1112 1273 y(<)1112 1422 y(:)1228 1288 y Fw(tt)82 -b Fs(p)38 b Fu(=)33 b Fb(d)p Fu(?)f(or)h Fs(v)1911 1303 -y Fn(1)1982 1288 y Fu(=)g Fs(v)2147 1303 y Fn(2)1228 -1455 y Fw(\013)105 b Fu(otherwise)0 1658 y(W)-8 b(e)46 -b(shall)f(often)h(omit)e(the)i(subscript)h(when)g(no)f(confusion)f(is)h -(lik)m(ely)e(to)i(result.)83 b(Eac)m(h)0 1778 y(of)43 -b(the)g(relations)f(tak)m(e)i(a)f(prop)s(ert)m(y)h(and)f(t)m(w)m(o)h(v) --5 b(alues)43 b(as)g(parameters.)76 b(In)m(tuitiv)m(ely)-8 -b(,)45 b(the)0 1899 y(prop)s(ert)m(y)37 b(expresses)i(ho)m(w)e(m)m(uc)m -(h)g(the)g(t)m(w)m(o)g(v)-5 b(alues)36 b(are)g(allo)m(w)m(ed)g(to)f -(di\013er.)54 b(Th)m(us)38 b Fb(d)p Fu(?)f(puts)0 2019 -y(no)32 b(requiremen)m(ts)i(on)e(the)h(v)-5 b(alues)33 -b(whereas)h Fb(ok)f Fu(requires)g(that)f(the)h(t)m(w)m(o)g(v)-5 -b(alues)33 b(are)f(equal.)0 2139 y(As)h(an)g(aid)e(to)h(readabilit)m(y) -f(w)m(e)j(shall)d(often)i(write)244 2343 y Fs(v)300 2358 -y Fn(1)371 2343 y Ft(\021)g Fs(v)537 2358 y Fn(2)609 -2343 y Fu(rel)p 609 2356 V 32 w Fs(p)0 2547 y Fu(instead)i(of)g(rel)p -453 2560 V(\()p Fs(p)6 b Fu(\)\()p Fs(v)788 2562 y Fn(1)827 -2547 y Fu(,)36 b Fs(v)946 2562 y Fn(2)985 2547 y Fu(\))f(and)h(w)m(e)g -(shall)e(sa)m(y)j(that)e Fs(v)2070 2562 y Fn(1)2144 2547 -y Fs(and)46 b(v)2401 2562 y Fn(2)2475 2547 y Fs(ar)-5 -b(e)37 b(e)-5 b(qual)38 b(as)f(far)g(as)43 b(p)f(is)0 -2668 y(c)-5 b(onc)g(erne)g(d)42 b Fu(\(or)32 b(relativ)m(e)g(to)g -Fs(p)6 b Fu(\).)0 2928 y Fw(Prop)s(ert)m(y)37 b(states)0 -3113 y Fu(In)49 b(the)g(op)s(erational)d(and)i(denotational)f(seman)m -(tics)h(a)h(state)f(maps)h(v)-5 b(ariables)47 b(to)h(their)0 -3234 y(v)-5 b(alues.)43 b(In)30 b(the)h(analysis)e(the)i(coun)m -(terpart)g(of)f(this)g(will)e(b)s(e)i(a)g Fs(pr)-5 b(op)g(erty)33 -b(state)38 b Fu(whic)m(h)31 b(maps)0 3354 y(v)-5 b(ariables)28 -b(to)h(prop)s(erties,)h(that)f(is)f(essen)m(tially)h(a)g(function)g(in) -f Fw(V)-9 b(ar)29 b Ft(!)f Fw(P)p Fu(.)h(The)h(idea)f(is)g(that)0 -3475 y(the)35 b(initial)c(prop)s(ert)m(y)36 b(state)f(will)e(only)h -(map)g(the)h(input)f(v)-5 b(ariables)34 b(to)g Fb(ok)i -Fu(and)f(that)f(if)g(the)0 3595 y(\014nal)40 b(prop)s(ert)m(y)h(state)g -(is)f(acceptable)h(and)f(maps)g(all)f(output)h(v)-5 b(ariables)40 -b(to)g Fb(ok)h Fu(then)g(the)0 3715 y(output)33 b(of)f(the)h(statemen)m -(t)g(will)d(de\014nitely)j(b)s(e)f(functionally)f(dep)s(enden)m(t)j(on) -f(the)g(input.)146 3836 y(T)-8 b(o)42 b(mak)m(e)g(this)f(idea)g(w)m -(ork)i(w)m(e)g(ha)m(v)m(e)g(to)e(extend)i(the)f(prop)s(ert)m(y)h(state) -f(to)f(mo)s(del)f(one)0 3956 y(additional)34 b(phenomenon,)j(namely)f -(the)h(\\\015o)m(w)g(of)f(con)m(trol".)54 b(W)-8 b(e)37 -b(shall)e(illustrate)f(this)i(in)0 4077 y(Example)i(5.3)g(b)s(elo)m(w)g -(but)g(let)g(us)h(\014rst)g(in)m(tro)s(duce)f(some)g(notation)f(that)h -(will)e(handle)i(the)0 4197 y(problem.)k(The)32 b(set)g -Fw(PState)f Fu(of)g(prop)s(ert)m(y)g(states)i(ranged)e(o)m(v)m(er)h(b)m -(y)g(the)g(meta-v)-5 b(ariable)28 b Fs(ps)8 b Fu(,)0 -4317 y(is)32 b(de\014ned)i(b)m(y)244 4521 y Fw(PState)e -Fu(=)g(\()p Fw(V)-9 b(ar)32 b Ft([)h(f)p Fu(on-trac)m(k)p -Ft(g)p Fu(\))g Ft(!)f Fw(P)0 4725 y Fu(where)27 b(`on-trac)m(k')f(is)f -(a)g(sp)s(ecial)g(tok)m(en)i(used)g(to)e(mo)s(del)f(the)i(\\\015o)m(w)g -(of)f(con)m(trol".)40 b(If)26 b(`on-trac)m(k')0 4846 -y(is)42 b(mapp)s(ed)h(to)f Fb(ok)i Fu(this)e(means)h(that)g(the)g -(\\\015o)m(w)g(of)f(con)m(trol")g(only)h(dep)s(ends)h(up)s(on)f(the)0 -4966 y(v)-5 b(alues)33 b(of)g(the)h(input)f(v)-5 b(ariables;)33 -b(if)f(it)g(is)h(mapp)s(ed)g(to)g Fb(d)p Fu(?)h(this)f(need)i(not)e(b)s -(e)g(the)h(case.)47 b(F)-8 b(or)0 5086 y(a)32 b(prop)s(ert)m(y)i(state) -f Fs(ps)40 b Ft(2)33 b Fw(PState)f Fu(w)m(e)i(de\014ne)g(the)f(set)244 -5290 y(OK\()p Fs(ps)8 b Fu(\))32 b(=)g Ft(f)h Fs(x)44 -b Ft(2)33 b Fw(V)-9 b(ar)32 b Ft([)h(f)p Fu(on-trac)m(k)p -Ft(g)f(j)g Fs(ps)41 b(x)j Fu(=)33 b Fb(ok)g Ft(g)0 5494 -y Fu(of)f(\\v)-5 b(ariables")31 b(mapp)s(ed)h(to)g Fb(ok)i -Fu(and)e(w)m(e)i(sa)m(y)f(that)p eop -%%Page: 138 148 -138 147 bop 251 130 a Fw(138)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 527 515 a Fs(ps)41 -b Fu(is)32 b Fs(pr)-5 b(op)g(er)43 b Fu(if)31 b(and)i(only)f(if)f -Fs(ps)8 b Fu(\(on-trac)m(k\))33 b(=)f Fb(ok)p Fu(.)283 -711 y(If)h Fs(ps)40 b Fu(is)32 b(not)h(prop)s(er)g(w)m(e)g(shall)e -(sometimes)h(sa)m(y)h(that)g(it)e(is)h(improp)s(er.)430 -832 y(The)d(relationship)d(b)s(et)m(w)m(een)31 b(prop)s(ert)m(y)d -(states)i(and)e(states)h(is)f(giv)m(en)g(b)m(y)h(the)g(parameter-)283 -952 y(ized)k(relation:)527 1148 y(rel)p 527 1161 109 -4 v 15 x Fn(Stm)765 1148 y Fu(:)44 b Fw(PState)32 b Ft(!)g -Fu(\()p Fw(State)h Ft(\002)g Fw(State)f Ft(!)g Fw(T)p -Fu(\))283 1344 y(de\014ned)i(b)m(y)527 1700 y(rel)p 527 -1713 V 15 x Fn(Stm)765 1700 y Fu(\()p Fs(ps)8 b Fu(\)\()p -Fs(s)1025 1715 y Fn(1)1065 1700 y Fu(,)32 b Fs(s)1172 -1715 y Fn(2)1212 1700 y Fu(\))g(=)1391 1451 y Fg(8)1391 -1525 y(>)1391 1550 y(>)1391 1575 y(>)1391 1600 y(<)1391 -1749 y(>)1391 1774 y(>)1391 1799 y(>)1391 1824 y(:)1506 -1531 y Fw(tt)82 b Fu(if)31 b Fs(ps)41 b Fu(on-trac)m(k)33 -b(=)f Fb(d)p Fu(?)1676 1699 y(or)g Ft(8)h Fs(x)44 b Ft(2)33 -b Fw(V)-9 b(ar)32 b Ft(\\)h Fu(OK\()p Fs(ps)8 b Fu(\):)43 -b Fs(s)2822 1714 y Fn(1)2894 1699 y Fs(x)i Fu(=)32 b -Fs(s)3140 1714 y Fn(2)3212 1699 y Fs(x)1506 1866 y Fw(\013)105 -b Fu(otherwise)283 2056 y(and)39 b(again)d(w)m(e)j(ma)m(y)f(omit)f(the) -h(subscript)h(when)g(no)f(confusion)g(is)g(lik)m(ely)f(to)h(o)s(ccur.) -60 b(The)283 2176 y(relation)34 b(expresses)39 b(the)e(exten)m(t)g(to)e -(whic)m(h)i(t)m(w)m(o)f(states)h(are)f(allo)m(w)m(ed)f(to)g(di\013er)h -(as)g(far)f(as)h(a)283 2296 y(giv)m(en)30 b(prop)s(ert)m(y)g(state)g -(is)e(concerned.)45 b(If)29 b Fs(ps)37 b Fu(is)29 b(not)g(prop)s(er)g -(then)h(rel)p 2766 2309 V -1 w(\()p Fs(ps)8 b Fu(\))29 -b(will)e(hold)i(on)g(an)m(y)283 2417 y(t)m(w)m(o)h(states.)44 -b(Ho)m(w)m(ev)m(er,)32 b(if)c Fs(ps)37 b Fu(is)29 b(prop)s(er)g(then)h -(rel)p 2031 2430 V -1 w(\()p Fs(ps)8 b Fu(\))29 b(will)e(hold)i(on)g(t) -m(w)m(o)h(states)g(if)e(they)i(are)283 2537 y(equal)37 -b(on)f(the)g(v)-5 b(ariables)35 b(in)h(OK\()p Fs(ps)8 -b Fu(\).)54 b(Phrased)37 b(di\013eren)m(tly)-8 b(,)37 -b(w)m(e)h(ma)m(y)e(view)g Fs(ps)44 b Fu(as)37 b(a)f(pair)283 -2657 y(of)i(glasses)g(that)f(only)h(allo)m(ws)e(us)i(to)g(see)h(part)e -(of)g(the)i(states)f(and)g(rel)p 2853 2670 V -1 w(\()p -Fs(ps)8 b Fu(\)\()p Fs(s)3221 2672 y Fn(1)3261 2657 y -Fu(,)39 b Fs(s)3375 2672 y Fn(2)3414 2657 y Fu(\))f(means)283 -2778 y(that)32 b Fs(s)542 2793 y Fn(1)614 2778 y Fu(and)g -Fs(s)851 2793 y Fn(2)922 2778 y Fu(lo)s(ok)f(the)i(same)f(when)h(view)m -(ed)g(through)f(that)g(pair)f(of)g(glasses.)44 b(Again)31 -b(w)m(e)283 2898 y(shall)h(write)527 3094 y Fs(s)575 -3109 y Fn(1)647 3094 y Ft(\021)h Fs(s)805 3109 y Fn(2)877 -3094 y Fu(rel)p 877 3107 V 32 w Fs(ps)283 3290 y Fu(for)f(rel)p -432 3303 V(\()p Fs(ps)8 b Fu(\)\()p Fs(s)801 3305 y Fn(1)840 -3290 y Fu(,)33 b Fs(s)948 3305 y Fn(2)987 3290 y Fu(\).)283 -3508 y Fw(Example)k(5.2)49 b Fu(Let)33 b Fs(s)1161 3523 -y Fn(1)1200 3508 y Fu(,)g Fs(s)1308 3523 y Fn(2)1380 -3508 y Fu(and)g Fs(ps)40 b Fu(b)s(e)33 b(giv)m(en)f(b)m(y)527 -3704 y Fs(s)575 3719 y Fn(1)647 3704 y Fr(x)h Fu(=)g -Fw(1)f Fu(and)h Fs(s)1166 3719 y Fn(1)1238 3704 y Fs(y)41 -b Fu(=)33 b Fw(0)f Fu(for)g Fs(y)42 b Ft(2)33 b Fw(V)-9 -b(ar)p Ft(n)o(f)p Fr(x)p Ft(g)527 3872 y Fs(s)575 3887 -y Fn(2)647 3872 y Fr(x)33 b Fu(=)g Fw(2)f Fu(and)h Fs(s)1166 -3887 y Fn(2)1238 3872 y Fs(y)41 b Fu(=)33 b Fw(0)f Fu(for)g -Fs(y)42 b Ft(2)33 b Fw(V)-9 b(ar)p Ft(n)o(f)p Fr(x)p -Ft(g)527 4039 y Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(d)p Fu(?)h(and)f -Fs(ps)41 b(y)g Fu(=)33 b Fb(ok)g Fu(for)f Fs(y)42 b Ft(2)32 -b Fu(\()p Fw(V)-9 b(ar)32 b Ft([)h(f)p Fu(on-trac)m(k)p -Ft(g)p Fu(\))p Ft(nf)p Fr(x)p Ft(g)283 4235 y Fu(Then)h -Fs(s)586 4250 y Fn(1)658 4235 y Ft(\021)f Fs(s)816 4250 -y Fn(2)888 4235 y Fu(rel)p 888 4248 V 32 w Fs(ps)8 b -Fu(.)2527 b Fh(2)283 4454 y Fw(Example)37 b(5.3)49 b -Fu(T)-8 b(o)26 b(motiv)-5 b(ate)24 b(the)j(need)g(for)f(improp)s(er)e -(prop)s(ert)m(y)j(states,)i(that)d(is)f(the)i(need)283 -4574 y(for)32 b(`on-trac)m(k',)i(consider)e(the)h(follo)m(wing)d -(statemen)m(ts:)527 4770 y Fs(S)594 4785 y Fn(1)634 4770 -y Fu(:)97 b Fr(x)33 b Fu(:=)g Fr(1)527 4937 y Fs(S)594 -4952 y Fn(2)634 4937 y Fu(:)97 b Fr(x)33 b Fu(:=)g Fr(2)283 -5133 y Fu(It)g(w)m(ould)f(b)s(e)g(natural)f(to)h(exp)s(ect)h(that)f -(the)h(analysis)e(of)h Fs(S)2496 5148 y Fn(1)2567 5133 -y Fu(will)e(map)i(an)m(y)h(prop)s(ert)m(y)f(state)283 -5254 y Fs(ps)46 b Fu(to)36 b(the)i(prop)s(ert)m(y)g(state)g -Fs(ps)8 b Fu([)p Fr(x)p Ft(7!)o Fb(ok)p Fu(])38 b(since)g(a)f(constan)m -(t)h(v)-5 b(alue)37 b(cannot)g(dep)s(end)h(on)f(the)283 -5374 y(v)-5 b(alue)31 b(of)f(an)m(y)i(\(non-input\))e(v)-5 -b(ariable.)41 b(A)31 b(similar)d(argumen)m(t)j(holds)f(for)h -Fs(S)3079 5389 y Fn(2)3118 5374 y Fu(.)43 b(No)m(w)32 -b(consider)283 5494 y(the)h(statemen)m(ts)p eop -%%Page: 139 149 -139 148 bop 0 130 a Fw(5.1)112 b(Prop)s(erties)36 b(and)j(prop)s(ert)m -(y)e(states)1540 b(139)p 0 193 3473 4 v 244 515 a Fs(S)311 -530 y Fn(11)385 515 y Fu(:)98 b Fr(if)33 b(x)g Fu(=)f -Fr(1)h(then)h Fs(S)1226 530 y Fn(1)1297 515 y Fr(else)g -Fs(S)1602 530 y Fn(1)244 683 y Fs(S)311 698 y Fn(12)385 -683 y Fu(:)98 b Fr(if)33 b(x)g Fu(=)f Fr(1)h(then)h Fs(S)1226 -698 y Fn(1)1297 683 y Fr(else)g Fs(S)1602 698 y Fn(2)0 -874 y Fu(Again)h(w)m(e)i(ma)m(y)f(exp)s(ect)h(that)f(the)h(analysis)e -(of)h Fs(S)1901 889 y Fn(11)2012 874 y Fu(will)d(map)j(an)m(y)g(prop)s -(ert)m(y)h(state)g Fs(ps)44 b Fu(to)0 994 y(the)33 b(prop)s(ert)m(y)g -(state)g Fs(ps)8 b Fu([)p Fr(x)p Ft(7!)p Fb(ok)p Fu(],)34 -b(since)f Fs(S)1601 1009 y Fn(11)1708 994 y Fu(is)f(seman)m(tically)e -(equiv)-5 b(alen)m(t)33 b(to)f Fs(S)3014 1009 y Fn(1)3053 -994 y Fu(.)146 1114 y(Concerning)d Fs(S)724 1129 y Fn(12)827 -1114 y Fu(it)f(will)e(not)j(alw)m(a)m(ys)g(b)s(e)g(correct)g(for)f(the) -h(analysis)f(to)g(map)g(a)h(prop)s(ert)m(y)0 1235 y(state)k -Fs(ps)40 b Fu(to)33 b Fs(ps)8 b Fu([)p Fr(x)p Ft(7!)p -Fb(ok)p Fu(].)44 b(F)-8 b(or)31 b(an)i(example)f(supp)s(ose)i(that)e -Fs(ps)8 b Fu(,)33 b Fs(s)2465 1250 y Fn(1)2537 1235 y -Fu(and)g Fs(s)2775 1250 y Fn(2)2847 1235 y Fu(are)f(suc)m(h)i(that)244 -1425 y Fs(ps)40 b Fr(x)33 b Fu(=)f Fb(d)p Fu(?)h(and)g -Fs(ps)40 b(y)i Fu(=)32 b Fb(ok)h Fu(for)g Fs(y)41 b Ft(2)33 -b Fu(\()p Fw(V)-9 b(ar)32 b Ft([)h(f)p Fu(on-trac)m(k)p -Ft(g)p Fu(\))p Ft(nf)p Fr(x)p Ft(g)244 1593 y Fs(s)292 -1608 y Fn(1)364 1593 y Fr(x)g Fu(=)f Fw(1)h Fu(and)f -Fs(s)882 1608 y Fn(1)954 1593 y Fs(y)42 b Fu(=)32 b Fw(0)h -Fu(for)f Fs(y)41 b Ft(2)33 b Fw(V)-9 b(ar)p Ft(nf)p Fr(x)p -Ft(g)244 1761 y Fs(s)292 1776 y Fn(2)364 1761 y Fr(x)33 -b Fu(=)f Fw(2)h Fu(and)f Fs(s)882 1776 y Fn(2)954 1761 -y Fs(y)42 b Fu(=)32 b Fw(0)h Fu(for)f Fs(y)41 b Ft(2)33 -b Fw(V)-9 b(ar)p Ft(nf)p Fr(x)p Ft(g)0 1951 y Fu(Then)34 -b(Example)e(5.2)g(giv)m(es)244 2142 y Fs(s)292 2157 y -Fn(1)364 2142 y Ft(\021)h Fs(s)522 2157 y Fn(2)594 2142 -y Fu(rel)p 594 2155 109 4 v 32 w Fs(ps)0 2333 y Fu(but)50 -b Ft(S)264 2348 y Fn(ds)335 2333 y Fu([)-17 b([)q Fs(S)440 -2348 y Fn(12)514 2333 y Fu(])g(])q Fs(s)600 2348 y Fn(1)689 -2333 y Ft(\021)51 b(S)885 2348 y Fn(ds)956 2333 y Fu([)-17 -b([)p Fs(S)1060 2348 y Fn(12)1135 2333 y Fu(])g(])q Fs(s)1221 -2348 y Fn(2)1310 2333 y Fu(rel)p 1310 2346 V 49 w Fs(ps)8 -b Fu([)p Fr(x)p Ft(7!)p Fb(ok)p Fu(])51 b Fs(fails)57 -b Fu(b)s(ecause)52 b Ft(S)2627 2348 y Fn(ds)2698 2333 -y Fu([)-17 b([)p Fs(S)2802 2348 y Fn(12)2877 2333 y Fu(])g(])q -Fs(s)2963 2348 y Fn(1)3052 2333 y Fu(=)50 b Fs(s)3226 -2348 y Fn(1)3315 2333 y Fu(and)0 2453 y Ft(S)68 2468 -y Fn(ds)139 2453 y Fu([)-17 b([)q Fs(S)244 2468 y Fn(12)318 -2453 y Fu(])g(])q Fs(s)404 2468 y Fn(2)476 2453 y Fu(=)32 -b Fs(s)632 2468 y Fn(2)704 2453 y Fu(and)h Fs(s)942 2468 -y Fn(1)1014 2453 y Fr(x)g Ft(6)p Fu(=)f Fs(s)1254 2468 -y Fn(2)1326 2453 y Fr(x)p Fu(.)146 2573 y(Ho)m(w)m(ev)m(er,)j(from)c -(the)i(p)s(oin)m(t)f(of)g(view)g(of)g(the)h Fs(analysis)40 -b Fu(there)33 b(is)f(no)g(di\013erence)h(b)s(et)m(w)m(een)0 -2694 y Fs(S)67 2709 y Fn(1)137 2694 y Fu(and)d Fs(S)391 -2709 y Fn(2)461 2694 y Fu(b)s(ecause)i(neither)e(the)h(v)-5 -b(alue)30 b(of)g Fr(1)g Fu(nor)h Fr(2)f Fu(dep)s(ends)i(on)f(the)g(v)-5 -b(alues)30 b(of)g(the)h(input)0 2814 y(v)-5 b(ariables.)90 -b(Since)48 b(the)h(analysis)f(is)g(comp)s(ositionally)c(de\014ned)50 -b(this)e(means)g(that)h(there)0 2935 y(can)36 b(b)s(e)g(no)f -(di\013erence)h(b)s(et)m(w)m(een)i Fs(S)1342 2950 y Fn(11)1452 -2935 y Fu(and)e Fs(S)1712 2950 y Fn(12)1822 2935 y Fu(from)e(the)i(p)s -(oin)m(t)f(of)g(view)h(of)f(the)h(analysis.)0 3055 y(Therefore)27 -b(w)m(e)g(ha)m(v)m(e)g(to)e(accept)h(that)g(also)f(the)h(analysis)f(of) -g Fs(S)2284 3070 y Fn(11)2384 3055 y Fu(should)h Fs(not)35 -b Fu(allo)m(w)24 b(mapping)0 3175 y(an)32 b(arbitrary)g(prop)s(ert)m(y) -h(state)g Fs(ps)41 b Fu(to)32 b Fs(ps)8 b Fu([)p Fr(x)p -Ft(7!)p Fb(ok)p Fu(].)146 3296 y(The)38 b(di\013erence)g(b)s(et)m(w)m -(een)h Fs(S)1240 3311 y Fn(1)1316 3296 y Fu(and)e Fs(S)1577 -3311 y Fn(2)1653 3296 y Fu(arises)f(when)i(the)g(\\\015o)m(w)f(of)f -(con)m(trol")g(do)s(es)i(not)0 3416 y(dep)s(end)25 b(on)e(the)i(input)e -(v)-5 b(ariables)22 b(and)i(it)f(is)g(here)h(the)h(need)f(for)f(the)i -(sp)s(ecial)d(tok)m(en)j(`on-trac)m(k')0 3536 y(comes)33 -b(in.)44 b(W)-8 b(e)34 b(shall)e(transform)g(a)g(prop)s(ert)m(y)i -(state)g(in)m(to)e(an)h(improp)s(er)e(one,)j(b)m(y)g(mapping)0 -3657 y(`on-trac)m(k')39 b(to)f Fb(d)p Fu(?,)i(whenev)m(er)h(the)e -(\\\015o)m(w)g(of)f(con)m(trol")f(is)h(not)h(\\functionally)d(dep)s -(enden)m(t")0 3777 y(on)47 b(the)g(input)f(v)-5 b(ariables.)85 -b(Th)m(us)48 b(if)e Fs(ps)55 b Fr(x)46 b Fu(=)h Fb(d)p -Fu(?)g(then)g(it)f(is)g(the)i(test,)j Fr(x)c Fu(=)f Fr(1)p -Fu(,)51 b(in)46 b Fs(S)3398 3792 y Fn(11)0 3898 y Fu(and)33 -b Fs(S)257 3913 y Fn(12)365 3898 y Fu(that)g(will)d(b)s(e)k(resp)s -(onsible)f(for)f(mapping)g Fs(ps)41 b Fu(in)m(to)32 b(the)i(improp)s -(er)d(prop)s(ert)m(y)j(state)0 4018 y Fs(ps)8 b Fu([on-trac)m(k)p -Ft(7!)p Fb(d)p Fu(?])39 b(and)g(then)g(the)g(e\013ect)h(of)e(analysing) -g Fs(S)2235 4033 y Fn(1)2313 4018 y Fu(and)h Fs(S)2576 -4033 y Fn(2)2653 4018 y Fu(do)s(es)h(not)e(matter)g(as)0 -4138 y(long)31 b(as)i(an)g(improp)s(er)e(prop)s(ert)m(y)i(state)g(is)f -(not)g(mapp)s(ed)h(in)m(to)e(a)i(prop)s(er)f(one.)468 -b Fh(2)146 4350 y Fu(Our)33 b(next)g(task)g(will)d(b)s(e)j(to)f(endo)m -(w)i Fw(PState)e Fu(with)g(some)g(partially)e(ordered)j(structure)0 -4470 y(and)h(to)h(in)m(v)m(estigate)f(the)h(prop)s(erties)f(of)g(rel)p -1543 4483 V 1651 4485 a Fn(Stm)1781 4470 y Fu(.)49 b(Concerning)35 -b(the)f(former)g(this)g(will)e(b)s(e)i(an)0 4590 y(instance)f(of)f(a)g -(general)g(pro)s(cedure:)p 0 4711 3473 5 v 0 4872 a Fw(Lemma)37 -b(5.4)49 b Fu(Assume)43 b(that)f Fs(S)54 b Fu(is)41 b(a)h(non-empt)m(y) -g(set)h(and)f(that)f(\()p Fs(D)9 b Fu(,)42 b Ft(v)q Fu(\))g(is)f(a)h -(partially)0 4993 y(ordered)33 b(set.)44 b(Let)33 b Ft(v)795 -4957 y Fi(0)851 4993 y Fu(b)s(e)f(the)h(ordering)f(on)h(the)g(set)g -Fs(S)12 b Ft(!)o Fs(D)42 b Fu(de\014ned)34 b(b)m(y)244 -5183 y Fs(f)295 5198 y Fn(1)367 5183 y Ft(v)444 5147 -y Fi(0)500 5183 y Fs(f)551 5198 y Fn(2)623 5183 y Fu(if)d(and)i(only)f -(if)g Fs(f)1256 5198 y Fn(1)1328 5183 y Fs(x)45 b Ft(v)33 -b Fs(f)1579 5198 y Fn(2)1651 5183 y Fs(x)44 b Fu(for)32 -b(all)e Fs(x)45 b Ft(2)33 b Fs(S)0 5374 y Fu(Then)i(\()p -Fs(S)12 b Ft(!)o Fs(D)d Fu(,)33 b Ft(v)681 5338 y Fi(0)704 -5374 y Fu(\))g(is)g(a)g(partially)e(ordered)j(set.)47 -b(F)-8 b(urthermore,)33 b(\()p Fs(S)12 b Ft(!)o Fs(D)d -Fu(,)34 b Ft(v)2914 5338 y Fi(0)2938 5374 y Fu(\))f(is)g(a)g(ccp)s(o)h -(if)0 5494 y Fs(D)42 b Fu(is)32 b(and)g(it)g(is)g(a)g(complete)g -(lattice)f(if)h Fs(D)41 b Fu(is.)i(In)33 b(b)s(oth)f(cases)i(w)m(e)g -(ha)m(v)m(e)p eop -%%Page: 140 150 -140 149 bop 251 130 a Fw(140)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 527 515 a Fu(\()565 -449 y Fg(F)634 479 y Fi(0)658 515 y Fs(Y)19 b Fu(\))33 -b Fs(x)44 b Fu(=)1018 449 y Fg(F)1119 515 y Ft(f)33 b -Fs(f)53 b(x)44 b Ft(j)33 b Fs(f)53 b Ft(2)33 b Fs(Y)52 -b Ft(g)283 715 y Fu(so)33 b(that)g(least)f(upp)s(er)h(b)s(ounds)g(are)g -(determined)f(p)s(oin)m(t)m(wise.)p 283 835 3473 5 v -283 1034 a Fw(Pro)s(of:)48 b Fu(It)41 b(is)g(straigh)m(tforw)m(ard)g -(to)g(v)m(erify)h(that)f Ft(v)2255 998 y Fi(0)2320 1034 -y Fu(is)g(a)g(partial)e(order)i(so)h(w)m(e)g(omit)d(the)283 -1155 y(details.)50 b(W)-8 b(e)35 b(shall)f(\014rst)h(pro)m(v)m(e)h(the) -g(lemma)d(in)h(the)h(case)h(where)g Fs(D)44 b Fu(is)34 -b(a)h(complete)f(lattice)283 1275 y(so)f(let)f Fs(Y)52 -b Fu(b)s(e)33 b(a)f(subset)j(of)d Fs(S)44 b Ft(!)32 b -Fs(D)9 b Fu(.)33 b(Then)g(the)g(form)m(ula)527 1474 y(\()565 -1408 y Fg(F)634 1438 y Fi(0)658 1474 y Fs(Y)19 b Fu(\))33 -b Fs(x)44 b Fu(=)1018 1408 y Fg(F)1119 1474 y Ft(f)33 -b Fs(f)53 b(x)44 b Ft(j)33 b Fs(f)53 b Ft(2)33 b Fs(Y)52 -b Ft(g)283 1674 y Fu(de\014nes)33 b(an)e(elemen)m(t)1094 -1607 y Fg(F)1164 1637 y Fi(0)1187 1674 y Fs(Y)50 b Fu(of)31 -b Fs(S)42 b Ft(!)31 b Fs(D)39 b Fu(b)s(ecause)32 b Fs(D)40 -b Fu(b)s(eing)30 b(a)h(complete)f(lattice)f(means)i(that)283 -1728 y Fg(F)353 1794 y Ft(f)43 b Fs(f)64 b(x)55 b Ft(j)43 -b Fs(f)64 b Ft(2)44 b Fs(Y)63 b Ft(g)43 b Fu(exists)h(for)f(all)e -Fs(x)55 b Fu(of)43 b Fs(S)12 b Fu(.)43 b(This)g(sho)m(ws)i(that)2834 -1728 y Fg(F)2904 1758 y Fi(0)2927 1794 y Fs(Y)63 b Fu(is)43 -b(a)g Fs(wel)5 b(l-de\014ne)-5 b(d)283 1914 y Fu(elemen)m(t)38 -b(of)e Fs(S)49 b Ft(!)37 b Fs(D)9 b Fu(.)37 b(T)-8 b(o)38 -b(see)g(that)1679 1848 y Fg(F)1748 1878 y Fi(0)1772 1914 -y Fs(Y)56 b Fu(is)37 b(an)g Fs(upp)-5 b(er)39 b(b)-5 -b(ound)48 b Fu(of)36 b Fs(Y)57 b Fu(let)37 b Fs(f)3151 -1929 y Fn(0)3223 1914 y Ft(2)c Fs(Y)56 b Fu(and)38 b(w)m(e)283 -2035 y(shall)c(sho)m(w)i(that)f Fs(f)1023 2050 y Fn(0)1097 -2035 y Ft(v)1175 1999 y Fi(0)1233 1968 y Fg(F)1302 1999 -y Fi(0)1325 2035 y Fs(Y)20 b Fu(.)35 b(This)g(amoun)m(ts)g(to)g -(considering)f(an)h(arbitrary)f Fs(x)47 b Fu(in)34 b -Fs(S)47 b Fu(and)283 2155 y(sho)m(wing)527 2354 y Fs(f)578 -2369 y Fn(0)650 2354 y Fs(x)e Ft(v)850 2288 y Fg(F)919 -2354 y Ft(f)32 b Fs(f)53 b(x)45 b Ft(j)32 b Fs(f)53 b -Ft(2)33 b Fs(Y)53 b Ft(g)283 2554 y Fu(and)34 b(this)g(is)f(immediate)f -(b)s(ecause)1606 2487 y Fg(F)1709 2554 y Fu(is)h(the)h(least)g(upp)s -(er)g(b)s(ound)g(op)s(eration)f(in)g Fs(D)9 b Fu(.)34 -b(T)-8 b(o)34 b(see)283 2674 y(that)500 2608 y Fg(F)569 -2638 y Fi(0)592 2674 y Fs(Y)57 b Fu(is)37 b(the)h Fs(le)-5 -b(ast)46 b Fu(upp)s(er)38 b(b)s(ound)g(of)f Fs(Y)57 b -Fu(let)36 b Fs(f)2261 2689 y Fn(1)2338 2674 y Fu(b)s(e)i(an)f(upp)s(er) -h(b)s(ound)f(of)g Fs(Y)57 b Fu(and)38 b(w)m(e)283 2794 -y(shall)32 b(sho)m(w)h(that)965 2728 y Fg(F)1034 2758 -y Fi(0)1057 2794 y Fs(Y)52 b Ft(v)1259 2758 y Fi(0)1315 -2794 y Fs(f)1366 2809 y Fn(1)1405 2794 y Fu(.)43 b(This)33 -b(amoun)m(ts)g(to)f(sho)m(wing)527 2927 y Fg(F)597 2994 -y Ft(f)g Fs(f)53 b(x)45 b Ft(j)32 b Fs(f)53 b Ft(2)33 -b Fs(Y)52 b Ft(g)33 b(v)g Fs(f)1462 3009 y Fn(1)1534 -2994 y Fs(x)283 3193 y Fu(for)c(an)g(arbitrary)f Fs(x)41 -b Ft(2)29 b Fs(S)12 b Fu(.)29 b(Ho)m(w)m(ev)m(er,)j(this)d(is)f -(immediate)f(b)s(ecause)j Fs(f)2856 3208 y Fn(1)2924 -3193 y Fs(x)41 b Fu(m)m(ust)29 b(b)s(e)g(an)g(upp)s(er)283 -3313 y(b)s(ound)j(of)e Ft(f)h Fs(f)52 b(x)43 b Ft(j)31 -b Fs(f)51 b Ft(2)32 b Fs(Y)51 b Ft(g)30 b Fu(and)i(b)s(ecause)1932 -3247 y Fg(F)2032 3313 y Fu(is)f(the)g(least)g(upp)s(er)g(b)s(ound)h(op) -s(eration)e(in)g Fs(D)9 b Fu(.)430 3434 y(T)-8 b(o)34 -b(pro)m(v)m(e)i(the)f(other)g(part)f(of)g(the)h(lemma)d(assume)j(that)g -Fs(D)43 b Fu(is)34 b(a)g(ccp)s(o)h(and)g(that)f Fs(Y)54 -b Fu(is)283 3554 y(a)33 b(c)m(hain)f(in)g Fs(S)44 b Ft(!)32 -b Fs(D)9 b Fu(.)33 b(The)h(form)m(ula)527 3753 y(\()565 -3687 y Fg(F)634 3717 y Fi(0)658 3753 y Fs(Y)19 b Fu(\))33 -b Fs(x)44 b Fu(=)1018 3687 y Fg(F)1119 3753 y Ft(f)33 -b Fs(f)53 b(x)44 b Ft(j)33 b Fs(f)53 b Ft(2)33 b Fs(Y)52 -b Ft(g)283 3953 y Fu(de\014nes)43 b(an)e(elemen)m(t)1125 -3886 y Fg(F)1194 3917 y Fi(0)1218 3953 y Fs(Y)60 b Fu(of)41 -b Fs(S)53 b Ft(!)41 b Fs(D)9 b Fu(:)41 b(eac)m(h)h Ft(f)f -Fs(f)62 b(x)52 b Ft(j)41 b Fs(f)62 b Ft(2)42 b Fs(Y)60 -b Ft(g)41 b Fu(will)e(b)s(e)i(a)g(c)m(hain)g(in)f Fs(D)283 -4073 y Fu(b)s(ecause)32 b Fs(Y)50 b Fu(is)30 b(a)g(c)m(hain)g(and)g -(hence)i(eac)m(h)1867 4007 y Fg(F)1937 4073 y Ft(f)e -Fs(f)51 b(x)42 b Ft(j)30 b Fs(f)51 b Ft(2)31 b Fs(Y)50 -b Ft(g)30 b Fu(exists)h(b)s(ecause)g Fs(D)40 b Fu(is)29 -b(a)h(ccp)s(o.)283 4194 y(That)527 4127 y Fg(F)597 4157 -y Fi(0)620 4194 y Fs(Y)52 b Fu(is)32 b(the)h(least)f(upp)s(er)h(b)s -(ound)g(of)f Fs(Y)52 b Fu(in)32 b Fs(S)45 b Ft(!)32 b -Fs(D)41 b Fu(follo)m(ws)32 b(as)g(ab)s(o)m(v)m(e.)457 -b Fh(2)430 4397 y Fu(Instan)m(tiating)31 b Fs(S)45 b -Fu(to)32 b(b)s(e)h Fw(V)-9 b(ar)32 b Ft([)h(f)p Fu(on-trac)m(k)p -Ft(g)f Fu(and)h Fs(D)41 b Fu(to)32 b(b)s(e)h Fw(P)f Fu(w)m(e)i(get:)p -283 4517 V 283 4688 a Fw(Corollary)i(5.5)49 b Fu(Let)33 -b Ft(v)1226 4703 y Fn(PS)1349 4688 y Fu(b)s(e)g(the)g(ordering)f(on)g -Fw(PState)h Fu(de\014ned)h(b)m(y)527 4887 y Fs(ps)625 -4902 y Fn(1)694 4887 y Ft(v)772 4902 y Fn(PS)893 4887 -y Fs(ps)991 4902 y Fn(2)1060 4887 y Fu(if)28 b(and)i(only)g(if)e -Fs(ps)1729 4902 y Fn(1)1798 4887 y Fs(x)42 b Ft(v)1962 -4902 y Fn(P)2044 4887 y Fs(ps)2142 4902 y Fn(2)2211 4887 -y Fs(x)f Fu(for)30 b(all)d Fs(x)42 b Ft(2)30 b Fw(V)-9 -b(ar)29 b Ft([)h(f)p Fu(on-trac)m(k)p Ft(g)283 5086 y -Fu(Then)40 b(\()p Fw(PState)p Fu(,)f Ft(v)1057 5101 y -Fn(PS)1149 5086 y Fu(\))e(is)h(a)g(complete)f(lattice.)59 -b(In)38 b(particular,)g(the)g(least)g(upp)s(er)h(b)s(ound)283 -5140 y Fg(F)353 5221 y Fn(PS)444 5206 y Fs(Y)52 b Fu(of)32 -b(a)h(subset)h Fs(Y)52 b Fu(of)32 b Fw(PState)g Fu(is)g(c)m -(haracterized)i(b)m(y)552 5374 y(\()590 5308 y Fg(F)659 -5389 y Fn(PS)751 5374 y Fs(Y)19 b Fu(\))33 b Fs(x)44 -b Fu(=)1111 5308 y Fg(F)1180 5389 y Fn(P)1264 5374 y -Ft(f)33 b Fs(ps)40 b(x)k Ft(j)33 b Fs(ps)40 b Ft(2)33 -b Fs(Y)52 b Ft(g)p 283 5494 V eop -%%Page: 141 151 -141 150 bop 0 130 a Fw(5.1)112 b(Prop)s(erties)36 b(and)j(prop)s(ert)m -(y)e(states)1540 b(141)p 0 193 3473 4 v 146 515 a Fu(W)-8 -b(e)28 b(shall)e(write)h Fb(lost)g Fu(for)g(the)h(prop)s(ert)m(y)g -(state)f Fs(ps)36 b Fu(that)27 b(maps)g(all)e(v)-5 b(ariables)26 -b(to)h Fb(d)p Fu(?)g(and)0 636 y(that)38 b(maps)f(`on-trac)m(k')h(to)g -Fb(d)p Fu(?.)59 b(Similarly)-8 b(,)35 b(w)m(e)k(shall)d(write)i -Fb(init)g Fu(for)f(the)h(prop)s(ert)m(y)h(state)0 756 -y(that)c(maps)h(all)d(v)-5 b(ariables)34 b(to)i Fb(ok)g -Fu(and)f(that)h(maps)f(`on-trac)m(k')h(to)f Fb(ok)p Fu(.)53 -b(Note)36 b(that)f Fb(init)h Fu(is)0 877 y(the)d Fs(le)-5 -b(ast)35 b(element)41 b Fu(of)32 b Fw(PState)p Fu(.)0 -1105 y Fw(Exercise)k(5.6)49 b(\(Essen)m(tial\))31 b Fu(Sho)m(w)i(that) -244 1308 y Fs(ps)342 1323 y Fn(1)414 1308 y Ft(v)491 -1323 y Fn(PS)615 1308 y Fs(ps)713 1323 y Fn(2)785 1308 -y Fu(if)e(and)i(only)f(if)g(OK\()p Fs(ps)1656 1323 y -Fn(1)1694 1308 y Fu(\))h Ft(\023)g Fu(OK\()p Fs(ps)2163 -1323 y Fn(2)2202 1308 y Fu(\))0 1512 y(Next)g(sho)m(w)h(that)244 -1715 y(OK\()434 1649 y Fg(F)503 1730 y Fn(PS)627 1715 -y Fs(Y)19 b Fu(\))33 b(=)897 1649 y Fg(T)966 1715 y Ft(f)g -Fu(OK\()p Fs(ps)8 b Fu(\))32 b Ft(j)g Fs(ps)40 b Ft(2)33 -b Fs(Y)52 b Ft(g)0 1918 y Fu(whenev)m(er)35 b Fs(Y)52 -b Fu(is)32 b(a)h(non-empt)m(y)f(subset)j(of)d Fw(PState)p -Fu(.)1409 b Fh(2)0 2178 y Fw(Prop)s(erties)36 b(of)i(rel)p -676 2191 129 4 v 0 2363 a Fu(T)-8 b(o)36 b(study)i(the)e(prop)s(erties) -h(of)e(the)i(parameterized)f(relation)e(rel)p 2339 2376 -109 4 v 36 w(w)m(e)j(need)h(a)e(notion)f(of)g(an)0 2483 -y(equiv)-5 b(alence)33 b(relation.)41 b(A)33 b(relation)244 -2687 y Fs(R)t Fu(:)g Fs(E)44 b Ft(\002)33 b Fs(E)45 b -Ft(!)32 b Fw(T)0 2890 y Fu(is)g(an)h Fs(e)-5 b(quivalenc)g(e)33 -b(r)-5 b(elation)40 b Fu(on)32 b(a)g(set)i Fs(E)45 b -Fu(if)31 b(and)i(only)f(if)294 3085 y Fs(R)t Fu(\()p -Fs(e)459 3100 y Fn(1)498 3085 y Fu(,)h Fs(e)610 3100 -y Fn(1)650 3085 y Fu(\))1416 b(\(re\015exivit)m(y\))294 -3253 y Fs(R)t Fu(\()p Fs(e)459 3268 y Fn(1)498 3253 y -Fu(,)33 b Fs(e)610 3268 y Fn(2)650 3253 y Fu(\))f(and)h -Fs(R)t Fu(\()p Fs(e)1075 3268 y Fn(2)1115 3253 y Fu(,)f -Fs(e)1226 3268 y Fn(3)1266 3253 y Fu(\))g(imply)f Fs(R)t -Fu(\()p Fs(e)1775 3268 y Fn(1)1815 3253 y Fu(,)i Fs(e)1927 -3268 y Fn(3)1966 3253 y Fu(\))100 b(\(transitivit)m(y\))294 -3420 y Fs(R)t Fu(\()p Fs(e)459 3435 y Fn(1)498 3420 y -Fu(,)33 b Fs(e)610 3435 y Fn(2)650 3420 y Fu(\))f(implies)e -Fs(R)t Fu(\()p Fs(e)1216 3435 y Fn(2)1256 3420 y Fu(,)j -Fs(e)1368 3435 y Fn(1)1407 3420 y Fu(\))659 b(\(symmetry\))0 -3617 y(for)32 b(all)f Fs(e)337 3632 y Fn(1)376 3617 y -Fu(,)i Fs(e)488 3632 y Fn(2)560 3617 y Fu(and)g Fs(e)802 -3632 y Fn(3)874 3617 y Fu(of)f Fs(E)12 b Fu(.)0 3845 -y Fw(Exercise)36 b(5.7)49 b Fu(Sho)m(w)39 b(that)f(rel)p -1115 3858 V 1223 3860 a Fn(Aexp)1388 3845 y Fu(\()p Fs(p)6 -b Fu(\),)39 b(rel)p 1586 3858 V 1694 3860 a Fn(Bexp)1856 -3845 y Fu(\()p Fs(p)6 b Fu(\))38 b(and)g(rel)p 2221 3858 -V 2329 3860 a Fn(Stm)2459 3845 y Fu(\()p Fs(ps)8 b Fu(\))38 -b(are)f(equiv)-5 b(alence)39 b(re-)0 3966 y(lations)31 -b(for)h(all)e(c)m(hoices)k(of)e Fs(p)38 b Ft(2)33 b Fw(P)f -Fu(and)h Fs(ps)40 b Ft(2)33 b Fw(PState)p Fu(.)1285 b -Fh(2)146 4194 y Fu(Eac)m(h)33 b(of)e(rel)p 498 4207 V -606 4209 a Fn(Aexp)771 4194 y Fu(,)h(rel)p 830 4207 V -938 4209 a Fn(Bexp)1132 4194 y Fu(and)f(rel)p 1320 4207 -V 15 x Fn(Stm)1590 4194 y Fu(are)h(examples)f(of)g(parameterized)g -(\(equiv)-5 b(alence\))0 4314 y(relations.)42 b(In)33 -b(general)f(a)g Fs(p)-5 b(ar)g(ameterize)g(d)34 b(r)-5 -b(elation)39 b Fu(is)33 b(of)f(the)h(form)244 4518 y -Ft(R)p Fu(:)44 b Fs(D)d Ft(!)32 b Fu(\()p Fs(E)45 b Ft(\002)33 -b Fs(E)45 b Ft(!)32 b Fw(T)p Fu(\))0 4721 y(where)e(\()p -Fs(D)9 b Fu(,)30 b Ft(v)p Fu(\))f(is)g(a)g(partially)e(ordered)j(set,)g -Fs(E)42 b Fu(is)29 b(a)g(set)h(and)f(eac)m(h)h Ft(R)q -Fu(\()p Fs(d)10 b Fu(\))29 b(is)f(a)h(relation.)41 b(W)-8 -b(e)0 4842 y(shall)31 b(sa)m(y)j(that)e(a)g(parameterized)g(relation)f -Ft(R)i Fu(is)f(a)g Fs(Kripke-r)-5 b(elation)39 b Fu(if)244 -5045 y Fs(d)304 5060 y Fn(1)376 5045 y Ft(v)33 b Fs(d)546 -5060 y Fn(2)618 5045 y Fu(implies)d(that)j(for)f(all)e -Fs(e)1497 5060 y Fn(1)1537 5045 y Fu(,)i Fs(e)1648 5060 -y Fn(2)1721 5045 y Ft(2)h Fs(E)12 b Fu(:)949 5213 y(if)32 -b Ft(R)p Fu(\()p Fs(d)1221 5228 y Fn(1)1261 5213 y Fu(\)\()p -Fs(e)1389 5228 y Fn(1)1428 5213 y Fu(,)h Fs(e)1540 5228 -y Fn(2)1579 5213 y Fu(\))g(then)g Ft(R)q Fu(\()p Fs(d)2055 -5228 y Fn(2)2094 5213 y Fu(\)\()p Fs(e)2222 5228 y Fn(1)2262 -5213 y Fu(,)f Fs(e)2373 5228 y Fn(2)2413 5213 y Fu(\))0 -5416 y(Note)h(that)f(this)g(is)g(a)h(kind)f(of)g(monotonicit)m(y)f -(prop)s(ert)m(y)-8 b(.)p eop -%%Page: 142 152 -142 151 bop 251 130 a Fw(142)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 3473 -5 v 283 702 a(Lemma)i(5.8)49 b Fu(rel)p 873 715 109 4 -v 981 717 a Fn(Stm)1143 702 y Fu(is)32 b(a)g(Kripk)m(e-relation.)p -283 822 3473 5 v 283 1036 a Fw(Pro)s(of:)38 b Fu(Let)32 -b Fs(ps)896 1051 y Fn(1)968 1036 y Fu(and)h Fs(ps)1256 -1051 y Fn(2)1328 1036 y Fu(b)s(e)g(suc)m(h)h(that)e Fs(ps)1990 -1051 y Fn(1)2062 1036 y Ft(v)2139 1051 y Fn(PS)2263 1036 -y Fs(ps)2361 1051 y Fn(2)2433 1036 y Fu(and)h(assume)g(that)527 -1250 y Fs(s)575 1265 y Fn(1)647 1250 y Ft(\021)g Fs(s)805 -1265 y Fn(2)877 1250 y Fu(rel)p 877 1263 109 4 v 32 w -Fs(ps)1116 1265 y Fn(1)283 1463 y Fu(holds)g(for)f(all)e(states)k -Fs(s)1149 1478 y Fn(1)1221 1463 y Fu(and)e Fs(s)1458 -1478 y Fn(2)1498 1463 y Fu(.)43 b(W)-8 b(e)33 b(m)m(ust)g(sho)m(w)527 -1677 y Fs(s)575 1692 y Fn(1)647 1677 y Ft(\021)g Fs(s)805 -1692 y Fn(2)877 1677 y Fu(rel)p 877 1690 V 32 w Fs(ps)1116 -1692 y Fn(2)283 1890 y Fu(If)40 b Fs(ps)486 1905 y Fn(2)565 -1890 y Fu(on-trac)m(k)g(=)g Fb(d)p Fu(?)g(this)f(is)g(immediate)e(from) -i(the)h(de\014nition)f(of)g(rel)p 2979 1903 V 3087 1905 -a Fn(Stm)3217 1890 y Fu(.)65 b(So)39 b(assume)283 2011 -y(that)33 b Fs(ps)593 2026 y Fn(2)665 2011 y Fu(on-trac)m(k)f(=)h -Fb(ok)p Fu(.)44 b(In)33 b(this)f(case)i(w)m(e)f(m)m(ust)g(sho)m(w)527 -2224 y Ft(8)q Fs(x)44 b Ft(2)33 b Fu(OK\()p Fs(ps)1059 -2239 y Fn(2)1098 2224 y Fu(\))f Ft(\\)h Fw(V)-9 b(ar)p -Fu(:)43 b Fs(s)1561 2239 y Fn(1)1633 2224 y Fs(x)i Fu(=)32 -b Fs(s)1879 2239 y Fn(2)1951 2224 y Fs(x)283 2438 y Fu(Since)g -Fs(ps)635 2453 y Fn(1)706 2438 y Ft(v)784 2453 y Fn(PS)907 -2438 y Fs(ps)1005 2453 y Fn(2)1076 2438 y Fu(and)g Fs(ps)1363 -2453 y Fn(2)1434 2438 y Fu(on-trac)m(k)g(=)g Fb(ok)g -Fu(it)f(m)m(ust)h(b)s(e)g(the)g(case)h(that)e Fs(ps)3235 -2453 y Fn(1)3306 2438 y Fu(on-trac)m(k)h(is)283 2558 -y Fb(ok)p Fu(.)45 b(F)-8 b(rom)31 b Fs(s)785 2573 y Fn(1)857 -2558 y Ft(\021)i Fs(s)1015 2573 y Fn(2)1087 2558 y Fu(rel)p -1087 2571 V 32 w Fs(ps)1326 2573 y Fn(1)1397 2558 y Fu(w)m(e)h -(therefore)f(get)527 2772 y Ft(8)q Fs(x)44 b Ft(2)33 -b Fu(OK\()p Fs(ps)1059 2787 y Fn(1)1098 2772 y Fu(\))f -Ft(\\)h Fw(V)-9 b(ar)p Fu(:)43 b Fs(s)1561 2787 y Fn(1)1633 -2772 y Fs(x)i Fu(=)32 b Fs(s)1879 2787 y Fn(2)1951 2772 -y Fs(x)283 2986 y Fu(F)-8 b(rom)38 b(Exercise)i(5.6)f(and)g(the)g -(assumption)f Fs(ps)2090 3001 y Fn(1)2168 2986 y Ft(v)2246 -3001 y Fn(PS)2376 2986 y Fs(ps)2474 3001 y Fn(2)2552 -2986 y Fu(w)m(e)i(get)f(OK\()p Fs(ps)3159 3001 y Fn(1)3198 -2986 y Fu(\))g Ft(\023)g Fu(OK\()p Fs(ps)3679 3001 y -Fn(2)3718 2986 y Fu(\))283 3106 y(and)33 b(thereb)m(y)h(w)m(e)g(get)f -(the)g(desired)g(result.)1784 b Fh(2)283 3434 y Fw(Exercise)37 -b(5.9)49 b(\(Essen)m(tial\))29 b Fu(Sho)m(w)k(that)f(rel)p -1938 3447 V 2046 3449 a Fn(Aexp)2243 3434 y Fu(and)f(rel)p -2431 3447 V 15 x Fn(Bexp)2734 3434 y Fu(are)g(Kripk)m(e-relations.)74 -b Fh(2)283 3779 y Fj(5.2)161 b(The)53 b(analysis)283 -4002 y Fu(When)43 b(sp)s(ecifying)d(the)i(analysis)f(w)m(e)h(shall)e(b) -s(e)i(concerned)h(with)e(expressions)i(as)e(w)m(ell)g(as)283 -4123 y(statemen)m(ts.)283 4424 y Fp(Expressions)283 4613 -y Fu(The)c(analysis)e(of)h(an)f(arithmetic)f(expression)j -Fs(a)43 b Fu(will)33 b(b)s(e)j(sp)s(eci\014ed)h(b)m(y)g(a)e(\(total\))f -(function)283 4733 y Ft(P)8 b(A)q Fu([)-17 b([)p Fs(a)7 -b Fu(])-17 b(])33 b(from)f(prop)s(ert)m(y)h(states)h(to)e(prop)s -(erties:)527 4947 y Ft(P)8 b(A)p Fu(:)44 b Fw(Aexp)33 -b Ft(!)f Fu(\()p Fw(PState)g Ft(!)g Fw(P)p Fu(\))283 -5160 y(Similarly)-8 b(,)21 b(the)j(analysis)e(of)g(a)h(b)s(o)s(olean)e -(expression)k Fs(b)j Fu(will)21 b(b)s(e)i(de\014ned)i(b)m(y)e(a)g -(\(total\))e(function)283 5281 y Ft(P)8 b(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])33 b(from)e(prop)s(ert)m(y)j(states)f(to)f -(prop)s(erties:)527 5494 y Ft(P)8 b(B)t Fu(:)44 b Fw(Bexp)32 -b Ft(!)h Fu(\()p Fw(PState)f Ft(!)g Fw(P)p Fu(\))p eop -%%Page: 143 153 -143 152 bop 0 130 a Fw(5.2)112 b(The)38 b(analysis)2439 -b(143)p 0 193 3473 4 v 0 419 V 0 3216 4 2798 v 432 618 -a Ft(P)8 b(A)p Fu([)-17 b([)q Fs(n)7 b Fu(])-17 b(])p -Fs(ps)382 b Fu(=)1373 444 y Fg(8)1373 519 y(<)1373 668 -y(:)1488 534 y Fb(ok)84 b Fu(if)31 b Fs(ps)41 b Fu(on-trac)m(k)33 -b(=)f Fb(ok)1488 701 y(d)p Fu(?)102 b(otherwise)432 971 -y Ft(P)8 b(A)p Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])p -Fs(ps)387 b Fu(=)1373 796 y Fg(8)1373 871 y(<)1373 1020 -y(:)1488 886 y Fs(ps)41 b(x)95 b Fu(if)31 b Fs(ps)40 -b Fu(on-trac)m(k)33 b(=)g Fb(ok)1488 1053 y(d)p Fu(?)163 -b(otherwise)432 1233 y Ft(P)8 b(A)p Fu([)-17 b([)q Fs(a)684 -1248 y Fn(1)756 1233 y Fu(+)32 b Fs(a)921 1248 y Fn(2)961 -1233 y Fu(])-17 b(])p Fs(ps)110 b Fu(=)99 b(\()p Ft(P)8 -b(A)p Fu([)-17 b([)q Fs(a)1663 1248 y Fn(1)1702 1233 -y Fu(])g(])q Fs(ps)8 b Fu(\))32 b Ft(t)1975 1248 y Fn(P)2059 -1233 y Fu(\()p Ft(P)8 b(A)p Fu([)-17 b([)q Fs(a)2349 -1248 y Fn(2)2389 1233 y Fu(])g(])p Fs(ps)8 b Fu(\))432 -1424 y Ft(P)g(A)p Fu([)-17 b([)q Fs(a)684 1439 y Fn(1)756 -1424 y Fo(?)32 b Fs(a)894 1439 y Fn(2)934 1424 y Fu(])-17 -b(])p Fs(ps)137 b Fu(=)99 b(\()p Ft(P)8 b(A)p Fu([)-17 -b([)q Fs(a)1663 1439 y Fn(1)1702 1424 y Fu(])g(])q Fs(ps)8 -b Fu(\))32 b Ft(t)1975 1439 y Fn(P)2059 1424 y Fu(\()p -Ft(P)8 b(A)p Fu([)-17 b([)q Fs(a)2349 1439 y Fn(2)2389 -1424 y Fu(])g(])p Fs(ps)8 b Fu(\))432 1615 y Ft(P)g(A)p -Fu([)-17 b([)q Fs(a)684 1630 y Fn(1)756 1615 y Ft(\000)33 -b Fs(a)923 1630 y Fn(2)962 1615 y Fu(])-17 b(])q Fs(ps)108 -b Fu(=)99 b(\()p Ft(P)8 b(A)p Fu([)-17 b([)q Fs(a)1663 -1630 y Fn(1)1702 1615 y Fu(])g(])q Fs(ps)8 b Fu(\))32 -b Ft(t)1975 1630 y Fn(P)2059 1615 y Fu(\()p Ft(P)8 b(A)p -Fu([)-17 b([)q Fs(a)2349 1630 y Fn(2)2389 1615 y Fu(])g(])p -Fs(ps)8 b Fu(\))432 1967 y Ft(P)g(B)t Fu([)-17 b([)p -Fr(true)p Fu(])g(])r Fs(ps)250 b Fu(=)1373 1793 y Fg(8)1373 -1868 y(<)1373 2017 y(:)1488 1883 y Fb(ok)84 b Fu(if)31 -b Fs(ps)41 b Fu(on-trac)m(k)33 b(=)f Fb(ok)1488 2050 -y(d)p Fu(?)102 b(otherwise)432 2320 y Ft(P)8 b(B)t Fu([)-17 -b([)p Fr(false)p Fu(])g(])r Fs(ps)199 b Fu(=)1373 2145 -y Fg(8)1373 2220 y(<)1373 2369 y(:)1488 2235 y Fb(ok)84 -b Fu(if)31 b Fs(ps)41 b Fu(on-trac)m(k)33 b(=)f Fb(ok)1488 -2402 y(d)p Fu(?)102 b(otherwise)432 2582 y Ft(P)8 b(B)t -Fu([)-17 b([)p Fs(a)672 2597 y Fn(1)745 2582 y Fu(=)32 -b Fs(a)910 2597 y Fn(2)950 2582 y Fu(])-17 b(])p Fs(ps)121 -b Fu(=)99 b(\()p Ft(P)8 b(A)p Fu([)-17 b([)q Fs(a)1663 -2597 y Fn(1)1702 2582 y Fu(])g(])q Fs(ps)8 b Fu(\))32 -b Ft(t)1975 2597 y Fn(P)2059 2582 y Fu(\()p Ft(P)8 b(A)p -Fu([)-17 b([)q Fs(a)2349 2597 y Fn(2)2389 2582 y Fu(])g(])p -Fs(ps)8 b Fu(\))432 2773 y Ft(P)g(B)t Fu([)-17 b([)p -Fs(a)672 2788 y Fn(1)745 2773 y Ft(\024)33 b Fs(a)912 -2788 y Fn(2)951 2773 y Fu(])-17 b(])q Fs(ps)119 b Fu(=)99 -b(\()p Ft(P)8 b(A)p Fu([)-17 b([)q Fs(a)1663 2788 y Fn(1)1702 -2773 y Fu(])g(])q Fs(ps)8 b Fu(\))32 b Ft(t)1975 2788 -y Fn(P)2059 2773 y Fu(\()p Ft(P)8 b(A)p Fu([)-17 b([)q -Fs(a)2349 2788 y Fn(2)2389 2773 y Fu(])g(])p Fs(ps)8 -b Fu(\))432 2964 y Ft(P)g(B)t Fu([)-17 b([)p Ft(:)33 -b Fs(b)6 b Fu(])-17 b(])q Fs(ps)305 b Fu(=)99 b Ft(P)8 -b(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(ps)432 -3155 y Ft(P)8 b(B)t Fu([)-17 b([)p Fs(b)666 3170 y Fn(1)738 -3155 y Ft(^)33 b Fs(b)888 3170 y Fn(2)928 3155 y Fu(])-17 -b(])p Fs(ps)143 b Fu(=)99 b(\()p Ft(P)8 b(B)t Fu([)-17 -b([)q Fs(b)1646 3170 y Fn(1)1685 3155 y Fu(])g(])p Fs(ps)8 -b Fu(\))33 b Ft(t)1957 3170 y Fn(P)2042 3155 y Fu(\()p -Ft(P)8 b(B)t Fu([)-17 b([)p Fs(b)2314 3170 y Fn(2)2354 -3155 y Fu(])g(])p Fs(ps)8 b Fu(\))p 3469 3216 V 0 3219 -3473 4 v 1015 3380 a(T)-8 b(able)33 b(5.1:)43 b(Analysis)32 -b(of)g(expressions)0 3651 y(The)c(de\014ning)f(clauses)h(are)f(giv)m -(en)g(in)f(T)-8 b(able)27 b(5.1.)41 b(The)28 b(clause)f(for)g -Fs(n)34 b Fu(re\015ects)29 b(that)d(the)i(v)-5 b(alue)0 -3771 y(of)33 b Fs(n)40 b Fu(in)32 b(a)h(prop)s(er)g(prop)s(ert)m(y)h -(state)g Fs(ps)41 b Fu(do)s(es)33 b(not)g(dep)s(end)h(on)f(an)m(y)h(v) --5 b(ariable)32 b(and)h(therefore)0 3892 y(it)j(will)g(ha)m(v)m(e)i -(the)g(prop)s(ert)m(y)h Fb(ok)p Fu(.)58 b(The)39 b(prop)s(ert)m(y)f(of) -f(a)g(v)-5 b(ariable)36 b Fs(x)49 b Fu(in)37 b(a)g(prop)s(er)h(prop)s -(ert)m(y)0 4012 y(state)g Fs(ps)46 b Fu(is)37 b(the)h(prop)s(ert)m(y)g -(b)s(ound)g(to)g Fs(x)49 b Fu(in)37 b Fs(ps)8 b Fu(,)39 -b(that)e(is)g Fs(ps)46 b(x)12 b Fu(.)59 b(Th)m(us)39 -b(if)d Fs(ps)46 b Fu(is)37 b(the)h(initial)0 4132 y(prop)s(ert)m(y)c -(state)h(then)f(the)g(in)m(ten)m(tion)f(is)g(that)h Ft(P)8 -b(A)p Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])p Fs(ps)41 -b Fu(is)34 b Fb(ok)g Fu(if)f(and)g(only)h(if)e Fs(x)46 -b Fu(is)33 b(one)h(of)0 4253 y(the)j(input)f(v)-5 b(ariables.)54 -b(F)-8 b(or)36 b(a)g(comp)s(osite)g(expression,)j(lik)m(e)c -Fs(a)2358 4268 y Fn(1)2435 4253 y Fu(+)h Fs(a)2604 4268 -y Fn(2)2644 4253 y Fu(,)h(the)g(idea)f(is)g(that)g(it)0 -4373 y(can)d(only)f(ha)m(v)m(e)i(the)e(prop)s(ert)m(y)i -Fb(ok)f Fu(if)e(b)s(oth)h(sub)s(expressions)j(ha)m(v)m(e)f(that)e(prop) -s(ert)m(y)-8 b(.)44 b(This)33 b(is)0 4494 y(ensured)h(b)m(y)g(the)f -(binary)f(op)s(eration)f Ft(t)1471 4509 y Fn(P)1555 4494 -y Fu(in)m(tro)s(duced)i(in)f(Section)g(5.1.)0 4693 y -Fw(Example)37 b(5.10)49 b Fu(If)42 b Fs(ps)50 b Fr(x)43 -b Fu(=)f Fb(ok)h Fu(and)f Fs(ps)50 b Fu(on-trac)m(k)43 -b(=)f Fb(ok)h Fu(then)g Ft(P)8 b(A)p Fu([)-17 b([)q Fr(x)42 -b Fu(+)h Fr(1)p Fu(])-17 b(])p Fs(ps)51 b Fu(=)42 b Fb(ok)0 -4813 y Fu(since)35 b Ft(P)8 b(A)p Fu([)-17 b([)q Fr(x)p -Fu(])g(])q Fs(ps)42 b Fu(=)35 b Fb(ok)h Fu(and)f Ft(P)8 -b(A)p Fu([)-17 b([)p Fr(1)p Fu(])g(])q Fs(ps)43 b Fu(=)34 -b Fb(ok)p Fu(.)51 b(On)35 b(the)h(other)f(hand,)g(if)f -Fs(ps)43 b Fr(x)35 b Fu(=)g Fb(d)p Fu(?)g(then)0 4934 -y Ft(P)8 b(A)p Fu([)-17 b([)q Fr(x)32 b Fu(+)h Fr(1)p -Fu(])-17 b(])q Fs(ps)40 b Fu(=)32 b Fb(d)p Fu(?)h(b)s(ecause)h -Ft(P)8 b(A)p Fu([)-17 b([)q Fr(x)p Fu(])g(])q Fs(ps)40 -b Fu(=)32 b Fb(d)p Fu(?.)146 5054 y(F)-8 b(urthermore,)32 -b Ft(P)8 b(B)t Fu([)-17 b([)q Fr(x)33 b Fu(=)f Fr(x)p -Fu(])-17 b(])q Fs(ps)40 b Fu(=)32 b Fb(d)p Fu(?)h(if)e -Fs(ps)41 b Fr(x)32 b Fu(=)h Fb(d)p Fu(?)f(ev)m(en)i(though)f(the)g -(test)g Fr(x)g Fu(=)f Fr(x)h Fu(will)0 5175 y(ev)-5 b(aluate)32 -b(to)g Fw(tt)g Fu(indep)s(enden)m(tly)h(of)f(whether)i(or)f(not)f -Fr(x)h Fu(is)f(initialized)d(prop)s(erly)-8 b(.)359 b -Fh(2)146 5374 y Fu(The)43 b(functions)f Ft(P)8 b(A)p -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])42 b(and)h Ft(P)8 -b(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])42 b(are)g(closely)g -(connected)h(with)f(the)g(sets)i(of)d(free)0 5494 y(v)-5 -b(ariables)31 b(de\014ned)j(in)e(Chapter)h(1:)p eop -%%Page: 144 154 -144 153 bop 251 130 a Fw(144)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 419 V 283 -1501 4 1083 v 666 519 a Ft(P)8 b(S)g Fu([)-17 b([)p Fs(x)45 -b Fu(:=)32 b Fs(a)7 b Fu(])-17 b(])34 b Fs(ps)40 b Fu(=)32 -b Fs(ps)8 b Fu([)p Fs(x)k Ft(7!P)c(A)p Fu([)-17 b([)p -Fs(a)7 b Fu(])-17 b(])q Fs(ps)8 b Fu(])666 710 y Ft(P)g(S)g -Fu([)-17 b([)p Fr(skip)p Fu(])g(])35 b(=)d(id)666 901 -y Ft(P)8 b(S)g Fu([)-17 b([)p Fs(S)915 916 y Fn(1)955 -901 y Fu(;)p Fs(S)1049 916 y Fn(2)1088 901 y Fu(])g(])33 -b(=)g Ft(P)8 b(S)g Fu([)-17 b([)p Fs(S)1516 916 y Fn(2)1556 -901 y Fu(])g(])33 b Ft(\016)f(P)8 b(S)g Fu([)-17 b([)q -Fs(S)1958 916 y Fn(1)1997 901 y Fu(])g(])666 1092 y Ft(P)8 -b(S)g Fu([)-17 b([)p Fr(if)33 b Fs(b)39 b Fr(then)33 -b Fs(S)1371 1107 y Fn(1)1443 1092 y Fr(else)h Fs(S)1748 -1107 y Fn(2)1787 1092 y Fu(])-17 b(])33 b(=)g(cond)2166 -1107 y Fn(P)2218 1092 y Fu(\()p Ft(P)8 b(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)33 b Ft(P)8 b(S)g Fu([)-17 -b([)q Fs(S)2838 1107 y Fn(1)2877 1092 y Fu(])g(])q(,)32 -b Ft(P)8 b(S)h Fu([)-17 b([)p Fs(S)3224 1107 y Fn(2)3263 -1092 y Fu(])g(])q(\))666 1284 y Ft(P)8 b(S)g Fu([)-17 -b([)p Fr(while)34 b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 -b(])33 b(=)f(FIX)h Fs(H)934 1451 y Fu(where)h Fs(H)49 -b(h)39 b Fu(=)33 b(cond)1735 1466 y Fn(P)1788 1451 y -Fu(\()p Ft(P)8 b(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])q(,)32 b Fs(h)40 b Ft(\016)32 b(P)8 b(S)h Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))p 3753 1501 -V 283 1504 3473 4 v 1088 1665 a(T)-8 b(able)33 b(5.2:)43 -b(Analysis)32 b(of)g(statemen)m(ts)i(in)d Fw(While)283 -1955 y(Exercise)37 b(5.11)49 b(\(Essen)m(tial\))27 b -Fu(Pro)m(v)m(e)j(that)f(for)g(ev)m(ery)i(arithmetic)c(expression)j -Fs(a)36 b Fu(w)m(e)31 b(ha)m(v)m(e)527 2169 y Ft(P)8 -b(A)p Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q Fs(ps)40 -b Fu(=)33 b Fb(ok)g Fu(if)e(and)i(only)f(if)f(FV\()p -Fs(a)7 b Fu(\))33 b Ft([)g(f)p Fu(on-trac)m(k)p Ft(g)f(\022)h -Fu(OK\()p Fs(ps)8 b Fu(\))283 2384 y(F)-8 b(orm)m(ulate)32 -b(and)i(pro)m(v)m(e)h(a)e(similar)e(result)i(for)g(b)s(o)s(olean)f -(expressions.)49 b(Deduce)34 b(that)g(for)f(all)283 2504 -y Fs(a)38 b Fu(of)31 b Fw(Aexp)g Fu(w)m(e)g(get)g Ft(P)8 -b(A)p Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q Fs(ps)38 -b Fu(=)31 b Fb(d)p Fu(?)g(if)e Fs(ps)39 b Fu(is)30 b(improp)s(er,)g -(and)h(that)f(for)g(all)f Fs(b)37 b Fu(of)30 b Fw(Bexp)h -Fu(w)m(e)283 2625 y(get)i Ft(P)8 b(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])p Fs(ps)41 b Fu(=)32 b Fb(d)p Fu(?)h(if)e -Fs(ps)41 b Fu(is)32 b(improp)s(er.)1849 b Fh(2)283 2928 -y Fp(Statemen)l(ts)283 3117 y Fu(T)-8 b(urning)40 b(to)f(statemen)m(ts) -i(w)m(e)g(shall)d(sp)s(ecify)j(their)e(analysis)g(b)m(y)i(a)e(function) -g Ft(P)8 b(S)49 b Fu(of)39 b(func-)283 3237 y(tionalit)m(y:)527 -3452 y Ft(P)8 b(S)h Fu(:)43 b Fw(Stm)32 b Ft(!)g Fu(\()p -Fw(PState)g Ft(!)g Fw(PState)p Fu(\))283 3667 y(The)47 -b(totalit)m(y)d(of)h Ft(P)8 b(S)h Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])46 b(re\015ects)i(that)d(w)m(e)i(shall)d(b)s(e)i(able)f -(to)g(analyse)h Fs(al)5 b(l)56 b Fu(statemen)m(ts)283 -3787 y(including)27 b(a)i(statemen)m(t)g(lik)m(e)f Fr(while)h(true)h -(do)f(skip)h Fu(that)e(lo)s(ops.)41 b(The)30 b(de\014nition)d(of)h -Ft(P)8 b(S)37 b Fu(is)283 3907 y(giv)m(en)30 b(in)e(T)-8 -b(able)28 b(5.2)h(and)g(the)g(clauses)h(for)e(assignmen)m(t,)i -Fr(skip)g Fu(and)f(comp)s(osition)d(are)j(m)m(uc)m(h)283 -4028 y(as)k(in)f(the)h(direct)g(st)m(yle)g(denotational)e(seman)m(tics) -h(of)h(Chapter)g(4.)43 b(The)34 b(remaining)c(clauses)283 -4148 y(will)h(b)s(e)i(explained)f(b)s(elo)m(w.)283 4395 -y Fw(Example)37 b(5.12)49 b Fu(Consider)33 b(the)g(statemen)m(t)527 -4609 y Fr(y)g Fu(:=)g Fr(x)283 4824 y Fu(First)j(assume)i(that)e -Fs(ps)45 b Fu(is)36 b(a)h(prop)s(er)g(prop)s(ert)m(y)g(state)g(with)g -Fs(ps)44 b Fr(x)37 b Fu(=)g Fb(ok)g Fu(and)g Fs(ps)45 -b Fr(y)37 b Fu(=)g Fb(d)p Fu(?.)283 4945 y(Then)d(w)m(e)g(ha)m(v)m(e) -527 5159 y(\()p Ft(P)8 b(S)h Fu([)-17 b([)p Fr(y)33 b -Fu(:=)f Fr(x)p Fu(])-17 b(])q Fs(ps)8 b Fu(\))33 b Fr(x)f -Fu(=)h Fb(ok)527 5327 y Fu(\()p Ft(P)8 b(S)h Fu([)-17 -b([)p Fr(y)33 b Fu(:=)f Fr(x)p Fu(])-17 b(])q Fs(ps)8 -b Fu(\))33 b Fr(y)f Fu(=)h Fb(ok)527 5494 y Fu(\()p Ft(P)8 -b(S)h Fu([)-17 b([)p Fr(y)33 b Fu(:=)f Fr(x)p Fu(])-17 -b(])q Fs(ps)8 b Fu(\))33 b(on-trac)m(k)f(=)h Fb(ok)p -eop -%%Page: 145 155 -145 154 bop 0 130 a Fw(5.2)112 b(The)38 b(analysis)2439 -b(145)p 0 193 3473 4 v 0 515 a Fu(Since)34 b Ft(P)8 b(S)g -Fu([)-17 b([)q Fr(y)34 b Fu(:=)f Fr(x)p Fu(])-17 b(])q -Fs(ps)42 b Fu(is)33 b(prop)s(er)h(w)m(e)h(conclude)f(that)g(b)s(oth)f -Fr(x)h Fu(and)g Fr(y)g Fu(only)f(dep)s(end)i(on)f(the)0 -636 y(input)26 b(v)-5 b(ariables)25 b(after)h Fr(y)g -Fu(is)g(assigned)h(a)f(v)-5 b(alue)25 b(that)h(only)g(dep)s(ends)i(on)e -(the)h(input)f(v)-5 b(ariables.)146 756 y(Assume)34 b(next)f(that)g -Fs(ps)40 b Fr(y)33 b Fu(=)f Fb(ok)h Fu(but)g Fs(ps)41 -b Fr(x)32 b Fu(=)h Fb(d)p Fu(?.)44 b(Then)244 940 y(\()p -Ft(P)8 b(S)g Fu([)-17 b([)q Fr(y)32 b Fu(:=)h Fr(x)p -Fu(])-17 b(])q Fs(ps)8 b Fu(\))32 b Fr(y)h Fu(=)f Fb(d)p -Fu(?)0 1123 y(sho)m(wing)42 b(that)g(when)h(a)f(dubious)g(v)-5 -b(alue)41 b(is)g(used)i(in)f(an)f(assignmen)m(t)h(then)h(the)f -(assigned)0 1244 y(v)-5 b(ariable)31 b(will)f(get)j(a)f(dubious)h(v)-5 -b(alue)32 b(as)g(w)m(ell.)1676 b Fh(2)0 1445 y Fw(Exercise)36 -b(5.13)49 b Fu(Consider)40 b(the)f(statemen)m(ts)g Fs(S)1843 -1460 y Fn(1)1921 1445 y Fu(and)g Fs(S)2184 1460 y Fn(2)2262 -1445 y Fu(of)g(Example)f(5.3.)62 b(Use)39 b(T)-8 b(ables)0 -1566 y(5.1)37 b(and)h(5.2)f(to)h(c)m(haracterize)g(the)g(b)s(eha)m -(viour)f(of)h Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)2185 1581 -y Fn(1)2224 1566 y Fu(])g(])38 b(and)g Ft(P)8 b(S)g Fu([)-17 -b([)q Fs(S)2744 1581 y Fn(2)2783 1566 y Fu(])g(])38 b(on)g(prop)s(er)f -(and)0 1686 y(improp)s(er)31 b(prop)s(ert)m(y)i(states.)45 -b(An)m(ticipating)30 b(Section)j(5.3)f(sho)m(w)i(that)244 -1870 y Fs(s)292 1885 y Fn(1)364 1870 y Ft(\021)f Fs(s)522 -1885 y Fn(2)594 1870 y Fu(rel)p 594 1883 109 4 v 32 w -Fs(ps)40 b Fu(implies)30 b Ft(S)1264 1885 y Fn(ds)1335 -1870 y Fu([)-17 b([)q Fs(S)1440 1885 y Fn(i)1464 1870 -y Fu(])g(])p Fs(s)1549 1885 y Fn(1)1621 1870 y Ft(\021)33 -b(S)1799 1885 y Fn(ds)1870 1870 y Fu([)-17 b([)q Fs(S)1975 -1885 y Fn(i)1998 1870 y Fu(])g(])q Fs(s)2084 1885 y Fn(2)2156 -1870 y Fu(rel)p 2156 1883 V 32 w Ft(P)8 b(S)g Fu([)-17 -b([)q Fs(S)2547 1885 y Fn(i)2570 1870 y Fu(])g(])q Fs(ps)0 -2053 y Fu(for)32 b(i)g(=)g(1,)g(2)h(and)f(for)g(all)f -Fs(ps)40 b Ft(2)33 b Fw(PState)p Fu(.)1829 b Fh(2)146 -2255 y Fu(In)40 b(the)g(clause)g(for)g Fr(if)g Fs(b)45 -b Fr(then)c Fs(S)1446 2270 y Fn(1)1525 2255 y Fr(else)g -Fs(S)1837 2270 y Fn(2)1915 2255 y Fu(w)m(e)g(use)g(the)f(auxiliary)e -(function)h(cond)3420 2270 y Fn(P)0 2376 y Fu(de\014ned)34 -b(b)m(y)244 2641 y(cond)444 2656 y Fn(P)497 2641 y Fu(\()p -Fs(f)20 b Fu(,)33 b Fs(h)702 2656 y Fn(1)742 2641 y Fu(,)f -Fs(h)858 2656 y Fn(2)898 2641 y Fu(\))g Fs(ps)41 b Fu(=)1207 -2466 y Fg(8)1207 2541 y(<)1207 2691 y(:)1323 2556 y Fu(\()p -Fs(h)1418 2571 y Fn(1)1490 2556 y Fs(ps)8 b Fu(\))32 -b Ft(t)1725 2571 y Fn(PS)1848 2556 y Fu(\()p Fs(h)1943 -2571 y Fn(2)2016 2556 y Fs(ps)8 b Fu(\))82 b(if)32 b -Fs(f)53 b(ps)41 b Fu(=)32 b Fb(ok)1323 2724 y(lost)692 -b Fu(if)32 b Fs(f)53 b(ps)41 b Fu(=)32 b Fb(d)p Fu(?)0 -2906 y(First)g(consider)h(the)g(case)h(where)g(w)m(e)g(are)f -(successful)i(in)d(analysing)f(the)j(condition,)d(that)i(is)0 -3026 y(where)39 b Fs(f)59 b(ps)46 b Fu(=)38 b Fb(ok)p -Fu(.)61 b(F)-8 b(or)37 b(eac)m(h)j(v)-5 b(ariable)36 -b Fs(x)50 b Fu(w)m(e)39 b(can)f(determine)g(the)h(result)f(of)g -(analysing)0 3147 y(eac)m(h)d(of)g(the)g(branc)m(hes,)h(namely)e(\()p -Fs(h)1374 3162 y Fn(1)1448 3147 y Fs(ps)8 b Fu(\))35 -b Fs(x)46 b Fu(for)34 b(the)h(true)g(branc)m(h)g(and)g(\()p -Fs(h)2850 3162 y Fn(2)2924 3147 y Fs(ps)8 b Fu(\))35 -b Fs(x)46 b Fu(for)34 b(the)0 3267 y(false)c(branc)m(h.)44 -b(The)32 b(least)e(upp)s(er)i(b)s(ound)f(of)f(these)i(t)m(w)m(o)g -(results)f(will)e(b)s(e)i(the)g(new)h(prop)s(ert)m(y)0 -3388 y(b)s(ound)h(to)f Fs(x)12 b Fu(,)32 b(that)h(is)f(the)h(new)g -(prop)s(ert)m(y)h(state)f(will)d(map)i Fs(x)44 b Fu(to)244 -3571 y(\(\()p Fs(h)377 3586 y Fn(1)449 3571 y Fs(ps)8 -b Fu(\))32 b Fs(x)12 b Fu(\))33 b Ft(t)811 3586 y Fn(P)896 -3571 y Fu(\(\()p Fs(h)1029 3586 y Fn(2)1101 3571 y Fs(ps)8 -b Fu(\))32 b Fs(x)12 b Fu(\))0 3755 y(If)24 b(the)h(analysis)f(of)g -(the)h(condition)e(is)i(not)f(successful,)k(that)c(is)g -Fs(f)46 b(ps)32 b Fu(=)24 b Fb(d)p Fu(?,)j(then)e(the)g(analysis)0 -3875 y(of)32 b(the)h(conditional)d(will)g(fail)h(and)h(w)m(e)i(shall)d -(therefore)i(use)h(the)f(prop)s(ert)m(y)g(state)g Fb(lost)p -Fu(.)0 4077 y Fw(Example)k(5.14)49 b Fu(Consider)33 b(no)m(w)g(the)g -(statemen)m(t)244 4260 y Fr(if)g(x)g Fu(=)f Fr(x)h(then)g(z)g -Fu(:=)g Fr(y)g(else)g(y)g Fu(:=)f Fr(z)0 4444 y Fu(Clearly)-8 -b(,)37 b(the)f(\014nal)g(v)-5 b(alue)36 b(of)g Fr(z)h -Fu(can)g(b)s(e)f(determined)h(uniquely)f(from)f(the)i(initial)c(v)-5 -b(alue)36 b(of)0 4564 y Fr(y)p Fu(.)53 b(Ho)m(w)m(ev)m(er,)39 -b(if)34 b Fr(z)i Fu(is)f(dubious)h(then)h(the)f(analysis)f(cannot)g -(giv)m(e)h(this)f(result.)53 b(T)-8 b(o)36 b(see)h(this)0 -4685 y(assume)h(that)f Fs(ps)46 b Fu(is)37 b(a)g(prop)s(er)h(prop)s -(ert)m(y)g(state)g(suc)m(h)h(that)f Fs(ps)i Fr(x)e Fu(=)f -Fb(ok)p Fu(,)j Fs(ps)45 b Fr(y)38 b Fu(=)f Fb(ok)h Fu(and)0 -4805 y Fs(ps)i Fr(z)33 b Fu(=)g Fb(d)p Fu(?.)43 b(Then)244 -4989 y(\()p Ft(P)8 b(S)g Fu([)-17 b([)q Fr(if)33 b(x)g -Fu(=)f Fr(x)h(then)g(z)g Fu(:=)g Fr(y)f(else)i(y)f Fu(:=)f -Fr(z)p Fu(])-17 b(])q Fs(ps)8 b Fu(\))32 b Fr(z)465 5156 -y Fu(=)g(\(cond)811 5171 y Fn(P)864 5156 y Fu(\()p Ft(P)8 -b(B)t Fu([)-17 b([)p Fr(x)33 b Fu(=)f Fr(x)p Fu(])-17 -b(])q(,)33 b Ft(P)8 b(S)g Fu([)-17 b([)q Fr(z)32 b Fu(:=)h -Fr(y)p Fu(])-17 b(])q(,)32 b Ft(P)8 b(S)h Fu([)-17 b([)p -Fr(y)33 b Fu(:=)g Fr(z)p Fu(])-17 b(]\))33 b Fs(ps)8 -b Fu(\))32 b Fr(z)465 5324 y Fu(=)g(\()p Ft(P)8 b(S)g -Fu([)-17 b([)q Fr(z)33 b Fu(:=)f Fr(y)p Fu(])-17 b(])34 -b Fs(ps)40 b Ft(t)1331 5339 y Fn(P)1416 5324 y Ft(P)8 -b(S)g Fu([)-17 b([)q Fr(y)33 b Fu(:=)f Fr(z)p Fu(])-17 -b(])34 b Fs(ps)8 b Fu(\))32 b Fr(z)465 5492 y Fu(=)g -Fb(d)p Fu(?)p eop -%%Page: 146 156 -146 155 bop 251 130 a Fw(146)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a Fu(b)s(ecause)d -Ft(P)8 b(B)t Fu([)-17 b([)p Fr(x)31 b Fu(=)g Fr(x)p Fu(])-17 -b(])q Fs(ps)39 b Fu(=)30 b Fb(ok)p Fu(,)i(\()p Ft(P)8 -b(S)g Fu([)-17 b([)q Fr(z)31 b Fu(:=)g Fr(y)p Fu(])-17 -b(])q Fs(ps)8 b Fu(\))30 b Fr(z)h Fu(=)g Fb(ok)g Fu(but)h(\()p -Ft(P)8 b(S)g Fu([)-17 b([)p Fr(y)32 b Fu(:=)e Fr(z)p -Fu(])-17 b(])q Fs(ps)8 b Fu(\))31 b Fr(z)g Fu(=)g Fb(d)p -Fu(?.)283 636 y(So)i(ev)m(en)h(though)e(the)h(false)f(branc)m(h)h(nev)m -(er)h(will)c(b)s(e)j(executed)h(it)e(will)e(in\015uence)j(the)g(result) -283 756 y(obtained)g(b)m(y)g(the)g(analysis.)430 877 -y(Similarly)-8 b(,)21 b(ev)m(en)j(if)e Fr(y)h Fu(and)g -Fr(z)g Fu(are)g(not)g(dubious)g(but)g Fr(x)g Fu(is,)i(the)e(analysis)f -(cannot)h(determine)283 997 y(that)35 b(the)g(\014nal)f(v)-5 -b(alue)35 b(of)f Fr(z)h Fu(only)f(dep)s(ends)j(on)d(the)i(v)-5 -b(alue)34 b(of)g Fr(y)p Fu(.)51 b(T)-8 b(o)34 b(see)i(this)f(assume)g -(that)283 1117 y Fs(ps)k Fu(is)31 b(a)f(prop)s(er)h(prop)s(ert)m(y)h -(state)f(suc)m(h)h(that)f Fs(ps)38 b Fr(x)32 b Fu(=)e -Fb(d)p Fu(?,)i Fs(ps)38 b Fr(y)31 b Fu(=)g Fb(ok)h Fu(and)f -Fs(ps)38 b Fr(z)31 b Fu(=)g Fb(ok)p Fu(.)43 b(W)-8 b(e)283 -1238 y(then)34 b(get)527 1440 y Ft(P)8 b(S)h Fu([)-17 -b([)p Fr(if)33 b(x)g Fu(=)f Fr(x)h(then)h(z)f Fu(:=)f -Fr(y)h(else)g(y)g Fu(:=)g Fr(z)p Fu(])-17 b(])q Fs(ps)710 -1608 y Fu(=)33 b(cond)1019 1623 y Fn(P)1071 1608 y Fu(\()p -Ft(P)8 b(B)t Fu([)-17 b([)q Fr(x)33 b Fu(=)f Fr(x)p Fu(])-17 -b(])q(,)32 b Ft(P)8 b(S)h Fu([)-17 b([)p Fr(z)33 b Fu(:=)g -Fr(y)p Fu(])-17 b(],)33 b Ft(P)8 b(S)g Fu([)-17 b([)q -Fr(y)33 b Fu(:=)f Fr(z)p Fu(])-17 b(])q(\))p Fs(ps)710 -1775 y Fu(=)33 b Fb(lost)283 1978 y Fu(b)s(ecause)j Ft(P)8 -b(B)t Fu([)-17 b([)p Fr(x)34 b Fu(=)g Fr(x)p Fu(])-17 -b(])q Fs(ps)41 b Fu(=)34 b Fb(d)p Fu(?.)48 b(These)35 -b(examples)f(sho)m(w)h(that)f(the)g(result)g(of)f(the)i(analysis)283 -2098 y(is)j(safe)h(but)g(usually)f(somewhat)g(imprecise.)60 -b(More)39 b(complex)f(analyses)h(could)f(do)g(b)s(etter)283 -2218 y(\(for)28 b(example)f(b)m(y)i(trying)e(to)g(predict)h(the)g -(outcome)f(of)h(tests\))g(but)g(in)f(general)h(no)f(decidable)283 -2339 y(analysis)32 b(can)h(pro)m(vide)g(exact)g(results.)1944 -b Fh(2)283 2566 y Fw(Exercise)37 b(5.15)49 b Fu(Consider)33 -b(the)g(statemen)m(ts)h Fs(S)2109 2581 y Fn(11)2217 2566 -y Fu(and)f Fs(S)2474 2581 y Fn(12)2581 2566 y Fu(of)f(Example)h(5.3.)44 -b(Use)34 b(T)-8 b(ables)283 2686 y(5.1)32 b(and)h(5.2)e(to)h(c)m -(haracterize)h(the)g(b)s(eha)m(viour)f(of)g Ft(P)8 b(S)g -Fu([)-17 b([)q Fs(S)2425 2701 y Fn(11)2499 2686 y Fu(])g(])33 -b(and)f Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)3008 2701 y -Fn(12)3083 2686 y Fu(])g(])32 b(on)g(prop)s(er)h(and)283 -2806 y(improp)s(er)e(prop)s(ert)m(y)j(states.)44 b(An)m(ticipating)31 -b(Section)h(5.3)g(sho)m(w)i(that)527 3009 y Fs(s)575 -3024 y Fn(1)647 3009 y Ft(\021)f Fs(s)805 3024 y Fn(2)877 -3009 y Fu(rel)p 877 3022 109 4 v 32 w Fs(ps)41 b Fu(implies)30 -b Ft(S)1548 3024 y Fn(ds)1619 3009 y Fu([)-17 b([)p Fs(S)1723 -3024 y Fn(i)1747 3009 y Fu(])g(])q Fs(s)1833 3024 y Fn(1)1905 -3009 y Ft(\021)33 b(S)2082 3024 y Fn(ds)2154 3009 y Fu([)-17 -b([)p Fs(S)2258 3024 y Fn(i)2282 3009 y Fu(])g(])p Fs(s)2367 -3024 y Fn(2)2439 3009 y Fu(rel)p 2439 3022 V 32 w Ft(P)8 -b(S)h Fu([)-17 b([)p Fs(S)2830 3024 y Fn(i)2854 3009 -y Fu(])g(])p Fs(ps)283 3211 y Fu(for)29 b(i)e(=)i(11,)g(12)f(and)h(for) -f(all)f Fs(ps)36 b Ft(2)29 b Fw(PState)p Fu(.)42 b(Finally)26 -b(argue)j(that)f(it)g(w)m(ould)h Fs(not)38 b Fu(b)s(e)29 -b(sensible)283 3331 y(to)k(use)527 3534 y(cond)727 3498 -y Fi(0)727 3558 y Fn(P)780 3534 y Fu(\()p Fs(f)21 b Fu(,)32 -b Fs(h)985 3549 y Fn(1)1025 3534 y Fu(,)h Fs(h)1142 3549 -y Fn(2)1181 3534 y Fu(\))g Fs(ps)40 b Fu(=)33 b(\()p -Fs(h)1586 3549 y Fn(1)1658 3534 y Fs(ps)8 b Fu(\))32 -b Ft(t)1893 3549 y Fn(PS)2017 3534 y Fu(\()p Fs(h)2112 -3549 y Fn(2)2184 3534 y Fs(ps)8 b Fu(\))283 3736 y(instead)33 -b(of)f(the)h(cond)1099 3751 y Fn(P)1184 3736 y Fu(de\014ned)h(ab)s(o)m -(v)m(e.)1891 b Fh(2)430 3963 y Fu(In)32 b(the)h(clause)f(for)g(the)g -Fr(while)p Fu(-lo)s(op)g(w)m(e)h(also)e(use)i(the)g(function)e(cond) -3080 3978 y Fn(P)3165 3963 y Fu(and)h(otherwise)283 4083 -y(the)23 b(clause)f(is)f(as)h(in)f(the)i(direct)e(st)m(yle)i -(denotational)d(seman)m(tics)i(of)f(Chapter)i(4.)39 b(In)23 -b(particular)283 4204 y(w)m(e)28 b(use)f(the)g(\014xed)h(p)s(oin)m(t)d -(op)s(eration)h(FIX)g(as)h(it)e(corresp)s(onds)j(to)e(unfolding)f(the)i -Fr(while)p Fu(-lo)s(op)283 4324 y(a)40 b(n)m(um)m(b)s(er)h(of)e(times)g -(|)h(once)g(for)g(eac)m(h)h(time)d(the)j Fs(analysis)47 -b Fu(tra)m(v)m(erses)42 b(the)f(lo)s(op.)64 b(As)41 b(in)283 -4444 y(Chapter)34 b(4)e(the)h(\014xed)h(p)s(oin)m(t)e(is)g(de\014ned)i -(b)m(y)527 4647 y(FIX)f Fs(H)48 b Fu(=)961 4580 y Fg(F)1030 -4647 y Ft(f)32 b Fs(H)1200 4611 y Fn(n)1276 4647 y Ft(?)h(j)g -Fu(n)f Ft(\025)h Fu(0)g Ft(g)283 4849 y Fu(where)h(the)f(functionalit)m -(y)e(of)h Fs(H)49 b Fu(is)527 5051 y Fs(H)16 b Fu(:)33 -b(\()p Fw(PState)f Ft(!)g Fw(PState)p Fu(\))g Ft(!)g -Fu(\()p Fw(PState)h Ft(!)f Fw(PState)p Fu(\))283 5254 -y(and)25 b(where)h Fw(PState)d Ft(!)h Fw(PState)g Fu(is)g(the)h(set)g -(of)f(total)f(functions)h(from)f Fw(PState)h Fu(to)g -Fw(PState)p Fu(.)283 5374 y(In)37 b(order)f(for)f(this)h(to)f(mak)m(e)i -(sense)g Fs(H)52 b Fu(m)m(ust)36 b(b)s(e)h(a)e(con)m(tin)m(uous)i -(function)e(on)h(a)g(ccp)s(o)g(with)283 5494 y Ft(?)d -Fu(as)g(its)f(least)g(elemen)m(t.)44 b(W)-8 b(e)33 b(shall)e(shortly)h -(v)m(erify)h(that)g(this)f(is)g(indeed)h(the)g(case.)p -eop -%%Page: 147 157 -147 156 bop 0 130 a Fw(5.2)112 b(The)38 b(analysis)2439 -b(147)p 0 193 3473 4 v 0 515 a(Example)37 b(5.16)49 b -Fu(W)-8 b(e)36 b(are)h(no)m(w)g(in)f(a)g(p)s(osition)f(where)j(w)m(e)f -(can)g(attempt)f(the)h(application)0 636 y(of)32 b(the)h(analysis)f(to) -g(the)h(factorial)d(statemen)m(t:)244 814 y Ft(P)8 b(S)g -Fu([)-17 b([)q Fr(y)33 b Fu(:=)f Fr(1)p Fu(;)h Fr(while)h -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\)])-17 b(])0 993 y(W)-8 b(e)35 -b(shall)f(apply)g(this)h(function)f(to)g(the)i(prop)s(er)e(prop)s(ert)m -(y)i(state)f Fs(ps)2593 1008 y Fn(0)2667 993 y Fu(that)g(maps)f -Fr(x)h Fu(to)g Fb(ok)0 1113 y Fu(and)d(all)e(other)h(v)-5 -b(ariables)31 b(\(including)f Fr(y)p Fu(\))i(to)f Fb(d)p -Fu(?)h(as)g(this)f(corresp)s(onds)i(to)f(viewing)f Fr(x)h -Fu(as)g(the)0 1234 y(only)g(input)g(v)-5 b(ariable)31 -b(of)h(the)h(statemen)m(t.)146 1354 y(T)-8 b(o)33 b(do)f(so)h(w)m(e)h -(use)f(the)g(clauses)h(of)e(T)-8 b(ables)32 b(5.1)h(and)f(5.2)g(and)h -(get)244 1533 y Ft(P)8 b(S)g Fu([)-17 b([)q Fr(y)33 b -Fu(:=)f Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f -Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])34 b Fs(ps)2607 1548 y Fn(0)513 -1700 y Fu(=)e(\(FIX)g Fs(H)16 b Fu(\))33 b(\()p Fs(ps)1158 -1715 y Fn(0)1197 1700 y Fu([)p Fr(y)p Ft(7!)p Fb(ok)p -Fu(]\))0 1879 y(where)244 2057 y Fs(H)48 b(h)40 b Fu(=)33 -b(cond)763 2072 y Fn(P)815 2057 y Fu(\()p Ft(P)8 b(B)t -Fu([)-17 b([)q Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])q(,)33 -b Fs(h)39 b Ft(\016)33 b(P)8 b(S)g Fu([)-17 b([)q Fr(y)32 -b Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(])-17 b(])r(,)32 b(id\))0 -2236 y(W)-8 b(e)33 b(\014rst)g(simplify)d Fs(H)49 b Fu(and)32 -b(obtain)244 2496 y(\()p Fs(H)48 b(h)7 b Fu(\))33 b Fs(ps)41 -b Fu(=)769 2322 y Fg(8)769 2397 y(<)769 2546 y(:)884 -2412 y Fb(lost)449 b Fu(if)31 b Fs(ps)24 b Fu(on-trac)m(k)16 -b(=)g Fb(d)p Fu(?)34 b(or)e Fs(ps)24 b Fr(x)16 b Fu(=)g -Fb(d)p Fu(?)884 2579 y(\()p Fs(h)40 b(ps)8 b Fu(\))32 -b Ft(t)1247 2594 y Fn(PS)1371 2579 y Fs(ps)91 b Fu(if)31 -b Fs(ps)24 b Fu(on-trac)m(k)16 b(=)g Fb(ok)34 b Fu(and)f -Fs(ps)24 b Fr(x)16 b Fu(=)g Fb(ok)0 2762 y Fu(A)m(t)29 -b(this)g(p)s(oin)m(t)f(w)m(e)i(shall)e(pretend)i(that)f(w)m(e)h(ha)m(v) -m(e)g(sho)m(wn)h(the)e(follo)m(wing)d(prop)s(ert)m(y)k(of)f -Fs(H)45 b Fu(\(to)0 2882 y(b)s(e)33 b(pro)m(v)m(ed)h(in)e(Exercise)i -(5.18\):)244 3061 y(if)d Fs(H)421 3025 y Fn(n)497 3061 -y Ft(?)i Fu(=)g Fs(H)804 3025 y Fn(n+1)970 3061 y Ft(?)g -Fu(for)f(some)g(n)244 3229 y(then)h(FIX)g Fs(H)48 b Fu(=)33 -b Fs(H)988 3192 y Fn(n)1064 3229 y Ft(?)0 3407 y Fu(where)e -Ft(?)f Fu(is)f(the)h(function)f Ft(?)h Fs(ps)38 b Fu(=)29 -b Fb(init)h Fu(for)f(all)e Fs(ps)8 b Fu(.)43 b(W)-8 b(e)30 -b(can)g(no)m(w)g(calculate)e(the)i(iterands)0 3527 y -Fs(H)88 3491 y Fn(0)160 3527 y Ft(?)q Fu(,)i Fs(H)385 -3491 y Fn(1)457 3527 y Ft(?)q Fu(,)g Ft(\001)17 b(\001)g(\001)o -Fu(.)43 b(W)-8 b(e)33 b(obtain)244 3706 y(\()p Fs(H)370 -3670 y Fn(0)442 3706 y Ft(?)p Fu(\))g Fs(ps)40 b Fu(=)33 -b Fb(init)244 3961 y Fu(\()p Fs(H)370 3925 y Fn(1)442 -3961 y Ft(?)p Fu(\))g Fs(ps)40 b Fu(=)829 3786 y Fg(8)829 -3861 y(<)829 4011 y(:)944 3876 y Fb(lost)83 b Fu(if)31 -b Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(d)p Fu(?)h(or)f Fs(ps)40 -b Fu(not)33 b(prop)s(er)944 4044 y Fs(ps)212 b Fu(if)31 -b Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(ok)h Fu(and)g Fs(ps)40 -b Fu(prop)s(er)244 4315 y(\()p Fs(H)370 4279 y Fn(2)442 -4315 y Ft(?)p Fu(\))33 b Fs(ps)40 b Fu(=)829 4141 y Fg(8)829 -4216 y(<)829 4365 y(:)944 4231 y Fb(lost)83 b Fu(if)31 -b Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(d)p Fu(?)h(or)f Fs(ps)40 -b Fu(not)33 b(prop)s(er)944 4398 y Fs(ps)212 b Fu(if)31 -b Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(ok)h Fu(and)g Fs(ps)40 -b Fu(prop)s(er)0 4585 y(where)27 b Fs(ps)33 b Fu(is)25 -b(an)h(arbitrary)f(prop)s(ert)m(y)h(state.)42 b(Since)25 -b Fs(H)2027 4549 y Fn(1)2092 4585 y Ft(?)i Fu(=)e Fs(H)2385 -4549 y Fn(2)2450 4585 y Ft(?)h Fu(our)g(assumption)f(ab)s(o)m(v)m(e)0 -4706 y(ensures)35 b(that)d(w)m(e)h(ha)m(v)m(e)h(found)f(the)g(least)f -(\014xed)i(p)s(oin)m(t)e(for)g Fs(H)16 b Fu(:)244 4966 -y(\(FIX)32 b Fs(H)16 b Fu(\))33 b Fs(ps)40 b Fu(=)884 -4791 y Fg(8)884 4866 y(<)884 5016 y(:)999 4881 y Fb(lost)83 -b Fu(if)31 b Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(d)p Fu(?)h(or)f -Fs(ps)40 b Fu(not)33 b(prop)s(er)999 5049 y Fs(ps)212 -b Fu(if)31 b Fs(ps)41 b Fr(x)33 b Fu(=)f Fb(ok)h Fu(and)g -Fs(ps)40 b Fu(prop)s(er)0 5232 y(It)e(is)g(no)m(w)h(straigh)m(tforw)m -(ard)f(to)g(v)m(erify)g(that)g(\(FIX)h Fs(H)16 b Fu(\))38 -b(\()p Fs(ps)2283 5247 y Fn(0)2322 5232 y Fu([)p Fr(y)p -Ft(7!)p Fb(ok)p Fu(]\))h Fr(y)f Fu(=)g Fb(ok)h Fu(and)g(that)0 -5352 y(\(FIX)32 b Fs(H)16 b Fu(\)\()p Fs(ps)504 5367 -y Fn(0)544 5352 y Fu([)p Fr(y)p Ft(7!)p Fb(ok)p Fu(]\))22 -b(is)g(prop)s(er.)40 b(W)-8 b(e)22 b(conclude)h(that)e(there)i -Fs(is)30 b Fu(a)22 b(functional)e(dep)s(endency)0 5472 -y(b)s(et)m(w)m(een)35 b(the)e(input)f(v)-5 b(ariable)31 -b Fr(x)h Fu(and)h(the)g(output)g(v)-5 b(ariable)31 b -Fr(y)p Fu(.)1022 b Fh(2)p eop -%%Page: 148 158 -148 157 bop 251 130 a Fw(148)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a Fp(W)-11 -b(ell-de\014nedness)46 b(of)f FC(P)10 b(S)283 700 y Fu(Ha)m(ving)32 -b(sp)s(eci\014ed)h(the)g(analysis)e(w)m(e)j(shall)c(no)m(w)j(sho)m(w)g -(that)f(it)g(is)f(indeed)i(w)m(ell-de\014ned.)43 b(As)283 -820 y(in)32 b(Chapter)i(4)e(there)h(are)g(three)g(stages:)429 -1024 y Ft(\017)48 b Fu(First)23 b(w)m(e)i(in)m(tro)s(duce)e(a)g -(partial)f(order)h(on)h Fw(PState)f Ft(!)g Fw(PState)g -Fu(suc)m(h)i(that)f(it)e(b)s(ecomes)527 1144 y(a)33 b(ccp)s(o.)429 -1348 y Ft(\017)48 b Fu(Then)37 b(w)m(e)f(sho)m(w)g(that)f(certain)g -(auxiliary)e(functions)i(used)h(in)e(the)i(de\014nition)e(of)h -Ft(P)8 b(S)527 1468 y Fu(are)33 b(con)m(tin)m(uous.)429 -1671 y Ft(\017)48 b Fu(Finally)32 b(w)m(e)j(sho)m(w)h(that)e(the)g -(\014xed)i(p)s(oin)m(t)d(op)s(erator)h(only)f(is)h(applied)f(to)h(con)m -(tin)m(uous)527 1792 y(functions.)283 1995 y(Th)m(us)h(our)d(\014rst)h -(task)g(is)f(to)h(de\014ne)g(a)g(partial)d(order)j(on)f -Fw(PState)g Ft(!)g Fw(PState)h Fu(and)f(for)g(this)283 -2116 y(w)m(e)j(use)g(the)g(approac)m(h)f(dev)m(elop)s(ed)h(in)e(Lemma)g -(5.4.)47 b(Instan)m(tiating)33 b(the)h(non-empt)m(y)g(set)h -Fs(S)283 2236 y Fu(to)d(the)h(set)g Fw(PState)f Fu(and)h(the)f -(partially)e(ordered)j(set)g(\()p Fs(D)9 b Fu(,)33 b -Ft(v)p Fu(\))f(to)g(\()p Fw(PState)p Fu(,)g Ft(v)3294 -2251 y Fn(PS)3385 2236 y Fu(\))g(w)m(e)i(get:)p 283 2356 -3473 5 v 283 2531 a Fw(Corollary)i(5.17)49 b Fu(Let)33 -b Ft(v)g Fu(b)s(e)g(the)g(ordering)f(on)g Fw(PState)g -Ft(!)g Fw(PState)h Fu(de\014ned)h(b)m(y)527 2734 y Fs(h)584 -2749 y Fn(1)657 2734 y Ft(v)f Fs(h)824 2749 y Fn(2)896 -2734 y Fu(if)e(and)i(only)f(if)f Fs(h)1535 2749 y Fn(1)1608 -2734 y Fs(ps)40 b Ft(v)1815 2749 y Fn(PS)1939 2734 y -Fs(h)1996 2749 y Fn(2)2069 2734 y Fs(ps)g Fu(for)32 b(all)e(prop)s(ert) -m(y)k(states)f Fs(ps)283 2938 y Fu(Then)42 b(\()p Fw(PState)d -Ft(!)h Fw(PState)p Fu(,)h Ft(v)p Fu(\))f(is)g(a)f(complete)h(lattice,)g -(and)g(hence)h(a)f(ccp)s(o,)i(and)e(the)283 3058 y(form)m(ula)31 -b(for)h(least)g(upp)s(er)h(b)s(ounds)h(is)527 3261 y(\()565 -3195 y Fg(F)667 3261 y Fs(Y)20 b Fu(\))32 b Fs(ps)41 -b Fu(=)1068 3195 y Fg(F)1137 3276 y Fn(PS)1261 3261 y -Ft(f)32 b Fs(h)40 b(ps)g Ft(j)33 b Fs(h)39 b Ft(2)33 -b Fs(Y)53 b Ft(g)283 3465 y Fu(for)32 b(an)m(y)i(subset)g -Fs(Y)52 b Fu(of)32 b Fw(PState)g Ft(!)g Fw(PState)p Fu(.)p -283 3585 V 283 3813 a Fw(Exercise)37 b(5.18)49 b(\(Essen)m(tial\))33 -b Fu(Sho)m(w)j(that)f(the)h(assumption)f(made)g(in)g(Example)g(5.16)f -(is)283 3934 y(correct.)45 b(That)32 b(is)h(\014rst)g(sho)m(w)g(that) -527 4137 y Fs(H)16 b Fu(:)33 b(\()p Fw(PState)f Ft(!)g -Fw(PState)p Fu(\))g Ft(!)g Fu(\()p Fw(PState)h Ft(!)f -Fw(PState)p Fu(\))283 4341 y(as)d(de\014ned)g(in)f(Example)g(5.16)f(is) -h(indeed)g(a)g(monotone)g(function.)41 b(Next)29 b(sho)m(w)h(that)e -(for)f(an)m(y)283 4461 y(monotone)32 b(function)g Fs(H)49 -b Fu(of)32 b(the)h(ab)s(o)m(v)m(e)g(functionalit)m(y)e(if)527 -4664 y Fs(H)615 4628 y Fn(n)691 4664 y Ft(?)i Fu(=)g -Fs(H)998 4628 y Fn(n+1)1164 4664 y Ft(?)283 4868 y Fu(for)f(some)h(n)g -(then)g Fs(H)1074 4832 y Fn(n)1150 4868 y Ft(?)g Fu(is)f(the)h(least)f -(\014xed)i(p)s(oin)m(t)e(of)g Fs(H)16 b Fu(.)1210 b Fh(2)430 -5096 y Fu(Our)37 b(second)i(task)f(is)f(to)g(ensure)i(that)e(the)h -(function)f Fs(H)53 b Fu(used)39 b(in)e(T)-8 b(able)37 -b(5.2)g(is)g(a)g(con-)283 5216 y(tin)m(uous)45 b(function)e(from)g -Fw(PState)h Ft(!)f Fw(PState)h Fu(to)g Fw(PState)f Ft(!)h -Fw(PState)p Fu(.)78 b(F)-8 b(or)43 b(this)h(w)m(e)283 -5337 y(follo)m(w)27 b(the)j(approac)m(h)f(of)f(Section)h(4.3)f(and)h -(sho)m(w)h(that)e(cond)2571 5352 y Fn(P)2653 5337 y Fu(is)g(con)m(tin)m -(uous)h(in)f(its)h(second)283 5457 y(argumen)m(t)k(and)f(later)g(that)g -(comp)s(osition)f(is)h(con)m(tin)m(uous)h(in)f(its)g(\014rst)h(argumen) -m(t.)p eop -%%Page: 149 159 -149 158 bop 0 130 a Fw(5.2)112 b(The)38 b(analysis)2439 -b(149)p 0 193 3473 4 v 0 515 3473 5 v 0 697 a(Lemma)37 -b(5.19)49 b Fu(Let)33 b Fs(f)21 b Fu(:)43 b Fw(PState)32 -b Ft(!)h Fw(P)p Fu(,)f Fs(h)1631 712 y Fn(0)1670 697 -y Fu(:)44 b Fw(PState)32 b Ft(!)g Fw(PState)g Fu(and)h(de\014ne)244 -906 y Fs(H)48 b(h)40 b Fu(=)33 b(cond)763 921 y Fn(P)815 -906 y Fu(\()p Fs(f)21 b Fu(,)33 b Fs(h)7 b Fu(,)33 b -Fs(h)1138 921 y Fn(0)1177 906 y Fu(\))0 1115 y(Then)h -Fs(H)16 b Fu(:)32 b(\()p Fw(PState)p Ft(!)p Fw(PState)p -Fu(\))g Ft(!)g Fu(\()p Fw(PState)p Ft(!)o Fw(PState)p -Fu(\))g(is)g(a)g(con)m(tin)m(uous)i(function.)p 0 1235 -V 0 1444 a Fw(Pro)s(of:)48 b Fu(W)-8 b(e)42 b(shall)e(\014rst)i(pro)m -(v)m(e)h(that)e Fs(H)58 b Fu(is)41 b Fs(monotone)48 b -Fu(so)42 b(let)f Fs(h)2505 1459 y Fn(1)2586 1444 y Fu(and)h -Fs(h)2842 1459 y Fn(2)2923 1444 y Fu(b)s(e)g(suc)m(h)h(that)0 -1565 y Fs(h)57 1580 y Fn(1)129 1565 y Ft(v)33 b Fs(h)296 -1580 y Fn(2)336 1565 y Fu(,)e(that)g(is)g Fs(h)758 1580 -y Fn(1)828 1565 y Fs(ps)39 b Ft(v)1035 1580 y Fn(PS)1157 -1565 y Fs(h)1214 1580 y Fn(2)1285 1565 y Fs(ps)f Fu(for)31 -b(all)e(prop)s(ert)m(y)i(states)h Fs(ps)8 b Fu(.)43 b(W)-8 -b(e)32 b(then)f(ha)m(v)m(e)i(to)d(sho)m(w)0 1685 y(that)38 -b(cond)417 1700 y Fn(P)470 1685 y Fu(\()p Fs(f)21 b Fu(,)39 -b Fs(h)682 1700 y Fn(1)722 1685 y Fu(,)h Fs(h)846 1700 -y Fn(0)885 1685 y Fu(\))e Fs(ps)46 b Ft(v)1175 1700 y -Fn(PS)1304 1685 y Fu(cond)1504 1700 y Fn(P)1557 1685 -y Fu(\()p Fs(f)21 b Fu(,)40 b Fs(h)1770 1700 y Fn(2)1809 -1685 y Fu(,)g Fs(h)1933 1700 y Fn(0)1973 1685 y Fu(\))e -Fs(ps)8 b Fu(.)60 b(The)39 b(pro)s(of)e(is)h(b)m(y)h(cases)h(on)e(the)0 -1806 y(v)-5 b(alue)32 b(of)g Fs(f)54 b(ps)8 b Fu(.)43 -b(If)32 b Fs(f)54 b(ps)40 b Fu(=)33 b Fb(ok)g Fu(then)g(the)g(result)g -(follo)m(ws)e(since)244 2015 y(\()p Fs(h)339 2030 y Fn(1)411 -2015 y Fs(ps)8 b Fu(\))32 b Ft(t)646 2030 y Fn(PS)770 -2015 y Fu(\()p Fs(h)865 2030 y Fn(0)937 2015 y Fs(ps)8 -b Fu(\))32 b Ft(v)1183 2030 y Fn(PS)1307 2015 y Fu(\()p -Fs(h)1402 2030 y Fn(2)1474 2015 y Fs(ps)8 b Fu(\))32 -b Ft(t)1708 2030 y Fn(PS)1832 2015 y Fu(\()p Fs(h)1927 -2030 y Fn(0)1999 2015 y Fs(ps)8 b Fu(\))0 2224 y(If)33 -b Fs(f)53 b(ps)40 b Fu(=)33 b Fb(d)p Fu(?)g(then)g(the)g(result)f -(follo)m(ws)g(since)h Fb(lost)f Ft(v)2111 2239 y Fn(PS)2234 -2224 y Fb(lost)p Fu(.)146 2345 y(T)-8 b(o)27 b(see)g(that)f -Fs(H)42 b Fu(is)26 b Fs(c)-5 b(ontinuous)34 b Fu(let)26 -b Fs(Y)46 b Fu(b)s(e)26 b(a)g(non-empt)m(y)h(c)m(hain)f(in)f -Fw(PState)h Ft(!)g Fw(PState)p Fu(.)0 2466 y(Using)f(the)g(c)m -(haracterization)f(of)h(least)f(upp)s(er)i(b)s(ounds)g(in)e -Fw(PState)g Fu(giv)m(en)h(in)g(Corollary)e(5.17)0 2586 -y(w)m(e)34 b(see)f(that)g(w)m(e)g(m)m(ust)g(sho)m(w)h(that)244 -2795 y(\()p Fs(H)48 b Fu(\()440 2729 y Fg(F)510 2795 -y Fs(Y)19 b Fu(\)\))33 b Fs(ps)40 b Fu(=)948 2729 y Fg(F)1018 -2810 y Fn(PS)1141 2795 y Ft(f)33 b Fu(\()p Fs(H)48 b(h)7 -b Fu(\))33 b Fs(ps)40 b Ft(j)33 b Fs(h)39 b Ft(2)33 b -Fs(Y)53 b Ft(g)0 3005 y Fu(for)35 b(all)f(prop)s(ert)m(y)i(states)g -Fs(ps)44 b Fu(in)35 b Fw(PState)p Fu(.)52 b(The)36 b(pro)s(of)f(is)g(b) -m(y)h(cases)h(on)f(the)g(v)-5 b(alue)35 b(of)g Fs(f)56 -b(ps)8 b Fu(.)0 3125 y(If)33 b Fs(f)53 b(ps)40 b Fu(=)33 -b Fb(d)p Fu(?)g(then)g(w)m(e)g(ha)m(v)m(e)h(\()p Fs(H)49 -b Fu(\()1348 3058 y Fg(F)1417 3125 y Fs(Y)20 b Fu(\)\))32 -b Fs(ps)40 b Fu(=)33 b Fb(lost)f Fu(and)244 3268 y Fg(F)313 -3349 y Fn(PS)437 3334 y Ft(f)g Fu(\()p Fs(H)49 b(h)7 -b Fu(\))33 b Fs(ps)40 b Ft(j)32 b Fs(h)40 b Ft(2)p Fs(Y)53 -b Ft(g)32 b Fu(=)1467 3268 y Fg(F)1536 3349 y Fn(PS)1660 -3334 y Ft(f)h Fb(lost)f Ft(j)g Fs(h)40 b Ft(2)33 b Fs(Y)52 -b Ft(g)1359 3502 y Fu(=)32 b Fb(lost)0 3711 y Fu(where)47 -b(the)g(last)e(equalit)m(y)h(is)f(b)s(ecause)j Fs(Y)65 -b Fu(is)46 b(not)g(empt)m(y)-8 b(.)84 b(Th)m(us)48 b(w)m(e)f(ha)m(v)m -(e)g(pro)m(v)m(ed)h(the)0 3831 y(required)33 b(result)g(in)f(this)g -(case.)45 b(If)33 b Fs(f)53 b(ps)41 b Fu(=)33 b Fb(ok)g -Fu(then)g(the)g(c)m(haracterization)f(of)h(least)f(upp)s(er)0 -3952 y(b)s(ounds)h(in)f Fw(PState)g Fu(giv)m(es:)244 -4161 y(\()p Fs(H)48 b Fu(\()440 4094 y Fg(F)510 4161 -y Fs(Y)19 b Fu(\)\))33 b Fs(ps)40 b Fu(=)32 b(\(\()1024 -4094 y Fg(F)1093 4161 y Fs(Y)20 b Fu(\))33 b Fs(ps)8 -b Fu(\))32 b Ft(t)1490 4176 y Fn(PS)1614 4161 y Fu(\()p -Fs(h)1709 4176 y Fn(0)1781 4161 y Fs(ps)8 b Fu(\))840 -4328 y(=)32 b(\()986 4262 y Fg(F)1056 4343 y Fn(PS)1179 -4328 y Ft(f)h Fs(h)40 b(ps)g Ft(j)32 b Fs(h)40 b Ft(2)33 -b Fs(Y)52 b Ft(g)p Fu(\))32 b Ft(t)2042 4343 y Fn(PS)2166 -4328 y Fu(\()p Fs(h)2261 4343 y Fn(0)2333 4328 y Fs(ps)8 -b Fu(\))840 4496 y(=)948 4430 y Fg(F)1018 4511 y Fn(PS)1141 -4496 y Ft(f)33 b Fs(h)40 b(ps)g Ft(j)32 b Fs(h)40 b Ft(2)33 -b Fs(Y)52 b Ft([)33 b(f)f Fs(h)2055 4511 y Fn(0)2128 -4496 y Ft(g)g(g)0 4705 y Fu(and)244 4848 y Fg(F)313 4929 -y Fn(PS)437 4914 y Ft(f)g Fu(\()p Fs(H)49 b(h)7 b Fu(\))33 -b Fs(ps)40 b Ft(j)32 b Fs(h)40 b Ft(2)33 b Fs(Y)52 b -Ft(g)32 b Fu(=)1500 4848 y Fg(F)1569 4929 y Fn(PS)1693 -4914 y Ft(f)g Fu(\()p Fs(h)40 b(ps)8 b Fu(\))32 b Ft(t)2138 -4929 y Fn(PS)2261 4914 y Fu(\()p Fs(h)2356 4929 y Fn(0)2429 -4914 y Fs(ps)8 b Fu(\))32 b Ft(j)g Fs(h)40 b Ft(2)33 -b Fs(Y)52 b Ft(g)1391 5082 y Fu(=)1500 5016 y Fg(F)1569 -5097 y Fn(PS)1693 5082 y Ft(f)32 b Fs(h)40 b(ps)g Ft(j)33 -b Fs(h)39 b Ft(2)33 b Fs(Y)52 b Ft([)33 b(f)g Fs(h)2607 -5097 y Fn(0)2679 5082 y Ft(g)f(g)0 5291 y Fu(where)g(the)f(last)f -(equalit)m(y)g(follo)m(ws)f(b)s(ecause)j Fs(Y)50 b Fu(is)30 -b(not)h(empt)m(y)-8 b(.)43 b(Th)m(us)32 b(the)f(result)g(follo)m(ws)e -(in)0 5411 y(this)j(case.)3008 b Fh(2)p eop -%%Page: 150 160 -150 159 bop 251 130 a Fw(150)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a(Exercise)h(5.20)49 -b Fu(Let)33 b Fs(f)20 b Fu(:)44 b Fw(PState)32 b Ft(!)g -Fw(P)p Fu(,)g Fs(h)1960 530 y Fn(0)2000 515 y Fu(:)44 -b Fw(PState)32 b Ft(!)g Fw(PState)g Fu(and)h(de\014ne)527 -706 y Fs(H)49 b(h)40 b Fu(=)32 b(cond)1046 721 y Fn(P)1099 -706 y Fu(\()p Fs(f)21 b Fu(,)32 b Fs(h)1304 721 y Fn(0)1344 -706 y Fu(,)h Fs(h)7 b Fu(\))283 897 y(Sho)m(w)32 b(that)e -Fs(H)16 b Fu(:)30 b(\()p Fw(PState)g Ft(!)f Fw(PState)p -Fu(\))h Ft(!)g Fu(\()p Fw(PState)g Ft(!)f Fw(PState)p -Fu(\))h(is)g(a)g(con)m(tin)m(uous)h(func-)283 1018 y(tion.)3202 -b Fh(2)p 283 1230 3473 5 v 283 1392 a Fw(Lemma)38 b(5.21)49 -b Fu(Let)32 b Fs(h)1160 1407 y Fn(0)1200 1392 y Fu(:)44 -b Fw(PState)32 b Ft(!)g Fw(PState)g Fu(and)h(de\014ne)527 -1583 y Fs(H)49 b(h)40 b Fu(=)32 b Fs(h)40 b Ft(\016)32 -b Fs(h)1075 1598 y Fn(0)283 1774 y Fu(Then)i Fs(H)16 -b Fu(:)33 b(\()p Fw(PState)p Ft(!)o Fw(PState)p Fu(\))f -Ft(!)g Fu(\()p Fw(PState)p Ft(!)o Fw(PState)p Fu(\))h(is)f(a)g(con)m -(tin)m(uous)h(function.)p 283 1894 V 283 2085 a Fw(Pro)s(of:)50 -b Fu(W)-8 b(e)43 b(shall)e(\014rst)j(sho)m(w)g(that)f -Fs(H)58 b Fu(is)43 b Fs(monotone)49 b Fu(so)43 b(let)f -Fs(h)2781 2100 y Fn(1)2864 2085 y Fu(and)h Fs(h)3121 -2100 y Fn(2)3204 2085 y Fu(b)s(e)g(suc)m(h)h(that)283 -2206 y Fs(h)340 2221 y Fn(1)413 2206 y Ft(v)33 b Fs(h)580 -2221 y Fn(2)619 2206 y Fu(,)h(that)g(is)f Fs(h)1049 2221 -y Fn(1)1123 2206 y Fs(ps)41 b Ft(v)1332 2221 y Fn(PS)1457 -2206 y Fs(h)1514 2221 y Fn(2)1587 2206 y Fs(ps)h Fu(for)33 -b(all)f(prop)s(ert)m(y)i(states)h Fs(ps)8 b Fu(.)46 b(Clearly)33 -b(w)m(e)i(then)g(ha)m(v)m(e)283 2326 y Fs(h)340 2341 -y Fn(1)380 2326 y Fu(\()p Fs(h)475 2341 y Fn(0)544 2326 -y Fs(ps)8 b Fu(\))29 b Ft(v)787 2341 y Fn(PS)908 2326 -y Fs(h)965 2341 y Fn(2)1004 2326 y Fu(\()p Fs(h)1099 -2341 y Fn(0)1168 2326 y Fs(ps)8 b Fu(\))30 b(for)e(all)g(prop)s(ert)m -(y)i(states)g Fs(ps)38 b Fu(and)29 b(thereb)m(y)i(w)m(e)g(ha)m(v)m(e)g -(pro)m(v)m(ed)f(the)283 2446 y(monotonicit)m(y)h(of)h -Fs(H)16 b Fu(.)430 2567 y(T)-8 b(o)40 b(pro)m(v)m(e)h(the)f -Fs(c)-5 b(ontinuity)49 b Fu(let)39 b Fs(Y)59 b Fu(b)s(e)40 -b(a)g(non-empt)m(y)g(c)m(hain)f(in)g Fw(PState)h Ft(!)f -Fw(PState)p Fu(.)283 2687 y(W)-8 b(e)33 b(m)m(ust)g(sho)m(w)h(that)527 -2878 y(\()p Fs(H)49 b Fu(\()724 2812 y Fg(F)793 2878 -y Fs(Y)20 b Fu(\)\))32 b Fs(ps)40 b Fu(=)33 b(\()1270 -2812 y Fg(F)1339 2878 y Ft(f)f Fs(H)49 b(h)40 b Ft(j)32 -b Fs(h)40 b Ft(2)33 b Fs(Y)52 b Ft(g)p Fu(\))32 b Fs(ps)283 -3069 y Fu(for)h(all)e(prop)s(ert)m(y)j(states)g Fs(ps)8 -b Fu(.)46 b(Using)33 b(the)g(c)m(haracterization)f(of)h(least)g(upp)s -(er)h(b)s(ounds)g(giv)m(en)283 3190 y(in)e(Corollary)f(5.17)h(w)m(e)i -(get)527 3381 y(\()p Fs(H)49 b Fu(\()724 3314 y Fg(F)793 -3381 y Fs(Y)20 b Fu(\)\))32 b Fs(ps)40 b Fu(=)33 b(\(\()1308 -3314 y Fg(F)1377 3381 y Fs(Y)20 b Fu(\))32 b Ft(\016)g -Fs(h)1678 3396 y Fn(0)1718 3381 y Fu(\))h Fs(ps)1123 -3548 y Fu(=)g(\()1270 3482 y Fg(F)1339 3548 y Fs(Y)20 -b Fu(\))32 b(\()p Fs(h)1596 3563 y Fn(0)1668 3548 y Fs(ps)8 -b Fu(\))1123 3716 y(=)1232 3649 y Fg(F)1301 3731 y Fn(PS)1425 -3716 y Ft(f)32 b Fs(h)40 b Fu(\()p Fs(h)1692 3731 y Fn(0)1764 -3716 y Fs(ps)8 b Fu(\))33 b Ft(j)f Fs(h)40 b Ft(2)32 -b Fs(Y)53 b Ft(g)283 3907 y Fu(and)527 4098 y(\()565 -4031 y Fg(F)634 4098 y Ft(f)33 b Fs(H)48 b(h)40 b Ft(j)32 -b Fs(h)40 b Ft(2)33 b Fs(Y)52 b Ft(g)p Fu(\))33 b Fs(ps)40 -b Fu(=)1659 4031 y Fg(F)1729 4113 y Fn(PS)1852 4098 y -Ft(f)33 b Fu(\()p Fs(H)48 b(h)7 b Fu(\))33 b Fs(ps)40 -b Ft(j)33 b Fs(h)39 b Ft(2)33 b Fs(Y)53 b Ft(g)1551 4265 -y Fu(=)1659 4199 y Fg(F)1729 4280 y Fn(PS)1852 4265 y -Ft(f)33 b Fu(\()p Fs(h)39 b Ft(\016)33 b Fs(h)2202 4280 -y Fn(0)2241 4265 y Fu(\))g Fs(ps)40 b Ft(j)33 b Fs(h)39 -b Ft(2)33 b Fs(Y)52 b Ft(g)283 4457 y Fu(Hence)34 b(the)f(result)g -(follo)m(ws.)2352 b Fh(2)430 4660 y Fu(This)33 b(su\016ces)h(for)e(sho) -m(wing)h(the)g(w)m(ell-de\014nedness)h(of)e Ft(P)8 b(S)h -Fu(:)p 283 4780 V 283 4942 a Fw(Prop)s(osition)36 b(5.22)49 -b Fu(The)41 b(seman)m(tic)f(function)f Ft(P)8 b(S)h Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(:)58 b Fw(PState)39 b -Ft(!)h Fw(PState)g Fu(of)f(T)-8 b(able)283 5063 y(5.2)33 -b(is)f(a)g(w)m(ell-de\014ned)h(function)f(for)g(all)e(statemen)m(ts)k -Fs(S)44 b Fu(of)32 b(the)h(language)f Fw(While)p Fu(.)p -283 5183 V 283 5374 a Fw(Pro)s(of:)k Fu(The)c(pro)s(of)e(is)h(b)m(y)h -(structural)f(induction)f(on)h Fs(S)43 b Fu(and)32 b(only)e(the)i(case) -g(of)e(the)i Fr(while)p Fu(-)283 5494 y(lo)s(op)g(is)g(in)m(teresting.) -43 b(W)-8 b(e)33 b(note)f(that)h(the)g(function)f Fs(H)49 -b Fu(used)33 b(in)f(T)-8 b(able)32 b(5.2)g(is)h(giv)m(en)f(b)m(y)p -eop -%%Page: 151 161 -151 160 bop 0 130 a Fw(5.2)112 b(The)38 b(analysis)2439 -b(151)p 0 193 3473 4 v 244 515 a Fs(H)48 b Fu(=)33 b -Fs(H)561 530 y Fn(1)633 515 y Ft(\016)f Fs(H)803 530 -y Fn(2)0 724 y Fu(where)244 932 y Fs(H)332 947 y Fn(1)404 -932 y Fs(h)40 b Fu(=)32 b(cond)802 947 y Fn(P)855 932 -y Fu(\()p Ft(P)8 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(,)32 b Fs(h)7 b Fu(,)33 b(id\))244 1099 y Fs(H)332 -1114 y Fn(2)404 1099 y Fs(h)40 b Fu(=)32 b Fs(h)40 b -Ft(\016)32 b(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])0 1307 y(As)39 b Fs(H)238 1322 y Fn(1)315 1307 y -Fu(and)f Fs(H)598 1322 y Fn(2)676 1307 y Fu(are)g(con)m(tin)m(uous)g -(functions)g(b)m(y)h(Lemmas)e(5.19)h(and)g(5.21)f(w)m(e)i(ha)m(v)m(e)h -(that)0 1428 y Fs(H)47 b Fu(is)31 b(a)g(con)m(tin)m(uous)g(function)g -(b)m(y)h(Lemma)e(4.35.)42 b(Hence)32 b(FIX)f Fs(H)48 -b Fu(is)30 b(w)m(ell-de\014ned)i(and)f(this)0 1548 y(completes)h(the)h -(pro)s(of.)2530 b Fh(2)0 1867 y Fw(Exercise)36 b(5.23)49 -b Fu(Consider)33 b(the)g(statemen)m(t)244 2075 y Fr(z)g -Fu(:=)f Fr(0)p Fu(;)h Fr(while)h(y)p Ft(\024)q Fr(x)e(do)h -Fu(\()p Fr(z)g Fu(:=)g Fr(z)p Fu(+)p Fr(1)p Fu(;)g Fr(x)f -Fu(:=)h Fr(x)p Ft(\000)p Fr(y)p Fu(\))0 2283 y(where)h -Fr(x)f Fu(and)f Fr(y)h Fu(are)g(input)f(v)-5 b(ariables)31 -b(and)i Fr(z)g Fu(is)f(the)h(output)g(v)-5 b(ariable.)41 -b(Use)34 b(the)f(approac)m(h)0 2404 y(of)e(Example)g(5.16)g(to)h(sho)m -(w)g(that)g(there)g(is)f(a)h(functional)e(dep)s(endency)k(b)s(et)m(w)m -(een)g(the)e(input)0 2524 y(and)h(output)f(v)-5 b(ariables.)2489 -b Fh(2)0 2759 y Fw(Exercise)36 b(5.24)49 b Fu(Apply)31 -b(the)g(analysis)f Ft(P)8 b(S)39 b Fu(to)30 b(the)i(statemen)m(t)f -Fr(while)h(true)f(do)h(skip)f Fu(and)0 2879 y(explain)h(wh)m(y)i(the)f -(analysis)f(terminates.)1840 b Fh(2)0 3114 y Fw(Exercise)36 -b(5.25)49 b Fu(Extend)g Fw(While)d Fu(with)h(the)h(statemen)m(t)g -Fr(repeat)34 b Fs(S)45 b Fr(until)33 b Fs(b)54 b Fu(and)47 -b(giv)m(e)0 3235 y(the)38 b(new)g(\(comp)s(ositional\))c(clause)k(for)e -Ft(P)8 b(S)h Fu(.)58 b(Discuss)38 b(y)m(our)g(extension)g(and)f(v)-5 -b(alidate)36 b(the)0 3355 y(w)m(ell-de\014nedness.)2697 -b Fh(2)0 3590 y Fw(Exercise)36 b(5.26)49 b Fu(Extend)41 -b Fw(While)d Fu(with)i(the)g(statemen)m(t)g Fr(for)g -Fo(x)g Fu(:=)g Fo(a)2716 3605 y Fn(1)2795 3590 y Fr(to)g -Fo(a)2988 3605 y Fn(2)3067 3590 y Fr(do)g Fs(S)51 b Fu(and)0 -3711 y(giv)m(e)35 b(the)g(new)h(\(comp)s(ositional\))31 -b(clause)k(for)g Ft(P)8 b(S)g Fu(.)50 b(Discuss)36 b(y)m(our)f -(extension)h(and)f(v)-5 b(alidate)0 3831 y(the)33 b(w)m -(ell-de\014nedness.)2529 b Fh(2)0 4066 y Fw(Exercise)36 -b(5.27)49 b(\(Essen)m(tial\))31 b Fu(Sho)m(w)i(that)f(for)g(ev)m(ery)j -(statemen)m(t)e Fs(S)244 4274 y(ps)40 b Fu(on-trac)m(k)33 -b Ft(v)g Fu(\()p Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])p Fs(ps)8 b Fu(\))33 b(on-trac)m(k)0 4482 -y(so)g(that)g Fs(ps)40 b Fu(m)m(ust)34 b(b)s(e)f(prop)s(er)g(if)e -Ft(P)8 b(S)h Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q -Fs(ps)40 b Fu(is.)k(In)33 b(the)h(case)g(of)e Fr(while)i -Fs(b)39 b Fr(do)33 b Fs(S)45 b Fu(y)m(ou)34 b(should)0 -4602 y(\014rst)f(pro)m(v)m(e)h(that)e(for)g(all)f(n)h -Ft(\025)h Fu(1:)244 4811 y Fs(ps)40 b Fu(on-trac)m(k)33 -b Ft(v)g Fu(\(\()p Fs(H)1033 4774 y Fn(n)1109 4811 y -Ft(?)p Fu(\))g Fs(ps)8 b Fu(\))32 b(on-trac)m(k)0 5019 -y(where)i Ft(?)f Fs(ps)490 4983 y Fi(0)546 5019 y Fu(=)f -Fb(init)h Fu(for)f(all)e Fs(ps)1249 4983 y Fi(0)1305 -5019 y Fu(and)j Fs(H)48 b(h)40 b Fu(=)32 b(cond)2013 -5034 y Fn(P)2066 5019 y Fu(\()p Ft(P)8 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)33 b Fs(h)39 b Ft(\016)33 -b(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 -b(id\).)296 b Fh(2)0 5254 y Fw(Exercise)36 b(5.28)49 -b Fu(Sho)m(w)25 b(that)f(there)h(exists)g Fs(h)1702 5269 -y Fn(0)1741 5254 y Fu(:)40 b Fw(PState)23 b Ft(!)h Fw(PState)f -Fu(suc)m(h)j(that)e Fs(H)40 b Fu(de\014ned)0 5374 y(b)m(y)h -Fs(H)56 b(h)47 b Fu(=)40 b Fs(h)541 5389 y Fn(0)621 5374 -y Ft(\016)g Fs(h)47 b Fu(is)40 b Fs(not)h(even)47 b Fu(a)40 -b(monotone)f(function)h(from)f Fw(PState)g Ft(!)h Fw(PState)g -Fu(to)0 5494 y Fw(PState)32 b Ft(!)g Fw(PState)p Fu(.)2543 -b Fh(2)p eop -%%Page: 152 162 -152 161 bop 251 130 a Fw(152)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a(Remark)30 -b Fu(The)h(example)f(of)f(the)i(ab)s(o)m(v)m(e)g(exercise)g(indicates)f -(a)g(ma)5 b(jor)29 b(departure)i(from)d(the)283 636 y(secure)46 -b(w)m(orld)d(of)g(Chapter)h(4.)76 b(Luc)m(kily)44 b(an)f(insurance)h(p) -s(olicy)e(can)i(b)s(e)g(arranged.)76 b(The)283 756 y(premium)31 -b(is)h(to)h(replace)f(all)f(o)s(ccurrences)j(of)527 993 -y Fw(PState)e Ft(!)h Fw(PState)97 b Fu(and)130 b Fw(PState)32 -b Ft(!)g Fw(P)283 1229 y Fu(b)m(y)527 1466 y([)p Fw(PState)h -Ft(!)f Fw(PState)p Fu(])97 b(and)130 b([)p Fw(PState)32 -b Ft(!)h Fw(P)p Fu(])283 1702 y(where)45 b([)p Fs(D)52 -b Ft(!)42 b Fs(E)12 b Fu(])44 b(=)e Ft(f)h Fs(f)21 b -Fu(:)64 b Fs(D)52 b Ft(!)43 b Fs(E)55 b Ft(j)43 b Fs(f)64 -b Fu(is)42 b(con)m(tin)m(uous)i Ft(g)p Fu(.)75 b(One)43 -b(can)g(then)h(sho)m(w)g(that)283 1823 y([)p Fs(D)49 -b Ft(!)39 b Fs(E)12 b Fu(])40 b(is)f(a)h(ccp)s(o)g(if)e -Fs(D)49 b Fu(and)40 b Fs(E)51 b Fu(are)40 b(and)g(that)f(the)h(c)m -(haracterization)f(of)g(least)g(upp)s(er)283 1943 y(b)s(ounds)c(giv)m -(en)f(in)g(Lemma)f(5.4)g(still)f(holds.)48 b(F)-8 b(urthermore,)34 -b(one)g(can)g(sho)m(w)i(that)d(Exercise)283 2063 y(5.6)26 -b(ensures)h(that)f Ft(P)8 b(A)p Fu([)-17 b([)p Fs(a)7 -b Fu(])-17 b(])27 b(and)f Ft(P)8 b(B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])26 b(are)g(con)m(tin)m(uous.)42 -b(Finally)-8 b(,)24 b(the)i(en)m(tire)g(dev)m(elopmen)m(t)283 -2184 y(in)k(this)h(section)g(still)d(carries)j(through)f(although)g -(there)h(are)g(additional)d(pro)s(of)i(obligations)283 -2304 y(to)i(b)s(e)h(carried)f(out.)43 b(In)32 b(this)g(setting)g(one)g -(gets)h(that)f(if)f Fs(h)2438 2319 y Fn(0)2478 2304 y -Fu(:)43 b([)p Fw(PState)32 b Ft(!)g Fw(PState)p Fu(])g(then)g -Fs(H)283 2424 y Fu(de\014ned)c(b)m(y)f Fs(H)42 b(h)34 -b Fu(=)26 b Fs(h)1099 2439 y Fn(0)1171 2424 y Ft(\016)32 -b Fs(h)h Fu(is)26 b(indeed)g(a)g(con)m(tin)m(uous)h(function)f(from)f -([)p Fw(PState)g Ft(!)h Fw(PState)p Fu(])283 2545 y(to)33 -b([)p Fw(PState)f Ft(!)g Fw(PState)p Fu(].)2369 b Fh(2)430 -2672 y Fu(T)-8 b(o)30 b(summarize,)f(the)h(w)m(ell-de\014nedness)i(of)e -Ft(P)8 b(S)38 b Fu(relies)29 b(on)h(the)g(follo)m(wing)d(results)k -(estab-)283 2792 y(lished)h(ab)s(o)m(v)m(e:)p 283 2922 -3470 4 v 283 2939 V 281 3146 4 208 v 298 3146 V 1371 -3067 a Fw(Pro)s(of)g(Summary)h(for)f(While)p Fu(:)p 3735 -3146 V 3752 3146 V 281 3354 V 298 3354 V 1174 3275 a -Fw(W)-9 b(ell)p Fu(-)p Fw(de\014nedness)32 b(of)g(Static)g(Analysis)p -3735 3354 V 3752 3354 V 283 3357 3470 4 v 281 3726 4 -370 v 298 3726 V 350 3523 a Fu(1:)143 b(The)37 b(set)h -Fw(PState)e Ft(!)g Fw(PState)g Fu(equipp)s(ed)h(with)f(an)h -(appropriate)f(ordering)f Ft(v)i Fu(is)569 3643 y(a)32 -b(ccp)s(o)h(\(Corollary)e(5.17\).)p 3735 3726 V 3752 -3726 V 281 4014 4 289 v 298 4014 V 350 3811 a(2:)143 -b(Certain)38 b(functions)g(\011:)55 b(\()p Fw(PState)38 -b Ft(!)g Fw(PState)p Fu(\))g Ft(!)g Fu(\()p Fw(PState)g -Ft(!)g Fw(PState)p Fu(\))g(are)569 3931 y(con)m(tin)m(uous)33 -b(\(Lemmas)f(5.19)g(and)g(5.21\).)p 3735 4014 V 3752 -4014 V 281 4302 V 298 4302 V 350 4099 a(3:)143 b(In)30 -b(the)h(de\014nition)e(of)h Ft(P)8 b(S)39 b Fu(w)m(e)31 -b(only)f(apply)g(the)h(\014xed)g(p)s(oin)m(t)f(op)s(eration)f(to)g(con) -m(tin-)569 4219 y(uous)k(functions)f(\(Prop)s(osition)f(5.22\).)p -3735 4302 V 3752 4302 V 283 4306 3470 4 v 283 4322 V -283 4518 a(Our)h(o)m(v)m(erall)e(algorithm)f(for)i(determining)f -(whether)j(or)e(not)g(there)h(is)f(a)h(functional)d(dep)s(en-)283 -4638 y(dency)35 b(b)s(et)m(w)m(een)f(input)e(and)h(output)g(v)-5 -b(ariables)31 b(then)i(pro)s(ceeds)h(as)f(follo)m(ws:)333 -4821 y(INPUT:)212 b(a)33 b(statemen)m(t)g Fs(S)44 b Fu(of)32 -b Fw(While)889 4989 y Fu(a)h(set)g Fs(I)48 b Ft(\022)33 -b Fw(V)-9 b(ar)32 b Fu(of)g(input)g(v)-5 b(ariables)889 -5156 y(a)33 b(set)g Fs(O)42 b Ft(\022)33 b Fw(V)-9 b(ar)32 -b Fu(of)g(output)h(v)-5 b(ariables)333 5324 y(OUTPUT:)101 -b(YES,)34 b(if)d(there)i Fs(de\014nitely)41 b Fu(is)32 -b(a)h(functional)e(dep)s(endency)889 5492 y(NO?,)i(if)f(there)h -Fs(may)i(not)41 b Fu(b)s(e)33 b(a)g(functional)d(dep)s(endency)p -eop -%%Page: 153 163 -153 162 bop 0 130 a Fw(5.3)112 b(Safet)m(y)38 b(of)g(the)f(analysis) -2007 b(153)p 0 193 3473 4 v 50 500 a Fu(METHOD:)100 b(let)32 -b Fs(ps)865 515 y Fc(I)937 500 y Fu(b)s(e)h(uniquely)g(determined)f(b)m -(y)i(OK\()p Fs(ps)2399 515 y Fc(I)2438 500 y Fu(\))f(=)f -Fs(I)48 b Ft([)33 b(f)p Fu(on-trac)m(k)p Ft(g)626 668 -y Fu(let)f Fs(ps)865 683 y Fc(O)957 668 y Fu(=)h Ft(P)8 -b(S)g Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])q Fs(ps)1451 -683 y Fc(I)626 835 y Fu(output)33 b(YES)g(if)f(OK\()p -Fs(ps)1550 850 y Fc(O)1609 835 y Fu(\))g Ft(\023)h Fs(O)42 -b Ft([)33 b(f)p Fu(on-trac)m(k)p Ft(g)626 1003 y Fu(output)g(NO?)g -(otherwise)0 1289 y Fj(5.3)161 b(Safet)l(y)53 b(of)h(the)f(analysis)0 -1508 y Fu(In)44 b(this)g(section)g(w)m(e)h(shall)d(sho)m(w)j(that)f -(the)g(analysis)g(functions)g Ft(P)8 b(A)p Fu(,)46 b -Ft(P)8 b(B)48 b Fu(and)c Ft(P)8 b(S)52 b Fu(are)0 1628 -y(correct)37 b(with)e(resp)s(ect)i(to)f(the)h(seman)m(tic)e(functions)h -Ft(A)p Fu(,)h Ft(B)i Fu(and)d Ft(S)2526 1643 y Fn(ds)2597 -1628 y Fu(.)54 b(This)36 b(amoun)m(ts)g(to)g(a)0 1749 -y(formalization)29 b(of)k(the)h(considerations)f(that)g(w)m(ere)i -(already)e(illustrated)e(in)i(Exercises)i(5.13)0 1869 -y(and)e(5.15.)43 b(W)-8 b(e)33 b(b)s(egin)e(with)i(the)g(rather)f -(simple)f(case)j(of)e(arithmetic)e(expressions.)0 2150 -y Fp(Expressions)0 2334 y Fu(Let)37 b Fs(g)9 b Fu(:)53 -b Fw(State)37 b Ft(!)g Fw(Z)h Fu(b)s(e)f(a)g(function,)i(p)s(erhaps)f -(of)e(the)i(form)e Ft(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])39 b(for)d(some)h(arithmetic)0 2455 y(expression)j -Fs(a)45 b Ft(2)39 b Fw(Aexp)p Fu(,)h(and)e(let)g Fs(h)7 -b Fu(:)55 b Fw(PState)38 b Ft(!)g Fw(P)g Fu(b)s(e)g(another)g -(function,)i(p)s(erhaps)f(of)0 2575 y(the)c(form)d Ft(P)8 -b(A)p Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])35 b(for)e(some)h -(arithmetic)e(expression)k Fs(a)41 b Ft(2)34 b Fw(Aexp)p -Fu(.)48 b(W)-8 b(e)35 b(shall)e(in)m(tro)s(duce)h(a)0 -2696 y(relation)244 2852 y Fs(g)41 b Fu(sat)p 330 2865 -126 4 v 15 x Fn(Aexp)652 2852 y Fs(h)0 3007 y Fu(for)30 -b(expressing)i(when)f(the)g(analysis)f Fs(h)38 b Fu(is)30 -b(correct)h(with)f(resp)s(ect)h(to)f(the)h(seman)m(tics)g -Fs(g)9 b Fu(.)42 b(It)31 b(is)0 3128 y(de\014ned)j(b)m(y)244 -3284 y Fs(s)292 3299 y Fn(1)364 3284 y Ft(\021)f Fs(s)522 -3299 y Fn(2)594 3284 y Fu(rel)p 594 3297 109 4 v 702 -3299 a Fn(Stm)864 3284 y Fs(ps)41 b Fu(implies)30 b Fs(g)41 -b(s)1460 3299 y Fn(1)1532 3284 y Ft(\021)33 b Fs(g)41 -b(s)1776 3299 y Fn(2)1848 3284 y Fu(rel)p 1848 3297 V -15 x Fn(Aexp)2154 3284 y Fs(h)f(ps)0 3440 y Fu(for)27 -b(all)f(states)j Fs(s)596 3455 y Fn(1)663 3440 y Fu(and)f -Fs(s)896 3455 y Fn(2)963 3440 y Fu(and)g(prop)s(ert)m(y)h(states)g -Fs(ps)8 b Fu(.)41 b(This)28 b(condition)f(sa)m(ys)i(that)f(the)g -(results)0 3560 y(of)34 b Fs(g)42 b Fu(will)32 b(b)s(e)i(suitably)g -(related)f(pro)m(vided)i(that)f(the)g(argumen)m(ts)g(are.)48 -b(It)35 b(is)e(p)s(erhaps)i(more)0 3680 y(in)m(tuitiv)m(e)c(when)j -(rephrased)g(as)244 3836 y(\()p Fs(s)330 3851 y Fn(1)402 -3836 y Ft(\021)f Fs(s)560 3851 y Fn(2)632 3836 y Fu(rel)p -632 3849 V 740 3851 a Fn(Stm)902 3836 y Fs(ps)8 b Fu(\))33 -b(and)f(\()p Fs(h)40 b(ps)h Fu(=)32 b Fb(ok)p Fu(\))h(imply)e -Fs(g)41 b(s)2232 3851 y Fn(1)2304 3836 y Fu(=)32 b Fs(g)41 -b(s)2546 3851 y Fn(2)0 3992 y Fu(The)34 b(safet)m(y)f(of)f(the)h -(analysis)f Ft(P)8 b(A)33 b Fu(is)f(then)h(expressed)i(b)m(y)p -0 4113 3473 5 v 0 4239 a Fw(F)-9 b(act)37 b(5.29)49 b -Fu(F)-8 b(or)32 b(all)f(arithmetic)f(expressions)k Fs(a)40 -b Ft(2)33 b Fw(Aexp)g Fu(w)m(e)h(ha)m(v)m(e)269 4407 -y Ft(A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])33 b(sat)p -513 4420 126 4 v 15 x Fn(Aexp)836 4407 y Ft(P)8 b(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])p 0 4528 3473 5 -v 0 4684 a Fw(Pro)s(of:)37 b Fu(This)c(is)f(an)h(immediate)d -(consequence)35 b(of)d(Lemma)f(1.11)h(and)h(Exercise)h(5.11.)134 -b Fh(2)146 4887 y Fu(The)34 b(analysis)e Ft(P)8 b(B)36 -b Fu(of)c(b)s(o)s(olean)f(expressions)k(is)d(safe)h(in)f(the)h(follo)m -(wing)c(sense:)0 5043 y Fw(Exercise)36 b(5.30)49 b(\(Essen)m(tial\))21 -b Fu(Rep)s(eat)i(the)g(dev)m(elopmen)m(t)g(for)g(b)s(o)s(olean)e -(expressions,)27 b(that)0 5163 y(is)32 b(de\014ne)i(a)e(relation)f(sat) -p 819 5176 126 4 v 15 x Fn(Bexp)1139 5163 y Fu(and)h(sho)m(w)i(that)244 -5319 y Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 -b(sat)p 471 5332 V 15 x Fn(Bexp)791 5319 y Ft(P)8 b(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])0 5475 y(for)32 -b(all)f(b)s(o)s(olean)g(expressions)j Fs(b)k Ft(2)33 -b Fw(Bexp)p Fu(.)1781 b Fh(2)p eop -%%Page: 154 164 -154 163 bop 251 130 a Fw(154)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a Fp(Statemen)l(ts)283 -704 y Fu(The)k(safet)m(y)g(of)f(the)g(analysis)g(of)f(statemen)m(ts)i -(will)d(express)k(that)e(if)f(OK\()p Fs(ps)8 b Fu(\))38 -b(includes)h(all)283 824 y(the)45 b(input)e(v)-5 b(ariables)42 -b(and)i(if)e(OK\()p Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])p Fs(ps)8 b Fu(\))44 b(includes)f(`on-trac)m(k')h(and)g -(all)e(the)i(output)283 945 y(v)-5 b(ariables)32 b(then)i -Ft(S)979 960 y Fn(ds)1050 945 y Fu([)-17 b([)q Fs(S)12 -b Fu(])-17 b(])33 b(determines)h(a)e(functional)g(relationship)f(b)s -(et)m(w)m(een)k(the)f(input)f(and)283 1065 y(output)49 -b(v)-5 b(ariables.)90 b(This)49 b(v)-5 b(alidation)45 -b(is)j(imp)s(ortan)m(t)f(b)s(ecause)j(although)d(the)i(in)m(tuition)283 -1185 y(ab)s(out)35 b Fb(ok)g Fu(meaning)f(\\dep)s(ending)h(only)f(on)h -(input)f(v)-5 b(ariables")34 b(go)s(es)g(a)h(long)f(w)m(a)m(y)i(to)m(w) -m(ards)283 1306 y(motiv)-5 b(ating)30 b(the)j(analysis,)f(it)g(is)g -(not)h(p)s(erfect.)44 b(As)33 b(w)m(e)h(already)e(men)m(tioned)h(in)f -(Section)g(5.1)283 1426 y(one)c(cannot)f(insp)s(ect)g(a)f(v)-5 -b(alue,)28 b(lik)m(e)e Fw(27)p Fu(,)i(and)f(determine)g(whether)h(it)e -(has)h(its)f(v)-5 b(alue)26 b(b)s(ecause)283 1547 y(it)36 -b(only)g(dep)s(ends)h(on)g(input)e(v)-5 b(ariables)35 -b(or)h(b)s(ecause)i(it)d(just)i(happ)s(ened)g(to)f(b)s(e)h -Fw(27)p Fu(.)55 b(T)-8 b(o)36 b(aid)283 1667 y(the)42 -b(in)m(tuition)e(in)h(determining)f(that)h(no)h(errors)f(ha)m(v)m(e)i -(b)s(een)g(made)e(in)g(the)h(de\014nition)e(of)283 1787 -y(the)33 b(analysis)e(it)f(is)h Fs(ne)-5 b(c)g(essary)40 -b Fu(to)31 b(giv)m(e)h(a)f(formal)f(statemen)m(t)i(of)f(the)h -(relationship)e(b)s(et)m(w)m(een)283 1908 y(computations)i(in)g(the)h -(standard)g(\(denotational\))d(seman)m(tics)j(and)g(in)f(the)h -(analysis.)430 2030 y(Our)h(k)m(ey)h(to)s(ol)e(will)e(b)s(e)j(the)h -(relation)d Fs(s)1905 2045 y Fn(1)1979 2030 y Ft(\021)i -Fs(s)2138 2045 y Fn(2)2211 2030 y Fu(rel)p 2211 2043 -109 4 v 34 w Fs(ps)42 b Fu(and)34 b(w)m(e)h(shall)d(sho)m(w)k(that)d -(if)g(this)283 2150 y(relationship)i(holds)i(b)s(efore)g(the)g -(statemen)m(t)h(is)e(executed)j(and)e(analysed)g(then)h(either)e(the) -283 2271 y(statemen)m(t)e(will)c(lo)s(op)h(on)i(b)s(oth)f(states)i(or)e -(the)h(same)g(relationship)d(will)h(hold)h(b)s(et)m(w)m(een)i(the)283 -2391 y(\014nal)j(states)h(and)f(the)g(\014nal)f(prop)s(ert)m(y)i(state) -g(\(pro)m(vided)f(that)g(the)g(analysis)g(do)s(es)g(not)g(get)283 -2511 y(\\lost"\).)43 b(W)-8 b(e)33 b(shall)e(formalize)f(this)i(b)m(y)i -(de\014ning)e(a)g(relation)527 2724 y Fs(g)41 b Fu(sat)p -613 2737 126 4 v 739 2739 a Fn(Stm)901 2724 y Fs(h)283 -2937 y Fu(b)s(et)m(w)m(een)35 b(a)d(function)g Fs(g)9 -b Fu(:)44 b Fw(State)32 b Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(,)f(p)s(erhaps)i(of)e(the)h(form)e Ft(S)2936 2952 -y Fn(ds)3007 2937 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])33 b(for)f(some)g Fs(S)45 b Fu(in)283 3057 y Fw(Stm)p -Fu(,)29 b(and)h(another)f(function)f Fs(h)7 b Fu(:)42 -b Fw(PState)29 b Ft(!)f Fw(PState)p Fu(,)i(p)s(erhaps)f(of)g(the)g -(form)f Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])29 b(for)283 3178 y(some)k Fs(S)44 b Fu(in)32 b Fw(Stm)p -Fu(.)43 b(The)33 b(formal)d(de\014nition)i(amoun)m(ts)g(to)764 -3390 y(\()p Fs(s)850 3405 y Fn(1)922 3390 y Ft(\021)h -Fs(s)1080 3405 y Fn(2)1152 3390 y Fu(rel)p 1152 3403 -109 4 v 31 w Fs(ps)8 b Fu(\))33 b(and)g(\()p Fs(h)39 -b(ps)i Fu(is)32 b(prop)s(er\))527 3558 y(imply)764 3726 -y(\()p Fs(g)41 b(s)936 3741 y Fn(1)1008 3726 y Fu(=)32 -b(undef)p 1116 3739 236 4 v 33 w(and)h Fs(g)41 b(s)1708 -3741 y Fn(2)1780 3726 y Fu(=)32 b(undef)p 1888 3739 V -1 w(\))h(or)764 3893 y(\()p Fs(g)41 b(s)936 3908 y Fn(1)1008 -3893 y Ft(6)p Fu(=)32 b(undef)p 1116 3906 V 33 w(and)h -Fs(g)41 b(s)1708 3908 y Fn(2)1780 3893 y Ft(6)p Fu(=)32 -b(undef)p 1888 3906 V 34 w(and)g Fs(g)41 b(s)2480 3908 -y Fn(1)2553 3893 y Ft(\021)33 b Fs(g)41 b(s)2797 3908 -y Fn(2)2869 3893 y Fu(rel)p 2869 3906 109 4 v 32 w Fs(h)e(ps)8 -b Fu(\))283 4106 y(for)39 b(all)e(states)j Fs(s)913 4121 -y Fn(1)952 4106 y Fu(,)h Fs(s)1068 4121 y Fn(2)1146 4106 -y Ft(2)e Fw(State)g Fu(and)g(all)e(prop)s(ert)m(y)j(states)g -Fs(ps)46 b Ft(2)40 b Fw(PState)p Fu(.)62 b(T)-8 b(o)39 -b(motiv)-5 b(ate)283 4226 y(this)34 b(de\014nition)e(consider)i(t)m(w)m -(o)g(states)h Fs(s)1802 4241 y Fn(1)1875 4226 y Fu(and)f -Fs(s)2114 4241 y Fn(2)2187 4226 y Fu(that)f(are)h(equal)f(relativ)m(e)g -(to)g Fs(ps)8 b Fu(.)46 b(If)34 b Fs(ps)41 b Fu(is)283 -4347 y(prop)s(er)e(this)g(means)f(that)h Fs(s)1368 4362 -y Fn(1)1446 4347 y Fs(x)51 b Fu(=)38 b Fs(s)1704 4362 -y Fn(2)1782 4347 y Fs(x)51 b Fu(for)38 b(all)f(v)-5 b(ariables)37 -b Fs(x)50 b Fu(in)38 b(OK\()p Fs(ps)8 b Fu(\).)62 b(The)40 -b(analysis)283 4467 y(of)c(the)h(statemen)m(t)g(ma)m(y)f(get)h(\\lost") -e(in)g(whic)m(h)i(case)g Fs(h)44 b(ps)g Fu(is)36 b(not)g(prop)s(er)h -(and)f(w)m(e)i(cannot)283 4588 y(deduce)h(an)m(ything)d(ab)s(out)g(the) -h(b)s(eha)m(viour)f(of)g(the)h(statemen)m(t.)56 b(Alternativ)m(ely)-8 -b(,)37 b(it)e(ma)m(y)i(b)s(e)283 4708 y(the)j(case)f(that)g -Fs(h)46 b(ps)g Fu(is)38 b(prop)s(er)h(and)g(in)f(that)g(case)i(the)f -(statemen)m(t)g(m)m(ust)g(b)s(eha)m(v)m(e)h(in)e(the)283 -4828 y(same)33 b(w)m(a)m(y)h(whether)g(executed)g(from)e -Fs(s)1782 4843 y Fn(1)1854 4828 y Fu(or)g(from)f Fs(s)2251 -4843 y Fn(2)2291 4828 y Fu(.)43 b(In)33 b(particular)429 -5041 y Ft(\017)48 b Fu(the)j(statemen)m(t)f(ma)m(y)g(en)m(ter)h(a)f(lo) -s(op)f(when)i(executed)h(from)d Fs(s)2996 5056 y Fn(1)3085 -5041 y Fu(and)i Fs(s)3341 5056 y Fn(2)3380 5041 y Fu(,)j(that)c(is)527 -5161 y Fs(g)41 b(s)661 5176 y Fn(1)733 5161 y Fu(=)33 -b(undef)p 842 5174 236 4 v 33 w(and)g Fs(g)41 b(s)1434 -5176 y Fn(2)1506 5161 y Fu(=)32 b(undef)p 1614 5174 V -1 w(,)h(or)429 5374 y Ft(\017)48 b Fu(the)37 b(statemen)m(t)f(do)s(es)h -(not)f(en)m(ter)h(a)f(lo)s(op)e(when)j(executed)i(from)34 -b Fs(s)3055 5389 y Fn(1)3131 5374 y Fu(and)i Fs(s)3372 -5389 y Fn(2)3412 5374 y Fu(,)g(that)g(is)527 5494 y Fs(g)41 -b(s)661 5509 y Fn(1)733 5494 y Ft(6)p Fu(=)33 b(undef)p -842 5507 V 33 w(and)g Fs(g)41 b(s)1434 5509 y Fn(2)1506 -5494 y Ft(6)p Fu(=)32 b(undef)p 1614 5507 V 1 w(.)p eop -%%Page: 155 165 -155 164 bop 0 130 a Fw(5.3)112 b(Safet)m(y)38 b(of)g(the)f(analysis) -2007 b(155)p 0 193 3473 4 v 0 515 a Fu(In)34 b(the)h(latter)e(case)i -(the)g(t)m(w)m(o)g(\014nal)e(states)i Fs(g)43 b(s)1757 -530 y Fn(1)1830 515 y Fu(and)35 b Fs(g)42 b(s)2157 530 -y Fn(2)2231 515 y Fu(m)m(ust)34 b(b)s(e)h(equal)f(relativ)m(e)f(to)h -(the)0 636 y(resulting)41 b(prop)s(ert)m(y)h(state)g -Fs(h)49 b(ps)8 b Fu(,)44 b(that)e(is)f(\()p Fs(g)50 b(s)1843 -651 y Fn(1)1882 636 y Fu(\))42 b Fs(x)53 b Fu(=)42 b(\()p -Fs(g)50 b(s)2359 651 y Fn(2)2399 636 y Fu(\))41 b Fs(x)54 -b Fu(for)41 b(all)e(v)-5 b(ariables)41 b Fs(x)53 b Fu(in)0 -756 y(OK\()p Fs(h)39 b(ps)8 b Fu(\).)146 877 y(W)-8 b(e)28 -b(ma)m(y)f(then)h(form)m(ulate)e(the)i(desired)f(relationship)f(b)s(et) -m(w)m(een)j(the)f(seman)m(tics)g(and)f(the)0 997 y(analysis)32 -b(as)h(follo)m(ws:)p 0 1117 3473 5 v 0 1292 a Fw(Theorem)k(5.31)49 -b Fu(F)-8 b(or)32 b(all)e(statemen)m(ts)k Fs(S)44 b Fu(of)32 -b Fw(While)f Fu(w)m(e)j(ha)m(v)m(e)g Ft(S)2496 1307 y -Fn(ds)2567 1292 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])33 -b(sat)p 2741 1305 126 4 v 2867 1307 a Fn(Stm)3029 1292 -y Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(].)p -0 1412 3473 5 v 146 1615 a(Before)32 b(conducting)f(the)h(pro)s(of)e(w) -m(e)j(need)f(to)f(establish)g(some)g(prop)s(erties)g(of)g(the)g(auxil-) -0 1736 y(iary)h(op)s(erations)g(comp)s(osition)e(and)i(conditional.)p -0 1856 V 0 2031 a Fw(Lemma)37 b(5.32)49 b Fu(Let)39 b -Fs(g)880 2046 y Fn(1)919 2031 y Fu(,)h Fs(g)1040 2046 -y Fn(2)1079 2031 y Fu(:)56 b Fw(State)38 b Fo(,)-17 b -Ft(!)39 b Fw(State)g Fu(and)f Fs(h)2150 2046 y Fn(1)2190 -2031 y Fu(,)i Fs(h)2314 2046 y Fn(2)2354 2031 y Fu(:)56 -b Fw(PState)38 b Ft(!)g Fw(PState)g Fu(and)0 2151 y(assume)33 -b(that)269 2319 y Fs(ps)40 b Fu(on-trac)m(k)33 b Ft(v)861 -2334 y Fn(P)946 2319 y Fu(\()p Fs(h)1041 2334 y Fn(2)1113 -2319 y Fs(ps)8 b Fu(\))33 b(on-trac)m(k)1714 b(\(*\))0 -2486 y(holds)32 b(for)g(all)f Fs(ps)40 b Ft(2)33 b Fw(PState)p -Fu(.)43 b(Then)269 2654 y Fs(g)323 2669 y Fn(1)394 2654 -y Fu(sat)p 394 2667 126 4 v 15 x Fn(Stm)682 2654 y Fs(h)739 -2669 y Fn(1)811 2654 y Fu(and)32 b Fs(g)1054 2669 y Fn(2)1126 -2654 y Fu(sat)p 1126 2667 V 15 x Fn(Stm)1413 2654 y Fs(h)1470 -2669 y Fn(2)1543 2654 y Fu(imply)e Fs(g)1870 2669 y Fn(2)1942 -2654 y Ft(\016)i Fs(g)2078 2669 y Fn(1)2150 2654 y Fu(sat)p -2150 2667 V 15 x Fn(Stm)2437 2654 y Fs(h)2494 2669 y -Fn(2)2566 2654 y Ft(\016)g Fs(h)2705 2669 y Fn(1)p 0 -2774 3473 5 v 0 2978 a Fw(Pro)s(of:)37 b Fu(Let)c Fs(s)563 -2993 y Fn(1)603 2978 y Fu(,)f Fs(s)710 2993 y Fn(2)782 -2978 y Fu(and)h Fs(ps)40 b Fu(b)s(e)33 b(suc)m(h)h(that)244 -3181 y Fs(s)292 3196 y Fn(1)364 3181 y Ft(\021)f Fs(s)522 -3196 y Fn(2)594 3181 y Fu(rel)p 594 3194 109 4 v 32 w -Fs(ps)8 b Fu(,)32 b(and)h(\()p Fs(h)1177 3196 y Fn(2)1249 -3181 y Ft(\016)g Fs(h)1389 3196 y Fn(1)1428 3181 y Fu(\))g -Fs(ps)40 b Fu(is)32 b(prop)s(er)0 3384 y(Using)f(that)g -Fs(h)540 3399 y Fn(2)611 3384 y Fu(\()p Fs(h)706 3399 -y Fn(1)777 3384 y Fs(ps)8 b Fu(\))31 b(is)g(prop)s(er)g(w)m(e)h(get)f -(from)g(\(*\))f(that)h Fs(h)2306 3399 y Fn(1)2377 3384 -y Fs(ps)39 b Fu(m)m(ust)32 b(b)s(e)f(prop)s(er)h(as)f(w)m(ell)0 -3505 y(\(b)m(y)i(taking)f Fs(ps)41 b Fu(to)32 b(b)s(e)h -Fs(h)914 3520 y Fn(1)986 3505 y Fs(ps)8 b Fu(\).)43 b(So)33 -b(from)e(the)i(assumption)f Fs(g)2296 3520 y Fn(1)2367 -3505 y Fu(sat)p 2367 3518 126 4 v 2493 3520 a Fn(Stm)2655 -3505 y Fs(h)2712 3520 y Fn(1)2784 3505 y Fu(w)m(e)i(get)244 -3708 y Fs(g)298 3723 y Fn(1)369 3708 y Fs(s)417 3723 -y Fn(1)489 3708 y Fu(=)f(undef)p 598 3721 236 4 v 33 -w(and)g Fs(g)1110 3723 y Fn(1)1181 3708 y Fs(s)1229 3723 -y Fn(2)1301 3708 y Fu(=)g(undef)p 1410 3721 V(,)g(or)244 -3876 y Fs(g)298 3891 y Fn(1)369 3876 y Fs(s)417 3891 -y Fn(1)489 3876 y Ft(6)p Fu(=)g(undef)p 598 3889 V 33 -w(and)g Fs(g)1110 3891 y Fn(1)1181 3876 y Fs(s)1229 3891 -y Fn(2)1301 3876 y Ft(6)p Fu(=)g(undef)p 1410 3889 V -33 w(and)g Fs(g)1922 3891 y Fn(1)1993 3876 y Fs(s)2041 -3891 y Fn(1)2113 3876 y Ft(\021)g Fs(g)2277 3891 y Fn(1)2349 -3876 y Fs(s)2397 3891 y Fn(2)2469 3876 y Fu(rel)p 2469 -3889 109 4 v 32 w Fs(h)2667 3891 y Fn(1)2739 3876 y Fs(ps)0 -4079 y Fu(In)e(the)g(\014rst)h(case)f(w)m(e)h(are)f(\014nished)g(since) -h(it)d(follo)m(ws)h(that)g(\()p Fs(g)2302 4094 y Fn(2)2372 -4079 y Ft(\016)h Fs(g)2507 4094 y Fn(1)2546 4079 y Fu(\))f -Fs(s)2662 4094 y Fn(1)2733 4079 y Fu(=)g(undef)p 2839 -4092 236 4 v 32 w(and)h(that)0 4200 y(\()p Fs(g)92 4215 -y Fn(2)163 4200 y Ft(\016)i Fs(g)300 4215 y Fn(1)339 -4200 y Fu(\))f Fs(s)457 4215 y Fn(2)529 4200 y Fu(=)h(undef)p -638 4213 V(.)44 b(In)33 b(the)g(second)h(case)f(w)m(e)h(use)f(that)244 -4403 y Fs(g)298 4418 y Fn(1)369 4403 y Fs(s)417 4418 -y Fn(1)489 4403 y Ft(\021)g Fs(g)653 4418 y Fn(1)725 -4403 y Fs(s)773 4418 y Fn(2)845 4403 y Fu(rel)p 845 4416 -109 4 v 32 w Fs(h)1043 4418 y Fn(1)1115 4403 y Fs(ps)8 -b Fu(,)33 b(and)f Fs(h)1519 4418 y Fn(2)1559 4403 y Fu(\()p -Fs(h)1654 4418 y Fn(1)1726 4403 y Fs(ps)8 b Fu(\))33 -b(is)f(prop)s(er)0 4606 y(The)i(assumption)d Fs(g)770 -4621 y Fn(2)842 4606 y Fu(sat)p 842 4619 126 4 v 15 x -Fn(Stm)1129 4606 y Fs(h)1186 4621 y Fn(2)1259 4606 y -Fu(then)i(giv)m(es)244 4810 y Fs(g)298 4825 y Fn(2)369 -4810 y Fu(\()p Fs(g)461 4825 y Fn(1)533 4810 y Fs(s)581 -4825 y Fn(1)620 4810 y Fu(\))g(=)f(undef)p 799 4823 236 -4 v 33 w(and)h Fs(g)1311 4825 y Fn(2)1383 4810 y Fu(\()p -Fs(g)1475 4825 y Fn(1)1546 4810 y Fs(s)1594 4825 y Fn(2)1634 -4810 y Fu(\))f(=)h(undef)p 1813 4823 V(,)g(or)244 4977 -y Fs(g)298 4992 y Fn(2)369 4977 y Fu(\()p Fs(g)461 4992 -y Fn(1)533 4977 y Fs(s)581 4992 y Fn(1)620 4977 y Fu(\))g -Ft(6)p Fu(=)f(undef)p 799 4990 V 33 w(and)h Fs(g)1311 -4992 y Fn(2)1383 4977 y Fu(\()p Fs(g)1475 4992 y Fn(1)1546 -4977 y Fs(s)1594 4992 y Fn(2)1634 4977 y Fu(\))f Ft(6)p -Fu(=)h(undef)p 1813 4990 V 33 w(and)513 5145 y Fs(g)567 -5160 y Fn(2)606 5145 y Fu(\()p Fs(g)698 5160 y Fn(1)769 -5145 y Fs(s)817 5160 y Fn(1)857 5145 y Fu(\))f Ft(\021)h -Fs(g)1091 5160 y Fn(2)1130 5145 y Fu(\()p Fs(g)1222 5160 -y Fn(1)1294 5145 y Fs(s)1342 5160 y Fn(2)1381 5145 y -Fu(\))g(rel)p 1452 5158 109 4 v 31 w Fs(h)1649 5160 y -Fn(2)1689 5145 y Fu(\()p Fs(h)1784 5160 y Fn(1)1856 5145 -y Fs(ps)8 b Fu(\))0 5348 y(In)33 b(b)s(oth)f(cases)i(w)m(e)g(ha)m(v)m -(e)g(completed)e(the)h(pro)s(of.)1548 b Fh(2)p eop -%%Page: 156 166 -156 165 bop 251 130 a Fw(156)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 3473 -5 v 283 667 a(Lemma)i(5.33)49 b Fu(Assume)31 b(that)g -Fs(g)1552 682 y Fn(1)1591 667 y Fu(,)g Fs(g)1703 682 -y Fn(2)1742 667 y Fu(:)43 b Fw(State)31 b Fo(,)-17 b -Ft(!)31 b Fw(State)p Fu(,)g(and)h Fs(g)9 b Fu(:)42 b -Fw(State)31 b Ft(!)f Fw(T)h Fu(and)g(that)283 787 y Fs(h)340 -802 y Fn(1)380 787 y Fu(,)i Fs(h)497 802 y Fn(2)536 787 -y Fu(:)44 b Fw(PState)32 b Ft(!)g Fw(PState)g Fu(and)h -Fs(f)21 b Fu(:)43 b Fw(PState)33 b Ft(!)f Fw(P)p Fu(.)g(Then)552 -955 y Fs(g)41 b Fu(sat)p 638 968 126 4 v 15 x Fn(Bexp)958 -955 y Fs(f)21 b Fu(,)32 b Fs(g)1122 970 y Fn(1)1194 955 -y Fu(sat)p 1194 968 V 15 x Fn(Stm)1481 955 y Fs(h)1538 -970 y Fn(1)1611 955 y Fu(and)g Fs(g)1854 970 y Fn(2)1926 -955 y Fu(sat)p 1926 968 V 15 x Fn(Stm)2213 955 y Fs(h)2270 -970 y Fn(2)2342 955 y Fu(imply)788 1122 y(cond\()p Fs(g)9 -b Fu(,)33 b Fs(g)1194 1137 y Fn(1)1233 1122 y Fu(,)g -Fs(g)1347 1137 y Fn(2)1386 1122 y Fu(\))f(sat)p 1456 -1135 V 15 x Fn(Stm)1743 1122 y Fu(cond)1943 1137 y Fn(P)1996 -1122 y Fu(\()p Fs(f)21 b Fu(,)33 b Fs(h)2202 1137 y Fn(1)2241 -1122 y Fu(,)g Fs(h)2358 1137 y Fn(2)2398 1122 y Fu(\))p -283 1243 3473 5 v 283 1423 a Fw(Pro)s(of:)38 b Fu(Let)32 -b Fs(s)846 1438 y Fn(1)886 1423 y Fu(,)h Fs(s)994 1438 -y Fn(2)1066 1423 y Fu(and)f Fs(ps)41 b Fu(b)s(e)33 b(suc)m(h)h(that)527 -1603 y Fs(s)575 1618 y Fn(1)647 1603 y Ft(\021)f Fs(s)805 -1618 y Fn(2)877 1603 y Fu(rel)p 877 1616 109 4 v 32 w -Fs(ps)41 b Fu(and)32 b(cond)1538 1618 y Fn(P)1591 1603 -y Fu(\()p Fs(f)21 b Fu(,)33 b Fs(h)1797 1618 y Fn(1)1836 -1603 y Fu(,)g Fs(h)1953 1618 y Fn(2)1993 1603 y Fu(\))f -Fs(ps)40 b Fu(is)33 b(prop)s(er)283 1783 y(First)42 b(assume)h(that)g -Fs(f)63 b(ps)51 b Fu(=)42 b Fb(d)p Fu(?.)74 b(This)43 -b(case)h(turns)f(out)g(to)f(b)s(e)h(imp)s(ossible)d(since)j(then)283 -1904 y(cond)483 1919 y Fn(P)536 1904 y Fu(\()p Fs(f)21 -b Fu(,)33 b Fs(h)742 1919 y Fn(1)781 1904 y Fu(,)g Fs(h)898 -1919 y Fn(2)938 1904 y Fu(\))f Fs(ps)40 b Fu(=)33 b Fb(lost)f -Fu(so)h(cond)1818 1919 y Fn(P)1871 1904 y Fu(\()p Fs(f)21 -b Fu(,)32 b Fs(h)2076 1919 y Fn(1)2116 1904 y Fu(,)h -Fs(h)2233 1919 y Fn(2)2272 1904 y Fu(\))g Fs(ps)40 b -Fu(cannot)33 b(b)s(e)g(prop)s(er.)430 2024 y(So)k(w)m(e)i(kno)m(w)g -(that)f Fs(f)59 b(ps)45 b Fu(=)38 b Fb(ok)p Fu(.)60 b(F)-8 -b(rom)36 b Fs(g)41 b Fu(sat)p 2094 2037 126 4 v 15 x -Fn(Bexp)2413 2024 y Fs(f)59 b Fu(w)m(e)39 b(then)f(get)g -Fs(g)j(s)3180 2039 y Fn(1)3252 2024 y Fu(=)33 b Fs(g)41 -b(s)3495 2039 y Fn(2)3534 2024 y Fu(.)59 b(W)-8 b(e)283 -2144 y(also)32 b(get)h(that)f(cond)1053 2159 y Fn(P)1106 -2144 y Fu(\()p Fs(f)20 b Fu(,)33 b Fs(h)1311 2159 y Fn(1)1351 -2144 y Fu(,)f Fs(h)1467 2159 y Fn(2)1507 2144 y Fu(\))g -Fs(ps)41 b Fu(=)32 b(\()p Fs(h)1911 2159 y Fn(1)1983 -2144 y Fs(ps)8 b Fu(\))33 b Ft(t)2218 2159 y Fn(PS)2342 -2144 y Fu(\()p Fs(h)2437 2159 y Fn(2)2509 2144 y Fs(ps)8 -b Fu(\).)43 b(Th)m(us)34 b Fs(h)3019 2159 y Fn(1)3092 -2144 y Fs(ps)40 b Fu(as)33 b(w)m(ell)e(as)i Fs(h)3716 -2159 y Fn(2)283 2265 y Fs(ps)41 b Fu(m)m(ust)32 b(b)s(e)g(prop)s(er)g -(since)h(otherwise)g(cond)1971 2280 y Fn(P)2024 2265 -y Fu(\()p Fs(f)20 b Fu(,)33 b Fs(h)2229 2280 y Fn(1)2268 -2265 y Fu(,)g Fs(h)2385 2280 y Fn(2)2424 2265 y Fu(\))f -Fs(ps)41 b Fu(cannot)32 b(b)s(e)g(prop)s(er.)44 b(No)m(w)33 -b(let)283 2385 y(i)f(denote)h(the)g(branc)m(h)h(c)m(hosen)g(b)m(y)g -(the)f(test)g Fs(g)9 b Fu(.)43 b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)527 -2565 y Fs(s)575 2580 y Fn(1)647 2565 y Ft(\021)g Fs(s)805 -2580 y Fn(2)877 2565 y Fu(rel)p 877 2578 109 4 v 32 w -Fs(ps)41 b Fu(and)32 b Fs(h)1395 2580 y Fn(i)1452 2565 -y Fs(ps)40 b Fu(is)32 b(prop)s(er)283 2745 y(F)-8 b(rom)32 -b(the)h(assumption)e Fs(g)1277 2760 y Fn(i)1333 2745 -y Fu(sat)p 1333 2758 126 4 v 15 x Fn(Stm)1621 2745 y -Fs(h)1678 2760 y Fn(i)1734 2745 y Fu(w)m(e)j(therefore)f(get)527 -2926 y Fs(g)581 2941 y Fn(i)637 2926 y Fs(s)685 2941 -y Fn(1)757 2926 y Fu(=)g(undef)p 866 2939 236 4 v 33 -w(and)g Fs(g)1378 2941 y Fn(i)1433 2926 y Fs(s)1481 2941 -y Fn(2)1553 2926 y Fu(=)g(undef)p 1662 2939 V 1 w(,)f(or)527 -3093 y Fs(g)581 3108 y Fn(i)637 3093 y Fs(s)685 3108 -y Fn(1)757 3093 y Ft(6)p Fu(=)h(undef)p 866 3106 V 33 -w(and)g Fs(g)1378 3108 y Fn(i)1433 3093 y Fs(s)1481 3108 -y Fn(2)1553 3093 y Ft(6)p Fu(=)g(undef)p 1662 3106 V -33 w(and)g Fs(g)2174 3108 y Fn(i)2230 3093 y Fs(s)2278 -3108 y Fn(1)2350 3093 y Ft(\021)g Fs(g)2514 3108 y Fn(i)2569 -3093 y Fs(s)2617 3108 y Fn(2)2690 3093 y Fu(rel)p 2690 -3106 109 4 v 31 w Fs(h)2887 3108 y Fn(i)2944 3093 y Fs(ps)283 -3273 y Fu(In)g(the)g(\014rst)g(case)h(w)m(e)g(get)527 -3454 y(cond\()p Fs(g)9 b Fu(,)33 b Fs(g)933 3469 y Fn(1)972 -3454 y Fu(,)g Fs(g)1086 3469 y Fn(2)1125 3454 y Fu(\))f -Fs(s)1243 3469 y Fn(1)1315 3454 y Fu(=)g(undef)p 1423 -3467 236 4 v 34 w(and)g(cond\()p Fs(g)9 b Fu(,)33 b Fs(g)2287 -3469 y Fn(1)2326 3454 y Fu(,)g Fs(g)2440 3469 y Fn(2)2479 -3454 y Fu(\))f Fs(s)2597 3469 y Fn(2)2669 3454 y Fu(=)h(undef)p -2778 3467 V 283 3634 a(and)g(w)m(e)h(are)e(\014nished.)45 -b(In)32 b(the)h(second)h(case)g(w)m(e)f(get)527 3814 -y(cond\()p Fs(g)9 b Fu(,)33 b Fs(g)933 3829 y Fn(1)972 -3814 y Fu(,)g Fs(g)1086 3829 y Fn(2)1125 3814 y Fu(\))f -Fs(s)1243 3829 y Fn(1)1315 3814 y Ft(6)p Fu(=)g(undef)p -1423 3827 V 34 w(and)g(cond\()p Fs(g)9 b Fu(,)33 b Fs(g)2287 -3829 y Fn(1)2326 3814 y Fu(,)g Fs(g)2440 3829 y Fn(2)2479 -3814 y Fu(\))f Fs(s)2597 3829 y Fn(2)2669 3814 y Ft(6)p -Fu(=)h(undef)p 2778 3827 V 283 3994 a(F)-8 b(urthermore,)33 -b(w)m(e)g(ha)m(v)m(e)527 4174 y(cond\()p Fs(g)9 b Fu(,)33 -b Fs(g)933 4189 y Fn(1)972 4174 y Fu(,)g Fs(g)1086 4189 -y Fn(2)1125 4174 y Fu(\))f Fs(s)1243 4189 y Fn(1)1315 -4174 y Ft(\021)h Fu(cond\()p Fs(g)9 b Fu(,)33 b Fs(g)1831 -4189 y Fn(1)1870 4174 y Fu(,)f Fs(g)1983 4189 y Fn(2)2022 -4174 y Fu(\))h Fs(s)2141 4189 y Fn(2)2213 4174 y Fu(rel)p -2213 4187 109 4 v 32 w Fs(h)2411 4189 y Fn(i)2467 4174 -y Fs(ps)283 4355 y Fu(Clearly)d Fs(h)677 4370 y Fn(i)732 -4355 y Fs(ps)38 b Ft(v)31 b Fs(h)1025 4370 y Fn(1)1095 -4355 y Fs(ps)38 b Ft(t)1290 4370 y Fn(PS)1412 4355 y -Fs(h)1469 4370 y Fn(2)1539 4355 y Fs(ps)g Fu(and)31 b(using)f(the)h -(de\014nition)e(of)h(cond)3014 4370 y Fn(P)3098 4355 -y Fu(and)g(Lemma)f(5.8)283 4475 y(w)m(e)34 b(get)527 -4655 y(cond\()p Fs(g)9 b Fu(,)33 b Fs(g)933 4670 y Fn(1)972 -4655 y Fu(,)g Fs(g)1086 4670 y Fn(2)1125 4655 y Fu(\))f -Fs(s)1243 4670 y Fn(1)1315 4655 y Ft(\021)h Fu(cond\()p -Fs(g)9 b Fu(,)33 b Fs(g)1831 4670 y Fn(1)1870 4655 y -Fu(,)f Fs(g)1983 4670 y Fn(2)2022 4655 y Fu(\))h Fs(s)2141 -4670 y Fn(2)2213 4655 y Fu(rel)p 2213 4668 V 32 w(cond)2554 -4670 y Fn(P)2606 4655 y Fu(\()p Fs(f)21 b Fu(,)33 b Fs(h)2812 -4670 y Fn(1)2852 4655 y Fu(,)f Fs(h)2968 4670 y Fn(2)3008 -4655 y Fu(\))g Fs(ps)283 4835 y Fu(as)h(required.)2902 -b Fh(2)430 5039 y Fu(W)-8 b(e)33 b(no)m(w)g(ha)m(v)m(e)h(the)f -(apparatus)g(needed)h(to)e(sho)m(w)i(the)f(safet)m(y)g(of)g -Ft(P)8 b(S)g Fu(:)283 5206 y Fw(Pro)s(of)56 b(of)g(Theorem)g(5.31:)76 -b Fu(W)-8 b(e)49 b(shall)e(sho)m(w)j(that)e Ft(S)2538 -5221 y Fn(ds)2609 5206 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])49 b(sat)p 2800 5219 126 4 v 15 x Fn(Stm)3103 5206 -y Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])49 -b(and)g(w)m(e)283 5327 y(pro)s(ceed)34 b(b)m(y)f(structural)g -(induction)e(on)i(the)g(statemen)m(t)g Fs(S)12 b Fu(.)283 -5494 y Fw(The)33 b(case)g Fs(x)45 b Fu(:=)32 b Fs(a)7 -b Fu(:)44 b(Let)33 b Fs(s)1315 5509 y Fn(1)1354 5494 -y Fu(,)g Fs(s)1462 5509 y Fn(2)1534 5494 y Fu(and)g Fs(ps)40 -b Fu(b)s(e)33 b(giv)m(en)g(suc)m(h)h(that)p eop -%%Page: 157 167 -157 166 bop 0 130 a Fw(5.3)112 b(Safet)m(y)38 b(of)g(the)f(analysis) -2007 b(157)p 0 193 3473 4 v 244 515 a Fs(s)292 530 y -Fn(1)364 515 y Ft(\021)33 b Fs(s)522 530 y Fn(2)594 515 -y Fu(rel)p 594 528 109 4 v 32 w Fs(ps)40 b Fu(and)33 -b Ft(P)8 b(S)g Fu([)-17 b([)q Fs(x)44 b Fu(:=)33 b Fs(a)7 -b Fu(])-17 b(])p Fs(ps)41 b Fu(is)32 b(prop)s(er)0 726 -y(It)c(then)h(follo)m(ws)e(from)f(Exercise)k(5.27)d(that)h -Fs(ps)36 b Fu(is)28 b(prop)s(er)g(b)s(ecause)h Ft(P)8 -b(S)g Fu([)-17 b([)q Fs(x)40 b Fu(:=)28 b Fs(a)7 b Fu(])-17 -b(])q Fs(ps)35 b Fu(is.)42 b(Also)0 847 y(b)s(oth)27 -b Ft(S)293 862 y Fn(ds)364 847 y Fu([)-17 b([)q Fs(x)44 -b Fu(:=)33 b Fs(a)7 b Fu(])-17 b(])q Fs(s)770 862 y Fn(1)837 -847 y Fu(and)27 b Ft(S)1089 862 y Fn(ds)1160 847 y Fu([)-17 -b([)q Fs(x)39 b Fu(:=)28 b Fs(a)7 b Fu(])-17 b(])p Fs(s)1555 -862 y Fn(2)1622 847 y Fu(will)26 b(b)s(e)h(de\014ned)i(so)f(w)m(e)h -(only)e(ha)m(v)m(e)i(to)e(sho)m(w)i(that)244 1058 y(\()p -Ft(S)350 1073 y Fn(ds)421 1058 y Fu([)-17 b([)p Fs(x)45 -b Fu(:=)32 b Fs(a)7 b Fu(])-17 b(])q Fs(s)826 1073 y -Fn(1)866 1058 y Fu(\))32 b Fs(y)42 b Fu(=)32 b(\()p Ft(S)1239 -1073 y Fn(ds)1310 1058 y Fu([)-17 b([)q Fs(x)44 b Fu(:=)32 -b Fs(a)7 b Fu(])-17 b(])q Fs(s)1715 1073 y Fn(2)1755 -1058 y Fu(\))32 b Fs(y)0 1269 y Fu(for)26 b(all)e Fs(y)35 -b Ft(2)26 b Fw(V)-9 b(ar)26 b Ft(\\)g Fu(OK\()p Ft(P)8 -b(S)g Fu([)-17 b([)q Fs(x)38 b Fu(:=)26 b Fs(a)7 b Fu(])-17 -b(])q Fs(ps)8 b Fu(\).)41 b(If)26 b Fs(y)35 b Ft(6)p -Fu(=)26 b Fs(x)38 b Fu(and)26 b Fo(y)j Fu(is)d(in)g(OK\()p -Ft(P)8 b(S)f Fu([)-17 b([)q Fs(x)38 b Fu(:=)26 b Fs(a)7 -b Fu(])-17 b(])q Fs(ps)8 b Fu(\))26 b(then)0 1389 y Fs(y)41 -b Ft(2)32 b Fu(OK\()p Fs(ps)8 b Fu(\))31 b(and)h(it)f(is)h(immediate)d -(from)h(the)j(de\014nition)d(of)i Ft(S)2411 1404 y Fn(ds)2514 -1389 y Fu(that)f(\()p Ft(S)2830 1404 y Fn(ds)2901 1389 -y Fu([)-17 b([)q Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 -b(])p Fs(s)3306 1404 y Fn(1)3346 1389 y Fu(\))32 b Fs(y)0 -1509 y Fu(=)40 b(\()p Ft(S)222 1524 y Fn(ds)293 1509 -y Fu([)-17 b([)q Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 -b(])p Fs(s)698 1524 y Fn(2)738 1509 y Fu(\))32 b Fs(y)9 -b Fu(.)67 b(If)41 b Fs(y)49 b Fu(=)40 b Fs(x)52 b Fu(and)41 -b Fs(x)52 b Fu(is)40 b(in)f(OK\()p Ft(P)8 b(S)g Fu([)-17 -b([)q Fs(x)52 b Fu(:=)40 b Fs(a)7 b Fu(])-17 b(])q Fs(ps)8 -b Fu(\))40 b(then)h(w)m(e)h(use)f(the)0 1630 y(assumption)32 -b Fs(s)564 1645 y Fn(1)636 1630 y Ft(\021)h Fs(s)794 -1645 y Fn(2)866 1630 y Fu(rel)p 866 1643 V 32 w Fs(ps)40 -b Fu(together)33 b(with)f(\()p Ft(P)8 b(S)h Fu([)-17 -b([)p Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 b(])q Fs(ps)8 -b Fu(\))32 b Fs(x)44 b Fu(=)33 b Fb(ok)g Fu(to)f(get)244 -1841 y Ft(A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q -Fs(s)504 1856 y Fn(1)576 1841 y Fu(=)32 b Ft(A)p Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)944 1856 y Fn(2)0 -2052 y Fu(b)m(y)41 b(F)-8 b(act)39 b(5.29.)64 b(Hence)41 -b(\()p Ft(S)1036 2067 y Fn(ds)1107 2052 y Fu([)-17 b([)p -Fs(x)52 b Fu(:=)39 b Fs(a)7 b Fu(])-17 b(])q Fs(s)1526 -2067 y Fn(1)1566 2052 y Fu(\))39 b Fs(y)49 b Fu(=)40 -b(\()p Ft(S)1960 2067 y Fn(ds)2032 2052 y Fu([)-17 b([)p -Fs(x)52 b Fu(:=)39 b Fs(a)7 b Fu(])-17 b(])q Fs(s)2451 -2067 y Fn(2)2490 2052 y Fu(\))40 b Fs(y)49 b Fu(follo)m(ws)38 -b(also)h(in)g(this)0 2172 y(case.)44 b(This)33 b(pro)m(v)m(es)h(the)f -(required)h(relationship.)0 2340 y Fw(The)f(case)g Fr(skip)p -Fu(:)45 b(Straigh)m(tforw)m(ard.)0 2507 y Fw(The)33 b(case)g -Fs(S)523 2522 y Fn(1)562 2507 y Fu(;)p Fs(S)656 2522 -y Fn(2)696 2507 y Fu(:)43 b(The)34 b(induction)d(h)m(yp)s(othesis)j -(applied)d(to)i Fs(S)2409 2522 y Fn(1)2480 2507 y Fu(and)g -Fs(S)2737 2522 y Fn(2)2809 2507 y Fu(giv)m(es)244 2718 -y Ft(S)312 2733 y Fn(ds)383 2718 y Fu([)-17 b([)p Fs(S)487 -2733 y Fn(1)527 2718 y Fu(])g(])33 b(sat)p 597 2731 126 -4 v 15 x Fn(Stm)884 2718 y Ft(P)8 b(S)g Fu([)-17 b([)q -Fs(S)1134 2733 y Fn(1)1173 2718 y Fu(])g(])33 b(and)g -Ft(S)1501 2733 y Fn(ds)1572 2718 y Fu([)-17 b([)q Fs(S)1677 -2733 y Fn(2)1716 2718 y Fu(])g(])33 b(sat)p 1786 2731 -V 15 x Fn(Stm)2073 2718 y Ft(P)8 b(S)h Fu([)-17 b([)p -Fs(S)2323 2733 y Fn(2)2363 2718 y Fu(])g(])0 2929 y(It)37 -b(follo)m(ws)e(from)g(Exercise)j(5.27)e(that)h Fs(ps)44 -b Fu(on-trac)m(k)37 b Ft(v)2082 2944 y Fn(P)2171 2929 -y Fu(\()p Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)2459 2944 -y Fn(2)2498 2929 y Fu(])g(])q Fs(ps)8 b Fu(\))36 b(on-trac)m(k)h(holds) -f(for)0 3050 y(all)30 b(prop)s(ert)m(y)k(states)f Fs(ps)8 -b Fu(.)44 b(The)33 b(desired)g(result)244 3261 y Ft(S)312 -3276 y Fn(ds)383 3261 y Fu([)-17 b([)p Fs(S)487 3276 -y Fn(2)527 3261 y Fu(])g(])33 b Ft(\016)f(S)747 3276 -y Fn(ds)818 3261 y Fu([)-17 b([)q Fs(S)923 3276 y Fn(1)962 -3261 y Fu(])g(])33 b(sat)p 1032 3274 V 15 x Fn(Stm)1319 -3261 y Ft(P)8 b(S)h Fu([)-17 b([)p Fs(S)1569 3276 y Fn(2)1609 -3261 y Fu(])g(])33 b Ft(\016)f(P)8 b(S)g Fu([)-17 b([)q -Fs(S)2011 3276 y Fn(1)2050 3261 y Fu(])g(])0 3472 y(then)33 -b(follo)m(ws)e(from)h(Lemma)f(5.32.)0 3639 y Fw(The)i(case)g -Fr(if)g Fs(b)39 b Fr(then)33 b Fs(S)979 3654 y Fn(1)1051 -3639 y Fr(else)g Fs(S)1355 3654 y Fn(2)1395 3639 y Fu(:)43 -b(F)-8 b(rom)31 b(Exercise)j(5.30)e(w)m(e)i(ha)m(v)m(e)244 -3850 y Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 -b(sat)p 471 3863 V 15 x Fn(Bexp)791 3850 y Ft(P)8 b(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])0 4061 y(and)33 -b(the)g(induction)e(h)m(yp)s(othesis)j(applied)d(to)i -Fs(S)1800 4076 y Fn(1)1871 4061 y Fu(and)g Fs(S)2128 -4076 y Fn(2)2200 4061 y Fu(giv)m(es)244 4272 y Ft(S)312 -4287 y Fn(ds)383 4272 y Fu([)-17 b([)p Fs(S)487 4287 -y Fn(1)527 4272 y Fu(])g(])33 b(sat)p 597 4285 V 15 x -Fn(Stm)884 4272 y Ft(P)8 b(S)g Fu([)-17 b([)q Fs(S)1134 -4287 y Fn(1)1173 4272 y Fu(])g(])33 b(and)g Ft(S)1501 -4287 y Fn(ds)1572 4272 y Fu([)-17 b([)q Fs(S)1677 4287 -y Fn(2)1716 4272 y Fu(])g(])33 b(sat)p 1786 4285 V 15 -x Fn(Stm)2073 4272 y Ft(P)8 b(S)h Fu([)-17 b([)p Fs(S)2323 -4287 y Fn(2)2363 4272 y Fu(])g(])0 4483 y(The)34 b(desired)f(result)244 -4694 y(cond\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])q(,)33 b Ft(S)804 4709 y Fn(ds)876 4694 y Fu([)-17 -b([)p Fs(S)980 4709 y Fn(1)1019 4694 y Fu(])g(])q(,)33 -b Ft(S)1184 4709 y Fn(ds)1256 4694 y Fu([)-17 b([)p Fs(S)1360 -4709 y Fn(2)1399 4694 y Fu(])g(])q(\))32 b(sat)p 1507 -4707 V 1633 4709 a Fn(Stm)1795 4694 y Fu(cond)1995 4709 -y Fn(P)2047 4694 y Fu(\()p Ft(P)8 b(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(],)33 b Ft(P)8 b(S)g Fu([)-17 b([)q -Fs(S)2667 4709 y Fn(1)2706 4694 y Fu(])g(])q(,)32 b Ft(P)8 -b(S)h Fu([)-17 b([)p Fs(S)3053 4709 y Fn(2)3093 4694 -y Fu(])g(]\))0 4905 y(then)33 b(follo)m(ws)e(from)h(Lemma)f(5.33.)0 -5073 y Fw(The)i(case)g Fr(while)h Fs(b)k Fr(do)33 b Fs(S)12 -b Fu(:)33 b(W)-8 b(e)33 b(m)m(ust)f(pro)m(v)m(e)i(that)244 -5284 y(FIX\()p Fs(G)9 b Fu(\))33 b(sat)p 609 5297 V 15 -x Fn(Stm)896 5284 y Fu(FIX\()p Fs(H)16 b Fu(\))0 5494 -y(where)p eop -%%Page: 158 168 -158 167 bop 251 130 a Fw(158)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 527 515 a Fs(G)42 -b(g)f Fu(=)33 b(cond)g(\()p Ft(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(],)33 b Fs(g)41 b Ft(\016)32 b(S)1600 530 -y Fn(ds)1671 515 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b(id\))527 683 y Fs(H)49 b(h)40 b Fu(=)32 b(cond)1046 -698 y Fn(P)1131 683 y Fu(\()p Ft(P)8 b(B)t Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(],)33 b Fs(h)40 b Ft(\016)32 b(P)8 -b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 b(id\))283 -879 y(T)-8 b(o)33 b(do)g(this)f(w)m(e)h(recall)f(the)h(de\014nition)e -(of)h(the)h(least)f(\014xed)i(p)s(oin)m(ts:)527 1075 -y(FIX)f Fs(G)42 b Fu(=)957 1008 y Fg(F)1026 1075 y Ft(f)p -Fs(G)1160 1038 y Fn(n)1236 1075 y Fs(g)1290 1090 y Fn(0)1362 -1075 y Ft(j)32 b Fu(n)h Ft(\025)g Fu(0)f Ft(g)g Fu(where)i -Fs(g)2118 1090 y Fn(0)2190 1075 y Fs(s)40 b Fu(=)33 b(undef)p -2379 1088 236 4 v 33 w(for)f(all)e Fs(s)527 1242 y Fu(FIX)j -Fs(H)48 b Fu(=)961 1176 y Fg(F)1030 1242 y Ft(f)p Fs(H)1168 -1206 y Fn(n)1244 1242 y Fs(h)1301 1257 y Fn(0)1373 1242 -y Ft(j)32 b Fu(n)h Ft(\025)g Fu(0)f Ft(g)h Fu(where)g -Fs(h)2132 1257 y Fn(0)2205 1242 y Fs(ps)40 b Fu(=)32 -b Fb(init)h Fu(for)f(all)f Fs(ps)283 1438 y Fu(The)j(pro)s(of)e(pro)s -(ceeds)i(in)d(t)m(w)m(o)j(stages.)44 b(W)-8 b(e)33 b(b)s(egin)f(b)m(y)h -(pro)m(ving)f(that)552 1606 y Fs(G)636 1570 y Fn(n)712 -1606 y Fs(g)766 1621 y Fn(0)838 1606 y Fu(sat)p 838 1619 -126 4 v 15 x Fn(Stm)1125 1606 y Fu(FIX)h Fs(H)48 b Fu(for)32 -b(all)f(n)1842 b(\(*\))283 1773 y(and)33 b(then)552 1941 -y(FIX)g Fs(G)41 b Fu(sat)p 873 1954 V 999 1956 a Fn(Stm)1161 -1941 y Fu(FIX)32 b Fs(H)2145 b Fu(\(**\))283 2132 y(W)-8 -b(e)33 b(pro)m(v)m(e)h(\(*\))e(b)m(y)i(induction)d(on)i(n.)44 -b(F)-8 b(or)31 b(the)i(base)h(case)f(w)m(e)h(observ)m(e)g(that)527 -2328 y Fs(g)581 2343 y Fn(0)653 2328 y Fu(sat)p 653 2341 -V 15 x Fn(Stm)940 2328 y Fu(FIX)f Fs(H)283 2524 y Fu(holds)27 -b(trivially)d(since)k Fs(g)1184 2539 y Fn(0)1250 2524 -y Fs(s)35 b Fu(=)27 b(undef)p 1428 2537 236 4 v 27 w(for)g(all)e -(states)j Fs(s)8 b Fu(.)42 b(F)-8 b(or)26 b(the)h(induction)f(step)i(w) -m(e)g(assume)283 2644 y(that)527 2840 y Fs(G)611 2804 -y Fn(n)687 2840 y Fs(g)741 2855 y Fn(0)813 2840 y Fu(sat)p -813 2853 126 4 v 15 x Fn(Stm)1100 2840 y Fu(FIX)33 b -Fs(H)283 3036 y Fu(and)g(w)m(e)h(shall)d(pro)m(v)m(e)j(the)f(result)f -(for)g(n+1.)44 b(W)-8 b(e)33 b(ha)m(v)m(e)527 3232 y -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b(sat)p -754 3245 V 880 3247 a Fn(Bexp)1074 3232 y Ft(P)8 b(B)t -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])283 3427 y(from)32 -b(Exercise)i(5.30,)527 3623 y Ft(S)595 3638 y Fn(ds)666 -3623 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])33 b(sat)p -841 3636 V 15 x Fn(Stm)1128 3623 y Ft(P)8 b(S)g Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])283 3819 y(from)41 b(the)h(induction)f(h)m -(yp)s(othesis)i(applied)e(to)g(the)i(b)s(o)s(dy)e(of)h(the)g -Fr(while)p Fu(-lo)s(op,)i(and)e(it)e(is)283 3939 y(clear)33 -b(that)527 4135 y(id)f(sat)p 641 4148 V 15 x Fn(Stm)928 -4135 y Fu(id)283 4331 y(By)i(Exercise)f(5.27)f(w)m(e)i(also)e(ha)m(v)m -(e)527 4527 y Fs(ps)41 b Fu(on-trac)m(k)33 b Ft(v)1120 -4542 y Fn(P)1205 4527 y Fu(\(\(FIX)f Fs(H)16 b Fu(\))33 -b Fs(ps)8 b Fu(\))32 b(on-trac)m(k)283 4723 y(for)g(all)f(prop)s(ert)m -(y)i(states)h Fs(ps)8 b Fu(.)43 b(W)-8 b(e)33 b(then)g(obtain)552 -4890 y(cond\()p Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(],)33 b(\()p Fs(G)1167 4854 y Fn(n)1259 4890 y Fs(g)1313 -4905 y Fn(0)1352 4890 y Fu(\))p Ft(\016S)1508 4905 y -Fn(ds)1579 4890 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 -b(id\))e(sat)p 1932 4903 V 15 x Fn(Stm)2220 4890 y Fu(cond)2420 -4905 y Fn(P)2472 4890 y Fu(\()p Ft(P)8 b(B)t Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)33 b(\(FIX)f Fs(H)16 b Fu(\))p -Ft(\016P)8 b(S)g Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(],)33 -b(id\))283 5058 y(from)j(Lemmas)f(5.32)h(and)g(5.33)g(and)h(this)f(is)g -(indeed)g(the)h(desired)g(result)g(since)f(the)h(righ)m(t-)283 -5178 y(hand)c(side)g(amoun)m(ts)f(to)h Fs(H)48 b Fu(\(FIX)33 -b Fs(H)16 b Fu(\))32 b(whic)m(h)h(equals)g(FIX)g Fs(H)16 -b Fu(.)430 5299 y(Finally)30 b(w)m(e)j(m)m(ust)g(sho)m(w)h(\(**\).)43 -b(This)32 b(amoun)m(ts)h(to)f(sho)m(wing)527 5428 y Fg(F)597 -5494 y Fs(Y)52 b Fu(sat)p 721 5507 V 15 x Fn(Stm)1008 -5494 y Fu(FIX)33 b Fs(H)p eop -%%Page: 159 169 -159 168 bop 0 130 a Fw(5.3)112 b(Safet)m(y)38 b(of)g(the)f(analysis) -2007 b(159)p 0 193 3473 4 v 0 515 a Fu(where)34 b Fs(Y)52 -b Fu(=)32 b Ft(f)h Fs(G)681 479 y Fn(n)757 515 y Fs(g)811 -530 y Fn(0)882 515 y Ft(j)g Fu(n)f Ft(\025)h Fu(0)g Ft(g)p -Fu(.)43 b(So)32 b(assume)h(that)244 715 y Fs(s)292 730 -y Fn(1)364 715 y Ft(\021)g Fs(s)522 730 y Fn(2)594 715 -y Fu(rel)p 594 728 109 4 v 32 w Fs(ps)40 b Fu(and)33 -b(\(FIX)f Fs(H)16 b Fu(\))33 b Fs(ps)40 b Fu(is)32 b(prop)s(er)0 -914 y(Since)h Fs(g)41 b Fu(sat)p 341 927 126 4 v 15 x -Fn(Stm)628 914 y Fu(FIX)33 b Fs(H)48 b Fu(holds)32 b(for)h(all)d -Fs(g)41 b Ft(2)33 b Fs(Y)52 b Fu(b)m(y)34 b(\(*\))e(w)m(e)h(get)g(that) -f(either)244 1113 y Fs(g)41 b(s)378 1128 y Fn(1)450 1113 -y Fu(=)32 b(undef)p 558 1126 236 4 v 34 w(and)g Fs(g)41 -b(s)1150 1128 y Fn(2)1222 1113 y Fu(=)33 b(undef)p 1331 -1126 V 1 w(,)f(or)244 1281 y Fs(g)41 b(s)378 1296 y Fn(1)450 -1281 y Ft(6)p Fu(=)32 b(undef)p 558 1294 V 34 w(and)g -Fs(g)41 b(s)1150 1296 y Fn(2)1222 1281 y Ft(6)p Fu(=)33 -b(undef)p 1331 1294 V 33 w(and)g Fs(g)41 b(s)1923 1296 -y Fn(1)1995 1281 y Ft(\021)33 b Fs(g)41 b(s)2239 1296 -y Fn(2)2311 1281 y Fu(rel)p 2311 1294 109 4 v 32 w(\(FIX)32 -b Fs(H)16 b Fu(\))33 b Fs(ps)0 1480 y Fu(If)e(\()134 -1414 y Fg(F)203 1480 y Fs(Y)20 b Fu(\))31 b Fs(s)412 -1495 y Fn(1)482 1480 y Fu(=)g(undef)p 589 1493 236 4 -v 32 w(then)h Fs(g)39 b(s)1209 1495 y Fn(1)1280 1480 -y Fu(=)31 b(undef)p 1387 1493 V 32 w(for)f(all)f Fs(g)40 -b Ft(2)31 b Fs(Y)51 b Fu(and)31 b(thereb)m(y)i Fs(g)40 -b(s)2912 1495 y Fn(2)2982 1480 y Fu(=)31 b(undef)p 3089 -1493 V 32 w(for)0 1600 y(all)j Fs(g)46 b Ft(2)36 b Fs(Y)57 -b Fu(so)36 b(that)h(\()838 1534 y Fg(F)907 1600 y Fs(Y)19 -b Fu(\))37 b Fs(s)1121 1615 y Fn(2)1197 1600 y Fu(=)f(undef)p -1309 1613 V 1 w(.)55 b(Similarly)33 b(\()2084 1534 y -Fg(F)2153 1600 y Fs(Y)20 b Fu(\))36 b Fs(s)2367 1615 -y Fn(2)2443 1600 y Fu(=)g(undef)p 2555 1613 V 38 w(will)e(imply)h(that) -0 1721 y(\()38 1654 y Fg(F)107 1721 y Fs(Y)20 b Fu(\))39 -b Fs(s)324 1736 y Fn(1)404 1721 y Fu(=)g(undef)p 519 -1734 V 1 w(.)65 b(So)40 b(consider)g(no)m(w)h(the)f(case)g(where)i(\() -2304 1654 y Fg(F)2373 1721 y Fs(Y)19 b Fu(\))33 b Fs(s)2583 -1736 y Fn(1)2662 1721 y Ft(6)p Fu(=)40 b(undef)p 2778 -1734 V 40 w(as)g(w)m(ell)f(as)0 1841 y(\()38 1775 y Fg(F)107 -1841 y Fs(Y)20 b Fu(\))32 b Fs(s)317 1856 y Fn(2)389 -1841 y Ft(6)p Fu(=)h(undef)p 498 1854 V 33 w(and)g(let)f -Fs(x)44 b Ft(2)33 b Fw(V)-9 b(ar)32 b Ft(\\)h Fu(OK\(\(FIX)f -Fs(H)16 b Fu(\))32 b Fs(ps)8 b Fu(\).)44 b(By)33 b(Lemma)e(4.25)h(w)m -(e)i(ha)m(v)m(e)244 2040 y(graph\()526 1974 y Fg(F)595 -2040 y Fs(Y)20 b Fu(\))32 b(=)865 1974 y Fg(S)935 2040 -y Ft(f)g Fu(graph)g Fs(g)41 b Ft(j)33 b Fs(g)41 b Ft(2)33 -b Fs(Y)52 b Ft(g)0 2240 y Fu(and)41 b(\()236 2173 y Fg(F)305 -2240 y Fs(Y)19 b Fu(\))41 b Fs(s)523 2255 y Fn(i)587 -2240 y Ft(6)p Fu(=)f(undef)p 703 2253 V 41 w(therefore)h(sho)m(ws)h -(the)f(existence)h(of)e(an)g(elemen)m(t)h Fs(g)2968 2255 -y Fn(i)3031 2240 y Fu(in)f Fs(Y)60 b Fu(suc)m(h)0 2360 -y(that)38 b Fs(g)271 2375 y Fn(i)326 2360 y Fs(s)374 -2375 y Fn(i)431 2360 y Ft(6)p Fu(=)32 b(undef)p 539 2373 -V 39 w(and)37 b(\()1045 2294 y Fg(F)1114 2360 y Fs(Y)20 -b Fu(\))38 b Fs(s)1330 2375 y Fn(i)1391 2360 y Fu(=)g -Fs(g)1559 2375 y Fn(i)1620 2360 y Fs(s)1668 2375 y Fn(i)1729 -2360 y Fu(\(for)f(i)g(=)h(1,)h(2\).)58 b(Since)38 b Fs(Y)57 -b Fu(is)38 b(a)f(c)m(hain)h(either)0 2480 y Fs(g)54 2495 -y Fn(1)126 2480 y Ft(v)33 b Fs(g)290 2495 y Fn(2)361 -2480 y Fu(or)f Fs(g)534 2495 y Fn(2)606 2480 y Ft(v)h -Fs(g)770 2495 y Fn(1)841 2480 y Fu(so)g(let)f Fs(g)41 -b Fu(b)s(e)33 b(the)g(larger)e(of)h(the)h(t)m(w)m(o.)45 -b(W)-8 b(e)33 b(then)g(ha)m(v)m(e)294 2671 y(\(\()370 -2605 y Fg(F)439 2671 y Fs(Y)19 b Fu(\))33 b Fs(s)649 -2686 y Fn(1)688 2671 y Fu(\))g Fs(x)111 b Fu(=)33 b(\()p -Fs(g)1116 2686 y Fn(1)1187 2671 y Fs(s)1235 2686 y Fn(1)1275 -2671 y Fu(\))f Fs(x)255 b Fu(as)33 b(\()1803 2605 y Fg(F)1872 -2671 y Fs(Y)20 b Fu(\))32 b Fs(s)2082 2686 y Fn(1)2154 -2671 y Fu(=)h Fs(g)2317 2686 y Fn(1)2388 2671 y Fs(s)2436 -2686 y Fn(1)915 2839 y Fu(=)g(\()p Fs(g)41 b(s)1196 2854 -y Fn(1)1235 2839 y Fu(\))33 b Fs(x)294 b Fu(as)33 b Fs(g)1819 -2854 y Fn(1)1891 2839 y Ft(v)g Fs(g)41 b Fu(and)32 b -Fs(g)2330 2854 y Fn(1)2402 2839 y Fs(s)2450 2854 y Fn(1)2522 -2839 y Ft(6)p Fu(=)g(undef)p 2630 2852 V 915 3006 a(=)h(\()p -Fs(g)41 b(s)1196 3021 y Fn(2)1235 3006 y Fu(\))33 b Fs(x)294 -b Fu(as)33 b Fs(g)41 b(s)1899 3021 y Fn(1)1971 3006 y -Ft(\021)33 b Fs(g)41 b(s)2215 3021 y Fn(2)2287 3006 y -Fu(rel)p 2287 3019 109 4 v 32 w(\(FIX)33 b Fs(H)16 b -Fu(\))32 b Fs(ps)915 3174 y Fu(=)h(\()p Fs(g)1116 3189 -y Fn(2)1187 3174 y Fs(s)1235 3189 y Fn(2)1275 3174 y -Fu(\))f Fs(x)255 b Fu(as)33 b Fs(g)1819 3189 y Fn(2)1891 -3174 y Ft(v)g Fs(g)41 b Fu(and)32 b Fs(g)2330 3189 y -Fn(2)2402 3174 y Fs(s)2450 3189 y Fn(2)2522 3174 y Ft(6)p -Fu(=)g(undef)p 2630 3187 236 4 v 915 3342 a(=)h(\(\()1100 -3275 y Fg(F)1169 3342 y Fs(Y)19 b Fu(\))33 b Fs(s)1379 -3357 y Fn(2)1418 3342 y Fu(\))g Fs(x)111 b Fu(as)33 b(\()1803 -3275 y Fg(F)1872 3342 y Fs(Y)20 b Fu(\))32 b Fs(s)2082 -3357 y Fn(2)2154 3342 y Fu(=)h Fs(g)2317 3357 y Fn(2)2388 -3342 y Fs(s)2436 3357 y Fn(2)0 3534 y Fu(as)g(required.)44 -b(This)33 b(\014nishes)g(the)g(pro)s(of)f(of)g(the)h(theorem.)1217 -b Fh(2)146 3737 y Fu(It)31 b(follo)m(ws)e(from)g(this)g(theorem)h(that) -g(the)h(algorithm)c(listed)i(at)h(the)h(end)g(of)f(Section)g(5.2)0 -3858 y(is)c(indeed)h(correct.)42 b(The)28 b(pro)s(of)e(of)g(safet)m(y)i -(of)e(the)h(analysis)f(can)h(b)s(e)g(summarized)f(as)h(follo)m(ws:)p -0 4007 3470 4 v 0 4024 V -2 4231 4 208 v 15 4231 V 1088 -4152 a Fw(Pro)s(of)32 b(Summary)g(for)h(While)p Fu(:)p -3452 4231 V 3469 4231 V -2 4439 V 15 4439 V 1142 4360 -a Fw(Safet)m(y)g(of)g(Static)f(Analysis)p 3452 4439 V -3469 4439 V 0 4442 3470 4 v -2 4811 4 370 v 15 4811 V -66 4608 a Fu(1:)143 b(De\014ne)32 b(a)f(relation)e(sat)p -1022 4621 126 4 v 15 x Fn(Stm)1308 4608 y Fu(expressing)k(the)e -(relationship)e(b)s(et)m(w)m(een)34 b(the)d(functions)285 -4728 y(of)h Fw(State)h Fo(,)-17 b Ft(!)33 b Fw(State)f -Fu(and)h Fw(PState)f Ft(!)g Fw(PState)p Fu(.)p 3452 4811 -4 370 v 3469 4811 V -2 5220 4 409 v 15 5220 V 66 4896 -a(2:)143 b(Sho)m(w)32 b(that)g(the)f(relation)f(is)h(preserv)m(ed)i(b)m -(y)g(certain)e(pairs)f(of)h(auxiliary)e(functions)285 -5016 y(used)36 b(in)e(the)g(denotational)f(seman)m(tics)h(and)h(the)g -(static)f(analysis)g(\(Lemmas)f(5.32)285 5136 y(and)g(5.33\).)p -3452 5220 V 3469 5220 V -2 5508 4 289 v 15 5508 V 66 -5304 a(3:)143 b(Use)42 b Fs(structur)-5 b(al)44 b(induction)k -Fu(on)40 b(the)i(statemen)m(ts)g Fs(S)52 b Fu(to)41 b(sho)m(w)h(that)f -(the)g(relation)285 5424 y(holds)33 b(b)s(et)m(w)m(een)h(the)f(seman)m -(tics)g(and)g(the)g(analysis)f(of)g Fs(S)12 b Fu(.)p -3452 5508 V 3469 5508 V 0 5511 3470 4 v 0 5528 V eop -%%Page: 160 170 -160 169 bop 251 130 a Fw(160)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a(Exercise)h(5.34)49 -b Fu(Extend)40 b(the)e(pro)s(of)g(of)g(the)h(theorem)f(to)g(incorp)s -(orate)f(the)i(analysis)f(de-)283 636 y(v)m(elop)s(ed)33 -b(for)f Fr(repeat)j Fs(S)44 b Fr(until)34 b Fs(b)k Fu(in)32 -b(Exercise)i(5.25.)1383 b Fh(2)283 906 y Fw(Exercise)37 -b(5.35)49 b Fu(When)35 b(sp)s(ecifying)f Ft(P)8 b(S)42 -b Fu(in)33 b(the)i(previous)g(section)f(w)m(e)h(rejected)h(the)e(p)s -(os-)283 1026 y(sibilit)m(y)d(of)h(using)527 1259 y(cond)727 -1223 y Fi(0)727 1284 y Fn(P)780 1259 y Fu(\()p Fs(f)21 -b Fu(,)32 b Fs(h)985 1274 y Fn(1)1025 1259 y Fu(,)h Fs(h)1142 -1274 y Fn(2)1181 1259 y Fu(\))g Fs(ps)40 b Fu(=)33 b(\()p -Fs(h)1586 1274 y Fn(1)1658 1259 y Fs(ps)8 b Fu(\))32 -b Ft(t)1893 1274 y Fn(PS)2017 1259 y Fu(\()p Fs(h)2112 -1274 y Fn(2)2184 1259 y Fs(ps)8 b Fu(\))283 1492 y(rather)24 -b(than)f(cond)985 1507 y Fn(P)1038 1492 y Fu(.)40 b(F)-8 -b(ormally)20 b(sho)m(w)k(that)f(the)h(analysis)e(obtained)h(b)m(y)h -(using)f(cond)3420 1456 y Fi(0)3420 1517 y Fn(P)3496 -1492 y Fu(rather)283 1613 y(than)38 b(cond)716 1628 y -Fn(P)806 1613 y Fu(cannot)g(b)s(e)g(correct)g(in)f(the)h(sense)h(of)e -(Theorem)h(5.31.)58 b(Hin)m(t:)53 b(Consider)38 b(the)283 -1733 y(statemen)m(t)c Fs(S)804 1748 y Fn(12)911 1733 -y Fu(of)e(Example)g(5.3.)2102 b Fh(2)283 2003 y Fw(Exercise)37 -b(5.36)49 b Fu(In)37 b(the)h(ab)s(o)m(v)m(e)h(exercise)f(w)m(e)h(sa)m -(w)f(that)f(cond)2678 2018 y Fn(P)2768 2003 y Fu(could)g(not)g(b)s(e)h -(simpli\014ed)283 2124 y(so)32 b(as)f(to)g(ignore)g(the)h(test)f(for)g -(whether)i(the)f(condition)e(is)g(dubious)i(or)f(not.)43 -b(No)m(w)32 b(consider)283 2244 y(the)h(follo)m(wing)d(remedy)552 -2412 y(cond)752 2375 y Fi(0)752 2436 y Fn(P)805 2412 -y Fu(\()p Fs(f)21 b Fu(,)32 b Fs(h)1010 2427 y Fn(1)1050 -2412 y Fu(,)h Fs(h)1167 2427 y Fn(2)1206 2412 y Fu(\))g -Fs(ps)552 2745 y Fu(=)660 2496 y Fg(8)660 2570 y(>)660 -2595 y(>)660 2620 y(>)660 2645 y(<)660 2795 y(>)660 2819 -y(>)660 2844 y(>)660 2869 y(:)776 2576 y Fu(\()p Fs(h)871 -2591 y Fn(1)943 2576 y Fs(ps)8 b Fu(\))32 b Ft(t)1178 -2591 y Fn(PS)1302 2576 y Fu(\()p Fs(h)1397 2591 y Fn(2)1469 -2576 y Fs(ps)8 b Fu(\))83 b(if)31 b Fs(f)53 b(ps)41 b -Fu(=)32 b Fb(ok)776 2744 y Fu(\(\()p Fs(h)909 2759 y -Fn(1)981 2744 y Fu(\()p Fs(ps)8 b Fu([on-trac)m(k)p Ft(7!)p -Fb(d)p Fu(?]\)\))43 b Ft(t)1917 2759 y Fn(PS)2041 2744 -y Fu(\()p Fs(h)2136 2759 y Fn(2)2208 2744 y Fu(\()p Fs(ps)8 -b Fu([on-trac)m(k)p Ft(7!)p Fb(d)p Fu(?]\)\)\)[on-trac)m(k)p -Ft(7!)p Fb(ok)p Fu(])1688 2912 y(if)31 b Fs(f)53 b(ps)41 -b Fu(=)32 b Fb(d)p Fu(?)283 3076 y(Giv)m(e)37 b(an)g(example)f -(statemen)m(t)h(where)h(cond)1985 3040 y Fi(0)1985 3101 -y Fn(P)2074 3076 y Fu(is)f(preferable)f(to)h(cond)2957 -3091 y Fn(P)3009 3076 y Fu(.)56 b(Do)s(es)37 b(the)g(safet)m(y)283 -3197 y(pro)s(of)43 b(carry)h(through)f(when)i(cond)1657 -3212 y Fn(P)1753 3197 y Fu(is)e(replaced)h(b)m(y)g(cond)2604 -3160 y Fi(0)2604 3221 y Fn(P)2657 3197 y Fu(?)76 b(If)43 -b(not,)k(suggest)d(ho)m(w)g(to)283 3317 y(w)m(eak)m(en)35 -b(the)e(safet)m(y)h(predicate)f(suc)m(h)h(that)e(another)h(safet)m(y)g -(result)g(ma)m(y)f(b)s(e)h(pro)m(v)m(ed.)194 b Fh(2)283 -3686 y Fj(5.4)161 b(Bounded)52 b(iteration)283 3918 y -Fu(In)32 b(Example)e(5.16)h(w)m(e)h(analysed)f(the)g(factorial)e -(statemen)m(t)i(and)g(sa)m(w)h(that)f(the)h(\014xed)g(p)s(oin)m(t)283 -4038 y(computation)26 b(stabilizes)f(after)i(a)f(\014nite)h(n)m(um)m(b) -s(er)g(of)f(unfoldings,)h(irresp)s(ectiv)m(e)g(of)f(the)h(prop-)283 -4158 y(ert)m(y)32 b(state)e(that)g(is)g(supplied)g(as)h(argumen)m(t.)42 -b(This)31 b(is)e(quite)i(unlik)m(e)f(what)g(w)m(as)h(the)g(case)g(for) -283 4279 y(the)25 b(denotational)d(seman)m(tics)j(of)f(Chapter)h(4,)h -(where)f(the)g(n)m(um)m(b)s(er)f(of)g(unfoldings)f(dep)s(ended)283 -4399 y(on)33 b(the)g(state)g(and)g(w)m(as)h(un)m(b)s(ounded.)45 -b(A)33 b(similar)c(example)k(w)m(as)g(studied)g(in)f(Exercise)i(5.24) -283 4520 y(where)48 b(w)m(e)f(sa)m(w)h(that)e(the)g(analysis)g(w)m -(ould)g(terminate)f(up)s(on)h(a)g(statemen)m(t)h(that)f(nev)m(er)283 -4640 y(terminated)32 b(in)g(the)h(denotational)d(seman)m(tics)j(of)f -(Chapter)i(4.)430 4766 y(This)24 b(is)f(an)h(instance)g(of)f(a)h -(general)f(phenomenon)i(and)e(w)m(e)i(shall)e(sho)m(w)i(t)m(w)m(o)f -(prop)s(ositions)283 4887 y(ab)s(out)32 b(this.)42 b(The)33 -b(\014rst)f(prop)s(osition)e(sa)m(ys)j(that)e(for)h(eac)m(h)g(statemen) -m(t)g Fr(while)h Fs(b)38 b Fr(do)32 b Fs(S)43 b Fu(there)283 -5007 y(is)d(a)f(constan)m(t)h(k)g(suc)m(h)h(that)f(the)g(kth)g -(unfolding)e(will)f(indeed)j(b)s(e)g(the)g(\014xed)g(p)s(oin)m(t.)64 -b(The)283 5127 y(second)35 b(prop)s(osition)c(is)h(considerably)h -(harder)g(and)g(sa)m(ys)h(that)f(it)f(is)g(p)s(ossible)h(to)f(tak)m(e)i -(k)f(to)283 5248 y(b)s(e)g(\(m+1\))699 5212 y Fn(2)770 -5248 y Fu(where)h(m)e(is)g(the)h(n)m(um)m(b)s(er)g(of)f(distinct)g(v)-5 -b(ariables)31 b(in)h Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 -b Fu(.)430 5374 y(T)-8 b(o)35 b(prepare)h(for)f(the)h(\014rst)g(prop)s -(osition)e(w)m(e)i(need)h(an)e(inductiv)m(e)h(de\014nition)e(of)h(the)h -(set)283 5494 y(FV\()p Fs(S)12 b Fu(\))32 b(of)h(free)g(v)-5 -b(ariables)31 b(in)h(the)h(statemen)m(t)g Fs(S)12 b Fu(:)p -eop -%%Page: 161 171 -161 170 bop 0 130 a Fw(5.4)112 b(Bounded)39 b(iteration)2154 -b(161)p 0 193 3473 4 v 294 500 a Fu(FV\()p Fs(x)44 b -Fu(:=)32 b Fs(a)7 b Fu(\))757 b(=)99 b(FV\()p Fs(a)7 -b Fu(\))33 b Ft([)g(f)p Fs(x)12 b Ft(g)294 668 y Fu(FV\()p -Fr(skip)p Fu(\))834 b(=)99 b Ft(;)294 835 y Fu(FV\()p -Fs(S)536 850 y Fn(1)575 835 y Fu(;)p Fs(S)669 850 y Fn(2)708 -835 y Fu(\))799 b(=)99 b(FV\()p Fs(S)1962 850 y Fn(1)2001 -835 y Fu(\))33 b Ft([)g Fu(FV\()p Fs(S)2413 850 y Fn(2)2452 -835 y Fu(\))294 1003 y(FV\()p Fr(if)f Fs(b)39 b Fr(then)33 -b Fs(S)991 1018 y Fn(1)1063 1003 y Fr(else)h Fs(S)1368 -1018 y Fn(2)1407 1003 y Fu(\))100 b(=)f(FV\()p Fs(b)6 -b Fu(\))32 b Ft([)h Fu(FV\()p Fs(S)2357 1018 y Fn(1)2396 -1003 y Fu(\))g Ft([)g Fu(FV\()p Fs(S)2808 1018 y Fn(2)2847 -1003 y Fu(\))294 1171 y(FV\()p Fr(while)g Fs(b)39 b Fr(do)33 -b Fs(S)12 b Fu(\))464 b(=)99 b(FV\()p Fs(b)6 b Fu(\))32 -b Ft([)h Fu(FV\()p Fs(S)12 b Fu(\))0 1355 y(Our)24 b(\014rst)g(observ) --5 b(ation)24 b(is)f(that)h(w)m(e)h(can)f(rep)s(eat)g(the)g(dev)m -(elopmen)m(t)h(of)e(the)h(previous)h(sections)0 1475 -y(if)41 b(w)m(e)i(restrict)f(the)g(prop)s(ert)m(y)h(states)g(to)e -(consider)i(only)e(v)-5 b(ariables)41 b(that)g(are)h(free)h(in)e(the)0 -1596 y(o)m(v)m(erall)33 b(program.)45 b(So)33 b(let)g -Fs(X)49 b Ft(\022)34 b Fw(V)-9 b(ar)33 b Fu(b)s(e)h(a)f(\014nite)h(set) -g(of)f(v)-5 b(ariables)32 b(and)i(de\014ne)g Fw(PState)3405 -1611 y Fc(X)0 1716 y Fu(to)e(b)s(e)244 1907 y Fw(PState)576 -1922 y Fc(X)675 1907 y Fu(=)h(\()p Fs(X)48 b Ft([)33 -b(f)p Fu(on-trac)m(k)p Ft(g)p Fu(\))g Ft(!)f Fw(P)0 2119 -y(Exercise)k(5.37)49 b(\(Essen)m(tial\))24 b Fu(De\014ne)i -Fw(Aexp)1789 2134 y Fc(X)1882 2119 y Fu(to)g(b)s(e)g(the)g(set)h(of)e -(arithmetic)f(expressions)0 2239 y Fs(a)30 b Fu(of)22 -b Fw(Aexp)g Fu(with)g(FV\()p Fs(a)7 b Fu(\))22 b Ft(\022)h -Fs(X)39 b Fu(and)22 b(let)g Fw(Bexp)1737 2254 y Fc(X)1827 -2239 y Fu(and)g Fw(Stm)2206 2254 y Fc(X)2295 2239 y Fu(b)s(e)h -(de\014ned)h(similarly)-8 b(.)36 b(Mo)s(dify)0 2360 y(T)-8 -b(ables)33 b(5.1)f(and)h(5.2)f(to)g(de\014ne)i(analysis)e(functions)269 -2527 y Ft(P)8 b(A)426 2542 y Fc(X)493 2527 y Fu(:)44 -b Fw(Aexp)821 2542 y Fc(X)921 2527 y Ft(!)32 b Fw(PState)1385 -2542 y Fc(X)1484 2527 y Ft(!)g Fw(P)269 2695 y Ft(P)8 -b(B)415 2710 y Fc(X)482 2695 y Fu(:)44 b Fw(Bexp)805 -2710 y Fc(X)905 2695 y Ft(!)32 b Fw(PState)1369 2710 -y Fc(X)1468 2695 y Ft(!)g Fw(P)269 2863 y Ft(P)8 b(S)414 -2878 y Fc(X)481 2863 y Fu(:)44 b Fw(Stm)752 2878 y Fc(X)851 -2863 y Ft(!)32 b Fw(PState)1315 2878 y Fc(X)1415 2863 -y Ft(!)g Fw(PState)1879 2878 y Fc(X)3398 2863 y Fh(2)146 -3074 y Fu(The)g(connection)e(b)s(et)m(w)m(een)j(the)e(analysis)f -(functions)g(of)g(the)h(ab)s(o)m(v)m(e)g(exercise)h(and)f(those)0 -3195 y(of)h(T)-8 b(ables)32 b(5.1)f(and)i(5.2)e(should)h(b)s(e)g(in)m -(tuitiv)m(ely)f(clear.)43 b(F)-8 b(ormally)29 b(the)j(connection)g(ma)m -(y)g(b)s(e)0 3315 y(w)m(ork)m(ed)i(out)f(as)f(follo)m(ws:)0 -3527 y Fw(Exercise)k(5.38)49 b Fu(*)33 b(De\014ne)244 -3718 y(extend)527 3733 y Fc(X)596 3718 y Fu(:)43 b Fw(PState)998 -3733 y Fc(X)1098 3718 y Ft(!)32 b Fw(PState)0 3909 y -Fu(b)m(y)244 4182 y(\(extend)565 4197 y Fc(X)666 4182 -y Fs(ps)8 b Fu(\))33 b Fs(x)44 b Fu(=)1032 4007 y Fg(8)1032 -4082 y(<)1032 4232 y(:)1148 4097 y Fs(ps)c(x)390 b Fu(if)32 -b Fs(x)44 b Ft(2)33 b Fs(X)49 b Ft([)33 b(f)p Fu(on-trac)m(k)p -Ft(g)1148 4265 y Fs(ps)40 b Fu(on-trac)m(k)83 b(otherwise)0 -4455 y(Sho)m(w)33 b(that)294 4618 y Ft(P)8 b(A)p Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])34 b Ft(\016)e Fu(extend)981 -4633 y Fc(X)1150 4618 y Fu(=)99 b Ft(P)8 b(A)1482 4633 -y Fc(X)1549 4618 y Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])294 -4785 y Ft(P)8 b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])33 b Ft(\016)g Fu(extend)964 4800 y Fc(X)1150 4785 -y Fu(=)99 b Ft(P)8 b(B)1471 4800 y Fc(X)1538 4785 y Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])294 4953 y Ft(P)8 b(S)g Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(])33 b Ft(\016)f Fu(extend)979 -4968 y Fc(X)1150 4953 y Fu(=)99 b(extend)1608 4968 y -Fc(X)1709 4953 y Ft(\016)33 b(P)8 b(S)1937 4968 y Fc(X)2004 -4953 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 b(])0 5143 y(whenev)m(er)35 -b(FV\()p Fs(a)7 b Fu(\))33 b Ft(\022)g Fs(X)16 b Fu(,)32 -b(FV\()p Fs(b)6 b Fu(\))32 b Ft(\022)h Fs(X)49 b Fu(and)33 -b(FV\()p Fs(S)12 b Fu(\))32 b Ft(\022)h Fs(X)16 b Fu(.)1156 -b Fh(2)146 5355 y Fu(The)37 b(prop)s(ert)m(y)f(states)h(of)e -Fw(PState)1478 5370 y Fc(X)1581 5355 y Fu(are)g(only)h(de\014ned)h(on)e -(a)h(\014nite)f(n)m(um)m(b)s(er)h(of)f(argu-)0 5475 y(men)m(ts)e(b)s -(ecause)h Fs(X)49 b Fu(is)32 b(a)g(\014nite)g(set.)45 -b(This)32 b(is)g(the)h(k)m(ey)i(to)d(sho)m(wing:)p eop -%%Page: 162 172 -162 171 bop 251 130 a Fw(162)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 3473 -5 v 283 665 a(Prop)s(osition)g(5.39)49 b Fu(F)-8 b(or)47 -b(eac)m(h)h(statemen)m(t)g Fr(while)g Fs(b)53 b Fr(do)48 -b Fs(S)59 b Fu(of)47 b Fw(While)f Fu(there)i(exists)g(a)283 -786 y(constan)m(t)34 b(k)f(suc)m(h)h(that)527 965 y Ft(P)8 -b(S)673 980 y Fc(X)740 965 y Fu([)-17 b([)q Fr(while)33 -b Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b(=)f -Fs(H)1618 928 y Fn(k)1692 965 y Ft(?)283 1143 y Fu(where)i -Fs(H)49 b(h)40 b Fu(=)32 b(cond)1084 1158 y Fn(P)1137 -1143 y Fu(\()p Ft(P)8 b(B)1321 1158 y Fc(X)1388 1143 -y Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fs(h)39 -b Ft(\016)33 b(P)8 b(S)1891 1158 y Fc(X)1958 1143 y Fu([)-17 -b([)q Fs(S)12 b Fu(])-17 b(],)33 b(id\))f(and)h(FV\()p -Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(\))32 b -Ft(\022)h Fs(X)16 b Fu(.)p 283 1264 V 283 1443 a(Note)33 -b(that)g(using)f(the)h(result)f(of)g(Exercise)i(5.38)e(w)m(e)i(could)e -(disp)s(ense)i(with)e Fs(X)49 b Fu(altogether.)283 1610 -y Fw(Pro)s(of:)36 b Fu(Let)c(m)e(b)s(e)h(the)h(cardinalit)m(y)d(of)i -Fs(X)16 b Fu(.)31 b(Then)i(there)f(will)d(b)s(e)i(2)2813 -1574 y Fn(m+1)2997 1610 y Fs(di\013er)-5 b(ent)40 b Fu(prop)s(ert)m(y) -283 1731 y(states)34 b(in)e Fw(PState)1007 1746 y Fc(X)1074 -1731 y Fu(.)43 b(This)33 b(means)g(that)f Fw(PState)2209 -1746 y Fc(X)2308 1731 y Ft(!)h Fw(PState)2773 1746 y -Fc(X)2872 1731 y Fu(will)d(con)m(tain)527 1910 y(k)j(=)g(\(2)807 -1874 y Fn(m+1)960 1910 y Fu(\))998 1874 y Fn(2)1033 1850 -y Fd(m+1)283 2089 y Fu(di\013eren)m(t)f(functions.)44 -b(It)31 b(follo)m(ws)g(that)g(there)i(can)e(b)s(e)h(at)g(most)f(k)h -(di\013eren)m(t)g(iterands)f Fs(H)3603 2052 y Fn(n)3678 -2089 y Ft(?)283 2209 y Fu(of)38 b Fs(H)16 b Fu(.)39 b(Since)f -Fs(H)54 b Fu(is)38 b(monotone)g(Exercise)h(5.18)f(giv)m(es)h(that)f -Fs(H)2651 2173 y Fn(k)2731 2209 y Ft(?)g Fu(m)m(ust)h(b)s(e)f(equal)g -(to)g(the)283 2329 y(\014xed)c(p)s(oin)m(t)e(FIX)g Fs(H)16 -b Fu(.)33 b(This)g(concludes)g(the)g(pro)s(of)f(of)g(the)h(prop)s -(osition.)682 b Fh(2)283 2697 y Fp(Making)46 b(it)f(practical)283 -2882 y Fu(The)38 b(constan)m(t)g(k)f(determined)g(ab)s(o)m(v)m(e)g(is)g -(a)f(safe)h(upp)s(er)g(b)s(ound)g(but)g(is)g(rather)g(large)e(ev)m(en) -283 3002 y(for)43 b(small)e(statemen)m(ts.)77 b(As)44 -b(an)f(example)g(it)f(sa)m(ys)i(that)g(the)f(16,777,216th)f(iteration)f -(of)283 3123 y(the)d(functional)e(will)e(su\016ce)39 -b(for)e(the)h(factorial)c(statemen)m(t)k(and)f(this)g(is)g(quite)g -(useless)h(for)283 3243 y(practical)h(purp)s(oses.)69 -b(In)40 b(the)h(remainder)f(of)f(this)i(section)f(w)m(e)h(shall)e(sho)m -(w)j(that)e(a)g(m)m(uc)m(h)283 3363 y(smaller)31 b(constan)m(t)i(can)g -(b)s(e)g(used:)p 283 3484 V 283 3634 a Fw(Prop)s(osition)j(5.40)49 -b Fu(F)-8 b(or)32 b(eac)m(h)h(statemen)m(t)g Fr(while)h -Fs(b)39 b Fr(do)33 b Fs(S)44 b Fu(of)32 b Fw(While)f -Fu(w)m(e)j(ha)m(v)m(e)527 3812 y Ft(P)8 b(S)673 3827 -y Fc(X)740 3812 y Fu([)-17 b([)q Fr(while)33 b Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b(=)f Fs(H)1618 -3776 y Fn(k)1692 3812 y Ft(?)283 3991 y Fu(where)k Fs(H)50 -b(h)42 b Fu(=)34 b(cond)1091 4006 y Fn(P)1144 3991 y -Fu(\()p Ft(P)8 b(B)1328 4006 y Fc(X)1395 3991 y Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(],)35 b Fs(h)42 b Ft(\016)34 -b(P)8 b(S)1904 4006 y Fc(X)1971 3991 y Fu([)-17 b([)q -Fs(S)12 b Fu(])-17 b(],)35 b(id\),)f(k)h(=)f(\(m+1\))2835 -3955 y Fn(2)2873 3991 y Fu(,)h(and)g(m)e(is)h(the)h(cardi-)283 -4112 y(nalit)m(y)d(of)g(the)h(set)g Fs(X)49 b Fu(=)32 -b(FV\()p Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\).)p -283 4232 V 283 4411 a(Note)33 b(that)g(using)f(the)h(result)f(of)g -(Exercise)i(5.38)e(w)m(e)i(could)e(disp)s(ense)i(with)e -Fs(X)49 b Fu(altogether.)430 4531 y(F)-8 b(or)36 b(the)i(factorial)d -(statemen)m(t)j(this)f(will)e(imply)h(that)h(FIX)g Fs(H)54 -b Fu(=)37 b Fs(H)3042 4495 y Fn(9)3119 4531 y Ft(?)h -Fu(so)f(only)g(nine)283 4652 y(iterands)25 b(need)g(to)f(b)s(e)h -(constructed.)42 b(This)25 b(ma)m(y)f(b)s(e)g(compared)h(with)f(the)g -(observ)-5 b(ation)24 b(made)283 4772 y(in)32 b(Example)g(5.16)g(that)h -(already)f Fs(H)1652 4736 y Fn(1)1724 4772 y Ft(?)h Fu(is)f(the)h -(least)f(\014xed)i(p)s(oin)m(t.)430 4893 y(The)i(pro)s(of)e(of)h(Prop)s -(osition)f(5.40)g(requires)j(some)e(preliminary)d(results.)52 -b(T)-8 b(o)36 b(motiv)-5 b(ate)283 5013 y(these)25 b(consider)f(wh)m(y) -i(the)e(upp)s(er)g(b)s(ound)g(determined)f(in)g(Prop)s(osition)f(5.39)h -(is)h(so)g(imprecise.)283 5133 y(The)33 b(reason)g(is)e(that)h(w)m(e)h -(consider)f Fs(al)5 b(l)42 b Fu(functions)32 b(in)g Fw(PState)2630 -5148 y Fc(X)2728 5133 y Ft(!)g Fw(PState)3192 5148 y -Fc(X)3291 5133 y Fu(and)g(do)g(not)283 5254 y(exploit)46 -b(an)m(y)h(sp)s(ecial)f(prop)s(erties)g(of)g(the)h(functions)g -Fs(H)2452 5218 y Fn(n)2542 5254 y Ft(?)p Fu(,)k(suc)m(h)d(as)e -(monotonicit)m(y)f(or)283 5374 y(con)m(tin)m(uit)m(y)-8 -b(.)60 b(T)-8 b(o)38 b(obtain)f(a)h(b)s(etter)g(b)s(ound)h(w)m(e)g -(shall)d(exploit)h(prop)s(erties)h(of)g(the)g Ft(P)8 -b(S)3547 5389 y Fc(X)3614 5374 y Fu([)-17 b([)p Fs(S)12 -b Fu(])-17 b(])283 5494 y(analysis)32 b(functions.)44 -b(Recall)31 b(that)h(a)g(function)p eop -%%Page: 163 173 -163 172 bop 0 130 a Fw(5.4)112 b(Bounded)39 b(iteration)2154 -b(163)p 0 193 3473 4 v 244 515 a Fs(h)7 b Fu(:)44 b Fw(PState)704 -530 y Fc(X)803 515 y Ft(!)32 b Fw(PState)1267 530 y Fc(X)0 -720 y Fu(is)g Fs(strict)43 b Fu(if)31 b(and)i(only)f(if)244 -924 y Fs(h)40 b Fb(init)514 939 y Fc(X)614 924 y Fu(=)32 -b Fb(init)902 939 y Fc(X)0 1128 y Fu(where)c Fb(init)456 -1143 y Fc(X)551 1128 y Fu(is)f(the)g(least)g(elemen)m(t)g(of)g -Fw(PState)1822 1143 y Fc(X)1889 1128 y Fu(.)41 b(It)28 -b(is)e(an)h Fs(additive)34 b Fu(function)27 b(if)f(and)h(only)0 -1249 y(if)244 1453 y Fs(h)40 b Fu(\()p Fs(ps)470 1468 -y Fn(1)541 1453 y Ft(t)608 1468 y Fn(PS)732 1453 y Fs(ps)830 -1468 y Fn(2)869 1453 y Fu(\))33 b(=)f(\()p Fs(h)40 b(ps)1274 -1468 y Fn(1)1313 1453 y Fu(\))32 b Ft(t)1450 1468 y Fn(PS)1574 -1453 y Fu(\()p Fs(h)39 b(ps)1799 1468 y Fn(2)1839 1453 -y Fu(\))0 1657 y(holds)32 b(for)g(all)f(prop)s(ert)m(y)i(states)h -Fs(ps)1314 1672 y Fn(1)1385 1657 y Fu(and)f Fs(ps)1673 -1672 y Fn(2)1745 1657 y Fu(of)f Fw(PState)2188 1672 y -Fc(X)2255 1657 y Fu(.)0 1887 y Fw(Exercise)k(5.41)49 -b(\(Essen)m(tial\))29 b Fu(Giv)m(e)i(a)g(formal)e(de\014nition)h(of)g -(what)i(it)e(means)h(for)g(a)f(func-)0 2007 y(tion)244 -2212 y Fs(h)7 b Fu(:)44 b Fw(PState)704 2227 y Fc(X)803 -2212 y Ft(!)32 b Fw(P)0 2416 y Fu(to)39 b(b)s(e)g(strict)f(and)h -(additiv)m(e.)62 b(Use)40 b(Exercise)h(5.11)d(to)g(sho)m(w)i(that)f -Ft(P)8 b(A)2698 2431 y Fc(X)2766 2416 y Fu([)-17 b([)p -Fs(a)7 b Fu(])-17 b(])40 b(and)f Ft(P)8 b(B)3279 2431 -y Fc(X)3346 2416 y Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])0 -2537 y(are)31 b(strict)f(and)g(additiv)m(e.)43 b(\(W)-8 -b(e)30 b(tacitly)g(assume)h(that)f(FV\()p Fs(a)7 b Fu(\))30 -b Ft(\022)h Fs(X)47 b Fu(and)31 b(FV\()p Fs(b)6 b Fu(\))30 -b Ft(\022)h Fs(X)16 b Fu(.\))63 b Fh(2)146 2766 y Fu(W)-8 -b(e)27 b(shall)d(\014rst)i(sho)m(w)h(that)f(the)g(auxiliary)e -(functions)h(for)h(comp)s(osition)d(and)j(conditional)0 -2886 y(preserv)m(e)f(strictness)g(and)e(additivit)m(y)f(and)h(next)h(w) -m(e)g(shall)e(pro)m(v)m(e)i(that)f(the)g(analysis)g(function)0 -3007 y Ft(P)8 b(S)145 3022 y Fc(X)213 3007 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])33 b(is)f(strict)h(and)f(additiv)m(e)g -(for)g(all)f(statemen)m(ts)i Fs(S)12 b Fu(.)0 3237 y -Fw(Exercise)36 b(5.42)49 b(\(Essen)m(tial\))33 b Fu(Sho)m(w)j(that)f -(if)f Fs(h)1869 3252 y Fn(1)1943 3237 y Fu(and)h Fs(h)2192 -3252 y Fn(2)2267 3237 y Fu(are)g(strict)g(and)g(additiv)m(e)f(func-)0 -3357 y(tions)e(in)g Fw(PState)685 3372 y Fc(X)784 3357 -y Ft(!)g Fw(PState)1248 3372 y Fc(X)1348 3357 y Fu(then)h(so)g(is)f -Fs(h)1845 3372 y Fn(1)1917 3357 y Ft(\016)h Fs(h)2057 -3372 y Fn(2)2096 3357 y Fu(.)1275 b Fh(2)0 3587 y Fw(Exercise)36 -b(5.43)49 b(\(Essen)m(tial\))22 b Fu(Assume)i(that)g -Fs(f)44 b Fu(in)23 b Fw(PState)2301 3602 y Fc(X)2392 -3587 y Ft(!)g Fw(P)g Fu(is)g(strict)g(and)h(additiv)m(e)0 -3707 y(and)36 b(that)g Fs(h)465 3722 y Fn(1)541 3707 -y Fu(and)h Fs(h)792 3722 y Fn(2)867 3707 y Fu(in)f Fw(PState)1317 -3722 y Fc(X)1420 3707 y Ft(!)g Fw(PState)1888 3722 y -Fc(X)1991 3707 y Fu(are)g(strict)g(and)h(additiv)m(e.)54 -b(Sho)m(w)37 b(that)0 3827 y(cond)200 3842 y Fn(P)253 -3827 y Fu(\()p Fs(f)21 b Fu(,)37 b Fs(h)463 3842 y Fn(1)503 -3827 y Fu(,)g Fs(h)624 3842 y Fn(2)664 3827 y Fu(\))f(is)g(a)g(strict)g -(and)g(additiv)m(e)g(function.)55 b(Hin)m(t:)50 b(if)35 -b Fs(f)58 b Fu(\()p Fs(ps)2771 3842 y Fn(1)2846 3827 -y Ft(t)2913 3842 y Fn(PS)3040 3827 y Fs(ps)3138 3842 -y Fn(2)3178 3827 y Fu(\))36 b(=)g Fb(d)p Fu(?)0 3948 -y(then)d Fs(f)54 b(ps)404 3963 y Fn(i)460 3948 y Fu(=)32 -b Fb(d)p Fu(?)h(for)f(i)g(=)g(1)g(or)h(i)e(=)i(2.)1927 -b Fh(2)p 0 4177 3473 5 v 0 4353 a Fw(Lemma)37 b(5.44)49 -b Fu(F)-8 b(or)42 b(all)e(statemen)m(ts)k Fs(S)54 b Fu(of)42 -b Fw(While)p Fu(,)h Ft(P)8 b(S)2215 4368 y Fc(X)2283 -4353 y Fu([)-17 b([)p Fs(S)12 b Fu(])-17 b(])43 b(is)f(a)g(strict)g -(and)h(additiv)m(e)0 4473 y(function)32 b(whenev)m(er)j(FV\()p -Fs(S)12 b Fu(\))32 b Ft(\022)h Fs(X)16 b Fu(.)p 0 4594 -V 0 4798 a Fw(Pro)s(of:)37 b Fu(W)-8 b(e)33 b(pro)s(ceed)h(b)m(y)f -(structural)f(induction)g(on)h Fs(S)44 b Fu(and)33 b(assume)g(that)f -(FV\()p Fs(S)12 b Fu(\))32 b Ft(\022)h Fs(X)16 b Fu(.)0 -4965 y Fw(The)33 b(case)g Fs(x)44 b Fu(:=)33 b Fs(a)7 -b Fu(:)44 b(W)-8 b(e)33 b(ha)m(v)m(e)244 5170 y Ft(P)8 -b(S)389 5185 y Fc(X)457 5170 y Fu([)-17 b([)p Fs(x)44 -b Fu(:=)33 b Fs(a)7 b Fu(])-17 b(])33 b Fb(init)1026 -5185 y Fc(X)1126 5170 y Fu(=)g Fb(init)1415 5185 y Fc(X)0 -5374 y Fu(b)s(ecause)j(Exercise)g(5.41)d(giv)m(es)i(that)f -Ft(P)8 b(A)1568 5389 y Fc(X)1635 5374 y Fu([)-17 b([)p -Fs(a)7 b Fu(])-17 b(])36 b(is)e(strict)g(so)g Ft(P)8 -b(A)2437 5389 y Fc(X)2505 5374 y Fu([)-17 b([)p Fs(a)7 -b Fu(])-17 b(])36 b Fb(init)2852 5389 y Fc(X)2954 5374 -y Fu(=)e Fb(ok)p Fu(.)50 b(Next)0 5494 y(w)m(e)34 b(sho)m(w)f(that)g -Ft(P)8 b(S)742 5509 y Fc(X)809 5494 y Fu([)-17 b([)q -Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(])-17 b(])33 b(is)f(additiv)m(e:)p -eop -%%Page: 164 174 -164 173 bop 251 130 a Fw(164)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 527 515 a Ft(P)8 -b(S)673 530 y Fc(X)740 515 y Fu([)-17 b([)q Fs(x)44 b -Fu(:=)32 b Fs(a)7 b Fu(])-17 b(])q(\()p Fs(ps)1233 530 -y Fn(1)1305 515 y Ft(t)1371 530 y Fn(PS)1495 515 y Fs(ps)1593 -530 y Fn(2)1633 515 y Fu(\))778 683 y(=)32 b(\()p Fs(ps)1022 -698 y Fn(1)1094 683 y Ft(t)1160 698 y Fn(PS)1284 683 -y Fs(ps)1382 698 y Fn(2)1421 683 y Fu(\)[)p Fs(x)12 b -Ft(7!)32 b(P)8 b(A)1832 698 y Fc(X)1900 683 y Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])q(\()p Fs(ps)2168 698 y Fn(1)2240 -683 y Ft(t)2306 698 y Fn(PS)2430 683 y Fs(ps)2528 698 -y Fn(2)2568 683 y Fu(\)])778 851 y(=)32 b(\()p Fs(ps)1022 -866 y Fn(1)1094 851 y Ft(t)1160 866 y Fn(PS)1284 851 -y Fs(ps)1382 866 y Fn(2)1421 851 y Fu(\)[)p Fs(x)12 b -Ft(7!)32 b(P)8 b(A)1832 866 y Fc(X)1900 851 y Fu([)-17 -b([)p Fs(a)7 b Fu(])-17 b(])q Fs(ps)2130 866 y Fn(1)2202 -851 y Ft(t)2268 866 y Fn(P)2353 851 y Ft(P)8 b(A)2510 -866 y Fc(X)2578 851 y Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q Fs(ps)2808 866 y Fn(2)2847 851 y Fu(])778 1018 -y(=)32 b Fs(ps)984 1033 y Fn(1)1023 1018 y Fu([)p Fs(x)12 -b Ft(7!P)c(A)1364 1033 y Fc(X)1431 1018 y Fu([)-17 b([)q -Fs(a)7 b Fu(])-17 b(])q Fs(ps)1662 1033 y Fn(1)1701 1018 -y Fu(])33 b Ft(t)1827 1033 y Fn(PS)1951 1018 y Fs(ps)2049 -1033 y Fn(2)2088 1018 y Fu([)p Fs(x)12 b Ft(7!P)c(A)2429 -1033 y Fc(X)2496 1018 y Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q Fs(ps)2727 1033 y Fn(2)2766 1018 y Fu(])778 1186 -y(=)32 b Ft(P)8 b(S)1031 1201 y Fc(X)1099 1186 y Fu([)-17 -b([)p Fs(x)45 b Fu(:=)32 b Fs(a)7 b Fu(])-17 b(])q Fs(ps)1554 -1201 y Fn(1)1626 1186 y Ft(t)1692 1201 y Fn(PS)1816 1186 -y Ft(P)8 b(S)1961 1201 y Fc(X)2029 1186 y Fu([)-17 b([)p -Fs(x)45 b Fu(:=)32 b Fs(a)7 b Fu(])-17 b(])q Fs(ps)2484 -1201 y Fn(2)283 1385 y Fu(where)34 b(the)f(second)h(equalit)m(y)e -(follo)m(ws)g(from)f Ft(P)8 b(A)2127 1400 y Fc(X)2194 -1385 y Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])33 b(b)s(eing)f(additiv)m -(e)g(\(Exercise)i(5.41\).)283 1552 y Fw(The)f(case)g -Fr(skip)h Fu(is)e(immediate.)283 1720 y Fw(The)h(case)f -Fs(S)805 1735 y Fn(1)844 1720 y Fu(;)g Fs(S)970 1735 -y Fn(2)1041 1720 y Fu(follo)m(ws)f(from)f(Exercise)j(5.42)e(and)h(the)g -(induction)f(h)m(yp)s(othesis)i(applied)283 1840 y(to)g -Fs(S)470 1855 y Fn(1)541 1840 y Fu(and)g Fs(S)798 1855 -y Fn(2)837 1840 y Fu(.)283 2008 y Fw(The)c(case)g Fr(if)g -Fs(b)34 b Fr(then)c Fs(S)1242 2023 y Fn(1)1309 2008 y -Fr(else)g Fs(S)1610 2023 y Fn(2)1678 2008 y Fu(follo)m(ws)d(from)g -(Exercise)j(5.43,)e(the)h(induction)f(h)m(yp)s(oth-)283 -2128 y(esis)33 b(applied)f(to)g Fs(S)991 2143 y Fn(1)1063 -2128 y Fu(and)h Fs(S)1320 2143 y Fn(2)1391 2128 y Fu(and)g(Exercise)h -(5.41.)283 2296 y Fw(The)f(case)g Fr(while)h Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(:)32 b(De\014ne)527 2495 y -Fs(H)49 b(h)40 b Fu(=)32 b(cond)1046 2510 y Fn(P)1099 -2495 y Fu(\()p Ft(P)8 b(B)1283 2510 y Fc(X)1350 2495 -y Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fs(h)40 -b Ft(\016)32 b(P)8 b(S)1853 2510 y Fc(X)1921 2495 y Fu([)-17 -b([)p Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\))283 2694 y(Our)h(\014rst)g -(claim)d(is)i(that)527 2893 y Fs(H)615 2857 y Fn(n)691 -2893 y Ft(?)283 3092 y Fu(is)42 b(strict)h(and)f(additiv)m(e)g(for)g -(all)f Fs(n)7 b Fu(.)73 b(This)43 b(is)f(pro)m(v)m(ed)i(b)m(y)f(n)m -(umerical)e(induction)h(and)g(the)283 3212 y(base)h(case,)i(n)d(=)g(0,) -i(is)e(immediate.)69 b(The)42 b(induction)f(step)i(follo)m(ws)e(from)g -(the)h(induction)283 3332 y(h)m(yp)s(othesis)37 b(of)d(the)i -(structural)f(induction,)f(the)i(induction)e(h)m(yp)s(othesis)i(of)f -(the)g(n)m(umerical)283 3453 y(induction,)42 b(Exercises)g(5.42,)f -(5.41)e(and)i(5.43)e(and)h(that)g(id)g(is)f(strict)h(and)g(additiv)m -(e.)66 b(Our)283 3573 y(second)34 b(claim)c(is)j(that)527 -3772 y(FIX)g Fs(H)48 b Fu(=)961 3706 y Fg(F)1030 3787 -y Fn(PS)1154 3772 y Ft(f)32 b Fs(H)1324 3736 y Fn(n)1400 -3772 y Ft(?)h(j)f Fu(n)h Ft(\025)g Fu(0)f Ft(g)283 3971 -y Fu(is)h(strict)f(and)g(additiv)m(e.)43 b(F)-8 b(or)32 -b(strictness)i(w)m(e)g(calculate)577 4142 y(\(FIX)f Fs(H)16 -b Fu(\))32 b Fb(init)1158 4157 y Fc(X)1325 4142 y Fu(=)1434 -4076 y Fg(F)1503 4157 y Fn(PS)1627 4142 y Ft(f)g Fu(\()p -Fs(H)1835 4106 y Fn(n)1911 4142 y Ft(?)q Fu(\))g Fb(init)2239 -4157 y Fc(X)2339 4142 y Ft(j)g Fu(n)h Ft(\025)g Fu(0)f -Ft(g)1325 4310 y Fu(=)h Fb(init)1614 4325 y Fc(X)283 -4502 y Fu(where)g(the)f(last)e(equalit)m(y)h(follo)m(ws)f(from)g -Fs(H)1920 4466 y Fn(n)1995 4502 y Ft(?)i Fu(b)s(eing)e(strict)h(for)g -(all)e(n.)43 b(F)-8 b(or)31 b(additivit)m(y)f(w)m(e)283 -4622 y(calculate)527 4821 y(\(FIX)j Fs(H)16 b Fu(\)\()p -Fs(ps)1032 4836 y Fn(1)1104 4821 y Ft(t)1170 4836 y Fn(PS)1294 -4821 y Fs(ps)1392 4836 y Fn(2)1431 4821 y Fu(\))896 4989 -y(=)1004 4922 y Fg(F)1073 5004 y Fn(PS)1197 4989 y Ft(f)33 -b Fu(\()p Fs(H)1406 4953 y Fn(n)1481 4989 y Ft(?)q Fu(\)\()p -Fs(ps)1733 5004 y Fn(1)1805 4989 y Ft(t)1871 5004 y Fn(PS)1995 -4989 y Fs(ps)2093 5004 y Fn(2)2132 4989 y Fu(\))g Ft(j)f -Fu(n)h Ft(\025)g Fu(0)f Ft(g)896 5156 y Fu(=)1004 5090 -y Fg(F)1073 5171 y Fn(PS)1197 5156 y Ft(f)h Fu(\()p Fs(H)1406 -5120 y Fn(n)1481 5156 y Ft(?)q Fu(\))p Fs(ps)1695 5171 -y Fn(1)1767 5156 y Ft(t)1833 5171 y Fn(PS)1957 5156 y -Fu(\()p Fs(H)2083 5120 y Fn(n)2159 5156 y Ft(?)p Fu(\))p -Fs(ps)2372 5171 y Fn(2)2444 5156 y Ft(j)f Fu(n)h Ft(\025)g -Fu(0)f Ft(g)896 5324 y Fu(=)1004 5258 y Fg(F)1073 5339 -y Fn(PS)1197 5324 y Ft(f)h Fu(\()p Fs(H)1406 5288 y Fn(n)1481 -5324 y Ft(?)q Fu(\))p Fs(ps)1695 5339 y Fn(1)1767 5324 -y Ft(j)f Fu(n)h Ft(\025)g Fu(0)f Ft(g)g(t)2254 5339 y -Fn(PS)2378 5258 y Fg(F)2447 5339 y Fn(PS)2571 5324 y -Ft(f)g Fu(\()p Fs(H)2779 5288 y Fn(n)2855 5324 y Ft(?)p -Fu(\))p Fs(ps)3068 5339 y Fn(2)3140 5324 y Ft(j)g Fu(n)h -Ft(\025)g Fu(0)f Ft(g)896 5492 y Fu(=)g(\(FIX)h Fs(H)16 -b Fu(\))p Fs(ps)1471 5507 y Fn(1)1543 5492 y Ft(t)1609 -5507 y Fn(PS)1733 5492 y Fu(\(FIX)32 b Fs(H)16 b Fu(\))p -Fs(ps)2199 5507 y Fn(2)p eop -%%Page: 165 175 -165 174 bop 0 130 a Fw(5.4)112 b(Bounded)39 b(iteration)2154 -b(165)p 0 193 3473 4 v 0 515 a Fu(The)28 b(second)g(equalit)m(y)e(uses) -i(the)g(additivit)m(y)d(of)h Fs(H)1867 479 y Fn(n)1937 -515 y Ft(?)i Fu(for)e(all)f(n.)41 b(This)27 b(concludes)h(the)f(pro)s -(of)0 636 y(of)32 b(the)h(lemma.)2808 b Fh(2)146 839 -y Fu(Strict)32 b(and)h(additiv)m(e)f(functions)g(ha)m(v)m(e)i(a)f(n)m -(um)m(b)s(er)g(of)f(in)m(teresting)g(prop)s(erties:)0 -1067 y Fw(Exercise)k(5.45)49 b(\(Essen)m(tial\))41 b -Fu(Sho)m(w)k(that)e(if)f Fs(h)7 b Fu(:)65 b Fw(PState)2326 -1082 y Fc(X)2437 1067 y Ft(!)43 b Fw(PState)2912 1082 -y Fc(X)3022 1067 y Fu(is)g(additiv)m(e)0 1187 y(then)33 -b Fs(h)40 b Fu(is)32 b(monotone.)2543 b Fh(2)146 1415 -y Fu(The)34 b(next)g(result)g(expresses)i(that)d(when)h(t)m(w)m(o)g -(distinct)e(analysis)h(functions)g Fs(h)3113 1430 y Fn(1)3185 -1415 y Fu(and)h Fs(h)3433 1430 y Fn(2)0 1536 y Fu(are)g(strict)f(and)h -(additiv)m(e)f(and)h(satis\014es)g Fs(h)1594 1551 y Fn(1)1668 -1536 y Ft(v)g Fs(h)1836 1551 y Fn(2)1909 1536 y Fu(then)g(it)f(will)f -(b)s(e)h(the)i(prop)s(ert)m(y)f(assigned)0 1656 y(to)e(just)h(one)g(of) -f(the)h(\\v)-5 b(ariables")31 b(that)h(accoun)m(ts)i(for)e(the)h -(di\013erence)g(b)s(et)m(w)m(een)i Fs(h)3069 1671 y Fn(1)3141 -1656 y Fu(and)e Fs(h)3388 1671 y Fn(2)3428 1656 y Fu(.)p -0 1776 3473 5 v 0 1950 a Fw(Lemma)k(5.46)49 b Fu(Consider)33 -b(strict)f(and)h(additiv)m(e)f(functions)244 2154 y Fs(h)301 -2169 y Fn(1)341 2154 y Fu(,)g Fs(h)457 2169 y Fn(2)497 -2154 y Fu(:)43 b Fw(PState)899 2169 y Fc(X)999 2154 y -Ft(!)32 b Fw(PState)1463 2169 y Fc(X)0 2357 y Fu(suc)m(h)26 -b(that)f Fs(h)473 2372 y Fn(1)537 2357 y Ft(v)g Fs(h)696 -2372 y Fn(2)761 2357 y Fu(and)g Fs(h)1000 2372 y Fn(1)1064 -2357 y Ft(6)p Fu(=)g Fs(h)1222 2372 y Fn(2)1261 2357 -y Fu(.)41 b(Then)26 b(there)f(exist)h(\\v)-5 b(ariables")23 -b Fs(x)12 b Fu(,)26 b Fs(y)33 b Ft(2)26 b Fs(X)40 b Ft([)26 -b(f)p Fu(on-trac)m(k)p Ft(g)0 2477 y Fu(suc)m(h)34 b(that)269 -2645 y(\()p Fs(h)364 2660 y Fn(1)436 2645 y Fu(\()p Fb(init)654 -2660 y Fc(X)721 2645 y Fu([)p Fs(y)9 b Ft(7!)p Fb(d)p -Fu(?]\)\))44 b Fs(x)g Fu(=)33 b Fb(ok)g Fu(but)269 2812 -y(\()p Fs(h)364 2827 y Fn(2)436 2812 y Fu(\()p Fb(init)654 -2827 y Fc(X)721 2812 y Fu([)p Fs(y)9 b Ft(7!)p Fb(d)p -Fu(?]\)\))44 b Fs(x)g Fu(=)33 b Fb(d)p Fu(?)p 0 2933 -V 0 3136 a Fw(Pro)s(of:)k Fu(Since)c Fs(h)652 3151 y -Fn(1)724 3136 y Ft(v)g Fs(h)891 3151 y Fn(2)963 3136 -y Fu(and)g Fs(h)1210 3151 y Fn(1)1282 3136 y Ft(6)p Fu(=)g -Fs(h)1448 3151 y Fn(2)1520 3136 y Fu(there)g(exists)h(a)e(prop)s(ert)m -(y)h(state)g Fs(ps)41 b Fu(suc)m(h)34 b(that)244 3339 -y Fs(h)301 3354 y Fn(1)373 3339 y Fs(ps)41 b Ft(v)581 -3354 y Fn(PS)705 3339 y Fs(h)762 3354 y Fn(2)834 3339 -y Fs(ps)244 3506 y(h)301 3521 y Fn(1)373 3506 y Fs(ps)g -Ft(6)p Fu(=)32 b Fs(h)669 3521 y Fn(2)741 3506 y Fs(ps)0 -3710 y Fu(It)h(follo)m(ws)e(that)h(there)i(exists)f(a)f(\\v)-5 -b(ariable")31 b Fs(x)44 b Ft(2)33 b Fs(X)49 b Ft([)32 -b(f)p Fu(on-trac)m(k)p Ft(g)h Fu(suc)m(h)h(that)244 3913 -y(\()p Fs(h)339 3928 y Fn(1)411 3913 y Fs(ps)8 b Fu(\))32 -b Fs(x)45 b Fu(=)32 b Fb(ok)244 4080 y Fu(\()p Fs(h)339 -4095 y Fn(2)411 4080 y Fs(ps)8 b Fu(\))32 b Fs(x)45 b -Fu(=)32 b Fb(d)p Fu(?)0 4283 y(Consider)26 b(no)m(w)h(the)g(set)f(OK\() -p Fs(ps)8 b Fu(\).)41 b(It)26 b(is)g(\014nite)f(b)s(ecause)j(OK\()p -Fs(ps)8 b Fu(\))25 b Ft(\022)i Fs(X)42 b Ft([)26 b(f)p -Fu(on-trac)m(k)p Ft(g)p Fu(.)41 b(First)0 4404 y(assume)29 -b(that)f(OK\()p Fs(ps)8 b Fu(\))27 b(=)h Fs(X)44 b Ft([)29 -b(f)p Fu(on-trac)m(k)p Ft(g)p Fu(.)42 b(Then)29 b Fs(ps)36 -b Fu(=)28 b Fb(init)2389 4419 y Fc(X)2484 4404 y Fu(and)h(since)f(w)m -(e)h(kno)m(w)h(that)0 4524 y Fs(h)57 4539 y Fn(1)130 -4524 y Fu(and)j Fs(h)377 4539 y Fn(2)449 4524 y Fu(are)g(strict)f(w)m -(e)i(ha)m(v)m(e)h Fs(h)1294 4539 y Fn(1)1366 4524 y Fb(init)1546 -4539 y Fc(X)1647 4524 y Fu(=)d Fb(init)1935 4539 y Fc(X)2036 -4524 y Fu(and)h Fs(h)2283 4539 y Fn(2)2355 4524 y Fb(init)2535 -4539 y Fc(X)2636 4524 y Fu(=)f Fb(init)2924 4539 y Fc(X)2992 -4524 y Fu(.)44 b(Therefore)0 4644 y Fs(h)57 4659 y Fn(1)129 -4644 y Fs(ps)d Fu(=)32 b Fs(h)425 4659 y Fn(2)497 4644 -y Fs(ps)41 b Fu(whic)m(h)33 b(con)m(tradicts)g(the)g(w)m(a)m(y)g -Fs(ps)41 b Fu(w)m(as)33 b(c)m(hosen.)146 4765 y(Therefore)e(OK\()p -Fs(ps)8 b Fu(\))30 b(is)f(a)h(true)g(subset)i(of)d Fs(X)46 -b Ft([)30 b(f)p Fu(on-trac)m(k)p Ft(g)p Fu(.)43 b(No)m(w)30 -b(let)g Ft(f)p Fs(y)2923 4780 y Fn(1)2962 4765 y Fu(,)g -Ft(\001)17 b(\001)g(\001)o Fu(,)30 b Fs(y)3249 4780 y -Fn(n)3293 4765 y Ft(g)f Fu(b)s(e)0 4885 y(the)k(\\v)-5 -b(ariables")30 b(of)i Fs(X)48 b Ft([)32 b(f)p Fu(on-trac)m(k)p -Ft(g)g Fu(that)g(do)g(not)g(o)s(ccur)h(in)e(OK\()p Fs(ps)8 -b Fu(\).)43 b(This)32 b(means)h(that)244 5088 y Fs(ps)40 -b Fu(=)33 b Fb(init)663 5103 y Fc(X)730 5088 y Fu([)p -Fs(y)813 5103 y Fn(1)853 5088 y Ft(7!)o Fb(d)p Fu(?])p -Ft(\001)17 b(\001)g(\001)o Fu([)p Fs(y)1287 5103 y Fn(n)1331 -5088 y Ft(7!)o Fb(d)p Fu(?])0 5291 y(whic)m(h)33 b(is)f(equiv)-5 -b(alen)m(t)33 b(to)244 5494 y Fs(ps)40 b Fu(=)33 b Fb(init)663 -5509 y Fc(X)730 5494 y Fu([)p Fs(y)813 5509 y Fn(1)853 -5494 y Ft(7!)o Fb(d)p Fu(?])44 b Ft(t)1198 5509 y Fn(PS)1321 -5494 y Ft(\001)17 b(\001)g(\001)31 b(t)1537 5509 y Fn(PS)1661 -5494 y Fb(init)1841 5509 y Fc(X)1908 5494 y Fu([)p Fs(y)1991 -5509 y Fn(n)2035 5494 y Ft(7!)o Fb(d)p Fu(?])p eop -%%Page: 166 176 -166 175 bop 251 130 a Fw(166)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a Fu(Since)d -Fs(h)595 530 y Fn(2)667 515 y Fu(is)f(additiv)m(e)g(w)m(e)i(ha)m(v)m(e) -527 715 y Fs(h)584 730 y Fn(2)657 715 y Fs(ps)40 b Fu(=)32 -b Fs(h)952 730 y Fn(2)992 715 y Fu(\()p Fb(init)1210 -730 y Fc(X)1278 715 y Fu([)p Fs(y)1361 730 y Fn(1)1400 -715 y Ft(7!)p Fb(d)p Fu(?]\))43 b Ft(t)1783 730 y Fn(PS)1907 -715 y Ft(\001)17 b(\001)g(\001)30 b(t)2122 730 y Fn(PS)2246 -715 y Fs(h)2303 730 y Fn(2)2342 715 y Fu(\()p Fb(init)2560 -730 y Fc(X)2628 715 y Fu([)p Fs(y)2711 730 y Fn(n)2755 -715 y Ft(7!)o Fb(d)p Fu(?]\))283 915 y(W)-8 b(e)31 b(ha)m(v)m(e)h -(assumed)g(that)e(\()p Fs(h)1366 930 y Fn(2)1436 915 -y Fs(ps)8 b Fu(\))31 b Fs(x)42 b Fu(=)31 b Fb(d)p Fu(?)f(and)h(no)m(w)g -(it)f(follo)m(ws)f(that)i(for)f(some)g(i)g(\(1)p Ft(\024)p -Fu(i)p Ft(\024)p Fu(n\))527 1115 y Fs(h)584 1130 y Fn(2)624 -1115 y Fu(\()p Fb(init)842 1130 y Fc(X)910 1115 y Fu([)p -Fs(y)993 1130 y Fn(i)1016 1115 y Ft(7!)p Fb(d)p Fu(?]\))44 -b Fs(x)g Fu(=)32 b Fb(d)p Fu(?)283 1314 y(Since)h Fb(init)718 -1329 y Fc(X)786 1314 y Fu([)p Fs(y)869 1329 y Fn(i)893 -1314 y Ft(7!)o Fb(d)p Fu(?])44 b Ft(v)1249 1329 y Fn(PS)1372 -1314 y Fs(ps)d Fu(and)32 b Fs(h)1749 1329 y Fn(1)1822 -1314 y Fu(is)g(monotone)g(\(Exercise)h(5.45\))f(w)m(e)i(get)f(that)527 -1514 y Fs(h)584 1529 y Fn(1)657 1514 y Fu(\()p Fb(init)875 -1529 y Fc(X)942 1514 y Fu([)p Fs(y)1025 1529 y Fn(i)1049 -1514 y Ft(7!)p Fb(d)p Fu(?]\))43 b Ft(v)1443 1529 y Fn(PS)1567 -1514 y Fs(h)1624 1529 y Fn(1)1696 1514 y Fs(ps)283 1714 -y Fu(and)33 b(thereb)m(y)527 1913 y Fs(h)584 1928 y Fn(1)657 -1913 y Fu(\()p Fb(init)875 1928 y Fc(X)942 1913 y Fu([)p -Fs(y)1025 1928 y Fn(i)1049 1913 y Ft(7!)p Fb(d)p Fu(?]\))43 -b Fs(x)i Fu(=)32 b Fb(ok)283 2113 y Fu(So)h(the)g(lemma)d(follo)m(ws)i -(b)m(y)h(taking)f Fs(y)41 b Fu(to)33 b(b)s(e)f Fs(y)2054 -2128 y Fn(i)2078 2113 y Fu(.)1576 b Fh(2)430 2316 y Fu(The)26 -b(next)f(step)h(will)d(b)s(e)i(to)f(generalize)h(this)f(result)h(to)f -(sequences)29 b(of)24 b(strict)g(and)h(additiv)m(e)283 -2437 y(functions.)p 283 2557 3473 5 v 283 2728 a Fw(Corollary)36 -b(5.47)49 b Fu(Consider)33 b(a)g(sequence)527 2928 y -Fs(h)584 2943 y Fn(0)657 2928 y Ft(v)g Fs(h)824 2943 -y Fn(1)896 2928 y Ft(v)g(\001)17 b(\001)g(\001)31 b(v)i -Fs(h)1322 2943 y Fn(n)283 3127 y Fu(of)g(strict)f(and)g(additiv)m(e)g -(functions)527 3327 y Fs(h)584 3342 y Fn(i)608 3327 y -Fu(:)44 b Fw(PState)1011 3342 y Fc(X)1110 3327 y Ft(!)32 -b Fw(PState)1574 3342 y Fc(X)283 3527 y Fu(that)39 b(are)g(all)e -(distinct,)j(that)f(is)g Fs(h)1580 3542 y Fn(i)1643 3527 -y Ft(6)p Fu(=)g Fs(h)1815 3542 y Fn(j)1880 3527 y Fu(if)e(i)i -Ft(6)p Fu(=)f(j.)63 b(Then)40 b(n)g Ft(\024)f Fu(\(m+1\))3030 -3491 y Fn(2)3107 3527 y Fu(where)i(m)d(is)g(the)283 3647 -y(cardinalit)m(y)31 b(of)h Fs(X)16 b Fu(.)p 283 3767 -V 283 3967 a Fw(Pro)s(of:)32 b Fu(F)-8 b(or)26 b(eac)m(h)j(i)d -Ft(2)i(f)p Fu(0,1,)p Ft(\001)17 b(\001)g(\001)n Fu(,n)p -Ft(\000)p Fu(1)p Ft(g)28 b Fu(the)f(previous)h(lemma)e(applied)g(to)h -Fs(h)3115 3982 y Fn(i)3166 3967 y Fu(and)h Fs(h)3408 -3982 y Fn(i+1)3549 3967 y Fu(giv)m(es)283 4088 y(that)33 -b(there)g(are)g(\\v)-5 b(ariables")527 4287 y Fs(x)584 -4302 y Fn(i)608 4287 y Fu(,)33 b Fs(y)724 4302 y Fn(i)780 -4287 y Ft(2)g Fs(X)48 b Ft([)33 b(f)p Fu(on-trac)m(k)p -Ft(g)283 4487 y Fu(suc)m(h)h(that)527 4687 y Fs(h)584 -4702 y Fn(i)608 4687 y Fu(\()p Fb(init)826 4702 y Fc(X)894 -4687 y Fu([)p Fs(y)977 4702 y Fn(i)1001 4687 y Ft(7!)o -Fb(d)p Fu(?]\))44 b Fs(x)1374 4702 y Fn(i)1430 4687 y -Fu(=)33 b Fb(ok)527 4854 y Fs(h)584 4869 y Fn(i+1)699 -4854 y Fu(\()p Fb(init)917 4869 y Fc(X)984 4854 y Fu([)p -Fs(y)1067 4869 y Fn(i)1091 4854 y Ft(7!)p Fb(d)p Fu(?]\))43 -b Fs(x)1464 4869 y Fn(i)1520 4854 y Fu(=)33 b Fb(d)p -Fu(?)283 5054 y(First)38 b(assume)h(that)f(all)e(\()p -Fs(x)1323 5069 y Fn(i)1346 5054 y Fu(,)k Fs(y)1469 5069 -y Fn(i)1493 5054 y Fu(\))e(are)g(distinct.)60 b(Since)39 -b(the)f(cardinalit)m(y)f(of)g Fs(X)55 b Fu(is)38 b(m)f(there)283 -5174 y(can)c(b)s(e)g(at)f(most)g(\(m+1\))1236 5138 y -Fn(2)1307 5174 y Fu(suc)m(h)i(pairs)e(and)h(w)m(e)g(ha)m(v)m(e)h(sho)m -(wn)g(n)f Ft(\024)g Fu(\(m+1\))3100 5138 y Fn(2)3138 -5174 y Fu(.)430 5295 y(Next)e(assume)g(that)g(there)g(exists)h(i)d -Fo(<)i Fu(j)f(suc)m(h)i(that)f(\()p Fs(x)2473 5310 y -Fn(i)2496 5295 y Fu(,)g Fs(y)2610 5310 y Fn(i)2634 5295 -y Fu(\))g(=)f(\()p Fs(x)2904 5310 y Fn(j)2930 5295 y -Fu(,)h Fs(y)3044 5310 y Fn(j)3069 5295 y Fu(\).)43 b(W)-8 -b(e)31 b(then)h(ha)m(v)m(e)527 5494 y Fs(h)584 5509 y -Fn(i+1)699 5494 y Fu(\()p Fb(init)917 5509 y Fc(X)984 -5494 y Fu([)p Fs(y)1067 5509 y Fn(i)1091 5494 y Ft(7!)p -Fb(d)p Fu(?]\))43 b Fs(x)1464 5509 y Fn(i)1520 5494 y -Fu(=)33 b Fb(d)p Fu(?)p eop -%%Page: 167 177 -167 176 bop 0 130 a Fw(5.4)112 b(Bounded)39 b(iteration)2154 -b(167)p 0 193 3473 4 v 0 515 a Fu(and)244 719 y Fs(h)301 -734 y Fn(j)327 719 y Fu(\()p Fb(init)545 734 y Fc(X)612 -719 y Fu([)p Fs(y)695 734 y Fn(i)719 719 y Ft(7!)p Fb(d)p -Fu(?]\))44 b Fs(x)1093 734 y Fn(i)1149 719 y Fu(=)32 -b Fb(ok)0 922 y Fu(Since)h(i+1)e Ft(\024)i Fu(j)f(w)m(e)i(ha)m(v)m(e)g -Fs(h)1037 937 y Fn(i+1)1184 922 y Ft(v)f Fs(h)1351 937 -y Fn(j)1409 922 y Fu(and)g(therefore)244 1125 y Fs(h)301 -1140 y Fn(i+1)448 1125 y Fu(\()p Fb(init)666 1140 y Fc(X)733 -1125 y Fu([)p Fs(y)816 1140 y Fn(i)840 1125 y Ft(7!)p -Fb(d)p Fu(?]\))43 b Fs(x)1213 1140 y Fn(i)1269 1125 y -Ft(v)1347 1140 y Fn(P)1432 1125 y Fs(h)1489 1140 y Fn(j)1547 -1125 y Fu(\()p Fb(init)1765 1140 y Fc(X)1833 1125 y Fu([)p -Fs(y)1916 1140 y Fn(i)1939 1125 y Ft(7!)p Fb(d)p Fu(?]\))h -Fs(x)2313 1140 y Fn(i)0 1328 y Fu(This)31 b(is)f(a)g(con)m(tradiction)f -(as)i(it)e(is)h Fs(not)40 b Fu(the)31 b(case)h(that)e -Fb(d)p Fu(?)h Ft(v)2269 1343 y Fn(P)2352 1328 y Fb(ok)p -Fu(.)43 b(Th)m(us)32 b(it)e(cannot)g(b)s(e)h(the)0 1449 -y(case)41 b(that)e(some)h(of)f(the)i(pairs)e(\()p Fs(x)1319 -1464 y Fn(i)1342 1449 y Fu(,)j Fs(y)1467 1464 y Fn(i)1491 -1449 y Fu(\))e(obtained)f(from)g(Lemma)f(5.46)h(coincide)g(and)h(w)m(e) -0 1569 y(ha)m(v)m(e)34 b(pro)m(v)m(ed)g(the)f(corollary)-8 -b(.)2296 b Fh(2)146 1772 y Fu(W)-8 b(e)33 b(shall)e(no)m(w)j(turn)e(to) -m(w)m(ards)i(the)f(pro)s(of)f(of)g(the)h(main)e(result:)0 -1940 y Fw(Pro)s(of)i(of)h(Prop)s(osition)d(5.40)p Fu(.)46 -b(Consider)34 b(the)g(construct)h Fr(while)f Fs(b)39 -b Fr(do)34 b Fs(S)46 b Fu(and)33 b(let)g Fs(H)49 b Fu(b)s(e)0 -2060 y(giv)m(en)33 b(b)m(y)244 2264 y Fs(H)48 b(h)40 -b Fu(=)33 b(cond)763 2279 y Fn(P)815 2264 y Fu(\()p Ft(P)8 -b(B)999 2279 y Fc(X)1067 2264 y Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q(,)32 b Fs(h)40 b Ft(\016)32 b(P)8 b(S)1570 -2279 y Fc(X)1637 2264 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b(id\))0 2467 y(W)-8 b(e)33 b(shall)e(then)i(pro)m(v)m(e)h -(that)244 2670 y Ft(P)8 b(S)389 2685 y Fc(X)457 2670 -y Fu([)-17 b([)p Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)12 -b Fu(])-17 b(])33 b(=)g Fs(H)1335 2634 y Fn(k)1409 2670 -y Ft(?)0 2873 y Fu(where)e(k)e(=)h(\(m+1\))748 2837 y -Fn(2)815 2873 y Fu(and)g(m)e(is)h(the)h(cardinalit)m(y)e(of)g -Fs(X)46 b Fu(=)29 b(FV\()p Fr(while)i Fs(b)k Fr(do)30 -b Fs(S)12 b Fu(\).)29 b(T)-8 b(o)29 b(do)h(that)0 2994 -y(consider)j(the)g(sequence)244 3197 y Fs(H)332 3161 -y Fn(0)404 3197 y Ft(?)g(v)g Fs(H)712 3161 y Fn(1)784 -3197 y Ft(?)g(v)g(\001)17 b(\001)g(\001)31 b(v)i Fs(H)1351 -3161 y Fn(k)1425 3197 y Ft(?)g(v)g Fs(H)1733 3161 y Fn(k+1)1897 -3197 y Ft(?)0 3400 y Fu(It)38 b(follo)m(ws)e(from)g(Lemma)h(5.44)g -(that)g(eac)m(h)h Fs(H)1764 3364 y Fn(i)1826 3400 y Ft(?)g -Fu(is)f(a)g(strict)h(and)f(additiv)m(e)g(function.)58 -b(It)0 3520 y(no)m(w)30 b(follo)m(ws)d(from)h(Corollary)f(5.47)h(that)h -(not)g(all)e Fs(H)1970 3484 y Fn(i)2023 3520 y Ft(?)p -Fu(,)j(for)e(i)g Ft(\024)h Fu(k+1,)h(are)f(distinct.)42 -b(If)29 b(i)p Fo(<)p Fu(j)0 3641 y(satis\014es)244 3844 -y Fs(H)332 3808 y Fn(i)388 3844 y Ft(?)k Fu(=)g Fs(H)695 -3808 y Fn(j)753 3844 y Ft(?)0 4047 y Fu(then)g(w)m(e)h(also)d(ha)m(v)m -(e)244 4250 y Fs(H)332 4214 y Fn(i)388 4250 y Ft(?)i -Fu(=)g Fs(H)695 4214 y Fn(n)771 4250 y Ft(?)g Fu(for)f(n)p -Ft(\025)p Fu(i)0 4453 y(and)h(in)e(particular)244 4657 -y Fs(H)332 4621 y Fn(k)406 4657 y Ft(?)i Fu(=)f Fs(H)712 -4621 y Fn(k+1)876 4657 y Ft(?)0 4860 y Fu(Hence)i(FIX)e -Fs(H)49 b Fu(=)32 b Fs(H)811 4824 y Fn(k)885 4860 y Ft(?)h -Fu(as)g(desired)g(b)s(ecause)h(of)e(Exercise)i(5.18.)895 -b Fh(2)0 5171 y Fw(Exercise)36 b(5.48)49 b Fu(*)33 b(Sho)m(w)h(that)e -(the)h(b)s(ound)g(exhibited)g(in)f(Corollary)f(5.47)h(is)h(tigh)m(t.)43 -b(That)0 5291 y(is)32 b(describ)s(e)h(ho)m(w)h(to)e(construct)h(a)g -(sequence)244 5494 y Fs(h)301 5509 y Fn(0)373 5494 y -Ft(v)g Fs(h)540 5509 y Fn(1)612 5494 y Ft(v)g(\001)17 -b(\001)g(\001)31 b(v)i Fs(h)1038 5509 y Fn(n)p eop -%%Page: 168 178 -168 177 bop 251 130 a Fw(168)1937 b(5)112 b(Static)37 -b(Program)f(Analysis)p 251 193 3473 4 v 283 515 a Fu(of)31 -b(strict)g(and)g(additiv)m(e)g(functions)g Fs(h)1684 -530 y Fn(i)1708 515 y Fu(:)42 b Fw(PState)2109 530 y -Fc(X)2207 515 y Ft(!)31 b Fw(PState)2670 530 y Fc(X)2768 -515 y Fu(suc)m(h)i(that)d(all)f Fs(h)3387 530 y Fn(i)3443 -515 y Fu(are)i(dis-)283 636 y(tinct)e(and)g(n)f(=)h(\(m+1\))1169 -600 y Fn(2)1236 636 y Fu(where)h(m)e(is)g(the)h(cardinalit)m(y)e(of)h -Fs(X)16 b Fu(.)29 b(Hin)m(t:)42 b(Begin)28 b(b)m(y)h(considering)283 -756 y(m)j(=)h(0,)f(m)g(=)g(1,)h(m)e(=)i(2)f(and)h(then)g(try)g(to)f -(generalize.)1297 b Fh(2)430 948 y Fu(T)-8 b(o)31 b(summarize,)g(the)h -(quadratic)f(upp)s(er)h(b)s(ound)g(on)g(the)g(required)g(n)m(um)m(b)s -(er)g(of)f(iterands)283 1068 y(is)i(obtained)f(as)g(follo)m(ws:)p -283 1198 3470 4 v 283 1215 V 281 1422 4 208 v 298 1422 -V 1371 1343 a Fw(Pro)s(of)g(Summary)h(for)f(While)p Fu(:)p -3735 1422 V 3752 1422 V 281 1630 V 298 1630 V 617 1551 -a Fw(Bounding)h(the)f(Num)m(b)s(er)g(of)h(Iterations)e(in)h(the)h -(Static)e(Analysis)p 3735 1630 V 3752 1630 V 283 1633 -3470 4 v 281 2003 4 370 v 298 2003 V 350 1799 a Fu(1:)143 -b(The)48 b(analysis)f(is)g(mo)s(di\014ed)f(to)h(use)h(the)g(set)g -Fw(PState)2691 1814 y Fc(X)2805 1799 y Fu(rather)g(than)f -Fw(PState)569 1919 y Fu(\(Exercise)34 b(5.37\).)p 3735 -2003 V 3752 2003 V 281 2291 4 289 v 298 2291 V 350 2087 -a(2:)143 b(A)28 b(pro)s(of)g(b)m(y)h Fs(structur)-5 b(al)32 -b(induction)j Fu(on)28 b(the)h(statemen)m(ts)h(sho)m(ws)g(that)e(the)g -(analysis)569 2207 y(functions)k Ft(P)8 b(S)1135 2222 -y Fc(X)1202 2207 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(])32 b(are)h(strict)f(and)h(additiv)m(e)f(\(Lemma)f(5.44\).)p -3735 2291 V 3752 2291 V 281 2699 4 409 v 298 2699 V 350 -2375 a(3:)143 b(Sequences)41 b(of)c(strict)h(and)g(additiv)m(e)f -(functions)h(in)f Fw(PState)2861 2390 y Fc(X)2966 2375 -y Ft(!)h Fw(PState)3436 2390 y Fc(X)3541 2375 y Fu(can)569 -2495 y(ha)m(v)m(e)h(length)f(at)f(most)h(\(m+1\))1755 -2459 y Fn(2)1831 2495 y Fu(where)h(m)f(is)f(the)i(cardinalit)m(y)d(of)h -Fs(X)55 b Fu(\(Corollary)569 2616 y(5.47\).)p 3735 2699 -V 3752 2699 V 283 2702 3470 4 v 283 2719 V 283 2914 a(Using)29 -b(the)h(result)f(of)g(Prop)s(osition)f(5.40)h(w)m(e)h(get)f(that)g(at)g -(most)g(9)g(iterations)f(are)h(needed)i(to)283 3035 y(compute)26 -b(the)g(\014xed)h(p)s(oin)m(t)d(presen)m(t)j(in)e(the)h(analysis)f(of)g -(the)h(factorial)d(statemen)m(t.)41 b(Since)26 b(w)m(e)283 -3155 y(kno)m(w)31 b(that)e(already)g(the)h(\014rst)f(iterand)g(will)e -(equal)i(the)h(\014xed)g(p)s(oin)m(t)f(one)g(ma)m(y)h(ask)f(whether)283 -3276 y(one)36 b(can)g(obtain)e(an)h(ev)m(en)i(b)s(etter)f(b)s(ound)f -(on)h(the)f(n)m(um)m(b)s(er)h(of)f(iterations.)50 b(The)37 -b(follo)m(wing)283 3396 y(exercise)e(sho)m(ws)f(that)f(the)h(quadratic) -e(upp)s(er)i(b)s(ound)f(can)g(b)s(e)g(replaced)g(b)m(y)h(a)f(linear)e -(upp)s(er)283 3516 y(b)s(ound:)283 3708 y Fw(Exercise)37 -b(5.49)49 b Fu(**)31 b(Sho)m(w)h(that)f(for)f(eac)m(h)j(statemen)m(t)e -Fr(while)i Fs(b)k Fr(do)32 b Fs(S)43 b Fu(of)31 b Fw(While)e -Fu(w)m(e)k(ha)m(v)m(e)527 3884 y Ft(P)8 b(S)673 3899 -y Fc(X)740 3884 y Fu([)-17 b([)q Fr(while)33 b Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b(=)f Fs(H)1618 -3848 y Fn(k)1692 3884 y Ft(?)283 4060 y Fu(where)i Fs(H)49 -b(h)39 b Fu(=)33 b(cond)1084 4075 y Fn(P)1136 4060 y -Fu(\()p Ft(P)8 b(B)1320 4075 y Fc(X)1388 4060 y Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)32 b Fs(h)7 b Ft(\016)q(P)h(S)1826 -4075 y Fc(X)1893 4060 y Fu([)-17 b([)q Fs(S)12 b Fu(])-17 -b(],)33 b(id\),)f(k)g(=)h(m+1,)e(and)i(m)f(is)g(the)h(cardinalit)m(y) -283 4181 y(of)g(the)g(set)g Fs(X)49 b Fu(=)32 b(FV\()p -Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\).)1923 b -Fh(2)430 4373 y Fu(F)-8 b(or)38 b(the)i(factorial)d(statemen)m(t)i -(this)g(result)g(will)e(giv)m(e)j(that)f(at)f(most)h(3)g(iterations)f -(are)283 4493 y(needed)f(to)d(determine)h(the)g(\014xed)h(p)s(oin)m(t.) -49 b(The)36 b(next)g(exercise)g(sho)m(ws)g(that)f(this)f(is)h(almost) -283 4613 y(the)e(b)s(est)h(upp)s(er)f(b)s(ound)g(w)m(e)g(can)g(hop)s(e) -g(for:)283 4805 y Fw(Exercise)k(5.50)49 b Fu(*)31 b(Sho)m(w)i(that)f -(for)f(eac)m(h)i(m)f Ft(\025)g Fu(1)g(there)g(is)g(a)g(statemen)m(t)g -Fr(while)h Fs(b)38 b Fr(do)33 b Fs(S)43 b Fu(of)283 4926 -y Fw(While)31 b Fu(suc)m(h)j(that)527 5102 y Ft(P)8 b(S)673 -5117 y Fc(X)740 5102 y Fu([)-17 b([)q Fr(while)33 b Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(])-17 b(])33 b Ft(6)p Fu(=)f -Fs(H)1618 5066 y Fn(k)1692 5102 y Ft(?)283 5278 y Fu(where)i -Fs(H)49 b(h)39 b Fu(=)32 b(cond)1083 5293 y Fn(P)1136 -5278 y Fu(\()p Ft(P)8 b(B)1320 5293 y Fc(X)1387 5278 -y Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(],)33 b Fs(h)7 b -Ft(\016P)h(S)1825 5293 y Fc(X)1893 5278 y Fu([)-17 b([)p -Fs(S)12 b Fu(])-17 b(])q(,)32 b(id\),)g(k)h(=)f(m)p Ft(\000)p -Fu(1,)g(and)g(m)g(is)g(the)h(cardinalit)m(y)283 5398 -y(of)g(the)g(set)g Fs(X)49 b Fu(=)32 b(FV\()p Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(\).)1923 b Fh(2)p eop -%%Page: 169 179 -169 178 bop 0 1180 a Fv(Chapter)78 b(6)0 1595 y(Axiomatic)e(Program)h -(V)-19 b(eri\014cation)0 2047 y Fu(The)39 b(kinds)g(of)f(seman)m(tics)h -(w)m(e)g(ha)m(v)m(e)h(seen)g(so)e(far)g(sp)s(ecify)h(the)g(meaning)e -(of)h(programs)f(al-)0 2168 y(though)26 b(they)g(ma)m(y)g(also)f(b)s(e) -h(used)g(to)g(pro)m(v)m(e)h(that)e(giv)m(en)h(programs)f(p)s(ossess)j -(certain)d(prop)s(er-)0 2288 y(ties.)43 b(W)-8 b(e)33 -b(ma)m(y)e(distinguish)g(b)s(et)m(w)m(een)j(sev)m(eral)f(classes)g(of)f -(prop)s(erties:)43 b Fs(p)-5 b(artial)34 b(c)-5 b(orr)g(e)g(ctness)0 -2408 y(pr)g(op)g(erties)36 b Fu(are)29 b(prop)s(erties)f(expressing)i -(that)e Fs(if)49 b Fu(a)28 b(giv)m(en)h(program)e(terminates)h -Fs(then)36 b Fu(there)0 2529 y(will)e(b)s(e)j(a)f(certain)g -(relationship)f(b)s(et)m(w)m(een)j(the)f(initial)c(and)j(the)h(\014nal) -f(v)-5 b(alues)36 b(of)g(the)h(v)-5 b(ari-)0 2649 y(ables.)59 -b(Th)m(us)40 b(a)d(partial)f(correctness)k(prop)s(ert)m(y)f(of)e(a)h -(program)e(need)j Fs(not)47 b Fu(ensure)40 b(that)d(it)0 -2769 y(terminates.)42 b(This)31 b(is)f(con)m(trary)h(to)f -Fs(total)j(c)-5 b(orr)g(e)g(ctness)33 b(pr)-5 b(op)g(erties)38 -b Fu(whic)m(h)31 b(express)i(that)d(the)0 2890 y(program)j -Fs(wil)5 b(l)44 b Fu(terminate)33 b Fs(and)44 b Fu(that)34 -b(there)h(will)d(b)s(e)i(a)g(certain)g(relationship)f(b)s(et)m(w)m(een) -j(the)0 3010 y(initial)29 b(and)j(the)h(\014nal)f(v)-5 -b(alues)33 b(of)f(the)h(v)-5 b(ariables.)42 b(Th)m(us)34 -b(w)m(e)g(ha)m(v)m(e)244 3196 y(partial)c(correctness)35 -b(+)d(termination)e(=)j(total)e(correctness)0 3382 y(Y)-8 -b(et)24 b(another)f(class)g(of)g(prop)s(erties)g(is)g(concerned)i(with) -e(the)h Fs(r)-5 b(esour)g(c)g(es)31 b Fu(used)24 b(when)h(executing)0 -3502 y(the)30 b(program.)41 b(An)30 b(example)e(is)h(the)h -Fs(time)37 b Fu(used)30 b(to)f(execute)j(the)e(program)e(on)h(a)g -(particular)0 3622 y(mac)m(hine.)0 3952 y Fj(6.1)161 -b(Direct)53 b(pro)t(ofs)g(of)h(program)f(correctness)0 -4171 y Fu(In)30 b(this)f(section)g(w)m(e)i(shall)d(giv)m(e)h(some)g -(examples)h(that)f(pro)m(v)m(e)i(partial)c(correctness)k(of)e(state-)0 -4291 y(men)m(ts)45 b(based)h(directly)e(on)h(the)h(op)s(erational)c -(and)j(denotational)e(seman)m(tics.)81 b(W)-8 b(e)45 -b(shall)0 4412 y(pro)m(v)m(e)34 b(that)e(the)h(factorial)d(statemen)m -(t)244 4598 y Fr(y)j Fu(:=)f Fr(1)p Fu(;)h Fr(while)h -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)g -Fr(x)p Ft(\000)p Fr(1)p Fu(\))0 4783 y(is)38 b(partially)d(correct,)41 -b(that)d(is)g Fs(if)59 b Fu(the)39 b(statemen)m(t)f(terminates)g -Fs(then)45 b Fu(the)39 b(\014nal)f(v)-5 b(alue)37 b(of)h -Fr(y)0 4904 y Fu(will)30 b(b)s(e)j(the)g(factorial)d(of)i(the)h -(initial)c(v)-5 b(alue)32 b(of)g Fr(x)p Fu(.)0 5189 y -Fp(Natural)46 b(seman)l(tics)0 5374 y Fu(Using)35 b Fs(natur)-5 -b(al)38 b(semantics)k Fu(the)36 b(partial)d(correctness)38 -b(of)d(the)h(factorial)d(statemen)m(t)i(can)h(b)s(e)0 -5494 y(formalized)30 b(as)j(follo)m(ws:)1663 5849 y(169)p -eop -%%Page: 170 180 -170 179 bop 251 130 a Fw(170)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Fu(F)h(or)32 b(all)f(states)i Fs(s)41 b Fu(and)32 -b Fs(s)1433 479 y Fi(0)1457 515 y Fu(,)g(if)742 717 y -Ft(h)p Fr(y)g Fu(:=)h Fr(1)p Fu(;)g Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)32 b(!)g -Fs(s)3152 681 y Fi(0)527 918 y Fu(then)i Fs(s)798 882 -y Fi(0)853 918 y Fr(y)f Fu(=)g(\()p Fs(s)40 b Fr(x)p -Fu(\)!)k(and)32 b Fs(s)41 b Fr(x)33 b Fo(>)f Fw(0)283 -1116 y Fu(This)j(is)f(indeed)h(a)f(partial)e(correctness)k(prop)s(ert)m -(y)g(b)s(ecause)f(the)g(statemen)m(t)g(do)s(es)g(not)f(ter-)283 -1236 y(minate)e(if)f(the)i(initial)c(v)-5 b(alue)32 b -Fs(s)40 b Fr(x)33 b Fu(of)f Fr(x)h Fu(is)f(non-p)s(ositiv)m(e.)430 -1357 y(The)h(pro)s(of)f(pro)s(ceeds)i(in)e(three)h(stages:)283 -1554 y Fw(Stage)38 b(1:)49 b Fu(W)-8 b(e)33 b(pro)m(v)m(e)h(that)e(the) -h(b)s(o)s(dy)g(of)f(the)h Fr(while)h Fu(lo)s(op)d(satis\014es:)569 -1713 y(if)g Ft(h)p Fr(y)i Fu(:=)f Fr(y)p Fo(?)p Fr(x)p -Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(,)i -Fs(s)8 b Ft(i)32 b(!)h Fs(s)1886 1677 y Fi(00)1961 1713 -y Fu(and)f Fs(s)2198 1677 y Fi(00)2273 1713 y Fr(x)h -Fo(>)g Fw(0)569 1881 y Fu(then)g(\()p Fs(s)41 b Fr(y)p -Fu(\))32 b Fo(?)h Fu(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(=)32 -b(\()p Fs(s)1585 1845 y Fi(00)1660 1881 y Fr(y)p Fu(\))h -Fo(?)f Fu(\()p Fs(s)1949 1845 y Fi(00)2024 1881 y Fr(x)p -Fu(\)!)44 b(and)32 b Fs(s)41 b Fr(x)33 b Fo(>)f Fw(0)3631 -1798 y Fu(\(*\))283 2076 y Fw(Stage)38 b(2:)49 b Fu(W)-8 -b(e)33 b(pro)m(v)m(e)h(that)e(the)h Fr(while)h Fu(lo)s(op)d -(satis\014es:)569 2235 y(if)g Ft(h)p Fr(while)j Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)g -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)g Fs(s)8 b Ft(i)32 b(!)h -Fs(s)2739 2199 y Fi(00)569 2402 y Fu(then)g(\()p Fs(s)41 -b Fr(y)p Fu(\))32 b Fo(?)h Fu(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(=)32 -b Fs(s)1547 2366 y Fi(00)1622 2402 y Fr(y)h Fu(and)g -Fs(s)1944 2366 y Fi(00)2019 2402 y Fr(x)f Fu(=)h Fw(1)f -Fu(and)h Fs(s)41 b Fr(x)32 b Fo(>)h Fw(0)3582 2319 y -Fu(\(**\))283 2597 y Fw(Stage)38 b(3:)49 b Fu(W)-8 b(e)33 -b(pro)m(v)m(e)h(the)f(partial)d(correctness)35 b(prop)s(ert)m(y)e(for)f -(the)h(complete)f(program:)569 2756 y(if)f Ft(h)p Fr(y)i -Fu(:=)f Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f -Fr(y)p Fo(?)q Fr(x)p Fu(;)g Fr(x)h Fu(:=)g Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)g Fs(s)8 b Ft(i)33 b(!)f Fs(s)3069 2720 -y Fi(0)569 2924 y Fu(then)h Fs(s)839 2888 y Fi(0)895 -2924 y Fr(y)g Fu(=)f(\()p Fs(s)41 b Fr(x)p Fu(\)!)i(and)33 -b Fs(s)41 b Fr(x)32 b Fo(>)h Fw(0)3534 2841 y Fu(\(***\))283 -3115 y(In)i(eac)m(h)f(of)g(the)g(three)h(stages)f(the)g(deriv)-5 -b(ation)33 b(tree)h(of)f(the)i(giv)m(en)e(transition)g(is)g(insp)s -(ected)283 3235 y(in)f(order)h(to)f(pro)m(v)m(e)i(the)f(prop)s(ert)m(y) --8 b(.)430 3355 y(In)33 b(the)g Fs(\014rst)i(stage)k -Fu(w)m(e)34 b(consider)f(the)g(transition)527 3553 y -Ft(h)p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g -Fu(:=)g Fr(x)p Ft(\000)p Fr(1)p Fu(,)g Fs(s)8 b Ft(i)33 -b(!)f Fs(s)1755 3517 y Fi(00)283 3751 y Fu(According)h(to)f([comp)1121 -3766 y Fn(ns)1192 3751 y Fu(])h(there)g(will)d(b)s(e)j(transitions)527 -3948 y Ft(h)p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(,)h -Fs(s)8 b Ft(i)33 b(!)f Fs(s)1296 3912 y Fi(0)1352 3948 -y Fu(and)g Ft(h)p Fr(x)h Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p -Fu(,)i Fs(s)2087 3912 y Fi(0)2110 3948 y Ft(i)f(!)f Fs(s)2362 -3912 y Fi(00)283 4146 y Fu(for)f(some)g Fs(s)722 4109 -y Fi(0)745 4146 y Fu(.)43 b(F)-8 b(rom)30 b(the)i(axiom)d([ass)1677 -4161 y Fn(ns)1749 4146 y Fu(])i(w)m(e)h(then)g(get)f(that)g -Fs(s)2589 4109 y Fi(0)2644 4146 y Fu(=)f Fs(s)8 b Fu([)p -Fr(y)p Ft(7!)q(A)o Fu([)-17 b([)q Fr(y)p Fo(?)p Fr(x)p -Fu(])g(])q Fs(s)8 b Fu(])31 b(and)g(that)283 4266 y Fs(s)331 -4230 y Fi(00)406 4266 y Fu(=)i Fs(s)563 4230 y Fi(0)586 -4266 y Fu([)p Fr(x)p Ft(7!A)p Fu([)-17 b([)p Fr(x)p Ft(\000)p -Fr(1)p Fu(])g(])r Fs(s)1147 4230 y Fi(0)1170 4266 y Fu(].)44 -b(Com)m(bining)31 b(these)j(results)f(w)m(e)g(ha)m(v)m(e)527 -4464 y Fs(s)575 4427 y Fi(00)650 4464 y Fu(=)g Fs(s)8 -b Fu([)p Fr(y)p Ft(7!)p Fu(\()p Fs(s)40 b Fr(y)p Fu(\))p -Fo(?)p Fu(\()p Fs(s)h Fr(x)p Fu(\)][)p Fr(x)p Ft(7!)p -Fu(\()p Fs(s)g Fr(x)p Fu(\))p Ft(\000)p Fr(1)p Fu(])283 -4661 y(Assuming)33 b(that)f Fs(s)991 4625 y Fi(00)1066 -4661 y Fr(x)h Fo(>)f Fw(0)h Fu(w)m(e)g(can)g(then)g(calculate)527 -4859 y(\()p Fs(s)613 4822 y Fi(00)688 4859 y Fr(y)p Fu(\))g -Fo(?)f Fu(\()p Fs(s)977 4822 y Fi(00)1052 4859 y Fr(x)p -Fu(\)!)44 b(=)32 b(\(\()p Fs(s)41 b Fr(y)p Fu(\))33 b -Fo(?)f Fu(\()p Fs(s)40 b Fr(x)p Fu(\)\))33 b Fo(?)f Fu(\(\()p -Fs(s)41 b Fr(x)p Fu(\))p Ft(\000)p Fr(1)p Fu(\)!)j(=)33 -b(\()p Fs(s)40 b Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 -b Fr(x)p Fu(\)!)283 5056 y(and)33 b(since)g Fs(s)41 b -Fr(x)33 b Fu(=)f(\()p Fs(s)1071 5020 y Fi(00)1146 5056 -y Fr(x)p Fu(\))h(+)f Fw(1)h Fu(this)f(sho)m(ws)i(that)e(\(*\))g(do)s -(es)i(indeed)e(hold.)430 5177 y(In)27 b(the)h Fs(se)-5 -b(c)g(ond)29 b(stage)34 b Fu(w)m(e)28 b(pro)s(ceed)g(b)m(y)h(induction) -d(on)h(the)h(shap)s(e)f(of)g(the)h(deriv)-5 b(ation)25 -b(tree)283 5297 y(for)527 5494 y Ft(h)p Fr(while)34 b -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)g -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)g Fs(s)8 b Ft(i)32 b(!)h -Fs(s)2608 5458 y Fi(0)p eop -%%Page: 171 181 -171 180 bop 0 130 a Fw(6.1)112 b(Direct)36 b(pro)s(ofs)i(of)g(program)f -(correctness)1242 b(171)p 0 193 3473 4 v 0 515 a Fu(One)40 -b(of)f(t)m(w)m(o)h(axioms)f(and)g(rules)h(could)f(ha)m(v)m(e)i(b)s(een) -f(used)h(to)e(construct)i(this)e(deriv)-5 b(ation.)0 -636 y(If)43 b([while)358 600 y Fn(\013)358 660 y(ns)428 -636 y Fu(])g(has)g(b)s(een)h(used)g(then)f Fs(s)1436 -600 y Fi(0)1502 636 y Fu(=)g Fs(s)51 b Fu(and)43 b Ft(B)s -Fu([)-17 b([)q Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])q -Fs(s)51 b Fu(=)42 b Fw(\013)p Fu(.)75 b(This)43 b(means)g(that)0 -756 y Fs(s)48 720 y Fi(0)104 756 y Fr(x)33 b Fu(=)f Fw(1)j -Fu(and)g(since)g Fw(1)p Fu(!)51 b(=)35 b Fw(1)g Fu(w)m(e)h(get)f(the)g -(required)g(\()p Fs(s)43 b Fr(y)p Fu(\))35 b Fo(?)g Fu(\()p -Fs(s)43 b Fr(x)p Fu(\)!)51 b(=)34 b Fs(s)43 b Fr(y)35 -b Fu(and)g Fs(s)43 b Fr(x)36 b Fo(>)e Fw(0)p Fu(.)0 877 -y(This)f(pro)m(v)m(es)h(\(**\).)146 997 y(Next)k(assume)g(that)f -([while)1197 961 y Fn(tt)1197 1022 y(ns)1268 997 y Fu(])g(is)g(used)h -(to)f(construct)h(the)g(deriv)-5 b(ation.)56 b(Then)38 -b(it)e(m)m(ust)0 1117 y(b)s(e)d(the)g(case)g(that)g Ft(B)s -Fu([)-17 b([)q Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])q -Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(and)244 1321 y Ft(h)p -Fr(y)g Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(,)i Fs(s)8 b Ft(i)32 b(!)g -Fs(s)1471 1285 y Fi(00)0 1525 y Fu(and)244 1728 y Ft(h)p -Fr(while)h Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g -Fr(do)g Fu(\()p Fr(y)f Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g -Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(\),)i Fs(s)2073 -1692 y Fi(00)2115 1728 y Ft(i)e(!)h Fs(s)2367 1692 y -Fi(0)0 1932 y Fu(for)f(some)h(state)h Fs(s)682 1896 y -Fi(00)724 1932 y Fu(.)45 b(The)34 b(induction)e(h)m(yp)s(othesis)i -(applied)e(to)g(the)i(latter)e(deriv)-5 b(ation)31 b(giv)m(es)0 -2053 y(that)244 2256 y(\()p Fs(s)330 2220 y Fi(00)405 -2256 y Fr(y)p Fu(\))i Fo(?)f Fu(\()p Fs(s)694 2220 y -Fi(00)769 2256 y Fr(x)p Fu(\)!)43 b(=)33 b Fs(s)1085 -2220 y Fi(0)1141 2256 y Fr(y)g Fu(and)f Fs(s)1462 2220 -y Fi(0)1518 2256 y Fr(x)h Fu(=)f Fw(1)h Fu(and)g Fs(s)2037 -2220 y Fi(00)2112 2256 y Fr(x)f Fo(>)h Fw(0)0 2460 y -Fu(F)-8 b(rom)31 b(\(*\))h(w)m(e)i(get)e(that)244 2664 -y(\()p Fs(s)40 b Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 -b Fr(x)p Fu(\)!)j(=)32 b(\()p Fs(s)1038 2628 y Fi(00)1113 -2664 y Fr(y)p Fu(\))h Fo(?)f Fu(\()p Fs(s)1402 2628 y -Fi(00)1477 2664 y Fr(x)p Fu(\)!)44 b(and)32 b Fs(s)41 -b Fr(x)33 b Fo(>)f Fw(0)0 2867 y Fu(Putting)g(these)i(results)f -(together)g(w)m(e)g(get)244 3071 y(\()p Fs(s)40 b Fr(y)p -Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 b Fr(x)p Fu(\)!)j(=)32 -b Fs(s)1000 3035 y Fi(0)1056 3071 y Fr(y)h Fu(and)f Fs(s)1377 -3035 y Fi(0)1433 3071 y Fr(x)h Fu(=)f Fw(1)h Fu(and)g -Fs(s)40 b Fr(x)33 b Fo(>)f Fw(0)0 3275 y Fu(This)h(pro)m(v)m(es)h -(\(**\))e(and)h(thereb)m(y)h(the)f(second)h(stage)f(of)f(the)h(pro)s -(of)e(is)i(completed.)146 3395 y(Finally)-8 b(,)30 b(consider)j(the)g -Fs(thir)-5 b(d)35 b(stage)40 b Fu(of)32 b(the)h(pro)s(of)e(and)i(the)g -(deriv)-5 b(ation)244 3599 y Ft(h)p Fr(y)32 b Fu(:=)h -Fr(1)p Fu(;)g Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p -Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)32 b(!)g Fs(s)2654 3563 -y Fi(0)0 3803 y Fu(According)g(to)h([comp)838 3818 y -Fn(ns)908 3803 y Fu(])g(there)g(will)e(b)s(e)h(a)h(state)g -Fs(s)1903 3767 y Fi(00)1978 3803 y Fu(suc)m(h)h(that)244 -4006 y Ft(h)p Fr(y)e Fu(:=)h Fw(1)p Fu(,)g Fs(s)8 b Ft(i)32 -b(!)g Fs(s)917 3970 y Fi(00)0 4210 y Fu(and)244 4414 -y Ft(h)p Fr(while)h Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))g Fr(do)g Fu(\()p Fr(y)f Fu(:=)h Fr(y)p Fo(?)p -Fr(x)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)i Fs(s)2073 4378 y Fi(00)2115 4414 y Ft(i)e(!)h -Fs(s)2367 4378 y Fi(0)0 4618 y Fu(F)-8 b(rom)33 b(axiom)h([ass)703 -4633 y Fn(ns)775 4618 y Fu(])h(w)m(e)h(see)g(that)e Fs(s)1404 -4581 y Fi(00)1482 4618 y Fu(=)g Fs(s)8 b Fu([)p Fr(y)p -Ft(7!)q Fw(1)p Fu(])35 b(and)g(from)e(\(**\))i(w)m(e)h(get)e(that)h -Fs(s)3142 4581 y Fi(00)3220 4618 y Fr(x)g Fo(>)f Fw(0)0 -4738 y Fu(and)29 b(therefore)g Fs(s)37 b Fr(x)29 b Fo(>)g -Fw(0)p Fu(.)42 b(Hence)31 b(\()p Fs(s)36 b Fr(x)p Fu(\)!)43 -b(=)29 b(\()p Fs(s)1729 4702 y Fi(00)1800 4738 y Fr(y)p -Fu(\))g Fo(?)f Fu(\()p Fs(s)2081 4702 y Fi(00)2153 4738 -y Fr(x)p Fu(\)!)42 b(holds)29 b(and)g(using)f(\(**\))g(w)m(e)i(get)244 -4942 y(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(=)32 b(\()p Fs(s)716 -4905 y Fi(00)791 4942 y Fr(y)p Fu(\))h Fo(?)f Fu(\()p -Fs(s)1080 4905 y Fi(00)1155 4942 y Fr(x)p Fu(\)!)44 b(=)32 -b Fs(s)1471 4905 y Fi(0)1527 4942 y Fr(y)0 5145 y Fu(as)h(required.)44 -b(This)33 b(pro)m(v)m(es)h(the)f(partial)d(correctness)35 -b(of)d(the)h(factorial)d(statemen)m(t.)0 5374 y Fw(Exercise)36 -b(6.1)49 b Fu(Use)42 b(the)g(natural)e(seman)m(tics)i(to)f(pro)m(v)m(e) -h(the)g(partial)d(correctness)k(of)e(the)0 5494 y(statemen)m(t)p -eop -%%Page: 172 182 -172 181 bop 251 130 a Fw(172)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Fr(z)33 b Fu(:=)g Fr(0)p Fu(;)f Fr(while)i(y)p -Ft(\024)q Fr(x)f(do)g Fu(\()p Fr(z)g Fu(:=)f Fr(z)p Fu(+)p -Fr(1)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(y)p -Fu(\))283 714 y(that)h(is)g(pro)m(v)m(e)h(that)e Fs(if)54 -b Fu(the)33 b(statemen)m(t)h(terminates)e(in)g Fs(s)2449 -677 y Fi(0)2505 714 y Fu(when)i(executed)h(from)d(a)h(state)g -Fs(s)283 834 y Fu(with)27 b Fs(s)41 b Fr(x)33 b Fo(>)f -Fw(0)27 b Fu(and)g Fs(s)35 b Fr(y)28 b Fo(>)f Fw(0)p -Fu(,)h Fs(then)34 b(s)1672 798 y Fi(0)1728 834 y Fr(z)f -Fu(=)f(\()p Fs(s)41 b Fr(x)p Fu(\))32 b Fw(div)h Fu(\()p -Fs(s)40 b Fr(y)p Fu(\))27 b(and)h Fs(s)2813 798 y Fi(0)2868 -834 y Fr(x)33 b Fu(=)g(\()p Fs(s)40 b Fr(x)p Fu(\))33 -b Fw(mo)s(d)f Fu(\()p Fs(s)41 b Fr(y)p Fu(\))283 954 -y(where)34 b Fw(div)e Fu(is)g(in)m(teger)h(division)e(and)i -Fw(mo)s(d)f Fu(is)g(the)h(mo)s(dulo)d(op)s(eration.)665 -b Fh(2)283 1176 y Fw(Exercise)37 b(6.2)49 b Fu(Use)39 -b(the)f(natural)f(seman)m(tics)h(to)g(pro)m(v)m(e)h(the)f(follo)m(wing) -e Fs(total)k(c)-5 b(orr)g(e)g(ctness)283 1296 y Fu(prop)s(ert)m(y)34 -b(for)e(the)h(factorial)d(program:)42 b(for)32 b(all)f(states)i -Fs(s)527 1495 y Fu(if)f Fs(s)40 b Fr(x)33 b Fo(>)g Fw(0)f -Fu(then)h(there)h(exists)f(a)f(state)h Fs(s)2087 1458 -y Fi(0)2143 1495 y Fu(suc)m(h)h(that)742 1696 y Ft(h)p -Fr(y)e Fu(:=)h Fr(1)p Fu(;)g Fr(while)h Ft(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f -Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)32 b(!)g Fs(s)3152 1660 -y Fi(0)552 1898 y Fu(and)h Fs(s)790 1862 y Fi(0)846 1898 -y Fr(y)g Fu(=)f(\()p Fs(s)40 b Fr(x)p Fu(\)!)2409 b Fh(2)283 -2186 y Fp(Structural)45 b(op)t(erational)i(seman)l(tics)283 -2371 y Fu(The)29 b(partial)d(correctness)k(of)e(the)h(factorial)c -(statemen)m(t)k(can)f(also)f(b)s(e)h(established)h(using)e(the)283 -2491 y Fs(structur)-5 b(al)36 b(op)-5 b(er)g(ational)34 -b(semantics)p Fu(.)43 b(The)33 b(prop)s(ert)m(y)g(is)g(then)g(reform)m -(ulated)e(as:)527 2689 y(F)-8 b(or)32 b(all)f(states)i -Fs(s)41 b Fu(and)32 b Fs(s)1433 2653 y Fi(0)1457 2689 -y Fu(,)g(if)742 2891 y Ft(h)p Fr(y)g Fu(:=)h Fr(1)p Fu(;)g -Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f -Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h -Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(\),)i Fs(s)8 -b Ft(i)32 b(\))3072 2855 y Fi(\003)3144 2891 y Fs(s)3192 -2855 y Fi(0)527 3093 y Fu(then)i Fs(s)798 3056 y Fi(0)853 -3093 y Fr(y)f Fu(=)g(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(and)32 -b Fs(s)41 b Fr(x)33 b Fo(>)f Fw(0)283 3291 y Fu(Again)g(it)g(is)g(w)m -(orth)m(while)g(to)g(approac)m(h)h(the)g(pro)s(of)f(in)g(stages:)283 -3489 y Fw(Stage)38 b(1:)49 b Fu(W)-8 b(e)33 b(pro)m(v)m(e)h(b)m(y)g -(induction)d(on)i(the)g(length)f(of)g(deriv)-5 b(ation)31 -b(sequences)36 b(that)527 3657 y(if)c Ft(h)p Fr(while)h -Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p -Fr(y)f Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)32 b(\))2617 -3621 y Fn(k)2690 3657 y Fs(s)2738 3621 y Fi(0)527 3824 -y Fu(then)i Fs(s)798 3788 y Fi(0)853 3824 y Fr(y)f Fu(=)g(\()p -Fs(s)40 b Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 b -Fr(x)p Fu(\)!)i(and)33 b Fs(s)1883 3788 y Fi(0)1939 3824 -y Fr(x)g Fu(=)f Fw(1)h Fu(and)f Fs(s)41 b Fr(x)33 b Fo(>)f -Fw(0)283 4026 y(Stage)38 b(2:)49 b Fu(W)-8 b(e)33 b(pro)m(v)m(e)h(that) -527 4194 y(if)e Ft(h)p Fr(y)g Fu(:=)h Fr(1)p Fu(;)g Fr(while)g -Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p -Fr(y)f Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\),)i Fs(s)8 b Ft(i)32 b(\))2947 -4158 y Fi(\003)3019 4194 y Fs(s)3067 4158 y Fi(0)527 -4361 y Fu(then)i Fs(s)798 4325 y Fi(0)853 4361 y Fr(y)f -Fu(=)g(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(and)32 b Fs(s)41 -b Fr(x)33 b Fo(>)f Fw(0)283 4583 y(Exercise)37 b(6.3)49 -b Fu(Complete)32 b(the)h(pro)s(of)e(of)i(stages)g(1)f(and)h(2.)1154 -b Fh(2)283 4871 y Fp(Denotational)48 b(seman)l(tics)283 -5055 y Fu(W)-8 b(e)25 b(shall)e(no)m(w)i(use)g(the)g(denotational)d -(seman)m(tics)i(to)g(pro)m(v)m(e)i(partial)c(correctness)k(prop)s -(erties)283 5176 y(of)32 b(statemen)m(ts.)44 b(The)34 -b(idea)d(is)h(to)g(form)m(ulate)e(the)j(prop)s(ert)m(y)g(as)f(a)g -Fs(pr)-5 b(e)g(dic)g(ate)39 b Fo( )d Fu(on)c(the)h(ccp)s(o)283 -5296 y(\()p Fw(State)g Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(,)f Ft(v)q Fu(\),)g(that)h(is)527 5494 y Fo( )t Fu(:)44 -b(\()p Fw(State)32 b Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(\))f Ft(!)h Fw(T)p eop -%%Page: 173 183 -173 182 bop 0 130 a Fw(6.1)112 b(Direct)36 b(pro)s(ofs)i(of)g(program)f -(correctness)1242 b(173)p 0 193 3473 4 v 0 515 a Fu(As)38 -b(an)g(example,)g(the)g(partial)d(correctness)40 b(of)d(the)h -(factorial)d(statemen)m(t)j(will)e(b)s(e)i(written)0 -636 y(as)244 830 y Fo( )311 845 y Fc(f)7 b(ac)424 830 -y Fu(\()p Ft(S)530 845 y Fn(ds)601 830 y Fu([)-17 b([)q -Fr(y)33 b Fu(:=)f Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f -Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])r(\))32 b(=)h Fw(tt)0 1025 y Fu(where)h(the)f -(predicate)g Fo( )940 1040 y Fc(f)7 b(ac)1085 1025 y -Fu(is)33 b(de\014ned)h(b)m(y)458 1219 y Fo( )525 1234 -y Fc(f)7 b(ac)639 1219 y Fu(\()p Fs(g)i Fu(\))32 b(=)g -Fw(tt)244 1380 y Fu(if)f(and)i(only)f(if)510 1547 y(for)d(all)f(states) -j Fs(s)38 b Fu(and)30 b Fs(s)1377 1511 y Fi(0)1401 1547 -y Fu(,)g(if)f Fs(g)39 b(s)f Fu(=)29 b Fs(s)1860 1511 -y Fi(0)1914 1547 y Fu(then)k Fs(s)2184 1511 y Fi(0)2240 -1547 y Fr(y)f Fu(=)h(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(and)33 -b Fs(s)40 b Fr(x)33 b Fo(>)g Fw(0)146 1742 y Fu(A)24 -b(predicate)h Fo( )t Fu(:)39 b Fs(D)33 b Ft(!)24 b Fw(T)g -Fu(de\014ned)h(on)f(a)g(ccp)s(o)h(\()p Fs(D)9 b Fu(,)p -Ft(v)p Fu(\))24 b(is)g(called)f(an)h Fs(admissible)h(pr)-5 -b(e)g(dic)g(ate)0 1862 y Fu(if)31 b(and)i(only)f(if)g(w)m(e)h(ha)m(v)m -(e)244 2057 y(if)e Fo( )37 b Fs(d)42 b Fu(=)33 b Fw(tt)f -Fu(for)g(all)e Fs(d)43 b Ft(2)33 b Fs(Y)52 b Fu(then)33 -b Fo( )t Fu(\()1681 1990 y Fg(F)1750 2057 y Fs(Y)20 b -Fu(\))32 b(=)h Fw(tt)0 2251 y Fu(for)j(ev)m(ery)j(c)m(hain)d -Fs(Y)57 b Fu(in)36 b Fs(D)9 b Fu(.)36 b(Th)m(us)j(if)c -Fo( )41 b Fu(holds)36 b(on)h(all)e(the)i(elemen)m(ts)g(of)f(the)h(c)m -(hain)g(then)g(it)0 2372 y(also)32 b(holds)g(on)g(the)h(least)g(upp)s -(er)g(b)s(ound)f(of)h(the)g(c)m(hain.)0 2588 y Fw(Example)k(6.4)48 -b Fu(Consider)33 b(the)g(predicate)g Fo( )1719 2552 y -Fi(0)1719 2613 y Fc(f)7 b(ac)1865 2588 y Fu(de\014ned)34 -b(on)f Fw(State)f Fo(,)-17 b Ft(!)33 b Fw(State)f Fu(b)m(y)458 -2783 y Fo( )525 2747 y Fi(0)525 2807 y Fc(f)7 b(ac)639 -2783 y Fu(\()p Fs(g)i Fu(\))32 b(=)g Fw(tt)244 2943 y -Fu(if)f(and)i(only)f(if)458 3144 y(for)h(all)d(states)j -Fs(s)41 b Fu(and)33 b Fs(s)1339 3108 y Fi(0)1362 3144 -y Fu(,)g(if)e Fs(g)41 b(s)g Fu(=)32 b Fs(s)1834 3108 -y Fi(0)458 3311 y Fu(then)i Fs(s)729 3275 y Fi(0)785 -3311 y Fr(y)e Fu(=)h(\()p Fs(s)40 b Fr(y)p Fu(\))33 b -Fo(?)f Fu(\()p Fs(s)41 b Fr(x)p Fu(\)!)i(and)33 b Fs(s)41 -b Fr(x)33 b Fo(>)f Fw(0)0 3512 y Fu(Then)43 b Fo( )331 -3476 y Fi(0)331 3536 y Fc(f)7 b(ac)486 3512 y Fu(is)41 -b(an)h(admissible)e(predicate.)71 b(T)-8 b(o)42 b(see)g(this)g(assume)g -(that)g Fs(Y)61 b Fu(is)41 b(a)h(c)m(hain)f(in)0 3632 -y Fw(State)34 b Fo(,)-17 b Ft(!)33 b Fw(State)h Fu(and)g(assume)g(that) -g Fo( )1530 3596 y Fi(0)1530 3657 y Fc(f)7 b(ac)1677 -3632 y Fs(g)42 b Fu(=)33 b Fw(tt)g Fu(for)g(all)f Fs(g)42 -b Ft(2)34 b Fs(Y)20 b Fu(.)33 b(W)-8 b(e)35 b(shall)d(then)i(pro)m(v)m -(e)0 3753 y(that)e Fo( )278 3716 y Fi(0)278 3777 y Fc(f)7 -b(ac)392 3753 y Fu(\()430 3686 y Fg(F)499 3753 y Fs(Y)20 -b Fu(\))32 b(=)g Fw(tt)p Fu(,)g(that)h(is)458 3947 y(\()496 -3881 y Fg(F)566 3947 y Fs(Y)19 b Fu(\))33 b Fs(s)40 b -Fu(=)33 b Fs(s)965 3911 y Fi(0)244 4107 y Fu(implies)458 -4308 y Fs(s)506 4272 y Fi(0)562 4308 y Fr(y)g Fu(=)g(\()p -Fs(s)40 b Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 b -Fr(x)p Fu(\)!)i(and)33 b Fs(s)41 b Fr(x)32 b Fo(>)h Fw(0)0 -4508 y Fu(F)-8 b(rom)23 b(Lemma)g(4.25)g(w)m(e)j(ha)m(v)m(e)f(graph\() -1419 4442 y Fg(F)1488 4508 y Fs(Y)20 b Fu(\))k(=)1742 -4442 y Fg(S)1812 4508 y Ft(f)g Fu(graph\()p Fs(g)9 b -Fu(\))23 b Ft(j)h Fs(g)33 b Ft(2)25 b Fs(Y)44 b Ft(g)p -Fu(.)c(W)-8 b(e)25 b(ha)m(v)m(e)h(assumed)0 4629 y(that)34 -b(\()251 4562 y Fg(F)320 4629 y Fs(Y)20 b Fu(\))32 b -Fs(s)41 b Fu(=)32 b Fs(s)719 4593 y Fi(0)776 4629 y Fu(so)j -Fs(Y)53 b Fu(cannot)34 b(b)s(e)h(empt)m(y)f(and)g Ft(h)p -Fs(s)8 b Fu(,)35 b Fs(s)2166 4593 y Fi(0)2189 4629 y -Ft(i)f(2)g Fu(graph\()p Fs(g)9 b Fu(\))33 b(for)h(some)g -Fs(g)42 b Ft(2)35 b Fs(Y)19 b Fu(.)0 4749 y(But)33 b(then)244 -4944 y Fs(s)292 4908 y Fi(0)348 4944 y Fr(y)g Fu(=)f(\()p -Fs(s)40 b Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 b -Fr(x)p Fu(\)!)j(and)32 b Fs(s)41 b Fr(x)33 b Fo(>)f Fw(0)0 -5138 y Fu(as)g Fo( )186 5102 y Fi(0)186 5163 y Fc(f)7 -b(ac)331 5138 y Fs(g)40 b Fu(=)31 b Fw(tt)g Fu(for)g(all)e -Fs(g)40 b Ft(2)32 b Fs(Y)20 b Fu(.)32 b(This)f(pro)m(v)m(es)j(that)d -Fo( )2057 5102 y Fi(0)2057 5163 y Fc(f)7 b(ac)2202 5138 -y Fu(is)31 b(an)h(admissible)d(predicate.)76 b Fh(2)146 -5355 y Fu(F)-8 b(or)29 b(admissible)e(predicates)k(w)m(e)f(ha)m(v)m(e)h -(the)f(follo)m(wing)c(induction)j(principle)f(called)g -Fs(\014xe)-5 b(d)0 5475 y(p)g(oint)35 b(induction)p Fu(:)p -eop -%%Page: 174 184 -174 183 bop 251 130 a Fw(174)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 3473 5 v 283 684 a(Theorem)38 b(6.5)49 b Fu(Let)34 -b(\()p Fs(D)9 b Fu(,)p Ft(v)q Fu(\))34 b(b)s(e)h(a)f(ccp)s(o)h(and)f -(let)g Fs(f)21 b Fu(:)47 b Fs(D)d Ft(!)34 b Fs(D)43 b -Fu(b)s(e)35 b(a)f(con)m(tin)m(uous)h(function)283 804 -y(and)e(let)f Fo( )37 b Fu(b)s(e)32 b(an)h(admissible)d(predicate)j(on) -g Fs(D)9 b Fu(.)32 b(If)h(for)f(all)e Fs(d)43 b Ft(2)33 -b Fs(D)527 1001 y Fo( )k Fs(d)43 b Fu(=)32 b Fw(tt)g -Fu(implies)e Fo( )t Fu(\()p Fs(f)53 b(d)10 b Fu(\))33 -b(=)f Fw(tt)283 1198 y Fu(then)i Fo( )t Fu(\(FIX)e Fs(f)21 -b Fu(\))32 b(=)h Fw(tt)p Fu(.)p 283 1319 V 283 1516 a -Fw(Pro)s(of:)38 b Fu(W)-8 b(e)33 b(shall)e(\014rst)i(note)g(that)527 -1713 y Fo( )k Ft(?)c Fu(=)f Fw(tt)283 1910 y Fu(holds)k(b)m(y)i -(admissibilit)m(y)32 b(of)k Fo( )k Fu(\(applied)35 b(to)h(the)h(c)m -(hain)f Fs(Y)56 b Fu(=)36 b Ft(;)p Fu(\).)54 b(By)37 -b(induction)e(on)h(n)h(w)m(e)283 2031 y(can)c(then)h(sho)m(w)f(that)527 -2228 y Fo( )t Fu(\()p Fs(f)683 2192 y Fn(n)759 2228 y -Ft(?)q Fu(\))f(=)g Fw(tt)283 2425 y Fu(using)f(the)f(assumptions)h(of)e -(the)i(theorem.)43 b(By)31 b(admissibilit)m(y)c(of)j -Fo( )k Fu(\(applied)29 b(to)h(the)h(c)m(hain)283 2546 -y Fs(Y)53 b Fu(=)32 b Ft(f)g Fs(f)649 2509 y Fn(n)725 -2546 y Ft(?)h(j)f Fu(n)h Ft(\025)g Fu(0)f Ft(g)p Fu(\))h(w)m(e)g(then)g -(ha)m(v)m(e)527 2743 y Fo( )t Fu(\(FIX)g Fs(f)21 b Fu(\))32 -b(=)h Fw(tt)283 2940 y Fu(This)g(completes)g(the)g(pro)s(of.)2306 -b Fh(2)430 3143 y Fu(W)-8 b(e)42 b(are)g(no)m(w)g(in)f(a)h(p)s(osition) -e(where)j(w)m(e)g(can)f(pro)m(v)m(e)h(the)g(partial)c(correctness)44 -b(of)d(the)283 3264 y(factorial)31 b(statemen)m(t.)44 -b(The)33 b(\014rst)g(observ)-5 b(ation)32 b(is)g(that)527 -3461 y Ft(S)595 3476 y Fn(ds)666 3461 y Fu([)-17 b([)q -Fr(y)33 b Fu(:=)f(1;)h Fr(while)g Ft(:)q Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p Fr(y)f Fu(:=)h -Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])r Fs(s)40 b Fu(=)33 b Fs(s)2989 -3425 y Fi(0)283 3658 y Fu(if)f(and)h(only)f(if)527 3856 -y Ft(S)595 3871 y Fn(ds)666 3856 y Fu([)-17 b([)q Fr(while)34 -b Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g -Fu(\()p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g -Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(\)])-17 b(])r(\()p -Fs(s)8 b Fu([)p Fr(y)p Ft(7!)p Fw(1)p Fu(]\))33 b(=)f -Fs(s)2998 3819 y Fi(0)283 4053 y Fu(Th)m(us)j(it)c(is)h(su\016cien)m(t) -i(to)e(pro)m(v)m(e)i(that)552 4220 y Fo( )619 4184 y -Fi(0)619 4245 y Fc(f)7 b(ac)733 4220 y Fu(\()p Ft(S)838 -4235 y Fn(ds)910 4220 y Fu([)-17 b([)p Fr(while)34 b -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)g -Fr(x)p Ft(\000)p Fr(1)p Fu(\)])-17 b(])q(\))33 b(=)f -Fw(tt)697 b Fu(\(*\))283 4388 y(\(where)34 b Fo( )670 -4352 y Fi(0)670 4413 y Fc(f)7 b(ac)816 4388 y Fu(is)32 -b(de\014ned)i(in)e(Example)g(6.4\))g(as)h(this)f(will)e(imply)h(that) -527 4585 y Fo( )594 4600 y Fc(f)7 b(ac)708 4585 y Fu(\()p -Ft(S)813 4600 y Fn(ds)885 4585 y Fu([)-17 b([)p Fr(y)33 -b Fu(:=)g Fr(1)p Fu(;)f Fr(while)i Ft(:)q Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))e Fr(do)i Fu(\()p Fr(y)e Fu(:=)h -Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)f Fu(:=)h Fr(x)p Ft(\000)p -Fr(1)p Fu(\)])-17 b(])q(\))33 b(=)f Fw(tt)430 4782 y -Fu(W)-8 b(e)30 b(shall)e(no)m(w)i(reform)m(ulate)e(\(*\))h(sligh)m(tly) -f(to)i(bring)e(ourselv)m(es)j(in)e(a)g(p)s(osition)f(where)j(w)m(e)283 -4903 y(can)i(use)h(\014xed)g(p)s(oin)m(t)d(induction.)43 -b(Using)32 b(the)h(de\014nition)f(of)g Ft(S)2647 4918 -y Fn(ds)2751 4903 y Fu(in)g(T)-8 b(able)32 b(4.1)g(w)m(e)i(ha)m(v)m(e) -527 5100 y Ft(S)595 5115 y Fn(ds)666 5100 y Fu([)-17 -b([)q Fr(while)34 b Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p -Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p -Fu(\)])-17 b(])34 b(=)f(FIX)f Fs(F)283 5297 y Fu(where)i(the)f -(functional)e Fs(F)46 b Fu(is)32 b(de\014ned)i(b)m(y)527 -5494 y Fs(F)46 b(g)41 b Fu(=)32 b(cond\()p Ft(B)t Fu([)-17 -b([)q Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\)])g(])q(,)33 -b Fs(g)41 b Ft(\016)32 b(S)1830 5509 y Fn(ds)1901 5494 -y Fu([)-17 b([)q Fr(y)33 b Fu(:=)f Fr(y)p Fo(?)p Fr(x)p -Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(])-17 -b(])r(,)32 b(id\))p eop -%%Page: 175 185 -175 184 bop 0 130 a Fw(6.2)112 b(P)m(artial)36 b(correctness)h -(assertions)1619 b(175)p 0 193 3473 4 v 0 515 a Fu(Using)32 -b(the)h(seman)m(tic)f(equations)h(de\014ning)g Ft(S)1720 -530 y Fn(ds)1823 515 y Fu(w)m(e)h(can)f(rewrite)f(this)h(de\014nition)e -(as)244 776 y(\()p Fs(F)45 b(g)9 b Fu(\))32 b Fs(s)41 -b Fu(=)704 601 y Fg(8)704 676 y(<)704 826 y(:)820 691 -y Fs(s)1431 b Fu(if)32 b Fs(s)40 b(x)k Fu(=)33 b Fw(1)820 -859 y Fs(g)9 b Fu(\()p Fs(s)f Fu([)p Fr(y)p Ft(7!)o Fu(\()p -Fs(s)41 b Fr(y)p Fu(\))p Fo(?)p Fu(\()p Fs(s)f Fr(x)p -Fu(\)][)p Fr(x)p Ft(7!)q Fu(\()p Fs(s)g Fr(x)p Fu(\))p -Ft(\000)p Fr(1)p Fu(]\))84 b(otherwise)146 1042 y(W)-8 -b(e)29 b(ha)m(v)m(e)g(already)e(seen)i(that)f Fs(F)41 -b Fu(is)27 b(a)h(con)m(tin)m(uous)g(function)f(\(for)h(example)f(in)g -(the)h(pro)s(of)0 1162 y(of)43 b(Prop)s(osition)f(4.47\))h(and)h(from)e -(Example)h(6.4)h(w)m(e)g(ha)m(v)m(e)h(that)f Fo( )2620 -1126 y Fi(0)2620 1187 y Fc(f)7 b(ac)2777 1162 y Fu(is)43 -b(an)g(admissible)0 1282 y(predicate.)h(Th)m(us)34 b(w)m(e)f(see)h -(from)d(Theorem)i(6.5)f(that)h(\(*\))f(follo)m(ws)f(if)h(w)m(e)h(sho)m -(w)h(that)244 1461 y Fo( )311 1425 y Fi(0)311 1486 y -Fc(f)7 b(ac)457 1461 y Fs(g)41 b Fu(=)32 b Fw(tt)g Fu(implies)e -Fo( )1169 1425 y Fi(0)1169 1486 y Fc(f)7 b(ac)1283 1461 -y Fu(\()p Fs(F)45 b(g)9 b Fu(\))32 b(=)g Fw(tt)0 1640 -y Fu(T)-8 b(o)33 b(pro)m(v)m(e)g(this)g(implication)28 -b(assume)33 b(that)g Fo( )1722 1604 y Fi(0)1722 1665 -y Fc(f)7 b(ac)1867 1640 y Fs(g)42 b Fu(=)32 b Fw(tt)p -Fu(,)g(that)g(is)g(for)g(all)f(states)i Fs(s)41 b Fu(and)32 -b Fs(s)3398 1604 y Fi(0)244 1819 y Fu(if)f Fs(g)41 b(s)g -Fu(=)32 b Fs(s)656 1782 y Fi(0)712 1819 y Fu(then)h Fs(s)982 -1782 y Fi(0)1038 1819 y Fr(y)g Fu(=)g(\()p Fs(s)40 b -Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 b Fr(x)p Fu(\)!)i(and)33 -b Fs(s)41 b Fr(x)32 b Fo(>)h Fw(0)0 1997 y Fu(W)-8 b(e)33 -b(shall)e(pro)m(v)m(e)j(that)e Fo( )937 1961 y Fi(0)937 -2022 y Fc(f)7 b(ac)1051 1997 y Fu(\()p Fs(F)45 b(g)9 -b Fu(\))32 b(=)h Fw(tt)p Fu(,)e(that)i(is)f(for)g(all)e(states)k -Fs(s)40 b Fu(and)33 b Fs(s)2767 1961 y Fi(0)244 2176 -y Fu(if)e(\()p Fs(F)46 b(g)9 b Fu(\))32 b Fs(s)40 b Fu(=)33 -b Fs(s)842 2140 y Fi(0)898 2176 y Fu(then)g Fs(s)1168 -2140 y Fi(0)1224 2176 y Fr(y)g Fu(=)f(\()p Fs(s)40 b -Fr(y)p Fu(\))33 b Fo(?)f Fu(\()p Fs(s)41 b Fr(x)p Fu(\)!)j(and)32 -b Fs(s)41 b Fr(x)33 b Fo(>)f Fw(0)0 2355 y Fu(Insp)s(ecting)j(the)g -(de\014nition)f(of)g Fs(F)47 b Fu(w)m(e)36 b(see)g(that)e(there)i(are)e -(t)m(w)m(o)i(cases.)51 b(First)33 b(assume)j(that)0 2475 -y Fs(s)45 b Fr(x)36 b Fu(=)h Fw(1)p Fu(.)55 b(Then)38 -b(\()p Fs(F)46 b(g)9 b Fu(\))32 b Fs(s)40 b Fu(=)33 b -Fs(s)44 b Fu(and)37 b(clearly)f Fs(s)44 b Fr(y)37 b Fu(=)f(\()p -Fs(s)45 b Fr(y)p Fu(\))37 b Fo(?)f Fu(\()p Fs(s)45 b -Fr(x)p Fu(\)!)55 b(and)37 b Fs(s)45 b Fr(x)37 b Fo(>)f -Fw(0)p Fu(.)56 b(Next)0 2596 y(assume)33 b(that)f Fs(s)41 -b Fr(x)33 b Ft(6)p Fu(=)f Fw(1)p Fu(.)44 b(Then)244 2774 -y(\()p Fs(F)h(g)9 b Fu(\))32 b Fs(s)41 b Fu(=)32 b Fs(g)9 -b Fu(\()p Fs(s)f Fu([)p Fr(y)p Ft(7!)p Fu(\()p Fs(s)40 -b Fr(y)p Fu(\))p Fo(?)p Fu(\()p Fs(s)h Fr(x)p Fu(\)][)p -Fr(x)p Ft(7!)p Fu(\()p Fs(s)g Fr(x)p Fu(\))p Ft(\000)p -Fw(1)p Fu(]\))0 2953 y(F)-8 b(rom)31 b(the)i(assumptions)f(ab)s(out)h -Fs(g)41 b Fu(w)m(e)33 b(then)g(get)g(that)244 3132 y -Fs(s)292 3096 y Fi(0)348 3132 y Fr(y)g Fu(=)f(\(\()p -Fs(s)40 b Fr(y)p Fu(\))p Fo(?)p Fu(\()p Fs(s)h Fr(x)p -Fu(\)\))33 b Fo(?)f Fu(\(\()p Fs(s)40 b Fr(x)p Fu(\))p -Ft(\000)p Fw(1)p Fu(\)!)k(and)33 b(\()p Fs(s)41 b Fr(x)p -Fu(\))p Ft(\000)p Fw(1)33 b Fo(>)f Fw(0)0 3311 y Fu(so)h(that)f(the)h -(desired)g(result)244 3489 y Fs(s)292 3453 y Fi(0)348 -3489 y Fr(y)g Fu(=)f(\()p Fs(s)40 b Fr(y)p Fu(\))33 b -Fo(?)f Fu(\()p Fs(s)41 b Fr(x)p Fu(\)!)j(and)32 b Fs(s)41 -b Fr(x)33 b Fo(>)f Fw(0)0 3668 y Fu(follo)m(ws.)0 3863 -y Fw(Exercise)k(6.6)49 b Fu(Rep)s(eat)33 b(Exercise)h(6.1)e(using)g -(the)h(denotational)e(seman)m(tics.)463 b Fh(2)0 4192 -y Fj(6.2)161 b(P)l(artial)55 b(correctness)c(assertions)0 -4411 y Fu(One)30 b(ma)m(y)g(argue)g(that)g(the)g(ab)s(o)m(v)m(e)h(pro)s -(ofs)f(are)g(to)s(o)f(detailed)g(to)h(b)s(e)g(practically)e(useful;)j -(the)0 4531 y(reason)36 b(is)f(that)g(they)h(are)g(to)s(o)e(closely)h -(connected)i(with)e(the)h(seman)m(tics)g(of)e(the)i(program-)0 -4652 y(ming)29 b(language.)42 b(One)32 b(ma)m(y)f(therefore)g(w)m(an)m -(t)h(to)f(capture)h(the)f Fs(essential)i(pr)-5 b(op)g(erties)38 -b Fu(of)31 b(the)0 4772 y(v)-5 b(arious)42 b(constructs)i(so)f(that)f -(it)f(w)m(ould)i(b)s(e)g(less)g(demanding)e(to)h(conduct)i(pro)s(ofs)e -(ab)s(out)0 4893 y(giv)m(en)35 b(programs.)48 b(Of)34 -b(course)i(the)f(c)m(hoice)g(of)f(\\essen)m(tial)g(prop)s(erties")h -(will)d(determine)i(the)0 5013 y(sort)42 b(of)g(prop)s(erties)g(that)f -(w)m(e)i(ma)m(y)f(accomplish)f(pro)m(ving.)71 b(In)43 -b(this)e(section)i(w)m(e)g(shall)d(b)s(e)0 5133 y(in)m(terested)29 -b(in)e(partial)f(correctness)k(prop)s(erties)e(and)h(therefore)f(the)h -(\\essen)m(tial)f(prop)s(erties")0 5254 y(of)k(the)h(v)-5 -b(arious)32 b(constructs)i(will)c(not)j(include)f(termination.)146 -5374 y(The)41 b(idea)e(is)g(to)g(sp)s(ecify)h(prop)s(erties)g(of)f -(programs)g(as)g Fs(assertions)p Fu(,)i(or)e(claims,)h(ab)s(out)0 -5494 y(them.)j(An)33 b(assertion)g(is)f(a)g(triple)f(of)h(the)h(form)p -eop -%%Page: 176 186 -176 185 bop 251 130 a Fw(176)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Ft(f)33 b Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 -b Fs(Q)41 b Ft(g)283 761 y Fu(where)29 b Fs(S)40 b Fu(is)27 -b(a)h(statemen)m(t)g(and)g Fs(P)38 b Fu(and)28 b Fs(Q)36 -b Fu(are)28 b(predicates.)43 b(Here)28 b Fs(P)38 b Fu(is)27 -b(called)g(the)h Fs(pr)-5 b(e)g(c)g(ondi-)283 881 y(tion)37 -b Fu(and)29 b Fs(Q)37 b Fu(is)29 b(called)e(the)j Fs(p)-5 -b(ostc)g(ondition)p Fu(.)83 b(In)m(tuitiv)m(ely)-8 b(,)29 -b(the)g(meaning)f(of)g Ft(f)33 b Fs(P)42 b Ft(g)33 b -Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)283 1001 y Fu(is)33 -b(that)527 1246 y Fs(if)54 b(P)43 b Fu(holds)32 b(in)g(the)h(initial)28 -b(state,)34 b(and)527 1414 y Fs(if)54 b Fu(the)33 b(execution)g(of)f -Fs(S)44 b Fu(terminates)32 b(when)i(started)f(in)f(that)g(state,)527 -1582 y Fs(then)40 b(Q)i Fu(will)30 b(hold)i(in)g(the)h(state)g(in)e -(whic)m(h)j Fs(S)44 b Fu(halts)283 1827 y(Note)33 b(that)f(for)g -Ft(f)g Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 b Fs(Q)41 -b Ft(g)32 b Fu(to)g(hold)g(w)m(e)i(do)e Fs(not)42 b Fu(require)32 -b(that)h Fs(S)44 b Fu(halts)32 b(when)h(started)283 1947 -y(in)28 b(states)h(satisfying)e Fs(P)38 b Fu(|)27 b(merely)h(that)g -Fs(if)48 b Fu(it)27 b(do)s(es)i(halt)e Fs(then)35 b(Q)i -Fu(holds)28 b(in)f(the)h(\014nal)f(state.)283 2288 y -Fp(Logical)46 b(v)-7 b(ariables)283 2489 y Fu(As)34 b(an)e(example)g(w) -m(e)i(ma)m(y)e(write)552 2657 y Ft(f)h Fr(x)p Fu(=)p -Fr(n)f Ft(g)h Fr(y)g Fu(:=)f Fr(1)p Fu(;)h Fr(while)h -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(x)p Fo(?)p Fr(y)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\))i Ft(f)e Fr(y)p Fu(=)p -Fr(n)p Fu(!)44 b Ft(^)33 b Fr(n)p Fo(>)p Fu(0)f Ft(g)283 -2825 y Fu(to)45 b(express)i(that)d(if)g(the)h(v)-5 b(alue)44 -b(of)g Fr(x)h Fu(is)f(equal)g(to)h(the)g(v)-5 b(alue)44 -b(of)g Fr(n)h Fs(b)-5 b(efor)g(e)51 b Fu(the)45 b(factorial)283 -2945 y(program)32 b(is)g(executed)j(then)e(the)g(v)-5 -b(alue)32 b(of)g Fr(y)h Fu(will)d(b)s(e)j(equal)g(to)f(the)h(factorial) -d(of)i(the)h(v)-5 b(alue)283 3065 y(of)36 b Fr(n)g Fs(after)46 -b Fu(the)36 b(execution)h(of)e(the)h(program)e(has)j(terminated)d(\(if) -h(indeed)h(it)f(terminates\).)283 3186 y(Here)46 b Fr(n)e -Fu(is)h(a)f(sp)s(ecial)f(v)-5 b(ariable)43 b(called)g(a)i -Fs(lo)-5 b(gic)g(al)53 b Fu(v)-5 b(ariable)43 b(and)i(these)h(logical) -41 b(v)-5 b(ariables)283 3306 y(m)m(ust)42 b(not)f(app)s(ear)g(in)f(an) -m(y)i(statemen)m(t)f(considered.)70 b(The)42 b(role)f(of)f(these)j(v)-5 -b(ariables)40 b(is)g(to)283 3426 y(\\remem)m(b)s(er")f(the)g(initial)c -(v)-5 b(alues)39 b(of)g(the)g(program)f(v)-5 b(ariables.)61 -b(Note)39 b(that)g(if)f(w)m(e)i(replace)283 3547 y(the)g(p)s -(ostcondition)e Fr(y)p Fu(=)p Fr(n)p Fu(!)63 b Ft(^)39 -b Fr(n)p Fo(>)p Fu(0)g(b)m(y)h(the)g(new)g(p)s(ostcondition)d -Fr(y)p Fu(=)p Fr(x)p Fu(!)63 b Ft(^)40 b Fr(x)p Fo(>)p -Fu(0)f(then)g(the)283 3667 y(assertion)j(ab)s(o)m(v)m(e)h(will)c -(express)44 b(a)d(relationship)f(b)s(et)m(w)m(een)k(the)e(\014nal)f(v) --5 b(alue)41 b(of)g Fr(y)h Fu(and)f(the)283 3788 y(\014nal)36 -b(v)-5 b(alue)35 b(of)g Fr(x)i Fu(and)f(this)f(is)h(not)f(what)i(w)m(e) -g(w)m(an)m(t.)54 b(The)37 b(use)g(of)e(logical)e(v)-5 -b(ariables)35 b(solv)m(es)283 3908 y(the)e(problem)f(b)s(ecause)i(it)d -(allo)m(ws)h(us)h(to)f(refer)h(to)f(initial)d(v)-5 b(alues)33 -b(of)f(v)-5 b(ariables.)430 4037 y(W)d(e)33 b(shall)e(th)m(us)j -(distinguish)d(b)s(et)m(w)m(een)j(t)m(w)m(o)g(kinds)f(of)f(v)-5 -b(ariables:)429 4282 y Ft(\017)48 b Fu(program)32 b(v)-5 -b(ariables,)31 b(and)429 4527 y Ft(\017)48 b Fu(logical)30 -b(v)-5 b(ariables.)283 4772 y(The)40 b(states)g(will)d(determine)h(the) -i(v)-5 b(alues)38 b(of)h(b)s(oth)f(kinds)i(of)e(v)-5 -b(ariables)38 b(and)h(since)g(logical)283 4893 y(v)-5 -b(ariables)35 b(do)h(not)g(o)s(ccur)g(in)f(programs)h(their)f(v)-5 -b(alues)36 b(will)e(alw)m(a)m(ys)i(b)s(e)h(the)f(same.)54 -b(In)36 b(case)283 5013 y(of)42 b(the)h(factorial)d(program)h(w)m(e)i -(kno)m(w)g(that)f(the)h(v)-5 b(alue)42 b(of)f Fr(n)i -Fu(is)f(the)g(same)g(in)g(the)h(initial)283 5133 y(state)30 -b(and)g(in)e(the)i(\014nal)f(state.)43 b(The)30 b(precondition)e -Fr(x)33 b Fu(=)g Fr(n)c Fu(expresses)k(that)c Fr(n)g -Fu(has)h(the)g(same)283 5254 y(v)-5 b(alue)28 b(as)h -Fr(x)g Fu(in)e(the)i(initial)c(state.)43 b(Since)28 b(the)h(program)e -(will)f(not)j(c)m(hange)g(the)g(v)-5 b(alue)28 b(of)g -Fr(n)g Fu(the)283 5374 y(p)s(ostcondition)j Fr(y)h Fu(=)g -Fr(n)p Fu(!)43 b(will)30 b(express)k(that)d(the)i(\014nal)e(v)-5 -b(alue)31 b(of)g Fr(y)h Fu(is)g(equal)g(to)f(the)h(factorial)283 -5494 y(of)h(the)g(initial)28 b(v)-5 b(alue)32 b(of)g -Fr(x)p Fu(.)p eop -%%Page: 177 187 -177 186 bop 0 130 a Fw(6.2)112 b(P)m(artial)36 b(correctness)h -(assertions)1619 b(177)p 0 193 3473 4 v 0 515 a Fp(The)44 -b(assertion)j(language)0 704 y Fu(There)37 b(are)f(t)m(w)m(o)g(approac) -m(hes)h(concerning)f(ho)m(w)g(to)g(sp)s(ecify)g(the)g(preconditions)f -(and)h(p)s(ost-)0 824 y(conditions)c(of)g(the)h(assertions:)145 -1037 y Ft(\017)49 b Fu(the)33 b(in)m(tensional)e(approac)m(h,)i(v)m -(ersus)145 1249 y Ft(\017)49 b Fu(the)33 b(extensional)f(approac)m(h.)0 -1461 y(In)f(the)g Fs(intensional)h(appr)-5 b(o)g(ach)37 -b Fu(the)32 b(idea)e(is)g(to)g(in)m(tro)s(duce)h(an)g(explicit)e -(language)h(called)f(an)0 1582 y Fs(assertion)f(language)33 -b Fu(and)26 b(then)h(the)f(conditions)g(will)d(b)s(e)k(form)m(ulae)d -(of)i(that)g(language.)40 b(This)0 1702 y(assertion)28 -b(language)f(is)g(in)g(general)h(m)m(uc)m(h)g(more)g(p)s(o)m(w)m(erful) -g(than)g(the)g(b)s(o)s(olean)f(expressions,)0 1822 y -Fw(Bexp)p Fu(,)46 b(in)m(tro)s(duced)d(in)f(Chapter)h(1.)74 -b(In)44 b(fact)e(the)i(assertion)e(language)g(has)h(to)g(b)s(e)g(v)m -(ery)0 1943 y(p)s(o)m(w)m(erful)35 b(indeed)g(in)e(order)i(to)f(b)s(e)h -(able)f(to)g(express)j(all)c(the)i(preconditions)f(and)h(p)s(ostcon-)0 -2063 y(ditions)g(w)m(e)i(ma)m(y)f(b)s(e)h(in)m(terested)g(in;)g(w)m(e)g -(shall)e(return)i(to)f(this)g(in)f(the)i(next)g(section.)54 -b(The)0 2184 y(approac)m(h)36 b(w)m(e)g(shall)d(follo)m(w)h(is)g(the)i -Fs(extensional)g(appr)-5 b(o)g(ach)41 b Fu(and)35 b(it)f(is)h(a)g(kind) -g(of)g(shortcut.)0 2304 y(The)41 b(idea)e(is)g(that)h(the)g(conditions) -f(are)g(predicates,)k(that)c(is)h(functions)f(in)g Fw(State)h -Ft(!)f Fw(T)p Fu(.)0 2424 y(Th)m(us)31 b(the)e(meaning)f(of)g -Ft(f)h Fs(P)39 b Ft(g)29 b Fs(S)41 b Ft(f)29 b Fs(Q)38 -b Ft(g)29 b Fu(ma)m(y)f(b)s(e)i(reform)m(ulated)d(as)j(sa)m(ying)f -(that)g(if)e Fs(P)40 b Fu(holds)0 2545 y(on)31 b(a)g(state)g -Fs(s)40 b Fu(and)31 b(if)f Fs(S)43 b Fu(executed)33 b(from)d(state)h -Fs(s)39 b Fu(results)32 b(in)e(the)i(state)f Fs(s)2725 -2509 y Fi(0)2780 2545 y Fu(then)g Fs(Q)41 b Fu(holds)30 -b(on)0 2665 y Fs(s)48 2629 y Fi(0)71 2665 y Fu(.)48 b(W)-8 -b(e)34 b(can)h(write)e(an)m(y)i(predicates)f(w)m(e)h(lik)m(e)f(and)g -(therefore)g(the)h(expressiv)m(eness)j(problem)0 2786 -y(men)m(tioned)32 b(ab)s(o)m(v)m(e)i(do)s(es)f(not)f(arise.)146 -2908 y(Eac)m(h)40 b(b)s(o)s(olean)d(expression)j Fs(b)45 -b Fu(de\014nes)40 b(a)e(predicate)h Ft(B)s Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])q(.)61 b(W)-8 b(e)39 b(shall)f(feel)g(free)h(to)f -(let)0 3028 y Fs(b)i Fu(include)34 b(logical)d(v)-5 b(ariables)32 -b(as)j(w)m(ell)e(as)h(program)f(v)-5 b(ariables)33 b(so)h(the)h -(precondition)e Fr(x)g Fu(=)f Fr(n)0 3148 y Fu(used)44 -b(ab)s(o)m(v)m(e)g(is)e(an)h(example)g(of)f(a)h(b)s(o)s(olean)e -(expression.)76 b(T)-8 b(o)43 b(ease)h(the)g(readabilit)m(y)-8 -b(,)43 b(w)m(e)0 3269 y(in)m(tro)s(duce)33 b(the)g(follo)m(wing)c -(notation)294 3473 y Fs(P)370 3488 y Fn(1)442 3473 y -Ft(^)k Fs(P)617 3488 y Fn(2)892 3473 y Fu(for)99 b Fs(P)43 -b Fu(where)34 b Fs(P)43 b(s)e Fu(=)32 b(\()p Fs(P)1911 -3488 y Fn(1)1983 3473 y Fs(s)8 b Fu(\))33 b(and)f(\()p -Fs(P)2405 3488 y Fn(2)2478 3473 y Fs(s)8 b Fu(\))294 -3640 y Fs(P)370 3655 y Fn(1)442 3640 y Ft(_)33 b Fs(P)617 -3655 y Fn(2)892 3640 y Fu(for)99 b Fs(P)43 b Fu(where)34 -b Fs(P)43 b(s)e Fu(=)32 b(\()p Fs(P)1911 3655 y Fn(1)1983 -3640 y Fs(s)8 b Fu(\))33 b(or)f(\()p Fs(P)2335 3655 y -Fn(2)2407 3640 y Fs(s)8 b Fu(\))294 3808 y Ft(:)p Fs(P)466 -b Fu(for)99 b Fs(P)1184 3772 y Fi(0)1241 3808 y Fu(where)33 -b Fs(P)1598 3772 y Fi(0)1655 3808 y Fs(s)40 b Fu(=)33 -b Ft(:)p Fu(\()p Fs(P)43 b(s)8 b Fu(\))294 3976 y Fs(P)i -Fu([)p Fs(x)i Ft(7!A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q(])99 b(for)g Fs(P)1184 3940 y Fi(0)1241 3976 y -Fu(where)33 b Fs(P)1598 3940 y Fi(0)1655 3976 y Fs(s)40 -b Fu(=)33 b Fs(P)42 b Fu(\()p Fs(s)8 b Fu([)p Fs(x)k -Ft(7!A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 -b Fu(]\))294 4143 y Fs(P)370 4158 y Fn(1)442 4143 y Ft(\))32 -b Fs(P)650 4158 y Fn(2)892 4143 y Fu(for)99 b Ft(8)q -Fs(s)40 b Ft(2)33 b Fw(State)p Fu(:)44 b Fs(P)1745 4158 -y Fn(1)1817 4143 y Fs(s)d Fu(implies)30 b Fs(P)2305 4158 -y Fn(2)2377 4143 y Fs(s)0 4349 y Fu(When)49 b(it)e(is)g(con)m(v)m -(enien)m(t,)54 b(but)48 b(not)g(when)h(de\014ning)f(formal)d(inference) -k(rules,)j(w)m(e)d(shall)0 4469 y(allo)m(w)33 b(to)i(disp)s(ense)h -(with)e Ft(B)t Fu([)-17 b([)p Ft(\001)17 b(\001)g(\001)o -Fu(])-17 b(])35 b(and)g Ft(A)p Fu([)-17 b([)p Ft(\001)17 -b(\001)g(\001)n Fu(])-17 b(])36 b(inside)e(square)i(brac)m(k)m(ets)h -(as)e(w)m(ell)f(as)h(within)0 4590 y(preconditions)d(and)h(p)s -(ostconditions.)0 4832 y Fw(Exercise)j(6.7)49 b Fu(Sho)m(w)34 -b(that)145 5045 y Ft(\017)49 b(B)s Fu([)-17 b([)q Fs(b)6 -b Fu([)p Fs(x)12 b Ft(7!)o Fs(a)7 b Fu(]])-17 b(])34 -b(=)e Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q([)p -Fs(x)12 b Ft(7!)o(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q(])33 b(for)f(all)e Fs(b)39 b Fu(and)33 b Fs(a)7 -b Fu(,)145 5257 y Ft(\017)49 b(B)s Fu([)-17 b([)q Fs(b)401 -5272 y Fn(1)473 5257 y Ft(^)33 b Fs(b)623 5272 y Fn(2)662 -5257 y Fu(])-17 b(])33 b(=)g Ft(B)s Fu([)-17 b([)q Fs(b)998 -5272 y Fn(1)1037 5257 y Fu(])g(])33 b Ft(^)g(B)t Fu([)-17 -b([)p Fs(b)1363 5272 y Fn(2)1403 5257 y Fu(])g(])33 b(for)f(all)e -Fs(b)1808 5272 y Fn(1)1880 5257 y Fu(and)j Fs(b)2121 -5272 y Fn(2)2160 5257 y Fu(,)g(and)145 5470 y Ft(\017)49 -b(B)s Fu([)-17 b([)q Ft(:)p Fs(b)6 b Fu(])-17 b(])33 -b(=)g Ft(:B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 -b(for)f(all)f Fs(b)6 b Fu(.)2096 b Fh(2)p eop -%%Page: 178 188 -178 187 bop 251 130 a Fw(178)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -419 V 283 2136 4 1717 v 715 528 a Fu([ass)867 543 y Fn(p)912 -528 y Fu(])201 b Ft(f)32 b Fs(P)10 b Fu([)p Fs(x)i Ft(7!A)p -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(]])33 b Ft(g)f Fs(x)45 -b Fu(:=)32 b Fs(a)40 b Ft(f)32 b Fs(P)43 b Ft(g)715 696 -y Fu([skip)913 711 y Fn(p)957 696 y Fu(])156 b Ft(f)32 -b Fs(P)43 b Ft(g)33 b Fr(skip)g Ft(f)g Fs(P)42 b Ft(g)715 -988 y Fu([comp)970 1003 y Fn(p)1013 988 y Fu(])1150 901 -y Ft(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)1491 916 y Fn(1)1562 -901 y Ft(f)g Fs(Q)41 b Ft(g)p Fu(,)98 b Ft(f)32 b Fs(Q)42 -b Ft(g)32 b Fs(S)2284 916 y Fn(2)2356 901 y Ft(f)g Fs(R)37 -b Ft(g)p 1150 964 1479 4 v 1480 1069 a(f)c Fs(P)42 b -Ft(g)33 b Fs(S)1821 1084 y Fn(1)1860 1069 y Fu(;)g Fs(S)1987 -1084 y Fn(2)2058 1069 y Ft(f)g Fs(R)j Ft(g)715 1327 y -Fu([if)800 1342 y Fn(p)843 1327 y Fu(])1150 1240 y Ft(f)c(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])34 b Ft(^)e Fs(P)43 -b Ft(g)33 b Fs(S)1817 1255 y Fn(1)1888 1240 y Ft(f)g -Fs(Q)41 b Ft(g)p Fu(,)98 b Ft(f)32 b(:)q(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 b Ft(g)32 -b Fs(S)2995 1255 y Fn(2)3067 1240 y Ft(f)g Fs(Q)42 b -Ft(g)p 1150 1303 2166 4 v 1486 1408 a(f)32 b Fs(P)43 -b Ft(g)33 b Fr(if)g Fs(b)38 b Fr(then)c Fs(S)2283 1423 -y Fn(1)2354 1408 y Fr(else)g Fs(S)2659 1423 y Fn(2)2731 -1408 y Ft(f)e Fs(Q)42 b Ft(g)715 1666 y Fu([while)965 -1681 y Fn(p)1008 1666 y Fu(])1437 1579 y Ft(f)32 b(B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 -b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(P)43 b Ft(g)p 1150 -1642 1514 4 v 1150 1747 a(f)32 b Fs(P)43 b Ft(g)33 b -Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)44 b Ft(f)33 b(:B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 -b Ft(g)715 2005 y Fu([cons)926 2020 y Fn(p)971 2005 y -Fu(])1183 1918 y Ft(f)32 b Fs(P)1341 1882 y Fi(0)1397 -1918 y Ft(g)g Fs(S)45 b Ft(f)32 b Fs(Q)1745 1882 y Fi(0)1801 -1918 y Ft(g)p 1150 1981 701 4 v 1190 2086 a(f)g Fs(P)43 -b Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(Q)42 b Ft(g)1958 2005 -y Fu(if)32 b Fs(P)43 b Ft(\))32 b Fs(P)2365 1968 y Fi(0)2421 -2005 y Fu(and)h Fs(Q)2695 1968 y Fi(0)2751 2005 y Ft(\))f -Fs(Q)p 3753 2136 4 1717 v 283 2139 3473 4 v 925 2300 -a Fu(T)-8 b(able)33 b(6.1:)43 b(Axiomatic)30 b(system)k(for)e(partial)e -(correctness)283 2588 y Fp(The)45 b(inference)g(system)283 -2776 y Fu(The)32 b(partial)c(correctness)33 b(assertions)e(will)d(b)s -(e)i(sp)s(eci\014ed)i(b)m(y)f(an)g(inference)g(system)g(consist-)283 -2897 y(ing)37 b(of)h(a)f(set)i(of)f(axioms)e(and)i(rules.)60 -b(The)39 b(form)m(ulae)d(of)h(the)i(inference)f(system)h(ha)m(v)m(e)g -(the)283 3017 y(form)527 3229 y Ft(f)33 b Fs(P)43 b Ft(g)32 -b Fs(S)44 b Ft(f)33 b Fs(Q)41 b Ft(g)283 3440 y Fu(where)35 -b Fs(S)45 b Fu(is)33 b(a)g(statemen)m(t)h(in)e(the)i(language)e -Fw(While)g Fu(and)h Fs(P)44 b Fu(and)33 b Fs(Q)42 b Fu(are)34 -b(predicates.)46 b(The)283 3561 y(axioms)35 b(and)h(rules)g(are)g -(summarized)f(in)g(T)-8 b(able)36 b(6.1)g(and)g(will)d(b)s(e)k -(explained)e(b)s(elo)m(w.)54 b(The)283 3681 y(inference)34 -b(system)f(sp)s(eci\014es)h(an)e Fs(axiomatic)i(semantics)40 -b Fu(for)32 b Fw(While)p Fu(.)430 3803 y(The)h(axiom)e(for)h(assignmen) -m(t)h(statemen)m(ts)g(is)527 4015 y Ft(f)g Fs(P)10 b -Fu([)p Fs(x)i Ft(7!A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q(])32 b Ft(g)g Fs(x)45 b Fu(:=)32 b Fs(a)40 b Ft(f)32 -b Fs(P)43 b Ft(g)283 4227 y Fu(This)34 b(axiom)e(assumes)j(that)f(the)g -(execution)g(of)f Fs(x)46 b Fu(:=)33 b Fs(a)41 b Fu(starts)34 -b(in)f(a)h(state)g Fs(s)42 b Fu(that)33 b(satis\014es)283 -4347 y Fs(P)10 b Fu([)p Fs(x)i Ft(7!A)p Fu([)-17 b([)p -Fs(a)7 b Fu(])-17 b(])q(],)26 b(that)d(is)g(in)f(a)h(state)h -Fs(s)31 b Fu(where)25 b Fs(s)8 b Fu([)p Fs(x)k Ft(7!A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])23 -b(satis\014es)h Fs(P)10 b Fu(.)24 b(The)g(axiom)e(expresses)283 -4467 y(that)29 b(if)f(the)h(execution)h(of)f Fs(x)40 -b Fu(:=)29 b Fs(a)36 b Fu(terminates)29 b(\(whic)m(h)g(will)e(alw)m(a)m -(ys)i(b)s(e)h(the)f(case\))h(then)f(the)283 4588 y(\014nal)38 -b(state)h(will)c(satisfy)k Fs(P)10 b Fu(.)38 b(F)-8 b(rom)37 -b(the)i(earlier)d(de\014nitions)i(of)g(the)g(seman)m(tics)h(of)e -Fw(While)283 4708 y Fu(w)m(e)30 b(kno)m(w)f(that)f(the)h(\014nal)e -(state)i(will)d(b)s(e)j Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])29 -b(so)f(it)f(is)h(easy)h(to)f(see)i(that)e(the)g(axiom)283 -4829 y(is)33 b(plausible.)430 4951 y(F)-8 b(or)32 b Fr(skip)h -Fu(the)g(axiom)e(is)527 5162 y Ft(f)i Fs(P)43 b Ft(g)32 -b Fr(skip)h Ft(f)g Fs(P)43 b Ft(g)283 5374 y Fu(Th)m(us)i(if)d -Fs(P)53 b Fu(holds)42 b(b)s(efore)h Fr(skip)h Fu(is)f(executed)i(then)e -(it)f(also)g(holds)h(afterw)m(ards.)75 b(This)43 b(is)283 -5494 y(clearly)32 b(plausible)f(as)i Fr(skip)g Fu(do)s(es)g(nothing.)p -eop -%%Page: 179 189 -179 188 bop 0 130 a Fw(6.2)112 b(P)m(artial)36 b(correctness)h -(assertions)1619 b(179)p 0 193 3473 4 v 146 515 a Fu(Axioms)28 -b([ass)647 530 y Fn(p)692 515 y Fu(])h(and)g([skip)1132 -530 y Fn(p)1175 515 y Fu(])g(are)g(really)f Fs(axiom)j(schemes)36 -b Fu(generating)28 b(separate)i(axioms)0 636 y(for)g(eac)m(h)g(c)m -(hoice)h(of)e(predicate)i Fs(P)10 b Fu(.)30 b(The)h(meaning)e(of)g(the) -i(remaining)d(constructs)j(are)f(giv)m(en)0 756 y(b)m(y)39 -b(rules)f(of)f(inference)i(rather)f(than)g(axiom)e(sc)m(hemes.)62 -b(Eac)m(h)38 b(suc)m(h)i(rule)d(sp)s(eci\014es)i(a)f(w)m(a)m(y)0 -877 y(of)i(deducing)g(an)g(assertion)h(ab)s(out)e(a)h(comp)s(ound)g -(construct)i(from)c(assertions)j(ab)s(out)f(its)0 997 -y(constituen)m(ts.)45 b(F)-8 b(or)31 b(comp)s(osition)g(the)i(rule)f -(is:)254 1175 y Ft(f)g Fs(P)43 b Ft(g)32 b Fs(S)594 1190 -y Fn(1)666 1175 y Ft(f)g Fs(Q)42 b Ft(g)p Fu(,)98 b Ft(f)32 -b Fs(Q)42 b Ft(g)32 b Fs(S)1388 1190 y Fn(2)1460 1175 -y Ft(f)g Fs(R)37 b Ft(g)p 254 1238 1479 4 v 584 1343 -a(f)32 b Fs(P)43 b Ft(g)32 b Fs(S)924 1358 y Fn(1)964 -1343 y Fu(;)g Fs(S)1090 1358 y Fn(2)1162 1343 y Ft(f)g -Fs(R)37 b Ft(g)0 1520 y Fu(This)42 b(sa)m(ys)h(that)e(if)g -Fs(P)52 b Fu(holds)41 b(prior)f(to)i(the)g(execution)g(of)f -Fs(S)2334 1535 y Fn(1)2373 1520 y Fu(;)47 b Fs(S)2514 -1535 y Fn(2)2594 1520 y Fu(and)42 b(if)f(the)h(execution)0 -1641 y(terminates)i(then)g(w)m(e)i(can)e(conclude)h(that)f -Fs(R)k Fu(holds)c(in)g(the)h(\014nal)e(state)i(pro)m(vided)g(that)0 -1761 y(there)33 b(is)f(a)h(predicate)f Fs(Q)42 b Fu(for)32 -b(whic)m(h)h(w)m(e)h(can)f(deduce)h(that)145 1957 y Ft(\017)49 -b Fu(if)28 b Fs(S)397 1972 y Fn(1)466 1957 y Fu(is)h(executed)j(from)c -(a)h(state)h(where)h Fs(P)40 b Fu(holds)29 b(and)h(if)e(it)h -(terminates)g(then)h Fs(Q)39 b Fu(will)244 2077 y(hold)32 -b(for)g(the)h(\014nal)e(state,)j(and)e(that)145 2278 -y Ft(\017)49 b Fu(if)28 b Fs(S)397 2293 y Fn(2)466 2278 -y Fu(is)h(executed)j(from)d(a)g(state)h(where)h Fs(Q)39 -b Fu(holds)29 b(and)h(if)e(it)h(terminates)g(then)h Fs(R)k -Fu(will)244 2398 y(hold)e(for)g(the)h(\014nal)e(state.)0 -2594 y(The)j(rule)e(for)g(the)h(conditional)d(is)254 -2752 y Ft(f)i(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 -b Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)920 2767 y Fn(1)992 -2752 y Ft(f)h Fs(Q)41 b Ft(g)p Fu(,)98 b Ft(f)32 b(:B)t -Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 -b Ft(g)33 b Fs(S)2099 2767 y Fn(2)2170 2752 y Ft(f)g -Fs(Q)41 b Ft(g)p 254 2815 2166 4 v 590 2920 a(f)32 b -Fs(P)43 b Ft(g)32 b Fr(if)h Fs(b)39 b Fr(then)33 b Fs(S)1386 -2935 y Fn(1)1458 2920 y Fr(else)h Fs(S)1763 2935 y Fn(2)1835 -2920 y Ft(f)e Fs(Q)42 b Ft(g)0 3098 y Fu(The)30 b(rule)e(sa)m(ys)i -(that)f(if)f Fr(if)h Fs(b)34 b Fr(then)c Fs(S)1396 3113 -y Fn(1)1464 3098 y Fr(else)g Fs(S)1765 3113 y Fn(2)1833 -3098 y Fu(is)e(executed)j(from)d(a)g(state)i(where)g -Fs(P)39 b Fu(holds)0 3218 y(and)44 b(if)e(it)h(terminates,)j(then)f -Fs(Q)52 b Fu(will)42 b(hold)h(for)g(the)h(\014nal)f(state)i(pro)m -(vided)f(that)f(w)m(e)i(can)0 3339 y(deduce)34 b(that)145 -3534 y Ft(\017)49 b Fu(if)32 b Fs(S)401 3549 y Fn(1)474 -3534 y Fu(is)i(executed)h(from)e(a)g(state)h(where)h -Fs(P)44 b Fu(and)34 b Fs(b)40 b Fu(hold)33 b(and)h(if)e(it)h -(terminates)g(then)244 3655 y Fs(Q)42 b Fu(holds)32 b(on)g(the)h -(\014nal)f(state,)h(and)g(that)145 3856 y Ft(\017)49 -b Fu(if)28 b Fs(S)397 3871 y Fn(2)466 3856 y Fu(is)h(executed)j(from)c -(a)h(state)h(where)h Fs(P)40 b Fu(and)30 b Ft(:)p Fs(b)36 -b Fu(hold)28 b(and)i(if)e(it)h(terminates)g(then)244 -3976 y Fs(Q)42 b Fu(holds)32 b(on)g(the)h(\014nal)f(state.)0 -4172 y(The)i(rule)e(for)g(the)h(iterativ)m(e)e(statemen)m(t)j(is)557 -4330 y Ft(f)e(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 -b Ft(^)g Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(P)43 -b Ft(g)p 254 4393 1514 4 v 254 4498 a(f)32 b Fs(P)43 -b Ft(g)32 b Fr(while)i Fs(b)39 b Fr(do)33 b Fs(S)44 b -Ft(f)32 b(:)q(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 -b Ft(^)g Fs(P)43 b Ft(g)0 4676 y Fu(The)36 b(predicate)g -Fs(P)46 b Fu(is)35 b(called)f(an)h Fs(invariant)44 b -Fu(for)35 b(the)h Fr(while)p Fu(-lo)s(op)f(and)h(the)f(idea)g(is)g -(that)g(it)0 4796 y(will)29 b(hold)h Fs(b)-5 b(efor)g(e)37 -b Fu(and)31 b Fs(after)42 b Fu(eac)m(h)31 b(execution)h(of)e(the)h(b)s -(o)s(dy)g Fs(S)43 b Fu(of)30 b(the)h(lo)s(op.)42 b(The)32 -b(rule)e(sa)m(ys)0 4916 y(that)f(if)f(additionally)e -Fs(b)35 b Fu(is)28 b(true)i(b)s(efore)f(eac)m(h)h(execution)g(of)e(the) -i(b)s(o)s(dy)f(of)f(the)i(lo)s(op)d(then)j Ft(:)q Fs(b)0 -5037 y Fu(will)g(b)s(e)j(true)g(when)h(the)f(execution)g(of)f(the)h -Fr(while)p Fu(-lo)s(op)f(has)h(terminated.)146 5157 y(T)-8 -b(o)33 b(complete)f(the)h(inference)g(system)h(w)m(e)f(need)h(one)f -(more)e(rule)i(of)f(inference)286 5335 y Ft(f)h Fs(P)445 -5299 y Fi(0)501 5335 y Ft(g)f Fs(S)45 b Ft(f)32 b Fs(Q)849 -5299 y Fi(0)905 5335 y Ft(g)p 254 5398 701 4 v 293 5503 -a(f)h Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 b Fs(Q)41 -b Ft(g)1062 5421 y Fu(if)32 b Fs(P)42 b Ft(\))33 b Fs(P)1469 -5385 y Fi(0)1525 5421 y Fu(and)f Fs(Q)1798 5385 y Fi(0)1854 -5421 y Ft(\))h Fs(Q)p eop -%%Page: 180 190 -180 189 bop 251 130 a Fw(180)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 a Fu(This)38 b(rule)e(sa)m(ys)i(that)f(w)m(e)h(can)f(strengthen)h -(the)g(precondition)d Fs(P)2771 479 y Fi(0)2832 515 y -Fu(and)i(w)m(eak)m(en)i(the)e(p)s(ost-)283 636 y(condition)32 -b Fs(Q)796 600 y Fi(0)819 636 y Fu(.)43 b(This)33 b(rule)f(is)g(often)h -(called)e(the)i Fs(rule)i(of)g(c)-5 b(onse)g(quenc)g(e)p -Fu(.)430 756 y(Note)25 b(that)f(T)-8 b(able)24 b(6.1)g(sp)s(eci\014es)i -(a)e(set)i(of)e(axioms)f(and)i(rules)g(just)g(as)f(the)i(tables)e -(de\014ning)283 877 y(the)k(op)s(erational)c(seman)m(tics)j(in)f -(Chapter)i(2.)41 b(The)28 b(analogue)e(of)g(a)h(deriv)-5 -b(ation)25 b(tree)j(will)c(no)m(w)283 997 y(b)s(e)i(called)e(an)h -Fs(infer)-5 b(enc)g(e)27 b(tr)-5 b(e)g(e)33 b Fu(since)25 -b(it)f(sho)m(ws)j(ho)m(w)f(to)f(infer)f(that)h(a)g(certain)g(prop)s -(ert)m(y)h(holds.)283 1117 y(Th)m(us)39 b(the)f(lea)m(v)m(es)g(of)f(an) -h(inference)f(tree)h(will)d(b)s(e)j(instances)g(of)f(axioms)f(and)h -(the)h(in)m(ternal)283 1238 y(no)s(des)h(will)d(corresp)s(ond)j(to)e -(instances)i(of)f(rules.)60 b(W)-8 b(e)38 b(shall)f(sa)m(y)h(that)g -(the)h(inference)f(tree)283 1358 y(giv)m(es)33 b(a)g -Fs(pr)-5 b(o)g(of)53 b Fu(of)32 b(the)h(prop)s(ert)m(y)g(expressed)j(b) -m(y)d(its)f(ro)s(ot.)43 b(W)-8 b(e)33 b(shall)e(write)527 -1560 y Ft(`)588 1575 y Fn(p)664 1560 y Ft(f)h Fs(P)43 -b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)283 1762 -y Fu(for)g(the)h(pro)m(v)-5 b(abilit)m(y)40 b(of)i(the)g(assertion)h -Ft(f)f Fs(P)52 b Ft(g)42 b Fs(S)54 b Ft(f)42 b Fs(Q)51 -b Ft(g)p Fu(.)72 b(An)43 b(inference)g(tree)f(is)g(called)283 -1882 y Fs(simple)35 b Fu(if)27 b(it)h(is)f(an)i(instance)f(of)g(one)h -(of)e(the)i(axioms)e(and)i(otherwise)g(it)e(is)h(called)f -Fs(c)-5 b(omp)g(osite)p Fu(.)283 2109 y Fw(Example)37 -b(6.8)49 b Fu(Consider)29 b(the)f(statemen)m(t)h Fr(while)h(true)f(do)f -(skip)p Fu(.)44 b(F)-8 b(rom)26 b([skip)3325 2124 y Fn(p)3369 -2109 y Fu(])i(w)m(e)i(ha)m(v)m(e)283 2229 y(\(omitting)g(the)j -Ft(B)s Fu([)-17 b([)q Ft(\001)17 b(\001)g(\001)n Fu(])-17 -b(])q(\))527 2431 y Ft(`)588 2446 y Fn(p)664 2431 y Ft(f)32 -b Fr(true)i Ft(g)e Fr(skip)i Ft(f)e Fr(true)i Ft(g)283 -2633 y Fu(Since)c(\()p Fr(true)g Ft(^)f Fr(true)p Fu(\))h -Ft(\))f Fr(true)h Fu(w)m(e)g(can)g(apply)e(the)i(rule)e(of)h -(consequence)j([cons)3339 2648 y Fn(p)3383 2633 y Fu(])e(and)f(get)527 -2835 y Ft(`)588 2850 y Fn(p)664 2835 y Ft(f)j Fr(true)i -Ft(^)f Fr(true)h Ft(g)e Fr(skip)h Ft(f)g Fr(true)g Ft(g)283 -3037 y Fu(Hence)h(b)m(y)g(the)f(rule)f([while)1322 3052 -y Fn(p)1365 3037 y Fu(])g(w)m(e)i(get)527 3240 y Ft(`)588 -3255 y Fn(p)664 3240 y Ft(f)e Fr(true)i Ft(g)e Fr(while)i(true)g(do)f -(skip)g Ft(f)g(:)p Fr(true)h Ft(^)f Fr(true)g Ft(g)283 -3442 y Fu(W)-8 b(e)33 b(ha)m(v)m(e)h(that)f Ft(:)p Fr(true)h -Ft(^)f Fr(true)g Ft(\))f Fr(true)i Fu(so)f(b)m(y)g(applying)f([cons) -2763 3457 y Fn(p)2807 3442 y Fu(])g(once)i(more)d(w)m(e)j(get)527 -3644 y Ft(`)588 3659 y Fn(p)664 3644 y Ft(f)e Fr(true)i -Ft(g)e Fr(while)i(true)g(do)f(skip)g Ft(f)g Fr(true)g -Ft(g)283 3846 y Fu(The)h(inference)f(ab)s(o)m(v)m(e)h(can)e(b)s(e)h -(summarized)f(b)m(y)h(the)g(follo)m(wing)d(inference)j(tree:)1109 -4039 y Ft(f)g Fr(true)g Ft(g)g Fr(skip)g Ft(f)g Fr(true)g -Ft(g)p 527 4126 2174 4 v 941 4331 a(f)f Fr(true)i Ft(^)f -Fr(true)h Ft(g)e Fr(skip)h Ft(f)g Fr(true)g Ft(g)p 527 -4417 V 577 4622 a(f)f Fr(true)i Ft(g)e Fr(while)i(true)g(do)f(skip)g -Ft(f)g(:)p Fr(true)h Ft(^)f Fr(true)g Ft(g)p 527 4709 -V 779 4913 a(f)f Fr(true)i Ft(g)e Fr(while)i(true)f(do)g(skip)h -Ft(f)e Fr(true)i Ft(g)283 5114 y Fu(It)44 b(is)e(no)m(w)i(easy)g(to)e -(see)j(that)d(w)m(e)i(cannot)g(claim)c(that)j Ft(f)g -Fs(P)53 b Ft(g)43 b Fs(S)55 b Ft(f)42 b Fs(Q)52 b Ft(g)43 -b Fu(means)g(that)g Fs(S)283 5234 y Fu(will)38 b(terminate)g(in)h(a)g -(state)h(satisfying)f Fs(Q)48 b Fu(when)41 b(it)e(is)g(started)h(in)f -(a)g(state)h(satisfying)e Fs(P)10 b Fu(.)283 5355 y(F)-8 -b(or)28 b(the)g(assertion)h Ft(f)j Fr(true)i Ft(g)e Fr(while)i(true)f -(do)g(skip)h Ft(f)e Fr(true)i Ft(g)28 b Fu(this)g(reading)f(w)m(ould)h -(mean)283 5475 y(that)33 b(the)g(program)e(w)m(ould)i(alw)m(a)m(ys)g -(terminate)e(and)i(clearly)e(this)i(is)f(not)g(the)h(case.)256 -b Fh(2)p eop -%%Page: 181 191 -181 190 bop 0 130 a Fw(6.2)112 b(P)m(artial)36 b(correctness)h -(assertions)1619 b(181)p 0 193 3473 4 v 0 515 a(Example)37 -b(6.9)48 b Fu(T)-8 b(o)32 b(illustrate)e(the)i(use)h(of)e(the)i -(axiomatic)c(seman)m(tics)j(for)f(v)m(eri\014cation)g(w)m(e)0 -636 y(shall)g(pro)m(v)m(e)j(the)f(assertion)244 850 y -Ft(f)f Fr(x)h Fu(=)f Fr(n)h Ft(g)244 1017 y Fr(y)g Fu(:=)f -Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p -Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)g Fr(x)p Ft(\000)p -Fr(1)p Fu(\))244 1185 y Ft(f)f Fr(y)h Fu(=)f Fr(n)p Fu(!)44 -b Ft(^)33 b Fr(n)g Fo(>)f Fr(0)h Ft(g)0 1399 y Fu(where,)h(for)e(the)h -(sak)m(e)h(of)e(readabilit)m(y)-8 b(,)31 b(w)m(e)i(write)g -Fr(y)f Fu(=)h Fr(n)p Fu(!)43 b Ft(^)33 b Fr(n)g Fo(>)g -Fr(0)f Fu(for)g(the)h(predicate)244 1613 y Fs(P)43 b -Fu(where)34 b Fs(P)42 b(s)f Fu(=)32 b(\()p Fs(s)41 b -Fr(y)33 b Fu(=)f(\()p Fs(s)41 b Fr(n)p Fu(\)!)i Ft(^)33 -b Fs(s)41 b Fr(n)33 b Fo(>)f Fw(0)p Fu(\))0 1827 y(The)f(inference)g -(of)f(this)g(assertion)g(pro)s(ceeds)h(in)f(a)g(n)m(um)m(b)s(er)h(of)e -(stages.)44 b(First)29 b(w)m(e)i(de\014ne)h(the)0 1948 -y(predicate)h Fs(INV)51 b Fu(that)32 b(is)g(going)f(to)i(b)s(e)f(the)h -(in)m(v)-5 b(arian)m(t)32 b(of)g(the)h Fr(while)p Fu(-lo)s(op:)244 -2162 y Fs(INV)51 b(s)41 b Fu(=)32 b(\()p Fs(s)41 b Fr(x)32 -b Fo(>)h Fw(0)f Fu(implies)e(\(\()p Fs(s)41 b Fr(y)p -Fu(\))33 b Fo(?)f Fu(\()p Fs(s)40 b Fr(x)p Fu(\)!)k(=)32 -b(\()p Fs(s)41 b Fr(n)p Fu(\)!)j(and)32 b Fs(s)41 b Fr(n)33 -b Ft(\025)g Fs(s)40 b Fr(x)p Fu(\)\))0 2376 y(W)-8 b(e)33 -b(shall)e(then)i(consider)g(the)g(b)s(o)s(dy)g(of)f(the)h(lo)s(op.)42 -b(Using)32 b([ass)2370 2391 y Fn(p)2414 2376 y Fu(])h(w)m(e)h(get)244 -2590 y Ft(`)305 2605 y Fn(p)381 2590 y Ft(f)e Fs(INV)19 -b Fu([)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(])33 -b Ft(g)g Fr(x)f Fu(:=)h Fr(x)p Ft(\000)p Fr(1)g Ft(f)g -Fs(INV)51 b Ft(g)0 2804 y Fu(Similarly)-8 b(,)29 b(w)m(e)k(get)244 -3018 y Ft(`)305 3033 y Fn(p)381 3018 y Ft(f)f Fu(\()p -Fs(INV)19 b Fu([)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p -Fu(]\)[)p Fr(y)p Ft(7!)q Fr(y)p Fo(?)p Fr(x)p Fu(])32 -b Ft(g)h Fr(y)g Fu(:=)f Fr(y)h Fo(?)f Fr(x)h Ft(f)f Fs(INV)19 -b Fu([)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(])34 -b Ft(g)0 3232 y Fu(W)-8 b(e)33 b(can)g(no)m(w)g(apply)f(the)h(rule)f -([comp)1436 3247 y Fn(p)1479 3232 y Fu(])h(to)f(the)h(t)m(w)m(o)h -(assertions)f(ab)s(o)m(v)m(e)g(and)g(get)244 3446 y Ft(`)305 -3461 y Fn(p)381 3446 y Ft(f)f Fu(\()p Fs(INV)19 b Fu([)p -Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(]\)[)p Fr(y)p -Ft(7!)q Fr(y)p Fo(?)p Fr(x)p Fu(])32 b Ft(g)h Fr(y)g -Fu(:=)f Fr(y)h Fo(?)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p -Ft(\000)p Fr(1)i Ft(f)e Fs(INV)51 b Ft(g)0 3661 y Fu(It)33 -b(is)f(easy)h(to)g(v)m(erify)g(that)244 3875 y(\()p Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Ft(^)g Fs(INV)19 -b Fu(\))32 b Ft(\))g Fu(\()p Fs(INV)19 b Fu([)p Fr(x)p -Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(]\)[)p Fr(y)p Ft(7!)q -Fr(y)p Fo(?)p Fr(x)p Fu(])0 4089 y(so)33 b(using)f(the)h(rule)f([cons) -949 4104 y Fn(p)993 4089 y Fu(])h(w)m(e)h(get)244 4303 -y Ft(`)305 4318 y Fn(p)381 4303 y Ft(f)e(:)p Fu(\()p -Fr(x)h Fu(=)f Fr(1)p Fu(\))h Ft(^)g Fs(INV)51 b Ft(g)33 -b Fr(y)f Fu(:=)h Fr(y)g Fo(?)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)i Ft(f)e Fs(INV)51 b Ft(g)0 4517 -y Fu(W)-8 b(e)33 b(are)g(no)m(w)g(in)f(a)g(p)s(osition)f(to)h(use)h -(the)g(rule)g([while)2002 4532 y Fn(p)2044 4517 y Fu(])g(and)f(get)244 -4731 y Ft(`)305 4746 y Fn(p)381 4731 y Ft(f)g Fs(INV)51 -b Ft(g)381 4899 y Fr(while)33 b Ft(:)q Fu(\()p Fr(x)p -Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p Fr(y)f Fu(:=)h -Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\))381 5066 y Ft(f:)p Fu(\()p Ft(:)p Fu(\()p -Fr(x)h Fu(=)f Fr(1)p Fu(\)\))h Ft(^)g Fs(INV)51 b Ft(g)0 -5280 y Fu(Clearly)32 b(w)m(e)h(ha)m(v)m(e)244 5494 y -Ft(:)p Fu(\()p Ft(:)q Fu(\()p Fr(x)f Fu(=)h Fr(1)p Fu(\)\))f -Ft(^)h Fs(INV)51 b Ft(\))33 b Fr(y)f Fu(=)h Fr(n)p Fu(!)44 -b Ft(^)32 b Fr(n)h Fo(>)g Fr(0)p eop -%%Page: 182 192 -182 191 bop 251 130 a Fw(182)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 a Fu(so)33 b(applying)f(rule)g([cons)1208 530 y Fn(p)1252 -515 y Fu(])h(w)m(e)g(get)552 683 y Ft(`)613 698 y Fn(p)689 -683 y Ft(f)f Fs(INV)51 b Ft(g)33 b Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\))i Ft(f)e Fr(y)h Fu(=)f -Fr(n)p Fu(!)44 b Ft(^)33 b Fr(n)g Fo(>)f Fr(0)h Ft(g)283 -851 y Fu(W)-8 b(e)33 b(shall)f(no)m(w)h(apply)f(the)h(axiom)e([ass)1761 -866 y Fn(p)1805 851 y Fu(])i(to)f(the)h(statemen)m(t)g -Fr(y)g Fu(:=)f Fr(1)h Fu(and)g(get)527 1054 y Ft(`)588 -1069 y Fn(p)664 1054 y Ft(f)f Fs(INV)19 b Fu([)p Fr(y)p -Ft(7!)p Fr(1)p Fu(])33 b Ft(g)f Fr(y)h Fu(:=)g Fr(1)f -Ft(f)h Fs(INV)51 b Ft(g)283 1258 y Fu(Using)33 b(that)527 -1462 y Fr(x)g Fu(=)g Fr(n)f Ft(\))g Fs(INV)19 b Fu([)p -Fr(y)p Ft(7!)p Fr(1)p Fu(])283 1666 y(together)33 b(with)f([cons)1101 -1681 y Fn(p)1146 1666 y Fu(])g(w)m(e)i(get)527 1870 y -Ft(`)588 1885 y Fn(p)664 1870 y Ft(f)e Fr(x)h Fu(=)g -Fr(n)f Ft(g)h Fr(y)f Fu(:=)h Fr(1)g Ft(f)f Fs(INV)51 -b Ft(g)283 2074 y Fu(Finally)-8 b(,)30 b(w)m(e)k(can)f(use)g(the)g -(rule)f([comp)1743 2089 y Fn(p)1787 2074 y Fu(])g(and)h(get)527 -2278 y Ft(`)588 2293 y Fn(p)664 2278 y Ft(f)f Fr(x)h -Fu(=)g Fr(n)f Ft(g)664 2445 y Fr(y)h Fu(:=)f Fr(1)p Fu(;)h -Fr(while)h Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))e -Fr(do)h Fu(\()p Fr(y)g Fu(:=)g Fr(y)p Fo(?)p Fr(x)p Fu(;)f -Fr(x)h Fu(:=)g Fr(x)p Ft(\000)p Fr(1)p Fu(\))664 2613 -y Ft(f)f Fr(y)h Fu(=)g Fr(n)p Fu(!)43 b Ft(^)33 b Fr(n)g -Fo(>)f Fr(0)h Ft(g)283 2817 y Fu(as)g(required.)2902 -b Fh(2)283 3046 y Fw(Exercise)37 b(6.10)49 b Fu(Sp)s(ecify)42 -b(a)f(form)m(ula)f(expressing)k(the)e(partial)e(correctness)k(prop)s -(ert)m(y)e(of)283 3166 y(the)g(program)f(of)g(Exercise)h(6.1.)70 -b(Construct)43 b(an)e(inference)h(tree)g(giving)e(a)i(pro)s(of)e(of)h -(this)283 3287 y(prop)s(ert)m(y)34 b(using)e(the)h(inference)g(system)h -(of)e(T)-8 b(able)32 b(6.1.)1312 b Fh(2)283 3516 y Fw(Exercise)37 -b(6.11)49 b Fu(Suggest)e(an)f(inference)h(rule)f(for)g -Fr(repeat)i Fs(S)58 b Fr(until)48 b Fs(b)6 b Fu(.)85 -b(Y)-8 b(ou)47 b(are)f(not)283 3636 y(allo)m(w)m(ed)32 -b(to)h(rely)f(on)g(the)h(existence)i(of)d(a)g Fr(while)p -Fu(-construct)i(in)e(the)h(language.)427 b Fh(2)283 3865 -y Fw(Exercise)37 b(6.12)49 b Fu(Suggest)31 b(an)f(inference)g(rule)g -(for)g Fr(for)h Fs(x)42 b Fu(:=)30 b Fs(a)2671 3880 y -Fn(1)2741 3865 y Fr(to)g Fs(a)2930 3880 y Fn(2)3000 3865 -y Fr(do)h Fs(S)12 b Fu(.)30 b(Y)-8 b(ou)30 b(are)g(not)283 -3985 y(allo)m(w)m(ed)i(to)h(rely)f(on)g(the)h(existence)i(of)d(a)g -Fr(while)p Fu(-construct)i(in)e(the)h(language.)427 b -Fh(2)283 4275 y Fp(Prop)t(erties)46 b(of)f(the)h(seman)l(tics)283 -4460 y Fu(In)27 b(the)f(op)s(erational)d(and)j(denotational)e(seman)m -(tics)i(w)m(e)h(de\014ned)g(a)e(notion)g(of)g(t)m(w)m(o)i(programs)283 -4580 y(b)s(eing)39 b(seman)m(tically)e(equiv)-5 b(alen)m(t.)63 -b(W)-8 b(e)39 b(can)h(de\014ne)g(a)f(similar)c(notion)j(for)h(the)g -(axiomatic)283 4700 y(seman)m(tics:)74 b(Tw)m(o)48 b(programs)f -Fs(S)1539 4715 y Fn(1)1625 4700 y Fu(and)h Fs(S)1897 -4715 y Fn(2)1984 4700 y Fu(are)f Fs(pr)-5 b(ovably)48 -b(e)-5 b(quivalent)56 b Fu(according)47 b(to)g(the)283 -4821 y(axiomatic)35 b(seman)m(tics)h(of)g(T)-8 b(able)37 -b(6.1)f(if)f(for)h(all)f(preconditions)h Fs(P)47 b Fu(and)36 -b(p)s(ostconditions)g Fs(Q)283 4941 y Fu(w)m(e)e(ha)m(v)m(e)527 -5145 y Ft(`)588 5160 y Fn(p)664 5145 y Ft(f)e Fs(P)43 -b Ft(g)33 b Fs(S)1005 5160 y Fn(1)1076 5145 y Ft(f)g -Fs(Q)41 b Ft(g)98 b Fu(if)31 b(and)i(only)f(if)96 b Ft(`)2131 -5160 y Fn(p)2207 5145 y Ft(f)32 b Fs(P)43 b Ft(g)33 b -Fs(S)2548 5160 y Fn(2)2619 5145 y Ft(f)g Fs(Q)41 b Ft(g)283 -5374 y Fw(Exercise)c(6.13)49 b Fu(Sho)m(w)32 b(that)e(the)i(follo)m -(wing)c(statemen)m(ts)k(of)e Fw(While)f Fu(are)i(pro)m(v)-5 -b(ably)31 b(equiv-)283 5494 y(alen)m(t)i(in)e(the)i(ab)s(o)m(v)m(e)h -(sense:)p eop -%%Page: 183 193 -183 192 bop 0 130 a Fw(6.3)112 b(Soundness)40 b(and)e(completeness)1647 -b(183)p 0 193 3473 4 v 145 515 a Ft(\017)49 b Fs(S)12 -b Fu(;)32 b Fr(skip)i Fu(and)f Fs(S)145 718 y Ft(\017)49 -b Fs(S)311 733 y Fn(1)350 718 y Fu(;)33 b(\()p Fs(S)515 -733 y Fn(2)554 718 y Fu(;)g Fs(S)681 733 y Fn(3)720 718 -y Fu(\))f(and)h(\()p Fs(S)1085 733 y Fn(1)1124 718 y -Fu(;)g Fs(S)1251 733 y Fn(2)1290 718 y Fu(\);)g Fs(S)1455 -733 y Fn(3)3398 718 y Fh(2)146 944 y Fu(Pro)s(ofs)c(of)f(prop)s(erties) -h(of)f(the)h(axiomatic)d(seman)m(tics)j(will)d(often)j(pro)s(ceed)g(b)m -(y)h Fs(induction)0 1064 y(on)k(the)h(shap)-5 b(e)34 -b(of)h(the)g(infer)-5 b(enc)g(e)34 b(tr)-5 b(e)g(e)p -Fu(:)p 0 1213 3470 4 v 0 1230 V -2 1438 4 208 v 15 1438 -V 716 1359 a Fw(Induction)32 b(on)h(the)f(Shap)s(e)i(of)f(Inference)g -(T)-9 b(rees)p 3452 1438 V 3469 1438 V 0 1441 3470 4 -v -2 1810 4 370 v 15 1810 V 66 1606 a Fu(1:)143 b(Pro)m(v)m(e)29 -b(that)e(the)h(prop)s(ert)m(y)g(holds)f(for)f(all)f(the)j(simple)e -(inference)i(trees)g(b)m(y)g(sho)m(wing)285 1727 y(that)33 -b(it)e(holds)h(for)g(the)h Fs(axioms)40 b Fu(of)32 b(the)h(inference)g -(system.)p 3452 1810 V 3469 1810 V -2 2339 4 529 v 15 -2339 V 66 1894 a(2:)143 b(Pro)m(v)m(e)36 b(that)f(the)g(prop)s(ert)m(y) -g(holds)g(for)f(all)e(comp)s(osite)i(inference)h(trees:)49 -b(F)-8 b(or)33 b(eac)m(h)285 2015 y Fs(rule)51 b Fu(assume)43 -b(that)g(the)h(prop)s(ert)m(y)f(holds)g(for)f(its)h(premises)g(\(this)g -(is)f(called)g(the)285 2135 y Fs(induction)33 b(hyp)-5 -b(othesis)p Fu(\))30 b(and)h(that)g(the)g(conditions)f(of)g(the)i(rule) -e(are)h(satis\014ed)g(and)285 2255 y(then)i(pro)m(v)m(e)h(that)f(it)e -(also)h(holds)g(for)g(the)h(conclusion)f(of)g(the)h(rule.)p -3452 2339 V 3469 2339 V 0 2342 3470 4 v 0 2359 V 0 2547 -a Fw(Exercise)j(6.14)49 b Fu(**)26 b(Using)g(the)h(inference)f(rule)g -(for)g Fr(repeat)i Fs(S)38 b Fr(until)27 b Fs(b)32 b -Fu(giv)m(en)27 b(in)e(Exercise)0 2667 y(6.11)f(sho)m(w)j(that)d -Fr(repeat)j Fs(S)37 b Fr(until)26 b Fs(b)31 b Fu(is)24 -b(pro)m(v)-5 b(ably)25 b(equiv)-5 b(alen)m(t)25 b(to)g -Fs(S)12 b Fu(;)25 b Fr(while)h Ft(:)p Fs(b)31 b Fr(do)26 -b Fs(S)12 b Fu(.)25 b(Hin)m(t:)0 2788 y(it)34 b(is)h(not)h(to)s(o)e -(hard)i(to)f(sho)m(w)h(that)g(what)f(is)g(pro)m(v)-5 -b(able)35 b(ab)s(out)g Fr(repeat)i Fs(S)47 b Fr(until)37 -b Fs(b)k Fu(is)35 b(also)0 2908 y(pro)m(v)-5 b(able)32 -b(ab)s(out)g Fs(S)12 b Fu(;)33 b Fr(while)h Ft(:)p Fs(b)k -Fr(do)c Fs(S)12 b Fu(.)1934 b Fh(2)0 3134 y Fw(Exercise)36 -b(6.15)49 b Fu(Sho)m(w)28 b(that)e Ft(`)1209 3149 y Fn(p)1279 -3134 y Ft(f)g Fs(P)37 b Ft(g)26 b Fs(S)38 b Ft(f)27 b -Fr(true)g Ft(g)g Fu(for)f(all)e(statemen)m(ts)k Fs(S)38 -b Fu(and)26 b(prop)s(erties)0 3254 y Fs(P)10 b Fu(.)3295 -b Fh(2)0 3586 y Fj(6.3)161 b(Soundness)50 b(and)k(completeness)0 -3806 y Fu(W)-8 b(e)37 b(shall)d(no)m(w)j(address)h(the)f(relationship)d -(b)s(et)m(w)m(een)k(the)f(inference)g(system)g(of)f(T)-8 -b(able)36 b(6.1)0 3926 y(and)28 b(the)g(op)s(erational)d(and)j -(denotational)e(seman)m(tics)i(of)f(the)h(previous)g(c)m(hapters.)44 -b(W)-8 b(e)28 b(shall)0 4046 y(pro)m(v)m(e)34 b(that)145 -4248 y Ft(\017)49 b Fu(the)40 b(inference)h(system)f(is)g -Fs(sound)p Fu(:)57 b(if)39 b(some)h(partial)d(correctness)42 -b(prop)s(ert)m(y)f(can)f(b)s(e)244 4368 y(pro)m(v)m(ed)34 -b(using)e(the)g(inference)h(system)g(then)g(it)f(do)s(es)g(indeed)h -(hold)e(according)h(to)g(the)244 4488 y(seman)m(tics,)h(and)145 -4691 y Ft(\017)49 b Fu(the)38 b(inference)h(system)g(is)e -Fs(c)-5 b(omplete)p Fu(:)54 b(if)37 b(some)g(partial)f(correctness)k -(prop)s(ert)m(y)f(do)s(es)244 4812 y(hold)27 b(according)h(to)g(the)g -(seman)m(tics)h(then)f(w)m(e)i(can)e(also)f(\014nd)i(a)f(pro)s(of)f -(for)h(it)f(using)h(the)244 4932 y(inference)33 b(system.)0 -5133 y(The)41 b(completeness)f(result)g(can)g(only)g(b)s(e)g(pro)m(v)m -(ed)h(b)s(ecause)g(w)m(e)g(use)g(the)f(extensional)g(ap-)0 -5254 y(proac)m(h)i(where)h(preconditions)e(and)h(p)s(ostconditions)f -(are)g(arbitrary)g(predicates.)71 b(In)42 b(the)0 5374 -y(in)m(tensional)30 b(approac)m(h)i(w)m(e)h(only)e(ha)m(v)m(e)i(a)f(w)m -(eak)m(er)h(result;)f(w)m(e)h(shall)d(return)j(to)e(this)g(later)g(in)0 -5494 y(this)h(section.)p eop -%%Page: 184 194 -184 193 bop 251 130 a Fw(184)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 430 -515 a Fu(As)34 b(the)f(op)s(erational)e(and)j(denotational)d(seman)m -(tics)i(are)h(equiv)-5 b(alen)m(t)33 b(w)m(e)h(only)f(need)h(to)283 -636 y(consider)f(one)g(of)f(them)g(here)h(and)g(w)m(e)g(shall)e(c)m(ho) -s(ose)j(the)f(natural)e(seman)m(tics.)44 b(The)33 b(partial)283 -756 y(correctness)i(assertion)e Ft(f)f Fs(P)43 b Ft(g)32 -b Fs(S)45 b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fu(is)g(said)g(to)g(b)s(e)h -Fs(valid)42 b Fu(if)32 b(and)g(only)g(if)527 981 y(for)g(all)e(states)k -Fs(s)8 b Fu(,)32 b(if)f Fs(P)43 b(s)d Fu(=)32 b Fw(tt)g -Fu(and)g Ft(h)p Fs(S)12 b Fu(,)p Fs(s)c Ft(i)32 b(!)g -Fs(s)2323 945 y Fi(0)2378 981 y Fu(for)g(some)g Fs(s)2819 -945 y Fi(0)2875 981 y Fu(then)h Fs(Q)41 b(s)3261 945 -y Fi(0)3317 981 y Fu(=)32 b Fw(tt)283 1206 y Fu(and)h(w)m(e)h(shall)d -(write)h(this)g(as)527 1431 y Ft(j)-17 b Fu(=)614 1446 -y Fn(p)690 1431 y Ft(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)44 -b Ft(f)32 b Fs(Q)42 b Ft(g)283 1656 y Fu(The)34 b(soundness)h(prop)s -(ert)m(y)e(is)f(then)h(expressed)j(b)m(y)527 1881 y Ft(`)588 -1896 y Fn(p)664 1881 y Ft(f)c Fs(P)43 b Ft(g)33 b Fs(S)44 -b Ft(f)32 b Fs(Q)42 b Ft(g)65 b Fu(implies)d Ft(j)-17 -b Fu(=)1801 1896 y Fn(p)1877 1881 y Ft(f)33 b Fs(P)43 -b Ft(g)32 b Fs(S)44 b Ft(f)33 b Fs(Q)41 b Ft(g)283 2106 -y Fu(and)33 b(the)g(completeness)h(prop)s(ert)m(y)f(is)f(expressed)j(b) -m(y)527 2331 y Ft(j)-17 b Fu(=)614 2346 y Fn(p)690 2331 -y Ft(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 -b Ft(g)65 b Fu(implies)e Ft(`)1801 2346 y Fn(p)1877 2331 -y Ft(f)33 b Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 b Fs(Q)41 -b Ft(g)283 2556 y Fu(W)-8 b(e)33 b(ha)m(v)m(e)p 283 2681 -3473 5 v 283 2881 a Fw(Theorem)38 b(6.16)49 b Fu(F)-8 -b(or)31 b(all)g(partial)f(correctness)35 b(assertions)e -Ft(f)f Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(Q)42 -b Ft(g)32 b Fu(w)m(e)i(ha)m(v)m(e)552 3049 y Ft(j)-17 -b Fu(=)639 3064 y Fn(p)715 3049 y Ft(f)32 b Fs(P)43 b -Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)65 b Fu(if)31 -b(and)i(only)f(if)64 b Ft(`)2078 3064 y Fn(p)2154 3049 -y Ft(f)32 b Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(Q)41 -b Ft(g)p 283 3169 V 283 3394 a Fu(It)33 b(is)f(customary)h(to)f(pro)m -(v)m(e)i(the)f(soundness)i(and)e(completeness)g(results)g(separately)-8 -b(.)283 3709 y Fp(Soundness)283 3903 y Fu(W)g(e)33 b(shall)f(\014rst)h -(pro)m(v)m(e:)p 283 4028 V 283 4228 a Fw(Lemma)38 b(6.17)49 -b Fu(The)29 b(inference)g(system)h(of)e(T)-8 b(able)28 -b(6.1)g(is)g(sound,)i(that)f(is)f(for)g(ev)m(ery)i(partial)283 -4348 y(correctness)35 b(form)m(ula)c Ft(f)h Fs(P)43 b -Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fu(w)m(e)i(ha)m(v)m -(e)552 4516 y Ft(`)613 4531 y Fn(p)689 4516 y Ft(f)e -Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)32 -b Fu(implies)e Ft(j)-17 b Fu(=)1761 4531 y Fn(p)1837 -4516 y Ft(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 -b Fs(Q)42 b Ft(g)p 283 4636 V 283 4861 a Fw(Pro)s(of:)d -Fu(The)34 b(pro)s(of)f(is)g(b)m(y)h(induction)f(on)g(the)h(shap)s(e)g -(of)g(the)f(inference)i(tree)f(used)g(to)g(infer)283 -4982 y Ft(`)344 4997 y Fn(p)420 4982 y Ft(f)f Fs(P)42 -b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)p Fu(.)47 -b(This)34 b(amoun)m(ts)f(to)h(nothing)e(but)i(a)g(formalization)29 -b(of)k(the)i(in)m(tuitions)283 5102 y(w)m(e)f(ga)m(v)m(e)g(when)f(in)m -(tro)s(ducing)f(the)h(axioms)e(and)i(rules.)283 5270 -y Fw(The)g(case)g Fu([ass)891 5285 y Fn(p)936 5270 y -Fu(]:)43 b(W)-8 b(e)33 b(shall)e(pro)m(v)m(e)j(that)f(the)g(axiom)d(is) -j(v)-5 b(alid,)30 b(so)j(supp)s(ose)h(that)527 5494 y -Ft(h)p Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b(!)g Fs(s)1207 5458 y Fi(0)p eop -%%Page: 185 195 -185 194 bop 0 130 a Fw(6.3)112 b(Soundness)40 b(and)e(completeness)1647 -b(185)p 0 193 3473 4 v 0 515 a Fu(and)29 b(\()p Fs(P)10 -b Fu([)p Fs(x)i Ft(7!A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q(]\))29 b Fs(s)37 b Fu(=)29 b Fw(tt)p Fu(.)41 b(W)-8 -b(e)30 b(shall)d(then)j(pro)m(v)m(e)g(that)f Fs(P)39 -b(s)2356 479 y Fi(0)2409 515 y Fu(=)28 b Fw(tt)p Fu(.)42 -b(F)-8 b(rom)27 b([ass)3074 530 y Fn(ns)3146 515 y Fu(])i(w)m(e)h(get)0 -636 y(that)d Fs(s)254 600 y Fi(0)304 636 y Fu(=)g Fs(s)8 -b Fu([)p Fs(x)k Ft(7!A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q Fs(s)8 b Fu(])27 b(and)h(from)d(\()p Fs(P)10 b -Fu([)p Fs(x)i Ft(7!A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q(]\))33 b Fs(s)40 b Fu(=)33 b Fw(tt)26 b Fu(w)m(e)i(get)f(that)g -Fs(P)38 b Fu(\()p Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(]\))0 -756 y(=)32 b Fw(tt)p Fu(.)43 b(Th)m(us)34 b Fs(P)43 b(s)670 -720 y Fi(0)726 756 y Fu(=)32 b Fw(tt)g Fu(as)h(w)m(as)g(to)g(b)s(e)f -(sho)m(wn.)0 924 y Fw(The)h(case)g Fu([skip)654 939 y -Fn(p)698 924 y Fu(]:)43 b(This)33 b(case)h(is)e(immediate)e(using)i -(the)h(clause)g([skip)2709 939 y Fn(ns)2780 924 y Fu(].)0 -1091 y Fw(The)g(case)g Fu([comp)711 1106 y Fn(p)754 1091 -y Fu(]:)44 b(W)-8 b(e)33 b(assume)g(that)244 1306 y Ft(j)-17 -b Fu(=)331 1321 y Fn(p)407 1306 y Ft(f)32 b Fs(P)43 b -Ft(g)32 b Fs(S)747 1321 y Fn(1)819 1306 y Ft(f)g Fs(Q)42 -b Ft(g)32 b Fu(and)h Ft(j)-17 b Fu(=)1377 1321 y Fn(p)1453 -1306 y Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fs(S)1801 1321 y -Fn(2)1873 1306 y Ft(f)g Fs(R)37 b Ft(g)0 1521 y Fu(and)d(w)m(e)g(ha)m -(v)m(e)h(to)f(pro)m(v)m(e)g(that)g Ft(j)-17 b Fu(=)1245 -1536 y Fn(p)1322 1521 y Ft(f)33 b Fs(P)44 b Ft(g)33 b -Fs(S)1665 1536 y Fn(1)1705 1521 y Fu(;)h Fs(S)1833 1536 -y Fn(2)1906 1521 y Ft(f)f Fs(R)38 b Ft(g)p Fu(.)46 b(So)34 -b(consider)f(arbitrary)g(states)i Fs(s)0 1642 y Fu(and)e -Fs(s)238 1606 y Fi(00)313 1642 y Fu(suc)m(h)h(that)e -Fs(P)43 b(s)e Fu(=)32 b Fw(tt)g Fu(and)244 1857 y Ft(h)p -Fs(S)350 1872 y Fn(1)389 1857 y Fu(;)p Fs(S)483 1872 -y Fn(2)522 1857 y Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)881 -1821 y Fi(00)0 2072 y Fu(F)-8 b(rom)31 b([comp)511 2087 -y Fn(ns)582 2072 y Fu(])i(w)m(e)g(get)g(that)f(there)h(is)g(a)f(state)h -Fs(s)1875 2036 y Fi(0)1931 2072 y Fu(suc)m(h)h(that)244 -2287 y Ft(h)p Fs(S)350 2302 y Fn(1)389 2287 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 2251 y Fi(0)869 2287 -y Fu(and)98 b Ft(h)o Fs(S)1229 2302 y Fn(2)1269 2287 -y Fu(,)32 b Fs(s)1376 2251 y Fi(0)1400 2287 y Ft(i)g(!)g -Fs(s)1651 2251 y Fi(00)0 2502 y Fu(F)-8 b(rom)37 b Ft(h)o -Fs(S)367 2517 y Fn(1)407 2502 y Fu(,)i Fs(s)8 b Ft(i)38 -b(!)g Fs(s)784 2466 y Fi(0)807 2502 y Fu(,)i Fs(P)49 -b(s)d Fu(=)38 b Fw(tt)f Fu(and)i Ft(j)-17 b Fu(=)1596 -2517 y Fn(p)1678 2502 y Ft(f)38 b Fs(P)48 b Ft(g)38 b -Fs(S)2035 2517 y Fn(1)2113 2502 y Ft(f)g Fs(Q)47 b Ft(g)38 -b Fu(w)m(e)h(get)g Fs(Q)47 b(s)2899 2466 y Fi(0)2960 -2502 y Fu(=)38 b Fw(tt)p Fu(.)60 b(F)-8 b(rom)0 2622 -y Ft(h)p Fs(S)106 2637 y Fn(2)145 2622 y Fu(,)33 b Fs(s)253 -2586 y Fi(0)276 2622 y Ft(i)f(!)g Fs(s)527 2586 y Fi(00)570 -2622 y Fu(,)g Fs(Q)41 b(s)793 2586 y Fi(0)848 2622 y -Fu(=)32 b Fw(tt)f Fu(and)h Ft(j)-17 b Fu(=)1351 2637 -y Fn(p)1427 2622 y Ft(f)31 b Fs(Q)41 b Ft(g)32 b Fs(S)1773 -2637 y Fn(2)1844 2622 y Ft(f)g Fs(R)k Ft(g)c Fu(it)f(follo)m(ws)f(that) -i Fs(R)k(s)2897 2586 y Fi(00)2971 2622 y Fu(=)c Fw(tt)f -Fu(as)h(w)m(as)0 2743 y(to)g(b)s(e)h(sho)m(wn.)0 2910 -y Fw(The)g(case)g Fu([if)541 2925 y Fn(p)583 2910 y Fu(]:)44 -b(Assume)33 b(that)244 3125 y Ft(j)-17 b Fu(=)331 3140 -y Fn(p)407 3125 y Ft(f)32 b(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)1073 -3140 y Fn(1)1145 3125 y Ft(f)g Fs(Q)42 b Ft(g)32 b Fu(and)h -Ft(j)-17 b Fu(=)1703 3140 y Fn(p)1779 3125 y Ft(f)32 -b(:)q(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g -Fs(P)43 b Ft(g)32 b Fs(S)2512 3140 y Fn(2)2584 3125 y -Ft(f)g Fs(Q)42 b Ft(g)0 3340 y Fu(T)-8 b(o)31 b(pro)m(v)m(e)h -Ft(j)-17 b Fu(=)490 3355 y Fn(p)564 3340 y Ft(f)30 b -Fs(P)41 b Ft(g)31 b Fr(if)g Fs(b)37 b Fr(then)31 b Fs(S)1349 -3355 y Fn(1)1419 3340 y Fr(else)h Fs(S)1722 3355 y Fn(2)1792 -3340 y Ft(f)f Fs(Q)39 b Ft(g)31 b Fu(consider)g(arbitrary)f(states)h -Fs(s)39 b Fu(and)31 b Fs(s)3449 3304 y Fi(0)0 3461 y -Fu(suc)m(h)j(that)e Fs(P)43 b(s)e Fu(=)32 b Fw(tt)g Fu(and)244 -3676 y Ft(h)p Fr(if)h Fs(b)38 b Fr(then)c Fs(S)806 3691 -y Fn(1)877 3676 y Fr(else)g Fs(S)1182 3691 y Fn(2)1221 -3676 y Fu(,)f Fs(s)8 b Ft(i)32 b(!)g Fs(s)1580 3639 y -Fi(0)0 3891 y Fu(There)i(are)f(t)m(w)m(o)h(cases.)46 -b(If)33 b Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q -Fs(s)41 b Fu(=)33 b Fw(tt)f Fu(then)i(w)m(e)g(get)f(\()p -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)h -Fs(P)10 b Fu(\))33 b Fs(s)41 b Fu(=)33 b Fw(tt)f Fu(and)h(from)f([if) -3375 3906 y Fn(ns)3445 3891 y Fu(])0 4011 y(w)m(e)i(ha)m(v)m(e)244 -4226 y Ft(h)p Fs(S)350 4241 y Fn(1)389 4226 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 4190 y Fi(0)0 4441 y -Fu(F)-8 b(rom)39 b(the)i(\014rst)g(assumption)f(w)m(e)i(therefore)f -(get)f Fs(Q)50 b(s)2085 4405 y Fi(0)2149 4441 y Fu(=)40 -b Fw(tt)p Fu(.)67 b(If)40 b Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q Fs(s)48 b Fu(=)41 b Fw(\013)f Fu(the)h(result)0 -4561 y(follo)m(ws)31 b(in)h(a)g(similar)e(w)m(a)m(y)j(from)f(the)h -(second)h(assumption.)0 4729 y Fw(The)f(case)g Fu([while)706 -4744 y Fn(p)749 4729 y Fu(]:)43 b(Assume)34 b(that)244 -4944 y Ft(j)-17 b Fu(=)331 4959 y Fn(p)407 4944 y Ft(f)32 -b(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g -Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(P)43 b Ft(g)0 -5159 y Fu(T)-8 b(o)35 b(pro)m(v)m(e)h Ft(j)-17 b Fu(=)498 -5174 y Fn(p)577 5159 y Ft(f)35 b Fs(P)45 b Ft(g)35 b -Fr(while)h Fs(b)41 b Fr(do)36 b Fs(S)46 b Ft(f)35 b(:)q(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])35 b Ft(^)h Fs(P)45 -b Ft(g)35 b Fu(consider)g(arbitrary)f(states)i Fs(s)43 -b Fu(and)0 5279 y Fs(s)48 5243 y Fi(00)123 5279 y Fu(suc)m(h)34 -b(that)e Fs(P)43 b(s)e Fu(=)32 b Fw(tt)g Fu(and)244 5494 -y Ft(h)p Fr(while)h Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 -b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1216 5458 y Fi(00)p eop -%%Page: 186 196 -186 195 bop 251 130 a Fw(186)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 a Fu(and)28 b(w)m(e)g(shall)e(sho)m(w)j(that)e(\()p -Ft(:B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Ft(^)p -Fs(P)10 b Fu(\))28 b Fs(s)1827 479 y Fi(00)1897 515 y -Fu(=)f Fw(tt)p Fu(.)41 b(W)-8 b(e)27 b(shall)f(no)m(w)i(pro)s(ceed)g(b) -m(y)h(induction)d(on)283 636 y(the)33 b(shap)s(e)g(of)e(the)i(deriv)-5 -b(ation)30 b(tree)j(in)e(the)i(natural)d(seman)m(tics.)44 -b(One)32 b(of)g(t)m(w)m(o)h(cases)g(apply)-8 b(.)283 -756 y(If)34 b Ft(B)t Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fw(\013)i Fu(then)h Fs(s)1137 -720 y Fi(00)1214 756 y Fu(=)f Fs(s)42 b Fu(according)33 -b(to)h([while)2217 720 y Fn(\013)2217 781 y(ns)2287 756 -y Fu(])g(and)h(clearly)e(\()p Ft(:B)s Fu([)-17 b([)q -Fs(b)6 b Fu(])-17 b(])35 b Ft(^)f Fs(P)10 b Fu(\))34 -b Fs(s)3482 720 y Fi(00)3559 756 y Fu(=)g Fw(tt)283 877 -y Fu(as)f(required.)44 b(Next)34 b(consider)f(the)g(case)g(where)h -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fw(tt)g Fu(and)527 1085 y Ft(h)p Fs(S)12 -b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)992 1049 y Fi(0)1113 -1085 y Fu(and)130 b Ft(h)p Fr(while)34 b Fs(b)k Fr(do)33 -b Fs(S)12 b Fu(,)33 b Fs(s)2121 1049 y Fi(0)2144 1085 -y Ft(i)f(!)g Fs(s)2395 1049 y Fi(00)283 1294 y Fu(for)38 -b(some)h(state)g Fs(s)982 1258 y Fi(0)1005 1294 y Fu(.)61 -b(Th)m(us)41 b(\()p Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])38 b Ft(^)h Fs(P)10 b Fu(\))39 b Fs(s)47 b Fu(=)38 -b Fw(tt)g Fu(and)g(w)m(e)i(can)f(then)g(apply)f(the)h(assump-)283 -1414 y(tion)f Ft(j)-17 b Fu(=)577 1429 y Fn(p)653 1414 -y Ft(f)33 b(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 -b Ft(^)g Fs(P)42 b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(P)43 -b Ft(g)c Fu(and)g(get)g(that)g Fs(P)49 b(s)2378 1378 -y Fi(0)2441 1414 y Fu(=)38 b Fw(tt)p Fu(.)62 b(The)40 -b(induction)e(h)m(yp)s(othe-)283 1535 y(sis)g(can)g(no)m(w)h(b)s(e)e -(applied)g(to)g(the)i(deriv)-5 b(ation)36 b Ft(h)o Fr(while)e -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)2783 1499 -y Fi(0)2807 1535 y Ft(i)g(!)g Fs(s)3058 1499 y Fi(00)3138 -1535 y Fu(and)38 b(giv)m(es)g(that)283 1655 y(\()p Ft(:)q(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)10 -b Fu(\))33 b Fs(s)909 1619 y Fi(00)984 1655 y Fu(=)f -Fw(tt)o Fu(.)44 b(This)32 b(completes)h(the)g(pro)s(of)f(of)g(this)g -(case.)283 1823 y Fw(The)h(case)g Fu([cons)950 1838 y -Fn(p)995 1823 y Fu(]:)43 b(Supp)s(ose)34 b(that)527 2032 -y Ft(j)-17 b Fu(=)614 2047 y Fn(p)690 2032 y Ft(f)32 -b Fs(P)848 1996 y Fi(0)905 2032 y Ft(g)g Fs(S)44 b Ft(f)33 -b Fs(Q)1253 1996 y Fi(0)1309 2032 y Ft(g)f Fu(and)h Fs(P)43 -b Ft(\))32 b Fs(P)1898 1996 y Fi(0)1986 2032 y Fu(and)h -Fs(Q)2260 1996 y Fi(0)2316 2032 y Ft(\))f Fs(Q)283 2240 -y Fu(T)-8 b(o)33 b(pro)m(v)m(e)h Ft(j)-17 b Fu(=)777 -2255 y Fn(p)853 2240 y Ft(f)32 b Fs(P)43 b Ft(g)32 b -Fs(S)45 b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fu(consider)h(states)g -Fs(s)41 b Fu(and)33 b Fs(s)2483 2204 y Fi(0)2539 2240 -y Fu(suc)m(h)h(that)e Fs(P)43 b(s)d Fu(=)33 b Fw(tt)e -Fu(and)527 2449 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b -Ft(i)32 b(!)g Fs(s)992 2413 y Fi(0)283 2658 y Fu(Since)e -Fs(P)39 b(s)e Fu(=)29 b Fw(tt)f Fu(and)h Fs(P)40 b Ft(\))28 -b Fs(P)1434 2622 y Fi(0)1487 2658 y Fu(w)m(e)i(also)e(ha)m(v)m(e)j -Fs(P)2117 2622 y Fi(0)2169 2658 y Fs(s)38 b Fu(=)28 b -Fw(tt)h Fu(and)g(the)g(assumption)g(then)g(giv)m(es)283 -2778 y(us)34 b(that)e Fs(Q)704 2742 y Fi(0)760 2778 y -Fs(s)808 2742 y Fi(0)864 2778 y Fu(=)g Fw(tt)p Fu(.)43 -b(F)-8 b(rom)31 b Fs(Q)1470 2742 y Fi(0)1526 2778 y Ft(\))h -Fs(Q)42 b Fu(w)m(e)33 b(therefore)g(get)g Fs(Q)42 b(s)2655 -2742 y Fi(0)2711 2778 y Fu(=)32 b Fw(tt)g Fu(as)g(required.)247 -b Fh(2)283 3098 y Fw(Exercise)37 b(6.18)49 b Fu(Sho)m(w)38 -b(that)g(the)g(inference)h(rule)e(for)g Fr(repeat)j Fs(S)49 -b Fr(until)40 b Fs(b)j Fu(suggested)d(in)283 3219 y(Exercise)25 -b(6.11)e(preserv)m(es)j(v)-5 b(alidit)m(y)d(.)38 b(Argue)24 -b(that)f(this)g(means)h(that)f(the)h(en)m(tire)f(pro)s(of)g(system)283 -3339 y(consisting)34 b(of)g(the)g(axioms)f(and)h(rules)g(of)g(T)-8 -b(able)34 b(6.1)g(together)g(with)g(the)g(rule)g(of)f(Exercise)283 -3460 y(6.11)f(is)g(sound.)2818 b Fh(2)283 3695 y Fw(Exercise)37 -b(6.19)49 b Fu(De\014ne)33 b Ft(j)-17 b Fu(=)1364 3659 -y Fi(0)1420 3695 y Ft(f)32 b Fs(P)43 b Ft(g)32 b Fs(S)45 -b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fu(to)g(mean)g(that)527 -3904 y(for)42 b(all)e(states)j Fs(s)50 b Fu(suc)m(h)43 -b(that)f Fs(P)52 b(s)f Fu(=)41 b Fw(tt)h Fu(there)g(exists)h(a)f(state) -g Fs(s)3038 3868 y Fi(0)3104 3904 y Fu(suc)m(h)h(that)527 -4025 y Fs(Q)f(s)692 3988 y Fi(0)748 4025 y Fu(=)32 b -Fw(tt)g Fu(and)h Ft(h)o Fs(S)12 b Fu(,)33 b Fs(s)8 b -Ft(i)32 b(!)g Fs(s)1630 3988 y Fi(0)283 4233 y Fu(Sho)m(w)h(that)e(it)f -(is)h Fs(not)40 b Fu(the)32 b(case)g(that)f Ft(`)1763 -4248 y Fn(p)1838 4233 y Ft(f)g Fs(P)41 b Ft(g)31 b Fs(S)43 -b Ft(f)31 b Fs(Q)41 b Ft(g)31 b Fu(implies)d Ft(j)-17 -b Fu(=)2899 4197 y Fi(0)2954 4233 y Ft(f)31 b Fs(P)41 -b Ft(g)31 b Fs(S)43 b Ft(f)31 b Fs(Q)41 b Ft(g)31 b Fu(and)283 -4354 y(conclude)j(that)f(the)h(pro)s(of)e(system)i(of)f(T)-8 -b(able)33 b(6.1)g(cannot)g(b)s(e)h(sound)g(with)f(resp)s(ect)h(to)f -(this)283 4474 y(de\014nition)f(of)g(v)-5 b(alidit)m(y)d(.)2515 -b Fh(2)283 4770 y Fp(Completeness)47 b(\(in)e(the)h(extensional)g -(approac)l(h\))283 4957 y Fu(Before)35 b(turning)f(to)g(the)h(pro)s(of) -e(of)h(the)h(completeness)g(result)g(w)m(e)g(shall)e(consider)i(a)f(sp) -s(ecial)283 5077 y(predicate)f(wlp\()p Fs(S)12 b Fu(,)32 -b Fs(Q)9 b Fu(\))33 b(de\014ned)h(for)e(eac)m(h)h(statemen)m(t)g -Fs(S)45 b Fu(and)33 b(predicate)f Fs(Q)9 b Fu(:)527 5286 -y(wlp\()p Fs(S)j Fu(,)32 b Fs(Q)9 b Fu(\))33 b Fs(s)41 -b Fu(=)32 b Fw(tt)283 5494 y Fu(if)g(and)h(only)f(if)f(for)h(all)f -(states)i Fs(s)1476 5458 y Fi(0)1499 5494 y Fu(,)p eop -%%Page: 187 197 -187 196 bop 0 130 a Fw(6.3)112 b(Soundness)40 b(and)e(completeness)1647 -b(187)p 0 193 3473 4 v 244 515 a Fu(if)31 b Ft(h)p Fs(S)12 -b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)798 479 y Fi(0)854 -515 y Fu(then)h Fs(Q)42 b(s)1241 479 y Fi(0)1297 515 -y Fu(=)32 b Fw(tt)0 719 y Fu(The)i(predicate)e(is)g(called)g(the)h -Fs(we)-5 b(akest)34 b(lib)-5 b(er)g(al)34 b(pr)-5 b(e)g(c)g(ondition)39 -b Fu(for)32 b Fs(Q)42 b Fu(and)32 b(it)g(satis\014es:)p -0 839 3473 5 v 0 1014 a Fw(F)-9 b(act)37 b(6.20)49 b -Fu(F)-8 b(or)32 b(ev)m(ery)j(statemen)m(t)e Fs(S)44 b -Fu(and)33 b(predicate)f Fs(Q)42 b Fu(w)m(e)34 b(ha)m(v)m(e)145 -1217 y Ft(\017)49 b(j)-17 b Fu(=)331 1232 y Fn(p)407 -1217 y Ft(f)32 b Fu(wlp\()p Fs(S)12 b Fu(,)32 b Fs(Q)9 -b Fu(\))33 b Ft(g)f Fs(S)44 b Ft(f)33 b Fs(Q)41 b Ft(g)1958 -b Fu(\(*\))145 1421 y Ft(\017)49 b Fu(if)31 b Ft(j)-17 -b Fu(=)420 1436 y Fn(p)496 1421 y Ft(f)32 b Fs(P)43 b -Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fu(then)i -Fs(P)42 b Ft(\))33 b Fu(wlp\()p Fs(S)12 b Fu(,)32 b Fs(Q)9 -b Fu(\))1247 b(\(**\))0 1625 y(meaning)31 b(that)i(wlp\()p -Fs(S)12 b Fu(,)32 b Fs(Q)9 b Fu(\))32 b(is)g(the)h(w)m(eak)m(est)i(p)s -(ossible)d(precondition)g(for)g Fs(S)44 b Fu(and)33 b -Fs(Q)9 b Fu(.)p 0 1745 V 0 1948 a Fw(Pro)s(of:)54 b Fu(T)-8 -b(o)47 b(v)m(erify)h(that)e(\(*\))h(holds)g(let)f Fs(s)55 -b Fu(and)48 b Fs(s)1971 1912 y Fi(0)2041 1948 y Fu(b)s(e)f(states)h -(suc)m(h)h(that)e Ft(h)p Fs(S)12 b Fu(,)47 b Fs(s)8 b -Ft(i)46 b(!)h Fs(s)3449 1912 y Fi(0)0 2069 y Fu(and)38 -b(wlp\()p Fs(S)12 b Fu(,)33 b Fs(Q)9 b Fu(\))32 b Fs(s)41 -b Fu(=)32 b Fw(tt)o Fu(.)61 b(F)-8 b(rom)37 b(the)i(de\014nition)e(of)h -(wlp\()p Fs(S)12 b Fu(,)38 b Fs(Q)9 b Fu(\))38 b(w)m(e)i(get)e(that)g -Fs(Q)47 b(s)3209 2033 y Fi(0)3271 2069 y Fu(=)38 b Fw(tt)0 -2189 y Fu(as)k(required.)71 b(T)-8 b(o)42 b(v)m(erify)g(that)f(\(**\))g -(holds)h(assume)g(that)f Ft(j)-17 b Fu(=)2362 2204 y -Fn(p)2447 2189 y Ft(f)42 b Fs(P)52 b Ft(g)41 b Fs(S)54 -b Ft(f)41 b Fs(Q)51 b Ft(g)41 b Fu(and)h(let)0 2310 y -Fs(P)h(s)d Fu(=)33 b Fw(tt)o Fu(.)55 b(If)36 b Ft(h)p -Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)1033 -2273 y Fi(0)1092 2310 y Fu(then)37 b Fs(Q)46 b(s)1487 -2273 y Fi(0)1546 2310 y Fu(=)37 b Fw(tt)e Fu(\(b)s(ecause)j -Ft(j)-17 b Fu(=)2272 2325 y Fn(p)2351 2310 y Ft(f)36 -b Fs(P)47 b Ft(g)36 b Fs(S)48 b Ft(f)36 b Fs(Q)46 b Ft(g)p -Fu(\))36 b(so)g(clearly)0 2430 y(wlp\()p Fs(S)12 b Fu(,)p -Fs(Q)d Fu(\))32 b Fs(s)41 b Fu(=)32 b Fw(tt)o Fu(.)2657 -b Fh(2)0 2742 y Fw(Exercise)36 b(6.21)49 b Fu(Pro)m(v)m(e)34 -b(that)f(the)g(predicate)f Fs(INV)52 b Fu(of)32 b(Example)g(6.9)g -(satis\014es)269 2909 y Fs(INV)51 b Fu(=)32 b(wlp\()p -Fr(while)i Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f -Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h -Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fu(1\),)i Fr(y)e Fu(=)h -Fr(n)p Fu(!)43 b Ft(^)33 b Fr(n)g Fo(>)g Fr(0)p Fu(\))164 -b Fh(2)0 3138 y Fw(Exercise)36 b(6.22)49 b Fu(Another)f(in)m(teresting) -e(predicate)h(called)f(the)h Fs(str)-5 b(ongest)48 b(p)-5 -b(ostc)g(ondition)0 3258 y Fu(for)32 b Fs(S)44 b Fu(and)33 -b Fs(P)43 b Fu(can)33 b(b)s(e)g(de\014ned)h(b)m(y)244 -3462 y(sp\()p Fs(P)10 b Fu(,)33 b Fs(S)12 b Fu(\))33 -b Fs(s)696 3426 y Fi(0)752 3462 y Fu(=)f Fw(tt)0 3665 -y Fu(if)f(and)i(only)f(if)244 3869 y(there)h(exists)h -Fs(s)40 b Fu(suc)m(h)34 b(that)f Ft(h)o Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1739 3833 y Fi(0)1795 3869 -y Fu(and)h Fs(P)43 b(s)d Fu(=)33 b Fw(tt)0 4072 y Fu(Pro)m(v)m(e)h -(that)145 4276 y Ft(\017)49 b(j)-17 b Fu(=)331 4291 y -Fn(p)407 4276 y Ft(f)32 b Fs(P)43 b Ft(g)32 b Fs(S)45 -b Ft(f)32 b Fu(sp\()p Fs(P)10 b Fu(,)34 b Fs(S)12 b Fu(\))32 -b Ft(g)145 4479 y(\017)49 b Fu(if)31 b Ft(j)-17 b Fu(=)420 -4494 y Fn(p)496 4479 y Ft(f)32 b Fs(P)43 b Ft(g)33 b -Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fu(then)i(sp\()p -Fs(P)10 b Fu(,)33 b Fs(S)12 b Fu(\))32 b Ft(\))h Fs(Q)0 -4683 y Fu(Th)m(us)h(sp\()p Fs(P)10 b Fu(,)34 b Fs(S)12 -b Fu(\))32 b(is)g(the)h(strongest)g(p)s(ossible)f(p)s(ostcondition)g -(for)g Fs(P)43 b Fu(and)32 b Fs(S)12 b Fu(.)544 b Fh(2)p -0 4912 V 0 5086 a Fw(Lemma)37 b(6.23)49 b Fu(The)d(inference)f(system)h -(of)e(T)-8 b(able)45 b(6.1)f(is)g(complete,)j(that)e(is)f(for)h(ev)m -(ery)0 5206 y(partial)30 b(correctness)35 b(form)m(ula)c -Ft(f)h Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(Q)42 -b Ft(g)32 b Fu(w)m(e)i(ha)m(v)m(e)269 5374 y Ft(j)-17 -b Fu(=)356 5389 y Fn(p)432 5374 y Ft(f)32 b Fs(P)43 b -Ft(g)32 b Fs(S)44 b Ft(f)33 b Fs(Q)41 b Ft(g)33 b Fu(implies)d -Ft(`)1478 5389 y Fn(p)1554 5374 y Ft(f)i Fs(P)43 b Ft(g)32 -b Fs(S)45 b Ft(f)32 b Fs(Q)42 b Ft(g)p 0 5494 V eop -%%Page: 188 198 -188 197 bop 251 130 a Fw(188)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 a(Pro)s(of:)38 b Fu(The)33 b(completeness)h(result)e(follo)m(ws)f -(if)h(w)m(e)h(can)g(infer)552 683 y Ft(`)613 698 y Fn(p)689 -683 y Ft(f)f Fu(wlp\()p Fs(S)12 b Fu(,)32 b Fs(Q)9 b -Fu(\))33 b Ft(g)f Fs(S)45 b Ft(f)32 b Fs(Q)42 b Ft(g)1958 -b Fu(\(*\))283 851 y(for)32 b(all)f(statemen)m(ts)j Fs(S)44 -b Fu(and)33 b(predicates)g Fs(Q)9 b Fu(.)33 b(T)-8 b(o)32 -b(see)i(this)e(supp)s(ose)i(that)527 1046 y Ft(j)-17 -b Fu(=)614 1061 y Fn(p)690 1046 y Ft(f)32 b Fs(P)43 b -Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)283 1242 -y Fu(Then)34 b(F)-8 b(act)32 b(6.20)g(giv)m(es)h(that)527 -1438 y Fs(P)43 b Ft(\))32 b Fu(wlp\()p Fs(S)12 b Fu(,)p -Fs(Q)d Fu(\))283 1633 y(so)33 b(that)g(\(*\))f(and)g([cons)1172 -1648 y Fn(p)1217 1633 y Fu(])g(giv)m(e)527 1829 y Ft(`)588 -1844 y Fn(p)664 1829 y Ft(f)g Fs(P)43 b Ft(g)33 b Fs(S)44 -b Ft(f)32 b Fs(Q)42 b Ft(g)283 2025 y Fu(as)33 b(required.)430 -2145 y(T)-8 b(o)32 b(pro)m(v)m(e)i(\(*\))e(w)m(e)i(pro)s(ceed)f(b)m(y)h -(structural)e(induction)g(on)g(the)h(statemen)m(t)g Fs(S)12 -b Fu(.)283 2313 y Fw(The)33 b(case)g Fs(x)45 b Fu(:=)32 -b Fs(a)7 b Fu(:)44 b(Based)33 b(on)g(the)g(natural)e(seman)m(tics)i(it) -f(is)g(easy)h(to)g(v)m(erify)g(that)527 2508 y(wlp\()p -Fs(x)44 b Fu(:=)33 b Fs(a)7 b Fu(,)33 b Fs(Q)9 b Fu(\))32 -b(=)h Fs(Q)9 b Fu([)p Fs(x)j Ft(7!)o(A)p Fu([)-17 b([)p -Fs(a)7 b Fu(])-17 b(])q(])283 2704 y(so)33 b(the)g(result)g(follo)m(ws) -e(directly)h(from)f([ass)1900 2719 y Fn(p)1945 2704 y -Fu(].)283 2872 y Fw(The)i(case)g Fr(skip)p Fu(:)45 b(Since)33 -b(wlp\()p Fr(skip)p Fu(,)g Fs(Q)9 b Fu(\))33 b(=)f Fs(Q)42 -b Fu(the)33 b(result)f(follo)m(ws)g(from)f([skip)3292 -2887 y Fn(p)3336 2872 y Fu(].)283 3039 y Fw(The)i(case)g -Fs(S)806 3054 y Fn(1)846 3039 y Fu(;)p Fs(S)940 3054 -y Fn(2)979 3039 y Fu(:)44 b(The)33 b(induction)f(h)m(yp)s(othesis)h -(applied)f(to)g Fs(S)2692 3054 y Fn(1)2764 3039 y Fu(and)g -Fs(S)3020 3054 y Fn(2)3092 3039 y Fu(giv)m(es)527 3235 -y Ft(`)588 3250 y Fn(p)664 3235 y Ft(f)g Fu(wlp\()p Fs(S)1003 -3250 y Fn(2)1042 3235 y Fu(,)h Fs(Q)9 b Fu(\))33 b Ft(g)f -Fs(S)1406 3250 y Fn(2)1478 3235 y Ft(f)g Fs(Q)42 b Ft(g)283 -3431 y Fu(and)527 3626 y Ft(`)588 3641 y Fn(p)664 3626 -y Ft(f)32 b Fu(wlp\()p Fs(S)1003 3641 y Fn(1)1042 3626 -y Fu(,)h(wlp\()p Fs(S)1359 3641 y Fn(2)1398 3626 y Fu(,)g -Fs(Q)9 b Fu(\)\))32 b Ft(g)g Fs(S)1799 3641 y Fn(1)1871 -3626 y Ft(f)h Fu(wlp\()p Fs(S)2211 3641 y Fn(2)2249 3626 -y Fu(,)g Fs(Q)9 b Fu(\))33 b Ft(g)283 3822 y Fu(so)g(that)g([comp)870 -3837 y Fn(p)913 3822 y Fu(])f(giv)m(es)527 4018 y Ft(`)588 -4033 y Fn(p)664 4018 y Ft(f)g Fu(wlp\()p Fs(S)1003 4033 -y Fn(1)1042 4018 y Fu(,)h(wlp\()p Fs(S)1359 4033 y Fn(2)1398 -4018 y Fu(,)g Fs(Q)9 b Fu(\)\))32 b Ft(g)g Fs(S)1799 -4033 y Fn(1)1839 4018 y Fu(;)p Fs(S)1933 4033 y Fn(2)2005 -4018 y Ft(f)g Fs(Q)42 b Ft(g)283 4213 y Fu(W)-8 b(e)33 -b(shall)f(no)m(w)h(pro)m(v)m(e)h(that)527 4409 y(wlp\()p -Fs(S)784 4424 y Fn(1)823 4409 y Fu(;)p Fs(S)917 4424 -y Fn(2)957 4409 y Fu(,)e Fs(Q)9 b Fu(\))33 b Ft(\))f -Fu(wlp\()p Fs(S)1560 4424 y Fn(1)1599 4409 y Fu(,)h(wlp\()p -Fs(S)1916 4424 y Fn(2)1955 4409 y Fu(,)f Fs(Q)9 b Fu(\)\))283 -4605 y(as)27 b(then)h([cons)825 4620 y Fn(p)869 4605 -y Fu(])f(will)d(giv)m(e)j(the)g(required)g(pro)s(of)f(in)g(the)h -(inference)h(system.)42 b(So)27 b(assume)g(that)283 4725 -y(wlp\()p Fs(S)540 4740 y Fn(1)579 4725 y Fu(;)p Fs(S)673 -4740 y Fn(2)713 4725 y Fu(,)j Fs(Q)9 b Fu(\))30 b Fs(s)37 -b Fu(=)30 b Fw(tt)e Fu(and)i(w)m(e)h(shall)d(sho)m(w)j(that)e(wlp\()p -Fs(S)2478 4740 y Fn(1)2517 4725 y Fu(,)k(wlp\()p Fs(S)2834 -4740 y Fn(2)2873 4725 y Fu(,)f Fs(Q)9 b Fu(\)\))33 b -Fs(s)41 b Fu(=)32 b Fw(tt)o Fu(.)43 b(This)29 b(is)283 -4845 y(ob)m(vious)36 b(unless)f(there)h(is)e(a)h(state)g -Fs(s)1654 4809 y Fi(0)1713 4845 y Fu(suc)m(h)h(that)f -Ft(h)p Fs(S)2255 4860 y Fn(1)2294 4845 y Fu(,)g Fs(s)8 -b Ft(i)35 b(!)g Fs(s)2661 4809 y Fi(0)2719 4845 y Fu(and)g(then)h(w)m -(e)g(m)m(ust)f(pro)m(v)m(e)283 4966 y(that)j(wlp\()p -Fs(S)757 4981 y Fn(2)796 4966 y Fu(,)i Fs(Q)9 b Fu(\))38 -b Fs(s)1071 4930 y Fi(0)1132 4966 y Fu(=)g Fw(tt)p Fu(.)60 -b(Ho)m(w)m(ev)m(er,)42 b(this)37 b(is)h(ob)m(vious)g(to)s(o)g(unless)h -(there)f(is)g(a)g(state)g Fs(s)3713 4930 y Fi(00)283 -5086 y Fu(suc)m(h)33 b(that)e Ft(h)p Fs(S)818 5101 y -Fn(2)857 5086 y Fu(,)i Fs(s)965 5050 y Fi(0)988 5086 -y Ft(i)f(!)g Fs(s)1239 5050 y Fi(00)1313 5086 y Fu(and)f(then)h(w)m(e)g -(m)m(ust)f(pro)m(v)m(e)i(that)e Fs(Q)40 b(s)2739 5050 -y Fi(00)2812 5086 y Fu(=)31 b Fw(tt)p Fu(.)43 b(But)31 -b(b)m(y)h([comp)3658 5101 y Fn(ns)3729 5086 y Fu(])283 -5206 y(w)m(e)i(ha)m(v)m(e)g Ft(h)p Fs(S)758 5221 y Fn(1)797 -5206 y Fu(;)p Fs(S)891 5221 y Fn(2)930 5206 y Fu(,)f -Fs(s)8 b Ft(i)32 b(!)g Fs(s)1289 5170 y Fi(00)1365 5206 -y Fu(so)g(that)h Fs(Q)41 b(s)1860 5170 y Fi(00)1935 5206 -y Fu(=)33 b Fw(tt)e Fu(follo)m(ws)h(from)f(wlp\()p Fs(S)2971 -5221 y Fn(1)3010 5206 y Fu(;)p Fs(S)3104 5221 y Fn(2)3143 -5206 y Fu(,)i Fs(Q)9 b Fu(\))33 b Fs(s)40 b Fu(=)33 b -Fw(tt)o Fu(.)283 5374 y Fw(The)g(case)g Fr(if)g Fs(b)38 -b Fr(then)c Fs(S)1262 5389 y Fn(1)1333 5374 y Fr(else)g -Fs(S)1638 5389 y Fn(2)1677 5374 y Fu(:)43 b(The)33 b(induction)f(h)m -(yp)s(othesis)h(applied)f(to)g Fs(S)3389 5389 y Fn(1)3460 -5374 y Fu(and)h Fs(S)3717 5389 y Fn(2)283 5494 y Fu(giv)m(es)p -eop -%%Page: 189 199 -189 198 bop 0 130 a Fw(6.3)112 b(Soundness)40 b(and)e(completeness)1647 -b(189)p 0 193 3473 4 v 244 515 a Ft(`)305 530 y Fn(p)381 -515 y Ft(f)32 b Fu(wlp\()p Fs(S)720 530 y Fn(1)759 515 -y Fu(,)h Fs(Q)9 b Fu(\))32 b Ft(g)g Fs(S)1122 530 y Fn(1)1194 -515 y Ft(f)h Fs(Q)41 b Ft(g)33 b Fu(and)f Ft(`)1726 530 -y Fn(p)1802 515 y Ft(f)g Fu(wlp\()p Fs(S)2141 530 y Fn(2)2180 -515 y Fu(,)h Fs(Q)9 b Fu(\))32 b Ft(g)h Fs(S)2544 530 -y Fn(2)2616 515 y Ft(f)f Fs(Q)42 b Ft(g)0 722 y Fu(De\014ne)33 -b(the)g(predicate)g Fs(P)43 b Fu(b)m(y)244 929 y Fs(P)g -Fu(=)32 b(\()p Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])33 b Ft(^)g Fu(wlp\()p Fs(S)1082 944 y Fn(1)1121 -929 y Fu(,)g Fs(Q)9 b Fu(\)\))32 b Ft(_)h Fu(\()p Ft(:B)t -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fu(wlp\()p -Fs(S)2160 944 y Fn(2)2198 929 y Fu(,)g Fs(Q)9 b Fu(\)\))0 -1136 y(Then)34 b(w)m(e)f(ha)m(v)m(e)244 1343 y(\()p Ft(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)10 -b Fu(\))33 b Ft(\))f Fu(wlp\()p Fs(S)1144 1358 y Fn(1)1183 -1343 y Fu(,)g Fs(Q)9 b Fu(\))33 b(and)g(\()p Ft(:B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)10 -b Fu(\))33 b Ft(\))f Fu(wlp\()p Fs(S)2553 1358 y Fn(2)2592 -1343 y Fu(,)h Fs(Q)9 b Fu(\))0 1550 y(so)33 b([cons)331 -1565 y Fn(p)375 1550 y Fu(])g(can)f(b)s(e)h(applied)f(t)m(wice)h(and)f -(giv)m(es)244 1757 y Ft(`)305 1772 y Fn(p)381 1757 y -Ft(f)g(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b -Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)1047 1772 y Fn(1)1119 -1757 y Ft(f)g Fs(Q)42 b Ft(g)32 b Fu(and)h Ft(`)1651 -1772 y Fn(p)1727 1757 y Ft(f)f(:B)t Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])33 b Ft(^)g Fs(P)42 b Ft(g)33 b Fs(S)2460 -1772 y Fn(2)2532 1757 y Ft(f)f Fs(Q)42 b Ft(g)0 1964 -y Fu(Using)32 b([if)359 1979 y Fn(p)402 1964 y Fu(])g(w)m(e)i -(therefore)f(get)244 2171 y Ft(`)305 2186 y Fn(p)381 -2171 y Ft(f)f Fs(P)43 b Ft(g)32 b Fr(if)h Fs(b)39 b Fr(then)33 -b Fs(S)1177 2186 y Fn(1)1249 2171 y Fr(else)h Fs(S)1554 -2186 y Fn(2)1625 2171 y Ft(f)f Fs(Q)41 b Ft(g)0 2378 -y Fu(T)-8 b(o)33 b(see)g(that)g(this)f(is)g(the)h(desired)g(result)g -(it)e(su\016ces)k(to)d(sho)m(w)i(that)244 2585 y(wlp\()p -Fr(if)f Fs(b)38 b Fr(then)c Fs(S)957 2600 y Fn(1)1028 -2585 y Fr(else)g Fs(S)1333 2600 y Fn(2)1372 2585 y Fu(,)f -Fs(Q)9 b Fu(\))32 b Ft(\))h Fs(P)0 2792 y Fu(and)g(this)f(is)g(straigh) -m(tforw)m(ard)g(b)m(y)i(cases)g(on)e(the)h(v)-5 b(alue)32 -b(of)g Fs(b)6 b Fu(.)0 2959 y Fw(The)33 b(case)g Fr(while)h -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(:)33 b(De\014ne)g(the)g(predicate)g -Fs(P)43 b Fu(b)m(y)244 3166 y Fs(P)g Fu(=)32 b(wlp\()p -Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(Q)9 -b Fu(\))0 3373 y(W)-8 b(e)33 b(\014rst)g(sho)m(w)h(that)269 -3541 y(\()p Ft(:B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 -b(])33 b Ft(^)g Fs(P)10 b Fu(\))33 b Ft(\))f Fs(Q)2246 -b Fu(\(**\))269 3708 y(\()p Ft(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])33 b Ft(^)g Fs(P)10 b Fu(\))33 b Ft(\))f -Fu(wlp\()p Fs(S)12 b Fu(,)p Fs(P)e Fu(\))1940 b(\(***\))0 -3876 y(T)-8 b(o)36 b(v)m(erify)h(\(**\))e(let)g Fs(s)45 -b Fu(b)s(e)36 b(suc)m(h)h(that)f(\()p Ft(:)q(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])36 b Ft(^)h Fs(P)10 b Fu(\))36 -b Fs(s)44 b Fu(=)36 b Fw(tt)p Fu(.)53 b(Then)37 b(it)e(m)m(ust)i(b)s(e) -f(the)g(case)0 3996 y(that)i Ft(h)p Fr(while)33 b Fs(b)39 -b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f -Fs(s)46 b Fu(so)38 b(w)m(e)h(ha)m(v)m(e)h Fs(Q)47 b(s)f -Fu(=)38 b Fw(tt)p Fu(.)59 b(T)-8 b(o)38 b(v)m(erify)h(\(***\))e(let)h -Fs(s)46 b Fu(b)s(e)38 b(suc)m(h)0 4117 y(that)33 b(\()p -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g -Fs(P)10 b Fu(\))33 b Fs(s)40 b Fu(=)33 b Fw(tt)f Fu(and)h(w)m(e)i -(shall)c(sho)m(w)k(that)e(wlp\()p Fs(S)12 b Fu(,)p Fs(P)e -Fu(\))33 b Fs(s)41 b Fu(=)33 b Fw(tt)p Fu(.)44 b(This)33 -b(is)g(ob)m(vious)0 4237 y(unless)j(there)h(is)e(a)h(state)g -Fs(s)1020 4201 y Fi(0)1079 4237 y Fu(suc)m(h)h(that)f -Ft(h)o Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1981 -4201 y Fi(0)2040 4237 y Fu(in)j(whic)m(h)i(case)f(w)m(e)h(shall)e(pro)m -(v)m(e)i(that)0 4358 y Fs(P)44 b(s)158 4321 y Fi(0)215 -4358 y Fu(=)33 b Fw(tt)p Fu(.)46 b(W)-8 b(e)34 b(ha)m(v)m(e)h(t)m(w)m -(o)f(cases.)48 b(First)32 b(w)m(e)j(assume)f(that)g Ft(h)o -Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)3005 -4321 y Fi(0)3028 4358 y Ft(i)h(!)f Fs(s)3280 4321 y Fi(00)3356 -4358 y Fu(for)0 4478 y(some)38 b Fs(s)298 4442 y Fi(00)341 -4478 y Fu(.)61 b(Then)39 b([while)939 4442 y Fn(tt)939 -4503 y(ns)1009 4478 y Fu(])g(giv)m(es)g(us)g(that)f Ft(h)p -Fr(while)h Fs(b)44 b Fr(do)39 b Fs(S)12 b Fu(,)38 b Fs(s)8 -b Ft(i)39 b(!)e Fs(s)2674 4442 y Fi(00)2755 4478 y Fu(and)i(since)g -Fs(P)48 b(s)f Fu(=)0 4598 y Fw(tt)34 b Fu(w)m(e)h(get)f(that)h -Fs(Q)43 b(s)811 4562 y Fi(00)888 4598 y Fu(=)34 b Fw(tt)g -Fu(using)g(F)-8 b(act)34 b(6.20.)48 b(But)35 b(this)f(means)g(that)h -Fs(P)44 b(s)2906 4562 y Fi(0)2964 4598 y Fu(=)34 b Fw(tt)g -Fu(as)g(w)m(as)0 4719 y(required.)74 b(In)43 b(the)h(second)g(case)f(w) -m(e)h(assume)f(that)g Ft(h)p Fr(while)33 b Fs(b)39 b -Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)2745 4683 y Fi(0)2769 -4719 y Ft(i)g(!)g Fs(s)3020 4683 y Fi(00)3105 4719 y -Fu(do)s(es)43 b Fs(not)0 4839 y Fu(hold)29 b(for)g(an)m(y)h(state)h -Fs(s)826 4803 y Fi(00)868 4839 y Fu(.)43 b(But)29 b(this)h(means)g -(that)f Fs(P)43 b(s)1977 4803 y Fi(0)2033 4839 y Fu(=)32 -b Fw(tt)d Fu(holds)g(v)-5 b(acuously)30 b(and)g(w)m(e)h(ha)m(v)m(e)0 -4960 y(\014nished)i(the)g(pro)s(of)f(of)g(\(***\).)146 -5081 y(The)i(induction)d(h)m(yp)s(othesis)j(applied)e(to)g(the)h(b)s(o) -s(dy)f Fs(S)45 b Fu(of)32 b(the)h Fr(while)p Fu(-lo)s(op)f(giv)m(es)244 -5288 y Ft(`)305 5303 y Fn(p)381 5288 y Ft(f)g Fu(wlp\()p -Fs(S)12 b Fu(,)p Fs(P)e Fu(\))32 b Ft(g)h Fs(S)44 b Ft(f)32 -b Fs(P)43 b Ft(g)0 5494 y Fu(and)33 b(using)f(\(***\))g(together)g -(with)h([cons)1518 5509 y Fn(p)1562 5494 y Fu(])f(w)m(e)i(get)p -eop -%%Page: 190 200 -190 199 bop 251 130 a Fw(190)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Ft(`)588 530 y Fn(p)664 515 y Ft(f)32 b(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])34 b Ft(^)e Fs(P)43 b Ft(g)33 -b Fs(S)44 b Ft(f)32 b Fs(P)43 b Ft(g)283 704 y Fu(W)-8 -b(e)33 b(can)g(no)m(w)h(apply)e(the)h(rule)f([while)1715 -719 y Fn(p)1758 704 y Fu(])g(and)h(get)527 892 y Ft(`)588 -907 y Fn(p)664 892 y Ft(f)f Fs(P)43 b Ft(g)33 b Fr(while)g -Fs(b)39 b Fr(do)33 b Fs(S)44 b Ft(f)33 b(:B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 b Ft(g)283 -1081 y Fu(Finally)-8 b(,)30 b(w)m(e)k(use)g(\(**\))d(together)i(with)f -([cons)1970 1096 y Fn(p)2015 1081 y Fu(])g(and)h(get)527 -1270 y Ft(`)588 1285 y Fn(p)664 1270 y Ft(f)f Fs(P)43 -b Ft(g)33 b Fr(while)g Fs(b)39 b Fr(do)33 b Fs(S)44 b -Ft(f)33 b Fs(Q)41 b Ft(g)283 1458 y Fu(as)33 b(required.)2902 -b Fh(2)283 1750 y Fw(Exercise)37 b(6.24)49 b Fu(Pro)m(v)m(e)34 -b(that)e(the)h(inference)g(system)h(for)e(the)h Fr(while)p -Fu(-language)f(extended)283 1870 y(with)27 b Fr(repeat)i -Fs(S)40 b Fr(until)28 b Fs(b)34 b Fu(as)27 b(in)g(Exercise)i(6.11)d(is) -h(complete.)41 b(\(If)28 b(not)f(y)m(ou)h(should)f(impro)m(v)m(e)283 -1990 y(y)m(our)34 b(rule)e(for)g Fr(repeat)i Fs(S)44 -b Fr(until)34 b Fs(b)6 b Fu(.\))1987 b Fh(2)283 2199 -y Fw(Exercise)37 b(6.25)49 b Fu(*)f(Pro)m(v)m(e)h(the)f(completeness)h -(of)f(the)g(inference)h(system)g(of)f(T)-8 b(able)47 -b(6.1)283 2319 y(using)31 b(the)h Fs(str)-5 b(ongest)33 -b(p)-5 b(ostc)g(onditions)38 b Fu(of)30 b(Exercise)j(6.22)d(rather)h -(than)g(the)g(w)m(eak)m(est)j(lib)s(eral)283 2440 y(preconditions)f(as) -f(used)i(in)e(the)h(pro)s(of)f(of)g(Lemma)f(6.23.)1256 -b Fh(2)283 2648 y Fw(Exercise)37 b(6.26)49 b Fu(De\014ne)42 -b(a)g(notion)f(of)g(v)-5 b(alidit)m(y)40 b(based)j(on)f(the)h -(denotational)d(seman)m(tics)283 2768 y(of)c(Chapter)h(4)f(and)h(pro)m -(v)m(e)g(the)g(soundness)i(of)d(the)g(inference)h(system)g(of)f(T)-8 -b(able)36 b(6.1)g(using)283 2889 y(this)46 b(de\014nition,)i(that)e(is) -f(without)g(using)h(the)g(equiv)-5 b(alence)46 b(b)s(et)m(w)m(een)i -(the)e(denotational)283 3009 y(seman)m(tics)33 b(and)g(the)g(op)s -(erational)d(seman)m(tics.)1648 b Fh(2)283 3218 y Fw(Exercise)37 -b(6.27)49 b Fu(Use)34 b(the)f(de\014nition)f(of)g(v)-5 -b(alidit)m(y)31 b(of)i(Exercise)h(6.26)e(and)h(pro)m(v)m(e)i(the)e -(com-)283 3338 y(pleteness)h(of)f(the)g(inference)g(system)g(of)f(T)-8 -b(able)33 b(6.1.)1441 b Fh(2)283 3624 y Fp(Expressiv)l(eness)47 -b(problems)e(\(in)g(the)h(in)l(tensional)g(approac)l(h\))283 -3809 y Fu(So)34 b(far)f(w)m(e)i(ha)m(v)m(e)g(only)f(considered)g(the)g -(extensional)g(approac)m(h)g(where)h(the)f(preconditions)283 -3930 y(and)23 b(p)s(ostconditions)f(of)h(the)g(form)m(ulae)e(are)i -(predicates.)41 b(In)23 b(the)g Fs(intensional)i(appr)-5 -b(o)g(ach)29 b Fu(they)283 4050 y(are)j(form)m(ulae)f(of)g(some)h -(assertion)g(language)f Ft(L)p Fu(.)43 b(The)33 b(axioms)d(and)i(rules) -g(of)g(the)g(inference)283 4170 y(system)43 b(will)c(b)s(e)i(as)h(in)e -(T)-8 b(able)41 b(6.1,)i(the)f(only)f(di\013erence)h(b)s(eing)f(that)g -(the)g(preconditions)283 4291 y(and)j(p)s(ostconditions)e(are)h(form)m -(ulae)f(of)g Ft(L)h Fu(and)h(that)f(op)s(erations)f(suc)m(h)i(as)g -Fs(P)10 b Fu([)p Fs(x)i Ft(7!A)o Fu([)-17 b([)q Fs(a)7 -b Fu(])-17 b(])q(],)283 4411 y Fs(P)359 4426 y Fn(1)432 -4411 y Ft(^)33 b Fs(P)607 4426 y Fn(2)679 4411 y Fu(and)g -Fs(P)945 4426 y Fn(1)1017 4411 y Ft(\))f Fs(P)1225 4426 -y Fn(2)1298 4411 y Fu(are)g(op)s(erations)g(on)g(form)m(ulae)f(of)h -Ft(L)p Fu(.)430 4531 y(It)45 b(will)d(b)s(e)j(natural)f(to)h(let)f -Ft(L)g Fu(include)h(the)g(b)s(o)s(olean)e(expressions)k(of)d -Fw(While)p Fu(.)79 b(The)283 4652 y(soundness)43 b(pro)s(of)38 -b(of)i(Lemma)e(6.17)h(then)i(carries)e(directly)h(o)m(v)m(er)h(to)e -(the)h(in)m(tensional)e(ap-)283 4772 y(proac)m(h.)54 -b(Unfortunately)-8 b(,)36 b(this)g(is)f(not)h(the)g(case)h(for)e(the)h -(completeness)h(pro)s(of)e(of)g(Lemma)283 4893 y(6.23.)43 -b(The)31 b(reason)g(is)f(that)g(the)h(predicates)g(wlp\()p -Fs(S)12 b Fu(,)30 b Fs(Q)9 b Fu(\))31 b(used)h(as)e(preconditions)g(no) -m(w)i(ha)m(v)m(e)283 5013 y(to)h(b)s(e)f(represen)m(ted)k(as)c(form)m -(ulae)f(of)h Ft(L)h Fu(and)f(that)h(this)f(ma)m(y)g(not)h(b)s(e)g(p)s -(ossible.)430 5133 y(T)-8 b(o)22 b(illustrate)e(the)j(problems)e(let)h -Fs(S)34 b Fu(b)s(e)22 b(a)g(statemen)m(t,)j(for)d(example)f(a)h(univ)m -(ersal)g(program)283 5254 y(in)j(the)g(sense)h(of)f(recursion)g(theory) --8 b(,)27 b(that)d(has)i(an)e(undecidable)h(Halting)e(problem.)40 -b(F)-8 b(urther,)283 5374 y(supp)s(ose)37 b(that)d Ft(L)g -Fu(only)h(con)m(tains)f(the)h(b)s(o)s(olean)f(expressions)i(of)e -Fw(While)p Fu(.)49 b(Finally)-8 b(,)32 b(assume)283 5494 -y(that)h(there)g(is)f(a)g(form)m(ula)f Fs(b)1332 5509 -y Fc(S)1415 5494 y Fu(of)i Ft(L)f Fu(suc)m(h)i(that)e(for)g(all)f -(states)i Fs(s)p eop -%%Page: 191 201 -191 200 bop 0 130 a Fw(6.4)112 b(Extensions)37 b(of)h(the)f(axiomatic)f -(system)1315 b(191)p 0 193 3473 4 v 244 515 a Ft(B)s -Fu([)-17 b([)q Fs(b)401 530 y Fc(S)452 515 y Fu(])g(])33 -b Fs(s)40 b Fu(=)33 b Fw(tt)e Fu(if)h(and)h(only)f(if)f(wlp\()p -Fs(S)12 b Fu(,)32 b Fr(false)p Fu(\))i Fs(s)41 b Fu(=)32 -b Fw(tt)0 720 y Fu(Then)i(also)d Ft(:)q Fs(b)568 735 -y Fc(S)651 720 y Fu(is)h(a)g(form)m(ula)f(of)h Ft(L)p -Fu(.)43 b(W)-8 b(e)33 b(ha)m(v)m(e)244 925 y Ft(B)s Fu([)-17 -b([)q Fs(b)401 940 y Fc(S)452 925 y Fu(])g(])33 b Fs(s)40 -b Fu(=)33 b Fw(tt)e Fu(if)h(and)h(only)f(if)f(the)i(computation)e(of)h -Fs(S)45 b Fu(on)32 b Fs(s)41 b Fu(lo)s(ops)0 1130 y(and)33 -b(hence)244 1335 y Ft(B)s Fu([)-17 b([)q Ft(:)p Fs(b)467 -1350 y Fc(S)518 1335 y Fu(])g(])33 b Fs(s)41 b Fu(=)32 -b Fw(tt)g Fu(if)f(and)i(only)f(if)f(the)i(computation)e(of)i -Fs(S)44 b Fu(on)32 b Fs(s)41 b Fu(terminates)0 1540 y(W)-8 -b(e)32 b(no)m(w)h(ha)m(v)m(e)h(a)d(con)m(tradiction:)42 -b(the)33 b(assumptions)f(ab)s(out)f Fs(S)44 b Fu(ensure)34 -b(that)d Ft(B)t Fu([)-17 b([)q Ft(:)p Fs(b)3143 1555 -y Fc(S)3194 1540 y Fu(])g(])32 b(m)m(ust)0 1660 y(b)s(e)48 -b(an)g(undecidable)g(function;)56 b(on)48 b(the)g(other)h(hand)f(T)-8 -b(able)48 b(1.2)g(suggests)h(an)f(ob)m(vious)0 1780 y(algorithm)27 -b(for)i(ev)-5 b(aluating)29 b Ft(B)s Fu([)-17 b([)q Ft(:)p -Fs(b)1278 1795 y Fc(S)1329 1780 y Fu(])g(].)43 b(Hence)31 -b(our)f(assumption)g(ab)s(out)f(the)i(existence)g(of)f -Fs(b)3422 1795 y Fc(S)0 1901 y Fu(m)m(ust)j(b)s(e)f(mistak)m(en.)44 -b(Consequen)m(tly)35 b(w)m(e)e(cannot)g(mimic)d(the)j(pro)s(of)e(of)h -(Lemma)g(6.23.)146 2021 y(The)g(ob)m(vious)f(remedy)g(is)g(to)f(extend) -i Ft(L)f Fu(to)f(b)s(e)h(a)g(m)m(uc)m(h)g(more)f(p)s(o)m(w)m(erful)h -(language)f(that)0 2142 y(allo)m(ws)h(quan)m(ti\014cation)f(as)i(w)m -(ell.)43 b(A)31 b(cen)m(tral)h(concept)h(is)e(that)g -Ft(L)g Fu(m)m(ust)h(b)s(e)g Fs(expr)-5 b(essive)38 b -Fu(with)0 2262 y(resp)s(ect)28 b(to)e Fw(While)e Fu(and)j(its)f(seman)m -(tics,)i(and)e(one)h(then)g(sho)m(ws)h(that)e(T)-8 b(able)26 -b(6.1)g(is)g Fs(r)-5 b(elatively)0 2383 y(c)g(omplete)40 -b Fu(\(in)32 b(the)h(sense)i(of)e(Co)s(ok\).)45 b(It)33 -b(is)g(b)s(ey)m(ond)h(the)g(scop)s(e)g(of)e(this)h(b)s(o)s(ok)g(to)g -(go)f(deep)s(er)0 2503 y(in)m(to)g(these)i(matters)e(but)h(w)m(e)g(pro) -m(vide)g(references)i(in)d(Chapter)h(7.)0 2838 y Fj(6.4)161 -b(Extensions)52 b(of)i(the)f(axiomatic)i(system)0 3057 -y Fu(In)40 b(this)g(section)g(w)m(e)h(shall)d(consider)i(t)m(w)m(o)h -(extensions)g(of)e(the)h(inference)h(system)g(for)e(par-)0 -3178 y(tial)i(correctness)j(assertions.)75 b(The)43 b(\014rst)h -(extension)f(sho)m(ws)i(ho)m(w)e(the)g(approac)m(h)g(can)g(b)s(e)0 -3298 y(mo)s(di\014ed)29 b(to)h(pro)m(v)m(e)i Fs(total)h(c)-5 -b(orr)g(e)g(ctness)33 b(assertions)k Fu(thereb)m(y)c(allo)m(wing)28 -b(us)j(to)f(reason)h(ab)s(out)0 3418 y(termination)39 -b(prop)s(erties.)68 b(In)42 b(the)f(second)i(extension)f(w)m(e)g -(consider)f(ho)m(w)h(to)e(extend)j(the)0 3539 y(inference)31 -b(systems)h(to)e(more)g(language)f(constructs,)k(in)c(particular)g -(recursiv)m(e)j(pro)s(cedures.)0 3950 y Fp(T)-11 b(otal)45 -b(correctness)h(assertions)0 4135 y Fu(W)-8 b(e)33 b(shall)e(no)m(w)i -(consider)g(form)m(ulae)e(of)h(the)h(form)244 4340 y -Ft(f)f Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b(+)g Fs(Q)42 -b Ft(g)0 4545 y Fu(The)34 b(idea)d(is)i(that)244 4750 -y Fs(if)53 b Fu(the)33 b(precondition)f Fs(P)43 b Fu(is)32 -b(ful\014lled)244 4917 y Fs(then)40 b(S)k Fu(is)32 b(guaran)m(teed)h -(to)g(terminate)e(\(as)i(recorded)g(b)m(y)h(the)f(sym)m(b)s(ol)f -Ft(+)p Fu(\))244 5085 y Fs(and)42 b Fu(the)33 b(\014nal)f(state)h(will) -d(satisfy)j(the)g(p)s(ostcondition)e Fs(Q)9 b Fu(.)0 -5290 y(This)33 b(is)f(formalized)e(b)m(y)k(de\014ning)e(v)-5 -b(alidit)m(y)31 b(of)h Ft(f)g Fs(P)43 b Ft(g)32 b Fs(S)45 -b Ft(f)32 b(+)g Fs(Q)42 b Ft(g)32 b Fu(b)m(y)244 5494 -y Ft(j)-17 b Fu(=)331 5509 y Fn(t)395 5494 y Ft(f)32 -b Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b(+)h Fs(Q)41 -b Ft(g)p eop -%%Page: 192 202 -192 201 bop 251 130 a Fw(192)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -419 V 283 2471 4 2053 v 715 528 a Fu([ass)867 543 y Fn(t)900 -528 y Fu(])201 b Ft(f)33 b Fs(P)10 b Fu([)p Fs(x)i Ft(7!A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q(])32 b Ft(g)h -Fs(x)44 b Fu(:=)32 b Fs(a)40 b Ft(f)32 b(+)h Fs(P)43 -b Ft(g)715 696 y Fu([skip)913 711 y Fn(t)945 696 y Fu(])156 -b Ft(f)33 b Fs(P)43 b Ft(g)32 b Fr(skip)i Ft(f)e(+)g -Fs(P)43 b Ft(g)715 988 y Fu([comp)970 1003 y Fn(t)1002 -988 y Fu(])1138 901 y Ft(f)33 b Fs(P)43 b Ft(g)32 b Fs(S)1479 -916 y Fn(1)1551 901 y Ft(f)g(+)g Fs(Q)42 b Ft(g)p Fu(,)98 -b Ft(f)32 b Fs(Q)42 b Ft(g)32 b Fs(S)2366 916 y Fn(2)2438 -901 y Ft(f)g(+)g Fs(R)37 b Ft(g)p 1138 964 1633 4 v 1499 -1069 a(f)32 b Fs(P)43 b Ft(g)32 b Fs(S)1839 1084 y Fn(1)1879 -1069 y Fu(;)g Fs(S)2005 1084 y Fn(2)2077 1069 y Ft(f)g(+)h -Fs(R)j Ft(g)715 1327 y Fu([if)800 1342 y Fn(t)831 1327 -y Fu(])1138 1240 y Ft(f)d(B)s Fu([)-17 b([)q Fs(b)6 b -Fu(])-17 b(])33 b Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)1805 -1255 y Fn(1)1877 1240 y Ft(f)g(+)g Fs(Q)42 b Ft(g)p Fu(,)130 -b Ft(f)32 b(:)q(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])33 b Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)3109 1255 y -Fn(2)3181 1240 y Ft(f)g(+)h Fs(Q)41 b Ft(g)p 1138 1303 -2385 4 v 1537 1408 a(f)33 b Fs(P)42 b Ft(g)33 b Fr(if)g -Fs(b)38 b Fr(then)c Fs(S)2334 1423 y Fn(1)2406 1408 y -Fr(else)f Fs(S)2710 1423 y Fn(2)2782 1408 y Ft(f)f(+)h -Fs(Q)41 b Ft(g)715 1666 y Fu([while)965 1681 y Fn(t)996 -1666 y Fu(])1412 1579 y Ft(f)32 b Fs(P)10 b Fu(\()p Fw(z)p -Fu(+)p Fw(1)p Fu(\))32 b Ft(g)h Fs(S)44 b Ft(f)32 b(+)h -Fs(P)10 b Fu(\()p Fw(z)p Fu(\))32 b Ft(g)p 1138 1642 -1605 4 v 1138 1747 a(f)h(9)p Fw(z)p Fu(.)p Fs(P)10 b -Fu(\()p Fw(z)p Fu(\))33 b Ft(g)f Fr(while)i Fs(b)k Fr(do)33 -b Fs(S)45 b Ft(f)32 b(+)g Fs(P)10 b Fu(\()p Fw(0)p Fu(\))33 -b Ft(g)1128 1880 y Fu(where)h Fs(P)10 b Fu(\()p Fw(z)p -Fu(+)p Fw(1)p Fu(\))33 b Ft(\))f(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(],)33 b Fs(P)10 b Fu(\()p Fw(0)p Fu(\))33 -b Ft(\))f(:B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])1128 -2048 y(and)33 b Fw(z)f Fu(ranges)h(o)m(v)m(er)h(natural)d(n)m(um)m(b)s -(ers)j(\(that)e(is)g Fw(z)p Ft(\025)q Fw(0)p Fu(\))715 -2340 y([cons)926 2355 y Fn(t)959 2340 y Fu(])1171 2253 -y Ft(f)g Fs(P)1329 2217 y Fi(0)1385 2253 y Ft(g)h Fs(S)44 -b Ft(f)32 b(+)h Fs(Q)1827 2217 y Fi(0)1883 2253 y Ft(g)p -1138 2317 795 4 v 1178 2421 a(f)f Fs(P)43 b Ft(g)32 b -Fs(S)45 b Ft(f)32 b(+)h Fs(Q)41 b Ft(g)2040 2340 y Fu(where)34 -b Fs(P)43 b Ft(\))32 b Fs(P)2639 2304 y Fi(0)2695 2340 -y Fu(and)h Fs(Q)2969 2304 y Fi(0)3025 2340 y Ft(\))f -Fs(Q)p 3753 2471 4 2053 v 283 2474 3473 4 v 966 2635 -a Fu(T)-8 b(able)32 b(6.2:)43 b(Axiomatic)31 b(system)i(for)f(total)f -(correctness)283 2900 y(if)h(and)h(only)f(if)527 3074 -y(for)g(all)f(states)i Fs(s)8 b Fu(,)33 b(if)e Fs(P)43 -b(s)e Fu(=)32 b Fw(tt)g Fu(then)h(there)h(exists)f Fs(s)2493 -3038 y Fi(0)2549 3074 y Fu(suc)m(h)h(that)742 3268 y -Fs(Q)42 b(s)907 3232 y Fi(0)963 3268 y Fu(=)32 b Fw(tt)g -Fu(and)g Ft(h)p Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)33 -b(!)f Fs(s)1845 3232 y Fi(0)283 3461 y Fu(The)45 b(inference)f(system)h -(for)e(total)f(correctness)j(assertions)f(is)f(v)m(ery)j(similar)40 -b(to)j(that)g(for)283 3582 y(partial)24 b(correctness)29 -b(assertions,)e(the)g(only)f(di\013erence)g(b)s(eing)g(that)g(the)g -(rule)g(for)g(the)g Fr(while)p Fu(-)283 3702 y(construct)k(has)e(c)m -(hanged.)43 b(The)29 b(complete)f(set)h(of)f(axioms)f(and)h(rules)g(is) -g(giv)m(en)g(in)f(T)-8 b(able)28 b(6.2.)283 3823 y(W)-8 -b(e)33 b(shall)f(write)527 3996 y Ft(`)588 4011 y Fn(t)652 -3996 y Ft(f)h Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 b(+)f -Fs(Q)42 b Ft(g)283 4170 y Fu(if)32 b(there)h(exists)g(an)f(inference)h -(tree)g(with)f(the)h(form)m(ula)e Ft(f)h Fs(P)43 b Ft(g)32 -b Fs(S)44 b Ft(f)32 b(+)g Fs(Q)42 b Ft(g)32 b Fu(as)h(ro)s(ot,)e(that)h -(is)283 4291 y(if)g(the)h(form)m(ula)e(is)h(pro)m(v)-5 -b(ably)32 b(in)g(the)h(inference)g(system.)430 4411 y(In)39 -b(the)h(rule)e([while)1184 4426 y Fn(t)1215 4411 y Fu(])h(w)m(e)h(use)g -(a)f(parameterized)f(family)f Fs(P)10 b Fu(\()p Fw(z)p -Fu(\))39 b(of)f(predicates)i(for)e(the)283 4531 y(in)m(v)-5 -b(arian)m(t.)40 b(The)25 b(idea)f(is)f(that)h Fw(z)g -Fu(is)g(the)h(n)m(um)m(b)s(er)f(of)g(unfoldings)f(of)h(the)h -Fr(while)p Fu(-lo)s(op)e(that)h(will)283 4652 y(b)s(e)35 -b(necessary)-8 b(.)51 b(So)34 b(if)f(the)i Fr(while)p -Fu(-lo)s(op)e(do)s(es)i(not)f(ha)m(v)m(e)h(to)f(b)s(e)h(unfolded)f(at)g -(all)e(then)j Fs(P)10 b Fu(\()p Fw(0)p Fu(\))283 4772 -y(holds)32 b(and)g(it)f(m)m(ust)h(imply)e(that)h Fs(b)38 -b Fu(is)32 b(false.)42 b(If)32 b(the)g Fr(while)p Fu(-lo)s(op)g(has)g -(to)f(b)s(e)i(unfolded)e Fw(z)p Fu(+)p Fw(1)283 4893 -y Fu(times)e(then)g Fs(P)10 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p -Fu(\))29 b(holds)g(and)g Fs(b)35 b Fu(m)m(ust)29 b(hold)f -Fs(b)-5 b(efor)g(e)36 b Fu(the)29 b(b)s(o)s(dy)h(of)e(the)i(lo)s(op)d -(is)i(executed;)283 5013 y(then)46 b Fs(P)10 b Fu(\()p -Fw(z)p Fu(\))45 b(will)e(hold)h Fs(afterwar)-5 b(ds)53 -b Fu(so)45 b(that)g(w)m(e)h(ha)m(v)m(e)g(decreased)h(the)e(total)f(n)m -(um)m(b)s(er)h(of)283 5133 y(times)33 b(the)h(lo)s(op)e(remains)h(to)g -(b)s(e)h(unfolded.)47 b(The)34 b(precondition)f(of)g(the)h(conclusion)f -(of)g(the)283 5254 y(rule)c(expresses)i(that)e(there)g(exists)h(a)e(b)s -(ound)h(on)g(the)g(n)m(um)m(b)s(er)g(of)f(times)g(the)h(lo)s(op)e(has)i -(to)g(b)s(e)283 5374 y(unfolded)24 b(and)f(the)h(p)s(ostcondition)e -(expresses)k(that)d(when)i(the)e Fr(while)p Fu(-lo)s(op)g(has)h -(terminated)283 5494 y(then)34 b(no)e(more)g(unfoldings)f(are)i -(necessary)-8 b(.)p eop -%%Page: 193 203 -193 202 bop 0 130 a Fw(6.4)112 b(Extensions)37 b(of)h(the)f(axiomatic)f -(system)1315 b(193)p 0 193 3473 4 v 0 515 a(Example)37 -b(6.28)49 b Fu(The)33 b(total)e(correctness)j(of)e(the)h(factorial)d -(statemen)m(t)i(can)h(b)s(e)g(expressed)0 636 y(b)m(y)g(the)g(follo)m -(wing)d(assertion:)244 832 y Ft(f)i Fr(x)h Fo(>)f Fr(0)h -Ft(^)g Fr(x)g Fu(=)f Fr(n)h Ft(g)244 1000 y Fr(y)g Fu(:=)f -Fr(1)p Fu(;)h Fr(while)h Ft(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p -Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)g Fr(x)p Ft(\000)p -Fr(1)p Fu(\))244 1168 y Ft(f)f(+)h Fr(y)f Fu(=)h Fr(n)p -Fu(!)43 b Ft(g)0 1364 y Fu(where)34 b Fr(y)f Fu(=)f Fr(n)p -Fu(!)44 b(is)32 b(an)g(abbreviation)g(for)g(the)h(predicate)244 -1561 y Fs(P)43 b Fu(where)34 b Fs(P)42 b(s)f Fu(=)32 -b(\()p Fs(s)41 b Fr(y)33 b Fu(=)f(\()p Fs(s)41 b Fr(n)p -Fu(\)!\))0 1757 y(In)i(addition)f(to)g(expressing)j(that)d(the)i -(\014nal)e(v)-5 b(alue)43 b(of)f Fr(y)i Fu(is)e(the)i(factorial)c(of)j -(the)g(initial)0 1878 y(v)-5 b(alue)31 b(of)g Fr(x)h -Fu(the)g(assertion)f(also)g(expresses)k(that)c(the)h(program)e(do)s(es) -i(indeed)g(terminate)e(on)0 1998 y(all)35 b(states)j(satisfying)e(the)h -(precondition.)56 b(The)37 b(inference)h(of)e(this)h(assertion)g(pro)s -(ceeds)h(in)0 2119 y(a)c(n)m(um)m(b)s(er)h(of)f(stages.)49 -b(First)33 b(w)m(e)j(de\014ne)f(the)g(predicate)f Fs(INV)19 -b Fu(\()p Fw(z)p Fu(\))34 b(that)g(is)g(going)f(to)g(b)s(e)i(the)0 -2239 y(in)m(v)-5 b(arian)m(t)31 b(of)h(the)h Fr(while)p -Fu(-lo)s(op)244 2436 y Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 -b Fs(s)40 b Fu(=)33 b(\()p Fs(s)40 b Fr(x)33 b Fo(>)f -Fw(0)h Fu(and)g(\()p Fs(s)40 b Fr(y)p Fu(\))33 b Fo(?)f -Fu(\()p Fs(s)41 b Fr(x)p Fu(\)!)i(=)33 b(\()p Fs(s)40 -b Fr(n)p Fu(\)!)k(and)33 b Fs(s)40 b Fr(x)33 b Fu(=)f -Fw(z)h Fu(+)f Fw(1)p Fu(\))0 2632 y(W)-8 b(e)33 b(shall)e(\014rst)i -(consider)g(the)g(b)s(o)s(dy)g(of)f(the)h(lo)s(op.)42 -b(Using)32 b([ass)2349 2647 y Fn(t)2381 2632 y Fu(])h(w)m(e)h(get)244 -2829 y Ft(`)305 2844 y Fn(t)369 2829 y Ft(f)e Fs(INV)19 -b Fu(\()p Fw(z)p Fu(\)[)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p -Fr(1)p Fu(])33 b Ft(g)f Fr(x)h Fu(:=)g Fr(x)p Ft(\000)p -Fr(1)g Ft(f)g(+)f Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 -b Ft(g)0 3025 y Fu(Similarly)-8 b(,)29 b(w)m(e)k(get)244 -3222 y Ft(`)305 3237 y Fn(t)369 3222 y Ft(f)f Fu(\()p -Fs(INV)19 b Fu(\()p Fw(z)p Fu(\)[)p Fr(x)p Ft(7!)o Fr(x)p -Ft(\000)p Fr(1)p Fu(]\)[)p Fr(y)p Ft(7!)q Fr(y)p Fo(?)q -Fr(x)p Fu(])32 b Ft(g)h Fr(y)g Fu(:=)f Fr(y)h Fo(?)f -Fr(x)h Ft(f)f(+)h Fs(INV)18 b Fu(\()p Fw(z)p Fu(\)[)p -Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(])34 b Ft(g)0 -3419 y Fu(W)-8 b(e)33 b(can)g(no)m(w)g(apply)f(the)h(rule)f([comp)1436 -3434 y Fn(t)1468 3419 y Fu(])g(to)h(the)g(t)m(w)m(o)g(assertions)g(ab)s -(o)m(v)m(e)g(and)g(get)244 3615 y Ft(`)305 3630 y Fn(t)369 -3615 y Ft(f)f Fu(\()p Fs(INV)19 b Fu(\()p Fw(z)p Fu(\)[)p -Fr(x)p Ft(7!)o Fr(x)p Ft(\000)p Fr(1)p Fu(]\)[)p Fr(y)p -Ft(7!)q Fr(y)p Fo(?)q Fr(x)p Fu(])32 b Ft(g)h Fr(y)g -Fu(:=)f Fr(y)h Fo(?)f Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p -Ft(\000)p Fr(1)i Ft(f)e(+)g Fs(INV)19 b Fu(\()p Fw(z)p -Fu(\))32 b Ft(g)0 3812 y Fu(It)h(is)f(easy)h(to)g(v)m(erify)g(that)244 -4009 y Fs(INV)19 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 -b Ft(\))g Fu(\()p Fs(INV)18 b Fu(\()p Fw(z)p Fu(\)[)p -Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(]\)[)p Fr(y)p -Ft(7!)q Fr(y)p Fo(?)p Fr(x)p Fu(])0 4205 y(so)33 b(using)f(the)h(rule)f -([cons)949 4220 y Fn(t)982 4205 y Fu(])g(w)m(e)i(get)244 -4402 y Ft(`)305 4417 y Fn(t)369 4402 y Ft(f)e Fs(INV)19 -b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b Ft(g)g Fr(y)h -Fu(:=)g Fr(y)f Fo(?)h Fr(x)p Fu(;)g Fr(x)f Fu(:=)h Fr(x)p -Ft(\000)p Fr(1)g Ft(f)g(+)f Fs(INV)19 b Fu(\()p Fw(z)p -Fu(\))32 b Ft(g)0 4598 y Fu(It)h(is)f(straigh)m(tforw)m(ard)g(to)g(v)m -(erify)h(that)244 4795 y Fs(INV)19 b Fu(\()p Fw(0)p Fu(\))32 -b Ft(\))g(:)q Fu(\()p Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\)\),)h(and)244 4963 y Fs(INV)19 b Fu(\()p Fw(z)p -Fu(+)p Fw(1)p Fu(\))32 b Ft(\))g(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))0 5159 y(Therefore)i(w)m(e)f(can)g(use)h(the)f(rule)f -([while)1546 5174 y Fn(t)1577 5159 y Fu(])g(and)h(get)269 -5327 y Ft(`)330 5342 y Fn(t)394 5327 y Ft(f)f(9)p Fw(z)p -Fu(.)p Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(g)g Fr(while)i -Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)f Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\))h Ft(f)g(+)f Fs(INV)19 -b Fu(\()p Fw(0)p Fu(\))32 b Ft(g)0 5494 y Fu(W)-8 b(e)33 -b(shall)e(no)m(w)i(apply)g(the)g(axiom)e([ass)1478 5509 -y Fn(t)1510 5494 y Fu(])i(to)f(the)h(statemen)m(t)g Fr(y)g -Fu(:=)f Fr(1)h Fu(and)g(get)p eop -%%Page: 194 204 -194 203 bop 251 130 a Fw(194)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Ft(`)588 530 y Fn(t)652 515 y Ft(f)33 b Fu(\()p -Ft(9)p Fw(z)p Fu(.)p Fs(INV)18 b Fu(\()p Fw(z)p Fu(\)\)[)p -Fr(y)p Ft(7!)p Fr(1)p Fu(])33 b Ft(g)f Fr(y)h Fu(:=)g -Fr(1)f Ft(f)h(+)f(9)p Fw(z)p Fu(.)p Fs(INV)19 b Fu(\()p -Fw(z)p Fu(\))32 b Ft(g)283 679 y Fu(so)h(using)f([comp)913 -694 y Fn(t)945 679 y Fu(])g(w)m(e)i(get)527 843 y Ft(`)588 -858 y Fn(t)652 843 y Ft(f)f Fu(\()p Ft(9)p Fw(z)p Fu(.)p -Fs(INV)18 b Fu(\()p Fw(z)p Fu(\)\)[)p Fr(y)p Ft(7!)p -Fr(1)p Fu(])33 b Ft(g)652 1011 y Fr(y)g Fu(:=)g Fr(1)p -Fu(;)f Fr(while)i Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p -Fu(\))f Fr(do)g Fu(\()p Fr(y)f Fu(:=)h Fr(y)p Fo(?)p -Fr(x)p Fu(;)g Fr(x)f Fu(:=)h Fr(x)p Ft(\000)p Fr(1)p -Fu(\))652 1178 y Ft(f)g(+)f Fs(INV)19 b Fu(\()p Fw(0)p -Fu(\))32 b Ft(g)283 1342 y Fu(Clearly)g(w)m(e)i(ha)m(v)m(e)527 -1506 y Fr(x)f Fo(>)g Fr(0)f Ft(^)h Fr(x)g Fu(=)f Fr(n)h -Ft(\))f Fu(\()p Ft(9)q Fw(z)p Fu(.)p Fs(INV)18 b Fu(\()p -Fw(z)p Fu(\)\)[)p Fr(y)p Ft(7!)p Fw(1)p Fu(],)33 b(and)527 -1674 y Fs(INV)19 b Fu(\()p Fw(0)p Fu(\))32 b Ft(\))h -Fr(y)f Fu(=)h Fr(n)p Fu(!)283 1838 y(so)g(applying)f(rule)g([cons)1208 -1853 y Fn(t)1240 1838 y Fu(])h(w)m(e)g(get)527 2002 y -Ft(`)588 2017 y Fn(t)652 2002 y Ft(f)g Fr(x)f Fo(>)h -Fr(0)g Ft(^)g Fr(x)f Fu(=)h Fr(n)g Ft(g)652 2169 y Fr(y)g -Fu(:=)g(1;)f Fr(while)i Ft(:)p Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))f Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p -Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\))652 2337 y Ft(f)h(+)f Fr(y)h Fu(=)f Fr(n)p -Fu(!)44 b Ft(g)283 2501 y Fu(as)33 b(required.)2902 b -Fh(2)283 2676 y Fw(Exercise)37 b(6.29)49 b Fu(Suggest)38 -b(a)f(total)f(correctness)k(inference)e(rule)f(for)g -Fr(repeat)i Fs(S)49 b Fr(until)39 b Fs(b)6 b Fu(.)283 -2797 y(Y)-8 b(ou)31 b(are)g(not)g(allo)m(w)m(ed)f(to)h(rely)g(on)f(the) -i(existence)g(of)f(a)f Fr(while)p Fu(-construct)j(in)d(the)i(program-) -283 2917 y(ming)f(language.)2752 b Fh(2)p 283 3093 3473 -5 v 283 3227 a Fw(Lemma)38 b(6.30)49 b Fu(The)28 b(total)f(correctness) -i(system)g(of)e(T)-8 b(able)28 b(6.2)f(is)g(sound,)j(that)e(is)f(for)g -(ev)m(ery)283 3348 y(total)32 b(correctness)i(form)m(ula)d -Ft(f)h Fs(P)43 b Ft(g)32 b Fs(S)45 b Ft(f)32 b(+)g Fs(Q)42 -b Ft(g)32 b Fu(w)m(e)i(ha)m(v)m(e)552 3516 y Ft(`)613 -3531 y Fn(t)677 3516 y Ft(f)f Fs(P)42 b Ft(g)33 b Fs(S)44 -b Ft(f)32 b(+)h Fs(Q)41 b Ft(g)33 b Fu(implies)d Ft(j)-17 -b Fu(=)1843 3531 y Fn(t)1907 3516 y Ft(f)32 b Fs(P)43 -b Ft(g)33 b Fs(S)44 b Ft(f)32 b(+)h Fs(Q)41 b Ft(g)p -283 3636 V 283 3800 a Fw(Pro)s(of:)35 b Fu(The)c(pro)s(of)f(pro)s -(ceeds)h(b)m(y)h(induction)d(on)h(the)h(shap)s(e)g(of)f(the)g -(inference)h(tree)g(just)g(as)283 3920 y(in)h(the)h(pro)s(of)f(of)g -(Lemma)f(6.17.)283 4088 y Fw(The)j(case)g Fu([ass)893 -4103 y Fn(t)925 4088 y Fu(]:)45 b(W)-8 b(e)34 b(shall)d(pro)m(v)m(e)k -(that)e(the)g(axiom)f(is)h(v)-5 b(alid,)31 b(so)j(assume)f(that)g -Fs(s)42 b Fu(is)32 b(suc)m(h)283 4208 y(that)h(\()p Fs(P)10 -b Fu([)p Fs(x)i Ft(7!A)o Fu([)-17 b([)q Fs(a)7 b Fu(])-17 -b(])q(]\))32 b Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(and)h(let)e -Fs(s)1789 4172 y Fi(0)1845 4208 y Fu(=)i Fs(s)8 b Fu([)p -Fs(x)k Ft(7!)o(A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q -Fs(s)8 b Fu(].)44 b(Then)34 b([ass)2950 4223 y Fn(ns)3022 -4208 y Fu(])e(giv)m(es)527 4372 y Ft(h)p Fs(x)44 b Fu(:=)33 -b Fs(a)7 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)g Fs(s)1207 -4336 y Fi(0)283 4536 y Fu(and)h(from)e(\()p Fs(P)10 b -Fu([)p Fs(x)i Ft(7!A)p Fu([)-17 b([)p Fs(a)7 b Fu(])-17 -b(])q(]\))33 b Fs(s)40 b Fu(=)33 b Fw(tt)f Fu(w)m(e)h(get)g -Fs(P)43 b(s)2083 4500 y Fi(0)2138 4536 y Fu(=)33 b Fw(tt)f -Fu(as)g(w)m(as)i(to)e(b)s(e)h(sho)m(wn.)283 4704 y Fw(The)g(case)g -Fu([skip)937 4719 y Fn(t)969 4704 y Fu(]:)44 b(This)33 -b(case)g(is)f(immediate.)283 4871 y Fw(The)h(case)g Fu([comp)994 -4886 y Fn(t)1026 4871 y Fu(]:)43 b(W)-8 b(e)33 b(assume)g(that)552 -5039 y Ft(j)-17 b Fu(=)639 5054 y Fn(t)703 5039 y Ft(f)33 -b Fs(P)42 b Ft(g)33 b Fs(S)1044 5054 y Fn(1)1116 5039 -y Ft(f)f(+)g Fs(Q)42 b Ft(g)p Fu(,)32 b(and)1957 b(\(*\))552 -5206 y Ft(j)-17 b Fu(=)639 5221 y Fn(t)703 5206 y Ft(f)33 -b Fs(Q)41 b Ft(g)33 b Fs(S)1052 5221 y Fn(2)1123 5206 -y Ft(f)g(+)f Fs(R)37 b Ft(g)2125 b Fu(\(**\))283 5374 -y(and)26 b(w)m(e)h(ha)m(v)m(e)g(to)e(pro)m(v)m(e)i(that)f -Ft(j)-17 b Fu(=)1480 5389 y Fn(t)1538 5374 y Ft(f)25 -b Fs(P)36 b Ft(g)25 b Fs(S)1857 5389 y Fn(1)1897 5374 -y Fu(;)j Fs(S)2019 5389 y Fn(2)2084 5374 y Ft(f)d(+)g -Fs(R)30 b Ft(g)p Fu(.)41 b(So)26 b(let)f Fs(s)33 b Fu(b)s(e)26 -b(suc)m(h)h(that)f Fs(P)43 b(s)d Fu(=)33 b Fw(tt)o Fu(.)283 -5494 y(F)-8 b(rom)32 b(\(*\))g(w)m(e)h(get)g(that)f(there)i(exists)f(a) -f(state)h Fs(s)2101 5458 y Fi(0)2157 5494 y Fu(suc)m(h)h(that)e -Fs(Q)42 b(s)2753 5458 y Fi(0)2809 5494 y Fu(=)32 b Fw(tt)g -Fu(and)p eop -%%Page: 195 205 -195 204 bop 0 130 a Fw(6.4)112 b(Extensions)37 b(of)h(the)f(axiomatic)f -(system)1315 b(195)p 0 193 3473 4 v 244 515 a Ft(h)p -Fs(S)350 530 y Fn(1)389 515 y Fu(,)33 b Fs(s)8 b Ft(i)32 -b(!)g Fs(s)748 479 y Fi(0)0 719 y Fu(Since)g Fs(Q)42 -b(s)419 683 y Fi(0)475 719 y Fu(=)32 b Fw(tt)f Fu(w)m(e)j(get)e(from)f -(\(**\))h(that)g(there)h(exists)g(a)f(state)h Fs(s)2541 -683 y Fi(00)2616 719 y Fu(suc)m(h)h(that)e Fs(R)k(s)3202 -683 y Fi(00)3277 719 y Fu(=)c Fw(tt)0 839 y Fu(and)244 -1042 y Ft(h)p Fs(S)350 1057 y Fn(2)389 1042 y Fu(,)h -Fs(s)497 1006 y Fi(0)520 1042 y Ft(i)f(!)g Fs(s)771 1006 -y Fi(00)0 1246 y Fu(Using)g([comp)529 1261 y Fn(ns)600 -1246 y Fu(])h(w)m(e)g(therefore)g(get)244 1449 y Ft(h)p -Fs(S)350 1464 y Fn(1)389 1449 y Fu(;)g Fs(S)516 1464 -y Fn(2)555 1449 y Fu(,)f Fs(s)8 b Ft(i)33 b(!)f Fs(s)914 -1413 y Fi(00)0 1653 y Fu(and)h(since)g Fs(R)j(s)584 1616 -y Fi(00)659 1653 y Fu(=)d Fw(tt)e Fu(w)m(e)j(ha)m(v)m(e)g(\014nished)f -(this)f(case.)0 1820 y Fw(The)h(case)g Fu([if)541 1835 -y Fn(t)572 1820 y Fu(]:)43 b(Assume)34 b(that)269 1988 -y Ft(j)-17 b Fu(=)356 2003 y Fn(t)420 1988 y Ft(f)32 -b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g -Fs(P)43 b Ft(g)32 b Fs(S)1086 2003 y Fn(1)1158 1988 y -Ft(f)g(+)h Fs(Q)42 b Ft(g)p Fu(,)32 b(and)1631 b(\(*\))269 -2155 y Ft(j)-17 b Fu(=)356 2170 y Fn(t)420 2155 y Ft(f)32 -b(:)q(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g -Fs(P)42 b Ft(g)33 b Fs(S)1153 2170 y Fn(2)1225 2155 y -Ft(f)f(+)g Fs(Q)42 b Ft(g)0 2323 y Fu(T)-8 b(o)38 b(pro)m(v)m(e)h -Ft(j)-17 b Fu(=)504 2338 y Fn(t)574 2323 y Ft(f)38 b -Fs(P)48 b Ft(g)38 b Fr(if)h Fs(b)44 b Fr(then)39 b Fs(S)1404 -2338 y Fn(1)1481 2323 y Fr(else)g Fs(S)1791 2338 y Fn(2)1868 -2323 y Ft(f)f(+)g Fs(Q)47 b Ft(g)38 b Fu(consider)h(a)e(state)i -Fs(s)46 b Fu(suc)m(h)40 b(that)0 2443 y Fs(P)j(s)d Fu(=)33 -b Fw(tt)o Fu(.)43 b(W)-8 b(e)31 b(ha)m(v)m(e)h(t)m(w)m(o)g(cases.)44 -b(If)31 b Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p -Fs(s)39 b Fu(=)31 b Fw(tt)e Fu(then)j(\()p Ft(B)s Fu([)-17 -b([)q Fs(b)6 b Fu(])-17 b(])31 b Ft(^)g Fs(P)10 b Fu(\))31 -b Fs(s)39 b Fu(=)31 b Fw(tt)e Fu(and)i(from)f(\(*\))0 -2564 y(w)m(e)k(get)e(that)h(there)g(is)f(a)g(state)h -Fs(s)1233 2528 y Fi(0)1289 2564 y Fu(suc)m(h)h(that)f -Fs(Q)41 b(s)1885 2528 y Fi(0)1941 2564 y Fu(=)32 b Fw(tt)g -Fu(and)244 2767 y Ft(h)p Fs(S)350 2782 y Fn(1)389 2767 -y Fu(,)h Fs(s)8 b Ft(i)32 b(!)g Fs(s)748 2731 y Fi(0)0 -2971 y Fu(F)-8 b(rom)31 b([if)341 2986 y Fn(ns)411 2971 -y Fu(])i(w)m(e)g(then)h(get)244 3174 y Ft(h)p Fr(if)f -Fs(b)38 b Fr(then)c Fs(S)806 3189 y Fn(1)877 3174 y Fr(else)g -Fs(S)1182 3189 y Fn(2)1221 3174 y Fu(,)f Fs(s)8 b Ft(i)32 -b(!)g Fs(s)1580 3138 y Fi(0)0 3377 y Fu(as)40 b(w)m(as)h(to)f(b)s(e)g -(pro)m(v)m(ed.)67 b(If)40 b Ft(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])p Fs(s)48 b Fu(=)40 b Fw(\013)h Fu(the)f(result)g(follo) -m(ws)e(in)i(a)f(similar)e(w)m(a)m(y)k(from)e(the)0 3498 -y(second)34 b(assumption.)0 3665 y Fw(The)f(case)g Fu([while)706 -3680 y Fn(t)737 3665 y Fu(]:)43 b(Assume)34 b(that)269 -3833 y Ft(j)-17 b Fu(=)356 3848 y Fn(t)420 3833 y Ft(f)32 -b Fs(P)10 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))33 b Ft(g)f -Fs(S)44 b Ft(f)33 b(+)f Fs(P)10 b Fu(\()p Fw(z)p Fu(\))33 -b Ft(g)p Fu(,)1810 b(\(*\))269 4001 y Fs(P)10 b Fu(\()p -Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b Ft(\))g(B)t Fu([)-17 -b([)p Fs(b)6 b Fu(])-17 b(])q(,)33 b(and)269 4168 y Fs(P)10 -b Fu(\()p Fw(0)p Fu(\))33 b Ft(\))f(:B)t Fu([)-17 b([)p -Fs(b)6 b Fu(])-17 b(])0 4336 y(T)-8 b(o)31 b(pro)m(v)m(e)h -Ft(j)-17 b Fu(=)490 4351 y Fn(t)552 4336 y Ft(f)30 b(9)q -Fw(z)p Fu(.)p Fs(P)10 b Fu(\()p Fw(z)p Fu(\))30 b Ft(g)h -Fr(while)h Fs(b)k Fr(do)c Fs(S)42 b Ft(f)30 b(+)h Fs(P)10 -b Fu(\()p Fw(0)p Fu(\))31 b Ft(g)f Fu(it)g(is)g(su\016cien)m(t)i(to)e -(pro)m(v)m(e)i(that)f(for)0 4456 y(all)f(natural)i(n)m(um)m(b)s(ers)h -Fw(z)319 4596 y Fu(if)e Fs(P)10 b Fu(\()p Fw(z)p Fu(\))33 -b Fs(s)40 b Fu(=)33 b Fw(tt)e Fu(then)i(there)h(exists)f(a)f(state)h -Fs(s)2060 4560 y Fi(0)2116 4596 y Fu(suc)m(h)h(that)319 -4764 y Fs(P)10 b Fu(\()p Fw(0)p Fu(\))32 b Fs(s)607 4727 -y Fi(0)663 4764 y Fu(=)h Fw(tt)e Fu(and)i Ft(h)p Fr(while)h -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(!)g Fs(s)2053 4727 y Fi(0)3299 4681 y Fu(\(**\))0 4930 -y(So)46 b(consider)g(a)f(state)h Fs(s)54 b Fu(suc)m(h)47 -b(that)f Fs(P)10 b Fu(\()p Fw(z)p Fu(\))46 b Fs(s)53 -b Fu(=)46 b Fw(tt)p Fu(.)82 b(The)47 b(pro)s(of)e(is)g(no)m(w)h(b)m(y)h -(n)m(umerical)0 5050 y(induction)32 b(on)g Fw(z)p Fu(.)146 -5171 y(First)i(assume)i(that)f Fw(z)f Fu(=)h Fw(0)p Fu(.)51 -b(The)36 b(assumption)e Fs(P)10 b Fu(\()p Fw(0)p Fu(\))35 -b Ft(\))g(:B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])36 -b(giv)m(es)f(that)g Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])q Fs(s)43 b Fu(=)0 5291 y Fw(\013)33 b Fu(and)g(from)e([while)768 -5255 y Fn(\013)768 5316 y(ns)838 5291 y Fu(])i(w)m(e)h(get)244 -5494 y Ft(h)p Fr(while)f Fs(b)39 b Fr(do)33 b Fs(S)12 -b Fu(,)32 b Fs(s)8 b Ft(i)33 b(!)f Fs(s)p eop -%%Page: 196 206 -196 205 bop 251 130 a Fw(196)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 a Fu(Since)33 b Fs(P)10 b Fu(\()p Fw(0)p Fu(\))33 -b Fs(s)41 b Fu(=)32 b Fw(tt)g Fu(this)g(pro)m(v)m(es)i(the)f(base)h -(case.)430 636 y(F)-8 b(or)27 b(the)i(induction)e(step)j(assume)f(that) -f(\(**\))g(holds)g(for)f(all)g(states)i(satisfying)e -Fs(P)10 b Fu(\()p Fw(z)p Fu(\))29 b(and)283 756 y(that)k -Fs(P)10 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b Fs(s)41 -b Fu(=)32 b Fw(tt)o Fu(.)44 b(F)-8 b(rom)31 b(\(*\))h(w)m(e)i(get)e -(that)h(there)g(is)f(a)g(state)h Fs(s)2854 720 y Fi(0)2910 -756 y Fu(suc)m(h)h(that)f Fs(P)10 b Fu(\()p Fw(z)p Fu(\))32 -b Fs(s)3624 720 y Fi(0)3680 756 y Fu(=)283 877 y Fw(tt)g -Fu(and)527 1081 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b -Ft(i)32 b(!)g Fs(s)992 1045 y Fi(0)283 1285 y Fu(The)g(n)m(umerical)d -(induction)h(h)m(yp)s(othesis)h(applied)f(to)g Fs(s)2342 -1249 y Fi(0)2396 1285 y Fu(giv)m(es)h(that)f(there)i(is)e(some)g(state) -h Fs(s)3713 1249 y Fi(00)283 1406 y Fu(suc)m(h)j(that)f -Fs(P)10 b Fu(\()p Fw(0)p Fu(\))33 b Fs(s)1004 1370 y -Fi(00)1079 1406 y Fu(=)f Fw(tt)g Fu(and)527 1610 y Ft(h)p -Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)1248 -1574 y Fi(0)1271 1610 y Ft(i)g(!)f Fs(s)1523 1574 y Fi(00)283 -1815 y Fu(F)-8 b(urthermore,)30 b(the)g(assumption)f -Fs(P)10 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))30 b Ft(\))f(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])30 b(giv)m(es)g -Ft(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])q Fs(s)37 -b Fu(=)30 b Fw(tt)p Fu(.)41 b(W)-8 b(e)30 b(can)g(therefore)283 -1935 y(apply)j([while)802 1899 y Fn(tt)802 1960 y(ns)872 -1935 y Fu(])g(and)g(get)f(that)527 2139 y Ft(h)p Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(!)g Fs(s)1499 2103 y Fi(00)283 2344 y Fu(Since)h Fs(P)10 -b Fu(\()p Fw(0)p Fu(\))33 b Fs(s)827 2308 y Fi(00)902 -2344 y Fu(=)f Fw(tt)g Fu(this)g(completes)h(the)g(pro)s(of)e(of)h -(\(**\).)283 2511 y Fw(The)h(case)g Fu([cons)950 2526 -y Fn(t)983 2511 y Fu(]:)44 b(Supp)s(ose)33 b(that)527 -2716 y Ft(j)-17 b Fu(=)614 2731 y Fn(t)678 2716 y Ft(f)33 -b Fs(P)837 2680 y Fi(0)893 2716 y Ft(g)f Fs(S)45 b Ft(f)32 -b(+)g Fs(Q)1334 2680 y Fi(0)1390 2716 y Ft(g)p Fu(,)527 -2883 y Fs(P)43 b Ft(\))32 b Fs(P)844 2847 y Fi(0)868 -2883 y Fu(,)h(and)527 3051 y Fs(Q)611 3015 y Fi(0)667 -3051 y Ft(\))f Fs(Q)283 3255 y Fu(T)-8 b(o)31 b(pro)m(v)m(e)h -Ft(j)-17 b Fu(=)773 3270 y Fn(t)835 3255 y Ft(f)31 b -Fs(P)41 b Ft(g)30 b Fs(S)43 b Ft(f)30 b(+)h Fs(Q)40 b -Ft(g)30 b Fu(consider)h(a)f(state)i Fs(s)38 b Fu(suc)m(h)32 -b(that)f Fs(P)41 b(s)e Fu(=)30 b Fw(tt)p Fu(.)42 b(Then)32 -b Fs(P)3547 3219 y Fi(0)3601 3255 y Fs(s)39 b Fu(=)283 -3376 y Fw(tt)32 b Fu(and)h(there)g(is)f(a)h(state)g Fs(s)1309 -3340 y Fi(0)1364 3376 y Fu(suc)m(h)h(that)f Fs(Q)1880 -3340 y Fi(0)1936 3376 y Fs(s)1984 3340 y Fi(0)2040 3376 -y Fu(=)f Fw(tt)g Fu(and)527 3580 y Ft(h)p Fs(S)12 b Fu(,)33 -b Fs(s)8 b Ft(i)32 b(!)g Fs(s)992 3544 y Fi(0)283 3785 -y Fu(Ho)m(w)m(ev)m(er,)j(w)m(e)f(also)e(ha)m(v)m(e)i(that)e -Fs(Q)42 b(s)1644 3748 y Fi(0)1700 3785 y Fu(=)32 b Fw(tt)g -Fu(and)g(this)g(pro)m(v)m(es)j(the)e(result.)638 b Fh(2)283 -4098 y Fw(Exercise)37 b(6.31)49 b Fu(Sho)m(w)38 b(that)g(the)g -(inference)h(rule)e(for)g Fr(repeat)j Fs(S)49 b Fr(until)40 -b Fs(b)j Fu(suggested)d(in)283 4218 y(Exercise)25 b(6.29)e(preserv)m -(es)j(v)-5 b(alidit)m(y)d(.)38 b(Argue)24 b(that)f(this)g(means)h(that) -f(the)h(en)m(tire)f(pro)s(of)g(system)283 4338 y(consisting)34 -b(of)g(the)g(axioms)f(and)h(rules)g(of)g(T)-8 b(able)34 -b(6.2)g(together)g(with)g(the)g(rule)g(of)f(Exercise)283 -4459 y(6.29)f(is)g(sound.)2818 b Fh(2)283 4688 y Fw(Exercise)37 -b(6.32)49 b Fu(*)29 b(Pro)m(v)m(e)i(that)e(the)h(inference)g(system)g -(of)f(T)-8 b(able)29 b(6.2)g(is)g(complete,)g(that)g(is)552 -4856 y Ft(j)-17 b Fu(=)639 4871 y Fn(t)703 4856 y Ft(f)33 -b Fs(P)42 b Ft(g)33 b Fs(S)44 b Ft(f)32 b(+)h Fs(Q)42 -b Ft(g)32 b Fu(implies)e Ft(`)1843 4871 y Fn(t)1907 4856 -y Ft(f)i Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 b(+)h -Fs(Q)41 b Ft(g)1059 b Fh(2)283 5086 y Fw(Exercise)37 -b(6.33)49 b Fu(*)32 b(Pro)m(v)m(e)i(that)527 5290 y(if)e -Ft(`)678 5305 y Fn(t)742 5290 y Ft(f)g Fs(P)43 b Ft(g)32 -b Fs(S)45 b Ft(f)32 b(+)g Fs(Q)42 b Ft(g)32 b Fu(then)i -Ft(`)1772 5305 y Fn(p)1848 5290 y Ft(f)f Fs(P)43 b Ft(g)32 -b Fs(S)44 b Ft(f)33 b Fs(Q)41 b Ft(g)283 5494 y Fu(Do)s(es)33 -b(the)g(con)m(v)m(erse)i(result)d(hold?)2099 b Fh(2)p -eop -%%Page: 197 207 -197 206 bop 0 130 a Fw(6.4)112 b(Extensions)37 b(of)h(the)f(axiomatic)f -(system)1315 b(197)p 0 193 3473 4 v 0 515 a Fp(Extensions)46 -b(of)f(While)0 703 y Fu(W)-8 b(e)46 b(conclude)g(b)m(y)g(considering)f -(an)g(extension)h(of)f Fw(While)f Fu(with)h(non-determinism)e(and)0 -823 y(\(parameterless\))32 b(pro)s(cedures.)45 b(The)34 -b(syn)m(tax)g(of)e(the)h(extended)i(language)c(is)h(giv)m(en)h(b)m(y) -294 1031 y Fs(S)111 b Fu(::=)100 b Fs(x)44 b Fu(:=)33 -b Fs(a)39 b Ft(j)33 b Fr(skip)g Ft(j)f Fs(S)1429 1046 -y Fn(1)1501 1031 y Fu(;)h Fs(S)1628 1046 y Fn(2)1700 -1031 y Ft(j)f Fr(if)h Fs(b)38 b Fr(then)c Fs(S)2283 1046 -y Fn(1)2355 1031 y Fr(else)f Fs(S)2659 1046 y Fn(2)511 -1199 y Ft(j)151 b Fr(while)34 b Fs(b)k Fr(do)33 b Fs(S)45 -b Ft(j)32 b Fs(S)1424 1214 y Fn(1)1496 1199 y Fr(or)h -Fs(S)1698 1214 y Fn(2)511 1366 y Ft(j)151 b Fr(begin)34 -b(proc)f Fs(p)39 b Fr(is)33 b Fs(S)1507 1381 y Fn(1)1546 -1366 y Fu(;)g Fs(S)1673 1381 y Fn(2)1744 1366 y Fr(end)h -Ft(j)e Fr(call)i Fs(p)0 1570 y Fu(Note)h(that)f(in)f -Fr(begin)j(proc)f Fs(p)41 b Fr(is)35 b Fs(S)1391 1585 -y Fn(1)1430 1570 y Fu(;)g Fs(S)1559 1585 y Fn(2)1633 -1570 y Fr(end)g Fu(the)g(b)s(o)s(dy)f(of)g Fs(p)40 b -Fu(is)34 b Fs(S)2609 1585 y Fn(1)2683 1570 y Fu(and)g(the)h(remainder)0 -1690 y(of)d(the)h(program)e(is)h Fs(S)834 1705 y Fn(2)874 -1690 y Fu(.)0 1959 y Fw(Non-determinism)0 2146 y Fu(It)41 -b(is)g(straigh)m(tforw)m(ard)f(to)h(handle)g(non-determinism)e(\(in)h -(the)h(sense)i(of)e(Section)g(2.4\))f(in)0 2267 y(the)f(axiomatic)d -(approac)m(h.)61 b(The)39 b(idea)f(is)g(that)g(an)g(assertion)h(holds)f -(for)g Fs(S)2879 2282 y Fn(1)2956 2267 y Fr(or)h Fs(S)3164 -2282 y Fn(2)3242 2267 y Fu(if)e(the)0 2387 y(similar)g(assertion)j -(holds)g(for)g Fs(S)1230 2402 y Fn(1)1310 2387 y Fu(as)g(w)m(ell)g(as)g -(for)g Fs(S)1994 2402 y Fn(2)2033 2387 y Fu(.)67 b(The)41 -b(motiv)-5 b(ation)37 b(for)j(this)g(is)g(that)0 2507 -y(when)32 b(reasoning)e(ab)s(out)h(the)g(statemen)m(t)g(w)m(e)h(ha)m(v) -m(e)h(no)d(w)m(a)m(y)j(of)d(in\015uencing)g(whether)j -Fs(S)3316 2522 y Fn(1)3386 2507 y Fu(or)0 2628 y Fs(S)67 -2643 y Fn(2)139 2628 y Fu(is)f(c)m(hosen.)45 b(F)-8 b(or)32 -b(partial)e(correctness)35 b(w)m(e)e(th)m(us)h(extend)g(T)-8 -b(able)32 b(6.1)g(with)h(the)g(rule)244 2907 y([or)358 -2922 y Fn(p)401 2907 y Fu(])536 2820 y Ft(f)f Fs(P)43 -b Ft(g)32 b Fs(S)876 2835 y Fn(1)948 2820 y Ft(f)g Fs(Q)42 -b Ft(g)p Fu(,)32 b Ft(f)h Fs(P)43 b Ft(g)32 b Fs(S)1597 -2835 y Fn(2)1669 2820 y Ft(f)g Fs(Q)42 b Ft(g)p 536 2883 -1382 4 v 759 2988 a(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)1100 -3003 y Fn(1)1171 2988 y Fr(or)g Fs(S)1373 3003 y Fn(2)1445 -2988 y Ft(f)g Fs(Q)41 b Ft(g)0 3181 y Fu(F)-8 b(or)32 -b(total)f(correctness)j(w)m(e)g(extend)g(T)-8 b(able)32 -b(6.2)h(with)f(the)h(rule)244 3440 y([or)358 3455 y Fn(t)389 -3440 y Fu(])524 3354 y Ft(f)f Fs(P)43 b Ft(g)32 b Fs(S)864 -3369 y Fn(1)936 3354 y Ft(f)h(+)f Fs(Q)42 b Ft(g)p Fu(,)32 -b Ft(f)g Fs(P)43 b Ft(g)33 b Fs(S)1679 3369 y Fn(2)1750 -3354 y Ft(f)g(+)f Fs(Q)42 b Ft(g)p 524 3417 1569 4 v -794 3522 a(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)1135 3537 -y Fn(1)1206 3522 y Fr(or)g Fs(S)1408 3537 y Fn(2)1480 -3522 y Ft(f)g(+)f Fs(Q)42 b Ft(g)0 3714 y Fu(When)31 -b(dealing)d(with)h(soundness)j(and)d(completeness)i(of)e(these)i(rules) -e(one)h(m)m(ust)g(b)s(e)g(careful)0 3835 y(in)c(using)g(a)h(seman)m -(tics)g(that)g(mo)s(dels)e(\\non-deterministic)g(c)m(hoice")i(in)f(the) -h(prop)s(er)g(manner.)0 3955 y(W)-8 b(e)28 b(sa)m(w)g(in)f(Section)h -(2.4)f(that)g(this)g(is)g(the)h(case)h(for)e(structural)g(op)s -(erational)e(seman)m(tics)j(but)0 4075 y(not)23 b(for)g(natural)f -(seman)m(tics.)40 b(With)23 b(resp)s(ect)h(to)f(the)h(structural)f(op)s -(erational)e(seman)m(tics)i(one)0 4196 y(can)33 b(sho)m(w)i(that)e(the) -g(ab)s(o)m(v)m(e)i(rules)e(are)g(sound)h(and)f(that)g(the)h(resulting)e -(inference)i(systems)0 4316 y(are)29 b(complete.)42 b(If)29 -b(one)h(insists)f(on)g(using)g(the)h(natural)e(seman)m(tics)h(the)h -Fr(or)p Fu(-construct)g(w)m(ould)0 4437 y(mo)s(del)35 -b(a)i(kind)g(of)f(\\angelic)f(c)m(hoice")i(and)g(b)s(oth)g(rules)g(w)m -(ould)f(b)s(e)h(sound.)58 b(Ho)m(w)m(ev)m(er,)40 b(only)0 -4557 y(the)33 b(partial)d(correctness)35 b(inference)e(system)h(will)c -(b)s(e)j(complete.)0 4825 y Fw(Non-recursiv)m(e)k(pro)s(cedures)0 -5013 y Fu(F)-8 b(or)43 b(the)g(sak)m(e)i(of)e(simplicit)m(y)e(w)m(e)j -(shall)e(restrict)h(our)h(atten)m(tion)e(to)h(statemen)m(ts)i(with)e -(at)0 5133 y(most)33 b(one)h(pro)s(cedure)g(declaration.)45 -b(F)-8 b(or)32 b(non-recursiv)m(e)j(pro)s(cedures)g(the)e(idea)g(is)g -(that)g(an)0 5254 y(assertion)k(that)g(holds)g(for)g(the)h(b)s(o)s(dy)f -(of)g(the)h(pro)s(cedure)g(also)f(holds)g(for)f(the)i(calls)e(of)h(the) -0 5374 y(pro)s(cedure.)65 b(This)40 b(motiv)-5 b(ates)38 -b(extending)i(the)g(partial)e(correctness)j(inference)f(system)h(of)0 -5494 y(T)-8 b(able)32 b(6.1)g(with)h(the)g(rule)p eop -%%Page: 198 208 -198 207 bop 251 130 a Fw(198)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -577 a Fu([call)702 592 y Fn(p)744 577 y Fu(])992 490 -y Ft(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(Q)42 -b Ft(g)p 879 554 849 4 v 879 658 a(f)32 b Fs(P)43 b Ft(g)32 -b Fr(call)i Fs(p)k Ft(f)33 b Fs(Q)41 b Ft(g)1802 577 -y Fu(where)34 b Fs(p)k Fu(is)32 b(de\014ned)i(b)m(y)g -Fr(proc)f Fs(p)39 b Fr(is)33 b Fs(S)283 837 y Fu(Similarly)g(the)j -(inference)h(system)g(for)e(total)g(correctness)j(in)e(T)-8 -b(able)35 b(6.2)h(can)h(b)s(e)f(extended)283 957 y(with)d(the)g(rule) -527 1194 y([call)702 1209 y Fn(t)732 1194 y Fu(])980 -1108 y Ft(f)g Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 b(+)f -Fs(Q)42 b Ft(g)p 867 1171 942 4 v 867 1276 a(f)32 b Fs(P)43 -b Ft(g)33 b Fr(call)g Fs(p)39 b Ft(f)32 b(+)g Fs(Q)42 -b Ft(g)1884 1194 y Fu(where)34 b Fs(p)k Fu(is)32 b(de\014ned)i(b)m(y)g -Fr(proc)f Fs(p)39 b Fr(is)33 b Fs(S)283 1454 y Fu(In)g(b)s(oth)g(cases) -h(the)f(resulting)e(inference)i(system)h(can)f(b)s(e)g(pro)m(v)m(ed)h -(sound)f(and)g(complete.)283 1712 y Fw(Recursiv)m(e)k(pro)s(cedures)283 -1897 y Fu(The)46 b(ab)s(o)m(v)m(e)f(rules)g(turn)f(out)g(to)h(b)s(e)f -(insu\016cien)m(t)h(when)h(pro)s(cedures)f(are)g(allo)m(w)m(ed)f(to)g -(b)s(e)283 2018 y(recursiv)m(e:)h(in)30 b(order)i(to)f(pro)m(v)m(e)h -(an)f(assertion)g(for)g Fr(call)h Fs(p)38 b Fu(one)31 -b(has)h(to)f(pro)m(v)m(e)h(the)g(assertion)283 2138 y(for)h(the)h(b)s -(o)s(dy)f(of)g(the)g(pro)s(cedure)h(and)g(this)f(implies)d(that)j(one)h -(has)f(to)g(pro)m(v)m(e)i(an)e(assertion)283 2258 y(ab)s(out)g(eac)m(h) -g(o)s(ccurrence)h(of)e Fr(call)i Fs(p)k Fu(inside)32 -b(the)h(b)s(o)s(dy)g(and)f(so)h(on.)430 2379 y(Consider)d(\014rst)g -(the)g(case)g(of)f Fs(p)-5 b(artial)32 b(c)-5 b(orr)g(e)g(ctness)37 -b Fu(assertions.)43 b(In)30 b(order)g(to)f(pro)m(v)m(e)i(some)283 -2499 y(prop)s(ert)m(y)k Ft(f)f Fs(P)45 b Ft(g)34 b Fr(call)h -Fs(p)40 b Ft(f)34 b Fs(Q)44 b Ft(g)34 b Fu(w)m(e)h(shall)e(pro)m(v)m(e) -i(the)g(similar)c(prop)s(ert)m(y)k(for)e(the)i(b)s(o)s(dy)f(of)283 -2619 y(the)39 b(pro)s(cedure)g(but)g Fs(under)g(the)h(assumption)g -(that)48 b Ft(f)37 b Fs(P)49 b Ft(g)38 b Fr(call)h Fs(p)44 -b Ft(f)38 b Fs(Q)47 b Ft(g)38 b Fu(holds)g(for)f(the)283 -2740 y(recursiv)m(e)d(calls)e(of)g Fs(p)6 b Fu(.)43 b(Often)33 -b(this)f(is)g(expressed)k(b)m(y)d(a)f(rule)g(of)h(the)g(form)527 -2996 y([call)702 2960 y Fn(rec)702 3021 y(p)795 2996 -y Fu(])930 2910 y Ft(f)f Fs(P)43 b Ft(g)32 b Fr(call)i -Fs(p)k Ft(f)33 b Fs(Q)41 b Ft(g)33 b(`)1872 2925 y Fn(p)1947 -2910 y Ft(f)g Fs(P)43 b Ft(g)32 b Fs(S)44 b Ft(f)33 b -Fs(Q)41 b Ft(g)p 930 2973 1640 4 v 1325 3078 a(f)33 b -Fs(P)42 b Ft(g)33 b Fr(call)g Fs(p)39 b Ft(f)32 b Fs(Q)42 -b Ft(g)920 3234 y Fu(where)34 b Fs(p)k Fu(is)32 b(de\014ned)i(b)m(y)g -Fr(proc)f Fs(p)39 b Fr(is)33 b Fs(S)283 3430 y Fu(The)49 -b(premise)e(of)g(the)h(rule)f(expresses)j(that)d Ft(f)g -Fs(P)58 b Ft(g)47 b Fs(S)59 b Ft(f)48 b Fs(Q)56 b Ft(g)47 -b Fu(is)g(pro)m(v)-5 b(able)47 b(under)h(the)283 3551 -y(assumption)32 b(that)f Ft(f)h Fs(P)42 b Ft(g)32 b Fr(call)g -Fs(p)38 b Ft(f)32 b Fs(Q)41 b Ft(g)31 b Fu(can)h(b)s(e)g(pro)m(v)m(ed)i -(for)d(the)h(recursiv)m(e)i(calls)c(presen)m(t)283 3671 -y(in)i Fs(S)12 b Fu(.)33 b(The)g(conclusion)f(expresses)k(that)c -Ft(f)h Fs(P)42 b Ft(g)33 b Fr(call)g Fs(p)39 b Ft(f)32 -b Fs(Q)42 b Ft(g)32 b Fu(holds)g(for)g(all)f(calls)g(of)h -Fs(p)6 b Fu(.)283 3890 y Fw(Example)37 b(6.34)49 b Fu(Consider)33 -b(the)g(follo)m(wing)d(statemen)m(t)527 4086 y Fr(begin)k(proc)g(fac)f -(is)g Fu(\()p Fr(if)g(x)g Fu(=)f Fr(1)h(then)h(skip)1413 -4254 y(else)g Fu(\()p Fr(y)e Fu(:=)h Fr(x)p Fo(?)p Fr(y)p -Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(;)i -Fr(call)f(fac)p Fu(\)\);)816 4421 y Fr(y)g Fu(:=)f Fr(1)p -Fu(;)h Fr(call)h(fac)527 4589 y(end)283 4785 y Fu(W)-8 -b(e)33 b(w)m(an)m(t)g(to)f(pro)m(v)m(e)h(that)f(the)g(\014nal)f(v)-5 -b(alue)32 b(of)f Fr(y)i Fu(is)e(the)i(factorial)c(of)j(the)g(initial)d -(v)-5 b(alue)31 b(of)h Fr(x)p Fu(.)283 4906 y(W)-8 b(e)33 -b(shall)f(pro)m(v)m(e)h(that)527 5102 y Ft(f)g Fr(x)f -Fo(>)h Fr(0)g Ft(^)g Fr(n)f Fu(=)h Fr(y)g Fo(?)f Fr(x)p -Fu(!)44 b Ft(g)32 b Fr(call)h(fac)h Ft(f)e Fr(y)h Fu(=)f -Fr(n)h Ft(g)283 5298 y Fu(where)h Fr(x)f Fo(>)f Fr(0)h -Ft(^)g Fr(n)g Fu(=)f Fr(y)h Fo(?)f Fr(x)p Fu(!)44 b(is)32 -b(an)h(abbreviation)e(for)h(the)h(predicate)g Fs(P)43 -b Fu(de\014ned)34 b(b)m(y)527 5494 y Fs(P)43 b(s)e Fu(=)32 -b(\()p Fs(s)41 b Fr(x)33 b Fo(>)f Fw(0)g Fu(and)h Fs(s)41 -b Fr(n)33 b Fu(=)f Fs(s)41 b Fr(y)32 b Fo(?)h Fu(\()p -Fs(s)40 b Fr(x)p Fu(\)!\))p eop -%%Page: 199 209 -199 208 bop 0 130 a Fw(6.4)112 b(Extensions)37 b(of)h(the)f(axiomatic)f -(system)1315 b(199)p 0 193 3473 4 v 0 515 a Fu(W)-8 b(e)33 -b(assume)g(that)269 683 y Ft(`)330 698 y Fn(p)405 683 -y Ft(f)g Fr(x)g Fo(>)f Fr(0)h Ft(^)g Fr(n)f Fu(=)h Fr(y)g -Fo(?)f Fr(x)p Fu(!)44 b Ft(g)32 b Fr(call)i(fac)f Ft(f)f -Fr(y)h Fu(=)f Fr(n)h Ft(g)1092 b Fu(\(*\))0 851 y(holds)32 -b(for)g(the)h(recursiv)m(e)h(calls)e(of)g Fr(fac)p Fu(.)44 -b(W)-8 b(e)33 b(shall)e(then)i(construct)h(a)e(pro)s(of)g(of)319 -1010 y Ft(f)g Fr(x)h Fo(>)f Fr(0)h Ft(^)g Fr(n)g Fu(=)f -Fr(y)h Fo(?)f Fr(x)p Fu(!)44 b Ft(g)319 1177 y Fr(if)33 -b(x)f Fu(=)h Fr(1)g(then)g(skip)h(else)f Fu(\()p Fr(y)g -Fu(:=)g Fr(x)p Fo(?)p Fr(y)p Fu(;)f Fr(x)h Fu(:=)g Fr(x)p -Ft(\000)p Fr(1)p Fu(;)g Fr(call)h(fac)p Fu(\))319 1345 -y Ft(f)e Fr(y)h Fu(=)f Fr(n)h Ft(g)3299 1178 y Fu(\(**\))0 -1511 y(and,)42 b(using)e([call)664 1475 y Fn(rec)664 -1536 y(p)757 1511 y Fu(])g(w)m(e)h(obtain)e(a)h(pro)s(of)f(of)h(\(*\))f -(for)h(all)e(o)s(ccurrences)k(of)d Fr(call)j(fac)p Fu(.)66 -b(T)-8 b(o)0 1632 y(pro)m(v)m(e)34 b(\(**\))e(w)m(e)h(\014rst)g(use)h -(the)f(assumption)f(\(*\))g(to)g(get)244 1856 y Ft(`)305 -1871 y Fn(p)381 1856 y Ft(f)g Fr(x)h Fo(>)f Fr(0)h Ft(^)g -Fr(n)g Fu(=)f Fr(y)h Fo(?)f Fr(x)p Fu(!)44 b Ft(g)32 -b Fr(call)i(fac)f Ft(f)f Fr(y)h Fu(=)g Fr(n)f Ft(g)0 -2080 y Fu(Then)i(w)m(e)f(apply)g([ass)819 2095 y Fn(p)863 -2080 y Fu(])f(and)h([comp)1367 2095 y Fn(p)1410 2080 -y Fu(])g(t)m(wice)g(and)f(get)244 2303 y Ft(`)305 2318 -y Fn(p)381 2303 y Ft(f)g Fu(\(\()p Fr(x)h Fo(>)f Fr(0)h -Ft(^)g Fr(n)g Fu(=)f Fr(y)h Fo(?)f Fr(x)p Fu(!\)[)p Fr(x)p -Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(]\)[)p Fr(y)p Ft(7!)q -Fr(x)p Fo(?)p Fr(y)p Fu(])h Ft(g)381 2471 y Fr(y)f Fu(:=)h -Fr(x)p Fo(?)p Fr(y)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(;)i Fr(call)f(fac)381 2639 y Ft(f)f Fr(y)h -Fu(=)f Fr(n)h Ft(g)0 2863 y Fu(W)-8 b(e)33 b(ha)m(v)m(e)268 -3030 y Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Ft(^)f -Fu(\()p Fr(x)g Fo(>)g Fr(0)g Ft(^)g Fr(n)g Fu(=)g Fr(y)g -Fo(?)f Fr(x)p Fu(!\))44 b Ft(\))31 b Fu(\(\()p Fr(x)h -Fo(>)g Fr(0)g Ft(^)g Fr(n)g Fu(=)g Fr(y)g Fo(?)g Fr(x)p -Fu(!\)[)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(]\)[)p -Fr(y)p Ft(7!)q Fr(x)p Fo(?)p Fr(y)p Fu(])0 3198 y(so)h(using)f([cons) -586 3213 y Fn(p)630 3198 y Fu(])h(w)m(e)h(get)244 3422 -y Ft(`)305 3437 y Fn(p)381 3422 y Ft(f)e(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))h Ft(^)g Fu(\()p Fr(x)g Fo(>)f -Fr(0)h Ft(^)g Fr(n)g Fu(=)f Fr(y)h Fo(?)f Fr(x)p Fu(!\))44 -b Ft(g)381 3589 y Fr(y)32 b Fu(:=)h Fr(x)p Fo(?)p Fr(y)p -Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(;)i -Fr(call)f(fac)381 3757 y Ft(f)f Fr(y)h Fu(=)f Fr(n)h -Ft(g)0 3981 y Fu(Using)f(that)244 4205 y Fr(x)p Fu(=)p -Fr(1)h Ft(^)g Fr(x)g Fo(>)f Fr(0)h Ft(^)g Fr(n)f Fu(=)h -Fr(y)g Fo(?)f Fr(x)p Fu(!)44 b Ft(\))32 b Fr(y)h Fu(=)f -Fr(n)0 4429 y Fu(it)g(is)g(easy)h(to)f(pro)m(v)m(e)244 -4652 y Ft(`)305 4667 y Fn(p)381 4652 y Ft(f)g Fr(x)p -Fu(=)p Fr(1)h Ft(^)g Fr(x)g Fo(>)f Fr(0)h Ft(^)g Fr(n)f -Fu(=)h Fr(y)g Fo(?)f Fr(x)p Fu(!)44 b Ft(g)32 b Fr(skip)i -Ft(f)e Fr(y)h Fu(=)f Fr(n)h Ft(g)0 4876 y Fu(so)g([if)205 -4891 y Fn(p)247 4876 y Fu(])g(can)g(b)s(e)f(applied)g(and)g(giv)m(es)h -(a)g(pro)s(of)e(of)i(\(**\).)1361 b Fh(2)146 5133 y Fu(T)-8 -b(able)31 b(6.1)g(extended)j(with)d(the)g(rule)g([call)1739 -5097 y Fn(rec)1739 5158 y(p)1832 5133 y Fu(])h(can)f(b)s(e)h(pro)m(v)m -(ed)h(to)e(b)s(e)g(sound.)44 b(Ho)m(w)m(ev)m(er,)0 5254 -y(in)28 b(order)i(to)e(get)i(a)e(completeness)i(result)g(the)f -(inference)h(system)g(has)f(to)g(b)s(e)h(extended)h(with)0 -5374 y(additional)f(rules.)43 b(T)-8 b(o)33 b(illustrate)d(wh)m(y)k -(this)e(is)g(necessary)j(consider)e(the)g(follo)m(wing)d(v)m(ersion)0 -5494 y(of)i(the)h(factorial)d(program:)p eop -%%Page: 200 210 -200 209 bop 251 130 a Fw(200)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Fr(begin)34 b(proc)g(fac)f(is)g(if)g(x)p Fu(=)p -Fr(1)g(then)h(y)e Fu(:=)h Fr(1)1375 683 y(else)h Fu(\()p -Fr(x)e Fu(:=)h Fr(x)p Ft(\000)p Fr(1)p Fu(;)h Fr(call)f(fac)p -Fu(;)h Fr(x)e Fu(:=)h Fr(x)p Fu(+)p Fr(1)p Fu(;)g Fr(y)g -Fu(:=)f Fr(x)p Fo(?)p Fr(y)p Fu(\);)816 851 y Fr(call)i(fac)527 -1018 y(end)283 1223 y Fu(Assume)h(that)f(w)m(e)h(w)m(an)m(t)f(to)g(pro) -m(v)m(e)h(that)e(this)h(program)e(do)s(es)i(not)g(c)m(hange)h(the)f(v) --5 b(alue)33 b(of)h Fr(x)p Fu(,)283 1344 y(that)f(is)552 -1511 y Ft(f)g Fr(x)f Fu(=)h Fr(n)f Ft(g)h Fr(call)g(fac)h -Ft(f)e Fr(x)h Fu(=)f Fr(n)h Ft(g)1806 b Fu(\(*\))283 -1679 y(In)32 b(order)g(to)g(do)f(that)h(w)m(e)g(assume)g(that)g(w)m(e)h -(ha)m(v)m(e)g(a)e(pro)s(of)g(of)g(\(*\))g(for)g(the)h(recursiv)m(e)h -(call)d(of)283 1799 y Fr(fac)c Fu(and)f(w)m(e)h(ha)m(v)m(e)g(to)f -(construct)h(a)e(pro)s(of)g(of)h(the)g(prop)s(ert)m(y)h(for)e(the)h(b)s -(o)s(dy)g(of)g(the)g(pro)s(cedure.)283 1920 y(It)33 b(seems)h(that)e -(in)g(order)g(to)h(do)f(so)h(w)m(e)h(m)m(ust)e(construct)i(a)e(pro)s -(of)g(of)527 2125 y Ft(f)h Fr(x)f Fu(=)h Fr(n)p Ft(\000)p -Fr(1)g Ft(g)g Fr(call)g(fac)h Ft(f)e Fr(x)h Fu(=)f Fr(n)p -Ft(\000)p Fr(1)i Ft(g)283 2330 y Fu(and)h(there)h(are)e(no)h(axioms)f -(and)g(rules)h(that)g(allo)m(w)e(us)i(to)g(obtain)e(suc)m(h)j(a)f(pro)s -(of)f(from)f(\(*\).)283 2451 y(Ho)m(w)m(ev)m(er,)h(w)m(e)d(shall)e(not) -h(go)f(further)i(in)m(to)e(this,)i(but)f(Chapter)h(7)f(will)e(pro)m -(vide)j(appropriate)283 2571 y(references.)430 2692 y(The)36 -b(case)h(of)e Fs(total)j(c)-5 b(orr)g(e)g(ctness)44 b -Fu(is)35 b(sligh)m(tly)f(more)h(complicated)f(b)s(ecause)j(w)m(e)g(ha)m -(v)m(e)g(to)283 2812 y(b)s(ound)c(the)g(n)m(um)m(b)s(er)g(of)f -(recursiv)m(e)i(calls.)43 b(The)33 b(rule)f(adopted)h(is)527 -3077 y([call)702 3041 y Fn(rec)702 3102 y(t)795 3077 -y Fu(])930 2991 y Ft(f)f Fs(P)10 b Fu(\()p Fw(z)p Fu(\))33 -b Ft(g)f Fr(call)i Fs(p)k Ft(f)32 b(+)h Fs(Q)41 b Ft(g)33 -b(`)2091 3006 y Fn(t)2155 2991 y Ft(f)f Fs(P)10 b Fu(\()p -Fw(z)p Fu(+)p Fw(1)p Fu(\))33 b Ft(g)f Fs(S)44 b Ft(f)33 -b(+)f Fs(Q)42 b Ft(g)p 930 3054 2198 4 v 1429 3159 a(f)32 -b(9)p Fw(z)p Fu(.)p Fs(P)10 b Fu(\()p Fw(z)p Fu(\))33 -b Ft(g)f Fr(call)i Fs(p)k Ft(f)33 b(+)f Fs(Q)42 b Ft(g)920 -3315 y Fu(where)34 b Ft(:)p Fs(P)10 b Fu(\()p Fw(0)p -Fu(\))33 b(holds)920 3483 y(and)f Fw(z)h Fu(ranges)g(o)m(v)m(er)g(the)g -(natural)f(n)m(um)m(b)s(ers)h(\(that)g(is)f Fw(z)p Ft(\025)p -Fw(0)p Fu(\))920 3651 y(and)g(where)i Fs(p)39 b Fu(is)32 -b(de\014ned)i(b)m(y)f Fr(proc)h Fs(p)k Fr(is)33 b Fs(S)283 -3856 y Fu(The)49 b(premise)e(of)f(this)h(rule)g(expresses)j(that)d(if)f -(w)m(e)i(assume)g(that)f(w)m(e)h(ha)m(v)m(e)h(a)e(pro)s(of)f(of)283 -3976 y Ft(f)33 b Fs(P)10 b Fu(\()p Fw(z)p Fu(\))32 b -Ft(g)h Fr(call)g Fs(p)39 b Ft(f)32 b(+)g Fs(Q)42 b Ft(g)e -Fu(for)g(all)f(recursiv)m(e)j(calls)d(of)h Fs(p)46 b -Fu(of)40 b(depth)h(at)g(most)e Fw(z)i Fu(then)g(w)m(e)283 -4097 y(can)33 b(pro)m(v)m(e)g Ft(f)f Fs(P)10 b Fu(\()p -Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b Ft(g)g Fs(S)44 b Ft(f)32 -b(+)g Fs(Q)42 b Ft(g)p Fu(.)h(The)33 b(conclusion)f(expresses)j(that)d -(for)f(an)m(y)i(depth)g(of)283 4217 y(recursiv)m(e)h(calls)e(w)m(e)h -(ha)m(v)m(e)h(a)f(pro)s(of)e(of)h Ft(f)h(9)p Fw(z)p Fu(.)p -Fs(P)10 b Fu(\()p Fw(z)p Fu(\))33 b Ft(g)f Fr(call)h -Fs(p)39 b Ft(f)32 b(+)h Fs(Q)41 b Ft(g)p Fu(.)430 4338 -y(The)28 b(inference)g(system)h(of)d(T)-8 b(able)28 b(6.2)f(extended)i -(with)e(the)h(rule)f([call)3023 4302 y Fn(rec)3023 4362 -y(t)3116 4338 y Fu(])g(can)h(b)s(e)f(pro)m(v)m(ed)283 -4458 y(to)i(b)s(e)f(sound.)43 b(If)28 b(it)g(is)g(extended)i(with)e -(additional)e(rules)i(\(as)g(discussed)j(ab)s(o)m(v)m(e\))e(it)e(can)i -(also)283 4579 y(b)s(e)k(pro)m(v)m(ed)h(to)f(b)s(e)f(complete.)283 -4914 y Fj(6.5)161 b(Assertions)52 b(for)i(execution)f(time)283 -5133 y Fu(A)42 b(pro)s(of)e(system)i(for)f(total)e(correctness)44 -b(can)d(b)s(e)g(used)i(to)d(pro)m(v)m(e)j(that)e(a)g(program)e(do)s(es) -283 5254 y(indeed)46 b(terminate)e(but)h(it)f(do)s(es)i(not)e(sa)m(y)j -(ho)m(w)e(man)m(y)g(resources)i(it)d(needs)j(in)d(order)h(to)283 -5374 y(terminate.)c(W)-8 b(e)30 b(shall)d(no)m(w)i(sho)m(w)h(ho)m(w)f -(to)g(extend)h(the)f(total)e(correctness)k(pro)s(of)d(system)h(of)283 -5494 y(T)-8 b(able)33 b(6.2)f(to)g(pro)m(v)m(e)i Fs(the)h(or)-5 -b(der)34 b(of)h(magnitude)f(of)h(the)g(exe)-5 b(cution)34 -b(time)40 b Fu(of)32 b(a)g(statemen)m(t.)p eop -%%Page: 201 211 -201 210 bop 0 130 a Fw(6.5)112 b(Assertions)37 b(for)g(execution)g -(time)1606 b(201)p 0 193 3473 4 v 146 515 a Fu(It)39 -b(is)e(easy)i(to)f(giv)m(e)g(some)g(informal)d(guidelines)i(for)h(ho)m -(w)g(to)g(determine)g(the)h(order)f(of)0 636 y(magnitude)31 -b(of)h(execution)i(time:)0 813 y Fw(assignmen)m(t:)49 -b Fu(the)33 b(execution)g(time)e(is)h Ft(O)s Fu(\()p -Fw(1)p Fu(\),)h(that)f(is,)g(it)g(is)g(b)s(ounded)h(b)m(y)h(a)e -(constan)m(t,)0 1007 y Fw(skip:)49 b Fu(the)33 b(execution)g(time)e(is) -h Ft(O)s Fu(\()p Fw(1)p Fu(\),)0 1202 y Fw(comp)s(osition:)47 -b Fu(the)35 b(execution)h(time)d(is,)i(to)f(within)g(a)g(constan)m(t)i -(factor,)f(the)g(sum)g(of)f(the)244 1322 y(execution)f(times)f(of)g -(eac)m(h)h(of)f(the)i(statemen)m(ts,)0 1517 y Fw(conditional:)47 -b Fu(the)30 b(execution)h(time)d(is,)i(to)g(within)e(a)i(constan)m(t)g -(factor,)g(the)h(largest)e(of)g(the)244 1637 y(execution)k(times)f(of)g -(the)h(t)m(w)m(o)g(branc)m(hes,)i(and)0 1832 y Fw(iteration:)47 -b Fu(the)30 b(execution)f(time)f(of)h(the)g(lo)s(op)f(is,)h(to)g -(within)f(a)h(constan)m(t)g(factor,)h(the)f(sum,)244 -1952 y(o)m(v)m(er)34 b(all)c(iterations)h(round)i(the)g(lo)s(op,)e(of)h -(the)h(time)e(to)i(execute)h(the)f(b)s(o)s(dy)-8 b(.)0 -2129 y(The)26 b(idea)f(no)m(w)h(is)f(to)f(formalize)f(these)k(rules)e -(b)m(y)h(giving)e(an)h(inference)h(system)g(for)f(reasoning)0 -2250 y(ab)s(out)32 b(execution)h(times.)43 b(T)-8 b(o)33 -b(do)f(so)h(w)m(e)g(shall)f(pro)s(ceed)h(in)f(three)h(stages:)145 -2427 y Ft(\017)49 b Fu(\014rst)42 b(w)m(e)g(sp)s(ecify)f(the)h(exact)g -(time)e(needed)j(to)e(ev)-5 b(aluate)40 b(arithmetic)g(and)h(b)s(o)s -(olean)244 2547 y(expressions,)145 2742 y Ft(\017)49 -b Fu(next)37 b(w)m(e)f(extend)h(the)g(natural)d(seman)m(tics)i(of)f -(Chapter)i(2)e(to)h(coun)m(t)g(the)g(exact)h(exe-)244 -2862 y(cution)32 b(time,)f(and)145 3057 y Ft(\017)49 -b Fu(\014nally)40 b(w)m(e)j(extend)g(the)g(total)d(correctness)k(pro)s -(of)d(system)h(to)g(pro)m(v)m(e)h(the)f(order)g(of)244 -3177 y(magnitude)31 b(of)h(the)h(execution)h(time)d(of)h(statemen)m -(ts.)0 3354 y(Ho)m(w)m(ev)m(er,)f(b)s(efore)c(addressing)h(these)g -(issues)h(w)m(e)f(ha)m(v)m(e)h(to)e(\014x)h(a)f Fs(c)-5 -b(omputational)29 b(mo)-5 b(del)p Fu(,)28 b(that)0 3475 -y(is)43 b(w)m(e)i(ha)m(v)m(e)g(to)e(determine)h(ho)m(w)g(to)f(coun)m(t) -i(the)f(cost)g(of)f(the)h(v)-5 b(arious)43 b(op)s(erations.)76 -b(The)0 3595 y(actual)36 b(c)m(hoice)i(is)e(not)i(so)f(imp)s(ortan)m(t) -e(but)j(for)e(the)i(sak)m(e)g(of)f(simplicit)m(y)e(w)m(e)j(ha)m(v)m(e)g -(based)g(it)0 3715 y(up)s(on)44 b(the)h(abstract)g(mac)m(hine)f(of)g -(Chapter)h(3.)79 b(The)46 b(idea)e(is)g(that)g(eac)m(h)h(instruction)f -(of)0 3836 y(the)38 b(mac)m(hine)e(tak)m(es)j(one)e(time)f(unit)h(and)g -(the)h(time)e(required)h(to)g(execute)i(an)e(arithmetic)0 -3956 y(expression,)27 b(a)c(b)s(o)s(olean)f(expression)i(or)f(a)g -(statemen)m(t)h(will)d(b)s(e)j(the)g(time)e(required)h(to)g(execute)0 -4077 y(the)29 b(generated)g(co)s(de.)43 b(Ho)m(w)m(ev)m(er,)32 -b(no)c(kno)m(wledge)i(of)e(Chapter)h(3)f(is)g(required)i(in)d(the)i -(sequel.)0 4361 y Fp(Exact)46 b(execution)f(times)h(for)f(expressions)0 -4546 y Fu(The)34 b(time)d(needed)j(to)e(ev)-5 b(aluate)32 -b(an)h(arithmetic)d(expression)k(is)e(giv)m(en)h(b)m(y)g(a)g(function) -244 4723 y Ft(T)25 b(A)p Fu(:)43 b Fw(Aexp)33 b Ft(!)f -Fw(Z)0 4900 y Fu(so)24 b Ft(T)i(A)p Fu([)-17 b([)p Fs(a)7 -b Fu(])-17 b(])25 b(is)f(the)h(n)m(um)m(b)s(er)f(of)g(time)f(units)h -(required)h(to)f(ev)-5 b(aluate)23 b Fs(a)32 b Fu(in)23 -b(an)m(y)i(state.)41 b(Similarly)-8 b(,)0 5020 y(the)33 -b(function)244 5197 y Ft(T)25 b(B)t Fu(:)43 b Fw(Bexp)33 -b Ft(!)f Fw(Z)0 5374 y Fu(determines)41 b(the)f(n)m(um)m(b)s(er)h(of)f -(time)f(units)h(required)h(to)f(ev)-5 b(aluate)40 b(a)g(b)s(o)s(olean)f -(expression.)0 5494 y(These)34 b(functions)f(are)f(de\014ned)i(in)e(T) --8 b(able)33 b(6.3.)p eop -%%Page: 202 212 -202 211 bop 251 130 a Fw(202)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -419 V 283 2313 4 1894 v 715 528 a Ft(T)26 b(A)o Fu([)-17 -b([)q Fs(n)7 b Fu(])-17 b(])374 b(=)100 b Fw(1)715 696 -y Ft(T)26 b(A)o Fu([)-17 b([)q Fs(x)12 b Fu(])-17 b(])379 -b(=)100 b Fw(1)715 863 y Ft(T)26 b(A)o Fu([)-17 b([)q -Fs(a)969 878 y Fn(1)1041 863 y Fu(+)33 b Fs(a)1207 878 -y Fn(2)1246 863 y Fu(])-17 b(])102 b(=)e Ft(T)25 b(A)p -Fu([)-17 b([)p Fs(a)1814 878 y Fn(1)1854 863 y Fu(])g(])33 -b(+)g Ft(T)25 b(A)p Fu([)-17 b([)p Fs(a)2286 878 y Fn(2)2326 -863 y Fu(])g(])33 b(+)g Fw(1)715 1031 y Ft(T)26 b(A)o -Fu([)-17 b([)q Fs(a)969 1046 y Fn(1)1041 1031 y Fo(?)33 -b Fs(a)1180 1046 y Fn(2)1219 1031 y Fu(])-17 b(])129 -b(=)100 b Ft(T)25 b(A)p Fu([)-17 b([)p Fs(a)1814 1046 -y Fn(1)1854 1031 y Fu(])g(])33 b(+)g Ft(T)25 b(A)p Fu([)-17 -b([)p Fs(a)2286 1046 y Fn(2)2326 1031 y Fu(])g(])33 b(+)g -Fw(1)715 1199 y Ft(T)26 b(A)o Fu([)-17 b([)q Fs(a)969 -1214 y Fn(1)1041 1199 y Ft(\000)33 b Fs(a)1208 1214 y -Fn(2)1248 1199 y Fu(])-17 b(])100 b(=)g Ft(T)25 b(A)p -Fu([)-17 b([)p Fs(a)1814 1214 y Fn(1)1854 1199 y Fu(])g(])33 -b(+)g Ft(T)25 b(A)p Fu([)-17 b([)p Fs(a)2286 1214 y Fn(2)2326 -1199 y Fu(])g(])33 b(+)g Fw(1)715 1414 y Ft(T)26 b(B)s -Fu([)-17 b([)q Fr(true)p Fu(])g(])243 b(=)100 b Fw(1)715 -1581 y Ft(T)26 b(B)s Fu([)-17 b([)q Fr(false)p Fu(])g(])192 -b(=)100 b Fw(1)715 1749 y Ft(T)26 b(B)s Fu([)-17 b([)q -Fs(a)958 1764 y Fn(1)1030 1749 y Fu(=)33 b Fs(a)1196 -1764 y Fn(2)1235 1749 y Fu(])-17 b(])113 b(=)100 b Ft(T)25 -b(A)p Fu([)-17 b([)p Fs(a)1814 1764 y Fn(1)1854 1749 -y Fu(])g(])33 b(+)g Ft(T)25 b(A)p Fu([)-17 b([)p Fs(a)2286 -1764 y Fn(2)2326 1749 y Fu(])g(])33 b(+)g Fw(1)715 1916 -y Ft(T)26 b(B)s Fu([)-17 b([)q Fs(a)958 1931 y Fn(1)1030 -1916 y Ft(\024)33 b Fs(a)1197 1931 y Fn(2)1237 1916 y -Fu(])-17 b(])111 b(=)100 b Ft(T)25 b(A)p Fu([)-17 b([)p -Fs(a)1814 1931 y Fn(1)1854 1916 y Fu(])g(])33 b(+)g Ft(T)25 -b(A)p Fu([)-17 b([)p Fs(a)2286 1931 y Fn(2)2326 1916 -y Fu(])g(])33 b(+)g Fw(1)715 2084 y Ft(T)26 b(B)s Fu([)-17 -b([)q Ft(:)p Fs(b)6 b Fu(])-17 b(])330 b(=)100 b Ft(T)25 -b(B)t Fu([)-17 b([)p Fs(b)6 b Fu(])-17 b(])33 b(+)g Fw(1)715 -2252 y Ft(T)26 b(B)s Fu([)-17 b([)q Fs(b)952 2267 y Fn(1)1024 -2252 y Ft(^)33 b Fs(b)1174 2267 y Fn(2)1213 2252 y Fu(])-17 -b(])135 b(=)100 b Ft(T)25 b(B)t Fu([)-17 b([)p Fs(b)1797 -2267 y Fn(1)1837 2252 y Fu(])g(])33 b(+)f Ft(T)26 b(B)s -Fu([)-17 b([)q Fs(b)2252 2267 y Fn(2)2291 2252 y Fu(])g(])33 -b(+)g Fw(1)p 3753 2313 V 283 2316 3473 4 v 987 2477 a -Fu(T)-8 b(able)32 b(6.3:)43 b(Exact)34 b(execution)f(times)f(for)g -(expressions)283 2743 y Fp(Exact)46 b(execution)g(times)g(for)f -(statemen)l(ts)283 2928 y Fu(T)-8 b(urning)25 b(to)f(the)i(execution)f -(time)e(for)i(statemen)m(ts)g(w)m(e)h(shall)e(extend)i(the)f(natural)f -(seman)m(tics)283 3049 y(of)47 b(T)-8 b(able)46 b(2.1)h(to)f(sp)s -(ecify)h(the)g(time)f(requiremen)m(ts.)87 b(This)47 b(is)f(done)h(b)m -(y)h(extending)f(the)283 3169 y(transitions)32 b(to)g(ha)m(v)m(e)i(the) -f(form)527 3345 y Ft(h)p Fs(S)12 b Fu(,)33 b Fs(s)8 b -Ft(i)32 b(!)912 3309 y Fc(t)974 3345 y Fs(s)1022 3309 -y Fi(0)283 3521 y Fu(meaning)k(that)h(if)e Fs(S)49 b -Fu(is)36 b(executed)j(from)d(state)h Fs(s)45 b Fu(then)37 -b(it)f(will)f(terminate)g(in)h(state)i Fs(s)3539 3485 -y Fi(0)3599 3521 y Fu(and)283 3642 y(exactly)d Fs(t)44 -b Fu(time)33 b(units)i(will)d(b)s(e)i(required)h(for)f(this.)48 -b(The)36 b(extension)f(of)f(T)-8 b(able)34 b(2.1)g(is)g(fairly)283 -3762 y(straigh)m(tforw)m(ard)f(and)f(is)g(giv)m(en)h(in)f(T)-8 -b(able)32 b(6.4.)283 4046 y Fp(The)45 b(inference)g(system)283 -4231 y Fu(The)34 b(inference)g(system)g(for)e(pro)m(ving)h(the)h(order) -f(of)f(magnitude)g(of)h(the)g(execution)h(time)d(of)283 -4351 y(statemen)m(ts)j(will)c(ha)m(v)m(e)k(assertions)f(of)f(the)h -(form)527 4527 y Ft(f)g Fs(P)43 b Ft(g)32 b Fs(S)44 b -Ft(f)33 b Fs(e)39 b Ft(+)33 b Fs(Q)41 b Ft(g)283 4704 -y Fu(where)h Fs(P)51 b Fu(and)40 b Fs(Q)49 b Fu(are)41 -b(predicates)f(as)h(in)e(the)i(previous)g(inference)g(systems)g(and)g -Fs(e)47 b Fu(is)40 b(an)283 4824 y(arithmetic)31 b(expression)j(\(that) -e(is)g Fs(e)40 b Ft(2)33 b Fw(Aexp)p Fu(\).)44 b(The)33 -b(idea)f(is)g(that)552 4992 y Fs(if)54 b Fu(the)33 b(execution)g(of)f -Fs(S)44 b Fu(is)32 b(started)h(in)f(a)h(state)g(satisfying)e -Fs(P)552 5159 y(then)40 b Fu(it)32 b(terminates)f(in)h(a)h(state)g -(satisfying)e Fs(Q)552 5327 y(and)42 b Fu(the)33 b(required)h -(execution)f(time)e(is)h Ft(O)s Fu(\()p Fs(e)7 b Fu(\),)33 -b(that)f(is)g(has)h(order)g(of)f(magnitude)g Fs(e)7 b -Fu(.)283 5494 y(So)33 b(for)f(example)p eop -%%Page: 203 213 -203 212 bop 0 130 a Fw(6.5)112 b(Assertions)37 b(for)g(execution)g -(time)1606 b(203)p 0 193 3473 4 v 0 419 V 0 2490 4 2071 -v 256 530 a Fu([ass)408 545 y Fn(tns)508 530 y Fu(])345 -b Ft(h)o Fs(x)45 b Fu(:=)32 b Fs(a)7 b Fu(,)33 b Fs(s)8 -b Ft(i)32 b(!)1479 494 y Fi(T)17 b(A)q Fn([)-12 b([)o -Fc(a)p Fn(])g(]+1)1811 530 y Fs(s)8 b Fu([)p Fs(x)k Ft(7!)o(A)p -Fu([)-17 b([)p Fs(a)7 b Fu(])-17 b(])q Fs(s)8 b Fu(])256 -745 y([skip)454 760 y Fn(tns)553 745 y Fu(])300 b Ft(h)o -Fr(skip)p Fu(,)34 b Fs(s)8 b Ft(i)32 b(!)1402 709 y Fn(1)1474 -745 y Fs(s)256 1039 y Fu([comp)511 1054 y Fn(tns)610 -1039 y Fu(])890 952 y Ft(h)o Fs(S)995 967 y Fn(1)1035 -952 y Fu(,)p Fs(s)8 b Ft(i)32 b(!)1281 916 y Fc(t)1306 -925 y Fd(1)1377 952 y Fs(s)1425 916 y Fi(0)1449 952 y -Fu(,)g Ft(h)p Fs(S)1614 967 y Fn(2)1653 952 y Fu(,)p -Fs(s)1728 916 y Fi(0)1752 952 y Ft(i)g(!)1923 916 y Fc(t)1948 -925 y Fd(2)2019 952 y Fs(s)2067 916 y Fi(00)p 890 1016 -1221 4 v 1070 1120 a Ft(h)p Fs(S)1176 1135 y Fn(1)1215 -1120 y Fu(;)p Fs(S)1309 1135 y Fn(2)1349 1120 y Fu(,)g -Fs(s)8 b Ft(i)32 b(!)1627 1084 y Fc(t)1652 1093 y Fd(1)1687 -1084 y Fn(+)p Fc(t)1767 1093 y Fd(2)1839 1120 y Fs(s)1887 -1084 y Fi(00)256 1403 y Fu([if)353 1367 y Fn(tt)341 1428 -y(tns)439 1403 y Fu(])1489 1317 y Ft(h)p Fs(S)1595 1332 -y Fn(1)1634 1317 y Fu(,)p Fs(s)8 b Ft(i)33 b(!)1880 1281 -y Fc(t)1942 1317 y Fs(s)1990 1281 y Fi(0)p 890 1380 1724 -4 v 890 1485 a Ft(h)o Fr(if)g Fs(b)39 b Fr(then)33 b -Fs(S)1451 1500 y Fn(1)1523 1485 y Fr(else)h Fs(S)1828 -1500 y Fn(2)1867 1485 y Fu(,)f Fs(s)8 b Ft(i)32 b(!)2146 -1449 y Fi(T)17 b(B)r Fn([)-12 b([)o Fc(b)p Fn(])g(]+)p -Fc(t)p Fn(+1)2542 1485 y Fs(s)2590 1449 y Fi(0)2688 1403 -y Fu(if)32 b Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fw(tt)256 1768 y Fu([if)353 -1731 y Fn(\013)341 1792 y(tns)439 1768 y Fu(])1489 1681 -y Ft(h)p Fs(S)1595 1696 y Fn(2)1634 1681 y Fu(,)p Fs(s)8 -b Ft(i)33 b(!)1880 1645 y Fc(t)1942 1681 y Fs(s)1990 -1645 y Fi(0)p 890 1744 V 890 1849 a Ft(h)o Fr(if)g Fs(b)39 -b Fr(then)33 b Fs(S)1451 1864 y Fn(1)1523 1849 y Fr(else)h -Fs(S)1828 1864 y Fn(2)1867 1849 y Fu(,)f Fs(s)8 b Ft(i)32 -b(!)2146 1813 y Fi(T)17 b(B)r Fn([)-12 b([)o Fc(b)p Fn(])g(]+)p -Fc(t)p Fn(+1)2542 1849 y Fs(s)2590 1813 y Fi(0)2688 1768 -y Fu(if)32 b Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 -b(])p Fs(s)41 b Fu(=)32 b Fw(\013)256 2142 y Fu([while)518 -2106 y Fn(tt)506 2167 y(tns)604 2142 y Fu(])890 2056 -y Ft(h)o Fs(S)12 b Fu(,)p Fs(s)c Ft(i)33 b(!)1241 2020 -y Fc(t)1303 2056 y Fs(s)1351 2020 y Fi(0)1375 2056 y -Fu(,)f Ft(h)p Fr(while)i Fs(b)k Fr(do)33 b Fs(S)12 b -Fu(,)33 b Fs(s)2155 2020 y Fi(0)2178 2056 y Ft(i)f(!)2349 -2020 y Fc(t)2374 1996 y Fa(0)2434 2056 y Fs(s)2482 2020 -y Fi(00)p 890 2119 1635 4 v 966 2224 a Ft(h)p Fr(while)i -Fs(b)k Fr(do)33 b Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 -b(!)1858 2188 y Fi(T)17 b(B)r Fn([)-12 b([)o Fc(b)p Fn(])g(]+)p -Fc(t)p Fn(+)p Fc(t)2207 2164 y Fa(0)2230 2188 y Fn(+2)2357 -2224 y Fs(s)2405 2188 y Fi(00)2599 2142 y Fu(if)32 b -Ft(B)s Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])p Fs(s)41 -b Fu(=)32 b Fw(tt)256 2429 y Fu([while)518 2393 y Fn(\013)506 -2454 y(tns)604 2429 y Fu(])249 b Ft(h)o Fr(while)34 b -Fs(b)39 b Fr(do)33 b Fs(S)12 b Fu(,)32 b Fs(s)8 b Ft(i)32 -b(!)1771 2393 y Fi(T)17 b(B)r Fn([)-12 b([)p Fc(b)p Fn(])g(])o(+3)2087 -2429 y Fs(s)41 b Fu(if)31 b Ft(B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])q Fs(s)40 b Fu(=)33 b Fw(\013)p 3469 2490 -4 2071 v 0 2493 3473 4 v 294 2654 a Fu(T)-8 b(able)33 -b(6.4:)43 b(Natural)31 b(seman)m(tics)i(for)f Fw(While)f -Fu(with)h(exact)i(execution)f(times)244 2911 y Ft(f)d -Fr(x)g Fu(=)g Fr(3)h Ft(g)f Fr(y)g Fu(:=)g Fr(1)p Fu(;)i -Fr(while)f Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g -Fr(do)g Fu(\()p Fr(y)f Fu(:=)g Fr(y)p Fo(?)p Fr(x)p Fu(;)h -Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)p Fu(\))h Ft(f)f -Fr(1)g Ft(+)h Fr(true)g Ft(g)0 3102 y Fu(expresses)d(that)d(the)h -(execution)f(of)g(the)g(factorial)e(statemen)m(t)j(from)e(a)g(state)i -(where)g Fr(x)f Fu(has)h(the)0 3222 y(v)-5 b(alue)32 -b Fw(3)h Fu(has)g(order)f(of)g(magnitude)g Fr(1)p Fu(,)h(that)f(is)g -(it)g(is)g(b)s(ounded)h(b)m(y)g(a)g(constan)m(t.)44 b(Similarly)-8 -b(,)244 3413 y Ft(f)30 b Fr(x)h Fo(>)f Fu(0)g Ft(g)g -Fr(y)g Fu(:=)h Fr(1)p Fu(;)g Fr(while)h Ft(:)p Fu(\()p -Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)f Fu(\()p Fr(y)h Fu(:=)f -Fr(y)p Fo(?)p Fr(x)p Fu(;)i Fr(x)e Fu(:=)g Fr(x)p Ft(\000)p -Fr(1)p Fu(\))i Ft(f)e Fr(x)g Ft(+)g Fr(true)i Ft(g)0 -3604 y Fu(expresses)27 b(that)c(the)h(execution)g(of)f(the)h(factorial) -d(statemen)m(t)j(on)f(a)h(state)g(where)g Fr(x)g Fu(is)f(p)s(ositiv)m -(e)0 3724 y(has)33 b(order)g(of)f(magnitude)f Fr(x)p -Fu(.)146 3844 y(F)-8 b(ormally)g(,)30 b Fs(validity)41 -b Fu(of)32 b(the)h(form)m(ula)e Ft(f)h Fs(P)43 b Ft(g)32 -b Fs(S)45 b Ft(f)32 b Fs(e)40 b Ft(+)32 b Fs(Q)42 b Ft(g)32 -b Fu(is)g(de\014ned)i(b)m(y)244 4035 y Ft(j)-17 b Fu(=)331 -4050 y Fn(e)399 4035 y Ft(f)32 b Fs(P)43 b Ft(g)32 b -Fs(S)45 b Ft(f)32 b Fs(e)40 b Ft(+)32 b Fs(Q)42 b Ft(g)0 -4226 y Fu(if)31 b(and)i(only)f(if)244 4417 y(there)h(exists)h(a)e -(natural)f(n)m(um)m(b)s(er)i Fw(k)g Fu(suc)m(h)h(that)e(for)g(all)f -(states)i Fs(s)8 b Fu(,)244 4584 y(if)31 b Fs(P)43 b(s)e -Fu(=)32 b Fw(tt)g Fu(then)h(there)g(exists)h(a)e(state)h -Fs(s)1860 4548 y Fi(0)1916 4584 y Fu(and)g(a)f(n)m(um)m(b)s(er)h -Fs(t)42 b Fu(suc)m(h)34 b(that)244 4752 y Fs(Q)42 b(s)409 -4716 y Fi(0)464 4752 y Fu(=)33 b Fw(tt)p Fu(,)f Ft(h)o -Fs(S)12 b Fu(,)33 b Fs(s)8 b Ft(i)32 b(!)1104 4716 y -Fc(t)1166 4752 y Fs(s)1214 4716 y Fi(0)1237 4752 y Fu(,)h(and)g -Fs(t)42 b Ft(\024)33 b Fw(k)g Fo(?)f Fu(\()p Ft(A)o Fu([)-17 -b([)q Fs(e)7 b Fu(])-17 b(])q Fs(s)8 b Fu(\))0 4943 y(Note)39 -b(that)g(the)h(expression)h Fs(e)46 b Fu(is)39 b(ev)-5 -b(aluated)39 b(in)f(the)i(initial)35 b(state)40 b(rather)f(than)h(the)f -(\014nal)0 5063 y(state.)146 5183 y(The)26 b(axioms)d(and)i(rules)f(of) -g(the)h(inference)g(system)h(are)e(giv)m(en)h(in)e(T)-8 -b(able)25 b(6.5.)40 b(Pro)m(v)-5 b(abilit)m(y)0 5304 -y(of)32 b(the)h(assertion)g Ft(f)f Fs(P)43 b Ft(g)32 -b Fs(S)45 b Ft(f)32 b Fs(e)40 b Ft(+)32 b Fs(Q)42 b Ft(g)32 -b Fu(in)g(the)h(inference)g(system)h(is)e(written)244 -5494 y Ft(`)305 5509 y Fn(e)373 5494 y Ft(f)g Fs(P)43 -b Ft(g)32 b Fs(S)45 b Ft(f)32 b Fs(e)40 b Ft(+)32 b Fs(Q)42 -b Ft(g)p eop -%%Page: 204 214 -204 213 bop 251 130 a Fw(204)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -419 V 283 3119 4 2700 v 350 528 a Fu([ass)502 543 y Fn(e)538 -528 y Fu(])201 b Ft(f)33 b Fs(P)10 b Fu([)p Fs(x)i Ft(7!A)o -Fu([)-17 b([)q Fs(a)7 b Fu(])-17 b(])q(])32 b Ft(g)h -Fs(x)44 b Fu(:=)32 b Fs(a)40 b Ft(f)33 b Fr(1)f Ft(+)h -Fs(P)43 b Ft(g)350 696 y Fu([skip)548 711 y Fn(e)583 -696 y Fu(])156 b Ft(f)33 b Fs(P)43 b Ft(g)32 b Fr(skip)i -Ft(f)e Fr(1)h Ft(+)f Fs(P)43 b Ft(g)350 988 y Fu([comp)605 -1003 y Fn(e)640 988 y Fu(])776 901 y Ft(f)33 b Fs(P)43 -b Ft(^)33 b(B)s Fu([)-17 b([)q Fs(e)1225 865 y Fi(0)1225 -926 y Fn(2)1264 901 y Fu(=)p Fr(u)p Fu(])g(])34 b Ft(g)e -Fs(S)1611 916 y Fn(1)1683 901 y Ft(f)g Fs(e)1817 916 -y Fn(1)1889 901 y Ft(+)h Fs(Q)41 b Ft(^)33 b(B)t Fu([)-17 -b([)p Fs(e)2356 916 y Fn(2)2396 901 y Ft(\024)q Fr(u)p -Fu(])g(])33 b Ft(g)p Fu(,)65 b Ft(f)32 b Fs(Q)42 b Ft(g)32 -b Fs(S)3085 916 y Fn(2)3157 901 y Ft(f)g Fs(e)3291 916 -y Fn(2)3364 901 y Ft(+)g Fs(R)37 b Ft(g)p 776 964 2871 -4 v 1610 1069 a(f)32 b Fs(P)43 b Ft(g)33 b Fs(S)1951 -1084 y Fn(1)1990 1069 y Fu(;)f Fs(S)2116 1084 y Fn(2)2188 -1069 y Ft(f)h Fs(e)2323 1084 y Fn(1)2362 1069 y Fu(+)p -Fs(e)2490 1033 y Fi(0)2490 1094 y Fn(2)2562 1069 y Ft(+)g -Fs(R)j Ft(g)766 1202 y Fu(where)e Fr(u)f Fu(is)f(an)h(un)m(used)h -(logical)c(v)-5 b(ariable)350 1494 y([if)435 1509 y Fn(e)469 -1494 y Fu(])776 1408 y Ft(f)33 b(B)s Fu([)-17 b([)q Fs(b)6 -b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)1443 -1423 y Fn(1)1515 1408 y Ft(f)g Fs(e)40 b Ft(+)32 b Fs(Q)42 -b Ft(g)p Fu(,)97 b Ft(f)33 b(:B)t Fu([)-17 b([)p Fs(b)6 -b Fu(])-17 b(])33 b Ft(^)g Fs(P)43 b Ft(g)32 b Fs(S)2799 -1423 y Fn(2)2871 1408 y Ft(f)h Fs(e)39 b Ft(+)33 b Fs(Q)41 -b Ft(g)p 776 1471 2522 4 v 1201 1576 a(f)33 b Fs(P)43 -b Ft(g)32 b Fr(if)h Fs(b)38 b Fr(then)c Fs(S)1998 1591 -y Fn(1)2070 1576 y Fr(else)f Fs(S)2374 1591 y Fn(2)2446 -1576 y Ft(f)g Fs(e)39 b Ft(+)33 b Fs(Q)41 b Ft(g)350 -1833 y Fu([while)600 1848 y Fn(e)634 1833 y Fu(])776 -1747 y Ft(f)33 b Fs(P)10 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p -Fu(\))32 b Ft(^)h(B)t Fu([)-17 b([)p Fs(e)1482 1711 y -Fi(0)1534 1747 y Fu(=)p Fr(u)p Fu(])g(])33 b Ft(g)f Fs(S)44 -b Ft(f)33 b Fs(e)2047 1762 y Fn(1)2119 1747 y Ft(+)f -Fs(P)10 b Fu(\()p Fr(z)p Fu(\))33 b Ft(^)g(B)t Fu([)-17 -b([)p Fs(e)7 b Ft(\024)q Fr(u)p Fu(])-17 b(])34 b Ft(g)p -776 1810 2178 4 v 1021 1915 a(f)e(9)p Fw(z)p Fu(.)p Fs(P)10 -b Fu(\()p Fw(z)p Fu(\))33 b Ft(g)f Fr(while)i Fs(b)39 -b Fr(do)33 b Fs(S)44 b Ft(f)32 b Fs(e)40 b Ft(+)32 b -Fs(P)10 b Fu(\()p Fw(0)p Fu(\))33 b Ft(g)766 2048 y Fu(where)h -Fs(P)10 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))33 b Ft(\))f(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g(B)s -Fu([)-17 b([)q Fs(e)7 b Ft(\025)q Fs(e)2161 2063 y Fn(1)2200 -2048 y Fu(+)p Fs(e)2328 2012 y Fi(0)2352 2048 y Fu(])-17 -b(])q(,)32 b Fs(P)10 b Fu(\()p Fw(0)p Fu(\))33 b Ft(\))f(:)q(B)s -Fu([)-17 b([)q Fs(b)6 b Fu(])-17 b(])33 b Ft(^)g(B)s -Fu([)-17 b([)q Fr(1)p Ft(\024)p Fs(e)7 b Fu(])-17 b(])766 -2216 y(and)33 b Fr(u)g Fu(is)f(an)h(un)m(used)h(logical)29 -b(v)-5 b(ariable)766 2383 y(and)33 b Fw(z)f Fu(ranges)i(o)m(v)m(er)f -(natural)f(n)m(um)m(b)s(ers)h(\(that)f(is)g Fw(z)p Ft(\025)q -Fw(0)p Fu(\))350 2675 y([cons)561 2690 y Fn(e)597 2675 -y Fu(])809 2589 y Ft(f)g Fs(P)967 2552 y Fi(0)1023 2589 -y Ft(g)h Fs(S)44 b Ft(f)32 b Fs(e)1339 2552 y Fi(0)1396 -2589 y Ft(+)g Fs(Q)1573 2552 y Fi(0)1629 2589 y Ft(g)p -776 2652 903 4 v 811 2757 a(f)h Fs(P)43 b Ft(g)32 b Fs(S)44 -b Ft(f)33 b Fs(e)39 b Ft(+)33 b Fs(Q)41 b Ft(g)766 2890 -y Fu(where)34 b(\(for)e(some)h(natural)e(n)m(um)m(b)s(er)i -Fr(k)p Fu(\))g Fs(P)43 b Ft(\))32 b Fs(P)2615 2854 y -Fi(0)2671 2890 y Ft(^)h(B)s Fu([)-17 b([)q Fs(e)2928 -2854 y Fi(0)2952 2890 y Ft(\024)p Fr(k)p Fo(?)p Fs(e)7 -b Fu(])-17 b(])766 3058 y(and)33 b Fs(Q)1040 3021 y Fi(0)1096 -3058 y Ft(\))f Fs(Q)p 3753 3119 4 2700 v 283 3122 3473 -4 v 523 3282 a Fu(T)-8 b(able)33 b(6.5:)43 b(Axiomatic)30 -b(system)k(for)e(order)h(of)f(magnitude)f(of)h(execution)h(time)283 -3568 y(The)41 b(assignmen)m(t)f(statemen)m(t)g(and)f(the)i -Fr(skip)f Fu(statemen)m(t)g(can)g(b)s(e)g(executed)i(in)d(constan)m(t) -283 3688 y(time)32 b(and)g(therefore)i(w)m(e)f(use)h(the)f(arithmetic)d -(expression)k Fr(1)p Fu(.)430 3809 y(The)g(rule)f([comp)1082 -3824 y Fn(e)1117 3809 y Fu(])h(assumes)g(that)g(w)m(e)g(ha)m(v)m(e)h -(pro)s(ofs)e(sho)m(wing)h(that)f Fs(e)3068 3824 y Fn(1)3141 -3809 y Fu(and)h Fs(e)3384 3824 y Fn(2)3457 3809 y Fu(are)f(the)283 -3929 y(order)38 b(of)f(magnitudes)f(of)h(the)h(execution)g(times)e(for) -h(the)h(t)m(w)m(o)g(statemen)m(ts.)58 b(Ho)m(w)m(ev)m(er,)41 -b Fs(e)3716 3944 y Fn(1)283 4050 y Fu(expresses)46 b(the)e(time)d -(requiremen)m(ts)j(of)e Fs(S)1905 4065 y Fn(1)1987 4050 -y Fu(relativ)m(e)h(to)f(the)h(initial)c(state)44 b(of)e -Fs(S)3382 4065 y Fn(1)3464 4050 y Fu(and)h Fs(e)3716 -4065 y Fn(2)283 4170 y Fu(expresses)31 b(the)d(time)e(requiremen)m(ts)i -(relativ)m(e)f(to)g(the)h(initial)c(state)k(of)f Fs(S)2958 -4185 y Fn(2)2997 4170 y Fu(.)42 b(This)28 b(means)f(that)283 -4290 y(w)m(e)42 b(cannot)f(simply)e(use)j Fs(e)1312 4305 -y Fn(1)1392 4290 y Fu(+)e Fs(e)1560 4305 y Fn(2)1641 -4290 y Fu(as)g(the)h(time)f(requiremen)m(t)h(for)f Fs(S)2949 -4305 y Fn(1)2988 4290 y Fu(;)k Fs(S)3126 4305 y Fn(2)3166 -4290 y Fu(.)67 b(W)-8 b(e)41 b(ha)m(v)m(e)h(to)283 4411 -y(replace)37 b Fs(e)670 4426 y Fn(2)745 4411 y Fu(with)f(an)g -(expression)i Fs(e)1636 4375 y Fi(0)1636 4435 y Fn(2)1712 -4411 y Fu(suc)m(h)f(that)f Fs(e)2202 4375 y Fi(0)2202 -4435 y Fn(2)2278 4411 y Fu(ev)-5 b(aluated)36 b(in)f(the)i(initial)32 -b(state)37 b(of)f Fs(S)3717 4426 y Fn(1)283 4531 y Fu(will)28 -b(b)s(ound)j(the)g(v)-5 b(alue)29 b(of)h Fs(e)1340 4546 -y Fn(2)1410 4531 y Fu(in)f(the)i(initial)c(state)j(of)g -Fs(S)2379 4546 y Fn(2)2449 4531 y Fu(\(whic)m(h)g(is)g(the)h(\014nal)e -(state)i(of)f Fs(S)3652 4546 y Fn(1)3691 4531 y Fu(\).)283 -4651 y(This)j(is)e(expressed)k(b)m(y)d(the)h(extended)h(precondition)d -(and)h(p)s(ostcondition)e(of)i Fs(S)3295 4666 y Fn(1)3366 -4651 y Fu(using)f(the)283 4772 y(logical)f(v)-5 b(ariable)31 -b Fr(u)p Fu(.)430 4892 y(The)43 b(rule)f([if)930 4907 -y Fn(e)965 4892 y Fu(])g(is)g(fairly)f(straigh)m(tforw)m(ard)h(since)h -(the)f(time)g(required)g(for)g(the)h(test)g(is)283 5013 -y(constan)m(t.)430 5133 y(In)29 b(the)g(rule)g(for)f(the)i -Fr(while)p Fu(-construct)h(w)m(e)f(assume)f(that)g(the)g(execution)h -(time)d(is)i Fs(e)3571 5148 y Fn(1)3639 5133 y Fu(for)283 -5254 y(the)40 b(b)s(o)s(dy)e(and)h(is)f Fs(e)46 b Fu(for)39 -b(the)g(lo)s(op)e(itself.)61 b(As)39 b(in)f(the)h(rule)f([comp)2844 -5269 y Fn(e)2879 5254 y Fu(])h(w)m(e)h(cannot)f(just)g(use)283 -5374 y Fs(e)335 5389 y Fn(1)413 5374 y Fu(+)e Fs(e)45 -b Fu(as)38 b(the)g(total)e(time)g(required)i(b)s(ecause)h -Fs(e)2184 5389 y Fn(1)2261 5374 y Fu(refers)g(to)e(the)h(state)g(b)s -(efore)g(the)g(b)s(o)s(dy)283 5494 y(of)i(the)g(lo)s(op)f(is)h -(executed)i(and)e Fs(e)47 b Fu(to)40 b(the)g(state)h(after)f(the)g(b)s -(o)s(dy)g(is)g(executed)i(once.)66 b(W)-8 b(e)p eop -%%Page: 205 215 -205 214 bop 0 130 a Fw(6.5)112 b(Assertions)37 b(for)g(execution)g -(time)1606 b(205)p 0 193 3473 4 v 0 515 a Fu(shall)31 -b(therefore)i(require)g(that)f(there)i(is)e(an)g(expression)i -Fs(e)2181 479 y Fi(0)2237 515 y Fu(suc)m(h)g(that)e Fs(e)2720 -479 y Fi(0)2776 515 y Fu(ev)-5 b(aluated)32 b(b)s(efore)0 -636 y(the)i(b)s(o)s(dy)g(will)d(b)s(ound)j Fs(e)41 b -Fu(ev)-5 b(aluated)33 b(after)h(the)g(b)s(o)s(dy)-8 b(.)46 -b(Then)35 b(it)e(m)m(ust)h(b)s(e)f(the)i(case)f(that)g -Fs(e)0 756 y Fu(satis\014es)29 b Fs(e)35 b Ft(\025)28 -b Fs(e)592 771 y Fn(1)659 756 y Fu(+)g Fs(e)815 720 y -Fi(0)866 756 y Fu(b)s(ecause)i Fs(e)35 b Fu(has)28 b(to)f(b)s(ound)h -(the)h(time)d(for)h(executing)i(the)f Fr(while)p Fu(-lo)s(op)0 -877 y(indep)s(enden)m(tly)36 b(of)f(the)h(n)m(um)m(b)s(er)f(of)g(times) -f(it)h(is)g(unfolded.)51 b(As)36 b(w)m(e)g(shall)e(see)i(in)f(Example)0 -997 y(6.36,)45 b(this)e(corresp)s(onds)h(to)f(the)h Fs(r)-5 -b(e)g(curr)g(enc)g(e)44 b(e)-5 b(quations)50 b Fu(that)43 -b(often)g(ha)m(v)m(e)i(to)d(b)s(e)i(solv)m(ed)0 1117 -y(when)29 b(analysing)e(the)i(execution)g(time)e(of)g(programs.)42 -b(Finally)-8 b(,)26 b(the)j(rule)e([cons)2975 1132 y -Fn(e)3012 1117 y Fu(])h(should)g(b)s(e)0 1238 y(straigh)m(tforw)m(ard.) -0 1483 y Fw(Example)37 b(6.35)49 b Fu(W)-8 b(e)29 b(shall)f(no)m(w)h -(pro)m(v)m(e)i(that)e(the)g(execution)h(time)e(of)g(the)i(factorial)c -(state-)0 1604 y(men)m(t)32 b(has)g(order)h(of)e(magnitude)g -Fr(x)p Fu(.)43 b(This)32 b(can)h(b)s(e)f(expressed)j(b)m(y)e(the)f -(follo)m(wing)d(assertion:)244 1818 y Ft(f)h Fr(x)g Fo(>)g -Fr(0)h Ft(g)f Fr(y)g Fu(:=)g Fr(1)p Fu(;)i Fr(while)f -Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))g Fr(do)g Fu(\()p -Fr(y)f Fu(:=)g Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\))h Ft(f)f Fr(x)g Ft(+)h -Fr(true)g Ft(g)0 2032 y Fu(The)g(inference)g(of)f(this)g(assertion)g -(pro)s(ceeds)h(in)f(a)g(n)m(um)m(b)s(er)h(of)e(stages.)44 -b(First)29 b(w)m(e)i(de\014ne)h(the)0 2153 y(predicate)h -Fs(INV)18 b Fu(\()p Fw(z)p Fu(\))33 b(that)f(is)g(to)g(b)s(e)h(the)g -(in)m(v)-5 b(arian)m(t)31 b(of)h(the)h Fr(while)p Fu(-lo)s(op)244 -2367 y Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Fs(s)40 -b Fu(=)33 b(\()p Fs(s)40 b Fr(x)33 b Fo(>)f Fw(0)h Fu(and)g -Fs(s)40 b Fr(x)33 b Fu(=)f Fw(z)h Fu(+)f Fw(1)p Fu(\))0 -2581 y(The)38 b(logical)d(v)-5 b(ariables)36 b Fr(u)974 -2596 y Fn(1)1051 2581 y Fu(and)h Fr(u)1296 2596 y Fn(2)1373 -2581 y Fu(are)h(used)g(for)f(the)h Fr(while)p Fu(-lo)s(op)e(and)i(the)g -(b)s(o)s(dy)f(of)g(the)0 2702 y Fr(while)p Fu(-lo)s(op,)30 -b(resp)s(ectiv)m(ely)-8 b(.)43 b(W)-8 b(e)30 b(shall)e(\014rst)i -(consider)g(the)g(b)s(o)s(dy)g(of)f(the)h(lo)s(op.)41 -b(Using)29 b([ass)3409 2717 y Fn(e)3445 2702 y Fu(])0 -2822 y(w)m(e)34 b(get)244 3036 y Ft(`)305 3051 y Fn(e)373 -3036 y Ft(f)e Fu(\()p Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 -b Ft(^)h Fr(x)p Ft(\024)q Fr(u)1131 3051 y Fn(1)1170 -3036 y Fu(\)[)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p -Fu(])h Ft(g)e Fr(x)h Fu(:=)f Fr(x)h Ft(\000)g Fr(1)g -Ft(f)f Fr(1)h Ft(+)g Fs(INV)18 b Fu(\()p Fw(z)p Fu(\))32 -b Ft(^)h Fr(x)p Ft(\024)q Fr(u)3102 3051 y Fn(1)3174 -3036 y Ft(g)0 3250 y Fu(Similarly)-8 b(,)29 b(w)m(e)k(get)244 -3465 y Ft(`)305 3480 y Fn(e)373 3465 y Ft(f)f Fu(\(\()p -Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(^)h Fr(x)p Ft(\024)q -Fr(u)1169 3480 y Fn(1)1208 3465 y Fu(\)[)p Fr(x)p Ft(7!)p -Fr(x)p Ft(\000)p Fr(1)p Fu(])h Ft(^)f Fr(1)p Ft(\024)p -Fr(u)1942 3480 y Fn(2)1982 3465 y Fu(\)[)p Fr(y)p Ft(7!)p -Fr(y)p Fo(?)p Fr(x)p Fu(])g Ft(g)373 3632 y Fr(y)g Fu(:=)f -Fr(y)h Fo(?)f Fr(x)373 3800 y Ft(f)g Fr(1)h Ft(+)f Fu(\()p -Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(^)h Fr(x)p Ft(\024)q -Fr(u)1308 3815 y Fn(1)1347 3800 y Fu(\)[)p Fr(x)p Ft(7!)p -Fr(x)p Ft(\000)p Fr(1)p Fu(])h Ft(^)f Fr(1)p Ft(\024)q -Fr(u)2082 3815 y Fn(2)2154 3800 y Ft(g)0 4014 y Fu(Before)f(applying)e -(the)i(rule)f([comp)1317 4029 y Fn(e)1352 4014 y Fu(])h(w)m(e)g(ha)m(v) -m(e)h(to)e(mo)s(dify)f(the)i(precondition)f(of)g(the)h(ab)s(o)m(v)m(e)0 -4135 y(assertion.)43 b(W)-8 b(e)33 b(ha)m(v)m(e)244 4349 -y Fs(INV)19 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b -Ft(^)h Fr(x)p Ft(\000)p Fr(1)p Fu(=)p Fr(u)1140 4364 -y Fn(1)1213 4349 y Ft(^)g Fr(1)p Fu(=)p Fr(u)1490 4364 -y Fn(2)244 4516 y Ft(\))f Fu(\(\()p Fs(INV)19 b Fu(\()p -Fw(z)p Fu(\))32 b Ft(^)h Fr(x)p Ft(\024)p Fr(u)1089 4531 -y Fn(1)1129 4516 y Fu(\)[)p Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p -Fr(1)p Fu(])h Ft(^)f Fr(1)p Ft(\024)p Fr(u)1863 4531 -y Fn(2)1903 4516 y Fu(\)[)p Fr(y)p Ft(7!)p Fr(y)p Fo(?)p -Fr(x)p Fu(])0 4731 y(so)g(using)f([cons)586 4746 y Fn(e)622 -4731 y Fu(])h(w)m(e)h(get)244 4945 y Ft(`)305 4960 y -Fn(e)373 4945 y Ft(f)e Fs(INV)19 b Fu(\()p Fw(z)p Fu(+)p -Fw(1)p Fu(\))32 b Ft(^)h Fr(x)p Ft(\000)p Fr(1)p Fu(=)p -Fr(u)1351 4960 y Fn(1)1424 4945 y Ft(^)g Fr(1)p Fu(=)p -Fr(u)1701 4960 y Fn(2)1773 4945 y Ft(g)373 5113 y Fr(y)g -Fu(:=)f Fr(y)h Fo(?)f Fr(x)373 5280 y Ft(f)g Fr(1)h Ft(+)f -Fu(\()p Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(^)h -Fr(x)p Ft(\024)q Fr(u)1308 5295 y Fn(1)1347 5280 y Fu(\)[)p -Fr(x)p Ft(7!)p Fr(x)p Ft(\000)p Fr(1)p Fu(])h Ft(^)f -Fr(1)p Ft(\024)q Fr(u)2082 5295 y Fn(2)2154 5280 y Ft(g)0 -5494 y Fu(W)-8 b(e)33 b(can)g(no)m(w)g(apply)f([comp)1073 -5509 y Fn(e)1109 5494 y Fu(])g(and)h(get)p eop -%%Page: 206 216 -206 215 bop 251 130 a Fw(206)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 527 -515 a Ft(`)588 530 y Fn(e)656 515 y Ft(f)33 b Fs(INV)18 -b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b Ft(^)h Fr(x)p -Ft(\000)p Fr(1)p Fu(=)p Fr(u)1634 530 y Fn(1)1707 515 -y Ft(g)656 683 y Fr(y)g Fu(:=)g Fr(y)f Fo(?)h Fr(x)p -Fu(;)f Fr(x)h Fu(:=)g Fr(x)p Ft(\000)p Fr(1)656 851 y -Ft(f)g Fr(1)p Fu(+)p Fr(1)g Ft(+)f Fs(INV)19 b Fu(\()p -Fw(z)p Fu(\))32 b Ft(^)h Fr(x)p Ft(\024)p Fr(u)1680 866 -y Fn(1)1753 851 y Ft(g)283 1036 y Fu(and)g(using)f([cons)939 -1051 y Fn(e)976 1036 y Fu(])g(w)m(e)i(get)527 1221 y -Ft(`)588 1236 y Fn(e)656 1221 y Ft(f)f Fs(INV)18 b Fu(\()p -Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b Ft(^)h Fr(x)p Ft(\000)p -Fr(1)p Fu(=)p Fr(u)1634 1236 y Fn(1)1707 1221 y Ft(g)656 -1389 y Fr(y)g Fu(:=)g Fr(y)f Fo(?)h Fr(x)p Fu(;)f Fr(x)h -Fu(:=)g Fr(x)p Ft(\000)p Fr(1)656 1556 y Ft(f)g Fr(1)f -Ft(+)h Fs(INV)18 b Fu(\()p Fw(z)p Fu(\))33 b Ft(^)g Fr(x)p -Ft(\024)p Fr(u)1553 1571 y Fn(1)1626 1556 y Ft(g)283 -1742 y Fu(It)g(is)f(easy)i(to)e(v)m(erify)h(that)527 -1927 y Fs(INV)19 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 -b Ft(\))g(:)q Fu(\()p Fr(x)g Fu(=)h Fr(1)p Fu(\))f Ft(^)h -Fr(x)p Ft(\025)q Fr(1)p Fu(+\()p Fr(x)p Ft(\000)p Fr(1)p -Fu(\),)h(and)527 2095 y Fs(INV)19 b Fu(\()p Fw(0)p Fu(\))32 -b Ft(\))h(:)p Fu(\()p Ft(:)p Fu(\()p Fr(x)g Fu(=)f Fr(1)p -Fu(\)\))h Ft(^)g Fr(1)p Ft(\024)q Fr(x)283 2280 y Fu(Therefore)h(w)m(e) -g(can)f(use)g(the)g(rule)f([while)1829 2295 y Fn(e)1864 -2280 y Fu(])h(and)f(get)582 2448 y Ft(`)643 2463 y Fn(e)711 -2448 y Ft(f)g(9)p Fw(z)p Fu(.)p Fs(INV)19 b Fu(\()p Fw(z)p -Fu(\))32 b Ft(g)h Fr(while)g Ft(:)q Fu(\()p Fr(x)p Fu(=)p -Fr(1)p Fu(\))g Fr(do)g Fu(\()p Fr(y)f Fu(:=)h Fr(y)p -Fo(?)p Fr(x)p Fu(;)g Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p -Fr(1)p Fu(\))i Ft(f)e Fr(x)h Ft(+)f Fs(INV)19 b Fu(\()p -Fw(0)p Fu(\))32 b Ft(g)283 2615 y Fu(W)-8 b(e)33 b(shall)f(no)m(w)h -(apply)f(the)h(axiom)e([ass)1761 2630 y Fn(e)1797 2615 -y Fu(])i(to)f(the)h(statemen)m(t)g Fr(y)g Fu(:=)g Fr(1)f -Fu(and)h(get)527 2801 y Ft(`)588 2816 y Fn(e)656 2801 -y Ft(f)g Fu(\()p Ft(9)p Fw(z)p Fu(.)p Fs(INV)18 b Fu(\()p -Fw(z)p Fu(\))33 b Ft(^)g Fr(1)p Ft(\024)p Fr(u)1546 2816 -y Fn(3)1586 2801 y Fu(\)[)p Fr(y)p Ft(7!)p Fr(1)p Fu(])g -Ft(g)f Fr(y)h Fu(:=)f Fr(1)h Ft(f)g Fr(1)f Ft(+)h(9)p -Fw(z)p Fu(.)p Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(^)h -Fr(1)p Ft(\024)p Fr(u)3327 2816 y Fn(3)3400 2801 y Ft(g)283 -2986 y Fu(W)-8 b(e)33 b(ha)m(v)m(e)527 3171 y Fr(x)p -Fo(>)p Fr(0)g Ft(^)g Fr(1)p Fu(=)p Fr(u)1015 3186 y Fn(3)1088 -3171 y Ft(\))f Fu(\()p Ft(9)p Fw(z)p Fu(.)p Fs(INV)19 -b Fu(\()p Fw(z)p Fu(\))32 b Ft(^)h Fr(1)p Ft(\024)p Fr(u)2027 -3186 y Fn(3)2067 3171 y Fu(\)[)p Fr(y)p Ft(7!)p Fr(1)p -Fu(])283 3356 y(so)g(using)f([cons)869 3371 y Fn(e)906 -3356 y Fu(])h(w)m(e)g(get)527 3542 y Ft(`)588 3557 y -Fn(e)656 3542 y Ft(f)g Fr(x)p Fo(>)p Fr(0)g Ft(^)f Fr(1)p -Fu(=)p Fr(u)1226 3557 y Fn(3)1299 3542 y Ft(g)g Fr(y)h -Fu(:=)f Fr(1)h Ft(f)g Fr(1)f Ft(+)h(9)p Fw(z)p Fu(.)p -Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(^)h Fr(1)p Ft(\024)p -Fr(u)2713 3557 y Fn(3)2786 3542 y Ft(g)283 3727 y Fu(The)h(rule)e -([comp)934 3742 y Fn(e)969 3727 y Fu(])h(no)m(w)g(giv)m(es)527 -3912 y Ft(`)588 3927 y Fn(e)656 3912 y Ft(f)g Fr(x)p -Fo(>)p Fr(0)g Ft(g)656 4080 y Fr(y)g Fu(:=)g Fr(1)p Fu(;)f -Fr(while)i Ft(:)q Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))e -Fr(do)i Fu(\()p Fr(y)e Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g -Fr(x)f Fu(:=)h Fr(x)p Ft(\000)p Fr(1)p Fu(\))656 4248 -y Ft(f)g Fr(1)p Fu(+)p Fr(x)g Ft(+)f Fs(INV)19 b Fu(\()p -Fw(0)p Fu(\))32 b Ft(g)283 4433 y Fu(Clearly)g(w)m(e)i(ha)m(v)m(e)527 -4618 y Fr(x)p Fo(>)p Fu(0)f Ft(\))f Fr(1)p Fu(+)p Fr(x)h -Ft(\024)g Fw(2)p Fo(?)p Fr(x)p Fu(,)g(and)527 4786 y -Fs(INV)19 b Fu(\()p Fw(0)p Fu(\))32 b Ft(\))h Fr(true)283 -4971 y Fu(so)g(applying)f(rule)g([cons)1208 4986 y Fn(e)1244 -4971 y Fu(])h(w)m(e)g(get)527 5156 y Ft(`)588 5171 y -Fn(e)656 5156 y Ft(f)g Fr(x)f Fo(>)h Fu(0)f Ft(g)656 -5324 y Fr(y)h Fu(:=)g Fr(1)p Fu(;)f Fr(while)i Ft(:)q -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))e Fr(do)i Fu(\()p -Fr(y)e Fu(:=)h Fr(y)p Fo(?)p Fr(x)p Fu(;)g Fr(x)f Fu(:=)h -Fr(x)p Ft(\000)p Fr(1)p Fu(\))656 5492 y Ft(f)g Fr(x)f -Ft(+)h Fr(true)g Ft(g)p eop -%%Page: 207 217 -207 216 bop 0 130 a Fw(6.5)112 b(Assertions)37 b(for)g(execution)g -(time)1606 b(207)p 0 193 3473 4 v 0 515 a Fu(as)33 b(required.)2902 -b Fh(2)0 760 y Fw(Example)37 b(6.36)49 b Fu(Assume)31 -b(no)m(w)h(that)f(w)m(e)h(w)m(an)m(t)f(to)g(determine)f(an)h -(arithmetic)e(expression)0 881 y Fs(e)52 896 y Fn(fac)177 -881 y Fu(suc)m(h)34 b(that)244 1096 y Ft(`)305 1111 y -Fn(e)373 1096 y Ft(f)e Fr(x)h Fo(>)f Fu(0)h Ft(g)373 -1263 y Fr(y)g Fu(:=)f Fr(1)p Fu(;)h Fr(while)h Ft(:)p -Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f Fr(do)g Fu(\()p -Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h Fr(x)g Fu(:=)f -Fr(x)p Ft(\000)p Fr(1)p Fu(\))373 1431 y Ft(f)g Fs(e)507 -1446 y Fn(fac)632 1431 y Ft(+)h Fr(true)g Ft(g)0 1646 -y Fu(In)f(other)h(w)m(ords)g(w)m(e)g(w)m(an)m(t)g(to)e(determine)h(the) -h(order)f(of)f(magnitude)g(of)h(the)g(time)f(required)0 -1767 y(to)44 b(execute)j(the)e(factorial)d(statemen)m(t.)81 -b(W)-8 b(e)45 b(can)g(then)g(attempt)f(constructing)h(a)f(pro)s(of)0 -1887 y(of)36 b(the)g(ab)s(o)m(v)m(e)i(assertion)e(using)g(the)g -(inference)h(system)h(of)d(T)-8 b(able)36 b(6.5)g(with)g -Fs(e)2974 1902 y Fn(fac)3103 1887 y Fu(b)s(eing)f(an)0 -2007 y(unsp)s(eci\014ed)45 b(arithmetic)c(expression.)77 -b(The)45 b(v)-5 b(arious)42 b(side)i(conditions)e(of)h(the)h(rules)g -(will)0 2128 y(then)32 b(sp)s(ecify)g(a)g(set)g(of)f(\(in\)equations)g -(that)h(ha)m(v)m(e)h(to)e(b)s(e)h(ful\014lled)d(b)m(y)k -Fs(e)2698 2143 y Fn(fac)2822 2128 y Fu(in)e(order)h(for)f(the)0 -2248 y(pro)s(of)h(to)g(exist.)146 2371 y(W)-8 b(e)43 -b(shall)e(\014rst)i(consider)f(the)h(b)s(o)s(dy)f(of)g(the)h(lo)s(op.) -71 b(V)-8 b(ery)43 b(m)m(uc)m(h)g(as)g(in)e(the)i(previous)0 -2491 y(example)32 b(w)m(e)i(get)244 2707 y Ft(`)305 2722 -y Fn(e)373 2707 y Ft(f)e Fs(INV)19 b Fu(\()p Fw(z)p Fu(+)p -Fw(1)p Fu(\))32 b Ft(^)h Fs(e)7 b Fu([)p Fr(x)p Ft(7!)p -Fr(x)p Ft(\000)p Fr(1)p Fu(]=)p Fr(u)1608 2722 y Fn(1)1681 -2707 y Ft(g)373 2874 y Fr(y)33 b Fu(:=)f Fr(y)h Fo(?)f -Fr(x)p Fu(;)h Fr(x)g Fu(:=)f Fr(x)p Ft(\000)p Fr(1)373 -3042 y Ft(f)g Fr(1)h Ft(+)f Fs(INV)19 b Fu(\()p Fw(z)p -Fu(\))32 b Ft(^)h Fs(e)7 b Ft(\024)q Fr(u)1271 3057 y -Fn(1)1343 3042 y Ft(g)0 3257 y Fu(where)34 b Fs(e)39 -b Fu(is)32 b(the)h(execution)g(time)e(of)h(the)h Fr(while)p -Fu(-construct.)45 b(W)-8 b(e)33 b(can)g(no)m(w)g(apply)f(the)h(rule)0 -3377 y([while)250 3392 y Fn(e)285 3377 y Fu(])f(if)g -Fs(e)40 b Fu(ful\014ls)31 b(the)i(conditions)319 3542 -y Fs(INV)18 b Fu(\()p Fw(z)p Fu(+)p Fw(1)p Fu(\))32 b -Ft(\))g Fs(e)7 b Ft(\025)q Fr(1)p Fu(+)p Fs(e)g Fu([)p -Fr(x)p Ft(7!)q Fr(x)p Ft(\000)p Fr(1)p Fu(])319 3710 -y Fs(INV)18 b Fu(\()p Fw(0)p Fu(\))33 b Ft(\))f Fr(1)p -Ft(\024)q Fs(e)3348 3627 y Fu(\(*\))0 3871 y(and)h(w)m(e)g(will)e(get) -297 4038 y Ft(`)358 4053 y Fn(e)426 4038 y Ft(f)i(9)p -Fw(z)p Fu(.)p Fs(INV)19 b Fu(\()p Fw(z)p Fu(\))32 b Ft(g)g -Fr(while)i Ft(:)p Fu(\()p Fr(x)p Fu(=)p Fr(1)p Fu(\))f -Fr(do)g Fu(\()p Fr(y)g Fu(:=)f Fr(y)p Fo(?)p Fr(x)p Fu(;)h -Fr(x)g Fu(:=)g Fr(x)p Ft(\000)p Fr(1)p Fu(\))g Ft(f)f -Fs(e)40 b Ft(+)33 b Fs(INV)18 b Fu(\()p Fw(0)p Fu(\))33 -b Ft(g)0 4206 y Fu(The)h(requiremen)m(t)e(\(*\))h(corresp)s(onds)h(to)e -(the)h(recurrence)h(equation)244 4421 y Fs(T)13 b Fu(\()p -Fr(x)p Fu(\))33 b(=)f Fr(1)h Fu(+)f Fs(T)13 b Fu(\()p -Fr(x)p Ft(\000)p Fr(1)p Fu(\))244 4589 y Fs(T)g Fu(\()p -Fr(1)p Fu(\))33 b(=)f Fr(1)0 4804 y Fu(obtained)d(b)m(y)i(the)f -(standard)g(tec)m(hniques)i(from)d(execution)h(time)f(analysis.)42 -b(If)29 b(w)m(e)i(tak)m(e)g Fs(e)37 b Fu(to)0 4924 y(b)s(e)e -Fr(x)g Fu(then)g(\(*\))g(is)f(ful\014lled.)48 b(The)35 -b(remainder)f(of)g(the)i(pro)s(of)d(is)i(v)m(ery)h(m)m(uc)m(h)f(as)g -(in)f(Exercise)0 5045 y(6.35)e(and)h(w)m(e)g(get)g(that)f -Fs(e)965 5060 y Fn(fac)1090 5045 y Fu(m)m(ust)h(satisfy)244 -5260 y Fr(x)g Fo(>)f Fr(0)h Ft(\))f Fr(x)p Fu(+)p Fr(1)h -Ft(\024)g Fw(k)p Fo(?)p Fs(e)1133 5275 y Fn(fac)1258 -5260 y Fu(for)f(some)g(constan)m(t)i Fw(k)0 5475 y Fu(so)f -Fs(e)172 5490 y Fn(fac)297 5475 y Fu(ma)m(y)f(b)s(e)h(tak)m(en)h(to)e -(b)s(e)h Fr(x)p Fu(.)2161 b Fh(2)p eop -%%Page: 208 218 -208 217 bop 251 130 a Fw(208)1567 b(6)112 b(Axiomatic)35 -b(Program)h(V)-9 b(eri\014cation)p 251 193 3473 4 v 283 -515 a(Exercise)37 b(6.37)49 b Fu(Mo)s(dify)24 b(the)i(pro)s(of)e(of)g -(Lemma)g(6.30)g(to)h(sho)m(w)h(that)f(the)g(inference)h(system)283 -636 y(of)33 b(T)-8 b(able)32 b(6.5)g(is)g(sound.)2487 -b Fh(2)283 864 y Fw(Exercise)37 b(6.38)49 b Fu(**)43 -b(Suggest)h(an)f(alternativ)m(e)f(rule)h(for)g Fr(while)i -Fs(b)k Fr(do)44 b Fs(S)55 b Fu(that)43 b(expresses)283 -984 y(that)33 b(its)g(execution)h(time,)e(neglecting)g(constan)m(t)i -(factors,)g(is)e(the)i(pro)s(duct)f(of)g(the)g(n)m(um)m(b)s(er)283 -1105 y(of)f(times)f(the)i(lo)s(op)d(is)i(executed)i(and)e(the)h -(maximal)28 b(execution)33 b(time)e(for)g(the)i(b)s(o)s(dy)f(of)f(the) -283 1225 y(lo)s(op.)3188 b Fh(2)283 1454 y Fw(Exercise)37 -b(6.39)49 b Fu(Suggest)e(an)f(inference)h(rule)f(for)g -Fr(repeat)i Fs(S)58 b Fr(until)48 b Fs(b)6 b Fu(.)85 -b(Y)-8 b(ou)47 b(are)f(not)283 1574 y(allo)m(w)m(ed)32 -b(to)h(rely)f(on)g(the)h(existence)i(of)d(a)g Fr(while)p -Fu(-construct)i(in)e(the)h(language.)427 b Fh(2)p eop -%%Page: 209 219 -209 218 bop 0 1180 a Fv(Chapter)78 b(7)0 1595 y(F)-19 -b(urther)78 b(Reading)0 2047 y Fu(In)23 b(this)f(b)s(o)s(ok)g(w)m(e)i -(ha)m(v)m(e)g(co)m(v)m(ered)h(the)e(basic)f(ingredien)m(ts)h(in)f -(three)h(approac)m(hes)h(to)e(seman)m(tics:)145 2233 -y Ft(\017)49 b Fu(op)s(erational)30 b(seman)m(tics,)145 -2430 y Ft(\017)49 b Fu(denotational)30 b(seman)m(tics,)j(and)145 -2628 y Ft(\017)49 b Fu(axiomatic)30 b(seman)m(tics.)0 -2813 y(W)-8 b(e)39 b(ha)m(v)m(e)i(concen)m(trated)g(on)e(a)f(rather)i -(simple)d(language)h(of)h Fr(while)p Fu(-programs)g(and)g(ha)m(v)m(e)0 -2934 y(studied)d(the)h(underlying)e(theories)h(and)g(the)h(formal)c -(relationships)i(b)s(et)m(w)m(een)j(the)e(v)-5 b(arious)0 -3054 y(approac)m(hes.)83 b(The)47 b(p)s(o)m(w)m(er)f(of)f(the)h(three)g -(approac)m(hes)h(ha)m(v)m(e)g(b)s(een)f(illustrated)e(b)m(y)i(v)-5 -b(ari-)0 3174 y(ous)33 b(extensions)i(of)d Fw(While)p -Fu(:)43 b(non-determinism,)31 b(parallelism,)e(recursiv)m(e)35 -b(pro)s(cedures)f(and)0 3295 y(exceptions.)146 3415 y(W)-8 -b(e)24 b(b)s(eliev)m(e)f(that)g(formal)e(seman)m(tics)i(is)g(an)g(imp)s -(ortan)m(t)f(to)s(ol)f(for)i(reasoning)g(ab)s(out)f(man)m(y)0 -3536 y(asp)s(ects)27 b(of)d(the)i(b)s(eha)m(viour)f(of)g(programs)g -(and)g(programming)d(languages.)41 b(T)-8 b(o)25 b(supp)s(ort)h(this)0 -3656 y(b)s(elief)31 b(w)m(e)j(ha)m(v)m(e)g(giv)m(en)e(three)i -(examples,)e(one)h(for)f(eac)m(h)i(approac)m(h)f(to)f(seman)m(tics:)145 -3842 y Ft(\017)49 b Fu(a)32 b(simple)f(compiler,)145 -4039 y Ft(\017)49 b Fu(a)32 b(static)g(program)f(analysis,)h(and)145 -4236 y Ft(\017)49 b Fu(an)32 b(inference)i(system)f(for)f(execution)h -(time.)0 4422 y(In)g(conclusion)e(w)m(e)j(shall)d(pro)m(vide)h(a)g(few) -h(p)s(oin)m(ters)f(to)g(the)h(literature)e(\(mainly)f(textb)s(o)s -(oks\))0 4542 y(where)h(a)e(more)g(comprehensiv)m(e)i(treatmen)m(t)e -(of)g(language)f(features)j(or)e(theoretical)f(asp)s(ects)0 -4663 y(ma)m(y)38 b(b)s(e)h(found.)61 b(W)-8 b(e)38 b(do)h(not)f -(reference)i(the)e(v)-5 b(ast)39 b(n)m(um)m(b)s(er)g(of)f(researc)m(h)h -(publications)e(in)0 4783 y(the)c(area)f(but)h(rely)g(on)f(the)h -(references)i(in)d(the)h(b)s(o)s(oks)f(men)m(tioned.)0 -5069 y Fp(Op)t(erational)46 b(seman)l(tics)0 5254 y Fs(Structur)-5 -b(al)38 b(op)-5 b(er)g(ational)35 b(semantics)42 b Fu(w)m(as)35 -b(in)m(tro)s(duced)g(b)m(y)g(Gordon)f(Plotkin)g(in)f([14].)49 -b(This)0 5374 y(is)29 b(a)h(standard)g(reference)h(and)f(co)m(v)m(ers)i -(a)e(n)m(um)m(b)s(er)g(of)f(features)i(from)d(imp)s(erativ)m(e)g(and)i -(func-)0 5494 y(tional)36 b(languages)h(whereas)j(features)f(from)e -(parallel)e(languages)j(are)g(co)m(v)m(ered)i(in)d([15].)60 -b(A)1663 5849 y(209)p eop -%%Page: 210 220 -210 219 bop 251 130 a Fw(210)2326 b(7)112 b(F)-9 b(urther)37 -b(Reading)p 251 193 3473 4 v 283 515 a Fu(more)42 b(in)m(tro)s(ductory) -g(treatmen)m(t)g(of)g(structural)g(op)s(erational)e(seman)m(tics)i(is)g -(giv)m(en)g(in)g([9].)283 636 y Fs(Natur)-5 b(al)38 b(semantics)j -Fu(is)34 b(deriv)m(ed)i(from)d(structural)h(op)s(erational)e(seman)m -(tics)j(and)f(the)h(basic)283 756 y(ideas)e(are)f(presen)m(ted)j(in)d -([6])h(for)f(a)g(functional)f(language.)430 879 y(Although)36 -b(w)m(e)i(ha)m(v)m(e)h(co)m(v)m(ered)g(man)m(y)e(of)g(the)h(essen)m -(tial)f(ideas)g(b)s(ehind)g(op)s(erational)e(se-)283 -1000 y(man)m(tics)d(w)m(e)i(should)e(lik)m(e)g(to)h(men)m(tion)e(three) -i(tec)m(hniques)i(that)d(ha)m(v)m(e)i(had)f(to)f(b)s(e)h(omitted.)430 -1123 y(A)45 b(tec)m(hnique)h(that)f(is)g(often)g(used)h(when)g(sp)s -(ecifying)e(a)h(structural)g(op)s(erational)e(se-)283 -1243 y(man)m(tics)d(is)g(to)f(extend)j(the)e(syn)m(tactic)h(comp)s -(onen)m(t)f(of)g(the)g(con\014gurations)g(with)g(sp)s(ecial)283 -1364 y(notation)j(for)f(recording)h Fs(p)-5 b(artial)5 -b(ly)45 b(pr)-5 b(o)g(c)g(esse)g(d)44 b(c)-5 b(onstructs)p -Fu(.)76 b(The)45 b(inference)f(system)g(will)283 1484 -y(then)34 b(con)m(tain)f(axioms)g(and)g(rules)g(that)h(handle)f(these)h -(\\extended")h(con\014gurations.)46 b(This)283 1604 y(tec)m(hnique)c -(ma)m(y)f(b)s(e)g(used)g(to)g(sp)s(ecify)g(a)f(structural)g(op)s -(erational)e(seman)m(tics)j(of)f(the)h(lan-)283 1725 -y(guages)k Fw(Blo)s(c)m(k)e Fu(and)h Fw(Pro)s(c)g Fu(in)f(Section)h -(2.5)g(and)h(to)f(sp)s(ecify)g(a)g(structural)g(op)s(erational)283 -1845 y(seman)m(tics)33 b(of)f(expressions.)430 1968 y(Both)j(kinds)h -(of)f(op)s(erational)e(seman)m(tics)i(can)h(easily)e(b)s(e)i(extended)h -(to)e(cop)s(e)h(explicitly)283 2089 y(with)i Fs(dynamic)h(err)-5 -b(ors)46 b Fu(\(as)38 b(e.g.)59 b(division)37 b(b)m(y)h(zero\).)60 -b(The)39 b(idea)e(is)h(to)f(extend)i(the)g(set)f(of)283 -2209 y(con\014gurations)43 b(with)f(sp)s(ecial)g -(error-con\014gurations)g(and)g(then)i(augmen)m(t)e(the)h(inference)283 -2329 y(system)34 b(with)e(extra)h(axioms)f(and)g(rules)h(for)f(ho)m(w)h -(to)f(handle)h(these)h(con\014gurations.)430 2453 y(Often)h(programs)g -(ha)m(v)m(e)h(to)f(ful\014l)f(certain)h(conditions)f(in)g(order)i(to)f -(b)s(e)g Fs(static)-5 b(al)5 b(ly)38 b(wel)5 b(l-)283 -2573 y(forme)-5 b(d)61 b Fu(and)52 b(hence)h(preclude)f(certain)f -(dynamic)g(errors.)101 b(These)53 b(conditions)e(can)h(b)s(e)283 -2693 y(form)m(ulated)39 b(using)g(inductiv)m(ely)g(de\014ned)i -(predicates)g(and)e(ma)m(y)h(b)s(e)g(in)m(tegrated)f(with)g(the)283 -2814 y(op)s(erational)31 b(seman)m(tics.)283 3120 y Fp(Pro)l(v)-7 -b(ably)46 b(correct)f(implemen)l(tation)283 3310 y Fu(The)35 -b Fs(c)-5 b(orr)g(e)g(ctness)34 b(of)i(the)f(implementation)k -Fu(of)33 b(Chapter)h(3)f(w)m(as)h(a)f(relativ)m(ely)f(simple)g(pro)s -(of)283 3430 y(b)s(ecause)f(it)c(w)m(as)j(based)f(on)g(an)g(abstract)g -(mac)m(hine)f(designed)h(for)f(the)h(purp)s(ose.)43 b(In)29 -b(general,)283 3551 y(when)49 b(more)e(realistic)e(mac)m(hines)j(or)f -(larger)f(languages)h(are)g(considered,)53 b(pro)s(ofs)47 -b(easily)283 3671 y(b)s(ecome)42 b(un)m(wieldy)f(and)h(p)s(erhaps)g -(for)e(this)h(reason)h(there)g(is)e(no)i(ideal)d(textb)s(o)s(ok)j(in)e -(this)283 3792 y(area.)50 b(W)-8 b(e)35 b(therefore)h(only)e(reference) -i(t)m(w)m(o)g(researc)m(h)g(pap)s(ers:)48 b([7])35 b(for)f(an)h -(approac)m(h)g(based)283 3912 y(on)e(natural)e(seman)m(tics)i(and)g -([13)o(])g(for)f(an)h(approac)m(h)g(based)g(on)g(denotational)d(seman)m -(tics.)283 4218 y Fp(Denotational)48 b(seman)l(tics)283 -4408 y Fu(A)43 b(general)e(in)m(tro)s(duction)g(to)h -Fs(denotational)g(semantics)50 b Fu(\(as)42 b(dev)m(elop)s(ed)h(b)m(y)g -(C.)f(Strac)m(hey)283 4529 y(and)32 b(D.)f(Scott\))g(ma)m(y)g(b)s(e)h -(found)f(in)g([16].)43 b(It)31 b(co)m(v)m(ers)i(denotational)d(seman)m -(tics)h(for)g(\(mainly\))283 4649 y(imp)s(erativ)m(e)43 -b(languages)g(and)g(co)m(v)m(ers)j(the)e(fundamen)m(tals)f(of)h(domain) -d(theory)k(\(including)283 4769 y(re\015exiv)m(e)38 b(domains\).)52 -b(Another)36 b(go)s(o)s(d)f(reference)j(for)d(imp)s(erativ)m(e)f -(languages)i(is)f([8])h(but)g(it)283 4890 y(do)s(es)j(not)f(co)m(v)m -(er)h(the)f(domain)e(theory)-8 b(.)60 b(W)-8 b(e)39 b(should)f(also)e -(men)m(tion)h(a)h(classic)g(in)f(the)h(\014eld)283 5010 -y([17])29 b(ev)m(en)i(though)f(the)f(domain)f(theory)i(is)e(based)j(on) -e(the)h(\(b)m(y)g(no)m(w)g(obsolete\))f(approac)m(h)g(of)283 -5131 y(complete)j(lattices.)430 5254 y(W)-8 b(e)28 b(ha)m(v)m(e)h -(restricted)f(the)g(treatmen)m(t)g(of)f(domain)g(theory)h(to)f(what)h -(is)g(needed)h(for)e(sp)s(eci-)283 5374 y(fying)g(the)h(denotational)d -(seman)m(tics)j(of)f(the)g Fr(while)p Fu(-language.)42 -b(The)28 b(b)s(ene\014t)g(of)f(this)g(is)g(that)283 5494 -y(w)m(e)34 b(can)f(restrict)f(ourselv)m(es)i(to)e(partial)e(functions)i -(b)s(et)m(w)m(een)j(states)e(and)g(thereb)m(y)h(obtain)d(a)p -eop -%%Page: 211 221 -211 220 bop 3304 130 a Fw(211)p 0 193 3473 4 v 0 515 -a Fu(relativ)m(ely)28 b(simple)f(theoretical)g(dev)m(elopmen)m(t.)43 -b(The)30 b(dra)m(wbac)m(k)h(is)d(that)g(it)g(b)s(ecomes)h(rather)0 -636 y(cum)m(b)s(ersome)34 b(to)g(v)m(erify)g(the)h(existence)g(of)f -(seman)m(tic)f(sp)s(eci\014cations)h(for)g(other)g(languages)0 -756 y(\(as)f(evidenced)h(in)e(Section)g(4.5\).)146 877 -y(The)38 b(traditional)33 b(solution)h(is)i(to)g(dev)m(elop)h(a)f -Fs(meta-language)42 b Fu(for)36 b(expressing)i(denota-)0 -997 y(tional)22 b(de\014nitions.)40 b(The)26 b(theoretical)d -(foundation)g(of)h(this)g(language)g(will)e(then)j(ensure)h(that)0 -1117 y(the)36 b(seman)m(tic)g(functions)g(do)g(exist)h(as)f(long)f(as)h -(one)g(only)g(uses)h(domains)e(and)h(op)s(erations)0 -1238 y(from)d(the)h(meta-language.)46 b(The)35 b(b)s(ene\014t)g(of)f -(this)g(is)f(ob)m(vious;)i(the)g(dra)m(wbac)m(k)h(is)d(that)h(one)0 -1358 y(has)k(to)g(pro)m(v)m(e)h(a)f(fair)e(amoun)m(t)i(of)f(results)h -(but)h(the)f(e\013orts)g(are)g(greatly)f(rew)m(arded)j(in)d(the)0 -1478 y(long)31 b(run.)44 b(Both)33 b([16)o(])g(and)g([17)o(])g(con)m -(tain)f(suc)m(h)i(a)e(dev)m(elopmen)m(t.)146 1599 y(The)45 -b(denotational)c(approac)m(h)j(can)g(handle)g Fs(ab)-5 -b(ortion)50 b Fu(and)44 b Fs(non-determinism)49 b Fu(using)0 -1719 y(a)43 b(kind)g(of)g(p)s(o)m(w)m(ersets)i(called)d(p)s(o)m(w)m -(er-domains.)75 b(Certain)43 b(kinds)h(of)e Fs(p)-5 b(ar)g(al)5 -b(lelism)50 b Fu(can)43 b(b)s(e)0 1840 y(handled)33 b(as)g(w)m(ell)f -(but)h(for)f(man)m(y)h(purp)s(oses)h(it)e(is)g(b)s(etter)h(to)g(use)h -(a)e(structural)h(op)s(erational)0 1960 y(seman)m(tics)g(instead.)0 -2249 y Fp(Static)46 b(program)f(analysis)0 2434 y Fu(A)29 -b(selection)g(of)g Fs(static)j(pr)-5 b(o)g(gr)g(am)30 -b(analysis)37 b Fu(tec)m(hniques)31 b(for)e(imp)s(erativ)m(e)e -(languages)i(\(as)g(w)m(ell)0 2554 y(as)h(tec)m(hniques)i(for)d -(implemen)m(tations)e(on)j(realistic)e(mac)m(hines\))i(is)f(giv)m(en)h -(in)f([3];)i(but)f(unfor-)0 2674 y(tunately)-8 b(,)30 -b(no)g(considerations)f(of)g(correctness)j(are)d(giv)m(en.)43 -b(T)-8 b(reatmen)m(ts)30 b(of)g(correctness)h(are)0 2795 -y(often)i(based)g(on)g(abstract)f(in)m(terpretation)g(and)h([1])f(surv) -m(eys)j(a)e(n)m(um)m(b)s(er)g(of)f(approac)m(hes.)0 3084 -y Fp(Axiomatic)46 b(program)f(v)l(eri\014cation)0 3268 -y Fu(A)g(general)g(in)m(tro)s(duction)f(to)g Fs(pr)-5 -b(o)g(gr)g(am)46 b(veri\014c)-5 b(ation)p Fu(,)47 b(and)f(in)e -(particular)f Fs(axiomatic)j(se-)0 3389 y(mantics)i Fu(ma)m(y)41 -b(b)s(e)g(found)f(in)g([11].)68 b(The)42 b(presen)m(tation)f(co)m(v)m -(ers)h(a)f(\015o)m(w)m(c)m(hart)h(language,)g(a)0 3509 -y Fr(while)p Fu(-language)35 b(and)h(a)f(\(\014rst)h(order\))g -(functional)e(language)g(and)i(also)e(includes)i(a)f(study)0 -3629 y(of)30 b(expressiv)m(eness)k(\(as)c(needed)i(for)d(the)i(in)m -(tensional)d(approac)m(h)j(to)f(axiomatic)d(seman)m(tics\).)0 -3750 y(Man)m(y)32 b(b)s(o)s(oks,)g(including)e([10)o(],)i(dev)m(elop)g -(axiomatic)d(program)h(v)m(eri\014cation)h(together)h(with)0 -3870 y(practically)k(motiv)-5 b(ated)36 b(examples.)60 -b(A)38 b(go)s(o)s(d)f(in)m(tro)s(duction)g(to)g(the)i(analysis)e(of)h -Fs(r)-5 b(esour)g(c)g(e)0 3991 y(r)g(e)g(quir)g(ements)47 -b Fu(of)39 b(programs)f(is)h([2])h(and)f(the)h(form)m(ulation)c(as)k -(formal)d(inference)j(systems)0 4111 y(ma)m(y)32 b(b)s(e)g(found)g(in)f -([12].)43 b(W)-8 b(e)32 b(should)g(also)f(men)m(tion)g(a)h(classic)f -([5])h(that)g(studies)g(soundness)0 4231 y(and)37 b(completeness)h -(prop)s(erties)f(with)f(resp)s(ect)j(to)d(a)h(denotational)e(seman)m -(tics.)57 b(Rules)37 b(for)0 4352 y(pro)s(cedures)d(ma)m(y)e(b)s(e)h -(found)g(in)f([4)o(].)146 4472 y(W)-8 b(e)32 b(should)f(p)s(oin)m(t)f -(out)h(that)g(w)m(e)h(ha)m(v)m(e)h(used)f(the)g(extensional)f(approac)m -(h)g(to)g(sp)s(ecifying)0 4592 y(the)49 b(assertions)f(of)g(the)h -(inference)f(systems.)92 b(This)49 b(allo)m(ws)e(us)h(to)g(concen)m -(trate)i(on)e(the)0 4713 y Fs(formulation)39 b Fu(of)31 -b(the)h(inference)h(systems)g(without)e(ha)m(ving)h(to)f(w)m(orry)i(ab) -s(out)e(the)h Fs(existenc)-5 b(e)0 4833 y Fu(of)29 b(the)h(assertions)h -(in)e(an)g(explicit)g(assertion)g(language.)42 b(Ho)m(w)m(ev)m(er,)32 -b(it)d(is)g(more)g(common)g(to)0 4954 y(use)34 b(the)f(in)m(tensional)e -(approac)m(h)i(as)f(is)g(done)h(in)f([11].)p eop -%%Page: 212 222 -212 221 bop 251 130 a Fw(212)2326 b(7)112 b(F)-9 b(urther)37 -b(Reading)p 251 193 3473 4 v eop -%%Page: 213 223 -213 222 bop 0 1216 a Fv(App)6 b(endix)77 b(A)0 1668 y(Review)g(of)h -(Notation)0 2157 y Fu(W)-8 b(e)33 b(use)h(the)f(follo)m(wing)c -(notation:)319 2316 y Ft(9)644 b Fu(there)33 b(exists)319 -2484 y Ft(8)644 b Fu(for)32 b(all)319 2652 y Ft(f)g Fs(x)44 -b Ft(j)32 b Fo(:)17 b(:)g(:)p Fs(x)12 b Fo(:)17 b(:)g(:)32 -b Ft(g)99 b Fu(the)33 b(set)g(of)g(those)g Fs(x)44 b -Fu(suc)m(h)34 b(that)e Fo(:)17 b(:)g(:)p Fs(x)12 b Fo(:)17 -b(:)g(:)32 b Fu(holds)319 2819 y Fs(x)44 b Ft(2)33 b -Fs(X)439 b(x)44 b Fu(is)33 b(a)f(mem)m(b)s(er)g(of)g(the)h(set)g -Fs(X)319 2987 y(X)48 b Ft(\022)33 b Fs(Y)397 b Fu(set)33 -b Fs(X)49 b Fu(is)32 b(con)m(tained)h(in)f(set)h Fs(Y)319 -3155 y(X)48 b Ft([)33 b Fs(Y)408 b Ft(f)32 b Fs(z)45 -b Ft(j)32 b Fs(z)12 b Ft(2)q Fs(X)48 b Fu(or)32 b Fs(z)12 -b Ft(2)q Fs(Y)52 b Ft(g)32 b Fu(\(union\))319 3322 y -Fs(X)48 b Ft(\\)33 b Fs(Y)408 b Ft(f)32 b Fs(z)45 b Ft(j)32 -b Fs(z)12 b Ft(2)q Fs(X)48 b Fu(and)33 b Fs(z)12 b Ft(2)p -Fs(Y)52 b Ft(g)33 b Fu(\(in)m(tersection\))319 3490 y -Fs(X)48 b Ft(n)33 b Fs(Y)424 b Ft(f)32 b Fs(z)45 b Ft(j)32 -b Fs(z)12 b Ft(2)q Fs(X)48 b Fu(and)33 b Fs(z)12 b Ft(62)p -Fs(Y)52 b Ft(g)33 b Fu(\(set)g(di\013erence\))319 3657 -y Fs(X)48 b Ft(\002)33 b Fs(Y)397 b Ft(f)32 b(h)p Fs(x)12 -b Fu(,)33 b Fs(y)9 b Ft(i)32 b(j)g Fs(x)12 b Ft(2)p Fs(X)49 -b Fu(and)33 b Fs(y)9 b Ft(2)p Fs(Y)52 b Ft(g)33 b Fu(\(Cartesian)f(pro) -s(duct\))319 3825 y Ft(P)8 b Fu(\()p Fs(X)16 b Fu(\))458 -b Ft(f)32 b Fs(Z)47 b Ft(j)32 b Fs(Z)47 b Ft(\022)33 -b Fs(X)49 b Ft(g)32 b Fu(\(p)s(o)m(w)m(erset\))319 3926 -y Fg(S)388 3993 y Ft(Y)563 b(f)32 b Fs(y)42 b Ft(j)32 -b(9)q Fs(Y)19 b Ft(2)q(Y)7 b Fu(:)44 b Fs(y)9 b Ft(2)p -Fs(Y)53 b Ft(g)32 b Fu(\(so)h(that)2306 3926 y Fg(S)2375 -3993 y Ft(f)f Fs(Y)2549 4008 y Fn(1)2589 3993 y Fu(,)g -Fs(Y)2740 4008 y Fn(2)2812 3993 y Ft(g)g Fu(=)h Fs(Y)3094 -4008 y Fn(1)3134 3993 y Ft([)p Fs(Y)3292 4008 y Fn(2)3331 -3993 y Fu(\))319 4160 y Ft(;)649 b Fu(the)33 b(empt)m(y)g(set)319 -4328 y Fw(T)621 b Ft(f)32 b Fw(tt)p Fu(,)g Fw(\013)h -Ft(g)f Fu(\(truth)h(v)-5 b(alues)33 b Fw(tt)e Fu(\(true\))i(and)g -Fw(\013)g Fu(\(false\)\))319 4496 y Fw(N)611 b Ft(f)32 -b Fw(0)p Fu(,)h Fw(1)p Fu(,)g Fw(2)p Fu(,)f Fo(:)17 b(:)g(:)32 -b Ft(g)h Fu(\(natural)e(n)m(um)m(b)s(ers\))319 4663 y -Fw(Z)631 b Ft(f)32 b Fo(:)17 b(:)g(:)p Fu(,)33 b({)p -Fw(2)p Fu(,)f({)p Fw(1)p Fu(,)g Fw(0)p Fu(,)h Fw(1)p -Fu(,)g Fw(2)p Fu(,)f Fo(:)17 b(:)g(:)32 b Ft(g)h Fu(\(in)m(tegers\))319 -4831 y Fs(f)20 b Fu(:)p Fs(X)c Ft(!)p Fs(Y)362 b(f)54 -b Fu(is)32 b(a)g(total)f(function)h(from)f Fs(X)49 b -Fu(to)32 b Fs(Y)319 4998 y(X)16 b Ft(!)o Fs(Y)440 b Ft(f)32 -b Fs(f)54 b Ft(j)32 b Fs(f)21 b Fu(:)p Fs(X)16 b Ft(!)p -Fs(Y)52 b Ft(g)319 5166 y Fs(f)20 b Fu(:)p Fs(X)c Fo(,)-17 -b Ft(!)q Fs(Y)351 b(f)54 b Fu(is)32 b(a)g(partial)e(function)i(from)g -Fs(X)48 b Fu(to)33 b Fs(Y)319 5334 y(X)16 b Fo(,)-17 -b Ft(!)p Fs(Y)429 b Ft(f)32 b Fs(f)54 b Ft(j)32 b Fs(f)21 -b Fu(:)p Fs(X)16 b Fo(,)-17 b Ft(!)p Fs(Y)53 b Ft(g)0 -5494 y Fu(In)41 b(addition)e(to)h(this)g(w)m(e)i(ha)m(v)m(e)g(sp)s -(ecial)e(notations)g(for)g(functions,)i(relations,)g(predicates)1663 -5849 y(213)p eop -%%Page: 214 224 -214 223 bop 251 130 a Fw(214)2151 b(A)112 b(Review)36 -b(of)i(Notation)p 251 193 3473 4 v 283 515 a Fu(and)33 -b(transition)e(systems.)283 797 y Fp(F)-11 b(unctions)283 -981 y Fu(The)34 b(e\013ect)f(of)g(a)f(function)g Fs(f)21 -b Fu(:)p Fs(X)16 b Ft(!)p Fs(Y)52 b Fu(is)32 b(expressed)j(b)m(y)f(its) -e Fs(gr)-5 b(aph)p Fu(:)527 1141 y(graph\()p Fs(f)21 -b Fu(\))33 b(=)f Ft(f)g(h)p Fs(x)12 b Fu(,)32 b Fs(y)9 -b Ft(i2)q Fs(X)16 b Ft(\002)p Fs(Y)52 b Ft(j)33 b Fs(f)53 -b(x)44 b Fu(=)33 b Fs(y)41 b Ft(g)283 1300 y Fu(whic)m(h)23 -b(is)e(merely)g(an)h(elemen)m(t)g(of)f Ft(P)9 b Fu(\()p -Fs(X)16 b Ft(\002)p Fs(Y)k Fu(\).)i(The)h(graph)e(of)h -Fs(f)42 b Fu(has)23 b(the)f(follo)m(wing)d(prop)s(erties)429 -1460 y Ft(\017)48 b(h)p Fs(x)12 b Fu(,)32 b Fs(y)9 b -Ft(i2)q Fu(graph\()p Fs(f)20 b Fu(\))33 b(and)g Ft(h)o -Fs(x)12 b Fu(,)33 b Fs(y)1648 1423 y Fi(0)1671 1460 y -Ft(i2)p Fu(graph\()p Fs(f)21 b Fu(\))32 b(imply)f Fs(y)42 -b Fu(=)32 b Fs(y)2706 1423 y Fi(0)2729 1460 y Fu(,)h(and)429 -1648 y Ft(\017)48 b(8)q Fs(x)12 b Ft(2)p Fs(X)k Fu(:)33 -b Ft(9)p Fs(y)9 b Ft(2)q Fs(Y)19 b Fu(:)33 b Ft(h)p Fs(x)12 -b Fu(,)32 b Fs(y)9 b Ft(i2)33 b Fu(graph\()p Fs(f)20 -b Fu(\))283 1808 y(This)38 b(expresses)i(the)e(single-v)-5 -b(aluedness)37 b(of)g Fs(f)58 b Fu(and)37 b(the)h(totalit)m(y)d(of)i -Fs(f)21 b Fu(.)57 b(W)-8 b(e)38 b(sa)m(y)g(that)f Fs(f)58 -b Fu(is)283 1928 y Fs(inje)-5 b(ctive)40 b Fu(if)31 b -Fs(f)53 b(x)45 b Fu(=)32 b Fs(f)54 b(x)1186 1892 y Fi(0)1241 -1928 y Fu(implies)30 b(that)j Fs(x)44 b Fu(=)32 b Fs(x)2038 -1892 y Fi(0)2062 1928 y Fu(.)430 2049 y(A)h Fs(p)-5 b(artial)43 -b Fu(function)32 b Fs(g)9 b Fu(:)p Fs(X)16 b Fo(,)-17 -b Ft(!)p Fs(Y)53 b Fu(is)33 b(a)f(function)h(from)f(a)g(subset)j -Fs(X)2901 2064 y Fc(g)2974 2049 y Fu(of)e Fs(X)49 b Fu(to)33 -b Fs(Y)19 b Fu(,)34 b(that)e(is)283 2169 y Fs(g)9 b Fu(:)p -Fs(X)452 2184 y Fc(g)492 2169 y Ft(!)p Fs(Y)20 b Fu(.)32 -b(Again)g(one)h(ma)m(y)f(de\014ne)527 2328 y(graph\()p -Fs(g)9 b Fu(\))32 b(=)h Ft(f)f(h)p Fs(x)12 b Fu(,)32 -b Fs(y)9 b Ft(i2)p Fs(X)16 b Ft(\002)q Fs(Y)52 b Ft(j)32 -b Fs(g)41 b(x)k Fu(=)32 b Fs(y)42 b Fu(and)32 b Fs(x)12 -b Ft(2)q Fu(X)2549 2343 y Fc(g)2621 2328 y Ft(g)283 2488 -y Fu(but)32 b(no)m(w)f(only)g(an)g(analogue)f(of)g(the)h(single-v)-5 -b(aluedness)31 b(prop)s(ert)m(y)h(ab)s(o)m(v)m(e)g(is)e(satis\014ed.)43 -b(W)-8 b(e)283 2608 y(shall)33 b(write)h Fs(g)43 b(x)j -Fu(=)34 b Fs(y)43 b Fu(whenev)m(er)36 b Ft(h)p Fs(x)12 -b Fu(,)34 b Fs(y)9 b Ft(i2)q Fu(graph\()p Fs(g)g Fu(\))33 -b(and)h Fs(g)43 b(x)j Fu(=)34 b(undef)p 2778 2621 236 -4 v 35 w(whenev)m(er)i Fs(x)12 b Ft(62)q Fs(X)3689 2623 -y Fc(g)3729 2608 y Fu(,)283 2729 y(that)38 b(is)g(whenev)m(er)i -Ft(:)q(9)p Fs(y)9 b Ft(2)p Fs(Y)20 b Fu(:)38 b Ft(h)p -Fs(x)12 b Fu(,)39 b Fs(y)9 b Ft(i2)p Fu(graph\()p Fs(g)g -Fu(\).)59 b(T)-8 b(o)38 b(distinguish)f(b)s(et)m(w)m(een)j(a)e -(function)f Fs(f)283 2849 y Fu(and)26 b(a)f(partial)e(function)i -Fs(g)34 b Fu(one)25 b(often)g(calls)g Fs(f)46 b Fu(a)25 -b Fs(total)36 b Fu(function.)k(W)-8 b(e)26 b(shall)e(view)h(the)h -(partial)283 2969 y(functions)33 b(as)g(encompassing)f(the)h(total)e -(functions.)430 3090 y(F)-8 b(or)32 b(total)f(functions)h -Fs(f)1309 3105 y Fn(1)1381 3090 y Fu(and)h Fs(f)1622 -3105 y Fn(2)1694 3090 y Fu(w)m(e)g(de\014ne)h(their)e(comp)s(osition)e -Fs(f)2948 3105 y Fn(2)2988 3090 y Ft(\016)o Fs(f)3088 -3105 y Fn(1)3160 3090 y Fu(b)m(y)527 3249 y(\()p Fs(f)616 -3264 y Fn(2)656 3249 y Ft(\016)o Fs(f)756 3264 y Fn(1)796 -3249 y Fu(\))i Fs(x)45 b Fu(=)32 b Fs(f)1115 3264 y Fn(2)1154 -3249 y Fu(\()p Fs(f)1243 3264 y Fn(1)1315 3249 y Fs(x)12 -b Fu(\))283 3408 y(\(Note)43 b(that)g(the)g(opp)s(osite)f(order)h(is)f -(sometimes)f(used)j(in)e(the)h(literature.\))72 b(F)-8 -b(or)42 b(partial)283 3529 y(functions)33 b Fs(g)758 -3544 y Fn(1)830 3529 y Fu(and)f Fs(g)1073 3544 y Fn(2)1145 -3529 y Fu(w)m(e)h(de\014ne)h Fs(g)1624 3544 y Fn(2)1663 -3529 y Ft(\016)p Fs(g)1767 3544 y Fn(1)1839 3529 y Fu(similarly:)602 -3688 y(\()p Fs(g)694 3703 y Fn(2)733 3688 y Ft(\016)p -Fs(g)837 3703 y Fn(1)876 3688 y Fu(\))e Fs(x)45 b Fu(=)32 -b Fs(z)295 b Fu(if)32 b(there)h(exists)g Fs(y)42 b Fu(suc)m(h)34 -b(that)e Fs(g)2661 3703 y Fn(1)2733 3688 y Fs(x)44 b -Fu(=)33 b Fs(y)41 b Fu(and)33 b Fs(g)3263 3703 y Fn(2)3334 -3688 y Fs(y)42 b Fu(=)32 b Fs(z)602 3856 y Fu(\()p Fs(g)694 -3871 y Fn(2)733 3856 y Ft(\016)p Fs(g)837 3871 y Fn(1)876 -3856 y Fu(\))g Fs(x)45 b Fu(=)32 b(undef)p 1144 3869 -V 100 w(if)g Fs(g)1623 3871 y Fn(1)1694 3856 y Fs(x)45 -b Fu(=)32 b(undef)p 1892 3869 V 33 w(or)1479 4023 y(if)g(there)h -(exists)g Fs(y)42 b Fu(suc)m(h)34 b(that)e Fs(g)2661 -4038 y Fn(1)2733 4023 y Fs(x)44 b Fu(=)33 b Fs(y)1479 -4191 y Fu(but)g Fs(g)1712 4206 y Fn(2)1784 4191 y Fs(y)41 -b Fu(=)33 b(undef)p 1981 4204 V 283 4352 a(The)h(iden)m(tit)m(y)e -(function)g(id:)p Fs(X)16 b Ft(!)p Fs(X)48 b Fu(is)32 -b(de\014ned)i(b)m(y)527 4511 y(id)e Fs(x)44 b Fu(=)33 -b Fs(x)283 4671 y Fu(Finally)-8 b(,)28 b(if)h Fs(f)21 -b Fu(:)p Fs(X)16 b Ft(!)p Fs(Y)k Fu(,)29 b Fs(x)12 b -Ft(2)q Fs(X)46 b Fu(and)30 b Fs(y)9 b Ft(2)p Fs(Y)50 -b Fu(then)30 b(the)h(function)e Fs(f)21 b Fu([)p Fs(x)12 -b Ft(7!)p Fs(y)d Fu(]:)p Fs(X)16 b Ft(!)p Fs(Y)49 b Fu(is)30 -b(de\014ned)h(b)m(y)527 5013 y Fs(f)21 b Fu([)p Fs(x)12 -b Ft(7!)p Fs(y)d Fu(])32 b Fs(x)934 4977 y Fi(0)990 5013 -y Fu(=)1098 4838 y Fg(8)1098 4913 y(<)1098 5062 y(:)1214 -4928 y Fs(y)199 b Fu(if)32 b Fs(x)44 b Fu(=)32 b Fs(x)1804 -4892 y Fi(0)1214 5096 y Fs(f)53 b(x)1354 5059 y Fi(0)1460 -5096 y Fu(otherwise)283 5254 y(A)33 b(similar)c(notation)j(ma)m(y)g(b)s -(e)h(used)g(when)h Fs(f)54 b Fu(is)32 b(a)g(partial)e(function.)430 -5374 y(The)25 b(function)e Fs(f)45 b Fu(is)24 b(of)g -Fs(or)-5 b(der)26 b(of)h(magnitude)k(g)9 b Fu(,)25 b(written)f -Ft(O)s Fu(\()p Fs(g)9 b Fu(\),)26 b(if)d(there)h(exists)h(a)f(natural) -283 5494 y(n)m(um)m(b)s(er)33 b Fw(k)g Fu(suc)m(h)h(that)e -Ft(8)q Fs(x)12 b Fu(.)43 b Fs(f)54 b(x)44 b Ft(\024)33 -b Fw(k)g Fo(?)f Fu(\()p Fs(g)41 b(x)12 b Fu(\).)p eop -%%Page: 215 225 -215 224 bop 3304 130 a Fw(215)p 0 193 3473 4 v 0 515 -a Fp(Relations)0 700 y Fu(A)32 b Fs(r)-5 b(elation)34 -b(fr)-5 b(om)39 b(X)49 b(to)38 b(Y)52 b Fu(is)31 b(a)h(subset)i(of)e -Fs(X)16 b Ft(\002)p Fs(Y)52 b Fu(\(that)32 b(is)g(an)g(elemen)m(t)g(of) -f Ft(P)9 b Fu(\()p Fs(X)16 b Ft(\002)q Fs(Y)j Fu(\)\).)32 -b(A)0 820 y(relation)27 b Fs(on)36 b(X)44 b Fu(is)29 -b(a)f(subset)j(of)d Fs(X)16 b Ft(\002)p Fs(X)g Fu(.)29 -b(If)g Fs(f)21 b Fu(:)p Fs(X)16 b Ft(!)p Fs(Y)48 b Fu(or)29 -b Fs(f)21 b Fu(:)p Fs(X)16 b Fo(,)-17 b Ft(!)p Fs(Y)48 -b Fu(then)30 b(the)f(graph)g(of)f Fs(f)49 b Fu(is)29 -b(a)0 941 y(relation.)46 b(\(Sometimes)32 b(a)i(function)g(is)f(iden)m -(ti\014ed)h(with)f(its)h(graph)g(but)g(w)m(e)h(shall)d(k)m(eep)k(the)0 -1061 y(distinction.\))42 b(The)33 b Fs(identity)i(r)-5 -b(elation)40 b Fu(on)32 b Fs(X)49 b Fu(is)32 b(the)h(relation)244 -1253 y(I)279 1268 y Fc(X)379 1253 y Fu(=)f Ft(f)h(h)o -Fs(x)12 b Fu(,)33 b Fs(x)12 b Ft(i)32 b(j)g Fs(x)12 b -Ft(2)p Fs(X)49 b Ft(g)0 1445 y Fu(from)38 b Fs(X)56 b -Fu(to)40 b Fs(X)16 b Fu(.)40 b(When)g Fs(X)56 b Fu(is)40 -b(clear)f(from)f(the)i(con)m(text)h(w)m(e)g(shall)e(omit)e(the)j -(subscript)h Fs(X)0 1565 y Fu(and)33 b(simply)e(write)h(I.)146 -1686 y(If)37 b Fs(R)323 1701 y Fn(1)362 1686 y Ft(\022)q -Fs(X)16 b Ft(\002)p Fs(Y)56 b Fu(and)37 b Fs(R)1002 1701 -y Fn(2)1041 1686 y Ft(\022)q Fs(Y)19 b Ft(\002)q Fs(Z)50 -b Fu(the)37 b Fs(c)-5 b(omp)g(osition)42 b Fu(of)36 b -Fs(R)2304 1701 y Fn(1)2380 1686 y Fu(follo)m(w)m(ed)f(b)m(y)j -Fs(R)2975 1701 y Fn(2)3014 1686 y Fu(,)g(whic)m(h)e(w)m(e)0 -1806 y(denote)d(b)m(y)h Fs(R)525 1821 y Fn(1)564 1806 -y Ft(\005)o Fs(R)689 1821 y Fn(2)729 1806 y Fu(,)e(is)g(de\014ned)i(b)m -(y)244 1998 y Fs(R)319 2013 y Fn(1)358 1998 y Ft(\005)o -Fs(R)483 2013 y Fn(2)555 1998 y Fu(=)f Ft(f)f(h)p Fs(x)12 -b Fu(,)32 b Fs(z)12 b Ft(i)32 b(j)h(9)p Fs(y)9 b Ft(2)p -Fs(Y)20 b Fu(:)33 b Ft(h)o Fs(x)12 b Fu(,)33 b Fs(y)9 -b Ft(i2)p Fs(R)1805 2013 y Fn(1)1877 1998 y Fu(and)33 -b Ft(h)p Fs(y)9 b Fu(,)32 b Fs(z)12 b Ft(i2)p Fs(R)2453 -2013 y Fn(2)2525 1998 y Ft(g)0 2189 y Fu(Note)33 b(that)f(the)h(order)g -(of)f(comp)s(osition)e(di\013ers)j(from)e(that)h(used)i(for)e -(functions,)244 2381 y(graph\()p Fs(f)577 2396 y Fn(2)616 -2381 y Ft(\016)p Fs(f)717 2396 y Fn(1)756 2381 y Fu(\))h(=)f(graph\()p -Fs(f)1268 2396 y Fn(1)1307 2381 y Fu(\))h Ft(\005)e Fu(graph\()p -Fs(f)1793 2396 y Fn(2)1832 2381 y Fu(\))0 2573 y(and)i(that)f(w)m(e)i -(ha)m(v)m(e)g(the)f(equation)244 2765 y(I)g Ft(\005)e -Fs(R)37 b Fu(=)32 b Fs(R)37 b Ft(\005)31 b Fu(I)i(=)f -Fs(R)146 2956 y Fu(If)37 b Fs(R)j Fu(is)c(a)g(relation)e(on)i -Fs(X)52 b Fu(then)37 b(the)g Fs(r)-5 b(e\015exive)38 -b(tr)-5 b(ansitive)38 b(closur)-5 b(e)43 b Fu(is)36 b(the)h(relation)d -Fs(R)3433 2920 y Fi(\003)0 3077 y Fu(on)e Fs(X)49 b Fu(de\014ned)34 -b(b)m(y)244 3269 y Fs(R)319 3232 y Fi(\003)391 3269 y -Fu(=)e Ft(f)h(h)o Fs(x)12 b Fu(,)33 b Fs(x)794 3232 y -Fi(0)817 3269 y Ft(i)f(j)g(9)q Fu(n)p Ft(\025)p Fu(1:)44 -b Ft(9)p Fs(x)1367 3284 y Fn(1)1406 3269 y Fu(,)33 b -Fo(:)17 b(:)g(:)o Fu(,)33 b Fs(x)1697 3284 y Fn(n)1740 -3269 y Fu(:)44 b Fs(x)g Fu(=)32 b Fs(x)2065 3284 y Fn(1)2137 -3269 y Fu(and)h Fs(x)2384 3232 y Fi(0)2439 3269 y Fu(=)g -Fs(x)2605 3284 y Fn(n)948 3436 y Fu(and)g Ft(8)p Fu(i)p -Fo(<)p Fu(n:)43 b Ft(h)p Fs(x)1517 3451 y Fn(i)1540 3436 -y Fu(,)33 b Fs(x)1657 3451 y Fn(i+1)1771 3436 y Ft(i)o(2)q -Fs(R)j Ft(g)0 3628 y Fu(Note)g(that)g(b)m(y)h(taking)e(n=1)h(and)g -Fs(x)12 b Fu(=)p Fs(x)1495 3592 y Fi(0)1517 3628 y Fu(=)p -Fs(x)1650 3643 y Fn(1)1725 3628 y Fu(it)35 b(follo)m(ws)g(that)h(I)p -Ft(\022)p Fs(R)2552 3592 y Fi(\003)2592 3628 y Fu(.)54 -b(In)36 b(a)g(similar)c(w)m(a)m(y)37 b(it)0 3748 y(follo)m(ws)31 -b(that)i Fs(R)t Ft(\022)p Fs(R)759 3712 y Fi(\003)799 -3748 y Fu(.)43 b(Finally)-8 b(,)30 b(w)m(e)k(de\014ne)244 -3940 y Fs(R)319 3904 y Fn(+)411 3940 y Fu(=)e Fs(R)37 -b Ft(\005)31 b Fs(R)784 3904 y Fi(\003)0 4132 y Fu(and)i(observ)m(e)h -(that)e Fs(R)37 b Ft(\022)c Fs(R)1041 4096 y Fn(+)1133 -4132 y Ft(\022)g Fs(R)1318 4096 y Fi(\003)1357 4132 y -Fu(.)0 4419 y Fp(Predicates)0 4603 y Fu(A)h Fs(pr)-5 -b(e)g(dic)g(ate)41 b Fu(on)34 b Fs(X)51 b Fu(is)33 b(a)h(function)g -(from)f Fs(X)50 b Fu(to)34 b Fw(T)p Fu(.)g(If)g Fs(p)6 -b Fu(:)p Fs(X)16 b Ft(!)p Fw(T)34 b Fu(is)g(a)g(predicate)g(on)h -Fs(X)16 b Fu(,)34 b(the)0 4724 y(relation)d(I)393 4739 -y Fc(p)465 4724 y Fu(on)i Fs(X)48 b Fu(is)32 b(de\014ned)i(b)m(y)244 -4916 y(I)279 4931 y Fc(p)351 4916 y Fu(=)f Ft(f)f(h)p -Fs(x)12 b Fu(,)32 b Fs(x)12 b Ft(i)32 b(j)g Fs(x)12 b -Ft(2)q Fs(X)48 b Fu(and)33 b Fs(p)38 b(x)45 b Fu(=)32 -b Fw(tt)g Ft(g)0 5107 y Fu(Note)h(that)f(I)482 5122 y -Fc(p)554 5107 y Ft(\022)h Fu(I)g(and)g(that)244 5299 -y(I)279 5314 y Fc(p)351 5299 y Ft(\005)f Fs(R)k Fu(=)d -Ft(f)f(h)p Fs(x)12 b Fu(,)32 b Fs(y)9 b Ft(i)32 b(j)h -Fs(p)38 b(x)44 b Fu(=)33 b Fw(tt)e Fu(and)i Ft(h)p Fs(x)12 -b Fu(,)32 b Fs(y)9 b Ft(i2)q Fs(R)36 b Ft(g)244 5467 -y Fs(R)h Ft(\005)31 b Fu(I)469 5482 y Fc(q)540 5467 y -Fu(=)h Ft(f)g(h)p Fs(x)12 b Fu(,)32 b Fs(y)9 b Ft(i)33 -b(j)f(h)p Fs(x)12 b Fu(,)32 b Fs(y)9 b Ft(i2)p Fs(R)37 -b Fu(and)c Fs(q)41 b(y)g Fu(=)33 b Fw(tt)e Ft(g)p eop -%%Page: 216 226 -216 225 bop 251 130 a Fw(216)2151 b(A)112 b(Review)36 -b(of)i(Notation)p 251 193 3473 4 v 283 515 a Fp(T)-11 -b(ransition)46 b(systems)283 700 y Fu(A)33 b Fs(tr)-5 -b(ansition)35 b(system)40 b Fu(is)32 b(a)g(triple)f(of)h(the)h(form)527 -904 y(\(\000,T,)g Fh(\003)q Fu(\))283 1107 y(where)h(\000)e(is)g(a)g -(set)h(of)f Fs(c)-5 b(on\014gur)g(ations)p Fu(,)31 b(T)i(is)f(a)g -(subset)i(of)e(\000)g(called)f(the)i Fs(terminal)42 b -Fu(\(or)32 b Fs(\014nal)p Fu(\))283 1227 y(con\014gurations)68 -b(and)34 b Fh(\003)h Fu(is)f(a)f(relation)g(on)h(\000)f(called)g(a)h -Fs(tr)-5 b(ansition)36 b(r)-5 b(elation)p Fu(.)48 b(The)35 -b(relation)283 1348 y Fh(\003)e Fu(m)m(ust)g(satisfy)527 -1551 y Ft(8)q Fo(\015)5 b Ft(2)p Fu(T:)33 b Ft(8)q Fo(\015)947 -1515 y Fi(0)970 1551 y Ft(2)p Fu(\000:)44 b Ft(:)p Fu(\()p -Fo(\015)5 b Fh(\003)q Fo(\015)1462 1515 y Fi(0)1485 1551 -y Fu(\))283 1754 y(An)m(y)32 b(con\014guration)e Fo(\015)36 -b Fu(in)30 b(\000)p Ft(n)p Fu(T)h(suc)m(h)h(that)f(the)g(transition)e -Fo(\015)5 b Fh(\003)q Fo(\015)2717 1718 y Fi(0)2771 1754 -y Fu(holds)31 b(for)f(no)h Fo(\015)3362 1718 y Fi(0)3416 -1754 y Fu(is)f(called)283 1875 y Fs(stuck)p Fu(.)p eop -%%Page: 217 227 -217 226 bop 0 1180 a Fv(App)6 b(endix)77 b(B)0 1595 y(In)-6 -b(tro)6 b(duction)78 b(to)g(Miranda)0 1844 y(Implemen)-6 -b(tations)0 2296 y Fu(In)43 b(this)e(app)s(endix)i(w)m(e)g(giv)m(e)f -(the)h(basic)f(de\014nitions)g(needed)h(to)f(implemen)m(t)e(the)j(v)-5 -b(arious)0 2417 y(seman)m(tic)30 b(de\014nitions)g(in)g -Fw(Miranda)p Fu(.)44 b(Essen)m(tially)-8 b(,)30 b(this)g(amoun)m(ts)h -(to)f(an)h(implemen)m(tation)0 2537 y(of)h(the)h(material)d(of)i -(Chapter)h(1.)0 2870 y Fj(B.1)161 b(Abstract)52 b(syn)l(tax)0 -3089 y Fu(F)-8 b(or)43 b Fw(Num)h Fu(w)m(e)h(c)m(ho)s(ose)h(the)e -(primitiv)m(e)e(t)m(yp)s(e)k Fr(num)f Fu(of)e Fw(Miranda)p -Fu(.)80 b(F)-8 b(or)43 b Fw(V)-9 b(ar)44 b Fu(w)m(e)i(c)m(ho)s(ose)0 -3209 y(strings)32 b(of)h(c)m(haracters)g(and)g(so)g(de\014ne)h(the)f(t) -m(yp)s(e)g(synon)m(ym:)0 3413 y Fr(>)103 b(var)52 b(==)g([char])0 -3616 y Fu(F)-8 b(or)30 b(eac)m(h)h(of)f(the)h(syn)m(tactic)g -(categories)f Fw(Aexp)p Fu(,)i Fw(Bexp)e Fu(and)h Fw(Stm)e -Fu(w)m(e)j(de\014ne)g(an)e(algebraic)0 3736 y(data)47 -b(t)m(yp)s(e)h(taking)f(in)m(to)f(accoun)m(t)i(the)g(v)-5 -b(arious)46 b(p)s(ossibilities)f(men)m(tioned)i(b)m(y)h(the)g(BNF)0 -3857 y(syn)m(tax)34 b(of)e(Section)h(1.2:)0 4060 y Fr(>)103 -b(aexp)52 b(::=)g(N)g(num)g(|)f(V)h(var)g(|)f(Add)i(aexp)f(aexp)g(|)0 -4228 y(>)564 b(Mult)53 b(aexp)f(aexp)g(|)g(Sub)g(aexp)g(aexp)0 -4443 y(>)103 b(bexp)52 b(::=)g(TRUE)h(|)e(FALSE)i(|)e(Eq)h(aexp)g(aexp) -h(|)e(Le)h(aexp)g(aexp)h(|)0 4610 y(>)564 b(Neg)52 b(bexp)h(|)e(And)h -(bexp)h(bexp)0 4825 y(>)103 b(stm)g(::=)52 b(Ass)g(var)g(aexp)h(|)e -(Skip)i(|)e(Comp)h(stm)g(stm)h(|)0 4993 y(>)564 b(If)52 -b(bexp)g(stm)g(stm)g(|)g(While)h(bexp)f(stm)0 5221 y -Fw(Example)37 b(B.1)48 b Fu(The)34 b(factorial)c(statemen)m(t)j(of)f -(Exercise)i(1.1)e(is)g(represen)m(ted)j(b)m(y)1663 5849 -y(217)p eop -%%Page: 218 228 -218 227 bop 251 130 a Fw(218)1049 b(B)111 b(In)m(tro)s(duction)37 -b(to)g(Miranda)h(Implemen)m(tations)p 251 193 3473 4 -v 283 515 a Fr(>)103 b(factorial)54 b(=)d(Comp)i(\(Ass)f("y")g(\(N)g -(1\)\))283 683 y(>)975 b(\(While)53 b(\(Neg)f(\(Eq)g(\(V)g("x"\))g(\(N) -g(1\)\)\))283 851 y(>)1077 b(\(Comp)53 b(\(Ass)f("y")g(\(Mult)h(\(V)f -("y"\))g(\(V)g("x"\)\)\))283 1018 y(>)1385 b(\(Ass)52 -b("x")g(\(Sub)h(\(V)e("x"\))i(\(N)f(1\)\)\)\)\))283 1251 -y Fu(Note)41 b(that)f(this)g(is)g(a)h(represen)m(tation)g(of)f(the)h -Fs(abstr)-5 b(act)42 b(syntax)52 b Fu(of)40 b(the)h(statemen)m(t.)67 -b(One)283 1371 y(ma)m(y)33 b(b)s(e)g(in)m(terested)g(in)f(a)g(parser)i -(that)e(w)m(ould)g(translate)g(the)h(more)f(readable)g(form)527 -1578 y Fr(y)52 b(:=)g(1;)f(while)i Ft(:)p Fr(\(x)f(=)g(1\))g(do)f(\(y)h -(:=)g(y)g(*)f(x;)h(x)f(:=)h(x)g Ft(\000)f Fr(1\))283 -1785 y Fu(in)m(to)26 b(the)g(ab)s(o)m(v)m(e)h(represen)m(tation.)42 -b(Ho)m(w)m(ev)m(er,)29 b(w)m(e)e(shall)d(refrain)h(from)g(undertaking)h -(the)g(task)283 1905 y(of)33 b(implemen)m(ting)c(a)k(parser)g(as)g(w)m -(e)g(are)g(mainly)d(concerned)k(with)f(seman)m(tics.)439 -b Fh(2)283 2138 y Fw(Exercise)37 b(B.2)48 b Fu(Sp)s(ecify)22 -b(an)g(elemen)m(t)f(of)h Fr(stm)g Fu(that)g(represen)m(ts)i(the)e -(statemen)m(t)g(constructed)283 2258 y(in)32 b(Exercise)i(1.2)e(for)g -(computing)g Fs(n)40 b Fu(to)32 b(the)h(p)s(o)m(w)m(er)g(of)f -Fs(m)7 b Fu(.)1220 b Fh(2)283 2595 y Fj(B.2)161 b(Ev)-9 -b(aluation)55 b(of)f(expressions)283 2815 y Fu(W)-8 b(e)47 -b(shall)d(\014rst)i(b)s(e)g(concerned)i(with)d(the)h(represen)m(tation) -h(of)e(v)-5 b(alues)46 b(and)g(states.)84 b(The)283 2936 -y(natural)28 b(n)m(um)m(b)s(ers)i Fw(Z)f Fu(will)d(b)s(e)j(represen)m -(ted)j(b)m(y)d(the)h(t)m(yp)s(e)f Fr(num)h Fu(meaning)d(that)i(the)g -(seman)m(tic)283 3056 y(function)37 b Ft(N)51 b Fu(b)s(ecomes)37 -b(trivial.)54 b(The)38 b(truth)f(v)-5 b(alues)36 b Fw(T)h -Fu(will)e(b)s(e)i(represen)m(ted)i(b)m(y)f(the)f(t)m(yp)s(e)283 -3176 y Fr(bool)d Fu(of)e(b)s(o)s(oleans.)43 b(So)32 b(w)m(e)i(de\014ne) -g(the)f(t)m(yp)s(e)g(synon)m(yms:)283 3384 y Fr(>)103 -b(z)52 b(==)g(num)283 3551 y(>)103 b(t)52 b(==)g(bool)283 -3758 y Fu(The)32 b(set)f Fw(State)f Fu(is)g(de\014ned)i(as)f(the)g(set) -g(of)f(functions)g(from)f(v)-5 b(ariables)30 b(to)g(natural)f(n)m(um)m -(b)s(ers)283 3878 y(so)k(w)m(e)h(de\014ne:)283 4086 y -Fr(>)103 b(state)53 b(==)f(var)g(->)g(z)283 4319 y Fw(Example)37 -b(B.3)49 b Fu(The)38 b(state)g Fr(s)p 1468 4319 31 4 -v 37 w(init)g Fu(that)f(maps)g(all)e(v)-5 b(ariables)36 -b(except)j Fr(x)f Fu(to)e Fw(0)i Fu(and)f(that)283 4439 -y(maps)c Fr(x)g Fu(to)f Fw(3)g Fu(can)h(b)s(e)g(de\014ned)h(b)m(y)283 -4647 y Fr(>)103 b(s)p 494 4647 V 37 w(init)53 b("x")f(=)f(3)283 -4814 y(>)103 b(s)p 494 4814 V 37 w(init)53 b(y)154 b(=)51 -b(0)283 5021 y Fu(Note)32 b(that)g(w)m(e)g(encapsulate)g(the)g(sp)s -(eci\014c)h(v)-5 b(ariable)29 b(name)j Fr(x)f Fu(in)g(quotes)i(whereas) -g Fr(y)f Fu(can)g(b)s(e)283 5141 y(an)m(y)i(v)-5 b(ariable.)2851 -b Fh(2)430 5374 y Fu(The)35 b(functions)g Ft(A)f Fu(and)g -Ft(B)k Fu(will)32 b(b)s(e)j(called)e Fr(a)p 2119 5374 -V 37 w(val)i Fu(and)g Fr(b)p 2587 5374 V 37 w(val)g Fu(in)f(the)h -(implemen)m(tation)283 5494 y(and)e(they)h(are)e(de\014ned)i(b)m(y)g -(directly)e(translating)e(T)-8 b(ables)33 b(1.1)f(and)h(1.2)f(in)m(to)g -Fw(Miranda)p Fu(:)p eop -%%Page: 219 229 -219 228 bop 0 130 a Fw(B.2)112 b(Ev)-6 b(aluation)36 -b(of)i(expressions)1787 b(219)p 0 193 3473 4 v 0 515 -a Fr(>)103 b(a)p 211 515 31 4 v 37 w(val)52 b(::)g(aexp)g(->)g(state)h -(->)e(z)0 683 y(>)103 b(b)p 211 683 V 37 w(val)52 b(::)g(bexp)g(->)g -(state)h(->)e(t)0 898 y(>)103 b(a)p 211 898 V 37 w(val)52 -b(\(N)g(n\))g(s)410 b(=)52 b(n)0 1065 y(>)103 b(a)p 211 -1065 V 37 w(val)52 b(\(V)g(x\))g(s)410 b(=)52 b(s)f(x)0 -1233 y(>)103 b(a)p 211 1233 V 37 w(val)52 b(\(Add)g(a1)g(a2\))g(s)103 -b(=)52 b(\(a)p 1427 1233 V 37 w(val)g(a1)g(s\))g(+)f(\(a)p -2181 1233 V 38 w(val)h(a2)g(s\))0 1401 y(>)103 b(a)p -211 1401 V 37 w(val)52 b(\(Mult)h(a1)e(a2\))h(s)g(=)g(\(a)p -1427 1401 V 37 w(val)g(a1)g(s\))g(*)f(\(a)p 2181 1401 -V 38 w(val)h(a2)g(s\))0 1568 y(>)103 b(a)p 211 1568 V -37 w(val)52 b(\(Sub)g(a1)g(a2\))g(s)103 b(=)52 b(\(a)p -1427 1568 V 37 w(val)g(a1)g(s\))g(-)f(\(a)p 2181 1568 -V 38 w(val)h(a2)g(s\))0 1783 y(>)103 b(b)p 211 1783 V -37 w(val)52 b(TRUE)g(s)462 b(=)52 b(True)0 1951 y(>)103 -b(b)p 211 1951 V 37 w(val)52 b(FALSE)h(s)410 b(=)52 b(False)0 -2118 y(>)103 b(b)p 211 2118 V 37 w(val)52 b(\(Eq)g(a1)g(a2\))g(s)154 -b(=)52 b(True,)103 b(if)p 1677 2131 103 4 v 52 w(a)p -1888 2118 31 4 v 37 w(val)52 b(a1)g(s)g(=)f(a)p 2540 -2118 V 38 w(val)h(a2)f(s)0 2286 y(>)1179 b(=)52 b(False,)h(if)p -1692 2299 103 4 v 52 w(a)p 1903 2286 31 4 v 37 w(val)f(a1)g(s)f(~=)h(a) -p 2606 2286 V 37 w(val)g(a2)g(s)0 2454 y(>)103 b(b)p -211 2454 V 37 w(val)52 b(\(Le)g(a1)g(a2\))g(s)154 b(=)52 -b(True,)103 b(if)p 1677 2467 103 4 v 52 w(a)p 1888 2454 -31 4 v 37 w(val)52 b(a1)g(s)g(<=)g(a)p 2592 2454 V 37 -w(val)g(a2)g(s)0 2621 y(>)1179 b(=)52 b(False,)h(if)p -1692 2634 103 4 v 52 w(a)p 1903 2621 31 4 v 37 w(val)f(a1)g(s)f(>)h(a)p -2555 2621 V 37 w(val)g(a2)g(s)0 2789 y(>)103 b(b)p 211 -2789 V 37 w(val)52 b(\(Neg)g(b\))g(s)308 b(=)52 b(True,)103 -b(if)p 1677 2802 103 4 v 52 w(b)p 1888 2789 31 4 v 37 -w(val)52 b(b)g(s)g(=)f(False)0 2957 y(>)1179 b(=)52 b(False,)h(if)p -1692 2970 103 4 v 52 w(b)p 1903 2957 31 4 v 37 w(val)f(b)f(s)h(=)f -(True)0 3124 y(>)103 b(b)p 211 3124 V 37 w(val)52 b(\(And)g(b1)g(b2\))g -(s)103 b(=)52 b(True,)103 b(if)p 1677 3137 103 4 v 52 -w(b)p 1888 3124 31 4 v 37 w(val)52 b(b1)g(s)g(=)f(True)i(&)0 -3292 y(>)1795 b(b)p 1903 3292 V 37 w(val)52 b(b2)g(s)f(=)h(True)0 -3459 y(>)1179 b(=)52 b(False,)h(if)p 1692 3472 103 4 -v 52 w(b)p 1903 3459 31 4 v 37 w(val)f(b1)g(s)f(=)h(False)g(\\/)0 -3627 y(>)1795 b(b)p 1903 3627 V 37 w(val)52 b(b2)g(s)f(=)h(False)0 -3831 y Fw(Exercise)36 b(B.4)49 b Fu(Construct)37 b(an)f(algebraic)f -(data)g(t)m(yp)s(e)i(for)f(the)g(binary)g(n)m(umerals)g(consid-)0 -3952 y(ered)46 b(in)e(Section)h(1.3.)81 b(De\014ne)45 -b(a)g(function)f Fr(n)p 1796 3952 V 38 w(val)h Fu(that)g(asso)s(ciates) -h(a)e(n)m(um)m(b)s(er)i(\(in)e(the)0 4072 y(decimal)31 -b(system\))i(to)f(eac)m(h)i(n)m(umeral.)1968 b Fh(2)0 -4276 y Fw(Exercise)36 b(B.5)49 b Fu(De\014ne)33 b(functions)0 -4461 y Fr(>)103 b(fv)p 262 4461 V 37 w(aexp)53 b(::)e(aexp)i(->)e -([var])0 4629 y(>)103 b(fv)p 262 4629 V 37 w(bexp)53 -b(::)e(bexp)i(->)e([var])0 4814 y Fu(computing)35 b(the)i(set)g(of)f -(free)h(v)-5 b(ariables)35 b(o)s(ccurring)h(in)g(an)g(expression.)56 -b(Ensure)38 b(that)e(eac)m(h)0 4935 y(v)-5 b(ariable)31 -b(o)s(ccurs)i(at)f(most)g(once)i(in)d(the)i(resulting)f(lists.)1270 -b Fh(2)0 5139 y Fw(Exercise)36 b(B.6)49 b Fu(De\014ne)33 -b(functions)0 5324 y Fr(>)103 b(subst)p 415 5324 V 38 -w(aexp)52 b(::)g(aexp)g(->)g(var)g(->)g(aexp)g(->)g(aexp)0 -5492 y(>)103 b(subst)p 415 5492 V 38 w(bexp)52 b(::)g(bexp)g(->)g(var)g -(->)g(aexp)g(->)g(bexp)p eop -%%Page: 220 230 -220 229 bop 251 130 a Fw(220)1049 b(B)111 b(In)m(tro)s(duction)37 -b(to)g(Miranda)h(Implemen)m(tations)p 251 193 3473 4 -v 283 515 a Fu(implemen)m(ting)f(the)i(substitution)g(op)s(erations,)h -(that)f(is)g Fr(subst)p 2718 515 31 4 v 38 w(aexp)h Fs(a)46 -b(y)i(a)3242 530 y Fn(0)3321 515 y Fu(constructs)283 -636 y Fs(a)7 b Fu([)p Fs(y)i Ft(7!)q Fs(a)581 651 y Fn(0)620 -636 y Fu(])33 b(and)g Fr(subst)p 1131 636 V 38 w(bexp)g -Fs(b)39 b(y)i(a)1629 651 y Fn(0)1702 636 y Fu(constructs)34 -b Fs(b)6 b Fu([)p Fs(y)j Ft(7!)o Fs(a)2459 651 y Fn(0)2499 -636 y Fu(].)1128 b Fh(2)p eop -%%Page: 221 231 -221 230 bop 0 1182 a Fv(App)6 b(endix)77 b(C)0 1599 y(Op)6 -b(erational)77 b(Seman)-6 b(tics)77 b(in)0 1848 y(Miranda)0 -2303 y Fu(In)41 b(this)f(app)s(endix)g(w)m(e)i(implemen)m(t)c(the)j -(natural)e(seman)m(tics)i(and)f(the)h(structural)f(op)s(era-)0 -2423 y(tional)23 b(seman)m(tics)j(of)f(Chapter)h(2)f(in)g -Fw(Miranda)h Fu(and)f(sho)m(w)i(ho)m(w)f(similar)c(tec)m(hniques)27 -b(can)f(b)s(e)0 2544 y(used)h(to)f(implemen)m(t)f(an)h(in)m(terpreter)h -(for)e(the)i(abstract)g(mac)m(hine)e(and)i(the)f(co)s(de)h(generation)0 -2664 y(of)32 b(Chapter)h(3.)146 2787 y(W)-8 b(e)30 b(shall)d(need)k -(the)e(de\014nitions)g(from)e(App)s(endix)j(B)f(so)g(w)m(e)h(b)s(egin)f -(b)m(y)h(including)d(these:)0 3005 y Fr(>)103 b(\045include)p -154 3027 411 4 v 53 w("appB")0 3220 y Fu(In)46 b(Chapter)g(2)f(w)m(e)i -(distinguish)d(b)s(et)m(w)m(een)j(t)m(w)m(o)f(kinds)g(of)f -(con\014gurations,)k(in)m(termediate)0 3340 y(con\014gurations)44 -b(and)g(\014nal)f(con\014gurations.)77 b(This)45 b(is)e(captured)i(b)m -(y)g(the)f(algebraic)f(data)0 3461 y(t)m(yp)s(e:)0 3677 -y Fr(>)103 b(config)53 b(::=)f(Inter)g(stm)g(state)h(|)f(Final)g(state) -0 3892 y Fu(In)34 b(the)g(next)g(section)g(w)m(e)g(shall)e(sho)m(w)j -(ho)m(w)f(the)g(natural)f(seman)m(tics)g(can)h(b)s(e)g(implemen)m(ted)0 -4012 y(and)f(after)f(that)g(w)m(e)i(shall)d(turn)i(to)f(the)h -(structural)g(op)s(erational)d(seman)m(tics.)0 4358 y -Fj(C.1)160 b(Natural)56 b(seman)l(tics)0 4582 y Fu(Corresp)s(onding)22 -b(to)g(the)h(relation)e Ft(!)h Fu(in)f(Section)i(2.1)e(w)m(e)j(shall)d -(in)m(tro)s(duce)h(a)g(function)g Fr(ns)p 3287 4582 31 -4 v 38 w(stm)0 4702 y Fu(of)32 b(t)m(yp)s(e)0 4919 y -Fr(>)103 b(ns)p 262 4919 V 37 w(stm)52 b(::)g(config)h(->)f(config)0 -5133 y Fu(The)45 b(argumen)m(t)f(of)g(this)g(function)g(corresp)s(onds) -h(to)f(the)h(left-hand)e(side)h(of)g Ft(!)g Fu(whereas)0 -5254 y(the)c(result)g(pro)s(duced)g(will)e(corresp)s(ond)i(to)f(the)i -(righ)m(t-hand)d(side)i(of)f(the)h(relation.)63 b(This)0 -5374 y(is)45 b(p)s(ossible)g(b)s(ecause)i(Theorem)f(2.9)f(sho)m(ws)j -(that)d(the)h(relation)e(is)h(deterministic.)81 b(The)0 -5494 y(de\014nition)32 b(of)g Fr(ns)p 653 5494 V 37 w(stm)h -Fu(follo)m(ws)f(closely)g(the)h(de\014nition)e(of)i Ft(!)f -Fu(in)f(T)-8 b(able)33 b(2.1:)1663 5849 y(221)p eop -%%Page: 222 232 -222 231 bop 251 130 a Fw(222)1420 b(C)112 b(Op)s(erational)37 -b(Seman)m(tics)g(in)g(Miranda)p 251 193 3473 4 v 283 -515 a Fr(>)103 b(ns)p 545 515 31 4 v 38 w(stm)52 b(\(Inter)h(\(Ass)f(x) -f(a\))h(s\))283 683 y(>)411 b(=)51 b(Final)i(\(update)g(s)f(x)f(\(a)p -1878 683 V 38 w(val)h(a)f(s\)\))283 851 y(>)513 b(where)p -847 864 257 4 v 283 1018 a(>)g(update)53 b(s)f(x)f(v)h(y)f(=)h(v,)g(if) -p 1873 1031 103 4 v 52 w(x)f(=)h(y)283 1186 y(>)1282 -b(=)52 b(s)f(y,)h(otherwise)p 1975 1199 462 4 v 283 1401 -a(>)103 b(ns)p 545 1401 31 4 v 38 w(stm)52 b(\(Inter)h(\(Skip\))f(s\))g -(=)g(Final)g(s)283 1616 y(>)103 b(ns)p 545 1616 V 38 -w(stm)52 b(\(Inter)h(\(Comp)f(ss1)g(ss2\))h(s\))283 1783 -y(>)411 b(=)51 b(Final)i(s'')283 1951 y(>)513 b(where)p -847 1964 257 4 v 283 2118 a(>)g(Final)53 b(s')f(=)f(ns)p -1519 2118 31 4 v 38 w(stm)h(\(Inter)h(ss1)f(s\))283 2286 -y(>)513 b(Final)53 b(s'')f(=)g(ns)p 1571 2286 V 37 w(stm)g(\(Inter)h -(ss2)f(s'\))283 2501 y(>)103 b(ns)p 545 2501 V 38 w(stm)52 -b(\(Inter)h(\(If)f(b)f(ss1)h(ss2\))h(s\))283 2669 y(>)411 -b(=)51 b(Final)i(s',)f(if)p 1360 2682 103 4 v 52 w(b)p -1571 2669 31 4 v 37 w(val)g(b)g(s)283 2836 y(>)513 b(where)p -847 2849 257 4 v 283 3004 a(>)g(Final)53 b(s')f(=)f(ns)p -1519 3004 31 4 v 38 w(stm)h(\(Inter)h(ss1)f(s\))283 3219 -y(>)103 b(ns)p 545 3219 V 38 w(stm)52 b(\(Inter)h(\(If)f(b)f(ss1)h -(ss2\))h(s\))283 3386 y(>)411 b(=)51 b(Final)i(s',)f(if)p -1360 3399 103 4 v 52 w(~b)p 1622 3386 31 4 v 37 w(val)g(b)g(s)283 -3554 y(>)513 b(where)p 847 3567 257 4 v 283 3722 a(>)g(Final)53 -b(s')f(=)f(ns)p 1519 3722 31 4 v 38 w(stm)h(\(Inter)h(ss2)f(s\))283 -3936 y(>)103 b(ns)p 545 3936 V 38 w(stm)52 b(\(Inter)h(\(While)f(b)g -(ss\))g(s\))283 4104 y(>)411 b(=)51 b(Final)i(s'',)f(if)p -1411 4117 103 4 v 52 w(b)p 1622 4104 31 4 v 37 w(val)g(b)g(s)283 -4272 y(>)513 b(where)p 847 4285 257 4 v 283 4439 a(>)g(Final)53 -b(s')f(=)f(ns)p 1519 4439 31 4 v 38 w(stm)h(\(Inter)h(ss)e(s\))283 -4607 y(>)513 b(Final)53 b(s'')f(=)g(ns)p 1571 4607 V -37 w(stm)g(\(Inter)h(\(While)g(b)e(ss\))h(s'\))283 4822 -y(>)103 b(ns)p 545 4822 V 38 w(stm)52 b(\(Inter)h(\(While)f(b)g(ss\))g -(s\))283 4989 y(>)411 b(=)51 b(Final)i(s,)f(if)p 1309 -5002 103 4 v 52 w(~b)p 1571 4989 31 4 v 37 w(val)g(b)g(s)283 -5193 y Fu(Note)33 b(that)g(in)e(the)i(axiom)e(for)h(assignmen)m(t)h -Fr(update)h Fs(s)40 b(x)45 b(v)e Fu(corresp)s(onds)34 -b(to)e Fs(s)8 b Fu([)p Fs(x)k Ft(7!)p Fs(v)f Fu(].)430 -5313 y(The)33 b(seman)m(tic)g(function)f Ft(S)1484 5328 -y Fn(ns)1588 5313 y Fu(can)h(no)m(w)g(b)s(e)g(de\014ned)h(b)m(y)p -eop -%%Page: 223 233 -223 232 bop 0 130 a Fw(C.2)112 b(Structural)37 b(op)s(erational)f -(seman)m(tics)1425 b(223)p 0 193 3473 4 v 0 515 a Fr(>)52 -b(s)p 160 515 31 4 v 37 w(ns)g(ss)f(s)h(=)f(s')0 683 -y(>)667 b(where)p 718 696 257 4 v 0 851 a(>)g(Final)52 -b(s')g(=)g(ns)p 1390 851 31 4 v 37 w(stm)g(\(Inter)h(ss)f(s\))0 -1095 y Fw(Example)37 b(C.1)48 b Fu(W)-8 b(e)42 b(can)g(execute)h(the)f -(factorial)d(statemen)m(t)j(\(see)g(Example)f(B.1\))h(from)0 -1216 y(the)36 b(state)g Fr(s)p 470 1216 V 37 w(init)h -Fu(mapping)d Fr(x)h Fu(to)h Fw(3)f Fu(and)h(all)d(other)j(v)-5 -b(ariables)34 b(to)h Fw(0)h Fu(\(see)g(Example)f(B.3\).)0 -1336 y(The)f(\014nal)d(state)i Fr(s)p 713 1336 V 37 w(fac)h -Fu(is)e(obtained)g(as)h(follo)m(ws:)0 1553 y Fr(>)52 -b(s)p 160 1553 V 37 w(fac)g(=)f(s)p 555 1553 V 37 w(ns)h(factorial)i(s) -p 1310 1553 V 37 w(init)0 1768 y Fu(T)-8 b(o)33 b(get)f(the)h(\014nal)f -(v)-5 b(alue)32 b(of)g Fr(y)h Fu(w)m(e)g(ev)-5 b(aluate)33 -b Fr(s)p 1721 1768 V 37 w(fac)52 b("y")p Fu(.)1261 b -Fh(2)0 2013 y Fw(Exercise)36 b(C.2)49 b Fu(Extend)44 -b(the)e(de\014nition)f(of)h Fr(stm)g Fu(and)h Fr(ns)p -2254 2013 V 37 w(stm)g Fu(to)e(include)h(the)g Fr(repeat)p -Fu(-)0 2133 y(construct.)2976 b Fh(2)0 2378 y Fw(Exercise)36 -b(C.3)49 b Fu(De\014ne)31 b(an)f(algebraic)f(data)h(t)m(yp)s(e)h -Fr(deriv)p 2201 2378 V 38 w(tree)g Fu(represen)m(ting)h(the)f(deriv)-5 -b(a-)0 2498 y(tion)39 b(trees)h(of)f(the)i(natural)d(seman)m(tics.)65 -b(Construct)41 b(a)e(v)-5 b(arian)m(t)39 b(of)g(the)h(function)g -Fr(s)p 3221 2498 V 37 w(ns)g Fu(of)0 2619 y(t)m(yp)s(e)244 -2834 y Fr(s)p 301 2834 V 37 w(ns)52 b(::)g(stm)g(->)g(state)g(->)g -(deriv)p 1721 2834 V 38 w(tree)0 3049 y Fu(that)26 b(constructs)j(the)e -Fs(derivation)h(tr)-5 b(e)g(e)34 b Fu(for)27 b(a)f(giv)m(en)h(statemen) -m(t)g(and)g(state)g(rather)f(than)h(just)0 3169 y(the)33 -b(\014nal)f(state.)44 b(Apply)32 b(the)h(function)f(to)h(some)f -(example)g(statemen)m(ts.)663 b Fh(2)0 3516 y Fj(C.2)160 -b(Structural)54 b(op)t(erational)h(seman)l(tics)0 3740 -y Fu(When)25 b(sp)s(ecifying)f(the)h(structural)g(op)s(erational)d -(seman)m(tics)i(w)m(e)i(shall)d(need)j(to)e(test)h(whether)0 -3860 y Ft(\))41 b Fu(pro)s(duces)i(an)e(in)m(termediate)g -(con\014guration)g(or)g(a)g(\014nal)g(con\014guration.)70 -b(So)41 b(w)m(e)i(shall)0 3981 y(in)m(tro)s(duce)33 b(the)g(function)f -Fr(is)p 1092 3981 V 37 w(Final)i Fu(de\014ned)g(b)m(y:)0 -4198 y Fr(>)103 b(is)p 262 4198 V 37 w(Final)53 b(\(Inter)g(ss)e(s\))h -(=)g(False)0 4366 y(>)103 b(is)p 262 4366 V 37 w(Final)53 -b(\(Final)g(s\))e(=)h(True)0 4581 y Fu(Corresp)s(onding)33 -b(to)f(the)h(relation)d Ft(\))j Fu(w)m(e)g(de\014ne)h(the)f(function)f -Fr(sos)p 2565 4581 V 38 w(stm)h Fu(of)f(t)m(yp)s(e:)0 -4798 y Fr(>)103 b(sos)p 313 4798 V 38 w(stm)52 b(::)f(config)i(->)f -(config)0 5013 y Fu(As)26 b(in)e(the)i(previous)g(section)f(the)h -(argumen)m(t)f(of)g(this)g(function)g(will)e(corresp)s(ond)j(to)f(the)h -(con-)0 5133 y(\014guration)i(on)h(the)g(left-hand)f(side)h(of)f(the)i -(relation)d Ft(\))h Fu(and)h(the)h(result)e(will)f(corresp)s(ond)j(to)0 -5254 y(the)g(righ)m(t-hand)f(side.)43 b(Again)28 b(this)i(implemen)m -(tation)c(tec)m(hnique)31 b(is)f(only)f(p)s(ossible)g(b)s(ecause)0 -5374 y(the)38 b(seman)m(tics)g(is)g(deterministic)e(\(Exercise)j -(2.22\).)59 b(The)39 b(de\014nition)e(of)g Fr(sos)p 2961 -5374 V 38 w(stm)i Fu(follo)m(ws)0 5494 y(T)-8 b(able)32 -b(2.2)g(closely:)p eop -%%Page: 224 234 -224 233 bop 251 130 a Fw(224)1420 b(C)112 b(Op)s(erational)37 -b(Seman)m(tics)g(in)g(Miranda)p 251 193 3473 4 v 283 -515 a Fr(>)103 b(sos)p 596 515 31 4 v 38 w(stm)52 b(\(Inter)h(\(Ass)f -(x)g(a\))g(s\))283 683 y(>)462 b(=)52 b(Final)g(\(update)h(s)f(x)f(\(a) -p 1929 683 V 38 w(val)h(a)f(s\)\))283 851 y(>)565 b(where)p -899 864 257 4 v 283 1018 a(>)g(update)53 b(s)e(x)h(v)f(y)h(=)f(v,)h(if) -p 1924 1031 103 4 v 52 w(x)f(=)h(y)283 1186 y(>)1334 -b(=)51 b(s)h(y,)g(otherwise)p 2027 1199 462 4 v 283 1401 -a(>)103 b(sos)p 596 1401 31 4 v 38 w(stm)52 b(\(Inter)h(Skip)f(s\))g(=) -g(Final)g(s)283 1616 y(>)103 b(sos)p 596 1616 V 38 w(stm)52 -b(\(Inter)h(\(Comp)f(ss1)h(ss2\))f(s\))283 1783 y(>)462 -b(=)52 b(Inter)g(\(Comp)h(ss1')f(ss2\))h(s',)283 1951 -y(>)821 b(if)p 1155 1964 103 4 v 52 w(~is)p 1468 1951 -31 4 v 37 w(Final\(sos)p 1964 1951 V 40 w(stm)52 b(\(Inter)h(ss1)f -(s\)\))283 2118 y(>)565 b(where)p 899 2131 257 4 v 283 -2286 a(>)g(Inter)52 b(ss1')h(s')e(=)h(sos)p 1878 2286 -31 4 v 38 w(stm)g(\(Inter)h(ss1)f(s\))283 2501 y(>)103 -b(sos)p 596 2501 V 38 w(stm)52 b(\(Inter)h(\(Comp)f(ss1)h(ss2\))f(s\)) -283 2669 y(>)462 b(=)52 b(Inter)g(ss2)g(s',)283 2836 -y(>)821 b(if)p 1155 2849 103 4 v 52 w(is)p 1417 2836 -31 4 v 37 w(Final\(sos)p 1913 2836 V 40 w(stm)52 b(\(Inter)g(ss1)h -(s\)\))283 3004 y(>)565 b(where)p 899 3017 257 4 v 283 -3171 a(>)g(Final)52 b(s')g(=)g(sos)p 1622 3171 31 4 v -37 w(stm)g(\(Inter)h(ss1)f(s\))283 3386 y(>)103 b(sos)p -596 3386 V 38 w(stm)52 b(\(Inter)h(\(If)f(b)f(ss1)i(ss2\))f(s\))283 -3554 y(>)462 b(=)52 b(Inter)g(ss1)g(s,)g(if)p 1565 3567 -103 4 v 52 w(b)p 1776 3554 31 4 v 37 w(val)g(b)g(s)283 -3769 y(>)103 b(sos)p 596 3769 V 38 w(stm)52 b(\(Inter)h(\(If)f(b)f(ss1) -i(ss2\))f(s\))283 3936 y(>)462 b(=)52 b(Inter)g(ss2)g(s,)g(if)p -1565 3949 103 4 v 52 w(~b)p 1827 3936 31 4 v 37 w(val)g(b)g(s)283 -4151 y(>)103 b(sos)p 596 4151 V 38 w(stm)52 b(\(Inter)h(\(While)g(b)e -(ss\))h(s\))283 4319 y(>)462 b(=)52 b(Inter)g(\(If)g(b)g(\(Comp)g(ss)g -(\(While)h(b)f(ss\)\))g(Skip\))h(s)283 4479 y Fu(The)48 -b(function)f Fr(sos)p 1054 4479 V 38 w(stm)g Fu(implemen)m(ts)f(one)h -(step)h(of)f(the)g(computation.)85 b(The)48 b(function)283 -4599 y Fr(deriv)p 544 4599 V 39 w(seq)31 b Fu(de\014ned)g(b)s(elo)m(w)f -(will)e(determine)i(the)h(complete)f(deriv)-5 b(ation)28 -b(sequence)33 b(\()p Fs(even)f(if)283 4719 y(it)k(is)e(in\014nite!)12 -b Fu(\).)283 4879 y Fr(>)103 b(deriv)p 698 4879 V 39 -w(seq)52 b(\(Inter)g(ss)g(s\))283 5047 y(>)462 b(=)52 -b(\(Inter)h(ss)e(s\))h(:)g(\(deriv)p 1980 5047 V 38 w(seq)g(\(sos)p -2427 5047 V 38 w(stm)g(\(Inter)h(ss)f(s\)\)\))283 5214 -y(>)103 b(deriv)p 698 5214 V 39 w(seq)52 b(\(Final)g(s\))g(=)g([Final)h -(s])283 5374 y Fu(The)37 b(seman)m(tic)e(function)g Ft(S)1347 -5389 y Fn(sos)1478 5374 y Fu(can)g(no)m(w)i(b)s(e)e(de\014ned)i(b)m(y)g -(the)f Fw(Miranda)g Fu(function)f Fr(s)p 3544 5374 V -37 w(sos)p Fu(:)p eop -%%Page: 225 235 -225 234 bop 0 130 a Fw(C.3)112 b(Extensions)37 b(of)h(While)2038 -b(225)p 0 193 3473 4 v 0 515 a Fr(>)103 b(s)p 211 515 -31 4 v 37 w(sos)52 b(ss)g(s)f(=)h(s')0 683 y(>)769 b(where)p -820 696 257 4 v 0 851 a(>)g(Final)53 b(s')f(=)f(last)i(\(deriv)p -1953 851 31 4 v 38 w(seq)f(\(Inter)h(ss)f(s\)\))0 1091 -y Fw(Example)37 b(C.4)48 b Fu(The)30 b(deriv)-5 b(ation)27 -b(sequence)k(obtained)d(b)m(y)i(executing)f(the)g(factorial)d(state-)0 -1211 y(men)m(t)33 b(on)f(the)h(state)g Fr(s)p 846 1211 -V 37 w(init)h Fu(of)e(Example)g(B.3)g(can)h(no)m(w)h(b)s(e)e(obtained)g -(as)h(follo)m(ws:)0 1424 y Fr(>)103 b(fac)p 313 1424 -V 38 w(seq)52 b(=)f(deriv)p 913 1424 V 38 w(seq)h(\(Inter)h(factorial)h -(s)p 2079 1424 V 37 w(init\))0 1634 y Fu(W)-8 b(e)28 -b(ma)m(y)g(w)m(an)m(t)g(to)f(insp)s(ect)h(this)g(in)f(more)g(detail)f -(and)h(in)g(particular)f(w)m(e)j(ma)m(y)e(b)s(e)h(in)m(terested)0 -1755 y(in)47 b(the)i(v)-5 b(alues)48 b(of)g(the)h(v)-5 -b(ariables)47 b Fr(x)h Fu(and)h Fr(y)f Fu(in)g(the)g(v)-5 -b(arious)48 b(in)m(termediate)f(states.)91 b(T)-8 b(o)0 -1875 y(facilitate)30 b(this)i(w)m(e)i(use)f(the)g(function)0 -2087 y Fr(>)103 b(show)p 364 2087 V 38 w(seq)52 b(fv)g(l)f(=)h(lay)g -(\(map)g(show)p 1631 2087 V 38 w(config)h(l\))0 2255 -y(>)923 b(where)p 974 2268 257 4 v 0 2423 a(>)g(show)p -1184 2423 31 4 v 38 w(config)53 b(\(Final)g(s\))f(=)0 -2590 y(>)1026 b("final)52 b(state:\\n"++lay)j(\(map)e(\(show)p -2722 2590 V 38 w(val)f(s\))g(fv\))0 2758 y(>)923 b(show)p -1184 2758 V 38 w(config)53 b(\(Inter)g(ss)f(s\))f(=)0 -2926 y(>)1026 b(show)p 1077 2939 206 4 v 52 w(ss++"\\n"++lay)55 -b(\(map)d(\(show)p 2568 2926 31 4 v 38 w(val)g(s\))g(fv\))0 -3093 y(>)923 b(show)p 1184 3093 V 38 w(val)52 b(s)g(x)f(=)h(")f -(s\("++x++"\)="++shownum)57 b(\(s)52 b(x\))0 3304 y Fu(The)31 -b(function)f(call)f Fr(show)p 965 3304 V 38 w(seq)52 -b(["x","y"])i(fac)p 1874 3304 V 38 w(seq)31 b Fu(will)d(for)i(eac)m(h)i -(con\014guration)d(in)h(the)0 3424 y(deriv)-5 b(ation)34 -b(sequence)k Fr(fac)p 1027 3424 V 38 w(seq)e Fu(list)e(the)i(statemen)m -(t)g(part)f(and)g(the)h(v)-5 b(alues)35 b(of)g Fr(x)h -Fu(and)g Fr(y)f Fu(in)0 3545 y(the)e(state)g(part.)146 -3667 y(The)h(\014nal)e(state)h(of)f(the)h(deriv)-5 b(ation)31 -b(sequence)k(can)e(b)s(e)g(obtained)f(from)0 3879 y Fr(>)52 -b(s)p 160 3879 V 37 w(fac')g(=)g(s)p 607 3879 V 37 w(sos)g(factorial)h -(s)p 1412 3879 V 38 w(init)0 4090 y Fu(and)33 b(the)g(v)-5 -b(alue)32 b(obtained)g(for)g Fr(y)h Fu(is)f(obtained)g(b)m(y)h -(executing)g Fr(s)p 2371 4090 V 38 w(fac')52 b("y")p -Fu(.)559 b Fh(2)0 4329 y Fw(Exercise)36 b(C.5)49 b Fu(Extend)39 -b(the)e(de\014nition)f(of)g Fr(stm)i Fu(and)f Fr(sos)p -2274 4329 V 38 w(stm)g Fu(to)g(include)f(the)h Fr(repeat)p -Fu(-)0 4449 y(construct.)2976 b Fh(2)0 4791 y Fj(C.3)160 -b(Extensions)53 b(of)h(While)0 5013 y Fu(The)30 b(implemen)m(tation)c -(of)j(the)g(natural)f(seman)m(tics)i(of)e Fw(While)g -Fu(in)g(Section)h(C.1)h(will)c(no)m(w)k(b)s(e)0 5133 -y(extended)35 b(to)e(the)h(pro)s(cedure)g(language)e -Fw(Pro)s(c)h Fu(of)g(Section)g(2.5.)45 b(Rather)33 b(than)h(presen)m -(ting)0 5254 y(a)j(fully)e(w)m(ork)m(ed)k(out)e(implemen)m(tation)d(w)m -(e)k(shall)e(giv)m(e)h(detailed)f(instructions)g(for)h(ho)m(w)h(to)0 -5374 y(construct)e(it.)48 b(W)-8 b(e)35 b(shall)e(pa)m(y)i(sp)s(ecial)f -(atten)m(tion)g(to)g(the)h(seman)m(tics)g(of)f Fw(Pro)s(c)g -Fu(with)g(static)0 5494 y(scop)s(e)f(rules)g(for)f(v)-5 -b(ariables)31 b(as)i(w)m(ell)f(as)h(pro)s(cedures.)p -eop -%%Page: 226 236 -226 235 bop 251 130 a Fw(226)1420 b(C)112 b(Op)s(erational)37 -b(Seman)m(tics)g(in)g(Miranda)p 251 193 3473 4 v 283 -515 a(Exercise)g(C.6)49 b Fu(The)37 b(\014rst)f(step)h(will)d(b)s(e)i -(to)g(de\014ne)h(the)f(datat)m(yp)s(es)i(needed)f(to)f(represen)m(t)283 -636 y(the)d(syn)m(tax)i(and)d(the)h(seman)m(tics)g(of)f -Fw(Pro)s(c)p Fu(.)429 844 y Ft(\017)48 b Fu(Extend)40 -b(the)e(algebraic)e(data)h(t)m(yp)s(e)i Fr(stm)f Fu(with)f(the)h(new)h -(forms)e(of)g(statemen)m(ts)i(and)527 964 y(de\014ne)44 -b(algebraic)d(data)i(t)m(yp)s(es)h Fr(dec)p 1901 964 -31 4 v 38 w(V)e Fu(and)h Fr(dec)p 2385 964 V 38 w(P)g -Fu(for)f(v)-5 b(ariable)41 b(declarations)h(and)527 1085 -y(pro)s(cedure)34 b(declarations.)429 1293 y Ft(\017)48 -b Fu(De\014ne)30 b(the)g(algebraic)d(t)m(yp)s(e)j Fr(loc)g -Fu(to)f(b)s(e)h Fr(num)g Fu(suc)m(h)g(that)f(lo)s(cations)f(will)e(b)s -(e)k(n)m(um)m(b)s(ers.)527 1413 y(De\014ne)j(the)g(function)742 -1621 y Fr(new)52 b(::)g(loc)g(->)g(loc)527 1829 y Fu(suc)m(h)34 -b(that)f Fr(new)g Fu(incremen)m(ts)g(its)f(argumen)m(t)g(b)m(y)i(one.) -429 2037 y Ft(\017)48 b Fu(De\014ne)36 b(algebraic)e(t)m(yp)s(es)j -Fr(env)p 1667 2037 V 38 w(V)e Fu(and)h Fr(env)p 2137 -2037 V 38 w(P)f Fu(corresp)s(onding)h(to)f Fw(En)m(v)3199 -2052 y Fn(V)3292 2037 y Fu(and)h Fw(En)m(v)3677 2052 -y Fn(P)3729 2037 y Fu(.)527 2158 y(De\014ne)d(the)g(function)742 -2366 y Fr(upd)p 901 2366 V 38 w(P)51 b(::)h(\(dec)p 1399 -2366 V 38 w(P,)g(env)p 1744 2366 V 37 w(V,)g(env)p 2088 -2366 V 38 w(P\))g(->)g(env)p 2587 2366 V 37 w(P)527 2574 -y Fu(corresp)s(onding)33 b(to)f(up)s(d)1438 2589 y Fn(P)1490 -2574 y Fu(.)429 2782 y Ft(\017)48 b Fu(Finally)-8 b(,)37 -b(w)m(e)j(need)f(a)f(t)m(yp)s(e)i Fr(store)f Fu(corresp)s(onding)g(to)f -Fw(Store)p Fu(.)60 b(There)40 b(are)e(at)g(least)527 -2902 y(three)c(p)s(ossibilities:)40 b(One)33 b(p)s(ossibilit)m(y)e(is)h -(to)g(de\014ne)742 3110 y Fr(loc')52 b(::=)g(Loc)g(loc)g -Ft(j)f Fr(Next)742 3278 y(store)i(==)e(loc')i(->)e(z)527 -3486 y Fu(as)34 b(this)f(will)e(corresp)s(ond)j(closely)e(to)h(the)h -(de\014nition)e(of)h Fw(Store)p Fu(.)45 b(Alternativ)m(ely)-8 -b(,)33 b(one)527 3606 y(ma)m(y)e(iden)m(tify)g(the)g(sp)s(ecial)f(tok)m -(en)i(`next')h(with)d(lo)s(cation)f Fw(0)i Fu(and)g(then)h(simply)e -(de\014ne)742 3814 y Fr(store)53 b(==)e(loc)h(->)g(z)527 -4022 y Fu(The)34 b(third)e(p)s(ossibilit)m(y)e(is)i(to)g(de\014ne)742 -4230 y Fr(store)53 b(==)e(\(loc)i(->)e(z,)h(loc\))527 -4439 y Fu(where)34 b(the)f(second)h(comp)s(onen)m(t)f(corresp)s(onds)h -(to)e(the)h(v)-5 b(alue)32 b(of)g(`next'.)527 4603 y(Cho)s(ose)i(a)e -(metho)s(d)g(that)g(seems)i(appropriate)d(to)i(y)m(ou.)1066 -b Fh(2)283 4838 y Fw(Exercise)37 b(C.7)49 b Fu(Finally)33 -b(w)m(e)j(turn)g(to)m(w)m(ards)h(the)f(transition)e(systems.)54 -b(W)-8 b(e)36 b(b)s(egin)e(b)m(y)j(im-)283 4958 y(plemen)m(ting)32 -b(the)h(transition)e(system)i(for)f(v)-5 b(ariable)31 -b(declarations:)429 5166 y Ft(\017)48 b Fu(De\014ne)34 -b(an)f(algebraic)f(data)h(t)m(yp)s(e)h Fr(config)p 2134 -5166 V 38 w(D)g Fu(for)e(the)i(con\014gurations)f(of)f(the)i(transi-) -527 5286 y(tion)e(system)h(for)f(v)-5 b(ariable)31 b(declarations.)429 -5494 y Ft(\017)48 b Fu(Then)34 b(de\014ne)g(a)e(function)p -eop -%%Page: 227 237 -227 236 bop 0 130 a Fw(C.4)112 b(Pro)m(v)-6 b(ably)37 -b(correct)f(implemen)m(tation)1405 b(227)p 0 193 3473 -4 v 458 515 a Fr(ns)p 566 515 31 4 v 38 w(dec)p 757 515 -V 38 w(V)51 b(::)h(config)p 1357 515 V 38 w(D)g(->)g(config)p -1958 515 V 38 w(D)244 717 y Fu(corresp)s(onding)32 b(to)h(the)g -(relation)d Ft(!)1615 732 y Fn(D)1673 717 y Fu(.)0 915 -y(No)m(w)j(w)m(e)h(turn)f(to)f(the)h(transition)e(relation)f(for)i -(statemen)m(ts:)145 1114 y Ft(\017)49 b Fu(De\014ne)33 -b(an)f(algebraic)f(data)h(t)m(yp)s(e)h Fr(config)p 1846 -1114 V 39 w(P)f Fu(corresp)s(onding)h(to)f(the)h(con\014gurations)244 -1234 y Ft(h)p Fs(S)12 b Fu(,)32 b Fs(sto)6 b Ft(i)32 -b Fu(and)h Fs(sto)39 b Fu(of)32 b(the)h(transition)e(system.)145 -1436 y Ft(\017)49 b Fu(Next)33 b(de\014ne)h(a)e(function)458 -1637 y Fr(ns)p 566 1637 V 38 w(stm)52 b(::)g(\(env)p -1167 1637 V 38 w(V,)g(env)p 1512 1637 V 37 w(P\))g(->)g(config)p -2163 1637 V 38 w(P)g(->)g(config)p 2764 1637 V 38 w(P)244 -1839 y Fu(corresp)s(onding)32 b(to)h(the)g(transition)e(relation)f -Ft(!)p Fu(.)0 2037 y(Finally)g(de\014ne)k(a)e(function)244 -2236 y Fr(s)p 301 2236 V 37 w(ns)52 b(::)g(stm)g(->)g(store)g(->)g -(store)0 2434 y Fu(that)28 b(calls)g Fr(ns)p 529 2434 -V 37 w(stm)i Fu(with)e(appropriately)g(initialized)c(en)m(vironmen)m -(ts.)44 b(Use)29 b(the)g(function)f(on)0 2554 y(v)-5 -b(arious)35 b(example)g(statemen)m(ts)i(in)d(order)i(to)f(ensure)i -(that)f(the)g(implemen)m(tation)c(w)m(orks)37 b(as)0 -2675 y(in)m(tended.)3006 b Fh(2)0 2896 y Fw(Exercise)36 -b(C.8)49 b Fu(Mo)s(dify)37 b(the)g(implemen)m(tation)d(ab)s(o)m(v)m(e)k -(to)f(use)h(dynamic)f(scop)s(e)h(rules)f(for)0 3017 y(v)-5 -b(ariable)31 b(declarations)g(as)i(w)m(ell)f(as)h(pro)s(cedure)g -(declarations.)1062 b Fh(2)146 3238 y Fu(It)33 b(is)g(more)f -(problematic)f(to)i(extend)i(the)e(implemen)m(tation)d(to)j(handle)f -(the)i(constructs)0 3359 y(of)e(Section)h(2.4:)0 3580 -y Fw(Exercise)j(C.9)49 b Fu(Discuss)26 b(ho)m(w)f(to)g(extend)h(the)f -(implemen)m(tation)d(of)i(the)h(natural)f(seman)m(tics)0 -3700 y(in)32 b(Section)g(C.1)h(to)f(incorp)s(orate)g(the)h(constructs)h -(considered)f(in)f(Section)h(2.4.)407 b Fh(2)0 3922 y -Fw(Exercise)36 b(C.10)49 b Fu(Discuss)28 b(ho)m(w)h(to)e(extend)i(the)g -(implemen)m(tation)24 b(of)j(the)h(structural)g(op)s(er-)0 -4042 y(ational)21 b(seman)m(tics)j(of)f(Section)g(C.2)h(to)g(incorp)s -(orate)e(the)i(constructs)h(considered)g(in)e(Section)0 -4163 y(2.4.)3246 b Fh(2)0 4495 y Fj(C.4)160 b(Pro)l(v)-9 -b(ably)55 b(correct)d(implemen)l(tation)0 4714 y Fu(Rather)32 -b(than)g(presen)m(ting)g(a)g(fully)e(w)m(ork)m(ed)k(out)d -Fw(Miranda)i Fu(script)e(w)m(e)i(shall)e(pro)m(vide)h(exer-)0 -4834 y(cises)h(sho)m(wing)g(ho)m(w)g(to)g(dev)m(elop)g(an)f(implemen)m -(tation)e(corresp)s(onding)i(to)g(Chapter)i(3.)0 5055 -y Fw(Exercise)i(C.11)49 b Fu(W)-8 b(e)38 b(need)h(some)f(data)f(t)m(yp) -s(es)j(to)d(represen)m(t)j(the)e(con\014gurations)g(of)f(the)0 -5176 y(mac)m(hine:)145 5374 y Ft(\017)49 b Fu(De\014ne)27 -b(an)g(algebraic)e(data)h(t)m(yp)s(e)h Fr(am)p 1613 5374 -V 38 w(ins)g Fu(for)f(represen)m(ting)i(instructions)e(and)h(de\014ne) -244 5494 y(the)33 b(t)m(yp)s(e)g(synon)m(ym)p eop -%%Page: 228 238 -228 237 bop 251 130 a Fw(228)1420 b(C)112 b(Op)s(erational)37 -b(Seman)m(tics)g(in)g(Miranda)p 251 193 3473 4 v 742 -515 a Fr(am)p 850 515 31 4 v 37 w(code)53 b(==)f([am)p -1451 515 V 37 w(ins])527 712 y Fu(for)32 b(represen)m(ting)i(co)s(de.) -429 909 y Ft(\017)48 b Fu(De\014ne)34 b(an)g(algebraic)d(data)i(t)m(yp) -s(e)i Fr(stack)p 2084 909 V 38 w(values)g Fu(represen)m(ting)f(the)g -(elemen)m(ts)g(that)527 1029 y(ma)m(y)f(b)s(e)f(on)h(the)g(ev)-5 -b(aluation)31 b(stac)m(k)j(and)e(de\014ne)i(the)f(t)m(yp)s(e)h(synon)m -(ym)742 1226 y Fr(stack)53 b(==)e([stack)p 1515 1226 -V 39 w(values])429 1423 y Ft(\017)d Fu(De\014ne)33 b(a)g(t)m(yp)s(e)g -Fr(storage)i Fu(represen)m(ting)e(the)g(storage.)283 -1606 y(Finally)d(de\014ne)527 1790 y Fr(am)p 635 1790 -V 38 w(config)53 b(==)e(\(am)p 1338 1790 V 38 w(code,)i(stack,)g -(storage\))283 1974 y Fu(for)32 b(the)i(con\014gurations)e(of)g -Fw(AM)p Fu(.)2122 b Fh(2)283 2175 y Fw(Exercise)37 b(C.12)49 -b Fu(W)-8 b(e)38 b(can)g(then)g(turn)g(to)g(the)g(seman)m(tics)g(of)g -(the)g(mac)m(hine)f(instructions.)283 2296 y(F)-8 b(or)32 -b(this)g(w)m(e)i(pro)s(ceed)f(in)f(three)i(stages:)429 -2479 y Ft(\017)48 b Fu(First)32 b(de\014ne)i(a)e(function)g -Fr(am)p 1618 2479 V 38 w(step)h Fu(of)f(t)m(yp)s(e)742 -2676 y Fr(am)p 850 2676 V 37 w(step)53 b(::)f(am)p 1400 -2676 V 37 w(config)h(->)f(am)p 2052 2676 V 37 w(config)527 -2873 y Fu(implemen)m(ting)30 b(T)-8 b(able)32 b(3.1.)429 -3070 y Ft(\017)48 b Fu(W)-8 b(e)32 b(shall)d(also)h(b)s(e)h(in)m -(terested)h(in)e(the)h(computation)f(sequences)k(of)c -Fw(AM)h Fu(so)g(de\014ne)h(a)527 3190 y(function)742 -3387 y Fr(am)p 850 3387 V 37 w(comp)p 1091 3387 V 38 -w(seq)52 b(::)g(am)p 1590 3387 V 38 w(code)g(->)g(storage)h(->)f([am)p -2755 3387 V 37 w(config])527 3584 y Fu(that)28 b(giv)m(en)g(a)f -(sequence)k(of)c(instructions)g(and)h(an)g(initial)c(storage)j(will)f -(construct)i(the)527 3704 y(corresp)s(onding)33 b(computation)e -(sequence.)429 3901 y Ft(\017)48 b Fu(Finally)26 b(de\014ne)k(a)e -(function)g Fr(run)h Fu(corresp)s(onding)g(to)f(the)h(function)f -Ft(M)g Fu(of)g(Chapter)h(3.)283 4084 y(This)37 b(pro)m(vides)h(us)f -(with)f(an)h(in)m(terpreter)g(for)f Fw(AM)p Fu(.)h(What)f(happ)s(ens)i -(if)d(w)m(e)j(en)m(ter)g(a)e(stuc)m(k)283 4205 y(con\014guration?)2793 -b Fh(2)283 4407 y Fw(Exercise)37 b(C.13)49 b Fu(Finally)-8 -b(,)30 b(w)m(e)j(implemen)m(t)e(the)i(co)s(de)g(generation)f -(functions:)429 4590 y Ft(\017)48 b Fu(De\014ne)33 b(functions)g -(corresp)s(onding)f(to)h Ft(C)6 b(A)p Fu(,)32 b Ft(C)6 -b(B)36 b Fu(and)d Ft(C)6 b(S)i Fu(.)429 4787 y Ft(\017)48 -b Fu(De\014ne)33 b(a)g(function)f Fr(am)p 1401 4787 V -37 w(stm)i Fu(corresp)s(onding)e(to)g(the)h(function)f -Ft(S)2982 4802 y Fn(am)3080 4787 y Fu(.)283 4970 y(Apply)f(the)g -(construction)f(to)g(a)h(couple)f(of)g(examples)g(to)g(v)m(erify)h -(that)f(ev)m(erything)i(w)m(orks)g(as)283 5091 y(exp)s(ected.)2999 -b Fh(2)283 5293 y Fw(Exercise)37 b(C.14)49 b Fu(Mo)s(dify)31 -b(the)i(implemen)m(tation)c(to)j(use)h(the)g(abstract)f(mac)m(hine)g -Fw(AM)3606 5308 y Fn(2)3677 5293 y Fu(of)283 5413 y(Exercises)j(3.8)d -(and)h(3.17)f(rather)g(than)h Fw(AM)p Fu(.)1684 b Fh(2)p -eop -%%Page: 229 239 -229 238 bop 0 1181 a Fv(App)6 b(endix)77 b(D)0 1598 y(Denotational)h -(Seman)-6 b(tics)77 b(in)0 1847 y(Miranda)0 2301 y Fu(In)40 -b(this)e(app)s(endix)i(w)m(e)g(implemen)m(t)d(the)j(denotational)d -(seman)m(tics)j(of)e(Chapter)i(4)f(in)g Fw(Mi-)0 2422 -y(randa)50 b Fu(and)f(sho)m(w)h(ho)m(w)f(similar)c(tec)m(hniques)51 -b(can)e(b)s(e)g(used)h(to)e(implemen)m(t)f(the)i(static)0 -2542 y(program)31 b(analysis)h(of)g(Chapter)i(5.)146 -2664 y(W)-8 b(e)30 b(shall)d(need)k(the)e(de\014nitions)g(from)e(App)s -(endix)j(B)f(so)g(w)m(e)h(b)s(egin)f(b)m(y)h(including)d(these:)0 -2881 y Fr(>)52 b(\045include)p 103 2902 411 4 v 53 w("appB")0 -3224 y Fj(D.1)161 b(Direct)53 b(st)l(yle)g(seman)l(tics)0 -3447 y Fu(In)28 b(the)h(implemen)m(tation)c(w)m(e)k(shall)d(rely)i(on)g -(some)g(of)f(the)i(built-in)c(functions)j(of)g Fw(Miranda)p -Fu(.)0 3567 y(In)44 b(particular,)h Fr(id)g Fu(is)e(the)i(iden)m(tit)m -(y)e(function)h(and)g(`.')77 b(is)44 b(function)f(comp)s(osition.)75 -b(The)0 3687 y(auxiliary)30 b(function)j Fr(cond)g Fu(is)f(de\014ned)i -(b)m(y)0 3901 y Fr(>)52 b(cond)g(\(p,)g(g1,)g(g2\))g(s)g(=)f(g1)h(s,)g -(if)p 1487 3914 103 4 v 52 w(p)f(s)0 4069 y(>)1026 b(=)51 -b(g2)h(s,)g(if)p 1487 4082 V 52 w(~p)f(s)0 4281 y Fu(The)33 -b(theoretical)d(foundation)h(of)g Fw(Miranda)h Fu(is)f(closely)g -(related)h(to)f(the)h(theory)g(dev)m(elop)s(ed)0 4402 -y(in)45 b(Chapter)j(4)d(\(although)h(it)f(is)h(outside)g(the)g(scop)s -(e)h(of)f(this)g(b)s(o)s(ok)g(to)g(go)g(further)g(in)m(to)0 -4522 y(this\).)71 b(One)42 b(of)f(the)h(consequences)k(of)41 -b(this)h(is)f(that)g(the)i(\014xed)g(p)s(oin)m(t)e(op)s(eration)f(can)i -(b)s(e)0 4642 y(implemen)m(ted)31 b(in)h(a)g(v)m(ery)i(simple)d(w)m(a)m -(y:)0 4856 y Fr(>)52 b(fix)g(ff)f(=)h(ff)g(\(fix)g(ff\))0 -5068 y Fu(The)34 b(function)e Ft(S)650 5083 y Fn(ds)754 -5068 y Fu(can)h(no)m(w)g(b)s(e)g(implemen)m(ted)e(b)m(y)j(the)f -(function)0 5282 y Fr(>)52 b(s)p 160 5282 31 4 v 37 w(ds)g(::)f(stm)h -(->)g(state)h(->)f(state)0 5494 y Fu(A)33 b(straigh)m(tforw)m(ard)f -(rewriting)f(of)h(T)-8 b(able)32 b(4.1)h(giv)m(es:)1663 -5849 y(229)p eop -%%Page: 230 240 -230 239 bop 251 130 a Fw(230)1363 b(D)112 b(Denotational)36 -b(Seman)m(tics)h(in)g(Miranda)p 251 193 3473 4 v 283 -515 a Fr(>)52 b(s)p 443 515 31 4 v 37 w(ds)g(\(Ass)g(x)g(a\))g(s)f(=)h -(update)h(s)e(\(a)p 1915 515 V 38 w(val)h(a)f(s\))h(x)283 -683 y(>)1026 b(where)p 1360 696 257 4 v 283 851 a(>)g(update)53 -b(s)e(v)h(x)g(y)f(=)h(v,)f(if)p 2385 864 103 4 v 52 w(x)h(=)f(y)283 -1018 y(>)1795 b(=)52 b(s)f(y,)h(otherwise)p 2488 1031 -462 4 v 283 1233 a(>)g(s)p 443 1233 31 4 v 37 w(ds)g(Skip)g(=)g(id)283 -1448 y(>)g(s)p 443 1448 V 37 w(ds)g(\(Comp)h(ss1)f(ss2\))g(=)f(\(s)p -1607 1448 V 38 w(ds)h(ss2\))g(.)g(\(s)p 2260 1448 V 37 -w(ds)g(ss1\))283 1663 y(>)g(s)p 443 1663 V 37 w(ds)g(\(If)g(b)g(ss1)g -(ss2\))g(=)f(cond)i(\(b)p 1864 1663 V 37 w(val)f(b,)g(s)p -2311 1663 V 37 w(ds)g(ss1,)g(s)p 2809 1663 V 38 w(ds)f(ss2\))283 -1878 y(>)h(s)p 443 1878 V 37 w(ds)g(\(While)h(b)e(ss\))h(=)g(fix)g(ff) -283 2045 y(>)1077 b(where)p 1411 2058 257 4 v 283 2213 -a(>)g(ff)52 b(g)g(=)f(cond)i(\(b)p 2135 2213 31 4 v 37 -w(val)f(b,)g(g)f(.)h(s)p 2787 2213 V 37 w(ds)g(ss,)g(id\))283 -2400 y Fw(Example)37 b(D.1)49 b Fu(Returning)34 b(to)h(the)g(factorial) -e(statemen)m(t)i(w)m(e)h(can)g(apply)e(its)h(denotation)283 -2521 y(to)e(the)g(initial)c(state)k Fr(s)p 1149 2521 -V 37 w(init)g Fu(as)g(follo)m(ws:)283 2688 y Fr(>)52 -b(s)p 443 2688 V 37 w(final)h(=)e(s)p 941 2688 V 37 w(ds)h(factorial)i -(s)p 1696 2688 V 37 w(init)1750 b Fh(2)283 2876 y Fw(Exercise)37 -b(D.2)49 b Fu(W)-8 b(e)41 b(ma)m(y)g(b)s(e)g(in)m(terested)h(in)f(the)g -(v)-5 b(arious)40 b(iterands)h(of)g(the)g(\014xed)i(p)s(oin)m(t.)283 -2996 y(Rewrite)24 b(the)g(seman)m(tic)f(equations)h(ab)s(o)m(v)m(e)g -(so)g(that)f(eac)m(h)h(\014xed)h(p)s(oin)m(t)d(is)h(unfolded)h(at)f -(most)g(n)283 3117 y(times)28 b(where)h(n)f(is)g(an)g(additional)d -(parameter)j(to)f(the)i(functions.)42 b(Giv)m(e)28 b(examples)g(sho)m -(wing)283 3237 y(that)j(if)f(the)i(v)-5 b(alue)30 b(of)h(n)g(is)g -(su\016cien)m(tly)h(large)d(then)j(w)m(e)g(get)f(the)h(same)f(result)g -(as)g(ab)s(o)m(v)m(e.)76 b Fh(2)283 3425 y Fw(Exercise)37 -b(D.3)49 b Fu(Extend)34 b(the)f(de\014nition)e(ab)s(o)m(v)m(e)j(to)e -(handle)g(the)h Fr(repeat)p Fu(-construct.)152 b Fh(2)283 -3752 y Fj(D.2)161 b(Extensions)53 b(of)g(While)283 3971 -y Fu(It)34 b(is)e(fairly)f(straigh)m(tforw)m(ard)i(to)g(extend)h(the)g -(implemen)m(tation)c(to)j(handle)f(the)i(pro)s(cedure)283 -4091 y(language)e(and)h(the)g(exception)g(language)e(of)h(Section)h -(4.5.)283 4279 y Fw(Exercise)k(D.4)49 b Fu(Mo)s(dify)33 -b(the)h(ab)s(o)m(v)m(e)g(implemen)m(tation)d(to)i(use)i(en)m(vironmen)m -(ts)f(and)g(stores)283 4399 y(and)c(extend)g(it)f(to)f(implemen)m(t)g -(the)h(seman)m(tics)h(of)e(the)i(language)e Fw(Pro)s(c)g -Fu(of)h(Section)g(4.5.)74 b Fh(2)283 4587 y Fw(Exercise)37 -b(D.5)49 b Fu(Mo)s(dify)27 b(the)i(ab)s(o)m(v)m(e)g(implemen)m(tation)d -(to)i(use)h(con)m(tin)m(uations)f(and)g(extend)283 4707 -y(it)k(to)g(handle)h(the)g(language)e Fw(Exc)h Fu(of)g(Section)h(4.5.) -1472 b Fh(2)283 5035 y Fj(D.3)161 b(Static)54 b(program)f(analysis)283 -5254 y Fu(Rather)30 b(than)g(presen)m(ting)g(a)f(fully)f(w)m(ork)m(ed)k -(out)d Fw(Miranda)h Fu(script)g(p)s(erforming)d(the)j(dep)s(en-)283 -5374 y(dency)44 b(analysis)d(w)m(e)i(shall)d(pro)m(vide)i(a)g(rather)g -(detailed)e(list)h(of)g(instructions)g(for)h(ho)m(w)g(to)283 -5494 y(dev)m(elop)34 b(suc)m(h)g(an)e(implemen)m(tation.)p -eop -%%Page: 231 241 -231 240 bop 0 130 a Fw(D.3)112 b(Static)36 b(program)i(analysis)1864 -b(231)p 0 193 3473 4 v 0 515 a(Exercise)36 b(D.6)49 b -Fu(The)43 b(\014rst)f(step)h(will)c(b)s(e)j(to)f(implemen)m(t)f(the)i -(complete)f(lattices)g Fw(P)g Fu(and)0 636 y Fw(PState)32 -b Fu(and)h(the)g(op)s(erations)f(on)g(them:)145 839 y -Ft(\017)49 b Fu(De\014ne)31 b(an)f(algebraic)f(data)h(t)m(yp)s(e)i -Fr(property)h Fu(represen)m(ting)e(the)g(set)g Fw(P)f -Fu(of)g(prop)s(erties)244 960 y(and)j(de\014ne)g(a)g(function)f -Fr(p)p 1236 960 31 4 v 37 w(lub)h Fu(corresp)s(onding)g(to)f -Ft(t)2265 975 y Fn(P)2317 960 y Fu(.)145 1163 y Ft(\017)49 -b Fu(De\014ne)g(a)f(t)m(yp)s(e)h(synon)m(ym)h Fr(pstate)g -Fu(represen)m(ting)f(the)g(prop)s(ert)m(y)g(states.)92 -b(De\014ne)244 1283 y(the)42 b(sp)s(ecial)f(prop)s(ert)m(y)i(states)f -Fb(init)g Fu(and)g Fb(lost)p Fu(.)72 b(De\014ne)42 b(a)g(function)f -Fr(pstate)p 3286 1283 V 39 w(lub)244 1404 y Fu(corresp)s(onding)32 -b(to)h Ft(t)1056 1419 y Fn(PS)1147 1404 y Fu(.)2224 b -Fh(2)0 1632 y Fw(Exercise)36 b(D.7)49 b Fu(W)-8 b(e)33 -b(can)f(then)h(turn)f(to)g(the)g(seman)m(tic)g(equations)g(de\014ning)g -(the)h(analysis:)145 1835 y Ft(\017)49 b Fu(De\014ne)33 -b(the)g(functions)458 2039 y Fr(p)p 515 2039 V 38 w(aexp)52 -b(::)g(aexp)g(->)g(pstate)h(->)f(property)244 2242 y -Fu(corresp)s(onding)32 b(to)h Ft(P)8 b(A)32 b Fu(and)458 -2446 y Fr(p)p 515 2446 V 38 w(bexp)52 b(::)g(bexp)g(->)g(pstate)h(->)f -(property)244 2649 y Fu(corresp)s(onding)32 b(to)h Ft(P)8 -b(B)t Fu(.)145 2852 y Ft(\017)49 b Fu(De\014ne)33 b(the)g(auxiliary)d -(function)j Fr(cond)p 1713 2852 V 37 w(P)g Fu(corresp)s(onding)g(to)f -(cond)2774 2867 y Fn(P)2827 2852 y Fu(.)145 3056 y Ft(\017)49 -b Fu(De\014ne)33 b(the)g(function)458 3259 y Fr(p)p 515 -3259 V 38 w(stm)52 b(::)g(stm)g(->)f(pstate)i(->)f(pstate)244 -3463 y Fu(corresp)s(onding)36 b(to)g Ft(P)8 b(S)45 b -Fu(of)36 b(T)-8 b(able)36 b(5.2.)54 b(\(Y)-8 b(ou)37 -b(ma)m(y)f(use)h(the)g(results)g(of)f(Section)g(5.4)244 -3583 y(for)c(this.\))2782 b Fh(2)0 3811 y Fw(Exercise)36 -b(D.8)49 b Fu(Implemen)m(t)35 b(the)h(algorithm)c(of)j(Section)h(5.2)f -(and)h(apply)f(the)h(implemen-)0 3932 y(tation)31 b(to)h(a)h(couple)f -(of)g(examples)h(to)f(v)m(erify)h(that)f(ev)m(erything)i(w)m(orks)g(as) -f(exp)s(ected.)198 b Fh(2)p eop -%%Page: 232 242 -232 241 bop 251 130 a Fw(232)1363 b(D)112 b(Denotational)36 -b(Seman)m(tics)h(in)g(Miranda)p 251 193 3473 4 v eop -%%Page: 233 243 -233 242 bop 0 1180 a Fv(Bibliograph)-6 b(y)49 1632 y -Fu([1])49 b(S.)40 b(Abramsky)-8 b(,)42 b(C.)f(Hankin:)58 -b Fs(A)n(bstr)-5 b(act)41 b(Interpr)-5 b(etation)41 b(of)h(De)-5 -b(clar)g(ative)40 b(L)-5 b(anguages)p Fu(,)201 1752 y(Ellis)30 -b(Horw)m(o)s(o)s(d)i(\(1987\).)49 1950 y([2])49 b(A.)39 -b(V.)g(Aho,)i(J.)f(E.)f(Hop)s(croft,)i(J.)e(D.)g(Ullman:)54 -b Fs(Data)41 b(Structur)-5 b(es)42 b(and)e(A)n(lgorithms)p -Fu(,)201 2071 y(Addison{W)-8 b(esley)33 b(\(1982\).)49 -2269 y([3])49 b(A.)39 b(V.)g(Aho,)i(R.)e(Sethi,)i(J.)f(D.)e(Ullman:)55 -b Fs(Compilers:)g(Principles,)42 b(T)-7 b(e)i(chniques)39 -b(and)201 2389 y(T)-7 b(o)i(ols)p Fu(,)31 b(Addison{W)-8 -b(esley)33 b(\(1986\).)49 2587 y([4])49 b(K.)33 b(R.)g(Apt:)45 -b Fs(T)-7 b(en)35 b(Y)-7 b(e)i(ars)35 b(of)g(Ho)-5 b(ar)g(e's)36 -b(L)-5 b(o)g(gic:)45 b(A)36 b(Survey)g(|)f(Part)h(1)p -Fu(,)e(A)m(CM)g(T)-8 b(oplas)33 b Fw(3)201 2707 y Fu(4)f(\(1981\).)49 -2905 y([5])49 b(J.)25 b(W.)h(de)h(Bakk)m(er:)41 b Fs(Mathematic)-5 -b(al)28 b(The)-5 b(ory)28 b(of)h(Pr)-5 b(o)g(gr)g(am)28 -b(Corr)-5 b(e)g(ctness)p Fu(,)26 b(Pren)m(tice-Hall)201 -3026 y(\(1980\).)49 3224 y([6])49 b(D.)36 b(Cl)m(\023)-46 -b(emen)m(t,)38 b(J.)g(Desp)s(eyroux,)h(T.)f(Desp)s(eyroux,)i(G.)d -(Kahn:)52 b(A)37 b(simple)f(applicativ)m(e)201 3344 y(language:)57 -b(Mini-ML,)39 b Fs(Pr)-5 b(o)g(c)g(e)g(e)g(dings)41 b(of)h(the)g(1986)f -(A)n(CM)h(Confer)-5 b(enc)g(e)41 b(on)g(Lisp)h(and)201 -3464 y(F)-7 b(unctional)33 b(Pr)-5 b(o)g(gr)g(amming)31 -b Fu(\(1986\).)49 3662 y([7])49 b(J.)i(Desp)s(eyroux:)83 -b(Pro)s(of)51 b(of)h(translation)d(in)i(natural)g(seman)m(tics,)57 -b Fs(Pr)-5 b(o)g(c)g(e)g(e)g(dings)51 b(of)201 3783 y(Symp)-5 -b(osium)37 b(on)g(L)-5 b(o)g(gic)37 b(in)h(Computer)f(Scienc)-5 -b(e)p Fu(,)36 b(Cam)m(bridge,)g(Massac)m(h)m(usetts,)k(USA)201 -3903 y(\(1986\).)49 4101 y([8])49 b(M.)33 b(J.)g(C.)g(Gordon:)43 -b Fs(The)35 b(Denotational)f(Description)g(of)h(Pr)-5 -b(o)g(gr)g(amming)33 b(L)-5 b(anguages,)201 4221 y(A)n(n)34 -b(Intr)-5 b(o)g(duction)p Fu(,)32 b(Springer-V)-8 b(erlag)31 -b(\(1979\).)49 4419 y([9])49 b(M.)c(Hennessy:)71 b Fs(The)46 -b(Semantics)f(of)h(Pr)-5 b(o)g(gr)g(amming)45 b(L)-5 -b(anguages:)67 b(A)n(n)46 b(Elementary)201 4540 y(Intr)-5 -b(o)g(duction)34 b(using)g(Structur)-5 b(al)36 b(Op)-5 -b(er)g(ational)34 b(Semantics)p Fu(,)d(Wiley)h(\(1991\).)0 -4738 y([10])49 b(C.)g(B.)g(Jones:)77 b Fs(Softwar)-5 -b(e)50 b(Development:)73 b(A)50 b(R)n(igor)-5 b(ous)49 -b(Appr)-5 b(o)g(ach)p Fu(,)53 b(Pren)m(tice-Hall)201 -4858 y(\(1980\).)0 5056 y([11])c(J.)54 b(Lo)s(ec)m(kx,)62 -b(K.)54 b(Sieb)s(er:)88 b Fs(The)54 b(F)-7 b(oundations)54 -b(of)h(Pr)-5 b(o)g(gr)g(am)54 b(V)-7 b(eri\014c)i(ation)p -Fu(,)59 b(Wiley{)201 5176 y(T)-8 b(eubner)34 b(Series)f(in)e(Computer)i -(Science)g(\(1984\).)0 5374 y([12])49 b(H.)34 b(R.)h(Nielson:)47 -b(A)35 b(Hoare-lik)m(e)f(pro)s(of)f(system)j(for)e(run-time)g(analysis) -g(of)g(programs,)201 5494 y Fs(Scienc)-5 b(e)33 b(of)i(Computer)f(Pr)-5 -b(o)g(gr)g(amming)p Fu(,)32 b(v)m(ol)g(9)g(\(1987\).)1663 -5849 y(233)p eop -%%Page: 234 244 -234 243 bop 251 130 a Fw(234)2676 b(Bibliograph)m(y)p -251 193 3473 4 v 283 515 a Fu([13])49 b(F.)29 b(Nielson,)g(H.)g(R.)h -(Nielson:)40 b(Tw)m(o-lev)m(el)30 b(seman)m(tics)f(and)h(co)s(de)f -(generation,)g Fs(The)-5 b(or)g(et-)484 636 y(ic)g(al)34 -b(Computer)h(Scienc)-5 b(e)p Fu(,)31 b(v)m(ol)h(56)h(\(1988\).)283 -839 y([14])49 b(G.)22 b(D.)f(Plotkin:)38 b Fs(A)25 b(Structur)-5 -b(al)27 b(appr)-5 b(o)g(ach)24 b(to)h(Op)-5 b(er)g(ational)25 -b(Semantics)p Fu(,)e(Lecture)g(notes,)484 960 y(D)m(AIMI)33 -b(FN-19,)f(Aarh)m(us)h(Univ)m(ersit)m(y)-8 b(,)33 b(Denmark)f(\(1981,)g -(reprin)m(ted)h(1991\).)283 1163 y([15])49 b(G.)34 b(D.)f(Plotkin:)45 -b(An)35 b(op)s(erational)c(seman)m(tics)k(for)e(CSP)-8 -b(,)35 b(in:)46 b Fs(F)-7 b(ormal)34 b(Description)h(of)484 -1283 y(Pr)-5 b(o)g(gr)g(amming)28 b(Conc)-5 b(epts)29 -b(II)p Fu(,)d(Pro)s(ceedings)i(of)e(TC-2)h(W)-8 b(ork.)28 -b(Conf.)f(\(ed.)g(D.)g(Bj\034rner\),)484 1404 y(North{Holland)k -(\(1982\).)283 1607 y([16])49 b(D.)32 b(A.)h(Sc)m(hmidt:)44 -b Fs(Denotational)33 b(Semantics:)44 b(a)35 b(Metho)-5 -b(dolo)g(gy)35 b(for)g(L)-5 b(anguage)34 b(Devel-)484 -1727 y(opment)p Fu(,)e(Allyn)f(&)i(Bacon,)g(Inc.)g(\(1986\).)283 -1931 y([17])49 b(J.)42 b(E.)h(Sto)m(y:)63 b Fs(Denotational)42 -b(Semantics:)62 b(The)43 b(Sc)-5 b(ott{Str)g(achey)43 -b(Appr)-5 b(o)g(ach)43 b(to)h(Pr)-5 b(o-)484 2051 y(gr)g(amming)34 -b(L)-5 b(anguage)34 b(The)-5 b(ory)p Fu(,)32 b(MIT)i(Press)g(\(1977\).) -p eop -%%Page: 235 245 -235 244 bop 0 974 a Fv(Index)77 b(of)h(Sym)-6 b(b)6 b(ols)0 -1446 y Fu(\()p Fw(P)p Fu(,)32 b Ft(v)251 1461 y Fn(P)304 -1446 y Fu(\),)g(136)0 1567 y(\()p Fw(PState)p Fu(,)g -Ft(v)506 1582 y Fn(PS)598 1567 y Fu(\),)h(140)0 1687 -y(\()p Fw(PState)f Ft(!)g Fw(PState)p Fu(,)g Ft(v)p Fu(\),)i(148)0 -1807 y(\()p Fw(State)f Fo(,)-17 b Ft(!)32 b Fw(State)p -Fu(,)h Ft(v)p Fu(\),)g(93)0 1928 y(\()p Fs(D)9 b Fu(,)33 -b Ft(v)258 1943 y Fc(D)322 1928 y Fu(\),)g(95)0 2124 -y Ft(\001)17 b(\001)g(\001)n Fu([)p Ft(\001)g(\001)g(\001)o(7\000)-17 -b(!\001)17 b(\001)g(\001)n Fu(],)33 b(51)0 2244 y Ft(\001)17 -b(\001)g(\001)n Fu([)p Ft(\001)g(\001)g(\001)o(7!\001)g(\001)g(\001)m -Fu(],)33 b(16,)f(17,)g(177,)g(214)0 2365 y Ft(\001)17 -b(\001)g(\001)n(\021)33 b(\001)17 b(\001)g(\001)n Fu(rel)p -342 2378 109 4 v 32 w Ft(\001)g(\001)g(\001)o Fu(,)32 -b(137,)g(138)0 2485 y Ft(\001)17 b(\001)g(\001)n(`)33 -b(\001)17 b(\001)g(\001)n(!)32 b(\001)17 b(\001)g(\001)n -Fu(,)33 b(54,)f(58)0 2605 y Ft(\016)p Fu(,)g(214)0 2726 -y Ft(\005)p Fu(,)f(215)0 2846 y Fo(,)-17 b Ft(!)p Fu(,)33 -b(213)0 2966 y Ft(!)p Fu(,)f(213)0 3087 y Fh(\003)p Fu(,)h(64)0 -3207 y Ft(\))p Fu(,)f(32)0 3328 y Ft(!)p Fu(,)g(20)0 -3448 y Ft(!)100 3412 y Fc(t)129 3448 y Fu(,)h(202)0 3568 -y Ft(!)100 3583 y Fc(D)164 3568 y Fu(,)f(51,)g(58)0 3689 -y Ft(!)100 3704 y Fn(Aexp)264 3689 y Fu(,)h(31)0 3809 -y Ft(!)100 3824 y Fn(Bexp)262 3809 y Fu(,)f(32)0 3930 -y Ft(t)p Fu(,)h(136)0 3983 y Fg(F)69 4050 y Fu(,)g(97,)f(99,)g(136,)g -(140,)g(148)0 4170 y Ft(?)p Fu(,)h(95)0 4291 y Ft(v)p -Fu(,)g(95,)f(136,)g(140,)g(148)0 4411 y Ft(w)p Fu(,)h(95)0 -4531 y Ft(`)p Fu(,)f(180,)g(192,)g(203)0 4652 y Ft(j)-17 -b Fu(=,)33 b(184,)e(191,)h(203)0 4772 y Ft(:)p Fu(,)h(177)0 -4893 y Ft(_)p Fu(,)g(177)0 5013 y Ft(^)p Fu(,)g(177)0 -5133 y Ft(\))p Fu(,)f(177)0 5254 y Ft(f)g Fs(P)43 b Ft(g)33 -b Fs(S)44 b Ft(f)32 b Fs(Q)42 b Ft(g)p Fu(,)32 b(176)0 -5374 y Ft(f)g Fs(P)43 b Ft(g)33 b Fs(S)44 b Ft(f)32 b(+)h -Fs(Q)41 b Ft(g)p Fu(,)33 b(191)0 5494 y Ft(f)f Fs(P)43 -b Ft(g)33 b Fs(S)44 b Ft(f)32 b Fs(e)40 b Ft(+)32 b Fs(Q)42 -b Ft(g)p Fu(,)33 b(202)1882 1446 y Fs(f)1932 1410 y Fn(n)1976 -1446 y Fu(,)f(104)1882 1567 y Fs(R)1957 1531 y Fi(\003)1996 -1567 y Fu(,)h(215)1882 1688 y Fs(R)1957 1652 y Fn(+)2016 -1688 y Fu(,)f(215)1882 1899 y Ft(A)o Fu(,)h(12)1882 2020 -y Ft(B)s Fu(,)g(14)1882 2141 y Ft(C)6 b(A)o Fu(,)33 b(70)1882 -2262 y Ft(C)6 b(B)s Fu(,)33 b(70)1882 2383 y Ft(C)6 b(S)i -Fu(,)32 b(71)1882 2504 y Ft(D)1961 2467 y Fn(P)1961 2528 -y(ds)2032 2504 y Fu(,)h(121)1882 2624 y Ft(D)1961 2588 -y Fn(V)1961 2649 y(ds)2032 2624 y Fu(,)g(120)1882 2745 -y Ft(M)o Fu(,)g(68)1882 2866 y Ft(N)14 b Fu(,)33 b(9)1882 -2987 y Ft(O)s Fu(\()p Fs(g)9 b Fu(\),)32 b(214)1882 3108 -y Ft(P)8 b Fu(,)33 b(213)1882 3229 y Ft(P)8 b(A)p Fu(,)32 -b(142)1882 3349 y Ft(P)8 b(A)2039 3364 y Fc(X)2106 3349 -y Fu(,)33 b(161)1882 3470 y Ft(P)8 b(B)s Fu(,)33 b(142)1882 -3591 y Ft(P)8 b(B)2027 3606 y Fc(X)2095 3591 y Fu(,)32 -b(161)1882 3712 y Ft(P)8 b(S)g Fu(,)32 b(144)1882 3833 -y Ft(P)8 b(S)2027 3848 y Fc(X)2094 3833 y Fu(,)33 b(161)1882 -3954 y Ft(S)1949 3969 y Fn(am)2048 3954 y Fu(,)f(72)1882 -4075 y Ft(S)1949 4090 y Fn(cs)2013 4075 y Fu(,)g(130)1882 -4195 y Ft(S)1949 4159 y Fi(0)1949 4220 y Fn(cs)2013 4195 -y Fu(,)g(128)1882 4316 y Ft(S)1949 4331 y Fn(ds)2021 -4316 y Fu(,)g(85,)g(122)1882 4437 y Ft(S)1949 4401 y -Fi(0)1949 4462 y Fn(ds)2021 4437 y Fu(,)g(119)1882 4558 -y Ft(S)1949 4573 y Fn(ns)2021 4558 y Fu(,)g(31)1882 4679 -y Ft(S)1949 4694 y Fn(sos)2044 4679 y Fu(,)h(39)1882 -4800 y Ft(T)25 b(A)p Fu(,)32 b(201)1882 4920 y Ft(T)25 -b(B)t Fu(,)32 b(201)1882 5132 y Fw(AM)p Fu(,)g(63)1882 -5253 y Fw(Aexp)p Fu(,)g(7)1882 5374 y Fw(Aexp)2139 5389 -y Fc(X)2206 5374 y Fu(,)h(161)1882 5494 y Fw(Bexp)p Fu(,)f(7)1663 -5849 y(235)p eop -%%Page: 236 246 -236 245 bop 251 130 a Fw(236)2454 b(Index)38 b(of)g(Sym)m(b)s(ols)p -251 193 3473 4 v 283 515 a(Bexp)535 530 y Fc(X)603 515 -y Fu(,)33 b(161)283 636 y Fw(Blo)s(c)m(k)p Fu(,)f(51)283 -756 y Fw(Co)s(de)p Fu(,)i(64)283 877 y Fw(Con)m(t)p Fu(,)f(127)283 -997 y Fw(Dec)470 1012 y Fn(P)522 997 y Fu(,)g(53,)f(117)283 -1117 y Fw(Dec)470 1132 y Fn(V)528 1117 y Fu(,)h(51,)f(117)283 -1238 y Fw(En)m(v)475 1253 y Fn(E)527 1238 y Fu(,)h(130)283 -1358 y Fw(En)m(v)475 1373 y Fn(P)527 1358 y Fu(,)g(54,)f(56,)g(58,)h -(121)283 1478 y Fw(En)m(v)475 1493 y Fn(V)533 1478 y -Fu(,)g(57,)f(118)283 1599 y Fw(Exc)p Fu(,)h(126)283 1719 -y Fw(Exception)p Fu(,)f(126)283 1840 y Fw(\013)p Fu(,)h(213)283 -1960 y Fw(Lo)s(c)p Fu(,)g(57,)g(118)283 2080 y Fw(N)p -Fu(,)g(213)283 2201 y Fw(Num)p Fu(,)f(7)283 2321 y Fw(P)p -Fu(,)h(136)283 2441 y Fw(PState)p Fu(,)g(137)283 2562 -y Fw(Pname)p Fu(,)g(53,)f(117)283 2682 y Fw(Pro)s(c)p -Fu(,)g(52,)h(117)283 2803 y Fw(Stac)m(k)p Fu(,)g(64)283 -2923 y Fw(State)p Fu(,)g(12)283 3043 y Fw(State)538 3058 -y Fc(X)606 3043 y Fu(,)g(161)283 3164 y Fw(Stm)p Fu(,)f(7)283 -3284 y Fw(Stm)483 3299 y Fc(X)550 3284 y Fu(,)h(161)283 -3405 y Fw(Store)p Fu(,)g(57,)f(118)283 3525 y Fw(T)p -Fu(,)h(213)283 3645 y Fw(tt)p Fu(,)f(213)283 3766 y Fw(V)-9 -b(ar)p Fu(,)33 b(7)283 3886 y Fw(While)p Fu(,)f(6)283 -4006 y Fw(Z)p Fu(,)i(213)283 4210 y Fs(a)7 b Fu(,)33 -b(7)283 4330 y Fs(b)6 b Fu(,)33 b(7)283 4451 y Fs(c)6 -b Fu(,)33 b(64,)f(127)283 4571 y Fs(D)366 4586 y Fc(P)425 -4571 y Fu(,)h(53,)f(117)283 4691 y Fs(D)366 4706 y Fc(V)427 -4691 y Fu(,)h(51,)f(117)283 4812 y Fs(e)7 b Fu(,)33 b(64,)g(126)283 -4932 y Fs(env)439 4947 y Fc(E)498 4932 y Fu(,)g(130)283 -5053 y Fs(env)439 5068 y Fc(P)497 5053 y Fu(,)g(54,)f(121)2165 -515 y Fs(env)2321 530 y Fc(V)2381 515 y Fu(,)h(57,)f(118)2165 -636 y Fs(n)7 b Fu(,)33 b(7)2165 756 y Fs(P)10 b Fu(,)33 -b(176)2165 877 y Fs(p)6 b Fu(,)33 b(53,)f(117,)g(136)2165 -997 y Fs(ps)8 b Fu(,)32 b(137)2165 1117 y Fs(S)12 b Fu(,)32 -b(7)2165 1238 y Fs(s)8 b Fu(,)33 b(12)2165 1358 y Fs(sto)6 -b Fu(,)33 b(57,)f(118)2165 1478 y Fs(Q)9 b Fu(,)33 b(176)2165 -1599 y Fs(x)12 b Fu(,)32 b(7)2165 1802 y Fb(d)p Fu(?,)h(135,)f(136)2165 -1923 y Fb(init)p Fu(,)h(141)2165 2043 y Fb(init)2345 -2058 y Fc(X)2413 2043 y Fu(,)f(163)2165 2163 y Fb(lost)p -Fu(,)h(141)2165 2284 y Fb(ok)p Fu(,)g(135)2165 2487 y(cond,)g(87,)f -(119)2165 2608 y(cond)2365 2623 y Fn(P)2418 2608 y Fu(,)g(145)2165 -2728 y(D)m(V,)h(51)2165 2848 y(extend)2448 2863 y Fc(X)2517 -2848 y Fu(,)f(161)2165 2969 y(FIX,)h(88,)f(97,)g(104,)g(146)2165 -3089 y(FV,)g(15,)h(16,)f(160)2165 3209 y(graph,)g(214)2165 -3330 y(I,)h(215)2165 3450 y(I)2200 3465 y Fc(p)2240 3450 -y Fu(,)f(215)2165 3571 y(I)2200 3586 y Fc(X)2268 3571 -y Fu(,)g(215)2165 3691 y(id,)g(214)2165 3811 y(lo)s(okup,)g(118)2165 -3932 y(new,)i(57,)e(118)2165 4052 y(next,)i(57,)e(118)2165 -4172 y(OK,)g(137)2165 4293 y(on-trac)m(k,)h(137)2165 -4413 y(up)s(d)2330 4428 y Fn(P)2382 4413 y Fu(,)g(54,)f(56,)g(58)2165 -4534 y(wlp,)g(186)2165 4737 y(rel)p 2165 4750 109 4 v --1 w(,)h(136{138)2165 4857 y(undef)p 2165 4870 236 4 -v 1 w(,)f(214)p eop -%%Page: 237 247 -237 246 bop 0 974 a Fv(Index)0 1406 y Fr(abort)p Fu(-construct,)35 -b(44)0 1529 y(abstract)e(mac)m(hine,)f(63)0 1653 y(abstract)h(syn)m -(tax,)h(7)0 1776 y(additiv)m(e)e(function,)g(163)0 1900 -y(admissible)f(predicate,)h(173)0 2023 y(an)m(ti-symmetric)f(relation,) -f(95)0 2146 y(arithmetic)g(expression,)k(7)166 2270 y(analysis,)e(142) -166 2393 y(execution)h(time,)f(201)166 2517 y(seman)m(tics,)h(12)166 -2640 y(translation,)e(70)0 2763 y Fr(assert)p Fu(-construct,)k(46)0 -2887 y(assertion,)e(175)0 3010 y(axiom,)e(20)0 3133 y(axiomatic)f -(seman)m(tics,)j(178)0 3390 y(basis)g(elemen)m(t,)f(7)0 -3513 y Fr(begin)p Fu(-construct,)j(51,)d(117,)g(126)0 -3637 y(bisim)m(ulation)d(relation,)i(81)0 3760 y(b)s(o)s(olean)g -(expression,)j(7)166 3884 y(analysis,)e(142)166 4007 -y(execution)h(time,)f(201)166 4130 y(seman)m(tics,)h(14)166 -4254 y(translation,)e(70)0 4510 y Fr(call)p Fu(-construct,)j(53,)f -(117,)e(197)0 4634 y(call-b)m(y-v)-5 b(alue)30 b(parameter,)i(60,)h -(126)0 4757 y(ccp)s(o,)g(99)0 4881 y(c)m(hain,)g(97)0 -5004 y(c)m(hain)40 b(complete)f(partially)e(ordered)k(set,)332 -5124 y(99)0 5248 y(co)s(de)33 b(generation,)f(69)0 5371 -y(complete)g(lattice,)f(99)0 5494 y(completeness,)i(183)2048 -1406 y(of)21 b(partial)e(correctness)24 b(inference)e(sys-)2214 -1526 y(tem,)32 b(187)2048 1648 y(of)i(total)g(correctness)k(inference)d -(sys-)2214 1768 y(tem,)d(196)1882 1890 y(comp)s(osite)f(elemen)m(t,)h -(7)1882 2011 y(comp)s(ositional)d(de\014nition,)i(11)1882 -2133 y(computation)g(sequence,)k(66)1882 2254 y(concrete)e(syn)m(tax,)i -(7)1882 2376 y(con\014guration,)c(216)2048 2497 y(\014nal,)g(216)2048 -2619 y(stuc)m(k,)j(216)2048 2740 y(terminal,)c(216)1882 -2862 y(constan)m(t)j(propagation,)e(133)1882 2983 y(con)m(tin)m -(uation,)g(127)1882 3105 y(con)m(tin)m(uation)g(st)m(yle)i(seman)m -(tics,)g(127)1882 3226 y(con)m(tin)m(uous)g(function,)f(103)1882 -3348 y(correct)h(implemen)m(tation,)c(73)1882 3571 y(declared)j(v)-5 -b(ariable,)31 b(51)1882 3692 y(denotational)f(seman)m(tics,)j(85)2048 -3814 y(con)m(tin)m(uation)e(st)m(yle,)i(127)2048 3935 -y(direct)f(st)m(yle,)h(85)1882 4057 y(dep)s(endency)i(analysis,)d(134) -1882 4178 y(deriv)-5 b(ation)30 b(sequence,)36 b(33)1882 -4300 y(deriv)-5 b(ation)30 b(tree,)k(22)1882 4421 y(detection)e(of)g -(signs)h(analysis,)f(133)1882 4543 y(deterministic)e(seman)m(tics,)j -(28,)f(38,)h(68)1882 4664 y(direct)f(st)m(yle)h(seman)m(tics,)g(85)1882 -4786 y(dubious,)f(135)1882 4907 y(dynamic)f(scop)s(e,)j(53)1882 -5130 y(equiv)-5 b(alence)32 b(relation,)f(141)1882 5252 -y(ev)-5 b(aluation)30 b(stac)m(k,)k(64)1882 5373 y(exception,)f(126) -1882 5494 y(exception)g(en)m(vironmen)m(t,)g(130)1663 -5849 y(237)p eop -%%Page: 238 248 -238 247 bop 251 130 a Fw(238)3028 b(Index)p 251 193 3473 -4 v 283 515 a Fu(expressiv)m(eness,)37 b(191)283 636 -y(extensional)c(approac)m(h,)g(177)283 837 y(\014xed)h(p)s(oin)m(t,)e -(87)450 957 y(least,)g(97,)g(104)450 1078 y(requiremen)m(ts,)h(92,)f -(97)283 1198 y(\014xed)i(p)s(oin)m(t)e(induction,)g(173)283 -1319 y(\014xed)i(p)s(oin)m(t)e(theory)-8 b(,)33 b(106)283 -1439 y(\015o)m(w)h(of)e(con)m(trol,)g(137)283 1559 y -Fr(for)p Fu(-construct,)26 b(28,)d(36,)h(43,)f(72,)h(111,)f(117,)616 -1680 y(151,)31 b(182)283 1800 y(free)i(v)-5 b(ariable,)31 -b(15,)i(16,)f(160)283 1920 y(function)h(comp)s(osition,)d(214)283 -2041 y(functional)h(dep)s(endency)-8 b(,)35 b(134)283 -2242 y(graph)e(of)f(a)g(function,)g(214)283 2443 y Fr(handle)p -Fu(-construct,)j(126)283 2645 y(iden)m(tit)m(y)e(function,)f(214)283 -2765 y(iden)m(tit)m(y)h(relation,)e(215)283 2886 y(induction,)h(10)450 -3006 y(\014xed)h(p)s(oin)m(t,)f(173)450 3126 y(on)38 -b(the)h(length)e(of)h(computation)f(se-)616 3247 y(quences,)e(67)450 -3367 y(on)21 b(the)h(length)g(of)f(deriv)-5 b(ation)20 -b(sequences,)616 3487 y(37)450 3608 y(on)42 b(the)h(shap)s(e)g(of)f -(deriv)-5 b(ation)41 b(trees,)616 3728 y(28)450 3849 -y(on)52 b(the)g(shap)s(e)h(of)f(inference)h(trees,)616 -3969 y(183)450 4089 y(structural,)32 b(11)283 4210 y(inference)i -(system,)f(178)450 4330 y(for)f(execution)h(time,)e(200)450 -4451 y(for)h(partial)e(correctness,)35 b(178)450 4571 -y(for)d(total)f(correctness,)j(191)283 4691 y(inference)g(tree,)f(180) -283 4812 y(injectiv)m(e)g(function,)f(214)283 4932 y(input)h(v)-5 -b(ariable,)31 b(134)283 5052 y(instructions,)i(64)283 -5173 y(in)m(tensional)e(approac)m(h,)j(177,)e(190)283 -5293 y(in)m(v)-5 b(arian)m(t,)32 b(179,)g(192)283 5494 -y(Kripk)m(e-relation,)f(141)2165 515 y(least)h(elemen)m(t,)h(95)2165 -636 y(least)f(\014xed)i(p)s(oin)m(t,)e(97,)g(104)2165 -758 y(least)g(upp)s(er)h(b)s(ound,)g(97)2165 879 y(lo)s(cal)d(v)-5 -b(ariable,)31 b(51)2165 1000 y(lo)s(cation,)f(57,)i(118)2165 -1121 y(logical)d(v)-5 b(ariable,)31 b(176)2165 1242 y(lo)s(oping)f -(computation)h(sequence,)36 b(66)2165 1363 y(lo)s(oping)30 -b(execution,)j(25,)g(36)2165 1579 y(monotone)f(function,)g(100)2165 -1700 y(m)m(utual)f(recursiv)m(e)j(pro)s(cedure,)g(60)2165 -1916 y(natural)d(seman)m(tics,)i(20)2165 2037 y(non-determinism,)d(46,) -j(197)2165 2158 y(non-recursiv)m(e)h(pro)s(cedure,)f(56,)f(122,)g(197) -2165 2279 y(n)m(um)m(b)s(er,)h(9)2165 2400 y(n)m(umeral,)f(7,)g(11)2165 -2616 y Fr(or)p Fu(-construct,)i(46,)e(197)2165 2737 y(order)h(of)f -(magnitude,)f(214)2165 2858 y(order)d(of)g(magnitude)f(of)h(execution)h -(time,)2497 2979 y(200)2165 3100 y(ordering,)j(93)2331 -3221 y(an)m(ti-symmetry)-8 b(,)32 b(95)2331 3342 y(on)h -Fw(P)p Fu(,)f(136)2331 3463 y(on)h Fw(PState)p Fu(,)f(140)2331 -3584 y(on)h Fw(PState)f Ft(!)g Fw(PState)p Fu(,)g(148)2331 -3705 y(on)h Fw(State)f Fo(,)-17 b Ft(!)33 b Fw(State)p -Fu(,)f(93)2331 3826 y(re\015exivit)m(y)-8 b(,)33 b(95,)f(141)2331 -3947 y(symmetry)-8 b(,)33 b(141)2331 4068 y(transitivit)m(y)-8 -b(,)31 b(95,)h(141)2165 4190 y(output)h(v)-5 b(ariable,)31 -b(134)2165 4405 y Fr(par)p Fu(-construct,)j(48)2165 4526 -y(parallelism,)29 b(48)2165 4648 y(parameterized)j(relation,)f(141)2165 -4769 y(partial)f(correctness,)35 b(169,)d(175)2331 4890 -y(axiomatic)e(seman)m(tics,)j(178)2331 5011 y(denotational)e(seman)m -(tics,)i(172)2331 5132 y(natural)e(seman)m(tics,)i(169)2331 -5253 y(structural)45 b(op)s(erational)e(seman)m(tics,)2497 -5373 y(172)2165 5494 y(partial)30 b(function,)i(213)p -eop -%%Page: 239 249 -239 248 bop 0 130 a Fw(Index)3028 b(239)p 0 193 3473 -4 v 0 515 a Fu(partially)30 b(ordered)j(set,)h(95)0 636 -y(p)s(ostcondition,)d(176)0 756 y(precondition,)h(176)0 -877 y(predicate,)h(215)0 997 y Fr(proc)p Fu(-construct,)h(53,)f(117,)e -(197)0 1117 y(pro)s(cedure)j(declaration,)d(53,)h(117,)g(121)0 -1238 y(pro)s(cedure)23 b(en)m(vironmen)m(t,)h(54,)g(56,)f(58,)g(121)0 -1358 y(pro)s(cedure)34 b(name,)e(53,)g(117)0 1478 y(program)f(v)-5 -b(ariable,)31 b(176)0 1599 y(prop)s(ert)m(y)-8 b(,)33 -b(135)0 1719 y(prop)s(ert)m(y)g(state,)g(137)166 1840 -y(improp)s(er,)e(138)166 1960 y(prop)s(er,)i(138)0 2080 -y Fr(protect)p Fu(-construct,)i(50)0 2201 y(pro)m(v)-5 -b(abilit)m(y)d(,)31 b(180)166 2321 y(in)21 b(execution)h(time)f -(inference)h(system,)332 2441 y(203)166 2562 y(in)f(partial)f -(correctness)j(inference)g(sys-)332 2682 y(tem,)32 b(180)166 -2803 y(in)i(total)f(correctness)k(inference)e(sys-)332 -2923 y(tem,)d(192)0 3043 y(pro)m(v)-5 b(ably)32 b(equiv)-5 -b(alence,)33 b(182)0 3246 y Fr(raise)p Fu(-construct,)i(126)0 -3366 y Fr(random)p Fu(-construct,)g(48)0 3486 y(recurrence)f(equation,) -f(205,)f(207)0 3607 y(recursiv)m(e)i(pro)s(cedure,)g(54,)e(56,)g(125,)g -(198)0 3727 y(re\015exiv)m(e)i(ordering,)e(141)0 3848 -y(re\015exiv)m(e)i(relation,)d(95)0 3968 y(re\015exiv)m(e)j(transitiv)m -(e)e(closure,)h(215)0 4088 y(relation,)e(215)0 4209 y(relation)g(comp)s -(osition,)f(215)0 4329 y Fr(repeat)p Fu(-construct,)43 -b(28,)e(30,)f(36,)h(39,)f(43,)332 4450 y(72,)24 b(81,)f(111,)g(112,)h -(117,)f(129,)g(151,)332 4570 y(160,)43 b(182,)g(183,)g(186,)g(190,)h -(194,)332 4690 y(196,)32 b(208)0 4811 y(rule,)g(20)0 -4931 y(rule)g(of)g(consequence,)k(180)0 5133 y(safet)m(y)e(of)e(static) -g(analysis,)g(153,)g(159)0 5254 y(seman)m(tic)g(clause,)h(9)0 -5374 y(seman)m(tic)f(equation,)h(9)0 5494 y(seman)m(tic)f(equiv)-5 -b(alence,)33 b(26,)f(39,)h(112)1882 515 y(seman)m(tic)f(function,)g(9) -1882 638 y(soundness,)i(183)2048 760 y(of)21 b(execution)h(time)f -(inference)h(system,)2214 880 y(208)2048 1003 y(of)f(partial)e -(correctness)24 b(inference)e(sys-)2214 1123 y(tem,)32 -b(184)2048 1245 y(of)i(total)g(correctness)k(inference)d(sys-)2214 -1366 y(tem,)d(194)1882 1488 y(state,)h(12)1882 1610 y(statemen)m(t,)g -(7)2048 1732 y(analysis,)f(144)2048 1855 y(execution)h(time,)e(202)2048 -1977 y(seman)m(tics,)h(31,)h(39,)f(85)2048 2099 y(translation,)e(71) -1882 2221 y(static)i(scop)s(e,)h(53,)f(117)1882 2344 -y(storage,)g(64)1882 2466 y(store,)h(57,)f(118)1882 2588 -y(strict)g(function,)g(103)1882 2710 y(strongest)h(p)s(ostcondition,)e -(187,)h(190)1882 2833 y(structural)g(induction,)g(11)1882 -2955 y(structural)g(op)s(erational)e(seman)m(tics,)j(32)1882 -3077 y(stuc)m(k)h(con\014guration,)e(216)1882 3199 y(substitution,)g -(16,)g(17,)g(51)1882 3322 y(symmetric)f(ordering,)h(141)1882 -3558 y(terminating)19 b(computation)h(sequence,)27 b(66)1882 -3680 y(terminating)j(execution,)j(25,)f(36)1882 3803 -y(total)f(correctness,)j(169)2048 3925 y(axiomatic)c(seman)m(tics,)j -(191)1882 4047 y(total)e(function,)h(213)1882 4169 y(transition)e -(relation,)h(216)1882 4292 y(transition)f(system,)k(216)1882 -4414 y(transitiv)m(e)e(ordering,)f(141)1882 4536 y(transitiv)m(e)h -(relation,)e(95)1882 4773 y(upp)s(er)j(b)s(ound,)f(97)1882 -5009 y(v)-5 b(alidit)m(y)d(,)30 b(184)2048 5131 y(in)21 -b(execution)h(time)e(inference)j(system,)2214 5252 y(203)2048 -5374 y(in)e(partial)e(correctness)24 b(inference)e(sys-)2214 -5494 y(tem,)32 b(184)p eop -%%Page: 240 250 -240 249 bop 251 130 a Fw(240)3028 b(Index)p 251 193 3473 -4 v 450 515 a Fu(in)33 b(total)g(correctness)k(inference)e(sys-)616 -636 y(tem,)d(191)283 756 y Fr(var)p Fu(-construct,)j(51,)d(117)283 -877 y(v)-5 b(ariable,)31 b(7)283 997 y(v)-5 b(ariable)31 -b(declaration,)g(51,)i(117,)e(120)283 1117 y(v)-5 b(ariable)31 -b(en)m(vironmen)m(t,)i(57,)f(118)283 1321 y(w)m(eak)m(est)j(lib)s(eral) -30 b(precondition,)i(187)p eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/wiley.ps.gz b/wiley.ps.gz Binary files differnew file mode 100644 index 0000000..251eb69 --- /dev/null +++ b/wiley.ps.gz |