Nuprl Lemma : hdf-union-ap

[A,B,C:Type]. ∀[X:hdataflow(A;B)]. ∀[Y:hdataflow(A;C)]. ∀[a:A].
  (X Y(a)
     = <fst(X(a)) fst(Y(a)), bag-map(λx.(inl x);snd(X(a))) bag-map(λx.(inr );snd(Y(a)))>
     ∈ (hdataflow(A;B C) × bag(B C))) supposing 
     (valueall-type(B) and 
     valueall-type(C))


Proof




Definitions occuring in Statement :  hdf-union: Y hdf-ap: X(a) hdataflow: hdataflow(A;B) valueall-type: valueall-type(T) uimplies: supposing a uall: [x:A]. B[x] pi1: fst(t) pi2: snd(t) lambda: λx.A[x] pair: <a, b> product: x:A × B[x] inr: inr  inl: inl x union: left right universe: Type equal: t ∈ T bag-append: as bs bag-map: bag-map(f;bs) bag: bag(T)
Lemmas :  valueall-type_wf hdataflow_wf unit_wf2 true_wf false_wf not_wf hdf-ap-run hdf-ap-inl hdf_halted_inl_red_lemma bag_wf hdataflow-ext assert-bnot bool_subtype_base subtype_base_sq bool_cases_sqequal equal_wf eqff_to_assert hdf_halted_halt_red_lemma empty_bag_append_lemma bag_map_empty_lemma hdf_ap_halt_lemma hdf-halted-is-halt eqtt_to_assert bool_wf hdf-halted_wf empty-bag_wf hdf-halt_wf hdf-run_wf evalall-reduce bag-map_wf void-valueall-type union-valueall-type bag-valueall-type valueall-type-has-valueall hdf-ap_wf hdf-union_wf bag-append_wf mk-hdf_wf subtype_rel_wf subtype_rel_simple_product subtype_rel_function subtype_rel_sum subtype-corec1 it_wf assert_wf assert_of_band
\mforall{}[A,B,C:Type].  \mforall{}[X:hdataflow(A;B)].  \mforall{}[Y:hdataflow(A;C)].  \mforall{}[a:A].
    (X  +  Y(a)
          =  <fst(X(a))  +  fst(Y(a))
              ,  bag-map(\mlambda{}x.(inl  x);snd(X(a)))  +  bag-map(\mlambda{}x.(inr  x  );snd(Y(a)))
              >)  supposing 
          (valueall-type(B)  and 
          valueall-type(C))



Date html generated: 2015_07_17-AM-08_06_39
Last ObjectModification: 2015_01_29-PM-04_32_10

Home Index