Step
*
of Lemma
iterated_classrel_invariant1
∀[Info,A,S:Type]. ∀[init:Id ─→ bag(S)]. ∀[f:A ─→ S ─→ S]. ∀[X:EClass(A)].
  ∀es:EO+(Info)
    ∀[P:S ─→ ℙ]
      ((∀s:S. Dec(P[s]))
      
⇒ (∀e:E. ∀v:S.
            ((∀s:S. (s ↓∈ init loc(e) 
⇒ P[s]))
            
⇒ (∀a:A. ∀s:S.  (P[s] 
⇒ P[f a s]))
            
⇒ iterated_classrel(es;S;A;f;init;X;e;v)
            
⇒ P[v])))
BY
{ (RepeatFor 8 ((D 0 THENA Auto))
   THEN StrongCausalInd
   THEN (UnivCD THENA Auto)
   THEN RecUnfold `iterated_classrel` (-1)
   THEN TrySquashExRepD (-1)
   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. X : EClass(A)
7. es : EO+(Info)@i'
8. P : S ─→ ℙ
9. ∀s:S. Dec(P[s])@i
10. e : E@i
11. ∀e1:E
      ((e1 < e)
      
⇒ (∀v:S
            ((∀s:S. (s ↓∈ init loc(e1) 
⇒ P[s]))
            
⇒ (∀a:A. ∀s:S.  (P[s] 
⇒ P[f a s]))
            
⇒ iterated_classrel(es;S;A;f;init;X;e1;v)
            
⇒ P[v])))
12. v : S@i
13. ∀s:S. (s ↓∈ init loc(e) 
⇒ P[s])@i
14. ∀a:A. ∀s:S.  (P[s] 
⇒ P[f a s])@i
15. z : S@i
16. z ↓∈ init loc(e)@i
17. (∃a:A. (a ∈ X(e) ∧ (v = (f a z) ∈ S))) ∨ ((∀a:A. (¬a ∈ X(e))) ∧ (v = z ∈ S))@i
18. ↑first(e)
⊢ P[v]
2
.....falsecase..... 
1. Info : Type
2. A : Type
3. S : Type
4. init : Id ─→ bag(S)
5. f : A ─→ S ─→ S
6. X : EClass(A)
7. es : EO+(Info)@i'
8. P : S ─→ ℙ
9. ∀s:S. Dec(P[s])@i
10. e : E@i
11. ∀e1:E
      ((e1 < e)
      
⇒ (∀v:S
            ((∀s:S. (s ↓∈ init loc(e1) 
⇒ P[s]))
            
⇒ (∀a:A. ∀s:S.  (P[s] 
⇒ P[f a s]))
            
⇒ iterated_classrel(es;S;A;f;init;X;e1;v)
            
⇒ P[v])))
12. v : S@i
13. ∀s:S. (s ↓∈ init loc(e) 
⇒ P[s])@i
14. ∀a:A. ∀s:S.  (P[s] 
⇒ P[f a s])@i
15. z : S@i
16. iterated_classrel(es;S;A;f;init;X;pred(e);z)@i
17. (∃a:A. (a ∈ X(e) ∧ (v = (f a z) ∈ S))) ∨ ((∀a:A. (¬a ∈ X(e))) ∧ (v = z ∈ S))@i
18. ¬↑first(e)
⊢ P[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:S  {}\mrightarrow{}  \mBbbP{}]
            ((\mforall{}s:S.  Dec(P[s]))
            {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}v:S.
                        ((\mforall{}s:S.  (s  \mdownarrow{}\mmember{}  init  loc(e)  {}\mRightarrow{}  P[s]))
                        {}\mRightarrow{}  (\mforall{}a:A.  \mforall{}s:S.    (P[s]  {}\mRightarrow{}  P[f  a  s]))
                        {}\mRightarrow{}  iterated\_classrel(es;S;A;f;init;X;e;v)
                        {}\mRightarrow{}  P[v])))
By
(RepeatFor  8  ((D  0  THENA  Auto))
  THEN  StrongCausalInd
  THEN  (UnivCD  THENA  Auto)
  THEN  RecUnfold  `iterated\_classrel`  (-1)
  THEN  TrySquashExRepD  (-1)
  THEN  (SplitOnHypITE  (-2)  THENA  Auto))
Home
Index