Step * 1 2 of Lemma bag-from-member-function-exists


1. [T] Type
2. [A] Type
3. bs bag(T)
4. T ⟶ A ⟶ ℙ
5. ∀x,y:A.  Dec(x y ∈ A)
6. ∀x,y:T.  Dec(x y ∈ T)
7. : ∀i:T. (i ↓∈ bs  (∃a:A. P[i;a]))
⊢ ∀x:T × A. (x ↓∈ bag-map(λi.<i, fst((g 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. T ⟶ A ⟶ ℙ
5. ∀x,y:A.  Dec(x y ∈ A)
6. ∀x,y:T.  Dec(x y ∈ T)
7. : ∀i:T. (i ↓∈ bs  (∃a:A. P[i;a]))
8. T × A
9. ∃v:T. (v ↓∈ bs ∧ (x ((λi.<i, fst((g 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