Nuprl Lemma : std-components-property
∀[M:Type ─→ Type]
∀n2m:ℕ ─→ pMsg(P.M[P]). ∀l2m:Id ─→ pMsg(P.M[P]). ∀Cs:component(P.M[P]) List.
assuming(env,r.reliable-env(env; r))
<Cs, lg-nil()> |= es.∃cause:E ─→ (E?)
(∀C∈Cs.∀e:E
let G = last(data-stream(snd(C);map(λe.info(e);≤loc(e)))) in
∀p∈G.let y,c = p
in (com-kind(c) ∈ ``msg choose new``)
⇒ (∃e':E
((loc(e') = y ∈ Id)
∧ (e < e')
∧ (∃n:ℕ
∃nm:Id
(info(e') = command-to-msg(c;n2m n;l2m nm) ∈ pMsg(P.M[P])))
∧ ((cause e') = (inl e) ∈ (E?))))
supposing loc(e) = (fst(C)) ∈ Id)
supposing Continuous+(P.M[P])
Proof
Definitions occuring in Statement :
system-strongly-realizes: system-strongly-realizes,
command-to-msg: command-to-msg(c;nmsg;lmsg)
,
reliable-env: reliable-env(env; r)
,
component: component(P.M[P])
,
com-kind: com-kind(c)
,
pMsg: pMsg(P.M[P])
,
data-stream: data-stream(P;L)
,
lg-all: ∀x∈G.P[x]
,
lg-nil: lg-nil()
,
es-info: info(e)
,
es-le-before: ≤loc(e)
,
es-causl: (e < e')
,
es-loc: loc(e)
,
es-E: E
,
Id: Id
,
l_all: (∀x∈L.P[x])
,
last: last(L)
,
l_member: (x ∈ l)
,
map: map(f;as)
,
cons: [a / b]
,
nil: []
,
list: T List
,
strong-type-continuous: Continuous+(T.F[T])
,
nat: ℕ
,
let: let,
uimplies: b supposing a
,
uall: ∀[x:A]. B[x]
,
so_apply: x[s]
,
pi1: fst(t)
,
pi2: snd(t)
,
all: ∀x:A. B[x]
,
exists: ∃x:A. B[x]
,
implies: P
⇒ Q
,
and: P ∧ Q
,
unit: Unit
,
apply: f a
,
lambda: λx.A[x]
,
function: x:A ─→ B[x]
,
spread: spread def,
pair: <a, b>
,
inl: inl x
,
union: left + right
,
token: "$token"
,
atom: Atom
,
universe: Type
,
equal: s = t ∈ T
Lemmas :
pRun-invariant2,
nat_wf,
lg-nil_wf_dag,
pInTransit_wf,
pRun_wf2,
reliable-env-property2,
rec_select_update_lemma,
runEvents_wf,
true_wf,
run-event-loc_wf,
run-cause_wf,
subtype_rel_dep_function,
unit_wf2,
subtype_rel_sum,
set_wf,
reliable-env_wf,
pEnvType_wf,
sub-system_wf,
InitialSystem_wf,
list_wf,
component_wf,
Id_wf,
pMsg_wf,
strong-type-continuous_wf,
select_wf,
sq_stable__le,
int_seg_subtype-nat,
length_wf,
false_wf,
less_than_wf,
int_seg_wf,
sub-system_transitivity,
cons_wf,
nil_wf,
member_iff_sublist,
lg-nil_wf,
lg-contains_weakening,
map_append_sq,
map_cons_lemma,
map_nil_lemma,
data-stream-append,
map_wf,
es-E_wf,
stdEO_wf,
es-info_wf,
es-before_wf,
subtype_rel_list,
top_wf,
data-stream-cons,
data_stream_nil_lemma,
last_append,
Process-stream_wf,
pExt_wf,
null_cons_lemma,
length_of_cons_lemma,
length_of_nil_lemma,
equal_wf,
es-loc_wf,
event-ordering+_subtype,
Process_wf,
run-event-step-positive,
l_member_wf,
run-event-state-when_wf,
Process-apply_wf,
run-info_wf,
lg-size_wf,
pCom_wf,
lg-label_wf,
com-kind_wf,
equal_functionality_wrt_subtype_rel2,
and_wf,
squash_wf,
run-lt_wf,
exists_wf,
command-to-msg_wf,
subtype_rel_transitivity,
pRun_wf,
iterate-Process_wf,
es-first_wf2,
bool_wf,
eqtt_to_assert,
eqff_to_assert,
bool_cases_sqequal,
subtype_base_sq,
bool_subtype_base,
assert-bnot,
iter_df_nil_lemma,
null_nil_lemma,
list_subtype_base,
set_subtype_base,
assert_wf,
is-run-event_wf,
product_subtype_base,
le_wf,
int_subtype_base,
atom2_subtype_base,
nil-iff-no-member,
run-event-history_wf,
es-locl-first,
assert_elim,
btrue_neq_bfalse,
es-locl_wf,
stdEO-event-history,
not_wf,
run-event-step_wf,
stdEO-locl,
adjacent-run-states,
decidable__le,
not-le-2,
less-iff-le,
condition-implies-le,
minus-add,
minus-one-mul,
add-swap,
add-associates,
zero-add,
add-commutes,
add_functionality_wrt_le,
add-zero,
le-add-cancel2,
l_contains_wf,
mapfilter_wf,
eq_id_wf,
nat_plus_wf,
fulpRunType_wf,
null_wf3,
assert_of_null,
equal-wf-T-base,
sublist_wf,
lg-contains_wf,
System_wf,
member_sublist,
filter_wf5,
member_filter_2,
all_wf,
member_map,
filter_cons_lemma,
filter_nil_lemma,
cons_member,
iff_weakening_equal,
eq_id_self,
btrue_wf,
bfalse_wf,
bnot_wf,
l_contains-member,
run-prior-state_wf,
stdEO-E-property,
es-init_wf,
es-pred_wf,
es-loc-init,
es-loc-pred,
es-init-le-iff,
es-pred-loc-base,
es-pred-locl,
es-causle_weakening_locl,
es-causle_wf,
stdEO-causal,
le_weakening2,
le_weakening,
es-first-init,
assert_of_tt,
assert-eq-id,
decidable__lt,
le-add-cancel,
es-locl-iff,
es-locl_transitivity2,
es-le_weakening_eq,
es-locl_irreflexivity,
es-le_weakening,
trivial-int-eq1,
run-event-state_wf,
es-le-before_wf,
run-event-msg_wf,
es-init-elim2,
es-le_wf,
es-interval_wf,
sorted-by-strict-unique,
less_than_transitivity2,
less_than_irreflexivity,
run-event-interval_wf,
es-interval_wf2,
member-run-event-interval,
member-es-interval,
stdEO-le,
l_member_subtype,
l_before_select,
lelt_wf,
l_before-es-interval,
from-upto_wf,
list_induction,
subtype_rel_sets,
zero-le-nat,
subtype_rel_self,
length-map,
map-length,
length_wf_nat,
sqequal-wf-base,
less_than_transitivity1,
le_int_wf,
assert_of_le_int,
select-cons,
select-map,
subtract_wf,
minus-zero,
minus-minus,
sorted-by-filter,
non_neg_length,
from-upto-sorted,
length-map-sq,
list-set-type2,
l_all_iff,
es-le-loc,
filter_trivial,
es-ble_wf,
assert-es-ble,
l_all_wf2,
isect_wf,
last_wf,
append_wf,
list-cases,
product_subtype_list,
append_is_nil,
list_ind_nil_lemma,
list_ind_cons_lemma,
lg-all_wf,
es-causl_wf
Latex:
\mforall{}[M:Type {}\mrightarrow{} Type]
\mforall{}n2m:\mBbbN{} {}\mrightarrow{} pMsg(P.M[P]). \mforall{}l2m:Id {}\mrightarrow{} pMsg(P.M[P]). \mforall{}Cs:component(P.M[P]) List.
assuming(env,r.reliable-env(env; r))
<Cs, lg-nil()> |= es.\mexists{}cause:E {}\mrightarrow{} (E?)
(\mforall{}C\mmember{}Cs.\mforall{}e:E
let G = last(data-stream(snd(C);map(\mlambda{}e.info(e);\mleq{}loc(e)))) in
\mforall{}p\mmember{}G.let y,c = p
in (com-kind(c) \mmember{} ``msg choose new``)
{}\mRightarrow{} (\mexists{}e':E
((loc(e') = y)
\mwedge{} (e < e')
\mwedge{} (\mexists{}n:\mBbbN{}
\mexists{}nm:Id
(info(e')
= command-to-msg(c;n2m n;l2m nm)))
\mwedge{} ((cause e') = (inl e))))
supposing loc(e) = (fst(C)))
supposing Continuous+(P.M[P])
Date html generated:
2015_07_23-AM-11_25_15
Last ObjectModification:
2015_02_04-PM-05_01_30
Home
Index