Step
*
4
1
1
of Lemma
State-comb-fun-eq
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. ¬↑e ∈b X
11. ∀l:Id. (1 ≤ #(init l))
12. ∀l:Id. single-valued-bag(init l;B)
13. single-valued-classrel(es;X;A)
14. (X es e) = {} ∈ bag(A)
15. v : (∃e':{E| ((e' <loc e)
                 ∧ (↑((λe'.0 <z #(State-comb(init;f;X) es e')) e'))
                 ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑((λe'.0 <z #(State-comb(init;f;X) es e')) e'')))))})
∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑((λe'.0 <z #(State-comb(init;f;X) es e')) e')))}))@i
16. (last(λe'.0 <z #(State-comb(init;f;X) es e')) e)
= v
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑((λe'.0 <z #(State-comb(init;f;X) es e')) e'))
            ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑((λe'.0 <z #(State-comb(init;f;X) es e')) e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑((λe'.0 <z #(State-comb(init;f;X) es e')) e')))})))@i
⊢ sv-bag-only(case v of inl(e') => State-comb(init;f;X) es e' | inr(x) => init loc(e))
= sv-bag-only(State-comb(init;f;X) es pred(e))
∈ B
BY
{ (Reduce (-2)
   THEN DVar `v'
   THEN ExRepD
   THEN Reduce 0
   THEN RecUnfold `es-local-pred` (-1)
   THEN Reduce (-1)
   THEN SplitOnHypITE (-1)
   THEN Auto
   THEN (SplitOnHypITE (-2) THENA (Auto THEN Try (Fold `eclass` 0) THEN Auto))) }
1
.....truecase..... 
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. ¬↑e ∈b X
11. ∀l:Id. (1 ≤ #(init l))
12. ∀l:Id. single-valued-bag(init l;B)
13. single-valued-classrel(es;X;A)
14. (X es e) = {} ∈ bag(A)
15. x : E@i
16. (x <loc e)@i
17. ↑0 <z #(State-comb(init;f;X) es x)@i
18. ∀e'':E. ((x <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(State-comb(init;f;X) es e'')))@i
19. (inl pred(e))
= (inl x)
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(State-comb(init;f;X) es e'))
            ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(State-comb(init;f;X) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(State-comb(init;f;X) es e')))})))@i
20. ¬↑first(e)
21. 0 < #(State-comb(init;f;X) es pred(e))
⊢ sv-bag-only(State-comb(init;f;X) es x) = sv-bag-only(State-comb(init;f;X) es pred(e)) ∈ B
2
.....falsecase..... 
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. ¬↑e ∈b X
11. ∀l:Id. (1 ≤ #(init l))
12. ∀l:Id. single-valued-bag(init l;B)
13. single-valued-classrel(es;X;A)
14. (X es e) = {} ∈ bag(A)
15. x : E@i
16. (x <loc e)@i
17. ↑0 <z #(State-comb(init;f;X) es x)@i
18. ∀e'':E. ((x <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(State-comb(init;f;X) es e'')))@i
19. (last(λe'.0 <z #(State-comb(init;f;X) es e')) pred(e))
= (inl x)
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(State-comb(init;f;X) es e'))
            ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(State-comb(init;f;X) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(State-comb(init;f;X) es e')))})))@i
20. ¬↑first(e)
21. ¬0 < #(State-comb(init;f;X) es pred(e))
⊢ sv-bag-only(State-comb(init;f;X) es x) = sv-bag-only(State-comb(init;f;X) es pred(e)) ∈ B
3
.....truecase..... 
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. ¬↑e ∈b X
11. ∀l:Id. (1 ≤ #(init l))
12. ∀l:Id. single-valued-bag(init l;B)
13. single-valued-classrel(es;X;A)
14. (X es e) = {} ∈ bag(A)
15. y : ¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(State-comb(init;f;X) es e')))})@i
16. (inl pred(e))
= (inr y )
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(State-comb(init;f;X) es e'))
            ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(State-comb(init;f;X) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(State-comb(init;f;X) es e')))})))@i
17. ¬↑first(e)
18. 0 < #(State-comb(init;f;X) es pred(e))
⊢ sv-bag-only(init loc(e)) = sv-bag-only(State-comb(init;f;X) es pred(e)) ∈ B
4
.....falsecase..... 
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : E
9. ¬↑first(e)
10. ¬↑e ∈b X
11. ∀l:Id. (1 ≤ #(init l))
12. ∀l:Id. single-valued-bag(init l;B)
13. single-valued-classrel(es;X;A)
14. (X es e) = {} ∈ bag(A)
15. y : ¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(State-comb(init;f;X) es e')))})@i
16. (last(λe'.0 <z #(State-comb(init;f;X) es e')) pred(e))
= (inr y )
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(State-comb(init;f;X) es e'))
            ∧ (∀e'':E. ((e' <loc e'') 
⇒ (e'' <loc e) 
⇒ (¬↑0 <z #(State-comb(init;f;X) es e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e) ∧ (↑0 <z #(State-comb(init;f;X) es e')))})))@i
17. ¬↑first(e)
18. ¬0 < #(State-comb(init;f;X) es pred(e))
⊢ sv-bag-only(init loc(e)) = sv-bag-only(State-comb(init;f;X) es pred(e)) ∈ B
Latex:
Latex:
1.  Info  :  Type
2.  B  :  Type
3.  A  :  Type
4.  f  :  A  {}\mrightarrow{}  B  {}\mrightarrow{}  B
5.  init  :  Id  {}\mrightarrow{}  bag(B)
6.  X  :  EClass(A)
7.  es  :  EO+(Info)
8.  e  :  E
9.  \mneg{}\muparrow{}first(e)
10.  \mneg{}\muparrow{}e  \mmember{}\msubb{}  X
11.  \mforall{}l:Id.  (1  \mleq{}  \#(init  l))
12.  \mforall{}l:Id.  single-valued-bag(init  l;B)
13.  single-valued-classrel(es;X;A)
14.  (X  es  e)  =  \{\}
15.  v  :  (\mexists{}e':\{E|  ((e'  <loc  e)
                                  \mwedge{}  (\muparrow{}((\mlambda{}e'.0  <z  \#(State-comb(init;f;X)  es  e'))  e'))
                                  \mwedge{}  (\mforall{}e'':E
                                            ((e'  <loc  e'')
                                            {}\mRightarrow{}  (e''  <loc  e)
                                            {}\mRightarrow{}  (\mneg{}\muparrow{}((\mlambda{}e'.0  <z  \#(State-comb(init;f;X)  es  e'))  e'')))))\})
\mvee{}  (\mneg{}(\mexists{}e':\{E|  ((e'  <loc  e)  \mwedge{}  (\muparrow{}((\mlambda{}e'.0  <z  \#(State-comb(init;f;X)  es  e'))  e')))\}))@i
16.  (last(\mlambda{}e'.0  <z  \#(State-comb(init;f;X)  es  e'))  e)  =  v@i
\mvdash{}  sv-bag-only(case  v  of  inl(e')  =>  State-comb(init;f;X)  es  e'  |  inr(x)  =>  init  loc(e))
=  sv-bag-only(State-comb(init;f;X)  es  pred(e))
By
Latex:
(Reduce  (-2)
  THEN  DVar  `v'
  THEN  ExRepD
  THEN  Reduce  0
  THEN  RecUnfold  `es-local-pred`  (-1)
  THEN  Reduce  (-1)
  THEN  SplitOnHypITE  (-1)
  THEN  Auto
  THEN  (SplitOnHypITE  (-2)  THENA  (Auto  THEN  Try  (Fold  `eclass`  0)  THEN  Auto)))
Home
Index