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. EClass(A)@i'
7. es EO+(Info)@i'
8. [P] E ─→ S ─→ ℙ
9. 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 then ∀a:A. (a ∈ X(e')  P[e';f s]) else P[e';s] fi ))
             iterated-classrel(es;S;A;f;init;X;e1;v)
             P[e1;v])))
11. S@i
12. ∀s:S. ∀e':E.
      (e' ≤loc 
       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 then ∀a:A. (a ∈ X(e')  P[e';f s]) else P[e';s] fi )@i
13. S@i
14. z ↓∈ init loc(e)@i
15. A@i
16. a ∈ X(e)@i
17. (f 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