Step * 2 2 of Lemma Memory-class-exists


1. Info Type
2. Type
3. Type
4. A ⟶ B ⟶ B
5. init Id ⟶ bag(B)
6. EClass(A)
7. es EO+(Info)
8. E@i
9. ∀e':E. ((e' < e)  0 < #(init loc(e'))  (↓∃v:B. v ∈ Memory-class(f;init;X)(e')))
10. 0 < #(init loc(e))@i
11. ¬↑first(e)
12. B
13. v ∈ Memory-class(f;init;X)(pred(e))
14. #(X es pred(e)) > 0
⊢ ↓∃v:B. v ∈ Memory-class(f;init;X)(e)
BY
((Assert ⌜0 < #(X es pred(e))⌝⋅ THENA Auto)
   THEN Thin (-2)
   THEN (FLemma `bag-member-iff-size` [-1] THENA Auto)
   THEN SquashExRepD
   THEN Try (Fold `classrel` (-1))
   THEN 0
   THEN (InstConcl [⌜v⌝]⋅ THENA Auto)
   THEN (BLemma `Memory-classrel2` THENA Auto)
   THEN (FLemma `Memory-classrel2` [-4] THENA Auto)
   THEN (-1)
   THEN All (Unfold `prior-iterated-classrel`)
   THEN 0
   THEN OrRight
   THEN Auto
   THEN RecUnfold `iterated-classrel` 0
   THEN InstConcl [⌜v⌝]⋅
   THEN MaAuto
   THEN SplitOrHyps
   THEN Auto
   THEN (OrLeft THENA Auto)
   THEN InstConcl [⌜x⌝]⋅
   THEN Auto) }


Latex:


Latex:

1.  Info  :  Type
2.  B  :  Type
3.  A  :  Type
4.  f  :  A  {}\mrightarrow{}  B  {}\mrightarrow{}  B
5.  init  :  Id  {}\mrightarrow{}  bag(B)
6.  X  :  EClass(A)
7.  es  :  EO+(Info)
8.  e  :  E@i
9.  \mforall{}e':E.  ((e'  <  e)  {}\mRightarrow{}  0  <  \#(init  loc(e'))  {}\mRightarrow{}  (\mdownarrow{}\mexists{}v:B.  v  \mmember{}  Memory-class(f;init;X)(e')))
10.  0  <  \#(init  loc(e))@i
11.  \mneg{}\muparrow{}first(e)
12.  v  :  B
13.  v  \mmember{}  Memory-class(f;init;X)(pred(e))
14.  \#(X  es  pred(e))  >  0
\mvdash{}  \mdownarrow{}\mexists{}v:B.  v  \mmember{}  Memory-class(f;init;X)(e)


By


Latex:
((Assert  \mkleeneopen{}0  <  \#(X  es  pred(e))\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  Thin  (-2)
  THEN  (FLemma  `bag-member-iff-size`  [-1]  THENA  Auto)
  THEN  SquashExRepD
  THEN  Try  (Fold  `classrel`  (-1))
  THEN  D  0
  THEN  (InstConcl  [\mkleeneopen{}f  x  v\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (BLemma  `Memory-classrel2`  THENA  Auto)
  THEN  (FLemma  `Memory-classrel2`  [-4]  THENA  Auto)
  THEN  D  (-1)
  THEN  All  (Unfold  `prior-iterated-classrel`)
  THEN  D  0
  THEN  OrRight
  THEN  Auto
  THEN  RecUnfold  `iterated-classrel`  0
  THEN  InstConcl  [\mkleeneopen{}v\mkleeneclose{}]\mcdot{}
  THEN  MaAuto
  THEN  SplitOrHyps
  THEN  Auto
  THEN  (OrLeft  THENA  Auto)
  THEN  InstConcl  [\mkleeneopen{}x\mkleeneclose{}]\mcdot{}
  THEN  Auto)




Home Index