CARVIEW |
Select Language
HTTP/1.1 200 OK
Date: Sat, 11 Oct 2025 01:30:35 GMT
Server: Apache/2.4
Last-Modified: Thu, 28 Oct 2004 12:33:52 GMT
ETag: "a9fc2-3e78127a42c00"
Accept-Ranges: bytes
Content-Length: 696258
Content-Type: application/postscript
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com)
%%Title: thesisams.dvi
%%Pages: 51
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMBX10 CMR8 CMTI8 CMCSC10 CMR7 CMR10 CMTI10 CMMI10
%%+ CMMI7 MSBM7 CMEX10 CMSY7 CMSY10 MSBM10 CMBX7 CMSY5 CMR5 CMMI5 CMTT10
%%+ CMSL10 CMITT10 MSAM10 CMR9
%%EndComments
%DVIPSCommandLine: dvips thesisams.dvi -o thesisams.ps
%DVIPSParameters: dpi=400
%DVIPSSource: TeX output 1998.10.13:1249
%%BeginProcSet: tex.pro
%!
/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn
put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N
/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley
X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[
(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup
length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant
{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1
roll mul exch}def /ReEncodeFont{/Encoding exch def}def end
%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
clippath mark{transform{itransform moveto}}{transform{itransform lineto}
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
maxlength dict begin /magscale true def normalscale currentpoint TR
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
begin /SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
%%BeginFont: CMR9
%!PS-AdobeFont-1.1: CMR9 1.0
%%CreationDate: 1991 Aug 20 16:39:59
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 49 /one put
dup 50 /two put
dup 58 /colon put
dup 66 /B put
dup 68 /D put
dup 69 /E put
dup 71 /G put
dup 72 /H put
dup 76 /L put
dup 80 /P put
dup 84 /T put
dup 90 /Z put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
/UniqueID 5000792 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609
dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9
aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9
39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891
d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893
d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626
b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824
5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d
264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23
516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2
2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218
63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04
6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1
dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec
9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384
a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3
2f35f7bbc9aa50135f30223360fa2fbf019294b3af98224c5c05d6038db08bc1
4103010094dc215ef9ccfb96b237851332c8ed81a9184cced4edbda26b381f0c
73a2bc4a92533b0e667e82ce49ddd8ac9e34d9d40fd4b5b9910eab3b1234bbf3
af6608d66eaa424c158eddb75fbe39462708da8f5c18d92fbdb2f534598a844a
e076f96a741f8002af3b38d7e4bfa363f5f5d1193014f71878062f9ef3e03bbf
b89fee74da9225e3c13429b45becd93362a1d375a937cd360d9ea7e27ba7e7ca
42eb29cf4ee105c014c62a820591c7abe241ebe1fb846071b5f1748b4cd68e92
429656fe704757d4deb83c999ccf9833c5bf8139cbc4202932b0b1635be9c61b
d4db4e7f599a8120ae1850078c2e7fa521e81eb7cc71248cbf5c040acd35dbca
03b8670d478685d5a54a3b8a90a2f5d9f2619230388b2768c9a47d164c08d0ab
5bb72b5da819ceb55a549e99fd5244165d5c12efb04cc539bf1cfc1525f0c783
08c40e9640a42e2e05693fe220b9becea3270857db7a6510c41fc3ea28cf24aa
dff1317031e846b9457b3c7438b416793e2cd04158c4cd60bca3d0f47d2c3ca3
c8981b3eba47c26dc55c80a162ddb7fc3cb6f36ac62ec783a5d011610c929be0
9ff145fd1862928a619cd04697da28571e6e41c216a3271942be8c515c2e93b1
4ff1623a97ee657783c81166a4d3456d7777a7cd647bc11511d3d0e07d1f8c12
6ef4070a9a6b17b4343c75456b98ff4ee931651e4bf06dee431396e267bf3af5
9773f0af87bdbe60cf312ba9110cf12bddfa0abe23fd19bfe58b4c7212bcc0cb
ae1499da7e85f5d6d734741d40a907c58b810fe0e3eaf82b3257e5770cd3ae24
4758bac5b2d9e7cdcef5101ec99f84f544faa5bce3cd8f34dd3e2cae81d2bdb8
e11d55e866d6f395357db083762efc86f0af802ff003d75411ba53336f409daf
fc442a6debf8a45d0dacb9947d9a0e91bc46a061d27ab1203f35ce08819b41dc
a55dc963c90be077796d996af98236927200e35d7f21514bf5b57e6ea11dccdc
b4e9b5128f161c3b3f6b4284a5c979a892a0e735c15f8b0f4bad222f757f4c8b
bf777010d3a4fba93e1a1a9159c8f41e689488f0c9b140682f401a2770b4ec56
d9073aa28019ff33cf5db1f1c565c25202e2e957dcf7a480df44c605e560fb65
a1d375a958a69ad2cf4079d5b9a6904a211309b5d461395a6823fd938b7c3d6d
ded859d959d21f5a4b3c895e66e15b1ea9dc00c25c71746b994f4daea5275ed4
f6758358e0c6cb7e7ab1f919c633ba51a2a15104be00fcebf597f19d660ea3dd
75cabddee0128df1a81489d2e4e000278f0e4fdb608f8a845e1d5ddcbc3990e6
5255cbba079a986e951d1d2d16aad1a16079277a30611b0ee9cc37eda2b278f3
abbe265fff45199cb6e2daafbff2822141d5543294b2137483b14ac39ad7af27
37618fa9e1b189488e0640bb829a7aa06803617a51ebfff17cdd02a196f3f387
a62372d75971e475f755884c358f9966dff9f72aa048d85a62fbc814d066f64c
1d5e679c096452d304be5a84d86566c80b71800ef94bb51b8946769ea3429627
820fa89ea90f3b256ebfc6c2f2da6db0cffc6760c218843bfac547ff47ade632
7a5a8c02fb46bf95d45e9e698813e8a48c8a2af47107a020f69cdc5663690ec7
ca76000263c3e78d749df560df0e2b0e817a85bf5993c36b1adf02e0c1837b65
fe22f09e84874357049ed9f2a078776e3381e654e1cbde5bf7c8c8ad8c472da3
9fe1845f8d8c120bd259e53e060126090d841932c381d5a59bd43f1a50a6acdb
2d708f502bc4866a0e68f2e5330a681f51903be2f8e1ddeaadba9841f5dc35da
dfd6c0ef62138535b084c27310e67627f095ceb6f875e8db73ca572b93cada1d
0e1ce323509cfd0c8b08a3d38d7713f8fda31d7a0fb85603678ba69a63a2d572
dfbfd4a2f55cf1d569a36aeb680f56d70bd8197a6b635d11a843553783b03793
853dda9311d34c5220b98f901505b87b924ddf264b6e0dc91e0642e7f733ef8c
3a67dc87ba61cfcb3e86111d4ee0f669a75e0cbe76a9f2cdc1800c9153c44943
d034f77ffd4e0c0403f69a4b94ebf8685d40e6da3bf1f37e254ca8c5ee9bd7fe
dee370d778ab06ae42315c0e16f9622005ee24c13017720f141738152b64c5ca
029a3f385d3524dfd856b2d94c8679f526dcb1319c003e638bfc74f5bc06d6e1
7ef35c2db273bc5fc51b684c354309ad6d88bde7a0b4c63d575b8689dc38a948
33ce1f80677af7b0580846bfe326bad61d009feb3ced64d364d680c7a4cfe302
6ef573e4cc96a685cc39b4f809848dde4edd923a24ff3cad03720cacf245093f
8a8b2d390d3f89c48bb57ac4a29d39a8a6b87b4768d9b3c6fb04d8ea02f0c0f5
9270b86b1db12651220c6fcbfed950779196ce294bb2151a1bec8d2644c75395
4f4730496e029cc4be59b79f25723eeb56328125aff8beb6050b26c9c01f35db
8b4117e1b2ff8af64d3a88828ab09d7e2678bc2af6067a6782425e3048b63e74
d654c2a7d0f1e67aa41a9aa4db5249e8f1d41dc7c7f2497fc477b6543f91a718
447096b96578362503eab7a3e6bc0bd1a27d94489d3414a5080351f36e1c605e
3fd4e8795218ff372ac3afaf27061b61f4166b2575f6935fdcbc2ac8f94af14e
723417ffd78c31272d2bfa9d156123056994cd1cb535d05ffc4a0918d0034ae3
0270d3f5dbc0e52aeca1283fa03c3431d2aaa98f7b4915f1ebb6b84f314a459e
76e8eaac9402b892d24fe17159a60766e59505d58560acdb29b935ee4a248433
0de428d85e20eb5d8116b319353e5bfc016621d717c8d60ae6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSAM10
%!PS-AdobeFont-1.1: MSAM10 2.1
%%CreationDate: 1993 Sep 17 09:05:00
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSAM10) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSAM10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 112 /rightanglenw put
dup 113 /rightanglene put
readonly def
/FontBBox{8 -463 1331 1003}readonly def
/UniqueID 5031981 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a
e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4
d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828
e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4
7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80
523f59a30d195fcf9b9fce4ffafc6f33457e3200f0935ea98f1a0cfaff49cfa2
d877ff805620cba84126dfd175a82e1b4c6ec58461fce97cdd749a012e2c4243
86b199a97c306b282350cbe5af90cf1d8e7371dcaedbd5fa3346dd3e558072c5
fd51a2edfee6890f62efd1b552699123f4f52c2817dadd5ece30b3bc178a3ef4
f45fd8ad0ee5bf30db5f9eee9ddefe249f3c349a886cf9130cba68ae559ad719
c439930ece1d52d38366116c390cbeabb8fdb36811cf3b8e2416825e8c880b24
6521ec6880ebe7f127c8741c756b29e1f89e3fd5d638a7bbade8c3a0fdbbf7ba
ec37cd372afb2d9dd25d509726d20a05914e418f6b7e759c440beb61519df02a
06734ec1226890d17c51f25f775e6879fdc231bc4d7fcb4b33d04fa273bdb8e8
f124171714614f8a94e98a6c2d6bdc1254913999f9c181e42c0886556cdf48af
92a265c1eb06bb30fb2745840c17bd31c7b8bdfd37dfb9643a418a2eaae14094
6752e0a315207aef85c3c2630538907971ec1b05687208571a3504bb3369b5c8
9a43e5abe343d0599fd8d41a1bf01de49f5856bdd67d63a2b3ecea75d721a6ca
0c8751ab41e892e9cf674218dd44acfd40019bf59f4d69ea40d5cf9068a6ff96
9f8cc772b920baf17334833d732431a2969b9a30fe38bd44772cef653935a957
af61dd568f041847ccce3c587656cba7bbf46d8cefec936c6d34dbe51bc04929
0440354f3b29ed8e6b4f21ad53b5809779d67339f284563d54ed4d2a504b014d
974a31c0ceb57b364af519bad4e85c41d521a3ffc26dbac555b42dc191367152
1d60c30b95b5bbafb3c7d87a1c043ea5f0e6dab83a4de99a742e75f02837b923
c50eb478ac4131ee604e3d7b784bd8c93eb9430291d452c21be0495718546333
66a602a9f142a563fdae3c8d40de6a8aa4f3118e6b59bd7a2c35420557fc465c
b2c85252357c57550f33ddf2112e2e8066408349bc421b11418f16b9d52e8dc3
c522008dfdd090915e8cac8e24aee3bfd876093175f04b77c0ce03913680339a
d5eb95a9ca66b69f9101bc8a454c64c0d28d082249c3e53409ae286cd509c244
97fec0195ada9bcc2348732c144581ca3786f523ca49f89d0ac19d7587980cb1
d1f8283a1dd55a283547e458e246ff130065d59a2c83af340c39e8c07fd50926
d48dbe070491a603801a9cb666c33571da2f7a877d87fde438a5798e5b8c5939
b99fc45c8835494e9ae0600eb26199834f992b8d6bc8f91590cd3fac9d54c7cd
63b3cee3f30821a0086ab096082e09037379114c7a38e158cfd48e32f5cc6b28
0f56261407f3ec898db9d5610923faa217b7f760a580cf1dcf64ed5083c00620
65781f528aca74a54e5a8689d2
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMITT10
%!PS-AdobeFont-1.1: CMITT10 1.0
%%CreationDate: 1991 Aug 18 17:48:50
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMITT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch true def
end readonly def
/FontName /CMITT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 75 /K put
dup 79 /O put
dup 80 /P put
dup 83 /S put
dup 84 /T put
dup 88 /X put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 105 /i put
dup 106 /j put
dup 110 /n put
dup 112 /p put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{11 -233 669 696}readonly def
/UniqueID 5000779 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cdbafa8977dcfa841fdff9afd3a7a7c7905c219
28506d4d50a72fd1db1b54a855775831bec099a567f3f795b812ed5e145213c6
d5d27f9ec6709245e9e4068a6606742aef616dfcfc9e0b9af7e687fdcda43c51
81a08d6ab72b86fb38756fec992191c1b3fd151c417125d4777f0bd0c57d2959
0db35f1e9e27945498a3f7dd60bc54d72bc8a573457c16796914029dc282aaea
fdaa4b1439f4125add4b7399be6fc68e4d5a766cbe5ddd161180d4e1ee3c95d8
64e79fd0c65b8f459336e99827454d662768df3e6c1c3647b00b70b5f96a3944
b7a197be0f58a1e995a77221bd374a40159d81c7196c94e8af7c3392255ee6dd
0663e05998ff917a62d635ca45e952252342507d6b4d28833c7809c1b88400ea
50c652efc339a66355c8017651fd24d9a5cc51ecb55bbe64ea523b094332c832
52f7b426909808ae113c1e5601b0e081fa8e7777ab93b42207100f43abbb9ce4
ebbf51e584299a06fbea62b8ad3632ff0f281ebf9503ba6b8ae4f3b57f650388
df63eea9e1ef1e08f7a2c6e4f5cae2c4dc7b42726a6ea6b7592e9355a01fe517
12264a713ba83c057cb5f663045791d4c7598b246cd3b8466a1130249568e95d
ee2c0b4abfabc8e362b78d9fdc025fc19cdf1887997d32fd1487cf2bf0ccc966
319e3e3cf4add90ab51f0c3e918a00e5726ee346ae410ec3ce90404580c47572
35b3ec4f5ddf23dd43224d90d8dc932ec7f0acfbbcdaf80f261482ea4a2a2644
129c27fb4b44ba8c78d23273122cbf1ca49ae879ddeb6991b87ce2ff25c655e6
b5ad950028de17f6628f9eec6842b79f69c84b6c55ae423714e622eb4e47f9fb
c30a71808d70b89cc1a9b60f0ef21ad074a63d38344446947fd9c0d80113c0fb
da4614dda7560bffacbeaa4f5b4b755ced10a2a8a5080edbc031a6567f73bbd6
fc682db1e8865328e0993f74bf0dd4e35c1202dc06070fd7d85f15294357ed43
a7fa0e971a3cfcb8adaeacca7a31d8e818e392d686b7c59feeb57802b216ba62
757de56648fcdeaa633d598ba0fa545937cf573f0858d3c3fd25fb68a7e41284
761dcc81d95c148e2c5003b18b78f548f37dc1070612bfb77285af90ac3bb9bf
d249fab1c1a498b35fb0c5eca9221ff8781c14b31fca25455d85bf49d1d8e294
2bd809dcb4a656ee43c8c6367dae5c62b575444d853ac2ed6e64d71700325569
346ee62f60090ca91f3dbffb12bde9e900c2ccffa0286377072b18e5a2eec927
0f0ba663dd0398330b9cd4218d05a2db44486b8a1693c6d4af998951399de0b3
355e2e63193726d5cda00b91a00b4993f0acfb513f069b78e6d3f8fb14e00a3c
246ea36240488819d12d376bbf410fef9ba81ae6528560698a9d82c0b1877f7d
8eac90d24609f1f39b9958852b48b64583812b140dd703f8863f5e2de3e4be79
b0de0da07ecbc69807b03a1c6321dea04b60683e29a5080c4d87caf996a0730f
4c266d29397ddd2aa8c08440577840bb9c4f631a870ae755923382f8cf54d712
2ba685ef18705fd516430912540d2688ec55c777e3b0217eeca3072e4e4df9c9
3bf03fcd48e15d90c86c3fde8270ac6fef28e9094cc924c7984487b7d7d6a411
2f2c71412a26534dfe688373b19c7bc35dba77a6cb50c6f3e9e87e67c7a9f00d
0d088a138dfa969321e3d9dd29da803e5e0ddeec958968032bd4d6d811e1bea0
3238d044a05a27fe82e0f3fb1b529a302e68ff00def372211aaad00acbf78b3f
38073c82cd123b598d3fcd2cc250919054dcff090f0f331310e812a5d59aa43f
ac2771d99ac4c5220af4f6b5d97d2848fa5816034bfc69bc0026dc9829a01ca6
62fe7bab4ae10b6d1c8cd030c9e145bea2cb7c6c14dc42d9f9da3c968fa71b45
7201ceac0877dc425e759a5e1ba22867ca65fa25a4dbde4f5a6f2b2d6f7f2961
e5316019e052c46c9d79e58043ab14a5a49fe6bd9d06f88a5a87df894e9054fe
c18924b33c5d332ad10a4fc999adedcfe15e3c35e82fe81f398f71482fb526a6
557a6df58b12f878c4c71b6016ef4bd8007395e7762f417eaeb063039abeaf0f
9fe308ad259d5f8f6e0d4dfd96454a5165979540875d39e6318585fbf380cc56
1d82335f35909faa379742dc60efa608e2f86fc2fcbd099d21cba53952d7d2bc
deb8853c0b29964c74d4004e2f4dbeaededf47d31650ed75b1300475c5c2b8d0
40d84bb1c1f02985d4c5754d7de679a1b4202c4d5beb88aab54f95eff6ea3040
dd920fca100ce2af43108f1f23a2d6be1fd54d005c695b286fdfe1a4830bedab
42d24f41f3ed9688f96ea75b97df84724471917fd2f1fb341f248c78943d42ff
7b8710cbba2d66940431ed124989259888ebac41e9371f0c5d55ceab8d1a37d7
2258c5cb5a0d91882b5c4843a2c6ed4b4f68eb77ca64458048baf5a1914a1af5
55f84249a3b6467593d3bf4c0b5ad2f583c49c4dedd31836819516aaf0340988
a32701bad0219804cc2b0233fb0c1e1a14e38f0a49b7f6158ef460852e540808
7aec8bc18840d513889f3d1a0cfdf5483897e79006c58b8ca49f8cd65e75aabb
4998acf31c298478505cd405a3e67c7fa39cb849fd7af9eda24d9b9b88eba695
a28a05c6615d54653615eacc0717cb66f50f809017eb331500ef68c111189c7a
cc636da6bdcc1e7d74be3040124b804e97efa7c9fb3863cce06b49c849664a11
76151135e2ebc7818bb0a86d290e24a529ba3b7bccdfa6881e69eaead768b32a
c66db8da98d9df74372d0e6e2135775ac9800dd375653eaac830aface13355c8
9697e33e2f0e907feb3e5fb9972011e2074c57df98c8fe1c473cb783824b6d15
fa23b6230411b5473820b4d26227460725609a41c1a5396e56bef82b20f7841f
779e173b4a018d355eecc1ea268d30f0be9141b02cd64020d6720dd67e5aafc5
e8c48153b96d1502953247068e9f99c316974a607310724806e6e0a677b41c4d
12f836bd94d4b798408a3c1b85d9a83efc5b67db5e0029fbc221013697badd2c
f3386c0d54cab4da116a5a505cd5419a570f7b5648b262d3fbe482e3e3c09135
b7643a944410f37026215a96424ebf225ac66fbe6063ccff80320532017f0cf1
686449a479903480266cfebd847378422ac289a27c2bd7bb07c83717eb5b5957
d2d3db2fb0908eb0a0938b6fe602f6e2faa169e01f095698532c82b4b9628eac
4947920b4266dd0a8580ed1e9f5ace91473a3ad6420074f0ae26583f11b541da
165bae5266a2aef1a4998a031b508fd731245d891b8ddc0a21f879e79c38da78
1a6adb505c4ba5e23690b733371b5e708a56d1511db178a52b99cce520466ba4
414f8d4397b93339204b2dffb0d90a0d20544e148ad378d831daa3aff3a077fc
6c5f1188f86ed05c26b507b14bcd811a17add8f01ca08092d02bb99275770416
981fa31a53111119f67125fd7680ce67f4b5e8ce57cf55a899552f8844d37bb6
b3c04fe04696b7323826d08fc29a6d079b28b547816eef59a398478c632d1712
d0b7c2eac71b4dad693b513b75de385d5d4edb96fd6020e545fa852f66a3c5e1
98a93b163010ac7ec63f5d214f43949d40749c3d7734930d6e0ec19437435844
62c1410c9ce9c8aed55aa71c234141604826ffae31c736ffc4b5fe3079ac1229
952076d07f7a86cdc08b2f7ee34a46c10894048d516d9ae99c6189647fc96776
99d473b07c916204f83aad976e69168ea0b7cff0e8090667404552aa6d2a3a7a
ca89d70cf53d0a34b6893cd442109f42af54237de0c4089ed046f8b26ad32710
e4fc78845ef17ecbf77ef4d0ef97ca1e89e4383cbd0e56938638979b6d527e3c
0b6f112aec12e236d5c074058eec965475fa4c56e47da0f7d8fd852cdced1a26
2f24098ef4e23dc4326fb65497e2d18f58a659fddcbab33a1835843e81c7e129
86fe7576e00ecfa0469697880db199fc916f0d69e196765daa342ff633de4d21
046028af7c38e3ec6ec85504aeff4a2f3af7745ba2575763cd96d028f3fdbf9f
f078164201858c9a1bcadb2180bdb1d235b6cc3f965abcb19c5412d2ec7e7a7f
145e25c664876c6b468cc612ef37c32f1592e05260677b79a35e9a40fa40c5a0
915490c4deafe268e741e6c0350aadbd003adc06f2c876d3dd14c780d41984c7
50121c6e2675f72582640d60dff77482a70d360d210ddd1e6842801f835c9e76
193c403e89df473370be4bb1da34d64875731f7b747ba64e92657fa8099325d3
e96fee760566f26ee1c27437229de0cf241f1587b2ca890baf653cd204e94bde
cb622d72423f9c4237a7d453e37aaa3cd3f413f9c7e50a41beea4b2ae218e2e9
e30da00ca31c681bc17039d01d4ba1ebae491222cc1d9232c1cdee7e22c426f9
385f082e85084ab1fe56bb16acd7c01a00d660cc661305e74d9dc138138c2f21
40511fc174bce67bf0d7210e37d0d4540c6b69c5d7a48397231c6774d639e7f9
657d4d1628710bc1604617b8879dcb742242fc6acfec0dabe513c6dec0c9b10a
203abc494fa2796c5928d63713fde1f5a1f034a65f738a9bd2e10cc0ed325d4d
b709e09671ffe07c641a602322018c7ee363bb2b9393308937532c7c0b1e92ec
5590a53efb8e2f719121dd11de5e6da1bd7b5ffabf9daa95d34409321243fb58
2621017a5875ee9429f15f70e06eb6d7919df34f17838248accc89d3152abb93
32bcbd9625c2fb649896f09663f10c0fee67e670b84b4c9c96c74447fadb9dbe
f8662711b341ca442070c28f189b7a1519fbb068dd45d15d1df82797b7c3d7ba
9f461d260e545f5bc7b983c6bfe4394230ea9ff01bb0abd2a0a2be17fcdc57f9
84d025a4922cc74a4e7862f64e2121b48de74423519bb0986561551799e2cadf
2c4440e9efb3973e80afc96d7d4a413510c2cb9118ff4bfb6f63ab414be68e44
603f9f9c21e3db0a0f0b120461930b2e5dd67cdb4398b85330da185e7cd57ff2
257b18ad1a338304003f23e2384803679feb92b18f3932d5515dc193dc2823a3
bc3637ec78698918d0d9fd09e823298eb6edec20626debccf45a2cedef4edb28
d7f764a5e65a9c0dccacf1a76c8edaa003edf294fba05d7d2b6d5046686c4df1
3932a1ecec96ac3711742ca8ce2c0643d0c0612d3bb0064348f2ed1110bb7060
2515a39837d8266e2d6b94c62153b8d77e4510ca33ddf9dfbbf620e7068ce786
a1161d3c9df486a95f5a38066c631686e6711e3a8a1fa4736993c7c14c382d74
1ed4e55b3fe889c8f254577041b8d48ae1b34bb7d01acf649015f2be45b0e498
063684440cd03d1d73957558d8b2bda0988ba0d65701d90443ca8717f989e0b5
6d3f858b0014738b8cdd725a51e8760874e3fcd760fea813e7472ea5167b98ba
0b87f9c73cfe714bf16ea96ae0a1ee2fc1d616c4784d68b14c1e44ba68639fe3
b4906fe19cb88c68cb79c11be3e50f525fa1ddae239a872ae88e7276b5cb4326
de864dad8333cadce4279d70bd58746cd463cd659f97572c73e2b54dd442d6d9
a07419bea8a7b69d4a4dd454f457083788d6ea28a4cdb7ec2b0f8b1dc95afcac
5169eebdc88e52467a18708a34ba32c4b03f2be13b2d8f2c11e5f7a3dca4ea60
e45736471ee8399bb35bd08bc21db1b3cfca8d333992f577f85c2aba6944b3df
044deaf8c474fe246c0ebe970a6d7dc545b2d70b213228d06008edda8eb3724f
802f398aa6ab859fd0b1b4e6abf27704c9fbdcc8c759a40f54f84508eefea283
408abcc234d433fb7d4727f2723b04622f34b4029cc7751b581c892aed23fa08
1f63fc068ed0e24ee5b11a42a2a4a161c685fd638cb035ca1631b28735ff6d16
c40c7d415075f37b739a7d052062f239b8da40d6ac6cc4e39a2e937e8076a499
527d9c4f491734bca7043a60a28519f181ccf980e4ae16b0dfd9832038722ad7
3e9a56e4b2f630235a9a243b7824df6e0c814df4547f108e09ca2055c8b60692
9bbecb93be755beacceb42c3591fba0daaa7cc9913946766145a0463dda794a7
8d3b17e1cd06dbaa2f472a81515d1057fbabc6ac04b348a2422612155fc8e7ac
ed9ce04b22fe6ee5df3d9475c7ea7c59e293202c374eb3ba3ec357a47b7933a6
b63214818cc5e9ee3542e469e8ce033085db2e47a6972ffdb5d0afba3bc74d2e
8e6df65aedc893ec126c95d306f5d68decfb5ab9dafcd157c375344ea7743a09
ddda7da3dac4ffe0fcfd9394c1e207636ee59755bc8808acfb826fd57d816f78
a415be51dd8fb548feb3d0fda89a1ccd271718785fc545baa504e57cf1b447bf
316fc3596d459d26c2d09275c5a8b20cafee8eaca307369317cd19389e47a7d1
98e81c1457d9f6be19b7c8dfabeed5f4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSL10
%!PS-AdobeFont-1.1: CMSL10 1.0
%%CreationDate: 1991 Aug 20 16:40:20
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSL10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch false def
end readonly def
/FontName /CMSL10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 101 /e put
dup 105 /i put
dup 110 /n put
dup 114 /r put
dup 115 /s put
dup 116 /t put
readonly def
/FontBBox{-62 -250 1123 750}readonly def
/UniqueID 5000798 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d
c6f12e33dd6d45b61272314f98990d08c0f8274e999f4b46af4b5c5da923683c
960face50087915d2044d7211a18e0c22967ef89552662ba990e2dfb9267e09e
354f41e74d44bd80a2d905d2edd60d8829e820c6ab0fdf322964c1ecb6569818
a465d5266d3366d748b412446e602f0cc52f3cad2213ff6ad92c04f6ce8bba94
890fb44eadc41a0c42eda4fe9722e6d4b17a3f6d35cf755d0a1c90d0c2033b16
ba76c456137acee0112e35edfb7206a9cb18dd9274401c70c3039059a583940f
44cc19ffed32940fe8203292e103d2abcda173df85995aee98bf4a1f65ead55f
b80bc0c737589fa10cf51999c634e05d80a7dffb61433bbdba17ea9a7b92f763
586105c8277d6a961d092617c64745450b7df4efa70884f6017d9b0331814cf7
02f1140425eb8bf4c269ec042fde895a7f625c4832c1a143a14abeb798e23b59
f88ebd1414a66520435a4c8f5dd7a548a7d6a2fa96f0995bc0fbcf91b1a1eb71
1026a99d2404b2103bb3626978385830a00a02b6aa820cf33785f7aa45e267e6
ebe7d737ded351c1d4e944733feb30a3e6f81c1a7b74ddc9148b46b02a525539
c54a7eb25dec18807557b6ea94c36db0c91121160f61bd37cff40bb2b11aceb7
5f146be38109daeb77803d8f580f9086bc460e5c96f764c1254e36feb77c48a4
419b9a9cb5ec916b73efcc4c5a698909d5c98ca014b7c8e2ebcde195f5ad44f5
75bd2dcebce29979618bee325c726f5d4967cf0e3f7d35058e04dbb7fbcf60f1
436fade30418ba3c7dde0b6aab803140e6aa7c9808ab4d3d31432f5d4cbc007d
32d7541ccb867f6ccba8bd18c3d18524a692ed2ad29db54d7ca84a618052d3af
366eba25a39faf10c3a730ab8d1ee646f38628f96ae4158bd21be45c369c6795
31894ab2f3991530fdff07a3e113f52c9d92730f1ddfd49b8eab2174f3ca2efb
c88a6ee49177a4c7d48097f0737ab1bd9d982109920da0a50237cffeb319055c
22c3402784aab0b28261d5d94c1557b66a0549c16372da125c4dbf7e1bcdd44f
16864c8d5a31cc7042377adfa518dc9e6a723ad0805a1437c12db7e9a5e86c6a
1cc6df6a0a0c6e0a2b51f8259f117edd3a066b5ea17172664533046133d341bc
0252a6a646cc292b99df77dae633b9d14fd646c60180ed516bdcab981f9f2ec9
a7fe584225428832f70ac1924ee54483d6f0b52d2a28b6c35b2e829532bc7c5a
7853a760b5a8cd4701da36bcb185ed07410860a198abd330cce08fa320b82a4d
b1fa9a4d69b689a57241fef26cd35e72a2cb1a65fc3bbf924161bbdde7cbe9d9
a4b503d680ba2dcb80aa7329547cac5245c5220fa3f97583a977ebde3d4af757
4a20da7f373f393defb94e38b3bd6b0d01f5e33b137c7f978502c8b5b9bce9e9
91a8531d23b7cd3fbc125a591f41de35cb5b8a7120a9b77708e95fa483f710b4
f7712f9cab6bc59541bf770dc2cc9b027ce72c180087c448fa60ffa8944833d9
bb9758a510aa91471099ef147bd6f0ea04fa87e5d008506a0c1d42cd824abf53
a329f97f0b2a320fff7fc37a97fc906fa7b6c3611a099f189c7f96bfdfba5d3d
68df55ce93c8db78220405f5dfe889995df3344907f245c858f5146a16df0559
1341ee1e83c6ad61f2c59b1484d6b0af275f0ec24932ffa9c4e23d49587e1987
d3d531e55e1f60d6e25b58d4f158ef0e0328196d9e34ceca3308bd78bd7e36df
f93f71c26a1a93600d028ebec3d7318bfc99b6af05146a67b613dbc300cc3124
fa7c372a529b919fb03cdec2768c6e9865c507d68a40356358d695fa3fa8568f
a2c8f98ca6d3d7b7f46dacaa05149d6a5db00c8c0729d13d94a684732fecad59
5b13e9929e20872149a5cface5ce22af4d4eb6646ec558fede6b6fdf80f9e0c3
8244b6e7f37adf7ec1f83abbaa7f9b56afe0cd8b75e572580b179c4813695c9a
9bbf3ea5e1a6ecc2c4b52e694947acf2c58b88400faed7592442133efd1188da
354b4e31973b9373e404771bdb563ba9fc0c6af1b80d1ba447d5884dabce0b6d
fc96151e74404adc39c863e38ec19f15a0f3e1c79c0b840c5e393ba023129f11
c8ac236cd926784e9713bddcf2d9fdd7c0fea02c87c7b703cfd18242252a0b2a
f895d2165b8f248b2c369fd9763a1f42edd835deb3f0bb3d76154c2299c899a2
ab51724d05aeb9167068f1f9296f1905bdfc6239c78f1d45f4ba4a4eda74ea54
e030414ae278913eec5271611798d206d222309dfbef9ab3d848f7fe5093ba55
9d3ee2ff165af6ef72a89933d456744594ec0ee15fea4df156da25bafb7e4d5b
2f1fdb82baf433b4d983e659baef4f8baa7424ac215cf10b086d06abcc991611
911dcd33e863c0d44962669540d7f85afd836b825d909c98f980735fc305018d
0f42bdbe5195f4c97f5f87b9dcdba7f4dca9b018393ca1bbf503868db83aaf86
a0577733dcd7a9da530154749e18b2188f46f08950955595f3df7ffcbfc18644
47627b79b82bafff81cc86050e568f95274245c2c12f0c4e102c6177ca3ea2f9
94c786ca217d40016336cbf1ea89e97f56771cb82c
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 37 /percent put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 44 /comma put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 120 /x put
dup 121 /y put
dup 124 /bar put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306462c563d51ecefaacd079732f12c29
315e4b9623a5752c6f1d8145869e120d910b2644887cea7e30b15676a92537c2
9d3aa80dc30082aba94b40990b82fb1a877e805e0c8c48f61e9f2edac05b944e
e4d8084ec1d5cc517aaeec5b3ea379dd011eeb454cecab3ad2443c887c582789
72355673e503affe0394fc7db31de364e4f56c24033c7df2265c56445ec63a1d
5695a6041ea1b94407e1cdb7c5635603a4fd047e6edcaeb2d0da6c9e0e9396d5
1a4a58e8fdc1578730f992435560a6e2d3e3687703ee2f78f5896389ac8470bc
806169eb01762e89b6dc9adf857ead656620e2589aae722c37a2ed7a2941c360
b067ee34d8d5ca3bf68db725614d936bcb207781f4d4ec2ac67b13a5ad161f3f
059add7b5e3d904831e31c20c04546fae83ca93a35989e65c201756888f727b9
7e5313c9870ec96e4cec3901ea03a5c744754485e7d169bbc98bf872d0796e18
9d43b712950c3786257d8be06ab6080b9d9392313298327549a8a41c00a2cea3
690b4a333e45aa815a64facae1c2b44640860b8b8687afbefdbd5b4a541a7251
4ee7d3e0752af3e96a88c95d31fa16d34ba2f02fdb0088b165844f02611c734a
dbcc2037bf741fdea7e8bcdc130c70c33772f777d8bcddf4611db99001ccff14
d7af2bb05defc3480bdab312a0eff2f375afb4e0df2f803c594b7c93f71ca4af
861ae1711932fef19bfe2f9b7adb69d68e5a70ea4d1a3d5bd85231b16993f65e
fb37a0a823f0542f8c2340a073dc1be4a8347f9d3068a6435cd8278b0db1809e
8af9664c2c989b9f16873c009449b6284b85da4dee11c96a05ba83292f0edbd9
2cf674aad6ac1a5ff966ffc37e88a66048deed053565b55ef6bdb8c2f2f67832
f8939a32442ea54f13d003494d6350a2864b427a9126a9c26a031909fe53fa84
63b80c3ffd536c9a5dd29ceb03148dbc24c0033ae3542e26551168a474b72c73
a7e2c34e90c8b7c4125d8657cd89e0449b5969f05212e64175cce0f9f227c758
503083845e76ed1db7bde74af0608d458bfcaac16196958868b1bdda077b3fde
d527cd51a7530111e2f423f712dbf569f6d90ce552e7e2b01ee2451885e9f1dc
3b38dee704b266c9857c24bfb38bf523d5911ba998e55b2d8c9393063dc0bd5c
b38a13708aa4fae46ab248f3e5fbb0c0f7485ec3e706ce440a27839463e14733
fb2a9f59a74f13b07490d409fe13b839673b82723d27ad5f60c3db8538e03f54
d849c83e3143f1738f8638982fd18f7373f0cbc0ee0e5540fd93c0f5094902b9
5eb42e267d97fee49e51650b25f3cff12f904878c0236c2ce0ee16b026a07c55
bc4ddc637d6128891d925016998a2e7b4cb556e660b7c59c207b758261428566
d7759db3167d16817e850ccd7bb83540b0f1b8cc0331c84e8052401541055835
a2f9f2492543083bac03a77ab280e3eef026f1545d72edaff1546b1ed2535162
c155a4803566aa3e23cb0122b48b2cf10faa0aa652e2346265dcb867bb8f28c9
f7c919060d45ab75fad4c70b767aba7a5a24c67557b49c4e6f1cb37141260239
55148984467f26fd7b59787f00c386ab1ad15e3bb52d8f361cf64d1b5101e70a
07fce029a27ded65c9289884c34118b03935a1e63f54fc1895ff13487f846445
01e923a2c27eec34c303c68559e1f2b044e7efbd603e549328740cdf32368780
55ea58004e8da0c795ee6b7c39a1d0e44373bef515c11d964174430b4002e664
c17791e6c20c7f85992b4bd48c1123abe85bf3ed1c2fe0f086ec275794e450cd
73182e96c11c6b2c46a2d0728603605f1472ca82d8c2b3eac52bcd44d63dbc2b
7d528e715bca74809263a7d3040834d97b5ee30f8030b5d255473b7537726052
8eb630bdf89f157665f4cb07d4e9d024e339b577cae0c56237c15bdff447f9ea
70579894a64afa6466a2015d8186e9fa93157cb5cf834614bd7cb2d04ec8b28c
febb155cee24ac64336ebd0bf3d1444ced53569b786236027227bf096c46161b
2cf97da012b36686abf576929a6cadd70cb0a2e85382f2de8a06a4c8837ba49a
938bc5cf94e4daddcbc8920422415041a5c662fd0acf16f3e52cca34835a0527
48a4d8e3255932e10d35410c43da770df8b69f4add8f82bfed7c460c7c1c865a
5e3136d4dc4057a04a65582834168a0ae0613997a686634151d19ef3401041e5
661759a485f5af861f7c926e9b6c0f8d6f2e0868e865fc1c3c66812d5d85660a
bbc694149609f4b10488cac1ff1628de96d81aefd7d829a14521fcd804c89480
2e411e562c61436de70aab6ee307e10eb5edf3325ae5151b5ff57317660ea2f7
f1ffa0cca147e669cc5f7792ff1d2ca35e33935807c6d61436876812d8928859
d823037bdc8eb1dd1e1fae52c8cf27063ca099ded4e0959e64da8b61e774c1a7
8d0def968a73760ba653924959000e5c0f457c653845ab797611b4805a1650ff
ad4448c3c414502667570884df21415620310aa4ef7fe07c8c22480a6b992a12
5b91d03ea7eea587fab5f7cd274cf84431488325d88ff80ee4c173e17f03845c
512124855f4b3645ff697773414be60aec591eaa77a14ea1f0843fc6463e436b
c744e9729aa24f3de2f9386c24f2d68fba3a6250085dc97356121751da64988f
aa9ef707480afd5a49c5399fbcd599c912efe27ba6a78b63ebcdee91fa485a3b
6805855e1f2d7a1ea0883ea25960cda6f9f7a3cd98432b333b9cd8b851a23d42
0788f7382035e90e9581b6a1e5c1e1505063c3f2cc98f6fbff7498631ea05888
6f0caa8a6634c4496369322bbfe2528d7b8f39e38e6d0acb0dff2de95cd70c62
6217cb79b5041a2842086963ebcc06ffaa567af1d5b9726e433a71c2df9d4b34
499f749e0a0975fa8966a9a8065e3660d93f055f7ccf13a0d57f9d0732fa21bf
f2efe890f6d213b60d8bdb4246a62847f3f4f49eb1c6189fb84daba9bc7882a9
41b24d73bfbc853c095311884976ee807b5608b0f5db3bec88d20d7aa8d5ac63
cba9343724f8140d48327e6336b217ad0002e55daa080e47fbb1b34f5d8e37c8
9d459826066a7264b07953c055302aa2b46c9bfc2fb4f5b4664badd2e94b4b41
77c848df90340fdb63392797b76778ce0f35cb9e23ca6f7c0e7093c3d34cbcdd
1479f788852febf0fa199ddc32d780e68a58357a54964143b4b6bd36d17beb63
6aa288be6dc1b10ecc90dec01adc02d5306018d72159ea89a6fbdf56688e89e7
a2a884a1fd089b9437aa3f270314f7b2c5c1224f9b63ed3141eb3137044c933c
8da58b2d8c2413d1669984262b3f5c60eeaad64cbf28d4a12dc30bbbfce80a07
6ba44fa29560a1372c9c7ca0fe576638d9b29ac582633b9d1025efd33f2669bc
9a3c421e8be7c600ea7b8636bf38301d200cd95c2082f6a9ad9357a6931b40af
a3a24a5c8f0257b646d232f640bb2e7fee10df28e7ae82641767e206e2e97870
ef640f74a4ed658063c3c14a879902e5fed8213293901d09687250e61b25e22e
9c13f07f9eee4c3b7ea459d064fc31181d56a1bd957cbbb1040ca22d157a1445
a20e814b22650cfc2f1c94f56b0f63683e8f89795d770254b17bda2ac9f06876
8fe584ba8d067656c2e1096e39467b6130bf1928bf82865fff7ad6e80b58defd
a75053d18bc2115e0f0f09cf456e7bc2e097d6f1e08b0cd83f66d70129324e65
0a85a85e8a46dd6bfca047551e04b29e5cf802b335ecb5aed21e8fd873c0d157
6116612d14f6c5d669d4568275deb47a36e8997aad87a44af15555b8eec11bb8
1f1e29c43f567ba469e0440bacaa5a7a5c3096a4c08670a7bd245e979fc73851
2c09507747cb3f6640c1418f8e0dfdda7aa68a9ac14920842db22401c78ea59c
8a3ea0fe6c720c54b319d8ef07db9c2c91349815564a93c91389e0d3acfbdce1
ecb0c4a0037e842451070c84448ad5cd415b5438f1e7c733dfd3cbe6f04912e7
8277218dc959f495f9cc400253eacd0b247a1d813c01a800379a59218ff8b187
64be036323aa021be4c2df918102df1e7d3154f33bfd21bcc4eab0438195a3e4
674d3be60da2eea5ed17186240278c43e193a57e0d38b188af627445a00cf622
87ea2fb84dea628c0dff6191d7787316ada21caea486434ff7de6ce34d17d03a
ea6d745c8ac3e56eec9986d19aca4bb8c4d238356a040e0ab7a0fb1dc457c48e
2f80176cee294eb9a9276acdabf6d2774fc6595d0bf315beba55cb5298647f75
d679f49243f04ba087ba4fa79baffd0b6c455bbce13ccaf9511d7475f81f20ee
bc338bb646c5a1b60f492b373a9ee11ea0ffdeedb51a7d013e9f97d3d03779a4
cccd3001c9e9642b59608e2ef56ecac672f1e10077e139092be33c8aeb5eadd4
95f666e1ca294bc05970ea956dfe80395e1edf8c8018857934b6af33529ee02e
a470ed50e19fda8ad4f2204e4ed4fdf7240a219d2140564cda302f0751c502ba
ce646d3f257232d6cdaa67b1f0f48f2da4f14f4121218828a79d252ff0d0584e
c49357f4b91c95976b3d4f8a82f7eda90ca1663d6151e73bde56564878491ae2
96d78acbe5c40bf18c1e4eccad9ff00e03ed612096f67e39f022957ebf7ef804
054dc14ea98f9db041cbafed09081b3c01ddb2d3d52d17fcb7173a2369f9c385
9e096f4ccfa5639d509ec16c447b879feaa1f4c7b001ca0ec59add04ebadb9b6
1e17654bc91c87dbf3600ff8af05fe0e9b101f28a61ee55061b1164ea1d70dbf
27931d8a29fe4f20d62da4c951e414b234cb7c1e4b66ec2cd8df18368209b868
025e41402ac4280baea60cf8d716e9c894bd325468c03e84ea268e15bae5cc2a
a1f9f182d00dc1e2dc12cea4b28134dcbfe8c8ef476992d43f33b38505193549
f8ec691d7b99ef14d88da5598b436c2fc08970b5335bae8c42fbd0d7652d1380
cd6d7cc4faf6e6423e3f646e729ecf46e710375606cb3cdb9801db6d7b1f766e
d3b4a85841be7d62b75b27189eeabc954a1ab0d556ab6cd4fa4ec9444a280077
e114f3d08172a358b71a44060e057f599e92170e7fdfa0e750ca13169b31f973
32aaf521bfb193cb90250fe4dda902dc989fd0780ce7a4f6fd7452edc0e077c5
1ec49aa9a35dfafd245370a77b800b9e6ad90eeff372d77706300e6c5b957eda
0340c7a9d483945f4957653f7f6aa992126ce9a5c2f587123e5453e90a006262
d92a1747b89ac480f8c18b1ca77e665c9ccd5eed9ce3899088a80aacee181caa
6dbac719a49d5a5cbc3aed8c5a9e63ec2da5939c9b8d2628621331e1a70f541a
91bb945df89ceaf45e5ca45502eb336d83ef31d1e0daaadc7049c58116561154
9476019fb0005b03f00a5392f178bd538f2d2de958a313a9e9a6e47dde855128
d828bed8722840e9d170a4a240c8e2c2749e3172f1a5a85f620cc03864d951d8
09d6616f8168dc7ee7e97f3e8e4896d47e02806b8f8abcee4aafbd0774359bce
d72cb0a17f418834d390ad80c7c48cfb048f873eae50e901670fc60a0881c021
3176e8948390f74f03451f222e0bac4689d791324192492084ca076bd73a0662
e580e26cf18954109c4493165896adbe3ee90f8cfc5f4fcccbc88157f5fc3a18
75484a068105e397fe50e8fa69634e967eb22fc7b24be46933befa3da53b9aec
0905a1af9e559c114da806f6e4663a8f97ae8d8a36dbf3bb1193162ada6d7a33
d1a021c49e43eb7bf6ffea302c2e4312ba52f901e21350ee7ed8865707f4d057
542443df98cf0504cf24bf328c6bc0def7e8964cfa0e186b9296ad4459c9409b
c2d5d5a8efa40681fe877851d604c85c1646de1591d4d2679a7d51be826fa654
e56e46e9a371b02a1a6fd348eaf8aca41a35b9bbf4f30dd9ece4116826150d02
fccc6237c7cd45850ae1b727e12c78ffa5c720aa55eef9452e5205eed4d27f31
5b9975f26530994291db722ca801d9493fccc03ebea63176242793c2536c96de
a17931b4c7fe52aa9a48c2430c28127fec35440ace4ded91a8798d11de52491f
3c05951392d7f9c3891e179d1d4eb09d0af81e15e2b0f635cb6c919e01777d8f
e6ce0971bdde6a9f9695aec21d879dffd49af1ba24ae256baefb25f0301171a4
ca5598858caa98854725a7bb486a7103b0c541ef761280fd3ff889cc4bb702c3
6bd904cab06836effc9ea959de8f4da0066e95af6a7e3d79c1cc83bcdb8b1728
df0968143b04132773a9089e102fb30579895be097c2c0a44bfd2814d87b3d1e
149224b48a4f00485dd03b8236ac0a78f2b1133308ea110afceae8b8c7dee36d
13ce1a947c32870cde911f5b4f166656f5f264751e78669a1f26f5bee97541fe
6366a708ae8543d685aaede9cd0cbb46a4058d455f9c11db4ba5253dc8a0049b
ae057067220fa8b09a16a80778f6281950e28ccab21020aee99343315d675e1c
68566f559b36ba5bec61e24f98a96d578725930c073a8f5bd6eb7b69bdf46df2
58b1ab1c81d49a8c44398086626999ebe593dbcf84dbcd082303bbb982696214
6e9250f00d4f6a60f5ba4b68cefab5bebb6aa2874457fa3f5141fca080840324
6caa9f29883e43b82e5fed9bb56173bcd023e772d6541bd93f0f43487e1a2827
c2e82ed54973dbdfaee9fe80a90468d9e3bf872593afe6f47bc9bbcd3703a972
376bb319c13e3c8756464136f9e1e3201ca45180810ba906702a253a1401a576
16537827a66235a6cd19a5e6ebbac9f1035e55e123d41aad4a6579f8da8d5cef
23866f333f070bd3f0c5747676ee211becf9ed9748fc6f8d86bb282b7216645c
0d9df2a4b32909b3c6763a1eec1f8577f11f98f7730d8175386e5c2520caf9bb
f740db167f4b8b5e30f7b8754be0beabb02838b442d2efa71424388216a39e81
9a762687fd3bc939258b03dbe825d93cb0bee64f91ee2ae26bdae4638e7250f5
a5a7a44d219d29a79b3055d6ca0b63a7961378a2f2a53bef592dc13d33464226
d0833802b7c5abe1d950a8d058e7bea43693848e3d0e4a9cbf433d24a76989b9
2204ef230f2f80e741f7688da9483561d1c79e5675a46b5ee311445613d6afcb
7655209bb8f17486f7d1082b7a19cca54130148a9577ea884d18d8185b7fcfd3
e393b639150fbe1cb92c73a70a1b7fd128b58109cae68d81c517c9ef6b6d1194
17072da3abb324842770b5e7930c6f0158d560d3f0b14f6a4f96816a16723e9b
5ca50f0f02cf1617fa7e4806fcef997d87d51d18c35e07695acaec7a0aaedb87
9bce2a7aa84b03132662487913b2fbc42abd7786a86ef125455f6e2a61935778
f7c51354bc696f0fae58c460f21e95e03ddd86ab4e1c045ab0871054a93e3c26
6e3e08e680fc129c0d01c8b7576db915e3cbc480a6a356479f03b67bd2a743df
0ff659b54338dc3301ef6dcfba971553c19187bdb8edc36b7caea3e92b0b5d23
bc04be2357deafa1517bc0618167733eaeb0023178ccd44352ac304b98007787
c152246cd1f36102b2fd2b0de8523844eea263f4bfaa9370d2e90f3ff713c5f3
33836b635ceb9550552acc4ed842f5236a45a5e6e4c2f50ff43be57a5134ae45
1d1f939f7b1817349e226fa00167e18e34b59bf48c8fe478e03a79d56b6dc613
17091aad943a73255503c605fbacfed7d1284f9f1885142f185cb5b484f8da89
3c8c483083a63aa36e1bc6163190b8aa9a42a48545b496e33fa8619ccbf321f8
1472a618f324bd6250d2523463ed1ac79e45439e47b6c1a954ff89aedae3cac3
02baa5a1bc869ba951694f5907d776cb488c1d056a7a8a1932a15b710a092061
af59f75bee9316898997fc391741d73a6cd92900d1130e816ab6a240df41a6f3
98b2da71d0234a5bcdde652b67093190d202829cb846d811148ef8cea289adfb
0b982280017cb72f8eb1c4fedf7baf265a13bab7d8f1de512af31edb6222deba
7688e609a8817294c1f37c27383642dd3454410525cb56cc825f6cc73efeda92
853a4e4a15b182386104c26613ef970c682958cbbd7ede8dfa321e9730e73c5f
d58af30e150092fd9528c288d6dffd26958168e5a45611769ec02d7e6a05e15c
07532274060cef7cbc334bfbf4d085b39a6b36b21eec2099304ebea9e345e49a
64de3ee9951aed116b4b8ff7dda945e7eb3a27ce9bab96cec4549b8c70a45d48
b01e1d2671e8946eb13e9df2bf60f2bd6f6758dafe228db119c01c4087b1acb4
22d624d27780522fe214e19e7b2086fd7c4dccbe9cac5cf3b99c5161cb8cface
e810309338495d545b84d49ceb2f5ced9eab81dae1d9d844d5f8a47b030cdd90
87f409b8570d463ea0c1f258b94b71a44a4830572af65c152e0fb9f927023be8
0bd33dd63e625cbaacee20ea6e72740777adaf0143573a8f1ebebad633c8ef4a
5e36fa6be358d94ba3c9d2b7dd36d0bba74bd1b975c1e0a60a2cda48a61a3baa
af8056ab40a5d69e2d9d269d2901c33a68578e98dabb1702f1bbfd0248a828d3
54a7ddd06c62096f5d1a24aa5e9106d1903bb6a8d5ed76546da1155a8f0c47b3
cd9ae8d6d0e8218886a4dc1dc48debda65fa193502faab026085589a74d65222
7e98e53b50759f1549506cbe6b82f315cabf8cb0a3043115b6e5186fd774a8c7
8bdf0be327431a4f95a06155c9965ec0aad7f48205da54941301d0228ebc219e
8136f8e153c2c169f7c1910ef7083f27bb40d87dfdd38123d8346d11f98c226a
e91a7d4d1d72b8e77d44d5e7cb6d50f08c7bfa9674f92eba8e12f69fb641f114
2971b6477adecd0f373f913845c4ca37df73197adacaff9f985b441862f6925f
b2051f00a4ba3541195cbdcf80923e4319a22005b143023be169a53d9975bfa6
bfc0bdd22ecb7bda1195947821127efc46aae0c2c8b6c9a1a430489c6d85e515
b95ad25a4b63dffe8920d4e21a3089db2be41a7fa03b679527ae98f4eda0b4cb
9283b711e27359f2707065a9293ec48d4930610aded888e955f02b95ed683069
c7675a9131cb06e6e586c721a3ca144e4ef762a673eeff6cbf8c98a2b83b648c
c5c44e10c18f2e703bdbe8c6b61524b583e24610638567bfd9455453e820c400
5c0b737561521a27327e8a7486c532a6afd563c19a1d481c5f9b7ef1001e1e6c
2bf0579c860f1266884be46eb4a63f7d86e27de0010653afa10b76373d62a0d2
9c28ddbb1892fba009ce32878489f1b1ef0e9e64d3bff99408ac952bd1481e5e
ed05a3c7442adf483effb016e295e98b86bb22c0fbf5fb2d29d34ce0d656b0a9
3f3c0d167aa21478b711f7eb0e2568358d886148e535cd728589388dbd8e0738
131935522c237fe63b2f1d61fe5b72731bfb0e9f0d6f1dc27caaba9fd6bb4b29
38baaade5ecf75866f3528a826a5bd607ef2fb3b9485d64b5cb1d905d4110dbf
20c0fba3c237cbb2cafd2045b8bf37421f7964b56c70a03cc8807553e4c440c2
12e777919c340b886913b4332c854d4316e8fd7b5bb7ef7ae9f73e7d2e3bbc56
a3a637b2e6cd9a6ff0c4b7ea5ca364244a9733e61f45547dcf10ecf4cd100e8b
679fe0481c15339eeabb12fe30f78ed836ffc11cc25753c9ec6c0bc7610832e2
0d0496c2e17e939cf083afe250dbc1654a632bb998782e2583dec221a987496c
53dc0da4f897cf173418e1b62f499ef8427f8368803b78e39af81c8beeb7330e
4f6eab540ec1e6c77cf84cfb3b45ca9f3e5ca5f99a23b8bb24532d97207a28d8
53a89e4c01838bcb2fbaf4e74fa0dc934c82d42de24e37edfdcc715258a4e425
fad60d1d41d944a140e8ca27e26347eacfa8d85079307eab5024860f1bc2b4cc
4a629443844846c0db20e8d76db1d6500ceb1171b05291b55306bbc63551f302
e84eb34b8966cbfa28f60fae320d22d37de52586c788447856931ef29e42922b
170d48f52217efcea62d36e6408c74997f935baf3bc8f4c824febc0dc11f04b4
408ac2536e48f19f88fc486739c8fab5ce1151086aaae83c3cc1b2e79f49e629
30aa3818008504114962254d877ae294ebdeb05883126ef266086623ee0d4240
93bc50d699541e8b3cb9ff546c3ed73216d12cd908507bc2f6bbb956f25c43d8
056355399bd4267ad1ac3bf9215df794f89e6934dcd862aec8c0e26cdcfda700
fd7800b78dace75269f706c8827c7bb40ad6da38b3f45f872e082ce8cedc5d33
145833d008f2a8f84b663dfec23a14e167efe1c1a732dc561623026c8c0ace5d
2e535a04b06f9d02bf8104803169faa432225ebe6a402c03c9ff8874d39ae6a9
48d6ac91053685231288dce1a653ecd7592b3e274d53ee15058963570fbc7e9c
1ac017e48531a04ed59cbfc923a19d3d10b6bc0cde65d4b6b9c481ea7a2bfb2a
4bafc8c38f58896bf9c7dee0e65c8a40e2144a324155796218c3d431a6b9c02e
ffb729280bfdf0be8f0172ee2b3b44e14561f26c3e64104bedc024ecfdc427e0
32b356a97603284498478de839dd8a745338f0b79dd70597e8dbd6bab5896220
9914e96cbbc9c1dbd1198aa3cff7696396b850d69e3c74bfa368dfdbb5fe3692
2f1de66027458613c6b0a117fa9f8ab666757464ed626874fed92e4f346f9df9
10c6b89cd5e86bdccaeb5d68e986d5dcbbc97a900a97508899836238d56af7db
fcc1e418c97315f203e5cb011e49c48153e89d1885672be95f128935c78f484d
437e1be3f602e3a6c8e2c4520580934a49f9e2a3cc1dd054d30a696e19c792e6
e0e8221c23d2ccf3c145f2e4338acf366894e62e3ad3e83c2688be621f8d6ee8
183268baab547efb0f99a75a99826b1b8c1857a6f023296ccf590dddc0a2d076
2f00153fa624c6800e0387ecbcabe5289fee77e321b30856de44300d83c808e0
f2944f205bbf1d6128c9c56bcf6f704d2760a558831fe6917fefa026b273c53e
00d9e3566f60d97b8296a9e41c8b99a53a4a7a0800268bb3150303e5c43f88d4
b2cc1f508280f7395551cc227d29571a2c36aa3318ec0c79e6c62e718a86a05d
91e3931705bac55c8b8661672435ccee434fb2a091950f3d1610fbbc89f2777e
596ec8b25b9b0bce3af93673d6a477426cb2f9889f6725d672c0a7c233e4249f
83b823b636dee9b1bf945b03016dfa8071239b2fd9032b20e0dec9db7adc99c1
3be6cc23962d167a9e090062e095d8c2ea99d0654a8fd2cea3f8949adfd8448e
1453a350a0cdae56da6e9a7f85d0663d8829611c926620a61e5ba69b87a803b0
a4a07865a8cebb52a70278db027e725b3099abae9ca7271f6cfbed13d33034b9
5fa394c36f720355733b4ea39fba8da8fec3e848d661e3766d65b88b5cca97b0
e44af26ff820415cc28aba286daa86b85913d5facd86ce64dedfd1fe86445b4a
4f0cfcf2ab1aec9f31a61ea67c72176563b4955be1894bb7911e64ac72094a65
096e0c7b3ce5395a64bb3c4c60a976fea543d7e9fb85998942c07709c9fb4d4b
603cf9f40122c1abcbda6c128aba6653ffd4c6bdb9fe1e98266e38578c85349f
c3f85c8d2557ef80469ab86c33bac48b26a1b1bbd50320ebd94dcdcf1ea534e4
d240f8887176e0628632a9f3788778e6d1ac0ef498370bac895915692e05e052
782a4eeeb460807b989fe0755435a98aa203748fb40bdfbfa6d89dc63a7910ca
5cc1c0f482ba7d421e8028d6d126d25c349671d2c621d1fad0c7e54b057562e2
e5f137b2eb847daecf6fed7de6267fe829c077653cbcc80cbff801091bc6d10c
29fdbf53ea2a9e130a2627daf9ebf13ef42f1e68aaeec16d86ce5e191df538aa
061a0bae0ffedb60b4b8e1004699e2a017ee67521cb8156f4b0d8ef4dd4695b2
c341884f10abf61243a48bc6bf2488b98d62c500374f7dcef375af1e0dd00a6e
9a22c66d7cb9d484338a7d28ec4dba32b3f960a0b8e9e456e7648523f6d1db35
fc9c621ecc4dbf1131e708769daf0840f1faf4e4e8b351d7f31e4d7c9e2ae655
88507eb0304f94e489fddbb6ad3519f13ff3aaa02cc7d7f69f4c4c710f40cf60
95f4cadce163f956b92111f2c7b2b80cc98b35119efdc5fa7e2af6b2cf81d71f
d69b1bb7e6bc5d882294554fbff69a124033126d389f3b9f74bbfab7326ff977
bfd186dd51df11d7fcc0c28d18c4108563d54a9fe038777ff1cae1ba1ee51c27
e769e669f7dcb7eb8f62a35ac9be8fcef49c08b8e91c127facc3eb1e2cdf2a87
a8c2ffe7481514b03695e46da144151b73711232b441df494bbed3ce7889fa82
bad7c81dd28d25f34775d6900725eeafa05aa088d9a4e85f0ac942b106e77366
2204f5131bd4130f2093385842d123afa48b3c2a698e206aff8d46554143c897
df120cbf91c0234790498fe43c9171ccf9349d3b227e60df562cc46e53ab48cc
5d3bdfc4449e645fcac3557949db0ac1809426470b23d538fe49be8048166aa9
acf35d14872ed39dd8f918d81161e3457bbd0321163bc1f8d1ee381d52ea60b6
39e444004bf6deed30583152116774a6c304cc1bc7e43d92cc8835fbc96c5ff1
98cc8dff553d2ab952372f0de02df730e2060643c1ffb744b60dc75cc32200e7
d71039cfa696a8b00fc5c88ecec019da8f0592011274b81a47babc9703a4f34d
ed0b6a0d57c31aef1c16149c780a5b9f0365adb816578340de3feff553a84ca5
16ccbfff42bb7896dc6a767e890cf583ab49bbf60b57c19ed527aef9f46ef5a2
4f5a57c98c461c913b9a5318d14930f88bf89878347e23eb8962e611879c0dac
7a915d06f34c55658696057f7a3bea6aedc8098d670f04bb58472f2d4127880b
634e07acccca41faab1c40546708b86445184454d7336495ef5a3043c0e0360b
841026d74bbc890622f6f68c983669b5124b61a096c9375fc2d3c686284b61d2
55f956d874f55383a17331aad20ceb83860170f7bf6073b84d34a57ee4cc002d
bd34ee3edc42830589e546986062b4942991618b214786f48f41b0698366f2a2
ea39adc2f58677cd61e9685febc6ea51d4f3db5dc4e79f03c58cd498c84d0525
f8bdcf9345cf20e251880157c5c0f020d909ce5246b78cf0d9d0a025194a2fde
164c1550808c903c5028
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI5
%!PS-AdobeFont-1.1: CMMI5 1.100
%%CreationDate: 1996 Aug 02 08:21:10
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 104 /h put
dup 105 /i put
readonly def
/FontBBox{37 -250 1349 750}readonly def
/UniqueID 5087380 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311e252234d51741e18db3a68e8ad10242
29e5817a10e796a78d2c7f7c1f50961b9a57aa604c9f821dbf5a9295197bc666
31678d7d2c7e1f8f2151ce0c29efce46270570f4301c5dad1b38884732e53dad
05dfc36b020e726ca575f71f04abf2b49e1f1d6d2a08a477658ca9a48f1c8cce
14382f0a42201de56e2821ee2b0e91a818b1b753d810ec2428dae5153b66af66
9442192024becf743a8f6264a58a0b3aa823510a4957d1bab3e1b83135362888
3e392f49926471a8021fdb48637baf0abcf31204b1b214f48c99f44af7782323
69d772ae4f49be53a1bf584747bf29b94f530d59a5be5370b8dd0691e32a21ba
9d0d592cf3bb50a99a3ecd18d6c4114cb4cfecc49705da90d7edb10e3a28f9eb
a49347a09d31eec896f2a28e9607d99d42914aea16545c16e136bdd0b75fe486
61e24c7a9e9b233a76754c760822d0a88c575e08ae3e3f081d7bfb80ec4c03ac
a08b65fb6474f71fc95c7c2462f2eb3754e647c29498288f2ced0bd3a2bca5c3
2f80a61fa667802d376cacd34de1f9572d1b3ab09d6f352750db4a768f869638
a87457889aa502850427b40e1294c5ba33e6b17532b2d13b5f50e71582f93daa
231e86597872a2a968127afb0f36257a76ce1eb24e6c4f29fce2aaf6532fb5cf
df84da03f03a45b915209f67d398c7c4f7a3b0623750259087a478dca684b29e
a8b7f52060bae9394369ed1cecc645d113cca3772a8dc36c6d916b5c5e65454c
0a188a33395fd3da67ad0a31ddab6a8434dd80f0bd0ea1a2a62eecc331d88b3e
369552daa1c575a98fe84383548626b65be7c24ae7eb61159f149872cfd87cf7
6c1a7c155c7186c7600e58cb61b8cb0c5dea98268a39e928bf6fc53985eaa763
2b28c1eb3d82e4d3fe225223f4266d2b6147e344aad2d4884a9308aadc7801af
a606838925e3e50ee7aaf73f090baefcfd4e34b795cd92d83c944d91a4940f2f
c955d727ea5bd76f0c8057b12621eceb0947b0a5dd10dbcbc52957dd978d7db0
c794660afdd4e946b3d7fc1ba60907fb3f756aab0406c0e7bce5a2238fb3e12e
07e2c0a7f465e90057642d704434ae0b57bd46c8ea91ab2a386e24c6deaf9cb0
8cdaa8fc4ec3fadc06bf28659cb878453db16f4b03925b2127b83be8fc240f33
23ea950b51d70c8fe861e30c346efa0a0125137598caca5478991e35f5bbbc19
4c787488ba339830bca15f8333431902e82b66a514a41c0bff92719a6a0d9587
4cff62c622fc61a0308a69f9fb7ef51bb274ce9e059c04b64e817abdbae54a44
d411e0ee216ee405bd68ffec694d082ccaf886a16b3edfb240bfb77e86843d8d
fb24c80cebb3a5e0c4fb26c974190ae130850a0d4d7c49a0e644dd5f2d03a957
6e064341f89fad712254928be7dc5a38b253b64a3dc6cc3a316ca8c6c7e88b7c
2f734e77acb1a5a7063187fbda19374254c039072cad3926192aef41fe0eb704
5152f118af39c36aacb4496dec42fed0f241ffdc2d571262c0ee2965316eb174
8fdc81502ec12722faf9b323842de7840d3923077be02617dd334b207d2a178e
1f0cf1209c9158c91046421232cb420447afa57d82b0bf5e1f7b531240296e77
e2496571877643b5706bd12d6f85b18a5cc1cf5e86c8d8f6e810e7a71bf6e3e3
594e700bad382703c64bd60088a8951a641a58afe153820f52ddf9a12e6e0589
e8317d27e8ad2fe3ef0e4a82a74da7283354a66348da0e6167236edee4e39e91
3134c0d025276812af0b078338d8b51e397dfec3fab12d39c7b50a272d7ef16c
2e5060220fff9f518e681e4627ad0dbacf248b1f5c35e7139378da0358578965
a06fdeb8323694552713df1ce18c06b1c86a20759431f277289c315ce8e8700c
e307ba94fbd62d0a824a6133728402fe38ccad315c0f7dc956a45b60e2ea0e14
5659cb45e3345dad04cc665ebfb3f5aa427019935ee37111ff5befcb7872b01f
7a4cf9f9a3f224a7e6e21337b5a391910242e121667ac34a408b9b3f68fbbd86
1f1d808785c5bb11d985e5f58341b680645d2599b631b4baecae1d76d4c83c66
96aa8fc2c83353141945f9e49f9f27cb4990acb9367ec4305c686338e0470e2c
0546
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR5
%!PS-AdobeFont-1.1: CMR5 1.00B
%%CreationDate: 1992 Feb 19 19:55:02
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 49 /one put
dup 50 /two put
readonly def
/FontBBox{-341 -250 1304 965}readonly def
/UniqueID 5000788 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de
fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202
3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4a71813d2ffb26
445026f89b4787516ecd1afc78f8bd19e91e9ccc9402e8c36d2449c1ff850a8a
f61165aac3fe931332dd28e261b91b05edd18f44ea7d58a8f35fe88493b64aad
6bfac3a0136215fc2f4ca8e91d70c5010e6f4013e6d63b44f6fb00afdbd7cdb4
5ec5b1d9736f45cefc8a0124b815987cebd81bbe0d44dedb2d5ef37923b3d551
abb6a1cefca7868fc7bf3814ef7d7b6b1ae6e869cb77aa29e3d90b12b0dc3ff6
ec945922b5899bbf2f12e92731486d2ef1230c528bf8d7e0ae09ad7632a38966
5963de49d1ef3d65bc483e4a577b927c940f5e121169ba52f6576c85793e5fd7
7f5863c488e55bdefd5d8b2514795533aabbc12e7f51816c7e1484f1c441aa9a
66a5dc77158e79cd6692d299b95e8058b35e771a6972d2b5eb1cd6d2bb8e835d
361a6eac0c90c906aea1cd75c4412a1339dc1439f93e59917311bf20af4f2bc8
bba5a4626f75f28a47d4595c37f4019df480d9385975159142618e22e964f019
d88125210e2ef21d65baf500adf802297b24eebbf4e93c617a613f856bd0d45f
e17a9480980ef83950bdb8ebf208c895ebc4a7132f0765b7c19a332ebbf8a3c9
ab65063a42e19ca9d43dec3de7aba46b9a5d24fb93d615c0a1726ab7e31c378e
ab77150858535b91362ab0e2b968dee1c539964126d937f9d4980ccefa92bc81
b054996a65a13995c9c9d819ff05511cfc89cbfe67447c940405001d61be633b
b771eff383fc6977ec06af30f981504260de7b9ec97359974734f495ac073935
fb30e3700679092ef5d971b6b2da0e15960f2391fa6b63c33e7f56b4a9b86951
1d3686a5e8e613a69a0add8b8c73b127ddcd397a48d785079e786d24b24c5e6c
ef3ce751da62120371d4edc733042e2a6661dc6a3111f38f0baec0eb2410e8dc
1605312e5cfd3f3c89cfe4913fe33f71f1546730d31261296f78a1c156b4af7b
b27af1a0706f57d0fe0d5c7b18aef611b69c67ea9ad325f159b826404c1e6f08
89105b670bbbef3e3dc50835c71964a2e992354d26571566eb6d7bd7938acb12
486336dcb8ab542223c6811d37c95679b796e22cf608d05b3e0ab856c5fad35d
990d789bef73c3d17dd66b02adca2aae2fef64976a04310219579a91aea4404a
e87f66aa06ba008dfbe8c02a0a74e1d0aeb5b3feeb1e5f20d8136c0020a88677
cb72b8e0e7d5c8c2b230baecaea5aecab78e9bd97bb59018a30aaa15cfd0a1f6
fdb877479ac66003d3f3a62f76469169f467078712ae99862e398a6fba3a149f
80aebd858e6482dd5dc8cdae093b74ca98e10683b08b501d21bb5576e6cfad67
a360b4758832c14a056ad4a6528597cd9a09b4048546c50861918d3bca7e47c2
07efce4574d42b7cc18f61b6d57bc513f6a659921daa707c3ae900b85603258b
b6ac6343e09f271e5c2194be84d3140266c66c6abd21a461846ce317312274ae
3e6b0e61a432c18dc19a68fb
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY5
%!PS-AdobeFont-1.1: CMSY5 1.0
%%CreationDate: 1991 Aug 15 07:21:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /minus put
dup 48 /prime put
readonly def
/FontBBox{21 -944 1448 791}readonly def
/UniqueID 5000815 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f059084178f5ab59e11b6784decd2fb36dec8f
7478da853762e00bc9c52ba86ef50d222ff142abc18e4fb95b86b3e57d9390ca
86e8de6347bf7f48f93322a372c5d7830521b14e8fa0771961b027c81365426d
d95d16b950e216a90f28ce806244ff28dd969cb512a23e05045e7b2bcaf7d6f0
ca8b51494f2ec0681bdfde60420628d9bce98a0ca1ecca9140f452a88db19a30
ed46ae881b098c843a51d06f9a153489357fd24de6a0c36cb5a9eb9b3b64dd75
18f83018ae7cefa1c12fd205df6880a705e28457af7b869a6dd28f6b37d82cc3
e51cba348dcdb34efb119b8ce5a996f15492b0f5d34538850a2c1b6a509fe5fa
015eceaf28b6f9385526e98445876548d0f2a09cfea14b84be3721b51afa2185
90c7b9ca643c7f4fe67cd8985f27855c40ae7ea592fadfbba29301071039d18a
8a6880cc0bff22fc8af50fd2802aff5a96381fb4bef240dd26b34a5461188ca0
c85e4b3f803f94dce14e8ddb2284e22abfe148560aff784967ed795332cc0995
80b762f864b2c15bc640a4cd7f6927c7dd95aef777fd226254b8e6e1b8ec6483
2750d9929627c4cecf9f5c8feb57a2c7ee5d1315593f3fa16c7c7292a594ce14
2c396d9b787665569dbd0f710822ae3155a3aa53d6f055cb19e897b235b65bce
4d507a4d41edc6a09dff1f737f2711478e6e998218b7f3e7c1aaf3938f68e9cf
9ea46e4a2904c459281cc156f5ce80d6356e357011cd0bc383318129bc8ce38a
758c05d1205192a457f4b1b31df97baec7611905cac0
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMBX7
%!PS-AdobeFont-1.1: CMBX7 1.0
%%CreationDate: 1991 Aug 20 16:35:49
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 104 /h put
dup 122 /z put
readonly def
/FontBBox{-55 -250 1289 751}readonly def
/UniqueID 5000765 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be79011d1f5bfae5c1f476ee6f05eb1d2caeb
269958b194521197b1ee2d9de5f5346241e154574f14a4532b35968596ef7a20
102dad629475cf5d654585d4caac68ba7b2ff21b103a98af3e9ec01fae180804
26b73d62e93f0328ce7775e81898de587dd0fbcfe98934a58afb1aa4dd8c6eec
d19373ddd360a5e85cdd4b752b2f2baa13b48a282214a05632d28e915ec90824
21ff8f2166e940c7122c583f235bfd098f8aac0f1dbb9a625b02bd889869664e
f1856608899ba509d6eb8ece665afc34a459dd5b54dc7711f6f04a288214efe4
53095e239bf19cd36b7028d46c07a2b8c17d452d8563ea88a3bc5e5ea29a9ea9
a7e38481679f893f9e6a983ccb5512bed4aca5888793526701796b3fcac0fb62
f69c66d0688eede0fefd590fbce954b2cdd2abc9017390077a2cf6f6fa7d0db2
dcb4b0963e3dfbf02be1dca9cad104f3d29495d19337fbffdd745e1729e7c0a6
41fdd3bf42c30d715670b3ade44f481d795071f1b24f4f03dff59d91bf9d678b
4560da27ad826c9fc8f8cd9a333248cb2007b4ac0a9e2d5c044774124f1ee23c
0e3e005a4a16e1d0cba15797fc42fa75cb45b24fcf8a8cf41de8e06388b5f995
04454646c3246074f495564cfc8ad75a949cc477ecf03f0511b90b6a7456b730
cf09773b5544f6ec17a9a179714e47e2eb1142d8005bd228affaa375eed7fb1b
075b3023be6386f3805aee05b47c7f370e8ad410110429d2ee8801d0d2da9e68
a453a323c147716ca588fbf563175e5f47d1086a21b04102cba338a3580225ce
00dfb1784fbcad0fcd11434afcc2ec13337ee24775c2952be02e20572aaab17f
d21287775e4a4d9fbf877a487b252b5c880463541489f5578c7472d39fc27320
2e4ec86f9935ab2ded14ab9ea36770d79a1a72161102412bc57c587426a39c77
b24a0746f71f62d109484272b90d2588232925f239183d68842015db2cae2c38
cbf862632683fb120f22802344e8345bb7dfd941f7c1f2b4768de7110dca8071
9ea2b23f0bd4ea358f6ae7bd3077c58fcf81b3d1c1412ac4dc0440eea46f6591
19d0b5a60d0c2a737b0de5e3674e5302833e7b710c2c7bc9cc774e2fa2b84502
7cd437efdc99f957d7cb47c421db259ac8abb35233a68428cc21cc5747bb1774
30ad370a598a0d05ad7d898c4ff76beb167683c9956870f55da2f3e1933baf81
be5afe73b41ca451ea1621562285d5256bcbee9ca084791e5709841f59b14e4d
038eeb7d23ca66f492f3e04d69c753aa0efbeba2a0dbaa5e2c9abb8008e01d72
6edee271cb9ab9fc67eb982938c2b8eac4fd2f7d94a09b247a6e916ab2675818
5c092e1acb9011398db560d045b56e22e25b0ecede8aebc789711823c53c0920
5ae44ca8d1dd7c0f9a940d5f8a55cc4831cf84f6f547d7b7f1ae482677281fee
d4bbd80171cfb3a1df4a56c96748f0cffa9ce0c8403ee4e42e2d527ae9fbbcdd
be47402022c1a759b53030e5cabff24b7eeb9b3e6eac
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSBM10
%!PS-AdobeFont-1.1: MSBM10 2.1
%%CreationDate: 1993 Sep 17 11:10:37
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSBM10) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSBM10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 78 /N put
readonly def
/FontBBox{-55 -420 2343 920}readonly def
/UniqueID 5031982 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a
e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4
d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828
e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4
7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80
523f59a30d195fcf9b9fce4ffafc6d56491bdecdcafdc988206c5a457a19270b
37d0ab776e03eaa7eb568eeab6b5e79dec03b0dcbf923a2aa8e4f4deda2cb043
858d8b430efef0ed914a80ffc9818aba0fb30dae3694e5b31df3855892d59b89
7f82ff79fce8444c7926ffc4ea008e63bc518936c9098afc2d1c14030a2c15bc
c9285c1b57e80570d2f6301009e63d9ddeba44e3251c75ca9616a2c5de9ade66
1a15db37b40b67c1bd71f77343912c62f47dd24be0e03dd833ea60d2eb020407
eaf042fed30f0c2f01956c83d46d982b50dd979c2026ed5f71979dd98c9c1eee
25054000a5eed5ce9498b2cb59a7ee55e0538ab47d86e69b2ac79229c8c6bfc9
3a24e822a2f1c9964fe630344579a25f66646113f73d1315c447f070c575de76
266c6773b01137e4a039df5e4c2f199e8e3396ef9fd001eebe090e04384c4089
ec9f13a07ad8733c6af775f432f154ef50ec4477e08760c03c006e4d1eb1c7cd
acb8955ca4b0d62c7de046ff58d431bb9883d28586552c51809e3ced4dfc2198
b97ad9e52ea33c91b9e335a80d9b77d3430e0487930f992459664abca5dd9177
150b0fb502fbb04ccaa94ffe2697ed07906f95fd98e7b325bfbf10ea6b39fd76
c1e5295022cb39e9cd471b7b0b3f9d72da99deb0615d35cc22f42dbf5cfb70dc
6279fd520d99f32201abf25e621cfe1d37961d9c0ad36ef3d9264c547638152a
be30812b1188a10f6327c9e8714449de2ae636420f56a44cebd774f0b131c629
818455cc8dd8d40939f3ba8aa5abc54590c7286b172193c23adb1b4f9931a9f7
73b960b1f5b760438028478e4442dc93a567b07e20017c18fca2a1daa2649dee
5a6ec51fd6c3f4b27367c31e95a56ba4bbeda0493bc02306037e2ba69add9b94
373364db316691e73d6811cd76fbc92b0c67ca18dcdf05807f17d1b309456ea9
d113ea0fccd6eb73bd8dfdbd5905a5e38bbf61cfe58fb01ec95a4bdd9565433d
4a7abb8dca6f76c45f1fd9d21e6db10d6ceaf7928ae8b00f2dded80901954281
b65ab541041dfa20060b17b3605e518db67cffc097304ff8c72cfe9384604791
84ca6277a7cbad21da97cd16159f554d84359224a09f5cb6887f9222cefa2a8d
9a9fe908199abe4e89680314002cc52583f20ef690437e5261ddefee7fb13574
05d0a308bff33aa4667d85a98e7522b851ddab7c86db0940801f0ea717de2cbd
fe7cd8111194d27fee3f86791b23ed5152711af9d51514d88f63857bbdb18974
7bcc25078299cd15cfc6e3d8a9dc61105c162570007a49e5a84795838351299c
1888f70c110e7bfce223a0e6fdc2498bb1357376eb5f5e5eb2da3e2f9a8ade3a
ce391bf14312338274a305069f33249211e229710e7d15a722c45b151525683e
1d15ee1b3a73db987b0a91b90db404c42f48c234c4f6646cbe63fd04138842bf
1f16c4cdeca6942c374d13024d1e122d199eb93254f47186b2915388e5bd4a02
eef57ebde639f2cb2c4df5fa9a85033240297b
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /minus put
dup 1 /periodcentered put
dup 2 /multiply put
dup 14 /openbullet put
dup 15 /bullet put
dup 17 /equivalence put
dup 18 /reflexsubset put
dup 20 /lessequal put
dup 21 /greaterequal put
dup 22 /precedesequal put
dup 26 /propersubset put
dup 27 /propersuperset put
dup 30 /precedes put
dup 32 /arrowleft put
dup 33 /arrowright put
dup 50 /element put
dup 52 /triangle put
dup 54 /negationslash put
dup 55 /mapsto put
dup 56 /universal put
dup 57 /existential put
dup 58 /logicalnot put
dup 59 /emptyset put
dup 62 /latticetop put
dup 80 /P put
dup 91 /union put
dup 92 /intersection put
dup 94 /logicaland put
dup 96 /turnstileleft put
dup 102 /braceleft put
dup 103 /braceright put
dup 104 /angbracketleft put
dup 105 /angbracketright put
dup 106 /bar put
dup 110 /backslash put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8
3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0
aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a
9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4
9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa
4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd
df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79
c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074
b64c430023345718f6f55ebe3e3fd64fe674ce4c36ceae14b574c9756aefd78a
dbfad06a5dff44926bb3e7d550a8c955eb197e7052a53c123e189f6720f7b705
9a311c2b8718181562342ca18ff3261d0a2321342fc2a6a0efcdcdd7feb8af0d
bc72922f817eb435bed52d73a18caa7affc0dfe2b0a7fdfed571d2e4fd87bc55
c99c3a77f1a922d01b9a7db754f23b4332b5b1539241dc6226b89051330cea96
46892a1dbb9533cfec5ac57289496cbc9cdf533fb7f5347d0c22b0b22779ffc5
8189d997fd8844e705786f59c1baab3415186f816d090ee07ab0960d888e8b2d
536b0daf7e2b92a5fc35fa3a54ed41e3736be1bbdeae0ec7842c4afec1802231
eb2a4797b25fab973969fbbcbd0cdbaa53e621658c0124f9c8b0659eb7c8fe06
6306e339659c132d39f8aeade7571d0cdb184827c340873e2aa349e1b3ff64c7
53e8db719ccb2ed3598522fde32a9e36e592fc5c38bc43bfdd5ded724b08242e
e47057d2ebe6e19ab002972b4e363348b587a07852d7aac2cf65e69e112c3095
54e3857b63d8aec31dcc03a48cf008dbcc1f2e9a3dc9dc2b681bd4e76efa0f7e
77457368cf2157c5c15d6d996336d3dc3a8d2989ad88d1aaec203ebc3e64b127
b56a665594b9ecebea2e6c7dff1325e5c57e1d879c702fbb2785cac2289cbee8
41918a61eccf5ea0b26d29e288d25d76a222e6378eb49314c7abdd1ec05cdcf5
e10510782d8123a0f527fb7081b79584c16277216f1d22cedca572f86a6073ff
1dde63997521ee132459b8a3e957e5dd954051d4502280ef79deb76ea418ecbc
b08489583a1adaafd83bb9d90fcfe75dfbbd5592ac66bec2626a733c5db93bd7
1e3ea0a366a9fe2901b53a3a13721a6a0ba6ba328d838fdfe82085988c688b3c
01079178d721064d0e76e41f96156e9ff97a0cafd26188d579ca1c5cbc24a3ba
fbeed4966adbaf019c46fcd07c289131605b6ba887e52c6c46e28824f3e2f758
adbfa8838a4d3adce71544eddd42dd76c47da29b0e328dd60dbd435cde0d22d2
c3623f4e62dbfbdacb41513e066019fa4910f6e6de50c4baef249673f534a5e4
61d310faed5d1b582d8277bd951e93018ea1eed292e3c276070c759ee043717c
6dd9a8ec1d37fd43d3ba3d9b9e5b24297b7296680f3fa309c429a20ab37c794e
d54f9839d792f2a5f047585668f22e28e4d12613c027b71bb891947ba649d91c
c2816da726970d343dc7b8781abbd581900006aa3eae040071297e85b451e6ae
f2ee18b011cfd28c60d43177795d206ed4d5fa1b907a759794225909b91dadfc
9a6ab79530c72114528993f4bea9f3493fa2ee46ff9d008fbdb87404f993143d
e3866c997dddd77b4e72aa6f0d7efc45840e7fe22b49842a8bf9854922dddaa0
a3993c3e5caf6f930b6df2b19527d876d60d091dd9bfb4911aeeb5a87f64280c
c6f27730f2633db16045d61dd67558dfe750eafac3b4393a81e346fcf2281a44
a262b5d60d509fe676eb9bd4ced19501e07a377197e625c7229c5097b6621715
831ae51b0742eac8202bb45924f73f734e54b81f3ef65480066846e349b35b61
9721f6eb0f949e4969d2d004d4b5e54b86306e175aa2c7f7627a58c4ddf545c5
d67151e96990171bf51a36fd07432f0cc19a879fa27b8d85cf339d793ba1a393
74d9d128b796cc9596fb8b25ca6f4858ad277d583d02dd0c237e9fe85a48ed80
4db7a52a674645e7242215872a79ff86bd874258fba04d9af020818aa63d50a4
84e155f7e937e003189cf2beaca78b4f6e11604ede6d848082394b002fbcf99c
ad17d72d95c025945f1669e46ba9a883f93507586e2521878d12d193dea90870
720fa14f8a0b286d0dfc5995c9d9e45f4176fe5c42619b2ba6f1ba7f0c73677e
a187e4f6d9e8a1113c4dd87cc4f040b589dde41436e8021ab3525e7d005f9faf
1d0d655e1274f9d6aff451de3d297352c8f3d3d5f2000aa7992d507ed6de0426
a20667f484f350002f281b412740de26aea0d566237b712fd629f7a380a8eaa2
ce861d7f507ac58354acd366c2af79a48088b09aa5d23b60b9565ca96dc0fa1d
f4fdf30b44cee446433381b345544fc4317faa07b5bb8377a5916d872d4e41f2
b16e3ee38f47e9c7392924846a3d58705ece64a9c0db9b4f42d2eb0a8e49d7e3
52769b3b7bc8bbdf3136df279063101b24eeae3d62c396b3bc62b8bcd96f5207
eb13df0efa0ce4d60163a2113962dfe34377c2cdd92455d1104e02a5d5ceb4b4
c6c1adc074d64a77cda614862726cf0ff587f4c959f450832f66c939b25b25fe
f351098b8e49beef5c587be4ab02fddf9d34812021c62cf8f11435ee7a3ae884
a6a4f10dc1c55c00b7c4aa0cf9f07ca180fae2e7c14c2d2110b78060ad214c21
bd62d8134939cd28ccf2cc878eac0e6162182879e9853a225ec123ad9d3ba381
d5e767db51c61efd004b4b7f5a0aa97e3afeb7c1efb8917582022ee9ca01b4ef
749df88fb6cad44fbcab18085b7a5fbcc937324cb5b2713709ff62e160b297a4
9ec23435a07374526327e45af90b29dda4773e10bcf031eefebfd84013f41d82
8492e9055edf5dee4f31e1a8e5b7c9b4e973c3c42888263d43523bb07fac9c55
48a1a703886daefb23cc65758cb8d4c9f7a6549cf7dda1e505872ace6fa491f2
5d7993e0f260c153c2730dd75a5749c50b1387cf6d8a8bf43fe081eca3819bd0
9a03708aabc2bef8a8f438cb2dea06a6645ec3994461d1a1042134eb75a32114
ea6c96aef8cd57bf9713803d82c64ff84d3be8f8c9ceba55cb72ecd2f8ede1cb
a8fe67e34ee3d141029e7da3c703d7ecf1f5efef98fb8ba3d38a76f2a1b402d0
eb054ef05883670b491fdd9ee1b8fb49a1c895e2eb939600129e21488b717808
f87577430498382e48adb053918adec185953649fdc11658f130106ae7ad486e
7a2d994f884269aed1becb8c2dc6b4ead2d1a5534e842de1d030ff5a5c9fc438
12a10092d19c8e52616582d1939c4ec408bc7fab6acb02a29ede2b66ef0bd8fa
61ed4be59f7cb1fbea0bd4de48d01d15c61cf2cafdecaa774a2f0cd012b88040
adcbd74c858211f3275415182a959f7723811071ddf541771e8d5fd7859ccfb1
809332e3da3a0591f5efe8973a1fb10dfd07764521765171747c3cd4c2c1d0cc
1c57521b46817c2576956ade7efc389b3e6ae972435783675a34f359c35fefad
1bc55aa25283968ebae61aaefc9aa3bc14f6548739e03ee61c12c230360d3e29
3d2413ba1ee15950cfe0b561ded0c3653281d90b0225701da78c5233f4759308
4f078920f61be06e0c500af148be6d8f20d3dbe8867ea5213087b10bef50f5eb
969968b5e56a7f9009d9171889a504be1e5a98dd0de72f30c2239a3620641420
d6fdbda006fc3a22b83055cc14c1845ffd5df654657cdad832475e3a799c2420
d48299cf6888b438b9aba0c30298999a251a8d08fc5ac88bc42294412b073278
425fc9cc5bfbc4dc560689db2adc7ffbc6c75534c8c3d171f07574a839d9fc8e
c7a41131dc9905b35644298bd43b37b7a46ba5c141fe2e9ea507d4d18f5ee692
0dd720a5c1928d299ec374b5918725ec44eed2373d317d4636057f3772ebc4c4
37229565411370b4580d616a580acc80f961220304c5ba423ec6f77a52001bc0
155b4991d6a50723dd7d531867f7606fddf8b8b8a0784be51b47a3d1a9508f6b
17ff43d4b38d73289a0705f5ea7379ef678bb3b431fc9d4ed014b96827ed7d26
cb358de00b8efa55ccf380f67edc73d485b6886aa10b1943ef82b0ac2dd6b48e
ed3cc7ed115633b328056f6a7fb2e4e6253dac8e6e0b162d8c7d28003917e6fd
2238e529e7d879a8b2c95d9f06929cc553e777412c5c13f6679e2d2fca62df1b
9200487465e474ac219836cc4e54ebc9b7039e7466e272dadf385a0292137400
3dad90052bfc3fdc50f10d319b0616f0b20edd66c2803c03824c834f2452a854
321df7d9b44c301e64449531457917ab24e034f55788b1135cf609ae5b858047
6bc9e283aeefe2adebd8768b34806294fb3bec18db50bcbc3d1541ae8b00a56a
d6a68fc21ca3fa1c27e4fd3b4623611f9147780a97ceb0ddd930926037c07ef5
4bd3ef823e2be18a5c6fb4625013f1243618675b52426da53a764621eab51ac4
84a2dfc2cb367d9d846094fa098f99362269bd8dce004bcf4ecc91c9b1929a1e
712cda97d6f286b7faeccf8145457ec9176cf711e37073719adb001f94e50c77
7721d751a464c1c025c49707315ccf6cab6c466cc7baffbb676107270fb300b5
a858d60fc41838b7a1803a6e91422f24282dcb03934b6f21e3a64385e8c0f9c5
50a3f54af200f989d2d69f6ab4257022aca014a84294fcbf5272d5a5715c04ed
e630bdd8d72de599c1eba30eecd1cd03da9904aa3cb2ea5b0b62965abbb8c67a
ef93209725bd888e5f634d823b2b7f12ed03e83b967b4f6722db0d094d916b2f
555cb2eddd109c9f075b9fa16a0cde265dc0344c81519bdc641bf3da98e4e921
7e1c1f3820aa711a14a1fb36e686c512ee7893bec00ed8755324ac2819c740f3
94b654c6b7851cc5b6a5e7832832998aa56f598d925fc0d1c43a79f3bac7d773
e6737b4d7821e5b46db62bc6b8d729db78a2457852d0001a9a2b6126d8eaa2a4
9cae584a2e8b4716bd4daf59ea885efdab7fea08ec985994c69ba8c66c6be303
8fea8c09304d5339f1091e36eb84b0d64e7ba6503fff14eec2b37a01e408166e
6ca22b87a7c4c04620b505b0c1c8b7d10beaa123be7b64e5a85a38545b6f6ac5
b68bc5c1de29819052075a78ef6db634201055048be4d9959e4056458305d393
143a03425a2c634bf332546eae9209698ddf26eb408683da140a1e3ecc88af21
ec1b8acf0de3a6f02fa4f44955b5551b779e2667c9fa3ad3375a8d179cd61596
6a03110c11632ce00bb4f433198ba391e711cf4ca58739bdb17353bc55371ca7
d5ad31f0da8beb35b61054eaea2c4dcd3cb91c9b35807585549b9624f19fb5b1
418ae1055f038e8da3e90f4d4c58fe6a000358170d5fc9607459906a79766508
53008af2ccf69085e81884d632fcdc35e47204013f22c73fef7bae08c57e7e9d
a0d9e3c46b0fb4c0a4fb8bb82527ede8715b45390443af44d55bc7d4b808a429
20f87575c2cf57f9d1498dfc0c9f236e29722178a1fcb29b5e7135fa26929b3b
070e54f36213d6e8c9d0a2dd6e10865c653ac1a8446a4948d81cc29eea57d1a9
736671802e4735e94a063ac40b84ef582cf3a1f0f13db92deaebb5b960f69587
eaa0486a455b8f9d297151fe1348eaf472bc7ac85ac679ef50d8067e1c8c5513
64f8a92b922e1aee68f5927e0b44c6779fb89767fe6f6970972e84323ead42a9
4b97ef957371afc48284be64679227d5fe538d0308f8af6a571a11cd179e72d1
449a3ab11632e81de221e4bc2fae350300a130de670c3716666a1f017e4edb64
8ab536aacdcc4aefdccdac8003fc84fcdaaae1c8a047ec248e0bdb565aea38fd
47f5af39d1eb862a0f4adb906bbcb27f216d9e514d2896f4cb1ff2e2d8f38ec3
c61ac5d05b4d0849d5c7ec6a69cf0e854d5b21be2a070788f285b2004c580b2c
efb62a7bd48d308054388fb23d240071f7e334abb8c821565dbf43bb53149fb0
2f5bc6781a25bebabeb5e4da68c7e6820e5c81d333bf55eb37b16a25c5ed798a
b6a39e755ce5809aa52c6394cd8c41889792768aee20205dadd49224cfd4720d
490f51cf4e1f3aa4c3386eba6ff177abae44b5cad568abc44e35b5cc29dd01d2
6a49373b6a826680483a8b453674de66421ea176fd449922f935cfbf1ad8a12c
389d69d8711cc39a85103ea29969d9ff084b4c6cb6ddc4889841113936fb3909
203707c17b6804afc5c9c8092d87363d2e35f1d76b0642c8ad41900d9ef84e22
58ec39dd00eb7192e5cf850bcbb3b5eb579d7e27a6c52441b5de4b89b0937247
d11d466d73c0f3c762a7b9d8174393aa0b31fa3e4f309d62055a66b879c1a840
7fbe3b194b8b1d8c67af07d626685684f7d181d3e2fa0b480901810d0f06e44e
96263cfb9ba75cf46b60c64a5d42242c6fde62dae7da6deb23c8ac848c464a4f
18d409de6605aa9a5de4bb74639fe53c11138aa98f5573e47f5c8bc995fe275f
1c597e64852441843ffc27e3e47d74b0be4abb67979b7fb556fb1e502bf8317a
65f955c6f961a42d65ed41fed345283b3b24b2cbb5045045ff2cebc9dc2bb60b
6eb3805adcf634906da6e42dad910b47c308a4628f2477c0c147560b694687fe
691772e03b1368cf7b645cc8fbd4765d8f188ab5c3f35d05a0308db487b18208
b9180460664e3b857e2576f7b4b8818b53c1ca824073cd8a581f5f0c84de3c06
a760b0237bfcc88c3932464c6fbd4ebcfe7f90653b0e18c1202277a516223777
033f591aa5b24259cd9119f36c585408d8013257f99df81a7a13c0be1c6de99e
42ce02a15ef7ae9b634388
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY7
%!PS-AdobeFont-1.1: CMSY7 1.0
%%CreationDate: 1991 Aug 15 07:21:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /minus put
dup 3 /asteriskmath put
dup 18 /reflexsubset put
dup 21 /greaterequal put
dup 48 /prime put
dup 50 /element put
dup 59 /emptyset put
dup 91 /union put
dup 106 /bar put
readonly def
/FontBBox{-15 -951 1252 782}readonly def
/UniqueID 5000817 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f73e9b697ddc0351763500e23c4d170ea8a2d2
75ad0b6b23097f02fa803c1f46f9ac10fe0e527c431b11b1b9a50e874896cca6
17fe3e255960846bc319ca68b9b930a45d5d0fc36b352c3443ab6f7793b38d2c
7fb9c409ab7980ead55e9f8f6b83c70088d1fa6d7f2214da8928e40b96334ad2
72d1b5db9d1355a579b26a8dac21f021e393d7d837a95deb8de92ed818a8b80b
98ee9cdd8a3c57ad7d6eb7a82f43eaa6ec520eefa7302e750edc4b495f70bba2
24a2182eec37f1a1c5dc8e20973007150237daa6bf03d498826777eeebe09014
ebfe05a8731e1a421cfc513d47d673e3d94d805f5d0668ffa265e0962cb5a75a
4a93d9b87124d146d8836482f73a24389afb8a74364f22077cc3fd6015cd4469
c34470c86925433a77fb3c838a1a7158139e96980de23ff461382df32c6cb4c8
59d292d187a7c919a1c3e51647cecd04d7e091b936aaf37b758d1de4f6846958
e6703fd60aeca4e5c38b34574b55b0e2671154366e5554dc12a98bd9581eec29
a866523ed5b825c2ede44f7369230a595721fa307787764add7beda87195e1ac
bd494f6474d023bc194cded7c514920260f6af49909f64b316c6e7d0c9924fa4
50f4025d038ee4402adedb44aaab577adc7137de131167d35a1fe4c6dd18c577
9cdede365f8b102f3882f92b2ac3479fd2811bdec9d36e8d02e68781dfa05e4b
059cb3d8a2e1609ae17a1f4268ca66623fc5ef9edb6a4a643f6015a2b6afb34c
8d085138fe34fbe8632874127af55a64188dd05d589d27c9a62c2d4c0687232b
1c8d1651c779edd5935640ab0901bb0480b1195ef69e59d89a81d19dce10db37
64b73d166f7634e93c64f4e803ee3d7a1424454115a7963499330938ce937c2d
53f33445183eeb0697f47c5791649e55681bc166995506f9b0ae185969058a1b
42ff78f72b2eaba14b5e395c07f6c2afa04e5738b90d1f3484707f7540b70a09
b1e2f7dd510a69b13e2590371d0a40ccfbb2e32458f32dfeb4eacce05fb02388
dcee559bd778377e30e70003069755dc6e99cf589b391dfd4fbe8be4059f62e7
d856066220ec3c5a215d7ae1f5a362a89f6c80d35477c289232a154467352358
ae0f5c13606e12c3ddd2a27761217501733d524221856f5d425003ad424406c9
7d1dd1e46d0c2e906b6564b6759233a0ae72d3b32388912b192eb6317365019b
da05c3416962ed20d60b89af9a77fe44d31acb26d776ec5654c4ad869421b171
4b5305d4e97bb32844a72e872b50b0960f60f4e0cf35ac99468030437468975d
13c6cb07222d225b8c16a5ac64f77ba435deff5735ef2cd048bb8f7170818937
9ffa56dc7db4c2bf6e139085e5b93f57325462f54dc04bad4fe950c28c22171f
1c9c3c6bca60b6d428b7dc23a3e404514b3b58d110b88c10dd0784ecd7e93678
c789418ad9b171663de6c6ecdc774dc37b2c67fd236819cd6d21d17b813156d6
523c4f3d01a3d4a282bfd65fd35ba7e3b3ef9854611a63c0a93c8cd41c7015ff
48dbecaf698b2d8ba7e323c63e40f0c0e9386153f0735769aca8831ad14d382f
5822af3443b928f9ced92b991e6b5378b274cab153ae4aa344622af4b239abe0
5591ea08322412833ca32375d2ad5d234acbd5b889d0a2ef9cbe67ecbc34363d
e9194e6270ee55d9dce35e8f28c072721b2a42c8a017ff198b43665e372ecbd4
1bdfe9720a3b8305337f737e6399b9aaa6271aa0bec6731f23308549f48d2f45
f58baa59bd4c0be88de06584099be0a40b7cabbdc5ec3ee571d6bb9286ad7628
6e258720ef917a6468ec33e33fd272923df4485e5d06803e5feb1e721a14c42e
7dfc667f0f67306f0f6dee0d0dca9055aae291431b5b7dc41668ec96b697d21d
ef0acc316200c98a56b1d75da42e72fb463f012ca7178486152f23a5145956f3
10b1a6f3c73ebe2379ed56db692c11e7c996f86bdc9166461d11d65e8659a38b
a0d3054547e55592c9cb275ec0da1bdd841ff435f2133e1c3b61f90c2b78d0e5
d214879a35b13686c3ce0dbe584d318031a4f7d63eb4f07b6cedec4e8daa6b34
8fe7029bb806673c898c29c30884c36bab0144e974f5714f6a4e2047719ebdd1
a6db1e3ac39d80ca97fa0258d88c7259568aad6a20b77ea315aee0a2d91ddcf2
1a38a88efe32a2a3f5e1e1f01f04f9f6d6144979cbd7bdd825e41a7603e682fe
f11daec6b3fdb4fd4d3b66fdf36c9a550f549a924ba6200792db3697247bbe85
0ebe2a48e904c7e6305f6f7dec4f076ba22684cfc2bb2bfeb94bb08af0973318
1b03a86a13884670894013c003019e7961ebef55b5a8cfcde6de
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMEX10
%!PS-AdobeFont-1.1: CMEX10 1.00
%%CreationDate: 1992 Jul 23 21:22:48
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMEX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMEX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 40 /braceleftBigg put
dup 56 /bracelefttp put
dup 58 /braceleftbt put
dup 60 /braceleftmid put
dup 62 /braceex put
dup 80 /summationtext put
dup 83 /uniontext put
dup 88 /summationdisplay put
dup 91 /uniondisplay put
readonly def
/FontBBox{-24 -2960 1454 772}readonly def
/UniqueID 5000774 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a
e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4
d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828
e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4
7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80
523f59a30d195fcf9b9fce4ffafc6d5649664203ab24acb938d58d246707ffe7
d62f04bec4b70c21ef75beb2b812622b3c74e969d72d3cd11bd7106294a99caf
0b1629bc7d4de6b96ca82930831d64575f23f4ad06a0e45e315b1d392411be8d
6d73c998789ff258a07a3c8c2057325784514c845500bfd1a971310cfc11d41c
1a167dbd5ff012c60add4e87325f6e5299032a839de65fb1473a166aae1876a4
414a434f22c1d241591fb36f857df6fa930608750ffc0c54f44994662b1f00f1
400bf752ea8d83ffc4cb77a290bc2d99981ae59a191748ba5c7ba1a9d2583fd2
1398452b6ff5d83a059f7eadcd2ef744e9dd22bdf9c79d049bf06835e878c32b
7765c69bdd8ef4deb4ea7cfff4cf9354a4ddffa689de961d16772491c7afbd7f
ffde42400764c68e954ee5c455a5687959829bc3b319b2147deaab3628662c80
30c5e02fea09609abe4eaa12e217bc3af673f1bc36a7039eb13fcacb4218fe0f
c5a3f9452d4edf46cc91db67b624d4f2d37502fb9f11af4da18ca40b61097f95
d44329375467ed13c5cb585ec53f62b83ef9502cc755af44bf32b87b8ae9f3f2
f8dbf72dab90acafbacd280db6aaffaefdff6d5eff26669bac56280a950560e3
d01714ba38659b0e4e28bf8cdc1f15ff7e3ea9d95a6afbbe3d8e6905aa6d531d
6b6dcab89e2036cc492c65f76ddcc3cfcff33fde3d9ffd10f7a90530fd5c7683
4329baa902e701ca42717476298c9ff511b1941244bb1dfd0e5cab92a43970cd
1bdb292eadd055c97972844fdcdb0aa06401e7b2632b9d134f96bce0064860f3
9859da7a9a82be0a840672a1331212752ae1b521b693b384a72dba8d37a86eaf
a0341e7fc5f6ef7a8c566aacb91e8bf5005c18837894c4eacff41dba54e071ca
83fd06d0923a82021d8d64a54500a7f802bcde0cdae258dfda715f821b577957
a429a8edb595e29d4217c4203ba5034933bdc6249f30485c6bdeb6645b62bbca
4d20f9a321f1dabdf53266603b3a34ed3286cb09f8e04d2a6b216438dc8d169f
32878c029de8113557dfd1628adda329258e2221d92153b6e44dd159bc49b0e2
6cf2996f46bf12e97a12ac854ba0f42971a0c429b28192d55cc2d8281a09a629
40e90ba22fba50cae6a275a7fb6924aaa1f5ccfad03f9ee6ec6db4997d98259c
6c905d3125b09d3b1ffc8e8490ae7fba41b0aac7d7aac4f38154af74808e2015
523fd6221d7dd39fd309e7b6595a82df6f810354fe5ad624ca5c5effa80f0c3a
ab81a86a914fcc8a72692dc14a78ce979bd3e4576fb83afab596b6035e463ee5
b73ae28a7e1109058c66eeeff616782a001d190138d92ac3090bb18d9c41cda0
c67cd14021085e62ff315cf610bf2bddf8a2ee84977de4fda1f33fa2bb4fc606
614a152db9ff392e42d141e3ae5a9b8641eeaef6fbe558c906531ea2a090d956
eab24afa136f682a9db2c5672195c4a85842aaa79e0b647be2e25a9b194fc909
67ef8e0c424a315c0413e9554b557a3820410cec17287cfd0c4a1fca647804df
c3dc094375ade45804db9809391b281c55702f83bc13f4f670ee595b7235a384
f3d8fd5b236acaa2a6241890e9dc3d9e62f6394e18475a393d2b5e7b0345d855
7136656e96a486f18eaa6872dc66ea4f0d0dfd30171a4e5e8d8861dafb88d485
a4775131ca92e74f69d25c5c18504bf8ac6c6c2968deeacd3886cad5f4444762
61fe61112f382cb9ff68a7de714c0dff5b7dc90911522a6f927af31a7abea9f9
ca8d765dcdd905974e26cafe6fa24b727baf3b6dfa2c7cff2435df0d3759dc1d
e1ca909cceeb76b16c5ecac82916718520fff54be5b8397c12c0a0befaf8cf31
31e26050fd71312c6a4ab996d9d406b2683097cd4badb448d470955c275dba5b
152463ca119b58b6f8472d1124100919c81008e82be983f131c0409a58837904
11becd9a920870ebb22eb3164707356bc7efee04a16b350a03e200238741a0ab
4427a22cdc505f7b727a5f5369c5aba5f6fdee46cc5d7b319659b98ef65094a1
2f615398207424fd5eb11d61d192639cc84bb80a85f9df366f8789f798642604
e9b91ceb53ae910a8e7070c21cf1e9d18eaffb97eb6b8cd86fe331d99029097a
ded39454e5310a00083eea4470e70c12a27e58ff7e20dfd4f82a0fec1a83aa32
b4474aec11370fe07c007e08ca573d2140eb7c2eed6c9b24946ca2641fac4772
a110b362bb91e63e1a21e37b8990bd78815d18d22e591170e97256524aaf3d2e
c668697291e94fc6b8e84014423a67dba4153fb493856208ecf3816a86d175ac
64984383816e3bdbbbdf1ee2c323d1133da63c90bf2a18c28f44a5c8753594d9
822f22197e363f15ea457882db3a05a7e4f696db28bb27b588ebb205caf7cdd0
bfa1fb6bd55cd8728d72e56a8965fa6b1db563c9a7206543a3614c90a8a2c962
3fa703e281d3162cd577155c24f9b505bb759e65f4283fef25ff8367e727ee89
c731d74d99e0126319baf0566d351e090e771a714e70ec64f899f31e492d2f87
9f0a5b63b290a6be0994d3ef426fb9689b0965d87f15247a20d18d79ff728e54
6c0191b095dbf3b1f82c2e1e388679aadae910e0f582e37267e515bc96473f3c
8baae12c075486f891aefa28be3c4173705963439e3c3bd8e7c298dc89c80035
477dff8942eea7714d20f6e7c2c76dd27b78046b59d1d1c902696b22dcfbd257
8917deca9d9b9764fe6e47e96cb1907fc275b2fcb990105c6e2f800f897e3d36
9d55faf14cc9a1ad87e2aaefc47b547a3065f1e28bb70fb5f620336e261e1b10
ce6d52b08031a768c4b243045eaf3a9c8647f87ebcc86fcc861a4b3b506f966d
691634e1ef2da8b0028ab30724d223db4ddaa2c6e7361f4bd41236feaa29ab11
2a5a2231481dd3b864e231
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSBM7
%!PS-AdobeFont-1.1: MSBM7 2.1
%%CreationDate: 1992 Oct 17 08:30:50
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSBM7) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSBM7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 78 /N put
readonly def
/FontBBox{0 -504 2615 1004}readonly def
/UniqueID 5032014 def
currentdict end
currentfile eexec
b5e2457af4a6caaa4536453c498a618ecdce7b5f6f2d5944265309f833bd3d50
3df8bd14c071f404d2177500681a801856cb8c9c9cf0112c9bd17ccba9ab8944
1759a320b2078df0fafdd3e357994bd81740d1a7522ddfafb75d58f5def046f7
084d10fa2f702e570b09a7073d70efe37b48c355a7089772238b7b4538c4912f
cf6703a14fa416057ea2e1b94455913dd271b42846ee10d78270a8118e7e4bcb
8deb048bb280c240d59409d47046c890e5f79e5dd4b0be65a28a77aeb53dd33e
ac506a6da87bb55e329f433627e06c3c94b078838b908538d93f888e504e25e0
3a8ccf7d2c02122ab3d485525564295390d1154e15fee35edff4eb016fadd32c
26d1b4c09de87943780954cebc4965aa890fe1f80b03eb07103e13d468245c7b
c26455f229e8859585c6eeafd9474acdb27290fd62950dc52f893c99a2a614d4
2a7e3618266f3fb0c68a01a30373e048385ffe7dd5844e208a55d1a9263ab2db
cb9b19038724f95af00349840157be45cb337871b55a304b87ade64b10ff0eba
21aa0eaeef74aa01f049303a8b25de0acc26bb3a33fcf267f479a2a73f7dece3
2aa23083687322b417fe86e8f5afc2136d045ad6b392364811a17630a94ff097
038eedeedb8da4ebf8fa5a96ce27a2ebf771d14f4a11fb1f9f48cdd207209934
885ef9118463552984b0fd3cf15d55de967fbb051549dd65f60dfe07f299690e
58252f032bca78935b7d2df852ed688bd13dd171b91cf7bd46d5433aef9f50f1
41a2517c4912b837793f84ddcf1116f70f7e9b1e6ec752dbc9183d4791d92602
397bafe29ac6f879ceb72c673c8a1aa0135d6f92d0db7791f9a2f1a5b55347e0
3e63723efd258754f5f4a9ad35873a98d54b6c54b17a39892dc1d38660597448
fdba9258493a0db0d560c01d49f2d889a99eaa8a5b5919cbd33f6b3d97bf27b3
e0b94b4dcf3fe48b07398eec882c325567e28b9eb4d699111343b1910da9117d
74d6e9de75247ad908f8ce2cfc49e0faa22dbf4d1abe2c035b8f8eee2d1967e0
7cb9b5d8de5e0b1c3a86c7a08a580e51be75a8afdaba2cda08f87d352652a3c7
9bda6bcd32fd59e8079fee3fe7fa161ff626461e85ff8b9b60e2e6bc72884c6f
dbaa5e8ad5912206cdd26b204cb34a5403c4fe9cc6d0a2e6805a98624c56baf0
3e673abaa926e941739ba23126dd78ca82499f376d15bfc7cc70f1586f5f10a1
fe99eed1a1f44ace1e3392335eea8cd2e1d09075415ff9382dd812456ca3c6dd
bc8c180322518bc8baff72f1367ee7e30c44048dd9c7a82f57d35575e569a561
29f7d2f3da7149f2147e1565f14304aa020b506478e4758d10bbf9950f87a5d1
af646d8454ce4223a8706c6009a08f2da8dc401107b8d0273be0133e23743ca3
2b5c4ee63b3f41b58321e8556ee5aa6ae5dde7cdab9749185da031a2cbbb14b1
a3b22b8f7a3a785ecb4b62b6a50424c4b4022893660fa66ae0a28f0383369a02
5c0771325ab47c96188a9a52d51b3627735f5e7ef25513a708625d4d38f8bf69
bce988960621a1047be63b708c7c1571e27a527e2a804bfd061024ce9bbfd937
e969f28e1326c816ca7b86e1d17e220dc6044c94f5c59a3460da217683ef3cb6
276a560b97b063d6a12f0c00aeeeb6a3d4e10d3c282a2f1011722c8d730e8ece
357bdb82b74f27887f35a3b3bf75e30b8f31bfe85072abd4c0d3af100cf2fdef
ba07d0fec1202d5d4fbb947bc8999338
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI7
%!PS-AdobeFont-1.1: CMMI7 1.100
%%CreationDate: 1996 Jul 23 07:53:53
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 13 /gamma put
dup 59 /comma put
dup 68 /D put
dup 70 /F put
dup 76 /L put
dup 77 /M put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 99 /c put
dup 102 /f put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
readonly def
/FontBBox{0 -250 1171 750}readonly def
/UniqueID 5087382 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930f01bdaae649990604a33aa9eaffbe5b5489
e5c7c9ff9d9be01b08220832c41caac64816b53bbc087ae4b621d2b44b21ae5e
3f7fe4ddb05c675abfe30510eee4a7c874bb57b2ffe521a6875eddfdfd18c781
25bfca5a097aad361dd94df46f14026c25ea988194899b95001209cb7009cead
4b4ea03473ea120e7a7e341d4e3926796347fdb3a124c29660ac09f4648b313c
b58e824884382f24ce08d2edc686923acace1201c16a07a42803288cd0b946f7
546510e95b1fa1cc96f0bf72aa823d8e83d7c68c752c82a54c752eed2b1e699d
e9db1830272ffbf2f4996ccc2d6fe2ae272798989525ef3b67b0d09bffcef749
a805e5f76578222b9c4a8a09b13189a16ab746ddef7875f1ecf83e568f493d82
ff729baa1e0834dbec30a35d3c49c9b10c5e1d90c6e3c8fb737df5ceb3299d96
0fb79632f91f257753b4d2e34e3f54a26c7b950981fb7fe4dee3315db63e75b0
24b4d318baec8aac9cde186f6d65767df1dba35124287c2e805bc660a3a22772
0ae4fa097f1d75107441c0a0fbb9eec17d5516fa03b98756b7df7ac7eff9c7a2
364b9f691ed5cb692dfff9dd80c761e9c4d5d6061782b327302c053ce1cd09ba
0605ebf761cf9b730524e1994e7dfaa956799d522ec53d5acba27a35c4d28279
617771938ece58c5ab664aa00c1bc4efba2d15504247a68e3af0f9bd59a12ac1
d8764421dfef5dfa13fbee58f5ecd4deeb4cda9fe9483c229ab29460b05559b0
35c73d6b88f6a384de0e2dfae4b1886f91e522d800b0ad40eae57f680490fea4
a2eda9f8f57aea1a4315674be45989c2293362dfbd0b5d90a523a7b79de04d6f
7b9ffa9f9ff2f2f7a1645e6b6e199c88c8430208a7df1f8f8839769a44b3922b
18294062582dfb8eb65d087635f1b602efbd5aa1d63676616822ac40947e58d4
49f3226143efd388f810db12077f5cbbd8d6cfee0ad3ef2426bdd29bc2cff5ef
5a362a399422a187ae3a426fd76662c95662e78981bcb45a37256c5dcbfafe44
704a26ae475920e83bde900748d4b293623b515056ad957df32b617cdb289a46
609246491ac7dcf675800e5f81874dc03da4a307f9943779c7381138dbd88cd5
919c81c6260d2b00e4eff3c1b5c5151a50519d55eb28af3a8e63005ae3110a86
8c65975a5ff67116b0fb3a7f5668817f292a58c0fe4619eceaaca3a650946055
ace94be2ac46bca808e2930a1b001b9ec131fb2adae643bf6184d03dee50ca5e
8f122f46a30168fc9f1b1a3bdab5a6924133072effba1eb64663df5dff12d341
8e8760ea0078a24faba11aeae3f6539c3d7d7d3ab3d8dce832c96714f784aebc
b231911020e4b6a7f2cf93ce534ceaadfecb51bd97265b46238c95f3bf6c7f02
abc2eefd45568085b919d0ae5ad7b57b5c4fa5d8cb31614270963c2f4e33699d
869f59fb5d0d96fc989957dedbb5d3c0438b83fca1ddcb2e6a11dd2bf88b23a7
dc8f912a05c75ec3f88a95bca941f05a720bf56ffded267f0725b8000a433fdc
ce5d341ecc05e9337a8af994d041d00e7bb4f586e883ece4825556a965482fcf
fe65a1cff8641196f9ae786d5fe5390f5b78558c2cb0ddd1c7956ac85336d3ea
f107dbd72466b3a07df86685422be046c615c0670d970f548e6b6561f2276754
64967a76a1ce90ab21229cdb1c8d296e7f302b181b43faf3ce967bb9945d1350
38633df22ab78a56c2300d5e6a54bb260cd5455ac755992063e395ec9348785b
3a2d240618d08ae1df7c594734df3d9cd59fcee9d7aac0804a7ca9186797815a
4c95a07588b3e3e22f3c648a09e6ff0478bee32b5e9d3a68eaeca945c1a9757d
8e80f05286152cb9a72c5adcc71c498d388495bd9ab46fbd60ee5211a464ecaf
72c78f1c230ebef6b970f4e30cd000237776cb10a442ad54958375563a5a4713
f9a0b30929409a01ae8b364d347e61d9e7ad653c09d05153a4f2bde6f9961c4f
13c88f0958503a69edf38fd5d20eed8461a2914bb9a25891eefbedbdd99d8cd0
4eac8813c975c8ed47769caa72dfe478025bcb5dd47df0fd0e5529ef9dc698b0
4dfb631d2f80d50bf182ce7828db2a37cdd7b7483bec87cf6021c6f1d45c3f9a
99bd61fa172df0a7b7de43be6b21d95a7edba139629a543a0537fba815ac183d
4a9b0b20d6fbd1e99af60051d14161c1007095b9f859c39202416171783681d1
32fb167294a5c3eac2b3234a1835ed36294fae7aa074e572c571d0dc3905ec03
eea78444e20aad2a50970afab6575500803f8d02b667bc8c85d1a1d297b5949f
97692608af9889f2911df75e5052a7bd8c97f1943ec385763c36a71ae36220d4
55cc3996946b91e613009942d3b90aa3d17adc229feaae38fb9bca68301897da
82a358d6384d50bd75658f6e6c60d857b469a4c5d5297af9ba5e667dd17a9301
c2a13a06bbd5d2f9852efe890e76abeb6f4d8c6b989efb52ae17507916f7af34
e157f0c911455cc4c633cc3594228186edeeac1de8dd1e2c2b3dc522322b34ad
d7f6d980a10768b98ab26fda95f2e86eb92261be949d702ad1763b31d90d2384
19e26d98fdc1d434b92cdeda28de2c8ff2402506367b5576a29923c9d207d0ee
22a9b910bde76188826ea655dff66fee373ea50180e47e2f0158006d8186c251
0d7796b6906d3c936e4b9fd4f0da26c71cff4ecfbf267001de9db62a79b71f9d
9c750c89972a13f0d753ff682c62aa0a3cacf6498c6fb41cd2d0f330a0fa57ab
3001bbcb3d5e80efbe952eccfacd6aa9a9ce74698357a7af4fbba8873ff7f978
9683f3d20fdcaa5e4e0588383a354c616493750a7247a46f5d473c5f6c79039a
99b3736a78c71ab6045e292b113124f1971f57e76062b8348a985b8fe9523fa8
ec5fc9cb9325e55ed93756cf25972be2668083f72f0ac8582fb3fce95aecfdf6
bda9981207a18f4cd6b52c0de58796482f1f60d7ada4bef5e047b35b8063e0a0
898c4d3402b1d310fc4ca3141cc472aef330f9e047638a5f60634043820a82d0
2a9c5881f5e3bc566d34ba781ca2dcc7c4a819abf64046be43e07d1c4d8c6a34
f096b0691aa1eb3555c7157cae989458e90664db9a1c82dad44faaad8b797d6c
c9691fb32115e64e30e8693b97fb60d92f7c6d997a3c12726097d8353c58838f
da19c7a3207d24ed5d631f4873f619ccd25812d66079651a9769a0d7bf1074d7
08efbba9179dad3c8fc1aabd6ecacc78585108f4e39b080abe9c35828383c3d5
4c560718a93f0798d9373ef2c5e1020ded6f08ef0a697a2b75296a10b02a2b04
01a5565e9175cbd0497c36ab95cb2256a57391bbc4c20f98c3b287f0142d0756
4f385be7f28f0e222623e98501198bc537579859b35283e90892ebdef03b4e94
741c5941e32b5ed74766b6747052de2349e0395adbf446e7171f6ccb758de913
7b6431ed31e595a1c85bbd5a3bfacc87fe5f2ec633fd32a0c06330caee1ded56
e6f6d1ca6b0a525a6cc33331978de33efb594300a0d8433561f3383479c9789b
3eae21157e094e32512d27660060aad6c45bd019ff624b78ea271d45ba62318d
4d9d4528a922925bc5008c375111474aabe480ed846a794602cfa7089f2afc54
b5e237ae9fb86fbda131dbdfa6d7822abdf0ab3602d27d4d9e6cbb14eb60ef7d
3c3dc6ec6e32d67266ab14a96a02fdcf9b23d72937ad6fb31fdc57aced7d6115
7f6b63fb32a7f0f9db97bdd9e52e824c823e1cb1619b23fecddb0658ad5beeb0
07a0a3dbae5528dbe4c1daccf4660f66407dd17ca831697afee9f23e1d276c94
7e964ca399b92d9bdeb5d4255fed880f84868b0809132a0a585cb53b3e44e035
90e047f41fe9ce59432c5c94e45111cb70f94b522dc9e4e457f06239392c76a3
1c1fdfc27a244d18b993932a931c5c0c091c0454ba7db41bbdbc6d34fd7b9b5b
d7209f87851332578cd02dde5d66f7e151ea84eb827555c24bd4767120b7db0b
7ec0a7c5ae60376d436be575684603adb5bd25d53e4ed36fe58796842d2ee918
1fb6d3c498511f1152727412af5c78901087604ac32749994d72ea8b4502dc14
b5cca2141f2eef03093347700e410aa165e4d747f4ce262090dbdc55a7d8f9c4
9aa9af3cba5683aa2aaf51cb09bf9e7617e1ccb4cb09c217598a556fcd97bcb7
37315ddc659deb08fc12fc06d960491510b1237ac314bd4d10349ba99bc380ab
f7e2c7d1d930846329084bb4ef7eefdb167e7b2237a18990890f0062f47703ba
e97a222b2bd46153796328e17f08ddec739626b8a2014cdfcbe64d69abfa09c8
512d50fadf4eded9876a9ea820228087bdf413af9602dcb2434ec34c5de8b806
67954d73b7b6d24ef2daa6a139940a9160e55ff963f9da1c9b77acc067c325b0
56c07a894a872072d482781f2c75992aa175f2faac43de32c9e82d2921094b3d
5e22510e3dc810fb86ede3fa5c11ae58e68f19b36a57508cf49cd16a2e56dfb3
91198ecf90b781f2d8920954310d17348115e5da1de576bdbc7263b509da6dc4
48e611b23e71cce8a3338afcc409471c8e01572306dc88afe0a5818cd138cf20
ec032b0382be979f660d3d274d942ee706525e9c046b12f8799b1515fd3bcb91
f367454f2267f477cd6da0a3e8cc206437d3665453c3f30776cdd9b711ddc38a
a3adeeefd45b8c3b1eb0fb96957e04188449692dd171fe81e991baf5b7f6ede5
a399866acc6d36356e4b3e67e5465a5c4ad6a426951a8552b134bfa10f0e4fc6
d53ec088c4030121ea804c38f55329f1bfc35ccba91857c3f9308e393ed36220
9951792daf8da3865555ddb1c28d7924813d5c1735c09cfa32e01c896e84d2cb
d42203589ae97db5766887c261ecfdb351820a53ac3fed014f39e3a08d77dbd3
ef1f6c854b7b2f6454082252fc65a7e71de7db0eead601b1fa11e62e273ad224
69f068df329d6ad1e91fe4073b87b692a68b87325b1916fe16713c279c31d9ea
355f76a6def907516ffa9d4c78c78dbfcf3f6eb58a2215cd50b649b6befe3460
9435525968a91ec12c9493bba084887aa06272e125cecc7a9768a3575329d992
b684c85e9543e4cf8084ae1175b369236bef908e11a298b4c1be8226e47ed0d9
c6a767fa199013a842d0b50c8ad907f1daff6c488279d949984099efe6f8d266
9bca1d3719c91d01f589b4b93eff68b654b0d22d858416ac15d9346fd5a1aae9
36f540df087a3ef106c4881edc3149d6bd3cb8a6c7c40b86f8537853d53b6dd0
e59657d54b818938f53d195741e8b3980007952c82e250e7d6e6f4c3a8cb9423
21cfc9d654dc779b7e2d3997bebf4252f0f4489a245ee34faeeb868eb310a2f6
18dfb8b2c32d1fbba931bd45c7e61d3d750a5b1a6f374e9e2fdfddd7c0cef09f
62c9a8e156d4b0191aa67f442d7e15beac6688be220f96a7861e19b911dbf8e3
df48c4d1891606eae6941cb31c0d53a122ebd462e87798a65329fffa2e3b0e34
e8886863ae82705048dbe3f4f901f02a85ef10ef128db4ddf1478fe6fb98951d
91dae0419b51cb1e3b64eab610adaf8e3b78573ff517f2766ce9a550c9ad273f
e7fc7e096a9860a53b59435edc1370a54556129bad92e49835280a43c838fcb1
5ce5d2aed52051fc4d4059734e81543fbf245102d75163f786ac00383eeedbdd
6b4c38aeb80f00d947f7706f468602e11cc29526201e32fdf8c164d74fa3766a
75d9f7ca87cc685c15f473f955e1e740e4b7a5f1e2b4626e7d8be50c5367ef3a
cee86a4b121532be3aca396c0d94065a5a7b4731f99f2f275215093bb56916ac
94ab8f6dc6166c9a76e91cc3c0b2ee6a87ac9348dc86f84c777dff96ab4c68cb
da6ec5225bd0f73689fe6e619da44fad31ed4c65a8b5545c1237bb3d4af17f25
9d0936376d27a70cd5c3b55b5fb1ef7617b7316728286e98f73e671d4b09a1db
d2c030283ce9ae76a81a86d61b8ab553d9a0e374dad2934cac6b43a8f520d1a0
5aff3fba4b374fb8e1c1d0fb2bbfd906332e9d5e459a57fd4e011798ba0e4712
7367107bc6264d11422625938e5c5b4d30c8c2accfaf5edca30ef44042860bcc
8833440f64a68a33344badd4ada82891caed31e91cd2c4fc5dc6218b461477a8
27549c1f4567cdf016b6112eaae784c5a6e8c6bf5943e2eb99ff45cb1539f3a3
98dffc335ccc4f9504b8fefc5a728e790cdf740a76be16189a0f723e5f45d282
c0e1b218bde40b47b278c33d32952edcfa83976026ad7ffd09c0e6415306c65a
7556ac601fdd5611dbf4ffe63c1b15960b68358260e374e7eedad4730f2c8fb0
6dbbb42c1b0a522208f1f94f943703901dba421ef7bf3b9a3e530de83baaf24c
3ab2027d13d544584224386b947517329e06d879e2bb987adbaadd22c96f7d81
6afbd7bc8ce84eca7026a0b4c96aa1edcbcc31351fb991d4f4c91298c3e049c8
bd1aee65a0690a1db89cc747a893bd7648d4a29c678e5cc866777110147098d9
500174303a04ef274f596cf972c68b61e6c1e8523da89aecc9c8ee95597393b6
ee5d709e650b8159e9492ef8ba68449dd9bf596e69ae255ab01044146aed68b9
766f85af036aff233a3696329a4647bd82dc339b3d367cb7b55f2f3ee0ada54e
ad829e43c314b1dc4314545adad05b3e5375d9353c5216cd717767fc0f236ddb
bcd41bec1e6dcf2e0da1e845cb2df0e723413b149545a114876e2818616cceaa
c458df2c8eb2dd047993f49fe757f2a4483e5679527e22f93f8afe816b811932
2ef0327f87b667e1901214f9c7e69659f5d819dadd6e7db72cf98a7cbb422629
a2412f40b2f6ad2cb24c54052679b3333fbf29a301b8a5c94693781cda1231ae
4c1e711181efac2f82a050abab035257436c19de6c903a8bf206092e169d44a5
df8b4dce950ec394b9b1552269d348c6443b76fff1b240862be85096dd388d89
18b1a846d08b69828c3ac2ccb799089b26bfd035f00a5fdd1410da8e653b7c2e
ffb9e8cfeeb8ecf616f64c28697f83f673c14c7591d05da8da6fb4e63088f683
0fc1e3fff78ed51156cddb0a593f139bba250b1d80ebbdb3a6601aae036839de
da1ac7ec833f0ce5e16e8cde190c352f4939f218e3eded3907ff4a2e8eeba08a
de68e7ede9b034cbb03dfd504d9b9c6517c33e1155db7ffd4f2aa69fe27e1819
accbcda1ab264bf7db803aacfe3141f2e826f5fe4a60c503385a40e2e0cdc28f
e2c006f12aec40b68197fc1927e3686c72a5ed8802b7ae8f11d260a15536be5d
73204d252748e280497743773016eb8073968a2f156ae938d80925f28f95cb22
7a7c20082095f3268face69ec7c5558ae20a4d1770553344cada1ba6ab06035c
bd7d5bade78947840e37d1ce48a5ad835d65e01ed121fe71adb6dd144c83f823
59bb895f2d755b2f765e289b613ae60ceb4bd163fb4c4d93b086ae635dc14c8f
f076c4a60863a9533e051ad5bb30ffa865eb1bc6242c9ea223bc820aadbed250
8421a7ebd48bc9036ddee06ca0be11952cb1344d223e2c09afc267936c915d12
25ed5bc82b26322c34201d410eec42e3d81e8c6e3f6eb10f9f4dec95e70183d2
9a07530cef8ee83e6418bf0217378471b54e8338e747842628173626b4ff17d6
0b0061efe13abcdd5263f17c2a1dd20d4b096f2a6ca55f368546fd552d818b1a
e4abe0572fa01fbfd9033f026d7704fef446df5b7b29818c8b64ec3216ae7bf8
1580c09661e78115bfb0a003c3460c0bba7b1285066ffd28059287e6db51fdef
68577c8ef640b66c706ee2f421499961cc93988f5d0f6c0fa294438946e0969d
61b9d1b1ebcc26a50c92e321c33c694238d2e61104c0aafa24007e237dbf8d40
ec8297a2b4b9365e55d2f256b99f84532c191b29f9c413f3dac89d067e7f33e3
f54fbb8ea301e3709f8b34612a4da77ebce1a550f423c21380ec247f64855dda
25fd8397b55216972c799848168085b22f821cf8aba5b0e4a53476476b3e5bca
3491ae7d221e001c7c0fdbb5c1e8a94409c83050b55190d7ffb8e20765b85207
f36b8864415c8ad022d1f064dd3fcec777f0f1844c356515d5964ab61c83cc70
b5372689bbb6dd166ec8195e8085ca30e70f8fcbaf6e2a9ba4314d14206d5933
733f18f244a63746669bc030f8549555f1f7a784429de639df0bf27fc641f079
10de9d3b819f29e9cc813a96305467946fd5fb47d055096185e8a5f225bab38e
ded5efc41fbef4b4e1c96165f1fb7c2e0e6b92b9a83969462f81f4d0cabdf599
d47297447aad0feca1bff7015f7743a750019e75495055070941d4365b964ff3
6abc957b5fa853d853b114b79f3d8800d5da5c20f57d76a9b8e811c5afbe8ebc
2ff3c3f015c63baad767798097984462986f7719849df3351c8efca65b760c40
5d3fb1771f695d1efbe9f146c060ce798366ecd37bac94ab1c3fffcdbee8b612
073813109043284686b9372502a51af44d5096ae0ecad4a9f215ad572c90c8ee
99e3f66960751164193e5e4356ad8cd615b9a7f4294465db46ed854a7ceb74e9
466f37ac5886f993b11199ba54b89b9cabb6693a99d782fd9b6c4bf2a2e28b8e
66fa07229136c3e51d97b0505e0f994e9cad98e4df4d805c3e30b0ec346d4311
70f29b771131048039337748765db9902c167a891538776a4bb1be36fabfed46
6e8dbae180e8e396f56089ef4c6eb4928b221e55329d70991de95dd6ebefa3e7
a2712648de48b0202608071e518e9d6483dac756a2c4e2c68a7f60f7ab270a7c
d0c83110d817e4c6df88d1ec1089dc16ce59e58b66c6842dd4251254b4ad9421
1771f4c611d9b805b0fa461356572b8968e6a93cfa0ae086b75380524e1e71f7
3057918723499a95e0e81740253742b72e0bbf3f0953d01173bf93cf000c7c56
e28932b7b5b3ace94cd7600b198d24e85faf37169678a925fd33f1acfb7ad7fa
5f7f7a3b0947fa805c7b55109fa9f95e2cbadd418dcb32f429bba7eff87d231e
ee69cbdaa5234468c4546c1252127f2c70f3f9ab3a7ae38ec67674b17fa7c582
4f66857ce1b7daa53c5b222a6ad3d5fab94065f9b2424a6f54580ac17eac88d2
4923fb5b4cca8264c6cc32f708f4d35eb39acd8f84f12e765fc2b0d57fef5d0a
85a81afdc5b1510c47c28984e3a4bf02ae361c76aeb41d7dd0da9deaf001f2d6
27902ce11842890239da8ffe5eec3e3f63edee49e759ca5f96da5bf1ce08bb81
c4cfd309069cc3a8c3994da6555c9e3024e11bc22f9a0aa9709c417d839cde20
19b5b6934b160853d36072ce4a496a0cbe3580fb0b49b10d80aac57f8447ad5b
ebabe98f48dcb68fadd70f8192a46c65c363d5b1230dc886fb31fce2d4ff4d0f
ec0ff42de7be393b20197369f0757d85bd53afb61ba4b6fecc36231812891886
682fca563c8d1a0fd3696721e1e655967266d1735b893b4fc2156aa9c8342296
e6f3fd03c50a270a6c2c33342b4dfbed09c087623165ad5ce5c07f231a653df9
5e1c20679254490d1f5b12135cfcdb74ded7485e0233d25117492c1fdcae47c0
e3e55f8cc38af64339fb1907257795563883ba1239c7d5c4b11190432c1ba075
1df4882569538e65d959a34d091efafd94cab80518ae2d11f5d41e0e00f67d67
b06cb63830c7faa87e6ae7f5217f71c557cf42ebf19ca4838e5c7e647a6ce449
bb08f4fa047d484b64f12f8fbf0bcef9f455282009f44eaa7d6d352d4cf6d926
43422fd3d44c5ab4aea44d1c9f2f96207361364ef1c05312a8728a807be895e4
3f064b5552347853fd7ca878b414ed0c438b771495f1529fad52e5b5157be307
2ef6cfd3ee074f090c
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /alpha put
dup 12 /beta put
dup 13 /gamma put
dup 14 /delta put
dup 15 /epsilon1 put
dup 21 /lambda put
dup 22 /mu put
dup 24 /xi put
dup 26 /rho put
dup 27 /sigma put
dup 28 /tau put
dup 30 /phi put
dup 58 /period put
dup 59 /comma put
dup 60 /less put
dup 61 /slash put
dup 62 /greater put
dup 63 /star put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueID 5087385 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792
3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6
4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a
c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876
d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe
dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18
6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22
168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0
26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6
84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2
b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc
55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7
8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316
ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325
e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1
24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd47deb8
5405d720de0bb4dcae731a8e27bdbb6e6be38d168b7daff815acfc32ce367374
bf9fd98c0ae5ba1bccdb84d94b5c173abc92f7d18e19a68f64a2241a0a163910
8dc46b8a04ead17662b7bbff3d3d9a95d5937698573bfac64973dc8d8b8d9f68
c52d0c133119eca4fae72f7553d276c817003234a98337d7c037c0f1bce8a804
57113bcd97515c002d20f836fa086a3277727873ec2b64a92bedb01193491134
b6692a08de4a201a3f11dbe070d797f7629ad487d2b8dbf89a0631956c93864a
43b170d5f4dfb7555a1d0563a328aea761ac6d458b6d6b46fc9c760d76d88761
88c98773ba3884bbf6fb1a78838e0c1d82ba9089dd5a240d33e89b1ac09f007a
09e1e31930bbb374620f76582895e12013d142b6970175ad3264817d0a2d0767
ddd0124ae5c40c793babfef915150cdc21dfe558c8e3a7eb15dd8a159428edf1
1edde57a1ca64d23e9e2d901187f5606ca745105ccc1d5d75f5315fc822bae88
fe96b778fe6f318688b8cd9523f176651753db14ebd336488d88dbd70a4ba7d5
5e4283af0ed2edcae3b84d5c99dc6bfee0f975d4b32cc135fe56b7f795e23e35
61712952d339669c9788cf725204532792744f0c3cf2cb04e637f7cc04b0b9d6
140b24369a0260f8b42f04232d17308d80bb9d242f7d5b69c1c3d0e10222f503
d457d50a450fc69a3b8871559503d50c6c0fc8d7ca1a26a0f28d0553b452b811
8ce370b4a63ff424e465aa65d4851ff52c1e6376aeffb3fb13defed2e3573429
87808cc0d41bb8448d6eb9a2ca956b5550ce972eb9d453f397415839441d1337
581538f08ba4de080b482e6b6db18c1784abf2e72d49b57cb89e9ce989efd9f1
12c92f13f1ba9733dafc3f1a60fe52ad197eff362cbed9bbeed81b6ad125742b
b3254aea1ce6c6a60a71631679efaa19b5ec6045d7b3e0d95610b30fc26bbcaf
8c651a8aa57c32a0304953b5b3c3a4d91e002c200b56dddc0846cc1ea1ba3f17
4a22ae63ca9b768586f9dbfba23792fcf08d87a49181e7d06cd5f21da823140f
f96bf119569fa2ecf33858da2791490066d81d6f54d2702eae3fd9e48807f920
232121fb2796cb40d1ba619880c653f629ad8960d2a07f6d161531281399f7b7
36d07050b00dd0d193708f609319d3ce290b102f8aa12b88c900341e1b120d0d
6f93fdc26f8e05b00d532686f02ca0efdfb5f794bf53bd265cdafbe5e3dff936
2fe4339cdef9b1f63626b3ac5666a5b333194ca673ac3e77e806cf3cb464b1eb
12213756f2675deb2d6fff0d17f695590d07601db1fe273daea6bae6779de61a
9857bc41c351b76c48ad12409f0d65b41992fc3f035e00342372b1fb657146db
960aef4a90ba04c2e96f96af7d1c870a1db7c0106c4c37aa26a195b07423e557
ab3d02220c46d66acbcd780666e97cca3934d90939d751526b58d847c9efa3be
ce13f647f8e78b32278adaf063b4f848e66bf433398f9c9b091666f555fcc85e
5987a473dd5e3b01db81ed8545b94463de1ab8179b87960b6072ea54a52738d4
e27133914905db9e5ad9505efe000578c0be25563d437b91edaae6b365700f53
fa9b581b324e8173f9f394cd51f89a20e174745dbe39970f562fb8023234dcbf
52f31c3a9df313d83149f423af88d268750367e9547f90a7e15f65f08e0da28d
825beeca637b9dc320515bb97f8b090969df818e74951a47fdf92fdfc9978022
a5e137ccde6d3e4bcc8a6b474b9fafb9d43ad6bcc5399ccc3419c3bba289d15e
ab76a6eb9630430b58e4bebb33736b26e32857df736331451cad248fffacb280
df9f3e2de8f0ccc686b023f8baf08bb7f9a40b22e23a31474c71933cfe71e65b
2d2b11eaf5a195616a99cec4af17036f6405ee20bf2c78edfcc2d4501a5a30a5
5979bfb258e0a7c5a2f2fb880b328257dc405e76a8b2e1c07124ba3cddff5efe
b21a598ab06657db5125b147255fcf80160c84bf1d4f0ebab07831b1fe0518ef
029adc73804d82ea496ff5a7f9f338fb2efe68f85849b4c7aec0acd2e23fc9ea
8c75a1526c1f5d489f380875fec59f768f917071f29bf68b59fabd3e3a34b16b
f61d29c03ab27a5ad002f041d4f17369dba679c054b3630965bb12a699baf675
c1c7d8ed9ff105a4e02f0a513f54e450315962157b8e91438fd622ea1b23f2bf
e3e5116e4a8eea9e8a215fa47d5c2fca5c04a36621fa84cf21a64f30f1fb84a3
7696113c61f3b69f0dbde3dc54e330188e78689b511dd9974cd4020e3dada7bd
0ca9b1e853f4494784fd21bcfbc32cca5c404d7a85c7057faccb92aa17c28ddb
cca2cc41e891d4df25bb8d9b9a7452cfbd817ce450415e307e5087b45ce0505d
3fb6b2a44c0892a5906d3d0ac8ac73e2f53fdd3957888b79cb088a3b55e3aff5
b661e43d7a427d474144e767f9f0e795da59ac22f7c9274047e9b094a0e8d4c7
0dcafc2f65659f8ab2fd0f912372c3ad1b14603a40ee63834fb8d6044f8cb37f
3bd1597ecbffae1eed1f294d0c86f0d8c731ed466d3b08a71705d657a6fb0c62
3248bb9ce6c6a9db20f489041b7011a82e548bcc5b72f56d96d7ad8e2d9be4a3
3767f6fc0bfdfa6a1b17501d91d19514dbf7985a2b932b8d35a38f30c2a9e779
cdddde709cd64311035a6608b5261b7dde3207b990bae4d271dbdf468d7721a2
a943677431583b3228271e04ad50aa0273be1f669d440ade7dd478f3aecdf3f6
b518c78b081c47a86fceaf83c3b0bc9d0151f664214ff687e361e723679b3d26
a9985d5d22546e95f297c0693ecb92d0151ba8efc6c83d9bf416469df91c75b0
7e9812e783e64658d0dd775e6a91831d143a032a4b2946daef6c26bcfa96f025
5b3138bada41eae6b2091b36dbe2987c8c1a72db0e380b6ec8d2548ae26a9f06
56433a12579752b994795e72c1fa1514c7aa16ca0bb57035fbae55fff9b1d288
66ffe9a3002bb171e2731f2c8575ced231cd36fdd7bf9467cd00b240195eb28e
a4eb07245d1de8f22b24075554c35e087403780ca1db49294021d2e0b7880954
f813c0fc086c5d10e4ab5be094619c53ad789b7a0701f7e9fd46ddd70754db9a
3b9d55b075e53e0e4961e450039a3843978162858aaf7ccf27896654ae6ac9c9
3daf4210a475b6c8ce22d63b0ce664495ec6cf7e94058c6b0b8fd33c03a01f27
9c73ba3da8e24905cc719c0d71ff220703c2e0a6f4b29573aead8d0a2792bf10
84e224e69e59571e41041607f1bc3734b19fab6b35b92405fcbf3277cd419132
5c0dd911f1d4f678a4fcf1e7d21ee9b602adf68e8de4ab3dd3b8507fc10fbc41
231234560549f14ddb8887ad45f84c622d0e8f685d06a1d14326ef7e42ef4bf1
6a868bb28839a17fd5966183ed7bbdfacf440c6f65203a0361f79baf55dd516f
d9cb149c481139d7426790d0d4b73196db3de9be1b0627f49909272b3467fc58
ee68519c3797c963484a96dda5ddbfe28d6fada89a27bec38fe743a6b1c714e3
56d47d1fecc3f22aaac3707400e1d3a957b6c07c32dccb2e06c50e0f3bf663c7
2034dcbf506fccb28fc3e77a70e2a3eb5a3f6628e871abe84780cfe37910459b
f468c9babcccbabff97c1f3f40ba197b4f15cfbf1807ba35644950a5231fb272
6822a6798ec4c045fa66ecd7d53df47b1372529b284b0a0f457152059f5c2fe3
9b378dc5e2df5c55c4e9ab17f0cfc15409eb5ebc0eb6a10a49aaf2448b5b871e
5117728cea6be485e1bcf7f2fe8911e76d85f1d266ecf4048266102f3579d8af
8ee702c15c81ae933fd4ca8901acbac75bbbda980f1f0dea693ab179c22e688a
3a8a21a4a1c514fc057fa308367bece0b63be914d2bf95e8391eb05cb3d50ad8
707b2d3396234e6ce3fc97278d7af10ebc5be20334ff9d5e2ffa6cd1d9229893
9905d40fcb8370ee2788673c042dbf965651539221bd9459b3219a2c8d2a1ab1
33fe221854603238abf7c229917bf843bbf373fa9529933610cb959181c1f5f8
0108e048d388eb02ebf1b35419ca5a110db3fec76026494c837e8db623e70609
54f96760fe7b28f3cbd6c1b1e816747d6767394c25fbd2f1866b8cfe3e1cf6c5
09095d498ad5dfc81ffcd61aaf526bb0dd4a6d73715176ee44913130ef24e9e8
fbad8132e919f95a68b006cb9f8eb8a52a23f3c6b620f3497deaa95351d19cfc
9e858bc35c0c6a30eb912a2935dc4526bed110ab3dea872490d40d050da47fa9
3fccd069f1d6338f619a1ad786fc35846ec177b4c9b49208e4484f29e1ef03b7
529b72c5be3ad3bc199faeb1f8f413d57d50451435627a686d45bd1691fb7c93
c3a6e768007886aefd7b9511a07d356ab2f90c45e10bbfab3547db3f57338abb
6f99175549b26e660f1a1a19cd08bd4dab65fd7eb7eb3a32d1f3b434ba522eec
9c3259d073fdc706985d405ee7b50986311e3c2b97191ef81537b2b0450eb899
845da50fa6adfb059a04ecbaeee8bc7946ec02bc54c9ac4e0cce22d9034b1c10
55ac9e92a1016d089dd6f22487376a889395841dcdea71d5cc715bff9b99441b
b8df06b829708ba6860ba063b83864d6ef720d361a581a5281185039b48ec110
173f1e75666965156c966ed52e59368f2621bfc090743c9303473d3d7e553a4e
c51b89150f96c08079cbf2cc660c16a879a41bcad9be801698978f23a643f689
750d677b3e5d6a08ba716a0c84041515187d00f38d7feb7dddae6a06169df87c
1b65a4197acef4b2ff0bcef1c1cadd0efe3f5e63211869b33a9830abf85bacf9
5cd8067031066ba96f1c17ff8f10d2f54ecec434916886d785469a07b0c11c4f
90261f6060b6454b1def0c241fb05757879bf7ad257c533d624071328de71d33
643b0fc2278bdce8fc3b35e1132476ecd0eeb12d17972c71e8028f400d156df3
734e93c791d1da6ce65665bc303a3f62784505609bdac726c6c2fc2416f2961e
b3815358d84e8161bd9454fddfe92622ae5e282d362302ab49c8887569496d0f
883195068370f97ddb2ff2a74cd9e746cd553c7739237ada22d38d5d4a60cada
35e9c9cc51900f1cbc40210b0eabf30f45a719b56ffb7f4adab4e2e6ed3e4ead
48691c462c2f9d4e80a911ebbb9dc44d667a7edc87d765dcb98a4c12bb142e74
0cbd74b679131f4306bec14b2d6373af8c534621bf11d7c88963442c617afc92
516cf27f7064c0e6e4198982998f97d56e26f108edf169d63ce464ce453d7803
17649b2615cb97e65b4067f01da4a6331af99f846ab2e61a989f285928c7e93f
070bb25ca391b25dc27e6c821585d415deb8b7303ded2e45ac6e035d685d4a70
6fc269b9ad5e3c13c405a60d0a72176696bfa05f3f40f9353c82c07cdd902b54
e8a7742fe723cc272e87dff4eb3e02b83aa2ab2be84e8fb1ab4554f1ca628fef
8182970bf9a24469abe3479bd72a6f2787ca326496dd5d924608f702f20c752e
7eff1b55b7f9a92ee0216e2fc463baf2ff098e0cc369eba077fee3696d2bac59
9f0d8a10658be280bca9e4f6463345fff6a7946889bcea256ddb832f786a7bff
1325de96aa850aeee16156ce7b83b6e0be781d64454d68305ecb544e267b7610
acc9e30194dd0da71cb9cce358983710a4aeeafceddf47692f6987d174ee906e
8d41232a27ee364ed9a356420d4dbcfcbf42821493ef0f92fa1ec3aafe08da48
e1d32f60a6d159680f2ac1d56505276ffe0736331721aa349f935d14c0108d8b
1957287ffc2800fe7d31d00198d3c5a3f2eaf76c58fa22576622b858ce617db0
386c9afca46a55dca0c0cc10cb4e864ac59676c918a3b5ceda7b8d45ea2f6cb1
3b0401e07785cdd9aa494554bb207a869638aa10d2717fc8c7584b3b85f9c875
598efc608b89877d06c17e7e92ee5ef7e5488fb0859cebd3ec9955cb216d90be
17fbca25620c2ab80dc0174a7f5af0cbd006c323fdeb617d649a97f2086ac559
49ad8f9459bff018f7f47b2d46da1134b7ef543af80aca0027236463635d88b8
e461488c5f6076138c121604f986d7571c4cc0b9a1b6ec41be9ee8a33b4c96b6
6b73efb2e6be7afd6b809fe2284f54af2219541e800642158e1d6ff160f3f2ee
d0c59099a68c8a9439c54b21b306196f87ed4a05123439637b154835bdd46be6
3e819e1e5cd6b0e6a56c30ccac5f57e9eb661bce83251a8e1ab88f93cce6000f
8a7be2bbfae9011b547bb33367d1b3a5e0f26453b580f88b04369de94b518667
a324fb9a3d814b871c3b6f33fd5bde0c61411d1be6b7857f7e2c5cba954660a0
9d84e80f45fb4dd498f62dcaced344d5e859f675c8f1af6ac52ec645f4d42a0d
60960b95e7a4a832406cceb2fa940fb41d04e095deb4169acbe1b5350d5408a3
27c4a96e8964fd627854cdfd72d01a93f04da75d47b6f0dec2db69fa445d656e
239687ffeb75414124796bef60be6c5db533ed9bee690084d03526c222cba4c9
1b161354e4321030eadcb1ff4d613b86098de435c2d90bacc7eba4287ea1b6c9
ef7d2181228354f42ac8b956d5528c1af5994841e89d441473201a53d65c742f
d75f9f479ecbd76d4b3d4be89c66821ab23056d48646c469e8e2493010c1403a
39de0b7e0596fc296ceb017144b78a4c812df70ce460cf9a4f102c8fdab5d647
8b445efdf29d215801202fd22a5864730286d3eb228965debb9ae17f90b837bc
1de7a72699c04240d8bdb303c67503acbce578b180f445dd18c401cf50d515c5
75eae31c78a328820dec7acab448c6380254d18a2b63d49445c2a2ba900ed3bd
ea57c0e96099ed661b35e022f3c954f7366ee4fbac8e56417c8f7cc9d11201e8
cb36228727a1b2fe471916433036e35b5bf6b04378d3fce1b0dad98bc4069bc1
a0c256f02252cddc94801f6eed39439bc888a0ea193c4feeff12f9d0ca141018
e9b5a4c5e3c518903e5a6a1685e115f62084de3f6f5139d720b79c5ee2745a62
ec562f70260e6aaeb594f29eacb78e004b00bae8287a9fd278d1f1cdc678a57d
7596cc22763c4d5cee54981447a85e1f00b5730693d1b4a5553f150de4a69632
86d8d680098d5d35dff3e21bacc9efd5ca3a35d8e191e8ce1b2e4d489e7e470e
5486d215a5458d6f9ab36799249553caeae552c19ef45a8ac22d2267b6773230
26aa24a6aefcdf22bb9061f9534591bcd9354c2373aaee8827146043167bd786
82cc9e934c268d148cdaedffeeca2cd43b5333e4f3ad3914b5b7a631ff022bca
d2201c7b47d56325e89fb641ac53d8e3d620ef7d18ec70795ca74c8c29409127
618683dd66e57a69a40c5ff8364ad6fa7c76d1a26874f68245818b3e75309efe
587ab451462b7343c7b3b7ea4f9deea8f8a2177bdf274f64dda5c17242dd998c
6091882afc4c8bdb13e1394f110d6cdef681ebb6eff784eecbbfb61d4b01ce2b
1632a678c97b8d231be9b192b7898444b82c08857c35e9362569fd83aa69b0e1
781eb8c06f911e73fd3ccdce4deb77e8a1b71499ffb6fcda43efdf475769a7d6
3e557375a09d36ad98dfb75f5c77a20c60c92539888b0e986b85c9ba25bda729
5cf420440aa9f0cbcb4664329257c6b18981b3c70652cfe6bb3838f08178aca2
b9860747d237c91d2606993d0bb469e0b002ab71c102e8cc0314c862a55f18a7
934f39b88d7094267ac948682c40ff691787ce40a1632d662e97ec7c141cafa4
72ed554c49f985a594abff5caa36b6e2709dafd496a83360811464524031f4da
dc49e117b684c0e7aa4c65362a288e606b47e3ead62c8ee72d49db7cf2924c8c
8f3bb2a137d74cc63887a452c41c55e13ced21badadb0f222530b56334505080
65f89e6f55060194357fa161286fbbc58c1cdfb647ba88c5085ba4fc3894430c
032c93986067a733a1771c2b4b4d3ec04020a506c394362105a47eac660fbe2f
c63b1ffef43d78d8b0975f52d8472b335b945c92f2068ea4cd3e4a321b686545
ff519d01dc4ea330684ccf8b66364cbf4ee96cd79303d73d38e1992170f241da
65ed88ece67dae021e52fac8d631fa970ac1ec6b8500fa229ad9cf01d3c8551e
1db7d7ff5904aafe80f7b98b767dd6435353ce8b69edfb7e27cf4163cece36de
dd1e63eae3b7f40e929d6996e258761c3a8b0956a6a1a46a8b0fe742a6be4fa5
a0d1f9d4ff5da201544d6b248a6f8dbc9a12fc983bba3a8086c73179dc29eb2c
b96e318ad821e5d7379928bf4543955c892ac7b94f7977c867171e1a53156c16
dfdc870cf63bba27a6d08557c2d83ec21449c654119037db2041fedb524efcbd
3985e3e344f6c1617a20a0489dce5343beba3458c5eeee77ba6dccf95e728629
ba70024191dce9bc18bfe29ee7537e220f28e47c9f39c02b335f49e5b3c44053
cc47e83bc01c3bfa51b709929de7e1cc498c6e77c96b0357e35dd4077ecd6bf9
2f2756966e0b7d442225eb9534c55afc5434c4853e4b3e9834deb4a2064e854f
5f97149140d88d792e46a0ff7a3299009a07c3480018b2becc049c40914bad35
45e25861656d50448a217b7f3b41b34f023b544c05c8b79b4173c98d430ff1f4
e01e12fcaf52f5bc61efdf9e0273b7ae1e63218eccf41845a677ead18a2ba8dd
0f50e04e8255c4ae027637b214f8ba9260f32a49585845b0dc4b6c4273575cb9
34e07310a86bf627350d45138b0492b9df729b81000ec3c6c09cadb3eecce932
3d693ab80d3fd595cadc25cbc5342e888e3e57eb49bb6aa74815e94493a20d71
ff23ea8cb80ada8531dcc2f1f1d2b1d758eab0745b93a6c60b5dcdd834d52e1d
aedf85a09e9d1849830bdf0ecf9e3753283ac1624d23736791d9bcdc319dc970
15edae64a122e75cd6f9d6299b9731170ea4351fbdf0d59f55fc86c00d901f86
093650ea4c49daf67f73f3df43482cd9f0841b867fa3d2a41e860defe015d518
30aa8231871f752716ac834242a7df3a551ffdb801c1ab78ae802060efee09eb
bb9a1e455306669aaaac1861645bfcf70014bd7083a1f8c72248423804e81365
d1a39d02f91f13f8e1ff33298c788c86c2e751a6f848293c1b4b99ad0fce27f4
d8e740222ba332555a55c132a1e4079e41be23da36bc84c4cf34e0abbbe1af29
7a65cf22b63a1340f21d364b7b349ffff0ec53e0f3c12409c72ab5b64316fc20
b33db208e9556f59abf5faec0f35868a3d7870835d43833706897dfb591f78dd
fb4aba5a8521cd10693d580fe71917b76d37158377100440889e9bc9acf2370a
06af2407379128689fe18c99b28033deb8d34311b057858fe49386b70b909117
ae9693bad691e406a177788d1e963389fa892ad9429975969df0f223625eabbb
c0e5c41b671e79c80c526617d93a85586b2ac9ba6e36a1f80f0748be5457da5e
923456020ab9b343186a96b6c9e316233e67d827817aa2d457643031b2e2915e
577b4d05a70e39de07378ec4bea697b3fc0af204c4bc0208143542d73fb33cc2
27798e3997ad9018517bfa3df14cec611369d07f0d4f09f0888b73f31501dc98
9d05a4ef386fad42a24b392cb3fa872e356d6f78db0ee73256b0d80c684718d6
2e71bee02ef984b53ef8c06a8de1badfd95108afa78e1df1975fde67c7cfa096
e0b7cae99842cb4ed1561ec5d3581fef43d6cc83bf185b49bd553601d86dea32
260223467aaab64efc7b159212b79e752877736419974fd50e80600279274bbe
df98908f2c18a7637627758d801d83508d53f1a8cd094699524f61ee89f854ef
86fbeedf44772b0e6902c37ddf0935280643b0aa010cb455400181ece7f2882d
5ca24c0e0db88df6a98a697370bebf4d2c5cbc89565718e76b1895231c49e099
2d6e9c8071975ecc1b6bad9d5e6d0b2e7264d22fef6d1bdb4993f891063b657b
a8921735dcee77f91b74610fe400a80cee7012bf4762ab1c31f8f94b5985c5ff
c6608edbdc0eca692be521d5db29136a2de401a4632844a27ddd4ccbf8446ee9
889f3b564a416c6794e3765893749059ebf9795186dabc6a6d8a23f4b4c73bbd
f6d3e584752c9818597447651f64d8f6220e1f18726ce9a72e8939654edcdfcc
df9adbc87db9272b5c60887ea6d2ccb9db83bc042c9f86b59364a5592b43eadb
5018e0b51af9ad85e05db2d910a8810d35fccb2a3105c57ec070c8be522a5720
2c82f422e4099c7ed37958aeb28caa97cf539407b204c24634a3cbccfad6d1f4
f42b6f255131d7e7e00136060c859bc7c230fb6826ac668ca1d2dbe500e82114
308083a9876ac8595ecc824ab6c2feab54e667367ce765206655d5a1fe9f7f0c
48e8762fe9591e64250798c3214ff85a93214540f2b528a87501b8f2359617d3
4a052cc671e109e9a6b02c76f3b84c7440438beddd67a6c549d7af93038ecf93
a4228975bb208fd556b2b8ce4c0bc1345ef13fbde47cf84bd294b437dc20afc8
eb985f97e281790dda2ce887393d059a277a52a0d8c175e10d875d35cddb7dba
b68d5b4d2bbd7f79c170a29e9af2c0ffca2f819fec0d50f0f8ea33438d7d5d8c
ee1e93cf269ebdf1f84e14f64304de6cc316da959a45bbc7aa7029cd33c2ef86
8f60a13b0bcc05ac55cc670e72126aae363f9e9c9bda41284e0f39eeac941bc7
5e63599056bf4d1b47cb5b91e62d237b2ca289331ce6f073634899321e267195
fff3b6cda6c8a875ca6148416f9a0b87339042f13d7b6174ae3dd2712d5b0322
e15d8dc5baec445142590ea3746c8a5f2d6ff9d6640889c7ea5530af02a7a01c
60b3d228f840b1f87031ae41f726eeb266df8e242bc3d2b0652c35cca0b7fcfb
4e0eeacefa9d04823cb41f604fd26ebd5d41a83f34029700abd214004d8f01ca
c43c00a76fe392fd561cb02d107ebecffd9755c1c8730f69fae2a4c333a04699
97f7e42f5f0ae6a421edf2be0f20004f86b42fde514b01e4a9f6e052403be79c
782ef43f36869f9575dded344885e8255ca8ab711a31b0fbce70901c18a322f5
498e12a134ad7abee9a44d15d9b821a65951d6de7509907178daa3d24a91e55f
24f23f7fb99bfbf4437cbe58d24b04f5305651693d3980fc36ac54745e257b7d
c5e9b61730b7d5fe77a5af715707b1cf58aeed2536f88b8605d89ccd550070a7
d5c386a80d3b1578b3efdab366c16bf08f05b07b9f42502cfc6a7c2500e3a86d
2b10d7af9a26cdc762706157a9b3fd958f42565263fddc5924515e7d4f0410c0
5990295ccaf8bfef8e02ad0b4c6ca521b7c61b5542c49c4322764be2b1f4bdf3
7624fe45c290fab6a4b7399055be6639ae7988fcfb5d4fddeb7593cce2208dd6
c5ac1794a31d7a3e86e9837cd8a6827480a7a03b7c1b5a009285c18f16470ea8
595b1c18513c2abd3a255a88f46326ac79eb3419ff364d7c57b48486ec1a5b28
81aa1cf44339dab714f3b29c620deb5f6a65389ff2c35e6fb6d0141c56df2e0d
7b59e98f57875f970ae7bc7e6f583bd1e0a8dd3283b81e9ab616cd4ebf30d5e6
b9b9be904462f5855138b8c07324ac0bfbbb85e0ab0a05c6bed3a4e84b3f7820
91acebf045a14af76fda9c47af465563990ff0e5e83768708b5416f4b2f568ef
b2727fd373b4705a532f4c542a2d49ffdb490749ad6b8a5fde04dd5eccc8a3e5
dd0018fda0336c5826bd93714bde2fb51946184ac8fb52c810692ce1a24bbca2
3aebb01a380f7d86a6e9d546ed854a7c9fbd9d885b22b104593632acc8b056b5
34e298ecc09cd37019f57d57397608291916c855fb6bdd3b809c758911b2db33
accc302afe2f3ecb40b0b4084dfaea8c01d694857bc57f13c57a15798db70fff
2155d0b8803175ce47733bee0989b4652549d0db613383a52b485fde09d9e964
7cd9f9c6305c4cd451f43c228399b7e2a71cabe1b6073ee47e13b6874d70ade4
d9db5fcd26de4178a907f9a93b004beb015841741227eedb663964bde859a035
baf19296787e522162cb27f574664cb2d81fc7e122bc107ecf5c54634036ac31
f9d510f492c1e68e8074516def724f748546297b17241f777e7eaa549317369e
ba3e491e05d3129846ceda95e52d2492630bc35c4ef7f4aa1043a45cf22eb396
eb3f859cf96510c80f75b7a7c7a47cd10ea69a9fb263f670a0f9bfb4bf3a3aff
129852680b2d5f6a9dcc8b52f44ad0243cbcab541cd2ae01cb6f38578c4d5df2
42c2942b959438ff3c9823b0d3edaddb78cb4c73c638d3c6bee15cdc9de75219
03d2ba629d598faa192bb302b1299875778c65918b02cdf95fd8c1eb258b4850
807fe1cb2769474f5458ca00fd1b5a7836a12d3460990b09c99fcd08dd7a3224
553b28a4bda1a709d9ffffe4c71038122444aa6d2d165f02cb09af01127a2f1e
d585240027ca350268b751ff70aaf93b5e602aabbcf1819896b248df1500639e
0b588a2edeb8601b21d7ec415d1946d6026fbe32d141f949c20a314ede34c4d8
d071cd007029513643e27d9a15dc2b5552cd50d664861a11c1a74dcaa7345557
2789c7d4d82a8a2a01f69e3c86c64093146caa3c91bbb05383beac4a05641724
cd9d5ece6ce8f1533017342d2090a811f8297d7746376f220a0a57f944729d62
c79bbd86a7b22b590633e8ae7fc54a382994f5803667173c5db964905f0ec530
c4524e74228cd3b2af78328ad796a38d262865ab18c3fad04fad4a6be225a898
5bd6338c52b4db57f457e51eec9521dcdabd3e8c284d3f27e2e86b33b03a910a
d0777fb2a278f6e1239762cde0f961f0291492f7359503facb6bd280af98995a
7907496c7bfd4c975dde15f0e8a28977de5cd8912de3f18fed17a4e7b6e909a9
f0a73d30453776323a6ad5b6fdff0cd7969f928c5e592b18493fe8b8e4500a3f
3c77c88019d383c49a74bd336374bfca0caa44e30a2a732fd605a4c995a9365d
84def66e0a6b98df051bbaefc486082039f116913149553231c6f4a7586ab199
7ab282e9098b9424115050562508cd16a31aa57b9450169df906372523e176c2
f1ad4c910035e5ade8063a03999435a7e8e2f90dd98a142c5aa712dec56b7377
dc0fa170b9bd4a60d987d2538147992df8ce66e3e64bda638f17e6b4bac6977a
d5af69253336d97a09b2271d211037e359ce80a19384836f4ee2316311535171
bbaa9f969654008c3d10f6d88bf87c4cabecd037d26ffcc07978dab2bc97e655
843b2f720c3f354d1571f28df221b928edbd1e48d14ea4c595188f55e3943bd0
fcf79eae2666157714d861d8b2c9402a1eb51545184c8b77cdefd3e5be48cc70
233e4059d86a0f2698a5273d01641579e35d354225c7aa14a80bde2893b09d52
63e948c97bd4d9abb6a43dd4c26855c12f22558c7c3ae78b881674e49c321968
48e8ce12d33c53ac9f0a42451aff46c264aca5ba264d58dcdb80e6c47b6a3006
bb71d72129e0126332314d7c768cfb8d30e3f57194e523d1bcf05a7b72b37dbb
c5b551aeafde958f4867725ab27d2c6a0b6557c3ed7571f3bd196dd88d8f6a8d
7ddf820483093ca8b3e3f90f3f8c80a4c3ce2b7ac6605abacf7b2f32dd03235f
7a489b04a00a0e9f68a62f455f26abbd15558f1d7f5f1098bc3c12de86528fd5
b9e07a00587a22f6a4ec1801fdc03373a9c0552882190d6049d36316f09a0577
9bd0528a9e7d0eda10b75174f63eecd1353d3ed6733f95b73017d324d4811eb6
1187c1f678726b041b30c67597a63aec1552890a5960cbf6ef1d96f4c455cfc0
92eaadfda596b0ae4393f00c1f3c6b71de54393b0df3bd0584aece6ca7527068
aceb6fc91be901cd8eb4cd02f5767bd81ba3d604a7087c2b747b03ba32a71ccd
c83d53cf32159705fbe4eed1aada3bb0e2ecd032c6e4004164a3aa4ff21dd771
efd96dd39a80778b84cf5dde49d03dc1c78cbd739c77fd3bd0f2af20a55b84d3
03b693cf76682a9ac16c5c607060db2eccceb501af34956f745d49bc79128003
b79a06471a4b4ef1ae39775d451a54151acd1c1c9d88531d21d5aa15f0cd312e
005c4e5bbf1b1078c01704d50d1c1865ba95d09d8518b2d44020ae2ace80ab80
dcf62bc5439a6dc274ea9688bd034fbfc4763e9f50ac8114561137c4ffd30ba2
2aeba5a7c62f312dd7ea56b6449e6028972f7121d77b6c1130080aba40c7b681
44f2f77a6b931233c5a56b89c4b7727a9417c8a2101027496d125cc5c445cdcb
25df1a20dca39c4ffbb2e5b5f3487b22f6663870f483074692c9ca5f7151eb1a
7a3c0c2ba34e341a8b3ff1f3ab4c92d4159462c89c99a205181994baca286d6a
acd4b986a7d2aada2a6c4d4a1dff6879f5f94c09cab208aa705287bd37b048f0
269cd2e934fda704355b23567cbeb742bb870053ec5963a9b4854f17ced921ec
4a625e45be385fa875ee4cd99357d1ab18edf9999208f76e759d150c69e4ceca
4e949512dd5b03ecf2430d54e7349207631ef5acf1db0365218aaec10d0c8a37
4b6461df22f5663827d87c725b75f22e259d99eebf7668775279187e253a55d1
54fba10519c1e18f623cd210b56e67ddac67715c81cdbbfea005c6d4a3825104
99b12fff98ab78e349e7408a7b20fafc1bf75e6534d3acc382caab3758e49271
70c9b522168b3afd74bfbe6d2b1d3e9a74a904d042fb014b7ff7681f005997df
9bee615bfaf4552408013d4948ec9c54bcf51dc5a0801eb086386085eeaaa7bc
600171a70f174ce0be98a3d89dde25cc4a65be110c2017f3e67270bbf2fb847b
55165418609c08b7e45c5a083289e83473b15377c8a594f3225001f4d08da990
acd7fd2c14430ae172fe093cf29e35d91bbddc18ede893616afa077dacfb29af
a88cea6eeab1cbc447a11ecc8ea3efb1becd061f3ffbbb49a36cfdf0023e51fb
d460476970092dcec6c9a9e08c2bf417046c572f948bd8562b7d628640f97ac1
9048c0cb5a6074f9f7916a91e7f519042d09e558d78268068d1eb2386cfdde77
e3111da844cd6ac5b1c0e86b5644dc42e807f7d0f0ad72d98372814c57cfcac3
3737977060d71a88f75dd1c79d030ee6fcb6894773cbb2738535839dcce26bef
2108961450492694ff31def8e8c64cf93cf65cdee83b6956d2ef27aafeb68539
4949d162dd95790a4f3e519d8ad2943f7146f17a5d7f02ccf2e8c6462e948aef
e9971c5fd8101e4158b5fa3b780d7263118939e938c5890ff756984b446ace36
c39cfb9a1e1198c6999c3a2a8b1e94e796175adc662bb9c6a471dc0e668ba704
41689744d6bf9fb578fca37014939ab76f79132d9d5a544f9e272bb928e4412f
7478d0990beefa5e9e302e7b0e8ab9e0b2bc6c869d9f66c3dd32fe49205d2859
8230c46a4371703b56f33569c81d35d0323f5106582df60bddd54177634107b4
b5d216cb4a65a346703610b0a78b7e417a37034eb214c3aeace4a6f158dbcf8f
10d3001f545a05c2068e603e8f17130ffefe49efe6174d1ab4c2010f553f9f0f
76dfcea2fa0b93e89c8f84614071be7bfb7963589cb8ef9d6857f12f8b609e2c
6d86a8e0eaaeee8355534f7deaa7c96f055f70fd373bb6297c7f29e9297ac9e4
91769f1a43469c2224a3ab55841390497cf3627690446041f9c73288cad5f5ee
b4e8861c6dc3005c84a3b375c59712d9de332e649268ab464f0ffda2b2c8350f
adef5415247079ffb2d6f62d8cf115beaf1f187f22ca173e503159b490e13a71
c31a943629ecdb83348c8d4693487d8666522c533269ca69a6c8c6f47f63d0f6
e8e7cad2a270df879490970ec9d4c53a80fb459645b2d217c731f0fafe94778e
215f0d0ba89fb900382d9f01c21d5b950c383b6534e7cc403340a0e724fe1eee
312f8a009d69f4bb71888ea6f3c8bb3a4d971fe98927dc1243b17b61c744efe8
3f295dace422e9b350b950d590d49a1f0a540bddf2a9014e77d2ed94a1792834
76f512fde479ffccea7da27885ae1c5920ccb9f58e505dd97691a1befb725e92
40fd41eb17f10d2461ff3c09652938cb95c77f243587a024c1183c797db1b645
d2f3a6609962d86f6fb1d59bae8c730a4c08c9a838e62cc87463e07c6bb36646
1968404af165797c47aee2b64012fb41df68b738726b8fbf4bc57704e65e5e58
719790df9dfd62a3fa059c1f63284f4dffb46c3da1d9682e4dc6d42665fd24b7
85bc31f7d61d173c69e9c3342d6ec0fae7287ad4c3c14962a74e916dbb310432
6c64fbf091810184293add602c1551168e490dcd5bba13a539492e19e4b1163f
d070babd88767f639def733e5ea700d1ff8cfa33f02178a5c79903952e9b6b5c
849c3aae811851ca93dd00019e2752ebf6a7777569e7625b7c515c3ae31dd096
914371545147c208e23da2810f1ffdeba2a53a020d5295a2949cf4fb9a61a5a2
9b8d69455a74abb0fec6f9d76675eff13e2be19544e4357a6f940eb114d4fac8
19cf97f16aa6c0b9a60b20ea288562e9c396ea5196fd069d523f5bbf9ceac168
4d6a11b48f4f7d0f75a0f8833c0aa9efb0bd838f0f7cb2d3fb4798c53fbeb199
882cd5f3d7527834c7b34b217ec8b90b67809fc17464701777d1f9e5d0c74db7
d48403b3bddfb4668157e1857ace7358f04316b4c0493c6262b1cf81c1f32b01
b36e0bc854725a92e48af0b43745d55bebbe86492539935fb9a12b3bd8ac47a4
803782fa637d7952e1c9a8f20fde38c788f32953f132acf68b6447d057de9f76
fa5d0300eb3475cc6642e352f7c321b91111209f3c37fed62b1cc43dcf6fcfe6
a0de8bc6e9f69d4372200c9a9d8cebb9c9ec50a9cdb18ed144b896b20314504e
bcba6494117cd3ad073e09342a848d8c39089addc57e51a8cddf72d4f9de1eca
774be45316b55f35d35776782052f41d1bc610ced7eb04a149ce7b81abca163d
ef6d5411752908cd4c1a832ee8189a742afa15afca78a08eac209b1280e47764
ff586d2f51c3b85de62dcfb81ed4d3b877b3894b83ca8156bfd7af2dbbcce746
4f1aa8e29ddcdc088b309c69425812edd5fa2fbe9453573373aa4db6a3559e51
85d3435c1c93baa609384e0ff8cb196ede140406b27d13032264b7d90f17da1a
f99343f97c559f55cfc3fe91c5542519458e01ddd4df2f7df43d0925ff2d847d
eff54fcb9a4c14fee7305f7a367146bd030972142c1d4058d52c39ffa19053e2
50423a8492bbff9baec1674004407c2d4da3b9b72d85b8e9e1c8d78839736248
56c0ebdadfe3bee337e1a74e4e3371afa9a711421208f176b42fb60a8d47ac6d
c493fc134b6b0ddf52c9a5fcb280c50f045d77b06e603b45245970810474f06e
0e9b7565334bccb99e216496d9e49553fa587b177f94f7833091cd3aa61011e6
0fc2a2e1f892ab6cbdce32b72f47167f679142faf6d7508fccbce16fa9823689
c6ac5d9d31e317aab16ca6c80894e6e2533479560ccff5a760e11d9f020704f6
5219215b35d5609de8975dd95b91c65bf460607b8101010e0d044d348fc64ce7
41680988c7b6f7b0a6baf26c97127da181daaac6d489dfe387c5f8b7bf18d256
841bb8c56d44902b6c244cb3e27c0028a931f8140bc958196d8fda7609cc2988
8457459d68f466bf88fc98154f77b2accff69f94c1be3cf36d9a2f8b584c0b02
f4d7097f961836b5b8c3dd30f148521474b192305290a2de80fae088756f0a08
1ded154ddfc659c2c9855de54abc82b0887cd07c517575c76960b2d830877a46
70e125f0ba4682dc83a13c377a4260e5b88c65ca304c742a3fc15f6604cd698c
66e18aef73dff71b31496c1293c6f463be051ad38cd71570b5d65b2ae2ca021c
dd4d53c75d11ec80711167b1c7b301501116212a79723b6ea0d07b636c634115
1b27ede2d351ce95dc118ef2dd7e458144bdac60adc730d6d3d9675e032bccc5
454b550fe850d68a7950ff95ecc502c45a9660f7ecbfd53f5fdb7a18accd33d7
8e3a2fa0f6da0b15cf2c09aac8e277d52a947cc18e276494545ef11ece344d67
f4f10a0d96ddee4050e80e88643829c3c8d21947bd3176c00c2f37873daecb67
dd66dfc325ee41efb05fcb91111a0e32d02dd0f41748c59fe71bc1cf2bc41de6
e021dc00fc086efe53cb037a19063d72a51a306f071d7b68d28ea914c3f8b363
ae2924bd780d17121939cd1163ff36df63e5b35f5f35d9924edeaa2b21424c0c
603fed880a323165fa4e40aec4e15343fc364dd020526ed17567f6b449ee6514
0efaf1e55b4c2d516a43509115950bedfeda4929273fcdb8149f171419d31979
94aa8e19b3a6d3176ea423e9515838b6eb36441a37de794344e2a308e8408ad6
260b85216277b5766646191555a2c16e1eb315fc8474631f5d58b59062f3a90b
7a8c1157a6182a19b9a57ee80cc2d7a7c174b050e7d99abe8b5e322f97a74776
917021ac0c7cdd100fcdf6bedfc3a40df47d6b15f4fa6382425467204233c2db
bedf3885107f3f16d3daafc104bb37e4038315ad76b625f6b2d8b1771db8314d
2aaf9cd7c1adb9400a81e5bfa416e22e9cb0d82bb45125202a7bd30f1d291f56
8d6eb5725eabc6684fc7b8e682dbd36b61a0bb2be75d253d85efe851985e86fb
e862e90d79b07763dc20f41eb394c4ed352f5343f5ab9755b32cd6c9aa2e706d
5b1252547e6883789021fb5358325918c6792459cf384bb5cf9bb653d341401c
a872c7fac51028d6595993a3d139748cc13d9629483073f49bc4ed2400bb71e3
d15b006fddf3ba0f3a115f9a53a0e847bf
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 65 /A put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 77 /M put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 90 /Z put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueID 5000828 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3ffd20326947b1065649b533eb5e9e3
a88a87fe987918a687950b26f647d6e08bf14d983ed1d4a8ca1e2da8d985f944
2eb916f5b6ed0697ac7c33e1e36a3bf460d34ce45f1631871097cb04f18e3889
4cf4ac1538eb19481311d24fe3be7beaa4a3730e8b4831fe59d6d9ce2e46116b
629c7ba2f9ce3ecba2f43bc162a5a077ca1b2882a42afdcec3f4b75b5d63e0bc
8e5dc95257766d8ea467ad9cbaf47be60f797580cced6884b3a68f70c91f4fdf
80fd00ed9139e7f480dc3a76af72ad9b434187730bdfaefe4cbfe5c7edcaaf24
9204fd703011932e5a3c27be468b7dab69daa18dbbb6335ab8ddfdc607961c7c
02582763fa069d43563ba17704029945cf42fcb19cf78c51df0ec4d851086d43
c1ab38e865ef36865fff3a08b01cbcb070ba4893f7482dc7819ad03d337e520e
7d8cd83bb8ac7aff4df36751f4f12aaaea2b6d7260c09a26e987c904003e0723
7dbcc4a8e4e85cd3259f40d3caf55c742cbb40ad0db1044c20a4f122a63f7b81
1d945bfa69662189ce4d089464d2ead9f6ed60b581b04114d5d45e97be27a576
35154e9b8464f2a0df18da855eb51b8f64d3054b0b2e84621f025a0776d16fed
b988a43d2d64c32768dd106b9f541ae8e68ac0bb7399e16f4d4ba074b2152d0a
4e9b5bfc21bfa0d531e28165e518ffc054dd4ed0d74eca079d20e79670419f92
e03bcbfeecf3554d661596f6f29e12170804d15a250d917ffe7a8b6e8fa53047
1ed97ba56481589a65ca13619129f1e26affe6c22f0c38540f8ce37efb6e9e9b
60b51a5a9cb4454fd7c7f92f2f9437159687ab590f35b946a54491a7739c9269
e0f1fb48b129811c82edb3171cbd5105fe65906974db8a7da92f4f43dc7f6b36
6981146d86d23613a0b38d9d6191db9fea0172e982cb1cc50e382f69da1b377c
1be9407f88a2a761b56f398467a057f35d18c01cc377e006182c891ec80272e2
2e3a5c7123cd27eccdc87392a9fdf63bb40f02b7649cfc53ef933c6518744cb8
9cbbd437830ef5b1d58b00b67bbcf4426dc1e6ef583b0b4ad3aebd741e3ff0f7
29ae271f032019b1e7268043fd215be590f9cf24da14a90f1683afcba8006cef
5d5632c2481fbc1bd8224e8952debb7c4596a237e5505ac143180956ca1f603e
ec70cdb4a33e1c4ca1744adb40f9743167002abeff7b379d91065e5fbe232b2b
9b67fc2ba118438a603a1610d891e6d1911c604853d1e26de7640cb94b16482b
2fd8e1a0375f6cb08e9a695d433472363f5d7fbad693ad55f1d27fc4d52c0b86
c1f2f7856526af7cc8f32cc1ec116bef862215d4d5bae2dc2b015d4111288b07
48b26c9617ed209943f34e73692ee6e6dc39636511070b29d6f13d11b89e71dc
337b96585831e49bb11fcc63a18c21e736e29c6962d9404a8afe39685c9d0737
33f9c08020178c7a45f92d8480a63510fc85f40fd15684f9bbdfe160d7d22e15
ea2ed221b41594f59c7f54b21e9d3a00179858b53f2330ca610b6e4b2090f755
a259fb95ad29d37e375b9add2e0b7f40e6356b394a99eb43fb3225248480b090
ab8776ca88b489dc876e131a9c79e5618aebcee9def92cecf8219c2f43e986f5
3910ab338cae38aa1a961f487f7bd846c8b8c40b42a92716252148828d136f9f
ba8e2f609c4e9b93b3d027459480c6dc59ec328999396e98f33b9f5e588d3f02
a72128ff1e555b86f79b1ffab95c7868455f7323068fe6f6e3cbf69429d2f364
95fa2dbb510d728aba4337f4febd094947292920d762083227c39bb21d37697d
52b2f3e3135ab0cfb52636765e25a02692dcf8eb0cbd1a50c6d21667af3815bf
ff42e6a30b11ab445d85fa9970d3fc773bc124058704eb56addb646f5b9d97ec
662e12628118f36c535b0bae19ce93777ea469417223c9aef671ad710e7357c7
3d33b2f18831f87035f6194dda4dcbbaa70915c84667ae597d9cf17f0d76ba8e
270a363589ff90ca3bd9d9ab044f91660fdd34a6c1f7649f5104dc8a76c7bdfa
acd0c669de20929e07614c501f7652c3c5aa804734d20955367d1eca12064288
f5817475138d4c7211e849d977f2104733f94ee4ec0e0acb53dd77d0bb68a03c
9271d3ed8c633648e869f39a98c9204c5b6835570b3f8d32872f2ad3c56ce188
3a3d1ff7bfaf07741cbde9e66d02181c0802fbef941228fcfa5d0704909e4997
707c314021d1161b1b3fd11799e431daf80efb34f0dbf377fb520e958b70adbf
89b7757616d24dad1ca97034a9da2750aebac9d39714fd5d968bdac8e6e5c2a3
bcdd00a41cd88f523db3c4944e42347e2997ff4997ee03ba157e60603b4c392a
f6b0f091f3b4fd193cb71c86d56b94f1ad3142ffe62ce1485c6e32e277d7b37b
010b2c5faee0f086d1733601eed66198ac261cf5bf3f4ed82cd0c21892a3bdf4
510cf1d42b29f76e52a56a3d83728a85574744fa135e6ed68e633ae802fb5a85
979a9d44df05a31be0f1601045d7b6897bda162d9778cf93d3e1e9691c4e24a9
4151bbcafeae75828887910941e28be880e0f3cfe53320d6b041ae0b2a1e33ac
628264ca8e43ae1127f41d3bdebaaeb68e5186263dedab64b300baffa6813f67
7ef826c91df5b1d5fadad673b5f0bab3a60a4a23894de914a3a78c940525d522
19f84dc6b2f0d93a41536f7cf4677e4dc0ec7418a23c24e2f9aadc813ebf8651
ef5ea67ac8d2023e7c57a6831cc2cf7fc76bb7d76df030e682931b0a30fbf140
21b8eba52f21c02e145cdc4086dee1f22e5644b122c14092f102d9646bb05559
ec9035fddb93d0613c67e2959c28e7ff0bd3325104e6f3491a7c06d16bd810fb
79faba47b0285b5ad13df9d79f5e7f067822201b2cfbfa8663b928feccfe5586
d902fab021cf86ef82d817d9e0e6c784fc94c99a7d09ad0f27e1fd5099634fef
97716b018d5329940158c3bb351c2a205306a8f44c86ac3e130f67ea590aa5c8
91f1d44e7615f3a9ef01873dfbb0f41456ea4ee55156c347659bafb40413eb5e
f4abb49e6316eafd79d32f44beeac6fe44572e2e811534205eda062c1375aaaa
6bfecdeeb60959f8c9e6edcd58f97d159dfc0efbe8f49892bdca202be9a4b874
f87e9c19f26e03bf5fe43db6803b5f7e0a3964dc5aa941ff8fd75c0d9551e543
c483f8caf8226780a3ca0ec9e45850e6e8b15ac799455a6994ed50d557db7a64
ae5315c52032e62889a09b8857b00eeb05019c774ab038fd6712e2ddccd0e4c1
31320d0c30824c92fde470f3d5e46ecbd8e2dbbdd03208e0cdce405670191791
f683a7feda7c7910ef28d0464011fc96a6d47b3aae6643d27ef5836839cbcccc
62710320912fa4eb1f4966a7871ffc6721db59ee0055d043b0931c0cb662273f
085a978ec199fe2e0bc58d7d0fe59a14b2d14b5f8622bb909e5d18dc44c39b28
2a4341e9d82c77c74411241ab1ef280d5699d8997012882b850ec23d43497447
d10ab95b44ae8fab00753803026ee07866b1f022677b30d9cc4aef54c2b84106
aa054926a7db2cd2eedf740a184d90c73819f522316d42a9e7223febb66ccb51
5ab9022d62b8c9b4e1f0acb8b4e56ac44798c34f3fb861caf587a3b13d3712ed
23168d3d5149584e3222e902506f5286daec72f122d3c0bee45b383afd7b914b
487fb9f5bcd2c60ef4d78a2ee609d2c95ac7a1102d63ab2cdb152ba0aef021c4
96c329cb5935733bab6d342f56616452eaab62f3e0a3efaa9f1b197b401e80c8
f9ed730c524c1d8795bd2c36219266faf706ce5a9896576ed78d97b7519ba15f
c3006a75016f8b7486080f960a8909526305a9df3f877eaee6871342ec1f1239
447214d0616ab20fd0b5f8e578c96f492b57092d9cf2b5afeb575b4bc2546320
34f97a580c1d08ba11bcd483103510e2b19722af48b1d9091d8ed281bc2f1c53
03ecea9c575715c732bc6fff0ac39ba9ecc0fe62b5f99c5632714bb849ca7bd0
9374b8767bf0f2053683ae65c1ea757fe271452b5cdc92ff79f12ed1e92b92a6
cd2ead68ed81e5a7d503a115ab0a35adcadc3a53779fb7e4e9b5a385a6fc4c7b
dda2ee96830d9945d7a3ff0f8303a0c5669b00c378ffe4faf1b0c23b9bbe9523
575493ff254d2defe0b1d4c5862f52da7aa4831cab7bffe2992771ec370dd73a
c25729195657ec05f04f6e623e79f3d9b87664f9595fd51acb478873d06aeee6
88ca57dbb6ff5f40aa584294432b06266f1d1e89cc9254df60ea497663f3ee5d
776630a566ffd23bd3c5768b4da55dad0ce5ea2468bf1833dd861693706b15e6
7d69b125bbb777e98b96c167712bbc79f647cc524bd9a429018b4494f0cc115a
b441d5b4b5471773dd761e81fb0ea3ef7d99296a300beb21f7f9ae72e96d1620
5b210c4940ad16610755198e72c79035be20b153fbf937e4523939792c0441e4
ff020916147f2e91c8193170e1052bb9544c38e0f4dd3831f532d1a721e8523b
b27537b50bc70af91b116131bcbd7ded9bc42aa001a70d38f424f9dbfc120a3b
7161a186af7c273d6572220f8bcd6f0ced623eb26294ab4b5271b81e0643762c
619e6f49f08b602173025efb67df94cb31df020f9b4ea9bc06b617faae8e1c2e
790a5bff65d7f0d5cea732c90ec2c98c6f1a633ae19233ab456f79e1f6bec0cc
7d5fd84a965b33cabd9035878bc8d0e4a47b83b62e1b69aa62790c50699e96f4
0fc2b633c9f19567a06e514dec399d94c32bc154f4b3af7e4323b7ff2f0505dd
50a43e92e5ac798463bdd5fc35a07ab0ca12b2139889b6711b4e2b1ce38f788a
20e5b3c8a4a2c3f93551121d5bd1ff338b1456991c5f52e7e8dc22bbcff6caf9
16c417a64da47ef39df73622c0f4bf09a3067c300f8bcbdcec3089062460ed19
2d2cf39564193a139e019ed33ed5322f12a9c771f89c8bdaf592307d6f6cb91c
010439f81f6f4ef127999f0ae10a062fd3847ae38f29e62d41a1dee058d176ff
445710ff4494e973b3770fb5f94c743145375b219ca4a276fde8fd1873528b90
b2211b05c101377a3001ef90469fc422d3e0024bb7f052ce9b3da1d3ebd8e2d4
d04407c400bc9619abbdb018fb91b8fda39a733b2da73663ae6a92f488a3b593
caa68043728a74d2f4a97c618961dd0e6c2c79ecaadb1aee7cca71c895a3bc69
319e267d5840c6cf6985f920a9e5d4c6b6235f8b5e436eb1d4a96fd924d31669
8092438989b697876c18809d54587ddc44158e0da4266bb3a4d6b80ceeadb7e5
f975b7610abca85b8405fcc1ea367509b84d6af8613c22404275f25c5d1d203c
1d90e16f9a9dd4460296c2d310474a1fdca348ed3902f67ddb2aea9f16f1d6a0
c3a93221a4d41cf99b5af831d086929012af262e596ce9ae873d52ccf9efebb6
aa68371f59a8f6bf5ebecde515f9666df845206bbb37719486e8ebae2bd66023
08a2271d70df1241995bded5b500cca35e57966cbd77e0ee366fe6622eb72094
7b86ec60ab1863ee7cadc340202dac4088670d737681a341ac33ce032d0d5dc6
1e200fe51842a5a3a63c58f5cdf6e6fe0e44a3af77efb6ae34f856f0db45a04f
a085a20ce914b2527cf327622151d4bae66dc00e8e8fcc68b2b1e4b658a83828
2e84bf18b0ff50ee6b1e2313da1c881a438349c8d9a8c6c8d29810d0272ffff5
c0cc666bb7db963ebc2984bcd7a22bc913a610a0bd9b7598bea832bb601ad4de
21c4d5a58e397df9caa3f41483d243b72b4cb366cb44ca23212b7fb15f9b18ac
e324bc591bbb0b20433f822716bfd2f10a73045e6f2db175966334920bf4300c
d28970df0b94647581cec7b2cf00a253efd36ebe663d36f6f31e5b4a82efd073
e01a6d5e5ba1c17306c2b0db7d88f08d9a62f10df84e1fd58a5bc3c9b7be0b9b
77b26e55570b2ba42ff102dd2a34efc905dff70e3e201134a84b4443dddd8f63
ea7c30b7e7cd343b175c0adc679cd52566200c9bd35120b63d5fe5c20f32ecfc
895da4ccecab32c44d0a08c291aae7e47a312e9d400c561d01690a31e3218cf9
e5273d522ee7364a30919b9318d23b2c181a2e01cdc5a02383925678b05fefb8
25294c70e7cb1996139d26ee1f4faade17a244e4c0cdd98a81b0ee15b38c80c6
6e831a1da4d1c4123adaa264a5d099867d74071981e0fcda141f14d761e10c4b
1716c47ed206964c22984ee1ced7a9a27be767942110858a9be14f71418498c4
b8cd19fe853e83635d54563f91a304f2dab603774d8f654359cbbd00090f894f
326c6101c5b6b2245c674b200f468a1d949fa451a8cda4d3d77ac1aaa21b874b
94c4c74cc335f765ea058c5c3c5a0e72332cbcb6cee6724a9f2843008d709670
762874dc08fd22557be616613a6c081fd9f74a4100a57da231365aa49ba09e43
830dddf7b5d48bea26ddb6747708e2a3f5cf3caeabb332d4539717c401444d7e
aeff80f63853e913fb5f8b1f72297f21d0c9c8361c1db7e55c8718ac217c5b2c
3cacc9cdd95e25908b44ecb0ff445732f6a4cab0e20b2aaf1e9b38dd6c95e087
a5926e4be02f667eee09fa4f6e8f976828d046d0cf789bd64c4111f751ac85fa
599aae3da154a1363a3633d65196655c4c95efb50777f5e6bb6cd7f3823f3e5c
3194d09c5c889205d6a504126e704f5c041cafbc8e30b4d09aa95a729d73bf5f
300518bfdcf76dd70f42cdf096c850231c0d3997c6b95cd31661c0ac8ee7acee
5527875f91f2cda388df1455a8fc114c9b758745c8211bfedbe13464ee6fe86d
d139a9dcad25c46b6dbb4e1432198469a81fa6231b4dcc82695cbebbd7c707b5
f82e6b0957e33d01dfed41092af19bba9389e794e5e0bcb4eac2f4b50e6819a0
a6dfe2a7a19781f50a4f66af3be2ee858db3b076833732c14dffff9cb7d19c04
9fcbc72357f6226d9c8f7ee26cedcae33ddbcfe6e05730b2e93434fc02e5b7e6
3f7fabc7820407e323edb49f5cf26107ccf4121cd30271212bad61121a8874fe
09bf72826583692b7c3e9bb2ee65c6d3b4510d4d42ea0776b12b2ffbbd789c3f
8ad6cde3af754bd15ce8f72a7dc594f707e6aabb6b18bf4e04cb682ea31d077c
5c9b5afab68447f644ee4b3653d6b211a8fb0a053ca8436ba178fbba5681dec7
ba2f275231c0e02d12294133560103af46d9e4785f6cbd50180529af1cb4ba5b
4f18de96ada7b72b4a8bf68402235a1dc681a2f6064d46192080b0a45bf35394
63c805bb8a49e3cd99e9fa7479e82797611887210c7cb0ff482df3fb663f0a2a
b55c74e8de7f367a886843b018e185de6c9828d3ea79204063d53f544444cd4d
c8476fd4bf58ee3cd87828ac16e07272eb876b59da4489e7c89efe5c8610f3fe
0e0926f1c2a66c0634db457f670d97fc4f7c99cc5814f7ee147665f770dc9297
a7c772d799d59fa32bd2e39a72803618e343141f459090f81533b51fb3f4e49e
4e9b8be46a43b3bf1bd0e3884f37a066e49b5f447e244e99a09f1c60dd1963a6
1993359c2d55dacaf1524696b7369c109c7bc1ce801406a9fa5e0e78af3abcf4
63790822e646116b23a4875e2d7faa2dd9f3881d27147fb41b737eb9cbecc51a
49cffc14859ef8130f53623c3d014fe98995a31804edf22f27809dbf050be767
ef830a59b34a6888d3d8aa3fb51d4ac150d0d3d6e7012308837e1ee297466185
1972eb6ceedef2f5dce895f17083dd25f987447f383cb167248d637afecf5a5c
1ce303e260670aec0e42e2ac29fb28c741b3bbeee9440af0d7692e8ba5672def
4f52db27e76856a031ea90cab178ef1862b00c6500ac6c35a56be7bb45979218
a804540bc725cc5ef0c07ab049e1fecc1dfee73feed01adb8fcf8f4f8f14ff8f
f96bd0c8c293df68b36108edc557cf3efd5d7d928e3d760d1a59f13336202b71
a24723da134698f8f79ebd052e9c354a3e84fe46aa8943e366ce4b3b79187d7a
8ef7e2d5d0fc70aad5764267b96c6e48126fc370b27b1472b8c4d5827b443061
e3f7e83311b5219bb926bb7693e14e4bbac30befb65bf3068090ec35582d970d
7a695dddfe999d036fd251f43b22c74bec7646d4ff58d0e3f58516b31632b016
ac0cb9dd9b08182a41bdc0bb2c8cacb502808e90f40df3e792cf0354418d8ee7
8e219b97152cfd7ead34c3f1ae2f660191bf3f126c3f52ff962e24266b907a40
d871af6dd782343a1903e98b9f372a8ed3a40e365ec31f97b361a17d1ed90efc
46c48e9dc39c19dc07d7f2fc90bc2aeb8ba8affe35fcb5c251e2044b6dfa25a9
7496e5a8217453595c55cd849f145477d8440b34459df174f011a384c6491979
7a7959b05956c15166a8210edb4746b95e51c7a824177405a51e4aea360155f6
efab5f6176c0f29a0668992ee37d3e0b64043135079622767aa82b59d7d1d64f
52cd8ed4389a50d2c2a9d82b4faf18880df0d45e443e4f5ae6deac24c39b5b8a
89e2a2fcc5b58c2c630b632205d8142de0fcaa10f91ad5e4a1df1b1ea26673e1
cb6798294f5154b840de031e54c5dbcb1c0d998e7b6f6271f060e5efae6d1720
cdbc542b4da04829ed0fa2c2c996051ca51e74bc86d9b1178d3b97ecc49d6848
893c94811359f4ac4ade97a23be22691268b549f7d0ac5bcdcc61d3cca8bd91b
5d49aa4a74be4df2a4da24e79e466608bb8ec297dee529b87e84b3092608461f
f02336454a32e3b0df4de6c451001d5468a098c8596b1d48a2022a3182cde8f6
f91c4b5e55de9916da9e944d7f881b5e63ba7eba0c0400b51eeb3b777d092c08
2691024f76597b71b3de86d77511023bfd10a337f8290054e28ae4032518972e
ef492467b5977aa1ad091393b10d7e36e6f2fee127cf2d854efc1fadf8bbb200
320e43bf63c46a45abc643fa372d7773fb15622c71dde439bf6ff5c176506570
62868b04d7b7abd040c472bb9baacdb0f74e5884b30e77d59d5393f86e537603
297a0a0a8e641cafac6eac385bebd6074a2b4f12503ce8972460b9d0e30aa2bd
622ad6d29374aadc6089168bba320be82fbcfd4030483fb302930999bd941477
4b4d4a6aeef4fbc220df46efe4acf869a5445d4819043d982e9c1c78b4677c86
9540d76b4c1877fac73f64203e8b8334363cfe32aa846c9173bddab89e270a2e
455a58637e4e31261ec850870ab0e32d816effde0c7875d5b68c6fae542554ca
4ec19313f89492ca46319079b60a1140e5e3efe313a74d92daf9509f871b9c7f
e5a00d56bdf2c4357a8a3e853e517788d844ae4aff32d12fa6b1c96b719d19e8
73ddf8367550c88e91236887b35c196ee5fcb0ee20892e73159e6a2188a7376a
8321f7ea769a1c8b9390fb6fbc1f3676b3e41e0b8a2e0b8fe2be762a7258d8c5
6c04c90cf24dc538f40df6bc61011c504605d35a0086ec31b915b0294ad6af83
d30fce07bee8ace5cbc0ab576085099b5551cf0abab256dba2125ca533fa0ea8
81ec7cf41b340676b2271fdfb8595cab8556c48c561217e514c0fa8c844e7c67
cc47283cf336e284c91acf8424c3a88485deda25ff7a566efb97923f58b97bd2
8f3b0770c04d93fa08c9f426568df24210e7924231754ac2ce6d933d62b2dd5c
588c53942d035b46da716d83824b1a413534f78407404b165522486f072ca019
0c87ca7114a352adec553f3862d6c38f3f338997eb489dffe7a411505943337f
38510c0cf3b82eee2e03e12fae08a9a479a13de2379de24550a1cb89ecd4b1ef
baec97ab316b7c902e7bddc79bffb52d3f644c39846531826dd761d475c72eb5
b7643f17d995e86f0bd591063ef7dc622824f658e10797ec4fccba49cf0f2a01
5a4fa12bc4eff384fc9de3247ff3fe29c3c39ceb08a75862ce3ee47d8866f257
f0c3a6147c4d1eea2b92afd09fe619a2471537d3dcd22fee15fb49051ecc617a
60578abcb6c635ba8595a66debf976e760ed0a79b510ca6a999a5002a5b6ad0b
0513deff0b0d116476e10237185ccbb6f560cef8dfb0ae58a09776940c99dd49
bc96c89cd2ff3403c4c8e15af1b9d4b2bf6f6fc7a0dfd6269822b01cbeebb522
131d49c574c02ea2ab4e103d9b7a0546e37d2ecdcbab3fc43de2615a588aec5e
f56744aa548e65be92431b1ea9677aef50f469f0d453b302e62f5f4699d48888
bda5bf65bf14e7dc0f5bc63671fee4f95118b261af8bdcdec7edad02f73ed7d6
644ed3f40534e2e0a05ad9a0c7e98bb8917de56a02a3a98178f48f83c2b3ece2
0a9a5d0c1b147fca05c9d2e3561502aa1cabd3689fbb3f6b3d108bf4e744f060
f6b7ff58d4049782db946403bc5b6120e46633290879caa3369c28a445496be9
5841b7f187d87133c64b71a4f0c85a69e4dc1649eee1104e68b1073ccc15ec15
ef4cd60d33f4fda25c4240d2e94c0c6afcd5e74357307caa32441ef0ede9734a
336539f2930a3ac6a4073a6405e1848eff6fb2708c97941cb68d55524b73517f
5ae1691ffc45718ef791ef8e6650a86dd774e7770a7bdbf84aa42d8282a943e2
7f146b5f12ec25de384151f3f3e406e587a1bed6295b1701841ce63002bf07e7
70f9913ff56a5ef76f92ba09d95283d825a6315ab58c88dee3081009d4af19a0
2095665ee1db9ec73f8b023ccf2a3e851cbe01a244417cc2550b243f96c0a568
8ad5acf23b8e4fb7c025c4d2cfb9c63b590e52e8e2858340e89b0106ac8bae76
70173878abd79a80b646fcdecf7ad49fd8310f108dcd5206d6b693a9cf549c59
6a60d57e3610e59a762c2d9feb3f5699570d1bd48757e74bf1067e77c1c932c4
ba783e5a65d5b7b59392fed44db30ef771af8e249babc2e41ae0431851a5a9a3
c847b5bc05d27de16bf3783db0dd51a95c0abdae60708edb50256cef7b8a7a43
35bfde817c1258284efdffae67c312ced5de328e2dc1a74067022a52d339bf80
0fee2b4c8e50798e128f84ddc36f37ecdf6a2622d647a52a44cdbfad2eda4e5e
0b47b89d42f53ea081991fcfc8338999d4635989b09560b329868ea912bd6369
1dae1853299fa5cd40684cda385cac21bf0f0cc8ff4c255c790e0aadf94de9a9
8fe9a114a961b5ef49f108e6555b492cdd73741968511e35e3683e5a51533796
d34c361d02779b35f04222f04c59483f4d7067c1c1137b632fa2d142d446397a
55711db43d4cfa8d97b9bc697d7de6669f15c132f823262a7dcef8cdf2ba593e
a1c861290703cc46be7b40a98de82aa131c2d3c77a50e9fea9a1b0415058d50a
b907dbd5682d44a62d730c507f692c5203a54c4bb4acdc2fe87d5a1002f0de38
cd91975f3eea32e907af6e732e67378b3d0a8b94e53769ebe5d67f13e1e7727f
8d82726c8bc9d8303ec942304cd0ec877ba7af6e29c48fe2f43a347ee31af03f
1a4bc0bd10bc88cdd6ea5352659a062da3d114f8c8a6e68790a2c0b0b43a98e4
cbe29c980bb3b5918ed74033f96abf35687d34930a6713955783903e46bd03c0
3e68a23e70c91bbe7c7bf467d14ffa23ec659f66b6044c807f311ad5645dfc8d
63344455ebb784b935218a1e890f64c169429aaecd44a62251ed8d50fb4662d7
e4191099b768dd1eaa8c3c5916a18c453954d36e596679c1d66e8c2683facf4b
1055a53bdd16ab890a2799ee01dca6b152dba72b9b9502247691dddc4ca9d423
208596664ea2dba61624e056686452751f2d2d42d6cb7a665896b37bece8386d
53a131c44eb218c992c48ad1030ca298fd1b79887edd809873e6a13d43f5c4ef
ea3614e187775cb91aa8796c3ac9e57826621c6422ed301a94812d3624a3fae5
98a93193eb541839d5cc2fc7db09733846af9bf18dc9ff52a7b0e3e990b74058
bf900bcaf7bed3c18f28b75966ae93e02d4198f1ae7ceac803c978d120913b61
142b2776f50df55609ef700fcf068333a706d5229c71d593acd91be0d3bea4a7
93884ab52e0d9e8b79b8856b3ede75c4013d2677cf40565fdf9783ee7ad45bc4
3fd702115e4324f5e4e1c55a72d50962f2bd27fc8a2c3fee16d5fefc637425cc
8075e518c3f66617790d639a3d9f04f501e20178eef54bae0d00f55bab7768ab
4048f6282e74ae615d64742d89713c49f796ff6f4c93a24054a26c663be998eb
8a1592701871c993e4f8f3223724d2bbc70c0e1c4602dd916f4e200e0e3b69e9
6db3a0749412bedd44abed66c44d28cd76c87c8a1c1cd9817ce33d9d8c84098c
e9c2f4ac27ed8e6d6dedca77ab18b4338ad1513460355b4e92f3b7cafda4f0fc
c8e6f9073143794871e3df6a9e21f59e9a5040a32c1f18e533fbb0549c61fbd0
1f671446e833ba5fd2b467d8ddbdc09f311ce15e7417d6e4a9035809c9246d73
e519a6621d2ec77021dd3a77c80eed7ddd67016b8cc04b26283fd2137ecf468f
21f57884583c4f482d19436e06546ae9895529a9f1de7c198287d69eff954610
59feb1706692f1eb6c5c8da3f9fc2e9b29908133d71a6c166e3156c3b92a6786
758a23a8bc3f346f3bbee1afcff61b9399f38f280ab9eda21bdaba3305e8a9e6
67f948d462d3131fe6eb6441736758057b5fa55d5d7a8e39b4ecb7603d749b41
e3ba581417b1bac9ed2296294fa34027e93f72ac5f054f3b3e27dd1ff608e712
285ff61a5f54bb6111e2667c65e5d4ca0d716625a60d8fe1fee17c8f0774b31e
172185bf82ec352cbfedcb6f04db02fcb0173be72629431290dc6974ae79f742
14c53ba14ba71b705832fc092dee857bbbf1df4092ef46cffcdf059b2fb3a7db
54f8c7103d07061a025f9f3997415c1dbf273c11adad9dbc56d969edd651112d
3eab2931a5952f4646f363d230cc556461c84a2a927fc5ac6513969f80ef1752
f0fce280a820ec13ab2cbce4b23c83a276c97fe8e2fa42bbb567c4d0274cc094
8d7ce281a7689486eb7efe7e5c1ddc7da3025b34945694fe917d419ac87e9b7b
cd90d43e113b05e8138d72b94abe992df2ecff83bc30bd43306e578b638eacf6
c6248365fe70c9d19f3759c90ba6c71910d7b0f8a08c818a873151d4241278ad
54d8233ec5c4479ce0c3ab5584e1fcc1656d5fb7120d798647e03c46717c2c68
3483fc2659b156e660527d99bbc8628b918f7ceb09687fe4c2f869dcea33923b
d9886bcdfccfec33a85bfe0a5c12f990f9fa3c9c48f5648851bb233bf8222ac9
fe739d536a14619b752dd2d6d60bfd3afd5caa516a2b99c6038981902593bf06
56043e16ff023198dea42ad78b4e065fb458356746ff402cc975a0d134535152
8cdc1b5e96cf308feacad1120f0f8066ae1ae24d34dc8206c21852fad2c29be5
ea8fa356fb712f312b789f896b0e5a2c7cde5330569ad81338c2a1b17ddae371
4994c65d018bbd7486717392e34e61b3056cb239903bec27e6483a1f88fa7a58
119205f998749cf5fc2111d029e9e35b603fa934d1e8cf39b9a515efbca1c836
0a3325bba5218fa404b1a99be68aade8b39acefec0ac40ecda942b3240947b06
619168e0d271f320808646c440bd17b5b599db55b87a2ae70869065d64366dee
662a2017b8bfabb7f683752678a98585385c66396cb879ea23c6a00d8c3b1c5a
1731030bd29eec136a98c0570d1af3f1b7f8577a12392ee4f9ddecfe2587fcb0
f1dc5bb2db0956b72e97e68e5c7ac1b57b7a73aaa4fa0d8032ead757c0258a54
0f65af0bccdd3f5876f78d10c6ef89cc895fe53695edc2636248d4054c247954
85b949f6d66dc18c40a5f3a3faef1bb9b4c4ad008aee34c87b8805ff423ff856
ad2a735fb53bfe8000f85a3d6a4f9701ecae180a6782cdf752f046dcbdcc62eb
e43b2e59635d41b43db7057a2eac23d825edcbe643fd039d1a3a35bfbb879b55
be0309edd179a960395b12e69e28a0d14a1f0cdb23ff62f485e6c96a3e2c2ea9
a80b3dd7f7e507147473809a0cfb4d4713b51ac82f23c18d172a995c982a9d9d
36b771c55f3449db311f43f354d10ba5a9f52b88f22929ab86cb8470fc621d24
bc1d2e5e58e909744f823163d5b411c53c0b3895cb5f8c4ee52762b717f033a1
d5b65c1be0793c172c48b7bd0c96b34488fcdfd2fcdc66937542fd147b004074
1b454519fb57e3d7fa9fd7e52616895f267a5c5eca2676b185f0cd7c0cdf0466
40e97422f83fb6a326af9104611e658b2dd2ee391eb8c8b6f64a0357b8e7da6c
712c8540290bd0f61895706ee0cc1bf87e08e4bf01bc2081c2c597aeb6c27eb5
e03f943828204c86d5c86fcc08c20a0f9340a183cc0b987efe9fd5ec69e2b34a
81e89bedcad497b0d59d0695d5dfb065ba69826504fc679de6fe753e3adafa6d
0e72456fd1d54826e4ea1371c344d503e8f3586d4619aadf979451306a23fb8d
2aa2a742a27c77c0c1186e8a0aca3747b73f710bc39e015dc4160ea0355bb9c6
c7da1ddcebe51c9bc019f580f4396a5c15ef10be9bdcbc51ecef33da0e28302e
fa745884cf02295b95c7f9e8cee391f91d4fccf62e495ffbf8d4166e456d8983
b0ba08c7acde5439d52a4bd65a189dee4167956922fdcee533ed15e5223edc7f
91b13c90b78464f06b2630f143e70b988327c3bbd938fad75495f9926fc0dbe3
f31ee2d66ad4e0b91522854faec8b09ea6da3818dcdedb6de2870e8f55d4a896
ca93bc652e027f650cdafef896de862c2397570714be206e8cc739d821ddfa80
d0d0b69f859fe69fba96fa82279d642476a7b364700daf7a4cebb0c874d47632
b1f1019932ac48519ca383e809356176f74fb51d5af4ce4cfc956a4f6f462e5a
cbaa460808adc0ebc73b5ae9b175678b35b67d82ef5758c5934b02ecd41490dc
ed554d7cf5cfb84d735f42837dce2628014fcb683d42926c97abb81cc5da6bf3
da1a3e16e21c3966a74c611e9ff7fbe348e181f6e97961df729cc679a1b85796
fca808ee07dfed63064df6e7fb74b1a707bbe5ac3941187e8fd1131accab3b03
82f8afcaaf47341cdeda005f71604370d66e17513fdc7e7f2bbdab1c0d378c6d
aa07a225b25e13d2d201a6674dc7c654938649a76311984732ac76df51b1196b
65d0db8cf2672d6716533a7e474c2b138b333b2238c8d71ddb343de54b3cc8ee
400b905b8c73e4183da0236db315b09cc8454b0737537008f4cc78b9423f5117
575b246c87babee075c0287a0fff3c6747d206e2b1eb647213b6d71f0190b63c
cd6dfda99a40bcf5ef9dd2b9db6e6dba1501d9d259d9bfd4c119ba53f68ec190
0020c825966882746a4645c75bbbbcc26398c7d11ef2d5c943c7259aaadb1e28
e2c996f67d472261cd293bc9f53b08c0da1f750b8fe65747df4ac4ab2677cecd
40ce85cd99e1e72e255bc78d1aeed07d552c4b7dce61415f98a761c9645daee8
a79993200b8f29a3cb7becdb0839a8469744e477d1baf170f22c1ab06cfbb30b
88f7383e534e85918199dea048d934d137cab4379f1b82732f4eeeb362267a9a
fb7e4b63e8cb16397e1259092fcac736c62abbb7c1225cbbd14766cc8aa6dcc5
1b1fb09b9b231cc27d4222e9205efb51a3ce4224458c552f67f7004f9d0ec995
5b4b22c3e63af0a1073766eacfcd05a189ec557cd4c936b0848e7d6713ef7299
cf44be
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /Gamma put
dup 5 /Pi put
dup 6 /Sigma put
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 34 /quotedblright put
dup 37 /percent put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de
fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202
3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5
2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12
cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e
4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618
99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8
ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b
1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a
e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af
154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e
44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40
a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e
3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7
dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552
315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3
62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5
87f907572b8354a5c3165eea7e8b2ba4e333802132f760b41a900c698eb3d273
8bea0aaf7aae96a558f08b61aec7c7d65b2889bb7b99800cffee5ba19ac90fce
11437be1ddfcf0bca5670b543b9644a71c8726d0c1005abdb96f6e0cf7caaa31
95017ca81519151c2c0b04f81e717c0691b63a76e9b25329ce2625b711cb7bf9
9d23ec2bb5ec8aefb8c1a3b422ad617b3da4d49685fd44cc21a1fe5e1541163a
b3e1594601d63c7e98801d7746474377ce93f81404f3570afbd5dbfe77578605
917ab96963987e6efc2d3f99fa56ecae6422579852567f90cc90e4ef6d6f71d1
858270205477e221018a375ca83c572b3f972c5181d18643cecb04909d84cf76
7174b3c0c8ec69bf1e9fdfbc0fc7ed97ec67d878ea4ddac8caa522fdc6932df7
21b81af837a20746149853bc21c8aa153268bc9f571cc720ce3022c671ed4b4b
31098b69196bd97dc2fcf16183a08cef4906fab3a91557a70c45422bb24fcd3d
ad6839c1dcd08420e1ffdd3408e83a3d08ab8b427be7c6bcf9fcde93d88fce21
8c2b2ee017a2e4f46b82a1c856a5a0e19403b190e296dc141f4551af02bf658a
ae6bbac0c7bdd39b61ad2f1013d1c476aeb59e868ba40f2ce6ff05059f8b851d
a0636dd3562200ed900c7359edcba3d4279c0d1ede7866bed987edece0e8bd8f
84bfce5cd42ec03795e489962ecf5b1ce78c181e4d6c3087d5164caeca11175f
df4747dcd3cc34d701b543adccf9a58a579575e956be8407f88a1e0489f5a251
52fce947fcaf2e57cc60644efa8870776ea70890a6dc46095f63dd71d32ce604
53783f48c31ba61f9eadeb313a5bada892c4aea6846d0d888c14fd6e83d9c06c
3450cfa517c37ef4f388773a92b419b49082c2d45a4fd6ef7f5980c26d0a38d6
cd497b7676146f01c713a89b28115e32f75418e66e8b522c281412fd8d468035
f692439e62f271418f83adadbf729a02744224b7821f31db537d8f7be14e5db8
fd5fb976746db35aa58577f64ab06f6388cf44a565679de2124c2c8f4a10611e
e4b59170619fc35dcf70531ded912089104ad418f50894333084fd79c2a7ac28
a6ff2dca78abce8402bd9856935792091aaf7a7cd8a2d1dc761985576ca7fee8
ec2075a71eb4e85b3064b8d96647b984fc189b592a5c325dd5c7781980a9533a
d84dfcf243216b13a62a18992d5484a73116cc18e115b087babda64022b120a6
cc777cd3b0112e780a9517e7ae8ca96b060fe1a7ca44f5f8648e2741377b43f5
dd01647b95376888e13f911e2c019203269e41fe043ad9e55aebdafd29d6a2b1
0b66e63032dc3dccfbe431431c3c81b051c4477edd3885aab1e0e6f2d7c5e660
c1912946ab3df0b6a3cb8b5519f33d674b1f964d3e11d2782886ee1b6ac107f3
c7dfe5a0caa052cb192d2e20a87fb03e4772410b1844c3ef0f9d81eb75faa5f1
6d106caeccb3a51f6912db200e5aaf04bd5c04755bb51e9591b5b2beb2205d04
15d034de088e02941b59c58b51b35dee75a92548e29d6dddaf1be14855eb222f
3016f20e7eaaae6a2bbbbde41bcc77126df2d801717b3e0cc6a59ccdd7c566a7
620b173177513b83574b909027d0c3000eae9f494b50d4cadf235862ae832683
3369b8ad85be1bb365f99ecbc2ce27e2984cea1d67a8dd2624551031489745ba
1fc040af05501634877e4fb07ebcfd9e907e1491cfbb6bc1c4099720c692cd6b
6f3957462ac98eaf239ffd698486e899bdc2fae6bee58d9ba2f545c53c61fd2a
9d31025869c9ef09fc24ab6b22f93b1edfec70936e6a2c2bfa56636b78823b35
5784b62b60a04078f457afe3ed8033fd1fafdf9651d4c7def5bf7c69428a7093
320525b046afd6dd47bbd99903f8d90be208bd2951c636a9f34cca64f4a982b2
080514bb3a91a9e69e0f7c766c880c7428ef63ed7fa5e477ca3cf491173985ea
ccaa8344595293b0487e538540db19a9121336c462819452ca0a71268b707d67
ae9fe92d3cdd0c7d3576ead6df7a4184633906a9c4418c021ed890e743a375d2
c353fc4be567582dc03bd0421217e059385981f0e2c1101451a5f5bc174e29d9
5ea5ca633d7c1429bb3c53e40825658c481bf3d77a547f9216d913ddbfdf9029
51f5352567369cd89ba2abc0e938996d7a8bc806edfe763b1b4022008a7b6c24
9c1849fec794823c4afca1c9566e0a50df2774b7d0a4fe623379ee486d206caf
0bc06f2a65157672f34a8604256352f45faea6c775813ab65f7a8c1a976d778f
28d6978db2a22ad9de63e610dc396dd783b2ea20ebff4f0028280ae6b665abfb
c20398dcb0844c70221dfec9bf616193f662acd1c74c5030a247406958a83db9
5ef457e5997ee63c8a2ce9d5c32ceef7b8267ab70590e096539f7c29002bfc12
7677833d7a40439c343ef08f0306de03c1ae91f2236788c317746972a5feb035
785a3afb6b23207c234bc91f833ccbc4905b7c7d87c1ada5432b44bca5496846
e7420841c402b53c6c4834537a111979817a5d52a8d3a70c35b5b3102cf3058b
2081897e6df34a2165218fe500a50c56dd7b349428999a4f8d66c61b5ba1c4c1
93d33d339536a6f53bab7774626b4a57ce45576cbbe789b7d83f605d5988877d
dc4cb03a6a4a4cf85139b7ebb95617ac89e2d4dc9463824489b2831b8db1eb60
ab6a85d91dbca80b18e4730168945c7216e71b97ae186805fcfb89f01a676051
e32272b7eab6ab4d3f2a1e36612d4934d2cc90c5722d4f7b23451e143293fb58
db96ece55047fd78a50a4fb9065e18c624249b35cf7b9b6b277a865744dcd1f9
c05f21dadc3e2c03778f08891f75d139edaafa6d1cd5ae4b3f1b84547a4163b4
313f173396d64e11712161e541e50167928f93924990b37d213c3b16b56f5e29
57a7c06a0d0cab47c85510b5fd3e53bcd1d47d8ec1387f37450e77b0ce83ad60
8c4dcc2ff496b23959a3853f6ac9ef8bff2f74a198e4e3b34ee6d4793aec3cd6
c736386f25f59c35071989d53addef5d98570b0c640217a3828500756f60f447
2a481602c91bcf1fb40978420c0b8db1c5b5b3db1edaef969e48a45bc02cf55a
f333c4dc41b6b659d86ead4c4d49afb4a9f7cf9021e7f14790b24f28572f3003
b7750b7947823c44126ba44c4d5c105a413f60b03d64900bde07a3d060b016ca
77f43cb05d8bd64ba932a483b782af90bdef6dcae31d07877032c62fe678ae02
2113e41930d8e03adbd60fb1a5a9d38a81342d5d621c6068d52052ea6a09d569
1de0079f67280fe57fc1c1c583e180f3671da1cac9aa3cf82065ce454cdbe685
7a63d379eb3a5ac0e4b1e4137a479b5453a26b0500ed2bf6396f3487548a7536
f90f8052b87355cc7275c12d51bd5eb1c3833b0d4ddaa079975cfafb55c55088
00ffd88c9a98918e75e8391025f938092b11121812a55cd4cdfd9c5657bda4bb
7294b39d30634bcc8735ce0c5c72d4700302d0859a175b0388fa4e494561bb00
7531c3fe1e8c184e59625b3808a24a5baf8ec3f533007caf77001d73c9c2fabe
c5f5e363d879ea4804f68ee3876133f975ffa1c3bf525900c7b7b4a2366c2f69
a31b2fb60e9ec65d836a2313bf827fbdd8c8eaeaed67b4924f038aa99b629bb0
2190e86e0a98b14c107a1b9a3dc6f647c515e44a5466e9da546caacd5339faad
b05b4417070608b3fc6f73c5848918d9edfc088e6be30fd4df22efd9447fdb6b
91ae4e317b0817e68ac28a073da7df57c40ee0bebc5cccd286165b0b0060857d
aeffaf0bbb927b70a4a4d8f4532f158115e6879405d28df959320cf21d4f8aac
4c9edf6e7ebd3de4369ffe95f3a6e687dc5e0cf6752700b828dee876bdea1d3d
4e9ad83592e46b879a9ada6859a4b81460ad482e50944305b5962cbcdc517b21
d504fca71df67fb6e48d2afa9d5a4f309559a16682e9d714d15671a0f2afd9b7
5ba24001b21e95b49eed767a8ac46c1e5208fdbb6f3249da42ff74c200848258
7c454cbff7b74b6e8b19f8d13442f70c7eb93eaab66847d06239e9c7af1ace9a
6bcfba2094b506d049221d9f9e77a3c5fce6f8efb65593f0e9c70f969f05340c
6a24eee5de2a2ac5c6a3654893069b8d0fa0e1e00fb97c2948d6bb9224b0e926
3e16f3ce32a99aa6b7eb619569fc0b87ce4c3e2f7bffc48841596ee233c82b49
ee8b28ed16d72fde0198339588d24eefe34107e65f0b59f391488f396aabc98d
a179912839974802c854dc7a25df62297a263c3d3fe072813abb5d356f701787
028efa97493d3d90c2449a4b70d85779f7c25e0076b93a8f141b4b1f58623be1
c34c5a90d253dcee4cf938c54b0cc5447c6505398a074dd42928a84da8e84129
55609e77cff540dfa19a8abec5df817bdb3a0cfd00a3d4d5b2e1ef6b8a8fa123
f49c88aaa29ec2e4a00ceaea92661128e33e387a139c79ac7e9f586831b580e8
b0d910f05ffceab0927366b14d45c80cc1f3ea6113083189ef9f5af9d2237183
342f9e75809f82681355002562d7943e62f55d4be97cc4e8a8ba1c67c04dca41
d25a0c186e4e06452fe0a65a138bc7716451707d1270e456e9d26a6d1c228ec0
8072d402f0a8b72afe06fde7cff4c4c46709549f1c7dba8d123f67811cd05637
f177f74a6b9400a390940a08c562dfe6d1ea04af9964210a7be842df038bfcd4
eb891b4b470e871cf8a1eb2477179d09f220b4c2cef539a8687f74613252ae94
f1bfe8c6aae497c6ed399df3da85cb652d9e0322566b8022aabd0e6398e8c6c7
2069327d2fece4707bb30967df99767f4c4d8b964ac338bdd02964cab2eb224d
27fc993d05d43d8e2b7cbb767e2836b0bf1e5565dec55d7da2415b93c30c901f
5cc25079bb30aa6e46c1ba8108bd6568648735a902335e5558953b8b3fa7c3ed
d20862af8c5906e47c0f18998ba168af745790f3d7b8eaf3ea765fe62baa1032
00f1fd7eea21f0b31d7a0cf67122c460556583fcdfa9ee2a85066ab565b40e45
55822f005b10268e282aba597f96f3ec8cb4702480a632747fa4d3f9756f059e
4a170b5dc1fe10ec4737136bded6e8853f21eecbad1be2dd28df19c5ba3feee9
3cc35b45498365fcfb16c01ed2642cc44308b2470776b1c9e1849317be6337c8
b9dd199d12cc22baa81cc21492cd5217a7371d07f89d8a18b83ac5ff2ecf65ff
85a350421dd3e07f3bc52753dd7fd9f38b4df402a23503e671e6a70d1de50332
6ce69b9da8259f87a2ccd8ff9e15062cab97a011581bcb7cf6167505ddfd5651
024e17a8c927c1f548ea660b5f3b794ac1faef14b5b3f44928a5ec8be96a38df
de9f5f35c28f80581778f8dea8a8122f36cec2c70c95819683fa50aa3a93759d
456249b7538a2ab7016969ca6a47e9c9f0acbcf68b06d630e5ed734f71183e6c
575f22569904dd575ff547808f78e4b640afa534a0ffe82a086b5324c8d2d491
56fb248d4d1486b213856aa8801001acb111bb2a0578fb1ca7ca747cb2f8ed62
c4bc7a3c7098c4748b0a345da5fa0a99994dbaa1d0e017d5f6c2d405558871d5
9aec194d5ee381a78e4d4925f5fa7cdc674e2c3d909228c0d2f20ef5a32ef845
df309548dfc7051de21af16d5b469afa989ae9154ec4395e4ff3bfeaabbc815b
b688280b442367ac6563fb790160c4957d2fc61730ad0b93a146b93b52948692
990d45c447513bdada06ad2269f1565ea6a3dc87c9d873d5bd5f72983769e891
b8a5bbd0fc0c870ea5afb63e2e4b6c5929d15c36789693b78a6c97f828024399
ba6c8544d704abad77258847085fa0c044f21eb7b97c1fd2b5b221a0ce4e6a06
43c40e465f2baf91ccb2837cbe1b89edee70a0f8cb4ae1d629b0b38df7e5bb63
c354ccb13b2450cd4678e4900becadaa35a14dcc3ea4c1ff9487885ced3d7eb5
35bb162f2db4237210c93f3137252d97ef0d0ca0b2a4c4dab4b8d6849410ce65
2e78c2b55e0501f2b6f33d639614c7b9f1039bfe0ecaaa32ffa7b87dc7d0eede
1a2dd9c4a98858768ba4091249af51e60a0de358206b87fe2840f625c342f53e
28521cf3acd7f969b6298d43411ba55980ece937f2cb99bf3fc140a31e84ba55
8a4e5e6a4b4b4111ba35968372a1004b802ccf173ded7d74276e31ca7cf7d7cb
b35640f905ca1cbafdc9fee4e96656a3eac95e3c1ba5edbe3eb63b4347e2bd5d
41a373fecf0feabaf72a60bad93a0ed8c66f0397201665d692b0eeb62e3e7507
806c7117da218f5189b7a65040f11e7b48f03bba84c3116f4a045ec1c00a9e79
075df422982b8f5b8e1310a2ae742a034f89baa488711813f8c8658cf33e2143
aaa0c10867b8ee256e50810d9bd273c285adde8ee5bda2e2e4feaab6461544fd
60ae1230902b9ef3195ed8a893d6f71322b04fa339d6dc022fab49aeba786f47
df4ce83f9a2013ea4ca4bca730ce0e5896877d5bc07cd6df8a8f41946f1fe62e
f19647992d31d5fd458065620df0ef9a789e7e10191143d693f198753a1c8b55
59de8c7f455875271d0e10a850cdcaf7c994fb5b71ac1b4f57aaeca2acce53b3
51eed0b4975b2a42a76110812ba5011c9bcbe509172cfd0416f808731ae26906
28b95a3293c2330a90226cb6abe8e3d22a24c6e8319ff1eb60d792a0f989e625
3a57a65e0b7907528976dd8107643ea6b8e7268dc386398288100ec2ef32b88a
337498f8fabc9c1433ebcb9bb21cbbaed24565a7020d4400cb9aca5fcced0afe
784b498bf282a0472644d15b28cfeb530cb0a80b14b33cf7bd3a556c889b9441
06cc525abf6e679cf53c88670877f7f5d44e362a6d74c438b5c2d5e1784df0d4
d52eb161b520691e23d959a9b23859e7d9ede53e3f0664c35782be81e4af3fb3
9d3983466d11fdf4c71ced02f910e01f8248390a9eb20431d292dea3c8aed1be
72cfae653f4647165516d982410a9675a23979c22cb354e953b8d879d9bf942c
ed101e9493e3b7c7d08f95c124edfd346d7c81840b3fdcd0d7e8109802a3807b
0ca44bc318e04567f216703e9abb2ee0e5b0c525614f98000464beb11b10cebd
cf1484c76969f6fd8e7be13a8dfe07bb65164367a5070120794bde157a8c836c
45545e508ee438f2598c8f8f9e4bca84ed4258f7f5f7160b155bcd97b21f730d
d6b7af5047e3cb86acb1c0b18e0cf1f7121d120e9271f16b41fc00a29d9f2d1a
2fa73372f94a4e94dc4940d3f83050bec90d463ac8e660c34a6a32dbb9959a98
30643eeebe5a6d9eeb2699b0422b2c8f74639b55348bd62062ce849e21dd6fd2
18662c376d67bb8121340b66016efbcfa6500b998da6632ecf8c041a0d05acb3
6c5800389c972f0eefc3256f1c2f490b915cb9c30f2d6a5ffbf531a527b2870f
4378d538ebfd7f66177b99c1cf967555d50480696b9d4aa1185772a26462e1ac
841ce99a4d20fe5089d73120d1d29ff099055200709994e5cd33821dad82f19e
c4455364be87b10ba2fa8ce5e0d58566eeea8a0057a52cc6821fbf3c1e7954b5
aa19dba1390c6ef7ba0aa3c64a5c9f61c10cdd89c98fbd5fcedfe75256357748
f8b506e86380bb727357bf6b3f1ce2e6dff1a0906f20e531de51d79c7ff5fb7f
058a3852287952537ad3377d7a0fd4153838b27a7d83bbdd952de23ce1ea2845
7ed73ffdf20a2100c563dfb4f9d6485eeec371f484e5cf0709245229015d02c1
4544822c82968a64f72128514e39c23343bb9a81909463b2031809a54d0dfc59
7f7459b0980154eb71a12b0a07ef8a829a1de91da73eb60981e4c2eb0fc7b8d5
eb36163578655107765bb798b5591ae74be01d263911803225484445901ef2b3
b70c8d325e3098dc7a3a1647436549ab1093e18a0495bef42bdca270db1e5663
de25d065f860ac0aa9cf4982c79f790c811f60596fde924c3b5f665ba8e09530
3adc2d4eeb7d234ff4c35a371b0558362334dea641dc2fe3c65dae902634d2b4
8065d712f1a665f9c5f3823ea23a6d721b3454de63f6367f6665f3af43276f6d
b52585ed9ee3b25b596715352e80f92f14b7357e53eefb658ce06dc419fc7917
428a869125887fa47097f1753d375ef3fefebaaf1b9de7799aeb78d52d8034e5
bd444da09a7428bd6ff8b3df25dd32b9e3265335b8c9d58f904da99d902cc59f
d5d7f8e0199d276c10fb12492ea297ad5c782961c300731b5364ebf9ff07ff14
6417a929209a18e8239fc50f799a6378cbb9bb696b582916bdaf298831f6ac99
76dff7283a8a314f0a6c979b9ffd274610303ef880d1b93471b89ec7186ecb61
bd0ee1b24a741db4f66839725fa2df2b789bf4dbe908275a96e582bedc26e3d8
5478fb1a11afa6d1d3275cfe00be6d9bfcab60a6ff6c1309701619cfed0dc961
b5e4b8bc929743e76d3f159823e9e35068ef06ba6693f5772237bfed874c5bc1
954827d4577a85df6c18d361166025d06382261dd70136b9f419d8a735b41300
9aa5b2d2eda51a1e4877b01e7c70840ea9de948cb79d8a59503bae987fac17b4
82d3f3b3069fe6dd5041317e651630e91a4e8e3d6d5823e4f5ef16dd8f997382
fdf48fd3200e1488659530f702a1c1745aa497c9d8fb6c6f8da7605da924e731
c13e6f27a406e7a73c3b0fccb1b78d4909877ca59746b05131147bf8a1a863b3
75c23c3ca534ef3ed83f54a0fbe26ca3cf0dffa2187712e647d519d12bf34bfb
dc947437d7ad7318764716ce7d76623d4b9fedd2d831365a5456e7dd470baf9f
5a06199103fee96b336ff78b33b48cc27ff884d67e3777f306590a0d61e9b0a2
68efd387950a6dfb5e6104cc88674e60ce1e2f0a9ea29df2bcfdef437e8e6719
7d86d0e583e1ee080f09b592525bdf8ddb89273bce0e98dfbaf24ac89ab7c51e
a85c95281d8df70a00f0627da0da0cd16357d16fc86561a9352c1ca16c1482ea
ea6898bfdea52e54dee40f4646812477adc3d815034f5c4bbeb22ee63fa19307
d857e90baba92ee1b8d555efb67f73c6fc08918e2f968bcc3d947458030e277d
7e772ed07aa6f7a380a464b7a5ccd3a76da18e41929f8c76986b577f9fa233c1
ab52c57338606336bea15ef6c98e622fd4e8a52d17fcbfbd0420f85573b0381b
d76a820f44c8833abf3b29e16419534fbb6b542c7ffcebb7f2e90f11c579fb1c
8368ac81f3822a18095c0ebf440f21c79074be7429ab82e9b4106a574cce2c23
36189e7ce06c68a3552cd03a722ab27838a0cb7e2fa3257d1650c8ce5c05d19e
2d2780d137252d594a1f7623f20aabac26fdec95f9497f4c4297cfd1dec6e25c
64de52667473d1880b31e08011489fbae8866cb76333f3d2816d28a5b54e6fdb
9c2d6f28f3c12a9e8a5e55d2e8149444764f60fd239ee29c9a0d9125107b76f6
90bf3c42102a8577e4cd047cf133bf7734df9e948220575f15fb841a86d8ddc2
10540e979be40bd4d5c97a942695e74d3b84bd0f9d765e8cf9227d11a300e9b4
97e950459f31ce04d44bd9053304aa3fe190c7e75f6044ab880b24a5d2330b99
5e8507fab171a0b4049d11f95eb46b2e296a2cd9befe09370f50ca91f8015363
d3f58c615dc31ff5ce75cfe3369e2ea33469e6e3899123342531556170f3558d
fd6d3af24001da85e4c7ecea8cb550d9a9773e1d5256aa4f9f9ba5d7fba31376
d236487b8e67299c9a7ca0b0f7af83d15e99d98a9f14516b1ca57d871f19fac7
627942474b0f7069c92eeb5efd1934095a3415b7e7933f247e8275e6008a4370
ae1a589e161c0bdb32836ab4a45feab10d04c9be4d5f6e8fe348e3de8e58ddcf
9de1ce804e9ee826a54e95a13512d65f26f320f772e65ec006f8c0a632d9d5d1
873afdd6756ef692fd2b414f7bf3531e2824b68d313b53124ff7a914a5e91cbd
62c7b6f28da16412b2b6f07b1e87972fa9ce7cff1961bf64c911a8c00a02c315
b23c689d8b0ddeba8139d77680c6cc0cc02898be076040947441e527a7833591
8264e08050f1327fad44d84c767c2384707c63a9a2c6063865abaed1ba922e5d
b22d5b5251861a941eaf751558a5193a5c6dfb96b769980fba79e6a9bfa27222
521ab22ffb1bf5971907bcf8874d398905eb9af078d49e76930d64707102bb09
b50341332838a4e0aacd89fa7a313a6966f519616671de7dc54c78664649426a
e2705a23a69ba2a42c052bee4d08386104d8ebd53c120fa2953295e34301f6e3
a32c40c4b0a888c7ea8777fdcfa2ebce71ae32123c31fe782d8738e8106e0147
1438fae36084a4dd2d2d8f813669471a373fe6ca2ac4d199a83d405c203539bf
d5702c8356b04d2c6c1fb0f2dbe87d4e7f559e6cdcfa6157eeb08a270fa281dd
652fd6a031ec1ea9365e51e5ff3dd351347b4f3b26ca14ac695c984df749537a
769521ca96e6602790746d3e235a015deaab18e6b675ea7e2982f5621f171948
74ca1ad74b0422fd3cdd5ceae7070f64ecdd606b0708e5fedaedfbb356645cfb
e787c737d01190d113fd04aa6bc5bc48ec01243f347685f8eb8ddbd07eb0c6e2
2876a847cc2362812238c3330276f643d4d097c6444e35ac78a3b64d01660310
bca068ca7e8748aec99ae12c744c6e8986ed5eaf4b9928c38c58c67a746dd77d
8997d6444efb849648f10219c889c8805ad5bea3217ee0bca6904c62dfaf840d
834a85589994bfdf0af4be9c5d5b9a15f07cff07ae52b9f04b1114b1f179397b
0737dc0bba3f1e69c0acdf27797485422fcb402ea9dc3b4560df7f8a2dc8045b
28e32d51f2d8e838c2231ad1037c14d5790f0c9726d27eba2471ee666cb68d7b
17fad94f1b0337ea4ad959b89c784c973a5dcbc4c9bf6d169d1896576dc905e8
9568ca5fdfa8a6b86e9e31894777b656fdc9303bd19d12fbd1ebda9abfbac878
dee69f6aa60a554623363985ffa50413c08724eb9f7995c9b331309e8cc6da77
1e1d6e4e35ded63be4e3066198774a978322f6a744039b777ca56c7db2aae551
613bc9f468253a5561a44fef8deb11dc731ad618e8e266d7231292e7d4900f07
078ef1cf520242255b4de48f8c4577ae036841c90ceeb3ceb9981f0c808f52c8
127b3ddfeda12c96359276404b6ddf56cd90f3c160f97d305763733101cdf832
51c4f059044fa2d2b1a19c5ab789dd73c6e184c8d44ff39654a9d90191546ff7
493fc4881f843a419065e0fe164b87e0f760ca357f1406323a10b45cb8c433fd
08e7c4169b565a9964f20bb25654034940b1a447beb9bf48660d65d81575f2f7
2a4bd287a505606f27ae43f2f4564abe323d81a1d97fc229dd616818ff95f6fe
20929d692cd575409e784072c9e2dcd66ae2b31fe85b9b1f8ef2cb03ba53db42
bcc561428a90cb6303276256caa62aa4f50a9d462f6429a42274dcf250d77c8a
b4b53a63b6ac715a706b1faaa703c851d611a2599ebed0be5586b982613e9315
ed49383de5acb5754b5e8d948a5d93e15b83ba973f216194a527433890b6a4f6
88a7c1939e28179ab315b4594553df8364fefdbba4f6d217ae566d480e36f0e1
12f10dcc6179755624ab9359d241c664d8b00d78e53bff72d4a7171134d65260
1b3ecfe3155f96a33597d8d2c493bda3b43c12bbbcca58ddef7cb68c2a009c41
1c88307da7321c8e606378e6c43f0cb8b5e61878374a85a8b835946e20116d09
24539f9e1d7fb7c36b1a79ef93fadf46b86bc24317fc1a4a07e4c4150bbf65be
61d7851fe2b8e00c4d1acea9d432378f4f0defda9b860990407413f9b5ec0430
eeef4b6bc8c21589d88b74a7f0ab71dcd1b9a5237b7e561b48b7d8d11bc549d2
8ad2af23701a3a9794a018293b909abff38f77608f1a1171eed3d1e8dbc86765
a46e1686c1a812e1658333bdd105793453bda6112fca7875ec0716d105e5b4b9
e994b9efdcfdee556f2eea9154f5ab567abf7d2e82c0ede1f7371c00a3db127b
68ab7099114d5fddabb8a5f1848c866d622382fd53acf9f4e23a27d5c1a24639
5859af3005495a5cfe99fef8a14bd00e80b763e561002266a904ef3227d68bed
90e833582def6d908fd7cc90e6f4f3e766eff7d8e045583fede67fe01202827b
6d0d54a9043543d878f1b5cef61ae73e5b036621b9949fdcead7eca02df65f35
ccb60983a4fc71bf375ec760022e8fffaafca6eb477fa69e0eb762a0af90f1a5
c1aebeef7c743787cce80ee15c2bb5ba23c25cd3d79c52abd8c8e6746c3e7ade
2e7c0b9ea5ca962d8b4affadb640a83ca2935dbadd988e0ee6cc5fd00dc826d2
1f3c127ed80a15953a6e2f123b3c5df15dede552c606d2169a423b7a3291b138
098248defe6e1812f58f334ad45355d4cc8b629b6af9702d78543aa0ee435a8a
d0ffece3d504188c733dfbadfd6ddb9daaf58294a27d9c6585f4a18575c502f9
5ce8990b3c8e5457930ab66f0505ba7e36a3632d9f5aa2cea871f5bf2c7c3ba5
2ca1ca4277e3c916116535df996f5f8d5a001f8e45f7cda6b2c59fa3479de26f
af54da29d66ca091abe13bd6854d9538f0a8c7a8541c3fc923ad6879df2237f3
a3ea8ab61f39058744748c054523dc6851f3232875e96f605847fdfec1e70aef
20a7759ce582eb5885801575982a1cb1fefa895fe7c52ddb9880faa34099df2a
2ded89524ab699d42271a55707a784555d356ffa00dcf1a81c74818220a0d595
a97e166b6e0ab70c8c80ec2f060df52940fe85682b60b5d2997641bca5aff9b7
11f08d856e3403ce86a1bdbc4bf0ff8852a40c51b556c0fe5c1905dd758cf467
6445ceb2978ff76b6e545457677ef3aace51cfaa05477c0ee4dd8bb97f648995
08a546e95ecf8be2b2d1cd37b6dc9511e47468dabf59f082c1f4006e9f940132
d72b652a7cf4fb033ed5ef5a98c14e4b4a54531f5ae6cc2202d6c6a1a11b853d
564c74d2ca43163c4285a37e471c2300cb7bf504d1bfd0bbaa5beaf94d9a3b3a
79cf840e080a6d853dc907263b4f69c53eb935310d8116e3fe6bbb20f0ffd5e9
ea1b5d4fe80f0d4472fdf1703d8f2851d322118bf9e893c0cd7aea8968511937
92c7fa3e6ca7ce6c8c98d5f0952e08966c933fff27add6a260446dd963a84259
d0e6ab9d5ef150daf90706cfb2689c93b7af461d266464178ef5c81323bbee12
18efa2b43f6a41763e275935930df67ba41f86be2fe0e55670aaf2e402fb5ee8
2546583a095e1557c3205e3c5384abac98729e9fe27768d9ccbbdc9a82dec3c8
29a9e4d498735f856eadf77a1f816d69924f8f7d5b218151f5377f10c2acdb49
730830372f21eaa9628afd597476724533db51404aa5eb23a9ade4b76a28304e
c65c1bb5542bdf0cd8fadfc749af6dc2f827f64933d536be0504a7256ce290df
441308ba1dc25a49de2abba993ed15bc7e0163457df9707fd5a70c5a1ea30ec2
868c776150ba834b87ad40cce015813f32fa05cac21b65a8df648ab71ad5c72f
cf27b67910b16d1a56b964ade3b8223bba564e3e438814be2eed3e34de35c802
235a7e1c9dc64966abacc71dba94cbcf8616afe2d263124c1f106603ee89fb17
5b351a3a1059ea9baf227fb599e883caae742d22f3a211b767e3a1c172198996
3c058995baa3679207c70910084e0eaf578a5d560dd16980044903204d653fbe
0d9f2c70395bfdf4a8565cfd927835ea225940c18d1b5738cbb4a598f8b4bc58
1cd26b01fff0b280e327c4f02be73e7f24c6e678ce513de48f3b708b1efbf0a5
21485c69c1551ed4419ea936d6e2c24b0d17c18a34784d59201d1a84a22f06e1
0ad537e03dd3f8779e6b7396e87e1dc3602daa8d13b19d67d92c575d5f8d3e8b
63f6fe58a2c7e0705bfdff88cc2bc9105ffb6517fe104cc9586279a2ee9547dc
5776023a52a35e7583fff82028d2bf67ca61712111e1eeb0b8fd5da6381e3dbd
19d16e8d3605212914df904e2ad26d37d8aa2028c89cf4d59302b8b27cadf8ca
a3dac354740355c1e46dbe760093b3040642fa68aab1c5fc8790159cbece7652
a9f4bdc9af856c2a20602f2517bc5c63762b1ebf9449035ce18e6abfa1007e57
d228db7e55e65182baba43a90e5ca5c9d2211939b9e16112be62ae4e4819f835
927bcdb1dc5cedc44d23df79876ec61a5ef9e47fd5de30183cc530f4899bf62b
668405ac8431af76d5755e50dfd18514a37bba9faa23fa554ca6fea6d97fd8a3
a18ec42b559a21172c6dd20d7fd5c1477ff82055c1f6823a77116d2d9d261cbb
0ced758e5e6a17f93f9461681661ea2cfd5599da093e549f8f83abbe636d6c08
73b31dcd70c2d17cfc6862ad663341733821fcaa2ee95402ccd84168554c68b2
dbeb37adfdd1ead256a6fdf82413da9e7ba3a3dba0202e68cb749c5cd4f0247e
89eb9578d815e1b8f7c3ed9a8dd82bf10a302299d0233cc230787ff84c8dcbdb
7ae1a985ef7c4686197838463e922ef648f0050eda83f7aecc905966ef7c8a4e
7e0f9f09e23e0b36dd5dbd48e59df55aa9bc94bd67f1a5601a88fafecfb61148
a2473421fd847e6a942ce27a5346c59ecce22d6aa1567d83d96b719ade633a30
ed4f98efd9e5d96976e40b665ced3fd3ffb7e5810def54533ce25cf6e94d6cab
3542ac2edc11b4dba77baf67d92bde26e2f223a45216bbeef13f6a0c748788f7
183418f19acef80c085cddb93c57af3124a5e83cce77147c245cfb0c6c7a202d
c22bdeac0d134f36d49e8d2b1b6f67d034e5b147f374719f9ca89e739f6b863a
5d733f5ab70ac55cb098a9e62626a230499c12867d9a2763193097861c895714
5ceb79df03648a258dccb73686af1a3d2cc84a3cd2731d14b78ae7f0b4d91cd2
e9cb37649ba5b7f206fce347aac44c149689b38c8031caa40fb0310123c8c738
2c46374c0d9d6831b8011cad4e97485acffe652e7c394386c3f49600b572139c
2ae0b7ab0fda65a4507af7b040fc8995f64b856cacdf662f80be080cf7581646
8cf96b3227431b90c825ae8135c29a2042c0c5eb470d598a80790e7c8f3c91a9
33e05623bf68298c1c7525c6fe4d9c051179b331b0225ee1f67a80cf61956b05
a4a9f9ad45633ad51f49be95c51d1b0de4f85e1304a6cb1f318accf04c3536ea
9a021e3938b8f876edfa91c4c3db188ebb5dceb5714d1943a3f2dcd64d2e65c8
9b6a07efe3b99c51f10208dd029657ba797d3da7d595d30dc9895d7a4b59cbc7
4379a5275552270bb50f2a94dd5795eb101fdc7cd179c1b5995c8a30d1a27ddf
8f3222bd390460aa58cd4f287b570ecfd033e712f8932fc3b80a8197748c32a3
90d908548b5a18ffb6557ca442cb7c39d98737e0d041c95d30777d8ecd4c8072
27e543a68a2481eb114d34ba23eb4ba29a21f2b07e7d6abefb020586aaba8b6c
03311b222eabf481e0f684eee7204bd67b65b9584c07c8736dbda278254ada96
2148e5bd23321145dd25f04a9c52736c93bd4c72025aca1336287b882ef3fec1
4cf498b1ee8358dfa2cb3774f57e0a98bb8f19a57a4fcd831ddbc0751ca373b2
d6dc38fa4a480591b0de9fbb297d39c4113615757806cfb6f68ad6741f1f973d
9a388ef4166bd5ad8a1cb2ae2f431dbd2ece4e7ea2c1f24813507b284b17f91c
93165caa3d5ddec833dd17df64d8a7619ce717073fe1ed70472947b8f9043811
5a2af7e43a486cf2006a594e7874f89b1e1cb1aa1678392d1ae7a968d4dc756a
3bdc069a53011c8299d426d479b0847892af061a9d94e147bde84ce93a0b0efa
fdb35a69f0cc61e4e73e50d0ba59ae73721aebe43bbf258d80f37b2720d18cd1
a845fb8b60d754532042445f31715a92f7338058a0101da92ae8c2fd3002d883
1442ae0fdd2ae6dc553d499d0f897bb4c28db212d0ffaf7cc43c916d503de06a
820cc0dee3fa7411211a7ae46119be08897063b5d4ca9bf3f677bc5ba65dc363
61320390d89f902f2da92d5209c32c3d7bd59ff2aa51d904801951864119767b
4c1bec8f39148f038b8cf7b5a193cbd1daa7312d39004ff03dfd8dfe60fead97
29c66f32c05d21caad9392e6d2389d21b088d8627a5d03983b8d34e47aad5edd
763037395337d641812e4e36e2cac6c0189d8def42738fc9ae10634eefcd27fd
455f47ce65d57e7019c8d3e30a63246dac453014cf3abc750fa0bd0636035251
0dced1c49ed51d04cc80fd5aacb4de1453c2214768a03deff309ae39216cf3e3
4bb1745347469fda22238677dfcfc06186d70b8d19d70ad1c138acbbfec217e2
4f09b12e5cbf0dc0d083fad82521425ca0c080465f6c58871404ea9965c74015
d14b93e890228370aa6969abdcaadaea7b996f859e2b274cab39f8fe84e6a350
a7a8e647e342ae3c8dadcad49f3da5e5950a45dbfc95f147f3ce4dc7b164367a
a2a5f6f026adf34e1e7db37022cabe69bf821114505b8a7f45e7bff937ddaff8
40147f3cd3e218137ac4f5d41df0874291c261e974fa97d41a0c25288d6de55a
310a82c4342160ec4823f5df879265b17f7ab7b950a3fd689fbd95d161cdfa9b
da05dca1fa064b25dc03ca86518e4eba77e38cca1f771c8851c72449a70d903d
81a1c0d52e40758967a1bc9fc8dcefa5780f3eee6848997d8991ecf7f980aa7e
0cd9bd5e578d2dfb7cc82979ee72f957a00e5dfb87e4f4faaba828a3757335be
3e98f8350c4838602a8a090ec595754a85493f30373301ac977937b6556e96bb
d6d51df5b9b1fd1c561fc53a4d017d190b0fdc5b2ed0448da3079f364a2c6269
fc3c0d850b6fe7e65cb4ee1ca21e7a5b2680b25dd423d87c9433dc3d2c5fbce7
3e5de98aa8ba3fff479ca0065f0414df2d1861e6664fe6905f808d99259c35cb
22a1620dfd9cb15a7433b5b0383b41193f3bf148b2fb23ff26491ec8a666ece9
ad1d8a10f95837b4aa708541ad4aec2df43e695739bf401798f2fccf974d518e
f84315eff1ef52e80b3ce233d91cd61efff122da1c0f76a9eeff00c135f662cd
37c42fe08dde31fadf2cfa1ebc31d9b47336ba0ce72582397ab6ef3284c03d91
91a3c74cd2bc3bd7450181f29bcd7a315b6f506350be18e1e8d69f791033c462
bb3597dda7655bfde0a7818b5a0bc145d07f65356197f84ffdff6d0e04531ba4
a299866641b95464552be50274557cbab07f5fd77c4a7842a4805b33db7d610e
89eb4420e9be1b7ca277a4330920fb68928fc342291cfb2de06c3f24a0ef032d
c9d69bcc8ecd81cb8e7d1ba26a25994901a3dbb22162c2953d477179a98f36c4
ccf3fb76dbbd84276758e1c8dc59fb84c7327a546b9bade9197d96538f0a4d15
76bba5405129214a638a1b8d3794520aa37f7a9d4ffcbeaf24036d4d1ada45ea
7d01ca58841fabf64a194cfd38377ea76136709451d62b5b2d3ed6b9843194ac
d076dce1e87647a5d01d245ef6bb39581d0addc9e43798fda71f2e7817271ff1
85207ad8953ebf8448c5a371f857638511ccb979389c16de3d6f20aaeeeb3d27
030cf31dd4231ef7ca9cc779c95f65fa8f285c7aca823284937e6cec701c20a1
5dd4a95b15d0732c651c1d7a7a328ca788ae747d6571ccd89362878feffc7e77
1cb9a73c5a1af92403ead95998881471765ce41e4317ae950cfab0c5b60c7524
d8b06b2bd5f5e3641d53de574735cf6e200da859cee10946b0e9f0243400d54b
8697fc27249d599be0b64b118184879b8d20c134a51fe7481e9a8284b9657ec8
028bd6d1dacefb557efa209e23e3214f32ffe739841e255e7c53b1da08f0a3c9
6ea2a3f4db2213eb99aeff08249961b7706826e548dfe2e11d715108424e52b6
ba675a444d26e29a27dbe76a05bb1c4176fb1b3c98083fccbfa392cc860ed931
d07877874806bb10d1ca3f02578710739dc34e8226f6f85c1becdef1b388a72f
38625ee5e7402c8ebf7ea99839f398ee77530c10674cd11ed5f0f6570e5b3740
8f7f534bcf16a3066c0e05a89a9dbd64426bb324a18cf61eaceb0217c21419e0
da44f84cc8affbe37b8b6795c1af5c6862b049290d07a812c60ab16669df29f2
d0fecd5c77485ecd458c2f3a43540e463377f0bc343e5689ece5ac50262ddae8
e92a62a55c6badef78f00c77ad422c4bc9e4739a7f6e04b29a1c08f304090254
2a883832a0fa9dfc3c171ef428afdbb1dd35d11ddc1ebe85748fd14f233038dd
c7d780f41ec91e16a75d764dd45e20b3d7ae330fec3181c87283a4f1aca81ae5
266caa85d31a23d2ad3cbe0be98fca383abcb2dd89d86e08cc32fa18bbd627e7
6cf92edabc9758204b1d56a06632c9de2742b9f730043b747af39d7c82c3e1cc
e92dc28623dd8e3c5195ddda1e0f66e128f9cfea2c50196143b351d86f1fff6b
2645f0412ba1cca44ae174542db0451a045fc72e9ff46e011afc701861767e40
c9f7a787e38bedd2908a085f8f5c3ae51c0f5c6af9d5485b35f4f813e05af44d
7519a6f33029b9ee52368f80797eb2e2f84a471a02b16dc3d348e8fa0b89c026
dad4c7ca8e04ca6921c927eec27ba1e3929a8438bca4253b3f21fc67910a0ee6
d1091e0d798593d1c81d01409a3f208dfbd7e64a17488e5feff1e676d7fa0475
1a7fc02e172e13f8e09930390244947a8c5b3f2476d90ab0a55bf104084ff178
10a9dc49463d2e710229f98b2bd67c91007fda9687cfdae528eb2fa53c67e54b
77071e58f5fc8d95deb51831801d73db5b07437df2a9212650bc52f95e5dee48
c2f3dbdff866a6a6e01ffa5c429bdd17fc0ca54d307b79619cab0a0cf6222e43
fe181f291567bca18e49710b787f5bd52a4b9fb2c1edfd4e8f6c4d6c725586c5
23c7cb9ddccb46a4ce8d8379427108face4cc98655923867c2c4df7fd01e8fec
a64f664acee4480c82b7751ea8f48b642f2952ec92531f265a7864fff42a1e60
945457ec7214dcdc332abd2f41c8840e973a23c3752049ed4207241c141a45a5
c80b809b6f1f7575f54ffdd891a8d4caab514dae7d172aadc9bfb858988d87b2
3fb193d7d4fa29538eb2ba2da0c0b754ca17a2cbe0e866e06735eeac747797e8
59bf56dd1710da27acdedd0aa7a3442c924276ee82c3beaffea5f98a2569a367
75f163044dced666920c04d4e7f679af988f31cd9b9942cd6f6ed031cb9addf4
2cdb97832ebd9d88453ba4731a131eccc4f333a4d8368e4ebd1fb83a054b4cb2
7203d1ba0dd846335287860c84f0c4dcdb8809c3868bff193c516b1b401d597e
76f13bccaa7523cc64fa5e4d06d0bd91907c54bfcabe4cd02667e62177557d8b
9474b453daa821ff481adcb077d7e267fc1e093177224f917bf686b29e045bb4
1993ee1dcc59d567f3e74192c1ce8d08c8785360595c7a510294603b47e1be8d
16fad3cfcd93266aa419054fcf6ecf87b4194c68b0ed37a4e0ea3518479f5877
72ed9fbc1fd89e07c59a86c299985db2e00c9d9fe08562251afe5f1f1da06304
61709d1a013fe75dc9cddbdf31f5827e9df62ab83dc245652a52f658e0d2406c
fcc869c960ec7866b1f02f72ec16d580051168abd469e2e64ed02c3926cbbdbd
1c961febfa431ef31a192d19d7108965236ebc8dad5e720fd00c85cb8d40f9ca
2e9ef9d5e036fe5258a7911fd86c92cbe38d044600fa25b0cd5ab1d63833061d
83de1927f8d70284a48bfa222f3832eba0d9aba0654caa65ef4e6905595cf0cc
1215503a159ff4f11f99a92cb27bd82c13def185aa96ca868a01d48ffbf083b1
14a148de07a1a2071ac2d1d9a69c4f0689af70dca5e9535c1032fabd6b9b4a50
118f391f15e829c4f13d0e3c73dd77df56778077d3662c53a672aacca8f6a7d6
6a4b2c8ed8c8667afda28882a370bf3b0e995d1c9f22db13b79fce63123dc82f
e8ec8a462d2000bdf6a76a672eb54d13dd6624be69051021c3cc2eba61792775
12c6f3a770ccb95d8fb44ef5f9e97fa6a5798d9a15ff34ec17958237c25ddaf7
91d80ead47679f8f98fdca570ddbb253b8a01c3ee1bbc81cc02f0dc144e0ed82
f1572557d93e7d8a5f9b9d6f0df75622ee29d96aeffd8bb9c556bcef82e0bbda
607d65be8ced600ba617c2bd065e7d90d0e13dd03947346b16d6f6a8ebba63cf
d4e513adb8713dc3fc576acef9a22c3791d3e135f2e6db584fbe6429757bc61f
c54ac3e3deaa34c71df2363f88fe1b9fdfd0d3d51293e85b68fdf7c948cc620d
f975735865d0b18778201bd929ef580319fd6d3420848886d7d44ea2a1f04a5d
a4f490de9f6fee42cdf5482d0bca4975939399d1ab0e70f814934a1385596006
c5f5d86506f8c0be65d88a7ac3ecce1f124e93594d52939b1f17e1eb9c8dbfe5
af0140731625e8163e10f1fb7d1d16b514c541bd5c57eac0b7a2eb0bb4f2ac3c
e83a4944abc804ad1e3ae49f7f40f8e9e00d91d455421cfcf805d520e4e6fb26
f754d4c2030f664085332b06e22146ba5290487c3a54af6f4fcc0704239fa7e4
a097494ae59dd95df833d24938ba2840bad0bbc19021a5b8d573b9a96fd960ad
7e8f116f94d9ec1ddb4a4818414b93fc4237d3766065064f
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMCSC10
%!PS-AdobeFont-1.1: CMCSC10 1.0
%%CreationDate: 1991 Aug 18 17:46:49
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMCSC10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMCSC10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{14 -250 1077 750}readonly def
/UniqueID 5000772 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3037a112066957
7889d67fff57549064b985d67ede2fb03272083723541051ebe936eff01a4ab3
cd845d565dfdf25d9ddd2792db17f52f894bea484480f06c832140fdd6c3af0e
fef0584c6b78b5e2bbb9a752f10581fd1c48cb498a822afb18cddebba34695b9
b418010368fdfb7bf758d50f3af03360b81c776325c33c9c81130b1e1be840cf
68c71ffd091dccc0df7b507fe8953dc3836af0da08ff9ff3e9cf7288d9eb8baf
ffac546a0fd987ae8e0bcf7b759f4408e13524f478de5896d816cb0ad2904271
cbec82a5ca50f0598502b434ecd94531b4a65181b5b3afcb650904b15157737a
a4386f1a7f1252caf2adbd5c8162bf3b065c01ca471d520c884ebbe1b29f9549
134e285dea2fe158c15a08a744cdda00bb6c62158262e24702803d9e1dc1d3a3
1383085631154b077fc20488ee3aa03f47ed2766644330b94133f2f9389b99b8
96d3707d1c5bb227fd3bbdf3a6ff572bf07164107c7a1c0710a5c7cfb67282f9
c238100fa138b75c553d7cbef17e2292a320d3d86a6210e6e3a1e590b10dac6e
177094d5dd163db623d7b344478752f6f3d7d5b3fa92e6bc72dc6fc343d2f946
9153e3d14c5a6d6b1d9ca52947b789cb4cf6196a02973aff0b097333f8d615c0
a1726ab7e31c378eab77150faa28cce535afe3ae5798402ca51cbd18dedc2c43
5281d0781351df30f4d11761579676449ae4a47a10f677cdd31ca9120fc2606a
9025d3cc09d58856a9bbfb17669f706ff8c7efe37a3656c9b20609cccb58b309
0595ca5666833f2bbf884aac1cd632fce69b4e0ea2e0a25b9c4d471f0e322e09
4cefda321359fcf0ddf32442a0321e628d1d3eaddd01986ad3a96710c071c973
c626b510983f613094594116e0eaf9be9014bd5085f4531548ce6223f7bae2f7
14ebc7f48409fb687b359734324f1f394eaceca21b577e347deb31d178d42f11
d8a7f953724bce484baf702196af29c305a63dfda9d77dd57fd80fedbb1243a1
31a9c3a525c9bdbfed20d422f7b329c362a3be9df5319f1bc356150c7d72cb19
2224798129667728e3ab3172d4e9a20eae691834a906079be03965bdf65f2f2a
35e3734cbd709cc45b53849d09c80b8905f8031c7db4a816775ff2387ce190b8
cba291a99c639fef96bab5eb91560684b90198d7de7ca7cab183e03b4e875636
a921c584c35d0c7b9096d8f5d090048306e86cb93a59b774b92a8b7389914965
24f0bca32e35b8a3353311a9760d34d54ee321b45a2bd7701a9e4a5e446f9353
e562c321c974e2a7cf05485b2572dde8e1c6a0fbecebe0871580c21fb027712e
07fd39963c4f7f46b71acbf687f31947726b15550c309654d6a5e4f5643901ef
48fe9a6a07b38cd89ee408dbe6ed5e4901c580eb62a9180b19596cf1e2e8a9c1
c34d1c4510377ec2a9f78c6d6a586fb64a118cae6e1ac1b5b094d57b39cefb90
b330351b3958fb0210cab437f28e29b31036f34011462fc57971a750b659eaa8
cc593848671d98c58b2d6dfc64e23162bc1b0f948e0000bf3d7591d289b08adf
2aff49c1c64618e016cf314928780d1e58f4deef5448244d70e8db56da7d345c
8780cb5b5b5308aa3cbe9408eaf61780ce3f800b2f4464d7a570c787e500dfd5
0ffe4bf100b48bc4075b0a4fd81bed10f8268dc4d5e20b5f6cba80e102904ff9
5e1002df4bd71a7b2c3b3af73e5c180d9c1e35c4959603f0e5436240dd0721e1
980264dd215ffe83cfd237f63742357f9fd526053fd9be7852314b60222fa93f
1ca1429c8dbc174f6fcb5148e4690129b1c893dea4914b62e63b32b71f0fd593
d82826b1f4cd6c8a2a06c327db674294f8e458a203726882695997c7e7ca7f7d
75634a0aedc4a1c0a35950e0c4e6b878e2fda097339b17a3a10f4109fc3d2249
ed79b64389d8e992cb45556db1f72fcc3e641ce2f921b4cf9ae7651f396dc111
0dc3e1af5d7926a91df0098c175b7ff5c534fee1322cd62c5b456398dccc5ac7
15c4cedaa17c844ba9fcc007912c188aa53ddd86c425af091546d6645191ecaf
2db102c014b0a116b3e1e8ae3e9a600211bdf5d50bfada2e44e7b04fedb4e876
189c75b056cd1616fee775f1fdf93030f7a15ec4ef4cef2cd2aa5a5d5e712be1
2c3d8ab7a570aa6ff2e8cd5632cfa8e0a8561caac0b991c2f43d9c4a9084d015
e678b5607096d418f8fd740254d6930970bb73fe597dced501942a015f9b81a4
3d67dd1513abdc92b47fe7de3ed0f192ee43c6520fa3f9ceb376f1c3c3098d55
4cd349d90bd977f56bfd02a09b71057c8beb8bebc4c6a5d3bd9e81c2bafe27c3
fcbdfc473fb6feba04aea30bbaad43166bdda2fadace3d0c4a20d2a2a2680930
73f9f4d9ce7f3d239678cf50395db69fff3ca7aac3741357e386559e33af8499
c727e178e9bc13079c0ac46a110b741bb2b76ba52374eddbe8ee9c7b0f6f0eae
b7a1f337c1ff4870ccad2ed0ee396d1cb252b783504c446a411b44e403233825
fae6195bad2950f5f05524bbf6c0bb134228badbf053d12f56b7346d6afaad25
4d922a267b47db05104e20324e8076bd2025dcd1e5738b10e50f35c690852140
759e8fa9fe03531d2679c1cf8e9df6cd1bc6f08ebe72d0635a248aea4583129e
e3638ee1c6fb3c54469f1f54200e163ac768d8c38fae783b6b62d101dbb32413
40aa3b944a2d2082ac42ddd94522a944eb1df4ade14af2e6942a16f93ba7c812
d60300c3ffaf3a38cd674affb1f7a1a3294fe8838e2581d4ed4ab207b47d96b2
9650906ebf2a94901d9d74176c29a2fd052cf1e2930ac90b916b471bc61f2f0b
cf345796e615f44832a075cd33b4efbc4da65712735892d55d70de1d64b2c55b
38d60b9c95019d301200491531bc33c6f18ce600a5043adfa50ed736456263ae
76793b42a7e9a42b3c91368f5f5b43395c1d956c89ea134554650a8ba8245b88
b01ae21bf5704e18d56b6f652fb67210faa5c1b8d52c7ed139669766da5af772
70cc39dbbc861d70ff2ba243215b72c9749913c471f275b804b89487538b29af
ad763d50ff54ae22bbfb4b711436b3bf40a9118ba95ead3e71d3cea8a9209224
7d0b2d0518502600487e014e2219224c84afafe929aefb05a7984bd4a600ba2b
a3b38c188a92847928621f3329e8e15603c739d1b05c562a01ef633a95bc1d77
44292727b88f4ae32eb80b2de09c3a90bc8281e598016857603216cd29370661
1e24324103f6f1f123e8e7f1bd6cda3cc3171b1f4d3264db0040cff64329694b
e234980de733d36e97fdc0e6619712468728fae84574dcdc38e7765667fa1308
a60b3ed2a290514967529683b783d883823b1050449a765ffa40444738966d32
351fe52d29e7ac17ddd8a8e1b3e8992e1c68e1ccf23dcc4b1e2921b2532b3cd7
f31d0daa51319851b7c86ef17a5519540c52f978d017a71a49d6d9a6e6e8d056
57317541c2d0a7649ec21061f79be3c10046d96130eb6f210f77c0588f87e998
96359bc9a93acf5b07e74a0c5658a54b56b8ee6d6d7332845393f9708e5d34f5
ed47479424cf9c43f707db3a36f21ecbed9df0509e5ae3c5bf522883639ee05d
b52bb8f65b33fac141dba9cf51439a97cc8066d3cef20e0687356b8b0984ff90
93786398cd7a0a0391356c584f188577d92d2337410df449d18b5ae552ad19de
d3fb7ecb61cb9ccdfa4658da5d76694059954f930b0807358df3daee4a71fd77
9d766c4f1b20d65150128e2f29aed41fc228444485269a10da0af614c2aac5c3
66a309a37b59cf11c75fd762c48f16bbfe687bfbce0ce02efaef7b47e93c6f93
6642a1762d0cd4324a4003f4d7203f2ff3a0146b48a20a745f50e89dbe080ae2
eb7f928b2d63c666ea83f20b03746ff885e3ebb0d42ccf393e47988aea7eb584
2407eef9435bb297ec8927540071d549b56e281ee7d9e22bc1355cb9292efb9d
5401e1b45342ccf78ea7ff3240e310520e5fdba8ea57da8669de961891afa3ac
44d096f377909b9d14002d113ba669eaa3ae30819dfd5651edaeb82f29a43f64
909dbbd1658962484bc8ed2cb6c204a1d453e8cb9f1c6c6b50dd6b2ea230951d
4d64029371d5601f9ca280cde8c7ddb1dffb4264797a999f36cf85007b600b45
cb204efe193ff5c1e450a8621dbf65108b8c216f89254169ca770c9073c53579
b4892bcc51e82ea242a764dc47d78cf905fe8d386c8e51a7a000951f87b90eb1
48800b3c07bb85cc4b39f3f6cfbf9b5dccb04fc34f8e0a5f5c295b545bd57216
67a773fa038e271e3fe043a6aae99a7c66f2aef4f0fae48575f23389c2ecc8fe
ed3f8806e00af9af326f453a1ebe5afd7feae7da39f8a48d339d7fc1c7e82bda
773f03c36380b279c3fe9c264c226ded8d9f7b330e48be5356bb5f349e084394
7fdda61cb15e9baa53acf9c093dfd53ee92f1a26d41359ea0d798246a5750021
ef40644b4960707d84546da9b1e9cf9de8588ef025d45835bf2111a7e3359963
2a971665f4e7203bcf3eaf9b09492b2bc13f9c23f211088210ae8e5fed288836
e5474288e36ee5f507fff87ba976c79d3aa068410d0c119297e79d9645b7bcf4
ec0b2a7ec77ada4f8e1f520237bd76cd2f8d5e65e3c269371c8a2942d2c1a55e
026795666a868c8c5b29366cd8efc76a26569442af97ecab0c01d449371c0583
7914c90804340378b19a402a637ef684da13fb14aa5543f8b6dac048a47c783f
e43e09381394a41bbc81ea71739d6c016bf06089810a976291c6f9c7726606c4
863ed630181cf48dbbcd921bc14d8dcb4d9870e50201ad5b60a0a22d4e235e5f
a6aec1c71cab4aa59fdc87a73920f2881670890c53bf51754b89f015f1757874
36106abec9c08e014c76188c629e374e426db9a020a2a72521e751765509e61a
a3291925f47cff03aa2c98af5022e18a28d6b4422bced4cb44472b060fe9acf6
0c46601b689040e50c2e372a3921319e3b2393f5ed52711263db078a07df9da4
bf6ca56bf14da8bca4538b313924e595a61961c3be86539c204109895271d019
583c92c214fe564743cbc3f149195b7c1e21b46dd8a255f5f7748b791de59900
0eae0794007f793284f6c532a0f416220f8be45419f0d04a7153b5e14a348035
8062ddeb933aa38417d5288e88e4bd317c969493cfb8da3c078c439e1aa3757d
87c3706b44709506f5a891543e3f88aafddc6bf8f9ea8028923fb8a19eedb1a1
ab1b3c453ced1b801b6f8b5f4d5321af6a89b012ec39825fd2385e4381e9cae8
58881baeb94efbeb5b5c563bef2d0a0ec8a9236559913c074e9af626d3665b2b
1d84e541d6d285eeb40807eb7b5d8dcd455d522e6b1790356d8ded3b788c11cc
0f57136964a4a67edd96b72ad3267f65ead519d95cd65cf695fc6f604b0cbc0d
6440b47bce661f30db42bd17d254f7b6e916135e78ef2175ea3524fd81f4e25e
3679752aecf5d83abbd9b9cc1192d07cc396befe6bbe7600e7f6184842d5b4b0
c60541b7ea16791d528e9db10c851d6c51540df10601473e1bd2ac2456033f73
aeae6b34e67318029b274ed8bc066ff70cfa507baf88690140b229cccb6f2867
c1a362caf9379c2854686b86c67e738a7d571e26a0799d936a8ff839eeeb02cf
40b27a32c077653e96d6022fc38947b0bfacb8ec08a57ff60193329825945ba3
e914a52e0016123d494655da2af7316095596aec8a424da2287978a77a8534f9
98c4a7d022d57eb4e29ea35bc7172d840d26746f094c6d6adb1792b4a94e69f3
309db8da92df1f15cba8e2a33211b853a99731f2c61a949af043fc8085eaea96
2b2d956d35e294e686b0b7b1563919bb84f1925ec30491eb989f37af0febd034
f1eda130a77ded44dd5b7c6da0c2dd31495564c410b4ca2ecca12c6b6e9dbdd0
f2f28053bfd43bee1cd65f5c27f78706b32a597459cd828adaf4a7d57b5e2669
236e008bc2da926c39e8bc74ab792645704c3311b8f6fe15559405585e50bb37
670e3fb380f8914b5ba48be21ff8532c2b3a2823ec0f28c0c61b08520e905275
8a2eec4be54a3ae30b576338a836f7395b8daba0cf12921f5c8662b8434f7c35
514391fa8d88ce976b32d0b59a7fd336189b7f6282b21050a552dd7f98a5a420
35064d85c7313561cdaca246d90cd52f7a2065ea13b604613890e0101cf237e6
c2b10cde5b2df4c001db65c2a1391ab6eb0b2d6af87d89b3065275f8e4b75f54
4e5ac461af996eac1c497547e15056e9ad769f7b8179c20226024af33f597dad
6d785489299d41bed5eb5b6c8564659ca4f3d2c2ff557f09a387513ac5a16b73
4d06759bff66fa0c32686b02a5ce869012a63629ca1bf3cfbecbb34ecc9ac64f
b46827bdc14daecb7f38844f09cb4d5c0d25f5409b330a6a7d8b560bb796f692
9cbc82d4ea974a9aa4440abf076b6bdba0a06f8bdfa131f7a07247ffc590c2d3
23f344fcb81dbf25498b539bf55cacc704ffe4fa24ac2dd1a1fdd0cf1253d601
7c957389e1e051d32ff076d1fe50ac51855a5570d13e41509810a4dd265181e1
a2d59f9faea95ef74fd49eef69f06a11f35e9246c031ee50be3a6bb9bacf74b9
14976798ec3760c7edefadd3d7d8d8b0a08053eba15ae7983a3c8895f46045f1
bf81085b7c6bee1e3ae048187b03004104e7eb420bafafba1b9416d8b315099c
a4a87390c94d4dbd93ef5422ed62a66b9cf399f5ae56edd9a13f3ed0e0330805
4145d164752122458ece9fa735387a0460c1ccb7bb6572fcb5516562457f0197
ee288fb2a832971de50bda136add7793af82372da04a80646987878e1887a2c9
7d9c00a985213cb0738979d917ec0083f304e1e8f14a5bfc5ad08cdc8996ab29
c1df42d3c27145d0ca159560dcefce922fd5c2cdc533ea8200ee56c31ee89b59
e82bafd88b9ce2e1592189f01612fad78fd58f5a29a6c6f51cf52974687ede8d
afa637b676b4a1691664e353e2c8a5af008e0ad98000c84a992806f33ce07587
fbf841707b017d9da7bb801e9dcda19770a2327d933bfc2c6371cf399047011a
36a4d08286134612d525169d412f799ad94065a3a839fca488aeca57dff823b4
1f8507d4cc8ada8e9ed1bfe8126db268692188f91579200871b44e7b7c73b860
cc75e75cde38ee8b4a49b164ae367605d17a2de014b4bb79660666ecc8ec77db
e65c992a1b461cbbb9248bd5ad6be809489b9e2d292342350ecc3492383280da
a3e014673e89434ac622716a2a0a24b4af0f2968c8e92275c55c20e23d31403b
79816d7648764c084f9ca0e1f4b1dd119f2757bcc4e9f86706c77acc2d75f701
b544cd60212f246c3802560b7683953b96d0194bbd76789bfbbd651de45bb768
e7ac040378ef25179d9f090b797d66ee3c8a5c2cfc55c5362f16d291a4d8eef1
0a872b5ed997586bb7cb7ce2fef8e48557c8c5fa42bca62b7a57648aab954125
26cfe3cc5328fee9c4ee8692461d7b1c13ada22aebb80875096ec97460faefd2
4c1cd7b164797f507fbcf98cb51dc473690e7c8db6245b12db01d2437d9c678f
48a475d2c8cd267a1e13834a54bd30287dee634e79691e9bdecb82b8949d3f18
76997e94932709901a0d3d3fdf514b96bdc387a4b3f65f3f0fdb25968a94c978
e5abdd474b0990cd5d4e8d4a218a1a597b4c385cc5908422e7b538eca1db7cf2
9ad19c8a01c8c6946b8e2c97e2175cbf0fc69dbccad5e1b98a0868eedb8f8dd6
b870c3b18da2e64c5edfca19cac3b7916bd73992ba267512f947d5ac35150112
c0c919c9bf2e84f9a9662ad49466a61e1b469762d48c99dec120b575071b2495
a94cb352885024c242d7bfe0ccc992efb2c691767a18e05252faf0cb2126a6f7
edd535d1e28a3bab635ade2b7e198489f9d8826ebe8b4b81fb0271112eebc9b0
e81ee8e81ec6cfa92d11723baa17f91d13c27baf745c07b53764ab7c1d79ccac
290ddcbf81ce4bcbf2c1e4bde0a863b20b6feb1ea9f4e948b506bb9f5ff3aab4
3b9eee54d70098277d07cd23f0e9d7b55b2f0203a21dcd6b8b0ae65be806a607
9b2afa269c84b7806dfab5ba2f6343357262726c132a62cb014e6ed58180ccf0
1fc107d6c7acf06c6671ab53ecd040603a67c00ef1511157e91bf315f69846f0
fdbe47fcc0969199d695c4569b4eb14d793851ba761a1254a4a0ffc66e70e7b1
ee46415e44d2ccb677a10cad712f59a6a9a2606b3496bd3e8292f5073c443af8
156b00240970a03302bf0fac2527b8ce963c8015b4fb45f37ea6fc96bff7ad10
9998500fd341a69de166e514c9a9403669092f4fef1a43782e1a69c9d15e8d6b
fd8c8a75b5a8153ae19de2c0bc793a2562808ced1cda2d904ab886630cf5a1f9
63adebaf55231e3e7783a44796bd9f6a4239a88fe589e9090ec521d8d299d3af
261155eee2fa4dc4f85079ba85ec250860dbba21bd41a6363cd0b4a2e284f8f8
84f76add7e2cf7215378e9e45ce5eafc36e48809f953cd749d685fadd092bc80
396255e6d575e8e0ad6412348880ad80895fd1a7e3bc2811757f7911c98decad
99b69a8c33995d1b24c0234edc76291b5169d5e864a9862e61e38c58af78cf93
0e691fe87dc0c63332e99937d843147481125a916696e65764cb113f80e4fad6
77d50839c6d5f458c7d1ebd11d0e42cbdd98460752adf54d8085f1b45bbf69d7
6d4fb35e913296ce7d62dd2bc2a7f3962951541f95f4e4263f41e696efe64849
17ee36f59b538ed1e3cf270330a53dc02495b5f0b88b939e1d95bba5b433aae8
f80d9fe748367c461ad854a480e3202c03fa32ab594cca52f5b516d52c9cb8bc
1b5f4d1b4306a521ee739d6cbd8f1fb539075a369e6f0df3d5ebefcdd7fc1765
97149cbd805cfcc33c1f5d9793bf4e6c06281dcadfbf1ff0bf88208322057662
888ae8375b7e8099d9ec015eeeea0e0643b143459d2bb2f4df01c399c44e0415
087c72b4ee3c392cec3b08c2708c27e76c9820b62e8563ce32084136b08830c2
78daf288e37aaa243996dad01b95d04a577344ae74bb23c7d7e651d5e13c9bfd
31205df6e2b35237c81db6b7b6491c3da0636f72b12b0ed79619b29daf525848
6ef4f1d46674d4a4471d77345510fa532beee69bb68d05fcdcef30417210ad76
a12a6c57c3101babc866bfff985ecd9cd6eec75cbdd5bad419c09ba9075fe81e
5095fae6092655a9bcf2a327bf4305089ad0a8329c42657063492bf65793a09b
2af85c495aec49c19ceec805e5c51467de8e6c96be2f45849b701d9d160e7052
8fb1521a5f060ea1a848576a6b499faa3f360da1bd7b0caa7c14198046afef32
570329dbf2dcbeb006bb2b2b6ef0d04b749526c2187b05efb92a2a6b8619e7c1
50dd0bf00d6b153ddcb5fdbba913b9d045ff1c8f1d175a861db7cc5b1e470488
6d1c4883ca364ea5f12b3d7d82714959b3718584592817256ad020dd7b1b903f
ce4fa39ff6bb5193d70d983b89debcfd4e381c793c8f7b12a42e3becf3a20248
8dee03e145b0635bff3ce150a755c65badf2b4dace101f973f9e4aed412a4d5d
4c21a62e0bcd271ee4bbb22b20d65c20b1742dde9b608fe4ff153bf5468fae38
71a6d219a2b40d2e69e27a088b52918f147c95d4ce6ff34040e2709396ea917e
7e6b05484b1e91c1a22a6fe13b59072aba480f93775836599f482b87d0bef3d9
94f2ddf836f95c24f27898e87dd79939557cfd9f9526ac44c8dca2ca1dd6fc6f
36439cded471ffb005713cfd18694c79543b781cfa63940228ac20bd0428c055
9f1bf11df2979db47d2bb4260ab58587a1066ae2454cce918073b131809850bc
482d81b81b1ca7ffe6d07066e342fb3d6b9ab7076075036ca7e60cd1c708aa44
78d7b2cba838b564662694a1c07801cb10d14c7920fd93aa934a9c2931bad58f
5e67ecbb8dc414b70a3dda74c0bd359d70722f2b7e8453796ad6c8a524dfe5d0
fdab05b0b4e3fe76705a0cdadbc4266727ddaebf7c77ddadeddcc0c1595991e9
fa9803778ea429ee2428edc81a2729bd3ad1ddcd746ec6291f09727455869fb3
c1200f398314845ba12369f991778b6d480b24135c67d6475729591681b1fc5f
bd39e6664c7127935607676d051862d0420f08a94d29c1e619974f69f1e21857
f9fab1be068ea3b01bda9a7446f1b46c8cb90ea1523dc29d9c8bb4bac5185a8e
6f355cedb543faf4a629deb48878fb1982f2ceabaded965fae1054f4cfbc2c7c
dcbe5400464389919cbdf5b05653e3563265f8eba8ef7b8f194c40382779e9a9
e3220d165d8aa421def9d243d2efd771a8cf1b7505d7ee0202794024db494591
a3a9c74d13517b947320a7652351812beab4ade1bf13b3e94ba1c8004cc5b57c
fb9306865912cb0f2b41f10468598b7d8f3f0fa86e06fb98925aa0b3bb53b432
cf8015b20f8c26c8d8aaf8ba94e123ae14bed061515ae6a5bc6413cf8c7a762d
9e883fef0d0ed1137c2a6d4a4386f7ac7cb3f3f844f7a61b4e70879aae5ba4a9
829f72a3dc606d1e53acd23cb4499f9e9b97c093844e91da43fe7fd2d2600c5a
fbaf3533c4c9030347448a2c39d997e6636476e8ce2c1a64e1ba0a38d518f45f
63788f42256a1ece0ea6eb4c26f0146a6915d42911be09f1f2bcb9283e339146
9a94f487ad4e0294abfd0c7e64190e90e4fd24ed0df4428fe2b7d6093ee563da
a34db6d22fdc1c892e8b6600782aad566554f6cd724dcf5b7ffcf2624c048592
b20c64a3ffd687e19d0f1abcf9b008e1a90376642df668e69d702202ce0b120c
455791e69a24f8d26f3a0c6d34a423a981fda1c736655c7b3cacef6819f7b1eb
90d1f7072fe1634b7d2d85e693e7ffed09f81e3404d59eae74aa2b9f7d8098cc
2daaf4cb3c7c51d14be36bc9874031ebfe2f9a81cccbd7f414eab8ba58f95d03
647c53876dab75fa3f2d3502421e93f0f8b4f1a834e4ee7e72270b56b821518a
d2140cf9b150dbfee110463f8542e180e570efd48993f4159f510a05bf03a80a
ef0381e058ed1fd5cdbacb85d3673ce3f3c68c6246a3315ed6044fb92a0bb377
21c993688efc6b8395084baff5a554f29ba9e33505546fc56357dcb4193aa345
33cd46a15d18ef3476a81802b1c1960f661dc1ef1a212c1d341e029fe3fc8d7b
8863b168f931c600a5bcd078419a536c2be4718546265d7e699d1039c805df3e
b52233aca56cca1d0ee6c2618c534ef9c34531933144d7e958227aff76613eb4
97444a11862d12b70e21663af7adecbf28b2bd8fe0361211e18ab57ef52df0e6
b726b0b44fd0fff712c29f8ac810729e6581353ae305be636cd2255374a54176
12f88e935cd00a776aff595ca9d288dfe33abb9aaab3f6865f3823ebdb43ee70
6109d8703499477dbf93c57a751a9e34a87c547749a6bfacf655b394960c8b4f
82468ee1abfa629cb664468e390068b06e73d9f9df8278c03173aa010d5edd11
aea84c0c226670004d5978030c0d6d81674963fedad748e6b1f44299b28f6592
310b1e33e151dcf8520a94e7c859c472231b30afaa477e441de08a34a7bb8403
9a675c2af4d9c136d5a03cf2994c9102807aa377542617ec9f4990059078aee8
b2cf3b77ee308e09ada05a06b94848f1a3444bf4d65dda1695a15247394e394f
8f49705295041a9c9f5b001af774bd0a20574db6e4da463e84a9b36969f264d1
9b2518af6c3fd65908e206655167f48a87a3cf7b2c7fafda428029b0dfbb9534
fa049d3d353e541a1c6886a22d0618ee3c07e2ebb9530063d900b4163a12639a
32ad9d7ad4ef7ae7113d579ff237c4786a8cf16cea6fca6a0838c122e2579942
892ea7153c10a1be58a7d0b9a94d2d980da6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR7
%!PS-AdobeFont-1.1: CMR7 1.0
%%CreationDate: 1991 Aug 20 16:39:21
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /Gamma put
dup 6 /Sigma put
dup 35 /numbersign put
dup 40 /parenleft put
dup 41 /parenright put
dup 43 /plus put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 61 /equal put
dup 65 /A put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 89 /Y put
dup 103 /g put
dup 108 /l put
dup 111 /o put
readonly def
/FontBBox{-27 -250 1122 750}readonly def
/UniqueID 5000790 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950
93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21
c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644
7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e
13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03
22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56
25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1
c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a
d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2
b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e
2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd
6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4
07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331
51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6
0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3
d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1
34e48d740607ff2e7804164a16d47735864db8463a486ce4314ce68a4abbfd0c
1d8090a1146e51c1147146f1189098b0ac1b31819e481ca297840873961ddd87
af46c4d818cc252607802320dde80926c63221841035992073004f7dc1ec8b82
581e2e62ed4d0cc3ef0599b2dee151270a188a7649e96e60b4578236e03bb332
6e18e077fa8af24e434ae05a3139f24b6da32f4ae82a86570b3f933c7c8ab503
7809a99ab190d89e32c8f9a62383c0b3ef7ec5822b4938ad704a2b010cda6677
731a6acfec0babf1016a089b2d24de3403b6c26e19ca2f26e882d4ce1e43d9d2
a1ae565d480fe0269c685dd0f928fdd44cfbfea368a6d5ac779270b933b661ee
2fc10c5c7d3cb6b3a8c97d58956fcf7b498a8be93b97d7ba27c6cfba2a2beeb3
dc461a42780df29e968779a794aa231ad43829829a29147266924e4206f57878
bf1aef643f714f30bc03d14ca1717c6f9e6717c2b4baf52b07e5ef6936818d8f
4069db8a1edb3c9a3c21ae0c24bb84539d152eaaa6d9ff573fc8b04cd057f891
69c535b1fbc9b20df6d13901041800197d87993ebbd96ca3ebe482b88915781f
f082e85c502ff7647a7c49ebed48e504012553db69e66b8acf4f9d3b69925638
1df97eaef69f038b9d5f9991835915665b1dbe1b33be30eca7588a354b823332
fb2a8505746edab9766926444be0548feb7ebf57e0728e83d4285fb0a574d00d
c0c3ca883cf575a7c8d5663fe39ef69edaf29d1e75a970464822207874782c04
ae32b903b28ab4af1e2c6d405bc9e644f1534dd08386e2605589d8c1efbb9d0c
50092ec282f640327384ac66c2cfb2b3eaccf96ab94ca44bf852376393ee6fc8
f123c274b0ec7801cc2cf2b79ed3292c673226c73f7fbf8b3bde23179ffe61d0
538f210bea43233db9a6bcbbed13b935c72bd2c836aa89de8f33e1169c309dcf
e20a65bb699b922fb01ff4a001e59fc04983636168bf816ca515708b3ba09de8
6632c8514058c5839aafd3550303b5ce07c2253923b989066f831da2966d0edf
9023e5623a416dc50f12d7fb0575b636fb90104aaf7efe70cc2bf1c71e3a31cb
49cf6561f3507bc44c0a31ce2b31f6e44f2b0a64870af02fd0dcd01c7535a63a
4c7857290319a63031262915c3263b0c49746e0140c89832982260be2ce16cdc
513dfdcc943d7ce72897d8a67dc4f27dd561b0c937c8a0f63e94499ff473caf7
5c69fe4ac9b062b6cd6fd90afb26bf97ec106d87d238a1b39b7eb332359e35d5
32efea6c53c6fbbb84f7cdda6189cb78f3b133e74115b0df1de46da5a8acc47d
af54a691749e427947f3c61eb95e3e7a6c65dec1348d0eb1dbbd5258efbc13a4
613426d8c2a6ee12b05765b5c5cecbd63c1a771788525ec98d711dc599837a91
f5f219e01c272eacaae2dc243c672e46cdd72dd271c76c8e5a98ac025d3cb52d
ac8f069584c9b42453cd8a15588452da57b3638eceaf416a5fd7586bb2087195
34a6b8d39eb9c73be23f08fbdeef4f28cf24be26de33ef91e38e04a76e015d6b
086c88909a2f819c684ccc328b41504d2cbb2b39133f64f3e6e9716737c9aead
2ad63c5e1d3deef96c2e3eeb690bbee1bf7e10ece76eb6a5571995095c31eceb
575d9d4e1cac5669567db568ff0c9c6201599f5d7be24ce0ab41288c2d595747
3205a99689ac4eff53638510c1d1631e4b2b3e7bc764798c79280befc25e8939
5d74f52324e0548b1defd7aeb312965c9fd2ab0a56b9b528bff3ecec488a94ca
0e28d004a6fa540b2ef361b0984c17b54430480527fad1cbef4be6ae8e4c4d3c
a6d1aef749f32a497fe4d61afff3f42802422dce416ecafbba08d6b77597cfef
d14e99981da15211eede541ba1f4e51c96016cc33a15d515195f63c240a1253a
33ab5af26ef0c88f0a909f0477083e29f55d8099ac14c297740f4de6bc11eaeb
20d5597a1733d94ca16e5ea6cf7a40467cdcee8ff1fa321e7d93d4713c6dada7
09c3d1a062fb54f8b01167e68ac20c5d03a5cac4ece0b81182404e1389895f70
4f4f2933657b45d1dcb8fd2928b5996950f92df2f0d91a696ca461b90229b258
8dc1f60a5f072e724767ea8708b86947ca26da07fa619c80964e134ddef581d3
fd8df5b37a9967af8e240ec2e1d825651ceb3036be4b5880fde3a3af382d6107
1f75f51e73d665a7379893ca893e1ac884872fd9cef1348725f0e5a344d46e2e
0039265347b9f8a07e4d72f532df9c62fec964aecf4cdaefbdc7995e8f585c5e
b3fb84c32b4d6d31b7fca3d812aa5c91bc15854b471ec5602804fa9c1fe1313a
c01aad120004559808427c9a273c27a5f4d854b4172463dc43eb8a8c276c93d4
f3048014476d5380f9c915b283bc9bb368cf9232dd2b61cdd59fe61958b2a3d4
19e7dcb347146d26c3fe21abf7f9480fa725b3269963f806e7cfeeb3739671da
8897898595eab2e8472eac3b6b6e92cba8a787c76d68d80d89a16512341996d8
2e56e7f5426a7f84f99d632d80044b3b3fb2bfd1fb891979a69d290fc0d0d990
de6e1da4c6262038c0d315b431f69cd4b0477c37b09901aca5e15304cb77b9fe
eb00ae4a6a869990294384c5cd33454a9608942142baf0f979e67a218971e801
a868833e1b6812ef8a2efb0cf25054a38350262fcf04e00937867f68df51da57
2e01fd357d5096d872e13de2cf2f35a3806bb890fa7ce26b64e0743fdf6643a2
0652e20df6207219cd76c69def275370f7c4878adc23554bc33d9dff91152c77
dfe05b8aa8fba3b3a09d6dd698a15bc7ab766e45ab887a94154cb9d1413881c5
d4d0757a1b123f158802130d474c4ff61c030edb70dd79556d24dbacb7e4416a
3f7050b7f8049f66a2a4b22d48f8894defd4f0eaf6da3ebc54169b48b6893cc9
1dd86668421d04593a8d11c640d1f574e5a85019960a3328f9ab15cc3b191cf5
12519c08775cb461c88f7336389d072ae40638835648bad9f7c6640f99c910fe
4d6ca5f469bf7e8e972d838bef708d2bb70bc21c2652f9481b6e91cf25809722
2e5cf8ff0349c05e2ff30bca029bfdc13721a9037562382039fda7e1c0cdd65a
cdf42f1512788e43992f073b38e8b2f694d6d0c1e29536f9281cccaf255099bd
a8a501fb6518e54fe20c978598d475cb65444c04e979339e5f4252baf38f519c
a8fbbd6c6a6da35e74a59fd5ee4d3181a9cbcab770b3b30d79a3ba50f67d4599
316efcc0caadbaf0564f0b67e98b995dd4f528f31cae825eda8be2ac54f3469c
2e7c3ecb195c7270e918d7eabe55787cdf60174c67db1d7fa377b6be9babd4c9
d3227dab85e3464c2d34b6dbdd4a35bcfcdea32f5817f38b6cbd534984dcb725
6086184410a464ba4ec22f2eed64163fc2b44b92735e3cda75530c534199119c
079c45d025e39a034ebc99f59ffbfdb91355deb5dcec955737f98686e061f93c
707d417e7feeabed5784b58c6b4cda8697915c21fd66606343edfa5eb4c5ae8e
3e3691cfe5dc4a38d5f26ecc12393caec7ebcd593c1e401357c744bc5c1822a3
462ab13741103dc2d19d2850564df5bbff4e084b69ff6a38024c27fc49f18cda
4fb1885b22587c08725b8117f5cb534b3654f0df27c492535980e5077983f2ed
d554dc4c8dede002923c8da4aeb847d12329ffb0e833431f36fe0c57aefc8424
0c90b27f04ffbd1b8a2fb226a45f47fdf78602f3bb81a0b694020c38bc379530
3f8af9ed0b0e21a731f6c7c63c0a8c6082669c994deeca5f4138cf7d35098904
95c6610780ebea86b8c0b79332fd1c80916b80c602eb6ab5d5674c2761ca767b
6f1617ea9dd8c4ccd9ec738618ea78aa365176f5668bbce2b17c6ab5c42963b3
8979e4ebeb2a72acdb576994d519766c875ff737bf062a9b08c08a45ed6ce6d9
68a6415923349bb07864d9ba342915cebbdb18f78dd4be3c2694b0992b1a849b
f80094b7dcf1f45517422441da8c2db2a42fdb45200a16b0a2ad1dfb7dcf070a
5927a39364cf0dd7a490b5f0d94f5be22b5e3d6531fdd4e91c46bfcec5b50a55
88cb357d1481f5ba198c2327d5e4d5a88ef8652cf9b42155fa29a0a45f7195fc
0a0c656f99c59384f8576ff5d60bae5513fa3b86853ad08e7ac5d1cafa87e5f5
800d082dc2e632deaa98bd292742ccb440ff87ddd6161feee45fa4207ef746c1
78b1ad74b56e4166b2af6a7052cc8319b70839cbb723455459fbddbff775a894
eec32464c46412f3e8f21e9c56ced5119a655c6d3bc3054dda25aa6b0de8a4bd
a37c5b70bbeb66d84d796dcce699e7b7a68f29ee245490eee4decf0817f57f90
ae54a5c64406d1982beba7a0a8c91330343ae4cda0d4dc668cbb731bbdde06cd
8dd4dd87222701fa862bac0e967274154d220a8eb100e3287babc0a2bde7c057
7c87150198f1b011107a89420c3891e0fd9ea9cee6cc56fcebb1017e43f11fa5
ef15042ad99b52fbd7d4719d132de2fdf565177631fcccfc77f95f0cc34bf8d6
3dfa57e9b76f5df0613ec9d55160d6bdc61ee8758b89869c6e194d5a2bfe3a00
195fefc8baa01fca32dab4915d39aa7d83075790162637082393fee96b65807e
d4a1c4e303131a2a9bc2c8d8acfbb44ee45556f7c88c2e4dfce67bba40bc28ea
0b9e297b555d2ca88c4a1ab7a54ae1df130ec6a4b6b3eb6142e1f7c27f155fff
82e1f4c6db5ab9f38f178c3ff2bf24eb3163c662c53d04d7aef5987f382d702f
73033bf553205563ef470310f5b8c654c49464da16fa6fa3e9e2d302f10f1334
a86bc1a2b1293733e8457dbfc4b0566c644db9e333560c850f7a9b49da66a027
651d940b9120f3ffc664ff76c557d27aa7e8dcf76fb34212558b731748c14af9
f4b56b33222d432ba14abeb7e3d16fd9cba2dff5e734e00ea2b55855c26e189b
cd0a0162334c60244a1291471482e9931ca599a9ddb5a676021932f83f94b917
941594f4e8977b0f0c72c08e01a4c1398431dcb5c35d33355c923140f3f63d10
7c5e516a0c15c93e758192d06bff8cbf25655130d91bdd0c898b3e4c4526b829
6b31fea2ff3c3276d553c728e7aaf72daedc19561c8b449ce466ed311918ba31
8c3a23cae038c12723505dde76bfdf47b3dd758cdc83fa7ac200c8306d87ea1c
759f4fbdffc01a39a714195ddd79c1028e29563766f251a0e6c377ec44e6795e
b2a8fa5fc4c557277637059f27934d9f5b079ed07801651d8da52e16e4d3e0f3
78873d0b83488df443642316d373ab2ef1ea9f95b53426735cfae281cc2d6788
5d6a63e6810e285a529dac839d0a04f61e765221f1b6ffc94a2767e94aafae8b
e6259fd8d19dec740c7a088fd2d232a7123cf9b00f7e6cae0c464a78d5dd335d
148aa875d063d5f74fab194986b678a9b97373948cff23da2788d83266b3c2bb
a3e938728699201643fb9d9cc31bdaafbb766ef0d77c902344671d09950d54a2
7a847520f2cdd40c309b2e55e92ff165cd7238a750dc7dca981b2d0a19ce8de9
5403242ee4efa1cf7131dd3cb7e4eaa69872f2cbd18277faba3319f0456f4f19
12b44c2ef9c9354a3a3e09b73fb960902148042f961c0579c99ded7f6767afc2
1c3de184e6e607d77bc4675e43e23cb5281e2182446177c3e8ee1f8a7f3792c5
4dbcce8d381e6491fa29fe998fc2cd2ca603f60a11ec076c617efdf19e090abb
31f3b297b86a8b8d99a6e0296f2377c356eec19c73193158fd1ea3aa0eeee329
d49534a7b258d1d2ab433eda31f7f2f86aa667ede2e0a056279f2de6dadd57a0
0ab53c87a4b4c133eb2e04769dc6124a2b5b534d90cb7a508e7fb9ffded70d4a
ff75612f05ec5f1f213678cfe71bbe3e887100a0bd1ee4d8d3da0dfcb055db72
ac2b174f5fcb6e47d421ed9f062abb14624d151c108765dd5a30223b4b1b7cb2
3ff89e01cba13beb6e779c49696994b57d046cb57f26c408cc41f1f106df2a3d
9d1e7e7a1cae6ec231b8f88bc7c2dacc974627d4266a9969dbfab40e6757f523
c101ba1d256892e486ec06035b35f0196828dcbfc25f9b900ef058086f107d59
48e87054ba1e076bcfd0e921932c80cb64a4e71296071267a8d31761acde06ce
3631727c755742ad7c5245cdee13fb1a01e66ca8919708c8a634aa3711d8e416
28c9e8c3cf28db5d8ccecff97bddbe253ddc23c63c9ad71b72dea80c10bda76e
d5942c93aa408c90ed78d02167a58c95dcf907ac3241e5bfe1a897ed282eb9b2
8c8878934219f33544fbee00f41b93ba3e12d4fdaef2980ab6faa1f2982bd5f2
e325b29a43278b7e420c5f6017f6e58ecd95bce8a6840f41c313cd66ff1d0f93
ca736c1fb5ae18afc2d0aba8fa23f2a768c187d460e7e3ea16b77f43749b98fb
dae3f3726d1112820ff75ae2845253a96b5ec8bd79ef7c0687c9e2026abfb79d
d0ee493646464b14c95c93e0ed4b7669076e23b25364cc934bd9289d1ed524da
a26f71d35e58970e67c50c71df49c5951445f7b50d30d6301028d6634fc9e8e5
7b3292478fe6b99609bdd6e5ebe757f0709c5de0c02bea51e3d2db4611504182
4e2e9a97c5c330f3c04329fcc2f83afd2126e61ad5b0f421067d81730228a419
51f6d2bccc5e746355ef4e7b4d55ee3288745e90876a1047bbaadec866737a6d
69881d27ba8bbe68969c28b761f19552f017d7e482823f246652e480e6839352
a0cf7482d18c354fca75064c6e17c132355cf7df8eb37fc28f614bc4c2ce129a
5ac4d854dc246fe11074e07a2f36f24ff3c2ab1d8947600acb71894863ad762c
6e653f08e8eb5c45489464debcb57e9379f9fcbf5846fb8dfe1cf85316b4bb4d
c875a76413ce88ca52d49bb43e8455fb5072469a655ed28d817e50962240c91d
ff6b2e2f8b7359e600b67147d057e2236320be3751527b9c54a8e31bb27625fa
c2f2642f49ab8c2dea6425e58f3fc45db9c450dc496cd8cbbf61df3ced414549
a580a889d33286563cc01dd4b6605fe321fd7d3d9e80ced40343a14851c4f788
cc327d31a89c017b5bbd54fc3ba4af75573bab135216bc066bee26dd58db7460
221b023d4aa972a8d9c56b78daec4df00f3bbd44d79e5e8d59c3ba0f112c7a95
fee6952c909c04090e307fa7a5a9f1177577cdceef720d2260c4a75e45d921f1
e8f57b8c43f6d015b5ea673e0c1582133cc0349c894c57c12ecd4c7521742e89
3d5a60ffddf2be6d9bd276343be4f31d24bd064fd422132df28b7c1039e0c20e
7824a433a0bbd702af097de3892fcea0f12b780845527a23aedbc8eb6eb51246
92c130b82efe29df3a9e79986e92bf399ae37f5a65b06e6a24576866844e14c3
f78d8de7f03069abc1d9b4f144ac399009f811b4e9ff9aace2e8b8b1df4405c9
d54cc709472337b01919e1effad5d5a886f48392f18c2222249c12bb9db8e815
c35bdb109547682b68eaa908add1b071fbbdfba7b6f20333e21463663b20ba63
ea945798d926b288aa6c5210479624e61427029c530c5973009e74d2f2f25bd0
04e0a9aaad71b124bf13b9aba9cc8d89fdf8d67a0dc8f16adc77a3de1457b2bc
3b0ca39112d95cbedb86ae6dffe1bb8242948cfde14c25c66792f14295317d69
efd3789dc338a3a8a56b4cc62860ec4f79987d0865a2307a418cb477332e8be0
635890a6e20cb8b3e904e080ee6fbec3a74af219a9527e2b9fb2c92e455b5391
ab25afebc22fce31ea44b9f0fe488456768953be9bffacc648e870d1135c2422
b7a457915495674e323dd0ef795d42b35d5a4f2815e4dee14c7e9b0355c481fa
2fca6989f5779df6bd37ed8938b7cacd0304267e9c92b5c2483bf4a040915fd4
ab52edf22ed909b64d672153211f1c87d48cb1db5589e0964cc9305066bf58c9
c61a235231cfca279c89305682108fb7e12bcd601b9ac1f18724d8131a3433dd
dfcff65342fe2a71c7567858dca6c6daa746819e28078fd34bbd335b64586080
29f49f4512b3d8e75795c14a46c4ee15cea7a73d4eb874fd383aa3e2a307922d
93323ee174b1285b23950d4d31ccfb8d94fd00c2cb6d6bbab7eb85c1ce4bebd2
79a1ee789de1e682265c9ccfb7dba8c48c73ad80d37f9e7ea87631b10263757b
e323c712e0a88de70df08d4c257c5711535bca7c139e059c2235481739db19a4
f2b804014ab0973a34d1e79f42166cf8f5acbb521ff22b3b6c6e2d0eb8b0669a
d35376aa413bec88d5225d7d8010d1e7dda8f507b371c78b451c9fdffd1a3817
2a83e90d95a8605dccfb3a387a47738ee8066d63c20160c31cbefc177d422b92
07a49f8d2a45821ca5713d8fc0fea508d91eb08176c283219e9d4352dbfbb923
d2d7a5bfa0ba879d88912c48e1cc98de79af2a7b958a4c1f4375a280fbf84406
0344f012f871918c4708719c6c9361eaeb653ab7d01106df65f252fcb6212488
fdb85a41493f093484bffaf8dda05a652087a791e48b233a71cac320bfeb15d4
4ae39f675b6cd92309b727c07089c61c2f143e072e316924847c6e26552d8eb5
da5213391a8e67ceb4edef5824b220d015c9421551c5eaf4901d3e17d403a634
47d387b45a296d011fefa17df34abcb9967e31e601f1c56020053cd65474dd13
984a684b365724501e78801e3950f2ca14aad7fdd6455d022d93aca49c4dc71d
60ff1d1e09e2ad5fb2ee84c1f4a585495be546dec6b51f15663810bd2162a537
6dde4badaa9cdd68177158ad538938c8760c374a3c6042d7a578859a2203621f
a1c9be98aa41d2f3e41b83e0740276e9260ec8259c27d14ddfaecd3c30e76879
1595e2e7b2e0c3771869873a1639a766cf9483c7b4e9c40840c0fea831a98165
3fcd5a52c5f3b5301c029fa9d3674db1a0b3003a6b85c0939fc8258369a9abc7
7676661fb232d62927107f25ccb98428950a569b070235b124434ae80408fa73
2c75eaef4b935be7c64065274eab709bf4f44ef337d2911721c1e9d67629e26d
1e008df8f1909b14d8497aa2936d95c7d50e8f78469b563b5e47e01ae362f476
cb81f74f2c11d9e8d032ded26625e33cfb8cab06c3f75655e2a109ea4e7055d3
83be085fdf4107b4e4e563f167e6c3858d6c35d80525529c1d68dc6816ff5655
6442bd22b5f1374cc5f4232ce4aec735cbf30e9d06e46f75bdefa9be2bf4b100
6fa90640274b20bafe4931c8ca88544f1225caebe434b62361e008094a9b7ba1
37f9fa49011400b71c70c113e0916f0fa7b378f6a71e2adfc538d2ba150e35b9
d759bca3dd66223bc1f7b55eb0584e01699a6465a7cf4f45a1e7e1c7dabedd94
27bec17f4ae800ff9b612f3d8e3c4ebb3569450acbc07ee597b3e8b3127bfde0
b44faaaf9d50b6b3fd16ebd6721efef1de993282951c006bfc5305bf06cb0b95
6ff106bfbdfc802553a552fe803f3a91651be615915b7f83e55259e17fc8e3af
d6261f12607422faaad0d188b5352055f5f27d4863f31633c99ba977fbeb0bea
1ea3f32865e97ae1774f0e44ebd4d1fa04eb17faf5eb07c288d66d3654a77221
801bbb84ece640fab77c8749eed63d0bfe94df098ea4353c84aede654a8d483f
d0b516a91612f3d99b78877e785472d4d1d798ed604d9b5d45eaa4cb64696c7c
9f76bfcaad46d8cd759435adad33eb1019ac9d14e75c9f43b1c59949ef3543bd
fe8c20762f1bba178ac0c2b399f9903d83187e2772429dd8f1ac10dc2df58091
cdc7c4cb70baf0b52bc5cc3dc0737b704ed1
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI8
%!PS-AdobeFont-1.1: CMTI8 1.0
%%CreationDate: 1991 Aug 18 21:07:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 50 /two put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 89 /Y put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-35 -250 1190 750}readonly def
/UniqueID 5000826 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd803271dc8bb1656323089e9e2bb50f2b95088
87d31dc36f6372968dbd0df8505aef5b22e57f2b9834fef2c2798f9d715aa323
3e09b183f8d92797bbd3a990980982018887612cdc5507a47581f07a1cf99a5c
587021d6b67b0524e780517e7a088a6388097ced01e5a59aa8779c6ad82af704
f6283c0a8b62d57cc5d24220e4d52a7c736389ff9d77df48c0de3d3db6482774
72a5e726bf4d83d29751b70eca9ee9d04a18fb7d011542a2b2737eff052a4eff
2800d8dbc1aeeb7273d9172927c2912b597c90faf4eb15f30201e026c5d06c94
122d69e4c81882d9f10b74f81d8a85a329a5946464c9765706a4e979e3b76913
83ea8ff66e4608e5c6fa0171e0c14bba3efb8fbcd0285e6ca408671bf068e1b9
f1c040e0417a92557f6b43a2b49c772c5d6e1e6fe0315378d71f1b762c987f29
6ada445624744ef29f727436345875bab3b78eff3a86027026983eae46ee5cb6
baefe7a95b00007094774550ad81f1b2c7e3c042a77548631e4baeacfb244b62
80922062c83c0f96d439448951a8f4e8bdf68d60245c60c8a8cf3e340644ff00
efbbcbd9abfe6018af21b3fe10b1381325d2599e22b2c5ad47bd6d5ecf1f55fc
7b382f2bf4889af9fb6beb58dc03087e9de3624e2e171c669acc08ff9a88f879
48749ad40d3c781c14e04ad93b147a89b1f29c82f756d9de7c26ded8977921aa
dc1ece18b2010fc175172c626433eabd9a8d3aaa209ebe02d7526858ab012ff3
264e153925baefe32978a494f3708718a384981d929086b146bb99bab1d6b99e
0b6fef5833e88137a805ab776f7f14b4cb1b91f60c618b3575902e57d7c4d1f4
a40d4af6b4c901b8ccf101cc0420275fa38bb536d71a2f8539f0b0a90f53f6ad
e2ac0661c06108ed695895ad31266e3c3fd066cad3d3506685c8e9ff161b7933
7ad225427905d54b298a422a1a233c531c751cd33fc75126faad128b60471ad7
6f427f038e80da650fa16d3442862cb00a6950655cd1009f8075726bc256ae9c
a6dc68824855f0a755225593d733f5a5c2536773f845361df639baa774543a0f
d3764b25aa9ff73114b4852d04428bcfedaef2ddd07e19d809a7cf95705ad465
964b6485179af078524500db159ca47dd85d40b325b3c4be5d60cadbb3b0f6fa
5e65445453aa2683b45eb2acd6eb91a8d2763d9a6509b089bb14da210ceb0bde
b54a0d523703eff5dcff49d25c76450117809639660a64d25f8648f2dc0a6207
7b46b89dc3a3448cb209bdbbd63fdc7d58176b1df692453403dee07c91958585
b24cb05a2ca1292af6e72271d342f95f0c72b517023992cc627c2dfa078f361e
c07d0597395e80eb0226ef0124c08b1a67e3ff7897cafc89f73e83159cca9693
f605fe0cb6186bf97039b80722ca174388785672e4a0d402ca2aed5dd80d3312
80ac66dd7f76cae221594b8b35c27c927595ec4de31fb232dafcadfa88ddc232
a2f4d2fb942bcf555ded284672f952608cc0d507c0fcfb8c3baafba2571d34b7
9f99444a6af8f0f09c233ea922bb161280f16f726f76cd4606d56243c509cb98
633314658a3d0495b561ba02303fe16e78735c3e1df31595f436bc1251067784
62f862330a9552bb925122677c74b4950d604ac1dcff400a6870002360529fdc
91eeddb4189762bd52d3242a080ff40db6a2cccebd96a0c55ec4b684d0137767
0d182a8b31395dfd7f1e928c518f3ba3ffbdffa942915ab7cb793a92021463c5
9375bb9b09fe6b458d064bafc58f39fb6f52d971dac00364a8e3ae19ecd3d06d
517d2dc0a10ca95539bdddb98d3734425430efb8b2e479f593b35719444eea9e
207aad43d05b92b419d6abed66e152a05f5f0348f96d379584d57088b8186fc1
3d4a40b694e3652f5ffa5a677a4b1753db9d71d47bededacb1ff4ec1d9cea906
200344559358605286fc1d2bb5b000d3fab218453bc99ed44173c66ac384672a
bd45ef28fe581230e70eca0ffaf239abcb5ab1b1025d1dcce22277dd3d88a87a
c94473df20b46cb19ffa0d1623c4fbb0cce8d37e525889aaafc216599c76ebda
bed982fde73b31dee9853f5c8d028778b2632035412be86d275893d087268626
fba09bbb2ee21c37d9eacd35aedfef8546a51384ecf8fd95e27db50afcbebf72
db702d7887b30e871ef7eea7640bc790ae71b19d96b55456b0aa7a0518eeb22d
58af17602be686918ed15cc1ca20a3663d62f71871ce7e70c53163048de99a33
961e7cfcae1da59e197b175897921cfe0333f993a83d0a6b30c86473aa0eb9a0
b0154155947893b23ff6ec3be4d2c7ef8e82594e5894870757aded56adf6453c
5e50c16ee2288233ea3341f837968c9d3432f2875f76637543061d6f63535763
7d9526bbb2cf645bdc1cd5291b360c19454f599dd54ce55017a413bba5c1dfb5
2279190d141c7c30dcfc8e36399590bc0662e229a43b50cc1546e1f291020565
1896cc5d690d9024bd125f37e0905588b3ad3ee90cedb585a8dbb3cfbc5261b2
51bb07ea85bcf09625f8269ffb318133fcaeb045de61a8acb28ac92ebced4208
398726180947476c49db5f39b53563df78e2eb05b6c2b0fae5521651b56f9896
599fe95b0ff57bd4afac16463e555672dbec9f22656517ef4ad89d14ce79bee2
8e86fc5db5343668eec8bfee8f054f6130f4b881ca0ce502951bd13865c89670
71320a52ae51ae93f320ff5912d8cca5cd64e5d5dd80118e6f1c923bc5a23156
6bbd6236bc4c17f936630234545a4cbabc4b079bb7ec2d4f05d04b90d124bb4e
d4d7fd49acbd04e69243bb326be47a208481d05674f4af0519f8150bd2f04a00
d51ba087083a5ee1d3caab616f4fa6fd6b4ef99a61ace391d6d3c694d869fc89
0becb4e90b5245cf25e4f2a66d943d7ea3c45f5fddaa374c727d45216a307323
0fd70bd3e398a29628fa3204e1d9697f6df4dc57ae03a55484b826c1faf2572b
c0ed5a190ea72ee264a4de32e6aac2e7c5949dfaa5a4d6742564c14cb29736e8
60aa056bd528914fe045b6d12f876098997fa4b86954c11071b7bf96d3cfd911
12759edd2e0afe176d4b40c2785f824b9682d269cf4c08b751d1a8d2d54f43b6
604c96e423875243b0db2b6f680733d041f358af99bc99e8c7b4aafcc4533240
3493e35729130786963e51d9f61d702a10197a8ee27d9e751de975f39dd8c192
74d06c658a20a65b3d187207c65cf6d289927eebf6374b62bcd6e74709c7507c
0c52fd4cb073ef74f569f9338d16baf0b9f5a2400f4c5cf9ade1dd6db1cc1933
2964c8d105be74ceac9074cfd69fc076fe5960582a6819a2e841631c07103cb2
644c178b1b7a1aa985ae773b8bcf83065075c9dccc7c9e1f6b5712213b1d6d6b
70afb16bcb64f121e1edc78f8f743c7769fa6bc37c6e9aec4cfd08072111cfa3
f2156fa6cf8d34fa7e343dfec8df6d5b89ba9197e3be5122b60bb900b65c40ff
09fbe96f27ecc75adfd99cc3048e254d95ba2334e40cbb8b1ea6472bfadc7610
8b7b871145168a88e2eb7b9f4a0477fd5bf6f5828c687756bb6ac527c505dbf7
21ba671ef5958236d702fc167a307a46f2c6f64fea8e2cfb4b547242f13b6734
0451ffd35378a521d6df938fb147897b4059552c735ee05159799d9753ffde76
20450f2c1e1b3e74f2da7e95158a5124b5deab92f9b9ba4b53fb74a49076375c
76a7181e5f25f6cc9bbfa7f3cd6336726fc7dc1a05f0395fec13b2bea501e716
39b4361add8e91bec54488fc18c0f4659ffd18e53ad88f837d017ce3ae865412
e9c8aaf60ad4635286f0126addbd5531c5045a8614e3ed5bcff8cc3d771b52d4
9eab7e1dce39e0615dc6460951059392a20869297cff465ad8771385d19e17e4
42058d031d51d900679e8ce255b619c4c0d52b3412537bedf6d848c170c793d5
39307634ee58f3d2ee9b20bac77e3d7acdbe29b1d38bdbe61c3b5dd4261ab8d3
4a6cd5e6eeeedb8cb0ecdea5079e0c1227e8e078350ef6586f1152602c0dfaec
0da9fe91d8fe31c040eaecf75ca3fef1bb5bc79d66dc4bc81f61145d727645bb
8287af5961965bae0504ac7dd756086192442acce2796e19a978b454e3326247
72dfed31f54bc45501784827d4ffd36d607c9c9ebe80de4b2b35569b0a5029c6
750ab6de3adbee306e3288f7554f349899a92765a2d0ef5f9654b71b422f1ce6
cda3d88be9132b9fe199b5e0fd8ca50d0f3fe73184af79aee13549ab16b4d20b
09c715f8d1b8c2fc098e7a05eb70f465f34e0f8651695cdad0167f6a62e1f920
136faeca94b3b69a671909ecd7cbff4573308822d92ac8e03543f47fb5e5062c
060378d08f88dd88b35e7b5f6cb59fbca0fc9b0acec47c98a1f1edd94ca89d69
7c1753f0a035a4911d10fcdc1e2660d0c27cbb9b98c5e46ee865fc4c83e86911
1f2d60204266580d2dbeac5407fa951832551a8690a82743d2e45106095bcb1a
5a0d0bd5e24273bb55e98968753dcc92e14f53e6199f82b3da905bf76c3027c7
273cf4b9d314d048d284ef7a32648bc7463fe4d85a8cd30f8749ed1732bf5c6b
a9eed041e37b03a2944325682506f85fbebe3372597c058c6a5f45b864998f34
7f24da1157f3d6eaffda4b3704762d97c25965d081125a581eb5ca8d734f86c9
ec000bafe3a5520c80bf76d99e28c256f8dd795ed4d0d1fc750706c70c8c42cf
c9840b9eaa6e2c5c79f0bfbba312c9e2ac993b381de65daef34a3c5a031406f3
c872d033a964f1dd6eaac5d5bb6ee4cb9837779dfa281daf073794a9638cb3d8
ca78183f99c853a45131787d86b50cdc0c71e67f5319db0d98721aebfd4b9734
4957e1ef611cf1bca2b78df3f5f1ad7f6de6b68525543fb86dda7ddb7dd6ca94
daba4d01483288258fbaec95b930c88dd5a2eb6ba941005924bc90521c99e9bb
c78e9d0c32cd7d59b10f30015d31e89829466a09efed02550911427d21db8794
0e1ffcf107971bffe9a102d31e11169822643a3ab15fef5314c496214e89afc2
d17b7b44656090d29235859ff3b87be906d9212d00914a3d15a7f33500071c13
c2e627a80dec3dfd503048bedac4854723a88f7e7ed69c13a3e7d5cb8745d1f9
4f779fc184b71a566ea7a4eee49a1108a2902f38cf786a593939df1ab1f58b86
d512631099037c9689be50c3a74c0496c8be578311608f6f9944252580f5948f
110b6adef1d43aedf022389154668c9c9b764607dec332c31b7d5a99dbd1e4fb
a08f0a8da44011216f82ef8b2e55266592a76f02e0cb88d2b5365dd863e42fd6
fce9599a8c10d568c2af5d0dfbd32da9cf5c8fe780fb67c86c50781dd4293296
14b6c5867be85540325c58b2d5d9f576b9b363724c9ebbe90cab728f7072add8
b306bbdef81972f3b369658f5b3e8a87f83c02989266582969deb2ccf2096601
22979ab6155ac77053db7413a5f383db8ce5f426262e926c4c337e1a358d73f8
7c8ab85dc46d95d817bbcdfcbaaa31c9489cfdfee69056491e3d4ad58063d9ca
eb66a590e8d3546b2c43dbdad37b4bc2c47d517d1294ca4a5b6e909a0db5c089
9fe88fc7f2eeb739b8125b41c5106dc31b8a5702a4390c7a22b520db3de06738
ac05fb032505021f0b0ad374cbae7df858ca4b285b98921890378021997230b6
bbe72c24fe59438719afb6995b81f40095512e6e794af7553e6bb1f5f3357e52
e671ed1c58d0d6ab9b13b2cdda4d30a91692130cfa8752f4322cd95837725bb0
f0bf08d42afe437e28e8a9472024186383de62ffce013dfc251d173cceb4cf44
516159af56389f24461911c1bdfc84f80a1729312fe677b794a1463edc4897e7
2efe6a8e049bd8a89760ee39605de61565bcad02f9e7d927553d8afa912c5817
a588445a15195af0f09b4bb34cb87267fd40b3a18ca4d8aa002678fbe7183b76
f747d45958e16f20fd4e6f9233ef5170ca8a6933f10a9ab0448be2360154f208
c0b4eaab0f9a7e4dd4b8520618eb960b03ec46e3f04df2f8b926d67ddbd56b3b
28bd42f7ff1ce55baa4a35396852128e3b0b442f6287839b70c2290a785e5023
9fa359415054fe51be6a5e9c62d92716a03555676df49e25b01dc4c873ef3b84
9f47ff54a62c2aa8655220c6912f40b95d21d891ba41b8822ae90843a6e32582
8e445e09132f38181849a0d8113a935bc50a16ce487b5514ff6492ec41b2c602
b5fab8395a3ab071c33fa718c765ed686e4d350d7e76cae84be557dda109e3bb
6f3b2770d72677b4b92c68326643fb435a0568840ae1e95551a0c094902410fb
b3d9b734cb85754363e9fd4d9bbf16bf35b480b29cc3cdd5394fb9e1f683b640
c0bdab684fbe23417b7658578f4a095d910f231231e611a6ec2e644e6a1a4c8e
77256e0fc0f244ac93f3574774e7524fc38a688e09c6d77f02ad985349a9b619
5d9a787f4251d76c59a67436252e340fd7a35b81dfd77786fe99b3aafcb04b93
ecfbe5051114443564df911a75221f4ece4d764744c7a15b2daff642b5dba0e9
1edbe7b4f2815f3f02c7328ea17a04ccf922efcd127476c3e74cf793cf4d2eb2
6399c06bbd668fc26fdcf4f3efcfffa4bfceba1d7bd7ce5f518276017fc7eee9
74d84bbd0b6ac67d74b8023686664dfe333479fa79a75dc4064f896564174cad
84aaf34ca48673662aeb9ec476a44ae96622fb7df4dc6e09fc39579d3baf5dba
b426936514b19f99ba8f3eae94c9100664697412674ace771e4ec88711309171
062c7a3f0f84895b0fe4656e359f1bfe9c3381c7989b050a370e73bb064125ad
8f2ad98a5fd3f163c98039b01b4cfbdc839182be660631bf202197aecdca5f5f
e12199f5d193cb1014c8bc8968b10d1c8477189c1ca9af861e359a890f3b31c7
5248c6ce1343ca1c83174b79397be02257b3c4a16f6f26f5bebefa47d6e309a0
4e2221ccbdcf9152eacbb1e58594bb067316eef7320aa60d575c46a26ef762e8
02f85a4ab0e4980673f8db81f51ad77c63390ad862f7e0f7577fcc215c22ac80
ee808045b679192e9e32576326aaba346529dd2464d51226f7fa8210deafa2e1
75b2a1cea89e1cb3f6fa918478b42f00474d8e0c904ec650aac639b0d59ca1a1
c1d524ab7a23ae46344406b38e553ac3090a75899d32f20c79d307ca19afbd96
daad2a3e5b158179b0a8a92d602e7595383961854a3a84f5421ba441abd7d0e6
9fa0b10d0f17c50b96f350d62dc2aa70531f59ee8939a3f454e810e572ec5d8b
81570e00bd159b9ac70dc105c276a70f53ef5b28eefc45a44506f99215b149b1
a27bca2f7e586dcf85fa495eec35dcdcd8e3848ecfae34ab9017fdd16baa712e
051f302f80de5d99980f004d64735703df21659ba4d3bd72476bb5b1ecabeb0f
4b4b6381d0919c6a230256344b7114e1b6206feedeee75412d16c03fe0c78212
4166f1de76d6ba48c5999a275afa7f724764aae321a52c47b1088e5c6ef80284
37982ed147aba4251249ce077727e1e10580bc6181e8360009abb4b3d1f135bd
e2f4e5142e75be890acff43f91e54941559d38b91cb7e74ab0f6d8195bbd8efa
18e5804dd9dc98e42256a96bb650ef98611c4aef511eae87136b4703fd08bf8d
0dfca99166fd34ac60612e42c27633838e342415395ef7cfd8abe2e99afd6bb1
7be1478e57178d12fd48f76a6c176fa1e59f0f2fdbde902be1bb3fdbfc8f79c8
d00a6b91efdf6cbb3130edb1d4415a9f17f577ed5feeeb02226b27bc41b49621
a47d598e71021313fa10ba199c65811e675ec259dfad8c9a8833fb46df068bd9
fcce5193b27e4a264044895d59d47deb02e8c4c185336a98539aaf6c165a398f
7c472bfaf59266644a09f475c26399465a8af0602d18af60aeb6050c8e3bed10
33e5ddc188ac69b5a79330b287c7808f9457d5e5e9573a675b750d1feb870a0a
a57a6d9772f287d2e9fd7e7c4b89e5e0f5abda6d6d308381f5bef9a587312ba5
81abb1be6c592e5723e60f8e1b4006fef3763da88fe33b712ec3780e43d5a315
7ca3eedfa8078fc792ecd40de2a2c31fcf3c9ae7a1a02d4f3ff96a8e209a4429
4e0bbd72191fcfad483d08b415a7a29a8d5da7c3bd562c257a677ab7103ba264
d3183cee4054df18a0972b89c437366ec4d3ca6e4123a83247216de04b2671b9
6a8293feffa595ff5ba643d4dafaa5ba5291f09eed1ca89659609eed1ba3289b
26051901855c37c744ddd5cf2f71c08779c4e0489c8b239dea0aa9d323062bee
7b5608f50c8c1fabd4f4ea0a1f72fc6956952790627fa1d4fb5099864cc8e979
334f2972738684f55bf23272775ce77e0ce922baf796555f5d1566308749c4ac
ce612818e1e828ac881712eff7b19958ac8f7ef62bf8f1110c135ba3675a14a4
2da029157f7e91b354e0dc21d4f2947b141d018a660c9a6a22e61d1183306dcd
f7297f9a9d8ca36645879a9096efa93e0203bfb2acfd45052ad5c5d5c89d598c
d3781d22eb7d9901cf9c8654bd8807991a64df40365778d924407bed81139db6
9aa757f22589694e69c951ef31e77a1f1aeccc77193a306fca662d4494351f7c
0e6f68c97f9fb0a06725f79e5bf422e349f27603ba3cb5e0b8d6e5fbe4b244c2
52e57b34b508e1e6c300e50515a466bdfd96453a5c75b06190939a1ad339aff5
e3d303c8ca86d812118a0d615bb9c55a615496fd237f13b94ac603ea6d9b3162
289fe04886d1e8e50f365248558229b3a9dacb68d4cc0614447f8891fb87f866
f1014a18d41b3ff015c31c57b6ced1f7ccec3feba06cb7f2cefc73bb72b218fd
6b7dc66761addf66e5f0dde65bd4851f854bfbb500e40d4d41f400705b01f031
ceace2ac0f4db5d253d602153c3410248756eb306453b754f7f5344fc9a260a2
17539c748681ad7c8e9d233a50a12eb2343c061072c8a379a56e1163d70c906d
c36780d30a4e1065e2ccb9ca81824897f090c321f08dca484a68e4aa0c8caefb
49ebf5fe975d0d8e1168683ebef18093133e160852d8245afbccfc00a27dd559
4fb6ef8da46315a7a4320b49366b38e913544e7c44288c7ca5a8d34b1efe46e9
c841b14e308f77a5aa15aa36e8c45531b105963701dc3a903cd96ad8f4f7c6eb
2f1595773ea8ea2e5fbcea51c08d18d3eb034fadf5122aa96aa71ef2ae5be98d
d635b4ef41f3e4ac95c498fea8a530dd9d2b47ca90fc6d948040b80faefbbbf5
c46306ea3b88397c5700ab3ccb8fd69369f1c15d537057285aefbb4314a5d93c
057f6be6ee7d97749283839001d5ade532bd56358e8a3fd0ef099e3ee7f8fe81
01209100798bf8b06eb28d686913cc9da2f1f76224715c866f0647cd3dd9e624
8f2fd379b50c3c2a75a3adf996b9d94c31aa1e9d5a4354d34672bc6840eb4e88
c59987389c4a7532778e26ed2b29cb70137c8b2c5e5ec8a58e5c9cbec7b9916f
c40e66f2ce2bc1c337e63d0a0d8e30fb86935801527a300ee011c4e074ee5e8c
1a65bfd27c7261571995d890808e7e5a6f264675b142a2669e4eac87b155e0d0
eb4667fbac16733aa2812defb26b710265597d81cf016b6689aa56086162e632
24db2eb1d55bca0599cca95094ede03b5b40910173ebb4e4febb1df75899c870
63bc0b23d771f930b3d51cfdf642c49e752686adc4abb87e6db473e9caa77f87
6c86d8b3fb46a0ad80d719a92ab85f5ca8823609a72fe1346d2ebd3acf736bc9
9ef7ec2b3e070091de5aff78e09e90775fdc315ed2bdf1759ba949591f8959b3
e22421e6dbfb6aa62505a0aefbfcb2c41cc62f1409ef81983205373aade849d3
9c0ee3e60fdfa4d73e092b780e62a43c450b65d3a4bd75c338a936195114b035
9a4f6b68506cd0305ba34d784ffab2e71d67803a4f99f6015baa5479be1b40b7
4e0cabccbb7e21812d249b92c3cfbf1904091fb5f3aac5c39e053a6452c5daa2
15b16a6b38e60649476c08aa0830e329c8155bad4baf60ce0de49a7984655244
636ea298979817d0a2e54e7b53a83057d551d56767768d4fb8977da9cc722df8
c842d522611ac5e11e81be81f3b550c686ee118ae1adab35473de3142a9c3089
012d6c3fce8f6f99e8964bc1ba0d5fbfb0b8173f79438f089fa140f66340172f
e2e033a621d01f09f74508cdb7094a320209f015b682c815c2475204eb79fd21
6e4da1980cc5bd1e606f41d6f8d4e4d4fba6e6dae624e1cfd9a908a6cc50aaac
50f33cdc3fca4242d214e02dfc8155ffd699b819d930ea8ebe1d123cf316eee1
da26796328829de56d5c77da64245f5376f94b6b6fe343c05c313e90a989affa
1ece60c2682c5d4be45134dc3db6b10dd8cca81cd3cb0fbb8a0900e0c93afce5
5c77fe2c6029fd1a7e14947187068f977965a99976427599ac412fe664c22ecd
8534b3d0c8b269f69d100d1443bbba3c8ff07e0175d39e17a88f332c969226a0
aa6ac79c961d6d9506b0848497d124a740cd253b4ec24737b1741097dd40410b
3f60256971ef26494ca776d66dd73e5176d759a8dea6a92a2701bf4726977310
f75bdf9d853d30cb70de8418b16077cc336e11023fb3df887ab39244763fc4d2
83e850509fb6afe617ece7a2bb99e8982b7c9983f870fb566d92e29ec936422a
7bb111cf90161116d369db054060793ff8ad958ddd734a8b9cb6a0b4ca68eda9
905c5e84962cc676ddc7f3c507f74386a9388863dcf9815c461c96c847927e52
f96239f9df4a86a95bb391b71fd02b3c870e1f9cb93555228989072eb1f9425d
20fe4dbbd1d697c0769a8490d4541726684f9e599e3cc6836c2e8c571c36e1ed
8c61150e9780e9669d1c8eb1854e25619eb8b4d54f619c553213a7856d6cbc1a
465c2caa11b525960bd0d9e1362a03790490bdd4db63622e157585ac33ecb0a5
83dcf0d72736d4cfa204225ab5b7aec0180d8a543a46946739cbe8b7dd1accb0
974616e7c966bae8d733f3f63b89eeb53bda80a2cd4664a53c1fc273cb472ef2
2fc385572ad94dcf96e0dc8ae6877ce948683122cd8700bafbd711b3e2fb6f52
2805fbdb56c5212c697db1f06f18627c2edc16a6bf1d9d5bcd630d5b10bccd5c
932dfbad9750ca58aef65bc5522fc9335a6d1274b0e1df2006d83a70a8ca54a3
e14c14d1a766acbd39b48c8cd15f6544011f831177396d4cba35ca9a41c4b51f
d87c9e50465257820a12084b36025950f76ccdf355ae218fb12c433abbafc0a7
7a20ce442c1c25728385701232f089434e2fd3aa1b6817f5081bb00be24b8919
8331ccef7098e4e160e60c24ea54d23cc4c365ef14f294421d33894beb2cd5f7
ad3c77948cbb963062ca922cba99ad03b1b0f6e0fe077ff1614c283120edaad9
782c203cffbf094a2a307cb478764e7fe33dea9373127c569fc4b1c60805c5bc
f90c1b396673df72f343624be281ea0de60670b1e50fc910500f81b8ac222ca9
ad76169c279fe6f9fe5ec2a4854645b65ab9f402fb79a558fcd5d519867e1822
9d61595e1e74163f9f6ae86e15adb95440488de7a99c6424eba59c175470ef33
fd3194c2eca8507d12f94d6627017b5f5aa67741c1360fa9f12dccdc6463f454
ae80ca6b27b4621dbeaafb830e776e6dd467b2f91ea74f98544dbda7a7783de2
807a1cb513f85dd68e4ec8195a31ea5b3f46d41a40696be6fc3b5296079bbbd4
b39e0f8fd4a11f97efb5f33c6f832ee8b99f521a008a8b3044544badac5c3055
fa29315f0bede6bcb2a7b55be1b021bfe7d52b3fc45fd4cff417fdfe2b92bbcb
553bfa5dae0995555ab8f4abcde518fea6f02b731ca2eff608be3ce3176f6edf
6b661b5d6ea265639dd2e0c5edbdf0d7f17fbc02d4e86cf69cd9f468a3eadb4e
4326e9b82502dc0b5e8665eaa023aa6f9a3e3f8ca551765bcc39c067f3816cee
09bd2a3cca036d13817a400437c23af8bb9543cb30e752827dc748c64d800fab
d8abc86f9c6a1e018d946f86a3186e55b97a0ca86293b487b7bf9fe12af9f6dc
f676bde303005175daa7f40cbad81c0a5253bda1c4f9b0e54c64bff795f02514
57afe4dbf51da179505031b26d138633159a13b14232c5aee5f18146625d9b0c
36a03d5e27076581ae5fd1290bad2a7803b920653c02847fddaacfb8c3dfe3cd
f5eebcf0f9f021c99389f8d3a531b5b15942a0647ef46b236483a30dc99c9f0f
4d18af3cffbe04142a99b883a34a551dd4ba5f5b5039d10c0448965616104cd3
e8b092cb3e6549dbe7344c0f52ce5c504f890b72065ea4894082751cd30f5578
d3e5103bf699a37a6c78c7c410f3073ef915e962fee382104175bf24ff191375
851db2968348e8254ef66fc080a656e6d9ae1cf7583d1076879e0a2530b831ff
20e41d7a00a009a9560313ab55c18ea669b3d5a2568bd537002c28aa83bcfa7f
f34a9b62a13fc6bad1c6ad385a68a30249835f51c46d72cdbaeaea353cba219e
2ad47419563fcdec777128fe98157b484fc02fb7d7bc8955feb50fdec46e1b76
e611e8f2929c5b7fbfa4f30b877d89b6f198ce68deffa1e98338e84aecc81c23
9e068e6ff895e3e699588b2558136ddd50b013183cb111a7fd6f09d580b7be3e
b4cfb3385b7926a0ed12eeaa1bcef9fb25a945ee6306be77e977dbccee85b0e2
48643b8b312d90d01e151db58e3101a86d8b0b523c0d234087316038a438e986
48b8fa7bd4bcec94950aded1c155d8a1f3b746a162a2c777562e41b2f3afde16
78bd2c8caacbdef3d325a52f84a73689800c5dbec2c543d239f8461c9e978a3a
c771e7bc24f1bfb4bef83d9086a59734b59bca8dcccbf31e66dc4ce1b85c7a17
33e613aa23ff0d992641a9821b2076654fbb5491164125a50a63a3b69a545771
533f019040f4bb41f7b3aeffa1b9c33dd3a45a45d88c8ecf7ae67c9806c86e65
5bb3276d73b445049f8d765709ed188959ab186b1b417cea849d29ec5f7f1fc5
dca109ec0278cf754384db85c14c49831252fd2474f56ec0e28149a07cb1d383
f3a60aec80509b0372bb67e40d1b92cd57d83d540ad1c33a077b1a253a671526
a60bd7865ff94ecda4b82e94fa5fbd87ece07c47c9849d1094f25334022af3b4
21f5b2d961c599dd6c020d48fbde73cf715f361d3c483d9f6c89438c5ba70218
077b5c3867a83cff1cd8dc760f07d1c49a6ef1b2ca7527fa1227053d59b2f243
c171d6e0492811619ad828b90e19f779bb3b6279eff9425920842cff36059b3b
3885cd1a0ea8a13a9ba235c951e1650c328f410e1f7d7f644b5764f2ba48d55b
fd87e2eecb1165fc07cb5d9055036a241be5f164553937d16018497e53a8b5fa
172d874e06c8473b090313117d0481cc08b22a628a8e95de7ee4c17b759f852d
beb3167d687090ea844c39447d69bf1cd776d26001a3708d5ada1391f1d4ba9c
e63e85104810f15ca5005ebfb885b04be6b48f855ae5dac5bdd36a801e4fcc20
24b94a1af1bbba6862cb384becb09933a3be5a41eae97d8baff76f66b56bb461
22e4bced4bd60e9d26a6826a63d8ef0fadaf04096aa9e622e11cbac0be059387
489409211eb494a33f76e87684c0e23c47c31e4bd663637cbe2cb0899996ceff
bf771a4a78b8d9081feb151137de4ac154d4a02d6fcea9b0208da9643e2e48d4
d50dba164750bc7c0b415c8760fda8a9e720314681fdcacfddafed4031b19176
2b6867cd9f18d99e8522af86448f6eed4a926c57d74c86af235c6f6970277ac8
1c9449028f795edcfcc0209f625af1fba31d6d32039806c302f8e13eea5734c9
eb424820e1c2cf1283898d8a04880548791ceacdf5307b8d68d77606ce828265
c74c69eaaba44b0a6c4c62ce44e211aa789e9148379f1b3652f4d04d8434c3c7
13be1aa1bebfc54b98142f13be3020cf1872a2350a4da72154e0efaabb1758a0
c3ab9a24b5f8c8cd7a16e9a9a4a721bad2855c03a1a637c2c249c28aac9867ed
2de38da0eb698fab37889ed801e7c62e9e99e2c241ca28bf1f54968a78f1c473
e60fcdd7a4333dbb45653deb752c60ed501a9ef9dd9b24613a01ea65703f0b70
ed5fd7aa1b5da633e8370ab18288e64270b78068a65806678f39ba7a780dd6cc
dcd5fb4e9474a54614a10d3ff241d68f5cabf1cd8c146730e1045ff166ee7838
0b4ba7b8ad9569447700d203c8269c1f79c041ad38d6fcb75dc3b8fffefd7562
66ba5fd2f742945c62afda5c8b5e66522b17c7290c43a8e581d25008079d9d22
ea93279948e192354a323191d7600f8148785b38409783e1fc527448b519bee6
82796f708c383a5c6200b8a48507ad2c9e1161675d496341088b2d427cd2a400
0db16d8baa941260c245b57d65817a11e7c2e5d4d761b85b12160a775fa9bc9b
e1bcfc6a5f79cd53b1b2f951ab3fcdf08a2c0941593226aaaedfb2f46b442ae6
1c0bd4fe9be244a8dfd0c2e454ebdb51b10919002b75b38dfff5f2dd4ed3b713
4e0c9f6d93eeb65baae8ff591deee7992ffae5566205791e2c6664c1239f9c43
8be46f06f4a6c14c2e11fc4284cfc7306514646895693d3342fd3389525f8d30
bd09a636f664d417bf4690796fccac21ecc8ef45318e0064ccd3d0eacab3871e
bb55f6ba164c548c2579548641a24c638dd4b3d7abc46a70a24f28500f3fe72c
8f69ecd1f7012d0ba0feb5d2c060c442cbfb607e3350de432a72890ec2e32c8b
5e5156d1bfb091dece665ecc3d27f878df88749c1aa24aebc7bb902125b2ca2e
fe2eb7cf22f6a31b146490fa8519242e30b72515383b1f2e7b171266c55df442
a9a5dd4db73c8ade8dbb6435c604e9f1c25dee593da959111ebd7a8fc63fa177
0804952f0118b13a045ff70d82c20d28446457219adf92a3cb5844439bec803e
f46b5f84f94ac0fd4839d2485cb25fd7f885328f58d36c88407cc22a7aaf0dd2
b92106ec01f45cc14d8233eadc7740d666f4aca3990df33608bffd8fb89b1ffa
c97290b7aa12272524db832e100b194430aaa1cfa65fc95c06236684fb505406
281195fc30575c356e5df96a7e87c81bc2f4fb4fe6a56fcd2ca6b8e1c6e322cd
6c61d6435f8668cff630c747ac71e58c0f23ec9757658a374eb7968281e8b0a2
450fab681b0a764445a3d4048ecfa5109f7ba37a9e38d2fd460d04efd24d3ef1
025e955684d02482199a32dc5b2c0244fe7c9266770652a2a83ab5dacf54ec38
e87b93e1bf9a5ee6187babb916a4e48dea0b7744edca5684a883b147e94891d4
7416725ccf563595ae6da81040002894f3cd8a9ad7feec41b19273e9d45c30b9
b77252fe052068483dd7f7b1a5e16b9cba098c609107a342c245b5a41718b79d
6e75925b15ab6a57b6aa7f0b397fb45f325b54bda5584807952d44952e916b63
fe45b3cf283de6e440a478b237ec69737673c72763ee7bb63bb9b652f0742265
b1fdcc8f98a117802b97d5e3bd4d9a8a686fcf6cc9307434b22a333775bccb27
05736301f41347c366bcdb5dc53393fdf117f373dba8e6bcdf6fd04af7a3cdbc
f68c99da39e0d8ff9b37de8adad9df5d7a47c5ae59d88a8bd9c61321b5f298c7
7d66d385960ec2b8f821ee73432ed978c73c0f990770bcbcc6098afbf70d5f0a
0fec9947a917dcc654860e66524d5b6ab743069bf53789f4dcd380ac2d5d8ac0
fbc6d1595033936f40a6e745c53a958f78aac0a1b9ab33f4572c343f9acd8a6e
f5aaf957e165b5d709f81934ed1befe50a0d0bb551f25bd811f216aacb088d93
c015226a504bbb392972eed641c90214740eefef1a0a0ea370229ff8e8aa3371
1cdcf2d9f8bec26ce90fa33751594f6a133de97fad513156120019e7f63b17d5
f05151bdebdbfd646c3fe065f10135eb736f91536d9ec9be9b7f6d5fc9c882c8
59e37e634fe1b7b41e83d90ce1f218a4ff06cae6661513fb4a621610614e111e
1f52530f73edcb95494d570a006f83c28a014790059e618f96544d47eec3fddd
466eef17f19f08782e90666013e6e443023ea2411dc2be464b3582524677133e
f97f58cfd5454339c6c0a61f04912c6bfb6e824616ef7e8e57c0d061b431edaf
21467f856774ef08375a380a78299d37872eaa30c3cc71e8434cfcfa3de79c1f
5bdce7c51cfb32ac3cd56a2e21994e6ecd94d868ccc49a1600df13bd46690111
03e5d6cfaff298a2c8fc568c1fcef8678236cbba317898765b2e1a806fdfaaba
f52fe70cf9f0621173d10dfb3a2aa939d5945fcbce5d19727d052ad3b63f69a7
c0b081c2b18d3995b2e31783babab89994a0777044ae4c70fd3ca030f2f81d10
3ff94b8a5e55c2da3dcfa8677c61acbdc2aca6203cd280d24cb9ded381285d66
ddb78dfb01bb9a2817f198c5be7650ff2cddfc9ad25bb740fa86578bce040eca
f05acbaa69054811415da3420c7c972091ed2ef7b2c814ec99381cf260f1ca7e
3ef858ce0d489bfe2269102d239164fbdf7d3268b75d98bbc14e57ba09657f7f
2370310bbaf13fffc9568ae82c27369949750c1defd3da86b815b65a8c3a9b95
a263258215ee8db507fe19ada48cfe869f37e726f1285467247a623e5a65b6e1
184934b0d644d5fe87d25e907f62970a758d8bec84ef0eba7324dd7f4147495c
37351ac2ce2e19229338802bce47d978fbe44ceb4f901f2fecbf8503529ee3be
59234f54d7b6a5851ae53093ee274d727b7c02f8709dd40b88867a717b0de439
2e5bb135b9e879ba48b2d0c47bb66e05261105c97e5751a440e4e49773205b06
3495daec4b3e373034a9acb7a0877368190be4387b2ae9b9159c6055ae78d710
d360789647095da1f75aca2ccd2a2c2074ddc2d27357d8259c06028a4c1a03eb
9c17c91c22c6c4163d2d0e97a768d0183981520576783fe3972edcc94703fb75
9b45cabb67e3b88fbd65d2237da31637ba9d186bfd6058670032baff80a9492e
3ec287076e9cd2111857659212b104566ef9787073cdb21dc79202b61c971a6f
7b7544d7a973de3cc85cd86d28d4385769af112570007043c57b7c8a1f528deb
e0d90f14a7cbd0d74f3aa8c76b91aed7e70ca79cfd84829a8f4f1cfbfb5d8148
ded6d5da5f2bbf818e5d34c18b952c90e0225d350b77d70b4729e54e07708965
a02ab9ce100012786771953e44683a0b52270ff485d2ea62728e24007dc636f8
a1a9505c095016cf1b1a97595aafb288ad25e78e03cdcf56d3e51db432e03e2c
bf7964189a0f3f258f51eb63e8012d53754f7ce8f1705be02ff648820d6c97a0
98427115f2dd82abb675c82cc6762ca767793bf52f1027953fd99dc37f733c2c
31675aa55b1c29a27a0e9347a5bc5f8ac67b5bccdca1926df7c3164c2146b2fa
eb119439a8653631fbc6b21a0fde8e5a03b4c54be61945db16b0bfee6ade4eab
63edeca28136ef0611a84e4b4d25b356d7bf98e9bdc4343efb502015f2813fb7
1ab68fdff2c97bfb097590eefbd0d8eeaba560aea8206f58c9802c873711862e
c19203204fa1b0ba5f98d3d58c9618ecaea61e6c6d4611bbcf7232a907bd804b
86dd003b8b0a3f66a9601e108fbe4e1e4baf87030bc27493e8cfc5dc9798a886
457a4970258c768f75419891452e0d08fb5058fa6eee84491b
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR8
%!PS-AdobeFont-1.1: CMR8 1.0
%%CreationDate: 1991 Aug 20 16:39:40
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 14 /ffi put
dup 19 /acute put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 93 /bracketright put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
readonly def
/FontBBox{-36 -250 1070 750}readonly def
/UniqueID 5000791 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204b094541f345ec367ae85ca9bd
24568a01d3b9f8095f7420e6c423c414b3dcce6da48dd1c89a56d078e0d0e2f2
62a13640a06d17e44ee3866c3471fb58fedf5a3b77294517651c16bdd7267d39
a54e7171752dbde63ac19bb4b3021ce95eb5fe67390b09ae4d9ed4d704a67443
f55dce17acd996c1f5e023c9e5a18cbeecc3097f23763acb86cdd7cd13381ae7
4e48495ec7fa520539d87f8a8dcb3c826275469b6800876a457e7d1e5be867c7
b1ccad69742a8c9b0ad943482bf2a4ad0aed40baeb69a0233bad36b4ca2d2da7
322956c70375d152653500b2f22d2ab6990cadde2da14b4917f7515e64bc3d96
bf775258fc7dae4e42a4c9b6da8eddec4a800c8aadc8d75e48cae52137e05c03
677f5d6a82fa46d9f2fc7f56d62e5c605a1b7898b8d1401c2cac1a0122a2c8a7
aae09607f2c5f29293a09b9959399283be89051452898238b777db9830ff4318
a298b221c4a820c700ca964fc99e6b1d9eb0bafc39be9aa9dffa2fa326b2a466
1e67261bb3dbc85844e76f9313ab533ee16bcb478166de5502b68e6ec1ea6110
f53206cf1cfea419571b0243244b32ea38b828a01e62b03bcf476a32c2341cec
b8a0fa2a3f3f339315d5f3aa7704408f6617d0278d5c892bb12e35c9c7c11c20
a6ddf5832b2ff46bff9cde62a884dd607933864f6e1e9e2899faa6f2c9712eb5
22f0e723416ff6662065e9e132ecfba92a0c51ae000c87515df4d95aa141a0ee
5e16a5f3f833aec3b0951bd68b348f65df291829a67ee1ca79e14902eac1b912
6016755a1dcc184c6087667bc8aa7cd79507d23799c678826d169c172a7567b8
b783af25752af5a7ae470e8076782899d4879c8369eae52c461c6a0dd23db996
f4674ecb3b8047b29e1ef01987b7686597b9ac8b780e62ed58846a1ba72caa1c
87a04d4771c2ed02c5c819a5803a5076ad42acdb86d63691e9516ef1cbca137d
38bc3d6d893b9bb0a16b87efad9c52cb27edd7cd494f203bc23ddec50207641c
6bc81e926528448144ebf606032024dcbfbefe900826edabe85615721416523c
6c77a69b71e15f2efdb174ba78b9f143b21a365f04fc419077a2815ab93de04d
f4c6422ebb9760b28d12e2010ad3bb14260c1db661feb9ac50130b26707291a5
42c4b8929d128c66bf84266961f21555ccb432815064017daf58cf6b72348cfb
1da4aa3e68cebbed6c734fc2972c77b8783901f48907792bd5554f3d90c6ddf0
964036f43239be6cc9e324cf3c5ef2993c4f7f46e551ddd291527d82a2d7dd48
1647da5c35229ff22b91c60372cc08b2e07ddcc06f6d838b9cfc0fc5710f9bf0
40bb3f0ffeeb46c1dbafc8330a45ba0ea42b7174ef43908e676f64b511afe19e
4b471590c92c658e880be79eece03e31c41045a47160d2fa6e39d3f9faf8f780
70acccfe3a9bb261fe1564e536c2e6f5d19cb05a361d2c8275d56ec5ec69f73f
4628216c51d39942ff429fa6457e8925b8d9b6624e2990c49c6081c301f1f7b5
b0e7c1a38ea33f5d7956117baf686b34f1c433795ddf2d57bfaa383a5be99f3e
f0295c5fd1b7d0a9cace06995b040344a485c4d80fb00960edcac91823f5269e
5d0d00fe9b3b9597f2da14e655e15fa712923048152c6eeec744c7728db286db
91c94a9c5fdca1bccad28d45efbc39611846e0d97191463111a0befee59a8791
ef5c9b9475e63d98e10c6864c76b50b77c2a1e1062219e5ec405d29efb1e38db
9564a56f98e77dd6b3597a9ef90d0f6c7880aa91deea8ef815c15c3309c3ae30
c63d6046242024a172014c0a9a9f070a5d5e095cdbd38c700cdf503ffb29913c
69fb473c38bd1ee53730782ab7ef1530f876ec9e84b48c65bb47280d48fb6e79
540f4118950a6b3538bc77511d953d29d297776b50ba307185facf87a8ef2dd2
def2e3cc27b1d40c4f32871a1b11dd0b0c4623fc4b92f64486a0241c8ca4358d
6e2f2503065d799b124cc738e54433d05023dd7e0fba00f992b90cd040717682
0ac6cb41278995f5f61bba00873794c8bc73f49b16dd4563c92eebec6ce25ec1
a3d70ceaecfd7bd866ca70dd3e17fca245ae5b93174fddea9f4d98915c9ccd74
6b2704f2b9e6f53682f726262b9161466203e68c7f4f73df3d025ab4a15a303f
51c3a4b9d8e87ec97f0e5e9e83c51dd82f3c4bede6291704c6e1b947455986df
94fe29f04fd524d4a7e5a2c33a1a9c4bf302ddd00eca575e40139298e6e5fe5c
6f368c017a2a768b6afcc16397eb90eb51880f7c92d1d58886ac96d946564879
9adaf12afefc1fae5e4bef20a0c19a26678d94d15cbcac0b3eec10d893e5f819
573e00213a2155ed5c6e0bfb449da1aa53214c7b97b67ac6cdd23ea952b7e1a9
eccaecc91bee8e99e45a97b6eba4b40c93ef3231fbd3b87663be1243b9d75d81
0edc2d6d81cb1290ced8122a9ef527a690f6e3f277826f9532e9d483308261d6
307c0156258d2059970d8c13459413a2b7ae2c03dce7992216f2320b2a8d7133
a7ec107c004543f8b5a1b7f4cc6154a7fba30a0d33df7e634adbad4e0e94e53b
6363be626269f4fadcee6f03d54c336db0afcfe834f6fe7ecba961ba4496e4ce
d28dde2110e54d96e7ece141051ded8fa7b92f2df6089d2a7e4eea9853c85fc7
05a70347450528c303c8a3d67cc9c92df7d64cfb92226182f0baabe98605d6d9
b36bf8df2e2892fd77975042390c1c5e7d3e8b21b127549d2018fbbef40d2000
f55f11f53ed6f9c8efd96eb840db23710843457f3063ed741da2f5556d53e8be
4a42c5665ab18a059f6aeba347e6a832eb992af0b10bd06a877cb4b5dfea6153
8992507a30220ec45af7f3b52cebdb826d2446920f32678a754d8dcf44352a00
44f873f7ec4ffb0388ab3f17f84dd90a0b26abf0ee5e0f3f82879c311159a37a
d5e28afc45cb531b9a537901ecf888376b0529613e532b64f20b02b4c63d4894
c3b9b5820ec8a06b3af3dc829f872647127af1e3a47cb6ba41fd3c408c9174ce
f9bcf86b899064fc9775839b01a3369244ad87a1032476a09f282141015ab5ce
116dac4a7342a9a57e952a909c79fd5a09a3635873445f8413f98cef8973809e
bf928da0ffc617520201890cd64a2d9383055e55f684bbb9f8f9e96dcd8d9d6d
c714c10d55245899141e04c1be49cedb9275f8df5c598e39dcccf0a30a4dd8c1
1a4803d753450b182cc4a4161b2200831b88ec87625afdf90762782880ce2cc1
a780b77f484c183b348c26b44f81c900899854d79fc9891b584c14ab8c70d7d7
76c63a493d782f2bc52793ece324895deae3162d8060df43fb2976ca259aae60
d3980c977c22b8c4db0f0d43fb54c81999f4e18a944cfd63b5cc2381dcb6752f
02aee3cdc081b27d6898d226f18746c152022508c4554f77804e233c714a231e
047dd024c126490942ac47ecb18d735b7a5aadc393ee9a9618f107a8283dc9f5
a359faca103430edd1095ca7dbb40c2684e1a3a421942ffc78e8d9febffed879
984171e704c8fd29d3afba8d845304fd58f91e51b37cb979846f9b03ec03796c
32b777204c7c2e331ff2a2e39a2f2ceb2239294ce4a404a4c64d8a73b3008d7a
ba6e8919d9e308578920aaf700a65d64f976aeb1209e9aa65bab8bd2745476af
78f7991bbe617c9cf70549336181492d30d89f4086523a08097953c460d8ac2e
7703a8491bd68f7e26ff3f6400f8d4b212b113dd6e158df1b427ec2b0a1e9788
5716805dce5512e662dd61233af1650a530bbf5e06dc8d2a7d2eb8eef2a8d133
2f89a4ce05421d22e67b15ac8f789e0f07106a8f51d6a97ee363f46a10969a9e
c0abace15a6b420a43c3156d3f4af9ab84d1175c9d345b81310fc75f48176332
28d4e6f0f2582b9133ff2e7453558a7dead880d5fd4e5441bc6b6b2584c63205
bf78c948f9757ed527f0caf68b0dfe0dc6476a794e660723d760378014af42e9
cb8686be44997135301cacd3985aff59e76507f9f872f3a60ab21354002b1ec6
f918550e22b0bd0cda8489ee264fb6e79529b12ef3ca24ea0b939d3991c1b61c
9a84978d0dbe13ce5dcbb4db62ef3411f9d0e6c844d34ab57ee43210977d64fe
f144bb352ee8b0ae5941029d8ae7e4bbb9409f7ae23486490f22d4e65d8d7382
88b02cffce5f2a259a7b91ee18531971629f93b1d00f03d11477d5d62300d21e
b57d1fb96b4c1756b16a80d67630a064a57bed544ce148229a797518bbd25317
3a4a7152eb0e6265cbbb4a0aff5ff2e01b785b7494c85487c0349a42ab4accd3
6d11f6bfe8ea5b932ecb26f4e0f12e2d6094d174f47e0248da9dcfde348f6c95
a24d57e65766936e0660a4371163f2e817c810bcad9241e0dd04a3b28c19e3c5
fb6fb493264d51fc6456a6b454c743b8405979e573d03a5e5c2822c596b11762
23a54b37b782e18b3cbea5062c45da1db93916b841a6f5e7956e05a348a6a72c
7d854ae4c6db5811ad8d827c20beb516a1bc2949ef56cb36884a28b9e396ceb3
4ab6642f5dd40ea7feee01ef596694f7e832812a0013bc7be4e914014534b5a2
c69feb565a1d601b420d1daf73f3ed62e8c1064daf9a9e9acaa67acd031961d8
1ed9b09569fdbb7c6ce6ee75daa9c6391893dcf9efbc9dcaa8504b131273c330
147e6ec0eb6e1f86d5d295a62543cbb9a27fde0b4b49422afe961dee0fc16ed4
187d05056e2e07019fd7b39067d8067c07390ffe012b329d1b68e74924a6bc8c
1949222bacb3a9ff408d5ddc0fcdd8202d18f41093d9ffd7dd1be896050c4a78
cab184be2ab163576a8b55feb7961a2244c338402a67b8a1d98411aad0e50425
0cfc178b8cba17e6a1e2c1467b50c835b5a701195458912b58706f489ab4b431
a09ad90f18a53e8df0ed836bdc4a2611f291f701911f13891d09f71f0e7ae00b
7653462ebe2980d761eb1e78e7a13870c44d1b961a3bd7d7573b98e9ed9fc2c4
e23274fd844770b004839d62e2c4809caf7aa538e87b673812ab2fae13452854
d504f53365cc387d2cb4665ae3859fd2b447bf4ebe95307f19a0b332b1ecc368
67b281bfb6de34340043fda44c01fbf70d4aa59451f39a0f2b67b60233b93559
e03c5372dd98fcffadb105f0596af81dc4c1f083458d6bd8a3572d13c3d13877
34c27c40b73cf69f9069f997689258a5db46180e87981e21bdff26d45cd155d8
4aabe8d096a645fcf83c34f608f11f14215cb2531916a469482b5874af795400
94a030613b41572ca3033993c8bb2f725aa41fbc06d304581b4de368f8823846
b9238617c191bfc446b08e76abda7dec545f509adade1a808f0d04425e182f9e
2541b7474ceb9ae2b0b0a49df9891bd9cf69192c390808128bac39d8c487ff2c
9791ef3700ba2945760e31a7e3a80319664508f0cc9c0b43a0c47d91f729f552
5e8c754e50a3d4009956073c57373ad79d9a87d4c08defc8046a84e47d027618
697031abb629bee2355083882b9d9b85b45fee5eb8a9d6c5cd77cb001a2dc40b
931d2e4a56e6b17df1f99e53573ddb0e251c92f546c9e1b644db3637c8108046
d607ea69721d1ed248abdd1f53898faa36712341144dfd7a2ed5d0adddb7485c
a143807099e53d9ad72d6daf1dd618e98ba60f3c74f4aa4115fc428ff55ccf1f
419c87c6840b543f66e9dac9382e13fe48d7d2a6c88c4c4eb586490169b086c9
d1e19cf9af28c1471bfb045f085ade0e5e713709f5054693b5def8dee6e3c308
6453aa6f7726d08c5156f81d9d687ac4a71df9f1ede78e48f7ce5c73ce45f236
b708bc3e60125dbff1dd2a01ac9840b6eb79dedbf43184964169b56780d22726
b29c0ae20a308294e18bd481a0d47756763a5dfcf9e0f7353a76d0617fa7893b
63015937ccf9d31de645e61cdfbfe9546e83d029fcad19c41791cad303631bde
7b921996e5086ee4c341f3d7f21f27859d3722bb3d2c4be5eac5632fadf45c30
1cd5fbf708e2a8d8e3d67f40da1bd3bee18146a0c56117dc54baca5b687662a5
fd3708923b4edeb58ddcc870dfd94361ff0184fe5ac682e87dbdc84b63a28b34
54350351906f2da881f951a65c4fadc0032ae55af100f7e591abb75fd8e0bca8
c6836ac9eda9b7f39590bae1fc07fab44458c228186d68ad25aaf261ac3b1de1
8ae6ce97c3594d7d3855c6ab236c90f32fd4e013d855b87ba36a0cbbadbc5bf5
c381fcb37f9c285e8edee359b57042de487e0aa7d4a44d8b478a415c38b1a365
0d1b29130fb742d21403a4e283246a2bf7abbacd1aa18f8c3d14d5346177d8fa
2699f766f778c83ed76191c507cb6576cc46bf601abcd627b605a21833007875
06d9c1ef6d23858bada38fd81df0a359036bf0e792768a511b7196602e7b96a9
9c702d131484e729644e73346ba505400daad10d2322331a8776bb4a67ef29b9
e2d6a4e5312710e5c9d5e4c26ebbe340bba7926c06d548c5462bf1cd69a7b373
a122ab995c28f4d2447f5b1e3634e7655d3f6483dcbef5647c617d99de3dad92
c44ab8c73a617d5bda9c48c5651f73a0c3d4b5219b6fcd7f7fe48d01d963aaaa
010ce849e628da29cf8692a50fe1f833d96463b827f1303effb7c21f7678fd6b
cf002f6046d5bf2aad545d51f7dc0dc480e66f37347713b114485c7c4dc4a13d
6da186172eec8e718a48550386f86dec019c2b5ad4e0943a5ac162cbc8f1f602
dbef872b760f41b687b1f3d9139dee5462efefae36f69456240832fb85a1ce2b
f49d8a1ead83436e8fa8d034b8fb9c1099b984f3757b74d6f8cf91168ecdd5fe
38f072569f579bd50971aa23b909bcc3539d715c1243661d95c775ddcea98070
b4773074f82ec7682ca537237fdc43eb206a9172a1d33878a2a00baefafc50a5
77597a8e63a323884067eeb69148a48dcca05cd98109cddbe146c0c95e38ff33
bb2c26ab5475542fb3e100e6c08eded5efc4298fd65ace8f38cd2879fb0ba3e7
8dddf8bc9a6178831acb9a6a6a8fbdfb3c453356027e3b3a7f8d1a0e054d028d
54a688f7aea4ddad309887402e6f70b82c9fb96f595c96ba19ec9fdb7592b536
b5d66d9af6bbd66071bbe847a9ca807258ca5cb4f3e40700d0b3d908d5a2caa5
6f8c37f0b0e6e8e3bc3fe1cb7daa2050074832993f22fbb26427a38094b80d2b
eba27f4dae450347468d054d345832ac5cf993eb19e8a4d32755bd969f5cb8d0
f21aa5ae9ce7e0d2fe34ed54f9b8135110a0e6f4ba64c5409909e0fdcbab8f79
02ad4488ff959c4d4273d4d2137d2576c020edee1280173feb410f9f395c5c21
ebb3c8950b01b3479cd4b22ffe4cd2733372da2dec8b82ade73623d74e9e3724
ce8993ef3fc7f85dd61e2ebb3abb1363e3cd3705ad3fd2d22165d56213f64337
2905e5e6559e0e0d45d42364a0fc5bb47a193bfca668463c50d7744e06b0ec9f
fbf8041c1a1e182a35a544b69dbf22a33c6906e868bc0a62c685c726ceef8f99
a3348de84af8311ec5c46f7f6c65960490930e5576afaddf97623c897a6e6e0e
f2573f6ebb9c7deba66f053b5f5d449c598c9dd984d85d7496fde1f0807f4adb
79f0177352e48163217d2e05e8a75ac8413cdde0169a122aaaa97e10d4c20251
e8e359867f4a90c18f97015d537f5c15ac9c7d95a97d1c647a2a902907d94e03
542a8da186d889b2324367cb7188c20079fa55e6aef59ca215e0cf1f1a32c580
8d9eda9965547b67ee3c2b8444320acb0b7ca607b614b1a15f995f0f76a5893d
e039b105633bf1f1cc3c1471ed36bed97879a51d9e676f9cc83c7b199b8bb628
f10b55a2f0ab56c8dd371a7dd946af79c642cfc7cf042612918434fa5efb62cd
ec96d0a806536aca9038c2dc4994589dec1b302aefd9978d3fcb2fd265c6c9c4
eeac6665462e266c50776ab4a978591e7ffce970fa78674f3635d9e6a630d5a9
426fc6dfa950644292ec1101b74fb639122b713e6ab323064317daebadcb5edd
70bc038bfb92c9a381aa0fde3b57913e71dfe43841fe1d2a24c5e0ec62d2ebfa
30d5449d9a3e2395049fc4c9c26fa5b8c454d7fb948614b77b8b15c3353c24fc
68bddec5720e2bfa76cfd84e8543b7b55616cb9803a8d8923c1612b8e066900a
d377aab176c7caa5fd462e2eb37981eb2c86214680d9f8003e4e673f6beb8391
52cf7c52b2299bd71dc80645e702b65ab068681ca97d3e841036a23f6d520474
b6ea5707d38e8e454dca76a95d73cedaeb79877dcb215f26534c0fa36bbddfd2
79b2053abdf681e33d02c1fe14da232a79fb851c3bf19f8791d4994e238a5874
c99e8b97ec7a2de28c60e8dc5b0ce2382cb1e9b4e0908c3f3d85443d4b1cf1f4
b83da5c5e2d495c223f5ec2a10a9c629e64da3f975c56e2e49eea72b4c10b568
b5f47c62ecd210160232695cefee2f24e32fe9ebaad804183ee72a943edc1e5c
924fa27528cc10c234b97a07b15663de1a684cf594b41d30acb541a95f7733e6
ea3fe447262f4b8bfc1294c5669c840c529477eac5c892b7ea82b32cd8b05bb4
615d4213e2722f4780299daacf0fc62748aee2be0174bde9b2a915d56d605591
e9195ea9b353727c1d053f9106a752a5d3e1fb9aa19cee0f56987dc9ac4437c1
4fb0f2ec5435df1e511338546d01e7807b93ce27dd0097ef5396786c89cbb571
88ab11e20d728f903e1917f897f8e4a622f674b13109fc58a0eab87ea92fa005
f375acd6211500503a15e1843889d2a9928fca245910f37336d22313ce17c551
bec7f6db2d61e51eaeaf5e6018f458a192ed60d165ccc75beb5fa76d92c70447
b09054ab66d7cd55c84e85356b3db954dca0e3e8d66d1162e8d17a87f4db1fd8
3f6a6f4205a4a7367e569b62cbf68b345dd979f732c9a1d4d9d17e2fa348df51
e8798f9d10300153029b3a98681fd67dc14d06039f60e57da20c25204eccd978
7c9ff702dbee3f8a2fc26a2c01c1f9fb3c6c9da414ffc6b124f7440f73e211fd
eb239c3a5bca081cfd2cfa42ce2cd6e47265510ff129739a53c111563d0be826
363209170d67589f5ce4491b86b0d5e919e02de02a80db68949c6100b52acaec
32dc252764ae5cdcce4f5f40c7fb327c61859531dc1c6d833a4275275c40f674
a50b41bcd142a75c1eb4c71725888a064b6523bac8da3d2a475315529a1b44a3
badd547e20699e6216adafd43b130f554ca02972feaba3278ee163b2833e47ce
0bdd55ab253fde5cbd3f1d6b3024272f1c3676b94f92922a91791b00123e45cb
ae2711f6dc150e4d5b5fdcd470bebe123ab58a787b53a5c31d7810cd196d5e2c
7292643464a029acd3c6036a771392f4f6944163b254ce84f6ea4ed3a2206f2d
2750fdf56a3eaf18b02b9ba3a45f8f88258e46bb97d407d7bd206f02c9edfc2b
ad76e10343da9ca69f05715066b1eb8e47253402527f6015883dcd3fc6129824
e1d1183b519878d54504276a39b4e7be75e8a95bd3fc44dc9022ca87e9855e18
1b312fb9987048a2daad116eed6a59129c32995634e64ece743af996732dc1cc
e4934bc45e70c1985b7f6202c200c7fa2dc70842f5e0035e5b86a04f27f266a4
f34c1db1cc9fe5a23a3e597113b7cc111892e1709a5f9752e0332431473bbb8c
ef44b7b5d07af51893b6dc55786a8ca3f21f8e17bef606d56188878993ae51db
25937e7cd8889f35dca0649e280868dee4f864e3acee39e65e6ae0527221a26e
baa417ae3a4e6bafa48e8e9c0ea74f920386b1e169a073db3bea6c3256d64cdc
75c8daeb1d5afdaa4a21f93799301b52216f395764dac3d5f657fbfa87c77cb9
dcdb8a4ee461a75d66a2bbabc5efe1fcef9159f8b21ea950348e3c4c90aace13
debcd52bdd2ba71bb59f1f8a347606bc21a14378936eb926145617fae04648a8
d31c783ab12e154803cf6d6ce211ca983d2797673d61822bea96d13b7ee6bbd4
f53cccdfde4eb521d95d30b8a960a8eac13185e96e154a068f0a6b564cff84fe
cfc823bdfcfbc770a3d90071c14ba5aa6b8368147b41b003abf0f4e766efd6d0
8f633aa1bb99f5bb8025518b03080b6285d61bde43b2df404b731855cff6e071
22092309c848e09edbb26741be8082af42750e1c30b442dfb139720505aa7ac8
72a42217b2c955efb675336eaed25a190bd0645840c041555f03d1dc22fb5a55
6cedc2e4b3ec5343e68117b8164a70c199cd4a24292f41a54dfc50b51194b57f
08fcafe917265c595d2499a5507e2929513e265b3370ddfa388d0de02f36ecd0
31dabf5371d4b8edcb08f5c0e809a6ec765233ac73f91b56da55158c63910e63
11dbaee51dca451bc37e83fa6c000ddaa29a197e6cce6f271dd5df1d9ae643ad
4d0d1c149e752dfb7848cd71383b49cdec6a1bd7bf826c093f6371c6da19bbf5
2b4abc7d8b6466470fc3c03ceb922f96370e1d3bdd99077145056ba338048f09
fa9c37f8c5954a2bcc0d7c7d5cc62b062c42e1e35dee4d63e5c0c2a0a15dcd3a
4e52b73dc1da0abd7e11167f027704ae7fb22e03e24b400dacaeb71d55a9f40a
2639aae7e3a5729b1fea4d6d76de20961269ccc84557f2ab937cd8d8c74e34e7
8a5933ca4ada1ec5c507df1841043e02ec3833cbee8c5cd4714d5254af1fbeba
71d04196099047f21cbc82fb94a4dc7d6e85ade9b4438657b79cbe0e1c5c3866
32f0e2a6975f0915183ca5a1ea0e8ac43d6577c5b168d018855c49d842af19c7
c441dff4d9aeff4dab4ef4e05ad961b9d1c05cfac86b865ee5c7af2fd56118e6
bf81ddf024b7e6c4eb619c6cfa791f752fc315ac4ffd90be975e0b5b2df98c81
8586e9fa93036988ab6187668801cb86412345089717e15c6e4ac4c5e6ec2b37
e529cda16f709308ece8cf5339019ec3473bed4c585211e7d04cbe578ed5e951
a98c09ecd658e95e5bd32da7b87fbdd1a78b4627538597b5e884d26398f5917b
b8fe9953db092c2884114e2daf2dcd028cbb723d9ab3ec902b1f6a6ce9de5be8
c977fa9ce96408969fcb8746dc3e09608f94fb0b532b4b74f7601d16627573e2
ae16cdb2db79755aa9307e6622a57d577a09e685c1d2a9769f2e494ad09c13e7
d94567f3c70ad2af175a811c20b4ab7a4c9ba6100a74f1a37b7127a0084fb609
9d40fedb42e2344d61ae187139f2b60e6c43da1f080d063a9add77a1aab32032
7a4bae2fd2b599590b5705185c768efca38afa03a1f0d223d35a22609e8bbc7d
5f8e58f47afb572afebe357257ba2402fcda3e2cfa01a868f09988ead99656f5
c426ed2ba538748fbabd3626048db1d9adc47fcada317ee723bb87dc5323a34c
4168c154e6a78c7b78de28b7c94b05b17250e2cc391c8b082ec9fdf091113fb3
34851cc48bc351f9ceade4bc362c5634506ee7baaab2f632d6a93d3bae246676
81e507a3600ced4a0b7ff1e68174e3b8e9df54e7e31e85313c0b8b728386bc73
6f07dbdc03b126cc696b3d3a8d09d2cef13dc35f7cccef9a3d1726cdd74ffd96
4397edcba1d1c962b24951884f7f68e4c9f46dc63e1bfcba799af490a6f9a7b1
c09e6c74e2bf27e881f047f72f9ea4f4b4a3ae51afe2e1984c4776001b67fdff
2fad8204c4199f1b282cd72709d1693ad66c23e01bc15cf527fe63c31553db1c
2f0e61cbc19796f32b089adf31abf76db87ecbfc55947a7b6bc9a8049dc37b21
69922e2f6a59ff1da4a4dea198119aefe149c3879cb191a3d0e98c893afc7cfd
36eae3aebec20dcbd79c5b9c3b84201101d129acc49a601fc191217c6fecd7a8
d5b68145761817228f3160e0e36b64aaca2705c9b820781ee3286c5db93c10d1
b82a68a6e0790c01e709e70cf1a10f22e6584b100bbe7e43a4d90b0530c85de0
f65f33203a6a7178ae231348e1a6562787c4ede6e0e733ba5342475a29e3fe3d
41ba5b75845b406af84a692f55f09322fac343e735df2630221f8940b1ad3ed0
6e2bafecd46bd021dbe3df09910b114e2d1b27cbbcbad9b6ff48d6e2e59c8087
2872cbfac6b4ec2dad5e7cf996767711f61b5b4b8163b33f9a45978319c069a5
1a82d7810b962cfb5bd4c4a9e2085d9b1256ee2e73e32c64273d072aef2af588
81b5abfe24dc16ad753411e7d39056c3e372b301d4028a8c81a8257ebd5ac6f0
1be452f4d0721b77e46dd4943b0e6fdad2da83093fd5023469de06cfa9c42166
bfb9686e073dd22ada86bfbf42c796cf2a5c07f35543e5911b2f1d877f70ae68
5dc9c6075a1b4ed0e3890432b568ec02b48ab5c9e56c0f62ffec0e6ed911ec40
fee90b07071cc9ea62ae7d29c678029e182a93f4c7854b280e51e1a8009dd9d7
2d1ed97935a8e504a6b520a6ac273ddc63940f7ad68f318ac77b5d9d22fa7159
5b9dc3130f5172b243b99bb4dc5f1d8340dd7bc39c77356b0b2cfd44ebba918e
a6839eb333a3841af59b8bc84546b8d90330c0ef9c5fad6158cb9a739e8fc1fc
e32010227b2c16a4b8aa64652b974f76f1f232e1f58002b4fda25fcd68e15bc6
1082a7b5b5dbbbc76e40889795848433a34b44c7af0fcf6f719e635765573804
5a6aa007c2baf4b2207c29a2f74854b54f147ef4f3812be2aaf8f9d597365fc0
d2ba00e6df93b5001077bd0e3b06f65fe11aa989ecedbb0201427a27815990f4
54ce2cc0b43b94f2c5442dec905dfe11070fde78f6027c32e6ff2e3ae3932d7e
a8a316103f5e2479928b15097bd5d61aa0d69cdb86abeebaab3886fd96818450
19e09d087d4ec339ad20d2a78ca5ad74a4298b99a7ba2ea7d5686e2615e480d7
b360228d4c1fce361cb75852b54cb2d15971f7e22e665ce664866a4b69104eab
5de2ee5c412f31b400d225025582f4454755de8323f0dd8184fec66129f50377
d0f62bde7f50d50c1768b92f4f9160f63ec2c7e2ff9b361f497deefaa11c395f
620e32294c709553438e654a2f57635c1fc826ab65c53cdf0050a1d340b23967
844e60e634f1a319486fae9c1ad032b79fa042d7e548ede490667d138ebf3f42
5cecf69a8b091ac7e33ac00d95601d38541aa8024cf4bb9b84cb824536c3dce7
07727ad488dcb244b5d4adb1996e0ae6d898cf044800fe12d97ce401b786492f
1b02a8ce4b82e4b82e2dcd5fcea5851be830019b99000bfa0cb5017ba6cbb721
edda1b8f92d98d4a2c70d804b38a27a187404ad5bb818e8594f984b60d23adc8
207ed10113c4555709fc97931251445f93d55d40f2a73a0c06095e32225eedaa
4cfabd9db5dc7d34f805e648fa00563c3b7a740d5ac35c2cd354508db8933ed7
de36ab8271cb8b2e0cda51b810494d31d30aed1edeca8b67ba48266f745d0092
ebd258e6ed14d81f298be5e59a84b9ccd83b848eee20f3280a3920f7d00a0399
541464472ea1572223c0ed377264884a389a59afd0f5763b0a17042cf8230705
09f8757d9b8960599aefe7b5e278726514fefc8911084f008e43a6b87b367a96
8ad5e6bdb8630f2e2f0ca0be546a80321c44e1d960f44a64d77469b0a6079251
58e4ba236d622899a6a352d331881975f1a18cec9ed221f6e949ef39ce5c4482
6f204b7f259f6cf7eef7afbb50a516034b625a277ce89051c1650a0dc8eac964
1a1de48a70fc0ff66889656bf33659081681166b820fb2d566b033649af90983
30cb1e90352f3eb459b9f270090f6c298aebff7014402655570293b5b429d321
20f83f749c543ee4e2268b31395df8b42cd4acd93a2c4d1c2e6400dafb49d689
08dc721cb5b5c391426939eb74ec62184d31d540d98d29a356ec7a19bba18606
35074b70ea4c1ffb04b3d496878ff4d7d0ce05ccc01eda78f044a5aa69e1ab28
d14e4fac2afd453a91903121a3d13a7355bd4948fb75659906d7ded97e5bea5a
8ea4593f9badbe5fef9fbf86dc4506ab8e8d3624a64d93cb137bfac51bf84033
ffb74e932e6608b8097efee7c431d1aa40c1b4fd2677dc30a564a8c74d639707
f89f1de9d293af284a8cff44731b088690aa58435ebae25196abf4f4939967b8
8f34c96cbb913dea4550ecf8cb168be564f0fc0143b331cf57fa6662dc115f1f
81d580902d1a2a70a07f026d09d45123f50ea331abd223398eb27a6ab61ff71a
1dbd103014ab7fd638e94ca54b5612b58b0a1dac196cce7276c76f7c958eac85
75a8e7192a1d7787499f2b9fb609199c335a6fcd7c951e3fdb80b1aa491959dc
893afea21f886708bd5d64f7e0aa11f413a0ecad6020e4599aaa5ca3c5f0f3ad
eea502fc88293ea4c5ae11540361a3433e37eb90fb13f228becb04e5dbf6bc09
7fc13f464650db31cbc211eaf60ae2b7ced0c28b766376d78e90d45bb6cbffed
8f19262821b6361b92ff71c31ebdcc01c27bb43ea09916cc4f1de1f9725a1746
18d33087e04dec2780189a75ce936eabdff75607c9ce892abaa0a1d5fcc42868
c40b2137fa51134513dca3fccc789fe76e5a8365e3a0b42558d47a398193f857
65643979db7eeaea70f9f3992b2b3df6a18b2bbe5a8214eea92d12eb0186c6b8
b1e6673aaab12426203f56f398c83707a4e2726b3e26094bddc2a8de55d3b0d7
c06b4c8a3b41a6c6287b4fc9e6c4143d8f50e1b3ebc11465a17839f296acb92c
4d12d5d250052b463f4c11b5cdd9da2f5d4f20efc3e1ba32c275af02205b5bcd
1fd84ad4792d0ca21a570a14ea4c65bef3e3eb68458788937cd9e1fd7f5a2f3d
523e93022d029e564943c694f70412c083e8ac62332d1d82f792f05b94754f64
741fc31e336c37290a599082bf11b217835f24bee2e3afd1dced635d6c3d60b4
d8e4ee795db7e897c97d464da76cf0eee917a8a9502de5668f274f51bca69dcb
b273990bb751e755b8a04af4d787416dc1489e303abcdfc83c4a2ede65f19ec2
685564de9018418f74ae0cadbd8be232d51c474478d5b346954a974870399bab
a0a98f78d260d9da5ff8da32c6715acb0ba06c3a22d2e0cad6530c550e5c2db9
b13231095ac352fb4681d13f666eb0da391a18f0d8e8bcd6cb61606d8220996d
0a2c978f9bf803ccb31cf7cd8e6ab3e389a913e8233a4a6de0fdcb81a233cccc
6aa7ee366f9a951ed4b1b312e9887e5dee37aab18c7bf6a502ac0447b40053b1
8d80125fc42c6d635658edd6db6692dc9ab10f73d7294065417dd61706bf3c1e
c21b34dadd1c08528a8270f786a80506f719e98699aa7289eabe4425b18363c9
1c2e0882f0ee4db40404cbbd526f4f7d6a7a483bd4f607bc579c6ed2ca2341a5
24ca4652a3e25c2899abb1441d5c8b9308c9974132c5772ccfb537a70f9e53d1
7be8fa5ca873166b670ad698589eb5d73b096544b06938cf5374f51ad8d8b800
883fd219813927fda85a16d53fb148a0e13fd3d0cb98277819925f841b6b5069
ad9a24e809b7151737357b047f8489920ddfa8ea49d6a2e246bd86f8fab00e0b
2bab423ce6574625405151e69fc459c7db0b8d5d05e2bf8a26fed4d4d8adac26
c19db21f877f98c3f5d14bfdf4d208cb5df1141344dd232a52f6dea26e53c1ae
8fe3f00278bde4f7da70f5d50a7b8241e438a64d2856d981f136799c5a19f143
eca202720050fe0781cba63acd1c84bf01907f0b3f913790b6eced552dfc9c97
7e336b8abb966dc130af15eb0c3cf504adcbbfb90f2810b7c1bafcab1be3bb31
6b40baee3b201256d430c7ac1c9ef3c7fb9d4f9caa4689746933a07d100b3983
1fcc00f79d78a9e0428430b83b1f34d8f2b6c47554dd505ace9b6500e1555d05
c2441f82e992705d1c61ef5baf6f10e72251a119367257ba240be7a282c743f8
0dc638be4f6485ffba01d912cebc96d13612fd58a632025d06c5ee98bf0f0857
729e682a782fc1ddd299f98b55409fb2d4248618428f5253ddf9c7d64231a31e
700af13326a9fb77baa6687bebfcd2b3f4beed7da6891baac0edf6bb85997ce7
26f26bb6cf88234cba489d8655b256bf8160aedef513344d8011ac762254e840
408e97489cac3ead6bb8ed88d9808be0535108008e76c3ca2da77a09e1057035
d23edd432307e6384532efbae28811cc7db12ad96f9b246b4bb1c2b8379d7025
fc0b82d301fa6da0b247ed20c921c333e23aa14e4c510548de2e15039ea68147
cad5f5e02b36693b4d41265dfa469f6292702c756778a0b7e70bf74f98a85f61
6ec7cbf7898cdecba558e03a325d26a808820db1a70c71ac2068a57df2436c6d
fe97bbe90e814b4ae343f832dcb80fec8436d4d1102b27c09fe60c3c29ba06e2
0311277194c53d5a3aca3f16f8d443e1dbdbab3b9733aedc483b3bbeb3d53e9c
d6b3103282051c1151c1b1d380f7357db90cad2303db5b6998a61aa01bfaaff5
959abc176a592ad651a37fbfe068920fbfd4ae713fdc24f2c96c8e6ed3e87780
bde8072f5319d50cb1ca8a81069df5434401a97a142727888d53f60b3eb56c2f
e1e38b94867c220af82a1423b8cf3b11748bebc1a0376a54ec33b2b4cc241cf0
db81d704f9801cc95fef19e3eabcb88cf762965ad5a2bf288695d516ca41c694
32d9161764f4454411079e6c3ebdfea4e1cd06926d2dd355e988526e865bd72d
17969f632418e5331c3824c6c0e5f865acc777aeb0e5c8a9209ca7614c4c7780
83974ae1c10485c11ae6bf1e05b32d561290ec1d1420ed409e1ab43f4856d51d
4253aa0eac31a0b4685acd07473d5503d876d0635a0bab6c77398a22359848a0
1bc38ec114fb15cdd7294a69b7972ab421d952225a8ea5dc6782c0eef1ba2907
ed8f0f11c8316220d25871d05cee33d38d8fee33367d078988f28fdc76785a14
c7a2917054a6298610fc7086c0296d664f458229f7fbb38b07469254eb199bfd
d21f1c60dd1094dac512409c099c389fc56cf911e3d1d606b5e38c29917dd274
b92bad914216f5e4e74184c6a8ecccb10e3b8b98570fd5aad5dbe0db6f8116ff
50b7893b2b0b63027329d7e73023bb5c8ef8d0967dd28c04048cfa6cfcbba5e5
b3c13762616e2ad2bda47524f227335fd40862636efe90fd44ccb33b59e426e2
30b441a248c8c30014546e057216462dc3ac72d3afdd85b7b8e3843e42d98f12
8850c793a03eaea6b19fccce95e2ddb67329e7b01c617d710338cd6a467a6e0e
88be94247f6de6a8c619eca30c0725f9871a74bf4eabaa0b5cb40141b4f10d0e
c62b600ae7ac6b39ad01409f31bfe79c41c6ad2bcd53bc9e6c6cb3786dc5b93b
ee405ab79d74a99ed504cbb89b36832ed55a062ca30b6b22b0e2bdf610806c7b
2eb0effb138c4601a2af4ae628c916f982e21813e92c2230f4e176131263ec64
f63af35300855587b719cb7417be8f7dbb375d66fd6d06185cf6392b42eacc43
78794b97127c2881ca864ce9bbf732492669eaa6ea6f16c27d0130f62c293963
7c54349a4f4d17db5e09f55a0aded7a1e3657b1441f58ca6b27a2ee004061283
7d95530c5c6f775024bb351598ef60147e75705ade424915d769bc08c11fdd4f
07aad67ff5475310d3bc53db6d795b8cd89937b55e57ac99eb75a91141b72691
5c325c9b41a595eb791bb09a91c0e4a8ef13ac7f35f8f77cc6bab7ed8c8aceb9
f2ad672aa03992e282235c8ab3d2717c0f3fe3743d35f1a40df573906f23f777
074a6aee14
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMBX10
%!PS-AdobeFont-1.1: CMBX10 1.00B
%%CreationDate: 1992 Feb 19 19:54:06
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 88 /X put
dup 90 /Z put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
/UniqueID 5000768 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306462c563d51ece66fcc9c831843ecae
1fefc1a232e2724f7baee428ae03aadb95c3035345c15e9922fe49e1f2cfc980
237316572dbc57064edac9b0db8913a5e2d45e97e19a91435ccf8adfc835b585
48e74b291446d689c7f2f8c4325e8356e974ae30c3e2977477baeaa33d141fb7
80f59351e84bfc88c87b3a4a1d25e168b9d134554f6a581378c7d2d6eca8ac09
045cc3a5e0ed86f147133f094029e3483bebc81cfde69942cf645ea20d0a2b64
5140ccc2f9cb4a3d969f4b0a79cd3329b440dfcff5285494406f3dd08d804c86
df191e57232f6f1f83df6430f214e03fa5412b1e13d83c60c52a698bc9a38159
19a64162af7b83a9468fae9507c6cb55ea80df8c696dfbc3296c663902d77e89
a181502627281181ac8624f65be9de5fb32f056cc7dd7cbc7366a91717b5892a
34ef6b441871c6993da3a81afc9bf70ff3842a21a29c0e49da1ccba37dd6b920
2702db510b8b1109acf4c27ee8d676bdbd16abe189f34a9b61532eb777457698
cee0561838eaab2d3939c5093afbb215bac433d1918c739b62566906bb2187f3
378521fb52e70c18886e1aa15f53a1f8a169528cf2ddd54c203613ff88e619f2
6c9c50c2c3b8b8c868a88afab1dc8472e7b6f3f992a161723a3c0904865a7c42
3281601eee91f35222c4a71f343739f102eb43145a47e4fac3bd666e4c114a90
5950618ecb1bdc29f90f6ebed1d8325fe6b52e14a8870e9b4bb088e585c71b91
493c12845a101937e3473ac5e9ae24f7c358f06d590d7618e1a1d5834d87621f
e3f5432b655eebd4ca61a7b00dde0aa740796ce88a43d1c6952f8d2ca63d30b6
dcbadbb0dadf13150a442714675dbe51ff838f2e47ebe8cd44f1eac6ae5b6ceb
0b07af03f5d3896ff935a198aa635e337e367e1e128d15e31afe3ffca8245e41
a3e17011340e49d52fa1e322b435b4f7f2f49ae01f6a319f68d3d786c24be810
1e1c975a8feb5dd7e4922e00e3a08cacae5a945e1e8f8a20f1fe9534153307aa
5ac7424759743e08af90b9bcca7447375222a66934e1e47f97f8985b0c694a87
1ee7eea9e0d7928e555a83f7456ba5f235a1b5ef8bad622dea313825a43446bf
0b300d86f38133965120d1dc43eb1118d1fbb2112412711a576c4cbbe90ca05a
8865da40d9bca6bf94a9dee1596b6ce5af218492f0f13797305d5ce027a15f62
e97b1a96f52bfdb35d7fb3291fc270beede6eefa93e4979c0133bf56ae6ba3f1
5780cd62e482645875d638a9a3452665b2f8c9428faf9fa1530a7f486ddeb242
d6b88dee354fe924ab2f20bf5c8b3c55d4b01ee47fc61d6de927cf6b293311c8
25941c35ba0064d3467c5dfb92a474a142800f1e823aa6803f498d0a84509eca
0a647b5bc98d591c2e10895888f13aaceee95af56243c8df4131bdb1d7676296
7822c2b6f25b1f0471f995dfb9177fe3731671a4796ab1ef1ca8251aa4defb2c
1b6e6549e399009c8a83711ae45c4822eaf0f96d3d7b0799fe7ab9544f9992fc
c34802a21f0adc9b53ea6cc4eff7caaecbcd465a1d2e8d121e4ed99eaa0ac035
3c1df112cad17ec8e1ab31f303a461112b806da6c08dc2f450aa787b0dbb5cf9
99b512a80563dd34aa240c096e8feed2046550079df84c12c44ca7c3e0de96fe
caff1ec43798da864e7688865d3dea1d690e0261fa46e64a81b8cf0636396826
10b445d5a2f9f3831bc311e8d3dc51a9f6913cb12c553cfb252f812a95acc3d6
e2ac2c23f61650c42ddec2341376a8fe3ab8c19af465dd8c55f513a4d6efb72d
ffe4d82e847b6ac6496a5ae7a4837b4031e56fc6f10fda33814c90d912649155
e7613cf7d2076f3ef6afaa6406ed2ddc54a686487c2944d33b4d9717219ece80
b7a2d037dfd39c50a87a216d2c24b08be11212b92cc8670eb6567bf7df3b1115
629711b41ed372956dc93858f859e66f13e40ced75810d2971f4c202a7b01fd5
d5c8c58329e5512f04c6576b96f20f522b84484ea73140ed68506ba5467f3603
c665252f60cc83868aa08eb1e54c80d2ce7ae883e6c903f54e228ce7caf97bb9
2292e339bfa699e20747c612f6959fa8d1f9d6a0676cb393a75860e50d01df05
4f538eefba15b299df0af505849062425134faf4184abddcd881541575923a05
4bb979c1d9a55c5b80e71276ab2db72d3ae4687e4ce0cda29d0a1cd650f387cf
e3b058d77ab2144e83e67806efae04ec52a66e1f82fdd877fe368bec40e80edb
bda430e6d56192124fead0ef576d6065bb27bbfd43a8a6b758333483826f4152
b659c367a031b6a9fa0241e9af69fef02bd2f0ff4656a2e8bac52a17edf1af81
8f63ad2d02e5eb3b4d53d56e19c0d835009ec532c70491a6cc60c75fb20f0f02
6576fd8a8492c7f9d7cda311cca8e980fb34ffb3e704a8d03f91c95072874af2
601a6acc78746a11aa88ddf378e3bf2e5b7dbcb9ee71d636fb214a54b1c9b3be
d93580202f67bb767c2ef4086e2f0729e5f66280cf987c7adcbb7c4ed8c77e55
d8d76f12ec6ff1d1d29b7973e7b6012d3b34a978760f1912ebfa51f696852420
502063a45f4fb43b1e2ca124dc24006b209a699703c3ea3b414fd72e1134bd0f
56a5cd9d85cdd7c50c1c9ddddf27b514e07857cc305724bfbffa30816f5499d1
2541988bc031e6d931f3d0991be00cfbd773c9cf8a5ceb9f76ef108f84179eda
77cab7c26801fadb0aeb4a76383ba7a5f9d8bbe4269528a4b7188b694c671987
c6970372ca842b2ad996d37b4c0e30f3d62d487aab3374632809c30f8b03f1eb
e66d00667e4a6e1e4f5a129b2b9ed969d2b4e21480a2c1dd997ca34e1317da30
34cbd4e9138774d265b7647914a7575bd069453d84e2cdfa96ac75d75404e6c4
f1c086b8daf626508d5da467b46f81c5010f1744e73cdf7a8e473844dffebd14
608308e15075fc0ce3879594f70d88c9210867fdf768ce4bd5f750bdcfafcfcd
ae133c7add64e68b0d97d55fd03dad9309283d473266e77b64b96a1c6bdc26d4
06328d1fa8183f2161b4530e33552b46a3bf26c772cb37429c58b3ed00a9e687
b83428943467c88f776729104b7f88cddffc7712f6fce3558c9abb63456524a7
f3ff4660a9934beaa13efb80d49f2df8f38831962f7204a25da03f8fd2bbeebf
a8e6f317ae887950db6ab37f89f5825107d3d2c670d7b87d93dbd01857d095d7
31d9a067947d72a77dec22cfef3c3a3f5f002ea4dc54ec2c6e5ab4b75a3b59d3
ffa94c95f64410fe2e64d4adf982d0cbd9508e0b0fc4bdcf0e1e08e97c18fd22
cb5267fd94b4fc2cf43d14d97425295bd74cf3e5ae8f2c58e82a456eb80994d4
9909503dc315144f1705b544fe9dd06d6386b68e05719f354e217f053c1e5bd8
307fb3b6e95e07de3c9a2e592a9322902ed321be0afb704f6e3aa26f131ef879
0cc7ad0e585b29fc1636801d8cf28ea9472e3fbef8ee99398f437c64741f036a
0e6762dbf6df71dc7496d514d553dce712c71d1ae77338937933eaf2c763f466
8e3fcbb4d7e941cf6a8e4ed39042dca7b0a1b76ece389ab53f82824eb3099652
afad511ff4516f00827bc4bf84727fb272000fd5563730752ad0ab38bddb2e79
b51d7fb62bc316eff58a66f8b43eb3a99761c34b45583a7e9af80ef7fb428ea0
29770f85d0a2db43d60facd2c932e3520b06d75cc45854f89bd75f6ac8d78dca
7c9b709e340b328c3ff1ae0e12c473410ff9f8f166e3a25fbcc2cf763aa65574
0d5cfd1eacdfc3dafc59587c7de4855c6db0360042467e2afee278211374d9b5
005a4e476476215da258b6be77846a3bbcb4235779d808900c147a79d086b68c
0d51659dd0a9b5f5e227c01e4667f69d344faec21f831ac42648dd0bfe54c023
f215141647744ac1f4df9a1acc3371b3a2462e528fb019227347eb2946f85d3d
9413eb740ef4be77a27359110b6d186e0eb3672bce09afdbaf4ef83f9a78d858
4e66914bed7ebd2aaaae407413ee1241274df381e6bd8a8f788f84095fb0ffb3
3775c36c9d47d1b1fa98698d2220ab32dd6c9534309f891091399eafbe0a986e
bfa50fca7c1e16f4b359cea623f60309a2e618339b18d717c1b28d6cd4913b53
2ed5df06e22bde2b913ba9ba0558d74db9583ba2c74b4f99f990222bf2a0d743
9b558e76a413febd89a266f906484eed14a0b13b81eed62b3d24080bbf6392b5
cd5e5222134884383f70b52f8afd4ce40265f9617c268fc62333ac64f4c92ecf
2e67440cc0ae3b9692c6319d2ae86fcc5666e0b2e859fd33ae1f89a256db86f4
ac834bc44fbaaded9a2968a86ed282509e1ffce8497c9206905bfa3c207b4d34
432b4447f637164473a7d34e2026e99982605887107b4e606d9ef513f674ffb3
70647c8b3020b68bf668bc67196031d783a86b3abf043aba15bef767a0a94652
f3b05b13ee50fe26654a29cf82eed2c2be1fb7d118580a52033d0879015417c3
1ca82eb4e89ac0d36b9f7a934a367d4a698bd2985ca41befa25f9d2b0b4c2c9c
a73244e9f2e95410b19f67ab089854c75fafca6d7b8e34b6325ea7a537668754
8d221b7426803fa154fa4e0b406498ae09cdb73f7dd8a937ff6d52f298338f1b
56c936c4338fd3e738dcb06e4551f6a982d1922283d140f4a3e35941bc43abff
77806fc3969be68dc144b3d4a102c9f0e744257674d609620f490535670f9b17
7af165715a32f6dfcdd6cae18b09ce92db467fa994bf43092d749790c1c0b868
b295541ede79b8bcbb331ede296e98afd74ebf6716c47e09fdbf59d8271c11b0
b1b7f90c0f7a4ada0ac34c0c91f58b7f235cad4a0a1dec9e8ecc1f34a7f95740
1701ee968c092bfca9578559dfb7590a7e24548c1f9f968b46e49f60529b5589
2d037f297b206468777175246261f5ac8ac81e166d71548af940bee9bc608fb4
b05addbcfc78a1cc536f996c7119a24494e5cc3c06e53d679f408b4d6483d8a6
19167ea7cf3125e774fb00f3d7bf9aade039e12bc840fc35a70589ea773e8e46
37a606c3f2e12fcf0e0ed8065232bd769c64fcdddd26357d73036dc2109e6776
4502580d8d7d895fdbef10479a07b9f4f69a510f30107231304a383322ce8d6e
277e9c5bcf871097ab366bf5cc326910ab8dc3b94e9e1dafb8b4228bee266ba8
c3eaee8f69fc415763c5282845a6c89607f07403c7fc3a32f10267cb212f253f
11299cacd3ded2f48dae25d8ba1a76b6fc29702bf663fa1b20d65ea8e3c83736
f59653030fbbcb5b75069c56e40ba324d58226a21a0cdda5ba5adf0343c3d8ca
ff26cabcde6914beef8952efb909232dcccd68965046cc5da561ddef1e677cf7
9722ab95b9f64b26675aedb33a95b63c7c91068fe5444e23ae8660e41405d1da
c8ce152532f867297b6ad45379865c2c5a769fcc00e55ed70dfcbb1ff253aab6
4e9c86901d1d4cf09adebd339f516ca9904738b7d1906071ef4b64c541855715
1fb7f59343472b99d2349bf6fcb157d716e2eb847d119bd62e0fdb8534c51e66
06aa18848b87e24caabd61b360caeb5f042f621a1c02976c0d01457e57f80416
51f71beab12dde3b87ba21fa13be426fd365ba9b1300463c04014a07f12dc6aa
05222c81fe413cb6581771dde7b7ef8bb4256bc5fc44b77fada1eeed5edec22d
4b986b59ed7df575907628d62befb45419e8356cb0247ef2f87b50d4fe60b608
cf74a4dbbdeb1af1629025df3494303b6950f6322b2cefa9c6ec3ebc7d1ac289
abe2720fc1d9aeafb54f9365bb5c72f116db230891d039a7a10b7067109654b9
e760aed49665a7225d4e91384636bfc78e7575fdf7ba5ec46597511b2050823b
62e1511cf2bbe6d06ee48bd412121be873a651aace41aac13dd9e19f5c6549e5
85cac942b271e5477af277f0c40776688d761300f8e84f313b48dfe15ec90172
87998fb2077160e3551f600f589a49eeeab9ec9890f0e3fa4fab5b95acbdeba1
15d1e6313b7c0013039ceb7431c5a5683bde7e4df3340d983b04b5dd79276035
faf9214791ea43e716b0b892f77f7b2d341b73509f73e119426583e4a8114124
6bc0a1827b3c035d1fa9c41400b0f9a87777f0f296c901494d0a20c1ff49f868
a561c333829fd4c43693ee3c487f4bbdc9a29fb931c14e1f12f9bb7fab5af166
4b7ed51be04fc3b101981e76e14c9ba26ed9a9d3738648a02914350bfbb8ba10
4816341ecf101b216403700169f6b1a170a217d2c69b13cf5446dbee5c8e07c0
38d02b01cb7abaae0bf6abdfb56ae15a6785fd4cd97ca8d550625b60df596333
a753a8c1c0380e9a97b016bd7264c5c57a7e46759e898278decf0ac14db4655b
8205a963c9670961402f08aae890b4920145db56a7987c40ea9cde6bc8ea8547
cad83df451f2efd4b1da75e5f27689f38dbd43792fada2a44f5c236c3383352b
aae79816a86bdf6479f68524991bc9598071e85d46decb900276da761227ea93
b81f898937059c9c9705e19b01ef269f65c10ad3fd3ab8903d589e1bcf076d83
d9e7abeb6e235b74dd226e4482e722a2676a276b6e6580407ccd4f26e144c6b8
f3d4a8a62ee0adce3df547e719ef62a54325c0d3f182c5c9291a36876c23f8cf
4ba04dce31081e2f1dfa7fb2ad093700ab30d4ac9de63eac1d6da8799f5bec72
c4a1be202da84f4d41695ef51123cf9b9cd7e96f1e34f76f7129343b3440addc
5447106b14ee06149229ab61e892e5677b9231b1ade287db67f0a2e91916da43
4baa555cf3bd45b1a64ec0c4271c4f5bda1361386b2e581c865e68fba71d6d28
d7c75774af17a061455965f23248cecdf5caa22caa22748d8770df6480bd10bd
583b54ab02702144e0dec102cdf8502aadcf675da78b565afca293b482339da1
4ee65985581cd0af1a5847a6e399358e49c935e92d87406be8b44bf22d6e4dc2
56e60bb818257864e4fa4b5c98293201c085d40ef590c132e88f9e72d7bd316d
820922e96e04142f3b9b16a2d43a2dfb8f5ffc8964fc48fc1f596f934216b361
e2cae4852f7ad4f91de27ad11adb12beac6cba6dd72835021cba0b793681c765
3e3fdce2b116ec16b850f8088a6bc0f5f960ee62c0f612f6b6ea61d06f444a3e
7136652ff6577e31e5480c270bedb0381da44221e62d3804b087c5eb0b8bcea0
987aba46588dff75255b6b1de32542ff2953c6cef7db3e86c351cfa75da21179
88f068c767cc019d6bcb28d9745eb287e3710d1f7392c02d73165716e53e79a5
450f811c53185bfe3cf7f52cb2e0c352bb22881d1b4e40ce5e665ff71fb48370
b35050bd96beb04326ee2376efafe7e7ad5026f84d04c9358185a29896c5d0fb
557bf1974d658be66faadb760bac589087eb3a3f647c8b329475383f46ffce57
e2923fb102748ee2728184ca2bd9abe8366986131ef5416d9009fec69e81930b
ece4b4ea08d4d16477f602a401d20174424aea32b60372d2f3ea7aa14465c26f
0ae84ceb6d78d47e246a87e02c58705a755024f9b1d3fb1ddbe6483e7bfd030d
2f6863bc98dc441b05cd7eca72e7e80b51fbe07052e882192c16151bf9425c7c
76429915e1854af813342cd9543676ac50993eeaf69f2658d1202d6cfc49e872
81b682e404e3971e433038003028d56fe5ed2b456c62d4724daf0d55e9c6a5c8
bf52e80b1de9ddacad36c4a4f4c83c9a160fa1ea62df14a16d8a2687c86a2328
9cd324d89ce48933b62f98b979518b1f267fb2621e96b1d65da61dec36a7512c
00fbcb568090f0641af62f6741a9b195b3a92f2739f66819793d86cff2c8a2fe
2d96b89f04d5e7588d7cf07d2a680ed16e9b86439834035530b673056ac06b52
3bc186c98a32af06f1b3d644c24dcaab8ba9c6c0eb77ab991e5b6f0ed0411f2d
51526c90b4dd2ccb657b955d6a762316a840a75decd80ec8bfa53e3b54285361
c125d28d96ab4479c33158a84c115cbd201596d830b88e7291bdafa62c7c7789
50dff61da54b5a5cd451be0ce5f3004755d44365e334642c56032a6d45d367f1
798d72108876add4d1bdff2a96d1bbb9b6a34d033a85e2144a2ad71f0e56c272
cf7c9bc35eb1223834b091aae7cf29f90251f5858eb2efcb8fd4815e9d0e2c3d
c09a1d2a7deff16a2f584f6e77a7253a6416b79f9616306839cfadd763c496ea
e0796522eb141613f274cdfcd01c0413eacb6f3af8fe270ea3aeaabc1af810be
ce801679925c8bce6a48e9eaf81611c0118fb141195f4ee0aaf3393e6e08cb32
d072723681674961a3747411e6649227fbeaa271692272d29f2568381df92998
2a93eebec14c5278acb38b017a8a3c4cf2edf2a221f4761f64aa3acaa1ca3d18
4d4e4b9968d0954e128f3a5abda78871e72d8e57f0dbf577662c8dabafcd1d28
b18c6d745dbf4f227f44f5b60ccbb8f02afd1b245153815c4a0e28e10b71af35
5f7e129ee8f2118d6e1919eb4a9301043d029b0ee2c144350978a22affcb40f0
335143223b1eca98a521af7e8e4fdb8c76a44a1edd0e2df6d944190bafddad5a
d96645fdd9bdf916a9bd18e9948ab672576c89ca6c1cc23bccdaee6e2dee4fa7
60d1f0f4b419dedb40675dde81f7703c8ca850cb00f913b6c60ea0421b0018bf
9f611336a60ef01485767777529f770fb9a666684c416493e19b7a6b24a62030
ad893107e762baf76096860fa566c96c9a2bfa7fa1db9bde99f204397a66f14d
31b8dd9f3c8c31fd1a1f7c905b1dd5159f8b92e215af0e5fc97911100d109abb
27e88bb11d2acabfa84dcc721aa99f3e6eadf09437daa5357928087d5e21eaad
59d0ff60b6870107bcfc10688559b530c59d3fc7af8dff7dce47ae771b746469
c682b9d3843904e3776405efe47d9b2f98651937821f0d49a78d500ea49992f9
39cb8974ebe1c0c9b9348cc356910c66c7db4608f889eaa4fcda478e90f81819
54b4fc8a95d832c2031623e0a585728e8efc63de0c149fa33ba822151afcd972
f85d59568bc88d9ce97adb2faaec5ae52ec234a102fc62db9434c01ad573f956
4a9536657c9c89e8f9dc040252dedfd338a2bad9f128910e1adeb40e59806152
4389e748028e170eb2ea5238e2737816a46697d2d00f5246b9b1fbe07a6d81ab
ce46657e14c6425a519a7678530985a9408f98f13c4e3d3728387768b89f8369
1964afb21f2227663e3d0699f378db91847cc3aaba92386fde51ae9deb41bb2a
a499663d6f44f858d4f5e0537f0f88f465176298e38af38e718655406e4e497c
f565babb934cb9a3dae655a188d28f50ad3e1e79b80a0167f55bb322aefc5c58
65a9773587189430ec1aaa7148c1096f079abf634a0a310c64be53ed60e80fc7
46a65ab58ae82b9e10f9257a0842519d5a36ec768e8b3479d416c31ff7554a34
79824b9847be4b4edc3fd61d7344d6fd42ebf59b2efe0e05b483f72c3f6b53a0
4f1b16fe8c627bff79b46e95cc4da01347c906256ca644b65ba0fbe7950ef1f3
e8fe6f81f2b1ecd27d8580070993d596283528d046d463f79e60234ed33e60f7
e8a12316f17a7ee49ac44a2aecefc1e9b9fdc878f889fd70c1946985288fc2d1
6aa96a8939ad5928556b7b681b688554b5438ecae2524085ff227860353313cc
c2fee98e022381dc015d15bb99a8ccf6ab5357698c2b752b75f7091a046d030d
42229ee95ee94e594a6132d8915f54a7789aa34caa058eb4774b39afafd8a9b6
50f72727176d5ec9082a5a9dbc3d17a208d55e3d929351b03f664d680d6b5a67
fe95032bcb9f5137e2360d45caeac72340f371ecdc9cd2fbad7c175515ad121a
49fcf6ca8244fe8f7612b3a67b6715b1b6caf3749348ea80a663f89ed7352a36
0135e14185bd68b9d916bf49c220ff24c661ed07dc96c4557d44902ff15808a8
7f775f6292e4f9d8a3f6fafa306687faff28a09cf3a537c20fc8b595c0eaf9ad
ccdf57f7d6c2a032d69c3fdc336c41829a3b2bc565be80d4691f35f61218c4a9
32637f7c750d6773222452bc067643f9d0b1242f31748fcfaff5afd5011a8246
59094b5f3f6f3f8968a6609fa4e963c168ea4db91be00d464c375599cef6f589
fe0ef9031c62672cdab4de71a5ad8bc4b0867df134f0114334b08554cf990788
ff979e47bc16789d823aa7b9070cade7cec587a48f74698ae559934ea34867b5
0a2143200ccdbe6d8ab860119b7bb73f2d7d49588148a28cac9262e5ae46fe9d
ac2c887ebea1a03f30b7abc05f207bb8717db0e44aac511e1d2e6333e5b833bb
68b64dc343273c721cd34572fae98b10b8ea64e90e00b12891c855a85dd5f24b
a1b3fa126b8296b3921a9d5da70d9cdee7d17e8748a73807a9cbd53a8e83f633
2dc611781a1344d938ba9be2083374d4fbd1b99c0a06363eac69a4f38cd64eb0
495efa64c37b2b7cbc01e3a6579a4b183b6da23ad5b90cc77ac07086c6f47d03
0e959a578053bdfc854fcb50ef73d82b4f7bb992778054745cc1ead745fb04da
36e2c4a3fc113ed0bd7b4220e7ece447028947afae63019dd410d13ddeec3ae6
cb159ac04c6bc732cc6c489b8669cc1de37649c93065a626d3f1c37a81c41ee8
5be1989fc28dfcbcf88485a053cf1ffd62340ed353b685285698ce2ca8dd767c
737087316e8818a64289bfe23ba3a57131867f0356bdd3a6501595b026666da8
22f961eba52cbe74bce2c45b0c31dd21e68489fee1fda394346791e636701591
bff25e8e36a4f54d11d14f65a32656a71587cf50c477b68e7b53ced6b4576397
56f0be81638f4920d95ccc805a56e94facad6b22a275961f86155f1bc41434e3
1d004bd433229612840e0c94fcd643092a4b1020650926cc2c68187a29730818
6be8b5774285f926b650c7bf57f1158ac8da19cfb7ec386edeb5806a2006c3ed
6abaa4d6ccb6201fbad69c89589b7ed5a44238c4caea51dfb894786389aadbfa
a4d65b57ace1687db55896ab1577796dc3281d3d2df56ad429a74cf5b639ba6b
77aa6aca4a8bfb2c5f16a665b11768aa0f584d488de3092f6c55eeb51248ba60
a5443965ea4aed89aa414ffb519667594368583dbf328d027a62b85d1c3b6ffb
cbdbb8c8bfee64532bf0c0efc4741ba2014fc8a97177f037b36097ff6a67ace4
873d31fa0a26d1c4f196f761b4cab89741c4df60bec6928bd5ded7a25c6330ad
665f5927fb9455689ef27a1d8507361c5b30b4ab71dacd54b2aedd99e7668c4f
092ce7eda4a1757bda9176d88caf9a3ebffdc44d90aee8a0148a0be8f71d9163
ae78aceaf8e92df40b9f0b294da665630fb43a97e9ab7b3a26bf190d2fe46328
dbcb1d78640977bf3bd9b134e7d7d164a7268b0c876f681da00039438d824cda
a521a56e3b6265d09a0c3137d094e70d532f72ce5d4cce49bb9a2c6025267875
234074afa7cb21c0c569061c38a3e96eafa9e1324eec539e851844cbbfeef9e5
e3a0f5951cd2220f78abdb49a312b3df279eb72d73157b2776f342ed4023f664
0757fe794ba7cd8e55824ec97d605f04013a5a74aface9091ff33d949e0ac971
36d351ab7b715e1666984ed1bc1a53f1e01f653f258fb3f79434aa1822124862
39baa6014173922dbb78fe90130a6b983b46def7822637147c60fe796fb067f9
eee18756c37efd7b829f7ea7a09305cace188dfa0f631f1a68966dd758f6afe2
e5ecff2f8b284fdc21a48cfc351366351992cf3a268cc2497d1fc899f17bc376
b1badce0865ddecc21fcd7987bf6da2b636e9f3ade764bc6cf333eefeb00e755
5aeba26640850c99daee04aa3f9ceeffa2ddb77a328c9573522c8a9eb13e4bbf
aacd9f8da262faf3ed412646da61cafd172928b73b358831dddaf6085b55453a
7702ed25817a4169eb4bbda1b2c69ce16f1cef85d34d1ff70dc1a2eb5825bd29
cf8b2ed3e2c3c85bfe574684ab2b1385398d38c71d5a9decc4c1b3e1597db851
ef860fcb3d6e1706e57792b3374270867bd14b609beac63143b043803efb168b
d99efca66c585da8afa6653d0a721ce86614af1dba040cb48f0e9ce764d5e8e8
824be25d88331bc11ef71ab314f587fae4a25255f5594540fef5a739303e9bcb
5e14268896996ef315e751e3b14dee7386cba3bf66d9ed2c84a847c495164764
5496aec7e4b6101c45ef9c6677b65b00cd404edb7630f4344ea7a0b6a0d87985
033380faec0f126b8b8acbb421fcb7382d2226758f9e4bd2b29b4b7d6451a79f
216566cd90f1c6b31e9d1a31084cc05a8a171891446b407bdae7dd8eb9cf4d0c
13f70d3a989a4a809285d8e67acf61588f85700b473d82686bb028279e73743b
3853ee6ff1a2ec9cbbd75cb109ae146ceb3c052bb7886474f3803c234218e92d
2984d42cadeca0ea23237bf4c809ff8802177257bb535429895f4b6212838e92
66561102698913549f6a0a6c295e8e490ff1655104a9a14984659b2b34ea0826
d716c94d9a71609ba3ccef833f9381e7d42ed29f00945fe491a7b00c01966ee5
407069cba46721f04d1e414203ed4583bb528ec91df4c17577f9239dbb848242
9963db384e1976cf4b023be3b07f27dbe1a06b5eeb0bcded593ed2fedbc1dc83
fa2779e331d6f6024299fd73c63dbdce7d5946a65ec19048344c60a379b1d70f
c26b62eb004eecd0087377c485d190f37aa6f48bcf996ca53f0727aceac8355c
076b44dddf17981c03442de8c8286c59b88ed5a2f75feb78833c22e5caaac6bd
fc4b4c7e17713e02c0aff94aed05b5597912e7d442b7eea59c2b10d6082f8567
0d60202e1c9f3d722be172bf77de12e59e9bd3135a477d806d67b6c5a9f862c5
539c54eaa346e05e1a0f9dee6b00463e3d8fc852a6ecf920d883a239b88c3371
804d669bd9a8c4ca42a93e7f89b3ca6174f57856375fdf03396e16aa9b197ae1
46e9b686a08200243347fb99d49ee7c3384d3fe15f869a96be2321f042ccf15a
0db5d2fa158ef0776bf060ae9d171d7a81922fd2954c20e02ecb00fbd45cec42
879e771835cafc2f6b0b0eff4b5d1a48c2fa55c04689f0d29c6311ea89273cbe
2f578117e7c886d5f80681d066347850a17c16770fc6a1981f79583d22728eed
335577882f9587df8fb9bb9c0577aa5ec1009a7e421108a7fd84b6641919cd91
e068119f6da329727f4aa39fd5824dbd9080f9a7287bc8fc37f4e8ed80a26531
24af9c0cfab5b53b39c62b3cb7a6abd82b2c92e67e1fb3752297b96b8e1ea6a2
45d4d6b276c7fed14367b59266cd42984b21fc79bcf8e8d677062f1925e295bf
c0ec7ac0980cc6fb890336431e3e713296b7621ca7c4116cdbd90c9afa52b117
92c0a4eefa8d418c4c0456d075b1397653e060db7425a0cc3c81dd1f48e84ff6
7cb24a9d82f15c330d087f836530241a418ec3e50e2d7eb78ed76bf1e3beda10
36398c19bae439df25c68967c6158988bee14ffb7fdf3c6e25afb2d0b9cde7a3
aa82280cc47e8d79ddbc05daacd65de6a8bb29214636755e8368016a6a7a2031
00d83cac1d6facb2c61982c4adae2cb6b666d6997725193badc6f9859c3199af
8fb14695b8121f1d25fc5d3aea63e2eadfcef639233f6ff22342168068dae2e0
6e7ed9328bbc39f8bcd3d5a629a829127a45293218aaf9cbdb346235102ef7b5
7ef0d11e1288806a8e94b19dba9ac4b999d1bdfac880bbbabd9b0f721866f371
64f75e597452a63a875d42f069c2151f8a44f1fa1a0914aa267f3c4bb8c3b419
29ae06c983f153f84182e69404e1e62f75be2b6e3c1923306fb966bc2e58b1d8
6df4b2853760337a78303b7b8ed5c58449084355131b58ff131dc54b4ea44019
5821b2f82ac37d591e3c72039a67b8bdcc9f46cf76fd0dce58b50d081c249577
f51353871f4d0ddf861efe979747ce628feffdba95569eeeb264c3c56cba27a0
c670aa3fd7994b17357195c749437ee3e94a7f9eec5c64b0328e18eae7550b16
04c6e5c457aa14a109e29a2e1a23149698079c3391283acf4ef96b7d29bf3e47
4764ad000b4b7c4de998286107c62627c1cb0655e212f469506a28e3225b6ea0
9df0222221a54b51fe75cb5b7c1b7e43c87b96945ecb71bcdc887c6cf96e3af6
c81be9ac4daf469aa522c1ae12114111b4caa736ed3f1566c42c554f19d18c68
2ad5c85d350e00a11ace70362ad68120c85366f8987bf48a8dd85ea18c74e9a9
aaabd39062c195dc3f3ed33f0195875f7c710c71c12d4177c6f73696f102a2ad
a4d6e8e8c8d6296ceb6b0e9a885c7cef1aa4859bb44ac7d5f84c44b43b84bfe5
0cb2ea84a125985149db1e24cb4069e408775e12b6d1143c7f3bdb91fc98692a
a6d00c914e78f2e04ef0fad48ae219697048b3fbb1bc6485ebbed8e55b5d3e04
369de6aa186d7aed378734ba8aa4c4daab7746c50c8807b8bcdc89b9241ce00a
e820b74135fda854bd2dc1d37bf591365903f651378f197fec384ec760ceeabb
3a7911a0d77a21f30c7149dc1cfe6661dae6eaf7b369125593c4408b5a53e1ad
d627267b46ad7a013cf5bb293f421ca325cf253610aefbaa4df89e41048ed14e
3f5973a6714029581ec18216d25d3914dccac8b9d00d6be591c8ec6f958c5be7
17031419874c1814e2ff6ffdfd7a0f8f2caee0f65dc44189fd2beeaf470e8607
89976fe16d860238b6f232da57ad42e46ecc8eded5e84c5de2633352f63ef952
52dad2fde87629f663640a415d560442a05c61897c93c4008566a9ccb96d6331
21cd34546bb9f54a458b19813944289039faf672f07920b00ad0e61b19a1d511
cf93120fd9e28f4b7e3acb564720683bb815ec382a63e7d27362b4783ec08244
120452401f4f775e4f364fdacdc47a56f95bcd0ecb72e05d70328a9804b9645c
3c213d1f6dde4e216db3684ab5fa7dbc58a959b60a0b55552001bf81048038a8
c5ea3407c4a00e6d7e590db4cea12113672017e871c336e9124f6a693e54fbc9
f0b7da7e9401fab5000d5776abc98865abd93c1dd8ccc81d88abe4af6eca7769
62909f4a0ad7678a944c0a5c6d3b8f71ad778206ebb1fb2b1b2ac2565d528ec4
278db2a4bdcd0cd496d771b20afa334c7249a5d040e2d2080e34a48264050059
7af8381d55d7664b9d3bd965fffbc09409a582e4c77d6ecc3c34476a96b2fd20
2357696fa5ec517c216daa6401b5faf87378a4aa074e7c5a65ffc1fdfe5a4474
7a0520dcffd601c6d7cac9f79135013bf2ea9db3f3be3763309708aa06527cdf
7bc9512bd22433eaef277a73700da6f5ea321f63e948de208f4de49377031789
e66fb9e1310db82c18ddb5400c9c6999186e535d087b4b592a6f4c746bd9b7a8
94beb89d7227ea64599d7bb78e78b23193e8adbfe22f8bac369f4b0e03f8b238
be56bd458a40fa80ae92b5c5fd5763bc95270b5369d4fd639391976732d783c3
6d2568cc611c99eba1ffdc38d6111f7d5bb9f72b210add36130772bcd277eea6
1ca3780305b007ff16077329d4cc508406b19e92f8f451acb876ff540dd59c73
83e88dd4fba703903ab80957f1aa23cc016f810cbdabcd154c37f8dd27c80793
b07ab27af1093c09863867a6b0f7d0e040addbcd25402c2b864fb9ba59e86724
c3c9556f086dffb9ac310e7aeff3ecdf058c89389a76602e44951fa9ca32f095
9ebcf8aa4af69a8d87562460ed51ec74538e8acc9aa6ce117c17330e3e6926ac
0dc068e2d88b3dfb18a4e85689c4b7b48c0f06e3344ac224a1c6b6f9240aac69
726ec3431eb37ebaf7215cb351e52fbc5fabb7d36e02ac79cbc75fb101280ce8
5a7723a4e4ab3f39ff9a82ca8164e9df0030ea7c75c51a1d87ef5b18907e1fc7
48c86a3dda932e6e755633ee56a8d19637c872dfcff9c0e88fc4b96568c3e46d
33a2bb8d71b5536a468778576e1a245760fae6500184fbc6c637330a3a09d6e0
c546b10ebc651c6d99e3af48d6b521487c603b18c02643d73e580110a89b0ca9
1d3e1a3a3ac17d52be6166c2f77d3525a24570fb5cdc65041193db584bd6745d
e9f158e5164935b0319eb9b2d7f9c68377ab7fe1c304b4204cb074c6e6c32062
0746231b69e2245785c065383fbdfe40ee63bd7a787ebb65d1c5c83a52c65046
0be748abfeb0ece59de1cf97c7752ec1de7f1e26db32ff064db7ccd29e857ba3
cbfd9eeaa251c5feebad9c17b897f723ff364216bbae23caeb60f4c9d672be3b
0d797221d928ef98013affa7428387094fda013000831d525025127a0ab0c511
83d57aa7dd7044937f0654cad31a75140ad4c67d75dbbf05f7a0968e10623a74
b22111d3208a9b47f45ee71d62a22e4e294446b59993942d606b4dfd6d7e49be
c816894f123b2a06349a200701d9b24a3caab03972f8c36c939da7f067d9221b
2b0768833390fbb0aa0d9ba2fde0b52f731e1e7461d9623ed8c3262cfd922d4b
4235e55ba830d4435fecd88eba922c39508c024a7ca932735a31441f19e3be4b
a40be74e5f27e5665f8ec9ab8279f06851aeb7ddc2bf80e64f8bdc881e6a518a
80862ab1bd8ccc860a013cdc786127ed940983d631e9e804dec11601345c543d
66871412e7830661ee10c3d013a0ad978cb49625ec0a355d38c85464526fbf63
2a215cf8223f10a79cb64d9bb0fc1a2a016852c8083695695515afd5a41eda2b
cd1bef58d402079109e1f981fdbbc684e2bd954f717d4dde2e81bbc60da62545
420c0f7668cb706b4030fe8333b5e011009465bdebd4688c53cc929845c4b437
97030f668942eca32ecd007692fa6f4082e00391f0663cd12647858e0d647d99
31d4ad1beeeba24f6769fed0f90337e595f4d9b0854e514ef8369e315a8ba010
bb792ecb1a6089e311048bc567e19476bd025e5cdec5eabf362907c7e6ea9dd6
1d36fc4b4aaecb28cfa81bd1a6c5040a256cc8f245e670fef768f355c56593c7
a26af688de6bec2c96697f4b9fee44cff0e572bc67ceb413d6b6fc84b873cd21
2a963d3dd37541ecf43e6ac2a05d855560261705910cc7046652911544576697
254708bf5c4979c6391421c0e6429f0fc9bfabff43caaf4b3413e3b9e9f729c9
0d10f5c8a9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 40258431 52099146 1000 400 400 (thesisams.dvi)
@start
%DVIPSBitmapFont: Fa lasy10 10 2
/Fa 2 52 df<3FFFFFFCFFFFFFFEFFFFFFFEE000000EE000000EE000000EE000000EE000
000EE000000EE000000EE000000EE000000EE000000EE000000EE000000EE000000EE000
000EE000000EE000000EE000000EE000000EE000000EE000000EE000000EE000000EE000
000EE000000EE000000EFFFFFFFEFFFFFFFEFFFFFFFE1F1F7BA229>50
D<00007000000000F800000001FC00000003DE000000078F0000000F078000001E03C000
003C01E000007800F00000F000780001E0003C0003C0001E000780000F000F000007801E
000003C03C000001E078000000F0F000000078F00000007878000000F03C000001E01E00
0003C00F000007800780000F0003C0001E0001E0003C0000F0007800007800F000003C01
E000001E03C000000F07800000078F00000003DE00000001FC00000000F8000000007000
0025247DA42C>I E
%EndDVIPSBitmapFont
/Fb 165[31 5[37 3[35 3[32 3[38 40 1[35 39 1[36 7[14 7[26
26 49[{}12 49.8132 /CMR9 rf /Fc 142[28 28 112[{}2 55.348
/MSAM10 rf /Fd 134[29 29 2[29 29 29 2[29 1[29 3[29 29
3[29 29 29 29 9[29 3[29 29 2[29 29 3[29 7[29 29 29 65[{}22
55.348 /CMITT10 rf /Fe 139[22 22 22 3[31 4[15 3[25 101[{}6
55.348 /CMSL10 rf /Ff 131[29 2[29 29 1[29 29 29 29 29
29 29 29 29 29 29 2[29 29 29 29 29 29 29 29 29 10[29
29 29 29 29 29 29 29 29 29 29 29 1[29 3[29 29 29 29 29
3[29 1[29 29 6[29 29 29 29 1[29 1[29 1[29 29 29 2[29
37[{}54 55.348 /CMTT10 rf /Fg 150[15 23 104[{}2 27.674
/CMMI5 rf /Fh 205[19 19 49[{}2 27.674 /CMR5 rf /Fi 207[12
47[30{}2 27.674 /CMSY5 rf /Fj 133[22 17[28 104[{}2 38.7436
/CMBX7 rf /Fk 177[40 78[{}1 55.348 /MSBM10 rf /Fl 145[28
3[15 22 22 28 28 5[34 1[37 1[37 37 10[38 17[43 2[28 37
31 31 0 0 1[49 1[37 16[55 55 1[43 2[43 43 3[43 43 43
1[43 43 1[28 28 11[43 15 43{}35 55.348 /CMSY10 rf /Fm
149[13 14[30 31[23 8[30 1[13 26[35 2[35 14[23 2[35{}9
38.7436 /CMSY7 rf /Fn 164[61 2[80 4[46 2[58 17[49 1[49
1[49 1[49 15[45 40[{}9 55.348 /CMEX10 rf /Fo 177[28 78[{}1
38.7436 /MSBM7 rf /Fp 138[26 17 21 21 20 23 22 27 39
14 24 18 16 26 1[22 2[20 8[30 26 36 4[27 33 1[28 2[42
30 5[28 1[36 8[13 45[23 13[{}28 38.7436 /CMMI7 rf /Fq
133[26 27 32 40 27 32 20 26 25 25 28 27 33 49 17 1[23
19 32 26 27 26 29 24 24 29 6[38 32 46 1[32 1[32 34 42
44 36 42 44 54 38 47 3[44 36 41 46 40 42 42 1[28 43 28
43 15 15 27[33 1[24 32 29 1[24 1[33 32 5[22 25 29 31
35 11[{}64 55.348 /CMMI10 rf /Fr 133[23 27 26 37 25 30
18 23 23 25 28 28 31 45 14 25 17 17 28 25 17 25 28 25
25 28 6[34 5[40 31 40 1[38 42 1[50 35 2[21 41 1[36 38
42 2[41 18[17 20 17 2[23 23 26[33 31 34 11[{}48 55.348
/CMTI10 rf /Fs 132[28 25 29 29 40 29 31 22 22 22 29 31
28 31 46 15 29 17 15 31 28 17 25 31 25 31 28 15 2[15
28 15 34 2[57 42 42 40 31 41 1[38 43 42 51 35 1[28 20
42 43 36 38 42 40 39 42 3[43 1[15 15 28 28 28 28 28 28
28 28 28 28 28 15 18 15 43 1[22 22 15 1[46 2[28 19[46
31 31 32 4[40 42 4[35{}83 55.348 /CMR10 rf /Ft 133[28
34 34 46 34 34 33 25 33 1[31 35 34 41 28 35 1[17 34 35
30 31 35 33 32 34 9[61 2[44 34 44 1[41 47 7[47 39 41
46 44 43 45 8[31 31 31 31 31 31 31 31 2[18 21 45[{}47
55.348 /CMCSC10 rf /Fu 144[22 2[13 4[22 13[33 2[33 33
32 24 32 1[30 34 33 40 27 1[23 16 33 34 29 30 33 32 1[33
3[34 3[22 22 22 22 22 22 22 22 22 22 1[13 15 1[34 1[17
17 4[36 28[32 5[27{}42 38.7436 /CMR7 rf /Fv 139[26 20
27 14[26 26 27 31[36 18[14 46[{}8 44.2784 /CMCSC10 rf
/Fw 133[19 23 22 32 22 26 16 19 20 22 24 24 27 39 12
22 1[15 24 22 15 22 24 22 22 24 7[35 2[35 1[34 27 35
1[32 36 35 43 30 1[25 18 35 37 31 32 36 34 33 35 6[15
24 1[24 24 24 24 1[24 3[15 17 15 2[19 19 15 26[27 12[{}59
44.2784 /CMTI8 rf /Fx 132[24 21 25 25 34 25 26 18 19
18 25 26 24 26 39 13 25 14 13 26 24 14 21 26 21 26 24
3[13 1[13 29 35 1[48 35 35 34 26 35 1[32 37 35 43 29
37 24 17 35 37 31 32 36 34 33 35 1[22 4[13 24 24 24 24
24 24 24 24 24 24 1[13 16 13 2[18 18 13 19[24 4[39 1[26
27 11[{}75 44.2784 /CMR8 rf /Fy 133[28 34 34 46 34 35
25 25 26 34 35 32 35 53 18 34 1[18 35 32 19 29 35 28
35 31 6[39 1[48 1[48 49 44 35 48 48 44 48 50 60 38 2[24
50 50 40 42 49 46 45 48 6[18 32 32 32 32 32 32 32 32
32 32 1[18 21 18 2[25 25 18 26[35 12[{}65 55.348 /CMBX10
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 400dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 703 461 a Fy(FIRST-ORDER)28 b(TERM)f(COMPRESSION:)740
538 y(TECHNIQUES)h(AND)f(APPLICA)-5 b(TIONS)1074 704
y Fx(JAMES)21 b(R.)f(CHENEY)898 759 y(CARNEGIE)g(MELLON)h(UNIVERSITY)
966 871 y Fw(Master's)c(Thesis)h(in)e(Mathematics)1104
926 y(A)n(dvisor:)22 b(Peter)17 b(L)n(e)n(e)503 1077
y Fv(Abstra)o(ct.)28 b Fx(Lossless)17 b(sequen)o(tial)h(data)h
(compression)f(tec)o(hniques)g(are)h(w)o(ell-kno)o(wn.)503
1133 y(Suc)o(h)k(tec)o(hniques)f(w)o(ork)g(b)q(est)h(on)g(data)f(with)h
(rep)q(etition)h(in)f(its)g(sequen)o(tial)f(repre-)503
1188 y(sen)o(tation.)j(One)17 b(migh)o(t)g(wish)g(to)g(compress)g(data)
g(that)g(can)g(p)q(ossess)e(non-sequen)o(tial)503 1243
y(rep)q(etitiv)o(e)d(structure,)h(for)f(example,)g(\014rst-order)f
(terms.)20 b(Sequen)o(tial)11 b(tec)o(hniques)g(often)503
1299 y(do)19 b(not)g(compress)f(suc)o(h)g(data)h(w)o(ell.)31
b(This)19 b(pap)q(er)g(presen)o(ts)g(impro)o(v)o(ed)f(compression)503
1354 y(tec)o(hniques)k(that)g(can)g(tak)o(e)f(adv)m(an)o(tage)g(of)h
(rep)q(etitiv)o(e)h(term)f(structure.)42 b(The)22 b(\014rst)503
1409 y(part)15 b(presen)o(ts)e(a)h(formal)g(bac)o(kground)f(for)i(the)f
(problem)h(of)f(compressing)f(terms.)21 b(The)503 1465
y(second)14 b(part)i(outlines)f(sev)o(eral)f(approac)o(hes)g(to)h
(compressing)f(terms)i(b)o(y)f(pattern)g(sub-)503 1520
y(stitution,)i(using)e(a)h(mo)q(di\014ed)h(form)f(of)g(substitution)h
(tree)f(indexing.)22 b(The)17 b(third)g(part)503 1575
y(sho)o(ws)f(ho)o(w)g(term)i(compression)e(can)h(b)q(e)g(used)g(to)g
(compress)f(pro)q(ofs)h(in)h(a)e(system)h(for)503 1631
y(mobile)c(co)q(de)g(safet)o(y)f(and)h(presen)o(ts)f(exp)q(erimen)o
(tal)h(results)g(establishing)f(the)h(e\013ectiv)o(e-)503
1686 y(ness)i(of)g(term)i(compression.)1289 3543 y Fu(1)p
eop
%%Page: 2 2
2 1 bop 1166 283 a Ft(Contents)304 416 y Fy(In)n(tro)r(duction)1615
b Fs(1)370 483 y(1.)56 b(Bac)n(kground)1510 b(1)370 549
y(2.)56 b(Ov)n(erview)1574 b(2)304 682 y Fy(P)n(art)21
b(1.)63 b(De\014nitions)21 b(and)h(prop)r(erties)980
b Fs(3)370 748 y(1.)56 b(Basic)18 b(De\014nitions)1391
b(3)370 815 y(2.)56 b(Additional)17 b(Concepts)1301 b(6)304
948 y Fy(P)n(art)21 b(2.)63 b(T)-5 b(erm)21 b(compression)i(tec)n
(hniques)859 b Fs(11)370 1014 y(1.)56 b(General)17 b(T)-5
b(erm)18 b(Compression)1110 b(11)370 1080 y(2.)56 b(P)n(attern)16
b(Substitution)g(T)-5 b(rees)1124 b(14)370 1147 y(3.)56
b(Searc)n(h)17 b(Algorithms)1324 b(19)370 1213 y(4.)56
b(Dictionary)17 b(Algorithms)1227 b(25)370 1280 y(5.)56
b(Enco)r(ding)16 b(Algorithms)1256 b(26)304 1413 y Fy(P)n(art)21
b(3.)63 b(Applications)21 b(and)h(exp)r(erimen)n(ts)849
b Fs(31)370 1479 y(1.)56 b(Pro)r(of-Carrying)16 b(Co)r(de)1262
b(31)370 1545 y(2.)56 b(Pro)r(of)16 b(Compression)1311
b(36)370 1612 y(3.)56 b(Exp)r(erimen)n(tal)16 b(Results)1251
b(38)370 1678 y(4.)56 b(Pro)r(of)16 b(Optimization)1300
b(43)304 1811 y Fy(Concluding)22 b(remarks)1377 b Fs(47)370
1877 y(1.)56 b(Related)16 b(and)i(F)-5 b(urther)17 b(W)-5
b(ork)1129 b(47)370 1944 y(2.)56 b(Conclusions)1484 b(47)370
2010 y(3.)56 b(Ac)n(kno)n(wledgemen)n(ts)1313 b(48)370
2132 y(References)1613 b(48)1289 3543 y Fu(2)p eop
%%Page: 1 3
1 2 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)569
b(1)304 283 y Fy(In)n(tro)r(duction)1090 383 y Fs(1.)30
b Ft(Ba)o(ck)o(gr)o(ound)370 483 y Fs(General)14 b(lossless)f
(data-compression)e(algorithms[14)o(])j(try)g(to)f(\014nd)h(more)f
(compact)g(repre-)304 549 y(sen)n(tations)g(for)h(ob)s(jects,)g(from)h
(whic)n(h)g(the)f(original)g(ob)s(jects)g(can)g(b)r(e)g(reconstructe)o
(d)d(exactly)-5 b(.)304 616 y(Man)n(y)16 b(suc)n(h)f(algorithms)g
(compress)f(data)g(b)n(y)j(searc)n(hing)d(for)h(more)g(e\016cien)n(t)g
(enco)r(dings)f(that)304 682 y(tak)n(e)h(adv)m(an)n(tage)f(of)h(rep)r
(etition)e(in)j(the)e(data.)23 b(F)-5 b(or)16 b(example,)g(in)f
(compressing)f(English)h(text,)304 748 y(some)i(w)n(ords)g(recur)g(so)g
(often)f(that)h(if)h(they)f(w)n(ere)g(replaced)f(b)n(y)j(smaller)e
(\\nonsense)f(w)n(ords",)304 815 y(the)h(text)g(w)n(ould)h(b)r(ecome)f
(m)n(uc)n(h)h(shorter.)23 b(Of)18 b(course,)f(suc)n(h)h(a)g(text)f(w)n
(ould)h(b)r(e)f(unreadable,)304 881 y(and)h(it)g(w)n(ould)h(b)r(e)f
(necessary)e(to)i(deco)r(de)e(it)j(b)r(efore)d(reading)i(it.)25
b(Some)18 b(suc)n(h)g(abbreviations)304 948 y(are)i(so)h(common)f(that)
f(their)h(meanings)g(are)h(univ)n(ersally)g(kno)n(wn:)30
b Fr(e.)23 b(g.)p Fs(,)g Fr(i.)f(e.)p Fs(,)h Fr(etc.)f
Fs(Com-)304 1014 y(pressing)h(text)g(b)n(y)j(making)e(up)g(new)g(w)n
(ords)g(that)g(ha)n(v)n(e)g(meaning)g(only)h(for)f(a)g(particular)304
1080 y(enco)r(ding)13 b(is)i(an)g(example)g(of)g Fr(dynamic)20
b Fs(enco)r(ding;)14 b(using)h(w)n(ell-kno)n(wn)i(con)n(v)n(en)n
(tional)d(abbre-)304 1147 y(viations)k(is)h(an)f(example)g(of)g
Fr(static)23 b Fs(enco)r(ding.)h(This)18 b(thesis)g(will)i(concen)n
(trate)15 b(on)j(dynamic)304 1213 y(compression)d(metho)r(ds,)h(though)
g(it)h(is)h(not)e(di\016cult)h(to)g(mo)r(dify)g(the)g(algorithms)f
(presen)n(ted)304 1280 y(here)h(for)h(use)f(in)i(static)e(compression.)
370 1346 y Fr(Statistic)m(al)29 b(enc)m(o)m(ding)k Fs(is)25
b(a)h(compression)d(tec)n(hnique)h(that)g(uses)h(statistics)f(and)g
(infor-)304 1413 y(mation)e(theory)g(to)h(e\016cien)n(tly)g(enco)r(de)e
(data.)38 b(One)23 b(example)g(of)g(statistical)f(enco)r(ding)f(is)304
1479 y Fr(Hu\013man)h(enc)m(o)m(ding)5 b Fs([16)s(].)33
b(In)20 b(Hu\013man)g(enco)r(ding,)g(sequences)f(are)h(enco)r(ded)e(b)n
(y)k(replacing)304 1545 y(the)k(sym)n(b)r(ols)g(whic)n(h)h(o)r(ccur)e
(most)h(frequen)n(tly)g(with)g(short)g(sequences)e(of)j(bits,)i(and)d
(in-)304 1612 y(frequen)n(t)18 b(sym)n(b)r(ols)i(with)f(longer)g
(sequences.)27 b(T)-5 b(o)19 b(obtain)g(the)g(original)g(data,)g(the)g
(enco)r(ded)304 1678 y(data)13 b(m)n(ust)i(b)r(e)f(deco)r(ded)e(using)j
(the)f(corresp)r(onden)o(ce)d(b)r(et)n(w)n(een)i(sym)n(b)r(ols)i(and)f
(bit)g(sequences)304 1745 y(\(usually)k(represen)n(ted)d(as)k(a)f
Fr(Hu\013man)j(tr)m(e)m(e)t Fs(\).)27 b(In)18 b(most)g(cases)f(the)h
(space)f(sa)n(vings)i(resulting)304 1811 y(from)c(using)g(short)f
(abbreviations)g(for)h(frequen)n(tly-o)r(ccurring)d(sym)n(b)r(ols)k
(out)n(w)n(eigh)f(the)g(extra)304 1877 y(space)20 b(required)h(for)g
(the)g(infrequen)n(t)f(sym)n(b)r(ols)i(and)f(for)h(the)f(enco)r(ding.)
33 b(Hu\013man)21 b(enco)r(d-)304 1944 y(ing)e(is)g(truly)f(general)g
(b)r(ecause)e(it)j(mak)n(es)g(no)f(assumptions)f(on)i(the)f(structure)e
(of)i(the)g(data.)304 2010 y(But)e(b)n(y)h(the)e(same)h(tok)n(en,)g
(Hu\013man)g(enco)r(ding)e(cannot)g(tak)n(e)i(adv)m(an)n(tage)e(of)i
(suc)n(h)g(structure)304 2077 y(where)k(it)h(exists,)i(so)e(it)g(ma)n
(y)h(b)r(e)f(p)r(ossible)f(to)h(get)f(b)r(etter)f(results)h(b)n(y)i
(using)f(kno)n(wledge)g(of)304 2143 y(structure.)370
2210 y(If)14 b(the)e(input)h(data,)h(view)n(ed)g(as)f(a)g(sequence)f
(of)h(sym)n(b)r(ols,)i(con)n(tains)e(sequen)n(tial)g(rep)r(etition,)304
2276 y(then)18 b(the)g(data)g(can)h(b)r(e)f(compressed)f(using)i
Fr(p)m(attern)k(substitution)p Fs(.)28 b(In)19 b(this)g(approac)n(h,)f
(the)304 2342 y(input)e(sequence)g(is)i(searc)n(hed)d(for)i
Fr(r)m(ep)m(e)m(ate)m(d)22 b(subse)m(quenc)m(es)i Fs(or)17
b Fr(p)m(atterns)24 b Fs(of)17 b(sym)n(b)r(ols.)25 b(These)304
2409 y(subsequences)19 b(are)h(enco)r(ded)f(b)n(y)j(new)f(sym)n(b)r
(ols)h(in)f(a)h Fr(p)m(attern)j(dictionary)p Fs(,)g(and)c(the)f(input)
304 2475 y(is)27 b(enco)r(ded)c(using)j(new)g(sym)n(b)r(ols)h(from)f
(this)g(dictionary)-5 b(.)49 b(As)25 b(in)i(statistical)e(enco)r(ding,)
304 2542 y(to)20 b(reconstruct)d(the)j(original)h(data,)f(the)g
(compressed)f(form)h(m)n(ust)h(b)r(e)f(deco)r(ded)e(using)i(the)304
2608 y(dictionary)-5 b(.)37 b(In)22 b(this)h(approac)n(h,)f(space)f(sa)
n(vings)i(o)r(ccur)e(if)i(the)e(dictionary)h(together)e(with)304
2674 y(the)j(new)h(represen)n(tation)c(of)k(the)f(input)h(is)g(smaller)
g(than)f(the)g(original)h(input.)42 b(Because)304 2741
y(the)22 b(searc)n(h)f(space)h(of)g(p)r(ossible)g(dictionaries)f(and)h
(enco)r(dings)f(is)i(exp)r(onen)n(tial)e(in)i(the)f(size)304
2807 y(of)c(the)g(input)f(sequence)g(\(w)n(e)h(will)i(pro)n(vide)e(a)h
(pro)r(of)d(in)j(Section)e(1.3\),)i(it)f(is)h(not)f(w)n(orth)n(while)
304 2874 y(to)23 b(searc)n(h)f(for)h Fr(optimal)30 b
Fs(compressions)22 b(in)h(general;)i(instead,)f(man)n(y)g(useful)f
Fr(appr)m(oximate)304 2940 y Fs(algorithms)e(exist,)j(some)d(of)i(whic)
n(h)f(asymptotically)g(approac)n(h)e(optimalit)n(y)j(\(suc)n(h)e(as)h
(the)304 3007 y Fr(L)m(emp)m(el-Ziv)35 b Fs(algorithm)26
b([26)o(]\).)51 b(Some)26 b(appro)n(ximate)g(algorithms)g(are)g(go)r(o)
r(d)f(at)h(general)304 3073 y(data)18 b(compression,)f(while)j(others)d
(p)r(erform)h(v)n(ery)h(w)n(ell)h(on)f(sp)r(ecial)f(kinds)h(of)g(data)f
(but)g(not)304 3139 y(so)g(w)n(ell)i(in)g(general.)25
b(Sequen)n(tial)19 b(compression)e(metho)r(ds)g(are)h(less)h(general)e
(than)h(Hu\013man)304 3206 y(compression,)12 b(but)f(are)g(capable)g
(of)h(b)r(etter)d(p)r(erformance)g(b)r(ecause)h(they)h(can)h(tak)n(e)f
(adv)m(an)n(tage)304 3272 y(of)18 b(sequen)n(tial)f(rep)r(etition)f
(where)h(it)i(exists.)370 3339 y(Man)n(y)k(kinds)g(of)f(data)f(migh)n
(t)i(pro)n(vide)f(opp)r(ortunities)e(for)i(compression)f(based)g(on)i
(re-)304 3405 y(dundan)n(t)14 b(non-sequen)n(tial)h(structure.)21
b(Ob)s(jects)15 b(suc)n(h)h(as)f(formal)h(pro)r(ofs,)f(syn)n(tax)h
(trees,)f(and)304 3472 y(mac)n(hine)20 b(co)r(de)f(ha)n(v)n(e)i
(structure)c(whic)n(h)k(is)g(not)e(strictly)h(linear,)h(but)f(whic)n(h)
h(could)e(con)n(tain)p eop
%%Page: 2 4
2 3 bop 304 151 a Fu(2)252 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(rep)r(eated)12
b(patterns.)21 b(All)16 b(ob)s(jects)e(stored)g(in)h(mac)n
(hine-readable)f(form)h(can)g(b)r(e)f(expressed)g(as)304
350 y(sequences)i(of)i(bits)g(or)g(c)n(haracters,)e(so)i(sequen)n(tial)
g(compression)e(metho)r(ds)g(can)i(b)r(e)f(used)h(on)304
416 y(non-sequen)n(tial)h(data.)29 b(Ho)n(w)n(ev)n(er,)21
b(non-sequen)n(tial)e(patterns)f(whic)n(h)i(are)g(actually)f(presen)n
(t)304 483 y(in)i(a)f(structure)e(ma)n(y)j(b)r(e)f(hidden)f(in)i(a)g
(linearization)e(of)h(the)g(structure,)f(so)h(this)g(approac)n(h)304
549 y(ma)n(y)i(miss)h(opp)r(ortunities)18 b(for)k(compression.)34
b(So)21 b(non-sequen)n(tial)g(data)g(often)f(cannot)g(b)r(e)304
616 y(compressed)f(as)i(e\013ectiv)n(ely)h(as)f(sequen)n(tially)g(rep)r
(etitiv)n(e)f(data)h(suc)n(h)g(as)g(natural-language)304
682 y(text,)c(source)g(co)r(de,)g(and)h(graphical)f(bitmaps.)370
748 y(By)22 b(analogy)f(with)g(the)f(case)g(for)h(sequen)n(tial)g(data)
f(compression,)h(it)g(seems)g(reasonable)304 815 y(to)h(exp)r(ect)f
(that)g(more)h(adv)m(anced)f(tec)n(hniques)h(b)r(e)g(b)r(etter)e(able)i
(to)h(compress)e(terms)h(with)304 881 y(non-sequen)n(tial)15
b(structure.)21 b(In)c(this)f(thesis,)g(w)n(e)h(presen)n(t)e(tec)n
(hniques)g(for)h(compressing)e(\014rst)304 948 y(order)j(terms.)1130
1061 y(2.)31 b Ft(O)n(ver)-5 b(view)370 1160 y Fs(In)17
b(P)n(art)f(1,)h(I)h(will)g(pro)n(vide)e(the)g(mathematical)f
(foundations)g(whic)n(h)i(will)h(b)r(e)e(used)g(in)h(the)304
1227 y(rest)j(of)g(the)h(thesis,)g(including)f(de\014nitions)g(and)g
(prop)r(erties)f(relating)h(to)g(terms)g(and)g(term)304
1293 y(compression.)43 b(Op)r(erator)22 b(domains,)k(\014rst-order)d
(terms,)j(term)e(patterns,)g(substitutions,)304 1359
y(and)c(term)g(rewriting)g(are)g(standard)e(concepts)h(imp)r(ortan)n(t)
g(to)h(our)h(discussion.)31 b(Some)20 b(ad-)304 1426
y(ditional)i(de\014nitions)f(and)h(concepts)e(that)h(are)h(of)g(use)g
(in)h(this)f(thesis)f(will)j(also)e(b)r(e)g(giv)n(en.)304
1492 y(Where)f(appropriate)f(for)i(our)g(purp)r(oses,)g(prop)r
(ositions)e(relating)h(these)g(concepts)f(will)k(b)r(e)304
1559 y(pro)n(v)n(ed.)370 1625 y(In)c(P)n(art)f(2)h(of)f(this)h(thesis,)
f(I)h(will)h(study)e(the)g(general)g(problem)g(of)g(compressing)f
(terms.)304 1692 y(I)25 b(will)i(pro)n(vide)e(an)f(abstract)f(framew)n
(ork)h(in)i(whic)n(h)f(to)g(express)f(the)g(term)g(compression)304
1758 y(problem,)16 b(and)h(sho)n(w)g(ho)n(w)g(to)f(express)g(the)g
(sequen)n(tial)g(compression)f(problem)h(as)h(a)g(sp)r(ecial)304
1824 y(case.)36 b(I)22 b(will)i(argue)d(that,)h(as)g(in)h(the)e(sequen)
n(tial)h(case,)h(general)e(optimal)h(compression)e(is)304
1891 y(di\016cult,)15 b(but)f(there)f(are)g(acceptable)f(appro)n
(ximate)h(algorithms,)i(and)f(I)g(will)i(outline)e(sev)n(eral)304
1957 y(approac)n(hes)i(that)h(ma)n(y)h(b)r(e)g(practical.)370
2024 y(In)d(P)n(art)f(3,)i(I)g(will)g(sho)n(w)f(ho)n(w)g(term)f
(compression)f(tec)n(hniques)h(can)g(b)r(e)g(applied)h(to)f(a)h(prac-)
304 2090 y(tical)f(problem)f(in)h(program)f(analysis.)23
b(A)14 b(recen)n(t)e(prop)r(osed)g(system)h(for)h(mobile)g(co)r(de)e
(safet)n(y)-5 b(,)304 2156 y Fr(pr)m(o)m(of-c)m(arrying)20
b(c)m(o)m(de)g Fs([18],)c(in)n(v)n(olv)n(es)h(transmitting)12
b(programs)h(together)f(with)i(safet)n(y)g(pro)r(ofs)304
2223 y(o)n(v)n(er)h(a)h(net)n(w)n(ork.)23 b(Because)14
b(pro)r(ofs)f(in)j(a)f(curren)n(t)f(implemen)n(tation)g(can)g(b)r(e)h
(signi\014can)n(tly)g(\(in)304 2289 y(principle,)22 b(exp)r(onen)n
(tially\))d(larger)i(than)f(the)g(co)r(de)g(they)g(accompan)n(y)-5
b(,)22 b(it)f(is)h(imp)r(ortan)n(t)d(to)304 2356 y(\014nd)d(more)h
(e\016cien)n(t)f(represen)n(tations)e(of)j(the)f(pro)r(ofs.)23
b(Pro)r(ofs)15 b(in)i(this)g(system)g(are)f(terms)g(in)304
2422 y(an)k(appropriate)e(op)r(erator)g(domain,)j(so)f(they)g(can)g(b)r
(e)g(compressed)e(using)i(the)g(tec)n(hniques)304 2489
y(from)e(P)n(art)f(2)h(on)g(the)f(corresp)r(onding)e(terms.)p
eop
%%Page: 3 5
3 4 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)569
b(3)304 283 y Fy(P)n(art)21 b Fs(1.)31 b Fy(De\014nitions)22
b(and)g(prop)r(erties)1018 383 y Fs(1.)31 b Ft(Basic)20
b(Definitions)304 483 y Fs(1.1.)32 b Fy(Preliminaries.)304
579 y(De\014nition)21 b(1.1.1.)26 b Fs(W)-5 b(e)23 b(write)e
Fq(A)1064 559 y Fp(n)1116 579 y Fs(for)h(the)g(set)f(of)h(all)h
Fq(n)p Fs(-tuples)f(of)g(elemen)n(ts)g(of)g Fq(A)p Fs(,)h(and)304
645 y Fq(A)346 625 y Fu(\()p Fo(N)p Fu(\))429 645 y Fs(for)514
604 y Fn(S)560 662 y Fp(i)p Fm(\025)p Fu(0)644 645 y
Fq(A)686 625 y Fp(i)704 645 y Fs(.)370 716 y(The)18 b
Fr(p)m(ower)j(set)j Fs(of)18 b Fq(S)s Fs(,)h(denoted)d
Fl(P)5 b Fs(\()p Fq(S)s Fs(\),)18 b(is)h(the)e(set)h(of)g(all)h
(subsets)d(of)i Fq(S)s Fs(.)370 782 y(W)-5 b(e)19 b(will)i(use)d(the)g
(standard)f(notation)g(for)i(functions,)f(so)h(that)e
Fq(f)23 b Fs(:)17 b Fq(A)f Fl(!)i Fq(B)k Fs(means)c(that)304
849 y Fq(f)29 b Fl(\022)24 b Fq(A)15 b Fl(\002)h Fq(B)26
b Fs(and)d(for)f(ev)n(ery)h Fq(x)h Fl(2)f Fq(A)g Fs(there)f(is)h
(exactly)g(one)f Fq(y)k Fs(suc)n(h)c(that)g(\()p Fq(x;)9
b(y)r Fs(\))23 b Fl(2)h Fq(f)6 b Fs(,)25 b(or)304 915
y(alternately)18 b Fq(f)6 b Fs(\()p Fq(x)p Fs(\))18 b(=)i
Fq(y)r Fs(.)32 b(Giv)n(en)21 b(a)g(function)e Fq(f)25
b Fs(:)20 b Fq(A)f Fl(!)g Fq(B)s Fs(,)j(w)n(e)e(will)i(denote)d(the)h
(domain)g(of)304 982 y Fq(f)27 b Fs(b)n(y)21 b Fq(D)r(om)p
Fs(\()p Fq(f)6 b Fs(\))17 b(=)j Fq(A)g Fs(and)g(the)g(range)f(of)i
Fq(f)27 b Fs(b)n(y)21 b Fq(Rng)r Fs(\()p Fq(f)6 b Fs(\))19
b Fl(\022)h Fq(B)s Fs(.)32 b(A)20 b(partial)g(function)f(whic)n(h)304
1048 y(maps)f(a)g(subset)e(of)i Fq(A)g Fs(to)g Fq(B)j
Fs(is)e(denoted)d Fq(f)21 b Fs(:)16 b Fq(D)r(om)p Fs(\()p
Fq(f)6 b Fs(\))13 b Fl(\022)j Fq(A)f Fl(!)g Fq(B)s Fs(.)370
1114 y(W)-5 b(e)24 b(will)h(denote)d(the)h(n)n(um)n(b)r(er)g(of)g
(times)g(an)h(elemen)n(t)f Fq(e)g Fs(o)r(ccurs)f(in)i(a)g(m)n(ultiset)f
Fq(M)30 b Fs(b)n(y)304 1181 y Fq(\026)337 1189 y Fp(M)386
1181 y Fs(\()p Fq(e)p Fs(\),)d(with)e Fq(\026)664 1189
y Fp(M)713 1181 y Fs(\()p Fq(e)p Fs(\))h(=)h(0)f(meaning)e
Fq(e)33 b(=)-34 b Fl(2)27 b Fq(M)6 b Fs(.)46 b(W)-5 b(e)25
b(will)i(not)d(distinguish)h(notationally)304 1247 y(b)r(et)n(w)n(een)
19 b(sets)h(and)g(m)n(ultisets,)i(instead)e(considering)f(sets)h(to)g
(b)r(e)g(m)n(ultisets)h(suc)n(h)f(that)g(for)304 1314
y(an)n(y)e(set)g Fq(S)j Fs(and)d(p)r(oten)n(tial)f(elemen)n(t)g
Fq(e)p Fs(,)i Fq(\026)1189 1322 y Fp(M)1238 1314 y Fs(\()p
Fq(e)p Fs(\))14 b Fl(2)i(f)p Fs(0)p Fq(;)9 b Fs(1)p Fl(g)p
Fs(.)370 1380 y(W)-5 b(e)20 b(will)h(mak)n(e)f(use)f(of)g
Fr(r)m(o)m(ote)m(d)24 b(tr)m(e)m(es)i Fq(T)8 b Fs(,)21
b(consisting)d(of)h(a)h(set)f Fq(V)32 b Fs(\(or)19 b
Fq(V)13 b Fs(\()p Fq(T)8 b Fs(\)\))18 b(of)i Fr(vertic)m(es)p
Fs(,)304 1447 y Fq(E)f Fs(\(or)d Fq(E)s Fs(\()p Fq(T)8
b Fs(\)\))15 b Fl(\022)g Fq(V)21 b Fl(\002)8 b Fq(V)29
b Fs(of)16 b Fr(e)m(dges)p Fs(,)j(and)d(a)g(distinguished)f(no)r(de)f
Fq(r)k Fs(\(or)e Fq(r)r Fs(\()p Fq(T)8 b Fs(\)\))14 b
Fl(2)i Fq(V)29 b Fs(called)15 b(the)304 1513 y Fr(r)m(o)m(ot)p
Fs(.)26 b(If)19 b Fq(v)h Fs(is)f(the)e(paren)n(t)g(of)h
Fq(w)h Fs(then)e(the)h(edge)f(connecting)f(them)h(is)i(\()p
Fq(v)r(;)9 b(w)q Fs(\).)304 1609 y(1.2.)32 b Fy(T)-5
b(erms.)304 1705 y(De\014nition)21 b(1.2.1.)26 b Fs(An)19
b Fr(op)m(er)m(ator)24 b(domain)h Fs(is)19 b(a)g(pair)g(\(\006)p
Fq(;)9 b(\036)p Fs(\))20 b(where)e Fq(\036)f Fs(:)g(\006)g
Fl(!)h Fk(N)h Fs(is)h(called)304 1771 y(the)k Fr(r)m(ank)k(function)p
Fs(.)48 b(An)25 b(elemen)n(t)g Fq(\033)k Fl(2)f Fs(\006)e(is)g(called)f
(an)g Fr(op)m(er)m(ator)p Fs(.)50 b(An)25 b(op)r(erator)e
Fq(\033)k Fs(is)304 1838 y(said)g(to)f(ha)n(v)n(e)h Fr(r)m(ank)35
b Fq(n)30 b Fs(=)g Fq(\036)p Fs(\()p Fq(\033)r Fs(\).)50
b(W)-5 b(e)27 b(de\014ne)f(the)g(partition)g Fl(f)p Fs(\006)1775
1846 y Fp(n)1835 1838 y Fl(j)k Fq(n)g Fl(\025)g Fs(0)p
Fl(g)d Fs(of)g(\006)g(b)n(y)304 1904 y(\006)344 1912
y Fp(n)389 1904 y Fs(=)16 b Fl(f)p Fq(\033)g Fl(2)g Fs(\006)f
Fl(j)h Fq(\036)p Fs(\()p Fq(\033)r Fs(\))e(=)h Fq(n)p
Fl(g)p Fs(.)25 b(An)18 b(elemen)n(t)f(of)h(\006)1345
1912 y Fu(0)1388 1904 y Fs(is)h(also)f(called)g(a)g Fr(c)m(onstant)p
Fs(.)370 1970 y(W)-5 b(e)21 b(ma)n(y)h(abbreviate)d(\(\006)p
Fq(;)9 b(\036)p Fs(\))21 b(b)n(y)h(\006)f(when)f(the)g(ranks)h(of)g
(the)f(elemen)n(ts)g(of)h(\006)g(are)f(clear)304 2037
y(from)e(con)n(text)e(or)i(not)g(imp)r(ortan)n(t.)370
2103 y(Giv)n(en)28 b(a)e(set)g Fq(X)t Fs(,)j(disjoin)n(t)e(from)f
(\006,)j(called)e(the)e(set)h(of)g Fr(variables)p Fs(,)32
b Fr(\()p Fs(\006)p Fq(X)t Fr(-\)terms)f Fs(are)304 2170
y(recursiv)n(ely)18 b(de\014ned)e(as)i(follo)n(ws:)370
2248 y(1.)28 b(F)-5 b(or)18 b(eac)n(h)g Fq(x)d Fl(2)g
Fq(X)t Fs(,)k Fq(x)f Fs(is)h(a)f(term.)370 2314 y(2.)28
b(F)-5 b(or)18 b(eac)n(h)g Fq(\033)f Fl(2)e Fs(\006)806
2322 y Fu(0)831 2314 y Fs(,)k Fq(\033)h Fs(is)e(a)g(term.)370
2381 y(3.)28 b(F)-5 b(or)14 b(eac)n(h)f Fq(\033)k Fl(2)e
Fs(\006)797 2389 y Fp(n)827 2381 y Fs(,)h(for)d(eac)n(h)g
Fq(n)p Fs(-tuple)h(of)g(terms)e(\()p Fq(t)1497 2389 y
Fu(1)1522 2381 y Fq(;)d(:)g(:)g(:)20 b(;)9 b(t)1673 2389
y Fp(n)1704 2381 y Fs(\),)15 b Fq(\033)r Fs(\()p Fq(t)1832
2389 y Fu(1)1856 2381 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(t)2008
2389 y Fp(n)2038 2381 y Fs(\))14 b(is)g(a)g(term.)370
2459 y(W)-5 b(e)18 b(denote)e(the)h(set)g(of)g(all)h(\006)p
Fq(X)t Fs(-terms)g(b)n(y)g Fq(T)8 b(er)r(m)1443 2467
y Fu(\006)p Fp(X)1516 2459 y Fs(.)25 b(The)17 b(v)m(ariables)g(whic)n
(h)h(o)r(ccur)e(in)i(a)304 2525 y(term)12 b Fq(t)i Fs(are)e(called)h
(the)g Fr(fr)m(e)m(e)k(variables)j Fs(of)13 b Fq(t)p
Fs(,)i(denoted)d Fq(F)c(r)r Fs(\()p Fq(t)p Fs(\).)21
b(A)13 b(term)f(with)i(no)f(free)f(v)m(ariables)304 2591
y(is)k(called)g Fr(close)m(d)p Fs(.)26 b(The)15 b(set)g(of)h(op)r
(erators)d(whic)n(h)j(o)r(ccur)e(in)j(a)f(term)f Fq(t)h
Fs(is)g(here)f(denoted)f Fq(O)r(p)p Fs(\()p Fq(t)p Fs(\).)370
2658 y(If)i(\(\006)p Fq(;)9 b(\036)p Fs(\))15 b(is)h(an)f(op)r(erator)e
(domain)i(and)g Fq(X)k Fs(is)d(a)g(set)e(of)i(v)m(ariables,)f(then)g(w)
n(e)h(de\014ne)e(the)g Fq(X)t Fr(-)304 2724 y(invariant)j(op)m(er)m
(ator)i(domain)h Fs(to)13 b(b)r(e)g(the)g(op)r(erator)d(domain)k
(\(\006)s Fl([)s Fq(X)q(;)9 b(\036)1795 2732 y Fp(X)1838
2724 y Fs(\),)14 b(where)f Fq(\036)2078 2732 y Fp(X)2120
2724 y Fs(\()p Fq(x)p Fs(\))h(=)i(0)304 2791 y(if)i Fq(x)d
Fl(2)g Fq(X)t Fs(,)j(and)f Fq(\036)676 2799 y Fp(X)718
2791 y Fs(\()p Fq(\033)r Fs(\))d(=)i Fq(\036)p Fs(\()p
Fq(\033)r Fs(\))g(if)i Fq(\033)f Fl(2)e Fs(\006.)25 b(F)-5
b(or)17 b(con)n(v)n(enience)g(w)n(e)g(ma)n(y)h(refer)f(to)f(v)m
(ariables)h(in)304 2857 y(terms)g(as)h(op)r(erators)d(with)j(rank)g(0)g
(without)f(explicitly)i(app)r(ealing)d(to)i(this)g(de\014nition.)304
2953 y Fr(R)m(emark)28 b Fs(1.2.2)p Fr(.)f Fs(Note)e(that)g(v)m
(ariables)h(in)g(terms)g(as)g(w)n(e)g(ha)n(v)n(e)h(de\014ned)e(them)g
(ma)n(y)i(only)304 3019 y(app)r(ear)18 b(as)j(op)r(erands;)f(that)f
(is,)k(they)d(ma)n(y)h(only)g(b)r(e)f(used)g(to)g(stand)g(for)g
(constan)n(ts,)g(nev)n(er)304 3086 y(for)h(op)r(erators)e(with)j
(argumen)n(ts.)34 b(Consequen)n(tly)21 b(our)g(term)g(system)g(can)h
(represen)n(t)d(only)304 3152 y(\014rst-order)d(systems.)24
b(This)19 b(is)g(also)f(the)f(reason)g(wh)n(y)i(w)n(e)g(de\014ne)e
Fq(\036)1744 3160 y Fp(X)1786 3152 y Fs(\()p Fq(x)p Fs(\))d(=)i(0)i
(for)g Fq(x)d Fl(2)h Fq(X)t Fs(,)j(in)304 3219 y(in)n(v)m(arian)n(t)f
(op)r(erator)d(domains.)304 3315 y(1.3.)32 b Fy(P)n(atterns.)304
3411 y(De\014nition)21 b(1.3.1.)26 b Fs(Giv)n(en)21 b(a)f(\(t)n
(ypically)g(in\014nite\))f(set)g Fq(Y)33 b Fs(of)20 b(v)m(ariables)f
(distinct)g(from)h Fq(X)t Fs(,)304 3477 y(w)n(e)14 b(will)h(de\014ne)e
Fr(p)m(atterns)20 b Fs(to)14 b(b)r(e)e(\(\006)t Fl([)t
Fq(X)t Fs(\))p Fq(Y)f Fs(-terms.)23 b(The)13 b(set)g(of)h(all)g(suc)n
(h)g(patterns)d(is)k(denoted)p eop
%%Page: 4 6
4 5 bop 304 151 a Fu(4)252 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fq(P)8
b(at)397 263 y Fp(Y)397 299 y Fu(\006)p Fp(X)470 283
y Fs(.)28 b(The)19 b(elemen)n(ts)f Fy(y)f Fl(2)g Fq(Y)32
b Fs(are)18 b(called)h Fr(p)m(attern)k(variables)p Fs(,)f(and)d(the)f
(elemen)n(ts)h Fq(x)d Fl(2)h Fq(X)304 350 y Fs(are)g(called)h
Fr(term)j(variables)p Fs(.)370 416 y(A)d(pattern)e(of)i(the)f(form)h
Fy(y)h Fs(where)e Fy(y)f Fl(2)f Fq(Y)31 b Fs(is)19 b(called)f
Fr(trivial)p Fs(.)370 483 y(A)h(pattern)f(of)h(the)f(form)h
Fq(\033)j Fs(or)d Fq(\033)r Fs(\()p Fy(y)1135 491 y Fu(1)1158
483 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b Fy(y)1324 491 y Fp(n)1354
483 y Fs(\))20 b(for)e Fq(\033)i Fl(2)d Fs(\006)c Fl([)g
Fq(X)24 b Fs(and)19 b Fy(y)1903 491 y Fu(1)1927 483 y
Fq(;)9 b(:)g(:)g(:)21 b(;)9 b Fy(y)2093 491 y Fp(n)2141
483 y Fl(2)17 b Fq(Y)32 b Fs(is)304 549 y(called)18 b
Fr(atomic)p Fs(.)370 616 y(A)g(pattern)f(with)h(the)f(prop)r(ert)n(y)g
(that)g(eac)n(h)h(free)f(pattern)f(v)m(ariable)i(in)h(it)g(o)r(ccurs)d
(exactly)304 682 y(once)h(is)h(called)g Fr(line)m(ar)p
Fs(.)304 782 y Fr(R)m(emark)28 b Fs(1.3.2)p Fr(.)f Fs(The)19
b(reason)f(for)g(using)h(patterns)e(and)h(pattern)f(v)m(ariables)i(is)g
(to)g(eliminate)304 848 y(an)n(y)f(p)r(ossibilit)n(y)g(of)g(confusion)e
(b)r(et)n(w)n(een)g(v)m(ariables)h(that)g(already)g(exist)g(in)i(a)e
(term)g(w)n(e)h(wish)304 915 y(to)d(compress,)f(and)h(v)m(ariables)g(w)
n(e)g(in)n(tro)r(duce)f(in)h(the)g(pro)r(cess)e(of)i(disco)n(v)n(ering)
g(rep)r(eated)d(term)304 981 y(structures.)21 b(W)-5
b(e)19 b(will)g(later)e(sp)r(eak)g(of)h(substitutions,)e(matc)n(hing,)i
(and)g(generalization)d(only)304 1048 y(with)k(resp)r(ect)e(to)i
(patterns,)e(ev)n(en)j(though)d(these)h(concepts)f(can)i(b)r(e)g
(de\014ned)e(just)i(as)g(easily)304 1114 y(for)e(terms.)370
1180 y(The)g(relation)g(b)r(et)n(w)n(een)f(pattern)f(v)m(ariables)i
(and)f(term)h(v)m(ariables)g(is)h(similar)g(to)f(the)f(rela-)304
1247 y(tion)f(of)g(meta-v)m(ariables)f(to)h(ordinary)g(v)m(ariables)f
(in)i(an)n(y)g(mathematical)e(study)g(of)i(terms.)23
b(In)304 1313 y(our)18 b(case,)h(ho)n(w)n(ev)n(er,)i(not)d(only)i
(terms)e(but)h(also)g(term)g(forms)f(con)n(taining)h(\(pattern\))d
(meta-)304 1380 y(v)m(ariables)k(are)f(the)h(ob)s(jects)e(of)j(formal)f
(study)-5 b(.)31 b(F)-5 b(ortunately)g(,)20 b(w)n(e)h(will)h(not)d
(require)h(a)g(su\016-)304 1446 y(cien)n(tly)e(formal)g(meta-theory)e
(to)i(require)f(an)h(additional)f(la)n(y)n(er)i(of)f(meta-meta-v)m
(ariables.)304 1546 y(1.4.)32 b Fy(Substitutions.)304
1646 y(De\014nition)21 b(1.4.1.)26 b Fs(F)-5 b(or)15
b(an)f(arbitrary)f(v)m(ariable)h(set)g Fq(Z)19 b Fl(\032)c
Fq(Y)27 b Fs(and)14 b(op)r(erator)e(domain)i(\(\006)p
Fq(;)9 b(\036)p Fs(\))304 1712 y(o)n(v)n(er)20 b(v)m(ariable)g(set)f
Fq(X)t Fs(,)i(a)f Fq(Z)t Fr(-substitution)25 b Fs(is)c(a)e(function)g
Fq(s)g Fs(:)f Fq(Z)23 b Fl(!)18 b Fq(P)8 b(at)1850 1692
y Fp(Y)1850 1727 y Fu(\006)p Fp(X)1924 1712 y Fs(.)30
b(The)20 b(set)f(of)h(all)304 1780 y(p)r(ossible)d Fq(Z)t
Fs(-substitutions)f(is)j(called)f Fq(S)s(ub)1208 1759
y Fp(Z)1208 1795 y Fu(\006)p Fp(X)1281 1780 y Fs(.)370
1846 y(Giv)n(en)h(a)g(substitution)970 1936 y Fq(s)c
Fs(=)h Fl(f)p Fs(\()p Fy(z)1148 1944 y Fu(1)1172 1936
y Fq(;)9 b(p)1224 1944 y Fu(1)1249 1936 y Fs(\))p Fq(;)g(:)g(:)g(:)20
b(;)9 b Fs(\()p Fy(z)1452 1944 y Fp(n)1483 1936 y Fq(;)g(p)1535
1944 y Fp(n)1566 1936 y Fs(\))p Fl(g)p Fs(,)304 2026
y(w)n(e)18 b(will)i(also)e(use)f(the)h(notation)987 2116
y Fq(s)d Fs(=)h Fy(z)1115 2124 y Fu(1)1155 2116 y Fl(7!)g
Fq(t)1246 2124 y Fu(1)1271 2116 y Fq(;)9 b(:)g(:)g(:)20
b(;)9 b Fy(z)1430 2124 y Fp(n)1477 2116 y Fl(7!)16 b
Fq(t)1568 2124 y Fp(n)1598 2116 y Fs(.)304 2206 y(The)i
Fr(empty)j(substitution)i Fs(is)c(the)e(single)h(elemen)n(t)f
Fl(;)e(2)h Fq(S)s(ub)1581 2185 y Fm(;)1581 2223 y Fu(\006)p
Fp(X)1654 2206 y Fs(,)j(also)f(denoted)e(b)n(y)j Fl(\001)g
Fs(.)370 2273 y(F)-5 b(or)17 b(an)n(y)g Fq(Z)t Fs(-substitution)d
Fq(s)j Fs(and)f(pattern)e Fq(p)p Fs(,)k(the)d(pattern)g
Fq(p)1659 2253 y Fm(0)1691 2273 y Fs(iden)n(tical)h(to)g
Fq(p)h Fs(except)e(that)304 2339 y(ev)n(ery)21 b(free)e(pattern)g(v)m
(ariable)h Fy(y)i Fs(o)r(ccurring)c(in)k Fq(p)f Fs(has)f(b)r(een)f
(replaced)g(with)i Fq(s)p Fs(\()p Fy(y)q Fs(\))f(is)h(called)304
2406 y(the)c(result)g(of)h Fr(applying)25 b Fq(s)18 b
Fs(to)g Fq(p)p Fs(.)25 b(W)-5 b(e)18 b(also)g(denote)f(this)h(pattern)d
(b)n(y)k([)p Fq(s)p Fs(])p Fq(p)p Fs(.)370 2472 y(A)f(substitution)e
Fq(s)j Fs(is)f Fr(idemp)m(otent)27 b Fs(if)19 b([)p Fq(s)p
Fs(])p Fq(p)d Fs(=)f([)p Fq(s)p Fs(][)p Fq(s)p Fs(])p
Fq(p)20 b Fs(for)e(ev)n(ery)g Fq(p)d Fl(2)g Fq(P)8 b(at)1913
2452 y Fp(Y)1913 2487 y Fu(\006)p Fp(X)1986 2472 y Fs(.)370
2539 y(A)18 b(substitution)e(is)j Fr(minimal)25 b Fs(if)19
b(\()p Fy(y)q Fq(;)9 b Fy(y)q Fs(\))20 b Fq(=)-34 b Fl(2)15
b Fq(s)j Fs(for)g(ev)n(ery)g Fy(y)e Fl(2)f Fq(Y)e Fs(.)304
2638 y Fr(R)m(emark)28 b Fs(1.4.2)p Fr(.)f Fs(Note)17
b(that)g Fq(s)h Fs(is)h(idemp)r(oten)n(t)d(only)j(if)1038
2737 y Fq(Z)d Fl(\\)1153 2684 y Fn([)1141 2803 y Fj(z)p
Fm(2)p Fp(Z)1235 2737 y Fq(F)8 b(r)r Fs(\()p Fq(s)p Fs(\()p
Fy(z)p Fs(\)\))13 b(=)i Fl(;)p Fq(:)-1258 b Fs(\(1\))304
2879 y(An)25 b(idemp)r(oten)n(t)f(substitution)h(is)h(also)g(minimal,)k
(and)25 b(con)n(v)n(ersely)h(if)h(a)f(substitution)e(is)304
2945 y(minimal)19 b(and)e(satis\014es)g(\(1\))g(then)g(it)i(is)f(idemp)
r(oten)n(t.)23 b(So,)18 b(a)g(substitution)e(is)j(idemp)r(oten)n(t)d
(if)304 3012 y(and)h(only)i(if)g(it)f(is)h(minimal)g(and)e(\(1\))h
(holds.)304 3112 y Fy(De\014nition)j(1.4.3.)26 b Fs(An)c
Fr(invertible)30 b Fs(substitution)21 b Fq(s)i Fl(2)g
Fq(S)s(ub)1637 3091 y Fp(Z)1637 3127 y Fu(\006)p Fp(X)1733
3112 y Fs(is)g(a)g(substitution)d(whic)n(h)304 3178 y(is)27
b(also)f(a)h(bijection)e(from)h Fq(Z)31 b Fs(to)26 b
Fq(Z)t Fs(.)50 b(The)26 b(substitution)e Fq(s)1631 3158
y Fm(\000)p Fu(1)1717 3178 y Fs(is)j(called)g(the)e Fr(inverse)33
b Fs(of)304 3244 y Fq(s)p Fs(.)f(In)n(v)n(ertible)20
b(substitutions)e(are)i(also)g(called)g Fr(r)m(enamings)p
Fs(,)k(and)c(the)f(result)h(of)g(applying)h(a)304 3311
y(renaming)c(to)g(a)i(term)e(is)i(a)f Fr(r)m(enaming)25
b Fs(of)18 b(the)g(term.)304 3411 y Fr(R)m(emark)28 b
Fs(1.4.4)p Fr(.)f Fs(It)22 b(is)h(customary)d(to)i(assume)f(that)g
(appropriate)e(renamings)i(can)h(alw)n(a)n(ys)304 3477
y(b)r(e)17 b(c)n(hosen)g(to)h(a)n(v)n(oid)h(unin)n(ten)n(tional)e
(con\015icts)g(b)r(et)n(w)n(een)f(v)m(ariable)i(names)g(in)g(terms.)p
eop
%%Page: 5 7
5 6 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)569
b(5)304 283 y Fs(1.5.)32 b Fy(P)n(attern)21 b(matc)n(hing)h(and)f
(generalization.)304 385 y(De\014nition)g(1.5.1.)26 b
Fs(A)20 b(substitution)d Fq(s)j Fr(matches)26 b Fs(pattern)18
b Fq(p)i Fs(to)f(pattern)e Fq(q)22 b Fs(if)e Fq(q)f Fs(=)f([)p
Fq(s)p Fs(])p Fq(p)p Fs(.)30 b(If)304 451 y(there)16
b(is)j(suc)n(h)f(a)g(substitution,)e(w)n(e)j(sa)n(y)g
Fq(p)f Fs(matc)n(hes)f Fq(q)j Fs(under)d Fq(s)p Fs(.)370
518 y(The)i(w)n(eak)h(pattern)d(ordering)h Fl(\026)i
Fs(is)g(de\014ned)e(so)i(that)e Fq(p)g Fl(\026)f Fq(q)22
b Fs(means)d(that)f Fq(p)i Fs(matc)n(hes)e Fq(q)r Fs(,)304
584 y(for)f Fq(p;)9 b(q)18 b Fl(2)d Fq(P)8 b(at)628 564
y Fp(Y)628 599 y Fu(\006)p Fp(X)701 584 y Fs(.)25 b(Note)17
b(that)g Fl(\026)i Fs(is)f(re\015exiv)n(e)g(and)g(transitiv)n(e.)370
651 y(If)h Fq(p)c Fl(\026)h Fq(q)k Fs(and)e Fq(q)f Fl(\026)f
Fq(p)i Fs(then)f(w)n(e)i(sa)n(y)f(that)f Fq(p)f Fl(\021)g
Fq(q)r Fs(,)i(or)g Fq(p)g Fs(is)h(equiv)m(alen)n(t)f(to)g
Fq(q)r Fs(.)25 b(Observ)n(e)18 b(that)304 717 y Fl(\021)f
Fs(is)h(re\015exiv)n(e,)f(transitiv)n(e,)g(and)f(symmetric.)24
b(Observ)n(e)16 b(also)h(that)f Fq(p)f Fl(\021)h Fq(q)j
Fs(if)e(and)g(only)g(if)g(the)304 783 y(substitution)g(matc)n(hing)h
Fq(p)i Fs(to)e Fq(q)k Fs(is)d(in)n(v)n(ertible;)i(its)e(in)n(v)n(erse)g
(matc)n(hes)g Fq(q)i Fs(to)d Fq(p)p Fs(.)28 b(If)20 b
Fq(p)d Fl(\026)g Fq(q)k Fs(and)304 850 y Fq(p)15 b Fl(6\021)g
Fq(q)r Fs(,)k(then)e(w)n(e)h(write)g Fq(p)d Fl(\036)h
Fq(q)r Fs(.)370 916 y(There)k(ma)n(y)h(b)r(e)e(man)n(y)i(substitutions)
e(whic)n(h)h(matc)n(h)g(a)h(pattern)d(to)i(another.)30
b(Supp)r(ose)304 985 y(substitutions)14 b Fq(s)658 993
y Fu(1)698 985 y Fl(2)h Fq(S)s(ub)843 965 y Fp(Z)843
1000 y Fu(\006)p Fp(X)933 985 y Fs(and)h Fq(s)1065 993
y Fu(2)1105 985 y Fl(2)g Fq(S)s(ub)1251 965 y Fp(Z)1284
948 y Fi(0)1251 1000 y Fu(\006)p Fp(X)1341 985 y Fs(b)r(oth)f(matc)n(h)
g(pattern)g Fq(p)h Fs(to)g Fq(q)r Fs(.)24 b(W)-5 b(e)17
b(sa)n(y)g(that)304 1051 y Fq(s)330 1059 y Fu(1)370 1051
y Fs(is)f Fr(mor)m(e)j(gener)m(al)24 b Fs(than)14 b Fq(s)904
1059 y Fu(2)945 1051 y Fs(if)i Fq(Z)j Fl(\022)c Fq(Z)1150
1031 y Fm(0)1181 1051 y Fs(and)g(for)g(eac)n(h)g Fy(z)h
Fl(2)f Fq(Z)t Fs(,)h Fq(s)1685 1059 y Fu(1)1710 1051
y Fs(\()p Fq(z)r Fs(\))f Fl(\026)g Fq(s)1881 1059 y Fu(2)1906
1051 y Fs(\()p Fq(z)r Fs(\).)23 b(A)15 b(matc)n(hing)304
1117 y(substitution)h Fq(s)i Fs(is)h Fr(most)h(gener)m(al)27
b Fs(if)19 b(for)e(ev)n(ery)i(matc)n(hing)e(substitution)f
Fq(t)p Fs(,)j Fq(s)c Fl(\026)h Fq(t)p Fs(.)304 1219 y
Fr(R)m(emark)28 b Fs(1.5.2)p Fr(.)f Fs(Matc)n(hing)21
b(is)h(a)g(sp)r(ecial)f(case)f(of)i Fr(uni\014c)m(ation)p
Fs(,)j(the)c(problem)g(of)g(\014nding)h(a)304 1285 y(substitution)f
Fq(s)j Fs(for)f(t)n(w)n(o)h(patterns)d Fq(p)i Fs(and)g
Fq(q)j Fs(suc)n(h)d(that)f([)p Fq(s)p Fs(])p Fq(p)j Fs(=)f([)p
Fq(s)p Fs(])p Fq(q)r Fs(.)41 b(There)23 b(are)f(kno)n(wn)304
1352 y(e\016cien)n(t)15 b(algorithms)h(for)g(\014nding)f(most)h
(general)f(uni\014ers[2)o(,)i(20)o(].)25 b(Matc)n(hing)15
b(can)h(b)r(e)g(imple-)304 1418 y(men)n(ted)h(in)i Fq(O)r
Fs(\()p Fq(n)p Fs(\))e(time,)h(where)g Fq(n)g Fs(is)h(the)e(size)h(of)g
(the)f(input)h(patterns)e(or)i(terms.)304 1520 y Fr(R)m(emark)28
b Fs(1.5.3)p Fr(.)f Fs(Observ)n(e)21 b(that)e(a)i(most)g(general)e
(matc)n(hing)h(substitution)f(nev)n(er)i(con)n(tains)304
1586 y Fy(y)30 b Fl(7!)f Fy(y)f Fs(for)e(an)n(y)h Fy(y)j
Fl(2)f Fq(Y)13 b Fs(,)29 b(since)d(if)h(there)e(w)n(ere)i(suc)n(h)f(a)g
(substitution)f Fq(s)p Fs(,)k(there)c(w)n(ould)304 1652
y(b)r(e)18 b(another)e(matc)n(hing)i(substitution)e Fq(s)p
Fl(nf)p Fs(\()p Fy(y)q Fq(;)9 b Fy(y)q Fs(\))p Fl(g)p
Fs(,)17 b(and)i(this)f(substitution)f(w)n(ould)h(b)r(e)g(more)304
1719 y(general)f(than)g Fq(s)p Fs(.)25 b(Therefore,)16
b(all)j(most)e(general)g(matc)n(hing)h(substitutions)d(are)j(minimal.)
304 1820 y Fy(De\014nition)j(1.5.4.)26 b Fs(A)15 b(pattern)e
Fq(q)k Fs(is)f(a)f Fr(gener)m(alization)23 b Fs(of)15
b(patterns)e Fq(p)1823 1828 y Fu(1)1863 1820 y Fs(and)i
Fq(p)1996 1828 y Fu(2)2036 1820 y Fs(if)h(there)d(are)304
1887 y(substitutions)j Fq(s)660 1895 y Fu(1)703 1887
y Fs(and)i Fq(s)837 1895 y Fu(2)880 1887 y Fs(suc)n(h)g(that)f
Fq(p)1153 1895 y Fu(1)1193 1887 y Fs(=)e([)p Fq(s)1292
1895 y Fu(1)1317 1887 y Fs(])p Fq(q)21 b Fs(and)c Fq(p)1513
1895 y Fu(2)1553 1887 y Fs(=)f([)p Fq(s)1653 1895 y Fu(2)1678
1887 y Fs(])p Fq(q)r Fs(.)370 1953 y(P)n(atterns)i(ma)n(y)j(also)f(ha)n
(v)n(e)g(more)g(than)f(one)g(generalization.)28 b(Supp)r(ose)18
b(b)r(oth)g Fq(q)2092 1961 y Fu(1)2137 1953 y Fs(and)i
Fq(q)2272 1961 y Fu(2)304 2019 y Fs(generalize)15 b(patterns)g
Fq(p)804 2027 y Fu(1)846 2019 y Fs(and)h Fq(p)980 2027
y Fu(2)1005 2019 y Fs(.)25 b(W)-5 b(e)17 b(sa)n(y)g(that)f
Fq(q)1377 2027 y Fu(1)1419 2019 y Fs(is)i Fr(mor)m(e)i(sp)m(e)m
(ci\014c)i Fs(than)16 b Fq(q)1955 2027 y Fu(2)1997 2019
y Fs(if)i Fq(q)2072 2027 y Fu(2)2112 2019 y Fl(\036)d
Fq(q)2195 2027 y Fu(1)2220 2019 y Fs(.)24 b(If)304 2086
y(for)17 b(ev)n(ery)i(other)d(generalization)g Fq(q)r
Fs(,)j Fq(p)c Fl(\026)g Fq(q)r Fs(,)k(then)e Fq(p)h Fs(is)h
Fr(most)h(sp)m(e)m(ci\014c)p Fs(.)304 2187 y Fr(R)m(emark)28
b Fs(1.5.5)p Fr(.)f Fs(Generalization)21 b(is)h(also)g(sometimes)e
(called)i Fr(anti-uni\014c)m(ation)p Fs(,)k(since)21
b(it)h(is)304 2254 y(the)c(dual)g(op)r(eration)e(to)i(uni\014cation.)25
b(There)18 b(are)g(kno)n(wn)g(e\016cien)n(t)g(algorithms)g(for)g
(\014nding)304 2320 y(most)23 b(sp)r(eci\014c)e(an)n(ti-uni\014ers)i
([2,)h(17)o(].)41 b(Generalization)22 b(is)i Fq(O)r Fs(\()p
Fq(n)1697 2300 y Fu(2)1721 2320 y Fs(\))g(if)g Fq(n)g
Fs(is)f(the)g(size)g(of)g(the)304 2386 y(input)17 b(patterns.)304
2488 y(1.6.)32 b Fy(Substitution)21 b(matc)n(hing)h(and)g
(generalization.)304 2589 y(De\014nition)f(1.6.1.)26
b Fs(The)21 b Fr(c)m(omp)m(osition)29 b Fs(of)22 b(substitution)d
Fq(s)j Fl(2)f Fq(S)s(ub)1782 2569 y Fp(Z)1782 2605 y
Fu(\006)p Fp(X)1877 2589 y Fs(with)h(substitution)304
2662 y Fq(t)15 b Fl(2)g Fq(S)s(ub)484 2642 y Fp(Z)517
2625 y Fi(0)484 2677 y Fu(\006)p Fp(X)558 2662 y Fs(,)j(is)h(the)e
(substitution)g Fq(s)12 b Fl(\016)g Fq(t)j Fl(2)g Fq(S)s(ub)1309
2642 y Fp(Z)s Fm([)p Fp(Z)1405 2625 y Fi(0)1309 2677
y Fu(\006)p Fp(X)1441 2662 y Fs(de\014ned)h(so)i(that)854
2806 y(\()p Fq(s)12 b Fl(\016)g Fq(t)p Fs(\)\()p Fy(y)q
Fs(\))h(=)1147 2712 y Fn(\()1191 2768 y Fs([)p Fq(s)p
Fs(]\()p Fq(t)p Fs(\()p Fy(y)q Fs(\)\))54 b(if)19 b Fy(y)d
Fl(2)f Fq(Z)1639 2748 y Fm(0)1191 2848 y Fq(s)p Fs(\()p
Fy(y)q Fs(\))148 b(if)19 b Fy(y)d Fl(2)f Fq(Z)t Fl(n)p
Fq(Z)1709 2828 y Fm(0)1724 2848 y Fq(:)370 2946 y Fs(A)h(substitution)e
Fq(t)i Fr(matches)23 b Fq(s)1011 2954 y Fu(1)1052 2946
y Fs(to)15 b Fq(s)1143 2954 y Fu(2)1185 2946 y Fs(if)h
Fq(t)8 b Fl(\016)g Fq(s)1323 2954 y Fu(1)1363 2946 y
Fs(=)15 b Fq(s)1447 2954 y Fu(2)1472 2946 y Fs(.)25 b(If)16
b Fq(s)1591 2954 y Fu(1)1632 2946 y Fs(and)f Fq(s)1763
2954 y Fu(2)1804 2946 y Fs(matc)n(h)h(then)f(w)n(e)h(write)304
3012 y Fq(s)330 3020 y Fu(1)370 3012 y Fl(\026)f Fq(s)454
3020 y Fu(2)479 3012 y Fs(.)370 3079 y(If)20 b Fq(s)e
Fl(\026)f Fq(t)j Fs(and)f Fq(t)f Fl(\026)g Fq(s)i Fs(then)e(w)n(e)i
(write)f Fq(s)f Fl(\021)f Fq(t)p Fs(,)k(or)e Fq(s)h Fs(is)g(equiv)m
(alen)n(t)f(to)g Fq(t)p Fs(.)30 b(Again)18 b(note)h(that)304
3145 y(then)e(the)g(matc)n(hing)h(substitutions)e(are)i(in)n(v)n
(ertible)g(and)g(in)n(v)n(erses)h(of)f(eac)n(h)f(other.)24
b(Observ)n(e)304 3211 y(that)14 b Fl(\001)i Fs(is)g(an)g(in)n(v)n
(ertible)g(substitution)d(whic)n(h)j(is)g(its)g(o)n(wn)f(in)n(v)n(erse)
h(and)f(that)f(ev)n(ery)i(in)n(v)n(ertible)304 3278 y(substitution)g
Fq(s)j Fs(satis\014es)e Fq(s)e Fl(\021)h(\001)p Fs(,)j(since)f
Fl(\001)e(\026)g Fq(s)i Fs(\()p Fq(s)12 b Fl(\016)g(\001)k
Fs(=)g Fq(s)p Fs(\))i(and)g Fq(s)d Fl(\026)h(\001)j Fs(\()p
Fq(s)1826 3258 y Fm(\000)p Fu(1)1897 3278 y Fl(\016)12
b Fq(s)k Fs(=)f Fl(\001)p Fs(\).)26 b(W)-5 b(e)18 b(will)304
3344 y(therefore)d(write)j Fq(s)d Fl(\021)h(\001)i Fs(for)g(\\)p
Fq(s)g Fs(is)h(in)n(v)n(ertible".)370 3411 y(W)-5 b(e)19
b(also)f(de\014ne)f(the)h(concepts)e(of)j Fr(mor)m(e)i(gener)m(al)27
b Fs(and)18 b Fr(most)j(gener)m(al)27 b Fs(matc)n(hing)18
b(substi-)304 3477 y(tutions)f(analogously)g(to)g(the)h(de\014nitions)f
(for)g(pattern)f(matc)n(hing.)p eop
%%Page: 6 8
6 7 bop 304 151 a Fu(6)252 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)370 283 y Fs(A)e(substitution)e
Fq(t)j Fs(is)g(a)f Fr(gener)m(alization)26 b Fs(of)18
b(t)n(w)n(o)g(substitutions)e Fq(s)1758 291 y Fu(1)1802
283 y Fs(and)h Fq(s)1935 291 y Fu(2)1979 283 y Fs(under)g(substi-)304
350 y(tutions)g Fq(u)524 358 y Fu(1)567 350 y Fs(and)g
Fq(u)706 358 y Fu(2)749 350 y Fs(if)i Fq(s)826 358 y
Fu(1)866 350 y Fs(=)c Fq(u)956 358 y Fu(1)993 350 y Fl(\016)d
Fq(t)19 b Fs(and)e Fq(s)1205 358 y Fu(2)1245 350 y Fs(=)f
Fq(u)1336 358 y Fu(2)1373 350 y Fl(\016)c Fq(t)p Fs(.)370
416 y Fr(Mor)m(e)20 b(sp)m(e)m(ci\014c)h Fs(and)c Fr(most)i(sp)m(e)m
(ci\014c)j Fs(generalizations)14 b(of)j(substitutions)d(are)i
(de\014ned)f(anal-)304 483 y(ogously)i(to)h(the)f(concepts)f(for)i
(pattern)e(generalization.)370 549 y(W)-5 b(e)13 b(sa)n(y)h(that)e
Fq(s)h Fs(is)h(more)e(general)g(\(or)g(more)h(sp)r(eci\014c\))e(than)h
Fq(t)h Fs(if)h Fq(s)h Fl(\036)h Fq(t)d Fs(\(or)g Fq(t)i
Fl(\036)g Fq(s)p Fs(\).)23 b(Observ)n(e)304 616 y(that)18
b(the)h(concept)f(\\more)g(general")g(de\014ned)h(here)f(is)i(the)f
(same)g(as)h(that)e(of)i(Section)e(1.5)i(if)304 682 y(restricted)15
b(to)j(matc)n(hing)f(substitutions.)964 795 y(2.)31 b
Ft(Additional)20 b(Concepts)370 895 y Fs(Here)c(w)n(e)i(in)n(tro)r
(duce)d(some)i(less)g(familiar)g(ideas)g(that)f(extend)g(the)g(basic)h
(ideas)g(discussed)304 961 y(ab)r(o)n(v)n(e)h(in)i(w)n(a)n(ys)g(that)e
(will)i(pro)n(v)n(e)f(helpful)g(to)g(our)f(discussion.)27
b(Sp)r(eci\014cally)-5 b(,)19 b(w)n(e)g(will)h(in)n(tro-)304
1028 y(duce)i(analogoues)f(to)h(patterns)f(and)h(substitutions)f(using)
i(term-p)r(osition)e(notation,)i(and)304 1094 y(sho)n(w)i(ho)n(w)g(to)f
(use)g(these)g(concepts)e(to)i(de\014ne)g(sp)r(eci\014c)f(rewritings)h
(of)h(terms.)43 b(Some)25 b(of)304 1160 y(these)16 b(ideas)i(are)g(dra)
n(wn)f(from)h([4,)h(3].)304 1260 y(2.1.)32 b Fy(T)-5
b(erm)21 b(p)r(ositions)g(and)h(replacemen)n(ts.)304
1360 y(De\014nition)f(2.1.1.)26 b Fs(W)-5 b(e)26 b(de\014ne)e(a)h(set)g
Fq(P)8 b(os)24 b Fs(of)i Fr(term)i(p)m(ositions)p Fs(.)47
b(The)25 b(set)g(of)g(p)r(ositions)304 1426 y(presen)n(t)18
b(in)i(a)g(term)e Fq(t)i Fs(is)g(denoted)e Fq(P)8 b(os)p
Fs(\()p Fq(t)p Fs(\).)28 b(W)-5 b(e)19 b(also)h(de\014ne)e(functions)g
Fq(oper)h Fs(:)f Fq(T)8 b(er)r(m)2167 1434 y Fu(\006)p
Fp(X)2253 1426 y Fl(\002)304 1493 y Fq(P)g(os)14 b Fl(!)i
Fs(\006)8 b Fl([)g Fq(X)21 b Fs(and)15 b Fq(subter)r(m)f
Fs(:)h Fq(T)8 b(er)r(m)1141 1501 y Fu(\006)p Fp(X)1222
1493 y Fl(\002)g Fq(P)g(os)15 b Fl(!)g Fq(T)8 b(er)r(m)1597
1501 y Fu(\006)p Fp(X)1686 1493 y Fs(suc)n(h)16 b(that)f
Fq(oper)r Fs(\()p Fq(t;)9 b(p)p Fs(\))15 b(is)h(the)304
1559 y(op)r(erand)g(or)j(v)m(ariable)g(that)e(o)r(ccupies)g(p)r
(osition)h Fq(p)h Fs(in)h Fq(t)f Fs(and)f Fq(subter)r(m)p
Fs(\()p Fq(t;)9 b(p)p Fs(\))17 b(is)j(the)e(subterm)304
1625 y(starting)e(at)i(p)r(osition)f Fq(p)h Fs(in)h Fq(t)p
Fs(.)370 1692 y(P)n(ositions)14 b(ma)n(y)h(b)r(e)f(represen)n(ted)d(as)
j(sequences)f(of)h(nonzero)e(in)n(tegers)i(\(in)g(Dew)n(ey)h(decimal)
304 1758 y(notation\),)20 b(with)h(the)f(empt)n(y)h(sequence)e
(denoting)g(the)h(ro)r(ot)g(p)r(osition,)h(and)f(the)g(sequence)304
1825 y(\()p Fq(i)345 1833 y Fu(1)369 1825 y Fq(;)9 b(:)g(:)g(:)21
b(;)9 b(i)520 1833 y Fp(n)551 1825 y Fs(\))21 b(denoting)e(the)i(p)r
(osition)f(found)g(b)n(y)i(follo)n(wing)g(the)e Fq(i)1729
1833 y Fp(j)1753 1825 y Fs(th)h(subp)r(osition)e(of)i(eac)n(h)304
1891 y(p)r(osition)c(starting)f(at)i(the)f(ro)r(ot.)370
1958 y(The)h(relation)g Fl(\024)731 1966 y Fp(P)768 1958
y Fs(=)e Fl(f)p Fs(\()p Fq(l)q(;)9 b(m)p Fs(\))15 b Fl(j)h
Fq(l)k Fs(is)e(a)g(pre\014x)g(of)g Fq(m)o Fl(g)h Fs(is)g(an)g(ordering)
e(on)h Fq(P)8 b(os)p Fs(.)25 b(The)19 b(strict)304 2024
y(relation)e Fq(<)550 2032 y Fp(P)605 2024 y Fs(is)i(de\014ned)e(so)g
(that)g(if)i Fq(l)d(<)1166 2032 y Fp(P)1218 2024 y Fq(m)i
Fs(then)g Fq(l)e Fl(6)p Fs(=)f Fq(m)j Fs(and)g Fq(l)e
Fl(\024)1754 2032 y Fp(P)1806 2024 y Fq(m)p Fs(.)370
2090 y(F)-5 b(or)18 b(con)n(v)n(enience,)g(w)n(e)g(will)i(refer)d(to)g
Fq(oper)r Fs(\()p Fq(t;)9 b Fs(\(\)\))16 b(as)i(the)g(ro)r(ot)e(op)r
(erator)f(of)j Fq(t)p Fs(.)304 2190 y Fy(Example)j(2.1.2.)26
b Fs(Consider)18 b(the)h(term)g Fq(t)f Fs(=)g Fq(\033)r
Fs(\()p Fq(\015)s Fs(\()p Fq(a;)9 b(b)p Fs(\))p Fq(;)g(c)p
Fs(\).)28 b(The)19 b(p)r(osition)g(\(\))g(denotes)e(the)304
2256 y(en)n(tire)12 b(term;)i(\(1\))f(denotes)e Fq(\015)s
Fs(\()p Fq(a;)e(b)p Fs(\),)14 b(\(2\))e(denotes)f Fq(c)p
Fs(,)k(and)d(\(1)p Fq(;)d Fs(2\))k(denotes)e Fq(b)p Fs(.)23
b(The)12 b(set)h Fq(P)8 b(os)p Fs(\()p Fq(t)p Fs(\))13
b(=)304 2323 y Fl(f)p Fs(\(\))p Fq(:)p Fs(\(1\))p Fq(;)c
Fs(\(1)p Fq(;)g Fs(1\))p Fq(;)g Fs(\(1)p Fq(;)g Fs(2\))p
Fq(;)g Fs(\(2\))p Fl(g)p Fs(.)304 2423 y Fy(De\014nition)21
b(2.1.3.)26 b Fs(Giv)n(en)h(a)e(term)g Fq(s)g Fs(and)g(p)r(osition)f
Fq(p)i Fs(in)f(term)g Fq(t)p Fs(,)j(the)c(term)h(iden)n(tical)304
2489 y(to)c Fq(t)i Fs(except)d(that)h(the)g(subterm)g(of)h
Fq(t)g Fs(at)g Fq(p)g Fs(is)g(replaced)f(b)n(y)h Fq(s)h
Fs(is)f(denoted)e Fl(h)p Fq(s)p Fl(i)2021 2506 y Fp(p)2047
2489 y Fq(t)p Fs(.)36 b(A)22 b(term)304 2557 y Fq(u)h
Fs(iden)n(tical)h(to)f Fq(t)h Fs(ev)n(erywhere)e(except)g(p)r(ossibly)h
(at)h(or)f(b)r(elo)n(w)g Fq(p)h Fs(is)g(called)f(a)h
Fr(c)m(ontext)31 b Fs(for)304 2624 y(replacing)17 b(the)g(subterm)g(at)
g Fq(p)i Fs(in)f Fq(t)p Fs(.)304 2723 y Fy(Example)j(2.1.4.)26
b Fs(Consider)21 b(again)i Fq(t)g Fs(=)g Fq(\033)r Fs(\()p
Fq(\015)s Fs(\()p Fq(a;)9 b(b)p Fs(\))p Fq(;)g(c)p Fs(\),)23
b(and)f(also)h Fq(u)g Fs(=)g Fq(\015)s Fs(\()p Fq(x;)9
b(y)r Fs(\))22 b(and)g Fq(v)j Fs(=)304 2790 y Fq(\033)r
Fs(\()p Fq(d;)9 b(c)p Fs(\).)22 b(W)-5 b(e)13 b(then)f(ha)n(v)n(e)i
Fl(h)p Fq(u)p Fl(i)905 2806 y Fu(\(1)p Fp(;)p Fu(2\))999
2790 y Fq(t)i Fs(=)f Fq(\033)r Fs(\()p Fq(\015)s Fs(\()p
Fq(a;)9 b(\015)s Fs(\()p Fq(x;)g(y)r Fs(\)\))p Fq(;)g(c)p
Fs(\))i(and)i Fl(h)p Fq(u)p Fl(i)1698 2806 y Fu(\(1\))1757
2790 y Fq(t)i Fs(=)h Fq(\033)r Fs(\()p Fq(\015)s Fs(\()p
Fq(x;)9 b(y)r Fs(\))p Fq(;)g(c)p Fs(\).)21 b(Also,)304
2863 y Fq(v)f Fs(is)f(a)f(con)n(text)f(for)g(the)h(latter)e(replacemen)
n(t)h(at)g(\(1\))g(in)i Fq(t)p Fs(.)25 b(Note)17 b(that)g
Fl(h)p Fq(u)p Fl(i)1899 2880 y Fu(\(1\))1959 2863 y Fq(v)g
Fs(=)e Fl(h)p Fq(u)p Fl(i)2136 2880 y Fu(\(1\))2196 2863
y Fq(t)p Fs(.)304 2966 y Fr(R)m(emark)28 b Fs(2.1.5)p
Fr(.)f Fs(If)22 b Fq(u)g Fs(is)g(a)g(con)n(text)e(for)h(a)h(replacemen)
n(t)e(at)h Fq(p)h Fs(in)g Fq(t)p Fs(,)h(then)e(for)g(an)n(y)h(term)f
Fq(s)p Fs(,)304 3033 y Fl(h)p Fq(s)p Fl(i)373 3049 y
Fp(p)398 3033 y Fq(u)15 b Fs(=)h Fl(h)p Fq(s)p Fl(i)573
3049 y Fp(p)598 3033 y Fq(t)p Fs(.)304 3134 y(2.2.)32
b Fy(T)-5 b(erm)21 b(Rewriting)g(Systems.)304 3234 y(De\014nition)g
(2.2.1.)26 b Fs(A)18 b Fr(r)m(ewrite)k(r)m(elation)j
Fs(is)18 b(a)g(relation)g Fl(!)g Fs(o)n(v)n(er)h Fq(P)8
b(at)1820 3214 y Fp(Y)1820 3249 y Fu(\006)p Fp(X)1911
3234 y Fs(whic)n(h)19 b(is:)370 3319 y(1.)28 b(closed)17
b(under)g(substitution:)23 b(if)18 b Fq(q)g Fl(!)d Fq(r)20
b Fs(then)d([)p Fq(s)p Fs(])p Fq(q)h Fl(!)e Fs([)p Fq(s)p
Fs(])p Fq(r)r Fs(,)j(for)f(an)n(y)g Fq(s)d Fl(2)h Fq(S)s(ub)2088
3293 y Fp(Z)s Fm(\022)p Fp(Y)2088 3335 y Fu(\006)p Fp(X)2193
3319 y Fs(.)370 3386 y(2.)28 b(closed)e(under)f(con)n(text)h
(replacemen)n(t:)40 b(if)27 b Fq(q)32 b Fl(!)e Fq(r)e
Fs(then)e Fl(h)p Fq(u)p Fl(i)1796 3402 y Fp(p)1821 3386
y Fq(q)32 b Fl(!)e(h)p Fq(u)p Fl(i)2038 3402 y Fp(p)2063
3386 y Fq(r)f Fs(for)d(an)n(y)441 3462 y Fq(u)15 b Fl(2)g
Fq(P)8 b(at)633 3442 y Fp(Y)633 3477 y Fu(\006)p Fp(X)725
3462 y Fs(and)17 b Fq(p)f Fl(2)f Fq(P)8 b(os)p Fs(\()p
Fq(u)p Fs(\).)p eop
%%Page: 7 9
7 8 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)569
b(7)304 283 y Fy(De\014nition)21 b(2.2.2.)26 b Fs(A)17
b Fr(r)m(ewrite)j(system)i Fs(is)17 b(a)g(relation)f
Fq(R)h Fs(o)n(v)n(er)g Fq(P)8 b(at)1774 263 y Fp(Y)1774
299 y Fu(\006)p Fp(X)1865 283 y Fs(suc)n(h)16 b(that)g(for)g(eac)n(h)
304 350 y(\()p Fq(p;)9 b(q)r Fs(\))26 b Fl(2)g Fq(R)p
Fs(,)i Fq(F)8 b(r)r Fs(\()p Fq(q)r Fs(\))24 b Fl(\022)i
Fq(F)8 b(r)r Fs(\()p Fq(p)p Fs(\).)43 b(The)25 b(rewrite)e(relation)h
Fl(!)1617 358 y Fp(R)1679 350 y Fs(is)h(the)f Fl(\022)p
Fs(-minimal)j(rewrite)304 416 y(relation)17 b(con)n(taining)g
Fq(R)p Fs(.)25 b(T)-5 b(erm)19 b Fq(s)f Fs(is)h(said)f(to)f
Fr(r)m(ewrite)25 b Fs(to)17 b Fq(t)i Fs(if)g Fq(s)c Fl(!)1729
424 y Fp(R)1781 416 y Fq(t)p Fs(.)304 526 y Fy(De\014nition)21
b(2.2.3.)26 b Fs(A)13 b(rewrite)f(system)g Fq(R)i Fs(is)g
Fr(terminating)20 b Fs(if)14 b(there)e(is)h(no)g(in\014nite)f(sequence)
304 592 y(of)18 b(terms)f Fq(t)541 600 y Fp(i)578 592
y Fs(\()p Fq(i)e Fl(2)g Fk(N)p Fs(\))j(with)g Fq(t)912
600 y Fu(0)952 592 y Fl(!)1007 600 y Fp(R)1059 592 y
Fq(t)1079 600 y Fu(1)1120 592 y Fl(!)1175 600 y Fp(R)1227
592 y Fq(t)1247 600 y Fu(2)1281 592 y Fl(\001)9 b(\001)g(\001)h
Fs(.)370 659 y(A)17 b(rewrite)e(system)i Fq(R)g Fs(is)h
Fr(c)m(on\015uent)23 b Fs(if)18 b(whenev)n(er)d Fq(t)h
Fl(!)1535 667 y Fp(R)1587 659 y Fq(u)h Fs(and)f Fq(t)f
Fl(!)1832 667 y Fp(R)1884 659 y Fq(v)r Fs(,)j(there)d(exists)i(an)304
725 y Fq(x)h Fs(suc)n(h)g(that)f Fq(u)e Fl(!)701 733
y Fp(R)753 725 y Fq(x)j Fs(and)f Fq(v)h Fl(!)1010 733
y Fp(R)1062 725 y Fq(x)p Fs(.)370 792 y(A)g(rewrite)f(system)h(is)g
Fr(c)m(omplete)26 b Fs(if)18 b(it)h(is)f(terminating)f(and)h
(con\015uen)n(t.)370 858 y(W)-5 b(e)20 b(sa)n(y)f(that)f(a)i(rewrite)e
(system)g(is)i Fr(de)m(cr)m(e)m(asing)28 b Fs(with)19
b(resp)r(ect)d(to)j Fq(f)k Fs(:)18 b Fq(T)8 b(er)r(m)2042
866 y Fu(\006)p Fp(X)2132 858 y Fl(!)17 b Fk(N)j Fs(if)304
925 y(for)d(ev)n(ery)i Fq(s;)9 b(t)19 b Fs(suc)n(h)e(that)g
Fq(s)f Fl(!)965 933 y Fp(R)1017 925 y Fq(t)p Fs(,)j Fq(f)6
b Fs(\()p Fq(t)p Fs(\))14 b Fq(<)h(f)6 b Fs(\()p Fq(s)p
Fs(\).)370 991 y(A)16 b(rewrite)e(system)h(is)h Fr(left-line)m(ar)24
b Fs(if)17 b(for)e(eac)n(h)g(\()p Fq(p;)9 b(q)r Fs(\))14
b Fl(2)i Fq(R)p Fs(,)h Fq(p)f Fs(is)g(linear.)23 b(A)16
b(rewrite)e(system)304 1057 y(is)k Fr(left-atomic)24
b Fs(if)19 b(for)f(eac)n(h)f(\()p Fq(p;)9 b(q)r Fs(\))15
b Fl(2)g Fq(R)p Fs(,)k Fq(p)g Fs(is)f(atomic.)370 1124
y(A)g(left-linear)g(rewrite)g(system)g Fq(R)h Fs(is)g
Fr(ortho)m(gonal)27 b Fs(if)19 b(no)f(left-hand)g(side)g(of)h(a)f(rule)
g(uni\014es)304 1190 y(with)c(a)g(renamed)e(non-v)m(ariable)h(subterm)g
(\(other)f(than)h(itself)t(\))h(of)g(an)n(y)g(rule's)g(left-hand)f
(side.)304 1257 y(Tw)n(o)21 b(patterns)e Fq(p)681 1265
y Fu(1)728 1257 y Fs(and)i Fq(p)867 1265 y Fu(2)913 1257
y Fr(unify)26 b Fs(if)c(there)e(is)h(a)h(substitution)d
Fq(s)j Fs(suc)n(h)f(that)f([)p Fq(s)p Fs(])p Fq(p)2062
1265 y Fu(1)2108 1257 y Fs(=)h([)p Fq(s)p Fs(])p Fq(p)2256
1265 y Fu(2)2281 1257 y Fs(.)304 1323 y(F)-5 b(ormally)g(,)23
b Fq(R)e Fs(is)g(orthogonal)e(if)i(for)f(ev)n(ery)h(rule)f
Fq(r)h Fs(=)f(\()p Fq(p;)9 b(q)r Fs(\),)21 b(for)f(ev)n(ery)h
(left-hand)f(size)g(of)h(a)304 1389 y(rule)g Fq(s)h Fs(=)g(\()p
Fq(p)581 1369 y Fm(0)596 1389 y Fq(;)9 b(q)647 1369 y
Fm(0)663 1389 y Fs(\),)23 b(for)f(ev)n(ery)g(p)r(osition)f
Fq(l)h Fl(2)g Fq(P)8 b(os)p Fs(\()p Fq(p)1422 1369 y
Fm(0)1436 1389 y Fs(\))22 b(with)g Fq(oper)r Fs(\()p
Fq(p)1768 1369 y Fm(0)1781 1389 y Fq(;)9 b(l)q Fs(\))28
b Fq(=)-34 b Fl(2)22 b Fq(X)t Fs(,)i(if)e Fq(r)i Fl(6)p
Fs(=)e Fq(r)2210 1369 y Fm(0)2247 1389 y Fs(or)304 1456
y Fq(l)16 b Fl(6)p Fs(=)f(\(\))j(then)f(for)g(ev)n(ery)i(renaming)e
Fq(t)h Fs(and)g(substitution)e Fq(s)p Fs(,)j([)p Fq(s)p
Fs(])p Fq(p)d Fl(6)p Fs(=)f([)p Fq(s)p Fs(]\([)p Fq(t)p
Fs(])p Fq(p)1885 1436 y Fm(0)1901 1456 y Fs(\).)370 1522
y(The)20 b(relation)g Fq(R)734 1502 y Fm(\000)p Fu(1)813
1522 y Fs(=)g Fl(f)p Fs(\()p Fq(q)r(;)9 b(p)p Fs(\))18
b Fl(j)i Fs(\()p Fq(p;)9 b(q)r Fs(\))19 b Fl(2)g Fq(R)p
Fl(g)j Fs(is)f(the)f Fr(r)m(everse)27 b Fs(of)20 b Fq(R)p
Fs(.)33 b(W)-5 b(e)21 b(denote)e Fl(!)2208 1533 y Fp(R)2241
1522 y Fi(\000)p Fh(1)304 1589 y Fs(b)n(y)g Fl( )436
1597 y Fp(R)472 1589 y Fs(.)25 b(A)18 b(rewrite)f(system)h
Fq(R)h Fs(is)f Fr(r)m(eversible)26 b Fs(if)18 b Fq(R)1400
1569 y Fm(\000)p Fu(1)1479 1589 y Fs(is)g(a)h(rewrite)d(system.)370
1655 y(W)-5 b(e)20 b(sa)n(y)g(that)f(a)h(rewrite)e(system)h
Fq(R)i Fs(is)f Fr(or)m(der)m(able)28 b Fs(if)20 b(there)e(is)j(an)e
(ordering)f(of)i(the)f(rules)304 1722 y(of)g Fq(R)i Fs(suc)n(h)e(that)f
(for)h(eac)n(h)g Fq(i)p Fs(,)i(ev)n(ery)f(op)r(erator)c(o)r(ccurring)i
(in)i(the)e Fq(i)p Fs(th)i(rule's)f(left-hand)g(side)304
1788 y(o)r(ccurs)d(only)i(in)h(that)e(pattern)f(and)h(in)i(the)e(righ)n
(t-hand)h(sides)f(of)h(later)g(rules.)370 1854 y(If)f
Fq(t)e Fl(!)514 1862 y Fp(R)566 1854 y Fq(u)i Fs(implies)h
Fq(t)d Fs(=)g Fq(u)i Fs(then)f Fq(t)h Fs(is)g(in)g Fq(R)p
Fr(-normal)j(form)p Fs(.)25 b(If)17 b Fq(s)f Fl(!)1778
1862 y Fp(R)1830 1854 y Fq(t)h Fs(and)f Fq(t)h Fs(is)g(in)g(normal)304
1921 y(form)h(then)f Fq(t)h Fs(is)h(a)f Fq(R)p Fs(-normal)g(form)g
(\(or)g(normalization\))e(of)i Fq(s)p Fs(.)304 2030 y
Fy(Lemma)j(2.2.4.)27 b Fr(A)21 b(r)m(ewrite)i(system)e
Fq(R)g Fr(is)g(r)m(eversible)j(if)d(and)h(only)f(if)g
Fq(F)8 b(r)r Fs(\()p Fq(p)p Fs(\))15 b(=)j Fq(F)8 b(r)r
Fs(\()p Fq(q)r Fs(\))19 b Fr(for)304 2106 y(e)m(ach)i
Fs(\()p Fq(p;)9 b(q)r Fs(\))15 b Fl(2)g Fq(R)p Fr(,)20
b(and)h(if)f Fq(R)g Fr(is)f(r)m(eversible)k(then)e Fq(R)1390
2086 y Fm(\000)p Fu(1)1470 2106 y Fr(is)e(r)m(eversible)k(and)d
Fq(R)1923 2086 y Fm(\000)p Fu(1)1983 2075 y Fm(\000)p
Fu(1)2058 2106 y Fs(=)15 b Fq(R)p Fr(.)304 2216 y(Pr)m(o)m(of.)28
b Fs(T)-5 b(rivial.)p 2256 2216 3 38 v 2259 2181 34 3
v 2259 2216 V 2291 2216 3 38 v 304 2341 a Fy(Lemma)21
b(2.2.5.)27 b Fr(De)m(cr)m(e)m(asing)22 b(systems)e(ar)m(e)h
(terminating.)304 2450 y(Pr)m(o)m(of.)28 b Fs(If)19 b(there)d(w)n(ere)i
(a)g(system)g(decreasing)e(with)i(resp)r(ect)d(to)j(some)g
Fq(f)24 b Fs(con)n(taining)17 b(a)i(non-)304 2517 y(terminating)14
b(deriv)m(ation)g Fq(t)880 2525 y Fu(0)921 2517 y Fl(!)976
2525 y Fp(R)1028 2517 y Fq(t)1048 2525 y Fp(i)1081 2517
y Fl(!)1136 2525 y Fp(R)1188 2517 y Fl(\001)9 b(\001)g(\001)i
Fs(,)17 b(then)e Fq(f)6 b Fs(\()p Fq(t)1493 2525 y Fu(0)1517
2517 y Fs(\))15 b Fl(\025)h Fq(f)6 b Fs(\()p Fq(t)1688
2525 y Fu(1)1712 2517 y Fs(\))15 b Fl(\025)g(\001)9 b(\001)g(\001)27
b Fs(w)n(ould)16 b(constitute)304 2583 y(an)i(in\014nite)f(decreasing)f
(sequence)h(of)h Fk(N)p Fs(.)p 2256 2583 V 2259 2548
34 3 v 2259 2583 V 2291 2583 3 38 v 304 2708 a Fy(Lemma)j(2.2.6.)27
b Fr(If)c(a)h(r)m(ewrite)i(system)d Fq(R)h Fr(is)f(left-atomic)j(and)f
(left-line)m(ar,)h(and)e(its)g(rules)304 2775 y(have)d(distinct)g
(left-hand)h(r)m(o)m(ot)f(op)m(er)m(ators)i(\(that)d(is,)g(no)g(two)g
(left-hand)i(sides)942 2882 y Fq(\033)r Fs(\()p Fy(y)1032
2890 y Fu(1)1056 2882 y Fq(;)9 b(:)g(:)g(:)20 b(;)9 b
Fy(y)1221 2890 y Fp(n)1252 2882 y Fs(\))p Fr(,)19 b Fq(\033)1344
2859 y Fm(0)1359 2882 y Fs(\()p Fy(z)1409 2890 y Fu(1)1434
2882 y Fq(;)9 b(:)g(:)g(:)20 b(;)9 b Fy(z)1593 2890 y
Fp(m)1636 2882 y Fs(\))304 2989 y Fr(ar)m(e)21 b(such)f(that)h
Fq(\033)c Fs(=)e Fq(\033)778 2969 y Fm(0)793 2989 y Fr(\),)20
b(then)h Fq(R)f Fr(is)g(ortho)m(gonal.)304 3099 y(Pr)m(o)m(of.)28
b Fs(The)21 b(only)h(non)n(trivial)g(subterm)e(of)h(an)g(atomic)g(term)
f(is)i(the)f(term)g(itself.)34 b(No)21 b(t)n(w)n(o)304
3165 y(terms)15 b(with)h(di\013eren)n(t)g(ro)r(ot)e(op)r(erators)f(can)
j(b)r(e)f(uni\014ed.)23 b(Since)16 b Fq(R)h Fs(is)f(left-linear,)h(it)f
(m)n(ust)g(b)r(e)304 3232 y(orthogonal.)p 2256 3232 V
2259 3197 34 3 v 2259 3232 V 2291 3232 3 38 v 304 3357
a Fy(Theorem)22 b(2.2.7)e Fs(\(Rosen)d([23)o(]\))p Fy(.)28
b Fr(Ortho)m(gonal)23 b(systems)c(ar)m(e)i(c)m(on\015uent.)304
3466 y Fy(Lemma)g(2.2.8.)27 b Fr(Finite)20 b(or)m(der)m(e)m(d)j
(systems)d(ar)m(e)h(terminating.)p eop
%%Page: 8 10
8 9 bop 304 151 a Fu(8)252 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fr(Pr)m(o)m(of.)28
b Fs(W)-5 b(e)17 b(pro)r(ceed)c(b)n(y)k(induction)e(on)h(the)f(n)n(um)n
(b)r(er)h(of)g(rules.)24 b(Supp)r(ose)14 b(that)h(there)f(are)i(no)304
350 y(rules.)24 b(The)17 b(empt)n(y)g(system)g(is)h(ordered)d(and)i(it)
h(terminates.)k(Supp)r(ose)16 b(that)g(ev)n(ery)i(ordered)304
416 y(system)k(with)g(few)n(er)g(than)f Fq(n)i Fs(rules)f(terminates.)
35 b(Let)22 b Fq(R)h Fs(b)r(e)e(an)i(ordered)d(rewrite)h(system)304
483 y(with)e Fq(n)g Fs(rules)g(\()p Fq(r)664 491 y Fu(1)688
483 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(r)845 491 y Fp(n)875
483 y Fs(\))19 b(in)g(order.)26 b(Put)19 b(\()p Fq(p;)9
b(q)r Fs(\))15 b(=)i Fq(r)1483 491 y Fp(n)1513 483 y
Fs(.)28 b(Assume)18 b(that)g Fq(t)1903 491 y Fu(0)1944
483 y Fl(!)1999 491 y Fp(R)2052 483 y Fq(t)2072 491 y
Fu(1)2114 483 y Fl(!)2169 491 y Fp(R)2222 483 y Fl(\001)9
b(\001)g(\001)304 549 y Fs(is)26 b(an)g(in\014nite)f(deriv)m(ation)g
(of)h(a)g(pattern)e Fq(t)p Fs(.)49 b(If)26 b(there)e(w)n(ere)i
(\014nitely)g(man)n(y)h(uses)e(of)h Fq(r)2251 557 y Fp(n)2281
549 y Fs(,)304 616 y(then)19 b(for)g(some)h Fq(m)p Fs(,)h
Fq(t)764 624 y Fp(m)824 616 y Fl(!)879 624 y Fp(R)935
616 y Fq(t)955 624 y Fp(m)p Fu(+1)1071 616 y Fl(!)1126
624 y Fp(R)1182 616 y Fl(\001)9 b(\001)g(\001)31 b Fs(w)n(ould)20
b(b)r(e)f(an)h(in\014nite)g(deriv)m(ation)f(using)g(only)304
682 y(the)e(\014rst)h Fq(n)13 b Fl(\000)f Fs(1)19 b(rules,)f(con)n
(tradicting)e(the)i(induction)f(h)n(yp)r(othesis.)24
b(Therefore)17 b(there)g(m)n(ust)304 748 y(b)r(e)24 b(in\014nitely)i
(man)n(y)g(uses)f(of)g Fq(r)1004 756 y Fp(n)1060 748
y Fs(in)h(the)f(in\014nite)g(deriv)m(ation.)46 b(Ho)n(w)n(ev)n(er,)27
b(there)e(can)f(b)r(e)304 815 y(at)f(most)h(\014nitely)g(man)n(y)h(o)r
(ccurrences)20 b(of)k Fq(p)h Fs(in)f Fq(t)p Fs(,)j(and)c(no)h(more)g
(can)f(b)r(e)h(in)n(tro)r(duced)e(b)n(y)304 881 y(the)i(earlier)g
(rules)g(b)r(ecause)e(they)i(cannot)f(con)n(tain)h(an)n(y)h(of)g(the)f
(op)r(erators)d(in)k Fq(p)g Fs(in)g(their)304 948 y(righ)n(t-hand)d
(sides.)40 b(Consequen)n(tly)-5 b(,)24 b(there)e(cannot)g(b)r(e)g
(in\014nitely)i(man)n(y)g(uses)e(of)h(the)g(last)304
1014 y(rule)d(in)h(an)n(y)g(deriv)m(ation.)30 b(Therefore)18
b(it)j(is)g(imp)r(ossible)f(for)g(an)n(y)g(term)g(to)g(ha)n(v)n(e)h(an)
f(in\014nite)304 1080 y(deriv)m(ation,)i(so)f(the)g Fq(R)i
Fs(terminates.)34 b(Consequen)n(tly)21 b(b)n(y)h(induction,)g(ev)n(ery)
g(\014nite)g(ordered)304 1147 y(system)17 b(terminates.)p
2256 1147 3 38 v 2259 1112 34 3 v 2259 1147 V 2291 1147
3 38 v 304 1251 a Fy(Lemma)k(2.2.9.)27 b Fr(If)17 b Fq(R)g
Fr(is)g(c)m(omplete)i(then)f(every)h(term)f Fq(s)f Fr(has)g(exactly)h
(one)g Fq(R)p Fr(-normal)g(form.)304 1353 y(Pr)m(o)m(of.)28
b Fs(Since)20 b Fq(R)i Fs(is)g(complete,)e(it)h(terminates)e(and)i(is)g
(con\015uen)n(t.)31 b(Clearly)21 b Fq(s)g Fs(has)g(at)f(least)304
1419 y(one)c(normal)h(form)g(b)r(ecause)e Fq(R)j Fs(terminates.)k(Supp)
r(ose)15 b Fq(s)g Fl(!)1592 1427 y Fp(R)1644 1419 y Fq(t)j
Fs(and)e Fq(s)g Fl(!)1885 1427 y Fp(R)1937 1419 y Fq(u)h
Fs(and)g(b)r(oth)e(are)304 1486 y(in)h(normal)g(form.)24
b(By)17 b(con\015uence,)d(there)g(exists)i Fq(x)g Fs(suc)n(h)g(that)f
Fq(t)g Fl(!)1739 1494 y Fp(R)1791 1486 y Fq(x)i Fs(and)e
Fq(u)g Fl(!)2047 1494 y Fp(R)2099 1486 y Fq(x)p Fs(.)24
b(Then)304 1552 y Fq(t)15 b Fs(=)h Fq(x)f Fs(=)g Fq(u)p
Fs(.)p 2256 1552 V 2259 1517 34 3 v 2259 1552 V 2291
1552 3 38 v 304 1657 a Fy(Theorem)22 b(2.2.10.)92 b Fs(1.)28
b Fr(If)20 b Fq(R)g Fr(c)m(onver)m(ges)j(then)e(every)g(term)h
Fq(s)d Fr(and)i Fq(t)f Fr(with)g Fq(t)15 b Fl( )2091
1665 y Fp(R)2143 1657 y Fq(s)20 b Fr(have)441 1723 y(the)h(same)f
Fq(R)p Fr(-normal)i(form.)370 1789 y Fs(2.)28 b Fr(If)18
b Fq(s)g Fr(is)g(in)g Fq(R)p Fr(-normal)i(form)e(and)h
Fq(t)c Fl( )1243 1797 y Fp(R)1295 1789 y Fq(s)j Fr(and)h
Fq(R)g Fr(c)m(onver)m(ges)i(then)e Fq(s)f Fr(is)f(the)j
Fq(R)p Fr(-normal)441 1856 y(form)h(of)f Fq(t)p Fr(.)304
1957 y(Pr)m(o)m(of.)95 b Fs(1.)27 b(Supp)r(ose)20 b Fq(x)i
Fs(is)g(an)g Fq(R)p Fs(-normal)g(form)f(of)h Fq(t)p Fs(.)36
b(Clearly)22 b Fq(s)f Fl(!)1851 1965 y Fp(R)1909 1957
y Fq(t)h Fl(!)2006 1965 y Fp(R)2064 1957 y Fq(x)p Fs(,)h(so)e
Fq(x)h Fs(is)441 2024 y(also)e(an)f Fq(R)p Fs(-normal)i(form)f(for)f
Fq(s)p Fs(.)31 b(Because)18 b Fq(R)j Fs(con)n(v)n(erges,)e(b)n(y)i
(2.2.9)f Fq(x)g Fs(is)h(the)e(unique)441 2090 y(normal)f(form)f(for)h
(b)r(oth)f Fq(s)h Fs(and)g Fq(t)p Fs(.)370 2157 y(2.)28
b(A)18 b(corollary)f(of)h(1.)p 2256 2223 V 2259 2188
34 3 v 2259 2223 V 2291 2223 3 38 v 304 2327 a Fr(R)m(emark)28
b Fs(2.2.11)p Fr(.)f Fs(There)13 b(is,)i(of)f(course,)g(m)n(uc)n(h)g
(more)g(to)f(rewrite)g(systems)g(than)g(this,)i(but)e(w)n(e)304
2394 y(will)19 b(only)g(need)e(to)h(study)f(simple)i(rewriting)e
(systems)g(for)h(whic)n(h)g(no)g(adv)m(anced)e(discussion)304
2460 y(is)h(required.)23 b(The)17 b(ab)r(o)n(v)n(e)g(lemmas)g(su\016ce)
f(to)g(sho)n(w)h(that)f(the)g(rewrite)g(systems)g(w)n(e)i(will)g(use)
304 2527 y(to)i(enco)r(de)f(terms)g(terminate,)h(and)g(that)g(those)f
(w)n(e)i(use)g(to)f(deco)r(de)f(terms)g(con)n(v)n(erge,)i(and)304
2593 y(moreo)n(v)n(er)c(that)g(deco)r(ding)f(an)n(y)j(enco)r(ding)d(of)
i(a)g(term)g(restores)e(the)h(term.)304 2695 y(2.3.)32
b Fy(P)n(ositions)20 b(and)i(substitutions.)304 2796
y(De\014nition)f(2.3.1.)26 b Fs(Giv)n(en)c(a)f(term)f(or)h(pattern)d
Fq(t)p Fs(,)23 b(a)d Fr(\(p)m(ositional\))k(substitution)i
Fs(with)21 b(re-)304 2863 y(sp)r(ect)16 b(to)i Fq(t)g
Fs(o)n(v)n(er)h(v)m(ariable)e(set)h Fq(Z)k Fs(is)d(a)f(relation)f
Fq(s)e Fl(\022)h Fq(Z)g Fl(\002)c Fq(P)c(os)p Fs(\()p
Fq(t)p Fs(\))16 b(suc)n(h)i(that)370 2942 y(1.)28 b Fq(subter)r(m)p
Fs(\()p Fq(t;)9 b(l)q Fs(\))k(=)i Fq(subter)r(m)p Fs(\()p
Fq(t;)9 b(l)1110 2922 y Fm(0)1124 2942 y Fs(\))15 b(for)h(ev)n(ery)g
Fq(l)q(;)9 b(l)1448 2922 y Fm(0)1479 2942 y Fl(2)15 b
Fq(P)8 b(os)p Fs(\()p Fq(t)p Fs(\))14 b(and)h Fy(z)h
Fl(2)f Fq(Z)20 b Fs(with)c(\()p Fy(z)p Fq(;)9 b(l)q Fs(\))15
b Fl(2)g Fq(s)441 3009 y Fs(and)i(\()p Fy(z)p Fq(;)9
b(l)640 2989 y Fm(0)656 3009 y Fs(\))15 b Fl(2)g Fq(s)370
3075 y Fs(2.)28 b(for)18 b(ev)n(ery)g Fy(z)d Fl(2)h Fq(Z)t
Fs(,)i(there)f(exists)h(a)g Fq(l)e Fl(2)f Fq(P)8 b(os)p
Fs(\()p Fq(t)p Fs(\))17 b(suc)n(h)g(that)g(\()p Fy(z)p
Fq(;)9 b(l)q Fs(\))15 b Fl(2)h Fq(s)p Fs(.)304 3155 y(The)i(set)g(of)g
(p)r(ositional)f(substitutions)g(with)h(resp)r(ect)e(to)i
Fq(t)h Fs(o)n(v)n(er)g Fq(Z)j Fs(is)d(denoted)d Fq(P)8
b(S)s(ub)2157 3135 y Fp(Z)2157 3169 y(t)2192 3155 y Fs(.)26
b(As)304 3221 y(for)17 b(v)m(ariable)h(substitutions,)e(w)n(e)j(ma)n(y)
g(use)f(the)f(notation)998 3314 y Fq(s)e Fs(=)h Fy(z)1126
3322 y Fu(1)1166 3314 y Fl(7!)g Fq(l)1254 3322 y Fu(1)1278
3314 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b Fy(z)1438 3322 y
Fp(n)1484 3314 y Fl(7!)16 b Fq(l)1572 3322 y Fp(n)304
3407 y Fs(for)981 3477 y Fq(s)g Fs(=)f Fl(f)p Fs(\()p
Fy(z)1159 3485 y Fu(1)1183 3477 y Fq(;)9 b(l)1224 3485
y Fu(1)1249 3477 y Fs(\))p Fq(;)g(:)g(:)g(:)20 b(;)9
b Fs(\()p Fy(z)1452 3485 y Fp(n)1483 3477 y Fq(;)g(l)1524
3485 y Fp(n)1554 3477 y Fs(\))p Fl(g)p Fq(:)p eop
%%Page: 9 11
9 10 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)569
b(9)370 283 y Fs(Giv)n(en)22 b(a)f(p)r(ositional)f(substitution)e
Fq(s)i Fl(2)g Fq(P)8 b(S)s(ub)1389 263 y Fp(Z)1389 297
y(t)1445 283 y Fs(and)20 b Fy(z)g Fl(2)g Fq(Z)t Fs(,)i(the)e(set)g
Fl(f)p Fq(subter)r(m)p Fs(\()p Fq(t;)9 b(l)q Fs(\))17
b Fl(j)304 350 y Fs(\()p Fy(z)p Fq(;)9 b(l)q Fs(\))15
b Fl(2)g Fq(s)p Fl(g)j Fs(has)g(only)g(one)g(mem)n(b)r(er,)f(whic)n(h)i
(w)n(e)f(will)i(denote)c(b)n(y)j Fq(s)1732 358 y Fp(t)1751
350 y Fs(\()p Fy(z)p Fs(\).)370 416 y(The)j(result)g(of)g(applying)h(a)
f(p)r(ositional)g(substitution)e(to)i(a)h(pattern)d Fq(p)j
Fs(is)g(a)g(pattern)d Fq(p)2281 396 y Fm(0)304 483 y
Fs(iden)n(tical)13 b(to)g Fq(p)g Fs(except)f(that)g(ev)n(ery)h(o)r
(ccurrence)d(of)j(a)g(v)m(ariable)g Fy(z)j Fl(2)f Fq(Z)i
Fs(in)d Fq(p)g Fs(has)e(b)r(een)g(replaced)304 549 y(b)n(y)19
b Fq(s)407 557 y Fp(t)426 549 y Fs(\()p Fy(z)p Fs(\).)24
b(W)-5 b(e)19 b(also)f(denote)e(application)h(b)n(y)i([)p
Fq(s)p Fs(])1341 557 y Fp(t)1361 549 y Fq(p)p Fs(.)304
649 y Fy(Example)i(2.3.2.)26 b Fs(Consider)17 b Fq(t)f
Fs(=)g Fq(\033)r Fs(\()p Fq(\033)r Fs(\()p Fq(\015)s
Fs(\()p Fq(x;)9 b(a)p Fs(\))p Fq(;)g(y)r Fs(\))p Fq(;)g(\015)s
Fs(\()p Fq(x;)g(a)p Fs(\)\).)23 b(Supp)r(ose)16 b Fq(s)g
Fs(=)g Fy(y)g Fl(7!)g Fs(\(1\))p Fq(;)9 b Fy(z)16 b Fl(7!)304
716 y Fs(\(2\).)27 b(Then)19 b Fq(s)590 724 y Fp(t)609
716 y Fs(\()p Fy(y)q Fs(\))d(=)i Fq(\033)r Fs(\()p Fq(\015)s
Fs(\()p Fq(x;)9 b(a)p Fs(\))p Fq(;)g(y)r Fs(\))18 b(and)h
Fq(s)1210 724 y Fp(t)1229 716 y Fs(\()p Fy(z)p Fs(\))e(=)g
Fq(\015)s Fs(\()p Fq(x;)9 b(a)p Fs(\).)28 b(Clearly)20
b Fq(s)g Fs(is)f(a)h(v)m(alid)g(p)r(ositional)304 782
y(substitution.)370 848 y(Supp)r(ose)e Fq(s)615 828 y
Fm(0)648 848 y Fs(=)g Fy(y)g Fl(7!)g Fs(\(1)p Fq(;)9
b Fs(1\))p Fq(;)g Fy(y)18 b Fl(7!)g Fs(\(2\).)28 b(Then)19
b Fq(s)1394 856 y Fp(t)1413 848 y Fs(\()p Fy(y)q Fs(\))e(=)h
Fq(\015)s Fs(\()p Fq(x;)9 b(a)p Fs(\))19 b(is)h(w)n(ell)g(de\014ned,)f
(so)h Fq(s)2224 828 y Fm(0)2259 848 y Fs(is)304 915 y(also)e(a)g(v)m
(alid)h(p)r(ositional)e(substitution.)370 981 y(Consider)g
Fq(p)e Fs(=)h Fq(\015)s Fs(\()p Fy(y)q Fq(;)9 b Fy(z)p
Fs(\).)24 b(Then)936 1072 y([)p Fq(s)p Fs(])992 1080
y Fp(t)1012 1072 y Fq(p)15 b Fs(=)h Fq(\015)s Fs(\()p
Fq(\033)r Fs(\()p Fq(\015)s Fs(\()p Fq(x;)9 b(a)p Fs(\))p
Fq(;)g(y)r Fs(\))p Fq(;)g(\015)s Fs(\()p Fq(x;)g(a)p
Fs(\)\))304 1162 y(and)1059 1229 y([)p Fq(s)1100 1207
y Fm(0)1116 1229 y Fs(])1131 1237 y Fp(t)1151 1229 y
Fq(p)15 b Fs(=)h Fq(\015)s Fs(\()p Fq(\015)s Fs(\()p
Fq(x;)9 b(a)p Fs(\))p Fq(;)g Fy(z)p Fs(\))304 1308 y(.)304
1408 y Fy(De\014nition)21 b(2.3.3.)26 b Fs(W)-5 b(e)26
b(sa)n(y)f(that)f(a)h(pattern)e Fq(p)j Fr(matches)32
b Fs(a)25 b(term)f Fq(t)i Fs(at)e Fq(l)i Fs(if)g(there)e(is)i(a)304
1475 y(p)r(ositional)f(substitution)f Fq(s)j Fs(suc)n(h)f(that)f([)p
Fq(s)p Fs(])1252 1483 y Fp(t)1272 1475 y Fq(p)k Fs(=)g
Fq(subter)r(m)p Fs(\()p Fq(t;)9 b(l)q Fs(\).)46 b(The)26
b Fr(multiplicity)33 b Fs(of)27 b(a)304 1541 y(pattern)c(in)j(a)g(term)
f(is)h(the)f(n)n(um)n(b)r(er)g(of)g(p)r(ositions)f(in)i(the)f(term)g
(at)g(whic)n(h)h(the)f(pattern)304 1608 y(matc)n(hes)17
b(the)g(term.)370 1674 y(W)-5 b(e)15 b(also)g(sa)n(y)h(that)e(a)h
(substitution)e Fq(s)j Fr(matches)21 b Fs(a)15 b(p)r(ositional)f
(substitution)g Fq(u)h Fs(if)g(there)f(is)i(a)304 1741
y(p)r(ositional)g(substitution)f Fq(v)k Fs(suc)n(h)e(that)f([)p
Fq(v)r Fs(])1212 1749 y Fp(t)1232 1741 y Fq(s)p Fs(\()p
Fy(z)p Fs(\))f(=)h Fq(u)1436 1749 y Fp(t)1455 1741 y
Fs(\()p Fy(z)p Fs(\))h(for)f(eac)n(h)h Fy(z)f Fl(2)f
Fq(Z)t Fs(.)24 b(In)18 b(other)e(w)n(ords,)304 1807 y(if)i
(substitution)f Fq(s)h Fs(matc)n(hes)f(p)r(ositional)g(substitution)f
Fq(u)i Fs(under)f(p)r(ositional)g(substitution)f Fq(v)r
Fs(,)304 1873 y(then)h(for)h(eac)n(h)f Fy(z)i Fs(in)f(the)g(domain)f
(of)i Fq(v)r Fs(,)f Fq(u)g Fs(matc)n(hes)f Fq(s)p Fs(\()p
Fy(z)p Fs(\))h(and)g Fq(v)1683 1881 y Fp(t)1702 1873
y Fs(\()p Fy(z)p Fs(\).)304 1973 y Fy(Example)j(2.3.4.)26
b Fs(Consider)e(again)h Fq(t)h Fs(as)g(ab)r(o)n(v)n(e.)47
b(The)25 b(pattern)e Fq(p)28 b Fs(=)g Fq(\033)r Fs(\()p
Fy(y)q Fq(;)9 b Fy(z)p Fs(\))25 b(matc)n(hes)304 2040
y Fq(t)g Fs(at)g(\(\))f(under)g Fq(s)h Fs(as)g(ab)r(o)n(v)n(e,)i(and)e
(at)f(\(1\))g(under)g Fl(f)p Fs(\()p Fy(y)q Fq(;)9 b
Fs(\(1)p Fq(;)g Fs(1\)\))p Fq(;)g Fs(\()p Fy(z)p Fq(;)g
Fs(\(1)p Fq(;)g Fs(2\)\))p Fl(g)p Fs(.)43 b(The)25 b(pattern)304
2106 y Fq(p)332 2086 y Fm(0)362 2106 y Fs(=)16 b Fq(\033)r
Fs(\()p Fq(\033)r Fs(\()p Fy(y)q Fq(;)9 b(y)r Fs(\))p
Fq(;)g Fy(y)q Fs(\))16 b(matc)n(hes)h Fq(t)h Fs(under)f
Fq(s)1175 2086 y Fm(0)1209 2106 y Fs(ab)r(o)n(v)n(e.)304
2206 y(2.4.)32 b Fy(P)n(attern)21 b(o)r(ccurrences.)304
2306 y(De\014nition)g(2.4.1.)26 b Fs(A)19 b Fr(p)m(attern)j(o)m(c)m
(curr)m(enc)m(e)27 b Fs(of)18 b Fq(p)h Fs(in)g(term)f(or)g(pattern)e
Fq(t)j Fs(is)g(a)g(pair)f(\()p Fq(l)q(;)9 b(s)p Fs(\))15
b Fl(2)304 2384 y Fq(P)8 b(os)p Fs(\()p Fq(t)p Fs(\))h
Fl(\002)j Fq(P)c(S)s(ub)666 2355 y Fp(F)e(r)q Fu(\()p
Fp(p)p Fu(\))666 2397 y Fp(t)798 2384 y Fs(suc)n(h)18
b(that)e Fq(p)i Fs(matc)n(hes)f Fq(t)h Fs(at)f Fq(l)h
Fs(under)f(the)g(p)r(ositional)f(substitution)g Fq(s)p
Fs(.)304 2450 y(F)-5 b(or)20 b(a)g(giv)n(en)g(p)r(osition)f
Fq(l)i Fs(and)e(substitution)f Fq(s)p Fs(,)j(if)g(there)d(is)i(a)g
(pattern)e Fq(p)i Fs(suc)n(h)g(that)f(\()p Fq(l)q(;)9
b(s)p Fs(\))19 b(is)304 2516 y(an)f(o)r(ccurrence)d(of)k
Fq(p)g Fs(in)g Fq(t)p Fs(,)h(then)e(there)f(is)i(exactly)f(one)g(suc)n
(h)h(pattern)e(and)h(w)n(e)h(sa)n(y)g Fq(p)g Fs(is)g(the)304
2583 y(pattern)d(o)r(ccurring)f(at)j(\()p Fq(l)q(;)9
b(s)p Fs(\))18 b(in)g Fq(t)p Fs(,)h(or)f Fq(pat)1206
2591 y Fp(t)1225 2583 y Fs(\()p Fq(l)q(;)9 b(s)p Fs(\))15
b(=)g Fq(p)p Fs(.)370 2649 y(An)j(o)r(ccurrence)c(\()p
Fq(l)q(;)9 b(s)p Fs(\))18 b(is)h(said)f(to)f Fr(c)m(over)27
b Fs(the)17 b(set)h Fq(cov)r(er)r Fs(\()p Fq(l)q(;)9
b(s)p Fs(\))k Fl(\022)j Fq(P)8 b(os)17 b Fs(de\014ned)g(b)n(y)497
2740 y Fq(cov)r(er)r Fs(\()p Fq(l)q(;)9 b(s)p Fs(\))k(=)j
Fl(f)p Fq(m)e Fl(2)i Fq(P)8 b(os)14 b Fl(j)i Fq(l)g Fl(\024)1176
2748 y Fp(P)1228 2740 y Fq(m)i Fs(and)g(for)g(some)f(\()p
Fy(z)p Fq(;)9 b(n)p Fs(\))16 b Fl(2)f Fq(s)p Fs(,)k Fq(m)c(<)1990
2748 y Fp(P)2042 2740 y Fq(n)p Fl(g)370 2830 y Fs(Tw)n(o)k(distinct)e
(o)r(ccurrences)d(\()p Fq(l)1031 2838 y Fu(1)1055 2830
y Fq(;)9 b(s)1105 2838 y Fu(1)1130 2830 y Fs(\))18 b(and)g(\()p
Fq(l)1317 2838 y Fu(2)1341 2830 y Fq(;)9 b(s)1391 2838
y Fu(2)1416 2830 y Fs(\))18 b Fr(overlap)24 b Fs(if)919
2921 y Fq(cov)r(er)r Fs(\()p Fq(l)1091 2929 y Fu(1)1114
2921 y Fq(;)9 b(s)1164 2929 y Fu(1)1189 2921 y Fs(\))j
Fl(\\)g Fq(cov)r(er)r Fs(\()p Fq(l)1444 2929 y Fu(2)1467
2921 y Fq(;)d(s)1517 2929 y Fu(2)1542 2921 y Fs(\))15
b Fl(6)p Fs(=)h Fl(;)p Fq(:)304 3011 y Fs(If)i(t)n(w)n(o)h(o)r
(ccurrences)14 b(do)k(not)f(o)n(v)n(erlap,)i(they)e(are)h(called)g
Fr(indep)m(endent)p Fs(.)304 3111 y Fr(R)m(emark)28 b
Fs(2.4.2)p Fr(.)f Fs(In)n(tuitiv)n(ely)-5 b(,)26 b(a)c(pattern)f(o)r
(ccurrence)e(co)n(v)n(ers)k(the)e(set)h(of)h(p)r(ositions)e(whic)n(h)
304 3178 y(map)d(to)g(non-pattern)e(v)m(ariables)i(in)h(the)f(corresp)r
(ondenc)o(e)d(b)r(et)n(w)n(een)i(op)r(erators)e(in)k(the)f(pat-)304
3244 y(tern)f(and)g(lo)r(cations)g(in)h(the)g(term.)304
3344 y Fy(Example)j(2.4.3.)26 b Fs(Recall)e Fq(t)i Fs(=)g
Fq(\033)r Fs(\()p Fq(\033)r Fs(\()p Fq(\015)s Fs(\()p
Fq(x;)9 b(a)p Fs(\))p Fq(;)g(y)r Fs(\))p Fq(;)g(\015)s
Fs(\()p Fq(x;)g(a)p Fs(\)\).)41 b(There)23 b(are)h(t)n(w)n(o)g(o)r
(ccurrences)304 3411 y(of)h(the)f(pattern)f Fq(p)k Fs(=)g
Fq(\033)r Fs(\()p Fy(y)q Fq(;)9 b Fy(z)p Fs(\))24 b(in)i
Fq(t)p Fs(,)h(namely)f Fq(o)1355 3419 y Fu(1)1406 3411
y Fs(=)h(\(\(\))p Fq(;)9 b Fy(y)27 b Fl(7!)g Fs(\(1\))p
Fq(;)9 b Fy(z)27 b Fl(7!)g Fs(\(2\)\))d(and)h Fq(o)2202
3419 y Fu(2)2253 3411 y Fs(=)304 3477 y(\(\(1\))p Fq(;)9
b Fy(y)19 b Fl(7!)i Fs(\(1)p Fq(;)9 b Fs(1\))p Fq(;)g
Fy(z)20 b Fl(7!)g Fs(\(1)p Fq(;)9 b Fs(2\)\).)32 b(These)20
b(o)r(ccurrences)e(co)n(v)n(er)j Fl(f)p Fs(\(\))p Fl(g)e
Fs(and)i Fl(f)p Fs(\(1\))p Fl(g)e Fs(resp)r(ectiv)n(ely)-5
b(,)p eop
%%Page: 10 12
10 11 bop 304 151 a Fu(10)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(so)27
b(they)f(are)g(indep)r(enden)n(t.)49 b(There)26 b(is)h(also)g(an)g(o)r
(ccurrence)c(of)k Fq(p)1800 263 y Fm(0)1846 283 y Fs(=)j
Fq(\033)r Fs(\()p Fq(\033)r Fs(\()p Fy(y)q Fq(;)9 b(y)r
Fs(\))p Fq(;)g Fy(y)q Fs(\))25 b(at)304 350 y Fq(o)331
358 y Fu(3)371 350 y Fs(=)15 b(\(\(1\))p Fq(;)9 b Fy(y)15
b Fl(7!)h Fs(\(1)p Fq(;)9 b Fs(1\))p Fq(;)g Fy(y)15 b
Fl(7!)h Fs(\(2\)\).)21 b(This)13 b(o)r(ccurrence)d(co)n(v)n(ers)j
Fl(f)p Fs(\(\))p Fq(;)c Fs(\(1\))p Fq(;)g Fs(\(1)p Fq(;)g
Fs(2\))p Fl(g)p Fs(,)j(so)g(it)i(o)n(v)n(erlaps)304 416
y(with)k(eac)n(h)f(of)h(the)g(o)r(ccurrences)c(of)k Fq(p)p
Fs(.)304 516 y Fy(De\014nition)j(2.4.4.)26 b Fs(Tw)n(o)h(o)r
(ccurrences)22 b Fq(o)1242 524 y Fu(1)1295 516 y Fs(=)29
b(\()p Fq(l)q(;)9 b(t)p Fs(\))26 b(and)g Fq(o)1642 524
y Fu(2)1695 516 y Fs(=)j(\()p Fq(m;)9 b(u)p Fs(\))25
b(are)h(said)g(to)f(b)r(e)304 582 y Fr(adjac)m(ent)g
Fs(at)16 b Fq(m)h Fs(if)g(for)g(some)f Fy(y)q Fs(,)h(\()p
Fy(y)q Fq(;)9 b(m)p Fs(\))14 b Fl(2)i Fq(t)h Fs(and)f
Fr(joinable)23 b Fs(at)17 b Fq(m)f Fs(if)i(they)e(are)g(adjacen)n(t)f
(at)i Fq(m)304 649 y Fs(and)c Fq(pat)484 657 y Fp(t)503
649 y Fs(\()p Fq(o)552 657 y Fu(2)577 649 y Fs(\))g(matc)n(hes)g
Fq(subter)r(m)p Fs(\()p Fq(t;)c(m)1141 629 y Fm(0)1154
649 y Fs(\))14 b(for)f(eac)n(h)g(\()p Fy(y)q Fq(;)c(m)1520
629 y Fm(0)1535 649 y Fs(\))14 b Fl(2)i Fq(t)p Fs(.)23
b(The)13 b(result)g(of)h Fr(joining)i Fq(o)2209 657 y
Fu(2)2250 649 y Fr(to)304 715 y Fq(o)331 723 y Fu(1)373
715 y Fr(at)j Fq(m)d Fs(is)h(the)e(o)r(ccurrence)e(\()p
Fq(v)r(;)c Fs(\()p Fq(t)p Fl(nf)p Fs(\()p Fy(y)q Fq(;)g(m)p
Fs(\))p Fl(g)p Fs(\))f Fl([)g Fq(u)1384 695 y Fm(0)1397
715 y Fs(\))16 b(where)f Fq(u)1625 695 y Fm(0)1657 715
y Fs(is)h(a)h(p)r(ositional)e(substitution)304 782 y(iden)n(tical)h(to)
g Fq(u)h Fs(except)e(v)m(ariable)h(names)g(ha)n(v)n(e)h(b)r(een)e(c)n
(hanged)g(so)i(as)f(to)g(a)n(v)n(oid)h(con\015ict)f(with)304
848 y(those)k(in)j Fq(t)p Fs(.)36 b(W)-5 b(e)22 b(assume)g(that)e(some)
i(systematic)e(pro)r(cedure)f(for)j(renaming)f(v)m(ariables)g(is)304
914 y(used)c(so)h(that)f(the)g(result)h(of)g(joining)g(t)n(w)n(o)g(o)r
(ccurrences)c(is)19 b(alw)n(a)n(ys)g(the)e(same.)370
981 y(The)h(result)f(of)h(joining)g(is)h(also)f(denoted)e
Fq(j)s(oin)1365 989 y Fp(m)1407 981 y Fs(\()p Fq(o)1456
989 y Fu(1)1480 981 y Fq(;)9 b(o)1531 989 y Fu(2)1556
981 y Fs(\).)304 1080 y Fy(Example)21 b(2.4.5.)26 b Fs(Consider)e(o)r
(ccurrences)d Fq(o)1312 1088 y Fu(1)1362 1080 y Fs(and)j
Fq(o)1503 1088 y Fu(2)1553 1080 y Fs(ab)r(o)n(v)n(e.)44
b(These)24 b(o)r(ccurrences)d(are)304 1147 y(adjacen)n(t)c(and)i
(joinable)f(at)h(\(1\),)g(and)f Fq(j)s(oin)1231 1157
y Fu(\(1\))1291 1147 y Fs(\()p Fq(o)1340 1155 y Fu(1)1364
1147 y Fq(;)9 b(o)1415 1155 y Fu(2)1440 1147 y Fs(\))17
b(=)g(\(\(\))p Fq(;)9 b Fy(y)1664 1127 y Fm(0)1695 1147
y Fl(7!)17 b Fs(\(1)p Fq(;)9 b Fs(1\))p Fq(;)g Fy(z)1943
1127 y Fm(0)1976 1147 y Fl(7!)17 b Fs(\(1)p Fq(;)9 b
Fs(2\))p Fq(;)g Fy(z)17 b Fl(7!)304 1214 y Fs(\(2\)\).)25
b(Note)17 b(that)h(the)g(v)m(ariables)g(from)g Fq(o)1177
1222 y Fu(2)1221 1214 y Fs(ha)n(v)n(e)h(b)r(een)e(renamed)h(to)g(a)n(v)
n(oid)i(con\015icting)d(with)304 1280 y(the)g(v)m(ariables)h(of)g
Fq(o)719 1288 y Fu(1)743 1280 y Fs(.)304 1380 y Fr(R)m(emark)28
b Fs(2.4.6)p Fr(.)f Fs(If)20 b Fq(o)757 1388 y Fu(1)802
1380 y Fs(and)f Fq(o)938 1388 y Fu(2)983 1380 y Fs(are)g(adjacen)n(t)f
(at)i Fq(m)g Fs(and)f(are)g(o)r(ccurrences)d(of)k Fq(p)g
Fs(and)f Fq(q)j Fs(in)e Fq(t)304 1446 y Fs(resp)r(ectiv)n(ely)15
b(then)h(they)h(are)f(joinable.)24 b(Because)15 b Fq(o)1410
1454 y Fu(1)1450 1446 y Fs(=)h(\()p Fq(l)q(;)9 b(t)p
Fs(\))16 b(is)i(an)f(o)r(ccurrence)c(of)k Fq(p)g Fs(in)g
Fq(t)p Fs(,)h(it)304 1512 y(matc)n(hes)12 b Fq(t)i Fs(at)f
Fq(l)q Fs(.)23 b(Supp)r(ose)12 b(\()p Fy(y)q Fq(;)d(m)p
Fs(\))14 b Fl(2)h Fq(s)p Fs(.)23 b(Then)13 b(for)g(an)n(y)h(other)e(p)r
(osition)h Fq(m)1877 1492 y Fm(0)1906 1512 y Fs(with)g(\()p
Fy(y)q Fq(;)c(m)2157 1492 y Fm(0)2172 1512 y Fs(\))15
b Fl(2)g Fq(t)p Fs(,)304 1579 y(b)n(y)22 b(the)f(de\014nition)f(of)i(o)
r(ccurrence)c(w)n(e)k(ha)n(v)n(e)g Fq(subter)r(m)p Fs(\()p
Fq(t;)9 b(m)p Fs(\))19 b(=)i Fq(subter)r(m)p Fs(\()p
Fq(t;)9 b(m)2037 1559 y Fm(0)2050 1579 y Fs(\).)35 b(Clearly)304
1645 y Fq(o)331 1653 y Fu(2)372 1645 y Fs(=)16 b(\()p
Fq(m;)9 b(u)p Fs(\))18 b(matc)n(hes)f Fq(t)i Fs(at)f
Fq(m)p Fs(,)h(so)g(it)g(also)f(matc)n(hes)g Fq(t)g Fs(at)h
Fq(m)1609 1625 y Fm(0)1643 1645 y Fs(for)f(an)n(y)h(suc)n(h)f
Fq(m)2007 1625 y Fm(0)2022 1645 y Fs(.)27 b(Therefore)304
1712 y Fq(o)331 1720 y Fu(1)374 1712 y Fs(and)17 b Fq(o)508
1720 y Fu(2)552 1712 y Fs(are)g(joinable)h(at)f Fq(m)p
Fs(.)p eop
%%Page: 11 13
11 12 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(11)304 283 y Fy(P)n(art)21 b Fs(2.)31 b Fy(T)-5 b(erm)22
b(compression)g(tec)n(hniques)370 383 y Fs(In)h(this)f(part)g(of)g(the)
g(thesis)f(w)n(e)i(will)h(consider)d(the)h(general)f(problem)h(of)g
(compressing)304 450 y(terms)e(b)n(y)i(replacing)d(rep)r(eated)g
(patterns)f(in)k(the)e(data)g(b)n(y)i(sym)n(b)r(ols)f(prede\014ned)e
(in)i(a)g(dic-)304 516 y(tionary)-5 b(.)24 b(W)-5 b(e)17
b(will)i(\014rst)d(describ)r(e)f(this)i(problem)f(formally)i(and)f(in)n
(v)n(estigate)f(its)h(complexit)n(y)304 582 y(and)f(relation)g(to)g
(sequence)f(compression.)22 b(Our)16 b(approac)n(h)f(to)i(term)e
(compression)g(w)n(orks)i(in)304 649 y(t)n(w)n(o)22 b(stages:)30
b Fr(p)m(attern)25 b(se)m(ar)m(ch)p Fs(,)g(whic)n(h)d(iden)n(ti\014es)f
(redundan)n(t)f(patterns)f(in)j(the)f(input,)h(and)304
715 y Fr(term)27 b(enc)m(o)m(ding)p Fs(,)j(whic)n(h)25
b(uses)f(a)h(rewrite)e(system)h(\(called)g(a)h Fr(dictionary)5
b Fs(\))27 b(to)d(rewrite)f(the)304 782 y(input)16 b(terms)g(to)h
(eliminate)g(redundan)n(t)e(patterns.)22 b(W)-5 b(e)17
b(will)i(giv)n(e)e(algorithms)f(for)h(complete)304 848
y(and)k(appro)n(ximate)f(pattern)f(searc)n(h)h(and)h(term)g(enco)r
(ding.)33 b(Before)20 b(doing)h(so,)h(w)n(e)g(presen)n(t)304
914 y Fr(p)m(attern)d(substitution)f(tr)m(e)m(es)p Fs(,)g(an)d
(e\016cien)n(t)g(data)f(structure)f(for)i(storing)f(sets)g(of)h
(patterns)e(and)304 981 y(disco)n(v)n(ering)20 b(shared)g(pattern)e
(structure.)31 b(P)n(attern)19 b(substitution)f(trees)i(are)g(based)g
(on)g(the)304 1047 y(substitution)c(trees)g(of)i([12,)g(11])g(used)f
(for)h(term)f(indexing)h(in)g(automatic)e(theorem)h(pro)n(v)n(ers.)873
1160 y(1.)30 b Ft(General)22 b(Term)f(Compression)304
1260 y Fs(1.1.)32 b Fy(T)-5 b(erm)21 b(Compression.)304
1360 y(De\014nition)g(1.1.1.)26 b Fs(A)18 b Fr(p)m(attern)k(dictionary)
k Fs(o)n(v)n(er)18 b(\006)1453 1340 y Fm(0)1487 1360
y Fs(is)h(a)f(rewrite)f(system)1002 1449 y Fq(D)g Fl(\022)e
Fq(P)8 b(at)1216 1427 y Fp(Y)1216 1464 y Fu(\006)1248
1453 y Fi(0)1262 1464 y Fm(;)1300 1449 y Fl(\002)k Fq(P)c(at)1448
1427 y Fp(Y)1448 1463 y Fu(\006)p Fm([)p Fu(\006)1542
1452 y Fi(0)1556 1463 y Fp(X)304 1539 y Fs(whic)n(h:)370
1617 y(1.)28 b(is)19 b(rev)n(ersible,)f(and)f(its)h(rev)n(erse)f(is)i
(decreasing)d(with)i(resp)r(ect)e(to)h(some)h(function)f
Fq(f)370 1684 y Fs(2.)28 b(is)19 b(left-atomic)e(with)h(distinct)f(ro)r
(ot)g(op)r(erators)e(from)i(\006)1635 1664 y Fm(0)370
1750 y Fs(3.)28 b(is)19 b(left-linear)370 1816 y(4.)28
b(is)19 b(\014nite)370 1883 y(5.)28 b(is)19 b(orderable)304
1983 y Fr(R)m(emark)28 b Fs(1.1.2)p Fr(.)f Fs(The)20
b(set)f(\006)917 1962 y Fm(0)953 1983 y Fs(is)h(a)g(set)f(of)h(op)r
(erators)c(disjoin)n(t)k(from)g(\006,)h(whic)n(h)f(are)f(used)g(to)304
2049 y(de\014ne)k(new,)i(atomic)f(patterns)d(in)k(the)e(dictionary)g
(whic)n(h)i(represen)n(t)d(larger,)j(redundan)n(t)304
2115 y(patterns.)304 2215 y Fy(De\014nition)c(1.1.3.)26
b Fs(A)18 b Fr(term)j(c)m(ost)g(metric)j Fs(is)18 b(a)g(function)f
Fq(M)k Fs(:)16 b Fq(T)8 b(er)r(m)1824 2223 y Fu(\006)p
Fp(X)1912 2215 y Fl(!)16 b Fk(N)p Fs(.)370 2281 y(An)g
Fr(op)m(er)m(ator)21 b(c)m(ost)e(function)j Fs(is)16
b(a)g(function)f Fq(c)g Fs(:)h(\006)8 b Fl([)g Fq(X)20
b Fl(!)c Fk(N)p Fs(.)24 b(The)16 b(term)g(cost)f(metric)g
Fq(M)2274 2289 y Fp(c)304 2348 y Fs(is)g(the)g(metric)f(de\014ned)g(so)
h(that)f Fq(M)1042 2356 y Fp(c)1064 2348 y Fs(\()p Fq(\033)r
Fs(\))g(=)i Fq(c)p Fs(\()p Fq(\033)r Fs(\))e(for)h Fq(\033)i
Fl(2)e Fs(\006)1554 2356 y Fu(0)1585 2348 y Fl([)6 b
Fq(X)t Fs(,)17 b(and)e Fq(M)1869 2356 y Fp(c)1891 2348
y Fs(\()p Fq(\033)r Fs(\()p Fq(t)1989 2356 y Fu(1)2012
2348 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(t)2164 2356 y Fp(n)2195
2348 y Fs(\)\))14 b(=)304 2414 y Fq(c)p Fs(\()p Fq(\033)r
Fs(\))9 b(+)468 2373 y Fn(P)527 2386 y Fp(n)527 2431
y(i)p Fu(=1)610 2414 y Fq(M)664 2422 y Fp(c)686 2414
y Fs(\()p Fq(t)728 2422 y Fp(i)746 2414 y Fs(\))17 b(if)h
Fq(\033)f Fl(2)e Fs(\006)976 2422 y Fp(n)1007 2414 y
Fs(.)24 b(W)-5 b(e)18 b(call)f(a)g(metric)g(based)f(on)h(an)g(op)r
(erator)d(cost)i(function)304 2481 y Fr(additive)p Fs(.)370
2547 y(A)i Fr(dictionary)k(c)m(ost)f(metric)i Fs(is)c(a)f(function)f
Fq(N)25 b Fs(whic)n(h)18 b(maps)g(pattern)e(dictionaries)g(to)i
Fk(N)p Fs(.)304 2647 y Fr(R)m(emark)28 b Fs(1.1.4)p Fr(.)f
Fs(As)d(men)n(tioned)g(ab)r(o)n(v)n(e,)i(pattern)d(dictionaries)g(are)g
(analogous)g(to)h(string)304 2713 y(dictionaries)15 b(that)h(map)h(new)
g(sym)n(b)r(ols)g(to)g(sequences)e(of)i(input)g(sym)n(b)r(ols)g(in)h
(the)e(sequen)n(tial)304 2780 y(case.)22 b(Usually)15
b(in)h(the)e(sequen)n(tial)g(case)g(the)h(goal)f(is)i(to)e(optimize)h
(the)f(size)h(of)f(the)h(dictionary)304 2846 y(and)j(compressed)f
(input,)i(that)f(is,)j(to)d(use)h(as)g(few)g(sym)n(b)r(ols)g(as)g(p)r
(ossible.)27 b(This)19 b(is)h(often)e(an)304 2912 y(appropriate)i(goal)
i(for)g(term)f(compression)g(as)h(w)n(ell,)j(but)d(there)e(migh)n(t)j
(b)r(e)f(times)g(when)g(a)304 2979 y(b)r(etter)d(goal)i(w)n(ould)h(b)r
(e)f(to)g(minimize)h(some)f(other)g(function)f(of)h(the)g(data)g
(represen)n(tation)304 3045 y(or)16 b(the)g(dictionary)-5
b(.)24 b(W)-5 b(e)17 b(will)h(express)e(our)g(algorithms)g(in)h(terms)f
(of)h(arbitrary)e(measures)h(of)304 3112 y(term)k(and)h(dictionary)f
(cost)g(instead)g(of)h(some)g(\014xed)g(concept)e(of)i(size,)h(in)g
(order)e(to)h(retain)304 3178 y(some)e(\015exibilit)n(y)-5
b(.)33 b(Most)19 b(of)h(the)f(time,)i(ho)n(w)n(ev)n(er,)g(w)n(e)g(will)
g(ha)n(v)n(e)g(additiv)n(e)f(metrics)f(suc)n(h)h(as)304
3245 y(term)d(size)h(in)h(mind.)304 3344 y Fy(Example)i(1.1.5.)26
b Fs(The)16 b(function)e Fq(M)1123 3352 y Fu(#)1179 3344
y Fs(whic)n(h)i(coun)n(ts)f(the)g(n)n(um)n(b)r(er)h(of)g(sym)n(b)r(ols)
g(o)r(ccurring)304 3411 y(in)22 b(a)g(term)g(is)h(a)f(term)f(cost)g
(metric.)36 b(It)22 b(is)h(also)f(based)f(on)h(the)f(op)r(erator)e
(cost)j(function)e Fq(c)304 3477 y Fs(whic)n(h)e(assigns)g(a)g(cost)f
(of)h(1)g(to)g(eac)n(h)f(op)r(erator,)f(constan)n(t,)g(and)i(v)m
(ariable.)p eop
%%Page: 12 14
12 13 bop 304 151 a Fu(12)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)370 283 y Fs(Similarly)-5
b(,)21 b(the)d(dictionary)f(cost)h(metric)g Fq(N)1308
291 y Fu(#)1366 283 y Fs(sums)h(the)e(n)n(um)n(b)r(er)h(of)h(sym)n(b)r
(ols)g(of)f(all)h(the)304 350 y(en)n(tries)e(in)i(the)e(dictionary)-5
b(.)304 449 y Fy(De\014nition)21 b(1.1.6.)26 b Fs(Giv)n(en)c(a)f(term)f
(cost)g(metric)g Fq(M)6 b Fs(,)22 b(dictionary)e(cost)f(metric)i
Fq(N)6 b Fs(,)22 b(and)f(a)304 516 y(m)n(ultiset)15 b(of)h(\006)p
Fq(X)t Fs(-terms)g Fl(f)p Fq(t)885 524 y Fu(1)909 516
y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(t)1061 524 y Fp(n)1092
516 y Fl(g)p Fs(,)16 b(the)f Fr(term)k(c)m(ompr)m(ession)h(pr)m(oblem)j
Fs(is)17 b(the)e(problem)g(of)304 582 y(\014nding)k(a)h(dictionary)e
Fq(D)k Fs(o)n(v)n(er)e(\006)1030 562 y Fm(0)1066 582
y Fs(and)f(a)h(m)n(ultiset)g(of)f(\006)14 b Fl([)f Fs(\006)1647
562 y Fm(0)1663 582 y Fq(X)t Fs(-terms)19 b Fl(f)p Fq(t)1935
562 y Fm(0)1935 596 y Fu(1)1960 582 y Fq(;)9 b(:)g(:)g(:)20
b(;)9 b(t)2111 562 y Fm(0)2111 596 y Fp(n)2142 582 y
Fl(g)20 b Fs(suc)n(h)304 649 y(that)d Fq(t)444 628 y
Fm(0)444 663 y Fp(i)477 649 y Fl( )532 657 y Fp(D)588
649 y Fq(t)608 657 y Fp(i)645 649 y Fs(for)h(eac)n(h)f
Fq(i)p Fs(,)i(\(1)c Fl(\024)g Fq(i)h Fl(\024)f Fq(n)p
Fs(\),)k(and)921 783 y Fq(N)6 b Fs(\()p Fq(D)r Fs(\))11
b(+)1156 714 y Fp(n)1129 731 y Fn(X)1133 848 y Fp(i)p
Fu(=1)1219 783 y Fq(M)6 b Fs(\()p Fq(t)1321 760 y Fm(0)1321
797 y Fp(i)1338 783 y Fs(\))15 b Fq(<)1460 714 y Fp(n)1433
731 y Fn(X)1438 848 y Fp(i)p Fu(=1)1523 783 y Fq(M)6
b Fs(\()p Fq(t)1625 791 y Fp(i)1642 783 y Fs(\))p Fq(:)304
921 y Fs(An)19 b Fr(optimal)27 b Fs(solution)18 b(to)h(the)g(term)f
(compression)g(problem)g(is)i(a)g(dictionary)e(and)h(a)g(set)g(of)304
988 y(enco)r(dings)d(suc)n(h)i(that)802 946 y Fn(P)861
960 y Fp(n)861 1004 y(i)p Fu(=1)945 988 y Fq(M)6 b Fs(\()p
Fq(T)1067 967 y Fm(0)1059 1002 y Fp(i)1081 988 y Fs(\))18
b(is)h(the)e(smallest)h(among)f(all)i(solutions.)304
1087 y Fr(R)m(emark)28 b Fs(1.1.7)p Fr(.)f Fs(There)22
b(are)g(three)g(parts)f(of)i(the)f(compression)f(system:)34
b(dictionary)22 b(con-)304 1153 y(struction,)16 b(enco)r(ding,)g(and)h
(deco)r(ding.)22 b(Dictionary)c(construction)c(consists)i(of)i(a)g
(searc)n(h)e(for)304 1220 y(appropriate)g(patterns)h(whic)n(h)j(are)e
(rep)r(eated)f(in)j(the)e(input.)28 b(These)18 b(patterns)f(b)r(ecome)g
(the)304 1286 y(righ)n(t)24 b(sides)g(of)g(rules)g(in)h(a)f(dictionary)
g Fq(D)r Fs(.)43 b(Enco)r(ding)22 b(corresp)r(onds)f(to)j
Fl( )1980 1294 y Fp(D)2021 1286 y Fs(-deriv)m(ation,)304
1353 y(with)f(the)f(goal)h(of)g(\014nding)g(deriv)m(ations)e(whic)n(h)j
(minimize)g(the)e Fq(M)6 b Fs(-v)m(alues)23 b(of)g(the)f(results.)304
1419 y(Deco)r(ding)16 b(corresp)r(onds)f(to)j Fl(!)974
1427 y Fp(D)1014 1419 y Fs(-normalization.)370 1485 y(Dictionary)13
b(construction)d(is)j(complex)g(and)f(will)j(b)r(e)d(studied)g(more)g
(closely)h(in)h(the)e(section)304 1552 y(on)24 b(complexit)n(y)-5
b(,)26 b(along)e(with)g(enco)r(ding.)40 b(Enco)r(ding)22
b(and)i(deco)r(ding)e(ha)n(v)n(e)j(the)e(follo)n(wing)304
1618 y(prop)r(erties:)304 1718 y Fy(Theorem)f(1.1.8.)k
Fr(Enc)m(o)m(ding)c(a)e Fs(\006)p Fq(X)t Fr(-term)h(with)f(r)m(esp)m(e)
m(ct)i(to)f(dictionary)h Fq(D)f Fr(terminates.)304 1817
y(Pr)m(o)m(of.)28 b Fs(The)13 b(relation)e Fl( )838 1825
y Fp(D)892 1817 y Fs(built)i(from)f(the)g(rev)n(erse)g(of)g(pattern)f
(dictionary)h Fq(D)i Fs(is)f(decreasing,)304 1884 y(so)18
b(is)g(guaran)n(teed)e(to)i(terminate.)p 2256 1884 3
38 v 2259 1848 34 3 v 2259 1884 V 2291 1884 3 38 v 304
1983 a Fy(Theorem)k(1.1.9.)k Fr(De)m(c)m(o)m(ding)20
b(any)d(enc)m(o)m(ding)j(of)d(a)h Fs(\006)p Fq(X)t Fr(-term)g
Fq(t)f Fr(with)h(r)m(esp)m(e)m(ct)h(to)f(dictionary)304
2050 y Fq(D)j Fr(terminates)h(and)f(pr)m(o)m(duc)m(es)g
Fq(t)p Fr(.)304 2149 y(Pr)m(o)m(of.)28 b Fs(According)21
b(to)i(Lemma)f(2.2.6)h(of)g(P)n(art)f(1,)j(pattern)c(dictionaries)g
(are)h(orthogonal,)304 2215 y(and)g(therefore)d(con\015uen)n(t)i(b)n(y)
i(Theorem)e(2.2.7)i(of)f(P)n(art)g(1.)37 b(Since)22 b(dictionaries)f
(are)g(\014nite)304 2282 y(and)j(orderable,)h(they)g(terminate.)43
b(Therefore)22 b Fq(D)27 b Fs(is)f(complete.)43 b(As)25
b(a)g(result,)h(the)e Fl(!)2256 2290 y Fp(D)304 2348
y Fs(relation)19 b(is)h(guaran)n(teed)d(to)i(terminate)f(and)i(pro)r
(duce)d(a)j(unique)f(normal)h(form.)29 b(Since)19 b(the)304
2415 y(term)j Fq(t)i Fs(cannot)e(con)n(tain)h(an)n(y)h(sym)n(b)r(ols)f
(of)h(\006)1308 2395 y Fm(0)1323 2415 y Fs(,)i(it)d(is)h(in)g
Fq(D)r Fs(-normal)f(form,)i(so)f(if)g Fq(t)2117 2395
y Fm(0)2156 2415 y Fl(!)2211 2423 y Fp(D)2276 2415 y
Fq(t)304 2481 y Fs(then)15 b(the)h Fq(D)r Fs(-normal)f(form)h(of)h
Fq(t)984 2461 y Fm(0)1016 2481 y Fs(is)g Fq(t)p Fs(.)24
b(This)17 b(pro)n(v)n(es)f(that)f(deco)r(ding)f(an)i(enco)r(ding)f(of)h
(a)g(term)304 2547 y(pro)r(duces)f(the)j(original)g(term.)p
2256 2547 V 2259 2512 34 3 v 2259 2547 V 2291 2547 3
38 v 304 2647 a Fy(Example)j(1.1.10.)26 b Fs(If)17 b(the)g(pattern)e
Fq(p)g Fs(=)h Fq(\033)r Fs(\()p Fq(\033)r Fs(\()p Fq(x;)9
b Fy(y)1424 2655 y Fu(1)1447 2647 y Fs(\))p Fq(;)g Fy(y)1527
2655 y Fu(2)1551 2647 y Fs(\))17 b(o)r(ccurs)f(man)n(y)i(times)f(in)h
(a)f(term,)304 2713 y(w)n(e)f(can)e(use)h(a)h(new)f(binary)g(op)r
(erator)e Fq(\033)1155 2693 y Fm(0)1191 2713 y Fq(=)-34
b Fl(2)15 b Fs(\006.)24 b(An)15 b(appropriate)e(dictionary)i(w)n(ould)g
(con)n(tain)304 2780 y(a)i(rewrite)g(rule)g Fq(\033)681
2760 y Fm(0)696 2780 y Fs(\()p Fy(y)752 2788 y Fu(1)776
2780 y Fq(;)9 b Fy(y)834 2788 y Fu(2)859 2780 y Fs(\))15
b Fl(!)h Fq(\033)r Fs(\()p Fq(\033)r Fs(\()p Fq(x;)9
b Fy(y)1169 2788 y Fu(1)1192 2780 y Fs(\))p Fq(;)g Fy(y)1272
2788 y Fu(2)1296 2780 y Fs(\).)25 b(Then)17 b(the)g(rewrite)f(system)h
Fq(D)2015 2760 y Fm(\000)p Fu(1)2092 2780 y Fs(could)g(b)r(e)304
2846 y(used)j(to)h(enco)r(de)f(the)g(term,)i(replacing)e(o)r
(ccurrences)e(of)j Fq(p)h Fs(with)f Fq(\033)1761 2826
y Fm(0)1776 2846 y Fs(\()p Fy(y)1832 2854 y Fu(1)1856
2846 y Fq(;)9 b Fy(y)1914 2854 y Fu(2)1939 2846 y Fs(\).)35
b(Finding)21 b(the)304 2913 y Fq(D)r Fs(-normal)15 b(form)h(of)g(an)g
(enco)r(ded)e(term)h(w)n(ould)i(replace)d(all)j(o)r(ccurrences)c(of)j
Fq(\033)1973 2893 y Fm(0)1988 2913 y Fs(\()p Fy(y)2044
2921 y Fu(1)2068 2913 y Fq(;)9 b Fy(y)2126 2921 y Fu(2)2151
2913 y Fs(\))16 b(with)304 2979 y Fq(p)p Fs(,)i(pro)r(ducing)e(the)i
(original)g(term)f(again.)304 3079 y Fr(R)m(emark)28
b Fs(1.1.11)p Fr(.)f Fs(T)-5 b(o)14 b(solv)n(e)g(the)e(term)h
(compression)f(problem)h(practically)-5 b(,)14 b(w)n(e)g(will)h(split)e
(the)304 3145 y(problem)j(in)n(to)h(t)n(w)n(o)g(phases:)23
b(searc)n(hing)15 b(for)i(patterns,)e(and)h(enco)r(ding)f(the)h(term)g
(with)h(these)304 3211 y(patterns.)k(P)n(attern)13 b(searc)n(h)h(tak)n
(es)h(a)f(set)h(of)g(terms)f(as)g(input)h(and)f(yields)i(a)f(pattern)d
(m)n(ultiset,)304 3278 y(with)22 b(m)n(ultiplicities)i(indicating)d
(the)h(n)n(um)n(b)r(er)g(of)h(o)r(ccurrences)c(seen)i(in)i(the)f(term.)
38 b(T)-5 b(erm)304 3344 y(enco)r(ding)15 b(algorithms)h(are)h(giv)n
(en)h(a)f(set)g(of)g(terms)f(and)h(a)g(pattern)f(m)n(ultiset)h(and)g
(pro)r(duce)e(a)304 3411 y(pattern)f(dictionary)h(and)h(a)g(set)f(of)h
(enco)r(ded)e(terms.)23 b(W)-5 b(e)17 b(will)g(presen)n(t)e(algorithms)
g(for)h(b)r(oth)304 3477 y(these)g(phases)h(in)i(the)e(the)h(last)f(t)n
(w)n(o)i(sections)e(of)h(P)n(art)f(2.)p eop
%%Page: 13 15
13 14 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(13)370 283 y Fs(The)22 b(algorithm)e(for)i(deco)r(ding)d(an)j(enco)r
(ded)d(term)i(using)g(a)h(dictionary)f(is)h(straigh)n(tfor-)304
350 y(w)n(ard,)c(so)g(w)n(e)h(will)g(not)e(dev)n(ote)h(an)n(y)g
(discussion)g(to)f(it.)304 443 y(1.2.)32 b Fy(Sequen)n(tial)e
(Compression.)e Fs(In)d(standard)f(sequen)n(tial)h(compression)f
(algorithms)304 510 y(data)15 b(is)i(represen)n(ted)d(as)i(a)g
(sequence)f Fq(s)h Fs(of)h(sym)n(b)r(ols)f(in)h(some)f(alphab)r(et)e
(\000.)24 b(A)17 b(sequence)d(can)304 576 y(b)r(e)19
b(represen)n(ted)e(as)j(a)g(term,)g(with)g(unary)f(op)r(erators)e
Fq(\033)1512 584 y Fp(\015)1561 576 y Fs(for)i(eac)n(h)h
Fq(\015)h Fl(2)d Fs(\000)i(and)f(a)h(constan)n(t)304
643 y Fq(\017)27 b(=)-34 b Fl(2)21 b Fs(\000.)34 b(The)21
b(constan)n(t)e Fq(\017)j Fs(represen)n(ts)d(the)i(empt)n(y)g(string,)h
(while)g(if)f Fq(s)1815 623 y Fm(0)1853 643 y Fs(represen)n(ts)e
Fq(s)h Fl(2)h Fs(\000)2256 623 y Fm(\003)2281 643 y Fs(,)304
709 y(then)11 b Fq(\033)456 717 y Fp(\015)484 709 y Fs(\()p
Fq(s)532 689 y Fm(0)547 709 y Fs(\))h(represen)n(ts)f(the)g(string)h
Fq(\015)s(s)p Fs(.)23 b(This)12 b(transformation)e(can)i(also)g(b)r(e)g
(easily)g(rev)n(ersed.)304 775 y(The)18 b(follo)n(wing)g(algorithm)f
(formalizes)h(this)g(pro)r(cedure.)304 869 y Fy(Algorithm)i(1.2.1)h
Fs(\()p Fy(trans)p Fs(\))p Fy(.)304 935 y Fs(Giv)n(en)e(alphab)r(et)d
(\000)i(of)h(sym)n(b)r(ols,)f(de\014ne)f(op)r(erator)f(domain)i(\(\006)
p Fq(;)9 b(\036)p Fs(\))18 b(so)g(that)f(\006)e(=)h Fl(f)p
Fq(\033)2138 943 y Fp(\015)2181 935 y Fl(j)g Fq(\015)i
Fl(2)304 1002 y Fs(\000)p Fl(g)11 b([)h(f)p Fq(\017)p
Fl(g)19 b Fs(where)e Fq(\017)22 b(=)-34 b Fl(2)15 b Fs(\000,)j(and)g
Fq(\036)p Fs(\()p Fq(\033)1037 1010 y Fp(\015)1064 1002
y Fs(\))d(=)h(1)i(for)g Fq(\015)g Fl(2)d Fs(\000,)j(and)g
Fq(\036)p Fs(\()p Fq(\017)p Fs(\))d(=)g(0.)370 1071 y(De\014ne)j
Fy(trans)684 1050 y Fu(\006)684 1085 y(\000)737 1071
y Fs(as)g(follo)n(ws:)370 1150 y(1.)28 b Fy(trans)583
1129 y Fu(\006)583 1164 y(\000)618 1150 y Fs(\()p Fq(e)p
Fs(\))14 b(=)h Fq(\017)k Fs(if)g Fq(e)f Fs(is)h(the)e(empt)n(y)h
(string.)370 1217 y(2.)28 b Fy(trans)583 1196 y Fu(\006)583
1231 y(\000)618 1217 y Fs(\()p Fq(\015)s(s)p Fs(\))14
b(=)h Fq(\033)824 1225 y Fp(\015)852 1217 y Fs(\()p Fy(trans)1016
1196 y Fu(\006)1016 1231 y(\000)1050 1217 y Fs(\()p Fq(s)p
Fs(\)\))i(if)i Fq(\015)f Fl(2)d Fs(\000)k(and)e Fq(s)e
Fl(2)h Fs(\000)1599 1197 y Fm(\003)1624 1217 y Fs(.)370
1298 y(De\014ne)i Fy(trans)684 1277 y Fu(\000)684 1312
y(\006)737 1298 y Fs(as)g(follo)n(ws:)370 1377 y(1.)28
b Fy(trans)583 1356 y Fu(\000)583 1391 y(\006)618 1377
y Fs(\()p Fq(\017)p Fs(\))15 b(=)g Fq(e)p Fs(,)k(where)e
Fq(e)h Fs(is)g(the)g(empt)n(y)g(string.)370 1445 y(2.)28
b Fy(trans)583 1423 y Fu(\000)583 1458 y(\006)618 1445
y Fs(\()p Fq(\033)672 1453 y Fp(\015)699 1445 y Fs(\()p
Fq(t)p Fs(\)\))14 b(=)i Fq(\015)s Fy(trans)1032 1423
y Fu(\000)1032 1458 y(\006)1066 1445 y Fs(\()p Fq(t)p
Fs(\))h(if)i Fq(t)d Fl(2)f Fq(T)8 b(er)r(m)1428 1455
y Fu(\006)p Fm(;)304 1541 y Fr(R)m(emark)28 b Fs(1.2.2)p
Fr(.)f Fs(Clearly)17 b Fy(trans)1006 1519 y Fu(\006)1006
1555 y(\000)1058 1541 y Fs(and)f Fy(trans)1306 1519 y
Fu(\000)1306 1555 y(\006)1357 1541 y Fs(are)g(in)n(v)n(erses)h
(establishing)e(a)i(bijection)e(b)r(e-)304 1607 y(t)n(w)n(een)j(\000)
496 1587 y Fm(\003)539 1607 y Fs(and)g Fq(T)8 b(er)r(m)789
1617 y Fu(\006)p Fm(;)845 1607 y Fs(.)370 1674 y(The)22
b(\014rst)e(algorithm)h(translates)f(strings)h(to)g(terms,)h(whic)n(h)g
(can)f(then)g(b)r(e)g(compressed)304 1740 y(using)j(the)f(metho)r(ds)g
(in)h(later)g(sections.)42 b(Then,)25 b(after)e(deco)r(ding)g(the)g
(compressed)f(term)304 1807 y(using)k(the)g(pattern)e(dictionary)-5
b(,)29 b(w)n(e)d(can)g(apply)h(the)f(second)f(algorithm)h(to)g(obtain)f
(the)304 1873 y(original)18 b(string.)23 b(Consequen)n(tly)-5
b(,)18 b(the)f(sequen)n(tial)h(compression)e(problem)h(is)i(a)f(sp)r
(ecial)f(case)304 1939 y(of)g(the)g(more)g(general)f(term)g
(compression)g(problem.)24 b(Also,)17 b(some)g(sequen)n(tial)g
(compression)304 2006 y(algorithms)g(migh)n(t)h(suggest)f(extensions)f
(to)i(the)f(general)g(case)g(of)h(terms.)304 2099 y(1.3.)32
b Fy(Complexit)n(y.)26 b Fs(In)e(the)f(sequen)n(tial)g(case,)h(there)e
(are)h Fq(n)i Fs(subsequences)c(of)j(length)e(1,)304
2171 y Fq(n)8 b Fl(\000)g Fs(1)15 b(of)h(length)f(2,)h(and)g(so)f(on,)i
(so)e(the)g(total)g(n)n(um)n(b)r(er)g(of)h(subsequences)d(is)1928
2145 y Fp(n)p Fu(\()p Fp(n)p Fm(\000)p Fu(1\))p 1928
2159 146 3 v 1990 2191 a(2)2081 2171 y Fs(.)24 b(W)-5
b(e)16 b(can)304 2238 y(represen)n(t)g(an)i(enco)r(ding)e(of)i(a)g
(sequence)e Fq(s)1216 2246 y Fp(n)1265 2238 y Fs(o)n(v)n(er)i(\000)g(b)
n(y)h(another)d(sequence)h Fq(e)1972 2246 y Fp(n)2020
2238 y Fs(as)h(follo)n(ws:)537 2411 y Fq(e)563 2419 y
Fp(n)608 2411 y Fs(=)667 2281 y Fn(8)667 2331 y(>)667
2347 y(<)667 2447 y(>)667 2463 y(:)716 2333 y Fq(p)77
b Fs(if)19 b(subsequence)d Fq(p)i Fs(is)h(replaced)d(starting)h(at)g
Fq(t)1799 2341 y Fp(n)716 2413 y Fl(;)77 b Fs(if)19 b
Fq(t)892 2421 y Fp(n)941 2413 y Fs(is)f(replaced)f(b)n(y)i(a)f
(subsequence)d(starting)i(b)r(efore)f Fq(n)716 2493 y(t)736
2501 y Fp(n)821 2493 y Fs(if)j Fq(t)892 2501 y Fp(n)941
2493 y Fs(is)f(not)g(replaced)304 2590 y(\(where)24 b
Fl(;)i Fs(denotes)d(an)j(arbitrary)e(un)n(used)h(sym)n(b)r(ol.\))48
b(Since)25 b(there)f(are)h(at)g(most)g Fq(O)r Fs(\()p
Fq(n)2250 2570 y Fu(2)2275 2590 y Fs(\))304 2657 y(p)r(ossible)18
b(patterns)g(for)h(replacemen)n(t)e(and)i(at)g(most)g(constan)n(t)f
Fl(j)p Fs(\000)p Fl(j)i Fs(v)m(alues)g(for)f(eac)n(h)g
Fq(t)2154 2665 y Fp(n)2184 2657 y Fs(,)h(the)304 2723
y(n)n(um)n(b)r(er)g(of)h(p)r(ossible)f(enco)r(dings)f(is)i
Fq(O)r Fs(\(\()p Fq(n)1221 2703 y Fu(2)1259 2723 y Fs(+)14
b Fl(j)p Fs(\000)p Fl(j)h Fs(+)f(1\))1503 2703 y Fp(n)1532
2723 y Fs(\))20 b(=)g Fq(O)r Fs(\()p Fq(n)1736 2703 y
Fu(2)p Fp(n)1788 2723 y Fs(\).)32 b(\(Of)21 b(course,)g(the)f
Fl(;)p Fs(s)304 2790 y(can)f(b)r(e)f(omitted)h(from)g(real)g(enco)r
(dings)f(to)h(conserv)n(e)f(space,)h(but)g(the)g(w)n(orst-case)f(n)n
(um)n(b)r(er)304 2856 y(of)g(enco)r(dings)e(and)h(dictionaries)g(is)i
(still)g(at)e(most)h(exp)r(onen)n(tial\).)370 2922 y(Consider)24
b(a)g(term)g Fq(t)819 2930 y Fp(h)872 2922 y Fs(of)g(size)g
Fq(n)h Fs(whic)n(h)g(is)g(similar)g(to)f(a)g(complete)f(binary)i(tree)e
(with)304 2989 y(heigh)n(t)f Fq(h)g Fs(in)h(whic)n(h)g(the)f(in)n
(ternal)g(no)r(des)f(are)g(lab)r(eled)h(with)g(a)h(binary)f(op)r
(erator)d(and)j(the)304 3055 y(lea)n(v)n(es)17 b(with)f(constan)n(ts.)
22 b(Supp)r(ose)14 b(that)i(the)f(n)n(um)n(b)r(er)h(of)g(p)r(ossible)g
(di\013eren)n(t)g(\(inequiv)m(alen)n(t\))304 3122 y(patterns)h(that)h
(matc)n(h)h(this)h(term)e(at)h(an)n(y)h(p)r(osition)f(is)h(giv)n(en)g
(b)n(y)g Fq(T)1758 3130 y Fp(h)1787 3122 y Fs(.)29 b(If)20
b Fq(h)d Fs(=)h(1)i(then)e(there)304 3188 y(are)c(t)n(w)n(o)i(suc)n(h)f
(patterns:)21 b Fy(y)16 b Fs(and)f Fq(t)1031 3196 y Fp(i)1049
3188 y Fs(.)24 b(Otherwise,)15 b(if)h Fq(h)f Fl(\025)h
Fs(1,)g(then)e Fq(t)1719 3196 y Fp(h)p Fu(+1)1819 3188
y Fs(=)i Fq(\013)p Fs(\()p Fq(t)1955 3196 y Fp(h)1984
3188 y Fq(;)9 b(t)2028 3168 y Fm(0)2028 3204 y Fp(h)2057
3188 y Fs(\))15 b(for)g(some)304 3255 y(terms)i Fq(t)478
3263 y Fp(h)507 3255 y Fq(;)9 b(t)551 3234 y Fm(0)551
3270 y Fp(h)599 3255 y Fs(with)18 b(heigh)n(t)g Fq(h)p
Fs(.)25 b(Assume)17 b(as)h(an)g(induction)f(h)n(yp)r(othesis)g(that)g
(the)h(n)n(um)n(b)r(er)g(of)304 3321 y(p)r(ossible)12
b(patterns)f(matc)n(hing)i(eac)n(h)f(of)h Fq(t)1155 3329
y Fp(h)1198 3321 y Fs(and)f Fq(t)1320 3301 y Fm(0)1320
3337 y Fp(h)1363 3321 y Fs(is)i Fq(T)1446 3329 y Fp(h)1475
3321 y Fs(,)h(and)d(the)h(sets)f(of)h(matc)n(hing)g(patterns)304
3387 y(are)k Fq(S)22 b Fs(and)17 b Fq(S)596 3367 y Fm(0)612
3387 y Fs(.)25 b(Then)17 b(the)h(set)f(of)h(patterns)e(that)h(can)g
(matc)n(h)h Fq(t)1669 3395 y Fp(h)p Fu(+1)1772 3387 y
Fs(at)g(an)n(y)g(p)r(osition)f(is)906 3477 y Fq(S)e Fl([)d
Fq(S)1041 3454 y Fm(0)1069 3477 y Fl([)g(f)p Fq(\013)p
Fs(\()p Fq(p;)d(q)r Fs(\))15 b Fl(j)h Fq(p)f Fl(2)h Fq(S;)9
b(q)17 b Fl(2)f Fq(S)1636 3454 y Fm(0)1651 3477 y Fl(g)p
Fq(:)p eop
%%Page: 14 16
14 15 bop 304 151 a Fu(14)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(Certainly)c(b)r(oth)g
Fq(S)21 b Fs(and)16 b Fq(S)875 263 y Fm(0)908 283 y Fs(con)n(tain)h(a)g
(trivial)g(pattern.)22 b(Without)16 b(loss)i(let)f(us)g(assume)f(that)
304 350 y(if)21 b Fq(p)e Fl(2)g Fq(S)24 b Fs(and)c Fq(q)h
Fl(2)f Fq(S)768 330 y Fm(0)804 350 y Fs(and)g Fq(p)g
Fl(\021)f Fq(q)j Fs(then)e Fq(p)f Fs(=)h Fq(q)r Fs(,)h(so)g(that)e
(only)i(inequiv)m(alen)n(t)f(patterns)e(are)304 416 y(coun)n(ted.)j
(Then)13 b(the)f(trivial)i(pattern)d Fy(y)j Fs(is)g(in)g(b)r(oth)d
Fq(S)17 b Fs(and)c Fq(S)1588 396 y Fm(0)1603 416 y Fs(.)24
b(W)-5 b(e)13 b(cannot)f(assume)g(that)g(an)n(y)304 483
y(other)k(patterns)f(are)i(in)h Fq(S)d Fl(\\)c Fq(S)956
463 y Fm(0)972 483 y Fs(,)18 b(or)f(that)g(an)n(y)h(of)g(the)e
(patterns)g(in)i Fl(f)p Fq(\013)p Fs(\()p Fq(p;)9 b(q)r
Fs(\))15 b Fl(j)g Fq(p)h Fl(2)f Fq(S;)9 b(q)18 b Fl(2)d
Fq(S)2253 463 y Fm(0)2269 483 y Fl(g)304 551 y Fs(are)d(also)h(in)h
Fq(S)j Fs(or)c Fq(S)708 531 y Fm(0)723 551 y Fs(,)i(so)e(the)g(total)f
(p)r(ossible)g(n)n(um)n(b)r(er)h(of)g(patterns)e Fq(T)1738
559 y Fp(h)p Fu(+1)1838 551 y Fs(=)16 b(\(2)p Fq(T)1979
559 y Fp(h)2009 551 y Fl(\000)r Fs(1\))r(+)r Fq(T)2183
559 y Fp(h)2213 527 y Fu(2)2253 551 y Fs(=)304 618 y(\()p
Fq(T)358 626 y Fp(h)399 618 y Fs(+)c(1\))504 598 y Fu(2)540
618 y Fl(\000)h Fs(2.)370 693 y(W)-5 b(e)16 b(can)f(pro)n(v)n(e)h(that)
e Fq(T)858 701 y Fp(h)903 693 y Fq(>)h Fs(2)989 673 y
Fu(2)1011 656 y Fg(h)p Fi(\000)p Fh(1)1095 693 y Fs(+)7
b(1)16 b(for)f(all)i Fq(h)e Fl(\025)g Fs(2:)24 b(F)-5
b(or)16 b(the)e(base)h(case)g Fq(h)g Fs(=)h(2,)g(w)n(e)g(ha)n(v)n(e)
1041 793 y Fq(T)1073 801 y Fu(2)1113 793 y Fs(=)g(7)f
Fq(>)g Fs(5)g(=)h(2)1403 770 y Fu(2)1425 753 y Fh(1)1461
793 y Fs(+)c(1)p Fq(:)304 888 y Fs(F)-5 b(or)18 b(the)f(inductiv)n(e)h
(case,)g(assume)f Fq(T)1094 896 y Fp(h)1138 888 y Fq(>)f
Fs(2)1225 868 y Fu(2)1247 851 y Fg(h)p Fi(\000)p Fh(1)1336
888 y Fs(+)c(1)19 b(for)e(some)h Fq(h)d Fl(\025)h Fs(2.)24
b(Then)815 989 y Fq(T)847 997 y Fp(h)p Fu(+1)948 989
y Fs(=)15 b(\()p Fq(T)1060 997 y Fp(h)1101 989 y Fs(+)d(1\))1206
966 y Fu(2)1243 989 y Fl(\000)g Fs(2)j Fq(>)g Fs(\(2)1449
966 y Fu(2)1471 950 y Fg(h)p Fi(\000)p Fh(1)1560 989
y Fs(+)e(2\))1666 966 y Fu(2)1702 989 y Fl(\000)f Fs(2)948
1093 y(=)j(\(2)1056 1070 y Fu(2)1078 1053 y Fg(h)p Fi(\000)p
Fh(1)1155 1093 y Fs(\))1177 1070 y Fu(2)1213 1093 y Fs(+)e(4\(2)1347
1070 y Fu(2)1369 1053 y Fg(h)p Fi(\000)p Fh(1)1445 1093
y Fs(\))f(+)g(2)g Fl(\000)g Fs(2)948 1196 y(=)j(2)1034
1174 y Fu(2)1056 1157 y Fg(h)1096 1196 y Fs(+)e(2)1180
1174 y Fu(2)1202 1157 y Fg(h)p Fi(\000)p Fh(1)1276 1174
y Fu(+2)1350 1196 y Fq(>)j Fs(2)1437 1174 y Fu(2)1459
1157 y Fg(h)1499 1196 y Fs(+)c(1)304 1306 y(b)r(ecause)j(for)i(all)i
Fq(h)c(>)g Fs(2,)k(2)864 1286 y Fu(2)886 1270 y Fg(h)p
Fi(\000)p Fh(1)960 1286 y Fu(+2)1034 1306 y Fq(>)c Fs(1.)25
b(Th)n(us)18 b(also)f Fq(T)1442 1314 y Fp(h)p Fu(+1)1543
1306 y Fq(>)e Fs(2)1629 1286 y Fu(2)1651 1270 y Fg(h)1691
1306 y Fs(+)c(1,)18 b(whic)n(h)g(completes)e(the)304
1373 y(pro)r(of.)370 1439 y(Consequen)n(tly)j(in)h(the)e(w)n(orst)h
(case)g(the)f(set)h(of)g(p)r(ossible)g(matc)n(hing)g(patterns)e(of)i(a)
g(com-)304 1512 y(plete)k(term)g(of)h(heigh)n(t)g Fq(h)g
Fs(could)g(b)r(e)f(prop)r(ortional)e(to)j(2)1543 1492
y Fu(2)1565 1475 y Fg(h)1593 1512 y Fs(.)43 b(Since)23
b(the)g(size)h Fl(j)p Fq(t)2048 1520 y Fp(h)2077 1512
y Fl(j)h Fs(of)f Fq(t)2206 1520 y Fp(h)2259 1512 y Fs(is)304
1578 y(appro)n(ximately)c(2)699 1558 y Fp(h)727 1578
y Fs(,)i(the)f(w)n(orst-case)e(n)n(um)n(b)r(er)h(of)h(matc)n(hing)f
(patterns)e(is)k(prop)r(ortional)c(to)304 1644 y Fq(O)r
Fs(\(2)398 1624 y Fp(n)427 1644 y Fs(\))h(where)e Fq(n)j
Fs(is)f(the)f(size)h(of)g(the)f(term.)26 b(On)19 b(the)f(other)g(hand,)
h(since)f(a)h(term)f(is)h(isomor-)304 1711 y(phic)i(to)f(a)i(ro)r(oted)
d(tree,)i(and)f(term)h(patterns)e(are)h(isomorphic)h(to)f(connected)f
(subtrees)g(of)304 1777 y(that)h(tree,)i(there)e(can)h(b)r(e)g(at)g
(most)g(2)1125 1757 y Fp(n)1177 1777 y Fs(di\013eren)n(t)g(patterns)e
(matc)n(hing)i(an)n(y)h(term)f(b)r(ecause)304 1844 y(there)14
b(can)h(b)r(e)g(at)g(most)g(2)841 1824 y Fp(n)887 1844
y Fs(di\013eren)n(t)g(subsets)f(\(connected)e(or)k(otherwise\))d(of)j
(v)n(ertices)f(of)g(the)304 1910 y(tree.)32 b(So)20 b(at)h(w)n(orst)f
(the)g(n)n(um)n(b)r(er)h(of)g(patterns)d(can)i(b)r(e)h
Fq(O)r Fs(\(2)1614 1890 y Fp(n)1643 1910 y Fs(\),)h(and)e(no)h(smaller)
g(b)r(ound)e(is)304 1977 y(p)r(ossible)e(b)r(ecause)f(in)i(the)g(case)f
(of)h(complete)f(binary)h(terms)f(the)g(m)n(um)n(b)r(er)h(of)g
(patterns)e(can)304 2043 y(b)r(e)h(prop)r(ortional)f(to)h(2)793
2023 y Fp(n)823 2043 y Fs(.)370 2109 y(By)k(an)g(argumen)n(t)e(similar)
i(to)f(that)f(for)h(sequen)n(tial)g(enco)r(dings)f(w)n(e)i(can)f(sho)n
(w)g(that)f(the)304 2176 y(n)n(um)n(b)r(er)f(of)g(p)r(ossible)g(enco)r
(dings)e(is)j Fq(O)r Fs(\(\()p Fq(T)1208 2184 y Fu(log)7
b Fp(n)1302 2176 y Fs(\))1324 2156 y Fp(n)1354 2176 y
Fs(\),)19 b(where)e Fq(n)i Fs(is)g(the)f(size)g(of)h(the)f(term)f(to)h
(b)r(e)304 2253 y(enco)r(ded.)k(Because)17 b Fq(T)783
2261 y Fp(h)831 2253 y Fs(is)i Fq(O)r Fs(\(2)981 2233
y Fu(2)1003 2216 y Fg(h)1030 2253 y Fs(\),)g(the)e(searc)n(h)g(space)h
(for)f(term)h(compression)e(is)j(therefore)304 2327 y
Fq(O)r Fs(\(2)398 2307 y Fp(n)425 2290 y Fh(2)448 2327
y Fs(\).)865 2448 y(2.)31 b Ft(P)-5 b(a)l(ttern)21 b(Substitution)f
(Trees)370 2547 y Fr(Substitution)k(tr)m(e)m(es)j Fs([12,)21
b(11])g(ha)n(v)n(e)h(b)r(een)d(dev)n(elop)r(ed)h(for)g(use)h(in)g(term)
f(indexing)h(in)g(au-)304 2614 y(tomatic)g(theorem)g(pro)n(v)n(ers.)37
b(These)22 b(trees)f(can)g(store)g(and)h(lo)r(ok)h(up)f(terms)f
(e\016cien)n(tly)i(b)n(y)304 2680 y(taking)17 b(adv)m(an)n(tage)f(of)i
(shared)e(term)h(structure,)f(and)h(to)h(\014nd)f(terms)g(whic)n(h)h
(are)f(similar)i(\(in)304 2746 y(the)h(sense)g(that)h(they)f(unify)i
(with)f(a)g(particular)f(term\))g(quic)n(kly)-5 b(.)36
b(In)21 b(this)h(section)e(w)n(e)h(will)304 2813 y(in)n(tro)r(duce)16
b(a)j(new)f(v)m(ariation)f(on)h(this)h(structure)c(called)j
Fr(p)m(attern)23 b(substitution)e(tr)m(e)m(es)p Fs(,)f(whic)n(h)304
2879 y(can)d(b)r(e)h(used)f(to)h(store)e(and)i(b)r(e)f(index)h
(patterns)e(e\016cien)n(tly)-5 b(.)370 2946 y(A)23 b(substitution)f
(tree)g(is)i(a)f(tree)f(with)h(edges)g(lab)r(eled)f(b)n(y)i
(substitutions)d(\(o)n(v)n(er)j(sp)r(ecial)304 3012 y(substitution)13
b(v)m(ariables\))g(suc)n(h)i(that)f(ev)n(ery)h(v)n(ertex)f(that)g(is)h
(not)f(a)h(leaf)g(or)f(the)g(ro)r(ot)g(has)g(more)304
3079 y(than)21 b(one)i(c)n(hild.)39 b(In)22 b(a)h(substitution)e(tree,)
i(eac)n(h)f(leaf)g(corresp)r(onds)e(to)i(a)h(term)f(resulting)304
3145 y(from)e(applying)f(the)h(substitutions)e(on)h(the)h(path)f(from)h
(the)f(ro)r(ot)f(to)i(the)f(v)n(ertex)h(in)h(order.)304
3211 y(The)j(restriction)e(on)i(the)f(n)n(um)n(b)r(er)h(of)g(c)n
(hildren)g(helps)f(ensure)g(that)g(the)g(tree)g(uses)h(space)304
3278 y(e\016cien)n(tly)-5 b(,)20 b(b)r(ecause)d(a)i(non-ro)r(ot)f(v)n
(ertex)h(with)g(only)g(one)g(c)n(hild)h(can)f(alw)n(a)n(ys)h(b)r(e)e
(optimized)304 3344 y(out)23 b(b)n(y)h(concatenating)c(the)j(c)n
(hild-edge)h(and)f(paren)n(t-edge's)e(substitutions.)40
b(T)-5 b(erms)23 b(can)304 3411 y(b)r(e)17 b(inserted)f(in)n(to,)i(lo)r
(ok)n(ed)f(up,)h(and)f(remo)n(v)n(ed)h(from)f(substitution)f(trees)g
(e\016cien)n(tly)-5 b(,)19 b(and)e(so)304 3477 y(they)g(are)h(used)f
(for)h(term)f(indexing)h(in)h(automated)c(theorem)i(pro)n(v)n(ers.)p
eop
%%Page: 15 17
15 16 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(15)1111 811 y @beginspecial 43 @llx 661 @lly 114 @urx
765 @ury 710 @rwi @setspecial
%%BeginDocument: figures/pst1.eps
%!
%%BoundingBox: 43 661 114 765
%%Title: pst1
%%CreationDate: Mon Aug 17 11:47:01 1998
%%Creator: Tgif-3.0-p17 by William Chia-Wei Cheng (william@cs.UCLA.edu)
/tgifdict 4 dict def
tgifdict begin
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
end
%%PageBoundingBox: 43 661 114 765
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100.000 mul 100 div dup neg scale
gsave
/tgiforigctm matrix currentmatrix def
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
140 65 moveto
185 140 lineto
185 215 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
140 65 moveto
95 140 lineto
95 215 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 140 65 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 140 65 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 185 140 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 185 140 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 95 140 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 95 140 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 185 215 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 185 215 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 95 215 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 95 215 15 15 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
134 59 moveto 142 59 lineto 142 74 lineto 134 74 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
135 71 moveto (r) show
grestore
% TEXT
0 setgray
newpath
89 209 moveto 97 209 lineto 97 224 lineto 89 224 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
90 221 moveto (v) show
grestore
% TEXT
0 setgray
newpath
179 209 moveto 187 209 lineto 187 224 lineto 179 224 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
180 221 moveto (w) show
grestore
% TEXT
0 setgray
newpath
89 134 moveto 97 134 lineto 97 149 lineto 89 149 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
90 146 moveto (x) show
grestore
% TEXT
0 setgray
newpath
179 134 moveto 187 134 lineto 187 149 lineto 179 149 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
180 146 moveto (y) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Mon Aug 17 11:47:01 1998
%%EndDocument
@endspecial 938 386 a Fy(u)16 b Fl(7!)f Fq(\033)r Fs(\()p
Fy(y)q Fq(;)9 b(b)p Fs(\))174 b Fy(u)16 b Fl(7!)g Fq(\033)r
Fs(\()p Fq(a;)9 b Fy(y)q Fs(\))1190 653 y Fy(y)16 b Fl(7!)f
Fq(a)134 b Fy(y)16 b Fl(7!)g Fq(b)1008 991 y Ft(Figure)21
b(1.)27 b Fs(Fla)n(w)n(ed)19 b(PST)370 1157 y(W)-5 b(e)16
b(here)f(in)n(tro)r(duce)f(a)i(v)m(arian)n(t)g(of)g(the)f(substitution)
f(tree)h(structure,)f(whic)n(h)i(w)n(e)h(will)g(call)304
1223 y(a)d Fr(p)m(attern)19 b(substitution)e(tr)m(e)m(e)i(\(PST\))p
Fs(.)13 b(P)n(attern)g(substitution)f(trees)h(are)h(structurally)f
(similar)304 1290 y(to)i(substitution)e(trees,)i(but)g(are)f(used)h
(di\013eren)n(tly:)23 b(to)15 b(express)g(and)f(store)g(a)i(set)f(of)g
(patterns)304 1356 y(e\016cien)n(tly)j(b)n(y)i(taking)e(adv)m(an)n
(tage)f(of)h(shared)f(pattern)g(structure,)f(rather)h(than)h(to)g
(index)h(a)304 1423 y(set)g(of)i(terms.)30 b(F)-5 b(or)20
b(that)g(reason,)f(the)h(substitution)e(v)m(ariables)i(of)g(a)g
(pattern)f(substitution)304 1489 y(tree)i(are)h(the)g(pattern)e(v)m
(ariables)i(of)g(the)g(patterns)e(o)n(v)n(er)j(a)g(particular)e(op)r
(erator)f(domain.)304 1556 y(Both)i(lea)n(v)n(es)g(and)g(in)n(ternal)g
(no)r(des)f(ma)n(y)i(corresp)r(ond)c(to)j(patterns)e(that)h(con)n(tain)
h(pattern)304 1622 y(v)m(ariables.)i(W)-5 b(e)17 b(relax)h(the)f
(restriction)e(on)j(the)f(n)n(um)n(b)r(er)g(of)g(c)n(hildren)h(a)f(v)n
(ertex)h(ma)n(y)g(ha)n(v)n(e)g(in)304 1688 y(a)f(pattern)e
(substitution)g(tree)h(so)h(that)f(patterns)f(that)h(share)g(structure)
f(\(suc)n(h)h(as)h Fq(\033)r Fs(\()p Fy(y)q Fs(\))f(and)304
1755 y Fq(\033)r Fs(\()p Fq(\034)6 b Fs(\()p Fy(z)p Fs(\)\)\))16
b(can)i(b)r(e)f(added)g(to)h(a)g(tree)f(and)g(indexed)h(b)n(y)h
(di\013eren)n(t)e(v)n(ertices.)304 1884 y(2.1.)32 b Fy(De\014nitions.)
304 1992 y(De\014nition)21 b(2.1.1.)26 b Fs(A)g Fr(p)m(attern)j
(substitution)e(tr)m(e)m(e)i(\(PST\))d Fs(o)n(v)n(er)g
Fq(P)8 b(at)1861 1972 y Fp(Y)1861 2007 y Fu(\006)p Fp(X)1961
1992 y Fs(is)26 b(a)f(structure)304 2058 y Fq(P)h Fs(=)19
b(\()p Fq(r)n(;)9 b Fy(u)p Fq(;)g(V)s(;)g(E)s(;)g(\030)s
Fs(\))23 b(suc)n(h)d(that)f Fq(T)27 b Fs(=)20 b(\()p
Fq(r)n(;)9 b(V)s(;)g(E)s Fs(\))21 b(is)g(a)f(ro)r(oted)f(tree.)30
b(The)20 b(function)f Fq(\030)i Fs(:)f Fq(E)i Fl(!)304
2124 y Fq(S)s(ub)397 2104 y Fp(Y)397 2140 y Fu(\006)p
Fp(X)491 2124 y Fs(is)e(called)g(the)g Fr(substitution)i(\(e)m
(dge-\)lab)m(eling)29 b Fs(of)20 b Fq(P)28 b Fs(and)19
b Fy(u)h Fl(2)e Fq(Y)33 b Fs(is)21 b(called)f(the)g Fr(r)m(o)m(ot)304
2191 y(variable)25 b Fs(of)18 b Fq(P)8 b Fs(.)370 2257
y(The)18 b(pattern)e Fr(asso)m(ciate)m(d)22 b(with)h
Fs(a)18 b(v)n(ertex)g Fq(v)i Fs(of)e(a)g(PST)g(is)h(the)e(pattern)971
2362 y([)p Fq(\030)s Fs(\()p Fq(v)1062 2370 y Fp(n)p
Fm(\000)p Fu(1)1148 2362 y Fq(;)9 b(v)1199 2370 y Fp(n)1230
2362 y Fs(\)])g Fl(\001)g(\001)g(\001)i Fs([)p Fq(\030)s
Fs(\()p Fq(v)1441 2370 y Fu(1)1465 2362 y Fq(;)e(v)1516
2370 y Fu(2)1541 2362 y Fs(\)])p Fy(u)p Fq(;)304 2466
y Fs(where)18 b(\()p Fq(v)514 2474 y Fu(1)538 2466 y
Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(v)697 2474 y Fp(n)728 2466
y Fs(\))19 b(is)h(a)g(path)e(from)h(the)g(ro)r(ot)f(to)h
Fq(v)r Fs(.)29 b(The)20 b(pattern)d(asso)r(ciated)g(with)i
Fq(v)j Fs(in)304 2532 y Fq(P)j Fs(is)19 b(also)f(denoted)e
Fq(pat)818 2540 y Fp(P)855 2532 y Fs(\()p Fq(v)r Fs(\).)304
2682 y Fr(R)m(emark)28 b Fs(2.1.2)p Fr(.)f Fs(If)16 b
Fq(P)22 b Fs(=)16 b(\()p Fq(r)n(;)9 b Fy(u)p Fq(;)g(V)s(;)g(E)s(;)g
(\030)s Fs(\))18 b(then)c(w)n(e)h(denote)f Fq(r)r Fs(\()p
Fq(P)8 b Fs(\))13 b(=)i Fq(r)n(;)9 b Fy(u)p Fs(\()p Fq(P)f
Fs(\))15 b(=)h Fy(u)p Fq(;)9 b(V)k Fs(\()p Fq(P)8 b Fs(\))14
b(=)h Fq(V)e Fs(,)304 2748 y Fr(etc.)370 2815 y Fs(Note)23
b(that)g(pattern)f(substitution)g(trees)g(as)i(de\014ned)f(ab)r(o)n(v)n
(e)h(ha)n(v)n(e)g(the)g(p)r(oten)n(tial)e(\015a)n(w)304
2881 y(that)f(more)h(than)g(one)g(v)n(ertex)g(migh)n(t)h(corresp)r(ond)
c(to)j(the)g(same)g(pattern.)36 b(F)-5 b(or)23 b(example,)304
2947 y(consider)16 b(the)i(tree)f(of)h(Figure)f(1.)25
b(V)-5 b(ertices)17 b Fq(v)j Fs(and)d Fq(w)j Fs(b)r(oth)d(yield)h(the)g
(same)f(pattern)801 3052 y([)p Fy(y)g Fl(7!)e Fq(a)p
Fs(])p Fq(\033)r Fs(\()p Fy(y)q Fq(;)9 b(b)p Fs(\))15
b(=)g([)p Fy(y)h Fl(7!)g Fq(b)p Fs(])p Fq(\033)r Fs(\()p
Fq(a;)9 b Fy(y)q Fs(\))15 b(=)g Fq(\033)r Fs(\()p Fq(a;)9
b(b)p Fs(\))p Fq(;)304 3156 y Fs(but)18 b(ob)n(viously)i(o)r(ccup)n(y)e
(di\013eren)n(t)h(places)f(in)i(the)e(tree.)27 b(Ordinary)19
b(substitution)e(trees)h(also)304 3222 y(exhibit)i(this)h(b)r(eha)n
(vior,)g(but)f(in)h(practice)e(the)g(e\013ort)h(needed)f(to)h(a)n(v)n
(oid)i(it)f(is)g(unjusti\014able)304 3289 y(\(at)f(least,)j(when)e
(using)g(substitution)f(trees)g(for)h(term)g(indexing[12)o(].\))35
b(Here)21 b(w)n(e)h(will)h(also)304 3355 y(assume)17
b(that)g(this)h(is)g(not)g(a)g(serious)f(problem.)304
3463 y Fy(De\014nition)k(2.1.3.)26 b Fs(A)18 b(function)f
Fq(\026)f Fs(:)f Fq(V)e Fs(\()p Fq(P)8 b Fs(\))14 b Fl(!)h
Fk(N)k Fs(is)f(called)g(a)g Fr(multiplicity)k(weighting)p
Fs(.)p eop
%%Page: 16 18
16 17 bop 304 151 a Fu(16)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fr(R)m(emark)28
b Fs(2.1.4)p Fr(.)f Fs(A)12 b(m)n(ultiplicit)n(y)i(w)n(eigh)n(ting)e
(is)g(in)n(tended)f(to)g(record)g(the)g(n)n(um)n(b)r(er)g(of)h
(di\013eren)n(t)304 350 y(places)23 b(a)h(pattern)d(matc)n(hes)i(a)h
(term.)41 b(Unfortunately)-5 b(,)23 b(the)g(di\016cult)n(y)h(men)n
(tioned)f(ab)r(o)n(v)n(e)304 416 y(complicates)c(matters;)h(for)g
(example,)i(if)f Fq(\026)p Fs(\()p Fq(v)r Fs(\))d(=)i(4)g(and)h
Fq(\026)p Fs(\()p Fq(w)q Fs(\))d(=)i(1)h(in)g(the)e(tree)h(of)g(Figure)
304 483 y(1,)i(then)e(the)g(m)n(ultiplicit)n(y)i(of)f
Fq(\033)r Fs(\()p Fq(a;)9 b(b)p Fs(\))21 b(is)g(either)f(4)h(or)g(1.)33
b(In)21 b(fact,)g(the)f(actual)g(m)n(ultiplicit)n(y)304
549 y(of)g Fq(\033)r Fs(\()p Fq(a;)9 b(b)p Fs(\))20 b(should)g(b)r(e)f
(5.)31 b(In)21 b(general,)e(though,)h(it)h(ma)n(y)g(not)e(b)r(e)h
(practical)f(to)g(seek)h(out)g(all)304 616 y(the)e(di\013eren)n(t)h(v)n
(ertices)g(whic)n(h)h(giv)n(e)g(a)g(pattern)d(and)i(add)g(together)e
(their)i(m)n(ultiplicities)h(to)304 682 y(obtain)d(the)g(correct)f
(answ)n(ers.)304 789 y(2.2.)32 b Fy(Algorithms.)27 b
Fs(Substitution)13 b(trees)h(pro)n(vide)h(e\016cien)n(t)g(means)g(of)g
(inserting)f(and)h(lo)r(ok-)304 855 y(ing)j(up)g(matc)n(hing)f(terms)g
(in)i(an)f(index.)24 b(Remo)n(ving)18 b(terms)f(from)h(the)f(index)h
(is)h(not)e(usually)304 922 y(as)k(e\016cien)n(t,)h(but)e(term)h
(indexing)g(applications)f(do)h(not)g(require)f(e\016cien)n(t)h(remo)n
(v)m(al.)34 b(P)n(at-)304 988 y(tern)18 b(substitution)g(trees)g(are)g
(mean)n(t)h(to)g(serv)n(e)h(di\013eren)n(t)e(goals,)i(but)f(the)g
(algorithms)f(used)304 1055 y(to)d(meet)g(these)f(goals)i(are)f
(similar)h(to)f(the)g(substitution)f(tree)h(algorithms.)22
b(Here)15 b(w)n(e)h(presen)n(t)304 1121 y(descriptions)e(of)i(the)f
(algorithms)h(used)f(to)h(insert)f(and)h(lo)r(ok)g(up)g(patterns)d(in)k
(a)f(PST,)g(and)g(to)304 1188 y(\014nd)h(the)h(patterns)e(asso)r
(ciated)f(with)j(v)n(ertices)f(in)i(PSTs.)370 1254 y(In)e(the)e
(complexit)n(y)i(results)f(claimed,)h(it)f(is)h(assumed)f(that)f(the)h
(underlying)f(lab)r(eled)h(tree)304 1320 y(data)i(structure)f(is)j
(implemen)n(ted)f(e\016cien)n(tly)g(with)h Fq(O)r Fs(\(1\))e(v)n(ertex)
h(lab)r(eling,)h(insertion,)f(and)304 1387 y(deletion,)j(for)f(example)
g(with)h(hash)f(tables,)h(and)f(that)g(term)f(and)i(substitution)d
(represen-)304 1453 y(tations)d(are)i(not)f(needlessly)g(copied.)24
b(Substitution)15 b(matc)n(hing,)j(generalization,)e(and)h(com-)304
1520 y(p)r(osition)h(are)g(assumed)g(to)h(ha)n(v)n(e)h(w)n(orst)f(case)
f Fq(O)r Fs(\()p Fq(n)p Fs(\),)h Fq(O)r Fs(\()p Fq(n)1553
1500 y Fu(2)1577 1520 y Fs(\),)h(and)f Fq(O)r Fs(\()p
Fq(n)p Fs(\))f(implemen)n(tations,)304 1586 y(resp)r(ectiv)n(ely)-5
b(,)16 b(with)h Fq(n)g Fs(a)g(b)r(ound)e(for)i(the)f(sizes)g(of)h(the)f
(substitutions)e(matc)n(hed,)j(generalized)304 1652 y(or)h(comp)r
(osed.)25 b(The)19 b(sizes)f(of)h(inputs)f Fq(x)h Fs(are)f(denoted)f
Fl(j)p Fq(x)p Fl(j)p Fs(.)28 b(The)18 b(largest)g(substitution)f(in)i
Fq(P)304 1719 y Fs(is)h(denoted)e Fq(sub)p 657 1719 17
3 v 19 w(max)p Fs(\()p Fq(P)8 b Fs(\).)28 b(This)20 b(v)m(alue)g(can)f
(at)g(w)n(orst)g(b)r(e)g Fq(O)r Fs(\()p Fl(j)p Fq(\030)s
Fs(\()p Fq(P)8 b Fs(\))p Fl(j)p Fs(\),)19 b(but)g(in)h(man)n(y)h(cases)
304 1785 y(it)d(migh)n(t)g(b)r(e)g(p)r(ossible)f(to)h(argue)e(that)h
(it)i(is)f Fq(O)r Fs(\(1\))f(on)h(a)n(v)n(erage.)304
1892 y Fy(Algorithm)i(2.2.1)h Fs(\()p Fy(add)p Fs(\))p
Fy(.)304 1959 y Fs(Input:)i(A)18 b(PST)g Fq(P)8 b Fs(,)18
b(a)g(v)n(ertex)g Fq(v)r Fs(,)h(and)e(a)i(substitution)d
Fq(s)p Fs(.)304 2025 y(Output:)30 b(A)22 b(PST)f(that)f(is)i(iden)n
(tical)g(to)f Fq(P)29 b Fs(except)20 b(p)r(ossibly)i(that)e(there)g(is)
i(no)n(w)g(an)g(edge)304 2092 y(\()p Fq(v)r(;)9 b(w)q
Fs(\))18 b(suc)n(h)g(that)f Fq(\030)s Fs(\()p Fq(v)r(;)9
b(w)q Fs(\))14 b(=)i Fq(s)p Fs(.)25 b(\(There)16 b(migh)n(t)j(already)e
(ha)n(v)n(e)i(b)r(een)d(suc)n(h)i(an)g(edge)f(in)i Fq(P)8
b Fs(.\))304 2158 y(Pro)r(cedure)15 b Fy(add)p Fs(\()p
Fq(P)r(;)9 b(v)r(;)g(s)p Fs(\):)304 2224 y(If)20 b Fq(v)h
Fs(already)e(has)h(a)f(c)n(hild)i Fq(w)g Fs(suc)n(h)e(that)g
Fq(\030)s Fs(\()p Fq(v)r(;)9 b(w)q Fs(\))17 b(=)h Fq(s)i
Fs(then)e(simply)j(return)d Fq(P)8 b Fs(.)29 b(Otherwise)304
2291 y(c)n(ho)r(ose)16 b Fq(w)23 b(=)-34 b Fl(2)15 b
Fq(V)e Fs(\()p Fq(P)8 b Fs(\))16 b(and)i(return)690 2393
y Fq(P)734 2371 y Fm(0)764 2393 y Fs(=)d(\()p Fq(r)n(;)9
b(u;)g(V)26 b Fl([)12 b(f)p Fq(w)q Fl(g)p Fq(;)d(E)16
b Fl([)c(f)p Fs(\()p Fq(v)r(;)d(w)q Fs(\))p Fl(g)p Fq(;)g(\030)15
b Fl([)d(f)p Fs(\(\()p Fq(v)r(;)d(w)q Fs(\))p Fq(;)g(s)p
Fs(\))p Fl(g)p Fs(\))p Fq(:)304 2496 y Fs(Complexit)n(y:)22
b(O\(1\))12 b(time.)23 b(This)12 b(is)h(simply)h(insertion)d(in)n(to)i
(the)f(tree)f(and)h(lab)r(eling)g(structure.)304 2603
y Fy(Algorithm)20 b(2.2.2)h Fs(\()p Fy(get)p 876 2603
20 3 v 22 w(sub)p Fs(\))p Fy(.)304 2670 y Fs(Input:)i(Tw)n(o)c(v)n
(ertices)e Fq(v)k Fs(and)c Fq(w)j Fs(of)e Fq(P)25 b Fs(suc)n(h)18
b(that)f Fq(v)k Fs(is)d(an)g(ancestor)e(of)i Fq(w)q Fs(.)304
2736 y(Output:)26 b(A)19 b(substitution)e Fq(s)j Fs(that)e(is)i(the)f
(concatenation)d(of)j(all)h(the)f(substitutions)e(on)i(the)304
2802 y(path)e(from)h Fq(v)i Fs(to)e Fq(w)q Fs(.)304 2869
y(Pro)r(cedure)d Fy(get)p 658 2869 V 22 w(sub)p Fs(\()p
Fq(P)r(;)9 b(v)r(;)g(w)q Fs(\):)370 2953 y(1.)28 b(If)18
b Fq(v)f Fs(=)f Fq(w)j Fs(then)e(return)g Fl(\001)370
3020 y Fs(2.)28 b(Otherwise,)17 b(return)g([)p Fq(\030)s
Fs(\()p Fq(p;)9 b(w)q Fs(\)])p Fy(get)p 1171 3020 17
3 v 19 w(sub)q Fs(\()p Fq(P)r(;)g(v)r(;)g(p)p Fs(\),)18
b(where)f Fq(p)h Fs(is)h(the)e(paren)n(t)g(of)h Fq(w)q
Fs(.)304 3104 y(Complexit)n(y:)34 b Fq(O)r Fs(\()p Fq(h)p
Fs(\()p Fq(P)8 b Fs(\))p Fq(sub)p 902 3104 V 17 w(max)p
Fs(\()p Fq(P)g Fs(\)\))20 b(time.)38 b(A)n(t)22 b(most)g
Fq(h)p Fs(\()p Fq(P)8 b Fs(\))21 b(comp)r(ositions)g(are)h(needed,)304
3171 y(where)17 b Fq(h)p Fs(\()p Fq(P)8 b Fs(\))16 b(is)j(the)e(heigh)n
(t)h(of)g Fq(P)8 b Fs(.)304 3278 y Fy(Algorithm)20 b(2.2.3)h
Fs(\()p Fy(get)p 876 3278 20 3 v 22 w(pat)p Fs(\))p Fy(.)304
3344 y Fs(Input:)i(A)18 b(v)n(ertex)g Fq(v)i Fs(of)e
Fq(P)8 b Fs(.)304 3411 y(Output:)23 b(The)18 b(pattern)e
Fq(pat)910 3419 y Fp(P)947 3411 y Fs(\()p Fq(v)r Fs(\))h(asso)r(ciated)
f(with)i Fq(v)i Fs(in)f Fq(P)8 b Fs(.)304 3477 y(Pro)r(cedure)15
b Fy(get)p 658 3477 V 22 w(pat)p Fs(\()p Fq(P)r(;)9 b(v)r
Fs(\):)p eop
%%Page: 17 19
17 18 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(17)304 283 y Fs(Return)16 b([)p Fy(get)p 596 283 17
3 v 20 w(sub)q Fs(\()p Fq(P)r(;)9 b(r)r Fs(\()p Fq(P)f
Fs(\))p Fq(;)h(v)r Fs(\)])p Fy(u)p Fs(\()p Fq(P)f Fs(\).)304
350 y(Complexit)n(y:)25 b Fq(O)r Fs(\()p Fl(j)p Fq(P)8
b Fl(j)p Fq(sub)p 847 350 V 19 w(max)p Fs(\()p Fq(P)g
Fs(\)\))15 b(time.)304 456 y Fy(Algorithm)20 b(2.2.4)h
Fs(\()p Fy(\014nd)p 895 456 20 3 v 23 w(matc)n(hing)p
1173 456 V 23 w(sub)p Fs(\))p Fy(.)304 523 y Fs(Input:)i(A)18
b(v)n(ertex)g Fq(v)i Fs(of)e Fq(P)26 b Fs(and)18 b(a)g(substitution)e
Fq(s)p Fs(.)304 589 y(Output:)35 b(A)24 b(v)n(ertex)g
Fq(v)803 569 y Fm(0)843 589 y Fs(of)g Fq(P)32 b Fs(and)23
b(a)h(substitution)f Fq(s)1486 569 y Fm(0)1526 589 y
Fs(suc)n(h)h(that)f Fq(v)j Fs(corresp)r(onds)21 b(to)i(the)304
655 y(most)e(sp)r(eci\014c)f(pattern)f(in)j(the)f(tree)f(that)g(matc)n
(hes)h([)p Fq(s)p Fs(])p Fq(pat)1594 663 y Fp(P)1631
655 y Fs(\()p Fq(v)r Fs(\),)h(and)f Fq(s)1878 635 y Fm(0)1916
655 y Fs(is)h(the)e(matc)n(hing)304 722 y(substitution.)304
788 y(Pro)r(cedure)15 b Fy(\014nd)p 677 788 V 24 w(matc)n(hing)p
956 788 V 23 w(sub)p Fs(\()p Fq(P)r(;)9 b(v)r(;)g(s)p
Fs(\):)370 872 y(1.)28 b(If)15 b(there)e(is)i(a)f(c)n(hild)h
Fq(w)h Fs(of)e Fq(v)j Fs(suc)n(h)d(that)f Fq(\030)s Fs(\()p
Fq(v)r(;)c(w)q Fs(\))15 b Fl(\026)h Fq(s)e Fs(under)g(substitution)e
Fq(t)j Fs(then)e(return)441 939 y Fy(\014nd)p 549 939
17 3 v 21 w(matc)n(hing)p 826 939 V 21 w(sub)q Fs(\()p
Fq(P)r(;)c(w)q(;)g(t)p Fs(\).)370 1005 y(2.)28 b(Otherwise)17
b(return)f(\()p Fq(v)r(;)9 b(s)p Fs(\).)304 1089 y(Complexit)n(y:)25
b Fq(O)r Fs(\()p Fl(j)p Fq(P)8 b Fl(j)h Fs(max)o(\()p
Fl(j)p Fq(s)p Fl(j)p Fq(;)g(sub)p 1060 1089 V 21 w(max)p
Fs(\()p Fq(P)f Fs(\)\)\))15 b(time.)304 1195 y Fy(Algorithm)20
b(2.2.5)h Fs(\()p Fy(lo)r(okup)p Fs(\))p Fy(.)304 1261
y Fs(Input:)i(A)18 b(pattern)e Fq(p)j Fs(and)e(substitution)f(tree)h
Fq(P)8 b Fs(.)304 1328 y(Output:)22 b(A)16 b(v)n(ertex)g
Fq(v)774 1308 y Fm(0)806 1328 y Fs(and)f(substitution)f
Fq(s)1243 1308 y Fm(0)1275 1328 y Fs(suc)n(h)i(that)f
Fq(v)1545 1308 y Fm(0)1577 1328 y Fs(corresp)r(onds)e(to)i(a)i(most)e
(sp)r(eci\014c)304 1394 y(matc)n(h)i(in)i Fq(P)26 b Fs(of)18
b Fq(p)g Fs(and)g Fq(s)841 1374 y Fm(0)874 1394 y Fs(is)h(the)e(matc)n
(hing)h(substitution.)304 1461 y(Pro)r(cedure)d Fy(lo)r(okup)p
Fs(\()p Fq(P)r(;)9 b(p)p Fs(\):)304 1527 y(Return)16
b Fy(\014nd)p 600 1527 V 21 w(matc)n(hing)p 877 1527
V 22 w(sub)p Fs(\()p Fq(P)r(;)9 b(r)r Fs(\()p Fq(P)f
Fs(\))p Fq(;)h Fy(u)p Fs(\()p Fq(P)f Fs(\))k Fl(7!)k
Fq(p)p Fs(\).)304 1594 y(Complexit)n(y:)25 b Fq(O)r Fs(\()p
Fl(j)p Fq(P)8 b Fl(j)h Fs(max)o(\()p Fq(sub)p 980 1594
V 19 w(max)p Fs(\()p Fq(P)f Fs(\))p Fq(;)h Fl(j)p Fq(p)p
Fl(j)p Fs(\)\))17 b(time.)304 1700 y Fy(Algorithm)j(2.2.6)h
Fs(\()p Fy(split)p Fs(\))p Fy(.)304 1766 y Fs(Input:)i(A)18
b(v)n(ertex)g Fq(v)i Fs(of)e Fq(P)26 b Fs(and)18 b(a)g(substitution)e
Fq(s)p Fs(.)304 1833 y(Output:)22 b(A)15 b(v)n(ertex)g
Fq(w)i Fs(and)e(pattern)e(substitution)g(tree)h Fq(P)1556
1813 y Fm(0)1587 1833 y Fs(iden)n(tical)h(to)g Fq(P)23
b Fs(except)14 b(p)r(ossibly)304 1899 y(mo)r(di\014ed)j(so)h(that)f([)p
Fq(s)p Fs(])p Fq(pat)851 1907 y Fp(P)888 1899 y Fs(\()p
Fq(v)r Fs(\))e(=)g Fq(pat)1111 1907 y Fp(P)1148 1899
y Fs(\()p Fq(w)q Fs(\))f Fl(2)i Fq(P)8 b Fs(.)304 1965
y(Pro)r(cedure)15 b Fy(split)p Fs(\()p Fq(P)r(;)9 b(v)r(;)g(s)p
Fs(\):)370 2049 y(1.)28 b(If)20 b(there)f(is)h(a)g(c)n(hild)h
Fq(w)g Fs(of)f Fq(v)i Fs(suc)n(h)e(that)f Fq(t)f Fs(=)h
Fq(\030)s Fs(\()p Fq(v)r(;)9 b(w)q Fs(\))20 b(and)f Fq(s)h
Fs(ha)n(v)n(e)h(a)f(non)n(trivial)g(most)441 2116 y(sp)r(eci\014c)14
b(generalization)g Fq(u)i Fs(and)g(that)f Fq(u)1287 2124
y Fu(1)1319 2116 y Fl(\016)8 b Fq(u)15 b Fs(=)h Fq(t)g
Fs(and)g Fq(u)1635 2124 y Fu(2)1667 2116 y Fl(\016)8
b Fq(u)15 b Fs(=)h Fq(s)p Fs(.)24 b(Then)15 b(c)n(ho)r(ose)g(suc)n(h)
441 2182 y(a)j Fq(w)i Fs(and)446 2249 y(\(a\))27 b(if)19
b Fq(u)628 2257 y Fu(1)667 2249 y Fl(\021)d Fq(u)758
2257 y Fu(2)798 2249 y Fl(\021)f(\001)k Fs(\(that)d(is,)j
Fq(\030)s Fs(\()p Fq(v)r(;)9 b(w)q Fs(\))15 b Fl(\021)h
Fq(s)p Fs(\))i(then)f(return)f(\()p Fq(w)q(;)9 b(P)f
Fs(\).)443 2315 y(\(b\))27 b(if)19 b Fq(u)628 2323 y
Fu(1)667 2315 y Fl(\021)d(\001)j Fs(and)e Fq(u)899 2323
y Fu(2)939 2315 y Fl(6\021)f(\001)i Fs(\()p Fq(\030)s
Fs(\()p Fq(v)r(;)9 b(w)q Fs(\))15 b Fl(\026)g Fq(s)p
Fs(\))j(then)f(return)g Fy(split)o Fs(\()p Fq(P)r(;)9
b(w)q(;)g(u)1954 2323 y Fu(2)1979 2315 y Fs(\).)449 2381
y(\(c\))27 b(if)22 b Fq(u)631 2389 y Fu(1)676 2381 y
Fl(6\021)e(\001)i Fs(and)f Fq(u)919 2389 y Fu(2)964 2381
y Fl(\021)g(\001)h Fs(\()p Fq(s)e Fl(\026)h Fq(\030)s
Fs(\()p Fq(v)r(;)9 b(w)q Fs(\)\))20 b(then)g(c)n(ho)r(ose)g(a)h(v)n
(ertex)g Fq(v)1961 2361 y Fm(0)2003 2381 y Fq(=)-34 b
Fl(2)21 b Fq(V)12 b Fs(\()p Fq(P)c Fs(\))20 b(and)545
2448 y(return)c Fq(v)743 2428 y Fm(0)777 2448 y Fs(and)691
2533 y Fq(P)735 2510 y Fm(0)765 2533 y Fs(=)f(\()p Fy(u)p
Fs(\()p Fq(P)8 b Fs(\))p Fq(;)h(r)r Fs(\()p Fq(P)f Fs(\))p
Fq(;)845 2605 y(V)k Fs(\()p Fq(P)c Fs(\))j Fl([)h(f)p
Fq(v)1094 2582 y Fm(0)1109 2605 y Fl(g)p Fq(;)845 2678
y Fs(\()p Fq(E)s Fs(\()p Fq(V)f Fs(\))p Fl(nf)p Fs(\()p
Fq(v)r(;)e(w)q Fs(\))p Fl(g)p Fs(\))h Fl([)j(f)p Fs(\()p
Fq(v)r(;)c(v)1434 2655 y Fm(0)1449 2678 y Fs(\))p Fq(;)g
Fs(\()p Fq(v)1546 2655 y Fm(0)1561 2678 y Fq(;)g(w)q
Fs(\))p Fl(g)p Fq(;)845 2750 y Fs(\()p Fq(\030)s Fl(nf)p
Fs(\(\()p Fq(v)r(;)g(w)q Fs(\))p Fq(;)g(t)p Fs(\))p Fl(g)p
Fs(\))g Fl([)j(f)p Fs(\(\()p Fq(v)r(;)d(v)1438 2728 y
Fm(0)1453 2750 y Fs(\))p Fq(;)g(u)p Fs(\))p Fq(;)g Fs(\(\()p
Fq(v)1650 2728 y Fm(0)1664 2750 y Fq(;)g(w)q Fs(\))p
Fq(;)g(u)1807 2758 y Fu(1)1832 2750 y Fs(\))p Fl(g)p
Fs(\))p Fq(:)443 2855 y Fs(\(d\))27 b(if)17 b Fq(u)626
2863 y Fu(1)665 2855 y Fl(6\021)f(\001)h Fs(and)e Fq(u)893
2863 y Fu(2)933 2855 y Fl(6\021)h(\001)g Fs(then)g(c)n(ho)r(ose)e(v)n
(ertices)h Fq(v)1548 2835 y Fm(0)1564 2855 y Fq(;)9 b(v)1617
2835 y Fm(00)1667 2855 y Fq(=)-34 b Fl(2)15 b Fq(V)e
Fs(\()p Fq(P)8 b Fs(\))14 b(and)i(return)f Fq(v)2163
2835 y Fm(0)o(0)2207 2855 y Fs(and)532 2954 y Fq(P)576
2931 y Fm(0)606 2954 y Fs(=)g(\()p Fy(u)p Fs(\()p Fq(P)8
b Fs(\))p Fq(;)h(r)r Fs(\()p Fq(P)f Fs(\))p Fq(;)686
3026 y(V)k Fs(\()p Fq(P)c Fs(\))j Fl([)h(f)p Fq(v)935
3003 y Fm(0)950 3026 y Fq(;)d(v)1003 3003 y Fm(00)1032
3026 y Fl(g)p Fq(;)686 3099 y Fs(\()p Fq(E)s Fs(\()p
Fq(V)j Fs(\))p Fl(nf)p Fs(\()p Fq(v)r(;)d(w)q Fs(\))p
Fl(g)p Fs(\))g Fl([)k(f)p Fs(\()p Fq(v)r(;)c(v)1275 3076
y Fm(0)1290 3099 y Fs(\))p Fq(;)g Fs(\()p Fq(v)1387 3076
y Fm(0)1402 3099 y Fq(;)g(v)1455 3076 y Fm(00)1483 3099
y Fs(\))p Fq(;)g Fs(\()p Fq(v)1580 3076 y Fm(0)1595 3099
y Fq(;)g(w)q Fs(\))p Fl(g)p Fq(;)686 3172 y Fs(\()p Fq(\030)s
Fl(nf)p Fs(\(\()p Fq(v)r(;)g(w)q Fs(\))p Fq(;)g(t)p Fs(\))p
Fl(g)p Fs(\))g Fl([)j(f)p Fs(\(\()p Fq(v)r(;)d(v)1279
3149 y Fm(0)1294 3172 y Fs(\))p Fq(;)g(u)p Fs(\))p Fq(;)g
Fs(\(\()p Fq(v)1491 3149 y Fm(0)1505 3172 y Fq(;)g(v)1558
3149 y Fm(00)1587 3172 y Fs(\))p Fq(;)g(u)1665 3180 y
Fu(2)1690 3172 y Fs(\))p Fq(;)g Fs(\(\()p Fq(v)1809 3149
y Fm(0)1823 3172 y Fq(;)g(w)q Fs(\))p Fq(;)g(u)1966 3180
y Fu(1)1991 3172 y Fs(\))p Fl(g)p Fs(\))p Fq(:)370 3273
y Fs(2.)28 b(Otherwise)18 b(there)f(is)j(no)f(c)n(hild-edge)f(of)i
Fq(v)h Fs(lab)r(eled)d(with)h(a)g(substitution)e(that)h(shares)441
3340 y(an)n(y)g(structure)e(with)i Fq(s)p Fs(.)25 b(Return)16
b(\()p Fq(v)r(;)9 b Fy(add)q Fs(\()p Fq(P)r(;)g(v)r(;)g(s)p
Fs(\)\).)304 3423 y(Complexit)n(y:)25 b Fq(O)r Fs(\()p
Fl(j)p Fq(P)8 b Fl(j)p Fs(\(max)o(\()p Fl(j)p Fq(s)p
Fl(j)p Fq(;)h(sub)p 1073 3423 V 20 w(max)p Fs(\()p Fq(P)f
Fs(\)\)\))1332 3403 y Fu(2)1354 3423 y Fs(\))18 b(time.)p
eop
%%Page: 18 20
18 19 bop 304 151 a Fu(18)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)434 1960 y @beginspecial
14 @llx 518 @lly 286 @urx 786 @ury 2720 @rwi @setspecial
%%BeginDocument: figures/split.eps
%!
%%BoundingBox: 14 518 286 786
%%Title: split
%%CreationDate: Tue Aug 4 21:47:10 1998
%%Creator: Tgif-3.0-p17 by William Chia-Wei Cheng (william@cs.UCLA.edu)
/tgifdict 4 dict def
tgifdict begin
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
end
%%PageBoundingBox: 14 518 286 786
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100.000 mul 100 div dup neg scale
gsave
/tgiforigctm matrix currentmatrix def
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
104 156 moveto
104 120 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 76 moveto
256 40 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 76 moveto
448 36 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 312 moveto
256 272 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 312 moveto
448 272 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 140 moveto
448 208 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
104 156 moveto
104 220 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
104 156 moveto
152 216 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
104 156 moveto
56 216 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
76 201 moveto (...) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
112 201 moveto (...) show
grestore
% OVAL
0 setgray
newpath 104 156 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 104 156 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
99 147 moveto 110 147 lineto 110 164 lineto 99 164 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
100 161 moveto (v) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
104 220 moveto
84 256 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
104 220 moveto
124 256 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 104 220 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 104 220 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
99 211 moveto 110 211 lineto 110 228 lineto 99 228 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
100 225 moveto (w) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
96 253 moveto (...) show
grestore
% TEXT
0 setgray
newpath
107 179 moveto 118 179 lineto 118 196 lineto 107 196 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
108 193 moveto (t) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 76 moveto
256 140 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 76 moveto
304 136 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 76 moveto
208 136 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
228 121 moveto (...) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
264 121 moveto (...) show
grestore
% OVAL
0 setgray
newpath 256 76 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 256 76 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
251 67 moveto 262 67 lineto 262 84 lineto 251 84 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
252 81 moveto (v) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 140 moveto
236 176 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 140 moveto
276 176 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 256 140 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 256 140 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
251 131 moveto 262 131 lineto 262 148 lineto 251 148 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
252 145 moveto (w) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
248 173 moveto (...) show
grestore
% TEXT
0 setgray
newpath
259 99 moveto 270 99 lineto 270 116 lineto 259 116 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
260 113 moveto (t) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 312 moveto
256 376 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 312 moveto
304 372 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 312 moveto
208 372 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
228 357 moveto (...) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
264 357 moveto (...) show
grestore
% OVAL
0 setgray
newpath 256 312 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 256 312 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
251 303 moveto 262 303 lineto 262 320 lineto 251 320 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
252 317 moveto (v) show
grestore
% TEXT
0 setgray
newpath
259 335 moveto 270 335 lineto 270 352 lineto 259 352 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
260 349 moveto (u) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 76 moveto
448 140 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 76 moveto
496 136 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 76 moveto
400 136 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
420 121 moveto (...) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
456 121 moveto (...) show
grestore
% OVAL
0 setgray
newpath 448 76 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 448 76 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
443 67 moveto 454 67 lineto 454 84 lineto 443 84 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
444 81 moveto (v) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 140 moveto
408 208 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 140 moveto
488 208 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 448 140 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 448 140 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
443 131 moveto 454 131 lineto 454 148 lineto 443 148 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
444 145 moveto (w) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
424 197 moveto (...) show
grestore
% TEXT
0 setgray
newpath
451 99 moveto 462 99 lineto 462 116 lineto 451 116 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
452 113 moveto (t) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 312 moveto
448 376 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 312 moveto
496 372 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
448 312 moveto
400 372 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
420 357 moveto (...) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
456 357 moveto (...) show
grestore
% OVAL
0 setgray
newpath 448 312 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 448 312 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
443 303 moveto 454 303 lineto 454 320 lineto 443 320 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
444 317 moveto (v) show
grestore
% TEXT
0 setgray
newpath
451 335 moveto 462 335 lineto 462 352 lineto 451 352 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
452 349 moveto (u) show
grestore
% TEXT
0 setgray
newpath
43 95 moveto 174 95 lineto 174 112 lineto 43 112 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
44 109 moveto (Original tree) show
grestore
% TEXT
0 setgray
newpath
227 11 moveto 288 11 lineto 288 28 lineto 227 28 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
228 25 moveto (Case 1) show
grestore
% TEXT
0 setgray
newpath
415 11 moveto 476 11 lineto 476 28 lineto 415 28 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
416 25 moveto (Case 2) show
grestore
% TEXT
0 setgray
newpath
223 243 moveto 284 243 lineto 284 260 lineto 223 260 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
224 257 moveto (Case 3) show
grestore
% TEXT
0 setgray
newpath
415 247 moveto 476 247 lineto 476 264 lineto 415 264 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
416 261 moveto (Case 4) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
456 197 moveto (...) show
grestore
% OVAL
0 setgray
newpath 448 208 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 448 208 12 12 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
gsave
gsave
newpath 448 174 20 58 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
gsave
gsave
newpath 104 188 20 56 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
/Courier-Bold findfont [17 0 0 -17 0 0] makefont setfont
gsave
28 174 moveto (split) show
grestore
% TEXT
0 setgray
/Courier-Bold findfont [17 0 0 -17 0 0] makefont setfont
gsave
372 170 moveto (split) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
45 192 moveto (s) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
388 187 moveto (u) show
grestore
% TEXT
0 setgray
/Courier findfont [8 0 0 -8 0 0] makefont setfont
gsave
398 190 moveto (2) show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 376 moveto
256 448 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 448 moveto
236 484 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
256 448 moveto
276 484 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 256 448 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 256 448 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
251 439 moveto 262 439 lineto 262 456 lineto 251 456 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
252 453 moveto (w) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
248 481 moveto (...) show
grestore
% OVAL
0 setgray
newpath 256 380 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 256 380 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
260 419 moveto (u) show
grestore
% TEXT
0 setgray
/Courier findfont [8 0 0 -8 0 0] makefont setfont
gsave
270 422 moveto (1) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
248 385 moveto (v') show
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
412 448 moveto
448 380 lineto
492 448 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
488 448 moveto
468 484 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
488 448 moveto
508 484 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 488 448 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 488 448 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
483 439 moveto 494 439 lineto 494 456 lineto 483 456 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
484 453 moveto (w) show
grestore
% TEXT
0 setgray
/Courier findfont [10 0 0 -10 0 0] makefont setfont
gsave
480 481 moveto (...) show
grestore
% OVAL
0 setgray
newpath 412 448 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 412 448 12 12 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 448 380 12 12 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 448 380 12 12 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
440 385 moveto (v') show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
404 453 moveto (v'') show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
408 407 moveto (u) show
grestore
% TEXT
0 setgray
/Courier findfont [8 0 0 -8 0 0] makefont setfont
gsave
418 410 moveto (2) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
468 411 moveto (u) show
grestore
% TEXT
0 setgray
/Courier findfont [8 0 0 -8 0 0] makefont setfont
gsave
478 414 moveto (1) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Tue Aug 4 21:47:10 1998
%%EndDocument
@endspecial 1015 2093 a Ft(Figure)h(2.)27 b Ff(split)19
b Fs(cases)304 2247 y Fr(R)m(emark)28 b Fs(2.2.7)p Fr(.)f
Fs(Consider)21 b(Figure)f(2.)35 b(Case)21 b(1)g(illustrates)f(a)i(v)n
(ertex)e Fq(v)k Fs(with)d(c)n(hild)h Fq(w)h Fs(and)304
2314 y(matc)n(hing)18 b(substitution)f Fq(s)881 2294
y Fm(0)913 2314 y Fs(=)f Fq(\030)s Fs(\()p Fq(v)r(;)9
b(w)q Fs(\))19 b(b)r(efore)e(the)h Fy(split)h Fs(algorithm)f(executes.)
25 b(The)18 b(other)304 2380 y(three)e(cases)g(sho)n(w)h(the)g(action)f
(tak)n(en)h(in)h(the)f(other)e(three)h(cases)h(of)g(Step)f(1)i(ab)r(o)n
(v)n(e.)24 b(In)17 b(eac)n(h)304 2447 y(case)g(observ)n(e)g(that)g(the)
h(patterns)d(asso)r(ciated)h(with)i Fq(v)i Fs(and)e Fq(w)i
Fs(cannot)c(ha)n(v)n(e)j(c)n(hanged.)k(The)304 2513 y
Fy(split)16 b Fs(algorithm)f(adds)h(a)g(substitution)f(to)g(a)i(PST)f
(at)f(a)i(v)n(ertex)f(in)g(suc)n(h)g(a)h(w)n(a)n(y)g(that)e(shared)304
2579 y(structure)g(\(detected)g(b)n(y)k(\014nding)e(generalizations\))f
(can)h(b)r(e)g(used.)370 2646 y(Ho)n(w)n(ev)n(er,)d(if)g(there)d(is)i
(ev)n(er)f(more)g(than)g(one)g(edge)g(with)g(whic)n(h)h(a)g
(substitution)e(generalizes)304 2712 y(non-trivially)-5
b(,)21 b(this)e(algorithm)f(will)j(pic)n(k)e(one)g(and)g(ignore)f(the)g
(others.)26 b(This)20 b(could)f(result)304 2779 y(in)j(m)n(ultiple)g(v)
n(ertices)f(in)h(the)f(substitution)e(tree)h(asso)r(ciated)f(with)j
(the)f(same)g(pattern.)33 b(It)304 2845 y(could)15 b(also)g(result)g
(in)h(ine\016cien)n(t)f(pattern)e(storage,)i(b)r(ecause)e(if)j(t)n(w)n
(o)g(v)n(ertices)f(corresp)r(ond)d(to)304 2911 y(the)18
b(same)g(pattern,)f(and)h(a)g(pattern)f(matc)n(hing)h(one)g(already)g
(presen)n(t)f(as)h(a)h(c)n(hild)g(of)g(one)f(of)304 2978
y(them)c(is)i Fy(insert)p Fs(ed,)h(the)d Fy(split)h Fs(algorithm)g
(migh)n(t)h(c)n(ho)r(ose)d(the)i(wrong)f(matc)n(hing)h(v)n(ertex)g(and)
304 3044 y(add)21 b(more)g(duplicate)g(structure)e(to)j(the)f(tree.)34
b(More)21 b(seriously)h(for)f(our)h(needs,)g(in)g(doing)304
3111 y(so)c(the)g(PST)h(migh)n(t)g(also)f(miss)i(structure)c(shared)h
(b)n(y)j(the)e Fe(insert)q Fs(ed)f(pattern)g(and)h(patterns)304
3177 y(already)f(in)i(the)e(tree.)304 3278 y Fy(Algorithm)j(2.2.8)h
Fs(\()p Fy(insert)p Fs(\))p Fy(.)304 3344 y Fs(Input:)i(A)18
b(pattern)e(substitution)g(tree)h Fq(P)26 b Fs(and)18
b(a)g(pattern)e Fq(p)p Fs(.)304 3411 y(Output:)22 b(A)16
b(v)n(ertex)g Fq(v)j Fs(and)d(pattern)e(substitution)g(tree)h
Fq(P)1551 3391 y Fm(0)1583 3411 y Fs(iden)n(tical)h(to)g
Fq(P)24 b Fs(except)15 b(p)r(ossibly)304 3477 y(mo)r(di\014ed)i(so)h
(that)f Fq(pat)795 3485 y Fp(P)832 3477 y Fs(\()p Fq(v)r
Fs(\))d(=)h Fq(p)p Fs(.)p eop
%%Page: 19 21
19 20 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(19)1253 701 y @beginspecial 46 @llx 703 @lly 66 @urx
765 @ury 200 @rwi @setspecial
%%BeginDocument: figures/pst2.eps
%!
%%BoundingBox: 46 703 66 765
%%Title: pst2
%%CreationDate: Mon Aug 17 12:08:02 1998
%%Creator: Tgif-3.0-p17 by William Chia-Wei Cheng (william@cs.UCLA.edu)
/tgifdict 4 dict def
tgifdict begin
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
end
%%PageBoundingBox: 46 703 66 765
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100.000 mul 100 div dup neg scale
gsave
/tgiforigctm matrix currentmatrix def
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
100 65 moveto
100 140 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 100 65 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 100 65 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 100 140 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 100 140 15 15 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
94 59 moveto 102 59 lineto 102 74 lineto 94 74 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
95 71 moveto (r) show
grestore
% TEXT
0 setgray
newpath
94 134 moveto 102 134 lineto 102 149 lineto 94 149 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
95 146 moveto (v) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Mon Aug 17 12:08:02 1998
%%EndDocument
@endspecial 1331 543 a Fy(u)16 b Fl(7!)g Fq(\033)r Fs(\()p
Fq(\034)6 b Fs(\()p Fq(b)p Fs(\))p Fq(;)j(\032)p Fs(\()p
Fq(c)p Fs(\)\))890 991 y Ft(Figure)22 b(3.)27 b Fs(Insertion)16
b(Example)i(\(1\))1095 1704 y @beginspecial 18 @llx 686
@lly 94 @urx 793 @ury 760 @rwi @setspecial
%%BeginDocument: figures/pst3.eps
%!
%%BoundingBox: 18 686 94 793
%%Title: pst3
%%CreationDate: Mon Aug 17 11:53:25 1998
%%Creator: Tgif-3.0-p17 by William Chia-Wei Cheng (william@cs.UCLA.edu)
/tgifdict 4 dict def
tgifdict begin
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
end
%%PageBoundingBox: 18 686 94 793
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100.000 mul 100 div dup neg scale
gsave
/tgiforigctm matrix currentmatrix def
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
100 90 moveto
150 170 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% POLY/OPEN-SPLINE
0 setgray
gsave
newpath
100 15 moveto
100 95 lineto
50 170 lineto
tgiforigctm setmatrix
1 setlinewidth
stroke
grestore
% OVAL
0 setgray
newpath 100 15 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 100 15 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 100 90 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 100 90 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 150 170 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 150 170 15 15 tgifellipse
stroke
grestore
grestore
% OVAL
0 setgray
newpath 50 170 15 15 tgifellipse
closepath 1 setgray fill
0 setgray
gsave
gsave
newpath 50 170 15 15 tgifellipse
stroke
grestore
grestore
% TEXT
0 setgray
newpath
94 9 moveto 102 9 lineto 102 24 lineto 94 24 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
95 21 moveto (r) show
grestore
% TEXT
0 setgray
newpath
44 164 moveto 52 164 lineto 52 179 lineto 44 179 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
45 176 moveto (v) show
grestore
% TEXT
0 setgray
newpath
144 164 moveto 152 164 lineto 152 179 lineto 144 179 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
145 176 moveto (w) show
grestore
% TEXT
0 setgray
newpath
94 84 moveto 102 84 lineto 102 99 lineto 94 99 lineto
closepath 1 setgray fill
0 setgray
/Courier findfont [12 0 0 -12 0 0] makefont setfont
gsave
95 96 moveto (x) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Mon Aug 17 11:53:25 1998
%%EndDocument
@endspecial 1331 1294 a Fy(u)e Fl(7!)g Fq(\033)r Fs(\()p
Fq(\034)6 b Fs(\()p Fy(y)q Fs(\))p Fq(;)j Fy(z)p Fs(\))1017
1452 y Fy(y)15 b Fl(7!)h Fq(b)1017 1515 y Fy(z)f Fl(7!)h
Fq(\032)p Fs(\()p Fq(c)p Fs(\))1426 1452 y Fy(y)g Fl(7!)g
Fq(a)1426 1515 y Fy(z)g Fl(7!)f Fq(d)890 1837 y Ft(Figure)22
b(4.)27 b Fs(Insertion)16 b(Example)i(\(2\))304 1993
y(Pro)r(cedure)d Fy(insert)p Fs(\()p Fq(P)r(;)9 b(p)p
Fs(\):)304 2059 y(Return)16 b Fy(split)p Fs(\()p Fq(P)r(;)9
b Fy(u)p Fs(\()p Fq(P)f Fs(\))p Fq(;)h Fy(u)p Fs(\()p
Fq(P)f Fs(\))k Fl(7!)k Fq(p)p Fs(\).)304 2125 y(Complexit)n(y:)25
b Fq(O)r Fs(\()p Fl(j)p Fq(P)8 b Fl(j)p Fs(\(max)o(\()p
Fl(j)p Fq(p)p Fl(j)p Fq(;)h(sub)p 1075 2125 17 3 v 20
w(max)p Fs(\()p Fq(P)f Fs(\)\)\))1334 2105 y Fu(2)1355
2125 y Fs(\))18 b(time.)304 2226 y Fr(R)m(emark)28 b
Fs(2.2.9)p Fr(.)f Fs(Note)12 b(that)f(if)i Fq(p)g Fs(is)g(already)f
(presen)n(t)g(in)h Fq(P)8 b Fs(,)14 b(then)d Fy(split)p
Fs(\()p Fq(P)r(;)e Fy(u)p Fs(\()p Fq(P)f Fs(\))p Fq(;)h
Fy(u)14 b Fl(7!)i Fq(p)p Fs(\))c(has)304 2293 y(the)18
b(same)g(e\013ect)g(as)h Fy(lo)r(okup)p Fs(\()p Fq(P)r(;)9
b(p)p Fs(\).)26 b(If)19 b(the)f(pattern)f(is)i(already)g(in)g
Fq(P)27 b Fs(then)18 b(no)g(additional)304 2359 y(e\013ort)f(is)i(exp)r
(ended)d(in)i(inserting)f(it.)304 2494 y Fy(Example)k(2.2.10.)26
b Fs(Figure)c(3)h(depicts)f(an)g(empt)n(y)h(pattern)e(substitution)g
(tree)h(to)g(whic)n(h)304 2560 y(only)d(the)g(pattern)e
Fq(\033)r Fs(\()p Fq(\034)6 b Fs(\()p Fq(b)p Fs(\))p
Fq(;)j(\032)p Fs(\()p Fq(c)p Fs(\)\))16 b(has)j(b)r(een)f(added.)26
b(Figure)19 b(4)g(sho)n(ws)g(the)f(same)h(tree)f(after)304
2627 y Fq(\033)r Fs(\()p Fq(\034)6 b Fs(\()p Fq(a)p Fs(\))p
Fq(;)j(d)p Fs(\))14 b(has)h(b)r(een)f(added)h(to)f(it.)24
b(Note)14 b(that)h(after)f(adding)h(the)f(second)g(pattern,)g(the)h
(tree)304 2693 y(w)n(as)23 b(rearranged)c(to)j(tak)n(e)h(adv)m(an)n
(tage)e(of)h(the)g(structure)e(shared)h(b)n(y)i(the)f(t)n(w)n(o)h
(terms,)g(but)304 2760 y(that)17 b(v)n(ertex)h Fq(v)j
Fs(is)e(asso)r(ciated)d(with)i(the)g(same)g(pattern)f(in)i(b)r(oth)e
(trees.)24 b(This)19 b(is)g(imp)r(ortan)n(t)304 2826
y(b)r(ecause)13 b(w)n(e)j(ma)n(y)h(wish)f(to)f(use)g(v)n(ertices)g(to)g
(stand)g(for)g(the)g(patterns)e(asso)r(ciated)h(with)h(them)304
2893 y(in)j(order)f(to)h(sa)n(v)n(e)g(space.)304 2993
y Fr(R)m(emark)28 b Fs(2.2.11)p Fr(.)f Fs(W)-5 b(e)13
b(will)i(assume)e(that)f(if)i(there)e(is)i(a)f(m)n(ultiplicit)n(y)i(w)n
(eigh)n(ting)e Fq(\026)h Fs(asso)r(ciated)304 3060 y(with)20
b(a)h(PST)f Fq(P)8 b Fs(,)21 b(then)f(whenev)n(er)f(a)i(pattern)d(is)j
(inserted)e(in)n(to)i Fq(P)28 b Fs(at)20 b Fq(v)r Fs(,)h(the)f(v)m
(alue)g(of)h Fq(\026)g Fs(is)304 3126 y(incremen)n(ted.)990
3245 y(3.)31 b Ft(Sear)o(ch)20 b(Algorithms)370 3344
y Fs(As)d(discussed)f(ab)r(o)n(v)n(e,)i(in)g(the)e(w)n(orst)h(case)g
(the)f(space)h(complexit)n(y)g(of)h(term)e(compression)304
3411 y(is)i Fq(O)r Fs(\(2)453 3391 y Fp(n)482 3411 y
Fs(\))g(where)f Fq(n)i Fs(is)f(the)f(size)h(of)g(the)f(set)g(of)h
(terms)f(to)h(b)r(e)f(compressed.)22 b(Ho)n(w)n(ev)n(er,)d(in)f(an)n(y)
304 3477 y(giv)n(en)f(instance)e(of)h(the)g(tree)f(compression)g
(problem,)h(the)g(set)g(of)g(patterns)e(actually)i(needed)p
eop
%%Page: 20 22
20 21 bop 304 151 a Fu(20)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(in)h(an)g(optimal)g
(represen)n(tation)d(is)j(small)h(\(only)f Fq(O)r Fs(\()p
Fq(n)p Fs(\))f(space)g(at)h(w)n(orst\).)32 b(When)21
b(w)n(e)g(ha)n(v)n(e)304 350 y(additional)11 b(kno)n(wledge)h(of)g(the)
f(trees)g(w)n(e)h(wish)h(to)e(compress,)i(w)n(e)f(ma)n(y)h(b)r(e)e
(able)h(to)g(restrict)e(our)304 416 y(searc)n(h)i(to)i(small)g(subsets)
f(of)g(the)g(whole)h(pattern)e(space)g(in)j(whic)n(h)f(useful)f
(patterns)f(are)h(lik)n(ely)304 483 y(to)19 b(b)r(e)f(found.)27
b(Our)19 b(approac)n(h)f(will)j(b)r(e)d(to)h(calculate)f(small)i
(\(linear)e(or)h(p)r(olynomial)g(space\))304 549 y(sets)f(of)i
(patterns)d(that)h(are)h(lik)n(ely)i(to)e(b)r(e)g(useful,)h(instead)e
(of)h(exhaustiv)n(ely)h(calculating)e(all)304 616 y(p)r(ossible)f
(patterns.)25 b(W)-5 b(e)18 b(will)j(presen)n(t)c(algorithms)h(that)f
(calculate)g(sets)h(of)h(patterns)d(along)304 682 y(with)21
b(their)g(m)n(ultiplicities)h(in)g(the)f(input)g(terms.)33
b(The)21 b(m)n(ultisets)h(will)g(b)r(e)f(represen)n(ted)e(as)304
748 y(pattern)d(substitution)g(trees)h(with)i(m)n(ultiplicit)n(y)h(lab)
r(elings,)e(in)h(order)e(to)h(try)g(to)g(sa)n(v)n(e)h(space)304
815 y(when)e(p)r(ossible.)370 881 y(In)h(this)g(section)e(w)n(e)i
(presen)n(t)e(three)h(algorithm)f(sc)n(hemes)h(whic)n(h)h(approac)n(h)e
(the)h(problem)304 948 y(in)d(di\013eren)n(t)f(w)n(a)n(ys.)24
b(The)14 b(lo)r(cal)f(algorithms)g(w)n(ork)h(recursiv)n(ely)f(on)h(a)f
(term,)i(for)e(eac)n(h)g(subterm)304 1014 y(inserting)i(some)h(matc)n
(hing)g(patterns)e(in)n(to)j(the)f(set.)23 b(The)16 b(global)h
(algorithm)e(starts)g(with)i(an)304 1080 y(initial)22
b(set)f(of)h(small)g(pattern)e(o)r(ccurrences,)f(and)i(then)g(iterativ)
n(ely)g(uses)g(the)g(o)r(ccurrences)304 1147 y(to)g(build)h(up)g
(larger)e(o)r(ccurrences.)32 b(The)22 b(extended)e(Lemp)r(el-Ziv)h
(algorithm)g(p)r(erforms)f(an)304 1213 y(analogue)12
b(of)i(a)h(Lemp)r(el-Ziv)e(scan)h(on)g(the)f(term,)i(using)e(pattern)f
(substitution)h(trees)f(to)i(store)304 1280 y(the)e(observ)n(ed)g
(patterns.)21 b(F)-5 b(or)13 b(the)f(\014rst)g(t)n(w)n(o)i(approac)n
(hes)d(w)n(e)i(presen)n(t)f(a)h(complete)e(algorithm)304
1346 y(whic)n(h)24 b(generates)e(all)j(p)r(ossible)e(patterns,)g(and)h
(appro)n(ximate)f(algorithms)g(based)g(on)h(the)304 1413
y(complete)d(algorithm)g(whic)n(h)i(limit)h(the)e(searc)n(h)f(space)g
(in)i(some)f(w)n(a)n(y)-5 b(.)40 b(The)22 b(appro)n(ximate)304
1479 y(algorithms)d(represen)n(t)f(compromises)h(whic)n(h)i
(sacri\014ce)e(some)h(e\013ectiv)n(eness)f(for)h(e\016ciency)-5
b(.)304 1545 y(The)20 b(algorithms)g(giv)n(en)i(w)n(ork)f(on)g(one)f
(term)g(at)h(a)g(time,)h(but)e(the)g(\014nal)h(section)f(discusses)304
1612 y(extending)c(these)h(algorithms)g(to)h(searc)n(h)f(for)h
(patterns)d(in)k(sets)e(of)h(terms.)304 1736 y(3.1.)32
b Fy(Lo)r(cal.)27 b Fs(The)16 b Fr(lo)m(c)m(al)25 b Fs(pattern)15
b(searc)n(h)h(sc)n(hemes)g(pro)r(ceed)f(recursiv)n(ely)h(on)h(the)f
(structure)304 1802 y(of)22 b(the)g(terms)g(w)n(e)h(wish)f(to)h
(compress.)36 b(F)-5 b(or)23 b(eac)n(h)f(subterm)f(of)h(eac)n(h)g
(term,)i(a)e(lo)r(cal)g(algo-)304 1869 y(rithm)d(computes)e(a)i(set)f
(of)h(patterns)e(that)h(matc)n(h)g(that)g(term)g(and)h(adds)f(them)h
(to)f(a)h(set)g(of)304 1935 y(patterns)13 b(that)i(is)i(carried)d
(along)i(the)f(computation.)22 b(Lo)r(cal)15 b(algorithms)g(generate)e
(patterns)304 2002 y(that)19 b(dep)r(end)f(only)j(on)f(information)f
(\\lo)r(cal")h(to)g(the)f(subterms)g(under)g(consideration;)h(no)304
2068 y(kno)n(wledge)d(of)h(the)g(rest)f(of)h(the)f(term)g(is)i(used.)
370 2134 y(F)-5 b(or)17 b(the)f(follo)n(wing)i(lo)r(cal)e(algorithm)g
(sc)n(heme)g(w)n(e)h(will)i(assume)d(some)g(e\016cien)n(t)g(structure)
304 2201 y(for)d(storing)f(m)n(ultisets)h(of)h(patterns)d(is)j(giv)n
(en)g(without)e(necessarily)g(requiring)h(that)f(structure)304
2267 y(to)20 b(b)r(e)f(a)i(pattern)d(substitution)h(tree.)30
b(If)21 b(pattern)d(substitution)h(trees)g(are)g(used,)i(then)e(the)304
2334 y(union)g(op)r(eration)e(can)i(b)r(e)f(implemen)n(ted)h(with)h
(successiv)n(e)e Fy(insert)p Fs(s)i(and)f(mo)r(di\014cations)f(of)304
2400 y Fq(\026)p Fs(.)25 b(W)-5 b(e)17 b(will)i(also)e(assume)f(that)g
(some)g(function)g Fq(f)22 b Fs(:)15 b Fq(T)8 b(er)r(m)1568
2408 y Fu(\006)p Fp(X)1656 2400 y Fl(!)16 b(P)5 b Fs(\()p
Fq(P)j(at)1885 2380 y Fp(Y)1885 2415 y Fu(\006)p Fp(X)1958
2400 y Fs(\))17 b(is)g(giv)n(en)h(that)304 2466 y(generates)d(a)j(set)g
(of)g(patterns)d(matc)n(hing)j(a)g(term.)304 2573 y Fy(Algorithm)i
(3.1.1)h Fs(\()p Fy(lo)r(cal)p Fs(\))p Fy(.)304 2639
y Fs(Input:)i(A)18 b(term)g Fq(t)p Fs(,)h(m)n(ultiset)f
Fq(S)g Fl(\022)e Fq(P)8 b(at)1142 2619 y Fp(Y)1142 2655
y Fu(\006)p Fp(X)1215 2639 y Fs(,)19 b(and)e(function)g
Fq(f)k Fs(:)16 b Fq(T)8 b(er)r(m)1794 2647 y Fu(\006)p
Fp(X)1882 2639 y Fl(!)16 b Fq(P)8 b(at)2046 2619 y Fp(Y)2046
2655 y Fu(\006)p Fp(X)304 2706 y Fs(Output:)23 b(A)18
b(m)n(ultiset)g(of)g(patterns.)304 2772 y(Pro)r(cedure)d
Fy(lo)r(cal\(t,f)6 b(\))p Fs(:)304 2839 y(Return)16 b
Fy(lo)r(cal)621 2819 y Fm(0)636 2839 y Fs(\()p Fq(t;)9
b Fl(;)p Fq(;)g(f)d Fs(\).)304 2905 y(Pro)r(cedure)15
b Fy(lo)r(cal)697 2885 y Fm(0)711 2905 y Fs(\()p Fq(t;)9
b(S;)g(f)d Fs(\))370 2989 y(1.)28 b(If)18 b Fq(t)h Fs(is)f(a)g(constan)
n(t)f(or)g(v)m(ariable)h(then)f(return)g Fq(S)e Fl([)d
Fq(f)6 b Fs(\()p Fq(t)p Fs(\).)370 3056 y(2.)28 b(If)18
b Fq(t)e Fs(=)f Fq(\033)r Fs(\()p Fq(t)666 3064 y Fu(1)690
3056 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(t)842 3064 y Fp(n)872
3056 y Fs(\))18 b(then)f(let)1060 3158 y Fq(S)1094 3166
y Fu(1)1134 3158 y Fs(=)e Fy(lo)r(cal)1321 3135 y Fm(0)1336
3158 y Fs(\()p Fq(t)1378 3166 y Fu(1)1402 3158 y Fq(;)9
b(S;)g(f)d Fs(\))441 3259 y(and)17 b(for)h(eac)n(h)g
Fq(i)p Fs(,)h(2)c Fl(\024)g Fq(i)h Fl(\024)f Fq(n)p Fs(,)k(let)993
3361 y Fq(S)1027 3369 y Fp(i)1060 3361 y Fs(=)d Fy(lo)r(cal)1248
3338 y Fm(0)1263 3361 y Fs(\()p Fq(t)1305 3369 y Fp(i)p
Fm(\000)p Fu(1)1379 3361 y Fq(;)9 b(S)1437 3369 y Fp(i)p
Fm(\000)p Fu(1)1513 3361 y Fq(;)g(f)d Fs(\))p Fq(:)441
3463 y Fs(Finally)-5 b(,)20 b(return)c Fq(S)843 3471
y Fp(n)886 3463 y Fl([)c Fq(f)6 b Fs(\()p Fq(t)p Fs(\).)p
eop
%%Page: 21 23
21 22 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(21)370 283 y Fs(Based)15 b(on)g(the)g(argumen)n(t)f(ab)r(o)n(v)n(e)h
(concerning)e(sets)i(of)g(all)h(p)r(ossible)f(patterns,)f(w)n(e)h(can)g
(see)304 350 y(ho)n(w)i(a)f(lo)r(cal)g(algorithm)g(could)g(construct)e
(the)i(set)g(of)g(all)i(patterns)c(matc)n(hing)i(a)h(term.)23
b(The)304 416 y(patterns)17 b(calculated)h(for)i(eac)n(h)f(subterm)g
(could)g(b)r(e)g(all)i(patterns)c(matc)n(hing)j(the)f(subterm.)304
483 y(Ho)n(w)n(ev)n(er,)k(w)n(e)g(ha)n(v)n(e)f(already)g(seen)f(that)g
(this)h(approac)n(h)e(migh)n(t)j(not)e(b)r(e)g(feasible)h(b)r(ecause)
304 549 y(the)c(n)n(um)n(b)r(er)h(of)g(patterns)e(can)i(to)g(gro)n(w)g
(exp)r(onen)n(tially)g(in)g(the)g(w)n(orst)g(case.)27
b(This)20 b(form)f(of)304 616 y(the)f(lo)r(cal)h(algorithm)f(do)r(es)g
(terminate)f(and)i(generate)d(the)j(complete)e(set)i(of)g(patterns,)e
(but)304 682 y(it)g(cannot)e(b)r(e)h(implemen)n(ted)g(e\016cien)n(tly)
-5 b(.)25 b(W)-5 b(e)17 b(will)h(refer)e(to)g(this)h(complete)e(lo)r
(cal)h(algorithm)304 748 y(as)i(\()p Fy(LC)o Fs(\).)370
815 y(W)-5 b(e)19 b(could)f(limit)h(the)f(size)g(of)g(the)g(set)g(of)g
(patterns)e(generated)g(b)n(y)j(only)g(generating)d(pat-)304
881 y(terns)j(of)i(heigh)n(t)f(less)g(than)g(a)h(giv)n(en)g(limit)g
Fq(h)p Fs(.)33 b(Then)20 b(the)g(n)n(um)n(b)r(er)g(of)g(patterns)e
(generated)304 948 y(could)k(at)h(most)f(b)r(e)g Fq(nT)814
956 y Fp(h)843 948 y Fs(,)j(where)d Fq(n)h Fs(is)h(the)e(size)h(of)g
(the)f(term)g(and)g Fq(T)1824 956 y Fp(h)1876 948 y Fs(is)i(some)e(\(p)
r(ossibly)304 1014 y(large\))16 b(constan)n(t,)g(as)h(calculated)e(ab)r
(o)n(v)n(e.)24 b(Therefore)15 b(this)i(v)n(ersion)g(of)g(lo)r(cal)g
(searc)n(h)f(is)i(linear)304 1080 y(space.)23 b(W)-5
b(e)18 b(will)i(call)f(this)e(heigh)n(t-b)r(ounding)f(algorithm)i(\()p
Fy(LC)1653 1088 y Fj(h)1683 1080 y Fs(\).)370 1147 y(Another)12
b(approac)n(h)g(w)n(ould)i(b)r(e)f(to)g(try)g(to)h(generalize)e(the)h
(subterm)f(with)i(all)g(the)f(patterns)304 1213 y(seen)k(already)g(in)i
(the)e(term,)h(adding)g(an)n(y)g(new)g(patterns)e(whic)n(h)i(are)g
(seen)f(to)h(the)f(set.)24 b(This)304 1280 y(is)f(not)g(strictly)f(a)h
(lo)r(cal)g(algorithm,)g(b)r(ecause)e(it)i(uses)g(information)f(from)g
(other)g(parts)g(of)304 1346 y(the)d(term.)31 b(Ho)n(w)n(ev)n(er,)21
b(this)g(is)f(essen)n(tially)h(what)e(pattern)g(substitution)f(trees)h
(do)h(in)h(order)304 1413 y(to)h(store)e(sets)i(of)g(patterns)e
(e\016cien)n(tly)-5 b(,)24 b(so)e(it)h(is)f(just)g(taking)g(adv)m(an)n
(tage)e(of)i(w)n(ork)h(that)e(is)304 1479 y(already)f(b)r(eing)f(done.)
32 b(If)21 b(this)g(approac)n(h)e(is)i(to)f(b)r(e)g(tak)n(en)g(then)g
(algorithm)g(3.1.1)h(can)f(still)304 1545 y(b)r(e)d(used,)g(but)g(the)g
(resulting)f(substitution)g(tree)g(m)n(ust)i(afterw)n(ards)d(b)r(e)i
(in)n(terpreted)e(so)j(that)304 1612 y(not)k(only)g(the)g(patterns)e
(sp)r(eci\014cally)i(inserted)f(in)n(to)i(the)e(substitution)g(tree)g
(but)h(also)g(the)304 1678 y(in)n(termediate,)14 b(\\disco)n(v)n(ered")
g(patterns)g(are)g(seen)h(as)g(mem)n(b)r(ers)f(of)i(the)e(set)h(the)g
(substitution)304 1745 y(tree)f(represen)n(ts.)21 b(This)16
b(is)g(the)f(main)h(reason)e(for)h(using)h(pattern)d(substitution)h
(trees)g(instead)304 1811 y(of)k(ordinary)f(substitution)f(trees.)370
1877 y(One)f(p)r(ossibilit)n(y)h(w)n(ould)g(b)r(e)e(to)h(simply)h(add)f
(eac)n(h)g(subterm)f(to)h(the)f(pattern)g(substitution)304
1944 y(tree)k(and)h(then)f(consider)g(all)i(the)f(in)n(termediate)f
(patterns)f(it)i(generates)e(to)i(b)r(e)g(part)f(of)h(the)304
2010 y(generated)f(set.)33 b(Supp)r(ose)20 b(the)g(algorithm)h(w)n(ere)
f(applied)h(to)g(a)g(binary)g(term)g Fq(t)2031 2018 y
Fp(h)2081 2010 y Fs(of)g(heigh)n(t)304 2077 y Fq(h)i
Fs(with)g(no)f(shared)g(structure;)h(that)e(is,)k(ev)n(ery)e(op)r
(erator,)f(constan)n(t,)g(and)h(v)m(ariable)f(in)i Fq(t)2268
2085 y Fp(h)304 2143 y Fs(w)n(as)16 b(di\013eren)n(t.)24
b(Then)16 b(eac)n(h)g(subterm)f(w)n(ould)i(require)e(a)i(new)f(c)n
(hild)h(of)f(the)g(ro)r(ot)f(of)h(the)g(PST)304 2210
y(lab)r(eled)21 b(with)h(the)g(substitution)e Fy(u)j
Fl(7!)g Fq(t)p Fs(.)38 b(Since)22 b(there)f(are)g(ab)r(out)g(2)1830
2189 y Fp(h)1881 2210 y Fs(subterms)g(eac)n(h)h(of)304
2276 y(size)e(at)f(most)h(2)646 2256 y Fp(h)674 2276
y Fs(,)i(the)d(space)g(required)g(is)i(at)e(most)h Fq(O)r
Fs(\(2)1536 2256 y Fp(h)1577 2276 y Fl(\001)14 b Fs(2)1634
2256 y Fp(h)1663 2276 y Fs(\))k(=)h Fq(O)r Fs(\()p Fq(n)1864
2256 y Fu(2)1888 2276 y Fs(\),)i(where)e Fq(n)i Fs(is)f(the)304
2342 y(size)c(of)g(the)f(term.)24 b(Therefore,)14 b(the)i(space)f
(required)g(could)h(b)r(e)f(quadratic)g(in)i(the)e(size)h(of)g(the)304
2409 y(original)i(term.)370 2475 y(This)k(PST-based)f(algorithm,)i
(whic)n(h)f(w)n(e)g(will)i(call)e(\()p Fy(LP)o Fs(\),)h(is)g(nearly)e
(complete)g(in)h(the)304 2542 y(sense)11 b(that)g(it)h(is)g(lik)n(ely)i
(to)e(generate)d(most)j(of)g(the)f(patterns)f(w)n(orth)h(kno)n(wing)h
(ab)r(out)e(\(patterns)304 2608 y(that)h(o)r(ccur)f(more)h(than)g
(once\).)22 b(Some)11 b(shared)g(structure)e(migh)n(t)j(not)g(b)r(e)f
(noticed)g(b)n(y)i(the)e(PST)304 2674 y(b)r(ecause)i(of)i(the)g(\015a)n
(w)g(men)n(tioned)f(in)i(Remark)f(2.2.7.)24 b(This)15
b(algorithm)g(is)h Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)2000
2654 y Fu(2)2025 2674 y Fs(\))f(space)f(and)304 2741
y Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(jj)p Fq(P)8 b Fl(j)p
Fs(\(max)o(\()p Fl(j)p Fq(t)p Fl(j)p Fq(;)h(sub)p 799
2741 17 3 v 20 w(max)p Fs(\()p Fq(P)f Fs(\)\)\))1058
2721 y Fu(2)1080 2741 y Fs(\))22 b(time)f(in)h(the)f(w)n(orst)g(case.)
34 b(Since)22 b Fl(j)p Fq(P)8 b Fl(j)21 b Fs(migh)n(t)h(require)304
2807 y Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)420 2787 y Fu(2)445
2807 y Fs(\))j(space,)i(this)f(is)g(actually)g Fq(O)r
Fs(\()p Fl(j)p Fq(t)p Fl(j)1179 2787 y Fu(5)1204 2807
y Fs(\))f(time,)j(but)e(in)g(practice)e(the)h(time)h(needed)e(for)304
2874 y(insertion)17 b(migh)n(t)i(b)r(e)e(constan)n(t)g(or)h(linear)g
(on)g(a)n(v)n(erage,)g(yielding)h(a)n(v)n(erage)f Fq(O)r
Fs(\()p Fl(j)p Fq(t)p Fl(j)p Fs(\))g(or)g Fq(O)r Fs(\()p
Fl(j)p Fq(t)p Fl(j)2250 2854 y Fu(2)2275 2874 y Fs(\))304
2940 y(time.)41 b(F)-5 b(or)24 b(large)f(terms)g Fy(LP)g
Fs(is)i(lik)n(ely)g(to)f(require)e(to)r(o)h(m)n(uc)n(h)h(space)e(to)i
(pro)r(duce)d(useful)304 3007 y(results)c(on)h(real)f(mac)n(hines.)370
3073 y(Again,)j(w)n(e)h(can)e(a)n(v)n(oid)i(this)e(di\016cult)n(y)i(if)
f(instead)f(of)h(adding)f(the)g(en)n(tire)h(term,)g(w)n(e)g(add)304
3139 y(only)i(a)g(pattern)e(matc)n(hing)h(part)g(of)h(the)g(term)f(to)h
(the)f(substitution)f(tree.)35 b(F)-5 b(or)23 b(example,)304
3206 y(w)n(e)d(could)g(simply)h(add)f(only)g(the)f(pattern)f
Fq(p)1273 3214 y Fp(h)1322 3206 y Fs(that)h(is)i(the)e(largest)g
(pattern)f(that)h(matc)n(hes)304 3272 y(the)c(subterm)g(whose)h(heigh)n
(t)g(is)h Fl(\024)e Fq(h)p Fs(.)25 b(Then)15 b(the)h(space)f(required)h
(for)g(the)f(substitution)g(tree)304 3339 y(w)n(ould)24
b(b)r(e)f(at)h(most)g Fq(nT)833 3347 y Fp(h)862 3339
y Fs(.)43 b(This)24 b(heigh)n(t-b)r(ounded)e(PST)h(algorithm)h(\()p
Fy(LP)1946 3347 y Fp(h)1975 3339 y Fs(\))g(is)g(therefore)304
3405 y Fq(O)r Fs(\()p Fq(n)p Fs(\))17 b(space,)g(with)h(a)g(p)r
(ossibly)g(large)g(constan)n(t)e(factor,)h(and)g(cannot)f(generate)g
(patterns)g(of)304 3472 y(heigh)n(t)h(greater)f(than)h
Fq(h)p Fs(.)p eop
%%Page: 22 24
22 23 bop 304 151 a Fu(22)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(3.2.)32
b Fy(Global.)27 b Fs(The)16 b Fr(glob)m(al)24 b Fs(algorithm)16
b(sc)n(heme,)g(as)g(its)h(name)f(indicates,)g(searc)n(hes)f(for)h(use-)
304 350 y(ful)23 b(patterns)e(b)n(y)j(considering)d(information)h(from)
h(man)n(y)h(parts)e(of)h(the)f(term,)i(instead)e(of)304
416 y(restricting)f(atten)n(tion)g(to)h(one)h(subterm)e(at)i(a)g(time.)
39 b(It)23 b(op)r(erates)d(b)n(y)k(\014rst)e(generating)f(a)304
483 y(pattern)h(o)r(ccurrence)f(for)j(eac)n(h)g(p)r(osition)f(in)i(the)
f(term)g(\(generally)f(a)h(small)i(one\).)42 b(Then)304
549 y(it)23 b(iterates)d(o)n(v)n(er)j(all)h(term)e(p)r(ositions)f(to)h
(try)h(to)f(\014nd)g(pairs)g(of)h(o)r(ccurrences)c(that)i(can)h(b)r(e)
304 616 y(com)n(bined)17 b(to)h(form)g(o)r(ccurrences)c(of)k(new)g
(patterns.)370 682 y(The)e(follo)n(wing)h(algorithm)f(is)h(generalized)
d(to)i(an)n(y)h(starting)d(set)i(of)g(pattern)e(o)r(ccurrences)304
748 y(and)k(a)h(limiting)h(function)e Fq(f)25 b Fs(whic)n(h)19
b(determines)e(when)h(the)h(algorithm)f(should)g(terminate.)304
815 y(Again,)f(it)h(do)r(es)f(not)g(require)g(that)f(pattern)g
(substitution)f(trees)i(b)r(e)g(used)g(to)g(represen)n(t)e(sets)304
881 y(of)j(patterns.)304 988 y Fy(Algorithm)i(3.2.1.)304
1054 y Fs(Input:)j(A)18 b(term)g Fq(t)g Fs(and)g(set)f
Fq(S)22 b Fs(of)c(o)r(ccurrences)c(of)k Fq(t)304 1121
y Fs(Output:)23 b(A)18 b(set)f(of)h(o)r(ccurrences)d(of)j
Fq(t)p Fs(.)304 1187 y(Pro)r(cedure)d Fy(global)p Fs(\()p
Fq(t;)9 b(S)s Fs(\):)370 1271 y(1.)28 b(Set)17 b(v)m(alue)h
Ff(flag)h Fs(to)f Fy(false)370 1338 y Fs(2.)28 b(F)-5
b(or)18 b(eac)n(h)g(p)r(osition)f Fq(p)h Fs(of)g Fq(t)p
Fs(:)446 1404 y(\(a\))27 b(F)-5 b(or)12 b(eac)n(h)g(pair)g(of)g(o)r
(ccurrences)d Fq(c)15 b Fs(=)g(\()p Fq(l)q(;)9 b(s)p
Fs(\))p Fq(;)g(d)15 b Fs(=)h(\()p Fq(m;)9 b(t)p Fs(\))14
b Fl(2)i Fq(S)g Fs(suc)n(h)11 b(that)h(\()p Fq(m;)d Fy(y)q
Fs(\))14 b Fl(2)h Fq(s)p Fs(,)545 1471 y(if)k Fq(j)s(oin)701
1479 y Fp(m)743 1471 y Fs(\()p Fq(c;)9 b(d)p Fs(\))18
b(is)g(not)g(in)g Fq(S)k Fs(then)17 b(insert)g(it)h(in)n(to)h
Fq(S)i Fs(and)d(set)f Ff(flag)i Fs(to)f Fy(true)p Fs(.)370
1537 y(3.)28 b(If)18 b Ff(flag)e Fs(=)f Fy(false)k Fs(then)e(return)g
Fq(S)s Fs(,)h(otherwise)f(return)f Fy(global)p Fs(\()p
Fq(t;)9 b(S)s Fs(\).)370 1644 y(If)17 b(the)e(initial)i(set)e(of)h(o)r
(ccurrences)d(is)j(the)g(set)f(of)h(o)r(ccurrences)d(of)j(linear)f
(atomic)h(patterns)304 1710 y(at)k(eac)n(h)g(subterm)g(p)r(osition,)h
(then)e(clearly)i(an)n(y)h(linear)e(pattern)f(o)r(ccurrence)e(can)j(b)r
(e)g(built)304 1776 y(up)c(from)h(these)f(o)r(ccurrences)o(.)21
b(The)16 b(complete)g(v)n(ersion)h(of)f(the)h(global)f(algorithm)g
(generates)304 1843 y(all)i(the)f(atomic)f(patterns)g(and)h(then,)g
(for)g(eac)n(h)f(p)r(osition)h Fq(p)p Fs(,)h(join)f(eac)n(h)g(o)r
(ccurrence)d(starting)304 1909 y(at)23 b Fq(p)h Fs(with)g(eac)n(h)f(o)r
(ccurrence)d(terminating)i(at)i Fq(p)g Fs(and)f(add)g(the)g(resulting)g
(o)r(ccurrence)d(to)304 1976 y(the)c(set,)h(terminating)e(when)h(an)h
(iteration)e(o)n(v)n(er)j(the)e(en)n(tire)g(term)g(yields)h(no)g(new)g
(patterns.)304 2042 y(This)i(form)g(of)g(the)g(algorithm)f(\()p
Fy(GC)p Fs(\))h(w)n(ould)g(b)r(e)g(complete,)f(but)h(can)g(require)f
(exp)r(onen)n(tial)304 2108 y(space)f(and)g(time)h(to)g(run.)370
2175 y(It)13 b(is)h(not)e(di\016cult)h(to)g(see)f(ho)n(w)i(algorithm)e
(3.2.1)h(could)g(b)r(e)f(mo)r(di\014ed)g(to)h(limit)h(the)e(n)n(um)n(b)
r(er)304 2241 y(of)20 b(total)f(pattern)e(joins)j(that)f(ma)n(y)i(o)r
(ccur.)28 b(Then)19 b(the)g(running)g(time)h(is)h(at)e(most)h
Fq(O)r Fs(\()p Fq(i)p Fl(j)p Fq(S)s Fl(j)2250 2221 y
Fu(2)2275 2241 y Fs(\))304 2308 y(and)g(the)h(n)n(um)n(b)r(er)g(of)g
(patterns)e(calculated)g Fq(O)r Fs(\()p Fq(i)p Fs(\).)33
b(This)22 b(v)m(ariation)e(of)h(the)g(algorithm)f(will)304
2374 y(b)r(e)d(called)h(\()p Fy(GI)632 2382 y Fp(i)650
2374 y Fs(\).)25 b(It)17 b(is)i(not)f(complete,)f(but)g(can)h(b)r(e)f
(implemen)n(ted)g(e\016cien)n(tly)-5 b(.)370 2441 y(The)17
b(general)f(algorithm)g(3.2.1)h(could)g(also)g(b)r(e)g(mo)r(di\014ed)f
(to)g(limit)j(the)d(n)n(um)n(b)r(er)h(of)g(times)304
2507 y(a)k(pattern)e(is)i(used)g(b)n(y)h(using)f(m)n(ultisets)f(for)h
Fq(S)k Fs(and)20 b(remo)n(ving)h(one)g(instance)e(of)i(eac)n(h)g(o)r
(c-)304 2573 y(currence)15 b(whenev)n(er)i(it)h(is)g(used)f(to)h(build)
g(another)e(o)r(ccurrence.)21 b(The)c(n)n(um)n(b)r(er)g(of)h(times)g
(an)304 2640 y(o)r(ccurrence)e(could)j(b)r(e)g(used)h(w)n(ould)g(b)r(e)
f(determined)f(b)n(y)j(the)e(n)n(um)n(b)r(er)g(of)h(instances)e(it)i
(had)304 2706 y(in)f(the)g(initial)h(m)n(ultiset)f(of)g(o)r
(ccurrences.)24 b(W)-5 b(e)19 b(will)i(call)f(this)f(algorithm)f(\()p
Fy(GM)2027 2714 y Fp(m)2069 2706 y Fs(\).)28 b(If)19
b(eac)n(h)304 2773 y(pattern)f(in)k(the)e(m)n(ultiset)g(had)g(m)n
(ultiplicit)n(y)j(at)d(most)g Fq(m)p Fs(,)i(then)e(the)g(running)g
(time)g(w)n(ould)304 2839 y(b)r(e)d Fq(O)r Fs(\()p Fq(m)p
Fl(j)p Fq(S)s Fl(j)561 2819 y Fu(3)586 2839 y Fs(\))h(and)f(n)n(um)n(b)
r(er)h(of)g(patterns)e(calculated)g(w)n(ould)i(b)r(e)g
Fq(O)r Fs(\()p Fq(m)p Fl(j)p Fq(S)s Fl(j)p Fs(\).)370
2905 y(Also,)23 b(the)d(algorithm)h(could)g(b)r(e)f(implemen)n(ted)h
(more)g(e\016cien)n(tly)g(b)n(y)h(indexing)g(the)e(set)304
2972 y(\(or)15 b(m)n(ultiset\))g(of)h(o)r(ccurrences)c(so)k(that)f
(neigh)n(b)r(oring)f(o)r(ccurrences)e(and)j(o)r(ccurrences)e(of)i(the)
304 3038 y(same)22 b(pattern)e(are)i(easy)g(to)g(\014nd.)37
b(Then)22 b(man)n(y)h(similar)g(pairs)f(of)h(o)r(ccurrences)18
b(could)k(b)r(e)304 3105 y(e\016cien)n(tly)f(joined)g(sim)n
(ultaneously)-5 b(.)34 b(P)n(atterns)19 b(whic)n(h)i(only)h(o)r(ccur)d
(once)i(in)g(the)g(term)f(are)304 3171 y(useless)e(as)h(candidates)d
(for)j(compression,)f(so)g(this)h(v)n(ersion)g(of)g(the)f(algorithm)g
(could)h(a)n(v)n(oid)304 3238 y(joining)h(pairs)h(of)f(o)r(ccurrences)d
(that)j(are)g(not)g(similar)h(to)f(an)n(y)h(other)f(pairs.)32
b(Consider)19 b(the)304 3304 y(follo)n(wing)f(algorithm:)304
3411 y Fy(Algorithm)i(3.2.2)h Fs(\()p Fy(indexed)p 1005
3411 20 3 v 23 w(global)p Fs(\))p Fy(.)304 3477 y Fs(Input:)h(A)15
b(term)g Fq(t)h Fs(and)f(families)h(\()p Fq(P)1061 3485
y Fp(p)1101 3477 y Fl(j)g Fq(p)f Fl(2)g Fq(P)8 b(at)1320
3457 y Fp(Y)1320 3492 y Fu(\006)p Fp(X)1393 3477 y Fs(\))15
b(\(the)g Fr(p)m(attern)22 b Fs(index\),)16 b(\()p Fq(S)1975
3485 y Fp(m)2032 3477 y Fl(j)g Fq(m)e Fl(2)i Fq(P)8 b(os)p
Fs(\))p eop
%%Page: 23 25
23 24 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(23)304 283 y Fs(\(the)12 b Fr(starting)20 b Fs(index\))13
b(and)f(\()p Fq(T)941 291 y Fp(l)974 283 y Fl(j)j Fq(l)h
Fl(2)g Fq(P)8 b(os)p Fs(\))k(\(the)g Fr(terminating)21
b Fs(index\))13 b(of)g(sets)f(of)h(o)r(ccurrences)304
350 y(of)18 b(patterns)e(in)i Fq(t)304 416 y Fs(Output:)23
b(A)18 b(set)f(of)h(o)r(ccurrences)d(of)j Fq(t)304 483
y Fs(Pro)r(cedure)d Fy(indexed)p 786 483 17 3 v 20 w(global)p
Fs(\()p Fq(t;)9 b(S)s Fs(\):)370 569 y(1.)28 b(Set)17
b(v)m(alue)h Ff(flag)h Fs(to)f Fy(false)370 635 y Fs(2.)28
b(F)-5 b(or)18 b(eac)n(h)g(p)r(osition)f Fq(m)h Fs(of)g
Fq(t)p Fs(:)446 701 y(\(a\))27 b(F)-5 b(or)23 b(eac)n(h)f(pair)h(\()p
Fq(c;)9 b(d)p Fs(\))23 b Fl(2)g Fq(S)1135 709 y Fp(m)1193
701 y Fl(\002)15 b Fq(T)1283 709 y Fp(m)1326 701 y Fs(,)25
b(supp)r(ose)c Fq(p)i Fs(=)g Fq(pat)1773 709 y Fp(t)1793
701 y Fs(\()p Fq(c)p Fs(\))f(and)h Fq(q)i Fs(=)e Fq(pat)2189
709 y Fp(t)2209 701 y Fs(\()p Fq(d)p Fs(\).)545 768 y(Consider)12
b(the)h(set)f Fl(f)p Fs(\()p Fq(c)1017 776 y Fu(1)1041
768 y Fq(;)d(d)1094 776 y Fu(1)1119 768 y Fs(\))p Fq(;)g(:)g(:)g(:)21
b(;)9 b Fs(\()p Fq(c)1319 776 y Fp(n)1349 768 y Fq(;)g(d)1402
776 y Fp(n)1432 768 y Fs(\))p Fl(g)k Fs(of)g(all)h(joinable)f(pairs)g
(of)g(o)r(ccurrences)545 834 y(in)26 b Fq(P)653 842 y
Fp(p)695 834 y Fl(\002)17 b Fq(P)791 842 y Fp(q)815 834
y Fs(,)29 b(and)c(supp)r(ose)e(that)i(for)g(eac)n(h)g
Fq(i)p Fs(,)j(\(1)f Fl(\024)g Fq(i)h Fl(\024)g Fq(n)p
Fs(\),)g Fq(c)1990 842 y Fp(i)2034 834 y Fs(and)d Fq(d)2178
842 y Fp(i)2222 834 y Fs(are)545 901 y(joinable)c(at)h
Fq(m)877 909 y Fp(i)895 901 y Fs(.)37 b(If)22 b Fq(n)h(>)f
Fs(1)g(then)f(for)g(eac)n(h)h Fq(i)h Fs(\(1)e Fl(\024)h
Fq(i)g Fl(\024)g Fq(n)p Fs(\))g(if)h(the)e(o)r(ccurrence)545
967 y(\()p Fq(l)q(;)9 b(s)p Fs(\))25 b(=)g Fq(j)s(oin)855
975 y Fp(m)894 981 y Fg(i)915 967 y Fs(\()p Fq(c)961
975 y Fp(i)979 967 y Fq(;)9 b(d)1032 975 y Fp(i)1051
967 y Fs(\))24 b(is)g(not)g(in)h Fq(S)1368 975 y Fp(l)1409
967 y Fs(or)f Fq(T)1515 977 y Fp(s)p Fu(\()p Fj(z)p Fu(\))1620
967 y Fs(for)g(some)g Fy(z)i Fl(2)f Fq(D)r(om)p Fs(\()p
Fq(s)p Fs(\))e(then)545 1033 y(insert)17 b(it)h(and)g(set)f
Ff(flag)i Fs(to)f Fy(true)p Fs(.)370 1100 y(3.)28 b(If)18
b Ff(flag)e Fs(=)f Fy(false)k Fs(then)e(return)g Fq(S)s
Fs(,)h(otherwise)f(return)f Fy(global)p Fs(\()p Fq(t;)9
b(S)s Fs(\).)370 1208 y(This)21 b(v)n(ersion)f(of)h(the)e(algorithm)h
(requires)g(additional)f(time)i(in)g(ev)n(ery)f(iteration)f(to)h(de-)
304 1275 y(termine)15 b(ho)n(w)i(man)n(y)g(o)r(ccurrence)d(pairs)i(are)
g(similar)h(to)f(the)g(initial)i(joinable)e(pair)g(of)h(o)r(ccur-)304
1341 y(rences.)24 b(A)n(t)19 b(w)n(orst)f(this)g(time)h(is)g
Fq(O)r Fs(\(max)o(\()p Fl(j)p Fq(P)8 b Fl(j)p Fs(\))18
b(where)g(max\()p Fl(j)p Fq(P)8 b Fl(j)p Fs(\))18 b(is)h(the)f(size)g
(of)h(the)f(largest)304 1408 y(mem)n(b)r(er)j(of)h(\()p
Fq(P)645 1416 y Fp(p)692 1408 y Fl(j)g Fq(p)g Fl(2)g
Fq(P)8 b(at)931 1387 y Fp(Y)931 1423 y Fu(\006)p Fp(X)1004
1408 y Fs(\).)36 b(The)22 b(indexed)f(v)n(ersions)h(of)g(the)f(ab)r(o)n
(v)n(e)h(algorithms)f(are)304 1474 y(called)j(\()p Fy(IGC)o
Fs(\).)43 b(\()p Fy(IGI)808 1482 y Fp(i)826 1474 y Fs(\),)26
b(and)e(\()p Fy(IGM)1159 1482 y Fp(m)1201 1474 y Fs(\).)43
b(Their)24 b(running)f(times)h(ha)n(v)n(e)h(the)e(same)h(form)304
1540 y(as)e(those)g(for)g(the)g(unindexed)g(algorithms,)h(except)f
Fl(j)p Fq(P)8 b Fl(j)23 b Fs(is)g(replaced)f(with)g(max\()p
Fl(j)p Fq(P)8 b Fl(j)p Fs(\).)39 b(In)304 1607 y(practice)16
b(the)i(index)g(sizes)g(are)g(m)n(uc)n(h)h(smaller)f(than)g(the)f
(total)h(n)n(um)n(b)r(er)g(of)g(starting)f(o)r(ccur-)304
1673 y(rences,)k(so)h(this)f(impro)n(v)n(es)i(running)d(time)i
(considerably)f(b)n(y)h(a)n(v)n(oiding)h(rep)r(eatedly)c(trying)304
1740 y(to)e(com)n(bine)h(patterns)e(that)h(cannot)f(b)r(e)i(joined.)370
1806 y(Once)g(the)g(global)g(algorithm)g(terminates,)f(the)h(m)n
(ultiset)h(of)f(patterns)e(it)j(has)f(generated)304 1873
y(can)f(b)r(e)h(calculated)e(as)i(follo)n(ws:)304 1981
y Fy(Algorithm)i(3.2.3)h Fs(\()p Fy(global)p 956 1981
20 3 v 21 w(patterns)p Fs(\))p Fy(.)304 2047 y Fs(Input:)i(A)18
b(set)g Fq(S)j Fs(of)d(o)r(ccurrences)d(of)j(patterns)e(in)i(term)g
Fq(t)304 2114 y Fs(Output:)23 b(A)18 b(set)f(of)h(patterns)304
2180 y(Pro)r(cedure)d Fy(global)p 738 2180 V 22 w(patterns)p
Fs(\()p Fq(t;)9 b(S)s Fs(\):)370 2266 y(1.)28 b(Create)16
b(a)i(new)g(set)g Fq(P)8 b Fs(.)370 2332 y(2.)28 b(F)-5
b(or)18 b(eac)n(h)g Fq(c)d Fl(2)g Fq(S)s Fs(,)k(add)f
Fq(pat)p Fs(\()p Fq(t;)9 b(c)p Fs(\))18 b(to)g Fq(P)8
b Fs(.)370 2399 y(3.)28 b(Return)16 b Fq(P)8 b Fs(.)370
2507 y(Again,)17 b(in)n(termediate)e(patterns)f(disco)n(v)n(ered)i(b)n
(y)h(the)f(PST)g(can)g(also)g(b)r(e)g(considered)f(part)304
2574 y(of)j(the)f(set)g(of)i(patterns)c(generated)h(b)n(y)i(global)g
(searc)n(h.)304 2704 y(3.3.)32 b Fy(Extended)16 b(Lemp)r(el-Ziv.)28
b Fs(Rather)12 b(than)g(adding)h(patterns)f(matc)n(hing)h(subterms,)g
(or)304 2771 y(building)i(patterns)d(up)i(from)h(smaller)f(o)r
(ccurrences,)e(as)j(in)g(the)f(lo)r(cal)g(and)g(global)h(algorithms)304
2837 y(resp)r(ectiv)n(ely)-5 b(,)21 b(the)f(Extended)g(Lemp)r(el-Ziv)g
(algorithm)h(p)r(erforms)e(a)i(fast)f(scan)h(of)g(the)f(tree)304
2904 y(in)n(to)g(a)g(pattern)e(substitution)g(tree.)29
b(This)20 b(t)n(yp)r(e)f(of)h(algorithm)g(is)g(inspired)g(b)n(y)g(a)g
(v)m(ariation)304 2970 y(of)d(the)f(Lemp)r(el-Ziv)i(compression)d
(algorithm,)i(in)h(whic)n(h)f(the)g(sequen)n(tial)g(input)f(is)i
(scanned)304 3036 y(to)h(pro)r(duce)f(a)i(tree)e(whic)n(h)j(is)f(then)f
(used)g(to)h(enco)r(de)d(the)i(input.)30 b(W)-5 b(e)20
b(will)h(brie\015y)f(presen)n(t)304 3103 y(a)f(v)n(ersion)g(of)g(the)g
(Lemp)r(el-Ziv)g(algorithm)f(for)h(\014nding)g(patterns)e(in)j
(sequences,)e(then)g(giv)n(e)304 3169 y(the)f(extended)f(algorithm.)304
3278 y Fy(Algorithm)k(3.3.1)h Fs(\()p Fy(lzscan)p Fs(\))p
Fy(.)304 3344 y Fs(Input:)i(a)c(string)e(of)h(sym)n(b)r(ols)g(of)g
(\000)304 3411 y(Output:)23 b(a)18 b(ro)r(oted)e(tree)h
Fq(T)23 b Fs(=)16 b(\()p Fq(r)n(;)9 b Fs(\000)1071 3391
y Fm(0)1086 3411 y Fq(;)g(E)s Fs(\))19 b(with)f(an)g(edge-lab)r(eling)f
Fq(L)e Fs(:)g Fq(E)k Fl(!)d Fs(\000.)304 3477 y(Pro)r(cedure)f
Fy(lzscan)p Fs(\()p Fq(\015)s Fs(\):)p eop
%%Page: 24 26
24 25 bop 304 151 a Fu(24)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)370 283 y Fs(1.)28
b(Create)20 b(a)i(tree)f Fq(T)29 b Fs(=)22 b(\()p Fq(r)n(;)9
b Fl(f)p Fq(r)r Fl(g)14 b([)h(f)p Fq(v)1187 291 y Fp(\015)1237
283 y Fl(j)22 b Fq(\015)i Fl(2)e Fs(\000)p Fl(g)p Fq(;)9
b Fl(ff)p Fq(r)n(;)g(v)1603 291 y Fp(\015)1631 283 y
Fl(g)22 b(j)g Fq(\015)i Fl(2)e Fs(\000)p Fl(g)p Fs(\))f(and)g(lab)r
(eling)h Fq(L)441 350 y Fs(suc)n(h)c(that)f Fq(L)p Fs(\()p
Fl(f)p Fq(r)n(;)9 b(v)848 358 y Fp(\015)876 350 y Fl(g)p
Fs(\))14 b(=)i Fq(\015)21 b Fs(for)d(eac)n(h)f Fq(\015)h
Fl(2)e Fs(\000.)370 416 y(2.)28 b(Create)16 b(a)i(v)m(ariable)g
Fq(x)g Fs(and)g(set)f(it)i(to)e Fq(r)r Fs(.)370 483 y(3.)28
b(Scan)14 b(the)g(input)g(sequence)f Fq(\015)18 b Fs(=)e(\()p
Fq(\015)1189 491 y Fu(1)1213 483 y Fq(;)9 b(:)g(:)g(:)20
b(;)9 b(\015)1373 491 y Fp(n)1404 483 y Fs(\);)16 b(for)e(eac)n(h)h(1)g
Fq(<)g(i)h(<)f(n)g Fs(in)h(order)d(p)r(erform)441 549
y(the)k(follo)n(wing:)446 616 y(\(a\))27 b(If)c(v)n(ertex)g
Fq(x)h Fs(=)h Fq(v)g Fs(of)e Fq(T)32 b Fs(has)23 b(a)h(c)n(hild-edge)f
Fl(f)p Fq(v)r(;)9 b(v)1617 595 y Fm(0)1632 616 y Fl(g)24
b Fs(lab)r(eled)e(with)h Fq(\015)2038 624 y Fp(i)2056
616 y Fs(,)j(then)c(set)545 682 y Fq(x)15 b Fs(=)g Fq(v)679
662 y Fm(0)713 682 y Fs(and)j(go)f(on)h(to)g(the)f(next)h(sym)n(b)r
(ol.)443 748 y(\(b\))27 b(If)17 b(there)e(is)i(no)g(suc)n(h)f(edge,)h
(then)e(create)g(a)i(new)f(v)n(ertex)h Fq(v)1772 728
y Fm(0)1802 748 y Fl(2)f Fs(\000)1890 728 y Fm(0)1922
748 y Fs(and)g(edge)g(\()p Fq(x;)9 b(v)2260 728 y Fm(0)2275
748 y Fs(\))545 815 y(lab)r(eled)17 b(with)h Fq(\015)889
823 y Fp(i)907 815 y Fs(,)h(set)e Fq(x)e Fs(=)h Fq(r)r
Fs(,)i(and)g(go)f(on)h(to)g(the)f(next)h(sym)n(b)r(ol.)370
881 y(4.)28 b(Return)16 b Fq(T)8 b Fs(.)370 988 y(W)-5
b(e)25 b(can)e(see)h(ho)n(w)h(an)f(analogous)e(algorithm)i(for)g(tree)f
(compression)f(could)i(w)n(ork,)j(b)n(y)304 1054 y(viewing)d(the)g
(\\tree")e(constructed)f(in)k(this)f(algorithm)g(as)g(a)h
Fr(substitution)k Fs(tree,)c(or)f(more)304 1121 y(sp)r(eci\014cally)-5
b(,)19 b(a)g(pattern)e(substitution)g(tree.)26 b(Because)17
b(of)i(the)g(sequen)n(tial)f(structure)e(of)j(the)304
1187 y(data,)k(no)f(more)g(than)g(one)f(pattern)g(v)m(ariable)h(w)n
(ould)h(ev)n(er)f(b)r(e)g(needed)f(in)i(suc)n(h)f(a)h(PST)f(if)304
1254 y(it)e(w)n(ere)f(only)h(used)g(to)f(express)g(patterns)e(of)j
(strings,)f(so)h(the)f(simpler)h(approac)n(h)e(in)i(whic)n(h)304
1320 y(patterns)e(are)i(simply)i(substrings)d(w)n(orks)i(without)f
(requiring)g(explicit)h(pattern)e(v)m(ariables.)304 1386
y(When)g(w)n(e)i(wish)f(to)g(consider)f(rep)r(etitiv)n(e)g(patterns)f
(in)i(trees,)g(ho)n(w)n(ev)n(er,)i(w)n(e)e(need)f(to)h(kno)n(w)304
1453 y(more)i(ab)r(out)e(the)i(lo)r(cations)f(in)h(the)g(patterns)e
(where)i(they)f(can)h(b)r(e)g(extended.)35 b(Th)n(us)23
b(for)304 1519 y(term)17 b(compression)f(w)n(e)j(need)e(the)g
(additional)h(p)r(o)n(w)n(er)f(and)h(complexit)n(y)g(of)g(PSTs.)370
1586 y(Here)e(is)i(the)f(Lemp)r(el-Ziv-st)n(yle)h(algorithm)e(for)h
(generating)e(patterns.)22 b(It)c(is)g(parameter-)304
1652 y(ized)k(b)n(y)i(a)f(function)e Fq(f)29 b Fs(whic)n(h)23
b(maps)g(p)r(osition)f(substitutions)e(to)j(pattern)d(substitutions.)
304 1718 y(The)15 b(role)g(of)g(this)g(function)f(is)i(similar)g(to)f
(the)g(function)f(parameter)f(in)j(the)e(lo)r(cal)h(algorithm,)304
1785 y(whic)n(h)i(c)n(ho)r(oses)e(the)i(patterns)e(that)g(will)k(b)r(e)
d(added)g(to)h(the)f(set.)24 b(In)17 b(this)g(case,)g(the)f(function)
304 1851 y(c)n(ho)r(oses)21 b(a)i(substitution)f(that)g(matc)n(hes)g
(the)g(p)r(ositional)g(substitution.)38 b(W)-5 b(e)24
b(will)g(discuss)304 1918 y(p)r(ossible)17 b(de\014nitions)g(for)g
(this)h(function)f(shortly)-5 b(.)304 2024 y Fy(Algorithm)20
b(3.3.2)h Fs(\()p Fy(elzscan)p Fs(\))p Fy(.)304 2091
y Fs(Input:)i(A)18 b(term)g(o)n(v)n(er)g(op)r(erator)e(domain)h(\(\006)
p Fq(;)9 b(\036)p Fs(\))18 b(and)g(v)m(ariable)g(set)f
Fq(X)t Fs(.)304 2157 y(Output:)23 b(A)18 b(pattern)e(substitution)g
(tree)h Fq(P)26 b Fs(and)17 b(m)n(ultiplicit)n(y)j(w)n(eigh)n(ting)e
Fq(\026)p Fs(.)304 2224 y(Pro)r(cedure)d Fy(elzscan)p
Fs(\()p Fq(t;)9 b(f)d Fs(\):)370 2308 y(1.)28 b(Create)16
b(an)i(empt)n(y)g(PST)g Fq(P)23 b Fs(=)15 b(\()p Fq(r)n(;)9
b Fy(u)p Fq(;)g Fl(f)p Fq(r)r Fl(g)p Fq(;)g Fl(;)p Fq(;)g
Fl(;)p Fs(\).)370 2374 y(2.)28 b(Create)16 b(a)i(v)m(ariable)g
Fq(x)g Fs(and)g(initialize)g(it)h(to)e Fq(r)r Fs(\()p
Fq(P)8 b Fs(\).)370 2441 y(3.)28 b(Create)16 b(an)i(empt)n(y)g(p)r
(ositional)f(substitution)f Fq(s)p Fs(.)370 2507 y(4.)28
b(Create)16 b(an)i(empt)n(y)g(queue)g Fq(Q)g Fs(of)g(p)r(ositions.)23
b(Initialize)18 b(it)h(to)e(only)i(con)n(tain)e(\(\).)370
2573 y(5.)28 b(Rep)r(eat)16 b(the)h(follo)n(wing)i(steps)e(un)n(til)h
(the)g(queue)f(is)i(empt)n(y)-5 b(.)446 2640 y(\(a\))27
b(Remo)n(v)n(e)18 b(p)r(osition)f Fq(l)i Fs(from)f(the)f(head)h(of)g
(the)f(queue.)24 b(Set)17 b Fq(s)e Fs(=)h Fy(u)p Fs(\()p
Fq(P)8 b Fs(\))14 b Fl(7!)i Fq(l)q Fs(.)443 2706 y(\(b\))27
b(If)15 b(there)e(is)i(a)g(c)n(hild-edge)g(leading)f(from)g
Fq(x)h Fs(whic)n(h)g(is)g(lab)r(eled)f(with)h(a)g(substitution)545
2773 y(that)i(matc)n(hes)g Fq(s)i Fs(under)f(p)r(ositional)f
(substitution)f Fq(s)1670 2753 y Fm(0)1686 2773 y Fs(,)j(then)e(set)h
Fq(s)e Fs(=)g Fq(s)2060 2753 y Fm(0)2076 2773 y Fs(,)j(set)f
Fq(x)g Fs(to)545 2839 y(the)f(c)n(hild)i(v)n(ertex)f(at)f(the)h(other)e
(end)i(of)g(the)f(edge,)h(and)f(rep)r(eat)f(this)i(step.)449
2905 y(\(c\))27 b(Otherwise,)20 b(let)g Fq(u)f Fs(=)g
Fq(f)6 b Fs(\()p Fq(s)p Fs(\))19 b(and)h(let)g(p)r(ositional)g
(substitution)e Fq(s)1927 2885 y Fm(0)1963 2905 y Fs(matc)n(h)i
Fq(u)g Fs(to)g Fq(s)p Fs(.)545 2972 y(Let)e(\()p Fq(v)r(;)9
b(P)764 2952 y Fm(0)779 2972 y Fs(\))18 b(=)g Fy(split)o
Fs(\()p Fq(P)r(;)9 b(x;)g(u)p Fs(\).)28 b(Set)19 b Fq(P)25
b Fs(=)18 b Fq(P)1500 2952 y Fm(0)1535 2972 y Fs(and)h(add)g(1)h(to)f
(the)g(v)m(alue)g(of)h Fq(\026)p Fs(\()p Fq(v)r Fs(\).)545
3038 y(F)-5 b(or)18 b(eac)n(h)g(\()p Fy(z)p Fq(;)9 b(m)p
Fs(\))15 b Fl(2)g Fq(s)1007 3018 y Fm(0)1022 3038 y Fs(,)k(insert)e
Fq(l)i Fs(in)n(to)g(the)e(tail)h(of)g Fq(Q)p Fs(,)h(and)f(set)f
Fq(x)h Fs(to)g Fq(r)r Fs(\()p Fq(P)8 b Fs(\).)370 3105
y(6.)28 b(Return)16 b Fq(P)8 b Fs(.)370 3211 y(The)21
b(function)f Fq(f)28 b Fs(could)21 b(ha)n(v)n(e)h(man)n(y)g(di\013eren)
n(t)f(useful)g(de\014nitions,)h(dep)r(ending)d(on)i(the)304
3278 y(situation.)39 b(If)23 b Fq(f)6 b Fs(\()p Fq(s)p
Fs(\))23 b(=)i Fl(f)p Fs(\()p Fy(z)p Fq(;)9 b(s)p Fs(\()p
Fy(z)p Fs(\)\))22 b Fl(j)j Fy(z)f Fl(2)g Fq(Z)t Fl(g)f
Fs(then)g(the)f(scanning)g(algorithm)h(w)n(ould)g(just)304
3344 y(add)f(the)f(whole)h(term)g(to)f(the)h(PST)g(and)g(then)f(stop.)
36 b(The)22 b(opp)r(osite)f(extreme)g(de\014nition)304
3411 y(for)h Fq(f)28 b Fs(w)n(ould)23 b(b)r(e)f Fq(f)6
b Fs(\()p Fq(s)p Fs(\))21 b(=)i Fl(f)p Fs(\()p Fy(z)p
Fq(;)9 b Fy(z)p Fs(\))22 b Fl(j)h Fy(z)f Fl(2)h Fq(Z)t
Fl(g)p Fs(.)37 b(In)22 b(this)g(case,)h(no)f(progress)f(w)n(ould)h(ev)n
(er)g(b)r(e)304 3477 y(made)15 b(and)h(the)f(algorithm)g(w)n(ould)i
(not)e(terminate.)22 b(The)16 b(third)g(p)r(ossibilit)n(y)g(is)h(to)e
(c)n(ho)r(ose)g(for)p eop
%%Page: 25 27
25 26 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(25)304 283 y Fs(eac)n(h)20 b(v)m(ariable)g(some)g(non)n(trivial)h
(matc)n(h)f(for)g(eac)n(h)h Fq(s)p Fs(\()p Fy(z)p Fs(\);)g(for)g
(example,)g(the)f(linear)g(atomic)304 350 y(matc)n(hing)14
b(pattern)e(or)j(the)f Fl(\026)p Fs(-maximal)i(matc)n(h)e(of)g(heigh)n
(t)h(at)f(most)g Fq(h)p Fs(.)24 b(Cho)r(osing)13 b(the)h(linear)304
416 y(atomic)j(matc)n(hing)f(pattern)g(for)h(eac)n(h)g(v)m(ariable)g
(in)h(the)f(domain)g(of)h(the)f(substitution)e(seems)304
483 y(closest)i(to)g(the)h(original)g(nature)e(of)i(the)f(Lemp)r
(el-Ziv)h(algorithm.)370 549 y(The)j(Extended)e(Lemp)r(el-Ziv)i
(algorithm)f(with)h(function)f Fq(f)27 b Fs(will)c(b)r(e)d(denoted)f
(\()p Fy(ELZ)2231 557 y Fp(f)2259 549 y Fs(\).)304 616
y(The)c(running)g(time)h(dep)r(ends)e(on)i Fq(f)6 b Fs(,)17
b(but)e(if)h Fq(f)23 b Fs(runs)15 b(in)h(time)g(prop)r(ortional)e(to)h
(the)g(size)h(of)g(its)304 682 y(output)g(then)i(the)f(n)n(um)n(b)r(er)
h(of)g(patterns)e(generated)g(is)j Fq(O)r Fs(\()p Fl(j)p
Fq(t)p Fl(j)p Fs(\).)25 b(Running)17 b(time)i(is)f(certainly)304
748 y Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)420 728 y Fu(2)445
748 y Fs(\),)j(b)r(ecause)e(at)h(most)h Fl(j)p Fq(t)p
Fl(j)h Fs(matc)n(hes)d(requiring)i Fq(O)r Fs(\()p Fl(j)p
Fq(t)p Fl(j)p Fs(\))f(time)h(are)f(required.)32 b(Ho)n(w)n(ev)n(er,)304
815 y(the)15 b(total)g(amoun)n(t)h(of)g(time)g(required)f(for)g(matc)n
(hing)h(should)f(b)r(e)h Fl(j)p Fq(t)p Fl(j)p Fs(,)i(b)r(ecause)13
b(eac)n(h)j(p)r(osition)304 881 y(in)22 b(the)f(term)g(is)i(matc)n(hed)
d(at)i(most)f(once.)35 b(So)22 b(in)g(fact)f(the)g(time)h(should)f(b)r
(e)g Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)p Fs(\).)36 b(The)304
948 y(v)n(ersions)19 b(of)h(\()p Fy(ELZ)721 956 y Fp(f)749
948 y Fs(\))g(wherein)f Fq(f)26 b Fs(c)n(ho)r(oses)19
b(atomic)g(linear)g(matc)n(hing)g(substitutions)f(or)i
Fl(\026)p Fs(-)304 1014 y(maximal)f(matc)n(hes)e(of)i(heigh)n(t)e(at)h
(most)g Fq(h)h Fs(are)e(called)h(\()p Fy(ELZ)1620 1022
y Fu(1)1645 1014 y Fs(\))g(and)g(\()p Fy(ELZ)1933 1022
y Fp(h)1962 1014 y Fs(\))g(resp)r(ectiv)n(ely)-5 b(.)304
1080 y(In)17 b(either)f(case,)h Fq(f)23 b Fs(runs)17
b(in)h(time)f(prop)r(ortional)d(to)j(the)f(size)h(of)g(its)h(output,)e
(so)h(its)g(time)g(and)304 1147 y(space)g(requiremen)n(ts)f(are)i(the)f
(same)h(as)g(those)e(for)i(\()p Fy(ELZ)1546 1155 y Fp(f)1574
1147 y Fs(\).)304 1254 y(3.4.)32 b Fy(The)23 b(general)g(case.)28
b Fs(So)19 b(far)g(in)h(this)f(section)f(all)j(of)e(the)g(algorithms)f
(generate)f(pat-)304 1321 y(terns)g(and)g(m)n(ultiplicities)i(presen)n
(t)e(in)i(a)f(single)g(term.)25 b(It)18 b(is)g(easy)g(to)g(mo)r(dify)g
(eac)n(h)g(of)g(these)304 1387 y(algorithms)f(to)h(searc)n(h)f(for)g
(patterns)f(in)j(a)f(set)f(of)h(sev)n(eral)g(terms)f
Fl(f)p Fq(t)1761 1395 y Fu(1)1786 1387 y Fq(;)9 b(:)g(:)g(:)20
b(;)9 b(t)1937 1395 y Fp(n)1968 1387 y Fl(g)p Fs(.)370
1454 y(The)k(lo)r(cal)f(algorithm)g(can)g(b)r(e)g(applied)h(to)f(the)g
(set)g Fq(T)23 b Fs(=)16 b Fl(f)p Fq(t)1601 1462 y Fu(1)1625
1454 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(t)1777 1462 y Fp(n)1808
1454 y Fl(g)j Fs(of)h(terms)f(as)h(follo)n(ws:)503 1547
y Fy(lo)r(cal)p 635 1547 17 3 v 19 w(list)o Fs(\()p Fq(T)5
b(;)k(f)d Fs(\))15 b(=)g Fy(lo)r(cal)1076 1524 y Fm(0)1091
1547 y Fs(\()p Fq(t)1133 1555 y Fp(n)1163 1547 y Fq(;)9
b Fy(lo)r(cal)1316 1524 y Fm(0)1331 1547 y Fs(\()p Fq(t)1373
1555 y Fp(n)p Fm(\000)p Fu(1)1459 1547 y Fq(;)g(:)g(:)g(:)j
Fy(lo)r(cal)o Fs(\()p Fq(t)1728 1555 y Fu(1)1752 1547
y Fq(;)d(f)d Fs(\))j Fq(:)g(:)g(:)21 b(;)9 b(f)d Fs(\))p
Fq(;)j(f)d Fs(\))p Fq(:)370 1641 y Fs(The)26 b(global)h(algorithm)f
(could)g(b)r(e)f(adapted)g(to)h(sets)g(of)g(terms)g(b)n(y)h(in)n(tro)r
(ducing)e(new)304 1707 y(op)r(erands)h Fq(\033)582 1715
y Fp(i)628 1707 y Fs(eac)n(h)i(with)h(rank)f Fq(i)p Fs(,)j(and)d
(applying)g(the)g(global)g(algorithm)g(to)g(the)f(term)304
1774 y Fq(\033)336 1782 y Fp(n)365 1774 y Fs(\()p Fq(t)407
1782 y Fu(1)432 1774 y Fq(;)9 b(:)g(:)g(:)20 b(;)9 b(t)583
1782 y Fp(n)614 1774 y Fs(\).)41 b(If)23 b(the)g(starting)f(set)g(con)n
(tains)h(no)g(o)r(ccurrences)d(b)r(eginning)i(at)h(the)f(ro)r(ot)304
1840 y(\(whose)d(patterns)f(con)n(tain)i Fq(\033)942
1848 y Fp(n)972 1840 y Fs(\),)h(then)f(none)f(of)i(the)f(patterns)e
(generated)g(can)i(con)n(tain)g Fq(\033)2267 1848 y Fp(n)304
1907 y Fs(either.)370 1973 y(The)j(Extended)f(Lemp)r(el-Ziv)h
(algorithm)g(can)g(b)r(e)f(mo)r(di\014ed)h(so)g(that)g(it)g(starts)f
(with)i(a)304 2039 y(giv)n(en)g(PST)g(instead)f(of)h(creating)f(a)h
(new)f(one,)j(and)d(this)h(mo)r(di\014ed)f(algorithm)h(could)f(b)r(e)
304 2106 y(applied)17 b(to)h(sets)f(of)h(terms,)g(similarly)h(to)f(the)
f(lo)r(cal)h(algorithm.)933 2230 y(4.)31 b Ft(Dictionar)l(y)20
b(Algorithms)370 2330 y Fs(F)-5 b(or)27 b(all)g(the)e(enco)r(ding)g(sc)
n(hemes,)j(the)d(mec)n(hanics)h(of)g(constructing)e(and)i(simplifying)
304 2396 y(dictionaries)17 b(are)g(the)h(same.)25 b(By)19
b(separating)d(these)h(algorithms)g(from)h(the)g(enco)r(ding)e(algo-)
304 2463 y(rithms,)i(w)n(e)g(can)g(simplify)h(the)f(presen)n(tation)d
(of)j(the)g(enco)r(ding)e(algorithms)h(considerably)-5
b(.)370 2529 y(W)g(e)22 b(can)e(construct)f(a)i(dictionary)f(from)h(a)g
(set)g(of)g(patterns)e(using)i(the)g(follo)n(wing)g(algo-)304
2595 y(rithm:)304 2697 y Fy(Algorithm)f(4.0.1)h Fs(\()p
Fy(mak)n(e)p 935 2697 20 3 v 22 w(dictionary)q Fs(\))p
Fy(.)304 2764 y Fs(Input:)i(A)18 b(set)g Fq(S)j Fs(of)d(patterns.)304
2830 y(Output:)23 b(A)18 b(dictionary)f Fq(D)r Fs(.)304
2897 y(Pro)r(cedure)e Fy(mak)n(e)p 717 2897 V 23 w(dictionary)q
Fs(\()p Fq(S)s Fs(\):)370 2977 y(1.)28 b(Construct)16
b(an)i(empt)n(y)g(dictionary)f Fq(D)f Fs(=)g Fl(;)p Fs(.)370
3043 y(2.)28 b(F)-5 b(or)24 b(eac)n(h)g(non)n(trivial,)i(nonatomic)d
Fq(p)i Fl(2)h Fq(S)s Fs(,)h(supp)r(ose)22 b Fq(F)8 b(r)r
Fs(\()p Fq(p)p Fs(\))23 b(=)j Fl(f)p Fy(y)1935 3051 y
Fu(1)1959 3043 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b Fy(y)2125
3051 y Fp(n)2155 3043 y Fl(g)24 b Fs(and)441 3109 y Fq(\033)475
3089 y Fm(0)505 3109 y Fl(2)16 b Fs(\006)598 3089 y Fm(0)630
3109 y Fs(is)i(an)e Fq(n)p Fs(-ary)i(op)r(erator)c(sym)n(b)r(ol)j(that)
f(do)r(es)f(not)h(app)r(ear)f(in)j Fq(D)r Fs(.)24 b(Add)16
b(the)g(rule)441 3176 y(\()p Fq(\033)497 3156 y Fm(0)512
3176 y Fs(\()p Fy(y)568 3184 y Fu(1)591 3176 y Fq(;)9
b(:)g(:)g(:)21 b(;)9 b Fy(y)757 3184 y Fp(n)787 3176
y Fs(\))p Fq(;)g(p)p Fs(\))18 b(to)g Fq(D)r Fs(.)370
3242 y(3.)28 b(Return)16 b Fq(D)r Fs(.)370 3344 y(This)i(algorithm)e
(do)r(es)g(not)g(attempt)f(to)i(tak)n(e)g(adv)m(an)n(tage)e(of)j(dep)r
(endencies)13 b(among)k(pat-)304 3411 y(terns)k(in)h(the)f(set,)i(so)f
(an)n(y)h(ordering)d(of)i(the)g(resulting)f(rules)g(orders)g
Fq(D)r Fs(.)36 b(The)22 b(de\014nitions)304 3477 y(of)i(the)g(rules)g
(guaran)n(tee)e(that)i Fq(D)i Fs(is)f(rev)n(ersible.)43
b(The)24 b(non)n(trivialit)n(y)i(and)e(nonatomicit)n(y)p
eop
%%Page: 26 28
26 27 bop 304 151 a Fu(26)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(constrain)n(ts)15
b(guaran)n(tee)g(that)i(the)f(rev)n(erse)h(of)g Fq(D)j
Fs(is)e(decreasing)d(with)i(resp)r(ect)e(to)i Fq(M)2122
291 y Fu(#)2161 283 y Fs(.)25 b(The)304 350 y(other)c(prop)r(erties)g
(are)h(immediate.)39 b(Therefore,)23 b(the)f(resulting)g(rewrite)g
(system)h(satis\014es)304 416 y(the)17 b(de\014nition)g(of)h(a)g
(pattern)e(dictionary)-5 b(.)370 483 y(Also)19 b(observ)n(e)e(that)h
(dictionaries)f(can)h(con)n(tain)g(patterns)e(that)i(are)g(de\014ned)f
(in)i(terms)f(of)304 549 y(other)c(patterns,)f(as)i(long)g(as)g(the)g
(de\014nitions)f(are)g(not)h(circular.)23 b(This)15 b(is)h(guaran)n
(teed)c(b)n(y)k(the)304 616 y(fact)i(that)g(dictionaries)g(are)h
(orderable.)26 b(Dictionaries)18 b(in)i(whic)n(h)g(dep)r(endencies)c(o)
r(ccur)h(can)304 682 y(b)r(e)c(smaller)i(than)e(dictionaries)g(in)i
(whic)n(h)g(they)f(do)g(not,)h(since)f(the)g(righ)n(t-hand)f(sides)i
(of)f(rules)304 748 y(migh)n(t)19 b(also)g(con)n(tain)g(rep)r(etitiv)n
(e)e(structure.)25 b(The)19 b(ab)r(o)n(v)n(e)g(algorithm)f(do)r(es)g
(not)h(attempt)e(to)304 815 y(tak)n(e)h(adv)m(an)n(tage)e(of)i(this)g
(p)r(ossibilit)n(y)-5 b(.)25 b(Ho)n(w)n(ev)n(er,)18 b(if)h(the)e(set)h
(of)f(patterns)f(is)j(represen)n(ted)c(b)n(y)304 881
y(a)g(PST,)g(then)f(the)h(structure)d(of)k(the)e(PST)h(itself)g(can)g
(b)r(e)f(used)h(to)f(create)g(dictionaries)f(whic)n(h)304
948 y(use)i(less)h(space)f(b)r(ecause)f(they)h(use)h(prior)f
(de\014nitions.)23 b(Ho)n(w)n(ev)n(er,)17 b(for)e(suc)n(h)h
(dictionaries)e(the)304 1014 y(problem)g(of)h(enco)r(ding)e(\(or)i
(\014nding)f Fl( )1128 1022 y Fp(D)1168 1014 y Fs(-deriv)m(ations\))g
(is)i(more)e(complicated,)h(so)g(for)f(clarit)n(y)304
1080 y(of)k(exp)r(osition,)f(w)n(e)h(will)i(use)e(only)g(dictionaries)f
(in)h(whic)n(h)h(the)e(rules)h(are)f(indep)r(enden)n(t.)370
1147 y(Once)24 b(terms)f(ha)n(v)n(e)i(b)r(een)e(enco)r(ded,)g(the)h
(dictionary)f(migh)n(t)i(con)n(tain)e(rules)h(that)f(w)n(ere)304
1213 y(nev)n(er)17 b(directly)g(used.)24 b(W)-5 b(e)18
b(can)e(remo)n(v)n(e)i(these)e(unnecessary)g(en)n(tries)g(from)i(a)f
(dictionary)g(as)304 1280 y(follo)n(ws:)304 1385 y Fy(Algorithm)j
(4.0.2)h Fs(\()p Fy(prune)p Fs(\))p Fy(.)304 1452 y Fs(Input:)i(A)18
b(list)h(of)f(un)n(used)f(op)r(erators)e(and)j(a)g(dictionary)304
1518 y(Output:)25 b(A)19 b(dictionary)g(iden)n(tical)g(to)f
Fq(D)j Fs(except)d(that)g(all)i(patterns)d(whose)h(left-hand)h(side)304
1585 y(ro)r(ot)d(op)r(erators)f(w)n(ere)j(not)g(in)g(the)f(list)i(ha)n
(v)n(e)g(b)r(een)d(remo)n(v)n(ed)304 1651 y(Pro)r(cedure)f
Fy(prune)p Fs(\()p Fq(o;)9 b(D)r Fs(\):)370 1734 y(1.)28
b(Let)18 b(\()p Fq(r)588 1742 y Fp(i)622 1734 y Fl(j)f
Fs(1)f Fl(\024)h Fq(i)g Fl(\024)f Fq(n)p Fs(\))j(b)r(e)f(an)h(ordering)
e(of)i(the)f(rules)g(of)h Fq(D)h Fs(c)n(hosen)e(according)f(to)h(the)
441 1801 y(de\014nition)f(of)h(orderabilit)n(y)-5 b(.)370
1867 y(2.)28 b(F)-5 b(or)19 b(eac)n(h)g Fq(i)g Fs(\(1)d
Fl(\024)h Fq(i)g Fl(\024)h Fq(m)p Fs(\),)h(if)g(the)g(ro)r(ot)e(op)r
(erator)f(of)j(the)g(left-hand)f(side)h(of)g Fq(r)2122
1875 y Fp(i)2160 1867 y Fs(is)g(not)441 1934 y(in)g Fq(o)p
Fs(,)h(then)d(remo)n(v)n(e)i Fq(r)909 1942 y Fp(i)947
1934 y Fs(from)f Fq(D)j Fs(and)d(apply)h Fq(r)1431 1942
y Fp(i)1468 1934 y Fs(to)f(the)g(rest)g(of)h Fq(D)h Fs(un)n(til)g
(there)d(are)h(no)441 2000 y(more)f(o)r(ccurrences)e(of)j
Fq(r)965 2008 y Fp(i)983 2000 y Fs(.)370 2066 y(3.)28
b(Return)16 b Fq(D)r Fs(.)370 2172 y(Note)21 b(that)h(this)g(algorithm)
g(migh)n(t)h(actually)f(increase)f(the)h(size)g(of)h(the)e(dictionary)h
(b)n(y)304 2238 y(remo)n(ving)g(a)h(rule)g(that)e(w)n(as)i(not)f(not)g
(in)h(the)f(list,)j(but)d(whic)n(h)h(w)n(as)g(used)f(extensiv)n(ely)h
(b)n(y)304 2305 y(other)16 b(rules.)25 b(If)18 b(this)g(is)h(the)e
(case)g(it)i(migh)n(t)f(b)r(e)g(b)r(etter)d(to)j(mo)r(dify)g(the)g(ab)r
(o)n(v)n(e)f(algorithm)h(so)304 2371 y(that)i(rules)h(are)g(only)h
(remo)n(v)n(ed)g(if)g(doing)f(so)h(w)n(ould)f(impro)n(v)n(e)i(the)e
(dictionary's)f(cost.)34 b(F)-5 b(or)304 2438 y(example,)16
b(if)g(the)f(metric)g(is)h Fq(N)942 2446 y Fu(#)982 2438
y Fs(,)h(rules)e(should)g(only)h(b)r(e)f(remo)n(v)n(ed)g(if)h(they)g(o)
r(ccur)d(few)n(er)j(than)304 2504 y(t)n(wice)g(in)h(the)e(rest)h(of)g
(the)g(dictionary)-5 b(.)23 b(The)16 b(dictionaries)f(w)n(e)i(will)h
(use)e(ha)n(v)n(e)h(no)f(de\014nitional)304 2570 y(dep)r(endencies,)f
(so)j(w)n(e)g(will)i(not)d(w)n(orry)i(ab)r(out)d(this)i(problem)f
(further.)957 2713 y(5.)31 b Ft(Encoding)20 b(Algorithms)370
2813 y Fs(Once)g(a)g(pattern)e(m)n(ultiset)i(has)g(b)r(een)f
(generated,)f(the)h(input)h(terms)f(m)n(ust)i(b)r(e)e(enco)r(ded)304
2879 y(using)c(the)g(patterns,)g(and)g(a)h(dictionary)f(including)g
(de\014nitions)g(for)g(all)i(the)e(op)r(erators)e(m)n(ust)304
2946 y(b)r(e)21 b(constructed.)34 b(In)23 b(this)f(section)f(w)n(e)h
(will)i(discuss)e(algorithms)f(whic)n(h)i(attempt)d(to)i(\014nd)304
3012 y(go)r(o)r(d)d(enco)r(dings)g(of)i(the)f(input)g(set)h(of)g
(terms.)32 b(Finding)21 b(optimal)g(enco)r(dings)e(is)i(probably)304
3079 y(at)f(least)f(NP-hard,)i(but)e(sev)n(eral)h(appro)n(ximate)g
(approac)n(hes)e(migh)n(t)i(giv)n(e)h(acceptable,)e(but)304
3145 y(not)e(alw)n(a)n(ys)i(optimal)f(results.)370 3211
y(W)-5 b(e)18 b(will)h(explore)e(four)f(approac)n(hes.)23
b(W)-5 b(e)17 b(will)i(\014rst)e(demonstrate)d(that)j(it)g(is)i(p)r
(ossible)d(to)304 3278 y(solv)n(e)21 b(the)e(problem)h(b)n(y)h(brute)e
(force,)h(but)g(w)n(e)h(will)g(only)g(b)r(e)f(able)g(to)g(giv)n(e)h(an)
f(exp)r(onen)n(tial)304 3344 y(algorithm)h(for)g(doing)h(so.)35
b(Instead,)22 b(acceptable)d(solutions)i(ma)n(y)i(b)r(e)e(found)g(b)n
(y)i(using)e(the)304 3411 y Fr(glob)m(al)s(ly)h(b)m(est)k
Fs(or)19 b Fr(lo)m(c)m(al)s(ly)j(b)m(est)j Fs(patterns)17
b(\014rst.)27 b(These)18 b(algorithms)g(pro)r(ceed)e(b)n(y)k(rep)r
(eatedly)304 3477 y(making)i(pattern)e(replacemen)n(ts)g(that)h(are)g
(guaran)n(teed)e(to)j(impro)n(v)n(e)h(the)e(measure)f(of)i(the)p
eop
%%Page: 27 29
27 28 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(27)304 283 y Fs(input.)48 b(Finally)-5 b(,)30 b(w)n(e)c(will)i
(suggest)c(a)i(\\top-do)n(wn")f(algorithm)g(based)g(on)h(the)g(enco)r
(ding)304 350 y(strategy)17 b(used)i(in)h(Lemp)r(el-Ziv)f(compression.)
27 b(In)19 b(this)h(pro)r(cedure,)d(the)h(substitution)g(tree)304
416 y(is)e(used)f(as)h(a)g(\014nite)f(automaton)e(in)k(m)n(uc)n(h)f
(the)f(same)g(w)n(a)n(y)i(as)f(the)f(Lemp)r(el-Ziv)g(compression)304
483 y(tree)i(is)h(used)g(to)f(scan)h(and)f(enco)r(de)f(the)h(input.)304
604 y(5.1.)32 b Fy(Brute)24 b(F)-5 b(orce.)27 b Fs(W)-5
b(e)20 b(ha)n(v)n(e)h(earlier)e(describ)r(ed)e(ho)n(w)k(all)f(the)f(p)r
(ossible)g(enco)r(dings)f(of)i(a)304 671 y(term)g(could)g(b)r(e)g(en)n
(umerated.)31 b(The)20 b(brute)g(force)g(algorithm)g(pro)r(ceeds)e(b)n
(y)j(generating)e(all)304 737 y(the)d(enco)r(dings)f(of)i(a)g(list)h
(of)f(terms,)g(their)f(asso)r(ciated)f(dictionaries,)h(and)g(their)h
(costs)f(under)304 804 y(metrics)g Fq(M)24 b Fs(and)16
b Fq(N)25 b Fs(resp)r(ectiv)n(ely)-5 b(.)23 b(It)17 b(returns)f(an)h
(enco)r(ding)e(whic)n(h)j(minimizes)g(the)e(sum)i(of)304
870 y(the)f(sizes)h(of)g(the)f(terms)g(and)h(the)f(dictionary)-5
b(.)304 976 y Fy(Algorithm)20 b(5.1.1)h Fs(\()p Fy(brute)p
940 976 20 3 v 23 w(force)p Fs(\))p Fy(.)304 1042 y Fs(Input:)i(A)18
b(term)g Fq(t)d Fl(2)g Fq(T)8 b(er)r(m)899 1050 y Fu(\006)p
Fp(X)990 1042 y Fs(and)18 b(a)g(set)g Fq(S)j Fs(of)d(patterns)304
1109 y(Output:)23 b(An)18 b(enco)r(ded)d(term)j Fq(u)d
Fl(2)g Fq(T)8 b(er)r(m)1200 1117 y Fu(\006)p Fm([)p Fu(\006)1294
1106 y Fi(0)1310 1109 y Fq(X)22 b Fs(and)c(a)g(dictionary)304
1175 y(Pro)r(cedure)d Fy(brute)p 722 1175 V 23 w(force)p
Fs(\()p Fq(t;)9 b(S)s Fs(\):)370 1259 y(1.)28 b(Construct)16
b(dictionary)h Fq(D)f Fs(=)g Fy(mak)n(e)p 1232 1259 17
3 v 20 w(dictionary)p Fs(\()p Fq(S)s Fs(\))370 1325 y(2.)28
b(F)-5 b(or)20 b(eac)n(h)f Fq(u)h Fs(suc)n(h)g(that)e
Fq(u)g Fl( )1073 1333 y Fp(D)1132 1325 y Fq(t)p Fs(,)j(let)f
Fq(D)1318 1305 y Fm(0)1351 1325 y Fs(=)e Fy(prune)r Fs(\()p
Fq(O)r(p)p Fs(\()p Fq(u)p Fs(\))11 b Fl(\\)j Fs(\006)1846
1305 y Fm(0)1861 1325 y Fq(;)9 b(D)r Fs(\))20 b(and)f(calculate)441
1391 y Fq(siz)r(e)p Fs(\()p Fq(u;)9 b(D)666 1371 y Fm(0)681
1391 y Fs(\))14 b(=)i Fq(M)6 b Fs(\()p Fq(u)p Fs(\))11
b(+)h Fq(N)6 b Fs(\()p Fq(D)1098 1371 y Fm(0)1113 1391
y Fs(\).)370 1458 y(3.)28 b(Return)16 b(the)i(dictionary)f
Fq(D)1036 1438 y Fm(0)1069 1458 y Fs(and)h(term)f Fq(u)h
Fs(suc)n(h)g(that)f Fq(siz)r(e)p Fs(\()p Fq(u;)9 b(D)1829
1438 y Fm(0)1844 1458 y Fs(\))18 b(is)g(minimized.)370
1564 y(Here)h(w)n(e)h(mak)n(e)h(the)e(simpli\014cation)h(of)g(assuming)
g(some)f(straigh)n(tforw)n(ard)f(w)n(a)n(y)j(of)f(en)n(u-)304
1630 y(merating)d(all)j(p)r(ossible)d Fl( )879 1638 y
Fp(D)920 1630 y Fs(-deriv)m(ations)h(of)h Fq(t)g Fs(is)g(giv)n(en.)27
b Fq(D)1596 1610 y Fm(\000)p Fu(1)1674 1630 y Fs(is)19
b(decreasing)d(with)j(resp)r(ect)304 1697 y(to)c Fq(M)423
1705 y Fu(#)462 1697 y Fs(,)h(so)g(there)e(can)h(b)r(e)f(at)h(most)g
Fl(j)p Fq(t)p Fl(j)h Fs(=)g Fq(M)1246 1705 y Fu(#)1285
1697 y Fs(\()p Fq(t)p Fs(\))f(rules)g(used)f(in)i(an)n(y)g(deriv)m
(ation)f(of)g Fq(t)2119 1677 y Fm(0)2150 1697 y Fl( )2205
1705 y Fp(D)2261 1697 y Fq(t)p Fs(.)304 1767 y(There)f(are)h(consequen)
n(tly)g(at)g(most)g Fl(j)p Fq(D)r Fl(j)1153 1747 y Fm(j)p
Fp(t)p Fm(j)1215 1767 y Fs(suc)n(h)h(deriv)m(ations,)f(if)i
Fl(j)p Fq(D)r Fl(j)f Fs(is)g(the)f(n)n(um)n(b)r(er)g(of)h(rules)304
1834 y(in)i(the)g(dictionary)-5 b(.)370 1900 y(This)26
b(algorithm)e(\()p Fy(BF)p Fs(\))i(is)g(correct)d(\(it)i(alw)n(a)n(ys)h
(\014nds)f(a)g(solution\))g(and)g(optimal)g(\(the)304
1968 y(solution)15 b(it)h(\014nds)f(is)i(the)e(b)r(est)f(one\).)23
b(It)16 b(can)f(run)h(in)g Fq(O)r Fs(\()p Fl(j)p Fq(D)r
Fl(j)1564 1948 y Fm(j)p Fp(t)p Fm(j)1609 1968 y Fs(\))g(time)g(and)f
Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)8 b Fs(+)g Fl(j)p Fq(D)r
Fl(j)p Fs(\))16 b(space)304 2035 y(\(it)i(needs)f(to)g(remem)n(b)r(er)g
(only)h(the)g(b)r(est)e(and)i(the)f(curren)n(t)g(enco)r(ding)f(and)i
(dictionary\).)304 2156 y(5.2.)32 b Fy(Lo)r(cal)22 b(Best)g(First.)27
b Fs(The)19 b(lo)r(cal)g(b)r(est-\014rst)d(algorithm)i(attempts)f(to)i
(recursiv)n(ely)g(re-)304 2223 y(place)14 b(matc)n(hing)f(patterns)g
(that)g(maximize)i(the)f(v)m(alue)g(of)h(a)f(giv)n(en)h(function.)22
b(This)15 b Fr(heuristic)304 2289 y Fs(function)i Fq(f)23
b Fs(:)17 b Fq(P)8 b(at)696 2269 y Fp(Y)696 2305 y Fu(\006)p
Fp(X)782 2289 y Fl(\002)k Fk(N)17 b Fl(!)g Fk(N)i Fs(estimates)e(the)h
(b)r(ene\014ts)f(resulting)g(from)i(replacing)f(ev)n(ery)304
2356 y(o)r(ccurrence)d(of)k(a)g(pattern)e Fq(p)j Fs(with)f(m)n
(ultiplicit)n(y)h Fq(m)g Fs(in)f(the)f(set)h(of)g(terms.)27
b(W)-5 b(e)19 b(will)h(assume)304 2422 y(that)d Fq(f)24
b Fs(is)19 b Fq(O)r Fs(\()p Fq(n)p Fs(\).)304 2528 y
Fy(Algorithm)h(5.2.1)h Fs(\()p Fy(lo)r(cal)p 919 2528
20 3 v 21 w(b)r(est)p 1056 2528 V 23 w(\014rst)p Fs(\))p
Fy(.)304 2594 y Fs(Input:)i(a)c(term)e Fq(t)e Fl(2)h
Fq(T)8 b(er)r(m)886 2602 y Fu(\006)p Fp(X)977 2594 y
Fs(and)17 b(a)h(pattern)e(m)n(ultiset)i Fq(S)304 2661
y Fs(Output:)23 b(a)18 b(term)g Fq(u)d Fl(2)g Fq(T)8
b(er)r(m)942 2669 y Fu(\006)p Fm([)p Fu(\006)1036 2658
y Fi(0)1049 2669 y Fp(X)1109 2661 y Fs(and)18 b(dictionary)f
Fq(D)304 2727 y Fs(Pro)r(cedure)e Fy(lo)r(cal)p 701 2727
V 22 w(b)r(est)p 839 2727 V 23 w(\014rst)p Fs(\()p Fq(t;)9
b(D)r(;)g(S)s Fs(\):)304 2794 y(Return)16 b Fy(lo)r(cal)p
624 2794 17 3 v 19 w(b)r(est)p 759 2794 V 20 w(\014rst)887
2774 y Fm(0)903 2794 y Fs(\()p Fq(t;)9 b Fy(mak)n(e)p
1117 2794 V 20 w(dictionary)q Fs(\()p Fq(S)s Fs(\))p
Fq(;)g(S)s Fs(\).)304 2860 y(Pro)r(cedure)15 b Fy(lo)r(cal)p
701 2860 20 3 v 22 w(b)r(est)p 839 2860 V 23 w(\014rst')p
Fs(\()p Fq(t;)9 b(D)r(;)g(S)s Fs(\):)370 2944 y(1.)28
b(Let)19 b Fq(p)h Fs(b)r(e)f(a)h(pattern)e(that)g(maximizes)j
Fq(f)6 b Fs(\()p Fq(p;)j(\026)1447 2952 y Fp(S)1479 2944
y Fs(\()p Fq(p)p Fs(\)\))19 b(among)g(all)h(patterns)e(in)i
Fq(S)k Fs(that)441 3010 y(matc)n(h)17 b Fq(t)p Fs(.)370
3077 y(2.)28 b(If)18 b Fq(p)h Fs(is)f(non)n(trivial)g(and)g(nonatomic,)
f(then)446 3143 y(\(a\))27 b(Let)17 b Fq(s)h Fs(matc)n(h)g
Fq(p)g Fs(to)g Fq(t)g Fs(and)g(assume)f Fq(\033)1341
3123 y Fm(0)1356 3143 y Fs(\()p Fy(y)1412 3151 y Fu(1)1436
3143 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b Fy(y)1602 3151 y
Fp(n)1632 3143 y Fs(\))15 b Fl( )1724 3151 y Fp(D)1780
3143 y Fq(p)p Fs(.)443 3209 y(\(b\))27 b(Return)485 3310
y Fq(\033)519 3287 y Fm(0)534 3310 y Fs(\()p Fy(lo)r(cal)p
688 3310 17 3 v 19 w(b)r(est)p 823 3310 V 20 w(\014rst)951
3287 y Fm(0)967 3310 y Fs(\([)p Fq(s)p Fs(])p Fy(y)1079
3318 y Fu(1)1104 3310 y Fq(;)9 b(D)r(;)g(S)s Fs(\))p
Fq(;)g(:)g(:)g(:)21 b(;)9 b Fy(lo)r(cal)p 1523 3310 V
19 w(b)r(est)p 1658 3310 V 20 w(\014rst)1786 3287 y Fm(0)1802
3310 y Fs(\([)p Fq(s)p Fs(])p Fy(y)1914 3318 y Fp(n)1944
3310 y Fq(;)g(D)r(;)g(S)s Fs(\))p Fq(:)370 3411 y Fs(3.)28
b(If)18 b Fq(p)h Fs(is)f(trivial)h(or)f(atomic:)446 3477
y(\(a\))27 b(If)18 b Fq(t)h Fs(is)f(a)g(v)m(ariable)g(or)g(constan)n(t)
e(then)h(return)g Fq(t)p eop
%%Page: 28 30
28 29 bop 304 151 a Fu(28)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)443 283 y Fs(\(b\))27
b(Otherwise)17 b Fq(t)e Fs(=)g Fq(\033)r Fs(\()p Fq(t)976
291 y Fu(1)1000 283 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b(t)1152
291 y Fp(n)1183 283 y Fs(\).)24 b(Return)563 376 y Fq(\033)r
Fs(\()p Fy(lo)r(cal)p 751 376 17 3 v 19 w(b)r(est)p 886
376 V 20 w(\014rst)1014 353 y Fm(0)1030 376 y Fs(\()p
Fq(t)1072 384 y Fu(1)1096 376 y Fq(;)9 b(D)r(;)g(S)s
Fs(\))p Fq(;)g(:)g(:)g(:)21 b(;)9 b Fy(lo)r(cal)p 1515
376 V 19 w(b)r(est)p 1650 376 V 21 w(\014rst)1779 353
y Fm(0)1794 376 y Fs(\()p Fq(t)1836 384 y Fp(n)1866 376
y Fq(;)g(D)r(;)g(S)s Fs(\))p Fq(:)370 478 y Fs(This)23
b(algorithm)f(\()p Fy(LB)863 486 y Fp(f)892 478 y Fs(\))g(requires)g
Fq(O)r Fs(\()p Fl(j)p Fq(S)s Fl(jj)p Fq(t)p Fl(j)1332
457 y Fu(3)1357 478 y Fs(\))h(running)f(time:)33 b(for)22
b(eac)n(h)g(p)r(osition,)h(the)304 544 y(b)r(est)h(pattern)f(m)n(ust)i
(b)r(e)g(found)g(and)g(replaced)e(from)i(a)h(set)f(of)g
Fl(j)p Fq(S)s Fl(j)i Fs(of)e(them.)46 b(Matc)n(hing)304
610 y(requires)25 b Fl(j)p Fq(t)p Fl(j)i Fs(time)f(and)g(applying)g
(the)f(resulting)g(substitution)f(requires)h Fl(j)p Fq(t)p
Fl(j)i Fs(time.)49 b(The)304 677 y(results)19 b(are)h(not)h(alw)n(a)n
(ys)g(correct)e(or)h(optimal,)i(but)e(ma)n(y)i(pro)r(duce)c(acceptable)
g(results)i(for)304 743 y(appropriate)15 b(heuristics)i
Fq(f)6 b Fs(.)304 849 y(5.3.)32 b Fy(Global)20 b(Best)h(First.)27
b Fs(The)17 b(global)h(b)r(est-\014rst)d(algorithm)i(sorts)f(the)h
(patterns)e(in)j(the)304 915 y(tree)i(in)i(order)e(of)i(decreasing)d
(heuristic)h(v)m(alue,)j(giv)n(en)f(some)f(heuristic)f(v)m(alue)i
(function)e Fq(f)6 b Fs(.)304 982 y(Then)17 b(it)h(replaces)e(as)h(man)
n(y)h(of)g(the)f(o)r(ccurrences)d(as)j(it)h(can)f(of)h(the)e(b)r(est,)h
(second)f(b)r(est,)h Fr(etc.)304 1048 y Fs(patterns)f(in)i(decreasing)e
(heuristic)h(v)m(alue.)304 1150 y Fy(Algorithm)j(5.3.1)h
Fs(\()p Fy(global)p 956 1150 20 3 v 21 w(b)r(est)p 1093
1150 V 23 w(\014rst)p Fs(\))p Fy(.)304 1216 y Fs(Input:)i(a)c(term)e
Fq(t)e Fl(2)h Fq(T)8 b(er)r(m)886 1224 y Fu(\006)p Fp(X)977
1216 y Fs(pattern)16 b(m)n(ultiset)i Fq(S)304 1282 y
Fs(Output:)23 b(a)18 b(term)g Fq(u)d Fl(2)g Fq(T)8 b(er)r(m)942
1290 y Fu(\006)p Fm([)p Fu(\006)1036 1280 y Fi(0)1049
1290 y Fp(X)1109 1282 y Fs(and)18 b(dictionary)f Fq(D)304
1349 y Fs(Pro)r(cedure)e Fy(global)p 738 1349 V 22 w(b)r(est)p
876 1349 V 23 w(\014rst)p Fs(\()p Fq(t;)9 b(P)f Fs(\):)370
1428 y(1.)28 b(Construct)16 b(dictionary)h Fq(D)f Fs(=)g
Fy(mak)n(e)p 1232 1428 17 3 v 20 w(dictionary)p Fs(\()p
Fq(S)s Fs(\).)370 1495 y(2.)28 b(If)18 b Fq(S)h Fs(=)c
Fl(;)p Fs(,)k(return)d Fq(t)j Fs(and)e Fq(D)r Fs(.)370
1561 y(3.)28 b(Otherwise,)17 b(let)h Fq(p)g Fs(b)r(e)g(a)g(pattern)e
(whic)n(h)i(maximizes)g Fq(f)6 b Fs(\()p Fq(p;)j(\026)1730
1569 y Fp(S)1763 1561 y Fs(\()p Fq(p)p Fs(\)\))17 b(o)n(v)n(er)h
Fq(S)s Fs(.)370 1628 y(4.)28 b(If)18 b Fq(p)h Fs(is)f(trivial)h(or)f
(atomic,)f(go)h(to)g(step)f(6)370 1694 y(5.)28 b(Otherwise,)21
b(if)h Fq(q)g Fl( )878 1702 y Fp(D)938 1694 y Fq(p)p
Fs(,)h(recursiv)n(ely)e(replace)e(ev)n(ery)i(o)r(ccurrence)d(of)j
Fq(p)g Fs(in)h Fq(t)f Fs(with)g Fq(q)r Fs(.)441 1761
y(\(If)d(o)r(ccurrences)c(o)n(v)n(erlap,)19 b(b)r(oth)d(cannot)h(b)r(e)
g(replaced,)g(so)h(c)n(ho)r(ose)f(one.\))370 1827 y(6.)28
b(Remo)n(v)n(e)18 b Fq(p)g Fs(from)g Fq(S)s Fs(.)25 b(Go)19
b(bac)n(k)f(to)g(step)f(2.)370 1928 y(This)f(algorithm)e(\()p
Fy(GB)p Fs(\))h(requires)f(at)h(w)n(orst)f Fq(O)r Fs(\()p
Fl(j)p Fq(S)s Fl(j)1446 1908 y Fu(2)1471 1928 y Fs(\))h(time)g(to)g
(calculate)f(all)h(the)g(heuristic)304 1995 y(v)m(alues,)j
Fq(O)r Fs(\()p Fl(j)p Fq(S)s Fl(j)9 b Fs(log)i Fl(j)p
Fq(S)s Fl(j)p Fs(\))19 b(time)f(to)g(sort)g(the)g(patterns)e(b)n(y)j
(heuristic)e(v)m(alue,)i(and)f(could)g(in)h(the)304 2061
y(w)n(orst)e(case)g(tak)n(e)g Fq(O)r Fs(\()p Fl(j)p Fq(t)p
Fl(jj)p Fq(S)s Fl(j)p Fs(\))i(time)e(to)h(try)f(to)g(replace)g(eac)n(h)
g(pattern)f(in)i Fq(S)j Fs(at)c(ev)n(ery)h(lo)r(cation)304
2128 y(in)e Fq(t)p Fs(.)24 b(Th)n(us)17 b(the)e(o)n(v)n(erall)i(time)e
(complexit)n(y)i(is)f Fq(O)r Fs(\()p Fl(j)p Fq(S)s Fl(j)p
Fs(\()p Fl(j)p Fq(S)s Fl(j)8 b Fs(+)g(log)j Fl(j)p Fq(S)s
Fl(j)d Fs(+)g Fl(j)p Fq(t)p Fl(j)p Fs(\))16 b(=)g Fq(O)r
Fs(\()p Fl(j)p Fq(S)s Fl(j)2057 2108 y Fu(2)2090 2128
y Fs(+)8 b Fl(j)p Fq(S)s Fl(jj)p Fq(t)p Fl(j)p Fs(\).)304
2194 y(If)25 b(the)g(searc)n(h)f(metho)r(d)f(generates)g
Fq(O)r Fs(\(1\))h(or)h Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)p
Fs(\))g(patterns)e(then)h(the)h(required)f(times)304
2260 y(are)18 b Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)p Fs(\))h(or)g
Fq(O)r Fs(\()p Fl(j)p Fq(t)724 2240 y Fu(2)749 2260 y
Fl(j)p Fs(\))g(resp)r(ectiv)n(ely)-5 b(.)27 b(This)19
b(algorithm)f(is)i(not)f(alw)n(a)n(ys)h(correct)d(or)h(optimal,)304
2327 y(but)24 b(ma)n(y)i(pro)r(duce)c(e\016cien)n(t)i(dictionaries)g
(and)g(enco)r(dings)f(if)i(the)f(heuristic)g(function)f(is)304
2393 y(w)n(ell-c)n(hosen.)304 2499 y(5.4.)32 b Fy(T)-5
b(op-Do)n(wn.)28 b Fs(The)14 b(follo)n(wing)i(is)f(a)g(v)n(ersion)g(of)
g(the)f(Lemp)r(el-Ziv)h(enco)r(ding)e(algorithm:)304
2600 y Fy(Algorithm)20 b(5.4.1)h Fs(\()p Fy(lzenco)r(de)p
Fs(\))p Fy(.)304 2667 y Fs(Input:)36 b(a)24 b(string)g(of)g(sym)n(b)r
(ols)h(of)f(\000)h(and)f(a)g(ro)r(oted)e(tree)h Fq(T)34
b Fs(=)26 b(\()p Fq(r)n(;)9 b Fs(\000)1824 2647 y Fm(0)1840
2667 y Fq(;)g(E)s Fs(\))25 b(with)f(an)g(edge-)304 2733
y(lab)r(eling)17 b Fq(L)e Fs(:)h Fq(E)j Fl(!)c Fs(\000.)304
2800 y(Output:)23 b(a)18 b(string)f(of)h(sym)n(b)r(ols)h(of)f(\000)12
b Fl([)g Fs(\000)1194 2780 y Fm(0)1209 2800 y Fs(,)19
b(and)e(function)g Fq(M)k Fs(:)16 b(\000)1708 2780 y
Fm(0)1739 2800 y Fl(!)f Fq(E)s Fs(.)304 2866 y(Pro)r(cedure)g
Fy(lzenco)r(de)p Fs(\()p Fq(\015)s(;)9 b(T)c(;)k(L)p
Fs(\):)370 2946 y(1.)28 b(Create)16 b(v)m(ariable)i Fq(x)g
Fs(initialized)g(to)g Fq(r)r Fs(.)370 3012 y(2.)28 b(Create)16
b(an)i(empt)n(y)g(mapping)g Fq(M)6 b Fs(.)370 3079 y(3.)28
b(Create)16 b(an)i(empt)n(y)g(string)g Fq(\015)1055 3058
y Fm(0)370 3145 y Fs(4.)28 b(Scan)15 b(the)g(input)h(sequence)e(\()p
Fq(\015)1088 3153 y Fu(1)1112 3145 y Fq(;)9 b(:)g(:)g(:)21
b(;)9 b(\015)1273 3153 y Fp(n)1303 3145 y Fs(\);)17 b(for)f(eac)n(h)g
(1)f Fq(<)g(i)h(<)f(n)i Fs(in)f(order)f(p)r(erform)f(the)441
3211 y(follo)n(wing:)446 3278 y(\(a\))27 b(If)c(v)n(ertex)g
Fq(x)h Fs(=)h Fq(v)g Fs(of)e Fq(T)32 b Fs(has)23 b(a)h(c)n(hild-edge)f
Fl(f)p Fq(v)r(;)9 b(v)1617 3258 y Fm(0)1632 3278 y Fl(g)24
b Fs(lab)r(eled)e(with)h Fq(\015)2038 3286 y Fp(i)2056
3278 y Fs(,)j(then)c(set)545 3344 y Fq(x)15 b Fs(=)g
Fq(v)679 3324 y Fm(0)713 3344 y Fs(and)j(go)f(on)h(to)g(the)f(next)h
(sym)n(b)r(ol.)443 3411 y(\(b\))27 b(If)18 b(there)f(is)h(no)g(suc)n(h)
g(edge)f(and)h Fq(x)g Fs(=)g Fq(r)i Fs(then)d(set)h Fq(\015)1634
3391 y Fm(0)1664 3411 y Fs(=)e Fq(\015)1755 3391 y Fm(0)1770
3411 y Fq(\015)1799 3419 y Fp(i)449 3477 y Fs(\(c\))27
b(If)13 b(there)f(is)h(no)g(suc)n(h)g(edge)f(and)g Fq(M)6
b Fs(\()p Fq(\033)1313 3457 y Fm(0)1327 3477 y Fs(\))15
b(=)h Fq(x)d Fs(for)f(some)h Fq(\033)1715 3457 y Fm(0)1745
3477 y Fl(2)j Fs(\000)1833 3457 y Fm(0)1861 3477 y Fs(then)c(set)g
Fq(\015)2095 3457 y Fm(0)2126 3477 y Fs(=)j Fq(\015)2216
3457 y Fm(0)2232 3477 y Fq(\033)2266 3457 y Fm(0)2281
3477 y Fs(.)p eop
%%Page: 29 31
29 30 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(29)443 283 y Fs(\(d\))27 b(Otherwise)16 b(\014nd)i(a)f(new)h(sym)n(b)
r(ol)g Fq(\033)1299 263 y Fm(0)1329 283 y Fl(2)d Fs(\000)1416
263 y Fm(0)1450 283 y Fs(and)i(mo)r(dify)g Fq(M)24 b
Fs(so)18 b(that)e(it)i(assigns)f Fq(\033)2281 263 y Fm(0)545
350 y Fs(to)g Fq(x)p Fs(,)i(and)f(set)f Fq(\015)904 330
y Fm(0)935 350 y Fs(=)e Fq(\015)1025 330 y Fm(0)1040
350 y Fq(\033)1074 330 y Fm(0)1089 350 y Fs(.)370 416
y(5.)28 b(return)16 b Fq(\015)642 396 y Fm(0)676 416
y Fs(and)i Fq(M)6 b Fs(.)370 528 y(This)17 b(algorithm)f(can)g(b)r(e)g
(extended)f(to)h(enco)r(de)f(terms)h(using)g(the)g(patterns)f(in)i(a)g
(pattern)304 594 y(substitution)f(tree,)h(as)h(follo)n(ws:)304
705 y Fy(Algorithm)i(5.4.2)h Fs(\()p Fy(top)p 882 705
20 3 v 22 w(do)n(wn)p Fs(\))p Fy(.)304 772 y Fs(Input:)i(a)c(term)e
Fq(t)e Fl(2)h Fq(T)8 b(er)r(m)886 780 y Fu(\006)p Fp(X)977
772 y Fs(and)17 b(pattern)f(substitution)g(tree)h Fq(P)8
b Fs(.)304 838 y(Output:)23 b(a)18 b(term)g Fq(u)d Fl(2)g
Fq(T)8 b(er)r(m)942 846 y Fu(\006)p Fm([)p Fu(\006)1036
835 y Fi(0)1049 846 y Fp(X)1109 838 y Fs(and)18 b(dictionary)f
Fq(D)304 905 y Fs(Pro)r(cedure)e Fy(top)p 664 905 V 23
w(do)n(wn)p Fs(\()p Fq(t;)9 b(P)f Fs(\):)370 993 y(1.)28
b(Create)15 b(a)i(dictionary)f Fq(D)g Fs(=)g Fy(mak)n(e)p
1194 993 17 3 v 20 w(dictionary)p Fs(\()p Fq(P)8 b Fs(\).)23
b(\(W)-5 b(e)17 b(consider)e Fq(P)24 b Fs(to)17 b(represen)n(t)441
1059 y(a)h(pattern)e(set.\))370 1126 y(2.)28 b(If)18
b(\()p Fq(v)r(;)9 b(s)p Fs(\))15 b(=)g Fy(lo)r(okup)p
Fs(\()p Fq(P)r(;)9 b(t)p Fs(\))17 b(and)h Fq(p)g Fs(is)h(non)n(trivial)
f(and)f(nonatomic)g(then)446 1192 y(\(a\))27 b(Let)17
b Fq(\033)678 1172 y Fm(0)693 1192 y Fs(\()p Fy(y)749
1200 y Fu(1)773 1192 y Fq(;)9 b(:)g(:)g(:)21 b(;)9 b
Fy(y)939 1200 y Fp(n)969 1192 y Fs(\))15 b Fl( )1061
1200 y Fp(D)1117 1192 y Fq(p)p Fs(.)25 b(\(There)16 b(m)n(ust)i(b)r(e)g
(suc)n(h)f(a)i(rule)e(in)i Fq(D)r Fs(.\))443 1258 y(\(b\))27
b(Set)633 1368 y Fq(u)15 b Fs(=)g Fq(\033)772 1346 y
Fm(0)787 1368 y Fs(\()p Fy(elzenco)r(de)q Fs(\([)p Fq(s)p
Fs(])p Fy(y)1187 1376 y Fu(1)1212 1368 y Fq(;)9 b(P)f
Fs(\))p Fq(;)h(:)g(:)g(:)19 b(;)9 b Fy(elzenco)r(de)r
Fs(\([)p Fq(s)p Fs(])p Fy(y)1811 1376 y Fp(n)1841 1368
y Fq(;)g(P)f Fs(\)\))p Fq(:)370 1478 y Fs(3.)28 b(Otherwise,)17
b(if)i Fq(t)c Fs(=)h Fq(\033)r Fs(\()p Fq(t)p Fs(1)p
Fq(;)9 b(:)g(:)g(:)19 b(;)9 b(t)1117 1486 y Fp(n)1148
1478 y Fs(\))18 b(then)f(set)711 1589 y Fq(u)e Fs(=)g
Fq(\033)r Fs(\()p Fy(elzenco)r(de)p Fs(\()p Fq(t)1179
1597 y Fu(1)1204 1589 y Fq(;)9 b(P)f Fs(\))p Fq(;)h(:)g(:)g(:)20
b(;)9 b Fy(elzenco)r(de)q Fs(\()p Fq(t)1733 1597 y Fp(n)1763
1589 y Fq(;)g(P)f Fs(\)\))p Fq(:)441 1699 y Fs(If)18
b Fq(t)e Fs(=)f Fq(c)j Fs(or)g Fq(t)e Fs(=)f Fq(x)j Fs(for)g(some)f
(constan)n(t)g Fq(c)h Fs(or)g(v)m(ariable)g Fq(x)g Fs(then)f(set)g
Fq(u)e Fs(=)h Fq(t)p Fs(.)370 1765 y(4.)28 b(Return)16
b Fq(u)j Fs(and)e Fq(D)r Fs(.)370 1876 y(This)g(algorithm)f(\()p
Fy(TD)o Fs(\))h(\014nds)f(the)f(term's)h(closest)f(matc)n(hing)h
(pattern)f(and)h(substitution)304 1943 y(using)21 b(the)f(substitution)
f(tree,)i(enco)r(des)d(that)i(pattern)f(using)i(an)g(op)r(erator)d
(from)j(the)f(dic-)304 2009 y(tionary)-5 b(,)21 b(and)f(then)g(pro)r
(ceeds)e(recursiv)n(ely)i(on)h(an)n(y)g(subterms.)31
b(If)21 b(enco)r(ding)e(using)h(trivial)304 2075 y(patterns)h(w)n(ere)j
(allo)n(w)n(ed,)i(the)e(algorithm)f(w)n(ould)h(nev)n(er)g(terminate)e
(when)h(run)h(on)g(terms)304 2142 y(that)c(matc)n(hed)h(only)g(the)g
(trivial)h(pattern.)33 b(Therefore,)21 b(when)g(the)g(trivial)h
(pattern)d(is)j(the)304 2208 y(b)r(est)15 b(matc)n(h,)i(w)n(e)g(do)g
(not)f(try)h(to)f(enco)r(de)f(the)h(term)g(at)g(the)g(ro)r(ot)f(op)r
(erator,)g(but)h(instead)g(try)304 2275 y(to)h(enco)r(de)f(its)j
(subterms.)370 2341 y(This)f(algorithm)f(can)g(pro)r(duce)e(p)r(o)r(or)
h(results)g(b)r(ecause)g(it)h(will)i(replace)e(large,)g(nonrep)r(et-)
304 2408 y(itiv)n(e)h(patterns)d(when)i(replacing)f(smaller,)h(more)g
(recurren)n(t)e(patterns)g(w)n(ould)j(b)r(e)e(b)r(etter.)22
b(If,)304 2474 y(for)f(example,)i(the)e(en)n(tire)g(term)g(is)i(presen)
n(t)d(in)i(the)f(pattern)f(substitution)g(tree,)i(then)e(the)304
2540 y(top-do)n(wn)g(algorithm)g(will)i(replace)e(it)h(with)g(a)f
(single)h(sym)n(b)r(ol,)h(and)f(add)f(an)h(en)n(try)f(in)h(the)304
2607 y(dictionary)f(that)h(de\014nes)f(the)h(sym)n(b)r(ol)i(to)e(b)r(e)
g(the)g(en)n(tire)g(term.)35 b(F)-5 b(or)22 b(man)n(y)g(metrics)f(it)h
(is)304 2673 y(not)17 b(an)h(impro)n(v)n(emen)n(t)g(to)g(use)g(the)f
(dictionary)1171 2783 y Fq(D)f Fs(=)g Fq(u)f Fl(!)g Fq(t)304
2893 y Fs(and)i(enco)r(ding)g Fq(t)h Fs(b)n(y)1203 2980
y Fq(u)d Fl( )1305 2988 y Fp(D)1361 2980 y Fq(t:)304
3079 y Fs(The)g(resulting)g(pair)g(of)h(dictionary)e(and)h(enco)r(ding)
f(requires)h(more)g(space)f(than)h(the)g(original)304
3145 y(term)j(did,)i(that)e(is,)j(the)d(enco)r(ded)f(ob)s(ject)h(and)h
(dictionary)f(actually)h(ha)n(v)n(e)g(larger)g Fq(M)2149
3153 y Fu(#)2207 3145 y Fs(and)304 3211 y Fq(N)348 3219
y Fu(#)406 3211 y Fs(v)m(alues)f(than)f(the)g(original)h(term)f(did.)
370 3278 y(This)g(algorithm)f(is)h(neither)e(optimal)h(nor)g(correct.)
22 b(It)16 b(can)g(b)r(e)g(implemen)n(ted)g(quic)n(kly:)25
b(it)304 3344 y(can)20 b(run)h(in)g Fq(O)r Fs(\()p Fl(j)p
Fq(t)p Fl(jj)p Fq(P)8 b Fl(j)h Fs(max)q(\()p Fq(sub)p
990 3344 V 18 w(max)p Fs(\()p Fq(P)f Fs(\))p Fq(;)h Fl(j)p
Fq(t)p Fl(j)p Fs(\)\))20 b(time,)i(whic)n(h)f(for)g(a)g(\014xed)g
Fq(P)28 b Fs(w)n(orks)22 b(out)e(to)304 3411 y Fq(O)r
Fs(\()p Fl(j)p Fq(t)p Fl(j)420 3391 y Fu(2)445 3411 y
Fs(\))d(time.)25 b(In)17 b(fact,)g(the)g(total)g(amoun)n(t)g(of)h(matc)
n(hing)e(w)n(ork)i(required)f(is)h(only)g Fl(j)p Fq(t)p
Fl(j)h Fs(so)e(the)304 3477 y(total)g(time)h(is)h Fq(O)r
Fs(\()p Fl(j)p Fq(t)p Fl(j)p Fs(\),)f(as)g(in)h(the)e
Fy(ELZ)h Fs(algorithm.)p eop
%%Page: 30 32
30 31 bop 304 151 a Fu(30)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(5.5.)32
b Fy(T)-5 b(op-do)n(wn)26 b(brute)f(force.)k Fs(This)21
b(algorithm)g(\()p Fy(TB)p Fs(\))g(is)h(iden)n(tical)f(to)g(the)f
(top-do)n(wn)304 350 y(enco)r(ding)d(except)g(that)h(if)i(there)d(is)j
(a)f(c)n(hoice)f(b)r(et)n(w)n(een)g(enco)r(ding)f(a)i(term)f(at)g(the)h
(ro)r(ot)e(and)304 416 y(lea)n(ving)c(the)f(ro)r(ot)f(alone)i(and)f
(enco)r(ding)f(its)i(c)n(hildren,)h(it)f(tries)f(b)r(oth)f(and)i
(returns)e(the)h(smaller)304 483 y(enco)r(ding.)370 549
y(This)28 b(enco)r(ding)d(is)j(not)e(the)h(same)g(as)g(the)f(brute)g
(force)g(enco)r(ding)g(b)r(ecause)e(it)k(tak)n(es)304
616 y(only)19 b(one)f(term's)g(size)h(in)n(to)g(accoun)n(t)e(at)h(a)h
(time,)h(and)e(do)r(es)f(not)i(tak)n(e)f(dictionary)g(size)g(in)n(to)
304 682 y(accoun)n(t.)38 b(Ev)n(en)24 b(if)g(it)f(did,)i(it)f(still)g
(migh)n(t)g(miss)g(optimal)f(enco)r(dings)e(b)n(y)j(making)f(lo)r
(cally)304 748 y(go)r(o)r(d)16 b(but)i(globally)g(bad)g(c)n(hoices.)370
815 y(T)-5 b(op-do)n(wn)20 b(brute)f(force)g(enco)r(ding)f(is)i(again)g
(neither)e(optimal)i(nor)f(correct.)28 b(It)20 b(runs)f(in)304
881 y Fq(O)r Fs(\(2)398 861 y Fm(j)p Fp(t)p Fm(j)442
881 y Fl(j)p Fq(P)8 b Fl(j)h Fs(max)q(\()p Fq(sub)p 736
881 17 3 v 19 w(max)p Fs(\()p Fq(P)f Fs(\))p Fq(;)h Fl(j)p
Fq(t)p Fl(j)p Fs(\)\))16 b(time.)25 b(If)18 b Fl(j)p
Fq(P)8 b Fl(j)19 b Fs(is)g Fq(O)r Fs(\()p Fl(j)p Fq(t)p
Fl(j)p Fs(\))f(or)g Fq(O)r Fs(\()p Fl(j)p Fq(t)p Fl(j)1776
861 y Fu(2)1801 881 y Fs(\))g(then)f(this)h(is)h Fq(O)r
Fs(\(2)2225 861 y Fm(j)2239 881 y Fq(t)p Fl(j)p Fs(\))304
948 y(time.)j(The)13 b(top-do)n(wn)e(brute)h(force)f(algorithm)h(seems)
f(more)h(lik)n(ely)j(to)d(b)r(e)g(useful)g(in)h(enco)r(ding)304
1014 y(small)24 b(terms)e(or)h(parts)g(of)g(terms,)h(b)r(ecause)d(it)j
(requires)e(to)r(o)h(m)n(uc)n(h)g(time)h(to)f(pro)r(duce)e(an)304
1080 y(answ)n(er)c(for)h(large)f(terms.)p eop
%%Page: 31 33
31 32 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(31)304 283 y Fy(P)n(art)21 b Fs(3.)31 b Fy(Applications)22
b(and)g(exp)r(erimen)n(ts)370 383 y Fs(In)15 b(this)g(part)e(of)i(the)f
(thesis,)h(w)n(e)g(will)i(describ)r(e)12 b(an)j(application)f(of)g(the)
g(term)g(compression)304 450 y(tec)n(hniques)i(describ)r(ed)g(ab)r(o)n
(v)n(e)h(to)g(a)h(practical)e(problem,)i(that)e(of)i(compressing)d(pro)
r(ofs)h(in)j(a)304 516 y(system)d(for)h(mobile)h(co)r(de)d(safet)n(y)-5
b(.)24 b(First)17 b(w)n(e)h(shall)g(giv)n(e)f(an)g(o)n(v)n(erview)h(of)
f(the)g(relev)m(an)n(t)f(parts)304 582 y(of)j(that)g(system.)29
b(W)-5 b(e)20 b(shall)h(then)d(discuss)i(ho)n(w)g(to)f(use)g(term)g
(compression)f(tec)n(hniques)h(to)304 649 y(compress)h(pro)r(ofs.)33
b(W)-5 b(e)22 b(presen)n(t)e(some)h(exp)r(erimen)n(tal)g(results,)g
(and)h(\014nally)g(sp)r(eculate)d(on)304 715 y(ho)n(w)14
b(term)g(compression)f(tec)n(hniques)g(could)h(b)r(e)f(extended)g(to)h
(mak)n(e)g(it)h(p)r(ossible)e(to)h(optimize)304 782 y(pro)r(ofs.)953
920 y(1.)31 b Ft(Pr)o(oof-Carr)l(ying)22 b(Code)370 1020
y Fr(Pr)m(o)m(of-c)m(arrying)g(c)m(o)m(de)h Fs(\(PCC\))16
b(is)i(a)f(system)g(for)g(mobile)g(co)r(de)f(safet)n(y)h([18].)25
b(It)17 b(pro)n(vides)g(a)304 1086 y(means)f(for)g(securit)n
(y-conscious)f Fr(c)m(o)m(de)21 b(c)m(onsumers)h Fs(to)17
b(ensure)e(that)h(co)r(de)f(they)i(receiv)n(e)f(from)304
1152 y Fr(c)m(o)m(de)j(pr)m(o)m(duc)m(ers)k Fs(o)n(v)n(er)16
b(a)f(computer)f(net)n(w)n(ork)h(is)h(safe)f(to)g(execute.)22
b(In)16 b(this)f(system,)h(the)f(co)r(de)304 1219 y(pro)r(ducer)21
b(is)k(resp)r(onsible)d(for)i(pro)n(viding)h(a)f Fr(pr)m(o)m(of)38
b Fs(\(in)24 b(a)g(suitable)g(formal)g(system\))f(that)304
1285 y(the)f(co)r(de)g(adheres)g(to)h(a)g Fr(safety)i(p)m(olicy)p
Fs(,)i(made)c(public)g(b)n(y)h(the)f(co)r(de)f(consumers.)38
b(When)304 1352 y(a)25 b(co)r(de)f(consumer)g(wishes)h(to)h(run)f(the)f
(co)r(de,)j(it)e(can)g(c)n(hec)n(k)h(the)f(pro)r(of)f(\014rst)h(to)g
(decide)304 1418 y(whether)17 b(it)i(is)h(safe.)26 b(Pro)r(of)18
b(c)n(hec)n(king)g(is)i(decidable)e(and)g(can)g(b)r(e)h(implemen)n(ted)
f(e\016cien)n(tly)-5 b(,)304 1485 y(while)20 b(program)f(v)n
(eri\014cation)h(is)g(undecidable)f(and)h(inheren)n(tly)f(di\016cult.)
31 b(Th)n(us,)22 b(the)d(co)r(de)304 1551 y(pro)r(ducer)c(is)k(resp)r
(onsible)e(for)h(doing)g(the)f Fr(har)m(d)26 b Fs(w)n(ork)19
b(of)f(pro)n(ving)g(a)h(program)e(correct,)f(and)304
1617 y(the)21 b(co)r(de)g(consumer)g(c)n(hec)n(k)i(the)f(resulting)f
(pro)r(of,)i(whic)n(h)f(is)h Fr(e)m(asy)p Fs(.)39 b(Pro)r(of-carrying)
20 b(co)r(de)304 1684 y(frees)d(the)h(co)r(de)f(consumer)g(from)h(an)g
(unpleasan)n(t)f(c)n(hoice)h(b)r(et)n(w)n(een)f(v)n(erifying)i(the)f
(program)304 1750 y(on)g(its)g(o)n(wn,)g(or)g(blindly)h(trusting)e(it.)
370 1817 y(Some)j(useful)g(safet)n(y)g(p)r(olicies)g(migh)n(t)h
(include)f Fr(memory)j(safety)p Fs(,)g Fr(termination)p
Fs(,)h Fr(privacy)p Fs(,)304 1883 y(and)16 b Fr(c)m(orr)m(e)m(ctness)p
Fs(.)27 b(Memory)16 b(safet)n(y)g(requires)f(that)h(all)h(memory)f
(accesses)e(are)i(to)g(legally)h(al-)304 1949 y(lo)r(cated)d(lo)r
(cations.)22 b(T)-5 b(ermination)15 b(requires)g(that)f(the)h(program)g
(alw)n(a)n(ys)i(terminates)d(within)304 2016 y(a)23 b(giv)n(en)g(n)n
(um)n(b)r(er)g(of)g(steps.)39 b(A)23 b(program)f(pro)n(vides)g(priv)m
(acy)h(if)h(it)g(nev)n(er)e(sends)h(informa-)304 2082
y(tion)d(from)h(a)g(lo)r(cal)f(\014le)h(to)g(the)f(net)n(w)n(ork)g
(without)g(the)g(user's)g(kno)n(wledge.)33 b(A)21 b(program)e(is)304
2149 y(correct)g(if)j(it)g(alw)n(a)n(ys)g(b)r(eha)n(v)n(es)f(according)
f(to)h(some)g(b)r(eha)n(vioral)f(sp)r(eci\014cation,)g(whic)n(h)i(for)
304 2215 y(practical)g(purp)r(oses)g(is)i(usually)g(expressed)e(in)j
(some)e(formal)h(system.)41 b(It)24 b(is)g(w)n(ell-kno)n(wn)304
2282 y(that)d(these)f(prop)r(erties)f(are)j(undecidable)e
(\(termination,)h(in)i(particular,)f(is)g(precisely)f(the)304
2348 y(Halting)c(Problem\).)370 2414 y(A)k(curren)n(t)e(pro)r
(of-carrying)f(co)r(de)h(system)h(pro)n(v)n(es)h(prop)r(erties)d(of)i
(programs)f(indirectly)-5 b(,)304 2481 y(b)n(y)21 b(pro)n(ving)g
(statemen)n(ts)e(in)i(\014rst-order)e(logic)i(whic)n(h)g(are)f(equiv)m
(alen)n(t)g(to)h(program)e(safet)n(y)-5 b(.)304 2547
y(The)19 b(logic)g(used)f(b)n(y)i(this)f(system)f(is)i(represen)n(ted)c
(in)k(the)e(Edin)n(burgh)g(Logical)h(F)-5 b(ramew)n(ork)304
2614 y(\(LF\))14 b([13].)24 b(Pro)r(ofs)13 b(are)h(represen)n(ted)f(as)
h(pro)r(of-t)n(yp)r(ed)f(terms)h(in)i(LF,)f(and)g(pro)r(of)e(c)n(hec)n
(king)i(in)304 2680 y(the)g(PCC)h(logic)h(corresp)r(onds)c(to)i(t)n(yp)
r(e)h(c)n(hec)n(king)g(in)h(LF.)g(Because)e(of)h(this)g(corresp)r
(ondenc)o(e,)304 2746 y(the)f(pro)r(of)g(c)n(hec)n(k)n(er)h(is)h
(simply)g(a)f(LF)g(t)n(yp)r(e)g(c)n(hec)n(k)n(er,)h(whic)n(h)f(only)h
(needs)e(to)h(b)r(e)f(implemen)n(ted)304 2813 y(once.)370
2879 y(Pro)r(of)h(represen)n(tations)e(in)j(this)g(system)g(are)f
(curren)n(tly)g(three)g(to)h(four)f(times)h(the)g(size)g(of)304
2946 y(the)h(co)r(de)g(they)g(accompan)n(y)-5 b(.)27
b(F)-5 b(or)19 b(the)f(system)h(to)g(b)r(ecome)e(practical,)h(the)g
(pro)r(ofs)g(need)g(to)304 3012 y(b)r(e)i(made)h(as)f(small)i(as)f(p)r
(ossible,)g(while)h(still)g(b)r(eing)e(e\016cien)n(tly)h(c)n(hec)n(k)m
(able.)33 b(One)21 b(p)r(ossible)304 3079 y(approac)n(h)h(to)h
(optimizing)g(pro)r(ofs)f(migh)n(t)h(b)r(e)g(to)g(analyze)g(the)g
(logic)g(and)g(pro)r(of)f(metho)r(ds)304 3145 y(used)16
b(b)n(y)i(the)e(theorem)f(pro)n(v)n(er)i(to)f(dev)n(elop)h(a)g(set)f
(of)h(pro)r(of)f(transformations)e(whic)n(h)j(can)f(b)r(e)304
3211 y(applied)g(to)g(a)h(pro)r(of)f(to)g(reduce)f(its)i(complexit)n(y)
-5 b(.)25 b(W)-5 b(e)16 b(will)j(tak)n(e)d(a)h(di\013eren)n(t)f
(approac)n(h)f(here,)304 3278 y(whic)n(h)22 b(tak)n(es)f(accoun)n(t)f
(only)i(of)g(the)f(syn)n(tactical)f(structure)f(of)j(pro)r(ofs,)f(not)g
(the)g(seman)n(tic)304 3344 y(structure.)39 b(As)23 b(w)n(e)h(will)h
(see)e(in)i(this)e(section,)h(mac)n(hine-generated)d(pro)r(ofs)h(are)h
(lik)n(ely)j(to)304 3411 y(con)n(tain)d(structural)f(redundancy)-5
b(,)24 b(so)g(w)n(e)h(should)f(b)r(e)f(able)h(to)g(apply)g(term)f
(compression)304 3477 y(tec)n(hniques)17 b(to)g(help)h(optimize)g
(them.)p eop
%%Page: 32 34
32 33 bop 304 151 a Fu(32)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(1.1.)32
b Fy(V)-5 b(eri\014cation)20 b(conditions.)28 b Fs(W)-5
b(e)18 b(can)f(abstractly)e(think)j(of)f(a)h(program)e(prop)r(ert)n(y)g
(as)304 350 y(a)e(set)f Fq(P)22 b Fs(of)14 b(programs.)22
b(A)14 b(program)e Fq(p)j Fs(is)f(said)g(to)g Fr(satisfy)19
b Fq(P)j Fs(if)15 b Fq(p)g Fl(2)g Fq(P)8 b Fs(.)23 b(Program)13
b(v)n(eri\014cation)304 416 y(or)g(analysis,)h(then,)g(attempts)d(to)h
(determine)g(whether)f(a)i(program)f(satis\014es)g(an)n(y)h(of)g(a)h(v)
m(ariet)n(y)304 483 y(of)k(program)e(prop)r(erties.)370
549 y(This)d(problem)f(is)h(notoriously)e(undecidable)g(for)h(man)n(y)h
(in)n(teresting)e(program)g(prop)r(erties,)304 616 y(suc)n(h)18
b(as)h(program)f(termination.)25 b(In)19 b(fact,)f(if)i(the)e(set)g(of)
h(all)g(p)r(ossible)f(programs)g(is)h(in\014nite)304
682 y(\(as)14 b(is)h(the)g(case)f(in)h(most)f(useful)h(programming)e
(languages\),)h(there)f(are)i(uncoun)n(tably)e(man)n(y)304
748 y(p)r(ossible)i(program)f(prop)r(erties,)g(all)i(but)g(coun)n
(tably)e(man)n(y)j(of)e(whic)n(h)h(cannot)e(ev)n(en)i(b)r(e)f(giv)n(en)
304 815 y(\014nite)d(formal)h(descriptions.)22 b(On)13
b(the)g(other)e(hand,)j(if)g(a)g(program)d(prop)r(ert)n(y)h
Fq(P)21 b Fs(is)14 b(\014nite,)g(then)304 881 y(the)k(problem)g(of)h
(whether)e(a)i(program)e(satis\014es)h(it)h(can)g(b)r(e)f(formally)h
(decided)f(in)h(principle)304 948 y(b)n(y)g(c)n(hec)n(king)f(whether)e
(it)i(is)h(in)f(the)g(set)f Fq(P)8 b Fs(.)370 1014 y(In)19
b(b)r(et)n(w)n(een)e(these)g(t)n(w)n(o)i(extremes)d(are)i(program)f
(prop)r(erties)f(that)h(are)h(\014nitely)g(describ-)304
1080 y(able)24 b(but)f(con)n(tain)g(in\014nitely)h(man)n(y)h(programs.)
41 b(Man)n(y)24 b(of)g(these)f(prop)r(erties)f(are)h(useful)304
1147 y(ev)n(en)f(if)h(they)f(are)g(undecidable)e(in)j(general,)g(b)r
(ecause)d(p)r(eople)h(usually)i(try)f(to)g(write)g(pro-)304
1213 y(grams)c(that)g(they)h(understand.)25 b(One)19
b(w)n(a)n(y)h(of)f(describing)f(and)g(pro)n(ving)h(program)f(prop)r
(er-)304 1280 y(ties)f(is)i(to)e(transform)f(the)h(problem)g(in)n(to)h
(one)f(in)i(logic.)24 b(Some)18 b(examples)f(of)h(this)f(approac)n(h)
304 1346 y(are)c(Hoare's)g Fr(axiomatic)18 b(metho)m(d)6
b Fs([15)r(],)16 b Fr(guar)m(de)m(d)j(c)m(ommands)i Fs(and)14
b Fr(we)m(akest)k(pr)m(e)m(c)m(onditions)5 b Fs([6)s(],)304
1413 y(and)14 b Fr(veri\014c)m(ation)19 b(c)m(onditions)5
b Fs([18)q(].)24 b(W)-5 b(e)15 b(will)h(informally)f(describ)r(e)d
(\(\014rst-order\))g(v)n(eri\014cation)304 1479 y(conditions)k(in)j
(this)f(section.)304 1581 y Fy(De\014nition)j(1.1.1.)26
b Fs(A)18 b(\014rst-order)d(statemen)n(t)h Fq(V)c(C)22
b Fs(is)c(a)f Fr(veri\014c)m(ation)22 b(c)m(ondition)j
Fs(of)17 b(a)h(pro-)304 1647 y(gram)e Fq(p)g Fs(for)g(a)g(prop)r(ert)n
(y)f Fq(P)24 b Fs(in)17 b(some)e(mathematical)g(mo)r(del)h(of)g
(computation)e(if)j Fq(V)c(C)20 b Fs(is)d(true)304 1714
y(in)i(the)e(mo)r(del)h(if)h(and)f(only)h(if)g Fq(p)d
Fl(2)g Fq(P)8 b Fs(.)25 b(A)18 b Fr(veri\014c)m(ation)23
b(c)m(ondition)g(gener)m(ator)28 b Fq(V)12 b(C)t(Gen)2175
1722 y Fp(P)2230 1714 y Fs(for)304 1780 y(a)20 b(safet)n(y)g(p)r(olicy)
h Fq(P)28 b Fs(is)21 b(a)g(\(t)n(ypically)g(computable\))d(function)h
(suc)n(h)i(that)e Fq(V)13 b(C)t(Gen)2083 1788 y Fp(P)2119
1780 y Fs(\()p Fq(p)p Fs(\))19 b(is)j(a)304 1847 y(v)n(eri\014cation)17
b(condition)g(of)h Fq(p)g Fs(for)g(the)f(prop)r(ert)n(y)f
Fq(P)8 b Fs(.)370 1948 y(Note)17 b(that)g(a)h(program)f(ma)n(y)i(ha)n
(v)n(e)f(non)n(trivially)h(di\013eren)n(t)f(v)n(eri\014cation)f
(conditions.)304 2050 y Fy(Example)k(1.1.2.)26 b Fs(F)-5
b(or)22 b(the)e(trivial)j(program)d(prop)r(ert)n(y)g(con)n(taining)g
(all)j(programs,)e(b)r(oth)304 2117 y Fl(>)f Fs(and)f
Fl(:)p Fs(\()p Fl(9)p Fq(x)p Fs(\()p Fl(9)p Fq(y)r Fs(\()p
Fl(9)p Fq(z)r Fs(\()p Fl(9)p Fq(n)p Fs(\(\()p Fq(n)14
b Fl(\025)k Fs(3\))f Fl(\033)h Fq(x)1159 2097 y Fp(n)1202
2117 y Fs(+)13 b Fq(y)1287 2097 y Fp(n)1335 2117 y Fs(=)18
b Fq(z)1424 2097 y Fp(n)1455 2117 y Fs(\)\)\)\)\))f(are)i(v)n
(eri\014cation)g(conditions)f(for)304 2183 y(an)n(y)g(program)f
Fq(p)h Fs(\(if)h(F)-5 b(ermat's)17 b(Last)g(Theorem)g(is)i(true;)e(see)
h([25)o(,)h(8]\).)370 2285 y(W)-5 b(e)16 b(prefer)f(v)n(eri\014cation)g
(conditions)f(that)h(are)g(easy)h(to)f(pro)n(v)n(e,)i(so)f(v)n
(eri\014cation)f(condition)304 2352 y(generators)g(should)i(generate)f
(conditions)h(that)g(are)g(as)h(simple)h(as)e(p)r(ossible.)304
2454 y Fy(Example)k(1.1.3.)26 b Fs(F)-5 b(or)18 b(illustration,)g
(consider)e(a)j(v)n(ery)f(simple)h(programming)d(language)304
2520 y(for)h(a)i(random-access)c(register)i(mac)n(hine)g(with)i(the)e
(follo)n(wing)i(instructions:)441 2600 y Ff(PUT\(R,C\))137
b(;)29 b(put)h(constant)f(value)g(C)g(into)h(R)441 2666
y(MOVE\(R)615 2674 y Fu(1)640 2666 y Ff(,)f(R)727 2674
y Fu(2)752 2666 y Ff(\))g(;)g(move)h(value)f(in)g(R)1304
2674 y Fu(2)1358 2666 y Ff(into)g(R)1532 2674 y Fu(1)441
2733 y Ff(LOAD\(L,R\))108 b(;)29 b(load)h(value)f(from)g(location)h(L)f
(to)g(register)h(R)441 2799 y(STORE\(L,R\))79 b(;)29
b(store)h(value)f(from)g(register)h(R)f(to)g(location)h(L)441
2866 y(STOP)253 b(;)29 b(stop)h(the)f(program)304 3012
y Fs(A)24 b(program)f(in)i(this)f(language)f(is)h(a)h(sequence)d(of)j
(instructions)d Ff(S)1776 3020 y Fu(1)1801 3012 y Ff(;)29
b Fq(:)9 b(:)g(:)i Ff(;)29 b(S)2020 3020 y Fp(n)2050
3012 y Fs(.)44 b(W)-5 b(e)24 b(will)304 3079 y(assume)18
b(that)g(there)f(is)j(a)f(\014nite)f(set)g(of)h(registers,)f(that)g
(memory)h(lo)r(cations)e(and)i(constan)n(ts)304 3145
y(are)h(giv)n(en)i(b)n(y)g(in)n(tegers,)f(and)f(memory)h(lo)r(cations)f
(do)h(not)f(o)n(v)n(erlap)i(\()p Fr(i.)g(e.)p Fs(,)h(writing)e(to)f
(one)304 3211 y(lo)r(cation)c(nev)n(er)i(a\013ects)f(what)g(is)i(read)e
(at)h(other)f(lo)r(cations.\))370 3278 y(Supp)r(ose)f(that)h(w)n(e)i
(wish)f(to)g(c)n(hec)n(k)g(that)f(programs)f(only)j(access)d(memory)i
(in)h(the)e(range)304 3344 y(from)g(memory)h(address)e
Fd(A)28 b Fs(to)17 b Fd(B)10 b Fs(.)19 b(In)e(what)h(follo)n(ws,)g
Ff(I)30 b(;)f Fd(S)e Fs(means)18 b(a)f(single)h(instruction)e
Ff(I)304 3411 y Fs(heading)h(a)h(sequence)e Fd(S)28 b
Fs(of)18 b(instructions.)23 b(A)18 b(v)n(eri\014cation)f(condition)g
(generator)e(for)j(this)304 3477 y(v)n(ery)g(simple)h(safet)n(y)f(p)r
(olicy)f(w)n(ould)i(b)r(e:)p eop
%%Page: 33 35
33 34 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(33)441 283 y Ff(VC)499 291 y Fp(M)548 283 y Ff(\(PUT\(R,C\);)30
b Fd(S)9 b Ff(\))137 b(=)29 b(VC)1188 291 y Fp(M)1238
283 y Ff(\()p Fd(S)9 b Ff(\))441 350 y(VC)499 358 y Fp(M)548
350 y Ff(\(MOVE\(R)751 358 y Fu(1)776 350 y Ff(,)29 b(R)863
358 y Fu(2)888 350 y Ff(\);)h Fd(S)9 b Ff(\))29 b(=)g(VC)1188
358 y Fp(M)1238 350 y Ff(\()p Fd(S)9 b Ff(\))441 416
y(VC)499 424 y Fp(M)548 416 y Ff(\(LOAD\(L,R\);)30 b
Fd(S)9 b Ff(\))108 b(=)29 b(\()p Fd(A)39 b Fl(\024)29
b Ff(L)g Fl(^)g Ff(L)g Fl(\024)h Fd(B)9 b Ff(\))29 b
Fl(^)g Ff(VC)1774 424 y Fp(M)1824 416 y Ff(\()p Fd(S)9
b Ff(\))441 483 y(VC)499 491 y Fp(M)548 483 y Ff(\(STORE\(L,R\);)30
b Fd(S)10 b Ff(\))78 b(=)29 b(\()p Fd(A)39 b Fl(\024)29
b Ff(L)g Fl(^)g Ff(L)g Fl(\024)h Fd(B)9 b Ff(\))29 b
Fl(^)g Ff(VC)1774 491 y Fp(M)1824 483 y Ff(\()p Fd(S)9
b Ff(\))441 549 y(VC)499 557 y Fp(M)548 549 y Ff(\(STOP;)30
b Fd(S)9 b Ff(\))253 b(=)29 b Fl(>)370 694 y Fs(Consider)17
b(the)h(follo)n(wing)g(t)n(w)n(o)h(programs:)441 772
y Ff(P)470 780 y Fu(1)495 772 y Ff(:)441 838 y(PUT\(R)586
846 y Fu(1)611 838 y Ff(,0\);)441 904 y(MOVE\(R)615 912
y Fu(2)640 904 y Ff(,)29 b(R)727 912 y Fu(1)752 904 y
Ff(\);)441 971 y(STOP)441 1115 y(P)470 1123 y Fu(2)495
1115 y Ff(:)441 1182 y(LOAD\(100,R)731 1190 y Fu(1)756
1182 y Ff(\);)441 1248 y(LOAD\(101,R)731 1256 y Fu(2)756
1248 y Ff(\);)441 1315 y(STORE\(100,R)760 1323 y Fu(2)785
1315 y Ff(\);)441 1381 y(STORE\(101,R)760 1389 y Fu(1)785
1381 y Ff(\);)441 1447 y(STOP)304 1592 y Fs(The)15 b(\014rst)g(program)
g(simply)h(sets)f(t)n(w)n(o)i(registers)d(to)h(zero,)g(so)h(it)g
(should)g(alw)n(a)n(ys)g(b)r(e)f(memory-)304 1658 y(safe.)30
b(The)20 b(second)f(program)g(exc)n(hanges)g(the)h(v)m(alues)g(at)g(t)n
(w)n(o)h(memory)f(lo)r(cations,)f(so)h(it)h(is)304 1725
y(necessary)16 b(to)i(v)n(erify)h(that)d(the)i(memory)g(accesses)e(are)
h(legal.)370 1791 y(If)i(w)n(e)f(calculate)f(the)g(v)n(eri\014cation)g
(conditions)g(of)h(the)f(t)n(w)n(o)i(programs)d(w)n(e)j(get)e(the)304
1858 y(follo)n(wing)h(results:)441 1936 y Ff(VC)499 1944
y Fp(M)548 1936 y Ff(\(P)606 1944 y Fu(1)631 1936 y Ff(\))29
b(=)g Fl(>)441 2014 y Ff(VC)499 2022 y Fp(M)548 2014
y Ff(\(P)606 2022 y Fu(2)631 2014 y Ff(\))g(=)g(\()p
Fd(A)39 b Fl(\024)29 b Ff(100)g Fl(^)g Ff(100)h Fl(\024)f
Fd(B)9 b Ff(\))29 b Fl(^)g Ff(\()p Fd(A)39 b Fl(\024)29
b Ff(101)h Fl(^)f Ff(101)g Fl(\024)g Fd(B)10 b Ff(\))747
2080 y Fl(^)29 b Ff(\()p Fd(A)39 b Fl(\024)29 b Ff(100)g
Fl(^)g Ff(100)h Fl(\024)f Fd(B)9 b Ff(\))29 b Fl(^)g
Ff(\()p Fd(A)39 b Fl(\024)29 b Ff(101)h Fl(^)e Ff(101)i
Fl(\024)f Fd(B)9 b Ff(\))30 b Fl(^)f(>)304 2158 y Fs(As)15
b(w)n(e)g(w)n(ould)h(wish,)h(the)d(v)n(eri\014cation)g(condition)h(for)
g(the)f(simple)i(program)e(whic)n(h)h(do)r(es)f(not)304
2225 y(access)20 b(memory)i(is)g(simply)h Fl(>)p Fs(.)37
b(F)-5 b(or)22 b(the)f(more)g(complicated)g(program,)g(there)g(is)h(a)g
(more)304 2291 y(complicated)17 b(condition.)27 b(Moreo)n(v)n(er,)19
b(w)n(e)h(can)e(see)h(that)f(there)f(are)i(duplicate)f(goals)h(in)g
(the)304 2357 y(v)n(eri\014cation)f(condition,)h(since)g(w)n(e)h(m)n
(ust)g(v)n(erify)g(m)n(ultiple)g(accesses)e(to)h(the)g(same)g(memory)
304 2424 y(lo)r(cations.)j(If)c(w)n(e)g(needed)e(to)h(pro)r(duce)e(a)i
(compact)f(formal)h(pro)r(of)f(of)h(the)g(second)f(condition)304
2490 y(b)n(y)26 b(hand,)h(w)n(e)f(could)f(consider)f(pro)n(ving)i
Ff(\()p Fd(A)39 b Fl(\024)29 b Ff(100)g Fl(^)g Ff(100)h
Fl(\024)f Fd(B)9 b Ff(\))26 b Fs(and)f Ff(\()p Fd(A)39
b Fl(\024)29 b Ff(101)g Fl(^)304 2557 y Ff(101)g Fl(\024)g
Fd(B)10 b Ff(\))26 b Fs(as)h(lemmas,)i(and)c(citing)h(the)g(lemmas)g(t)
n(wice)h(eac)n(h.)48 b(Without)26 b(p)r(erforming)304
2623 y(some)13 b(di\016cult)g(analysis,)h(an)f(automatic)f(theorem)f
(pro)n(v)n(er)j(will)g(not)f(recognize)e(or)i(tire)g(of)g(this)304
2689 y(rep)r(etition,)j(and)i(will)h(blindly)g(generate)d(iden)n(tical)
i(subpro)r(ofs)d(for)j(eac)n(h)g(iden)n(tical)g(subgoal.)370
2780 y(This)g(example)f(presen)n(ts)f(a)h(misleadingly)h(simple)g(view)
g(of)f(the)g(problems)g(of)g(generating)304 2846 y(v)n(eri\014cation)d
(conditions,)h(but)g(it)h(do)r(es)e(illustrate)g(the)h(p)r(oin)n(t)g
(that)f(mac)n(hine-generated)e(v)n(eri-)304 2912 y(\014cation)g
(conditions)h(and)g(their)h(pro)r(ofs)e(are)h(lik)n(ely)j(to)d(con)n
(tain)g(rep)r(eated)e(goals)j(or)f(structures)304 2979
y(of)h(pro)r(of)e(rules.)23 b(In)14 b(ric)n(her)g(programming)e
(languages,)i(more)f(complicated)g(v)n(eri\014cation)g(con-)304
3045 y(ditions)20 b(are)f(needed,)h(so)g(rep)r(etitiv)n(e)f(structure)f
(ma)n(y)j(b)r(e)e(more)h(lik)n(ely)-5 b(.)34 b(T)-5 b(erm)20
b(compression)304 3112 y(tec)n(hniques)14 b(ma)n(y)i(b)r(e)f(able)g(to)
g(use)g(suc)n(h)g(redundancy)f(to)h(represen)n(t)e(pro)r(ofs)h(more)h
(e\016cien)n(tly)-5 b(.)304 3211 y(1.2.)32 b Fy(The)20
b(Edin)n(burgh)i(Logical)d(F)-5 b(ramew)n(ork.)28 b Fs(A)16
b Fr(lo)m(gic)m(al)21 b(fr)m(amework)26 b Fs(is)17 b(a)g(formal)g(sys-)
304 3278 y(tem)h(in)i(whic)n(h)f(other)e(logics)i(can)g(b)r(e)f
(readily)h(represen)n(ted.)24 b(Logical)18 b(framew)n(orks)g(simplify)
304 3344 y(exp)r(erimen)n(tation)i(b)n(y)k(implemen)n(ting)f(the)g
(similar)h(asp)r(ects)d(of)i(formal)g(systems)f(\(suc)n(h)h(as)304
3411 y(term)15 b(structure)f(and)i(substitutions\))d(so)j(that)f
(researc)n(hers)f(can)i(concen)n(trate)d(on)j(the)f(di\013er-)304
3477 y(ences.)p eop
%%Page: 34 36
34 35 bop 304 151 a Fu(34)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)370 283 y Fs(The)d(Edin)n(burgh)f
(Logical)g(F)-5 b(ramew)n(ork)17 b(\(LF\)[13)n(])h(is)g(one)e(suc)n(h)h
(system.)24 b(LF)17 b(is)g(a)g(simply-)304 350 y(t)n(yp)r(ed)k
Fq(\025)p Fs(-calculus)h(with)g(dep)r(enden)n(t)e(t)n(yp)r(es.)36
b(A)22 b(logic)g(consisting)e(of)j(constan)n(ts,)e(function)304
416 y(sym)n(b)r(ols,)f(prop)r(ositions,)d(and)h(pro)r(of)g(rules)h(can)
f(b)r(e)g(represen)n(ted)f(b)n(y)i(a)g(LF)h(signature)d(asso-)304
483 y(ciating)h(constan)n(t)f(sym)n(b)r(ols)i(with)g(appropriate)e(t)n
(yp)r(es.)27 b(According)17 b(to)h(the)g(Curry-Ho)n(w)n(ard)304
549 y(isomorphism)f(b)r(et)n(w)n(een)g(t)n(yp)r(es)g(and)h(prop)r
(ositions,)e(pro)r(of)h(judgemen)n(ts)f(are)i(represen)n(ted)d(as)304
616 y(dep)r(enden)n(t)20 b(t)n(yp)r(es)i(and)g(pro)r(of)f(deriv)m
(ations)g(are)h(represen)n(ted)e(as)i(ob)s(jects)f(of)i(those)e(t)n(yp)
r(es.)304 682 y(Pro)r(of-c)n(hec)n(king)16 b(in)j(the)e(represen)n(ted)
e(system)j(corresp)r(onds)d(to)i(t)n(yp)r(e-c)n(hec)n(king)h(in)g(LF.)
370 748 y(Man)n(y)e(useful)g(formal)g(systems)f(share)g(concepts)f(suc)
n(h)i(as)g(substitution,)f(term)g(structure,)304 815
y(pro)r(of)22 b(structure,)h(and)g(pro)r(of)f(c)n(hec)n(king.)41
b(These)22 b(facilities)i(can)f(b)r(e)g(pro)n(vided)g(b)n(y)h(a)g
(\014xed)304 881 y(implemen)n(tation)19 b(of)h(LF,)g(and)g(systems)f
(de\014ned)g(using)h(LF)g(can)f(tak)n(e)h(adv)m(an)n(tage)e(of)i(them)
304 948 y(immediately)-5 b(.)47 b(One)26 b(suc)n(h)f(implemen)n(tation)
f(is)j(a)e(logic)h(programming)e(language)g(called)304
1014 y(Elf[22)o(].)370 1080 y(LF)17 b(is)h(divided)g(in)n(to)f(three)f
(syn)n(tactical)g(classes:)23 b Fr(kinds)p Fs(,)c Fr(typ)m(es)p
Fs(,)g(and)d Fr(obje)m(cts)24 b Fs(\(or)17 b Fr(terms)5
b Fs(\).)304 1147 y(They)18 b(are)f(de\014ned)g(b)n(y)i(the)e(follo)n
(wing)i(BNF)f(grammar:)441 1229 y Fd(Kinds)97 b Ff(K)29
b(::=)g(Type)h(|)f Fs(\005)p Fd(x)9 b Ff(:A.K)441 1295
y Fd(Types)97 b Ff(T)29 b(::=)g(a)g(|)h Fs(\005)p Fd(x)9
b Ff(:A)1112 1303 y Fu(1)1137 1295 y Ff(.A)1195 1303
y Fu(2)1249 1295 y Ff(|)29 b Fq(\025)p Fd(x)10 b Ff(:A)1436
1303 y Fu(1)1461 1295 y Ff(.A)1519 1303 y Fu(2)1573 1295
y Ff(|)29 b(A)g(M)441 1361 y Fd(Objects)39 b Ff(M)29
b(::=)g(c)g(|)h Fd(x)38 b Ff(|)29 b Fq(\025)p Fd(x)10
b Ff(:A.M)30 b(|)f(M)1403 1369 y Fu(1)1457 1361 y Ff(M)1486
1369 y Fu(2)304 1443 y Fs(The)15 b(letters)g Ff(a)h Fs(and)g
Ff(c)h Fs(represen)n(t)c(t)n(yp)r(e)j(constan)n(ts)e(and)i(ob)s(ject)e
(constan)n(ts)g(resp)r(ectiv)n(ely)-5 b(,)16 b(and)304
1509 y(the)21 b(letter)h Fd(x)32 b Fs(denotes)21 b(an)n(y)i(one)f(of)g
(a)h(set)e(of)i(v)m(ariables.)37 b(The)22 b(ob)s(jects)f(and)h(t)n(yp)r
(es)g(of)g(the)304 1576 y(form)h Fq(\025)p Fd(x)10 b
Ff(:A.M)25 b Fs(or)f Fq(\025)p Fd(x)10 b Ff(:A.B)24 b
Fs(represen)n(t)e(functions)g(\(or,)j(for)f(t)n(yp)r(es,)h
Fr(typ)m(e)h(families)5 b Fs(\))24 b(whic)n(h)304 1642
y(can)17 b(b)r(e)g(applied)g(to)h(individual)g(ob)s(jects)e(of)i(the)f
(sp)r(eci\014ed)f(t)n(yp)r(e)h Ff(A)p Fs(.)h(The)g(\005-t)n(yp)r(es)f
(represen)n(t)304 1709 y(dep)r(enden)n(t)h(function)j(t)n(yp)r(es:)30
b(\005)p Fd(x)9 b Ff(:A.B)22 b Fs(denotes)d(the)i(t)n(yp)r(e)g(of)g
(functions)f(from)h(ob)s(jects)f(of)304 1775 y(t)n(yp)r(e)e
Ff(A)i Fs(to)e(t)n(yp)r(e)g Ff(B)p Fs(,)i(whic)n(h)f(binds)g
Fd(x)29 b Fs(in)20 b Ff(B)p Fs(,)f(and)g(\005)p Fd(x)9
b Ff(:A.K)20 b Fs(denotes)d(the)h(kind)h(p)r(opulated)e(b)n(y)304
1842 y(t)n(yp)r(e)h(families)h(from)g(ob)s(jects)e(of)i(t)n(yp)r(e)f
Ff(A)i Fs(to)e(t)n(yp)r(es)g(of)h(kind)g Ff(K)p Fs(,)h(whic)n(h)f
(binds)f Fd(x)29 b Fs(in)20 b Ff(K)p Fs(.)f(When)304
1908 y Fd(x)26 b Fs(do)r(es)15 b(not)h(app)r(ear)f(free)g(in)i
Ff(B)g Fs(or)f Ff(K)p Fs(,)h(w)n(e)g(use)f(the)g(more)g(familiar)h
(notation)d Ff(A)29 b Fl(!)h Ff(B)17 b Fs(or)f Ff(A)29
b Fl(!)304 1974 y Ff(K)16 b Fs(to)g(represen)n(t)e(these)h(t)n(yp)r(es)
g(and)h(kinds.)24 b(Moreo)n(v)n(er,)16 b(in)h(an)f(application)f
Ff(M)29 b(N)17 b Fs(or)f Ff(A)29 b(M)p Fs(,)17 b(of)f(an)304
2041 y(ob)s(ject)g(or)h(a)h(t)n(yp)r(e)f(to)g(another)e(ob)s(ject,)i
(the)f(ob)s(ject)g(or)i(t)n(yp)r(e)f Ff(M)h Fs(or)f Ff(A)h
Fs(m)n(ust)f(b)r(e)g(a)h(function)e(or)304 2107 y(a)i(t)n(yp)r(e)f
(family)-5 b(,)20 b(and)e(ha)n(v)n(e)h(the)e(appropriate)e(t)n(yp)r(e)j
(or)g(kind.)370 2174 y(In)g(addition,)g(v)m(ariable)g(t)n(yp)r(es)f
(and)h(constan)n(t)e(t)n(yp)r(es)h(and)h(kinds)g(are)g(b)r(ound)e(in)j
(LF)304 2240 y Fr(c)m(ontexts)24 b Fs(\000)18 b(and)g
Fr(signatur)m(es)24 b Fs(\006)19 b(resp)r(ectiv)n(ely)-5
b(,)17 b(de\014ned)g(as)h(follo)n(ws:)441 2322 y(\000)52
b Ff(::=)29 b Fl(\001)h Ff(|)f Fs(\000)p Ff(,)g Fd(x)9
b Ff(:A)441 2388 y Fs(\006)47 b Ff(::=)29 b Fl(\001)h
Ff(|)f Fs(\006)p Ff(,)g(c:A)g(|)g Fs(\006)p Ff(,)g(a:K)304
2470 y Fs(There)17 b(are)g(\014v)n(e)i(main)f(judgmen)n(ts)f(in)h(LF:)
550 2551 y(\006)g(sig)522 b(\006)19 b(is)g(a)f(v)m(alid)g(signature)550
2618 y(\006)d Fl(`)g Fs(\000)j(ctx)412 b(\000)18 b(is)h(a)f(v)m(alid)h
(con)n(text)e(under)g(\006)550 2684 y(\000)e Fl(`)634
2692 y Fu(\006)683 2684 y Fq(K)465 b(K)23 b Fs(is)c(a)f(v)m(alid)g
(kind)550 2751 y(\000)d Fl(`)634 2759 y Fu(\006)683 2751
y Fq(A)g Fs(:)h Fq(K)377 b Fs(T)n(yp)r(e)18 b Fq(A)g
Fs(has)g(kind)h Fq(K)550 2817 y Fs(\000)c Fl(`)634 2825
y Fu(\006)683 2817 y Fq(M)21 b Fs(:)16 b Fq(A)364 b Fs(Ob)s(ject)17
b Fq(M)25 b Fs(has)17 b(t)n(yp)r(e)h Fq(A)304 2899 y
Fs(When)g(there)f(is)j(no)e(p)r(ossibilit)n(y)i(for)e(confusion)g(w)n
(e)h(will)h(omit)f(the)f(subscript)f(\006)i(in)h(the)e(last)304
2965 y(three)i(judgmen)n(ts.)35 b(W)-5 b(e)22 b(will)i(not)d(go)h(in)n
(to)g(the)f(further)f(details)i(of)g(these)e(judgmen)n(ts)h(and)304
3032 y(rules)c(relating)h(them;)f(these)g(can)h(b)r(e)f(found)g(in)i
([13)o(].)304 3135 y Fy(Example)i(1.2.1.)26 b Fs(The)18
b(structure)d(of)j(prop)r(ositions)e(using)i(connectiv)n(es)1165
3232 y(\()p Fl(>)p Fq(;)9 b Fl(^)p Fq(;)g Fl(\033)p Fq(;)g
Fl(8)p Fs(\))304 3329 y(can)17 b(b)r(e)h(represen)n(ted)d(b)n(y)k(the)e
(follo)n(wing)i(sequence)d(of)i(t)n(yp)r(e)g(declarations:)441
3411 y Ff(\045)29 b(basic)g(types)441 3477 y(i)224 b(:)29
b(Type)-87 b(\045)30 b(individuals)p eop
%%Page: 35 37
35 36 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(35)441 283 y Ff(o)224 b(:)29 b(Type)-87 b(\045)30 b(propositions)441
350 y(pf)195 b(:)29 b(o)g Fl(!)h Ff(Type)-230 b(\045)30
b(proof)f(derivations)441 498 y(\045)g(predicate)h(functions)441
564 y(true)137 b(:)29 b(o)441 630 y(and)166 b(:)29 b(o)g
Fl(!)h Ff(o)f Fl(!)g Ff(o)441 697 y(imp)166 b(:)29 b(o)g
Fl(!)h Ff(o)f Fl(!)g Ff(o)441 763 y(all)166 b(:)29 b(\(i)h
Fl(!)f Ff(o\))g Fl(!)h Ff(o)370 912 y Fs(F)-5 b(or)16
b(example,)g(the)f(\014rst-order)e(prop)r(osition)h Fl(8)p
Fq(x)p Fs(\(\(\()p Fq(P)8 b Fs(\()p Fq(x)p Fs(\))j Fl(\033)k
Fq(Q)p Fs(\()p Fq(x)p Fs(\)\))7 b Fl(^)g Fq(P)h Fs(\()p
Fq(x)p Fs(\)\))j Fl(\033)k Fq(Q)p Fs(\()p Fq(x)p Fs(\)\))f(can)304
978 y(b)r(e)g(represen)n(ted)e(in)j(LF)g(b)n(y)i Ff(\(all)29
b Fq(\025)p Fd(x)10 b Ff(:i.\(imp)30 b(\(and)f(\(imp)g(\(P)g
Fd(x)10 b Ff(\))29 b(\(Q)g Fd(x)10 b Ff(\)\))29 b(\(P)g
Fd(x)10 b Ff(\)\))29 b(\(Q)304 1044 y Fd(x)9 b Ff(\)\)\))p
Fs(.)26 b(The)17 b(sym)n(b)r(ols)i Ff(P)f Fs(and)g Ff(Q)g
Fs(ha)n(v)n(e)h(t)n(yp)r(e)e Ff(i)29 b Fl(!)h Ff(o)p
Fs(.)370 1111 y(The)18 b(follo)n(wing)h(LF)f(constan)n(t)e
(declarations)g(sho)n(w)i(ho)n(w)g(the)g(logical)g(structure)d(can)j(b)
r(e)304 1177 y(represen)n(ted)d(in)k(LF:)441 1259 y Ff(\045)29
b(proof)g(rules)441 1325 y(true)p 560 1325 18 3 v 21
w(i)87 b(:)29 b(pf)h(true)441 1391 y(and)p 531 1391 V
21 w(i)116 b(:)29 b Fs(\005)p Fd(A)10 b Ff(:o.)p Fs(\005)p
Fd(B)f Ff(:o.pf)29 b Fd(A)39 b Fl(!)29 b Ff(pf)h Fd(B)9
b Fl(!)30 b Ff(pf)f(\(and)g Fd(A)39 b(B)9 b Ff(\))441
1458 y(and)p 531 1458 V 21 w(el)87 b(:)29 b Fs(\005)p
Fd(A)10 b Ff(:o.)p Fs(\005)p Fd(B)f Ff(:o.pf)29 b(\(and)h
Fd(A)38 b(B)10 b Ff(\))29 b Fl(!)g Ff(pf)h Fd(A)441 1524
y Ff(and)p 531 1524 V 21 w(er)87 b(:)29 b Fs(\005)p Fd(A)10
b Ff(:o.)p Fs(\005)p Fd(B)f Ff(:o.pf)29 b(\(and)h Fd(A)38
b(B)10 b Ff(\))29 b Fl(!)g Ff(pf)h Fd(B)441 1591 y Ff(imp)p
531 1591 V 21 w(i)116 b(:)29 b Fs(\005)p Fd(A)10 b Ff(:o.)p
Fs(\005)p Fd(B)f Ff(:o.\(pf)29 b Fd(A)39 b Fl(!)29 b
Ff(pf)h Fd(B)9 b Ff(\))29 b Fl(!)h Ff(pf)f(\(imp)g Fd(A)39
b(B)10 b Ff(\))441 1657 y(imp)p 531 1657 V 21 w(e)116
b(:)29 b Fs(\005)p Fd(A)10 b Ff(:o.)p Fs(\005)p Fd(B)f
Ff(:o.pf)29 b(\(imp)h Fd(A)38 b(B)10 b Ff(\))29 b Fl(!)g
Ff(pf)h Fd(A)38 b Fl(!)30 b Ff(pf)f Fd(B)441 1723 y Ff(all)p
531 1723 V 21 w(i)116 b(:)29 b Fs(\005)p Fd(A)10 b Ff(:i)29
b Fl(!)g Ff(o.)p Fs(\005)p Fd(x)9 b Ff(:i.pf)30 b(\()p
Fd(A)39 b(x)9 b Ff(\))29 b Fl(!)h Ff(pf)f(\(all)g Fd(A)10
b Ff(\))441 1790 y(all)p 531 1790 V 21 w(e)116 b(:)29
b Fs(\005)p Fd(A)10 b Ff(:i)29 b Fl(!)g Ff(o.)p Fs(\005)p
Fd(x)9 b Ff(:i.pf)30 b(\(all)f Fd(A)10 b Ff(\))29 b Fl(!)g
Ff(pf)g(\()p Fd(A)39 b(x)10 b Ff(\))370 1960 y Fs(These)27
b(declarations)e(corresp)r(ond)f(to)j(the)f(usual)i(pro)r(of)d(rules)i
(for)g(the)g Fl(^)p Fs(,)j Fl(\033)p Fs(,)h(and)c Fl(8)304
2026 y Fs(connectiv)n(es.)21 b(F)-5 b(or)14 b(example,)h(consider)d
(the)h(rules)g(for)g Fl(^)p Fs(-in)n(tro)r(duction)f(and)h
Fl(\033)p Fs(-in)n(tro)r(duction:)812 2119 y(\000)i Fl(`)g
Fq(A)138 b Fs(\000)15 b Fl(`)g Fq(B)p 812 2141 423 3
v 1246 2160 a Fl(^)p Fs(I)900 2188 y(\000)g Fl(`)g Fq(A)d
Fl(^)g Fq(B)1368 2119 y Fs(\000)p Fq(;)d(u)15 b Fs(:)h
Fq(A)e Fl(`)i Fq(B)p 1368 2141 288 3 v 1666 2161 a Fl(\033)g
Fs(I)1745 2137 y Fp(u)1382 2188 y Fs(\000)f Fl(`)g Fq(A)g
Fl(\033)g Fq(B)370 2282 y Fs(The)24 b(LF)h(constan)n(t)d
Ff(and)p 905 2282 18 3 v 21 w(i)j Fs(tak)n(es)f(4)g(argumen)n(ts:)36
b(t)n(w)n(o)25 b(predicates)d Ff(A)i Fs(and)g Ff(B)p
Fs(,)h(and)f(t)n(w)n(o)304 2348 y(pro)r(ofs,)18 b(pro)r(of)k
Ff(p)e Fs(of)j Ff(A)d Fs(and)f Ff(q)g Fs(of)24 b Ff(B)p
Fs(.)c(The)f(t)n(w)n(o)g(pro)r(of)f(argumen)n(ts)g(represen)n(t)f(the)h
(t)n(w)n(o)i(judg-)304 2414 y(men)n(ts)g(that)f(are)g(required)h(in)g
(the)g Fl(^)p Fs(-in)n(tro)r(duction)e(rule.)31 b(The)20
b(other)f(t)n(w)n(o)i(argumen)n(ts)d(are)304 2481 y(parameters)d(that)j
(\014x)g(precisely)g(whic)n(h)g(v)n(ersion)g(of)g(the)g(rule)g(is)h
(used.)24 b(The)18 b(t)n(yp)r(e)g(of)g(a)g(w)n(ell-)304
2547 y(formed)12 b(application)h(of)18 b Ff(and)p 920
2547 V 21 w(i)c Fs(to)f Ff(A)p Fs(,)i Ff(B)p Fs(,)f Ff(p)p
Fs(,)h(and)f Ff(q)g Fs(has)f(t)n(yp)r(e)g Ff(pf)29 b(\(and)g(A)g(B\))p
Fs(,)15 b(corresp)r(onding)304 2614 y(to)i(the)h(result)f(of)h(the)f
Fl(^)p Fs(-in)n(tro)r(duction)f(rule.)370 2680 y(Analogously)-5
b(,)18 b(the)f(constan)n(t)f Ff(imp)p 1103 2680 V 21
w(i)j Fs(tak)n(es)e(three)g(argumen)n(ts:)23 b(t)n(w)n(o)18
b(prop)r(ositions)e Ff(A)i Fs(and)304 2746 y Ff(B)p Fs(,)g(and)g(a)f
(function)g Ff(f)h Fs(whic)n(h)g(maps)f(ob)s(jects)f(of)i(t)n(yp)r(e)f
Ff(pf)29 b(A)18 b Fs(to)g(ob)s(jects)e(of)h(t)n(yp)r(e)h
Ff(pf)29 b(B)p Fs(.)18 b(This)304 2813 y(third)j(argumen)n(t)f
(represen)n(ts)f(the)h(single)i(prerequisite)d(judgmen)n(t)i(in)h(the)e
Fl(\033)p Fs(-in)n(tro)r(duction)304 2879 y(rule,)j(and)f(again)g(the)f
(\014rst)g(t)n(w)n(o)i(argumen)n(ts)e(parameterize)e(the)i(rule.)37
b(The)22 b(result)f(of)h(ap-)304 2946 y(plying)g(the)g(function)e
Ff(imp)p 885 2946 V 21 w(i)j Fs(is)f(an)g(ob)s(ject)f(of)h(t)n(yp)r(e)f
Ff(pf)29 b(\(imp)h(A)f(B\))p Fs(,)23 b(whic)n(h)f(corresp)r(onds)304
3012 y(to)h(the)h(result)f(of)h(the)f Fl(\033)p Fs(-in)n(tro)r(duction)
f(rule.)43 b(In)24 b(natural)f(deduction,)h(w)n(e)g(can)g(only)g(use)
304 3079 y(the)17 b(assumption)g(of)i Fq(A)f Fs(in)h(the)e(pro)r(of)g
(of)h Fq(B)s Fs(;)h(the)f(v)m(ariable)g Fq(u)g Fs(is)h(used)f(to)g
(enforce)e(this)i(scop)r(e)304 3145 y(restriction.)27
b(In)20 b(the)f(LF)h(represen)n(tation)c(of)k(this)g(pro)r(of)e(rule,)i
(w)n(e)g(enforce)e(this)i(restriction)304 3211 y(b)n(y)j(pro)n(viding)f
(a)h(function)e(function)g Ff(f)h Fs(from)g(pro)r(ofs)f(of)27
b Ff(A)22 b Fs(to)g(pro)r(ofs)f(of)26 b Ff(B)p Fs(.)e(The)e(b)r(o)r(dy)
f(of)304 3278 y(this)c(function)f(is)j(abstracted)14
b(o)n(v)n(er)k(a)g(v)m(ariable)f Fd(x)27 b Fs(of)18 b(t)n(yp)r(e)f
Ff(pf)29 b(A)p Fs(,)18 b(whic)n(h)g(only)g(has)f(meaning)304
3344 y(within)h(the)f(function)g(b)r(o)r(dy)-5 b(.)370
3411 y(T)g(o)16 b(represen)n(t)e(the)h(v)n(eri\014cation)f(conditions)h
(sho)n(wn)g(ab)r(o)n(v)n(e,)h(w)n(e)g(could)g(in)n(tro)r(duce)d
(further)304 3477 y(represen)n(tations)23 b(for)j(the)f(constan)n(ts,)i
(function)e(sym)n(b)r(ols,)k(predicates,)e(and)f(pro)r(of)f(rules)p
eop
%%Page: 36 38
36 37 bop 304 151 a Fu(36)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(needed)f(to)i(express)
f(prop)r(erties)e(of)j(natural)f(n)n(um)n(b)r(ers.)33
b(W)-5 b(e)21 b(will)i(instead)d(concen)n(trate)e(on)304
350 y(asp)r(ects)e(of)i(LF)g(that)f(are)g(more)h(relev)m(an)n(t)f(to)g
(our)h(discussion)f(of)h(pro)r(of)f(optimization.)370
416 y(If)24 b(w)n(e)g(represen)n(t)d(a)i(logical)h(system)f
Fq(L)g Fs(in)h(LF)g(using)f(signature)f(\006,)j(w)n(e)f(can)f(represen)
n(t)304 483 y(pro)r(ofs)c(in)i(that)e(system)i(as)f(LF)h(terms)f(whic)n
(h)h(w)n(e)g(shall)g(refer)e(to)i(as)f(pro)r(of)f(terms.)32
b(An)20 b Fq(L)p Fs(-)304 549 y(pro)r(of)g Fq(D)k Fs(of)e
Fq(L)p Fs(-sen)n(tence)f Fq(p)h Fs(corresp)r(onds)d(to)i(a)i(pro)r(of)d
(term)i Fc(p)p Fq(D)r Fc(q)f Fs(in)h(LF)h(of)f(t)n(yp)r(e)f
Ff(pf)i Fc(p)p Fq(p)p Fc(q)p Fs(,)304 616 y(where)e Fc(p)p
Fl(\001)p Fc(q)i Fs(denotes)d(the)i(LF)g(represen)n(tations)d(of)k
Fq(L)p Fs(-pro)r(ofs)e(and)g Fq(L)p Fs(-terms.)37 b(W)-5
b(e)23 b(can)f(also)304 682 y(c)n(hec)n(k)c(alleged)f(pro)r(of)g
(represen)n(tations)e(b)n(y)k(v)n(erifying)f Fl(\001)e(`)1535
690 y Fu(\006)1585 682 y Fc(p)p Fq(D)r Fc(q)e Fs(:)h
Ff(pf)q Fc(p)p Fq(p)p Fc(q)p Fs(.)304 774 y Fy(Example)21
b(1.2.2.)26 b Fs(W)-5 b(e)21 b(migh)n(t)h(ha)n(v)n(e)f(a)h(pro)r(of)e
(in)h(\014rst-order)e(natural)h(deduction)g(of)h(\()p
Fq(A)13 b Fl(^)304 840 y Fq(B)s Fs(\))h Fl(\033)i Fs(\()p
Fq(B)e Fl(^)f Fq(A)p Fs(\),)k(as)h(follo)n(ws:)p 727
886 438 3 v 1176 894 a Fp(u)727 932 y Fq(u)d Fs(:)h Fq(A)11
b Fl(^)i Fq(B)18 b Fl(`)d Fq(A)d Fl(^)g Fq(B)p 727 955
V 1176 970 a Fl(^)p Fs(E)1250 978 y Fp(R)778 1001 y Fq(u)j
Fs(:)h Fq(A)c Fl(^)g Fq(B)18 b Fl(`)d Fq(B)p 1303 886
V 1752 894 a Fp(u)1303 932 y Fq(u)g Fs(:)h Fq(A)c Fl(^)g
Fq(B)18 b Fl(`)d Fq(A)d Fl(^)g Fq(B)p 1303 955 V 1752
970 a Fl(^)p Fs(E)1827 978 y Fp(L)1356 1001 y Fq(u)j
Fs(:)h Fq(A)c Fl(^)g Fq(B)18 b Fl(`)d Fq(A)p 778 1024
910 3 v 1699 1043 a Fl(^)p Fs(I)1015 1071 y Fq(u)g Fs(:)h
Fq(A)11 b Fl(^)i Fq(B)18 b Fl(`)d Fq(B)g Fl(^)d Fq(A)p
974 1093 521 3 v 1505 1113 a Fl(\033)j Fs(I)1583 1088
y Fp(u)989 1140 y Fl(`)g Fs(\()p Fq(A)d Fl(^)g Fq(B)s
Fs(\))j Fl(\033)g Fs(\()p Fq(B)g Fl(^)d Fq(A)p Fs(\))304
1227 y(Using)17 b(the)h(ab)r(o)n(v)n(e)f(signature,)g(if)i
Ff(A)c Fs(=)h Fc(p)p Fq(A)p Fc(q)h Fs(and)h Ff(B)d Fs(=)h
Fc(p)p Fq(B)s Fc(q)p Fs(,)h(w)n(e)i(can)e(represen)n(t)304
1293 y(\()p Fq(A)11 b Fl(^)h Fq(B)s Fs(\))j Fl(\033)g
Fs(\()p Fq(B)g Fl(^)d Fq(A)p Fs(\))18 b(in)g(LF)g(as)g
Ff(\(imp)30 b(\(and)f(A)g(B\))g(\(and)g(B)h(A\)\))p Fs(,)19
b(and)e(represen)n(t)f(the)304 1360 y(pro)r(of)g(rules)h(b)n(y)h(their)
f(coun)n(terpart)d(LF)k(function)e(sym)n(b)r(ols.)25
b(So)17 b(the)g(represen)n(tation)d(of)j(the)304 1426
y(pro)r(of)f(ab)r(o)n(v)n(e)i(is)441 1504 y Ff(\(imp)p
560 1504 18 3 v 21 w(i)29 b(\(and)g(A)h(B\))f(\(and)g(B)g(A\))636
1571 y(\()p Fq(\025)p Fd(u)10 b Ff(:pf)29 b(\(and)h(A)f(B\).)636
1637 y(and)p 726 1637 V 21 w(i)g(B)g(A)h(\(and)p 1038
1637 V 21 w(er)f(A)g(B)g Fd(u)10 b Ff(\))29 b(\(and)p
1475 1637 V 21 w(el)g(A)g(B)g Fd(u)10 b Ff(\)\)\))304
1715 y Fs(whic)n(h)18 b(has)g(t)n(yp)r(e)f Ff(pf)30 b(\(imp)f(\(and)g
(A)g(B\))g(\(and)h(B)f(A\)\))p Fs(.)370 1782 y(Observ)n(e)14
b(that)f(the)h(represen)n(tation)d(of)k(the)f(pro)r(of)f(con)n(tains)g
(man)n(y)i(seemingly)g(redundan)n(t)304 1848 y(argumen)n(ts.)22
b(In)16 b(particular,)g(the)f(predicates)f Ff(A)j Fs(and)f
Ff(B)g Fs(app)r(ear)e(six)j(times)f(eac)n(h)g(in)h(the)e(pro)r(of)304
1914 y(represen)n(tation.)45 b(In)27 b(a)f(pro)r(of)f(of)h(a)g(similar)
h(theorem)d(where)h Ff(A)i Fs(and)f Ff(B)g Fs(represen)n(t)e(more)304
1981 y(complicated)19 b(predicates,)g(these)g(larger)h(predicates)e
(will)k(b)r(e)e(repro)r(duced)d(six)k(times)g(eac)n(h.)304
2047 y(These)16 b(rep)r(eated)d(argumen)n(ts)i(are)h(needed)f(b)n(y)j
(the)e(LF)h(t)n(yp)r(e)f(system.)23 b(Ho)n(w)n(ev)n(er,)18
b(often)d(they)304 2114 y(can)g(b)r(e)h(inferred)f(from)h(other)f
(parts)g(of)i(the)e(pro)r(of)g(term)h(or)g(from)g(the)f(t)n(yp)r(e)h
(whic)n(h)h(the)e(term)304 2180 y(is)j(supp)r(osed)e(to)i(ha)n(v)n(e.)
370 2272 y(There)g(is)h(an)g(implicit)g(represen)n(tation)d(of)j(LF,)g
(called)g(LF)1629 2280 y Fp(i)1647 2272 y Fs([19)o(],)i(whic)n(h)e
(allo)n(ws)g(terms)f(to)304 2338 y(con)n(tain)e Fr(plac)m(eholders)26
b Fs(\(denoted)14 b(b)n(y)19 b Ff(*)p Fs(\))e(whic)n(h)h(stand)e(for)h
(subterms)e(whose)i(v)m(alues)g(can)f(b)r(e)304 2405
y(inferred)g(during)h(t)n(yp)r(ec)n(hec)n(king.)23 b(LF)1104
2413 y Fp(i)1140 2405 y Fs(places)17 b(some)g(reasonable)e
(restrictions)g(on)j(the)e(kinds)304 2471 y(of)j(terms)f(that)g(it)i
(can)f(t)n(yp)r(ec)n(hec)n(k.)27 b(Most)18 b(immediate)h(to)g(our)f
(purp)r(oses)f(is)j(the)f(restriction)304 2538 y(that)f(v)m(ariables)h
(ma)n(y)i(not)e(o)r(ccur)f(as)h Fr(applic)m(ation)24
b(he)m(ads)p Fs(,)e(that)d(is,)i(that)e(if)h(a)g(term)f(con)n(tains)304
2604 y(a)f(subterm)f(of)h(the)f(form)h Ff(M)29 b(N)p
Fs(,)19 b(the)e(ob)s(ject)g Ff(M)h Fs(cannot)f(b)r(e)g(a)h(v)m
(ariable.)304 2696 y Fy(Example)j(1.2.3.)26 b Fs(In)18
b(a)g(general)f(case)g(in)i(whic)n(h)f Ff(A)g Fs(and)g
Ff(B)h Fs(are)e(large)g(terms,)h(the)f(ab)r(o)n(v)n(e)304
2762 y(pro)r(of)f(can)i(b)r(e)f(represen)n(ted)e(in)k(LF)1055
2770 y Fp(i)1092 2762 y Fs(without)e(duplicating)g Ff(A)i
Fs(and)f Ff(B)g Fs(unnecessarily:)441 2840 y Ff(\(imp)p
560 2840 V 21 w(i)29 b(*)g(*)g(\()p Fq(\025)p Fd(u)10
b Ff(:pf)30 b(\(and)f(A)g(B\).)752 2907 y(and)p 842 2907
V 21 w(i)h(*)f(*)g(\(and)p 1154 2907 V 21 w(er)g(*)g(*)g
Fd(u)10 b Ff(\))29 b(\(and)p 1591 2907 V 21 w(el)g(*)h(*)f
Fd(u)9 b Ff(\)\)\))370 2999 y Fs(Pro)r(ofs)17 b(can)g(b)r(e)g(b)r(oth)g
(represen)n(ted)e(and)j(v)m(alidated)f(m)n(uc)n(h)i(more)e(e\016cien)n
(tly)h(in)h(LF)2162 3007 y Fp(i)2180 2999 y Fs(.)990
3112 y(2.)31 b Ft(Pr)o(oof)21 b(Compression)370 3211
y Fs(LF)27 b(terms)g(are)f(represen)n(table)e(as)j(terms)g(o)n(v)n(er)g
(an)g(op)r(erator)d(domain,)30 b(and)c(so)h(term)304
3278 y(compression)12 b(tec)n(hniques)g(can)i(b)r(e)f(used)g(to)g
(compress)f(pro)r(ofs.)22 b(In)14 b(this)g(section)e(w)n(e)i(will)i
(sho)n(w)304 3344 y(ho)n(w)21 b(to)f(translate)f(LF)i(signatures)e(to)i
(appropriate)d(op)r(erator)g(domains)j(and)f(pro)r(of)g(terms)304
3411 y(to)i(terms)g(o)n(v)n(er)h(those)f(domains,)i(and)e(discuss)g(ho)
n(w)h(b)r(est)f(to)g(use)g(the)g(term)g(compression)304
3477 y(algorithms)17 b(to)h(compress)e(the)h(represen)n(ted)f(pro)r
(ofs.)p eop
%%Page: 37 39
37 38 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(37)304 283 y Fs(2.1.)32 b Fy(T)-5 b(ranslating)20 b(pro)r(ofs)g(to)g
(terms.)28 b Fs(There)16 b(are)g(t)n(w)n(o)i(di\013eren)n(t)e(p)r
(ossible)h(metho)r(ds)e(for)304 350 y(translating)21
b(from)h(LF)h(to)f(an)g(appropriate)f(op)r(erator)e(domain.)38
b(Giv)n(en)24 b(an)f(LF)f(signature)304 416 y(\006,)g(w)n(e)f(could)f
(use)h(an)f(op)r(erator)e(domain)j(whic)n(h)g(de\014nes)e(op)r(erators)
f(suc)n(h)i(as)h Fq(\025)p Fs(,)i(\005,)e(and)g Fl(\017)304
483 y Fs(\(application\))15 b(and)h(represen)n(ts)f(the)h(constan)n(ts)
f(in)i(the)f(LF)h(signature)e(as)i(constan)n(ts.)22 b(Alter-)304
549 y(nately)-5 b(,)19 b(w)n(e)h(migh)n(t)f(wish)g(to)g(view)g(the)f
(LF)i(constan)n(ts)c(as)j(functions)f(or)h(op)r(erators)d(on)i(their)
304 616 y(o)n(wn,)g(with)g(appropriate)e(ranks.)370 682
y(In)25 b(the)f(former)g(approac)n(h)f(w)n(e)i(can)g(translate)d(more)j
(general)e(pro)r(ofs)g(b)r(ecause)g(in)i(LF,)304 748
y(function)17 b(applications)g(ma)n(y)i(b)r(e)f(partial:)25
b(function)17 b(sym)n(b)r(ols)i(of)f(t)n(yp)r(es)g(that)f(indicate)h
(that)304 815 y(they)c(can)h(tak)n(e)g Fq(n)h Fs(argumen)n(ts)e(migh)n
(t)h(not)g(alw)n(a)n(ys)h(b)r(e)e(applied)h(to)g(all)h
Fq(n)g Fs(argumen)n(ts.)22 b(F)-5 b(or)15 b(the)304 881
y(same)h(reason)f(w)n(e)i(migh)n(t)f(ha)n(v)n(e)h(more)f(opp)r
(ortunities)e(to)i(generate)e(useful)i(patterns)e(b)r(ecause)304
948 y(there)j(migh)n(t)h(b)r(e)g(man)n(y)h(o)r(ccurrences)14
b(of)k(partial)g(applications.)24 b(The)18 b(second)f(metho)r(d)g(ma)n
(y)304 1014 y(lead)j(to)g(smaller)g(term)f(represen)n(tations)e(than)j
(the)f(\014rst)h(metho)r(d.)29 b(If)21 b(the)e(pro)r(ofs)g(w)n(e)h
(wish)304 1080 y(to)h(compress)g(do)g(not)g(t)n(ypically)i(ha)n(v)n(e)g
(partial)e(function)g(applications,)h(then)f(extra)g(e\013ort)304
1147 y(exp)r(ended)16 b(trying)h(to)h(deal)g(with)g(suc)n(h)g(terms)f
(and)g(\014nd)h(useful)g(partial)f(patterns)f(w)n(ould)i(b)r(e)304
1213 y(w)n(asted.)29 b(T)-5 b(ranslating)19 b(pro)r(of)g(rules)h(and)f
(other)g(LF)h(function)f(sym)n(b)r(ols)h(as)g(ordinary)f
Fq(n)p Fs(-ary)304 1280 y(function)e(sym)n(b)r(ols)h(ma)n(y)h(simplify)
g(pattern)d(searc)n(h.)370 1346 y(F)-5 b(or)20 b(simplicit)n(y)-5
b(,)21 b(and)e(b)r(ecause)e(it)j(will)g(result)f(in)g(a)h(faster)d
(implemen)n(tation)i(w)n(e)g(will)i(use)304 1413 y(the)i(second)f
(metho)r(d)g(to)h(represen)n(t)f(pro)r(of)g(terms.)41
b(The)23 b(pro)r(ofs)f(pro)r(duced)f(b)n(y)k(the)e(PCC)304
1479 y(system)g(are)g(t)n(ypically)i(in)f(a)g(normal)g(form)f(that)g
(guaran)n(tees)e(that)i(there)f(are)i(no)f(partial)304
1545 y(function)17 b(applications.)304 1647 y Fy(De\014nition)k(2.1.1.)
26 b Fs(The)19 b Fr(r)m(ank)26 b Fq(r)r Fs(\()p Ff(A)p
Fs(\))18 b(of)h(t)n(yp)r(e)g Ff(A)g Fs(is)h(the)e(largest)f(n)n(um)n(b)
r(er)i(of)g(argumen)n(ts)e(to)304 1713 y(whic)n(h)e(it)g(can)f(b)r(e)f
(applied)i(in)g(LF.)g(It)g(can)f(b)r(e)f(recursiv)n(ely)i(de\014ned)e
(so)i(that)e(if)i Ff(A)h Fs(=)f(\005)p Fd(x)9 b Ff(:B)2188
1721 y Fu(1)2213 1713 y Ff(.B)2271 1721 y Fu(2)304 1780
y Fs(then)21 b Fq(r)r Fs(\()p Ff(A)o Fs(\))g(=)h Fq(r)r
Fs(\()p Ff(B)696 1788 y Fu(2)721 1780 y Fs(\))15 b(+)g(1,)23
b(otherwise)d Fq(r)r Fs(\()p Ff(A)o Fs(\))i(=)g(0.)36
b(The)22 b(rank)g Fq(r)r Fs(\()p Ff(K)o Fs(\))g(of)g(a)g(kind)g
Ff(K)g Fs(is)h(de\014ned)304 1846 y(similarly)-5 b(.)370
1913 y(The)25 b(op)r(erator)d(domain)j(\(\006)987 1921
y Fp(LF)1054 1913 y Fq(;)9 b(\036)p Fs(\))25 b(for)g(the)f(LF)h
(signature)e(\006)j(and)e(v)m(ariable)h(set)f Fq(X)30
b Fs(is)304 1979 y(de\014ned)16 b(so)i(that)670 2072
y(\006)710 2080 y Fp(LF)792 2072 y Fs(=)e Fl(f)p Ff(Type)p
Fl(g)c([)g(f)p Fs(\005)p Fq(x)1186 2080 y Fp(k)1212 2072
y Fq(;)d(\025x)1300 2080 y Fp(t)1320 2072 y Fq(;)g Fs(\005)p
Fq(x)1418 2080 y Fp(t)1437 2072 y Fq(;)g(\025x)1525 2080
y Fp(o)1566 2072 y Fl(j)15 b Fq(x)g Fl(2)h Fq(X)t Fl(g)c([)g
Fc(p)p Fs(\006)p Fc(q)304 2165 y Fs(and)751 2259 y Fc(p)p
Fl(\001)p Fc(q)j Fs(=)h Fl(;)599 2348 y Fc(p)p Fs(\006)667
2325 y Fm(0)682 2348 y Fq(;)9 b Ff(c:A)q Fc(q)15 b Fs(=)h
Fc(p)p Fs(\006)964 2325 y Fm(0)979 2348 y Fc(q)c Fl([)g(f)p
Ff(c)p Fl(g)295 b Fc(p)p Fs(\006)1516 2325 y Fm(0)1531
2348 y Fq(;)9 b Ff(a:K)q Fc(q)15 b Fs(=)g Fc(p)p Fs(\006)1812
2325 y Fm(0)1827 2348 y Fc(q)d Fl([)g(f)p Ff(a)p Fl(g)370
2441 y Fs(and)654 2534 y Fq(\036)p Fs(\()p Ff(a)p Fs(\))j(=)g
Fq(r)r Fs(\()p Fq(K)t Fs(\))i(if)i(\006)c Fl(`)g Ff(a:K)268
b Fq(\036)p Fs(\()p Ff(c)p Fs(\))15 b(=)g Fq(r)r Fs(\()p
Fq(A)p Fs(\))i(if)h(\006)e Fl(`)f Ff(c:A)567 2621 y Fq(\036)p
Fs(\()p Ff(Type)p Fs(\))g(=)g(0)617 b Fq(\036)p Fs(\()p
Fq(\033)r Fs(\))14 b(=)h(2)j(otherwise.)370 2714 y(De\014ne)g(the)f
(translation)f Fc(p)p Fl(\001)p Fc(q)i Fs(so)g(that)617
2807 y Fc(p)p Ff(Type)p Fc(q)d Fs(=)g Ff(Type)488 b Fc(p)p
Fs(\005)p Fd(x)9 b Ff(:A.K)p Fc(q)15 b Fs(=)g(\005)1833
2815 y Fp(k)1860 2807 y Fq(x)p Fs(\()p Fc(p)p Ff(A)o
Fc(q)p Fq(;)9 b Fc(p)p Ff(K)p Fc(q)p Fs(\))430 2894 y
Fc(p)p Ff(a)29 b(t)545 2902 y Fu(1)599 2894 y Fq(:)9
b(:)g(:)39 b Ff(t)730 2902 y Fp(n)761 2894 y Fc(q)15
b Fs(=)g Ff(a)p Fs(\()p Fc(p)p Ff(t)970 2902 y Fu(1)994
2894 y Fc(q)p Fq(;)9 b(:)g(:)g(:)20 b(;)9 b Fc(p)p Ff(t)1210
2902 y Fp(n)1241 2894 y Fc(q)p Fs(\))125 b Fc(p)p Fs(\005)p
Fd(x)9 b Ff(:A)1582 2902 y Fu(1)1607 2894 y Ff(.A)1665
2902 y Fu(2)1690 2894 y Fc(q)15 b Fs(=)g(\005)1833 2902
y Fp(t)1852 2894 y Fq(x)p Fs(\()p Fc(p)p Ff(A)1963 2902
y Fu(1)1987 2894 y Fc(q)p Fq(;)9 b Fc(p)p Ff(A)2096 2902
y Fu(2)2121 2894 y Fc(q)p Fs(\))430 2980 y Fc(p)p Ff(c)29
b(t)545 2988 y Fu(1)599 2980 y Fq(:)9 b(:)g(:)39 b Ff(t)730
2988 y Fp(n)761 2980 y Fc(q)15 b Fs(=)g Ff(c)p Fs(\()p
Fc(p)p Ff(t)970 2988 y Fu(1)994 2980 y Fc(q)p Fq(;)9
b(:)g(:)g(:)20 b(;)9 b Fc(p)p Ff(t)1210 2988 y Fp(n)1241
2980 y Fc(q)p Fs(\))134 b Fc(p)p Fq(\025)p Fd(x)10 b
Ff(:A)1582 2988 y Fu(1)1607 2980 y Ff(.A)1665 2988 y
Fu(2)1690 2980 y Fc(q)15 b Fs(=)g Fq(\025)1823 2988 y
Fp(t)1843 2980 y Fq(x)p Fs(\()p Fc(p)p Ff(A)1954 2988
y Fu(1)1978 2980 y Fc(q)p Fq(;)9 b Fc(p)p Ff(A)2087 2988
y Fu(2)2112 2980 y Fc(q)p Fs(\))704 3066 y Fc(p)p Ff(x)p
Fc(q)15 b Fs(=)g Fq(x)581 b Fc(p)p Fq(\025)p Fd(x)10
b Ff(:A.M)p Fc(q)15 b Fs(=)g Fq(\025)1823 3074 y Fp(o)1848
3066 y Fq(x)p Fs(\()p Fc(p)p Ff(A)o Fc(q)p Fq(;)9 b Fc(p)p
Ff(M)p Fc(q)p Fs(\))370 3163 y(The)15 b(translation)f(of)i(a)g(pro)r
(of)e(term)h Fq(p)p Fs(,)h(\(or)f(indeed)g(an)n(y)h(sort)f(of)h(LF)f
(term\))g(to)g(a)h(\006)p Fq(X)t Fs(-term)304 3229 y(is)i(then)f
Fc(p)p Fq(p)p Fc(q)p Fs(.)304 3331 y Fy(Example)k(2.1.2.)26
b Fs(Consider)17 b(the)g(pro)r(of)g(term)441 3411 y Fq(p)29
b Ff(=)g Fq(\025)p Fd(A)10 b Ff(:o.)p Fq(\025)p Fd(B)g
Ff(:o.)p Fq(\025)p Fd(C)g Ff(:o.)p Fq(\025)p Fd(P)g Ff(:pf)29
b(\(and)h(\(and)f(A)g(B\))g(C\).)730 3477 y(\(and)p 849
3477 18 3 v 21 w(el)h Fd(A)38 b(B)h Ff(\(and)p 1209 3477
V 21 w(el)29 b(\(and)h Fd(A)38 b(B)10 b Ff(\))29 b(C)g
Fd(P)10 b Ff(\)\))p eop
%%Page: 38 40
38 39 bop 304 151 a Fu(38)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(Then)d(the)h
(translation)e(of)i Fq(p)g Fs(is)h(the)e(term)359 397
y Fq(\025)391 405 y Fp(t)411 397 y Fq(A)p Fs(\()p Ff(o)o
Fq(;)9 b(\025)559 405 y Fp(t)579 397 y Fq(B)s Fs(\()p
Ff(o)p Fq(;)g(\025)731 405 y Fp(t)751 397 y Fq(C)t Fs(\()p
Ff(o)o Fq(;)g(\025)901 405 y Fp(t)922 397 y Fq(P)f Fs(\()p
Ff(pf)n Fs(\()p Ff(and)p Fs(\()p Ff(and)p Fs(\()p Fq(A;)h(B)s
Fs(\))p Fq(;)g(C)t Fs(\)\))p Fq(;)1227 483 y Ff(and)p
1317 483 18 3 v 21 w(el)p Fs(\()p Fq(A;)g(B)s(;)g Ff(and)p
1640 483 V 21 w(el)p Fs(\()p Ff(and)p Fs(\()p Fq(A;)g(B)s
Fs(\))p Fq(;)g(C)q(;)g(P)f Fs(\)\)\)\)\)\))304 587 y(2.2.)32
b Fy(Applying)h(term)h(compression.)29 b Fs(F)-5 b(or)29
b(small)h(terms,)h(near-exhaustiv)n(e)d(pattern)304 654
y(searc)n(h)22 b(\()p Fy(LP)o Fs(\))h(and)f(enco)r(ding)f(\()p
Fy(TB)p Fs(\))i(migh)n(t)g(b)r(e)f(necessary)g(to)g(obtain)g(an)n(y)h
(impro)n(v)n(emen)n(t)304 720 y(at)c(all.)29 b(Appro)n(ximate)17
b(algorithms)i(ma)n(y)h(not)e(b)r(e)h(e\013ectiv)n(e)g(for)g(small)h
(terms)e(b)r(ecause)f(they)304 787 y(are)f(statistically)g(less)h(lik)n
(ely)i(to)d(\014nd)h(useful)f(rep)r(etitiv)n(e)g(patterns)e(when)j(the)
f(sample)g(size)h(is)304 853 y(small.)370 919 y(F)-5
b(or)13 b(large)f(terms,)i(though,)e(the)g(exhaustiv)n(e)h(algorithms)e
(are)h(to)r(o)g(ine\016cien)n(t)g(to)h(b)r(e)f(useful.)304
986 y(Instead,)i(lo)r(cal)h(algorithms)f(based)h(on)g(pattern)e(heigh)n
(t)h(limits)i(\()p Fy(LP)1750 994 y Fp(h)1778 986 y Fs(\))g(or)f
(global)g(algorithms)304 1052 y(with)21 b(iteration)f(or)h(o)r
(ccurrence)d(limits)k(\()p Fy(GI)1264 1060 y Fp(i)1282
1052 y Fs(,)p Fy(GM)1408 1060 y Fp(m)1450 1052 y Fs(\))f(should)g(b)r
(e)f(feasible,)i(but)f(migh)n(t)h(re-)304 1119 y(quire)c(\014ne-tuning)
g(to)g(\014nd)g(the)g(limit)h(lev)n(els)h(whic)n(h)e(optimize)g(the)g
(tradeo\013)f(b)r(et)n(w)n(een)g(com-)304 1185 y(pression)i(p)r
(erformance)e(and)j(e\016ciency)-5 b(.)30 b(The)20 b(lo)r(cal)g(and)g
(global)g(searc)n(h)f(algorithms)g(seem)304 1251 y(lik)n(ely)c(to)d
(generate)e(small)k(patterns)c(with)j(high)g(m)n(ultiplicities,)i(so)e
(one)f(of)h(the)f(lo)r(cal)g(or)h(global)304 1318 y(b)r(est-\014rst)f
(\()p Fy(LB)p Fs(,)p Fy(GB)q Fs(\))j(or)f(top)g(do)n(wn)h(\()p
Fy(TD)p Fs(\))f(enco)r(ding)f(algorithms)h(ma)n(y)i(b)r(e)e(the)g(righ)
n(t)g(c)n(hoice)304 1384 y(for)j(enco)r(ding)g(terms)g(with)h(the)f
(results.)370 1451 y(The)j(Extended)f(Lemp)r(el-Ziv)h(searc)n(h)f(and)h
(enco)r(ding)f(algorithms)g(\()p Fy(ELZ)1964 1459 y Fu(1)1988
1451 y Fs(,)p Fy(TD)q Fs(\))h(should)304 1517 y(also)j(execute)e(quic)n
(kly)-5 b(,)27 b(but)c(the)f(results)h(are)f(less)h(predictable.)39
b(\()p Fy(ELZ)o Fs(\))23 b(seems)g(lik)n(ely)i(to)304
1584 y(generate)15 b(man)n(y)i(small)i(patterns)c(with)i(high)g(m)n
(ultiplicities,)i(and)e(few)g(large)g(patterns)e(with)304
1650 y(lo)n(w)21 b(m)n(ultiplicities.)34 b(The)20 b(top-do)n(wn)h(enco)
r(ding)e(is)i(lik)n(ely)i(to)d(p)r(erform)f(b)r(etter)g(when)h(using)
304 1716 y(suc)n(h)f(pattern)e(sets,)i(so)g(it)h(seems)e(b)r(est)g(to)h
(use)g(it)g(with)h(the)e(Extended)g(Lemp)r(el-Ziv)h(searc)n(h)304
1783 y(algorithm.)k(Certainly)17 b(if)h(the)f(input)f(is)i(a)g(string)e
(represen)n(ted)f(as)i(a)g(term)g(or)g(a)g(\\stringlik)n(e")304
1849 y(term)12 b(\(one)g(with)h(man)n(y)h(subterms)d(whic)n(h)j(are)e
(strings\))g(then)g(\()p Fy(ELZ)o Fs(\))h(should)g(p)r(erform)e(ab)r
(out)304 1916 y(as)j(w)n(ell)h(as)f(\()p Fy(LZ)p Fs(\))f(do)r(es)g(on)h
(strings.)22 b(Ho)n(w)n(ev)n(er,)16 b(this)e(p)r(erformance)d(migh)n(t)
j(not)f(scale)h(to)g(terms)304 1982 y(that)j(are)g(not)g(stringlik)n
(e.)370 2048 y(One)e(heuristic)e(for)h(the)g(enco)r(ding)f(algorithms)g
(\()p Fy(LB)p Fs(\))i(and)f(\()p Fy(GB)p Fs(\))g(w)n(ould)h(b)r(e)f
(the)g(function)304 2115 y Fq(f)331 2123 y Fu(1)356 2115
y Fs(\()p Fq(p;)9 b(m)p Fs(\))15 b(whic)n(h)h(calculates)e(the)h(term)h
(metric)f(impro)n(v)n(emen)n(t)h(that)e(w)n(ould)j(result)e(if)h
Fq(p)g Fs(could)304 2181 y(b)r(e)k(replaced)g Fq(m)h
Fs(times.)34 b(F)-5 b(or)21 b(example,)h(with)f(the)g(metric)f
Fq(M)1648 2189 y Fu(#)1687 2181 y Fs(,)j(the)d(largest)g(p)r(ossible)g
(im-)304 2248 y(pro)n(v)n(emen)n(t)14 b(is)g Fq(m)p Fs(\()p
Fq(S)s Fs(\()p Fq(p)p Fs(\))5 b Fl(\000)g Fs(1\),)13
b(where)g Fq(S)s Fs(\()p Fq(p)p Fs(\))h(is)g(the)g(n)n(um)n(b)r(er)f
(of)i(op)r(erators)c(and)j(term)f(v)m(ariables)304 2314
y(in)h Fq(p)p Fs(.)24 b(A)13 b(more)h(accurate)d(heuristic)i
Fq(f)1086 2322 y Fu(2)1110 2314 y Fs(\()p Fq(p;)c(m)p
Fs(\))14 b(migh)n(t)g(also)g(tak)n(e)f(in)n(to)h(accoun)n(t)f(the)g
(increase)f(in)304 2381 y(the)i(dictionary)g(metric)g(caused)f(b)n(y)j
(including)e(the)g(rule)h Fq(p)p Fs(.)24 b(Supp)r(ose)13
b(the)h(dictionary)f(metric)304 2447 y(is)k Fq(N)402
2455 y Fu(#)442 2447 y Fs(.)25 b(The)16 b(dictionary)g(en)n(try)h(m)n
(ust)g(include)f(a)h(cop)n(y)g(of)g Fq(p)h Fs(and)e(one)g(atomic)h
(pattern)e(with)304 2513 y Fl(j)p Fq(F)8 b(r)r Fs(\()p
Fq(p)p Fs(\))p Fl(j)14 b Fs(v)m(ariables)h(and)g(one)g(op)r(erator,)e
(so)j(the)f(metric)f(increases)g(b)n(y)i Fl(j)p Fq(p)p
Fl(j)7 b Fs(+)g Fl(j)p Fq(F)h(r)r Fs(\()p Fq(p)p Fs(\))p
Fl(j)f Fs(+)g(1.)24 b(The)304 2580 y(v)m(alue)14 b(of)g(`)p
Fq(f)544 2588 y Fu(2)569 2580 y Fs(\()p Fq(p;)9 b(m)p
Fs(\))14 b(is)h(then)e Fq(f)929 2588 y Fu(1)954 2580
y Fs(\()p Fq(p;)c(m)p Fs(\))c Fl(\000)g(j)p Fq(p)p Fl(j)g(\000)g(j)p
Fq(F)j(r)r Fs(\()p Fq(p)p Fs(\))p Fl(j)d(\000)g Fs(1)11
b(=)k Fq(m)p Fs(\()p Fq(S)s Fs(\()p Fq(p)p Fs(\))5 b
Fl(\000)g Fs(1\))g Fl(\000)g(j)p Fq(p)p Fl(j)g(\000)g(j)p
Fq(F)j(r)q Fs(\()p Fq(p)p Fs(\))o Fl(j)d(\000)g Fs(1.)952
2713 y(3.)31 b Ft(Experiment)l(al)21 b(Resul)l(ts)304
2813 y Fs(3.1.)32 b Fy(Metho)r(dology.)26 b Fs(A)e(system)f(supp)r
(orting)e(term)i(and)g(pattern)e(structure,)h(substitu-)304
2879 y(tions,)31 b(and)d(pattern)e(substitution)g(trees)h(w)n(as)i
(implemen)n(ted)f(in)h(Standard)d(ML)i(\(using)304 2946
y(SML/NJ)23 b(110.7\).)40 b(Also,)26 b(ml-y)n(acc)e(and)g(ml-lex)h(w)n
(ere)e(used)h(to)f(implemen)n(t)h(a)g(parser)e(for)304
3012 y(PCC)c(pro)r(of)f(annotation)f(\014les,)j(eac)n(h)f(of)g(whic)n
(h)h(migh)n(t)g(con)n(tain)e(m)n(ultiple)j(LF)e(pro)r(of)f(terms.)304
3079 y(A)e(set)f(of)h(pro)r(of)f(\014les)h(with)g(LF)g(sym)n(b)r(ol)g
(coun)n(ts)f(ranging)g(from)h(3)g(to)g(22558)e(w)n(as)j(c)n(hosen)e
(from)304 3145 y(those)21 b(generated)f(b)n(y)j(a)f(v)n(ersion)h(of)f
(the)g(PCC)h(certifying)e(compiler.)37 b(These)22 b(pro)r(ofs)f(w)n
(ere)304 3211 y(classi\014ed)g(b)n(y)i(size,)g(with)f(\\small")g(pro)r
(ofs)f(of)h(up)g(to)g(750)f(sym)n(b)r(ols,)j(\\medium")d(pro)r(ofs)g
(of)304 3278 y(750)15 b(to)h(7500)f(sym)n(b)r(ols)h(and)g(\\large")e
(pro)r(ofs)h(of)h(more)f(than)g(7500)g(sym)n(b)r(ols.)24
b(The)16 b(categories)304 3344 y(w)n(ere)23 b(c)n(hosen)g(so)h(that)f
(all)i(of)f(the)f(algorithms)g(ran)h(in)g(\\real")f(time)h(and)g(space)
e(\(that)h(is,)304 3411 y(quic)n(kly)18 b(enough)d(to)h(pro)r(duce)f
(results)g(within)i(a)g(few)f(min)n(utes\))g(when)g(applied)h(to)f(the)
g(small)304 3477 y(pro)r(ofs.)p eop
%%Page: 39 41
39 40 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(39)370 283 y Fs(Eac)n(h)16 b(pro)r(of)g(\014le)h(w)n(as)g(parsed)e
(in)n(to)i(an)g(abstract)d(syn)n(tax)j(for)g(LF)g(absen)n(t)e(an)n(y)j
(LF)f(\\class")304 350 y(\()p Fr(i.)24 b(e.)p Fs(,)j(ob)s(ject,)d(t)n
(yp)r(e,)h(or)e(kind\))h(information.)41 b(F)-5 b(or)24
b(example,)h(only)f(one)g(\005)f(sym)n(b)r(ol)h(w)n(as)304
416 y(used)18 b(for)h(b)r(oth)f(\005-t)n(yp)r(es)h(and)g(\005-kinds.)29
b(Abstract)17 b(syn)n(tax)i(terms)f(w)n(ere)i(transformed)c(in)n(to)304
483 y(terms)k(o)n(v)n(er)j(the)d(op)r(erator)f(domain)j(\006)1150
491 y Fp(LF)1217 483 y Fs(,)h(as)e(describ)r(ed)f(in)i(Section)e(2.1.)
36 b(This)21 b(op)r(erator)304 549 y(domain)15 b(do)r(es)g(distinguish)
g(b)r(et)n(w)n(een)f(ob)s(ject,)h(t)n(yp)r(e,)i(and)e(kind)h(op)r
(erators.)21 b(The)15 b(translation)304 616 y(from)g(\\classless")g
(abstract)f(syn)n(tax)i(terms)f(to)g(the)h(\\classed")e(op)r(erator)f
(domain)j(is)h(p)r(ossible)304 682 y(b)r(ecause)g(if)j(an)f(ob)s(ject)f
(is)h(v)m(alid)h(then)f(the)f(grammar)g(of)i(LF)f(determines)e(the)i
(class)g(of)g(eac)n(h)304 748 y(op)r(erator)13 b(in)j(the)e(ob)s(ject.)
23 b(F)-5 b(or)16 b(example,)g(if)k Ff(c1)29 b(\()p Fq(\025)p
Fd(x)11 b Ff(:\(c2)29 b(0\).\(c3)g Fd(x)10 b Ff(\)\))16
b Fs(is)g(an)g(ob)s(ject)e(then)304 815 y Ff(c1)k Fs(and)f
Ff(c3)i Fs(m)n(ust)f(b)r(e)f(ob)s(ject)f(constan)n(ts,)g
Ff(c2)j Fs(m)n(ust)e(b)r(e)h(a)f(t)n(yp)r(e)h(\(family\))g(constan)n
(t,)e(and)h(the)304 881 y Fq(\025)h Fs(m)n(ust)h(b)r(e)e(an)h(ob)s
(ject)e Fq(\025)p Fs(.)370 948 y(The)j(set)g(of)h(terms)e(in)i(eac)n(h)
f(pro)r(of)g(\014le)g(w)n(as)h(searc)n(hed)e(using)h(implemen)n
(tations)g(of)g(lo)r(cal)304 1014 y(algorithms)14 b(\()p
Fy(LP)o Fs(\),)j(\()p Fy(LP)835 1022 y Fu(3)860 1014
y Fs(\))e(\(or)g(\()p Fy(H1)o Fs(\)\),)h(\()p Fy(LP)1265
1022 y Fu(6)1290 1014 y Fs(\))f(\(or)g(\()p Fy(H2)o Fs(\)\),)h(a)f
(global)g(algorithm)g(\()p Fy(IGI)2165 1022 y Fu(1)2189
1014 y Fy(M)2249 1022 y Fu(1)2275 1014 y Fs(\))304 1080
y(\(or)24 b(\()p Fy(GL)o Fs(\)\))h(com)n(bining)f(indexing,)j
(iteration)c(limits,)k(and)e(use)f(limits,)j(and)e(\()p
Fy(ELZ)2154 1088 y Fu(1)2179 1080 y Fs(\))f(\(or)304
1147 y(\()p Fy(ELZ)o Fs(\)\).)31 b(The)20 b(results)g(w)n(ere)g(enco)r
(ded)e(using)i(implemen)n(tations)f(of)h(\()p Fy(LB)p
Fs(\),)i(\()p Fy(GB)p Fs(\),)f(\()p Fy(TD)o Fs(\),)304
1213 y(and)g(\()p Fy(TB)q Fs(\).)36 b(The)22 b(terms)g(w)n(ere)f(also)i
(translated)c(in)n(to)k(sequences)d(and)i(compressed)e(using)304
1280 y(an)25 b(implemen)n(tation)g(of)g(the)g(\()p Fy(LZ)o
Fs(\))h(algorithm,)h(for)e(a)g(rough)g(comparison)f(of)h(term)g(and)304
1346 y(sequence)16 b(compression.)370 1413 y(The)25 b(dictionaries)e(w)
n(ere)h(pruned)g(of)g(en)n(tries)g(that)g(w)n(ere)g(nev)n(er)g(used.)44
b(Also,)27 b(p)r(ossible)304 1479 y(de\014nitional)17
b(dep)r(endencies)f(w)n(ere)j(not)f(used)g(to)g(decrease)f(dictionary)g
(size,)j(so)e(it)h(migh)n(t)g(b)r(e)304 1545 y(p)r(ossible)h(to)g
(obtain)g(b)r(etter)e(results)i(b)n(y)h(represen)n(ting)e(the)h
(dictionaries)f(more)h(compactly)-5 b(.)304 1612 y(The)17
b(total)h(compression)e(times)i(and)g(sizes)f(of)h(the)g(resulting)f
(terms)g(and)g(dictionaries)g(w)n(ere)304 1678 y(measured)h(and)h
(recorded.)27 b(Finally)-5 b(,)22 b(the)d(enco)r(dings)e(w)n(ere)j
(deco)r(ded)d(and)i(c)n(hec)n(k)n(ed)h(against)304 1745
y(the)d(original)h(pro)r(ofs)f(to)g(ensure)g(that)g(the)g(enco)r(dings)
f(w)n(ere)i(v)m(alid.)370 1811 y(F)-5 b(or)17 b(brevit)n(y)-5
b(,)18 b(results)e(for)g(only)h(a)g(represen)n(tativ)n(e)d(few)j(of)g
(the)e(20)i(p)r(ossible)f(com)n(binations)304 1877 y(are)j(giv)n(en)i
(here.)31 b(W)-5 b(e)21 b(will)h(giv)n(e)f(results)e(for)h(eac)n(h)g
(of)g(the)g(searc)n(h)g(algorithms)f(paired)h(with)304
1944 y(\()p Fy(TD)o Fs(\),)e(and)e(for)h(\()p Fy(ELZ)o
Fs(\))g(paired)f(with)h(eac)n(h)f(of)h(the)f(enco)r(ding)f(algorithms.)
23 b(Only)18 b(the)e(small)304 2010 y(and)i(medium)h(pro)r(ofs)f(w)n
(ere)h(used)f(with)h(\()p Fy(LP)o Fs(\))g(or)g(\()p Fy(IGI)1509
2018 y Fu(1)1533 2010 y Fy(M)1593 2018 y Fu(1)1619 2010
y Fs(\),)g(and)g(only)g(the)f(small)i(pro)r(ofs)304 2077
y(w)n(ere)d(used)h(with)g(\()p Fy(TB)p Fs(\).)304 2176
y(3.2.)32 b Fy(Exp)r(erimen)n(tal)f(data.)c Fs(T)-5 b(able)27
b(1)g(summarizes)f(the)g(p)r(erformance)e(of)j(the)f(v)m(arious)304
2243 y(algorithm)18 b(com)n(binations)g(on)h(small,)i(medium,)f(and)e
(large)h(pro)r(ofs.)26 b(Figures)19 b(5)g(and)g(6)g(plot)304
2309 y(pro)r(of)e(size)h Fr(vs.)h Fs(time)g(and)f(compressed)e(size)i
(for)h(di\013eren)n(t)f(searc)n(h)f(tec)n(hniques,)h(and)g(\014gures)
304 2376 y(7)e(and)g(8)g(compare)f(the)g(results)g(for)h(the)g
(di\013eren)n(t)f(enco)r(dings.)22 b(The)16 b(searc)n(h)f(summaries)h
(also)304 2442 y(include)h(the)h(results)f(for)g(sequen)n(tial)h(\()p
Fy(LZ)p Fs(\))g(compression.)p 710 2670 1180 3 v 709
2737 3 67 v 808 2717 a(Metho)r(d)p 1022 2737 V 53 w(Small)p
1213 2737 V 55 w(Medium)p 1466 2737 V 55 w(Large)p 1658
2737 V 54 w(Ov)n(erall)p 1889 2737 V 710 2739 1180 3
v 709 2805 3 67 v 777 2785 a(\()p Fy(LPTD)p Fs(\))p 1022
2805 V 55 w(0.948)p 1213 2805 V 63 w(0.771)p 1466 2805
V 127 w({)p 1658 2805 V 164 w(0.787)p 1889 2805 V 710
2807 1180 3 v 709 2874 3 67 v 778 2854 a(\()p Fy(H1TD)o
Fs(\))p 1022 2874 V 55 w(1.047)p 1213 2874 V 63 w(0.848)p
1466 2874 V 127 w(0.631)p 1658 2874 V 65 w(0.708)p 1889
2874 V 710 2876 1180 3 v 709 2943 3 67 v 778 2923 a(\()p
Fy(H2TD)o Fs(\))p 1022 2943 V 55 w(0.984)p 1213 2943
V 63 w(0.822)p 1466 2943 V 127 w(0.579)p 1658 2943 V
65 w(0.874)p 1889 2943 V 710 2945 1180 3 v 709 3011 3
67 v 776 2991 a(\()p Fy(GL)-5 b(TD)p Fs(\))p 1022 3011
V 55 w(1.268)p 1213 3011 V 63 w(0.965)p 1466 3011 V 127
w({)p 1658 3011 V 164 w(0.993)p 1889 3011 V 710 3013
1180 3 v 709 3080 3 67 v 782 3060 a(\()p Fy(LZTD)p Fs(\))p
1022 3080 V 55 w(0.943)p 1213 3080 V 63 w(0.755)p 1466
3080 V 127 w(0.537)p 1658 3080 V 65 w(0.614)p 1889 3080
V 710 3082 1180 3 v 709 3148 3 67 v 740 3128 a(\()p Fy(ELZTD)p
Fs(\))p 1022 3148 V 55 w(0.980)p 1213 3148 V 63 w(0.752)p
1466 3148 V 127 w(0.524)p 1658 3148 V 65 w(0.605)p 1889
3148 V 710 3151 1180 3 v 709 3217 3 67 v 744 3197 a(\()p
Fy(ELZTB)p Fs(\))p 1022 3217 V 55 w(0.983)p 1213 3217
V 63 w({)p 1466 3217 V 226 w({)p 1658 3217 V 164 w(0.983)p
1889 3217 V 710 3219 1180 3 v 709 3286 3 67 v 750 3266
a(\()p Fy(ELZLB)p Fs(\))p 1022 3286 V 55 w(1.167)p 1213
3286 V 63 w(0.801)p 1466 3286 V 127 w(0.630)p 1658 3286
V 65 w(0.697)p 1889 3286 V 710 3288 1180 3 v 709 3354
3 67 v 738 3334 a(\()p Fy(ELZGB)p Fs(\))p 1022 3354 V
55 w(0.917)p 1213 3354 V 63 w(0.863)p 1466 3354 V 127
w(0.847)p 1658 3354 V 65 w(0.854)p 1889 3354 V 710 3357
1180 3 v 729 3400 a Ft(T)g(able)21 b(1.)27 b Fs(Av)n(erage)17
b(compression)f(ratio)i(summary)p eop
%%Page: 40 42
40 41 bop 304 151 a Fu(40)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)p 566 1268 27 3 v
509 1284 a Fs(0)p 2192 1268 V 566 1140 V 482 1156 a(20)p
2192 1140 V 566 1012 V 482 1028 a(40)p 2192 1012 V 566
884 V 482 900 a(60)p 2192 884 V 566 754 V 482 771 a(80)p
2192 754 V 566 626 V 454 643 a(100)p 2192 626 V 566 498
V 454 515 a(120)p 2192 498 V 566 370 V 454 387 a(140)p
2192 370 V 566 1268 3 27 v 553 1344 a(0)p 566 333 V 897
1268 V 261 w(5000)p 897 333 V 1228 1268 V 205 w(10000)p
1228 333 V 1557 1268 V 189 w(15000)p 1557 333 V 1888
1268 V 191 w(20000)p 1888 333 V 2218 1268 V 190 w(25000)p
2218 333 V 566 1268 1652 3 v 2218 1268 3 962 v 566 306
1652 3 v 269 800 a(time)e(\()p Fq(t)p Fs(\))1299 1400
y(size)g(\()p Fq(S)s Fs(\))p 566 1268 3 962 v 596 693
3 360 v 596 333 584 3 v 1180 693 3 360 v 596 693 584
3 v 834 378 a Fb(LPTD)80 b Fa(3)966 947 y(3)770 1139
y(3)691 1214 y(3)671 1221 y(3)645 1227 y(3)690 1226 y(3)618
1242 y(3)610 1245 y(3)598 1265 y(3)607 1270 y(3)597 1266
y(3)601 1263 y(3)579 1273 y(3)573 1274 y(3)570 1273 y(3)561
1277 y(3)561 1279 y(3)558 1281 y(3)555 1279 y(3)550 1282
y(3)-44 b(3)547 1283 y(3)e(3)837 438 y Fb(H1TD)1057 435
y Fs(+)2036 450 y(+)1701 655 y(+)1384 790 y(+)966 1115
y(+)770 1170 y(+)692 1224 y(+)-63 b(+)645 1236 y(+)690
1243 y(+)618 1247 y(+)610 1244 y(+)598 1260 y(+)608 1267
y(+)597 1263 y(+)601 1258 y(+)580 1267 y(+)573 1271 y(+)570
1267 y(+)561 1272 y(+)561 1275 y(+)558 1278 y(+)556 1276
y(+)550 1279 y(+)-43 b(+)548 1280 y(+)d(+)837 498 y Fb(H2TD)81
b Fa(2)2036 331 y(2)1702 537 y(2)1384 725 y(2)967 1079
y(2)771 1138 y(2)692 1214 y(2)672 1207 y(2)646 1226 y(2)691
1231 y(2)619 1239 y(2)611 1231 y(2)599 1257 y(2)608 1266
y(2)598 1262 y(2)602 1255 y(2)580 1269 y(2)574 1270 y(2)571
1265 y(2)562 1271 y(2)562 1275 y(2)559 1278 y(2)556 1277
y(2)551 1282 y(2)551 1279 y(2)548 1283 y(2)-43 b(2)833
558 y Fb(GL)l(TD)1057 555 y Fl(\002)770 540 y(\002)692
771 y(\002)672 915 y(\002)645 1048 y(\002)690 598 y(\002)618
1047 y(\002)610 1147 y(\002)598 1154 y(\002)608 1098
y(\002)597 1135 y(\002)601 1219 y(\002)580 1204 y(\002)573
1223 y(\002)570 1243 y(\002)561 1255 y(\002)561 1259
y(\002)558 1271 y(\002)556 1264 y(\002)550 1274 y(\002)550
1272 y(\002)548 1279 y(\002)545 1280 y(\002)803 618 y
Fb(ELZTD)1054 615 y Fl(4)2033 611 y(4)1698 707 y(4)1380
832 y(4)963 1031 y(4)767 1094 y(4)688 1171 y(4)668 1155
y(4)642 1175 y(4)687 1192 y(4)615 1212 y(4)607 1199 y(4)595
1224 y(4)604 1240 y(4)-59 b(4)598 1226 y(4)576 1247 y(4)570
1254 y(4)567 1251 y(4)558 1262 y(4)558 1266 y(4)-52 b(4)552
1270 y(4)547 1280 y(4)547 1276 y(4)544 1279 y(4)542 1280
y(4)838 678 y Fb(LZTD)1065 674 y Fq(?)2043 1033 y(?)1709
1065 y(?)1393 1113 y(?)974 1213 y(?)779 1222 y(?)699
1254 y(?)681 1250 y(?)653 1256 y(?)698 1254 y(?)626 1261
y(?)618 1260 y(?)606 1269 y(?)615 1272 y(?)606 1269 y(?)609
1265 y(?)587 1273 y(?)-34 b(?)k(?)569 1276 y(?)569 1277
y(?)f(?)563 1278 y(?)e(?)558 1280 y(?)i(?)h(?)1003 1645
y Ft(Figure)22 b(5.)27 b Fs(Searc)n(h)17 b(times)p 625
2740 27 3 v 568 2757 a(0)p 2192 2740 V 625 2548 V 485
2565 a(5000)p 2192 2548 V 625 2356 V 457 2373 a(10000)p
2192 2356 V 625 2163 V 457 2179 a(15000)p 2192 2163 V
625 1971 V 457 1987 a(20000)p 2192 1971 V 625 1779 V
457 1795 a(25000)p 2192 1779 V 625 2740 3 27 v 611 2817
a(0)p 625 1805 V 944 2740 V 249 w(5000)p 944 1805 V 1262
2740 V 193 w(10000)p 1262 1805 V 1581 2740 V 179 w(15000)p
1581 1805 V 1900 2740 V 179 w(20000)p 1900 1805 V 2218
2740 V 178 w(25000)p 2218 1805 V 625 2740 1594 3 v 2218
2740 3 962 v 625 1779 1594 3 v 291 2203 a(comp.)321 2267
y(size)258 2325 y(\()p Fq(S)e Fl(\000)d Fq(\016)r(S)s
Fs(\))1329 2873 y(size)17 b(\()p Fq(S)s Fs(\))p 625 2740
3 962 v 654 2285 3 480 v 654 1805 584 3 v 1238 2285 3
480 v 654 2285 584 3 v 970 1850 a Fb(1:1)p 1065 1835
144 3 v 625 2740 3 3 v 625 2738 5 1 v 626 2738 V 627
2737 V 629 2736 V 630 2736 V 631 2735 V 632 2734 V 633
2734 V 634 2733 V 636 2732 V 637 2732 V 625 2740 3 3
v 639 2731 V 641 2729 4 1 v 642 2728 V 643 2728 V 644
2727 V 645 2726 V 646 2726 V 647 2725 V 648 2724 V 649
2724 V 650 2723 V 651 2722 V 652 2722 V 653 2721 V 641
2731 2 3 v 655 2720 V 657 2718 5 1 v 658 2718 V 659 2717
V 661 2716 V 662 2716 V 663 2715 V 664 2714 V 665 2714
V 666 2713 V 668 2712 V 669 2712 V 657 2720 3 3 v 671
2711 V 673 2709 5 1 v 674 2708 V 675 2708 V 677 2707
V 678 2706 V 679 2706 V 680 2705 V 681 2704 V 682 2704
V 684 2703 V 685 2702 V 673 2711 3 3 v 687 2701 V 689
2700 5 1 v 690 2699 V 691 2698 V 693 2698 V 694 2697
V 695 2696 V 696 2696 V 697 2695 V 698 2694 V 700 2694
V 701 2693 V 689 2701 3 3 v 703 2692 V 705 2690 4 1 v
706 2690 V 707 2689 V 708 2688 V 709 2688 V 710 2687
V 711 2686 V 712 2686 V 713 2685 V 714 2684 V 715 2684
V 716 2683 V 717 2682 V 705 2692 2 3 v 719 2681 V 721
2680 5 1 v 722 2679 V 723 2678 V 725 2678 V 726 2677
V 727 2676 V 728 2676 V 729 2675 V 730 2674 V 732 2674
V 733 2673 V 721 2681 3 3 v 735 2672 V 737 2670 5 1 v
738 2670 V 740 2669 V 741 2668 V 742 2668 V 743 2667
V 745 2666 V 746 2666 V 747 2665 V 748 2664 V 750 2664
V 737 2672 3 3 v 752 2663 V 754 2661 4 1 v 755 2660 V
756 2660 V 757 2659 V 758 2658 V 759 2658 V 760 2657
V 761 2656 V 762 2656 V 764 2655 V 765 2654 V 766 2654
V 767 2653 V 754 2663 2 3 v 768 2652 V 770 2650 5 1 v
772 2650 V 773 2649 V 774 2648 V 775 2648 V 776 2647
V 777 2646 V 779 2646 V 780 2645 V 781 2644 V 782 2644
V 770 2652 3 3 v 784 2643 V 786 2641 5 1 v 788 2640 V
789 2640 V 790 2639 V 791 2638 V 792 2638 V 793 2637
V 795 2636 V 796 2636 V 797 2635 V 798 2634 V 786 2643
3 3 v 800 2633 V 802 2632 5 1 v 804 2631 V 805 2630 V
806 2630 V 807 2629 V 808 2628 V 809 2628 V 811 2627
V 812 2626 V 813 2626 V 814 2625 V 802 2633 3 3 v 816
2624 V 818 2622 4 1 v 819 2622 V 820 2621 V 821 2620
V 822 2620 V 823 2619 V 824 2618 V 825 2618 V 827 2617
V 828 2616 V 829 2616 V 830 2615 V 831 2614 V 818 2624
2 3 v 832 2613 V 834 2612 5 1 v 836 2611 V 837 2610 V
838 2610 V 839 2609 V 840 2608 V 841 2608 V 843 2607
V 844 2606 V 845 2606 V 846 2605 V 834 2613 3 3 v 848
2604 V 850 2602 5 1 v 852 2602 V 853 2601 V 854 2600
V 855 2600 V 856 2599 V 857 2598 V 859 2598 V 860 2597
V 861 2596 V 862 2596 V 850 2604 3 3 v 864 2595 V 866
2593 4 1 v 867 2592 V 868 2592 V 869 2591 V 870 2590
V 871 2590 V 872 2589 V 873 2588 V 875 2588 V 876 2587
V 877 2586 V 878 2586 V 879 2585 V 866 2595 2 3 v 880
2584 V 882 2582 5 1 v 884 2582 V 885 2581 V 886 2580
V 887 2580 V 888 2579 V 889 2578 V 891 2578 V 892 2577
V 893 2576 V 894 2576 V 882 2584 3 3 v 896 2575 V 898
2573 5 1 v 900 2572 V 901 2572 V 902 2571 V 903 2570
V 904 2570 V 905 2569 V 907 2568 V 908 2568 V 909 2567
V 910 2566 V 898 2575 3 3 v 912 2565 V 914 2564 5 1 v
916 2563 V 917 2562 V 918 2562 V 919 2561 V 920 2560
V 921 2560 V 923 2559 V 924 2558 V 925 2558 V 926 2557
V 914 2565 3 3 v 928 2556 V 930 2554 4 1 v 931 2554 V
932 2553 V 933 2552 V 934 2552 V 935 2551 V 936 2550
V 937 2550 V 939 2549 V 940 2548 V 941 2548 V 942 2547
V 943 2546 V 930 2556 2 3 v 944 2545 V 946 2544 5 1 v
948 2543 V 949 2542 V 950 2542 V 951 2541 V 952 2540
V 953 2540 V 955 2539 V 956 2538 V 957 2538 V 958 2537
V 946 2545 3 3 v 960 2536 V 962 2534 5 1 v 964 2534 V
965 2533 V 966 2532 V 967 2532 V 969 2531 V 970 2530
V 971 2530 V 973 2529 V 974 2528 V 975 2528 V 962 2536
3 3 v 977 2527 V 980 2525 4 1 v 981 2524 V 982 2524 V
983 2523 V 984 2522 V 985 2522 V 986 2521 V 987 2520
V 988 2520 V 989 2519 V 990 2518 V 991 2518 V 992 2517
V 980 2527 2 3 v 994 2516 V 996 2514 5 1 v 997 2514 V
998 2513 V 999 2512 V 1000 2512 V 1002 2511 V 1003 2510
V 1004 2510 V 1005 2509 V 1006 2508 V 1007 2508 V 996
2516 3 3 v 1010 2507 V 1012 2505 5 1 v 1013 2504 V 1014
2504 V 1015 2503 V 1016 2502 V 1018 2502 V 1019 2501
V 1020 2500 V 1021 2500 V 1022 2499 V 1023 2498 V 1012
2507 3 3 v 1026 2497 V 1028 2496 5 1 v 1029 2495 V 1030
2494 V 1031 2494 V 1032 2493 V 1034 2492 V 1035 2492
V 1036 2491 V 1037 2490 V 1038 2490 V 1039 2489 V 1028
2497 3 3 v 1042 2488 V 1044 2486 4 1 v 1045 2486 V 1046
2485 V 1047 2484 V 1048 2484 V 1049 2483 V 1050 2482
V 1051 2482 V 1052 2481 V 1053 2480 V 1054 2480 V 1055
2479 V 1056 2478 V 1044 2488 2 3 v 1058 2477 V 1060 2476
5 1 v 1061 2475 V 1062 2474 V 1063 2474 V 1064 2473 V
1066 2472 V 1067 2472 V 1068 2471 V 1069 2470 V 1070
2470 V 1071 2469 V 1060 2477 3 3 v 1074 2468 V 1076 2466
5 1 v 1077 2466 V 1078 2465 V 1079 2464 V 1080 2464 V
1082 2463 V 1083 2462 V 1084 2462 V 1085 2461 V 1086
2460 V 1087 2460 V 1076 2468 3 3 v 1090 2459 V 1092 2457
5 1 v 1093 2456 V 1094 2456 V 1095 2455 V 1096 2454 V
1098 2454 V 1099 2453 V 1100 2452 V 1101 2452 V 1102
2451 V 1103 2450 V 1092 2459 3 3 v 1106 2449 V 1108 2448
4 1 v 1109 2447 V 1110 2446 V 1111 2446 V 1112 2445 V
1113 2444 V 1114 2444 V 1115 2443 V 1116 2442 V 1117
2442 V 1118 2441 V 1119 2440 V 1120 2440 V 1108 2449
2 3 v 1122 2439 V 1124 2437 5 1 v 1125 2436 V 1126 2436
V 1127 2435 V 1128 2434 V 1130 2434 V 1131 2433 V 1132
2432 V 1133 2432 V 1134 2431 V 1135 2430 V 1124 2439
3 3 v 1138 2429 V 1140 2428 5 1 v 1141 2427 V 1142 2426
V 1143 2426 V 1144 2425 V 1146 2424 V 1147 2424 V 1148
2423 V 1149 2422 V 1150 2422 V 1151 2421 V 1140 2429
3 3 v 1154 2420 V 1156 2418 4 1 v 1157 2418 V 1158 2417
V 1159 2416 V 1160 2416 V 1161 2415 V 1162 2414 V 1163
2414 V 1164 2413 V 1165 2412 V 1166 2412 V 1167 2411
V 1168 2410 V 1156 2420 2 3 v 1170 2409 V 1172 2408 5
1 v 1173 2407 V 1174 2406 V 1175 2406 V 1176 2405 V 1178
2404 V 1179 2404 V 1180 2403 V 1181 2402 V 1182 2402
V 1183 2401 V 1172 2409 3 3 v 1186 2400 V 1188 2398 5
1 v 1189 2398 V 1190 2397 V 1192 2396 V 1193 2396 V 1194
2395 V 1195 2394 V 1197 2394 V 1198 2393 V 1199 2392
V 1200 2392 V 1188 2400 3 3 v 1203 2391 V 1205 2389 5
1 v 1206 2388 V 1207 2388 V 1209 2387 V 1210 2386 V 1211
2386 V 1212 2385 V 1213 2384 V 1214 2384 V 1216 2383
V 1217 2382 V 1205 2391 3 3 v 1219 2381 V 1221 2380 4
1 v 1222 2379 V 1223 2378 V 1224 2378 V 1225 2377 V 1226
2376 V 1227 2376 V 1228 2375 V 1229 2374 V 1230 2374
V 1231 2373 V 1232 2372 V 1233 2372 V 1221 2381 2 3 v
1235 2371 V 1237 2369 5 1 v 1238 2368 V 1239 2368 V 1241
2367 V 1242 2366 V 1243 2366 V 1244 2365 V 1245 2364
V 1246 2364 V 1248 2363 V 1249 2362 V 1237 2371 3 3 v
1251 2361 V 1253 2360 5 1 v 1254 2359 V 1255 2358 V 1257
2358 V 1258 2357 V 1259 2356 V 1260 2356 V 1261 2355
V 1262 2354 V 1264 2354 V 1265 2353 V 1253 2361 3 3 v
1267 2352 V 1269 2350 4 1 v 1270 2350 V 1271 2349 V 1272
2348 V 1273 2348 V 1274 2347 V 1275 2346 V 1276 2346
V 1277 2345 V 1278 2344 V 1279 2344 V 1280 2343 V 1281
2342 V 1269 2352 2 3 v 1283 2341 V 1285 2340 5 1 v 1286
2339 V 1287 2338 V 1289 2338 V 1290 2337 V 1291 2336
V 1292 2336 V 1293 2335 V 1294 2334 V 1296 2334 V 1297
2333 V 1285 2341 3 3 v 1299 2332 V 1301 2330 5 1 v 1302
2330 V 1303 2329 V 1305 2328 V 1306 2328 V 1307 2327
V 1308 2326 V 1309 2326 V 1310 2325 V 1312 2324 V 1313
2324 V 1301 2332 3 3 v 1315 2323 V 1317 2321 5 1 v 1318
2320 V 1319 2320 V 1321 2319 V 1322 2318 V 1323 2318
V 1324 2317 V 1325 2316 V 1326 2316 V 1328 2315 V 1329
2314 V 1317 2323 3 3 v 1331 2313 V 1333 2312 4 1 v 1334
2311 V 1335 2310 V 1336 2310 V 1337 2309 V 1338 2308
V 1339 2308 V 1340 2307 V 1341 2306 V 1342 2306 V 1343
2305 V 1344 2304 V 1345 2304 V 1333 2313 2 3 v 1347 2303
V 1349 2301 5 1 v 1350 2300 V 1351 2300 V 1353 2299 V
1354 2298 V 1355 2298 V 1356 2297 V 1357 2296 V 1358
2296 V 1360 2295 V 1361 2294 V 1349 2303 3 3 v 1363 2293
V 1365 2292 5 1 v 1366 2291 V 1367 2290 V 1369 2290 V
1370 2289 V 1371 2288 V 1372 2288 V 1373 2287 V 1374
2286 V 1376 2286 V 1377 2285 V 1365 2293 3 3 v 1379 2284
V 1381 2282 4 1 v 1382 2282 V 1383 2281 V 1384 2280 V
1385 2280 V 1386 2279 V 1387 2278 V 1388 2278 V 1389
2277 V 1390 2276 V 1391 2276 V 1392 2275 V 1393 2274
V 1381 2284 2 3 v 1395 2273 V 1397 2272 5 1 v 1398 2271
V 1399 2270 V 1401 2270 V 1402 2269 V 1403 2268 V 1404
2268 V 1405 2267 V 1406 2266 V 1408 2266 V 1409 2265
V 1397 2273 3 3 v 1411 2264 V 1413 2262 5 1 v 1414 2262
V 1416 2261 V 1417 2260 V 1418 2260 V 1419 2259 V 1421
2258 V 1422 2258 V 1423 2257 V 1424 2256 V 1426 2256
V 1413 2264 3 3 v 1428 2255 V 1430 2253 5 1 v 1432 2252
V 1433 2252 V 1434 2251 V 1435 2250 V 1436 2250 V 1437
2249 V 1439 2248 V 1440 2248 V 1441 2247 V 1442 2246
V 1430 2255 3 3 v 1444 2245 V 1446 2244 4 1 v 1447 2243
V 1448 2242 V 1449 2242 V 1450 2241 V 1451 2240 V 1452
2240 V 1454 2239 V 1455 2238 V 1456 2238 V 1457 2237
V 1458 2236 V 1459 2236 V 1446 2245 2 3 v 1460 2235 V
1462 2233 5 1 v 1464 2232 V 1465 2232 V 1466 2231 V 1467
2230 V 1468 2230 V 1469 2229 V 1471 2228 V 1472 2228
V 1473 2227 V 1474 2226 V 1462 2235 3 3 v 1476 2225 V
1478 2224 5 1 v 1480 2223 V 1481 2222 V 1482 2222 V 1483
2221 V 1484 2220 V 1485 2220 V 1487 2219 V 1488 2218
V 1489 2218 V 1490 2217 V 1478 2225 3 3 v 1492 2216 V
1494 2214 4 1 v 1495 2214 V 1496 2213 V 1497 2212 V 1498
2212 V 1499 2211 V 1500 2210 V 1502 2210 V 1503 2209
V 1504 2208 V 1505 2208 V 1506 2207 V 1507 2206 V 1494
2216 2 3 v 1508 2205 V 1510 2204 5 1 v 1512 2203 V 1513
2202 V 1514 2202 V 1515 2201 V 1516 2200 V 1517 2200
V 1519 2199 V 1520 2198 V 1521 2198 V 1522 2197 V 1510
2205 3 3 v 1524 2196 V 1526 2194 5 1 v 1528 2194 V 1529
2193 V 1530 2192 V 1531 2192 V 1532 2191 V 1533 2190
V 1535 2190 V 1536 2189 V 1537 2188 V 1538 2188 V 1526
2196 3 3 v 1540 2187 V 1542 2185 5 1 v 1544 2184 V 1545
2184 V 1546 2183 V 1547 2182 V 1548 2182 V 1549 2181
V 1551 2180 V 1552 2180 V 1553 2179 V 1554 2178 V 1542
2187 3 3 v 1556 2177 V 1558 2176 4 1 v 1559 2175 V 1560
2174 V 1561 2174 V 1562 2173 V 1563 2172 V 1564 2172
V 1566 2171 V 1567 2170 V 1568 2170 V 1569 2169 V 1570
2168 V 1571 2168 V 1558 2177 2 3 v 1572 2167 V 1574 2165
5 1 v 1576 2164 V 1577 2164 V 1578 2163 V 1579 2162 V
1580 2162 V 1581 2161 V 1583 2160 V 1584 2160 V 1585
2159 V 1586 2158 V 1574 2167 3 3 v 1588 2157 V 1590 2156
5 1 v 1592 2155 V 1593 2154 V 1594 2154 V 1595 2153 V
1596 2152 V 1597 2152 V 1599 2151 V 1600 2150 V 1601
2150 V 1602 2149 V 1590 2157 3 3 v 1604 2148 V 1606 2146
4 1 v 1607 2146 V 1608 2145 V 1609 2144 V 1610 2144 V
1611 2143 V 1612 2142 V 1614 2142 V 1615 2141 V 1616
2140 V 1617 2140 V 1618 2139 V 1619 2138 V 1606 2148
2 3 v 1620 2137 V 1622 2136 5 1 v 1624 2135 V 1625 2134
V 1626 2134 V 1627 2133 V 1628 2132 V 1629 2132 V 1631
2131 V 1632 2130 V 1633 2130 V 1634 2129 V 1622 2137
3 3 v 1636 2128 V 1638 2126 5 1 v 1640 2126 V 1641 2125
V 1642 2124 V 1644 2124 V 1645 2123 V 1646 2122 V 1647
2122 V 1649 2121 V 1650 2120 V 1651 2120 V 1638 2128
3 3 v 1653 2119 V 1656 2117 5 1 v 1657 2116 V 1658 2116
V 1659 2115 V 1660 2114 V 1662 2114 V 1663 2113 V 1664
2112 V 1665 2112 V 1666 2111 V 1667 2110 V 1656 2119
3 3 v 1670 2109 V 1672 2108 4 1 v 1673 2107 V 1674 2106
V 1675 2106 V 1676 2105 V 1677 2104 V 1678 2104 V 1679
2103 V 1680 2102 V 1681 2102 V 1682 2101 V 1683 2100
V 1684 2100 V 1672 2109 2 3 v 1686 2099 V 1688 2097 5
1 v 1689 2096 V 1690 2096 V 1691 2095 V 1692 2094 V 1694
2094 V 1695 2093 V 1696 2092 V 1697 2092 V 1698 2091
V 1699 2090 V 1688 2099 3 3 v 1702 2089 V 1704 2088 5
1 v 1705 2087 V 1706 2086 V 1707 2086 V 1708 2085 V 1710
2084 V 1711 2084 V 1712 2083 V 1713 2082 V 1714 2082
V 1715 2081 V 1704 2089 3 3 v 1718 2080 V 1720 2078 4
1 v 1721 2078 V 1722 2077 V 1723 2076 V 1724 2076 V 1725
2075 V 1726 2074 V 1727 2074 V 1728 2073 V 1729 2072
V 1730 2072 V 1731 2071 V 1732 2070 V 1720 2080 2 3 v
1734 2069 V 1736 2068 5 1 v 1737 2067 V 1738 2066 V 1739
2066 V 1740 2065 V 1742 2064 V 1743 2064 V 1744 2063
V 1745 2062 V 1746 2062 V 1747 2061 V 1736 2069 3 3 v
1750 2060 V 1752 2058 5 1 v 1753 2058 V 1754 2057 V 1755
2056 V 1756 2056 V 1758 2055 V 1759 2054 V 1760 2054
V 1761 2053 V 1762 2052 V 1763 2052 V 1752 2060 3 3 v
1766 2051 V 1768 2049 5 1 v 1769 2048 V 1770 2048 V 1771
2047 V 1772 2046 V 1774 2046 V 1775 2045 V 1776 2044
V 1777 2044 V 1778 2043 V 1779 2042 V 1768 2051 3 3 v
1782 2041 V 1784 2040 4 1 v 1785 2039 V 1786 2038 V 1787
2038 V 1788 2037 V 1789 2036 V 1790 2036 V 1791 2035
V 1792 2034 V 1793 2034 V 1794 2033 V 1795 2032 V 1796
2032 V 1784 2041 2 3 v 1798 2031 V 1800 2029 5 1 v 1801
2028 V 1802 2028 V 1803 2027 V 1804 2026 V 1806 2026
V 1807 2025 V 1808 2024 V 1809 2024 V 1810 2023 V 1811
2022 V 1800 2031 3 3 v 1814 2021 V 1816 2020 5 1 v 1817
2019 V 1818 2018 V 1819 2018 V 1820 2017 V 1822 2016
V 1823 2016 V 1824 2015 V 1825 2014 V 1826 2014 V 1827
2013 V 1816 2021 3 3 v 1830 2012 V 1832 2010 5 1 v 1833
2010 V 1834 2009 V 1835 2008 V 1836 2008 V 1838 2007
V 1839 2006 V 1840 2006 V 1841 2005 V 1842 2004 V 1843
2004 V 1832 2012 3 3 v 1846 2003 V 1848 2001 4 1 v 1849
2000 V 1850 2000 V 1851 1999 V 1852 1998 V 1853 1998
V 1854 1997 V 1855 1996 V 1856 1996 V 1857 1995 V 1858
1994 V 1859 1994 V 1860 1993 V 1848 2003 2 3 v 1862 1992
V 1864 1990 5 1 v 1865 1990 V 1866 1989 V 1868 1988 V
1869 1988 V 1870 1987 V 1871 1986 V 1873 1986 V 1874
1985 V 1875 1984 V 1876 1984 V 1864 1992 3 3 v 1879 1983
V 1881 1981 5 1 v 1882 1980 V 1883 1980 V 1885 1979 V
1886 1978 V 1887 1978 V 1888 1977 V 1889 1976 V 1890
1976 V 1892 1975 V 1893 1974 V 1881 1983 3 3 v 1895 1973
V 1897 1972 4 1 v 1898 1971 V 1899 1970 V 1900 1970 V
1901 1969 V 1902 1968 V 1903 1968 V 1904 1967 V 1905
1966 V 1906 1966 V 1907 1965 V 1908 1964 V 1909 1964
V 1897 1973 2 3 v 1911 1963 V 1913 1961 5 1 v 1914 1960
V 1915 1960 V 1917 1959 V 1918 1958 V 1919 1958 V 1920
1957 V 1921 1956 V 1922 1956 V 1924 1955 V 1925 1954
V 1913 1963 3 3 v 1927 1953 V 1929 1952 5 1 v 1930 1951
V 1931 1950 V 1933 1950 V 1934 1949 V 1935 1948 V 1936
1948 V 1937 1947 V 1938 1946 V 1940 1946 V 1941 1945
V 1929 1953 3 3 v 1943 1944 V 1945 1942 5 1 v 1946 1942
V 1947 1941 V 1949 1940 V 1950 1940 V 1951 1939 V 1952
1938 V 1953 1938 V 1954 1937 V 1956 1936 V 1957 1936
V 1945 1944 3 3 v 1959 1935 V 1961 1933 4 1 v 1962 1932
V 1963 1932 V 1964 1931 V 1965 1930 V 1966 1930 V 1967
1929 V 1968 1928 V 1969 1928 V 1970 1927 V 1971 1926
V 1972 1926 V 1973 1925 V 1961 1935 2 3 v 1975 1924 V
1977 1922 5 1 v 1978 1922 V 1979 1921 V 1981 1920 V 1982
1920 V 1983 1919 V 1984 1918 V 1985 1918 V 1986 1917
V 1988 1916 V 1989 1916 V 1977 1924 3 3 v 1991 1915 V
1993 1913 5 1 v 1994 1912 V 1995 1912 V 1997 1911 V 1998
1910 V 1999 1910 V 2000 1909 V 2001 1908 V 2002 1908
V 2004 1907 V 2005 1906 V 1993 1915 3 3 v 2007 1905 V
2009 1903 4 1 v 2010 1903 V 2011 1902 V 2012 1902 V 2013
1901 V 2014 1900 V 2015 1900 V 2016 1899 V 2017 1898
V 2018 1898 V 2019 1897 V 2020 1896 V 2021 1896 V 2009
1905 2 3 v 2023 1895 V 2025 1893 5 1 v 2026 1892 V 2027
1892 V 2029 1891 V 2030 1890 V 2031 1890 V 2032 1889
V 2033 1888 V 2034 1888 V 2036 1887 V 2037 1886 V 2025
1895 3 3 v 2039 1885 V 2041 1883 5 1 v 2042 1883 V 2043
1882 V 2045 1882 V 2046 1881 V 2047 1880 V 2048 1880
V 2049 1879 V 2050 1878 V 2052 1878 V 2053 1877 V 2041
1885 3 3 v 2055 1876 V 2057 1874 5 1 v 2058 1874 V 2059
1873 V 2061 1872 V 2062 1872 V 2063 1871 V 2064 1870
V 2065 1870 V 2066 1869 V 2068 1868 V 2069 1868 V 2057
1876 3 3 v 2071 1867 V 2073 1865 4 1 v 2074 1864 V 2075
1864 V 2076 1863 V 2077 1862 V 2078 1862 V 2079 1861
V 2080 1860 V 2081 1860 V 2082 1859 V 2083 1858 V 2084
1858 V 2085 1857 V 2073 1867 2 3 v 2087 1856 V 2089 1854
5 1 v 2090 1854 V 2092 1853 V 2093 1852 V 2094 1852 V
2095 1851 V 2097 1850 V 2098 1850 V 2099 1849 V 2101
1848 V 2102 1848 V 2089 1856 3 3 v 2104 1847 V 2106 1845
5 1 v 2108 1844 V 2109 1844 V 2110 1843 V 2111 1842 V
2112 1842 V 2113 1841 V 2115 1840 V 2116 1840 V 2117
1839 V 2118 1838 V 2106 1847 3 3 v 2120 1837 V 2122 1835
4 1 v 2123 1835 V 2124 1834 V 2125 1834 V 2126 1833 V
2127 1832 V 2129 1832 V 2130 1831 V 2131 1830 V 2132
1830 V 2133 1829 V 2134 1828 V 2135 1828 V 2122 1837
2 3 v 2137 1827 V 2138 1825 5 1 v 2140 1824 V 2141 1824
V 2142 1823 V 2143 1822 V 2144 1822 V 2145 1821 V 2147
1820 V 2148 1820 V 2149 1819 V 2150 1818 V 2138 1827
3 3 v 2152 1817 V 2154 1815 5 1 v 2156 1815 V 2157 1814
V 2158 1814 V 2159 1813 V 2160 1812 V 2161 1812 V 2163
1811 V 2164 1810 V 2165 1810 V 2166 1809 V 2154 1817
3 3 v 2168 1808 V 2170 1806 5 1 v 2172 1806 V 2173 1805
V 2174 1804 V 2175 1804 V 2176 1803 V 2177 1802 V 2179
1802 V 2180 1801 V 2181 1800 V 2182 1800 V 2170 1808
3 3 v 2184 1799 V 2186 1797 4 1 v 2187 1796 V 2188 1796
V 2189 1795 V 2190 1794 V 2192 1794 V 2193 1793 V 2194
1792 V 2195 1792 V 2196 1791 V 2197 1790 V 2198 1790
V 2199 1789 V 2186 1799 2 3 v 2201 1788 V 2202 1786 5
1 v 2204 1786 V 2205 1785 V 2206 1784 V 2207 1784 V 2208
1783 V 2209 1782 V 2211 1782 V 2212 1781 V 2213 1780
V 2214 1780 V 2202 1788 3 3 v 2216 1779 V 970 1910 a(2:1)p
1065 1895 V 1093 1895 V 1120 1895 V 1148 1895 V 1176
1895 V 1203 1895 V 1209 1895 V 625 2740 V 625 2740 V
652 2732 V 678 2724 V 705 2716 V 731 2708 V 758 2700
V 784 2693 V 810 2684 V 837 2677 V 863 2668 V 890 2660
V 916 2652 V 943 2644 V 969 2637 V 996 2628 V 1022 2621
V 1049 2612 V 1075 2604 V 1102 2596 V 1128 2588 V 1155
2580 V 1181 2572 V 1208 2565 V 1234 2557 V 1261 2548
V 1287 2541 V 1313 2532 V 1340 2524 V 1366 2516 V 1393
2508 V 1420 2501 V 1446 2492 V 1472 2485 V 1499 2476
V 1525 2468 V 1552 2460 V 1578 2452 V 1605 2445 V 1631
2437 V 1658 2429 V 1684 2421 V 1711 2412 V 1737 2405
V 1764 2396 V 1790 2389 V 1817 2381 V 1843 2372 V 1870
2365 V 1896 2356 V 1923 2349 V 1949 2340 V 1975 2333
V 2002 2325 V 2028 2317 V 2055 2309 V 2081 2301 V 2108
2293 V 2134 2285 V 2161 2277 V 2187 2269 V 2214 2260
V 2218 2259 V 893 1971 a(LPTD)1115 1970 y Fa(3)1009 2597
y(3)821 2650 y(3)745 2689 y(3)726 2692 y(3)699 2709 y(3)743
2680 y(3)674 2716 y(3)666 2718 y(3)655 2730 y(3)663 2738
y(3)654 2733 y(3)658 2730 y(3)637 2738 y(3)631 2741 y(3)629
2740 y(3)619 2745 y(3)618 2748 y(3)617 2750 y(3)614 2749
y(3)609 2753 y(3)-44 b(3)606 2754 y(3)603 2756 y(3)896
2031 y Fb(H1TD)1116 2027 y Fs(+)2041 2225 y(+)1718 2337
y(+)1413 2417 y(+)1009 2571 y(+)821 2643 y(+)745 2673
y(+)726 2682 y(+)700 2701 y(+)744 2689 y(+)674 2711 y(+)-51
b(+)656 2722 y(+)664 2731 y(+)654 2722 y(+)-39 b(+)637
2733 y(+)632 2737 y(+)629 2735 y(+)620 2741 y(+)618 2743
y(+)617 2746 y(+)-46 b(+)609 2750 y(+)609 2749 y(+)606
2751 y(+)604 2753 y(+)896 2091 y Fb(H2TD)1116 2090 y
Fa(2)2042 2288 y(2)1719 2364 y(2)1414 2441 y(2)1010 2581
y(2)822 2645 y(2)746 2678 y(2)727 2690 y(2)700 2708 y(2)744
2677 y(2)675 2716 y(2)667 2717 y(2)656 2728 y(2)664 2736
y(2)655 2733 y(2)659 2730 y(2)638 2736 y(2)632 2741 y(2)630
2740 y(2)620 2745 y(2)619 2748 y(2)618 2750 y(2)615 2749
y(2)610 2753 y(2)-41 b(2)607 2754 y(2)604 2756 y(2)892
2151 y Fb(GL)l(TD)1116 2147 y Fl(\002)1009 2538 y(\002)821
2622 y(\002)745 2677 y(\002)726 2673 y(\002)700 2689
y(\002)744 2675 y(\002)674 2706 y(\002)666 2709 y(\002)656
2721 y(\002)664 2722 y(\002)-53 b(\002)-39 b(\002)637
2727 y(\002)632 2731 y(\002)629 2733 y(\002)620 2741
y(\002)618 2742 y(\002)617 2745 y(\002)614 2743 y(\002)609
2749 y(\002)c(\002)606 2751 y(\002)604 2753 y(\002)862
2211 y Fb(ELZTD)1112 2207 y Fl(4)2038 2318 y(4)1715 2386
y(4)1410 2491 y(4)1006 2610 y(4)818 2647 y(4)742 2694
y(4)723 2689 y(4)696 2699 y(4)740 2695 y(4)671 2714 y(4)-57
b(4)652 2722 y(4)660 2729 y(4)f(4)655 2722 y(4)634 2734
y(4)628 2738 y(4)626 2737 y(4)616 2742 y(4)615 2745 y(4)614
2746 y(4)-52 b(4)606 2750 y(4)j(4)603 2751 y(4)600 2753
y(4)896 2271 y Fb(LZTD)1123 2267 y Fq(?)2050 2296 y(?)1726
2375 y(?)1421 2495 y(?)1018 2607 y(?)830 2643 y(?)753
2697 y(?)734 2684 y(?)707 2696 y(?)751 2693 y(?)682 2713
y(?)674 2712 y(?)663 2727 y(?)671 2732 y(?)662 2729 y(?)666
2720 y(?)645 2735 y(?)639 2737 y(?)637 2736 y(?)627 2741
y(?)626 2744 y(?)625 2745 y(?)-31 b(?)617 2749 y(?)j(?)614
2751 y(?)611 2752 y(?)921 3117 y Ft(Figure)22 b(6.)27
b Fs(Searc)n(h)17 b(e\013ectiv)n(eness)p eop
%%Page: 41 43
41 42 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(41)p 566 1268 27 3 v 509 1284 a Fs(0)p 2192 1268 V
566 1140 V 482 1156 a(20)p 2192 1140 V 566 1012 V 482
1028 a(40)p 2192 1012 V 566 884 V 482 900 a(60)p 2192
884 V 566 754 V 482 771 a(80)p 2192 754 V 566 626 V 454
643 a(100)p 2192 626 V 566 498 V 454 515 a(120)p 2192
498 V 566 370 V 454 387 a(140)p 2192 370 V 566 1268 3
27 v 553 1344 a(0)p 566 333 V 897 1268 V 261 w(5000)p
897 333 V 1228 1268 V 205 w(10000)p 1228 333 V 1557 1268
V 189 w(15000)p 1557 333 V 1888 1268 V 191 w(20000)p
1888 333 V 2218 1268 V 190 w(25000)p 2218 333 V 566 1268
1652 3 v 2218 1268 3 962 v 566 306 1652 3 v 269 800 a(time)18
b(\()p Fq(t)p Fs(\))1299 1400 y(size)g(\()p Fq(S)s Fs(\))p
566 1268 3 962 v 596 573 3 240 v 596 333 584 3 v 1180
573 3 240 v 596 573 584 3 v 803 378 a Fb(ELZTD)80 b Fa(3)2035
614 y(3)1701 710 y(3)1383 835 y(3)966 1034 y(3)770 1097
y(3)691 1174 y(3)671 1158 y(3)645 1178 y(3)690 1195 y(3)618
1215 y(3)610 1202 y(3)598 1227 y(3)607 1243 y(3)-54 b(3)601
1229 y(3)579 1250 y(3)573 1257 y(3)570 1254 y(3)561 1265
y(3)561 1269 y(3)-47 b(3)555 1273 y(3)550 1283 y(3)550
1279 y(3)547 1282 y(3)545 1283 y(3)806 438 y Fb(ELZTB)1057
435 y Fs(+)588 344 y(+)574 1023 y(+)573 1107 y(+)576
1079 y(+)570 1107 y(+)572 819 y(+)580 1014 y(+)576 780
y(+)568 1154 y(+)570 1196 y(+)570 1244 y(+)565 1235 y(+)573
1182 y(+)573 1056 y(+)569 1247 y(+)565 1243 y(+)564 1242
y(+)570 886 y(+)569 1200 y(+)570 1040 y(+)572 1232 y(+)d(+)565
1234 y(+)566 1223 y(+)561 1246 y(+)561 1239 y(+)565 1254
y(+)565 1222 y(+)565 1262 y(+)562 1243 y(+)560 1246 y(+)561
1259 y(+)561 1260 y(+)558 1263 y(+)558 1267 y(+)558 1251
y(+)562 1262 y(+)558 1256 y(+)556 1264 y(+)556 1272 y(+)556
1271 y(+)556 1263 y(+)557 1275 y(+)556 1271 y(+)-45 b(+)553
1272 y(+)557 1267 y(+)552 1275 y(+)552 1278 y(+)g(+)550
1280 y(+)550 1276 y(+)550 1279 y(+)550 1276 y(+)549 1278
y(+)550 1279 y(+)550 1276 y(+)549 1280 y(+)550 1278 y(+)549
1280 y(+)i(+)g(+)548 1279 y(+)549 1280 y(+)d(+)j(+)f(+)h(+)811
498 y Fb(ELZLB)81 b Fa(2)2036 430 y(2)1702 697 y(2)1384
895 y(2)967 1051 y(2)771 1106 y(2)692 1189 y(2)672 1166
y(2)646 1173 y(2)691 1186 y(2)619 1211 y(2)611 1189 y(2)599
1221 y(2)608 1238 y(2)598 1219 y(2)-37 b(2)580 1235 y(2)574
1237 y(2)571 1231 y(2)562 1250 y(2)562 1243 y(2)559 1263
y(2)556 1258 y(2)551 1269 y(2)551 1267 y(2)548 1277 y(2)546
1283 y(2)803 558 y Fb(ELZGB)1057 555 y Fl(\002)2036 511
y(\002)1701 331 y(\002)966 848 y(\002)770 1172 y(\002)692
1196 y(\002)672 1216 y(\002)645 1215 y(\002)690 1218
y(\002)618 1235 y(\002)610 1246 y(\002)598 1247 y(\002)608
1243 y(\002)597 1254 y(\002)601 1243 y(\002)580 1260
y(\002)573 1259 y(\002)570 1263 y(\002)561 1266 y(\002)561
1268 y(\002)-46 b(\002)556 1274 y(\002)550 1280 y(\002)550
1278 y(\002)h(\002)545 1280 y(\002)969 1645 y Ft(Figure)22
b(7.)27 b Fs(Enco)r(ding)16 b(times)p 625 2751 27 3 v
568 2768 a(0)p 2192 2751 V 625 2559 V 485 2576 a(5000)p
2192 2559 V 625 2367 V 457 2384 a(10000)p 2192 2367 V
625 2173 V 457 2190 a(15000)p 2192 2173 V 625 1981 V
457 1998 a(20000)p 2192 1981 V 625 1789 V 457 1806 a(25000)p
2192 1789 V 625 2751 3 27 v 611 2828 a(0)p 625 1816 V
944 2751 V 249 w(5000)p 944 1816 V 1262 2751 V 193 w(10000)p
1262 1816 V 1581 2751 V 179 w(15000)p 1581 1816 V 1900
2751 V 179 w(20000)p 1900 1816 V 2218 2751 V 178 w(25000)p
2218 1816 V 625 2751 1594 3 v 2218 2751 3 962 v 625 1789
1594 3 v 291 2213 a(comp.)321 2278 y(size)258 2336 y(\()p
Fq(S)f Fl(\000)d Fq(\016)r(S)s Fs(\))1329 2884 y(size)17
b(\()p Fq(S)s Fs(\))p 625 2751 3 962 v 654 2176 3 360
v 654 1816 584 3 v 1238 2176 3 360 v 654 2176 584 3 v
970 1860 a Fb(1:1)p 1065 1845 144 3 v 625 2751 3 3 v
625 2749 5 1 v 626 2748 V 627 2748 V 629 2747 V 630 2746
V 631 2746 V 632 2745 V 633 2744 V 634 2744 V 636 2743
V 637 2742 V 625 2751 3 3 v 639 2742 V 641 2740 4 1 v
642 2739 V 643 2738 V 644 2738 V 645 2737 V 646 2736
V 647 2736 V 648 2735 V 649 2734 V 650 2734 V 651 2733
V 652 2732 V 653 2732 V 641 2742 2 3 v 655 2731 V 657
2729 5 1 v 658 2728 V 659 2728 V 661 2727 V 662 2726
V 663 2726 V 664 2725 V 665 2724 V 666 2724 V 668 2723
V 669 2722 V 657 2731 3 3 v 671 2722 V 673 2720 5 1 v
674 2719 V 675 2718 V 677 2718 V 678 2717 V 679 2716
V 680 2716 V 681 2715 V 682 2714 V 684 2714 V 685 2713
V 673 2722 3 3 v 687 2712 V 689 2710 5 1 v 690 2710 V
691 2709 V 693 2708 V 694 2708 V 695 2707 V 696 2706
V 697 2706 V 698 2705 V 700 2704 V 701 2704 V 689 2712
3 3 v 703 2703 V 705 2701 4 1 v 706 2700 V 707 2700 V
708 2699 V 709 2698 V 710 2698 V 711 2697 V 712 2696
V 713 2696 V 714 2695 V 715 2694 V 716 2694 V 717 2693
V 705 2703 2 3 v 719 2692 V 721 2690 5 1 v 722 2690 V
723 2689 V 725 2688 V 726 2688 V 727 2687 V 728 2686
V 729 2686 V 730 2685 V 732 2684 V 733 2684 V 721 2692
3 3 v 735 2683 V 737 2681 5 1 v 738 2680 V 740 2680 V
741 2679 V 742 2678 V 743 2678 V 745 2677 V 746 2676
V 747 2676 V 748 2675 V 750 2674 V 737 2683 3 3 v 752
2674 V 754 2672 4 1 v 755 2671 V 756 2670 V 757 2670
V 758 2669 V 759 2668 V 760 2668 V 761 2667 V 762 2666
V 764 2666 V 765 2665 V 766 2664 V 767 2664 V 754 2674
2 3 v 768 2663 V 770 2661 5 1 v 772 2660 V 773 2660 V
774 2659 V 775 2658 V 776 2658 V 777 2657 V 779 2656
V 780 2656 V 781 2655 V 782 2654 V 770 2663 3 3 v 784
2654 V 786 2652 5 1 v 788 2651 V 789 2650 V 790 2650
V 791 2649 V 792 2648 V 793 2648 V 795 2647 V 796 2646
V 797 2646 V 798 2645 V 786 2654 3 3 v 800 2644 V 802
2642 5 1 v 804 2642 V 805 2641 V 806 2640 V 807 2640
V 808 2639 V 809 2638 V 811 2638 V 812 2637 V 813 2636
V 814 2636 V 802 2644 3 3 v 816 2635 V 818 2633 4 1 v
819 2632 V 820 2632 V 821 2631 V 822 2630 V 823 2630
V 824 2629 V 825 2628 V 827 2628 V 828 2627 V 829 2626
V 830 2626 V 831 2625 V 818 2635 2 3 v 832 2624 V 834
2622 5 1 v 836 2622 V 837 2621 V 838 2620 V 839 2620
V 840 2619 V 841 2618 V 843 2618 V 844 2617 V 845 2616
V 846 2616 V 834 2624 3 3 v 848 2615 V 850 2613 5 1 v
852 2612 V 853 2612 V 854 2611 V 855 2610 V 856 2610
V 857 2609 V 859 2608 V 860 2608 V 861 2607 V 862 2606
V 850 2615 3 3 v 864 2606 V 866 2604 4 1 v 867 2603 V
868 2602 V 869 2602 V 870 2601 V 871 2600 V 872 2600
V 873 2599 V 875 2598 V 876 2598 V 877 2597 V 878 2596
V 879 2596 V 866 2606 2 3 v 880 2595 V 882 2593 5 1 v
884 2592 V 885 2592 V 886 2591 V 887 2590 V 888 2590
V 889 2589 V 891 2588 V 892 2588 V 893 2587 V 894 2586
V 882 2595 3 3 v 896 2586 V 898 2584 5 1 v 900 2583 V
901 2582 V 902 2582 V 903 2581 V 904 2580 V 905 2580
V 907 2579 V 908 2578 V 909 2578 V 910 2577 V 898 2586
3 3 v 912 2576 V 914 2574 5 1 v 916 2574 V 917 2573 V
918 2572 V 919 2572 V 920 2571 V 921 2570 V 923 2570
V 924 2569 V 925 2568 V 926 2568 V 914 2576 3 3 v 928
2567 V 930 2565 4 1 v 931 2564 V 932 2564 V 933 2563
V 934 2562 V 935 2562 V 936 2561 V 937 2560 V 939 2560
V 940 2559 V 941 2558 V 942 2558 V 943 2557 V 930 2567
2 3 v 944 2556 V 946 2554 5 1 v 948 2554 V 949 2553 V
950 2552 V 951 2552 V 952 2551 V 953 2550 V 955 2550
V 956 2549 V 957 2548 V 958 2548 V 946 2556 3 3 v 960
2547 V 962 2545 5 1 v 964 2544 V 965 2544 V 966 2543
V 967 2542 V 969 2542 V 970 2541 V 971 2540 V 973 2540
V 974 2539 V 975 2538 V 962 2547 3 3 v 977 2538 V 980
2536 4 1 v 981 2535 V 982 2534 V 983 2534 V 984 2533
V 985 2532 V 986 2532 V 987 2531 V 988 2530 V 989 2530
V 990 2529 V 991 2528 V 992 2528 V 980 2538 2 3 v 994
2527 V 996 2525 5 1 v 997 2524 V 998 2524 V 999 2523
V 1000 2522 V 1002 2522 V 1003 2521 V 1004 2520 V 1005
2520 V 1006 2519 V 1007 2518 V 996 2527 3 3 v 1010 2518
V 1012 2516 5 1 v 1013 2515 V 1014 2514 V 1015 2514 V
1016 2513 V 1018 2512 V 1019 2512 V 1020 2511 V 1021
2510 V 1022 2510 V 1023 2509 V 1012 2518 3 3 v 1026 2508
V 1028 2506 5 1 v 1029 2506 V 1030 2505 V 1031 2504 V
1032 2504 V 1034 2503 V 1035 2502 V 1036 2502 V 1037
2501 V 1038 2500 V 1039 2500 V 1028 2508 3 3 v 1042 2499
V 1044 2497 4 1 v 1045 2496 V 1046 2496 V 1047 2495 V
1048 2494 V 1049 2494 V 1050 2493 V 1051 2492 V 1052
2492 V 1053 2491 V 1054 2490 V 1055 2490 V 1056 2489
V 1044 2499 2 3 v 1058 2488 V 1060 2486 5 1 v 1061 2486
V 1062 2485 V 1063 2484 V 1064 2484 V 1066 2483 V 1067
2482 V 1068 2482 V 1069 2481 V 1070 2480 V 1071 2480
V 1060 2488 3 3 v 1074 2479 V 1076 2477 5 1 v 1077 2476
V 1078 2476 V 1079 2475 V 1080 2474 V 1082 2474 V 1083
2473 V 1084 2472 V 1085 2472 V 1086 2471 V 1087 2470
V 1076 2479 3 3 v 1090 2470 V 1092 2468 5 1 v 1093 2467
V 1094 2466 V 1095 2466 V 1096 2465 V 1098 2464 V 1099
2464 V 1100 2463 V 1101 2462 V 1102 2462 V 1103 2461
V 1092 2470 3 3 v 1106 2460 V 1108 2458 4 1 v 1109 2458
V 1110 2457 V 1111 2456 V 1112 2456 V 1113 2455 V 1114
2454 V 1115 2454 V 1116 2453 V 1117 2452 V 1118 2452
V 1119 2451 V 1120 2450 V 1108 2460 2 3 v 1122 2450 V
1124 2448 5 1 v 1125 2447 V 1126 2446 V 1127 2446 V 1128
2445 V 1130 2444 V 1131 2444 V 1132 2443 V 1133 2442
V 1134 2442 V 1135 2441 V 1124 2450 3 3 v 1138 2440 V
1140 2438 5 1 v 1141 2438 V 1142 2437 V 1143 2436 V 1144
2436 V 1146 2435 V 1147 2434 V 1148 2434 V 1149 2433
V 1150 2432 V 1151 2432 V 1140 2440 3 3 v 1154 2431 V
1156 2429 4 1 v 1157 2428 V 1158 2428 V 1159 2427 V 1160
2426 V 1161 2426 V 1162 2425 V 1163 2424 V 1164 2424
V 1165 2423 V 1166 2422 V 1167 2422 V 1168 2421 V 1156
2431 2 3 v 1170 2420 V 1172 2418 5 1 v 1173 2418 V 1174
2417 V 1175 2416 V 1176 2416 V 1178 2415 V 1179 2414
V 1180 2414 V 1181 2413 V 1182 2412 V 1183 2412 V 1172
2420 3 3 v 1186 2411 V 1188 2409 5 1 v 1189 2408 V 1190
2408 V 1192 2407 V 1193 2406 V 1194 2406 V 1195 2405
V 1197 2404 V 1198 2404 V 1199 2403 V 1200 2402 V 1188
2411 3 3 v 1203 2402 V 1205 2400 5 1 v 1206 2399 V 1207
2398 V 1209 2398 V 1210 2397 V 1211 2396 V 1212 2396
V 1213 2395 V 1214 2394 V 1216 2394 V 1217 2393 V 1205
2402 3 3 v 1219 2392 V 1221 2390 4 1 v 1222 2390 V 1223
2389 V 1224 2388 V 1225 2388 V 1226 2387 V 1227 2386
V 1228 2386 V 1229 2385 V 1230 2384 V 1231 2384 V 1232
2383 V 1233 2382 V 1221 2392 2 3 v 1235 2381 V 1237 2380
5 1 v 1238 2379 V 1239 2378 V 1241 2378 V 1242 2377 V
1243 2376 V 1244 2376 V 1245 2375 V 1246 2374 V 1248
2374 V 1249 2373 V 1237 2381 3 3 v 1251 2372 V 1253 2370
5 1 v 1254 2370 V 1255 2369 V 1257 2368 V 1258 2368 V
1259 2367 V 1260 2366 V 1261 2366 V 1262 2365 V 1264
2364 V 1265 2364 V 1253 2372 3 3 v 1267 2363 V 1269 2361
4 1 v 1270 2360 V 1271 2360 V 1272 2359 V 1273 2358 V
1274 2358 V 1275 2357 V 1276 2356 V 1277 2356 V 1278
2355 V 1279 2354 V 1280 2354 V 1281 2353 V 1269 2363
2 3 v 1283 2352 V 1285 2350 5 1 v 1286 2350 V 1287 2349
V 1289 2348 V 1290 2348 V 1291 2347 V 1292 2346 V 1293
2346 V 1294 2345 V 1296 2344 V 1297 2344 V 1285 2352
3 3 v 1299 2343 V 1301 2341 5 1 v 1302 2340 V 1303 2340
V 1305 2339 V 1306 2338 V 1307 2338 V 1308 2337 V 1309
2336 V 1310 2336 V 1312 2335 V 1313 2334 V 1301 2343
3 3 v 1315 2333 V 1317 2332 5 1 v 1318 2331 V 1319 2330
V 1321 2330 V 1322 2329 V 1323 2328 V 1324 2328 V 1325
2327 V 1326 2326 V 1328 2326 V 1329 2325 V 1317 2333
3 3 v 1331 2324 V 1333 2322 4 1 v 1334 2322 V 1335 2321
V 1336 2320 V 1337 2320 V 1338 2319 V 1339 2318 V 1340
2318 V 1341 2317 V 1342 2316 V 1343 2316 V 1344 2315
V 1345 2314 V 1333 2324 2 3 v 1347 2313 V 1349 2312 5
1 v 1350 2311 V 1351 2310 V 1353 2310 V 1354 2309 V 1355
2308 V 1356 2308 V 1357 2307 V 1358 2306 V 1360 2306
V 1361 2305 V 1349 2313 3 3 v 1363 2304 V 1365 2302 5
1 v 1366 2302 V 1367 2301 V 1369 2300 V 1370 2300 V 1371
2299 V 1372 2298 V 1373 2298 V 1374 2297 V 1376 2296
V 1377 2296 V 1365 2304 3 3 v 1379 2295 V 1381 2293 4
1 v 1382 2292 V 1383 2292 V 1384 2291 V 1385 2290 V 1386
2290 V 1387 2289 V 1388 2288 V 1389 2288 V 1390 2287
V 1391 2286 V 1392 2286 V 1393 2285 V 1381 2295 2 3 v
1395 2284 V 1397 2282 5 1 v 1398 2282 V 1399 2281 V 1401
2280 V 1402 2280 V 1403 2279 V 1404 2278 V 1405 2278
V 1406 2277 V 1408 2276 V 1409 2276 V 1397 2284 3 3 v
1411 2275 V 1413 2273 5 1 v 1414 2272 V 1416 2272 V 1417
2271 V 1418 2270 V 1419 2270 V 1421 2269 V 1422 2268
V 1423 2268 V 1424 2267 V 1426 2266 V 1413 2275 3 3 v
1428 2265 V 1430 2264 5 1 v 1432 2263 V 1433 2262 V 1434
2262 V 1435 2261 V 1436 2260 V 1437 2260 V 1439 2259
V 1440 2258 V 1441 2258 V 1442 2257 V 1430 2265 3 3 v
1444 2256 V 1446 2254 4 1 v 1447 2254 V 1448 2253 V 1449
2252 V 1450 2252 V 1451 2251 V 1452 2250 V 1454 2250
V 1455 2249 V 1456 2248 V 1457 2248 V 1458 2247 V 1459
2246 V 1446 2256 2 3 v 1460 2245 V 1462 2244 5 1 v 1464
2243 V 1465 2242 V 1466 2242 V 1467 2241 V 1468 2240
V 1469 2240 V 1471 2239 V 1472 2238 V 1473 2238 V 1474
2237 V 1462 2245 3 3 v 1476 2236 V 1478 2234 5 1 v 1480
2234 V 1481 2233 V 1482 2232 V 1483 2232 V 1484 2231
V 1485 2230 V 1487 2230 V 1488 2229 V 1489 2228 V 1490
2228 V 1478 2236 3 3 v 1492 2227 V 1494 2225 4 1 v 1495
2224 V 1496 2224 V 1497 2223 V 1498 2222 V 1499 2222
V 1500 2221 V 1502 2220 V 1503 2220 V 1504 2219 V 1505
2218 V 1506 2218 V 1507 2217 V 1494 2227 2 3 v 1508 2216
V 1510 2214 5 1 v 1512 2214 V 1513 2213 V 1514 2212 V
1515 2212 V 1516 2211 V 1517 2210 V 1519 2210 V 1520
2209 V 1521 2208 V 1522 2208 V 1510 2216 3 3 v 1524 2207
V 1526 2205 5 1 v 1528 2204 V 1529 2204 V 1530 2203 V
1531 2202 V 1532 2202 V 1533 2201 V 1535 2200 V 1536
2200 V 1537 2199 V 1538 2198 V 1526 2207 3 3 v 1540 2197
V 1542 2196 5 1 v 1544 2195 V 1545 2194 V 1546 2194 V
1547 2193 V 1548 2192 V 1549 2192 V 1551 2191 V 1552
2190 V 1553 2190 V 1554 2189 V 1542 2197 3 3 v 1556 2188
V 1558 2186 4 1 v 1559 2186 V 1560 2185 V 1561 2184 V
1562 2184 V 1563 2183 V 1564 2182 V 1566 2182 V 1567
2181 V 1568 2180 V 1569 2180 V 1570 2179 V 1571 2178
V 1558 2188 2 3 v 1572 2177 V 1574 2176 5 1 v 1576 2175
V 1577 2174 V 1578 2174 V 1579 2173 V 1580 2172 V 1581
2172 V 1583 2171 V 1584 2170 V 1585 2170 V 1586 2169
V 1574 2177 3 3 v 1588 2168 V 1590 2166 5 1 v 1592 2166
V 1593 2165 V 1594 2164 V 1595 2164 V 1596 2163 V 1597
2162 V 1599 2162 V 1600 2161 V 1601 2160 V 1602 2160
V 1590 2168 3 3 v 1604 2159 V 1606 2157 4 1 v 1607 2156
V 1608 2156 V 1609 2155 V 1610 2154 V 1611 2154 V 1612
2153 V 1614 2152 V 1615 2152 V 1616 2151 V 1617 2150
V 1618 2150 V 1619 2149 V 1606 2159 2 3 v 1620 2148 V
1622 2146 5 1 v 1624 2146 V 1625 2145 V 1626 2144 V 1627
2144 V 1628 2143 V 1629 2142 V 1631 2142 V 1632 2141
V 1633 2140 V 1634 2140 V 1622 2148 3 3 v 1636 2139 V
1638 2137 5 1 v 1640 2136 V 1641 2136 V 1642 2135 V 1644
2134 V 1645 2134 V 1646 2133 V 1647 2132 V 1649 2132
V 1650 2131 V 1651 2130 V 1638 2139 3 3 v 1653 2129 V
1656 2128 5 1 v 1657 2127 V 1658 2126 V 1659 2126 V 1660
2125 V 1662 2124 V 1663 2124 V 1664 2123 V 1665 2122
V 1666 2122 V 1667 2121 V 1656 2129 3 3 v 1670 2120 V
1672 2118 4 1 v 1673 2118 V 1674 2117 V 1675 2116 V 1676
2116 V 1677 2115 V 1678 2114 V 1679 2114 V 1680 2113
V 1681 2112 V 1682 2112 V 1683 2111 V 1684 2110 V 1672
2120 2 3 v 1686 2109 V 1688 2108 5 1 v 1689 2107 V 1690
2106 V 1691 2106 V 1692 2105 V 1694 2104 V 1695 2104
V 1696 2103 V 1697 2102 V 1698 2102 V 1699 2101 V 1688
2109 3 3 v 1702 2100 V 1704 2098 5 1 v 1705 2098 V 1706
2097 V 1707 2096 V 1708 2096 V 1710 2095 V 1711 2094
V 1712 2094 V 1713 2093 V 1714 2092 V 1715 2092 V 1704
2100 3 3 v 1718 2091 V 1720 2089 4 1 v 1721 2088 V 1722
2088 V 1723 2087 V 1724 2086 V 1725 2086 V 1726 2085
V 1727 2084 V 1728 2084 V 1729 2083 V 1730 2082 V 1731
2082 V 1732 2081 V 1720 2091 2 3 v 1734 2080 V 1736 2078
5 1 v 1737 2078 V 1738 2077 V 1739 2076 V 1740 2076 V
1742 2075 V 1743 2074 V 1744 2074 V 1745 2073 V 1746
2072 V 1747 2072 V 1736 2080 3 3 v 1750 2071 V 1752 2069
5 1 v 1753 2068 V 1754 2068 V 1755 2067 V 1756 2066 V
1758 2066 V 1759 2065 V 1760 2064 V 1761 2064 V 1762
2063 V 1763 2062 V 1752 2071 3 3 v 1766 2061 V 1768 2060
5 1 v 1769 2059 V 1770 2058 V 1771 2058 V 1772 2057 V
1774 2056 V 1775 2056 V 1776 2055 V 1777 2054 V 1778
2054 V 1779 2053 V 1768 2061 3 3 v 1782 2052 V 1784 2050
4 1 v 1785 2050 V 1786 2049 V 1787 2048 V 1788 2048 V
1789 2047 V 1790 2046 V 1791 2046 V 1792 2045 V 1793
2044 V 1794 2044 V 1795 2043 V 1796 2042 V 1784 2052
2 3 v 1798 2041 V 1800 2040 5 1 v 1801 2039 V 1802 2038
V 1803 2038 V 1804 2037 V 1806 2036 V 1807 2036 V 1808
2035 V 1809 2034 V 1810 2034 V 1811 2033 V 1800 2041
3 3 v 1814 2032 V 1816 2030 5 1 v 1817 2030 V 1818 2029
V 1819 2028 V 1820 2028 V 1822 2027 V 1823 2026 V 1824
2026 V 1825 2025 V 1826 2024 V 1827 2024 V 1816 2032
3 3 v 1830 2023 V 1832 2021 5 1 v 1833 2020 V 1834 2020
V 1835 2019 V 1836 2018 V 1838 2018 V 1839 2017 V 1840
2016 V 1841 2016 V 1842 2015 V 1843 2014 V 1832 2023
3 3 v 1846 2013 V 1848 2012 4 1 v 1849 2011 V 1850 2010
V 1851 2010 V 1852 2009 V 1853 2008 V 1854 2008 V 1855
2007 V 1856 2006 V 1857 2006 V 1858 2005 V 1859 2004
V 1860 2004 V 1848 2013 2 3 v 1862 2003 V 1864 2001 5
1 v 1865 2000 V 1866 2000 V 1868 1999 V 1869 1998 V 1870
1998 V 1871 1997 V 1873 1996 V 1874 1996 V 1875 1995
V 1876 1994 V 1864 2003 3 3 v 1879 1993 V 1881 1992 5
1 v 1882 1991 V 1883 1990 V 1885 1990 V 1886 1989 V 1887
1988 V 1888 1988 V 1889 1987 V 1890 1986 V 1892 1986
V 1893 1985 V 1881 1993 3 3 v 1895 1984 V 1897 1982 4
1 v 1898 1982 V 1899 1981 V 1900 1980 V 1901 1980 V 1902
1979 V 1903 1978 V 1904 1978 V 1905 1977 V 1906 1976
V 1907 1976 V 1908 1975 V 1909 1974 V 1897 1984 2 3 v
1911 1973 V 1913 1972 5 1 v 1914 1971 V 1915 1970 V 1917
1970 V 1918 1969 V 1919 1968 V 1920 1968 V 1921 1967
V 1922 1966 V 1924 1966 V 1925 1965 V 1913 1973 3 3 v
1927 1964 V 1929 1962 5 1 v 1930 1962 V 1931 1961 V 1933
1960 V 1934 1960 V 1935 1959 V 1936 1958 V 1937 1958
V 1938 1957 V 1940 1956 V 1941 1956 V 1929 1964 3 3 v
1943 1955 V 1945 1953 5 1 v 1946 1952 V 1947 1952 V 1949
1951 V 1950 1950 V 1951 1950 V 1952 1949 V 1953 1948
V 1954 1948 V 1956 1947 V 1957 1946 V 1945 1955 3 3 v
1959 1945 V 1961 1944 4 1 v 1962 1943 V 1963 1942 V 1964
1942 V 1965 1941 V 1966 1940 V 1967 1940 V 1968 1939
V 1969 1938 V 1970 1938 V 1971 1937 V 1972 1936 V 1973
1936 V 1961 1945 2 3 v 1975 1935 V 1977 1933 5 1 v 1978
1932 V 1979 1932 V 1981 1931 V 1982 1930 V 1983 1930
V 1984 1929 V 1985 1928 V 1986 1928 V 1988 1927 V 1989
1926 V 1977 1935 3 3 v 1991 1925 V 1993 1924 5 1 v 1994
1923 V 1995 1922 V 1997 1922 V 1998 1921 V 1999 1920
V 2000 1920 V 2001 1919 V 2002 1918 V 2004 1918 V 2005
1917 V 1993 1925 3 3 v 2007 1916 V 2009 1914 4 1 v 2010
1914 V 2011 1913 V 2012 1912 V 2013 1912 V 2014 1911
V 2015 1910 V 2016 1910 V 2017 1909 V 2018 1908 V 2019
1908 V 2020 1907 V 2021 1906 V 2009 1916 2 3 v 2023 1905
V 2025 1904 5 1 v 2026 1903 V 2027 1902 V 2029 1902 V
2030 1901 V 2031 1900 V 2032 1900 V 2033 1899 V 2034
1898 V 2036 1898 V 2037 1897 V 2025 1905 3 3 v 2039 1896
V 2041 1894 5 1 v 2042 1894 V 2043 1893 V 2045 1892 V
2046 1892 V 2047 1891 V 2048 1890 V 2049 1890 V 2050
1889 V 2052 1888 V 2053 1888 V 2041 1896 3 3 v 2055 1887
V 2057 1885 5 1 v 2058 1884 V 2059 1884 V 2061 1883 V
2062 1882 V 2063 1882 V 2064 1881 V 2065 1880 V 2066
1880 V 2068 1879 V 2069 1878 V 2057 1887 3 3 v 2071 1877
V 2073 1876 4 1 v 2074 1875 V 2075 1874 V 2076 1874 V
2077 1873 V 2078 1872 V 2079 1872 V 2080 1871 V 2081
1870 V 2082 1870 V 2083 1869 V 2084 1868 V 2085 1868
V 2073 1877 2 3 v 2087 1867 V 2089 1865 5 1 v 2090 1864
V 2092 1864 V 2093 1863 V 2094 1862 V 2095 1862 V 2097
1861 V 2098 1860 V 2099 1860 V 2101 1859 V 2102 1858
V 2089 1867 3 3 v 2104 1857 V 2106 1856 5 1 v 2108 1855
V 2109 1854 V 2110 1854 V 2111 1853 V 2112 1852 V 2113
1852 V 2115 1851 V 2116 1850 V 2117 1850 V 2118 1849
V 2106 1857 3 3 v 2120 1848 V 2122 1846 4 1 v 2123 1846
V 2124 1845 V 2125 1844 V 2126 1844 V 2127 1843 V 2129
1842 V 2130 1842 V 2131 1841 V 2132 1840 V 2133 1840
V 2134 1839 V 2135 1838 V 2122 1848 2 3 v 2137 1837 V
2138 1836 5 1 v 2140 1835 V 2141 1834 V 2142 1834 V 2143
1833 V 2144 1832 V 2145 1832 V 2147 1831 V 2148 1830
V 2149 1830 V 2150 1829 V 2138 1837 3 3 v 2152 1828 V
2154 1826 5 1 v 2156 1826 V 2157 1825 V 2158 1824 V 2159
1824 V 2160 1823 V 2161 1822 V 2163 1822 V 2164 1821
V 2165 1820 V 2166 1820 V 2154 1828 3 3 v 2168 1819 V
2170 1817 5 1 v 2172 1816 V 2173 1816 V 2174 1815 V 2175
1814 V 2176 1814 V 2177 1813 V 2179 1812 V 2180 1812
V 2181 1811 V 2182 1810 V 2170 1819 3 3 v 2184 1809 V
2186 1808 4 1 v 2187 1807 V 2188 1806 V 2189 1806 V 2190
1805 V 2192 1804 V 2193 1804 V 2194 1803 V 2195 1802
V 2196 1802 V 2197 1801 V 2198 1800 V 2199 1800 V 2186
1809 2 3 v 2201 1799 V 2202 1797 5 1 v 2204 1796 V 2205
1796 V 2206 1795 V 2207 1794 V 2208 1794 V 2209 1793
V 2211 1792 V 2212 1792 V 2213 1791 V 2214 1790 V 2202
1799 3 3 v 2216 1789 V 970 1920 a(2:1)p 1065 1905 V 1093
1905 V 1120 1905 V 1148 1905 V 1176 1905 V 1203 1905
V 1209 1905 V 625 2751 V 625 2751 V 652 2743 V 678 2735
V 705 2727 V 731 2719 V 758 2711 V 784 2703 V 810 2695
V 837 2687 V 863 2679 V 890 2671 V 916 2662 V 943 2655
V 969 2647 V 996 2639 V 1022 2631 V 1049 2623 V 1075
2615 V 1102 2607 V 1128 2599 V 1155 2591 V 1181 2583
V 1208 2575 V 1234 2568 V 1261 2559 V 1287 2551 V 1313
2543 V 1340 2535 V 1366 2527 V 1393 2519 V 1420 2512
V 1446 2503 V 1472 2495 V 1499 2487 V 1525 2479 V 1552
2471 V 1578 2463 V 1605 2455 V 1631 2447 V 1658 2440
V 1684 2432 V 1711 2423 V 1737 2416 V 1764 2407 V 1790
2399 V 1817 2392 V 1843 2383 V 1870 2376 V 1896 2367
V 1923 2360 V 1949 2351 V 1975 2343 V 2002 2335 V 2028
2327 V 2055 2320 V 2081 2311 V 2108 2304 V 2134 2296
V 2161 2287 V 2187 2280 V 2214 2271 V 2218 2269 V 862
1981 a(ELZTD)79 b Fa(3)2041 2332 y(3)1718 2400 y(3)1413
2505 y(3)1009 2624 y(3)821 2661 y(3)745 2708 y(3)726
2702 y(3)699 2713 y(3)743 2709 y(3)674 2728 y(3)-52 b(3)655
2736 y(3)663 2742 y(3)f(3)658 2736 y(3)637 2748 y(3)631
2752 y(3)629 2750 y(3)619 2756 y(3)618 2758 y(3)617 2760
y(3)-47 b(3)609 2764 y(3)j(3)606 2765 y(3)603 2766 y(3)864
2041 y Fb(ELZTB)1116 2038 y Fs(+)644 2744 y(+)632 2746
y(+)h(+)-31 b(+)633 2745 y(+)629 2748 y(+)-43 b(+)637
2746 y(+)c(+)626 2749 y(+)629 2748 y(+)628 2752 y(+)624
2750 y(+)632 2749 y(+)i(+)626 2752 y(+)e(+)j(+)628 2750
y(+)h(+)629 2748 y(+)629 2749 y(+)624 2753 y(+)622 2750
y(+)624 2752 y(+)618 2754 y(+)620 2753 y(+)624 2752 y(+)g(+)624
2753 y(+)621 2754 y(+)d(+)618 2756 y(+)j(+)f(+)h(+)g(+)621
2753 y(+)617 2757 y(+)d(+)613 2758 y(+)614 2757 y(+)613
2758 y(+)616 2757 y(+)h(+)613 2758 y(+)f(+)616 2757 y(+)610
2760 y(+)j(+)f(+)609 2761 y(+)h(+)609 2760 y(+)g(+)608
2761 y(+)g(+)h(+)e(+)h(+)g(+)g(+)606 2762 y(+)g(+)608
2761 y(+)605 2762 y(+)605 2764 y(+)f(+)h(+)869 2101 y
Fb(ELZLB)81 b Fa(2)2042 2216 y(2)1719 2317 y(2)1414 2489
y(2)1010 2610 y(2)822 2658 y(2)746 2708 y(2)727 2700
y(2)700 2710 y(2)744 2701 y(2)675 2726 y(2)-49 b(2)656
2734 y(2)664 2740 y(2)655 2738 y(2)659 2730 y(2)638 2748
y(2)632 2749 y(2)630 2746 y(2)620 2754 y(2)-42 b(2)618
2758 y(2)615 2757 y(2)610 2762 y(2)h(2)607 2765 y(2)604
2766 y(2)861 2161 y Fb(ELZGB)1116 2158 y Fl(\002)2041
1986 y(\002)1718 2185 y(\002)1413 2402 y(\002)1009 2561
y(\002)821 2645 y(\002)745 2694 y(\002)726 2698 y(\002)700
2710 y(\002)744 2690 y(\002)674 2728 y(\002)666 2729
y(\002)656 2736 y(\002)664 2738 y(\002)654 2736 y(\002)658
2733 y(\002)637 2748 y(\002)632 2749 y(\002)-46 b(\002)620
2754 y(\002)h(\002)617 2757 y(\002)f(\002)609 2761 y(\002)j(\002)606
2762 y(\002)604 2764 y(\002)887 3128 y Ft(Figure)22 b(8.)27
b Fs(Enco)r(ding)16 b(e\013ectiv)n(eness)p eop
%%Page: 42 44
42 43 bop 304 151 a Fu(42)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(3.3.)32
b Fy(Analysis)24 b(and)h(In)n(terpretation.)j Fs(The)21
b(\()p Fy(LP)o Fs(\))g(searc)n(h)f(algorithm)h(app)r(ears)d(to)j(run)
304 350 y(in)k(linear)f(or)g(quadratic)f(time,)k(but)c(requires)h(to)r
(o)f(m)n(uc)n(h)i(memory)f(to)g(run)g(on)h(the)e(large)304
416 y(pro)r(ofs.)42 b(The)25 b(\()p Fy(GL)o Fs(\))g(searc)n(h)e
(algorithm)h(app)r(ears)f(to)h(require)g(linear)g(or)g(quadratic)g
(time)304 483 y(also,)f(though)e(if)i(the)e(time)h(is)h(linear)f(then)f
(it)h(has)g(a)g(v)n(ery)h(large)f(constan)n(t)e(factor.)35
b(\()p Fy(H2)o Fs(\),)304 549 y(\()p Fy(H1)o Fs(\),)14
b(\()p Fy(ELZ)p Fs(\),)h(and)d(\()p Fy(LZ)p Fs(\))h(also)h(run)f(in)g
(linear)h(time,)g(from)f(slo)n(w)n(est)h(to)f(fastest)e(in)j(that)f
(order.)304 616 y(This)20 b(is)g(probably)f(b)r(ecause)f(the)h(\()p
Fy(H1)o Fs(\))g(and)h(\()p Fy(H2)o Fs(\))g(algorithms)e(p)r(erform)h
(man)n(y)h(insertions)304 682 y(in)n(to)e(PSTs)g(whic)n(h)h(migh)n(t)f
(require)g(term)g(generalization,)e(whereas)h(\()p Fy(ELZ)p
Fs(\))h(only)g(p)r(erforms)304 748 y(term)f(matc)n(hes,)g(and)h(\()p
Fy(LZ)p Fs(\))g(only)g(p)r(erforms)e(string)i(matc)n(hes.)370
815 y(F)-5 b(or)23 b(small)g(and)f(medium)h(terms,)g(the)f(most)g
(e\013ectiv)n(e)g(searc)n(h)g(seems)g(to)g(b)r(e)g(the)f(\()p
Fy(LP)p Fs(\))304 881 y(algorithm,)j(but)e(it)h(cannot)f(run)g(on)h(an)
n(y)g(larger)f(terms.)39 b(Algorithms)22 b(\()p Fy(ELZ)o
Fs(\))h(and)g(\()p Fy(H2)o Fs(\))304 948 y(p)r(erform)g(ab)r(out)g
(equally)i(w)n(ell,)j(but)c(b)r(oth)f(\()p Fy(H1)p Fs(\))h(ad)h(\()p
Fy(H2)o Fs(\))g(p)r(erform)e(p)r(o)r(orly)-5 b(.)43 b(F)-5
b(or)25 b(large)304 1014 y(terms,)g(the)e(\()p Fy(ELZ)p
Fs(\))h(and)g(\()p Fy(LZ)o Fs(\))h(searc)n(h)e(algorithms)g(ha)n(v)n(e)
i(similar)g(e\013ects)e(on)h(size,)i(with)304 1080 y(the)18
b(\()p Fy(ELZ)p Fs(\))g(algorithm)h(sligh)n(tly)h(b)r(etter)c(than)i
(\()p Fy(LZ)p Fs(\))h(on)g(the)f(t)n(w)n(o)i(largest)d(terms.)27
b(P)n(erhaps)304 1147 y(the)20 b(fact)h(that)f(\()p Fy(LZ)p
Fs(\))h(can)g(\014nd)g(inciden)n(tal)g(sequen)n(tial)g(patterns)e(that)
h(o)r(ccur)g(in)i(the)e(term)304 1213 y(linearization)f(mak)n(es)h(up)g
(for)g(the)g(term)f(patterns)f(it)j(misses.)31 b(It)20
b(w)n(ould)h(b)r(e)e(in)n(teresting)g(to)304 1280 y(compare)c(\()p
Fy(LZ)p Fs(\))h(and)g(\()p Fy(ELZ)p Fs(\))g(on)h(larger)e(terms)h(to)g
(see)g(whic)n(h)h(can)f(obtain)g(the)g(b)r(est)f(results.)370
1346 y(The)26 b(\()p Fy(TB)p Fs(\))g(enco)r(ding)d(do)r(es)i(require)g
(exp)r(onen)n(tial)g(time,)j(so)d(that)g(it)h(cannot)e(run)i(on)304
1413 y(man)n(y)c(terms)e(larger)h(than)g(1000)f(sym)n(b)r(ols)i(quic)n
(kly)h(enough.)33 b(The)21 b(enco)r(dings)f(\()p Fy(GB)p
Fs(\))h(and)304 1479 y(\()p Fy(LB)p Fs(\))g(app)r(ear)f(to)h(run)g(in)i
(linear)e(or)g(quadratic)g(time)g(on)h(a)n(v)n(erage,)g(with)g(large)f
(v)m(ariations)304 1545 y(in)f(running)f(time)g(for)h(\()p
Fy(GB)p Fs(\).)29 b(The)19 b(\()p Fy(LB)p Fs(\))h(algorithm)f(can)g
(tak)n(e)g(longer)g(in)h(the)f(w)n(orst)h(case)304 1612
y(b)r(ecause)d(of)i(the)f(time)h(needed)f(to)h(calculate)f(heuristics,)
g(and)h(the)f(\()p Fy(GB)p Fs(\))h(algorithm)g(needs)304
1678 y(additional)h(time)g(to)g(sort)g(the)g(patterns)e(b)n(y)j
(heuristic.)31 b(The)20 b(\()p Fy(TD)p Fs(\))g(enco)r(ding)f(app)r
(ears)f(to)304 1745 y(run)f(in)i(linear)f(time,)g(and)g(with)g(a)g(lo)n
(w)h(constan)n(t)d(factor.)370 1811 y(The)j(b)r(est)f(enco)r(ding)g
(for)h(small)i(terms)d(seems)h(to)g(b)r(e)g(the)g(\()p
Fy(GB)p Fs(\))g(enco)r(ding.)27 b(The)19 b(\()p Fy(TD)p
Fs(\))304 1877 y(and)c(\()p Fy(TB)p Fs(\))h(enco)r(ding)e(p)r(erform)g
(ab)r(out)g(equally)j(w)n(ell)g(on)f(small)g(terms,)g(and)g(\()p
Fy(LB)p Fs(\))f(p)r(erforms)304 1944 y(p)r(o)r(orly)-5
b(,)21 b(increasing)e(size)i(b)n(y)g(ab)r(out)e(17\045.)32
b(F)-5 b(or)21 b(medium)g(and)f(large)h(terms,)f(ho)n(w)n(ev)n(er,)i
(the)304 2010 y(\()p Fy(GB)p Fs(\))17 b(enco)r(ding)f(do)r(es)g(not)h
(impro)n(v)n(e)h(and)g(the)e(\()p Fy(TB)p Fs(\))i(algorithm)f(is)h(to)r
(o)e(ine\016cien)n(t)i(to)f(run,)304 2077 y(while)h(the)g(\()p
Fy(LB)p Fs(\))g(and)f(\()p Fy(TD)p Fs(\))h(algorithms)f(impro)n(v)n(e)i
(substan)n(tially)-5 b(.)370 2143 y(The)26 b(most)f(e\013ectiv)n(e)g
(term)g(pattern)f(searc)n(h)h(algorithm)g(when)g(used)g(with)h(the)f
(\()p Fy(TD)p Fs(\))304 2210 y(enco)r(ding)15 b(on)i(small)i(terms)d
(is)i(the)f(\()p Fy(LP)o Fs(\))h(algorithm,)f(and)g(the)f(most)h
(e\013ectiv)n(e)g(for)h(medium)304 2276 y(and)k(large)g(terms)g(is)h
(the)f(\()p Fy(ELZ)p Fs(\))h(algorithm.)37 b(The)23 b(most)f
(e\013ectiv)n(e)h(enco)r(ding)d(algorithm)304 2342 y(when)k(used)h
(with)g(the)f(\()p Fy(ELZ)o Fs(\))h(searc)n(h)f(is)i(\()p
Fy(TD)p Fs(\).)45 b(The)25 b(fastest)e(term)h(searc)n(h)g(algorithm)304
2409 y(is)e(also)f(\()p Fy(ELZ)p Fs(\).)34 b(The)21 b(fastest)f(enco)r
(ding)g(algorithm)g(is)i(\()p Fy(TD)p Fs(\).)34 b(In)22
b(some)f(cases)f(the)h(\()p Fy(LZ)p Fs(\))304 2475 y(searc)n(h)h(is)i
(faster)f(or)g(more)g(e\013ectiv)n(e)g(than)g(an)n(y)h(of)f(the)g
(others,)h(but)f(on)g(the)g(other)f(hand)304 2542 y(the)d(patterns)e
(generated)f(b)n(y)21 b(the)e(sequen)n(tial)g(\()p Fy(LZ)o
Fs(\))h(algorithm)e(are)h(less)h(natural)e(for)h(term)304
2608 y(compression.)j(None)16 b(of)i(the)e(omitted)g(com)n(binations)g
(of)i(searc)n(h)e(and)h(enco)r(ding)e(tec)n(hniques)304
2674 y(p)r(erformed)g(an)n(y)k(b)r(etter)d(than)h(the)g(com)n(bination)
g(of)h(\()p Fy(ELZ)p Fs(\))g(or)g(\()p Fy(LP)o Fs(\))g(and)g(\()p
Fy(TD)o Fs(\).)370 2741 y(It)23 b(is)g(p)r(erhaps)d(not)i(v)n(ery)i
(surprising)d(that)h(the)g(Extended)e(Lemp)r(el-Ziv)j(algorithm)f(to-)
304 2807 y(gether)11 b(with)j(the)f(top-do)n(wn)g(enco)r(ding)e
(algorithm)i(w)n(ork)h(w)n(ell)g(\(at)f(times)g(they)g(come)g(close)g
(to)304 2874 y(a)18 b(2:1)g(compression)e(ratio.\))24
b(These)17 b(algorithms)g(are)h(based)f(on)h(a)g(near-optimal)f(sequen)
n(tial)304 2940 y(algorithm,)d(so)f(it)g(w)n(ould)h(b)r(e)e(reasonable)
f(to)i(conjecture)d(that)j(the)f(extended)f(algorithms)i(also)304
3007 y(b)r(e)18 b(near-optimal.)26 b(The)19 b(Lo)r(cal)f(Best-First)h
(enco)r(ding)e(algorithm)h(migh)n(t)h(su\013er)g(b)r(ecause)d(it)304
3073 y(probably)h(tends)g(to)g(use)g(more)h(di\013eren)n(t)f
(dictionary)g(en)n(tries)g(few)n(er)h(times)f(eac)n(h,)h(while)g(the)
304 3139 y(T)-5 b(op-Do)n(wn)19 b(enco)r(ding)e(tends)h(to)g(use)h
(only)g(v)n(ery)h(sp)r(eci\014c)d(en)n(tries.)26 b(The)19
b(Global)g(Best-First)304 3206 y(algorithm)14 b(ma)n(y)i(su\013er)f
(either)f(from)h(replacing)f(to)r(o)g(man)n(y)h(rare)g(patterns,)e(or)i
(not)g(replacing)304 3272 y(enough)h(common)i(ones,)f(dep)r(ending)f
(on)i(ho)n(w)h(w)n(ell)g(its)f(heuristic)f(is)i(balanced.)p
eop
%%Page: 43 45
43 44 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(43)985 283 y Fs(4.)31 b Ft(Pr)o(oof)21 b(Optimiza)l(tion)370
383 y Fs(Informally)-5 b(,)22 b(the)e(di\013erence)f(b)r(et)n(w)n(een)g
(optimized)h(data)f(and)h(compressed)e(data)i(is)h(that)304
450 y(compressed)10 b(data)i(m)n(ust)g(b)r(e)g(deco)r(ded)e(b)r(efore)h
(it)h(can)g(b)r(e)g(used,)h(while)g(optimized)f(data)f(can)h(b)r(e)304
516 y(in)n(terpreted)d(as)j(data)g(of)g(the)f(original)h(form)g(F)-5
b(rom)12 b(a)h(practical)d(p)r(oin)n(t)i(of)g(view,)i(this)e
(di\013erence)304 582 y(means)22 b(that)h(recipien)n(ts)f(of)h
(compressed)f(data)g(m)n(ust)i(\014rst)e(decompress)f(it,)26
b(whic)n(h)d(migh)n(t)304 649 y(require)h(substan)n(tial)g(memory)h
(and)g(time)g(resources,)g(whereas)f(recipien)n(ts)g(of)h(optimized)304
715 y(data)g(can)h(use)g(the)f(data)g(righ)n(t)i(a)n(w)n(a)n(y)g
(without)e(using)h(additional)g(resources.)47 b(It)26
b(could)304 782 y(b)r(e)e(m)n(uc)n(h)h(harder)e(for)h(co)r(de)f
(consumers)g(to)h(c)n(hec)n(k)h(compressed)d(pro)r(ofs)h(than)g
(optimized)304 848 y(pro)r(ofs,)14 b(so)h(in)h(the)e(PCC)h(system,)g
(it)h(w)n(ould)f(b)r(e)f(adv)m(an)n(tageous)f(for)h(co)r(de)g(pro)r
(ducers)e(to)j(exert)304 914 y(additional)h(e\013ort)f(to)i(\014nd)f
(optimized)g(pro)r(ofs)f(in)i(order)e(to)i(mak)n(e)g(the)f(co)r(de)f
(consumer's)g(job)304 981 y(easier.)370 1047 y(So)27
b(far)g(w)n(e)g(ha)n(v)n(e)h(considered)d(the)i(problem)f(of)h
(compressing)f(\014rst-order)f(terms;)31 b(for)304 1114
y(generalit)n(y)-5 b(,)22 b(w)n(e)f(ha)n(v)n(e)h(not)f(assumed)f(that)g
(an)n(y)h(particular)f(rewrite)g(rules)h(apply)g(to)g(them.)304
1180 y(Ho)n(w)n(ev)n(er,)c(if)g(the)f(terms)f(w)n(e)i(wish)f(to)g
(compress)f(do)h(ha)n(v)n(e)h(meaning)f(in)h(the)f(con)n(text)f(of)h
(some)304 1247 y(rewrite)11 b(system,)i(as)f(is)h(often)d(the)i(case,)h
(it)f(ma)n(y)h(b)r(e)e(p)r(ossible)h(to)f(express)g(the)h
(transformations)304 1313 y(needed)h(for)i(compression)e(solely)j(as)e
(instances)g(of)h(the)f(rules)h(of)g(the)f(rewrite)g(system.)23
b(T)-5 b(erms)304 1379 y(transformed)13 b(in)k(this)e(w)n(a)n(y)i
(could)f(b)r(e)f(called)h Fr(optimize)m(d)23 b Fs(rather)14
b(than)h(compressed,)g(b)r(ecause)304 1446 y(their)i(\\enco)r(dings")e
(are)j(in)g(fact)f(still)i Fr(valid)i(terms)j Fs(whic)n(h)19
b(ha)n(v)n(e)f(the)f(same)h(meaning)f(as)h(the)304 1512
y(original)g(terms)f(in)i(the)e(giv)n(en)h(seman)n(tic)g(con)n(text.)
370 1579 y(F)-5 b(or)20 b(example,)h(in)g(a)f(complete)e(rewrite)h
(system,)i(ev)n(ery)f(term)f(has)h(exactly)g(one)f(normal)304
1645 y(form.)47 b(Therefore,)26 b(the)f(relation)g Fl(\021)i
Fs(de\014ned)d(so)i(that)e(for)i(an)n(y)g(terms)f Fq(s)p
Fs(,)k Fq(t)p Fs(,)f Fq(s)g Fl(\021)h Fq(t)d Fs(if)g
Fq(s)304 1711 y Fs(and)20 b Fq(t)i Fs(ha)n(v)n(e)g(the)e(same)h(normal)
f(form)h(is)h(an)f(equiv)m(alence)f(relation,)h(inducing)g(a)g
(partition)304 1778 y(of)h Fq(T)8 b(er)r(m)513 1786 y
Fu(\006)p Fp(X)585 1778 y Fs(.)37 b(T)-5 b(erm)23 b(optimization)e
(could)g(b)r(e)h(though)n(t)e(of)i(as)g(an)g(attempt)e(to)i(\014nd)g
(for)g(a)304 1844 y(giv)n(en)e(term)g Fq(t)g Fs(a)h(smaller)f(\(or)f
(smallest\))h(term)f Fq(s)i Fs(with)f Fq(s)f Fl(\021)g
Fq(t)p Fs(.)31 b(Some)20 b(rules)f(migh)n(t)i(express)304
1911 y(\\abbreviations")10 b(or)i(simpli\014cations)g(that)f(can)h(b)r
(e)g(alw)n(a)n(ys)h(b)r(e)f(applied)g(to)g(a)h(term)e(to)h(shorten)304
1977 y(it.)30 b(F)-5 b(or)19 b(example,)i(in)f(the)f(arithmetic)f
(system,)i(there)e(could)i(b)r(e)f(a)g(rule)h Fq(x)13
b Fs(+)g(0)18 b Fl(!)h Fq(x)g Fs(whic)n(h)304 2044 y(alw)n(a)n(ys)j
(reduces)e(the)h(size)h(of)f(a)h(term.)34 b(More)21 b(general)f(rules)i
(lik)n(e)h(\()p Fq(\025x:s)p Fs(\))p Fq(t)d Fl(!)i Fs([)p
Fq(x)f Fl(7!)h Fq(t)p Fs(])p Fq(s)g Fs(in)304 2110 y(un)n(t)n(yp)r(ed)c
(or)g(higher-order)e(t)n(yp)r(ed)i(rewrite)g(systems)g(mak)n(e)h(it)g
(p)r(ossible)e(to)h(express)g(general)304 2176 y(pattern)23
b(substitution)g(explicitly)i(in)h(the)e(term,)j(and)d(so)h(pattern)e
(searc)n(h)h(and)h(enco)r(ding)304 2243 y(tec)n(hniques)11
b(can)h(b)r(e)f(useful)h(to)g(optimize)g(terms)g(in)h(suc)n(h)f
(systems.)22 b(In)12 b(general,)h(an)n(y)g(partition)304
2309 y(based)f(on)h(term)g(prop)r(erties)d(and)j(rewrite)f(rules)h
(could)g(b)r(e)g(a)g(con)n(text)f(for)h(term)f(optimization.)370
2376 y(Pro)r(ofs)17 b(expressed)f(in)j(LF)g(or)f(LF)1086
2384 y Fp(i)1123 2376 y Fs(are)f(one)h(example)g(in)h(whic)n(h)g
(optimization)e(migh)n(t)h(b)r(e)304 2442 y(p)r(ossible.)k(In)16
b(this)f(case,)g(the)f(meaning)h(whic)n(h)g(m)n(ust)h(b)r(e)e(preserv)n
(ed)g(is)h(the)g(t)n(yp)r(e)f(of)i(the)e(pro)r(of)304
2508 y(terms)k(rather)f(than)h(the)h(normal)f(form.)28
b(A)19 b(LF)g(pro)r(of)e(optimization)h(algorithm)h(could)f(use)304
2575 y Fq(\025)p Fs(-abstraction)d(to)i(abstract)d(out)j(rep)r(eated)d
(patterns,)h(reducing)h(pro)r(of)g(size.)24 b(The)17
b(resulting)304 2641 y(LF)d(terms)g(could)f(still)j(b)r(e)d(c)n(hec)n
(k)m(able)h(as)g(pro)r(ofs)f(with)h(the)g(same)f(t)n(yp)r(es)h(as)g
(the)g(original)g(pro)r(of)304 2708 y(terms,)k(but)f(require)h(less)g
(storage)e(space)h(or)h(c)n(hec)n(king)g(time.)25 b(W)-5
b(e)19 b(shall)f(see)g(in)h(this)f(section)304 2774 y(ho)n(w)h(suc)n(h)
f(optimizations)f(can)h(b)r(e)g(made)g(and)h(ho)n(w)f(term)g
(compression)f(migh)n(t)i(b)r(e)f(used)g(to)304 2841
y(optimize)f(pro)r(ofs.)304 3012 y(4.1.)32 b Fy(Pro)r(of)15
b(optimization)h(in)g(LF.)28 b Fs(Pure)13 b(LF)g(is)i(v)n(ery)f
(expressiv)n(e.)23 b(Since)13 b(pro)r(of)f(rules)h(are)304
3079 y(nothing)g(more)h(than)g(constan)n(ts)f(with)h(declared)f(t)n(yp)
r(es,)i(and)f(pro)r(ofs)f(are)h(simply)i(terms)d(built)304
3145 y(up)f(from)g(pro)r(of)f(rules,)i(it)g(is)f(p)r(erfectly)f
(acceptable)f(in)i(LF)h(to)e(use)h(higher-order)e Fq(\025)p
Fs(-abstraction)304 3211 y(to)22 b(parameterize)e(pro)r(ofs)h(b)n(y)j
(pro)r(of)d(rules.)38 b(A)23 b(pro)r(of)e(term)h Fq(P)31
b Fs(con)n(taining)21 b(sev)n(eral)i(appli-)304 3278
y(cations)18 b(of)i(the)f Ff(and)p 745 3278 18 3 v 21
w(el)h Fs(pro)r(of)e(rule)i(is)g Fq(\014)s Fs(-equiv)m(alen)n(t)g(to)f
(the)g(term)g Ff(\()p Fq(\025)p Fd(x)10 b Ff(:)p Fs(\005)p
Fd(A)g Ff(:o.)p Fs(\005)p Fd(B)f Ff(:o.pf)304 3344 y(\(and)29
b Fd(A)39 b(B)9 b Ff(\))30 b Fl(!)f Ff(pf)g Fd(A)10 b
Ff(.)p Fq(P)897 3324 y Fm(0)912 3344 y Ff(\))29 b(and)p
1060 3344 V 21 w(el)p Fs(,)16 b(where)e Fq(P)1368 3324
y Fm(0)1398 3344 y Fs(is)i(iden)n(tical)f(to)f Fq(P)23
b Fs(except)13 b(that)h(ev)n(ery)h(o)r(c-)304 3411 y(currence)h(of)23
b Ff(and)p 684 3411 V 21 w(el)d Fs(has)e(b)r(een)g(replaced)f(b)n(y)j
Fd(x)10 b Fs(.)27 b(Since)18 b(the)g(t)n(w)n(o)i(terms)e(are)g
Fq(\014)s Fs(-equiv)m(alen)n(t,)304 3477 y(they)f(ha)n(v)n(e)i(the)e
(same)h(t)n(yp)r(e,)g(and)f(so)h(the)g(pro)r(ofs)e(they)i(represen)n(t)
e(are)h(equiv)m(alen)n(t.)p eop
%%Page: 44 46
44 45 bop 304 151 a Fu(44)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)370 283 y Fs(Moreo)n(v)n(er,)c(w)n
(e)h(can)f Fq(\025)p Fs(-abstract)e(o)n(v)n(er)j Fr(arbitr)m(ary)24
b Fs(pro)r(of)15 b(rules,)i(to)f(obtain)f(functions)g(from)304
350 y(arbitrary)20 b(\(ev)n(en)g(in)n(v)m(alid\))j(pro)r(of)c(rules)i
(to)g(pro)r(ofs.)33 b(W)-5 b(e)21 b(could)g(nev)n(er)g(misuse)g(this)h
(abilit)n(y)304 416 y(to)d(pro)r(duce)f(represen)n(tations)f(of)j
(apparen)n(t)f(pro)r(ofs)f(of)i(fallacies,)h(ho)n(w)n(ev)n(er,)g(b)r
(ecause)d(to)i(do)304 483 y(so)c(w)n(e)i(w)n(ould)f(need)f(to)g(apply)h
(suc)n(h)g(a)g(function)e(to)i(an)g(ob)s(ject)e(that)h(represen)n(ted)e
(an)i(in)n(v)m(alid)304 549 y(pro)r(of)k(rule.)34 b(Suc)n(h)21
b(an)g(ob)s(ject)f(could)h(only)g(b)r(e)g(constructed)d(from)j(already)
g(de\014ned,)g(v)m(alid)304 616 y(pro)r(of)j(rules;)29
b(but)c(an)n(y)i(suc)n(h)e(construction)e(w)n(ould)j(corresp)r(ond)c
(to)k(a)f(deriv)m(ation)g(of)g(the)304 682 y(new)16 b(rule)h(in)h(the)e
(represen)n(ted)e(system.)24 b(Therefore)15 b(the)h(supp)r(osed)f(in)n
(v)m(alid)j(rule)f(m)n(ust)g(ha)n(v)n(e)304 748 y(b)r(een)g(v)m(alid.)
28 b(W)-5 b(e)19 b(can)f(therefore)f(pro)n(vide)h(equiv)m(alen)n(t)h
(pro)r(ofs)f(of)g(theorems)f(in)j(pure)e(LF)h(b)n(y)304
815 y(applying)f Fq(\025)p Fs(-abstractions)e(o)n(v)n(er)i
Fr(derivable)26 b Fs(pro)r(of)17 b(rules)g(to)h Fr(derivations)25
b Fs(of)18 b(those)f(rules.)370 881 y(In)24 b(general,)g(if)h(a)e(pro)r
(of)g(con)n(tains)f(man)n(y)j(rep)r(eated)c(patterns)g(of)j(pro)r(of)e
(rules,)j(w)n(e)f(can)304 948 y(p)r(erform)16 b(the)i
Fq(\025)p Fs(-abstraction)e(pro)r(cedure)f(outlined)j(ab)r(o)n(v)n(e)g
(to)f(pro)n(vide)h(a)h(represen)n(tation)c(of)304 1014
y(the)22 b(pro)r(of)f(whic)n(h)i(is)g(less)g(complex.)37
b(Eac)n(h)23 b(rep)r(etition)d(of)j(the)e(pattern)g(is)i(replaced)e(b)n
(y)j(a)304 1080 y(single)g(v)m(ariable)g(sym)n(b)r(ol,)j(and)d(the)g
(en)n(tire)g(pattern)e(only)j(needs)e(to)h(app)r(ear)f(once,)i(when)304
1147 y(the)17 b(parameterized)e(pro)r(of)i(is)h(applied)g(to)g(it,)g
(so)g(if)h(there)e(are)g(man)n(y)i(rep)r(etitions)c(of)j(a)g(large)304
1213 y(pattern,)24 b(the)g(new)h(equiv)m(alen)n(t)f(pro)r(of)f(will)j
(b)r(e)e(smaller.)45 b(When)24 b(this)g(transformation)e(is)304
1280 y(p)r(erformed,)d(w)n(e)h(\014rst)g(replace)f(o)r(ccurrences)d(of)
21 b(patterns)d(in)j(a)f(term)g(with)g(v)m(ariables,)h(then)304
1346 y Fq(\025)p Fs(-abstract)h(o)n(v)n(er)i Fq(x)h Fs(:)h
Fq(\034)6 b Fs(,)27 b(where)22 b Fq(\034)31 b Fs(is)25
b(the)e(t)n(yp)r(e)g(represen)n(ting)f(the)h(new)h(pro)r(of)f(rule,)i
(and)304 1413 y(\014nally)19 b(apply)h(the)e(resulting)g(function)g(to)
g(a)i(deriv)m(ation)e(of)h(the)f(pro)r(of)g(rule)h(\(that)e(is,)j(a)g
(LF)304 1479 y(term)d(of)h(t)n(yp)r(e)g Fq(\034)6 b Fs(.\))370
1545 y(As)22 b(in)h(pro)r(of)d(compression,)i(it)h(w)n(ould)f(b)r(e)g
(useful)f(to)h(ha)n(v)n(e)h(heuristic)e(estimates)f(of)i(the)304
1612 y(v)m(alue)g(of)h(a)g(pattern,)f(or)g(the)g(impro)n(v)n(emen)n(t)h
(in)g(pro)r(of)f(size)g(resulting)g(from)g(using)h(it.)38
b(T)-5 b(o)304 1678 y(de\014ne)17 b(one)g(suc)n(h)h(heuristic,)g(w)n(e)
h(will)g(mak)n(e)g(a)f(reasonable)f(assumption)f(that)i(v)m(ariables)f
(are)304 1745 y(assigned)e(a)i(\014xed)g(cost)e(\(sa)n(y)-5
b(,)18 b(1\).)24 b(If)17 b(the)f(n)n(um)n(b)r(er)g(of)h(sym)n(b)r(ols)g
(a)f(pattern)f(replaces)g(is)j Fq(S)s Fs(,)f(the)304
1811 y(size)f(of)g(its)g(t)n(yp)r(e)g(is)g Fq(T)8 b Fs(,)18
b(the)d(size)h(of)g(its)g(deriv)m(ation)f(is)i Fq(D)r
Fs(,)f(and)g(the)g(frequency)e(of)i(the)g(pattern)304
1877 y(in)24 b(the)e(pro)r(of)g(is)i Fq(F)8 b Fs(,)25
b(then)d(the)h(impro)n(v)n(emen)n(t)g(in)h(pro)r(of)e(measure)g(giv)n
(en)i(b)n(y)g(replacing)e Fq(F)304 1944 y Fs(o)r(ccurrences)14
b(of)k(the)f(pattern)f(is)1050 2044 y Fq(F)8 b Fs(\()p
Fq(S)14 b Fl(\000)f Fs(1\))e Fl(\000)h Fs(\()p Fq(D)i
Fs(+)e Fq(T)c Fs(\))p Fq(:)-1246 b Fs(\(2\))304 2144
y(W)-5 b(e)13 b(sa)n(v)n(e)g Fq(S)5 b Fl(\000)r Fs(1)14
b(sym)n(b)r(ols)f(for)f(eac)n(h)h(o)r(ccurrence)c(b)r(ecause)i(w)n(e)i
(remo)n(v)n(e)g Fq(S)j Fs(sym)n(b)r(ols)e(and)e(replace)304
2211 y(them)20 b(with)g(one)g(v)m(ariable)h(sym)n(b)r(ol,)h(with)e
(cost)g(1.)32 b(W)-5 b(e)21 b(will)h(alw)n(a)n(ys)g(b)r(e)e(able)g(to)g
(construct)304 2277 y(the)c(deriv)m(ation)g(from)g(the)g(pattern)f(b)n
(y)j Fq(\025)p Fs(-abstracting)d(o)n(v)n(er)i(the)f(free)g(pattern)f(v)
m(ariables,)i(so)304 2344 y(w)n(e)h(kno)n(w)h(that)e
Fq(S)h Fl(\024)e Fq(D)r Fs(.)24 b(W)-5 b(e)18 b(kno)n(w)h(that)1007
2444 y Fq(F)8 b Fs(\()p Fq(S)14 b Fl(\000)f Fs(1\))e
Fl(\000)h Fs(\()p Fq(D)i Fs(+)e Fq(T)c Fs(\))15 b Fq(>)g
Fs(0)304 2544 y(when)1070 2621 y Fq(F)8 b Fs(\()p Fq(S)14
b Fl(\000)f Fs(1\))h Fq(>)i(D)d Fs(+)g Fq(T)5 b(;)304
2709 y Fs(whic)n(h)18 b(is)h(true)e(whenev)n(er)1012
2786 y Fq(F)8 b Fs(\()p Fq(S)14 b Fl(\000)f Fs(1\))h
Fq(>)i Fs(\()p Fq(S)f Fl(\000)d Fs(1\))f(+)i Fq(T)304
2875 y Fs(b)r(ecause)j Fq(D)g(>)g(S)f Fl(\000)d Fs(1.)25
b(Therefore)1065 2975 y(\()p Fq(F)19 b Fl(\000)12 b Fs(1\)\()p
Fq(S)i Fl(\000)e Fs(1\))j Fq(>)g(T)-1223 b Fs(\(3\))304
3079 y(implies)19 b(\(2\))370 3145 y(This)d(form)n(ula)g(immediately)g
(tells)g(us)g(that)e(replacing)h(a)h(single)g(o)r(ccurrence)c(of)k(a)g
(pattern)304 3211 y(\()p Fq(F)29 b Fs(=)22 b(1\))g(or)g(replacing)f(a)i
(pattern)d(with)i(size)g Fq(S)k Fs(=)c(1)h(can)e(nev)n(er)h(b)r(e)g(b)r
(ene\014cial,)g(b)r(ecause)304 3278 y(the)f(left)i(side)f(of)h(the)e
(inequalit)n(y)i(is)h(zero)d(in)i(either)e(case.)37 b(This)23
b(mak)n(es)g(sense;)h(replacing)304 3344 y(patterns)19
b(do)r(es)i(add)g(a)h(\014xed)g(amoun)n(t)f(of)h(complexit)n(y)g(to)g
(the)f(pro)r(of,)h(whic)n(h)g(can)f(only)h(b)r(e)304
3411 y(o\013set)h(b)n(y)i(sa)n(vings)f(elsewhere)f(if)i(the)e(pattern)f
(replaced)h(is)i(large)e(enough)g(and)h(rep)r(eated)304
3477 y(often)17 b(enough.)p eop
%%Page: 45 47
45 46 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(45)370 283 y Fs(Ho)n(w)n(ev)n(er,)26 b(it)e(migh)n(t)g(b)r(e)f(the)g
(case)g(that)g(a)g(pattern)f(o)r(ccurs)g Fq(F)31 b Fs(times)24
b(in)g(a)g(pro)r(of,)g(but)304 350 y(few)n(er)17 b(than)f
Fq(F)25 b Fs(o)r(ccurrences)14 b(of)j(the)f(pattern)g(can)g(actually)h
(b)r(e)g(replaced)e(at)i(the)g(same)g(time)304 416 y(b)r(ecause)h(they)
i(o)n(v)n(erlap.)33 b(In)21 b(this)g(case)f(the)g(form)n(ula)h(ab)r(o)n
(v)n(e)f(is)i(to)r(o)d(optimistic.)33 b(It)20 b(can)g(b)r(e)304
483 y(corrected)12 b(b)n(y)k(replacing)e(the)h(frequency)f
Fq(F)23 b Fs(with)15 b(the)g(largest)f(n)n(um)n(b)r(er)h(of)g(o)r
(ccurrences)d(that)304 549 y(can)17 b(b)r(e)f(replaced)g(at)h(the)g
(same)g(time.)24 b(Determining)17 b(this)g(n)n(um)n(b)r(er)g(ma)n(y)h
(b)r(e)f(di\016cult,)h(so)f(in)304 616 y(general)e(w)n(e)j(will)g(use)f
(the)f(frequency)g(instead)g(to)g(\(o)n(v)n(er\)estimate)f(the)h
(utilit)n(y)i(of)f(a)g(pattern.)304 720 y Fy(Example)k(4.1.1.)26
b Fs(Consider)17 b(the)g(pattern)680 818 y Fq(P)23 b
Fs(=)15 b Ff(\(and)p 916 818 18 3 v 21 w(el)30 b Fy(A)f(B)g
Ff(\(and)p 1292 818 V 21 w(el)g(\(and)h Fy(A)f(B)p Ff(\))g
Fy(C)g(X)p Ff(\)\))p Fq(;)304 916 y Fs(where)17 b Fy(A)p
Fq(;)9 b(:)g(:)g(:)21 b(;)9 b Fy(X)19 b Fs(are)e(pattern)f(v)m
(ariables)i(whic)n(h)g(ma)n(y)h(ha)n(v)n(e)f(man)n(y)h(di\013eren)n(t)f
(v)m(alues.)24 b(The)304 982 y(term)441 1064 y Fq(\025)p
Fd(x)10 b Ff(:pf)29 b(\(and)g(\(and)h(\(and)f(P)g(Q\))g(R\))g(S\).)615
1131 y(\(and)p 734 1131 V 21 w(el)h(P)f(Q)790 1197 y(\(and)p
909 1197 V 21 w(el)g(\(and)g(P)g(Q\))g(R)964 1264 y(\(and)p
1083 1264 V 21 w(el)g(\(and)h(\(and)f(P)g(Q\))g(R\))g(S)g(x\)\)\)\))304
1346 y Fs(con)n(tains)20 b(t)n(w)n(o)i(o)r(ccurrences)c(of)k
Fq(P)8 b Fs(,)22 b(but)f(only)h(one)f(of)h(them)f(can)g(b)r(e)g
(replaced)f(at)h(an)n(y)h(one)304 1412 y(time)c(b)r(ecause)e(they)h(o)n
(v)n(erlap.)304 1516 y Fy(Example)k(4.1.2.)26 b Fs(Supp)r(ose)16
b(pro)r(of)h Fq(p)h Fs(con)n(tains)f(sev)n(en)h(indep)r(enden)n(t)d
(\(non-o)n(v)n(erlapping\))304 1583 y(instances)h(of)i
Fq(P)26 b Fs(as)18 b(ab)r(o)n(v)n(e.)24 b(Supp)r(ose)16
b(w)n(e)j Fq(\025)p Fs(-abstract)d(o)n(v)n(er)j(v)m(ariable)441
1665 y Ff(andell)29 b(:)g Fs(\005)p Fd(A)10 b Ff(:o.)p
Fs(\005)p Fd(B)f Ff(:o.)p Fs(\005)p Fd(C)g Ff(:o.)673
1731 y(pf)30 b(\(and)f(\(and)g Fd(A)39 b(B)9 b Ff(\))30
b Fd(C)9 b Ff(\))29 b Fl(!)h Ff(pf)f Fd(A)p Ff(,)304
1814 y Fs(replace)16 b(ev)n(ery)i(o)r(ccurrence)c(of)k
Fq(P)26 b Fs(with)17 b Ff(\(andell)30 b Fy(A)f(B)g(C)g(X)p
Ff(\))p Fs(,)19 b(and)f(apply)g(the)f(resulting)304 1880
y(function)g(to)g(the)g(deriv)n(ed)h(rule)441 1962 y
Fq(\025)p Fd(A)10 b Ff(:o.)p Fq(\025)p Fd(B)g Ff(:o.)p
Fq(\025)p Fd(C)g Ff(:o.)615 2029 y Fq(\025)p Fd(X)g Ff(:pf)29
b(\(and)h(\(and)f Fd(A)39 b(B)9 b Ff(\))29 b Fd(C)10
b Ff(\).)615 2095 y(\(and)p 734 2095 V 21 w(el)30 b Fd(A)38
b(B)h Ff(\(and)p 1094 2095 V 21 w(el)29 b(\(and)h Fd(A)38
b(B)10 b Ff(\))29 b Fd(C)39 b(X)9 b Ff(\)\).)304 2177
y Fs(W)-5 b(e)13 b(obtain)f(an)h(ob)s(ject)e(whic)n(h)i(is)h(equiv)m
(alen)n(t)f(to)f(our)g(original)h(pro)r(of.)22 b(As)12
b(an)h(estimate)f(of)g(size,)304 2244 y(w)n(e)j(will)i(coun)n(t)e(the)f
(sym)n(b)r(ols)i(app)r(earing)d(in)i(the)g(t)n(yp)r(e,)h(pattern,)e
(and)h(deriv)m(ation,)g(obtaining)304 2310 y Fq(T)23
b Fs(=)16 b(18,)f Fq(D)i Fs(=)e(26,)h Fq(S)j Fs(=)c(3.)24
b(So)15 b(according)e(to)h(our)h(form)n(ula)g(the)f(impro)n(v)n(emen)n
(t)i(from)e(making)304 2376 y(this)k(replacemen)n(t)e(should)h(b)r(e)h
(7\(3)11 b Fl(\000)h Fs(1\))g Fl(\000)g Fs(\(18)f(+)i(26\))h(=)h(14)d
Fl(\000)g Fs(44)j(=)g Fl(\000)p Fs(30)j(sym)n(b)r(ols;)h(that)e(is,)304
2443 y(the)f(size)h(should)g Fr(incr)m(e)m(ase)23 b Fs(b)n(y)18
b(30.)24 b(In)17 b(general,)g(the)f(sa)n(vings)i(for)e(replacing)g
Fq(F)25 b Fs(indep)r(enden)n(t)304 2509 y(o)r(ccurrences)15
b(of)24 b Ff(andell)c Fs(is)g(2)p Fq(F)g Fl(\000)13 b
Fs(44.)28 b(Abstracting)16 b(a)k(pro)r(of)e(rule)h(in)n(tro)r(duces)e
(a)i(one-time)304 2576 y(cost,)g(indep)r(enden)n(t)d(of)k(the)e(n)n(um)
n(b)r(er)h(of)g(pro)r(of)f(rules)h(replaced.)26 b(In)19
b(this)g(case,)g(the)g(b)r(ene\014ts)304 2642 y(of)25
b(replacemen)n(t)d(out)n(w)n(eigh)j(this)g(cost)f(only)h(when)f
Fq(F)34 b(>)27 b Fs(22,)f(b)r(ecause)d(the)h(cost)g(is)h(large)304
2709 y(compared)16 b(to)i(the)f(b)r(ene\014t)f(of)i(replacing)f(only)h
(a)g(few)g(instances.)304 2813 y(4.2.)32 b Fy(Pro)r(of)18
b(compression)h(and)g(optimization.)27 b Fs(As)15 b(w)n(e)h(ha)n(v)n(e)
g(seen,)g(terms)e(in)i(b)r(oth)f(LF)304 2879 y(and)21
b(LF)486 2887 y Fp(i)527 2879 y Fs(can)g(b)r(e)h(optimized)f(b)n(y)i
(replacing)d(o)r(ccurrences)f(of)j(patterns)d(with)j(v)m(ariables)g(or)
304 2946 y(constan)n(ts)14 b(that)h(ha)n(v)n(e)h(b)r(een)f(giv)n(en)i
(appropriate)c(t)n(yp)r(es)j(and)f(v)m(alues.)24 b(In)16
b(earlier)g(sections)e(w)n(e)304 3012 y(sa)n(w)19 b(ho)n(w)h(term)e
(compression)f(algorithms)i(could)f(b)r(e)h(used)f(to)h(compress)f(pro)
r(of)f(terms.)27 b(T)-5 b(o)304 3079 y(p)r(erform)16
b(pro)r(of)h(optimizations)g(w)n(e)h(could)g(use)f(man)n(y)i(of)f(the)f
(same)h(tec)n(hniques.)370 3145 y(The)13 b(pattern)f(searc)n(h)g(tec)n
(hniques)g(could)h(b)r(e)g(used)g(unc)n(hanged)e(to)i(detect)e
(patterns.)21 b(Ho)n(w-)304 3211 y(ev)n(er,)g(some)f(of)g(the)g
(patterns)e(disco)n(v)n(ered)i(b)n(y)h(the)f(pattern)e(searc)n(h)h
(algorithms)h(migh)n(t)g(not)304 3278 y(b)r(e)k(legal)h(patterns)d(for)
i(pro)r(of)g(optimization.)43 b(Using)25 b(some)f(patterns)e(migh)n(t)j
(require)g Fq(\025)p Fs(-)304 3344 y(abstracting)19 b(o)n(v)n(er)k(t)n
(yp)r(es,)g(whic)n(h)f(is)h(not)f(allo)n(w)n(ed)h(in)f(LF.)h(P)n
(atterns)d(migh)n(t)j(also)f(separate)304 3411 y(a)e(v)m(ariable)f(o)r
(ccurrence)e(from)j(its)g(binder)f(or)h(violate)f(the)h(LF)1645
3419 y Fp(i)1683 3411 y Fs(restriction)e(on)i(application)304
3477 y(heads.)j(Another)14 b(complication)i(is)h(that)e(t)n(yp)r(es)h
(m)n(ust)g(b)r(e)g(found)g(for)g(patterns)e(whic)n(h)j(are)f(to)p
eop
%%Page: 46 48
46 47 bop 304 151 a Fu(46)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(b)r(e)12
b(used)g(as)h(optimizations.)21 b(Suc)n(h)13 b(t)n(yp)r(es)f(m)n(ust)h
(b)r(e)f(general)g(enough)g(to)g(b)r(e)g(v)m(alid)i(ev)n(erywhere)304
350 y(the)j(patterns)f(are)h(to)h(b)r(e)f(replaced.)370
416 y(The)12 b(enco)r(ding)f(tec)n(hniques)g(also)h(require)g(c)n
(hanges)f(to)h(yield)h(appropriate)c(transformation)304
483 y(tec)n(hniques)j(for)h(optimization.)22 b(In)14
b Fq(\025)p Fs(-abstracting)e(o)n(v)n(er)i(pro)r(of)e(rules,)j(v)m
(ariables)e(with)g(appro-)304 549 y(priate)k(t)n(yp)r(es)h(are)g(in)n
(tro)r(duced)f(and)h(then)f(used)h(with)h(appropriate)d(argumen)n(ts.)
25 b(There)17 b(are)304 616 y(then)i(t)n(w)n(o)j(stages)d(to)h
(transformation:)27 b(rewriting)20 b(o)r(ccurrences)d(of)k(patterns,)e
(and)h(adding)304 682 y(the)d(necessary)f Fq(\025)p Fs(-abstractions)g
(and)h(applications)g(to)g(the)g(ro)r(ot)g(of)g(the)g(term.)24
b(The)18 b(rewrite)304 748 y(rules)h(used)f(for)i(o)r(ccurrences)15
b(are)k(no)g(longer)g(of)g(the)g(form)g Fq(\033)r Fs(\()p
Fy(y)1673 756 y Fu(1)1697 748 y Fq(;)9 b(:)g(:)g(:)20
b(;)9 b Fy(y)1862 756 y Fp(n)1892 748 y Fs(\))18 b Fl( )g
Fq(p)h Fs(but)g(of)g(the)304 815 y(form)c(\()p Fd(x)38
b Fy(y)555 823 y Fu(1)589 815 y Fl(\001)9 b(\001)g(\001)i
Fy(y)697 823 y Fp(n)726 815 y Fs(\))k Fl( )h Fq(p)p Fs(,)g(where)f
Fd(x)25 b Fs(is)16 b(an)f(LF)h(v)m(ariable.)23 b(Then)15
b(for)g(eac)n(h)g Fd(x)25 b Fs(used)15 b(in)h(rewrit-)304
881 y(ing)i(the)g(term,)g(a)h(redex)f Ff(\()p Fq(\025)p
Fd(x)10 b Ff(:)p Fq(\034)c Ff(.)p Fl(\001)p Ff(\))30
b Fq(p)18 b Fs(m)n(ust)h(enclose)e(the)h(term.)25 b(These)18
b(steps)f(parallel)h(the)304 948 y(enco)r(ding)e(and)i(dictionary)f
(pruning)g(phases)g(of)h(term)f(compression.)370 1014
y(Therefore,)d(the)g(compression)g(tec)n(hniques)g(m)n(ust)h(b)r(e)f
(mo)r(di\014ed)h(b)r(efore)e(they)h(can)h(b)r(e)f(used)304
1080 y(to)25 b(optimize)g(LF)h(terms.)47 b(Eac)n(h)25
b(of)h(the)f(problems)g(describ)r(ed)e(ab)r(o)n(v)n(e)j(seem)f(p)r
(ossible)g(to)304 1147 y(solv)n(e.)48 b(P)n(atterns)23
b(whic)n(h)j(cannot)e(b)r(e)h(used)g(as)h(optimizations)e(could)h(b)r
(e)g(generalized)f(to)304 1213 y(patterns)g(that)h(can,)j(or)e(they)f
(could)h(simply)h(not)f(b)r(e)f(used.)48 b(Also,)29 b(using)d
(higher-order)304 1280 y(generalization[21)m(],)21 b(w)n(e)f(could)f(a)
n(v)n(oid)h(disco)n(v)n(ering)g(patterns)d(that)h(separate)f(binders)i
(from)304 1346 y(b)r(ound)h(v)m(ariables.)34 b(The)21
b(problem)f(of)h(\014nding)g(t)n(yp)r(es)g(for)g(patterns)e(with)i(v)m
(ariables)g(of)g(un-)304 1413 y(kno)n(wn)e(t)n(yp)r(e)f(seems)g
(similar)i(to)e(t)n(yp)r(e)g(reconstruction)d(for)k(LF)1660
1421 y Fp(i)1697 1413 y Fs(terms,)g(whic)n(h)g(is)g(solv)n(ed)g(in)304
1479 y([19)o(].)24 b(Finally)-5 b(,)16 b(a)e(more)e(general)g(sc)n
(heme)h(for)g(optimizing)g(higher-order)e(terms)h(or)h(terms)g(with)304
1545 y(resp)r(ect)i(to)i(arbitrary)f(rewrite)g(systems)h(could)g(b)r(e)
g(adapted)e(to)i(the)g(particular)f(problem)h(of)304
1612 y(pro)r(of)f(optimization.)p eop
%%Page: 47 49
47 48 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(47)304 283 y Fy(Concluding)22 b(remarks)866 383 y Fs(1.)31
b Ft(Rela)l(ted)21 b(and)f(Fur)l(ther)i(W)n(ork)370 483
y Fs(T)-5 b(erm)18 b(rewriting,)f(data)g(compression,)g(and)g
(substitution)f(tree)g(indexing)i(are)f(all)i(closely)304
549 y(related)h(to)g(term)h(compression.)32 b(There)21
b(is)g(some)g(similarit)n(y)i(b)r(et)n(w)n(een)d(substitution)f(trees)
304 616 y(and)11 b Fr(tr)m(e)m(e)16 b(automata)j Fs(\(describ)r(ed)9
b(in)k([10)o(]\).)23 b(A)12 b(study)g(of)f(tree)g(structure)e(pattern)h
(en)n(umeration)304 682 y(can)21 b(b)r(e)g(found)h(in)g([5].)38
b(T)-5 b(erm)22 b(pattern)e(searc)n(h)h(is)h(similar)h(in)g(some)e
(resp)r(ects)f(to)h(common)304 748 y(sub)r(expression)i(elimination)k
([1].)49 b(If)27 b(terms)e(con)n(tain)h(man)n(y)g(rep)r(eated)e(closed)
h(subterms)304 815 y(\(that)20 b(is,)j(sub)r(expressions\))c(and)i(few)
h(rep)r(eated)c(op)r(en)j(patterns,)g(then)f(it)i(w)n(ould)g(b)r(e)f
(more)304 881 y(e\016cien)n(t)f(to)g(simply)i(use)f(CSE)f(without)g(b)r
(othering)f(to)h(lo)r(ok)h(for)f(general)g(patterns.)30
b(Also,)304 948 y(p)r(erhaps)17 b(CSE)j(metho)r(ds)e(could)h(b)r(e)g
(mo)r(di\014ed)g(for)g(use)h(in)g(pattern)d(searc)n(h.)29
b(Mac)n(hine)19 b(co)r(de)304 1014 y(can)14 b(ha)n(v)n(e)i(shared)e
(structure)f(that)h(can)h(b)r(e)g(disco)n(v)n(ered)f(b)n(y)i(program)e
(analysis;)j(an)e(approac)n(h)304 1080 y(to)22 b(compressing)f(mac)n
(hine)h(co)r(de)f(for)h(transmission)f(and)h(execution)f(is)j(found)d
(in)i([7].)39 b(An)304 1147 y(approac)n(h)18 b(to)i(compressing)f(syn)n
(tax)h(trees)f(for)h(transmission)f(and)h(run-time)g(optimization)304
1213 y(is)e(giv)n(en)h(in)f([9)q(].)370 1280 y(F)-5 b(urther)12
b(w)n(ork)i(in)f(the)g(area)f(of)h(term)f(compression)f(migh)n(t)j(in)n
(v)n(olv)n(e)h(\014nding)d(more)h(e\013ectiv)n(e)304
1346 y(or)j(e\016cien)n(t)h(tec)n(hniques)e(for)i(\014rst-order)d
(terms,)j(p)r(erhaps)e(b)n(y)i(extending)f(other)f(established)304
1413 y(compression)24 b(algorithms)i(to)g(op)r(erate)e(on)i(terms,)i
(com)n(bining)e(term)g(compression)f(with)304 1479 y(other)18
b(approac)n(hes,)g(or)h(\014ne-tuning)f(some)h(of)g(the)f(approac)n
(hes)g(giv)n(en)h(here.)28 b(It)19 b(w)n(ould)h(also)304
1545 y(b)r(e)c(in)n(teresting)f(to)h(study)g(the)g(e\013ects)f(of)h
(term)g(compression)f(tec)n(hniques)h(to)g(other)f(kinds)i(of)304
1612 y(term-structured)10 b(data.)22 b(Another)11 b(area)h(for)h
(further)f(study)g(migh)n(t)i(b)r(e)f(extending)f(\014rst-order)304
1678 y(tec)n(hniques)19 b(to)h(higher-order)f(or)h(t)n(yp)r(ed)g
(terms,)h(or)f(terms)g(with)h(resp)r(ect)d(to)i(more)g(general)304
1745 y(rewriting)15 b(systems.)24 b(Finally)-5 b(,)19
b(researc)n(h)c(could)h(b)r(e)g(done)g(in)h(the)f(area)g(of)g(term)g
Fr(optimization)304 1811 y Fs(as)k(en)n(visioned)g(in)g(Section)f(4,)i
(either)f(for)f(sp)r(eci\014c)g(systems)h(suc)n(h)g(as)g(LF,)g(or)g
(for)g(arbitrary)304 1877 y(t)n(yp)r(ed,)d(higher-order,)g(or)h
(general)e(rewrite)h(or)h(seman)n(tic)g(systems.)370
1944 y(Man)n(y)e(structures)d(of)j(in)n(terest)f(b)r(oth)f(to)i
(computer)e(scien)n(tists)h(and)g(mathematicians)f(can)304
2010 y(b)r(e)21 b(expressed)g(using)h(\014rst-order)e(terms.)36
b(Algebraic)21 b(and)h(sym)n(b)r(olic)g(expressions,)h(logical)304
2077 y(pro)r(ofs,)k(functional)f(programs)f(and)h(abstract)e(syn)n(tax)
j(trees)e(are)h(all)h(examples)f(of)h(data)304 2143 y(with)16
b(term)f(structure.)22 b(General,)16 b(e\013ectiv)n(e)g(term)g
(compression)e(tec)n(hniques)h(w)n(ould)i(pro)n(vide)304
2210 y(means)j(for)g(storing)g(and)h(transmitting)e(suc)n(h)h(ob)s
(jects)f(e\016cien)n(tly)-5 b(.)34 b(P)n(erhaps)19 b(more)i(imp)r(or-)
304 2276 y(tan)n(tly)-5 b(,)18 b(redundan)n(t)e(structure)e(disco)n(v)n
(ered)j(b)n(y)h(pattern)e(searc)n(h)g(tec)n(hniques)h(migh)n(t)g(iden)n
(tify)304 2342 y(p)r(ossible)23 b(co)r(de)g(optimizations)g(in)i(syn)n
(tax)f(trees)f(and)g(functional)g(programs,)i(in)n(teresting)304
2409 y(lemmas)d(and)h(theorems)d(in)j(logical)g(pro)r(ofs,)g(and)f(in)n
(teresting)f(functions)g(or)i(constan)n(ts)d(in)304 2475
y(sym)n(b)r(olic)e(terms.)370 2542 y(Un)n(til)23 b(no)n(w,)i(the)d
(abilit)n(y)i(and)f(resp)r(onsibilit)n(y)f(for)h(noticing)f(suc)n(h)g
(patterns)f(has)h(rested)304 2608 y(solely)e(with)g(h)n(umans,)h(who)e
(then)g(migh)n(t)i(automate)c(the)j(pro)r(cess)e(of)h(detecting)f
(\014xed)i(pat-)304 2674 y(terns)j(and)h(p)r(erforming)f(appropriate)f
(actions)i(suc)n(h)g(as)h(program)e(optimizations.)43
b(No)n(w,)304 2741 y(some)19 b(assistance)f(is)j(a)n(v)m(ailable)f(in)g
(the)f(form)h(of)g(pattern)d(searc)n(h)i(tec)n(hniques.)29
b(These)19 b(tec)n(h-)304 2807 y(niques)h(could)f(b)r(e)g(used)g(to)h
(help)g(in)n(v)n(estigators)f(disco)n(v)n(er)h(in)n(teresting)e
(examples)h(of)h(redun-)304 2874 y(dancy)15 b(in)h(data)e(whic)n(h)i(h)
n(umans)g(w)n(ould)f(b)r(e)g(unable)g(or)h(uninclined)f(to)g(analyze.)
23 b(Su\016cien)n(tly)304 2940 y(adv)m(anced)12 b(searc)n(h)g(tec)n
(hniques)h(migh)n(t)h(lead)f(to)h(automatic)e(optimized)g(compiler)i
(generation,)304 3007 y(impro)n(v)n(ed)j(computer-assisted)d
(mathematics,)h(or)i(impro)n(v)n(ed)g(automatic)f(theorem)f(pro)n(ving)
304 3073 y(tec)n(hniques.)23 b(Of)c(course,)e(m)n(uc)n(h)h(more)g
(researc)n(h)e(in)j(this)f(and)g(man)n(y)g(other)f(areas)g(w)n(ould)h
(b)r(e)304 3139 y(required)f(b)r(efore)f(suc)n(h)i(ev)n(en)n(tualities)
f(could)h(come)f(to)h(pass.)1091 3311 y(2.)31 b Ft(Conclusions)370
3411 y Fs(Sev)n(eral)19 b(term)g(compression)e(algorithms)i(ha)n(v)n(e)
h(b)r(een)e(presen)n(ted,)f(and)i(an)g(implemen)n(ta-)304
3477 y(tion)13 b(of)g(these)f(tec)n(hniques)g(has)h(pro)n(v)n(en)h(to)e
(b)r(e)h(e\013ectiv)n(e)g(in)h(compressing)e(terms)g(represen)n(ting)p
eop
%%Page: 48 50
48 49 bop 304 151 a Fu(48)230 b(JAMES)18 b(R.)h(CHENEY)272
b(CARNEGIE)18 b(MELLON)i(UNIVERSITY)304 283 y Fs(pro)r(ofs)e(in)j(a)f
(system)g(for)g(program)e(v)n(eri\014cation.)30 b(Exp)r(erimen)n(tal)19
b(results)g(sho)n(w)h(that)f(term)304 350 y(compression)e(can)h(b)r(e)f
(at)i(least)f(as)g(e\013ectiv)n(e)g(as)h(sequen)n(tial)f(compression,)f
(with)i(the)f(added)304 416 y(adv)m(an)n(tage)d(that)i(term)f
(compression)g(expressed)g(term)h(structural)e(redundancy)g(more)i
(nat-)304 483 y(urally)-5 b(.)25 b(F)-5 b(or)18 b(that)f(reason,)g(it)i
(should)e(b)r(e)g(p)r(ossible)g(to)h(extend)f(term)g(compression)f
(metho)r(ds)304 549 y(to)j(\014nd)g(optimized)g(pro)r(ofs)f(rather)g
(than)h(compressed)f(pro)r(ofs;)h(this)h(w)n(ould)g(not)f(alw)n(a)n(ys)
h(b)r(e)304 616 y(p)r(ossible)k(if)i(the)e(terms)g(w)n(ere)h(sequen)n
(tially)g(compressed.)43 b(Optimized)25 b(pro)r(ofs)e(w)n(ould)i(b)r(e)
304 682 y(c)n(hec)n(k)m(able)17 b(without)h(requiring)f(deco)r(ding,)g
(and)h(so)g(w)n(ould)h(b)r(e)e(an)h(impro)n(v)n(emen)n(t)h(o)n(v)n(er)f
(com-)304 748 y(pressed)e(pro)r(ofs)h(in)h(some)g(situations.)370
815 y(T)-5 b(erm)25 b(compression)d(is)j(a)f(promising)g(tec)n(hnique)f
(for)h(compressing)f(\014rst-order)f(terms.)304 881 y(Before)12
b(the)h(v)m(alue)g(of)h(term)e(compression)g(can)h(b)r(e)g
(established,)g(it)h(is)g(necessary)d(to)i(sho)n(w)h(that)304
948 y(it)23 b(can)f(successfully)f(compress)g(man)n(y)i(di\013eren)n(t)
f(kinds)h(of)g(terms.)37 b(Also,)24 b(the)e(tec)n(hniques)304
1014 y(giv)n(en)k(here)g(are)f(not)h(v)n(ery)g(e\016cien)n(t,)i(and)e
(further)f(study)g(is)i(needed)e(to)g(\014nd)h(impro)n(v)n(ed)304
1080 y(v)n(ersions)18 b(or)f(other,)g(b)r(etter)f(approac)n(hes.)988
1205 y(3.)31 b Ft(A)n(ckno)o(wledgements)370 1305 y Fs(The)25
b(author)f(wishes)i(to)f(thank)f(P)n(eter)h(Lee,)i(George)d(Necula,)j
(F)-5 b(rank)26 b(Pfenning,)g(and)304 1371 y(P)n(eter)19
b(Andrews)g(for)h(their)g(helpful)g(commen)n(ts)g(and)g(advice)g(in)h
(conducting)d(this)i(researc)n(h)304 1437 y(and)d(writing)h(this)g
(thesis.)1139 1562 y Ft(References)327 1651 y Fx([1])23
b(John)15 b(Co)q(c)o(k)o(e.)e(Global)h(common)g(sub)q(expression)f
(elimination.)i Fw(SIGPLAN)h(Notic)n(es)p Fx(,)e(5\(7\):20{24,)e(July)
400 1706 y(1970.)i Fw(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)i(a)g(Symp)n
(osium)g(on)g(Compiler)g(Optimization)p Fx(.)327 1761
y([2])23 b(Arth)o(ur)f(L.)f(Delc)o(her)g(and)f(Simon)h(Kasif.)e
(E\016cien)o(t)i(parallel)f(term)h(matc)o(hing)g(and)f(an)o
(ti-uni\014cation.)400 1817 y Fw(Journal)d(of)g(A)o(utomate)n(d)g(R)n
(e)n(asoning)p Fx(,)d(9\(3\):391{406,)e(Decem)o(b)q(er)k(1992.)327
1872 y([3])23 b(N.)14 b(Dersho)o(witz)e(and)h(J.)g(P)l(.)g(Jouannaud.)f
(Rewrite)h(systems.)f(In)h(J.)g(v)m(an)g(Leeu)o(w)o(en,)g(editor,)h
Fw(Handb)n(o)n(ok)g(of)400 1927 y(The)n(or)n(etic)n(al)19
b(Computer)g(Scienc)n(e)e(\(V)l(ol.)k(B:)e(F)l(ormal)i(Mo)n(dels)e(and)
h(Semantics\))p Fx(,)f(Amsterdam,)g(1990.)400 1983 y(North-Holland.)d
(T)l(o)f(app)q(ear.)327 2038 y([4])23 b(Nac)o(h)o(um)13
b(Dersho)o(witz.)e(A)i(taste)f(of)h(rewriting.)g(T)l(ec)o(hnical)f(rep)
q(ort)h(93-5,)f(Leibnitz)h(Cen)o(ter)g(for)g(Researc)o(h)400
2093 y(in)j(Computer)h(Science,)e(Hebrew)h(Univ)o(ersit)o(y)l(,)g
(Jerusalem,)f(Israel,)h(1993.)327 2149 y([5])23 b(Nac)o(h)o(um)17
b(Dersho)o(witz)f(and)h(Shm)o(uel)g(Zaks.)f(P)o(atterns)g(in)h(trees.)g
Fw(Ninth)h(Col)r(lo)n(quium)g(on)g(T)l(r)n(e)n(es)g(in)f(A)o(l-)400
2204 y(gebr)n(a)g(and)g(Pr)n(o)n(gr)n(amming)p Fx(,)d(pages)h(93{102,)e
(Marc)o(h)i(1984.)327 2259 y([6])23 b(E.)d(W.)f(Dijkstra.)g(Guarded)g
(commands,)g(nondeterminancy)h(and)f(formal)g(deriv)m(ation)g(of)g
(programs.)400 2315 y Fw(CA)o(CM)p Fx(,)d(18\(8\):453{457,)11
b(August)16 b(1975.)327 2370 y([7])23 b(Jens)e(Ernst,)j(William)d(Ev)m
(ans,)h(Christopher)g(W.)g(F)l(raser,)g(Stev)o(en)f(Lucco,)h(and)g(T)l
(o)q(dd)f(A.)h(Pro)q(ebst-)400 2425 y(ing.)17 b(Co)q(de)f(compression.)
g(In)g Fw(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(the)h(A)o(CM)f(SIGPLAN)h
(Confer)n(enc)n(e)e(on)i(Pr)n(o)n(gr)n(amming)400 2481
y(L)n(anguage)d(Design)h(and)g(Implementation)g(\(PLDI-97\))p
Fx(,)h(v)o(olume)d(32,)g(5)g(of)h Fw(A)o(CM)h(SIGPLAN)h(Notic)n(es)p
Fx(,)400 2536 y(pages)e(358{365,)d(New)k(Y)l(ork,)g(June15{18)d(1997.)h
(A)o(CM)i(Press.)327 2591 y([8])23 b(F)l(altings.)17
b(The)h(pro)q(of)g(of)g(fermat's)g(last)f(theorem)h(b)o(y)g(R.)f(ta)o
(ylor)g(and)h(A.)g(wiles.)f Fw(NOTICES:)j(Notic)n(es)400
2647 y(of)d(the)g(A)o(meric)n(an)f(Mathematic)n(al)g(So)n(ciety)p
Fx(,)f(42,)g(1995.)327 2702 y([9])23 b(M.)e(F)l(ranz.)f(Adaptiv)o(e)g
(compression)f(of)h(syn)o(tax)f(trees)h(and)g(iterativ)o(e)g(dynamic)g
(co)q(de)f(optimization:)400 2758 y(Tw)o(o)26 b(basic)f(tec)o
(hnologies)f(for)i(mobile)g(ob)s(ject)f(systems.)g Fw(L)n(e)n(ctur)n(e)
f(Notes)j(in)f(Computer)g(Scienc)n(e)p Fx(,)400 2813
y(1222:263{??,)13 b(1997.)304 2868 y([10])22 b(F)l(erenc)16
b(G)o(\023)-22 b(ecseg)13 b(and)j(Magn)o(us)e(Stein)o(b)o(y)l(.)i
Fw(T)l(r)n(e)n(e)g(A)o(utomata)p Fx(.)g(Ak)m(ad)o(\023)-22
b(emiai)15 b(Kiad\023)-24 b(o,)14 b(Budap)q(est,)i(1984.)304
2924 y([11])22 b(P)o(eter)g(Graf.)f(Substitution)i(tree)e(indexing.)g
(In)h(Jieh)f(Hsiang,)h(editor,)h Fw(Pr)n(o)n(c)n(e)n(e)n(dings)d(of)i
(the)h(6th)f(In-)400 2979 y(ternational)17 b(Confer)n(enc)n(e)e(on)i(R)
n(ewriting)d(T)l(e)n(chniques)h(and)j(Applic)n(ations)f(\(R)l(T)l
(A-95\))p Fx(,)g(v)o(olume)e(914)f(of)400 3034 y Fw(LNCS)p
Fx(,)i(pages)e(117{131,)f(Kaiserslautern,)h(German)o(y)l(,)i(April)g
(5{7)f(1995.)e(Springer-V)l(erlag.)304 3090 y([12])22
b(P)o(eter)11 b(Graf.)g Fw(T)l(erm)i(indexing)p Fx(,)e(v)o(olume)f
(1053)f(of)h Fw(L)n(e)n(ctur)n(e)g(Notes)j(in)f(A)o(rti\014cial)g
(Intel)r(ligenc)n(e)f(and)i(L)n(e)n(ctur)n(e)400 3145
y(Notes)18 b(in)e(Computer)h(Scienc)n(e)p Fx(.)d(Springer-V)l(erlag)h
(Inc.,)h(New)g(Y)l(ork,)g(NY,)g(USA,)g(1996.)304 3200
y([13])22 b(Rob)q(ert)15 b(Harp)q(er,)g(F)l(urio)f(Honsell,)h(and)f
(Gordon)g(Plotkin.)g(A)g(framew)o(ork)g(for)h(de\014ning)f(logics.)f
(In)i Fw(Sym-)400 3256 y(p)n(osium)i(on)g(L)n(o)n(gic)f(in)g(Computer)g
(Scienc)n(e,)f(Ithac)n(a,)i(NY)p Fx(,)f(pages)f(194{204.)d(IEEE,)k
(June)g(1987.)304 3311 y([14])22 b(G.)e(Held)g(and)g(T.)g(R.)f
(Marshall.)g Fw(Data)i(Compr)n(ession:)30 b(T)l(e)n(chniques)19
b(and)i(Applic)n(ations:)29 b(Har)n(dwar)n(e)400 3366
y(and)18 b(Softwar)n(e)d(Consider)n(ations.)h Fx(Chic)o(hester,)f(UK,)h
(1991.)304 3422 y([15])22 b(C.)h(A.)g(R.)f(Hoare.)g(An)h(axiomatic)e
(basis)h(for)g(computer)h(programming.)f Fw(Communic)n(ations)g(of)h
(the)400 3477 y(A)o(CM)p Fx(,)16 b(26\(1\):53{56,)c(Jan)o(uary)j(1983.)
p eop
%%Page: 49 51
49 50 bop 895 151 a Fu(FIRST-ORDER)20 b(TERM)e(COMPRESSION)547
b(49)304 283 y Fx([16])22 b(Da)o(vid)10 b(A.)i(Hu\013man.)f(A)g(metho)q
(d)h(for)f(the)g(construction)g(of)g(minim)o(um-redundancy)g(co)q(des.)
f Fw(Pr)n(o)n(c)n(e)n(e)n(dings)400 339 y(of)17 b(the)g(IRE)p
Fx(,)f(40\(9\):1098{1101)o(,)c(Septem)o(b)q(er)k(1952.)304
394 y([17])22 b(G.)f(M.)g(Kup)q(er,)i(K.)e(W.)g(McAlo)q(on,)h(K.)f(V.)g
(P)o(alem,)g(and)g(K.)g(J.)g(P)o(erry)l(.)g(An)g(e\016cien)o(t)g
(algorithm)g(for)400 450 y(an)o(ti-uni\014cation.)16
b(T)l(ec)o(hnical)f(Rep)q(ort)g(R)o(C)g(14065,)f(IBM)i(Y)l(orkto)o(wn)f
(Heigh)o(ts,)g(F)l(ebruary)h(1988.)304 505 y([18])22
b(George)15 b(C.)g(Necula.)g(Pro)q(of-carrying)g(co)q(de.)g(In)g
Fw(Confer)n(enc)n(e)g(R)n(e)n(c)n(or)n(d)g(of)h(POPL)h('97:)22
b(The)16 b(24th)i(A)o(CM)400 560 y(SIGPLAN-SIGA)o(CT)i(Symp)n(osium)f
(on)h(Principles)g(of)f(Pr)n(o)n(gr)n(amming)f(L)n(anguages)p
Fx(,)h(pages)f(106{119,)400 616 y(P)o(aris,)d(F)l(rance,)h(15{17)d(Jan)
o(uary)i(1997.)304 671 y([19])22 b(George)e(C.)h(Necula)g(and)f(P)o
(eter)h(Lee.)g(E\016cien)o(t)g(represen)o(tation)g(and)f(v)m(alidation)
g(of)h(logical)e(pro)q(ofs.)400 726 y(T)l(ec)o(hnical)d(Rep)q(ort)f
(CS-TR)g(97-172,)e(Carnegie)j(Mellon)f(Univ)o(ersit)o(y)l(,)g(1997.)304
782 y([20])22 b(M.)c(S.)f(P)o(aterson)f(and)h(M.)g(N.)h(W)l(egman.)f
(Linear)g(uni\014cation.)g(In)h Fw(Confer)n(enc)n(e)e(R)n(e)n(c)n(or)n
(d)h(of)h(the)g(Eighth)400 837 y(A)o(nnual)g(A)o(CM)h(Symp)n(osium)e
(on)i(The)n(ory)g(of)f(Computing)p Fx(,)f(pages)f(181{186,)f(Hershey)l
(,)i(P)o(ennsylv)m(ania,)400 892 y(3{5)e(Ma)o(y)g(1976.)304
948 y([21])22 b(F)l(rank)16 b(Pfenning.)h(Elf:)22 b(A)17
b(language)d(for)j(logic)e(de\014nition)i(and)f(v)o(eri\014ed)g
(metaprogramming.)g(In)g Fw(Pr)n(o-)400 1003 y(c)n(e)n(e)n(dings,)d(F)l
(ourth)h(A)o(nnual)f(Symp)n(osium)h(on)f(L)n(o)n(gic)g(in)g(Computer)h
(Scienc)n(e)p Fx(,)d(pages)g(313{322,)f(Asilomar)400
1058 y(Conference)16 b(Cen)o(ter,)g(P)o(aci\014c)e(Gro)o(v)o(e,)h
(California,)g(5{8)f(June)i(1989.)d(IEEE)j(Computer)g(So)q(ciet)o(y)f
(Press.)304 1114 y([22])22 b(F)l(rank)15 b(Pfenning.)g(Uni\014cation)g
(and)f(an)o(ti-uni\014cation)g(in)h(the)g(calculus)f(of)h
(constructions.)f(In)h Fw(Pr)n(o)n(c)n(e)n(e)n(d-)400
1169 y(ings,)j(Sixth)g(A)o(nnual)g(IEEE)h(Symp)n(osium)f(on)g(L)n(o)n
(gic)f(in)g(Computer)h(Scienc)n(e)p Fx(,)e(pages)g(74{85,)f(Amster-)400
1224 y(dam,)h(The)g(Netherlands,)g(15{18)d(July)j(1991.)e(IEEE)h
(Computer)i(So)q(ciet)o(y)e(Press.)304 1280 y([23])22
b(Barry)h(K.)e(Rosen.)g(T)l(ree-manipulating)h(systems)f(and)h(Ch)o
(urc)o(h-Rosser)e(theorems.)i Fw(Journal)h(of)f(the)400
1335 y(A)o(CM)p Fx(,)16 b(20\(1\):160{187,)11 b(Jan)o(uary)k(1973.)304
1390 y([24])22 b(Ric)o(hard)10 b(T)l(a)o(ylor)g(and)h(Andrew)g(Wiles.)f
(Ring-theoretic)g(prop)q(erties)i(of)e(certain)h(Hec)o(k)o(e)f
(algebras.)f Fw(A)o(nnals)400 1446 y(of)17 b(Mathematics)p
Fx(,)f(142:553{57)o(2,)c(1995.)304 1501 y([25])22 b(Andrew)16
b(Wiles.)f(Mo)q(dular)g(elliptic)g(curv)o(es)g(and)f(F)l(ermat's)h
(Last)g(Theorem.)g Fw(A)o(nnals)h(of)h(Mathematics)p
Fx(,)400 1556 y(142:443{551,)11 b(1995.)304 1612 y([26])22
b(J.)c(Ziv)f(and)g(A.)g(Lemp)q(el.)h(A)g(univ)o(ersal)e(algorithm)h
(for)h(sequen)o(tial)e(data)h(compression.)f Fw(IEEE)j(T)l(r)n(ans.)400
1667 y(Inf.)e(The)n(ory)p Fx(,)e(IT-23,)g(MA)l(Y1977)f(337-343.)p
eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF