Step
*
1
1
2
of Lemma
bag-map-combine
1. A : Type
2. B : Type
3. C : Type
4. g : A ⟶ bag(B)
5. f : B ⟶ C
6. u : A
7. v : A List
8. bag-map(f;⋃x∈v.g[x]) = ⋃x∈v.bag-map(f;g[x]) ∈ bag(C)
⊢ bag-map(f;⋃x∈[u / v].g[x]) = ⋃x∈[u / v].bag-map(f;g[x]) ∈ bag(C)
BY
{ Subst ⌜[u / v] ~ {u} + v⌝ 0⋅ }
1
.....equality..... 
1. A : Type
2. B : Type
3. C : Type
4. g : A ⟶ bag(B)
5. f : B ⟶ C
6. u : A
7. v : A List
8. bag-map(f;⋃x∈v.g[x]) = ⋃x∈v.bag-map(f;g[x]) ∈ bag(C)
⊢ [u / v] ~ {u} + v
2
1. A : Type
2. B : Type
3. C : Type
4. g : A ⟶ bag(B)
5. f : B ⟶ C
6. u : A
7. v : A List
8. bag-map(f;⋃x∈v.g[x]) = ⋃x∈v.bag-map(f;g[x]) ∈ bag(C)
⊢ bag-map(f;⋃x∈{u} + v.g[x]) = ⋃x∈{u} + v.bag-map(f;g[x]) ∈ bag(C)
Latex:
Latex:
1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  g  :  A  {}\mrightarrow{}  bag(B)
5.  f  :  B  {}\mrightarrow{}  C
6.  u  :  A
7.  v  :  A  List
8.  bag-map(f;\mcup{}x\mmember{}v.g[x])  =  \mcup{}x\mmember{}v.bag-map(f;g[x])
\mvdash{}  bag-map(f;\mcup{}x\mmember{}[u  /  v].g[x])  =  \mcup{}x\mmember{}[u  /  v].bag-map(f;g[x])
By
Latex:
Subst  \mkleeneopen{}[u  /  v]  \msim{}  \{u\}  +  v\mkleeneclose{}  0\mcdot{}
Home
Index