Step
*
1
of Lemma
es-rec-class_wf
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)
BY
{ ((GenConclAtAddr [2;1;1;1;1] THENM (Reduce (-2) THEN D -2 THEN Reduce 0 THEN Try (Complete (Auto))))
   THENA (Try (BLemma `es-local-pred_wf2`) THEN Auto THEN GenConclAtAddrType ⌈bag(T)⌉ [2;1]⋅ THEN Auto)⋅
   ) }
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)))
8. x : ∃e':{E| ((e' <loc 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'':E
                    ((e' <loc e'')
                    
⇒ (e'' <loc e)
                    
⇒ (¬↑(#(RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es 
                             e'') =z 1)))))}@i
9. (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)
= (inl x)
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑((λ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'))
            ∧ (∀e'':E
                 ((e' <loc e'')
                 
⇒ (e'' <loc e)
                 
⇒ (¬↑((λ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'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e)
               ∧ (↑((λ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')))})))@i
⊢ F[es;x;only(RecClass(first e  G[es;e]or next e after e' with value v    F[es;e';v;e]) es x);e] ∈ bag(T)
Latex:
Latex:
1.  Info  :  Type
2.  T  :  Type
3.  G  :  es:EO+(Info)  {}\mrightarrow{}  E  {}\mrightarrow{}  bag(T)
4.  F  :  es:EO+(Info)  {}\mrightarrow{}  e':E  {}\mrightarrow{}  T  {}\mrightarrow{}  \{e:E|  (e'  <loc  e)\}    {}\mrightarrow{}  bag(T)
5.  es  :  EO+(Info)
6.  e  :  E@i
7.  \mforall{}e1:E
          ((e1  <  e)
          {}\mRightarrow{}  (RecClass(first  e    G[es;e]or  next  e  after  e'  with  value  v        F[es;e';v;e])  es  e1  \mmember{}  bag(T)))
\mvdash{}  if  (\#(case  last(\mlambda{}e.(\#(RecClass(first  e
                                                                      G[es;e]
                                                                  or  next  e  after  e'  with  value  v
                                                                          F[es;e';v;e]) 
                                                es 
                                                e)  =\msubz{}  1)) 
                          e
            of  inl(e')  =>
            \{e'\}
            |  inr(x)  =>
            \{\})  =\msubz{}  1)
    then  F[es;only(case  last(\mlambda{}e.(\#(RecClass(first  e
                                                                                        G[es;e]
                                                                                    or  next  e  after  e'  with  value  v
                                                                                            F[es;e';v;e]) 
                                                                  es 
                                                                  e)  =\msubz{}  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(\mlambda{}e.(\#(RecClass(first  e
                                                                                                  G[es;e]
                                                                                              or  next  e  after  e'  with  value  v
                                                                                                      F[es;e';v;e]) 
                                                                            es 
                                                                            e)  =\msubz{}  1)) 
                                                      e
                                    of  inl(e')  =>
                                    \{e'\}
                                    |  inr(x)  =>
                                    \{\}));e]
    else  G[es;e]
    fi    \mmember{}  bag(T)
By
Latex:
((GenConclAtAddr  [2;1;1;1;1]  THENM  (Reduce  (-2)  THEN  D  -2  THEN  Reduce  0  THEN  Try  (Complete  (Auto))))
  THENA  (Try  (BLemma  `es-local-pred\_wf2`)
                THEN  Auto
                THEN  GenConclAtAddrType  \mkleeneopen{}bag(T)\mkleeneclose{}  [2;1]\mcdot{}
                THEN  Auto)\mcdot{}
  )
Home
Index