Step
*
3
2
of Lemma
global-class-iff-bounded-local-class
1. Info : Type
2. A : {A:Type| valueall-type(A)} 
3. X : EClass(A)
4. F : Id ─→ hdataflow(Info;A)@i'
5. ∀es:EO+(Info). ∀e:E.  (X(e) = (snd(F loc(e)*(map(λx.info(x);before(e)))(info(e)))) ∈ bag(A))
6. L : bag(Id)@i'
7. ∀es:EO+(Info). ∀v:A. ∀e:E.  (v ∈ X(e) 
⇒ loc(e) ↓∈ L)@i'
8. es : EO+(Info)
9. e : E
10. ¬loc(e) ↓∈ L
⊢ X(e)
= bag-union(bag-mapfilter(λx.(snd(F x*(map(λx@0.info(x@0);before(e)))(info(e))));λx.x = loc(e);
                          bag-remove-repeats(IdDeq;L)))
∈ bag(A)
BY
{ ((Assert ⌈↑bag-null(bag-mapfilter(λx.(snd(F x*(map(λx@0.info(x@0);before(e)))(info(e))));λx.x = loc(e);
                                    bag-remove-repeats(IdDeq;L)))⌉⋅
    THENA ((RWO "null-bag-mapfilter" 0 THENA Auto)
           THEN RWO "bag-null-filter" 0
           THEN Reduce 0
           THEN Auto
           THEN BagMemberD (-1)
           THEN (RW assert_pushdownC 0 THEN Auto)
           THEN D 0
           THEN Auto)
    )
   THEN (RWO "assert-bag-null" (-1) THENA Auto)
   THEN (RWO "-1" 0 THENA Auto)
   THEN Reduce 0
   THEN (RWO "assert-bag-null<" 0 THENA Auto)
   THEN SupposeNot
   THEN D (-3)
   THEN (RWO "bag-member-not-bag-null<" (-1) THENA Auto)
   THEN TrySquashExRepD (-1)
   THEN RepUR ``class-ap`` (-1)
   THEN Fold `classrel` (-1)
   THEN FHyp (-6) [-1]
   THEN Auto) }
Latex:
1.  Info  :  Type
2.  A  :  \{A:Type|  valueall-type(A)\} 
3.  X  :  EClass(A)
4.  F  :  Id  {}\mrightarrow{}  hdataflow(Info;A)@i'
5.  \mforall{}es:EO+(Info).  \mforall{}e:E.    (X(e)  =  (snd(F  loc(e)*(map(\mlambda{}x.info(x);before(e)))(info(e)))))
6.  L  :  bag(Id)@i'
7.  \mforall{}es:EO+(Info).  \mforall{}v:A.  \mforall{}e:E.    (v  \mmember{}  X(e)  {}\mRightarrow{}  loc(e)  \mdownarrow{}\mmember{}  L)@i'
8.  es  :  EO+(Info)
9.  e  :  E
10.  \mneg{}loc(e)  \mdownarrow{}\mmember{}  L
\mvdash{}  X(e)
=  bag-union(bag-mapfilter(\mlambda{}x.(snd(F  x*(map(\mlambda{}x@0.info(x@0);before(e)))(info(e))));\mlambda{}x.x  =  loc(e);
                                                    bag-remove-repeats(IdDeq;L)))
By
((Assert  \mkleeneopen{}\muparrow{}bag-null(bag-mapfilter(\mlambda{}x.(snd(F  x*(map(\mlambda{}x@0.info(x@0);before(e)))(info(e))));
                                                                    \mlambda{}x.x  =  loc(e);bag-remove-repeats(IdDeq;L)))\mkleeneclose{}\mcdot{}
    THENA  ((RWO  "null-bag-mapfilter"  0  THENA  Auto)
                  THEN  RWO  "bag-null-filter"  0
                  THEN  Reduce  0
                  THEN  Auto
                  THEN  BagMemberD  (-1)
                  THEN  (RW  assert\_pushdownC  0  THEN  Auto)
                  THEN  D  0
                  THEN  Auto)
    )
  THEN  (RWO  "assert-bag-null"  (-1)  THENA  Auto)
  THEN  (RWO  "-1"  0  THENA  Auto)
  THEN  Reduce  0
  THEN  (RWO  "assert-bag-null<"  0  THENA  Auto)
  THEN  SupposeNot
  THEN  D  (-3)
  THEN  (RWO  "bag-member-not-bag-null<"  (-1)  THENA  Auto)
  THEN  TrySquashExRepD  (-1)
  THEN  RepUR  ``class-ap``  (-1)
  THEN  Fold  `classrel`  (-1)
  THEN  FHyp  (-6)  [-1]
  THEN  Auto)
Home
Index