Step
*
1
of Lemma
memory-class3-classrel
1. Info : Type
2. A1 : Type
3. A2 : Type
4. A3 : Type
5. B : 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. v : B
⊢ uiff(v ∈ memory-class3(init;tr1;X1;tr2;X2;tr3;X3)(e);↓if first(e)
                                                        then v = (init loc(e)) ∈ B
                                                        else ∃b:B
                                                              (b ∈ memory-class3(init;tr1;X1;tr2;X2;tr3;X3)(pred(e))
                                                              ∧ if pred(e) ∈b X1 ∨bpred(e) ∈b X2 ∨bpred(e) ∈b X3
                                                                then (∃a1:A1
                                                                       (a1 ∈ X1(pred(e)) ∧ (v = (tr1 loc(e) a1 b) ∈ B)))
                                                                     ∨ (∃a2:A2
                                                                         (a2 ∈ X2(pred(e))
                                                                         ∧ (v = (tr2 loc(e) a2 b) ∈ B)))
                                                                     ∨ (∃a3:A3
                                                                         (a3 ∈ X3(pred(e))
                                                                         ∧ (v = (tr3 loc(e) a3 b) ∈ B)))
                                                                else v = b ∈ B
                                                                fi )
                                                        fi )
BY
{ (Unfold `memory-class3` 0
   THEN (RW (AddrC [1] (LemmaC `loop-class-memory-classrel`)) 0 THENA Auto)
   THEN Reduce 0
   THEN AutoSplit) }
1
1. Info : Type
2. A1 : Type
3. A2 : Type
4. A3 : Type
5. B : 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. ¬↑first(e)
16. v : B
⊢ uiff(↓∃b:B
         (b ∈ loop-class-memory((tr1 o X1) || (tr2 o X2) || (tr3 o X3);λloc.{init loc})(pred(e))
         ∧ if pred(e) ∈b (tr1 o X1) || (tr2 o X2) || (tr3 o X3)
           then ∃f:B ─→ B. (f ∈ (tr1 o X1) || (tr2 o X2) || (tr3 o X3)(pred(e)) ∧ (v = (f b) ∈ B))
           else v = b ∈ B
           fi );↓∃b:B
                  (b ∈ loop-class-memory((tr1 o X1) || (tr2 o X2) || (tr3 o X3);λloc.{init loc})(pred(e))
                  ∧ if pred(e) ∈b X1 ∨bpred(e) ∈b X2 ∨bpred(e) ∈b X3
                    then (∃a1:A1. (a1 ∈ X1(pred(e)) ∧ (v = (tr1 loc(e) a1 b) ∈ B)))
                         ∨ (∃a2:A2. (a2 ∈ X2(pred(e)) ∧ (v = (tr2 loc(e) a2 b) ∈ B)))
                         ∨ (∃a3:A3. (a3 ∈ X3(pred(e)) ∧ (v = (tr3 loc(e) a3 b) ∈ B)))
                    else v = b ∈ B
                    fi ))
Latex:
Latex:
1.  Info  :  Type
2.  A1  :  Type
3.  A2  :  Type
4.  A3  :  Type
5.  B  :  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.  v  :  B
\mvdash{}  uiff(v  \mmember{}  memory-class3(init;tr1;X1;tr2;X2;tr3;X3)(e);\mdownarrow{}if  first(e)
                                                                                                                then  v  =  (init  loc(e))
                                                                                                                else  \mexists{}b:B
                                                                                                                            (b  \mmember{}  memory-class3(init;tr1;X1;tr2;X2;
                                                                                                                                                                  tr3;X3)(pred(e))
                                                                                                                            \mwedge{}  if  pred(e)  \mmember{}\msubb{}  X1
                                                                                                                                      \mvee{}\msubb{}pred(e)  \mmember{}\msubb{}  X2
                                                                                                                                      \mvee{}\msubb{}pred(e)  \mmember{}\msubb{}  X3
                                                                                                                                then  (\mexists{}a1:A1
                                                                                                                                              (a1  \mmember{}  X1(pred(e))
                                                                                                                                              \mwedge{}  (v  =  (tr1  loc(e)  a1  b))))
                                                                                                                                          \mvee{}  (\mexists{}a2:A2
                                                                                                                                                  (a2  \mmember{}  X2(pred(e))
                                                                                                                                                  \mwedge{}  (v  =  (tr2  loc(e)  a2  b))))
                                                                                                                                          \mvee{}  (\mexists{}a3:A3
                                                                                                                                                  (a3  \mmember{}  X3(pred(e))
                                                                                                                                                  \mwedge{}  (v  =  (tr3  loc(e)  a3  b))))
                                                                                                                                else  v  =  b
                                                                                                                                fi  )
                                                                                                                fi  )
By
Latex:
(Unfold  `memory-class3`  0
  THEN  (RW  (AddrC  [1]  (LemmaC  `loop-class-memory-classrel`))  0  THENA  Auto)
  THEN  Reduce  0
  THEN  AutoSplit)
Home
Index