Step
*
1
2
1
of Lemma
bind-class-program_wf
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)
BY
{ (Assert ⌈∪e'∈≤loc(e).∪a∈snd(X*(map(λx.info(x);before(e')))(info(e'))).
                       snd((λa.(G a loc(e))) a*(map(λx.info(x);filter(λa.e' ≤loc a;before(e))))(info(e)))
           = (snd(X >>= λx.((λa.(G a loc(e))) x)*(map(λx.info(x);before(e)))(info(e))))
           ∈ bag(B)⌉⋅
   THEN Try ((Reduce (-1) THEN Trivial))
   THEN (GenConcl ⌈(λa.(G a loc(e))) = Y ∈ (A ─→ hdataflow(Info;B))⌉⋅ THENA Auto)
   THEN ThinVar `G') }
1
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 ─→ hdataflow(Info;B)@i
⊢ ∪e'∈≤loc(e).∪a∈snd(X*(map(λx.info(x);before(e')))(info(e'))).snd(Y 
                                                                   a*(map(λx.info(x);filter(λa.e' ≤loc a;
                                                                                            before(e))))(info(e)))
= (snd(X >>= λx.(Y x)*(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.  G  :  A  {}\mrightarrow{}  Id  {}\mrightarrow{}  hdataflow(Info;B)@i'
6.  es  :  EO+(Info)@i'
7.  e  :  E@i
8.  X  :  hdataflow(Info;A)@i
\mvdash{}  \mcup{}e'\mmember{}\mleq{}loc(e).\mcup{}a\mmember{}snd(X*(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(X  >>=  \mlambda{}x.(G  x  loc(e))*(map(\mlambda{}x.info(x);before(e)))(info(e))))
By
Latex:
(Assert  \mkleeneopen{}\mcup{}e'\mmember{}\mleq{}loc(e).\mcup{}a\mmember{}snd(X*(map(\mlambda{}x.info(x);before(e')))(info(e'))).
                                          snd((\mlambda{}a.(G  a  loc(e)))  a*(map(\mlambda{}x.info(x);filter(\mlambda{}a.e'  \mleq{}loc  a;
                                                                                                                                        before(e))))(info(e)))
                  =  (snd(X  >>=  \mlambda{}x.((\mlambda{}a.(G  a  loc(e)))  x)*(map(\mlambda{}x.info(x);before(e)))(info(e))))\mkleeneclose{}\mcdot{}
  THEN  Try  ((Reduce  (-1)  THEN  Trivial))
  THEN  (GenConcl  \mkleeneopen{}(\mlambda{}a.(G  a  loc(e)))  =  Y\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  ThinVar  `G')
Home
Index