Step
*
3
of Lemma
memory-class3-fun-eq
1. Info : Type
2. B : Type
3. A1 : Type
4. A2 : Type
5. A3 : Type
6. init : Id ─→ B
7. tr1 : Id ─→ A1 ─→ B ─→ B
8. X1 : EClass(A1)
9. tr2 : Id ─→ A2 ─→ B ─→ B
10. X2 : EClass(A2)
11. tr3 : Id ─→ A3 ─→ B ─→ B
12. X3 : EClass(A3)
13. es : EO+(Info)
14. e : E
15. ¬↑pred(e) ∈b X2
16. ¬↑pred(e) ∈b X1
17. ¬↑first(e)
18. single-valued-classrel(es;X3;A3)
19. single-valued-classrel(es;X2;A2)
20. single-valued-classrel(es;X1;A1)
21. disjoint-classrel(es;A2;X2;A3;X3)
22. disjoint-classrel(es;A1;X1;A3;X3)
23. disjoint-classrel(es;A1;X1;A2;X2)
24. ↑pred(e) ∈b X3
⊢ ((tr1 o X1) || (tr2 o X2) || (tr3 o X3)(pred(e)) 
   loop-class-memory((tr1 o X1) || (tr2 o X2) || (tr3 o X3);λloc.{init loc})(pred(e)))
= (tr3 loc(e) X3@pred(e) memory-class3(init;tr1;X1;tr2;X2;tr3;X3)(pred(e)))
∈ B
BY
{ (Fold `classfun-res` 0
   THEN (RWO "classfun-res-parallel-class-right" 0 THENA Auto)
   THEN ProveFunctional
   THEN Try (Complete (((RWO "member-parallel-class-bool" 0 THENA Auto) THEN RWO "member-eclass-eclass1" 0 THEN Auto)))
   THEN (RWO "classfun-res-parallel-class-right" 0 THENA Auto)
   THEN Try (Complete ((RWO "member-eclass-eclass1" 0 THEN Auto)))
   THEN ProveFunctional
   THEN Fold `memory-class3` 0
   THEN (RW (AddrC [2;1] (LemmaC `classfun-res-eclass1`)) 0 THEN Auto)
   THEN Try ((RWO "es-loc-pred" 0 THEN Auto))
   THEN ProveFunctional
   THEN RWO "member-memory-class3" 0
   THEN Auto) }
Latex:
Latex:
1.  Info  :  Type
2.  B  :  Type
3.  A1  :  Type
4.  A2  :  Type
5.  A3  :  Type
6.  init  :  Id  {}\mrightarrow{}  B
7.  tr1  :  Id  {}\mrightarrow{}  A1  {}\mrightarrow{}  B  {}\mrightarrow{}  B
8.  X1  :  EClass(A1)
9.  tr2  :  Id  {}\mrightarrow{}  A2  {}\mrightarrow{}  B  {}\mrightarrow{}  B
10.  X2  :  EClass(A2)
11.  tr3  :  Id  {}\mrightarrow{}  A3  {}\mrightarrow{}  B  {}\mrightarrow{}  B
12.  X3  :  EClass(A3)
13.  es  :  EO+(Info)
14.  e  :  E
15.  \mneg{}\muparrow{}pred(e)  \mmember{}\msubb{}  X2
16.  \mneg{}\muparrow{}pred(e)  \mmember{}\msubb{}  X1
17.  \mneg{}\muparrow{}first(e)
18.  single-valued-classrel(es;X3;A3)
19.  single-valued-classrel(es;X2;A2)
20.  single-valued-classrel(es;X1;A1)
21.  disjoint-classrel(es;A2;X2;A3;X3)
22.  disjoint-classrel(es;A1;X1;A3;X3)
23.  disjoint-classrel(es;A1;X1;A2;X2)
24.  \muparrow{}pred(e)  \mmember{}\msubb{}  X3
\mvdash{}  ((tr1  o  X1)  ||  (tr2  o  X2)  ||  (tr3  o  X3)(pred(e)) 
      loop-class-memory((tr1  o  X1)  ||  (tr2  o  X2)  ||  (tr3  o  X3);\mlambda{}loc.\{init  loc\})(pred(e)))
=  (tr3  loc(e)  X3@pred(e)  memory-class3(init;tr1;X1;tr2;X2;tr3;X3)(pred(e)))
By
Latex:
(Fold  `classfun-res`  0
  THEN  (RWO  "classfun-res-parallel-class-right"  0  THENA  Auto)
  THEN  ProveFunctional
  THEN  Try  (Complete  (((RWO  "member-parallel-class-bool"  0  THENA  Auto)
                                            THEN  RWO  "member-eclass-eclass1"  0
                                            THEN  Auto)))
  THEN  (RWO  "classfun-res-parallel-class-right"  0  THENA  Auto)
  THEN  Try  (Complete  ((RWO  "member-eclass-eclass1"  0  THEN  Auto)))
  THEN  ProveFunctional
  THEN  Fold  `memory-class3`  0
  THEN  (RW  (AddrC  [2;1]  (LemmaC  `classfun-res-eclass1`))  0  THEN  Auto)
  THEN  Try  ((RWO  "es-loc-pred"  0  THEN  Auto))
  THEN  ProveFunctional
  THEN  RWO  "member-memory-class3"  0
  THEN  Auto)
Home
Index