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