Step * of Lemma iterated-classrel-invariant2

[Info,A,S:Type]. ∀[init:Id ─→ bag(S)]. ∀[f:A ─→ S ─→ S].
  ∀X:EClass(A). ∀es:EO+(Info).
    ∀[P:E ─→ S ─→ ℙ]
      ∀e:E. ∀v:S.
        ((∀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 ))
         iterated-classrel(es;S;A;f;init;X;e;v)
         P[e;v])
BY
((UnivCD THENA Auto)
   THEN RepeatFor (MoveToConcl (-1))
   THEN StrongCausalInd
   THEN (UnivCD THENA Auto)
   THEN RecUnfold `iterated-classrel` (-1)
   THEN ExRepD
   THEN (SplitOnHypITE (-2) THENA Auto)) }

1
.....truecase..... 
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:A. (a ∈ X(e) ∧ (v (f z) ∈ S))) ∨ ((∀a:A. a ∈ X(e))) ∧ (v z ∈ S))@i
16. ↑first(e)
⊢ P[e;v]

2
.....falsecase..... 
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)
⊢ P[e;v]


Latex:


\mforall{}[Info,A,S:Type].  \mforall{}[init:Id  {}\mrightarrow{}  bag(S)].  \mforall{}[f:A  {}\mrightarrow{}  S  {}\mrightarrow{}  S].
    \mforall{}X:EClass(A).  \mforall{}es:EO+(Info).
        \mforall{}[P:E  {}\mrightarrow{}  S  {}\mrightarrow{}  \mBbbP{}]
            \mforall{}e:E.  \mforall{}v:S.
                ((\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  ))
                {}\mRightarrow{}  iterated-classrel(es;S;A;f;init;X;e;v)
                {}\mRightarrow{}  P[e;v])


By

((UnivCD  THENA  Auto)
  THEN  RepeatFor  4  (MoveToConcl  (-1))
  THEN  StrongCausalInd
  THEN  (UnivCD  THENA  Auto)
  THEN  RecUnfold  `iterated-classrel`  (-1)
  THEN  ExRepD
  THEN  (SplitOnHypITE  (-2)  THENA  Auto))




Home Index