Step
*
3
2
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. ¬↑pred(e) ∈b X
8. ¬↑first(e)
9. ∀l:Id. (1 ≤ #(init l))
10. ∀l:Id. single-valued-bag(init l;B)
11. single-valued-classrel(es;X;B ─→ B)
12. y : ¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})@i
13. (last(λe'.0 <z #(eclass3(X;loop-class-memory(X;init)) es e')) e)
= (inr y )
∈ ((∃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
⊢ sv-bag-only(init loc(e)) = loop-class-memory(X;init)(pred(e)) ∈ B
BY
{ (RW (AddrC [3;2] (RecUnfoldC `loop-class-memory`)) 0
   THEN RepUR ``primed-class-opt classfun`` 0
   THEN Try (Fold `classfun` 0)
   THEN GenConclAtAddr [3;1;1]
   THEN DProdsAndUnions
   THEN AllReduce
   THEN Try (Fold `classfun` 0)) }
1
1. Info : Type
2. B : Type
3. X : EClass(B ─→ B)
4. init : Id ─→ bag(B)
5. es : EO+(Info)
6. e : E
7. ¬↑pred(e) ∈b X
8. ¬↑first(e)
9. ∀l:Id. (1 ≤ #(init l))
10. ∀l:Id. single-valued-bag(init l;B)
11. single-valued-classrel(es;X;B ─→ B)
12. y : ¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})@i
13. (last(λe'.0 <z #(eclass3(X;loop-class-memory(X;init)) es e')) e)
= (inr y )
∈ ((∃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
14. x : E@i
15. (x <loc pred(e))@i
16. ↑0 <z #(eclass3(X;loop-class-memory(X;init)) es x)@i
17. ∀e'':E. ((x <loc e'') 
⇒ (e'' <loc pred(e)) 
⇒ (¬↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'')))@i
18. (last(λe'.0 <z #(eclass3(X;loop-class-memory(X;init)) es e')) pred(e))
= (inl x)
∈ ((∃e':{E| ((e' <loc pred(e))
            ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'))
            ∧ (∀e'':E
                 ((e' <loc e'') 
⇒ (e'' <loc pred(e)) 
⇒ (¬↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc pred(e)) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})))@i
⊢ sv-bag-only(init loc(e)) = eclass3(X;loop-class-memory(X;init))(x) ∈ B
2
1. Info : Type
2. B : Type
3. X : EClass(B ─→ B)
4. init : Id ─→ bag(B)
5. es : EO+(Info)
6. e : E
7. ¬↑pred(e) ∈b X
8. ¬↑first(e)
9. ∀l:Id. (1 ≤ #(init l))
10. ∀l:Id. single-valued-bag(init l;B)
11. single-valued-classrel(es;X;B ─→ B)
12. y : ¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})@i
13. (last(λe'.0 <z #(eclass3(X;loop-class-memory(X;init)) es e')) e)
= (inr y )
∈ ((∃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
14. y1 : ¬(∃e':{E| ((e' <loc pred(e)) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})@i
15. (last(λe'.0 <z #(eclass3(X;loop-class-memory(X;init)) es e')) pred(e))
= (inr y1 )
∈ ((∃e':{E| ((e' <loc pred(e))
            ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'))
            ∧ (∀e'':E
                 ((e' <loc e'') 
⇒ (e'' <loc pred(e)) 
⇒ (¬↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc pred(e)) ∧ (↑0 <z #(eclass3(X;loop-class-memory(X;init)) es e')))})))@i
⊢ sv-bag-only(init loc(e)) = sv-bag-only(init loc(pred(e))) ∈ B
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{}pred(e)  \mmember{}\msubb{}  X
8.  \mneg{}\muparrow{}first(e)
9.  \mforall{}l:Id.  (1  \mleq{}  \#(init  l))
10.  \mforall{}l:Id.  single-valued-bag(init  l;B)
11.  single-valued-classrel(es;X;B  {}\mrightarrow{}  B)
12.  y  :  \mneg{}(\mexists{}e':\{E|  ((e'  <loc  e)  \mwedge{}  (\muparrow{}0  <z  \#(eclass3(X;loop-class-memory(X;init))  es  e')))\})@i
13.  (last(\mlambda{}e'.0  <z  \#(eclass3(X;loop-class-memory(X;init))  es  e'))  e)  =  (inr  y  )@i
\mvdash{}  sv-bag-only(init  loc(e))  =  loop-class-memory(X;init)(pred(e))
By
Latex:
(RW  (AddrC  [3;2]  (RecUnfoldC  `loop-class-memory`))  0
  THEN  RepUR  ``primed-class-opt  classfun``  0
  THEN  Try  (Fold  `classfun`  0)
  THEN  GenConclAtAddr  [3;1;1]
  THEN  DProdsAndUnions
  THEN  AllReduce
  THEN  Try  (Fold  `classfun`  0))
Home
Index