Step * 2 of Lemma loop-class-memory-eq


1. Info Type
2. Type
3. EClass(B ⟶ B)
4. init Id ⟶ bag(B)
5. es EO+(Info)
6. E@i
7. ¬↑first(e)
8. ∀e1:E
     ((e1 < e)
      (loop-class-memory(X;init)(e1)
        if first(e1) then init loc(e1)
          if pred(e1) ∈b then eclass3(X;loop-class-memory(X;init))(pred(e1))
          else loop-class-memory(X;init)(pred(e1))
          fi 
        ∈ bag(B)))
⊢ loop-class-memory(X;init)(e)
if pred(e) ∈b then eclass3(X;loop-class-memory(X;init))(pred(e)) else loop-class-memory(X;init)(pred(e)) fi 
∈ bag(B)
BY
(AutoSplit
   THEN Try (Complete (((RW (AddrC [2] (LemmaC `loop-class-memory-no-input`)) THENA Auto)
                        THEN (RWO "loop-class-memory-prior-eq" THENA Auto)
                        THEN AutoSplit)))
   THEN RW (AddrC [2] (RecUnfoldC `loop-class-memory`)) 0
   THEN RepUR ``primed-class-opt class-ap`` 0
   THEN Fold `class-ap` 0
   THEN GenConclAtAddr [2;1]
   THEN AllReduce
   THEN DVar `v'
   THEN Reduce 0) }

1
1. Info Type
2. Type
3. EClass(B ⟶ B)
4. init Id ⟶ bag(B)
5. es EO+(Info)
6. E@i
7. ¬↑first(e)
8. ∀e1:E
     ((e1 < e)
      (loop-class-memory(X;init)(e1)
        if first(e1) then init loc(e1)
          if pred(e1) ∈b then eclass3(X;loop-class-memory(X;init))(pred(e1))
          else loop-class-memory(X;init)(pred(e1))
          fi 
        ∈ bag(B)))
9. ↑pred(e) ∈b X
10. : ∃e':{E| ((e' <loc e)
                ∧ (↑0 <#(eclass3(X;loop-class-memory(X;init))(e')))
                ∧ (∀e'':E. ((e' <loc e'')  (e'' <loc e)  (¬↑0 <#(eclass3(X;loop-class-memory(X;init))(e''))))))}@i
11. (last(λe'.0 <#(eclass3(X;loop-class-memory(X;init))(e'))) e)
(inl x)
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <#(eclass3(X;loop-class-memory(X;init))(e')))
            ∧ (∀e'':E. ((e' <loc e'')  (e'' <loc e)  (¬↑0 <#(eclass3(X;loop-class-memory(X;init))(e''))))))})
  ∨ (∃e':{E| ((e' <loc e) ∧ (↑0 <#(eclass3(X;loop-class-memory(X;init))(e'))))})))@i
⊢ eclass3(X;loop-class-memory(X;init))(x) eclass3(X;loop-class-memory(X;init))(pred(e)) ∈ bag(B)

2
1. Info Type
2. Type
3. EClass(B ⟶ B)
4. init Id ⟶ bag(B)
5. es EO+(Info)
6. E@i
7. ¬↑first(e)
8. ∀e1:E
     ((e1 < e)
      (loop-class-memory(X;init)(e1)
        if first(e1) then init loc(e1)
          if pred(e1) ∈b then eclass3(X;loop-class-memory(X;init))(pred(e1))
          else loop-class-memory(X;init)(pred(e1))
          fi 
        ∈ bag(B)))
9. ↑pred(e) ∈b X
10. : ¬(∃e':{E| ((e' <loc e) ∧ (↑0 <#(eclass3(X;loop-class-memory(X;init))(e'))))})@i
11. (last(λe'.0 <#(eclass3(X;loop-class-memory(X;init))(e'))) e)
(inr )
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <#(eclass3(X;loop-class-memory(X;init))(e')))
            ∧ (∀e'':E. ((e' <loc e'')  (e'' <loc e)  (¬↑0 <#(eclass3(X;loop-class-memory(X;init))(e''))))))})
  ∨ (∃e':{E| ((e' <loc e) ∧ (↑0 <#(eclass3(X;loop-class-memory(X;init))(e'))))})))@i
⊢ (init loc(e)) eclass3(X;loop-class-memory(X;init))(pred(e)) ∈ bag(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@i
7.  \mneg{}\muparrow{}first(e)
8.  \mforall{}e1:E
          ((e1  <  e)
          {}\mRightarrow{}  (loop-class-memory(X;init)(e1)
                =  if  first(e1)  then  init  loc(e1)
                    if  pred(e1)  \mmember{}\msubb{}  X  then  eclass3(X;loop-class-memory(X;init))(pred(e1))
                    else  loop-class-memory(X;init)(pred(e1))
                    fi  ))
\mvdash{}  loop-class-memory(X;init)(e)
=  if  pred(e)  \mmember{}\msubb{}  X
    then  eclass3(X;loop-class-memory(X;init))(pred(e))
    else  loop-class-memory(X;init)(pred(e))
    fi 


By


Latex:
(AutoSplit
  THEN  Try  (Complete  (((RW  (AddrC  [2]  (LemmaC  `loop-class-memory-no-input`))  0  THENA  Auto)
                                            THEN  (RWO  "loop-class-memory-prior-eq"  0  THENA  Auto)
                                            THEN  AutoSplit)))
  THEN  RW  (AddrC  [2]  (RecUnfoldC  `loop-class-memory`))  0
  THEN  RepUR  ``primed-class-opt  class-ap``  0
  THEN  Fold  `class-ap`  0
  THEN  GenConclAtAddr  [2;1]
  THEN  AllReduce
  THEN  DVar  `v'
  THEN  Reduce  0)




Home Index