Step
*
6
of Lemma
parallel-class-program_wf
1. Info : Type
2. B : Type
3. valueall-type(B)
4. X : EClass(B)
5. Y : EClass(B)
6. Xpr : Id ─→ hdataflow(Info;B)
7. ∀es:EO+(Info). ∀e:E.  (X(e) = (snd(Xpr loc(e)*(map(λx.info(x);before(e)))(info(e)))) ∈ bag(B))
8. Ypr : Id ─→ hdataflow(Info;B)
9. ∀es:EO+(Info). ∀e:E.  (Y(e) = (snd(Ypr loc(e)*(map(λx.info(x);before(e)))(info(e)))) ∈ bag(B))
10. es : EO+(Info)@i'
11. e : E@i
12. u : Info@i
13. v : Info List@i
14. ∀x:Info. ∀ypr,xpr:hdataflow(Info;B).
      (((snd(xpr*(v)(x))) + (snd(ypr*(v)(x)))) = (snd(xpr || ypr*(v)(x))) ∈ bag(B))@i
15. x : Info@i
16. y : Unit@i
17. x1 : Info ─→ (hdataflow(Info;B) × bag(B))@i
⊢ (snd(fst((x1 u))*(v)(x)))
= (snd(fst(let s1,b = let Y',ys = x1 u 
                      in let out ←─ ys
                         in <<inr ⋅ , Y'>, out> 
           in <mk-hdf(XY,a.let X,Y = XY 
                           in let X',xs = X(a) 
                              in let Y',ys = Y(a) 
                                 in let out ←─ xs + ys
                                    in <<X', Y'>, out>XY.let X,Y = XY 
                                                       in hdf-halted(X) ∧b hdf-halted(Y);s1)
              , b
              >)*(v)(x)))
∈ bag(B)
BY
{ ((GenApply (-1) THENA Auto)
   THEN DProdsAndUnions
   THEN Reduce 0
   THEN (CallByValueReduceOn ⌈z2⌉ 0 ⋅ THENA MaAuto)
   THEN Reduce 0
   THEN Folds ``hdf-halt hdf-parallel`` 0
   THEN (InstHyp [⌈x⌉;⌈z1⌉;⌈hdf-halt()⌉] (-7)⋅ THENA Auto)
   THEN (RWW "iterate-hdf-halt" (-1)⋅ THENA Auto)
   THEN RepUR ``hdf-halt hdf-ap`` (-1)
   THEN Fold `hdf-ap` (-1)
   THEN Fold `hdf-halt` (-1)
   THEN Auto) }
Latex:
Latex:
1.  Info  :  Type
2.  B  :  Type
3.  valueall-type(B)
4.  X  :  EClass(B)
5.  Y  :  EClass(B)
6.  Xpr  :  Id  {}\mrightarrow{}  hdataflow(Info;B)
7.  \mforall{}es:EO+(Info).  \mforall{}e:E.    (X(e)  =  (snd(Xpr  loc(e)*(map(\mlambda{}x.info(x);before(e)))(info(e)))))
8.  Ypr  :  Id  {}\mrightarrow{}  hdataflow(Info;B)
9.  \mforall{}es:EO+(Info).  \mforall{}e:E.    (Y(e)  =  (snd(Ypr  loc(e)*(map(\mlambda{}x.info(x);before(e)))(info(e)))))
10.  es  :  EO+(Info)@i'
11.  e  :  E@i
12.  u  :  Info@i
13.  v  :  Info  List@i
14.  \mforall{}x:Info.  \mforall{}ypr,xpr:hdataflow(Info;B).
            (((snd(xpr*(v)(x)))  +  (snd(ypr*(v)(x))))  =  (snd(xpr  ||  ypr*(v)(x))))@i
15.  x  :  Info@i
16.  y  :  Unit@i
17.  x1  :  Info  {}\mrightarrow{}  (hdataflow(Info;B)  \mtimes{}  bag(B))@i
\mvdash{}  (snd(fst((x1  u))*(v)(x)))
=  (snd(fst(let  s1,b  =  let  Y',ys  =  x1  u 
                                            in  let  out  \mleftarrow{}{}  ys
                                                  in  <<inr  \mcdot{}  ,  Y'>,  out> 
                      in  <mk-hdf(XY,a.let  X,Y  =  XY 
                                                      in  let  X',xs  =  X(a) 
                                                            in  let  Y',ys  =  Y(a) 
                                                                  in  let  out  \mleftarrow{}{}  xs  +  ys
                                                                        in  <<X',  Y'>,  out>XY.let  X,Y  =  XY 
                                                                                                              in  hdf-halted(X)  \mwedge{}\msubb{}  hdf-halted(Y);s1)
                            ,  b
                            >)*(v)(x)))
By
Latex:
((GenApply  (-1)  THENA  Auto)
  THEN  DProdsAndUnions
  THEN  Reduce  0
  THEN  (CallByValueReduceOn  \mkleeneopen{}z2\mkleeneclose{}  0  \mcdot{}  THENA  MaAuto)
  THEN  Reduce  0
  THEN  Folds  ``hdf-halt  hdf-parallel``  0
  THEN  (InstHyp  [\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}z1\mkleeneclose{};\mkleeneopen{}hdf-halt()\mkleeneclose{}]  (-7)\mcdot{}  THENA  Auto)
  THEN  (RWW  "iterate-hdf-halt"  (-1)\mcdot{}  THENA  Auto)
  THEN  RepUR  ``hdf-halt  hdf-ap``  (-1)
  THEN  Fold  `hdf-ap`  (-1)
  THEN  Fold  `hdf-halt`  (-1)
  THEN  Auto)
Home
Index