Step
*
2
1
of Lemma
loop-class-memory-fun-eq
1. Info : Type
2. B : Type
3. X : EClass(B ─→ B)
4. init : Id ─→ bag(B)
5. es : EO+(Info)
6. e : E
7. ¬↑first(e)
8. ∀l:Id. (1 ≤ #(init l))
9. ∀l:Id. single-valued-bag(init l;B)
10. single-valued-classrel(es;X;B ─→ B)
11. ↑pred(e) ∈b X
12. x : E@i
13. (x <loc e)@i
14. ↑0 <z #(eclass3(X;loop-class-memory(X;init)) es x)@i
15. ∀e'':E. ((x <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'')))@i
16. (last(λe'.0 <z #(eclass3(X;loop-class-memory(X;init)) es e')) e)
= (inl x)
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'))
            ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})))@i
⊢ eclass3(X;loop-class-memory(X;init))(x) = (X(pred(e)) loop-class-memory(X;init)(pred(e))) ∈ B
BY
{ ((RW assert_pushdownC (-3) THENA Auto)
   THEN (RWO "member-eclass-iff-size<" (-3) THENA Auto)
   THEN (RWO "member-eclass-eclass3" (-3) THENA Auto)
   THEN RepD
   THEN Fold `classfun-res` 0
   THEN (Assert ⌈x = pred(e) ∈ E⌉⋅
         THENA ((InstLemma `es-pred_property` [⌈es⌉;⌈e⌉]⋅ THEN Auto)
                THEN (InstHyp [⌈x⌉] (-1)⋅ THEN Auto)
                THEN (D (-1) THEN Auto)
                THEN (Assert ⌈False⌉⋅ THEN Auto)
                THEN (InstHyp [⌈pred(e)⌉] (-6)⋅ THENA Auto)
                THEN (RW assert_pushdownC (-1) THENA Auto)
                THEN (RWO "member-eclass-iff-size<" (-1) THENA Auto)
                THEN (RWO "member-eclass-eclass3" (-1) THENA Auto)
                THEN (D (-1) THEN Auto)
                THEN (BLemma `loop-class-memory-member` THEN Auto)
                THEN InstHyp [⌈loc(pred(e))⌉] (-15)⋅
                THEN Auto)
         )
   THEN (RWO "classfun-res-eclass3" 0 THENA Auto)
   THEN Try (Complete (((D 0 THEN Auto) THEN BLemma `loop-class-memory-single-val` THEN Auto)))
   THEN Try (Complete ((BLemma `loop-class-memory-single-val` THEN Auto)))
   THEN (RWO "-1" 0 THEN Auto)
   THEN BLemma `loop-class-memory-single-val`
   THEN Auto) }
Latex:
Latex:
1.  Info  :  Type
2.  B  :  Type
3.  X  :  EClass(B  {}\mrightarrow{}  B)
4.  init  :  Id  {}\mrightarrow{}  bag(B)
5.  es  :  EO+(Info)
6.  e  :  E
7.  \mneg{}\muparrow{}first(e)
8.  \mforall{}l:Id.  (1  \mleq{}  \#(init  l))
9.  \mforall{}l:Id.  single-valued-bag(init  l;B)
10.  single-valued-classrel(es;X;B  {}\mrightarrow{}  B)
11.  \muparrow{}pred(e)  \mmember{}\msubb{}  X
12.  x  :  E@i
13.  (x  <loc  e)@i
14.  \muparrow{}0  <z  \#(eclass3(X;loop-class-memory(X;init))  es  x)@i
15.  \mforall{}e'':E
            ((x  <loc  e'')  {}\mRightarrow{}  (e''  <loc  e)  {}\mRightarrow{}  (\mneg{}\muparrow{}0  <z  \#(eclass3(X;loop-class-memory(X;init))  es  e'')))@i
16.  (last(\mlambda{}e'.0  <z  \#(eclass3(X;loop-class-memory(X;init))  es  e'))  e)  =  (inl  x)@i
\mvdash{}  eclass3(X;loop-class-memory(X;init))(x)  =  (X(pred(e))  loop-class-memory(X;init)(pred(e)))
By
Latex:
((RW  assert\_pushdownC  (-3)  THENA  Auto)
  THEN  (RWO  "member-eclass-iff-size<"  (-3)  THENA  Auto)
  THEN  (RWO  "member-eclass-eclass3"  (-3)  THENA  Auto)
  THEN  RepD
  THEN  Fold  `classfun-res`  0
  THEN  (Assert  \mkleeneopen{}x  =  pred(e)\mkleeneclose{}\mcdot{}
              THENA  ((InstLemma  `es-pred\_property`  [\mkleeneopen{}es\mkleeneclose{};\mkleeneopen{}e\mkleeneclose{}]\mcdot{}  THEN  Auto)
                            THEN  (InstHyp  [\mkleeneopen{}x\mkleeneclose{}]  (-1)\mcdot{}  THEN  Auto)
                            THEN  (D  (-1)  THEN  Auto)
                            THEN  (Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}  THEN  Auto)
                            THEN  (InstHyp  [\mkleeneopen{}pred(e)\mkleeneclose{}]  (-6)\mcdot{}  THENA  Auto)
                            THEN  (RW  assert\_pushdownC  (-1)  THENA  Auto)
                            THEN  (RWO  "member-eclass-iff-size<"  (-1)  THENA  Auto)
                            THEN  (RWO  "member-eclass-eclass3"  (-1)  THENA  Auto)
                            THEN  (D  (-1)  THEN  Auto)
                            THEN  (BLemma  `loop-class-memory-member`  THEN  Auto)
                            THEN  InstHyp  [\mkleeneopen{}loc(pred(e))\mkleeneclose{}]  (-15)\mcdot{}
                            THEN  Auto)
              )
  THEN  (RWO  "classfun-res-eclass3"  0  THENA  Auto)
  THEN  Try  (Complete  (((D  0  THEN  Auto)  THEN  BLemma  `loop-class-memory-single-val`  THEN  Auto)))
  THEN  Try  (Complete  ((BLemma  `loop-class-memory-single-val`  THEN  Auto)))
  THEN  (RWO  "-1"  0  THEN  Auto)
  THEN  BLemma  `loop-class-memory-single-val`
  THEN  Auto)
Home
Index