Step * 1 1 of Lemma bag-bind-com


1. Type
2. Type
3. Type
4. A ⟶ B ⟶ bag(C)
5. ba bag(A)
6. as List
7. bs 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)
BY
(Subst ⌜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));as))
          ∈ bag(C)⌝ 0⋅
   THEN Auto
   }

1
.....equality..... 
1. Type
2. Type
3. Type
4. A ⟶ B ⟶ bag(C)
5. ba bag(A)
6. as List
7. bs 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));as))
∈ bag(C)

2
1. Type
2. Type
3. Type
4. A ⟶ B ⟶ bag(C)
5. ba bag(A)
6. as List
7. bs 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)


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{}a.bag-union(bag-map(\mlambda{}b.f[a;b];as));ba))
=  bag-union(bag-map(\mlambda{}b.bag-union(bag-map(\mlambda{}a.f[a;b];ba));bs))


By


Latex:
(Subst  \mkleeneopen{}bag-union(bag-map(\mlambda{}a.bag-union(bag-map(\mlambda{}b.f[a;b];as));ba))
                =  bag-union(bag-map(\mlambda{}b.bag-union(bag-map(\mlambda{}a.f[a;b];ba));as))\mkleeneclose{}  0\mcdot{}
  THEN  Auto
  )




Home Index