Step * 1 1 of Lemma hdf-union_wf


1. Type
2. Type
3. Type
4. hdataflow(A;B)
5. hdataflow(A;C)
6. valueall-type(C)
7. valueall-type(B)
8. X1 hdataflow(A;B)@i
9. X2 hdataflow(A;C)@i
10. A@i
⊢ let X',xs X1(a) 
  in let Y',ys X2(a) 
     in let out ←─ bag-map(λx.(inl x);xs) bag-map(λx.(inr );ys)
        in <<X', Y'>out> ∈ hdataflow(A;B) × hdataflow(A;C) × bag(B C)
BY
RepeatFor ((GenConclAtAddr [2;1] THEN -2 THEN Reduce 0)) }

1
1. Type
2. Type
3. Type
4. hdataflow(A;B)
5. hdataflow(A;C)
6. valueall-type(C)
7. valueall-type(B)
8. X1 hdataflow(A;B)@i
9. X2 hdataflow(A;C)@i
10. A@i
11. v1 hdataflow(A;B)@i
12. v2 bag(B)@i
13. X1(a) = <v1, v2> ∈ (hdataflow(A;B) × bag(B))@i
14. v3 hdataflow(A;C)@i
15. v4 bag(C)@i
16. X2(a) = <v3, v4> ∈ (hdataflow(A;C) × bag(C))@i
⊢ let out ←─ bag-map(λx.(inl x);v2) bag-map(λx.(inr );v4)
  in <<v1, v3>out> ∈ hdataflow(A;B) × hdataflow(A;C) × bag(B C)


Latex:



1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  X  :  hdataflow(A;B)
5.  Y  :  hdataflow(A;C)
6.  valueall-type(C)
7.  valueall-type(B)
8.  X1  :  hdataflow(A;B)@i
9.  X2  :  hdataflow(A;C)@i
10.  a  :  A@i
\mvdash{}  let  X',xs  =  X1(a) 
    in  let  Y',ys  =  X2(a) 
          in  let  out  \mleftarrow{}{}  bag-map(\mlambda{}x.(inl  x);xs)  +  bag-map(\mlambda{}x.(inr  x  );ys)
                in  <<X',  Y'>,  out>  \mmember{}  hdataflow(A;B)  \mtimes{}  hdataflow(A;C)  \mtimes{}  bag(B  +  C)


By

RepeatFor  2  ((GenConclAtAddr  [2;1]  THEN  D  -2  THEN  Reduce  0))




Home Index