Step
*
of Lemma
bag-summation-filter
∀[T,R:Type]. ∀[add:R ⟶ R ⟶ R]. ∀[zero:R]. ∀[b:bag(T)]. ∀[p:T ⟶ 𝔹]. ∀[f:T ⟶ R].
  Σ(x∈[x∈b|p[x]]). f[x] = Σ(x∈b). if p[x] then f[x] else zero fi  ∈ R supposing IsMonoid(R;add;zero) ∧ Comm(R;add)
BY
{ (InstLemma `bag-summation-split` []⋅ THEN RepeatFor 6 (ParallelLast') THEN Auto) }
1
1. T : Type
2. R : Type
3. add : R ⟶ R ⟶ R
4. zero : R
5. b : bag(T)
6. p : T ⟶ 𝔹
7. ∀[f:T ⟶ R]
     Σ(x∈b). f[x] = (Σ(x∈[x∈b|p[x]]). f[x] add Σ(x∈[x∈b|¬bp[x]]). f[x]) ∈ R supposing IsMonoid(R;add;zero) ∧ Comm(R;add)
8. f : T ⟶ R
9. IsMonoid(R;add;zero)
10. Comm(R;add)
⊢ Σ(x∈[x∈b|p[x]]). f[x] = Σ(x∈b). if p[x] then f[x] else zero fi  ∈ R
Latex:
Latex:
\mforall{}[T,R:Type].  \mforall{}[add:R  {}\mrightarrow{}  R  {}\mrightarrow{}  R].  \mforall{}[zero:R].  \mforall{}[b:bag(T)].  \mforall{}[p:T  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[f:T  {}\mrightarrow{}  R].
    \mSigma{}(x\mmember{}[x\mmember{}b|p[x]]).  f[x]  =  \mSigma{}(x\mmember{}b).  if  p[x]  then  f[x]  else  zero  fi   
    supposing  IsMonoid(R;add;zero)  \mwedge{}  Comm(R;add)
By
Latex:
(InstLemma  `bag-summation-split`  []\mcdot{}  THEN  RepeatFor  6  (ParallelLast')  THEN  Auto)
Home
Index