Step
*
1
1
of Lemma
iterated-classrel-invariant2
1. [Info] : Type
2. [A] : Type
3. [S] : Type
4. [init] : Id ─→ bag(S)
5. [f] : A ─→ S ─→ S
6. X : EClass(A)@i'
7. es : EO+(Info)@i'
8. [P] : E ─→ S ─→ ℙ
9. e : E@i
10. ∀e1:E
      ((e1 < e)
      
⇒ (∀v:S
            ((∀s:S. ∀e':E.
                (e' ≤loc e1 
                
⇒ if first(e')
                   then s ↓∈ init loc(e')
                   else iterated-classrel(es;S;A;f;init;X;pred(e');s) ∧ P[pred(e');s]
                   fi 
                
⇒ if e' ∈b X then ∀a:A. (a ∈ X(e') 
⇒ P[e';f a s]) else P[e';s] fi ))
            
⇒ iterated-classrel(es;S;A;f;init;X;e1;v)
            
⇒ P[e1;v])))
11. v : S@i
12. ∀s:S. ∀e':E.
      (e' ≤loc e 
      
⇒ if first(e') then s ↓∈ init loc(e') else iterated-classrel(es;S;A;f;init;X;pred(e');s) ∧ P[pred(e');s] fi 
      
⇒ if e' ∈b X then ∀a:A. (a ∈ X(e') 
⇒ P[e';f a s]) else P[e';s] fi )@i
13. z : S@i
14. z ↓∈ init loc(e)@i
15. a : A@i
16. a ∈ X(e)@i
17. v = (f a z) ∈ S@i
18. ↑first(e)
⊢ P[e;v]
BY
{ ((InstHyp [⌈z⌉;⌈e⌉] (-7)⋅ THENA Auto)
   THEN SplitOnHypITE (-1)
   THEN Auto
   THEN FLemma `classrel-implies-member` [-5]
   THEN Auto) }
Latex:
1.  [Info]  :  Type
2.  [A]  :  Type
3.  [S]  :  Type
4.  [init]  :  Id  {}\mrightarrow{}  bag(S)
5.  [f]  :  A  {}\mrightarrow{}  S  {}\mrightarrow{}  S
6.  X  :  EClass(A)@i'
7.  es  :  EO+(Info)@i'
8.  [P]  :  E  {}\mrightarrow{}  S  {}\mrightarrow{}  \mBbbP{}
9.  e  :  E@i
10.  \mforall{}e1:E
            ((e1  <  e)
            {}\mRightarrow{}  (\mforall{}v:S
                        ((\mforall{}s:S.  \mforall{}e':E.
                                (e'  \mleq{}loc  e1 
                                {}\mRightarrow{}  if  first(e')
                                      then  s  \mdownarrow{}\mmember{}  init  loc(e')
                                      else  iterated-classrel(es;S;A;f;init;X;pred(e');s)  \mwedge{}  P[pred(e');s]
                                      fi 
                                {}\mRightarrow{}  if  e'  \mmember{}\msubb{}  X  then  \mforall{}a:A.  (a  \mmember{}  X(e')  {}\mRightarrow{}  P[e';f  a  s])  else  P[e';s]  fi  ))
                        {}\mRightarrow{}  iterated-classrel(es;S;A;f;init;X;e1;v)
                        {}\mRightarrow{}  P[e1;v])))
11.  v  :  S@i
12.  \mforall{}s:S.  \mforall{}e':E.
            (e'  \mleq{}loc  e 
            {}\mRightarrow{}  if  first(e')
                  then  s  \mdownarrow{}\mmember{}  init  loc(e')
                  else  iterated-classrel(es;S;A;f;init;X;pred(e');s)  \mwedge{}  P[pred(e');s]
                  fi 
            {}\mRightarrow{}  if  e'  \mmember{}\msubb{}  X  then  \mforall{}a:A.  (a  \mmember{}  X(e')  {}\mRightarrow{}  P[e';f  a  s])  else  P[e';s]  fi  )@i
13.  z  :  S@i
14.  z  \mdownarrow{}\mmember{}  init  loc(e)@i
15.  a  :  A@i
16.  a  \mmember{}  X(e)@i
17.  v  =  (f  a  z)@i
18.  \muparrow{}first(e)
\mvdash{}  P[e;v]
By
((InstHyp  [\mkleeneopen{}z\mkleeneclose{};\mkleeneopen{}e\mkleeneclose{}]  (-7)\mcdot{}  THENA  Auto)
  THEN  SplitOnHypITE  (-1)
  THEN  Auto
  THEN  FLemma  `classrel-implies-member`  [-5]
  THEN  Auto)
Home
Index