Step
*
of Lemma
es-rec-class_wf
∀[Info,T:Type]. ∀[G:es:EO+(Info) ─→ E ─→ bag(T)]. ∀[F:es:EO+(Info) ─→ e':E ─→ T ─→ {e:E| (e' <loc e)}  ─→ bag(T)].
  (RecClass(first e
              G[es;e]
            or next e after e' with value v
                F[es;e';v;e]) ∈ EClass(T))
BY
{ (Auto
   THEN Unfold `eclass` 0
   THEN ExtWith [`es'] [⌈Top ─→ Top⌉]⋅
   THEN Auto
   THEN Try ((RecUnfold `es-rec-class` 0 THEN Complete (Auto)))
   THEN ExtWith [`e'] [⌈Top ─→ Top⌉]⋅
   THEN Auto
   THEN Try ((RecUnfold `es-rec-class` 0 THEN Reduce 0 THEN MemCD THEN Complete (Auto))⋅)
   THEN MoveToConcl (-1)
   THEN CausalInd'
   THEN RecUnfold `es-rec-class` 0⋅
   THEN Reduce 0
   THEN RepUR ``in-eclass eclass-val es-prior-interface`` 0
   THEN RepUR ``local-pred-class let`` 0) }
1
1. Info : Type
2. T : Type
3. G : es:EO+(Info) ─→ E ─→ bag(T)
4. F : es:EO+(Info) ─→ e':E ─→ T ─→ {e:E| (e' <loc e)}  ─→ bag(T)
5. es : EO+(Info)
6. e : E@i
7. ∀e1:E. ((e1 < e) 
⇒ (RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es e1 ∈ bag(T)))
⊢ if (#(case last(λe.(#(RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es e) =z 1)) e
      of inl(e') =>
      {e'}
      | inr(x) =>
      {}) =z 1)
  then F[es;only(case last(λe.(#(RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es e) =z 1)) 
                      e
        of inl(e') =>
        {e'}
        | inr(x) =>
        {});only(RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es 
                 only(case last(λe.(#(RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es 
                                      e) =z 1)) 
                           e
                  of inl(e') =>
                  {e'}
                  | inr(x) =>
                  {}));e]
  else G[es;e]
  fi  ∈ bag(T)
Latex:
Latex:
\mforall{}[Info,T:Type].  \mforall{}[G:es:EO+(Info)  {}\mrightarrow{}  E  {}\mrightarrow{}  bag(T)].  \mforall{}[F:es:EO+(Info)
                                                                                                            {}\mrightarrow{}  e':E
                                                                                                            {}\mrightarrow{}  T
                                                                                                            {}\mrightarrow{}  \{e:E|  (e'  <loc  e)\} 
                                                                                                            {}\mrightarrow{}  bag(T)].
    (RecClass(first  e
                            G[es;e]
                        or  next  e  after  e'  with  value  v
                                F[es;e';v;e])  \mmember{}  EClass(T))
By
Latex:
(Auto
  THEN  Unfold  `eclass`  0
  THEN  ExtWith  [`es']  [\mkleeneopen{}Top  {}\mrightarrow{}  Top\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  Try  ((RecUnfold  `es-rec-class`  0  THEN  Complete  (Auto)))
  THEN  ExtWith  [`e']  [\mkleeneopen{}Top  {}\mrightarrow{}  Top\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  Try  ((RecUnfold  `es-rec-class`  0  THEN  Reduce  0  THEN  MemCD  THEN  Complete  (Auto))\mcdot{})
  THEN  MoveToConcl  (-1)
  THEN  CausalInd'
  THEN  RecUnfold  `es-rec-class`  0\mcdot{}
  THEN  Reduce  0
  THEN  RepUR  ``in-eclass  eclass-val  es-prior-interface``  0
  THEN  RepUR  ``local-pred-class  let``  0)
Home
Index