Nuprl Lemma : ohc_v2_strict_inc_rounds

es:EO'. e1,e2:E. Cmd:ValueAllType. n,round1,round2:.
  ((z:    Cmd
     round:
      e:E
       (e1 loc e 
        (e <loc e2)
        z  ohc_v2_RoundInfo(Cmd)(e)
        round  ohc_v2_NewRoundsState(Cmd) n(e)
        let z,c = z 
         in let m,i = z 
            in (round < i)  (n = m)))
   (e1 <loc e2)
   round1  ohc_v2_NewRoundsState(Cmd) n(e1)
   round2  ohc_v2_NewRoundsState(Cmd) n(e2)
   (round1 < round2))


Proof not projected




Definitions occuring in Statement :  ohc_v2_NewRoundsState: ohc_v2_NewRoundsState(Cmd) ohc_v2_RoundInfo: ohc_v2_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 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 :  all: x:A. B[x] vatype: ValueAllType implies: P  Q exists: x:A. B[x] and: P  Q ohc_v2_RoundInfo: ohc_v2_RoundInfo(Cmd) ohc_v2_update_round: ohc_v2_update_round(Cmd) ohc_v2_init: ohc_v2_init() prop: trans: Trans(T;x,y.E[x; y]) not: A member: t  T so_lambda: x.t[x] cand: A c B ifthenelse: if b then t else f fi  band: p  q btrue: tt uiff: uiff(P;Q) assert: b guard: {T} bfalse: ff squash: T true: True false: False ohc_v2_retry'base: ohc_v2_retry'base(Cmd) ohc_v2_prop2retry: ohc_v2_prop2retry(Cmd) ohc_v2_proposal'base: ohc_v2_proposal'base(Cmd) name: Name name_eq: name_eq(x;y) name-deq: NameDeq list-deq: list-deq(eq) atom-deq: AtomDeq eq_atom: x =a y ohc_v2_NewRoundsState: ohc_v2_NewRoundsState(Cmd) uall: [x:A]. B[x] so_apply: x[s1;s2] bool: unit: Unit uimplies: b supposing a or: P  Q iff: P  Q sq_type: SQType(T) so_apply: x[s] it: subtype: S  T
Lemmas :  Memory-class-progress and_wf less_than_wf equal_wf ohc_v2_update_round_wf ohc_v2_init_wf Id_wf bag_wf ohc_v2_RoundInfo_wf decidable__cand decidable__lt decidable__equal_int sq_stable_from_decidable band_wf eq_int_wf lt_int_wf bool_wf uiff_transitivity assert_wf eqtt_to_assert assert_of_band and_functionality_wrt_uiff assert_of_eq_int assert_of_lt_int iff_transitivity bor_wf bnot_wf le_int_wf or_wf not_wf le_wf iff_weakening_uiff eqff_to_assert assert_functionality_wrt_uiff bnot_thru_band squash_wf true_wf bnot_of_lt_int assert_of_bor or_functionality_wrt_uiff assert_of_bnot not_functionality_wrt_uiff assert_of_le_int not_over_and subtype_base_sq int_subtype_base classrel_wf Memory-class_wf es-locl_wf event-ordering+_inc Message_wf es-le_wf parallel-class-single-val ohc_v2_retry'base_wf simple-loc-comb-1_wf concat-lifting-loc-1_wf ohc_v2_prop2retry_wf ohc_v2_proposal'base_wf disjoint-classrel-symm simple-loc-comb-1-concat-disjoint-classrel base-disjoint-classrel assert-name_eq name_wf simple-loc-comb-1-concat-single-val single-valued-classrel-base single-valued-bag-single es-E_wf exists_wf ohc_v2_NewRoundsState_wf valueall-type_wf event-ordering+_wf

\mforall{}es:EO'.  \mforall{}e1,e2:E.  \mforall{}Cmd:ValueAllType.  \mforall{}n,round1,round2:\mBbbZ{}.
    ((\mexists{}z:\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd
          \mexists{}round:\mBbbZ{}
            \mexists{}e:E
              (e1  \mleq{}loc  e 
              \mwedge{}  (e  <loc  e2)
              \mwedge{}  z  \mmember{}  ohc\_v2\_RoundInfo(Cmd)(e)
              \mwedge{}  round  \mmember{}  ohc\_v2\_NewRoundsState(Cmd)  n(e)
              \mwedge{}  let  z,c  =  z 
                  in  let  m,i  =  z 
                        in  (round  <  i)  \mwedge{}  (n  =  m)))
    {}\mRightarrow{}  (e1  <loc  e2)
    {}\mRightarrow{}  round1  \mmember{}  ohc\_v2\_NewRoundsState(Cmd)  n(e1)
    {}\mRightarrow{}  round2  \mmember{}  ohc\_v2\_NewRoundsState(Cmd)  n(e2)
    {}\mRightarrow{}  (round1  <  round2))


Date html generated: 2012_02_20-PM-05_50_19
Last ObjectModification: 2012_02_17-PM-10_30_32

Home Index