Nuprl Lemma : iterate-hdf-bind-simple

[A,B,C:Type]. ∀[X:hdataflow(A;B)]. ∀[Y:B ─→ hdataflow(A;C)].
  ∀[L:A List]. ∀[a:A].  ((snd(X >>Y*(L)(a))) (snd(simple-hdf-bind(X;Y)*(L)(a))) ∈ bag(C)) supposing valueall-type(C)


Proof




Definitions occuring in Statement :  simple-hdf-bind: simple-hdf-bind(X;Y) hdf-bind: X >>Y iterate-hdataflow: P*(inputs) hdf-ap: X(a) hdataflow: hdataflow(A;B) list: List valueall-type: valueall-type(T) uimplies: supposing a uall: [x:A]. B[x] pi2: snd(t) function: x:A ─→ B[x] universe: Type equal: t ∈ T bag: bag(T)
Lemmas :  list_induction all_wf bag_wf hdataflow_wf bag-filter_wf bnot_wf hdf-halted_wf subtype_rel_bag assert_wf hdf-ap_wf iterate-hdataflow_wf mk-hdf_wf bag-null_wf bool_wf eqtt_to_assert assert-bag-null bind-nxt_wf bfalse_wf simple-bind-nxt_wf list_wf iter_hdf_nil_lemma equal_wf iter_hdf_cons_lemma valueall-type_wf empty-bag_wf bag_filter_empty_lemma pi2_wf band_commutes iff_weakening_equal equal-wf-T-base bor_wf or_wf not_wf iff_transitivity iff_weakening_uiff assert_of_band bnot_thru_band eqff_to_assert assert_of_bor assert_of_bnot hdataflow-ext unit_wf2 false_wf true_wf bag_map_empty_lemma valueall-type-has-valueall bag-valueall-type product-valueall-type hdataflow-valueall-type bag-map_wf bag-append_wf evalall-reduce bag-combine_wf bag-map-append top_wf bag-append-empty bag-subtype-list bag-filter-split equal-empty-bag equal-wf-base-T bag-combine-map bag-combine-empty-right squash_wf set-valueall-type bag-combine-append-left subtype_rel_dep_function subtype_rel_self set_wf empty_bag_append_lemma decidable__cand decidable__assert iterate-hdf-halt subtype_rel_list subtype_base_sq unit_subtype_base equal-unit it_wf hdf-halt_wf hdf_ap_halt_lemma bag-map-map pi1_wf_top cons_wf bag-filter-wf3 bag-filter-append assert_elim not_assert_elim btrue_neq_bfalse empty-bag-iff-no-member
\mforall{}[A,B,C:Type].  \mforall{}[X:hdataflow(A;B)].  \mforall{}[Y:B  {}\mrightarrow{}  hdataflow(A;C)].
    \mforall{}[L:A  List].  \mforall{}[a:A].    ((snd(X  >>=  Y*(L)(a)))  =  (snd(simple-hdf-bind(X;Y)*(L)(a)))) 
    supposing  valueall-type(C)



Date html generated: 2015_07_17-AM-08_07_52
Last ObjectModification: 2015_02_03-PM-09_48_46

Home Index