Nuprl Lemma : rsc4_quorum_invariant
es:EO'. 
e1:E. 
Cmd:ValueAllType. 
n,round:
. 
p:Cmd List 
 (Id List).
  (p 
 rsc4_QuorumState(Cmd) <n, round>(e1)
  
 let cmds,locs = p 
     in no_repeats(Id;locs)
        
 (||locs|| = ||cmds||)
        
 (
i:
||locs||. (
e:E. ((e <loc e1) 
 <<<n, round>, cmds[i]>, locs[i]> 
 rsc4_vote'base(Cmd)(e)))))
Proof
Definitions occuring in Statement : 
rsc4_QuorumState: rsc4_QuorumState(Cmd), 
rsc4_vote'base: rsc4_vote'base(Cmd), 
Message: Message, 
classrel: v 
 X(e), 
event-ordering+: EO+(Info), 
es-locl: (e <loc e'), 
es-E: E, 
Id: Id, 
select: l[i], 
length: ||as||, 
int_seg: {i..j
}, 
all:
x:A. B[x], 
exists:
x:A. B[x], 
squash:
T, 
implies: P 
 Q, 
and: P 
 Q, 
apply: f a, 
spread: spread def, 
pair: <a, b>, 
product: x:A 
 B[x], 
list: type List, 
natural_number: $n, 
int:
, 
equal: s = t, 
no_repeats: no_repeats(T;l), 
vatype: ValueAllType
Definitions : 
lt_int: i <z j, 
le_int: i 
z j, 
rev_implies: P 
 Q, 
bfalse: ff, 
iff: P 

 Q, 
bnot: 
b, 
band: p 
 q, 
ycomb: Y, 
btrue: tt, 
rsc4_addvote: rsc4_addvote(Cmd), 
ifthenelse: if b then t else f fi , 
top: Top, 
true: True, 
false: False, 
not:
A, 
lelt: i 
 j < k, 
le: A 
 B, 
cand: A c
 B, 
so_lambda: 
x.t[x], 
member: t 
 T, 
prop:
, 
rsc4_init: rsc4_init(), 
rsc4_add_to_quorum: rsc4_add_to_quorum(Cmd), 
select: l[i], 
exists:
x:A. B[x], 
squash:
T, 
int_seg: {i..j
}, 
length: ||as||, 
and: P 
 Q, 
implies: P 
 Q, 
vatype: ValueAllType, 
all:
x:A. B[x], 
sq_type: SQType(T), 
guard: {T}, 
deq: EqDecider(T), 
uiff: uiff(P;Q), 
unit: Unit, 
bool:
, 
rsc4_newvote: rsc4_newvote(Cmd), 
or: P 
 Q, 
decidable: Dec(P), 
uimplies: b supposing a, 
so_apply: x[s], 
sq_stable: SqStable(P), 
uall:
[x:A]. B[x], 
rsc4_QuorumState: rsc4_QuorumState(Cmd), 
it:
, 
subtype: S 
 T
Lemmas : 
select_cons_tl, 
product_subtype_base, 
lelt_wf, 
event-ordering+_wf, 
rsc4_QuorumState_wf, 
single-bag_wf, 
bag-member_wf, 
no_repeats_nil, 
bag-member-single, 
int_seg_wf, 
int_subtype_base, 
subtype_base_sq, 
assert-deq, 
assert-deq-member, 
not_functionality_wrt_iff, 
and_functionality_wrt_iff, 
assert_of_band, 
iff_weakening_uiff, 
l_member_wf, 
id-deq_wf, 
deq-member_wf, 
bfalse_wf, 
assert_of_bnot, 
eqff_to_assert, 
not_wf, 
bnot_wf, 
uiff_transitivity, 
deq_wf, 
int-deq_wf, 
product-deq_wf, 
assert_wf, 
iff_transitivity, 
no_repeats_cons, 
eqtt_to_assert, 
bool_wf, 
rsc4_newvote_wf, 
equal_wf, 
sq_stable_and_left_false, 
sq_stable__squash, 
sq_stable__all, 
sq_stable__equal, 
all_wf, 
decidable__equal_int, 
sq_stable__no_repeats, 
sq_stable__and, 
decidable__equal_Id, 
decidable__no_repeats, 
valueall-type_wf, 
sq_stable__valueall-type, 
bag_wf, 
rsc4_init_wf, 
rsc4_add_to_quorum_wf, 
select_wf, 
rsc4_vote'base_wf, 
classrel_wf, 
es-locl_wf, 
and_wf, 
event-ordering+_inc, 
es-E_wf, 
exists_wf, 
squash_wf, 
length_wf, 
no_repeats_wf, 
Id_wf, 
Message_wf, 
Memory-class-invariant
\mforall{}es:EO'.  \mforall{}e1:E.  \mforall{}Cmd:ValueAllType.  \mforall{}n,round:\mBbbZ{}.  \mforall{}p:Cmd  List  \mtimes{}  (Id  List).
    (p  \mmember{}  rsc4\_QuorumState(Cmd)  <n,  round>(e1)
    {}\mRightarrow{}  let  cmds,locs  =  p 
          in  no\_repeats(Id;locs)
                \mwedge{}  (||locs||  =  ||cmds||)
                \mwedge{}  (\mforall{}i:\mBbbN{}||locs||
                          (\mdownarrow{}\mexists{}e:E.  ((e  <loc  e1)  \mwedge{}  <<<n,  round>,  cmds[i]>,  locs[i]>  \mmember{}  rsc4\_vote'base(Cmd)(e)))))
Date html generated:
2012_02_20-PM-04_58_51
Last ObjectModification:
2012_02_02-PM-03_38_48
Home
Index