Step
*
1
of Lemma
loop-class-memory-classrel
1. Info : Type
2. B : Type
3. X : EClass(B ─→ B)
4. init : Id ─→ bag(B)
5. es : EO+(Info)
6. e : E
7. v : B
8. ¬↑first(e)
9. ↑pred(e) ∈b X
10. e' : E
11. (e' <loc e)
12. ↓∃w:B. w ∈ eclass3(X;loop-class-memory(X;init))(e')
13. ∀e'':E. ((e'' <loc e) 
⇒ (e' <loc e'') 
⇒ (¬↓∃w:B. w ∈ eclass3(X;loop-class-memory(X;init))(e'')))
14. f : B ─→ B
15. b : B
16. f ∈ X(e')
17. b ∈ loop-class-memory(X;init)(e')
18. v = (f b) ∈ B
19. 0 < #(init loc(pred(e)))
20. ↓∃v:B. v ∈ loop-class-memory(X;init)(pred(e))
⊢ ↓∃b:B. (b ∈ loop-class-memory(X;init)(pred(e)) ∧ (∃f:B ─→ B. (f ∈ X(pred(e)) ∧ (v = (f b) ∈ B))))
BY
{ ((Assert ⌈e' = pred(e) ∈ E⌉⋅ THENM (D 0 THEN InstConcl [⌈b⌉]⋅ THEN Auto THEN InstConcl [⌈f⌉]⋅ THEN Auto))
   THEN InstLemma `es-pred_property` [⌈es⌉;⌈e⌉]⋅
   THEN Auto
   THEN InstHyp [⌈e'⌉] (-1)⋅
   THEN Auto
   THEN D (-1)
   THEN Auto
   THEN Assert ⌈False⌉⋅
   THEN Auto
   THEN (InstHyp [⌈pred(e)⌉] (-12)⋅ THENA Auto)
   THEN D (-1)
   THEN (RWO "assert-member-eclass" (-16) THENA Auto)
   THEN SquashExRepD
   THEN D 0
   THEN InstConcl [⌈v2 v1⌉]⋅
   THEN Auto
   THEN MaUseClassRel 0
   THEN D 0
   THEN InstConcl [⌈v2⌉;⌈v1⌉]⋅
   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.  v  :  B
8.  \mneg{}\muparrow{}first(e)
9.  \muparrow{}pred(e)  \mmember{}\msubb{}  X
10.  e'  :  E
11.  (e'  <loc  e)
12.  \mdownarrow{}\mexists{}w:B.  w  \mmember{}  eclass3(X;loop-class-memory(X;init))(e')
13.  \mforall{}e'':E
            ((e''  <loc  e)  {}\mRightarrow{}  (e'  <loc  e'')  {}\mRightarrow{}  (\mneg{}\mdownarrow{}\mexists{}w:B.  w  \mmember{}  eclass3(X;loop-class-memory(X;init))(e'')))
14.  f  :  B  {}\mrightarrow{}  B
15.  b  :  B
16.  f  \mmember{}  X(e')
17.  b  \mmember{}  loop-class-memory(X;init)(e')
18.  v  =  (f  b)
19.  0  <  \#(init  loc(pred(e)))
20.  \mdownarrow{}\mexists{}v:B.  v  \mmember{}  loop-class-memory(X;init)(pred(e))
\mvdash{}  \mdownarrow{}\mexists{}b:B.  (b  \mmember{}  loop-class-memory(X;init)(pred(e))  \mwedge{}  (\mexists{}f:B  {}\mrightarrow{}  B.  (f  \mmember{}  X(pred(e))  \mwedge{}  (v  =  (f  b)))))
By
Latex:
((Assert  \mkleeneopen{}e'  =  pred(e)\mkleeneclose{}\mcdot{}
  THENM  (D  0  THEN  InstConcl  [\mkleeneopen{}b\mkleeneclose{}]\mcdot{}  THEN  Auto  THEN  InstConcl  [\mkleeneopen{}f\mkleeneclose{}]\mcdot{}  THEN  Auto)
  )
  THEN  InstLemma  `es-pred\_property`  [\mkleeneopen{}es\mkleeneclose{};\mkleeneopen{}e\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  InstHyp  [\mkleeneopen{}e'\mkleeneclose{}]  (-1)\mcdot{}
  THEN  Auto
  THEN  D  (-1)
  THEN  Auto
  THEN  Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}
  THEN  Auto
  THEN  (InstHyp  [\mkleeneopen{}pred(e)\mkleeneclose{}]  (-12)\mcdot{}  THENA  Auto)
  THEN  D  (-1)
  THEN  (RWO  "assert-member-eclass"  (-16)  THENA  Auto)
  THEN  SquashExRepD
  THEN  D  0
  THEN  InstConcl  [\mkleeneopen{}v2  v1\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  MaUseClassRel  0
  THEN  D  0
  THEN  InstConcl  [\mkleeneopen{}v2\mkleeneclose{};\mkleeneopen{}v1\mkleeneclose{}]\mcdot{}
  THEN  Auto)
Home
Index