Step * 2 2 of Lemma hdf-bind-gen-compose1-left


1. Type
2. Type
3. Type
4. Type
5. B ⟶ C
6. valueall-type(U)
7. valueall-type(C)
8. A@i
9. List@i
10. ∀X:hdataflow(A;B). ∀Y:C ⟶ hdataflow(A;U). ∀hdfs:bag(hdataflow(A;U)). ∀a:A.
      (hdf-out(f (hdfs) >>Y*(v);a) hdf-out(X (hdfs) >>f*(v);a) ∈ bag(U))@i
11. hdataflow(A;B)@i
12. C ⟶ hdataflow(A;U)@i
13. hdfs bag(hdataflow(A;U))@i
14. A@i
⊢ hdf-out(fst(f (hdfs) >>Y(u))*(v);a) hdf-out(fst(X (hdfs) >>f(u))*(v);a) ∈ bag(U)
BY
((RWO "hdf-bind-gen-ap" THEN Auto)
   THEN Reduce 0
   THEN (InstLemma `hdf-compose1-ap` [⌜A⌝;⌜B⌝;⌜C⌝;⌜X⌝;⌜f⌝;⌜u⌝]⋅ THENA Auto)
   THEN (HypSubst (-1) THENA Auto)
   THEN Reduce 0
   THEN (RWO "bag-map-map" THENA Auto)
   THEN BackThruSomeHyp
   THEN Try ((BLemma `bag-filter-wf3` THEN Auto))⋅}


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  U  :  Type
5.  f  :  B  {}\mrightarrow{}  C
6.  valueall-type(U)
7.  valueall-type(C)
8.  u  :  A@i
9.  v  :  A  List@i
10.  \mforall{}X:hdataflow(A;B).  \mforall{}Y:C  {}\mrightarrow{}  hdataflow(A;U).  \mforall{}hdfs:bag(hdataflow(A;U)).  \mforall{}a:A.
            (hdf-out(f  o  X  (hdfs)  >>=  Y*(v);a)  =  hdf-out(X  (hdfs)  >>=  Y  o  f*(v);a))@i
11.  X  :  hdataflow(A;B)@i
12.  Y  :  C  {}\mrightarrow{}  hdataflow(A;U)@i
13.  hdfs  :  bag(hdataflow(A;U))@i
14.  a  :  A@i
\mvdash{}  hdf-out(fst(f  o  X  (hdfs)  >>=  Y(u))*(v);a)  =  hdf-out(fst(X  (hdfs)  >>=  Y  o  f(u))*(v);a)


By


Latex:
((RWO  "hdf-bind-gen-ap"  0  THEN  Auto)
  THEN  Reduce  0
  THEN  (InstLemma  `hdf-compose1-ap`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}B\mkleeneclose{};\mkleeneopen{}C\mkleeneclose{};\mkleeneopen{}X\mkleeneclose{};\mkleeneopen{}f\mkleeneclose{};\mkleeneopen{}u\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (HypSubst  (-1)  0  THENA  Auto)
  THEN  Reduce  0
  THEN  (RWO  "bag-map-map"  0  THENA  Auto)
  THEN  BackThruSomeHyp
  THEN  Try  ((BLemma  `bag-filter-wf3`  THEN  Auto))\mcdot{})




Home Index