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 last(data-stream(snd(C);map(λe.info(e);≤loc(e)))) in
                                       ∀p∈G.let y,c 
                                            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: List strong-type-continuous: Continuous+(T.F[T]) nat: let: let uimplies: 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:  Q and: P ∧ Q unit: Unit apply: 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: 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