Step
*
of Lemma
bind-class-program_wf
∀[Info,A,B:Type].
  ∀[X:EClass(A)]. ∀[Y:A ─→ EClass(B)]. ∀[xpr:LocalClass(X)]. ∀[ypr:a:A ─→ LocalClass(Y[a])].
    (xpr >>= ypr ∈ LocalClass(X >a> Y[a])) 
  supposing valueall-type(B)
BY
{ (Auto
   THEN D -2
   THEN (GenConcl ⌈ypr
                   = G
                   ∈ {G:A ─→ Id ─→ hdataflow(Info;B)| 
                      ∀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))} ⌉⋅
         THENA (Auto
                THEN MemTypeCD
                THEN Auto
                THEN Try (Complete ((D 0 THEN Auto)))
                THEN (GenApply (-4) THENA Auto)
                THEN D (-2)
                THEN BackThruSomeHyp)
         )
   THEN ThinVar `ypr'
   THEN RenameVar `F' (-3)
   THEN Unfold `bind-class-program` 0
   THEN D (-1)
   THEN (MemTypeCD THEN Reduce 0)
   THEN Auto
   THEN (Subst' X >a> Y[a](e) ~ ∪e'∈≤loc(e).∪a∈X(e').Y[a](e) 0
         THEN Try ((RepUR ``bind-class class-ap`` 0 THEN Fold `class-ap` 0 THEN Trivial)⋅)
         ))⋅ }
1
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∈X(e').Y[a](e) = (snd(F loc(e) >>= λx.(G x loc(e))*(map(λx.info(x);before(e)))(info(e)))) ∈ bag(B)
Latex:
Latex:
\mforall{}[Info,A,B:Type].
    \mforall{}[X:EClass(A)].  \mforall{}[Y:A  {}\mrightarrow{}  EClass(B)].  \mforall{}[xpr:LocalClass(X)].  \mforall{}[ypr:a:A  {}\mrightarrow{}  LocalClass(Y[a])].
        (xpr  >>=  ypr  \mmember{}  LocalClass(X  >a>  Y[a])) 
    supposing  valueall-type(B)
By
Latex:
(Auto
  THEN  D  -2
  THEN  (GenConcl  \mkleeneopen{}ypr  =  G\mkleeneclose{}\mcdot{}
              THENA  (Auto
                            THEN  MemTypeCD
                            THEN  Auto
                            THEN  Try  (Complete  ((D  0  THEN  Auto)))
                            THEN  (GenApply  (-4)  THENA  Auto)
                            THEN  D  (-2)
                            THEN  BackThruSomeHyp)
              )
  THEN  ThinVar  `ypr'
  THEN  RenameVar  `F'  (-3)
  THEN  Unfold  `bind-class-program`  0
  THEN  D  (-1)
  THEN  (MemTypeCD  THEN  Reduce  0)
  THEN  Auto
  THEN  (Subst'  X  >a>  Y[a](e)  \msim{}  \mcup{}e'\mmember{}\mleq{}loc(e).\mcup{}a\mmember{}X(e').Y[a](e)  0
              THEN  Try  ((RepUR  ``bind-class  class-ap``  0  THEN  Fold  `class-ap`  0  THEN  Trivial)\mcdot{})
              ))\mcdot{}
Home
Index