Safe Recursive Boxes
Texte intégral
(2) INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE. Safe Recursive Boxes Gérard Boudol. N° 5115 February 2004. ISSN 0249-6399. ISRN INRIA/RR--5115--FR+ENG. THÈME 1. apport de recherche.
(3)
(4)
(5) !#"$#%'&)(+*,%(+ . /103254687:9 ;=<>4=?A@CBD43E <>FC<GEH03254=< IKJHLNMG4OEP<QSRT2)L!<>? 9U?NVWV$LAJ>EXC4YJ>4#ZP/W43JPZP/W4\[$]_^C6A6`^a7:bW4=cWJ>@d?NJHFDeNfAfAg7h63g)V1?Nij4=<. klm=n3opWqAnArts 4u<GEH@1XCFvJH4=ZO@1JH<>RwLj[vRw[xZ3?Aywywz{c|F!z~}`?Ayw@14@W[1ZOE>RTLA[1?Ayy?N[1iA@1?AiA4=<=?N[dX25LAJH4 <>Vd4#ZORwdZ3?AywyTFv?JH4=Z3@WJP<RTLA[ Z3LA[1<E>JH@1ZOEUJ>4#ZO4=[jEHywFRT[jEHJ>LCXC@dZO4=Xac!FS8J>4=FA43J#1 /1RTZP/ac1@WRwyXW<8J>4#ZO@WJP<>Rw}j4YcdL`BC4=XS}?Ayw@W4#<3 s 4)XC4=<>Rwij[?5EGF|V$4?N[dX4O+4=ZOE <>FC<GEH432S4#?E>@1J>RT[WiScWRT[1?NJHF4O+4=ZOEH<=LAJY?SZ3?Aywywz~c!F!z~}?NyT@W4 λz~Z=?NyZO@WyT@1<43B!EH43[1XW4=X REH/ EH/WR<J>4#ZO@WJP<RTLA[ZOLj[1<GEHJ>@dZE= s 4 <>/WLEH/1?E5EH/WRT<D<FC<E>432/d?A<E>/W4ijL|L|XVWJHLAV$43J>E>RT4=<)J>4#!@WRwJH4=XLAJ?N[RT2)V1ywRZORwE>yTFA <GEP?EHRTZ=?NyTywFuEGF|V$4=XyT?A[WiA@1?AiA4jE>/14 EGF|V1?AcWyT443B|V1J>4#<><>RwLj[1<)XCL [1LNE5F!RT43yXJ>@W[WzEHRw25443JHJ>LjJH<=K?N[1X?VWJHRT[1ZORTV1?NyEGF|V$4SZ=?N[cd4SZOLj2)V1@CE>4#XLjJ5?A[|F EGF|V1?AcWyT4 43BCVWJ>4#<><>RTLA[ !+ H¡£¢ o¤mAr @W[1ZEHRwLj[1?Nyy?N[1iA@1?AiA4=<=CZ3?Aywywz{c|F!z~}`?Ayw@14A|J>4#ZO@WJP<>RwLj[!EGF!V1Rw[Wi. Unité de recherche INRIA Sophia Antipolis 2004, route des Lucioles, BP 93, 06902 Sophia Antipolis Cedex (France) Téléphone : +33 4 92 38 77 77 — Télécopie : +33 4 92 38 77 65.
(6) £ t
(7) m
(8) r Lj@1< ;3E>@1XWRwLj[1< y?JH;=Z3@WJP<RTLA[XW?A[1< yw4#< y?N[Wi!?Nij4=<KLj[1ZEHRwLj[W[W4=yT< 43[D?AVWV$43y+V1?NJ}?NyT43@WJ#!4OE VWyw@d< <>Vd;#ZORwd!@W4Oz 254=[jE@1[W4ZOLj[1<GEHJ>@dZE>RTLA[uXC4JH;=Z3@WJH<>RTLA[J>;#ZO43252543[!EYRT[jEHJ>LCXC@1REH4V1?NJ8J>4=FA4=J= !@WR ZOLA[d<GEHJ>@WRwEXC4=<}`?Ayw4=@WJP<J>;#ZO@WJP<RT}A4#< ?AywyTLA@1;34=<= LA@1< RT[!E>JHL|XW@WRT<>LA[d< @W[a<FC<E>0=2)4XW4EGF!V$4=<4OE4O+4OEP<3dJ>4=VdL!<>?A[!E <>@WJXC4#< 4O+4OEP<cWRT[1?ARwJH4=<=CVdLj@WJ@W[ z~Z=?NyZO@Wy 4=[ ?AVWVd4=yVd?NJ}`?Ayw4=@WJU;3E>4=[1XC@ ?`}j4=ZZ34OE>E>4Z3LA[1<E>JH@1ZOE>RTLA[aV$LA@WJy?JH;=ZO@1JH<>RwLj[ LA@1<825LA[!E>JHLA[1<8!@W4Z34<>F|<E>0=25λ 4?yT4=< c$LA[1[W4=<UVWJ>LjVWJHRw;3E>;=<J>4#j@1RT<>4=< V$LA@1J@W[SEGF|V1?Nij4<GEP?EHRT!@W4RT25VWyTRTZ3REH4D yT4=<U4OBCVWJH4=<H<RTLA[d<EGF!Vd?NcWyT4=< [14£ZOLj[1XC@WR<4=[!EUV1?A< XW4=< 4=J>JH43@WJP<5y 4OBC;=Z3@CE>RTLA[ C4OE@W[EGF|Vd4VWJHRT[1ZORTV1?Ny Vd4=@CE OEHJ>4YZ3?AyTZ3@WyT;V$LA@1JZP/1?A!@W44OBCVWJH4=<H<>RwLj[EGF|V1?Nc1yw4j q mr y?N[Wi!?NiA4#< LA[1ZOE>RTLA[W[W4=yT<=W?NV1Vd4=yV1?NJ }?NyT43@1J=CJH;=Z3@WJH<>RTLA[!EGF|V1?Nij4 ¢ n#m .
(9)
(10) . . !#"%$&('*) +-,.$/0'*". 1 [E>/WR< Vd?NV$43J 4RT[|}A4=<E>RTij?NE>4<>LA254U?j<V$4=ZOEH<_LAJ>4#ZO@WJP<>Rw}j4XC4O1[1REHRwLj[1<_RT[DZ3?Aywywz~c!F!z~}?NyT@W4 yT?A[WiA@d?NiA4#<321~E R<_43yTyz43|[WL [ EH/1?ERT[<@dZP/ayT?A[WiA@d?NiA4#<3dLA[W4RT<8[WLAE?AywyTL 4#XE>L@1<4£E>/W4)<GEP?N[1X1?NJPX2?E>/1432?EHRTZ=?NyXW4O1[WRwE>RTLA[ LNKEH/W4£1B|V$LART[!E8LA ? @1[1ZEHRwLj[ f WE>/1?NE R<=W@1<>Rw[Wi<EH?A[1XW?NJPXVWJ>LjiAJP?N2525Rw[1i£y?N[Wij@1?Nij48[WLAEH?NE>RTLA[1<= let rec x = (f x) in · · ·. 18 [ 7WQ:9LjJRT[1<EH?A[1ZO4<;T6=>~LA[14R<YZOLj2)V$43yTyT4=XEHLSLA[WyTFaXC4Od[W45J>4#ZO@WJP<RT}A4£@W[1ZOE>RTLA[1<=. Lj[WyTF J>RwE>4. 5 ♥6. ?N[dX25LAJH4)VWJ>4#ZOR<4=ywFSLj[W4525?`F. let rec f = λxM in · · ·. ?A@ B2C D ;T6E>RT<<>yTRwij/jEHywFD2)LjJ>4V$43JH25RT<H<RT}A4jW<RT[1Z34YREU?AywyTL<LA[W4EHL)@d<4YyTRw25RwE>4#XLAJH25< LA,Z3LA[1<E>JH@1ZOE>LAJ ?AVWVWyTRTZ=?E>RTLA[d< ?j< EH/W4c$L|XWFLA,JH4=Z3@WJP<RT}A4YXC431[WRwE>RTLA[1<=. /WR</1?j< cd4=43[JH4=Z343[!E>yTF43B|E>43[dXC4=XSc|F<F RTJH<HZP/WL RwEHGJI ?Ny{T; 6#e{> dcW@CE8[1LNEEHL. EH/W443B!EH43[!EEH/1?E£4Z3?A[u@1<4 (♥) S. /W4@1<>@1?Ay Z3?Aywywz{c|F!z~}`?Ayw@141B|V$LART[!EZOLj2£cWRT[1?NE>LAJ Y , /WRTZP/uR<£<>@1ZP/E>/1?NE (YV ) 4=}?NyT@1?EH4=< RT[jEHL V (λx.YV x) W /W4=J>4 V R< ?5}`?Ayw@14ACVWJHL}|RTXC4#< ?5ywRT25REH4=XLAJH2tLNE>/14Y4=!@1?EHRwLj[ (♥) K42?`FJH43i!?NJPX ?A<U?N[a?Nc1cWJ>4=}|RT?NE>RTLA[LAJ 1c1@CEURT[SE>/WR<U ?`F4£Z3?A[LA[WyTFXW4O1[W4£J>4#ZO@WJP<RT}A4@1[1ZEHRwLj[1<3 rec x = (f x) <>RT[1ZO4 x = λz.Yf z |cW@CE8[WLNE JH4=ZO@1JH<>Rw}j48x}?A=yw@W4#f< (λz.Yf LNK?N[|FAz)3|Rw[dXK1 [MLON.PRQ C QWLA[W42?`F JHREH4 let rec x = X in · · ·. LjJK?N[|F X cW@CE,E>/1RT<R<<>@WcCMG4#ZEE>L?N[Rw25V$LAJ>EH?N[!E,J>4#<GEHJ>RZEHRwLj[TS URVW
(11) XU%Y(%Z[ \Y]^_U`a b]c
(12) deU` X f U\gXe
(13) U- ihbjTjh bkH\ jhlU`mU\gXnee]c
(14) dAo ;T6 >~. /WR<U?jZE>@d?NyTywFJ>4343JP< E>Lq9 ?N[dXCRw[ <URw25VWyT432543[!EP?E>RTLA[LAKJ>4#ZO@WJP<RTLA[r;T63ge>~$ /W43JH4 EH/W4aJH4=Z3@WJH<>RT}A4S}?NJHRT?AcWyw4R<RT[!xE>p 4=J>VWJH4OEH4=X ?A<E>/W4a}?Ayw@W4LNY?uJ>4#</ 254325LjJ>FZO43yTy{ /WRTZP/vZ=?N[vc$4?A<H<RTiA[14=XE>L?A[1X XW43JH4O43JH43[dZO4=XW 1 s [ LON.PRQ C Q+ E>/W4y?E>E>43J£LAV$43JP?E>RTLA[ RT<Rw25VWyTRTZ3RE#?j<Y?NyTy_}?NJHRT?AcWyw4#<?NJH4Ac|FXC43 ?N@WywE=2£@CEP?NcWyT4AA1~ 4 ?jXCLAVWEUE>/14)25LjJ>443BCVWywRZORwEY<F|[!EH?NBSLAt 7W: Q 9 .9?N[1XWRw[ <Rw[!EH43JHVWJ>43EH?NE>RTLA[LN?JH4=ZO@1JH<>Rw}j4£XC431[WRwE>RTLA[ rec x = X Z3?N[ cd4 XW4=<HZOJHRwc$4=XS?A< LjywyTL<3 x = let r = ref(raise Undefined ) 5 ♠6 in r X ∗ u ( v r) /143JH4 X ∗ R<LAcWEH?NRT[W4#XJHLA2 X c!F J>4=VWy?AZORT[WiS43}j43JHFaLCZ3Z3@WJ>JH43[dZO45LN x c|F ?A[u4OBCVWyTRTZ3REXW43JH4O43JH43[dZORT[Wi ( v r) LN E>/W4 ?j<><>LCZOR?EH4=XDZ343yTy 5 LAE>RZO4E>/1?NE 4YZ=?N[W[WLAE XW4O1[W4 X ∗ ?A< (λxX)( v r) <RT[1Z34 r X ∗ LA@1yTXDE>/W4=[?NyT?`FC< ?NRTy 6 . /WRT< <>432?A[jEHRTZ=<LNJ>4#ZO@WJP<RTLA[<GEHRwyTy XCL|4#<[WLNEyT4OEY@1<Y@d<4)E>/145WBCVdLjRw[!E4=!@1?NE>RTLA[ (♥) <RT[1Z34)RwEH<cdLCXCFaR<EHJH?A[1<y?EH4=XRw[!E>L /WRZP/?NyT?`FC<YJP?NR<>4=<£?A[4OBWZ343VCEHRwLj[ @W[1yw4#<><E>/14Z3LA25VW@CEP?E>RTLA[LN XCL|4=<[WLNEE>4=J>25RT[1?EH4 8 w8<?25?NEEH43J f ( v r) LA ?jZE=REYR<[WLNEYLjc!}|RTLA@1<8EHLSXW4=<>Rwij[ ?S<4=2?N5 [!E>RZ3<LNJ>4#ZO@WJP<>RwLj[E>/1?NE£?NyTywLf<8@1<EHL@d<4 (♥) 5. /1RT6<LA@WyXaJH4=!@WRTJH4 RT25VWyT432543[!E>RT[Widdc|FD254#?N[1< LA_?<GEP?E>RZ?A[1?NyTFC<R<LAJ8Rw[1<EH?A[1ZO4jCE>/14J>4#<GEHJ>RZEHRwLj[SRTXC4=[!E>Rw14=XSRT8 [ ;w6 >~dLjJ?ZOLj[1<4=J>}?NE>RT}A4 ?AVWVWJHL`BCRw2?EHRwLj[5LNRE#|Rw[LjJHXC4=JKE>LLAcCEP?NRT[?<H?4UZ3LA[1<E>JH@1ZE#NEH/1?E XCL|4=<_[1LNE RT[!E>JHL|XW@1ZO4JH@W[Cz{E>RT254U4=J>JHLAJP<3. /W4Uy?A Z 3LN <>@1ZP/?Y<>432?N[!E>RZ3< ?N[1X5<EH?EHRTZ ?A[1?NyTFC<R<,4OBCVWy?NRT[1<K /|FJ>4#ZO@WJP<RTLA[)R<K@1<>@1?NyTywF)<F|[!EH?jZEHRTZ=?NyTywFJH4=<E>JHRZE>4#X)Rw[Z=?NyTyz~c|Fjz~}?NyT@W4 y?N[1iA@1?AiA4=<= 43}j43J>E>/W4=yw4#<><=E>/W4=J>4/d?A<cd4=43[JH4=Z343[!E>yTF<>LA254Rw[!E>4=J>4#<GERw[4OB|E>4=[1XCRT[WiaJH4=ZO@1JH<>RwLj[ Rw[@W[1ZEHRwLj[1?NyVWJHLAijJH?A2)25RT[Wi y?N[1iA@1?AiA4=<= REH/}?NJHRwLj@1<25LNEHRw}?EHRwLj[1<=xb1LAJDRT[1<EH?A[1ZO4jx 9 ?N@1[1ZP/|cW@WJHy F I?Ny{ ; =C86`z^ >8V$LART[!EDLA@WEE>/W4 [W434#XLAJD?A[ 43B|E>43[dXC4=XaWBCVdLjRw[!EE>LD25LCXC4=y,Z3RwJPZO@1RE8434=XWc1?A Z 3SRTM [ { B2| } Q DD RwE>/25LA[1?jXW< 5 1 6 J w[1LNE>/143J2?MGLAJ825LNE>RT}?EHRwLj[aRT<RT[ EH/W4£[1434=XLAJ2£@CEH@1?NyTywFJH4=ZO@1JH<>Rw}j4Y25L|XW@Wyw4#k< ;T6A^|R ~|O C6A6NeNf >~ 7CRw25RTyT?AJ>yTFAdE>JHF|Rw[WiE>LD43B|E>43[d X ?NJPXC43yTyTR <JH4=Z3@WJH<>RT}A4 JH4=Z3LAJPXD<>432?N[!EHRTZ=< LALjcCMG4=ZOEH< ; g1deC6 >EHLLjcCMG4=ZOEH< RwE>/S<GEP?EH4?AyT<>L5Z3?NyTy< LjJ ?ij43[W4=JH?Ay11B|V$LART[!JE ; ee >{- 1 [2)L!<GE LA E>/14=<>4 LA(J 3C<3 ?Z3LA2525LA[RT<H<@14EH/1?E/1?j<E>Lucd4RT[|}A4#<GEHRwi!?E>4#XR<)/WL JH4=Z3@WJH<>RTLA[<>/WLA@1yTXRw[!EH43JP?AZE5 RwE>/vZOLj2)V1@CEH?NE>RTLA[1?Ay 43$4#ZEP<3?DE>LjVWRTZ /WRZP/R<?AXWXCJH4=<H<>4=XRTy [ ; =CK6=fWz6 >~. LRwyTyT@1<GEHJH?NE>4£E>/WR<VdLjRw[!E#yw43E@1<<>4345?N[a43BW?N25VWyT4AbWLjywyTL RT[Wi EH/W4WBCV$LART[jEU?AVWVWJHLj?jZP/E>LLjcCMG4=ZOEH<=C 42?`FDXC431[W4LAJ RT[1<EH?A[1ZO4Y?)VdLjRw[!ELjcCMG4=ZOE ?j<LAyTywL<= point. = let rec self = {pos = ref 0, move = λd(self .pos. . v self .pos + d)}. in self. 1. [)EH/WRT<,Vd?NJ>E>RZO@Wy?NJKZ3?j<4 4 XCL[WLNEKJH4=?NyTyTF[W434#X£JH4=Z3@WJP<RTLA[N<>RT[1ZO4E>/14 4O+4=ZE_LA$Z3J>4#?E>RT[Wi8E>/W4 RT[WRwE>R?NyW<EH?NE>4 LNdE>/W4 3Z LA@WyXac$45ywRw E>4#XLj@CELN_EH/W4<>Z3LAV$4LA_E>/W4)JH4=ZO@1JH<>RwLj[aFL43}j43J#1EH/WR<8LA@1yTXcd45RT[1?NVWV1J>LjVWJ>R?EH4YLAJEH/W4V1@WJ>V$Ljpoint <>4)LN RT[W/W4=J>RwEH?A[1ZO4j,Rw2?NijRw[14ULjJ RT[1<EH?N[dZO48E>/1?NE 4 RT<>/EHL5?Ac1<E>JP?AZE ?`?`FE>/14Vd?NJ>E>RZO@Wy?NJRw[1REHRT?Ay$V$Lj<>RwE>RTLA[DLA?£VdLjRw[!E=Cc|F. 1 W_o e *c e \x\# e l^H e *H2b ¡ t¡e(\ X¢£¡4n¡K##n\e( `¤ e(\t¡# b¡R¡e ¡c(#¥¡ ¦[ *z\¡¡ \2 * f ¡R¡#zo_# o¤ # *2§ e Y ¨-`©ªob¡¡z* (Yf oz)\\¡ ¤¥o £¡_¡ \ f (Yf ) # b«. ¬2¬ ed®z¯¯o®.
(15) g. b
(16) ªe]. XW4O1[WRT[Wi)?£ZOy?A<H< LAVdLjRw[!EP<3|?N[1XE>/W4=[DRT[W/W43JHRwE JHLA2 E>/WR< Z3yT?j<><=|XC4O1[1Rw[Wi)?<>@Wc$Z3yT?j<>< 4=?NE>@WJHRT[Wi£?[143v254OEH/WLCX EH/1?EJ>4#<43EH<E>LD?DPoint iART}A43[S}?NyT@W4£E>/W4VdL!<RwE>RTLA[LAKE>/W4LAcCMG4#ZE=. /143[EH/WRT<8[W4=\2)43E>/WLCX2@1<EU/1?`}A4?AZ3Z34=<H< E>LDE>/W4 pos Vd?NJP?N254OEH43J_LA$EH/W4LjcCMG4=ZOE=! /WRTZP/5EH/W43JH4OLjJ>4 2@1<E c$4U?`}?NRTyT?AcWyw4 LjJ RT[W/W4=J>RwEH?A[1ZO4j. /W4 self V1?NJP?N254OEH43JKR<_RT[!E>JHL|XW@1ZO4#X 43BW?AZEHywFLAJ EH/WRT<VW@WJHVdL!<4jCLN,VWJ>L}|RXCRT[Wi?AZ3Z34=<H< E>L5E>/14ZOLA25V$LA[W4=[!EH< LNE>/14YLAcCMG4#ZE= . /W43[E>/14ZOy?A<H< LN,VdLjRw[!EH<25?`F c$4Y JHRE>E>43[ Point = λxλself {pos = ref x v self .pos + d)} move = λd(self .pos ?A[1XRw[d<GEP?N[!E>R?EH4=Xyw0R 3A4E>/1RT<= point = (let rec p = (Point 42)p in p). w8<)LA[W4SZ3?A[<4=4A_4?AJ>4@1<>Rw[Wi/W4=J>4?N[RT[1<EH?A[1ZO4LNEH/W4D1B|V$LART[!E)4#!@1?EHRwLj[ _ /W43JH4EH/W4S43}?NyT@1?NE>RTLA[LAE>/W4 @1[1ZEHRwLj[ (Point 42) JHLA2t /WRZP/ 4Y?NJH48EH?b|3 RT[Wi)E>/W41B|V$LART[!E F!RT43yXW< <>LA254YZOLj2)(♥) V1@CEH?NE>RTLA[1?Ay$43$4#ZEP<31?A[1X /W43JH4E>/W4 1B|V$LART[!E R<_[WLAE ?@W[1ZOE>RTLA[ 5 2 6 -1 [?JH4=Z343[!E V1?AVd4=J UJH43Fj43Jx; Ee$> VdLjRw[!EP<_LA@WE ?N[WLAE>/W4=J <>REH@1?EHRwLj[) /143JH4UZOLj2)V1@CEH?NE>RTLA[1?Ay 43$4#ZEP< Z3?N[1[WLNE c$4yTRw E>4=XLj@CELA EH/W4Y<>Z3LAV$4LAJH4=Z3@WJH<>RTLA[![1?N254=ywFEH/W4Y<4=V1?NJP?EH48Z3LA25VWRTyT?NE>RTLA[DLA2@CE>@1?AywyTFJH4=Z3@WJH<>RT}A4 25LCXC@WyT4=<=_QSLAJH43L}j43J#N?A< </WL [RT[:T; 6=fC$6~> !LA[W4UZ=?N[W[1LNE yTR E4O+4=ZOEH< LA@CE LAJ>4#ZO@WJP<>RwLj[)RT[?Yy?N[Wij@1?Nij4 REH/1JP<GEZOy?A<H<. 3Z LA[!E>RT[|@1?EHRwLj[1<= 1 [r; ez> 4YRw[!EHJ>LCXC@1Z34=X?5J>4#ZO@WJP<>RwLj[ZOLj[1<E>JH@1ZE E>/d?EU?NyTyTL< @1< E>L5@1<>4E>/14WBCVdLjRw[!E4=!@1?NE>RTLA[ d?N[1XE>LXW4O1[W4 JH4=Z3@WJP<RT}A4 }?NyT@W4=< /WLj<>4ZOLj25VW@CEH?NE>RTLA[RT[|}ALAyT}A4#<KZOLj2)V1@CEH?NE>RTLA[1?Ay14O+4=ZOEH<= s 4URT[!E>JHLCXC@1ZO4#X?EGF|Vd4(♥) <FC<E>432E>LJH@WyT4LA@WE V$LNEH43[!E>R?NyTyTF@W[1<H?4JH4=ZO@1JH<>RwLj[Rw[LAJPXC43JLjJ rec x = f x E>L5cd4Y?jZ3ZO4=VCEH?AcWyT4A|E>/148@1[1ZEHRwLj[ f /1?A<EHL)c$ 4 SVWJ>LAE>4#ZE>RT}A4 p EH/1?E5R<£RwE)<>/WLA@1yTX [1LNEJH4=!@WRTJH4E> L 3![1L E>/W44OBW?AZOE}?NyT@W4DLAREP<?AJ>ij@W2543[!E=. /WR<£ ?A<?NVWVWyTRT4=X RT[V1?AJEHRTZ3@WyT?AJEHL EH/W42)LCXC4=ywyTRT[Wi LALAcCMG4#ZEP<?j<£JH4=Z3@WJH<>RT}A4JH4=Z3LAJPXW<3 s 4S?Ny<>L XC4#<RTiA[W4#X?N[dX VWJHL}A4=X Z3LAJHJ>4#ZE5?N[?Ac1<GEHJH?jZE£2?jZP/WRw[14 LjJ£JH4=Z3@WJH<>RTLAs [ ; >~, /WRZP/ RT<?SJ>431[W43254=[jELNx 9 ?A[1XCRT[ <Rw[!E>4=J>V1J>43EH?EHRwLj[< FL43}A4=J= E>/WR<£?AVWVWJHLj?jZP/EHLiA43[143JP?NyT^R G=4=X JH4=Z3@WJP<RTLA[S/1?j<U<>LA254 d?`<=_1JP<E=dE>/W4£EGF!V$4£<>FC<GEH432 RT<8[WLNE?A<43BCVWJ>4#<><>RT}A4Y?A<ULA[W4£Z3LA@WyXS R</b1LAJ8Rw[1<EH?A[1ZO4jdRwKE>/14 JH4=Z3@WJP<RTLA[}?AJ>R?NcWyT4 f L|Z=ZO@WJP<Rw[ M jEH/W4J>4#ZO@WJP<>RwLj[ rec f = (λxλyM )N RT< ?Ayw ?`FC<_JH4GMG4=ZOE>4#X¥ 7|4=Z3LA[1XjEH/W4Rw[!EH@WREHRw}j4 254#?N[WRT[WiSLN_EH/Wk4 S><>?N43[W4#<><XC43ijJ>4=4=< p Rw[!EHJ>LCXC@1Z34=X Rw[ E>/14EGF|V$4<FC<E>432 LN ; e >_R<[WLNEY4#?A<>FSE>L@W[1XC4=JH<EH?A[1X 5 ?N[1XE>/14 V1J>L|LNLNEGF|Vd4Y<H?4OEGFDRT< [1LNE LAc|}|RwLj@1< 6 K. /WRTJHXWE>/W4YRT25VWyw4=2543[!EH?NE>RTLA[RT<<>yTRwij/jEHywFDyw4#<>< 4 Z3Rw4=[!EEH/1?N: [ 9?N[1XCRT[ < LA[W4j 1 [E>/1RT<5V1?AVd4=J5 4S<GEH@1XCF?A[WLNEH/W43J5VWJHLAV$Lj<H?Ny{_XC@W4EHLu8JH43FA4=< J ; E>~ /1RTZP/2?`F cd4S4OBCVWy?NRT[W4#X?A<LjywyTL<3E>/14 EHJH?A[1<>yT?NE>RTLA[ (♠) Rw[!E>JHLCXC@1Z34=<)?aJH4=ZO@1JH<>Rw}j4J>4343JH43[1Z34 r ?N[dXuE>JP?N[1<LAJH2<E>/14JH4=Z3@WJH<>RT}A4}?NJHRT?AcWyT4Rw[!EHL ( v r) . /W43[ Lj[W45ZOLA@1yTXa?jZEH@1?NyTywFSi!?NRT[<Lj254OE>/1Rw[WiRw[ZOLj[1<RXC4=J>RT[WiD?WBCVdLjRw[!E rec x = X /W4=J>4 x R<?JH4O43JH43[dZO4A ?A2543yTFA+ 4 i!?NRT[_ RwE>/J>4#<V$4=ZOEEH L 9 ?A[1XCRT[ <)<>432?A[jEHRTZ=<3,EH/W4S?NcWRTywRwEGFuE>L@1<>4DEH/W4J>4#ZO@WJP<RT}A4D}`?AJ>R?Nc1yw4 ?j<M ? 9z~}?NyT@W4 R 4A_?j< XW43[WLAE>RT[Wi?£2)4=25LAJHFyTLCZ3?EHRwLj[ 6 RT[D<>LA254UZ=?A<>4= < )EGF|VWRTZ=?NyTywFjj /143[ x RT< @1<>4=X?j< ?A[D?NJHiA@W254=[jE#xjyT0R 3A4RT[ f x +j 5 /143JH4=?A< 4</1LA@WyXa43B|V1ywRZORwE>yTFXC4=J>4343JH43[1Z34RwEY /W43[ 45JH4=?AywyTF[W434#XRwEH<Y9 z{}?NyT@W 4 EGF!V1RTZ=?NyTywFj /W43[REYR<Y?NVWV1ywRT4=XE>L<>LA254 ?AJ>ij@W2543[!E=jLAJ#j?j<_RT[E>/W4 43BC?A25VWyw4jA /W4=[LA[14[W434#XW<KEHL£<>43yT4=ZELA[W4ULNREP< Z3LA25V$LA[W4=[jEP<3% 1 [ ?jZE=jE>/14UJH4=ZO@1JH<>Rw}j4 JH4O4=J>4=[1ZO4R<YRT[!E>43[dXC4=XEHLpoint cd4D? Y(
(17) b]c
(18) d EH/1?ER<?SV$LART[jEH43JYEHL?S/W4#?NVCz ?NyTywLCZ=?E>4#Xac$L`BEH/1?E£R<?j<><>Rwij[W4=X LA[dZO4A c1@CE [WLNE @WJEH/W43J 2@CEH?NE>4=X 5 ?AyEH/WLA@Wij/E>/1RT<R< <E>RTywy+V$Lj<H<RTcWyT48RT[?£yT?A[WiA@d?NiA4U REH/1JP<GE>z~Z3yT?j<>< ZOLj[jEHRw[|@1?NE>RTLA[1<=|<4=k4 ;T6=f > 6 . /143[4YRw[!E>JHLCXC@1Z34?<V$4=Z3RdZEGF|V$4£ZOLj[1<E>JH@1ZE LA¥J SJ>4#ZO@WJP<RT}A4c$L`BC4=X}?NyT@W4=< LAEGF|V$4 . /14<4=25?A[!E>RZ3< LA JH4=Z3@WJP<RTLA[RT<EH/W43[SLAc|}|RTLA@1<=yT0R 3A4 REH/E>/W4 ref ZOLAτ[drbox <GEHJ>@1ZOE=WZ3J>4#?E>4Y?£J>4#</SyTLCZ3?EHRwLj[ ` p ?A<E>/14}?Aτyw@W4YLA x W43}?NyT@1?NE>4 X EHL?Y}?Ayw@W4 !R ?A[|FA|?N[1X?j<><>RTiA[ EHL K. /WRT< R<_}A4=J>F5ZOyTLj<>4 EHLYE>/W4<4=2?N[!E>RZ3< 48/1?AX5RT[ ; eW >{|4OBWZ343VCE_EH/1?E@1<>Rw[Wi EH/W4Y9 z~}`?Ayw@1V48LAE>/W4JH4=ZO@1JH<>Rw}j4U}?NJHVR?NcWyT4U`[WL Rw[|}ALjyw}j4=< 4OBCVWyTRTZ3REHywFXC4=J>4343JH43[1Z3Rw[1i£RwE RT[ X !c|F254=?A[1<LN?A[DLjVd4=JH?NE>RTLA[ EH/1?E8 4XC4=[WLNEH4 unfold 1~EUR< RT252)4#XCR?E>4E>L?AX1?NVCE EH/W443[dZOLCXCRT[WiLNKLAcWMG4=ZEP< LN ; e >EHLE>/WR<U<>4OE>E>RT[Wi1bWLjJRw[d<GEP?N[1Z34A EH/W4 Point ZOy?A<H< ?Nc$L}A4cd4#ZOLA254#< v (unfold self ).pos + d)} . /14£JH4=<E>JHRTZOE>RTLA[aLj[W4/1?j<EHLDRT2)V$Lj<>4LjJ8JH4=Z3@WJP<RTLA[E>Lc$4<H?4XWL!4#<U[1LNE82?AiARZ3?NyTyTFXCR<H?NVWV$4=?AJ= RwE8R<<E>RTyTy?A[a43JHJ>LjJ EHL£@W[WLAyXE>/14U}?NyT@W4LN ?JH4=Z3@WJP<RT}A4 }?NJHR?NcWyT4 /WRTyw4ZOLj2)V1@CE>RT[Wi£RwE=K1 [DLAJPXC43J E>L£RT25VWyT432543[!EE>/WR<J>4#<GEHJ>RZEHRwLj[j8J>4=FA4=J ; Ee>+RT[jEHJ>LCXC@dZO4=<?YEGF|V$4<>FC<GEH432SjE>/1?NE48<>/1?NyTy+XCRT<HZO@d<>< cd4=ywLY 8@WJ 2?NRT[ZOLj[!E>JHRwcW@WE>RTLA[RT[E>/1RT<V1?AVd4=J R<_EHLXC4#<RTiA[? <>RT2)V1yw4UEGF!V$48<>FC<GEH432 LAJ<>?N4Uc$L`B|4#X5J>4#ZO@WJP<>RwLj[j?jXW?NVCEHRw[1iYE>/W4S<H?4=[W4=<H<_XC4=iAJH434#< p LN ; ze >~,. /1RT< RwyTy+?NyTywL<K@d<_EHL@1<>4 EH/W41B|V$LART[!E 4=!@1?NE>RTLA[ (♥) jV1J>L}|RXC4=XE>/d?E EH/W4 @W[dZE>RTLA[ f R< Z.HeU` U#e | /WRZP/254=?N[d<KE>/d?E RwEXCL|4#<_[WLAE J>4#!@WRwJH4 E>L @1[CLAyXDRwEH< ?AJ>ij@W2543[!E=Kb1LAJ Rw[d<GEP?N[1Z34 (Point 42) RT< ?VWJHLNEH4=ZEHRw}j4U@1[1ZEHRwLj[LA self s 4<>/WLvEH/1?E Lj@WJEGF!V$4Y<FC<E>4=2 4=[MGLFC<E>/14iAL|LCXVWJHLAV$43J>E>RT4=<LNQ:9z~ywR03A4)EGF|V$4<FC<E>432<=c$4=<>RTXC4#<EGF|Vd4<H?43EGFA /WRTZP/uR<Y4=?j<FaE>LVWJHL}A4j 4<>/WL EH/1?EU?)VWJHRT[1ZORTV1?Ny+EGF|V$4Z3?A[c$4ZOLj2)V1@CE>4#XDLjJ?N[|FEGF|V1?AcWyw443B|V1J>4#<><>RwLj[ Point. = λxλself {pos = ref x move = λd((unfold self ).pos. 2 t¡2 #zo%ª \#¡ \oe ¡ *¦0 2 \- zJ¡\¡ # #J \\ ¦^ z¡o(#¡ \x \¡He\e(- - %# ¡¡ £\#¡ «e £t¡#\#¡ z# ¦^ R¡\# «. ¬ .
(19) ^.
(20) .
(21) 0,%+
(22) +. . . /14Z=?NyZO@WyT@1<_48<E>@dXCFRT<?£Z=?NyTyz~c|F!z{}?NyT@W4 λz Z3?NyZO@1yw@1< 4OB|EH43[1XC4#X RwE>/DJH4=Z3@WJP<RTLA[-wywE>/1LA@Wij/E>/W4[W4=4=X5EHLXC4#?Ny$ REH/ Z3LA25VW@CEP?EHRwLj[1?Ny$4O+4=ZOEH< RT[DJH4=ZO@1JH<>Rw}j4}?NyT@W4=<R<LA[W48LNEH/W482?ARw[2)LAE>RT}?E>RTLA[d< LjJ?iA4=[W43JP?NydJ>4#ZO@WJP<>RwLj[DZOLj[1<GEHJ>@dZE=C?j< 4£<H?`'?AcdL}j4AWLj@WJUZ3?AyTZ3@WyT@1<XCL|4=<[WLNEURT[1Z3yw@1XW4£?N[|FD43$4#ZE#d?NVd?NJ>E J>Lj2 JH4=ZO@1JH<>RwLj[RwEH<>43ywG$[WLAJU?A[|FDLNEH/W43J8ZOLA[d<GEHJ>@1ZOE yT0R 3A4YJH4=ZOLjJHX1<3|V1?ARwJP<3|43EHZN . /WRT< R< Lj[WywFE>L<>Rw25VWyTRFDE>/W4YV1J>4#<4=[jEP?EHRwLj[,RER< }A4=J>F4#?A<>FE>L543B!EH43[1XEH/W4Z3?AyTZ3@Wyw@d< REH/ }?AJ>RTLA@1<8LNEH/W43JZOLj[1<E>JH@1ZEP< 5 <4=q 4 ; E> a 1 [E>/WR<V1?NV$43J4)<>/1?Aywy,XC43[1LNE>4)c|F E>/W4)JH4=ZO@1JH<>RwLj[ZOLj[1<E>JH@1ZE#$ /1RTZP/ RT< ?A[WLNEH/W43J£[WLNEP?E>RTLA[ RwE>/?<V$4=Z3Rd6ZD<4=25?A[!E>RZ3<= LjJ£ /1?NE£ 4D J>LAE>4 (let %xM RT[ E>/W4 1 [jEHJ>LCXC@dZE>RTLA[ rec x = M in x) . /143[E>/W4<>F|[!EH?BLNLj@WJZ3?AyTZ3@WyT@1< RT<= T M, N . . .. x | λxM | unfold | %xM | (M N ). b1LAJ RT[1<EH?N[dZO4ACLj[W4Y2?`FXC4Od[W4E>/W4<EH?A[1XW?AJHX2?E>/1432?EHRTZ=?Ny+WBCV$LART[jEZ3LA2£c1Rw[1?NE>LjJ= fix = λf %y(f y). 8[142?`FD?AyT<>LXC4Od[W4E>/W4Z=?NyTyz~c|F!z{}?NyT@W4UWBCVdLjRw[!EUZOLj2£cWRT[1?NE>LAJ#. Y = %yλf.f λx.(unfold y)f x. ?AyEH/WLA@1iA/4SZ3?N[1[WLNEZOy?NRT2E>/1RT<)R<)E>/W4SJHRwij/jE)Rw25VWyT43254=[jEP?EHRwLj[EHL @1<>4 LjJ5?EGF|VWRT[Wi JH4=?j<Lj[ E>/d?E 4S<>/1?NyTy <4=4 y ?EH43J 6 _1 [ZOLj2)Vd?NJHRT<>LA[S RwE>/aEH/W4Z=?NyZO@WyT@1<ULN 8J>4=FA43Jn; Eb>{$4£LAcd<4=J>}j4E>/1?N5 E84XCL[1LNE8@d<4SG[1?A254=< p $[WLAJUEGF|Vd4#<URT[ EH/W4£<>F|[jEP?B,Rw[a8JH43FA4=J < Z3?AyTZ3@Wyw@d<3WJH4=Z3@WJP<RTLA[RT< JHRwEE>4=[ rec(X . x : τ.M ) 1 /W4=J>4 X RT< ? 5 cdLj@W[1X 6 [1?N254?N[dX τ ? EGF|V$4AC?N[dX)E>/W4=J>4U?AJ>48?AXWXCRwE>RTLA[d?Ny1Z3LA[1<E>JH@1ZEP<3![1?A2)4=ywF λX.M ?N[dX S) LAJ JH4=<>V$4=ZEHRw}j43yTF?Ac1<GEHJH?jZEHRw[Wi?[1?N254A|?N[dX ?AVWVWyTF|Rw[Wi)?N[4OBCVWJH4=<H<RTLA[5EHL)?<43E S LN[1?A2)4#< 5 E>L)RT[1<GEP?N[!E>R?EH4EH/W4U(M EGF|V$4=<LNJ>4#ZO@WJP<RT}A4U}`?AJ>R?Nc1yw4#<3jE>/1?NE2?`FZOLj[!EH?NRT[ JH434[1?A2)4#< 6 b1LAJ,RT[1<GEP?N[1Z34A`EH/W4 fix ZOLA2cWRT[1?EHLAJ LA@1yTX£cd4 JHRE>E>43[ λf rec(X .x : τ.f {X}x) @1<RT[WiUJH43Fj43J <<>F![!EP?B s 4 RwyTy$XW4=<>Rwij[?£<>Rw25VWyT4EGF|V$48<>F|<E>4=2 LAJ_EH/W4Z3?NyZO@1yw@1<=|?N[1X4UXCL[WLNE[W434#kX S[1?N254=< p % wU[WLNEH/W43J25Rw[WLjJ XCRw+43JH43[1Z34 RwE>/S8J>4=FA43 J < Z=?NyZO@WyT@1<RT<EH/1?E 4XW43[WLAE>4c!F unfold /1RT< unbox LAV$43JP?E>RTLA[ |?A[1XEH/1?E 4XWL[WLAEZOLA[d<RXC43J E>/14 box LjVd4=JH?NE>RTLA[,/W4=J>4c$L`BCRw[Wi5R< LA[WyTFV$43J>LAJH254=Xc!FJ>4#ZO@WJP<>RwLj[ .L XW4=<HZOJHRwc$4DEH/W4SLAV$43JP?EHRwLj[1?Ny<4=25?A[!E>RZ3<LNEH/W4SyT?A[WiA@1?AiA4j,?A[1X25LjJ>4S<V$4=Z3R$Z3?NyTyTFLAUJH4=ZO@1JH<>RwLj[K4?j<><>@W254 ijRw}j43[D?<43ELA ]^z (bU\bj[ CLAKJ ScdL`BC4=< p NE>/d?E ?NJH4UV$LART[jEH43JP<KEHL}?NyT@W4#< <E>LjJ>4#XRw[?/W4#?NVCz ?NyTyTL|Z=?EH4=X5254325LAJHFA- 9LCZ=?E>RTLA[d< ?AJ>4}?NyT@W4#< Rw[E>/14YJ>@W[WzEHRw254yT?A[WiA@d?NiA4j!E>/W4<>F|[jEP?BDLA /WRZP/S2?`Fcd4YXC4#<>Z3J>RTc$4=XS?A<LjywyTL<3 w V, W . . . w ` | λxM | unfold "!$#% M, N . . . x | V | %xM | (M N ) w &!(' P, Q . . . M | ((set `)P ) | (P N ) | (V Q) /143JH4 ` R<Y?N[|FayTL|Z=?EHRwLj[ s 4<E>RTyTy_@1<>4 M N . . . EHLaXC43[1LNE>4543B|V1J>4#<><>RwLj[1<=43}A4=[E>/WLj@WiA/ E>/W4=F2?`Fa[WL ZOLj[jEP?NRT[ yTLCZ3?NE>RTLA[1<= s 4£XC4=[WLNEH4Yc!F loc(P ) EH/W4£<>4OEULAyTLCZ3?EHRwLj[1< LCZ3Z3@WJHJ>RT[Wi5Rw[ P $?N[1Xc|F {x7→V }M E>/W4Z3?NVWE>@WJH4?`}ALjRTXCRT[Wi <>@Wc1<E>RwE>@WE>RTLA[SLN x c|F V Rw[ M . /14LAV$43JP?EHRwLj[1?Ny <>432?A[jEHRTZ=<LAKE>/W4yT?A[WiA@1?AiA4YZOLj[1<>RT<EH<URw[?E>JP?N[1<>REHRwLj[J>4=yT?NE>RTLA[Sc$4OEG4343[ (bj*)%hb
(23) HbU\bj[ dE>/1?NE ?AJ>4UV1?NRTJH< (S, P ) LN ?£<GEHLAJH4 S ?N[dX?£ZOLCXC4 P AEHL£c$4U43}?Ayw@1?NE>4#XK. /W4 U`eH 5 LjJ /W4#?NV 6 S RT<?Y2?NV1VWRw[1iJHLA2 ?1[WRwE>4 <>4OE#XC43[WLAE>4#X dom(S) +LA_ywLCZ3?NE>RTLA[1<E>L}`?Ayw@14=<= s 45XC4=[WLNEH4c|F S[` V ] E>/W45<E>LAJH4Ad REH/ XCLj2?NRT[ dom(S) ∪ {`} LjcCEH?ARw[14=XDJ>Lj2 S c!F?A<H<RTiA[WRT[WiE>/W4Y}?Ayw@W4 V EHL ` |EH/1?ER<= ( Rw `0 = ` V 0 S[` V ](` ) = LNEH/W43JH R<4 S(`0 ) .LXC4=<HZOJHRTcd4EH/W4E>JP?N[1<>RwE>RTLA[1<=|RER<ZOLj[|}A43[1Rw4=[jEE>L5RT[!E>JHL|XW@1ZO4j1?A< @1<>@1?Ay b]c
(24) deU#ej8 ejTU4( U 5 LAJ<EH?j Z 3C< 6 T [] | (EN ) | (V E) | ((set `)E) E LNEHRTZ34KE>/1?NE?N[Y4=}?NyT@1?EHRwLj[Z3LA[!E>43B|EXCL|4=< [WLNEZ3LA[!EH?ARw[Y?A[!F8cWRT[1XC43J# LNEHRTZ34 ?Ny<L EH/1?E E>/W4#<4 Z3LA[!E>43B|EH<Z3LAJHJ>4#<V$LA[1X8EHL? yT4O E>zEHLNz~J>RTiA/!E_Z3?Aywywz~c!F!z~}?NyT@W4 <GEHJH?NE>43ijF 5 EH/W43JH4 R<K[WL<>4=!@W43[dZORT[WiZOLj[1<GEHJ>@dZE_RT[EH/W4y?N[Wij@1?Nij4ALAE>/W4=JKE>/1?A[?NVWVWyTRZ3?EHRwLj[ 6 . ¬2¬ ed®z¯¯o®.
(25) b
(26) ªe] E. . /143[E>/W4EHJH?A[1<>REHRwLj[JH@WyT4=< ?NJH4A (S, E[(λxM V )]) → (S, E[{x7→V }M ]) (S, E[(unfold `)]) → (S, E[V ]). . S(`) = V. (S, E[%xM ]) → (S, E[((set `){x7→`}M )]) (S, E[((set `)V )]) → (S[`. ` 6∈ dom(S) ∪ loc(E[%xM ]). V ], E[V ]). w8<K4<>?ARTX5?Nc$L}A4RT[CLAJH2?NyTywFjNE>/14 43}?NyT@1?EHRwLj[5LN?J>4#ZO@WJP<RTLA[ Z3LA[1<>RT<EH<,RT[ZOJH4=?NE>RT[WiY? JH4=<>/ yTL|Z=?EHRwLj[ /WRZP/ R< EH/W4}`?Ayw@14YLN EH/W4YJH4=ZO@1JH<>Rw}j48}?AJ>R?NcWyT4 5 E>/1RT< R< 4OBCVWJH4=<H<>4=Xc|FD%xM E>/W4Y<>@Wc1<E>RwE>@CEHRwLj[ {x7→`}6 W?A5 [1XE>/W6 4=[4=}`?Ayw@d?E>`RT[Wi M . /143[ RT< ?2?AJH35RT[E>/W443}?Ayw@1?NE>RTLA[DZ3LA[!E>43B|E=!E>LJ>4#ZOLAJPX5 /WRZP/DyTLCZ3?EHRwLj[R< ?j<><>Rwij[W4=X5EHL£ /W4=[EH/W484=}?NyT@1?EHRwLj[ `) LA {x7→(set J>4#<@WywEH<RT[?}?NyT@W4 _bWJHLA2 EH/W4VdLjRw[!E LN}|RT43LA 4 Z3Rw4=[1ZOFj|E>/WR< <4=25?A[!E>RZ3<RT< <>Rw25RTyT?AJE>LE>/W4LA[148LA 9?N[1XWRw[$`}M ?N[1XSR<<>ywRTiA/!EHywFcd43EEH43JEHV/1?N[SEH/W4Lj[W4YLN* ; >{ <>Rw[1Z34Y@W[CLjyTXCRT[WiD?5JH4=Z3@WJP<RT}A4}?NJHRT?AcWyT4YRT<U4OBCVWyTRTZ3RE#14£XCL[WLAE /d?`}A4U/143JH4E>L)V$43J>LAJH2 ?£E>4#<GELAJ XC431[W4=XW[W4=<H<LNEH/W4?j<><>LCZOR?EH4=XV$LART[!E>43J#,. L)43}?NyT@1?NE>48?A[D43B|V1J>4#<><>RwLj[ M | 4<GEP?NJ>E RwE>/EH/W4RT[WREHRT?Ay_ZOLj[C1iA@1JH?NE>RTLA[ M ) . /W443}?Ayw@1?NE>RTLA[LN M iA43EH<Y<E>@1 Z 3 RE>/143JH4)R<?S<>4=!@W43[dZO45LNE>JP?N[1<>RwE>RTLA[1< JHLA2tE>/W4YRT[WRwE>R?Ny Z3LA[C1ij@WJP?E>RTLA[DE>(∅, L? e
(27) ]iU Z3LA[C1ij@WJP?E>RTLA[ jEH/1?ER<= /W43JH4 ` 6∈ dom(S) ∗ (∅, M ) → (S, E[(unfold `)]) b1LAJRw[d<GEP?N[1Z34A$E>/WR<8RT<UE>/W45Z3?j<4 REH/ Y. /W4EP?AH< 3SLNKE>/14£EGF|V$4<>F|<E>4=2 RwyTy,cd4£E>LJ>@WyT4Lj@CE43BCVWJ>4#<><>RTLA[1< /1Lj<>4 43}?Ayw@1?NE>RTLA[2?`FJ>4#<@1yERw[)<@1ZP/(fix ?JH@Wunfold) [Cz{E>RT2)4 43JHJ>LjJ=£ 1 [LAJPXC43J E>LVWJHL}A4,E>/14 EGF|V$4<H?43EGFV1J>LjVd4=JEGFj3EH/W4 LjywyTL RT[Wi JH4=<>@WywE RwyTyc$4Y@1<43@Wy{K 1~EU<GEP?E>4#<E>/1?NE RK?)ywLCZ3?NE>RTLA[ /1?j< cd4=43[ZOJH4=?NE>4#X|J>Lj2E>/144=}?NyT@1?EHRwLj[LA,?)JH4=ZO@1JH<>RwLj[jE>/W4=[ EH/W4Y2?N(J 3 (set `) J>4=25?ARw[d< Rw[E>/14Y43}?NyT@1?EHRwLj[Z3LA[!E>43`B|E ?j< ywLj[Wi5?A< [WL}?NyT@W4/1?j< cd4=43[?A<H<RTiA[14=XEHL ` ¥Q C C B eCT6A ! ! &! # % "!$# (S, P ) . . . .
(28) . . . ` ∈ loc(P ) − dom(S) ⇒ ∃E, ∃Q. P = E[((set `)Q)]. $$'. . . # "!$# . . . 1?A<H<@12)4E>/d?E P ) <H?EHRT<14#<EH/WRT<V1J>LjVd4=JEGFj?N[1XaE>/1?NE (S, P ) → (S 0, P 0) REH/ ` ∈ loc(P 0 ) − dom(S 0 ) s 4£V1J>LCZO4=4=Xc|F?Z=?A<>4(S, ?N[1?AywFC<>RT<=t1~ ?N[1X P 0 = E[{x7→V }M ] WE>/143[ loc(P 0) ⊆ loc(P ) V )] S 0 = S ?A[1XSEH/W43JH4OLjJ>4 P = E0[((set `)R)] J7|PRT[1=ZO4 E[(λxM 3 Z A ? W [ W [ N L E C L 3 Z O Z 1 @ U J RT[ (λxM V ) 4/1?`}A4 E = E0[((set `)E00)] . /14 (set `) LAE>/W4=JZ3?j<4#< ?NJH4<>Rw25RTyT?AJ= @ DDªB aeC eC M # ! # * & loc(M ) = ∅ (∅, M ) →∗ (S, P ) # ' ` ∈loc(P ) − dom(S) . . !. #". # P = E[((set `)Q)] ! ! ª$ . (. .
(29) . *),+. .-/). . . '&. . . . $%. Q. ,0. 8JH43FA4=J_RT[jEHJ>LCXC@dZO4=<_Rw: [ ; Ee>+?EGF!V$4U<>FC<GEH432SA /WRZP/R<_RT[5 ?AZE?EGF!V$4U?A[1X54O+4=ZOE <FC<E>4=2! RwE>/LA[1ywFLA[W4x3|RT[1X5LN+4O+4=ZOE= [d?N2543yTF5E>/W4YXC4=J>4343JH43[1Z3Rw[1i£LN,?£JH4=Z3@WJP<RT}A48}`?AJ>R?Nc1yw4j21 [LAJPXC43J E>L)RT[jEHJ>LCXC@dZO4LA@WJ L [EGF|V$4<>FC<GEH432SCyT4OE @1< J>4=}|Rw4=? <>RT2)V1ywRw14=XLAJH2 LA UJH43Fj43 J <KLj[W4A,. /W4 SG[1?A254=< p @1<>4=Xc!F58J>4=FA43J_E>L£JH4=Z3LAJPXE>/W4UZ3J>4#?EHRwLj[LN?YyTL|Z=?EHRwLj[Z3?N[c$48<>434=[ ?j< H4hbbj[ +E>/1?NE?AJ>4@1<>4=XaRT[43$4#ZE<>F|<E>4=2<EHL/1?A[1XCyT4)?AJ>4#?A<URw[E>/W45<GEHLAJH4 ;T6~>~n7|RT[1Z34)?DywLCZ3?NE>RTLA[aR<?A<H<LCZ3RT?NE>4=X ?NE£JH@W[Cz{E>RT2)4j, REH/?JH4=ZO@1JH<>Rw}j45}`?AJ>R?Nc1yw4j EH/W4EGF|V$4LN<>@1ZP/?}?NJHRT?AcWyT4RT<XC4=Z3LAJP?E>4#Xc!Fu?JH43ijRwLj[RT[ /WRZP/ E>/14 yTLCZ3?NE>RTLA[DR< <@1VWVdL!<4#XEHLc$4Z3J>4#?EH4=XK. /W4=[E>/14 U LN?£VWJHLAijJH?A2 R< ?<>4OE LNJ>4=iARTLA[1<=!XW43[WLAE>4=X E F . . . C /WRZP/ JH43V1J>4#<4=[jEP<EH/W45?NJH4=?A<URw[E>/W4<E>LjJ>4Rw[ /WRTZP/E>/W4)VWJHLAijJH?A2 2?`FSVd4=JLjJ>2 ?A[a@W[CLjyTXWRw[Wid. /WR<8R<J>4#ZOLjJHXC4#XSRw[ E>/14 EGF|V$4=<LA @W[1ZOE>RTLA[1<=?j<8E>/Wk4 SyT?NE>4=[jE4O+4=ZOE p ?D@1[1ZEHRwLj[2?`F/1?`}j4A /W4=[?AVWVWyTRw4#XaEHL?N[u?NJHiA@W2543[!E#. /1?NER<=E>/14 EGF|V$4=<?AJ>4j w E τ, σ . . . t | τ rboxρ | (τ − → σ) /143JH4 t R<?A[!FEGF|Vd4}?NJHR?NcWyT4A?N[1X ρ R<?JH43ijRwLj[ 5 ?S[1?N254 6 q 1 [ 8J>4=FA4=J <Y<FC<E>4=2E>/143JH4RT<?N[ ?AXWXWREHRwLj[1?Ny Z3LA[Cz <E>JH@1ZOE>RTLA[[d?N2543yTFa@W[WRT}A4=JH<H?NyK!@1?A[jEHR$Z3?EHRwLj[L}j43J?JH43ijRwLj[ ∀ρ.τ . /148MG@dXCiA4=2)4=[!EH<LN E>/W4<>RT2)V1ywRw14=X }A4=JH<>RTLA[LA 8JH43FA4=J <8EGF|Vd4<>FC<GEH432 /1?`}j4£EH/W45LAJH2 Γ ` M : τ, E /143JH4 Γ R<E>/W45EGF|VWRT[WiZOLj[!E>4OB|E#E>/W443BCVWJ>4#<><>RTLA[ M RT<YE>/W4 <>@WcCMG4#ZE LNE>/W4MG@1XWiA43254=[jE#W?N[1X R<REP<EGF|Vd4jC /WRwyT4 R<REP< 4O+4=ZE# Rw}j43[E>/W4RT[!E>@WRwE>RT}A4254=?N[1Rw[Wi)LNJ>4=iARTLA[1<?N[dX 43$4#ZEP<3CEH/W4YJH@Wyw4#< LNE>/W4EGF|V$4<FCτ<E>432 </1LA@WyXDc$4ZOyT4=?AEJ= 1. 32. Γ, x : τ ` M : σ, E Γ, x : τ ` x : τ, ∅. E. Γ ` λxM : (τ − → σ), ∅. {ρ}. Γ ` unfold : (τ rboxρ −−→ τ ), ∅. ¬ .
(30)
(31) ~. Γ, x : τ rboxρ ` M : τ, E Γ ` %xM : τ, E. E. Γ ` M : (τ − → σ), F. ρ 6∈ E. Γ ` N : τ, G. Γ ` (M N ) : σ, E ∪ F ∪ G. s 4 [WLAE>RZO45EH/1?E?S}?Ayw@W4/d?A<?A[4=25VCEGF 43$4#ZE#?A[1X E>/1?NEE>/W4DLA[WyTFLjVd4=JH?NE>RTLA[ E>/1?NE£Rw[!EHJ>LCXC@1Z34=<Y?A[43$4#ZE£R<m; E>/14 ?AVWVWyTRTZ=?EHRwLj[LNo>_E>/W4 unfold @1[1ZEHRwLj[). /14EGF|V$45LN?A[?Ac1<E>JP?AZEHRwLj[ λxM JH4=Z3LAJPXW<=+?j< 4<H?NRXE>/14)43$4#ZEYLN M 1 [E>/14JH@WyT4DLjJ)JH4=Z3@WJP<RTLA[EH/W4<RXC4SZOLA[dXCREHRwLj[R<E>/W4LA[W4E>/d?E43[1<>@WJH4=<£EGF|Vd4S<>?N4OEGF+DRwE<GEP?E>4#<E>/1?NEEH/W4ScdLCXCF LA E>/W4JH4=ZO@1JH<>RwLj[ </WLj@WyX [WLNE)/1?`}A4E>/W44O+4=ZE5LN@1[CLAyXCRT[WiRT[EH/W4DJH43ijRwLj[ /W4=J>4EH/W4ywLCZ3?NE>RTLA[?j<><>LCZOR?E>4#X M RwE>/E>/W4JH4=Z3@WJP<RT}A45}?NJHRT?AcWyT4 x RT<<@1VWVdL!<4#XE>Lac$4DZ3J>4#?E>4#XSbRT[1?AywyTFAK?N[ ?AVWVWyTRTρZ=?E>RTLA[ (M N ) /1?A<?NyTyKE>/14D4O+4=ZOEH< LA RwEH<YZ3LA25VdLj[W43[!EP<3 ?j< 4=ywy_?j<UEH/W4y?E>4=[!E43$4#ZEYLN E>/W45@1[1ZEHRwLj[ M 5bWLjJRT[1<EH?A[1ZO4j 45/1?`}j4AJH43i!?NJPXCRw[1iE>/14 fix Z3LA2cWRw[d?E>LjJ= V1J>L}|RXC4=XE>/1?NE ρ 6∈ E E E ` λf %y(f y) : (τ rboxρ − → τ) − → τ, ∅ ?A[1X E>/W4=J>43LAJH4Lj[W4Z3?A[<>434)E>/d?E (fix unfold) Z3?A[W[WLAEc$45EGF|Vd4#XA 1 [uUJH43Fj43 J <<>F|<E>4=2SE>/145EGF!V$45LN fix SEH/1?ER<= DR< 1 /W4=J>4 S S λf rec(X . x : τ.f {X}x) . /14£EGF|V$4)?A[1Xa43$4#ZEY<FC<E>43(∀X.box 2 MG@d<GEXCX4#(τ<>Z3)J>RT−cd→4#Xaτ )R<8−→!@WτRwE>4<>Rw25VWyT45X?N[16∈XS4O+4=ZEHRw}j4ARwEY43[1<>@WJH4=<UEGF|Vd45<>?N4OEGF RwE>/WLj@CE= ?j<URwEY<4=432<3+JH4GMG4#ZE>RT[WiE>L|LD2@1ZP/a43B|V1J>4#<><>RwLj[1< RT[aV1?NJ>E>RZO@1yT?AJ8RwE?jZ3Z343VCEP<EH/W4£1B|V$LART[!E4#!@1?EHRwLj[ (♥) + RwE>/u<Lj254 Z3LA[1XWREHRwLj[1< Lj[E>/14U@W[dZE>RTLA[DJ>Lj2 /WRTZP/D 4UEHb? 3j4EH/W4U1B|V$LART[!E=K FL43}j43J#Ac$4=Z=?N@1<>4ULAE>/W4[W43i!?EHRw}j4U<RXC4ZOLA[dXCREHRwLj[ RT[E>/W4EGF|VWRT[Wi5J>@WyT48LAJ JH4=ZO@1JH<>RwLj[!RE R< [WLNE }A4=J>FZ3yw4#?NJ /WL43yTyRE<>@WVWV$LAJ>EH< E>/14RT25VWyTRTZ3RE EGF|VWRT[Wi5XCRT<HZORTVWyTRw[14A_. /1?NE R<=AZ3?A[£4Z3LA25VW@CEH4?UEGF|Vd4LAJK?A[!FEGF|V1?AcWyw44OBCVWJH4=<H<>RwLj[ s /d?EKZOLA@1yTX£cd4E>/14[1LNE>RTLA[LNd?8VWJHRw[dZORTV1?Ny!EGF|Vd4 l9L|ªL 3|RT[Wi ?NE E>/W4EGF!V$4YLN LjJ Rw[d<GEP?N[1Z34AWRwE8<>43432< EH/1?ELj[W4<>/WLA@WyXRw[dZOLAJHV$LAJP?E>4Y!@1?A[jEHR$Z3?EHRwLj[RT[EGF|Vd4#<3$?A< 8J>4=FA43JXWL!4#<3 c1@CE8RwEUR<[WLAE8ZOyTfix 4=?AJ E>/1?NEE>/14£JH4=<>@WyEHRw[1i<FC<E>432 <>@WVWV$LAJ>EH< EGF|V$4Rw[W43JH43[1Z34 <>43m 4 ; E>LAJU?DXCRT<HZO@d<><>RwLj[ s 4£</d?NyTy [WLAE RT[|}A4#<GEHRwi!?E>4£E>/W4#<4!@W4#<GEHRwLj[1<U/143JH4Aa 1 [1<E>4#?AX45</1?AywyKXC4=J>RT}A4JHLA2 E>/14EGF|5 V$4)?A[1Xa43$4#ZE<>F|<E>4=2 ?N6 c$L}A4)?<>Rw25VWyT43J <>FC<GEH432S /1RTZP/RT<yT4=<H<4OBCVWJH4=<H<>Rw}j4cW@WE43[MGLFC<E>/14iAL|LCXaVWJHLAV$43J>E>RT4=<JH4=!@WRTJ>4#XLjJ?N[Rw25VWyTRTZ3REHywFj<EH?NE>RZ3?AywyTFEGF|Vd4#X y?N[1iA@1?AiA4A . /14RXC4=?1KRw[d<VWRTJH4=Xc|FuEH/W4[1LNE>RTLA[LN8< ? S<H?4=[W4=<H<£XW43iAJH434 J>Lj2 ; ee >{_R<E>LZOLA[d<RXC43J5? YjOe LjJc$L|LAyT4=?N[ }j43JP<RTLA[LNE>/W4Y43$4#ZEH<=,E>/1443$4#ZEP<?NJH48JH4=XW@1ZO4#XEHL 1 iAL|LCXC[Wp L543$4#ZEU?E?Aywy D?N[dX 0 c1?AXC2?`F|c$45 <>LA2544O+4=ZOE=6 1 [E>/WR<<43EEHRw[Wid$E>/W4)LA[WyTFSVdL!<><>RTcWRwyTRwEGFSE>LD43BCVWJ>4#<><UE>/14<>RTXC45ZOLj[1XCRwE>RTLA[aLj[aEGF|VWRT[WiDJH4=Z3@WJP<RTLA[R<EHL?j<><>@W254EH/1?EE>/14 c$LCXCFuLN E>/14DJH4=ZO@1JH<>RwLj[u/1?A<?N[ 4325VCEGF <>4OE£LA4O+4=ZOEH<=EH/1?E)RT<=,RE)/1?A< SXW43iAJH434 p 1 5 s 4D2?`Fu?NyT<>LaXCR<GEHRw[1iA@WR</? <>V$4=ZOR?NyZ3?A<>4A1 /W43JH4E>/W4£J>4#ZO@WJP<RT}A4}?NJHRT?AcWyT4XWL!4#< [WLAEULCZ3ZO@1J J>4=4YRw[EH/W4c$L|XWFLAEH/W4JH4=ZO@1JH<>RwLj[ 1 [EH/WR< ?`FAC4 [1LyTLA[1iA43J[W4=4=XE>/W45JH43iARTLA[d<3a 1~E<>/WLA@1yTXcd4ZOyT4=?AJ/WL\E>LSLjcCEH?ARw[E>/W45JH@Wyw4#<LN EH/Wa4 SGc1Rw[1?AJ>FS43$4#Z6 EH< p <>FC<GEH432 JHLA2 EH/W4)VWJ>4=}|RwLj@1< LA[14=<= ?A[a4O+4=ZOE8 /WRZP/aR < 3|[WL [SEHLDc$4£[WLj[Cz~4325VCEGFSRT<UE>JP?N[d<y?EH4=XE>L 0 + /W43JH4=?j<?N[4O+4=ZE /WRTZP/RT< 3|[WL [aE>LDc$4)4325VCEGFALjJUR<J>4#j@1RwJH4=XS[WLAEUEHLZ3LA[!EH?ARw[a<>LA254£43$4#ZERT<?AVWVWJHL`B|RT2?EH4=XS?A< . /W43[ R 4XW43[WLNEH4£c|F cWRw[d?NJHF4O+4=ZEP<3C?A[1Xc|F α ∧ β EH/W43RTJ ZOLA[NMG@W[1ZEHRwLj[CZOLjJ>JH4=<>VdLj[1XCRT[WiYEHL)<>4OE @W[WRTLA[|1 RwE>/ 1 ∧ 1 = 1 0 ∧ 1 = 0 α β... 43EHZAwCEH/W4YJH@Wyw4#< ?NJH4A Γ, x : τ ` M : σ, α Γ, x : τ ` x : τ, 1. α. Γ, x : τ rbox ` M : τ, 1. b1LAJ RT[1<EH?N[dZO4AC4Y/1?`}j4. 0. Γ ` λxM : (τ − → σ), 1. Γ ` %xM : τ, 1. Γ ` unfold : (τ rbox − → τ ), 1 α. Γ ` M : (τ − → σ), β. Γ ` N : τ, γ. Γ ` (M N ) : σ, α ∧ β ∧ γ 1. 1. ` λf %y(f y) : (τ rbox − → τ) − → τ, 1. ?A[1X RT<<GEHRwyTyU[1LNEDEGF|V1?AcWyT4A w @W[dZE>RTLA[vLAYEGF|Vd4 RwE>/v[1LyT?NE>4=[jE4O+4=ZOE= 2?`Fc$4Z=?NyTyw4#X 1 SVWJHLNEH(fix 4=ZEHRw}junfold) 4 p j?j< RT[ ; ez>~|?A[1XEH/W48EGF!V1Rw[WiLN fix <>?`FC<_E>/1?NELj[W48Z=?N[D(θ<H?−→ 4=ywF)σ)EH?ª3A4 EH/W48WBCVdLjRw[!E LN ?V1J>LAE>4=ZOE>RT}A4 @1[1ZEHRwLj[ ?a<>43[1<>Rwc1yw4JH4=<E>JHRZE>RTLA[ Lj[uE>/W4DWBCVdLjRw[!E)4=!@1?EHRwLj[ r7|RT[1ZO4DE>/W4=J>4R<LA[WyTF Lj[W4JH43ijRwLj[ Rw[ EH/W4Dc1Rw[1?AJ>F4O+4=ZOEH<. >< FC<GEH432S RwE</1LA@WyXc$4ZOyT4=?NJE>/d?E5E>/WR<<>F|<E>4=2 Z3?A[W[W(♥) LNE5c$4S?j<)VWJ>4#ZOR<4?A<E>/1443$4#ZE<>F|<E>4=2SbWLjJ)RT[1<EH?A[1ZO4j_E>/14 43BCVWJ>4#<><>RTLA[ %y(unfold(Kxy)) $ /W4=J>4 K = λxλy x $RT< [1LNE EGF|V1?Nc1yw4Y RwE>/cWRT[1?AJ>F4O+4=ZEP<3d /W43JH4=?j< RE8RT<8?AZ3Z343VCEH4=XRT[ EH/W4@WyTyW4O+4=ZOEK<>FC<GEH432SNVWJHL}|RTXW4=XEH/1?E,E>/14}?AJ>R?NcWyT4=< x ?N[dX y /1?`}j4_EGF|Vd4#<K?N[W[1LNEH?NE>4#X RwE>/5XCRT<E>RT[1ZOE,JH43ijRwLj[1<=2w25LAJH4 <>43JHRTLA@1< 4OBW?N25VWyT4R<_EH/W4LjywyTL Rw[1i1 42?`F5XC4Od[W4 7WQ 9aJH4=ZO@1JH<>RwLj[ rec f = λxM ?A< f = %f λxM !LAJ 4#!@WRw}?Ayw4=[jEHywF ?j< FUL 4=}A4=J=`Rw Z3LA[!EH?ARw[1<JH4=ZO@1JH<>Rw}j4 Z=?NyTyT< E>L /WRZP/)?AJ>4 [WLNERSVWJ>LAE>4#ZE>4#X Y /WRTZP/RT<,ij43[W4=JH?AywyTF % EH/W4fZ3=?j<4 (Y $NλfE>/1λxM ?NE,R<,)Rw M /d?A<,4O+4=ZOE M0 E>/143[?N[|F?NV1VWywRZ3?NE>RTLA[ (f N )f RTywyC/1?`}j4 43$4#ZE 0 j?N[1X£E>/WR<,p R<,@W[CLAJ>E>@1[1?EH4 <>RT[1ZO4 4E>/143[Z3?A[W[WLNE @1<>4<>@1ZP/?N[4OBCVWJH4=<H<RTLA[@W[WVWJHLNEH4=ZOE>4=XRT[S?A[WLNEH/W43J JH4=Z3@WJP<RTLA[K. /W4=J>43LAJH4E>/W4YJH4=Z3@WJH<>RTLA[SZOLA[d<GEHJ>@1ZOE E>LjiA4OEH/W43J RwE>/E>/14YcWRw[d?NJHF4O+4=ZOEU<FC<E>432 RT< [1LNE }A4=J>F43yTyz <>@WREH4=XLAJXW4=?NyTRT[Wi RwE>/SJH4=Z3@WJH<>RT}A48@W[1ZEHRwLj[1<= 8[ %xM. ¬2¬ ed®z¯¯o®.
(32) b
(33) ªe] = C u Γ ` M : τ, α. C`β6α. C u Γ ` M : τ, β. C u Γ, x : τ ` x : τ, 1 C u Γ ` M : (τ − → σ), α. C u Γ, x : τ ` M : σ, a. C u Γ ` N : τ, β. a. C u Γ ` (M N ) : σ, a ∧ α ∧ β. C u Γ ` λxM : (τ − → σ), 1 a. C u Γ, x : τ rbox ` M : τ, 1 C u Γ ` %xM : τ, 1. C u Γ ` unfold : (τ rbox − → τ ), 1 0. Figure 1: The Type and Binary Effect System. HE /W4LNEH/W43J /1?A[1X!E>/W4cWRT[1?AJ>F43$4#ZE <FC<E>432t?jZ3Z343VCEP< 43BCVWJ>4#<><>RTLA[1< E>/1?NE Z3LA@WyX[WLNE cd4EGF|V$4=X RwE>/E>/14<>FC<GEH432LA¥; ee>{ b1LAJRw[d<GEP?N[1Z34A R< ?jZ3ZO4=VCE>4#X!VWJ>L}|RXC4=X)EH/1?E /1?j<_[WL4O+4=ZE ?A[1X?AVWVWJHLAVWJHRT?NE>4 EGF|VWRT[Wi _QSLAJH43L}j43J# EH/W4URT[!E>@WRwE>RT}A4825%f.(λxλyM 4=?N[1Rw[WiYLAcW)N RT[1?NJHF£43$4#ZEH< R<_25LAJH4UZOyT4=?AJKE>/d?N[NEH/W4ULj[W4LN+EH/W4tS>5 <>?N43[W4#<>< XC43ijJ>4=4=< p 21 [J>43E>6 JHLj<>Vd4#ZE#NE>/14 EGF|V$4£<>F|<E>4=2 LA* ; ee >?NV1Vd4#?NJP< E>Lc$4£?A[a?EEH4325VCE8E>LcW@1RwyX?5EGF|Vd4?N[1XS43$4#ZE<>FC<GEH432 Rw[?aS/WL!<GEHRwyT4£ZOLj[!E>4OB|E p d /W43JH4 EH/W4Y4O+4=ZOEH< 43JH48/1RTXWXW43[J>Lj2E>/14<F|[!EH?NB+C?A[1XZ3LA@WyXLA[WyTFc$4XW4OE>4#ZEH4=XE>/WJHLA@1iA/43}?NyT@1?EHRwLj[Z3LA[!E>43B!EP<3CyTR03A4 ([] V ) LjJ [].m J w XCR<H?`}`?A[!EH?Nij4YLN 43BCVWywRZORwE>yTFScdL`BC4#XJ>4#ZO@WJP<>Rw}j4}?NyT@W4=<=+ REH/JH4=<>Vd4#ZEUEHLEH/W4£1B|V$LART[!E@d<4#XRw[ ; ee >{+R<8E>/1?NE Lj[W4£/d?A<UE>LS?N[!E>RZORTV1?EH4?EGF!V$4)LNKE>/14£LjJ>2 LAJ?N[?NJHiA@W2543[!EEH/1?E RTywy,c$4@1<>4=X?A<?WBCV$LART[jE#Y. F|VWRZ3?AywyTFA 45Z3?N[1[WLNE?NVWVWyTFSE>/14 fix ZOLj2£cWRT[1?NE>LAJ8E>LS?τ@1rbox [1ZEHRwLj[ LA_EGF|Vd4 (τ −→ ?A<8LA[W45ZOLj@WyTX RT<>/aEHLXWL 3 . /W4=J>43LAJH4 α EH/W4DZ3LA[1<E>JH@1ZE %xM /WRwyT4c$43RT[Wi?AXW4=!@1?EH4)LAJ£<>Vd4#ZORwdZ5VW@WJHV$Lj<>4=<=τyw0R )3A4LjcCMG4=ZOEH<?j<J>4#ZO@WJP<>Rw}j4)JH4=Z3LA5 JP6 XW<=2?`Fa[WLNE ?jZEH@1?NyTywF!@1?AywRwF?A<?ij43[W4=JH?AydJH4=Z3@WJH<>RTLA[ZOLj[1<E>JH@1ZE# s 425?`F<E>RTywy+[W4=4=XD2)LjJ>4UE>JP?AXCRwE>RTLA[d?NydLAJH25< LNJ>4#ZO@WJP<RTLA[ AyT^R 3j4 EH/W4YLA[14RT[|}A4#<GEHRwi!?E>4#XDRTM [ ;w6`e >~ . /14 EGF!V$4U?A[1X 5 cWRT[1?NJHF 6 4O+4=ZOE <FC<E>4=2 4</d?NyTyCLAJH2?NyTywF£<E>@dXCF/143JH4 RT<_<>yTRwij/jEHywF25LAJH4 43y?Nc$LAJP?E>4#XEH/1?N[5EH/W4 LA[14 4,MG@1<E RT[jEHJ>LCXC@dZO4=XRT[LAJPXC43J,EHLYVd4=JLjJ>2EGF|Vd4RT[C4=J>4=[1ZO4jA4 [W434#X43$4#ZE }?AJ>R?NcWyT4=<=b1LAJ_RT[1<EH?A[1ZO4jNE>JHF|Rw[1iE>LYcW@WRTyX ?DEGF|Vd4)LjJ 45<4=4£EH/1?E 2@1<E/d?`}A4?DEGF|Vd45LA_E>/W4)LjJ>2 cW@CEE>/W4=J>4)R<[WLZ3LA[1<E>JP?NRT[!E8RT25VdL!<4#X α Lj[ α d /WRTZP/(f<>x)/WLA@1yTXE>/143[Scd4?Nf[4O+4=ZE8}`?AJ>R?Nc1yw4jK 1 [LAJPXC43JE>L/d?`}A(τ4LA−[W→yTFσ)<>RT2)V1yw4Z3LA[1<E>JP?NRT[!EH<E>L<>LAyT}A4RT[Rw[C4=J>JHRT[Wi EGF|V$4=<=+ 45XCR<GEHRw[Wij@WR<q / S4O+4=ZOEH< $EH/1?EY?NJH443RwE>/143JZOLA[d<GEP?N[!EH< LjJ +LAJ}?NJHRT?AcWyT4=<=1JHLA2 S4O+4=ZE4OBCVWJH4=<H<>RwLj[1< WEH/1?E ?AJ>4£cW@WRTyTXSJHLA2 4O+4=ZOEH<U@1<RT[WiEHp /W4Z3LA[MG@1[1ZEHRwLj[LAV$43JP?E>RTLA[ K0$4#ZE14OBCVWJH4=<H<RTLA[1< ?AJ>4£[WLNE8<>@WVWV$Lj<>4=XEHLLCZ3Z3@WJUp RT[E>/14 ?AJ>JHLxEGF|Vd4#< cW@CEE>/1RT<R<[WLNEY?D<>43JHRwLj@1<8J>4#<GEHJ>RZEHRwLj[ . /W4=[?A<H<>@W25Rw[WiiART}A4=[?XW43[|@W2543JP?NcWyT4<>4OE EVar LN4O+4=ZE }?AJ>R?NcWyT4=<=|E>/145 <>F|[!EH?BLNEGF!V$4=< ?A[1X4O+4=ZEP< R<?A<Ljyw6 yTL<3 p, q . . .. ∈. $& " & $& ! # . EVar. . . w ∈ {0, 1} ∪ EVar α, β, γ . . . a | (α ∧ β) w a τ, σ . . . t | (τ − → σ) | τ rbox . /14SEGF!V1Rw[WiMG@1XCij432543[!EP</1?`}A4E>/14LjJ>2 u /W43JH4 R<? (bj[U#HejTU E>/1?NERT<? 1[WRwE>4a<>4OELA RT[W4#j@d?E>RTLA[d< p1 6 α1, . . . , pn 6 αn LAE>RZO4CEH/1?ΓE `<@dZPM/?: ZOτ,Lj[1α<GEHJH?ARw[!E_R< ?ACyw ?`FC<K<>?NE>R<G$?NcWyT4A!c|F)?j<><>Rwij[WRT[Wi 0 E>L£43}A4=J>F 43$4#ZEU}?AJ>R?NcWyT4LAJURw[1<EH?A[1ZO4j1 [SEH/W4YEGF|VWRT[WiJH@Wyw4£ 4Y@1<>4 MG@1XCij432543[!EP<LN,EH/W4YLAJH2 C ` β 6 α d /WRTZP/a?AJ>4YV1J>L}j4=X c|F2)4#?N[1< LA?A[RT[C43JH43[dZO4<>F|<E>4=2t /WRZP/</WLj@WyXDc$4YLAc|}|RwLj@1<=![d?N2543yTF+ a, b, c . . .. . . . C `α6γ C`06α. C `α61. C`α6α. C `γ6β. C`α6β C `γ6α C `γ6β. p 6 α, C ` p 6 α. C ` (α ∧ β) 6 α. C ` (α ∧ β) 6 β. C ` γ 6 (α ∧ β). . /143[ E>/14EGF|VWRw[1i<FC<E>432 RT<iART}A43[ RT[bRwij@WJ>4 6j'. /W4SdJH<EJ>@1yw4R<D?A[43$4#ZED4=?ª3A4=[WRw[1iJH@WyT4A <EH?EHRw[1iuE>/1?NED? SiAL|LCX 43$4#ZEZ3?A[?Ayw ?`FC< c$4<H?43yTFXCL [WijJH?jXC4=X21 [E>/W4YJH@WyT4LAJEGF|VWRw[1i5?Ac1<E>JP?AZEHRwLj[1<=jEH/W4J>4#<GEHJ>RZEHRwLj[EH/1?E LA[1ywF 43$4#ZEP<p Z3?N[LCZ3ZO@1J)RT[EGF!V$4=<)R<5[WLNE5}A4=J>F<>43JHRTLA@1<=Rw84Z=?N[RT[C4=J C u Γ, x : τ ` M : σ, α 4Z=?N[ ?Ny<L Rw[W43J /143JH4 p R<U?J>4#</4O+4=ZE}?NJHRT?AcWyw4j1EH/1?N[[3C<E>LEH/W4)4O+4=ZE 4#?b3j43[WRT[WiJH@Wyw4j?N[1XS4 p 6 α, C u Γ, x : τ ` M : σ, p 3 %%o *\# z¦^ zx¡x ¦ `e \¡ e x`zz\#\¡ ¦ #z¡Ozb-¡# x`z#\¡ _ ¦ zb η M z o . z . % b . ¡ . # t \ c ( # e 2 ¢ z ¡ 4 ¡ . 2 #`\¡ ¤« λx.M (unfold x) fix. 0. (τ rbox − → τ). e * . ¬ .
(34)
(35) . 2?`F)[WLv?NVWV1ywFE>/W4UJ>@WyT4 LjJ_EGF|VWRT[Wi£?Ncd<GEHJH?jZE>RTLA[d<3 s 4ZOLA@1yTX?AyT<>LY/1?`}A4UJ>4#<GEHJ>RZEH4=X)4O+4=ZOE 4=?b3j43[WRT[WiEHLYEH?ª3A4 VWy?AZ34 Lj[WyTF /W43[EGF|VWRT[Wi?N[?Ncd<GEHJH?jZE>RTLA[ C u Γ, x : τ ` M : σ, α. C `a6α. C u Γ ` λxM : (τ − → σ), 1 a. . 1. ),+. $ -. ). [ LjJHXW43JE>LVWJHL}A4)EGF|V$4<>?N4OEGFA 45dJH<E4OB|E>4=[1X E>/W4EGF!V$4<>F|<E>4=2 EHLSE>/W4JH@W[Cz{E>RT254yT?A[WiA@1?AiA4j. LSEH/WRT<£43[1X 4 ?j<><>@W254E>/d?EEH/W4YEGF|VWRT[WiZOLj[jEH4OB|EH<UZOLA[!EP?NRT[[WLAEULA[1ywF?A<H<@W25VCEHRwLj[1< ?Nc$LA@WEE>/W4EGF!V$4YLNK}?NJHR?NcWyT4=<=CcW@CE8?AyT<>L<>Rw25RTyT?AJ ?j<><>@W25VCEHRwLj[1< ?Nc$LA@CE yTLCZ3?EHRwLj[1<=,. /143[S 4/1?`}j4E>/W4YJH@WyT4=<= C u Γ, ` : τ ` P : τ, 1 C u Γ, ` : τ ` ` : τ rbox, 1. C u Γ, ` : τ ` ((set `)P ) : τ, 1. . /14YJ>@WyT4=<LjJ EGF|VWRw[1i (P N ) ?N[1X (V Q) ?NJH4E>/W4<H?N254Y?A< E>/14YLA[W4LjJ (M N ) W?N[1XS?NJH4LA25RE>E>4#X w Z3LA[C1ij@WJP?E>RTLA[RT< ?A@WyEGFRE>/W4Z3L|XW4EHLScd4ZOLj25VW@CE>4#X Z=?NyTyT<LjJY?}?Ayw@W45LA?ywLCZ3?NE>RTLA[ JHLA2 EH/W4<GEHLAJH4 c1@CEE>/WR<yTLCZ3?EHRwLj[/d?A<)[WL }?NyT@W4SRw[ S v. /1?NERT<=? b
(36) ]cU Z3LA[CdiA@WJP?EHRwLj[/1?j<£EH/W4SLAJH2 (S,`E[(unfold `)]) REHS/ FEH/Wn4 LAJHLAyTy?NJHFeW eWCR_<>@1ZP/S?)Z3LA[CdiA@WJP?EHRwLj[DR< J>4#?AZP/W4#XDXC@1J>RT[Wi)E>/W4Y4=}?NyT@1?EHRwLj[LA,?A[43B|V1J>4#<><>RwLj[ ` 6∈ dom(S) EH/1?ER< RwE>/ ` 6∈ dom(S) ∗ (∅, M ) → (S, E[(unfold `)]) 4/1?`}A4 E = E0[((set `)E1)] 1~E R< 4=?j<FE>LZP/W4= Z 3E>/1?NE <>@1ZP/?N[4OBCVWJH4=<H<>RwLj[DR< [WLNE EGF|V1?AcWyw4j ¥Q C C B g1T6A ! # ! ! E0[((set `)E1[(unfold `)])] # ! " 15EH/W44OBCVWJH4=<H<RTLA[ (unfold `) /d?A<4O+4=ZE 0 QSLAJH4DV1J>4#ZOR<4=ywFjRw C u Γ, ` : τ ` (unfold `) : τ, α R<)?}?NyTRTX MG@dXCiA4=2)4=[!E=E>/W4=[v 4S/1?`}j4 C ` α 6 0 ! 1~EDR<4=?j<FE>LZP/W4# Z 3$ c|FRT[1XC@1ZOE>RTLA[vLA[E>/14<GEHJ>@dZE>@1J>4j EH/1?ELjJD?N[|F 4=}?NyT@1?EHRwLj[DZOLj[jEH4OB|E E |Rw M /1?A<43$4#ZE 0 |Rw[DE>/W4VWJH43}|RTLA@1<<4=[1<>4A!E>/W4=[ E[M ] ?Ny<>L£/1?j< 43$4#ZE 0 |LAJR< [WLAE EGF|V1?AcWyT4A . /143[ ((set `)E1[(unfold `)]) RT<[WLNE EGF|V1?Nc1yw4j1<RT[1Z34 set JH4=!@WRTJH4=< RwEH< <>4=ZOLj[1X?NJHiA@W2543[!E E>L5/1?`}j4843$4#ZE 1 . /143[E>L54=<EH?AcWywR<>/DEGF|V$4<H?43EGFA|RwELA[WyTFJ>4=2?NRT[1< E>L</1LvE>/W4Y<EH?A[1XW?NJPXD<>@WcCMG4#ZE JH4=XC@1ZOE>RTLA[VWJHLAV$43J>EGFA,. L)E>/1RT< 4=[1X 4VWJHL}A4AC?j< @1<@d?Ny{1?5<@Wcd<GEHREH@CE>RTLA[SyT43252?W ¥Q C C B g1 eC # C u Γ ` {x7→V }M : σ, α C u Γ, x : τ ` M : σ, α # ' C u Γ ` V : τ, β 1RE)RT<£4=?j<FE>L<>434EH/1?E}`?Ayw@14=</d?`}A44O+4=ZOE 1 EH/1?E£R<=Rw C u Γ ` V : τ, β R<£?S}?AywRXMG@1XCij432543[!E=EH/W43[ RT<8}?NyTRTXaE>L|L c!FRT[1XC@dZE>RTLA[ LA[EH/W4)VWJ>L|LA_LNKE>/14£1JP<E MG@1XCij432543[!E . /W4=[a 45<>/WLxE>/W4 94=2)2? C u Γ ` V : τ, 1 c|FRT[1XC@dZE>RTLA[LA[E>/14YVWJ>L|LA LN 5 C u Γ, x : τ ` M : σ, α 1?A[1XDc|FDZ=?A<>48Lj[DEH/W4Yy?A<EJH@WyT6 4@d<4#XDRT[E>/WR< VWJHL!LAG- 1~EH/WRT< R< ?A[?BCRwLj2SC REH/ ?A[1X |E>/W4=[S 4Y@1<>4E>/14 ?AZE EH/1?E /d?A< 4O+4=ZOE E>LZ3LA[1Z3yw@1XW4AK 1~E>/WR<R< ?N[ ?NBCRwLj2 RwE>/ M 6=Mx=1EH/Wx43[σ =4Yτ@1<>4E>/Wα4 =?AZ1E#1 /WRZP/SRT<U4=?j<FEHLVWJHL}A4j|E>/1?NVER C u Γ, x :1 τ ` M : σ, α ?N[1X x RT< [1LNE JH434RT[ M |EH/W43[ C u Γ ` M : σ, α wyTyE>/W4LAE>/W4=J Z=?A<>4=< ?NJH4Rw25254=XCR?EH4 5 25LCXC@WyTL αz ZOLA[|}j43JP<RTLA[RT[E>/W4YZ3?j<4 /W4=J>4 R< ?N[S?Nc1<E>JP?AZOE>RTLA[DLjJ?)J>4#ZO@WJP<RTLA[ 6 M LEHLVWJ>L}j4<>@WcCMG4#ZE JH4=XC@1ZOE>RTLA[C4Y4OB|EH43[1XDE>/W4EGF|VWRT[Wi5EHLEH/W4<E>LAJH4A . . .
(37) . . . . &. /. . '. . . $%. . . . . C u Γ, ` : τ ` S C u Γ`∅. C u Γ, ` : τ ` S[`. ?A[1XE>/W4=[E>LZOLj[C1iA@1JH?NE>RTLA[1<=. ¥Q C C B L
(38) QdN
(39) JQ£N
(40) g1 0 0 u 0 Γ0 = Γ C Γ ` (S , P ) : τ . . ¬2¬ ed®z¯¯o®. # '. C u Γ, ` : τ ` V : τ, α. C u Γ`S. . V]. C u Γ ` P : τ, α. C u Γ ` (S, P ) : τ. !$. $%. # ' (S, P ) → (S , P ) # ! ! ` # ' σ. C u Γ ` (S, P ) : τ Γ0 = Γ, ` : σ '&. . 0. 0. . . . . . Γ0. * & .
(41) 6#f. b
(42) ªe]. 1E>/1RT< RT<?<EH?N[dXW?NJPX)J>4#<@WywE £; ejez> C?N[1X54Lj[WywF5<H3A4OEPZP/5E>/W4UVWJ>L|LAG%1~ P ) → (S 0, P 0) EH/W43[ P = E[R] LjJ<>LA25443}?NyT@1?NE>RTLA[ Z3LA[!E>43B!E E ?A5 [1X <>LA256 4 J>4#XC4OB R 8?N[dX P 0 = E[Q] . /W(S, 4=[EH/W4 V1J>L|LNLAE>/14DMG@1XWiA43254=[jE 1 / A ? < H E W / 4 A L T y w y L. T R W [ i A L H J S 2 C u Γ ` (S, P ) : τ . C u ∆ ` R : σ, β. . C u Γ`S. C u Γ ` E[R] : τ, α. Π. C u Γ ` (S, E[R]) : τ. /143JH4 4?AZOE>@1?AywyTFa/1?`}j4 <RT[1Z34 RT<Y?A[u43}?NyT@1?EHRwLj[Z3LA[!E>43B|E= /1RTZP/ XCL|4=<[1LNERT[!}jLAyT}A4?N[|Fac1Rw[1XW43J# s 4 43BW?N25Rw[148EH/W4YV$Lj<H<RTcWyT4Z=?A<>∆4=< =LAJ ΓR W?A[1XRwE[4=?jZP/Z=?A<>484VWJ>LCZ3434=Xc|FRT[1XC@1ZOE>RTLA[SLA[E>/W4YV1J>L|LNLN C u Γ ` R : σ, β ?A[1XE>/143[ac|FSZ3?A<>4=<LA[SE>/14£y?A<EUJ>@1yw4@d<4#XSRw[EH/W4£V1J>L|LNGdRw[LAJPXC43J EHL<>/WL EH/1?E8E>/WR<V1J>L|LN_Z=?N[c$4£JH43VWy?AZ34=XRw[ c|F?SVWJ>L|LALA C u Γ0 ` Q : σ, β 5 ?A[1X <RT2£@1yEP?N[W4=LA@1<>ywFaE>/W4V1J>L|LNLN C u Γ ` S Z=?N[uc$4J>4=VWy?AZO4#Xc|F?SVWJ>L|LALAΠ 8. /143JH4£?NJH4YEGLDZ3?j<4#<343RwE>/W4=JEH/W4£y?A<EUJH@Wyw4Rw[ 0 1EHL1[d?NyTywFLAcCEP?NRT[a?VWJHL|LNKLN 0 u 0 u 0 C V1J>L}|ΓRT[W`i CS 6u Γ ` R : σ, β RT<E>/W443$4#ZE 4#b? 3AC4=[WRTΓ[Wi5`J>@W(SyT4A$, RTE[Q]) [ /WRTZP:/aτ Z=?A<>4Y 4<RT25VWywF@1<>4YE>/14Rw[dXC@1ZEHRwLj[/|F!V$LNEH/W4=<>R<3 LjJ RER< ?5JH@Wyw4YXC4=Vd4=[1XCRT[WiLA[E>/14<F|[!EH?NBLNE>/W4Y43B|V1J>4#<><>RwLj[ 1~ ?A[1X Q = {x7→V }M E>/W4=[E>/W4YVWJHL|LNJ>4=VWyT?jZO4=2)4=[!E R< ?A<LjywyTL<=|E>/1?A[[ 3C<E>L)E>/Wa4 9 43252?5g1 eC • R = (λxM V ) C u Γ, x : θ ` M : σ, γ. . C u Γ ` λxM : θ − → σ, δ0 a. . . C u Γ ` V : θ, δ1. C u Γ ` {x7→V }M : σ, γ. C`β6γ. C u Γ ` (λxM V ) : σ, β. C u Γ ` {x7→V }M : σ, β. /143JH4 C ` a 6 γ ?A[1X β = a ∧ δ0 ∧ δ1 1~ ?N[dX Q = V = S(`) C42£@1<E/d?`}A4 Γ = Γ0, ` : σ 5 ?N[1X C ` β 6 06 <>Rw[dZO4 C u Γ ` (unfold `) : • R = (unfold `) ! 4U/1?`}A4 u W N ? d [ X ! > < T R 1 [ O Z 4 s 48?AywJH4=?jXCF£Ljc1<4=J>}j4=XE>/d?E u R<_EH/W43JH4OLjJ>4 σ, β S = S[` V ] }?AywRXW/W4=[1ZO4 C u Γ ` V : σ, β c!FDE>/W4Y43$4#CZEΓ4=`?ª3AV43[1:Rw[Wσ,i5γJH@WyT4A s 4E>/W4=[JH43V1yT?jZO4E>/W4YV1J>CL|LNΓLN`EGF|VVWRw:[1σ,i1LN R Rw[ Π c|F ?)VWJHL|LNLNE>/WR< y?EEH43J,MG@1XWiA43254=[jE# 1~ ?N[1X Q = ((set `){x7→`}M ) /W4=J>4 ` 6∈ dom(S) ∪ loc(E[R]) E>/143[aEH/W4£V1J>L|LN_JH43V1yT?jZO43254=[jE8RT<?A< • LjywyTLR<=WE>=/d?N%xM [[ 3C< EHLE>/Wn 4 943252?gd eW1@1<>Rw[1i? 4#b? 3j43[WRT[Wi5VWJHLAV$43J>EGFAW[1?A2543yTFDEH/1?EULj[W4£Z=?N[?AXWXS/|F|V$LNE>/14=<>4=< RT[E>/14 EGF|VWRT[WiZOLA[!EH4OB|E8VWJHL}|RTXW4=XE>/d?EE>/W4=FaXCLD[WLAEZ3LA[1Z343JH8 [ ; ?D}`?AJ>R?Nc1yw4LAHJ >?yTLCZ3?NE>RTLA[aLCZ3Z3@WJHJ>RT[WiRT[E>/14)<>@WcCMG4#ZE8LA_E>/14 MG@dXCiA4=2)4=[!E 5 E>/1RT< R< 4#?A<>F5E>LVWJHL}A4 6 C u Γ, x : σ rbox ` M : σ, 1. C u Γ, ` : σ ` {x7→`}M : σ, 1. C u Γ ` %xM : σ, β. C u Γ, ` : σ ` ((set `){x7→`}M ) : σ, β. REH/ β = 16 8[W4E>/W4=[S@1<4#<E>/W4Y4=?ª3A4=[WRw[1iVWJHLAV$43J>EGF5E>LZ3LA[1Z3yw@1XW4A bRT[1?NyTyTFRw R = ((set `)V ) ?A[1X Q = V ?N[dX S 0 = S[` V ] $4Y/1?`}A4 •V$43J>LAJH2tRT[ ?NJH4?j<LAyTywL<=,bRTJP<GE#WJ>4=ij?AJHXCRT[Wi R Π 5. Γ = Γ0 , ` : σ. C u Γ ` V : σ, 1. . C u Γ ` ((set `)V ) : σ, 1. C u Γ ` V : σ, 1. $?A[1XE>/W4£J>4=VWyT?jZO4=2)4=[!EH< EHL. ¬ .
(43) 6j6.
(44) . ?A[1XWJH43i!?NJPXCRT[Wi S . . . C u Γ`S. C u Γ ` V : σ, 1. C u Γ`S. C u Γ ` S0. . /1RT<Z3LA[1Z3yw@dXC4=<EH/W4YVWJHL!LALA<>@WcCMG4=ZOEJ>4#XC@1ZOE>RTLA[ I_@CEEHRw[WiE>LAij4OEH/W43JE>/1a4 943252?A< gd ?A[1XDgdw6jC 4LjcCEH?ARw[ | [QlL B XQ gd gd M "!$# ! . ∅. . . (. . . # #. M. . . . ".
(45) . . . . '! # ! # &! # % "!$# . . . . . . ! *& # ( % loc(M ) = (∅, M ) → (S, P ) # (S, P ) # !. . ' . . . .
(46) . . ∗. . . . . . KB!EH43[1XWRw[WiE>/14)[1LNE>RTLA[LN ? ?N@WywEGFaZOLj[C1iA@1JH?NE>RTLA[SE>LXC4=?Ay, REH/aE>/14@1<>@1?Ay EGF|V$44=J>JHLAJP<31E>/1?NER< (S, E[(` V )]) ?N[1X /W43JH4 R<[WLAE? yTL|Z=?EHRwLj[=4_ZOLj@WyXY?Ny<L VWJHL}A4EH/W4_@1<>@1?NyzSGVWJHLAijJ>4#<>< VWJHLAV$43J>EGFA#c|F8<>/WL RT[Wi E>/1?NE (S, E[(unfold V )]) LjJ?A[|F5Z3LA[CdiA@WJP?EHRwLj[ (S,VP ) JH4=?AZP/d?NcWyT4 LAJ (∅, M ) /W43JH4 M R< ZOyTLj<>4=X!43RwE>/W4=J P R< ?p }?NyT@W4j!LjJ (S, P ) → (S 0 , P 0) LjJ<Lj254 (S 0 , P 0) WLjJ (S, P ) R< ?A@WyEGFj ),+. . . #" K& K"K,. [)LAJPXC4=J EHLV$43J>LAJH2 EGF|Vd4 RT[C43JH43[dZO4A4 [W434#XYEHL<>LAyT}A4 EGF|Vd4 4=!@1?NE>RTLA[1<=N?A<@1<>@1?AyN?A[1XEH/WR<,Rw[E>@WJH[£RT[|}ALjyw}j4=<<Ljyw}|RT[Wi 43$4#ZE)4=!@1?EHRwLj[1<=. F|VWRTZ=?NyTywFj?A[ 4=!@1?NE>RTLA[ (τ0 −→a σ0) = (τ1 → RT<<Ljyw}j4=Xc|F<>LAyT}|Rw[Wi τ0 = τ1 a = b ?N[dX b − σ1 ) % 1 ) [ H E W /. 4 G E | F d V U 4 w R C [ = 4 > J = 4 1 [ O Z U 4 W V > J C L 3 Z = 4 H < 3 < N 4 > < 1 / N ? T y y j w R 5 [ H E W / U 4 = Z A ? > <. 4 N L N ? [ ?Ncd<GEHJH?jZE>RTLA[ NRw[!EHJ>LCXC@1Z34U?N[543$4#ZE }?NJHR?NcWyT4 σ0 = σ 1 5 4 6 RwE>/ ?ZOLj[1<GEHJH?ARw[!E p 6 α _7CRw[1Z34 p 2?`Fc$4£4#!@1?EH4=XE>L<Lj2)4Y43$4#ZE a $42?`FD/1?`}j4E>LD43BW?N25Rw[14YRw[W4#!@1?EHRwLj[1<LA EH/W4 LjJ>2 a 6 α K. /W43JH4OLjJ>4jN /1?NE_ 4/d?`}A4E>L<>LAyT}A4 R< ?1[WRwE>48<43E A LN?A<H<4=JEHRwLj[1<E>/d?E ?NJH4 43RwE>/143JKEGF|V$44=!@1?NE>RTLA[1< !LjJ 43$4#ZE 4=!@1?NE>RTLA[1< |LAJRw[W4#!@1?NyTREHRw4#< w b]c
(47) U#ej LN RT< ?£V1?NRTJ S) LA?£Z3LA[1<E>JP?NRT[!E C ?A[1X τ =σ ?EGF|Vd4£?A[1X43$4#ZE<>@Wc1<E>RwE>@WE>aRTLA=[ bS <>@1ZP/EH/1?E C ` aSA6$αE>/1?NE8R< C ` Sτ =ASσ LjJ8?NyTy(C, EGF|V$4£4#j@d?E>RTLA[d< τ = σ Rw[ A A L J N ? T y y 3 4 $ # 4 Z U E # 4 j d @ ? > E T R A L d [ < w R [ A ? 1 [ X j L U J N ? T y y T R W [ = 4 ! 1 @ A ? w y w R E>RT4=< a 6 α RT[ A w <>LAyT@CEHRwLj[ C ` Sa = Sb V bH*hjOHb] a=b A C ` Sa 6 Sα N L T R < > E 1 / A ? D [ N ? 1 [ N L > E 1 / 3 4 J j L W [ 4 w R > E 1 / 3 4 H J U 4 O 4 C B R G < P E < ? > < W @ 1 c < > E w R > E W @ > E T R A L [ ?A[1X 0 00 <>@1ZP/5E>/1?NE (C, S) AJ (C , SRT0yw)yKZ3LA[1<>RT<E8RT[aEHJH?A[1<LAJH2)RT[Wi SL S[!0 = SEH00/1S?ER<3 U w < 1 @ > < 1 @ A ? y + < j L w y | } T R W [ i ? < 3 4 8 E A L A ? H < < = 4 J H E w R j L 1 [. < w R ! [ H E N ? [ = 4 ! W @ T R ` } A ? w y = 4 E C 0 ` S00 C /d?`}!RT[WiDE>/W45<>?A254<>LAyT@CE>RTLA[1< a<43ELA ?A<H<4=JEHRwLj[1< B /WRZPl / SRT< p ?<>LAyT@CEHRwLj[+LAJ2)LjJ>A4VWJH4=ZOR<>43yTF/d?A<UE>/W45</d?NV$4LA ? <>LAyT@CEHRwLj[ w <43E B LN?j<><>43J>E>RTLA[d< R< RT[ b]c
(48) _eV R 1. B = {t1 = τ1 , . . . , tn = τn } ∪ {p1 = a1 , . . . , pk = ak } ∪ {q1 6 α1 , . . . , qm 6 αm }. /143JH4 R E>/W4EGF|V$4Y}`?AJ>R?Nc1yw4 ti LA[WyTFLCZ3Z3@WJP< Rw[ B ?A<EH/W4YyT4O E25432cd4=J LNE>/W4Y4#j@d?E>RTLA[ ti = τi. 5 6 RwR EH/W4Y4O+4=ZOE}`?AJ>R?Nc1yw4 pj LA[WyTFLCZ3Z3@WJP< Rw[ B ?A<EH/W4Yyw43 E25432£c$43JULN EH/W4Y4=!@1?NE>RTLA[ pj = aj 5 6 1~EY<>/WLA@WyXc$4)Z3yw4#?NJUE>/1?NERw R<?D<>LAyT}A4=XLjJ>2S$E>/143[aEH/W4£Vd?NRTJ (C, S) /W43JH4 C = {q1 6 α1 , . . . , qm 6 αm} ?A[1X B R< ?525Lj<E ij43[W4=JH?Ay<Ljyw@CEHRwLj[LA S = {t1 7→τ1 , . . . , tn 7→τn } ∪ {p1 7→a1 , . . . , pk 7→ak } . /14EHJH?A[1<GLjJ>2?NE>RTLA[ LN<>4OEP<LN£?A<H<>43J>E>RTLA[1<ZOLA[d<R<GEP<38?A<@1<@d?Ny{URT['XC4#ZOLA25V$LjB<>Rw[1i?A<H<>43J>E>RTLA[1<?N[1XvJH43V1yT?jZORT[Wi }?AJ>R?NcWyT4=< c|F)E>/W4=RwJ}?NyT@W4A s 4Z=?NyTy1EH/WR< V1J>LCZO4#<><_E>/W4XC4#ZOLA25V$Lj<>REHRwLj[JH43y?E>RTLA[ A B A0 K 1~E RT<XC4#<>Z3J>RTcd4#XRT[bRwij@WJH4eC /143JH4 e <EH?N[dXW< LAJU43RwE>/W4=JU?)EGF|Vd4LjJ?N[43$4#ZE=$?N[1X x R<?)EGF|V$4LAJ 43$4#ZEU}?NJHR?NcWyT4A s 4Y JHREH4 (C, S) = Sol(A) R RT<E>/W4Z3?N[1LA[WRZ3?Ay <Ljyw@WE>RTLA[a?A<H<>L|Z3RT?NE>4#X RwE>/ ?<Ljyw}j4=XLAJH2 B <@dZP/SE>/1?NE A B∗ B . /WR<R<KMG@1<E>Rw14=Xac!FE>/14 (C, S) LjywyTL RT[Wi5VWJ>LjVd4=JEGF+ | ^Ww6j R ' &! ! "!$# B #% 5 6 RwR 5 6 A B A0 # A # ' A0 $ !$ "!$#% RwRTR 5 6 A ' &
(49) $& ! B # A # ! ! ' !$ # ' ! #( &! # # # ! # . . . .
(50) &. $%. . /$%. . . . . . . *. . . . . !&. /. . . . . . &. . . !$ & "!$#!$ t = τ t !(& & # τ !$ 1 6 0 !$ wR } & "!$# 5 6 A $' & " & ! B # !$ ! # # ' $! #( !$ $$' ! . θ rbox = (τ − → σ) a. . &. . &. &. $%.
(51) . &. . . . . . &. '. . . . . . . . . . . . . . 4 ¡%`c ¡%\\\\¡\¡ a¢¡*b \o J©ª`#K¡_zb2eo¤¡*\ _\ ¤ e(#¡ z o 4 ¡z bK* K¡ * \e # ¤¡ a = b ¢2z¡4¡\\¡ ¤¡c «. ¬2¬ ed®z¯¯o®. α=β. &. . 0=1. !. . J©ª` `z#\¡ a¢O .
(52) 6`e. b
(53) ªe] {e = e} ∪ A B A. R< [WLNE?5}?NJHR?NcWyT4 L|Z=ZO@WJP< RT[ A ?A[1X[WLNERT[ x. {e = x} ∪ A B {x = e} ∪ A. e. {x = e} ∪ A B {x = e} ∪ {x7→e}A. e. {0 6 α} ∪ A B A {1 6 (α ∧ β)} ∪ A B {1 6 α, 1 6 β} ∪ A {a 6 1} ∪ A B A {1 6 p} ∪ A B {p = 1} ∪ A a. b. → σ0 ) = (τ1 → − σ1 )} ∪ A B {τ0 = τ1 , a = b, σ0 = σ1 } ∪ A {(τ0 − {τ rbox = σ rbox} ∪ A B {τ = σ} ∪ A Figure 2: Decomposition of Assertions. . /14£VWJHL|LN,RT<8<RT25Rwy?NJUE>LEH/W4£Lj[W4YiART}A4=[Rw[8; e>~$?A[1XS43}j43[a<>Rw25VWyT43J8<RT[1ZO4£ 4£XWL[WLNE/1?`}A4EHLEH?ª3A4Z=?NJH4Y/W43JH4£?Nc$LA@WE EH/W4lS43yTyz{LAJH254=XC[W4#<>< p LNEGF|Vd4#<3943ij?AJHXWRw[WiuEH/W4aEGF|V$4=<= E>/1RT<RT<?AZOE>@1?AywyTF?<GEP?N[1XW?AJHX JH4=<>@WywE= QLAJH43L}A4=J= E>/14 XW4=ZOLj25VdL!<RwE>RTLA[VWJHL|Z34=<H<J>4=ij?NJPXCRT[Wi)4O+4=ZEP< R< Rw[1XW434=X}j43JHF<RT25VWyw4j @ DDªB ^C eC !$ # ! "!$# A A ! # ! "!$# ! '$&! ! ! # ! . A. !. . . . . A B ∗ A0. . .
(54) . '. A0. . . . ! # !
(55) ' &! ! " # ' # ! !$ $ ' !$ . . . '. . *&. .
(56) &. . . . . &.
Figure
Documents relatifs
Cette approche a l’avantage d’induire directement, et de façon transitoire (pendant 7 à 10 jours), l’expression dans l’épithé- lium pulmonaire et alvéolaire de cette
De ce point de vue, il est possible d’affirmer que la mission est accomplie : les projets de renouvellement urbain (GPV et ORU) élaborés depuis 1998 dans une centaine de villes
cosinus (en bleu à gauche) et d’une droite (en noir à droite) sur les données simulées pour 4 années à une température de 45°C, avec un bruit de fond interne réduit de 100,
Florence CARRÉ ~ Réoccupations funéraires de sépultures collectives néolithiques dans la boucle du
2 Vue plus en détails dans le chapitre 1... 2 phénomène d’agrégation des protéines amyloïdes en fibres et d’autres facteurs impor- tants doivent être pris en compte comme
In this chapter, we prove an a posteriori error estimates for the generalized overlapping domain decomposition method with Dirichlet boundary conditions on the boundaries for
Revue française d’héraldique et de sigillographie – Études en ligne – 2020-10 © Société française d’héraldique et de sigillographie, Paris,
Dans ce cas, comme les coulées du Bras de Sainte-Suzanne appartiennent au massif de La Montagne daté à plus de 2 Ma (McDougall, 1971), l’ensemble des coulées pahoehoe