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

[T,A:Type].
  ∀bs:bag(T). ∀P:T ⟶ A ⟶ ℙ.
    ((∀x,y:A.  Dec(x y ∈ A))
     (∀x,y:T.  Dec(x y ∈ T))
     (∀i:T. (i ↓∈ bs  (∃a:A. P[i;a])))
     (∃b:bag(T × A). ((∀i:T. (i ↓∈ bs  i ↓∈ bag-map(λx.(fst(x));b))) ∧ (∀x:T × A. (x ↓∈  P[fst(x);snd(x)])))))
BY
(Auto
   THEN RenameVar `g' (-1)
   THEN InstConcl [⌜bag-map(λi.<i, fst((g Ax))>;bs)⌝]⋅
   THEN Try (Complete (Auto))
   THEN ...) }

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]))
⊢ (∀i:T. (i ↓∈ bs  i ↓∈ bag-map(λx.(fst(x));bag-map(λi.<i, fst((g Ax))>;bs))))
∧ (∀x:T × A. (x ↓∈ bag-map(λi.<i, fst((g Ax))>;bs)  P[fst(x);snd(x)]))


Latex:


Latex:
\mforall{}[T,A:Type].
    \mforall{}bs:bag(T).  \mforall{}P:T  {}\mrightarrow{}  A  {}\mrightarrow{}  \mBbbP{}.
        ((\mforall{}x,y:A.    Dec(x  =  y))
        {}\mRightarrow{}  (\mforall{}x,y:T.    Dec(x  =  y))
        {}\mRightarrow{}  (\mforall{}i:T.  (i  \mdownarrow{}\mmember{}  bs  {}\mRightarrow{}  (\mexists{}a:A.  P[i;a])))
        {}\mRightarrow{}  (\mexists{}b:bag(T  \mtimes{}  A)
                  ((\mforall{}i:T.  (i  \mdownarrow{}\mmember{}  bs  {}\mRightarrow{}  i  \mdownarrow{}\mmember{}  bag-map(\mlambda{}x.(fst(x));b)))
                  \mwedge{}  (\mforall{}x:T  \mtimes{}  A.  (x  \mdownarrow{}\mmember{}  b  {}\mRightarrow{}  P[fst(x);snd(x)])))))


By


Latex:
(Auto
  THEN  RenameVar  `g'  (-1)
  THEN  InstConcl  [\mkleeneopen{}bag-map(\mlambda{}i.<i,  fst((g  i  Ax))>bs)\mkleeneclose{}]\mcdot{}
  THEN  Try  (Complete  (Auto))
  THEN  Try  (Complete  ((BLemma  `bag-map-member-wf`
                                            THEN  Auto
                                            THEN  DVarSets
                                            THEN  BLemma  `bag-member-evidence`
                                            THEN  Auto))))




Home Index