Step
*
1
2
of Lemma
bind-class-program_wf
1. Info : Type
2. A : Type
3. B : Type
4. valueall-type(B)
5. X : EClass(A)
6. Y : A ─→ EClass(B)
7. F : Id ─→ hdataflow(Info;A)
8. ∀es:EO+(Info). ∀e:E.  (X(e) = (snd(F loc(e)*(map(λx.info(x);before(e)))(info(e)))) ∈ bag(A))
9. G : A ─→ Id ─→ hdataflow(Info;B)@i'
10. ∀es:EO+(Info). ∀e:E. ∀a:A.  (Y[a](e) = (snd(G a loc(e)*(map(λx.info(x);before(e)))(info(e)))) ∈ bag(B))@i'
11. es : EO+(Info)@i'
12. e : E@i
⊢ ∪e'∈≤loc(e).∪a∈snd(F loc(e)*(map(λx.info(x);before(e')))(info(e'))).
              snd(G a loc(e)*(map(λx.info(x);filter(λa.e' ≤loc a;before(e))))(info(e)))
= (snd(F loc(e) >>= λx.(G x loc(e))*(map(λx.info(x);before(e)))(info(e))))
∈ bag(B)
BY
{ (ThinVar `Y' THEN ThinVar `X' THEN (GenApply 5 THENA Auto) THEN ThinVar `F' THEN RenameVar `X' (-1)) }
1
1. Info : Type
2. A : Type
3. B : Type
4. valueall-type(B)
5. G : A ─→ Id ─→ hdataflow(Info;B)@i'
6. es : EO+(Info)@i'
7. e : E@i
8. X : hdataflow(Info;A)@i
⊢ ∪e'∈≤loc(e).∪a∈snd(X*(map(λx.info(x);before(e')))(info(e'))).snd(G a 
                                                                   loc(e)*(map(λx.info(x);filter(λa.e' ≤loc a;
                                                                                                 before(e))))(info(e)))
= (snd(X >>= λx.(G x loc(e))*(map(λx.info(x);before(e)))(info(e))))
∈ bag(B)
Latex:
Latex:
1.  Info  :  Type
2.  A  :  Type
3.  B  :  Type
4.  valueall-type(B)
5.  X  :  EClass(A)
6.  Y  :  A  {}\mrightarrow{}  EClass(B)
7.  F  :  Id  {}\mrightarrow{}  hdataflow(Info;A)
8.  \mforall{}es:EO+(Info).  \mforall{}e:E.    (X(e)  =  (snd(F  loc(e)*(map(\mlambda{}x.info(x);before(e)))(info(e)))))
9.  G  :  A  {}\mrightarrow{}  Id  {}\mrightarrow{}  hdataflow(Info;B)@i'
10.  \mforall{}es:EO+(Info).  \mforall{}e:E.  \mforall{}a:A.
            (Y[a](e)  =  (snd(G  a  loc(e)*(map(\mlambda{}x.info(x);before(e)))(info(e)))))@i'
11.  es  :  EO+(Info)@i'
12.  e  :  E@i
\mvdash{}  \mcup{}e'\mmember{}\mleq{}loc(e).\mcup{}a\mmember{}snd(F  loc(e)*(map(\mlambda{}x.info(x);before(e')))(info(e'))).
                            snd(G  a  loc(e)*(map(\mlambda{}x.info(x);filter(\mlambda{}a.e'  \mleq{}loc  a;before(e))))(info(e)))
=  (snd(F  loc(e)  >>=  \mlambda{}x.(G  x  loc(e))*(map(\mlambda{}x.info(x);before(e)))(info(e))))
By
Latex:
(ThinVar  `Y'  THEN  ThinVar  `X'  THEN  (GenApply  5  THENA  Auto)  THEN  ThinVar  `F'  THEN  RenameVar  `X'  (-1))
Home
Index