Nuprl Lemma : rsc4-vote

[Cmd:ValueAllType]. [clients:bag(Id)]. [cmdeq:EqDecider(Cmd)]. [coeff,flrs:]. [locs:bag(Id)]. [es:EO']. [e:E].
[i:Id]. [k,k1:]. [v:Cmd]. [i1:Id].
  (<i, make-Msg(``rsc4 vote``;    Cmd  Id;<<<k, k1>, v>, i1>) rsc4_Main(e)
   loc(e)  locs
       (i  locs  (i1 = loc(e)))
       (e':{e':E| e' loc e } 
           ((a2:
               b2: List
                (<a2, b2 Memory-class(rsc4_update_replica(Cmd);rsc4_init() <0, []>;rsc4_Proposal(Cmd))(e')
                 ((a2 < k)  (k  b2))))
            (b:Cmd
               ((((e = e')  (v = b)  (k1 = 0))
                   ((e1:{e1:E| e1 loc e } 
                        (((b4:
                             (b4  Memory-class(rsc4_update_round(Cmd) k;rsc4_init() 0;rsc4_RoundInfo(Cmd))(e1)
                              (b4 < k1)))
                         (<<k, k1>, v Base(``rsc4 retry``;    Cmd)(e1)
                           (b5:Id. <<<k, k1>, v>, b5 Base(``rsc4 vote``;    Cmd  Id)(e1))))
                         (e = e1)))
                     (no rsc4_Notify(Cmd;clients) k between e' and e)))
                (<k, b Base([propose];  Cmd)(e')
                  (b1:. b3:Id. <<<k, b1>, b>, b3 Base(``rsc4 vote``;    Cmd  Id)(e'))))))))


Proof




Definitions occuring in Statement :  rsc4_main: rsc4_Main rsc4_update_replica: rsc4_update_replica(Cmd) rsc4_Proposal: rsc4_Proposal(Cmd) rsc4_Notify: rsc4_Notify(Cmd;clients) rsc4_update_round: rsc4_update_round(Cmd) rsc4_RoundInfo: rsc4_RoundInfo(Cmd) rsc4_init: rsc4_init() Memory-class: Memory-class(f;init;X) make-Msg: make-Msg(hdr;typ;val) base-headers-msg-val: Base(hdr;typ) 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] cons: [car / cdr] nil: [] list: type List natural_number: $n int: token: "$token" equal: s = t l_member: (x  l) deq: EqDecider(T) bag-member: x  bs bag: bag(T) vatype: ValueAllType
Definitions :  bfalse: ff btrue: tt eq_atom: x =a y atom-deq: AtomDeq band: p  q list-deq: list-deq(eq) name-deq: NameDeq ifthenelse: if b then t else f fi  name_eq: name_eq(x;y) false: False assert: b uiff: uiff(P;Q) top: Top subtype: S  T guard: {T} sq_or: a  b name: Name prop: rev_implies: P  Q true: True so_lambda: x.t[x] implies: P  Q cand: A c B all: x:A. B[x] member: t  T or: P  Q exists: x:A. B[x] squash: T bag-member: x  bs and: P  Q classrel: v  X(e) iff: P  Q vatype: ValueAllType uall: [x:A]. B[x] pi2: snd(t) pi1: fst(t) nat: uimplies: b supposing a rev_uimplies: rev_uimplies(P;Q) sq_stable: SqStable(P) so_apply: x[s]
Lemmas :  rsc4_decided'base_wf rsc4_decision_wf concat-lifting-loc-1_wf simple-loc-comb-1_wf assert-name_eq msg-body_wf msg-type_wf msg-header_wf eo-forward-base-classrel eo-forward-loc make-Msg-equal pi2_wf squash_false decidable__es-le sq_stable_from_decidable member-eo-forward-E sq_or_sq_or subtype_rel_set sq_or_simp squash_true and_false_l rsc4_newvote_wf assert_wf rsc4_vote'base_wf rsc4_add_to_quorum_wf not_wf nat_wf poss-maj_wf pi1_wf_top length_wf and_false_r rsc4_Quorum_wf or_false_r false_wf and_true_l trivial-eq exists-elim and_true_r true_wf squash_equal squash-bag-member equal_wf squash_and deq_wf rsc4_Notify_wf no-classrel-in-interval_wf base-headers-msg-val_wf sq_or_wf rsc4_RoundInfo_wf rsc4_update_round_wf eo-forward-E-subtype event-ordering+_wf eo-forward_wf l_member_wf less_than_wf or_wf rsc4_Proposal_wf bag_wf rsc4_init_wf rsc4_update_replica_wf Memory-class_wf es-le_wf es-E_wf exists_wf squash_wf event-ordering+_inc es-loc_wf bag-member_wf rsc4_main_wf Message_wf classrel_wf make-Msg_wf valueall-type_wf Id-valueall-type sq_stable__valueall-type int-valueall-type product-valueall-type Id_wf rsc4-ilf

\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{}[i:Id].  \mforall{}[k,k1:\mBbbZ{}].  \mforall{}[v:Cmd].  \mforall{}[i1:Id].
    (<i,  make-Msg(``rsc4  vote``;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id;<<<k,  k1>,  v>,  i1>)>  \mmember{}  rsc4\_Main(e)
    \mLeftarrow{}{}\mRightarrow{}  loc(e)  \mdownarrow{}\mmember{}  locs
            \mwedge{}  (i  \mdownarrow{}\mmember{}  locs  \mwedge{}  (i1  =  loc(e)))
            \mwedge{}  (\mdownarrow{}\mexists{}e':\{e':E|  e'  \mleq{}loc  e  \} 
                      ((\mdownarrow{}\mexists{}a2:\mBbbZ{}
                              \mexists{}b2:\mBbbZ{}  List
                                (<a2,  b2>  \mmember{}  Memory-class(rsc4\_update\_replica(Cmd);rsc4\_init() 
                                                                                                                                    ɘ,  []>rsc4\_Proposal(Cmd))(e')
                                \mwedge{}  ((a2  <  k)  \mvee{}  (k  \mmember{}  b2))))
                      \mwedge{}  (\mexists{}b:Cmd
                              ((\mdownarrow{}((e  =  e')  \mwedge{}  (v  =  b)  \mwedge{}  (k1  =  0))
                                    \mvee{}  ((\mdownarrow{}\mexists{}e1:\{e1:E|  e1  \mleq{}loc  e  \} 
                                                (((\mdownarrow{}\mexists{}b4:\mBbbZ{}
                                                          (b4  \mmember{}  Memory-class(rsc4\_update\_round(Cmd)  k;rsc4\_init() 
                                                                                                                                                  0;rsc4\_RoundInfo(Cmd))(e1)
                                                          \mwedge{}  (b4  <  k1)))
                                                \mwedge{}  (<<k,  k1>,  v>  \mmember{}  Base(``rsc4  retry``;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)(e1)
                                                    \mdownarrow{}\mvee{}  (\mexists{}b5:Id
                                                              <<<k,  k1>,  v>,  b5>  \mmember{}  Base(``rsc4  vote``;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id)(e1))))
                                                \mwedge{}  (e  =  e1)))
                                        \mwedge{}  (no  rsc4\_Notify(Cmd;clients)  k  between  e'  and  e)))
                              \mwedge{}  (<k,  b>  \mmember{}  Base([propose];\mBbbZ{}  \mtimes{}  Cmd)(e')
                                  \mdownarrow{}\mvee{}  (\mexists{}b1:\mBbbZ{}
                                            \mexists{}b3:Id.  <<<k,  b1>,  b>,  b3>  \mmember{}  Base(``rsc4  vote``;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id)(e'))))))))


Date html generated: 2012_02_20-PM-04_56_41
Last ObjectModification: 2012_02_02-PM-02_16_15

Home Index