Nuprl Lemma : ler_propose_all_max+2_sub
es:EO'. 
nodes:bag(Id). 
client:Id. 
uid:Id 
 
. 
L:Id List. 
succ:{i:Id| (i 
 L)}  
 {i:Id| (i 
 L)} . 
epoch:
.
  (((ler_leader_ring_messages-delivered{i:l}(client;nodes;uid) es)
  
 ler_consistent_configuration(es)
  
 ler_non_dummy_configuration+(es;nodes)
  
 Inj(Id;
;uid)
  
 sub-bag(Id;L;nodes)
  
 no_repeats(Id;L)
  
 ma-ring(L;succ)
  
 (
i:{i:Id| (i 
 L)} 
       
e':E
        ((
e1,e2:E. 
u:
.
            ((e' <loc e1)
            
 (e1 <loc e2)
            
 (<epoch, u> 
 ler_Propose()(e2) 
 epoch 
 ler_Choose()(e2))
            
 (

w:
 
 Id. w 
 ler_Config()(e1))))
        
 <epoch, succ i> 
 ler_Config()(e')
        
 (
e'':{e'':E| (e'' <loc e')} . 
epoch':
. 
j:Id.  (<epoch', j> 
 ler_Config()(e'') 
 (epoch' 
 epoch)))
        
 (loc(e') = i)
        
 (
e:E. (epoch 
 ler_Choose()(e) 
 (e' < e)))))
  
 (
j:Id. 
e:E.  (<epoch, j> 
 ler_Config()(e) 
 (loc(e) 
 L))))
  
 (
e:E. 
i:{i:
||L||| (uid L[i]) = imax-list(map(uid;L))} .
        (epoch 
 ler_Choose()(e)
        
 (loc(e) 
 L)
        
 (
i:
||L||. (L[i] = (succ^i loc(e))))
        
 (
e':E. <epoch, L[i]> 
 ler_Leader()(e')))))
Proof not projected
Definitions occuring in Statement : 
ler_consistent_configuration: ler_consistent_configuration(es), 
ler_non_dummy_configuration+: ler_non_dummy_configuration+(es;nodes), 
ler_Leader: ler_Leader(), 
ler_leader_ring_messages-delivered: ler_leader_ring_messages-delivered{i:l}(client;nodes;uid), 
ler_Propose: ler_Propose(), 
ler_Choose: ler_Choose(), 
ler_Config: ler_Config(), 
ma-ring: ma-ring(R;s), 
Message: Message, 
classrel: v 
 X(e), 
event-ordering+: EO+(Info), 
es-locl: (e <loc e'), 
es-causl: (e < e'), 
es-loc: loc(e), 
es-E: E, 
Id: Id, 
select: l[i], 
map: map(f;as), 
length: ||as||, 
inject: Inj(A;B;f), 
int_seg: {i..j
}, 
le: A 
 B, 
all:
x:A. B[x], 
exists:
x:A. B[x], 
not:
A, 
squash:
T, 
implies: P 
 Q, 
or: P 
 Q, 
and: P 
 Q, 
set: {x:A| B[x]} , 
apply: f a, 
function: x:A 
 B[x], 
pair: <a, b>, 
product: x:A 
 B[x], 
list: type List, 
natural_number: $n, 
int:
, 
equal: s = t, 
no_repeats: no_repeats(T;l), 
l_member: (x 
 l), 
fun_exp: f^n, 
sub-bag: sub-bag(T;as;bs), 
bag: bag(T), 
imax-list: imax-list(L)
Definitions : 
all:
x:A. B[x], 
implies: P 
 Q, 
and: P 
 Q, 
exists:
x:A. B[x], 
or: P 
 Q, 
not:
A, 
squash:
T, 
le: A 
 B, 
member: t 
 T, 
cand: A c
 B, 
true: True, 
gt: i > j, 
false: False, 
prop:
, 
nat:
, 
subtype: S 
 T, 
top: Top, 
suptype: suptype(S; T), 
Id: Id, 
int_seg: {i..j
}, 
ler_send_leader: ler_send_leader(), 
lelt: i 
 j < k, 
sq_or: a 
 b, 
es-locl: (e <loc e'), 
es-p-local-pred: es-p-local-pred(es;P), 
Message: Message, 
pi1: fst(t), 
pi2: snd(t), 
ler_Leader: ler_Leader(), 
name: Name, 
es-header: es-header(es;e), 
assert:
b, 
msg-type: msg-type(msg), 
msg-body: msg-body(msg), 
make-Msg: make-Msg(hdr;typ;val), 
ifthenelse: if b then t else f fi , 
pMsg: pMsg(P.M[P]), 
mData: mData, 
msg-has-type: msg-has-type(m;T), 
fun_exp: f^n, 
primrec: primrec(n;b;c), 
ycomb: Y, 
eq_int: (i =
 j), 
btrue: tt, 
ler_send_propose: ler_send_propose(), 
l_exists: (
x
L. P[x]), 
ler_Propose: ler_Propose(), 
uall:
[x:A]. B[x], 
uimplies: b supposing a, 
ler_leader_ring_messages-delivered: ler_leader_ring_messages-delivered{i:l}(client;nodes;uid), 
sq_type: SQType(T), 
guard: {T}, 
messages-delivered: messages-delivered{i:l}(es;X), 
rev_implies: P 
 Q, 
iff: P 

 Q, 
sub-bag: sub-bag(T;as;bs), 
rev_uimplies: rev_uimplies(P;Q), 
uiff: uiff(P;Q), 
ler_non_dummy_configuration+: ler_non_dummy_configuration+(es;nodes), 
ler_Nbr: ler_Nbr(), 
let: let, 
no_repeats: no_repeats(T;l), 
inject: Inj(A;B;f)
Lemmas : 
ler_propose_all_max2_sub, 
int_seg_properties, 
length_wf, 
Id_wf, 
int_seg_wf, 
select_wf, 
fun_exp_wf, 
l_member_wf, 
le_wf, 
es-loc_wf, 
event-ordering+_inc, 
Message_wf, 
classrel_wf, 
ler_Choose_wf, 
imax-list_wf, 
map_wf, 
non_neg_length, 
map_length, 
length_wf_nat, 
top_wf, 
es-E_wf, 
ler_leader_ring_messages-delivered_wf, 
ler_consistent_configuration_wf, 
ler_non_dummy_configuration+_wf, 
inject_wf, 
sub-bag_wf, 
bag_qinc, 
no_repeats_wf, 
ma-ring_wf, 
es-locl_wf, 
ler_Propose_wf, 
not_wf, 
squash_wf, 
ler_Config_wf, 
es-causl_wf, 
bag_wf, 
event-ordering+_wf, 
subtype_base_sq, 
int_subtype_base, 
atom2_subtype_base, 
ler_send_leader_wf, 
ler_Leader_ilf, 
bag-member-append, 
bag-member-list, 
decidable__equal_Id, 
bag-member_wf, 
prior-classrel-p-local-pred, 
ler_Nbr_wf, 
es-causl_transitivity2, 
es-causle_weakening, 
primed-class_wf, 
ler_Config_to_Nbr2, 
rec-combined-loc-class-opt-1-classrel, 
simple-loc-comb-2-concat-classrel, 
ifthenelse_wf, 
lt_int_wf, 
single-bag_wf, 
primed-class-opt_wf, 
ler_dumEpoch_wf, 
rec-combined-loc-class-opt-1_wf, 
concat-lifting-loc-2_wf, 
base-noloc-classrel, 
name_wf, 
assert_wf, 
eq_term_wf, 
type-valueall-type, 
msg-body_wf2, 
ler_Leader_wf, 
es-causle_weakening_eq, 
es-causle_wf, 
ler_send_propose_wf, 
ler_Propose_ilf, 
select_member, 
fun_exp_add1-sq, 
list-subtype, 
base-headers-msg-val_wf, 
imax_wf, 
nat_wf, 
imax-left, 
imax-list-ub, 
member_map, 
es-causl_transitivity1
\mforall{}es:EO'.  \mforall{}nodes:bag(Id).  \mforall{}client:Id.  \mforall{}uid:Id  {}\mrightarrow{}  \mBbbZ{}.  \mforall{}L:Id  List.  \mforall{}succ:\{i:Id|  (i  \mmember{}  L)\}    {}\mrightarrow{}  \{i:Id| 
                                                                                                                                                                                  (i  \mmember{}  L)\}  .
\mforall{}epoch:\mBbbZ{}.
    (((ler\_leader\_ring\_messages-delivered\{i:l\}(client;nodes;uid)  es)
    \mwedge{}  ler\_consistent\_configuration(es)
    \mwedge{}  ler\_non\_dummy\_configuration+(es;nodes)
    \mwedge{}  Inj(Id;\mBbbZ{};uid)
    \mwedge{}  sub-bag(Id;L;nodes)
    \mwedge{}  no\_repeats(Id;L)
    \mwedge{}  ma-ring(L;succ)
    \mwedge{}  (\mforall{}i:\{i:Id|  (i  \mmember{}  L)\} 
              \mexists{}e':E
                ((\mforall{}e1,e2:E.  \mforall{}u:\mBbbZ{}.
                        ((e'  <loc  e1)
                        {}\mRightarrow{}  (e1  <loc  e2)
                        {}\mRightarrow{}  (<epoch,  u>  \mmember{}  ler\_Propose()(e2)  \mvee{}  epoch  \mmember{}  ler\_Choose()(e2))
                        {}\mRightarrow{}  (\mneg{}\mdownarrow{}\mexists{}w:\mBbbZ{}  \mtimes{}  Id.  w  \mmember{}  ler\_Config()(e1))))
                \mwedge{}  <epoch,  succ  i>  \mmember{}  ler\_Config()(e')
                \mwedge{}  (\mforall{}e'':\{e'':E|  (e''  <loc  e')\}  .  \mforall{}epoch':\mBbbZ{}.  \mforall{}j:Id.
                          (<epoch',  j>  \mmember{}  ler\_Config()(e'')  {}\mRightarrow{}  (epoch'  \mleq{}  epoch)))
                \mwedge{}  (loc(e')  =  i)
                \mwedge{}  (\mforall{}e:E.  (epoch  \mmember{}  ler\_Choose()(e)  {}\mRightarrow{}  (e'  <  e)))))
    \mwedge{}  (\mforall{}j:Id.  \mforall{}e:E.    (<epoch,  j>  \mmember{}  ler\_Config()(e)  {}\mRightarrow{}  (loc(e)  \mmember{}  L))))
    {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}i:\{i:\mBbbN{}||L|||  (uid  L[i])  =  imax-list(map(uid;L))\}  .
                (epoch  \mmember{}  ler\_Choose()(e)
                {}\mRightarrow{}  (loc(e)  \mmember{}  L)
                {}\mRightarrow{}  (\mforall{}i:\mBbbN{}||L||.  (L[i]  =  (succ\^{}i  loc(e))))
                {}\mRightarrow{}  (\mdownarrow{}\mexists{}e':E.  <epoch,  L[i]>  \mmember{}  ler\_Leader()(e')))))
Date html generated:
2012_02_20-PM-06_10_47
Last ObjectModification:
2012_02_02-PM-02_40_56
Home
Index