Nuprl Lemma : ler_propose_all_nodes

es:EO'. nodes:bag(Id). client:Id. uid:Id  . L:Id List. succ:{i:Id| (i  L)}   {i:Id| (i  L)} . epoch:.
  (((ler_leader_ring_messages-delivered{i:l}(client;nodes;uid) es)
   ler_non_decreasing_configuration(es)
   ler_consistent_configuration(es)
   ler_non_dummy_configuration(es;nodes)
   Inj(Id;;uid)
   (L = nodes)
   no_repeats(Id;L)
   ma-ring(L;succ)
   (i:{i:Id| (i  L)} 
       e':E
        ((e1,e2:E. u:.
            ((e' <loc e1)
             (e1 <loc e2)
             (<epoch, u ler_Propose()(e2)  epoch  ler_Choose()(e2))
             (w:  Id. w  ler_Config()(e1))))
         <epoch, succ i ler_Config()(e')
         (loc(e') = i)
         (e:E. (epoch  ler_Choose()(e)  (e' < e))))))
   (e:E
        (epoch  ler_Choose()(e)
         loc(e)  nodes
         (i:||L||. (L[i] = (succ^i loc(e))))
         (i:{1..||L||}
              (e':E. (<epoch, imax-list((n.(uid L[n]))[i]) ler_Propose()(e')  (e < e')  (loc(e') = L[i])))))))


Proof not projected




Definitions occuring in Statement :  ler_non_decreasing_configuration: ler_non_decreasing_configuration(es) ler_consistent_configuration: ler_consistent_configuration(es) ler_non_dummy_configuration: ler_non_dummy_configuration(es;nodes) ler_leader_ring_messages-delivered: ler_leader_ring_messages-delivered{i:l}(client;nodes;uid) ler_Propose: ler_Propose() ler_Choose: ler_Choose() ler_Config: ler_Config() ma-ring: ma-ring(R;s) Message: Message classrel: v  X(e) event-ordering+: EO+(Info) es-locl: (e <loc e') es-causl: (e < e') es-loc: loc(e) es-E: E Id: Id listify: listify(f;m;n) select: l[i] length: ||as|| inject: Inj(A;B;f) int_seg: {i..j} all: x:A. B[x] exists: x:A. B[x] not: A squash: T implies: P  Q or: P  Q and: P  Q set: {x:A| B[x]}  apply: f a lambda: x.A[x] function: x:A  B[x] pair: <a, b> product: x:A  B[x] list: type List natural_number: $n int: equal: s = t no_repeats: no_repeats(T;l) l_member: (x  l) fun_exp: f^n bag-member: x  bs bag: bag(T) imax-list: imax-list(L)
Definitions :  all: x:A. B[x] implies: P  Q not: A squash: T member: t  T le: A  B false: False true: True prop: so_lambda: x.t[x] nat: ler_send_propose: ler_send_propose() and: P  Q gt: i > j cand: A c B es-p-local-pred: es-p-local-pred(es;P) es-locl: (e <loc e') exists: x:A. B[x] top: Top let: let ler_Nbr: ler_Nbr() or: P  Q name: Name tl: tl(l) hd: hd(l) list_accum: list_accum(x,a.f[x; a];y;l) bfalse: ff btrue: tt lt_int: i <z j bnot: b le_int: i z j ifthenelse: if b then t else f fi  ycomb: Y listify: listify(f;m;n) imax-list: imax-list(L) lelt: i  j < k int_seg: {i..j} Id: Id msg-has-type: msg-has-type(m;T) msg-body: msg-body(msg) msg-type: msg-type(msg) assert: b es-header: es-header(es;e) make-Msg: make-Msg(hdr;typ;val) ler_Propose: ler_Propose() pi2: snd(t) pi1: fst(t) bag-member: x  bs ge: i  j  mData: mData pMsg: pMsg(P.M[P]) listp: A List iff: P  Q rev_implies: P  Q Message: Message ler_leader_ring_messages-delivered: ler_leader_ring_messages-delivered{i:l}(client;nodes;uid) uall: [x:A]. B[x] messages-delivered: messages-delivered{i:l}(es;X) so_apply: x[s] uimplies: b supposing a uiff: uiff(P;Q) rev_uimplies: rev_uimplies(P;Q) ler_non_dummy_configuration: ler_non_dummy_configuration(es;nodes) ler_Choose: ler_Choose() eq_int: (i = j) primrec: primrec(n;b;c) guard: {T} sq_type: SQType(T) fun_exp: f^n compose: f o g inject: Inj(A;B;f) no_repeats: no_repeats(T;l) subtype: S  T
Lemmas :  int_seg_properties lelt_wf id_in_bag_in_list es-loc_wf event-ordering+_inc Message_wf l_member_wf ler_send_propose_wf int_seg_wf length_wf Id_wf all_wf equal_wf select_wf fun_exp_wf le_wf bag-member_wf classrel_wf ler_Choose_wf es-E_wf and_wf ler_leader_ring_messages-delivered_wf ler_non_decreasing_configuration_wf ler_consistent_configuration_wf ler_non_dummy_configuration_wf inject_wf bag_wf bag_qinc no_repeats_wf ma-ring_wf exists_wf es-locl_wf or_wf ler_Propose_wf not_wf squash_wf ler_Config_wf es-causl_wf event-ordering+_wf ler_Propose_ilf es-p-local-pred_wf ler_Config_to_Nbr ler_Nbr_wf prior-classrel-p-local-pred ler_dumEpoch_wf primed-class-opt_wf single-bag_wf lt_int_wf ifthenelse_wf simple-loc-comb-2-concat-classrel rec-combined-loc-class-opt-1-classrel imax_wf base-headers-msg-val_wf atom2_subtype_base int_subtype_base subtype_base_sq msg-body_wf2 type-valueall-type msg-type_wf eq_term_wf assert_wf pi1_wf_top name_wf base-noloc-classrel length_wf_nat listify_length non_neg_length listify_wf imax-list_wf select_member es-causle_weakening es-causl_transitivity2 fun_exp_add1-sq nat_wf ge_wf member-listify imax-list-eq-implies true_wf length_append append_wf length_cons length_wf_nil length_nil less_than_wf listify-append-last assert_of_lt_int imax-imax-list-left

\mforall{}es:EO'.  \mforall{}nodes:bag(Id).  \mforall{}client:Id.  \mforall{}uid:Id  {}\mrightarrow{}  \mBbbZ{}.  \mforall{}L:Id  List.  \mforall{}succ:\{i:Id|  (i  \mmember{}  L)\}    {}\mrightarrow{}  \{i:Id| 
                                                                                                                                                                                  (i  \mmember{}  L)\}  .
\mforall{}epoch:\mBbbZ{}.
    (((ler\_leader\_ring\_messages-delivered\{i:l\}(client;nodes;uid)  es)
    \mwedge{}  ler\_non\_decreasing\_configuration(es)
    \mwedge{}  ler\_consistent\_configuration(es)
    \mwedge{}  ler\_non\_dummy\_configuration(es;nodes)
    \mwedge{}  Inj(Id;\mBbbZ{};uid)
    \mwedge{}  (L  =  nodes)
    \mwedge{}  no\_repeats(Id;L)
    \mwedge{}  ma-ring(L;succ)
    \mwedge{}  (\mforall{}i:\{i:Id|  (i  \mmember{}  L)\} 
              \mexists{}e':E
                ((\mforall{}e1,e2:E.  \mforall{}u:\mBbbZ{}.
                        ((e'  <loc  e1)
                        {}\mRightarrow{}  (e1  <loc  e2)
                        {}\mRightarrow{}  (<epoch,  u>  \mmember{}  ler\_Propose()(e2)  \mvee{}  epoch  \mmember{}  ler\_Choose()(e2))
                        {}\mRightarrow{}  (\mneg{}\mdownarrow{}\mexists{}w:\mBbbZ{}  \mtimes{}  Id.  w  \mmember{}  ler\_Config()(e1))))
                \mwedge{}  <epoch,  succ  i>  \mmember{}  ler\_Config()(e')
                \mwedge{}  (loc(e')  =  i)
                \mwedge{}  (\mforall{}e:E.  (epoch  \mmember{}  ler\_Choose()(e)  {}\mRightarrow{}  (e'  <  e))))))
    {}\mRightarrow{}  (\mforall{}e:E
                (epoch  \mmember{}  ler\_Choose()(e)
                {}\mRightarrow{}  loc(e)  \mdownarrow{}\mmember{}  nodes
                {}\mRightarrow{}  (\mforall{}i:\mBbbN{}||L||.  (L[i]  =  (succ\^{}i  loc(e))))
                {}\mRightarrow{}  (\mforall{}i:\{1..||L||\msupminus{}\}
                            (\mdownarrow{}\mexists{}e':E
                                  (<epoch,  imax-list((\mlambda{}n.(uid  L[n]))[\mBbbN{}i])>  \mmember{}  ler\_Propose()(e')
                                  \mwedge{}  (e  <  e')
                                  \mwedge{}  (loc(e')  =  L[i])))))))


Date html generated: 2012_02_20-PM-06_08_32
Last ObjectModification: 2012_02_02-PM-02_40_33

Home Index