Step * 1 2 1 1 1 2 1 1 of Lemma bind-class-program_wf


1. Info Type
2. Type
3. Type
4. valueall-type(B)
5. es EO+(Info)@i'
6. E@i
7. hdataflow(Info;A)@i
8. A ⟶ hdataflow(Info;B)@i
9. ∀e:E
     (simple-hdf-bind(X;λx.(Y x))*(map(λx.info(x);before(e)))
     mk-hdf(p,a.simple-bind-nxt(λx.(Y x); p; a);p.let X,ys 
                                                    in ff;<X*(map(λx.info(x);before(e)))
                                                          , ⋃e'∈before(e).
                                                            bag-map(λa.Y a*(map(λx.info(x);filter(λa.e' ≤loc a;
                                                                                                  before(e))));
                                                            snd(X*(map(λx.info(x);before(e')))(info(e'))))
                                                          >)
     ∈ hdataflow(Info;B))
10. ↓Info
11. {e':E| (e' <loc e)}  List@i
12. before(e) L ∈ ({e':E| (e' <loc e)}  List)@i
13. v1 hdataflow(Info;A)@i
14. v2 bag(A)@i
15. X*(map(λx.info(x);L))(info(e)) = <v1, v2> ∈ (hdataflow(Info;A) × bag(A))@i
⊢ ⋃e'∈{e}.⋃a∈snd(X*(map(λx.info(x);before(e')))(info(e'))).snd(Y 
                                                                   a*(map(λx.info(x);filter(λa.e' ≤loc a;L)))(info(e)))
= ⋃yb∈bag-map(λP.P(info(e));⋃e'∈L.bag-map(λa.Y a*(map(λx.info(x);filter(λa.e' ≤loc a;L)));
                                  snd(X*(map(λx.info(x);before(e')))(info(e'))))
      bag-map(λx.(Y x);v2)).snd(yb)
∈ bag(B)
BY
((RWO "bag-combine-map" THENA (Auto THEN MaAuto)) THEN Reduce 0) }

1
1. Info Type
2. Type
3. Type
4. valueall-type(B)
5. es EO+(Info)@i'
6. E@i
7. hdataflow(Info;A)@i
8. A ⟶ hdataflow(Info;B)@i
9. ∀e:E
     (simple-hdf-bind(X;λx.(Y x))*(map(λx.info(x);before(e)))
     mk-hdf(p,a.simple-bind-nxt(λx.(Y x); p; a);p.let X,ys 
                                                    in ff;<X*(map(λx.info(x);before(e)))
                                                          , ⋃e'∈before(e).
                                                            bag-map(λa.Y a*(map(λx.info(x);filter(λa.e' ≤loc a;
                                                                                                  before(e))));
                                                            snd(X*(map(λx.info(x);before(e')))(info(e'))))
                                                          >)
     ∈ hdataflow(Info;B))
10. ↓Info
11. {e':E| (e' <loc e)}  List@i
12. before(e) L ∈ ({e':E| (e' <loc e)}  List)@i
13. v1 hdataflow(Info;A)@i
14. v2 bag(A)@i
15. X*(map(λx.info(x);L))(info(e)) = <v1, v2> ∈ (hdataflow(Info;A) × bag(A))@i
⊢ ⋃e'∈{e}.⋃a∈snd(X*(map(λx.info(x);before(e')))(info(e'))).snd(Y 
                                                                   a*(map(λx.info(x);filter(λa.e' ≤loc a;L)))(info(e)))
= ⋃yb∈⋃e'∈L.bag-map(λa.Y a*(map(λx.info(x);filter(λa.e' ≤loc a;L)));snd(X*(map(λx.info(x);before(e')))(info(e'))))
  bag-map(λx.(Y x);v2).snd(yb(info(e)))
∈ bag(B)


Latex:


Latex:

1.  Info  :  Type
2.  A  :  Type
3.  B  :  Type
4.  valueall-type(B)
5.  es  :  EO+(Info)@i'
6.  e  :  E@i
7.  X  :  hdataflow(Info;A)@i
8.  Y  :  A  {}\mrightarrow{}  hdataflow(Info;B)@i
9.  \mforall{}e:E
          (simple-hdf-bind(X;\mlambda{}x.(Y  x))*(map(\mlambda{}x.info(x);before(e)))
          =  mk-hdf(p,a.simple-bind-nxt(\mlambda{}x.(Y  x);  p;  a);p.let  X,ys  =  p 
                                                                                                        in  ff;<X*(map(\mlambda{}x.info(x);before(e)))
                                                                                                                    ,  \mcup{}e'\mmember{}before(e).
                                                                                                                        bag-map(\mlambda{}a.Y  a*(map(\mlambda{}x.info(x);
                                                                                                                                                                filter(\mlambda{}a.e'  \mleq{}loc  a;
                                                                                                                                                                              before(e))));
                                                                                                                        snd(X*(map(\mlambda{}x.info(x);
                                                                                                                                              before(e')))(info(e'))))
                                                                                                                    >))
10.  \mdownarrow{}Info
11.  L  :  \{e':E|  (e'  <loc  e)\}    List@i
12.  before(e)  =  L@i
13.  v1  :  hdataflow(Info;A)@i
14.  v2  :  bag(A)@i
15.  X*(map(\mlambda{}x.info(x);L))(info(e))  =  <v1,  v2>@i
\mvdash{}  \mcup{}e'\mmember{}L  +  \{e\}.\mcup{}a\mmember{}snd(X*(map(\mlambda{}x.info(x);before(e')))(info(e'))).snd(Y 
                                                                                                                                      a*(map(\mlambda{}x.info(x);
                                                                                                                                                    filter(\mlambda{}a.e'  \mleq{}loc  a;
                                                                                                                                                                  L)))(info(e)))
=  \mcup{}yb\mmember{}bag-map(\mlambda{}P.P(info(e));\mcup{}e'\mmember{}L.bag-map(\mlambda{}a.Y  a*(map(\mlambda{}x.info(x);filter(\mlambda{}a.e'  \mleq{}loc  a;L)));
                                                                    snd(X*(map(\mlambda{}x.info(x);before(e')))(info(e'))))
            +  bag-map(\mlambda{}x.(Y  x);v2)).snd(yb)


By


Latex:
((RWO  "bag-combine-map"  0  THENA  (Auto  THEN  MaAuto))  THEN  Reduce  0)




Home Index