Step
*
1
of Lemma
bag-filter-union
1. T : Type
2. p : T ⟶ 𝔹
3. as : bag(T) List
4. bs : bag(T) List
5. permutation(bag(T);as;bs)
⊢ [x∈bag-union(as)|p[x]] = bag-union(bag-map(λb.[x∈b|p[x]];bs)) ∈ bag({x:T| ↑p[x]} )
BY
{ Subst ⌜bag-union(bag-map(λb.[x∈b|p[x]];bs)) ~ [x∈bag-union(bs)|p[x]]⌝ 0⋅ }
1
.....equality..... 
1. T : Type
2. p : T ⟶ 𝔹
3. as : bag(T) List
4. bs : bag(T) List
5. permutation(bag(T);as;bs)
⊢ bag-union(bag-map(λb.[x∈b|p[x]];bs)) ~ [x∈bag-union(bs)|p[x]]
2
1. T : Type
2. p : T ⟶ 𝔹
3. as : bag(T) List
4. bs : bag(T) List
5. permutation(bag(T);as;bs)
⊢ [x∈bag-union(as)|p[x]] = [x∈bag-union(bs)|p[x]] ∈ bag({x:T| ↑p[x]} )
Latex:
Latex:
1.  T  :  Type
2.  p  :  T  {}\mrightarrow{}  \mBbbB{}
3.  as  :  bag(T)  List
4.  bs  :  bag(T)  List
5.  permutation(bag(T);as;bs)
\mvdash{}  [x\mmember{}bag-union(as)|p[x]]  =  bag-union(bag-map(\mlambda{}b.[x\mmember{}b|p[x]];bs))
By
Latex:
Subst  \mkleeneopen{}bag-union(bag-map(\mlambda{}b.[x\mmember{}b|p[x]];bs))  \msim{}  [x\mmember{}bag-union(bs)|p[x]]\mkleeneclose{}  0\mcdot{}
Home
Index