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 r = 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 = p 
                                                  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: b supposing a,  uall: ∀[x:A]. B[x],  infix_ap: x f y,  so_apply: x[s],  pi2: snd(t),  all: ∀x:A. B[x],  exists: ∃x:A. B[x],  implies: P ⇒ Q,  and: P ∧ Q,  unit: Unit,  apply: f a,  function: x:A ─→ B[x],  spread: spread def,  inl: inl x,  union: left + right,  token: "$token",  atom: Atom,  universe: Type,  equal: s = 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