Nuprl Lemma : pv11_p1_scout_state_from_p1bs
∀Cmd:ValueAllType. ∀f:pv11_p1_headers_type{i:l}(Cmd). ∀es:EO+(Message(f)). ∀start,e:E. ∀accpts,ldrs:bag(Id).
∀ldrs_uid:Id ─→ ℤ. ∀reps:bag(Id). ∀bnum:pv11_p1_Ballot_Num(). ∀waitfor:bag(Id).
∀pvalues:(pv11_p1_Ballot_Num() × ℤ × Cmd) List.
(start ≤loc e
⇒ Inj(Id;ℤ;ldrs_uid)
⇒ pv11_p1_message-constraint{paxos-v11-part1.esh:o}(Cmd; accpts; ldrs; ldrs_uid; reps; f; es)
⇒ (<waitfor, pvalues>
= pv11_p1_ScoutStateFun(Cmd;accpts;f;bnum;es.start;e)
∈ (bag(Id) × ((pv11_p1_Ballot_Num() × ℤ × Cmd) List)))
⇒ (↓∃L:E List
((waitfor = [i∈accpts|¬bi ∈b map(λe.loc(e);L))] ∈ bag(Id))
∧ (∀pv:pv11_p1_Ballot_Num() × ℤ × Cmd
((pv ∈ pvalues)
⇐⇒ (pv ∈ concat(map(λe.(snd(pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;f;es;e)));L)))))
∧ (∀e':E
((e' ∈ L)
⇒ ((e' < e)
∧ loc(e') ↓∈ accpts
∧ (bnum = (fst(pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;f;es;e'))) ∈ pv11_p1_Ballot_Num())))))))
Proof
Definitions occuring in Statement :
pv11_p1_message-constraint: pv11_p1_message-constraint{paxos-v11-part1.esh:o}(Cmd; accpts; ldrs; ldrs_uid; reps; mf; es)
,
pv11_p1_ScoutStateFun: pv11_p1_ScoutStateFun(Cmd;accpts;mf;x;es;e)
,
pv11_p1_AcceptorStateFun: pv11_p1_AcceptorStateFun(Cmd;ldrs_uid;mf;es;e)
,
pv11_p1_headers_type: pv11_p1_headers_type{i:l}(Cmd)
,
pv11_p1_Ballot_Num: pv11_p1_Ballot_Num()
,
Message: Message(f)
,
eo-forward: eo.e
,
event-ordering+: EO+(Info)
,
es-le: e ≤loc e'
,
es-causl: (e < e')
,
es-loc: loc(e)
,
es-E: E
,
id-deq: IdDeq
,
Id: Id
,
deq-member: x ∈b L)
,
l_member: (x ∈ l)
,
concat: concat(ll)
,
map: map(f;as)
,
list: T List
,
inject: Inj(A;B;f)
,
vatype: ValueAllType
,
bnot: ¬bb
,
pi1: fst(t)
,
pi2: snd(t)
,
all: ∀x:A. B[x]
,
exists: ∃x:A. B[x]
,
iff: P
⇐⇒ Q
,
squash: ↓T
,
implies: P
⇒ Q
,
and: P ∧ Q
,
lambda: λx.A[x]
,
function: x:A ─→ B[x]
,
pair: <a, b>
,
product: x:A × B[x]
,
int: ℤ
,
equal: s = t ∈ T
,
bag-member: x ↓∈ bs
,
bag-filter: [x∈b|p[x]]
,
bag: bag(T)
Definitions :
assert: ↑b
,
ifthenelse: if b then t else f fi
,
deq-member: x ∈b L)
,
reduce: reduce(f;k;as)
,
pv11_p1_headers_no_inputs: pv11_p1_headers_no_inputs()
,
cons: [a / b]
,
bor: p ∨bq
,
list-deq: list-deq(eq)
,
band: p ∧b q
,
atom-deq: AtomDeq
,
eq_atom: x =a y
,
btrue: tt
,
bfalse: ff
,
nil: []
,
it: ⋅
,
null: null(as)
,
true: True
,
member: t ∈ T
Lemmas :
int_seg_wf,
length_wf,
name_wf,
pv11_p1_headers_wf,
l_all_iff,
l_member_wf,
equal_wf,
pv11_p1_headers_fun_wf,
cons_wf_listp,
nil_wf,
listp_wf,
cons_member,
cons_wf,
equal-wf-base,
iff_weakening_equal,
pv11_p1_ScoutStateFun_wf,
eo-forward_wf,
member-eo-forward-E,
es-loc_wf,
pv11_p1_message-constraint_wf,
inject_wf,
es-le_wf,
list_wf,
pv11_p1_Ballot_Num_wf,
bag_wf,
Id_wf,
es-E_wf,
event-ordering+_subtype,
event-ordering+_wf,
Message_wf,
subtype_rel_dep_function,
vatype_wf,
pv11_p1_headers_type_wf,
set_wf,
valueall-type_wf,
es-causl-swellfnd,
nat_properties,
less_than_transitivity1,
less_than_irreflexivity,
ge_wf,
less_than_wf,
int_seg_subtype-nat,
decidable__le,
subtract_wf,
false_wf,
not-ge-2,
less-iff-le,
condition-implies-le,
minus-one-mul,
zero-add,
minus-add,
minus-minus,
add-associates,
add-swap,
add-commutes,
add_functionality_wrt_le,
add-zero,
le-add-cancel,
decidable__equal_int,
subtype_rel-int_seg,
le_weakening,
int_seg_properties,
le_wf,
nat_wf,
zero-le-nat,
lelt_wf,
es-causl_wf,
pv11_p1_scout_state_fun_eq,
member-eclass_wf,
pv11_p1_p1b'base_wf,
bool_cases,
subtype_base_sq,
bool_wf,
bool_subtype_base,
eqtt_to_assert,
es-first_wf2,
eqff_to_assert,
assert_of_bnot,
decidable__lt,
not-equal-2,
le-add-cancel-alt,
not-le-2,
sq_stable__le,
add-mul-special,
zero-mul,
classfun-res-member-base,
eo-forward-member-eclass,
event-ordering+_cumulative,
eo-forward-info-body,
member-base-class,
list_subtype_base,
atom_subtype_base,
subtype_rel_wf,
es-info-body_wf,
pv11_p1_eq_bnums_wf,
pv11_p1_eq_bnums-assert,
bool_cases_sqequal,
assert-bnot,
map_nil_lemma,
deq_member_nil_lemma,
reduce_nil_lemma,
bag-filter-trivial,
btrue_wf,
assert_of_tt,
null_nil_lemma,
member-implies-null-eq-bfalse,
and_wf,
null_wf3,
subtype_rel_list,
top_wf,
btrue_neq_bfalse,
bag-filter_wf,
bnot_wf,
deq-member_wf,
id-deq_wf,
map_wf,
subtype_rel_bag,
assert_wf,
all_wf,
iff_wf,
concat_wf,
pv11_p1_AcceptorStateFun_wf,
bag-member_wf,
bag-remove_wf,
pv11_p1_append_news_wf,
pv11_p1_same_pvalue_wf,
iff_transitivity,
iff_weakening_uiff,
assert_of_band,
squash_wf,
exists_wf,
assert-deq-member,
pv11_p1_headers_no_inputs_wf,
es-info-mk-msg,
es-info-auth_wf,
subtype_rel_transitivity,
es-info-type_wf,
subtype_rel_weakening,
ext-eq_weakening,
classrel_wf,
msg-interface_wf,
pv11_p1_main_wf,
make-msg-interface_wf,
pair-eta,
subtype_rel_product,
subtype_top,
mk-msg_wf,
pi1_wf_top,
map_cons_lemma,
deq_member_cons_lemma,
pv11_p1-p1b,
bag-filter-equal,
bor_wf,
bfalse_wf,
assert_functionality_wrt_uiff,
true_wf,
bor_ff_simp,
deq_wf,
length_wf_nat,
concat-single,
pi2_wf,
pv11_p1_append_news_iff,
append_wf,
nil-append,
member_singleton,
es-causl_transitivity1,
es-causle_weakening_eq,
es-causle_wf,
event_ordering_wf,
eo-forward-trivial,
es-le-first,
assert_elim,
ifthenelse_wf,
eo-forward-first,
es-pred_wf,
es-pred-locl,
eo-forward-locl,
es-causl_weakening,
pair_eta_rw,
eq_id_wf,
assert-es-eq-E,
es-le-pred,
not_wf,
eo-forward-loc,
es-le-loc,
assert-eq-id,
equal-eo-forward-E,
es-le_transitivity,
eo-forward-E-subtype,
es-le_weakening_eq,
eo-forward-base-classfun-res,
pv11_p1_on_p1b_wf,
eo-forward-pred,
bag-filter-filter,
classfun-res-base,
or_wf,
map_append_sq,
member_append,
member_map,
member-concat,
es-causl_transitivity2,
es-causle_weakening_locl,
es-le_weakening
Latex:
\mforall{}Cmd:ValueAllType. \mforall{}f:pv11\_p1\_headers\_type\{i:l\}(Cmd). \mforall{}es:EO+(Message(f)). \mforall{}start,e:E.
\mforall{}accpts,ldrs:bag(Id). \mforall{}ldrs$_{uid}$:Id {}\mrightarrow{} \mBbbZ{}. \mforall{}reps:bag(Id). \mforall{}bnum:pv11\_p1\_Ballot\000C\_Num(). \mforall{}waitfor:bag(Id).
\mforall{}pvalues:(pv11\_p1\_Ballot\_Num() \mtimes{} \mBbbZ{} \mtimes{} Cmd) List.
(start \mleq{}loc e
{}\mRightarrow{} Inj(Id;\mBbbZ{};ldrs$_{uid}$)
{}\mRightarrow{} pv11\_p1\_message-constraint\{paxos-v11-part1.esh:o\}(Cmd; accpts; ldrs; ldrs$_{uid\mbackslash{}ff7\000Cd$; reps; f; es)
{}\mRightarrow{} (<waitfor, pvalues> = pv11\_p1\_ScoutStateFun(Cmd;accpts;f;bnum;es.start;e))
{}\mRightarrow{} (\mdownarrow{}\mexists{}L:E List
((waitfor = [i\mmember{}accpts|\mneg{}\msubb{}i \mmember{}\msubb{} map(\mlambda{}e.loc(e);L))])
\mwedge{} (\mforall{}pv:pv11\_p1\_Ballot\_Num() \mtimes{} \mBbbZ{} \mtimes{} Cmd
((pv \mmember{} pvalues)
\mLeftarrow{}{}\mRightarrow{} (pv \mmember{} concat(map(\mlambda{}e.(snd(pv11\_p1\_AcceptorStateFun(Cmd;ldrs$_{uid}\mbackslash{}f\000Cf24;f;es;e)));L)))))
\mwedge{} (\mforall{}e':E
((e' \mmember{} L)
{}\mRightarrow{} ((e' < e)
\mwedge{} loc(e') \mdownarrow{}\mmember{} accpts
\mwedge{} (bnum = (fst(pv11\_p1\_AcceptorStateFun(Cmd;ldrs$_{uid}$;f;es;e'\000C))))))))))
Date html generated:
2015_07_23-PM-04_57_25
Last ObjectModification:
2015_02_04-AM-08_08_31
Home
Index