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


1. Type
2. Type
3. Type
4. B ─→ hdataflow(A;C)
5. hdfs bag(hdataflow(A;C))
6. valueall-type(C)
7. inputs List
8. hdf-halted(hdf-halt() (hdfs) >>Y*(inputs)) hdf-halted(hdf-halt() (hdfs) >>= λx.hdf-return({x})*(inputs))
9. A
⊢ hdf-out(hdf-halt() (hdfs) >>Y*(inputs);a) hdf-out(hdf-halt() (hdfs) >>= λx.hdf-return({x})*(inputs);a) ∈ bag(C)
BY
(Thin (-2) THEN MoveToConcl (-1) THEN RepeatFor (MoveToConcl (-3)) THEN ListInd (-1) THEN Reduce THEN Auto) }

1
1. Type
2. Type
3. Type
4. valueall-type(C)
5. B ─→ hdataflow(A;C)@i
6. hdfs bag(hdataflow(A;C))@i
7. A@i
⊢ hdf-out(hdf-halt() (hdfs) >>Y;a) hdf-out(hdf-halt() (hdfs) >>= λx.hdf-return({x});a) ∈ bag(C)

2
1. Type
2. Type
3. Type
4. valueall-type(C)
5. A@i
6. List@i
7. ∀Y:B ─→ hdataflow(A;C). ∀hdfs:bag(hdataflow(A;C)). ∀a:A.
     (hdf-out(hdf-halt() (hdfs) >>Y*(v);a) hdf-out(hdf-halt() (hdfs) >>= λx.hdf-return({x})*(v);a) ∈ bag(C))@i
8. B ─→ hdataflow(A;C)@i
9. hdfs bag(hdataflow(A;C))@i
10. A@i
⊢ hdf-out(fst(hdf-halt() (hdfs) >>Y(u))*(v);a) hdf-out(fst(hdf-halt() (hdfs) >>= λx.hdf-return({x})(u))*(v);a) ∈ bag\000C(C)


Latex:



1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  Y  :  B  {}\mrightarrow{}  hdataflow(A;C)
5.  hdfs  :  bag(hdataflow(A;C))
6.  valueall-type(C)
7.  inputs  :  A  List
8.  hdf-halted(hdf-halt()  (hdfs)  >>=  Y*(inputs))  =  hdf-halted(hdf-halt()  (hdfs)  >>=  \mlambda{}x.hdf-return(\{x\}\000C)*(inputs))
9.  a  :  A
\mvdash{}  hdf-out(hdf-halt()  (hdfs)  >>=  Y*(inputs);a)  =  hdf-out(hdf-halt()  (hdfs)  >>=  \mlambda{}x.hdf-return(\{x\})*(in\000Cputs);a)


By

(Thin  (-2)
  THEN  MoveToConcl  (-1)
  THEN  RepeatFor  2  (MoveToConcl  (-3))
  THEN  ListInd  (-1)
  THEN  Reduce  0
  THEN  Auto)




Home Index