Step
*
2
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. x : Info@i
13. x1 : Info ─→ (hdataflow(Info;B) × bag(B))@i
14. y : Unit@i
⊢ ((snd((x1 x))) + {})
= (snd(let s1,b = let X',xs = x1 x 
                  in let out ←─ xs + {}
                     in <<X', inr ⋅ >, 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 DProdsAndUnions
   THEN Reduce 0
   THEN (RWO "bag-append-empty" 0 THENA Auto)
   THEN (CallByValueReduceOn ⌈z2⌉ 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.  y  :  Unit@i
\mvdash{}  ((snd((x1  x)))  +  \{\})
=  (snd(let  s1,b  =  let  X',xs  =  x1  x 
                                    in  let  out  \mleftarrow{}{}  xs  +  \{\}
                                          in  <<X',  inr  \mcdot{}  >,  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  DProdsAndUnions
  THEN  Reduce  0
  THEN  (RWO  "bag-append-empty"  0  THENA  Auto)
  THEN  (CallByValueReduceOn  \mkleeneopen{}z2\mkleeneclose{}  0  \mcdot{}  THENA  MaAuto)
  THEN  Reduce  0
  THEN  Auto)
Home
Index