Nuprl Lemma : consensus-ts6-reachability1
∀[V:Type]
  ∀A:Id List. ∀W:{a:Id| (a ∈ A)}  List List. ∀L:consensus-event(V;A) List.
  ∀x,y:{a:Id| (a ∈ A)}  ─→ (consensus-event(V;A) List). ∀a:{a:Id| (a ∈ A)} .
    ((∀b:{a:Id| (a ∈ A)} . ∀i:ℕ. ∀z:ℕi × V?.
        ((consensus-message(b;i;z) ∈ L)
        
⇒ let i',est,knw = consensus-accum-state(A;x b) in 
           (i ≤ i')
           ∧ case z
              of inl(p) =>
              let j,v = p 
              in (↑j ∈ dom(est)) ∧ (∀k:ℤ. (¬↑k ∈ dom(est)) supposing (k < i and j < k)) ∧ (v = est(j) ∈ V)
              | inr(a) =>
              ∀j:ℤ. ¬↑j ∈ dom(est) supposing j < i))
       
⇒ (∀v:V. ∀j:ℕ||L||.
             let i,est,knw = consensus-accum-state(A;(x a) @ firstn(j;L)) in 
             (¬(i ∈ fpf-domain(est))) ∧ may consider v in inning i based on knowledge (knw) 
             supposing L[j] = Archive(v) ∈ consensus-event(V;A))
       
⇒ (x (ts-rel(consensus-ts6(V;A;W))^*) y)) supposing 
       (((y a) = ((x a) @ L) ∈ (consensus-event(V;A) List)) and 
       (∀b:{a:Id| (a ∈ A)} . (y b) = (x b) ∈ (consensus-event(V;A) List) supposing ¬(b = a ∈ Id)))
Proof
Definitions occuring in Statement : 
consensus-ts6: consensus-ts6(V;A;W)
, 
consensus-accum-state: consensus-accum-state(A;L)
, 
consensus-message: consensus-message(b;i;z)
, 
archive-event: Archive(v)
, 
consensus-event: consensus-event(V;A)
, 
cs-knowledge-precondition: may consider v in inning i based on knowledge (s)
, 
fpf-ap: f(x)
, 
fpf-domain: fpf-domain(f)
, 
fpf-dom: x ∈ dom(f)
, 
Id: Id
, 
int-deq: IntDeq
, 
l_member: (x ∈ l)
, 
select: L[n]
, 
firstn: firstn(n;as)
, 
length: ||as||
, 
append: as @ bs
, 
list: T List
, 
rel_star: R^*
, 
int_seg: {i..j-}
, 
nat: ℕ
, 
assert: ↑b
, 
less_than: a < b
, 
spreadn: spread3, 
uimplies: b supposing a
, 
uall: ∀[x:A]. B[x]
, 
infix_ap: x f y
, 
le: A ≤ B
, 
all: ∀x:A. B[x]
, 
not: ¬A
, 
implies: P 
⇒ Q
, 
and: P ∧ Q
, 
unit: Unit
, 
set: {x:A| B[x]} 
, 
apply: f a
, 
function: x:A ─→ B[x]
, 
spread: spread def, 
product: x:A × B[x]
, 
decide: case b of inl(x) => s[x] | inr(y) => t[y]
, 
union: left + right
, 
natural_number: $n
, 
int: ℤ
, 
universe: Type
, 
equal: s = t ∈ T
, 
ts-rel: ts-rel(ts)
, 
ts-type: ts-type(ts)
Lemmas : 
consensus-event_wf, 
subtype_rel_self, 
subtype_rel_dep_function, 
ts-rel_wf, 
consensus-ts6_wf, 
ts-type_wf, 
rel_star_wf, 
infix_ap_wf, 
cs-knowledge-precondition_wf, 
fpf-domain_wf, 
fpf_wf, 
firstn_wf, 
consensus-accum-state_wf, 
archive-event_wf, 
sq_stable__le, 
select_wf, 
length_wf, 
fpf-ap_wf, 
less_than_wf, 
top_wf, 
subtype-fpf2, 
int-deq_wf, 
fpf-dom_wf, 
assert_wf, 
le_wf, 
int_seg_properties, 
consensus-message_wf, 
unit_wf2, 
int_seg_wf, 
nat_wf, 
append_wf, 
equal_wf, 
not_wf, 
isect_wf, 
list_wf, 
l_member_wf, 
Id_wf, 
all_wf, 
nil_wf, 
set_wf, 
length_of_nil_lemma, 
stuck-spread, 
base_wf, 
list_ind_nil_lemma, 
append-nil, 
subtype_rel_list, 
rel_star_weakening, 
decidable__equal_Id, 
member_wf, 
iff_weakening_equal, 
btrue_neq_bfalse, 
member-implies-null-eq-bfalse, 
btrue_wf, 
null_nil_lemma, 
subtype-fpf3, 
cons_wf, 
rel_star_transitivity, 
assert-bnot, 
bool_subtype_base, 
subtype_base_sq, 
bool_cases_sqequal, 
eqff_to_assert, 
assert-eq-id, 
eqtt_to_assert, 
bool_wf, 
eq_id_wf, 
member_append, 
select_append_front, 
lelt_wf, 
length_append, 
length_wf_nat, 
length_cons, 
length_wf_nil, 
non_neg_length, 
length_nil, 
le-add-cancel, 
add-associates, 
add_functionality_wrt_le, 
add-commutes, 
add-swap, 
minus-one-mul, 
minus-add, 
condition-implies-le, 
less-iff-le, 
false_wf, 
decidable__lt, 
firstn_append, 
rel_rel_star, 
assert_of_bnot, 
iff_weakening_uiff, 
iff_transitivity, 
uiff_transitivity, 
bnot_wf, 
equal-wf-T-base, 
zero-le-nat, 
add-zero, 
zero-mul, 
add-mul-special, 
le_weakening, 
length_of_cons_lemma, 
select_append_back, 
firstn_all, 
cons_member, 
list_accum_append, 
atom2_subtype_base, 
list_accum_nil_lemma, 
list_accum_cons_lemma, 
assert_witness, 
consensus-accum_wf, 
list_accum_wf, 
equal-wf-base, 
last_induction, 
fpf-join_wf, 
or_wf, 
fpf-single-dom, 
int_subtype_base, 
fpf-single_wf, 
fpf-join-dom, 
not-le-2, 
decidable__le, 
less_than_irreflexivity, 
less_than_transitivity1, 
fpf-join-ap, 
append_assoc, 
one-consensus-event_wf, 
consensus-event-constraint_wf, 
and_wf, 
exists_wf
\mforall{}[V:Type]
    \mforall{}A:Id  List.  \mforall{}W:\{a:Id|  (a  \mmember{}  A)\}    List  List.  \mforall{}L:consensus-event(V;A)  List.
    \mforall{}x,y:\{a:Id|  (a  \mmember{}  A)\}    {}\mrightarrow{}  (consensus-event(V;A)  List).  \mforall{}a:\{a:Id|  (a  \mmember{}  A)\}  .
        ((\mforall{}b:\{a:Id|  (a  \mmember{}  A)\}  .  \mforall{}i:\mBbbN{}.  \mforall{}z:\mBbbN{}i  \mtimes{}  V?.
                ((consensus-message(b;i;z)  \mmember{}  L)
                {}\mRightarrow{}  let  i',est,knw  =  consensus-accum-state(A;x  b)  in 
                      (i  \mleq{}  i')
                      \mwedge{}  case  z
                            of  inl(p)  =>
                            let  j,v  =  p 
                            in  (\muparrow{}j  \mmember{}  dom(est))  \mwedge{}  (\mforall{}k:\mBbbZ{}.  (\mneg{}\muparrow{}k  \mmember{}  dom(est))  supposing  (k  <  i  and  j  <  k))  \mwedge{}  (v  =  est(j\000C))
                            |  inr(a)  =>
                            \mforall{}j:\mBbbZ{}.  \mneg{}\muparrow{}j  \mmember{}  dom(est)  supposing  j  <  i))
              {}\mRightarrow{}  (\mforall{}v:V.  \mforall{}j:\mBbbN{}||L||.
                          let  i,est,knw  =  consensus-accum-state(A;(x  a)  @  firstn(j;L))  in 
                          (\mneg{}(i  \mmember{}  fpf-domain(est)))  \mwedge{}  may  consider  v  in  inning  i  based  on  knowledge  (knw) 
                          supposing  L[j]  =  Archive(v))
              {}\mRightarrow{}  (x  rel\_star(ts-type(consensus-ts6(V;A;W));  ts-rel(consensus-ts6(V;A;W)))  y))  supposing 
              (((y  a)  =  ((x  a)  @  L))  and 
              (\mforall{}b:\{a:Id|  (a  \mmember{}  A)\}  .  (y  b)  =  (x  b)  supposing  \mneg{}(b  =  a)))
Date html generated:
2015_07_17-AM-11_46_31
Last ObjectModification:
2015_07_16-AM-09_46_03
Home
Index