(original) (raw)

%!PS-Adobe-2.0 %%Creator: dvips 5.521 Copyright 1986, 1993 Radical Eye Software %%Title: am.dvi %%CreationDate: Thu Apr 4 16:11:02 1996 %%Pages: 23 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments %DVIPSCommandLine: dvips am.dvi %DVIPSSource: TeX output 1994.09.27:1438 %%BeginProcSet: texc.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]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{ rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv} B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore 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 TeXDict begin 39158280 55380996 1000 600 600 (/tmp_mnt/zeus.cwi.nl/zeus/ufs5/ap5/apt/public_html/am.dvi) @start /Fa 1 49 df48 D E /Fb 3 117 df100 D111 D<143C147EA314FE5CA313015CA313035CA313075CA2007FB512FCB6FC15F839000FC000 A2131F5CA3133F91C7FCA35B137EA313FE5BA312015BA312035BA21570000714605B15E0 15C0000F130101C013801403EC070000071306140E5C3803E0783801F1F03800FFC0013F C7FC1E3F7EBD23>116 D E /Fc 3 111 df<137013F0A31300A7EA0F80EA3FC0EA7BE012 6112E3EAC3C0120312071380120F1300131C121FEA1E1813381370EA1FE0EA0FC00E1D7D 9C16>105 D107 D<381F03F8383FCFFC3873DE3E3863F81EEAE3F0EAC3E0EA03C014 3E0007133C1380147CEC7870120F903800F860ECF0E0ECF9C048EB7F80000EEB3F001C12 7D9125>110 D E /Fd 1 50 df<1360EA01E0120F12FF12F11201B3A2387FFF80A2111B 7B9A1C>49 D E /Fe 35 125 df<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F 0013FE485A485AA2485A485AA2485AA25B123F90C7FCA25A127EA312FEA25AAA7EA2127E A3127F7EA27F121F7FA26C7EA26C7E6C7EA26C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8 EB03FC130113001438164272B92C>40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E 6C7E137FA2EB3F80EB1FC0A2EB0FE0A2130714F01303A214F81301A314FCA21300AA1301 A214F8A3130314F0A2130714E0130FA2EB1FC0A2EB3F80EB7F00A213FE485A485A485A48 5AEA3FC0485A48C7FC5A5A1270164279B92C>I<147814FCAF007FB612F0B712F8A46C15 F0C700FCC7FCAF147825267DAB2C>43 DI< 007FB6FCB71280A46C150021067B9B2C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80 EA1F000B0B708A2C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121F EA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>58 D<007FB512E0B612F815 FE816C15C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0A21507ED0FE0ED1FC0ED FF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501ED00FCA216FE167EA616 FE16FC1501ED03F8150FED3FF0007FB612E0B712C01680EDFE006C14F027337FB22C>66 D<903903FE038090390FFF87C0013F13EF4913FF90B6FC4813073803FC0148487E484813 7F49133F4848131FA2485A150F90C7FC5A007EEC078092C7FCA212FE5AA8913803FFF84A 13FCA27E007E6D13F89138000FC0A2007F141F7E7FA26C6C133FA26C6C137F7F6C6C13FF 6C6C5A3801FF076C90B5FC6D13EF6D13CF010F138F903903FE078026337DB22C>71 D<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025337D B22C>76 D79 D86 DI<3A3FFF03FF E048018713F0A36C010313E03A01F800FE006D5B0000130101FE5BEB7E03017F5B133F14 87011F5B14CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2497EA2497F81EB0F CF81EB1FC7EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F157E4848137F8100031580 49131FD87FFEEBFFFCB54813FEA36C486C13FC27337EB22C>II<003FB612C04815E0A4007EC7 EA1FC0153F1680ED7F005D5D4A5A003C1303C75B4A5A140F5D4A5A143F5D4AC7FC5C5C49 5AA2495A495AA2495A131F5C495A137F91C8FC13FE12015B4848EB03C00007EC07E05B48 5A121F5B485A127F90C7FCB7FCA46C15C023337CB22C>I<387FFFFCB512FEA314FC00FC C7FCB3B3B3B512FC14FEA36C13FC17416FB92C>I<387FFFFCB512FEA37EC7127EB3B3B3 387FFFFEB5FCA36C13FC17417DB92C>93 D<3801FFF8000F13FF48804814E0819038C03F F81407EC01FC6C486C7E6CC7FCC8127EA3903801FFFE131F90B5FC1203120F48EBC07E38 3FF800EA7FC090C7FC12FEA25AA36C14FE7E387F8003393FF01FFF6CB612FC6C15FE7E6C 141F3A007FF807FC27247CA32C>97 D<903807FFE0013F13FC497F48B6FC5A4848C6FCEA 0FF8EA1FE049137E4848133C48C9FCA2127E12FEA25AA67EA2127E127F150F6C6CEB1F80 6C7E6D133FD80FF813FF2607FE0313006CB55A6C5C6C6C5B6D13E0010790C7FC21247AA3 2C>99 D101 DI<90390FFC07FC90393FFF1FFE4990B5FC48B7FC5A3A07FE1FFE7F9039 F807F83E3A0FE001FC1C160048486C7EA249137EA46D13FEA26C6C485AA23907F807F8EB FE1F90B55A485C158001BF90C7FCEB8FFC0180C8FCA37F7F6CB512F06C14FF4815C04815 E04815F03A3FC0003FF848C7EA03FC007E140048157EA248153EA36C157EA2007E15FCD8 7F801303D83FE0EB0FF8D81FFEEBFFF06CB612E06C15C0000115006C6C13FC010713C028 377EA32C>I105 D107 D<387FFFE0B57EA37EEA0003B3B3 A5007FB61280B712C0A36C158022337BB22C>I111 D<397FF03FE039FFF8FFFC01 FB7F90B6FC6C158000019038F07FC09138C01FE091380007F049EB03F8A249EB01FCA249 130016FEA2167EA616FEA26D14FC15017FED03F86D1307ED0FF09138C01FE09138F0FFC0 91B51280160001FB5B01F813F8EC3FE091C8FCAD387FFFE0B57EA36C5B27367FA32C>I< 903907FC078090393FFF8FC04913CF48B512EF4814FF3807FE0F380FF801381FE0004913 7F4848133F48C7FC151F127E12FE150F5AA67E151F127E127F153F6C6C137F7F6C6C13FF 380FF0033807FE0F6CB6FC6C14EF6C14CF013F130FEB07FC90C7FCAD0203B5FC4A1480A3 6E140029367DA32C>II<90387FFC700003B512F8120F5A5A387FE01F38FF000312FC481301A36CEB 00F0B41400EA7FF0383FFFC06C13FE6CEBFFC0000314E0C66C13F8010313FC9038000FFE 14010078EB007F00FC143F151F7EA26C143F7F6D13FEEBF80790B512FC15F815E000F814 C039703FFE0020247AA32C>I<130F497EA9007FB6FCB71280A36C150026001F80C7FCB1 ED03C0ED07E0A5ECC00FED1FC090380FF07F91B512806D14006D5B01005BEC3FE0232E7E AD2C>I<3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D13FFEBFF03 6C90B6FC6D15807F6D13CF01070107130029247FA32C>I<3A3FFF83FFF04801C713F8A3 6C018313F03A00FC007E005D90387E01F8013F5BEB1F8390380F87E0ECCFC0903807EF80 EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F 03F0496C7EEB7E00017C137C01FC137E48487F3A7FFF01FFFCB5008313FEA36C010113FC 27247EA32C>120 D<127812FCB3B3B3A9127806416DB92C>124 D E /Ff 2 92 df<0078EF078000FCEF0FC0B3B3B3A36C171FA2007E1880A2007F173FA26C 6CEE7F00A26C6C16FEA26C6C4B5A6D15036C6C4B5A6C6C4B5A01FF153F6C6D4A5A6C01E0 49485AD97FF801075B6DB4013F90C7FC010F90B512FC6D5D010115E06D6C1480020F01FC C8FC020113E03A537B7F45>83 D<007C1A1F00FEF23F80B3B3B3B3A86C1A7FA26C1B00A2 6D61A2003F626D1801A2001F626D18036D1807000F626D180F6C6C4E5A0003626D183F6C 6C4E5A6C6D4D5A6E5E6D6C4C90C7FCD93FF8EE0FFE6D6C4C5A6DB4EE7FF86D01C04A485A 6D01F002075B6D01FE023F5B9028007FFFE003B5C8FC6E90B65A020F16F8020316E00200 1680033F4AC9FC030714F0DB007F90CAFC51747B7F5C>91 D E /Fg 6 107 df0 D<13FE3803FF80000F13E04813F04813F8A24813FC A2B512FEA96C13FCA26C13F8A26C13F06C13E0000313803800FE0017197B9A22>15 D<160E163E16FEED03F8ED0FE0ED3F80EDFE00EC03F8EC0FE0EC3F8002FEC7FCEB03F8EB 0FE0EB3F8001FEC8FCEA03F8EA0FE0EA3F8000FEC9FC12F812FEEA3F80EA0FE0EA03F8EA 00FEEB3F80EB0FE0EB03F8EB00FEEC3F80EC0FE0EC03F8EC00FEED3F80ED0FE0ED03F8ED 00FE163E160E1600AAB712FEA327347AA734>20 D48 D<49B5FC130F133F49C7FCEA01F8485AEA07C0485A48C8FC121E5AA25AA2127012F0A25A B7FCA300E0C8FC7EA212701278A27EA27E121F6C7E6C7EEA03F06C7EEA007F6DB5FC130F 130120277AA12D>50 D<12E0B3B3B3A5033B78AB14>106 D E /Fh 14 119 df48 D<1430147014F013011303EB07E0131FEA01FFEA03F3380003C0A21307A21480A2130FA2 1400A25BA2131EA2133EA2133CA2137CA21378A213F8A25BA21203B512E0A2142678A523 >I81 D<133FEBFFDC3803E1FEEA 07C048485A381F007C121E123E481378A214F812FC485BA21301A200F0EBE0E0130314E1 010713C038F80FC139781FE380383C7DE7391FF0FF00380FC07E1B19789823>97 D100 D<131EA2133EA2131C1300A9EA07E0EA0FF0EA1CF8EA38781278127013F8EAF0F012E1EA 01E0A2120313C0A212071380EA0F871307130FEA1F0E121E131CEA0F3C13F8EA03E01027 7BA615>105 D<140F141FA3141E1400A9EB07E0EB1FF8EB3C78EB783C137013F0EBE07C 1201EBC078C7FC14F8A214F0A21301A214E0A21303A214C0A21307A21480A2130FA21400 A2EA781EEAF83E5B5BEAFFE0EA3F80183282A615>I<3B07C01FC01FC03B1FF0FFF07FF0 3B3CF1F0F8F0F83B387BC07BC07826707F001380017EEB7F00157EEAF0FC4848137C0000 14784901F813F800015E495B160102015C120301C0D9E00313E017C0020314C100070307 13C0018001C01383EF87800207903803CF00000F16FE3B0700038000F833197B9838> 109 D<3907C03F80391FF1FFC0393CF3E3E038387F8100701301EB7E00EB7C01EAF0F812 E0EA00F0140300015C13E014075D12039039C00F8380150315070007011F13009038801E 0F151E6E5A000F14F839070003E021197B9826>II<3901F01F803907FC7FE0390F3DF1 F0380E1FC0001CEB807814005BD83C3E137CEA383C1200017C13FC15F81378A2EBF80115 F013F0EC03E012019038F807C0EC0F809038FC1F003803FE3EEBEFF8EBC7E001C0C7FC12 07A25BA2120FA290C8FC5AEAFFF0A21E247D9823>I<3807C0FE391FF3FF80393CF7C7C0 38387F0338707E07137CA2D8F0F8138000E090C7FCC65AA212015BA312035BA312075BA3 120F6CC8FC1A197B981D>114 DI<3903F003C0380FF807D81E7C 13E0EA3C3C003813031270EB7C01D8F07813C0EAE0F8EA00F014030001148013E0A21407 0003140013C0140EA25CEBE03C00015B6D5A6CB45AEB3F801B197B9820>118 D E /Fi 1 51 df<003FB712FEB9FCA300F0C9120FB3B3A4B9FCA4303079B43E>50 D E /Fj 25 121 df11 D18 D<14FCEB07FF90380F8F8090383E03C0017C13E0EBF801A2EA01F0000314F013E0140300 0714E013C0A21407000F14C01380EC0F80A2001FEB1F00143E6D5AEBE1F8383F7FE0383E 3F8090C8FCA2127E127CA312FC5AA35AA21C257D9822>26 D<90381FFFFE137F48B5FC5A 3907E0FC00380F803EEA1F00003E131EA25A143E12FC5AA2147E147C5A5CA2495A387803 E0387C07C0383E1F80D81FFEC7FCEA07F01F197C9826>I<127C12FEA5127C07077A8614> 58 D<127C12FEA212FFA3127F1203A21207A21206120E120C121C12381270126008127A 8614>I<12E012F812FEEA3F80EA0FE0EA03F8EA00FEEB3F80EB0FE0EB03F8EB00FEEC3F 80EC0FE0EC03F8EC00FEED3F80ED0FE0ED03F8ED00FE163E16FEED03F8ED0FE0ED3F80ED FE00EC03F8EC0FE0EC3F8002FEC7FCEB03F8EB0FE0EB3F8001FEC8FCEA03F8EA0FE0EA3F 8000FEC9FC12F812E027277AA134>62 D65 D<013FB512F816FE903A01FC001F804AEB0FC0EE07E001031403A24A 14F0A2130717E04A130717C0010F140FEE1F804AEB3F0016FE011FEB03F891B512E0A291 388003F8013FEB00FC167E91C7123E163F5BA2137EA213FE167E5B5E12014B5A49495AED 0FC00003EC3F80B600FEC7FC15F02C287CA732>I86 D<903B3FFFE00FFFC0A2010190390003FC006D48EB01 F017C0027F495A4CC7FC91383F800E5E6E6C5A5E020F5BEDE1C0913807E38003F7C8FC15 FE6E5A5D6E7EA2811403EC077F140EEC0C3F02187FEC301F02607F14C049486C7EEB0300 01066D7E5B01386D7E5B01F06D7EEA03E0D80FF0497ED8FFFC90381FFFE0A232287DA736 >88 DI97 D<130F5B5BA3131E90C7FCA8EA07E0EA0FF8EA1C7C12381270126013FCEAE0F812C0 12015B12035BA212075B380FC18013811383001F13005B130EEA0F9C13F8EA03F011277D A617>105 DI<13FC120FA2C65AA21201A25B A21203A25BA21207A2EBC01FEC7F80000FEBF1C0EBC1C7EB838FEB860FEA1F9C01B81380 0170130049C7FC487E13FEEA3EFFEB1F80387E0FC01307007C14C0A200FC13C1158000F8 1383ECC30014CF38F003FEEB00F81A287BA723>I<3B0FC01FE00FF03B1FE07FF03FFC3B 39F1F0F8787E3B30FBC07CE03E3A60FF007DC04990387F801ED861FCEC003ED8C1F8137E 157CEA01F0000302FC137E177C495B17FC000701015CA201C0D9F001133017F0000F0103 157004031360018001E0EBE0E0EFE1C0933801F380010001C0EBFF00EE007E34197D983B >109 D<390FC01FE0391FE07FF03939F1F0F83930FBC07C3860FF005BEA61FCEAC1F8A2 EA01F0000314FC5D5B140100075CA2D9C003136015E0000F15E0020713C0018013C1EDC3 80913803E700010013FEEC00FC23197D9829>I<3901F80FC03903FC3FF039073E78F839 061FE03C000CEBC03EEC801EEB3F001218013E131F1200017E133F153E137CA201FC137E 157C5B15F81201EC01F0EC03E09038FC07C03903FF1F809038F7FE00EBE3F801E0C7FC12 07A25BA2120FA25B121FEAFFF8A22024809822>112 DI<380FC07E391FE1FF803839F7C33930FF07C03860FE0F13FCEA61F800C1 148001F01300000190C7FC1203A25BA21207A25BA2120FA25BA390C8FCA21A197D981F> II<131EA2133EA4137E137CA313FCB512E0A23800F80012015BA312035BA312075B A3120FEB8060A214E0381F81C0EB0180EA0F83EB8F00EA07FEEA01F813247EA319>I<39 07E003C0380FF807D81C7C13E01238127000601303EBFC01D8E0F813C000C013001201EB F0010003148013E0A2140300071400495A1406140E140C3803E01C5C3801F8F06CB45AEB 3F801B197D9821>118 D<9038FC07C03903FF1FF0390F8FBC78391E07F0F8381C03F100 3813E1EA30070070EBC1F0006014E00000EBC000130F5CA3131F91C7FC003C1430127E49 137000FE14E012FC39F87F03C03971EF8780397FC7FF00381F01FC1D197D9826>120 D E /Fk 16 103 df<130E131C1338137813F0EA01E013C01203EA0780A2EA0F00A2121E A2123E123CA35AA412F8A35AA97EA31278A47EA3123E121EA27EA2EA0780A2EA03C01201 13E0EA00F013781338131C130E0F3B7BAB1A>40 D<12E012707E123C7E7E7E1380EA03C0 A2EA01E0A2EA00F0A213F81378A3133CA4133EA3131EA9133EA3133CA41378A313F813F0 A2EA01E0A2EA03C0A2EA078013005A121E5A12385A5A0F3B7CAB1A>I<141CB3A2B81280 A3C7001CC8FCB3A2292B7CA333>43 D<137F3801FFC03807C1F0380F80F8381F007C001E 133C003E133EA2487FA400FC1480AF007C1400A46C133EA2001E133C001F137C6C6C5A38 07C1F03801FFC06C6CC7FC19277DA521>48 D<13381378EA01F8121F12FE12E01200B3AB 487EB512F8A215267BA521>I<48B4FC000713E0381F07F8383C01FC383800FE48137F00 F87F7E6CEB1F80A4127CC7FC143F1500A2147E5CA2495AEB03E0495A495A49C7FC133E13 789038F00180EA01E0EA03C03907800300EA0F00121E003FB5FC5AB55AA319267DA521> II<14381478A214 F81301A213031307130E130C131C13381330136013E0EA01C013801203EA070012065A12 1C5A123012705AB612E0A2C7EAF800A7497E90383FFFE0A21B267EA521>I<000C130C38 0F807CEBFFFC14F05C148001FCC7FC000CC8FCA7EB7F80380DFFE0380FC1F8EB00FC000C 137E143EC7123F801580A3123812FCA41500485B12600070137E6C137C6C5B380F83F038 07FFC0000190C7FC19277DA521>II<007FB7FCB81280A2CBFCABB81280A26C160029117C9633>61 D91 D93 D100 DII E /Fl 38 123 df12 D14 D<150C151C157815F0EC01E0EC03C0EC0780EC0F00141E5C147C 5C5C495A1303495A5C130F49C7FCA2133EA25BA25BA2485AA212035B12075BA2120F5BA2 121FA290C8FCA25AA2123EA2127EA2127CA412FC5AAD1278A57EA3121C121EA2120E7EA2 6C7E6C7EA212001E5274BD22>40 D<140C140E80EC0380A2EC01C015E0A2140015F0A215 78A4157C153CAB157CA715FCA215F8A21401A215F0A21403A215E0A21407A215C0140F15 80A2141F1500A2143EA25CA25CA2495AA2495A5C1307495A91C7FC5B133E133C5B5B485A 12035B485A000EC8FC123C5A5A12C01E527FBD22>I<387FFFF8A2B5FCA214F015057994 1E>45 D<121FEA3F80127F12FFA313007E123C0909778819>I65 D<0103B612FEEFFFC018F0903B0007F8000FF84BEB03FCEF00FE020F 157FF03F804B141F19C0021F150F19E05D1807143F19F05DA2147FA292C8FCA25C180F5C A2130119E04A151FA2130319C04A153FA201071780187F4A1600A2010F16FEA24A4A5A60 011F15034D5A4A5D4D5A013F4B5A173F4A4AC7FC17FC017FEC03F84C5A91C7EA1FC04949 B45A007F90B548C8FCB712F016803C397CB83F>68 D<0103B81280A3903A0007F800014B EB003FF01F00140F845DA2141FA25D180E143FA292388001C0A2027F130395C7FC03005B 16075C160F4A49C8FC167F49B6FCA25E9138FC007E0103143E161E4A131CA20107143C18 704A133818F0010F5E93C7FC4A140160011F1503604A1407A2013F4BC7FC5F4A141E173E 017F157E4C5A91C7120749EC3FF8007F90B6FCB8FC5F39397CB838>I71 D<0103B512FEA390260007FCC7FC5D5D140FA25DA2141FA25DA2143FA25DA2147FA292C8 FCA25CA25CA21301A25CA21303A25CA21307170E5CA2010F151E171C4A143CA2011F1538 17784A147017F0013F140117E04A13031607017FEC0FC0163F91C712FF4901071380007F 90B6FCB8FC17002F397CB834>76 D<0103B612FCEFFF8018E0903B0007F8001FF04BEB07 F8EF01FC140FEF00FE5DA2021F15FFA25DA2143FEF01FE5DA2027F15FC170392C713F8EF 07F05CEF0FE04AEC1FC0EF3F00010115FEEE07F891B612E094C7FCD903FCC9FCA25CA213 07A25CA2130FA25CA2131FA25CA2133FA25CA2137FA291CAFC497E007F13FEB5FCA23839 7CB838>80 D<0007B812E0A25AD9F800EB003F01C049EB0FC048481507D900011403121E 001C5C003C17801403123800785C00701607140700F01700485CA2140FC792C7FC5DA214 1FA25DA2143FA25DA2147FA292C9FCA25CA25CA21301A25CA21303A25CA21307A25CA213 0FA25CEB3FF0B612FCA25D333971B83B>84 D97 D<137FEA1FFFA3C6FC137EA313FE 5BA312015BA312035BA312075BEBE1F8EBE7FE390FFF0F80EBFC0701F813C09038F003E0 EA1FE001C013F01380A2123F1300A214075A127EA2140F12FE4814E0A2141F15C05AEC3F 80A21500147E14FE00785B387C01F8383C03F0383E07E0381F1F806CB4C7FCEA03F81C3A 77B926>I<14FF010313C090380FC1F090383F0070017E13789038FC01F83801F803EA03 F0EA07E0120F01C013F0001F90C7FC485AA2127F90C8FCA35A5AA45AA315301538007C14 78007E14F0003EEB03E0003FEB07C06CEB1F00380FC1FE3803FFF8C613801D2477A326> II<14FF010713C090381FC3E090383F00F001FC1378485A485A1207485A4913F8001F14 F01401393F8007E0EC1FC0397F81FF809038FFFC0014C090C8FC5A5AA65A007C1430007E 14381578003E14F0EC03E06CEB07C0390F801F003807C1FE3803FFF8C613801D2477A326 >IIIII<151E153F157FA3157E153C1500ACEC3F80EC7FC0903801F1E0903803C1F0EC81 F8EB0701130F130E131EEB1C03133C013813F0A2EB0007A215E0A2140FA215C0A2141FA2 1580A2143FA21500A25CA2147EA214FEA25CA21301A25CA213035C123C387E07E0A238FE 0FC0495A49C7FCEA78FEEA3FF8EA1FC0204783B619>I108 D<2703F001FEEB0FF03C0FF807FF807FF83C0E3C1F 07C0F87E3C1C3E3C03E1E03E263C3F789038F3803F0038903AE001F7001F007815FE0070 13C002805B494848485B12F0D8E07E5CA2D800FE01075C187E495CA20001020F14FE6049 5C17010003021F5CA249DA8003131C18F00007023F153C0507133849020013E01978000F 4A1570F0C0F049017E15E0F0C1C0943803E78049017C903801FF0090C70078EB00FC3E24 79A344>I<3903F001FE390FF80FFF3A0E3C1F0FC0391C3E3C07263C3F707F0038EBE003 007813C01270148090387F000712F0EAE07EA2D800FE130F5E5BA20001141F5E5B153F00 0392C7FCA24990387F0380157E0007150703FE13004913FC5E000F150EEDF81E49141C5E ED7CF049EB3FE090C7EA1F80292479A32F>I<14FF010713C090380FC3F090383F00F801 7E13FC49137C4848137E4848133E4848133F120F5B121F485A157F127F90C7FCA215FF5A 4814FEA2140115FC5AEC03F815F0140715E0007CEB0FC0007EEB1F80003EEB3F00003F13 7E6C5B380FC3F03803FFE0C690C7FC202477A32A>I<90390FC01FC090393FE07FF09039 38F0F8F8903970F9E07C9038F0FFC049EB803E000114004948133F5C13C11203EB81F8A2 D80003147FA25CA2010714FFA24A13FEA2010F130116FC14C0ED03F8131F16F091388007 E0A290393FC00FC0ED1F80ED3F00ECE07E90387F70FCEC3FF090387E1FC091C8FC13FEA2 5BA21201A25BA21203A25B487EB512C0A328347FA32A>I<903801F80790380FFE0F9038 1F8F1F90387E03BE01FC13FE3801F801EA03F0000714FCEBE000485A001F130115F8EA3F 80A2007F1303010013F0A34813074814E0A3140F4814C0A3141F1580143F007C137F14FF 6C481300EA1E03381F0FBF3807FE7F3801F87EC7FCA214FE5CA313015CA313035C497E48 B512C05AA2203477A326>I<3903F007F0390FF81FFC390E3C3C1F381C3E70393C3FE03F 003801C013800078EC7F0000701380140049133C00F091C7FCEAE07EA2EA00FEA25BA212 01A25BA21203A25BA21207A25BA2120FA25BA35B90C9FC212479A323>II< EB0780EB0FC0A3131FA21480A2133FA21400A25BA2137E007FB5FCA2B6FC3800FC00A212 01A25BA21203A25BA21207A25BA2120FA25BA2121FA2EB801CA2003F133C1438EB007814 7014F0EB01E014C0381F0780380F0F00EA07FEEA03F8183379B21C>I<01FCEB01E0D803 FE1303D8079F1307380E0F80121C003C140FEA381F007815C01270013F131F00F0130000 E015805BD8007E133FA201FE14005B5D120149137EA215FE120349EBFC0EA20201131E16 1C15F8A20203133C1638000101071378D9F81E13703A00FC3C78E090387FF83F90391FE0 1F80272479A32D>I<01FC131ED803FE133FD8079F5B260E0F801380121C123CD8381F13 3F0078141F1270013F130F00F00100130012E05BEA007E150E13FE5B151E0001141C5BA2 153C000314385B5DA25DA24A5AA20001495A4AC7FC3800F80EEB7C3CEB3FF8EB0FE02124 79A326>I<01FC903803C00FD803FE0107EB1F80D8079F010F133F260E0F8015C0121C00 3C141FD8381FEC801F0078160F1270013F013F130700F001000100138012E05BD8007E5B 037E140013FE5B03FE5B00014A130E5BA2171E00030101141C01F05B173C1738A25F1403 5F00010107130101F801FC5B000090390E7C038090277E3E3F0FC7FC90393FF81FFE9039 0FF007F8322479A337>I<90390FE00FE090393FF83FF89039787C787C9038F03EF03A01 C01EE0FC3A03801FC0FE0007ECC1FC01001381120E91383F80F0001E91C7FC121CA2C75A A2147EA214FEA25CA21301A24A1370A2010314F0001E15E0007F5BED01C00107130300FE 1580D87E0EEB0700397C1EF81E90383C7C3C393FF83FF8390FE00FE027247CA327>I<01 FCEB01E0D803FE1303D8079F1307380E0F80121C003C140FD8381F14C012781270013F13 1F00F00100138012E05BD8007E133F160013FE5B5D0001147E5BA215FE00035C5BA21401 5DA314035D00011307EBF81F3800FC3F90387FFFE0EB1FE7EB0007140F5DA20004131F00 3F5C4849C7FCA2147E5C007E5B387001F0387807E0383E1F806CB4C8FCEA07F8233479A3 28>I<903907E0038090380FF007D93FF81300496C5AECFE1E90B512FC3901F81FF89038 E00078495B4A5AC7485A4A5A4AC7FC141E5C5C5C495A495A495A49C8FC131E5B49131C5B 4848133C48485B485A4848485AEBFE0748B55AD83E1F5B486C5BD8780790C7FC486C5A38 E001F821247BA322>I E /Fm 42 122 df<9239FFC00FE002039038F03FF0913A0FE0F8 7C78DA1F80EBF8F8030113F9023EEBF9F1A2913A7C00F1F0F0040313005FA214FC5C1607 5FA21301017FB71280A2903B01F0000F8000A213035CA2161F94C7FC13075CA25E163EA2 130F5C167E167CA2131F91C7FCA216FC5E5B133E15015EA25BA24B5AA22678F8785B00FC EBFC0701F05C4BC8FCD8FDE0131E39FBC0F87C397F807FF8393F001FE0353B81AD2C>11 D39 DI<14C080147080143C14 1C141E140E140FA2801580A5EC03C0A61407A41580A3140FA315005CA3141E143EA2143C 147CA2147814F85C13015C13035C13075C130F91C7FC131E133E133C5B5B485A485A5B48 C8FC121E5A5A5A12C01A437EB11D>I<123E127F12FFA412FE127C0808788716>46 D<1406140E141E143C147C14FC1303EB0FF8137EEA01F9EA00C1EB01F0A21303A214E0A2 1307A214C0A2130FA21480A2131FA21400A25BA2133EA2137EA2137CA213FCA25BA2EA03 FCB512F0A2172C78AB24>49 D51 D56 DI<16E015011503 A2150782150F151FA2153BA21573A215E3140115C391380383F81581EC0701140F140E14 1CA214381478147014E082903801C000A249B5FC5B91C7FC130EA25B133C1338498001F0 147E5B1201000315FED80FF0497ED8FFFE011F13F0A22C2E7CAD35>65 D<4AB41330021FEBC07091397F01F0F0903901FC0079D903F0133DD90FC0EB1FE0494813 0F49C7FC017E14074915C0485A485A5B00071680485AA2485A170048CAFCA25A127EA312 FE5AA5163848157816707E16F0007C5D15014B5A6C5D4BC7FC6C141E6C6C5B6C6C5B6C6C 485A3901F80FC026007FFFC8FCEB0FF82C2F75AD33>67 D<011FB612F8A2903900FE0007 16014A13001778130117705CA21303A25CED038001071307170002E090C7FCA2010F5B5D ECC03EECFFFE5BECC07EEC803C151C013F133CA29139003801C0A249140303001380017E 1407170001FE5C160E49141E5E12015E49EB01F815030003EC1FF0B7FC5E2D2D7BAC30> 69 D<011FB612F0A2903900FE000F16034A13011600130117E05CA21303A25CED038001 071307170002E090C7FCA2010F5B5DECC03EECFFFE5BECC07EEC803C151C013F133CA2EC 0038A25B92C8FC137EA213FEA25BA21201A25BA21203B512F0A22C2D7BAC2E>I<903B1F FFF81FFFF8A2010090C713004A5C4A5CA2010114015F5CA2010314035F5CA2010714075F 5CA2010F140F5F5C91B6FC5B9139C0001F805CA2013F143F94C7FC91C7FCA2495C167E13 7EA201FE14FE5E5BA2000114015E5BA200031403B500C0B512C0A2352D7BAC35>72 D<90383FFFFCA2010013005C5CA21301A25CA21303A25CA21307A25CA2130FA25CA2131F A25CA2133FA291C7FCA25BA2137EA213FEA25BA21201A25BA21203B512E0A21E2D7CAC1B >I<91B512E0A2913801FC00A25DA214035DA314075DA3140F5DA3141F5DA3143F92C7FC A35C147EA314FEA25CA2EA3C01127E00FE5BA2495A12FC48485A38E00FC06C485AD87C7F C8FCEA3FFCEA0FF0232E79AC25>I<90381FFFFEA2010090C7FC5C5CA21301A25CA21303 A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C7121CA249143C1638017E147816 7001FE14F0A249EB01E0A200011403ED07C049130FED3F800003EB01FFB7FC1600262D7B AC2D>76 DI<011FB512 F816FF903A00FE001F80EE07C04AEB03E017F001011401A25C17F81303EE03F05CA20107 15E016074A14C0EE0F80010FEC1F00163E4A5BED03F091B512C04949C7FC0280C8FCA313 3F91C9FCA35B137EA313FE5BA312015BA21203B512C0A22D2D7BAC30>80 D<91381FE01891387FFC38903901F83E78903803C00F9039078007F890390F0003F0131E 491301A24914E0A313F816C0A292C7FC7F7F6D7EEB7FF014FF6D13C06D13F06D7F130390 38007FFC14071400157EA2153EA2001C143CA3157C003C1478A25DA2007E495A4A5A007F 495A6D48C7FC38F3F03E38E0FFF838C03FE0252F7AAD28>83 D<000FB712F0A23A1FE00F E00701801401D81E0001C013E0481500141F12380078EC8001A20070013F14C012F04814 00A25CC791C7FC147EA214FEA25CA21301A25CA21303A25CA21307A25CA2130FA25CA213 1FA25C133F497E007FB57EA22C2D74AC33>I97 DII<15FC141FA21400A215F8A21401A215F0A21403A215E0A21407 A290380FC7C0EB3FE7EBFC7F3801F03FD803E013803807C01F120F1380001F1400EA3F00 5C5A007E133EA2147E12FE48137CA2ECFC1815384813F813011578D87C0313701307D83C 0F13E0381E3E79390FF83FC03907E01F801E2E79AD24>IIII<137EEA0FFEA2EA007EA2137CA213FCA25BA21201A25BA21203A2EBE3F8EBEFFE3807 FF1F9038FC0F8013F813F0EA0FE013C0A21380001F131F15001300A2485B143E123E147E 007EEB7C0C151C007C13FC14F800FC1438A248EBF07015F0ECF9E048EB7FC0EC1F001E2E 7AAD24>I<130F5BEB3F80A2EB1F00131E90C7FCAAEA07E0487EEA1C78EA387CA2127013 FCEAF0F812E012E15B120112035B12075BA2120F13831387121F13075B130EEA1E1E131C EA1F38EA0FF0EA03E0112D7AAC16>I<137EEA0FFEA2EA007EA2137CA213FCA25BA21201 A25BA21203A29038E007C0EC1FE00007EB3C70ECF1F0EBC1E31483EA0FC39038C703E001 8E13C0019CC7FCEA1FF85B5B13FCEA3F7FEB1F80383E0FC01307007E146015E0127CA200 FC13C115C012F8ECC380EB03E739F001FF00EB007C1C2E7AAD21>107 D<13FC121FA21200A213F8A21201A213F0A21203A213E0A21207A213C0A2120FA21380A2 121FA21300A25AA2123EA2127EA2127CA2EAFC6013E012F8A312F913C0A2127BEA3F80EA 1F000E2E79AD12>I<3B07C01FC00FE03B1FF07FF03FF83B1CF9F0F8F87C3B387BC07DE0 3E3A787F807FC000700100138001FE1400D8F0FC137E12E049137C00E102FC137E000116 7C495BA20003010114FC5F01E05B160100070103ECF030187001C0EBE00317E0000F0107 15E0A2018001C0EBC1C017C3EFE780010090398001FF00EE007C341D7A9C3A>I<3907C0 3F80391FF0FFE0391CF9F1F039387BC0F838787F800070130013FEEAF0FC12E05B00E113 0100015C13F0A2000313035D13E014070007ECC0C015C1EBC00F1581000FEC8380A20180 EB07005D159E90380007FCEC01F0221D7A9C28>II<90387C03F03901FF0FFC9038CF9E3E390387F81E0007EBF01F903807E00F D90FC01380120F000E1380A2011F131F12001400A249133F1600133EA2017E137EA2017C 137C15FC01FC5B4A5A6D485A4A5A3901FF8F80D9FBFFC7FCEBF1F801F0C8FC1203A25BA2 1207A25BA2120FA2EAFFFEA2212A7E9C24>I<90380FE06090383FF0E0EBFC793801F01F D803E013C03807C00F120F1380001F1480EA3F00A248131F007E1400A300FE5B48133EA3 147E147C4813FC127C1301495AEA3E07EA1F1EEA0FFD3803F1F0EA0001A213035CA31307 5CA2130FA23803FFFEA21B2A799C21>I<3807C07E391FF1FF80391CFBC3C039387F83E0 00781307EA707E13FC00F014C0D8E0F8138091C7FC12E112015BA21203A25BA21207A25B A2120FA25BA390C8FCA21B1D7A9C1E>II<130E131F5BA213 3EA2137EA2137CA213FCA2B512E0A23801F800A25BA21203A25BA21207A25BA2120FA25B A2001F13C0138113011303148013071400130EEA0F1EEA07FCEA03F013297AA818>II121 D E /Fn 62 123 df11 DII15 D17 DI22 D<1406A6913807FF80021F13C0EC7F80903801FDFFD903F813804948C7FC495A495A495A 137F91C8FC5B5B1201A25BA512007F137E90387F7FE090383FFFF890380FC03890381FFF F0017C5B01F0C8FC485A485A485AA248C9FC121EA25AA2127C1278A312F87EA2127E127F 7F13E0EA3FFC6CB4FC6C13E06C13FC6C13FFC66C13C0011F13F0130301007F141F140714 011400A2010C5BEB0F01903807C3E0903801FFC06D6CC7FC224A7EB924>24 D<15FE913807FF8091381F87E091383E01F091387C00F8495A4A13FC4948137C4948137E 130F495AA249C7FC16FE5B137EA2150113FE4914FCA20001140316F85BED07F0000315E0 150F4914C06DEB1F800007EC3F00153E6D13FC9038EE01F8390FE787F09038E3FFC0D9C0 FEC7FC91C8FC121FA25BA2123FA290C9FCA25AA2127EA212FEA25A127827357EA32B>26 D<91B612C0010315E0130F133F4915C09026FF83FCC7FC3901FC00FE4848137E485A4848 7F5B485AA248C7FCA2127EA25D00FE147E5AA215FE5D5A4A5AA24A5A5D007C495A140F00 3C495A003E013EC8FC6C13FC380FC3F83803FFE0C690C9FC2B247DA32F>I<013FB512FE 90B7FC5A5A4815FE260FC01CC7FCEA1F00123C00385B5A5A481378C7FC147014F0A31301 A25CA21303A3495AA3130FA25C131FA491C8FC131E28247EA324>I<1503A35DA21506A2 150EA2150CA2151CA21518A21538A21530A21570A21560EC0FFE91387FFFC0903903FCE7 F090390FE0C0FCD91F80137ED97E01131F13FCD801F89038800F80D803F015C02607E003 1307EA0FC0D81F80010013E0A248485AA2007E1306A2020E130F12FE48010C14C0A2021C EB1F80A20218EB3F00A2007C0138137E5E007E90383001F8003E4A5A6C90387007E04B5A 270FC0603FC7FCD807E013FE3901FCE7F839007FFFC0D90FFEC8FCEB00C01301A25CA213 03A291C9FCA25BA21306A2130EA2130C2B4A7CB931>30 D<160C161C1618A316381630A3 16701660A316E05EA315015EA3150301FCEC001FD803FFED3F8038078F80270E07C007EB 7FC0001C14060018163F0038161FD8700F010E130F0060020C1307A2D8E01FED038000C0 EB801C013F1318000013001800491338017E13305F01FE1506490170130E0360130C171C 000116184901E013384B5B176017E000000101495A01FC49485A040FC7FC017E141ED93F 03137890391FC301F090390FF30FC00103B5C8FC9038003FF80206C9FCA3140E140CA314 1C1418A314381430A4324A7EB936>32 D<123E127FEAFF80A5EA7F00123E0909798817> 58 D<123E127FEAFF80A213C0A3127F123E1200A412011380A2120313005A1206120E5A 5A5A12600A19798817>II<150E151E A2153E153CA2157C1578A215F815F0A2140115E0A2140315C0A214071580A2140F15005C 141EA2143E143CA2147C1478A214F85CA213015CA213035CA213075CA2130F91C7FCA25B 131EA2133E133CA2137C1378A213F85BA212015B12035BA212075BA2120F90C8FCA25A12 1EA2123E123CA2127C1278A212F85AA25A1F537BBD2A>I<124012F812FE6C7EEA3FE0EA 0FF8EA03FEC66C7EEB3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80 ED3FE0ED0FF8ED03FE923800FF80EE3FE0EE0FF8EE03FE933800FFC0173FA217FF933803 FE00EE0FF8EE3FE0EEFF80DB03FEC7FCED0FF8ED3FE0EDFF80DA03FEC8FCEC0FF8EC3FE0 ECFF80D903FEC9FCEB0FF8EB3FE0EBFF80D803FECAFCEA0FF8EA3FE0EAFF8048CBFC12F8 1260323279AD41>I<176017E01601A24C7EA21607160FA2161FA2163716771667EEC7F8 A2ED0183150316031506A2150C151C151803307FA2ED600115E015C0EC0180A2EC03005C 14064A80A24A1300023FB5FCA25C0260C7FC5C13015C49C87EA2010681130E130C5B1338 A25BD801F81680D807FCEC01FFB500C0017F13FFA25C383A7DB93E>65 D<0107B77E18F018FC903B000FF80003FE6E48EB00FFF07F80020FED3FC0181F4B15E0A2 141FA25DA2143F19C04B143F1980027F157F190092C812FE4D5A4A4A5AEF0FF04AEC1FC0 05FFC7FC49B612FC5F02FCC7B4FCEF3FC00103ED0FE0717E5C717E1307844A1401A2130F 17035CA2131F4D5A5C4D5A133F4D5A4A4A5A4D5A017F4BC7FC4C5A91C7EA07FC4848EC3F F0B812C094C8FC16F83B397DB83F>I<0107B7FC18E018F8903B000FF80007FE6E48EB00 FFF03F80020FED1FC0180F4B15E0F007F0021F1503A24B15F81801143F19FC5DA2147FA2 92C8FCA25C18035CA2130119F84A1507A2130319F04A150FA2010717E0181F4A16C0A201 0FEE3F80A24AED7F00187E011F16FE4D5A4A5D4D5A013F4B5A4D5A4A4A5A057FC7FC017F 15FEEE03FC91C7EA0FF04848EC7FC0B8C8FC16FC16C03E397DB845>68 D<0107B812F0A39026000FF8C7123F6E481407F003E0020F150118005DA2141FA25D19C0 143FA24B1330A2027F1470190092C7126017E05C16014A495A160F49B6FCA25F9138FC00 1F01031407A24A6DC8FCA201075C18034A130660010F160693C7FC4A150E180C011F161C 18184A1538A2013F5E18F04A4A5AA2017F15074D5A91C8123F4848913803FF80B9FCA295 C7FC3C397DB83D>I<923A01FF800180031FEBF00392B5EAF80702039038807E0F91270F FC001F1300DA1FE0EB079FDA7F80EB03BF4AC76CB4FCD903FC6E5A495A4948157E495A49 48157C4948153C91C9FC13FE00011738485AA2485A000F17305B121F4993C7FCA2485AA3 127F5BA312FF90CCFC4BB512FEA26092C7138071C7FC5F5F7EA216015F6C7EA26D140312 1F6C6C5D16076C6C140F6C6C141FD801FEEC3DF03A00FF8001F190393FF00FE06DB51280 01079038FE00609026007FF090C8FC393B7CB941>71 D<0107B5D8FC07B512FCA204F815 F89026000FFCC7380FFC00DA07F0EC07F0A2020F150F615DA2021F151F615DA2023F153F 615DA2027F157F96C7FC92C8FCA24A5D605CA249B7FC60A202FCC7120101031503605CA2 01071507605CA2010F150F605CA2011F151F605CA2013F153F605CA2017F157F95C8FC91 C8FC48486C49487EB690B6FCA346397DB845>I<0103B512FEA390390007FE006E5A5D14 07A25DA2140FA25DA2141FA25DA2143FA25DA2147FA292C7FCA25CA25CA21301A25CA213 03A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CEBFFC0007FEBFF80B6FCA22739 7EB824>I<0107B6FCA25E9026000FFCC8FC6E5A5D140FA25DA2141FA25DA2143FA25DA2 147FA292C9FCA25CA25CA21301A25CA21303A25CA2130718C05CA2010F150118804A1403 A2011F16005F4A1406170E013F151E171C4A143C177C017F4A5A160391C7120F4848ECFF F0B8FCA25F32397DB839>76 D<902607FFF891383FFFFC811AF8D90007030113006FEC00 7C02061678DA0EFF157081020C6D1460A2DA1C3F15E0705CEC181F82023815016F6C5C14 30150702706D1303030392C7FC02607FA2DAE0015C701306ECC0008201016E130EEF800C 5C163F0103EDC01C041F131891C713E0160F49EDF03818300106140717F8010E02031370 EFFC60130CEE01FE011C16E004005B011815FF177F1338600130153FA20170151F95C8FC D801F881EA07FCB512E01706A246397DB843>78 DI<0107B7FC18E0 18F8903B000FF80007FC6E48EB00FE187F020FED3F80F01FC05DA2021F16E0A25DA2143F F03FC05DA2027FED7F80A292C8130018FE4A4A5A604AEC07F04D5A0101ED3FC04CB4C7FC 91B612FC17E0D903FCCAFCA25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137F A291CBFC48487EB6FCA33B397DB835>II<0107B612F8EFFF8018E0903B000FF8001FF86E48EB03FCEF00FE020F157FA24B EC3F80A2021F16C0A25DA2143FF07F805DA2027FEDFF006092C7485A4D5A4A4A5A4D5A4A EC1F80057EC7FC0101EC07F891B612C05F9139FC001FE00103EC07F0EE01F84A80707E13 07177E5C177F010F5D5F5CA2011F1401A25CA2133F16034A4A1360A2017F17E019C091C7 0001130148486CED0380B6903900FE0700EF7F1EEF3FFCCAEA07F03B3A7DB83F>I<9238 7FC006913903FFF80E020FEBFE1E91381FC07F91393F000FBC02FCEB07FC494813015C49 48EB00F8495A49481478A2011F157091C8FCA3491560A36E1400A28014F0EB1FFEECFFC0 6D13FCEDFF806D14E06D806D806D6C7F140702007F150F15031500A2167FA2163E120CA3 001C157E167CA3003C5DA2003E4A5A4B5A007F4A5A6D495A6D49C7FCD87DF0137E39F8FE 01FC39F07FFFF8D8E01F13E0D8C00390C8FC2F3B7BB933>I<007FB5D8C003B512C0A203 801580C601C0C7381FF0006DC8EA07C0604993C7FCA2491506A20001160E170C5BA20003 161C17185BA20007163817305BA2000F167017605BA2001F16E05F5BA2003F15015F5BA2 007F150394C8FC90C8FCA25E4815065A160E160C161C16181638007E5D5E15016C4A5A4B 5A6C6C49C9FC6C6C133E6C6C13FC3903FC07F06CB512C06C6C90CAFCEB0FF83A3A7BB839 >85 D<267FFFFE91387FFFC0B5FC5C00030180913807FC006C48C8EA03F018C000005F95 C7FC5F17065F6D5DA26D5D177017605FA24C5A6E49C8FCA2013F1406160E160C5EA25E6E 5BA2011F5C15015E4BC9FCA215066E5AA2010F5B153815305DA25DECF180A2D907F3CAFC 14F714F614FCA25C5CA26D5AA25C5CA23A3A7CB830>I<277FFFFC01B500F890B51280B5 FC60000390C7D80FFEC7380FF800D801FCDA07F8EC07E0745A63040393C7FC1A06A20407 5D1A1C040F151862161B6D600000153304735D0463140104C35D7149C8FCED01811906ED 030103075D1506030C5D6115186D5F15306D01705D156003C04A5A7148C9FCEC01800400 13064AC7FC4A5D14064A5D18384A15306014B0D93FF05D5C4A6E5AA24A92CAFC177E91C8 FC177C133E013C1578A2013815701760513A7CB84E>I<49B500F890B512F0A21AE0D900 0701C090381FFC00DA01FEC7EA0FE0F0078002004BC7FC6F140E606F6C13301870033F5C 70485A4D5A6F6C48C8FC1706030F5B705A5F6F6C5A5F923803F98016FF94C9FC6F5AA215 0082A34B7FED037F9238063FC0150EED1C1F03387F15704B6C7E15C09138018007DA0300 7F14064A6D7E5C4A13010270805C49486D7E495A49C87E010E82133E017E822603FF8049 487E007F01F0011FEBFFC0B5FC4A5E44397EB845>II<91B712FCA25B9239E00007F892C7EA0FF0D903F8EC1FE04AEC3FC0 4AEC7F804A150049485C91C7485A4C5A010E4A5A4C5A010C4A5A011C4A5A01185D167F4C C7FC90C7485A4B5A4B5A4B5A5E151F4B5A4B5A4BC8FC4A5A4A5A4A5A5D140F4A5A4A5A4A 48130C4AC7FC495A4A141C01031518495A494814384948143049481470495A49C812F049 5D000115014848140348484A5A4848140F4848141F4848ECFF804848130790B7FCB8FC94 C7FC36397BB839>I<14FE903807FF0F90391F839F8090383F01DF90387C00FF4848137F 491400000380485A000F5C4848137EA2485A15FE007F5C90C7FCA21401485C5AA214035D 48150CA20207131CEDE018A2007C010F1338021F13306C133F02771370261F01E313E03A 0F87C1F1C03A07FF00FF80D801FCEB3F0026247DA32C>97 D99 D<16FE153FA31501ED00FCA2 1501A216F8A21503A216F0A21507A216E0A2150FA216C014FE903807FF1F90381F839F90 393F01DF8090387C00FF4848137F5B0003EC3F00485A000F5C485A157E485A15FE127F90 C75AA214015A485CA21403A248ECF00CA20207131C161815E0007C010F1338021F13306C 133F02771370261F01E313E03A0F87C1F1C03A07FF00FF80D801FCEB3F00273A7DB92B> IIIII<14F0EB03F8A21307A314 F0EB03E090C7FCACEA01F8EA03FEEA071F380E0F80121C12381230EA701F1260A2EAE03F 00C013005BEA007EA213FE5B1201A25B12035BA20007131813E0000F1338EBC030A21470 EB806014E0EB81C0EB83803807C700EA03FEC65A15387EB71D>I<150FED3F80A2157FA3 1600153E92C7FCACEC1F80EC7FE0ECF1F0903801C0F849487EEB0700130E130C131CEB18 01133801305BA2EB0003A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C A2147EA214FEA25CA21301001E5B123F387F83F0A238FF87E0495A387E1F80D87C7EC8FC EA3FFCEA0FE0214881B722>IIIIII< 90391F8007F090393FE01FFC903971F07C3E9039E0F8F01F3B01C0FDC00F80903880FF80 92380007C000035B494814E01301120700065BA2D80003140FA25CA20107141FA24A14C0 A2010F143F17805CEE7F00131F16FE4A5B4B5AD93FC05B15039138E007C09138701F8049 6C48C7FCEC1FFC90387E0FE091C9FC13FEA25BA21201A25BA21203A25B487EB512C0A32B 3482A32A>I<02FE13C0903807FF0390381F838790393F01CF8090387C00EF4848137F5B 0003EC3F00485A120F48485B157E485AA2007F14FE90C75AA3481301485CA31403485CA3 14075D007C130F141F6C133F4A5A381F01EF380F87CF3807FF1FD801FC5BC7FCA2143F92 C7FCA35C147EA314FE5C497E90387FFFF090B5FCA222347DA325>I<3903F003F83907FC 0FFC390E3E1E0E391C1F381F0038EBF07F003013E0ECC0FF127000605B013F13FE00E014 7C00C090C7FCA2C65AA2137EA213FEA25BA21201A25BA21203A25BA21207A25BA35B5B20 247EA325>I<14FF010713C090380F81F090381E007049137890387801F8140313F0A212 01EC01F06DC7FC13FEEBFFE06C13FC14FF6D138015C0011F13E0010713F0EB007F140F14 03001E1301127FA24814E0A348EB03C048EB07800060EB0F000078131E003F13FC380FFF F0000113801D247CA327>II<01FC1478D803FF14F839078F8001380E07C0121C001814031238D8700F5C1260 1507EAE01F00C001805B133F0000EB000FA2495C137E151F13FE495CA2153F120149EC00 C0A2ED7F011780157E160303FE13000000130102035B90397C07BE0E90397E1E1F1C9039 1FFC0FF8903907F003F02A247EA330>I<01FCEB07C0D803FFEB0FE038078F803A0E07C0 1FF0121C0018140F00381407D8700F130300601401A2D8E01FEB00E000C05B133F000090 C7FC16C05B137E150101FE14805B150316001201495B1506150E150C151C5D1530000014 706D5B90387C03C090383F0F80D91FFEC7FCEB07F824247EA328>I<90391FC007E09039 7FF01FF89039F0FC3C3C3A01C03E703ED80380EB60FE3907001FE0000E14C1000C148112 1C0018013F13FC0038EC00F800301500A2C75AA2147EA214FEA25CA21301A24A1318A2D8 3E031438007F153000FF4913701660010714E0D8FE0FEB01C090390CF80380D8F81CEB07 003978787E1E393FF01FFC390FC007F027247DA32F>120 D<01FC1478D803FF14F83907 8F8001380E07C0121C00181403003815F0EA700F12601507D8E01F14E000C01380133F00 00EB000F16C05B137E151F01FE14805BA2153F000115005BA25D157EA315FE0000495A14 03EB7C07EB7E1F90381FFDF8EB07F1EB000114035DA2390F8007E0EA1FC0003F495AA24A 5A4AC7FCEB807E495A381801F8381E07E0380FFF80D803FCC8FC25347EA329>II E /Fo 27 122 df45 DI49 D<903803FF80013F13F890B512FE00036E7E260FFC0713E0261FE0017F48486C7F90C76C 7ED87FC06D7E13F000FF6E7E7F178081A56C5A6C5A0007C7FCC8FC4B1300A25E153F5E15 7F5E4B5A4A5B5E4A5B4A48C7FC4A5A5DEC1FE04A5A4A5A9139FE000780495A495A4948EB 0F00495A495A49C7FC017E5C5B48B7FC5E5A5A5A5A5A5AB75AA4293C7BBB34>I<903801 FFE0010F13FE013F6D7ED9FF8113E03A01FC007FF0D803F014FC4848133F486C6D7E13FC 486C807FA76C485C6C48133FEA01F0C85B4B5A5E4B5A4A5B4A5BDA0FFEC7FC903807FFF8 15FEEDFFC0D9000113F06E6C7E6F7E6F7E826F138017C0A28117E0EA0FC0EA3FF0487EA2 487EA417C05DA26C481580495BD83FC015004B5AD81FF0495A6CB448485A000390B512E0 C61580013F49C7FC010313E02B3D7CBB34>I<010FB612F0A490C7387FF800B3B3A5EA1F E0487E487E487EA415FF5EA26C48485BA2263FE0035B6C48485B270FF81FFEC7FC0003B5 12F8C614E0D91FFEC8FC2C3F7EBD36>74 D77 D80 DI<003FB912FCA4903BFC003FFE003F01E016 07D87F80EE01FE90C71500007E187EA2007C183EA20078181EA548180FA5C81600B3B101 0FB712F8A4403D7CBC49>84 D87 D<90381FFFC048B512FC000714FF 260FFC0313C0020013F0486C6D7E153F6F7EA282150F6C5A6C5AEA01E0C8FCA2EC7FFF01 07B5FC133F3901FFFC0F4813E0000F1380381FFE00485A485AA2485AA25BA2151FA26D13 3F127F6DEB7BFF273FFC01FB1380271FFF07F313FE0007EBFFC1000114803A001FFC003F 2F287DA733>97 D100 DI103 D105 D<13FFB5FCA412077EB3B3B1B512FCA4163F7CBE1D>108 D<01FFD91FFCECFFE0B590B5 010713F80203DAC01F13FE913D0FF07FF07F83FF8091261F803FEBFC010007D93E00D9F9 F0806C49ECFBE04A6DB4486C7F4A5D4A92C7FCA24A5CA34A5CB3A4B5D8FE07B5D8F03FEB FF80A451287CA75A>I<01FFEB3FF8B590B5FC020380DA0FE013E091381F807F0007D93E 007F6C5B4A6D7E5C5CA25CA25CB3A5B5D8FE0FB512E0A433287CA73A>II<9039FF01FF80B5000F13F8023F13FE9139FF03FF80DAFC0013E00003 01F06D7E4A6D7E4A6D7E4A80707EA2701380A47013C0AA4C1380A34C1300A25F161F6E49 5A6E5C6E495A6E48485ADAFE0713809126BFFFFEC7FC028F13F8028313800280C9FCAEB5 12FEA4323A7CA73A>I<3901FE03FC00FFEB0FFF023F13C091387E3FE09138787FF00007 13F0EA03FF14E014C0A2ED3FE01480ED0F8092C7FCA291C8FCB3A3B6FCA424287CA72B> 114 D<90383FFC1E48B512FE1207381FF007383F800190C7127E48143E127E00FE141E7E A27F01E090C7FC13FF14FCECFF806C14E06C14F8816C80000780000115806C7E010714C0 EB001F140100F07F157F6C143F151F7EA26CEC3F807E6DEB7F006D13FE9038F803FC90B5 5AD8F87F13E026F00FFEC7FC22287DA729>IIII121 D E /Fp 33 122 df45 DI49 D<903803FFC0011F13FC017FEBFF8048 B67E2603FC0713F02607F0007FD80FC06D7E48486D7E48C76C7E486E138013E06D6D13C0 12FF7F6F13E0A56C5A6C5A6C5AC8FC4B13C0A317804B1300A24B5A5E4B5A4B5A5E4B5A4A 5B4A90C7FC5DEC07F84A5A4A5AEC3F804AC8FC02FEEB01E05C495A49481303D907C014C0 495A49C7FC133E49140749140F48B7FC4816805AA25A5A5A5AB81200A42B417AC038>I< ECFFF0010F13FF013F14E0D97F807F3A01FC003FFCD803F06D7E48486D7EA2D80FF86D13 8013FE001F16C07FA66C5A6C4815806C485BC81400A24B5A5E4B5A5E4B5A4A485A020790 C7FC903803FFFC15F015FF90C713E0ED3FF86F7E6FB4FC6F13806F13C0A217E017F081A2 17F8A2EA1FE0487E487EA2487EA317F05DA26C4815E04915C0495BD83F804913806C6C15 00D80FF8EB3FFE6CB4EBFFFC000190B512F06C15C0011F91C7FC010113F02D427BC038> I<163E167EA216FE15011503A21507150F151F153FA2157F15FF5CEC03EF15CFEC078FEC 0F0F141F141E143C147814F0130114E0EB03C0EB0780130FEB1F00131E5B5B13F8485A5B 485A485A120F90C7FC121E5A127C5AB91280A4C8D81FFEC7FCAC91B71280A431407DBF38 >I<0006150ED807E0147E01FFEB0FFE91B55A5EA25E5E168093C7FC15FC5D15C04AC8FC 01C0C9FCAAECFFE001C713FE01DF6D7ED9FF8013E09039FC003FF0496D7E01E06D7E4980 496D7EA2C814808117C0A317E0A31207EA3FC0487E7F12FF7FA317C05BA26C4849138013 80007CC714006C5C003F5D6C6C495A6C6C495AD807F0EBFFF02603FE035B6CB612806C6C 49C7FC011F13F8010313802B427AC038>I<913801FFC0021F13F891B57E0103EB80FF90 3A07FE001F80D91FF8130FD93FE0EB3FC04948137F01FFECFFE048495A481300A2485A12 0FA248486D13C0EE7F80EE3F00003F92C7FCA25B127FA25CEC1FFF00FF017F13C091B512 F09039F9E01FF89039FBC007FC9039FF8003FF4A7E17804915C06F13E05B17F0A317F85B A4127FA5123FA317F06C7EA2000F16E05D6C6C15C017806C6C4913006C6D5A6C6D485A90 397FF03FF86DB55A010F5C010391C7FC9038007FF82D427BC038>I65 D<922601FFF81470033FD9FF8013F04AB6EAE001020FEDF803023F9039F007FE07DAFFFE C7EA7F8F4901F8EC1FDF010701C0EC0FFF494914034948C87E4948814948167F4948163F 4849161F5A4849160FA248491607A24890CA1203A25A5B1901127FA296C8FC5B12FFAD05 7FB612F0127F7FA2DD0001EBF000123FA27F7EA26C7FA26C7FA26C7F6C7F7E6D7E6D7E6D B45D6D6D5C6D13E0010101F8141F6D01FFEC7F9F023F9039F003FF0F020F90B5EAFE0302 01EDF801DA003F9138C00070030101FCC9FC4C467AC458>71 D73 D80 D82 D87 D<90380FFFF0017F13FF48B612C02603FC0013F0486CEB1FFC486C6D7E6F7EA26F7FA26F 7F6C5A6C5A6C5AC8FCA44AB5FC91B6FC130F013F13E13901FFFC014813E0481380381FFE 00485A5B127F5B12FF5BA35DA26D5B6C6C5B003F021E7FD81FFE017C13F8270FFF81F8EB FFC06C9038FFF07FC6ECC03F90390FFE0007322C7DAB36>97 DI<91383FFF800103B512F0011F14FC90393FF801FE9039FFC003FF48 49481380481300485A485A121FA248486D13006F5A007F6E5A4991C7FCA312FFAA127FA2 7FA2123F6DEC03C0121F16076C6C15806C6C140F6C6DEB1F006C6D133E6C6D13FC90393F FC07F86DB512E0010314809026003FFCC7FC2A2C7CAB32>III<913803FF80023F13E091B512F00103EB87F8903907FE0FFCD90FFC13FE90381FF81F13 3FEB7FF0A2EBFFE0ED0FFCA2ED07F892C7FCABB612F8A4C601E0C7FCB3B2007FEBFFF0A4 27457DC422>I<17FE903A01FFE007FF011FD9FE0F1380017F9039FFBF9FC0D9FFC0EBFE 3F00039038003FF84848131F49130F000F9238FC1F804848903907FE0F0094C7FCA2003F 81A7001F5DA36C6C495A00075D6D131F6C6C495A9138C0FFC091B55AD8079F49C8FC0181 13E0D80F80CAFCA47F7F7F90B612E016FE6CEDFFC0836C16F86C827E000382000F82D81F F0C77ED83FC014074848020113808248C9FC177FA46D15FF007F17006C6C4A5A6D1403D8 1FF8EC0FFCD807FEEC3FF03B03FFE003FFE0C690B61280011F02FCC7FC0100148032417D AC38>I<13FCEA03FF48138014C05AA67E14806C1300EA00FC90C7FCACEB7FC0B5FCA412 037EB3B0B6FCA418467CC520>105 D108 D<90277F8007FFEC0FFEB5013F01E090387FFFC092B5D8F801B512F0913D83 F81FFC07F03FF8913D87C00FFE0F801FFC000390268F800790381F000F6CD99E00D9FF3C 8002BC5D02B86D496D7E14F84A5DA24A5DA24A5DB3A8B60081B60003B512FEA4572C7CAB 60>I<90397F800FFEB590387FFFC092B512F0913983F83FF8913987C01FFC000390388F 000F6C019E8014BC02B86D7E14F85C5CA35CB3A8B60083B512FEA4372C7CAB3E>II<90397FC03FF8B500C1B57E02C714E09139DFE0 7FF89139FF001FFC000301FCEB07FE6C496D7E4A15804A6D13C04A15E08218F0177F18F8 A3EF3FFCAB18F8177FA318F017FF18E05E6E15C06E4913806E4913006E495A02FF495A91 39DFC0FFF002C7B55A02C191C7FC9138C03FF092C9FCAFB67EA4363F7DAB3E>I<90397F 807F80B53881FFE0028713F091388FC7F891389F0FFC000390389E1FFE6C13BC14B814F8 14F0A29138E00FFCED07F8ED03F092C7FCA25CB3A6B612E0A4272C7DAB2E>114 D<90381FFE0748B512DF000714FF380FF007381FC00048C77E4880007E80A200FE80A27E 7F6D90C7FC13F8EBFF806C13FEECFFC06C14F0816C14FE6C80000315807ED8003F14C013 03D9000F13E0140100F0EB007F153F6C141FA2150F7E16C07E6C141F168001C0133F6DEB 7F009038FC03FE00FCB512F8D8F03F13E0D8E00F90C7FC232C7CAB2C>IIII121 D E /Fq 26 111 df0 D<020FB612C091B7FC1303130FD91FF8 C9FCEB7F8001FECAFC485AEA03F0485A5B485A48CBFCA2123E123C127C1278A212F85AA9 7E1278A2127C123C123E7EA26C7E6C7E7F6C7EEA01FC6C7EEB7F80EB1FF86DB712C01303 1300140F91CAFCAD003FB812C0A4324279B441>18 D<007FB512FCB712C016F06C15FCC8 EA07FE9238007F80EE1FC0707EEE03F0707E1600177C83A2838318801707A218C01703A9 17071880A2170F18005F173EA25F5F16014C5AEE0FE04C5AEE7F80DB07FEC7FC007FB65A B712F016C06C02FCC8FCCCFCADB9FCA4324279B441>II<12F012FCB4FC13C0EA1FF0EA07FC EA01FF38007FC0EB1FF0EB07FCEB01FF9038007FC0EC1FF0EC07FCEC01FF9138007FC0ED 1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE01FF9338007FC0171F177F933801FF80 933807FC00EE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7F C04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA1FF0EA7FC048CBFC12FC12F0CCFC AD007FB81280B912C0A3324279B441>I<1307A35B131E131C133C5B5B1201485A485AEA 1F8048BA12FEBCFCA2003F19FED81F80CCFCEA07C06C7E6C7E120013787F131C131E7F7F A3481E7BA353>32 D<177C173C173E171E171F8384717E717EA2717E717E007FB87EB97E 727E85CBEA07E0F003F8F000FEF17F80F11FE0F10FFCF103FFA2F10FFCF11FE0F17F80F1 FE00F003F8F007E0BA5A614EC7FC6C5FCB5A4D5A4D5AA24D5A4D5A95C8FC5F171E173E17 3C177C482E7BAB53>41 D44 D<020FB5FC91B6FC1303130FD91FF8C7FCEB7F8001FEC8 FC485AEA03F0485A5B485A48C9FCA2123E123C127C1278A312F85AA2B8FCA400F0C9FCA2 7E1278A3127C123C123E7EA26C7E6C7E7F6C7EEA01FC6C7EEB7F80EB1FF06DB6FC130313 00141F283279AD37>50 D<160E160F161F161E163E163C167C167816F816F0150116E015 0316C015071680150F16005D151E153E153C157C157815F85D14015D14035D14075D140F 92C7FC5C141E143E143CA2147C147814F85C13015C13035C13075C130F91C8FC5B131E13 3E133C137C137813F85B12015B12035B12075B120F90C9FC5A121E123E123C127C127812 F85A1270284C74BA00>54 D<0070161C00F0163CA26C167C00781678007C16F8003C16F0 A2003E1501001E16E0A2001F15036C16C06D140700071680A26D140F00031600A26D5C6C B612FEA26C5DA201F8C7127C01781478017C14F8013C5CA2013E1301011E5CA2011F1303 6D5CEC800701075CA2ECC00F010391C7FC6E5A0101131EA2ECF03E0100133CA2ECF87CEC 7878EC7CF8EC3CF0A2143F6E5AA36E5AA26E5AA32E3B80B92F>56 DII<157015F0A21401903807F1E0EB3FFFEB7C1F3801F0073803E003 13C04848487ED80F007FA248497E001E143C003E143EA2141F007EEB1E3F007C80143E14 3CA300FC017C13801478A214F814F0A3130114E0A2130314C0A213071480A3130F1400A2 D87C1F1400131EA3D87E3E5B133C003E143E137C1378001E143C001F147CD80FF8137849 13F800075C14016C48485A6C6C485A2603FC1FC7FCEBFFFEEBC7F001C0C8FC12075BA290 C9FC21457CBE2A>I<18F017011707A3170FA2171FA2173F17371777176717E717C71601 EE0387A2EE0707A2160EA2161C1638A21670A216E0150116C0ED0380150716005D150E5D 033C8015385D15F04A48130303EFB5FC4AB6FC5CA24AC71203021E815CA25C0020491401 EA6001267003E08138F807C038FE1F80B58291C913064917BC4917F849EE7FE06C4817C0 6C48EE3E00D80F8093C7FC3F3F7DBB42>65 D69 D85 D<0070167000F016F0B3B16C1501007816E0A2007C15036CED07C0003F150F6C6CEC1F80 D80FE0EC7F00D807F8EB01FE3A03FF801FFCC690B512F0013F14C0010F91C7FC010013F0 2C327BB037>91 DI<140FA34A7EA24A7EA24A7E1479A2ECF9F014F001017F ECE0780103137CECC03C0107133EEC801EA2010F131F4A7E4980011E1307013E80013C13 03A2017C800178130101F880491300000181491478A20003157C49143C0007153E49141E 000F151F90C87E481680001E1507A2003E16C0003C1503007C16E00078150100F816F048 1500A24816702C327BB037>94 D102 D<12FEEAFFC0EA0FF8EA01FC6C7E133F80131F80130FB3A7801307806D7E6D7E6DB4FCEC 3FF81407143FECFF00EB01FC495A495A5C130F5CB3A7131F5C133F91C7FC13FE485AEA0F F8EAFFC048C8FC1D537ABD2A>II<12E07EA27E1278A2127C123C123E121EA2121F7EA27F1207A27F1203A27F12 017F1200A27F1378A2137C133CA2133E131EA2131F7F14801307A214C01303A213071480 A2130F14005B131EA2133E133CA2137C1378A213F85BA212015B12035BA212075BA2120F 90C7FCA25A121EA2123E123C127C1278A212F85AA25A12527BBD20>I<12F0B3B3B3B3AB 045377BD17>I<12E07EA27E1278A2127C123CA2123E121EA2121F7EA27F1207A27F1203 A27F12017F1200A27F1378A2137C133CA2133E131EA2131F7FA2801307A2801303A28013 01A2801300A2801478A2147C143CA2143E141EA2141F8015801407A215C01403A215E014 01A215F01400A215F81578A2157C153CA2153E151EA2150E1F537BBD2A>110 D E /Fr 80 125 df0 D<91390FF803FC9139FFFE0FFF 903B03FC0FBF87C0903A07E007FE0F903B0FC00FFC1FE090391F801FF8D93F0013F0137E EF0FC04914E0030F90C7FC1507ABB812F0A32800FC0007E0C7FCB3AB486C497E263FFFE0 B512E0A3333A7FB930>11 DI<91381FFCE091B5FC903803FC07903807E00F90380F C01FEB1F80EB3F00137EA249130F1507ACB7FCA33900FC0007B3AB486C497E263FFFF1B5 1280A3293A7FB92E>II<133C137EA213FE1201EA03FC13F0EA07E0EA0FC0EA1F80EA1E 005A5A5A12C00F0F6FB92A>19 D<1420EB01E0EB07F0EB3FE03801FF00EA0FF8EA7FC000 FEC7FC12701240140A7FA017>32 D<003E133E007F137F39FF80FF80A26D13C0A3007F13 7F003E133E00001300A40001130101801380A20003130301001300485B00061306000E13 0E485B485B485B006013601A197DB92A>34 D<123E127FEAFF80A213C0A3127F123E1200 A412011380A2120313005A1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FC A25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E 1378A27F7F130E7FEB0380EB01C0EB00E01460135279BD20>I<12C07E12707E7E7E120F 6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0 B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7 FC120E5A5A5A5A5A13527BBD20>I<1578B3A7B912FCA4C80078C8FCB3A736367BAF41> 43 D<123E127FEAFF80A213C0A3127F123E1200A412011380A2120313005A1206120E5A 5A5A12600A19798817>II<123E127FEAFF80A5EA7F00123E0909 798817>I48 DIII<15381578A215F81401A21403 1407140FA2141B143B1433146314E3EB01C31483EB030313071306130C131C1338133013 6013E013C0EA01801203EA070012065A121C12185A12705AB712F8A3C73803F800AB4A7E 0103B512F8A325377EB62A>I<0006140CD80780137C9038F803F890B5FC5D5D5D92C7FC 14FC000613F090C9FCABEB0FF8EB7FFF9038F81FC03907C007E0496C7E496C7E000680C8 FC81A2157FA31680A3123E127F487EA490C71300485C126000705C4A5A7E003C495A6C49 5A6C6C485A3907F07FC06CB5C7FCC613FCEB1FE021387CB62A>II<12301238123E003FB612E0A316C05A168016000070C712060060140E5D5D00E0 14304814705D5DC712014A5A4AC7FC1406140E5CA25C1478147014F05C1301A213035C13 07A2130FA3495AA3133FA5137FA96DC8FC131E233A7BB82A>III<123E127FEAFF80A5EA7F00123EC7FCB2123E127F EAFF80A5EA7F00123E092479A317>I<123E127FEAFF80A5EA7F00123EC7FCB2123E127F 5A1380A4127F123F1201A412031300A25A1206A2120E5A121812385A1260093479A317> I<007FB812F8B912FCA3CCFCAEB912FCA36C17F836167B9F41>61 D<1538A3157CA315FEA24A7EA34A7F157FA202067F153FA2020C7F151FA24A6C7EA34A6C 7EA34A6C7EA202E07FECC001A20101804A7EA249C77F167FA249B67EA3010CC7EA1FE0A3 496E7EA3496E7EA201708101601403A201E08100011501486C4A7ED80FFC4A1380B56C90 B512FEA3373A7DB93E>65 DI<913A01FF800180021FEBF00302 7FEBFC07903901FF807E903A07FC000F8FD90FF0EB03DFD93FE0EB01FFD97F807F49C812 7F4848153F49151F12034848150F485A1707485A1703123F5B1701127FA34992C7FC12FF AB127F7FEF0180A2123FA27F001F160318006C7E5F6C6C15066C6C150E0001160C6D151C 6C6C5D6D6C5CD93FE05CD90FF0EB03C0D907FCEB0F80902701FF807FC7FC9039007FFFFC 021F13F002011380313B7BB93C>IIII<913A01FF800180021FEBF003027FEBFC07903901FF807E903A07FC 000F8FD90FF0EB03DFD93FE0EB01FFD97F807F49C8127F4848153F49151F12034848150F 485A1707485A1703123F5B1701127FA34992C7FC12FFAA4BB512FE127F7FDB000113C093 38007F80123FA27F121F7F120FA26C7E6C7E12017F6C6C15FF6D7ED93FE05BD90FF0EB03 9FD907FEEB0F0F903A01FFC07E07903A007FFFFC03021FEBF00102010180C7FC373B7BB9 41>III<013FB512E0A39039001FFC00EC07F8B3B3A2120C123FEA7F80EAFF C0A44A5A13806C48485A007C5C0038495A001E49C7FC380FC1FE3803FFF838007FC0233A 7DB82B>I76 DIIII82 D<90391FF001809038FFFE0348EBFF833903F81FC73907E003EF390F8000FF48C7123F48 141F123E007E140F007C140712FC1503A315017EA27E92C7FC6C7E7F13F86CB4FC14F06C 13FF6C14E06C806C806C806C6C7F010F7F01001480140F020113C0EC007F153FED1FE0A2 150F12C0A21507A37EA216C06C140F7E16806C141FB4EC3F006D137ED8FBE05B39F1FE03 F800E0B55A011F13C0D8C00390C7FC233B7BB92E>I<003FB812E0A3D9C003EB001F273E 0001FE130348EE01F00078160000701770A300601730A400E01738481718A4C71600B3B0 913807FF80011FB612E0A335397DB83C>I86 DI<007F B539803FFFFCA3C69026F8000790C7FC6D48EB03FC6D48EB01F06D6C5C5F6D6C5C6D6C49 C8FC5E6D6C130601015C6E131C6DEB80185E91387FC07091383FE06016E091381FF1C002 0F5B15FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F91 380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E01016E7E495A91C7 6C7E491407010E81010C6E7E131C013E6E7E01FE822607FF8001077FB500F0013FEBFF80 A339397EB83E>I91 D<3901800180000313033907000700000E130E485B001813180038133800301330007013 7000601360A200E013E0485BA400DF13DF39FF80FF806D13C0A3007F137FA2393F803F80 391F001F001A1974B92A>II96 DII<903807FF80013F13F09038FE00F83901F801FC3803F003EA07 E0EA0FC0EA1F80003FEB01F890C712F0481400A312FEAA127FA36C14067F001F140E6C6C 130C6C6C131C6C6C13386C6C13F03900FE07E090383FFF80903807FC001F247DA325>I< ED1F80EC07FFA3EC007F151FB1EB07FCEB1FFF90387E079F3901F801DF3903F000FF4848 137F4848133F4848131FA248C7FCA25A127E12FEAA127E127FA27E7F001F143F6C6C137F 12076C6C13FF3A01F803DFE03A00FE0F9FFE90383FFE1FEB07F8273A7DB92E>II<147F9038 03FFC0903807E3E0EB0F8790381F0FF0133F137EA29038FE07E013FC91C7FCACB512F8A3 D800FCC7FCB3AB487E383FFFFCA31C3A7FB919>IIIIIII<2703F01FF0EB7FC000FF903A 7FFC01FFF0903BF1F07E07C1F8903BF3C03F0F00FC280FF7001F9C137ED803F6149801FE D90FF87F495C495CA3495CB3A3486C496CEB7F80B500C3B5380FFFFCA33E247DA345>I< 3903F01FE000FFEB7FF89038F1F0FC9038F3C07E390FF7003FEA03FE49EB1F80A25BA35B B3A3486CEB3FC0B538C3FFFEA327247DA32E>II<3903F03FC000FFEBFFF89038F3 E0FE9038F7803F3A07FE001F806C48EB0FC049EB07E016F049EB03F8A2ED01FCA3ED00FE A9150116FCA216F8150316F06D1307ED0FE06D14C06DEB1F8001F7EB7F009038F3C1FC90 38F1FFF09038F07FC091C8FCAC487EB512C0A327347DA32E>I<903907FC018090381FFE 0390387F07833901FC03C73903F000E74848136F000F147F4848133F5B003F141F90C7FC 5AA25A5AA9127FA36C7E153F6C7E000F147F6C6C13FF3903F001DF3901F8039F3900FE0F 1FEB3FFEEB07F890C7FCACED3FC0913807FFFEA327347DA32C>I<3807E03F00FFEBFF80 9038E1E7C09038E38FE0380FE70FEA03EE13EC9038FC07C09038F8038091C7FCA35BB3A2 487EB512F0A31B247DA321>II<1318A51338A31378A313F8120112031207381FFFFEB5FCA23801F8 00B21403A93800FC071406EB7E0EEB3F1CEB1FF8EB07F018337EB220>III< B53A1FFFE03FFEA3260FF8009038000FF86C48017EEB03E0000317C0033E14807F000102 3F1400A26D5D0000ED8006156F017E5DEDEFC015C76D6E5AEC0183A2D91F816D5AEC8301 02C31470010FECF860ECC600D907E65C02EE13FC02EC137CD903FCEB7F80A24A133F0101 92C7FC4A7FA20100141E4A130E0260130C37247EA33C>II< B538803FFEA33A0FF8000FF00003EC07C0ED0380120116006D5B00001406A2017E5BA201 7F131C6D1318A26D6C5AA2ECC070010F1360A26D6C5AA214F101035BA2D901FBC7FCA214 FF6D5AA2147CA31438A21430A214701460A25CA2EA7C0100FE5B130391C8FC1306EA7C0C EA7838EA3FF0EA0FC027347EA32C>I<003FB512FCA2EB8003D83E0013F8003CEB07F000 38EB0FE012300070EB1FC0EC3F800060137F150014FE495AA2C6485A495AA2495A495A49 5AA290387F000613FEA2485A485A0007140E5B4848130C4848131CA24848133C48C7127C 48EB03FC90B5FCA21F247EA325>I124 D E /Fs 61 122 df<913807FFC0027F13F00103B512FC010FEB00FED93FF8133F4948EBFF 809038FFC0015A1480484A13C04A6C1380A36F1300167E93C7FCA592383FFFC0B8FCA400 0390C7FCB3ABB5D8FC3F13FFA4303A7EB935>12 D<140E143E147C14F8EB01F0EB03E0EB 07C0130FEB1F80EB3F00A2137E13FE5B1201485AA212075B120F5BA2121FA25B123FA312 7F5BA512FFAF127FA57F123FA3121F7FA2120FA27F12077F1203A26C7E12007F137E7FA2 EB1F80EB0FC01307EB03E0EB01F0EB00F8147C143E140E175378BD25>40 D<12E012F8127C7E7E6C7E6C7E7F6C7E6C7EA26C7E7F137E137FEB3F80A214C0131F14E0 130FA214F0A2130714F8A314FC1303A514FEAF14FCA5130714F8A314F0130FA214E0A213 1F14C0133F1480A2EB7F00137E13FE5B485AA2485A485A5B485A48C7FC123E5A5A12E017 537BBD25>I45 DI<49B4FC011F13F0017F13FC9038FF83FE4848C67E4848EB 7F804848EB3FC04848EB1FE0A2001F15F0A24848EB0FF8A2007F15FCA500FF15FEB2007F 15FCA5003F15F8A26D131F001F15F0A26C6CEB3FE0000715C06D137F6C6CEBFF803A00FF 83FE006DB45A011F13F0010190C7FC27367CB530>48 D<141E143E14FE1307133FB5FCA3 13CFEA000FB3B3A5007FB61280A4213679B530>II<903807FF80013F13F090B512FE3901FE07FF2603F00313804848 6C13C0260FF80013E07F001F15F07FA56C5A16E03803F001C714C016805C913807FE004A 5AEC3FF890380FFFE0158015F890380007FE913801FF806E13C016E0ED7FF016F8ED3FFC A216FEA2EA1FC0487E487E487EA316FCA2157F4914F8007FECFFF0EA3FC04A13E0261FFC 0713C00007B612006C5CC614F0010F138027367CB530>II<000C EC01C0D80F80130F01F813FF90B61280A216005D5D5D15E05D92C7FC14F80180C8FCA8EB 8FFF90B512E015F89038F807FE9038C003FF496C138090C713C0C813E0157F16F0A316F8 120EEA3FC0487E12FF7FA44914F0A26C48EBFFE05B263E000113C0003F1580261FC00713 00390FF01FFE6CB55A6C14F0C614C0D91FFCC7FC25367BB530>II<121E121F13E090B71280A35A17005E5EA25E5E485D007CC7EA1FC0 5E00784AC7FC5D15FE48495A4A5A4A5AC75B140F4A5A5D143F147F92C8FC5CA2495AA213 03A31307A25C130FA5131FAB6D5AEB03E029397BB830>I<903803FF80011F13F8017F13 FE9038FF01FF3A01F8007F804848EB3FC04848EB1FE049130F000F15F01507121F7FA27F 13FC6D130FD9FF8013E0ECE01F6C01F813C09138FC3F809138FF7F006C14FE6C14F8816C 806C6CEBFF806D14C090B612E0000315F0D807F914F8380FF07F261FC01F13FC003F1307 497E48C713FE153F48140F481407150315011500A216FC7E7E6DEB01F86C6C13036DEB07 F0D81FF8EB0FE0D80FFEEBFFC06CB612800001ECFE006C6C13F80107138027367CB530> I<903803FF80013F13F090B512FC48EB83FE4848C67E4848EB7F80484814C0001FEC3FE0 485A007FEC1FF0A216F812FF16FCA516FEA4153F127FA2123F157F6C7E000F14FF6C6C5A 3903FE03DF6CB5129F6C6C131FEB1FFED9002013FC1400A3D80FE0EB3FF8487E486C14F0 A3ED7FE016C015FF494813806C4848130090388007FE390FF03FFC6CB512F06C14C0C691 C7FCEB3FF827367CB530>II65 DIIIII73 D<017FB6FCA4D900071380B3B3EA0F80EA3FE0EA7FF0EAFFF8A45C1600A26C4848 5A49485A003F495A000FB512E00003148026007FF8C7FC28397EB831>IIII79 DIIII<003FB91280A4D9F800EBF003D87FC09238007FC049161F007EC7150FA2007C17 07A200781703A400F818E0481701A4C892C7FCB3AE011FB77EA43B387DB742>IIII<007FB5D8FC07B512F8A426003FFEC7D81FF0C7FC6EEC0FC06D151F6D6D5C6F49C8FC 6D6D137E7F6F5B6D6D485A6D1403DA7FFC5B6F485A6E6C485A6E131FEE9F806E01FFC9FC 6E5BA26E5B6E5B80826F7E153F826F7F5D4B7F92B57EA2DA01F97FDA03F17F03F07F9138 07E07FDA0FC07F021F6D7E4B7E4A486C7F027E8102FE7F4A6D7F49488149486D7F824948 8149486E7E011F153F4A6E7ED97FC082B60107B61280A441397DB848>I97 D<13FFB5FCA412077EAF4AB47E021F13F0027F13FC9138FE07FFDAF800138002E0EB7FC0 0280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F06E133F6EEB7F E06EEBFFC09026FDF00113809026F8FE0713009039F07FFFFCD9E01F13F0D9C00390C7FC 2F3A7EB935>I<903803FFE0011F13FC017F13FF2601FFC013804813002607FC0113C0EA 0FF8121F13F0123F6E13804848EB7F00153E92C7FC12FFA9127FA27F123FED01E06C7E15 036C6CEB07C06C6CEB0F806C6C131F6C9038E07F0039007FFFFC011F13F0010313802325 7DA42A>II<90 3803FF80011F13F0017F13FC3901FF83FF4848C613804848EB7FC0000FEC3FE04848131F 484814F0150F127F4914F8A200FF1407A390B6FCA301E0C8FCA5127F7FA2003F15787F00 1F15F86C6C13016C6CEB03F06C6CEB0FE0C69038C07FC06DB51200010F13FC010113E025 257DA42C>I103 D<13FFB5FCA412077EAFED7FE0913803FFF8020F13FE91381F83FFDA3C01138014 784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>II<14 1FEC7FC0ECFFE04913F0A76D13E0EC7FC0EC1F0091C7FCA9EC0FF0EB0FFFA4EB007F143F B3B0121FEA7FC0A2EAFFE0147F15E0A2ECFFC001E113806C481300383FFFFC000F13F000 0113801C4B86BA1D>I<13FFB5FCA412077EAF92381FFFE0A4923803FC00ED07F04B5A4B 5A4B5A03FEC7FC4A5A4A5A4A5AEC1FE0143F4A7E14FF81818114DFEC8FFFD9FE077F6E7F A26E7F6E7F6F7EA26F7E6F7E6F7E1780B5D8F83F13F8A42D3A7EB932>I<13FFB5FCA412 077EB3B3ACB512FCA4163A7DB91B>I<01FED97FF0EB0FFE00FF902603FFFC90387FFF80 020FD9FF01B512E0DA1F83903983F07FF0DA3E00903887C01F00070178DACF007F000349 14DE6D48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA453 >I<01FEEB7FE000FF903803FFF8020F13FE91381F83FFDA3C011380000713780003497E 6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F8 017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81 A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6C B45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01FF80B5001F13F0027F13 FC9138FE07FFDAF80113800003D9E00013C00280EB7FE091C713F0EE3FF8A2EE1FFCA3EE 0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF0031380DAFE0F13009138 7FFFFC021F13F0020390C7FC91C9FCACB512FCA42F357EA435>I<903A01FF800780011F EBE00F017FEBF81F3A01FFE0FC3F48EB803E3A07FE000F7F4848EB07FF121F497F123F49 7F127FA25B12FFAA6C7EA36C7E5D6C7E000F5C6C6C131F6C6C5B6CEBC1FD39007FFFF901 1F13E10103130190C7FCAC037F13FEA42F357DA432>I<9038FE07F800FFEB1FFE4A7E91 387C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00151E92C7FC91C8FCB3A2B5 12FEA422257EA427>I<90387FF0700003B512F0120F381FC01F383F0007007E1303007C 130112FC14007E7E01C0130013FCEBFFF06C13FEECFF806C14E06C14F06C14F87E000114 FCEA001F9038007FFE140700F0130114007E157E7E157C6C14FC6C14F8EBC0019038F00F F090B512E000F8148039E01FFC001F257DA426>I<130FA55BA45BA25B5BA25A1207001F EBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBE3E090387FFFC0011F1380 903803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C DA801F13E06CD9C07E13FF6DB45A011F13F0010313C030257DA435>IIIII E /Ft 2 51 df<137013F0120312FF 12FC1200B3A7487E387FFFE0A213217BA01E>49 DI E /Fu 22 123 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>46 D<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA2ED39FF1530A203707FED607FA203C07F16 3FA2DA01807F161FA24A486C7EA302066D7EA2020E80020C1303A2021C8002181301A24A 8082A24A81177FA291B77EA3D90180C7EA1FE0A201038291C8120FA2498201061507A201 0E82010C1503A249821701A20138828301788313F8486C83D80FFF03037FB500E0027FEB FFC0A342467DC549>65 D69 D75 D77 D82 D97 D99 D<167FED7FFFA315018182B3EC7F C0903803FFF090380FE07C90383F001E017E130748486D5A48487F48487F5B000F81485A A2485AA2127FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B00035C6C6C903807 7F806C6C010E13C0017F013C13FF90381FC0F8903807FFE001000180130030467DC436> I<49B4FC010F13E090383F83F090387E00FC49137E48487F485A4848EB1F80000F15C049 130F121F484814E01507A2007F15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16 306C7E1670000F15606C6C14E06D14C0000314016C6CEB03806C6CEB0F00013F131E9038 1FC0F8903807FFF001001380242E7DAC2B>II<13FE12FFA3120312011200B3EDFF80020313F091380F83 F891381E00FC02387F4A137E4A137F5C01FF6E7E5CA291C7FCA35BB3A8486C4A7EB5D8FE 3FB51280A331457EC436>104 D<13F0EA03FCA2487EA46C5AA2EA00F090C7FCAD13FE12 7FA3120312011200B3B0487EB512FCA316437EC21C>I<13FE12FFA3120312011200B3B3 B3A5487EB512FEA317457EC41C>108 D<01FEEBFF8000FF010313F091380F83F891381E 00FC000301387F000149137E000049137F5C01FF6E7E5CA291C7FCA35BB3A8486C4A7EB5 D8FE3FB51280A3312C7EAB36>110 DI<90 38FE01FF00FF010F13E091381F03F891383800FE000301F0137F000049EB3F806D48EB1F C04AEB0FE091C713F049140717F8160317FC160117FEA3EE00FFABEE01FEA3EE03FCA217 F816076D15F0EE0FE06E131F17C06EEB3F80496CEB7E0091387801FC91383E07F091380F FFC0DA03FEC7FC91C9FCAE487EB512FEA3303F7EAB36>I<3901FC03F800FFEB0FFEEC1E 1F9138383F800003EB707F000113E0000013C013FD9138803F00151E01FF90C7FC91C8FC A45BB3A67F487FB67EA3212C7EAB26>114 D<90383FF0303901FFFC703907E01EF0380F 8007381E0003481301007C130000781470A212F81530A27EA27E6C6C1300EA7FE013FE38 3FFFF06C13FE80000714C06C14E0C614F0011F13F81300EC0FFC140300C0EB01FE140015 7E7E153EA27EA36C143C6C147C15786C14F86CEB01F039F3C003E039F1F01FC039E07FFF 0038C01FF81F2E7DAC26>I<1306A5130EA4131EA3133E137EA213FE12011207001FB512 F0B6FCA2C648C7FCB3A4150CAA017E131C017F1318A26D133890381F8030ECC070903807 F1E0903803FFC09038007F001E3E7EBC26>I121 D<003FB612E0A29038C0003F90C713C0003CEC7F800038ECFF00A20030495A0070495AA2 4A5A0060495AA24A5A4A5AA2C7485A4AC7FC5B5C495A13075C495A131F4A1360495A495A A249C712C0485AA2485A485A1501485A48481303A24848EB07804848131F00FF14FF90B6 FCA2232B7DAA2B>I E /Fv 24 122 df<13FE3803FF80000F13E04813F04813F8A24813 FCA2B512FEA76C13FCA26C13F8A26C13F06C13E0000313803800FE0090C7FCB213FE3803 FF80000F13E04813F04813F8A24813FCA2B512FEA76C13FCA26C13F8A26C13F06C13E000 0313803800FE00174075BF2E>58 D65 D77 D80 D82 D<001FBE12E0A6481DF092C76C9038FC0003 02F0F0003F0280190791C88301FC1A00491B7F491B3FA2491B1F1D0F5B007F1DF8491B07 A490C91803A6481DFC481C01A5CA95C7FCB3B3B2021FBA12F0A766607ADF73>84 D<91381FFFFE0103B612F8011F15FF017F16C090B812F0489026F8001F13FC4803037F6E 6D7F486F806E6E7F717F717FA2717FA26C5B717F6C5BA238007FE0EB1F8090C9FCA5040F B5FC030FB6FC4AB7FC141F91B8FC0107ECF807011F1400017F13F890B512E00003148048 49C7FC485B485B5C485BA2485BA2B5FC5CA45FA26E5C7E6E5C6C167D6ED901FD7F6C6DD9 03F9EBFFC06C01FED90FF1ECFF806C9027FF807FE015C0000191B55A6C6CED007F011F02 FC7F010302F0130FD9001F0180010114804A407BBF50>97 D<903807FFC0B6FCA7C6FC7F 7FB3A8EFFFF8040FEBFFC0047F14F803C1B7FC03C716C003DFD9807F7F9227FFF8000F13 F804E001037F04806D7F4BC87F4B6F7F4B6F7F4B6F7F4B8385878587A287A28587A41C80 AC1C00A44F5BA363A24F5BA2636F4B5B616F5F6F4B5B6F92B5C7FC6F6C01035B6F6C495B 9126FE3FF0011F13F09126FC1FFE90B512C0DAF807B75ADAF0014BC8FC4A6C6C14F04A01 1F14804A010101F0C9FC51647BE35C>I100 D<92381FFFE00203B512FE021FECFFC0027F15F049B77E0107020313 FE499039F8007FFF4901E0011F7F4901806D7F4990C76C7F49486E7F488248498248707F 5C48717E485BA248717EA3485BA21A8084B5FCA391B9FCA41A0002E0CBFCA57EA3807EA3 6C6D161FF13F807E6E167F7E6C6DEEFF006C6D5D4E5A6C02C04A5A6D6DEC1FF86D01F84A 5A010F01FE49B45A6D9026FFE01F5B6D91B65A010094C7FC023F15FC020715F002001580 030701F0C8FC41407BBF4C>III<903807FFC0B6FCA7C6FC7F7FB3A894380FFFC0057F13 FC0403B6FC040F15C04C8193267FF81F7F9326FF80077F9227C1FE00037FDBC3F881DBC7 F07FDBCFC0815E03DFC8FC15FF4B835DA25DA25DA35DB3B1B7D8F803B712E0A753647AE3 5C>II< 903807FFC0B6FCA7C6FC7F7FB3B3B3B3ABB712F0A724647AE32D>108 D<902607FF8090260FFFC0ED3FFFB6027F01FC4AB512F00403B6020F14FC040F03C0013F 14FF4C6F498193267FF81F9028F001FFE07F7F9326FF80079028F803FE001F7F922781FE 00039026FC07F86D7FC6DA83F89226FE0FE0816DD987F06D4A487F6DD98FC06F48C7804C 163E039FC84A8003BF17FC03BE4D8203FC5FA24B5FA24B5FA34B5FB3B1B7D8F803B7D8E0 0FB71280A781407ABF8E>I<902607FF8090380FFFC0B6027F13FC0403B6FC040F15C04C 8193267FF81F7F9326FF80077F922781FE00037FC6DA83F8816DD987F07F6DD98FC0815E 039FC8FC15BF03BE8315FCA25DA25DA35DB3B1B7D8F803B712E0A753407ABF5C>I<9238 0FFFE092B512FE020FECFFE0023F15F891B712FE010349C66D7E4901F0011F7F011F01C0 010713F049496D7F4948C87F01FF8348496F7E48496F1380A248496F13C04819E0A24819 F0A248496F13F8A34819FCA4B518FEAC6C19FCA56C6D4B13F8A26C19F0A26C19E06E5D6C 19C0A26C6D4B13806C6D92B512006C6D4A5B6D6D495B6D6D495B6D01F0011F5B6D01FE90 B55A010390B7128001004CC7FC023F15F8020F15E0020192C8FCDA000F13E047407BBF52 >I<902607FFC0EB7FFCB6010FB512E0043F14FC03C1B7FC03C716C003CF16F092B5C680 04F8011F13FEC603C001077F013F4A6D804BC76C804B804B6F7F4B6F7F5D737FA2737FA2 878587A4851C80AC1C0061A363A26163A24F5BA24F5B6F5F616F92B55A6F4A5C6F4A91C7 FC6F6C495B70495B04F0013F13F0DCFE01B55A03E7B7128003E34BC8FC03E015F0041F14 80040101F0C9FC93CCFCB3A3B712F8A7515C7BBF5C>I<903A07FF8007FEB690381FFFC0 047F13F093B512FC038380923987FC3FFF16F092268FE07F1380C6EC9F806D4AB512C06D 13BF15BE15FCA25D711380A24B6D1300A2EF0FFC4BEB03F094C8FCA45DB3AEB712FCA73A 407BBF44>114 D<913A3FFFC00F800103B5EAFC3F011F91B5FC137F3901FFF0004890C7 121FD807FC1407D80FF080001F8148488049157F127FA2173F12FF7F7F7F6D92C7FCEBFF 8014F0ECFFC015FE6CECFFF016FE6C6F7E17E06C16F86C826C16FF6C17806C17C06C7E01 1F16E0010716F01301D9001F15F8EC007F1501DB001F13FC1603007E8100FEED007F173F 6C161FA2170F7F18F87FA26D16F06D151F7F6DED3FE06DED7FC06D6C14FF02E001071380 02FC013F130091B612FC018F15F0010315C026FC007F91C7FC48010713E036407BBF41> II<902603FFE09238 0FFF80B60203B6FCA7C6EE00036D826D82B3B160A460A26D5E60606D6D4A7E067E806D6D 02FE806D6DD903FCECFFE09239FF801FF8010091B512E06E15C0021F1500020314FCDA00 1F13E053407ABF5C>I<007FB600E049B512FEA7D8003F01F0C8000F13006DEF03F86F15 076D606F150F6D606F151FA26D6D4B5AA26D6E4A5AA26D6E92C7FC616E5E7013016E5E70 1303A26E6D495AA26E6D495AA26E6D5C181F6E6D5C183F6E5EEF807F6E93C8FC715AA26F EBE1FEA26FEBF3FCA26FEBFBF817FF6F5CA26F5CA36F5CA26F5CA26F91C9FCA2705AA270 5AA2705AA3705AA24C5AA25F163F5F167FD807F092CAFCD81FFC5C486C5C486C1301A2B5 6C485AA24B5A5E150F4B5A4A485A6C4A5A494848CBFC393FDE03FE391FF01FFC6CB55A6C 14E06C5CC649CCFCEB1FF04F5C7DBF57>121 D E /Fw 1 14 df13 D E /Fx 68 124 df12 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206 120E5A5A5A126009157AAD14>39 DI<12C07E12787E7E 120E7E7F6C7E12017F6C7EA21378A27FA37FA3131F7FA41480A21307AB130FA21400A45B 131EA35BA35BA25BA2485A5B1203485A90C7FC120E121E5A5A12E05A11437CB11B>I<12 3C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A5A126009157A8714 >44 DI<123C127E12FFA4127E123C08087A8714>I48 D<131C133C137CEA03FC12FFEAFC7C1200B3B113FEB512FEA2172C7AAB 23>III<140EA2141E143E147EA214FE130114BEEB 033E13071306130C131C131813301370136013C012011380EA03005A120E120C121C5A12 305A12E0B612FCA2C7EA3E00A9147F90381FFFFCA21E2C7EAB23>I<001C1307381F803F EBFFFE5C5C5C14C0D818FEC7FC90C8FCA8EB3F803819FFE0381BE1F8381F007C001E7F12 1C00187FC71380A2140F15C0A4127812FCA448EB1F8012E00060140000705B0030133E00 385B001E5B380F83F03803FFC0C690C7FC1A2D7CAB23>II<1230123C003FB512F8A215F05A15E039700001C000601480140348EB 0700140E140CC7121C5C143014705C5C1301495AA2130791C7FC5BA35BA2131E133EA513 7EAA133C1D2E7CAC23>III<123C12 7E12FFA4127E123C1200AD123C127E12FFA4127E123C081D7A9C14>I<3801FF80000F13 F0381F03F8383800FC48137E00F0133E6C133F7EA31278C7127EA214FCEB01F8EB03E0EB 07C01480EB0F00130E5BA213181338A21330A790C7FCA6137813FC487EA46C5A1378182E 7CAD21>63 D<4A7E4A7EA34A7EA24A7EA3EC19F8A3EC30FCA2EC70FEEC607EA24A7EA201 0180EC801FA249486C7EA301066D7EA2010E80010C1303010FB5FC498090381800010138 8001301300A24980167EA24980A200011680161F486C15C0D80FF0EC7FE0D8FFFC0103B5 FCA2302E7EAD35>65 DIIIIIIII<48B512E0A2390001FE006D5AB3AD127C12FEA4495A12 FC387003F06C485A381E0FC06CB4C7FCEA03FC1B2E7CAC24>IIIIIII82 D<90387FC0303901FFF0703807C07C390F001EF0001E1307481303481301140012 7000F01470A315307EA26C1400127EEA7F8013E06CB4FC6C13F06C13FE6C7F000114C06C 6C13E013039038003FF0EC07F81401140015FC157C12C0153CA37EA215787E6C14706C14 F06CEB01E039F78003C039E3F00F8039E0FFFE0038C01FF81E2F7CAD27>I<007FB712E0 A29039001F800F007C150300701500A200601660A200E01670A2481630A5C71500B3A94A 7E013FB512C0A22C2D7DAC33>IIII91 D93 D97 DII<15F8141FA214011400ADEB1FE0 EB7FFC3801F83E3807E007380FC003381F800190C7FC123E127EA2127C12FCA8127EA212 3E003F13016C1303380F80073807E00E3903F83CFC3A00FFF8FFC0EB1FE0222E7EAD27> III<15F890387F83FC3901FF E79E3903E1FE1E3807807C390F003C0C48EB3E00001E131E003E131FA6001E131E001F13 3E6C133C6C6C5A380FE1F0380DFFE0381C7F8090C8FCA3121E121F380FFFFCECFF806C14 E04814F0393F0007F8007C13010078EB007C12F848143CA36C147C00781478003EEB01F0 6CEB03E0390FE01FC00003B5120038007FF81F2C7E9D23>III107 DI<3B07C0FF800FF8D8 FFC39038E03FFE903ACF83F0F83F3C0FDE00F9E00F80D807F8EBFB804990397F0007C0A2 49137EA249137CB1486C01FEEB0FE03CFFFE0FFFE0FFFEA2371D7E9C3C>I<3807C0FFD8 FFC313C09038CF87E0390FDE01F0EA07F8496C7EA25BA25BB1486C487E3AFFFE1FFFC0A2 221D7E9C27>II<3807C1FE39FFC7FFC09038 DF07F0390FFC01F83907F000FC49137E815BED1F80A216C0150FA7ED1F80A3ED3F006D13 3E157E6D5B9038FC01F89038DF07E09038C7FF80D9C1FEC7FC01C0C8FCAA487EEAFFFEA2 222A7E9C27>I<380F81F838FF87FEEB8F3FEA0F9CEA07B813B0EBF01EEBE000A35BB048 7EB5FCA2181D7E9C1C>114 D<3803FF18000F13F8EA3F01387C0078007813385A1418A2 7E6C1300B47EEA7FFE383FFFC06C13E06C13F8000113FCEA000FEB00FE00C0137E143E6C 131EA27E141C6C133C6C137838FF01F038E7FFE000C11300171D7E9C1C>I<1360A413E0 A312011203A21207121FB512F0A23803E000AF1418A73801F03814303800F8F0EB7FE0EB 1F8015297FA81B>II<3AFFFC01FFC0A23A0FF000FE00 6C48137C000314385D6C7E15606D13E000005CA290387C0180A2EB7E03013E90C7FCA2EB 1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A221D7F9C25>I<3BFFFC3FFE0FFF A23B0FE003F003F8D807C09038E000F0020114E0D803E07F020314C0A23B01F007F80180 EC0678A23B00F80E7C0300EC0C3C01FCEB3E0790397C181E06A2013EEB1F0CEC300FA2D9 1F701398EC6007A2D90FE013F0ECC003A26D486C5AA36DC75A301D7F9C33>I<3AFFFC07 FF80A23A0FF003FC00000314F0000114C0D800F85B92C7FCEB7C06EB3E0E6D5A14B8EB0F B0EB07E013036D7E497E1307EB067C497EEB1C1F01387FEB700F496C7E6E7ED801C07F00 076D7E391FE003FC3AFFF00FFFC0A2221D7F9C25>I<3AFFFC01FFC0A23A0FF000FE006C 48137C000314385D6C7E15606D13E000005CA290387C0180A2EB7E03013E90C7FCA2EB1F 06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5AA2495AA2130391C8FC1278EAFC06A2 5B5BEA7878EA3FE0EA0FC0222A7F9C25>I<003FB51280A2EB003F003C14000038137E00 305BEA700100605B495A495A130F00005B495A49C7FC5B137E9038FC0180EA01F8120313 F03807E003EA0FC0001F1400138048485A007E5B00FE133FB6FCA2191D7E9C1F>II E end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 199 355 a Fx(F)-6 b(ormal)22 b(Asp)r(ects)j(of)e(Computing)h (\(1994\))h(3:)f(1{000)219 427 y(c)199 429 y Fw(\015)f Fx(1994)i(BCS)199 1513 y Fv(Reasoning)56 b(ab)5 b(out)55 b(Prolog)i(Programs:)199 1663 y(from)52 b(Mo)5 b(des)54 b(through)h(T)-5 b(yp)5 b(es)54 b(to)199 1812 y(Assertions)199 2022 y Fu(Krzysztof)34 b(R.)e(Apt)935 1986 y Fx(1)1007 2022 y Fu(and)h(Elena)f(Marc)m(hiori)1882 1986 y Fx(2)199 2115 y Ft(1)234 2139 y Fx(CWI,)199 2213 y(P)-6 b(.O.)23 b(Bo)n(x)h(94079,)h(1090)f(GB)g(Amsterdam,)d(The)j(Netherlands)199 2288 y(and)199 2363 y(F)-6 b(acult)n(y)25 b(of)e(Mathematics)h(and)g (Computer)g(Science,)199 2437 y(Univ)n(ersit)n(y)g(of)f(Amsterdam,)e (Plan)n(tage)k(Muidergrac)n(h)n(t)g(24)199 2512 y(1018)g(TV)e (Amsterdam,)e(The)k(Netherlands)199 2638 y Ft(2)257 2662 y Fx(CWI,)199 2736 y(P)-6 b(.O.)23 b(Bo)n(x)h(94079,)h(1090)f(GB)g (Amsterdam,)d(The)j(Netherlands)199 3122 y Fs(Keyw)m(ords:)j Fr(Prolog)f(programs,)f(program)h(v)n(eri\014cation.)199 3287 y Fs(Abstract.)46 b Fr(W)-7 b(e)44 b(pro)n(vide)g(here)g(a)g (systematic)f(comparativ)n(e)g(study)i(of)f(the)h(relativ)n(e)199 3379 y(strength)39 b(and)g(expressiv)n(e)e(p)r(o)n(w)n(er)h(of)h(a)g(n) n(um)n(b)r(er)g(of)g(metho)r(ds)g(for)g(program)e(analysis)199 3470 y(of)e(Prolog.)d(Among)i(others)g(w)n(e)g(sho)n(w)g(that)h(these)f (metho)r(ds)h(can)f(b)r(e)h(arranged)d(in)j(the)199 3561 y(follo)n(wing)28 b(hierarc)n(h)n(y:)g(mo)r(de)h(analysis)f Fq(\))i Fr(t)n(yp)r(e)f(analysis)f Fq(\))h Fr(monotonic)g(prop)r (erties)f Fq(\))199 3653 y Fr(non-monotonic)37 b(run-time)h(prop)r (erties.)e(W)-7 b(e)39 b(also)d(discuss)i(a)f(metho)r(d)h(allo)n(wing)f (us)h(to)199 3744 y(pro)n(v)n(e)26 b(global)h(run-time)g(prop)r (erties.)p 199 3831 1196 5 v 199 4188 a Fp(1.)56 b(In)m(tro)s(duction) 199 4381 y Fo(1.1.)d(Motiv)-6 b(ation)199 4566 y Fr(Ov)n(er)26 b(the)h(past)f(9)g(y)n(ears)f(a)i(n)n(um)n(b)r(er)f(of)h(prop)r(osals)e (w)n(ere)g(made)i(in)g(the)g(literature)f(for)g(the)199 4658 y(analysis)33 b(and)g(v)n(eri\014cation)f(of)i(Prolog)d(programs,) g(based)j(on)f(the)h(concepts)f(of)h(mo)r(des,)199 4749 y(t)n(yp)r(es)19 b(and)f(assertions,)e(b)r(oth)j(monotonic)f(ones)g (and)g(non-monotononic)f(ones,)g(lik)n(e)h Fn(v)s(ar)r Fr(\()p Fn(x)p Fr(\).)p 199 4984 V 195 5064 a Fm(Corr)l(esp)l(ondenc)l (e)35 b(and)e(o\013print)g(r)l(e)l(quests)g(to)t Fx(:)e(Elena)g(Marc)n (hiori,)f(CWI,)h(P)-6 b(.O.)30 b(Bo)n(x)i(94079,)g(1090)g(GB)199 5139 y(Amsterdam,)21 b(The)k(Netherlands)p eop %%Page: 2 2 2 1 bop 199 390 a Fx(2)1666 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena)g (Marc)n(hiori)199 573 y Fr(The)k(aim)g(of)g(this)g(pap)r(er)g(is)f(to)h (sho)n(w)f(that)i(these)f(metho)r(ds)g(can)f(b)r(e)i(arranged)c(in)k(a) e(hier-)199 664 y(arc)n(h)n(y)g(in)h(whic)n(h)g(increasingly)e (stronger)h(program)f(prop)r(erties)h(can)g(b)r(e)i(established)f(and) 199 756 y(in)g(whic)n(h)g(eac)n(h)e(metho)r(d)j(is)e(a)g (generalization)f(of)h(the)h(preceding)f(ones.)324 847 y(More)32 b(sp)r(eci\014cally)-7 b(,)32 b(w)n(e)h(deal)g(here)f(with)h (the)h(follo)n(wing)e(notions:)g(w)n(ell-mo)r(ded)h(pro-)199 938 y(grams,)f(essen)n(tially)h(due)g(to)g(Dem)n(binski)h(and)f(Ma )-23 b(luszynski)32 b([DM85],)i(w)n(ell-t)n(yp)r(ed)f(pro-)199 1029 y(grams,)24 b(due)h(to)g(Bronsard,)f(Lakshman)g(and)h(Reddy)g ([BLR92)o(],)g(the)h(assertional)d(metho)r(d)199 1121 y(of)k(Bossi)e(and)h(Co)r(cco)f([BC89)o(],)i(the)g(assertional)d(metho) r(d)j(of)f(Drab)r(en)n(t)g(and)g(Ma )-23 b(luszy)r(\023)-44 b(nski)199 1212 y([DM88].)33 b(Moreo)n(v)n(er)d(w)n(e)j(discuss)f(the)i (assertional)d(metho)r(d)i(of)g(Colussi)g(and)f(Marc)n(hiori)199 1303 y([CM91)o(],)g(whic)n(h)f(allo)n(ws)f(to)h(pro)n(v)n(e)f(global)g (run-time)h(prop)r(erties.)g(T)-7 b(o)31 b(render)f(the)i(exp)r(o-)199 1395 y(sition)27 b(uniform,)g(the)g(formalisms)e(and)i(the)g (terminology)e(used)i(will)g(sometimes)f(sligh)n(tly)199 1486 y(di\013er)i(from)f(those)g(of)h(the)g(original)e(w)n(orks.)324 1577 y(W)-7 b(e)38 b(b)r(eliev)n(e)f(that)h(the)g(systematic)f(presen)n (tation)g(of)g(these)h(metho)r(ds)g(of)g(program)199 1669 y(analysis)31 b(is)g(useful)h(for)f(a)h(n)n(um)n(b)r(er)f(of)h (reasons.)d(First)j(it)g(clari\014es)f(the)h(relationship)e(b)r(e-)199 1760 y(t)n(w)n(een)g(them.)h(Next,)f(it)h(allo)n(ws)d(us)j(to)e (justify)i(them)g(b)n(y)f(means)g(of)g(simpler)f(correctness)199 1851 y(pro)r(ofs)34 b(than)g(the)h(original)d(ones.)i(F)-7 b(urther,)34 b(it)h(suggests)e(in)h(a)g(natural)g(w)n(a)n(y)f(some)g (new)199 1943 y(results)i(ab)r(out)h(these)g(metho)r(ds.)g(Finally)-7 b(,)36 b(it)g(allo)n(ws)e(us)i(to)f(b)r(etter)h(understand)g(whic)n(h) 199 2034 y(program)26 b(prop)r(erties)g(can)i(b)r(e)g(established)f(b)n (y)g(means)g(of)h(whic)n(h)f(metho)r(d.)199 2293 y Fo(1.2.)53 b(Preliminaries)199 2469 y Fr(W)-7 b(e)25 b(consider)f(logic)g (programs)e(executed)j(b)n(y)g(means)f(of)g(the)i Fl(LD-r)l(esolution)6 b Fr(,)25 b(whic)n(h)f(con-)199 2560 y(sists)29 b(of)h(the)g (SLD-resolution)f(com)n(bined)g(with)h(the)g(leftmost)g(selection)f (rule.)g(An)h(SLD-)199 2652 y(deriv)-5 b(ation)23 b(in)h(whic)n(h)g (the)g(leftmost)g(selection)f(rule)g(is)h(used)g(is)f(called)g(an)h Fl(LD-derivation)6 b Fr(,)199 2743 y(or)27 b(simply)h(a)f Fl(derivation)6 b Fr(.)324 2834 y(W)-7 b(e)26 b(w)n(ork)d(here)i(with)h Fl(queries)7 b Fr(,)26 b(that)g(is)f(sequences)f(of)i(atoms,)e(instead) i(of)f Fl(go)l(als)7 b Fr(,)26 b(that)199 2926 y(is)39 b(constructs)e(of)i(the)f(form)g Fq( )j Fn(Q)p Fr(,)e(where)e Fn(Q)i Fr(is)f(a)g(query)-7 b(.)38 b(Apart)g(from)g(this)h(w)n(e)f(use) 199 3017 y(the)32 b(standard)f(notation)g(of)h(Llo)n(yd)f([Llo87)n(])h (and)g(Apt)g([Apt90].)g(In)g(particular,)e(giv)n(en)h(a)199 3108 y(syn)n(tactic)i(construct)g Fn(E)38 b Fr(\(so)33 b(for)g(example,)g(a)g(term,)g(an)g(atom)g(or)g(a)f(set)i(of)f (equations\))199 3200 y(w)n(e)39 b(denote)f(b)n(y)h Fl(vars)7 b Fr(\()p Fl(E)j Fr(\))40 b(the)f(set)f(of)h(the)g(v)-5 b(ariables)38 b(app)r(earing)f(in)i Fn(E)5 b Fr(.)39 b(V)-7 b(ariables)37 b(are)199 3291 y(denoted)24 b(with)f Fn(x;)14 b(y)s(;)g(z)t Fr(,)23 b(p)r(ossibly)g(subscripted,)g(while)g (terms)g(are)g(denoted)g(b)n(y)g Fn(r)n(;)14 b(s;)g(t)p Fr(,)23 b(p)r(os-)199 3382 y(sibly)i(subscripted.)h(Moreo)n(v)n(er,)c (w)n(e)j(adopt)g(the)h(Prolog)d(con)n(v)n(en)n(tion)g(to)j(denote)f(v) -5 b(ariables)199 3474 y(app)r(earing)23 b(in)h(a)f(Prolog)f(program)g (b)n(y)h(means)h(of)f(strings)g(starting)g(with)i(a)e(capital)g (letter.)324 3565 y(Giv)n(en)28 b(a)f(substitution)i Fn(\022)d Fr(=)d Fq(f)p Fn(x)1339 3577 y Fk(1)1377 3565 y Fn(=t)1449 3577 y Fk(1)1485 3565 y Fn(;)14 b(:::;)g(x)1675 3577 y Fj(n)1721 3565 y Fn(=t)1793 3577 y Fj(n)1838 3565 y Fq(g)p Fr(,)27 b(the)i(set)f Fq(f)p Fn(x)2293 3577 y Fk(1)2330 3565 y Fn(;)14 b(:)g(:)g(:)g(;)g(x)2562 3577 y Fj(n)2607 3565 y Fq(g)28 b Fr(of)g(v)-5 b(ariables)199 3656 y(is)39 b(denoted)g(b)n(y)g Fl(dom)7 b Fr(\()p Fn(\022)r Fr(\))41 b(and)e Fl(r)l(ange)6 b Fr(\()p Fn(\022)r Fr(\))40 b(denotes)f(the)g(set)h(of)f(v)-5 b(ariables)38 b(o)r(ccurring)f(in)199 3748 y Fq(f)p Fn(t)271 3760 y Fk(1)308 3748 y Fn(;)14 b(:)g(:)g(:)g(;)g(t)523 3760 y Fj(n)568 3748 y Fq(g)p Fr(.)26 b(Moreo)n(v)n(er,)f Fl(vars)7 b Fr(\()p Fn(\022)r Fr(\))24 b(=)f Fl(dom)7 b Fr(\()p Fn(\022)r Fr(\))18 b Fq([)g Fl(r)l(ange)7 b Fr(\()p Fn(\022)r Fr(\).)28 b(Finally)-7 b(,)27 b(a)g(substitution)g Fn(\032)h Fr(is)199 3839 y(called)c Fl(r)l(enaming)g Fr(if)g(it)g(is)g(a)f(1-1)g(and)h(on)n (to)f(mapping)g(from)h(its)g(domain)f(to)h(itself.)g(F)-7 b(or)23 b(t)n(w)n(o)199 3930 y(atoms)j(or)g(terms)h Fn(e)814 3942 y Fk(1)851 3930 y Fr(,)g Fn(e)940 3942 y Fk(2)977 3930 y Fr(,)g(w)n(e)f(denote)h(b)n(y)g Fn(mg)s(u)p Fr(\()p Fn(e)1765 3942 y Fk(1)1801 3930 y Fn(;)14 b(e)1877 3942 y Fk(2)1914 3930 y Fr(\))27 b(a)f(\014xed)h(most)g(general)e(uni\014er) i(\(in)199 4022 y(short)i(mgu\))g(of)g Fn(e)767 4034 y Fk(1)804 4022 y Fr(,)h Fn(e)896 4034 y Fk(2)933 4022 y Fr(.)f(Recall)g(that)h(mgu's)e(are)h(equiv)-5 b(alen)n(t)29 b(up)g(to)h(renaming,)e(i.e.,)h(if)h Fn(\022)199 4113 y Fr(and)e Fn(\014)k Fr(are)26 b(t)n(w)n(o)h(mgu's)g(of)h Fn(e)1109 4125 y Fk(1)1146 4113 y Fr(,)g Fn(e)1236 4125 y Fk(2)1300 4113 y Fr(then)g Fn(\022)e Fr(=)c Fn(\014)t(\032)p Fr(,)28 b(for)f(some)g(renaming)g Fn(\032)p Fr(.)199 4372 y Fp(2.)56 b(W)-9 b(ell-mo)s(ded)34 b(Programs)199 4548 y Fr(W)-7 b(e)33 b(start)f(b)n(y)g(in)n(tro)r(ducing)f(mo)r(des.)h (They)h(w)n(ere)e(\014rst)h(considered)f(in)i(Mellish)f([Mel81)o(],)199 4639 y(and)39 b(more)g(extensiv)n(ely)f(studied)i(in)f(Reddy)g([Red84)o (],)h([Red86)o(])f(and)g(Dem)n(binski)h(and)199 4731 y(Ma )-23 b(luszynski)27 b([DM85].)199 4865 y Fs(De\014nition)k(2.1.)40 b(\(Mo)s(de\))30 b Fr(Consider)g(an)h Fn(n)p Fr(-ary)e(relation)i(sym)n (b)r(ol)f Fn(p)p Fr(.)h(By)g(a)f Fl(mo)l(de)i Fr(for)199 4956 y Fn(p)e Fr(w)n(e)f(mean)g(a)g(function)h Fn(m)1089 4968 y Fj(p)1157 4956 y Fr(from)f Fq(f)p Fr(1)p Fn(;)14 b(:)g(:)g(:)e(;)i(n)p Fq(g)29 b Fr(to)g(the)h(set)g Fq(f)p Fr(+)p Fn(;)14 b Fq(\000)n(g)p Fr(.)29 b(If)h Fn(m)2582 4968 y Fj(p)2621 4956 y Fr(\()p Fn(i)p Fr(\))c(=)g(`+',)j(w)n(e)199 5048 y(call)f Fn(i)g Fr(an)g Fl(input)h(p)l(osition)h Fr(of)e Fn(p)g Fr(and)g(if)g Fn(m)1528 5060 y Fj(p)1567 5048 y Fr(\()p Fn(i)p Fr(\))c(=)f(`)p Fq(\000)p Fr(',)28 b(w)n(e)g(call)f Fn(i)h Fr(an)g Fl(output)h(p)l(osition)h Fr(of)e Fn(p)199 5139 y Fr(\(b)r(oth)h(w.r.t.)e Fn(m)722 5151 y Fj(p)760 5139 y Fr(\).)p eop %%Page: 3 3 3 2 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1792 b(3)324 573 y Fr(W)-7 b(e)34 b(write)f Fn(m)764 585 y Fj(p)836 573 y Fr(in)g(a)g(more)g(suggestiv)n(e)f(form)h Fn(p)p Fr(\()p Fn(m)1975 585 y Fj(p)2013 573 y Fr(\(1\))p Fn(;)14 b(:)g(:)g(:)g(;)g(m)2377 585 y Fj(p)2415 573 y Fr(\()p Fn(n)p Fr(\)\).)34 b(By)g(a)f Fl(mo)l(ding)199 664 y Fr(w)n(e)27 b(mean)h(a)f(collection)g(of)h(mo)r(des,)f(eac)n(h)g (for)g(a)g(di\013eren)n(t)h(relation)f(sym)n(b)r(ol.)375 b Fi(2)324 800 y Fr(Mo)r(des)19 b(indicate)g(ho)n(w)f(the)i(argumen)n (ts)e(of)h(a)f(relation)g(should)h(b)r(e)h(used.)f(The)g(de\014nition) 199 892 y(of)26 b(mo)r(ding)f(assumes)g(one)g(mo)r(de)h(p)r(er)f (relation)g(in)h(a)f(program.)e(Multiple)k(mo)r(des)e(ma)n(y)g(b)r(e) 199 983 y(obtained)30 b(b)n(y)g(simply)g(renaming)g(the)g(relations.)f (In)i(the)f(remainder)f(of)i(this)f(section)g(w)n(e)199 1074 y(adopt)d(the)h(follo)n(wing)199 1211 y Fs(Assumption)g(2.2.)40 b Fl(Every)30 b(r)l(elation)f Fr(has)e(a)g(\014xed)h(mo)r(de)f(asso)r (ciated)g(with)h(it.)199 1347 y(This)c(will)g(allo)n(w)e(us)i(to)f (talk)g(ab)r(out)h(input)g(p)r(ositions)f(and)h(output)g(p)r(ositions)f (of)h(an)f(atom.)324 1438 y(W)-7 b(e)31 b(no)n(w)e(in)n(tro)r(duce)h (the)h(notion)f(of)g(a)g(w)n(ell-mo)r(ded)g(program.)e(The)j(concept)f (is)g(due)199 1530 y(to)e(Dem)n(binski)g(and)f(Ma )-23 b(luszynski)27 b([DM85];)h(w)n(e)f(use)h(here)f(an)h(elegan)n(t)e(form) n(ulation)h(due)199 1621 y(to)34 b(Rosen)n(blueth)f([Ros91)n(])h (\(whic)n(h)g(is)f(equiv)-5 b(alen)n(t)33 b(to)g(that)h(of)g(Drab)r(en) n(t)f([Dra87)n(])h(where)199 1712 y(w)n(ell-mo)r(ded)23 b(programs)d(are)i(called)g(simple\).)h(The)g(de\014nition)g(of)g(a)f (w)n(ell-mo)r(ded)h(program)199 1804 y(constrains)c(the)h(\\\015o)n(w)f (of)h(data")f(through)g(the)i(clauses)e(of)h(the)g(programs.)e(T)-7 b(o)20 b(simplify)g(the)199 1895 y(notation,)27 b(when)g(writing)f(an)h (atom)g(as)f Fn(p)p Fr(\()p Fs(u)p Fn(;)14 b Fs(v)q Fr(\),)28 b(w)n(e)f(no)n(w)f(assume)g(that)i Fs(u)f Fr(is)f(a)h(sequence)199 1986 y(of)c(terms)f(\014lling)g(in)h(the)g(input)g(p)r(ositions)f(of)h Fn(p)f Fr(and)h(that)f Fs(v)h Fr(is)g(a)f(sequence)g(of)g(terms)g (\014lling)199 2077 y(in)28 b(the)g(output)g(p)r(ositions)f(of)h Fn(p)p Fr(.)199 2214 y Fs(De\014nition)j(2.3.)40 b(\(W)-8 b(ell-Mo)s(ded\))199 2300 y(-)42 b Fr(A)28 b(query)e Fn(p)635 2312 y Fk(1)672 2300 y Fr(\()p Fs(s)742 2324 y(1)794 2300 y Fn(;)14 b Fs(t)868 2324 y(1)920 2300 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g(p)1179 2312 y Fj(n)1224 2300 y Fr(\()p Fs(s)1294 2312 y(n)1351 2300 y Fn(;)g Fs(t)1425 2312 y(n)1482 2300 y Fr(\))28 b(is)g(called)f Fl(wel)t(l-mo)l(de)l(d)38 b Fr(if)28 b(for)f Fn(i)c Fq(2)g Fr([1)p Fn(;)14 b(n)p Fr(])1280 2528 y Fl(vars)7 b Fr(\()p Fs(s)1506 2557 y(i)1537 2528 y Fr(\))24 b Fq(\022)1681 2424 y Fh(i)5 b Fg(\000)p Fh(1)1696 2449 y Ff([)1680 2626 y Fh(j)j Fk(=)p Fh(1)1817 2528 y Fl(vars)f Fr(\()p Fs(t)2042 2557 y(j)2077 2528 y Fr(\))p Fn(:)199 2761 y Fs(-)42 b Fr(A)29 b(clause)f Fn(p)652 2773 y Fk(0)689 2761 y Fr(\()p Fs(t)758 2786 y(0)811 2761 y Fn(;)14 b Fs(s)886 2786 y(n)p Fk(+)p Fs(1)1041 2761 y Fr(\))26 b Fq( )f Fn(p)1249 2773 y Fk(1)1286 2761 y Fr(\()p Fs(s)1356 2786 y(1)1408 2761 y Fn(;)14 b Fs(t)1482 2786 y(1)1534 2761 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g(p)1793 2773 y Fj(n)1838 2761 y Fr(\()p Fs(s)1908 2773 y(n)1965 2761 y Fn(;)g Fs(t)2039 2773 y(n)2096 2761 y Fr(\))30 b(is)e(called)h Fl(wel)t(l-mo)l(de)l(d)39 b Fr(if)30 b(for)324 2863 y Fn(i)22 b Fq(2)i Fr([1)p Fn(;)14 b(n)k Fr(+)g(1])1280 3067 y Fl(vars)7 b Fr(\()p Fs(s)1506 3096 y(i)1537 3067 y Fr(\))24 b Fq(\022)1681 2964 y Fh(i)5 b Fg(\000)p Fh(1)1696 2988 y Ff([)1680 3165 y Fh(j)j Fk(=)p Fh(0)1817 3067 y Fl(vars)f Fr(\()p Fs(t)2042 3096 y(j)2077 3067 y Fr(\))p Fn(:)199 3275 y Fs(-)42 b Fr(A)28 b(program)d(is)j(called)f Fl(wel)t(l-mo)l(de)l(d)38 b Fr(if)28 b(ev)n(ery)e(clause)h(of)h(it)g (is.)784 b Fi(2)199 3412 y Fr(Th)n(us,)28 b(a)f(query)g(is)g(w)n (ell-mo)r(ded)g(if)199 3503 y(-)j(ev)n(ery)f(v)-5 b(ariable)29 b(o)r(ccurring)g(in)h(an)g(input)h(p)r(osition)f(of)g(an)g(atom)f(\()p Fn(i)f Fq(2)f Fr([1)p Fn(;)14 b(n)p Fr(]\))30 b(o)r(ccurs)f(in)199 3594 y(an)f(output)g(p)r(osition)f(of)h(an)f(earlier)f(\()p Fn(j)i Fq(2)c Fr([1)p Fn(;)14 b(i)j Fq(\000)h Fr(1]\))28 b(atom.)199 3686 y(And)g(a)g(clause)f(is)g(w)n(ell-mo)r(ded)g(if)199 3777 y(-)f(\()p Fn(i)d Fq(2)g Fr([1)p Fn(;)14 b(n)p Fr(]\))25 b(ev)n(ery)g(v)-5 b(ariable)24 b(o)r(ccurring)g(in)i(an)g(input)g(p)r (osition)g(of)f(a)g(b)r(o)r(dy)h(atom)f(o)r(ccurs)199 3868 y(either)32 b(in)g(an)f(input)i(p)r(osition)f(of)f(the)i(head)e (\()p Fn(j)k Fr(=)30 b(0\),)i(or)f(in)h(an)f(output)h(p)r(osition)g(of) g(an)199 3960 y(earlier)26 b(\()p Fn(j)j Fq(2)23 b Fr([1)p Fn(;)14 b(i)k Fq(\000)g Fr(1]\))27 b(b)r(o)r(dy)h(atom,)199 4051 y(-)d(\()p Fn(i)e Fr(=)f Fn(n)12 b Fr(+)g(1\))25 b(ev)n(ery)e(v)-5 b(ariable)24 b(o)r(ccurring)f(in)i(an)f(output)h(p)r (osition)g(of)f(the)h(head)g(o)r(ccurs)e(in)199 4142 y(an)29 b(input)i(p)r(osition)e(of)g(the)h(head)f(\()p Fn(j)i Fr(=)26 b(0\),)j(or)g(in)h(an)f(output)h(p)r(osition)f(of)g(a)g (b)r(o)r(dy)h(atom)199 4234 y(\()p Fn(j)f Fq(2)23 b Fr([1)p Fn(;)14 b(n)p Fr(]\).)199 4365 y(Note)31 b(that)g(a)f(query)f(with)j (only)e(one)g(atom)g(is)g(w)n(ell-mo)r(ded)g(i\013)h(this)g(atom)f(is)h (ground)e(in)199 4456 y(its)j(input)g(p)r(ositions.)f(The)g(follo)n (wing)g(notion)g(is)g(due)g(to)h(Dem)n(binski)f(and)g(Ma )-23 b(luszynski)199 4548 y([DM85].)199 4684 y Fs(De\014nition)31 b(2.4.)40 b Fr(W)-7 b(e)25 b(call)f(an)h(LD-deriv)-5 b(ation)24 b Fl(data)j(driven)32 b Fr(if)25 b(all)g(atoms)f(selected)g (in)h(it)199 4775 y(are)i(ground)f(in)i(their)g(input)g(p)r(ositions.) 1545 b Fi(2)324 4911 y Fr(The)19 b(follo)n(wing)f(lemma)h(sho)n(ws)f (the)i(\\p)r(ersistence")e(of)h(the)g(notion)g(of)g(w)n(ell-mo)r (dedness.)199 5048 y Fs(Lemma)26 b(2.5.)40 b Fr(An)29 b(LD-resolv)n(en)n(t)f(of)h(a)g(w)n(ell-mo)r(ded)f(query)h(and)g(a)f(w) n(ell-mo)r(ded)h(clause)199 5139 y(that)f(is)g(v)-5 b(ariable)26 b(disjoin)n(t)i(with)g(it,)g(is)g(w)n(ell-mo)r(ded.)p eop %%Page: 4 4 4 3 bop 199 390 a Fx(4)1666 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena)g (Marc)n(hiori)199 573 y Fl(Pr)l(o)l(of.)40 b Fr(An)e(LD-resolv)n(en)n (t)e(of)h(a)g(query)g(and)h(a)f(clause)g(is)h(obtained)f(b)n(y)g(means) h(of)f(the)199 664 y(follo)n(wing)27 b(three)g(op)r(erations:)199 806 y Fs(-)42 b Fr(instan)n(tiation)27 b(of)g(a)g(query)-7 b(,)199 915 y Fs(-)42 b Fr(instan)n(tiation)27 b(of)g(a)g(clause,)199 1023 y Fs(-)42 b Fr(replacemen)n(t)23 b(of)i(the)f(\014rst)h(atom,)f (sa)n(y)f Fn(H)7 b Fr(,)24 b(of)h(a)f(query)f(b)n(y)i(the)f(b)r(o)r(dy) h(of)f(a)g(clause)g(whose)324 1115 y(head)j(is)h Fn(H)7 b Fr(.)324 1256 y(So)27 b(w)n(e)g(only)h(need)f(to)h(pro)n(v)n(e)e(the) i(follo)n(wing)e(t)n(w)n(o)h(claims.)199 1399 y Fs(Claim)h(1.)41 b Fr(An)28 b(instance)f(of)h(a)f(w)n(ell-mo)r(ded)g(query)g(\(resp.)g (clause\))g(is)h(w)n(ell-mo)r(ded.)199 1542 y Fl(Pr)l(o)l(of.)75 b Fr(It)36 b(su\016ces)g(to)g(note)g(that)g(for)f(an)n(y)g(sequences)g (of)h(terms)g Fs(s)p Fn(;)14 b Fs(t)2511 1567 y(1)2562 1542 y Fn(;)g(:)g(:)g(:)g(;)g Fs(t)2784 1554 y(n)2877 1542 y Fr(and)36 b(a)199 1642 y(substitution)28 b Fn(\033)s Fr(,)h Fl(vars)7 b Fr(\()p Fs(s)p Fr(\))23 b Fq(\022)1132 1579 y Ff(S)1201 1600 y Fh(n)1201 1667 y(j)8 b Fk(=)p Fh(1)1342 1642 y Fl(vars)f Fr(\()p Fs(t)1567 1671 y(j)1602 1642 y Fr(\))27 b(implies)h Fl(vars)7 b Fr(\()p Fs(s)p Fn(\033)s Fr(\))24 b Fq(\022)2363 1579 y Ff(S)2432 1600 y Fh(n)2432 1667 y(j)8 b Fk(=)p Fh(1)2574 1642 y Fl(vars)f Fr(\()p Fs(t)2799 1671 y(j)2833 1642 y Fn(\033)s Fr(\).)88 b Fi(2)199 1804 y Fs(Claim)28 b(2.)41 b Fr(Supp)r(ose)36 b Fn(H)r(;)14 b Fs(A)36 b Fr(is)g(a)g(w)n(ell-mo)r(ded)g(query)f(and)h Fn(H)44 b Fq( )37 b Fs(B)f Fr(is)g(a)g(w)n(ell-mo)r(ded)199 1896 y(clause.)27 b(Then)h Fs(B)p Fn(;)14 b Fs(A)28 b Fr(is)f(a)g(w)n(ell-mo)r(ded)h(query)-7 b(.)199 2038 y Fl(Pr)l(o)l(of.)53 b Fr(Let)25 b Fn(H)30 b Fr(=)22 b Fn(p)p Fr(\()p Fs(s)p Fn(;)14 b Fs(t)p Fr(\))25 b(and)f Fs(B)f Fr(=)g Fn(p)1423 2050 y Fk(1)1460 2038 y Fr(\()p Fs(s)1530 2063 y(1)1582 2038 y Fn(;)14 b Fs(t)1656 2063 y(1)1708 2038 y Fr(\))p Fn(;)g(:)g(:)g(:)f(;)h(p)1966 2050 y Fj(n)2011 2038 y Fr(\()p Fs(s)2081 2050 y(n)2138 2038 y Fn(;)g Fs(t)2212 2050 y(n)2270 2038 y Fr(\).)24 b(W)-7 b(e)25 b(ha)n(v)n(e)f Fl(vars)7 b Fr(\()p Fs(s)p Fr(\))23 b(=)g Fq(;)199 2129 y Fr(since)e Fn(H)29 b Fr(is)21 b(the)h(\014rst)f(atom)g(of)g(a)g(w)n(ell-mo)r(ded)g(query)-7 b(.)21 b(Th)n(us)g Fs(B)g Fr(is)g(w)n(ell-mo)r(ded.)g(Moreo)n(v)n(er,) 199 2221 y Fl(vars)7 b Fr(\()p Fs(t)p Fr(\))27 b Fq(\022)574 2158 y Ff(S)643 2179 y Fh(n)643 2246 y(j)8 b Fk(=)p Fh(1)785 2221 y Fl(vars)f Fr(\()p Fs(t)1010 2250 y(j)1044 2221 y Fr(\),)30 b(since)f Fn(H)k Fq( )26 b Fs(B)j Fr(is)g(a)g(w)n(ell-mo)r (ded)g(clause)g(and)g Fl(vars)7 b Fr(\()p Fs(s)p Fr(\))27 b(=)f Fq(;)p Fr(.)199 2332 y(These)i(t)n(w)n(o)e(observ)-5 b(ations)26 b(imply)i(the)g(claim.)1363 b Fi(2)324 2542 y Fr(The)32 b(de\014nition)g(of)f(a)g(w)n(ell-mo)r(ded)h(program)d(is)j (designed)f(in)h(suc)n(h)f(a)h(w)n(a)n(y)e(that)i(the)199 2633 y(follo)n(wing)27 b(theorem,)g(also)f(due)i(to)g(Dem)n(binski)g (and)f(Ma )-23 b(luszynski)27 b([DM85)o(],)h(holds.)199 2775 y Fs(Theorem)h(2.6.)40 b Fr(Let)25 b Fn(P)38 b Fr(and)25 b Fn(Q)h Fr(b)r(e)g(w)n(ell-mo)r(ded.)f(Then)h(all)f(LD-deriv)-5 b(ations)25 b(of)g Fn(Q)h Fr(in)g Fn(P)199 2866 y Fr(are)h(data)g(driv) n(en.)199 3008 y Fl(Pr)l(o)l(of.)39 b Fr(Note)e(that)g(the)h(\014rst)e (atom)h(of)g(a)g(w)n(ell-mo)r(ded)f(query)g(is)h(ground)f(in)i(its)f (input)199 3100 y(p)r(ositions)f(and)f(a)h(v)-5 b(arian)n(t)35 b(of)h(a)f(w)n(ell-mo)r(ded)h(clause)f(is)h(w)n(ell-mo)r(ded.)f(The)h (conclusion)199 3191 y(no)n(w)27 b(follo)n(ws)g(b)n(y)g(Lemma)g(2.5.) 1840 b Fi(2)324 3400 y Fr(The)27 b(follo)n(wing)g(is)g(a)h(w)n(ell-kno) n(wn)e(conclusion)h(of)g(this)h(theorem.)199 3543 y Fs(Corollary)k (2.7.)40 b Fr(Let)29 b Fn(P)40 b Fr(and)29 b Fn(Q)f Fr(b)r(e)h(w)n (ell-mo)r(ded.)g(Then)g(for)f(ev)n(ery)f(computed)i(answ)n(er)199 3634 y(substitution)f Fn(\033)s Fr(,)h Fn(Q\033)h Fr(is)e(ground.)199 3776 y Fl(Pr)l(o)l(of.)33 b Fr(Let)e Fs(x)g Fr(stand)f(for)h(the)g (sequence)f(of)h(all)f(v)-5 b(ariables)29 b(that)i(app)r(ear)f(in)h Fn(Q)p Fr(.)g(Let)g Fn(p)f Fr(b)r(e)199 3867 y(a)e(new)f(relation)g(of) h(arit)n(y)f(equal)g(to)h(the)g(length)g(of)f Fs(x)i Fr(and)e(with)h(all)g(p)r(ositions)f(mo)r(ded)h(as)199 3959 y(input.)h(Then)e Fn(Q;)14 b(p)p Fr(\()p Fs(x)p Fr(\))28 b(is)g(a)f(w)n(ell-mo)r(ded)g(query)-7 b(.)324 4050 y(No)n(w,)29 b Fn(\033)j Fr(is)d(a)g(computed)g(answ)n(er)f (substitution)i(for)e Fn(Q)h Fr(in)h Fn(P)41 b Fr(i\013)29 b Fn(p)p Fr(\()p Fs(x)p Fr(\))p Fn(\033)34 b Fr(is)29 b(a)g(selected)199 4141 y(atom)18 b(in)h(an)f(LD-deriv)-5 b(ation)18 b(of)h Fn(Q;)14 b(p)p Fr(\()p Fs(x)p Fr(\))k(in)h Fn(P)12 b Fr(.)19 b(The)f(conclusion)g(no)n(w)g(follo)n(ws)f(b)n(y)h (Theorem)199 4233 y(2.6.)2697 b Fi(2)324 4442 y Fr(Let)28 b(us)f(see)g(no)n(w)g(ho)n(w)g(these)h(results)f(can)g(b)r(e)h(applied) g(to)f(sp)r(eci\014c)h(programs.)199 4584 y Fs(Example)g(2.8.)41 b Fr(Consider)26 b(the)i(program)e Fe(quicksort)p Fr(:)330 4727 y Fe(qs\([X)42 b(|)h(Xs],)f(Ys\))g Fq( )461 4818 y Fe(part\(X,)e(Xs,)j(Littles,)d(Bigs\),)h(qs\(Littles,)e(Ls\),)461 4909 y(qs\(Bigs,)h(Bs\),)i(app\(Ls,)f([X)h(|)i(Bs],)e(Ys\).)330 5000 y(qs\([],)f([]\))h Fq( )i Fe(.)330 5139 y(part\(X,)d([Y)h(|)i (Xs],)e([Y)g(|)h(Ls],)f(Bs\))h Fq( )p eop %%Page: 5 5 5 4 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1792 b(5)461 573 y Fe(X)43 b Fn(>)g Fe(Y,)g(part\(X,)e(Xs,)h(Ls,)g(Bs\).)330 664 y(part\(X,)f([Y)h(|)i(Xs],)e(Ls,)g([Y)h(|)g(Bs]\))f Fq( )461 756 y Fe(X)h Fq(\024)g Fe(Y,)g(part\(X,)e(Xs,)h(Ls,)g(Bs\).) 330 847 y(part\(X,)f([],)h([],)g([]\))h Fq( )g Fe(.)330 985 y(app\([X|Xs],)c(Ys,)j([X|Zs]\))f Fq( )j Fe(app\(Xs,)c(Ys,)j(Zs\).) 330 1077 y(app\([],)e(Ys,)h(Ys\))p Fq( )g Fe(.)324 1226 y Fr(W)-7 b(e)19 b(mo)r(de)f(it)h(as)f(follo)n(ws:)f Fe(qs\(+,-\))p Fr(,)f Fe(part\(+,+,-,-\))p Fr(,)d Fe(app\(+,+,-\))p Fr(,)h Fn(>)p Fe(\(+,+\))p Fr(,)i Fq(\024)p Fe(\(+,+\))p Fr(.)199 1317 y(It)35 b(is)f(easy)f(to)h(c)n(hec)n(k)f(that)i Fe(quicksort)30 b Fr(is)k(then)h(w)n(ell-mo)r(ded.)e(Assume)i(no)n(w)e (that)h Fn(s)h Fr(is)199 1408 y(a)i(ground)f(term.)h(By)g(Theorem)f (2.6)g(all)h(LD-deriv)-5 b(ations)36 b(of)i Fe(qs\(s,t\))c Fr(in)j Fe(quicksort)199 1500 y Fr(are)27 b(data)g(driv)n(en)f(and)i(b) n(y)f(Corollary)e(2.7)h(w)n(e)h(conclude)h(that)f(all)g(the)h(computed) g(answ)n(er)199 1591 y(substitutions)g Fn(\033)j Fr(are)c(suc)n(h)g (that)h Fn(t\033)j Fr(is)d(ground.)1278 b Fi(2)324 1740 y Fr(In)23 b(conclusion,)f(mo)r(de)h(analysis)f(is)h(su\016cien)n(t)g (to)g(deriv)n(e)f(information)g(on)h(groundness)199 1831 y(of)34 b(atom)g(argumen)n(ts,)f(b)r(efore)h(or)f(after)h(their)g (selection.)g(Also,)g(as)g(sho)n(wn)f(in)i(Apt)g(and)199 1923 y(P)n(ellegrini)24 b([AP94)n(])h(\(and)g(on)g(whic)n(h)g(this)g (section)g(is)f(based\),)h(the)g(mo)r(des)g(can)f(b)r(e)i(used)f(to)199 2014 y(pro)n(vide)32 b(su\016cien)n(t)h(synctactic)g(conditions)g(that) g(allo)n(w)f(the)h(o)r(ccur-c)n(hec)n(k)f(to)h(b)r(e)g(safely)199 2105 y(omitted)28 b(from)g(the)g(uni\014cation)f(algorithm)f(in)i (Prolog)e(implemen)n(tations.)199 2414 y Fp(3.)56 b(W)-9 b(ell-t)m(yp)s(ed)36 b(Programs)199 2607 y Fo(3.1.)53 b(T)m(yp)s(es)35 b(and)g(T)m(yp)s(e)g(Judgemen)m(ts)199 2791 y Fr(T)-7 b(o)32 b(deal)g(with)h(run-time)f(errors)e(w)n(e)i(in)n (tro)r(duce)g(the)g(notion)g(of)g(a)g(t)n(yp)r(e.)h(W)-7 b(e)32 b(adopt)g(the)199 2882 y(follo)n(wing)27 b(general)f (de\014nition.)199 3033 y Fs(De\014nition)31 b(3.1.)40 b(\(T)m(yp)s(e\))26 b Fr(A)g Fl(typ)l(e)32 b Fr(is)26 b(a)f(decidable)g(set)g(of)h(terms)f(closed)f(under)i(substi-)199 3125 y(tution.)2583 b Fi(2)324 3273 y Fr(Certain)27 b(t)n(yp)r(es)g (will)h(b)r(e)g(of)g(sp)r(ecial)f(in)n(terest:)324 3367 y Fl(List)35 b Fr(|)28 b(the)g(set)g(of)f(lists,)324 3460 y Fl(Gae)35 b Fr(|)27 b(the)h(set)g(of)f(ground)g(arithmetic)g (expressions)f(\(gae's)h(in)h(short\),)324 3553 y Fl(ListGae)35 b Fr(|)27 b(the)h(set)g(of)f(lists)h(of)g(gae's.)324 3646 y Fl(Gr)l(ound)36 b Fr(|)28 b(the)g(set)f(of)h(ground)f(terms.)199 3801 y(Of)33 b(course,)e(the)i(use)g(of)f(the)i(t)n(yp)r(e)e Fl(List)41 b Fr(assumes)32 b(the)h(existence)f(of)h(the)g(empt)n(y)f (list)h Fe([])199 3892 y Fr(and)26 b(the)g(list)f(constructor)f Fe([.|.])g Fr(in)i(the)f(language,)f(the)i(use)g(of)f(the)h(t)n(yp)r(e) g Fl(Gae)32 b Fr(assumes)199 3984 y(the)h(existence)e(of)h(the)g(n)n (umeral)f Fe(O)h Fr(and)g(the)g(successor)e(function)i Fe(s\(.\))f Fr(and)h(the)g(use)g(of)199 4075 y(the)h(t)n(yp)r(e)g Fl(ListGae)40 b Fr(assumes)32 b(the)h(existence)f(of)h(what)g(the)g (use)f(of)h(the)g(t)n(yp)r(es)g Fl(List)41 b Fr(and)199 4166 y Fl(Gae)35 b Fr(implies.)324 4259 y(Throughout)23 b(the)i(pap)r(er)g(w)n(e)f(\014x)h(a)f(sp)r(eci\014c)h(set)g(of)f(t)n (yp)r(es,)h(denoted)g(b)n(y)f Fl(T)-6 b(yp)l(es)7 b Fr(,)26 b(whic)n(h)199 4351 y(includes)g(the)h(ab)r(o)n(v)n(e)e(ones.)g(W)-7 b(e)27 b(call)e(a)h(construct)g(of)g(the)g(form)g Fn(s)d Fr(:)g Fn(S)5 b Fr(,)26 b(where)g Fn(s)g Fr(is)g(a)g(term)199 4442 y(and)36 b Fn(S)42 b Fr(is)36 b(a)g(t)n(yp)r(e,)g(a)g Fl(typ)l(e)l(d)i(term)6 b Fr(.)37 b(Giv)n(en)f(a)g(sequence)g Fs(s)23 b Fr(:)g Fs(S)37 b Fr(=)h Fn(s)2402 4454 y Fk(1)2477 4442 y Fr(:)f Fn(S)2588 4454 y Fk(1)2625 4442 y Fn(;)14 b(:)g(:)g(:)g(;)g(s)2849 4454 y Fj(n)2932 4442 y Fr(:)37 b Fn(S)3043 4454 y Fj(n)199 4533 y Fr(of)h(t)n(yp)r(ed)g(terms,)f(w)n (e)h(write)f Fs(s)j Fq(2)g Fs(S)e Fr(if)g(for)g Fn(i)h Fq(2)h Fr([1)p Fn(;)14 b(n)p Fr(])38 b(w)n(e)f(ha)n(v)n(e)f Fn(s)2402 4545 y Fj(i)2470 4533 y Fq(2)k Fn(S)2616 4545 y Fj(i)2644 4533 y Fr(,)e(and)f(de\014ne)199 4625 y Fl(vars)7 b Fr(\()p Fs(s)24 b Fr(:)f Fs(S)p Fr(\))g(=)g Fl(vars)7 b Fr(\()p Fs(s)p Fr(\).)27 b(F)-7 b(urther,)26 b(w)n(e)f(abbreviate)g (the)i(sequence)e Fn(s)2372 4637 y Fk(1)2409 4625 y Fn(\022)r(;)14 b(:::;)g(s)2632 4637 y Fj(n)2678 4625 y Fn(\022)28 b Fr(to)e Fs(s)p Fn(\022)r Fr(.)g(W)-7 b(e)199 4716 y(sa)n(y)27 b(that)h Fs(s)22 b Fr(:)h Fs(S)28 b Fr(is)g Fl(r)l(e)l(alizable)h Fr(if)f Fs(s)p Fn(\021)e Fq(2)e Fs(S)j Fr(for)g(some)g Fn(\021)s Fr(.)199 4873 y Fs(De\014nition)k(3.2.)199 4971 y(-)42 b Fr(By)27 b(a)g Fl(typ)l(e)j(judgement)36 b Fr(w)n(e)27 b(mean)g(a)h(statemen)n(t)f(of)h(the)g(form)523 5118 y Fs(s)23 b Fr(:)g Fs(S)51 b Fq(\))f Fs(t)24 b Fr(:)f Fs(T)p Fn(:)1919 b Fr(\(1\))p eop %%Page: 6 6 6 5 bop 199 390 a Fx(6)1666 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena)g (Marc)n(hiori)199 573 y Fs(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i(a)f (t)n(yp)r(e)h(judgemen)n(t)g(\(1\))g Fl(is)i(true)6 b Fr(,)27 b(and)g(write)1388 713 y Fq(j)-14 b Fr(=)22 b Fs(s)h Fr(:)g Fs(S)51 b Fq(\))g Fs(t)23 b Fr(:)g Fs(T)q Fn(;)324 854 y Fr(if)28 b(for)f(all)g(substitutions)h Fn(\022)r Fr(,)g Fs(s)p Fn(\022)d Fq(2)f Fs(S)j Fr(implies)h Fs(t)p Fn(\022)e Fq(2)d Fs(T)p Fr(.)985 b Fi(2)324 994 y Fr(F)-7 b(or)36 b(example,)h(the)g(t)n(yp)r(e)g(judgemen)n(t)g Fn(s)p Fr(\()p Fn(s)p Fr(\()p Fn(x)p Fr(\)\))j(:)f Fl(Gae)7 b Fn(;)51 b(l)40 b Fr(:)f Fl(ListGae)83 b Fq(\))75 b Fr([)p Fn(x)26 b Fq(j)e Fn(l)r Fr(])38 b(:)199 1085 y Fl(ListGae)k Fr(is)34 b(true.)g(Ho)n(w)g(to)g(pro)n(v)n(e)f(that)i(a)e (t)n(yp)r(e)i(judgemen)n(t)g(is)f(true)g(is)g(an)g(in)n(teresting)199 1176 y(problem)d(but)h(irrelev)-5 b(an)n(t)31 b(for)g(our)f (considerations.)g(In)i(all)f(considered)f(cases)h(it)g(will)h(b)r(e) 199 1268 y(clear)27 b(ho)n(w)g(to)g(sho)n(w)g(that)h(a)f(t)n(yp)r(e)h (judgemen)n(t)g(is)f(true.)324 1359 y(The)g(follo)n(wing)g(simple)h (prop)r(erties)e(of)i(t)n(yp)r(e)g(judgemen)n(ts)f(hold.)199 1499 y Fs(Lemma)f(3.3.)k(\(T)m(yp)s(e)j(Judgemen)m(t\))38 b Fr(Let)33 b Fn(\036;)14 b(\036)1826 1511 y Fk(1)1864 1499 y Fn(;)g(\036)1950 1511 y Fk(2)1987 1499 y Fn(;)g(\036)2073 1469 y Fg(0)2073 1520 y Fk(2)2111 1499 y Fn(;)g(\036)2197 1511 y Fk(3)2267 1499 y Fr(and)32 b Fn( )j Fr(b)r(e)e(sequences)f(of) 199 1591 y(t)n(yp)r(ed)c(terms.)199 1731 y Fs(\(i\))42 b Fr(Supp)r(ose)27 b(that)h Fn(s)23 b Fq(2)g Fn(S)33 b Fr(and)27 b Fq(j)-14 b Fr(=)23 b Fn(s)g Fr(:)g Fn(S;)14 b(\036)51 b Fq(\))g Fn( )s(:)28 b Fr(Then)1501 1871 y Fq(j)-14 b Fr(=)22 b Fn(\036)52 b Fq(\))e Fn( )s(:)199 2012 y Fs(\(ii\))41 b Fr(Supp)r(ose)28 b(that)g Fq(j)-14 b Fr(=)22 b Fn(\036)1019 2024 y Fk(2)1108 2012 y Fq(\))51 b Fn(\036)1291 1982 y Fg(0)1291 2032 y Fk(2)1356 2012 y Fr(and)27 b Fq(j)-14 b Fr(=)23 b Fn(\036)1663 2024 y Fk(1)1701 2012 y Fn(;)14 b(\036)1787 1982 y Fg(0)1787 2032 y Fk(2)1825 2012 y Fn(;)g(\036)1911 2024 y Fk(3)1999 2012 y Fq(\))51 b Fn( )s(:)28 b Fr(Then)1358 2152 y Fq(j)-14 b Fr(=)23 b Fn(\036)1504 2164 y Fk(1)1542 2152 y Fn(;)14 b(\036)1628 2164 y Fk(2)1666 2152 y Fn(;)g(\036)1752 2164 y Fk(3)1840 2152 y Fq(\))51 b Fn( )s(:)199 2292 y Fs(\(iii\))41 b Fr(Supp)r(ose)36 b(that)g Fq(j)-14 b Fr(=)36 b Fs(s)23 b Fr(:)g Fs(S)p Fn(;)14 b Fs(t)23 b Fr(:)g Fs(T)74 b Fq(\))f Fs(u)23 b Fr(:)g Fs(U)p Fn(;)36 b Fs(t)23 b Fr(:)h Fs(T)36 b Fr(is)g(realizable,)e(and)i Fl(vars)7 b Fr(\()p Fs(t)p Fr(\))25 b Fq(\\)324 2384 y Fl(vars)7 b Fr(\()p Fs(s)p Fn(;)14 b Fs(u)p Fr(\))23 b(=)g Fq(;)p Fn(:)k Fr(Then)1376 2500 y Fq(j)-14 b Fr(=)23 b Fs(s)g Fr(:)g Fs(S)51 b Fq(\))f Fs(u)23 b Fr(:)h Fs(U)p Fn(:)199 2640 y Fl(Pr)l(o)l(of.)199 2732 y Fr(\(i\))29 b(By)e(the)h(assumption)f(that)h(all)f(t)n(yp)r(es)h(are)e(closed)h (under)h(substitution.)199 2823 y(\(ii\))h(Immediate.)199 2914 y(\(iii\))22 b(T)-7 b(ak)n(e)20 b Fn(\022)k Fr(suc)n(h)c(that)i Fs(s)p Fn(\022)j Fq(2)e Fs(S)e Fr(and)g(let)g Fn(\021)k Fr(b)r(e)c(suc)n(h)g(that)g Fs(t)p Fn(\021)27 b Fq(2)c Fs(T)p Fr(.)f(De\014ne)f Fn(\022)2598 2884 y Fg(0)2645 2914 y Fr(=)h Fn(\022)2773 2929 y Fg(j)p Fh(vars)5 b Fk(\()p Fs(s)p Fj(;)p Fs(u)o Fk(\))199 3015 y Fr(and)36 b Fn(\021)413 2984 y Fg(0)473 3015 y Fr(=)h Fn(\021)619 3039 y Fg(j)p Fh(vars)5 b Fk(\()p Fs(t)p Fk(\))861 3015 y Fr(.)36 b(Then)g Fn(\033)k Fr(=)d Fn(\022)1375 2984 y Fg(0)1422 3015 y Fq([)24 b Fn(\021)1545 2984 y Fg(0)1605 3015 y Fr(is)36 b(w)n(ell-de\014ned,)f Fs(s)p Fn(\033)40 b Fq(2)e Fs(S)e Fr(and)g Fs(t)p Fn(\033)k Fq(2)d Fs(T)p Fr(.)g(So)199 3119 y Fs(u)p Fn(\033)27 b Fq(2)c Fs(U)p Fr(,)28 b(i.e.)g Fs(u)p Fn(\022)e Fq(2)d Fs(U)p Fr(.)2072 b Fi(2)199 3391 y Fo(3.2.)53 b(W)-9 b(ell-t)m(yp)s(ed)35 b(Queries)g(and)g(Programs)199 3573 y Fr(The)28 b(next)g(step)f(is)h (to)f(de\014ne)h(t)n(yp)r(es)g(for)f(relations.)199 3713 y Fs(De\014nition)k(3.4.)40 b(\(T)m(yp)s(e\))31 b Fr(Consider)f(an)g Fn(n)p Fr(-ary)f(relation)g(sym)n(b)r(ol)h Fn(p)p Fr(.)h(By)f(a)g Fl(typ)l(e)h Fr(for)f Fn(p)199 3805 y Fr(w)n(e)i(mean)h(a)f(function)h Fn(t)987 3817 y Fj(p)1058 3805 y Fr(from)f([1)p Fn(;)14 b(n)p Fr(])32 b(to)g(the)h(set)f Fl(T)-6 b(yp)l(es)7 b Fr(.)33 b(If)g Fn(t)2238 3817 y Fj(p)2276 3805 y Fr(\()p Fn(i)p Fr(\))f(=)f Fn(S)5 b Fr(,)32 b(w)n(e)g(call)g Fn(S)37 b Fl(the)199 3896 y(typ)l(e)30 b(asso)l(ciate)l(d)h(with)g(the) f(p)l(osition)h Fn(i)e Fl(of)i Fn(p)p Fl(.)1411 b Fi(2)324 4036 y Fr(In)37 b(the)h(remainder)f(of)g(this)h(section)f(w)n(e)g (consider)g(a)g(com)n(bination)g(of)g(mo)r(des)h(and)199 4128 y(t)n(yp)r(es)28 b(and)f(adopt)g(the)h(follo)n(wing)199 4268 y Fs(Assumption)g(3.5.)40 b Fl(Every)30 b(r)l(elation)k Fr(has)27 b(a)g(\014xed)g(mo)r(de)g(and)g(a)g(\014xed)g(t)n(yp)r(e)h (asso)r(ciated)199 4359 y(with)g(it.)324 4500 y(This)i(assumption)g (will)h(allo)n(w)e(us)i(to)f(talk)g(ab)r(out)h(t)n(yp)r(es)f(of)h (input)g(p)r(ositions)f(and)h(of)199 4591 y(output)h(p)r(ositions)e(of) i(an)e(atom.)h(An)h Fn(n)p Fr(-ary)d(relation)h Fn(p)h Fr(with)h(a)e(mo)r(de)h Fn(m)2595 4603 y Fj(p)2665 4591 y Fr(and)g(t)n(yp)r(e)g Fn(t)3050 4603 y Fj(p)199 4682 y Fr(will)37 b(b)r(e)g(denoted)g(b)n(y)f Fn(p)p Fr(\()p Fn(m)1081 4694 y Fj(p)1120 4682 y Fr(\(1\))i(:)g Fn(t)1355 4694 y Fj(p)1394 4682 y Fr(\(1\))p Fn(;)14 b(:)g(:)g(:)f(;)h(m)1757 4694 y Fj(p)1795 4682 y Fr(\()p Fn(n)p Fr(\))39 b(:)f Fn(t)2039 4694 y Fj(p)2078 4682 y Fr(\()p Fn(n)p Fr(\)\))p Fn(:)f Fr(F)-7 b(or)36 b(example,)h Fe(app)p Fr(\(+)f(:)199 4774 y Fn(List;)53 b Fr(+)42 b(:)i Fn(List;)52 b Fq(\000)43 b Fr(:)g Fn(List)p Fr(\))c(denotes)g(a)g(ternary)g(relation)f Fe(app)h Fr(with)h(the)g(\014rst)f(t)n(w)n(o)199 4865 y(p)r(ositions)33 b(mo)r(ded)g(as)g(input)h(and)f(t)n(yp)r(ed)h(as)e Fn(List)p Fr(,)h(and)g(the)g(third)h(p)r(osition)f(mo)r(ded)g(as)199 4956 y(output)28 b(and)g(t)n(yp)r(ed)g(as)f Fn(List)p Fr(.)324 5048 y(T)-7 b(o)36 b(simplify)h(the)f(notation,)g(when)h (writing)f(an)g(atom)g(as)g Fn(p)p Fr(\()p Fs(u)23 b Fr(:)g Fs(S)p Fn(;)14 b Fs(v)25 b Fr(:)e Fs(T)p Fr(\))37 b(w)n(e)f(no)n(w)199 5139 y(assume)31 b(that)h Fs(u)23 b Fr(:)g Fs(S)32 b Fr(is)f(a)h(sequence)f(of)g(t)n(yp)r(ed)h(terms)g (\014lling)f(in)h(the)g(input)g(p)r(ositions)g(of)p eop %%Page: 7 7 7 6 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1792 b(7)199 573 y Fn(p)27 b Fr(and)g Fs(v)e Fr(:)e Fs(T)28 b Fr(is)f(a)g(sequence)f(of)i(t)n(yp)r(ed)f(terms)g(\014lling)g(in)h (the)f(output)h(p)r(ositions)f(of)g Fn(p)p Fr(.)g(W)-7 b(e)199 664 y(call)33 b(a)g(construct)f(of)h(the)h(form)e Fn(p)p Fr(\()p Fs(u)23 b Fr(:)g Fs(S)q Fn(;)14 b Fs(v)24 b Fr(:)f Fs(T)q Fr(\))33 b(a)g Fl(typ)l(e)l(d)i(atom)6 b Fr(.)34 b(W)-7 b(e)33 b(sa)n(y)f(that)i(a)e(t)n(yp)r(ed)199 756 y(atom)27 b Fn(p)p Fr(\()p Fn(s)524 768 y Fk(1)585 756 y Fr(:)c Fn(S)682 768 y Fk(1)719 756 y Fn(;)14 b(:)g(:)g(:)g(;)g(s) 943 768 y Fj(n)1011 756 y Fr(:)23 b Fn(S)1108 768 y Fj(n)1153 756 y Fr(\))28 b(is)f Fl(c)l(orr)l(e)l(ctly)j(typ)l(e)l(d)h(in)e(p)l (osition)i Fn(i)d Fr(if)g Fn(s)2427 768 y Fj(i)2477 756 y Fq(2)c Fn(S)2607 768 y Fj(i)2634 756 y Fr(.)324 848 y(The)j(follo)n(wing)g(notion)g(is)h(due)g(to)f(Bronsard,)f(Lakshman)g (and)i(Reddy)f([BLR92)o(].)199 995 y Fs(De\014nition)k(3.6.)40 b(\(W)-8 b(ell-T)m(yp)s(ed\))199 1091 y(-)42 b Fr(A)21 b(query)f Fn(p)622 1103 y Fk(1)659 1091 y Fr(\()p Fs(i)718 1116 y(1)793 1091 y Fr(:)j Fs(I)875 1116 y(1)927 1091 y Fn(;)14 b Fs(o)1012 1116 y(1)1087 1091 y Fr(:)23 b Fs(O)1205 1116 y(1)1256 1091 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1515 1103 y Fj(n)1560 1091 y Fr(\()p Fs(i)1619 1103 y(n)1699 1091 y Fr(:)23 b Fs(I)1781 1103 y(n)1839 1091 y Fn(;)14 b Fs(o)1924 1103 y(n)2004 1091 y Fr(:)23 b Fs(O)2122 1103 y(n)2179 1091 y Fr(\))e(is)g(called)g Fl(wel)t(l-typ)l(e)l(d)31 b Fr(if)21 b(for)324 1182 y Fn(j)28 b Fq(2)23 b Fr([1)p Fn(;)14 b(n)p Fr(])989 1301 y Fq(j)-14 b Fr(=)23 b Fs(o)1134 1326 y(1)1208 1301 y Fr(:)h Fs(O)1327 1326 y(1)1378 1301 y Fn(;)14 b(:)g(:)g(:)g(;)g Fs(o)1611 1330 y(j)p Fg(\000)p Fs(1)1766 1301 y Fr(:)24 b Fs(O)1885 1330 y(j)p Fg(\000)p Fs(1)2068 1301 y Fq(\))51 b Fs(i)2229 1330 y(j)2285 1301 y Fr(:)23 b Fs(I)2367 1330 y(j)2400 1301 y Fn(:)199 1439 y Fs(-)42 b Fr(A)28 b(clause)324 1531 y Fn(p)366 1543 y Fk(0)403 1531 y Fr(\()p Fs(o)483 1556 y(0)558 1531 y Fr(:)23 b Fs(O)676 1556 y(0)728 1531 y Fn(;)14 b Fs(i)792 1556 y(n)p Fk(+)p Fs(1)970 1531 y Fr(:)23 b Fs(I)1052 1556 y(n)p Fk(+)p Fs(1)1208 1531 y Fr(\))i Fq( )g Fn(p)1415 1543 y Fk(1)1452 1531 y Fr(\()p Fs(i)1511 1556 y(1)1586 1531 y Fr(:)e Fs(I)1668 1556 y(1)1720 1531 y Fn(;)14 b Fs(o)1805 1556 y(1)1880 1531 y Fr(:)23 b Fs(O)1998 1556 y(1)2049 1531 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)2308 1543 y Fj(n)2353 1531 y Fr(\()p Fs(i)2412 1543 y(n)2492 1531 y Fr(:)23 b Fs(I)2574 1543 y(n)2632 1531 y Fn(;)14 b Fs(o)2717 1543 y(n)2797 1531 y Fr(:)23 b Fs(O)2915 1543 y(n)2972 1531 y Fr(\))29 b(is)324 1633 y(called)e Fl(wel)t(l-typ)l(e)l(d)37 b Fr(if)29 b(for)e Fn(j)h Fq(2)23 b Fr([1)p Fn(;)14 b(n)k Fr(+)g(1])989 1777 y Fq(j)-14 b Fr(=)23 b Fs(o)1134 1801 y(0)1208 1777 y Fr(:)h Fs(O)1327 1801 y(0)1378 1777 y Fn(;)14 b(:)g(:)g(:)g(;)g Fs(o)1611 1806 y(j)p Fg(\000)p Fs(1)1766 1777 y Fr(:)24 b Fs(O)1885 1806 y(j)p Fg(\000)p Fs(1)2068 1777 y Fq(\))51 b Fs(i)2229 1806 y(j)2285 1777 y Fr(:)23 b Fs(I)2367 1806 y(j)2400 1777 y Fn(:)199 1940 y Fs(-)42 b Fr(A)28 b(program)d(is)j(called)f Fl(wel)t(l-typ)l(e)l(d)37 b Fr(if)28 b(ev)n(ery)f(clause)g(of)g(it)h (is.)827 b Fi(2)324 2086 y Fr(Th)n(us,)27 b(a)g(query)g(is)h(w)n(ell-t) n(yp)r(ed)f(if)199 2231 y Fs(-)42 b Fr(the)25 b(t)n(yp)r(es)g(of)g(the) g(terms)g(\014lling)g(in)g(the)g Fl(input)33 b Fr(p)r(ositions)24 b(of)h(an)g(atom)f(can)h(b)r(e)g(deduced)324 2322 y(from)36 b(the)g(t)n(yp)r(es)h(of)f(the)g(terms)g(\014lling)h(in)f(the)h Fl(output)43 b Fr(p)r(ositions)36 b(of)g(the)h(previous)324 2413 y(atoms.)324 2558 y(And)28 b(a)f(clause)g(is)h(w)n(ell-t)n(yp)r (ed)f(if)199 2702 y Fs(-)42 b Fr(\()p Fn(j)35 b Fq(2)c Fr([1)p Fn(;)14 b(n)p Fr(]\))32 b(the)h(t)n(yp)r(es)f(of)g(the)h(terms) e(\014lling)i(the)f Fl(input)40 b Fr(p)r(ositions)32 b(of)g(a)g(b)r(o)r(dy)g(atom)324 2793 y(can)e(b)r(e)h(deduced)f(from)h (the)f(t)n(yp)r(es)h(of)f(the)h(terms)f(\014lling)h(in)g(the)f Fl(input)39 b Fr(p)r(ositions)30 b(of)324 2884 y(the)e(head)f(and)h (the)g Fl(output)34 b Fr(p)r(ositions)27 b(of)h(the)g(previous)e(b)r(o) r(dy)i(atoms,)199 2995 y Fs(-)42 b Fr(\()p Fn(j)33 b Fr(=)28 b Fn(n)21 b Fr(+)f(1\))31 b(the)g(t)n(yp)r(es)g(of)f(the)i (terms)e(\014lling)h(in)g(the)g Fl(output)38 b Fr(p)r(ositions)31 b(of)g(the)g(head)324 3086 y(can)f(b)r(e)h(deduced)f(from)h(the)f(t)n (yp)r(es)h(of)f(the)h(terms)f(\014lling)h(in)g(the)f Fl(input)39 b Fr(p)r(ositions)30 b(of)324 3177 y(the)23 b(head)f(and)h(the)g(t)n(yp)r(es)g(of)f(the)h(terms)g(\014lling)f(in)h (the)g Fl(output)30 b Fr(p)r(ositions)22 b(of)h(the)g(b)r(o)r(dy)324 3269 y(atoms.)324 3413 y(Note)k(that)g(a)f(query)h(with)g(only)g(one)f (atom)h(is)f(w)n(ell-t)n(yp)r(ed)h(i\013)g(this)h(atom)e(is)h (correctly)199 3504 y(t)n(yp)r(ed)k(in)f(its)g(input)h(p)r(ositions.)e (The)i(follo)n(wing)d(observ)-5 b(ation)29 b(clari\014es)g(the)h (relation)f(b)r(e-)199 3595 y(t)n(w)n(een)e(w)n(ell-mo)r(ded)h(and)f(w) n(ell-t)n(yp)r(ed)g(programs)f(and)h(queries.)199 3743 y Fs(Theorem)i(3.7.)40 b Fr(The)31 b(notion)h(of)f(a)h(w)n(ell-mo)r (ded)f(program)e(\(resp.)j(query\))f(is)h(a)f(sp)r(ecial)199 3834 y(case)c(of)h(the)g(notion)f(of)g(a)h(w)n(ell-t)n(yp)r(ed)f (program)e(\(resp.)j(query\).)199 3981 y Fl(Pr)l(o)l(of.)d Fr(T)-7 b(ak)n(e)22 b Fl(Gr)l(ound)32 b Fr(as)22 b(the)h(only)g(t)n(yp) r(e.)g(Then)h(the)f(notions)f(of)h(a)g(w)n(ell-mo)r(ded)g(program)199 4072 y(\(resp.)28 b(query\))f(and)g(a)g(w)n(ell-t)n(yp)r(ed)h(program)d (\(resp.)i(query\))h(coincide.)559 b Fi(2)324 4282 y Fr(The)41 b(follo)n(wing)f(lemma)h(stated)g(in)h(Bronsard,)d(Lakshman)h (and)h(Reddy)g([BLR92)o(])199 4373 y(sho)n(ws)27 b(p)r(ersistence)g(of) g(the)h(notion)g(of)f(b)r(eing)h(w)n(ell-t)n(yp)r(ed.)199 4521 y Fs(Lemma)e(3.8.)40 b Fr(An)e(LD-resolv)n(en)n(t)d(of)j(a)e(w)n (ell-t)n(yp)r(ed)h(query)g(and)g(a)g(w)n(ell-t)n(yp)r(ed)g(clause)199 4612 y(that)28 b(is)g(v)-5 b(ariable)26 b(disjoin)n(t)i(with)g(it,)g (is)g(w)n(ell-t)n(yp)r(ed.)199 4759 y Fl(Pr)l(o)l(of.)21 b Fr(W)-7 b(e)19 b(reason)f(as)g(in)h(the)h(pro)r(of)e(of)h(Lemma)g (2.5.)f(So)h(it)g(su\016ces)g(to)g(pro)n(v)n(e)e(the)j(follo)n(wing)199 4850 y(t)n(w)n(o)27 b(claims.)199 4995 y Fs(Claim)h(1.)41 b Fr(An)28 b(instance)f(of)h(a)f(w)n(ell-t)n(yp)r(ed)g(query)g(\(resp.) g(clause\))h(is)f(w)n(ell-t)n(yp)r(ed.)199 5139 y Fl(Pr)l(o)l(of.)59 b Fr(Immediate)28 b(b)n(y)f(de\014nition.)1659 b Fi(2)p eop %%Page: 8 8 8 7 bop 199 390 a Fx(8)1666 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena)g (Marc)n(hiori)199 573 y Fs(Claim)k(2.)41 b Fr(Supp)r(ose)20 b Fn(H)r(;)14 b Fs(A)21 b Fr(is)f(a)g(w)n(ell-t)n(yp)r(ed)g(query)f (and)h Fn(H)30 b Fq( )23 b Fs(B)d Fr(is)g(a)g(w)n(ell-t)n(yp)r(ed)g (clause.)199 664 y(Then)28 b Fs(B)p Fn(;)14 b Fs(A)28 b Fr(is)f(a)g(w)n(ell-t)n(yp)r(ed)h(query)-7 b(.)199 805 y Fl(Pr)l(o)l(of.)59 b Fr(Let)199 896 y Fn(H)46 b Fr(=)38 b Fn(p)p Fr(\()p Fs(s)23 b Fr(:)g Fs(S)p Fn(;)14 b Fs(t)23 b Fr(:)g Fs(T)q Fr(\))37 b(and)g Fs(B)h Fr(=)h Fn(p)1353 908 y Fk(1)1390 896 y Fr(\()p Fs(i)1449 921 y(1)1523 896 y Fr(:)23 b Fs(I)1605 921 y(1)1658 896 y Fn(;)14 b Fs(o)1743 921 y(1)1817 896 y Fr(:)23 b Fs(O)1935 921 y(1)1987 896 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)2246 908 y Fj(m)2308 896 y Fr(\()p Fs(i)2367 908 y(m)2474 896 y Fr(:)23 b Fs(I)2556 908 y(m)2640 896 y Fn(;)14 b Fs(o)2725 908 y(m)2832 896 y Fr(:)23 b Fs(O)2950 908 y(m)3033 896 y Fr(\).)199 988 y Fn(H)42 b Fr(is)34 b(the)h(\014rst)f (atom)h(of)f(a)g(w)n(ell-t)n(yp)r(ed)h(query)-7 b(,)34 b(so)g(it)h(is)f(correctly)f(t)n(yp)r(ed)i(in)g(its)g(input)199 1079 y(p)r(ositions,)27 b(i.e.)399 1220 y Fs(s)22 b Fq(2)i Fs(S)p Fn(:)2368 b Fr(\(2\))199 1361 y Fn(H)49 b Fq( )42 b Fs(B)c Fr(is)h(w)n(ell-t)n(yp)r(ed,)g(so)f Fq(j)-14 b Fr(=)41 b Fs(s)23 b Fr(:)g Fs(S)p Fn(;)14 b Fs(o)1552 1386 y(1)1627 1361 y Fr(:)23 b Fs(O)1745 1386 y(1)1797 1361 y Fn(;)14 b(:)g(:)g(:)f(;)h Fs(o)2029 1373 y(m)2136 1361 y Fr(:)23 b Fs(O)2254 1373 y(m)2418 1361 y Fq(\))81 b Fs(t)23 b Fr(:)g Fs(T)p Fn(;)39 b Fr(and)g(for)199 1452 y Fn(j)28 b Fq(2)c Fr([1)p Fn(;)14 b(m)p Fr(])24 b Fq(j)-14 b Fr(=)23 b Fs(s)g Fr(:)g Fs(S)p Fn(;)14 b Fs(o)904 1477 y(1)978 1452 y Fr(:)24 b Fs(O)1097 1477 y(1)1148 1452 y Fn(;)14 b(:)g(:)g(:)g(;)g Fs(o)1381 1481 y(j)p Fg(\000)p Fs(1)1536 1452 y Fr(:)24 b Fs(O)1655 1481 y(j)p Fg(\000)p Fs(1)1835 1452 y Fq(\))48 b Fs(i)1993 1481 y(j)2049 1452 y Fr(:)23 b Fs(I)2131 1481 y(j)2165 1452 y Fn(:)i Fr(By)g(the)g(T)n(yp)r(e)g(Judgemen)n(t)199 1568 y(Lemma)j(3.3\(i\))f(w)n(e)g(get)h(b)n(y)f(virtue)g(of)h(\(2\))399 1709 y Fq(j)-14 b Fr(=)22 b Fs(o)543 1734 y(1)618 1709 y Fr(:)h Fs(O)736 1734 y(1)788 1709 y Fn(;)14 b(:)g(:)g(:)f(;)h Fs(o)1020 1721 y(m)1127 1709 y Fr(:)23 b Fs(O)1245 1721 y(m)1379 1709 y Fq(\))51 b Fs(t)23 b Fr(:)g Fs(T)q Fn(;)1273 b Fr(\(3\))199 1850 y(and)28 b(for)f Fn(j)h Fq(2)23 b Fr([1)p Fn(;)14 b(m)p Fr(])399 1991 y Fq(j)-14 b Fr(=)22 b Fs(o)543 2015 y(1)618 1991 y Fr(:)h Fs(O)736 2015 y(1)788 1991 y Fn(;)14 b(:)g(:)g(:)f(;)h Fs(o)1020 2020 y(j)p Fg(\000)p Fs(1)1176 1991 y Fr(:)23 b Fs(O)1294 2020 y(j)p Fg(\000)p Fs(1)1478 1991 y Fq(\))50 b Fs(i)1638 2020 y(j)1694 1991 y Fr(:)23 b Fs(I)1776 2020 y(j)1810 1991 y Fn(:)1149 b Fr(\(4\))199 2156 y(No)n(w,)44 b(let)g Fs(A)51 b Fr(=)g Fn(p)845 2168 y Fj(m)p Fk(+1)991 2156 y Fr(\()p Fs(i)1050 2181 y(m)p Fk(+)p Fs(1)1256 2156 y Fr(:)23 b Fs(I)1338 2181 y(m)p Fk(+)p Fs(1)1520 2156 y Fn(;)14 b Fs(o)1605 2181 y(m)p Fk(+)p Fs(1)1811 2156 y Fr(:)23 b Fs(O)1929 2181 y(m)p Fk(+)p Fs(1)2111 2156 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)2370 2168 y Fj(n)2415 2156 y Fr(\()p Fs(i)2474 2168 y(n)2554 2156 y Fr(:)23 b Fs(I)2636 2168 y(n)2693 2156 y Fn(;)14 b Fs(o)2778 2168 y(n)2858 2156 y Fr(:)23 b Fs(O)2976 2168 y(n)3033 2156 y Fr(\).)199 2258 y Fn(H)r(;)14 b Fs(A)28 b Fr(is)g(w)n(ell-t)n (yp)r(ed,)f(so)g(for)g Fn(j)h Fq(2)23 b Fr([)p Fn(m)c Fr(+)f(1)p Fn(;)c(n)p Fr(])691 2399 y Fq(j)-14 b Fr(=)23 b Fs(t)g Fr(:)g Fs(T)p Fn(;)14 b Fs(o)1045 2424 y(m)p Fk(+)p Fs(1)1251 2399 y Fr(:)23 b Fs(O)1369 2424 y(m)p Fk(+)p Fs(1)1551 2399 y Fn(;)14 b(:)g(:)g(:)g(;)g Fs(o)1784 2428 y(j)p Fg(\000)p Fs(1)1939 2399 y Fr(:)24 b Fs(O)2058 2428 y(j)p Fg(\000)p Fs(1)2241 2399 y Fq(\))51 b Fs(i)2402 2428 y(j)2458 2399 y Fr(:)23 b Fs(I)2540 2428 y(j)2573 2399 y Fn(;)199 2564 y Fr(and)28 b(th)n(us)f(b)n(y)h(\(3\))f(and)h(the) g(T)n(yp)r(e)f(Judgemen)n(t)g(Lemma)h(3.3\(ii\))f(for)g Fn(j)h Fq(2)c Fr([)p Fn(m)18 b Fr(+)g(1)p Fn(;)c(n)p Fr(])927 2705 y Fq(j)-14 b Fr(=)22 b Fs(o)1071 2730 y(1)1146 2705 y Fr(:)h Fs(O)1264 2730 y(1)1316 2705 y Fn(;)14 b(:)g(:)g(:)f(;)h Fs(o)1548 2734 y(j)p Fg(\000)p Fs(1)1704 2705 y Fr(:)23 b Fs(O)1822 2734 y(j)p Fg(\000)p Fs(1)2006 2705 y Fq(\))50 b Fs(i)2166 2734 y(j)2222 2705 y Fr(:)23 b Fs(I)2304 2734 y(j)2338 2705 y Fn(:)199 2871 y Fr(This)28 b(and)f(\(4\))h(imply)g(the)g(claim.)1749 b Fi(2)3026 2962 y(2)324 3171 y Fr(This)27 b(brings)g(us)h(to)f(the)h(follo)n(wing) f(desired)g(conclusions.)199 3312 y Fs(Theorem)i(3.9.)40 b Fr(Let)28 b Fn(P)41 b Fr(and)28 b Fn(Q)h Fr(b)r(e)g(w)n(ell-t)n(yp)r (ed)f(and)g(let)h Fn(\030)k Fr(b)r(e)c(an)f(LD-deriv)-5 b(ation)28 b(of)h Fn(Q)199 3404 y Fr(in)f Fn(P)12 b Fr(.)28 b(All)g(atoms)f(selected)g(in)h Fn(\030)k Fr(are)26 b(correctly)h(t)n (yp)r(ed)g(in)h(their)g(input)g(p)r(ositions.)199 3544 y Fl(Pr)l(o)l(of.)21 b Fr(Note)e(that)h(the)f(\014rst)g(atom)g(of)g(a)g (w)n(ell-t)n(yp)r(ed)f(query)h(is)g(correctly)f(t)n(yp)r(ed)h(in)g(its) h(input)199 3636 y(p)r(ositions)26 b(and)g(that)h(a)f(v)-5 b(arian)n(t)25 b(of)i(a)f(w)n(ell-t)n(yp)r(ed)g(clause)g(is)g(w)n (ell-t)n(yp)r(ed.)g(The)g(conclusion)199 3727 y(no)n(w)h(follo)n(ws)g (b)n(y)g(Lemma)g(3.8.)1840 b Fi(2)199 3868 y Fs(Corollary)32 b(3.10.)40 b Fr(Let)27 b Fn(P)40 b Fr(and)27 b Fn(Q)h Fr(b)r(e)g(w)n(ell-t)n(yp)r(ed.)f(Then)h(for)f(ev)n(ery)f(computed)i (answ)n(er)199 3959 y(substitution)g Fn(\033)s Fr(,)h Fn(Q\033)h Fr(is)e(w)n(ell-t)n(yp)r(ed)f(in)h(its)g(output)g(p)r (ositions.)199 4100 y Fl(Pr)l(o)l(of.)42 b Fr(Let)e Fs(o)23 b Fr(:)g Fs(O)40 b Fr(stand)g(for)g(the)h(sequence)e(of)h(t)n(yp)r(ed)h (terms)f(\014lling)g(in)g(the)h(output)199 4192 y(p)r(ositions)22 b(of)f(the)h(atoms)f(of)h Fn(Q)p Fr(.)f(Let)h Fn(p)g Fr(b)r(e)g(a)f(new)h(relation)f(of)g(arit)n(y)g(equal)g(to)h(the)g (length)g(of)199 4283 y Fs(o)h Fr(:)g Fs(O)d Fr(and)f(with)h(all)g(the) g(p)r(ositions)f(mo)r(ded)h(as)f(input)h(and)g(t)n(yp)r(ed)g(as)f Fs(O)p Fr(.)g(Then)h Fn(Q;)14 b(p)p Fr(\()p Fs(o)22 b Fr(:)h Fs(O)p Fr(\))199 4374 y(is)31 b(a)f(w)n(ell-t)n(yp)r(ed)g(query) -7 b(.)30 b(No)n(w,)g Fn(\033)k Fr(is)c(a)h(computed)f(answ)n(er)f (substitution)i(for)f Fn(Q)h Fr(in)f Fn(P)43 b Fr(i\013)199 4465 y Fn(p)p Fr(\()p Fs(o)p Fr(\))p Fn(\033)26 b Fr(is)d(a)f(selected) g(atom)g(in)h(an)f(LD-deriv)-5 b(ation)22 b(of)h Fn(Q;)14 b(p)p Fr(\()p Fs(o)p Fr(\))22 b(in)g Fn(P)12 b Fr(.)23 b(The)f(conclusion)g(no)n(w)199 4557 y(follo)n(ws)27 b(b)n(y)g(Theorem)g(3.9.)1958 b Fi(2)324 4766 y Fr(Let)28 b(us)f(see)g(no)n(w)g(ho)n(w)g(these)h(results)f(can)g(b)r(e)h(applied) g(to)f(sp)r(eci\014c)h(programs.)199 4907 y Fs(Example)g(3.11.)40 b Fr(Reconsider)27 b(the)h(program)d Fe(quicksort)p Fr(.)f(W)-7 b(e)28 b(t)n(yp)r(e)g(it)g(as)f(follo)n(ws:)324 5048 y Fe(qs\(+:ListGae,)38 b(-:ListGae\))p Fr(,)324 5139 y Fe(part\(+:Gae,)h(+:ListGae,)g(-:ListGae,)h(-:ListGae\))p Fr(,)p eop %%Page: 9 9 9 8 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1792 b(9)324 573 y Fe(app\(+:ListGae,)38 b(+:ListGae,)h(-:ListGae\))p Fr(,)324 664 y Fn(>)p Fe(\(+:Gae,)h(+:Gae\))p Fr(,)25 b Fq(\024)p Fe(\(+:Gae,)41 b(+:Gae\))p Fr(.)199 808 y(Conforming)d(to)h (Prolog)e(b)r(eha)n(viour,)g(w)n(e)i(assume)f(that)i(the)f(ev)-5 b(aluation)38 b(of)h(the)g(tests)199 899 y Fn(u)23 b(>)f(v)31 b Fr(and)c Fn(u)c Fq(\024)f Fn(v)31 b Fr(ends)c(in)h(an)f(error)e(if)j Fn(u)f Fr(or)f Fn(v)31 b Fr(are)26 b(not)h(gae's.)g(It)g(is)g(easy)g (to)g(c)n(hec)n(k)f(that)199 991 y Fe(quicksort)d Fr(is)j(then)g(w)n (ell-t)n(yp)r(ed.)g(Assume)g(no)n(w)g(that)g Fn(s)g Fr(is)g(a)g(list)g (of)h(gae's.)e(By)g(Theorem)199 1082 y(3.9)39 b(w)n(e)g(conclude)g (that)g(all)g(atoms)g(selected)g(in)g(the)h(LD-deriv)-5 b(ations)39 b(of)g Fe(qs\(s,t\))d Fr(in)199 1173 y Fe(quicksort)20 b Fr(are)i(correctly)g(t)n(yp)r(ed)i(in)f(their)g(input)i(p)r (ositions.)d(In)i(particular,)e(when)h(these)199 1265 y(atoms)33 b(are)f(of)h(the)g(form)g Fn(u)f(>)f(v)37 b Fr(or)32 b Fn(u)g Fq(\024)f Fn(v)s Fr(,)j(b)r(oth)f Fn(u)g Fr(and)g Fn(v)j Fr(are)c(gae's.)g(Th)n(us)h(the)g(LD-)199 1356 y(deriv)-5 b(ations)30 b(of)h Fe(qs\(s,t\))d Fr(do)i(not)h(end)g (in)g(an)f(error.)f(Moreo)n(v)n(er,)f(b)n(y)i(Corollary)e(3.10)i(w)n(e) 199 1447 y(conclude)g(that)h(all)e(computed)i(answ)n(er)e (substitutions)h Fn(\033)k Fr(are)29 b(suc)n(h)h(that)g Fe(t)p Fn(\033)j Fr(is)d(a)g(list)h(of)199 1539 y(gae's.)2627 b Fi(2)324 1682 y Fr(Th)n(us,)21 b(t)n(yp)r(e)g(analysis)f(is)i (su\016cien)n(t)f(to)g(deriv)n(e)g(information)f(ab)r(out)i(the)f(t)n (yp)r(es)h(of)f(atom)199 1773 y(argumen)n(ts,)30 b(b)r(efore)g(or)g (after)g(their)h(selection.)f(This)h(is)f(su\016cien)n(t)h(to)g(pro)n (v)n(e)e(absence)h(of)199 1865 y(run-time)h(errors)e(in)i(presence)f (of)h(relations)f(in)n(v)n(olving)f(arithmetic.)i(Also,)g(as)f(sho)n (wn)g(in)199 1956 y(Apt)22 b(and)e(Etalle)h([AE93)n(])g(\(and)g(on)g (whic)n(h)f(this)h(section)g(is)f(based\),)h(the)g(t)n(yp)r(es)g(can)f (b)r(e)i(used)199 2047 y(to)i(pro)n(vide)f(su\016cien)n(t,)h(decidable) g(conditions)g(under)g(whic)n(h)g(in)g(all)g(program)e(executions)199 2139 y(uni\014cation)28 b(is)f(equiv)-5 b(alen)n(t)28 b(to)f(iterated)g(matc)n(hing.)199 2419 y Fp(4.)56 b(W)-9 b(ell-m-Asserted)34 b(Programs)199 2602 y Fr(In)24 b(order)f(to)g(pro)n (v)n(e)f(more)h(complex)g(program)f(prop)r(erties,)h(one)g(can)h (consider)e(monotonic)199 2693 y(assertions)30 b(formed)g(in)i(\(an)f (extension)g(of)6 b(\))31 b(a)g(\014rst-order)e(language.)h(An)h (assertion)f Fn(\036)i Fr(is)199 2784 y Fl(monotonic)d Fr(if,)f(for)f(ev)n(ery)f(substitution)i Fn(\033)422 2927 y Fq(j)-14 b Fr(=)22 b Fn(\036)i Fq(\))f Fn(\036\033)n(:)2168 b Fr(\(5\))324 3069 y(An)29 b(assertional)f(metho)r(d)h(to)h(pro)n(v)n (e)d(run-time)i(prop)r(erties)g(of)g(a)f(program)g(expressed)199 3161 y(b)n(y)19 b(means)f(of)h(monotonic)g(assertions)e(w)n(as)h(giv)n (en)g(in)h(Bossi)f(and)h(Co)r(cco)f([BC89)o(],)h(where)f(the)199 3252 y(notion)j(of)g(a)g(w)n(ell-asserted)e(program)g(is)i(in)n(tro)r (duced,)g(here)f(called)h(a)g(w)n(ell-monotonically-)199 3343 y(asserted)27 b(program,)e(w)n(ell-m-asserted)h(program)f(for)i (short.)g(A)h(pair)f(\()p Fn(pr)r(e)2567 3313 y Fj(p)2606 3343 y Fn(;)14 b(post)2794 3313 y Fj(p)2832 3343 y Fr(\))28 b(of)f(as-)199 3435 y(sertions)h(\(called)g(pre-)g(and)h(p)r (ost-condition\),)f(called)h(sp)r(eci\014cation,)f(is)h(asso)r(ciated)e (with)199 3526 y(ev)n(ery)34 b(relation)h Fn(p)g Fr(o)r(ccurring)f(in)h (the)h(program)d(under)i(consideration:)f Fn(pr)r(e)2688 3496 y Fj(p)2762 3526 y Fr(describ)r(es)199 3617 y(prop)r(erties)27 b(of)h(the)g(argumen)n(ts)e(of)i Fn(p)g Fr(b)r(efore)f(its)h(call,)f (while)h Fn(post)2305 3587 y Fj(p)2371 3617 y Fr(describ)r(es)f(prop)r (erties)199 3709 y(of)32 b(the)g(argumen)n(ts)e(of)i Fn(p)g Fr(after)f(its)h(call.)f(T)-7 b(o)32 b(denote)f(argumen)n(ts)f (of)i(a)f(relation,)g(the)h Fl(as-)199 3800 y(sertion)37 b(language)g(for)g(a)g(pr)l(o)l(gr)l(am)g Fn(P)47 b Fr(con)n(tains)33 b(some)h(sp)r(ecial)h(v)-5 b(ariables,)33 b(namely)-7 b(,)35 b(for)199 3891 y(ev)n(ery)24 b(relation)g Fn(p)h Fr(de\014ned)h(in)f Fn(P)12 b Fr(,)26 b(the)f(v)-5 b(ariables)24 b Fn(x)1806 3851 y Fj(p)1806 3914 y Fk(1)1845 3891 y Fr(,)h Fn(:)14 b(:)g(:)p Fr(,)25 b Fn(x)2085 3861 y Fj(p)2085 3912 y(n)2156 3891 y Fr(are)g(considered,)f(where)h Fn(n)g Fr(is)199 3983 y(the)h(arit)n(y)e(of)g Fn(p)p Fr(.)h(These)g(v)-5 b(ariables)24 b(represen)n(t)f(the)j(argumen)n(ts)d(of)i(the)h (relation)e Fn(p)p Fr(,)h(and)f(are)199 4074 y(called)k Fl(a-variables)p Fr(.)j(The)d(set)h(of)f(a-v)-5 b(ariables)26 b(o)r(ccurring)h(in)i(a)f(syn)n(tactic)f(construct)h Fn(E)34 b Fr(is)199 4165 y(denoted)28 b(b)n(y)f Fn(a)p Fr(-)p Fn(v)s(ar)r(s)p Fr(\()p Fn(E)5 b Fr(\).)199 4309 y Fs(De\014nition)31 b(4.1.)40 b(\(Sp)s(eci\014cation\))20 b Fr(A)g Fl(sp)l(e)l(ci\014c)l(ation)j(for)h(an)e(n-ary)h(r)l(elation)g Fn(p)c Fr(is)h(a)f(pair)199 4400 y(\()p Fn(pr)r(e)351 4370 y Fj(p)390 4400 y Fn(;)14 b(post)578 4370 y Fj(p)616 4400 y Fr(\))28 b(of)g(monotonic)f(assertions,)f(s.t.)h Fn(a)p Fr(-)p Fn(v)s(ar)r(s)p Fr(\()p Fn(pr)r(e)2107 4370 y Fj(p)2147 4400 y Fn(;)14 b(post)2335 4370 y Fj(p)2373 4400 y Fr(\))23 b Fq(\022)g(f)p Fn(x)2605 4361 y Fj(p)2605 4423 y Fk(1)2643 4400 y Fn(;)14 b(:)g(:)g(:)g(;)g(x)2875 4370 y Fj(p)2875 4421 y(n)2920 4400 y Fq(g)p Fr(.)41 b Fi(2)324 4544 y Fr(An)c Fl(asserte)l(d)i(pr)l(o)l(gr)l(am)f Fq(A)p Fn(P)49 b Fr(is)37 b(obtained)g(b)n(y)f(assigning)g(a)g(sp)r (eci\014cation)h(to)g(ev)n(ery)199 4635 y(relation)27 b(of)h Fn(P)12 b Fr(.)27 b(Sometimes)h(w)n(e)f(shall)h(still)f(write)h Fn(P)40 b Fr(instead)27 b(of)h Fq(A)p Fn(P)12 b Fr(.)28 b(In)g(the)g(remainder)199 4727 y(of)g(this)g(section)f(w)n(e)g(adopt)g (the)h(follo)n(wing)199 4869 y Fs(Assumption)g(4.2.)40 b Fl(Every)30 b(r)l(elation)f Fr(has)e(a)g(\014xed)h(sp)r (eci\014cation)f(asso)r(ciated)f(with)i(it.)199 5012 y Fs(De\014nition)j(4.3.)40 b Fr(Let)e Fn(A)j Fr(=)g Fn(p)p Fr(\()p Fn(t)1307 5024 y Fk(1)1344 5012 y Fn(;)14 b(:)g(:)g(:)f(;)h(t)1558 5024 y Fj(n)1603 5012 y Fr(\))39 b(and)f Fn(\013)j Fr(=)f Fq(f)p Fn(x)2134 4972 y Fj(p)2134 5035 y(i)2173 5012 y Fn(=t)2245 5024 y Fj(i)2353 5012 y Fq(j)h Fn(i)f Fq(2)h Fr([1)p Fn(;)14 b(n)p Fr(])p Fq(g)p Fr(.)37 b(De\014ne)199 5139 y Fn(pr)r(e)p Fr(\()p Fn(A)p Fr(\))445 5092 y Fk(def)460 5139 y Fr(=)13 b Fn(pr)r(e)658 5109 y Fj(p)696 5139 y Fn(\013)28 b Fr(and)g Fn(post)p Fr(\()p Fn(A)p Fr(\))1216 5092 y Fk(def)1230 5139 y Fr(=)13 b Fn(post)1459 5109 y Fj(p)1497 5139 y Fn(\013)p Fr(.)p eop %%Page: 10 10 10 9 bop 199 390 a Fx(10)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena)g (Marc)n(hiori)199 573 y Fs(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i Fn(A)g Fl(satis\014es)i(its)f(pr)l(e)l(c)l(ondition)g Fr(if)f Fq(j)-14 b Fr(=)23 b Fn(pr)r(e)p Fr(\()p Fn(A)p Fr(\).)199 679 y Fs(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i Fn(A)g Fl(satis\014es)i(its)f(p)l(ostc)l(ondition)g Fr(if)f Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fn(A)p Fr(\).)199 816 y(W)-7 b(e)27 b(use)f Fn(post)p Fr(\()p Fn(A)728 828 y Fk(1)766 816 y Fn(;)14 b(:)g(:)g(:)g(;)g(A)1013 828 y Fj(k)1054 816 y Fr(\))27 b(as)e(a)i(shorthand)e(for)h Fn(post)p Fr(\()p Fn(A)2044 828 y Fk(1)2082 816 y Fr(\))16 b Fq(^)h Fn(:)d(:)g(:)i Fq(^)h Fn(post)p Fr(\()p Fn(A)2632 828 y Fj(k)2673 816 y Fr(\),)27 b(where)f(w)n(e)199 907 y(assume)h(that)h(for)f Fn(k)f Fr(=)d(0)k Fn(post)p Fr(\()p Fn(A)1264 919 y Fk(1)1302 907 y Fr(\))18 b Fq(^)h Fn(:)14 b(:)g(:)k Fq(^)h Fn(post)p Fr(\()p Fn(A)1860 919 y Fj(k)1901 907 y Fr(\))28 b(is)g(equal)f(to)g Fl(true)6 b Fr(.)199 1044 y Fs(De\014nition)31 b(4.4.)40 b(\(W)-8 b(ell-m-Asserted\))199 1181 y(-)42 b Fr(A)28 b(query)e Fn(p)635 1193 y Fk(1)672 1181 y Fr(\()p Fs(s)742 1206 y(1)794 1181 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1053 1193 y Fj(n)1098 1181 y Fr(\()p Fs(s)1168 1193 y(n)1225 1181 y Fr(\))28 b(is)g(called)f Fl(wel)t(l-m-asserte)l(d)h Fr(if)g(for)f Fn(j)h Fq(2)c Fr([1)p Fn(;)14 b(n)p Fr(])868 1389 y Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fn(p)1190 1401 y Fk(1)1227 1389 y Fr(\()p Fs(s)1297 1414 y(1)1349 1389 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1608 1401 y Fj(j)s Fg(\000)p Fk(1)1727 1389 y Fr(\()p Fs(s)1797 1418 y(j)p Fg(\000)p Fs(1)1930 1389 y Fr(\)\))24 b Fq(\))f Fn(pr)r(e)p Fr(\()p Fn(p)2318 1401 y Fj(j)2353 1389 y Fr(\()p Fs(s)2423 1418 y(j)2457 1389 y Fr(\)\))p Fn(:)199 1529 y Fs(-)42 b Fr(A)28 b(clause)e Fn(p)p Fr(\()p Fs(s)p Fr(\))e Fq( )f Fn(p)923 1541 y Fk(1)960 1529 y Fr(\()p Fs(s)1030 1554 y(1)1081 1529 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1340 1541 y Fj(n)1385 1529 y Fr(\()p Fs(s)1455 1541 y(n)1512 1529 y Fr(\))28 b(is)g(called)f Fl(wel)t(l-asserte)l(d)i Fr(if)f(for)f Fn(j)h Fq(2)23 b Fr([1)p Fn(;)14 b(n)k Fr(+)g(1])658 1737 y Fq(j)-14 b Fr(=)22 b Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)p Fr(\)\))e Fq(^)e Fn(post)p Fr(\()p Fn(p)1400 1749 y Fk(1)1438 1737 y Fr(\()p Fs(s)1508 1762 y(1)1559 1737 y Fr(\))p Fn(;)c(:)g(:)g(:)g(;)g(p)1818 1749 y Fj(j)s Fg(\000)p Fk(1)1938 1737 y Fr(\()p Fs(s)2008 1766 y(j)p Fg(\000)p Fs(1)2141 1737 y Fr(\)\))23 b Fq(\))h Fn(pr)r(e)p Fr(\()p Fn(p)2529 1749 y Fj(j)2564 1737 y Fr(\()p Fs(s)2634 1766 y(j)2667 1737 y Fr(\)\))p Fn(;)324 1911 y Fr(where)j Fn(pr)r(e)p Fr(\()p Fn(p)758 1923 y Fj(n)p Fk(+1)887 1911 y Fr(\()p Fs(s)957 1936 y(n)p Fk(+)p Fs(1)1113 1911 y Fr(\)\))1177 1864 y Fk(def)1191 1911 y Fr(=)13 b Fn(post)p Fr(\()p Fn(p)p Fr(\()p Fs(s)p Fr(\)\).)199 2017 y Fs(-)42 b Fr(An)28 b(asserted)e(program)g Fq(A)p Fn(P)39 b Fr(is)28 b(called)f Fl(wel)t(l-m-asserte)l(d)i Fr(if)f(all)f(its)h(clauses)e (are.)186 b Fi(2)324 2154 y Fr(The)29 b(follo)n(wing)g(observ)-5 b(ation)28 b(clari\014es)g(the)i(relation)f(b)r(et)n(w)n(een)g(w)n (ell-m-asserted)f(and)199 2245 y(w)n(ell-t)n(yp)r(ed)g(programs)d(and)i (queries.)199 2382 y Fs(Theorem)i(4.5.)40 b Fr(The)28 b(notion)g(of)g(a)g(w)n(ell-t)n(yp)r(ed)f(program)g(\(query\))h(is)g(a) f(sp)r(ecial)h(case)g(of)199 2474 y(the)g(notion)g(of)f(a)g(w)n (ell-m-asserted)f(program)f(\(query\).)199 2611 y Fl(Pr)l(o)l(of.)33 b Fr(It)f(su\016ces)e(to)h(view)g(a)g(t)n(yp)r(ed)g(atom)g Fn(p)p Fr(\()p Fs(x)24 b Fr(:)f Fs(S)p Fn(;)14 b Fs(y)25 b Fr(:)e Fs(T)p Fr(\))32 b(as)e(a)h(sp)r(eci\014cation)g(for)f(the)199 2702 y(relation)d Fn(p)p Fr(\()p Fs(x)p Fn(;)14 b Fs(y)s Fr(\))28 b(consisting)f(of)h Fn(pr)r(e)1377 2672 y Fj(p)1440 2702 y Fr(=)c Fs(x)f Fq(2)g Fs(S)29 b Fr(and)f Fn(post)2075 2672 y Fj(p)2137 2702 y Fr(=)c Fs(y)g Fq(2)g Fs(T)p Fr(.)k(Then)h(a)f (program)199 2793 y Fn(P)40 b Fr(is)27 b(w)n(ell-t)n(yp)r(ed)h(i\013)g (the)g(corresp)r(onding)d(asserted)i(program)e(is)j(w)n (ell-m-asserted.)156 b Fi(2)324 3003 y Fr(The)19 b(follo)n(wing)g (lemma)h(sho)n(ws)e(p)r(ersistence)h(of)h(the)g(notion)f(of)h(b)r(eing) f(w)n(ell-m-asserted.)199 3140 y Fs(Lemma)26 b(4.6.)40 b Fr(An)24 b(LD-resolv)n(en)n(t)d(of)j(a)e(w)n(ell-m-asserted)g(query)g (and)i(a)e(w)n(ell-m-asserted)199 3231 y(clause)27 b(that)h(is)g(v)-5 b(ariable)26 b(disjoin)n(t)i(with)g(it,)g(is)f(w)n(ell-m-asserted.)199 3368 y Fl(Pr)l(o)l(of.)h Fr(W)-7 b(e)26 b(reason)e(as)h(in)h(the)g(pro) r(of)f(of)g(Lemma)h(2.5.)f(It)h(su\016ces)f(to)h(pro)n(v)n(e)e(the)i (follo)n(wing)199 3459 y(t)n(w)n(o)h(claims.)199 3596 y Fs(Claim)h(1.)41 b Fr(An)19 b(instance)f(of)g(a)g(w)n(ell-m-asserted) e(query)i(\(resp.)g(clause\))g(is)g(w)n(ell-m-asserted.)199 3733 y Fl(Pr)l(o)l(of.)59 b Fr(Immediate)28 b(b)n(y)f(the)h(assumption) f(that)h(the)g(assertions)e(are)h(monotonic.)197 b Fi(2)199 3870 y Fs(Claim)28 b(2.)41 b Fr(Supp)r(ose)36 b Fn(H)r(;)14 b Fs(A)36 b Fr(is)g(a)g(w)n(ell-m-asserted)e(query)h(and)h Fn(H)44 b Fq( )37 b Fs(B)f Fr(is)g(a)f(w)n(ell-m-)199 3962 y(asserted)27 b(clause.)g(Then)g Fs(B)p Fn(;)14 b Fs(A)28 b Fr(is)g(a)f(w)n(ell-m-asserted)e(query)-7 b(.)199 4099 y Fl(Pr)l(o)l(of.)76 b Fr(Let)36 b Fn(H)44 b Fr(=)36 b Fn(p)p Fr(\()p Fs(s)p Fr(\))h(and)f Fs(B)h Fr(=)f Fn(p)1462 4111 y Fk(1)1499 4099 y Fr(\()p Fs(s)1569 4124 y(1)1621 4099 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1880 4111 y Fj(m)1943 4099 y Fr(\()p Fs(s)2013 4111 y(m)2097 4099 y Fr(\).)36 b Fn(H)43 b Fr(is)36 b(the)g(\014rst)g(atom)g(of)g(a) 199 4190 y(w)n(ell-m-asserted)26 b(query)-7 b(,)27 b(so)g(it)h (satis\014es)f(its)g(precondition,)g(i.e.)422 4327 y Fq(j)-14 b Fr(=)22 b Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)p Fr(\)\))p Fn(:)2113 b Fr(\(6\))199 4464 y(Then)28 b(from)f(the)h(fact)g(that)g Fn(H)i Fq( )23 b Fs(B)k Fr(is)h(w)n(ell-m-asserted)d(and)j(\(6\))g(it)g(follo)n(ws)e(that)422 4601 y Fq(j)-14 b Fr(=)22 b Fn(post)p Fr(\()p Fn(p)743 4613 y Fk(1)781 4601 y Fr(\()p Fs(s)851 4626 y(1)902 4601 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1161 4613 y Fj(m)1224 4601 y Fr(\()p Fs(s)1294 4613 y(m)1378 4601 y Fr(\)\))23 b Fq(\))g Fn(post)p Fr(\()p Fn(p)p Fr(\()p Fs(s)p Fr(\)\))p Fn(;)1029 b Fr(\(7\))199 4738 y(and)28 b(for)f Fn(j)h Fq(2)23 b Fr([1)p Fn(;)14 b(m)p Fr(])422 4875 y Fq(j)-14 b Fr(=)22 b Fn(post)p Fr(\()p Fn(p)743 4887 y Fk(1)781 4875 y Fr(\()p Fs(s)851 4900 y(1)902 4875 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1161 4887 y Fj(j)s Fg(\000)p Fk(1)1281 4875 y Fr(\()p Fs(s)1351 4904 y(j)p Fg(\000)p Fs(1)1484 4875 y Fr(\)\))24 b Fq(\))f Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)1942 4904 y(j)1975 4875 y Fr(\)\))p Fn(:)920 b Fr(\(8\))199 5037 y(No)n(w,)31 b(let)h Fs(A)e Fr(=)g Fn(p)778 5049 y Fj(m)p Fk(+1)924 5037 y Fr(\()p Fs(s)994 5062 y(m)p Fk(+)p Fs(1)1177 5037 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1436 5049 y Fj(n)1481 5037 y Fr(\()p Fs(s)1551 5049 y(n)1608 5037 y Fr(\).)32 b(Then)g(b)n(y)f Fn(H)r(;)14 b Fs(A)32 b Fr(w)n(ell-m-asserted)d(and)j (b)n(y)199 5139 y(\(7\))c(w)n(e)f(ha)n(v)n(e,)g(for)g Fn(j)h Fq(2)23 b Fr([)p Fn(m)c Fr(+)f(1)p Fn(;)c(n)p Fr(]:)p eop %%Page: 11 11 11 10 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(11)422 573 y Fq(j)-14 b Fr(=)22 b Fn(post)p Fr(\()p Fn(p)743 585 y Fk(1)781 573 y Fr(\()p Fs(s)851 598 y(1)902 573 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1161 585 y Fj(j)s Fg(\000)p Fk(1)1281 573 y Fr(\()p Fs(s)1351 602 y(j)p Fg(\000)p Fs(1)1484 573 y Fr(\)\))24 b Fq(\))f Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)1942 602 y(j)1975 573 y Fr(\)\))p Fn(:)920 b Fr(\(9\))199 742 y(Then)28 b(b)n(y)f(\(8\))h(and)g(\(9\))f(w)n(e)h(obtain)f(that)h Fs(B)p Fn(;)14 b Fs(A)27 b Fr(is)h(w)n(ell-m-asserted.)635 b Fi(2)3026 834 y(2)324 1045 y Fr(This)27 b(yields)h(the)g(follo)n (wing)e(conclusions.)199 1193 y Fs(Theorem)j(4.7.)40 b Fr(Let)29 b Fn(P)41 b Fr(and)29 b Fn(Q)g Fr(b)r(e)h(w)n (ell-m-asserted)d(and)i(let)g Fn(\030)34 b Fr(b)r(e)29 b(an)g(LD-deriv)-5 b(ation)199 1284 y(of)28 b Fn(Q)f Fr(in)h Fn(P)12 b Fr(.)28 b(All)g(atoms)f(selected)g(in)h Fn(\030)k Fr(satisfy)27 b(their)g(preconditions.)199 1432 y Fl(Pr)l(o)l(of.)35 b Fr(Note)e(that)h(the)f(\014rst)g(atom)g(of) g(a)g(w)n(ell-m-asserted)e(query)i(satis\014es)f(its)i(precon-)199 1523 y(dition)40 b(and)f(that)h(a)f(v)-5 b(arian)n(t)38 b(of)i(a)f(w)n(ell-m-asserted)e(clause)i(is)g(w)n(ell-m-asserted.)e (The)199 1615 y(conclusion)27 b(no)n(w)g(follo)n(ws)g(b)n(y)g(Lemma)g (4.6.)1438 b Fi(2)199 1763 y Fs(Corollary)32 b(4.8.)40 b Fr(Let)27 b Fn(P)40 b Fr(and)27 b Fn(Q)g Fr(b)r(e)g(w)n (ell-m-asserted.)f(Then)h(for)g(ev)n(ery)f(computed)h(an-)199 1854 y(sw)n(er)g(substitution)h Fn(\033)s Fr(,)g Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fn(Q)p Fr(\))p Fn(\033)s Fr(.)199 2002 y Fl(Pr)l(o)l(of.)39 b Fr(Let)f Fn(Q)g Fr(=)h Fn(p)864 2014 y Fk(1)901 2002 y Fr(\()p Fs(s)971 2027 y(1)1023 2002 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1282 2014 y Fj(k)1322 2002 y Fr(\()p Fs(s)1392 2031 y(k)1447 2002 y Fr(\).)38 b(Let)f Fn(p)g Fr(b)r(e)h(a)f(new)g(relation)f(of)i (arit)n(y)e(equal)h(to)199 2093 y(the)30 b(sum)g(of)f(the)h(arities)e (of)i Fn(p)1153 2105 y Fk(1)1190 2093 y Fr(,)f Fn(:)14 b(:)g(:)p Fr(,)30 b Fn(p)1434 2105 y Fj(k)1475 2093 y Fr(,)f(sa)n(y)f Fn(n)p Fr(,)i(and)f(with)h Fn(pr)r(e)2249 2105 y Fj(p)2317 2093 y Fr(and)f Fn(post)2631 2105 y Fj(p)2699 2093 y Fr(b)r(oth)h(equal)199 2185 y(to)j Fn(post)457 2197 y Fj(p)491 2205 y Fd(1)528 2185 y Fn(\013)581 2197 y Fk(1)640 2185 y Fq(^)22 b Fn(:)14 b(:)g(:)22 b Fq(^)h Fn(post)1065 2197 y Fj(p)1099 2206 y Fc(k)1139 2185 y Fn(\013)1192 2197 y Fj(k)1233 2185 y Fr(,)33 b(where)g(eac)n(h)f Fn(\013)1780 2197 y Fj(i)1840 2185 y Fr(renames)g(the)h Fn(p)2359 2197 y Fj(i)2387 2185 y Fr(-v)-5 b(ariables)31 b(to)i(a)f(new)199 2276 y(set)d(of)f Fn(p)p Fr(-v)-5 b(ariables.)27 b(Then)h Fn(Q;)14 b(p)p Fr(\()p Fs(s)1295 2301 y(1)1346 2276 y Fn(;)g(:)g(:)g(:)g(;)g Fs(s)1569 2305 y(k)1623 2276 y Fr(\))29 b(is)f(a)g(w)n(ell-m-asserted)e(query)-7 b(.)28 b(No)n(w,)g Fn(\033)k Fr(is)c(a)199 2376 y(computed)33 b(answ)n(er)f(substitution)h(for)f Fn(Q)h Fr(in)g Fn(P)45 b Fr(i\013)33 b Fn(p)p Fr(\()p Fs(s)1982 2401 y(1)2034 2376 y Fn(;)14 b(:)g(:)g(:)f(;)h Fs(s)2256 2405 y(k)2310 2376 y Fr(\))p Fn(\033)37 b Fr(is)c(a)f(selected)h(atom)199 2475 y(in)40 b(an)f(LD-deriv)-5 b(ation)38 b(of)i Fn(Q;)14 b(p)p Fr(\()p Fs(s)1301 2500 y(1)1352 2475 y Fn(;)g(:)g(:)g(:)f(;)h Fs(s)1574 2504 y(k)1629 2475 y Fr(\))39 b(in)h Fn(P)12 b Fr(.)39 b(The)g(conclusion)g(no)n(w)f(follo)n(ws)h(b)n(y)199 2567 y(Theorem)27 b(4.7.)2346 b Fi(2)324 2777 y Fr(Again,)27 b(let)h(us)f(sho)n(w)g(ho)n(w)g(these)h(results)f(can)g(b)r(e)h (applied)g(to)f(sp)r(eci\014c)h(programs.)199 2925 y Fs(Example)g(4.9.)41 b Fr(Reconsider)27 b(the)i(program)d Fe(quicksort)p Fr(.)f(W)-7 b(e)28 b(asso)r(ciate)f(with)i(its)g(rela-) 199 3017 y(tions)f(the)g(follo)n(wing)e(sp)r(eci\014cations:)199 3218 y Fn(pr)r(e)319 3188 y Fj(q)r(s)434 3218 y Fr(=)45 b Fn(ListGae)p Fr(\()p Fn(x)926 3178 y Fj(q)r(s)926 3240 y Fk(1)994 3218 y Fr(\);)585 b Fn(post)1785 3188 y Fj(q)r(s)1899 3218 y Fr(=)46 b Fn(per)r(m)p Fr(\()p Fn(x)2282 3178 y Fj(q)r(s)2282 3240 y Fk(1)2350 3218 y Fn(;)14 b(x)2434 3178 y Fj(q)r(s)2434 3240 y Fk(2)2503 3218 y Fr(\))p Fn(;)g(sor)r(ted)p Fr(\()p Fn(x)2881 3178 y Fj(q)r(s)2881 3240 y Fk(2)2950 3218 y Fr(\);)199 3310 y Fn(pr)r(e)319 3280 y Fj(app)474 3310 y Fr(=)46 b Fn(ListGae)p Fr(\()p Fn(x)967 3270 y Fj(app)967 3332 y Fk(1)1075 3310 y Fn(;)14 b(x)1159 3270 y Fj(app)1159 3332 y Fk(2)1268 3310 y Fr(\);)311 b Fn(post)1785 3280 y Fj(app)1939 3310 y Fr(=)46 b Fn(conc)p Fr(\()p Fn(x)2291 3270 y Fj(app)2291 3332 y Fk(1)2400 3310 y Fn(;)14 b(x)2484 3270 y Fj(app)2484 3332 y Fk(2)2593 3310 y Fn(;)g(x)2677 3270 y Fj(app)2677 3332 y Fk(3)2786 3310 y Fr(\);)199 3413 y Fn(pr)r(e)319 3383 y Fj(par)r(t)498 3413 y Fr(=)45 b Fn(ListGae)p Fr(\()p Fn(x)990 3373 y Fj(par)r(t)990 3435 y Fk(2)1122 3413 y Fr(\))p Fn(;)14 b(Gae)p Fr(\()p Fn(x)1418 3373 y Fj(par)r(t)1418 3435 y Fk(1)1551 3413 y Fr(\);)28 b Fn(post)1785 3383 y Fj(par)r(t)1963 3413 y Fr(=)46 b Fn(\036)2123 3383 y Fj(par)r(t)2255 3413 y Fr(;)199 3507 y Fn(pr)r(e)319 3477 y Fj(>)422 3507 y Fr(=)f Fn(Gae)p Fr(\()p Fn(x)759 3474 y Fj(>)759 3529 y Fk(1)816 3507 y Fn(;)14 b(x)900 3474 y Fj(>)900 3529 y Fk(2)956 3507 y Fr(\);)623 b Fn(post)1785 3477 y Fj(>)1887 3507 y Fr(=)46 b Fn(x)2045 3474 y Fj(>)2045 3529 y Fk(1)2124 3507 y Fn(>)23 b(x)2259 3474 y Fj(>)2259 3529 y Fk(2)2315 3507 y Fr(;)199 3614 y Fn(pr)r(e)319 3584 y Fg(\024)422 3614 y Fr(=)45 b Fn(Gae)p Fr(\()p Fn(x)759 3574 y Fg(\024)759 3636 y Fk(1)816 3614 y Fn(;)14 b(x)900 3574 y Fg(\024)900 3636 y Fk(2)956 3614 y Fr(\);)623 b Fn(post)1785 3584 y Fg(\024)1887 3614 y Fr(=)46 b Fn(x)2045 3574 y Fg(\024)2045 3636 y Fk(1)2124 3614 y Fq(\024)23 b Fn(x)2259 3574 y Fg(\024)2259 3636 y Fk(2)2315 3614 y Fr(;)199 3759 y(where)h Fn(per)r(m)p Fr(\()p Fn(x;)14 b(y)s Fr(\))24 b(states)g(that)g Fn(x)p Fr(,)g Fn(y)j Fr(are)c(lists)g(and)h Fn(y)j Fr(is)c(a)h(p)r(erm)n(utation)f(of)h Fn(x)p Fr(,)h Fn(sor)r(ted)p Fr(\()p Fn(x)p Fr(\))199 3850 y(states)g(that)g Fn(x)g Fr(is)g(a)f(sorted)g(list)h(of)g(gae's,)e Fn(conc)p Fr(\()p Fn(x;)14 b(y)s(;)g(z)t Fr(\))25 b(states)f(that)h Fn(x)p Fr(,)g Fn(y)s Fr(,)g Fn(z)j Fr(are)c(lists)h(and)199 3941 y Fn(z)31 b Fr(is)d(a)f(concatenation)f(of)i Fn(x)g Fr(and)f Fn(y)s Fr(,)h(and)199 4098 y Fn(\036)248 4067 y Fj(par)r(t)427 4098 y Fr(=)50 b Fn(ListGae)p Fr(\()p Fn(x)924 4058 y Fj(par)r(t)924 4120 y Fk(3)1056 4098 y Fn(;)14 b(x)1140 4058 y Fj(par)r(t)1140 4120 y Fk(4)1272 4098 y Fr(\))19 b Fq(^)g Fr(\()p Fn(el)r Fr(\()p Fn(x)1574 4058 y Fj(par)r(t)1574 4120 y Fk(2)1706 4098 y Fr(\))k(=)g Fn(el)r Fr(\()p Fn(x)1994 4058 y Fj(par)r(t)1994 4120 y Fk(3)2126 4098 y Fr(\))c Fq([)f Fn(el)r Fr(\()p Fn(x)2395 4058 y Fj(par)r(t)2395 4120 y Fk(4)2527 4098 y Fr(\)\))c Fq(^)789 4205 y(8)p Fn(x)p Fr(\()p Fn(x)23 b Fq(2)g Fn(el)r Fr(\()p Fn(x)1208 4165 y Fj(par)r(t)1208 4227 y Fk(3)1340 4205 y Fr(\))h Fq(\))f Fn(x)g(<)g(x)1707 4165 y Fj(par)r(t)1707 4227 y Fk(1)1839 4205 y Fr(\))p Fq(^)29 b(8)p Fn(x)p Fr(\()p Fn(x)23 b Fq(2)g Fn(el)r Fr(\()p Fn(x)2374 4165 y Fj(par)r(t)2374 4227 y Fk(4)2506 4205 y Fr(\))h Fq(\))f Fn(x)g Fq(\025)g Fn(x)2873 4165 y Fj(par)r(t)2873 4227 y Fk(1)3005 4205 y Fr(\),)199 4352 y(where)41 b(for)f(a)g(list)h Fn(x)p Fr(,)h Fn(el)r Fr(\()p Fn(x)p Fr(\))f(denotes)f(the)h(set)g(of)g (its)g(elemen)n(ts.)g(It)g(is)g(easy)f(to)g(c)n(hec)n(k)199 4443 y(that)c Fe(quicksort)31 b Fr(is)k(then)h(w)n(ell-m-asserted.)d (Assume)i(no)n(w)f(that)i Fn(s)f Fr(is)g(a)f(list)i(of)f(gae's.)199 4535 y(By)h(Theorem)f(4.7)h(w)n(e)g(conclude)f(that)i(the)f(LD-deriv)-5 b(ations)36 b(of)g Fe(qs\(s,t\))d Fr(do)j(not)g(end)199 4626 y(in)d(an)f(error.)e(Moreo)n(v)n(er,)g(b)n(y)i(Corollary)e(4.8)i (w)n(e)g(conclude)g(that)g(all)g(computed)h(answ)n(er)199 4717 y(substitutions)28 b Fn(\033)j Fr(are)c(suc)n(h)g(that)h Fn(t\033)j Fr(is)d(a)f(sorted)f(p)r(erm)n(utation)i(of)f Fn(s)p Fr(.)606 b Fi(2)324 4865 y Fr(Th)n(us,)40 b(static)h(analysis)e (based)h(on)h(monotonic)e(assertions)g(is)i(su\016cien)n(t)g(to)f(pro)n (v)n(e)199 4956 y(monotonic)h(run-time)h(prop)r(erties)f(and)h(partial) f(correctness)f(of)i(programs.)e(Also,)h(as)199 5048 y(sho)n(wn)25 b(in)h(Bossi,)f(Co)r(cco)g(and)h(F)-7 b(abris)25 b([BCF91)o(],)h(monotonic)g(assertions)e(can)h(b)r(e)h(used)g(in)199 5139 y(a)h(metho)r(d)i(for)e(pro)n(ving)f(program)f(termination.)p eop %%Page: 12 12 12 11 bop 199 390 a Fx(12)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena) g(Marc)n(hiori)199 573 y Fp(5.)56 b(W)-9 b(ell-)p Fb(dot)p Fp(-)o(Asserted)37 b(Programs)199 757 y Fr(Certain)i(prop)r(erties)g (are)g(not)h(expressible)e(b)n(y)i(means)f(of)h(monotonic)f (assertions:)f(for)199 848 y(instance,)28 b(some)f(structural)g(prop)r (erties)f(of)i(a)f(term)h Fn(t)p Fr(,)f(lik)n(e)h Fn(t)f Fr(b)r(eing)h(a)f(v)-5 b(ariable,)27 b(or)g Fn(t)g Fr(not)199 939 y(b)r(eing)j(a)f(ground)f(term,)i(or)f Fn(t)g Fr(sharing)f(some)h (v)-5 b(ariable)29 b(with)h(another)e(term.)i(The)f(use)h(of)199 1031 y(suc)n(h)d(run-time)f(prop)r(erties)g(is)h(relev)-5 b(an)n(t)26 b(for)g(e.g.)h(program)d(optimization;)j(to)f(determine)199 1122 y(for)j(whic)n(h)g(class)g(of)g(queries)f(the)i(program)d (terminates;)i(or)g(to)g(describ)r(e)g(the)h(b)r(eha)n(viour)199 1213 y(of)36 b(a)f(program)f(con)n(taining)h(some)g(built-in)i (predicates.)e(In)h(order)e(to)i(deal)f(with)h(these)199 1305 y(run-time)24 b(prop)r(erties,)g(one)g(can)f(consider)h(an)f (assertion)g(language)g(con)n(taining)g(also)g(non-)199 1396 y(monotonic)k(assertions.)324 1488 y(In)h(this)g(section,)f(an)g (assertional)f(metho)r(d)i(for)f(pro)n(ving)f(run-time)i(prop)r(erties) f(whic)n(h)199 1580 y(emplo)n(ys)h(non-monotonic)g(assertions)g(is)h (describ)r(ed.)g(This)g(metho)r(d)g(w)n(as)f(in)n(tro)r(duced)h(in)199 1671 y(Drab)r(en)n(t)e(and)f(Ma )-23 b(luszy)r(\023)-44 b(nski)25 b([DM88].)h(The)h(approac)n(h)d(is)i(analogous)e(to)i(that)h (presen)n(ted)199 1762 y(in)d(the)g(previous)e(section,)h(with)h(the)g (exception)f(that)h(here,)f(due)h(to)f(the)h(presence)f(of)g(non-)199 1854 y(monotonic)i(assertions,)f(the)i Fl(assertion)i(language)h(for)g (a)f(pr)l(o)l(gr)l(am)h Fn(P)37 b Fr(con)n(tains)25 b(for)g(ev)n(ery) 199 1945 y(relation)g Fn(p)g Fr(o)r(ccurring)f(in)i Fn(P)12 b Fr(,)25 b(the)h(v)-5 b(ariables)1625 1915 y Fg(\017)1664 1945 y Fn(p)1706 1957 y Fj(i)1733 1945 y Fr(,)26 b(called)f Fl(input)i(variables)p Fr(,)h(and)d Fn(p)2794 1915 y Fg(\017)2794 1966 y Fj(i)2832 1945 y Fr(,)h(called)199 2036 y Fl(output)31 b(variables)p Fr(,)g(for)e Fn(i)c Fq(2)h Fr([1)p Fn(;)14 b(n)p Fr(],)29 b(where)g Fn(n)g Fr(is)g(the)h(arit)n(y)e(of)h Fn(p)p Fr(.)g(W)-7 b(e)30 b(call)f(these)g(v)-5 b(ariables)199 2127 y(a-v)g(ariables:)32 b(input)i(v)-5 b(ariables)32 b(represen)n(t)g(the)i(argumen)n(ts)e(of)h Fn(p)h Fr(at)f(the)h(momen)n(t)f(of)g(its)199 2219 y(call,)24 b(while)h(output)g(v)-5 b(ariables)23 b(represen)n(t)h(the)h(argumen)n (ts)e(of)h Fn(p)g Fr(after)h(its)f(call.)g(The)h(set)g(of)199 2310 y(a-v)-5 b(ariables)29 b(app)r(earing)h(in)i(a)f(syn)n(tactic)f (construct)h Fn(E)37 b Fr(is)31 b(denoted)g(b)n(y)g Fn(a)p Fr(-)p Fn(v)s(ar)r(s)p Fr(\()p Fn(E)5 b Fr(\).)32 b(The)199 2401 y(assertion)g(language)g(also)h(con)n(tains)f(v)-5 b(ariables)32 b(represen)n(ting)g(terms)i(\(meta)f(v)-5 b(ariables\),)199 2493 y(and)28 b(terms)f(of)h(the)g(ob)5 b(ject)27 b(language.)199 2643 y Fs(De\014nition)k(5.1.)40 b(\(Sp)s(eci\014cation\))20 b Fr(A)g Fl(sp)l(e)l(ci\014c)l(ation)j(for) h(an)e(n-ary)h(r)l(elation)g Fn(p)c Fr(is)h(a)f(pair)199 2734 y(\()p Fn(pr)r(e)351 2746 y Fj(p)390 2734 y Fn(;)14 b(post)578 2746 y Fj(p)616 2734 y Fr(\))19 b(of)f(assertions,)f(s.t.)i Fn(a)p Fr(-)o Fn(v)s(ar)r(s)p Fr(\()p Fn(pr)r(e)1664 2746 y Fj(p)1704 2734 y Fr(\))k Fq(\022)g(f)1889 2704 y Fg(\017)1926 2734 y Fn(p)1968 2746 y Fk(1)2005 2734 y Fn(;)14 b(:)g(:)g(:)g(;)2176 2704 y Fg(\017)2228 2734 y Fn(p)2270 2746 y Fj(n)2315 2734 y Fq(g)k Fr(and)g Fn(a)p Fr(-)p Fn(v)s(ar)r(s)p Fr(\()p Fn(post)2947 2746 y Fj(p)2986 2734 y Fr(\))24 b Fq(\022)199 2826 y(f)241 2796 y Fg(\017)279 2826 y Fn(p)321 2838 y Fk(1)358 2826 y Fn(;)14 b(:)g(:)g(:)g(;)529 2796 y Fg(\017)581 2826 y Fn(p)623 2838 y Fj(n)668 2826 y Fn(;)g(p)747 2796 y Fg(\017)747 2846 y Fk(1)784 2826 y Fn(;)g(:)g(:)g(:)g(;)g(p)1011 2796 y Fg(\017)1011 2846 y Fj(n)1056 2826 y Fq(g)p Fr(.)1905 b Fi(2)199 2975 y Fr(An)22 b Fl(asserte)l(d)i(pr)l(o)l(gr)l(am)e Fq(A)p Fn(P)33 b Fr(is)21 b(obtained)g(b)n(y)g(assigning)e(a)i(sp)r (eci\014cation)g(to)g(ev)n(ery)e(relation)199 3066 y(de\014ned)29 b(in)h Fn(P)12 b Fr(.)28 b(Sometimes)h(w)n(e)g(shall)f(still)h(write)g Fn(P)41 b Fr(instead)28 b(of)h Fq(A)p Fn(P)12 b Fr(.)29 b(In)g(the)h(remainder)199 3158 y(of)e(this)g(section)f(w)n(e)g(adopt)g (the)h(follo)n(wing)199 3305 y Fs(Assumption)g(5.2.)40 b Fl(Every)30 b(r)l(elation)f Fr(has)e(a)g(\014xed)h(sp)r (eci\014cation)f(asso)r(ciated)f(with)i(it.)324 3450 y(Before)g(w)n(e)g(de\014ne)h(seman)n(tics)f(of)g(pre-)g(and)h(p)r (ostconditions,)f(w)n(e)g(in)n(tro)r(duce)h(the)g(fol-)199 3542 y(lo)n(wing)e(notation.)199 3634 y(F)-7 b(or)31 b(an)g(atom)f Fn(A)g Fr(=)e Fn(p)p Fr(\()p Fn(t)975 3646 y Fk(1)1013 3634 y Fn(;)14 b(:)g(:)g(:)f(;)h(t)1227 3646 y Fj(n)1272 3634 y Fr(\))32 b(let)f Fn(pr)r(e)p Fr(\()p Fn(A)p Fr(\))i(denote)e(the)g(pair)g(\()p Fn(pr)r(e)2482 3646 y Fj(p)2521 3634 y Fn(;)14 b(\013)p Fr(\),)32 b(where)e Fn(\013)g Fr(=)199 3725 y Fq(f)241 3695 y Fg(\017)279 3725 y Fn(p)321 3737 y Fj(i)348 3725 y Fn(=t)420 3737 y Fj(i)505 3725 y Fq(j)e Fn(i)g Fq(2)h Fr([1)p Fn(;)14 b(n)p Fr(])p Fq(g)p Fr(,)30 b(and)h(let)g Fn(post)p Fr(\()p Fn(A;)14 b(A\033)s Fr(\))32 b(denote)f(the)g(pair)f(\()p Fn(post)2487 3737 y Fj(p)2526 3725 y Fn(;)14 b(\014)t Fr(\),)32 b(where)e Fn(\014)j Fr(=)199 3817 y Fq(f)241 3787 y Fg(\017)279 3817 y Fn(p)321 3829 y Fk(1)358 3817 y Fn(=t)430 3829 y Fk(1)467 3817 y Fn(;)14 b(:)g(:)g(:)f(;)637 3787 y Fg(\017)689 3817 y Fn(p)731 3829 y Fj(n)776 3817 y Fn(=t)848 3829 y Fj(n)893 3817 y Fn(;)52 b(p)1010 3787 y Fg(\017)1010 3837 y Fk(1)1047 3817 y Fn(=)p Fr(\()p Fn(t)1151 3829 y Fk(1)1188 3817 y Fn(\033)s Fr(\))p Fn(;)14 b(:)g(:)g(:)h(;)f(p)1498 3787 y Fg(\017)1498 3837 y Fj(n)1543 3817 y Fn(=)p Fr(\()p Fn(t)1647 3829 y Fj(n)1692 3817 y Fn(\033)s Fr(\))p Fq(g)p Fr(.)36 b(W)-7 b(e)37 b(sa)n(y)e(that)i Fn(pr)r(e)p Fr(\()p Fn(A)p Fr(\))i Fl(is)f(true)p Fr(,)e(and)199 3908 y(write)k Fq(j)-14 b Fr(=)43 b Fn(pr)r(e)p Fr(\()p Fn(A)p Fr(\),)e(if)f Fn(pr)r(e)1059 3920 y Fj(p)1138 3908 y Fr(is)f(true)h(in)g(an)n(y)f(in)n(terpretation)g(where)g(the)h (v)-5 b(alue)40 b(of)2981 3878 y Fg(\017)3019 3908 y Fn(p)3061 3920 y Fj(i)199 3999 y Fr(is)290 3969 y Fg(\017)328 3999 y Fn(p)370 4011 y Fj(i)397 3999 y Fn(\013)p Fr(,)c(for)e Fn(i)g Fq(2)h Fr([1)p Fn(;)14 b(n)p Fr(].)34 b(Analogously)f(w)n(e)i (sa)n(y)e(that)i Fn(post)p Fr(\()p Fn(A;)14 b(A\033)s Fr(\))38 b Fl(is)e(true)p Fr(,)e(and)h(write)199 4091 y Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fn(A;)14 b(A\033)s Fr(\),)28 b(if)f Fn(post)999 4103 y Fj(p)1064 4091 y Fr(is)f(true)h(in)g(an)n(y)e(in)n(terpretation)h(where)g(the)h(v)-5 b(alues)26 b(of)2820 4061 y Fg(\017)2859 4091 y Fn(p)2901 4103 y Fj(i)2955 4091 y Fr(and)199 4182 y Fn(p)241 4152 y Fg(\017)241 4204 y Fj(i)302 4182 y Fr(are)436 4152 y Fg(\017)474 4182 y Fn(p)516 4194 y Fj(i)544 4182 y Fn(\014)h Fr(and)c Fn(p)817 4152 y Fg(\017)817 4204 y Fj(i)855 4182 y Fn(\014)t Fr(,)g(resp)r(ectiv)n(ely)-7 b(,)22 b(for)h Fn(i)f Fq(2)i Fr([1)p Fn(;)14 b(n)p Fr(].)22 b(W)-7 b(e)23 b(will)h(often)f(write)g(\()p Fn(A;)14 b(\033)s Fr(\))24 b(instead)199 4273 y(of)k(\()p Fn(A;)14 b(A\033)s Fr(\).)199 4420 y Fs(De\014nition)31 b(5.3.)199 4515 y(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i Fn(A)g Fl(satis\014es)i(its)f(pr)l(e)l(c)l(ondition)g Fr(if)f Fq(j)-14 b Fr(=)23 b Fn(pr)r(e)p Fr(\()p Fn(A)p Fr(\).)199 4627 y Fs(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i(\()p Fn(A;)14 b(\033)s Fr(\))29 b Fl(satis\014es)h(its)f(p)l(ostc)l (ondition)g Fr(if)f Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fn(A;)14 b(\033)s Fr(\).)554 b Fi(2)199 4773 y Fr(The)19 b(notation)g Fn(post)p Fr(\(\()p Fn(A)962 4785 y Fk(1)1000 4773 y Fn(;)14 b(\033)1084 4785 y Fk(1)1121 4773 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g Fr(\()p Fn(A)1432 4785 y Fj(k)1474 4773 y Fn(;)g(\033)1558 4785 y Fj(k)1599 4773 y Fr(\)\))20 b(is)e(used)h(as)g(a)f(shorthand)h(for)f Fn(post)p Fr(\()p Fn(A)2840 4785 y Fk(1)2878 4773 y Fn(;)c(\033)2962 4785 y Fk(1)2999 4773 y Fr(\))q Fq(^)199 4864 y Fn(:)g(:)g(:)t Fq(^)t Fn(post)p Fr(\()p Fn(A)604 4876 y Fj(k)646 4864 y Fn(;)g(\033)730 4876 y Fj(k)771 4864 y Fr(\),)21 b(where)e(w)n(e)h (assume)g(that)h(for)e Fn(k)26 b Fr(=)d(0)d Fn(post)p Fr(\()p Fn(A)2230 4876 y Fk(1)2268 4864 y Fn(;)14 b(\033)2352 4876 y Fk(1)2389 4864 y Fr(\))t Fq(^)t Fn(:)g(:)g(:)t Fq(^)t Fn(post)p Fr(\()p Fn(A)2889 4876 y Fj(k)2931 4864 y Fn(;)g(\033)3015 4876 y Fj(k)3056 4864 y Fr(\))199 4955 y(is)28 b(equal)f(to)g Fl(true)6 b Fr(.)324 5048 y(The)35 b(follo)n(wing)e(notion)h(is)h(cen)n(tral)f(in)h(the)g (de\014nition)g(of)f(a)h(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f(pro-)199 5139 y(gram.)p eop %%Page: 13 13 13 12 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(13)199 573 y Fs(De\014nition)31 b(5.4.)40 b(\(V)-8 b(aluation)33 b(Sequence\))c Fr(W)-7 b(e)29 b(sa)n(y)f(that)h(a)f (sequence)g Fn(\032)2683 585 y Fk(0)2720 573 y Fn(;)14 b(:)g(:)g(:)g(;)g(\032)2948 585 y Fj(n)3022 573 y Fr(of)199 664 y(substitutions)23 b(is)f(a)g Fl(valuation)k(se)l(quenc)l(e)c Fr(for)g(a)g(clause)g Fn(p)p Fr(\()p Fs(s)2055 689 y(0)2107 664 y Fr(\))h Fq( )g Fn(p)2310 676 y Fk(1)2347 664 y Fr(\()p Fs(s)2417 689 y(1)2469 664 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)2728 676 y Fj(n)2773 664 y Fr(\()p Fs(s)2843 676 y(n)2900 664 y Fr(\))23 b(and)199 756 y(an)28 b(atom)f Fn(p)p Fr(\()p Fs(t)p Fr(\))h(if)g(the)g(follo)n(wing)e (conditions)i(are)e(satis\014ed:)218 901 y(1.)41 b Fl(vars)7 b Fr(\()p Fs(t)p Fr(\))19 b Fq(\\)g Fl(vars)7 b Fr(\()p Fs(s)900 925 y(0)952 901 y Fn(;)14 b(:)g(:)g(:)g(;)g Fs(s)1175 913 y(n)1232 901 y Fr(\))23 b(=)g Fq(;)p Fr(;)218 1011 y(2.)41 b Fn(\032)367 1023 y Fk(0)427 1011 y Fr(=)23 b Fn(mg)s(u)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\))p Fn(;)14 b(p)p Fr(\()p Fs(s)1003 1036 y(0)1054 1011 y Fr(\)\);)218 1122 y(3.)41 b(there)27 b(exist)h Fn(\033)780 1134 y Fk(1)817 1122 y Fn(;)14 b(:)g(:)g(:)g(;)g(\033)1049 1134 y Fj(n)1122 1122 y Fr(s.t.)28 b(for)f(all)g Fn(i)c Fq(2)g Fr([1)p Fn(;)14 b(n)p Fr(]:)324 1270 y Fn(\032)367 1282 y Fj(i)417 1270 y Fr(=)23 b Fn(\032)548 1282 y Fj(i)p Fg(\000)p Fk(1)661 1270 y Fn(\033)708 1282 y Fj(i)736 1270 y Fr(,)324 1417 y Fl(dom)7 b Fr(\()p Fn(\033)562 1429 y Fj(i)590 1417 y Fr(\))24 b Fq(\022)e Fl(vars)7 b Fr(\()p Fs(s)959 1446 y(i)990 1417 y Fn(\032)1033 1429 y Fh(i)e Fg(\000)p Fh(1)1158 1417 y Fr(\),)324 1572 y Fl(r)l(ange)h Fr(\()p Fn(\033)605 1584 y Fj(i)634 1572 y Fr(\))18 b Fq(\\)h Fl(vars)7 b Fr(\(\()p Fs(s)1016 1597 y(0)1069 1572 y Fn(;)14 b(:)g(:)g(:)f(;)h Fs(s)1291 1584 y(n)1348 1572 y Fr(\))p Fn(\032)1423 1584 y Fh(i)5 b Fg(\000)p Fh(1)1549 1572 y Fr(\))23 b Fq(\022)g Fl(vars)7 b Fr(\()p Fs(s)1918 1601 y(i)1949 1572 y Fn(\032)1992 1584 y Fh(i)e Fg(\000)p Fh(1)2117 1572 y Fr(\).)854 b Fi(2)199 1726 y Fr(The)28 b(ab)r(o)n(v)n(e)e(de\014nition)j(describ)r (es)e(a)g(deriv)-5 b(ation)27 b(for)g(the)i(atomic)e(query)g Fn(p)p Fr(\()p Fs(t)p Fr(\),)h(when)g(the)199 1817 y(clause)36 b Fn(p)p Fr(\()p Fs(s)565 1842 y(0)616 1817 y Fr(\))h Fq( )g Fn(p)847 1829 y Fk(1)884 1817 y Fr(\()p Fs(s)954 1842 y(1)1006 1817 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1265 1829 y Fj(n)1310 1817 y Fr(\()p Fs(s)1380 1829 y(n)1437 1817 y Fr(\))36 b(is)g(c)n(hosen)f(as)h(\014rst)f(input)i(clause.)e (Notice)h(that)199 1908 y(condition)30 b(1.)g(expresses)f(the)i (requiremen)n(t)f(that)g(the)h(input)g(clause)f(and)g(the)h(query)e (are)199 2000 y(standardized)c(apart,)h(while)g(in)n(tuitiv)n(ely)g (condition)g(3.)g(de\014nes)g Fn(\033)2313 2012 y Fj(i)2367 2000 y Fr(to)g(b)r(e)h(an)f Fl(abstr)l(action)199 2091 y Fr(of)g(a)g(computed)g(answ)n(er)f(substitution)i(for)e Fn(p)1643 2103 y Fj(i)p Fg(\000)p Fk(1)1756 2091 y Fr(\()p Fs(s)1826 2120 y(i)p Fg(\000)p Fs(1)1956 2091 y Fn(\032)1999 2103 y Fj(i)p Fg(\000)p Fk(1)2112 2091 y Fr(\).)h(As)g(in)h([DM88)o(],) g(w)n(e)f(denote)199 2193 y(a)j(query)g Fn(Q)f Fr(b)n(y)h(the)h(clause) f Fn(g)s(oal)d Fq( )g Fn(Q)p Fr(,)j(where)g Fn(g)s(oal)h Fr(is)f(a)g(new)g(relation)g(sym)n(b)r(ol,)g(whic)n(h)199 2284 y(is)f(assumed)f(to)g(ha)n(v)n(e)g(b)r(oth)h(precondition)f(and)g (p)r(ostcondition)g(equal)g(to)h Fl(true)5 b Fr(.)199 2433 y Fs(De\014nition)31 b(5.5.)40 b(\(W)-8 b(ell-)p Fn(dot)p Fs(-)o(Asserted\))199 2578 y(-)42 b Fr(A)27 b(clause)f Fn(c)d Fr(:)g Fn(p)p Fr(\()p Fs(s)823 2603 y(0)875 2578 y Fr(\))g Fq( )g Fn(p)1078 2590 y Fk(1)1115 2578 y Fr(\()p Fs(s)1185 2603 y(1)1237 2578 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1496 2590 y Fj(n)1541 2578 y Fr(\()p Fs(s)1611 2590 y(n)1668 2578 y Fr(\))27 b(is)g(called)g Fl(wel)t(l-)p Fn(dot)p Fl(-asserte)l(d)h Fr(if,)f(for)g(ev)n(ery)324 2669 y(atom)38 b Fn(p)p Fr(\()p Fs(t)p Fr(\))i(that)f(satis\014es)f (its)h(precondition)g(and)f(for)h(ev)n(ery)f(v)-5 b(aluation)38 b(sequence)324 2761 y Fn(\032)367 2773 y Fk(0)404 2761 y Fn(;)14 b(:)g(:)g(:)g(;)g(\032)632 2773 y Fj(n)704 2761 y Fr(for)27 b Fn(c)h Fr(and)f Fn(p)p Fr(\()p Fs(t)p Fr(\),)i(for)e Fn(j)h Fq(2)23 b Fr([1)p Fn(;)14 b(n)k Fr(+)g(1])438 2905 y Fq(j)-14 b Fr(=)22 b Fn(post)p Fr(\(\()p Fn(p)791 2917 y Fk(1)829 2905 y Fr(\()p Fs(s)899 2930 y(1)951 2905 y Fn(\032)994 2917 y Fk(0)1031 2905 y Fr(\))p Fn(;)14 b(\033)1147 2917 y Fk(1)1185 2905 y Fr(\))p Fn(;)g(:)g(:)g(:)g (;)g Fr(\()p Fn(p)1476 2917 y Fj(j)s Fg(\000)p Fk(1)1596 2905 y Fr(\()p Fs(s)1666 2934 y(j)p Fg(\000)p Fs(1)1798 2905 y Fn(\032)1841 2917 y Fj(j)s Fg(\000)p Fk(2)1961 2905 y Fr(\))p Fn(;)g(\033)2077 2917 y Fj(j)s Fg(\000)p Fk(1)2198 2905 y Fr(\)\))24 b Fq(\))f Fn(pr)r(e)p Fr(\()p Fn(p)2586 2917 y Fj(j)2621 2905 y Fr(\()p Fs(s)2691 2934 y(j)2724 2905 y Fn(\032)2767 2917 y Fj(j)s Fg(\000)p Fk(1)2887 2905 y Fr(\)\))p Fn(;)324 3107 y Fr(where)k Fn(pr)r(e)p Fr(\()p Fn(p)758 3119 y Fj(n)p Fk(+1)887 3107 y Fr(\()p Fs(s)957 3132 y(n)p Fk(+)p Fs(1)1113 3107 y Fn(\032)1156 3119 y Fj(n)1201 3107 y Fr(\)\))1265 3060 y Fk(def)1279 3107 y Fr(=)13 b Fn(post)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\))p Fn(;)h(\032)1763 3119 y Fj(n)1809 3107 y Fr(\).)199 3218 y Fs(-)42 b Fr(An)28 b(asserted)e(program)g Fq(A)p Fn(P)39 b Fr(is)28 b(called)f Fl(wel)t(l-)p Fn(dot)p Fl(-)q(asserte)l(d)h Fr(if)g(all)g(its)f(clauses)g(are.)140 b Fi(2)199 3363 y Fr(No)n(w)21 b(w)n(e)f(sho)n(w)h(that)g(the)g(notion) g(of)g(a)g(w)n(ell-m-asserted)e(program)g(is)i(a)f(sp)r(ecial)h(case)f (of)h(the)199 3454 y(notion)31 b(of)g(a)g(w)n(ell-)p Fn(dot)p Fr(-asserted)f(program.)f(T)-7 b(o)31 b(this)g(end,)h(w)n(e)f (in)n(tro)r(duce)g(a)g(preliminary)199 3546 y(notion)d(and)f(a)g (lemma.)199 3695 y Fs(De\014nition)k(5.6.)40 b(\(Simpli\014ed)30 b(F)-8 b(orm\))27 b Fr(A)k(sp)r(eci\014cation)f(\()p Fn(pr)r(e)2329 3707 y Fj(p)2368 3695 y Fn(;)14 b(post)2556 3707 y Fj(p)2594 3695 y Fr(\))31 b(is)f(in)g Fl(simpli-)199 3786 y(\014e)l(d)23 b(form)e Fr(if)g Fl(vars)7 b Fr(\()p Fl(p)l(ost)935 3798 y Fh(p)978 3786 y Fr(\))s Fq(\\)s(f)1113 3756 y Fg(\017)1152 3786 y Fl(p)1194 3798 y Fh(1)1242 3786 y Fn(;)14 b(:)g(:)g(:)f(;)1412 3756 y Fg(\017)1464 3786 y Fl(p)1506 3798 y Fh(n)1554 3786 y Fq(g)23 b Fr(=)f Fq(;)p Fr(,)e(where)g Fn(n)g Fr(is)g(the)g(arit)n(y)f(of)h Fn(p)p Fr(.)g(An)h(asserted)199 3877 y(program)26 b(is)h(in)h Fl(simpli\014e)l(d)j(form)e Fr(if)f(all)f(its)h(sp)r(eci\014cations)f (are.)798 b Fi(2)324 4025 y Fr(In)29 b(other)g(w)n(ords,)f(a)g(sp)r (eci\014cation)h(is)g(in)h(simpli\014ed)f(form)g(if)h(its)f(p)r (ostcondition)g(do)r(es)199 4117 y(not)22 b(con)n(tain)e(input)i(v)-5 b(ariables.)21 b(So)g(for)g(an)g(atom)g Fn(A)i Fr(=)g Fn(p)p Fr(\()p Fn(t)2026 4129 y Fk(1)2063 4117 y Fn(;)14 b(:)g(:)g(:)f(;)h(t)2277 4129 y Fj(n)2323 4117 y Fr(\),)21 b(w)n(e)g(ha)n(v)n(e)g(that)g(\()p Fn(A;)14 b(\033)s Fr(\))199 4208 y(satis\014es)26 b(its)h(p)r(ostcondition)g(if)g Fq(j)-14 b Fr(=)23 b(\()p Fn(post)1493 4220 y Fj(p)1532 4208 y Fn(;)14 b(\014)t Fr(\))p Fn(;)27 b Fr(with)g Fn(\014)h Fr(=)23 b Fq(f)f Fn(p)2159 4178 y Fg(\017)2159 4230 y Fj(i)2197 4208 y Fn(=)p Fr(\()p Fn(t)2301 4220 y Fj(i)2328 4208 y Fn(\033)s Fr(\))47 b Fq(j)23 b Fn(i)g Fq(2)g Fr([1)p Fn(;)14 b(n)p Fr(])p Fq(g)p Fr(.)26 b(Then)199 4299 y(w)n(e)h(use)h (the)g(simpler)f(notation)g Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fn(A\033)s Fr(\).)324 4391 y(The)k(follo)n(wing)g(exp)r(ected)h (prop)r(ert)n(y)e(of)i(monotonic)f(assertions)f(will)h(b)r(e)h(used.) 199 4537 y Fs(Lemma)e(5.7.)40 b Fr(The)31 b(truth)g(of)g(a)f(monotonic) g(assertion)f(is)i(in)n(v)-5 b(arian)n(t)30 b(under)g(renaming,)199 4629 y(i.e.)e(if)g Fn(\033)j Fr(is)d(a)f(renaming)f(then)j Fq(j)-14 b Fr(=)22 b Fn(\036)i Fq(,)f Fn(\036\033)n(:)324 4774 y Fr(Assume)30 b(no)n(w)g(that)g(sp)r(eci\014cations)g(are)f (monotonic)h(and)g(in)g(simpli\014ed)h(form.)f(Con-)199 4865 y(sider)25 b(the)h(map)f Fn(u)g Fr(whic)n(h)g(transforms)f(a)h(sp) r(eci\014cation)g(\()p Fn(pr)r(e)2129 4877 y Fj(p)2168 4865 y Fn(;)14 b(post)2356 4877 y Fj(p)2394 4865 y Fr(\))25 b(in)n(to)g(the)h(sp)r(eci\014ca-)199 4956 y(tion)21 b(\()p Fn(pr)r(e)515 4926 y Fj(p)554 4956 y Fn(;)14 b(post)742 4926 y Fj(p)780 4956 y Fr(\))22 b(obtained)e(replacing)1517 4926 y Fg(\017)1555 4956 y Fn(p)1597 4968 y Fj(i)1645 4956 y Fr(and)h Fn(p)1842 4926 y Fg(\017)1842 4978 y Fj(i)1901 4956 y Fr(with)h Fn(x)2131 4917 y Fj(p)2131 4980 y(i)2169 4956 y Fr(,)f(for)g Fn(i)h Fq(2)i Fr([1)p Fn(;)14 b(n)p Fr(].)20 b(Notice)h(that)199 5048 y Fn(u)e Fr(is)g(a)g(bijection)h(from)f(sp)r(eci\014cations)f(\()p Fn(pr)r(e)1570 5060 y Fj(p)1609 5048 y Fn(;)c(post)1797 5060 y Fj(p)1836 5048 y Fr(\))19 b(in)h(simpli\014ed)f(form)g(with)h (monotonic)199 5139 y(assertions)g(to)h(sp)r(eci\014cations)f(\()p Fn(pr)r(e)1319 5109 y Fj(p)1358 5139 y Fn(;)14 b(post)1546 5109 y Fj(p)1584 5139 y Fr(\))22 b(used)f(to)g(de\014ne)h(w)n (ell-m-asserted)d(programs.)p eop %%Page: 14 14 14 13 bop 199 390 a Fx(14)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena) g(Marc)n(hiori)199 573 y Fs(Theorem)29 b(5.8.)40 b Fr(The)25 b(notion)g(of)g(a)g(w)n(ell-m-asserted)f(program)f(is)i(a)g(sp)r(ecial) g(case)g(of)g(the)199 664 y(notion)j(of)f(a)g(w)n(ell-)p Fn(dot)p Fr(-asserted)f(program.)199 816 y Fl(Pr)l(o)l(of.)34 b Fr(Let)f Fq(A)p Fn(P)45 b Fr(b)r(e)33 b(an)f(asserted)f(program)g(in) i(simpli\014ed)g(form)f(and)g(with)h(monotonic)199 907 y(assertions.)c(Let)i Fq(A)823 877 y Fg(0)847 907 y Fn(P)42 b Fr(b)r(e)31 b(the)g(asserted)f(program)e(obtained)j(b)n(y)f (replacing)f(ev)n(ery)h(sp)r(ec-)199 998 y(i\014cation)42 b(\()p Fn(pr)r(e)684 1010 y Fj(p)723 998 y Fn(;)14 b(post)911 1010 y Fj(p)950 998 y Fr(\))42 b(of)h Fq(A)p Fn(P)55 b Fr(with)43 b Fn(u)p Fr(\()p Fn(pr)r(e)1712 1010 y Fj(p)1750 998 y Fn(;)14 b(post)1938 1010 y Fj(p)1976 998 y Fr(\).)43 b(W)-7 b(e)43 b(sho)n(w)f(that)h Fq(A)p Fn(P)55 b Fr(is)42 b(w)n(ell-)199 1090 y Fn(dot)p Fr(-asserted)34 b(i\013)i Fq(A)840 1059 y Fg(0)863 1090 y Fn(P)47 b Fr(is)35 b(w)n (ell-m-asserted.)e(Let)i Fn(c)g Fr(:)h Fn(p)p Fr(\()p Fs(s)2067 1114 y(0)2118 1090 y Fr(\))g Fq( )f Fn(p)2346 1102 y Fk(1)2383 1090 y Fr(\()p Fs(s)2453 1114 y(1)2505 1090 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)2764 1102 y Fj(n)2809 1090 y Fr(\()p Fs(s)2879 1102 y(n)2936 1090 y Fr(\))35 b(b)r(e)199 1181 y(a)27 b(clause)g(of)h Fn(P)12 b Fr(.)199 1274 y(Supp)r(ose)28 b(that)g Fq(A)p Fn(P)40 b Fr(is)27 b(w)n(ell-)p Fn(dot)p Fr(-asserted.)f(W)-7 b(e)28 b(pro)n(v)n(e)e(that)i Fn(c)f Fr(is)h(w)n(ell-m-asserted.)199 1366 y(Fix)g(an)f(arbitrary)f Fn(i)d Fq(2)g Fr([1)p Fn(;)14 b(n)k Fr(+)g(1].)27 b(Let)h Fn(\013)g Fr(b)r(e)g(s.t.)422 1514 y Fq(j)-14 b Fr(=)22 b(\()p Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)814 1539 y(0)867 1514 y Fr(\)\))d Fq(^)g Fn(post)p Fr(\()p Fn(p)1249 1526 y Fk(1)1286 1514 y Fr(\()p Fs(s)1356 1539 y(1)1408 1514 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1667 1526 y Fj(i)p Fg(\000)p Fk(1)1779 1514 y Fr(\()p Fs(s)1849 1543 y(i)p Fg(\000)p Fs(1)1979 1514 y Fr(\)\)\))p Fn(\013:)790 b Fr(\(10\))199 1710 y(W)-7 b(e)28 b(sho)n(w)f(that)h Fn(pr)r(e)p Fr(\()p Fn(p)922 1722 y Fj(i)950 1710 y Fr(\()p Fs(s)1020 1739 y(i)1050 1710 y Fr(\)\))p Fn(\013)h Fr(is)e(true.)h(Let)g Fn(A)1689 1663 y Fk(def)1702 1710 y Fr(=)13 b Fn(p)p Fr(\()p Fs(s)1892 1735 y(0)1944 1710 y Fn(\013)p Fr(\).)199 1803 y(Consider)29 b(the)h(sequence)f Fn(\032)1082 1815 y Fk(0)1119 1803 y Fn(;)14 b(:)g(:)g(:)f(;)h(\032)1346 1815 y Fj(n)1391 1803 y Fr(,)30 b(where)f Fn(\032)1729 1815 y Fk(0)1792 1803 y Fr(=)d Fn(\013)1936 1818 y Fg(j)p Fh(vars)5 b Fk(\()p Fs(s)2149 1851 y(0)2200 1818 y Fk(\))2260 1803 y Fr(and)29 b Fn(\032)2466 1815 y Fj(i)2520 1803 y Fr(=)d Fn(\013)2664 1818 y Fg(j)p Fh(vars)5 b Fk(\()p Fs(s)2877 1855 y(i)2906 1818 y Fk(\))2936 1803 y Fr(,)30 b(for)199 1926 y Fn(i)23 b Fq(2)g Fr([1)p Fn(;)14 b(n)p Fr(].)20 b(By)f(Lemma)g(5.7)g(w)n(e)g(can)h(assume)f Fl(vars)7 b Fr(\()p Fs(s)1847 1951 y(0)1899 1926 y Fn(\013)p Fr(\))s Fq(\\)s Fl(vars)g Fr(\()p Fs(s)2271 1951 y(0)2323 1926 y Fn(;)14 b(:)g(:)g(:)g(;)g Fs(s)2546 1938 y(n)2603 1926 y Fr(\))23 b(=)g Fq(;)c Fr(without)199 2017 y(loss)40 b(of)g(generalit)n(y)-7 b(.)39 b(It)h(is)h(easy)e(to)h(c)n(hec)n(k)f (that)i Fn(\032)1869 2029 y Fk(0)1906 2017 y Fn(;)14 b(:)g(:)g(:)g(;)g(\032)2134 2029 y Fj(n)2219 2017 y Fr(is)40 b(a)g(v)-5 b(aluation)40 b(sequence)199 2109 y(for)35 b Fn(A)g Fr(and)g Fn(c)p Fr(.)g(Moreo)n(v)n(er,)d(b)n(y)j(\(10\))g Fn(A)g Fr(satis\014es)f(its)h(precondition.)g(Since)g Fq(A)p Fn(P)47 b Fr(is)35 b(w)n(ell-)199 2200 y Fn(dot)p Fr(-asserted)e(and)h(in)h(simpli\014ed)g(form,)f(then)g(b)n(y)g(\(10\)) g(w)n(e)g(ha)n(v)n(e)f(that)i Fn(pr)r(e)p Fr(\()p Fn(p)2752 2212 y Fj(i)2780 2200 y Fr(\()p Fs(s)2850 2229 y(i)2880 2200 y Fr(\)\))p Fn(\013)h Fr(is)199 2291 y(true.)199 2384 y(Con)n(v)n(ersely)-7 b(,)26 b(supp)r(ose)h(that)h Fq(A)1194 2354 y Fg(0)1218 2384 y Fn(P)39 b Fr(is)28 b(w)n(ell-m-asserted.)199 2477 y(W)-7 b(e)28 b(pro)n(v)n(e)e(that)i Fn(c)g Fr(is)f(w)n(ell-)p Fn(dot)p Fr(-asserted.)f(Let)i Fn(p)p Fr(\()p Fs(t)p Fr(\))g(b)r(e)g(s.t.)422 2625 y Fq(j)-14 b Fr(=)22 b Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\)\))p Fn(;)2073 b Fr(\(11\))199 2772 y(and)28 b(let)g Fn(\032)524 2784 y Fk(0)561 2772 y Fn(;)14 b(:)g(:)g(:)f(;)h (\032)788 2784 y Fj(n)861 2772 y Fr(b)r(e)28 b(a)f(v)-5 b(aluation)27 b(sequence)g(for)g Fn(p)p Fr(\()p Fs(t)p Fr(\))i(and)e Fn(c)p Fr(.)h(Then)399 2920 y Fn(\032)442 2932 y Fk(0)502 2920 y Fr(=)22 b Fn(mg)s(u)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\))p Fn(;)14 b(p)p Fr(\()p Fs(s)1077 2945 y(0)1129 2920 y Fr(\)\))p Fn(:)1725 b Fr(\(12\))199 3067 y(Fix)28 b(an)f(arbitrary)f Fn(j)32 b Fr(in)c([1)p Fn(;)14 b(n)k Fr(+)g(1].)27 b(Let)h Fn(\013)g Fr(b)r(e)g(s.t.)422 3220 y Fq(j)-14 b Fr(=)45 b Fn(post)p Fr(\()p Fn(p)766 3232 y Fk(1)804 3220 y Fr(\()p Fs(s)874 3245 y(1)926 3220 y Fn(\032)969 3232 y Fk(1)1006 3220 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1265 3232 y Fj(j)s Fg(\000)p Fk(1)1384 3220 y Fr(\()p Fs(s)1454 3249 y(j)p Fg(\000)p Fs(1)1587 3220 y Fn(\032)1630 3232 y Fj(j)s Fg(\000)p Fk(1)1750 3220 y Fr(\)\))p Fn(\013:)1051 b Fr(\(13\))199 3395 y(W)-7 b(e)28 b(sho)n(w)f(that)h Fq(j)-14 b Fr(=)46 b Fn(pr)r(e)p Fr(\()p Fn(p)1042 3407 y Fj(j)1077 3395 y Fr(\()p Fs(s)1147 3424 y(j)1180 3395 y Fn(\032)1223 3407 y Fj(j)s Fg(\000)p Fk(1)1343 3395 y Fr(\)\))p Fn(\013)p Fr(.)199 3508 y(By)39 b(the)g(de\014nition)g(of)g(v)-5 b(aluation)38 b(sequence,)g(w)n(e)h (ha)n(v)n(e)e Fn(\032)2111 3520 y Fj(j)s Fg(\000)p Fk(1)2273 3508 y Fr(=)k Fn(\032)2422 3520 y Fj(k)2463 3508 y Fn(\033)2510 3520 y Fj(k)q Fk(+1)2649 3508 y Fn(:)14 b(:)g(:)g(\033)2807 3520 y Fj(j)s Fg(\000)p Fk(1)2927 3508 y Fr(,)39 b(for)199 3599 y Fn(k)26 b Fq(2)e Fr([0)p Fn(;)14 b(j)20 b Fq(\000)c Fr(1].)26 b(Then)g(b)n(y)g(\(11\),)g(\(12\))g(and)h(b)n(y)f(\(5\))g (\(i.e.,)h(b)n(y)f(the)h(de\014nition)g(of)f(monotonic)199 3691 y(assertion\))h(w)n(e)g(ha)n(v)n(e)f Fq(j)-14 b Fr(=)46 b Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)1276 3715 y(0)1328 3691 y Fr(\))p Fn(\032)1403 3703 y Fj(j)s Fg(\000)p Fk(1)1523 3691 y Fr(\))p Fn(\013)p Fr(,)29 b(hence)e(b)n(y)h(\(13\))324 3783 y Fq(j)-14 b Fr(=)46 b(\()p Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(s)740 3808 y(0)792 3783 y Fr(\))p Fn(\032)867 3795 y Fj(j)s Fg(\000)p Fk(1)987 3783 y Fr(\))19 b Fq(^)g Fn(post)p Fr(\()p Fn(p)1337 3795 y Fk(1)1374 3783 y Fr(\()p Fs(s)1444 3808 y(1)1496 3783 y Fn(\032)1539 3795 y Fj(j)s Fg(\000)p Fk(1)1659 3783 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1918 3795 y Fj(j)s Fg(\000)p Fk(1)2037 3783 y Fr(\()p Fs(s)2107 3812 y(j)p Fg(\000)p Fs(1)2240 3783 y Fn(\032)2283 3795 y Fj(j)s Fg(\000)p Fk(1)2403 3783 y Fr(\)\)\))p Fn(\013)p Fr(.)199 3900 y(Then)28 b(the)g(result)f(follo)n(ws)g(from)g(the)h (fact)g(that)g Fq(A)1812 3870 y Fg(0)1835 3900 y Fn(P)40 b Fr(is)27 b(w)n(ell-m-asserted.)433 b Fi(2)324 4111 y Fr(The)36 b(follo)n(wing)g(lemma)g(sho)n(ws)f(p)r(ersistence)i(of)f (the)h(notion)f(of)g(b)r(eing)h(w)n(ell-)p Fn(dot)p Fr(-)o(as-)199 4203 y(serted.)199 4355 y Fs(Lemma)26 b(5.9.)40 b Fr(An)19 b(LD-resolv)n(en)n(t)d(of)j(a)f(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f (query)h(and)g(a)g(w)n(ell-)p Fn(dot)p Fr(-asserted)199 4447 y(clause)27 b(that)h(is)g(v)-5 b(ariable)26 b(disjoin)n(t)i(with)g (it,)g(is)f(w)n(ell-)p Fn(dot)p Fr(-asserted.)199 4598 y Fl(Pr)l(o)l(of.)34 b Fr(Let)f Fn(c)e Fr(:)g Fn(p)p Fr(\()p Fs(s)p Fr(\))g Fq( )g Fn(p)1056 4610 y Fk(1)1093 4598 y Fr(\()p Fs(s)1163 4623 y(1)1215 4598 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)1474 4610 y Fj(m)1536 4598 y Fr(\()p Fs(s)1606 4610 y(m)1690 4598 y Fr(\))33 b(b)r(e)g(a)f(w)n (ell-)p Fn(dot)p Fr(-)o(asserted)f(clause)h(and)g(let)199 4689 y Fn(Q)23 b Fr(=)g Fn(p)p Fr(\()p Fs(t)p Fr(\))p Fn(;)14 b(p)598 4701 y Fj(m)p Fk(+1)745 4689 y Fr(\()p Fs(s)815 4714 y(m)p Fk(+)p Fs(1)997 4689 y Fr(\))p Fn(;)g(:)g(:)g(:)g (;)g(p)1256 4701 y Fj(n)1301 4689 y Fr(\()p Fs(s)1371 4701 y(n)1428 4689 y Fr(\))23 b(b)r(e)g(a)f(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)g(query)f(s.t.)i Fn(Q)f Fr(is)h(v)-5 b(ariable)199 4792 y(disjoin)n(t)32 b(with)h Fn(c)p Fr(.)f(Let)g Fn(\022)h Fr(=)d Fn(mg)s(u)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\))p Fn(;)14 b(p)p Fr(\()p Fs(s)p Fr(\)\).)32 b(Let)g Fn(R)g Fr(=)e(\()p Fn(p)2128 4804 y Fk(1)2165 4792 y Fr(\()p Fs(s)2235 4817 y(1)2287 4792 y Fr(\))p Fn(;)14 b(:)g(:)g(:)g(;)g(p)2546 4804 y Fj(n)2591 4792 y Fr(\()p Fs(s)2661 4804 y(n)2718 4792 y Fr(\)\))p Fn(\022)35 b Fr(b)r(e)d(the)199 4883 y(resolv)n(en)n(t)22 b(of)i Fn(Q)f Fr(and)g Fn(c)p Fr(.)h(Consider)f(a)g(v)-5 b(aluation)23 b(sequence)g Fn(\032)2113 4895 y Fk(0)2150 4883 y Fn(;)14 b(:)g(:)g(:)g(;)g(\032)2378 4895 y Fj(n)2446 4883 y Fr(for)23 b Fn(R)q Fr(.)h(Notice)f(that)199 4974 y Fn(\032)242 4986 y Fk(0)307 4974 y Fr(is)28 b(equal)f(to)g(the)h(iden)n(tit)n(y)g (substitution)g Fn(\017)p Fr(.)f(Fix)h(a)f Fn(j)h Fq(2)c Fr([1)p Fn(;)14 b(n)p Fr(].)27 b(Let)h Fn(\013)g Fr(b)r(e)g(s.t.)422 5127 y Fq(j)-14 b Fr(=)22 b Fn(post)p Fr(\(\()p Fn(p)775 5139 y Fk(1)813 5127 y Fr(\()p Fs(s)883 5152 y(1)935 5127 y Fr(\))p Fn(\022)r(\032)1051 5139 y Fk(0)1088 5127 y Fn(;)14 b(\033)1172 5139 y Fk(1)1210 5127 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g Fr(\()p Fn(p)1501 5139 y Fj(j)1536 5127 y Fr(\()p Fs(s)1606 5156 y(j)1639 5127 y Fr(\))p Fn(\022)r(\032)1755 5139 y Fj(j)s Fg(\000)p Fk(1)1876 5127 y Fn(;)g(\033)1960 5139 y Fj(j)1995 5127 y Fr(\)\))p Fn(\013:)806 b Fr(\(14\))p eop %%Page: 15 15 15 14 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(15)199 573 y Fr(W)-7 b(e)28 b(sho)n(w)f(that)h Fq(j)-14 b Fr(=)23 b Fn(pr)r(e)p Fr(\()p Fn(p)1019 585 y Fj(j)s Fk(+1)1138 573 y Fr(\()p Fs(s)1208 602 y(j)p Fk(+)p Fs(1)1340 573 y Fr(\))p Fn(\022)r(\032)1456 585 y Fj(j)1491 573 y Fr(\))p Fn(\013)p Fr(.)29 b(W)-7 b(e)28 b(distinguish)f(the)h(follo)n (wing)f(t)n(w)n(o)g(cases.)199 689 y(-)22 b Fn(j)28 b Fq(\024)23 b Fn(m)8 b Fq(\000)g Fr(1.)21 b(By)h Fn(Q)g Fr(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f(w)n(e)h(ha)n(v)n(e)f(that)i Fq(j)-14 b Fr(=)22 b Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\)\).)i(Then)e(the)h(sequence)199 780 y Fn(\034)235 792 y Fk(1)307 780 y Fr(=)35 b Fn(\032)450 750 y Fk(1)450 801 y(0)487 780 y Fn(;)14 b(:)g(:)g(:)f(;)h(\032)714 750 y Fk(1)714 800 y Fj(m)812 780 y Fr(of)34 b(substitutions)h(is)g(a)f (v)-5 b(aluation)34 b(sequence)g(for)g Fn(p)p Fr(\()p Fs(t)p Fr(\))h(and)f Fn(c)p Fr(,)h(where)199 871 y Fn(\032)242 841 y Fk(1)242 895 y Fj(k)306 871 y Fr(=)23 b Fn(\022)r(\032)478 883 y Fj(k)519 871 y Fr(,)28 b(for)f Fn(k)e Fq(2)f Fr([0)p Fn(;)14 b(m)p Fr(].)27 b(Then)h(the)g(result)f(follo)n(ws)g(from)g Fn(c)h Fr(w)n(ell-)p Fn(dot)p Fr(-)o(asserted.)199 963 y(Moreo)n(v)n(er,)d(from)i Fn(\034)819 975 y Fk(1)885 963 y Fr(v)-5 b(aluation)27 b(sequence)g(for)g Fn(p)p Fr(\()p Fs(t)p Fr(\))h(and)f Fn(c)h Fr(it)g(follo)n(ws)f(that)422 1102 y Fq(j)-14 b Fr(=)22 b Fn(post)p Fr(\(\()p Fn(p)775 1114 y Fk(1)813 1102 y Fr(\()p Fs(s)883 1127 y(1)935 1102 y Fr(\))p Fn(\022)r(\032)1051 1114 y Fk(0)1088 1102 y Fn(;)14 b(\033)1172 1114 y Fk(1)1210 1102 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g Fr(\()p Fn(p)1501 1114 y Fj(m)1564 1102 y Fr(\()p Fs(s)1634 1114 y(m)1718 1102 y Fr(\))p Fn(\022)r(\032)1834 1114 y Fj(m)p Fg(\000)p Fk(1)1982 1102 y Fn(;)g(\033)2066 1114 y Fj(m)2130 1102 y Fr(\)\))23 b Fq(\))g Fn(post)p Fr(\()p Fn(p)p Fr(\()p Fs(t)p Fr(\))p Fn(;)14 b(\022)r(\032)2770 1114 y Fj(m)2834 1102 y Fr(\))p Fn(:)52 b Fr(\(15\))199 1251 y(-)40 b Fn(m)45 b Fq(\024)f Fn(j)49 b Fq(\024)44 b Fn(n)p Fr(.)d(The)f(sequence)g Fn(\034)1376 1263 y Fk(2)1458 1251 y Fr(=)k Fn(\032)1610 1221 y Fk(2)1610 1272 y(0)1647 1251 y Fn(;)14 b(:)g(:)g(:)g(;)g(\032) 1875 1221 y Fk(2)1875 1272 y Fj(n)1961 1251 y Fr(of)40 b(substitutions)h(is)f(a)g(v)-5 b(aluation)199 1343 y(sequence)27 b(for)g Fn(Q)p Fr(,)h(where)f Fn(\032)1070 1312 y Fk(2)1070 1363 y(0)1130 1343 y Fr(=)c Fn(\017)k Fr(and)h Fn(\032)1484 1312 y Fk(2)1484 1366 y Fj(k)1547 1343 y Fr(=)23 b Fn(\022)r(\032)1719 1355 y Fj(k)q Fk(+)p Fj(m)p Fg(\000)p Fk(1)1983 1343 y Fr(for)k Fn(k)f Fq(2)d Fr([1)p Fn(;)14 b(n)p Fr(].)27 b(Then)324 1481 y Fq(j)-14 b Fr(=)23 b Fn(post)p Fr(\()p Fs(t)p Fn(;)14 b(\022)r(\032)762 1493 y Fj(m)825 1481 y Fr(\))19 b Fq(^)g Fn(post)p Fr(\(\()p Fn(p)1207 1493 y Fj(m)p Fk(+1)1354 1481 y Fr(\()p Fs(s)1424 1505 y(m)p Fk(+)p Fs(1)1606 1481 y Fr(\))p Fn(\022)r(\032)1722 1493 y Fj(m)1786 1481 y Fn(;)14 b(\033)1870 1493 y Fj(m)1933 1481 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g Fr(\()p Fn(p)2224 1493 y Fj(j)2259 1481 y Fr(\()p Fs(s)2329 1510 y(j)2362 1481 y Fr(\))p Fn(\022)r(\032)2478 1493 y Fj(j)s Fg(\000)p Fk(1)2599 1481 y Fn(;)g(\033)2683 1493 y Fj(j)2718 1481 y Fr(\)\))24 b Fq(\))2366 1596 y Fn(pr)r(e)p Fr(\()p Fn(p)2560 1608 y Fj(j)s Fk(+1)2680 1596 y Fr(\()p Fs(s)2750 1625 y(j)p Fk(+)p Fs(1)2882 1596 y Fr(\))p Fn(\022)r(\032)2998 1608 y Fj(j)3033 1596 y Fr(\))p Fn(:)199 1759 y Fr(So)k(the)g(result)f (follo)n(ws)f(from)i(\(15\),)f(and)g(from)h(\(14\).)1141 b Fi(2)199 1898 y Fs(Theorem)29 b(5.10.)39 b Fr(Let)k Fn(P)54 b Fr(b)r(e)42 b(and)g Fn(Q)g Fr(b)r(e)h(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)e(and)h(let)h Fn(\030)j Fr(b)r(e)d(an)e(LD-) 199 1990 y(deriv)-5 b(ation)27 b(of)h Fn(Q)f Fr(in)h Fn(P)12 b Fr(.)28 b(Then)f(all)h(atoms)f(selected)g(in)h Fn(\030)k Fr(satisfy)27 b(their)g(preconditions.)199 2129 y Fl(Pr)l(o)l(of.)k Fr(Note)f(that)g(the)g(\014rst)f(atom)g(of)h (a)f(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f(query)h(satis\014es)g(its)h (precon-)199 2221 y(dition)d(and)g(that)g(a)g(v)-5 b(arian)n(t)26 b(of)g(a)h(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f(clause)g(is)h (correct.)e(The)i(conclusion)199 2312 y(no)n(w)g(follo)n(ws)g(b)n(y)g (Lemma)g(5.9.)1840 b Fi(2)199 2451 y Fs(Corollary)32 b(5.11.)40 b Fr(Let)e Fn(P)50 b Fr(b)r(e)39 b(a)f(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)g(program)e(in)i(simpli\014ed)h(form.)f(If)199 2543 y Fn(p)p Fr(\()p Fs(s)p Fr(\))33 b(satis\014es)f(its)h (precondition)f(then)i Fq(j)-14 b Fr(=)31 b Fn(post)p Fr(\()p Fn(p)p Fr(\()p Fs(s)p Fr(\))p Fn(;)14 b(\033)s Fr(\),)34 b(for)e(ev)n(ery)g(computed)h(answ)n(er)199 2634 y(substitution)28 b Fn(\033)s Fr(.)199 2774 y Fl(Pr)l(o)l(of.)37 b Fr(Consider)e(the)h(query)f Fn(Q)g Fr(=)h Fn(p)p Fr(\()p Fs(s)p Fr(\))p Fn(;)14 b(p)1623 2744 y Fg(0)1646 2774 y Fr(\()p Fs(s)p Fr(\),)36 b(where)f Fn(p)2097 2744 y Fg(0)2156 2774 y Fr(is)g(a)g(new)h(relation)e(of)i(arit)n(y)199 2865 y(equal)27 b(to)g(the)g(arit)n(y)-7 b(,)26 b(sa)n(y)g Fn(n)p Fr(,)h(of)g Fn(p)p Fr(,)f(and)h(with)h Fn(pr)r(e)1773 2877 y Fj(p)1807 2861 y Fa(0)1861 2865 y Fr(equal)e(to)h Fn(post)2331 2877 y Fj(p)2369 2865 y Fn(\013)p Fr(,)h(where)e Fn(\013)i Fr(renames)199 2956 y(the)i(output)g(v)-5 b(ariables)29 b(of)g Fn(p)h Fr(to)f(a)g(new)h(set)g(of)f(input)i(v)-5 b(ariables,)28 b(and)h(with)i Fn(post)2807 2968 y Fj(p)2841 2952 y Fa(0)2897 2956 y Fr(equal)199 3048 y(to)g Fn(tr)r(ue)p Fr(.)g(It)g(is)g(easy)f(to)h(c)n(hec)n(k)f(that)i Fn(Q)e Fr(is)h(a)g(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f(query)-7 b(.)30 b(The)h(result)g(no)n(w)199 3139 y(follo)n(ws)c(from)g(Theorem)g (5.10.)1835 b Fi(2)199 3348 y Fr(Notice)30 b(that)h(in)f(Corollary)e (5.11)h(the)i(sp)r(eci\014cations)e(are)g(assumed)h(to)g(b)r(e)h(in)f (simpli\014ed)199 3440 y(form:)22 b(this)g(h)n(yp)r(othesis)f(allo)n (ws)f(us)i(to)f(giv)n(e)g(a)h(simple)f(pro)r(of)h(of)f(that)h(result,)g (as)f(a)g(corollary)199 3531 y(of)33 b(Theorem)e(5.10.)h(The)g(pro)r (of)g(of)h(Corollary)d(5.11)h(in)i(the)g(general)e(case)g(\(where)i(sp) r(ec-)199 3622 y(i\014cations)e(are)g(not)h(supp)r(osed)g(to)f(b)r(e)h (in)g(simpli\014ed)h(form\))e(is)h(more)f(tec)n(hnical)g(and)h(can)199 3714 y(b)r(e)j(found)g(in)g([DM88)o(].)g(These)f(results)g(extend)h(to) f(programs)f(con)n(taining)g(some)h(built-)199 3805 y(in)f(relations.)f (F)-7 b(or)32 b(instance)g(the)h(built-in)g(relation)f Fn(v)s(ar)k Fr(can)c(b)r(e)h(c)n(haracterized)e(b)n(y)h(the)199 3896 y(sp)r(eci\014cation)37 b Fn(pr)r(e)802 3908 y Fj(v)r(ar)950 3896 y Fr(=)i Fl(true)k Fr(and)37 b Fn(post)1565 3908 y Fj(v)r(ar)1712 3896 y Fr(=)i(\()p Fn(v)s(ar)r Fr(\()p Fn(v)s(ar)2132 3866 y Fg(\017)2172 3896 y Fr(\))26 b Fq(^)2310 3866 y Fg(\017)2348 3896 y Fn(v)s(ar)42 b Fr(=)d Fn(v)s(ar)2744 3866 y Fg(\017)2783 3896 y Fr(\),)f(where)199 3988 y(the)32 b(assertion)e Fn(v)s(ar)r Fr(\()p Fn(t)p Fr(\))j(is)e(true)h(i\013)g Fn(t)f Fr(is)g(an)h(ob)5 b(ject)31 b(v)-5 b(ariable.)30 b(W)-7 b(e)32 b(conclude)f(this)h (section)199 4079 y(illustrating)24 b(ho)n(w)f(these)h(results)f(can)h (b)r(e)g(applied)g(to)g(our)f(running)h(example)f Fe(quicksort)p Fr(.)199 4219 y Fs(Example)28 b(5.12.)40 b Fr(Consider)g(the)h(follo)n (wing)f(sp)r(eci\014cations)g(whic)n(h)g(are)g(in)h(simpli\014ed)199 4310 y(form:)199 4496 y Fn(pr)r(e)319 4508 y Fj(q)r(s)434 4496 y Fr(=)k Fn(ListGae)p Fr(\()879 4466 y Fg(\017)917 4496 y Fn(q)s(s)995 4516 y Fk(1)1033 4496 y Fr(\))p Fn(;)14 b(v)s(ar)r Fr(\()1260 4466 y Fg(\017)1299 4496 y Fn(q)s(s)1378 4516 y Fk(2)1415 4496 y Fr(\);)270 b Fn(post)1891 4508 y Fj(q)r(s)2005 4496 y Fr(=)46 b Fn(per)r(m)p Fr(\()p Fn(q)s(s)2420 4466 y Fg(\017)2420 4517 y Fk(1)2458 4496 y Fn(;)14 b(q)s(s)2574 4466 y Fg(\017)2574 4517 y Fk(2)2612 4496 y Fr(\))p Fn(;)g(sor)r(ted)p Fr(\()p Fn(q)s(s)3024 4466 y Fg(\017)3024 4517 y Fk(2)3062 4496 y Fr(\);)199 4588 y Fn(pr)r(e)319 4600 y Fj(app)474 4588 y Fr(=)46 b Fn(ListGae)p Fr(\()920 4557 y Fg(\017)957 4588 y Fn(app)1085 4608 y Fk(1)1122 4588 y Fn(;)1145 4557 y Fg(\017)1197 4588 y Fn(app)1324 4608 y Fk(2)1362 4588 y Fr(\);)323 b Fn(post)1891 4600 y Fj(app)2046 4588 y Fr(=)45 b Fn(conc)p Fr(\()p Fn(app)2478 4557 y Fg(\017)2478 4608 y Fk(1)2516 4588 y Fn(;)14 b(app)2681 4557 y Fg(\017)2681 4608 y Fk(2)2719 4588 y Fn(;)g(app)2883 4557 y Fg(\017)2883 4608 y Fk(3)2921 4588 y Fr(\);)199 4679 y Fn(pr)r(e)319 4691 y Fj(par)r(t)498 4679 y Fr(=)45 b Fn(ListGae)p Fr(\()943 4649 y Fg(\017)981 4679 y Fn(par)r(t)1136 4699 y Fk(2)1173 4679 y Fr(\))p Fn(;)14 b(Gae)p Fr(\()1422 4649 y Fg(\017)1461 4679 y Fn(par)r(t)1616 4699 y Fk(1)1653 4679 y Fr(\);)32 b Fn(post)1891 4691 y Fj(par)r(t)2069 4679 y Fr(=)46 b Fn(\036)2229 4691 y Fj(par)r(t)2362 4679 y Fr(;)199 4770 y Fn(pr)r(e)319 4782 y Fj(>)422 4770 y Fr(=)f Fn(Gae)p Fr(\()712 4740 y Fg(\017)751 4770 y Fn(>)815 4782 y Fk(1)852 4770 y Fn(;)875 4740 y Fg(\017)927 4770 y Fn(>)992 4782 y Fk(2)1029 4770 y Fr(\);)656 b Fn(post)1891 4782 y Fj(>)1993 4770 y Fr(=)23 b Fn(>)2146 4740 y Fg(\017)2146 4791 y Fk(1)2184 4770 y Fn(>>)2314 4740 y Fg(\017)2314 4791 y Fk(2)2351 4770 y Fr(;)199 4861 y Fn(pr)r(e)319 4873 y Fg(\024)422 4861 y Fr(=)45 b Fn(Gae)p Fr(\()712 4831 y Fg(\017)751 4861 y Fq(\024)815 4877 y Fk(1)852 4861 y Fn(;)875 4831 y Fg(\017)927 4861 y Fq(\024)992 4877 y Fk(2)1029 4861 y Fr(\);)656 b Fn(post)1891 4873 y Fg(\024)1993 4861 y Fr(=)46 b Fq(\024)2168 4829 y Fg(\017)2168 4882 y Fk(1)2230 4861 y Fq(\024)22 b(\024)2382 4829 y Fg(\017)2382 4882 y Fk(2)2420 4861 y Fr(;)199 5001 y(where)199 5139 y Fn(\036)248 5151 y Fj(par)r(t)427 5139 y Fr(=)50 b Fn(ListGae)p Fr(\()p Fn(par)r(t)1032 5109 y Fg(\017)1032 5160 y Fk(3)1070 5139 y Fn(;)14 b(par)r(t)1262 5109 y Fg(\017)1262 5160 y Fk(4)1300 5139 y Fr(\))19 b Fq(^)g Fr(\()p Fn(el)r Fr(\()p Fn(par)r(t)1710 5109 y Fg(\017)1710 5160 y Fk(2)1748 5139 y Fr(\))k(=)g Fn(el)r Fr(\()p Fn(par)r(t)2144 5109 y Fg(\017)2144 5160 y Fk(3)2182 5139 y Fr(\))c Fq([)g Fn(el)r Fr(\()p Fn(par)r(t)2559 5109 y Fg(\017)2559 5160 y Fk(4)2597 5139 y Fr(\)\))14 b Fq(^)p eop %%Page: 16 16 16 15 bop 199 390 a Fx(16)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena) g(Marc)n(hiori)732 573 y Fq(8)p Fn(x)p Fr(\()p Fn(x)g Fq(2)f Fn(el)r Fr(\()p Fn(par)r(t)1260 542 y Fg(\017)1260 593 y Fk(3)1298 573 y Fr(\))g Fq(\))h Fn(x)f(<)g(par)r(t)1773 542 y Fg(\017)1773 593 y Fk(1)1811 573 y Fr(\))p Fq(^)29 b(8)p Fn(x)p Fr(\()p Fn(x)23 b Fq(2)g Fn(el)r Fr(\()p Fn(par)r(t)2454 542 y Fg(\017)2454 593 y Fk(4)2492 573 y Fr(\))h Fq(\))f Fn(x)g Fq(\025)g Fn(par)r(t)2967 542 y Fg(\017)2967 593 y Fk(1)3005 573 y Fr(\),)199 706 y(where)h Fn(per)r(m)p Fr(\()p Fn(x;)14 b(y)s Fr(\),)26 b Fn(sor)r(ted)p Fr(\()p Fn(x)p Fr(\))h(and)d Fn(conc)p Fr(\()p Fn(x;)14 b(y)s(;)g(z)t Fr(\),)25 b(and)f Fn(el)r Fr(\()p Fn(x)p Fr(\))h(are)f(de\014ned)h(as)f(in)h(Exam-)199 798 y(ple)31 b(4.9.)e(It)i(is)f(not)h(di\016cult)g(to)f(c)n(hec)n(k)f(that)i Fe(quicksort)c Fr(is)j(w)n(ell-)p Fn(dot)p Fr(-)o(asserted.)f(Assume) 199 889 y(no)n(w)23 b(that)h Fe(s)f Fr(is)g(a)g(list)h(of)f(gae's)g (and)g(that)g Fe(x)h Fr(is)f(a)g(v)-5 b(ariable.)22 b(By)i(Theorem)e (4.7)h(w)n(e)g(conclude)199 980 y(that)i(in)g(all)f(LD-deriv)-5 b(ations)24 b(of)g Fe(qs\(s,x\))e Fr(whenev)n(er)i Fn(q)s(s)g Fr(is)h(called,)f(its)h(second)f(argumen)n(t)199 1072 y(is)h(a)f(v)-5 b(ariable.)24 b(Moreo)n(v)n(er,)f(b)n(y)h(Corollary)f (5.11)g(w)n(e)i(conclude)f(that)h(all)g(computed)g(answ)n(er)199 1163 y(substitutions)j Fn(\033)j Fr(are)c(suc)n(h)g(that)h Fn(x\033)k Fr(is)27 b(a)g(sorted)g(p)r(erm)n(utation)g(of)h Fn(s)p Fr(.)588 b Fi(2)199 1300 y Fr(Th)n(us,)20 b(static)f(analysis)g (based)g(on)h(non-monotonic)e(assertions)g(asso)r(ciated)g(with)j (relations)199 1392 y(is)29 b(su\016cien)n(t)f(to)h(deriv)n(e)f (information)g(ab)r(out)g(the)h(form)f(of)h(individual)g(atom)f (argumen)n(ts)199 1483 y(\(lik)n(e)38 b(b)r(eing)f(a)h(v)-5 b(ariable\),)37 b(b)r(efore)g(or)f(after)i(their)f(execution.)h(This)f (t)n(yp)r(e)h(of)g(run-time)199 1574 y(prop)r(erties)27 b(can)g(b)r(e)h(used)g(for)f(program)e(optimization.)199 1840 y Fp(6.)56 b(Pro)m(ving)37 b(Global)f(Prop)s(erties)g(of)i(Prolog) e(Programs)199 2019 y Fr(In)27 b(the)h(metho)r(ds)f(presen)n(ted)f(in)h (the)h(t)n(w)n(o)e(previous)f(sections,)i(sp)r(eci\014cations)f(are)g (asso)r(ci-)199 2110 y(ated)j(with)g(the)h(relations)d(o)r(ccurring)h (in)h(the)g(program.)e(As)i(a)g(consequence)e(one)i(cannot)199 2201 y(express)e(global)f(run-time)i(prop)r(erties,)e(describing)h (relationships)f(among)h(the)h(atoms)f(of)199 2293 y(a)34 b(query)f(during)g(its)h(execution.)g(F)-7 b(or)33 b(instance,)g (consider)g(the)h(query)g Fn(Q)f Fr(=)g Fn(p)p Fr(\()p Fn(x)p Fr(\))p Fn(;)14 b(p)p Fr(\()p Fn(y)s Fr(\),)199 2384 y(and)28 b(assume)e(that)i(during)f(the)h(execution)g(of)f Fn(Q)p Fr(,)g Fn(x)i Fr(and)e Fn(y)j Fr(are)d(alw)n(a)n(ys)e(b)r(ound)j (to)g(terms)199 2475 y(whic)n(h)k(do)f(not)g(ha)n(v)n(e)f(v)-5 b(ariables)30 b(in)i(common.)f(This)g(prop)r(ert)n(y)f(cannot)h(b)r(e)h (expressed)e(in)199 2567 y(the)k(previous)e(approac)n(hes,)f(b)r (ecause)i(it)h(is)f(a)g(prop)r(ert)n(y)f(of)h(the)h(query)-7 b(,)32 b(and)i(not)f(of)g(the)199 2658 y(individual)38 b(atoms)e(of)i(the)f(query)-7 b(.)37 b(T)-7 b(o)37 b(allo)n(w)f(global) h(analysis)f(of)h(programs,)e(one)i(can)199 2749 y(asso)r(ciate)c (assertions)f(with)j(program)d(p)r(oin)n(ts.)i(An)h(assertion)d (describ)r(es)i(then)g(the)h(v)-5 b(al-)199 2841 y(ues)32 b(of)g(the)g(v)-5 b(ariables)30 b(of)i(the)g(program)e(when)i(the)g (computation)f(reac)n(hes)g(the)h(relativ)n(e)199 2932 y(program)d(p)r(oin)n(t.)j(This)f(can)f(b)r(e)i(done)f(b)n(y)f (annotating)h(the)g(clauses)f(with)i(assertions,)d(as)199 3023 y(in)f Fn(H)i Fq( )23 b(f)p Fn(I)579 3035 y Fk(0)616 3023 y Fq(g)p Fn(B)721 3035 y Fk(1)758 3023 y Fq(f)p Fn(I)836 3035 y Fk(1)873 3023 y Fq(g)14 b Fn(:)g(:)g(:)f(B)1102 3035 y Fj(n)1148 3023 y Fq(f)p Fn(I)1226 3035 y Fj(n)1271 3023 y Fq(g)p Fr(.)27 b(This)h(metho)r(d)g(has)f(b)r(een)h(prop)r(osed) e(b)n(y)i(Colussi)f(and)199 3115 y(Marc)n(hiori)34 b(in)i([CM91)o(].)f (Since)h(a)f(sp)r(ecial)g(substitution)h Fn(\032)g Fr(is)f(used)g(in)h (the)g(v)n(eri\014cation)199 3206 y(condition)d(of)g(this)h(metho)r(d,) g(w)n(e)e(call)h(here)g Fn(\032)p Fr(-w)n(ell-asserted)e(programs)g (those)i(asserted)199 3297 y(programs)26 b(whic)n(h)j(satisfy)f(the)h (metho)r(d.)g(W)-7 b(e)28 b(sho)n(w)g(b)n(y)g(means)g(of)g(an)g (example)g(that)h(the)199 3388 y(notion)24 b(of)g Fn(\032)p Fr(-w)n(ell-asserted)d(program)h(allo)n(ws)h(also)f(to)i(pro)n(v)n(e)e (some)h(non-monotonic)g(lo)r(cal)199 3480 y(prop)r(erties)32 b(whic)n(h)g(one)g(cannot)g(pro)n(v)n(e)e(b)n(y)i(means)g(of)g(the)h (notion)f(of)g(w)n(ell-)p Fn(dot)p Fr(-asserted)199 3571 y(program.)18 b(Moreo)n(v)n(er,)g(w)n(e)i(in)n(tro)r(duce)g(a)f(simple) i(metho)r(d)g(to)f(pro)n(v)n(e)e(global)h(run-time)h(prop-)199 3662 y(erties)30 b(of)g(programs,)e(based)i(on)g(the)g(notion)g(of)g Fl(wel)t(l-asserte)l(d)k(pr)l(o)l(gr)l(am)p Fr(,)d(and)f(pro)n(v)n(e)e (re-)199 3754 y(sults)e(analogous)d(to)i(those)g(giv)n(en)f(in)i(the)f (previous)g(sections.)f(W)-7 b(e)26 b(sho)n(w)f(that)g(the)h(notion)199 3845 y(of)37 b(w)n(ell-asserted)e(program)g(is)i(simpler,)f(y)n(et)h (less)f(expressiv)n(e,)f(than)i(the)g(notion)g(of)g Fn(\032)p Fr(-)199 3936 y(w)n(ell-asserted)31 b(program.)f(Ho)n(w)n(ev)n(er,)g (the)j(question)f(if)g(the)h(notion)f(of)g(w)n(ell-)p Fn(dot)p Fr(-asserted)199 4028 y(program)19 b(is)j(a)f(sp)r(ecial)g (case)f(of)h(a)g Fn(\032)p Fr(-w)n(ell-asserted)e(program)g(remains)i (to)g(b)r(e)h(in)n(v)n(estigated.)324 4119 y(The)f Fl(assertion)j (language)h(for)f(a)h(pr)l(o)l(gr)l(am)f Fn(P)33 b Fr(con)n(tains)20 b(the)h(v)-5 b(ariables)20 b(of)h(the)h(program)199 4210 y(and)27 b(all)g(their)f(renamings.)g(It)h(is)g(assumed)g(that)g (assertions)e(are)h(seman)n(tically)g(in)n(v)-5 b(arian)n(t)199 4302 y(w.r.t.)27 b(renaming,)f(i.e.)g Fq(j)-14 b Fr(=)23 b Fn(\036)h Fq(,)f Fn(\036\033)s Fr(,)28 b(for)e(ev)n(ery)f(assertion)g Fn(\036)i Fr(and)g(renaming)e Fn(\033)s Fr(.)j(As)e(in)h(the)199 4393 y(previous)h(section,)h(w)n(e)g(denote)g(a)g(query)f Fn(Q)h Fr(b)n(y)g(the)h(clause)e Fn(g)s(oal)f Fq( )f Fn(Q)p Fr(,)j(where)f Fn(g)s(oal)j Fr(is)e(a)199 4484 y(new)f(relation)f(sym)n(b)r(ol.)199 4622 y Fs(De\014nition)k(6.1.)40 b(\(Asserted)32 b(Program\))199 4759 y(-)42 b Fr(An)34 b Fl(asserte)l(d)i(clause)e Fq(A)p Fn(c)g Fr(is)f(de\014ned)h(as)f Fn(H)40 b Fq( )34 b(f)p Fn(I)1919 4771 y Fk(0)1956 4759 y Fq(g)p Fn(B)2061 4771 y Fk(1)2098 4759 y Fq(f)p Fn(I)2176 4771 y Fk(1)2213 4759 y Fq(g)14 b Fn(:)g(:)g(:)f(B)2442 4771 y Fj(n)2487 4759 y Fq(f)p Fn(I)2565 4771 y Fj(n)2610 4759 y Fq(g)p Fr(,)34 b(where)f Fn(c)g Fr(=)324 4850 y Fn(H)38 b Fq( )32 b Fn(B)609 4862 y Fk(1)646 4850 y Fn(;)14 b(:)g(:)g(:)g(;)g(B)894 4862 y Fj(n)939 4850 y Fr(,)33 b(and)g Fn(I)1198 4862 y Fk(0)1235 4850 y Fr(,)g Fn(:)14 b(:)g(:)g(;)33 b(I)1494 4862 y Fj(n)1573 4850 y Fr(are)f(assertions.)f(A)i(form)n(ula)f Fq(f)p Fn(I)2608 4862 y Fj(i)p Fg(\000)p Fk(1)2720 4850 y Fq(g)p Fn(B)2825 4862 y Fj(i)2853 4850 y Fq(f)p Fn(I)2931 4862 y Fj(i)2958 4850 y Fq(g)h Fr(is)324 4942 y(called)27 b(a)g Fl(sp)l(e)l(ci\014c)l (ation)p Fr(.)199 5048 y Fs(-)42 b Fr(An)27 b Fl(asserte)l(d)j(pr)l(o)l (gr)l(am)e Fq(A)p Fn(P)40 b Fr(is)27 b(a)g(set)g(of)g(asserted)f (clauses,)h(one)g(for)f(eac)n(h)h(clause)f(of)i Fn(P)12 b Fr(.)3026 5139 y Fi(2)p eop %%Page: 17 17 17 16 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(17)199 573 y Fr(Sometimes)27 b(w)n(e)f(shall)g(still)h(write)g Fn(P)39 b Fr(instead)26 b(of)h Fq(A)p Fn(P)12 b Fr(.)27 b(In)f(the)i(remaining)d(of)i(this)g(section)199 664 y(w)n(e)g(adopt)h(the)g(follo)n(wing)199 805 y Fs(Assumption)g(6.2.)40 b Fl(Every)28 b(pr)l(o)l(gr)l(am)f Fr(is)e(annotated)g(b)n(y)g(means)g (of)g(a)g(\014xed)h(set)f(of)g(asser-)199 896 y(tions.)324 1037 y(Informally)-7 b(,)23 b(an)i(asserted)e(program)f(is)i(correctly) f(asserted)g(if)i(for)f(ev)n(ery)f(clause)h Fn(c)p Fr(,)g(the)199 1128 y(assertions)j Fn(I)616 1140 y Fk(0)653 1128 y Fr(,)i Fn(I)741 1140 y Fk(1)778 1128 y Fr(,)g Fn(:)14 b(:)g(:)o Fr(,)29 b Fn(I)1014 1140 y Fj(n)1088 1128 y Fr(asso)r(ciated)d(with)j Fn(c)f Fr(are)f(pro)n(v)n(en)g(to)h(b)r(e)h(global)e(in)n(v)-5 b(arian)n(ts.)26 b(In)199 1219 y(order)d(to)h(pro)n(v)n(e)f(global)g (in)n(v)-5 b(ariance,)23 b(uni\014cation)h(is)g(describ)r(ed)g(b)n(y)g (means)g(of)g(a)g(predicate)199 1311 y(relation)j(as)g(follo)n(ws.)199 1451 y Fs(De\014nition)k(6.3.)40 b(\(The)32 b(Relation)e Fq(f)p Fn(\036)p Fq(g)14 b(U)22 b(f)p Fn( )s Fq(g)p Fs(\))k Fr(Let)i Fq(U)36 b Fr(b)r(e)27 b(a)g(a)g(set)h(of)f(pairs)f(of)i(terms) 199 1543 y(or)f(of)i(pairs)e(of)h(atoms)f(and)h(let)h Fn(\036)f Fr(and)g Fn( )k Fr(b)r(e)c(assertions.)f(Then)h Fq(f)p Fn(\036)p Fq(g)14 b(U)21 b(f)p Fn( )s Fq(g)28 b Fr(holds)f(i\013)i(for)199 1634 y(all)35 b(substitutions)h Fn(\013)g Fr(suc)n(h)f(that)g Fn(\036\013)h Fr(is)f(true,)h(whenev)n (er)e(there)h(exists)g Fn(\026)h Fr(=)f Fn(mg)s(u)p Fr(\()p Fq(U)8 b Fn(\013)p Fr(\))199 1725 y(then)28 b Fn( )s(\013\026)h Fr(is)e(true.)2195 b Fi(2)199 1866 y Fr(A)26 b(uni\014er)f(for)g Fq(U)34 b Fr(is)25 b(a)g(substitution)h(whic)n(h)f(uni\014es)g(ev)n (ery)f(pair)h(of)g Fq(U)8 b Fr(,)26 b(while)f Fn(\014)30 b Fr(is)25 b(an)g Fn(mg)s(u)199 1957 y Fr(of)h Fq(U)33 b Fr(if)26 b(it)g(is)g(a)f(uni\014er)g(and)g(for)g(ev)n(ery)g(other)g (uni\014er)g Fn(\013)h Fr(of)f Fq(U)8 b Fr(,)26 b(w)n(e)f(ha)n(v)n(e)g (that)g Fn(\013)f Fr(=)e Fn(\014)t(\015)5 b Fr(,)26 b(for)199 2049 y(some)h(substitution)h Fn(\015)5 b Fr(.)324 2140 y(In)27 b([CM91)o(],)g(a)f(sound)h(pro)r(of-system)f(for)g(deriving)g Fq(f)p Fn(\036)p Fq(g)14 b(U)21 b(f)p Fn( )s Fq(g)26 b Fr(is)h(giv)n(en.)f(In)h([CM93)o(],)199 2231 y(a)35 b(sp)r(eci\014c)g(assertion)e(language)g(is)i(considered)e(and)i(a)f (sound)h(and)f(complete)h(calculus)199 2323 y(is)30 b(in)n(tro)r (duced,)g(whic)n(h)g(computes)g(a)f(strongest)g(\(w.r.t.)h (implication\))g(assertion)f Fn( )k Fr(suc)n(h)199 2414 y(that)26 b Fq(f)p Fn(\036)p Fq(g)14 b(U)22 b(f)p Fn( )s Fq(g)j Fr(holds,)g(i.e.,)h(a)f(strongest)g(p)r(ostcondition)g(of)h Fq(U)34 b Fr(w.r.t.)26 b(the)g(precondition)199 2505 y Fn(\036)p Fr(.)324 2597 y(The)21 b(follo)n(wing)g(de\014nition)h(of)f Fl(matches)i Fr(is)e(cen)n(tral)g(in)h(the)g(concept)f(of)h Fn(\032)p Fr(-w)n(ell-asserted)199 2688 y(program.)c(First)i(some)f (useful)i(notions)e(are)g(in)n(tro)r(duced.)h(Let)g Fn(\013)g Fr(b)r(e)g(a)g(substitution.)g(Then:)199 2829 y Fs(-)42 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(X)e Fr(;)14 b Fn(Y)j Fr(\))p Fn(\013)29 b Fr(i\013)f Fq(8)p Fn(x)23 b Fq(2)g Fn(X)r(;)14 b Fq(8)p Fn(y)24 b Fq(2)g Fn(Y)18 b Fr(\()p Fn(v)s(ar)r Fr(\()p Fn(x\013)p Fr(\))k Fq(^)c Fr(\()p Fn(x)24 b Fq(6)p Fr(=)f Fn(y)i Fq(\))f Fn(x\013)f Fq(62)h Fl(vars)7 b Fr(\()p Fl(y)g Fn(\013)p Fr(\)\)\))p Fn(:)199 2969 y Fr(So,)35 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(X)e Fr(;)14 b Fn(Y)k Fr(\))p Fn(\013)37 b Fr(is)e(true)g(when)h Fn(X)7 b(\013)35 b Fr(is)h(a)f(set)g(of)h(distinct)g(v)-5 b(ariables,)34 b(whic)n(h)h(do)g(not)199 3060 y(o)r(ccur)27 b(in)h(the)g(terms)f(of)h (\()p Fn(Y)37 b Fq(n)18 b Fn(X)7 b Fr(\))p Fn(\013)p Fr(.)324 3152 y(F)-7 b(or)31 b(an)h(assertion)e Fn(\036)j Fr(let)f Fn(\036)1203 3122 y Fj(x)1241 3130 y Fd(1)1274 3122 y Fj(;:::)n(;x)1410 3130 y Fc(n)1203 3172 y Fj(s)1234 3180 y Fd(1)1267 3172 y Fj(;:::)o(;s)1397 3180 y Fc(n)1487 3152 y Fr(denote)g(the)g(assertion)e(obtained)i(from)g Fn(\036)g Fr(b)n(y)g(si-)199 3243 y(m)n(ultaneously)27 b(replacing)f(ev)n(ery)h(o)r(ccurrence)f(of)i(the)g Fn(x)1980 3255 y Fj(i)2008 3243 y Fr('s)f(with)h(the)g Fn(s)2462 3255 y Fj(i)2490 3243 y Fr('s.)324 3334 y(With)37 b(a)f(substitution)h Fn(\022)k Fr(=)36 b Fq(f)p Fn(x)1366 3346 y Fk(1)1403 3334 y Fn(=t)1475 3346 y Fk(1)1512 3334 y Fn(;)g(:)14 b(:)g(:)g(;)g(x)1766 3346 y Fj(n)1812 3334 y Fn(=t)1884 3346 y Fj(n)1928 3334 y Fq(g)p Fr(,)36 b(w)n(e)h(asso)r(ciate)e(the)h (set)h(of)f(pairs)199 3426 y(of)c(terms)f Fq(E)577 3438 y Fj(\022)644 3426 y Fr(=)e Fq(f)p Fr(\()p Fn(x)859 3438 y Fk(1)897 3426 y Fn(;)14 b(t)964 3438 y Fk(1)1001 3426 y Fr(\))p Fn(;)g(:)g(:)g(:)g(;)g Fr(\()p Fn(x)1297 3438 y Fj(n)1343 3426 y Fn(;)g(t)1410 3438 y Fj(n)1455 3426 y Fr(\))p Fq(g)p Fr(.)31 b(F)-7 b(or)31 b(a)g(sp)r(eci\014cation)h Fn(spec)d Fr(=)g Fq(f)p Fn(pr)r(e)p Fq(g)p Fn(A)p Fq(f)p Fn(post)p Fq(g)p Fr(,)199 3517 y(those)22 b(v)-5 b(ariables)20 b(whic)n(h)i(o)r(ccur)f(free)g(in)h Fn(spec)f Fr(but)i(do)e(not)h(o)r (ccur)f(in)h Fn(A)g Fr(are)f(called)g Fl(auxiliary)199 3608 y(variables)p Fr(,)36 b(denoted)d Fn(aux)p Fr(\()p Fn(spec)p Fr(\).)h(More)e(generally)g(w)n(e)h(write)h Fn(aux)2371 3620 y Fj(V)2428 3608 y Fr(\()p Fn(E)5 b Fr(\))34 b(to)g(denote)f(the)199 3700 y(set)28 b(of)f(v)-5 b(ariables)27 b(that)h(o)r(ccur)f(free)g(in)h Fn(V)46 b Fr(but)29 b(do)e(not)g(o)r(ccur)g(in)h Fn(E)5 b Fr(.)199 3840 y Fs(De\014nition)31 b(6.4.)40 b(\(Matc)m(hes\))22 b Fr(Let)f Fn(spec)h Fr(=)g Fq(f)p Fn(pr)r(e)p Fq(g)p Fn(A)p Fq(f)p Fn(post)p Fq(g)e Fr(b)r(e)h(a)f(sp)r(eci\014cation)h(and) f(let)199 3932 y Fq(A)p Fn(c)k Fr(=)e Fn(H)30 b Fq( )23 b(f)p Fn(I)695 3944 y Fk(0)732 3932 y Fq(g)p Fn(B)837 3944 y Fk(1)898 3932 y Fq(f)p Fn(I)976 3944 y Fk(1)1013 3932 y Fq(g)14 b Fn(:)g(:)g(:)f(B)1242 3944 y Fj(n)1287 3932 y Fq(f)p Fn(I)1365 3944 y Fj(n)1410 3932 y Fq(g)23 b Fr(an)g(asserted)f(clause.)h(W)-7 b(e)24 b(sa)n(y)e(that)i Fn(spec)f Fl(matches)199 4023 y Fq(A)p Fn(c)28 b Fr(if)g(there)g (exist:)f(a)g(v)-5 b(arian)n(t)27 b Fq(A)p Fn(c)1290 3993 y Fg(0)1341 4023 y Fr(of)h Fq(A)p Fn(c)p Fr(,)g(t)n(w)n(o)e (disjoin)n(t)i(sets)f(of)h(v)-5 b(ariables)26 b Fn(X)7 b Fr(,)27 b Fn(Y)19 b Fr(,)27 b(and)h(a)199 4114 y(substitution)g Fn(\032)g Fr(suc)n(h)f(that)218 4255 y(1.)41 b Fn(X)29 b Fq(\023)23 b Fl(vars)7 b Fr(\()p Fl(sp)l(e)l(c)e Fr(\),)218 4363 y(2.)41 b Fn(Y)g Fq(\023)23 b Fl(vars)7 b Fr(\()p Fq(A)p Fl(c)798 4333 y Fg(0)822 4363 y Fr(\),)218 4470 y(3.)41 b Fl(dom)7 b Fr(\()p Fn(\032)p Fr(\))23 b Fq(\022)g Fn(aux)840 4482 y Fj(Y)897 4470 y Fr(\()p Fn(c)965 4440 y Fg(0)989 4470 y Fr(\))28 b(and)218 4578 y(4.)41 b Fl(r)l(ange)6 b Fr(\()p Fn(\032)p Fr(\))24 b Fq(\023)e Fn(aux)883 4590 y Fj(X)946 4578 y Fr(\()p Fn(A)p Fr(\))199 4719 y(and)28 b(suc)n(h)f(that)324 4859 y Fq(f)p Fn(pr)r(e)18 b Fq(^)46 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)19 b Fr(;)14 b Fn(X)25 b Fq([)18 b Fn(Y)h Fr(\))p Fq(g)28 b(U)35 b(f)p Fn(I)1416 4829 y Fg(0)1409 4879 y Fk(0)1447 4859 y Fq(g)1297 b Fn(D)r(O)r(W)12 b(N)324 4999 y Fq(f)p Fn(I)409 4969 y Fg(0)402 5019 y Fj(n)465 4999 y Fq(^)47 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(X)e Fr(;)14 b Fn(X)24 b Fq([)19 b Fn(Y)f Fr(\))p Fq(g)28 b(U)36 b(f)p Fn(post)p Fq(g)1393 b Fn(U)9 b(P)199 5139 y Fr(where)27 b Fq(U)32 b Fr(=)22 b Fq(f)p Fr(\()p Fn(A;)14 b(H)859 5109 y Fg(0)882 5139 y Fr(\))p Fq(g)k([)h(E)1092 5151 y Fj(\032)1131 5139 y Fr(.)1872 b Fi(2)p eop %%Page: 18 18 18 17 bop 199 390 a Fx(18)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena) g(Marc)n(hiori)324 573 y Fr(W)-7 b(e)33 b(sa)n(y)f(that)i(a)f(sp)r (eci\014cation)f Fn(spec)h Fr(matc)n(hes)f(the)i(asserted)e(program)f Fq(A)p Fn(P)45 b Fr(if)34 b Fn(spec)199 664 y Fr(matc)n(hes)27 b(ev)n(ery)g(asserted)f(clause)h(of)g Fq(A)p Fn(P)12 b Fr(.)199 807 y Fs(De\014nition)31 b(6.5.)40 b(\()p Fn(\032)p Fs(-w)m(ell-asserted)26 b(program\))c Fr(Let)i Fq(A)p Fn(P)36 b Fr(b)r(e)25 b(an)f(asserted)e(program.)199 898 y(W)-7 b(e)28 b(sa)n(y)f(that)h Fq(A)p Fn(P)39 b Fr(is)28 b Fn(\032)p Fl(-wel)t(l-asserte)l(d)g Fr(if)g(ev)n(ery)f(its)h (sp)r(eci\014cation)f(matc)n(hes)g Fq(A)p Fn(P)12 b Fr(.)201 b Fi(2)324 1040 y Fr(In)39 b([CM91)o(])f(the)h(soundness)f(of)h(this)f (metho)r(d)h(with)g(resp)r(ect)g(to)f(LD-resolution)g(is)199 1132 y(pro)n(v)n(en.)21 b(More)g(in)h(particular,)f(the)i(authors)e (sho)n(w)g(that)h(if)h(a)f(program)e(is)i Fn(\032)p Fr(-w)n (ell-asserted,)199 1223 y(then)29 b(the)g(assertions)d(whic)n(h)j (decorate)e(the)h(program)f(are)g(global)g(in)n(v)-5 b(arian)n(ts)27 b(when)h(LD-)199 1314 y(resolution)f(is)g(considered)g (as)g(computational)g(mec)n(hanism.)324 1406 y(The)38 b(follo)n(wing)f(simple)i(example)f(sho)n(ws)f(that)h(the)h(ab)r(o)n(v) n(e)e(notion)h(allo)n(ws)e(also)i(to)199 1497 y(pro)n(v)n(e)30 b Fl(lo)l(c)l(al)j Fr(non-monotonic)d(prop)r(erties)g(whic)n(h)i (cannot)f(b)r(e)h(pro)n(v)n(en)e(using)h(the)h(notion)199 1588 y(of)c(w)n(ell-)p Fn(dot)p Fr(-)o(asserted)f(program.)199 1730 y Fs(Example)h(6.6.)41 b Fr(Consider)26 b(the)i(follo)n(wing)f (asserted)f(program)g Fq(A)p Fn(P)12 b Fr(:)461 1873 y Fe(goal)42 b Fq( )h(f)p Fn(shar)r(e)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))p Fq(g)44 b Fe(p\(X,Y\))d Fq(f)p Fn(shar)r(e)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))p Fq(g)p Fe(.)199 1964 y Fq(A)p Fn(c)p Fe(:)116 b(p\(V,W\))41 b Fq( )i(f:)p Fn(g)s(r)r(ound)p Fr(\()p Fn(V)20 b Fr(\))p Fq(g)43 b Fe(q\(V\))f Fq(f)p Fn(shar)r(e)p Fr(\()p Fn(V)5 b(;)14 b(W)e Fr(\))p Fq(g)p Fe(.)461 2055 y(q\(Z\))42 b Fq( )h(f)p Fn(shar)r(e)p Fr(\()p Fn(Z)q(;)14 b(W)e(c)p Fr(\))p Fq(g)p Fe(.)199 2198 y Fr(Then)42 b(it)g(is)g(easy)f(to)g(v)n(erify)g(that)h Fq(A)p Fn(P)54 b Fr(is)42 b Fn(\032)p Fr(-w)n(ell-asserted,)e(where)h (the)h(substitution)199 2289 y Fn(\032)23 b Fr(=)g Fq(f)p Fn(W)12 b(c=W)g Fq(g)22 b Fr(can)i(b)r(e)g(used)g(when)h(pro)n(ving)d (that)i Fq(f:)p Fn(g)s(r)r(ound)p Fr(\()p Fn(V)c Fr(\))p Fq(g)p Fn(q)s Fr(\()p Fn(V)f Fr(\))p Fq(f)p Fn(shar)r(e)p Fr(\()p Fn(V)5 b(;)14 b(W)e Fr(\))p Fq(g)199 2380 y Fr(matc)n(hes)27 b Fq(A)p Fn(P)12 b Fr(.)324 2472 y(No)n(w,)23 b(a)h(lo)r(cal)f(prop)r (ert)n(y)g(of)h Fn(P)36 b Fr(whic)n(h)24 b(is)g(implied)h(b)n(y)f(the)g Fn(\032)p Fr(-w)n(ell-assertedness)d(of)j Fq(A)p Fn(P)199 2563 y Fr(can)j(b)r(e)h(expressed)f(b)n(y)g(means)g(of)h(the)g(follo)n (wing)e(sp)r(eci\014cations)h(for)g Fn(p)h Fr(and)f Fn(q)s Fr(:)324 2706 y Fn(pr)r(e)444 2718 y Fj(p)505 2706 y Fr(=)c Fn(shar)r(e)p Fr(\()834 2675 y Fg(\017)873 2706 y Fn(p)915 2718 y Fk(1)952 2706 y Fn(;)975 2675 y Fg(\017)1027 2706 y Fn(p)1069 2718 y Fk(2)1106 2706 y Fr(\),)28 b Fn(post)1340 2718 y Fj(p)1401 2706 y Fr(=)23 b Fn(shar)r(e)p Fr(\()p Fn(p)1772 2675 y Fg(\017)1772 2726 y Fk(1)1810 2706 y Fn(;)14 b(p)1889 2675 y Fg(\017)1889 2726 y Fk(2)1927 2706 y Fr(\),)324 2797 y Fn(pr)r(e)444 2809 y Fj(q)504 2797 y Fr(=)22 b Fq(:)p Fn(g)s(r)r(ound)p Fr(\()941 2767 y Fg(\017)980 2797 y Fn(q)s Fr(\),)28 b Fn(post)1254 2809 y Fj(q)1314 2797 y Fr(=)23 b Fq(:)p Fn(g)s(r)r(ound)p Fr(\()p Fn(q)1792 2767 y Fg(\017)1831 2797 y Fr(\).)199 2939 y(One)30 b(can)g(pro)n(v)n(e)f(that)i Fn(P)42 b Fr(with)31 b(the)f(ab)r(o)n(v)n(e)f(sp)r(eci\014cations)h(is)g(not)h(w) n(ell-)p Fn(dot)p Fr(-)o(asserted.)e(In)199 3031 y(fact,)f(consider)f (the)h(sequence:)324 3173 y Fn(\032)367 3185 y Fk(0)427 3173 y Fr(=)23 b Fq(f)p Fn(V)9 b(=f)g Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(2\))p Fn(;)i(W)r(=f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(3\))p Fq(g)p Fr(,)324 3265 y Fn(\032)367 3277 y Fk(1)427 3265 y Fr(=)23 b Fn(\032)558 3277 y Fk(0)595 3265 y Fn(\033)642 3277 y Fk(1)680 3265 y Fr(,)199 3407 y(where)j Fn(\033)485 3419 y Fk(1)546 3407 y Fr(=)c Fq(f)p Fn(W)12 b Fr(1)p Fn(=a)p Fq(g)25 b Fr(and)h Fn(a)g Fr(is)g(a)g(constan)n(t.)g(Then)g Fn(\032)1955 3419 y Fk(0)1992 3407 y Fn(;)14 b(\032)2072 3419 y Fk(1)2136 3407 y Fr(is)26 b(a)g(v)-5 b(aluation)25 b(sequence)h(for)199 3498 y Fn(c)i Fr(and)f Fn(p)p Fr(\()p Fn(f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(2\))p Fn(;)i(f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(3\)\).)26 b(Moreo)n(v)n(er:)199 3640 y(-)i Fn(pr)r(e)p Fr(\()p Fn(p)p Fr(\()p Fn(f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(2\))p Fn(;)i(f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(3\)\)\))26 b(is)i(true;)199 3732 y(-)g Fn(pr)r(e)p Fr(\()p Fn(q)s Fr(\()p Fn(V)19 b Fr(\))p Fn(\032)621 3744 y Fk(0)659 3732 y Fr(\))28 b(is)f(true;)199 3823 y(-)h Fn(post)p Fr(\()p Fn(q)s Fr(\()p Fn(V)19 b Fr(\))p Fn(\032)652 3835 y Fk(0)689 3823 y Fn(;)14 b(\033)773 3835 y Fk(1)811 3823 y Fr(\))28 b(is)f(true)h(but)g Fn(post)p Fr(\()p Fn(p)p Fr(\()p Fn(f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(2\))p Fn(;)i(f)9 b Fr(\()p Fn(W)j Fr(1)p Fn(;)i(W)e Fr(3\)\))p Fn(;)i(\032)2518 3835 y Fk(1)2554 3823 y Fr(\))28 b(is)f(false.)3026 3915 y Fi(2)324 4057 y Fr(W)-7 b(e)40 b(in)n(tro)r(duce)f(no)n(w)g(a)g (simpler)g(metho)r(d)h(to)g(pro)n(v)n(e)d(global)i(run-time)g(prop)r (erties,)199 4148 y(based)32 b(on)h(the)g(notion)f(of)h Fl(wel)t(l-asserte)l(d)i(pr)l(o)l(gr)l(am)p Fr(.)f(The)e(de\014nition)h (of)g(a)f(w)n(ell-asserted)199 4239 y(program)h(uses)i(the)g(follo)n (wing)f(concept)g(of)h Fl(agr)l(e)l(ement)p Fr(.)g(First)g(some)f (useful)h(assertions)199 4331 y(are)27 b(in)n(tro)r(duced.)g(Let)h Fn(\013)g Fr(b)r(e)g(a)f(substitution.)i(Then)199 4473 y Fs(-)42 b Fn(shar)r(e)p Fr(\()p Fn(r)n(;)14 b(s)p Fr(\))p Fn(\013)28 b Fr(i\013)g Fl(vars)7 b Fr(\()p Fl(r)i Fn(\013)p Fr(\))20 b Fq(\\)f Fl(vars)7 b Fr(\()p Fl(s)g Fn(\013)p Fr(\))24 b Fq(6)p Fr(=)f Fq(;)p Fr(;)199 4581 y Fs(-)42 b Fr(\()p Fn(inst)453 4593 y Fj(A)506 4581 y Fr(\()p Fn(r)n(;)14 b(s)p Fr(\)\))p Fn(\013)29 b Fr(i\013)f Fn(r)r(\013)d Fr(=)d Fn(s\013\014)t(;)42 b Fr(for)28 b(some)f Fn(\014)32 b Fr(s.t.)27 b Fl(dom)8 b Fr(\()p Fn(\014)t Fr(\))24 b Fq(\022)e Fl(vars)7 b Fr(\()p Fl(A)p Fn(\013)p Fr(\).)199 4723 y Fs(De\014nition)31 b(6.7.)40 b(\(Agreemen)m(t\))18 b Fr(Let)k Fn(spec)g Fr(=)h Fq(f)p Fn(pr)r(e)p Fq(g)p Fn(A)p Fq(f)p Fn(post)p Fq(g)d Fr(b)r(e)i(a)f(sp)r(eci\014cation)g(and) 199 4814 y(let)32 b Fq(A)p Fn(c)g Fr(b)r(e)f(an)g(asserted)g(clause.)f (W)-7 b(e)32 b(sa)n(y)e(that)i Fn(spec)f Fl(agr)l(e)l(es)i(with)f Fq(A)p Fn(c)g Fr(if)g(there)f(exists)g(a)199 4905 y(v)-5 b(arian)n(t)23 b Fq(A)p Fn(c)579 4875 y Fg(0)625 4905 y Fr(=)g Fn(H)30 b Fq( )23 b(f)p Fn(I)996 4917 y Fk(0)1033 4905 y Fq(g)p Fn(B)1138 4917 y Fk(1)1198 4905 y Fq(f)p Fn(I)1276 4917 y Fk(1)1314 4905 y Fq(g)14 b Fn(:)g(:)g(:)f(B)1543 4917 y Fj(n)1588 4905 y Fq(f)p Fn(I)1666 4917 y Fj(n)1711 4905 y Fq(g)23 b Fr(of)g Fq(A)p Fn(c)p Fr(,)h(whic)n(h)g(is)f(v)-5 b(ariable)22 b(disjoin)n(t)i(with)199 4997 y Fn(spec)p Fr(,)j(s.t.)h(the)g(follo)n(wing)f(conditions)g(are)f(satis\014ed:)324 5139 y Fq(f)p Fn(pr)r(e)18 b Fq(^)46 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)19 b Fr(;)14 b Fn(X)25 b Fq([)18 b Fn(Y)h Fr(\))p Fq(g)28 b Fr(\()p Fn(A;)14 b(H)7 b Fr(\))28 b Fq(f)p Fn(I)1589 5151 y Fk(0)1626 5139 y Fq(g)p Fr(,)1141 b Fs(CALL)p eop %%Page: 19 19 19 18 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(19)324 573 y Fr(\()p Fn(I)392 585 y Fj(n)456 573 y Fq(^)19 b Fn(A)k Fr(=)g Fn(H)i Fq(^)19 b(9)p Fs(x)967 543 y Fg(0)991 573 y Fr(\()p Fn(inst)1171 585 y Fj(A)1221 569 y Fa(0)1247 573 y Fr(\()p Fs(x)p Fn(;)14 b Fs(x)1416 543 y Fg(0)1440 573 y Fr(\))19 b Fq(^)g Fn(pr)r(e)1685 543 y Fs(x)1685 596 y(x)1735 579 y Fa(0)1762 573 y Fr(\))46 b Fq(\))g Fn(post)p Fr(,)708 b Fs(EXIT)199 726 y Fr(where)27 b Fn(Y)42 b Fr(=)23 b Fl(vars)7 b Fr(\()p Fq(A)p Fl(c)914 696 y Fg(0)938 726 y Fr(\),)28 b Fn(X)h Fr(=)23 b Fl(vars)7 b Fr(\()p Fl(sp)l(e)l(c)e Fr(\),)199 819 y Fs(x)24 b Fr(=)e Fn(X)j Fq(n)18 b(f)p Fn(x)23 b Fq(2)g Fn(X)44 b Fq(j)37 b Fn(pr)r(e)23 b Fq(\))g(:)p Fn(shar)r(e)p Fr(\()p Fn(y)s(;)14 b(x)p Fr(\))p Fn(;)56 b Fr(for)27 b(all)h Fn(y)i Fr(o)r(ccurring)c(in)i Fn(A)p Fq(g)p Fr(,)199 912 y Fs(x)249 882 y Fg(0)301 912 y Fr(is)f(a)g(v)-5 b(arian)n(t)27 b(of)g Fs(x)h Fr(consisting)f(of)h(fresh)f(v)-5 b(ariables,)26 b(and)i Fn(A)2178 882 y Fg(0)2229 912 y Fr(denotes)f Fn(A)2591 882 y Fs(x)2591 935 y(x)2641 918 y Fa(0)2669 912 y Fr(.)199 1066 y(W)-7 b(e)36 b(sa)n(y)e(that)i(a)f (sp)r(eci\014cation)g Fn(spec)g Fr(agrees)e(with)j(an)f(asserted)f (program)g Fq(A)p Fn(P)47 b Fr(if)36 b Fn(spec)199 1157 y Fr(agrees)26 b(with)i(ev)n(ery)e(asserted)h(clause)g(of)g Fq(A)p Fn(P)12 b Fr(.)1356 b Fi(2)199 1310 y Fr(-)27 b(CALL)f(sa)n(ys)f(that)i(if)g(the)g(precondition)f Fn(pr)r(e)h Fr(of)g Fn(A)g Fr(is)f(satis\014ed)g(when)h Fn(A)g Fr(calls)f Fq(A)p Fn(c)2877 1280 y Fg(0)2927 1310 y Fr(then)199 1402 y Fn(I)235 1414 y Fk(0)301 1402 y Fr(is)h(satis\014ed;)199 1495 y(-)c(EXIT)f(sa)n(ys)f(that)i(if)h Fn(I)935 1507 y Fj(n)1003 1495 y Fr(is)f(satis\014ed)f(when)h(the)g(execution)f(of)h Fq(A)p Fn(c)2304 1465 y Fg(0)2350 1495 y Fr(reac)n(hes)e(its)i(exit,)g (then)199 1586 y Fn(post)34 b Fr(is)f(satis\014ed.)g(Ho)n(w)n(ev)n(er,) f(since)i(the)g(v)-5 b(ariables)32 b(of)h Fn(spec)g Fr(do)h(not)f(o)r (ccur)g(in)h Fq(A)p Fn(c)2893 1556 y Fg(0)2916 1586 y Fr(,)g(the)199 1677 y(equation)27 b Fn(A)c Fr(=)g Fn(H)34 b Fr(is)27 b(used)g(to)g(reco)n(v)n(er)e(information)h(on)h(the)h(v)-5 b(ariables)26 b(of)h Fn(A)p Fr(.)g(Moreo)n(v)n(er,)199 1769 y(the)33 b(precondition)g Fn(pr)r(e)g Fr(is)f(used)h(to)g(reco)n (v)n(er)d(information)i(on)h(v)-5 b(ariables)32 b(of)g Fn(spec)h Fr(whic)n(h)199 1860 y(are)e(not)g(in)h Fn(A)p Fr(:)g(due)g(to)g(the)g(non-monotonicit)n(y)e(of)h(the)h(assertions,)e (information)h(giv)n(en)199 1951 y(b)n(y)23 b Fn(pr)r(e)g Fr(ab)r(out)g(the)h(v)-5 b(ariables)22 b(in)h Fs(x)h Fr(\(i.e.,)f(the)h(v)-5 b(ariables)22 b(of)h Fn(A)g Fr(and)g(those)g(v) -5 b(ariables)22 b(whic)n(h)199 2043 y(can)h(share)g(with)g(some)g(v)-5 b(ariable)23 b(of)g Fn(A)p Fr(\))h(is)f(not)h(an)n(ymore)d(v)-5 b(alid.)24 b(Therefore,)e Fs(x)i Fr(is)f(replaced)199 2134 y(b)n(y)28 b Fs(x)365 2104 y Fg(0)388 2134 y Fr(,)g(and)f Fn(inst)748 2146 y Fj(A)798 2130 y Fa(0)824 2134 y Fr(\()p Fs(x)p Fn(;)14 b Fs(x)993 2104 y Fg(0)1018 2134 y Fr(\))27 b(is)h(used)g(to)f(sp)r(ecify)h(their)f(relationship.)199 2289 y Fs(De\014nition)k(6.8.)40 b(\(W)-8 b(ell-Asserted\))39 b Fr(W)-7 b(e)41 b(sa)n(y)f(that)h Fq(A)p Fn(P)53 b Fr(is)41 b Fl(wel)t(l-asserte)l(d)h Fr(if)g(ev)n(ery)199 2380 y(sp)r(eci\014cation)27 b(of)h(it)g(agrees)e(with)i Fq(A)p Fn(P)12 b Fr(.)1583 b Fi(2)199 2534 y Fr(As)22 b(already)f(men)n (tioned)h(at)g(the)g(b)r(eginning)g(of)g(this)g(section,)f(the)i (notion)e(of)h(w)n(ell-asserted)199 2625 y(program)35 b(is)h(simpler,)h(though)f(less)g(expressiv)n(e,)f(than)i(the)g(notion) f(of)h Fn(\032)p Fr(-w)n(ell-asserted)199 2716 y(program.)26 b(In)i(fact,)f(it)h(is)g(easy)f(to)g(c)n(hec)n(k)g(that)h(there)f(is)h (no)f(assertion)f Fn(I)35 b Fr(s.t.)330 2866 y Fe(goal)42 b Fq( )i(f)p Fn(shar)r(e)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))p Fq(g)43 b Fe(p\(X,Y\))e Fq(f)p Fn(shar)r(e)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))p Fq(g)p Fe(.)330 2957 y(p\(V,W\))41 b Fq( )j(f:)p Fn(g)s(r)r(ound)p Fr(\()p Fn(V)19 b Fr(\))p Fq(g)43 b Fe(q\(V\))f Fq(f)p Fn(shar)r(e)p Fr(\()p Fn(V)5 b(;)14 b(W)e Fr(\))p Fq(g)p Fe(.)330 3049 y(q\(Z\))42 b Fq( )i(f)p Fn(I)7 b Fq(g)p Fe(.)199 3197 y Fr(is)28 b(w)n(ell-asserted.)324 3350 y(Notice)k(that,)g(while)g(in)g (the)h(de\014nition)f(of)g(w)n(ell-assertedness)d(of)j(the)g(t)n(w)n(o) g(previous)199 3442 y(metho)r(ds)k(the)g(clauses)f(of)h(the)g(program)e (are)g(examined)i(indep)r(enden)n(tly)-7 b(,)36 b(here)g(all)f(the)199 3533 y(clauses)g(of)h(the)g(program)d(are)i(examined.)g(In)h(order)e (to)i(sho)n(w)e(the)i(p)r(ersistence)g(of)f(the)199 3624 y(notion)k(of)g(b)r(eing)g(w)n(ell-asserted,)e(due)i(to)g(the)g(global) f(c)n(haracter)f(of)i(the)g(metho)r(d,)h(w)n(e)199 3716 y(need)31 b(to)f(reason)f(in)h(the)h(con)n(text)f(of)g(a)g(sp)r (eci\014c)h(w)n(ell-asserted)d(program.)h(Therefore)g(w)n(e)199 3807 y(in)n(tro)r(duce)22 b(the)h(notion)f(of)h(asserted)e(comp)r(ound) h(query)-7 b(.)22 b(W)-7 b(e)23 b(giv)n(e)e(\014rst)i(some)f (preliminary)199 3898 y(terminology)-7 b(.)35 b(F)-7 b(or)36 b(a)g(v)-5 b(arian)n(t)36 b Fq(A)p Fn(c)i Fr(=)f Fn(H)45 b Fq( )38 b(f)p Fn(I)1765 3910 y Fk(0)1802 3898 y Fq(g)p Fn(A)1906 3910 y Fk(1)1943 3898 y Fq(f)p Fn(I)2021 3910 y Fk(1)2059 3898 y Fq(g)14 b Fn(:)g(:)g(:)f(A)2287 3910 y Fj(m)2350 3898 y Fq(f)p Fn(I)2428 3910 y Fj(m)2491 3898 y Fq(g)36 b Fr(of)g(an)h(asserted)199 3990 y(clause)25 b(w)n(e)f(call)h Fl(a)j(su\016x)f(of)h Fq(A)p Fn(c)d Fr(an)n(y)g(asserted)f(query)g Fq(A)p Fn(Q)f Fr(=)g Fq(f)p Fn(I)2242 4002 y Fj(i)p Fg(\000)p Fk(1)2354 3990 y Fq(g)p Fn(A)2458 4002 y Fj(i)2486 3990 y Fq(f)p Fn(I)2564 4002 y Fj(i)2591 3990 y Fq(g)14 b Fn(:)g(:)g(:)f(A)2819 4002 y Fj(m)2883 3990 y Fq(f)p Fn(I)2961 4002 y Fj(m)3024 3990 y Fq(g)p Fr(,)199 4081 y(with)30 b Fn(i)25 b Fq(2)h Fr([1)p Fn(;)14 b(m)19 b Fr(+)g(1],)29 b(and)g(w)n(e)f(refer)h(to)g Fq(A)p Fn(c)g Fr(as)g Fl(the)i(asserte)l(d)g(clause)h(of)g Fq(A)p Fn(Q)p Fr(.)d(Moreo)n(v)n(er,)199 4172 y(w)n(e)i(denote)h Fq(f)p Fn(I)675 4184 y Fj(i)p Fg(\000)p Fk(1)788 4172 y Fq(g)f Fr(b)n(y)g Fn(pr)r(e)p Fr(\()p Fq(A)p Fn(Q)p Fr(\))h(and)g Fq(f)p Fn(I)1572 4184 y Fj(m)1635 4172 y Fq(g)f Fr(b)n(y)g Fn(post)p Fr(\()p Fq(A)p Fn(Q)p Fr(\).)h(Notice)g (that)g Fn(pr)r(e)p Fr(\()p Fq(A)p Fn(Q)p Fr(\))e(=)199 4264 y Fn(post)p Fr(\()p Fq(A)p Fn(Q)p Fr(\))e(if)g Fq(A)p Fn(Q)23 b Fr(=)g Fq(f)p Fn(I)971 4276 y Fj(m)1034 4264 y Fq(g)p Fr(.)199 4419 y Fs(De\014nition)31 b(6.9.)40 b(\(Asserted)26 b(Comp)s(ound)21 b(Query\))i Fr(An)g Fl(asserte)l(d)j(c)l(omp)l(ound)f(query)199 4510 y(\(for)31 b Fq(A)p Fn(P)12 b Fl(\))28 b Fr(is)f(a)g(pair)g Fq(A)p Fn(S)h Fr(=)23 b(\()p Fn(\013;)14 b Fr(\000\))28 b(consisting)f(of)h(a) f(substitution)h Fn(\013)g Fr(and)f(a)h(sequence)462 4656 y(\000)23 b(=)f(\()p Fq(hA)p Fn(Q)820 4668 y Fk(1)858 4656 y Fn(;)14 b(B)958 4668 y Fk(1)995 4656 y Fn(;)g(\036)1081 4668 y Fk(1)1119 4656 y Fq(i)p Fn(;)g(:)g(:)g(:)g(;)g Fq(hA)p Fn(Q)1500 4668 y Fj(n)p Fg(\000)p Fk(1)1630 4656 y Fn(;)g(B)1730 4668 y Fj(n)p Fg(\000)p Fk(1)1860 4656 y Fn(;)g(\036)1946 4668 y Fj(n)p Fg(\000)p Fk(1)2077 4656 y Fq(i)p Fn(;)g Fq(hA)p Fn(Q)2310 4668 y Fj(n)2355 4656 y Fn(;)g(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\))p Fn(;)199 4803 y Fr(s.t.)34 b Fn(n)e Fq(\025)g Fr(1,)h(and)g(for)g Fn(i)f Fq(2)g Fr([1)p Fn(;)14 b(n)22 b Fq(\000)g Fr(1],)33 b Fq(f)p Fn(\036)1542 4815 y Fj(i)1569 4803 y Fq(g)p Fn(B)1674 4815 y Fj(i)1701 4803 y Fq(A)p Fn(Q)1833 4815 y Fj(i)p Fk(+1)1978 4803 y Fr(is)g(a)g(su\016x)g(of)h(\(a)f(v)-5 b(arian)n(t)32 b(of)6 b(\))34 b(an)199 4894 y(asserted)26 b(clause)h(of)g Fq(A)p Fn(P)12 b Fr(,)27 b(and)h Fq(A)p Fn(Q)1332 4906 y Fj(n)1404 4894 y Fr(is)f(a)g(su\016x)g(of)g(the)h (asserted)e(goal-clause)f(of)i Fq(A)p Fn(P)12 b Fr(.)27 b Fi(2)199 5048 y Fr(The)d(in)n(tuition)g(b)r(ehind)g(the)g(ab)r(o)n(v) n(e)e(de\014nition)i(is)f(illustrated)h(b)n(y)f(an)g(example)g(after)g (De\014-)199 5139 y(nition)g(6.11.)e(W)-7 b(e)23 b(no)n(w)f(in)n(tro)r (duce)g(the)h(notion)g(of)f(an)g(asserted)g(resolv)n(en)n(t)f(and)h (deriv)-5 b(ation.)p eop %%Page: 20 20 20 19 bop 199 390 a Fx(20)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena) g(Marc)n(hiori)199 573 y Fs(De\014nition)31 b(6.10.)40 b(\(Asserted)25 b(Resolv)m(en)m(t\))d Fr(Let)g Fq(A)p Fn(S)29 b Fr(=)22 b(\()p Fn(\013;)14 b Fr(\000\))23 b(b)r(e)g(an)f (asserted)f(com-)199 664 y(p)r(ound)44 b(query)-7 b(,)44 b(with)g(\000)50 b(=)g(\()p Fn(\015)1232 676 y Fk(1)1269 664 y Fn(;)14 b(:)g(:)g(:)g(;)g(\015)1497 676 y Fj(n)1542 664 y Fr(\),)44 b Fn(n)50 b Fq(\025)g Fr(1,)44 b(where)f Fn(\015)2264 676 y Fj(i)2342 664 y Fr(=)49 b Fq(hA)p Fn(Q)2620 676 y Fj(i)2648 664 y Fn(;)14 b(B)2748 676 y Fj(i)2776 664 y Fn(;)g(\036)2862 676 y Fj(i)2890 664 y Fq(i)p Fr(,)44 b(for)199 756 y Fn(i)23 b Fq(2)g Fr([1)p Fn(;)14 b(n)p Fr(].)27 b(Let)h Fq(A)p Fn(c)23 b Fr(=)g Fn(H)30 b Fq( )23 b(f)p Fn(I)1199 768 y Fk(0)1236 756 y Fq(g)p Fn(A)1340 768 y Fk(1)1391 756 y Fn(:)14 b(:)g(:)g(A)1564 768 y Fj(m)1627 756 y Fq(f)p Fn(I)1705 768 y Fj(m)1768 756 y Fq(g)27 b Fr(b)r(e)h(a)g(v)-5 b(arian)n(t)26 b(of)i(an)f (asserted)f(clause.)199 847 y(-)i(If)g Fq(A)p Fn(Q)470 859 y Fk(1)530 847 y Fr(=)22 b Fq(f)p Fn(pr)r(e)p Fq(g)p Fn(A)p Fq(f)p Fn(post)p Fq(g)p Fn(A)1180 859 y Fj(m)p Fk(+1)1326 847 y Fq(f)p Fn(I)1404 859 y Fj(m)p Fk(+1)1551 847 y Fq(g)14 b Fn(:)g(:)g(:)f(A)1779 859 y Fj(n)1825 847 y Fq(f)p Fn(I)1903 859 y Fj(n)1948 847 y Fq(g)27 b Fr(then)213 990 y(\()p Fn(\013\022)r(;)14 b Fr(\()p Fq(hf)p Fn(I)518 1002 y Fk(0)556 990 y Fq(g)p Fn(A)660 1002 y Fk(1)711 990 y Fn(:)g(:)g(:)g(A)884 1002 y Fj(m)947 990 y Fq(f)p Fn(I)1025 1002 y Fj(m)1088 990 y Fq(g)p Fn(;)g(A;)g(pr)r(e)p Fq(i)p Fn(;)g Fq(hf)p Fn(post)p Fq(g)p Fn(A)1784 1002 y Fj(m)p Fk(+1)1945 990 y Fn(:)g(:)g(:)f(A)2117 1002 y Fj(n)2163 990 y Fq(f)p Fn(I)2241 1002 y Fj(n)2286 990 y Fq(g)p Fn(;)h(B)2428 1002 y Fk(1)2465 990 y Fn(;)g(\036)2551 1002 y Fk(1)2588 990 y Fq(i)p Fn(;)g(\015)2700 1002 y Fk(2)2738 990 y Fn(;)g(:)g(:)g(:)f(;)h(\015)2965 1002 y Fj(n)3010 990 y Fr(\)\))199 1132 y(is)28 b(called)f(an)g Fl(asserte)l(d)j(r)l(esolvent)g(of)h Fq(A)p Fn(S)k Fl(and)30 b Fq(A)p Fn(c)p Fr(,)e(with)g Fn(\022)d Fr(=)e Fn(mg)s(u)p Fr(\()p Fn(H)r(;)14 b(A\013)p Fr(\);)199 1277 y(-)34 b(If)h Fq(A)p Fn(Q)483 1289 y Fk(1)554 1277 y Fr(is)f(an)g(assertion)e (and)i Fn(n)g(>)g Fr(1)f(then)i(\()p Fn(\013;)14 b Fr(\()p Fn(\015)1938 1289 y Fk(2)1976 1277 y Fn(;)g(:)g(:)g(:)g(;)g(\015)2204 1289 y Fj(n)2249 1277 y Fr(\)\))34 b(is)g(called)g(an)g Fl(asserte)l(d)199 1368 y(r)l(esolvent)c(of)h Fq(A)p Fn(S)5 b Fr(.)2237 b Fi(2)199 1512 y Fr(F)-7 b(rom)27 b(no)n(w)g(on)h(w)n(e)f(denote)g(b)n(y)h Fn(g)s(oal)c Fq( )f(A)p Fn(Q)28 b Fr(the)g(asserted)e(goal-clause)f(of)j Fq(A)p Fn(P)12 b Fr(.)199 1655 y Fs(De\014nition)31 b(6.11.)40 b(\(Asserted)46 b(Deriv)-5 b(ation\))40 b Fr(An)g Fl(asserte)l(d)i (LD-derivation)g Fq(A)p Fn(\030)k Fl(of)199 1747 y Fn(g)s(oal)29 b Fq( )23 b(A)p Fn(Q)28 b Fl(w.r.t.)h Fn(\013)d Fr(is)f(a)g(maximal)g (sequence)g Fq(A)p Fn(R)1903 1759 y Fk(0)1940 1747 y Fn(;)14 b Fq(A)p Fn(R)2106 1759 y Fk(1)2144 1747 y Fn(;)g(:)g(:)g(:)25 b Fr(of)g(asserted)g(comp)r(ound)199 1838 y(queries,)37 b(s.t.)i Fq(A)p Fn(R)791 1850 y Fk(0)869 1838 y Fr(=)h(\()p Fn(\013;)14 b Fr(\()p Fq(hA)p Fn(Q;)g(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\),)39 b Fq(A)p Fn(R)1963 1850 y Fj(i)p Fk(+1)2113 1838 y Fr(is)f(an)f(asserted)g(resolv)n(en)n(t)g(of)199 1929 y Fq(A)p Fn(R)328 1941 y Fj(i)356 1929 y Fr(,)e(for)f Fn(i)g Fq(\025)h Fr(0,)f(and)g(all)h(the)f(v)-5 b(arian)n(ts)34 b(of)g(asserted)g(clauses)f(used)i(are)e(standardized)199 2021 y(apart,)e(i.e.,)h(they)g(are)f(v)-5 b(ariable)31 b(disjoin)n(t)h(b)r(et)n(w)n(een)f(eac)n(h)g(other)h(and)f(with)i Fq(A)p Fn(Q)p Fr(,)f(as)f(w)n(ell)199 2112 y(as)c(with)h Fl(vars)7 b Fr(\()p Fn(\013)p Fr(\).)2240 b Fi(2)199 2255 y Fr(W)-7 b(e)28 b(giv)n(e)f(no)n(w)g(a)g(simple)h(example)f(of)h (asserted)e(deriv)-5 b(ation.)27 b(Let)330 2398 y Fq(A)p Fn(g)f Fr(=)43 b Fe(goal)f Fq( )i(f)p Fn(I)993 2410 y Fk(0)1030 2398 y Fq(g)f Fe(p\(X\))f Fq(f)p Fn(I)1411 2410 y Fk(1)1448 2398 y Fq(g)h Fe(q\(X\))f Fq(f)p Fn(I)1829 2410 y Fk(2)1866 2398 y Fq(g)p Fe(.)330 2493 y Fq(A)p Fn(c)432 2505 y Fk(1)493 2493 y Fr(=)h Fe(p\(f\(Y\)\))d Fq( )k(f)p Fn(I)1161 2463 y Fk(1)1154 2514 y(0)1198 2493 y Fq(g)f Fe(r\(Y\))f Fq(f)p Fn(I)1586 2463 y Fk(1)1579 2514 y(1)1623 2493 y Fq(g)p Fe(.)330 2588 y Fq(A)p Fn(c)432 2600 y Fk(2)493 2588 y Fr(=)h Fe(r\(a\))f Fq( )h(f)p Fn(I)1030 2558 y Fk(2)1023 2609 y(0)1067 2588 y Fq(g)p Fe(.)330 2683 y Fq(A)p Fn(c)432 2695 y Fk(3)493 2683 y Fr(=)g Fe(q\(Z\))f Fq( )h(f)p Fn(I)1030 2653 y Fk(3)1023 2704 y(0)1067 2683 y Fq(g)p Fe(.)199 2826 y Fr(The)28 b(follo)n(wing)e(is)i(an)f(asserted)g(deriv)-5 b(ation)27 b(for)g Fq(A)p Fn(g)j Fr(w.r.t.)e Fn(\013)23 b Fr(=)g Fq(f)p Fn(x=f)9 b Fr(\()p Fn(a)p Fr(\))p Fq(g)p Fr(.)199 2918 y Fq(A)p Fn(R)328 2930 y Fk(0)389 2918 y Fr(=)23 b(\()p Fn(\013;)14 b Fr(\()p Fq(hf)p Fn(I)741 2930 y Fk(0)779 2918 y Fq(g)p Fn(p)p Fr(\()p Fn(x)p Fr(\))p Fq(f)p Fn(I)1052 2930 y Fk(1)1090 2918 y Fq(g)p Fn(q)s Fr(\()p Fn(x)p Fr(\))p Fq(f)p Fn(I)1361 2930 y Fk(2)1398 2918 y Fq(g)p Fn(;)28 b(g)s(oal)r(;)e(tr)r(ue)p Fq(i)p Fr(\)\),)199 3010 y Fq(A)p Fn(R)328 3022 y Fk(1)389 3010 y Fr(=)d(\()p Fn(\014)556 3022 y Fk(1)593 3010 y Fn(;)14 b Fr(\()p Fq(hf)p Fn(I)779 2979 y Fk(1)772 3030 y(0)816 3010 y Fq(g)p Fn(r)r Fr(\()p Fn(y)s Fr(\))p Fq(f)p Fn(I)1090 2979 y Fk(1)1083 3030 y(1)1128 3010 y Fq(g)p Fn(;)27 b(p)p Fr(\()p Fn(x)p Fr(\))p Fn(;)h Fq(f)p Fn(I)1502 3022 y Fk(0)1540 3010 y Fq(gi)p Fn(;)36 b Fq(hf)p Fn(I)1783 3022 y Fk(1)1821 3010 y Fq(g)p Fn(q)s Fr(\()p Fn(x)p Fr(\))p Fq(f)p Fn(I)2092 3022 y Fk(2)2130 3010 y Fq(g)p Fn(;)27 b(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\),)199 3101 y Fq(A)p Fn(R)328 3113 y Fk(2)389 3101 y Fr(=)c(\()p Fn(\014)556 3113 y Fk(1)593 3101 y Fn(;)14 b Fr(\()p Fq(hf)p Fn(I)779 3071 y Fk(2)772 3122 y(0)816 3101 y Fq(g)p Fn(;)27 b(r)r Fr(\()p Fn(y)s Fr(\))p Fn(;)i Fq(f)p Fn(I)1192 3071 y Fk(1)1185 3122 y(0)1229 3101 y Fq(gi)p Fn(;)37 b Fq(hf)p Fn(I)1480 3071 y Fk(1)1473 3122 y(1)1517 3101 y Fq(g)p Fn(;)27 b(p)p Fr(\()p Fn(x)p Fr(\))p Fn(;)i Fq(f)p Fn(I)1892 3113 y Fk(0)1929 3101 y Fq(gi)p Fn(;)37 b Fq(hf)p Fn(I)2173 3113 y Fk(1)2210 3101 y Fq(g)p Fn(q)s Fr(\()p Fn(x)p Fr(\))p Fq(f)p Fn(I)2481 3113 y Fk(2)2519 3101 y Fq(g)p Fn(;)27 b(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\),)199 3193 y Fq(A)p Fn(R)328 3205 y Fk(3)389 3193 y Fr(=)c(\()p Fn(\014)556 3205 y Fk(1)593 3193 y Fn(;)14 b Fr(\()p Fq(hf)p Fn(I)779 3163 y Fk(1)772 3214 y(1)816 3193 y Fq(g)p Fn(;)27 b(p)p Fr(\()p Fn(x)p Fr(\))p Fn(;)i Fq(f)p Fn(I)1191 3205 y Fk(0)1228 3193 y Fq(gi)p Fn(;)37 b Fq(hf)p Fn(I)1472 3205 y Fk(1)1510 3193 y Fq(g)p Fn(q)s Fr(\()p Fn(x)p Fr(\))p Fq(f)p Fn(I)1781 3205 y Fk(2)1818 3193 y Fq(g)p Fn(;)28 b(g)s(oal)r(;)e(tr)r(ue)p Fq(i)p Fr(\)\),)199 3285 y Fq(A)p Fn(R)328 3297 y Fk(4)389 3285 y Fr(=)d(\()p Fn(\014)556 3297 y Fk(1)593 3285 y Fn(;)14 b Fr(\()p Fq(hf)p Fn(I)772 3297 y Fk(1)810 3285 y Fq(g)p Fn(q)s Fr(\()p Fn(x)p Fr(\))p Fq(f)p Fn(I)1081 3297 y Fk(2)1119 3285 y Fq(g)p Fn(;)27 b(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\).)199 3377 y Fq(A)p Fn(R)328 3389 y Fk(5)389 3377 y Fr(=)c(\()p Fn(\014)556 3389 y Fk(2)593 3377 y Fn(;)14 b Fr(\()p Fq(hf)p Fn(I)779 3346 y Fk(3)772 3397 y(0)816 3377 y Fq(g)p Fn(;)27 b(q)s Fr(\()p Fn(x)p Fr(\))p Fn(;)i Fq(f)p Fn(I)1189 3389 y Fk(1)1227 3377 y Fq(gi)p Fn(;)36 b Fq(hf)p Fn(I)1470 3389 y Fk(2)1508 3377 y Fq(g)p Fn(;)27 b(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\),)199 3468 y Fq(A)p Fn(R)328 3480 y Fk(6)389 3468 y Fr(=)c(\()p Fn(\014)556 3480 y Fk(2)593 3468 y Fn(;)14 b Fr(\()p Fq(hf)p Fn(I)772 3480 y Fk(2)810 3468 y Fq(g)p Fn(;)27 b(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\),)199 3613 y(where)g Fn(\014)486 3625 y Fk(1)546 3613 y Fr(=)c Fq(f)p Fn(x=f)9 b Fr(\()p Fn(a)p Fr(\))p Fn(;)14 b(y)s(=a)p Fq(g)25 b Fr(and)i Fn(\014)1365 3625 y Fk(2)1425 3613 y Fr(=)c Fq(f)p Fn(x=f)9 b Fr(\()p Fn(a)p Fr(\))p Fn(;)14 b(y)s(=a;)g(z)t(=f)9 b Fr(\()p Fn(a)p Fr(\))p Fq(g)p Fr(.)24 b(The)j(follo)n(wing)f(notion) 199 3704 y(of)f(w)n(ell-asserted)e(comp)r(ound)i(query)f(clari\014es)g (the)h(role)f(of)h(the)h Fn(B)2298 3716 y Fj(i)2325 3704 y Fr('s)f(together)f(with)i(their)199 3795 y(preconditions)e Fn(\036)758 3807 y Fj(i)786 3795 y Fr('s:)h(they)g(are)e(used)i(in)g (an)f(asserted)g(comp)r(ound)g(query)g(for)g(relating)g(the)199 3887 y Fn(post)p Fr(\()p Fq(A)p Fn(Q)514 3899 y Fj(i)542 3887 y Fr(\)'s)k(with)g(the)g Fn(pr)r(e)p Fr(\()p Fq(A)p Fn(Q)1274 3899 y Fj(i)p Fk(+1)1386 3887 y Fr(\)'s.)199 4031 y Fs(De\014nition)j(6.12.)40 b Fr(Let)28 b Fq(A)p Fn(S)k Fr(b)r(e)c(as)f(in)h(De\014nition)g(6.9.)199 4174 y Fs(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i Fq(A)p Fn(S)35 b Fl(is)30 b(wel)t(l-asserte)l(d)f Fr(if:)342 4317 y(1.)41 b(eac)n(h)27 b(sp)r(eci\014cation)g(o)r(ccurring)f(in)i(\000)g(agrees)e (with)i Fq(A)p Fn(P)12 b Fr(;)342 4425 y(2.)41 b(for)27 b Fn(i)c Fq(2)g Fr([1)p Fn(;)14 b(n)k Fq(\000)g Fr(1],)548 4608 y(\()p Fn(post)p Fr(\()p Fq(A)p Fn(Q)895 4620 y Fj(i)923 4608 y Fr(\))h Fq(^)g Fn(B)1111 4620 y Fj(i)1161 4608 y Fr(=)k Fn(H)1318 4620 y Fj(i)1364 4608 y Fq(^)c(9)p Fs(x)1534 4574 y Fg(0)1534 4645 y Fs(i)1565 4608 y Fr(\()p Fn(inst)1745 4622 y Fj(B)1798 4602 y Fa(0)1795 4643 y Fc(i)1825 4608 y Fr(\()p Fs(x)1907 4637 y(i)1939 4608 y Fn(;)14 b Fs(x)2026 4574 y Fg(0)2026 4645 y Fs(i)2057 4608 y Fr(\))k Fq(^)h Fn(\036)2230 4620 y Fj(i)2258 4542 y Fs(x)2308 4579 y(i)2258 4636 y(x)2308 4616 y Fa(0)2308 4687 y Fs(i)2343 4608 y Fr(\)\))24 b Fq(\))f Fn(pr)r(e)p Fr(\()p Fq(A)p Fn(Q)2821 4620 y Fj(i)p Fk(+1)2933 4608 y Fr(\))p Fn(;)448 4808 y Fr(where)40 b Fn(H)770 4820 y Fj(i)838 4808 y Fr(is)g(the)h(head)f(of)h(the)f(asserted)g(clause)f (of)h Fq(A)p Fn(Q)2393 4820 y Fj(i)2421 4808 y Fr(,)h Fs(x)2535 4837 y(i)2610 4808 y Fr(=)j Fl(vars)7 b Fr(\()p Fn(\036)2956 4820 y Fh(i)2988 4808 y Fr(\))27 b Fq(n)448 4908 y(f)p Fl(x)56 b Fq(j)47 b Fn(\036)704 4920 y Fh(i)768 4908 y Fq(\))33 b(:)p Fl(shar)l(e)6 b Fr(\()p Fl(x)k Fn(;)k Fl(y)7 b Fr(\))31 b Fl(for)g(al)t(l)g Fn(y)h Fl(o)l(c)l(curring) e(in)g Fn(B)2215 4920 y Fj(i)2242 4908 y Fq(g)p Fr(,)k Fs(x)2391 4878 y Fg(0)2391 4949 y Fs(i)2455 4908 y Fr(is)f(a)h(v)-5 b(arian)n(t)32 b(of)h Fs(x)3057 4937 y(i)448 5060 y Fr(consisting)27 b(of)h(fresh)f(v)-5 b(ariables,)26 b(and)i Fn(B)1724 5030 y Fg(0)1720 5082 y Fj(i)1775 5060 y Fr(denotes)f Fn(B)2138 5072 y Fj(i)2166 4994 y Fs(x)2216 5032 y(i)2166 5088 y(x)2216 5068 y Fa(0)2216 5139 y Fs(i)2251 5060 y Fr(.)p eop %%Page: 21 21 21 20 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(21)199 573 y Fs(-)42 b Fr(W)-7 b(e)28 b(sa)n(y)e(that)i Fq(A)p Fn(S)35 b Fl(satis\014es)29 b(its)h(pr)l(e)l(c)l(ondition)f Fr(if)539 745 y(\()p Fn(pr)r(e)p Fr(\()p Fq(A)p Fn(Q)855 757 y Fk(1)893 745 y Fr(\))19 b Fq(^)g Fr(\()p Fq(^)1105 760 y Fj(i)p Fg(2)p Fk([1)p Fj(;n)p Fg(\000)p Fk(1])1394 745 y Fr(\()p Fn(B)1489 757 y Fj(i)1540 745 y Fr(=)k Fn(H)1697 757 y Fj(i)1743 745 y Fq(^)c(9)p Fs(x)1913 711 y Fg(0)1913 781 y Fs(i)1944 745 y Fr(\()p Fn(inst)2124 759 y Fj(B)2177 739 y Fa(0)2174 780 y Fc(i)2204 745 y Fr(\()p Fs(x)2286 774 y(i)2318 745 y Fn(;)14 b Fs(x)2405 711 y Fg(0)2405 781 y Fs(i)2436 745 y Fr(\))k Fq(^)h Fn(\036)2609 757 y Fj(i)2637 679 y Fs(x)2687 716 y(i)2637 773 y(x)2687 753 y Fa(0)2687 824 y Fs(i)2722 745 y Fr(\)\)\))p Fn(\013)324 972 y Fr(is)27 b(true,)h(with)g Fn(H)864 984 y Fj(i)892 972 y Fr(,)f Fs(x)992 1001 y(i)1051 972 y Fr(and)g Fs(x)1262 942 y Fg(0)1262 1013 y Fs(i)1321 972 y Fr(de\014ned)h(as)f(ab)r(o)n(v)n(e,)f(and)i(where)f Fq(^)2424 987 y Fj(i)p Fg(2)p Fk([1)p Fj(;)p Fk(0])2620 972 y Fn(\036)2669 984 y Fj(i)2697 925 y Fk(def)2711 972 y Fr(=)13 b Fn(tr)r(ue)p Fr(.)58 b Fi(2)324 1123 y Fr(F)-7 b(rom)29 b(no)n(w)f(on)h(w)n(e)g(assume)g(that)h Fq(A)p Fn(P)41 b Fr(is)29 b(a)g(w)n(ell-asserted)f(program.)f(The)j (follo)n(wing)199 1214 y(result)e(is)f(a)g(coun)n(terpart)f(of)i (Lemmata)f(4.6)g(and)g(5.9.)199 1350 y Fs(Lemma)f(6.13.)40 b Fr(Let)24 b Fq(A)p Fn(\030)29 b Fr(b)r(e)24 b(an)g(asserted)f (LD-deriv)-5 b(ation)24 b(of)g Fn(g)s(oal)g Fq( )f(A)p Fn(Q)h Fr(w.r.t.)h Fn(\013)p Fr(.)f(Let)199 1441 y Fq(A)p Fn(R)36 b Fr(b)r(e)g(an)f(asserted)f(comp)r(ound)h(query)g(of)g Fq(A)p Fn(\030)t Fr(.)g(Supp)r(ose)h(that)f Fq(A)p Fn(R)h Fr(is)f(w)n(ell-asserted)199 1533 y(and)27 b(that)g Fq(A)p Fn(R)g Fr(satis\014es)f(its)h(precondition.)f(Let)h Fq(A)p Fn(R)1895 1503 y Fg(0)1945 1533 y Fr(b)r(e)g(the)g(asserted)e(resolv)n (en)n(t)g(of)h Fq(A)p Fn(R)199 1624 y Fr(in)i Fq(A)p Fn(\030)t Fr(.)g(Then)g Fq(A)p Fn(R)800 1594 y Fg(0)851 1624 y Fr(is)f(w)n(ell-asserted)f(and)i(it)g(satis\014es)e(its)i (precondition.)199 1760 y Fl(Pr)l(o)l(of.)j Fr(By)f(the)g(de\014nition) g(of)f(a)g(w)n(ell-asserted)f(comp)r(ound)h(query)g(and)h(the)f(fact)h (that)g(a)199 1851 y(v)-5 b(arian)n(t)32 b(of)h(a)f(w)n(ell-asserted)f (program)f(is)j(w)n(ell-asserted,)e(it)i(follo)n(ws)f(that)g Fq(A)p Fn(R)2775 1821 y Fg(0)2832 1851 y Fr(is)g(w)n(ell-)199 1942 y(asserted.)324 2034 y(No)n(w,)18 b(let)h Fq(A)p Fn(R)24 b Fr(=)e(\()p Fn(\013;)14 b Fr(\()p Fn(\015)1075 2046 y Fk(1)1113 2034 y Fn(;)g(:)g(:)g(:)g(;)g(\015)1341 2046 y Fj(k)1382 2034 y Fr(\)\),)19 b Fn(k)26 b(>)c Fr(1,)c(where)g Fn(\015)2001 2046 y Fj(i)2052 2034 y Fr(=)23 b Fq(hA)p Fn(Q)2304 2046 y Fj(i)2332 2034 y Fn(;)14 b(B)2432 2046 y Fj(i)2459 2034 y Fn(;)g(\036)2545 2046 y Fj(i)2573 2034 y Fq(i)p Fr(,)19 b(for)f Fn(i)23 b Fq(2)g Fr([1)p Fn(;)14 b(k)s Fr(],)199 2125 y(and)28 b(let)g Fq(A)p Fn(R)611 2095 y Fg(0)657 2125 y Fr(=)23 b(\()p Fn(\014)t(;)14 b Fr(\000)917 2095 y Fg(0)940 2125 y Fr(\).)28 b(W)-7 b(e)28 b(distinguish)g(the)g(t)n(w)n(o)f(cases)f(of)i(De\014nition)g (6.10.)199 2255 y(-)35 b Fq(A)p Fn(Q)394 2267 y Fk(1)466 2255 y Fr(=)f Fq(f)p Fn(pr)r(e)p Fq(g)p Fn(A)p Fq(f)p Fn(post)p Fq(g)p Fn(A)1128 2267 y Fj(m)p Fk(+1)1274 2255 y Fq(f)p Fn(I)1352 2267 y Fj(m)p Fk(+1)1499 2255 y Fq(g)14 b Fn(:)g(:)g(:)f(A)1727 2267 y Fj(n)1773 2255 y Fq(f)p Fn(I)1851 2267 y Fj(n)1896 2255 y Fq(g)p Fr(.)34 b(Then)h(for)f(some)g (asserted)g(input)199 2347 y(clause)c Fq(A)p Fn(c)f Fr(=)f Fn(H)35 b Fq( )28 b(f)p Fn(I)964 2359 y Fk(0)1001 2347 y Fq(g)p Fn(A)1105 2359 y Fk(1)1156 2347 y Fn(:)14 b(:)g(:)g(A)1329 2359 y Fj(m)1392 2347 y Fq(f)p Fn(I)1470 2359 y Fj(m)1533 2347 y Fq(g)p Fr(,)30 b Fn(\014)35 b Fr(and)c(\000)1927 2317 y Fg(0)1981 2347 y Fr(are)f(de\014ned)h(as)f(sp)r(eci\014ed)h(b)n (y)f(the)199 2438 y(\014rst)21 b(case)g(of)g(De\014nition)h(6.10.)e (Since)i Fq(A)p Fn(R)g Fr(satis\014es)f(its)h(precondition,)e(then)i Fn(pr)r(e\013)g Fr(is)g(true.)199 2529 y(Moreo)n(v)n(er,)h(b)n(y)i (de\014nition)h(of)g(asserted)e(deriv)-5 b(ation)25 b(it)h(follo)n(ws)f (that)h Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)18 b Fr(;)c Fn(X)7 b(\013)14 b Fq([)h Fn(Y)k Fr(\))26 b(is)199 2621 y(true,)f(with)h Fn(Y)42 b Fr(=)22 b Fn(v)s(ar)r(s)p Fr(\()p Fq(A)p Fn(c)p Fr(\))27 b(and)e Fn(X)k Fr(=)23 b Fl(vars)7 b Fr(\()p Fq(f)p Fl(pr)l(e)f Fq(g)p Fl(A)p Fq(f)p Fl(p)l(ost)i Fq(g)p Fr(\).)25 b(Then)g(b)n(y)g(CALL)g(w)n(e)g(ha)n(v)n(e)199 2712 y(that)35 b Fn(I)422 2724 y Fk(0)460 2712 y Fn(\013\022)i Fr(is)d(true.)g(Moreo)n(v)n(er,)e Fn(H)7 b(\013\022)37 b Fr(=)c Fn(H)7 b(\022)r Fr(,)35 b Fn(H)7 b(\022)36 b Fr(=)e Fn(A\013\022)r Fr(,)i(and)e Fn(pr)r(e)2510 2682 y Fs(x)2510 2735 y(x)2560 2718 y Fa(0)2587 2712 y Fn(\013\022)j Fr(=)d Fn(pr)r(e)2935 2682 y Fs(x)2935 2735 y(x)2985 2718 y Fa(0)3012 2712 y Fn(\013)p Fr(.)199 2803 y(Then)27 b Fq(9)p Fs(x)511 2773 y Fg(0)534 2803 y Fr(\()p Fn(inst)714 2815 y Fj(A)764 2799 y Fa(0)790 2803 y Fr(\()p Fs(x)p Fn(;)14 b Fs(x)959 2773 y Fg(0)984 2803 y Fr(\))h Fq(^)h Fn(pr)r(e)1222 2773 y Fs(x)1222 2826 y(x)1272 2810 y Fa(0)1299 2803 y Fr(\))p Fn(\013\022)29 b Fr(is)d(true)g(b)n(y)g(c)n (ho)r(osing)f Fs(x)2208 2773 y Fg(0)2258 2803 y Fr(equal)g(to)h Fs(x)p Fn(\013)p Fr(.)h(Moreo)n(v)n(er,)199 2895 y(for)40 b Fn(i)k Fq(2)h Fr([1)p Fn(;)14 b(k)29 b Fq(\000)d Fr(1],)40 b(from)g Fn(H)1183 2907 y Fj(i)1211 2895 y Fn(\013)45 b Fr(=)e Fn(B)1480 2907 y Fj(i)1508 2895 y Fn(\013)e Fr(it)g(follo)n(ws)e(that)i Fn(H)2245 2907 y Fj(i)2272 2895 y Fn(\013\022)47 b Fr(=)d Fn(B)2583 2907 y Fj(i)2611 2895 y Fn(\013\022)f Fr(and)d(from)199 3027 y(the)34 b(standardization)d(apart)h(it)h(follo)n(ws)f(that)i Fn(\036)1772 3039 y Fj(i)1800 2961 y Fs(x)1850 2998 y(i)1800 3055 y(x)1850 3035 y Fa(0)1850 3106 y Fs(i)1885 3027 y Fn(\013\022)h Fr(=)c Fn(\036)2157 3039 y Fj(i)2185 2961 y Fs(x)2235 2998 y(i)2185 3055 y(x)2235 3035 y Fa(0)2235 3106 y Fs(i)2271 3027 y Fn(\013)p Fr(.)i(Let)g Fn(\036)g Fr(=)e(\()p Fn(A)i Fr(=)e Fn(H)e Fq(^)199 3181 y(9)p Fs(x)295 3151 y Fg(0)319 3181 y Fr(\()p Fn(inst)499 3193 y Fj(A)549 3177 y Fa(0)575 3181 y Fr(\()p Fs(x)p Fn(;)14 b Fs(x)744 3151 y Fg(0)768 3181 y Fr(\))19 b Fq(^)g Fn(pr)r(e)1013 3151 y Fs(x)1013 3204 y(x)1063 3187 y Fa(0)1090 3181 y Fr(\)\).)28 b(Then)324 3315 y(\()p Fn(I)392 3327 y Fk(0)448 3315 y Fq(^)19 b Fn(\036)g Fq(^)g Fr(\()p Fq(^)751 3330 y Fj(i)p Fg(2)p Fk([1)p Fj(;k)q Fg(\000)p Fk(1])1036 3315 y Fr(\()p Fn(B)1131 3327 y Fj(i)1182 3315 y Fr(=)j Fn(H)1338 3327 y Fj(i)1385 3315 y Fq(^)c(9)p Fs(x)1554 3285 y Fg(0)1554 3356 y Fs(i)1586 3315 y Fr(\()p Fn(inst)1766 3327 y Fj(A)1816 3311 y Fa(0)1842 3315 y Fr(\()p Fs(x)1924 3344 y(i)1955 3315 y Fn(;)c Fs(x)2042 3285 y Fg(0)2042 3356 y Fs(i)2073 3315 y Fr(\))19 b Fq(^)g Fn(\036)2247 3327 y Fj(i)2275 3249 y Fs(x)2325 3287 y(i)2275 3343 y(x)2325 3323 y Fa(0)2325 3394 y Fs(i)2360 3315 y Fr(\)\)\))p Fn(\013\022)199 3465 y Fr(is)28 b(true,)f(hence)h Fq(A)p Fn(R)842 3434 y Fg(0)893 3465 y Fr(satis\014es)f(its)g(precondition.) 199 3556 y(-)36 b Fq(A)p Fn(Q)395 3568 y Fk(1)467 3556 y Fr(is)g(an)f(assertion.)f(Then)i Fn(\014)41 b Fr(=)36 b Fn(\013)g Fr(and)g(\000)1785 3526 y Fg(0)1844 3556 y Fr(=)g(\()p Fn(\015)2020 3568 y Fk(2)2058 3556 y Fn(;)14 b(:)g(:)g(:)f(;)h(\015)2285 3568 y Fj(k)2326 3556 y Fr(\))36 b(and)f(the)h(conclusion)199 3647 y(follo)n(ws)18 b(b)n(y)h(the)h(h)n (yp)r(othesis)f(that)g Fq(A)p Fn(R)h Fr(is)f(w)n(ell-asserted)f(and)h (it)g(satis\014es)g(its)g(precondition.)3026 3739 y Fi(2)324 3948 y Fr(This)27 b(yields)h(the)g(follo)n(wing)e(conclusions.)199 4084 y Fs(Theorem)j(6.14.)39 b Fr(Let)26 b Fq(A)p Fn(Q)d Fr(=)g Fq(f)p Fn(I)1310 4096 y Fk(0)1347 4084 y Fq(g)p Fn(A)1451 4096 y Fk(1)1502 4084 y Fn(:)14 b(:)g(:)f(A)1674 4096 y Fj(n)1720 4084 y Fq(f)p Fn(I)1798 4096 y Fj(n)1843 4084 y Fq(g)p Fr(.)25 b(Let)g Fn(\013)h Fr(b)r(e)g(s.t.)f Fn(I)2441 4096 y Fk(0)2479 4084 y Fn(\013)h Fr(is)f(true.)h(Let)f Fq(A)p Fn(\030)199 4175 y Fr(b)r(e)c(an)g(asserted)f(deriv)-5 b(ation)20 b(of)h Fn(g)s(oal)j Fq( )f(A)p Fn(Q)e Fr(w.r.t.)g Fn(\013)p Fr(.)g(Then)g(all)g(the)g(asserted)f(comp)r(ound)199 4266 y(queries)27 b(of)h Fq(A)p Fn(\030)k Fr(satisfy)27 b(their)g(preconditions.)199 4402 y Fl(Pr)l(o)l(of.)c Fr(Note)f(that)g(\()p Fn(\013;)14 b Fr(\()p Fq(hA)p Fn(Q;)g(g)s(oal)r (;)g(tr)r(ue)p Fq(i)p Fr(\)\))22 b(is)f(w)n(ell-asserted)f(and)h (satis\014es)g(its)g(precondi-)199 4493 y(tion)f(and)f(that)h(a)f(v)-5 b(arian)n(t)19 b(of)g(a)g(w)n(ell-asserted)f(program)g(is)h(w)n (ell-asserted.)f(The)h(conclusion)199 4585 y(no)n(w)27 b(follo)n(ws)g(b)n(y)g(Lemma)g(6.13.)1798 b Fi(2)199 4720 y Fs(Corollary)32 b(6.15.)40 b Fr(Let)e Fq(A)p Fn(Q)j Fr(=)f Fq(f)p Fn(I)1377 4732 y Fk(0)1414 4720 y Fq(g)p Fn(A)1518 4732 y Fk(1)1569 4720 y Fn(:)14 b(:)g(:)g(A)1742 4732 y Fj(n)1787 4720 y Fq(f)p Fn(I)1865 4732 y Fj(n)1911 4720 y Fq(g)37 b Fr(and)i(let)f Fn(\013)h Fr(b)r(e)f(s.t.)h Fn(I)2694 4732 y Fk(0)2732 4720 y Fn(\013)f Fr(is)h(true.)199 4812 y(Then)28 b(for)e(ev)n(ery)g(computed)i(answ)n(er)e(substitution)h Fn(\033)k Fr(of)c Fn(Q\013)h Fr(in)f Fn(P)39 b Fr(w)n(e)27 b(ha)n(v)n(e)f(that)i Fn(I)2916 4824 y Fj(n)2961 4812 y Fn(\013\033)3064 4782 y Fg(0)199 4903 y Fr(is)g(true,)f(where)g Fn(\033)771 4873 y Fg(0)818 4903 y Fr(=)c(\()p Fn(\033)s(\032)p Fr(\))1063 4918 y Fg(j)p Fh(dom)5 b Fk(\()p Fj(\033)r Fk(\))1311 4903 y Fr(,)27 b(for)g(some)g(renaming)g Fn(\032)p Fr(.)199 5048 y Fl(Pr)l(o)l(of.)c Fr(Let)d Fn(p)h Fr(b)r(e)g(a)f(new)h (relation)e(sym)n(b)r(ol)h(and)h(consider)e(the)i(program)e Fq(A)p Fn(P)2613 5018 y Fg(0)2657 5048 y Fr(obtained)h(re-)199 5139 y(placing)29 b Fn(g)s(oal)d Fq( )g(A)p Fn(Q)j Fr(with)g Fn(g)s(oal)e Fq( )e(A)p Fn(Q)1544 5109 y Fg(0)1567 5139 y Fr(,)30 b(where)e Fq(A)p Fn(Q)1993 5109 y Fg(0)2042 5139 y Fr(=)d Fq(f)p Fn(I)2210 5151 y Fk(0)2247 5139 y Fq(g)p Fn(A)2351 5151 y Fk(1)2402 5139 y Fn(:)14 b(:)g(:)f(A)2574 5151 y Fj(n)2620 5139 y Fq(f)p Fn(I)2698 5151 y Fj(n)2743 5139 y Fq(g)p Fn(p)p Fq(f)p Fn(tr)r(ue)p Fq(g)p Fr(.)p eop %%Page: 22 22 22 21 bop 199 390 a Fx(22)1631 b(Krzysztof)24 b(R.)f(Apt)h(and)g(Elena) g(Marc)n(hiori)199 573 y Fr(Let)36 b Fq(A)p Fn(S)42 b Fr(=)36 b(\()p Fn(\013;)14 b Fr(\()p Fq(hA)p Fn(Q)934 543 y Fg(0)959 573 y Fn(;)g(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\).)36 b(Then)g Fq(A)p Fn(P)1854 543 y Fg(0)1913 573 y Fr(is)g(w)n(ell-asserted)e(and)h Fq(A)p Fn(S)41 b Fr(is)36 b(w)n(ell-)199 664 y(asserted)27 b(and)i(it)f(satis\014es)g (its)g(precondition.)g(No)n(w,)g(if)h Fn(\033)j Fr(is)c(a)g(computed)g (answ)n(er)f(of)h Fn(Q\013)199 756 y Fr(in)34 b Fn(P)44 b Fr(then)34 b(there)f(exists)f(an)h(asserted)f(deriv)-5 b(ation)32 b Fq(A)p Fn(\030)38 b Fr(of)33 b Fn(g)s(oal)g Fq( )f(A)p Fn(Q)2559 725 y Fg(0)2615 756 y Fr(w.r.t.)h Fn(\013)h Fr(suc)n(h)199 847 y(that)23 b(\()p Fn(\013\022)498 859 y Fk(1)550 847 y Fn(:)14 b(:)g(:)f(\022)699 859 y Fj(k)740 847 y Fn(;)h Fr(\()p Fq(hf)p Fn(I)919 859 y Fj(n)965 847 y Fq(g)p Fn(p)p Fq(f)p Fn(tr)r(ue)p Fq(g)p Fn(;)g(g)s(oal)r(;)g(tr)r(ue)p Fq(i)p Fr(\)\))20 b(is)i(an)g(asserted)f (resolv)n(en)n(t)g(of)h Fq(A)p Fn(\030)t Fr(,)h(where)199 938 y(\()p Fn(\022)270 950 y Fk(1)322 938 y Fn(:)14 b(:)g(:)f(\022)471 950 y Fj(k)512 938 y Fr(\))544 953 y Fg(j)p Fh(vars)5 b Fk(\()p Fh(Q)g Fj(\013)p Fk(\))881 938 y Fr(=)31 b Fn(\033)1027 908 y Fg(0)1051 938 y Fr(,)i(with)h Fn(\033)1352 908 y Fg(0)1407 938 y Fr(=)d(\()p Fn(\033)s(\032)p Fr(\))1660 953 y Fg(j)p Fh(dom)6 b Fk(\()p Fj(\033)r Fk(\))1908 938 y Fr(,)33 b(for)g(some)f(renaming)g Fn(\032)p Fr(.)h(Then)g(b)n(y) 199 1029 y(Theorem)21 b(6.14)g(w)n(e)h(ha)n(v)n(e)e(that)j Fn(I)1227 1041 y Fj(n)1272 1029 y Fn(\013\022)1364 1041 y Fk(1)1416 1029 y Fn(:)14 b(:)g(:)f(\022)1565 1041 y Fj(k)1628 1029 y Fr(is)22 b(true.)g(So)g(the)g(conclusion)f(follo)n(ws) g(b)r(ecause)199 1121 y Fn(I)235 1133 y Fj(n)281 1121 y Fn(\013\022)373 1133 y Fk(1)424 1121 y Fn(:)14 b(:)g(:)g(\022)574 1133 y Fj(k)638 1121 y Fr(=)23 b Fn(I)762 1133 y Fj(n)807 1121 y Fn(\013\033)910 1091 y Fg(0)934 1121 y Fr(.)2069 b Fi(2)324 1330 y Fr(W)-7 b(e)25 b(conclude)f(this)h(last)g(section)f (b)n(y)h(illustrating)f(ho)n(w)g(these)h(results)f(can)g(b)r(e)i (applied)199 1422 y(to)i(our)f(running)g(example)g Fe(quicksort)p Fr(.)199 1558 y Fs(Example)h(6.16.)40 b Fr(Reconsider)28 b(the)i(program)d Fe(quicksort)e Fr(augmen)n(ted)k(with)h(the)f(goal-) 199 1649 y(clause)e Fe(goal)42 b Fq( )i Fe(qs\(X,Y\))p Fr(,)25 b(asserted)h(as)h(follo)n(ws.)330 1785 y Fe(goal)42 b Fq( )i(f)p Fn(ListGae)p Fr(\()p Fn(X)7 b Fr(\))p Fn(;)14 b(f)9 b(r)r(ee)p Fr(\()p Fn(Y)16 b Fr(\))p Fq(g)44 b Fe(qs\(X,Y\))c Fq(f)p Fn(ListGae)p Fr(\()p Fn(X)r(;)14 b(Y)j Fr(\))p Fq(g)p Fe(.)330 1877 y(qs\([X|Xs],Ys\))38 b Fq( )461 1972 y(f)p Fn(I)546 1942 y Fk(1)601 1972 y Fq(^)19 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)18 b(s;)c(Littl)r(es;)g(B)t (ig)s(s;)g(Ls;)g(B)t(s)p Fr(\))p Fq(g)40 b Fe(part\(X,Xs,Little)o(s,B)o (ig)o(s\))461 2067 y Fq(f)p Fn(I)546 2037 y Fk(1)601 2067 y Fq(^)19 b Fn(ListGae)p Fr(\()p Fn(Littl)r(es;)14 b(B)t(ig)s(s)p Fr(\))h Fq(^)k Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)18 b(s;)c(Ls;)g(B)t(s)p Fr(\))p Fq(g)43 b Fe(qs\(Littles,Ls\))461 2162 y Fq(f)p Fn(I)546 2132 y Fk(1)601 2162 y Fq(^)19 b Fn(ListGae)p Fr(\()p Fn(Littl)r(es;)14 b(B)t(ig)s(s;)g(Ls)p Fr(\))g Fq(^)19 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)19 b(s;)14 b(B)t(s)p Fr(\))p Fq(g)43 b Fe(qs\(Bigs,Bs\))461 2257 y Fq(f)p Fn(I)546 2226 y Fk(1)601 2257 y Fq(^)19 b Fn(ListGae)p Fr(\()p Fn(Littl)r(es;)14 b(B)t(ig)s(s;)g(Ls;)g(B)t(s)p Fr(\))g Fq(^)19 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Y)18 b(s)p Fr(\))p Fq(g)44 b Fe(app\(Ls,[X|Bs],Ys)o(\))461 2352 y Fq(f)p Fn(I)546 2321 y Fk(1)601 2352 y Fq(^)19 b Fn(ListGae)p Fr(\()p Fn(Littl)r(es;)14 b(B)t(ig)s(s;)g(Ls;)g(Y)g(s;)g(B)t(s)p Fr(\))p Fq(g)p Fe(.)330 2443 y(qs\([],[]\))40 b Fq( )j(f)p Fn(tr)r(ue)p Fq(g)p Fe(.)330 2581 y(part\(X,[Y|Xs],[Y)o(|Ls)o(],)o(Bs)o (\))38 b Fq( )461 2673 y(f)p Fn(Gae)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))g Fq(^)h Fn(ListGae)p Fr(\()p Fn(X)7 b(s)p Fr(\))17 b Fq(^)i Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Ls;)14 b(B)t(s)p Fr(\))p Fq(g)43 b Fe(X)g Fn(>)g Fe(Y)461 2764 y Fq(f)p Fn(Gae)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))g Fq(^)h Fn(ListGae)p Fr(\()p Fn(X)7 b(s)p Fr(\))17 b Fq(^)i Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Ls;)14 b(B)t(s)p Fr(\))p Fq(g)43 b Fe(part\(X,Xs,Ls,Bs)o(\))461 2855 y Fq(f)p Fn(Gae)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))g Fq(^)h Fn(ListGae)p Fr(\()p Fn(X)7 b(s;)14 b(Ls;)g(B)t(s)p Fr(\))p Fq(g)p Fe(.)330 2947 y(part\(X,[Y|Xs],Ls)o(,[Y)o(|B)o(s])o(\))38 b Fq( )461 3038 y(f)p Fn(Gae)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))g Fq(^)h Fn(ListGae)p Fr(\()p Fn(X)7 b(s)p Fr(\))17 b Fq(^)i Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Ls;)14 b(B)t(s)p Fr(\))p Fq(g)43 b Fe(X)g Fq(\024)g Fe(Y)461 3129 y Fq(f)p Fn(Gae)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))g Fq(^)h Fn(ListGae)p Fr(\()p Fn(X)7 b(s)p Fr(\))17 b Fq(^)i Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Ls;)14 b(B)t(s)p Fr(\))p Fq(g)43 b Fe(part\(X,Xs,Ls,Bs)o(\)) 461 3221 y Fq(f)p Fn(Gae)p Fr(\()p Fn(X)r(;)14 b(Y)k Fr(\))g Fq(^)h Fn(ListGae)p Fr(\()p Fn(X)7 b(s;)14 b(Ls;)g(B)t(s)p Fr(\))p Fq(g)p Fe(.)330 3312 y(part\(X,[],[],[]\))37 b Fq( )44 b(f)p Fn(Gae)p Fr(\()p Fn(X)7 b Fr(\))p Fq(g)p Fe(.)330 3451 y(app\([X|Xs],Ys,[X)o(|Zs)o(]\))37 b Fq( )461 3546 y(f)p Fn(I)546 3515 y Fk(6)601 3546 y Fq(^)19 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(Z)d(s)p Fr(\))p Fq(g)43 b Fe(app\(Xs,Ys,Zs\))461 3641 y Fq(f)p Fn(I)546 3610 y Fk(6)601 3641 y Fq(^)19 b Fn(ListGae)p Fr(\()p Fn(Z)6 b(s)p Fr(\))p Fq(g)p Fe(.)330 3732 y(app\([],Ys,Ys\))38 b Fq( )44 b(f)p Fn(ListGae)p Fr(\()p Fn(Y)17 b(s)p Fr(\))p Fq(g)p Fe(.)199 3880 y Fr(where)33 b Fn(I)488 3850 y Fk(1)588 3880 y Fr(=)63 b Fn(Gae)p Fr(\()p Fn(X)7 b Fr(\))22 b Fq(^)g Fn(ListGae)p Fr(\()p Fn(X)7 b(s)p Fr(\))32 b(and)g Fn(I)1826 3850 y Fk(6)1927 3880 y Fr(=)63 b Fn(Gae)p Fr(\()p Fn(X)7 b Fr(\))22 b Fq(^)g Fn(ListGae)p Fr(\()p Fn(X)7 b(s;)14 b(Y)j(s)p Fr(\).)199 3971 y(Here)24 b Fn(ListGae)p Fr(\()p Fn(x)774 3983 y Fk(1)810 3971 y Fn(;)14 b(:)g(:)g(:)g(;)g(x)1042 3983 y Fj(n)1088 3971 y Fr(\))24 b(is)f(an)h(abbreviation)e(for)h Fn(ListGae)p Fr(\()p Fn(x)2318 3983 y Fk(1)2355 3971 y Fr(\))11 b Fq(^)g Fn(:)j(:)g(:)c Fq(^)h Fn(ListGae)p Fr(\()p Fn(x)3019 3983 y Fk(1)3056 3971 y Fr(\))199 4063 y(and)30 b Fn(f)9 b(r)r(ee)p Fr(\()p Fn(x)609 4075 y Fk(1)646 4063 y Fn(;)14 b(:)g(:)g(:)g(;)g(x)878 4075 y Fj(n)923 4063 y Fr(\))30 b(is)g(an)f(abbreviation)f Fn(f)9 b(r)r(ee)p Fr(\()p Fn(x)1918 4075 y Fk(1)1956 4063 y Fr(;)14 b Fn(X)7 b Fr(\))19 b Fq(^)h Fn(:)14 b(:)g(:)20 b Fq(^)g Fn(f)9 b(r)r(ee)p Fr(\()p Fn(x)2633 4075 y Fj(n)2679 4063 y Fr(;)14 b Fn(X)7 b Fr(\),)29 b(where)199 4154 y Fn(X)41 b Fr(=)34 b Fq(f)p Fn(x)497 4166 y Fk(1)534 4154 y Fn(;)14 b(:)g(:)g(:)g(;)g(x)766 4166 y Fj(n)811 4154 y Fq(g)p Fr(.)34 b(It)h(is)f(not)h(di\016cult)g(to)f(c)n(hec)n(k)g(that)g Fe(quicksort)d Fr(is)j(w)n(ell-asserted.)199 4245 y(Then)28 b(b)n(y)f(Theorem)f(6.14)g(w)n(e)h(ha)n(v)n(e)f(that)h Fe(qs\(Littles,Ls\))22 b Fr(and)27 b Fe(qs\(Bigs,Bs\))c Fr(do)j(not)199 4337 y(share)37 b(v)-5 b(ariables)36 b(during)h(the)h(execution)f(of)g Fe(goal)p Fr(.)f(Hence)i(they)g(can)f (b)r(e)h(executed)f(in)199 4428 y(parallel.)2535 b Fi(2)324 4682 y Fr(Th)n(us,)22 b(global)g(analysis)f(based)h(on)h(non-monotonic) e(assertions)g(is)i(su\016cien)n(t)g(to)f(pro)n(v)n(e)199 4774 y(global)d(run-time)h(prop)r(erties)g(of)g(programs.)e(This)i (could)g(b)r(e)g(used,)g(for)g(example,)g(for)g(iden-)199 4865 y(tifying)30 b(whic)n(h)f(parts)f(of)h(a)g(program)e(can)i(b)r(e)h (executed)f(in)g(parallel.)f(Also,)h(as)g(sho)n(wn)f(in)199 4956 y(Colussi)f(and)h(Marc)n(hiori)e([CM91)o(],)i(this)g(metho)r(d)g (can)f(b)r(e)i(extended)f(to)f(pro)n(v)n(e)f(total)i(cor-)199 5048 y(rectness,)21 b(i.e.,)h(partial)e(correctness)g(and)h (termination,)g(of)g(Prolog)f(programs)f(in)i(presence)199 5139 y(of)28 b(v)-5 b(arious)26 b(built-in's.)p eop %%Page: 23 23 23 22 bop 199 390 a Fx(Reasoning)25 b(ab)r(out)g(Prolog)e(Programs)1757 b(23)199 573 y Fs(Ac)m(kno)m(wledgemen)m(ts)23 b Fr(W)-7 b(e)26 b(thank)f(Annalisa)g(Bossi,)g(Nicoletta)g(Co)r(cco,)g(Livio)g (Colussi,)199 664 y(W )-23 b(lodek)39 b(Drab)r(en)n(t,)g(Jan)f(Rutten)i (and)f(F)-7 b(rank)38 b(T)-7 b(eusink)39 b(for)f(useful)i(discussions.) e(This)199 756 y(researc)n(h)26 b(w)n(as)g(partly)h(supp)r(orted)h(b)n (y)f(the)h(ESPRIT)f(BRA)h(6810)d(\(Compulog)i(2\).)199 1029 y Fp(References)199 1196 y Fx([AE93])179 b(K.)46 b(R.)g(Apt)g(and)h(S.)f(Etalle.)99 b(On)46 b(the)h(uni\014cation)h (free)e(Prolog)g(programs.)97 b(In)589 1270 y(A.)29 b(Borzyszk)n(o)n (wski)i(and)f(S.)f(Sok)n(olo)n(wski,)h(editors,)g Fm(Pr)l(o)l(c)l(e)l (e)l(dings)j(of)e(the)g(Confer)l(enc)l(e)h(on)589 1345 y(Mathematic)l(al)j(F)-5 b(oundations)34 b(of)f(Computer)h(Scienc)l(e)e (\(MF)n(CS)i(93\))p Fx(,)e(Lecture)g(Notes)h(in)589 1420 y(Computer)24 b(Science,)g(pages)h(1{19,)f(Berlin,)e(1993.)j (Springer-V)-6 b(erlag.)199 1494 y([AP94])179 b(K.)30 b(R.)g(Apt)h(and)f(A.)g(P)n(ellegrini.)50 b(On)30 b(the)i(o)r(ccur-c)n (hec)n(k)g(free)e(Prolog)g(programs.)49 b Fm(A)n(CM)589 1569 y(T)-5 b(oplas)p Fx(,)25 b(1994.)32 b(In)24 b(prin)n(t.)199 1644 y([Apt90])161 b(K.R.)17 b(Apt.)22 b(Logic)d(programming.)g(In)f (J.)g(v)l(an)g(Leeu)n(w)n(en,)h(editor,)f Fm(Handb)l(o)l(ok)k(of)f(The) l(or)l(etic)l(al)589 1719 y(Computer)27 b(Scienc)l(e)p Fx(,)c(pages)h(493{574.)h(Elsevier,)e(1990.)32 b(V)-6 b(ol.)23 b(B.)199 1793 y([BC89])179 b(A.)22 b(Bossi)f(and)h(N.)f(Co)r (cco.)29 b(V)-6 b(erifying)21 b(correctness)i(of)e(logic)h(programs.)27 b(In)22 b Fm(Pr)l(o)l(c)l(e)l(e)l(dings)k(of)589 1868 y(T)-5 b(apsoft)27 b('89)p Fx(,)c(pages)i(96{110,)g(1989.)199 1943 y([BCF91])133 b(A.)31 b(Bossi,)g(N.)g(Co)r(cco,)h(and)g(M.)f(F)-6 b(abris.)54 b(Pro)n(ving)32 b(termination)f(of)g(logic)h(programs)e(b)n (y)589 2017 y(exploiting)25 b(term)d(prop)r(erties.)32 b(In)24 b Fm(Pr)l(o)l(c)l(e)l(e)l(dings)k(of)d(T)-5 b(apsoft)26 b('91)p Fx(,)e(pages)h(153{180,)g(1991.)199 2092 y([BLR92])134 b(F.)24 b(Bronsard,)f(T.K.)f(Lakshman,)h(and)i(U.S.)e(Reddy)-6 b(.)32 b(A)23 b(framew)n(ork)f(of)i(directionalit)n(y)g(for)589 2167 y(pro)n(ving)30 b(termination)g(of)f(logic)h(programs.)48 b(In)30 b(K.R.)f(Apt,)g(editor,)h Fm(Pr)l(o)l(c.)i(of)g(the)f(Joint)589 2242 y(International)25 b(Confer)l(enc)l(e)e(and)h(Symp)l(osium)g(on)f (L)l(o)l(gic)h(Pr)l(o)l(gr)l(amming)p Fx(,)e(pages)g(321{335.)589 2316 y(MIT)i(Press,)f(1992.)199 2391 y([CM91])164 b(L.)34 b(Colussi)e(and)j(E.)e(Marc)n(hiori.)59 b(Pro)n(ving)34 b(correctness)h(of)e(logic)h(programs)e(using)h(ax-)589 2466 y(iomatic)21 b(seman)n(tics.)27 b(In)21 b Fm(Pr)l(o)l(c)l(e)l(e)l (dings)26 b(of)e(the)f(Eight)g(International)i(Confer)l(enc)l(e)e(on)h (L)l(o)l(gic)589 2540 y(Pr)l(o)l(gr)l(amming)p Fx(,)i(pages)f(629{644.) g(The)f(MIT)f(Press,)g(1991.)199 2615 y([CM93])164 b(L.)31 b(Colussi)g(and)h(E.)f(Marc)n(hiori.)53 b(Uni\014cation)33 b(as)e(predicate)i(transformer.)53 b Fm(Submitte)l(d)p Fx(,)589 2690 y(1993.)32 b(Preliminary)22 b(v)n(ersion)h(in)h(Pro)r (ceedings)g(JICSLP')g(92,)g(67-85.)199 2765 y([DM85])161 b(P)-6 b(.)23 b(Dem)n(binski)f(and)i(J.)f(Maluszynski.)30 b(AND-parallelism)20 b(with)j(in)n(telligen)n(t)h(bac)n(ktrac)n(king) 589 2839 y(for)f(annotated)k(logic)c(programs.)30 b(In)24 b Fm(Pr)l(o)l(c)l(e)l(e)l(dings)k(of)d(the)h(International)h(Symp)l (osium)g(on)589 2914 y(L)l(o)l(gic)f(Pr)l(o)l(gr)l(amming)p Fx(,)g(pages)e(29{38,)h(Boston,)f(1985.)199 2989 y([DM88])161 b(W.)25 b(Drab)r(en)n(t)h(and)g(J.)f(Maluszynski.)35 b(Inductiv)n(e)27 b(assertion)e(metho)r(d)h(for)e(logic)h(programs.)589 3064 y Fm(The)l(or)l(etic)l(al)j(Computer)e(Scienc)l(e)p Fx(,)d(59\(1\):133{155,)j(1988.)199 3138 y([Dra87])163 b(W.)22 b(Drab)r(en)n(t.)28 b(Do)21 b(logic)h(programs)e(resem)n(ble)g (programs)g(in)h(con)n(v)n(en)n(tional)j(languages?)29 b(In)589 3213 y Fm(Pr)l(o)l(c.)i(of)e(the)g(Joint)g(International)i (Symp)l(osium)g(on)e(L)l(o)l(gic)h(Pr)l(o)l(gr)l(amming)p Fx(,)f(pages)f(389{)589 3288 y(396.)c(IEEE)g(Computer)g(So)r(ciet)n(y) -6 b(,)24 b(1987.)199 3362 y([Llo87])181 b(J.W.)24 b(Llo)n(yd.)33 b Fm(F)-5 b(oundations)28 b(of)e(L)l(o)l(gic)g(Pr)l(o)l(gr)l(amming)p Fx(.)35 b(Springer-V)-6 b(erlag,)23 b(Berlin,)g(second)589 3437 y(edition,)h(1987.)199 3512 y([Mel81])164 b(C.S.)19 b(Mellish.)k(The)d(automatic)h(generation)g(of)e(mo)r(de)g (declarations)i(for)d(prolog)i(programs.)589 3587 y(T)-6 b(ec)n(hnical)24 b(rep)r(ort,)e(Departmen)n(t)h(of)f(Arti\014cial)g(In) n(telligence,)i(Univ.)e(of)g(Edin)n(burgh,)h(1981.)589 3661 y(D)n(AI)h(Researc)n(h)h(P)n(ap)r(er)e(163.)199 3736 y([Red84])158 b(U.)34 b(S.)g(Reddy)-6 b(.)63 b(T)-6 b(ransformation)33 b(of)h(logic)g(programs)f(in)n(to)h(functional)h (programs.)61 b(In)589 3811 y Fm(International)22 b(Symp)l(osium)h(on)e (L)l(o)l(gic)g(Pr)l(o)l(gr)l(amming)p Fx(,)f(pages)f(187{198.)h(IEEE)f (Computer)589 3885 y(So)r(ciet)n(y)-6 b(,)25 b(1984.)199 3960 y([Red86])158 b(U.S.)34 b(Reddy)-6 b(.)66 b(On)35 b(the)h(relationship)e(b)r(et)n(w)n(een)j(logic)e(and)h(functional)f (languages.)66 b(In)589 4035 y(D.)19 b(DeGro)r(ot)h(and)f(G.)g (Lindstrom,)f(editors,)h Fm(F)-5 b(unctional)22 b(and)g(L)l(o)l(gic)f (Pr)l(o)l(gr)l(amming)p Fx(,)g(pages)589 4110 y(3{36.)k(Pren)n (tice-Hall,)e(1986.)199 4184 y([Ros91])165 b(D.A.)19 b(Rosen)n(blueth.)27 b(Using)19 b(program)g(transformation)g(to)i (obtain)g(metho)r(ds)f(for)f(eliminat-)589 4259 y(ing)26 b(bac)n(ktrac)n(king)i(in)d(\014xed-mo)r(de)h(logic)g(programs.)36 b(T)-6 b(ec)n(hnical)27 b(Rep)r(ort)f(7,)f(Univ)n(ersidad)589 4334 y(Nacional)c(Autonoma)f(de)h(Mexico,)e(Instituto)j(de)f(In)n(v)n (estigaciones)h(en)e(Matematicas)h(Apli-)589 4408 y(cadas)k(y)f(en)g (Sistemas,)e(1991.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF