Step * of Lemma bag-member-map3

[T,U:Type].  ∀x:U. ∀bs:bag(T). ∀f:{v:T| v ↓∈ bs}  ⟶ U.  uiff(x ↓∈ bag-map(f;bs);↓∃v:T. (v ↓∈ bs ∧ (x (f v) ∈ U)))
BY
(Intros
   THEN (Assert x ↓∈ bag-map(f;bs) ∈ ℙ BY
               ((MemCD THEN Try (Complete (Auto))) THEN BLemma `bag-map-member-wf` THEN Auto))
   THEN (InstLemma `bag-member-map` [⌜{v:T| v ↓∈ bs} ⌝;⌜U⌝;⌜x⌝;⌜f⌝;⌜bs⌝]⋅
         THENA (Auto THEN BLemma `bag-subtype` THEN Auto)
         )
   THEN (HypSubst' (-1) THENA Auto)
   THEN 0
   THEN (UnivCD THENA (Auto THEN BLemma `bag-subtype` THEN Auto))
   THEN SquashExRepD
   THEN Try (DVarSets)
   THEN 0
   THEN InstConcl [⌜v⌝]⋅
   THEN Auto
   THEN Try ((BLemma `bag-subtype` THEN Auto))
   THEN RWO "bag-subtype2<0
   THEN Auto
   THEN BLemma `bag-subtype`
   THEN Auto) }


Latex:


Latex:
\mforall{}[T,U:Type].
    \mforall{}x:U.  \mforall{}bs:bag(T).  \mforall{}f:\{v:T|  v  \mdownarrow{}\mmember{}  bs\}    {}\mrightarrow{}  U.    uiff(x  \mdownarrow{}\mmember{}  bag-map(f;bs);\mdownarrow{}\mexists{}v:T.  (v  \mdownarrow{}\mmember{}  bs  \mwedge{}  (x  =  (f  v)))\000C)


By


Latex:
(Intros
  THEN  (Assert  x  \mdownarrow{}\mmember{}  bag-map(f;bs)  \mmember{}  \mBbbP{}  BY
                          ((MemCD  THEN  Try  (Complete  (Auto)))  THEN  BLemma  `bag-map-member-wf`  THEN  Auto))
  THEN  (InstLemma  `bag-member-map`  [\mkleeneopen{}\{v:T|  v  \mdownarrow{}\mmember{}  bs\}  \mkleeneclose{};\mkleeneopen{}U\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}f\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]\mcdot{}
              THENA  (Auto  THEN  BLemma  `bag-subtype`  THEN  Auto)
              )
  THEN  (HypSubst'  (-1)  0  THENA  Auto)
  THEN  D  0
  THEN  (UnivCD  THENA  (Auto  THEN  BLemma  `bag-subtype`  THEN  Auto))
  THEN  SquashExRepD
  THEN  Try  (DVarSets)
  THEN  D  0
  THEN  InstConcl  [\mkleeneopen{}v\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  Try  ((BLemma  `bag-subtype`  THEN  Auto))
  THEN  RWO  "bag-subtype2<"  0
  THEN  Auto
  THEN  BLemma  `bag-subtype`
  THEN  Auto)




Home Index