Nuprl Lemma : rsc4-retry-property

[Cmd:ValueAllType]. [cmdeq:EqDecider(Cmd)]. [locs,clients:bag(Id)]. [coeff,flrs:]. [es:EO'].
  ((StandardAssumptions(rsc4_Main) es)
   (e:E. c:Cmd. n,r:.
        (<<n, r + 1>, c rsc4_retry'base(Cmd)(e)
         (x:Id
              cs:Cmd List
               L:Id List
                ((no_repeats(Id;L)  (||L|| = ((coeff * flrs) + 1))  (||cs|| = ||L||))
                 (i:||L||
                     ((e':E. <x, make-Msg(``rsc4 vote``;    Cmd  Id;<<<n, r>, cs[i]>, L[i]>) rsc4_Main(e'))
                      L[i]  locs))
                 (c = (snd(poss-maj(cmdeq;cs;hd(cs))))))))))


Proof




Definitions occuring in Statement :  rsc4_stdma: StandardAssumptions(rsc4_Main) rsc4_main: rsc4_Main rsc4_retry'base: rsc4_retry'base(Cmd) make-Msg: make-Msg(hdr;typ;val) Message: Message classrel: v  X(e) event-ordering+: EO+(Info) es-E: E Id: Id select: l[i] hd: hd(l) length: ||as|| int_seg: {i..j} nat: uall: [x:A]. B[x] pi2: snd(t) all: x:A. B[x] exists: x:A. B[x] squash: T implies: P  Q and: P  Q apply: f a pair: <a, b> product: x:A  B[x] cons: [car / cdr] nil: [] list: type List multiply: n * m add: n + m natural_number: $n int: token: "$token" equal: s = t no_repeats: no_repeats(T;l) listp: A List poss-maj: poss-maj(eq;L;x) deq: EqDecider(T) bag-member: x  bs bag: bag(T) vatype: ValueAllType
Definitions :  guard: {T} ge: i  j  rsc4_QuorumState: rsc4_QuorumState(Cmd) cand: A c B bfalse: ff btrue: tt lt_int: i <z j bnot: b le_int: i z j ifthenelse: if b then t else f fi  prop: false: False not: A le: A  B lelt: i  j < k ycomb: Y so_lambda: x.t[x] name: Name es-header: es-header(es;e) rsc4_headers_no_inputs: rsc4_headers_no_inputs() true: True member: t  T hd: hd(l) select: l[i] int_seg: {i..j} length: ||as|| and: P  Q exists: x:A. B[x] squash: T all: x:A. B[x] implies: P  Q vatype: ValueAllType uall: [x:A]. B[x] uiff: uiff(P;Q) rsc4_vote'base: rsc4_vote'base(Cmd) so_lambda: x y.t[x; y] iff: P  Q rev_implies: P  Q Id: Id bag-member: x  bs rsc4_newvote: rsc4_newvote(Cmd) sq_or: a  b or: P  Q so_apply: x[s] uimplies: b supposing a std-ma: StandardMessageAutomaton(X;hdrs) message-constraint: message-constraint{i:l}(es;X;hdrs) sq_stable: SqStable(P) rsc4_retry'base: rsc4_retry'base(Cmd) rsc4_stdma: StandardAssumptions(rsc4_Main) nat: so_apply: x[s1;s2] sq_type: SQType(T) decidable: Dec(P) subtype: S  T msg-header: msg-header(m)
Lemmas :  assert-deq-member not_functionality_wrt_iff assert_of_bnot assert_of_eq_int and_functionality_wrt_uiff uiff_transitivity and_functionality_wrt_iff assert_of_band iff_weakening_uiff iff_transitivity listp_wf hd_wf poss-maj_wf pi2_wf bag-member_wf select_wf Id-valueall-type make-Msg_wf all_wf length_wf no_repeats_wf int_seg_wf no_repeats_cons cons_wf_listp mul_bounds_1a not_wf and_wf id-deq_wf deq-member_wf bnot_wf eq_int_wf band_wf assert_wf deq_wf bag_wf nat_wf rsc4_stdma_wf rsc4_retry'base_wf event-ordering+_wf subtype_rel_set eo-forward-E-subtype equal_wf decidable__es-le es-le_wf sq_stable_from_decidable member-eo-forward-E eo-forward_wf rsc4_quorum_invariant rsc4-retry es-loc_wf rsc4_main_wf Id_wf classrel_wf es-causl_wf Message_wf event-ordering+_inc es-E_wf exists_wf squash_wf rsc4_headers_no_inputs_wf msg-header_wf l_member_wf lelt_wf name_wf select_member int-valueall-type product-valueall-type base-noloc-classrel-make-Msg valueall-type_wf sq_stable__valueall-type base-headers-msg-val_wf eo-forward-base-classrel eo-forward-le select_cons_tl eclass_wf true_wf int_subtype_base subtype_base_sq decidable__equal_int product_subtype_base atom2_subtype_base es-le-loc rsc4-vote

\mforall{}[Cmd:ValueAllType].  \mforall{}[cmdeq:EqDecider(Cmd)].  \mforall{}[locs,clients:bag(Id)].  \mforall{}[coeff,flrs:\mBbbN{}].  \mforall{}[es:EO'].
    ((StandardAssumptions(rsc4\_Main)  es)
    {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}c:Cmd.  \mforall{}n,r:\mBbbZ{}.
                (<<n,  r  +  1>,  c>  \mmember{}  rsc4\_retry'base(Cmd)(e)
                {}\mRightarrow{}  (\mdownarrow{}\mexists{}x:Id
                            \mexists{}cs:Cmd  List\msupplus{}
                              \mexists{}L:Id  List
                                ((no\_repeats(Id;L)  \mwedge{}  (||L||  =  ((coeff  *  flrs)  +  1))  \mwedge{}  (||cs||  =  ||L||))
                                \mwedge{}  (\mforall{}i:\mBbbN{}||L||
                                          ((\mdownarrow{}\mexists{}e':E
                                                  <x,  make-Msg(``rsc4  vote``;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id;<<<n,  r>,  cs[i]>,  L[i]>)>  \mmember{}
                                                    rsc4\_Main(e'))
                                          \mwedge{}  L[i]  \mdownarrow{}\mmember{}  locs))
                                \mwedge{}  (c  =  (snd(poss-maj(cmdeq;cs;hd(cs))))))))))


Date html generated: 2012_02_20-PM-05_00_55
Last ObjectModification: 2012_02_02-PM-02_16_44

Home Index