Nuprl Lemma : rsc4-vote2

[Cmd:ValueAllType]. [clients:bag(Id)]. [cmdeq:EqDecider(Cmd)]. [coeff,flrs:]. [locs:bag(Id)]. [es:EO']. [e:E].
[rcvr:Id]. [num,rnd:]. [c:Cmd]. [sndr:Id].
  (<rcvr, rsc4_vote'msg(Cmd;<<<num, rnd>, c>, sndr>) rsc4_Main(e)
   loc(e)  locs
       (rcvr  locs  (sndr = loc(e)))
       (e':{e':E| e' loc e } 
           ((max:. missing: List. (<max, missing rsc4_ReplicaState(Cmd)(e')  ((max < num)  (num  missing))))
            (c':Cmd
               ((((e = e')  (c = c')  (rnd = 0))
                   ((e1:{e1:E| e1 loc e } 
                        (((maxr:. (maxr  rsc4_NewRoundsState(Cmd) num(e1)  (maxr < rnd)))
                         (<<num, rnd>, c rsc4_retry'base(Cmd)(e1)
                           (sndr':Id. <<<num, rnd>, c>, sndr' rsc4_vote'base(Cmd)(e1))))
                         (e = e1)))
                     (no rsc4_Notify(Cmd;clients) num between e' and e)))
                (<num, c' rsc4_propose'base(Cmd)(e')
                  (rnd':. sndr':Id. <<<num, rnd'>, c'>, sndr' rsc4_vote'base(Cmd)(e'))))))))


Proof




Definitions occuring in Statement :  rsc4_vote'msg: rsc4_vote'msg(Cmd;vote) rsc4_main: rsc4_Main rsc4_ReplicaState: rsc4_ReplicaState(Cmd) rsc4_Notify: rsc4_Notify(Cmd;clients) rsc4_NewRoundsState: rsc4_NewRoundsState(Cmd) rsc4_propose'base: rsc4_propose'base(Cmd) rsc4_retry'base: rsc4_retry'base(Cmd) rsc4_vote'base: rsc4_vote'base(Cmd) Message: Message no-classrel-in-interval: (no X between start and e) classrel: v  X(e) eo-forward: eo.e event-ordering+: EO+(Info) es-le: e loc e'  es-loc: loc(e) es-E: E Id: Id sq_or: a  b uall: [x:A]. B[x] exists: x:A. B[x] iff: P  Q squash: T or: P  Q and: P  Q less_than: a < b set: {x:A| B[x]}  apply: f a pair: <a, b> product: x:A  B[x] list: type List natural_number: $n int: equal: s = t l_member: (x  l) deq: EqDecider(T) bag-member: x  bs bag: bag(T) vatype: ValueAllType
Definitions :  rsc4_propose'base: rsc4_propose'base(Cmd) rsc4_vote'base: rsc4_vote'base(Cmd) rsc4_retry'base: rsc4_retry'base(Cmd) rsc4_NewRoundsState: rsc4_NewRoundsState(Cmd) rsc4_ReplicaState: rsc4_ReplicaState(Cmd) rsc4_vote'msg: rsc4_vote'msg(Cmd;vote)
Lemmas :  rsc4-vote

\mforall{}[Cmd:ValueAllType].  \mforall{}[clients:bag(Id)].  \mforall{}[cmdeq:EqDecider(Cmd)].  \mforall{}[coeff,flrs:\mBbbZ{}].  \mforall{}[locs:bag(Id)].
\mforall{}[es:EO'].  \mforall{}[e:E].  \mforall{}[rcvr:Id].  \mforall{}[num,rnd:\mBbbZ{}].  \mforall{}[c:Cmd].  \mforall{}[sndr:Id].
    (<rcvr,  rsc4\_vote'msg(Cmd;<<<num,  rnd>,  c>,  sndr>)>  \mmember{}  rsc4\_Main(e)
    \mLeftarrow{}{}\mRightarrow{}  loc(e)  \mdownarrow{}\mmember{}  locs
            \mwedge{}  (rcvr  \mdownarrow{}\mmember{}  locs  \mwedge{}  (sndr  =  loc(e)))
            \mwedge{}  (\mdownarrow{}\mexists{}e':\{e':E|  e'  \mleq{}loc  e  \} 
                      ((\mdownarrow{}\mexists{}max:\mBbbZ{}
                              \mexists{}missing:\mBbbZ{}  List
                                (<max,  missing>  \mmember{}  rsc4\_ReplicaState(Cmd)(e')  \mwedge{}  ((max  <  num)  \mvee{}  (num  \mmember{}  missing))))
                      \mwedge{}  (\mexists{}c':Cmd
                              ((\mdownarrow{}((e  =  e')  \mwedge{}  (c  =  c')  \mwedge{}  (rnd  =  0))
                                    \mvee{}  ((\mdownarrow{}\mexists{}e1:\{e1:E|  e1  \mleq{}loc  e  \} 
                                                (((\mdownarrow{}\mexists{}maxr:\mBbbZ{}.  (maxr  \mmember{}  rsc4\_NewRoundsState(Cmd)  num(e1)  \mwedge{}  (maxr  <  rnd)))
                                                \mwedge{}  (<<num,  rnd>,  c>  \mmember{}  rsc4\_retry'base(Cmd)(e1)
                                                    \mdownarrow{}\mvee{}  (\mexists{}sndr':Id.  <<<num,  rnd>,  c>,  sndr'>  \mmember{}  rsc4\_vote'base(Cmd)(e1))))
                                                \mwedge{}  (e  =  e1)))
                                        \mwedge{}  (no  rsc4\_Notify(Cmd;clients)  num  between  e'  and  e)))
                              \mwedge{}  (<num,  c'>  \mmember{}  rsc4\_propose'base(Cmd)(e')
                                  \mdownarrow{}\mvee{}  (\mexists{}rnd':\mBbbZ{}.  \mexists{}sndr':Id.  <<<num,  rnd'>,  c'>,  sndr'>  \mmember{}  rsc4\_vote'base(Cmd)(e'))))))))


Date html generated: 2012_02_20-PM-04_56_48
Last ObjectModification: 2012_02_02-PM-02_16_17

Home Index