Nuprl Lemma : ler_list_Propose

es:EO'. nodes:bag(Id). client:Id. uid:Id  .
  (((ler_leader_ring_message-constraint{i:l}(client;nodes;uid) es)
   ler_non_dummy_configuration(es;nodes)
   ler_non_dummy_request(es))
   (e:E. epoch,k:. e':{e':E| (e' <loc e)} . l:Id.
        (<epoch, k ler_Propose()(e)
         <epoch, l ler_Config()(e')
         (e1,e2:E
              L:E  E List
               (epoch  ler_Choose()(e1)
                <epoch, loc(fst(L[0])) ler_Config()(e2)
                ((e2 <loc e1)  loc(e1)  nodes)
                (<e, e'= last(L))
                (e1 < fst(L[0]))
                <epoch, uid loc(e1) ler_Propose()(fst(L[0]))
                (snd(L[0]) <loc fst(L[0]))
                (i:{1..||L||}
                    ((fst(L[i - 1]) < fst(L[i]))
                     <epoch, loc(fst(L[i])) ler_Config()(snd(L[i - 1]))
                     ((snd(L[i]) <loc fst(L[i]))  loc(snd(L[i - 1]))  nodes)
                     <epoch, imax-list([uid loc(e1) / firstn(i;map(p.(uid loc(fst(p)));L))])
                       ler_Propose()(fst(L[i])))))))))


Proof not projected




Definitions occuring in Statement :  ler_non_dummy_request: ler_non_dummy_request(es) ler_non_dummy_configuration: ler_non_dummy_configuration(es;nodes) ler_leader_ring_message-constraint: ler_leader_ring_message-constraint{i:l}(client;nodes;uid) ler_Propose: ler_Propose() ler_Choose: ler_Choose() ler_Config: ler_Config() 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 select: l[i] firstn: firstn(n;as) map: map(f;as) length: ||as|| int_seg: {i..j} pi1: fst(t) pi2: snd(t) all: x:A. B[x] exists: x:A. B[x] squash: T implies: 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] cons: [car / cdr] subtract: n - m natural_number: $n int: equal: s = t listp: A List last: last(L) bag-member: x  bs bag: bag(T) imax-list: imax-list(L)
Definitions :  all: x:A. B[x] implies: P  Q and: P  Q ler_non_dummy_configuration: ler_non_dummy_configuration(es;nodes) ler_non_dummy_request: ler_non_dummy_request(es) squash: T gt: i > j member: t  T nat: ge: i  j  le: A  B not: A false: False prop: true: True exists: x:A. B[x] listp: A List length: ||as|| subtype: S  T top: Top ycomb: Y so_lambda: x.t[x] assert: b ifthenelse: if b then t else f fi  btrue: tt iff: P  Q rev_implies: P  Q select: l[i] last: last(L) lt_int: i <z j bfalse: ff le_int: i z j bnot: b pi1: fst(t) pi2: snd(t) int_seg: {i..j} lelt: i  j < k or: P  Q imax-list: imax-list(L) firstn: firstn(n;as) map: map(f;as) append: as @ bs hd: hd(l) tl: tl(l) list_accum: list_accum(x,a.f[x; a];y;l) name: Name label: ...$L... t strongwellfounded: SWellFounded(R[x; y]) uall: [x:A]. B[x] uimplies: b supposing a es-p-local-pred: es-p-local-pred(es;P) uiff: uiff(P;Q) ler_dumEpoch: ler_dumEpoch() rev_uimplies: rev_uimplies(P;Q) so_apply: x[s] sq_type: SQType(T) guard: {T} sq_stable: SqStable(P) bool: unit: Unit es-locl: (e <loc e') ler_Propose: ler_Propose() single-valued-classrel: single-valued-classrel(es;X;T) it:
Lemmas :  es-causl-swellfnd nat_properties ge_wf nat_wf le_wf es-causl_wf ler_Propose_from_Propose_or_Choose classrel_wf ler_Config_wf ler_Propose_wf es-locl_wf ler_leader_ring_message-constraint_wf es-E_wf event-ordering+_inc Message_wf Id_wf gt_wf bag-member_wf ler_Choose_wf bag_wf event-ordering+_wf prior-classrel-p-local-pred ler_Nbr_wf es-loc_wf ler_Nbr_from_Config es-locl_transitivity1 append_wf length-append top_wf assert_of_lt_int length_wf non_neg_length length_wf_nat assert_wf lt_int_wf listp_properties pos_length2 int_seg_properties firstn_wf map_wf pi1_wf_top length_firstn map_length select_wf last_wf Error :pi2_wf,  int_seg_wf imax-list_wf listp_wf select-append subtype_base_sq bool_subtype_base iff_imp_equal_bool btrue_wf iff_functionality_wrt_iff true_wf iff_weakening_uiff int_subtype_base bfalse_wf false_wf bool_wf le_int_wf bnot_wf sq_stable_from_decidable decidable__es-locl uiff_transitivity eqtt_to_assert eqff_to_assert assert_functionality_wrt_uiff bnot_of_lt_int assert_of_le_int es-le-loc map_append_sq firstn_append length-map list_decomp hd_wf tl_wf select0 single-valued-classrel-base imax_wf squash_wf firstn_decomp select-map length_nil length_cons length_append imax-imax-list-left cons_wf_listp event_ordering_wf

\mforall{}es:EO'.  \mforall{}nodes:bag(Id).  \mforall{}client:Id.  \mforall{}uid:Id  {}\mrightarrow{}  \mBbbZ{}.
    (((ler\_leader\_ring\_message-constraint\{i:l\}(client;nodes;uid)  es)
    \mwedge{}  ler\_non\_dummy\_configuration(es;nodes)
    \mwedge{}  ler\_non\_dummy\_request(es))
    {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}epoch,k:\mBbbZ{}.  \mforall{}e':\{e':E|  (e'  <loc  e)\}  .  \mforall{}l:Id.
                (<epoch,  k>  \mmember{}  ler\_Propose()(e)
                {}\mRightarrow{}  <epoch,  l>  \mmember{}  ler\_Config()(e')
                {}\mRightarrow{}  (\mdownarrow{}\mexists{}e1,e2:E
                            \mexists{}L:E  \mtimes{}  E  List\msupplus{}
                              (epoch  \mmember{}  ler\_Choose()(e1)
                              \mwedge{}  <epoch,  loc(fst(L[0]))>  \mmember{}  ler\_Config()(e2)
                              \mwedge{}  ((e2  <loc  e1)  \mwedge{}  loc(e1)  \mdownarrow{}\mmember{}  nodes)
                              \mwedge{}  (<e,  e'>  =  last(L))
                              \mwedge{}  (e1  <  fst(L[0]))
                              \mwedge{}  <epoch,  uid  loc(e1)>  \mmember{}  ler\_Propose()(fst(L[0]))
                              \mwedge{}  (snd(L[0])  <loc  fst(L[0]))
                              \mwedge{}  (\mforall{}i:\{1..||L||\msupminus{}\}
                                        ((fst(L[i  -  1])  <  fst(L[i]))
                                        \mwedge{}  <epoch,  loc(fst(L[i]))>  \mmember{}  ler\_Config()(snd(L[i  -  1]))
                                        \mwedge{}  ((snd(L[i])  <loc  fst(L[i]))  \mwedge{}  loc(snd(L[i  -  1]))  \mdownarrow{}\mmember{}  nodes)
                                        \mwedge{}  <epoch,  imax-list([uid  loc(e1)  /  firstn(i;map(\mlambda{}p.(uid  loc(fst(p)));L))])>  \mmember{}
                                              ler\_Propose()(fst(L[i])))))))))


Date html generated: 2012_02_20-PM-06_06_41
Last ObjectModification: 2012_02_02-PM-02_40_07

Home Index