Nuprl Lemma : rsc5_rounds_progress
es:EO'. 
e1,e2:E. 
Cmd:ValueAllType. 
n,round1,round2:
.
  ((
z:
 
 
 
 Cmd
     
round:
      
e:E
       (e1 
loc e 
       
 (e <loc e2)
       
 z 
 rsc5_RoundInfo(Cmd)(e)
       
 round 
 rsc5_NewRoundsState(Cmd) n(e)
       
 let z,c = z 
         in let m,i = z 
            in (
(eqof(IntDeq) m n)) 
 (round < i)))
  
 (e1 <loc e2)
  
 round1 
 rsc5_NewRoundsState(Cmd) n(e1)
  
 round2 
 rsc5_NewRoundsState(Cmd) n(e2)
  
 (round1 < round2))
Proof not projected
Definitions occuring in Statement : 
rsc5_NewRoundsState: rsc5_NewRoundsState(Cmd), 
rsc5_RoundInfo: rsc5_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, 
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:
, 
int-deq: IntDeq, 
eqof: eqof(d), 
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, 
rsc5_vote'base: rsc5_vote'base(Cmd), 
rsc5_vote2retry: rsc5_vote2retry(Cmd), 
rsc5_retry'base: rsc5_retry'base(Cmd), 
false: False, 
bfalse: ff, 
btrue: tt, 
band: p 
 q, 
ifthenelse: if b then t else f fi , 
uiff: uiff(P;Q), 
guard: {T}, 
cand: A c
 B, 
so_lambda: 
x.t[x], 
member: t 
 T, 
not:
A, 
trans: Trans(T;x,y.E[x; y]), 
prop:
, 
rsc5_init: rsc5_init(), 
rsc5_update_round: rsc5_update_round(Cmd), 
assert:
b, 
rsc5_RoundInfo: rsc5_RoundInfo(Cmd), 
and: P 
 Q, 
exists:
x:A. B[x], 
implies: P 
 Q, 
vatype: ValueAllType, 
all:
x:A. B[x], 
so_apply: x[s], 
or: P 
 Q, 
uimplies: b supposing a, 
unit: Unit, 
iff: P 

 Q, 
bool:
, 
so_apply: x[s1;s2], 
uall:
[x:A]. B[x], 
rsc5_NewRoundsState: rsc5_NewRoundsState(Cmd), 
subtype: S 
 T, 
it:
Lemmas : 
event-ordering+_wf, 
valueall-type_wf, 
rsc5_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, 
rsc5_vote'base_wf, 
rsc5_vote2retry_wf, 
concat-lifting-loc-1_wf, 
simple-loc-comb-1_wf, 
rsc5_retry'base_wf, 
parallel-class-single-val, 
es-le_wf, 
Message_wf, 
event-ordering+_inc, 
es-locl_wf, 
Memory-class_wf, 
classrel_wf, 
and_functionality_wrt_uiff3, 
eqtt_to_assert, 
decidable__equal_int, 
not_over_and, 
assert_of_lt_int, 
and_functionality_wrt_uiff, 
assert_of_band, 
not_functionality_wrt_uiff, 
assert_of_bnot, 
not_wf, 
bnot_wf, 
uiff_transitivity, 
eqff_to_assert, 
bool_wf, 
lt_int_wf, 
band_wf, 
safe-assert-deq, 
equal_wf, 
and_functionality_wrt_uiff2, 
sq_stable_from_decidable, 
decidable__lt, 
decidable__assert, 
decidable__cand, 
rsc5_RoundInfo_wf, 
bag_wf, 
Id_wf, 
rsc5_init_wf, 
rsc5_update_round_wf, 
less_than_wf, 
int-deq_wf, 
eqof_wf, 
assert_wf, 
and_wf, 
Memory-class-progress
\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{}  rsc5\_RoundInfo(Cmd)(e)
              \mwedge{}  round  \mmember{}  rsc5\_NewRoundsState(Cmd)  n(e)
              \mwedge{}  let  z,c  =  z 
                  in  let  m,i  =  z 
                        in  (\muparrow{}(eqof(IntDeq)  m  n))  \mwedge{}  (round  <  i)))
    {}\mRightarrow{}  (e1  <loc  e2)
    {}\mRightarrow{}  round1  \mmember{}  rsc5\_NewRoundsState(Cmd)  n(e1)
    {}\mRightarrow{}  round2  \mmember{}  rsc5\_NewRoundsState(Cmd)  n(e2)
    {}\mRightarrow{}  (round1  <  round2))
Date html generated:
2012_02_20-PM-05_08_02
Last ObjectModification:
2012_02_02-PM-02_19_08
Home
Index