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: T List
, 
valueall-type: valueall-type(T)
, 
uimplies: b supposing a
, 
uall: ∀[x:A]. B[x]
, 
pi2: snd(t)
, 
function: x:A ─→ B[x]
, 
universe: Type
, 
equal: s = 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