Nuprl Lemma : reliable-env-property

∀[M:Type ─→ Type]
  ∀S0:InitialSystem(P.M[P]). ∀n2m:ℕ ─→ pMsg(P.M[P]). ∀l2m:Id ─→ pMsg(P.M[P]). ∀env:pEnvType(P.M[P]).
    let r = pRun(S0;env;n2m;l2m) in
        reliable-env(env; r)
        ⇒ (∀tn:run-msg-commands(r)
              ∃e:runEvents(r)
               let t,n = tn 
               in (run-info(r;e)
                  = intransit-to-info(n2m;l2m;r;env;run-event-step(e);run-command(r;t;n))
                  ∈ (ℤ × Id × pMsg(P.M[P])))
                  ∧ (run-event-loc(e) = (fst(snd(run-command(r;t;n)))) ∈ Id)) 
  supposing Continuous+(P.M[P])


Proof




Definitions occuring in Statement :  intransit-to-info: intransit-to-info(n2m;l2m;r;env;t;lbl),  run-msg-commands: run-msg-commands(r),  run-command: run-command(r;t;n),  reliable-env: reliable-env(env; r),  InitialSystem: InitialSystem(P.M[P]),  run-event-step: run-event-step(e),  run-event-loc: run-event-loc(e),  runEvents: runEvents(r),  run-info: run-info(r;e),  pRun: pRun(S0;env;nat2msg;loc2msg),  pEnvType: pEnvType(T.M[T]),  pMsg: pMsg(P.M[P]),  Id: Id,  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,  function: x:A ─→ B[x],  spread: spread def,  product: x:A × B[x],  int: ℤ,  universe: Type,  equal: s = t ∈ T
Lemmas :  run-command-node_wf,  l_member_wf,  run-command_wf,  pInTransit_wf,  com-kind_wf,  cons_wf,  nil_wf,  nat_wf,  set_wf,  less_than_wf,  primrec-wf2,  squash_wf,  pRunType_wf,  add-zero,  le_wf,  member-less_than,  subtype_base_sq,  int_subtype_base,  pRun_wf2,  and_wf,  equal_wf,  Id_wf,  pMsg_wf,  unit_wf2,  top_wf,  ldag_wf,  pi2_wf,  lg-size_wf,  less_than_transitivity2,  subtract_wf,  eq_int_wf,  bool_wf,  eqtt_to_assert,  assert_of_eq_int,  eqff_to_assert,  bool_cases_sqequal,  bool_subtype_base,  assert-bnot,  neg_assert_of_eq_int,  add-associates,  add-swap,  add-commutes,  pRun_wf,  fulpRunType_wf,  zero-le-nat,  System_wf,  subtype_rel_dep_function,  int_seg_wf,  int_seg_subtype-nat,  false_wf,  subtype_rel_self,  all_wf,  lg-label_wf,  lelt_wf,  not_wf,  assert_wf,  lg-is-source_wf,  lt_int_wf,  bnot_wf,  assert_elim,  bfalse_wf,  btrue_neq_bfalse,  bool_cases,  assert_of_lt_int,  iff_transitivity,  iff_weakening_uiff,  assert_of_bnot,  decidable__le,  assert_witness,  decidable__lt,  not-le-2,  condition-implies-le,  minus-add,  minus-one-mul,  add_functionality_wrt_le,  le-add-cancel,  eq_atom_wf,  assert_of_eq_atom,  lg-size-deliver-msg,  comm-msg_wf,  lg-remove_wf_dag,  is-dag_wf,  true_wf,  lg-size-remove,  iff_weakening_equal,  less-iff-le,  minus-minus,  less_than_transitivity1,  lg-remove_wf,  deliver-msg_wf,  neg_assert_of_eq_atom,  le_antisymmetry_iff,  lg-label-deliver-msg,  lg-label-remove,  list_wf,  component_wf,  trivial-int-eq1,  add-mul-special,  zero-mul,  zero-add,  sq_stable__le,  subtract-is-less,  le_weakening,  exists_wf,  runEvents_wf,  run-info_wf,  intransit-to-info_wf,  run-event-step_wf,  run-event-step-positive,  pi1_wf_top,  set_subtype_base,  run-event-loc_wf,  pCom_wf,  less_than_irreflexivity,  int_upper_subtype_nat,  nat_properties,  nequal-le-implies,  le_weakening2,  le-add-cancel-alt,  member_wf,  strong-type-continuous_wf,  pEnvType_wf,  InitialSystem_wf,  nat_plus_wf,  subtype_rel_product,  labeled-graph_wf,  is-run-event_wf,  subtype_rel-equal,  decidable__equal_int,  not-equal-2,  assert-eq-id,  atom_subtype_base,  cons_member,  nil_member,  or_wf,  equal-wf-base,  equal-wf-T-base,  uiff_transitivity,  isect_wf,  member_singleton,  command-to-msg_wf

Latex:
\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}S0: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(S0;env;n2m;l2m)  in
                reliable-env(env;  r)
                {}\mRightarrow{}  (\mforall{}tn:run-msg-commands(r)
                            \mexists{}e:runEvents(r)
                              let  t,n  =  tn 
                              in  (run-info(r;e)
                                    =  intransit-to-info(n2m;l2m;r;env;run-event-step(e);run-command(r;t;n)))
                                    \mwedge{}  (run-event-loc(e)  =  (fst(snd(run-command(r;t;n)))))) 
    supposing  Continuous+(P.M[P])



Date html generated: 2015_07_23-AM-11_18_43
Last ObjectModification: 2015_02_04-PM-05_05_41

Home Index