Nuprl Lemma : hdf-union-eq-disju

∀[A,B,C:Type]. ∀[X:hdataflow(A;B)]. ∀[Y:hdataflow(A;C)].
  (X + Y = (λx.(inl x)) o X || (λx.(inr x )) o Y ∈ hdataflow(A;B + C)) supposing 
     (valueall-type(B) and 
     valueall-type(C))


Proof




Definitions occuring in Statement :  hdf-union: X + Y,  hdf-parallel: X || Y,  hdf-compose1: f o X,  hdataflow: hdataflow(A;B),  valueall-type: valueall-type(T),  uimplies: b supposing a,  uall: ∀[x:A]. B[x],  lambda: λx.A[x],  inr: inr x ,  inl: inl x,  union: left + right,  universe: Type,  equal: s = t ∈ T
Lemmas :  hdataflow-equal,  hdf-union_wf,  hdf-parallel_wf,  hdf-compose1_wf,  union-valueall-type,  list_wf,  valueall-type_wf,  hdataflow_wf,  nat_properties,  less_than_transitivity1,  less_than_irreflexivity,  ge_wf,  less_than_wf,  equal-wf-T-base,  colength_wf_list,  list-cases,  iter_hdf_nil_lemma,  product_subtype_list,  spread_cons_lemma,  sq_stable__le,  le_antisymmetry_iff,  add_functionality_wrt_le,  add-associates,  add-zero,  zero-add,  le-add-cancel,  nat_wf,  decidable__le,  false_wf,  not-le-2,  condition-implies-le,  minus-add,  minus-one-mul,  add-commutes,  le_wf,  subtract_wf,  not-ge-2,  less-iff-le,  minus-minus,  add-swap,  subtype_base_sq,  set_subtype_base,  int_subtype_base,  iter_hdf_cons_lemma,  hdf-halted_wf,  bool_wf,  eqtt_to_assert,  hdf_halted_halt_red_lemma,  empty_bag_append_lemma,  btrue_wf,  eqff_to_assert,  equal_wf,  bool_cases_sqequal,  bool_subtype_base,  assert-bnot,  hdf_halted_run_red_lemma,  bfalse_wf,  hdf-ap_wf,  bag_wf,  iterate-hdataflow_wf,  iff_weakening_equal,  hdf-parallel-ap,  hdf-compose1-ap,  squash_wf,  true_wf,  pi1_wf_top,  top_wf,  hdf-union-ap,  subtype_rel_product,  subtype_top,  list_induction,  all_wf,  hdf-out_wf,  hdf_out_halt_red_lemma,  hdf-ap-run,  hdataflow-ext,  unit_wf2,  hdf_halted_inl_red_lemma,  bag_map_empty_lemma,  hdf-ap-inl,  valueall-type-has-valueall,  bag-valueall-type,  bag-map_wf,  evalall-reduce,  void-valueall-type,  not_wf,  bag-append_wf,  empty-bag_wf,  hdf-out-run
\mforall{}[A,B,C:Type].  \mforall{}[X:hdataflow(A;B)].  \mforall{}[Y:hdataflow(A;C)].
    (X  +  Y  =  (\mlambda{}x.(inl  x))  o  X  ||  (\mlambda{}x.(inr  x  ))  o  Y)  supposing 
          (valueall-type(B)  and 
          valueall-type(C))



Date html generated: 2015_07_17-AM-08_06_42
Last ObjectModification: 2015_02_03-PM-09_53_03

Home Index