Step
*
2
2
2
1
1
of Lemma
bag-summation-product
1. r : Rng
2. Assoc(|r|;+r)
3. Comm(|r|;+r)
4. A : Type
5. B : Type
6. f : A ⟶ |r|
7. c : bag(B)
8. g : B ⟶ |r|
9. u : A
10. v : A List
11. (Σ(x∈v). f[x] * Σ(y∈c). g[y]) = Σ(p∈v × c). f[fst(p)] * g[snd(p)] ∈ |r|
12. IsMonoid(|r|;+r;0)
13. Σ(x∈v). f[x] ∈ |r|
14. X : bag(A × B)
15. bag-map(λx.<u, x>c) = X ∈ bag(A × B)
⊢ ((f[u] +r Σ(x∈v). f[x]) * Σ(y∈c). g[y]) = (Σ(p∈X). f[fst(p)] * g[snd(p)] +r (Σ(x∈v). f[x] * Σ(y∈c). g[y])) ∈ |r|
BY
{ Assert ⌜Σ(p∈X). f[fst(p)] * g[snd(p)] = Σ(y∈c). f[u] * g[y] ∈ |r|⌝⋅ }
1
.....assertion..... 
1. r : Rng
2. Assoc(|r|;+r)
3. Comm(|r|;+r)
4. A : Type
5. B : Type
6. f : A ⟶ |r|
7. c : bag(B)
8. g : B ⟶ |r|
9. u : A
10. v : A List
11. (Σ(x∈v). f[x] * Σ(y∈c). g[y]) = Σ(p∈v × c). f[fst(p)] * g[snd(p)] ∈ |r|
12. IsMonoid(|r|;+r;0)
13. Σ(x∈v). f[x] ∈ |r|
14. X : bag(A × B)
15. bag-map(λx.<u, x>c) = X ∈ bag(A × B)
⊢ Σ(p∈X). f[fst(p)] * g[snd(p)] = Σ(y∈c). f[u] * g[y] ∈ |r|
2
1. r : Rng
2. Assoc(|r|;+r)
3. Comm(|r|;+r)
4. A : Type
5. B : Type
6. f : A ⟶ |r|
7. c : bag(B)
8. g : B ⟶ |r|
9. u : A
10. v : A List
11. (Σ(x∈v). f[x] * Σ(y∈c). g[y]) = Σ(p∈v × c). f[fst(p)] * g[snd(p)] ∈ |r|
12. IsMonoid(|r|;+r;0)
13. Σ(x∈v). f[x] ∈ |r|
14. X : bag(A × B)
15. bag-map(λx.<u, x>c) = X ∈ bag(A × B)
16. Σ(p∈X). f[fst(p)] * g[snd(p)] = Σ(y∈c). f[u] * g[y] ∈ |r|
⊢ ((f[u] +r Σ(x∈v). f[x]) * Σ(y∈c). g[y]) = (Σ(p∈X). f[fst(p)] * g[snd(p)] +r (Σ(x∈v). f[x] * Σ(y∈c). g[y])) ∈ |r|
Latex:
Latex:
1.  r  :  Rng
2.  Assoc(|r|;+r)
3.  Comm(|r|;+r)
4.  A  :  Type
5.  B  :  Type
6.  f  :  A  {}\mrightarrow{}  |r|
7.  c  :  bag(B)
8.  g  :  B  {}\mrightarrow{}  |r|
9.  u  :  A
10.  v  :  A  List
11.  (\mSigma{}(x\mmember{}v).  f[x]  *  \mSigma{}(y\mmember{}c).  g[y])  =  \mSigma{}(p\mmember{}v  \mtimes{}  c).  f[fst(p)]  *  g[snd(p)]
12.  IsMonoid(|r|;+r;0)
13.  \mSigma{}(x\mmember{}v).  f[x]  \mmember{}  |r|
14.  X  :  bag(A  \mtimes{}  B)
15.  bag-map(\mlambda{}x.<u,  x>c)  =  X
\mvdash{}  ((f[u]  +r  \mSigma{}(x\mmember{}v).  f[x])  *  \mSigma{}(y\mmember{}c).  g[y])
=  (\mSigma{}(p\mmember{}X).  f[fst(p)]  *  g[snd(p)]  +r  (\mSigma{}(x\mmember{}v).  f[x]  *  \mSigma{}(y\mmember{}c).  g[y]))
By
Latex:
Assert  \mkleeneopen{}\mSigma{}(p\mmember{}X).  f[fst(p)]  *  g[snd(p)]  =  \mSigma{}(y\mmember{}c).  f[u]  *  g[y]\mkleeneclose{}\mcdot{}
Home
Index