Step * 1 of Lemma bag-combine-map


1. Type
2. Type
3. Type
4. B ⟶ bag(C)
5. A ⟶ B
6. A
7. List
8. ⋃x∈bag-map(f;v).g[x] = ⋃x∈v.g[f x] ∈ bag(C)
⊢ ⋃x∈bag-map(f;[u v]).g[x] = ⋃x∈[u v].g[f x] ∈ bag(C)
BY
(Unfold `bag-map` 0
   THEN Reduce 0
   THEN Fold `bag-map` 0
   THEN Subst ⌜[u v] {u} v⌝ 0⋅
   THEN Try (Complete ((RepUR ``single-bag bag-append`` THEN Auto)))
   THEN Subst ⌜[f bag-map(f;v)] {f u} bag-map(f;v)⌝ 0⋅
   THEN Try (Complete ((RepUR ``single-bag bag-append`` THEN Auto)))) }

1
1. Type
2. Type
3. Type
4. B ⟶ bag(C)
5. A ⟶ B
6. A
7. List
8. ⋃x∈bag-map(f;v).g[x] = ⋃x∈v.g[f x] ∈ bag(C)
⊢ ⋃x∈{f u} bag-map(f;v).g[x] = ⋃x∈{u} v.g[f x] ∈ bag(C)


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  g  :  B  {}\mrightarrow{}  bag(C)
5.  f  :  A  {}\mrightarrow{}  B
6.  u  :  A
7.  v  :  A  List
8.  \mcup{}x\mmember{}bag-map(f;v).g[x]  =  \mcup{}x\mmember{}v.g[f  x]
\mvdash{}  \mcup{}x\mmember{}bag-map(f;[u  /  v]).g[x]  =  \mcup{}x\mmember{}[u  /  v].g[f  x]


By


Latex:
(Unfold  `bag-map`  0
  THEN  Reduce  0
  THEN  Fold  `bag-map`  0
  THEN  Subst  \mkleeneopen{}[u  /  v]  \msim{}  \{u\}  +  v\mkleeneclose{}  0\mcdot{}
  THEN  Try  (Complete  ((RepUR  ``single-bag  bag-append``  0  THEN  Auto)))
  THEN  Subst  \mkleeneopen{}[f  u  /  bag-map(f;v)]  \msim{}  \{f  u\}  +  bag-map(f;v)\mkleeneclose{}  0\mcdot{}
  THEN  Try  (Complete  ((RepUR  ``single-bag  bag-append``  0  THEN  Auto))))




Home Index