Nuprl Lemma : new_23_sig_quorum_inv_vote2
∀Cmd:ValueAllType. ∀notify,propose:Atom List. ∀f:new_23_sig_headers_type{i:l}(Cmd;notify;propose). ∀es:EO+(Message(f)).
∀e:E. ∀ni:ℤ × ℤ. ∀p:Cmd List × (Id List).
  (p ∈ new_23_sig_QuorumState(Cmd;notify;propose;f) ni(e)
  
⇒ let cmds,locs = p 
     in no_repeats(Id;locs)
        ∧ (||locs|| = ||cmds|| ∈ ℤ)
        ∧ (∀i:ℕ||locs||
             (↓∃e':E
                ((e' <loc e)
                ∧ <<ni, cmds[i]>, locs[i]> ∈ new_23_sig_vote'base(Cmd;notify;propose;f)(e')
                ∧ (∀e''∈[es-init(es;e);e').∀c:Cmd
                                             (¬<<ni, c>, locs[i]> ∈ new_23_sig_vote'base(Cmd;notify;propose;f)(
                                                                    e'')))))))
Proof
Definitions occuring in Statement : 
new_23_sig_QuorumState: new_23_sig_QuorumState(Cmd;notify;propose;f)
, 
new_23_sig_vote'base: new_23_sig_vote'base(Cmd;notify;propose;f)
, 
new_23_sig_headers_type: new_23_sig_headers_type{i:l}(Cmd;notify;propose)
, 
Message: Message(f)
, 
classrel: v ∈ X(e)
, 
event-ordering+: EO+(Info)
, 
es-init: es-init(es;e)
, 
es-closed-open-interval: [e;e')
, 
es-locl: (e <loc e')
, 
es-E: E
, 
Id: Id
, 
l_all: (∀x∈L.P[x])
, 
no_repeats: no_repeats(T;l)
, 
select: L[n]
, 
length: ||as||
, 
list: T List
, 
int_seg: {i..j-}
, 
vatype: ValueAllType
, 
all: ∀x:A. B[x]
, 
exists: ∃x:A. B[x]
, 
not: ¬A
, 
squash: ↓T
, 
implies: P 
⇒ Q
, 
and: P ∧ Q
, 
apply: f a
, 
spread: spread def, 
pair: <a, b>
, 
product: x:A × B[x]
, 
natural_number: $n
, 
int: ℤ
, 
atom: Atom
, 
equal: s = t ∈ T
Lemmas : 
int_seg_wf, 
length_wf, 
name_wf, 
new_23_sig_headers_wf, 
l_all_iff, 
l_member_wf, 
equal_wf, 
new_23_sig_headers_fun_wf, 
cons_member, 
cons_wf, 
cons_wf_listp, 
listp_wf, 
nil_wf, 
equal-wf-base, 
list_subtype_base, 
atom_subtype_base, 
iff_weakening_equal, 
name_eq_wf, 
bool_wf, 
eqtt_to_assert, 
assert-name_eq, 
sq_stable__no_repeats, 
squash_wf, 
true_wf, 
eqff_to_assert, 
bool_cases_sqequal, 
subtype_base_sq, 
bool_subtype_base, 
assert-bnot, 
classrel_wf, 
es-E_wf, 
event-ordering+_subtype, 
event-ordering+_wf, 
eclass_wf, 
list_wf, 
Id_wf, 
Memory1-memory-class1, 
new_23_sig_add_to_quorum_wf, 
new_23_sig_vote'base_wf, 
Memory-loc-class-invariant-sv1, 
no_repeats_wf, 
all_wf, 
exists_wf, 
es-locl_wf, 
select_wf, 
sq_stable__le, 
less_than_transitivity1, 
le_weakening, 
l_all_wf2, 
es-closed-open-interval_wf, 
es-init_wf, 
not_wf, 
single-bag_wf, 
base-headers-msg-val-single-val, 
subtype_rel_weakening, 
ext-eq_weakening, 
single-valued-bag-single, 
bag-member-single, 
length_of_nil_lemma, 
stuck-spread, 
base_wf, 
no_repeats_nil, 
less_than_irreflexivity, 
bag-member_wf, 
new_23_sig_newvote_wf, 
length_of_cons_lemma, 
no_repeats_cons, 
productdeq_reduce_lemma, 
intdeq_reduce_lemma, 
assert_of_band2, 
eq_int_wf, 
assert_of_eq_int, 
iff_transitivity, 
assert_wf, 
int_subtype_base, 
iff_weakening_uiff, 
assert_of_band, 
bnot_wf, 
deq-member_wf, 
id-deq_wf, 
assert_of_bnot, 
assert-deq-member, 
Memory-loc-class_wf, 
new_23_sig_QuorumState_wf, 
Message_wf, 
subtype_rel_dep_function, 
vatype_wf, 
new_23_sig_headers_type_wf, 
set_wf, 
valueall-type_wf, 
decidable__equal_int, 
set_subtype_base, 
lelt_wf, 
new_23_sig_quorum_mem, 
new_23_sig_QuorumStateFun_wf, 
member-es-closed-open-interval, 
new_23_sig_QuorumState-classrel, 
pair-eta, 
subtype_rel_product, 
top_wf, 
subtype_top, 
subtract_wf, 
decidable__le, 
false_wf, 
not-le-2, 
not-equal-2, 
add_functionality_wrt_le, 
zero-add, 
add-zero, 
le-add-cancel, 
condition-implies-le, 
minus-one-mul, 
minus-add, 
minus-minus, 
add-associates, 
add-swap, 
add-commutes, 
minus-zero, 
decidable__lt, 
less-iff-le, 
length_cons, 
non_neg_length, 
length_wf_nat, 
le_antisymmetry_iff, 
le-add-cancel2, 
select_cons_tl
Latex:
\mforall{}Cmd:ValueAllType.  \mforall{}notify,propose:Atom  List.  \mforall{}f:new\_23\_sig\_headers\_type\{i:l\}(Cmd;notify;propose).
\mforall{}es:EO+(Message(f)).  \mforall{}e:E.  \mforall{}ni:\mBbbZ{}  \mtimes{}  \mBbbZ{}.  \mforall{}p:Cmd  List  \mtimes{}  (Id  List).
    (p  \mmember{}  new\_23\_sig\_QuorumState(Cmd;notify;propose;f)  ni(e)
    {}\mRightarrow{}  let  cmds,locs  =  p 
          in  no\_repeats(Id;locs)
                \mwedge{}  (||locs||  =  ||cmds||)
                \mwedge{}  (\mforall{}i:\mBbbN{}||locs||
                          (\mdownarrow{}\mexists{}e':E
                                ((e'  <loc  e)
                                \mwedge{}  <<ni,  cmds[i]>,  locs[i]>  \mmember{}  new\_23\_sig\_vote'base(Cmd;notify;propose;f)(e')
                                \mwedge{}  (\mforall{}e''\mmember{}[es-init(es;e);e').\mforall{}c:Cmd
                                                                                          (\mneg{}<<ni,  c>,  locs[i]>  \mmember{}
                                                                                                new\_23\_sig\_vote'base(Cmd;notify;propose;f)(
                                                                                                e'')))))))
Date html generated:
2015_07_23-PM-03_57_15
Last ObjectModification:
2015_02_04-PM-01_55_40
Home
Index