%!PS-Adobe-2.0
%%Creator: dvips 5.526 Copyright 1986, 1994 Radical Eye Software
%%Title: Minlog7.dvi
%%CreationDate: Tue Apr 28 12:51:00 1998
%%Pages: 30
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: Times-Roman Symbol Times-Italic CourierNarrow
%%+ Times-Bold Helvetica
%%EndComments
%DVIPSCommandLine: /sw/tex/bin/Dvips Minlog7.dvi
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1998.04.28:1250
%%BeginProcSet: tex.pro
/TeXDict 250 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 4 get round 4 exch put dup dup 5 get
round 5 exch put 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 add]{
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 showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
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 product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{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
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
%%BeginFont: Times-Roman
% @psencodingfile{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
% version = "0.6",
% date = "14 April 1995",
% filename = "8r.enc",
% email = "kb@cs.umb.edu",
% address = "135 Center Hill Rd. // Plymouth, MA 02360",
% codetable = "ISO/ASCII",
% checksum = "xx",
% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
% }
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there down to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/.notdef /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndFont
%%BeginFont: CourierNarrow
%!PS-AdobeFont-1.0: Courier 002.004
%%CreationDate: Tue Sep 17 07:47:14 1991
%%VMusage: 31037 39405
11 dict begin
/FontInfo 10 dict dup begin
/version (002.004) readonly def
/Notice (Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved.) readonly def
/FullName (CourierNarrow) readonly def
/FamilyName (CourierNarrow) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /CourierNarrow def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /grave put
dup 1 /acute put
dup 2 /circumflex put
dup 3 /tilde put
dup 4 /dieresis put
dup 5 /hungarumlaut put
dup 6 /ring put
dup 7 /caron put
dup 8 /breve put
dup 9 /macron put
dup 10 /dotaccent put
dup 11 /cedilla put
dup 12 /ogonek put
dup 13 /quotesinglbase put
dup 14 /guilsinglleft put
dup 15 /guilsinglright put
dup 16 /quotedblleft put
dup 17 /quotedblright put
dup 18 /quotedblbase put
dup 19 /guillemotleft put
dup 20 /guillemotright put
dup 21 /endash put
dup 22 /emdash put
dup 23 /cwm put
dup 24 /perthousand put
dup 25 /dotlessi put
dup 26 /dotlessj put
dup 27 /ff put
dup 28 /fi put
dup 29 /fl put
dup 30 /ffi put
dup 31 /ffl put
dup 32 /space put
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk 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 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at 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 81 /Q 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 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore 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 /braceleft put
dup 124 /bar put
dup 125 /braceright put
dup 126 /asciitilde put
dup 127 /sfthyphen put
dup 128 /Abreve put
dup 129 /Aogonek put
dup 130 /Cacute put
dup 131 /Ccaron put
dup 132 /Dcaron put
dup 133 /Ecaron put
dup 134 /Eogonek put
dup 135 /Gbreve put
dup 136 /Lacute put
dup 137 /Lcaron put
dup 138 /Lslash put
dup 139 /Nacute put
dup 140 /Ncaron put
dup 141 /Eng put
dup 142 /Ohungarumlaut put
dup 143 /Racute put
dup 144 /Rcaron put
dup 145 /Sacute put
dup 146 /Scaron put
dup 147 /Scedilla put
dup 148 /Tcaron put
dup 149 /Tcedilla put
dup 150 /Uhungarumlaut put
dup 151 /Uring put
dup 152 /Ydieresis put
dup 153 /Zacute put
dup 154 /Zcaron put
dup 155 /Zdotaccent put
dup 156 /IJ put
dup 157 /Idotaccent put
dup 158 /dcroat put
dup 159 /section put
dup 160 /abreve put
dup 161 /aogonek put
dup 162 /cacute put
dup 163 /ccaron put
dup 164 /dcaron put
dup 165 /ecaron put
dup 166 /eogonek put
dup 167 /gbreve put
dup 168 /lacute put
dup 169 /lcaron put
dup 170 /lslash put
dup 171 /nacute put
dup 172 /ncaron put
dup 173 /eng put
dup 174 /ohungarumlaut put
dup 175 /racute put
dup 176 /rcaron put
dup 177 /sacute put
dup 178 /scaron put
dup 179 /scedilla put
dup 180 /tcaron put
dup 181 /tcedilla put
dup 182 /uhungarumlaut put
dup 183 /uring put
dup 184 /ydieresis put
dup 185 /zacute put
dup 186 /zcaron put
dup 187 /zdotaccent put
dup 188 /ij put
dup 189 /exclamdown put
dup 190 /questiondown put
dup 191 /sterling put
dup 192 /Agrave put
dup 193 /Aacute put
dup 194 /Acircumflex put
dup 195 /Atilde put
dup 196 /Adieresis put
dup 197 /Aring put
dup 198 /AE put
dup 199 /Ccedilla put
dup 200 /Egrave put
dup 201 /Eacute put
dup 202 /Ecircumflex put
dup 203 /Edieresis put
dup 204 /Igrave put
dup 205 /Iacute put
dup 206 /Icircumflex put
dup 207 /Idieresis put
dup 208 /Eth put
dup 209 /Ntilde put
dup 210 /Ograve put
dup 211 /Oacute put
dup 212 /Ocircumflex put
dup 213 /Otilde put
dup 214 /Odieresis put
dup 215 /OE put
dup 216 /Oslash put
dup 217 /Ugrave put
dup 218 /Uacute put
dup 219 /Ucircumflex put
dup 220 /Udieresis put
dup 221 /Yacute put
dup 222 /Thorn put
dup 223 /SS put
dup 224 /agrave put
dup 225 /aacute put
dup 226 /acircumflex put
dup 227 /atilde put
dup 228 /adieresis put
dup 229 /aring put
dup 230 /ae put
dup 231 /ccedilla put
dup 232 /egrave put
dup 233 /eacute put
dup 234 /ecircumflex put
dup 235 /edieresis put
dup 236 /igrave put
dup 237 /iacute put
dup 238 /icircumflex put
dup 239 /idieresis put
dup 240 /eth put
dup 241 /ntilde put
dup 242 /ograve put
dup 243 /oacute put
dup 244 /ocircumflex put
dup 245 /otilde put
dup 246 /odieresis put
dup 247 /oe put
dup 248 /oslash put
dup 249 /ugrave put
dup 250 /uacute put
dup 251 /ucircumflex put
dup 252 /udieresis put
dup 253 /yacute put
dup 254 /thorn put
dup 255 /germandbls put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.000833 0 0 0.001 0 0] readonly def
/FontBBox{-28 -250 628 805}readonly def
currentdict end
currentfile eexec
DDDA91EE8112CD852F360DF32CA95816B8B036D16893DEF88FFA3059154C4BD6CBB121F94266
DDC61D57A341AA48EE5D4EFCCE89EF5B492314353763E1C1547EEA033B82BE97DD7B86C3EEC9
C847E6CE104C40FDCB6E143C221A71C2EB7D652C4E17D34438C9B2E3DC7580F497AC697EA20A
C096930FE90934EA8FFE999902BA675D4BDD86BDC40F6AE6D0A5DCC64F26C8703131E678AA67
8F6D7D1DDDAF79B6A603DFFC353DCA690FE71815C3464DC52FA6D5CC6BDC090851D8118C6CDD
E2D81385AB679F224EDE8537232788317F644FE6A242E7AEB28F67E0A6BE02099CE760DC542E
8692603D0BA4F8E839A3C2FFDA1B80BAAEB4F715F7D0C49B46970429398FF464854F82086777
B7FFA173D209000C9BCE1DEFCE6B3F198249399E80CD49D4EA1266626F5767341078400DD59E
E63B7F336C834182672FAED987820A5F2219D1D83B0081D76990AAB0C805C00434BE0B0A7E88
B8745DAD53C8B6DDD71AFE0EB038D47E897F7EA221E4DC443EC97C0B46EC6127F7016B25DD5C
6DCCA3441C80B8B00403956AB784505A197BE9F2F3A9C4C3B2CDA2F2DC05905737AC01918266
2956C2AAD372459FD601156E703F574D5C1BAD0879B090B1C886D51050018DD4D7B97CAA143E
34BF0D40AE62200ECAA2D780F862BD5C667959F77F4C2FC1E2F8F0C5D8B8C040B68B7B65534D
46A467D45F45F0A83B9BD159908A03B94B2E4699B2C3D71116B85B9618B7D934F5C65583DC32
AE0A18901E19E3CC4853CCEDBFAE6567E398655B2134C83B1A9A2B2B8C0070BA573B31391F78
C828E887F38FE6AAF2C5D9EBF93379FED01F04E741FFF93B37CC9CE805BA7E8393B84444665F
2A597E8217C678C6F565FE2CDC944A0A8F9E0CB4721BAF45D3D49758893A1EF8EA925740B668
27F563D614917368EEEA3025349EECD5CD8FD3C0E8B19EA82B8B1C12E529DC59E72E80084E34
B722FAEB743082AF452099A325C9BB57616B82225BC148C0DA9D49032B0223DE098194CD3E94
EC2D96233A6E0913B5946476904D0D24C371745AC0072A4F19C822A7C2AEB19753A423547956
0E3A24D5403B0C15D5E7BBE6D593140795765C55E9A8ED440E08F2CB6390BCA50BA8FCC0EE2E
7FD028E41A1CB0660830415B0E8DE8054BF14BCF0A1A0B0AACA776FEB3E09C7E4F4D6814A9FF
D4DC7D75BA6472D7132773F79DB9A7929619003800392FB5902E3AFDE17BFEE55A7F89862A57
A4B3B956B33949285DDEFDF4B2FB1222C0568598DB9B4DD5F139285EB05C30D081DBF19D48D8
4D7BAC4291730A84186432298F8F6B71321FE2D576278B391EF757108BC32B54A5278EA004D9
7A5E7B7548DFD9556E32F05BEA2C0C0A2F58E1E604DB7ACA9A6F6CBF2F308A3D623F60D7EA0D
C69F5FFD978E6BD454B4ABDCAFA152DBD6EB82165083AABC249436A376E0D29D186B179BD2EE
07A9E35CFADCEB1B06EF5E1FC85894B83D5DE35592E6218A3743852749984430763DDE832EC0
E6F8396B4D44C4D433611A7765EDC6B962E10254CDD083FCE1A2B350F4D4F36EA1EF675A72FA
6533F0042BC5112AD28C6E51552700C12EE6B853FC95AB3696F0BA613371C827C673F6FB0B7F
505F5B55DF5BACD69EFD05FA35EAA36656A83915940E6AF085E14883EB6B04F5B6942C322A85
B522599C8B9134111D81EC193E861989AF2AF0832A5C0705CE24158E7335357A7868EB20C715
42F911F1FD8F5AB24A06C058C50CB79503248FEC3C4DC20D1779C8C7E6D095D5FAB4267A7844
BF274017D16771C57EE097B9A92D93B59CBC1BFCC76B6648EFA4DB0EF290303E343C10B39F5E
80E32793DDC7E8EAE8A7B469CE26352383ED7BBEBC9C7800176848383A3B1477A39152D3773B
9E56E756CA278D870062F8C2291D330722B5BAC4D58ADAC06E326AB79E5D58DAEA33CFB88F04
3DC9379CDF03A843EE9E24C98F2F8F13909459423C7C2D1834398CEA6BC60E1921810BA3D722
3DF440ACDF5A44E31C6AAB756423433A1807BA092A10D665F3412F332636581B9FBFBD722F5E
AEFE207E894D3372D4106FC0C276CAF25FEB2FCA98C78F1197E9EC7EDA73CF0107B1D0127BD6
40171A304781C7AEA7AC1EE47999F7A865D044295EAF2D0872E3036FBFE9361CAB945F93D90F
9A659FCD248B16659A780D5BB14A466CF32EEC56203E4EEBF2524BA4CAB277BF855334ED57F1
A521A1D91B5E22BED88797000EF417CEAE27A9CAA3F746CC26443BC6807E4FF73CE66CC833C7
231D21C211E8BE778849B98879FCFA7EB5D22C2355B1E445B3BE7B392108BF5C2468C2C3F636
88999B4681AAC137BA85ED49D86A5B668EF02436D67704F29EFE6A78153336C126FCD2E21D51
08A72162F9F5B6C537C38FF1FC60D843FD8AED32411F26B3D9F7821308CE998621763E2972F1
0AB9A835418BDC37537C38916795340C3BFD17595FB699DFCBF08210ABB066C75A2D3A5A1C4D
F5F4DACA3E15DA7735BA5F12FF5E87864BF2860B24BE93C734250125A93099A987EA3DE66879
42BBFCAA66E1F02AA3CA93E389C4187EE89CC937F0523B9BC63324DA99F4959633F3E815438D
6E1D85E3DA94333F9B41F9DEE0E5B9A6646B1336F66FDD879E1164B08B70DE0E66FFB0E557BB
CA09EFCE408C335B8BBA0DEF974A6E11ACD5B54D9F974998957F94AB64960850618F15D1416F
27891B64CCBCEC9A2DE4164769ABDD5BB1EDEB65DF4966A06C3F9047F9C36F68FCC53182C61B
0DD4F0303C7DF00A591C254D5A94C0485372782F55E907D237A9A204C5C215E0DD3C9EF79B72
23E8E6DA34394A7E3A31C78112E8A8A65E358F53C5E1234949019C053AA105CADB0C6B44C679
AED9DD3922C537742902657904F8FA721BA01F9A0719BAB9B98F82E1B1851D592F9FA2796B69
F10806DF49B3AA4F3E8379E495CB597A6185B3DEB64186FDD754F831DE6A60F9E0B40F10CF9C
166F966893367C37BCBD3CF5F4D169AE811A548BCF9E7CA6A347548563712B05FABC28F90DCD
6B322AAF048E1705A32AD5F8EFFF584A7382A39139F31BF9F6FC02B80AE71A115BFCFDAED96D
CD64B9F8CFEAB46B217AAC815A6D59C298AE4BD5E3072C9D4BFB92AF8B3559A6C60113371E4A
AF111723B9B5455801564D9CFC82534A42F27D4646F7CD70F9C3179C3C6D2A747B180B003BC8
0A092858E6960743F851B303F1F0843D93CF8C0EFD1AA24FB8774698EFCBCBB623FE957B1D80
D9383381D181972E4F03CD3B5F443EA73B551FA3A1882794A790A5B5310A0DAF0C0090513A56
DC8926BF64BC90FAAA87DAE91F132B4B6569B69F1E4ED1311C72972E05FD4D7615D780C592FA
C11F054B8419656F0C9A9658DE9D377226254ECE1B8C86B620298751015C64842365912A880F
D8BBA9BA2E153ABAF8125C31C8ADA7B7A02931728FC7885666F8153873742560B1951FF1F25A
6C4C0BB042646FB6D2AB3E5E6020485974A1B53796BC4639A6BEF1CE581466E59D863B22AFF6
6230A89C7235BC5D569F43C356163AE8692B49713D01032D9E0E209BCA08401D40C8DA64295F
A205734BE79FBF7F0539FF63F9884F88F266CC74B2CA07C37CB90C57AD973599C3FECBB5C68C
F0087E4ED31AEE1A0EA5F1341846797E396157CD82C5137A0BD0823F9445EA4F3679167F8A78
BA3B69872EB6ED8E1F1849551A6CBFF1CD7CD252A806176F97F2E22BA501A5EC3575CB5DB5F3
3FD6D7C96F4D5A62907162B395ABBCC31791389E76CEF5EC4E2E03C9AB018C9A7FA3E5ABB706
ADD2AB12449733447E88E6A5696836A6884AC2617FE0C9B277466046AC96548458C5373722CA
3E0D5A1A1F8DF9E1C1AA13C6CB01E63D119BF6B6AEBBB99CFE5F4CE9A5314C74783F94D39433
560191A6DB8A0F7496601DE36E057EF86CBAD1A3251B24E0E8D79248A4BEC95914C66A9CBD04
C9E281C4BA55520F2072FA62B6009A9C06DEE464BD9DDC9CB0E8996CA0EABF80EBD6BFC2E2A5
F8FB5A3021033840CA8DF9B076E69B3F6B9618C9615160AFE895B90E0802A326BCD1A3E9B752
5280EDE76D6491068203CF414901A0714071928881AE884DDBB4A06E309DF72ACEA32DD455E8
80E4E8DD576C7AE9040DFABD9FEE25705594973A822E3EE330FDD4769917D5320EEBA3D9450F
FEB4B0BE0BA583221F40FB6657C6A8BBE7390F9C1C6F9B4D59BAAEB93F505205ADEF48DF0019
1EF3291CCD4645EB253C9CDE2F1E4F909B2DDD67598860F94635638045B777BB1D6DF5A50A66
40AFDE1AA850C0B877090901337B548CEAFA665B1C5E964658FD57816547877EB1F3A256C3F3
79CA3005D1D434BF953067B70917C0A5A23F93E4F06645E52D5C9AE201C72F1BCA5F0B24FE5C
2554A935DE77F00D7A3F18805CF6110F73E34A536B748ABA426EB29A6A415AE2252A29567953
1E5D695098301895E80F45135C75005DEA05D6CC87D9B88EF3EE1409FEB7BC0F571C66CB38AA
A501061B4BBC6E5F98A0C72DD2E63D5E6C2B7C96ABE807EC5AD6AD07645F82B982B66713F9C3
702521EB92EFD811C81DAC7C7FADCC056E232D1BF4547CFF5E2AC9FE7F4D6BF9836994F96C7B
563C1A6694E887C14892464AAAB6FBEE4BE89BD88B9D83C3E7FDA309A792EFD59A7D7FFA8903
C2D9784AC5A42F6C6E486CAFE072D90014991B396D524A8EE03F93E132B82388BF4C1A008E5C
73C405BF080D4F02C02AD8911E40B115EEB7CAD0B4DA4EAC8271EBED4DB0B59398CC6520EC56
4CBAEA468BBD6E40FC21F029256D7E624FB449F1AFE673607FF556D98C0FC21DE022A5A33D80
108F5CDAC29F9CE0EAE63220E81071C5C9C5796B1BED7A529B0E770943BB30BF9D282D18A2DA
41FD0349261E885D66859E0055E90C04A5C41FFCEB617DE596352E5026FAF9754ADF5D30267C
0293BBF94B7480AD1CADCD9A34C1084F93C38AC19CD569490DC22C616EA1976DDBF62F333BF5
C12269F2D24FB271D368064636EDC62007632D35BF880865C148361530BFB73EEF706ABC1421
DD894D48438E63E3717681F371EF37149B525B9092BE7E9636ADC6B9E859C0B53936070A318C
88E6478387BEEA49B57AD9700F6880982ABF6E443CC58B25FE6E7CE8BE5FC05BEFC25CF22446
A109432BDAFA520EF234345EA18A07D428EE4220C66E1E869C52568C8F9DDAC48569C7E68DC4
7A2F5BB3FAD03CA0C1BB2BF2EBF155B69158F2790B563A612014609362D8D70E34AE149D8CBB
45AB5F7649B1F1C352A2DA3F3BDEC2E4FC14E3499BC4F701127B8C6D71B548AF350EBF10DE1F
1D17CAF7CE5C7B8AB8B7CE6915FF5F887249BDB2C7B2BC6661E60116EA7DDC3F530456D6AF4F
8E4458950B9A0DA7D1F9CF5CD9B2D0249EA97A8F7A75482552CEEF8AE58083E14146D1E1694D
C63D7ABA7976A79951A726979D51CD41E6525BADF9BF6A01FCEF2F0FEDFDD5DE799F4080DA17
34961F2C088B6FBCC556ADED4A97E92F225270700B69A51033302AAE977FFD21D601B131AC33
F8E8C3D12B635EFCA24DDC0866A4B527C71DAE31F4377F91E2CDA83EC77E99F0384977E0144B
BE48DDB7997CDCCE777B7965B08EE36DF566A1C662D5DFCB59FC61DE346D4FE161F3305A6D2A
A903C3CF095AA187E517DB2EAD4140145CF484885B625861295AE9DFCF826D8745D62F881EBD
BD3D29031466E74A56E940394BC6EF17DFBFA7A2614A154133516A6790BE2B3D0473069EB660
4EF214712F001E931289C70F009528C33198FF297D5C3DB53A771CB83568169446D29AC2414E
633DF78E33CAA9A363D96520C9C6944A41B83D6C9A2089D5C88B81A8CA119C664AA98965C7D3
C41B0C5731386D94EA31058FE2557C2BBEBA69CFD455CCA21784358A378D645F1CCB6EECFE7B
43A4DEBB0ACE1F8946BFF9CB2509B65514466CEED1A315F519E0B50F36D636EAED5C6F8DE770
AEB096BB82026DC6A0BCEC177F6867D3E41399BD786FB13177E9B4273F8DBE5803A62119AFBA
B852B5A7EF2571F8BC5F265AAEF8EF5F90A4CFDED003D89B454C2DACFDE349D32812B4AA8DED
BEEFC8D42E28B2DBAF44379069A66B7588BC497B767614646D7AA1E068652A116948CA9DD53B
F5AB0E8AF1174755804D0EEFDA8BC35AA6157DFE189138CCCB2E711988E9FF5F5C03858F70BF
A2E5E5837BD72AEFE246C4AE9651131E1FA003F01AE530C030BC4A888FDBB2AA2F50E9EEE5A8
81C716D9FB9320F2A7201041FCF6EBAA9E03FA16F502BE3B370E41A64F7FD3AEBD3A3C7C9824
9DFC7E154C99C5226E83D3291E7FCF514DD10C1F7BC9AF62A3A2ADC304EF65B29136B78F2F50
3C99526033CAB7CB286C9DBA26BBFB7BA333AE55971896C8B5E077945701BF1C4F798FC03847
23454483B42EF5902192B039546063C17649D1F88C642A3C828E90243A7356C298B7D6F018E3
62EFAF62E431D578E4A484CF8ECBA1219296856D87CF399489144F2C6004F0A34BBC440DD260
181ECA262E034D2ACD244D7C398551F761866FA77283EC8AF5C80FDB97B9E5884BC3571AA423
B9F944BACF149FDEA85BBFCCA6CAA0948B8FAB6A4FA2F3E48EC9A35C6E699BB279DECD92AEAF
5EA3FC826BA3A5DA3DB7E46C76B783B83DEBD5AF450A19F33103A381C468BE95B701968CD46C
B0DDDDE2276AB9E3B1E11EAB601818EA271EB7B2024ED93844BFED1486CE84D533BC667A476F
F6D7EA32260D8C3A4C1711DB1A071DC14F5754DF5CA9049963931561114E72A7376B97F1D0E4
DBD0F3BA9EDF54E37BB556319DD88FCC4E424F03725AD48AAADD935D8BEB46372AE546382208
60320F8ECA8353F1CA1F25CDE42A06700D1AB8E5B044AD5AEBE6B6EDCADE3CFC998ECCE56156
B797EF044A8256F3C8A4C3D6F8C5F9FC4678FCB271AAB880E84E279462C37872AEBB1F6734C7
0DD6B9479BFEF763B464E36F7483FB4ED153858C2A7CA82463AC688A25E23287CAC2E2992DA0
BE1C5ABCB503A811AD5763254C7304611F206C4AA7959DB813E22C5C69792D1379FE0F78500E
3406D28F97E59612687ED7D9A4A70F4D13F298A056803F5D10DF97AEAE82E90860A59C7D17AD
23742C6AA2CDE91D5EEC53C4D2EE420DF02CBC20CEF3C379845ED4533EA7BD9A6AB4B7ED3DCA
C3A33C7135DAE2340649EFBF164D99785B5FA500485191673BE8DC07ABBA4A909FAD5C08136A
71FB9BB753B320D9272A8F810477F1B46AC4DA57E6B5D5B899844022274F5EA2F35B42C35684
E5F8DCD74FF631B66AD02C6CDFAC8030E52FE146C03D71CD33134C04D13CC7C4541FF7DE01E9
66FDF1C29AFEB8CD4F059AC90CBB565E0743D1AF099FCD7964FFACBBA53FDDB3580789D77D55
A2E98E9926DC3DC90E8333C567CCE7065874E293467E5EC898D81D4B38534D447C5F8E715B71
3EC35AAF27A21E43B7EB44F995D3EE217F7817C0C687B937DAC64CDE13E6ECE47B1689F72334
032FF314908EC19F02A662E9160897B0E75D1229C698DB7C6AFDDF0F75066C4138D1E2A289A1
CD1F000AFC3ACD2FADCF10EF5F2E7AE4CAB1F655AA144391127CF1D049D7753CF9AF42922FF1
832009707DFFAF4369A75A8D8DE606432EE212F879CA0E8CB5D45A24B88DA803DD6984D8310B
DEB59069AEF9F630E825349AFC5FEE29D420B3A6ACEA1992C0E0DB9C4D58AC7C04EE7AD962F0
4FA7F653EBF1B8B3DD3EFC093EE381BF6F1E8C2B5810D0A2FF7EABAE1547CF3FCB3A7290F4AF
25EF75BEFF80B04680D3BB61B3E90B6FEC3EB0E585CD9F4A5E69CB93716D9FFD92ABFAA5591A
F03EAC13EF7361E5247C254403BDDD967315D712BFFAE19F7545004EDBD31676E3D7605BF6EE
3E918B0E6C3A5416A8255758FF27AE3F1681528F544A14EDF7DE30EC727736773C14FDE0B70A
A4BBD0761D1A17B9C3C2ABC0D588FC5A5B68D78909EE79E54DFC8B22D7DFC2C98036622682F7
28CC9A58C02EFFBC5317CFD56AB64C958AC60E3E07DDD7C13296A59730E25FFCACC542CB29C4
468D331577C07564E538F14C66CC563C018C0D9E40329B8909B3716E0D02C6840769105BA02E
47ABC4DD039CA171587BF29E84CD95F15B7F118E7942C3B7B50CCA7B094BEF2178C4B59F1567
D72E46E17908B2DBFB7E4EBA1573E6C3E2A042C895C864C384731F1CC61766386B8339DF7BE9
CB67DD91FBF55788BCF4EF9038568D031797BCB239D5F7601E627699C9B18EA3A9040C636296
3C2D7ACAC8ABBFC9FA49CABF39201904994CD067524D6157F35D214C3AE97EBAB2763C5BBBEB
9E68BB6F1BBEA9312D5A49F2A9D77343EA55CD35126508C14118CAF476435FA24A2EC9527B95
D5417C315746DF4F6BC96F41B2A563055CF70CB228FB2A0BD36162F638ECDA0F6F3EB724A47D
A1F0F65F1E76E633A24893577C8531A8AED090233317E040C57EF08F27640A23FC801308EE8E
26B311AA82C723AFF814FDE69C83860640A01627B4DFCCEEB0FA4D0BBB5055A2C91D9C37F5A2
806C4EF75090E45EDB1EE92B54209CBB6A7B0187BE4664272E795DB632929B57BC293756AB26
02E696F4A81158DCD5BD8CA4056CF63C5A6885DF511C9F40F05488529965A6FCB46C99A1C07C
814CB923AEFA93C3F0A6E1A29086EE9589432D10E67EBBA1BD6903FC7A7E8557F9B9BDBF04B3
991C16D8C6B88BCA14741ABDC318A076684B2C6F6F4749BA7E9BB6CD556B83A3EBED21887DE4
B76AC10CF535B7B1CBB57E9132D0FCA727506D04EB1A0D89EC0CAFCE60BDBDAF7764B028C580
AC52C171F279FCCAECCC1D2509C1C097495CA10D2EF63EF3F4FF58DC8A4CDFF90FF9D7CA8468
C412476510D0F84CF304875FC2C80D4D81D84C0554C7EB586912A0143C8ED28AB5E6E235A58C
64DFB9C23395C82E50ED13A2EFA7FFA4C5FCCECEF517F2A8B5C613E5D7EF9993F00F0DEF8EA3
60AEF64F1A66927F0A67BB50B34EF26DEF84C62D7B6B5A6E8D2AE37C4971DA018FB26147AF4F
446E1ABF47D5B92A280D3D3EA9BDF35BBBB0C7D3E38CCD334C072D5B033498B3D48C41B0FEEE
9CDE6D8D66CA6B6A73A46D464B28B2ED3827072D6DA3150CAA896ED8F2F4A85CD2D10631EA59
00FF194E2654DDD157048FF291543AC44863965B91104C7E5AC0546B61C1D22CD80F7572D860
EEA2848A669D7FBB4BF933E2753743180929AFFDD40C158C6EFAD25924E909FF5EEB4E8CA980
C5F2BFA2767A107A129BBE86343786BEF65C54FFFA33CE2F58D0B0D6DB00150BAACC67E3F7DE
BB7E4AAE3E1CB9023BA89434B80DEBD127C84414D8A1894BB768BC49ACA3C14191188036F0AB
BEF4C47C668497E849DA755DF76CE3E8DB70DDFEAD45AE949EF6D50AE318F78C955E5870E1ED
E213B43E184AADA65C98E1F98265C8BB064694A03DEE7606BE81EDA473207AD0DCCC3D09732F
5DE7FB7254378D78B9A9DE98B864E4711A4C91D92A27EA026F467AC2335AEC6695A7AF0B6820
671816DCD570279201D1876FDD2118428F012BCB17B532603038C6DDA9FC8029A96C10257BF2
671C17FE186CA7E6EEEB5E9E247D6A935FFA02E6286257A62E53E0E1D6911923ACB1019E2819
9E841431FD101E6845E7B7DF7D36B46490CECF7564943CDFF818C1AD5181B17F511BA55FCEF7
53B5380E96B9A625749ADB136A31A60569E767B74DAC6A16B11605EABE3399518593911DEE4B
E1B15F3730EC12847A209787E662C85259F5E94BAA48045A5527ADE2BB32C2BCFAEC9E1EE020
39DBA928C9507CA50799C64B18F18BE4396C900A769D6E11809A352FD3D1C761F20206A9CF8E
4BF366B62E68E19BA6DF179699FDFB98E411D25930A0C7C921F07647DA4BCA5EE3BCD5D50D73
E907780CE497B05F8FFBAB06A2D217BE7CDDDF8C5EA92CF3D96275F1B795A019C030217D8FF4
1AEC7DC0BCAD37554C069EFF37E0A7D9F63ECE5EA6C01A15F667788080388B1384F7CB2B79F4
1D5939BF22F567B0517931876E08CC6CB30C552FF9828C5ACBDBF40428C405A88967F26D240C
9C275644501DF7659F61952949F7A1F91AC85B8015CCE2A38F37D8F4CFF89ECF3C33DC36EAE6
A05D18A3D6C63B89E6AC821D592FDF9E7194A9862DDB0BAA032922CA893A1A494E36345742D5
1CCEDF1BDE173D7966F0EDF8582E02110D0C9267751B687B0E00D7A30BF686E4AB952C7E1086
BEAC4FCCC248488BB4112578E85077BD8442F85F9DFBC28F2A748392950F3B770BA11EA235F9
313215BA8FC68F276FFFF2826251936623D4C806A80091C8FE6295975A62CE112342487BF271
0796F345BF0C964A20F1882B7BCB2B06E52B2D1E66EA6A8E5AB3D329A8525415625F59995E56
C5D9AA91FE708ED0FE288795B734A9AFBEED6738B1B40D53ECF314CD8019948CBF14298AD094
61E5B59D4D1D27043775363E79E4392778BFD3BCD6607E25DC313726D0B53C94E8EF7CA20E1C
D3C6026FB704F0A3C063C12D964FE017467AE5E3FED8450F834C207BCF8E603E1C3839DD543B
F714D9D03E85F4808D665A67B291D7D2C10F040C56091586E2EBED0856485294477FA5B19FD3
7F028CEAD9E3E4A9337301A0FEC3ABD4281DF2C1BEFD51A7AD601D66E2A2419668DFD94443BF
B065C3A5B0D9292BD4B8CE3A786E58B95C1982EE64C2DDFCBC29BF4FF2B86F224B83247811BB
660DF18B87F233C43BA783065C92733A204523D765228DAAF23F2C76FC1F1CDAD2E53F7CD6BC
1BE4B64E242D8B19009B3A8AC7536FE81858EBB7CAD0B4ED0E1845DBB2FF96DEA4B0699B505F
3386A9C3FE71046BF2A86B4B9C56BDD02AEB47766DF8024A797C0659EC10581A413F49A6C488
923CA250EED4242B5BAEB02F271100FC8F9CA9A02E7F6A833AD41248953061C82048FB241AFD
45ED803B8707D2D1E865997AF54AC94F5F24F52EEFE16B35DA613005F20AA1870924A2AA42A1
9CAB5C4E70C3A2B2F3FFD59E3D63CC8F23B62323276A3D78FF65F3BCB07A543364A9BBB037AF
B1E464A569DCF4FA2F6E74B7060AFE7529A8AB8070B402A4427946B5CEC0C8D5E7D86A632DBA
23720642C8476CA16691E1CAB93BF851F4C6221C2589C823F72FFB2F1997B5EB14F104953B76
D50980CCCB31C18FFE2BA85E648AFB1E60C22BB6B132B7F40A3B415C0B816665D83C58A3BBE6
6E1F918300C9C56F9F69D5E10CD7183BE0411CEDAF93ECA3A9EC7505DBFA0A640C3308B44712
5297F9C38FB24888A7CA128CA58CAF8A510C59E136E971E0684A68F342F7F2D0AA4AE0A29020
A16B9220900066D1D4944EFE83EA744F489567307CBACD34027EEFC2DD83FA6B5B82021E9455
31C42A36C9C6353E9B8F1B356C0EB3F526CD25E0556A1AEBBAE7868A51019EDD04DD4EB9127E
6BCB29F8F8DBB5F3902FB25B6A8993B40E732D3FB28254845DAFDC12F2686D93FC9720534DF9
CDD88578C611EED66BE41ADD19DB4920F0B8EF097DFD23A88A42C53093D485875CDC43C32B4C
93B412596558E1BE3D0C7CAA21AD86E19F1F210AB85DB4E9139BA3D4B7C0BB732C289BC5852A
5579F24ADA174CC4FFE8F2DB95A4AEBC6E2EA1C3A8A7C1B103708BEF07399EBEEE8F09C5DE2B
24F49C152F29003370A63CB16322E63591681C7BCA84D841B88C6CAF87A9F58C98E9DDB6B309
48C44B81816CC8288FE51D0587B9AE3609B088AC82769A64C345059C392C5C1E610BE2ED8B4C
907426330BC2AE4808BAC702692080A808EBEBC3BAF1CCD315CFC5C2E90A1CB8439182A63863
3ECADC8BF82F8165CF2D1B74F7ACB3330D43275DFCD3E868D1DBF03E92CB262701C4E4CE0E93
122FBA004D3F646D51707B60E71CB0BABFE58ED9FD081406CCA87E273E8EE262BDDC935DB0F4
D521B5CD3698D16027A5B415FDD84D1053139F3B86CA1B202D30AC2E8FFFBC1FB49CD1D03A4F
5CC1EBA7E0C5E38F576B7CF4078EEF4A7FB3C5AB5CA6EB226DED98E252CC2BCB23B9471C3107
16B5A56E0E21143BC4796ED9877EDF85C10C949B55AD6F2EBE7E36BDDDD6FFE505C8489467BB
0D319DE62226FA87DFF37638861C50F0CBE1A9C278686A332ED5BF346F1DF798534079597A0A
165E00C976E7439BC970F9707C80A3E85620CFC9B0AFC92E736678DE998BA40FFAD6E011AD8D
92F761BACCFB25E4FA65AAE071D65CA159FD858D269715FB5AA0ECCDF826926A70E09A06088B
42C80E4D23BD0DE3323098C9F481A29148CE6A21384E436D49D80E5A19DADD5A529C236DFC92
FE6FDE441ABB24C677B43C44BED80F431F3E8C1630A92C4254A6F8353676C1CFD33043F5B4CB
E6A070A6033D24720E1A1E6C8A5814C436B93A10BB8FFE87F2ED74D5E1AB8AB0FF09548E05AB
222E9CAE87FF533FC69CDC7B13F733CFAA04C0E2444DC78B4202D75F62BB6F0956CC1B228362
1D7C916FBB4F6D6B4631CC24D9E08ECAA6C20F95253288D8FAC6AD680E7E5D28A941A6AC2547
6F41D0C168D401F4D7B8546EEB949E22783DC7BD16845DFE468991EABC4DFCD13D5A7C1B508D
22AB4CD600F90A37EA6A18A92008208D4D86AE19E30E5600E4561A0D41DFE87D98783366A871
A11F4C3DDF2DC80CC26D8C20DD28B79C4CD1D957A69821538A065035A6B9D311E8F1CFF61783
609CF2385F32400816B92BBD350A080375F272BFC1D1A51A1F7BA49C4958EE5690BD7DE1ED8E
082C5CB5E8B706ACB7E307409487C384847BB0A67424CCC58D6F9F3C8BA293895E29A7653698
38F757C373AB4D2DCF8C56BC07F29A6109796D191E317875C9A83A82163C72D77CE8C4C5E0CC
FFCAEEC56C7F3D70C4090BBC6E019407482AD1A9D4AD7DB3480C625C36FCD23F518D05EF56D2
073D3746EC5A65B771DE18C4BA07E780B955E542F24DE5C5A5DBDFB9309B62AF4C4CE1FB519B
EB4C225C629EECE80550EB89537B0F4837C01678DB4B8C4C4381CFE9A01A477E2B07EEB6E6B0
9BBE1C0241B2A8047FA59E9EECAFECD53CA29498057BCA1189E0944B00462E1F573AD95D2678
44BE2A346F2650B1FAC2C500924B72B6B6FC8DD2AFD4DFDA4E9C77754CA5681E306638689A89
84693C3D637765A947F0B9C4F5001E9CB9C97C84B899F1F37E49F86016F5A4BB078F7E825B9C
0749C7DCB8C367F90F2EC10EEB0520FFFABB84BCEDB03C8E1578D1C737799B1B1A96E9FC305E
0A0B2F11E24544DE8E56CEBED19F8598AD4F76DC13694A9A278A750800BD9DC0DF734F07CE58
0C945DF2454E1F900627455233A3E10C1359E851C6E7FE3B5117B32C32689674B457541694B2
DB7092D7E7886AAC05EA01A0CABF21C49C5412C6621311D5E7CB2FF36AFD1B20BDD2B8F341AA
CA7EBDB2E181CC5517CD9DD2547AFC5CF6019617DE61A931A98BFBB545BF71ABE30FBCD2823E
B8ABDF8E48DABFE6731CEB0AD284A98416C55B067A402341D036E729BC28233435349F2EB685
34C5FBB83246B780EC8273106D24A2ABD2718EDC55CF4F278D09D7B189A5736EFCD0629E8F2B
ED9B09545CBF64AD014E7D8D9CC9F33CA32387C1CC74DC50A6DBCEB0BF683D52A0A5A63DFEBB
88CF012948C5A3236F9DA2C560F59CBED7C8E11ED6E15BB62B440780B3BB58B177DFE2CA19C4
05CEAA68EA8828FB7DC025E7C43907C03C885235F0122CF48232333C36B9ABCB4BEF13E1CFCF
2E0CD0774603D1339C93C4D0A52DA67B01AFFD0341FC944D5267D9FFC1925365C5ADB1157CA6
96CBE857339FF34459F8BD2D4DF43DD9CDB89BAA861BDBBA29890A7A9BEEB9533447DF8C324C
A4F62DA43DF33C53FA1F608D896846969E43275F799D371C68CD705994E2F25844BDC3890F8F
C56EF423357F691C593EF434A68A062081B3AB81939D695EE22DF07A30F745BA2709C23D94B0
3593E7C43AE3680EEADB2A602575B2AB66828D31D91EDB44DC42338FC2C5CDF301B370A5446A
21AE53A3968A3ECBE3B8D2699B8236051736B89BC196F8B91DE911340274DFC7625626ED6E33
EE942AB48F8AA47F17B5FBB3198DD9749602ED0C07749C5667A60D200F2BBA4A9AD825FF7157
4147D92967A8A7ACCC98A2EFACABA4B6F94AFBA75A356A3407C3A0EFB683F32E7CB8171DA8F1
05875050ED7F123BDD2B88C96F84D2D1A94BC88AD5D3EE5C828A4AAC64550D9B43ACBA373E53
A70EF779CDC28F81DC00314D1F5A02B3C74D4E85FCD8DE38C21F4E5C3BBBF30A3CD799D047C7
7283E099353A17956A260F6AB98094C5E014E4B25772E8BAF6A443C80EB2CB8AA1AFD6EB2037
A4EF160BE73E169130A2372CC8057510E67CBC30E03C629389976C56B249AD29281A25721735
DFD715EB6BCE1F3C838F77024D080043D91B3A1B6DE5F15EAA2C23826CE98935A11C3B8B7CA0
225176D87F890C21503374193DF2A7A385CB42C48827160A705C14132270FE8A4E82ED84258D
8988E12AA417331E4922C9D5FE2E286FEC7A94848C14C94241C08180B56A0E832B5B46F4DB45
1821A5D4CC4519BDEA41F32B1C7E9758B39CFE0DBE639D535ACA77ED73F646C959B8A50980CA
7B86AF480549C1040D1C69A725777818CD73663D0F50E0183E56A714207A51ACE61487A1A949
E5FBE1FF2069CE2F6A22F6AF05B7B3F57C452C3EA405779A6605E26531854A04CE3D587AA1A1
2CA2C1E8FE77A2FDEC95F793790A8A3FDBF8F1AC201D30211D569575A25965C542A61E4FD49E
17EC1B5BDF06A13B789A339859CD3667C26260F2C49ECF49796DBA81B556002DE61CD6A1E0B1
FDB713193DBE5FABA151D08FA3C10A760D9272B37B0DC473289CD30A41EE635E72CB18A1FD92
65070B289951B0D46EA05FF92AC0DED4ACBE4F00DC120E3D8070ACAAC8E8161EADB38615B1D6
0BFB5D10A603AC81A8E63D5701E1B72791CC71389F339C66B2C9B87906DD509D3C06E1B9B9EA
72E141F0D9526AC4DEF0A86F499B1BFEBEAAA0FBFD3E7373AD47F383760401C3529073566CD5
276570E089B351277C95C57D30ADFF8320AABCFA9CC1549234814FB9E0EC4D64253FCBD4F367
502C05EC9FEEE198DA5F526863335A5BFC443582B99FD25DF02401944AB062C6B28F91892857
EA9516F4B48C2D0CDC3FA5158BDACBE7E5A1862A168A605975CC69555F979386B7DA5A501831
4FD3D02B70092D825F619EC69E4D515F612EADB2F7920B8625C9800A8BF75A83477CA9B2A989
E08A30C2C5D2176298CC5B3F17929A445B48F2252E6F2CE5296A02E4370FBBAB3AE1B021F06E
F1ACFBC3EE7CCA00395F6EA813CA50D8F48628E23851B2FDC196E017E37444A158D02A39F129
4E6527D5FA6B1AE4163872C57A77322C244DECFD7105E806DC1CE37451928CF8C912C4300FD1
45FAD698E13D1F738522AF55AAFBC058F6CB0B757285C41673F5B2183B2809093F7D6474682D
D62C59BDD08D1A483B6B48327C4D54216BE6670172509AC405F9D270EAC6EB60BFD61B9C74B4
05BFD6F10238C3D5DDC9B0EF6B786160AFDDE91783AA104D30D7ED637ED8EB4ACFBBC31A7ECC
AC4F639BD4D2B161CCEB20B34459239115DD829EDD41782B540130BB498595BA5EC3605E2037
B45DBD906F588D12C1BA46507CF8F5DFF315029FE16D830FAFAD7624CDB66472BFCF45714449
A1BE8E63F1F7A509FA48A50667F5615EA2C464BE2592296E8FB2BA1C79C1792DB65A221421FD
9944C10547151F34499CFE06EB543092002B51894F4BC25883EC0D97BB1B7F2133ED2B816ECA
6F2C0B64873DED87FDC06AD65983183B2621D7D85B660395CB7F9A9D509E849070A58BDCFDAF
7C93C3F73546716DE45B5E5D2A210A34AE5902FBE815C934171432E2852BF9E772FE10C18D24
7F12503BB1D7E58AE137415E37C898837ACED54856AB4F38C021277DD611CACA07A35D15BA34
2C468372FC99FC36927F43394545EC63F4D43CED741012A3877493C2A8938B0D5EFF22F30720
34F968E2EA0C3D42ECEECABCC40769F108D4EE1F024A884A29F5A3B4EC7B6D93AFC564D55A7D
3170AC4BEA944DB2B807BA898548B8E71E512FFD7E369EA47BCE67DD5B2E15E910782EAAF758
6BE41FDE32BAAE0A505DA4EDAF2B83656F0D8C8974CCBFB7DDF53FB6B3F2677FD4986D27F106
C30B19243122FA711CD2B68AF4D98AAC95D764C00E80CB9D7FE3DCC3529B630CBFC1A90795BA
B8483F1140A438FE7896A36D9092E3496626D3C41CF7CFDA1C44C779467DE2EBE40FCC0414B8
83D0FDC049637F51D7128241E192B2E26B492E9C8EAA462FFC4F3EF84F327E9324B3A6C86356
3A027ACBCE4DEF80B5CF78D231EC83433F8358477A01B804491201E526AF6E4554946E47F2C3
E58B394E41918A17E8DC428F27F065263D52DA3CB84DF6CEAB45851FA26BCF32C8AB1192273E
60BE8D12CB4DA85681C2FD50D5543C818B9E61C4EF2F89066ED15881E60202C0B8D86CD9858D
E2A72F955717BCEA4CD2BAF3C4B123D62DF06172FA93B33900273FE832BF991C6EC2A4DF1ED4
DD257EC2C1DF1353BC9B4F9D462612B03881348058A7AAF942BA4F76B846C155A75F66B33625
0A94278585072B72AB24647BF664768E878CBD9342B40342FA827F85C1A3EA4178C49A8DE429
E8BF828DE2AF4D794AF7E217D7E60A679CE39F3422D55E344C0892925F3EFDD0EBBA49CC9974
5EA32F4AEE95E0E0A4A5B2D4D3AD6AC2130EB179922E7059591ED89949B629D0FC8EE440EBE7
CE353C1ED549688F0F7807B6CC6103365BF57758BD131274CF012E32D5181B10C1046D2411B6
903DE9EF6A7765715B9D0E1969842DBF7982AA188FE8BA38621B15C02D4AF42A44EAF03F60B5
B1F6FD4937100C83738F21FE3751DCC96A00BABBB2FFEC0D88BC47B71731C4C82AC77AD8C980
6AF7B0EB66231CDEF63CD9E21718B594E4E83E18296E454F3157F3EF603CB50D3A8B325EE880
CE0D67932256E2D2D205FB3186C80B8D8EC5B78B53644B292EE4931527C78E5D337C1818053E
56DB0FD615068401F3B42AD559A0F55952EB63558903F80AA5F4F6B599603CB7DAD298DBF68A
01CBD4A9FFD935A40AE2E734CA3A5C89FD56620776DD77C1F24D696FDA8AEDA68E9A8BC9F7E1
BF899E5BA02FFEF1440CE3972DEECF616609D25873CEAA003D807D69DC69389B32B7CA4241C5
EF3FB369EF43F09C42AF60199E896717FE198ABC755AFCF93D5D76BAD13152367D7053A2A6E3
C09FF6061F006A0E36478E4AAB0D96C3B25EC4D9610720D08CE3AE0E495701C24AEBA0FE9555
2D719D709EE54C9ABA173BA0ECF66D9DB7B99DB498C64E5526DE4BCBA4422D1B2E2744CBB29F
A925642441ADAF5A0FCF76139E1F322FAB68DDC542D3950B231EB9837BE52A754FD151362D5D
5D2DFC1C4E2BAAFA1776EB038D45B1BF440EA28DADECC0DBB131D0CA6922289B8D6BB2C92688
178B6E22B6F8603ED7C7E47779ECD848E9795B2869EF9A84BDD7F868CD1FCF84E60638C85876
6C66F20433831B2047C58C54DB8B940125F8D6218D2CA920681602A8B8858659BE9C136835AF
55B4F9D5CD3EB8393940464526205CBA728968C73D306172A957C7BD8663B3B155BBA2861388
1663FFCCCEE296A27176DB5BE23C39DD3B0FDE269BD6E3C4E100D89362360B81D8735FD5B0EA
2E0B242E052636A2DABE2F773E629D7FF5E2286A80893C01E559675AC4DEB2B95D1DDD0AF39B
D09D6DB07357A1632F0498F556D78B9DBE1CF7C2A89F1A371E502FE0CB9604BA3F790807D4AC
4306DF26882CE20D9A2197EF7F4D0AD76B6960DA9BEDA6790C92C4D5439D78CA0DB9568C7581
7AF13F2F9129768807BBE6384A75B0B23B08D0A36071564F3110AA81EBE0F5C1A678FC3C49EB
41404C47E9D6A4E43B22B1346069A60794C7C567BC79AAA8DBC7EA37A0F4014F0489CA46F228
BB106A3F3450A2287761D32C3D8A48848450D28DE6E344944943028A6B478C49E8FB8282B6D6
A5F4A6E56AF977D691911AC71EFF60FCEFCB9A8D3EF1D223873FC4B2F0963AF6AD4A74C110B1
BF86D73F3B71AB88D192857E803A093B50650D6C078F2A1E3E1A54A2AFB2642D9FF3090DDE85
53BEDE51D1FC58FF3CB18658159ECEF4E676D0EA344AECE62BBD09EDE5B237B8E77DCE065418
44DE9B8E647EBD1E928ED1EF52385C592AE6B96529BBF283A94781EB12442426F2F61F1D3E02
AAC54D8A636B5E5A752C236885C7C710B7E8155937A7848FD9953374C9E82B43C8D222286C0F
17A640454BACDF19491BE3BEB1292462599B52923A07731B8FB521CFADD3FB60A5FAC5EEB450
78D82D0F55B14AF541103CB68F83BAC84474589B8061785C6518BE3E0EA242F654C1145A9D7E
A401885A932130612369BEECD0FDC9BDAA89821C08E7DCB235A6E8476856DE1D33FE2ABDB81D
985358A2426D0E095BCB4E68B7DD4860E53D2224F237CEF0F45C2FC9AF866D0CB04B57E79244
E32433F5C387584738C488A32D895E44C177529E79B5322114E1ABDE7DA2702A78AE8F4514D5
9CF056CDF45ADB289F6DD6ADA8A1667DB98D1BF747488D24FA53C6A887F5C7D2ACCAF2D3193E
E77FF17BA1FB17F45A990DC5DC1761DE1BC72490D82BACF29CFA0931E586EC796B4CE4EBFE80
5C424054B1609EE8820D8B9C58CC06537C299BF4934566D86C599269F0D8FCEEEAB103E758BB
B7A5B9027FFE02B4D39AFC232203F7F883D4F31C919F55B1E757ED680314A6D9DD1DF7663E4A
5534EA8F8EC8482A0371A642B82EB80FFE89059AA6AA8E11EC27D3F0AE43C63865A7EF4EF236
36BB0CABEADC34E3BD41CD81BECEA8ABBD3240B38F3F18E03A1F36ED43B8CE355D55EF98C834
1B2FA4A9C3CC77FC7B6D67D325E64C5D8C858DD3FF556AA2CA373615C12FB1A6FB09A9D1FB1C
E3C0FED25B3C29C861E7D84B60AD041A3A0C1226C53EA3EECA240120DC552A00044C9AD9933A
E836CC43B8E19A3079C0B43CA792A6258961D0A15ED42A8A1480868AD41C0D93FEF0A9579A56
115749DA4A0BDBD25148713E97329807288782DAD05446BE9D352AFD8776DB6AA6F434A9269C
400F126973C977E65758A6695BFA1793091A4827FE8EDEED8C97EF9C309C2AC7349D4CE6BB07
4084CA7A043B1C5DC4C939F2FABC0365CC1FA37EFCB2901D3D4D5C0EC273ACCFED605AB0A786
3DF95A11D3632C4E27AA87422E8ED3571907ECC310D4F20F43ED47C9E88718501D74F69827F7
379F6DE91CA5B1939586A5F3674C96E65A886F5D715F35C753B4B317E1D8B88410F21B0EF1AB
1A7D2A93EBE1BC6917DC05F9DB05228D40D3B32B9C442321E59FD791E291AE5006EA7DEE85DD
3E2302968588243538F8AB21E2A9EF33B30F50DE7D30390316C4804A9E455649D1A646341B2F
5916BAAD36CE9C2B9805CA810A1B39D59C3CF6D93BABEF6F98996A5CBF19CA7FE46EC6D69573
19926D916932E852F8DBC02ECE698885C5E53A3587A663A202F41203177D210AA3FC4BD83390
4A9C00E0A4C2D5E3F4CB1CA90D3FF164C96EA20E724013DE964BDAB6C012BDF8816090237FE6
69C94A40450D2D8DDB95B01DB7FDE69329024ACAAC23CB4F66150934F6D21C736739F5A31914
877D82FB5FC832672242E65160AFB96B2C60DAD7F13C989AB746A746951E7498C044E0731FE4
0CAF171C04310A49478609FEAD98137E41CB2E36FB8039B4BE640C704804E2A1985FF66CBE09
66032D05E6B90AB254848CBD11252FD21F80995701BF8F0F9F75C5EAA7F7550EA42AF267C255
EF303107D9B25EEDBE81FBB57C29980DAE1BED696E1321F8A1E0EFEBC1BC2BC7B2FC36B6B1EA
30584A4AEF9D4A0A38F844438DC042936E0D65EE119544989D361A3B6AFAC38B61F2983E8C19
22B0804414F38BD5D2AB4339F6169CAAA3A0F6FD3720350268509161F40A07C65F2178E2AB2B
AC082B4E9A70BF520D808C860A43C230BACAF97F3D8A4D06C5F11B6EB4245A1C52408390DEF7
9BC9CFE13A9F47061EF4BBDF2C95FB1701F91E3650A80FC065E8C3581C231489831EA7034E33
E6FB3FEF5C5FCD02B15C89BF022062B066622D405A03ECC025FBB7308F7FF33FFD23BFE58EF1
5693F7E3450989C31408E2834D2F634E3B88382C21D532F13A258BAB4DB556C31ECE02C0B5D6
F917B952D7FEDF9472C5CC4B6F20C4805CE90FDD78308790FE11EA34A1E66E2B11FF4D1BEF65
B99E161902B7521A5010227087AC32EC951A1AA7872DD4B46695C280053CDA0006DDA6AB8CDC
5A29C9DDA27E10977DBB9A06BD694038FBBB570D1A64FBD87A79E13128837D17E76C71DA0C82
1287F3CD628E9E6C09EDE3266BE41FAFD1BF5F41DD8CEC1415ED0BB555DE6BE845E77DF55112
872F771FA88F71300FFCA0A66D66E97ADC940F2074B9EF99831C20CE4C7E76E4375EA848C613
5AC97B86711E089309989641F74105F235DC98F585CDA93CE4AC5A644B26E5D6E0160033E881
9B495E8AFF8BCD07B2CDB243E3E1D2B184C706A22ABCF20F27E88DB7283B7653EA72FA8F5235
CF84A98074F83B067E85B6E0F15C29AB341E9E6B4790F9E7B8102FCF6080F552754BD7B5149F
AA865D8096C1866030E3E97482BBED25005C2E61648FC2DB5F993B5529A8821E316155FC6499
7F25E6E477FFB29E30E4C6D228CB746D68F1FF7669E3B53DAD753D7320B9311C489343D298C8
087EEB0311EF34C9FD74F68F8F032D8626B0DF881168230C7F4FEAB03FECA61E60CC2DB3118E
766EDDB0ABA79F0535616523D300AE6CB5C08127D15A5A39A3C6B62448622501FA195AFA012B
052F916950048757087E778DF3840D7FA04FB3CC0AEA6889185A4AA118AE9E489357F01FE9FC
E0A2D7366C098739EDB528062FE6F1DCCDBC691C613D7BEDDE00013A9CAB1FC6A710B02D1ECC
A7C3C2F81BB61FCF98A10119C1C5555FA17FFCF356E72AF39F37B79EA9CBFCD8BAB1132EC59D
1277020D4458E94F01C66E2D15546BB61CD5AEDE8DDD71199F594DF20B9007760140706906CA
9224FFED7CEDB5065CD66125EC0B0FA4A17CBA712DFD94C532C248245416238DFB0BC3CA44E9
60C9EDE50847265E4F174EA2E7260A2F9DE51B24D3B200D57F95607B4F483BB03A76EDE29807
E406A13713F4EC887F38C66706F5F9C57A97DAF7BA155D8125431870A38523014CF1B1855272
327CE4A2FF7AB8D52CCE5A4764069340498135379B71E269CE0BA51FF1D0B37B1FFA903CD605
1B81584927C6851B25700698E007641C341B336CE66035D883B7DB14E9282F84B5B97B345D32
D28F4C139647518B919360764A3514DF59D3B8A25FF4C995665D2D2B67C70033E522198B9272
C3DFC75E8B3B87C1FA032B6FE53AA2C17C8B53B054C1F60DD278B63B02101A0E61232A1BD6D3
3F4C14A194D11E1BA5E349D3F9BBF75310E8DE53396F00F84222CAA93015FDDCC2E88C264FF5
5D1E5A7881ED12A1BD60679AC4B84AD1D1C6CE66D5522721F8C86D40A9EFA7FB84A581B7D917
69417C27D449F7F1D3E1EA3D63349C713D7502822C8068C3C77835E2F5F90679D64BC94CCC74
165233B30049A4CAB02CC1DCFA18A84C1F2E0E5D85C734705DAADD48716962CCFE73C8E8F545
68EE4B7DBC7D7E4C4315189466E38A3A59F59DBFE6A85F7CF68B5EF627E1324B160F2FC6CC71
0C50CA03A74CDFDD52F679FF091CA94201A04F7A3075789CFD33F5A2A921C732442884D144BB
F745E43CD1CE815201DC684D0038D6DED4AC4FAECF625136D41D4D82BE625F1B67358565BA1F
A7AFF7DB503D48DDE4A06659C89AC2DEF6016124AF07C86C0CC16534FD6B883FB270B0A096CD
7992D0C8EF2F66274B2EF100F08E140A4FC5F2FB70321F97CF472DA0B39506DBADE9FC7FF4B7
A4B6631162721518197D17DE01BEADC52E1C334BF387CFFE1ABE618F047D605C53CFB3C054BF
97C4231596725DB5106B3ACE0EBCFBB7FCBF685D1B8862A572BCD4CFE1154739F78878ECD511
4044B37FCA39F4E2EB170F6D77ADD6B4534F5558EDFAF9C1D48F8EB54C849E7F4779387511E8
31715DB44B3D76BF740318522DE222F657E40F21405BE8FA2444F5243323318D3CFF5565D81A
64C828C188285585C46E8021CFD8967385DD081EA514127B66FD154E7EE0A068CDB536581D95
32939AD1385CCE20C65A509255FFDADD9FC8764DECA9190D825938FB5E4CD4EDFD9FCE6B33E8
4963CE3286140EFEE92E1B8242E8774590CAD0369D8F6562C64571BE6456BCE359F62EC50A7B
6D504F04B7445928A0BD55A184C0F93C95948DD8B9C1B8F72CED8F9EB7DAB40A177528709D87
BEAAED9C2E241463E3A05C046BC2466C13E0DDD87215748A33DEEFDE33007AAB98979A1D6EA9
5959E4A155027E44335B8F32C441F1842A1D8BAC7849D7EE444EFA7530CB96CEE1A402350AA1
B09B5FB8FE20E1D41F2C2D2E0ECA442BD6027B26A5BE2CB4EB5DD1955F185F4296974E8F12F5
0BA39A85007D9F5A52BCFF7D04CDFFB2AF451516DAB7C30D23297A163DFF9D52218E733AF00E
B87A706B5C0AAC8497093CD053FF5F6CC533A48EB3A686266D4380E47E8CC1C57F5145D8CA9B
6FEE9DEDA6EB504C976EC0FD811FB995008E3F8DAE3C63051EB964999DACFAE88DBF01EA7472
D92EF4E9CB7E070D8A335D600F5BB7FF95F7A91B6A4B96299B89CB8A602C613792C40B8D55D5
0D25843CB32FADE33663C04B85040FA1B7A5B3FB3409A7D4B3749EA52230A7FCF578A7D98C1C
DF496070194453CDE429C66EA3CDDC6117DDD2CDFA3CA823DBAA56BC8A04D86FED22A8B19EA9
FB7DE799689AA468EC7C855C6F2182B7ACDF19C5E93AAEE4634DF75A81FA5BF9E6AAC0E464AB
799E1B5182FABFA601F545EB58A2C2649CADE0615D4BACF0E64B12B4178EA25B4A434E51C975
F75AEFFD85DA4B2630407A5006ADB94395B4902BBB0403C54AE634CE1D7AA636A0AD79BEFD3B
9E516385D37AF81520D739A010C00CBA50794BDBFE5A8BBEBC121D5508FCD6FED964F92AE00A
5701072CEB4B6C41EAAB5202DB26D69F2813D0FB98BF4A1C43D2F57CE9F1BEB78112B93DB6AD
88018F5DAF30FD9C0A359D3B293207931CAAC860AD02B088A075DB82C138A3076A2B376E1999
6F8BBF93D9817EAC38591C24CD52AD3EEC1E807C913C9DE9E739127B7DDE00C4620C1EC14471
8652821B7BC5504D1342DB21722544C737967F39A3E60F4BBE2150B452023BFB39A70FA86FF7
00050DEA505BD75AA46F3AD796C461199A8E3AE54EEEB824FDA5F13131AE2F0B1F7574C153CA
CD6F0B46E9133EE8F5603C0AA4B1F6042F0982781812048C6CFDBBBFCEE20A3070A14517D06D
02F09E62F2BEDAE3ECEB2088D8357FB644B3299A7D9EAEB2D994C0C7D08AEB1EB73906A62F51
8BC5D1ED835C2BAC914DCF1394BD5E3102B09745663FAEEA4C90E1946F1FDFFB16DDC3FD0E1B
B9B7AE2929AB7AF11F35C3A113FBE9845B25F37F03FA210129C74822F1E0C1741FB17647E04E
1439980F454B5BAAA0513DB371DFC5515D75D083601ED915CCAB9A27AD3DE91A33EFB68890AB
C88B20577ADD9D9BA857AE710DE7FD9E507042EC614EB4602C5FC09620C18E3BA30D3898C9CD
4B280539CCCEAF01BA9D5E3BB4E825458A2AC93AC9DDB36638D2C6A0486F14C607A30AEA4437
07983D45DD95F2B57351FB4B0DFD8C9F771DFB89A0FFC361B59739DD378225F2F2953B0FDBA0
6B68F2D53913C4AF8921982B9303C20F69B3A35587D5E481ABC9CF89A2A09B0FF1E412617D09
1F74DB3E6E67B7C67203269D0DF37BF908DF7B8823AA2C30D7434ABA72B53E94A9DBF384A3B9
15818CB5B201F4CD85BE45291ABD6017E72F0A4F79A16C966CE412258D0C6FDDD94EACF93557
15D6E0251C39586B09D3BB59B172A160DC385E4C818FF55EAEAA58898A1F6E66470367D827E0
9A20229CB95A6B69D12EB7E8330F8D3CC7AD3FB38A7E03EB30711BCF4C163DB026C09E9F1F0F
F9EDA2F51514BB86D2D3D67A13745B9E9E2AE50FFC1A647757C662E8E502B0B4741408C44680
65B65D4CAF693324B03226568608BD079BD57B1365765966FE55148B2E98F17725052872DB71
AF22574E18881922154204BEFCD4D525DA1D70268BA4FB9BC682E9AADB5E831EBCC0D051D38B
EF684654C40C31D3192A1650A76E5FB6E9F40239A724B6762ACBEFF8D06AAD1FFC066C0BE680
89466FABEDA2208AB0290928C45566734770AF3708E6487D34942540A8AC1438D1812BDD1A8C
0D39EEDBE8042A24A784641A5D0D2B11927AF58E38B6D6CBEDA264201DEC8A8614FF2C35D6CB
7C7C3A8D194028B33B53572B479916E69508D9128FD61038F170350DE0052CCC20264357DCDA
F39D1472CB6880851DF27FBE7E3C9FC04942CDC7CF17C8FB9867F60352E53041FBC397F05B05
8F55A324FEAADAA91616394D4446ED7F5B17EE3536EAC9B207142D100E7E6942E02A276B899D
3DB3CCE30841F9E235DAB2072E93E1E5023FAE35F74F633F8045A3C0416819A7D1A881F4D7D1
4286BDE01F8A4B1F8867ADD9518781941F5DE804325F51FCF00BCC1CCA771D01C5AF57BAC8AC
3586261C73E83E736A498FAA61A3D7E232F0699BCA76942521C9CDC5BD79D634C48335A606CF
D52E1A91EFC8B46914EE6948CA0DC4D172F3E7831D53E9A732A3DE6160D0CF23AC759409ABA9
A9686BE80A3573BDBC82CC29D05A9F984CED4C4256011263813B83AF1BFE0E1EC5E96F2F58AC
7E34CFBC06AC08BD611FF5CAA0E61372FF987C2A4AE314A19C3D4C8331704C7368AD8C3AADAC
A7A285FCC727E5B4D54F3AC86CD44046979B3419C4B6463A920FDBE178A5D8A0487573B21D89
AA3904F878012EFDAE0059FB533B5D82E4C15469DFA55419EC8A4816498BF84725C4BFB0806A
5308AA972C1C4C50C4708B9CE106CE53832F88A8B127D8FBFEE5EAE19DAE97940B13C28503FC
E821145AA52D8C8CF56D688F9C50CCC419A73CAA491E4D0E2F992F0432961251B837DF415EC4
819171DD27E903DBDD061CB2FB2D9E27CF8C69696030F7CEC2F4B94B5EAA8F472BA3E2F336C1
FD44EE640B515A7BEDFBC7F507200682C2E125ABD777586674DC6C83A60DE75614121E2762C2
2EAF83CE0771084A7640F4F7473F8805A40DF74D72079B47C52789C401EE252A59E204C95EA0
2C65D9D03CA82C6526C863F47C66296217195B00C5AD2E12D24DA4ECECF7A92BA0B79644CD96
03AAB806389D4A6315F9A9297475E4326FF06BE4B2D71671FAEEF1887AF5D601B6461E4E8AF6
33047DB067E386E6CB43592B3976C4430F24719C1328B20D1612431BE39DBE6573E625B301BB
178449308793D58E65F19C5FB2BEEFB5C1D86191EFAFA1DA2A8C56C225C7A5806E293B24C571
03C24458B20C6B1E92344324050A8009BB616E565CF95E54F0105F888C027E315832465B10D4
6E3F0323B0B8784AEFD0EE61644072BE7F69748605994D4E8DC91581F2AFAA601D35DA4FD209
599224F3BCD075B70C9671ED2E045DBBA856D20D2896BFC9EAE3BF47CCEFA9C78CA214184D99
4C945EA76D540376BFF940CC498592C1DCCED96D24BB681748012F163B020F9AC3591D99B50A
416CE4EC712F02F9A49EAAF8C53EE34AF8F31C9B05F40C448FCD7F5357EF17CD20B162C5635C
1419013FB0CF6B615A97108BA1C774DD28D5FAB53D6D6ECB46AF69FDDE7BF99066EA85763346
5FC16336107AD620B4E8E2579CF6F461591827ADFD33154BE94A33F189DEE225DF4B2F46F167
AE3760776DC5A441147F2E250D6A638BA9EDB4259236C738789426B1857B82420B8FAF31293A
F3A88EB55ABAEDFE4D2F5B9C725047454A9FDE60CBCC26C39AD78112D53E6B25707185884707
C3C6F73048EC400ECE1422BD9E6393F3029ACDE93DD143DB0E446DDDA506775EB97F5AB115C5
B65B50B48B41EF03AF792EF553CEF4D04105DD2AC03AD7E989A64FAFAC951DC75EE8DFAA7B75
07EE1F83A6E710B1594B63EA8081CFD124B545344A79FDCB258232D9461EF6597953D1DA5431
F75C95601AE9A992E39B18F87E07DD45D1F9ED5DC24295CDD349038BDB8B847FBC2BAD5ED8F2
24202BB2FA43D0297EC6DBD78A9181EE0669148802F65EA9253444806DE27DD2B8669A7CA6A9
6116B3C60184E7E615D3B8B3453CCE676B4F0127EEF2EF2A213582BBC2B9E132DE78AFC66CA2
5B33D733547FBCE38285BFAE812D5347667B669BAB293147DFFC7328A8FE15F96D8B46064D06
B3B4FE2342F3CEB837358982AE487C44EABD17EBAC16DBCDD98E2A5B7906C45E3DEAB9DA44DA
2801CF4FEC610B1021ACEA31A7B1FD60C401CB46AF1DA7B1494B2124465BDD6E29CC9352C4E3
D366733EE989E52A8FA65F769F347094DBBA512A7A4C39F564198F3B90D41242D3C4EB3A9094
DEAD6538F6C2EBE4A4979BFBDF2169A5F6E399A2A44B9F01301C499CEEBCA7E23A4137DEE96A
FCD07653FE0475217A6EB0A08A6FA4E7AAB7645471855EAE331FCE0C1FFE3A873AC078B099BF
5E9B93BAA66013116215F30F3C8A4D6D55E3BC76D1C299C9AD1A459420C060F49259A605DDA8
8111318A33378D96924909598219AD9051D294782F6F4FC2A7096B7203FEBB38C00496B2BF1C
32C034BF443AE90EE30A155A588B4866BB189FF0EDB1DF59CD89A155E34E58101B4F9EEE8687
2BF7287CE5B4515EBEEB30F884EF166E6D920214DDDB0FEFBC4CA1090A4473C0FFC77540EA0D
36B8D26C401C2003BB199675257200E067F1CF563877A464F91DAB8F6607B3C09397AE5BF578
872A036312476458D1D8F5952C3E65EE4C9277CB4EBC91084DF63E1512E61DB8ECB9B538DA36
0F3ECB80A103A674AF37A92603D7943EA642B82D9CEB980509FEE58AEA6C1F4B9B08F7FB458B
79D9242BEE7A4ED49EB0B8E6CE538CF81111264E3B32336EBFF5F68FC24E17E9EACF5B5C0B7C
4F710DC8C13317D2C73555CD47B4CE9FF1570365F31CE135148AB2FD271DF7A9BF94CE5DDFD6
F921C692D8DE1C2BF0E6AA1ADF0D696398F9956B7DB398897C0D04C11F618518300FB85B62F1
2738811B50114477DF1DB7F182A290391E9954D24122CB031E87D833934C052786DF492523B8
353CDBABC617A5F01E6015CBE1824CF6C263219B989520397A5C594558241BCC6A2AC4FC8410
15733DA2D75B262725CF708F03488075D485CE188BFE6EC6C0B25D5366ACB83453CD71567451
B87AB24D0A9CB6D06D3F928D46126A954EFDEF1DAD596A409EF89997FC1DE1CB643A97977825
237A20D6DDB29F8A1D7FF4FE37AF7707502B7734254520066A87490888B921275EA72BFB36A3
E3DAC12FA1270B4E49BCA894978336968AE221C1AE6FD72263E56BAF7D5B08CC31D6D791DA26
15BB381197B67CCBC25EA2E4E2388C06EF7D5C3EE53401C5AC572EEC620A32B97EEACAB7EE4C
1CFA5FF419ACAF1A559B4E9C20287C79EF29BD1C0FA1D340B239B454AE7CA90180D59FAB8B76
B683E679DB984755F6F491AB638793EF2FFDA398DA132B14DFB5CB0BE19405070322CA3B40ED
37DB7A9881F9D9B76057DD9582EA5C3762954EA2D7EF0EE9AD35080540968A4F3834BF669212
86328DAF00C79BA3284D588EF20A5683D6EDF18DBF6F2D2A55B106D9DD4C112E29618C36DAD0
97D3EED5822A3860A4AA19DD3CF0C29A334E4593132994854BF8EE2AB08EAA32AD02757F747F
722E4A3E3714C9B65AB5B810D76B21ADC01B24E3DE6E2486492531E696B2723719D7F96002BD
69967FBDCC7980E00F19DBD93AB0CB2D389ECA2C2744D117DC8D6D58A63ABBAB0D4136E47A3C
30B355E286F6A851516BEFF6BADFBD2902A191AA054AFEFDEA26ABF8D5977F69BAB6BD8FD727
31746CD15F69CD98AADFB22B57E3469DFA395FA43765400D6248B93444C4D39428CA6D43E2D1
93635985EDD6397958F292D307E4DD1AFADF96EFF86634CB41F589B86D0E5C4B7039DC4B9CBB
76F29223BE223EEA0D73ED7382DFFB189EC48425BAA38F7526C112EE79CDCE9510EDA6C9841D
C94B9F5C9C682E87E6DAA0EA8B1F4C30900DB7D22450902D9868FDDE138F596681A479E78ABF
FCB7A04ED622038494F4E7039D2693E817610372799BD6CB011DA8465EED3A28929323EBB4BD
F958D659DF4F4C97E6A973E8D4D04F0EC7F57DDA601E3F8CD3465A039C69D8FB43D5DB3DB81A
C52EDBBEF73A86357BB6C6D869085A7A4DE386232A264A7AAFE841A11872BCD3D8818E9717A3
4B5266155C27B775F43B2271647201E6F71EF7F819708B30F7188CB19830BCC2317A77CC9CF0
AE7C8766EA8D53C9BD8B76C95A19A088C1691959A0286368A8BD32C26B4EFD2287ACABACA485
F6216A3FCECC8E62E98F83B3C12EE595566ABEBC3CFB51DA85DAB32368162FBB20A564440F58
E25DCED77B2B3D724BA448521AF0B6BAF6ED85AE3C22F3D5380F4A806E9A08E1B80B5BDB1124
D773C432E6663D16672D368D9F89A3636F782E5C692D5D2702A660E123D7B2D0B957945ABF39
1C5B6C84CABB711ABF4E7003289F2A4D501D998F88CC7271329AE766FDCEB31A94E51E741993
D6D72850C60B794BA95A3427C6FB0BEC4C841E3905C6F8ED506910E9F75548F6E333FDD94244
66304ADAC4C727FF649613EF7B38DFD17B1D5B35385F50AD28C6C1943A7A8C37EF3DDF0F11C9
E56EFB277292F9A466C1273148182C885903405FDC7399B09E1649828A7BA0C8615FF55C5C94
276FA09911841F4CA6FABE7A1ABE4AA9FA5203F651D4A58DA84549A85C26FD4BA735D2F8CF8A
71F68ECF70174D99A361E7CBB6C4F32B064071B602B0F79F68478940C3D312ED1895F48C0D37
CBBB3ECD81F4B4700D6741B464C457EE97B885C3900DB010C178508AF825F9713778CB7E45DD
4792FD48009F2E2C87A53284DD5559B37168EF24BEDBF7B41ED2FFAD448ECE86F982EBE67BA2
2738E8A24B0E9F16AA9063455D776F4698778E6680003B097D03B4E35722CAB6906ED5FB0A75
6AF1BF7D61DFF19530EF93D8A8E916D46C227BADBF3FE9255849F939B0B6010488B1B8065598
0B755F9161F60815435D009FD9F93B2BA5D0A0F5A4E0BFD864BB8F8B5235D799C41F2B1FDA5B
18011EA01D06B3208A11B79721555C4C6FEFE1A71D17B7BD874046FB963FEC66C715C4CF249F
E0A16680D8EBE671033F5818E471158A8425319023BDD850D319367AC3F876705718F5AE0295
58772C1660B31EF819D859A40A23F7BAA679F33C39DCCB633BC4903317F4163525EDC99BABD1
A020496A2D2774E53757C64AE1CD9F810A44D08BEB891E107B664B8A2B071F57F33D8DF3E4C8
F0C36A49FCBD0C187A80785B4AB096BD1B643B414AD15C4F55E3B4E76AE50F985D1D322BECDF
00A0CEDE6FAADD2E135CAB239892BBF7AA757E799B7D5DE205AA0C12ECD2B89FE356C78C9C29
671257701F7A1DE94513D3784A4D83DC68BFC6611E5E3E3F065D28212EF9E800FDA3ECEB363D
E4C0B7AC198D5A7D18040D650510E01CCB3D2D3E8D70EB9132320D65D3C13B06F2E1C6FF9055
0300CC56A35396B752EF21424E42897D528287AADF1894C5456B24308C499778CFFD0A9C47DD
CAFE8BCBE2C72F6C9A0DC7EABED7CBC1C167660F6EF2CEFD230055E9CC4784E9738542FB682F
71F4519250351DC563657AC72450E9B77D4D6FEF9C108CC71428CC6A0D8184BA10DA09A11FFB
D4DCD60A728C11DB81440EB358DEFE38085C3553F2147465CFA672D4EDDA0675B74CFF3FE88D
2E26DFDF657029E41FF1AF58A849E1FE41DA68F37C4C391156FF0D0BEF7EDDCBEF98859D41CF
F48F43666DDDA84A09889A39098384B1A75DB4428ED1B27DE209535A0C6ADB0910AC551D77A9
D7C739E432A8D3370922028A0A2B108174218859D0DDBD1D0B0821E3743E45B9A4B46D28D983
65202FC1739404F020FE8F01A910FED75166DEAFDD6ADD5318C9D2C54A257D9170AC4BF9C4EB
9805FF08AB9EEA2208029E20774F799398E970CB18AFCAC3DF56D7D31F8F269CDE1D409DB2F5
09F50C38D12DEEB7A5E10A21A50543EBFDC9409A4754CBDF1D901BF034C9D0738FFFAA0119CF
23661A4235569C51A03A60E1D2946BDE3F345B40B0337694E415A18140E4A2C73907B1BDAEBD
4395F6F3E8B85D85C60502CF6FAEE7EEC5DB0AAED97980ADF7DD53AD500174F86E6A7FFB1E3A
D268241B34ECF5E624C8D3CB3CADB206DB05FA5F6232D9391C44CBCB31D0826CC1C49F59B4E8
CE06C36830C547971C125668C32A4A9ED0AD0500FF63498A5B7106C1C7B8011EE2D4458B949A
FD8306E54F269FB2101781DB07E615ED536CF13B188CC4ECB00357CAC634C266C797AE518139
959AF787F0321130FB46C7749116CCD43707A9F29F568AADC900EC3B1EF912C82F0B35BD7C95
26A05C97796C639089EA67D7656CC4C1D8A3235DF12D5F5012679782CA64B70F6D759229C72D
C1224BEF8161FA7B7AED3AB5BF4846CC9938AC48900BEE998FC6105597C279DD801524A5D0AE
291BA1D518D2C2AFB93F8FC205CB875E62445EF5E26F9C199E22F0D46F67F9596E234B69F695
24474F4D33E6F05A6B3A3E97C3783823946DB89CCA8B92592BCD793135650F2FACCC729117CE
B004350727A7CA91BBD8447B3AF06F3D77C421D134B04EBFEC5A45C530DC43AE578918FFBA2D
B5126BCAB86062CF1398A36A572D292AA6BED8FA49FD2A3E6E54896BE7346F1798FE360BF864
7FDEB124D0B69A74486842636201DF50CADABF66B6D740F51D3C874D37184361386B99545EA3
F6E2F3BE38CD40D3DB5B4BA56F8AAA58D3200CD1DBB69397DE61C8B58B042A18E8C32C780B8F
C2BDAFC3AE6BF11F6A8DAAA22606946BBF477576774D42C84D5DDEB4F9E42D02523062CDA436
7B7D3C6532A03742B0EF100BC963953AF166B4F1799EA39E368A11462003553BDDD46B6C3E39
906A0E44D3A6F8AD4F2CE3EB279B00CFE0A3AA7B115BB2A776DA8DA1BE18BB7590C718FB12FD
443627FBCE9EB9E666DA2FCB0D05B57F4A42510E98EA2AE9D505198A035845D10F716AAC326D
E27E65950BC78D768CE860E4AA05B4D5DBF72B12DDBAAD3B87A4D8DA6A8FB1CF054B0765BE6E
5CB8275AE435DCF5C155BED0A17BD98703AD21C761AA1DC4AE4B862ABF00AD17193F3CF07295
AA86F94B8877EFB8A78A797847810B81D947564A64D29B463F42D4A8CE6B69CB187932A2C783
D23EFF89E72F1C7F29F670C9E9B1C3230548BB5CAD5026B04FCEDF08BB042A50A1BE3897527D
627BD7B77840C7B5C5B5508735A485CF81BB2A1E2C70E97B3520EB7B2AC0600930FC3F50EA21
6403C752DBF364372A3CD71F29E4132F2551A72369D87A6D831C85C60B28978324C6D73ACD21
3ADA67F5617C144F0C14A93E79B7D37A3DDCB52302D99275D53DBB8383183A53188AB93E9A35
546794DE891FC794676C9113810B2AB8EF8DDCC204A92EF0C85B8CCC243EEC8A85FD3354DA62
2FDA81353B0831F0FB0A42811DF9CEC7FEFBE85BA7D6BB1CB3A4AE3A734C819B0825B41B5126
8EACED6D6A6F128FF2FCCB5C01A0E19A932A9771A1858BB34ADBF3F4CB3F33FDA39C45BB0197
A1543286F8AFD00146D68D0B3C9284937495E30630249CD472FBE5851B27E5CB4204BD638B3B
6F2065F905739357330B76848288E4220C6D41527DC98A087450957D4C2299CA64ABDB830651
7B61771F501E1DA1C0701B9312A0FAF08E0EC16898A8A90A25C5075A0673CA4D4338C91261CD
140AD4EB2E1BF71D6D0484B2AA64F67A08592E778FC0158277B03273EEED69E12FF62AD6BFFC
1D7ED54610F03E617F945947865AC9F71E0E018FCAAAECBB41F5F92FE1A68746BB2338D15898
3C3B7B480D11A6382E4EC51560C6DF84A78FCF1752B859652D08DF364359A4AC826392DAD861
BD9943637AF5A67F113E781A1971079C9BEC34DD23DD960B549B29DD9E25BE1E0DD7584A9DCB
4C5E66524CC3F1936142435C92803C950BA6D59ACEFF59FD61E02449B6A8FEF41C1BA7D0C09B
FC653D38C58C90D97E898D04E02E6E9118B084348A59090D0E49224D2D11C1B6DE8F178B739C
7BC05AC5E4219720C6BB160DD135FCBE1BEA557143ED740D6DD032F26FDC0EC2B675C857341F
5D0D2492E390D3951350FB0C7C66F31BFE834F8B8BB21B61AD651924195F9EE74AC642BB8130
2190CDB003CA4904090537B03DFA52C02B5BC3BFA13C5C114F62FCA8B61C889E06402E8ADAF2
7ED6401C8AF3D399577A102EBE8CE26A1E7E60BD9BA3D5CAC856673F03983E5EAFFC0F4413EA
368FE6AF5CB9C0405438E7394CCA22ACD6CB9444DEC03D7EA18AFDC13442CBBC1C2144D90290
E91D21CE635480B63C3A5BFA03BF4F49C14DA1C11DAFCB6C34F3D6800FC29DB8D00BD85183C2
32E9F861FAF78530F082A59739CC9D3D17BDDF8A1D32CD7D4C959A1765267F4CEA9D70095F2C
985FB811D05C9584D999D96F824532C033AB84D3160A3E38EA18F6C511276673112500D9CDA9
6EC4171A1A84DE2BAB668F626EF09FCE8B704F93D1FACB59711D7299F099F84C57C86D4AD4C0
C5681352833DC4E6E7BA1ED2256B1955190C63E8A995C763D8E2FA1C045D182D5E4A63AFB5C0
981FEA06CCE8DB03A2F8F79D2FDB9953458CED0379666DC2371FF972C6E03D842BE6382470A0
7AACFF9CFBB72008BB284F68194D6F7D3BE45F2722EA81AE334DF934813D5E065B3EEA769A6A
E9670B2BA63AA08985EA9A11A7001992022FE3016E9F89B35139FC81849C7D897F87AF81EEB4
6E72BDFAE6E63DB33EEADDF70A8DD344B993DAC6E3E8FEA413027AD4FD9CCB5C22A224F1245D
942553751400BE6B2FC7195A17A8EA93E383518939185067A2F2D8FBCF09CE72B348CC16F8AF
BAA2A5A2B8CF72C190ACF2DF2EC4655F97ED9D437D882048D8CAB22E25FDACA835A8CDA2B4C0
CD8220CCDCE0FD7D0289CFBEBAEE1B2D6634A6C41FB68242D0223F82A87215F94CAD342178B8
74D66CB371F29ED3FD599B830C6735E24FADFE867232D21811A1AC562CA1921123196F2297B9
206F0707003C48FCDD719D0E3F95F66EEE06E7396AD355C4BDE5E168DA2417D4E1F5FD75D9C0
1AAF172780990BEFC7B773ECACA00F21C1C1CDC523FCD7474BD3980E874A3C2316989DDAE768
10F51CD5A8F36529C819DBEF639941713F8E3613E7D5299CEE9BFF86F11F0D681A0EACDA1035
5D5DFF565560427A46F68A9703728847671709711E261698D32AE76DE514FFC607CFC47C8D6B
19C409ACC76F54C2A05839A69359480D07BDBE9870BA8D043F1953DE09FD763ADD58E5D9A72B
01B97B089447AE306D1C02BA055FA0FE5E9D928D38B8DC2A189A02745E95E4D82F89EF2B6C8F
F8CE98DCAFC9870912C7EA7E411F90CB9E3F3B84CC8ED7D2FDC2FEB9C02F742905DF833715D6
5A9485D5416E684407F45AA3DF983DA5D99B404273B0EE1CC518AF9A1D3DB10CEF6D5FF0632D
CBB74D6FE9235415CC43CB2DAE5F4D46DE330959DC13291A35B4493068A3818974DC9390C033
2E92E2D8C1EA2282FBC2D28C6FDFFFD641649DC222EF56C7A2D7B69690141C03D68856A81529
5B52EBEEB01DA445A0580F377E6372FD32E331182D2610A122C59DFE5018910DF9D09CE360D7
223B57583933275AEEACEFAC0B368BD52B8E80A316829651E63CD009F49715C0140D847FE983
61C4560863CCDA32F5D2CEEE35B26242B7D146FB6A152F8ECABCA8E99CB8BE2F0BCB3A798B3A
C3A6CB860688DC3B2F6958FBF692CEAC31FB88AA7AC3686BCBDCB85D175981E8FF690959CEC5
3760B0CE0927412D92A8FFDA13F18CF17BC02A003EC55A8144D88138D3C21275925DA78FF7E9
C97A964CC1C057918B26D07B4CC8546C21A01ED9BEB3F634914AA8F0095F440E40E9E4FE34E5
C5C6DF82E8D26FFB169BC35DA854789AC3D646C131EF1C2FDA8289C5202DF6031369F790432A
A9D8AA6CEEBCF3DDF9158F883B39F2E100CC1459EA741103CAD52F4CC12E85B3CD63DDBD6B13
DCE51E43CDD7608C041585A73EEAC1DD8750F00E34BAEAC3DC0AB17FABE2E65866E644C8F7EB
DB78C3A7E8ED03DAAF96E8D536E021D1DF4E4C4BE3F0D983F8A7D1E4BA979CF2C8FACC0512D8
8943FA0F306C6269230FBF0D62F9BE777E7E6527C8CA185465BA6D557B7E336EA3C5FA879A76
89C42AE39089C132342595E73A1C0B502E0E80468E617AB5B6B29A95C0EE6B438D1FA0C51BB7
F1CBAAA035671E6AA0100B1439B7123A2B2F47EE8BAB6D47A791FC9CC8FDD4F890D16DEED458
14F074896B5A369CE23C67E1B3A8A002419FDEB0AE2EFFFE598AE2511D292FE190234A88756D
DAE9DC54253800C47A2E9875FEBB0A7B13553C71EF960BE912BC5E506229C3413333A1F423F9
B1941BDDBCADD80614F8AF67EE3CCEF8E3C5D0501DB479FCD4D4091DAD85F6247E0CF06680F9
6C04094CE41BAF24C8E604CD38DCB52FEBFE39F5C1108E18A3CBB117B34BE817FDB1B83E01C7
B5E92756C3A77FB3CB16CDF023A8098381218CBFCD3FC5A92724CFBA46F56C05581749C3C4FB
D30AC9BEB28144076430AD3EEDDEA99B90C0D2127915604535DE2E63BAEC6CB366888462D6CA
E51F67ED76037282F4C8B6E2E0DBD32F6B4C717F20ADB8E6A8432462F6E6595D660C7AA78C5B
8F7BAE555771175C54039774569ECF2DD8500FE4B7D037E96C9A2D3852E6EE13EEEF6D4BB60F
D14946472659D7DDE556884FF55DD80749DB56A41D1144CB84B30AF3B2E201288433CB2BFDFF
3E950BD71BD2E128884CEFDC298AFFB035FAD1E815FC925AC8B5E04BC83051669009AA374D49
E7AEFF1CE72F511A68920CB2A6AC2313A97E1A9A70A4A7A697AD84934AB37062E2023E85B725
681C50413171DC82975A656C72EBF774B00E5234A5765DB2B6549DDE6D666F9F444B3FA55C52
13EE409A52429ADE7324B9E12B9855791B4F2DB5F4B267EBFF401FDF8F6E2162527D31A92683
B99AD09C5446A44592AF91FDD2A52BF1B1B7CB630B9F48494A23C892438C65D3250CCDEE2227
2F178182A43A875EEEE2225CD83CB967E239BEEE42FAABF2AEECB6373B9D49B986987FB1076B
0768BC4332B8CDCED83B0253AB8A8DF4F1BD550BECADC3616671B72ED126E069E2354B8DFA0F
1A1D67F904AD63419F929CF8F91F3D74791D2B402C3F72ED729A99B398027A3E2DB23477238A
2D1CA27553B898DC3B7CC41AEC71FB5E9588B006589E687EBC20B9030D9B26A052B6834C7C98
CA7851A77D34D9C141D841B92E5888CCAA63250F4933632A7BA8853350A047860919F67CCA0B
8B36B3339596FE0083CA1CE8C59974F84E9801E577691693E6AB390D199F12B2FC84D55A49F6
54ED1C61F90C3E08C875F5BC9C202DBD094678BB9819B876A1C6C36C8798893CEBEE5ED8FB03
79417DAB064EF07A8658B5B2C7C7D3D614BF5749C35D9E1B804F180BBD92E18B35ADE41F78B7
D4FAD542CA14F406C1363F89245DB6291C82A9360F0079CCCA414CC06F2E6666DC39283CC84B
CE68DFABFBB0937DA8AAA3B973C04BD1DB6483A8767369C69A04E5CA3A34437AD76778C62F99
CEC9D530BDD821C04EAA7CAF90DBEC92F65765D6076204B5A9DAAD610D35679CFFAC06857421
C89AC827BC2C5CC6A31C2B9D7A1D6A2DDBC6B76937D949B78D54742B0FC64E963F995E1C5BD1
4F1FFDFE482737C3EB33D6138E9C95B31072E6D1EC00419B1F2023407CD018C2D98A6E097E3C
C13AC9C67246F84942DA4F90BD79881A97F9D1F0CA3E4FBA23C424479C1A0EFA5911D6474DB5
FF424E81C235E68C13664AD76F2BA75970D95C6CA12C19616CC57DE6B2BAC55CF99CD5C3378D
429CE4EE68A3AF2ACFB959C52CE7F38D5F1B9B8F156B5C0A2E77BB25FB5F548C361CDCCDC92D
7B88216A02535FEF48753EA8B130619B60406C0F1DFEBF817113BABFCDA72A8175DC4D1CAF40
36CDB88979A8C739F09F8E858E062CB2E24CCF1B865DB3B4E7849E0CFEF335C536E4DF9D7C13
D8E7960C139714B806546C7D7173DE7571F596B7F260AE894D79B729D6BE2CCDEC72643372E9
59C35E6F971510FBF1A72175BD71FB52E400C0E4582B9428A301D924F1C76F9267BD35CE9EC2
59384716902D08653759B75A073794483174A800ADD416BEB001C6AE9E98932158B901454D2A
2561C3BD8FAC5E6C389EDD071F9C42067F3DD673075E44AD98A85D835C051BD20EF593C367BC
BAD5019E56A8C5E96A31D022159E3D1177B0EDCA40C6EA7D9A875DD3068053E4044E2221C026
F2CE4915C9FD60D78ABF9C788674F1C2A2EE24BD9A7299B3E9D4BE6EAC690BB2CF39C96477FB
A43AEDA2F2F1A7EE1C485316A733C1559AC115A4CF874AABA246A2A6B8FEBB655679098760F2
E234E6F9C24B7A49011C0C2B9C5665A033E62CF04B731C0BB35F4E6ECF8C2A780EE222CA0779
E72109D9C8AF2942CEBFB9FBFCCB449A06189CCDBABE75FA32789DF7A34511937AD8D338D070
B93743FFB7A7DB9D4BF1A8A5B082A4D49C0AC372518F905EF9AF83CED39CF96F831AD65BC926
6B4114CA15D1384EABAC20B004EF6E11D4A88BC3543AAE2CA72C1773E5C25C22A7D1A1269D9B
CF55E27904F80411CE6BEDFD2BE607418603121A6C83E0A326079245331A8E32481B6546A493
2AB2C6407477303551135386C2A72894E6675946AACA7DCBCBB27F071792B7FF2EDF176ED5F9
49097DE2F9D2872089637A8C0FC1980DDB29D833CA21B1F77C83C091867D5E2B9478800B767C
1CED6136447CA391773C83134A1C9C675FED32866ED71BFD8440891AAF4B5DF4801D64F62A48
73DFDDDA213033C99285AFBD4C4760D0188A2B71F66B7DE1AF68E79EFA3A28D1B8B99997037C
4B7A0678A963DCE7EE37C8573290A71D7006034CB9BE3BD1E6DD80E672E0CBDD4D655B72BF78
F1254E6FAADF43BE63D9B99C6A22BF1FA72C6C046D68F6E1F6ED11B0EB947262DDAD902EB28C
9E0C73BBF8D3EA467FD65589754EB022C786CF6D26B57E567241F0B79E70B59311E1DFE405EB
1DDCC66D217F740748F45C5B4F579B46EF803DC25C80524DCEF82F693821993C9203171F08A3
98E534EAAD53EB18B02DC1B3FA37DFDA5691B5D41079B2F83C2474A736355C550E7350E535D2
D4ABDB1DA6FF63224AECAD093D1C5EE590B4F1B641FBBCFC1B725555B9CCEB409A07051E8EC0
B3871E5AEA0B05F6014FC3ADE428AF519F3B3DDCEF089FF649466D9736DF7E738AF7B3426060
585292E64E6F1FB840A3940A6EC2899E087541883A14F4415834686BD27BC617BD045DD6AD37
03598977DB7FD8DDABF826797CD291781DAED584071000E882AE83ED65EABC7D8E41C8627A95
81CCC0C985D935CF1212EE318B312C953F19C87812E464AC84E349C4BB0E1650F2CE981DB615
699CE47315CE926614D1CA497D399CC301746170915C9AE1E9D7282FC43D7357DB4C60B49649
8146BED51698DEF9EA33F02BC0E88010FD7A49FDDA565C4CC95C0F233BFA9412849E613E21F1
233BBC9059113A53151BD769B4DAFE2064FD720DCF750003425D2C761CAD07BC0CA9B1A65367
EEC4002E9CF61E6C2ECC91025191EE79D34546AFB3F784E0459F843F0C10B887AD599DEE1CA1
C358C3BEC4F3A123FF133FB2791CAC9FA54C1581F623958BBA3B58BAFC01CA81D33C282A0FEA
DE63019E9B63540A30656ABF068BB0373461A5794F572395FA1AA6A8DC0CCD495A3699B6940E
98F38E17F472BE2AA6CE364CC80F0E7DAEE50509176F3A1CD71A3A6CC35BC8A71A9B4CBCE2C5
33D747A614EDBC4CA39C3E23817935968B2A7872E57F25F0AA4C78678AEBE5214B52056C5075
8DC4A693B543C46A8823DEC739057A21981D4B43C3D11D69D6AB56630EE7DE72B5321E51EDF9
3FDFE48F6B927458B99DDBBE568A1C265153BC511928C9DFFEB6180248747FECEEA1A02B03CA
A6757A44D5A4273B53C5DA533815A29EEA9136BE9199BB8B0205D280CF0E30BB206B0418A86F
5FBD023C97E3EDFC9EE6DFE4AD3509F6B7F151B047F35D234135EDBF5E7CE8EDE6E3038A45CE
BE76168436230337C041529E22D20FFD2C687E43E8C8ED2DD9F04B163A7C797E0F6B336BD66D
8A4F56C40AF5F4CE9CB4B6F87B4684A61D847A0B599BA0E798EA51E55DA63A6B3357C177F4DB
31BF9F4D032807480C3790B5362B11B7AA4791A0436F00320088D46FF8A1AE530536950F0E45
A3EF9EA89212B138C0B27ADFFF83ACD1CB04ABFAD2972BACD02AFB2E95E42156B298693B1429
8F2632FAB766307C5F814704DF39C0914331FA274FB10E027C86E9A0C9B964304A0CC2A7C26E
ED515BCFD5BEF4DDAF1B8133B3D98C9A08E6633FC966E943253B60CE647909BD20699AEE5425
AC01F37B877FBF7D7FAB8D9D557BDB47313506BCF918F6837DD1304DDB0DACB24EC2B9DD6D25
35BCF4E14B871228F3F4FC91931E628A49910A45C11CE3721E86BEDCA54EAF749E172B3A1DD5
A10B48DBE127492751F0B212A3B65F2F7640D6C04666B011565630BBACAC7340A129B3A99500
C4829ABAE118975657C6504257EA4881E77C26F95AC21C5BCD3FF7BB17CC9C6DDEC4302C4004
134B5B13BB71E83C6377B015734B1FFE81E8F94B20BCFC6821B34589CEA7CEC655B50CC4A405
121349209B0A62915386DF87B872126B3112AD6E26E7970AFA8C1C709897D216F5F2EC56B054
B19E6AB8207E0A84DB216B97DA19F16CE1BD288AA01731DE41A5561204DE81CCB579403B1D23
AA7A8992AE8063997A155236EFB632CB159BDBD40F03042D4A50CD8ECE54854070E7516AF996
44ED170CBECC6503DADC32BF5CDCC82F553B23FC2B64DFED74A0892A2FAA1D7B77C247403249
9F612BE7293544D27E2F3A8DA29FF01A575794D72174E6C34D8596F62612B566C202D9DCA084
5EB5A739937CDB759C2C8F81CC66DF719A92857D4E6FFCBB7A7E3C0A01385C9EDAC5156B496D
172AFC91BCBB74512C74C018C1272FF47C5854F27644D46B597F987713866D0283A957E2A763
707FE5B40D31759F7582348B98553E9DA18FD45A5564D6823A354BFF9BC4D0CE3E70C8A45D3A
68CFFA65CB453608ED299CFC11EA7A0B3410FBFC37F5B8454783EFBDF288803F8CE6F8A01F5F
F24340947B7E244FA840E43630636213C5A27691D38A72DE03B02B9E6C868FB9FA1BEC8A3E14
BEADA7897C6140E95BA51D86BB0A2E7BE6A8E9F612120CFAA449B87198378135DFD32304E3CE
D42A2D97C817AAAA815788EF5B9A7FCA0A75C39B9B09B0F52FB0A8FDF3C2376D426A429A3EBD
FB4C6149DA1AF25695A9E99BFFB72EE5C3BCF6028B7E94633553A475DBBFAF30C81F28CF05C7
02667A2AE12D378D716F8696FB6E354C59897E64CEB808BC20D17777C6DB852A4C14CD4077A3
9CBDDBD2278D10F25A10EC0156BEAF3CFAE11727BB96E5C67A2F5674710A2652F54F07811EF8
67005F25DFC8C32CADB8D5A851DA9ADC4F543C0A20E87C89042185DE62E3754DC60E399CF949
62FC2B2C92EB6F18CD493A28E4DDFC967FA733C1139B9E9C19CAE9E9BDB2A3853899D770F2BB
876453A5E529A6F705545968D2ACC39C6A7176DD4A36300B8CA78E013F4863968871AC9A58ED
5E0F180505C57BB36A258F481075FAFE11A9811ED14BF83078EB70FAB3AFDF9249C661BC943F
F1BB8F7F5193DB527A17EF5A5F06663E46421C6DCDE96F0BE24E800CAC9FD8EC73B0A3066BFB
E0B45FF9AC112CF7D39C33BEE23E17825143A83FCF176619B62A9569894A5EAD5478D89A3916
66892DB769815013934C744D687B0852DAB5609695D04BDFB3BDC2DEA01FA391289D96095F7A
C264D3B5ACAD7367D4E0184498D8622A6D8E5765EF86DF7E3EAC4497D91DE2E4745A2F376973
DF2A91F7840F4DF120DBD9AB14E49ECEFE6CC7522724EC7037E8AE0DB05156CA3CAFE106B043
C9BFA1618F7AF8612DFE1C5B5FCFF53284CDEFF90D036ADEE1B18C48B153C16ACBA363E0281B
771E6392D9623072F373B46079BCE4A1AAC8AF43BE66993E5683DBE0DDEF411A2C596FA89DC0
233290F6EB9AC18A841FD965B58CE10F14B1A1A209445EA103072027F58D458BB5ED6757401E
6AAC4C5F4E8462CE15B5C645E78929F209BD3DF5030501AD73A68FB32C4DEA54FD0DB780699C
54AC5521CB59B4AD81C9AF75EC8D7FFF437E7C820C22AF6713EFAC25EA4FAA1452AD0E4C7464
3798C2A0BACB5735362E96480C031E8F04254C09A7027BBB7D68929FBB603B6CDACCC7E5267A
A054B59E6CC8D69E035326A2CB7A8D7227BCAB27E88AD3A830CDBD1656720970BEA410F5C635
EDD86B6BA4C80451A381227194F9AF14C1AAB51D89AB5F7B716A70F58ADFBEFEA12685167924
BB3AAB29C32CDB9142EFDA22B4256C8861AAA681B4108013026717680A8FF856B9DABE200FA2
918FF2614ED0B94DCE292D3AEC11B26B980C913720BBC96D0451785711AA466ABEE565732B90
D5F57D4C8CE07D9995B8C6D7E3EBE371F675977C795D1F6454FE91F12ABC545E3FABD555CCBA
EE8E2610A00019B257777D8BCD2943CFB5FD16151656547535632ADA97C666BD598434CCC503
F5AD9FED4315E16AA589ED616C91F48FA3EAFD69631BD855E1E322813D07736190AA8A72AB64
32B32B4BED55079B19B44E410E94CA8EB2AB012F596D2A4A85C62A13BC1F5A784FB8BDE0016C
AEA38413E039494FA65CAAD1F5584D551D98E277CF40B3D83C542476EF9D5CABC24D45253A9A
783FD849574D149AA72E04F84C6D0B5906F2558DE44378771628A09DEFA1409FB01DA98F5A89
85036EC6603BFC234DED9891E5AD79F0A709A8878FBEB63A86AFBBC350230B088718E6ABC1ED
C92418B10DE09AE5A10249DD01EE2381BE1370102EC9DA21848928EDC90A61A810A86B217AFA
A232905E13E5165A4E0595B0FB8033569C4FF046A37CE71F9B862092ED07FFCDE6539CE227C9
2870FA90720B20557379F92B4D0F97F740336ED5C74546D8975BCEE5DB9163CA4F2A50689E36
89A906F76004357672CACB821D51BDFAEEA02D559E46E24EFAB48D9FD337EBAAAB739CF189D9
CF55EF808FC5C8E51C9B48144CE544D477761A3722649C26646683D5F7230A36FE3A4AB07CC2
B5F7B8CE48C667C31D37FE782420922A685535734EAE4FB9D1EBFFD092E19A96D1DFADB765FC
F7F95E5EDE75E084E060A8837DB97E2A06D6B64CE8B9B0F795F6E8966FB42E5055EE72475C1E
00ECA8A8C3C3462417DC4A18359922537B57B76249FA089272F28402B5260B3B4EC7860B369C
C8155CC18F1AF97A7D5787C1EC196859063B0837A979DF74F11E174CEDD9AA4103FE809BCA9F
06EAE001F4A3836FF8D5FBBBD1DAE45BE485CBED36758A3D9C64D93EA071E8E0C06A8E967AE9
D2D372B6BF7BFE6783857B61912F2FD1A93725BAD10A33E42B89F051ECF95715CB0EC20DDCF9
6464D14A11A35672F08AE63BD7B6BD2E75441E2BE98DA7A71A7DF5874DB12F5BA8E51809755C
B5724BF526F47E4AAEA889494AD1F3B1E83B6737DB736F6C55C03A3157CEB3FA43463F5B2B36
B51EBFE01C4EB9CB8B114F4C13045D5147F77555335E146B88846F5A2188E0FDA2D1084CD68B
1D8E57219A71E686BF5BF4A466B55D4F03838B6EECEC79BE765DDB870CFB314E6B5C4B0D40B2
6FA646692DDEB8ED0FB376B2A38AF0856566F059B1EC1B0DC23646640A3BBCD561DE9057F351
5D1600889E5C538E54F028DA8DB79F8AB4B3E3D4519E3189C84332B6127B58AEE3DB390BC6AC
E1B80DEF67AA8E05F9CB828DAAFA41ACCC81D8975EF7BC635C8806B49B7FC0EE31BAB1832E37
FB9E34D6771D36E923AE6B23756538AADFC8DBFF604AF9C616032B51DA593CE5F1D571336914
42BD0CA92D821095315C4C15DB63CA0284FD07022421486A99141B381B4948726DC03294B7D2
3CE3F6F76EDD9E7F5949EF0BB6B6C9E99391FA5F7AB2D7823C53AA9348FF8A0F658ABC535CB1
6658BD6A820CC8238B4E368B159B2BB0C8A4D41DAED869665908C705B3A62801D39771DB5A81
33B8576A7A3B15EBAD5C7DBB13E4C14CF0616151EC38E8D4BE29F3F7503B3DFEBFF5702652C4
E9A53BB7419F218ECBCBA698FDCA18E4ABF8334A560DF8B665DD662F45A6A1497AA714BF33F4
6C23352FF9DCA13EA6DC293BD8083CEBA2F16DCF98F52B66C457F9D343E316D50542E6370548
0B38F5885C523E138C07FE4898AE6CEF895CE797C7092014AEC3C0011DF06339747C65B09E4A
9D49D49E05D41ACBD571EA689A517C4DC77C003036ACCE7AC333229571F53E8C1C6113D3C7A8
5B21D301157D2FD6792302BE767440435C935A14E8A28AC30D8F1BC5423252E84CCE534597A9
1A8328FDA478E9867CD73FB40FB98960D045BE7941069DB1EF473116C623E21D522FF26C118A
CFF50A67872D52681E690BF21D02036764EB7756778595E7E912437426500A68F8DF3DD493EB
3E5CAC5C7F12FB21E8028C02121B5014A4745FFDE3726A71D3D0E1080F94E1B9C962DE3B9248
E23F9D8E86F6AB79AE0D3CD245926CF6337B3116C7F8DF492A94BD241AD3524E96C603F4518D
E54D07ACAA37B64687C95785A71A46A18BE6B2C0DD08DCC0F30367CB1FDFC650C68F5E2E9171
E9E455925C2448DFD2059C57CF3ABE96FE56F56E7FCE7E367B3A484A44DA8FC476ACEE829823
8A6438AA3EE07F3C6B5840A512E5F7158F52C6724946F69BAD1B1AA599704D24B7471031EBA9
2FE05A754FB393CDD4D2F93E49BBD0AD0990A4EDFD911656315546FE34C06805BB8EA7CCAD1E
77FCBC506E67C3591072CFAD5DFEDE064F775C3350F770925EF00BB0D3C94D1CB0DED88E021C
F2EF4F86E1DEA2D3AA949FE6FAF31864FB890DC8C94D8537F204761E2614DEA95B1D98C3CB30
573CCC5B2D62A6E3F0B06CF1B447BC15704A42BC1B27C63226BC2997838260A3FC35F1024614
A4444B75D849653B97B4EF7BDE5DF9FD1417B9D6CCB47846EFA90AF346857605FF94F57CD954
380239C3C417FC3A76E18711D52A36F6040A8DCC929F2358ECCA9F73A1A31C2AB50F4F449A78
A04507F3AD2BEECC1D8740BC2B91ABF257E7616EF935B6A8188293115349B10A838D6A599796
A1E7DE2388AC8D9FA2AD2324A2C0C5F959C973CA429BFFC2D48C392D621AD8906E1FFD824A2C
8B0EACE66857483F19EFB505D8717AA518EBB08D411424A3E116F67CF5FE1B0622F0CA68D0A3
74AD8A9A1C4B64C90475641F92E6C64A53339464F62DC8627D5C45B794DAC4630EA6B392C9B2
366A284E5011C0FE1D889AE7EC59E6AF693CAA2AB152FE4751B8EB0B9D741CD44BA94DD91C17
6A241213D740D687C7EE4D5849871FD70CBFB404EEE79447003D93AD7C05685920FD56707188
046EE248174E437044424D69C321BD0C49A02289444C7E52613A64D11CED3B725864893671F8
92588976BED74DF8196BDA3732D84848BF917393C9D5AC7FFF80AB6078AEEB999950878DF3A0
53CA42C21D908FD7BDCD1B7F3FAD5DB2FF8C6F982A75A13439D80E2DC82094BA7729349654DE
8DB8FBFFAA5891C4E65D20077756C15D8C5588BFE8715D009C5BC7828552529668257FEE0DA8
AEF15F69712D2D92D0B2934AD35EA4D49564BBB98FA5FAB8F42F51A7DCB654AC250E0BFAC224
B75115966F083680048B0358B599CD20E401C247341CD8921AFE0CFA82AF57902F85E7E437F3
D19C6A25551DCBC8FF17FA70D5589AFEB46279900C9C6A61AA2EA64B4F0D12C65E7FD3F5AB21
96064452D6EC4D59AAD8BE6F61DB5ABFAE6B6C55577236956B84C864DC67BF514807F4D768CA
7E786EFCC83C012AEC74654854C521F027DAA490E9A24E02F93BCC891A77A18D3E1503FD8A52
FE45E2BEFF0C4AE4B74C248A888615420B67310DF45961CC670EC76E9B6316F511E4CF3E80A1
999F2C00981C36F55CF208F71F57B04EED462AD8F5C266A37351B6A7F3AEC0B457AF9974963F
B9F9CF8A3A1A78960E90E0ED48120624F0503D8744977786DC46F8C41DC0025871C43DD8A786
AD0442825407D6FBCDD7B7061E89CA363049422657FC312657E22FB157458E5705470FD54CD3
B697F77FBA63413B42914760838105138755EE681E9FA265C5018238C2B61DF5C1CB1EE4BE09
F4E8D821BCA610FEAFCA17A3DA191343960C365D52666EB618D5951324B898FDBC810BAEB825
260422F9A6C82FA33238E7500CE60FCC0743B2E73E0DD22003404FC96FC2DFEFF2C4F371AA98
6F6B9BC2A8FC79B60A1C4C11B735309DA7CAF13454ECDFBA0AB30FF71E8C47E759A5CFF5545F
0F8D6355D2817805D2B0B32704E87777B73BD2CAC16E3F8DFDE94A4E5019E78AAE214594E301
5A0E16A2D8B76ABA25AC0FF0933855CA9D4C86332F26A7ED4F5046CB13B91DBB3310C18EFE13
5CF9B81238B0D9E58D029E3E24F0101E27AF31D51A950183F3539FA45152D8B01B6BB4777900
59EF97F2D8495010BCF8A84EDC7AAC4E5173A213EC36DC49D5F988BEEC16D808C88D5AF4CCD3
3C8C01432DAC8CDD0C22F87A6C2B66170BC3E37A51A0C2020A991BFB0AD3ADE7950CCF2130C8
80B29013195A598ECE3AAA8F6DC69A886B15A20597B6A9E97284E5B378E9DF7F07AF4FB6B7C9
6686C908B55B00982B15138A169E357D6F3F8E289BA604D4CE08B16FD1BBA503190725765CA1
3EFE643A8EEA0BD6AAB3527EDD378FEE0B4B3EDCB4DEA66CD8DD2133CBF83AEE7FE7AA34A87C
E9DAAE4C3D6D79B1702DF87EC1F90D6AC092DF9466F9B298524D1E642C35F1E062201B5EF0CA
A3D6F433CCAD6BB5D359B5E5BB17F5B4C4768604B4D003B7AF64736B1CB2F171BD90083E3CCD
E1FCE9425FEF23EB74216A57B881D542A5D737C119F3B514E3ABF5606CED63A305F50057F2E2
14FCA40E628247F2894BD68A425AF794A36D5F0EBA71B39EEE56721B3786B8DA5F5806877396
7D11D9999D2D227C6449874DA6825CC2F550E5AE5E568CE8A1583B3D003A809D0B770F6F4CB4
02761C175A5DB62E59C35FC711288F1A8F9519D0D0D2AA0923B94352ACEEC79318C331923672
FB4A110CBECD04589309D74EAEE14D297A06B4BFB039AC020284FE2EE711A49672BB56F0F9FD
6D9326C33D19851B374C2B78BC5D7FA6E76939AECCA04C958D55512B8C0FB9E26B920E23DA4D
98BF71945D2A4DE2E7450F9088489EC46BA1F304DEB724E544D0727850407971B91DBBA10E72
17F052639BB6EFFDECAA171E4D5F8FA536C50A0BC8EB39574B3DC1B50652F319763197AB842F
269A4B1CCEFD48FE44FC2660B6F1FB014C4E861ECE7FCA02C4B618732741F4F7B3E0C5C08356
AC5E3E5961C43984875541F5ED0045404380124E016D0AF0BB6CE0B42FE381DFD270E1BA3319
9007656DB3BB92C7640CF7B1C8A6845B02FE2127C003F1846950BC6531492823766C9EF8697E
6B5A7A3FBE1372E45807465AF073918C5AD1250000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%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 load]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 false 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
TeXDict begin 39158280 55380996 1000 300 300
(/mnt3/home/math/schwicht/wwwpublic/papers/deduktion98/Minlog7.dvi)
@start /Fa 147[23 108[{}1 41.666668 /Symbol rf /Fb 201[21
21 1[21 21 21 21 48[{TeXBase1Encoding ReEncodeFont}6
41.666668 /Times-Bold rf /Fc 1 49 df<10383830707070606060E0C0C0050D7F8D
07>48 D E /Fd 144[23 11[20 99[{TeXBase1Encoding ReEncodeFont}2
41.062164 /Helvetica rf /Fe 133[23 23 23 23 23 23 23
23 23 23 23 23 23 23 23 23 1[23 23 23 23 23 23 23 23
23 2[23 23 1[23 1[23 4[23 23 23 1[23 23 23 23 23 23 1[23
2[23 23 23 23 23 23 1[23 23 23 1[23 23 7[23 23 23 1[23
23 23 23 23 23 23 23 4[23 34[{}62 45.624989 /CourierNarrow
rf /Ff 7 117 df<3E007F004180018007803F80E180C180C3807F803980090B7F8A0D>
97 DI<1E003F006300C180FF80FF80C000C00060803F801F00090B7F8A0C>
101 D108
D110
D<1E003F006180C0C0C0C0C0C0C0C0C0C061803F001E000A0B7F8A0D>I<180018001800
FF00180018001800180018001800180018801F800F00090E808D0A>116
D E /Fg 135[11 13[7 7 105[{TeXBase1Encoding ReEncodeFont}3
25.000000 /Times-Italic rf /Fh 141[14 114[{}1 25.000000
/Symbol rf /Fi 137[23 1[15 18 20 1[25 23 25 38 13 2[13
25 1[15 20 20[28 33[11 46[{TeXBase1Encoding ReEncodeFont}15
45.624989 /Times-Bold rf /Fj 5 94 df<010204081810302060604040C0C0C0C0C0
C0C0C0C0C040406060203010180804020108227E980D>40 D<8040201018080C04060602
020303030303030303030302020606040C08181020408008227E980D>I<003000003000
003000003000003000003000003000003000003000003000FFFFF8FFFFF8003000003000
00300000300000300000300000300000300000300000300015167E921A>43
D91 D93 D E /Fk 4 96 df<60F0F06004047E8309>58
D<60F0F070101020204040040A7E8309>I<0000600001E0000780001E0000780000E000
0380000F00003C0000F00000F000003C00000F000003800000E000007800001E00000780
0001E000006013147D911A>I<007FE00003FFFC0007000E0008000100300000C0200000
4040000020800000101C087E8C21>95 D E /Fl 135[15 2[17 9
3[17 1[17 24 1[15 9 9 36[24 22 20 20 65[{TeXBase1Encoding ReEncodeFont}
13 33.333332 /Times-Italic rf /Fm 14 119 df<1FC07FE0707040380038003801F8
1FF87E38F038E038E038F0787FF83FB80D0F7F8E11>97 DI<0F801FE0387070306038E018FFF8FFF8E000E0006000700038181FF807E00D
0F7F8E10>101 D<03E007E00C201C001C001C001C001C00FF80FF801C001C001C001C00
1C001C001C001C001C001C001C001C001C000B1780960B>I105 D108 DII<07
C01FF03838701C701CE00EE00EE00EE00EE00E701C701C3C781FF007C00F0F7F8E12>I<
079C1FFC3C7C703C701CE01CE01CE01CE01CE01C701C701C387C1FFC0F9C001C001C001C
001C001C001C0E157F8E12>113 DI<1F007FC0E0C0E000E000F0007F003F800FC001E0
80E0C0E0E1C07FC01F000B0F7F8E0E>I<3800380038003800FF80FF8038003800380038
0038003800380038003800380038401FC01F000A137F920D>I118
D E /Fn 27 121 df<03F00007F8001FFE001E1E003C0F00380700780780780780700380
F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0
F003C0F003C07807807807807807803807003C0F001E1E001FFE000FFC0003F00012207E
9E17>48 D73 D82 D<01FC0007FF800FFFC01F03C03C00C03C000078000078000078000078000078
00007C00003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C00003E000
01E00001E00001E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F80013
227EA019>II<07E03F
F87FFC701E401F000F000F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3FEF1F
8F10147E9316>97 DI<03F00FFC1FFE3E0E3C0278007800F000F000F000F000F000F000780078003C01
3E0F1FFF0FFE03F010147E9314>I<000780000780000780000780000780000780000780
00078000078000078000078000078007C7800FF7801FFF803E1F807C0780780780F80780
F00780F00780F00780F00780F00780F00780F00780780780780F803E1F801FFF800FF780
07C78011207E9F17>I<03F0000FFC001FFE003E1F003C0700780700700380FFFF80FFFF
80FFFF80F00000F00000F000007000007800003C01003E07001FFF0007FE0001F8001114
7F9314>I<007E01FE03FE078007000F000F000F000F000F000F000F00FFF0FFF0FFF00F
000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F2080
9F0E>I<03E0F00FFFF01FFFF03E3E003C1E00780F00780F00780F00780F00780F003C1E
003E3E001FFC003FF80033E0003000003800003FFE003FFF801FFFC03FFFE07803F0F000
F0F000F0F000F0F801F07E07E03FFFC00FFF0003FC00141E7F9317>III107
DIII<01F80007FE00
1FFF803F0FC03C03C07801E07801E0F000F0F000F0F000F0F000F0F000F0F000F07801E0
7801E03C03C03F0FC01FFF8007FE0001F80014147F9317>II<03C7800FF7801FFF803E1F807C0F80780780780780F00780F0
0780F00780F00780F00780F00780F807807807807C0F803E1F801FFF800FF78007C78000
0780000780000780000780000780000780000780000780000780111D7E9317>II<07F01FFC3FFC780C7800780078007C003FC01FF00FF803F8007C003C
003CC03CF07CFFF87FF00FC00E147F9311>I<1E001E001E001E001E001E00FFF0FFF0FF
F01E001E001E001E001E001E001E001E001E001E001E001E001E001E201FF00FF007C00C
1A7F9910>III<7801E07C03C03E07801E0F000F0F00079E0003FC0003F800
01F80000F00001F00001F80003FC00079E000F0F000E0F001E07803C03C07801E0F801F0
1414809315>120 D E /Fo 139[15 1[18 114[{}2 33.333332
/Symbol rf /Fp 10 95 df0 D<4002C006600C30181830
0C6006C00380038006C00C6018303018600CC00640020F107B8F1A>2
D<060006000600C630E6703FC00F000F003FC0E670C6300600060006000C0E7E8E11>I<
C00000F000003C00000F000003800000E000007800001E000007800001E00001E0000780
001E0000380000E00003C0000F00003C0000700000C00000000000000000000000000000
0000007FFFC0FFFFE0131B7D941A>21 D<00000400000002000000010000000100000000
C0FFFFFFF0FFFFFFF0000000C0000001000000010000000200000004001C0C7E8D21>33
D<0C1E1E1E3C3C3838387070706060E0C04007117F9109>48 D<400040C000C060018060
01806001803003003003003003001FFE001FFE000C0C000C0C000C0C0006180006180003
300003300003300001E00001E00001E00000C00000C0001217809613>56
D62 D<002000006000006000006000006000006000006000006000006000006000006000
006000006000006000006000006000006000006000006000006000FFFFF8FFFFF815167D
951B>I<00800001C00001C0000360000360000360000630000630000C18000C1800180C
00180C00300600300600300600600300600300C00180C0008011137E9216>94
D E /Fq 179[20 18[17 3[17 17 17 17 17 17 1[8 1[8 2[11
11 40[{TeXBase1Encoding ReEncodeFont}12 33.333332 /Times-Roman
rf /Fr 134[18 18 28 18 21 12 16 16 1[21 21 21 30 12 18
1[12 21 21 12 18 21 18 21 21 12[23 21 2[25 1[28 35 23
28 18 14 30 1[25 25 1[28 1[25 7[21 4[21 3[21 1[10 14
10 4[14 39[{TeXBase1Encoding ReEncodeFont}44 41.666668
/Times-Italic rf /Fs 1 14 df<0003FE0000000FFF8000003C01E00000F000780001
C0001C00030000060006000003000C0000018018000000C018000000C030000000603000
000060600000003060000000306000000030C000000018C000000018C000000018C00000
0018C000000018C000000018C000000018C000000018C000000018600000003060000000
3060000000303000000060300000006018000000C018000000C00C000001800600000300
030000060001C0001C0000F0007800003C01E000000FFF80000003FE000025277E9D2A>
13 D E /Ft 135[21 3[21 3[21 21 21 1[21 2[21 1[21 1[21
23[21 17[21 21 21 21 21 21 21 21 21 21 21 21 21 21 46[{}24
41.666668 /CourierNarrow rf /Fu 6 94 df<0020004000800100020006000C000C00
180018003000300030007000600060006000E000E000E000E000E000E000E000E000E000
E000E000E0006000600060007000300030003000180018000C000C000600020001000080
004000200B2E7DA112>40 D<800040002000100008000C00060006000300030001800180
018001C000C000C000C000E000E000E000E000E000E000E000E000E000E000E000E000C0
00C000C001C001800180018003000300060006000C00080010002000400080000B2E7DA1
12>I<000600000006000000060000000600000006000000060000000600000006000000
060000000600000006000000060000000600000006000000060000FFFFFFF0FFFFFFF000
060000000600000006000000060000000600000006000000060000000600000006000000
06000000060000000600000006000000060000000600001C207D9A23>43
D<7FFFFFE0FFFFFFF0000000000000000000000000000000000000000000000000000000
0000000000FFFFFFF07FFFFFE01C0C7D9023>61 D
91 D93 D E /Fv 25 107
df0 D<70F8F8F87005057C8D0D>I<400004C0000C60
00183000301800600C00C006018003030001860000CC0000780000300000300000780000
CC000186000303000601800C00C0180060300030600018C0000C40000416187A9623>I<
01800180018001800180C183F18F399C0FF003C003C00FF0399CF18FC183018001800180
0180018010147D9417>I17 D<003FFFC000FFFFC003
C00000070000000C0000001800000030000000300000006000000060000000C0000000C0
000000C0000000C0000000C0000000C0000000C000000060000000600000003000000030
000000180000000C0000000700000003C0000000FFFFC0003FFFC0000000000000000000
000000000000000000000000000000000000007FFFFFC07FFFFFC01A247C9C23>I<0000
00C0000003C000000F0000003C000000F0000003C00000070000001C00000078000001E0
0000078000001E00000078000000E0000000780000001E0000000780000001E000000078
0000001C0000000700000003C0000000F00000003C0000000F00000003C0000000C00000
00000000000000000000000000000000000000000000000000007FFFFF80FFFFFFC01A24
7C9C23>20 DI<0000000400000000020000000002000000000100000000
008000000000400000000020FFFFFFFFFCFFFFFFFFFC0000000020000000004000000000
80000000010000000002000000000200000000040026107D922D>33
D38 D<000000000C000000001C00000000380000
00007000000000E000000001C0000000038000000007000000000E000000001C00000000
38000000007000000000E000000001C0000000038000000007000000000E000000001C00
00000038000000007000000000E000000001C0000000038000000007000000000E000000
001C0000008038000000807000000040E000000041C0000000438000000047000000004E
000000005C0000000078000000007000000000FFC0000000C03000000026267D9C2D>46
D<00000C00000C0000180000180000300000300000600000600000C00000C00001800001
80000180000300000300000600000600000C00000C000018000018000030000030000060
0000600000C00000C0000180000180000300000300000600000600000600000C00000C00
00180000180000300000300000600000600000C00000400000162C7AA000>54
DI<400001C00003600006600006
60000630000C30000C30000C1800181800181800180FFFF00FFFF00C0030060060060060
0600600300C00300C001818001818001818000C30000C30000C300006600006600006600
003C00003C00003C000018000018001821809F19>III62
D<00040000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C00
00000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C00
00000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000FFFFFF
E0FFFFFFE01B1C7C9B23>I<001000003800003800006C00006C00006C0000C60000C600
0183000183000183000301800301800600C00600C00600C00C00600C0060180030180030
18003030001830001860000C60000C60000CC00006C00002171C7D9A1E>94
DI<000F0038006000E001C001C001C001C0
01C001C001C001C001C001C001C001C001C001C001C0038007001E00F8001E0007000380
01C001C001C001C001C001C001C001C001C001C001C001C001C001C001C000E000600038
000F102D7DA117>102 DI<
004000C00180018001800300030003000600060006000C000C0018001800180030003000
3000600060006000C000C0006000600060003000300030001800180018000C000C000600
0600060003000300030001800180018000C000400A2E7CA112>III
E /Fw 3 61 df<70F8F8F87005057C840D>58 D<70F8FCFC74040404080810102040060E
7C840D>I<000001C00000078000001E00000078000001E00000078000000E0000003800
0000F0000003C000000F0000003C000000F0000000F00000003C0000000F00000003C000
0000F0000000380000000E0000000780000001E0000000780000001E0000000780000001
C01A1A7C9723>I E /Fx 22[20 110[18 20 20 30 20 23 13 18
18 23 23 23 23 33 13 20 13 13 23 23 13 20 23 20 23 23
12[25 23 28 33 28 33 30 38 25 30 1[15 33 1[28 1[33 30
28 28 5[15 12[11 15 11 2[15 15 6[15 30[23 2[{
TeXBase1Encoding ReEncodeFont}52 45.624989 /Times-Italic
rf /Fy 139[20 27 25 1[25 3[25 2[15 3[20 2[25 17[35 80[{}9
45.624989 /Symbol rf /Fz 9[23 94[45 23 13[15 13[20 23
23 33 23 23 13 18 15 23 23 23 23 35 13 23 13 13 23 23
15 20 23 20 23 20 15 2[15 1[15 1[33 33 43 33 33 28 25
30 33 25 33 33 40 28 33 18 15 33 33 25 28 33 30 30 33
5[13 13 23 23 23 23 23 23 23 23 23 23 13 11 15 11 2[15
15 15 3[23 1[15 29[25 25 2[{TeXBase1Encoding ReEncodeFont}81
45.624989 /Times-Roman rf /FA 166[26 26 1[26 26 22 20
24 1[20 26 26 32 22 26 1[12 26 26 20 22 26 24 24 26 65[{
TeXBase1Encoding ReEncodeFont}22 36.499977 /Times-Roman
rf /FB 166[36 1[47 36 1[30 28 33 1[28 36 36 44 30 36
1[17 36 36 28 30 36 2[36 6[14 58[{TeXBase1Encoding ReEncodeFont}20
50.000000 /Times-Roman rf /FC 3[21 5[21 95[21 27[18 21
21 30 21 21 12 16 14 1[21 21 21 32 12 21 12 12 21 21
14 18 21 18 21 18 14 5[25 30 30 39 30 30 25 23 28 1[23
30 30 37 25 30 16 14 30 30 23 25 30 28 28 30 6[12 21
21 21 21 21 21 21 21 21 21 1[10 14 10 2[14 14 14 35[23
23 2[{TeXBase1Encoding ReEncodeFont}73 41.666668 /Times-Roman
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%PaperSize: A4
%%EndSetup
%%Page: 1 1
1 0 bop 351 277 a FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)f
(SEISENBERGER,)h(ZUBER)630 487 y FB(PR)n(OOF)h(THEOR)m(Y)h(A)-6
b(T)13 b(WORK:)330 551 y(PR)n(OGRAM)g(DEVELOPMENT)i(IN)d(THE)h(MINLOG)g
(SYSTEM)758 812 y FC(1.)31 b Fz(I)r FA(N)r(T)r(R)q(O)r(D)r(U)r(C)r(T)s
(I)r(O)s(N)243 919 y Fz(The)12 b(old)g(idea)h(that)f(proofs)g(are)h(in)
f(some)h(sense)f(functions,)g(has)g(been)h(made)g(precise)243
973 y(by)j(the)h(Curry-Ho)o(ward-correspondence)e(between)i(proofs)f
(in)g(natural)g(deduction)243 1027 y(and)c(terms)g(in)g(typed)f
Fy(l)p Fz(-calculus.)h(Since)g(the)g(latter)g(can)g(be)h(vie)o(wed)e
(as)h(an)g(idealized)243 1081 y(functional)c(programming)i(language,)f
(this)g(amounts)g(to)h(an)f(interpretation)f(of)i(proofs)243
1135 y(as)h(functional)f(programs.)i(This)e(concept)h(and)g(related)h
(ones)f(going)f(back)h(to)g(work)g(of)243 1189 y(Gentzen,)i(G\366del,)g
(Kleene)h(and)f(Kreisel)g(are)h(implemented)f(in)h(M)r
FA(I)r(N)r(L)r(O)r(G)q Fz(,)j(an)d(inter)o(-)243 1243
y(acti)o(v)o(e)f(proof)g(system)g(designed)f(for)h(generating)g(proof)g
(terms)g(and)g(e)o(xploring)f(their)243 1297 y(algorithmic)f(content.)g
(Besides)h(tools)f(for)h(interacti)o(v)o(e)f(proof)h(generation,)h(M)r
FA(I)r(N)r(L)r(O)r(G)243 1351 y Fz(has)e(automatic)f(de)o(vices)256
1425 y Fv(\000)43 b Fz(to)10 b(search)i(for)f(purely)g(logical)f
(\(sub\)proofs,)256 1479 y Fv(\000)43 b Fz(to)10 b(check)i(the)f
(correctness)f(of)i(a)f(proof,)256 1533 y Fv(\000)43
b Fz(to)10 b(remo)o(v)o(e)j(detours)d(in)h(a)g(proof,)256
1587 y Fv(\000)43 b Fz(to)10 b(make)i(a)f(nonconstructi)o(v)o(e)e
(proof)i(constructi)o(v)o(e,)256 1641 y Fv(\000)43 b
Fz(to)10 b(read)i(of)o(f)f(witnesses)f(from)i(a)f(constructi)o(v)o(e)f
(proof,)256 1695 y Fv(\000)43 b Fz(to)10 b(adapt)h(an)g(already)h(e)o
(xisting)d(proof)i(to)g(special)f(cases,)256 1749 y Fv(\000)43
b Fz(to)10 b(produce)h(a)h(le)o(gible)e(v)o(erbalization)g(from)i(a)f
(formal)h(proof.)243 1824 y(The)19 b(moti)o(v)o(ation)f(for)h(the)h(de)
o(v)o(elopment)e(of)j(M)r FA(I)r(N)r(L)r(O)r(G)j Fz(is)19
b(to)g(use)g(the)g(proofs-as-)243 1878 y(programs)c(paradigm)g(to)g
(let)g(program)g(de)o(v)o(elopment)g(go)g(hand-in-hand)f(with)g(pro-)
243 1932 y(gram)i(v)o(eri\002cation.)h(M)r FA(I)r(N)r(L)r(O)r(G)r
Fz(')n(s)h(path)e(to)f(correct)i(programs)f(can)g(be)g(di)o(vided)f
(into)243 1986 y(three)c(steps:)265 2060 y(1.)19 b(Speci\002cation)10
b(of)i(the)f(desired)f(properties)g Fx(A)p Fu([)p Fx(input)n
Fw(;)5 b Fx(output)n Fu(])p Fz(.)265 2114 y(2.)19 b(Interacti)o(v)o(e)8
b(proof)g Fx(M)j Fz(of)d Fv(8)p Fx(x)d Fv(9)p Fx(y)g(A)p
Fu([)p Fx(x)p Fw(;)g Fx(y)p Fu(])k Fz(\(supported)e(by)i(automatic)f
(proof)g(search\).)265 2168 y(3.)19 b(Extraction)12 b
Fu([)-5 b([)p Fv(\001)p Fu(])g(])11 b Fz(of)j(computational)e(content)h
(of)g Fx(M)r Fz(,)h(i.e.)g(a)g(program)g Fu([)-5 b([)p
Fx(M)r Fu(])g(])12 b Fz(satis-)318 2222 y(fying)e Fx(A)p
Fu([)p Fx(x)p Fw(;)5 b Fu([)-5 b([)p Fx(M)r Fu(])g(]\()p
Fx(x)p Fu(\)])8 b Fz(for)j(all)g(inputs)f Fx(x)p Fz(.)243
2296 y(The)17 b(adv)o(antage)h(of)g(this)e(way)i(of)f(composing)g
(programs)h(is)f(that)g(once)h(you)f(ha)o(v)o(e)243 2350
y(checked)d(your)g(proof-checker)g(correct)g(\227)i(and)e(this)f(is)h
(easy)g(for)h(a)g(small)f(one)g(like)244 2404 y(M)r FA(I)r(N)r(L)r(O)r
(G)q Fz(')n(s)19 b(\227)f(proof)f(theory)f(guarantees)h(\(in)f
(principle\))g(the)h(correctness)g(of)g(all)243 2458
y(e)o(xtracted)12 b(programs.)g(Furthermore)h(one)f(can)h(re)o(gard)f
(a)h(proof)f(as)g(an)g(e)o(xtremely)g(de-)243 2512 y(tailed)e(comment)i
(on)e(its)h(e)o(xtracted)g(program.)911 3108 y Ft(Minlog7.tex;)18
b(28/04/1998;)g(12:50;)h(p.1)929 2645 y Fz(1)354 2720
y FC(c)342 2721 y Fs(\015)10 b FC(1998)20 b Fr(Kluwer)10
b(Academic)h(Publishers.)20 b(Printed)10 b(in)g(the)g(Netherlands.)p
eop
%%Page: 2 2
2 1 bop 243 277 a Fz(2)85 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)f
(SEISENBERGER,)h(ZUBER)301 404 y Fz(Since)g(functional)e(programs)h
(can)h(be)f(represented)g(directly)g(by)g(terms)h(in)f(the)g(lan-)243
457 y(guage,)i(M)r FA(I)r(N)r(L)r(O)r(G)j Fz(is)c(also)g(well-suited)e
(for)i(program)h(v)o(eri\002cation.)301 567 y(As)j(M)r
FA(I)r(N)r(L)r(O)r(G)k Fz(is)14 b(based)g(on)g(natural)g(deduction)f
(and)i(generates)f(proof)g(terms)h(in)243 621 y(a)j Fy(l)p
Fz(-calculus)g(style,)f(it)h(is)g(closely)f(related)h(to)g
(implementations)e(of)i(constructi)o(v)o(e)243 675 y(type)11
b(theory)f(such)h(as)h(Alf,)f(Coq,)h(Le)o(go,)g(NuPrl,)f(or)h(T)l
(ypelab.)f(In)g(particular)g(it)g(shares)243 729 y(man)o(y)e(features)g
(with)f(the)g(speci\002cation)g(and)h(v)o(eri\002cation)f(en)n
(vironment)g(T)l(ypelab)g(de-)243 783 y(scribed)j(in)g(I.3.15)h(which)f
(\226)g(like)h(M)r FA(I)r(N)r(L)r(O)r(G)k Fz(\226)11
b(is)g(tailored)g(for)h(practical)f(use)h(on)f(con-)243
837 y(crete)j(programming)f(problems.)g(Ho)o(we)o(v)o(er)n(,)g(whereas)
h(T)l(ypelab)f(and)g(other)g(systems)243 891 y(mainly)d(e)o(xploit)g
(the)g(rich)h(type)f(theoretic)h(speci\002cation)e(language,)i(we)g(ha)
o(v)o(e)g(chosen)243 945 y(for)f(M)r FA(I)r(N)r(L)r(O)r(G)k
Fz(a)c(v)o(ery)g(simple)f(language)f(\(\002rst-order)i(formulas)f(o)o
(v)o(er)h(a)g(simply)f(typed)243 999 y Fy(l)p Fz(-calculus\))k(which)h
(needs)f(no)h(`e)o(xpert)g(kno)o(wledge')f(to)h(understand.)f(The)h
(concep-)243 1053 y(tual)9 b(simplicity)g(of)i(M)r FA(I)r(N)r(L)r(O)r
(G)j Fz(allo)o(ws)9 b(the)h(user)g(to)g(quickly)f(access)i(non-tri)o
(vial)d(pro)o(v-)243 1107 y(ing)16 b(and)g(programming)g(problems)g
(and)g(to)g(use)g(adv)o(anced)g(proof)g(theoretic)g(proof)243
1161 y(manipulation)e(techniques.)i(M)r FA(I)r(N)r(L)r(O)r(G)k
Fz(is)c(an)g(open)f(system,)h(where)h(the)e(user)h(may)243
1215 y(easily)10 b(add)h(self-de\002ned)f(concepts.)h(Another)f(adv)o
(antage)g(is)g(that)g(the)h(e)o(xtracted)g(pro-)243 1269
y(grams)h(are)h(just)f(simply)f(typed)h Fy(l)p Fz(-terms)g(with)g
(higher)f(type)h(primiti)o(v)o(e)g(recursion.)g(In)243
1323 y(systems)g(like)g(NuPrl)h(or)g(Coq)g(proofs)f(and)h(programs)g
(are)g(not)f(separated)h(so)g(clearly)243 1377 y(and)d(in)h(particular)
f(programs)h(may)g(ha)o(v)o(e)g(complicated)f(dependent)g(types.)g(A)h
(system)243 1431 y(where)j(proofs)f(and)g(programs)h(are)g(clearly)g
(distinguish)o(ed)d(is)i(PX)h(\(Hayashi,)f(1990\))243
1485 y(which)d(is)h(based)g(on)f(Feferman')n(s)i(untyped)e(theory)h(of)
g(functions)e(and)i(classes.)g(Ho)o(w-)243 1539 y(e)o(v)o(er)n(,)i(in)f
(PX)g(arbitrary)g(partial)f(recursi)o(v)o(e)h(programs)g(may)h(be)f(e)o
(xtracted)g(whereas)g(in)244 1593 y(M)r FA(I)r(N)r(L)r(O)r(G)j
Fz(programs)c(e)o(xtracted)g(from)h(proofs)f(are)h(always)d(total.)301
1703 y(W)l(e)j(describe)g(the)f(logical)g(background)f(of)j(M)r
FA(I)r(N)r(L)r(O)r(G)q Fz(')n(s)h(kernel)d(in)h(section)e(2)i(and)243
1757 y(its)j(concrete)i(realization)e(in)h(section)g(3.)g(Further)h
(important)e(features)h(will)g(be)g(e)o(x-)243 1811 y(plained)10
b(by)h(means)g(of)g(three)h(non-tri)o(vial)d(e)o(xamples:)301
1865 y(In)g(our)g(\002rst)g(e)o(xample)h(coming)f(from)g(practice)h
(\(section)e(4\))h(we)g(will)g(use)h(M)r FA(I)r(N)r(L)r(O)r(G)243
1919 y Fz(to)e(interacti)o(v)o(ely)f(v)o(erify)i(a)f(train)g(scheduler)
n(.)g(Nondeterminism)f(will)h(lead)g(us)g(to)g(higher)243
1973 y(order)h(terms.)h(Also)e(we)h(will)f(see)h(the)g(use)g(of)g(an)g
(error)h(object,)f(introducing)e(the)h(notion)243 2027
y(of)j(partial)f(objects.)301 2081 y(The)j(ne)o(xt)h(e)o(xample)g
(\(section)e(5\))i(is)f(well-kno)o(wn)f(in)h(computer)g(science:)g
(quick-)243 2135 y(sort.)h(Here)h(we)g(see)g(the)f(proofs-as-programs)g
(paradigm)h(in)f(a)h(concrete)f(case.)i(The)243 2188
y(algorithm)10 b(is)h Fx(e)o(xtr)o(acted)h Fz(from)g(a)g(proof)f(of)g
(its)g(speci\002cation.)g(W)l(e)h(will)f(also)g(see)g(ho)o(w)243
2242 y(to)f(introduce)h(inducti)o(v)o(e)e(data)i(types)g(as)g(an)g(e)o
(xtension)f(to)i(M)r FA(I)r(N)r(L)r(O)r(G)q Fz(.)301
2296 y(The)g(\002nal)g(e)o(xample)h(about)e(search)h(in)g(\002nite)g
(trees)g(\(section)f(6\))h(sho)o(ws)f(two)g(tech-)243
2350 y(niques)f(of)h(v)o(ery-high-le)o(v)o(el)f(program)h(de)o(v)o
(elopment:)301 2404 y(The)d(fact,)h(that)f(a)h(\002nite)g(tree)g
(ful\002lling)d(a)k(property)d(always)g(has)i(a)g(minimal)f(subtree)243
2458 y(ful\002lling)h(it)h(too,)h(has)g(a)g(tri)o(vial)e(classical)h
(proof.)i(M)r FA(I)r(N)r(L)r(O)r(G)j Fz(is)c(able)g(to)f(automatically)
243 2512 y(turn)i(it)g(into)f(a)i(constructi)o(v)o(e)e(proof)h(\(using)
g(a)h(re\002ned)f Fx(A)p Fz(-translation\))f(and)h(to)h(e)o(xtract)243
2566 y(a)e(search)h(algorithm.)911 3108 y Ft(Minlog7.tex;)18
b(28/04/1998;)g(12:50;)h(p.2)p eop
%%Page: 3 3
3 2 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)161 b Fz(3)301 404 y(Finally)m(,)15
b(if)h(we)h(ha)o(v)o(e)f(some)g(additional)e(information)h(on)h(the)g
(data)g(\(and)g(hence)243 457 y(enrich)h(the)h(speci\002cation\),)f(we)
h(can)g(reuse)g(and)g(shorten)f(the)g(proof,)h(resulting)e(in)243
511 y(a)h(dif)o(ferent)g(\(possibly)f(more)h(ef)o(\002cient\))h
(algorithm)e(which)h(in)g(general)g(cannot)g(be)243 565
y(obtained)10 b(by)g(optimizing)g(the)h(original)f(program.)520
730 y FC(2.)30 b Fz(L)r FA(O)r(G)r(I)r(C)15 b(F)r(O)r(R)g(C)r(O)r(M)r
(P)r(U)r(T)o(A)r(B)s(L)r(E)i(F)r(U)r(N)r(C)r(T)r(I)r(O)r(N)r(A)r(L)r(S)
243 840 y Fz(The)h(theory)f(implemented)h(in)h(M)r FA(I)r(N)r(L)r(O)r
(G)j Fz(is)17 b(He)o(yting)h(arithmetic)f(in)h(\002nite)g(types)243
894 y(\(T)n(roelstra)12 b(and)g(v)o(an)h(Dalen,)f(1988\),)g(arranged)h
(around)f(a)h(kernel)f(of)g(minimal)g(logic.)243 947
y(Classical)d(arithmetic)g(is)g(contained)f(in)h(it)g(as)g(the)h
(fragment)f(without)f(the)h(constructi)o(v)o(e)243 1001
y(quanti\002er)g Fv(9)452 985 y Fp(\003)471 1001 y Fz(.)h(From)g(the)f
(classical)g(point)f(of)i(vie)o(w)f(this)f(fragment)i(is)f(suf)o
(\002cient)g(since)243 1055 y(e)o(xistential)g(statements)i(can)g(be)g
(e)o(xpressed)g(via)g Fv(:8:)p Fz(.)243 1165 y(2.1.)32
b Fx(The)11 b(term-calculus)243 1263 y Fz(As)h(objects)f(of)h
(computational)e(interest)h(we)h(choose)g(the)g(terms)g(of)g(G\366del')
n(s)f(System)243 1317 y Fx(T)6 b Fz(,)15 b(coming)f(with)f(types)h(\(e)
o(v)o(en)g(if)h(the)f(type)g(information)f(is)h(mostly)f(suppressed)g
(in)243 1371 y(this)h(te)o(xt\).)h(Besides)f(the)h(natural)f(numbers,)h
(the)g(booleans)e(are)j(prede\002ned)f(ground)243 1425
y(types.)243 1505 y Fx(T)m(ypes.)91 b Fn(b)q(o)q(ole)10
b Fv(j)g Fn(nat)h Fv(j)f Fy(r)c Fv(\002)g Fy(s)11 b Fv(j)f
Fy(r)g Fv(!)g Fy(s)p Fz(.)243 1584 y Fx(Constants.)89
b Fn(true)11 b Fv(j)e Fn(false)i Fv(j)e Fn(0)h Fv(j)g
Fn(S)g Fv(j)g Fn(R)895 1593 y Fm(b)q(o)q(ole)p Fk(;)p
Fo(r)1014 1584 y Fv(j)g Fn(R)1066 1591 y Fm(nat)p Fk(;)p
Fo(r)1144 1584 y Fz(.)243 1664 y(The)f(successor)h Fn(S)g
Fz(is)f(of)h(type)f Fn(nat)h Fv(!)f Fn(nat)p Fz(,)i(the)e(types)g(of)h
(the)f(recursors)h(\(for)g(each)g(type)243 1718 y Fy(r)p
Fz(\))k(will)f(be)h(made)h(precise)f(later)n(.)g(From)h(typed)e(v)o
(ariables)g Fx(x)i Fz(and)f(constants)e Fx(c)j Fz(terms)243
1772 y(are)d(b)o(uilt)d(according)i(to)g(the)g(standard)f(of)h(simply)f
(typed)h Fy(l)p Fz(-calculus.)243 1852 y Fx(T)l(erms.)90
b(x)11 b Fv(j)f Fx(c)g Fv(j)g(h)p Fx(r)l Fw(;)5 b Fx(s)p
Fv(i)j(j)i Fy(p)703 1859 y Fq(0)721 1852 y Fx(r)h Fv(j)f
Fy(p)798 1859 y Fq(1)816 1852 y Fx(r)h Fv(j)f Fy(l)p
Fx(xr)h Fv(j)f Fx(r)q(s)p Fz(.)243 1932 y(General)j(bracketing)f(con)n
(v)o(entions:)f(products)g(associate)i(to)f(the)h(left,)h(arro)o(ws)e
(to)h(the)243 1986 y(right.)c(The)h(scope)g(of)g(a)g(binder)f(is)h(the)
f(maximal)h(\(minimal\))g(possible)f(one,)h(whene)o(v)o(er)243
2040 y(the)h(bound)f(v)o(ariable)g(is)h(\(not\))g(follo)o(wed)f(by)g(a)
i(dot.)301 2094 y(T)m(erms)f(are)h(computed)f(according)f(to)h(the)243
2179 y Fx(Con)n(versions.)250 b Fy(p)756 2186 y Fq(0)774
2179 y Fv(h)p Fx(r)l Fw(;)5 b Fx(s)p Fv(i)48 b(7!)j Fx(r)l
Fw(;)731 2244 y Fy(p)756 2251 y Fq(1)774 2244 y Fv(h)p
Fx(r)l Fw(;)5 b Fx(s)p Fv(i)48 b(7!)j Fx(s)p Fw(;)737
2309 y Fu(\()p Fy(l)p Fx(x)5 b(r)q Fu(\))p Fx(s)48 b
Fv(7!)j Fx(r)1022 2316 y Fl(x)1038 2309 y Fu([)p Fx(s)p
Fu(])p Fw(;)604 2373 y Fn(R)633 2382 y Fm(b)q(o)q(ole)o
Fk(;)p Fo(r)742 2373 y Fx(r)q(s)5 b Fn(true)49 b Fv(7!)i
Fx(r)l Fw(;)595 2438 y Fn(R)624 2446 y Fm(b)q(o)q(ole)p
Fk(;)p Fo(r)733 2438 y Fx(r)q(s)5 b Fn(false)49 b Fv(7!)i
Fx(s)p Fw(;)693 2503 y Fn(R)722 2510 y Fm(nat)p Fk(;)p
Fo(r)800 2503 y Fx(r)q(s)p Fn(0)d Fv(7!)j Fx(r)l Fw(;)641
2568 y Fn(R)670 2575 y Fm(nat)p Fk(;)p Fo(r)748 2568
y Fx(r)q(s)p Fu(\()p Fn(S)o Fx(t)s Fu(\))c Fv(7!)k Fx(s)o(t)s
Fu(\()p Fn(R)1084 2575 y Fm(nat)o Fk(;)p Fo(r)1160 2568
y Fx(r)q(s)o(t)s Fu(\))p Fw(;)911 3108 y Ft(Minlog7.tex;)18
b(28/04/1998;)g(12:50;)h(p.3)p eop
%%Page: 4 4
4 3 bop 243 277 a Fz(4)85 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)f
(SEISENBERGER,)h(ZUBER)243 404 y Fz(where)g Fx(r)383
411 y Fl(x)400 404 y Fu([)p Fx(s)p Fu(])f Fz(\(or)i Fx(r)q
Fu([)p Fx(s)p Fu(])e Fz(for)h(short\))f(means)i Fx(s)f
Fz(substituted)e(for)i Fx(x)h Fz(in)e Fx(r)q Fz(.)i(These)f(rules)g
(sho)o(w)243 457 y(that)17 b Fn(R)358 466 y Fm(b)q(o)q(ole)p
Fk(;)p Fo(r)467 457 y Fx(r)q(s)o(t)j Fz(\()p Fx(r)q Fz(,)e
Fx(s)f Fz(of)h(type)f Fy(r)p Fz(\))h(corresponds)f(to)g
Fi(if)f Fx(t)21 b Fi(then)e Fx(r)f Fi(else)g Fx(s)p Fz(,)g(whereas)243
511 y Fn(R)272 518 y Fm(nat)p Fk(;)p Fo(r)350 511 y Fx(r)q(s)o(t)g
Fz(is)f(the)g(usual)f(recursor)h(with)f(base)i Fx(r)g
Fz(\(of)f(type)f Fy(r)p Fz(\))i(and)f(loop)f Fx(s)h Fz(\(of)g(type)243
565 y Fn(nat)c Fv(!)f Fy(r)g Fv(!)h Fy(r)p Fz(\))i(to)f(be)h(passed)f
(through)e Fx(t)s Fz(-times.)i(The)h(\002rst)g(three)f(rules)h(are)g
(called)243 619 y Fy(b)p Fz(-con)n(v)o(ersions,)10 b(the)h(others)g(we)
g(call)g Fn(R)p Fz(-con)n(v)o(ersions.)301 673 y(As)d(is)g(well)g(kno)o
(wn)f(\(T)l(ait,)i(1967;)e(T)n(roelstra)i(and)f(v)o(an)g(Dalen,)h
(1988\),)f(the)g(re)o(writing)243 727 y(procedure)j(stops)e(for)i(each)
h(term)f(with)f(a)i(unique)d Fx(normal)h(form)p Fz(.)g(Hence)h(the)g
(congru-)243 781 y(ence)e(gi)o(v)o(en)g(by)g(the)f(con)n(v)o(ersions)g
(is)h(decidable.)g(In)g(our)g(setting,)f(congruent)g(terms)h(are)243
835 y(identi\002ed.)i(This)g Fx(P)l(oincar\351-equality)e
Fz(mostly)i(sa)o(v)o(es)h(us)g(from)g(needing)f(an)h(equality-)243
889 y(calculus.)d(\(Ho)o(we)o(v)o(er)g(the)h(user)f(importing)g
(self-de\002ned)g(con)n(v)o(ersions)f(is)h(responsible)243
943 y(for)i(their)g(termination)f(together)g(with)g Fy(b)i
Fz(and)f Fn(R)p Fz(!\))243 1049 y(2.2.)32 b Fx(The)11
b(logical)e(fr)o(ame)o(work)243 1144 y Fz(No)o(w)j(the)g(basis)g(is)g
(ready)h(to)f(introduce)g(the)g(objects)g(of)g(interest)g(for)h
(theorem)g(pro)o(v-)243 1197 y(ing:)8 b(formulas.)i(It)g(is)f(crucial)h
(b)o(ut)f(ne)o(v)o(ertheless)f(easy)i(to)f(distinguish)e(between)i(a)h
(term)242 1251 y Fx(t)i Fz(of)d(type)f Fn(b)q(o)q(ole)i
Fz(and)f(the)f(atomic)h(formula)g Fn(atom)o Fu(\()o Fx(t)s
Fu(\))f Fz(saying)g(`)o Fx(t)14 b Fz(is)d Fn(true)q Fz('.)e(In)g
(particular)243 1305 y(we)i(ha)o(v)o(e)h(the)f(atomic)g(formulas)734
1391 y Fv(>)50 b Fz(:)p Fu(=)g Fn(atom)o Fu(\()p Fn(true)p
Fu(\))p Fw(;)734 1456 y Fv(?)g Fz(:)p Fu(=)g Fn(atom)o
Fu(\()p Fn(false)p Fu(\))p Fw(:)243 1546 y Fz(From)20
b(the)g(atomic)g(formulas)f(\(which)h(are)g(decidable)f(since)h(their)f
(characteristic)243 1600 y(terms)11 b(are)h(computable\))f(we)g(b)o
(uild)f(the)243 1677 y Fx(F)-5 b(ormulas.)89 b Fn(atom)o
Fu(\()o Fx(t)s Fu(\))9 b Fv(j)h Fx(A)c Fv(^)g Fx(B)k
Fv(j)g Fx(A)g Fv(!)g Fx(B)g Fv(j)g(8)p Fx(x)5 b(A)10
b Fv(j)g(9)1118 1660 y Fp(\003)1137 1677 y Fx(x)5 b(A)p
Fz(,)243 1753 y(where)12 b Fv(9)391 1737 y Fp(\003)423
1753 y Fz(is)g(the)g Fx(str)n(ong)f Fz(or)h Fx(constructive)f
Fz(e)o(xistential)g(quanti\002er)h(\227)h(to)f(distinguish)243
1807 y(from)f(the)g(classical)g Fv(9)g Fz(which)g(can)g(be)h(vie)o(wed)
e(as)h(de\002ned)g(by)772 1902 y Fv(:)p Fx(A)50 b Fz(:)p
Fu(=)f Fx(A)10 b Fv(!)h(?)p Fw(;)751 1967 y Fv(9)p Fx(x)5
b(A)51 b Fz(:)p Fu(=)e Fv(:8)p Fx(x)5 b Fv(:)p Fx(A)p
Fw(:)243 2058 y Fz(F)o(ormulas)k(without)f Fv(9)597 2041
y Fp(\003)626 2058 y Fz(are)i(called)f Fx(classical)p
Fz(.)f(F)o(or)i(the)f(moment)h(we)g(will)e(concentrate)243
2112 y(on)j(the)f(classical)h(part.)g(W)l(e)h(will)e(meet)i
Fv(9)903 2095 y Fp(\003)933 2112 y Fz(later)f(again.)301
2188 y(In)f(the)f(spirit)g(of)g(the)h(Curry-Ho)o(ward-correspondence)e
(we)i(re)o(gard)g(proofs)g(in)f(\(the)243 2242 y Fv(^)p
Fw(;)c Fv(!)p Fw(;)g Fv(8)p Fz(-fragment)12 b(of\))f(natural)g
(deduction)e(as)j(terms)f(in)g(a)g(typed)g Fy(l)p Fz(-calculus,)f
(where)243 2296 y(the)g(type)g(of)g(a)h(proof)f(term)h(corresponds)e
(to)h(\(more)h(precisely:)e Fx(is)p Fz(\))h(its)g(end)g(formula)g(in)
243 2350 y(natural)g(deduction,)g(and)h(the)g(types)g(of)g(its)f(free)i
(v)o(ariables)e Fx(ar)n(e)i Fz(its)e(free)i(assumptions.)301
2404 y(F)o(or)i(the)f(sake)g(of)g(clarity)f(we)i(annotate)e(types)h(as)
g(superscripts)e(in)i(the)g(de\002nition)243 2458 y(of)j(proofs.)g(T)l
(o)h(start)f(with,)f(an)i(assumption)e Fx(A)h Fz(is)g(introduced)f(by)h
(an)g(assumption-)243 2512 y(v)o(ariable)11 b Fx(u)423
2496 y Fl(A)445 2512 y Fz(,)i(whereas)f(an)h(axiom)f
Fx(A)g Fz(is)f(introduced)g(by)h(a)h(constant)d Fx(c)1375
2496 y Fl(A)1398 2512 y Fz(.)j(F)o(or)f(the)g(mo-)243
2566 y(ment)f(our)g(only)f(constant)g(is)h(the)g Fx(truth)e(axiom)i
Fn(T)l(ruth)1109 2547 y Fp(>)1137 2566 y Fz(.)911 3108
y Ft(Minlog7.tex;)18 b(28/04/1998;)g(12:50;)h(p.4)p eop
%%Page: 5 5
5 4 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)161 b Fz(5)243 407 y Fx(Pr)n(oofs.)114
b(u)512 391 y Fl(A)544 407 y Fv(j)10 b Fx(c)587 391 y
Fl(A)620 407 y Fv(j)f(h)p Fx(M)700 391 y Fl(A)722 407
y Fw(;)c Fx(N)773 391 y Fl(B)795 407 y Fv(i)813 391 y
Fl(A)p Fp(^)p Fl(B)888 407 y Fv(j)k Fu(\()p Fy(p)953
414 y Fq(0)972 407 y Fx(M)1012 391 y Fl(A)p Fp(^)p Fl(B)1076
407 y Fu(\))1094 391 y Fl(A)1126 407 y Fv(j)h Fu(\()p
Fy(p)1192 414 y Fq(1)1210 407 y Fx(M)1250 391 y Fl(A)p
Fp(^)p Fl(B)1315 407 y Fu(\))1333 391 y Fl(B)1365 407
y Fv(j)489 472 y Fu(\()p Fy(l)p Fx(u)555 456 y Fl(A)582
472 y Fx(M)622 456 y Fl(B)644 472 y Fu(\))662 456 y Fl(A)p
Fp(!)p Fl(B)748 472 y Fv(j)f Fu(\()p Fx(M)828 456 y Fl(A)p
Fp(!)p Fl(B)903 472 y Fx(N)936 456 y Fl(A)959 472 y Fu(\))977
456 y Fl(B)1009 472 y Fv(j)h Fu(\()p Fy(l)p Fx(x)1095
456 y Fo(r)1115 472 y Fx(M)1155 456 y Fl(A)1177 472 y
Fu(\))1195 456 y Fp(8)p Fl(x)1229 444 y Fh(r)1244 456
y Fl(A)1276 472 y Fv(j)g Fu(\()p Fx(M)1357 456 y Fp(8)p
Fl(x)1391 444 y Fh(r)1405 456 y Fl(A)1431 472 y Fx(t)1447
456 y Fo(r)1467 472 y Fu(\))1485 456 y Fl(A)1505 461
y Fg(x)1518 456 y Fj([)o Fl(t)r Fj(])1550 472 y Fw(:)243
561 y Fz(The)h(usual)f(restriction)g(on)h(the)g(object-v)o(ariable)e
Fx(x)j Fz(applies)e(when)h(b)o(uilding)e Fy(l)p Fx(x)c(M)r
Fz(.)243 679 y(2.3.)32 b Fx(Reasoning)9 b(in)i(classical)e(and)i
(intuitioni)o(sti)o(c)e(arithmetic)243 784 y Fz(As)i(we)h(ha)o(v)o(e)f
(said)g(nothing)f(special)h(about)f Fv(?)i Fz(so)f(far)n(,)h(we)g(ha)o
(v)o(e)g(a)g(calculus)e(for)i(mini-)243 837 y(mal)f(logic.)g(T)l(o)g(e)
o(xpand)g(it)g(to)f(arithmetic)h(and)g(incorporate)g(constructi)o(vity)
d(we)j(add)243 929 y Fx(Induction)e(axioms.)115 b Fn(Ind)744
941 y Fp(8)p Fl(x)782 931 y Ff(b)q(o)q(ole)843 941 y
Fl(A)915 929 y Fz(:)49 b Fx(A)1005 936 y Fl(x)1022 929
y Fu([)p Fn(true)p Fu(])10 b Fv(!)g Fx(A)1216 936 y Fl(x)1233
929 y Fu([)p Fn(false)p Fu(])g Fv(!)g(8)p Fx(x)5 b(A)p
Fw(;)684 993 y Fn(Ind)744 1002 y Fp(8)p Fl(x)782 993
y Ff(nat)819 1002 y Fl(A)915 993 y Fz(:)49 b Fx(A)1005
1000 y Fl(x)1022 993 y Fu([)p Fn(0)p Fu(])9 b Fv(!)i(8)p
Fx(x)p Fu(\()p Fx(A)f Fv(!)g Fx(A)1320 1000 y Fl(x)1337
993 y Fu([)p Fn(S)p Fx(x)p Fu(]\))f Fv(!)i(8)p Fx(x)5
b(A)p Fw(:)243 1094 y Fv(9)268 1078 y Fp(\003)298 1094
y Fx(axioms.)115 b Fv(9)579 1077 y Fp(\003)p Fj(+)579
1109 y Fl(x)p Fk(;)t Fl(A)712 1094 y Fz(:)50 b Fv(8)p
Fx(x)p Fw(:)5 b Fx(A)10 b Fv(!)g(9)956 1078 y Fp(\003)975
1094 y Fx(x)5 b(A)p Fw(;)554 1161 y Fv(9)579 1143 y Fp(\003\000)579
1175 y Fl(x)p Fk(;)t Fl(A)p Fk(;)t Fl(B)712 1161 y Fz(:)50
b Fv(9)800 1144 y Fp(\003)819 1161 y Fx(x)5 b(A)10 b
Fv(!)g(8)p Fx(x)p Fu(\()p Fx(A)h Fv(!)f Fx(B)p Fu(\))g
Fv(!)g Fx(B)p Fw(;)243 1249 y Fz(where)k(in)f(the)g(latter)g
Fx(x)h Fz(must)f(not)g(occur)h(free)g(in)f Fx(B)p Fz(.)h(The)f
(notation)f Fx(M)r Fz(:)5 b Fx(A)13 b Fz(is)g(synon)o(y-)243
1302 y(mous)e(to)f Fx(M)439 1286 y Fl(A)461 1302 y Fz(.)301
1388 y(W)l(e)h(formulated)e(induction)f(and)i(e)o(xistence)g(as)g
(axioms)f(since)h(we)g(re)o(gard)h(them)f(as)243 1442
y(e)o(xtensions)i(of)i(our)f(logical)g(kernel.)g(Y)-5
b(ou)13 b(might)g(miss)g(ne)o(gation)g(axioms.)g(But)h(the)o(y)243
1496 y(are)e(already)f(present:)301 1626 y Fx(Theor)n(em.)h
Fz(\()p Fx(e)o(x-falso-quodlibet)p Fz(.\))c Fv(?)j(!)f
Fx(A)h Fz(is)g(pro)o(v)o(able.)301 1757 y Fx(Pr)n(oof)o(.)17
b Fz(By)h(induction)d(on)i Fx(A)p Fz(.)h Fx(Base)o(.)g
Fz(W)l(e)g(ha)o(v)o(e)g(to)f(sho)o(w)g Fv(?)d(!)g Fn(atom)o
Fu(\()o Fx(t)s Fu(\))p Fz(.)j(This)243 1811 y(is)d(an)h(instance)f(of)h
Fv(8)p Fx(x)p Fw(:)5 b Fv(?)13 b(!)g Fn(atom)o Fu(\()p
Fx(x)p Fu(\))p Fz(.)i(T)l(o)g(pro)o(v)o(e)g(the)g(latter)n(,)g(we)g
(use)g(the)g(boolean)243 1865 y(induction)i(axiom)i Fn(Ind)627
1875 y Fp(8)p Fl(x)p Fk(:)t Fp(?!)p Fm(atom)m Fj(\()p
Fl(x)p Fj(\))850 1865 y Fz(.)h(It)f(forces)h(us)f(to)g(pro)o(v)o(e)g
(both,)g Fv(?)c(!)g(>)20 b Fz(and)243 1919 y Fv(?)10
b(!)h(?)p Fz(.)j(Using)f(an)h(assumption)e Fx(u)h Fz(of)h(type)f
Fv(?)p Fz(,)i(proofs)e(are)h(simply)f Fy(l)p Fx(u)p Fn(T)l(ruth)h
Fz(resp.)243 1972 y Fy(l)p Fx(uu)p Fz(.)e(Summing)f(up,)h
Fn(Ind)654 1983 y Fp(8)p Fl(x)p Fk(:)t Fp(?!)p Fm(atom)m
Fj(\()p Fl(x)p Fj(\))882 1972 y Fy(l)p Fx(u)p Fn(T)l(ruth)6
b Fy(l)p Fx(uu)t(t)14 b Fz(is)d(a)h(proof)g(of)g Fv(?)e(!)h
Fn(atom)o Fu(\()o Fx(t)s Fu(\))p Fz(.)243 2026 y Fx(Step.)16
b Fz(By)g(induction)e(hypothesis)g(we)j(ha)o(v)o(e)f(a)h(proof)f
Fx(M)i Fz(of)e(type)g Fv(?)d(!)h Fx(A)p Fz(.)i(W)l(e)h(get)243
2080 y Fv(?)9 b(!)g(9)366 2064 y Fp(\003)385 2080 y Fx(x)c(A)11
b Fz(as)f(the)f(type)h(of)f Fy(l)p Fx(u)p Fw(:)c Fv(9)789
2063 y Fp(\003)p Fj(+)789 2095 y Fl(x)p Fk(;)t Fl(A)839
2080 y Fx(x)p Fu(\()p Fx(M)r(u)p Fu(\))p Fz(.)10 b(The)f(other)h(cases)
g(of)g(the)f(induction)f(step)243 2134 y(are)k(easy)m(,)f(too.)301
2265 y(A)i(similar)g(consideration)e(sho)o(ws)i(that)f
Fx(stability)f Fv(::)p Fx(A)h Fv(!)g Fx(A)h Fz(is)g(pro)o(v)o(able)g
(for)g(all)243 2319 y(classical)c(formulas)g Fx(A)p Fz(.)h(Ne)o(v)o
(ertheless)f(we)h(often)f(use)g(e)o(x-falso-quodlibet)e(and)j(stabil-)
243 2373 y(ity)g(as)h(axioms)g(in)g(order)g(to)g(a)o(v)o(oid)f(myriads)
h(of)g(boolean)g(inductions.)301 2458 y(Summing)h(up,)h(with)e(the)i
(appropriate)e(choice)i(of)f(a)h(term)g(calculus)e(we)i(get)f(He)o(y-)
243 2512 y(ting)i(arithmetic,)g(and)h(restriction)f(to)g(the)h
(classical)f(fragment)h(yields)f(Peano)h(arith-)243 2566
y(metic.)911 3108 y Ft(Minlog7.tex;)j(28/04/1998;)g(12:50;)h(p.5)p
eop
%%Page: 6 6
6 5 bop 243 277 a Fz(6)85 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)f
(SEISENBERGER,)h(ZUBER)243 404 y Fz(2.4.)32 b Fx(Semantics)243
513 y Fz(The)12 b(denotational)e(semantics)i(kept)f(in)h(the)g(design)f
(of)j(M)r FA(I)r(N)r(L)r(O)r(G)i Fz(is)c(Scott')n(s)f(domain)243
567 y(theory)j(\(Scott,)i(1982\).)f(A)g(v)o(ariable)g(is)g(supposed)f
(to)h(denote)g(a)g(partial)g(continuous)243 621 y(functional)e(of)i
(its)f(type,)g(whereas)h(a)g(program)g(constant)f(is)g(interpreted)g
(by)g(a)h(com-)243 675 y(putable)h(functional.)h(This)f(is)h
(re\003ected)h(in)f(our)h(formalism)f(where)h(we)g(can)g(work)243
729 y(with)9 b(possibly)f(unde\002ned)i(objects)g(\(cf.)h(section)f
(4\).)h(Since)f(in)g(some)h(applications)d(no)243 783
y(partial)g(objects)h(appear)n(,)h(we)g(in)f(addition)e(allo)o(w)i(a)g
(second)g(kind)g(of)g(v)o(ariables)g(ranging)243 837
y(only)h(o)o(v)o(er)h(the)g(subclass)e(of)i(total)f(functionals.)f(F)o
(or)j(the)e(theory)g(of)h(totality)e(in)h(higher)243
891 y(types)f(we)h(refer)g(to)g(\(Ber)o(ger)n(,)h(1993b\).)e
(Computability)f(of)i(the)f(constants)g(implies)f(that)243
945 y(atomic)16 b(formulas)g(are)h(decidable)e(and)h(e)o(xtracted)g
(programs)h(are)f(e)o(x)o(ecutable)h(\(See)243 998 y(also)10
b(section)g(5\).)695 1197 y FC(3.)30 b Fz(T)r FA(H)r(E)15
b Fz(M)r FA(I)r(N)r(L)r(O)r(G)h(S)r(Y)r(S)r(T)r(E)r(M)243
1323 y Fz(The)e(M)r FA(I)r(N)r(L)r(O)r(G)j Fz(system)c(is)f
(implemented)h(in)h(S)r FA(C)r(H)r(E)r(M)r(E)q Fz(,)j(a)d(L)r
FA(I)r(S)r(P)q Fz(-dialect.)g(Its)f(size)g(is)243 1377
y(about)g(1/2)h(MB,)h(which)f(is)g(rather)g(small)g(compared)h(with)e
(other)h(theorem)g(pro)o(v)o(ers.)243 1431 y(It)d(is)f(an)h(interacti)o
(v)o(e)f(system)h(which)f(ho)o(we)o(v)o(er)g(has)h(quite)f(elaborate)h
(components)f(for)243 1485 y(automated)g(proof)h(search)h(and)f(term)g
(re)o(writing.)243 1611 y(3.1.)32 b Fx(Inter)o(active)10
b(theor)n(em)h(pr)n(oving)243 1720 y Fz(F)o(or)g(pro)o(ving)e(a)i
(theorem)f(in)h(M)r FA(I)r(N)r(L)r(O)r(G)k Fz(the)10
b(user)g(\002rst)h(has)f(to)g(specify)g(the)g(frame)o(work)243
1774 y(consisting)d(of)j(a)g(language)g(and)f(axioms.)h(This)f(can)h
(be)g(done)f(by)h(declaring)f(ne)o(w)h(v)o(ari-)243 1828
y(ables)k(and)h(program)g(constants)f(of)h(possibly)e(user)o
(-de\002ned)i(types.)f(W)l(e)i(allo)o(w)e(con-)243 1882
y(stants)g(parametric)h(in)g(types)f(and,)h(corresponding)f(to)g(that,)
h(axioms)g(parametric)g(in)243 1936 y(formulas.)g(Canonical)h(e)o
(xamples)f(are)i(the)e(recursion)g(operator)g(and)g(the)h(induction)243
1990 y(scheme.)f(Further)g(axioms)g(or)g(lemmas)g(to)f(be)h(pro)o(v)o
(en)g(later)g(can)g(be)g(introduced)f(as)243 2044 y(so-called)f(global)
g(assumptions.)f(The)i(user)g(may)h(take)e(an)o(ything)g(\(hopefully)g
(v)o(alid\))243 2098 y(for)f(granted;)f(as)i(long)e(as)h(a)g(global)f
(assumption)g(contains)g(no)h(computational)e(infor)o(-)243
2152 y(mation,)h(it)f(will)g(not)h(af)o(fect)h(program)f(e)o
(xtraction\227as)g(we)g(will)f(see)i(in)e(section)g(5.)301
2243 y(In)17 b(the)h(sequel)e(we)i(want)f(to)g(gi)o(v)o(e)g(an)g(idea)h
(ho)o(w)e(to)h(work)g(with)f(the)j(M)r FA(I)r(N)r(L)r(O)r(G)243
2297 y Fz(system.)11 b(Let)g(us)f(be)o(gin)h(with)f(a)i(small)f(e)o
(xample:)594 2405 y Fu(\()p Fv(8)p Fx(x)p Fw(:)5 b Fx(A)p
Fu([)p Fx(x)p Fu(])k Fv(!)i Fx(B)p Fu([)p Fx(x)p Fu(]\))e
Fv(!)h(8)p Fx(xA)p Fu([)p Fx(x)p Fu(])g Fv(!)h(8)p Fx(xB)p
Fu([)p Fx(x)p Fu(])p Fw(:)243 2512 y Fz(W)l(e)18 b(\002rst)g(present)f
(a)h(natural)f(deduction)f(proof)i(of)f(this)g(formula)h(in)f(familiar)
g(tree)243 2566 y(notation:)911 3108 y Ft(Minlog7.tex;)h(28/04/1998;)g
(12:50;)h(p.6)p eop
%%Page: 7 7
7 6 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)161 b Fz(7)529 442 y Fx(u)9 b
Fz(:)h Fv(8)p Fx(x)p Fw(:)5 b Fx(A)p Fu([)p Fx(x)p Fu(])10
b Fv(!)g Fx(B)p Fu([)p Fx(x)p Fu(])93 b Fx(x)p 512 463
478 2 v 645 505 a(A)p Fu([)p Fx(x)p Fu(])9 b Fv(!)i Fx(B)p
Fu([)p Fx(x)p Fu(])1066 442 y Fx(v)g Fz(:)e Fv(8)p Fx(xA)p
Fu([)p Fx(x)p Fu(])93 b Fx(x)p 1050 463 319 2 v 1172
505 a(A)p Fu([)p Fx(x)p Fu(])p 628 527 635 2 v 909 569
a Fx(B)p Fu([)p Fx(x)p Fu(])811 606 y Fy(l)p Fx(x)p 869
591 153 2 v 886 633 a Fv(8)p Fx(xB)p Fu([)p Fx(x)p Fu(])719
670 y Fy(l)p Fx(v)p 777 654 337 2 v 794 697 a Fv(8)p
Fx(xA)p Fu([)p Fx(x)p Fu(])9 b Fv(!)i(8)p Fx(xB)p Fu([)p
Fx(x)p Fu(])529 734 y Fy(l)p Fx(u)p 589 718 713 2 v 605
760 a Fu(\()p Fv(8)p Fx(x)p Fw(:)5 b Fx(A)p Fu([)p Fx(x)p
Fu(])10 b Fv(!)g Fx(B)p Fu([)p Fx(x)p Fu(]\))f Fv(!)i(8)p
Fx(xA)p Fu([)p Fx(x)p Fu(])f Fv(!)g(8)p Fx(xB)p Fu([)p
Fx(x)p Fu(])301 868 y Fz(Belo)o(w)j(the)g(protocol)f(of)i(the)f
(interacti)o(v)o(e)f(proof)h(is)g(sho)o(wn.)g(The)g(lines)g(in)f
(paren-)243 922 y(theses)i(are)i(the)g(commands)f(gi)o(v)o(en)g(by)g
(the)h(M)r FA(I)r(N)r(L)r(O)r(G)k Fz(user;)15 b(those)f(starting)g
(with)g(a)243 976 y(semicolon)f(are)j(the)e(responses)f(of)i(the)f
(system,)g(e.g.)i(telling)d(us)h(current)g(goals)g(and)243
1030 y(actual)d(conte)o(xts)f(\(some)h(responses)f(are)i(dropped)f
(here\).)301 1084 y(W)l(e)k(start)g(with)e(introducing)g(an)i
(arbitrary)f(type)h Fe(arb)f Fz(and)h(declare)g(a)g(v)o(ariable)f
Fx(x)243 1138 y Fz(of)g(type)f Fe(arb)h Fz(as)g(well)g(as)g(two)f
(program)h(constants)e Fx(a)i Fz(and)g Fx(b)g Fz(of)g(type)g
Fe(arb->boole)p Fz(,)243 1192 y(displayed)g(with)h(capital)g(letters,)g
(representing)g(the)h(formulas)f Fx(A)p Fu([)p Fx(x)p
Fu(])h Fz(and)f Fx(B)p Fu([)p Fx(x)p Fu(])p Fz(.)h(The)243
1246 y(numerical)11 b(ar)o(gument)g(0)f(in)h(the)f(declaration)g(of)h
(the)g(program)g(constants)e(determines)243 1300 y(their)k(de)o(gree)h
(of)g(totality)m(.)e(This)h(de)o(gree)h(has)g(impact)g(on)f(the)g(e)o
(x)o(ecution)h(of)g(possible)243 1353 y(term)d(re)o(writing)f
(discussed)g(belo)o(w)m(.)301 1407 y(After)j(stating)f(the)h(goal)g
(the)g(proof)f(is)h(b)o(uilt)f(up)h(in)g(a)g(backward)g(reasoning)f
(fash-)243 1461 y(ion.)f(F)o(or)i(conciseness,)e(the)h(system)g
(displays)e(the)i(atomic)g(formula)g Fn(atom)o Fu(\()o
Fx(t)s Fu(\))f Fz(by)h(the)243 1515 y(boolean)j(term)g
Fx(t)j Fz(\(since)e(it)f(is)g(clear)i(from)f(the)f(conte)o(xt)h(that)f
(a)h(formula)g(is)f(meant\).)243 1569 y(Hence)c(we)h(read)f
Fe(\(A)22 b(x\))11 b Fz(for)g(the)g(internal)g Fe(\(atom)21
b(\(a)h(x\)\))o Fz(.)301 1623 y(The)d(symbols)e Fe(?)p
Fz(,)i Fe(?-KERNEL)p Fz(,)e Fe(?1)i Fz(are)g(labels)g(to)f(identify)f
(the)i(\(sub\)goals.)f(In)243 1677 y(I.3.15)13 b(the)g(role)f(of)h
(these)g(`meta)o(v)o(ariables',)g(which)f(are)i(an)f(of)o(\002cial)g
(part)g(of)g(the)f(for)o(-)243 1731 y(mal)h(language)f(of)h(T)l
(ypelab,)g(is)g(thoroughly)d(in)n(v)o(estigated,)i(especially)g(with)g
(respect)243 1785 y(to)i(the)g(problems)g(arising)g(in)g(conjunction)f
(with)g Fy(b)p Fz(-reduction.)h(In)i(M)r FA(I)r(N)r(L)r(O)r(G)q
Fz(,)i(ho)o(w-)243 1839 y(e)o(v)o(er)n(,)d(these)g(problems)f(do)g(not)
g(occur)n(,)h(since)f(we)h(do)f(not)g(allo)o(w)f(normalization)h(for)
243 1893 y(incomplete)c(proofs.)301 1947 y(W)n(ith)h(the)h(command)h
Fe(assume)e Fz(introduction)e(rules)j(for)g(implication)f(and)h(uni)o
(v)o(er)o(-)243 2001 y(sal)e(quanti\002cation)g(can)h(be)g(treated)g
(\(backwards\))f(in)h(one)g(step;)f(the)g(user)h(only)f(has)h(to)243
2055 y(choose)e(some)h(ne)o(w)f(labels)g(for)h(the)f(assumptions.)f
(The)h(command)h Fe(use-with)e Fz(allo)o(ws)243 2109
y(to)i(pro)o(v)o(e)h(the)f(subgoal)f Fe(?-KERNEL:)f Fx(B)p
Fu([)p Fx(x)p Fu(])i Fz(by)g(using)g(the)g(assumption)f
Fx(u)h Fz(at)h Fx(x)g Fz(pro)o(vided)243 2163 y(one)i(can)g(\002nd)g(a)
h(proof)f(for)g(the)g(premise)g Fx(A)p Fu([)p Fx(x)p
Fu(])p Fz(.)g(This)g(is)f(the)h(ne)o(w)g(goal)g Fe(?1)p
Fz(,)g(which)g(of)243 2217 y(course)e(can)g(be)g(pro)o(v)o(ed)h(with)e
(a)h(further)g(application)f(of)h(an)g(elimination)f(rule.)243
2296 y Fe(\(add-ground-)o(type)19 b('arb)j('x\))243 2350
y(\(add-program)o(-con)o(sta)o(nt)e('a)i(\(cons-arrow)d('arb)j
('boole\))f(0)h("A"\))243 2404 y(\(add-program)o(-con)o(sta)o(nt)e('b)i
(\(cons-arrow)d('arb)j('boole\))f(0)h("B"\))243 2512
y(\(set-goal)e('?)i(\(parse-formul)o(a)e("\(all)h(x)i(\(a)f(x)g(->)g(b)
h(x\)\))44 b(->)924 2566 y(all)22 b(x)h(\(a)f(x\))45
b(->)g(all)21 b(x)i(\(b)f(x\)"\)\))911 3108 y Ft(Minlog7.tex;)c
(28/04/1998;)g(12:50;)h(p.7)p eop
%%Page: 8 8
8 7 bop 243 277 a Fz(8)85 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)f
(SEISENBERGER,)h(ZUBER)243 404 y Fe(;?:\(all)21 b(x.A)g(x)i(->)f(B)g
(x\))h(->)f(all)g(x)g(A)g(x)h(->)f(all)g(x)g(B)h(x)243
511 y(\(assume)e('u)h('v)g('x\))243 565 y(;ok,)f(under)h(these)f
(assumptions)f(we)i(have)f(the)h(new)g(goal)243 619 y(;?-KERNEL:)e(B)i
(x)h(from)243 673 y(;)45 b(u:all)21 b(x.A)h(x)h(->)f(B)g(x)243
727 y(;)45 b(v:all)21 b(x)i(A)f(x)243 781 y(;)45 b(x)243
889 y(\(use-with)20 b('u)i('x)g('?1\))243 943 y(;ok,)f(?-KERNEL)g(can)h
(be)g(obtained)e(from)243 997 y(;?1:)h(A)i(x)f(from)243
1051 y(;)45 b(u:all)21 b(x.A)h(x)h(->)f(B)g(x)243 1105
y(;)45 b(v:all)21 b(x)i(A)f(x)243 1159 y(;)45 b(x)243
1267 y(\(use-with)20 b('v)i('x\))243 1321 y(;ok,)f(?1)i(is)f(proved.)e
(Proof)i(finished.)301 1420 y Fz(No)o(w)8 b(let)h(us)f(ha)o(v)o(e)i(a)f
(look)f(at)h(the)g(proof)f(term)i(corresponding)d(to)h(that)g(proof.)h
(It)g(was)243 1474 y(generated)g(interacti)o(v)o(ely)g(by)g(editing)f
(an)i(incomplete)f(deri)o(v)o(ation)f(term)i(with)e(holes)h(in)243
1528 y(it)i(which)g(are)i(the)e(open)h(goals.)f(In)h(our)g(e)o(xample)g
(the)f(\(partial\))h(proof)f(term)i(de)o(v)o(elops)243
1582 y(as)e(follo)o(ws:)542 1661 y Fe(?)542 1727 y Fy(l)p
Fx(u)p Fw(;)5 b Fx(v)m Fw(;)g Fx(x)p Fw(:)10 b Fe(?-KERNEL)542
1794 y Fy(l)p Fx(u)p Fw(;)5 b Fx(v)m Fw(;)g Fx(x)p Fw(:)10
b Fx(ux)5 b Fe(?1)542 1860 y Fy(l)p Fx(u)p Fw(;)g Fx(v)m
Fw(;)g Fx(x)p Fw(:)10 b Fx(ux)p Fu(\()p Fx(vx)p Fu(\))p
Fw(:)301 1939 y Fz(There)j(are)h(also)e(some)h(tools)e(for)i(forward)g
(reasoning.)f(F)o(or)h(instance,)g(instead)f(of)243 1993
y(the)e(last)h(two)f(steps)g(in)g(the)h(interacti)o(v)o(e)f(proof,)h
(it)f(is)h(also)f(possible)f(to)i(\002rst)g(instantiate)243
2047 y(the)g(assumption)f Fx(v)i Fz(with)e Fx(x)p Fz(.)j(Then)e(only)g
(the)g(conte)o(xt)g(changes)g(since)g(we)h(ha)o(v)o(e)g(a)g(ne)o(w)243
2101 y(assumption)c Fx(v)480 2108 y Fl(i)491 2101 y Fz(:)d
Fx(A)p Fu(\()p Fx(x)p Fu(\))p Fz(.)k(T)l(o)h(\002nish)e(the)h(proof)h
(we)f(can)h(use)f Fx(u)h Fz(at)f Fx(x)h Fz(and)f Fx(v)1359
2108 y Fl(i)1371 2101 y Fz(.)h(This)e(dif)o(ferent)243
2155 y(proof)j(leads)f(to)h(dif)o(ferent)g(\(partial\))g(proof)f(terms)
i(de)o(v)o(eloping)d(as)j(follo)o(ws:)542 2234 y Fe(?)542
2300 y Fy(l)p Fx(u)p Fw(;)5 b Fx(v)m Fw(;)g Fx(x)p Fw(:)10
b Fe(?-KERNEL)542 2367 y Fy(l)p Fx(u)p Fw(;)5 b Fx(v)m
Fw(;)g Fx(x)p Fw(:)10 b Fu(\()p Fy(l)p Fx(v)749 2374
y Fl(i)760 2367 y Fw(:)h Fe(?-KERNEL-INS)o(T)m Fu(\)\()p
Fx(vx)p Fu(\))542 2433 y Fy(l)p Fx(u)p Fw(;)5 b Fx(v)m
Fw(;)g Fx(x)p Fw(:)10 b Fu(\()p Fy(l)p Fx(v)749 2440
y Fl(i)760 2433 y Fw(:)h Fx(uxv)847 2440 y Fl(i)858 2433
y Fu(\)\()p Fx(vx)p Fu(\))p Fw(:)243 2512 y Fz(Note)j(that)f(this)g
(proof)h(term)h(can)f(be)h Fy(b)p Fz(-normalized)f(to)f(the)h(proof)g
(term)h(abo)o(v)o(e)f(\(see)243 2566 y(subsection)9 b(3.4\).)911
3108 y Ft(Minlog7.tex;)18 b(28/04/1998;)g(12:50;)h(p.8)p
eop
%%Page: 9 9
9 8 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)161 b Fz(9)243 404 y(3.2.)32
b Fx(A)o(utomated)9 b(pr)n(oof-sear)n(c)o(h)243 498 y
Fz(Of)16 b(course)g(our)f(\002rst)h(e)o(xample)h(was)e(an)h(easy)g(one)
g(that)f(only)g(deals)g(with)g(logic.)h(A)243 552 y(useful)d(proof)h
(system)f(should)g(be)h(able)g(to)g(pro)o(v)o(e)g(such)g(a)g(formula)h
(without)d(human)243 606 y(interaction:)243 689 y Fe(\(set-goal)20
b('?)i(\(parse-formul)o(a)e("\(all)h(x)i(\(a)f(x)g(->)g(b)h(x\)\))44
b(->)924 743 y(all)22 b(x)h(\(a)f(x\))45 b(->)g(all)21
b(x)i(\(b)f(x\)"\)\))243 797 y(;?:\(all)f(x.A)g(x)i(->)f(B)g(x\))h(->)f
(all)g(x)g(A)g(x)h(->)f(all)g(x)g(B)h(x)243 905 y(\(search\))243
959 y(;ok,)e(?)i(is)f(proved)f(by)h(minimal)f(quantifier)f(logic.)243
1013 y(;Proof)h(finished.)243 1097 y Fz(The)h(automatically)e
(generated)i(proof)g(term,)h Fy(l)p Fx(u)1090 1104 y
Fq(01)1125 1097 y Fw(;)5 b Fx(u)1166 1104 y Fq(02)1200
1097 y Fw(;)g Fx(x)p Fw(:)g Fx(u)1279 1104 y Fq(01)1314
1097 y Fx(x)g Fu(\()p Fx(u)1380 1104 y Fq(02)1415 1097
y Fx(x)p Fu(\))p Fz(,)23 b(is)e(equal)243 1151 y(modulo)c(bound)f
(renaming)i(to)f(the)g(former)i(one.)f(It)f(is)h(obtained)e(by)h
(breadth-\002rst)243 1205 y(proof-search)c(in)g(the)g(style)f(of)i
(\(Miller)n(,)g(1991\).)e(Usually)m(,)h(this)f(de)o(vice)h(is)g
(applied)f(to)243 1259 y(subgoals)j(pro)o(v)o(able)h(by)h(pure)f
(predicate)h(logic)f(\(including)f(the)h(use)h(of)g(global)f(as-)243
1313 y(sumptions\).)243 1418 y(3.3.)32 b Fx(Pr)n(oof)10
b(pr)n(esentation)243 1512 y Fz(A)g(proof)h(term)g(can)g(be)f(used)g
(to)g(automatically)g(produce)g(a)h(le)o(gible)f(presentation,)f(i.e.)
243 1566 y(a)i(T)294 1576 y(E)317 1566 y(X-script:)395
1658 y Fi(Pr)o(oposition.)22 b Fu(\()p Fv(8)p Fx(x)p
Fw(:)p Fx(A)p Fu(\()p Fx(x)p Fu(\))10 b Fv(!)g Fx(B)p
Fu(\()p Fx(x)p Fu(\)\))f Fv(!)i(8)p Fx(x)5 b(A)p Fu(\()p
Fx(x)p Fu(\))10 b Fv(!)g(8)p Fx(x)5 b(B)p Fu(\()p Fx(x)p
Fu(\))p Fz(.)395 1737 y Fx(Pr)n(oof)o(.)22 b Fz(F)o(or)g
Fu(\()p Fv(8)p Fx(x)p Fw(:)p Fx(A)p Fu(\()p Fx(x)p Fu(\))16
b Fv(!)g Fx(B)p Fu(\()p Fx(x)p Fu(\)\))f Fv(!)i(8)p Fx(x)5
b(A)p Fu(\()p Fx(x)p Fu(\))16 b Fv(!)h(8)p Fx(x)5 b(B)p
Fu(\()p Fx(x)p Fu(\))22 b Fz(assume)395 1791 y Fv(8)p
Fx(x)p Fw(:)p Fx(A)p Fu(\()p Fx(x)p Fu(\))11 b Fv(!)h
Fx(B)p Fu(\()p Fx(x)p Fu(\))h Fz([1],)g Fv(8)p Fx(x)5
b(A)p Fu(\()p Fx(x)p Fu(\))14 b Fz([2])f(and)g Fx(x)p
Fz(.)h(Then)f(we)g(ha)o(v)o(e)h(to)f(sho)o(w)395 1845
y Fx(B)p Fu(\()p Fx(x)p Fu(\))p Fz(.)g(W)l(e)h(deri)o(v)o(e)f(this)e
(from)j Fx(A)p Fu(\()p Fx(x)p Fu(\))c Fv(!)i Fx(B)p Fu(\()p
Fx(x)p Fu(\))g Fz(\(as)i(an)f(instance)f(of)h([1]\))395
1899 y(and)e(ha)o(v)o(e)h(to)f(sho)o(w)f Fx(A)p Fu(\()p
Fx(x)p Fu(\))p Fz(.)h(That)g(is)f(an)i(instance)e(of)h([2].)243
1989 y(This)i(purely)h(logical)f(e)o(xample)i(was)e(chosen)h(to)g
(demonstrate)f(the)h(Curry-Ho)o(ward-)243 2043 y(correspondence)g(and)h
(the)g(interacti)o(v)o(e)f(use)h(of)g(the)g(logical)f(rules.)i(M)r
FA(I)r(N)r(L)r(O)r(G)q Fz(')n(s)i(em-)243 2097 y(phasis,)9
b(ho)o(we)o(v)o(er)n(,)h(lies)f(on)g(concrete)h(mathematical)g
(problems;)f(data)g(types)g(and)h(con-)243 2151 y(stants)g(should)g(ha)
o(v)o(e)j(a)f(\002x)o(ed)g(denotational)e(semantics)h(e)o(xpressed)g
(operationally)f(by)243 2205 y(suitable)g(higher)g(type)h(re)o(writing)
f(rules.)243 2310 y(3.4.)32 b Fx(Normalization)o(-by-e)o(valuati)o(on)
243 2404 y Fz(The)10 b(heart)h(of)h(M)r FA(I)r(N)r(L)r(O)r(G)j
Fz(is)10 b(the)g(normalization-by-e)o(v)o(aluation)d(mechanism)k(pro)o
(vid-)243 2458 y(ing)f(an)i(ef)o(\002cient)f(implementation)f(of)h(the)
g(operational)f(semantics.)h(Since)h(terms)f(are)243
2512 y(represented)h(by)h(S)r FA(C)r(H)r(E)r(M)r(E)k
Fz(e)o(xpressions)11 b(it)h(is)g(quite)f(natural)h(to)g(use)h(S)r
FA(C)r(H)r(E)r(M)r(E)k Fz(e)o(v)o(al-)243 2566 y(uation)11
b(instead)h(of)h(e)o(xplicitly)e(programming)h(a)h(normalization)f
(procedure)h(\(Ber)o(ger)911 3108 y Ft(Minlog7.tex;)18
b(28/04/1998;)g(12:50;)h(p.9)p eop
%%Page: 10 10
10 9 bop 243 277 a Fz(10)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)f
(SEISENBERGER,)h(ZUBER)243 404 y Fz(and)16 b(Schwichtenber)o(g,)h
(1991;)e(Ber)o(ger)n(,)j(1993a;)e(Ber)o(ger)i(et)e(al.,)i(1998\).)e(T)m
(erms)h(are)243 457 y(normalized)9 b(with)h(respect)f(to)h
Fy(b)p Fn(R)p Fz(-con)n(v)o(ersion)g(and)f(additional)f(higher)i(order)
g(re)o(write)243 511 y(rules)k(gi)o(v)o(en)h(by)g(the)f(user)n(.)h
(Correctness)g(and)g(termination)f(of)h(the)g(additional)e(rules)243
565 y(are)18 b(under)g(control)e(of)i(the)f(user)n(.)h(The)f(problem)h
(of)g(termination)e(and)i(con\003uence)243 619 y(of)g(higher)f(type)g
(re)o(write)g(systems)g(has)h(been)g(analyzed)f(e.g.)i(in)e(\(v)o(an)g
(de)h(Pol)g(and)243 673 y(Schwichtenber)o(g,)11 b(1995;)e(Nipko)o(w)m
(,)h(1993\).)301 751 y(The)f(ef)o(fect)h(of)f(term)h(re)o(writing)e(is)
g(sho)o(wn)g(in)h(a)h(second)e(small)h(e)o(xample.)i(W)l(e)e(pro)o(v)o
(e)820 843 y Fv(8)p Fx(n)c Fn(even)p Fu(\()p Fz(2)p Fv(\003)o
Fx(n)p Fu(\))243 935 y Fz(where)11 b(odd)g(and)g(e)o(v)o(en)g(are)h
(de\002ned)f(as)g(usual)460 1023 y Fn(o)q(dd)p Fu(\()p
Fz(0)p Fu(\))f(=)g Fn(false)307 b(even)q Fu(\()p Fz(0)p
Fu(\))9 b(=)i Fn(true)460 1088 y(o)q(dd)p Fu(\()p Fx(n)p
Fu(+)p Fz(1)p Fu(\))f(=)g Fn(even)q Fu(\()p Fx(n)p Fu(\))189
b Fn(even)q Fu(\()p Fx(n)p Fu(+)p Fz(1)p Fu(\))9 b(=)i
Fn(o)q(dd)q Fu(\()p Fx(n)p Fu(\))243 1183 y Fz(by)g(induction)e(on)i
Fx(n)p Fz(.)g(The)g(base)h(case)f Fn(even)q Fu(\()p Fz(2)p
Fv(\003)o Fz(0)p Fu(\))p Fz(,)g(to)g(be)g(pro)o(v)o(en)h(\002rst,)f
(normalizes)g(to)243 1237 y(the)j(truth)f(axiom.)i(In)g(the)f(step)g
(case)h(we)f(also)g(use)g(term)h(re)o(writing)e(when)h(applying)243
1291 y(the)d(command)g Fe(use-with)p Fz(.)243 1379 y
Fe(\(set-goal)20 b('?)i(\(parse-formul)o(a)e("all)h(n)i
(even\(2*n\)"\)\))243 1487 y(\(ind\))243 1541 y(;ok,)e(?)i(can)f(be)g
(obtained)e(from)243 1595 y(;?-STEP:)g(all)i(n.even\(2*n\))e(->)i
(even\(2*\(n+1\))o(\))243 1649 y(;?-BASE:)e(even\(2*0\))243
1757 y(\(normalize-g)o(oal\))243 1811 y(;ok,)h(the)h(normalized)e(goal)
i(is)243 1865 y(;?-BASE-NF:)d(T)243 1973 y(\(prop\))243
2027 y(;ok,)i(?-BASE-NF)g(is)h(proved)f(by)h(minimal)f(propositiona)o
(l)f(logic.)243 2081 y(;The)h(active)g(goal)h(now)g(is)243
2135 y(;?-STEP:)e(all)i(n.even\(2*n\))e(->)i(even\(2*\(n+1\))o(\))243
2242 y(\(assume)f('n)h('ih\))243 2296 y(;ok,)f(under)h(these)f
(assumptions)f(we)i(have)f(the)h(new)g(goal)243 2350
y(;?-STEP-KERN)o(EL:)d(even\(2*\(n+1\)\))g(from)243 2404
y(;)45 b(n)g(ih:even\(2*n\))243 2512 y(\(use-with)20
b('ih\))243 2566 y(;ok,)h(?-STEP-KERNEL)e(is)k(proved.)d(Proof)i
(finished.)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.10)
p eop
%%Page: 11 11
11 10 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(11)243 404 y(Step)11
b(by)g(step)f(we)i(get)f(the)g(follo)o(wing)e(\(partial\))h(proof)h
(terms:)606 505 y Fe(?)606 569 y Fz(nat-ind-at)782 579
y Fp(8)p Fl(n)t Fm(even)o Fj(\()p Fl(n)p Fj(\))942 569
y Fe(?-BASE)d(?-STEP)606 634 y Fz(nat-ind-at)782 644
y Fp(8)p Fl(n)t Fm(even)o Fj(\()p Fl(n)p Fj(\))942 634
y Fn(T)l(ruth)1048 615 y Fp(>)1086 634 y Fu(\()p Fy(l)p
Fx(n)p Fw(;)d Fz(ih)n Fw(:)g Fz(ih)o Fu(\))243 730 y
Fz(where)13 b(nat-ind-at)g(is)g(the)g(constant)f(representing)g(the)h
(induction)f(axiom.)h(Note)g(that)243 784 y(although)g(the)h(re)o
(write)g(steps)g(are)h(not)f(sho)o(wn)g(in)g(the)g(proof)g(term,)i(the)
o(y)e(are)h(visible)243 838 y(\()p Fv(&)303 822 y Fp(\003)317
838 y Fv(.)p Fz(\))d(in)f(the)g(automatically)e(generated)i(T)969
848 y(E)992 838 y(X-script.)391 937 y Fi(Pr)o(oposition.)22
b Fv(8)p Fx(n)5 b Fi(e)o(ven)p Fu(\()p Fz(2)11 b Fv(\003)6
b Fx(n)p Fu(\))p Fz(.)391 1016 y Fx(Pr)n(oof)o(.)j Fv(8)p
Fx(n)c Fi(e)o(ven)p Fu(\()p Fz(2)10 b Fv(\003)5 b Fx(n)p
Fu(\))k Fz(is)g(sho)o(wn)g(by)g(induction)f(on)h Fx(n)p
Fz(.)i(The)e(base)h(case)391 1070 y(follo)o(ws)18 b(from)i(the)f(axiom)
g(of)g(truth)g(where)g Fi(e)o(ven)q Fu(\()p Fz(2)13 b
Fv(\003)d Fz(0)5 b Fu(\))p Fv(&)1421 1053 y Fp(\003)1434
1070 y Fv(.)h(>)f Fz(.)391 1124 y(Step)15 b(case:)g(Assume)g
Fx(n)g Fz(and)g Fi(e)o(ven)p Fu(\()p Fz(2)d Fv(\003)7
b Fx(n)p Fu(\))15 b Fz([1])g(and)g(use)g Fi(e)o(ven)p
Fu(\()p Fz(2)d Fv(\003)c Fx(n)p Fu(\))391 1178 y Fz([1])j(where)h
Fi(e)o(ven)p Fu(\()p Fz(2)f Fv(\003)6 b Fu(\()p Fx(n)g
Fu(+)g Fz(1)f Fu(\)\))p Fv(&)943 1161 y Fp(\003)956 1178
y Fv(.)p Fi(e)o(ven)q Fu(\()p Fz(2)10 b Fv(\003)c Fx(n)p
Fu(\))p Fz(.)243 1274 y(No)o(w)k(we)h(ha)o(v)o(e)g(described)f(the)g
(basic)g(system.)h(The)g(follo)o(wing)d(sections)h(are)j(de)o(v)o(oted)
243 1328 y(to)f(M)r FA(I)r(N)r(L)r(O)r(G)r Fz(')n(s)i(additional)c
(features)j(and)f(e)o(xamples.)330 1491 y FC(4.)30 b
Fz(H)r FA(I)r(G)r(H)r(E)r(R)16 b(T)r(Y)r(P)r(E)r(S)g(F)r(O)r(R)e(P)r(R)
q(O)r(G)r(R)r(A)r(M)j(V)r(E)r(R)r(I)r(F)r(I)r(C)r(A)o(T)r(I)r(O)s(N)r
Fz(:)g(S)r FA(C)r(H)r(E)r(D)r(U)r(L)r(I)r(N)s(G)243 1599
y Fz(As)c(a)g(\002rst)h(e)o(xample)f(of)h(ho)o(w)f(to)f(pro)o(v)o(e)i
(something)e(with)g(the)i(M)r FA(I)r(N)r(L)r(O)r(G)k
Fz(system)13 b(we)243 1653 y(pick)f(a)g(simple)g(b)o(ut)g(some)o(what)g
(practical)g(one:)f(a)i(safety)f(property)g(for)g(a)h(distrib)o(uted)
243 1707 y(system.)j(The)g(e)o(xample)h(is)f(mathematically)g(quite)f
(tri)o(vial;)g(ho)o(we)o(v)o(er)n(,)h(it)g(hopefully)243
1761 y(makes)j(clear)g(that)g(in)f(a)i(similar)e(way)h(one)g(can)g
(deal)g(with)f(more)i(comple)o(x)f(\(and)243 1815 y(more)c(realistic\))
g(e)o(xamples.)g(In)g(particular)n(,)g(we)g(want)f(to)h(demonstrate)f
(the)h(follo)o(w-)243 1869 y(ing)10 b(points.)265 1944
y(1.)19 b(Nondeterminism)10 b(can)h(be)h(described)e(using)g(a)i
(choice)f(function)f(\(or)h(scheduler\))318 1998 y(as)h(a)h(parameter)g
(\(as)f(was)g(done)f(in)h(\(Boyer)g(and)g(Moore,)h(1988,)f(p.)h(87\))e
(in)h(a)h(\002rst)318 2052 y(order)e(conte)o(xt\).)265
2106 y(2.)19 b(T)l(o)10 b(make)g(proofs)f(manageable)h(it)g(is)f
(essential)g(to)g(use)h(re)o(write)g(rules)f(to)g(take)h(care)318
2160 y(of)h(the)g(computational)e(parts.)265 2214 y(3.)19
b(It)11 b(is)f(useful)g(to)h(gi)o(v)o(e)f(e)o(xplicit)g(de\002nitions)f
(\(as)j(primiti)o(v)o(e)e(recursi)o(v)o(e)g(functionals\))318
2268 y(where)o(v)o(er)i(possible.)e(This)g(turns)h(man)o(y)h(of)f(the)h
(proof)f(obligations)d(into)j(compu-)318 2322 y(tational)e(tasks)i
(\(cf.)h(2\).)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i
(p.11)p eop
%%Page: 12 12
12 11 bop 243 277 a Fz(12)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(4.1.)32 b Fx(The)11
b(pr)n(oblem)243 494 y Fz(Consider)k(a)h(track)g(di)o(vided)e(into)h
(se)o(gments,)h(with)e(an)i(arbitrary)g(number)g(of)g(trains)243
548 y(mo)o(ving)8 b(back)h(and)g(forth.)g(F)o(or)g(simplicity)e(let)i
(us)f(assume)h(that)f(the)h(track)g(is)f(linear)h(and)243
602 y(in\002nite,)h(so)h(the)g(se)o(gments)g(can)g(be)g(modelled)g(by)f
(the)h(inte)o(gers.)g(T)n(rains)g(can)g(mo)o(v)o(e)h(in)243
656 y(both)d(directions,)g(b)o(ut)h(the)o(y)g(can)h(enter)f(another)g
(se)o(gment)g(only)g(if)g(it)g(is)g(empty)m(,)g(i.e.)h(not)243
710 y(occupied)i(by)g(another)h(train.)f(W)l(e)i(want)e(to)g(gi)o(v)o
(e)g(a)i(formal)f(proof)f(of)h(a)g(v)o(ery)g(simple)243
764 y(safety)9 b(property)g(of)h(this)f(system,)g(namely)h(that)f(no)g
(train)h(can)g(e)o(v)o(er)g(pass)f(another)h(one.)301
818 y(The)16 b(system)h(we)g(want)e(to)i(describe)f(is)g
(nondeterministic:)e(at)j(an)o(y)g(time)f(e)o(v)o(ery)243
872 y(train)e(can)h(try)g(to)f(mo)o(v)o(e)i(in)e(an)o(y)h(direction.)f
(W)l(e)i(choose)e(an)h(interlea)o(ving)e(model)i(to)243
926 y(describe)c(the)g(situation,)e(i.e.)j(we)g(assume)f(that)g(the)g
(actions)f(take)h(place)g(one)g(after)h(the)243 980 y(other)n(.)e(T)l
(o)i(pro)o(v)o(e)f(safety)g(properties)f(we)i(do)e(not)h(loose)f(an)o
(ything)g(by)h(this)f(vie)o(w)m(.)301 1034 y(W)l(e)i(model)f(the)g
(nondeterministic)e(system)i(using)f(a)i(choice)f(function)f(\(or)i
(sched-)243 1088 y(uler\))e(as)h(a)g(parameter)n(.)g(This)f(choice)g
(function)f(determines)h(at)h(e)o(v)o(ery)g(moment)f(which)243
1142 y(action)k(is)h(to)f(be)i(taken.)e(Hence)i(the)f(beha)o(viour)f
(of)h(the)g(system)f(is)h(uniquely)e(deter)o(-)243 1196
y(mined)g(once)g(the)f(choice)h(function)f(is)g(gi)o(v)o(en.)h(The)g
(description)e(of)i(the)g(system)f(then)243 1250 y(consists)c(of)h(gi)o
(ving)f(a)i(de\002nition)e(of)i(the)f(state)g(of)h(each)g(agent)f(by)h
(primiti)o(v)o(e)e(recursion)243 1304 y(o)o(v)o(er)14
b(the)f(time)h(\(modelled)f(discretely)g(by)g(the)h(natural)f
(numbers\),)h(with)e(the)i(choice)243 1358 y(function)c(as)h(a)g
(parameter)n(.)301 1412 y(It)17 b(is)f(con)n(v)o(enient)g(to)h(split)e
(up)i(the)g(choice)f(function)g(into)g(two)g(components:)f(a)243
1466 y(function)h(gi)o(ving)g(the)i(acti)o(v)o(e)g(se)o(gment,)g(and)f
(a)h(function)f(telling)f(the)i(direction)e(in)243 1520
y(which)10 b(an)h(acti)o(v)o(ated)g(train)f(can)i(try)f(to)f(mo)o(v)o
(e.)243 1621 y(4.2.)32 b Fx(The)11 b(language)243 1712
y Fz(An)g(appropriate)f(language)g(has)h(four)h(ground)e(types)g
(\(sorts\),)h(with)f(v)o(ariables)423 1797 y Fx(m)p Fw(;)5
b Fx(n)49 b Fz(for)11 b(natural)g(numbers)g(\(used)g(to)f(model)h
(discrete)g(time\),)426 1861 y Fx(p)p Fw(;)5 b Fx(q)56
b Fz(for)11 b(booleans,)423 1926 y Fx(i)110 b Fz(for)11
b(se)o(gments,)430 1991 y Fx(j)103 b Fz(for)11 b(trains.)243
2071 y(The)k(predecessor)g(and)g(successor)g(functions)e(for)j(se)o
(gments)f(are)h(denoted)e(by)h Fn(p)o(rev)243 2125 y
Fz(and)c Fn(next)q Fz(.)h(W)l(e)f(also)g(use)g Fu(=)p
Fz(,)h Fw(<)p Fz(,)g Fv(\024)g Fz(for)f(se)o(gments.)301
2179 y(It)f(will)e(be)i(useful)f(to)g(allo)o(w)g(an)h(error)g(object)f
Fn(undef)15 b Fz(\(read)10 b(`unde\002ned'\))g(for)f(e)o(v)o(ery)243
2233 y(ground)k(type.)h(W)l(e)h(use)g(v)o(ariables)e(with)g(a)i(hat)f
(\(i.e.)22 b(\210)-21 b Fx(n)o Fz(,)25 b(\210)-22 b Fx(p)p
Fz(,)1206 2224 y(\210)1203 2233 y Fx(i)p Fz(,)1251 2224
y(\210)1249 2233 y Fx(j)q Fz(\))14 b(to)g(range)h(o)o(v)o(er)g(arbi-)
243 2287 y(trary)d(objects)f(of)h(their)f(type,)h(including)e
Fn(undef)5 b Fz(.)13 b(V)-5 b(ariables)11 b(without)f(hat)i(range)g(o)o
(v)o(er)243 2340 y(de\002ned)f(\(or)g(total\))g(objects)f(\(cf.)i
(section)e(2\).)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i
(p.12)p eop
%%Page: 13 13
13 12 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(13)243 404 y Fx(P)l(ar)o(ameters)243
457 y Fz(The)21 b(system)f(is)g(determined)h(by)f(its)g(state)h(at)g
(time)g(0,)g(gi)o(v)o(en)f(by)h(the)f(functions)243 511
y Fn(inito)q(cc)q Fz(:)5 b Fn(segment)14 b Fv(!)f Fn(train)18
b Fz(resp.)g Fn(initlo)q(c)p Fz(:)5 b Fn(train)14 b Fv(!)g
Fn(segment)k Fz(describing)d(the)i(ini-)243 565 y(tial)9
b(distrib)o(ution)e(of)j(trains)f(to)h(the)f(track,)i(together)e(with)g
(the)h(two)f(parts)g(of)h(the)g(choice)243 619 y(function:)d
Fn(act)i Fz(\(for)g(acti)o(v)o(e-se)o(gment\))f(and)h
Fn(back)g Fz(\(or)n(,)g(if)g(you)f(prefer)n(,)i Fn(fo)o(rth)o
Fz(\),)g(a)f(boolean)243 673 y(v)o(alued)14 b(function:)g
Fn(back)p Fu(\()p Fx(n)p Fu(\))h Fz(telling)e(whether)i(the)g
(direction)e(to)i(mo)o(v)o(e)h(at)f(time)g Fx(n)g Fz(is)243
727 y(`back'.)d(F)o(or)f(notational)f(con)n(v)o(enience)h(we)g(will)f
(suppress)g(these)h(four)g(parameters.)243 831 y Fx(Occupancy)243
885 y Fz(Our)16 b(\002rst)h(perspecti)o(v)o(e)f(is)g(standing)f(at)h(a)
h(certain)g(se)o(gment)g(of)f(the)h(track,)g(looking)243
939 y(back)10 b(and)g(forth,)g(waiting)e(for)i(a)g(train.)g(The)g
(program)g(constant)f Fn(o)q(cc)h Fz(\(for)h(occupanc)o(y\))243
993 y(yields)h(for)i(gi)o(v)o(en)f(\(parameters,\))i(time)f
Fx(n)g Fz(and)f(se)o(gment)h Fx(i)f Fz(the)h(train)f(occupying)f(this)
243 1047 y(se)o(gment)k(at)g(this)f(time.)h(If)g(there)g(is)g(no)f
(train)h(in)f(the)h(se)o(gment,)g(the)g(v)o(alue)g(is)f(to)h(be)243
1101 y(unde\002ned.)d(W)l(e)h(want)f(to)g(de\002ne)h
Fn(o)q(cc)g Fz(in)f(such)g(a)h(way)f(that)g(the)g(follo)o(wing)f
(property)243 1155 y(holds:)c Fx(A)h(tr)o(ain)g(leaves)h(the)f(actual)g
(se)n(gment)g(in)g(the)g(actual)g(dir)n(ection)f(or)i(will)f(r)n(eac)o
(h)h(a)243 1209 y(se)n(gment)e(moving)f(in)h(the)g(actual)f(dir)n
(ection)g(fr)n(om)h(its)f(neighbour)g(being)h(actual,)f(only)h(if)243
1263 y(its)h(goal)g(se)n(gment)g(is)g(not)h(occupied;)f(and)g(nothing)f
(happens)h(besides.)g Fz(T)l(ogether)h(with)243 1317
y(the)g(initialization)d(this)i(results)g(in)h(six)f(clauses,)h(in)g
(which)g Fn(def)s Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p
Fw(;)5 b Fx(i)p Fu(\)\))k Fz(means)h(that)243 1370 y(at)e(time)h
Fx(n)p Fz(,)g(there)g(is)f(a)h(train)f(that)h(occupies)e(se)o(gment)i
Fx(i)p Fz(,)g(and)g Fn(o)q(cc)p Fu(\()p Fx(n)t Fu(+)t
Fz(1)p Fw(;)c Fx(i)p Fu(\))h(=)i Fn(undef)1567 1352 y
Fm(train)243 1424 y Fz(means)j(that)g(at)g(time)g Fx(n)6
b Fu(+)g Fz(1,)12 b(no)f(train)g(occupies)f(se)o(gment)h
Fx(i)p Fz(.)484 1514 y Fn(o)q(cc)p Fu(\()p Fz(0)p Fw(;)5
b Fx(i)p Fu(\))k(=)h Fn(inito)q(cc)q Fu(\()p Fx(i)p Fu(\))p
Fw(;)484 1579 y Fn(back)q Fu(\()p Fx(n)p Fu(\))f Fv(!)h
Fn(act)q Fu(\()p Fx(n)p Fu(\))f(=)h Fx(i)g Fv(!)h(:)p
Fn(def)t Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p Fw(;)5 b
Fn(p)o(rev)o Fu(\()p Fx(i)p Fu(\)\)\))j Fv(!)529 1644
y Fn(o)q(cc)q Fu(\()p Fx(n)e Fu(+)g Fz(1)p Fw(;)f Fx(i)p
Fu(\))k(=)h Fn(undef)916 1625 y Fm(train)986 1644 y Fw(;)484
1709 y Fn(back)q Fu(\()p Fx(n)p Fu(\))f Fv(!)h Fn(act)q
Fu(\()p Fx(n)p Fu(\))f(=)h Fn(next)q Fu(\()p Fx(i)p Fu(\))f
Fv(!)i(:)p Fn(def)t Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p
Fw(;)5 b Fx(i)p Fu(\)\))j Fv(!)529 1773 y Fn(o)q(cc)q
Fu(\()p Fx(n)e Fu(+)g Fz(1)p Fw(;)f Fx(i)p Fu(\))k(=)h
Fn(o)q(cc)q Fu(\()p Fx(n)p Fw(;)5 b Fn(next)p Fu(\()p
Fx(i)p Fu(\)\))p Fw(;)484 1838 y Fn(back)q Fu(\()p Fx(n)p
Fu(\))k Fv(!)h Fn(act)q Fu(\()p Fx(n)p Fu(\))f(=)h Fx(i)g
Fv(!)h Fn(def)s Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p Fw(;)5
b Fn(p)o(rev)p Fu(\()p Fx(i)p Fu(\)\)\))j Fv(!)529 1903
y Fn(o)q(cc)q Fu(\()p Fx(n)e Fu(+)g Fz(1)p Fw(;)f Fx(i)p
Fu(\))k(=)h Fn(o)q(cc)q Fu(\()p Fx(n)p Fw(;)5 b Fx(i)p
Fu(\))p Fw(;)484 1968 y Fn(back)q Fu(\()p Fx(n)p Fu(\))k
Fv(!)h Fn(act)q Fu(\()p Fx(n)p Fu(\))f(=)h Fn(next)q
Fu(\()p Fx(i)p Fu(\))f Fv(!)i Fn(def)t Fu(\()p Fn(o)q(cc)p
Fu(\()p Fx(n)p Fw(;)5 b Fx(i)p Fu(\)\))j Fv(!)529 2032
y Fn(o)q(cc)q Fu(\()p Fx(n)e Fu(+)g Fz(1)p Fw(;)f Fx(i)p
Fu(\))k(=)h Fn(o)q(cc)q Fu(\()p Fx(n)p Fw(;)5 b Fx(i)p
Fu(\))p Fw(;)484 2097 y Fn(back)q Fu(\()p Fx(n)p Fu(\))k
Fv(!)h Fn(act)q Fu(\()p Fx(n)p Fu(\))f Fv(6)p Fu(=)h
Fn(next)q Fu(\()p Fx(i)p Fu(\))f Fv(!)i Fn(act)p Fu(\()p
Fx(n)p Fu(\))e Fv(6)p Fu(=)i Fx(i)f Fv(!)529 2162 y Fn(o)q(cc)q
Fu(\()p Fx(n)c Fu(+)g Fz(1)p Fw(;)f Fx(i)p Fu(\))k(=)h
Fn(o)q(cc)q Fu(\()p Fx(n)p Fw(;)5 b Fx(i)p Fu(\))p Fw(:)243
2247 y Fz(The)11 b(clauses)g(for)h(the)f(other)g(direction)f(are)i
(similar)n(.)f(So)g(we)h(de\002ne)g Fn(o)q(cc)g Fz(accordingly)m(,)243
2301 y(by)f(primiti)o(v)o(e)f(recursion)g(using)g(the)h(abo)o(v)o(e)h
(case)g(distinction)o(s.)d(The)i(recursion)g(equa-)243
2355 y(tions)f(can)h(then)g(be)g(used)g(as)g(re)o(write)g(rules.)243
2458 y Fx(Location)243 2512 y Fz(No)o(w)k(let)g(us)g(assume,)h(we)f
(are)i(sitting)c(in)i(a)h(train,)f(looking)f(where)i(we)f(mo)o(v)o(e.)i
(The)243 2566 y(program)12 b(constant)f Fn(lo)q(c)h Fz(\(for)g
(location\))f(yields)f(for)j(gi)o(v)o(en)e(\(parameters,\))i(time)f
Fx(n)g Fz(and)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i
(p.13)p eop
%%Page: 14 14
14 13 bop 243 277 a Fz(14)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(train)24 b Fx(j)18
b Fz(the)e(se)o(gment)i(where)f(the)g(train)g(is)g(located)f(at)i(this)
e(time.)h(F)o(or)h Fn(lo)q(c)g Fz(we)f(re-)243 457 y(quire)9
b(the)h(follo)o(wing)e(property:)g Fx(The)j(tr)o(ain)e(being)g(in)g
(the)h(active)f(se)n(gment)h(moves)f(one)243 511 y(se)n(gment)14
b(in)h(the)g(actual)g(dir)n(ection)f(only)g(if)h(this)f(se)n(gment)h
(is)g(not)f Fd(occ)p Fx(upied\(!\),)i(and)243 565 y(nothing)9
b(happens)h(besides.)g Fz(In)i(clauses:)346 664 y Fn(lo)q(c)p
Fu(\()p Fz(0)p Fw(;)g Fx(j)q Fu(\))c(=)j Fn(initlo)q(c)p
Fu(\()c Fx(j)q Fu(\))p Fw(;)346 728 y Fn(act)p Fu(\()p
Fx(n)p Fu(\))j(=)g Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)i
Fx(j)q Fu(\))c Fv(!)j Fn(back)q Fu(\()p Fx(n)p Fu(\))e
Fv(!)h(:)p Fn(def)t Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p
Fw(;)5 b Fn(p)o(rev)p Fu(\()p Fn(lo)q(c)p Fu(\()p Fx(n)p
Fw(;)12 b Fx(j)q Fu(\)\)\)\))7 b Fv(!)391 793 y Fn(lo)q(c)q
Fu(\()p Fx(n)f Fu(+)g Fz(1)p Fw(;)12 b Fx(j)q Fu(\))d(=)h
Fn(p)o(rev)p Fu(\()p Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)i
Fx(j)q Fu(\)\))p Fw(;)346 858 y Fn(act)p Fu(\()p Fx(n)p
Fu(\))e(=)g Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)i Fx(j)q
Fu(\))c Fv(!)j Fn(back)q Fu(\()p Fx(n)p Fu(\))e Fv(!)h
Fn(def)t Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p Fw(;)5 b
Fn(p)o(rev)p Fu(\()p Fn(lo)q(c)o Fu(\()p Fx(n)p Fw(;)12
b Fx(j)q Fu(\)\)\)\))c Fv(!)391 923 y Fn(lo)q(c)q Fu(\()p
Fx(n)e Fu(+)g Fz(1)p Fw(;)12 b Fx(j)q Fu(\))d(=)h Fn(lo)q(c)p
Fu(\()p Fx(n)p Fw(;)i Fx(j)q Fu(\))p Fw(;)346 987 y Fn(act)p
Fu(\()p Fx(n)p Fu(\))e Fv(6)p Fu(=)g Fn(lo)q(c)p Fu(\()p
Fx(n)p Fw(;)i Fx(j)q Fu(\))c Fv(!)j Fn(lo)q(c)p Fu(\()p
Fx(n)6 b Fu(+)g Fz(1)p Fw(;)12 b Fx(j)q Fu(\))d(=)h Fn(lo)q(c)p
Fu(\()p Fx(n)p Fw(;)i Fx(j)q Fu(\))p Fw(:)243 1082 y
Fz(The)g(clauses)f(for)i(the)e(other)h(direction)f(are)i(similar;)e(we)
h(de\002ne)g Fn(lo)q(c)h Fz(accordingly)m(,)e(by)243
1136 y(primiti)o(v)o(e)f(recursion.)301 1190 y(There)k(is)g(one)h
(important)e(point)g(to)h(be)h(made)g(here.)g(The)f Fn(o)q(cc)q
Fz(-function)f(and)h(the)243 1244 y(whole)c(\002rst)h(perspecti)o(v)o
(e)g(could)f(ha)o(v)o(e)i(been)f(a)o(v)o(oided)f(if)h(we)h(had)e(used)h
(an)g(e)o(xistential)243 1298 y(quanti\002er)f(in)h(the)g(equations)f
(abo)o(v)o(e,)h(as)h(follo)o(ws:)320 1397 y Fn(act)q
Fu(\()p Fx(n)p Fu(\))d(=)h Fn(lo)q(c)p Fu(\()p Fx(n)p
Fw(;)i Fx(j)q Fu(\))d Fv(!)h Fn(back)q Fu(\()p Fx(n)p
Fu(\))f Fv(!)i(:9)c Fx(j)996 1404 y Fq(1)1014 1397 y
Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)12 b Fx(j)1148 1404 y
Fq(1)1165 1397 y Fu(\))e(=)g Fn(p)o(rev)q Fu(\()p Fn(lo)q(c)p
Fu(\()p Fx(n)p Fw(;)i Fx(j)q Fu(\)\))c Fv(!)366 1461
y Fn(lo)q(c)p Fu(\()p Fx(n)e Fu(+)g Fz(1)p Fw(;)12 b
Fx(j)q Fu(\))d(=)h Fn(p)o(rev)q Fu(\()p Fn(lo)q(c)o Fu(\()p
Fx(n)p Fw(;)i Fx(j)q Fu(\)\))p Fw(;)320 1526 y Fn(act)q
Fu(\()p Fx(n)p Fu(\))d(=)h Fn(lo)q(c)p Fu(\()p Fx(n)p
Fw(;)i Fx(j)q Fu(\))d Fv(!)h Fn(back)q Fu(\()p Fx(n)p
Fu(\))f Fv(!)i(9)c Fx(j)966 1533 y Fq(1)984 1526 y Fn(lo)q(c)p
Fu(\()p Fx(n)p Fw(;)12 b Fx(j)1118 1533 y Fq(1)1135 1526
y Fu(\))e(=)g Fn(p)o(rev)q Fu(\()p Fn(lo)q(c)o Fu(\()p
Fx(n)p Fw(;)i Fx(j)q Fu(\)\))c Fv(!)366 1591 y Fn(lo)q(c)p
Fu(\()p Fx(n)e Fu(+)g Fz(1)p Fw(;)12 b Fx(j)q Fu(\))d(=)h
Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)i Fx(j)q Fu(\))p Fw(:)243
1685 y Fz(Ho)o(we)o(v)o(er)n(,)f(since)f(we)g(want)g(to)g(shift)f(as)h
(much)h(as)f(possible)f(of)h(the)g(b)o(urden)g(of)h(pro)o(ving)243
1739 y(something)j(to)i(our)g(re)o(write)f(apparatus,)h(we)g(make)h
(this)d(e)o(xistential)h(quanti\002er)g(e)o(x-)243 1793
y(plicit)9 b(by)h(introducing)e(an)i(appropriate)g(function.)f(This)h
(is)g(a)g(general)h(pattern:)e(when-)243 1847 y(e)o(v)o(er)k(in)g(a)g
(gi)o(v)o(en)g(problem)g(there)g(is)f(a)i(functional)d(dependenc)o(y)i
(of)g(some)g(data)g(from)243 1901 y(others,)g(introduce)f(a)h(function)
f(to)g(describe)h(this)f(dependenc)o(y)h(in)g(an)g(e)o(xplicit)f(form.)
243 1955 y(This)j(function)f(can)i(then)f(be)h(used)f(in)h(a)g(re)o
(writing)e(mechanism,)i(which)f(generally)243 2009 y(makes)c(pro)o
(ving)f(much)h(simpler)n(.)243 2116 y(4.3.)32 b Fx(The)11
b(speci\002cation)e(and)i(its)f(pr)n(oof)243 2212 y Fz(No)o(w)h(we)i
(can)f(formulate)g(the)g(safety)f(property)h(we)g(want)f(to)h(pro)o(v)o
(e,)h(namely)f(that)f(no)243 2266 y(train)f(can)i(e)o(v)o(er)g(pass)e
(another)h(one:)435 2369 y Fn(inito)q(cc)q Fu(\()p Fn(initlo)q(c)p
Fu(\()c Fx(j)733 2376 y Fq(1)751 2369 y Fu(\)\))i(=)17
b Fx(j)861 2376 y Fq(1)890 2369 y Fv(!)10 b Fn(inito)q(cc)q
Fu(\()p Fn(initlo)q(c)q Fu(\()d Fx(j)1244 2376 y Fq(2)1261
2369 y Fu(\)\))j(=)17 b Fx(j)1372 2376 y Fq(2)1400 2369
y Fv(!)435 2434 y Fn(initlo)q(c)p Fu(\()7 b Fx(j)589
2441 y Fq(1)607 2434 y Fu(\))j Fw(<)g Fn(initlo)q(c)q
Fu(\()d Fx(j)835 2441 y Fq(2)853 2434 y Fu(\))i Fv(!)i(8)p
Fx(n)5 b Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)12 b Fx(j)1123
2441 y Fq(1)1140 2434 y Fu(\))e Fw(<)g Fn(lo)q(c)p Fu(\()p
Fx(n)p Fw(;)i Fx(j)1347 2441 y Fq(2)1364 2434 y Fu(\))p
Fw(:)243 2512 y Fz(Rather)i(than)e(describing)g(the)i(interacti)o(v)o
(e)e(construction)g(of)h(the)g(proof)g(in)g(the)i(M)r
FA(I)r(N)r Fz(-)244 2566 y FA(L)r(O)r(G)i Fz(system,)d(we)h(restrict)f
(ourselv)o(es)g(to)g(some)g(hints:)f(The)h(proof)h(is)f(by)g(induction)
891 3108 y Ft(Minlog7.tex;)j(28/04/1998;)h(12:50;)i(p.14)p
eop
%%Page: 15 15
15 14 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(15)243 404 y(on)12 b
Fx(n)p Fz(.)i(In)e(order)h(to)g(keep)f(it)h(comprehensible,)f(it)g(is)h
(crucial)g(to)f(think)g(of)h(appropriate)243 457 y(lemmas)d(\002rst.)g
(In)f(the)h(present)f(e)o(xample,)h(beside)f(some)h(basic)f
(arithmetical)g(facts,)g(the)243 511 y(follo)o(wing)g(lemmas)j(are)f
(pro)o(v)o(ed)h(separately)e(and)h(then)g(used:)512 605
y Fn(p)o(rev)q Fu(\()p Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)h
Fx(j)q Fu(\)\))c Fv(\024)i Fn(lo)q(c)p Fu(\()p Fx(n)c
Fu(+)g Fz(1)p Fw(;)12 b Fx(j)q Fu(\))p Fw(;)512 670 y
Fn(lo)q(c)p Fu(\()p Fx(n)6 b Fu(+)g Fz(1)p Fw(;)12 b
Fx(j)q Fu(\))d Fv(\024)i Fn(next)q Fu(\()p Fn(lo)q(c)p
Fu(\()p Fx(n)p Fw(;)h Fx(j)q Fu(\)\))p Fw(;)512 735 y
Fn(back)q Fu(\()p Fx(n)p Fu(\))d Fv(!)i Fn(lo)q(c)p Fu(\()p
Fx(n)6 b Fu(+)g Fz(1)p Fw(;)12 b Fx(j)q Fu(\))d Fv(\024)h
Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)i Fx(j)q Fu(\))p Fw(;)512
799 y Fv(:)p Fn(back)q Fu(\()p Fx(n)p Fu(\))d Fv(!)i
Fn(lo)q(c)p Fu(\()p Fx(n)p Fw(;)h Fx(j)q Fu(\))c Fv(\024)j
Fn(lo)q(c)p Fu(\()p Fx(n)6 b Fu(+)g Fz(1)p Fw(;)12 b
Fx(j)q Fu(\))p Fw(;)512 864 y Fn(inito)q(cc)q Fu(\()p
Fn(initlo)q(c)q Fu(\()7 b Fx(j)q Fu(\)\))h(=)18 b Fx(j)10
b Fv(!)h Fn(o)q(cc)p Fu(\()p Fx(n)p Fw(;)5 b Fn(lo)q(c)o
Fu(\()p Fx(n)p Fw(;)12 b Fx(j)q Fu(\)\))c(=)18 b Fx(j)q
Fw(:)243 953 y Fz(The)12 b(size)g(of)g(the)f(proof)h(term)g(\002nally)g
(obtained)f(is)g(about)g(two)g(pages,)h(and)g(the)g(ef)o(fort)243
1007 y(to)f(generate)h(it)f(\(without)g(using)f(an)o(y)i(automated)f
(search\))i(was)e(42)g(interactions.)g(The)243 1061 y(amount)f(for)i
(each)f(lemma)i(was)d(approximately)g(the)h(same.)243
1166 y(4.4.)32 b Fx(F)n(inal)10 b(r)n(emarks)g(on)h(the)g(sc)o
(heduling)f(e)o(xample)265 1260 y Fz(1.)19 b(The)13 b(constants)f
Fn(o)q(cc)i Fz(and)f Fn(lo)q(c)h Fz(are)g(de\002ned)f(by)g(primiti)o(v)
o(e)g(recursion)f(with)h(func-)318 1314 y(tion)g(parameters,)h(i.e.)h
(within)d(G\366del')n(s)g(system)i Fx(T)6 b Fz(.)14 b(Since)g(we)g
(only)f(ha)o(v)o(e)h(used)318 1368 y(the)e(recursion)f(equations)g(as)h
(re)o(write)g(rules,)g(termination)f(as)i(well)e(as)i(preserv)o(a-)318
1422 y(tion)d(of)h(the)g(v)o(alues)f(is)h(guaranteed.)265
1476 y(2.)19 b(The)c(possibility)e(to)i(use)h(e.g.)g
Fx(i)g Fz(as)g(well)f(as)1052 1467 y(\210)1050 1476 y
Fx(i)h Fz(pro)o(vides)e(additional)g(e)o(xpressi)o(v)o(e)318
1530 y(po)o(wer)n(,)k(which)f(can)i(be)f(quite)f(useful:)g(cf.)h(the)g
(use)g(of)g Fn(def)t Fu(\()p Fn(o)q(cc)p Fu(\()p Fx(n)p
Fw(;)5 b Fx(i)p Fu(\)\))16 b Fz(for)i(`is)318 1584 y(occupied)10
b(by)h(a)h(\(real\))f(train'.)265 1638 y(3.)19 b(The)8
b(ground)g(type)g Fn(segment)h Fz(was)f(described)g(axiomatically)m(,)f
(by)i(means)f(of)h(prop-)318 1692 y(erties)j(of)h Fn(p)o(rev)h
Fz(and)f Fn(next)h Fz(like)e Fn(p)o(rev)p Fu(\()p Fn(next)q
Fu(\()p Fx(i)p Fu(\)\))e(=)h Fx(i)p Fz(.)i(If)h(instead)e(we)h(ha)o(v)o
(e)g(a)g(\002x)o(ed)318 1746 y(ground)i(type)g(like)g(the)h(inte)o
(gers)g(for)g(se)o(gments)g(and)g(constants)e(for)i(particular)318
1800 y(se)o(gments,)f(we)f(obtain)g(an)h(e)o(x)o(ecutable)g
(speci\002cation.)f(It)h(can)g(be)f(e)o(x)o(ecuted)i(for)318
1854 y(completely)10 b(concrete)i(data,)g(b)o(ut)f(also)g(for)g
(partially)f(gi)o(v)o(en)h(ones)g(\(partial)g(e)o(v)o(alu-)318
1908 y(ation\).)556 2083 y FC(5.)31 b Fz(P)r FA(R)q(O)r(G)r(R)r(A)r(M)
16 b(E)r(X)r(T)r(R)r(A)q(C)r(T)r(I)r(O)s(N)h Fz(Q)r FA(U)r(I)r(C)r(K)r
(S)r(O)r(RT)243 2188 y Fz(In)c(the)f(pre)o(vious)g(section,)g(we)h(sho)
o(wed)f(ho)o(w)h(M)r FA(I)r(N)r(L)r(O)r(G)k Fz(can)d(be)f(used)f(to)g
(v)o(erify)h(that)243 2242 y(a)j(gi)o(v)o(en)f(program)g(\()p
Fn(lo)q(c)q Fz(\))h(meets)f(its)g(speci\002cation.)g(No)o(w)g(we)h
(will)e(e)o(xplain)h(ho)o(w)g(to)243 2296 y(obtain)d(correct)i
(programs)f(in)h(M)r FA(I)r(N)r(L)r(O)r(G)k Fz(using)12
b(program)i(e)o(xtraction.)f(From)h(a)g(con-)243 2350
y(structi)o(v)o(e)d(proof)g(one)h(can)g(read)g(of)o(f)g(a)g(witness,)f
(i.e.)h(a)h(term)f(that)f(realizes)h(the)g(pro)o(v)o(en)243
2404 y(formula.)g(First,)f(we)h(will)e(e)o(xplain)h(what)g(it)g(means)h
(e)o(xactly)f(that)g(a)g(term)h(\(a)g(program\))243 2458
y(realizes)i(a)g(formula)g(\(we)g(use)f(the)h(modi\002ed)g
(realizability)e(interpretation)g(\(Kreisel,)243 2512
y(1959\)\))e(and)h(ho)o(w)g(a)h(realizing)e(term)i(can)f(be)h
(obtained.)e(Then)h(we)g(will)g(use)g(this)f(tech-)243
2566 y(nique)k(to)h(get)g(the)g(well-kno)o(wn)e(quicksort)h(algorithm.)
g(This)h(e)o(xample)g(also)g(sho)o(ws)891 3108 y Ft(Minlog7.tex;)i
(28/04/1998;)h(12:50;)i(p.15)p eop
%%Page: 16 16
16 15 bop 243 277 a Fz(16)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(another)k(e)o(xtension)g(of)i(the)
e(basic)i(M)r FA(I)r(N)r(L)r(O)r(G)j Fz(system)c(at)g(work:)f(the)h
(Simultaneous)243 457 y(Free)g(Algebras.)e(The)h(SF)m(A)g
(implementation)e(allo)o(ws)h(the)g(user)h(to)f(add)h(inducti)o(v)o
(ely)243 511 y(de\002ned)f(data)g(types)f(\(in)g(this)g(e)o(xample)i
(lists)d(of)i(natural)f(numbers\))h(as)g(ne)o(w)g(ground)243
565 y(types)f(to)g(the)g(system)h(and)f(automatically)g(pro)o(vides)f
(the)i(corresponding)e(induction)243 619 y(schemes)g(and)g(recursors,)h
(as)f(well)g(as)g(an)h(interface)f(for)g(the)g(\(otherwise)g(fairly)f
(com-)243 673 y(plicated\))h(creation)h(of)g(functionals)e(de\002ned)i
(by)g(recursion)f(o)o(v)o(er)i(this)e(type.)h(Similar)243
727 y(considerations)g(concerning)h(program)h(e)o(xtraction)g(and)g
(its)f(application)g(to)g(sorting)243 781 y(problems)f(can)i(already)f
(be)h(found)e(in)h(\(T)n(urner)n(,)h(1991\).)f(In)g(the)g(present)g
(section)g(we)243 835 y(want)c(to)i(sho)o(w)e(that)h(such)g(a)h(task)f
(can)h(be)f(carried)h(out)f(rather)h(ele)o(gantly)e(in)h(the)i(M)r
FA(I)r(N)r Fz(-)244 889 y FA(L)r(O)r(G)h Fz(system.)243
996 y(5.1.)32 b Fx(Pr)n(ogr)o(am)9 b(e)o(xtr)o(action)243
1091 y Fz(A)17 b Fx(Harr)n(op)f(formula)g Fz(is)h(a)h(formula)g(not)e
(containing)g(the)h(constructi)o(v)o(e)f(e)o(xistential)243
1145 y(quanti\002er)d Fv(9)456 1129 y Fp(\003)488 1145
y Fz(strictly)f(positi)o(v)o(e.)g(In)i(the)f(follo)o(wing)f(let)h
Fx(A)p Fw(;)5 b Fx(B)13 b Fz(stand)f(for)i(Harrop)f(for)o(-)243
1199 y(mulas)e(and)e Fx(C)q Fw(;)c Fx(D)10 b Fz(for)i(non\226Harrop)e
(formulas.)h(First)f(of)i(all)e(we)i(de\002ne)f(the)g(type)f
Fy(t)p Fu(\()n Fx(C)q Fu(\))243 1253 y Fz(of)h(potential)e(realizers)j
(of)d Fx(C)q Fz(:)452 1341 y Fy(t)p Fu(\()p Fv(9)515
1322 y Fp(\003)534 1341 y Fx(x)554 1322 y Fo(r)579 1341
y Fx(A)p Fu(\))50 b Fz(:)p Fu(=)f Fy(r)p Fw(;)451 1407
y Fy(t)p Fu(\()p Fv(9)514 1388 y Fp(\003)532 1407 y Fx(x)552
1388 y Fo(r)576 1407 y Fx(C)q Fu(\))h Fz(:)p Fu(=)f Fy(r)6
b Fv(\002)g Fy(t)p Fu(\()n Fx(C)q Fu(\))p Fw(;)470 1474
y Fy(t)p Fu(\()p Fv(8)p Fx(x)553 1455 y Fo(r)576 1474
y Fx(C)q Fu(\))50 b Fz(:)p Fu(=)f Fy(r)10 b Fv(!)h Fy(t)p
Fu(\()n Fx(C)q Fu(\))p Fw(;)447 1540 y Fy(t)p Fu(\()p
Fx(A)f Fv(!)e Fx(C)q Fu(\))50 b Fz(:)p Fu(=)f Fy(t)p
Fu(\()n Fx(C)q Fu(\))p Fw(;)442 1606 y Fy(t)p Fu(\()p
Fx(D)10 b Fv(!)e Fx(C)q Fu(\))50 b Fz(:)p Fu(=)f Fy(t)p
Fu(\()p Fx(D)p Fu(\))9 b Fv(!)i Fy(t)p Fu(\()n Fx(C)q
Fu(\))p Fw(;)470 1673 y Fy(t)p Fu(\()p Fx(A)6 b Fv(^)t
Fx(C)q Fu(\))50 b Fz(:)p Fu(=)f Fy(t)p Fu(\()n Fx(C)q
Fu(\))p Fw(;)470 1739 y Fy(t)p Fu(\()n Fx(C)7 b Fv(^)f
Fx(A)p Fu(\))50 b Fz(:)p Fu(=)f Fy(t)p Fu(\()n Fx(C)q
Fu(\))p Fw(;)465 1806 y Fy(t)p Fu(\()n Fx(C)7 b Fv(^)f
Fx(D)p Fu(\))50 b Fz(:)p Fu(=)f Fy(t)p Fu(\()n Fx(C)q
Fu(\))6 b Fv(\002)g Fy(t)p Fu(\()p Fx(D)p Fu(\))p Fw(:)243
1893 y Fz(No)o(w)23 b(we)h(can)f(de\002ne)h(the)g Fx(modi\002ed)e(r)n
(ealizability)f(interpr)n(etation)43 b(t)1467 1877 y
Fo(t)p Fj(\()n Fl(C)q Fj(\))1540 1893 y Fi(mr)8 b Fx(C)243
1947 y Fz(\(`)o Fx(t)14 b Fz(realizes)9 b Fx(C)q Fz('\))j(and)f
Fy(e)f Fi(mr)g Fx(A)p Fz(:)507 2035 y Fx(t)j Fi(mr)d
Fv(9)626 2016 y Fp(\003)645 2035 y Fx(x)5 b(A)50 b Fz(:)p
Fu(=)g Fy(e)10 b Fi(mr)g Fx(A)972 2042 y Fl(x)988 2035
y Fu([)o Fx(t)s Fu(])p Fw(;)506 2101 y Fx(t)j Fi(mr)d
Fv(9)625 2083 y Fp(\003)644 2101 y Fx(x)s(C)51 b Fz(:)p
Fu(=)f Fy(p)871 2108 y Fq(1)888 2101 y Fx(t)13 b Fi(mr)8
b Fx(C)1009 2108 y Fl(x)1026 2101 y Fu([)p Fy(p)1064
2108 y Fq(0)1081 2101 y Fx(t)s Fu(])p Fw(;)521 2168 y
Fy(e)i Fi(mr)h Fv(8)p Fx(x)5 b(A)50 b Fz(:)p Fu(=)g Fv(8)p
Fx(x)p Fw(:)5 b Fy(e)10 b Fi(mr)g Fx(A)p Fw(;)524 2234
y Fx(t)j Fi(mr)d Fv(8)p Fx(x)s(C)52 b Fz(:)p Fu(=)e Fv(8)p
Fx(x)p Fw(:)t Fx(t)7 b(x)k Fi(mr)d Fx(C)q Fw(;)443 2301
y Fy(e)i Fi(mr)g Fu(\()p Fx(A)g Fv(!)h Fx(B)p Fu(\))49
b Fz(:)p Fu(=)h Fy(e)10 b Fi(mr)g Fx(A)g Fv(!)g Fy(e)g
Fi(mr)g Fx(B)p Fw(;)442 2367 y Fy(e)g Fi(mr)g Fu(\()n
Fx(C)h Fv(!)g Fx(A)p Fu(\))49 b Fz(:)p Fu(=)h Fv(8)p
Fx(x)p Fw(:)5 b Fx(x)10 b Fi(mr)e Fx(C)j Fv(!)g Fy(e)f
Fi(mr)g Fx(A)p Fw(;)446 2433 y Fx(t)j Fi(mr)d Fu(\()p
Fx(A)g Fv(!)e Fx(C)q Fu(\))50 b Fz(:)p Fu(=)g Fy(e)10
b Fi(mr)g Fx(A)g Fv(!)f Fx(t)k Fi(mr)8 b Fx(C)q Fw(;)441
2500 y Fx(t)13 b Fi(mr)d Fu(\()p Fx(D)g Fv(!)e Fx(C)q
Fu(\))50 b Fz(:)p Fu(=)g Fv(8)p Fx(x)p Fw(:)5 b Fx(x)10
b Fi(mr)g Fx(D)g Fv(!)g Fx(t)d(x)k Fi(mr)d Fx(C)q Fw(;)466
2566 y Fy(e)i Fi(mr)g Fu(\()p Fx(A)c Fv(^)g Fx(B)p Fu(\))50
b Fz(:)p Fu(=)g Fy(e)10 b Fi(mr)g Fx(A)c Fv(^)g Fy(e)k
Fi(mr)h Fx(B)p Fw(;)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h
(12:50;)i(p.16)p eop
%%Page: 17 17
17 16 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(17)469 404 y Fx(t)13
b Fi(mr)d Fu(\()p Fx(A)c Fv(^)t Fx(C)q Fu(\))50 b Fz(:)p
Fu(=)g Fy(e)10 b Fi(mr)g Fx(A)c Fv(^)f Fx(t)13 b Fi(mr)8
b Fx(C)q Fw(;)469 470 y Fx(t)13 b Fi(mr)d Fu(\()n Fx(C)d
Fv(^)f Fx(A)p Fu(\))50 b Fz(:)p Fu(=)f Fx(t)12 b Fi(mr)c
Fx(C)g Fv(^)e Fy(e)k Fi(mr)h Fx(A)p Fw(;)464 536 y Fx(t)i
Fi(mr)d Fu(\()n Fx(C)d Fv(^)f Fx(D)p Fu(\))50 b Fz(:)p
Fu(=)g Fy(p)871 543 y Fq(0)888 536 y Fx(t)13 b Fi(mr)8
b Fx(C)f Fv(^)f Fy(p)1078 543 y Fq(1)1097 536 y Fx(t)12
b Fi(mr)e Fx(D)p Fw(:)243 621 y Fz(Finally)m(,)g(the)h(most)f
(important)g(part:)h(ho)o(w)f(to)h(get)f(a)i(realizing)e(term)i(from)f
(a)g(construc-)243 675 y(ti)o(v)o(e)h(proof)h Fx(M)472
659 y Fl(C)497 675 y Fz(.)g(Informally)m(,)g(the)g(structure)f(of)h
(the)g(e)o(xtracted)g(term)g Fu([)-5 b([)p Fx(M)r Fu(])g(])11
b Fz(is)i Fx(e)o(xactly)243 729 y Fz(the)8 b(same)h(as)g(that)f(of)h
(the)f(constructi)o(v)o(e)f(part)h(of)h(the)f(proof)h(term)g
Fx(M)r Fz(.)g(In)f(other)g(words,)g(to)243 783 y(get)h(the)g(e)o
(xtracted)g(term,)h(we)g(simply)e(`cut)h(out')f(those)h(parts)g(of)g
(the)g(proof)g(term)g(which)243 837 y(pro)o(v)o(e)i(Harrop)g(formulas)g
(and)g(replace)h(the)f(constants)e(\(representing)i(axioms)f(in)h(our)
243 891 y(logic)h(system\))h(in)g(the)g(remaining)g(part)g(with)f
(corresponding)g(e)o(xtracted)h(terms.)h(F)o(or)243 945
y(e)o(xample)e(induction)e(axioms)i(are)g(replaced)g(by)g(recursors.)g
(Then)f(it)h(is)f(easy)h(to)g(sho)o(w)243 999 y Fu([)-5
b([)p Fx(M)r Fu(])g(])8 b Fi(mr)g Fx(C)q Fz(.)301 1053
y(T)l(o)14 b(de\002ne)g(the)f(e)o(xtracted)h(term)g(more)g(formally)m
(,)g(assume)g(we)g(ha)o(v)o(e)g(assigned)e(to)243 1115
y(an)o(y)f(assumption)f(v)o(ariable)g Fx(u)715 1098 y
Fl(C)752 1115 y Fz(a)h(ne)o(w)g(v)o(ariable)g Fx(x)1046
1092 y Fo(t)p Fj(\()n Fl(C)q Fj(\))1046 1122 y Fl(u)1110
1115 y Fz(.)580 1208 y Fu([)-5 b([)p Fx(u)622 1189 y
Fl(C)646 1208 y Fu(])g(])49 b Fz(:)p Fu(=)h Fx(x)834
1185 y Fo(t)p Fj(\()n Fl(C)q Fj(\))834 1215 y Fl(u)898
1208 y Fw(;)493 1274 y Fu([)-5 b([)p Fy(l)p Fx(x)559
1255 y Fo(r)583 1274 y Fx(M)621 1255 y Fl(C)646 1274
y Fu(])g(])49 b Fz(:)p Fu(=)h Fy(l)p Fx(x)5 b Fu([)-5
b([)p Fx(M)r Fu(])g(])p Fw(;)488 1341 y Fu([)g([)p Fy(l)p
Fx(u)557 1322 y Fl(A)583 1341 y Fx(M)621 1322 y Fl(C)646
1341 y Fu(])g(])49 b Fz(:)p Fu(=)h([)-5 b([)p Fx(M)r
Fu(])g(])p Fw(;)485 1417 y Fu([)g([)p Fy(l)p Fx(u)552
1398 y Fl(C)581 1417 y Fx(M)621 1398 y Fl(D)646 1417
y Fu(])g(])49 b Fz(:)p Fu(=)h Fy(l)p Fx(x)859 1393 y
Fo(t)p Fj(\()n Fl(C)q Fj(\))859 1423 y Fl(u)928 1417
y Fu([)-5 b([)p Fx(M)r Fu(])g(])p Fw(;)455 1483 y Fu([)g([)p
Fv(h)p Fx(M)532 1464 y Fl(C)556 1483 y Fw(;)5 b Fx(N)607
1464 y Fl(A)629 1483 y Fv(i)p Fu(])-5 b(])48 b Fz(:)p
Fu(=)i([)-5 b([)p Fx(M)r Fu(])g(])p Fw(;)455 1549 y Fu([)g([)p
Fv(h)p Fx(N)527 1531 y Fl(A)548 1549 y Fw(;)5 b Fx(M)604
1531 y Fl(C)629 1549 y Fv(i)p Fu(])-5 b(])48 b Fz(:)p
Fu(=)i([)-5 b([)p Fx(M)r Fu(])g(])p Fw(;)451 1616 y Fu([)g([)p
Fv(h)p Fx(M)528 1597 y Fl(C)552 1616 y Fw(;)5 b Fx(N)603
1597 y Fl(D)629 1616 y Fv(i)p Fu(])-5 b(])48 b Fz(:)p
Fu(=)i Fv(h)p Fu([)-5 b([)p Fx(M)r Fu(])g(])p Fw(;)5
b Fu([)-5 b([)p Fx(N)s Fu(])f(])p Fv(i)o Fw(;)471 1687
y Fu([)h([)p Fx(M)532 1668 y Fp(8)p Fl(x)566 1656 y Fh(r)581
1668 y Fl(C)611 1687 y Fx(t)627 1668 y Fo(r)646 1687
y Fu(])g(])49 b Fz(:)p Fu(=)h([)-5 b([)p Fx(M)r Fu(])g(])t
Fx(t)s Fw(;)449 1753 y Fu([)g([)p Fx(M)510 1735 y Fl(A)p
Fp(!)n Fl(C)591 1753 y Fx(N)624 1735 y Fl(A)646 1753
y Fu(])g(])49 b Fz(:)p Fu(=)h([)-5 b([)p Fx(M)r Fu(])g(])p
Fw(;)442 1820 y Fu([)g([)p Fx(M)503 1801 y Fl(D)p Fp(!)n
Fl(C)587 1820 y Fx(N)620 1801 y Fl(D)646 1820 y Fu(])g(])49
b Fz(:)p Fu(=)h([)-5 b([)p Fx(M)r Fu(])g(])5 b([)-5 b([)p
Fx(N)s Fu(])g(])o Fw(;)442 1886 y Fu([)g([)p Fy(p)488
1893 y Fq(1)506 1886 y Fu(\()p Fx(M)564 1867 y Fl(A)p
Fp(^)n Fl(C)629 1886 y Fu(\)])g(])48 b Fz(:)p Fu(=)i([)-5
b([)p Fx(M)r Fu(])g(])p Fw(;)442 1953 y Fu([)g([)p Fy(p)488
1960 y Fq(0)506 1953 y Fu(\()p Fx(M)562 1934 y Fl(C)q
Fp(^)p Fl(A)629 1953 y Fu(\)])g(])48 b Fz(:)p Fu(=)i([)-5
b([)p Fx(M)r Fu(])g(])p Fw(;)446 2019 y Fu([)g([)p Fy(p)492
2026 y Fl(i)502 2019 y Fu(\()p Fx(M)558 2000 y Fl(C)q
Fp(^)p Fl(D)629 2019 y Fu(\)])g(])48 b Fz(:)p Fu(=)i
Fy(p)839 2026 y Fl(i)850 2019 y Fu(\([)-5 b([)p Fx(M)r
Fu(])g(]\))p Fw(:)243 2104 y Fz(No)o(w)10 b(all)h(that)g(is)f(left)h
(is)g(to)g(\002nd)g(the)g(e)o(xtracted)g(terms)g(for)h(the)f
(constructi)o(v)o(e)e(axioms:)502 2189 y Fu([)-5 b([\()p
Fv(9)566 2170 y Fp(\003)p Fj(+)566 2202 y Fl(x)581 2192
y Fh(r)595 2202 y Fk(;)t Fl(A)630 2189 y Fu(\)])g(])49
b Fz(:)p Fu(=)h Fy(l)p Fx(x)5 b(x)p Fw(;)501 2269 y Fu([)-5
b([\()p Fv(9)565 2250 y Fp(\003)p Fj(+)565 2282 y Fl(x)580
2273 y Fh(r)594 2282 y Fk(;)r Fl(C)630 2269 y Fu(\)])g(])49
b Fz(:)p Fu(=)h Fy(l)p Fx(x)p Fw(;)5 b Fx(y)899 2250
y Fo(t)p Fj(\()n Fl(C)q Fj(\))962 2269 y Fw(:)g Fv(h)p
Fx(x)p Fw(;)g Fx(y)p Fv(i)p Fw(;)467 2349 y Fu([)-5 b([\()p
Fv(9)531 2330 y Fp(\003\000)531 2363 y Fl(x)546 2353
y Fh(r)561 2363 y Fk(;)t Fl(A)p Fk(;)r Fl(C)630 2349
y Fu(\)])g(])49 b Fz(:)p Fu(=)h Fy(l)p Fx(x)p Fw(;)5
b Fx(y)899 2330 y Fo(r)p Fp(!)p Fo(t)p Fj(\()n Fl(C)q
Fj(\))1014 2349 y Fw(:)g Fx(y)g(x)p Fw(;)464 2429 y Fu([)-5
b([\()p Fv(9)528 2410 y Fp(\003\000)528 2443 y Fl(x)543
2433 y Fh(r)557 2443 y Fk(;)t Fl(D)p Fk(;)r Fl(C)630
2429 y Fu(\)])g(])49 b Fz(:)p Fu(=)h Fy(l)p Fx(y)861
2410 y Fo(r)p Fp(\002)p Fo(t)p Fj(\()p Fl(D)p Fj(\))971
2429 y Fw(;)5 b Fx(z)1007 2410 y Fo(r)p Fp(!)p Fo(t)p
Fj(\()p Fl(D)p Fj(\))p Fp(!)p Fo(t)p Fj(\()n Fl(C)q Fj(\))1219
2429 y Fw(:)g Fx(z)g Fu(\()p Fy(p)1303 2436 y Fq(0)1321
2429 y Fx(y)p Fu(\))g(\()p Fy(p)1407 2436 y Fq(1)1425
2429 y Fx(y)p Fu(\))p Fw(;)442 2500 y Fu([)-5 b([)p Fn(Ind)522
2512 y Fp(8)r Fl(p)560 2502 y Ff(b)q(o)q(ole)623 2512
y Fl(C)648 2500 y Fu(])g(])49 b Fz(:)p Fu(=)h Fn(R)845
2510 y Fm(b)q(o)q(ole)p Fk(;)p Fo(t)p Fj(\()n Fl(C)q
Fj(\))997 2500 y Fw(;)468 2566 y Fu([)-5 b([)p Fn(Ind)548
2575 y Fp(8)p Fl(n)584 2566 y Ff(nat)623 2575 y Fl(C)648
2566 y Fu(])g(])49 b Fz(:)p Fu(=)h Fn(R)845 2576 y Fm(nat)p
Fk(;)p Fo(t)p Fj(\()n Fl(C)q Fj(\))966 2566 y Fw(:)891
3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.17)p
eop
%%Page: 18 18
18 17 bop 243 277 a Fz(18)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(5.2.)32 b Fx(Simultaneous)8
b(fr)n(ee)j(algebr)o(as)243 501 y Fz(Using)i(SF)m(As,)i(we)f(can)h(add)
f(ne)o(w)g(ground)g(types)f(de\002ned)i(by)f(simultaneous)e(induc-)243
555 y(tion.)h(F)o(ormally)m(,)i(an)g(SF)m(A)g(is)f(de\002ned)g(from)h
(a)g(list)e(of)h(ne)o(w)h(types)e Fy(i)1349 562 y Fq(1)1368
555 y Fw(;)5 b(:)g(:)g(:)s(;)g Fy(i)1471 562 y Fl(n)1504
555 y Fz(and)15 b(for)243 609 y(each)e Fy(i)354 616 y
Fl(i)378 609 y Fz(a)h(list)d(of)i(constructors)e Fx(c)786
616 y Fl(i)t Fq(1)818 609 y Fw(;)5 b(:)g(:)g(:)t(;)g
Fx(c)927 616 y Fl(i)t(n)957 621 y Fg(i)980 609 y Fz(together)12
b(with)g(their)g(types.)h(Each)g(con-)243 663 y(structor)8
b Fx(c)411 670 y Fl(i)h(j)451 663 y Fz(has)h(a)f(type)g
Fy(r)664 670 y Fl(i)g(j)c Fq(1)723 663 y Fv(!)k Fw(:)c(:)g(:)j
Fv(!)h Fy(r)913 670 y Fl(i)g(j)c(n)962 675 y Fg(i)t(j)992
663 y Fv(!)k Fy(i)1061 670 y Fl(i)1082 663 y Fz(with)f(each)i
Fy(r)1290 671 y Fl(k)1317 663 y Fz(being)f(constructed)243
717 y(using)g Fv(!)h Fz(only)f(and)h(with)f(the)h Fy(i)746
725 y Fl(k)774 717 y Fz(occurring)f(only)g(strictly)g(positi)o(v)o(e)f
(in)i(them.)g(The)g(ob-)243 771 y(jects)e(of)i(the)e(types)h
Fy(i)568 778 y Fq(1)586 771 y Fw(;)c(:)g(:)g(:)t(;)g
Fy(i)690 778 y Fl(n)717 771 y Fz(are)10 b(freely)f(generated)g(from)h
(these)f(constructors,)e(which)243 825 y(is)i(e)o(xpressed)g(by)g(the)g
(induction)e(schemes)j(that)f(are)h(automatically)e(added)h(to)g(the)g
(sys-)243 879 y(tem)i(together)g(with)f(these)h(types.)f(Here)i(are)g
(some)f(e)o(xamples:)256 954 y Fv(\000)43 b Fz(The)11
b(type)g Fn(seq)i Fz(of)f(lists)e(of)i(natural)f(numbers)g(is)g
(generated)h(from)g(the)f(construc-)334 1008 y(tors)f
Fy(e)p Fz(:)5 b Fn(seq)12 b Fz(and)600 988 y Fk(_)636
1008 y Fz(:)5 b Fn(nat)10 b Fv(!)h Fn(seq)g Fv(!)f Fn(seq)j
Fz(and)e(is)g(introduced)e(by)334 1084 y Fe(\(introduce-a)o(lge)o(bras)
356 1138 y('\(\(seq)21 b(\(\(empty\))538 1192 y(\(add)h(\(n)g(nat\))f
(\(s)i(seq\)\)\)\)\)\))334 1267 y Fz(The)11 b(induction)e(axiom)i(for)g
(a)h(formula)f Fx(A)p Fu([)p Fx(s)1034 1251 y Fm(seq)1083
1267 y Fu(])f Fz(reads)624 1363 y Fx(A)p Fu([)p Fy(e)p
Fu(])f Fv(!)h(8)p Fx(n)p Fw(;)5 b Fx(s)g Fu(\()p Fx(A)p
Fu([)p Fx(s)p Fu(])j Fv(!)i Fx(A)p Fu([)p Fx(n)1068 1343
y Fk(_)1103 1363 y Fx(s)p Fu(]\))f Fv(!)h(8)p Fx(s)5
b(A)p Fu([)p Fx(s)p Fu(])p Fw(:)256 1460 y Fv(\000)43
b Fz(T)l(o)10 b(de\002ne)h(the)g(type)f Fn(tree)h Fz(of)f(\002nitely)g
(branching)g(trees,)h(we)f(ha)o(v)o(e)h(to)g(simultane-)334
1514 y(ously)g(de\002ne)i(the)g(type)f Fn(treelist)q
Fz(.)i(The)f(constructors)e(are)j Fv(f\001g)p Fz(:)5
b Fn(treelist)10 b Fv(!)i Fn(tree)h Fz(,)334 1568 y Fy(e)p
Fz(:)5 b Fn(treelist)12 b Fz(and)588 1547 y Fk(_)623
1568 y Fz(:)5 b Fn(tree)10 b Fv(!)h Fn(treelist)g Fv(!)f
Fn(treelist)q Fz(.)i(It)f(is)g(introduced)e(by)334 1643
y Fe(\(introduce-a)o(lge)o(bras)356 1697 y('\(\(treelist)20
b(\(\(empty\))652 1751 y(\(add)h(\(t)h(tree\))g(\(l)g(treelist\)\)\)\))
402 1805 y(\(tree)f(\(\(tr)h(\(l)g(treelist\)\)\)\)\))o(\))334
1881 y Fz(and)11 b(the)g(induction)e(principle)h(for)h(formulas)g
Fx(A)p Fu([)o Fx(t)1127 1864 y Fm(tree)1184 1881 y Fu(])g
Fz(and)g Fx(B)p Fu([)p Fx(l)1341 1864 y Fm(treelist)1442
1881 y Fu(])g Fz(is)443 1984 y Fv(8)p Fx(l)c Fu(\()p
Fx(B)p Fu([)p Fx(l)r Fu(])i Fv(!)i Fx(A)p Fu([)p Fv(f)p
Fx(l)r Fv(g)p Fu(]\))d Fv(!)i Fx(B)p Fu([)p Fy(e)p Fu(])f
Fv(!)i(8)o Fx(t)s Fw(;)5 b Fx(l)i Fu(\()p Fx(A)p Fu([)o
Fx(t)s Fu(])h Fv(!)i Fx(B)p Fu([)p Fx(l)r Fu(])f Fv(!)i
Fx(B)p Fu([)o Fx(t)1393 1963 y Fk(_)1427 1984 y Fx(l)r
Fu(]\))e Fv(!)489 2048 y(8)o Fx(t)f(A)p Fu([)o Fx(t)s
Fu(])e Fv(^)g(8)p Fx(l)h(B)p Fu([)p Fx(l)r Fu(])p Fw(:)256
2146 y Fv(\000)43 b Fz(Finally)9 b(the)i(type)f Fn(inftree)h
Fz(of)g(trees)g(branching)e(o)o(v)o(er)i(the)g(natural)f(numbers)g
(uses)334 2200 y(the)h(constructors)e Fy(e)p Fz(:)c Fn(inftree)12
b Fz(and)f(lim)o(:)5 b Fu(\()p Fn(nat)11 b Fv(!)f Fn(inftree)q
Fu(\))f Fv(!)i Fn(inftree)q Fz(.)334 2275 y Fe(\(introduce-a)o(lge)o
(bras)356 2329 y('\(\(inftree)20 b(\(\(empty\))629 2383
y(\(lim)i(\(f)g(\(c-arrow)e('nat)i('inftree\)\)\)\))o(\)\)\))334
2459 y Fz(The)11 b(induction)e(axiom)i(for)g Fx(A)p Fu([)o
Fx(t)844 2442 y Fm(inftree)939 2459 y Fu(])g Fz(is)499
2555 y Fx(A)p Fu([)p Fy(e)p Fu(])e Fv(!)i(8)c Fx(f)689
2536 y Fm(nat)p Fp(!)p Fm(inftree)871 2555 y Fu(\()p
Fv(8)p Fx(n)e(A)p Fu([)i Fx(f)j(n)p Fu(])f Fv(!)i Fx(A)p
Fu([)p Fz(lim)16 b Fx(f)6 b Fu(]\))k Fv(!)g(8)o Fx(t)e(A)p
Fu([)o Fx(t)s Fu(])p Fw(:)891 3108 y Ft(Minlog7.tex;)17
b(28/04/1998;)h(12:50;)i(p.18)p eop
%%Page: 19 19
19 18 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(19)243 404 y(Functionals)9
b(de\002ned)h(by)h(structural)e(recursion)h(o)o(v)o(er)h(an)g(inducti)o
(v)o(e)e(type)h(are)h(usually)243 457 y(gi)o(v)o(en)i(as)g(a)h(set)f
(of)h(equations,)e(one)i(equation)e(for)i(each)g(constructor)n(.)e(F)o
(or)i(e)o(xample,)243 511 y(the)d(length)f(of)h(an)g(element)g(of)h
(the)f(type)f Fn(seq)j Fz(would)c(be)j(de\002ned:)744
602 y Fn(len)q Fu(\()p Fy(e)p Fu(\))49 b Fz(:)p Fu(=)g
Fz(0)p Fw(;)688 667 y Fn(len)q Fu(\()p Fx(n)784 647 y
Fk(_)818 667 y Fx(s)p Fu(\))h Fz(:)p Fu(=)f Fz(1)6 b
Fu(+)g Fn(len)r Fu(\()p Fx(s)p Fu(\))p Fw(:)243 753 y
Fz(W)l(e)14 b(could)g(enter)g(a)g(term)g(that)g(does)f(e)o(xactly)h
(the)g(computation)e(gi)o(v)o(en)i(abo)o(v)o(e)g(using)243
807 y(the)d(appropriate)f(recursor)n(.)h(The)g(term)h(would)d(look)i
(like)f(this:)243 889 y Fe(\(\(\(alg-rec-a)o(t)20 b('seq)h('\(seq\))g
('\(nat\)\))g(0\))243 943 y(\(lambda)g(\(n^\))g(\(lambda)g(\(s^\))g
(\(lambda)g(\(m^\))243 996 y(\(\(plus-nat)f(m^\))i(1\)\)\)\)\))243
1078 y Fz(This)8 b(certainly)h(is)g(not)g(a)h(con)n(v)o(enient)f(way)g
(of)h(entering)f(the)g(equations)f(abo)o(v)o(e.)i(There-)243
1132 y(fore,)g(the)e(SF)m(A)h(e)o(xtension)f(also)h(pro)o(vides)f(a)h
(simple)f(interface)h(for)g(entering)f(recursion)243
1186 y(equations.)i(The)h(command)243 1267 y Fe(\(def-rec)20
b('len)i(\(c-arrow)e('seq)i('nat\))f(0\))243 1349 y Fz(tells)11
b(M)r FA(I)r(N)r(L)r(O)r(G)k Fz(that)c(we)g(want)f(to)h(de\002ne)h(a)f
(constant)f Fe(len)h Fz(of)g(type)f Fn(seq)i Fv(!)e Fn(nat)q
Fz(.)243 1430 y Fe(;)22 b(Please)f(feed)h(in)g(\(using)f(define-vars\))
e(new)j(variables)243 1484 y(;)g(for)g(the)g(following)e(types:)243
1538 y(;)i(nat)243 1619 y Fz(The)11 b(interface)h(asks)f(for)h(one)g
(or)f(more)i(v)o(ariable)e(names)h(that)f(will)g(be)h(used)f(to)g
(repre-)243 1673 y(sent)f(step)h(v)o(alues)f(in)h(the)g(recursion)f
(equations.)243 1755 y Fe(\(define-vars)19 b('ll\))243
1809 y(;)j(len)g(empty)f(=?)i(C[])243 1890 y Fz(No)o(w)10
b(we)i(are)g(asked)e(to)h(enter)g(the)g(right-hand)f(side)g(of)h(the)g
(\002rst)g(equation.)243 1972 y Fe(\(define-rhs)19 b(\(parse-term)h
("0"\)\))243 2026 y(;)i(len\(add)f(n^)h(s^\))g(=?)g(C[n^,s^,ll^])243
2080 y(;)g(where)g(ll^)f(=)i(len)f(s^)243 2161 y Fz(Finally)m(,)11
b(we)i(ha)o(v)o(e)f(to)g(gi)o(v)o(e)g(the)g(right-hand)f(side)h(of)g
(the)g(second)f(equation.)h(Here)h(we)243 2215 y(can)d(use)g(the)f
(free)i(v)o(ariables)k(\210)-21 b Fx(n)p Fz(,)6 b(\210)-21
b Fx(s)10 b Fz(\(for)g(the)g(ar)o(guments)f(of)h(the)g(constructor\))f
(and)1537 2204 y(\210)1529 2215 y Fx(l)r(l)j Fz(\(for)243
2269 y(the)f(step)f(v)o(alue\).)243 2350 y Fe(\(define-rhs)19
b(\(parse-term)h("ll^)i(+)g(1"\)\))243 2404 y(;)g(OK,)g(COMPLETED;)e
(You)i(have)f(added)h(the)g(following)243 2458 y(;)g(recursion)e
(equations:)243 2512 y(;)i(len)g(empty)f(=)i(0)243 2566
y(;)f(len\(add)f(n^)h(s^\))g(=)g(\(len)g(s^\)+1)891 3108
y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.19)p
eop
%%Page: 20 20
20 19 bop 243 277 a Fz(20)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(From)g(no)o(w)e(on,)i(the)f
(constant)f Fe(len)g Fz(will)h(be)g(used)g(in)g(all)g(in-)g(and)g
(outputs)e(to)i(represent)243 457 y(the)h(rather)g(lengthy)f(term)h(gi)
o(v)o(en)g(abo)o(v)o(e.)243 570 y(5.3.)32 b Fx(The)11
b(quic)o(ksort)f(e)o(xample)243 670 y Fz(W)l(e)i(will)f(no)o(w)f(use)i
Fn(seq)h Fz(to)e(get)g(the)h(quicksort)e(algorithm)g(from)i(a)g(proof)g
(of)f(its)g(speci-)243 724 y(\002cation.)f(T)l(o)h(this)e(end,)i(we)g
(introduce)e(some)i(more)g(recursi)o(v)o(ely)f(de\002ned)h(functionals)
243 777 y(that)f(we)i(will)e(need:)256 855 y Fv(\000)43
b Fx(s)352 862 y Fq(1)376 855 y Fv(\003)6 b Fx(s)423
862 y Fq(2)453 855 y Fz(concatenates)11 b(the)g(two)f(lists)f
Fx(s)945 862 y Fq(1)975 855 y Fz(and)i Fx(s)1070 862
y Fq(2)1088 855 y Fz(.)256 910 y Fv(\000)43 b Fz(#)357
917 y Fl(m)382 910 y Fu(\()p Fx(s)p Fu(\))11 b Fz(counts)f(the)h
(occurrences)g(of)g Fx(m)h Fz(in)e Fx(s)p Fz(.)256 966
y Fv(\000)43 b Fx(s)9 b Fv(\025)i Fx(m)g Fz(checks)g(whether)g
Fx(m)g Fz(is)g(a)g(lo)o(wer)g(bound)f(for)h(the)g(elements)g(in)g
Fx(s)p Fz(:)504 1066 y Fy(e)f Fv(\025)g Fx(m)50 b Fz(:)p
Fu(=)g Fn(true)p Fw(;)413 1130 y Fu(\()p Fx(n)454 1110
y Fk(_)488 1130 y Fx(s)p Fu(\))10 b Fv(\025)g Fx(m)50
b Fz(:)p Fu(=)g Fi(if)45 b Fx(m)10 b Fv(\024)g Fx(n)45
b Fi(then)i Fx(s)10 b Fv(\025)g Fx(m)45 b Fi(else)g Fn(false)h
Fi(fi)p Fw(:)256 1230 y Fv(\000)d Fz(Like)o(wise,)9 b
Fx(s)h Fw(<)h Fx(m)g Fz(checks)g(whether)g Fx(m)g Fz(is)g(a)g(proper)g
(upper)g(bound.)256 1286 y Fv(\000)43 b Fx(s)352 1293
y Fp(\025)p Fl(m)415 1286 y Fz(computes)10 b(the)h(sublist)e(of)i
Fx(s)g Fz(of)h(elements)f Fv(\025)f Fx(m)p Fz(:)501 1391
y Fy(e)521 1398 y Fp(\025)p Fl(m)623 1391 y Fz(:)p Fu(=)49
b Fy(e)p Fw(;)410 1456 y Fu(\()p Fx(n)451 1435 y Fk(_)486
1456 y Fx(s)o Fu(\))521 1469 y Fp(\025)p Fl(m)623 1456
y Fz(:)p Fu(=)g Fi(if)d Fx(m)10 b Fv(\024)g Fx(n)45 b
Fi(then)h Fx(n)1104 1435 y Fk(_)1139 1456 y Fu(\()p Fx(s)1175
1463 y Fp(\025)p Fl(m)1227 1456 y Fu(\))f Fi(else)g Fx(s)1424
1463 y Fp(\025)p Fl(m)1521 1456 y Fi(fi)p Fw(:)256 1556
y Fv(\000)e Fx(s)352 1563 y Fk(<)p Fl(m)415 1556 y Fz(is)10
b(de\002ned)h(correspondingly)m(.)256 1611 y Fv(\000)43
b Fn(so)o(rted)p Fu(\()p Fx(s)p Fu(\))11 b Fz(checks)g(whether)f(the)h
(list)f Fx(s)h Fz(is)g(sorted:)432 1716 y Fn(so)o(rted)q
Fu(\()p Fy(e)p Fu(\))49 b Fz(:)p Fu(=)h Fn(true)p Fw(;)377
1781 y Fn(so)o(rted)p Fu(\()p Fx(n)532 1760 y Fk(_)567
1781 y Fx(s)o Fu(\))g Fz(:)p Fu(=)g Fi(if)45 b Fx(s)10
b Fv(\025)g Fx(n)45 b Fi(then)i Fn(so)o(rted)p Fu(\()p
Fx(s)p Fu(\))d Fi(else)i Fn(false)f Fi(fi)p Fw(:)243
1881 y Fz(Using)8 b(the)i(structural)e(induction)g(scheme,)i(we)g(can)g
(easily)f(pro)o(v)o(e)h(the)f(follo)o(wing)f(fun-)243
1935 y(damental)j(properties)f(of)h(these)g(functionals:)265
2013 y(1.)19 b Fn(len)p Fu(\()p Fx(s)p Fu(\))9 b Fv(\024)i
Fz(0)f Fv(!)g Fx(s)g Fu(=)g Fy(e)265 2068 y Fz(2.)19
b Fn(len)p Fu(\()p Fx(s)408 2075 y Fk(<)p Fl(n)452 2068
y Fu(\))10 b Fv(\024)g Fn(len)q Fu(\()p Fx(s)p Fu(\))265
2123 y Fz(3.)19 b Fn(len)p Fu(\()p Fx(s)408 2130 y Fp(\025)p
Fl(n)452 2123 y Fu(\))10 b Fv(\024)g Fn(len)q Fu(\()p
Fx(s)p Fu(\))265 2179 y Fz(4.)19 b Fu(\()p Fv(8)p Fx(m)5
b Fz(#)422 2186 y Fl(m)447 2179 y Fu(\()p Fx(s)483 2186
y Fq(1)501 2179 y Fu(\))10 b(=)g Fz(#)597 2186 y Fl(m)623
2179 y Fu(\()p Fx(s)659 2186 y Fq(2)677 2179 y Fu(\)\))g
Fv(!)g Fx(s)796 2186 y Fq(1)825 2179 y Fv(\025)g Fx(n)g
Fv(!)g Fx(s)976 2186 y Fq(2)1005 2179 y Fv(\025)g Fx(n)265
2234 y Fz(5.)19 b Fu(\()p Fv(8)p Fx(m)5 b Fz(#)422 2241
y Fl(m)447 2234 y Fu(\()p Fx(s)483 2241 y Fq(1)501 2234
y Fu(\))10 b(=)g Fz(#)597 2241 y Fl(m)623 2234 y Fu(\()p
Fx(s)659 2241 y Fq(2)677 2234 y Fu(\)\))g Fv(!)g Fx(s)796
2241 y Fq(1)825 2234 y Fw(<)g Fx(n)g Fv(!)g Fx(s)976
2241 y Fq(2)1005 2234 y Fw(<)g Fx(n)265 2289 y Fz(6.)19
b Fx(s)336 2296 y Fp(\025)p Fl(n)390 2289 y Fv(\025)10
b Fx(n)265 2345 y Fz(7.)19 b Fx(s)336 2352 y Fk(<)p Fl(n)390
2345 y Fw(<)10 b Fx(n)265 2400 y Fz(8.)19 b Fn(so)o(rted)p
Fu(\()p Fx(s)468 2407 y Fq(1)486 2400 y Fu(\))10 b Fv(!)h
Fx(s)588 2407 y Fq(1)616 2400 y Fv(\025)f Fx(n)g Fv(!)h
Fn(so)o(rted)p Fu(\()p Fx(s)900 2407 y Fq(2)918 2400
y Fu(\))f Fv(!)h Fx(s)1020 2407 y Fq(2)1048 2400 y Fw(<)g
Fx(n)e Fv(!)i Fn(so)o(rted)p Fu(\()p Fx(s)1332 2407 y
Fq(2)1357 2400 y Fv(\003)6 b Fx(s)1404 2407 y Fq(1)1422
2400 y Fu(\))265 2455 y Fz(9.)19 b Fx(s)10 b Fv(\025)g
Fx(n)g Fv(!)g Fn(so)o(rted)q Fu(\()p Fx(s)p Fu(\))f Fv(!)h
Fn(so)o(rted)q Fu(\()p Fx(n)868 2435 y Fk(_)903 2455
y Fx(s)o Fu(\))243 2511 y Fz(10.)18 b(#)341 2518 y Fl(n)359
2511 y Fu(\()p Fx(s)p Fu(\))9 b(=)i Fz(#)491 2518 y Fl(n)509
2511 y Fu(\()p Fx(s)545 2518 y Fk(<)p Fl(m)596 2511 y
Fu(\))6 b(+)g Fz(#)684 2518 y Fl(n)703 2511 y Fu(\()p
Fx(s)739 2518 y Fp(\025)p Fl(m)790 2511 y Fu(\))243 2566
y Fz(11.)18 b(#)341 2573 y Fl(n)359 2566 y Fu(\()p Fx(s)395
2573 y Fq(1)419 2566 y Fv(\003)6 b Fx(s)466 2573 y Fq(2)485
2566 y Fu(\))k(=)g Fz(#)581 2573 y Fl(n)599 2566 y Fu(\()p
Fx(s)635 2573 y Fq(1)653 2566 y Fu(\))c(+)g Fz(#)741
2573 y Fl(n)760 2566 y Fu(\()p Fx(s)796 2573 y Fq(2)814
2566 y Fu(\))891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i
(p.20)p eop
%%Page: 21 21
21 20 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(21)301 404 y(No)o(w)12
b(we)h(formulate)g(the)g(speci\002cation)f(of)h(the)f(desired)h
(algorithm:)e(we)i(want)f(to)243 457 y(sho)o(w)d(that)h(e)o(v)o(ery)g
(list)f(of)h(natural)g(numbers)g(can)g(be)h(sorted,)f(i.e.)h(for)f(e)o
(v)o(ery)h(list)e Fx(s)h Fz(there)243 511 y(is)h(a)h(list)e
Fx(t)k Fz(such)d(that)f Fx(t)15 b Fz(is)c(sorted)g(and)h(e)o(v)o(ery)g
(number)f Fx(n)h Fz(occurs)g(in)e Fx(t)k Fz(as)e(often)f(as)h(in)f
Fx(s)p Fz(.)243 565 y(F)o(ormally:)621 619 y Fv(8)p Fx(s)5
b Fv(9)694 601 y Fp(\003)712 619 y Fx(t)s Fw(:)g Fn(so)o(rted)p
Fu(\()o Fx(t)s Fu(\))h Fv(^)g(8)p Fx(n)f Fz(#)1029 626
y Fl(n)1047 619 y Fu(\()p Fx(s)p Fu(\))k(=)h Fz(#)1178
626 y Fl(n)1197 619 y Fu(\()o Fx(t)s Fu(\))o Fw(:)243
697 y Fz(The)j(idea)g(is)g(to)f(take,)h(gi)o(v)o(en)g(a)g(list)f
Fx(s)f Fu(=)h Fx(n)922 680 y Fp(0)933 676 y Fk(_)968
697 y Fx(s)986 680 y Fp(0)997 697 y Fz(,)i(the)f(\002rst)g(element)g
Fx(n)1355 680 y Fp(0)1379 697 y Fz(and)g(split)f Fx(s)1568
680 y Fp(0)1592 697 y Fz(up)243 751 y(into)g Fx(s)345
734 y Fp(0)355 759 y Fk(<)p Fl(n)398 750 y Fc(0)422 751
y Fz(and)h Fx(s)519 734 y Fp(0)530 759 y(\025)p Fl(n)573
750 y Fc(0)583 751 y Fz(,)h(sort)e(these)g(shorter)h(lists)e(and)i(put)
f(the)h(results)e(together)i(in)f(the)243 805 y(right)e(order)n(.)h(In)
g(other)g(words,)f(we)i(pro)o(v)o(e)f(the)g(goal)f(by)h(induction)e(o)o
(v)o(er)j(the)f Fx(length)f Fz(of)243 859 y(the)h(gi)o(v)o(en)f(list,)h
(so)f(we)i(\002rst)f(pro)o(v)o(e)465 952 y Fv(8)p Fx(m)p
Fw(;)5 b Fx(s)p Fw(:)g Fn(len)p Fu(\()p Fx(s)p Fu(\))k
Fv(\024)h Fx(m)g Fv(!)h(9)863 934 y Fp(\003)881 952 y
Fx(t)s Fw(:)5 b Fn(so)o(rted)o Fu(\()o Fx(t)s Fu(\))h
Fv(^)g(8)p Fx(n)f Fz(#)1197 959 y Fl(n)1215 952 y Fu(\()p
Fx(s)p Fu(\))10 b(=)g Fz(#)1347 959 y Fl(n)1365 952 y
Fu(\()o Fx(t)s Fu(\))243 1046 y Fz(by)e(induction)e(on)j
Fx(m)f Fz(and)g(then)g(get)h(the)f(original)f(goal)h(by)g
(instantiating)e Fx(m)i Fz(with)g Fn(len)p Fu(\()p Fx(s)p
Fu(\))p Fz(.)243 1100 y(The)i(proof)g(is)h(simple;)e(we)i(sho)o(w)f(it)
g(an)o(yway)g(to)g(demonstrate)g(that)g(this)f(e)o(xample)i(can)243
1154 y(be)g(carried)h(out)e(in)i(M)r FA(I)r(N)r(L)r(O)r(G)j
Fz(without)9 b(running)h(into)g(technical)h(dif)o(\002culties.)243
1208 y Fx(Base)e(m)f Fu(=)h Fz(0.)g(Let)h Fx(s)f Fz(with)f
Fn(len)q Fu(\()p Fx(s)p Fu(\))f Fv(\024)i Fz(0)g(be)h(gi)o(v)o(en.)f
(Then)g Fx(s)f Fu(=)h Fy(e)h Fz(by)f(lemma)h(1.)g(Let)e
Fx(t)j Fz(:)p Fu(=)d Fy(e)p Fz(,)243 1262 y(then)i Fn(so)o(rted)q
Fu(\()o Fx(t)s Fu(\))p Fv(&)543 1245 y Fp(\003)556 1262
y Fv(.>)p Fz(,)i(we)f(ha)o(v)o(e)g(to)f(sho)o(w)g Fv(8)p
Fx(m)5 b Fz(#)1056 1269 y Fl(m)1082 1262 y Fu(\()p Fx(s)p
Fu(\))k(=)h Fz(#)1213 1269 y Fl(m)1239 1262 y Fu(\()o
Fx(t)s Fu(\))o Fz(.)h(This)f(follo)o(ws)f(from)243 1316
y Fx(s)h Fu(=)g Fy(e)g Fu(=)f Fx(t)s Fz(.)243 1369 y
Fx(Step)h(m)g Fv(!)h Fx(m)6 b Fu(+)g Fz(1.)12 b(Let)f(s)g(with)f
Fn(len)q Fu(\()p Fx(s)p Fu(\))f Fv(\024)h Fx(m)c Fu(+)g
Fz(1)12 b(be)f(gi)o(v)o(en.)243 1423 y Fx(Note)p Fz(:)h(we)i(make)f(a)g
(case)h(distinction)c(here)j(\()p Fx(s)e Fu(=)h Fy(e)h
Fz(or)g Fx(s)e Fu(=)g Fx(n)1226 1407 y Fp(0)1237 1403
y Fk(_)1272 1423 y Fx(s)1290 1407 y Fp(0)1301 1423 y
Fz(\).)j(F)o(ormally)m(,)f(this)f(is)243 1477 y(achie)o(v)o(ed)j(by)g
(using)f(the)h(structural)f(induction)f(scheme)j(for)g
Fn(seq)q Fz(,)g(without)d(making)243 1531 y(use)e(of)g(the)g(induction)
e(hypothesis)g(in)h(the)h(step)g(case.)243 1585 y Fx(Case)g(s)f
Fu(=)g Fy(e)p Fz(.)i(See)g Fx(m)e Fu(=)g Fz(0.)243 1639
y Fx(Case)16 b(s)c Fu(=)h Fx(n)451 1623 y Fp(0)462 1619
y Fk(_)497 1639 y Fx(s)515 1623 y Fp(0)526 1639 y Fz(.)j(No)o(w)g
Fn(len)p Fu(\()p Fx(s)747 1623 y Fp(0)758 1639 y Fu(\))c
Fv(\024)h Fx(m)p Fv(&)914 1623 y Fp(\003)928 1639 y Fv(.)p
Fn(len)q Fu(\()p Fx(s)p Fu(\))e Fv(\024)i Fx(m)8 b Fu(+)h
Fz(1,)16 b(which)f(we)h(ha)o(v)o(e)g(just)243 1693 y(assumed.)c(Using)f
(lemma)h(2)g(and)g(3)g(we)g(conclude)f Fn(len)q Fu(\()p
Fx(s)1159 1677 y Fp(0)1169 1702 y Fk(<)p Fl(n)1212 1692
y Fc(0)1223 1693 y Fu(\))f Fv(\024)h Fx(m)h Fz(and)g
Fn(len)p Fu(\()p Fx(s)1510 1677 y Fp(0)1521 1702 y(\025)p
Fl(n)1564 1692 y Fc(0)1574 1693 y Fu(\))e Fv(\024)243
1747 y Fx(m)p Fz(.)16 b(Using)e(the)i(induction)d(hypothesis)g(for)j
Fx(s)983 1731 y Fp(0)994 1756 y Fk(<)p Fl(n)1037 1746
y Fc(0)1063 1747 y Fz(and)g Fx(s)1163 1731 y Fp(0)1174
1756 y(\025)p Fl(n)1217 1746 y Fc(0)1243 1747 y Fz(we)g(get)e
Fx(t)1395 1754 y Fq(1)1429 1747 y Fz(and)h Fx(t)1523
1754 y Fq(2)1557 1747 y Fz(with)243 1801 y(\(1\))d Fn(so)o(rted)q
Fu(\()o Fx(t)453 1808 y Fq(1)471 1801 y Fu(\))p Fz(,)g(\(2\))h
Fv(8)p Fx(n)5 b Fz(#)654 1808 y Fl(n)672 1801 y Fu(\()p
Fx(s)708 1785 y Fp(0)719 1810 y Fk(<)p Fl(n)762 1800
y Fc(0)772 1801 y Fu(\))11 b(=)g Fz(#)870 1808 y Fl(n)888
1801 y Fu(\()o Fx(t)918 1808 y Fq(1)936 1801 y Fu(\))p
Fz(,)i(\(3\))f Fn(so)o(rted)q Fu(\()o Fx(t)1188 1808
y Fq(2)1205 1801 y Fu(\))h Fz(and)f(\(4\))g Fv(8)p Fx(n)5
b Fz(#)1455 1808 y Fl(n)1474 1801 y Fu(\()p Fx(s)1510
1785 y Fp(0)1520 1810 y(\025)p Fl(n)1563 1800 y Fc(0)1574
1801 y Fu(\))10 b(=)243 1855 y Fz(#)266 1862 y Fl(n)284
1855 y Fu(\()o Fx(t)314 1862 y Fq(2)332 1855 y Fu(\))p
Fz(.)h(Let)f Fx(t)j Fz(:)p Fu(=)c Fx(t)539 1862 y Fq(1)564
1855 y Fv(\003)d Fu(\()p Fx(n)634 1839 y Fp(0)644 1835
y Fk(_)678 1855 y Fx(t)691 1862 y Fq(2)710 1855 y Fu(\))o
Fz(.)12 b(W)l(e)g(ha)o(v)o(e)f(to)g(sho)o(w)f Fn(so)o(rted)q
Fu(\()o Fx(t)s Fu(\))g Fz(and)h Fv(8)p Fx(n)5 b Fz(#)1398
1862 y Fl(n)1416 1855 y Fu(\()p Fx(s)p Fu(\))10 b(=)g
Fz(#)1548 1862 y Fl(n)1566 1855 y Fu(\()o Fx(t)s Fu(\))o
Fz(.)243 1909 y Fn(so)o(rted)p Fu(\()o Fx(t)s Fu(\))j
Fz(:)g(lemma)h(7)g(yields)e Fx(s)761 1893 y Fp(0)772
1918 y Fk(<)p Fl(n)815 1908 y Fc(0)837 1909 y Fw(<)f
Fx(n)906 1893 y Fp(0)931 1909 y Fz(and)i(hence,)h(using)e(lemma)j(5)e
(and)h(\(2\),)g(we)243 1963 y(get)e(\(5\))f Fx(t)388
1970 y Fq(1)417 1963 y Fw(<)g Fx(n)486 1947 y Fp(0)496
1963 y Fz(.)i(In)f(the)g(same)h(way)m(,)f(using)e(lemma)j(6)f(and)g(4)g
(instead)f(of)h(7)g(and)g(5,)h(we)243 2017 y(get)d Fx(t)322
2024 y Fq(2)351 2017 y Fv(\025)h Fx(n)420 2001 y Fp(0)443
2017 y Fz(and)g(conclude)g(\(6\))h Fx(n)784 2001 y Fp(0)795
1996 y Fk(_)830 2017 y Fx(t)843 2024 y Fq(2)871 2017
y Fv(\025)f Fx(n)940 2001 y Fp(0)963 2017 y Fz(using)f(normalization)h
(again,)h(as)f(well)h(as)243 2071 y(\(7\))g Fn(so)o(rted)p
Fu(\()p Fx(n)463 2055 y Fp(0)474 2050 y Fk(_)508 2071
y Fx(t)521 2078 y Fq(2)539 2071 y Fu(\))g Fz(by)g(lemma)h(9)e(and)h
(\(3\).)h(Finally)e(with)f(lemma)j(8,)8 b(\(7\),)g(\(6\),)g(\(1\))k
(and)243 2125 y(\(5\))f(we)g(get)g Fn(so)o(rted)q Fu(\()o
Fx(t)583 2132 y Fq(1)607 2125 y Fv(\003)6 b Fu(\()p Fx(n)677
2108 y Fp(0)688 2104 y Fk(_)722 2125 y Fx(t)735 2132
y Fq(2)753 2125 y Fu(\)\))p Fz(.)243 2179 y(T)l(o)11
b(sho)o(w)f Fv(8)p Fx(n)5 b Fz(#)483 2186 y Fl(n)502
2179 y Fu(\()p Fx(s)p Fu(\))k(=)h Fz(#)633 2186 y Fl(n)651
2179 y Fu(\()o Fx(t)s Fu(\))o Fz(,)i(let)f Fx(n)g Fz(be)g(gi)o(v)o(en.)
243 2247 y Fx(Case)g(n)f Fu(=)g Fx(n)446 2231 y Fp(0)469
2247 y Fz(:)h(#)516 2254 y Fl(n)534 2247 y Fu(\()p Fx(n)575
2231 y Fp(0)586 2227 y Fk(_)621 2247 y Fx(s)639 2231
y Fp(0)650 2247 y Fu(\))o Fv(&)712 2231 y Fp(\003)726
2247 y Fv(.)q Fz(#)795 2254 y Fl(n)813 2247 y Fu(\()p
Fx(s)849 2231 y Fp(0)860 2247 y Fu(\))6 b(+)g Fz(1)963
2222 y Fq(L.10)977 2247 y Fu(=)28 b Fz(#)1063 2254 y
Fl(n)1082 2247 y Fu(\()p Fx(s)1118 2231 y Fp(0)1128 2256
y Fk(<)p Fl(n)1171 2246 y Fc(0)1182 2247 y Fu(\))6 b(+)g
Fz(#)1270 2254 y Fl(n)1289 2247 y Fu(\()p Fx(s)1325 2231
y Fp(0)1335 2256 y(\025)p Fl(n)1378 2246 y Fc(0)1389
2247 y Fu(\))f(+)h Fz(1)258 2291 y Fq(\(2\),\(4\))283
2319 y Fu(=)41 b Fz(#)382 2326 y Fl(n)400 2319 y Fu(\()o
Fx(t)430 2326 y Fq(1)448 2319 y Fu(\))6 b(+)g Fz(#)536
2326 y Fl(n)555 2319 y Fu(\()o Fx(t)585 2326 y Fq(2)603
2319 y Fu(\))g(+)g Fz(1)p Fv(&)736 2302 y Fp(\003)750
2319 y Fv(.)q Fz(#)819 2326 y Fl(n)837 2319 y Fu(\()o
Fx(t)867 2326 y Fq(1)885 2319 y Fu(\))g(+)g Fz(#)973
2326 y Fl(n)992 2319 y Fu(\()p Fx(n)1033 2302 y Fp(0)1043
2298 y Fk(_)1078 2319 y Fx(t)1091 2326 y Fq(2)1109 2319
y Fu(\))1142 2293 y Fq(L.11)1155 2319 y Fu(=)29 b Fz(#)1242
2326 y Fl(n)1260 2319 y Fu(\()o Fx(t)1290 2326 y Fq(1)1314
2319 y Fv(\003)6 b Fx(n)1366 2302 y Fp(0)1377 2298 y
Fk(_)1411 2319 y Fx(t)1424 2326 y Fq(2)1443 2319 y Fu(\))o
Fw(:)243 2387 y Fx(Case)11 b(n)f Fv(6)p Fu(=)g Fx(n)446
2370 y Fp(0)469 2387 y Fz(:)h(#)516 2394 y Fl(n)534 2387
y Fu(\()p Fx(n)575 2370 y Fp(0)586 2366 y Fk(_)621 2387
y Fx(s)639 2370 y Fp(0)650 2387 y Fu(\))o Fv(&)712 2370
y Fp(\003)726 2387 y Fv(.)q Fz(#)795 2394 y Fl(n)813
2387 y Fu(\()p Fx(s)849 2370 y Fp(0)860 2387 y Fu(\))893
2361 y Fq(L.10)906 2387 y Fu(=)29 b Fz(#)993 2394 y Fl(n)1011
2387 y Fu(\()p Fx(s)1047 2370 y Fp(0)1058 2395 y Fk(<)p
Fl(n)1101 2386 y Fc(0)1111 2387 y Fu(\))6 b(+)g Fz(#)1199
2394 y Fl(n)1218 2387 y Fu(\()p Fx(s)1254 2370 y Fp(0)1264
2395 y(\025)p Fl(n)1307 2386 y Fc(0)1318 2387 y Fu(\))258
2431 y Fq(\(2\),\(4\))283 2458 y Fu(=)41 b Fz(#)382 2465
y Fl(n)400 2458 y Fu(\()o Fx(t)430 2465 y Fq(1)448 2458
y Fu(\))6 b(+)g Fz(#)536 2465 y Fl(n)555 2458 y Fu(\()o
Fx(t)585 2465 y Fq(2)603 2458 y Fu(\))o Fv(&)665 2442
y Fp(\003)680 2458 y Fv(.)p Fz(#)748 2465 y Fl(n)766
2458 y Fu(\()o Fx(t)796 2465 y Fq(1)814 2458 y Fu(\))g(+)g
Fz(#)902 2465 y Fl(n)921 2458 y Fu(\()p Fx(n)962 2442
y Fp(0)973 2438 y Fk(_)1007 2458 y Fx(t)1020 2465 y Fq(2)1038
2458 y Fu(\))1071 2433 y Fq(L.11)1084 2458 y Fu(=)29
b Fz(#)1171 2465 y Fl(n)1189 2458 y Fu(\()o Fx(t)1219
2465 y Fq(1)1244 2458 y Fv(\003)6 b Fx(n)1296 2442 y
Fp(0)1307 2438 y Fk(_)1341 2458 y Fx(t)1354 2465 y Fq(2)1372
2458 y Fu(\))p Fw(:)243 2512 y Fz(Here)12 b(is)f(the)h(program)g(e)o
(xtracted)g(from)g(this)f(proof)g Fx(M)r Fz(.)h(W)l(e)h(sho)o(w)d(an)i
(edited)f(v)o(ersion)243 2566 y(of)j(the)g(original)g(S)r
FA(C)r(H)r(E)r(M)r(E)k Fz(e)o(xpression)13 b(\(we)i(ha)o(v)o(e)g(split)
d(the)i(e)o(xpression)g(into)f(three)891 3108 y Ft(Minlog7.tex;)k
(28/04/1998;)h(12:50;)i(p.21)p eop
%%Page: 22 22
22 21 bop 243 277 a Fz(22)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(parts)f(and)h(renamed)h(the)f
(bound)f(v)o(ariables\):)281 504 y Fu([)-5 b([)p Fx(M)r
Fu(])g(])47 b(=)k Fy(l)p Fx(s)p Fw(:)5 b Fx(g)g Fn(len)o
Fu(\()p Fx(s)p Fu(\))p Fx(s)g Fw(;)94 b Fz(where)338
569 y Fx(g)49 b Fu(=)i Fn(R)525 576 y Fm(nat)p Fk(;)p
Fm(seq)p Fp(!)p Fm(seq)712 569 y Fu(\()p Fy(l)p Fx(s)5
b Fy(e)p Fu(\)\()p Fy(l)p Fx(n)g(h)p Fu(\))89 b Fz(and)338
634 y Fx(h)49 b Fu(=)i Fy(l)7 b Fx(f)547 617 y Fm(seq)o
Fp(!)p Fm(seq)677 634 y Fw(:)e Fn(R)724 641 y Fm(seq)o
Fk(;)p Fm(seq)835 634 y Fy(e)g Fu(\()p Fy(l)p Fx(n)g
Fy(l)p Fx(s)974 641 y Fq(1)997 634 y Fy(l)p Fx(s)1040
641 y Fq(2)1058 634 y Fw(:)g Fu(\()i Fx(f)j Fu(\()p Fx(s)1160
641 y Fq(1)1178 643 y Fk(<)p Fl(n)1223 634 y Fu(\)\))c
Fv(\003)g Fu(\()p Fx(n)1335 613 y Fk(_)1369 634 y Fu(\()h
Fx(f)k Fu(\()p Fx(s)1454 641 y Fq(1)1472 643 y Fp(\025)p
Fl(n)1516 634 y Fu(\)\)\))o(\))p Fw(:)243 733 y Fu(\()p
Fx(g)5 b(n)p Fu(\))p Fz(:)g Fn(seq)10 b Fv(!)h Fn(seq)i
Fz(is)f(a)g(quicksort)e(function)h(able)h(to)f(deal)h(with)f(lists)g
(of)h(length)f(up)g(to)243 787 y Fx(n)g Fz(and)g(is)g(de\002ned)g(by)g
(recursion)f(o)o(v)o(er)i Fx(n)p Fz(:)815 887 y Fx(g)5
b Fz(0)g Fx(s)49 b Fu(=)h Fy(e)709 952 y Fx(g)5 b Fu(\()p
Fx(n)h Fu(+)g Fz(1)p Fu(\))f Fx(s)49 b Fu(=)h Fx(h)5
b Fu(\()p Fx(g)g(n)p Fu(\))g Fx(s)p Fw(:)243 1051 y Fz(If)20
b Fx(f)e Fz(is)12 b(a)h(function)e(that)h(can)h(sort)f(lists)f(of)h
(length)g(up)g(to)g Fx(n)p Fz(,)g(then)g Fu(\()p Fx(h)g(f)6
b Fu(\))12 b Fz(is)g(a)h(function)243 1105 y(that)d(sorts)h(lists)e(of)
i(length)f(up)h(to)g Fx(n)6 b Fu(+)g Fz(1:)644 1205 y
Fx(h)12 b(f)f Fy(e)50 b Fu(=)g Fy(e)553 1270 y Fx(h)12
b(f)f Fu(\()p Fx(n)653 1250 y Fk(_)688 1270 y Fx(s)p
Fu(\))49 b(=)h(\()7 b Fx(f)k Fu(\()p Fx(s)943 1277 y
Fk(<)p Fl(n)987 1270 y Fu(\)\))5 b Fv(\003)h Fu(\()p
Fx(n)1098 1250 y Fk(_)1133 1270 y Fu(\()h Fx(f)k Fu(\()p
Fx(s)1218 1277 y Fp(\025)p Fl(n)1262 1270 y Fu(\)\))o(\))o
Fw(:)379 1473 y FC(6.)30 b Fz(A)r FA(D)q(V)m(A)r(N)r(C)r(E)r(D)17
b(F)r(E)r(A)n(T)r(U)r(R)r(E)r(S)s Fz(:)e Fx(A)q Fz(-)r
FA(T)r(R)r(A)r(N)r(S)r(L)r(A)n(T)s(I)r(O)s(N)h(A)r(N)r(D)f(P)r(R)q(U)r
(N)r(I)r(N)r(G)243 1581 y Fz(There)c(are)g(a)g(number)g(of)g(proofs)f
(of)g Fv(89)p Fz(\226statements)g(which)g(\227)i(although)d(v)o(ery)i
(short)243 1635 y(and)i(ele)o(gant)f(\227)i(do)e(not)h(immediately)f
(yield)g(a)h(program,)h(since)e(the)o(y)h(contain)f(non-)243
1689 y(constructi)o(v)o(e)e(ar)o(guments.)i(Ho)o(we)o(v)o(er)n(,)g(it)g
(is)f(well-kno)o(wn)f(that)h(such)g(classical)g(proofs)243
1743 y(under)k(certain)h(circumstances)f(can)h(be)g(translated)f(into)f
(constructi)o(v)o(e)h(proofs,)g(and)243 1797 y(hence)c(yield)g
(algorithms)f(via)h(program)g(e)o(xtraction)g(\(cf.)h(section)e(5\).)i
(There)g(is)f(a)g(sub-)243 1851 y(stantial)e(literature)h(on)g(that)h
(subject,)f(and)g(the)i(M)r FA(I)r(N)r(L)r(O)r(G)j Fz(system)10
b(supports)f(a)i(v)o(ariant,)243 1905 y(kno)o(wn)h(as)i(`)p
Fx(A)p Fz(-translation',)e(which)g(goes)h(back)h(to)f(work)g(of)g
(Friedman)h(\(1978\))f(and)243 1959 y(Lei)o(v)o(ant)c(\(1985\).)h(W)l
(e)h(will)f(e)o(xplain)g(this)f(translation)g(by)h(means)h(of)f(an)h(e)
o(xample)g(con-)243 2013 y(cerning)g(minimization)g(on)g(\002nite)h
(binary)f(trees.)h(W)l(e)h(will)e(also)g(use)h(this)f(e)o(xample)h(to)
243 2067 y(discuss)c(a)i(second)f(technique)g(for)h(program)f(de)o(v)o
(elopment:)g(the)g(`pruning')g(operation)243 2121 y(going)h(back)h(to)g
(Goad)f(\(1980\).)243 2229 y(6.1.)32 b Fx(Sear)n(c)o(h)11
b(thr)n(ough)e(binary)h(tr)n(ees)243 2326 y Fz(In)k(our)g(e)o(xample)h
(we)g(consider)f(\002nite)g(binary)f(trees)i(with)e(lea)o(v)o(es)i
(labelled)e(by)h(inte-)243 2380 y(gers:)791 2434 y Fn(leaf)s
Fu(\()p Fx(n)p Fu(\))9 b Fv(j)g(h)p Fx(s)987 2441 y Fq(1)1005
2434 y Fw(;)c Fx(s)1041 2441 y Fq(2)1059 2434 y Fv(i)p
Fw(:)243 2512 y Fz(W)l(e)15 b(let)g Fx(P)g Fz(be)g(a)g(decidable)g
(property)f(of)h(trees.)g(W)l(e)h(wish)e(to)h(pro)o(v)o(e)g(constructi)
o(v)o(ely)243 2566 y(that)c(for)i(e)o(v)o(ery)f(tree)g
Fx(t)j Fz(with)c(property)h Fx(P)p Fu([)o Fx(t)s Fu(])f
Fz(there)h(is)g(a)g(subtree)g Fx(s)g Fz(of)g Fx(t)j Fz(satisfying)10
b Fx(P)p Fu([)p Fx(s)p Fu(])891 3108 y Ft(Minlog7.tex;)17
b(28/04/1998;)h(12:50;)i(p.22)p eop
%%Page: 23 23
23 22 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(23)243 404 y(which)11
b(is)g(minimal,)h(i.e.)g(for)g(no)g(proper)f(subtree)h
Fx(s)1065 387 y Fp(0)1088 404 y Fz(of)f Fx(s)p Fz(,)h
Fx(P)p Fu([)p Fx(s)1237 387 y Fp(0)1248 404 y Fu(])f
Fz(holds.)g(Of)h(course)g(we)243 457 y(are)g(interested)e(in)g(the)h
(program)h(e)o(xtracted)f(from)h(such)e(a)i(proof.)301
511 y(Let)f Fx(s)f Fv(\022)f Fx(t)14 b Fz(mean)e(that)e
Fx(s)h Fz(is)g(a)h(subtree)e(of)g Fx(t)k Fz(and)d(de\002ne)630
610 y Fx(Q)p Fu([)p Fx(s)p Fu(])49 b Fz(:)p Fv(\021)g(8)p
Fx(s)896 594 y Fp(0)918 610 y Fv(\022)10 b Fx(s)5 b Fw(:)g
Fx(s)1022 594 y Fp(0)1042 610 y Fv(6)p Fu(=)11 b Fx(s)f
Fv(!)g(:)p Fx(P)p Fu([)p Fx(s)1260 594 y Fp(0)1271 610
y Fu(])p Fw(;)584 675 y Fx(A)612 682 y Fq(0)631 675 y
Fu([)o Fx(t)s Fw(;)5 b Fx(s)p Fu(])48 b Fz(:)p Fv(\021)h
Fx(s)10 b Fv(\022)g Fx(t)f Fv(^)d Fx(P)p Fu([)p Fx(s)p
Fu(])g Fv(^)g Fx(Q)p Fu([)p Fx(s)p Fu(])p Fw(:)243 773
y Fz(Then)11 b(our)f(goal)h(can)h(be)f(stated)f(formally)h(as)742
870 y Fv(8)o Fx(t)d Fw(:)d Fx(P)p Fu([)o Fx(t)s Fu(])j
Fv(!)j(9)963 851 y Fp(\003)982 870 y Fx(s)5 b(A)1033
877 y Fq(0)1051 870 y Fu([)o Fx(t)s Fw(;)g Fx(s)p Fu(])p
Fw(:)243 1024 y Fz(6.2.)32 b Fx(F)n(r)n(om)10 b(classical)f(pr)n(oofs)h
(to)g(pr)n(ogr)o(ams)243 1123 y Fz(W)l(e)18 b(will)e(\002rst)h(pro)o(v)
o(e)h(the)f(goal)g(classically)m(,)f(i.e.)i(deduce)f(from)h
Fx(P)p Fu([)o Fx(t)s Fu(])e Fz(the)i(classical)243 1177
y(e)o(xistence)11 b(statement)828 1234 y Fv(:8)p Fx(s)p
Fv(:)p Fx(A)959 1241 y Fq(0)978 1234 y Fu([)o Fx(t)s
Fw(;)5 b Fx(s)p Fu(])243 1315 y Fz(and)12 b(then)g(apply)f(Friedman')n
(s)i Fx(A)p Fz(-translation)d(which)i(gi)o(v)o(es)f(us)h(a)h
(constructi)o(v)o(e)e(proof)243 1369 y(containing)e(a)j(quite)e(cle)o
(v)o(er)h(algorithm.)243 1480 y Fx(The)g(classical)f(pr)n(oof)243
1534 y Fz(Here)15 b(and)g(in)g(6.2.2)g(and)g(6.2.3)g(we)g(\002x)g(a)h
(tree)e Fx(t)k Fz(and)d(suppress)e(it)i(notationally)m(,)e(for)243
1588 y(sake)d(of)i(better)f(readability)m(.)f(Hence)794
1685 y Fx(A)822 1692 y Fq(0)841 1685 y Fu([)p Fx(s)p
Fu(])f Fz(:)p Fv(\021)h Fx(A)980 1692 y Fq(0)998 1685
y Fu([)o Fx(t)s Fw(;)5 b Fx(s)p Fu(])p Fw(:)243 1782
y Fz(Roughly)m(,)13 b(the)g(classical)g(proof)g(goes)g(as)h(follo)o
(ws:)e(assume)h Fx(P)p Fu([)o Fx(t)s Fu(])g Fz(and)g
Fv(8)p Fx(s)p Fv(:)p Fx(A)1491 1789 y Fq(0)1510 1782
y Fu([)p Fx(s)p Fu(])p Fz(.)g(W)l(e)243 1836 y(ha)o(v)o(e)j(to)f(deri)o
(v)o(e)g(a)h(contradiction.)e(Using)g(the)h(second)g(assumption)f(we)i
(can)f(easily)243 1890 y(pro)o(v)o(e)d Fv(8)p Fx(s)5
b Fw(:)g Fx(s)10 b Fv(\022)g Fx(t)j Fv(!)e Fx(Q)p Fu([)p
Fx(s)p Fu(])g Fz(by)h(induction)e(on)i Fx(s)p Fz(.)g(No)o(w)m(,)g
(setting)f Fx(s)f Fz(:)p Fu(=)f Fx(t)s Fz(,)k(we)f(obtain)f
Fx(Q)p Fu([)o Fx(t)s Fu(])243 1944 y Fz(and)f(hence)g
Fx(A)463 1951 y Fq(0)481 1944 y Fu([)o Fx(t)s Fu(])f
Fz(\()p Fv(\021)h Fx(A)619 1951 y Fq(0)637 1944 y Fu([)o
Fx(t)s Fw(;)t Fx(t)s Fu(])p Fz(\))f(using)f(the)i(assumption)e
Fx(P)p Fu([)o Fx(t)s Fu(])p Fz(.)h(But)h(this)f(contradicts)g(our)243
1998 y(assumption)g Fv(8)p Fx(s)p Fv(:)p Fx(A)562 2005
y Fq(0)581 1998 y Fu([)p Fx(s)p Fu(])p Fz(.)243 2109
y Fx(A-tr)o(anslation)243 2163 y Fz(In)14 b(order)h(to)f(apply)g(the)h
Fx(A)p Fz(-translation)d(to)i(this)g(proof)g(we)h(\002rst)f(ha)o(v)o(e)
i(to)e(look)f(at)i(the)243 2217 y(shape)d(of)h(the)f(proof)g(in)g(some)
h(detail.)f(Note)g(that)g(we)h(only)f(used)g(induction)e(on)j(trees)243
2271 y(and)e(the)g(follo)o(wing)e(facts)h(about)h Fx(P)p
Fz(,)g Fx(Q)g Fz(and)g Fv(\022)p Fz(:)372 2373 y(ax)415
2380 y Fq(1)434 2373 y Fz(:)49 b Fv(8)p Fx(n)5 b Fw(:)g
Fx(Q)p Fu([)p Fn(leaf)r Fu(\()p Fx(n)p Fu(\)])372 2438
y Fz(ax)415 2445 y Fq(2)434 2438 y Fz(:)49 b Fv(8)p Fx(s)539
2445 y Fq(1)558 2438 y Fw(;)5 b Fx(s)594 2445 y Fq(2)617
2438 y Fw(:)g Fv(:)p Fx(P)p Fu([)p Fx(s)724 2445 y Fq(1)741
2438 y Fu(])10 b Fv(!)g(:)p Fx(P)p Fu([)p Fx(s)908 2445
y Fq(2)926 2438 y Fu(])g Fv(!)h Fx(Q)p Fu([)p Fx(s)1069
2445 y Fq(1)1086 2438 y Fu(])f Fv(!)h Fx(Q)p Fu([)p Fx(s)1229
2445 y Fq(2)1247 2438 y Fu(])e Fv(!)i Fx(Q)p Fu([)p Fv(h)p
Fx(s)1407 2445 y Fq(1)1424 2438 y Fw(;)5 b Fx(s)1460
2445 y Fq(2)1478 2438 y Fv(i)p Fu(])372 2503 y Fz(ax)415
2510 y Fq(3)434 2503 y Fz(:)49 b Fv(8)p Fx(s)5 b Fw(:)g
Fx(s)k Fv(\022)i Fx(s)372 2568 y Fz(ax)415 2575 y Fq(4)434
2568 y Fz(:)49 b Fv(8)p Fx(s)539 2575 y Fq(1)558 2568
y Fw(;)5 b Fx(s)594 2575 y Fq(2)612 2568 y Fw(;)g Fx(s)g
Fw(:)g Fv(h)p Fx(s)707 2575 y Fq(1)724 2568 y Fw(;)g
Fx(s)760 2575 y Fq(2)778 2568 y Fv(i)k(\022)i Fx(s)e
Fv(!)i Fx(s)952 2575 y Fq(1)981 2568 y Fv(\022)f Fx(s)c
Fv(^)g Fx(s)1104 2575 y Fq(2)1133 2568 y Fv(\022)k Fx(s)p
Fw(:)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.23)p
eop
%%Page: 24 24
24 23 bop 243 277 a Fz(24)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fz(If)f(we)g(vie)o(w)g
Fx(Q)g Fz(as)f(a)i(primiti)o(v)o(e)e(predicate)g(then)h(these)f(are)i
Fy(P)p Fz(-formulas,)f(i.e.)h(uni)o(v)o(ersal)243 457
y(formulas)e(with)f(a)i(quanti\002er)o(-free)f(kernel.)g(Moreo)o(v)o
(er)n(,)i(the)e(kernel)f(of)i(our)f(goal,)g Fx(A)1565
464 y Fq(0)1583 457 y Fu([)p Fx(s)p Fu(])p Fz(,)243 511
y(is)g(quanti\002er)o(-free.)i(No)o(w)m(,)f(the)f Fx(A)p
Fz(-translation)f(works)h(for)h(a)h(situation)c(like)i(this.)g(Let)h
(us)243 565 y(brie\003y)h(e)o(xplain)f(its)h(crucial)g(idea)g(at)g(our)
g(classical)f(proof.)301 619 y(Recall)18 b(that)f(abo)o(v)o(e)g(we)h
(ha)o(v)o(e)g(pro)o(v)o(ed)f Fv(?)h Fz(from)g(the)g(axioms)f(ax)1385
626 y Fq(1)1403 619 y Fw(;)5 b(:)g(:)g(:)t(;)g Fz(ax)1534
626 y Fq(4)1553 619 y Fz(,)18 b(the)243 673 y(assumptions)e
Fx(P)p Fu([)o Fx(t)s Fu(])g Fz(and)i Fv(8)p Fx(s)5 b
Fw(:)g Fx(A)749 680 y Fq(0)767 673 y Fu([)p Fx(s)p Fu(])13
b Fv(!)h(?)p Fz(.)19 b(Observ)o(e)f(also)f(that)g(the)h(symbol)f
Fv(?)p Fz(,)i(for)243 727 y(falsity)m(,)12 b(didn')o(t)g(play)h(a)h
(special)f(role)g(in)g(the)g(proof)g(\(e.g.)i(we)e(used)g(neither)g(e)o
(x-falso-)243 781 y(quodlibet)e(nor)i(stability\);)e(in)h(particular)h
(the)g Fx(pr)n(oof)f Fz(was)g(entirely)h(constructi)o(v)o(e)e(\(al-)243
835 y(though)d(the)i Fx(formula)f Fz(pro)o(v)o(en)h(was,)g(of)g
(course,)h(a)f(non-constructi)o(v)o(e)e(e)o(xistence)i(state-)243
889 y(ment\).)j(Therefore)g(we)g(may)h(replace)f(e)o(v)o(erywhere)g(in)
f(the)h(proof)f(the)h(formula)g Fv(?)g Fz(by)243 943
y(our)e(constructi)o(v)o(e)e(goal-formula)814 1044 y
Fx(A)h Fz(:)p Fv(\021)g(9)935 1026 y Fp(\003)954 1044
y Fx(s)5 b(A)1005 1051 y Fq(0)1023 1044 y Fu([)p Fx(s)p
Fu(])243 1146 y Fz(and)15 b(obtain)g(a)h(correct)g(and)g(constructi)o
(v)o(e)e(deri)o(v)o(ation)h(of)g(the)h(formula)g Fx(A)g
Fz(from)g(the)243 1200 y(assumptions)11 b Fx(P)p Fu([)o
Fx(t)s Fu(])g Fz(and)i Fv(8)p Fx(s)5 b Fw(:)g Fx(A)734
1207 y Fq(0)752 1200 y Fu([)p Fx(s)p Fu(])10 b Fv(!)h
Fx(A)p Fz(.)j(But:)e(the)h(latter)f(formula)h(is)g(an)g(instance)f(of)
243 1254 y(an)e Fv(9)321 1237 y Fp(\003)p Fj(+)376 1254
y Fz(axiom.)g(Hence)g(we)g(get)f Fx(A)h Fz(constructi)o(v)o(ely)e(from)
i(the)g(axioms)f(and)h Fx(P)p Fu([)o Fx(t)s Fu(])f Fz(alone.)301
1308 y(Unfortunately)14 b(there)j(are)g(some)f(complications:)e(\(1\))j
(Of)f(course,)g(we)h(want)e(to)243 1362 y(be)h(allo)o(wed)g(to)g(use)g
(e)o(x-falso-quodlibet)e(\()p Fv(?)g(!)f Fx(A)p Fz(\))k(and)f
(stability)e(\()p Fv(::)p Fx(A)g Fv(!)g Fx(A)p Fz(\))i(in)243
1416 y(our)f(proofs)g(and)g(\(2\))h(the)f(translated)f(proof)i(also)e
(uses)h(the)h(translated)e(axioms;)h(for)243 1470 y(instance)298
1571 y(ax)341 1552 y Fp(0)341 1582 y Fq(2)360 1571 y
Fz(:)5 b Fv(8)p Fx(s)421 1578 y Fq(1)439 1571 y Fw(;)g
Fx(s)475 1578 y Fq(2)493 1571 y Fw(:)g Fu(\()p Fx(P)p
Fu([)p Fx(s)588 1578 y Fq(1)605 1571 y Fu(])10 b Fv(!)h
Fx(A)p Fu(\))e Fv(!)i Fu(\()p Fx(P)p Fu([)p Fx(s)872
1578 y Fq(2)889 1571 y Fu(])f Fv(!)g Fx(A)p Fu(\))g Fv(!)g
Fx(Q)p Fu([)p Fx(s)1142 1578 y Fq(1)1160 1571 y Fu(])g
Fv(!)g Fx(Q)p Fu([)p Fx(s)1302 1578 y Fq(2)1320 1571
y Fu(])g Fv(!)g Fx(Q)p Fu([)p Fv(h)p Fx(s)1480 1578 y
Fq(1)1498 1571 y Fw(;)5 b Fx(s)1534 1578 y Fq(2)1552
1571 y Fv(i)p Fu(])243 1672 y Fz(which)11 b(is)g(not)g(pro)o(v)o(able,)
g(and,)h(in)f(general,)h(will)f(e)o(v)o(en)h(be)f(false.)h(A)f(way)h
(out)e(of)i(these)243 1726 y(problems)f(is)h(to)f(\002rst)h(replace)h
(in)f(the)f(classical)h(proof)f(e)o(v)o(ery)i(atomic)f(formula)g(by)g
(its)243 1780 y(double)c(ne)o(gation)g(\(G\366del')n(s)f(ne)o(gati)o(v)
o(e)i(translation\))e(and)i(afterwards)g(replace)g Fv(?)h
Fz(by)e Fx(A)p Fz(.)243 1834 y(Then)g(\(1\))h(e)o(x-falso-quodlibet)e
(and)i(stability)d(are)k(translated)e(into)g(formulas)g(pro)o(v)o(able)
243 1888 y(in)17 b(minimal)g(logic)g(and)g(\(2\))h(each)f(assumption)f
(ax)1096 1895 y Fl(i)1125 1888 y Fz(is)h(translated)f(into)h(a)h
(formula)243 1942 y(which)d(follo)o(ws)f(constructi)o(v)o(ely)f(from)j
(ax)939 1949 y Fl(i)950 1942 y Fz(.)g(Of)g(course,)g(this)e(modi\002ed)
i(translation)243 1996 y(\(i.e.)c(G\366del')n(s)e(translation)f(follo)o
(wed)h(by)h(the)g(replacement)g Fv(?)g(7!)g Fx(A)p Fz(\))g(also)g(af)o
(fects)g(the)243 2050 y(formula)16 b Fx(A)431 2057 y
Fq(0)450 2050 y Fz(,)g(b)o(ut)g(still)f(transforms)g(the)h(formula)h
Fv(8)p Fx(s)5 b Fw(:)g Fx(A)1173 2057 y Fq(0)1191 2050
y Fu([)p Fx(s)p Fu(])11 b Fv(!)j(?)j Fz(into)e(a)h(pro)o(v)o(able)243
2104 y(formula.)301 2188 y Fx(Remarks)p Fz(:)9 b(1.)h(Friedman')n(s)f
(original)g(translation)f(\(Friedman,)j(1978\))e(replaces)h(e)o(v-)243
2242 y(ery)16 b(atomic)h(formula)f Fx(R)g Fz(by)g Fx(R)8
b Fv(_)h Fx(A)16 b Fz(and)g(not,)g(as)g(we)h(did,)f(by)g
Fu(\()p Fx(R)c Fv(!)h Fx(A)p Fu(\))g Fv(!)g Fx(A)p Fz(.)k(But)243
2296 y(clearly)10 b(the)g(formulas)g Fx(R)5 b Fv(_)g
Fx(A)11 b Fz(and)f Fu(\()p Fx(R)f Fv(!)g Fx(A)p Fu(\))g
Fv(!)h Fx(A)g Fz(are)h(constructi)o(v)o(ely)d(equi)o(v)o(alent)h(as-)
243 2350 y(suming)f(decidability)g(of)i Fx(R)p Fz(.)g(W)l(e)g(ha)o(v)o
(e)g(chosen)f(the)h(latter)f(v)o(ariant,)g(since)g(in)i(M)r
FA(I)r(N)r(L)r(O)r(G)243 2404 y Fz(we)g(prefer)h(reasoning)e(with)g
(implications)f(rather)j(with)e(disjunctions.)301 2458
y(2.)h(Another)f(way)g(to)g(see)h(the)g Fx(A)p Fz(-translation,)e(is)h
(to)g(say)h(that)f(in)g(constructi)o(v)o(e)g(logic)243
2512 y(we)15 b(may)g(pass)f(from)h(a)g(proof)f(of)g Fv(:8)p
Fx(x)p Fv(:)p Fx(D)p Fu([)p Fx(x)p Fu(])h Fz(\()p Fx(D)g
Fz(quanti\002er)o(-free\),)g(or)g(equi)o(v)o(alently)243
2566 y Fv(::9)328 2550 y Fp(\003)352 2566 y Fx(D)p Fu([)p
Fx(x)p Fu(])p Fz(,)c(to)g(a)h(proof)e(of)i Fv(9)716 2550
y Fp(\003)735 2566 y Fx(x)5 b(D)p Fu([)p Fx(x)p Fu(])p
Fz(.)11 b(This)f(is)h(kno)o(wn)f(as)h(Marko)o(v')n(s)f(rule.)891
3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.24)p
eop
%%Page: 25 25
25 24 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(25)243 404 y Fx(The)11
b(tr)o(anslated)e(pr)n(oof)243 457 y Fz(In)17 b(M)r FA(I)r(N)r(L)r(O)r
(G)j Fz(we)c(ha)o(v)o(e)g(implemented)g(a)g(re\002nement)h(of)f(the)f
Fx(A)p Fz(-translation)f(which)243 511 y(does)j(not)f(replace)i(all)f
(atomic)g(formulas)g Fx(R)g Fz(by)g Fu(\()p Fx(R)c Fv(!)h
Fx(A)p Fu(\))e Fv(!)i Fx(A)p Fz(.)k(In)f(our)g(e)o(xample)243
565 y(this)c(is)g(only)g(necessary)h(for)g(formulas)g
Fx(Q)p Fu([)p Fv(\001)p Fu(])p Fz(;)e(in)i(general,)g(it)g(can)g(be)g
(decided)f(easily)243 619 y(whether)g(an)h(atomic)g(formula)f(has)h(to)
f(be)h(replaced)g(or)g(not.)f(F)o(or)i(more)f(information)243
673 y(on)d(this)f(re\002nement)h(we)h(refer)g(to)f(\(Ber)o(ger)h(and)f
(Schwichtenber)o(g,)g(1995\).)301 727 y(No)o(w)m(,)h(the)h(M)r
FA(I)r(N)r(L)r(O)r(G)j Fz(system)c(transforms)g(our)g(classical)g
(proof)g(into)f(a)h(construc-)243 781 y(ti)o(v)o(e)d(one.)i(W)l(e)f
(sho)o(w)f(this)g(automatically)g(generated)h(proof)g(in)f(tree)i(form)
f(belo)o(w)m(.)g(Due)243 835 y(to)h(lack)h(of)f(space)h(we)g
(graphically)f(contracted)g(consecuti)o(v)o(e)g(applications)e(of)j
(elimi-)243 889 y(nation)7 b(rules)h(to)g(one)h(rule.)g(Similarly)f
(for)g(consecuti)o(v)o(e)g(introduction)e(rules.)i(A)h(double)243
943 y(line)k(means)h(that)g(the)g(conclusion)e(follo)o(ws)g(from)j(the)
e(premises)h(by)g(some)g(elimina-)243 997 y(tion)e(rules.)i(The)f
(subproofs)f(named)i Fx(M)r Fz(,)g Fx(M)958 981 y Fp(0)982
997 y Fz(etc.)g(will)f(play)g(a)h(role)f(in)g(section)g(6.2.4)243
1051 y(only)m(.)301 1105 y(T)l(o)g(make)g(the)f(proof)h(tree)g(easier)g
(to)f(understand)f(we)i(gi)o(v)o(e)g(also)f(an)h(informal)f(de-)243
1159 y(scription:)d(assume)i Fx(P)p Fu([)o Fx(t)s Fu(])f
Fz(and)h(let)645 1237 y Fx(B)p Fu([)p Fx(s)p Fu(])e Fz(:)p
Fv(\021)h Fx(s)g Fv(\022)f Fx(t)k Fv(!)d Fu(\()p Fx(Q)p
Fu([)p Fx(s)p Fu(])f Fv(!)h Fx(A)p Fu(\))g Fv(!)g Fx(A)243
1314 y Fz(\(again)j(we)h(suppressed)e Fx(t)s Fz(\).)i(W)l(e)g(\002rst)g
(pro)o(v)o(e)g Fv(8)p Fx(s)5 b(B)p Fu([)p Fx(s)p Fu(])13
b Fz(by)g(induction)f(on)i Fx(s)p Fz(.)g(The)f(base,)243
1368 y Fx(B)p Fu([)p Fn(leaf)r Fu(\()p Fx(n)p Fu(\)])p
Fz(,)g(is)g(easy)m(.)h(T)l(o)g(pro)o(v)o(e)g(the)f(step)g(we)h(assume)g
Fx(B)p Fu([)p Fx(s)1203 1375 y Fq(1)1220 1368 y Fu(])g
Fz(and)f Fx(B)p Fu([)p Fx(s)1385 1375 y Fq(2)1403 1368
y Fu(])p Fz(.)h(In)f(order)h(to)243 1422 y(sho)o(w)d
Fx(B)p Fu([)p Fv(h)p Fx(s)427 1429 y Fq(1)445 1422 y
Fw(;)5 b Fx(s)481 1429 y Fq(2)499 1422 y Fv(i)p Fu(])12
b Fz(we)g(further)h(assume)f Fv(h)p Fx(s)926 1429 y Fq(1)944
1422 y Fw(;)5 b Fx(s)980 1429 y Fq(2)998 1422 y Fv(i)11
b(\022)f Fx(t)15 b Fz(and)e Fx(Q)p Fu([)p Fv(h)p Fx(s)1261
1429 y Fq(1)1278 1422 y Fw(;)5 b Fx(s)1314 1429 y Fq(2)1332
1422 y Fv(i)p Fu(])10 b Fv(!)h Fx(A)p Fz(.)i(W)l(e)g(ha)o(v)o(e)243
1476 y(to)d(sho)o(w)f Fx(A)p Fz(.)h Fx(Case)h(P)p Fu([)p
Fx(s)604 1483 y Fq(1)621 1476 y Fu(])p Fz(:)f(then)g(by)g(i.h.,)h
Fx(B)p Fu([)p Fx(s)941 1483 y Fq(1)958 1476 y Fu(])p
Fz(,)g(we)f(ha)o(v)o(e)h Fu(\()p Fx(Q)p Fu([)p Fx(s)1233
1483 y Fq(1)1250 1476 y Fu(])e Fv(!)h Fx(A)p Fu(\))e
Fv(!)i Fx(A)p Fz(.)h(Hence)f(it)243 1530 y(suf)o(\002ces)g(to)f(sho)o
(w)g Fx(Q)p Fu([)p Fx(s)605 1537 y Fq(1)623 1530 y Fu(])g
Fv(!)g Fx(A)p Fz(.)h(So)h(assume)f Fx(Q)p Fu([)p Fx(s)1015
1537 y Fq(1)1032 1530 y Fu(])p Fz(.)h(W)l(e)f(ha)o(v)o(e)h
Fx(s)1249 1537 y Fq(1)1276 1530 y Fv(\022)d Fx(t)s Fz(,)i
Fx(P)p Fu([)p Fx(s)1415 1537 y Fq(1)1433 1530 y Fu(])g
Fz(and)g Fx(Q)p Fu([)p Fx(s)1596 1537 y Fq(1)1614 1530
y Fu(])p Fz(,)243 1584 y(i.e.)j Fx(A)339 1591 y Fq(0)358
1584 y Fu([)p Fx(s)389 1591 y Fq(1)407 1584 y Fu(])p
Fz(.)f(Hence)h Fx(A)p Fz(,)g(by)f(e)o(xistence)h(introduction.)d
Fx(Case)j Fv(:)p Fx(P)p Fu([)p Fx(s)1303 1591 y Fq(1)1321
1584 y Fu(])p Fz(:)f Fx(Sub-case)g(P)p Fu([)p Fx(s)1595
1591 y Fq(2)1612 1584 y Fu(])p Fz(:)243 1638 y(similar)g(to)g(case)h
Fx(P)p Fu([)p Fx(s)580 1645 y Fq(1)597 1638 y Fu(])p
Fz(,)g(b)o(ut)f(using)f(i.h.,)i Fx(B)p Fu([)p Fx(s)956
1645 y Fq(2)974 1638 y Fu(])p Fz(.)g Fx(Sub-case)e Fv(:)p
Fx(P)p Fu([)p Fx(s)1276 1645 y Fq(2)1294 1638 y Fu(])p
Fz(:)h(we)h(use)f(again)g(the)243 1692 y(i.h.,)i Fx(B)p
Fu([)p Fx(s)385 1699 y Fq(1)403 1692 y Fu(])p Fz(.)g(Hence)g(it)g(suf)o
(\002ces)g(to)f(pro)o(v)o(e)h Fx(Q)p Fu([)p Fx(s)992
1699 y Fq(1)1010 1692 y Fu(])d Fv(!)h Fx(A)p Fz(.)j(So)f(assume)g
Fx(Q)p Fu([)p Fx(s)1419 1699 y Fq(1)1436 1692 y Fu(])g
Fz(and)g(sho)o(w)243 1746 y Fx(A)p Fz(.)g(Using)e(the)i(i.h.,)g
Fx(B)p Fu([)p Fx(s)630 1753 y Fq(2)648 1746 y Fu(])p
Fz(,)f(we)h(see)g(that)f(in)g(fact)h(we)g(may)g(also)f(assume)h
Fx(Q)p Fu([)p Fx(s)1495 1753 y Fq(2)1513 1746 y Fu(])p
Fz(.)f(No)o(w)243 1800 y(we)g(ha)o(v)o(e)h Fv(:)p Fx(P)p
Fu([)p Fx(s)496 1807 y Fq(1)514 1800 y Fu(])p Fz(,)f
Fv(:)p Fx(P)p Fu([)p Fx(s)640 1807 y Fq(2)658 1800 y
Fu(])p Fz(,)g Fx(Q)p Fu([)p Fx(s)759 1807 y Fq(1)777
1800 y Fu(])g Fz(and)g Fx(Q)p Fu([)p Fx(s)946 1807 y
Fq(2)964 1800 y Fu(])p Fz(.)g(Hence)h Fx(Q)p Fu([)p Fv(h)p
Fx(s)1213 1807 y Fq(1)1230 1800 y Fw(;)5 b Fx(s)1266
1807 y Fq(2)1284 1800 y Fv(i)p Fu(])p Fz(,)13 b(by)g(ax)1441
1807 y Fq(2)1459 1800 y Fz(.)h(No)o(w)f(we)243 1854 y(remember)g(that)f
Fx(Q)p Fu([)p Fv(h)p Fx(s)602 1861 y Fq(1)619 1854 y
Fw(;)5 b Fx(s)655 1861 y Fq(2)673 1854 y Fv(i)p Fu(])10
b Fv(!)h Fx(A)h Fz(holds.)g(Hence)g Fx(A)p Fz(.)g(This)g(completes)f
(the)h(inducti)o(v)o(e)243 1908 y(proof)e(of)g Fv(8)p
Fx(s)5 b(B)p Fu([)p Fx(s)p Fu(])p Fz(.)10 b(Setting)f
Fx(s)g Fz(:)p Fu(=)f Fx(t)14 b Fz(we)c(get)g Fu(\()p
Fx(Q)p Fu([)o Fx(t)s Fu(])e Fv(!)i Fx(A)p Fu(\))e Fv(!)i
Fx(A)p Fz(.)h(So)f(it)g(\002nally)g(suf)o(\002ces)g(to)243
1962 y(pro)o(v)o(e)h Fx(Q)p Fu([)o Fx(t)s Fu(])e Fv(!)i
Fx(A)p Fz(.)g(So)h(assume)f Fx(Q)p Fu([)o Fx(t)s Fu(])p
Fz(.)g(Since)g(we)h(assumed)f Fx(P)p Fu([)o Fx(t)s Fu(])f
Fz(and)h(also)e Fx(t)k Fv(\022)d Fx(t)k Fz(holds,)243
2016 y(we)9 b(ha)o(v)o(e)h Fx(A)427 2023 y Fq(0)446 2016
y Fu([)o Fx(t)s Fu(])e Fz(\()p Fv(\021)h Fx(A)582 2023
y Fq(0)601 2016 y Fu([)o Fx(t)s Fw(;)t Fx(t)s Fu(]\))p
Fz(.)e(Hence)j Fx(A)p Fz(,)g(by)f(e)o(xistence)g(introduction.)f(This)g
(completes)243 2070 y(the)j(proof.)301 2159 y(Note)16
b(that)g(in)g(the)g(proof)g(abo)o(v)o(e)h Fv(9)p Fz(-introduction)d
(and)i(case)h(analysis)e(on)h Fx(P)g Fz(oc-)243 2213
y(cur)e(which)f(both)f(were)i(not)f(used)g(in)h(the)f(classical)g
(proof.)g(The)h(e)o(xplanation)e(is)h(that)243 2267 y
Fv(9)p Fz(-introduction)f(is)j(used)f(for)h(pro)o(ving)e(the)i
(translation)e(of)i(the)f(wrong)g(assumption,)243 2321
y Fv(8)p Fx(s)p Fv(:)p Fx(A)344 2328 y Fq(0)362 2321
y Fu([)p Fx(s)p Fu(])p Fz(,)d(and)g(case)h(analysis)d(is)i(needed)g
(for)h(pro)o(ving)e(ax)1194 2328 y Fq(2)1224 2321 y Fz(from)h(its)g
(translation.)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i
(p.25)p eop
%%Page: 26 26
26 25 bop 243 277 a Fz(26)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)-294 3325 y @beginspecial 0 @llx
0 @lly 596 @urx 842 @ury 5960 @rwi @setspecial
%%BeginDocument: baum2.ps
%DVIPSCommandLine: /sw/tex/bin/Dvips -t landscape baum2.dvi
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1998.02.02:1049
/TeXDict 250 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 4 get round 4 exch put dup dup 5 get
round 5 exch put 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 add]{
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 showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
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 product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{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
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
TeXDict begin 55380996 39158280 1000 300 300
(/mnt3/home/math63/benl/book/baum2.dvi) @start /Fa 2
51 df<18F818181818181818181818FF080D7D8C0E>49 D<3E00418080C0C0C000C000C0
018003000400084030407F80FF800A0D7E8C0E>I E /Fb 2 116
df<07FFE000E07001C01801C01C01C01C01C01C0380380380380380700381C007FF0007
00000700000700000E00000E00000E00000E00001C0000FF800016147F9315>80
D<0700188019C0318038001E000F0003804180E180C10082007C000A0D7E8C10>115
D E /Fc 2 49 df<040004000400C460E4E03F800E003F80E4E0C4600400040004000B0D
7E8D11>3 D<040E0E1C1C1C38383070706060C0C0070F7F8F0A>48
D E /Fd 9 106 df17 D<007FFF8001FFFF80078000
000E0000001800000030000000300000006000000060000000C0000000C0000000C00000
00C0000000C0000000C0000000C000000060000000600000003000000030000000180000
000E0000000780000001FFFF80007FFF8000000000000000000000000000000000000000
0000000000000000007FFFFF807FFFFF8019227D9920>I<000000040000000002000000
000200000000010000000000800000000040FFFFFFFFF8FFFFFFFFF80000000040000000
00800000000100000000020000000002000000000400250E7E902A>33
D<400004C0000C6000186000186000183000303000303000301800601800601FFFE00FFF
C00C00C00C00C006018006018003030003030003030001860001860001860000CC0000CC
0000CC00007800007800007800003000003000161E809C17>56 DII<001000003800003800006C00006C00006C0000
C60000C6000183000183000301800301800600C00600C00600C00C00600C006018003018
003030001830001830001860000C60000CC00006C00002171A7E981C>94
D<008001800300030003000600060006000C000C000C0018001800180030003000300060
0060006000C000C0006000600060003000300030001800180018000C000C000C00060006
00060003000300030001800080092A7C9E10>104 DI E /Fe 4 109 df<0FC03FF07FF87038401C001C001C00FC0FFC3FFC781CE01C
E01CE01CF07C7FFC7FDC3F1C0E127E9114>97 D<07C01FE03FF078787018601CFFFCFFFC
FFFCE000E000E000700070043C1C3FFC1FF807E00E127E9112>101
D<00FC01FC03FC07000E000E000E000E000E000E000E00FFE0FFE00E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E1D809C0D>I108
D E /Ff 14 121 df<004000800100020006000C000C0018001800300030007000600060
006000E000E000E000E000E000E000E000E000E000E000E000E000600060006000700030
003000180018000C000C00060002000100008000400A2A7D9E10>40
D<800040002000100018000C000C000600060003000300038001800180018001C001C001
C001C001C001C001C001C001C001C001C001C0018001800180038003000300060006000C
000C00180010002000400080000A2A7E9E10>I<60F0F0600000000000000000000060F0
F06004127C910C>58 D91 D93
D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C
00E01C40E01C40E01C40603C40304E801F870012127E9115>97 D<07E00C301878307870
306000E000E000E000E000E000E00060007004300418080C3007C00E127E9112>99
D<003F0000070000070000070000070000070000070000070000070000070000070003E7
000C1700180F00300700700700600700E00700E00700E00700E00700E00700E007006007
00700700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E0
06FFFEE000E000E000E00060007002300218040C1803E00F127F9112>I104 D<18003C003C00180000000000000000000000
00000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
1C00FF80091D7F9C0C>I
110 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D0
608FC00D127F9110>115 D<7F8FF00F03800F030007020003840001C80001D80000F000
00700000780000F800009C00010E00020E000607000403801E07C0FF0FF81512809116>
120 D E /Fg 12 94 df<0F0030C0606060604020C030C030C030C030C030C030C030C0
30C03040206060606030C00F000C137E9211>48 D<0C001C00EC000C000C000C000C000C
000C000C000C000C000C000C000C000C000C000C00FFC00A137D9211>I<1F0060C06060
F070F030603000700070006000C001C00180020004000810101020207FE0FFE00C137E92
11>I<0FC030707038703870380038003000E00FC0007000380018001C601CF01CF018E0
3860701FC00E137F9211>I<006000E000E00160026006600C600860106020606060C060
FFFC0060006000600060006003FC0E137F9211>I<60607FC07F8044004000400040004F
0070C040E0006000700070E070E070E06040E021C01F000C137E9211>I<07C00C201070
207060006000C000CF00D0C0E060C020C030C030C03040306020206010C00F000C137E92
11>I<40007FFC7FF8401080108020004000800100010003000200060006000E000E000E
000E000E0004000E147E9311>I<0FC0107020186018601870183C303F600F800FE031F0
6078C01CC00CC00CC00C601830300FC00E137F9211>I<0F00308060404060C020C030C0
30C0304030607030B00F30003000200060E040E08041003E000C137E9211>I91
D
93 D E /Fh 12 118 df<60F0F06004047C830C>58 D<60F0F070101010102020408004
0C7C830C>I<00000C0000000C0000001C0000001C0000003C0000007C0000005C000000
9C0000008E0000010E0000010E0000020E0000040E0000040E0000080E0000080E000010
0E0000200E00003FFE000040070000400700008007000100070001000700020007000200
0700060007001E000700FF807FF01C1D7F9C1F>65 D<01FFFF00003C01C0003800E00038
00F0003800700038007000700070007000F0007000F0007001E000E003C000E0078000E0
1F0000FFFC0001C00F0001C0078001C003C001C003C0038003C0038003C0038003C00380
03C0070007800700070007000E0007001C000E007800FFFFC0001C1C7E9B1F>I<01FE00
00FF003E0000F0002E0001E0002E0002E0002E0002E0002E0004E0004E0009C0004E0009
C000470011C000470011C000870023800087004380008700438000870083800107010700
0107010700010382070001038207000203840E000203880E000203880E000203900E0004
03A01C000403A01C000401C01C000C01C01C001C01803C00FF8103FF80281C7E9B28>77
D<01FC00FF80001C001C00002E001800002E001000002E00100000270010000047002000
0043002000004380200000438020000081C040000081C040000081C040000080E0400001
00E080000100708000010070800001007080000200390000020039000002003900000200
1D000004001E000004000E000004000E00000C000E00001C00040000FF80040000211C7E
9B21>I<01FFFF00003C03C0003800E0003800F00038007000380070007000F0007000F0
007000F0007000E000E001E000E003C000E0078000E01E0001FFF00001C0000001C00000
01C000000380000003800000038000000380000007000000070000000700000007000000
0F000000FFE000001C1C7E9B1B>80 D<0003F800000E0E000038038000E001C001C001C0
038000E0070000E00F0000F01E0000F01C0000F03C0000F03C0000F0780000F0780000F0
780000F0F00001E0F00001E0F00001E0F00003C0F00003C0F0000380F0000780F0000F00
703C0E0070421C0038823800388370001C83C0000787810001FF81000003830000038200
00038E000003FC000003F8000001F8000001E0001C257E9C21>I<381F004E61804681C0
4701C08F01C08E01C00E01C00E01C01C03801C03801C03801C0700380710380710380E10
380E2070064030038014127E9119>110 D<01F0060C04040C0E180C1C001F000FE00FF0
03F80038201C7018F018F010803060601F800F127E9113>115 D<00C001C001C001C003
80038003800380FFF00700070007000E000E000E000E001C001C001C001C003820382038
40384018800F000C1A80990F>I<1C00C02701C04701C04701C08703808703800E03800E
03801C07001C07001C07001C0700180E20180E20180E201C1E200C264007C38013127E91
18>I E end
TeXDict begin
@landscape
1 0 bop 274 825 a Fh(u)298 831 y Fg(2)368 769 y Ff(ax)411
775 y Fg(1)456 769 y Fh(n)p 319 785 211 2 v 336 825 a(Q)p
Ff([)p Fe(leaf)r Ff(\()p Fh(n)p Ff(\)])p 257 845 272
2 v 378 882 a Fh(A)p 258 892 271 2 v 541 896 a(n;)7 b(u)609
902 y Fg(1)627 896 y Fh(;)g(u)670 902 y Fg(2)275 939
y Fd(8)p Fh(n:B)r Ff([)p Fe(leaf)r Ff(\()p Fh(n)p Ff(\)])455
695 y(ih)490 701 y Fg(1)538 634 y Ff(ax)580 640 y Fg(4)599
634 y Fh(;)g(u)642 640 y Fg(3)p 521 660 156 2 v 521 652
V 544 695 a Fh(s)563 701 y Fg(1)594 695 y Fd(\022)12
b Fh(t)675 465 y Ff(ax)718 471 y Fg(4)736 465 y Fh(;)7
b(u)779 471 y Fg(3)p 658 492 V 658 483 V 682 526 a Fh(s)701
532 y Fg(1)731 526 y Fd(\022)12 b Fh(t)26 b(u)840 532
y Fg(5)878 526 y Fh(u)902 532 y Fg(6)p 665 543 272 2
v 746 582 a Fh(A)777 588 y Fg(0)796 582 y Ff([)p Fh(s)827
588 y Fg(1)845 582 y Ff(])p 729 602 145 2 v 786 639 a
Fh(A)p 690 649 223 2 v 925 654 a(u)949 660 y Fg(6)706
695 y Fh(Q)p Ff([)p Fh(s)770 701 y Fg(1)789 695 y Ff(])11
b Fd(!)g Fh(A)p 439 715 475 2 v 618 755 a(M)663 739 y
Fc(00)684 755 y Ff(:)c Fh(A)p 564 764 223 2 v 799 769
a(u)823 775 y Fg(5)581 810 y Fh(P)f Ff([)p Fh(s)645 816
y Fg(1)663 810 y Ff(])11 b Fd(!)g Fh(A)977 567 y Ff(ih)1012
573 y Fg(2)1060 506 y Ff(ax)1102 512 y Fg(4)1121 506
y Fh(;)c(u)1164 512 y Fg(3)p 1043 533 156 2 v 1043 524
V 1066 567 a Fh(s)1085 573 y Fg(2)1116 567 y Fd(\022)12
b Fh(t)1197 338 y Ff(ax)1240 344 y Fg(4)1258 338 y Fh(;)7
b(u)1301 344 y Fg(3)p 1180 364 V 1180 356 V 1204 399
a Fh(s)1223 405 y Fg(2)1253 399 y Fd(\022)12 b Fh(t)27
b(u)1363 405 y Fg(7)1400 399 y Fh(u)1424 405 y Fg(8)p
1187 415 272 2 v 1268 455 a Fh(A)1299 461 y Fg(0)1318
455 y Ff([)p Fh(s)1349 461 y Fg(2)1367 455 y Ff(])p 1251
475 145 2 v 1308 512 a Fh(A)p 1212 522 223 2 v 1447 527
a(u)1471 533 y Fg(8)1228 567 y Fh(Q)p Ff([)p Fh(s)1292
573 y Fg(2)1311 567 y Ff(])11 b Fd(!)g Fh(A)p 961 588
475 2 v 1182 624 a(A)p 1086 634 223 2 v 1321 639 a(u)1345
645 y Fg(7)1103 680 y Fh(P)6 b Ff([)p Fh(s)1167 686 y
Fg(2)1185 680 y Ff(])11 b Fd(!)g Fh(A)1499 567 y Ff(ih)1534
573 y Fg(1)1585 506 y Ff(ax)1627 512 y Fg(4)1646 506
y Fh(;)c(u)1689 512 y Fg(3)p 1568 533 156 2 v 1568 524
V 1592 567 a Fh(s)1611 573 y Fg(1)1641 567 y Fd(\022)12
b Fh(t)1711 455 y Ff(ih)1746 461 y Fg(2)1797 394 y Ff(ax)1840
400 y Fg(4)1858 394 y Fh(;)7 b(u)1901 400 y Fg(3)p 1780
420 V 1780 412 V 1804 455 a Fh(s)1823 461 y Fg(2)1853
455 y Fd(\022)12 b Fh(t)1924 339 y(u)1948 345 y Fg(4)1971
284 y Ff(ax)2013 290 y Fg(2)2046 284 y Fh(s)2065 290
y Fg(1)2098 284 y Fh(s)2117 290 y Fg(2)2155 284 y Fh(u)2179
290 y Fg(9)2211 284 y Fh(u)2235 290 y Fg(10)2284 284
y Fh(u)2308 290 y Fg(11)2357 284 y Fh(u)2381 290 y Fg(12)p
1954 300 479 2 v 2102 339 a Fh(Q)p Ff([)p Fd(h)p Fh(s)2182
345 y Fg(1)2200 339 y Fh(;)7 b(s)2238 345 y Fg(2)2257
339 y Fd(i)p Ff(])p 1907 360 395 2 v 2055 399 a Fh(N)2093
384 y Fc(0)2104 399 y Ff(:)g Fh(A)p 1993 409 223 2 v
2228 414 a(u)2252 420 y Fg(12)2009 455 y Fh(Q)p Ff([)p
Fh(s)2073 461 y Fg(2)2092 455 y Ff(])k Fd(!)g Fh(A)p
1695 475 521 2 v 1940 512 a(A)p 1844 522 223 2 v 2079
527 a(u)2103 533 y Fg(11)1860 567 y Fh(Q)p Ff([)p Fh(s)1924
573 y Fg(1)1943 567 y Ff(])g Fd(!)g Fh(A)p 1483 588 585
2 v 1731 624 a(N)5 b Ff(:)i Fh(A)p 1650 634 251 2 v 1912
639 a(u)1936 645 y Fg(10)1666 680 y Fd(:)p Fh(P)f Ff([)p
Fh(s)1758 686 y Fg(2)1776 680 y Ff(])11 b Fd(!)g Fh(A)p
1086 700 814 2 v 1912 701 a Ff(cases)2003 708 y Fb(P)t
Fg([)p Fb(s)2053 712 y Fa(2)2069 708 y Fg(])1440 755
y Fh(M)1485 739 y Fc(0)1496 755 y Ff(:)c Fh(A)p 1368
764 251 2 v 1631 769 a(u)1655 775 y Fg(9)1385 810 y Fd(:)p
Fh(P)f Ff([)p Fh(s)1477 816 y Fg(1)1494 810 y Ff(])11
b Fd(!)g Fh(A)p 564 830 1054 2 v 1631 831 a Ff(cases)1721
839 y Fb(P)t Fg([)p Fb(s)1771 843 y Fa(1)1788 839 y Fg(])1293
882 y Fh(M)5 b Ff(:)i Fh(A)p 1008 892 665 2 v 1685 901
a(s)1704 907 y Fg(1)1723 901 y Fh(;)g(s)1761 907 y Fg(2)1780
901 y Fh(;)g Ff(ih)1833 907 y Fg(1)1851 901 y Fh(;)g
Ff(ih)1904 907 y Fg(2)1923 901 y Fh(;)g(u)1966 907 y
Fg(3)1984 901 y Fh(;)g(u)2027 907 y Fg(4)1025 939 y Fd(8)p
Fh(s)1067 945 y Fg(1)1086 939 y Fh(;)g(s)1124 945 y Fg(2)1142
939 y Fh(:B)r Ff([)p Fh(s)1218 945 y Fg(1)1237 939 y
Ff(])k Fd(!)g Fh(B)r Ff([)p Fh(s)1377 945 y Fg(2)1396
939 y Ff(])g Fd(!)g Fh(B)r Ff([)p Fd(h)p Fh(s)1552 945
y Fg(1)1572 939 y Fh(;)c(s)1610 945 y Fg(2)1628 939 y
Fd(i)p Ff(])p 258 960 1415 2 v 1685 973 a(ind)851 999
y Fd(8)p Fh(s:B)r Ff([)p Fh(s)p Ff(])83 b Fh(t)2034 948
y Ff(ax)2077 954 y Fg(3)2115 948 y Fh(t)p 2017 964 129
2 v 2039 999 a(t)12 b Fd(\022)f Fh(t)p 835 1019 1307
2 v 1341 1059 a Ff(\()p Fh(Q)p Ff([)p Fh(t)p Ff(])f Fd(!)h
Fh(A)p Ff(\))h Fd(!)f Fh(A)2156 840 y Ff(ax)2199 846
y Fg(3)2244 840 y Fh(t)p 2139 856 136 2 v 2165 891 a(t)g
Fd(\022)h Fh(t)35 b Ff(ax)2327 897 y Fg(0)2372 891 y
Fh(u)2396 897 y Fg(0)p 2148 907 284 2 v 2246 946 a Fh(A)2277
952 y Fg(0)2295 946 y Ff([)p Fh(t)p Ff(])p 2229 967 122
2 v 2274 1003 a Fh(A)p 2190 1013 200 2 v 2402 1018 a(u)2426
1024 y Fg(0)2206 1059 y Fh(Q)p Ff([)p Fh(t)p Ff(])11
b Fd(!)g Fh(A)p 1324 1079 1066 2 v 1841 1116 a(A)396
1274 y(A)427 1280 y Fg(0)446 1274 y Ff([)p Fh(s)p Ff(])41
b(:)p Fd(\021)g Fh(s)12 b Fd(\022)g Fh(t)d Fd(^)g Fh(P)d
Ff([)p Fh(s)p Ff(])i Fd(^)h Fh(Q)p Ff([)p Fh(s)p Ff(])457
1336 y Fh(A)42 b Ff(:)p Fd(\021)f(9)638 1319 y Fc(\003)657
1336 y Fh(s)7 b(A)714 1342 y Fg(0)734 1336 y Ff([)p Fh(s)p
Ff(])412 1398 y Fh(B)r Ff([)p Fh(s)p Ff(])42 b(:)p Fd(\021)f
Fh(s)12 b Fd(\022)g Fh(t)g Fd(!)f Ff(\()p Fh(Q)p Ff([)p
Fh(s)p Ff(])g Fd(!)g Fh(A)p Ff(\))h Fd(!)f Fh(A)1263
1211 y Ff(ax)1306 1217 y Fg(0)1324 1211 y Ff(:)41 b Fh(P)6
b Ff([)p Fh(t)p Ff(])1263 1274 y(ax)1306 1280 y Fg(1)1324
1274 y Ff(:)41 b Fd(8)p Fh(n)7 b(:)g(Q)p Ff([)p Fe(leaf)r
Ff(\()p Fh(n)p Ff(\)])1263 1336 y(ax)1306 1342 y Fg(2)1324
1336 y Ff(:)41 b Fd(8)p Fh(s)1419 1342 y Fg(1)1438 1336
y Fh(;)7 b(s)1476 1342 y Fg(2)1502 1336 y Fh(:)g Fd(:)p
Fh(P)f Ff([)p Fh(s)1613 1342 y Fg(1)1630 1336 y Ff(])11
b Fd(!)g(:)p Fh(P)6 b Ff([)p Fh(s)1798 1342 y Fg(2)1816
1336 y Ff(])11 b Fd(!)g Fh(Q)p Ff([)p Fh(s)1956 1342
y Fg(1)1974 1336 y Ff(])g Fd(!)g Fh(Q)p Ff([)p Fh(s)2114
1342 y Fg(2)2133 1336 y Ff(])g Fd(!)g Fh(Q)p Ff([)p Fd(h)p
Fh(s)2289 1342 y Fg(1)2307 1336 y Fh(;)c(s)2345 1342
y Fg(2)2364 1336 y Fd(i)p Ff(])1263 1398 y(ax)1306 1404
y Fg(3)1324 1398 y Ff(:)41 b Fd(8)p Fh(s)7 b(:)g(s)12
b Fd(\022)g Fh(s)1263 1460 y Ff(ax)1306 1466 y Fg(4)1324
1460 y Ff(:)41 b Fd(8)p Fh(s)1419 1466 y Fg(1)1438 1460
y Fh(;)7 b(s)1476 1466 y Fg(2)1495 1460 y Fh(;)g(s)g(:)g
Fd(h)p Fh(s)1594 1466 y Fg(1)1612 1460 y Fh(;)g(s)1650
1466 y Fg(2)1669 1460 y Fd(i)12 b(\022)f Fh(s)h Fd(!)f
Fh(s)1843 1466 y Fg(1)1874 1460 y Fd(\022)h Fh(s)e Fd(^)e
Fh(s)2002 1466 y Fg(2)2033 1460 y Fd(\022)k Fh(s)290
1519 y(u)314 1525 y Fg(0)344 1519 y Ff(:)f Fh(Q)p Ff([)p
Fh(t)p Ff(])290 1568 y Fh(u)314 1574 y Fg(1)344 1568
y Ff(:)g Fe(leaf)s Ff(\()p Fh(n)p Ff(\))g Fd(\022)h Fh(t)290
1618 y(u)314 1624 y Fg(2)344 1618 y Ff(:)f Fh(Q)p Ff([)p
Fe(leaf)r Ff(\()p Fh(n)p Ff(\)])g Fd(!)g Fh(A)751 1544
y(u)775 1550 y Fg(3)805 1544 y Ff(:)g Fd(h)p Fh(s)863
1550 y Fg(1)882 1544 y Fh(;)c(s)920 1550 y Fg(2)939 1544
y Fd(i)k(\022)h Fh(t)751 1593 y(u)775 1599 y Fg(4)805
1593 y Ff(:)f Fh(Q)p Ff([)p Fh(s)892 1599 y Fg(1)910
1593 y Fh(;)c(s)948 1599 y Fg(2)967 1593 y Ff(])k Fd(!)g
Fh(A)1129 1544 y(u)1153 1550 y Fg(5)1183 1544 y Ff(:)g
Fh(P)6 b Ff([)p Fh(s)1270 1550 y Fg(1)1288 1544 y Ff(])1129
1593 y Fh(u)1153 1599 y Fg(6)1183 1593 y Ff(:)11 b Fh(Q)p
Ff([)p Fh(s)1270 1599 y Fg(1)1289 1593 y Ff(])1434 1544
y Fh(u)1458 1550 y Fg(7)1487 1544 y Ff(:)g Fh(P)6 b Ff([)p
Fh(s)1574 1550 y Fg(2)1593 1544 y Ff(])1434 1593 y Fh(u)1458
1599 y Fg(8)1487 1593 y Ff(:)11 b Fh(Q)p Ff([)p Fh(s)1574
1599 y Fg(2)1593 1593 y Ff(])1738 1544 y Fh(u)1762 1550
y Fg(9)1792 1544 y Ff(:)g Fd(:)p Fh(P)6 b Ff([)p Fh(s)1907
1550 y Fg(1)1925 1544 y Ff(])1738 1593 y Fh(u)1762 1599
y Fg(10)1808 1593 y Ff(:)11 b Fd(:)p Fh(P)6 b Ff([)p
Fh(s)1923 1599 y Fg(2)1941 1593 y Ff(])2042 1544 y Fh(u)2066
1550 y Fg(11)2113 1544 y Ff(:)11 b Fh(Q)p Ff([)p Fh(s)2200
1550 y Fg(1)2218 1544 y Ff(])2042 1593 y Fh(u)2066 1599
y Fg(12)2113 1593 y Ff(:)g Fh(Q)p Ff([)p Fh(s)2200 1599
y Fg(2)2218 1593 y Ff(])p eop
end
userdict /end-hook known{end-hook}if
%%EndDocument
@endspecial 844 3378 a Fr(F)n(igur)n(e)g(0.)891 3108
y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.26)p
eop
%%Page: 27 27
27 26 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(27)243 404 y Fx(The)11
b(e)o(xtr)o(acted)g(pr)n(ogr)o(am)243 457 y Fz(From)h(the)f(translated)
f(proof)g(we)i(obtain)e(the)h(follo)o(wing)e(program:)597
553 y Fx(f)d Fu(\()o Fx(t)s Fu(\))48 b(=)i Fx(g)p Fu(\()o
Fx(t)s Fw(;)t Fx(t)s Fu(\))447 618 y Fx(g)p Fu(\()p Fn(leaf)s
Fu(\()p Fx(n)p Fu(\))p Fw(;)t Fx(t)s Fu(\))d(=)i Fx(t)450
683 y(g)p Fu(\()p Fv(h)p Fx(s)527 690 y Fq(1)544 683
y Fw(;)5 b Fx(s)580 690 y Fq(2)598 683 y Fv(i)p Fw(;)t
Fx(t)s Fu(\))48 b(=)i Fi(if)108 b Fx(P)p Fu([)p Fx(s)995
690 y Fq(1)1012 683 y Fu(])800 747 y Fi(then)47 b Fx(g)p
Fu(\()p Fx(s)991 754 y Fq(1)1009 747 y Fw(;)5 b Fx(s)1045
754 y Fq(1)1063 747 y Fu(\))800 812 y Fi(else)62 b(if)107
b Fx(P)p Fu([)p Fx(s)1127 819 y Fq(2)1145 812 y Fu(])948
877 y Fi(then)47 b Fx(g)p Fu(\()p Fx(s)1139 884 y Fq(2)1156
877 y Fw(;)5 b Fx(s)1192 884 y Fq(2)1210 877 y Fu(\))948
942 y Fi(else)62 b Fx(g)p Fu(\()p Fx(s)1140 949 y Fq(1)1157
942 y Fw(;)5 b Fx(g)p Fu(\()p Fx(s)1234 949 y Fq(2)1252
942 y Fw(;)t Fx(t)s Fu(\)\))44 b Fi(fifi)o Fw(:)243 1084
y Fz(6.3.)32 b Fx(Pruning)243 1180 y Fz(The)10 b(idea)g(of)h(Goad')n(s)
e(pruning)g(operation)g(is)h(the)g(follo)o(wing:)e(consider)h(the)h
(construc-)243 1233 y(ti)o(v)o(e)f(proof)g(abo)o(v)o(e)h(obtained)e
(from)j(the)e Fx(A)p Fz(-translation.)f(At)h(man)o(y)h(points)e(of)i
(this)e(proof)243 1287 y(we)16 b(ha)o(v)o(e)g(deri)o(v)o(ed)f(the)g
(formula)h Fx(A)p Fz(.)g(Suppose)f Fx(M)i Fz(is)f(such)f(a)h(subproof)e
(deri)o(ving)g Fx(A)p Fz(,)243 1341 y(and)g(assume)g(that)g
Fx(M)i Fz(contains)d(again)h(a)h(subproof)e Fx(M)1138
1325 y Fp(0)1163 1341 y Fz(deri)o(ving)g Fx(A)p Fz(,)i(too.)f(No)o(w)f
(it)h(is)243 1395 y(tempting)h(to)g(simplify)g(the)g(whole)h(proof)f
(by)h(replacing)f Fx(M)j Fz(by)d(the)h(smaller)g(proof)243
1449 y Fx(M)283 1433 y Fp(0)294 1449 y Fz(.)d(Ho)o(we)o(v)o(er)n(,)h
(in)e(general)h(this)f(will)g(be)h(impossible)e(since)i
Fx(M)1276 1433 y Fp(0)1300 1449 y Fz(may)g(depend)g(on)g(an)243
1503 y(assumption)8 b Fx(u)483 1487 y Fl(B)515 1503 y
Fz(which)h(is)g(bound)g(in)g Fx(M)j Fz(by)d(an)h Fv(!)p
Fz(-introduction.)e(In)i Fy(l)p Fz(-term)h(notation)758
1594 y Fx(M)h Fu(=)e Fx(M)r Fu([)p Fy(l)p Fx(u)954 1575
y Fl(B)976 1594 y Fx(M)1016 1575 y Fp(0)1027 1594 y Fu([)p
Fx(u)1063 1575 y Fl(B)1084 1594 y Fu(]])p Fw(:)243 1684
y Fz(No)o(w)k(assume)h(that)g(we)g(are)h(interested)e(only)g(in)g
(trees)g Fx(t)k Fz(satisfying)13 b Fx(P)p Fu([)o Fx(t)s
Fu(])h Fz(and)h(some)243 1738 y(additional)9 b(condition)e
Fx(C)q Fu([)o Fx(t)s Fu(])p Fz(,)k(i.e.)g(we)h(look)e(for)h(a)h(proof)f
(of)692 1828 y Fv(8)o Fx(t)d Fw(:)d Fx(P)p Fu([)o Fx(t)s
Fu(])h Fv(^)t Fx(C)q Fu([)o Fx(t)s Fu(])i Fv(!)j(9)1025
1810 y Fp(\003)1044 1828 y Fx(s)5 b(A)1095 1835 y Fq(0)1113
1828 y Fu([)o Fx(t)s Fw(;)g Fx(s)p Fu(])243 1919 y Fz(and)11
b(e)o(xpect)h(from)g(this)f(hopefully)f(simpler)h(proof)g(a)h
(hopefully)e(optimized)h(program)243 1973 y(adapted)k(to)g(the)h
(restriction)c Fx(C)q Fu([)o Fx(t)s Fu(])p Fz(.)j(Such)h(a)g
(simpli\002ed)f(proof)g(may)h(be)g(obtained)f(as)243
2027 y(follo)o(ws:)10 b(in)h(the)h(subproof)f Fx(M)732
2010 y Fp(0)743 2027 y Fu([)p Fx(u)779 2010 y Fl(B)801
2027 y Fu(])g Fz(considered)h(abo)o(v)o(e)g(we)g(replace)h(the)e
(assumption)243 2081 y Fx(u)266 2064 y Fl(B)304 2081
y Fz(by)16 b(a)g(proof)g Fx(K)550 2064 y Fl(B)589 2081
y Fz(which)f(uses)h(the)f(additional)f(assumption)f Fx(C)q
Fu([)o Fx(t)s Fu(])i Fz(\(and)h(possibly)243 2135 y(other)e
(assumptions)f(v)o(alid)g(at)i(the)f(particular)g(occurrence)h(of)g
Fx(u)p Fz(\),)g(and)f(then)g(replace)243 2188 y(the)9
b(modi\002ed)g(proof)g Fx(M)r Fu([)p Fy(l)p Fx(u)688
2172 y Fl(B)709 2188 y Fx(M)749 2172 y Fp(0)760 2188
y Fu([)p Fx(K)806 2172 y Fl(B)828 2188 y Fu(]])f Fz(by)h
Fx(M)957 2172 y Fp(0)968 2188 y Fu([)p Fx(K)1014 2172
y Fl(B)1036 2188 y Fu(])p Fz(.)g(Of)h(course,)f(there)g(is)g(no)g
(guarantee)243 2242 y(that)g Fx(M)361 2226 y Fp(0)372
2242 y Fu([)p Fx(K)418 2226 y Fl(B)440 2242 y Fu(])h
Fz(is)g(indeed)f(simpler)h(than)f Fx(M)r Fu([)p Fy(l)p
Fx(u)971 2226 y Fl(B)993 2242 y Fx(M)1033 2226 y Fp(0)1044
2242 y Fu([)p Fx(u)1080 2226 y Fl(B)1101 2242 y Fu(]])p
Fz(,)h(b)o(ut)g(in)g(most)f(cases)i(it)e(will)g(be.)301
2296 y(In)17 b(the)g(follo)o(wing)e(we)j(will)e(consider)h(three)g
(pruning)f(conditions)d Fx(C)1454 2303 y Fq(1)1472 2296
y Fu([)o Fx(t)s Fu(])p Fz(,)i Fx(C)1568 2303 y Fq(2)1586
2296 y Fu([)o Fx(t)s Fu(])p Fz(,)241 2350 y Fx(C)270
2357 y Fq(3)288 2350 y Fu([)o Fx(t)s Fu(])p Fz(,)g(and)g(study)e(their)
i(ef)o(fect)g(on)g(the)g(proof)f(and)h(the)g(e)o(xtracted)g(program.)h
(It)f(will)243 2404 y(turn)10 b(out)h(that)f(not)g(only)g(are)i(the)f
(ne)o(w)g(programs)g(simpler)f(than)h(the)f(one)h(in)g(6.2.4,)g(b)o(ut)
243 2458 y(the)o(y)e(also)g(yield)g(dif)o(ferent)h(results.)e(This)h
(sho)o(ws)g(that)g(it)g(is)g(essential)g(that)g(the)g(pruning)243
2512 y(operation)j(is)g(done)h(on)f Fx(pr)n(oofs)p Fz(,)g(since)h
(optimized)f Fx(pr)n(ogr)o(ams)f Fz(will)g(always)h(compute)243
2566 y(the)f(same)g(result)g(on)g(the)g(restricted)f(inputs.)891
3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i(p.27)p
eop
%%Page: 28 28
28 27 bop 243 277 a Fz(28)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y Fx(F)n(irst)e(e)o(xample)243
457 y Fz(Assume)i(we)g(enrich)g(our)g(speci\002cation)f(by)h(the)g
(additional)e(information)533 539 y Fx(C)562 546 y Fq(1)581
539 y Fu([)o Fx(t)s Fu(])g Fz(:)p Fv(\021)h(8)p Fx(s)732
546 y Fq(1)750 539 y Fw(;)5 b Fx(s)786 546 y Fq(2)809
539 y Fw(:)g Fv(h)p Fx(s)863 546 y Fq(1)881 539 y Fw(;)g
Fx(s)917 546 y Fq(2)935 539 y Fv(i)10 b(\022)f Fx(t)k
Fv(!)d Fx(P)p Fu([)p Fx(s)1147 546 y Fq(1)1165 539 y
Fu(])g Fv(!)g Fx(P)p Fu([)p Fx(s)1302 546 y Fq(2)1320
539 y Fu(])p Fw(;)243 621 y Fz(i.e.)h(if)g Fx(P)g Fz(holds)f(for)h(a)g
(left)g(subtree,)f(than)h(also)f(for)h(the)g(right)e(one.)j(\(The)e
(choice)h(of)g(the)243 675 y(some)o(what)i(arbitrary)g(formula)f
Fx(C)795 682 y Fq(1)827 675 y Fz(is)h(moti)o(v)o(ated)f(by)h(the)h(ef)o
(fect)g(it)f(later)g(will)g(ha)o(v)o(e.\))243 729 y(Remember)e(that)e
(in)g(the)g(constructi)o(v)o(e)f(proof)h(described)g(informally)g(in)g
(6.2.3)g(we)h(had)243 783 y(a)j Fx(case)h Fv(:)p Fx(P)p
Fu([)p Fx(s)460 790 y Fq(1)478 783 y Fu(])f Fz(with)f(the)h(goal)g
Fx(A)p Fz(.)g(Then)g(there)g(was)g(a)h Fx(sub-case)e
Fv(:)p Fx(P)p Fu([)p Fx(s)1401 790 y Fq(2)1419 783 y
Fu(])h Fz(again)g(with)243 837 y(goal)d Fx(A)p Fz(.)i(In)f(this)f
(sub-case)h(we)g(used)g(the)g(assumption)e Fv(:)p Fx(P)p
Fu([)p Fx(s)1210 844 y Fq(1)1228 837 y Fu(])p Fz(.)j(This)e(assumption)
f(can)243 891 y(no)o(w)i(be)h(pro)o(v)o(ed)g(using)e(the)i(pruning)e
(condition)e Fx(C)1066 898 y Fq(1)1084 891 y Fu([)o Fx(t)s
Fu(])j Fz(and)h(the)f(assumptions)f Fv(:)p Fx(P)p Fu([)p
Fx(s)1607 898 y Fq(1)1625 891 y Fu(])243 945 y Fz(and)k
Fv(h)p Fx(s)359 952 y Fq(1)377 945 y Fw(;)5 b Fx(s)413
952 y Fq(2)431 945 y Fv(i)11 b(\022)g Fx(t)18 b Fz(which)13
b(are)i(both)e(v)o(alid)h(at)g(that)f(point.)h(This)f(means)i(that)e
(the)h(case)243 999 y(analysis)h(according)h(to)f(whether)h
Fx(P)p Fu([)p Fx(s)875 1006 y Fq(1)893 999 y Fu(])g Fz(holds)f(can)i
(be)f(remo)o(v)o(ed)i(from)f(the)f(proof,)243 1053 y(since)10
b(we)g(ha)o(v)o(e)h(sho)o(wn)e(that)h(in)g(fact)g Fv(:)p
Fx(P)p Fu([)p Fx(s)925 1060 y Fq(1)943 1053 y Fu(])h
Fz(holds.)e(In)i(the)f(proof)g(tree)h(the)f(simpli\002ed)243
1107 y(proof)i(is)h(obtained)e(by)i(replacing)f(the)h(subproof)e
Fx(M)k Fz(by)d Fx(M)1202 1090 y Fp(0)1213 1107 y Fz(,)i(where)f(the)f
(assumption)243 1161 y Fx(u)266 1168 y Fq(9)296 1161
y Fz(is)e(replaced)i(by)e(a)i(proof)f(using)d Fx(C)838
1168 y Fq(1)856 1161 y Fu([)o Fx(t)s Fu(])p Fz(,)j Fx(u)942
1168 y Fq(3)971 1161 y Fz(and)g Fx(u)1071 1168 y Fq(10)1106
1161 y Fz(.)301 1215 y(The)g(program)g(e)o(xtracted)h(from)f(the)g
(simpli\002ed)f(proof)h(is)g(the)g(follo)o(wing:)684
1302 y Fx(f)6 b Fu(\()o Fx(t)s Fu(\))49 b(=)h Fx(g)p
Fu(\()o Fx(t)s Fw(;)t Fx(t)s Fu(\))535 1367 y Fx(g)p
Fu(\()p Fn(leaf)r Fu(\()p Fx(n)p Fu(\))p Fw(;)t Fx(t)s
Fu(\))e(=)h Fx(t)537 1432 y(g)p Fu(\()p Fv(h)p Fx(s)614
1439 y Fq(1)632 1432 y Fw(;)5 b Fx(s)668 1439 y Fq(2)686
1432 y Fv(i)p Fw(;)t Fx(t)s Fu(\))48 b(=)i Fi(if)107
b Fx(P)p Fu([)p Fx(s)1082 1439 y Fq(1)1100 1432 y Fu(])888
1496 y Fi(then)47 b Fx(g)p Fu(\()p Fx(s)1079 1503 y Fq(1)1096
1496 y Fw(;)5 b Fx(s)1132 1503 y Fq(1)1150 1496 y Fu(\))888
1561 y Fi(else)62 b Fx(g)p Fu(\()p Fx(s)1080 1568 y Fq(1)1098
1561 y Fw(;)5 b Fx(g)p Fu(\()p Fx(s)1175 1568 y Fq(2)1192
1561 y Fw(;)t Fx(t)s Fu(\)\))44 b Fi(fi)p Fw(:)243 1692
y Fx(Second)10 b(e)o(xample)243 1746 y Fz(Ne)o(xt)h(consider)710
1800 y Fx(C)739 1807 y Fq(2)758 1800 y Fu([)o Fx(t)s
Fu(])e Fz(:)p Fv(\021)h(8)p Fx(s)5 b Fw(:)g Fx(s)k Fv(\022)h
Fx(t)i Fv(!)f Fx(P)p Fu([)p Fx(s)p Fu(])p Fw(:)243 1870
y Fz(This)f(has)h(an)h(e)o(xtreme)g(ef)o(fect)g(on)f(the)g(proof,)h
(since)f(already)g(the)g(outer)g(case)h(analysis)243
1924 y(on)j Fx(P)p Fu([)p Fx(s)363 1931 y Fq(1)380 1924
y Fu(])g Fz(is)g(decided)g(positi)o(v)o(ely)m(.)e(Hence)i(we)h(get)f(a)
g(proof)g(without)e(case)j(analysis.)243 1978 y(This)d(means)i(that)e
(in)h(the)g(proof)g(tree)h(we)g(replace)f(the)g(subproof)f
Fx(M)k Fz(by)d Fx(M)1481 1962 y Fp(00)1501 1978 y Fz(,)g(where)243
2032 y(the)9 b(assumption)e Fx(u)547 2040 y Fq(5)575
2032 y Fz(is)h(replaced)i(by)e(a)i(proof)f(using)d Fx(C)1105
2039 y Fq(2)1123 2032 y Fu([)o Fx(t)s Fu(])p Fz(,)j Fx(u)1207
2039 y Fq(3)1234 2032 y Fz(and)g(ax)1352 2039 y Fq(4)1371
2032 y Fz(.)h(The)f(e)o(xtracted)243 2086 y(program)i(is)g(simply)832
2174 y Fx(f)6 b Fu(\()o Fx(t)s Fu(\))49 b(=)h Fx(g)p
Fu(\()o Fx(t)s Fw(;)t Fx(t)s Fu(\))683 2238 y Fx(g)p
Fu(\()p Fn(leaf)r Fu(\()p Fx(n)p Fu(\))p Fw(;)t Fx(t)s
Fu(\))e(=)h Fx(t)685 2303 y(g)p Fu(\()p Fv(h)p Fx(s)762
2310 y Fq(1)780 2303 y Fw(;)5 b Fx(s)816 2310 y Fq(2)834
2303 y Fv(i)p Fw(;)t Fx(t)s Fu(\))48 b(=)i Fx(g)p Fu(\()p
Fx(s)1095 2310 y Fq(1)1113 2303 y Fw(;)5 b Fx(s)1149
2310 y Fq(1)1167 2303 y Fu(\))p Fw(:)891 3108 y Ft(Minlog7.tex;)17
b(28/04/1998;)h(12:50;)i(p.28)p eop
%%Page: 29 29
29 28 bop 426 277 a FC(PR)n(OGRAM)10 b(DEVELOPMENT)i(IN)e(THE)i(M)r(I)r
(N)r(L)r(O)r(G)g(SYSTEM)138 b Fz(29)243 404 y Fx(Thir)n(d)10
b(e)o(xample)243 457 y Fz(Our)h(last)f(pruning)g(condition)f(is)727
557 y Fx(C)756 564 y Fq(3)785 557 y Fz(:)p Fv(\021)h(8)p
Fx(s)5 b Fw(:)g Fv(:)p Fx(P)p Fu([)p Fx(s)p Fu(])k Fv(!)h
Fx(Q)p Fu([)p Fx(s)p Fu(])243 657 y Fz(which)f(is)h(in)g(fact)g(an)h(e)
o(xtra)f(condition)f(on)h Fx(P)p Fz(.)g(W)l(e)h(look)e(again)h(at)g
(the)h Fx(case)f Fv(:)p Fx(P)p Fu([)p Fx(s)1531 664 y
Fq(1)1549 657 y Fu(])g Fz(and)243 711 y(therein)e(at)h(the)g
Fx(sub-case)g Fv(:)p Fx(P)p Fu([)p Fx(s)743 718 y Fq(2)761
711 y Fu(])p Fz(.)g(T)l(o)g(pro)o(v)o(e)g Fx(A)g Fz(we)h(used)e(both)g
(induction)f(hypotheses,)243 765 y Fx(B)p Fu([)p Fx(s)302
772 y Fq(1)319 765 y Fu(])14 b Fz(and)g Fx(B)p Fu([)p
Fx(s)485 772 y Fq(2)503 765 y Fu(])p Fz(.)g(W)l(e)h(ended)f(up)g(in)g
(a)g(situation)e(where)i(we)h(had)f(to)f(pro)o(v)o(e)i
Fx(A)f Fz(under)243 819 y(the)9 b(e)o(xtra)h(assumptions)e
Fx(Q)p Fu([)p Fx(s)707 826 y Fq(1)725 819 y Fu(])h Fz(\(from)h(ih)896
826 y Fq(1)914 819 y Fz(\))g(and)g Fx(Q)p Fu([)p Fx(s)1079
826 y Fq(2)1097 819 y Fu(])f Fz(\(from)h(ih)1268 826
y Fq(2)1286 819 y Fz(\).)h(No)o(w)e(from)h Fv(:)p Fx(P)p
Fu([)p Fx(s)1607 826 y Fq(1)1625 819 y Fu(])243 873 y
Fz(and)f Fv(:)p Fx(P)p Fu([)p Fx(s)407 880 y Fq(2)425
873 y Fu(])h Fz(and)g(the)f(pruning)g(condition)d Fx(C)950
880 y Fq(3)978 873 y Fz(we)k(can)h Fx(pr)n(ove)e(Q)p
Fu([)p Fx(s)1290 880 y Fq(1)1307 873 y Fu(])h Fz(and)g
Fx(Q)p Fu([)p Fx(s)1470 880 y Fq(2)1487 873 y Fu(])p
Fz(.)g(Hence)243 927 y(we)k(do)h(not)e(need)i(to)f(use)g(the)g
(induction)f(hypotheses)f(at)i(that)g(point.)g(F)o(or)h(the)f(proof)243
981 y(tree)d(this)g(means)g(that)g(the)g(subproof)f Fx(N)15
b Fz(is)c(replaced)g(by)g Fx(N)1189 964 y Fp(0)1200 981
y Fz(,)h(where)g(the)f(assumptions)243 1034 y Fx(u)266
1041 y Fq(11)315 1034 y Fz(and)k Fx(u)419 1041 y Fq(12)468
1034 y Fz(are)g(replaced)g(by)f(a)h(proof)f(using)d Fx(C)1055
1041 y Fq(3)1074 1034 y Fz(,)j Fx(u)1122 1041 y Fq(9)1156
1034 y Fz(and)g Fx(u)1259 1041 y Fq(10)1294 1034 y Fz(.)h(The)f(ef)o
(fect)h(on)f(the)243 1088 y(e)o(xtracted)d(program)g(is)g(that)g(the)g
(nested)f(recursi)o(v)o(e)h(call)g(disappears:)699 1194
y Fx(f)6 b Fu(\()o Fx(t)s Fu(\))49 b(=)h Fx(g)p Fu(\()o
Fx(t)s Fw(;)t Fx(t)s Fu(\))550 1258 y Fx(g)p Fu(\()p
Fn(leaf)r Fu(\()p Fx(n)p Fu(\))p Fw(;)t Fx(t)s Fu(\))e(=)h
Fx(t)552 1323 y(g)p Fu(\()p Fv(h)p Fx(s)629 1330 y Fq(1)647
1323 y Fw(;)5 b Fx(s)683 1330 y Fq(2)701 1323 y Fv(i)p
Fw(;)t Fx(t)s Fu(\))48 b(=)i Fi(if)107 b Fx(P)p Fu([)p
Fx(s)1097 1330 y Fq(1)1115 1323 y Fu(])903 1388 y Fi(then)46
b Fx(g)p Fu(\()p Fx(s)1093 1395 y Fq(1)1111 1388 y Fw(;)5
b Fx(s)1147 1395 y Fq(1)1165 1388 y Fu(\))903 1453 y
Fi(else)62 b(if)107 b Fx(P)p Fu([)p Fx(s)1230 1460 y
Fq(2)1247 1453 y Fu(])1051 1517 y Fi(then)46 b Fx(g)p
Fu(\()p Fx(s)1241 1524 y Fq(2)1259 1517 y Fw(;)5 b Fx(s)1295
1524 y Fq(2)1313 1517 y Fu(\))1051 1582 y Fi(else)60
b Fx(t)48 b Fi(fifi)p Fw(:)671 1802 y Fz(AC)r(K)r(N)r(OW)r(L)r(E)r(D)r
(G)r(E)r(M)r(E)r(N)r(T)r(S)243 1916 y(W)l(e)14 b(are)f(grateful)g(to)g
(Felix)f(Joachimski,)g(Karl-Heinz)h(Niggl)f(and)h(Klaus)f(W)l(eich)i
(for)243 1970 y(their)f(contrib)o(utions)f(to)h(the)i(M)r
FA(I)r(N)r(L)r(O)r(G)j Fz(system)c(which)f(were)h(used)g(in)f(man)o(y)i
(places)243 2024 y(of)c(this)f(presentation.)813 2257
y(R)r FA(E)r(F)r(E)r(R)r(E)r(N)r(C)s(E)r(S)243 2367 y
FC(Ber)o(ger)n(,)j(U.:)g(1993a,)g(`Program)f(e)o(xtraction)h(from)f
(normalization)f(proofs'.)22 b(In:)12 b(M.)h(Bezem)276
2417 y(and)d(J.)h(Groote)f(\(eds.\):)h Fr(T)m(yped)g(Lambda)e(Calculi)g
(and)h(Applications)p FC(,)f(V)-5 b(ol.)9 b(664)h(of)g
Fr(Lectur)n(e)276 2467 y(Notes)g(in)g(Computer)f(Science)p
FC(.)j(pp.)e(91\226106.)243 2516 y(Ber)o(ger)n(,)i(U.:)f(1993b,)g(`T)m
(otal)f(Sets)i(and)f(Objects)g(in)g(Domain)g(Theory'.)18
b Fr(Annals)11 b(of)g(Pur)n(e)h(and)276 2566 y(Applied)d(Logic)h
Fb(60)p FC(,)g(91\226117.)891 3108 y Ft(Minlog7.tex;)17
b(28/04/1998;)h(12:50;)i(p.29)p eop
%%Page: 30 30
30 29 bop 243 277 a Fz(30)62 b FC(BENL,)11 b(BERGER,)g(SCHWICHTENBERG,)
f(SEISENBERGER,)h(ZUBER)243 404 y(Ber)o(ger)n(,)h(U.,)g(M.)g(Eberl,)f
(and)h(H.)f(Schwichtenber)o(g:)g(1998,)g(`Normalization)f(by)g(e)o(v)o
(aluation'.)276 453 y(Submitted)j(to:)g(B.)h(M\366ller)f(and)i(J.V)-5
b(.)14 b(T)n(ucker)h(\(eds.\):)f Fr(Pr)n(ospects)h(for)f(har)n(dwar)n
(e)g(founda-)276 503 y(tions.)9 b FC(N)o(AD)n(A)i(v)o(olume,)f
Fr(Lectur)n(e)i(Notes)e(in)f(Computer)h(Science)p FC(.)243
553 y(Ber)o(ger)n(,)15 b(U.)g(and)f(H.)h(Schwichtenber)o(g:)f(1991,)f
(`)m(An)h(in)n(v)o(erse)h(of)f(the)g(e)o(v)o(aluation)f(functional)276
603 y(for)e(typed)f Fa(l)p FC(\226calculus'.)17 b(In:)11
b(R.)g(V)-5 b(emuri)11 b(\(ed.\):)g Fr(Pr)n(oceedings)h(of)e(the)h
(Sixth)g(Annual)f(IEEE)276 653 y(Symposium)f(on)h(Logic)g(in)g
(Computer)f(Science)p FC(.)i(pp.)g(203\226211.)243 702
y(Ber)o(ger)n(,)23 b(U.)g(and)f(H.)h(Schwichtenber)o(g:)e(1995,)h
(`Program)g(Extraction)g(from)g(Classical)276 752 y(Proofs'.)14
b(In:)9 b(D.)i(Lei)o(v)o(ant)f(\(ed.\):)f Fr(Logic)h(and)f
(Computational)d(Comple)o(xity)n(,)k(LCC)f('94)p FC(,)h(V)-5
b(ol.)276 802 y(960)10 b(of)g Fr(Lectur)n(e)h(Notes)f(in)g(Computer)f
(Science)p FC(.)j(pp.)e(77\22697.)243 852 y(Boyer)n(,)j(R.)g(S.)g(and)g
(J.)h(S.)f(Moore:)g(1988,)f Fr(A)h(Computational)d(Logic)i(Handbook)p
FC(,)g(V)-5 b(ol.)12 b(23)h(of)276 902 y Fr(P)m(erspectives)e(in)f
(Computing)p FC(.)j(Academic)f(Press,)f(Inc.)243 951
y(Friedman,)f(H.:)f(1978,)g(`Classically)g(and)g(intuitionist)o(ically)
d(pro)o(v)o(ably)j(recursi)o(v)o(e)h(functions'.)276
1001 y(In:)g(D.)h(Scott)f(and)g(G.)h(M\374ller)f(\(eds.\):)g
Fr(Higher)g(Set)h(Theory)p FC(,)g(V)-5 b(ol.)10 b(669)g(of)g
Fr(Lectur)n(e)i(Notes)e(in)276 1051 y(Mathematics)p FC(.)f(pp.)h
(21\22628.)243 1101 y(Goad,)f(C.)f(A.:)h(1980,)e(`Computational)g(uses)
i(of)f(the)g(manipulation)f(of)h(formal)g(proofs'.)i(Ph.D.)276
1151 y(thesis,)16 b(Stanford)g(Uni)o(v)o(ersity)m(.)34
b(Stanford)16 b(Department)g(of)g(Computer)g(Science)i(Report)276
1201 y(No.)10 b(ST)l(AN\226CS\22680\226819.)243 1250
y(Hayashi,)i(S.:)g(1990,)f(`)m(An)g(introduction)d(to)j(PX'.)20
b(In:)11 b(G.)h(Huet)f(\(ed.\):)h Fr(Logical)e(F)l(oundations)276
1300 y(of)g(Functional)e(Pr)n(ogr)o(amming)p FC(.)15
b(Addison\226W)m(esle)o(y)m(,)10 b(pp.)g(432\226486.)243
1350 y(Kreisel,)g(G.:)g(1959,)f(`Interpretation)f(of)h(analysis)h(by)f
(means)i(of)e(constructi)o(v)o(e)h(functionals)e(of)276
1400 y(\002nite)i(types'.)k(In:)c(A.)g(He)o(yting)g(\(ed.\):)g
Fr(Constructivity)f(in)g(Mathematics)p FC(.)14 b(North\226Holland,)276
1450 y(Amsterdam,)d(pp.)g(101\226128.)243 1499 y(Lei)o(v)o(ant,)h(D.:)g
(1985,)g(`Syntactic)g(T)o(ranslations)f(and)h(Pro)o(v)o(ably)g(Recursi)
o(v)o(e)g(Functions'.)20 b Fr(The)276 1549 y(J)o(ournal)9
b(of)h(Symbolic)g(Logic)f Fb(50)p FC(\(3\),)h(682\226688.)243
1599 y(Miller)n(,)f(D.:)h(1991,)g(`)m(A)f(logic)g(programming)g
(language)h(with)f(lambda\226abstraction,)g(function)276
1649 y(v)o(ariables)k(and)g(simple)g(uni\002cation'.)23
b Fr(J)o(ournal)13 b(of)g(Logic)f(and)h(Computation)d
Fb(1)p FC(\(4\),)j(497\226)276 1699 y(536.)243 1748 y(Nipko)o(w)m(,)f
(T)m(.:)h(1993,)g(`Orthogonal)e(Higher)o(\226Order)h(Re)o(write)g
(Systems)i(are)g(Con\003uent'.)22 b(In:)276 1798 y(M.)11
b(Bezem)g(and)f(J.)h(Groote)f(\(eds.\):)g Fr(T)m(yped)h(Lambda)e
(Calculi)g(and)g(Applications)p FC(,)g(V)-5 b(ol.)9 b(664)276
1848 y(of)h Fr(Lectur)n(e)i(Notes)e(in)f(Computer)h(Science)p
FC(.)h(pp.)f(306\226317.)243 1898 y(Scott,)e(D.:)h(1982,)f(`Domains)g
(for)g(denotational)f(semantics'.)12 b(In:)7 b(E.)j(Nielsen)e(and)h(E.)
g(Schmidt)276 1948 y(\(eds.\):)f Fr(A)o(utomata,)g(Languages)f(and)g
(Pr)n(ogr)o(amming)p FC(,)h(V)-5 b(ol.)8 b(140)g(of)g
Fr(Lectur)n(e)i(Notes)e(in)f(Com-)276 1998 y(puter)j(Science)p
FC(.)i(pp.)e(577\226613.)243 2047 y(T)m(ait,)i(W)l(.)h(W)l(.:)g(1967,)f
(`Intensional)f(Interpretation)f(of)i(Functionals)f(of)h(Finite)f(T)m
(ype)i(I'.)21 b Fr(The)276 2097 y(J)o(ournal)9 b(of)h(Symbolic)g(Logic)
f Fb(32)p FC(\(2\),)h(198\226212.)243 2147 y(T)o(roelstra,)i(A.)h(S.)g
(and)f(D.)h(v)o(an)f(Dalen:)g(1988,)g Fr(Constructivism)f(in)h
(Mathematics.)f(An)i(Intr)n(o-)276 2197 y(duction)p FC(,)g(V)-5
b(ol.)13 b(121,)h(123)f(of)h Fr(Studies)f(in)g(Logic)g(and)g(the)h(F)l
(oundations)d(of)j(Mathematics)p FC(.)276 2247 y(North\226Holland,)8
b(Amsterdam.)243 2296 y(T)n(urner)n(,)i(R.:)e(1991,)g
Fr(Constructive)h(F)l(oundations)d(for)i(functional)f(languages)p
FC(.)j(McGra)o(w\226Hill.)243 2346 y(v)o(an)18 b(de)h(Pol,)f(J.)h(and)g
(H.)g(Schwichtenber)o(g:)f(1995,)g(`Strict)f(functionals)g(for)h
(termination)276 2396 y(proofs'.)j(In:)11 b(M.)i(Dezani-Ciancaglini)e
(and)i(G.)f(Plotkin)f(\(eds.\):)h Fr(T)m(yped)h(Lambda)e(Calculi)276
2446 y(and)f(Applications)p FC(,)e(V)-5 b(ol.)10 b(902)g(of)g
Fr(Lectur)n(e)h(Notes)f(in)g(Computer)f(Science)p FC(.)j(pp.)e
(350\226364.)891 3108 y Ft(Minlog7.tex;)17 b(28/04/1998;)h(12:50;)i
(p.30)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF