Step * 2 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. iterated-classrel(es;S;A;f;init;X;pred(e);z)@i
15. (∃a:A. (a ∈ X(e) ∧ (v (f z) ∈ S))) ∨ ((∀a:A. a ∈ X(e))) ∧ (v z ∈ S))@i
16. ¬↑first(e)
17. P[pred(e);z]
⊢ P[e;v]
BY
((InstHyp [⌈z⌉;⌈e⌉(-6)⋅ THENA Auto)
   THEN SplitOnHypITE (-1)
   THEN Auto
   THEN (-5)
   THEN ExRepD
   THEN Auto
   THEN (Assert ⌈False⌉⋅ THEN Auto)
   THEN Try (Complete ((FLemma `classrel-implies-member` [-6] THEN Auto)))
   THEN (FLemma `member-implies-classrel` [-1] THENA Auto)
   THEN SquashExRepD
   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.  iterated-classrel(es;S;A;f;init;X;pred(e);z)@i
15.  (\mexists{}a:A.  (a  \mmember{}  X(e)  \mwedge{}  (v  =  (f  a  z))))  \mvee{}  ((\mforall{}a:A.  (\mneg{}a  \mmember{}  X(e)))  \mwedge{}  (v  =  z))@i
16.  \mneg{}\muparrow{}first(e)
17.  P[pred(e);z]
\mvdash{}  P[e;v]


By

((InstHyp  [\mkleeneopen{}z\mkleeneclose{};\mkleeneopen{}e\mkleeneclose{}]  (-6)\mcdot{}  THENA  Auto)
  THEN  SplitOnHypITE  (-1)
  THEN  Auto
  THEN  D  (-5)
  THEN  ExRepD
  THEN  Auto
  THEN  (Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}  THEN  Auto)
  THEN  Try  (Complete  ((FLemma  `classrel-implies-member`  [-6]  THEN  Auto)))
  THEN  (FLemma  `member-implies-classrel`  [-1]  THENA  Auto)
  THEN  SquashExRepD
  THEN  Auto)




Home Index