Step * 1 of Lemma parallel-class-program_wf


1. Info Type
2. Type
3. valueall-type(B)
4. EClass(B)
5. 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@i
12. Info@i
13. x1 Info ⟶ (hdataflow(Info;B) × bag(B))@i
14. x2 Info ⟶ (hdataflow(Info;B) × bag(B))@i
⊢ ((snd((x1 x))) (snd((x2 x))))
(snd(let s1,b let X',xs x1 
                  in let Y',ys x2 
                     in let out ⟵ xs ys
                        in <<X', 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
          >))
∈ bag(B)
BY
((GenApply (-2) THENA Auto)
   THEN (GenApply (-3) THENA Auto)
   THEN DProdsAndUnions
   THEN Reduce 0
   THEN (CallByValueReduceOn ⌜z5 z3⌝ 0 ⋅ THENA MaAuto)
   THEN Reduce 0
   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.  x  :  Info@i
13.  x1  :  Info  {}\mrightarrow{}  (hdataflow(Info;B)  \mtimes{}  bag(B))@i
14.  x2  :  Info  {}\mrightarrow{}  (hdataflow(Info;B)  \mtimes{}  bag(B))@i
\mvdash{}  ((snd((x1  x)))  +  (snd((x2  x))))
=  (snd(let  s1,b  =  let  X',xs  =  x1  x 
                                    in  let  Y',ys  =  x2  x 
                                          in  let  out  \mleftarrow{}{}  xs  +  ys
                                                in  <<X',  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
                    >))


By


Latex:
((GenApply  (-2)  THENA  Auto)
  THEN  (GenApply  (-3)  THENA  Auto)
  THEN  DProdsAndUnions
  THEN  Reduce  0
  THEN  (CallByValueReduceOn  \mkleeneopen{}z5  +  z3\mkleeneclose{}  0  \mcdot{}  THENA  MaAuto)
  THEN  Reduce  0
  THEN  Auto)




Home Index