Step
*
1
1
2
of Lemma
bag-bind-com
1. A : Type
2. B : Type
3. C : Type
4. f : A ⟶ B ⟶ bag(C)
5. ba : bag(A)
6. as : B List
7. bs : B List
8. permutation(B;as;bs)
⊢ bag-union(bag-map(λb.bag-union(bag-map(λa.f[a;b];ba));as))
= bag-union(bag-map(λb.bag-union(bag-map(λa.f[a;b];ba));bs))
∈ bag(C)
BY
{ (Assert ⌜as = bs ∈ bag(B)⌝⋅ THEN Auto) }
Latex:
Latex:
1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  f  :  A  {}\mrightarrow{}  B  {}\mrightarrow{}  bag(C)
5.  ba  :  bag(A)
6.  as  :  B  List
7.  bs  :  B  List
8.  permutation(B;as;bs)
\mvdash{}  bag-union(bag-map(\mlambda{}b.bag-union(bag-map(\mlambda{}a.f[a;b];ba));as))
=  bag-union(bag-map(\mlambda{}b.bag-union(bag-map(\mlambda{}a.f[a;b];ba));bs))
By
Latex:
(Assert  \mkleeneopen{}as  =  bs\mkleeneclose{}\mcdot{}  THEN  Auto)
Home
Index