Nuprl Lemma : rsc5_quorum_progress
es:EO'. 
e1,e2:E. 
Cmd:ValueAllType. 
cmdeq:EqDecider(Cmd). 
ni:
 
 
. 
zh,z:
 
 Cmd? 
 (Id List).
  ((
zi:
 
 
 
 Cmd 
 Id
     
z:
 
 Cmd? 
 (Id List)
      
e:E
       (e1 
loc e 
       
 (e <loc e2)
       
 zi 
 rsc5_vote'base(Cmd)(e)
       
 z 
 rsc5_QuorumState(Cmd;cmdeq) ni(e)
       
 let zj,sndr = zi 
         in let ni',c = zj 
            in let pmaj,z = z 
               in 
(eqof(product-deq(
;
;IntDeq;IntDeq)) ni ni')))
  
 (e1 <loc e2)
  
 zh 
 rsc5_QuorumState(Cmd;cmdeq) ni(e1)
  
 z 
 rsc5_QuorumState(Cmd;cmdeq) ni(e2)
  
 let pmaj1,locs1 = zh 
     in let pmaj2,locs2 = z 
        in 
isl(pmaj2))
Proof not projected
Definitions occuring in Statement : 
rsc5_QuorumState: rsc5_QuorumState(Cmd;cmdeq), 
rsc5_vote'base: rsc5_vote'base(Cmd), 
Message: Message, 
classrel: v 
 X(e), 
event-ordering+: EO+(Info), 
es-le: e 
loc e' , 
es-locl: (e <loc e'), 
es-E: E, 
Id: Id, 
isl: isl(x), 
assert:
b, 
all:
x:A. B[x], 
exists:
x:A. B[x], 
implies: P 
 Q, 
and: P 
 Q, 
unit: Unit, 
apply: f a, 
spread: spread def, 
product: x:A 
 B[x], 
union: left + right, 
list: type List, 
int:
, 
product-deq: product-deq(A;B;a;b), 
int-deq: IntDeq, 
eqof: eqof(d), 
deq: EqDecider(T), 
vatype: ValueAllType
Definitions : 
name: Name, 
rev_implies: P 
 Q, 
guard: {T}, 
iff: P 

 Q, 
rsc5_addvote: rsc5_addvote(Cmd;cmdeq), 
rsc5_newvote: rsc5_newvote(Cmd), 
cand: A c
 B, 
bfalse: ff, 
btrue: tt, 
true: True, 
ifthenelse: if b then t else f fi , 
so_lambda: 
x.t[x], 
member: t 
 T, 
not:
A, 
trans: Trans(T;x,y.E[x; y]), 
prop:
, 
rsc5_init: rsc5_init(), 
rsc5_add_to_quorum: rsc5_add_to_quorum(Cmd;cmdeq), 
isl: isl(x), 
assert:
b, 
rsc5_vote'base: rsc5_vote'base(Cmd), 
and: P 
 Q, 
exists:
x:A. B[x], 
implies: P 
 Q, 
Id: Id, 
vatype: ValueAllType, 
all:
x:A. B[x], 
sq_type: SQType(T), 
so_apply: x[s], 
or: P 
 Q, 
uiff: uiff(P;Q), 
uimplies: b supposing a, 
false: False, 
bool:
, 
so_apply: x[s1;s2], 
decidable: Dec(P), 
uall:
[x:A]. B[x], 
rsc5_QuorumState: rsc5_QuorumState(Cmd;cmdeq), 
unit: Unit, 
subtype: S 
 T, 
it:
Lemmas : 
event-ordering+_wf, 
valueall-type_wf, 
deq_wf, 
es-E_wf, 
rsc5_QuorumState_wf, 
exists_wf, 
single-valued-bag-single, 
single-valued-classrel-base, 
es-le_wf, 
Message_wf, 
event-ordering+_inc, 
es-locl_wf, 
Memory-class_wf, 
classrel_wf, 
or_functionality_wrt_iff, 
assert_of_bor, 
bnot_thru_band, 
assert_functionality_wrt_uiff, 
or_wf, 
bor_wf, 
implies_functionality_wrt_iff, 
not_functionality_wrt_uiff, 
nil_member, 
false_wf, 
atom2_subtype_base, 
list_subtype_base, 
assert_of_null, 
decidable__assert, 
rsc5_quorum_inv, 
int_subtype_base, 
product_subtype_base, 
subtype_base_sq, 
decidable__equal_product, 
not_over_and, 
assert-deq-member, 
and_functionality_wrt_iff, 
assert_of_band, 
iff_weakening_uiff, 
iff_transitivity, 
l_member_wf, 
and_wf, 
not_functionality_wrt_iff, 
assert_of_bnot, 
eqff_to_assert, 
not_wf, 
equal_wf, 
uiff_transitivity, 
eqtt_to_assert, 
id-deq_wf, 
deq-member_wf, 
bnot_wf, 
band_wf, 
safe-assert-deq, 
sq_stable__assert, 
unit_wf2, 
decidable__false, 
decidable__equal_int, 
bool_wf, 
rsc5_vote'base_wf, 
it_wf, 
bag_wf, 
Id_wf, 
rsc5_init_wf, 
rsc5_add_to_quorum_wf, 
int-deq_wf, 
product-deq_wf, 
eqof_wf, 
isl_wf, 
assert_wf, 
Memory-class-progress
\mforall{}es:EO'.  \mforall{}e1,e2:E.  \mforall{}Cmd:ValueAllType.  \mforall{}cmdeq:EqDecider(Cmd).  \mforall{}ni:\mBbbZ{}  \mtimes{}  \mBbbZ{}.  \mforall{}zh,z:\mBbbZ{}  \mtimes{}  Cmd?  \mtimes{}  (Id  List).
    ((\mexists{}zi:\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id
          \mexists{}z:\mBbbZ{}  \mtimes{}  Cmd?  \mtimes{}  (Id  List)
            \mexists{}e:E
              (e1  \mleq{}loc  e 
              \mwedge{}  (e  <loc  e2)
              \mwedge{}  zi  \mmember{}  rsc5\_vote'base(Cmd)(e)
              \mwedge{}  z  \mmember{}  rsc5\_QuorumState(Cmd;cmdeq)  ni(e)
              \mwedge{}  let  zj,sndr  =  zi 
                  in  let  ni',c  =  zj 
                        in  let  pmaj,z  =  z 
                              in  \muparrow{}(eqof(product-deq(\mBbbZ{};\mBbbZ{};IntDeq;IntDeq))  ni  ni')))
    {}\mRightarrow{}  (e1  <loc  e2)
    {}\mRightarrow{}  zh  \mmember{}  rsc5\_QuorumState(Cmd;cmdeq)  ni(e1)
    {}\mRightarrow{}  z  \mmember{}  rsc5\_QuorumState(Cmd;cmdeq)  ni(e2)
    {}\mRightarrow{}  let  pmaj1,locs1  =  zh 
          in  let  pmaj2,locs2  =  z 
                in  \muparrow{}isl(pmaj2))
Date html generated:
2012_02_20-PM-05_06_32
Last ObjectModification:
2012_02_02-PM-02_18_27
Home
Index