Nuprl Lemma : rsc4-retry-property
[Cmd:ValueAllType]. 
[cmdeq:EqDecider(Cmd)]. 
[locs,clients:bag(Id)]. 
[coeff,flrs:
]. 
[es:EO'].
  ((StandardAssumptions(rsc4_Main) es)
  
 (
e:E. 
c:Cmd. 
n,r:
.
        (<<n, r + 1>, c> 
 rsc4_retry'base(Cmd)(e)
        
 (
x:Id
              
cs:Cmd List
               
L:Id List
                ((no_repeats(Id;L) 
 (||L|| = ((coeff * flrs) + 1)) 
 (||cs|| = ||L||))
                
 (
i:
||L||
                     ((
e':E. <x, make-Msg(``rsc4 vote``;
 
 
 
 Cmd 
 Id;<<<n, r>, cs[i]>, L[i]>)> 
 rsc4_Main(e'))
                     
 L[i] 
 locs))
                
 (c = (snd(poss-maj(cmdeq;cs;hd(cs))))))))))
Proof
Definitions occuring in Statement : 
rsc4_stdma: StandardAssumptions(rsc4_Main), 
rsc4_main: rsc4_Main, 
rsc4_retry'base: rsc4_retry'base(Cmd), 
make-Msg: make-Msg(hdr;typ;val), 
Message: Message, 
classrel: v 
 X(e), 
event-ordering+: EO+(Info), 
es-E: E, 
Id: Id, 
select: l[i], 
hd: hd(l), 
length: ||as||, 
int_seg: {i..j
}, 
nat:
, 
uall:
[x:A]. B[x], 
pi2: snd(t), 
all:
x:A. B[x], 
exists:
x:A. B[x], 
squash:
T, 
implies: P 
 Q, 
and: P 
 Q, 
apply: f a, 
pair: <a, b>, 
product: x:A 
 B[x], 
cons: [car / cdr], 
nil: [], 
list: type List, 
multiply: n * m, 
add: n + m, 
natural_number: $n, 
int:
, 
token: "$token", 
equal: s = t, 
no_repeats: no_repeats(T;l), 
listp: A List
, 
poss-maj: poss-maj(eq;L;x), 
deq: EqDecider(T), 
bag-member: x 
 bs, 
bag: bag(T), 
vatype: ValueAllType
Definitions : 
guard: {T}, 
ge: i 
 j , 
rsc4_QuorumState: rsc4_QuorumState(Cmd), 
cand: A c
 B, 
bfalse: ff, 
btrue: tt, 
lt_int: i <z j, 
bnot: 
b, 
le_int: i 
z j, 
ifthenelse: if b then t else f fi , 
prop:
, 
false: False, 
not:
A, 
le: A 
 B, 
lelt: i 
 j < k, 
ycomb: Y, 
so_lambda: 
x.t[x], 
name: Name, 
es-header: es-header(es;e), 
rsc4_headers_no_inputs: rsc4_headers_no_inputs(), 
true: True, 
member: t 
 T, 
hd: hd(l), 
select: l[i], 
int_seg: {i..j
}, 
length: ||as||, 
and: P 
 Q, 
exists:
x:A. B[x], 
squash:
T, 
all:
x:A. B[x], 
implies: P 
 Q, 
vatype: ValueAllType, 
uall:
[x:A]. B[x], 
uiff: uiff(P;Q), 
rsc4_vote'base: rsc4_vote'base(Cmd), 
so_lambda: 
x y.t[x; y], 
iff: P 

 Q, 
rev_implies: P 
 Q, 
Id: Id, 
bag-member: x 
 bs, 
rsc4_newvote: rsc4_newvote(Cmd), 
sq_or: a 
 b, 
or: P 
 Q, 
so_apply: x[s], 
uimplies: b supposing a, 
std-ma: StandardMessageAutomaton(X;hdrs), 
message-constraint: message-constraint{i:l}(es;X;hdrs), 
sq_stable: SqStable(P), 
rsc4_retry'base: rsc4_retry'base(Cmd), 
rsc4_stdma: StandardAssumptions(rsc4_Main), 
nat:
, 
so_apply: x[s1;s2], 
sq_type: SQType(T), 
decidable: Dec(P), 
subtype: S 
 T, 
msg-header: msg-header(m)
Lemmas : 
assert-deq-member, 
not_functionality_wrt_iff, 
assert_of_bnot, 
assert_of_eq_int, 
and_functionality_wrt_uiff, 
uiff_transitivity, 
and_functionality_wrt_iff, 
assert_of_band, 
iff_weakening_uiff, 
iff_transitivity, 
listp_wf, 
hd_wf, 
poss-maj_wf, 
pi2_wf, 
bag-member_wf, 
select_wf, 
Id-valueall-type, 
make-Msg_wf, 
all_wf, 
length_wf, 
no_repeats_wf, 
int_seg_wf, 
no_repeats_cons, 
cons_wf_listp, 
mul_bounds_1a, 
not_wf, 
and_wf, 
id-deq_wf, 
deq-member_wf, 
bnot_wf, 
eq_int_wf, 
band_wf, 
assert_wf, 
deq_wf, 
bag_wf, 
nat_wf, 
rsc4_stdma_wf, 
rsc4_retry'base_wf, 
event-ordering+_wf, 
subtype_rel_set, 
eo-forward-E-subtype, 
equal_wf, 
decidable__es-le, 
es-le_wf, 
sq_stable_from_decidable, 
member-eo-forward-E, 
eo-forward_wf, 
rsc4_quorum_invariant, 
rsc4-retry, 
es-loc_wf, 
rsc4_main_wf, 
Id_wf, 
classrel_wf, 
es-causl_wf, 
Message_wf, 
event-ordering+_inc, 
es-E_wf, 
exists_wf, 
squash_wf, 
rsc4_headers_no_inputs_wf, 
msg-header_wf, 
l_member_wf, 
lelt_wf, 
name_wf, 
select_member, 
int-valueall-type, 
product-valueall-type, 
base-noloc-classrel-make-Msg, 
valueall-type_wf, 
sq_stable__valueall-type, 
base-headers-msg-val_wf, 
eo-forward-base-classrel, 
eo-forward-le, 
select_cons_tl, 
eclass_wf, 
true_wf, 
int_subtype_base, 
subtype_base_sq, 
decidable__equal_int, 
product_subtype_base, 
atom2_subtype_base, 
es-le-loc, 
rsc4-vote
\mforall{}[Cmd:ValueAllType].  \mforall{}[cmdeq:EqDecider(Cmd)].  \mforall{}[locs,clients:bag(Id)].  \mforall{}[coeff,flrs:\mBbbN{}].  \mforall{}[es:EO'].
    ((StandardAssumptions(rsc4\_Main)  es)
    {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}c:Cmd.  \mforall{}n,r:\mBbbZ{}.
                (<<n,  r  +  1>,  c>  \mmember{}  rsc4\_retry'base(Cmd)(e)
                {}\mRightarrow{}  (\mdownarrow{}\mexists{}x:Id
                            \mexists{}cs:Cmd  List\msupplus{}
                              \mexists{}L:Id  List
                                ((no\_repeats(Id;L)  \mwedge{}  (||L||  =  ((coeff  *  flrs)  +  1))  \mwedge{}  (||cs||  =  ||L||))
                                \mwedge{}  (\mforall{}i:\mBbbN{}||L||
                                          ((\mdownarrow{}\mexists{}e':E
                                                  <x,  make-Msg(``rsc4  vote``;\mBbbZ{}  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd  \mtimes{}  Id;<<<n,  r>,  cs[i]>,  L[i]>)>  \mmember{}
                                                    rsc4\_Main(e'))
                                          \mwedge{}  L[i]  \mdownarrow{}\mmember{}  locs))
                                \mwedge{}  (c  =  (snd(poss-maj(cmdeq;cs;hd(cs))))))))))
Date html generated:
2012_02_20-PM-05_00_55
Last ObjectModification:
2012_02_02-PM-02_16_44
Home
Index