Step
*
1
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. bb : Base
7. b1 : Base
8. bb = b1 ∈ pertype(λas,bs. ((as ∈ B List) ∧ (bs ∈ B List) ∧ permutation(B;as;bs)))
9. bb ∈ B List
10. b1 ∈ B List
11. permutation(B;bb;b1)
⊢ bag-union(bag-map(λa.bag-union(bag-map(λb.f[a;b];bb));ba))
= bag-union(bag-map(λb.bag-union(bag-map(λa.f[a;b];ba));b1))
∈ bag(C)
BY
{ (MoveToConcl (-1)
   THEN GenConclTerms Auto [⌜bb⌝;⌜b1⌝]⋅
   THEN All Thin
   THEN Auto
   THEN RenameVar `as' (-3)
   THEN RenameVar `bs' (-2)) }
1
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(λa.bag-union(bag-map(λb.f[a;b];as));ba))
= bag-union(bag-map(λb.bag-union(bag-map(λa.f[a;b];ba));bs))
∈ bag(C)
Latex:
Latex:
1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  f  :  A  {}\mrightarrow{}  B  {}\mrightarrow{}  bag(C)
5.  ba  :  bag(A)
6.  bb  :  Base
7.  b1  :  Base
8.  bb  =  b1
9.  bb  \mmember{}  B  List
10.  b1  \mmember{}  B  List
11.  permutation(B;bb;b1)
\mvdash{}  bag-union(bag-map(\mlambda{}a.bag-union(bag-map(\mlambda{}b.f[a;b];bb));ba))
=  bag-union(bag-map(\mlambda{}b.bag-union(bag-map(\mlambda{}a.f[a;b];ba));b1))
By
Latex:
(MoveToConcl  (-1)
  THEN  GenConclTerms  Auto  [\mkleeneopen{}bb\mkleeneclose{};\mkleeneopen{}b1\mkleeneclose{}]\mcdot{}
  THEN  All  Thin
  THEN  Auto
  THEN  RenameVar  `as'  (-3)
  THEN  RenameVar  `bs'  (-2))
Home
Index