Step * 1 of Lemma bag-map-as-accum


1. Type
2. Type
3. A ⟶ B
4. A
5. List
6. ({u} v) (v {u}) ∈ bag(A)
⊢ ({f u} bag-accum(b,x.f[x].b;{};v)) bag-accum(b,x.{f[x]} b;bag-accum(b,x.{f[x]} b;{};v);{u}) ∈ bag(B)
BY
((RWO "bag-accum-single" THENA Auto)
   THEN RepUR ``so_apply`` 0
   THEN (MemCD THEN Auto)
   THEN RWO "cons-bag-as-append" 0
   THEN Auto
   THEN (RWO "bag-append-assoc<THENA Auto)
   THEN (MemCD THEN Auto)
   THEN BLemma `bag-append-comm`
   THEN Auto) }


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  f  :  A  {}\mrightarrow{}  B
4.  u  :  A
5.  v  :  A  List
6.  (\{u\}  +  v)  =  (v  +  \{u\})
\mvdash{}  (\{f  u\}  +  bag-accum(b,x.f[x].b;\{\};v))
=  bag-accum(b,x.\{f[x]\}  +  b;bag-accum(b,x.\{f[x]\}  +  b;\{\};v);\{u\})


By


Latex:
((RWO  "bag-accum-single"  0  THENA  Auto)
  THEN  RepUR  ``so\_apply``  0
  THEN  (MemCD  THEN  Auto)
  THEN  RWO  "cons-bag-as-append"  0
  THEN  Auto
  THEN  (RWO  "bag-append-assoc<"  0  THENA  Auto)
  THEN  (MemCD  THEN  Auto)
  THEN  BLemma  `bag-append-comm`
  THEN  Auto)




Home Index