Step
*
1
2
of Lemma
bag-from-member-function-exists
1. [T] : Type
2. [A] : Type
3. bs : bag(T)
4. P : T ⟶ A ⟶ ℙ
5. ∀x,y:A. Dec(x = y ∈ A)
6. ∀x,y:T. Dec(x = y ∈ T)
7. g : ∀i:T. (i ↓∈ bs
⇒ (∃a:A. P[i;a]))
⊢ ∀x:T × A. (x ↓∈ bag-map(λi.<i, fst((g i Ax))>;bs)
⇒ P[fst(x);snd(x)])
BY
{ ((UnivCD
THENA (Try (Complete (Auto))
THEN MemCD'
THEN Try (Complete (Auto))
THEN BLemma `bag-map-member-wf`
THEN Auto
THEN DVarSets
THEN BLemma `bag-member-evidence`
THEN Auto)
)
THEN (RWO "bag-member-map3-deq" (-1)
THENA (Auto
THEN DVarSets
THEN Try ((BLemma `bag-member-evidence` THEN Auto))
THEN Unfold `inject` 0
THEN Reduce 0
THEN Auto
THEN DVarSets
THEN Try ((BLemma `bag-member-evidence` THEN Auto)))
)
) }
1
1. [T] : Type
2. [A] : Type
3. bs : bag(T)
4. P : T ⟶ A ⟶ ℙ
5. ∀x,y:A. Dec(x = y ∈ A)
6. ∀x,y:T. Dec(x = y ∈ T)
7. g : ∀i:T. (i ↓∈ bs
⇒ (∃a:A. P[i;a]))
8. x : T × A
9. ∃v:T. (v ↓∈ bs ∧ (x = ((λi.<i, fst((g i Ax))>) v) ∈ (T × A)))
⊢ P[fst(x);snd(x)]
Latex:
Latex:
1. [T] : Type
2. [A] : Type
3. bs : bag(T)
4. P : T {}\mrightarrow{} A {}\mrightarrow{} \mBbbP{}
5. \mforall{}x,y:A. Dec(x = y)
6. \mforall{}x,y:T. Dec(x = y)
7. g : \mforall{}i:T. (i \mdownarrow{}\mmember{} bs {}\mRightarrow{} (\mexists{}a:A. P[i;a]))
\mvdash{} \mforall{}x:T \mtimes{} A. (x \mdownarrow{}\mmember{} bag-map(\mlambda{}i.<i, fst((g i Ax))>bs) {}\mRightarrow{} P[fst(x);snd(x)])
By
Latex:
((UnivCD
THENA (Try (Complete (Auto))
THEN MemCD'
THEN Try (Complete (Auto))
THEN BLemma `bag-map-member-wf`
THEN Auto
THEN DVarSets
THEN BLemma `bag-member-evidence`
THEN Auto)
)
THEN (RWO "bag-member-map3-deq" (-1)
THENA (Auto
THEN DVarSets
THEN Try ((BLemma `bag-member-evidence` THEN Auto))
THEN Unfold `inject` 0
THEN Reduce 0
THEN Auto
THEN DVarSets
THEN Try ((BLemma `bag-member-evidence` THEN Auto)))
)
)
Home
Index