Nuprl Lemma : reliable-env-property2

[M:Type ─→ Type]
  ∀S:InitialSystem(P.M[P]). ∀n2m:ℕ ─→ pMsg(P.M[P]). ∀l2m:Id ─→ pMsg(P.M[P]). ∀env:pEnvType(P.M[P]).
    let pRun(S;env;n2m;l2m) in
        reliable-env(env; r)
         (∀e:runEvents(r). ∀P:Process(P.M[P]).
              ((P ∈ run-event-state-when(r;e))
               ∀p∈snd((P (snd(run-info(r;e))))).let y,c 
                                                  in (com-kind(c) ∈ ``msg choose new``)
                                                      (∃e':runEvents(r)
                                                          ((run-event-loc(e') y ∈ Id)
                                                          ∧ (e run-lt(r) e')
                                                          ∧ (∃n:ℕ
                                                              ∃nm:Id
                                                               ((snd(run-info(r;e')))
                                                               command-to-msg(c;n2m n;l2m nm)
                                                               ∈ pMsg(P.M[P])))
                                                          ∧ ((run-cause(r) e') (inl e) ∈ (runEvents(r)?)))))) 
  supposing Continuous+(P.M[P])


Proof




Definitions occuring in Statement :  command-to-msg: command-to-msg(c;nmsg;lmsg) reliable-env: reliable-env(env; r) InitialSystem: InitialSystem(P.M[P]) run-lt: run-lt(r) run-cause: run-cause(r) run-event-loc: run-event-loc(e) run-event-state-when: run-event-state-when(r;e) runEvents: runEvents(r) run-info: run-info(r;e) pRun: pRun(S0;env;nat2msg;loc2msg) pEnvType: pEnvType(T.M[T]) com-kind: com-kind(c) pMsg: pMsg(P.M[P]) Process: Process(P.M[P]) lg-all: x∈G.P[x] Id: Id l_member: (x ∈ l) cons: [a b] nil: [] strong-type-continuous: Continuous+(T.F[T]) nat: let: let uimplies: supposing a uall: [x:A]. B[x] infix_ap: y so_apply: x[s] pi2: snd(t) all: x:A. B[x] exists: x:A. B[x] implies:  Q and: P ∧ Q unit: Unit apply: a function: x:A ─→ B[x] spread: spread def inl: inl x union: left right token: "$token" atom: Atom universe: Type equal: t ∈ T
Lemmas :  reliable-env-property nat_wf pRun_wf2 run-event-step-positive l_member_wf Process_wf run-event-state-when_wf pRun_wf less_than_wf runEvents_wf reliable-env_wf pEnvType_wf Id_wf pMsg_wf InitialSystem_wf strong-type-continuous_wf run-info_wf Process-apply_wf pExt_wf lg-label_wf pCom_wf com-kind_wf cons_wf nil_wf int_seg_wf lg-size_wf sq_stable__assert is-run-event_wf eq_int_wf bool_wf eqtt_to_assert assert_of_eq_int false_wf eqff_to_assert equal_wf bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot neg_assert_of_eq_int int_upper_subtype_nat le_wf nat_properties nequal-le-implies zero-add fulpRunType_wf subtract_wf decidable__le not-le-2 less-iff-le condition-implies-le minus-one-mul minus-add minus-minus add-associates add-swap add-commutes add_functionality_wrt_le add-zero le-add-cancel unit_wf2 System_wf subtype_rel_dep_function top_wf ldag_wf pInTransit_wf int_seg_subtype-nat subtype_rel_self lg-is-source_wf eq_id_wf component_wf lelt_wf eq_atom_wf assert_of_eq_atom comm-msg_wf neg_assert_of_eq_atom mapfilter_wf assert_wf lt_int_wf bnot_wf not_wf assert_elim bfalse_wf btrue_neq_bfalse bool_cases assert_of_lt_int iff_transitivity iff_weakening_uiff assert_of_bnot assert-eq-id and_wf pi2_wf member-mapfilter set_wf squash_wf true_wf lg-contains_wf add-cause_wf deliver-msg_wf lg-remove_wf_dag atom2_subtype_base pi1_wf_top subtype_rel_product subtype_top length_wf list_wf int_upper_wf list_induction all_wf select_wf sq_stable__le list_accum_wf deliver-msg-to-comp_wf length_of_nil_lemma stuck-spread base_wf list_accum_nil_lemma less_than_transitivity1 less_than_irreflexivity length_of_cons_lemma list_accum_cons_lemma le_int_wf assert_of_le_int minus-zero decidable__lt select-cons lg-contains_transitivity is-dag_wf lg-append_wf lg-append_wf_dag lg-append-contains lg-contains_weakening lg-label-map subtype_rel-labeled-graph length-map-sq subtype_rel_set labeled-graph_wf dep-isect-subtype zero-le-nat lg-size-append add_functionality_wrt_eq iff_weakening_equal add-mul-special zero-mul lg-label-append exists_wf lg-map_wf lg-size-map pRunType_wf intransit-to-info_wf run-event-step_wf rel-rel-plus run-pred_wf command-to-msg_wf not_assert_elim assert_of_band it_wf run-event-loc_wf run-lt_wf assert_functionality_wrt_uiff subtype_rel_sets run-cause_wf

Latex:
\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}S:InitialSystem(P.M[P]).  \mforall{}n2m:\mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}l2m:Id  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}env:pEnvType(P.M[P]).
        let  r  =  pRun(S;env;n2m;l2m)  in
                reliable-env(env;  r)
                {}\mRightarrow{}  (\mforall{}e:runEvents(r).  \mforall{}P:Process(P.M[P]).
                            ((P  \mmember{}  run-event-state-when(r;e))
                            {}\mRightarrow{}  \mforall{}p\mmember{}snd((P  (snd(run-info(r;e))))).let  y,c  =  p 
                                                                                                    in  (com-kind(c)  \mmember{}  ``msg  choose  new``)
                                                                                                          {}\mRightarrow{}  (\mexists{}e':runEvents(r)
                                                                                                                    ((run-event-loc(e')  =  y)
                                                                                                                    \mwedge{}  (e  run-lt(r)  e')
                                                                                                                    \mwedge{}  (\mexists{}n:\mBbbN{}
                                                                                                                            \mexists{}nm:Id
                                                                                                                              ((snd(run-info(r;e')))
                                                                                                                              =  command-to-msg(c;n2m  n;l2m  nm)))
                                                                                                                    \mwedge{}  ((run-cause(r)  e')  =  (inl  e)))))) 
    supposing  Continuous+(P.M[P])



Date html generated: 2015_07_23-AM-11_19_24
Last ObjectModification: 2015_02_04-PM-04_56_22

Home Index