%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: RTA.dvi
%%Pages: 16
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -f RTA
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2003.03.20:0846
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}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{A A 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/IEn 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 IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A 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/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 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 A 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 A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 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}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
mul exch 0 get A 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/IEn 256 array N 2 string 0 1 255{IEn S A 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/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A 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 Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/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 (RTA.dvi)
@start
%DVIPSBitmapFont: Fa cmti9 9 38
/Fa 38 122 df<1560EC01E0EC03C0EC0700140E5C143C5C5C495A495A13075C49C7FC5B
131E5B137C137813F85B12015B12035B1207A25B120FA290C8FC5AA2121E123EA3123C12
7CA31278A212F8A35AAF12701278A21238A2123C121CA27EA27E6C7E12011B4A75B71F>
40 D<14301438A28080A2140F801580A2140315C0A4140115E0A81403A415C0A31407A3
1580140FA315005CA3141E143EA2143C147CA25CA25C13015C13035C13075C130F91C7FC
131E133E133C5B5B485AA2485A485A48C8FC121E5A12705A5A1B4A7EB71F>I<B51280A4
6C1300110579911B>45 D<121C127F12FFA412FE12380808778718>I<EC01801403A214
07140FEC1F005C14FF5BEB1FFEEB7FBEEB7E7E1320EB007CA214FCA25CA21301A25CA213
03A25CA21307A25CA2130FA25CA2131FA291C7FCA25BA2133EA2137EA2137C13FCB512FC
A3193277B127>49 D<010614C090380FC00F91B51280160015FC4913F015C0D91CFEC7FC
91C8FC133C1338A313781370A313F0EBE0FE9038E3FF809038EF03C03901FC01E001F87F
EBF000497F485A5BC8FCA41401A4003C130300FC5CA34A5A5A00E0495AA24A5A4AC7FC6C
137E00705B387801F8383E07F0381FFFC06C90C8FCEA03F8223478B127>53
D<161C163CA2167C16FCA21501821503A2ED077E150F150E151CA21538A2157015F015E0
EC01C0A2913803807F82EC0700A2140E141E141C5CA25CA25C49B6FCA25B913880003F49
C7EA1F80A2130E131E131C133C13385B13F05B12011203D80FF0EC3FC0D8FFFE903807FF
FEA32F367BB539>65 D<DB1FF013C09238FFFC010203EBFF03913A0FF00F878091393F80
03CF9139FE0001EF4948EB00FFD903F01500D90FE080495A49488091C8123E137E13FE48
5A4848153CA2485AA248481538A2485A94C7FC123F5BA3127F90CBFCA412FEA2EE03C0A2
5F127E160794C7FC5E160E007F151E6C5D5E6C6C147016F06C6C495A6C6CEB07C06C6C49
C8FC6C6C133E6CB413FC90387FFFF0011F13C0D903FEC9FC323775B437>67
D<010FB51280A216009038003FC05DA292C7FCA25CA2147EA214FEA25CA21301A25CA213
03A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCA25BA2137EA213FEA25B12
01B512F8A25C21337BB21E>73 D<91381FFFFE5C16FC9138003F80A31600A25D157EA315
FE5DA314015DA314035DA314075DA3140F5DA3141F5DA3143F92C7FCA2121C007E5B00FE
137EA214FE485BEAF80100E05B495A387007E038780FC06C48C8FCEA1FFCEA07F0273579
B228>I<0107B512C05BA29026003FC0C7FC5DA292C8FCA25CA2147EA214FEA25CA21301
A25CA21303A25CA21307A25CA2130FA25C17E0011F140117C05C1603013F1580160791C7
FCEE0F005B5E017E143EA201FE5CED01FC4913030001EC1FF8007FB6FCB7FC5E2B337CB2
30>76 D<902607FFC0ED7FFC4917FF81D9003F4B1300611803023BED077CA2027BED0EFC
610273151C1838DAF1F01439F071F014E118E10101ED01C36102C1EC0383EF0703010316
07050E5BEC80F8171C0107ED380F6102001470A249EDE01FDC01C090C7FC130EEE038001
1E017C5C933807003E011C140EA2013C4A137E187C01385C5E017816FC6F485B1370ED3F
C001F0EC80016000011500D807F81503277FFF803E90B512C0B5EB3C01151C46337BB245
I<902607FF8090383FFFC0496D5BA2D9001F913803F8004A6C6D5A6060EC3BF0027B14
0360EC71F8A202F11407DAF0FC91C7FC14E0A20101017E5B170E14C0810103151EEE801C
EC801FA20107ECC03C030F1338140016E049010713781770010E14F01503011E15F0705A
011C1301A2013C14FD03005B133816FF0178147F5F0170143FA213F070C8FC1201EA07F8
267FFF807FB5140EA23A337BB239>I<ED1FE0913801FFFC913807E03F91391F800FC091
393E0003E002F8EB01F0495A4948EB00F8494814FC4948147C49C8127E133E017E153E49
153F485AA2485A12075B120F5B121F177F5B123FA348C912FEA4EE01FC12FEEE03F8A217
F0160717E0160F007E16C0EE1F80A2EE3F006C157E5E5E6C6C495A000F4A5A6D495A0007
EC1F806C6C013EC7FCD801F813FC39007E07F090383FFF80D907FCC8FC303775B43B>I<
0107B612C04915F883903A003F8001FEEE003FEF1F8092C713C0170F5C18E0147EA214FE
EF1FC05CA201011680173F4A1500177E010315FE5F4AEB03F8EE07E00107EC3FC091B6C7
FC16F802E0C9FC130FA25CA2131FA25CA2133FA291CAFCA25BA2137EA213FEA25B120138
7FFFF0B5FCA233337CB234>I<0107B512FE49ECFFC017F0903A003F8007F8EE01FCEE00
7E92C7127F835C1880147EA214FEEF7F005CA2010115FE5F4A13015F01034A5AEE0FC04A
495A04FEC7FC49B512F016C09138E003E0ED01F8010F6D7E167C4A137EA2131FA25CA201
3F14FEA291C7FCA24913015E137EEF01C001FE150318805B00011607277FFFF0001400B5
ECFE0EEE7E1CC9EA1FF8EE07E032357BB238>82 D<913901FC018091380FFF03023F13C7
91387E07EF903A01F801FF0049487E4A7F495A4948133E131F91C7FC5B013E143CA3137E
1638A293C7FC137FA26D7E14E014FE90381FFFC06D13F86D7F01017F6D6C7E020F7F1400
153F6F7E150FA4120EA2001E5D121CA2151F003C92C7FCA2003E143E5D127E007F5C6D48
5A9038C007E039F3F80FC000F0B5C8FC38E03FFC38C00FF029377AB42B>I<0003B812C0
5A1880903AF800FC003F260FC001141F0180150F01005B001EEE07001403121C003C4A5B
A200380107140E127800705CA2020F141E00F0161CC74990C7FCA2141FA25DA2143FA292
C9FCA25CA2147EA214FEA25CA21301A25CA21303A25CA21307A25C497E001FB512F05AA2
323374B237>I<EB03F0EB0FF890383E1C6090387C0FF0EBF807EA01F0EA03E00007EB03
E0EA0FC0A2381F800715C0EA3F00A2140F481480127EA2141F00FE14005A1506EC3F07EC
3E0F150E147E007C141EECFE1CEB01FCD83C03133C393E07BE38391F0E1E783907FC0FF0
3901F003C0202278A027>97 D<137EEA0FFE121F5B1200A35BA21201A25BA21203A25BA2
1207A2EBC3E0EBCFF8380FDC3EEBF81F497E01E01380EA1FC0138015C013005AA2123EA2
007E131F1580127CA2143F00FC14005AA2147EA25CA2387801F85C495A6C485A495A6C48
C7FCEA0FFCEA03F01A3578B323>I<14FCEB07FF90381F078090383E03C0EBFC013801F8
033803F0073807E00F13C0120F391F80070091C7FC48C8FCA35A127EA312FE5AA4007C14
C0EC01E0A2EC03C06CEB0F80EC1F006C137C380F81F03803FFC0C648C7FC1B2278A023>
II<EB03F8
EB0FFEEB3E0F9038F807803801F003EA03E0EA07C0120FEA1F801407D83F0013005C007E
133EEB03F8387FFFE04848C7FC00FCC8FCA45AA4EC0180EC03C0A2007CEB0780EC1F0000
3C133E6C13F8380F03E03807FF80D801FCC7FC1A2277A023>I<151FED7FC0EDF0E00201
13F0EC03E3A2EC07C316E0EDC1C091380FC0005DA4141F92C7FCA45C143E90381FFFFEA3
D9007EC7FC147CA414FC5CA513015CA413035CA413075CA3130FA25CA3131F91C8FCA35B
133E1238EA7E3CA2EAFE7812FC485AEA78E0EA3FC0000FC9FC244582B418>I<143FECFF
80903803E1E6903807C0FF90380F807FEB1F00133E017E133F49133EA24848137EA24848
137CA215FC12074913F8A21401A2D80FC013F0A21403120715E01407140F141F3903E03F
C00001137FEBF0FF38007FCF90381F0F801300141FA21500A25C143E1238007E137E5C00
FE5B48485A387803E0387C0F80D81FFFC7FCEA07F820317CA023>I<EB0FC0EA03FFA25C
EA001FA391C8FCA25BA2133EA2137EA2137CA213FCA29038F83F80ECFFE03901FBE0F090
38FF80F8EC007849137C485A5B5BA2484813FC5D5BA2000F13015D1380A2001F13035DEB
0007EDC0C048ECC1E0020F13C0003E1481A2007E1483ED0380007C1407160000FC140E15
1E48EB07F80070EB01F023357BB327>I<EB0180EB07E0A2130FEB07C0EB038090C7FCAB
EA01F0EA03FCEA0F1E120E121C123C1238EA783E1270A2137EEAF07CEA60FCC65AA21201
5BA212035BA2000713C0EBC1E0000F13C01381A21383EB038013071400130E131EEA07F8
EA01F013337AB118>I<133FEA07FF5A13FEEA007EA3137CA213FCA213F8A21201A213F0
A21203A213E0A21207A213C0A2120FA21380A2121FA21300A25AA2123EA2127EA2127C13
18EAFC1C133CEAF838A21378137012F013F0EAF8E01279EA3FC0EA0F00103579B314>
108 D<2703C003F8137F3C0FF00FFE01FFC03C1E783C1F07C1E03C1C7CF00F8F01F03B3C
3DE0079E0026383FC001FC7FD97F805B007001005B5E137ED8F0FC90380FC00100E05FD8
60F8148012000001021F130360491400A200034A13076049013E130FF081800007027EEC
83C0051F138049017C1403A2000F02FC1407053E130049495CEF1E0E001F01015D183C01
0049EB0FF0000E6D48EB03E03A227AA03F>I<3903C007F0390FF01FFC391E787C1E391C
7CF01F393C3DE00F26383FC01380EB7F8000781300EA707EA2D8F0FC131F00E01500EA60
F8120000015C153E5BA20003147E157C4913FCEDF8180007153C0201133801C013F0A200
0F1578EDE070018014F016E0001FECE1C015E390C7EAFF00000E143E26227AA02B>I<14
FCEB07FF90381F07C090383E03E09038FC01F0EA01F83903F000F8485A5B120F484813FC
A248C7FCA214014814F8127EA2140300FE14F05AA2EC07E0A2007CEB0FC01580141FEC3F
006C137E5C381F01F0380F83E03803FF80D800FCC7FC1E2278A027>I<011E137C90387F
81FF9039F3C387C09039E3EF03E03901E1FE01D9C1FC13F0EBC3F8000313F0018314F814
E0EA07871307000313C01200010F130316F01480A2011F130716E01400A249EB0FC0A201
3EEB1F80A2017EEB3F00017F133E5D5D9038FF81F09038FDC3E09038F8FF80027EC7FC00
0190C8FCA25BA21203A25BA21207A25BB5FCA325307FA027>I<903803F01890380FF838
90383E1C7890387C0EF89038F807F0EA01F0EA03E000071303D80FC013E0A2EA1F801407
D83F0013C0A348130F007E1480A300FE131F481400A35C143E147E127C14FE495AEA3C03
EA3E07EA1F0E3807FCF8EA01F0C7FC13015CA313035CA21307A25C48B5FCA25C1D3078A0
23>I<3903C00FC0390FF03FF0391E78F078391C7DE03C393C3FC0FC00381380EB7F0000
7814F8D8707E13701500EAF0FC12E0EA60F812001201A25BA21203A25BA21207A25BA212
0FA25BA2121FA290C8FC120E1E227AA020>I<EB03F0EB1FFCEB3C1EEB780FEBF007EA01
E0140F0003131F13C0A2EBE00414007FEBFF8014E06C13F06C13F8EB7FFC1307EB00FE14
7E143E123800FC133CA3147C00F013784813F0EAF001387803E0383C0F80381FFE00EA03
F818227AA01F>I<1303EB0F80A3131FA21400A25BA2133EA2137EA2137C387FFFF8A2B5
FC3800F800A21201A25BA21203A25BA21207A25BA2120FA25B1460001F13F014E0130013
0114C01303001E1380EB07005BEA0F1EEA07F8EA01E015307AAE19>I<EA01F0D803FC13
07D80F1E5B000E5C121C123C00385CD8783E133E1270A2017E137ED8F07C137CEA60FCC6
5A15FC00015C5BA2140100035C13E0166002031370EDE0F0D807C014E0A20003EB07E116
C09038E00FC1EC1FC3000190383FE3809038F071E73A007FE0FF0090381F803C24227AA0
29>I<13F0D803FC1307D80F1E130F000E141F121C123C0038143FD8783E133E1270A201
7E137ED8F07C137CEA60FCC65A15FC000114F85BA21401000314F013E0A2140315E0EA07
C0A20003130715C0EBE00F141F0001133F9038F07F8038007FEFEB1F8FEB001F1500A25C
003E133E007E137E147C5C007C5BEA7001495A38380780D83C1FC7FCEA0FFCEA07F02031
7AA025>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmss8 6 1
/Fb 1 50 df<13301370EA03F012FFA212FD1201B3A7387FFFC0A312227CA11A>49
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc cmmi6 6 1
/Fc 1 111 df<000F13FC381FC3FF3931C707803861EC0301F813C0EAC1F0A213E03903
C00780A3EC0F00EA0780A2EC1E041506D80F00130C143C15181538001EEB1C70EC1FE000
0CEB07801F177D9526>110 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fd cmr6 6 2
/Fd 2 51 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49
D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013
FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600
185A5A383FFFF85AB512F0A216217CA01E>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fe cmsy9 9 1
/Fe 1 21 df<171C177EEE01FEEE07FCEE1FF0EE7FC0923801FF00ED07FCED1FF0ED7FC0
4A48C7FCEC07FCEC1FF0EC7FC04948C8FCEB07FCEB1FF0EB7FC04848C9FCEA07FCEA1FF0
EA7FC048CAFCA2EA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01FF9038007F
C0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE
01FEEE007E171C1700AC007FB712FCB812FEA26C16FC2F3E7AB03C>20
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff cmbx10 10 14
/Ff 14 117 df<913803FFC0027F13F00103B512FC010FEB00FED93FF8133FD97FE0EBFF
8049485A5A1480484A13C04A6C1380A36F1300167E93C7FCA592383FFFC0B8FCA4000390
C7FCB3ABB5D8FC3F13FFA4303A7EB935>12 D46 D<141E143E14FE1307133FB5FCA313CFEA000FB3B3A6
007FB61280A4213779B630>49 D<EA0F80EA3FE0EA7FF0A2EAFFF8A5EA7FF0A2EA3FE0EA
0F80C7FCABEA0F80EA3FE0EA7FF0A2EAFFF8A5EA7FF0A2EA3FE0EA0F800D2579A41B>58
D<B87E17F817FF18C028007FF8000713F09338007FF8EF1FFE717E050313807113C0A271
13E0F07FF0A2F03FF8A219FC181FA219FEA419FFAC19FEA419FC183FA219F8187F19F0F0
FFE0A24D13C04D13804D1300EF1FFEEF7FFC933807FFF0B912C095C7FC17FC178040397D
B849>68 D<003FB91280A4D9F800EBF003D87FC09238007FC049161F007EC7150FA2007C
1707A200781703A400F818E0481701A4C892C7FCB3AE010FB7FCA43B387DB742>84
D<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C0001FEC
1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F
6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025
257DA42C>101 D<13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03FFDA3C
01138014784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>104
DI<01FED97FE0EB0FFC00FF902601FFFC90383FFF80020701FF90B512
E0DA1F81903983F03FF0DA3C00903887801F000749DACF007F00034914DE6D48D97FFC6D
7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA451>109
D<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D
4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F801
7F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81A3
00FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB4
5A6C6CB5C7FC011F13FC010113C029257DA430>I<9038FE03F000FFEB0FFEEC3FFF9138
7C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3A2B512
FEA422257EA427>114 D<130FA55BA45BA25B5BA25A1207001FEBFFE0B6FCA3000390C7
FCB21578A815F86CEB80F014816CEBC3E090383FFFC06D1380903803FE001D357EB425>
116 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg cmsy6 6 1
/Fg 1 49 df48 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh cmtt9 9 24
/Fh 24 100 df<EB01C0EB03E0130F131FEB3FC0EB7F80EBFE00485A5B1203485A5B485A
A2485AA248C7FCA3127EA45AAC127EA47EA36C7EA26C7EA26C7E7F6C7E12017F6C7EEB7F
80EB3FC0EB1FE0130F1303EB01C0133A73B327>40 D<127012F812FE7E6C7E6C7EEA0FE0
6C7E12037F6C7E1200137EA27FA2EB1F80A3EB0FC0A4EB07E0ACEB0FC0A4EB1F80A3EB3F
00A2137EA25B1201485A5B1207485AEA3FC0485A48C7FC5A12F81270133A7AB327>I<EB
03C0497EAD007FB512FEB7FCA46C14FE390007E000AD6D5A20227DA727>43
D<120FEA3FC013E0EA7FF0A213F8A2123FA2120F120113F01203EA07E0121FEA7FC0EAFF
8013005A12700D14738927>I<EB07E0EB3FFC497E90B5FC4814803903FC3FC03907F00F
E0390FE007F0EBC003391F8001F8A248C712FCA2003E147C007E147EA3007C143E00FC14
3FAC007E147EA46C14FCA2EB8001001F14F8EBC003000F14F0EBE0073907F00FE03903FC
3FC06CB512806C14006D5A6D5AEB07E020307DAE27>48 D<130E131FA25B5BA25B5A5A12
7FB5FCA213BFEA7E3F1200B3AA003FB512805A15C01580A21A2F79AE27>I<EB3FE03801
FFF84813FE000FEBFF804814C0393FE07FE0EB800F397F0007F0007EEB03F800FE13015A
6C14FC1400A3127CC8FCA2140115F8A2140315F01407EC0FE0EC1FC0143FEC7F80ECFF00
495A495A495A495A495A495A495A01FEC7FC485AD807F81378484813FC485A485A48B5FC
B6FCA36C14F81E2F7CAE27>I<EB1FF8EBFFFE0003EBFF80000F14C015E0391FF01FF039
3FC007F8EB800115FC1400A26CC7FC1204C8FC140115F81403EC07F0140FEC3FE090381F
FFC0491380A215E06D13F09038001FF8EC03FC1401EC00FE157E157F153FA21238127C12
FEA2157F48147E6C14FE007FEB01FCEB8003393FF01FF86CB512F06C14E000031480C6EB
FE00EB1FF820307DAE27>I<EC3F804A7EA214FF5BA2EB03F7EB07E7A2EB0FC71487131F
EB3F07A2137E13FCA2EA01F813F01203EA07E0A2EA0FC0EA1F80A2EA3F00123E127E5AB7
128016C0A36C1580C73807C000A849B5FC491480A36D1400222F7EAE27>I<001FB512E0
4814F0A315E090C8FCACEB1FF0EBFFFC14FF158015C09038F03FE09038C00FF0EB000700
3EEB03F8001C1301C7FC15FC1400A3127C12FEA2140115F84813036C14F0007F130F9038
801FE0393FE07FC06CB512806C14006C5B000113F838007FC01E2F7CAD27>I<14FF0107
13C0011F13F04913F890B5FC48EB81FC3803FE0113F8EA07F0EA0FE09038C000F8001F14
00485A90C8FCA25A127EEB0FF838FE3FFE48B51280B612C015E09038F80FF09038E007F8
90388001FC90C7FC15FE48147E157F153F5A7E127EA3127F6C147F157E6C6C13FE9038C0
01FC120F9038F007F83907F81FF06CB512E06C14C06C148090383FFE00EB0FF820307DAE
27>I<1278B612FE15FFA315FE39FC0001FCEC03F8EC07F0007814E0C7120FEC1FC01580
143FEC7F00147E14FE5C13015C13035C13075CA2495AA3495AA3133F91C7FCA55B137EA9
133C20307DAE27>I<EB0FF0EB7FFE48B512804814C0000F14F0EBF81F391FE007F8393F
8001FC90C7FC4814FE007E147EA56C14FCEB8001391FC003F8390FE007F03907FC3FE000
01B5128039007FFE006D5A90B5FC000314C0390FF00FF0391FC003F8393F8001FC90C7FC
007E147EA248143FA6007E147EA2007F14FE393F8001FC391FE007F8EBF81F6CB512F06C
14E00001148039007FFE00EB0FF020307DAE27>I<EB0FF0EB7FFC48B5FC4814804814C0
390FF81FE0391FE007F0393FC003F8EB8001D87F0013FC007E130012FE48147EA4157F15
3F157F7E127E007F14FF7E6D5A381FE007380FF01F6CB6FC7E6C143F39007FFC7F90381F
F07E90C7FCA215FCA2140115F8001F1303393F8007F0EC0FE0141FEC3FC09038C0FF806C
B512005C6C13F8000313E0C6138020307DAE27>I65
D<903803F80E90381FFE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E485A49
137FA248C7123FA25A127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E157F6D
137E6C6C13FE3907F001FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300EB03F8
20307DAE27>67 D<387FFFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA2157E15
7F811680151FA316C0150FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB55A5D
B65A6C91C7FC14FC222E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7
FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27
70 D<D87FE0EB7FE0486CEBFFF0A26D5A007F15E0000F150001B813DFEBBC03A3EBBE07
019E139FA3EB9F0FA2018F131FA2149FA2EB879EA4EB839C14FCA3EB81F8A2EB80F01400
AAD87FF0EBFFE0486C4813F0A36C486C13E0242E7FAD27>77 D<007FB5FCB612E081816C
803907E003FEEC00FF81ED3F80151F16C0150FA6151F1680153FED7F005DEC03FE90B55A
5D5D5D92C7FC01E0C8FCADEA7FFEB5FCA36C5A222E7FAD27>80 D<90387FC0E03901FFF1
F0000713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403A3EC01E06C90C7FC127E
127FEA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13E0010013F0140FEC07F8
1403140115FC1400127812FCA46CEB01F8A26C130390388007F09038F01FE090B5FC15C0
150000F85B38701FF81E307CAE27>83 D<007FB61280B712C0A439FC03F00FA60078EC07
80000091C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE01FFF8B54813FCA36C
486C13F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D13FE6C6C485A90387F
87F814FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<EB0FFF017F13C048B512E048
14F05A380FF807EA1FE0393FC003E0903880008048C8FC127EA212FE5AA67E127EA2007F
14F0393F8001F813C0381FE003390FF80FF06CB5FC6C14E06C14C06C6C1300EB0FF81D20
7B9F27>99 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi cmss9 9 26
/Fi 26 123 df12 D<B6FC15E015F88115FF26FE00031380
9138007FC0151FED0FE0ED07F0A2150316F8A21501A31503A216F01507A2ED0FE0ED1FC0
157F913803FF80B7120015FC5D15E092C7FC48C9FCB3A3253479B331>80
D<EB3FC03803FFF0000F13FC487F809038C07F80381E001F001814C00010130FC713E014
07A6EB03FF137F48B5FC1207001F13C7383FF007EA7F80EA7E005AA3140F7E007F133FEB
C0FF90B5FC7E6C13E76C1387D803FCC7FC1B247DA225>97 D<12FCB2EB03F8EB1FFEEB7F
FF00FDB51280B612C09038E07FE0EB801F90380007F04813034814F81401A215FC1400A9
EC01F8A3EC03F06C13076CEB0FE0EB801F9038E07FC090B5128000FD140000FC5BEB3FFC
380007E01E357AB328>II<15FCB2EB3F80EBFFF0000313FC
4813FE4813FFEBF81F381FE007383FC001138048C7FC127EA35AA9127EA3007F1301EA3F
801403381FE007380FF81F90B5FC6C13FC6C13F8C613E090383F80001E357DB328>I<EB
1FC0EB7FF848487E487F487F390FF07F80381FC01F90388007C0EA3F00EC03E0007E1301
A2127C00FCEB00F0B6FCA500F8C8FCA27EA2127C127EA27E6D13106C6C1370390FE001F0
EBF80F6CB5FC6C14E0C6148090387FFE00EB0FF01C247DA222>II<90391FC00F
8090387FF0FF90B612C05A5A2607F07FC7FC390FC01F80EB800FA248486C7EA76C6C485A
A2EBC01F2607F07FC7FCEBFFFE485B5C6D5A381F1FC090C9FCA36C7EEBFFFE6CEBFFE015
F8001F80488090388003FF007EC77E81481580151FA46C143F007FEC7F006C6C13FEEBF0
076CB55A000714F06C5CC61480D90FF8C7FC22337EA126>I<12FCB2EB07F0EB3FFE497E
90B51280B6FC9038E07FC0EB801F9038000FE0A2481307A35AB3A41B347AB328>I<12FE
A71200AC127EB3AF07347BB313>I<12FCB3EC0FF0EC1FE0EC3FC0EC7F80ECFF00495A49
5A495A495A495A495A495A49C7FC12FDB57EA280EBE7E013C7EB83F0EB01F800FE7FEAFC
00147E801580141FEC0FC0EC07E0A2EC03F0EC01F815FC1E347AB326>107
D<12FCB3B3B006347AB313>II I<EB07F0EB3FFE90B57E488048803907F80FF0390FE003F84848
6C7EEB800048C7127EA2007E80A2007C8000FC1580A86C143F007E1500A2007F5C6C147E
6D13FE6C6C485A6C6C485AEBF80F6CB55A000114C06C5CD93FFEC7FCEB07F021247EA226
I<EB03F838FC1FFEEB7FFF00FDB51280B612C09038E07FE0EB801F9038000FF0481307
48EB03F8A2140115FC1400A8140115F8A2140315F06C13076CEB0FE0EB801F9038E07FC0
90B5128000FD140000FC5BEB3FFCEB07E090C8FCAE1E317AA128>I<90381F80FCEBFFF0
4813F84813FE4813FF380FF81F381FE007EBC003383F80011300481300127EA212FE5AA8
127EA2127FA2383F8001EBC003381FE007EBF81F6CB5FC6C13FE6C13F8C613E0EB3F0090
C7FCAE1E317DA128>II<EBFF80000713F04813FC487F5AEA7F00007E131C48130C91
C7FCA47EEA7F8013F86CB47E6C13E06C13F800037FC67FEB0FFF1300EC3F80A2141FA312
400060133F00781400B413FFEBFFFE5C6C5B000F5B0001138019247EA21D>II<00
FCEB07E0B3A7140F141F6C133F6C13FF6CB5FC14F76C13E76C1307D807F8C7FC1B227AA0
28>I<00FC143F007E143E157E127F6C14FCA27F001FEB01F8A2390FC003F0A33907E007
E0A2D803F013C0140FA2D801F81380141FA2D800FC13005CEB7C3E137E147EEB3E7CA3EB
1F7814F86D5AA320217FA023>I<00FCD907F0EB1F807E007E010FEC3F008115786C011F
143E177EEC1E7C261F803E147C033C13FC153E000F013C5CD9C07C1301151E151F2607E0
785C02F81303ED0F8300035EEBF0F001F114870001913807C7C014E0A201FBEB03CF0000
5E02C013EF1501017B92C7FCD97F8013FFA2013F6D5A91C7FC31217FA034>I<00FE143F
007E147EA27E15FC7F001FEB01F813C0120FEC03F0EA07E015E0EBF007120315C03801F8
0F15801200EBFC1F1500137CEB7E3E133EA2EB1F3C147CEB0F78A36D5AA26D5AA35C1307
5CA2130F91C7FC5B131EEA203EEA387CEA3FFC5BA25BEA0FC020317FA023>121
D<007FB512F0A415E0C7EA1FC0EC3F80A2EC7F0014FE495A13035C495A495A495A133F5C
49C7FC13FE485A12035B485A485A485AA2485A48B512F0B6FCA41C217EA021>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj cmti10 10 31
/Fj 31 122 df<EE3FFC4BB51280923907E007C092391F8001E0DB3F0013F0037E13034B
1307A24A5A18E04A48EB038094C7FCA314075DA4140F5DA3010FB7FCA25F903A001F8000
7EA217FE023F5C92C7FCA216015F5C147E16035FA214FE4A13075FA30101140F5F4AECC1
C0A2161F1783010316805CA2EF870013074A5CEE0F8EEE079EEE03FC010FEC00F04A91C7
FCA35C131FA2001C90CAFC127E5BEAFE3E133C137CEAF878EA78F0EA3FE0EA0F80344C82
BA2F>12 D<EA03C0EA07F0120F121F13F8A313F0EA07B0EA003013701360A213E013C012
01EA038013005A120E5A5A5A5A5A0D197A8819>44 D<387FFFF8A2B5FCA214F015057994
1E>I<120EEA3F80127F12FFA31300127E123C0909778819>I<EB0780EB0FC0EB1FE0133F
A314C01480EB0E0090C7FCB2EA03C0487E487E121FA45B1207EA006013E05BA212015B12
0390C7FC5A120E5A121812385A5A5A13347AA319>59 D<EE01C01603A21607160FA2161F
83163FA2167F16FF16EF150116CFED038FA2ED070FA2150E151E151C1538A203707FA2ED
E007A2EC01C014031580EC0700A2140EA25CA25C027FB5FCA291B6FC9139E00007F84948
1303A2495A130791C7FC5B130E5BA25B1378137013F0EA03F8486C4A7EB56C48B512F0A3
343C7BBB3E>65 D<0103B512F8A390390007F8005DA2140FA25DA2141FA25DA2143FA25D
A2147FA292C7FCA25CA25CA21301A25CA21303A25CA21307A25CA2130FA25CA2131FA25C
A2133FA25CA2137FA291C8FC497EB6FCA25C25397CB820>73 D<902607FFF8923807FFF0
614F13E0D9000FEFF0004F5AA2021F167FF1EFC0141DDA1CFCEC01CF023C16DF9538039F
800238ED071FA20278ED0E3F97C7FC0270151CA202F04B5AF0707E14E0037E14E0010117
FE4D485A02C0EC0380A20103ED0701610280140EA20107ED1C0305385B14006F13704916
0705E05B010EEC01C0A2011E913803800F61011CEC0700A2013C020E131F4C5C1338ED1F
B80178163F04F091C8FC01705CA201F04A5B187E00015DD807F816FEB500C09039007FFF
FC151E150E4C397AB84A>77 D<0103B612F017FEEFFF80903B0007F8003FC04BEB0FF017
07020FEC03F8EF01FC5DA2021F15FEA25DA2143FEF03FC5DA2027FEC07F818F092C7120F
18E04AEC1FC0EF3F004A14FEEE01F80101EC0FE091B6128004FCC7FC9138FC003F0103EC
0F80834A6D7E8301071403A25C83010F14075F5CA2011F140FA25CA2133F161F4AECE007
A2017F160F180E91C7FC49020F131C007F01FE153CB5913807F078040313F0CAEAFFE0EF
3F80383B7CB83D>82 D<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A
485A120FEBC001001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2
141F15831680143F1587007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03
FC3901F000F0222677A42A>97 D<133FEA1FFFA3C67E137EA313FE5BA312015BA312035B
A31207EBE0F8EBE7FE9038EF0F80390FFC07C013F89038F003E013E0D81FC013F0A21380
A2123F1300A214075A127EA2140F12FE4814E0A2141F15C05AEC3F80A215005C147E5C38
7801F8007C5B383C03E0383E07C0381E1F80D80FFEC7FCEA01F01C3B77B926>I<147F90
3803FFC090380FC1E090381F0070017E13784913383901F801F83803F003120713E0120F
D81FC013F091C7FC485AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01
E0003EEB03C0EC0F806CEB3E00380F81F83803FFE0C690C7FC1D2677A426>I<ED01F815
FFA3150316F0A21507A216E0A2150FA216C0A2151FA21680A2153FA202F81300EB07FE90
381F877F90383E03FF017C5BEBF80112013803F00048485B120FEBC001121F5DEA3F8014
03127F01005BA214075A485CA2140FA248ECC1C0A2141F15C3ED8380143F1587007C017F
1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901F000F0253B77B92A>I<14
7F903803FFC090380FC1E090383F00F0017E13785B485A485A485A120F4913F8001F14F0
383F8001EC07E0EC1F80397F81FF00EBFFF891C7FC90C8FC5A5AA55AA21530007C143815
78007E14F0003EEB01E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690C7FC1D2677
A426>I<ED07C0ED1FF0ED3E38ED7C3CEDF8FC15F9140115F1020313F8EDF0F016001407
5DA4140F5DA4141F5D010FB512C05B16809039003F800092C7FCA45C147EA414FE5CA413
015CA413035CA413075CA4130F5CA3131F5CA391C8FC5B121CEA7E3EA2EAFE3C137C1378
EAF8F01278EA3FC0EA0F80264C82BA19>I<EC07C0EC3FF09138FC38E0903901F01FF0EB
03E0903807C00FEB0F80011F1307D93F0013E05B017E130F13FE4914C01201151F120349
1480A2153F1207491400A25DA249137EA215FEA25D00031301140314076C6C485A000013
1FEB787BEB3FF390380FC3F0EB00031407A25DA2140F5D121C007E131F5D00FE49C7FC14
7E5C387801F8387C07E0381FFF80D803FEC8FC24367CA426>I<EB03F0EA01FFA3EA0007
5CA3130F5CA3131F5CA3133F91C8FCA35B90387E07F0EC1FFCEC783E9038FFE01F02C013
80EC800F1400485A16C05B49EB1F8012035BA2153F000715005BA25D000F147E5B15FE5D
121FD98001131C15F8163C003F01031338010013F0A216704814E0007E15F016E0EDE1C0
00FE903801E38048903800FF000038143C263B7BB92A>I<EB01C0EB07E014F0130F14E0
1307EB038090C7FCAB13F0EA03FCEA071EEA0E1F121CA212385B1270A25BEAF07E12E013
FEC65AA212015B1203A25B12075BA2000F13E013C013C1001F13C01381A2EB83801303EB
0700A2130E6C5AEA07F8EA01E0143879B619>I<EB0FC0EA07FFA3EA001F1480A2133FA2
1400A25BA2137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA2
5BA2123FA290C7FCA25AA2EA7E0EA212FE131EEAFC1CA2133C133812F81378EA7870EA7C
E0121FEA0F80123B79B915>108 D<D801E001FEEB07F03C07F803FF801FFC3C0E3C0F07
C0783E3C1E3E3C03E1E01F261C1F78D9F3C013803C383FF001F7800F02E01400007801C0
13FE007018C002805B4A4848EB1F80EAF07FD8E07E5CA200000207143F01FE1700495CA2
030F5C0001177E495C18FE031F5C120349DA8001131C18F8033F153C0007040313384902
0013F0A24B1570000F17E049017E15F019E003FEECE1C0001FEE01E34949903800FF0000
07C70038143C3E2679A444>I<D801E013FE3A07F803FF803A0E3C0F07C03A1E3E3C03E0
261C1F787F39383FF00114E0007813C000708114804A485AEAF07FEAE07EA20000140701
FE5C5BA2150F00015D5B151F5E12034990383F8380160316070007027F130049137EA216
0E000F147C49141E161C5E001FEC3C7849EB1FE00007C7EA0780292679A42F>I<147F90
3803FFC090380FC1F090381F00F8017E137C5B4848137E4848133E0007143F5B120F485A
A2485A157F127F90C7FCA215FF5A4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C
14C0007EEB1F80003EEB3F00147E6C13F8380F83F03803FFC0C648C7FC202677A42A>I<
9039078007C090391FE03FF090393CF0787C903938F8E03E9038787FC00170497EECFF00
D9F0FE148013E05CEA01E113C15CA2D80003143FA25CA20107147FA24A1400A2010F5C5E
5C4B5A131F5EEC80035E013F495A6E485A5E6E48C7FC017F133EEC70FC90387E3FF0EC0F
8001FEC9FCA25BA21201A25BA21203A25B1207B512C0A3293580A42A>I<3903C003F039
0FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0EB7F800078150000701300151C
D8F07E90C7FCEAE0FE5BA2120012015BA312035BA312075BA3120F5BA3121F5BA3123F90
C9FC120E212679A423>114 D<14FE903807FF8090380F83C090383E00E04913F0017813
7001F813F00001130313F0A215E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D1380
7F010F13C01300143F141F140F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B
381E03E06CB45AD801FEC7FC1C267AA422>I<EB0380EB07C0130FA4131F1480A3133F14
00A35B137E007FB5FCA2B6FC3800FC00A312015BA312035BA312075BA3120F5BA3121FEB
801CA2143C003F1338EB0078147014F014E0EB01C0EA3E03381F0780380F0F00EA07FCEA
01F0183579B31C>I<13F8D803FEEB01C0D8078FEB03E0390E0F8007121E121C0038140F
131F007815C01270013F131F00F0130000E015805BD8007E133FA201FE14005B5D120149
137EA215FE120349EBFC0EA20201131E161C15F813E0163CD9F003133814070001ECF070
91381EF8F03A00F83C78E090393FF03FC090390FC00F00272679A42D>I<01F0130ED803
FC133FD8071EEB7F80EA0E1F121C123C0038143F49131F0070140FA25BD8F07E140000E0
8013FEC6485B150E12015B151E0003141C5BA2153C000714385B5DA35DA24A5A14030003
5C6D48C7FC0001130E3800F83CEB7FF8EB0FC0212679A426>I<01F01507D803FC903903
801F80D8071E903907C03FC0D80E1F130F121C123C0038021F131F49EC800F00701607A2
49133FD8F07E168000E0ED000313FEC64849130718000001147E5B03FE5B0003160E495B
A2171E00070101141C01E05B173C1738A217781770020314F05F0003010713016D486C48
5A000190391E7C07802800FC3C3E0FC7FC90393FF81FFE90390FE003F0322679A437>I<
903907E007C090391FF81FF89039787C383C9038F03E703A01E01EE0FE3803C01F018013
C0D8070014FC481480000E1570023F1300001E91C7FC121CA2C75AA2147EA214FEA25CA2
1301A24A1370A2010314F016E0001C5B007E1401010714C000FEEC0380010F1307010EEB
0F0039781CF81E9038387C3C393FF03FF03907C00FC027267CA427>I<13F0D803FCEB01
C0D8071EEB03E0D80E1F1307121C123C0038140F4914C01270A249131FD8F07E148012E0
13FEC648133F160012015B5D0003147E5BA215FE00075C5BA214015DA314035D14070003
130FEBF01F3901F87FE038007FF7EB1FC7EB000F5DA2141F003F5C48133F92C7FC147E14
7C007E13FC387001F8EB03E06C485A383C1F80D80FFEC8FCEA03F0233679A428>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fk cmsy7 7 1
/Fk 1 49 df<13E0EA01F0EA03F8A3EA07F0A313E0A2120F13C0A3EA1F80A21300A25A12
3EA35AA3127812F8A25A12100D1E7D9F13>48 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fl cmss10 10 24
/Fl 24 123 df<EB01F8EB07FE010FEB03F8131F133FEB7F0EEB7E02EBFE005B92C7FC12
01ACB538FE03F8A53801FC00B3AE253B7FBA2D>12 D<EB1FF0EBFFFC000313FF000F1480
4814C09038E01FE09038000FF0001C13070018EB03F81210C7FCEC01FCA7143FEB0FFF90
B5FC1203120F381FFE01EA3FE0EA7F80130012FEA414037E387F800FEBE03F6CB5FC7E6C
13F96C13E1D801FEC7FC1E287DA628>97 D<12FEB3A2EB01FCEB0FFF013F13C090B57EB6
7E9038F03FF8EBC007496C7EEB0001486D7EA2157FA3ED3F80AAED7F00A35D5D14016C5C
EB80039038C00FF89038F03FF090B55A485C6D5BD91FFEC7FC380007F8213B7AB92B>I<
EB03FE90381FFFC0017F13E090B512F84814FC3803FC033907F8007CD80FE01338484813
081500485AA248C8FCA3127E12FEA9127FA36C7EA26D1302001F14066C6C131E6C6C137E
9038FC03FE6CB5FCC614FC6D13F0011F13C0903807FC001F287DA625>I<ED3F80B3A2EB
0FE0EB3FFC90B5FC4814BF4814FF3807FE07380FF801381FE00049137F003F143F5B127F
90C7FCA312FEAA127FA36C7E157F6C7E6D13FF380FF0033807FE076CB512BF6C143F6C13
FEEB7FF8D90FE0C7FC213B7DB92B>I<EB07F8EB1FFE90387FFF8048B512C04814E03907
FC0FF0390FF003F8EBE001391FC000FC49137C003F147E90C7123E5A127E151F12FEB7FC
A500FCC8FCA27EA2127EA2127F7E7F6C7E6D13026C6C130E6C6C133E3903FE01FE6CB5FC
6C14FC6D13F0011F13C0903803FE0020287EA625>I<14FF010713C05B5B5BEB7F819038
FE0040491300485AA21203ACB512FCA5D803F8C7FCB3AE1A3B7FBA19>I<903907E001F8
90383FFC1F90397FFE7FFC90B6FC5A3A03F81FF8003907F00FE0EBE00748486C7EA24848
6C7EA86C6C485AA26C6C485AEBF00F6C6C485A48B55A92C7FC485BEB3FFCEB07E090C9FC
A37F7F6CB512C015FC15FF4815804815C03A3F80007FE048C7EA0FF0007E140700FEEC03
F8481401A46C1403007E15F0D87F80130F6C6CEB1FE03A1FFC01FFC06CB612806C150000
0114FC6C6C13F0010790C7FC26387EA52A>I<12FEB3A2EB01FC90380FFF804913C0017F
13E090B512F039FFF81FF8EBE007EBC003018013FC14011300A35AB3A71E3A7AB92B>I<
12FFA81200AC127FB3B308397BB814>I<12FEB3B3B3A4073A7AB914>108
DI<EB01FC39FE0FFF804913C0017F13E090B512F039FFF81FF8EBE007EBC0030180
13FC14011300A35AB3A71E267AA52B>I<EB03FE90380FFF80013F13E090B512F8488039
03FE03FE3907F800FF4848EB7F8049133F4848EB1FC04848EB0FE0A290C712074815F0A2
007E140300FE15F8A9007FEC07F0A36C6CEB0FE0A26C6CEB1FC06D133F6C6CEB7F806C6C
EBFF003903FE03FE6CB55A6C5C6D5B011F13C0D903FEC7FC25287EA62A>I<EB01FC38FE
0FFF013F13C090B57EB67E9038F03FF8EBC00F90388003FC1300486D7E14008181A21680
153FA9ED7F00A35D5D14016C495AEB80076D485A9038F03FF090B55A485C6D5BD91FFEC7
FCEB07F890C9FCAF21367AA52B>I<903907F03F80EB3FFCEBFFFE48EBFFBF4814FF3807
FE07380FF80148487E5B4848137F5B007F143F90C7FCA312FEA97E7EA27F123F6D137F6C
7E15FF380FF8013807FE0790B6FC6C143FC613FEEB7FF8EB1FE090C7FCAF21367DA52B>
I<14F0EAFC07130F133F137F13FF00FD130013FCEAFFF05B5BA25B90C7FCA35AB3A41426
7AA51C>I<EB7FE03801FFFC0007EBFF804814C05A383FC03F90380007801401007E90C7
FCA4127FA26C7E13F0EBFF806C13F06C13FC6C7F6C7FC61480131F010013C0143FEC0FE0
A21407A3124012600078EB0FC000FE131F39FFC07F8090B5FC6C1400001F5B000313F838
007FC01B287EA620>II<00FEEB01FCB3AA1403A214076C131F387F807F
90B5FC6C13F914F1000F13C1D803FCC7FC1E267AA42B>I<B4EC0FE06CEC1FC0A27F003F
EC3F80A27F001FEC7F00A26C6C137E15FEA26C6C485AA36C6C485AA3D801FC5B14070000
5C13FE140F017E5B137F141F013F5BA2149FD91FBFC7FCA3EB0FBE14FE6D5AA323257FA4
26>I<00FED901FEEB01FC007F17F802031403A2018013DF003FEE07F01407ED9F80D81F
C016E0020F140F158FD80FE002C013C0030F131F141FED07E0D807F01680021E143F143E
0003DA03F0130013F8023C5C0001017C147EED01F813FC027814FE0000D9F8005BA24A13
FC017C5D167D137E5C013EEC3DF0013F143F5C011F5D161F36257FA439>I<B4EC0FE06C
EC1FC0A26C7EED3F807F001FEC7F00A26C7E15FE7F00075C1401EA03F85DEBFC0312015D
3800FE075D137E140F017F5B133FA290381F9F80A292C7FC130FA2EB079E14DEA2EB03FC
A26D5AA35C13035CA213075C130FA2495A1220D8383FC8FCEA3FFEA25B5BEA0FE023367F
A426>121 D<007FB512FCA415F8C7EA07F0140FEC1FE015C0EC3F80147FECFF005C1301
495A495A5C130F495A495A5C137F49C7FC485A5B1203485A5B485A121F485A5B48B512FE
B6FCA41F257EA424>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fm cmmi7 7 7
/Fm 7 111 df<013FB512E016FC903901FC007F4AEB0F80EE07C0010315E016035C17F0
1307EE07E05CA2010FEC0FC017804AEB1F00163E011F14F8ED07F091B51280A290393F80
0FE0ED03F002007F15015BA2137EA201FE1303A2495CA20001160817184914E017380003
EDF070B5D8C00113E0923800FFC0C9EA3F002D297DA732>82 D<000FB712E05A9039800F
E007D81E009038C001C05A0038011F1300123000705C00601501023F148012E0481400A2
C74890C7FCA2147EA214FEA25CA21301A25CA21303A25CA21307A25CA2130FA25CA2131F
001FB57EA22B287DA727>84 D<130E131F5BA2133E131C90C7FCA7EA03E0487EEA0C78EA
187C1230A212605B12C0A2EA01F0A3485AA2485AA2EBC180EA0F81A2381F0300A213066C
5A131CEA07F06C5A11287DA617>105 D<1407EC0F80141FA21500140E91C7FCA7EB03E0
EB07F8EB0C3C1318EB303E136013C0A248485AA2C7FCA25CA4495AA4495AA4495AA4495A
A21238D87C1FC7FC12FC133E485AEA70F8EA7FE0EA1F80193380A61B>I<133EEA07FEA2
EA007CA213FCA25BA21201A25BA21203EC07809038E01FC0EC38600007EB61E014C3EBC1
87EBC307D80FC613C09038CC038001B8C7FC13E0487E13FEEB3F80EB0FC0486C7E130300
3E1460A2127EECC0C0127CECC18012FC903801E30038F800FE0070137C1B297CA723>I<
3B07801FC007E03B0FE07FF01FF83B18F0E0F8783C3B30F1807CE03E903AFB007D801ED8
60FEEB3F005B49133E00C14A133E5B1201A24848495BA35F4848485A1830EE01F0A23C0F
8003E003E060A218C0933801E180271F0007C013E3933800FF00000E6D48137C341B7D99
3B>109 D<3907801FC0390FE07FF03918F0E0F83930F1807CEBFB00D860FE133C5B5B00
C1147C5B1201A248485BA34A5AEA07C01660EC03E0A23A0F8007C0C0A2EDC180913803C3
00D81F0013C7EC01FE000EEB00F8231B7D9929>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fn cmr7 7 4
/Fn 4 52 df<140EB3A2B812E0A3C7000EC8FCB3A22B2B7DA333>43
D<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49
D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15
005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003
0012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C00
30137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC3800
01E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F01
F03807FFC0C690C7FC19277DA521>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fo cmsy10 10 16
/Fo 16 107 df<121C127FEAFF80A5EA7F00121C0909799917>1
D<0060150600F8150F6C151F007E153F6C157E6C6C14FC6C6CEB01F86C6CEB03F06C6CEB
07E06C6CEB0FC06C6CEB1F80017EEB3F006D137E6D6C5A90380FC1F8903807E3F0903803
F7E06DB45A6D5B6EC7FCA24A7E497F903803F7E0903807E3F090380FC1F890381F80FC90
383F007E017E7F49EB1F804848EB0FC04848EB07E04848EB03F04848EB01F84848EB00FC
48C8127E007E153F48151F48150F00601506282874A841>I<EB0380497EA7397803803C
00FC147E00FE14FE397F8383FC393FC387F8390FE38FE03903FBBF803900FFFE00EB3FF8
EB0FE0A2EB3FF8EBFFFE3903FBBF80390FE38FE0393FC387F8397F8383FC39FE0380FE00
FC147E0078143C390007C000A76D5A1F247BA62A>I<007FB812F8B912FCA26C17F8CCFC
AE007FB812F8B912FCA26C17F8CCFCAE007FB812F8B912FCA26C17F836287BA841>17
D<EF0180EF07C0171FEF7F80933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0
ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FC
EA3FF0EA7FC048CBFC5AEA7F80EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB0FF8EB03FE9038
00FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE923800FF80EE3FE0EE0F
F8EE03FE933800FF80EF3FC0170FEF038094C7FCAE007FB81280B912C0A26C1780324479
B441>20 D<181EA4181F84A285180785727EA2727E727E85197E85F11F80F10FC0F107F0
007FBA12FCBCFCA26C19FCCCEA07F0F10FC0F11F80F13F00197E61614E5A4E5AA24E5A61
180F96C7FCA260181EA4482C7BAA53>33 D<D90FF0ED07F0D93FFEED3FFE90B56C91B5FC
00036E903903F807C02707F07FF0903907C001E0270F801FF890390F8000F090260007FC
013EC71270001E6D6C491438486D6C0178141C00386D6D5A48DA7FC1150E92383FE3E000
6091261FF3C01406EEF78000E0DA0FFF1507486E90C812036F5AA26F7E6F7F707EA24C7E
6C4A6D14070060DBEFF81406ED03CF0070912607C7FC140E92380F83FE6CDB01FF141CDB
1E006D133C6C023E6D6C13786C4A6D6C13F0000FD901F090381FF8016C6C484890390FFE
0FE02703E01FC00103B512C0C6B5C76C1400D97FFC9138007FFCD90FE0ED0FF048267BA4
53>49 D<91381FFFFE91B6FC1303010F14FED91FF0C7FCEB7F8001FEC8FCEA01F8485A48
5A485A5B48C9FCA2123EA25AA2127812F8A25AA2B712FE16FFA216FE00F0C9FCA27EA212
78127CA27EA27EA26C7E7F6C7E6C7E6C7EEA00FEEB7F80EB1FF06DB512FE010314FF1300
021F13FE283279AD37>I<EE0180EE03C01607A2EE0F80A2EE1F00A2163EA25EA25EA24B
5AA24B5AA24B5A150F5E4BC7FCA2153EA25DA25DA24A5AA24A5AA24A5AA24A5AA24AC8FC
A2143EA25CA25CA2495AA2495AA2495AA2495AA249C9FCA2133EA25B13FC5B485AA2485A
A2485AA2485AA248CAFCA2123EA25AA25AA25A12602A4E75BB00>54
D<0060161800F0163C6C167CA200781678007C16F8A2003C16F0003E1501A26CED03E0A2
6C16C06D1407A2000716806D140FA26C6CEC1F00A26CB612FEA36C5D01F8C7127CA2017C
5CA2013C5C013E1301A2011E5C011F1303A26D6C485AA201075CECC00FA2010391C7FC6E
5AA2903801F03EA20100133CECF87CA2EC7878EC7CF8A2EC3FF0A26E5AA36E5AA36E5A6E
C8FC2E3C80B92F>56 D<0060161800F0163CB3B26C167CA2007C16F8A26CED01F0003F15
036C6CEC07E06C6CEC0FC0D807F0EC3F80D803FE903801FF003A00FFC00FFC6DB55A011F
14E0010391C7FC9038007FF82E347CB137>91 D<EC01F8140FEC3F80ECFC00495A495A49
5AA2130F5CB3A7131F5C133F49C7FC13FEEA03F8EA7FE048C8FCEA7FE0EA03F8EA00FE13
7F6D7E131F80130FB3A7801307A26D7E6D7E6D7EEC3F80EC0FF814011D537ABD2A>102
D<12FCEAFFC0EA07F0EA01FCEA007E7F80131F80130FB3A7801307806D7E6D7EEB007EEC
1FF0EC07F8EC1FF0EC7E00495A495A495A5C130F5CB3A7131F5C133F91C7FC137E485AEA
07F0EAFFC000FCC8FC1D537ABD2A>I<14C0EB01E01303A214C01307A21480130FA2EB1F
00A2131E133EA25BA2137813F8A2485AA25B1203A25B1207A2485AA290C7FC5AA2123EA2
123C127CA2127812F8A41278127CA2123C123EA27EA27E7FA26C7EA212037FA212017FA2
6C7EA21378137CA27FA2131E131FA2EB0F80A2130714C0A2130314E0A21301EB00C01352
78BD20>I<126012F07EA21278127CA2123C123EA27EA27E7FA26C7EA212037FA26C7EA2
12007FA21378137CA27FA2131E131FA2EB0F80A2130714C0A2130314E0A414C01307A214
80130FA2EB1F00A2131E133EA25BA2137813F8A25B1201A2485AA25B1207A2485AA290C7
FC5AA2123EA2123C127CA2127812F8A25A126013527CBD20>I<126012F0B3B3B3B3A912
60045377BD17>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fp cmmi10 10 38
/Fp 38 122 df<EC3FC0ECFFF8903807E07C90380F801FD93F00EB800C017E130F499038
07C01C4848ECE018485A484801031338000FEDF0305B001F16704848156017E0007F16C0
90C713F1178016F34816004815F716FE5EA2485D5EA4007E1407150F003E91381DF81800
3F14796C02E11338270F8007C013303B07E03F007CF02601FFF8EB3FC026003FC0EB0F80
2E267DA435>11 D<ED07F0ED1FFE9238780F809238E007C0913901C003E09138038001DA
070013F0140E4A13004A14F8143002701301146002E014F05C010114035C17E001031407
91C713C0EE0F8049EC1F000106143E913803FE7C90390E07FFF890390C0E03E091380FFF
F0913803FC78011CC7127C011880A28213381330A2178013701360A301E0143F491500A3
00015D167E5B16FE00035D6D495AA24B5A00074A5AD806E0495A0160495A0170013EC7FC
D80E3813FC390C1E03F0903807FFC0D901FEC8FC001CCAFC1218A312381230A312701260
A312E05AA22D4B7EBA2F>I<EB07F0D91FFC1430D97FFE147090B5146000036E13E0486E
13C0D9F01F1301270F8007E01380261F00011303001CD900F0130048EC7007160648EC30
0E0060EC380CED181C00E01518C8121CED0C3816301670166016E05EA2150D5EA2150F93
C7FCA2150EA3150CA3151CA215181538A45DA45DA44A5AA35D2C377FA42B>I<133F14C0
EB07F06D7E801301A26D7EA3147FA36E7EA36E7EA36E7EA36E7EA36E7EA36E7EA26E7EA2
14014A7E5C4A7E91381E3F80143C14784A6C7E1301EB03E049486C7EEB0F80EB1F00496D
7E137E5B48486D7E485A485A000F6E7E485A485A48C87E12FE167F4816800070151F293B
7CB930>21 D<15FE913803FF8091380F83E091383E01F091387C00F85C494813FC010314
7C4948137E5C130F495AA249C7FC16FE5B137EA2150113FE4914FCA20001140316F85BED
07F01203ED0FE04914C0151F000715806DEB3F00157E6D5B390FEE01F09038E707E09038
C3FF80D9C0FCC7FC001F90C8FCA25BA2123FA290C9FCA25AA2127EA212FEA25AA2127027
377EA42B>26 D<027FB512C00103B612E0130F5B017F15C09026FF81FEC7FC3901FC007E
48487F485A497F484880485AA248C7FCA2127EA2153F00FE92C7FC5AA25D157E5A5DA24A
5AA24A5A007C495A5D003C495A003E013FC8FC6C137C380F81F83803FFE0C66CC9FC2B25
7DA32F>I<013FB512FE90B7FC5A5A4815FE260F801CC7FCEA1E005A00385B5A5A481378
C7FC147014F0A4495AA31303A3495AA3130FA25C131FA3133FA291C8FC131E28257EA324
I<121C127FEAFF80A5EA7F00121C0909798817>58 D<121C127FEAFF80A213C0A3127F
121C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>II<1760177017F01601A21603A216
07160FA24C7EA216331673166316C3A2ED0183A2ED0303150683150C160115181530A215
60A215C014011580DA03007FA202061300140E140C5C021FB5FC5CA20260C7FC5C83495A
8349C8FC1306A25BA25B13385B01F01680487E000716FFB56C013F13FF5EA2383C7DBB3E
65 D<9339FF8001C0030F13E0037F9038F80380913A01FF807E07913A07F8000F0FDA1F
E0EB079FDA3F80903803BF0002FFC76CB4FCD901FC80495A4948157E495A495A4948153E
017F163C49C9FC5B1201484816385B1207485A1830121F4993C7FCA2485AA3127F5BA312
FF90CCFCA41703A25F1706A26C160E170C171C5F6C7E5F001F5E6D4A5A6C6C4A5A16076C
6C020EC8FC6C6C143C6C6C5C6CB4495A90393FE00FC0010FB5C9FC010313FC9038007FC0
3A3D7CBA3B>67 D<0103B7FC4916E018F8903B0007F80007FE4BEB00FFF03F80020FED1F
C0180F4B15E0F007F0021F1503A24B15F81801143F19FC5DA2147FA292C8FCA25C18035C
A2130119F84A1507A2130319F04A150FA2010717E0181F4A16C0A2010FEE3F80A24AED7F
00187E011F16FE4D5A4A5D4D5A013F4B5A4D5A4A4A5A057FC7FC017F15FEEE03FC91C7EA
0FF049EC7FC0B8C8FC16FC16C03E397DB845>I<0103B812F05BA290260007F8C7123F4B
1407F003E0020F150118005DA2141FA25D19C0143FA24B1330A2027F1470190092C71260
17E05C16014A495A160F49B6FCA25F9138FC000F01031407A24A6DC8FCA201075C18034A
130660010F160693C7FC4A150E180C011F161C18184A1538A2013F5E18F04A4A5AA2017F
15074D5A91C8123F49913803FF80B9FCA295C7FC3C397DB83D>I<0103B812E05BA29026
0007F8C7123F4B140FF003C0140F18015DA2141FA25D1980143FA25D1760027F14E095C7
FC92C75AA24A1301A24A495A16070101141F91B6FC94C8FCA2903903FC001F824A130EA2
1307A24A130CA2010F141CA24A90C9FCA2131FA25CA2133FA25CA2137FA291CBFC497EB6
12C0A33B397DB835>I<0103B5D8F803B512F8495DA290260007F8C73807F8004B5DA202
0F150F615DA2021F151F615DA2023F153F615DA2027F157F96C7FC92C8FCA24A5D605CA2
49B7FC60A202FCC7120101031503605CA201071507605CA2010F150F605CA2011F151F60
5CA2013F153F605CA2017F157F95C8FC91C8FC496C4A7EB690B6FCA345397DB845>72
D<902603FFF893383FFF80496081D900079438FF80000206DC01BFC7FCA2020E4C5A1A7E
020C1606190CDA1C7E16FE4F5A02181630A20238166162023016C1F00181DA703F158395
380303F002601506A202E0ED0C076202C01518183001016D6C140F06605B028015C0A201
03923801801FDD03005B140092380FC00649173F4D91C8FC01065DA2010E4B5B4D137E13
0C6F6C5A011C17FEDCE1805B011802E3C7FCA2013802E6130104EC5C1330ED03F8017016
034C5C01F05CD807FC4C7EB500E0D9C007B512F01680150151397CB851>77
D<902603FFF891381FFFF8496D5CA2D90007030113006FEC007C02061678DA0EFF157081
020C6D1460A2DA1C3F15E0705CEC181F82023815016F6C5C1430150702706D1303030392
C7FC02607FA2DAE0015C701306ECC0008201016E130EEF800C5C163F0103EDC01C041F13
1891C713E0160F49EDF03818300106140717F8010E02031370EFFC60130CEE01FE011C16
E004005B011815FF177F1338600130153FA20170151F95C8FC01F081EA07FCB512E01706
A245397DB843>I<4BB4FC031F13F09238FE01FC913903F0007EDA07C0EB1F80DA1F80EB
0FC0023EC7EA07E002FCEC03F0495A4948EC01F8495A4948EC00FC495A49C912FE49167E
13FE49167F1201485AA2485AA2120F5B001F17FFA2485AA34848ED01FEA400FFEE03FC90
C9FCA2EF07F8A2EF0FF0A218E0171F18C0EF3F806C167F180017FE4C5A6C6C5D1603001F
4B5A6D4A5A000FED1F806C6C4AC7FC6D147E0003EC01F8D801FC495AD8007EEB0FC09026
3F807FC8FC903807FFF801001380383D7CBA3F>I<0103B7FC4916E018F8903B0007F800
07FC4BEB00FE187F020FED3F80F01FC05DA2021F16E0A25DA2143FF03FC05DA2027FED7F
80A292C8130018FE4A4A5A604AEC07F04D5A0101ED3FC04CB4C7FC91B612FC17E0D903FC
CAFCA25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA291CBFC497EB6FCA3
3B397DB835>I<0103B612F849EDFF8018E0903B0007F8001FF84BEB03FCEF00FE020F15
7FA24BEC3F80A2021F16C0A25DA2143FF07F805DA2027FEDFF006092C7485A4D5A4A4A5A
4D5A4AEC1F80057FC7FC0101EC07F891B612E094C8FC9139FC000FC00103EC03F0707E4A
6D7E831307177E5C177F010F5D5F5CA2011F1401A25CA2133F16034A4A1360A2017F17E0
19C091C71401496C01011480B61503933900FE0700EF7E0ECAEA1FFCEF07F03B3B7DB83F
82 D<92391FE00380DBFFFC130002036D5A91390FE01F8F91393F0007DF027EEB01FE02
F81300495A4948147E177C4948143C495AA2011F153891C8FCA3491530A28094C7FC8080
6D7E14FEECFFE06D13FE6DEBFFC06D14F06D806D80021F7F02037FEC003F03037F150016
7F163F161FA3120C160FA2001C151F94C7FCA3003C153EA25E003E5D127E007F4A5A6D49
5A6DEB0FC0D8F9F0495AD8F0FE01FEC8FC39E03FFFF8010F13E0D8C00190C9FC313D7CBA
33>I<277FFFFC01B500F890B51280B5FC60000390C7D807FCC7380FF80001FC4BEC03E0
00016204035E98C7FC621A0604075DA2040F5DA2041B5D6216336D02735D1663000003C3
4A5A83DB01834AC8FC04815CDB0301140603075D1506030C5DA203185D19700330156061
15606D01E04A5A15C090267F01804AC9FC17FEDA030014060400130E0206150C020E5D14
0C4A5DA24A5D18E04A5D715A5C4A92CAFCA26DC85AA2013E157C1778133C177013380130
1560513B7CB84E>87 D<EC3FC0903801FFF0903807E03C90380F800E90383F0007017E13
1F49137F484813FF485A485A120F4913FE001F143848481300A2127F90C8FCA35A5AA45A
A315031507007E1406150E003E143C003F14706C14E0390F8007C03907C03F003801FFF8
38003FC020267DA424>99 D<163FED1FFFA3ED007F167EA216FEA216FCA21501A216F8A2
1503A216F0A21507A2027E13E0903803FF8790380FC1CF90381F00EF017EEB7FC049133F
485A4848131F000715805B000F143F485A1600485A5D127F90C7127EA215FE5A485CA214
01A248ECF80CA21403161CEDF0181407007C1538007E010F1330003E131F027B13706C01
E113E03A0F83C0F9C03A03FF007F80D800FCEB1F00283B7DB92B>I<EC3FC0903801FFF0
903807E07890381F801C90387E001E49130E485A485A1207485A49131E001F141C153C48
4813F8EC03E0007FEB3FC09038FFFE0014E090C8FC5A5AA7007E140315071506003E140E
153C6C14706C6C13E0EC07C03903E03F003801FFF838003FC020267DA427>I<16F8ED03
FEED0F8792381F0F80ED3E3F167F157CA215FC1700161C4A48C7FCA414035DA414075DA2
0107B512F0A39026000FE0C7FC5DA4141F5DA4143F92C8FCA45C147EA514FE5CA413015C
A4495AA45C1307A25C121E123F387F8F80A200FF90C9FC131E12FEEA7C3CEA7878EA1FF0
EA07C0294C7CBA29>I<EC07E0EC1FF891387C1C38903901F80EFC903803F007903807E0
03EB0FC090381F8001D93F0013F85B017E130313FE16F0485A150712034914E0A2150F12
074914C0A2151FA2491480A2153FA2160000035C6D5B00015B4A5A3900F8077E90387C1E
FEEB1FF8903807E0FC90C7FC1401A25DA21403001E5C123F387F80075D00FF495A49485A
4849C7FC007C137E383C01F8381FFFE0000390C8FC26367FA428>I<14E0EB03F8A21307
A314F0EB01C090C7FCAB13F8EA03FEEA070F000E1380121C121812381230EA701F126013
3F00E0130012C05BEA007EA213FE5B1201A25B12035BA20007131813E01438000F133013
C01470EB806014E014C01381EB838038078700EA03FEEA00F815397EB71D>105
D<150FED3F80A2157FA31600151C92C7FCABEC0F80EC3FE0ECF0F0903801C0F849487E14
005B130E130C131CEB1801133801305BA2EB0003A25DA21407A25DA2140FA25DA2141FA2
5DA2143FA292C7FCA25CA2147EA214FEA25CA21301001E5B123F387F83F0A238FF87E049
5A00FE5BD87C1FC8FCEA707EEA3FF8EA0FC0214981B722>I<D803E0017F14FE3D07F801
FFE003FFC03D0E3C0781F00F03E03D1C3E1E00F83C01F026383F38D9FC707F00304914E0
4A90387DC000007049EB7F8000604991C7FCA200E090C700FE1301485A017E5CA2000002
01140301FE5F495CA203031407000160495C180F03075D1203494A011F13601980030F02
3F13E00007F000C0495C1901031F023E1380000F1803494A150061033F150E001FEF1E1C
4991C7EA0FF80007C7000EEC03E043267EA449>109 D<D803E0137F3A07F801FFE03A0E
3C0781F03A1C3E1E00F826383F387F00305B4A137C00705B00605BA200E090C712FC485A
137EA20000140101FE5C5BA2150300015D5B15075E120349010F133016C0031F13700007
ED80605B17E0EE00C0000F15014915801603EE0700001FEC0F0E49EB07FC0007C7EA01F0
2C267EA432>I<3903E001F83907F807FE390E3C1E07391C3E381F3A183F703F800038EB
E07F0030EBC0FF00705B00601500EC007E153CD8E07F90C7FCEAC07EA2120013FE5BA312
015BA312035BA312075BA3120F5BA3121F5B0007C9FC21267EA425>114
D<EB01C0497E1307A4130F5CA3131F5CA3133F91C7FC007FB51280A2B6FCD8007EC7FCA3
13FE5BA312015BA312035BA312075BA3120FEBC006A2140E001F130CEB801C141814385C
146014E0380F81C038078780D803FEC7FCEA00F819357EB31E>116
D<13F8D803FE1438D8070F147C000E6D13FC121C1218003814011230D8701F5C12601503
EAE03F00C001005B5BD8007E1307A201FE5C5B150F1201495CA2151F120349EC80C0A215
3F1681EE0180A2ED7F0303FF130012014A5B3A00F8079F0E90397C0E0F1C90393FFC07F8
903907F001F02A267EA430>I<01F8EB03C0D803FEEB07E0D8070F130F000E018013F012
1C12180038140700301403D8701F130112601500D8E03F14E000C090C7FC5BEA007E16C0
13FE5B1501000115805B150316001203495B1506150E150C151C151815385D00015C6D48
5A6C6C485AD97E0FC7FCEB1FFEEB07F024267EA428>I<903907E001F090391FF807FC90
39783E0E0F9039E01F1C1FD801C09038383F803A03800FF07F0100EBE0FF5A000E4A1300
000C157E021F133C001C4AC7FC1218A2C7123FA292C8FCA25CA2147EA214FEA24A130CA2
0101141C001E1518003F5BD87F81143801835C00FF1560010714E03AFE0E7C01C0D87C1C
495A2778383E0FC7FC391FF00FFC3907C003F029267EA42F>120
D<13F8D803FE1470D8070F14F8000EEB8001121C121800381403003015F0EA701F126001
3F130700E0010013E012C05BD8007E130F16C013FE5B151F000115805BA2153F00031500
5BA25D157EA315FE5D1401000113033800F80790387C1FF8EB3FF9EB0FE1EB00035DA200
0E1307D83F805B007F495AA24A5A92C7FCEB003E007C5B00705B6C485A381E07C06CB4C8
FCEA01FC25367EA429>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fq cmbx12 12 34
/Fq 34 122 df45 D<EC03C01407141F147FEB03FF133FB6FCA4
13C3EA0003B3B3ADB712FCA5264177C038>49 D<ECFFE0010F13FE013F6D7E90B612E000
0315F82607FC0313FE3A0FE0007FFFD81F806D138048C7000F13C0488001C015E001F07F
00FF6E13F07F17F881A46C5A6C5A6C5AC9FC17F05DA217E05D17C04B13804B1300A2ED1F
FC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC0FF04A5AEC3F804AC7127814FE495A494814F8
D907E014F0495A495A49C8FC017C140149140348B7FC4816E05A5A5A5A5AB8FC17C0A42D
417BC038>I<ECFFF0010713FF011F14C0017F14F049C66C7ED803F8EB3FFED807E06D7E
81D80FF86D138013FE001F16C07FA66C5A6C4815806C485BC814005D5E4B5A4B5A4B5A4A
5B020F1380902607FFFEC7FC15F815FF16C090C713F0ED3FFCED0FFEEEFF80816F13C017
E0A26F13F0A217F8A3EA0FC0EA3FF0487EA2487EA217F0A25D17E06C5A494913C05BD83F
80491380D81FF0491300D80FFEEBFFFE6CB612F800015D6C6C14C0011F49C7FC010113E0
2D427BC038>I<163FA25E5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F
87EC1F07143E147E147C14F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A48
5A485A120F5B48C7FC123E5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038
I<0007150301E0143F01FFEB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0
C9FCAAEC3FF001C1B5FC01C714C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D
13804915C0497F6C4815E0C8FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D
6C4815E05B007EC74813C0123E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6C
B612F0C65D013F1480010F01FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13
FC49B6FC01079038807F8090390FFC001FD93FF014C04948137F4948EBFFE048495A5A14
00485A120FA248486D13C0EE7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000
FF017F13E091B512F89039F9F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13
E0A24915F0A317F85BA4127FA5123FA217F07F121FA2000F4A13E0A26C6C15C06D491380
6C018014006C6D485A6C9038E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D
427BC038>I<DCFFF01470031F01FF14F04AB6EAE0010207EDF803023FEDFE0791B539E0
01FF0F4949C7EA3F9F010701F0EC0FFF4901C0804990C87E4948814948814948167F4849
163F4849161F5A4A160F485B19074890CAFC19035A5BA2007F1801A34994C7FC12FFAE12
7F7F1AF0A2123FA27F6C18011AE06C7F19036C6D17C06E16077E6C6DEE0F806C6DEE1F00
6D6C5E6D6C167E6D6C6C5D6D6D4A5A6D01F0EC07F0010101FEEC1FE06D903AFFF001FF80
023F90B6C7FC020715FC020115F0DA001F1480030001F8C8FC44467AC451>67
D<B9FC18F018FE727E19E026003FFEC7001F13F805017F9438003FFF060F7F727F727F72
7F84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1BC0A51B8061A21B006162193F
624F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13F8BA5A19C04EC8FC18F095C9
FC4B447CC356>I<BA1280A419C026003FFEC7121F1701EF007F183F181F180F180719E0
1803A31801A3EE01E0F000F0A419001603A31607160F167F91B6FCA59138FE007F160F16
071603A31601A693C9FCAFB712F0A53C447CC346>70 D73 D<B712F0A526003FFECAFCB3B1F00780A4180F1900A460A3
60A2187EA218FE170117031707171F177FEE03FFB95AA539447CC343>76
D80 D<B812F8EFFFC018F818FE727ED8001F90C7003F13
E005037F05007F727E727E727EA28684A286A762A24E90C7FCA24E5A61187F943801FFF0
05075B053F138092B7C8FC18F818E018F892C77FEF3FFF050F7F717F717FA2717FA2717F
A785A61B0F85A2187F73131F72141EB700E06DEB803E72EBE0FC72EBFFF8060114F0726C
13E0CC0007138050457DC354>82 D<003FBA12E0A59026FE000FEB8003D87FE09338003F
F049171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5C81700B3B3
A20107B8FCA545437CC24E>84 D<B76C010FB512F8A526003FFEC93803E000B3B3A9011F
17076280190F6D606F151F6D95C7FC6D6D5D197E6D6D5D6D6D1403DA7FFC4A5A6EB4EC3F
F0020F9039F003FFE06E90B61280020193C8FC6E6C14FC030F14E09226007FFEC9FC4D45
7CC356>I<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E
486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038
FFFC01000313E0000F1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D8
3FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD
36>97 D<EC3FFC49B512C0010F14F0013F14FC90397FF003FE9039FFC001FF0003495A48
494813805B120F485AA2485A6F1300007F6E5AED00784991C7FCA212FFAC6C7EA3123F6D
EC03C0A26C6C1407000F16806D140F6C6DEB1F006C6D133E6C01F05B3A007FFC03F86DB5
5A010F14C0010391C7FC9038003FF82A2F7CAD32>99 D<EE03FEED07FFA5ED001F160FB1
EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF807FF48EBC00148903880007F4890C7
123F4848141F49140F121F485AA3127F5BA212FFAC127FA37F123FA26C6C141FA26C6C14
3F0007157F6C6C91B5FC6CD9C00314FC6C9038F01FEF6DB5128F011FEBFE0F010713F890
26007FC0EBF80036467CC43E>I<EC3FF80103B57E010F14E0013F8090397FF83FF89039
FFC007FC48496C7E48496C7E48486D1380485A001FED7FC05B003FED3FE0A2127F5B17F0
161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17F06C7E16016C6C15E06C6C14036C
6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE011FB55A010714F0010114C0902600
1FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F049B512F849EB8FFC90390FFE0FFE
90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0ED00C01600ABB612F8A5C601E0C7
FCB3B0007FEBFFE0A527467DC522>I<DAFFE0137E010F9039FE03FF80013FEBFF8F90B8
12C048D9C07F133F489038001FF84848EB0FFC4848903907FE1F80001F9238FF0F00496D
90C7FCA2003F82A8001F93C7FCA26D5B000F5D6C6C495A6C6C495A6C9038C07FF04890B5
5A1680D8078F49C8FC018013E0000F90CAFCA47F7F7F90B612C016FC6CEDFF8017E06C82
6C16FC7E000382000F82D81FF0C77ED83FC014074848020113808248C9FC177FA46D15FF
007F17006D5C6C6C4A5A6C6C4A5AD80FFEEC3FF83B07FFC001FFF0000190B612C06C6C92
C7FC010F14F8D9007F90C8FC32427DAC38>I<EB7FC0B5FCA512037EB1ED07FE92383FFF
8092B512E002C114F89139C7F03FFC9138CF801F9139DF000FFE14DE14FC4A6D7E5CA25C
A35CB3A7B60083B512FEA537457CC43E>I<137C48B4FC4813804813C0A24813E0A56C13
C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA512037EB3AFB6FCA518467CC520>
I108 D<90277F8007FEEC0FFC
B590263FFFC090387FFF8092B5D8F001B512E002816E4880913D87F01FFC0FE03FF8913D
8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C130F02BC5D02F86D496D7E
A24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC5E>I<90397F8007FEB59038
3FFF8092B512E0028114F8913987F03FFC91388F801F000390399F000FFE6C139E14BC02
F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>I<EC1FFC49B512C0010714F001
1F14FC90397FF80FFF9026FFC0017F48496C7F4848C7EA3FE000078248486E7E49140F00
1F82A2003F82491407007F82A400FF1780AA007F1700A46C6C4A5AA2001F5E6D141F000F
5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7FC6DB55A010F14F8010114C090
26001FFCC8FC312F7DAD38>I<90397FC00FF8B590B57E02C314E002CF14F89139DFC03F
FC9139FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E05C7013F0A2EF7FF8A4EF
3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E4913006E495A9139DFC07F
FC02CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536407DAC3E>I<90387F80
7FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC14F8A214F0ED0F
FC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>114
D<90391FFC038090B51287000314FF120F381FF003383FC00049133F48C7121F127E00FE
140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15
806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA2
6DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C
I<EB01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C6
01E0C7FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D
13FC01015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81
B3A85EA25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F1407010313FE
9026007FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E006C163C8001
7F5D8017F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6D
EBE01E163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90
C8FCA26E5AA26E5AA21578A215F85D14015D001F1303D83F805B387FC007D8FFE05B140F
92C9FC5C143E495A387FC1F8EB07F06CB45A6C5B000790CAFCEA01FC36407EAB3B>121
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fr cmmi9 9 27
/Fr 27 123 df<147F903803FFE090380FC0F890383F007C017C017E1360497F484815E0
484890381F80C0120748481481EEC1804848130F003F15C390C7140016C74815C6007E15
CE16DC16D816F8485D5E5E127CA3151F6C143F037713C06C903801E7E03A0F800783E13B
07C07E03E3803B01FFF801FF003A007F80007C2B227EA031>11 D<ED0FE0ED7FF8913801
F03E913803801F913907000F80020E13074A14C05C5C146014E0495A5C130391C7120F17
8049141F010615005E010E143E010C5C913807F8F890391C0FFFE09039181C0FC091381F
FFE0913807F9F00138C77E1330167CA20170147E1360A313E05BA3000115FE495CA30003
4A5AA24B5A4B5A487E00064A5A6D495A0170013EC7FCD80E3813FC390C1E03F090380FFF
C0D901FCC8FC001CCAFC1218A312381230A312701260A312E0A22A447FB42B>I<EB1FC0
D97FF0130348486C1307486D1306486D130E486D130C261FC03F131C3A3E000F8018003C
0107133848903803C03000700101137048010013604814E016E0C8EA60C01561ED718015
331600A215371536A2153E153CA21538A31530A21570A3156015E0A44A5AA44A5AA44AC7
FCA328327FA028>I<EC01F8EC0FFE91383E0F8091387C07C0903901F803E0EB03F09039
07E001F0EB0FC01480131FD93F0013F8A2137EA2150301FE14F05BA20001140716E05BA2
0003EC0FC0A249EB1F80160000075C157E6D5B4A5A390FFC03E09038EE07C0D9C7FFC7FC
EBC1F8D81FC0C8FCA25BA2123FA290C9FCA25AA2127EA212FEA25A123825327FA028>26
D<91B6FC01031580130F013F1500495C2701FF03FCC7FC3803F80048487F49137E485A12
1F49133E48C7127EA25A127EA215FE00FE5C5AA24A5AA24A5A007C5C14074A5A6C495A4A
C8FC6C137C380F81F83803FFE0C66CC9FC29217E9F2C>I<017FB512F048B612F85A5A48
15E0261F0070C7FC123C1238485B126012E0EA0001A3495AA31307A25C130FA3131FA291
C8FC5BA35BA2137E133C25217E9F22>I<123C127E12FFA4127E123C08087A8715>58
D<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C121C5A5A1260
09177A8715>I<171C177EEE01FEEE07FCEE1FF0EE7FC0923801FF00ED07FCED1FF0ED7F
C04A48C7FCEC07FCEC1FF0EC7FC04948C8FCEB07FCEB1FF0EB7FC04848C9FCEA07FCEA1F
F0EA7FC048CAFCA2EA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01FF903800
7FC0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FC
EE01FEEE007E171C2F2E7AA93C>I<010FB712FEA218FC903A003FC000031700187C4B14
3CA2027F151C181892C8FCA25CA24A1303A201014A1338040613304A1500160E13035E4A
137C91B512FC5B5EECF0001638130F16305C1860011F027013E0046013C04A1401040013
80133F17034A15005F017F150EA291C8121E5F49157C5F4914030001ED1FF0B8FCA25F37
337DB239>69 D<ED07FC92387FFFC0913901F807F091390FE001F891391F80007E027EC7
7E4AEC1F80EB03F04948EC0FC04948EC07E0495A013F16F049C8FC01FE15034916F81201
485AA2485AA2120F5B001F16075B123FA34848ED0FF0A3EF1FE0A290C9FC48EE3FC0A218
80177F6C17005F5F4C5A4C5A6C7E4C5A001F4B5A6D4A5A000F4B5A6D027EC7FC00075D6C
6C495A6C6CEB07E0D800FEEB1F8090263F80FEC8FC90380FFFF80101138035377DB43A>
79 D<010FB612F017FE83903B003FC0007FC0EF1FE0EF07F05DEF03F8147FA292C713FC
A25CEF07F85CA2010116F0170F4A15E0EF1FC00103ED3F80EF7F004A14FEEE03FC0107EC
1FF091B612C04CC7FC02F0C9FC130FA25CA2131FA25CA2133FA25CA2137FA291CAFCA25B
A25B1201B512FCA336337DB231>I<EB01F8EB07FE90381F071C90387C03FEEBF801EA01
F00003130048485B5B120F381F80015DEA3F00A21403485C127EA2140700FE5C5A164002
0F1360EDC0E016C0127CEC1FC1023F1380003CEB7F81003EEBEF833A1E01C7C300390F07
87C73907FE03FE3900F800F823227EA029>97 D<147F903803FFC090380FC0F090383F00
38137C4913F83801F0013803E0031207EA0FC090388001F0001F90C7FC123F90C8FCA25A
127EA45AA3127C150C151C15386C147015E06CEB03C0390F800F003807C07E3801FFF038
007F801E227EA021>99 D<ED01F815FFA216F01507A316E0A2150FA216C0A2151FA21680
A2153FA2D901F81300EB07FE90381F077F90387C03FF496C5AEA01F000031300485A495B
120F381F8001A2D83F005BA214035A007E5CA2140712FE485C1640020F136016E0EDC0C0
127CEC1FC1023F1380003CEB7F81003EEBEF833A1E01C7C300390F0787C73907FE03FE39
00F800F825357EB328>I<14FE903807FF8090381F03C090387C01E03801F800485A485A
485A485A1401D83F0013C01403007EEB0F80ECFE00387FFFF8B5128000FCC8FCA45AA415
186C1438007C147015E0003CEB01C0003EEB07806CEB1E00380F80FC3803FFE0C690C7FC
1D227DA024>II<EB01C0EB07E014F0130F14E01307EB038090C7FCAA13
F0EA03FCEA071EEA0E1F121C123800301380EB3F00127012605BEAE07EEA40FE12005B12
015BA212035B12071420EBE070000F136013C014E014C0EA1F80EA0F81EB8380EB8700EA
078EEA03FCEA00F014337EB11A>105 D<151C157E15FEA315FC15781500AA143FECFFC0
903801C3E0EB038390380701F0130EEB0C03131C1338133014071370012013E01300140F
A215C0A2141FA21580A2143FA21500A25CA2147EA214FEA25CA21301A25CA21303001C5B
127F495AA238FE0FC0495AD8783FC7FCEA707CEA3FF0EA0FC01F4281B11F>I<D801E013
FE3A07F803FF803A0E3E0F07E0001C90383C03F039181F7001003813E026303FC07F1270
0060138014001503D8E07F5CEA407E1200150701FE5C5B150F5E120149131FEE8080EE81
C00003023F13804914011603037F13000007147E495CED3E0E5E000FEC1E3849EB0FF0D8
0380EB03C02A227EA02E>110 D<EB01FCEB0FFF90383E03C090387800E04913603901E0
01E014030003130713C013E0EC03806DC7FC13FF14F014FC6C7F6C7F6D1380130F903800
7FC0141F140F007E130700FE1480A3EC0F005A00C0131E6C5B00705B383C01F0380FFFC0
D803FEC7FC1B227CA024>115 D<EB0380EB0FC0A3131FA21480A2133FA21400A25BA213
7E387FFFFEA2B5FC3800FC00A21201A25BA21203A25BA21207A25BA2120FA25B1408001F
131C14181380143814701460EB00E0EB01C0380F8380EB8700EA07FEEA01F817307FAE1C
I<13F8D803FEEB01C0D8070FEB03E0000EEB8007121C001813C00038140FEA301F0070
018013C01260013F131F00E0130000401580C65A017E133F13FE491400A25D120149137E
1602EDFE0716064913FCA2160E0201130C9039F803F81C1618000090380F7C38D97C1C13
7090393FF81FE0903907E0078028227EA02C>I<01F0130ED803FC131FD8071EEB3F80EA
0E1F121C0038EB801F0030140F013F130700701300006014035BD8E07E14001240EA00FE
495B000114065BA2150E0003140C5B151C15181538491330157015606D13E04A5A000149
5A6D48C7FC3800FC1EEB3FF8EB07E021227EA025>I<90391F801F8090397FE07FE09039
E0F0E0703A01C0F9C0F83903807D833807007F000E1403000C15F0001C137E0018EC01C0
02FEC7FC00385B1210C7FC13015CA31303A25C1640010714E016C0001C5B007E1401010F
148000FE1403011FEB0700011B130E39F839F01C397070F878393FE07FE0390F801F8025
227EA02C>120 D<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C00381380003014
0F013F14C000701300126049131FD8E07E14801240EA00FE49133F000115005BA25D0003
147E5BA215FE5D5BA214015DEBF00314070001130F3900F83FF0EB3FFBEB0FC3EB00075D
A20007130FD81F805B003F495AA24AC7FCEB007E003E137C00385B381803F0381E07C0D8
07FFC8FCEA01F823317EA026>I<903807800390381FE00790383FF00690387FF80E9038
FFFC1C48EBFE789038E03FF03803800190C712E0EC01C0C7EA0380EC0700140E143C1470
5C495A495A49C7FC130E133C0170130C49131C484813184848133848C71278D80EC013F0
380FFE03391F3FFFE0D8381F13C0486C1380D86007130038E003FE38C000F020227DA024
I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fs cmbx9 9 20
/Fs 20 117 df<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F000C0C7A8B19>46
D<147814F81303131FEA03FFB5FCA3EAFC1F1200B3B2007FB512FEA41F317AB02C>49
D<EB1FFC90B57E000314E0000F14F8391FE03FFC393F800FFF48487E6D6C1380D8FFC014
C06D7E16E080A36C5A6C5A6CC7FCC8FC16C05C16805C16004A5A4A5A5D4A5AEC3FC04A5A
02FEC7FC495A495A903907E001E0EB0FC0EB1F8090383E00034914C05B4848130748B6FC
5A5A5A5A5AB71280A423317CB02C>I<EB0FFC90387FFF8048B512F03903F01FF83907C0
0FFE380F8007486C6C7E01F01480123F13F8A5D81FF014006C485AD803805BC7FC4A5A4A
5A4A5AECFFC0013F90C7FC14FCECFFC09038001FF0EC0FFC6E7E6E7E16806E13C0A2000F
15E0EA3FC0EA7FE0EAFFF0A416C0A2495AD87FC0148049481300003F5B391FF01FFE6CB5
12F8000314E0C61480D91FFCC7FC23327CB02C>I<151F5D5DA25D5C5C5C5CA25C143D14
7D14F9EB01F114E1EB03C1EB0781130FEB1F01133E133C137813F01201EA03E0EA07C013
80EA0F00121E123E5A5AB712FEA4C700031300A80103B512FEA427317EB02C>I<000C14
0ED80FE013FE90B5FC5D5D5D5D5D92C7FC14FC14F091C8FC1380A6EB87FE9038BFFFC090
B512F09038FC0FF89038E003FE01C07F497E01001480000E6D13C0C8FCA216E0A3121FEA
7F807F487EA316C05B5CD87F801480D87C0014006C5B393F8007FE391FE01FFC0007B512
F06C14C0C691C7FCEB1FF823327CB02C>I<EC7FC0903803FFF0010F13FC90383FE07E90
387F801F4848485A4848EBFF8048485A13F8120FEA1FF0A2123F6E13004848133C92C7FC
A2142039FFE1FF8001E713E001EF13F89038FE03FC496C7E01F87F6E13805B16C0A24914
E0A5127FA5123F16C0121F6D1480000F5B01F814006C6C485A6C6C485A6CB55A6C6C5B01
1F13C0D907FEC7FC23327CB02C>I<123C123F90B612F8A44815F016E016C0168016005D
007CC7127E00785C4A5A00F8495A48495A4A5A4A5AC7FC4AC7FC147E14FE5C13015C1303
A2495AA2130FA2131FA25C133FA4137FA96D5AA2010FC8FC25337BB12C>I<EB07FE9038
3FFFC090B512F03903F807FC3907C000FE4848137F8148C71380151F5A7FA27F7F01F813
3F01FE14006D6C5A6CEBE0FEECF1FC6CEBFFF815E06C5C6C14F06C806C6C7F48B57E4880
D80FF31480D81FE014C0383FC03FEB800F48486C13E0140148EB007F48143F151FA2150F
A216C07E6C141F6D14806C6C133F6DEB7F00391FF803FE0007B512F86C5CC66C13C0D90F
FCC7FC23327CB02C>I<EB07FC90383FFF8090B512E03903FE0FF03907F807F848486C7E
001F6D7E003F80497E007F1580A212FF16C0A416E0A55C127FA2123F5CEA1FF0000F5B6C
6C5A3803FFFEC65BD93FF013C0EB00805CA2EA0780261FE0011380EA3FF01600A24A5AA2
4A5A49485A391F801FF09038C07FE06CB512806C91C7FC000113FC38003FC023327CB02C
I<ED1F80A24B7EA24B7EA34B7EA24A7FA34A7FA24A7F15CFA2020F7F1587021F801503
023F80EC3E01A2027E80EC7C0002FC804A137FA20101814A133F0103814A131FA249B67E
A24981A290271F8000077F91C77EA24982013E80017E82017C80A201FC8249157FB500F0
013FB512F0A43C347DB343>65 D<B812FCA4C69038E0001FEE03FE16011600177E173EA2
171EA3923803C01F170FA403071300A2150F153F91B5FCA4ECE03F150F1507A21503A592
C8FCABB612F8A430337DB238>70 D<EB7FFE0003B512E04814F8390FF00FFC391FF803FF
806E138016C0157F6C5A6C5AEA0180C8FCEC7FFF010FB5FC90B6FC0003EBF07F000F1300
EA1FF8485A485A485A5BA315FF7F007F5B6D4813E03A3FF80FBFFF000FB5121F0003EBFC
0F39007FE00728217EA02B>97 D<EA01FC12FFA4120F1207ADEC07FC91387FFF8001FDB5
12E09039FFF00FF89138C007FC91380003FE496D7E496D1380A217C0167FA217E0A917C0
A216FF1780A26D4913006D495A9138C007FC9039F3F01FF801E1B512E0D9C07F13809026
800FF8C7FC2B347EB331>I<903807FF80013F13F090B512FC3903FE01FE4848487EEA0F
F8EA1FF0EA3FE0A2007F6D5A496C5A153000FF91C7FCA9127F7FA2003FEC07807F6C6C13
0F000FEC1F00D807FE133E3903FF80FCC6EBFFF8013F13E0010790C7FC21217DA027>I<
16F890390FFC07FE90387FFF9F48B6127F3907FC0FFC380FF003001F14FED9E001133E00
3FECFF1C1600A6001F5CEBF003000F5C3907FC0FF890B512E0486C1380D90FFCC7FC48C9
FCA37F7F90B512F015FE6CECFF8016E06C15F06C15F84815FC121F393F80001F48C7EA03
FE481401481400A46C14016C6CEB03FC6C6CEB07F86C6CEB0FF0D80FFCEB7FE00003B612
80C6ECFE00010F13E028327EA12C>103 D105 D<3901F81F8000FFEB7FF0
ECFFF89038F9E3FC9038FBC7FE380FFF876C1307A213FEEC03FCEC01F8EC0060491300B1
B512F0A41F217EA024>114 D<9038FFE1C0000713FF5A383F803F387E000F14075A1403
7EA26C6CC7FC13FCEBFFE06C13FC806CEBFF80000F14C06C14E0C6FC010F13F0EB007F14
0F00F0130714037EA26C14E06C13076CEB0FC09038C01F8090B5120000F913FC38E03FE0
1C217DA023>I<133CA5137CA313FCA21201A212031207001FB51280B6FCA3D807FCC7FC
B0EC03C0A79038FE078012033901FF0F006C13FEEB3FFCEB0FF01A2F7EAE22>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ft cmr9 9 75
/Ft 75 124 df<EC1FE0ECFFFC903803F01E90390FC00780EB1F8090393F000FC0017E13
1F5BA2485AED0F8092C7FCA9ED0FC0B7FCA33901F8001F150FB3A6486CEB1FE0267FFFC1
B5FCA328357FB42B>12 D<137813FCA212011203EA07F813E0EA0FC0EA1F801300123C5A
5A12400E0E71B326>19 D<003C13F0387E01F838FF03FCA2EB83FEA2EA7F81383D80F600
011306A40003130EEB000CA248131C00061318000E1338000C1330001C13704813E03870
01C00060138017177EB326>34 D<123C127EB4FCA21380A2127F123D1201A412031300A2
5A1206120E120C121C5A5A126009177AB315>39 D<14C01301EB0380EB0F00130E5B133C
5B5BA2485A485AA212075B120F90C7FC5AA2121E123EA3123C127CA55AB0127CA5123C12
3EA3121E121FA27E7F12077F1203A26C7E6C7EA213787F131C7F130FEB0380EB01C01300
124A79B71E>I<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C
133EA2131E131FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813
F85BA2485A485AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<156015F0B3A400
7FB812C0B912E0A26C17C0C800F0C8FCB3A4156033327CAB3C>43
D<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C121C5A5A1260
09177A8715>II<123C127E12FFA4127E123C08087A8715>I<EB
0FE0EB7FFCEBF83E3903E00F803907C007C0EB8003000F14E0391F0001F0A24814F8A200
3E1300007E14FCA500FE14FEB2007E14FCA56CEB01F8A36C14F0A2390F8003E03907C007
C0A23903E00F803900F83E00EB7FFCEB0FE01F347DB126>48 D<13075B5B137FEA07FFB5
FC13BFEAF83F1200B3B3A2497E007FB51280A319327AB126>I<EB3FC0EBFFF0000313FC
380F80FF391E007F80001CEB3FC048EB1FE048130F15F00060130712FC6C14F87E1403A3
007E1307123CC7FC15F0A2140F15E0EC1FC0A2EC3F801500147E5C495A5C495A495A495A
49C7FC133E133C4913185B485A48481330485A48C7FC001C1470001FB512F05A5AB612E0
A31D327CB126>I<EB1FE0EBFFFC4813FF3907E03F80390F001FC0001EEB0FE0001CEB07
F0123F018013F8140313C01380A2381F0007C7FC15F0A2EC0FE015C0141FEC3F80EC7E00
EB01F8EB7FE014FCEB003FEC1FC0EC0FE0EC07F015F8140315FC140115FEA3127EB4FCA4
15FC48130312780070EB07F86C14F0003C130F001FEB1FE0390FE03F800003B51200C613
FCEB1FE01F347DB126>I<EC01C0A214031407A2140F141FA2143F147F146F14CF1301EB
038F140F1307130E130C131C13381330137013E013C0EA0180120313001206120E120C5A
123812305A12E0B71280A3C7380FC000A94A7E0107B51280A321337EB226>I<000C14C0
380FC00F90B5128015005C5C14F014C0D80C18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380F
C03F9038001F80EC0FC0120E000CEB07E0A2C713F01403A215F8A41218127E12FEA315F0
140712F8006014E01270EC0FC06C131F003C14806CEB7F00380F80FE3807FFF8000113E0
38003F801D347CB126>I<14FE903807FF80011F13E090383F00F0017C13703901F801F8
EBF003EA03E01207EA0FC0EC01F04848C7FCA248C8FCA35A127EEB07F0EB1FFC38FE381F
9038700F809038E007C039FFC003E0018013F0EC01F8130015FC1400A24814FEA5127EA4
127F6C14FCA26C1301018013F8000F14F0EBC0030007EB07E03903E00FC03901F81F806C
B51200EB3FFCEB0FE01F347DB126>I<1230123C003FB6FCA34814FEA215FC0070C71238
00601430157015E04814C01401EC0380C7EA07001406140E5C141814385CA25CA2495A13
03A3495AA2130FA3131F91C7FCA25BA55BA9131C20347CB126>I<EB0FE0EB7FFC90B5FC
3903F01F803907C007C0390F0003E0000EEB01F0001E1300001C14F8003C1478A3123EA2
003F14F86D13F0EBC001D81FF013E09038F803C0390FFE07803907FF0F006C13DE6C13F8
7EEB3FFE8001F713C0D803E313E0D8078013F0390F007FF8001E131F003EEB07FC003C13
03481301EC007E12F848143EA2151EA37E153C1278007C14787E6C14F0390F8003E03907
F01FC00001B5120038007FFCEB1FE01F347DB126>I<EB0FE0EB7FF8EBFFFE3803F83F39
07E00F80390FC007C0D81F8013E0EC03F0EA3F0048EB01F8127EA200FE14FC1400A415FE
A5007E1301A2127F7E1403EA1F80000F13073807C00E3803E01C3801F03838007FF09038
1FC0FC90C7FC1401A215F8A215F01403001F14E0383F800715C0140FEC1F809038003F00
001C137E381F01FC380FFFF0000313C0C690C7FC1F347DB126>I<123C127E12FFA4127E
123C1200B0123C127E12FFA4127E123C08207A9F15>I<123C127E12FFA4127E123C1200
B0123C127E12FE12FFA3127F123F1203A412071206A3120E120C121C1238123012701260
082F7A9F15>I<EC07FC91387FFFC0903901F803F090390780003C011EC7120F0138EC03
80496E7E496E7E4848157048488127070003F87F000ED91FFE7F000C90397E078006001C
9039F801C0073B1801F000E003D8380302701380263007E0EB3F014A1481D8700F021F13
C026601F801480A200E017E0D8C03F166091C7FCA880EAE01F1260A226700FC015E0D830
07023F13C080263803F0137FD81801ECFF813C1C00F801CFC180000C90397E0787C3000E
903A1FFE03FF006C903903F800FC6C6CCAFC6C7E6C7E0170ED03E06D150F011EED7F80D9
0780903803FC00D901F8EB7FE09027007FFFFEC7FC0207138033367CB43C>64
D<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A6C7EA202707FEC601FA202E0
7FECC00FA2D901807F1507A249486C7EA301066D7EA2010E80010FB5FCA249800118C77E
A24981163FA2496E7EA3496E7EA20001821607487ED81FF04A7ED8FFFE49B512E0A33336
7DB53A>I<B7FC16E016F83A03FC0003FE0001EC00FFEE7F80EE3FC0161F17E0160F17F0
A617E0161F17C0EE3F80EE7F0016FEED03FC90B612F05E9039FC0007FCED00FEEE3F80EE
1FC0EE0FE017F0160717F8160317FCA617F81607A2EE0FF0EE1FE0163FEE7FC000039138
03FF00B75A16F816C02E337DB236>I<DA03FE130C91393FFF801C91B512E0903A03FE01
F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC7120348481401000315005B4848
157C485A173C485A171C123F5B007F160CA390C9FC481600AB7E6D150CA3123F7F001F16
1C17186C7E17386C6C15306C6C15706D15E012016C6CEC01C0D97F80EB0380D91FC0EB0F
00D90FF0131ED903FE13FC0100B512F0023F13C0DA03FEC7FC2E377CB437>I<B77E16F0
16FE3A01FE0001FF00009138003FC0EE0FE0707E707E707E707E177E177FEF3F80A2EF1F
C0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F18005F17FE5F4C5AEE07F04C5AEE3F
C000014AB45AB748C7FC16F8168034337EB23B>I<B812C0A3D803FCC7127F0001150FEE
03E01601A21600A21760A403061330A41700150EA2151E157E90B512FEA39038FC007E15
1E150EA21506170CA3171892C7FCA41738A21770A217F01601160316070003157FB812E0
A32E337DB234>I<B81280A3D803FCC7FC0001151FEE07C01603A21601A21600A4176015
0CA31700A2151CA2153C15FC90B5FCA3EBFC00153C151CA2150CA592C8FCAB487EB512FE
A32B337DB232>I<DA03FE130C91393FFF801C91B512E0903A03FE01F83C903A0FF0003C
7CD91FC0EB0EFCD97F80130701FEC7120348481401000315005B4848157C485A173C485A
171C123F5B007F160CA390C9FC4893C7FCAA0303B512E07E7F92390003FE00705A123F7F
121FA26C7E7F12076C7E7F6C6C14036C7E6D6C1307D91FC0EB0E7CD90FF0EB1C3CD903FE
EBF81C0100B5EAF00C023F01C0C7FCDA03FEC8FC33377CB43C>I<B5D8FE03B512F8A300
0190C73807FC006C486E5AB390B7FCA349C71203B3A3486C4A7EB5D8FE03B512F8A33533
7EB23A>II<017FB5FCA390
38003FE0EC1FC0B3B1127EB4FCA4EC3F805A0060140000705B6C13FE6C485A380F03F038
03FFC0C690C7FC20357DB227>I<B500FE903807FFF8A3000190C7000113006C48EC00FC
17F04C5A4C5A4CC7FC160E5E5E5E5E4B5A4B5A4BC8FC150E5D5D15F84A7E14034A7EEC0E
FF5C4A6C7E4A6C7EECE01FD9FFC07F4A6C7E4A6C7E5B6F7E6F7EA26F7E707EA2707E707E
160F83707E707EA283486C913807FF80B500FE013F13FCA336337EB23C>I<B512FEA3D8
03FEC9FC6C5AB3A9EE0180A416031700A45EA25E5E5E5E16FE00031407B7FCA329337DB2
30>I<D8FFFC923801FFF86D5DA20003EFFE00D801BFED06FCA3D99F80140CA2D98FC014
18A3D987E01430A2D983F01460A3D981F814C0A3D980FCEB0180A2027EEB0300A36E1306
A26E6C5AA36E6C5AA36E6C5AA26E6C5AA36E6C5AA3913800FD80A2037FC7FCA3486C133E
D80FF04B7EB5011C90387FFFF8A33D337CB246>I<D8FFFE91381FFFF87F80C603001300
6E143CD9DFE01418EBCFF0A2EBC7F8EBC3FCA2EBC1FEEBC0FF6E7EA26E7E6E7EA26E7E6E
7E6E7EA26E7E6E7EA2ED7F80ED3FC0ED1FE0A2ED0FF0ED07F8A2ED03FCED01FEED00FFA2
EE7F98EE3FD8A2EE1FF8160F1607A216031601A2486C1400D807F81578B500C01438A217
1835337EB23A>I<EC07FC91387FFFC0903901FC07F0903907E000FCD90F80133E013FC7
6C7E017E6E7E496E7E48486E7E48486E7EA248486E7E000F8249157E001F167FA24848ED
3F80A2007F17C0A290C9121FA24817E0AB6C17C06D153FA3003F17806D157FA2001F1700
6D5D000F5E6C6C4A5AA26C6C4A5A00015E6C6C4A5A017E4A5A6D4A5AD91FC0017FC7FCD9
07E013FC903901FC07F09039007FFFC0DA07FCC8FC33377CB43C>I<B612FEEDFFC016F0
3A03FC0007FC0001EC00FE167FEE3F80EE1FC017E0160FA217F0A617E0A2EE1FC0A2EE3F
80EE7F0016FEED07F890B65A168001FCC9FCB3A2487EB512F8A32C337DB234>I<B612FC
EDFF8016F03A01FE0007FC0000EC01FEED007F707E707E83160F83A65FA24C5AA24C5A04
7EC7FC4B5AED0FF090B612C093C8FC9039FE001FC0ED07F06F7E6F7E150082167E167FA5
83A5180C17C0A2043F131C486C1618B500FEEB1FE0040F1338933807F070C93801FFE093
38003F8036357EB239>82 D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48
C7FC003E80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C
13FF6C14C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F
12C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512
E0011F138026C003FEC7FC22377CB42B>I<007FB712FEA390398007F001D87C00EC003E
0078161E0070160EA20060160600E01607A3481603A6C71500B3AB4A7E011FB512FCA330
337DB237>I<B500FE90381FFFF8A3000190C813006C48153C1718B3AF1738017F1530A2
17706D6C1460011F15E06E495A010F14036D6C495A6D6C49C7FCD901FC131E6DB413FC91
383FFFF0020F13C0020190C8FC35357EB23A>I<B500F0903803FFF8A3D807FEC8EA7FC0
6C48ED1F000001161E6D151C00001618A26D15386D1530A26D6C5CA26E14E0011F5DA26D
6C495AA28001074AC7FCA26D6C1306A28001015CA26E131C01001418806E5BA2ED807002
3F1360A26E6C5AA215E1020F5BA2DA07F3C8FCA215FBEC03FEA36E5AA26E5AA31570A235
357EB23A>I<B5D8F007B539800FFFF0A3000390C7273FF000011300D801FC6E48EB007C
1A386D140F00001930836D020715706D1860A26E496C14E0013F60A26ED919FC1301011F
60A26ED930FE1303010F95C7FCA26ED9607F5B01071706A26E9039C03F800E0103170CA2
913BFC01801FC01C01011718A2913BFE03000FE03801001730A2DAFF06EB07F0027F5EA2
038CEB03F8023F5EA203D8EB01FC021FEDFD80A203F0EB00FF020F93C8FCA24B80020715
7EA24B143E0203153CA24B141C020115184C357FB24F>I91 D<0003130C48131C000E133848137000181360003813E0003013
C0EA700100601380A2EAE00300C01300A400DE137800FF13FCEB83FEA2EA7F81A2383F00
FC001E1378171774B326>II<EB7F803803
FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF87
3803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F6C133B3A3F8071F1
80391FC1E1FF2607FFC013003900FE003C22237DA126>97 D<EA03F012FFA312071203AE
EC3F80ECFFE09038F3C0F89038F7007E01FE7F49EB1F8049EB0FC05BED07E016F0A21503
16F8AA16F0150716E0A2ED0FC07F6DEB1F8001ECEB3F0001CF137C90388381F8903801FF
E0C76CC7FC25357EB32B>I<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C0
07120FEA1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D13
30000F14706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>I<153F
EC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148
C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F8
1E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0
390FC007E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA5127E127F
A26C1418A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFEEB07F0
1D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A20003EB07
0049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90391FC0
7F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80EB0007
4880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9FCA312
1EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F8048140F
A56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22337EA1
26>II I<EB03
C0EB07E0EB0FF0A4EB07E0EB03C090C7FCAAEB03F013FFA313071303B3B01238127C00FE
13E0130714C0130F007C138038381F00EA1FFCEA07F0144384B217>I<EA03F012FFA312
071203AF913803FFE0A36E1300EC00F8EC01E05D4A5A020FC7FC141C5C5C14F0EBF3F8EB
F7FC13FEEBFC7EEBF87F496C7E141F6E7E8114076E7E8114016E7E81486CEBFF80B500C3
13F0A324347EB329>II<27
03F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F
387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C21
7EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA2
5BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F803901F0
07C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE1580A8
007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93FFEC7
FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C
48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB
3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307E
A02B>I<903807F00390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC49
7F123F90C77E5AA25A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800
F81EEB3FF8EB0FE090C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF
9038E38F809038E71FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A21
7FA01E>I<EBFF06000713CE381F00FE003C133E48131E140E5A1406A27EA200FE90C7FC
6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0FFF1300EC3F8000C0131F140F6C1307A3
7E15006C5B6C130E6C5B38F7807838E1FFE038C07F8019237EA11E>I<1330A51370A313
F0A21201A212031207381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB
7E1CEB1FF8EB07E0182F7FAD1E>II<B5
EBFFF0A3D80FF0EB3F800007EC1F000003140E150C6D131C00011418A26C6C5BA26D1370
017E1360137F6D5BA290381F8180A214C3010F90C7FCA2EB07E6A214FE6D5AA26D5AA36D
5AA2146024217E9F29>I<B53A1FFF81FFF0A33C07F801FC003F8001F049EB1E00000301
00141C816C6C017C1318A26D017E1338000002FE1330A290267E01FF5B159F168090263F
030F5BA216C0903A1F8607C180A202C613E390260FCC0390C7FCA2D907FC13F6ECF80116
FE6D486C5AA36D481378A36D48133034217F9F37>I<B53801FFF8A32603FE0013806C48
EB7C0000001478017E1370017F5B90383F81C090381F8380D90FC3C7FCEB07E614FE6D5A
6D5A6D7E80805B9038039F809038071FC09038060FE0EB0C0790381C03F0496C7E01707F
EBF000000180000FECFF8026FFFC0313FCA326207F9F29>I<3A7FFF807FF8A33A07F800
1FC00003EC0F800001EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360
ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25C
A214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29
I<003FB512F0A2EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE49
5A13035CC6485A495AA2495A495A49C7FC153013FE485A12035B48481370485A001F1460
4913E0485A387F000348130F90B5FCA21C207E9F22>II
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fu cmr10 10 74
/Fu 74 125 df<DA0FF813FC91397FFF07FF903B01F807DF83C0903A07E001FF0F903B1F
8007FE1FE090393F000FFC137E16F85B9338F007804848010790C7FC1503ACB812F8A328
01F80003F0C7FCB3AB486C497E267FFFE0B512F0A3333B7FBA30>11
D<EC0FF8EC7FFE903901F80780903907E001C090391F8000E090383F0007017E497EA25B
A2485A6F5AED018092C8FCA9ED03F0B7FCA33901F8000F1503B3AA486C497E267FFFE0B5
12C0A32A3B7FBA2E>I<EC0FFC91387FFF70903901F803F0903807E00790381F800FEB3F
00137EA25B150748481303ADB7FCA33901F80003B3AB486C497E267FFFE0B512C0A32A3B
7FBA2E>I<DA0FF0EB1FF0DA7FFEEBFFFC903B01F80F83F00F903C07E001CFC00380903C
1F8000FF0001C090273F0007FE130F017E4948497EA2495CA248485C03076E5A03030203
C7FC95C8FCA9F007E0BAFCA33C01F80003F0001F1807B3AA486C496C497E267FFFE0B500
C1B51280A3413B7FBA45>I<001C131C007F137F39FF80FF80A26D13C0A3007F137F001C
131C00001300A40001130101801380A20003130301001300485B00061306000E130E485B
485B485B006013601A197DB92A>34 D<121C127FEAFF80A213C0A3127F121C1200A41201
1380A2120313005A1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB
0700130E131E5B5BA25B485AA2485AA212075B120F90C7FCA25A121EA2123EA35AA65AB2
127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB
01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378
A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A2
5B131EA2133E133C137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD
20>I<15301578B3A6007FB812F8B912FCA26C17F8C80078C8FCB3A6153036367BAF41>
43 D<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A1206120E5A
5A5A12600A19798817>II<121C127FEAFF80A5EA7F00121C0909
798817>I<EB03F8EB1FFF90387E0FC09038F803E03901E000F0484813780007147C4848
7FA248C77EA2481580A3007EEC0FC0A600FE15E0B3007E15C0A4007F141F6C1580A36C15
006D5B000F143EA26C6C5B6C6C5B6C6C485A6C6C485A90387E0FC0D91FFFC7FCEB03F823
3A7DB72A>48 D<EB01C013031307131F13FFB5FCA2131F1200B3B3A8497E007FB512F0A3
1C3879B72A>I<EB0FF0EB7FFE48B57E3903E03FE0390F000FF0000E6D7E486D7E486D7E
123000706D7E126012FCB4EC7F807FA56CC7FC121CC8FCEDFF00A34A5A5D14035D4A5A5D
140F4A5A4A5A92C7FC147C5C495A495A495A495A91C8FC011EEB01805B5B491303484814
00485A485A000EC75A000FB6FC5A5A485CB6FCA321387CB72A>I<EB07F8EB3FFF4913C0
3901F80FF03903C007F848486C7E380E0001000F80381FE0006D7FA56C5A6C5AC85A1401
A25D4A5AA24A5A5DEC0F80027EC7FCEB1FFCECFF809038000FE06E7EEC01FC816E7EED7F
80A216C0A2153F16E0A2121EEA7F80487EA416C049137F007F1580007EC7FC0070ECFF00
6C495A121E390F8003F83907F00FF00001B512C06C6C90C7FCEB0FF8233A7DB72A>I<15
38A2157815F8A2140114031407A2140F141F141B14331473146314C313011483EB030313
071306130C131C131813301370136013C01201EA038013005A120E120C5A123812305A12
E0B712F8A3C73803F800AB4A7E0103B512F8A325397EB82A>I<0006140CD80780133C90
38F003F890B5FC5D5D158092C7FC14FC38067FE090C9FCABEB07F8EB3FFE9038780F8039
07E007E090388003F0496C7E12066E7EC87EA28181A21680A4123E127F487EA490C71300
485C12E000605C12700030495A00385C6C1303001E495A6C6C485A3907E03F800001B5C7
FC38007FFCEB1FE0213A7CB72A>I<EC3FC0903801FFF0010713FC90380FE03E90383F80
0790387E001F49EB3F804848137F485AA2485A000FEC3F0049131E001F91C7FCA2485AA3
127F90C9FCEB01FC903807FF8039FF1E07E090383801F0496C7E01607F01E0137E497FA2
49148016C0151FA290C713E0A57EA56C7E16C0A2121FED3F807F000F15006C6C5B15FE6C
6C5B6C6C485A3900FE07F090383FFFC06D90C7FCEB03FC233A7DB72A>I<12301238123E
003FB612E0A316C05A168016000070C712060060140E5D151800E01438485C5D5DC71201
4A5A92C7FC5C140E140C141C5CA25CA214F0495AA21303A25C1307A2130FA3495AA3133F
A5137FA96DC8FC131E233B7BB82A>I<EB03F8EB1FFF017F13C09038FC07F03901E001F8
48486C7E4848137C90C77E48141E000E141F001E80A3121FA27F5D01E0131E6C6C133E01
FC133C6D5B6C6C6C5AECC1E06CEBF3C06C01FFC7FC6C5BEB3FFF6D13C081017F13F801F0
7F3903E07FFE3907801FFF48486C1380481303003E6D13C0003CEB007F007C143F0078EC
0FE000F814075A1503A21501A36C15C012781503007C15806CEC07006C5C6C6C131ED807
E0137C3903F803F0C6B55A013F1380D907FCC7FC233A7DB72A>I<EB03F8EB1FFF017F13
C09038FC07E03903F803F048486C7E48486C7E49137E121F48487FA2007F158090C7FCA2
48EC1FC0A616E0A56C143FA27F123F001F147FA26C6C13FF3907E001DF0003149F3801F0
033900FC0F1FD93FFC13C0EB07F090C7FC153F1680A316005D000F147E487E486C5BA24A
5A4A5A49485A6C48485A001C495A260F807FC7FC3807FFFC000113F038003FC0233A7DB7
2A>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A3
17>I<007FB812F8B912FCA26C17F8CCFCAE007FB812F8B912FCA26C17F836167B9F41>
61 D<1538A3157CA315FEA34A7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7F
EC180FA202387FEC3007A202707FEC6003A202C07F1501A2D901807F81A249C77F167FA2
0106810107B6FCA24981010CC7121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C
81D80FFC02071380B56C90B512FEA3373C7DBB3E>65 D<B712E016FC16FF000190398000
7FC06C90C7EA1FE0707E707E707EA2707EA283A75F16035F4C5A4C5A4C5A4C5AEEFF8091
B500FCC7FCA291C7EA7F80EE1FE0EE07F0707E707E83707EA21880177F18C0A7188017FF
A24C13005F16034C5AEE1FF8486DEB7FF0B812C094C7FC16F832397DB83B>I<913A01FF
800180020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F4948EB01
DFD93F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A170312
3F5B007F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F160318006C7E5F6C7E17
066C6C150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F809027
01FF803FC7FC9039007FFFFC020F13F002011380313D7BBA3C>I<B712C016F816FE0001
90398001FF806C90C7EA3FE0EE0FF0EE03F8707E707E177FA2EF3F8018C0171F18E0170F
18F0A3EF07F8A418FCAC18F8A4EF0FF0A218E0A2171F18C0EF3F80A2EF7F0017FE4C5A4C
5AEE0FF0EE3FE0486DEBFF80B8C7FC16F816C036397DB83F>I<B812FCA3000190388000
0F6C90C71201EE007E173E171E170EA31706A317078316C0A394C7FCA31501A21503150F
91B5FCA3EC000F15031501A21500A21860A318E093C712C0A41701A3EF0380A21707A217
0F173F177F486D903807FF00B9FCA333397DB839>I<B812F8A30001903880001F6C90C7
1201EE00FC177C173C171CA2170CA4170E1706A2ED0180A21700A41503A21507151F91B5
FCA3EC001F15071503A21501A692C8FCAD4813C0B612C0A32F397DB836>I<DBFF8013C0
020FEBF001023F13FC9139FF803F03903A03FC000787D90FF0EB03CF4948EB00EF494814
7F4948143F49C8121F485A4848150F48481507A248481503A2485A1701123F5B007F1600
A448481600AB93B6FCA26C7E9338007FE0EF3FC0A2123F7F121FA26C7EA26C7EA26C7E6C
7E6C6C157F6D7E6D6C14FF6D6C14EFD90FF8EB03C7D903FEEB0783903A00FFC03F019139
3FFFFC00020F01F0130002001380383D7CBA41>I<B648B512FEA3000190268000031300
6C90C76C5AB3A491B6FCA391C71201B3A6486D497EB648B512FEA337397DB83E>II<B612E0A3000101C0C8FC6C90
C9FCB3AD1718A517381730A31770A317F0A216011603160FEE1FE0486D13FFB8FCA32D39
7DB834>76 D<B5933807FFF86E5DA20001F0FC002600DFC0ED1BF8A2D9CFE01533A3D9C7
F01563A3D9C3F815C3A2D9C1FCEC0183A3D9C0FEEC0303A2027F1406A36E6C130CA36E6C
1318A26E6C1330A36E6C1360A26E6C13C0A3913901FC0180A3913900FE0300A2ED7F06A3
ED3F8CA2ED1FD8A3ED0FF0A3486C6D5A487ED80FFC6D48497EB500C00203B512F8A2ED01
8045397DB84C>I<B5913807FFFE8080C69238007FE06EEC1F80D9DFF0EC0F001706EBCF
F8EBC7FCA2EBC3FEEBC1FFA201C07F6E7EA26E7E6E7E81140F6E7E8114036E7E168080ED
7FC016E0153FED1FF0ED0FF8A2ED07FCED03FEA2ED01FF6F1386A2EE7FC6EE3FE6A2EE1F
F6EE0FFEA216071603A216011600A2177E486C153E487ED80FFC151EB500C0140EA21706
37397DB83E>I<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D7ED9
3F80EB07F049C76C7E01FE6E7E48486E7E49157E0003167F4848ED3F80A24848ED1FC0A2
001F17E049150F003F17F0A3007F17F8491507A300FF17FCAC007F17F86D150FA3003F17
F0A26C6CED1FE0A36C6CED3FC0000717806D157F000317006C6C15FEA26C6C4A5A017F4A
5A6D6C495A6D6C495AD907E0EB1F80D903F8017FC7FC903900FE01FC91381FFFE0020390
C8FC363D7BBA41>I<B712C016F816FE000190398001FF806C90C7EA3FC0EE0FE0EE07F0
EE03F817FC17FE1601A217FFA717FEA2EE03FCA2EE07F817F0EE0FE0EE3FC0923801FF00
91B512FC16F091C9FCB3A5487FB6FCA330397DB839>I<B612FEEDFFE016F80001903880
07FE6C90C76C7EEE3FC0707E707E707EA2707EA283A65FA24C5AA24C5A4C5AEE3F8004FF
C8FCED07FC91B512E05E9138000FF0ED03F8ED00FE82707E707EA2161F83A583A6F00180
A217F8160F1803486D01071400B66D6C5A04011306933800FE0ECAEA3FFCEF07F0393B7D
B83D>82 D<D90FF813C090383FFE0190B512813903F807E33907E000F74848137F484813
3F48C7121F003E140F007E1407A2007C140312FC1501A36C1400A37E6D14006C7E7F13F8
6CB47E6C13F8ECFF806C14E06C14F86C14FEC680013F1480010714C0EB007F020713E0EC
007FED3FF0151F150FED07F8A200C01403A21501A37EA216F07E15036C15E06C14076C15
C06C140F6DEB1F80D8FBF0EB3F00D8F0FE13FE39E03FFFF8010F13E0D8C00190C7FC253D
7CBA2E>I<003FB812E0A3D9C003EB001F273E0001FE130348EE01F00078160000701770
A300601730A400E01738481718A4C71600B3B0913807FF80011FB612E0A335397DB83C>
I<B6903807FFFEA3000101809038007FE06C90C8EA1F80EF0F001706B3B2170E6D150C80
171C133F17186D6C14385F6D6C14F06D6C5C6D6C495A6D6CEB07806D6C49C7FC91387F80
7E91381FFFF8020713E09138007F80373B7DB83E>I<B500FC91387FFF80A30003018091
380FFC006C90C8EA07E0715A6C705A6E1403017F93C7FCA280013F1506A26E140E011F15
0C80010F5DA28001075DA26E147001031560A26D6C5CA2806D4A5AA2ED8003027F91C8FC
A291383FC006A215E0021F5BA2EDF01C020F1318A26E6C5AA215FC02035BA2EDFEE00201
5BA26E6C5AA36FC9FCA3153EA2151CA3393B7EB83E>I<B5D8FC07B5D8F001B5FCA30007
902780001FFEC7EA1FF86C48C7D80FF8EC07E000010307ED03C01B807F6C6F6C1500A26E
5F017F6E6C1406A280013F4A6C5CA280011F4A6D5BEE067FA26D6C010E6D5BEE0C3FA26D
6C011C6D5BEE181FA26D6C6F5BEE300FA26D6C6F485AEE6007A26D6C4CC7FC9338C003FC
A203805D913B7F818001FE06A203C1150EDA3FC3C7EAFF0CA203E3151CDA1FE6EC7F98A2
15F6DA0FFCEC3FF0A302075E4B141FA202035E4B140FA202015E4B1407A2020093C8FC4B
80503B7EB855>I91
D<3901800180000313033907000700000E130E485B001813180038133800301330007013
7000601360A200E013E0485BA400CE13CE39FF80FF806D13C0A3007F137FA2393F803F80
390E000E001A1974B92A>II<EB1F
E0EBFFFC3803E03F3907000F80390F8007E0486C6C7E13E06E7EA26E7E6C5A6C5AC8FCA4
147FEB07FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0123F485A90C7FC160C12FEA31401A26C
13036CEB077C903980063E18383FC01E3A0FE0781FF03A03FFF00FE03A007F8007C02627
7DA52A>97 DI<EB03FC90381FFF8090387E03E03901F80070484813F83907E0
01FC380FC003A2EA1F80123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14
067F001F140E6D130C000F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB
07F81F277DA525>I<ED0FC0EC03FFA3EC003F150FB0EB03F8EB1FFF90387E078F9038F8
01EF3903F0007F4848133F4848131FA24848130F123F90C7FC5AA2127E12FEAA127E127F
A27EA26C6C131FA26C6C133F6C6C137F6C6CEBEFF03A01F801CFFF39007C078F90381FFE
0FD907F813C0283B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F001F0D807
E013F8380FC0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FCA5127EA2
127FA26C14037F001F14076C6C13060007140E6D131CD801F013386C6C137090387E03E0
90381FFF80903803FC0020277EA525>I<147E903803FF8090380FC1E0EB1F8790383F0F
F0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387FFFF8A31C3B
7FBA19>I<ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00FE03903E007C0
3A07C003E010000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D485A6D48C7FC
38073FFC38060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF804815C03A0F
80007FE048C7EA0FF0003E140348140116F8481400A56C1401007C15F06CEC03E0003F14
07D80F80EB0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC26387EA52A>I<EA
03F012FFA3120F1203B0EC0FF0EC3FFCECF03F9039F1C01F809039F3800FC0EBF70013FE
496D7EA25BA35BB3A3486C497EB500C1B51280A3293A7EB92E>I<EA0380EA0FE0487EA5
6C5AEA0380C8FCAAEA03F012FFA312071203B3AA487EB512C0A312387EB717>I<EB01C0
EB07F0EB0FF8A5EB07F0EB01C090C7FCAAEB01F813FFA313071301B3B3A2123C127E00FF
13F01303A214E038FE07C0127C383C0F00EA0FFEEA03F8154984B719>I<EA03F012FFA3
120F1203B1913801FFFCA39138007FC01600157C15705D4A5A4A5A4AC7FC141E14381478
14FC13F1EBF3FEEBF73F01FE7FEBF81F496C7E8114076E7E6E7E811400157E157F811680
ED1FC0486CEB3FF0B500C0B5FCA3283A7EB92C>II<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903B
F1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3
495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00FF000FFEB3F
FCECF03F9039F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3486C497EB5
00C1B51280A329257EA42E>I<EB03FE90380FFF8090383E03E09038F800F84848137C48
487F48487F4848EB0F80001F15C090C712074815E0A2007EEC03F0A400FE15F8A9007E15
F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C137EC66C13F890
387E03F090381FFFC0D903FEC7FC25277EA52A>I<3903F01FE000FFEB7FF89038F1E07E
9039F3801F803A0FF7000FC0D803FEEB07E049EB03F04914F849130116FC150016FEA316
7FAA16FEA3ED01FCA26DEB03F816F06D13076DEB0FE001F614C09039F7803F009038F1E0
7E9038F0FFF8EC1FC091C8FCAB487EB512C0A328357EA42E>I<D903F813C090381FFE01
90387E07819038FC01C33903F000E3000714774848133749133F001F141F485A150F48C7
FCA312FEAA127FA37E6D131F121F6D133F120F6C6C137F6C6C13EF3901F801CF39007E07
8F90381FFE0FEB07F890C7FCABED1FE00203B5FCA328357DA42C>I<3807E01F00FFEB7F
C09038E1E3E09038E387F0380FE707EA03E613EE9038EC03E09038FC0080491300A45BB3
A2487EB512F0A31C257EA421>I<EBFF03000313E7380F80FF381E003F487F487F00707F
12F0A2807EA27EB490C7FCEA7FE013FF6C13E06C13F86C7F00037FC67F01071380EB007F
141F00C0EB0FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038
C03F801A277DA521>I<1318A51338A31378A313F8120112031207001FB5FCB6FCA2D801
F8C7FCB215C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347FB220>I<D8
03F0EB07E000FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77
F86D9038E7FF8090383F03C790381FFF87903A03FC07E00029267EA42E>I<B538803FFE
A33A0FF8000FF06C48EB07E00003EC03C06D148000011500A26C6C1306A26D130E017E13
0CA26D5BA2EC8038011F1330A26D6C5AA214E001075BA2903803F180A3D901FBC7FCA214
FF6D5AA2147CA31438A227257EA32C>I<B53A1FFFE03FFEA3260FF8009038000FF86C48
017EEB03E018C00003023EEB0180A26C6C013FEB0300A36C6CEC8006156FA2017E9038EF
C00C15C7A2D93F016D5A15830281EBF038D91F831430150102C3EBF87090260FC6001360
A2D907E66D5A02EC137CA2D903FCEB7F804A133FA2010192C7FC4A7FA20100141E4A130E
0260130C37257EA33C>I<B538807FFFA33A03FE003FF00001EC1F80000092C7FC017E13
1C6D13186D6C5AECC070010F5B6D6C5AECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114
CF903801C7E090380383F090380703F8EB0601496C7E011C137E49137F01787F496D7E48
6C80000FEC3FF0D8FFFE90B51280A329247FA32C>I<B538803FFEA33A0FF8000FF06C48
EB07C00003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F
1360A26D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A2147014
60A25CA2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C
I<003FB512FCA2EB8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F80
0060137F150014FE495AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A
0007140E5B4848130C4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>
I124 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fv cmbx12 14.4 20
/Fv 20 122 df<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C808304
7F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E031F8116
8083033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D844AB87E
A24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A820103854A820107
85A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65
D73
D<B812F8A5D8000701F8CAFCB3B3A91A7CA41AFC1AF8A51901A31903A219071AF0190FA2
191F193F197F19FF180360183F4DB5FCBB12E0A546527CD151>76
D<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA202EF6DEF03CFA202
E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D173CA26F6C1778A26F6C17F0A26F
6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA26F6D5DA3706C5DA2
706C5DA2706D495AA2706D495AA2706D495AA3706D49C7FCA2706D131EA2706D5BA2716C
5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101FFC8FCA3715BA2715BA2725AA2
725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD180>I<003FBC1280A59126C000
3F9038C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA3
007C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>84
D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3FFC
48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC0107
1487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45EA2
6D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014F0
6C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
D<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC
491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5B
A312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D
147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E0
33387CB63C>99 D<913803FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849
486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7FC4817E0A248815B18
F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0
A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390
B55A010015C0021F49C7FC020113F034387CB63D>101 D<ED3FFC0203B5FC020F14C002
3F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A495AA2495AA2EE7FF8
495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512FEA52E547CD329
I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90267FFC0F9038FF9F
F09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83FF813E0489338FC0FC0F0
078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A6C6D495A6C6D485B
DAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFCA2120FA37FA213F8
13FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC12074848C700031480D81FF8
EC003F4848150748486F13C083485A83A56D5D007F18806D5D003F18006C6C4B5AD80FFE
ED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F03FCC7FC010115E0
D9000F01FCC8FC3C4F7CB543>II<137F497E000313E0487FA248
7FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547B
D325>I108
DI<D93FF0EB1FFCB591B512C0030314F003
0F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502
FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B6
12C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F4849
6D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3
003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE
011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<
903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9
FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A
0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FB
FE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<
90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013
FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612
FCA52F367CB537>114 D<143EA6147EA414FEA21301A313031307A2130F131F133F13FF
5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEB
C03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>116
D<B600F00107B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F167C6E15FC6D5E
6F13016D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E
023F147C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F
5AA26F5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E486C13
7C486C13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C13F000
035BC690CBFC404D7DB447>121 D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4
%%EndSetup
%%Page: 1 1
1 0 bop 663 448 a Fv(A)44 b(Logical)i(Algorithm)g(for)f(ML)f(T)l(yp)t
(e)h(Inference)1646 753 y Fu(Da)n(vid)27 b(McAllester)1259
927 y Ft(T)-6 b(o)n(y)n(ota)26 b(T)-6 b(ec)n(hnological)28
b(Institute)d(at)g(Chicago)1631 1018 y(mcallester(at)tti-c.org)759
1486 y Fs(Abstract.)43 b Ft(This)32 b(pap)r(er)g(giv)n(es)h(a)g(b)r
(ottom-up)d(logic)k(programming)d(form)n(ula-)759 1577
y(tion)37 b(of)f(the)g(Hindley-Milner)g(p)r(olymorphic)f(t)n(yp)r(e)g
(inference)i(algorithm.)g(W)-6 b(e)759 1668 y(sho)n(w)27
b(that)f(for)h(programs)f(of)h(b)r(ounded)e(order)i(and)e(arit)n(y)h
(the)g(giv)n(en)g(algorithm)759 1759 y(runs)i(in)h Fr(O)r
Ft(()p Fr(n\013)p Ft(()p Fr(n)p Ft())20 b(+)f Fr(dn)p
Ft())28 b(time)g(where)h Fr(n)g Ft(is)g(the)g(length)f(of)i(the)e
(program,)h Fr(d)f Ft(is)759 1851 y(the)23 b(\sc)n(heme)f(depth”)g(of)
h(the)g(program,)f(and)h Fr(\013)g Ft(is)g(the)f(in)n(v)n(erse)h(of)g
(Ac)n(k)n(ermann’s)759 1942 y(function.)35 b(It)f(is)h(argued)g(that)g
(for)g(practical)h(programs)e Fr(d)h Ft(will)h(not)e(exceed)g(5)759
2033 y(ev)n(en)28 b(for)h(programs)f(with)h(h)n(undreds)e(of)i(mo)r
(dule)e(la)n(y)n(ers.)i(This)g(form)n(ulation)g(of)759
2125 y(the)20 b(Hindley-Milner)h(algorithm)f(is)i(in)n(tended)d(as)i(a)
g(case)g(study)f(in)g(\logical)k(algo-)759 2216 y(rithms”,)h(i.e.,)i
(algorithms)f(presen)n(ted)e(and)h(analyzed)h(as)g(b)r(ottom-up)d
(inference)759 2307 y(rules.)523 2653 y Fq(1)112 b(In)m(tro)s(duction)
523 2932 y Fu(This)32 b(pap)r(er)g(is)g(a)f(case)h(study)g(in)g(the)h
(use)f(of)g(b)r(ottom-up)g(logic)f(programming)f(for)i(the)523
3031 y(presen)n(tation)k(and)h(analysis)e(of)i(complex)g(algorithms.)e
(The)i(use)g(of)g(b)r(ottom-up)g(logic)523 3131 y(programming)31
b(for)h(algorithm)g(presen)n(tation)g(has)g(b)r(een)i(dev)n(elop)r(ed)e
(in)h(a)g(recen)n(t)f(series)523 3231 y(of)26 b(pap)r(ers)g(whose)f
(main)h(con)n(tributions)g(are)f(theorems)g(go)n(v)n(erning)f(the)j
(running)e(time)i(of)523 3330 y(these)h(programs)d([6,)14
b(1,)f(2].)28 b(This)f(pap)r(er)g(explores)g(the)h(use)g(of)f(these)h
(run)g(time)g(theorems)523 3430 y(for)c(the)g(presen)n(tation)g(and)g
(analysis)f(of)h(the)g(Hindley-Milner)h(t)n(yp)r(e)f(inference)g
(algorithm)523 3530 y(used)41 b(in)f(the)h(ML)g(and)g(Caml)f
(programming)e(languages)h([7].)h(It)h(is)g(kno)n(wn)f(that)h(for)523
3629 y(programs)30 b(where)i(pro)r(cedures)f(can)h(tak)n(e)f(an)h(un)n
(b)r(ounded)h(n)n(um)n(b)r(er)f(of)g(argumen)n(ts)f(and)523
3729 y(b)r(e)38 b(of)g(un)n(b)r(oundedly)g(high)f(order)f((pro)r
(cedures)h(whic)n(h)h(tak)n(e)f(pro)r(cedures)f(whic)n(h)i(tak)n(e)523
3828 y(pro)r(cedures)31 b(…))i(the)f(t)n(yp)r(e)h(inference)f
(problem)f(is)h(complete)g(for)g(exp)r(onen)n(tial)g(time)g([4,)523
3928 y(5].)20 b(In)g(practice)f(h)n(uman)h(written)g(pro)r(cedures)f
(nev)n(er)g(tak)n(e)g(more)g(than)h(t)n(w)n(en)n(t)n(y)f(argumen)n(ts)
523 4028 y(and)i(are)g(nev)n(er)f(more)h(than)h(\014fth)g(order.)f(It)g
(is)h(kno)n(wn)f(that)h(for)f(b)r(ounded)g(order)g(and)g(arit)n(y)523
4127 y(the)31 b(t)n(yp)r(e)g(inference)f(problem)g(can)g(b)r(e)h(done)f
(in)h(p)r(olynomial)f(time)h([3].)f(Ho)n(w)n(ev)n(er,)f(I)h(am)523
4227 y(not)i(a)n(w)n(are)e(of)i(a)g(published)h(analysis)d(giving)i(a)f
(particular)g(p)r(olynomial)h(running)f(time)523 4327
y(for)c(this)i(problem.)e(This)h(pap)r(er)g(giv)n(es)e(an)i(inference)g
(rule)f(presen)n(tation)g(of)h(a)g(v)n(ersion)e(of)523
4426 y(the)35 b(Hindley-Milner)f(t)n(yp)r(e)h(inference)g(algorithm)e
(and)h(sho)n(ws)g(that)h(this)f(v)n(ersion)f(runs)523
4526 y(in)39 b(time)g Fp(O)r Fu(()p Fp(n\013)p Fu(()p
Fp(n)p Fu())28 b(+)e Fp(dn)p Fu())39 b(where)f Fp(d)h
Fu(is)g(the)g(\sc)n(heme)f(depth”)h(of)g(the)g(program.)e(The)523
4625 y(algorithm)27 b(presen)n(ted)g(here)g(is)h(v)n(ery)f(similar)g
(to)g(the)i(one)e(describ)r(ed)h(in)g([8])f(although)g(no)523
4725 y(formal)32 b(analysis)e(of)j(running)f(time)g(is)h(giv)n(en)e
(there.)h(Section)g(5)g(de\014nes)h(sc)n(heme)e(depth)523
4825 y(and)k(argues)f(that)h(it)h(can)f(b)r(e)g(exp)r(ected)h(to)f(b)r
(e)g(less)g(than)g(5)g(ev)n(en)g(for)g(programs)d(with)523
4924 y(h)n(undreds)27 b(of)h(mo)r(dule)g(la)n(y)n(ers.)p
eop
%%Page: 2 2
2 1 bop 523 448 a Fq(2)112 b(The)38 b(LDP)f(Programming)e(Language)523
686 y Fu(Here)c(w)n(e)g(use)g((essen)n(tially))g(the)h(logic)e
(programming)f(language)h(and)h(run)g(time)h(mo)r(del)523
785 y(sp)r(eci\014ed)25 b(in)g([2].)f(F)-7 b(or)24 b(con)n(v)n(enience)
f(w)n(e)h(will)h(here)f(refer)g(to)g(this)h(programming)e(language)523
885 y(as)g(LDP)g(for)f(Logic)g(programs)f(with)j(Deletions)f(and)g
(Priorities.)f(It)h(is)g(imp)r(ortan)n(t)g(to)g(note)523
984 y(that)d(deletions)g(and)g(priorities)e(ha)n(v)n(e)h(b)r(een)h
(widely)g(discussed)g(in)g(the)g(logic)f(programming)523
1084 y(literature.)25 b(The)h(main)g(con)n(tribution)g(of)g([2])f(is)h
(the)g(de\014nition)h(of)f(an)f(abstract)g(notion)h(of)523
1184 y(running)33 b(time)g(and)g(a)g(pro)r(of)f(that)i(this)f(abstract)
f(de\014nition)i(of)f(running)f(time)i(can)f(b)r(e)523
1283 y(implemen)n(ted)25 b(on)f(a)g(con)n(v)n(en)n(tional)f(random)h
(access)f(computer.)h(This)h(run)f(time)h(result)f(is)523
1383 y(stated)g(in)f(section)g(3.)h(W)-7 b(e)24 b(no)n(w)f(de\014ne)g
(an)h(LDP)f(program)f(to)h(b)r(e)h(a)f(set)h(of)f(inference)h(rules)523
1483 y(where)i(an)h(inference)g(rule)g(is)f(sp)r(eci\014ed)i(b)n(y)e
(the)i(category)d Fp(r)k Fu(in)f(the)f(follo)n(wing)f(grammar.)581
1680 y Fp(N)32 b Fo(\021)23 b Fp(i)46 b Fo(j)g Fp(n)g
Fo(j)g Fp(N)1144 1692 y Fn(1)1199 1680 y Fu(+)18 b Fp(N)1349
1692 y Fn(2)1432 1680 y Fo(j)47 b Fp(N)1569 1692 y Fn(1)1624
1680 y Fo(\003)18 b Fp(N)1751 1692 y Fn(2)581 1805 y
Fp(H)30 b Fo(\021)23 b Fp(x)46 b Fo(j)h Fp(f)9 b Fu(()p
Fp(\034)1049 1817 y Fn(1)1086 1805 y Fp(;)37 b(:)14 b(:)g(:)g(;)37
b(\034)1353 1817 y Fm(k)1394 1805 y Fu())611 1929 y
Fp(\034)c Fo(\021)23 b Fp(H)53 b Fo(j)46 b Fp(N)594 2054
y(A)24 b Fo(\021)f Fp(P)12 b Fu(()p Fp(\034)901 2066
y Fn(1)938 2054 y Fp(;)37 b(:)14 b(:)g(:)g(;)37 b(\034)1205
2066 y Fm(k)1246 2054 y Fu())47 b Fo(j)f Fp(N)1461 2066
y Fn(1)1521 2054 y Fo(\024)22 b Fp(N)1675 2066 y Fn(2)591
2178 y Fp(C)30 b Fo(\021)23 b Fp(P)12 b Fu(()p Fp(\034)901
2190 y Fn(1)938 2178 y Fp(;)37 b(:)14 b(:)g(:)g(;)37
b(\034)1205 2190 y Fm(k)1246 2178 y Fu())47 b Fo(j)f
Fu(del()p Fp(P)12 b Fu(()p Fp(\034)1665 2190 y Fn(1)1703
2178 y Fp(;)37 b(:)14 b(:)g(:)f(;)37 b(\034)1969 2190
y Fm(k)2011 2178 y Fu()))617 2428 y Fp(r)26 b Fo(\021)d
Fp(A)830 2440 y Fn(1)867 2428 y Fp(;)14 b(:)g(:)g(:)g(;)g(A)1114
2440 y Fm(n)1182 2428 y Fo(!)23 b Fp(C)1347 2440 y Fn(1)1385
2428 y Fp(;)14 b(:)g(:)g(:)g(;)g(C)1629 2440 y Fm(k)1693
2428 y Fu(with)28 b(priorit)n(y)21 b Fp(N)768 2552 y
Fu(Ev)n(ery)26 b(v)-5 b(ariable)26 b(in)i(the)g(priorit)n(y)e(N)i(o)r
(ccurs)f(in)h Fp(A)2364 2564 y Fn(1)2401 2552 y Fu(.)768
2677 y(If)g Fp(A)913 2689 y Fm(i)964 2677 y Fu(=)22 b
Fp(P)12 b Fu(()p Fp(t)1178 2689 y Fn(1)1216 2677 y Fp(;)37
b(:)14 b(:)g(:)36 b(t)1439 2689 y Fm(k)1480 2677 y Fu())28
b(then)g Fp(A)1791 2689 y Fm(i)1847 2677 y Fu(do)r(es)f(not)h(con)n
(tain)f(+)g(or)g Fo(\003)p Fu(.)768 2801 y(If)h Fp(A)913
2813 y Fm(i)964 2801 y Fu(=)22 b Fp(N)1118 2813 y Fn(1)1178
2801 y Fo(\024)h Fp(N)1333 2813 y Fn(2)1398 2801 y Fu(then)28
b(ev)n(ery)e(v)-5 b(ariable)27 b(in)h Fp(A)2277 2813
y Fm(i)2332 2801 y Fu(o)r(ccurs)f(in)h(some)f Fp(A)2956
2813 y Fm(j)3019 2801 y Fu(for)g Fp(j)h(<)22 b(i)p Fu(.)768
2926 y(Ev)n(ery)k(v)-5 b(ariable)26 b(in)i Fp(C)1474
2938 y Fm(i)1530 2926 y Fu(o)r(ccurs)e(in)i(some)f Fp(A)2153
2938 y Fm(j)2189 2926 y Fu(.)523 3123 y(This)g(is)g(t)n(w)n(o-sorted)e
(grammar)g(with)i(a)g(sort)f(for)h(Herbrand)f(terms)h(()p
Fp(H)7 b Fu())27 b(and)g(a)f(separate)523 3223 y(sort)21
b(for)h(in)n(tegers)f(()p Fp(N)9 b Fu().)23 b(There)e(are)g(t)n(w)n
(o)h(sorts)f(of)h(v)-5 b(ariables)21 b(|)h(Herbrand)f(v)-5
b(ariables)21 b(suc)n(h)523 3323 y(as)31 b Fp(x)g Fu(in)h(the)f
(grammar)f(for)g Fp(H)38 b Fu(and)32 b(in)n(teger)e(v)-5
b(ariables)30 b(suc)n(h)h(as)f Fp(i)h Fu(in)h(the)f(grammar)f(for)523
3422 y Fp(N)9 b Fu(.)32 b(In)h(the)g(grammar)d(for)i(in)n(tegers,)f
Fp(n)h Fu(ranges)f(o)n(v)n(er)g(an)n(y)g(in)n(teger)h(constan)n(t.)f(W)
-7 b(e)33 b(allo)n(w)523 3522 y(predicates)f(and)g(functions)g(to)h
(tak)n(e)e(either)i(sort)e(as)h(argumen)n(ts)f(although)h(w)n(e)g
(assume)523 3622 y(that)k(eac)n(h)f(predicate)g(and)g(function)h(sym)n
(b)r(ol)f(has)h(a)f(sp)r(eci\014ed)h(arit)n(y)e(and)i(a)f(sp)r
(eci\014ed)523 3721 y(sort)d(for)h(eac)n(h)f(argumen)n(t)g(and)h(all)g
(applications)f(of)i(predicate)e(and)h(function)h(sym)n(b)r(ols)523
3821 y(m)n(ust)28 b(resp)r(ect)f(this)h(sp)r(eci\014cation)g(to)g(b)r
(e)g(w)n(ell)f(formed.)h(The)g(function)g(sym)n(b)r(ol)f
Fp(f)37 b Fu(in)28 b(the)523 3921 y(grammar)e(for)h(Herbrand)f(terms)i
(should)f(b)r(e)h(view)n(ed)f(as)g(a)g(data)h(constructor.)648
4028 y(The)34 b(inference)f(rules)h(are)f(to)h(b)r(e)g(run)g(b)r
(ottom-up.)g(F)-7 b(or)33 b(rules)h(not)g(in)n(v)n(olving)e(dele-)523
4127 y(tion,)24 b(a)f(state)g(of)h(the)g(system)f(is)h(a)f(database)g
(of)g(assertions)f(whic)n(h)i(gro)n(ws)d(monotonically)523
4227 y(b)n(y)38 b(adding)g(new)g(assertions)e(deriv)-5
b(able)38 b(from)g(some)g(rule)g(and)g(assertions)e(already)h(in)523
4327 y(the)29 b(database.)f(When)h(deletion)f(is)h(in)n(v)n(olv)n(ed)e
(eac)n(h)h(rule)g(states)g(that)h(its)g(conclusion)f(ac-)523
4426 y(tions)j(are)f(to)g(b)r(e)i(tak)n(en)e(tak)n(en)g(whenev)n(er)g
(its)h(an)n(teceden)n(ts)f(are)g(satis\014ed.)h(The)g(actions)523
4526 y(are)h(either)g(additions)g(to,)h(or)e(remo)n(v)-5
b(als)31 b(from,)h(a)g(database)g(of)g(assertions)f(of)h(the)h(form)523
4625 y Fp(P)12 b Fu(()p Fp(\034)656 4637 y Fn(1)694
4625 y Fp(;)45 b(:)14 b(:)g(:)g(;)45 b(\034)977 4637
y Fm(n)1023 4625 y Fu().)33 b(A)g(particular)e(use)h((instance))h
(of)g(a)f(rule)g(in)n(v)n(olv)n(es)f(particular)g(v)-5
b(alues)523 4725 y(for)31 b(all)g(the)h(v)-5 b(ariables)31
b(of)g(that)h(rule.)f(Giv)n(en)h(v)-5 b(alues)31 b(for)g(the)h(v)-5
b(ariables)30 b(in)i(the)g(\014rst)g(an-)523 4825 y(teceden)n(t,)d(a)e
(rule)h(is)h(asso)r(ciated)e(with)h(an)g(in)n(teger)g(priorit)n(y)f
(where)h(the)g(in)n(teger)g(1)f(is)i(the)523 4924 y(highest)f(priorit)n
(y)f((priorit)n(y)g(1)h(rules)f(run)h(\014rst).)h(Priorities)d
(smaller)h(than)h(1)g(are)f(treated)1943 5173 y(2)p eop
%%Page: 3 3
3 2 bop 523 448 a Fu(as)26 b(equiv)-5 b(alen)n(t)26 b(to)h(1)f(but)h
((instances)g(of)6 b())27 b(rules)f(with)h(larger)e(priorit)n(y)g(v)
-5 b(alues)27 b(run)f(only)g(if)523 548 y(no)h(higher)g(priorit)n(y)g
(rule)g(instance)g(can)g(run.)648 669 y(Figure)c(1,)h(tak)n(en)g(from)f
([2],)h(giv)n(es)f(an)h(LDP)g(implemen)n(tation)g(of)h(the)f(Dijkstra)g
(short-)523 769 y(est)j(path)f(algorithm.)g(The)g(input)h(is)g(an)f
(initial)h(database)e(con)n(taining)g(assertions)g(of)i(the)523
869 y(form)21 b Fp(E)5 b Fu(()p Fp(v)s(;)14 b(c;)g(u)p
Fu())21 b(stating)f(that)h(there)g(is)g(an)f(edge)h(from)f
Fp(v)25 b Fu(to)20 b Fp(u)h Fu(of)g(cost)f Fp(c)h Fu(plus)g(an)g
(assertion)523 968 y(of)26 b(the)g(form)g Fl(source)p
Fu(()p Fp(v)s Fu())g(stating)g(that)g Fp(v)k Fu(is)c(the)g(source)f
(no)r(de.)h(In)g(the)h(\014gure)e(eac)n(h)g(rule)h(is)523
1068 y(giv)n(en)j(a)f(name)i(and)f(a)g(priorit)n(y)-7
b(.)28 b(F)-7 b(or)28 b(example,)h(rule)g(D2)h(has)f(priorit)n(y)f(1)g
(while)i(rule)f(D3)523 1167 y(has)21 b(priorit)n(y)f
Fp(d)6 b Fu(+)g(2)20 b(where)h(the)h(in)n(teger)e(v)-5
b(ariable)20 b Fp(d)i Fu(o)r(ccurs)e(in)i(the)f(\014rst)h(an)n(teceden)
n(t)e(of)i(the)523 1267 y(rule.)28 b(Di\013eren)n(t)g(uses)g(of)g(the)h
(rule)e(D3)h(run)g(at)g(di\013eren)n(t)g(priorities.)f(This)i(has)e
(the)i(e\013ect)523 1367 y(that)e(distances)g(are)f(established)h(in)g
(a)g(shortest-\014rst)f(order)g(as)g(in)i(the)f(normal)f(Dijkstra)523
1466 y(shortest)33 b(path)g(algorithm.)f(The)i(general)e(run)h(time)h
(mo)r(del)f(for)g(inference)g(rules)g(giv)n(en)523 1566
y(in)e(section)f(3)g(implies)h(that)g(these)f(rules)g(run)g(in)h
Fp(O)r Fu(()p Fp(e)14 b Fu(log)h Fp(e)p Fu())30 b(where)g
Fp(e)g Fu(is)h(the)g(n)n(um)n(b)r(er)f(of)523 1666 y(initial)e
(assertions.)e(Note)h(that)h Fp(d)1589 1635 y Fk(0)1636
1666 y Fp(<)22 b(d)28 b Fu(can)g(b)r(e)g(written)f(as)g
Fp(d)2495 1635 y Fk(0)2537 1666 y Fu(+)18 b(1)23 b Fo(\024)g
Fp(d)p Fu(.)648 1787 y(W)-7 b(e)36 b(no)n(w)g(consider)g(the)h(op)r
(erational)e(seman)n(tics)h(an)g(arbitrary)e(set)j(of)f(LDP)h(rules)523
1887 y(in)42 b(more)f(detail.)h(A)g(ground)e(assertion)g(is)i(one)f
(not)h(con)n(taining)f(v)-5 b(ariables)40 b(or)h(arith-)523
1986 y(metic)33 b(op)r(erations.)f(A)h(program)e(state)i(is)g(a)f(set)h
Fp(S)38 b Fu(of)33 b(ground)f(assertions)f(of)i(the)g(form)523
2086 y Fp(P)12 b Fu(()p Fp(t)650 2098 y Fn(1)687 2086
y Fp(;)42 b(:)14 b(:)g(:)g(;)42 b(t)958 2098 y Fm(k)999
2086 y Fu())31 b(and)f(deletion)h(assertions)e(of)i(the)g(form)f
(del()p Fp(P)12 b Fu(()p Fp(t)2634 2098 y Fn(1)2672
2086 y Fp(;)42 b(:)14 b(:)g(:)f(;)42 b(t)2942 2098 y
Fm(k)2983 2086 y Fu()).)32 b(Deletion)523 2185 y(actually)21
b(adds)g(an)g(assertion)f(of)h(the)h(form)f(del()p Fp(P)12
b Fu(()p Fp(t)2151 2197 y Fn(1)2189 2185 y Fp(;)37 b(:)14
b(:)g(:)g(;)37 b(t)2450 2197 y Fm(k)2490 2185 y Fu()))23
b(so)d(that)i(the)g(set)f Fp(D)j Fu(gro)n(ws)523 2285
y(monotonically)31 b(o)n(v)n(er)g(the)i(execution)g(of)g(the)g
(algorithm.)e(Ho)n(w)n(ev)n(er,)g(only)h(the)h(p)r(ositiv)n(e)523
2385 y(elemen)n(ts)25 b(of)g Fp(D)j Fu(that)e(ha)n(v)n(e)e(not)h(b)r
(een)h(deleted)f(are)g(\visible”)f(to)h(the)h(an)n(teceden)n(ts)e(of)i
(the)523 2484 y(inference)d(rules.)g(Once)h(a)f(ground)f(assertion)g
(has)h(b)r(een)h(b)r(oth)g(asserted)f(and)g(deleted)h(new)523
2584 y(assertions)30 b(or)h(deletions)h(of)g(that)g(ground)f(assertion)
g(do)h(not)g(c)n(hange)e(the)j(state)f(of)g(the)523 2684
y(database.)27 b(Let)i Fp(r)i Fu(b)r(e)e(the)g(rule)f
Fp(A)1598 2696 y Fn(1)1635 2684 y Fp(;)14 b(:)g(:)g(:)g(;)g(A)1882
2696 y Fm(n)1951 2684 y Fo(!)25 b Fp(C)2118 2696 y Fn(1)2155
2684 y Fp(;)14 b(:)g(:)g(:)g(;)g(C)2399 2696 y Fm(m)2491
2684 y Fu(at)28 b(priorit)n(y)f Fp(N)9 b Fu(.)28 b(Let)h
Fp(\033)j Fu(b)r(e)c(a)523 2783 y(substitution)d(assigning)d
((ground))i(v)-5 b(alues)24 b(to)g(all)g(the)h(v)-5
b(ariables)22 b(in)j(the)g(rule)e Fp(r)r Fu(.)i(The)g(pair)523
2883 y Fo(h)p Fp(r)n(;)37 b(\033)s Fo(i)e Fu(will)f(b)r(e)g(called)g
(an)f(instance)h(of)g Fp(r)r Fu(.)h(The)f(instance)f
Fo(h)p Fp(r)n(;)38 b(\033)s Fo(i)c Fu(is)g(called)f Fj(p)l(ending)i
Fu(at)523 2982 y(state)30 b Fp(S)35 b Fu(if)c(eac)n(h)e(an)n(teceden)n
(t)h Fp(\033)s Fu(()p Fp(A)1645 2994 y Fm(i)1673 2982
y Fu())h(holds)f(in)g(the)h(state)f Fp(S)k Fu(and)c(\014ring)g(the)h
(rule)e(w)n(ould)523 3082 y(c)n(hange)35 b(the)h(state,)g(i.e.,)g
Fp(S)42 b Fo(6)p Fu(=)36 b Fp(S)29 b Fo([)24 b(f)p Fp(\033)s
Fu(()p Fp(C)1893 3094 y Fn(1)1931 3082 y Fu())p Fp(;)14
b(:)g(:)g(:)g(;)g(\033)s Fu(()p Fp(C)2289 3094 y Fm(m)2353
3082 y Fu())p Fo(g)p Fu(.)36 b(W)-7 b(e)36 b(sa)n(y)f(that)h(state)g
Fp(S)k Fu(can)523 3206 y(mak)n(e)27 b(an)g Fp(R)q Fu(-transition)f(to)h
(state)h Fp(S)1686 3176 y Fk(0)1709 3206 y Fu(,)f(written)h
Fp(S)2145 3159 y Fm(R)2129 3206 y Fo(!)23 b Fp(S)2291
3176 y Fk(0)2314 3206 y Fu(,)k(if)h(there)f(exists)g(a)h(p)r(ending)f
(rule)523 3306 y(instance)d Fo(h)p Fp(r)n(;)38 b(\033)s
Fo(i)25 b Fu(with)g Fp(r)h Fo(2)d Fp(R)j Fu(suc)n(h)e(that)h(no)f(p)r
(ending)h(stance)f(of)g(a)g(rule)h(in)f Fp(R)i Fu(has)e(higher)523
3405 y(priorit)n(y)g(and)i Fp(S)1037 3375 y Fk(0)1085
3405 y Fu(is)g Fp(S)19 b Fo([)c(f)p Fp(\033)s Fu(()p
Fp(C)1490 3417 y Fn(1)1527 3405 y Fu())p Fp(;)f(:)g(:)g(:)g(;)g(\033)s
Fu(()p Fp(C)1885 3417 y Fm(m)1949 3405 y Fu())p Fo(g)26
b Fu(where)f Fp(C)2346 3417 y Fn(1)2383 3405 y Fp(;)14
b(:)g(:)g(:)g(;)g(C)2627 3417 y Fm(m)2716 3405 y Fu(is)25
b(the)h(conclusion)f(of)523 3505 y Fp(r)r Fu(.)i(W)-7
b(e)26 b(sa)n(y)f(that)i Fp(W)38 b Fu(is)26 b(a)f(\014nal)h(state)g
(for)g Fp(R)h Fu(on)e(input)i Fp(S)k Fu(if)c(no)e(rule)h(instances)g
(are)f(p)r(end-)523 3605 y(ing)g(in)g Fp(W)37 b Fu(and)25
b Fp(W)37 b Fu(is)24 b(reac)n(hable)g(from)g Fp(S)30
b Fu(b)n(y)24 b(a)h(sequence)f(of)h Fp(R)q Fu(-transitions.)f(One)g
(should)523 3704 y(think)j(of)f Fp(R)h Fu(as)f(a)g((don’t)h(care))e
(nondeterministic)i(pro)r(cedure)e(for)h(mapping)g(input)h
Fp(S)k Fu(to)523 3804 y(output)d Fp(W)12 b Fu(.)801 4382
y Fi(source)q Ft(()p Fr(v)s Ft())523 4474 y Fh((D1,1))p
801 4457 314 4 v 801 4565 a Fi(dist)o Ft(()p Fr(v)s(;)h
Ft(0))1767 4200 y Fi(dist)p Ft(()p Fr(v)s(;)g(d)p Ft())1767
4291 y Fi(dist)p Ft(()p Fr(v)s(;)g(d)2027 4259 y Fg(0)2049
4291 y Ft())1767 4382 y Fr(d)1807 4350 y Fg(0)1851 4382
y Fr(<)21 b(d)1489 4474 y Fh((D2,1))p 1767 4457 V 1767
4565 a Ft(del)q(()p Fi(dist)o Ft(()p Fr(v)s(;)13 b(d)p
Ft()))2946 4291 y Fi(dist)o Ft(()p Fr(v)s(;)g(d)p
Ft())2946 4382 y Fr(E)t Ft(()p Fr(v)s(;)f(c;)i(u)p
Ft())2589 4474 y Fh((D3,)p Fr(d)p Fh(+2))p 2946 4457
V 2946 4565 a Fi(dist)o Ft(()p Fr(u;)f(d)k Ft(+)g Fr(c)p
Ft())1443 4910 y Fs(Fig.)e(1.)25 b Ft(Dijkstra)h(Shortest)g(P)n(ath.)
1943 5173 y Fu(3)p eop
%%Page: 4 4
4 3 bop 523 448 a Fq(3)112 b(The)38 b(Running)f(Time)f(of)i(LDP)f
(Programs)523 652 y Fu(W)-7 b(e)27 b(sa)n(y)f(that)i
Fp(R)g Fu(terminates)e(on)h(input)h Fp(S)k Fu(if)27 b(there)g(is)g(no)g
(in\014nite)g(sequence)g Fp(S)3068 664 y Fn(1)3105 652
y Fu(,)g Fp(S)3206 664 y Fn(2)3244 652 y Fu(,)g Fp(S)3345
664 y Fn(3)3382 652 y Fu(,)523 771 y Fp(:)14 b(:)g(:)32
b Fu(suc)n(h)f(that)i Fp(S)i Fu(=)29 b Fp(S)1259 783
y Fn(1)1329 771 y Fu(and)i Fp(S)1545 783 y Fm(i)1620
724 y(R)1603 771 y Fo(!)f Fp(S)1767 783 y Fm(i)p Fn(+1)1879
771 y Fu(.)i(The)g(Dijkstra)g(shortest)f(path)h(algorithm)f(in)523
871 y(\014gure)66 b(1)33 b(terminates)f(ev)n(en)h(if)h(w)n(e)f(assign)f
(all)h(rules)f(priorit)n(y)g(1)h(so)g(that)g(they)h(can)e(\014re)523
971 y(in)e(an)n(y)f(order.)g(Ho)n(w)n(ev)n(er,)f(w)n(e)i(are)f(in)n
(terested)g(here)h(in)g(m)n(uc)n(h)g(more)f(re\014ned)g(analysis)g(of)
523 1070 y(running)c(time)g(when)g(the)g(rule)g(set)f(is)h(implemen)n
(ted)h(on)e(a)g(con)n(v)n(en)n(tional)f(random)h(access)523
1170 y(computer.)33 b(T)-7 b(o)33 b(mak)n(e)g(statemen)n(ts)g(ab)r(out)
h(con)n(v)n(en)n(tional)d(running)i(time)h(w)n(e)f(in)n(tro)r(duce)523
1269 y(the)27 b(notion)f(of)g(a)g(pre\014x)g(\014ring.)g(A)h
Fj(pr)l(e\014x)h(instanc)l(e)f Fu(of)f Fp(r)k Fu(with)d
Fp(n)f Fu(an)n(teceden)n(ts)g(is)g(a)g(triple)523 1369
y Fo(h)p Fp(r)n(;)37 b(i;)g(\033)s Fo(i)31 b Fu(where)f(1)c
Fo(\024)h Fp(i)g Fo(\024)g Fp(n)j Fu(and)g Fp(\033)j
Fu(is)d(a)g(ground)f(substitution)i(de\014ned)f(on)g((only))h(the)523
1469 y(v)-5 b(ariables)22 b(o)r(ccurring)g(in)i(the)g(an)n(teceden)n(t)
f(pre\014x)g Fp(A)2160 1481 y Fn(1)2198 1469 y Fp(;)37
b(:)14 b(:)g(:)f(;)37 b(A)2490 1481 y Fm(i)2542 1469
y Fu(of)23 b Fp(r)r Fu(.)i(In)n(tuitiv)n(ely)-7 b(,)23
b(a)g(pre\014x)523 1568 y(instance)31 b(is)h(a)f(w)n(a)n(y)f(of)i
(instan)n(tiating)f(the)g(\014rst)h Fp(i)f Fu(an)n(teceden)n(ts)g(of)g
(the)h(rule.)f(Let)h Fp(W)44 b Fu(b)r(e)523 1668 y(a)31
b(\014nal)g(state)f(of)h(input)h Fp(S)k Fu(for)30 b(rule)h(set)g
Fp(R)q Fu(.)g(An)h(atomic)e(form)n(ula)g Fp(P)12 b Fu(()p
Fp(t)2801 1680 y Fn(1)2838 1668 y Fp(;)43 b(:)14 b(:)g(:)g(;)42
b(t)3110 1680 y Fm(k)3151 1668 y Fu())32 b(in)f Fp(W)523
1768 y Fu(will)i(b)r(e)h(said)f(to)g(ha)n(v)n(e)f(b)r(een)h(asserted)f
(and)h(will)h(b)r(e)f(said)g(to)g(ha)n(v)n(e)f(b)r(een)i(deleted)f(if)h
Fp(W)523 1867 y Fu(con)n(tains)25 b(del()p Fp(P)12 b
Fu(()p Fp(t)1112 1879 y Fn(1)1150 1867 y Fp(;)36 b(:)14
b(:)g(:)g(;)37 b(t)1410 1879 y Fm(k)1451 1867 y Fu()).)26
b(An)h(assertion)d(is)h(visible)h(to)g(the)g(an)n(teceden)n(ts)f(of)g
(rules)g(if)523 1967 y(it)j(has)f(b)r(een)h(asserted)f(but)h(has)f(not)
g(b)r(een)h(deleted.)664 2154 y Ff(De\014nition:)k Fu(A)i
Fj(pr)l(e\014x)h(\014ring)e Fu(of)h(a)f(rule)g Fp(r)j
Fu(o)n(v)n(er)c(a)h(\014nal)g(state)g Fp(W)46 b Fu(is)33
b(a)g(pre\014x)664 2253 y(instance)26 b Fo(h)p Fp(r)n(;)37
b(i;)g(\033)s Fo(i)27 b Fu(of)f Fp(r)i Fu(suc)n(h)e(that)g
Fp(\033)s Fu(()p Fp(A)1977 2265 y Fn(1)2016 2253 y Fu(),)g
Fp(:)14 b(:)g(:)p Fu(,)26 b Fp(\033)s Fu(()p Fp(A)2387
2265 y Fm(i)2416 2253 y Fu())g(ha)n(v)n(e)f(all)h(b)r(een)g(asserted)
664 2353 y((and)j(p)r(ossibly)g(also)f(deleted))i(where)e
Fp(A)1971 2365 y Fn(1)2009 2353 y Fu(,)h Fp(:)14 b(:)g(:)p
Fu(,)29 b Fp(A)2272 2365 y Fm(i)2329 2353 y Fu(are)f(the)h(\014rst)g
Fp(i)g Fu(an)n(teceden)n(ts)664 2453 y(of)f Fp(r)r Fu(.)648
2639 y(The)e(basic)f(result)h(in)h([6])f(is)g(that)g(for)g(a)f(rule)h
(set)g Fp(R)h Fu(in)g(whic)n(h)f(all)g(rules)f(ha)n(v)n(e)g(priorit)n
(y)523 2738 y(1)i((and)h(can)g(therefore)e(\014re)i(in)g(an)n(y)f
(order),)f(and)i(where)f(no)g(rule)h(in)n(v)n(olv)n(es)e(deletion,)i
(the)523 2838 y((unique))g(\014nal)g(state)f(can)g(b)r(e)h(computed)f
(time)h(prop)r(ortional)e(to)h(the)h(n)n(um)n(b)r(er)f(of)g(pre\014x)
523 2938 y(\014rings)i(o)n(v)n(er)f(the)j(\014nal)f(state.)g(This)g(b)r
(ound)g(also)f(holds)h(for)f(rules)h(with)g(\014xed)g(priorities)523
3037 y((no)j(v)-5 b(ariables)32 b(in)i(the)f(priorit)n(y)f
(expressions))g(and)h(deletions.)g(Ho)n(w)n(ev)n(er)f(the)h(run)g
(time)523 3137 y(b)r(ound)21 b(from)e(this)i(\naiv)n(e”)d(coun)n(t)i
(of)g(pre\014x)g(\014rings)f(is)h(t)n(ypically)g(quite)g(lo)r(ose)g
(for)f(rule)h(sets)523 3236 y(in)n(v)n(olving)31 b(deletions)g(and)h
(priorities.)f(Rather)h(than)g(coun)n(t)g(all)f(pre\014x)h(\014rings)f
(w)n(e)h(w)n(an)n(t)523 3336 y(to)f(only)f(coun)n(t)h(the)g(\visible”)
f(pre\014x)g(\014rings.)g(T)-7 b(o)31 b(de\014ne)g(the)g(visible)g
(pre\014x)f(\014rings)g(w)n(e)523 3436 y(consider)22
b(computation)h(histories.)g(A)h(complete)f Fp(R)q Fu(-computation)f
(from)h Fp(S)28 b Fu(is)c(a)f(sequence)523 3555 y Fp(S)574
3567 y Fn(1)611 3555 y Fu(,)32 b Fp(S)717 3567 y Fn(2)754
3555 y Fu(,)f Fp(:)14 b(:)g(:)p Fu(,)31 b Fp(S)1010 3567
y Fm(T)1094 3555 y Fu(suc)n(h)f(that)i Fp(S)1519 3567
y Fn(1)1585 3555 y Fu(=)d Fp(S)5 b Fu(,)31 b Fp(S)1840
3567 y Fm(i)1913 3508 y(R)1896 3555 y Fo(!)e Fp(S)2059
3567 y Fm(i)p Fn(+1)2202 3555 y Fu(and)i Fp(S)2418 3567
y Fm(T)2502 3555 y Fu(is)g(a)g(\014nal)g(v)-5 b(alue)31
b(of)g Fp(S)5 b Fu(,)31 b(i.e.,)523 3655 y(there)c(are)g(no)g
(instances)g(of)h(rules)f(in)h Fp(R)g Fu(that)g(are)f(p)r(ending)h(in)f
Fp(S)2609 3667 y Fm(T)2662 3655 y Fu(.)664 3842 y Ff(De\014nition:)g
Fu(A)h(state)g Fp(S)k Fu(is)c(said)f(to)h(b)r(e)g(visible)g(to)g(a)f
(pre\014x)h(instance)f Fo(h)p Fp(r)n(;)38 b(i;)e(\033)s
Fo(i)664 3941 y Fu(if)24 b(no)f(p)r(ending)h(instance)e(of)i(a)f(rule)f
(in)i Fp(R)g Fu(has)f(priorit)n(y)f(higher)g(than)i(the)f(priorit)n(y)
664 4041 y(of)h Fo(h)p Fp(r)n(;)38 b(i;)e(\033)s Fo(i)q
Fu(.)24 b(A)h(pre\014x)f(\014ring)g Fo(h)p Fp(r)n(;)37
b(i;)g(\033)s Fo(i)25 b Fu(o)n(v)n(er)d(the)j(\014nal)f(state)g(of)g(a)
g(computation)664 4141 y(is)34 b(said)f(to)h(b)r(e)g(visible)g(in)g(a)f
(computation)h(if)g(either)g Fp(i)f Fu(=)g(1)g(and)h
Fp(r)i Fu(is)e(v)-5 b(ariable)664 4240 y(priorit)n(y)31
b(or)f(the)i(computation)g(con)n(tains)e(a)i(state)f
Fp(S)37 b Fu(visible)31 b(to)h Fo(h)p Fp(r)n(;)37 b(i;)g(\033)s
Fo(i)32 b Fu(suc)n(h)664 4340 y(that)27 b Fp(\033)s Fu(()p
Fp(A)987 4352 y Fn(1)1025 4340 y Fu(),)g Fp(:)14 b(:)g(:)27
b(\033)s Fu(()p Fp(A)1375 4352 y Fm(i)1404 4340 y Fu())g(all)f(hold)h
(in)g Fp(S)k Fu((ha)n(v)n(e)26 b(b)r(een)h(asserted)e(but)j(not)e
(deleted))664 4439 y(where)h Fp(A)966 4451 y Fn(1)1004
4439 y Fu(,)g Fp(:)14 b(:)g(:)p Fu(,)28 b Fp(A)1264 4451
y Fm(i)1320 4439 y Fu(are)e(the)i(\014rst)g Fp(i)f Fu(an)n(teceden)n
(ts)g(of)g Fp(r)r Fu(.)648 4625 y(Ev)n(ery)i(visible)j(pre\014x)f
(\014ring)g(is)g(a)g(pre\014x)g(\014ring)g(o)n(v)n(er)f(the)i(\014nal)f
(state,)h(but)g(the)g(vis-)523 4725 y(ible)f(pre\014x)f(\014rings)f
(are)h(usually)f(only)h(a)g(small)g(fraction)g(of)h(the)f(pre\014x)g
(\014rings.)g(A)h(\014rst-)523 4825 y(an)n(teceden)n(t)25
b(pre\014x)g(\014ring)g(is)g(just)h(a)f(pre\014x)g(\014ring)g
Fo(h)p Fp(r)n(;)14 b(i;)g(\033)s Fo(i)26 b Fu(with)g
Fp(i)d Fu(=)f(1.)j(The)h(follo)n(wing)e(is)523 4924 y(the)k(main)g
(theorem)f(of)g([2].)1943 5173 y(4)p eop
%%Page: 5 5
5 4 bop 523 448 a Ff(Theorem)30 b(1.)41 b Fj(If)30 b(the)f(rule)g(set)g
Fp(R)h Fj(terminates)f(on)g(initial)h(state)f Fp(S)34
b Fj(then)29 b(a)h(c)l(omplete)g Fp(R)q Fj(-)523 548
y(c)l(omputation)25 b(fr)l(om)g Fp(S)30 b Fj(c)l(an)25
b(b)l(e)f(c)l(ompute)l(d)h(on)g(a)g(RAM)g(machine)h(extende)l(d)e(with)
i(c)l(onstant)523 648 y(time)j(hash)h(table)g(op)l(er)l(ations)g(in)f
(time)h(pr)l(op)l(ortional)h(to)e Fo(j)p Fp(S)5 b Fo(j)16
b Fu(+)h Fp(P)2603 660 y Fn(1)2658 648 y Fu(+)f Fp(P)2792
660 y Fn(2)2843 648 y Fu(log)f Fp(N)37 b Fj(wher)l(e)30
b Fo(j)p Fp(S)5 b Fo(j)523 747 y Fj(is)38 b(the)g(numb)l(er)f(of)h
(assertions)g(in)g Fp(S)5 b Fj(,)38 b Fp(P)1854 759 y
Fn(1)1929 747 y Fj(is)g(the)g(numb)l(er)f(of)h(visible)h(pr)l(e\014x)e
(\014rings)h(of)523 847 y(\014xe)l(d)30 b(priority)h(rules;)g
Fp(P)1300 859 y Fn(2)1367 847 y Fj(is)g(the)f(numb)l(er)f(of)i(visible)
h(pr)l(e\014x)d(\014rings)h(of)h(variable)h(priority)523
946 y(rules;)d(and)g Fp(N)37 b Fj(is)28 b(the)h(numb)l(er)e(of)i
(distinct)g(priorities)h(of)g(\014rst-ante)l(c)l(e)l(dent)c(pr)l
(e\014x)i(\014rings)523 1046 y(of)j(variable)g(priority)h(rules.)648
1235 y Fu(T)-7 b(o)25 b(see)g(ho)n(w)f(this)i(theorem)f(can)g(b)r(e)h
(applied)f(w)n(e)g(no)n(w)g(giv)n(e)f(a)h(running)g(time)h(analysis)523
1335 y(of)g(the)h(Dijkstra)f(shortest)f(path)h(algorithm)f(sho)n(wn)h
(in)g(Figure)f(1.)h(Note)g(that)h(for)e(a)h(state)523
1434 y(to)34 b(b)r(e)g(visible)f(to)h((an)g(instance)f(of)6
b())35 b(a)e(rule)g(there)h(m)n(ust)g(not)g(b)r(e)g(an)n(y)f(p)r
(ending)h(higher)523 1534 y(priorit)n(y)28 b(rule.)h(States)g(where)g
(no)g(high-priorit)n(y)e(rule)i(is)h(p)r(ending)f(often)h(satisfy)f
(certain)523 1633 y(in)n(v)-5 b(arian)n(ts.)35 b(The)i(priorit)n(y)e
(of)i(a)f(state)h(is)f(the)h(priorit)n(y)e(of)i(a)f(highest-priorit)n
(y)f((lo)n(w)n(est)523 1733 y(in)n(teger))c(p)r(ending)i(rule)e
(instance)h((or)f(+)p Fo(1)h Fu(if)g(there)g(are)f(no)g(p)r(ending)i
(rule)e(instances).)523 1833 y(The)c(rule)h(D2)f(ensures)g(that)g(in)h
(an)n(y)e(state)i(with)g(priorit)n(y)e(2)h(or)f(larger)g(w)n(e)h(ha)n
(v)n(e)f(at)h(most)523 1932 y(one)39 b(distance)g(asso)r(ciated)f(with)
h(eac)n(h)g(no)r(de.)g(So)g(this)g(in)n(v)-5 b(arian)n(t)38
b(holds)h(in)h(an)n(y)e(state)523 2032 y(visible)31 b(to)h(the)f(rule)g
(D3.)h(The)f(priorit)n(y)f(of)i(an)f(instance)g(of)g(rule)g(D3)g(is)h
(determined)f(b)n(y)523 2132 y(the)h(v)-5 b(alue)32 b(of)f(the)h(in)n
(teger)f(v)-5 b(ariable)31 b Fp(d)h Fu(app)r(earing)e(in)i(the)g
(\014rst)f(an)n(teceden)n(t)h(|)f(shorter)523 2231 y(distances)24
b(get)h(higher)f(priorit)n(y)-7 b(.)24 b(Note)h(that)g(when)g(an)g
(instance)g(of)g(D3)g(runs)f(all)h(p)r(ending)523 2331
y(rule)e(\014rings)g(in)n(v)n(olv)n(e)f(priorities)g(at)i(least)f(as)g
(large)f(as)h Fp(d)p Fu(.)h(Since)g(an)f(in)n(v)n(o)r(cation)f(of)i
(rule)f(D3)523 2431 y(m)n(ust)h(generate)e(a)h(b)r(ound)h(at)g(least)f
(as)g(large)f(as)h Fp(d)p Fu(,)g(all)h(future)g(b)r(ounds)f(will)h(b)r
(e)g(at)g(least)f(as)523 2530 y(large)e(as)i Fp(d)p Fu(.)g(Hence,)g(in)
g(an)n(y)f(state)g(with)i(priorit)n(y)d Fp(d)9 b Fu(+)g(2)22
b(or)g(greater,)f(an)n(y)h(visible)h(assertion)523 2630
y(of)d(the)f(form)h Fl(dist)o Fu(()p Fp(u;)14 b(d)p
Fu())20 b(m)n(ust)g(ha)n(v)n(e)e(the)i(prop)r(ert)n(y)e(that)i
Fp(d)g Fu(is)g(the)g(actual)f(shortest)f(distance)523
2729 y(to)30 b(the)g(no)r(de)g Fp(u)p Fu(.)f(Hence,)h(for)f(a)h(giv)n
(en)f(no)r(de)h Fp(u)f Fu(there)h(is)f(only)h(one)f(v)-5
b(alue)30 b(of)g Fp(d)g Fu(used)f(in)h(a)523 2829 y(full)24
b(\014ring)e(of)h(rule)g(D3.)g(This)g(implies)g(that)g(the)g(total)g(n)
n(um)n(b)r(er)g(of)g(\014rings)f(of)h(the)g(\014rst)g(t)n(w)n(o)523
2929 y(an)n(teceden)n(ts)g(of)g(D3)h(is)f(at)h(most)f(the)h(n)n(um)n(b)
r(er)f(of)h(edges)f(in)h(the)g(graph.)e(Eac)n(h)g(\014ring)h(of)h(D2)
523 3028 y(o)r(ccurs)29 b(in)g(a)g(state)g(immediately)h(follo)n(wing)e
(a)h(\014ring)g(of)h(D3)f(and)g(for)g(eac)n(h)g(\014ring)g(of)g(D3)523
3128 y(there)21 b(is)f(at)h(most)f(one)h(\014ring)f(of)g(D2.)h(Hence)g
(the)g(total)g(n)n(um)n(b)r(er)f(of)h(\014rings)f(of)g(D2)h(is)g(also)e
(at)523 3228 y(most)k(the)h(total)g(n)n(um)n(b)r(er)f(of)g(edges.)g(F)
-7 b(urthermore,)23 b(this)h(implies)f(that)h(the)g(total)f(n)n(um)n(b)
r(er)523 3327 y(of)k(assertions)f(of)h(the)h(form)f Fl(dist)p
Fu(()p Fp(u;)14 b(d)p Fu())27 b(ev)n(er)f(asserted)h(is)g(at)g(most)g
Fp(e)p Fu(.)g(All)h(of)g(these)f(\ev)n(er-)523 3427
y(asserted”)g(assertions)g(m)n(ust)i(b)r(e)g(included)h(as)e(pre\014x)g
(\014rings)g(of)h(the)g(\014rst)g(an)n(teceden)n(t)f(of)523
3526 y(the)33 b(v)-5 b(ariable)31 b(priorit)n(y)g(rule)h(D3.)g(Ho)n(w)n
(ev)n(er,)e(for)i(the)h(t)n(w)n(o)e(an)n(teceden)n(t)h(pre\014x)g
(\014rings)f(of)523 3626 y(D3)26 b(w)n(e)f(need)h(only)f(consider)f(a)h
(single)h(v)-5 b(alue)25 b(of)h Fp(d)f Fu(for)g(eac)n(h)g(v)-5
b(alue)26 b(of)f Fp(u)p Fu(.)h(Hence)f(the)h(total)523
3726 y(n)n(um)n(b)r(er)21 b(of)g(pre\014x)g(\014rings)f(is)h
Fp(O)r Fu(()p Fp(e)p Fu().)h(The)g(n)n(um)n(b)r(er)f(of)g(distinct)h
(priorities)e(asso)r(ciated)f(with)523 3825 y(rule)28
b(D3)h(is)f(at)h(most)f Fp(e)p Fu(.)g(So)h(the)g(abstract)e(run)i(time)
g(of)f(rule)g(D3)h(is)f Fp(O)r Fu(()p Fp(e)14 b Fu(log)h
Fp(e)p Fu().)29 b(The)f(run)523 3925 y(time)g(of)g(D3)f(dominates)g
(and)h(the)g(algorithm)e(runs)h(in)h Fp(O)r Fu(()p Fp(e)14
b Fu(log)h Fp(e)p Fu())27 b(time.)523 4209 y Fq(4)112
b(Union-Find)523 4426 y Fu(Figure)31 b(2,)g(tak)n(en)g(from)g([2],)g
(giv)n(es)g(an)g(LDP)g(implemen)n(tation)h(of)f(the)h(union-\014nd)g
(algo-)523 4526 y(rithm.)22 b(The)g(algorithm)e(is)i(not)f
(particularly)f(elegan)n(t,)h(but)h(it)g(do)r(es)f(sho)n(w)g(that)h
(LDP)f(with)523 4625 y(its)26 b(asso)r(ciated)e(abstraction)g(notion)h
(of)g(run)h(time)f(is)h(su\016cien)n(tly)f(p)r(o)n(w)n(erful)g(to)g
(express)f(a)523 4725 y(useful)e(implemen)n(tation)f(of)g
(union-\014nd.)h(Note)f(that)g(these)h(rules)e(all)h(ha)n(v)n(e)f
(priorit)n(y)g(either)523 4825 y(1)25 b(or)g(2.)g(The)h(rules)f(tak)n
(e)g(as)g(input)h(assertions)e(of)h(the)h(form)g Fl(union)o
Fu(()p Fp(x;)14 b(y)s Fu())26 b(and)f(pro)r(duce)h(as)523
4924 y(output)k(assertions)d(of)i(the)g(form)g Fl(\014nd)p
Fu(()p Fp(x;)14 b(f)9 b Fu().)29 b(An)n(y)g(state)g(in)h(whic)n(h)f
(no)f(union-\014nd)i(rules)1943 5173 y(5)p eop
%%Page: 6 6
6 5 bop 916 809 a Fi(union)o Ft(()p Fr(x;)12 b(y)s Ft())599
900 y Fh((UF1,1))p 916 883 314 4 v 916 991 a Fi(no\014nd)o
Ft(()p Fr(x)p Ft())916 1083 y Fi(no\014nd)o Ft(()p
Fr(y)s Ft())1914 809 y Fi(\014nd)p Ft(()p Fr(x;)g(y)s
Ft())1597 900 y Fh((UF2,1))p 1914 883 V 1914 991 a
Ft(del()p Fi(no\014nd)p Ft(()p Fr(x)p Ft()))2912
809 y Fi(\014nd)p Ft(()p Fr(x;)g(y)s Ft())2912 900
y Fi(\014nd)p Fr(:)p Fi(a)n(rc)p Ft(()p Fr(y)s(;)h(z)s
Ft())2595 991 y Fh((UF3,1))p 2912 974 V 2912 1083
a Fi(\014nd)p Ft(()p Fr(x;)f(z)s Ft())2912 1174 y(del()p
Fi(\014nd)p Ft(()p Fr(x;)g(y)s Ft()))916 1587 y Fi(union)o
Ft(()p Fr(x;)g(y)s Ft())916 1678 y Fi(\014nd)o Ft(()p
Fr(x;)h(z)s Ft())916 1769 y Fi(\014nd)o Ft(()p Fr(y)s(;)g(z)s
Ft())599 1861 y Fh((UF4,1))p 916 1844 V 916 1952 a
Ft(del()p Fi(union)o Ft(()p Fr(x;)f(y)s Ft()))1914
1587 y Fi(no\014nd)p Ft(()p Fr(x)p Ft())1597 1678 y
Fh((UF5,2))p 1914 1661 V 1914 1769 a Fi(\014nd)p Ft(()p
Fr(x;)g(x)p Ft())1914 1861 y Fi(size)p Ft(()p Fr(x;)h
Ft(1))2912 1587 y Fi(union)o Ft(()p Fr(x;)f(y)s Ft())2912
1678 y Fi(\014nd)p Ft(()p Fr(x;)g(x)3184 1646 y Fg(0)3206
1678 y Ft())2912 1769 y Fi(\014nd)p Ft(()p Fr(y)s(;)g(y)3178
1738 y Fg(0)3200 1769 y Ft())2595 1861 y Fh((UF6,2))p
2912 1844 V 2912 1952 a Fi(merge)q Ft(()p Fr(x)3180
1920 y Fg(0)3202 1952 y Fr(;)h(y)3277 1920 y Fg(0)3299
1952 y Ft())916 2365 y Fi(merge)q Ft(()p Fr(x;)f(y)s
Ft())916 2456 y Fi(size)p Ft(()p Fr(x;)h(s)p Ft(1))916
2547 y Fi(size)p Ft(()p Fr(y)s(;)g(s)p Ft(2))916 2639
y Fr(s)p Ft(1)21 b Fe(\024)g Fr(s)p Ft(2)599 2730 y Fh((UF7,1))p
916 2713 V 916 2821 a Ft(del()p Fi(merge)q Ft(()p Fr(x;)12
b(y)s Ft()))916 2912 y Fi(\014nd)p Fr(:)p Fi(a)n(rc)p
Ft(()p Fr(x;)g(y)s Ft())916 3004 y(del()p Fi(size)p
Ft(()p Fr(y)s(;)h(s)p Ft(2)))916 3095 y Fi(size)p
Ft(()p Fr(y)s(;)g(s)p Ft(1)k(+)g Fr(s)p Ft(2))1914
2365 y Fi(merge)q Ft(()p Fr(x;)12 b(y)s Ft())1914 2456
y Fi(size)p Ft(()p Fr(x;)h(s)p Ft(1))1914 2547 y Fi(size)p
Ft(()p Fr(y)s(;)g(s)p Ft(2))1914 2639 y Fr(s)p Ft(2)22
b Fr(<)f(s)p Ft(1)1597 2730 y Fh((UF8,1))p 1914 2713
V 1914 2821 a Ft(del()p Fi(merge)q Ft(()p Fr(x;)13
b(y)s Ft()))1914 2912 y Fi(\014nd)p Fr(:)p Fi(a)n(rc)p
Ft(()p Fr(y)s(;)g(x)p Ft())1914 3004 y(del()p Fi(size)p
Ft(()p Fr(x;)g(s)p Ft(1)))1914 3095 y Fi(size)p Ft(()p
Fr(x;)g(s)p Ft(1)k(+)g Fr(s)p Ft(2))1642 3511 y Fs(Fig.)e(2.)25
b Ft(Union-Find)1282 4046 y Fr(E)t Ft(()p Fr(x;)12 b(c;)h(y)s
Ft())1282 4137 y Fi(\014nd)o Ft(()p Fr(x;)g(z)s Ft())1282
4229 y Fi(\014nd)o Ft(()p Fr(y)s(;)g(z)s Ft())964 4320
y Fh((ST1,3))p 1282 4303 V 1282 4411 a Ft(del()p Fr(E)t
Ft(()p Fr(x;)f(c;)h(y)s Ft()))2557 4046 y Fr(E)t Ft(()p
Fr(x;)f(c;)i(y)s Ft())2161 4137 y Fh((ST2,c+4))p 2557
4120 V 2557 4229 a Fi(union)o Ft(()p Fr(x;)e(y)s Ft())2557
4320 y Fi(out)p Ft(()p Fr(x;)g(c;)i(y)s Ft())1418 4756
y Fs(Fig.)g(3.)26 b Ft(Minim)n(um)e(Spanning)h(T)-6 b(ree)1943
5173 y Fu(6)p eop
%%Page: 7 7
7 6 bop 523 448 a Fu(are)22 b(p)r(ending,)h(e.g.,)g(an)n(y)f(state)g
(with)h(priorit)n(y)f(3)g(or)g(lo)n(w)n(er)f((n)n(umerically)i
(larger),)e(satis\014es)523 548 y(the)28 b(in)n(v)-5
b(arian)n(t)26 b(that)h(for)g(an)n(y)f Fp(x)i Fu(there)f(is)g(at)g
(most)g(one)f Fp(y)k Fu(satisfying)d Fl(\014nd)o Fu(()p
Fp(x;)14 b(y)s Fu())28 b(and)f(that)523 648 y(the)35
b(\014nd)g(map)f(de\014ned)h(b)n(y)f(the)g(\014nd)h(relation)f
(implemen)n(ts)g(the)h(equiv)-5 b(alence)34 b(relation)523
747 y(de\014ned)j(b)n(y)g(the)g(input)h(union)f(assertions.)e(This)i
(implemen)n(tation)g(uses)f(greedy)g(path)523 847 y(compression.)25
b(The)i(n)n(um)n(b)r(er)f(of)g(visible)h(pre\014x)f(\014rings)g((the)h
(abstract)e(running)h(time)i(for)523 946 y(\014xed)36
b(priorit)n(y)f(rules))h(is)g Fp(O)r Fu(()p Fp(n)14
b Fu(log)h Fp(n)p Fu())36 b(where)g Fp(n)g Fu(is)g(the)g(n)n(um)n(b)r
(er)g(of)g(union)g(op)r(erations.)523 1046 y(Figure)i(3,)f(also)g(tak)n
(en)h(from)g([2],)f(sho)n(ws)g(an)h Fp(O)r Fu(()p Fp(n)14
b Fu(log)h Fp(n)p Fu())38 b(LDP)g(implemen)n(tation)g(of)g(a)523
1146 y(minim)n(um)31 b(spanning)f(tree)h(algorithm)e(based)h(on)h(this)
g(implemen)n(tation)f(of)h(union-\014nd.)523 1245 y(The)i(input)h(is)e
(a)h(set)f(of)h(assertion)f(of)g(the)i(form)e Fp(E)5
b Fu(()p Fp(x;)14 b(c;)g(y)s Fu())33 b(and)g(the)g(output)h(spanning)
523 1345 y(tree)29 b(is)g(a)f(set)i(of)f(assertions)e(of)i(the)h(form)e
Fl(out)p Fu(()p Fp(x;)14 b(c;)g(y)s Fu().)29 b(An)h
Fp(O)r Fu(()p Fp(n\013)p Fu(()p Fp(n)p Fu()))h(implemen)n(tation)
523 1445 y(of)d(union-\014nd)g(can)f(also)g(b)r(e)h(giv)n(en)f(in)i
(LDP)e(but)i(requires)d(that)j(union)f(assertions)e(carry)523
1544 y(time)21 b(stamps)e(and)h(that)g(a)g(time-stamp)r(ed)g(\014nd)g
(request)g(is)g(made)f(eac)n(h)h(time)g(one)g(accesses)523
1644 y(the)31 b(\014nd)f(relation.)g(This)g(mak)n(es)f(it)i(di\016cult)
g(to)f(write)g(rules,)g(suc)n(h)g(as)f(rule)h(ST1)g(in)h(\014g-)523
1743 y(ure)e(3,)h(whose)f(an)n(teceden)n(ts)g(notice)g(c)n(hanges)f(in)
i(the)g(\014nd)g(map.)g(In)g(man)n(y)f(applications)523
1843 y(of)37 b(union-\014nd,)f(suc)n(h)h(as)e(the)i(spanning)f(tree)h
(algorithm)e(in)i(\014gure)f(3,)g(the)h(union-\014nd)523
1943 y(pro)r(cessing)24 b(time)i(is)f(dominated)g(b)n(y)g(other)g
(computations)g((suc)n(h)g(as)f(the)i(priorit)n(y)e(queue)523
2042 y(implicit)k(in)g(rule)g(ST2))f(and)h(the)g Fp(O)r
Fu(()p Fp(n)14 b Fu(log)g Fp(n)p Fu())28 b(implemen)n(tation)g(of)f
(union-\014nd)h(su\016ces.)523 2319 y Fq(5)112 b(P)m(olymorphic)35
b(T)m(yp)s(e)j(Inference)523 2530 y Fu(P)n(olymorphic)23
b(t)n(yp)r(e)i(inference)f(can)h(b)r(e)g(form)n(ulated)f(for)g(the)h
(lam)n(b)r(da)g(calculus)f(extended)523 2630 y(with)f(an)f(explicit)h
(let)f(constructor)f(and)i(a)f(constan)n(t)f(for)h(the)h(n)n(umeral)f
(zero.)f(The)h(lam)n(b)r(da)523 2729 y(calculus)40 b(with)i(let)f(and)f
(zero)g(is)h(the)g(set)g(of)f(expressions)f(de\014ned)i(b)n(y)g(the)g
(follo)n(wing)523 2829 y(grammar.)912 3016 y Fp(x)23
b Fo(\021)g Fl(termva)n(r)r Fu(()p Fl(id)p Fu())920
3141 y Fp(e)g Fo(\021)g Fp(x)47 b Fo(j)f Fu(0)g Fo(j)g
Fl(lamb)r(da)o Fu(()p Fp(x;)38 b(e)p Fu())46 b Fo(j)g
Fl(let)p Fu(()p Fp(x;)38 b(e)2235 3153 y Fn(1)2272 3141
y Fp(;)f(e)2371 3153 y Fn(2)2407 3141 y Fu())47 b Fo(j)f
Fl(apply)q Fu(()p Fp(e)2811 3153 y Fn(1)2848 3141 y
Fp(;)37 b(e)2947 3153 y Fn(2)2984 3141 y Fu())523 3328
y(Note)32 b(that)h(this)f(grammar)e(represen)n(ts)h(eac)n(h)h
(expression)e(of)i(the)h(lam)n(b)r(da)f(calculus)g(ex-)523
3428 y(plicitly)25 b(as)f(an)h(LDP)f(data)g(structure.)h(V)-7
b(ariables)23 b(are)h(represen)n(ted)f(b)n(y)i(LDP)f(data)h(struc-)523
3527 y(tures)i(of)g(the)h(form)f Fl(termva)n(r)q Fu(()p
Fl(id)p Fu())h(where)e Fl(id)i Fu(is)f(the)g(\iden)n(ti\014er”)f(of)i
(the)f(v)-5 b(ariable)26 b(and)h(can)523 3627 y(b)r(e)38
b(an)n(y)e(LDP)i(data)f(structure)f((ground)h(term).)h(It)f(is)h(in)n
(teresting)e(to)h(note)h(that)f(one)523 3727 y(can)31
b(easily)g(write)g(LDP)h(programs)d(that)j(\gensym”)e(new)h(v)-5
b(ariables)31 b(to)g(a)n(v)n(oid)f(v)-5 b(ariable)523
3826 y(capture)35 b(in)g(op)r(erations)f(suc)n(h)g(as)h(substitution.)g
(More)g(sp)r(eci\014cally)-7 b(,)34 b(in)i(implemen)n(ting)523
3926 y(substitution)f(on)g(the)g(lam)n(b)r(da)f(calculus)h(one)f(m)n
(ust)h(b)r(e)g(able)g(to)f(construct)h(a)f(v)-5 b(ariable)523
4025 y Fp(x)37 b Fu(that)f(is)g(guaran)n(teed)e(not)i(to)g(o)r(ccur)f
(in)i(a)e(giv)n(en)h(expression)e Fp(e)p Fu(.)i(But)g(note)g(that)h
(the)523 4125 y(v)-5 b(ariable)36 b Fl(termva)n(r)q Fu(()p
Fp(e)p Fu())h(cannot)g(o)r(ccur)f(in)h Fp(e)p Fu(.)f(I)h(will)g(write)
f(()p Fp(e)2494 4137 y Fn(1)2570 4125 y Fp(e)2609 4137
y Fn(2)2646 4125 y Fu())h(as)f(an)g(abbreviation)523
4225 y(for)30 b Fl(apply)q Fu(()p Fp(e)909 4237 y Fn(1)946
4225 y Fp(;)42 b(e)1050 4237 y Fn(2)1087 4225 y Fu())30
b(and)h(write)f(()p Fp(f)9 b(e)1650 4237 y Fn(1)1687
4225 y Fp(;)41 b(e)1790 4237 y Fn(2)1827 4225 y Fp(;)h(:)14
b(:)g(:)f(;)42 b(e)2106 4237 y Fm(n)2151 4225 y Fu())31
b(as)e(an)h(abbreviation)f(for)h(the)h(\Cur-)523 4324
y(ried)k(application”)f(()p Fp(:)14 b(:)g(:)g Fu((()p
Fp(f)9 b(e)1471 4336 y Fn(1)1508 4324 y Fu())p Fp(e)1579
4336 y Fn(2)1616 4324 y Fu())14 b Fp(:)g(:)g(:)g(e)1812
4336 y Fm(n)1857 4324 y Fu().)35 b(I)g(will)g(also)f(sometimes)h
(write)g Fp(\025x:)h(e)f Fu(as)f(an)523 4424 y(abbreviation)26
b(for)h Fl(lamb)r(da)p Fu(()p Fp(x;)38 b(e)p Fu().)27
b(I)h(will)g(also)e(write)i Fp(\025x)2336 4436 y Fn(1)2374
4424 y Fp(x)2421 4436 y Fn(2)2459 4424 y Fp(:)23 b(e)k
Fu(for)g Fp(\025x)2793 4436 y Fn(1)2831 4424 y Fp(:)c(\025x)2972
4436 y Fn(2)3010 4424 y Fp(:)h(e)648 4526 y Fu(The)38
b(t)n(yp)r(e)h(inference)f(algorithm)f(describ)r(ed)h(here)g(runs)g(in)
h Fp(O)r Fu(()p Fp(n\013)p Fu(()p Fp(n)p Fu())27 b(+)f
Fp(dn)p Fu())38 b(time)523 4625 y(where)30 b Fp(d)g
Fu(is)g(the)g(sc)n(heme)g(depth)h(of)f(the)g(input)h(program.)d(T)-7
b(o)30 b(de\014ne)g(sc)n(heme)g(depth)g(w)n(e)523 4725
y(\014rst)h(sa)n(y)f(that)i(the)f(p)r(osition)g(of)g
Fp(e)1632 4737 y Fn(1)1700 4725 y Fu(in)h(the)g(let)f(expression)f
Fl(let)p Fu(()p Fp(x;)43 b(e)2746 4737 y Fn(1)2783 4725
y Fp(;)g(e)2888 4737 y Fn(2)2925 4725 y Fu())32 b(is)f(a)f(sc)n(heme)
523 4825 y(formation)35 b(p)r(osition.)h(As)g(describ)r(ed)g(b)r(elo)n
(w,)g(these)g(sc)n(heme)f(formation)g(p)r(ositions)h(are)523
4924 y(the)g(p)r(osition)g(in)g(the)g(program)d(where)j(p)r(olymorphic)
f(t)n(yp)r(e)g(inference)h(creates)f(a)g(t)n(yp)r(e)1943
5173 y(7)p eop
%%Page: 8 8
8 7 bop 523 448 a Fu(sc)n(heme.)39 b(The)h(sc)n(heme)f(depth)h(of)f(a)g
(p)r(osition)g Fp(\032)h Fu(in)f(the)h(program)e(is)h(the)h(n)n(um)n(b)
r(er)f(of)523 548 y(sc)n(heme)34 b(formation)g(p)r(ositions)g(ab)r(o)n
(v)n(e)f Fp(\032)p Fu(.)h(F)-7 b(or)34 b(example,)g(one)g(migh)n(t)g
(ha)n(v)n(e)g(a)g(sequence)523 648 y(of)d(mo)r(dule)g(de\014nitions)f
(where)g(eac)n(h)g(mo)r(dule)h(can)g(use)f(de\014nitions)h(from)f(the)h
(previous)523 747 y(mo)r(dule.)36 b(Conceptually)-7 b(,)36
b(the)h(sequence)e(of)h(mo)r(dule)h(de\014nitions)f(is)g(analogous)e
(to)i(the)523 847 y(follo)n(wing)27 b(pattern)g(of)h(let)f(bindings.)
1183 1010 y Fl(let)p Fu(()p Fp(m)1375 1022 y Fn(1)1412
1010 y Fp(;)37 b(M)1553 1022 y Fn(2)1590 1010 y Fp(;)g
Fl(let)p Fu(()p Fp(m)1842 1022 y Fn(2)1879 1010 y Fp(;)g(M)2020
1022 y Fn(2)2057 1010 y Fp(;)g Fl(let)o Fu(()p Fp(m)2308
1022 y Fn(3)2346 1010 y Fp(;)g(M)2487 1022 y Fn(3)2537
1010 y Fp(:)14 b(:)g(:)g Fu())))523 1174 y(Eac)n(h)26
b(mo)r(dule)h Fp(M)1102 1186 y Fm(i)1156 1174 y Fu(migh)n(t)f(consist)h
(of)f(a)h(sequence)f(of)h(pro)r(cedure)e(de\014nitions)i(analogous)523
1274 y(to)h(the)f(follo)n(wing)g(let)h(bindings.)1140
1437 y Fp(M)1221 1449 y Fm(i)1271 1437 y Fu(=)22 b Fl(let)p
Fu(()p Fp(f)1518 1449 y Fn(1)1555 1437 y Fp(;)37 b(F)1668
1449 y Fn(1)1706 1437 y Fp(;)g Fl(let)p Fu(()p Fp(f)1926
1449 y Fn(2)1963 1437 y Fp(;)g(F)2076 1449 y Fn(2)2113
1437 y Fp(;)g Fl(let)p Fu(()p Fp(f)2333 1449 y Fn(3)2370
1437 y Fp(;)g(F)2483 1449 y Fn(3)2521 1437 y Fp(;)g(:)14
b(:)g(:)g Fu())))523 1601 y(Eac)n(h)26 b(pro)r(cedure)h(migh)n(t)h
(b)r(e)g(de\014ned)g(with)g(a)f(sequence)g(of)g(let)h(expressions)e(as)
h(follo)n(ws)990 1765 y Fp(f)1031 1777 y Fm(i)1082 1765
y Fu(=)22 b Fp(\025x)1264 1777 y Fn(1)1302 1765 y Fp(;)14
b(:)g(:)g(:)g(x)1497 1777 y Fm(n)1566 1765 y Fl(let)o
Fu(()p Fp(y)1725 1777 y Fn(1)1763 1765 y Fp(;)37 b(e)1862
1777 y Fn(1)1898 1765 y Fp(;)g Fl(let)p Fu(()p Fp(y)2118
1777 y Fn(2)2155 1765 y Fp(;)g(e)2254 1777 y Fn(2)2291
1765 y Fp(;)g Fl(let)p Fu(()p Fp(y)2511 1777 y Fn(3)2548
1765 y Fp(;)g(e)2647 1777 y Fn(3)2684 1765 y Fp(;)g(:)14
b(:)g(:)p Fu())))523 1928 y(T)n(ypically)34 b(the)i(expressions)d
Fp(e)1527 1940 y Fm(i)1589 1928 y Fu(that)j(giv)n(e)e(the)h(v)-5
b(alues)35 b(of)g(let-b)r(ound)g(v)-5 b(ariables)34 b(inside)523
2028 y(individual)23 b(pro)r(cedure)f(de\014nitions)h(do)g(not)g
(themselv)n(es)g(con)n(tain)f(let)h(expressions.)f(So)g(an)523
2128 y(arbitrarily)k(long)i(sequence)g(of)g(dep)r(enden)n(t)h(mo)r
(dels,)g(eac)n(h)e(consisting)h(of)g(an)g(arbitrarily)523
2227 y(long)23 b(sequence)g(of)h(dep)r(enden)n(t)g(pro)r(cedure)f
(de\014nitions,)h(eac)n(h)f(consisting)g(of)h(an)f(arbitrar-)523
2327 y(ily)37 b(sequence)f(of)g(dep)r(enden)n(t)i(let)f(expressions,)e
(only)h(has)g(sc)n(heme)g(depth)h(3.)f(It)h(seems)523
2427 y(unlik)n(ely)27 b(that)h(the)g(sc)n(heme)f(depth)i(ev)n(er)d
(exceeds)h(5)g(in)h(h)n(uman)g(written)f(programs.)648
2526 y(Hindley-Milner)22 b(t)n(yp)r(e)h(inference)g(is)g(a)f(pro)r
(cess)g(b)n(y)g(whic)n(h)h(the)g(v)-5 b(arious)22 b(v)-5
b(ariables)21 b(and)523 2626 y(sub)r(expressions)26 b(of)h(a)g(giv)n
(en)f(input)i(expression)e(are)g(assigned)g(t)n(yp)r(es.)h(Here)g(w)n
(e)g(consider)523 2725 y(only)e(one)f(primitiv)n(e)h(data)g(t)n(yp)r(e)
g(|)h(the)f(t)n(yp)r(e)g(of)h(in)n(tegers.)e(Finite)h((nonrecursiv)n
(e))f(t)n(yp)r(es)523 2825 y(are)j(generated)f(b)n(y)h(the)h(follo)n
(wing)f(grammar.)1466 2989 y Fp(\034)33 b Fo(\021)22
b Fp(\013)47 b Fo(j)f Fl(int)g Fo(j)g Fl(a)n(rro)n(w)q
Fu(()p Fp(\034)2259 3001 y Fn(1)2296 2989 y Fp(;)37
b(\034)2392 3001 y Fn(2)2430 2989 y Fu())523 3152 y(In)24
b(this)h(grammar)d Fp(\013)j Fu(ranges)d(o)n(v)n(er)g(t)n(yp)r(e)j(v)-5
b(ariables.)23 b(The)h(t)n(yp)r(e)g Fl(a)n(rro)n(w)p
Fu(()p Fp(\034)2798 3164 y Fn(1)2836 3152 y Fp(;)37
b(\034)2932 3164 y Fn(2)2970 3152 y Fu())24 b(is)g(the)h(t)n(yp)r(e)
523 3252 y(assigned)32 b(to)i(pro)r(cedures)e(whic)n(h)h(tak)n(e)g(as)g
(an)g(argumen)n(t)f(a)h(v)-5 b(alue)34 b(in)g(the)f(t)n(yp)r(e)h
Fp(\034)3200 3264 y Fn(1)3271 3252 y Fu(and)523 3352
y(pro)r(duce)f(as)g(an)g(output)h(a)f(v)-5 b(alue)33
b(in)h(the)f(t)n(yp)r(e)h Fp(\034)2127 3364 y Fn(2)2164
3352 y Fu(.)g(I)f(will)h(often)g(write)f Fp(\034)2917
3364 y Fn(1)2987 3352 y Fo(!)g Fp(\034)3139 3364 y Fn(2)3210
3352 y Fu(as)f(an)523 3451 y(alternate)27 b(notation)h(for)f
Fl(a)n(rro)n(w)p Fu(()p Fp(\034)1593 3463 y Fn(1)1631
3451 y Fp(;)38 b(\034)1728 3463 y Fn(2)1765 3451 y Fu())28
b(and)g(write)g Fp(\034)2236 3463 y Fn(1)2292 3451 y
Fo(\002)18 b(\001)c(\001)g(\001)19 b(\002)f Fp(\034)2610
3463 y Fm(n)2679 3451 y Fo(!)24 b Fp(\033)31 b Fu(as)c(an)h(alternate)
523 3551 y(notation)33 b(for)h Fp(\034)1031 3563 y Fn(1)1102
3551 y Fo(!)f Fu(()p Fp(\034)1286 3563 y Fn(2)1358 3551
y Fo(!)g(\001)14 b(\001)g(\001)g Fp(\033)s Fu().)35
b(If)f Fp(\034)44 b Fu(is)34 b(the)g(t)n(yp)r(e)g Fp(\033)j
Fo(!)c Fp(\015)39 b Fu(then)34 b(I)g(will)g(sometimes)523
3651 y(write)27 b Fl(domain)o Fu(()p Fp(\034)9 b Fu())29
b(for)e(the)h(t)n(yp)r(e)g Fp(\033)j Fu(and)d Fl(range)o
Fu(()p Fp(\034)9 b Fu())29 b(for)e(the)h(t)n(yp)r(e)g
Fp(\015)5 b Fu(.)648 3750 y(The)24 b(basic)g(constrain)n(t)f(in)h(t)n
(yp)r(e)h(inference)f(is)g(that)h(in)g(eac)n(h)e(application)h(()p
Fp(e)3060 3762 y Fn(1)3097 3750 y Fp(;)37 b(e)3196 3762
y Fn(2)3233 3750 y Fu())25 b(the)523 3850 y(expression)c
Fp(e)957 3862 y Fn(1)1016 3850 y Fu(m)n(ust)h(b)r(e)g(assigned)f(a)h(t)
n(yp)r(e)g(of)g(the)h(form)f Fp(\034)32 b Fo(!)23 b Fp(\033)j
Fu(where)c Fp(e)2830 3862 y Fn(2)2889 3850 y Fu(is)g(assigned)f(the)523
3949 y(t)n(yp)r(e)h Fp(\034)32 b Fu(and)22 b(the)h(application)f(()p
Fp(e)1561 3961 y Fn(1)1598 3949 y Fp(;)37 b(e)1697 3961
y Fn(2)1734 3949 y Fu())22 b(is)g(assigned)f(the)i(t)n(yp)r(e)f
Fp(\033)s Fu(.)h(T)n(yp)r(e)f(inference)g(is)g(done)523
4049 y(b)n(y)k(uni\014cation)f(of)h(t)n(yp)r(e)g(expressions.)e(F)-7
b(or)25 b(eac)n(h)g(application)g(()p Fp(e)2607 4061
y Fn(1)2668 4049 y Fp(e)2707 4061 y Fn(2)2744 4049 y
Fu())h(w)n(e)f(in)n(tro)r(duce)h(the)523 4149 y(follo)n(wing)h
(constrain)n(ts.)853 4312 y Fl(t)n(yp)r(e)p Fp(:)p Fl(of)6
b Fu(()p Fp(e)1168 4324 y Fn(1)1205 4312 y Fp(;)37 b(\032)1308
4324 y Fn(1)1345 4312 y Fu())24 b(=)f Fl(domain)o Fu(()p
Fl(t)n(yp)r(e)p Fp(:)p Fl(of)6 b Fu(()p Fp(e)2089 4324
y Fn(1)2126 4312 y Fp(;)37 b(\032)2229 4324 y Fn(1)2266
4312 y Fu()))24 b Fo(!)f Fl(range)o Fu(()p Fl(t)n(yp)r(e)p
Fp(:)p Fl(of)6 b Fu(()p Fp(e)2996 4324 y Fn(1)3034 4312
y Fp(;)37 b(\032)3137 4324 y Fn(1)3174 4312 y Fu()))853
4437 y Fl(t)n(yp)r(e)p Fp(:)p Fl(of)6 b Fu(()p Fp(e)1168
4449 y Fn(2)1205 4437 y Fp(;)37 b(\032)1308 4449 y Fn(2)1345
4437 y Fu())24 b(=)f Fl(domain)o Fu(()p Fl(t)n(yp)r(e)p
Fp(:)p Fl(of)6 b Fu(()p Fp(e)2089 4449 y Fn(1)2126 4437
y Fp(;)37 b(\032)2229 4449 y Fn(1)2266 4437 y Fu()))690
4561 y Fl(t)n(yp)r(e)p Fp(:)p Fl(of)5 b Fu((()p Fp(e)1036
4573 y Fn(1)1097 4561 y Fp(e)1136 4573 y Fn(2)1173 4561
y Fu())p Fp(;)37 b(\032)1308 4573 y Fn(3)1345 4561 y
Fu())24 b(=)f Fl(range)o Fu(()p Fl(t)n(yp)r(e)p Fp(:)p
Fl(of)6 b Fu(()p Fp(e)2025 4573 y Fn(1)2062 4561 y Fp(;)37
b(\032)2165 4573 y Fn(1)2203 4561 y Fu()))523 4725
y(Expressions)g(of)j(the)f(form)g Fl(t)n(yp)r(e)p Fp(:)p
Fl(of)6 b Fu(()p Fp(e;)57 b(\032)p Fu())39 b(are)g(treated)g(as)f(t)n
(yp)r(e)i(v)-5 b(ariables.)38 b(In)h(p)r(oly-)523 4825
y(morphic)30 b(t)n(yp)r(e)i(inference)e(di\013eren)n(t)i(o)r
(ccurrences)d(of)i(the)g(same)g(expression)e(can)i(b)r(e)g(as-)523
4924 y(signed)c(di\013eren)n(t)h(t)n(yp)r(es)g(as)f(will)h(b)r(e)g
(explained)f(b)r(elo)n(w.)h(In)g(a)f(t)n(yp)r(e)h(v)-5
b(ariable)27 b(of)g(the)h(form)1943 5173 y(8)p eop
%%Page: 9 9
9 8 bop 523 448 a Fl(t)n(yp)r(e)p Fp(:)p Fl(of)6 b Fu(()p
Fp(e;)40 b(\032)p Fu())30 b(w)n(e)f(ha)n(v)n(e)f(that)i
Fp(\032)f Fu(names)g(a)g(p)r(osition)h(in)g(the)f(input)i(expression)d
(at)h(whic)n(h)523 548 y(the)20 b(expression)f Fp(e)g
Fu(o)r(ccurs.)g(Uni\014cation)h(is)g(used)g(to)g(construct)f(the)h
(most)g(general)f(solution)523 648 y(to)28 b(the)f(t)n(yp)r(e)h
(constrain)n(ts.)648 747 y(Figure)d(4)h(giv)n(es)g(the)h(top)f(lev)n
(el)g(structure)g(of)g(the)h(p)r(olymorphic)f(t)n(yp)r(e)h(inference)f
(pro-)523 847 y(cedure.)k(The)g(pro)r(cedure)f(de\014nitions)h(are)f
(abbreviations)f(for)h(inference)h(rules)g(giv)n(en)f(in)523
946 y(\014gure)f(5.)g(The)h(input)g(to)f(the)h(top)g(lev)n(el)f(pro)r
(cedures)f(in)i(\014gure)f(4)g(is)g(a)g(single)g(expression)523
1046 y(of)35 b(the)g(form)g Fl(do)p Fu(()p Fl(analyze)p
Fu(()p Fp(e;)49 b Fl(ro)r(ot)p Fu()))35 b(where)g
Fp(e)g Fu(is)g(a)f(closed)g(lam)n(b)r(da)h(expression)f(whose)523
1146 y(v)-5 b(ariables)24 b(ha)n(v)n(e)g(b)r(een)i(renamed)e(so)h(that)
g(eac)n(h)g(v)-5 b(ariable)24 b(is)h(b)r(ound)g(at)h(only)e(one)h(p)r
(osition)523 1245 y(in)34 b Fp(e)p Fu(.)g(The)h(basic)e(constrain)n(ts)
g(for)h(application)f(are)g(installed)i(b)n(y)f(the)g(\014rst)g(pro)r
(cedure)523 1345 y(in)h(\014gure)g(4.)g(The)g(input)h(expression)e
Fp(e)g Fu(is)i(t)n(ypable)e(b)n(y)h(p)r(olymorphic)g(recursiv)n(e)e(t)n
(yp)r(es)523 1445 y(if)e(and)g(only)f(if)h(the)g(rules)f(in)h
(\014gures)e(4,)i(6,)f(7,)g(8,)g(and)h(9)f(do)g(not)h(generate)e
Fl(clash)p Fu(.)h(These)523 1544 y(\014gures)e(giv)n(e)g(a)h(complete)g
(mac)n(hine-executable)f(implemen)n(tation)h(of)g(the)h(p)r(olymorphic)
523 1644 y(t)n(yp)r(e)25 b(inference)g(pro)r(cedure.)f(This)g(pro)r
(cedure)g(allo)n(ws)g(recursiv)n(e)f(t)n(yp)r(es)h(b)n(y)h(not)g(p)r
(erform-)523 1743 y(ing)d(an)n(y)g(o)r(ccurs-c)n(hec)n(k)e(in)j(the)f
(uni\014cation)h(pro)r(cedure.)e(Recursiv)n(e)g(t)n(yp)r(es)i(can)f(b)r
(e)g(view)n(ed)523 1843 y(as)28 b(in\014nite)h(t)n(yp)r(e)f
(expressions)e(with)j(a)f(\014nite)h(n)n(um)n(b)r(er)f(of)g(distinct)h
(sub)r(expressions.)e(F)-7 b(or)523 1943 y(example)25
b(there)g(is)f(a)h(recursiv)n(e)e(t)n(yp)r(e)j Fp(\034)34
b Fu(satisfying)25 b(the)g(follo)n(wing)f(\014xed)h(p)r(oin)n(t)h
(equation.)1752 2124 y Fp(\034)33 b Fu(=)22 b Fl(int)h
Fo(!)g Fp(\034)523 2306 y Fu(It)28 b(is)f(p)r(ossible)h(to)f(add)h(o)r
(ccurs-c)n(hec)n(k)d(rules)i(if)h(one)f(wishes)h(to)f(a)n(v)n(oid)f
(recursiv)n(e)g(t)n(yp)r(es.)648 2405 y(In)36 b(Hindley-Milner)h(t)n
(yp)r(e)g(inference,)f(expressions)f(can)i(ha)n(v)n(e)e(p)r(olymorphic)
h(t)n(yp)r(es)523 2505 y(|)e(di\013eren)n(t)f(o)r(ccurrences)f(of)i(a)f
(pro)r(cedure)f(can)h(ha)n(v)n(e)f(di\013eren)n(t)i(t)n(yp)r(es.)g(F)-7
b(or)32 b(example,)523 2605 y(consider)27 b(a)g(comp)r(osition)g(op)r
(erator)f Fl(comp)h Fu(satisfying)f(the)i(follo)n(wing)f(equation.)1489
2786 y((()p Fl(comp)22 b Fp(f)32 b(g)s Fu())23 b Fp(x)p
Fu())h(=)e(()p Fp(f)32 b Fu(()p Fp(g)26 b(x)p Fu()))523
2967 y(F)-7 b(or)39 b(an)n(y)g(t)n(yp)r(es)g Fp(\034)1120
2979 y Fn(1)1197 2967 y Fu(and)h Fp(\034)1407 2979 y
Fn(2)1484 2967 y Fu(the)g(comp)r(osition)f(op)r(erator)e(can)j(b)r(e)g
(assigned)e(the)i(t)n(yp)r(e)523 3067 y(()p Fp(\034)591
3079 y Fn(1)655 3067 y Fo(!)26 b Fp(\034)800 3079 y Fn(2)837
3067 y Fu())20 b Fo(\002)g Fu(()p Fp(\034)1042 3079
y Fn(1)1105 3067 y Fo(!)27 b Fp(\034)1251 3079 y Fn(2)1288
3067 y Fu())f Fo(!)g Fu(()p Fp(\034)1523 3079 y Fn(1)1587
3067 y Fo(!)g Fp(\034)1732 3079 y Fn(2)1770 3067 y Fu().)k(F)-7
b(or)28 b(the)i(p)r(olymorphic)f(comp)r(osition)g(op)r(erator)523
3167 y(the)19 b(t)n(yp)r(es)g Fp(\034)904 3179 y Fn(1)960
3167 y Fu(and)g Fp(\034)1149 3179 y Fn(2)1205 3167 y
Fu(can)f(b)r(e)h(di\013eren)n(t)g(for)f(di\013eren)n(t)h(uses)g(of)f
(the)h(op)r(erator.)e(F)-7 b(or)18 b(example,)523 3266
y(the)29 b(same)e(comp)r(osition)h(op)r(erator)e(can)i(b)r(e)h(used)f
(to)g(comp)r(ose)g(functions)g(from)g(in)n(tegers)523
3366 y(to)h(in)n(tegers)f(in)h(one)f(place)h(and)g(to)g(comp)r(ose)f
(functions)h(on)g(\015oating)f(p)r(oin)n(ts)h(in)g(another)523
3466 y(place)d((in)g(a)g(language)e(with)j(\015oating)e(p)r(oin)n(t)i
(n)n(um)n(b)r(ers).)f(The)g(t)n(yp)r(e)g(of)g(the)h(p)r(olymorphic)523
3565 y(comp)r(osition)g(op)r(erator)f(is)h(often)h(written)g(as)f
(follo)n(ws.)1080 3747 y Fl(comp)68 b Fu(:)h Fo(8)p Fp(\013;)37
b(\014)t(;)60 b Fu(()p Fp(\013)24 b Fo(!)f Fp(\014)t
Fu())c Fo(\002)f Fu(()p Fp(\013)24 b Fo(!)f Fp(\014)t
Fu())h Fo(!)f Fu(()p Fp(\013)h Fo(!)f Fp(\014)t Fu())648
3928 y(In)39 b(Hindley-Milner)h(t)n(yp)r(e)g(inference)f(p)r
(olymorphism)g(is)g(restricted)g(to)h(let-b)r(ound)523
4028 y(v)-5 b(ariables.)23 b(If)i(the)g(top)f(lev)n(el)g(expression)f
(do)r(es)g(not)i(in)n(v)n(olv)n(e)e(let)h(then)h(the)g(rules)e(in)i
(\014gures)523 4127 y(4)f(and)h(6)f(su\016ce)h(for)f(t)n(yp)r(e)h
(inference.)f(Figures)g(7,)g(8,)h(and)f(9)g(handle)h(p)r(olymorphism.)f
(The)523 4227 y(basic)e(idea)h(is)g(that)g(when)h(the)f(pro)r(cedure)f
(analyzes)g(a)g(let)i(expression)d(it)i(mak)n(es)f(the)i(t)n(yp)r(e)523
4327 y(of)j(the)g(let-b)r(ound)g(v)-5 b(ariable)26 b(p)r(olymorphic.)g
(This)h(is)g(done)g(b)n(y)f(con)n(v)n(erting)f(the)j(t)n(yp)r(e)f(to)f
(a)523 4426 y(t)n(yp)r(e)i(sc)n(heme)e(whic)n(h)i(is)f(then)g(instan)n
(tiated)g(with)h(fresh)f(t)n(yp)r(e)h(v)-5 b(ariables)26
b(for)g(eac)n(h)h(use)g(of)523 4526 y(the)h(let)g(b)r(ound)g(v)-5
b(ariable.)648 4625 y(It)31 b(is)f(instructiv)n(e)g(to)h(\014rst)f
(consider)g(the)h(case)f(of)h(expressions)e(without)i(let.)g(In)g(this)
523 4725 y(case)g(w)n(e)g(can)h(ignore)e(rule)i(A2)g(and)f(the)i(last)e
(pro)r(cedure)g(de\014nition)h(in)g(\014gure)f(4.)h(Since)523
4825 y(the)23 b(rules)g(for)f(p)r(olymorphic)g(t)n(yp)r(e)h(inference)g
(do)f(not)h(in)n(v)n(olv)n(e)f(v)-5 b(ariable-priorit)n(y)20
b(rules,)i(to)523 4924 y(analyze)27 b(the)i(run)g(time)g(of)f(the)h
(pro)r(cedure)f(it)h(su\016ces)f(to)g(coun)n(t)g(the)h(n)n(um)n(b)r(er)
g(of)f(visible)1943 5173 y(9)p eop
%%Page: 10 10
10 9 bop 523 781 a Fi(p)n(ro)r(cedure)22 b(analyze)o
Ft(()p Fi(apply)p Ft(()p Fr(e)1358 789 y Fd(1)1392
781 y Fr(;)35 b(e)1484 789 y Fd(2)1518 781 y Ft())p
Fr(;)f(\032)p Ft())587 872 y([)p Fi(analyze)p Ft(()p
Fr(e)909 880 y Fd(1)943 872 y Fr(;)h Fi(do)n(wn)p Ft(()p
Fr(\032;)f Ft(1));)608 963 y Fi(analyze)p Ft(()p Fr(e)909
971 y Fd(2)943 963 y Fr(;)h Fi(do)n(wn)p Ft(()p Fr(\032;)f
Ft(2));)608 1055 y Fi(assert)p Fr(:)p Fi(decla)n(re)p
Fr(:)p Fi(a)n(rro)n(w)s Ft(()p Fi(t)n(yp)r(e)p Fr(:)p
Fi(of)7 b Ft(()p Fr(e)1555 1063 y Fd(1)1589 1055 y Fr(;)34
b Fi(do)n(wn)p Ft(()p Fr(\032;)g Ft(1)));)608 1146
y Fi(assert)p Fr(:)p Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)r
Ft(()p Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6 b Ft(()p Fr(e)1396
1154 y Fd(2)1431 1146 y Fr(;)34 b Fi(do)n(wn)p Ft(()p
Fr(\032;)g Ft(2)))p Fr(;)1105 1237 y Fi(domain)o Ft(()p
Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6 b Ft(()p Fr(e)1660 1245
y Fd(1)1694 1237 y Fr(;)35 b Fi(do)n(wn)p Ft(()p Fr(\032;)f
Ft(1))));)608 1329 y Fi(assert)p Fr(:)p Fi(eq)p Fr(:)p
Fi(t)n(yp)r(es)r Ft(()p Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6
b Ft(()p Fi(apply)p Ft(()p Fr(e)1597 1337 y Fd(1)1631
1329 y Fr(;)35 b(e)1723 1337 y Fd(2)1757 1329 y Ft())p
Fr(;)g(\032)p Ft())p Fr(;)1105 1420 y Fi(range)p Ft(()p
Fi(t)n(yp)r(e)p Fr(:)p Fi(of)7 b Ft(()p Fr(e)1602 1428
y Fd(1)1636 1420 y Fr(;)34 b Fi(do)n(wn)p Ft(()p Fr(\032;)g
Ft(1))))])523 1594 y Fi(p)n(ro)r(cedure)22 b(analyze)o
Ft((0)p Fr(;)35 b(\032)p Ft())587 1686 y([)p Fi(assert)p
Fr(:)p Fi(int)p Fr(:)p Fi(t)n(yp)r(e)q Ft(()p Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)6 b Ft((0)p Fr(;)35 b(\032)p Ft())])823
1860 y Fi(do)p Ft(()p Fi(analyze)o Ft(()p Fi(termva)n(r)r
Ft(()p Fi(id)o Ft())p Fr(;)f(\032)p Ft()))823 1951
y Fi(monomo)n(rphic)p Ft(()p Fi(termva)n(r)q Ft(()p
Fi(id)o Ft()))523 2043 y Fh((A1,)23 b(4))p 823 2026
314 4 v 823 2134 a Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)p Ft(()p
Fi(t)n(yp)r(e)p Fr(:)p Fi(of)7 b Ft(()p Fi(termva)n(r)q
Ft(()p Fi(id)o Ft())p Fr(;)34 b(\032)p Ft())p Fr(;)g
Fi(t)n(yp)r(e)p Fr(:)p Fi(of)7 b Ft(()p Fi(termva)n(r)q
Ft(()p Fi(id)o Ft())))823 2225 y Fi(done)p Ft(()p
Fi(analyze)o Ft(()p Fi(termva)n(r)r Ft(()p Fi(id)o
Ft())p Fr(;)34 b(\032)p Ft()))823 2491 y Fi(do)p Ft(()p
Fi(analyze)o Ft(()p Fi(termva)n(r)r Ft(()p Fi(id)o
Ft())p Fr(;)g(\032)p Ft()))823 2582 y Fi(p)r(olymo)n(rphic)o
Ft(()p Fi(termva)n(r)q Ft(()p Fi(id)o Ft())p Fr(;)h(s)p
Ft())523 2674 y Fh((A2,)23 b(4))p 823 2657 V 823 2765
a Fi(mak)n(e)p Fr(:)p Fi(cop)n(y)q Ft(()p Fr(s;)34 b(\032)p
Ft())823 2856 y Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)p Ft(()p
Fi(t)n(yp)r(e)p Fr(:)p Fi(of)7 b Ft(()p Fi(termva)n(r)q
Ft(()p Fi(id)o Ft())p Fr(;)34 b(\032)p Ft())p Fr(;)g(;)h
Fi(cop)n(y)q Ft(()p Fr(s;)f(\032)p Ft()))823 2948
y Fi(done)p Ft(()p Fi(analyze)o Ft(()p Fi(termva)n(r)r
Ft(()p Fi(id)o Ft())p Fr(;)g(\032)p Ft()))523 3213
y Fi(p)n(ro)r(cedure)22 b(analyze)o Ft(()p Fi(lamb)r(da)o
Ft(()p Fr(x;)34 b(e)p Ft())p Fr(;)g(\032)p Ft())587
3305 y([)p Fi(assert)p Fr(:)p Fi(monomo)n(rphic)q Ft(()p
Fr(x)p Ft();)608 3396 y Fi(analyze)p Ft(()p Fr(e;)g
Fi(do)n(wn)p Ft(()p Fr(\032;)g Ft(2));)608 3487 y
Fi(assert)p Fr(:)p Fi(decla)n(re)p Fr(:)p Fi(a)n(rro)n(w)s
Ft(()p Fi(t)n(yp)r(e)p Fr(:)p Fi(of)7 b Ft(()p Fi(lamb)r(da)n
Ft(()p Fr(x;)34 b(e)p Ft())p Fr(;)g(\032)p Ft());)608
3579 y Fi(assert)p Fr(:)p Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)r
Ft(()p Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6 b Ft(()p Fr(x)p
Ft())p Fr(;)34 b Fi(domain)o Ft(()p Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)6 b Ft(()p Fi(lamb)r(da)o Ft(()p Fr(x;)34
b(e)p Ft())p Fr(;)g(\032)p Ft()));)608 3670 y Fi(assert)p
Fr(:)p Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)r Ft(()p Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)6 b Ft(()p Fr(e;)34 b Fi(do)n(wn)p Ft(()p
Fr(\032;)g Ft(2)))p Fr(;)h Fi(range)p Ft(()p Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)7 b Ft(()p Fi(lamb)r(da)n Ft(()p Fr(x;)34
b(e)p Ft())p Fr(;)g(\032)p Ft())))25 b(])523 3844
y Fi(p)n(ro)r(cedure)d(analyze)o Ft(()p Fi(let)o Ft(()p
Fr(x;)34 b(e)1366 3852 y Fd(1)1401 3844 y Fr(;)g(e)1492
3852 y Fd(2)1526 3844 y Ft())p Fr(;)h(\032)p Ft())587
3936 y([)p Fi(analyze)p Ft(()p Fr(e)909 3944 y Fd(1)943
3936 y Fr(;)g Fi(do)n(wn)p Ft(()p Fr(\032;)f Ft(2));)608
4027 y Fi(assert)p Fr(:)p Fi(mak)n(e)p Fr(:)p Fi(scheme)r
Ft(()p Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6 b Ft(()p Fr(e)1556
4035 y Fd(1)1590 4027 y Fr(;)35 b Fi(do)n(wn)p Ft(()p
Fr(\032;)f Ft(2)))p Fr(;)g(\032)p Ft();)608 4118 y
Fi(assert)p Fr(:)p Fi(p)r(olymo)n(rphic)q Ft(()p Fr(x;)g
Fi(sch)p Ft(()p Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6 b Ft(()p
Fr(e)1756 4126 y Fd(1)1790 4118 y Fr(;)35 b Fi(do)n(wn)p
Ft(()p Fr(\032;)f Ft(2)))p Fr(;)g(\032)p Ft());)608
4210 y Fi(analyze)p Ft(()p Fr(e)909 4218 y Fd(2)943
4210 y Fr(;)h Fi(do)n(wn)p Ft(()p Fr(\032;)f Ft(3));)608
4301 y Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)q Ft(()p Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)6 b Ft(()p Fi(let)o Ft(()p Fr(x;)34 b(e)1400
4309 y Fd(1)1434 4301 y Fr(;)h(e)1526 4309 y Fd(2)1560
4301 y Ft())p Fr(;)f(\032)p Ft())p Fr(;)g Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)7 b Ft(()p Fr(e)2062 4309 y Fd(2)2096 4301
y Fr(;)34 b Fi(do)n(wn)q Ft(()p Fr(\032;)f Ft(3))))26
b(])905 4558 y Fs(Fig.)15 b(4.)25 b Ft(Hindley-Milner)g(T)n(yp)r(e)h
(Inference:)g(F)-6 b(undamen)n(tal)24 b(Structure)1922
5173 y Fu(10)p eop
%%Page: 11 11
11 10 bop 1150 571 a Fi(do)p Ft(()p Fr(f)8 b Ft(()p
Fr(t)1361 579 y Fd(1)1396 571 y Fr(;)34 b(:)13 b(:)g(:)h(;)34
b(t)1637 579 y Fc(n)1679 571 y Ft()))872 663 y Fh((P1,4))p
1150 646 314 4 v 1150 754 a Fi(do)p Ft(([)p Fr(a)1320
762 y Fd(1)1355 754 y Ft(;)13 b Fr(:)g(:)g(:)g Ft(;)g
Fr(a)1566 762 y Fc(n)1608 754 y Ft(]))2340 571 y Fi(do)p
Ft(()p Fr(f)8 b Ft(()p Fr(t)2551 579 y Fd(1)2586 571
y Fr(;)34 b(:)14 b(:)f(:)g(;)34 b(t)2827 579 y Fc(n)2869
571 y Ft()))2340 663 y Fi(done)p Ft(([)p Fr(a)2584
671 y Fd(1)2619 663 y Ft(;)13 b Fr(:)g(:)g(:)g Ft(;)g
Fr(a)2830 671 y Fc(n)2873 663 y Ft(]))2062 754 y Fh((P2,4))p
2340 737 V 2340 845 a Fi(done)p Ft(()p Fr(f)8 b Ft(()p
Fr(t)2625 853 y Fd(1)2660 845 y Fr(;)34 b(:)13 b(:)g(:)h(;)34
b(t)2901 853 y Fc(n)2943 845 y Ft()))1107 1074 y Fi(do)p
Ft(()p Fi(sequence)p Ft(()p Fr(a)p Ft(1)p Fr(;)g(a)1705
1082 y Fd(2)1740 1074 y Ft()))829 1165 y Fh((P3,4))p
1107 1148 V 1107 1256 a Fi(do)p Ft(()p Fi(a)1252 1264
y Fb(1)1282 1256 y Ft())2358 1074 y Fi(do)p Ft(()p
Fi(sequence)p Ft(()p Fr(a)2822 1082 y Fd(1)2856 1074
y Fr(;)g(a)2952 1082 y Fd(2)2986 1074 y Ft()))2358
1165 y Fi(done)p Ft(()p Fr(a)2581 1173 y Fd(1)2615 1165
y Ft())2080 1256 y Fh((P4,4))p 2358 1239 V 2358 1348
a Fi(do)p Ft(()p Fr(a)2507 1356 y Fd(2)2541 1348 y Ft())1012
1576 y Fi(do)p Ft(()p Fi(sequence)p Ft(()p Fr(a)1476
1584 y Fd(1)1510 1576 y Fr(;)h(a)1607 1584 y Fd(2)1641
1576 y Ft()))1012 1667 y Fi(done)p Ft(()p Fr(a)1235
1675 y Fd(1)1269 1667 y Ft())1012 1759 y Fi(done)p Ft(()p
Fr(a)1235 1767 y Fd(2)1269 1759 y Ft())734 1850 y Fh((P5,4))p
1012 1833 V 1012 1941 a Fi(done)p Ft(()p Fi(sequence)p
Ft(()p Fr(a)1550 1949 y Fd(1)1584 1941 y Fr(;)f(a)1680
1949 y Fd(2)1715 1941 y Ft()))2238 1576 y Fi(do)p Ft(()p
Fi(assert)p Fr(:)p Fi(P)q Ft(()p Fr(x)2674 1584 y Fd(1)2708
1576 y Fr(;)h(:)13 b(:)g(:)g(;)34 b(x)2965 1584 y Fc(n)3007
1576 y Ft()))1960 1667 y Fh((P6)40 b(1))p 2238 1650
V 2238 1759 a Fr(P)11 b Ft(()p Fr(x)2372 1767 y Fd(1)2406
1759 y Fr(;)34 b(:)13 b(:)g(:)g(;)35 b(x)2663 1767 y
Fc(n)2705 1759 y Ft())2238 1850 y Fi(done)p Ft(()p
Fi(assert)p Fr(:)p Fi(P)q Ft(()p Fr(x)2748 1858 y Fd(1)2782
1850 y Fr(;)f(:)14 b(:)f(:)g(;)34 b(x)3039 1858 y Fc(n)3081
1850 y Ft()))523 2194 y Fs(Fig.)15 b(5.)20 b Ft(Implemen)n(ting)e
(Pro)r(cedures.)k(De\014ning)e Fr(f)8 b Ft(()p Fr(t)2074
2202 y Fd(1)2108 2194 y Fr(;)35 b(:)13 b(:)g(:)g(;)35
b(t)2350 2202 y Fc(n)2392 2194 y Ft())20 b(to)h(b)r(e)f([)p
Fr(a)2692 2202 y Fd(1)2727 2194 y Ft(;)13 b Fr(:)g(:)g(:)g
Ft(;)h Fr(a)2939 2202 y Fc(n)2981 2194 y Ft(])20 b(abbreviates)523
2285 y(the)35 b(rules)g(P1)h(and)e(P2)i(ab)r(o)n(v)n(e.)f(The)h
(notation)f([)p Fr(a)2062 2293 y Fd(1)2097 2285 y Ft(;)13
b Fr(a)2172 2293 y Fd(2)2206 2285 y Ft(])35 b(abbreviates)h
Fi(sequence)p Ft(()p Fr(a)3036 2293 y Fd(1)3070 2285
y Fr(;)50 b(a)3182 2293 y Fd(2)3216 2285 y Ft())35 b(and)523
2377 y([)p Fr(a)585 2385 y Fd(1)620 2377 y Ft(;)13 b
Fr(a)695 2385 y Fd(2)729 2377 y Ft(;)g Fr(:)g(:)g(:)h
Ft(;)f Fr(a)941 2385 y Fc(n)983 2377 y Ft(])22 b(abbreviates)g([)p
Fr(a)1492 2385 y Fd(1)1526 2377 y Ft(;)13 b([)p Fr(a)1622
2385 y Fd(2)1657 2377 y Ft(;)g Fr(:)g(:)g(:)g Ft(;)h
Fr(a)1869 2385 y Fc(n)1911 2377 y Ft(]].)22 b(Rule)f(P6)h(is)g(assumed)
f(to)h(b)r(e)f(presen)n(t)g(for)i(ev)n(ery)523 2468 y(action)j
(constructor)h(of)f(the)f(form)h Fi(assert)p Fr(:)p Fi(P)q
Ft(.)1015 2800 y Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)q Ft(()p
Fr(\034)t(;)34 b(\033)s Ft())737 2891 y Fh((U1,1))p
1015 2874 V 1015 2982 a Fi(t)n(yp)r(e)p Fr(:)p Fi(va)n(r)q
Ft(()p Fr(\034)9 b Ft())1015 3074 y Fi(t)n(yp)r(e)p
Fr(:)p Fi(va)n(r)q Ft(()p Fr(\033)s Ft())1015 3165
y Fi(union)o Ft(()p Fr(\034)t(;)35 b(\033)s Ft())1983
2800 y Fi(decla)n(re)p Fr(:)p Fi(a)n(rro)n(w)r Ft(()p
Fr(\034)9 b Ft())1666 2891 y Fh((U2,)40 b(1))p 1983
2874 V 1983 2982 a Fi(t)n(yp)r(e)p Fr(:)p Fi(va)n(r)r
Ft(()p Fr(\034)9 b Ft())1983 3074 y Fi(t)n(yp)r(e)p
Fr(:)p Fi(va)n(r)r Ft(()p Fi(domain)n Ft(()p Fr(\034)g
Ft()))1983 3165 y Fi(t)n(yp)r(e)p Fr(:)p Fi(va)n(r)r
Ft(()p Fi(range)p Ft(()p Fr(\034)g Ft()))1983 3256
y Fi(decl)p Fr(:)p Fi(struct)o Ft(()p Fr(\034)t(;)35
b Fi(domain)o Ft(()p Fr(\034)9 b Ft())p Fr(;)33 b Fi(range)q
Ft(()p Fr(\034)9 b Ft()))840 3452 y Fi(int)p Fr(:)p
Fi(t)n(yp)r(e)o Ft(()p Fr(\034)g Ft())523 3544 y Fh((U3,)40
b(1))p 840 3527 V 840 3635 a Fi(t)n(yp)r(e)p Fr(:)p
Fi(va)n(r)r Ft(()p Fr(\034)9 b Ft())1813 3452 y Fi(t)n(yp)r(e)p
Fr(:)p Fi(va)n(r)q Ft(()p Fr(\013)p Ft())1535 3544
y Fh((U4,1))p 1813 3527 V 1813 3635 a Fi(no)p Fr(:)p
Fi(struct)p Ft(()p Fr(\013)p Ft())2821 3452 y Fi(struct)o
Ft(()p Fr(\013;)35 b(\014)t(;)g(\015)t Ft())2542 3544
y Fh((U5,1))p 2821 3527 V 2821 3635 a Fi(del)o Ft(()p
Fi(no)p Fr(:)p Fi(struct)p Ft(()p Fr(\013)p Ft()))1138
3831 y Fi(decl)p Fr(:)p Fi(struct)p Ft(()p Fr(\013;)f(\014)t(;)h(\015)
t Ft())1138 3922 y Fi(no)p Fr(:)p Fi(struct)q Ft(()p
Fr(\013)p Ft())860 4014 y Fh((U6,2))p 1138 3997 V
1138 4105 a Fi(struct)p Ft(()p Fr(\013;)g(\014)t(;)f(\015)t
Ft())2371 3831 y Fi(decl)p Fr(:)p Fi(struct)p Ft(()p
Fr(\013;)g(\014)t(;)h(\015)t Ft())2371 3922 y Fi(struct)p
Ft(()p Fr(\013;)g(\014)2738 3891 y Fg(0)2760 3922 y
Fr(;)g(\015)2860 3891 y Fg(0)2882 3922 y Ft())2093 4014
y Fh((U7,1))p 2371 3997 V 2371 4105 a Fi(union)o Ft(()p
Fr(\014)t(;)g(\014)2727 4073 y Fg(0)2749 4105 y Ft())2371
4196 y Fi(union)o Ft(()p Fr(\015)t(;)f(\015)2720 4165
y Fg(0)2743 4196 y Ft())801 4393 y Fi(struct)p Ft(()p
Fr(\013;)h(\014)t(;)f(\015)t Ft())801 4484 y Fi(\014nd)p
Fr(:)p Fi(a)n(rc)p Ft(()p Fr(\013;)h(\013)1222 4452
y Fg(0)1244 4484 y Ft())523 4575 y Fh((U8,1))p 801
4558 V 801 4667 a Fi(decl)p Fr(:)p Fi(struct)p Ft(()p
Fr(\013)1213 4635 y Fg(0)1235 4667 y Fr(;)g(\014)t(;)f(\015)t
Ft())1930 4393 y Fi(int)p Fr(:)p Fi(t)n(yp)r(e)o Ft(()p
Fr(\034)9 b Ft())1930 4484 y Fi(\014nd)p Fr(:)p Fi(a)n(rc)p
Ft(()p Fr(\034)t(;)35 b(\033)s Ft())1652 4575 y Fh((U9,1))p
1930 4558 V 1930 4667 a Fi(int)p Fr(:)p Fi(t)n(yp)r(e)o
Ft(()p Fr(\033)s Ft())2870 4393 y Fi(struct)p Ft(()p
Fr(\013;)f(\014)t(;)h(\015)t Ft())2870 4484 y Fi(int)p
Fr(:)p Fi(t)n(yp)r(e)o Ft(()p Fr(\013)p Ft())2552 4575
y Fh((U10,1))p 2870 4558 V 2870 4667 a Fi(clash)1551
4851 y Fs(Fig.)15 b(6.)25 b Ft(T)n(yp)r(e)h(Uni\014cation)1922
5173 y Fu(11)p eop
%%Page: 12 12
12 11 bop 523 448 a Fu(pre\014x)37 b(\014rings.)f(The)h(n)n(um)n(b)r
(er)g(of)g(pre\014x)f(\014rings)g(of)h(the)h(rules)e(implicit)i(in)f
(\014gure)g(4)f(is)523 548 y(prop)r(ortional)21 b(to)h(the)h(n)n(um)n
(b)r(er)g(of)f(expressions)f(analyzed,)h(i.e.,)h(the)g(n)n(um)n(b)r(er)
f(of)g(p)r(ositions)523 648 y(o)r(ccupied)i(in)h(the)f(input)h
(expression.)e(The)h(n)n(um)n(b)r(er)g(of)g(o)r(ccupied)g(p)r(ositions)
g(corresp)r(onds)523 747 y(to)31 b(the)g(written)g(length)h(of)e(the)i
(expression)d(and)i(I)g(will)g(simple)h(call)e(this)h(n)n(um)n(b)r(er)g
(\the)523 847 y(size)e(of)h(the)f(input”)h(and)f(denote)h(it)g(b)n(y)f
Fp(n)p Fu(.)g(T)-7 b(o)29 b(\014nish)h(the)g(analysis)e(it)i(su\016ces)
f(to)g(coun)n(t)523 946 y(the)38 b(n)n(um)n(b)r(er)g(of)f(visible)h
(pre\014x)f(\014rings)g(in)h(the)g(union-\014nd)g(rules)f(in)h
(\014gure)f(2)g(and)h(of)523 1046 y(the)e(uni\014cation)f(rules)f(in)i
(\014gure)e(6.)h(The)g(input)h(to)g(the)f(uni\014cation)g(mo)r(dule)h
(consists)523 1146 y(of)g(assertions)f(of)h(the)h(form)f
Fl(decla)n(re)p Fp(:)p Fl(a)n(rro)n(w)p Fu(()p Fp(\033)s
Fu(),)i Fl(int)p Fp(:)p Fl(t)n(yp)r(e)o Fu(()p Fp(\033)s
Fu())g(and)e Fl(eq)p Fp(:)p Fl(t)n(yp)r(es)p Fu(()p
Fp(\033)n(;)52 b(\034)9 b Fu().)38 b(The)523 1245 y(output)d(is)g(the)
g(assertion)e Fl(clash)h Fu(if)h(the)g(constrain)n(ts)e(are)h
(unsatis\014able)g(and)g(otherwise)523 1345 y(the)40
b(output)g(consists)f(of)g(the)h(union-\014nd)f(equiv)-5
b(alence)39 b(relation)g(on)g(the)h(set)f(of)h(t)n(yp)r(e)523
1445 y(expressions)30 b(plus)h(assertions)e(of)j(the)f(form)g
Fl(struct)p Fu(()p Fp(\013;)44 b(\014)t(;)f(\015)5 b
Fu())32 b(whic)n(h)f(implies)g(that)h Fp(\013)d Fu(=)523
1544 y Fp(\014)39 b Fo(!)c Fp(\015)5 b Fu(.)35 b(The)g(rules)f(main)n
(tain)g(the)h(in)n(v)-5 b(arian)n(t)34 b(that)h(for)f(an)n(y)g
Fp(\013)h Fu(there)g(is)f(at)h(most)f(one)523 1644 y(assertion)k(of)i
(the)g(form)f Fl(struct)p Fu(()p Fp(\013;)58 b(\014)t(;)g(\015)5
b Fu().)39 b(Note)h(that,)g(with)g(the)g(exception)g(of)f(rule)523
1743 y(U2,)30 b(the)h(uni\014cation)f(rules)f(do)h(not)g(in)n(tro)r
(duce)g(new)h(expressions.)d(In)i(fact)h(the)f(n)n(um)n(b)r(er)523
1843 y(of)41 b(expressions)e(generated)h(b)n(y)g(the)i(rules)e(is)h(no)
g(more)f(than)h(linear)f(in)h(the)g(n)n(um)n(b)r(er)523
1943 y(of)g(assertions)f(input)i(to)f(the)g(uni\014cation)g(pro)r
(cess.)g(This)g(implies)g(that)h(the)f(n)n(um)n(b)r(er)523
2042 y(of)35 b((uncompressed))h(underlying)e(\014nd)i(arcs)f(in)g
(the)h(union-\014nd)g(assertions)e(is)h(also)f(no)523
2142 y(more)d(than)g(linear)g(in)h(the)g(n)n(um)n(b)r(er)f(of)g(inputs)
h(to)g(uni\014cation.)f(The)h(n)n(um)n(b)r(er)f(of)g(pre\014x)523
2242 y(\014rings)37 b(of)g(the)h(uni\014cation)f(rules)g(can)g(b)r(e)h
(seen)f(to)h(b)r(e)f(prop)r(ortional)f(to)h(the)h(n)n(um)n(b)r(er)523
2341 y(of)f(\014nd)h(arcs)d(and)i(hence)g(the)h(n)n(um)n(b)r(er)e(of)h
(pre\014x)g(\014rings)f(of)h(the)h(uni\014cation)f(rules)f(is)523
2441 y(prop)r(ortional)23 b(to)i(the)h(n)n(um)n(b)r(er)f(of)g(input)h
(assertions.)d(In)i(let-free)g(programs)e(the)i(n)n(um)n(b)r(er)523
2540 y(of)32 b(inputs)h(to)f(uni\014cation)h(is)f(prop)r(ortional)e(to)
j(the)f(n)n(um)n(b)r(er)g(of)h(p)r(ositions)e(o)r(ccupied)i(in)523
2640 y(the)g(input)h(expression.)d(Because)h(the)h(uni\014cation)g
(rules)f(use)h(only)f(the)h(uncompressed)523 2740 y(\014nd)c(arcs)e(a)h
(lazy)g(path)g(compression)f(uni\014cation)h(algorithm)g(can)g(b)r(e)g
(used.)h(This)f(giv)n(es)523 2839 y Fp(n\013)p Fu(()p
Fp(n)p Fu())23 b(t)n(yp)r(e)f(inference)g(pro)r(cedure)f(for)g
(let-free)h(programs.)e(The)i(lazy)f(path)i(compression)523
2939 y(algorithm)k(can)h(also)g(b)r(e)g(used)h(with)g(the)f(full)h(p)r
(olymorphic)f(t)n(yp)r(e)h(inference)f(pro)r(cedure.)523
3039 y(While)23 b(linear)e(time)h(uni\014cation)g(is)g(appropriate)e
(for)i(let-free)f(programs,)f(in)i(the)h(presence)523
3138 y(of)38 b(p)r(olymorphism)f(one)g(m)n(ust)h(alternate)f
(uni\014cation)g(pro)r(cessing)f(with)j(t)n(yp)r(e)e(sc)n(heme)523
3238 y(construction)27 b(and)g(this)h(alternation)f(prev)n(en)n(ts)f
(the)i(use)g(of)f(linear)g(time)h(uni\014cation.)648
3337 y(T)-7 b(o)27 b(understand)h(the)h(subtleties)f(of)g(the)h(p)r
(olymorphic)e(case)g(consider)h(the)g(follo)n(wing)523
3437 y(expression.)1648 3537 y Fp(\025y)s(:)p Fl(let)p
Fu(()p Fp(f)t(;)37 b(\025x:y)s(;)g(e)p Fu())523 3675
y(In)30 b(this)f(case)g(m)n(ultiple)g(o)r(ccurrences)f(of)h
Fp(f)38 b Fu(in)30 b Fp(e)f Fu(can)g(ha)n(v)n(e)f(di\013eren)n(t)h
(domain)g(t)n(yp)r(es)g(but)523 3775 y(m)n(ust)40 b(all)h(ha)n(v)n(e)e
(the)h(same)g(range)f(t)n(yp)r(e.)i(The)f(range)f(t)n(yp)r(e)i(of)f
Fp(f)49 b Fu(is)40 b(the)h(t)n(yp)r(e)f(of)h(the)523
3874 y(lam)n(b)r(da-b)r(ound)24 b(v)-5 b(ariable)24 b
Fp(y)j Fu(whic)n(h)d(can)g(b)r(e)h(determined)g(from)f(the)h(con)n
(texts)f(in)n(to)g(whic)n(h)523 3974 y(the)f(o)n(v)n(erall)e(lam)n(b)r
(da)h(expression)f(is)i(em)n(b)r(edded.)g(In)g(the)g(Hindley-Milner)f
(t)n(yp)r(e)h(inference)523 4073 y(algorithm)j(w)n(e)i(assign)e
Fp(f)36 b Fu(and)28 b Fp(y)i Fu(the)e(follo)n(wing)f(t)n(yp)r(e.)1714
4237 y Fp(y)f Fu(:)d Fp(\014)1708 4362 y(f)32 b Fu(:)23
b Fo(8)p Fp(\013;)36 b(\013)24 b Fo(!)f Fp(\014)523 4526
y Fu(Note)j(that)g(in)f(this)h(t)n(yp)r(e)g Fp(\013)g
Fu(is)g(a)f(b)r(ound)h(t)n(yp)r(e)g(v)-5 b(ariable)24
b(while)i Fp(\014)k Fu(is)c(a)f(free)g(t)n(yp)r(e)h(v)-5
b(ariable.)523 4625 y(In)21 b(general,)e(when)i(the)g(pro)r(cedure)f
(constructs)g(a)g(t)n(yp)r(e)h(sc)n(heme)f(it)h(m)n(ust)g(distinguish)g
(t)n(yp)r(e)523 4725 y(v)-5 b(ariables)33 b(whic)n(h)h(can)g(b)r(e)h
(univ)n(ersally)d(quan)n(ti\014ed)i((the)h(b)r(ound)g(t)n(yp)r(e)f(v)
-5 b(ariables))33 b(from)523 4825 y(the)c(t)n(yp)r(e)g(v)-5
b(ariables)28 b(whic)n(h)g(m)n(ust)h(b)r(e)g(left)h(free.)e(Eac)n(h)g
(t)n(yp)r(e)h(v)-5 b(ariable)28 b(has)g(a)g(p)r(osition)h(in)523
4924 y(the)e(program)e(where)h(it)i(is)f(created.)f(In)h(a)f(let)h
(expression)f Fl(let)p Fu(()p Fp(x;)37 b(e)2670 4936
y Fn(1)2707 4924 y Fp(;)g(e)2806 4936 y Fn(2)2843 4924
y Fu())27 b(t)n(yp)r(e)g(v)-5 b(ariables)1922 5173 y(12)p
eop
%%Page: 13 13
13 12 bop 840 544 a Fi(t)n(yp)r(e)p Fr(:)p Fi(va)n(r)r
Ft(()p Fr(\013)p Ft())523 635 y Fh((MS1,1))p 840
618 314 4 v 840 726 a Fi(unb)r(ound)o Ft(()p Fr(\013)p
Ft())1751 544 y Fi(a)n(rro)n(w)q Fr(:)p Fi(t)n(yp)r(e)r
Ft(()p Fr(\013)p Ft())1434 635 y Fh((MS2,1))p 1751
618 V 1751 726 a Ft(del)q(()p Fi(unb)r(ound)n Ft(()p
Fr(\013)p Ft()))2820 544 y Fi(int)p Fr(:)p Fi(t)n(yp)r(e)o
Ft(()p Fr(\013)p Ft())2503 635 y Fh((MS3,1))p 2820
618 V 2820 726 a Ft(del()p Fi(unb)r(ound)o Ft(()p Fr(\013)p
Ft()))896 1083 y Fi(mak)n(e)p Fr(:)p Fi(scheme)p Ft(()p
Fr(\034)t(;)35 b(\032)p Ft())896 1175 y Fi(\014nd)p
Ft(()p Fr(\034)t(;)f(\034)1183 1143 y Fg(0)1205 1175
y Ft())896 1266 y Fi(struct)p Ft(()p Fr(\034)1154 1234
y Fg(0)1176 1266 y Fr(;)g(\033)n(;)h(\015)t Ft())579
1357 y Fh((MS4,1))p 896 1340 V 896 1449 a Fi(sch)p
Fr(:)p Fi(struct)q Ft(()p Fi(sch)p Ft(()p Fr(\034)t(;)f(\032)p
Ft())p Fr(;)g Fi(sch)p Ft(()p Fr(\033)n(;)h(\032)p
Ft())p Fr(;)f Fi(sch)p Ft(()p Fr(\015)t(;)13 b(\032)p
Ft()))896 1540 y Fi(mak)n(e)p Fr(:)p Fi(scheme)p Ft(()p
Fr(\033)n(;)35 b(\032)p Ft())896 1631 y Fi(mak)n(e)p
Fr(:)p Fi(scheme)p Ft(()p Fr(\015)t(;)g(\032)p Ft())2601
1083 y Fi(mak)n(e)p Fr(:)p Fi(scheme)p Ft(()p Fr(\034)t(;)g(\032)p
Ft())2601 1175 y Fi(\014nd)o Ft(()p Fr(\034)t(;)g(\034)2888
1143 y Fg(0)2909 1175 y Ft())2601 1266 y Fi(int)p Fr(:)p
Fi(t)n(yp)r(e)o Ft(()p Fr(\034)2918 1234 y Fg(0)2939
1266 y Ft())2284 1357 y Fh((MS5,1))p 2601 1340 V 2601
1449 a Fi(int)p Fr(:)p Fi(scheme)o Ft(()p Fi(sch)p Ft(()p
Fr(\034)t(;)g(\032)p Ft()))992 1988 y Fi(mak)n(e)p
Fr(:)p Fi(scheme)p Ft(()p Fr(\034)t(;)g(\032)p Ft())992
2080 y Fi(\014nd)p Ft(()p Fr(\034)t(;)f(\034)1279 2048
y Fg(0)1301 2080 y Ft())992 2171 y Fi(unb)r(ound)o Ft(()p
Fr(\034)1344 2139 y Fg(0)1365 2171 y Ft())992 2262 y
Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(\034)1500 2230
y Fg(0)1521 2262 y Fr(;)h(i)p Ft())992 2354 y Fi(scheme)p
Fr(:)p Fi(depth)p Ft(()p Fr(\032;)f(j)t Ft())992 2445
y Fr(i)22 b(<)f(j)675 2536 y Fh((MS6,2))p 992 2519
V 992 2628 a Fi(free)p Fr(:)p Fi(va)n(r)s Ft(()p Fi(sch)p
Ft(()p Fr(\034)t(;)34 b(\032)p Ft())p Fr(;)g(\034)1653
2596 y Fg(0)1675 2628 y Ft())2148 1988 y Fi(mak)n(e)p
Fr(:)p Fi(scheme)q Ft(()p Fr(\034)t(;)g(\032)p Ft())2148
2080 y Fi(\014nd)p Ft(()p Fr(\034)t(;)g(\034)2435 2048
y Fg(0)2457 2080 y Ft())2148 2171 y Fi(unb)r(ound)o
Ft(()p Fr(\034)2500 2139 y Fg(0)2521 2171 y Ft())2148
2262 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(\034)2656
2230 y Fg(0)2678 2262 y Fr(;)g(i)p Ft())2148 2354 y
Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(\032;)g(j)t
Ft())2148 2445 y Fr(j)26 b Fe(\024)21 b Fr(i)1831 2536
y Fh((MS7,2))p 2148 2519 V 2148 2628 a Fi(b)r(ound)p
Fr(:)p Fi(va)n(r)q Ft(()p Fi(sch)p Ft(()p Fr(\034)t(;)35
b(\032)p Ft())p Fr(;)f Fi(sch)p Ft(()p Fr(\034)3024
2596 y Fg(0)3046 2628 y Fr(;)g(\032)p Ft()))1440 2972
y Fs(Fig.)15 b(7.)25 b Ft(Making)i(a)f(T)n(yp)r(e)f(Sc)n(heme)915
3263 y Fi(mak)n(e)p Fr(:)p Fi(cop)n(y)r Ft(()p Fr(s;)34
b(\032)p Ft())915 3355 y Fi(sch)p Fr(:)p Fi(struct)q
Ft(()p Fr(s;)g(t;)g(v)s Ft())637 3446 y Fh((C1,3))p
915 3429 V 915 3537 a Fi(decla)n(re)p Fr(:)p Fi(a)n(rro)n(w)r
Ft(()p Fi(cop)n(y)q Ft(()p Fr(s;)h(\032)p Ft()))915
3629 y Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)q Ft(()p Fi(domain)o
Ft(()p Fi(cop)n(y)q Ft(()p Fr(s;)f(\032)p Ft()))p
Fr(;)g Fi(cop)n(y)q Ft(()p Fr(t;)g(\032)p Ft()))915
3720 y Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)q Ft(()p Fi(range)p
Ft(()p Fi(cop)n(y)q Ft(()p Fr(s;)g(\032)p Ft()))p
Fr(;)g Fi(cop)n(y)r Ft(()p Fr(v)s(;)g(\032)p Ft()))915
3811 y Fi(mak)n(e)p Fr(:)p Fi(cop)n(y)r Ft(()p Fr(t;)g(\032)p
Ft())915 3902 y Fi(mak)n(e)p Fr(:)p Fi(cop)n(y)r Ft(()p
Fr(v)s(;)g(\032)p Ft())2618 3263 y Fi(mak)n(e)p Fr(:)p
Fi(cop)n(y)r Ft(()p Fr(s;)g(\032)p Ft())2618 3355 y
Fi(int)p Fr(:)p Fi(scheme)p Ft(()p Fr(s)p Ft())2340
3446 y Fh((C2,3))p 2618 3429 V 2618 3537 a Fi(int)p
Fr(:)p Fi(t)n(yp)r(e)o Ft(()p Fi(cop)n(y)r Ft(()p Fr(s;)13
b(\032)p Ft()))949 4259 y Fi(mak)n(e)p Fr(:)p Fi(cop)n(y)q
Ft(()p Fr(s;)34 b(\032)p Ft())949 4351 y Fi(free)p
Fr(:)p Fi(va)n(r)r Ft(()p Fr(s;)h(\034)1350 4319 y Fg(0)1371
4351 y Ft())671 4442 y Fh((C3,3))p 949 4425 V 949
4533 a Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)p Ft(()p Fi(cop)n(y)r
Ft(()p Fr(s;)12 b(\032)p Ft())p Fr(;)34 b(\034)1654
4502 y Fg(0)1676 4533 y Ft())2106 4259 y Fi(mak)n(e)p
Fr(:)p Fi(cop)n(y)q Ft(()p Fr(s;)g(\032)p Ft())2106
4351 y Fi(b)r(ound)p Fr(:)p Fi(va)n(r)q Ft(()p Fr(s)2490
4359 y Fd(1)2524 4351 y Fr(;)h(s)2616 4359 y Fd(2)2650
4351 y Ft())1828 4442 y Fh((C4,3))p 2106 4425 V 2106
4533 a Fi(eq)p Fr(:)p Fi(t)n(yp)r(es)p Ft(()p Fi(cop)n(y)r
Ft(()p Fr(s)2610 4541 y Fd(1)2644 4533 y Fr(;)13 b(\032)p
Ft())p Fr(;)34 b Fi(cop)n(y)q Ft(()p Fr(s)3015 4541
y Fd(2)3050 4533 y Fr(;)g(\032)p Ft()))1040 4878 y
Fs(Fig.)15 b(8.)25 b Ft(Cop)n(ying)h(a)g(T)n(yp)r(e)g(Sc)n(heme)e(at)i
(Program)g(P)n(osition)h Fr(\032)1922 5173 y Fu(13)p
eop
%%Page: 14 14
14 13 bop 688 957 a Fh((D1,1))p 966 940 314 4 v 966
1048 a Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fi(ro)r(ot)p
Fr(;)35 b Ft(0))2104 957 y Fi(do)p Ft(()p Fi(analyze)p
Ft(()p Fi(let)o Ft(()p Fr(x;)f(e)2722 965 y Fd(1)2756
957 y Fr(;)g(e)2847 965 y Fd(2)2882 957 y Ft())p Fr(;)g(\032)p
Ft()))2104 1048 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p
Fr(\032;)g(d)p Ft())1826 1140 y Fh((D2,1))p 2104 1123
V 2104 1231 a Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fi(do)n(wn)p
Ft(()p Fr(\032;)g Ft(2))p Fr(;)g(d)17 b Ft(+)g(1))2104
1322 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fi(do)n(wn)p
Ft(()p Fr(\032;)34 b Ft(3))p Fr(;)g(d)p Ft())930 1679
y Fi(do)q Ft(()p Fi(analyze)o Ft(()p Fi(lamb)r(da)o
Ft(()p Fr(x;)f(e)p Ft())p Fr(;)h(\032)p Ft()))930
1771 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(\032;)g(d)p
Ft())652 1862 y Fh((D3,1))p 930 1845 V 930 1953 a
Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fi(do)n(wn)p Ft(()p
Fr(\032;)g Ft(2))p Fr(;)h(d)p Ft())2269 1679 y Fi(do)p
Ft(()p Fi(analyze)o Ft(()p Fi(apply)p Ft(()p Fr(e)2878
1687 y Fd(1)2912 1679 y Fr(;)g(e)3004 1687 y Fd(2)3038
1679 y Ft())p Fr(;)f(\032)p Ft()))2269 1771 y Fi(scheme)p
Fr(:)p Fi(depth)o Ft(()p Fr(\032;)g(d)p Ft())1991 1862
y Fh((D4,1))p 2269 1845 V 2269 1953 a Fi(scheme)p Fr(:)p
Fi(depth)o Ft(()p Fi(do)n(wn)p Ft(()p Fr(\032;)g Ft(1))p
Fr(;)h(d)p Ft())2269 2045 y Fi(scheme)p Fr(:)p Fi(depth)o
Ft(()p Fi(do)n(wn)p Ft(()p Fr(\032;)f Ft(2))p Fr(;)h(d)p
Ft())923 2402 y Fi(t)n(yp)r(e)p Fr(:)p Fi(va)n(r)r Ft(()p
Fi(t)n(yp)r(e)p Fr(:)p Fi(of)6 b Ft(()p Fr(e;)34 b(\032)p
Ft()))923 2493 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p
Fr(\032;)g(d)p Ft())645 2584 y Fh((D5,1))p 923 2567
V 923 2676 a Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fi(t)n(yp)r(e)p
Fr(:)p Fi(of)6 b Ft(()p Fr(e;)34 b(\032)p Ft())p Fr(;)g(d)p
Ft())2303 2402 y Fi(t)n(yp)r(e)p Fr(:)p Fi(va)n(r)r
Ft(()p Fi(cop)n(y)q Ft(()p Fr(s;)g(\032)p Ft()))2303
2493 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(\032;)g(d)p
Ft())2025 2584 y Fh((D6,1))p 2303 2567 V 2303 2676
a Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fi(cop)n(y)q
Ft(()p Fr(s;)g(\032)p Ft())p Fr(;)g(d)p Ft())1081
3033 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(x;)g(d)1685
3041 y Fd(1)1719 3033 y Ft())1081 3124 y Fi(scheme)p
Fr(:)p Fi(depth)p Ft(()p Fr(x;)g(d)1685 3132 y Fd(2)1719
3124 y Ft())1081 3215 y Fr(d)1121 3223 y Fd(1)1177 3215
y Fr(<)21 b(d)1298 3223 y Fd(2)803 3307 y Fh((D7,1))p
1081 3289 V 1081 3398 a Ft(del()p Fi(scheme)p Fr(:)p
Fi(depth)p Ft(()p Fr(x;)34 b(d)1813 3406 y Fd(2)1847
3398 y Ft()))2439 3033 y Fi(scheme)p Fr(:)p Fi(depth)p
Ft(()p Fr(x;)g(d)p Ft())2439 3124 y Fi(\014nd)p Fr(:)p
Fi(a)n(rc)p Ft(()p Fr(x;)g(y)s Ft())2161 3215 y Fh((D8,2))p
2439 3198 V 2439 3307 a Fi(scheme)p Fr(:)p Fi(depth)p
Ft(()p Fr(y)s(;)f(d)p Ft())1447 3755 y Fi(scheme)p
Fr(:)p Fi(depth)p Ft(()p Fr(\013;)h(d)p Ft())1447 3846
y Fi(struct)p Ft(()p Fr(\013;)g(\014)t(;)h(\015)t Ft())1169
3937 y Fh((D9,3))p 1447 3920 V 1447 4029 a Fi(scheme)p
Fr(:)p Fi(depth)p Ft(()p Fr(\014)t(;)f(d)p Ft())1447
4120 y Fi(scheme)p Fr(:)p Fi(depth)p Ft(()p Fr(\015)t(;)g(d)p
Ft())1236 4465 y Fs(Fig.)15 b(9.)25 b Ft(The)h(Computation)f(of)i(Sc)n
(heme)d(Depth)1922 5173 y Fu(14)p eop
%%Page: 15 15
15 14 bop 523 448 a Fu(created)25 b(in)i Fp(e)947 460
y Fn(1)1010 448 y Fu(are)e(candidates)g(for)h(quan)n(ti\014cation)f(in)
h(the)h(t)n(yp)r(e)f(sc)n(heme.)f(Ho)n(w)n(ev)n(er,)g(the)523
548 y(expression)35 b Fp(e)971 560 y Fn(1)1045 548 y
Fu(usually)h(con)n(tains)g(free)g(v)-5 b(ariables)35
b(suc)n(h)i(as)f Fp(y)j Fu(in)e(the)g(ab)r(o)n(v)n(e)e(example.)523
648 y(The)26 b(t)n(yp)r(es)f(asso)r(ciated)f(with)j(the)f(free)f(v)-5
b(ariables)24 b(in)i Fp(e)2264 660 y Fn(1)2327 648 y
Fu(cannot)f(b)r(e)h(generalized.)e(A)i(t)n(yp)r(e)523
747 y(that)32 b(is)f(pro)n(v)-5 b(ably)31 b(equal)g(to)g(a)g(range)f(t)
n(yp)r(e)i(or)f(a)g(domain)g(t)n(yp)r(e)h(of)f(an)h(ungeneralizable)523
847 y(t)n(yp)r(e)f(is)g(also)f(ungeneralizable.)f(T)-7
b(o)30 b(determine)h(whic)n(h)g(t)n(yp)r(es)g(are)f(generalizable)f(w)n
(e)h(us)523 946 y(the)f(notion)f(of)g(sc)n(heme)g(depth)h(de\014ned)g
(earlier.)e(The)h(formal)g(de\014nition)g(of)h(the)f(sc)n(heme)523
1046 y(depth)36 b(of)f(a)g(p)r(osition)g(is)g(giv)n(en)g(b)n(y)g(rules)
f(D1)i(through)e(D4)i(in)f(\014gure)g(9.)f(W)-7 b(e)36
b(\014rst)f(sa)n(y)523 1146 y(that)i(a)f(t)n(yp)r(e)h
Fp(\013)g Fu(is)g(pro)n(v)-5 b(ably)35 b(a)h(sub)r(expression)g(of)g(a)
h(t)n(yp)r(e)f Fp(\014)41 b Fu(if)d Fp(\013)f Fu(is)f(pro)n(v)-5
b(ably)36 b(equal)523 1245 y(to)c Fp(\014)37 b Fu((the)c(union-\014nd)
f(structure)f(equates)h(them))h(or)e Fp(\013)i Fu(is)f(of)g(the)h
(form)e Fl(domain)o Fu(()p Fp(\015)5 b Fu())33 b(or)523
1345 y Fl(range)p Fu(()p Fp(\015)5 b Fu())37 b(where)g
Fp(\015)42 b Fu(is)37 b(pro)n(v)-5 b(ably)36 b(a)h(sub)r(expression)f
(of)i Fp(\014)t Fu(.)g(Eac)n(h)e(t)n(yp)r(e)h(v)-5 b(ariable)37
b(has)f(a)523 1445 y(creation)d(depth)h(and)g(an)f(inferred)g(depth.)i
(The)f(inferred)f(depth)h(of)g Fp(\013)g Fu(is)g(the)g(creation)523
1544 y(depth)28 b(of)g(the)g(shallo)n(w)n(est)d(t)n(yp)r(e)j(v)-5
b(ariable)27 b Fp(\014)32 b Fu(suc)n(h)27 b(that)h Fp(\013)g
Fu(is)f(pro)n(v)-5 b(ably)26 b(a)h(sub)r(expression)523
1644 y(of)34 b Fp(\014)t Fu(.)g(Rules)f(D5)h(and)f(D6)h(in)g(\014gure)f
(9)g(install)g(the)h(creation)f(depth)h(of)f(t)n(yp)r(e)h(v)-5
b(ariables)523 1743 y(and)28 b(rules)f(D7,)h(D8,)g(and)g(D9)f(compute)h
(inferred)g(depth.)g(A)h(v)-5 b(ariable)26 b(can)i(b)r(e)g(b)r(ound)g
(b)n(y)523 1843 y(the)i(univ)n(ersal)e(quan)n(ti\014er)g(at)i(sc)n
(heme)e(creation)h(time)h(as)e(long)h(as)g(its)g(inferred)g(depth)h(is)
523 1943 y(no)d(less)g(than)h(the)g(depth)g(of)g(p)r(osition)f(at)h
(whic)n(h)f(the)h(sc)n(heme)f(is)h(b)r(eing)g(created.)648
2045 y(Figure)e(7)h(giv)n(es)f(rules)g(for)h(creating)e(t)n(yp)r(e)j
(sc)n(hemes.)e(W)-7 b(e)28 b(lea)n(v)n(e)d(it)j(to)f(reader)e(to)i
(deci-)523 2144 y(pher)j(the)g(meaning)f(of)h(these)g(rules.)f(One)h(p)
r(oin)n(t)g(concerning)e(their)i(complexit)n(y)f(should)523
2244 y(b)r(e)37 b(noted)f(ho)n(w)n(ev)n(er.)f(The)h(\014nd)h
(assertions)e(in)i(the)g(an)n(teceden)n(ts)e(of)i(these)f(rules)g(ob)n
(vi-)523 2343 y(ously)c(should)f(only)h(b)r(e)h(instan)n(tiation)e
(with)i(the)g(\014nd)f(v)-5 b(alues)32 b(that)g(are)g(in)g(place)g
(when)523 2443 y(the)27 b(sc)n(heme)f(is)g(constructed.)g(This)g(can)g
(b)r(e)h(ac)n(hiev)n(ed)e(b)n(y)h(adding)g(an)g(an)n(teceden)n(t)f(of)i
(the)523 2543 y(form)d Fl(active)p Fu(()p Fp(\032)p
Fu())h(to)f(eac)n(h)f(rule)h(where)g(this)g(assertion)f(is)h(only)g
(true)g(during)g(the)h(computa-)523 2642 y(tion)h(of)g(the)g(sc)n(heme)
f(for)g(p)r(osition)h Fp(\032)p Fu(.)f(With)i(this)f(mo)r(di\014cation)
g(it)g(is)f(easy)g(to)h(c)n(hec)n(k)f(that)523 2742 y(the)i(n)n(um)n(b)
r(er)g(of)g(visible)g(pre\014x)g(\014rings)f(of)h(the)g(rules)f(in)i
(\014gure)e(7)h(is)f(prop)r(ortional)g(to)h(the)523 2842
y(n)n(um)n(b)r(er)21 b(of)g(no)r(des)g(in)g(the)h(sc)n(heme)f(created.)
f(F)-7 b(or)21 b(programs)e(of)i(b)r(ounded)g(order)f(and)h(arit)n(y)
523 2941 y(there)32 b(is)g(a)g(constan)n(t)g(upp)r(er)g(b)r(ound)h(on)f
(the)h(n)n(um)n(b)r(er)f(of)g(no)r(des)g(in)h(eac)n(h)e(sc)n(heme.)h
(The)523 3041 y(rules)e(for)f(making)h(a)g(sc)n(heme)f(are)h(consisten)
n(t)f(with)i(the)g(use)f(a)g(lazy)f(path)i(compression)523
3140 y(v)n(ersion)26 b(of)i(union-\014nd.)648 3242 y(The)k(rules)f(in)i
(\014gure)e(8)h(cop)n(y)f(a)h(t)n(yp)r(e)g(sc)n(heme)g(at)g(a)g
(particular)e(program)h(lo)r(cation.)523 3342 y(The)21
b(n)n(um)n(b)r(er)f(of)h(visible)f(pre\014x)g(\014rings)g(of)h(these)g
(rules)f(is)g(prop)r(ortional)f(to)i(the)g(size)f(of)h(the)523
3441 y(sc)n(heme)29 b(b)r(eing)g(copied.)f(If)i(sc)n(hemes)e(ha)n(v)n
(e)g(a)g(b)r(ounded)i(size)f(then)g(the)g(total)g(time)h(tak)n(en)523
3541 y(to)25 b(create)f(and)g(cop)n(y)g(sc)n(hemes)g(is)h(prop)r
(ortional)e(to)i(the)g(size)g(of)g(the)g(input)h(program)c((the)523
3641 y(n)n(um)n(b)r(er)32 b(of)g(o)r(ccupied)g(p)r(ositions).)g(In)g
(this)h(case)e(the)h(total)g(n)n(um)n(b)r(er)g(of)g(t)n(yp)r(e)g(v)-5
b(ariables)523 3740 y(is)37 b(also)e(prop)r(ortional)h(the)h(size)f(of)
h(the)g(input)h(program)d(so)h(the)h(time)g(sp)r(en)n(t)g(inside)g(a)
523 3840 y(lazy)27 b(path)g(compression)f(v)n(ersion)g(of)h
(union-\014nd)g(is)g Fp(O)r Fu(()p Fp(n\013)p Fu(()p
Fp(n)p Fu()).)j(The)d(n)n(um)n(b)r(er)g(of)g(visible)523
3940 y(pre\014x)e(\014rings)f(of)i(rule)f(D7,)g(D8,)g(and)h(D9)f(in)h
(b)r(ounded)f(b)n(y)g(the)h(size)f(of)g(the)h(program)d((the)523
4039 y(n)n(um)n(b)r(er)j(of)g(t)n(yp)r(e)h(v)-5 b(ariables))25
b(times)i(the)f(n)n(um)n(b)r(er)g(of)g(depths,)h(i.e.,)g(the)f(sc)n
(heme)g(depth)h(of)523 4139 y(the)j(deep)r(est)f(sc)n(heme)g(p)r
(osition.)h(This)f(giv)n(es)f(a)h(total)g(running)g(time)h(of)f
Fp(O)r Fu(()p Fp(n\013)p Fu(()p Fp(n)p Fu())21 b(+)f
Fp(dn)p Fu())523 4238 y(where)25 b Fp(n)h Fu(is)g(the)g(length)g(of)f
(the)h(program)e(and)i Fp(d)g Fu(is)f(the)h(sc)n(heme)g(depth)g(of)g
(the)g(program.)523 4515 y Fq(6)112 b(Conclusions)523
4725 y Fu(This)26 b(pap)r(er)g(is)g(a)f(case)g(study)i(in)f(the)g(use)g
(of)g(b)r(ottom-up)h(logic)e(programming)f(extended)523
4825 y(with)36 b(priorities)e(and)i(deletions)f(in)h(presen)n(ting)f
(and)g(analyzing)f(algorithms.)g(E\016cien)n(t)523 4924
y(Hindley-Miler)23 b(t)n(yp)r(e)g(inference)g(seems)g(to)g(b)r(e)h(a)e
(c)n(hallenging)g(algorithm)g(to)h(b)r(oth)h(form)n(u-)1922
5173 y(15)p eop
%%Page: 16 16
16 15 bop 523 448 a Fu(late)23 b(and)h(analyze.)e(The)i(algorithm)e
(presen)n(ted)h(here)g(is)g(essen)n(tially)g(the)h(one)f(used)g(in)h
(ML)523 548 y(and)f(Caml)f(implemen)n(tations.)h(Although)f(b)r(eaut)n
(y)h(is)f(in)h(the)g(ey)n(e)f(of)h(the)g(b)r(eholder,)f(it)h(can)523
648 y(at)h(least)f(b)r(e)h(argued)f(that)h(the)g(inference)f(rule)h
(presen)n(tation)f(of)g(the)h(algorithm)f(is)h(clearer)523
747 y(b)r(oth)30 b(resp)r(ect)f(to)g(its)h(correctness)d
Fj(and)32 b(with)g(r)l(esp)l(e)l(ct)f(to)h(its)f(running)f(time)g
Fu(than)g(is)f(an)n(y)523 847 y(presen)n(tation)c(of)h(the)h(algorithm)
e(using)h(traditional)f(con)n(trol)g(structures.)g(Of)i(course)e(the)
523 946 y(top)g(lev)n(el)g(pro)r(cedure)f(in)i(\014gure)e(4)h(uses)g
(classical)f(pro)r(cedural)f(con)n(trol)h(structures.)h(Ho)n(w-)523
1046 y(ev)n(er,)i(the)h(implemen)n(tation)g(of)g(uni\014cation)f(and)h
(the)g(depth)g(propagation)e(seems)h(easier)523 1146
y(in)d(inference)f(rules)f(that)i(classical)e(con)n(trol)g(structures.)
g(Also,)h(inference)h(rules)e(pro)n(vide)g(a)523 1245
y(di\013eren)n(t)28 b(form)g(of)g(mo)r(dularit)n(y)f(than)h(is)g(p)r
(ossible)g(in)g(classical)f(programs.)e(The)j(uni\014ca-)523
1345 y(tion)e(algorithm)e(can)h(b)r(e)h(giv)n(en)e(as)h(a)g(separate)f
(mo)r(dule)i(that)f(uses)g(a)g(union-\014nd)h(mo)r(dule)523
1445 y(without)g(mo)r(di\014cation.)e(Depth)i(propagation)d(can)i(b)r
(e)g(done)g(with)h(y)n(et)f(another)f(mo)r(dule.)523
1544 y(The)31 b(complexit)n(y)e(analysis)h(of)g(these)h(mo)r(dules)f
(can)g(b)r(e)h(done)f(separately)f((mo)r(dularly).)523
1644 y(This)e(mo)r(dularization)f(seems)h(di\016cult)h(with)g
(classical)e(con)n(trol)g(structures.)h(The)g(use)g(of)523
1743 y(inference)h(rules)f(also)f(seems)h(to)h(facilitates)f(the)h
(treatmen)n(t)f(of)h(recursiv)n(e)e(t)n(yp)r(es.)648
1843 y(In)f(comparing)f(the)i(algorithm)e(in)i(\014gures)e(4,)h(6,)g
(7,)g(8,)g(and)g(9)g(to)h(other)e(presen)n(tations)523
1943 y(it)k(is)g(imp)r(ortan)n(t)f(to)h(k)n(eep)f(in)h(mind)g(that)g
(the)g(these)g(\014gures)f(con)n(tain)g(mac)n(hine)g(readable)523
2042 y(co)r(de.)41 b(Mac)n(hine)g(readable)f(co)r(de)i(is)f(usually)g
(less)g(clear)f(than)i(informal)f(descriptions)523 2142
y(of)c(algorithms)e(written)h(in)h(English.)f(A)h(fair)f(comparison)f
(w)n(ould)h(require)f(comparing)523 2242 y(these)25 b(\014gures)f(to)h
(a)f(mac)n(hine-readable)f(implemen)n(tation)i(in)h(an)e(some)h(more)f
(traditional)523 2341 y(programming)h(language.)648 2441
y(Bottom-up)d(logic)f(programming)f(is)j(clearly)e(not)h(the)h(b)r(est)
g(to)r(ol)f(for)g(all)g(applications.)523 2540 y(Ho)n(w)n(ev)n(er,)39
b(it)i(is)f(hop)r(ed)h(that)g(this)g(case)e(study)i(demonstrates)f
(that)h(presen)n(ting)e(and)523 2640 y(analyzing)d(complex)h
(algorithms)f(as)h(b)r(ottom-up)h(logic)e(programs)f(is)j(indeed)f
(feasible)523 2740 y(and)27 b(p)r(erhaps)g(pro)n(vides)g(greater)e
(clarit)n(y)i(than)h(traditional)e(approac)n(hes.)523
2981 y Fq(References)523 3141 y Ft(1.)42 b(H.)29 b(Ganzinger)h(and)e
(D.)h(McAllester.)46 b(A)28 b(new)h(meta-complexit)n(y)e(theorem)h(for)
i(b)r(ottom-up)624 3232 y(logic)f(programs.)40 b(In)27
b Fa(Pr)l(o)l(c.)i(International)i(Joint)e(Confer)l(enc)l(e)i(on)e(A)n
(utomate)l(d)i(R)l(e)l(asoning)p Ft(,)624 3324 y(v)n(olume)20
b(2083)i(of)f Fa(L)l(e)l(ctur)l(e)26 b(Notes)e(in)e(Computer)i(Scienc)l
(e)p Ft(,)e(pages)g(514{528.)i(Springer-V)-6 b(erlag,)624
3415 y(2001.)523 3500 y(2.)42 b(H.)28 b(Ganzinger)h(and)e(D.)h
(McAllester.)43 b(Logical)29 b(algorithms.)42 b(In)27
b Fa(Pr)l(o)l(c.)j(International)h(Con-)624 3591 y(fer)l(enc)l(e)e(on)f
(L)l(o)l(gic)g(Pr)l(o)l(gr)l(amming)g((ICLP))p Ft(,)f(2002.)523
3677 y(3.)42 b(F.)23 b(Henglein.)28 b(T)n(yp)r(e)22 b(inference)h(with)
f(p)r(olymorphic)f(recursion.)29 b Fa(T)-6 b(r)l(ansactions)27
b(on)d(Pr)l(o)l(gr)l(am-)624 3768 y(ming)j(L)l(anguages)j(and)e
(Systems)h((TOPLAS))p Ft(,)e(15(2):253{289,)j(1993.)523
3853 y(4.)42 b(A.)33 b(Kfoury)-6 b(,)33 b(J.)h(Tiuryn,)f(and)g(P)-6
b(.)33 b(Urzyczyn.)56 b(Ml)34 b(t)n(ypabilit)n(y)e(is)i(dexptime)d
(complete.)57 b(In)624 3944 y Fa(Pr)l(o)l(c)l(e)l(e)l(dings)27
b(of)e(the)g(15th)h(Col)t(lo)l(quium)e(on)h(T)-6 b(r)l(e)l(es)26
b(in)e(A)n(lgebr)l(a)i(and)f(Pr)l(o)l(gr)l(amming)h((CAAP))p
Ft(,)624 4036 y(pages)h(468{476.)h(A)n(CM,)f(1990.)523
4121 y(5.)42 b(H.)26 b(Mairson.)38 b(Deciding)26 b(ml)g(t)n(ypabilit)n
(y)f(is)i(complete)f(for)h(deterministic)f(exp)r(onen)n(tial)g(time.)
624 4212 y(In)19 b Fa(A)n(CM)i(Symp)l(osium)g(on)h(Principles)f(of)g
(Pr)l(o)l(gr)l(amming)i(L)l(anguages)p Ft(.)e(Asso)r(ciation)g(for)e
(Com-)624 4304 y(puting)25 b(Mac)n(hinery)-6 b(,)26 b(1990.)523
4389 y(6.)42 b(Da)n(vid)32 b(McAllester.)55 b(On)31 b(the)h(complexit)n
(y)f(analysis)j(of)f(static)g(analyses.)54 b Fa(Journal)35
b(of)e(the)624 4480 y(A)n(CM)27 b((JA)n(CM))p Ft(,)g
(49(4):512{537,)j(2002.)36 b(A)25 b(short)h(v)n(ersion)g(app)r(eared)
g(in)f(SAS99.)523 4565 y(7.)42 b(Robin)24 b(Milner.)32
b(A)23 b(theory)h(of)g(t)n(yp)r(e)f(p)r(olymorphism)g(in)g
(programming.)31 b Fa(JCSS)p Ft(,)25 b(17:348{375,)624
4657 y(1978.)523 4742 y(8.)42 b(Didier)23 b(R)n(\023)-36
b(em)n(y)-6 b(.)26 b(Extending)c(ML)g(t)n(yp)r(e)f(system)h(with)g(a)g
(sorted)h(equational)g(theory)-6 b(.)28 b(Researc)n(h)624
4833 y(Rep)r(ort)21 b(1766,)i(Institut)e(National)h(de)f(Rec)n(herc)n
(he)f(en)h(Informatique)g(et)g(Automatisme,)f(Ro)r(c-)624
4924 y(quencourt,)25 b(BP)i(105,)g(78)f(153)h(Le)f(Chesna)n(y)f(Cedex,)
h(F)-6 b(rance,)26 b(1992.)1922 5173 y Fu(16)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF