From 795013e772dbc626ffaf321376a971b74df91cf1 Mon Sep 17 00:00:00 2001 From: navid Date: Tue, 23 Sep 2008 20:13:56 +0000 Subject: [PATCH] *** empty log message *** --- Robust/Transactions/Notes/draft.pdf | Bin 142980 -> 146979 bytes Robust/Transactions/Notes/draft.tex | 60 +++++++++++++++++----------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/Robust/Transactions/Notes/draft.pdf b/Robust/Transactions/Notes/draft.pdf index 622c55cabe297fed2e0d10b79777d0e3349940c9..4e54ee3f00c7bb8b515578ccb03ab0f10b5e2983 100644 GIT binary patch delta 54174 zcmV)LK)Jt!-3X)n2#_NKF)%WhK>-3NkxmVNVlwOpUt5)fH@34$C0^HBTYJdn&?b9E zEK}r!q&%K~AG}DB5@)iTi_{GQXf*l*8tCs2um1F2WjkdfV^h65-0hUgqFm>@EVhv{ z>F!YN{uQWwsFY5EzjS@?%dz#tu>ber?;xA(R2&s?p-?v7g&H&^nxz)p-|fRpso>3j zKD22T4E{f7-07q_&oCGS{86^g;t}P%0!7R*vzhNp7x=!1u>c=4jfO%ZgdS(y1w#td(U(2~p(e{pi^#gO1uH{eDem3m$!{|OY^>Fm)gT%nPZsbwr zPoNDPH+pngV$ml4G`N$DMD@|3OTN}!&t!Kk;lKIvjOOu_j)hj+wCbVn?t6ENfXT+e z_vG{=cpp~DWEG=TaK{53&_;pKJ+L{w@lsz;_Ao$&O3-c_PZ zlt1Fu9H055s9Rc{u+fiwJ$f|R=-}<_J32RAq`bH;GI1V~Hk`+tI6n`}F81RG*ECnU z*jgm5w?1rnbvSnC1~+GtU>IvuW=skJtcp83V;8#k>qSIoEOULx*snC{`%v?K2hlR1aUF}?>coWqoV}O5Z#ckZC0S{ z3bBy06lY~jUZeX$N7^#|uJ2AfV!r|h{`iD77e8_2Xn+1C$a*8@$xhAk9=B<5vfX8!4_sHVXr4RcYD#4*J$ zCL@%q5oxgHS>!c=Eo2kdw~Cnenz7LM_I^ByT0{xiwbq+KK9{dAOB=ZHPH@Ise$}at z@@ziH`~T_DO>l-fQIRPoc;-uZnmEwg@XX;r^EEt+gy9MQKM%ft5C1`6{OTK~{Z?@1 zQ4Ypjz?o>&M+XWzCABm&;L(>0&;pS`3xf-2>Eu*lBXHU3mS7<3={CZ_unpoQi!Nq8 z3*I?me*!4Y@Vh~)hUD~DKfbRU{}B^nSM!DD`xhXNLci>D6Cj+P=cB!*2F}N>VfxAY zFE6M^ti5Zi1FbNBmuFk9P??F+i!=UT+$n&s2B{V9K6IFO6Uh17dC}%k63B9^otss}VOq9x#QjJa z;-hfd9YQ2#7bQ^&@e!&h%QC6$zLi*X`D)8uCXJv9-!0gGzvF{632M4ZI5)Z4S{*d? z7rD`KHf0r_{Tct%74eTEM+t|=ST?gbghS6lZlK_+ArGRfR~0vMUWMRoC01{`68exh zwZF%cX)YK!2wMUuE3zylT)+*hkP8vT%WnBOk5XfH8s>(%TF<3+%6B;qKJ$in0#zE7 zHB>2cd4yztDOA!$L6k0gokV(_db#1)?R=b-o?cd zYSLuHM!GAi)?&>&h|NtgOCJdc-=@ovSECP~skmdwsz${5-p_~u;-dLu!qCapYN9yF zuF3@0V{TGY1s7v$uM^S#@PKiEg);6&0v@f)m6PxuBFbjysnp{xn4y3>WJEFfa*v!O>4r71NFrzVz)v zJy$kkkD*#}i_E&WYk4dzsI{5uS}8BF=4Hcf%ilrjU#Wv}H(Bt+lap&(-~Z+Um@~am zD$tvM6-E&mYo`40exGI70w%b#IhBV$&Es{Ec!zhd+N>{P7@KA7s|;P%*wkfG&*I>c zD{)4>t4fsS_wd1@(efYlokt9vQA$k~OsE9;G|Cl`wRZ1XlbaJ~u{_$5(GV zaMl)51eiceYkAedisS9VW|Ki-Ht!T?pBQz2IK+nwx=m?z*cbMuFnIA%h_A5e>=!q} zJ2wZW-ty$)2|&%S32+ZdjMk2l4ZR9nY=_xnJ&Mkn%4uzhREq|`T2{Os%6ToUoX$%Q z#G>QL>((w8gqghQ*vlIgPB8w2ZuxJS2eW{L4R=iF?E!7Ibg2xYf?{8mtlO$C`B3bC zgc{W8B{JJ^GY>(gkiZn6*;}BolQGKM1;YFlz}C4ze1SsZi}g7#tGT&`TW13unQU$z zJ|MVl7Q89TXWklSY$Bw`n4K2v9OPr zt()0dr3~O^xP;Qy`^Xd#*T~q5RZD;*)v--3>YZc?cQbTX9%|MaeD9Z#tN#K))hDR4 ze+Vi80ysIBKmh_Nf6Z7+liM~7zVENl>`9(kGvY&{v^_PGq)iWPntCROrU$J>+nU(Y zR+4wK|GoeL+LBkvB<-c+gGdl0@%jMJFIQJD-pDkPi71jnMypLEr4_l#Bbyi@br!9v z=+AiQ%BC;ZL)|uurA~BAUlk8KM}&t(n#JY*$kTR1UtU*nfBP|!x_1MS%f4?HOO?m# zx*S|Z#K(Hrg;VREXqD^NU41{a9nCwpExT$V)~G9 zp^XK6CB>BW7MkH3lWuE85qR8T|9zd~FW$`O_ z4;RVUHI-}De^0!BYEm$zNlZB4cCpL~8LzyOCbjXWx~XV{W;0;O3J(SIghTz}!GRNK zi0U~S(jj2`!D|KfNQIGRYM8w%doaB*5D>n;^!F7ka@h}5ylmh`{-5w70K(xB)hcZa~C2*K|a43A_quEY#OvQ4}J{vJonbRE!Fh6^sg%<=#9SV ziS^V(gbHcN<#vP$pkdnZL5J&}mQnEG{Nxv$e~q#rPB)mg`~X~E-N0CbM;W`)Qg+1C zM)82t^S+9{I|#9nV>vwUC^}t3PORM2(RUd3PwaI1+;{GwZjb$*$!m;D9|uF&HA?kg z4uus8u1pa_*bF>8lxqy2UEMH&#oJRH6AfHguZNx{!*0qM0FK%t+56q(XTD?acxmq* ze^5KOCypsldv-JnKK3)!k5ir41=)P1@U;r7#~EuLCtc@y3X8T0dx0H%+J>Fw@XUI_ z!V2BjY+ZkgVqLvnT}kj`63IwvBW#vN+U5eFu|8b=eU%99SHss6rAn=znN$Yqi?;_E zy=t$1hhI2w8BScDk9_G%{1md`-c*Vte^q3e*PrkAWkXRv1J*19?~f~(PU8e*ZiaPZ(VDS{1df24RZ zA-sSdQVe1bD+XVNOB_frT9**)RoF>oAth6RCWn&nximH>Fd`qTIFl(lP}-~3ZYFvo zO;NJUv8hARi9*UEwcZddWLG5hL~7cB2qn$GYGdBIz|!c4Xpot10{|tAw%^xn#lY#e|=O^02aQeg1)8af;1Xz5#?`SuPQ=MZ4rKjXf-54>}IUM|D! ze?W7KrRCF{qzVEnFrt6w&N4!oQ_Bph$Rv-eS+$jrg&rLzZwT%>h2GERe;2LH&iUv` z*)BO2%RQGE4>er7#4)n9^R2BR&5?eVxsHoL} z1l<#b(qeY*a0R}r^7v;=f8sZ|l%IJne2qppHEc^ZU!p~B?PXT>Z2^`=^c)R1t=e(5 z!Wju`!?n-W$4}ic*BN-H7b{SAz9Y6a4D!(JK(chR-8yx^MKLXmNbsmfRQHZqutCIc z*fOfe8VXhCHjuQzkj#b-#u~%ik2{Vgf5bq0!ck?o^saBaJGA$Vf3Uv)LqB6Jf)aFk z=y=om?y13g)pL8)@|RjI1N|Uct*OrqlYa}r_xe}p$*+ma-!jvU7N=A>2W`mX#R&uN z7fUcpIUBXgi2Tg?T_Cuvo3?U4ED*I`bfoeJ0)`i`OHH6L@ga+_olXA+>dpmpq{i|w zBaBK!o}6mrPi}Yve>Z7xB470mr#beg_^5|>!Q7QL6ZYHmR{t9Ol4_2Yp#cKIsgmKO z^ks^{3po*Le>#mZs&rZvAq}eHoCbX(S@Ze`FgIb1H;f>x2rl^T=)I~48GQ{%nd}2i z%b_Gv<6IT)X@e9V$#cMOwQw|gZBxC2XvW82e@*{WscifN!43VcJ?{Cq z(}N$`sE}Y5YPk+aA3Q2N$Nm9Tuwd2- zWo~41baG{3vs)2G)dMmyIhR2J0w{lVSWA=JHVnS!S9o%gXKGgu%9heo(>8s~^fAd! zduV&$TC}Z+EN(?P+w|8LFH)3OK9K}L5Cnk_Am2W``tn^?uCjDnr**b^IIgm6zpe6W zwNKSHD|V}gX7y+CYkx57O|j3C@l2gOv45pm;mpY7)^R%+-FyMv3P?9ox_f_K=levj z^D6l)w8lKGH!wDRV|tvBHMZwX##8r0xD=pLWI!j=fB|UTw*byCdFYV)I z{rAI9t8}%=ifyTCK8&-&W80sAr&fs@^=Lp^wq0*_d6~RhS4Cn6oGf6!j=A{MKsnm3 zv#97Z?$^S`UXYcO40>#B@4$ZuDy{rN6`Ko2@o8X4hlKVcp2VV+p8M^R>JMy>qD~IB zKic7fBb6qjWh!q6ga*!(slFXiMY1Mxo%I;_2I2Gq{ZwbP8+i(i%o2f)@&-SH*UV(| zX-%hQI_$Kd^$~dUx=J4LWS_auH=Ea>%b3zM5_$a7wvT4EGa)+J3}S{x44pxygLBp^&jXiLp#d&+t{BEpIdSX|F^|q|TJAtc;`sxd5bj{0Jy8i- zF^}iGhH&-^@J5%!s%?L+0@D$sg6lSK+TJ$iD;Vu|i503eU|5-e2+318FowYnEVHCT zmZ|MdMM`AoE_?PpXvJ-Jv6BH(91g|_$3-_rcrCYhZP-2%o_IMR5e>S@_Pgz_F6UPn zc^Zaih7n;fHtNy`YB>wkl6Qla!hKk0314*$C$%Euphd(ZUp;>h8gpnH)9^rxw1d4| zTIshvcz|Hu5=gZSxhZ-Z10D8be@g+5u00*c@$h0acgekmk*UwX&v*xPEkr&quCWf! zCgi~!CLjiO)_63{a$Ik{wGi{OECF+})-yZ82mqsN|C1Od!MLfG!DKmLvi+2j2m)|B$_4vyrNDcWELfC2j>adRC3B;SxI>1phn<{Jk20OJ z-4(q8N71F^m16iodVF>qKjCdRjgl)z0y_qUNTs}s z1O2^JcL0Ar(kp*G)vU$=GNjxRQ?7tlC1noGOx{{}_e65Q?&!SUqk4-TU+sK>nFE5J zU)~?`2$mDG?oZ_G)y@|UFiplolDj^6bD`OZ%QAmYKqMq0fR30bct(mC=+6QQ7{P9f z6{nA~LivgiI%sY*W|>2F3rVcv`cJB=PCqg6xrHn+Ur&eQ?t3oBpvM`t2L7&V5rj@W z=BycW9tV5*VgVrOI#ixx`n3b=jYE`x?R%_;u#WiIVxlGzCk+Z*9Dj2byW`-)nV}T> zZw-I9zqjC?o#8?N2^4U+30#u9k0?7pBkiOYNOC6VIoS*Q0S$1VVK-T2h1CQxWHabB zdenF!yDB2O>j{oBx|==4vlcbgVg|xWm3tTfO6)JhF&O4J*%x+x<}6R^h2$br1_wn3 z&aOtLdjCM7E&O$c+UT~vHUC`Ofnps}DMWwo*o9)DVM)DYbZIqD`uLX0gwYzOIYlcf z<~m90049f_eH!iH=H-FASuK_a5>%gb#%3|aP%cs7rohEHlf;EURVQyXg*L@i9|Fh` zpi}VqI|Tt3>qO|R3Q~1c1+k0P(Z>rZ50gvTUR`%*Yvx7zBPX zfex*&J6OH@1w_8VTwN!>Sbpq(Fl2v?k35=^DDp@tQ2QLJz)2;C&ZZ~d!claf7eaWK zv-TU<``J^T>)@wY7yw1+CES>Ra4wB}8Hl~3P&`~=KPs5i^!UZWm7hiQR0*#U?6@F>9S?_v7X&IB zs`HdD=i=~QdN6zJq>rZX5)Xf0aQozf!O0j8BYqu3I1j8b&et=XudDf=T_qrfod&-S ziz<0In>*{KI(X?7Z3q87=l|j)UhzZCf2;|5Di50IrAj_mm50lso}~hf}#kE3om zmB2bJ>*o+zGenjIktL;lT7xqx1H& zH);{ys2C=1?*8uK(<|Sn_{&GF=ElFe(mR6azOlNI`hXOE^Ufp=2&P9@gMxn zTWwUaRiGFtRN%y`?;c+L4|oZKu9I8u>H;@0mqAqlDSy>iO>f*b5WVMDEPT?USw;L3 z#S}TTh*KaalA_rnho%R4C3}U)k|Akh_}^!SLuw_NYrAPsAeSYV91cgrH#3j?b^Gka z8>Ut)iA`eIYJ0h2LdH5(E1k%giFCCsR)0r)v)=H`MDN!u8un#(TlM97!=mRfY%~th zeETV3qJJ+3{Fg;v)=EWreSk%7zUry%hpMhg=+Jy_+BMIj+s10kqJ7!yN}3#6lD~jP zdnNfry_hb_q3ky6f3|N|80uw`ebhRuD!ml zhQTV*+Its`9%y8`ug;==-=eeYg8q(P!#{c7S67W!g`TtR-c27*&gq?;9E;-hM(H%V zY`fVq9lhXX$Dqb!<2%K>;cmSJ7WRAmsP*%UZxE)o8qm-rqnAf4h9B+NP($ z4?}m@4Tr7_83CWjVL#=RZ};xw4ye5b?db2C#@ZVMr`JwnyZnMW7c}SobnR!m(n;k# zwU=#OQ)u)rt%p6fxsDT)kqvBvcAMx!S$}^1l&IvgfM50!4h(>`CGf)ZJ!=py<=|%B zd72pvj6ZKD14{ib=A!PG6ax}(V06{MTx7L@^n~M!}NP4thjD5#yUd$(M`?^ z76vU&TZ7GL=(9q?$#((C9 zd}qCdiH^XVOwqtu7H8TV(Hj7`iltIZe7|gMPx}FMcmQoGi6IO7#jir@8H*Jg^?w1c zrS!E)bSQ&1r!gN@UIllZS{&2q35Zhx$2LPA76m+{G0>;*!)36SV*DOl16DzB8?K)2 z$XlD)I*Sh2xX6b*^eK=CxJvyZG=DFcgTN#F-Vs$zTa-V;zch_nH+noSH$k2*Z9-20 zLczoZ87h?%BiJb;#_VRbJ9Ov~E}0+jWh-=ekO4FC7-TY;emf+&V1DsWA^jTxLd=D_ zBEhhq<`@vrW%@yAqDqs^0VNy?e=CPKRbBppVc%91;bpggWFQ)pSs?T>2!B87F1&{6 z5w_cv1wj#t`|_y5Zp>1M>?Z+J{QKHyAqJ;_bgMtuR0@5YWR>wr7V5w_Gf+!KKp{KJ z2iL`1U*(=!DIKe9cCc4nehreq#i~nci6PysGl}d_CY;hdN>Em{U2holZ}+zDA)T`Z zK*t*ZT`EBt;L?d#qj2Sv4S%2)a(18ZEHlDw+Q#ogZPO0p>Ht+ad)E?(UYD*+HU*H- zyE9kGJE~7-AMvX^rIAirQ!&IUVHeRHKMPk3$k%#2_^T5rH;^&JBHK!b^FIM(kE1$E z&AdWpA%LZElClNBDu`8PqOvHVyiAV4GlX>>ha38h?so_2l}g1(wFvL7Lpf76lO!}5ez zBqzy@&o}q|!4}kmya7&lfLdv(e^_euG`1s?Sn!9_z$S%1Doy7>`84PV31C$ZlBqdX zzZZ>C26B;{*B9mL%Xw35EukL+K3roou*f+VI9X!;Qx0E58-MJ^r?~GAJLDUCpc)#p zDUuoLmDF*06}u<$DuZhra1RqU<`O|5G8T<2b8tLBPcN0?4yh)yGbuR6#`oOpJ=efAaYXsooep!N*`0yQ$1 zK>-3Nf6W-nj^j4+-d|z#Nd{s@d`Of!rv#G#*+VAT=|v8iJ*X|Z&9p7eO7b-N?^6#_ z54SoySZsj6fXONri&e#XQQzI)eEoy88)<|#x!T+xHd0zqsA6MNBc#qZ_x0wt#B6s` zsx0}zpWHjw?>ql#XuIuBYn{CRm`dHdfuRpWe>FIseu6ohf7AnoPM6XS zEzsB?8c!n%71lOG);0-ieT64HGvKQ3f8^;j01o7GK;E}!H{;p!+=u-<)NXLy**Byz z9yRbdYKl9W-I~Co`alKNrAx!fVJj070p=~J9;UwM@c}N+ChaAXlaja}2bJ`}3HKgs zW%j)Gd7FV~r;D3d00}7Sc+)5?o-^GG+e z9zLv-H?&Dw62E2=1Lt^%2jn7iNFo+u$BMKpn3voERc?|W4>)GQ za{{xdmu!(i?E!8eZ=-ya#_!$KA0n&%)| z?|Hn1%hpKMQ*a?{RdxbYPh5q+>j^o7Du@J(}@vd?BsZToIDXf94S@+ zdnHVWTU;^fbX6T) zbzzrV#!@B)QEq=~=VVj|e`L}?uAQhUUYnV}>nnd}rb7ybjjk9)oct7^S@FJ_8QNISmr_O!$?WI4x@G{5n5c$toVXV9z zB^shcDV4lO!JmEapzToxjy^D+g@Z|m8l2+&E2S4X0P(MK03y|G;5hJ2;r7g$`_anNTF9A5yq4ebzkWU-nP|HHr}lpApP5FBN#-g4Cpy@FZv3VL~W)Om82 zqQ@;V7H<%pHYiq9*zH2ZlbP_iiQUFxo}wluBX1` z85X4{p0&7^7-}CD3g*NdvjksR zT|b1ySOD!*09RZ&Tx)pK!L{`l@M!2ie}~8O{9eucEi=A9@Qxp;Kf8Ny3zMY<|Qk&Q{MTy14Un*S}*;~VV8_Oa#CMOwiLD) z*)u=re>dB3LJ&WEka$(c3@A|k_4Zh(1*O@JL~6a>37w84?@6bh1EGQarA=d7nyUgF zSL8*=68C{D+hjmybC$ov&qhMY@Db0i37-qA^+o|~LN*^u3VJEO1=&yA-i4=EkwXW5 zRk5hH*YsKD&8{XZMLP8-|M#Xw{kNuOy{joee~Ij>+OrPLqzz4c;|E`z7>LQ#h6mxC zaJB~7ZcLRWrGbUnI1^%G;RGB$WUPKOjY;X-hrT`GBV(Y-Bi_t4^!(Gaq8<+jHEPmF zPsKrpZw`R^*ZKpLP95mjoA2*$B-jpIeIvCIHV510TIgc4Ki~Z423(p}<4DMyf-l`D zEjc2;{_(6f@7kMR;1~JrBE#Lp@jLopz07T;5eDL+gm}>5V{jH_`vd*J#PG9%|8++d zGch1AAa7!7AUr$@FHB`_XLM*FF_%680xN&jSW9o?HW0q=ukeuuYL@RuZ`)#9w3ifx zfjxA4(Ar9(g)9Y<+%*5bGbANTDU;ayXuB7iq=w`?znS6p+gIQI$nAqoD#jb1ne!PE&-)>PBWS&c^m5ExIxe`s085^+p@=q1+8|WoRRD+pKvI9LLw`+ilu5piq+_ z5?O8b)hL5Z3W1$TA+RE8(z=^#og3<<1=U;1yo=obbgcGeT{W;#TTgh-T1HbTKAdOTF1i_r74EU)btqs)3azL(U8A$t0ErThxZh`0A}IHAb{x-%W6HdDPs>7k& zSH)0*;Uh%{$A(b^Y2_7BaUr+~4(6~P4ryjPF!5}(q(bXu`jL?Pl+utc3gkv$;;8y; zbO2I$cNqq1svUm`1QCDz^@RSH!yiATjxXVuK`8-BRDu#*xGRQ!)K?ilg%V)HA*dh& zQ7|!=(2cdsMMXLUo3cp~m6k`tc zJDRnG&?&R=wh`dlQZ9>w^TJLA$9gI37}di5U&9Vda_&iiH7Yj|l)@-hvd4NKr-w3B z;4mtu;J_JV(VXWfa2+}2%xqLZ8DTDriRC2*@XXo&v_8rvHYhg1AX)(>qei7ptRJen zKD7)vD}v4pzYKr)14l1AAPhg=0Y7uutCpxAJEiDn&>SuMJNR~A4Yzrz9JS7U&MGpR z)|^$ds9DVd5CSa@X5dAUvJJ7Mi~-x1hcMJ*g<(v}XE4~8&{wG@)D)2jO@m+FH2dw^ zDbf{9U+l*3=244`m4$byKuHJ3444|pc>?T*B4}1w0+oNyO;;Q!LgW+um_r3!T#GQ_ z&!|Nh`)E)E>$=J9U4a7Q!>lLm$^t zI*gMi(1?FKMul)+U)6%vFwbWNbUyPhcg>bs?&j@IUp2eQ1XZ$3tTn;%40>eima$uh zwi-ck2>{dcQZ9l8@Fl*0tmau+1$gZYCR1o$w_VoPq@Y&Y9F+f~yF)Bz&-IJk;9-xT z_~!I{hVO(T>#UyYQ}>>IKeN=?-1C{#4njkV@u53xUkpWDy*lrOOao{dwYYn=0YRX= zfn(s>(X|YIdi7@e>TjMaH!TWfZe(+Ga%Ev{3T19&Z(?c+Gcc2H?;sR2F(5D?QVK6p zWpi(Ja${w4ATl|V%KttAIhR;Q0V|U&2^W`yMgcFAcK0C_Gcq7BAa7!73R^TZH7+(F zH8C+RHkZ�Tq`UM*-vkG`2_qg8>0Gw}eRnRssPwx7$kri2?yPw`EQNy8!_>w;@mg zZ2|!~w~tZ*bOHi2FqbcJ0TmE8HwrIIWo~D5Xfhx+G&nJq!T}TnH!?9Xmq7snDSww` zTvYAW#z9Izx}*n@7KWj_ySqbTXqaIbIz>uAKuWqxK#=Zk=|)Lu2?=Qs-g%z$o=4wv zzP`V`KkWay*S)T5uY2ten}JS4n_bcxVhNUmxWL]UZpw5pT=h!X(f;N+CTVqlPl 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 g0`Fn^_hohhQ_^nFceQNLf*UrEI2= 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 qAR8x$kNE#zMVFY556;oa(BYGln}dld+ diff --git a/Robust/Transactions/Notes/draft.tex b/Robust/Transactions/Notes/draft.tex index 5f81420e..01dc7c4b 100644 --- a/Robust/Transactions/Notes/draft.tex +++ b/Robust/Transactions/Notes/draft.tex @@ -5,50 +5,50 @@ {Correctness}: A sequence of transactions are said to be consistent if and only if a total ordeing of them according to precedence relationship can be established that demonstrates the same behavior as the execution of the program. Behavior for an operation means the data it has read or wants to write. Demonstrating the same behavior thus means all the read operations should still see the same data in the new sequence as they have seen in the actual sequence. However writs always writes the same value no matter what. Hence the behavior of a write operation is not alterable.\\ -\textbf{Def 1-} \emph{Set of Primitve Operations}: Operations are taken from the set \{forcereadoffset(filedescriptor), writeoffset(filedescriptor), readdata(inode, offset, length), writedata(inode, offset, length), commit\}.\\ +\textbf{Def 1-} \emph{Set of Primitive Operations}: Operations are taken from the set \{force-readoffset(filedescriptor), writeoffset(filedescriptor), readdata(inode, offset, length), writedata(inode, offset, length), commit\}.\\ \textbf{Def 2-} \emph{Set of User-Level Operations}: User-Level Operations are taken from the set \{Read(fildescriptor), GetFilePointer(filedescriptor), Write(filedescriptor), Seek(filedescriptor), EndTransaction\}.\\ \textbf{Note 1-} \emph{Assignment Operations Need Not Be Shown In $OP_{excecuted}$}: Operations like offset = offset + length and other assignment operations in $OP_{T_i}$ need not be shown in the actual sequence of operations namely $OP_{executed}$ that consists of operations executed by different transaction so far, the reason is simply all such operations are local to the transaction and do not affect any other transaction's state and hence do not restrict the commution of other operations in any manner.\\ -\textbf{Note 2} \emph{ForcedReadOffset(fd)}: Reads the offset for the filedescriptor and makes the transaction bound to this value.\\ +\textbf{Note 2} \emph{Forced-Readoffset(fd)}: Reads the offset for the filedescriptor and makes the transaction bound to this value.\\ \section{FileDescriptor Offset State per Transaction}: -Each filedescriptor has an assosiated offset with it, within each transaction this offset can be in 4 different states, these states indicate the dependency the transaction has on the value of this offset:\\ +Each filedescriptor has an associated offset with it, within each transaction this offset can be in 4 different states, these states indicate the dependency the transaction has on the value of this offset:\\ -1- \textbf{No Access}: This is the default state for all filedescriptors in a transaction and is changed as soon as there is an acsess to the the descriptor within the transaction (any of the use-level operations are invoked).\\ +1- \textbf{No Access}: This is the default state for all filedescriptors in a transaction and is changed as soon as there is an access to the the descriptor within the transaction (any of the use-level operations are invoked).\\ -2- \textbf{None}: Meaning there is no dependency for any operation in this transaction on the value of the offset assosiated with this descriptor regarding other transactions.\\ %This stems from the fact that the offset has been assigned an absolute value in this transaction and no operation reads on the value the offset had before this transaction accessed it.\\ +2- \textbf{None}: Meaning there is no dependency for any operation in this transaction on the value of the offset associated with this descriptor regarding other transactions.\\ %This stems from the fact that the offset has been assigned an absolute value in this transaction and no operation reads on the value the offset had before this transaction accessed it.\\ 3- \textbf{Write Dependency}: This kind of dependency means there is at least one operation in $OP_{T_i}$ having an unknown offset(essentially a write operation) value as argument. The value of this unknown offset will be determined at commit instant. \\ -4- \textbf{Read Dependency}: This kind of dependency means there is at least one operation acting on an offset value for fd, where the value for fd has been determined by a previously commited transaction.\\ +4- \textbf{Read Dependency}: This kind of dependency means there is at least one operation acting on an offset value for fd, where the value for fd has been determined by a previously committed transaction.\\ The state machine below depicts the behavior of the user level operations regarding how the offset corresponding to that transaction changes: \\ \includegraphics[scale = 0.3]{hello.png}\\ -\textbf{Explanation}: Whenever the offset status for the transaction goes to "Read Dependence", a "forcedreadoffset(fd)" operation is issued immdeiately preceding the operation that caused this transformation. The forced-radoofset(fd) is only issued if there is not a forcedofset(fd) in the $OP_{T_i}$ already.\\ +\textbf{Explanation}: Whenever the offset status for the transaction goes to "Read Dependence", a "forced-readoffset(fd)" operation is issued immediately preceding the operation that caused this transformation. The forced-radoofset(fd) is only issued if there is not a forced-readoffset(fd) in the $OP_{T_i}$ already.\\ -\textbf{Axiom For Diagram:} If the first access to a filedescriptor is a $Seek(fd)$, then the following operation on $fd$ gets the offset value from the assignment made by the $Seek(fd)$ and adavances the offset. Hence, the follwoing operations get this offset and the offset value the filedescriptor had had before this transaction accesses fd is never refrenced (thats why it is an absorbing state). This conforms to the defnition of "None" state.\\ +\textbf{Axiom For Diagram:} If the first access to a filedescriptor is a $Seek(fd)$, then the following operation on $fd$ gets the offset value from the assignment made by the $Seek(fd)$ and advances the offset. Hence, the following operations get this offset and the offset value the filedescriptor had had before this transaction accesses fd is never referenced (thats why it is an absorbing state). This conforms to the definition of "None" state.\\ -If $Read(fd.inode, offset, length)$ or $GetFilePointer(fd)$ is the first access made by this transaction, the offset is read (since the data needs to be read at this instant), this offset should be the one committed by a previously committed transaction (as this is the first access to $fd$ in this transaction). Once the offset is read, it is always dependent on this value (hence an absorbing state). For all the following operations, the offset value is known. This conforms to the defenition that there is at least (the first read ever on fd by this transaction) one operation that acts on the offset value for fd and rules out the "Write Dependency" and "None" states.\\ +If $Read(fd.inode, offset, length)$ or $GetFilePointer(fd)$ is the first access made by this transaction, the offset is read (since the data needs to be read at this instant), this offset should be the one committed by a previously committed transaction (as this is the first access to $fd$ in this transaction). Once the offset is read, it is always dependent on this value (hence an absorbing state). For all the following operations, the offset value is known. This conforms to the definition that there is at least (the first read ever on fd by this transaction) one operation that acts on the offset value for fd and rules out the "Write Dependency" and "None" states.\\ -If $Write(fd.inode, offset, length)$ is the first access made to fd by this transaction, then the offset to write to, can be decided at commit instant since the Write functions means start writing at the most recent committed fd.offset, hence offset realization can be postponed till commit instant. Any Writes or Seeks would still leave this dpendency, since operations after a Seek act on absoulte offset, and Writes preceding any Seek can all determine the offset at commit instant for the same reason as before.\\ +If $Write(fd.inode, offset, length)$ is the first access made to fd by this transaction, then the offset to write to, can be decided at commit instant since the Write functions means start writing at the most recent committed fd.offset, hence offset realization can be postponed till commit instant. Any Writes or Seeks would still leave this dependency, since operations after a Seek act on absolute offset, and Writes preceding any Seek can all determine the offset at commit instant for the same reason as before.\\ -However, if a Read on the same fd in the transaction is invoked there are two possiblities:\\ +However, if a Read on the same fd in the transaction is invoked there are two possibilities:\\ -1- A Seek precedes this Read, hence the offset value is absolute and is not read, however the ranges that are supposed to be written by Writes preceding the Seek, may overlap with the range Read is willing to Read from, and according to Rules(Most Recent Changes Should Be Visible) if thats the case the Read should be able to see this data, this suggests the ranges that all the Writes are going to write to should be realized now and this requires settling down on a value for all file descriptors offsets for this inode at this instant. Based on these, the most recent commited offset value for all these descriptors should be assigned to the offsets for the Writes that for the first time accessed the descriptor. Other for writes prceding the Seek, get this value as being advance by prior writes.\\ +1- A Seek precedes this Read, hence the offset value is absolute and is not read, however the ranges that are supposed to be written by Writes preceding the Seek, may overlap with the range Read is willing to Read from, and according to Rules(Most Recent Changes Should Be Visible) if thats the case the Read should be able to see this data, this suggests the ranges that all the Writes are going to write to should be realized now and this requires settling down on a value for all file descriptors offsets for this inode at this instant. Based on these, the most recent committed offset value for all these descriptors should be assigned to the offsets for the Writes that for the first time accessed the descriptor. Other for writes preceding the Seek, get this value as being advance by prior writes.\\ -2- No Seek precedes the Read, hence the offset value the Read has to read from is unknown, since preceding Writes to fd have all used unknown offsets, the offset value given to Read is an unknown once, however it has to be known, follwos that the offset value for the Write that for the first time accessed this fd should be decided upon and as shown before, the value should be the most recent commited offset value for fd. The offset value for this read or other writes, is the offset value obtained as being advamced by those operations.\\ +2- No Seek precedes the Read, hence the offset value the Read has to read from is unknown, since preceding Writes to fd have all used unknown offsets, the offset value given to Read is an unknown once, however it has to be known, follows that the offset value for the Write that for the first time accessed this fd should be decided upon and as shown before, the value should be the most recent committed offset value for fd. The offset value for this read or other writes, is the offset value obtained as being advanced by those operations.\\ -The two same possiblities exist when a GetFilePointer operation is invoked on the same fd:\\ +The two same possibilities exist when a GetFilePointer operation is invoked on the same fd:\\ -1- If a Seek precedes it, then the offset value becomes absolute and hence the getFilePointer could retreive the value assigned by Seek.\\ +1- If a Seek precedes it, then the offset value becomes absolute and hence the getFilePointer could retrieve the value assigned by Seek.\\ -2- Otherwise, the offset value is still unknown, hence to be able to determine the offset value at this instant, the value obtained by reading the last commited offset value should be assigned to the offset value. for the first Write to $fd$.\\ +2- Otherwise, the offset value is still unknown, hence to be able to determine the offset value at this instant, the value obtained by reading the last committed offset value should be assigned to the offset value. for the first Write to $fd$.\\ @@ -72,7 +72,7 @@ The user-level operation cab be broken as follows:\\ 3- GetFilePointer(fd):\\ -\hspace{8mm} \{\{$forcedreadoffset(fd)$ issued as demonstrated at the state diagram if any, it is issued when the state for fd in this transaction is not in "No Dependeny" or "Write Dependency 2"\}\}\\ +\hspace{8mm} \{\{$forcedreadoffset(fd)$ issued as demonstrated at the state diagram if any, it is issued when the state for fd in this transaction is not in "No Dependency" or "Write Dependency 2"\}\}\\ 4- Read(fd):\\ @@ -95,28 +95,42 @@ The user-level operation cab be broken as follows:\\ \hspace{8mm} $\forall fd_i$ such that the state for $fd_i$ in this transaction is not "No State", $EndTransaction= \{\{{writeoffset(fd_i)}\}, commit\}$\\ -Essentially for any fd that the correspondent state digaram in the transactions shows is in a state other than "No Access", a writeoffset(fd) is issued while committing.\\ +Essentially for any fd that the correspondent state diagram in the transactions shows is in a state other than "No Access", a writeoffset(fd) is issued while committing.\\ \section{FileDescriptor Offset State per writedata Operation} -Any writedata operation within a transaction gets $fd$ and an offset as arguments. There writes are reflected in the commit instant, howeverthe offset to write to as we saw earlier for some writes i sdetermined at commit instant and for other is bound to a specefic value bfore commit instant. We should have a policy to be able to diffrenciate between these two. The 3 rules below odes this.\\ +Any writedata operation within a transaction gets $fd$ and an offset as arguments. There writes are reflected in the commit instant, however the offset to write to as we saw earlier for some writes i s determined at commit instant and for other is bound to a specific value before commit instant. We should have a policy to be able to diffrenciate between these two. The 3 rules below odes this.\\ -1- If the state for $fd$ a given FileDescriptor in a transaction is "Write Dependency 1" all writes by that transaction to that $fd$ will get the value of the offset to write to at commit instant (since in "Write Dependency 1" all writes are at unknown offsets) .\\\ +1- If the state for $fd$ a given distinguish in a transaction is "Write Dependency 1" all writes by that transaction to that $fd$ will get the value of the offset to write to at commit instant (since in "Write Dependency 1" all writes are at unknown offsets) .\\\ -2- If the state for $fd$ is "Read Dependency" or "No Dependency" then all writes on $fd$ within this transaction should be done at offset detrmined for them when they were invoked (since all writes are to known offsets either determined by the transaction itself or a previously committed transaction).\\ +2- If the state for $fd$ is "Read Dependency" or "No Dependency" then all writes on $fd$ within this transaction should be done at offset determined for them when they were invoked (since all writes are to known offsets either determined by the transaction itself or a previously committed transaction).\\ -3- Otherwise, if the state is "Write Dependency 2", then if the $writedata(fd.inode,...)$ operation precedes a $Seek(fd)$ then the offset is determined at commit instant (since all such writes are at unknown offset). Otherise, the writes shold be done at the offset decided upon earlier (the write after a Seek write the iffset detrmined by Seek and hence to a known offset).\\ +3- Otherwise, if the state is "Write Dependency 2", then if the $writedata(fd.inode,...)$ operation precedes a $Seek(fd)$ then the offset is determined at commit instant (since all such writes are at unknown offset). Otherwise, the writes should be done at the offset decided upon earlier (the write after a Seek write the offset determined by Seek and hence to a known offset).\\ We could also think of this as a state machine for each writedata operation. The state diagram is created for each operation when it is first invoked and is subject to two things:\\ 1- If there $\exists Seek(fd) or forced-readoffset(fd)\in OP_{T_i}$ such that those precede the $writedata(fd.inode,....)$ then the initial state in the state diagram for this writedata is Absolute.\\ -2- Otherwise the initial state is Unknown offsset.\\ +2- Otherwise the initial state is Unknown offset.\\ \includegraphics[scale = 0.3]{hello2.png}\\ +\section{Commuting Operations} + +As we saw earlier in Rule 4, any two operations can commute across each other unless they are subject to one of the two conditions in Rule 3.\\ + +\textbf{Guideline 1}: \emph{Commuting forced-readoffset Operations}: A $forced-readoffset(fd) \in OP_{T_i}$ can go past a $commit_{T_j}$ if and only $\not \exists writeoffset(fd) in OP_{T_j}$.\\ + +\textbf{Axiom}: It follows immediately from Rule 4 and conditions in Rule 3, that this $forced-readoffset(fd)$ can go pats the commit. What remains to be proven is $ \not \exists writeoffset(fd) \in OP_{T_i}$ such that it precedes +$forced-readoffset(fd)$, as this would mean even if $\exists writeoffset \in OP_{T_j}$ still the $forced-readoffset(fd)$ could commute with $commit_{T_j}$.\\ + +This stems from the definition of EndTransaction operation, and the state diagram. A $forced-readoffset$ can be issued at any place in $OP_T{i}$ however it would always precede the $writeoffset(fd) \in OP_{T_i}$ since this is last operation in $OP_{T_i}$ before $commit$.\\ + +\textbf{guideline 2}: \emph{Commuting readdata Operations}:% A $readdata(fd_i.inode,offset_i, lenght_i) \in OP_{T_i}$ can go past a $commit_{T_j}$ if and only if $\not \exists writedata(fd_j.inode, offset_j, length_j) in OP{T_j}$ such that fd_j.inode= fd_i.inode and the two ranges (offset_i, offset_i + length_i) and (offset_i, offset_j + length_j) have an intersection.\\ + +%\textbf{Axiom}:\ This is \end{document} -- 2.34.1