Step
*
2
1
of Lemma
hdf-until-halt-right
1. A : Type
2. B : Type
3. X : hdataflow(A;B)@i
4. a : A@i
⊢ hdf-out(hdf-until(X;hdf-halt());a) = hdf-out(X;a) ∈ bag(B)
BY
{ (RepUR ``hdf-until`` 0 THEN RecUnfold `mk-hdf` 0 THEN Reduce 0 THEN AutoSplit) }
1
1. A : Type
2. B : Type
3. X : hdataflow(A;B)@i
4. a : A@i
5. ↑hdf-halted(X)
⊢ {} = hdf-out(X;a) ∈ bag(B)
2
1. A : Type
2. B : Type
3. X : hdataflow(A;B)@i
4. ¬↑hdf-halted(X)
5. a : A@i
⊢ hdf-out(hdf-run(λa.let s1,b = let X',b = X(a) 
                                in <<X', inr ⋅ >, b> 
                     in <mk-hdf(p,a.let X,Y = p 
                                    in let X',b = X(a) 
                                       in let Y',c = Y(a) 
                                          in <<if bag-null(c) then X' else hdf-halt() fi , Y'>, b>p.hdf-halted(...);s1)
                        , b
                        >);a)
= hdf-out(X;a)
∈ bag(B)
Latex:
1.  A  :  Type
2.  B  :  Type
3.  X  :  hdataflow(A;B)@i
4.  a  :  A@i
\mvdash{}  hdf-out(hdf-until(X;hdf-halt());a)  =  hdf-out(X;a)
By
(RepUR  ``hdf-until``  0  THEN  RecUnfold  `mk-hdf`  0  THEN  Reduce  0  THEN  AutoSplit)
Home
Index