Step
*
1
2
2
1
of Lemma
Memory-classrel1
1. Info : Type
2. B : Type
3. A : Type
4. f : A ─→ B ─→ B
5. init : Id ─→ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. v : B
11. Accum-class(f;init;X) es pred(e) ∈ bag(B)
12. 0 < #(Accum-class(f;init;X) es pred(e))
⊢ uiff(v ∈ Accum-class(f;init;X)(pred(e));↓(False ∧ v ↓∈ init loc(e))
                                           ∨ ((¬False)
                                             ∧ ((∃a:A
                                                  (a ∈ X(pred(e))
                                                  ∧ (∃b:B. (b ∈ Memory-class(f;init;X)(pred(e)) ∧ (v = (f a b) ∈ B)))))
                                               ∨ ((∀a:A. (¬a ∈ X(pred(e)))) ∧ v ∈ Memory-class(f;init;X)(pred(e))))))
BY
{ ((FLemma `bag-size-bag-member` [-1] THENA Auto)
   THEN Fold `classrel` (-1)
   THEN (RWO "Accum-classrel-Memory" (-1) THENA Auto)
   THEN (RWO "Accum-classrel-Memory" 0 THENA MaAuto)
   THEN MaAuto
   THEN SqExRepD) }
1
1. Info : Type
2. B : Type
3. A : Type
4. f : A ─→ B ─→ B
5. init : Id ─→ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. v : B
11. Accum-class(f;init;X) es pred(e) ∈ bag(B)
12. 0 < #(Accum-class(f;init;X) es pred(e))
13. b : B
14. a : A
15. b1 : B
16. a ∈ X(pred(e))
17. b1 ∈ Memory-class(f;init;X)(pred(e))
18. b = (f a b1) ∈ B
19. (False ∧ v ↓∈ init loc(e))
∨ ((¬False)
  ∧ ((∃a:A. (a ∈ X(pred(e)) ∧ (∃b:B. (b ∈ Memory-class(f;init;X)(pred(e)) ∧ (v = (f a b) ∈ B)))))
    ∨ ((∀a:A. (¬a ∈ X(pred(e)))) ∧ v ∈ Memory-class(f;init;X)(pred(e)))))
⊢ ↓∃a:A. ∃b:B. (a ∈ X(pred(e)) ∧ b ∈ Memory-class(f;init;X)(pred(e)) ∧ (v = (f a b) ∈ B))
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
9.  \mneg{}\muparrow{}first(e)
10.  v  :  B
11.  Accum-class(f;init;X)  es  pred(e)  \mmember{}  bag(B)
12.  0  <  \#(Accum-class(f;init;X)  es  pred(e))
\mvdash{}  uiff(v  \mmember{}  Accum-class(f;init;X)(pred(e));\mdownarrow{}(False  \mwedge{}  v  \mdownarrow{}\mmember{}  init  loc(e))
                                                                                      \mvee{}  ((\mneg{}False)
                                                                                          \mwedge{}  ((\mexists{}a:A
                                                                                                    (a  \mmember{}  X(pred(e))
                                                                                                    \mwedge{}  (\mexists{}b:B
                                                                                                            (b  \mmember{}  Memory-class(f;init;X)(pred(e))
                                                                                                            \mwedge{}  (v  =  (f  a  b))))))
                                                                                              \mvee{}  ((\mforall{}a:A.  (\mneg{}a  \mmember{}  X(pred(e))))
                                                                                                  \mwedge{}  v  \mmember{}  Memory-class(f;init;X)(pred(e))))))
By
Latex:
((FLemma  `bag-size-bag-member`  [-1]  THENA  Auto)
  THEN  Fold  `classrel`  (-1)
  THEN  (RWO  "Accum-classrel-Memory"  (-1)  THENA  Auto)
  THEN  (RWO  "Accum-classrel-Memory"  0  THENA  MaAuto)
  THEN  MaAuto
  THEN  SqExRepD)
Home
Index