Nuprl Lemma : rsc4_strict_inc_rounds

es:EO'. e1,e2:E. Cmd:ValueAllType. n,round1,round2:.
  ((x:    Cmd
     e:E
      round:
       (e1 loc e 
        (e <loc e2)
        x  rsc4_RoundInfo(Cmd)(e)
        round  rsc4_NewRoundsState(Cmd) n(e)
        let ni,c = x 
         in let a1,a2 = ni 
            in (round < a2)  (n = a1)))
   (e1 <loc e2)
   round1  rsc4_NewRoundsState(Cmd) n(e1)
   round2  rsc4_NewRoundsState(Cmd) n(e2)
   (round1 <z round2))


Proof




Definitions occuring in Statement :  rsc4_NewRoundsState: rsc4_NewRoundsState(Cmd) rsc4_RoundInfo: rsc4_RoundInfo(Cmd) Message: Message classrel: v  X(e) event-ordering+: EO+(Info) es-le: e loc e'  es-locl: (e <loc e') es-E: E lt_int: i <z j assert: b all: x:A. B[x] exists: x:A. B[x] implies: P  Q and: P  Q less_than: a < b apply: f a spread: spread def product: x:A  B[x] int: equal: s = t vatype: ValueAllType
Definitions :  eq_atom: x =a y atom-deq: AtomDeq list-deq: list-deq(eq) name-deq: NameDeq name_eq: name_eq(x;y) name: Name rsc4_vote'base: rsc4_vote'base(Cmd) rsc4_vote2retry: rsc4_vote2retry(Cmd) rsc4_retry'base: rsc4_retry'base(Cmd) false: False rev_implies: P  Q true: True squash: T iff: P  Q bfalse: ff guard: {T} btrue: tt band: p  q ifthenelse: if b then t else f fi  uiff: uiff(P;Q) cand: A c B so_lambda: x.t[x] member: t  T not: A trans: Trans(T;x,y.E[x; y]) prop: rsc4_init: rsc4_init() rsc4_update_round: rsc4_update_round(Cmd) assert: b rsc4_RoundInfo: rsc4_RoundInfo(Cmd) and: P  Q exists: x:A. B[x] implies: P  Q vatype: ValueAllType all: x:A. B[x] so_apply: x[s] sq_type: SQType(T) or: P  Q unit: Unit rev_uimplies: rev_uimplies(P;Q) uimplies: b supposing a bool: so_apply: x[s1;s2] uall: [x:A]. B[x] rsc4_NewRoundsState: rsc4_NewRoundsState(Cmd) subtype: S  T it:
Lemmas :  event-ordering+_wf valueall-type_wf rsc4_NewRoundsState_wf exists_wf es-E_wf single-valued-bag-single single-valued-classrel-base simple-loc-comb-1-concat-single-val name_wf assert-name_eq base-disjoint-classrel simple-loc-comb-1-concat-disjoint-classrel disjoint-classrel-symm rsc4_vote'base_wf rsc4_vote2retry_wf concat-lifting-loc-1_wf simple-loc-comb-1_wf rsc4_retry'base_wf parallel-class-single-val es-le_wf Message_wf event-ordering+_inc es-locl_wf Memory-class_wf classrel_wf int_subtype_base subtype_base_sq not_over_and implies_functionality_wrt_iff assert_of_le_int not_functionality_wrt_uiff assert_of_bnot or_functionality_wrt_uiff assert_of_bor bnot_of_lt_int true_wf squash_wf bnot_thru_band assert_functionality_wrt_uiff eqff_to_assert iff_weakening_uiff le_wf not_wf or_wf le_int_wf bnot_wf bor_wf iff_transitivity assert_of_eq_int and_functionality_wrt_uiff assert_of_band eqtt_to_assert uiff_transitivity bool_wf eq_int_wf band_wf ifthenelse_wf sq_stable__assert assert_of_lt_int decidable__equal_int decidable__lt decidable__cand rsc4_RoundInfo_wf bag_wf Id_wf rsc4_init_wf rsc4_update_round_wf equal_wf less_than_wf and_wf lt_int_wf assert_wf Memory-class-progress

\mforall{}es:EO'.  \mforall{}e1,e2:E.  \mforall{}Cmd:ValueAllType.  \mforall{}n,round1,round2:\mBbbZ{}.
    ((\mexists{}x:\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd
          \mexists{}e:E
            \mexists{}round:\mBbbZ{}
              (e1  \mleq{}loc  e 
              \mwedge{}  (e  <loc  e2)
              \mwedge{}  x  \mmember{}  rsc4\_RoundInfo(Cmd)(e)
              \mwedge{}  round  \mmember{}  rsc4\_NewRoundsState(Cmd)  n(e)
              \mwedge{}  let  ni,c  =  x 
                  in  let  a1,a2  =  ni 
                        in  (round  <  a2)  \mwedge{}  (n  =  a1)))
    {}\mRightarrow{}  (e1  <loc  e2)
    {}\mRightarrow{}  round1  \mmember{}  rsc4\_NewRoundsState(Cmd)  n(e1)
    {}\mRightarrow{}  round2  \mmember{}  rsc4\_NewRoundsState(Cmd)  n(e2)
    {}\mRightarrow{}  (\muparrow{}round1  <z  round2))


Date html generated: 2012_02_20-PM-04_57_53
Last ObjectModification: 2012_02_02-PM-02_16_26

Home Index