Step
*
1
2
of Lemma
State-comb-exists
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@i
9. ∀e':E. ((e' < e) 
⇒ (#(init loc(e')) > 0) 
⇒ (↓∃v:B. v ∈ State-comb(init;f;X)(e')))
10. #(init loc(e)) > 0@i
11. ↑first(e)
12. 0 < #(init loc(e)) supposing ↓∃x:B. x ↓∈ init loc(e)
13. x : B
14. x ↓∈ init loc(e)
15. #(X es e) > 0
⊢ ↓∃v:B. v ∈ State-comb(init;f;X)(e)
BY
{ ((InstLemma `bag-member-iff-size` [⌈A⌉;⌈X es e⌉]⋅ THENA Auto)
   THEN (RepeatFor 2 (D (-1)) THENA Auto)
   THEN SquashExRepD
   THEN D 0
   THEN (InstConcl [⌈f x1 x⌉]⋅ THENA Auto)
   THEN RepeatFor 2 (MaUseClassRel 0)
   THEN Try (Fold `State-comb` 0)
   THEN (SplitOnConclITE THENA MaAuto)) }
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@i
9. ∀e':E. ((e' < e) 
⇒ (#(init loc(e')) > 0) 
⇒ (↓∃v:B. v ∈ State-comb(init;f;X)(e')))
10. #(init loc(e)) > 0@i
11. ↑first(e)
12. 0 < #(init loc(e)) supposing ↓∃x:B. x ↓∈ init loc(e)
13. x : B
14. x ↓∈ init loc(e)
15. #(X es e) > 0
16. 0 < #(X es e) supposing ↓∃x:A. x ↓∈ X es e
17. x1 : A
18. x1 ↓∈ X es e
19. (X es e) = {} ∈ bag(A)
⊢ f x1 x ↓∈ Prior(State-comb(init;f;X))?init es e
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@i
9. ∀e':E. ((e' < e) 
⇒ (#(init loc(e')) > 0) 
⇒ (↓∃v:B. v ∈ State-comb(init;f;X)(e')))
10. #(init loc(e)) > 0@i
11. ↑first(e)
12. 0 < #(init loc(e)) supposing ↓∃x:B. x ↓∈ init loc(e)
13. x : B
14. x ↓∈ init loc(e)
15. #(X es e) > 0
16. 0 < #(X es e) supposing ↓∃x:A. x ↓∈ X es e
17. x1 : A
18. x1 ↓∈ X es e
19. ¬((X es e) = {} ∈ bag(A))
⊢ f x1 x ↓∈ lifting-2(f) (X es e) (Prior(State-comb(init;f;X))?init es e)
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@i
9.  \mforall{}e':E.  ((e'  <  e)  {}\mRightarrow{}  (\#(init  loc(e'))  >  0)  {}\mRightarrow{}  (\mdownarrow{}\mexists{}v:B.  v  \mmember{}  State-comb(init;f;X)(e')))
10.  \#(init  loc(e))  >  0@i
11.  \muparrow{}first(e)
12.  0  <  \#(init  loc(e))  supposing  \mdownarrow{}\mexists{}x:B.  x  \mdownarrow{}\mmember{}  init  loc(e)
13.  x  :  B
14.  x  \mdownarrow{}\mmember{}  init  loc(e)
15.  \#(X  es  e)  >  0
\mvdash{}  \mdownarrow{}\mexists{}v:B.  v  \mmember{}  State-comb(init;f;X)(e)
By
Latex:
((InstLemma  `bag-member-iff-size`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}X  es  e\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (RepeatFor  2  (D  (-1))  THENA  Auto)
  THEN  SquashExRepD
  THEN  D  0
  THEN  (InstConcl  [\mkleeneopen{}f  x1  x\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RepeatFor  2  (MaUseClassRel  0)
  THEN  Try  (Fold  `State-comb`  0)
  THEN  (SplitOnConclITE  THENA  MaAuto))
Home
Index