Step
*
of Lemma
bag-summation-split
∀[T,R:Type]. ∀[add:R ⟶ R ⟶ R]. ∀[zero:R]. ∀[b:bag(T)]. ∀[p:T ⟶ 𝔹]. ∀[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)
BY
{ ((UnivCD THENA Auto)
   THEN (InstLemma `bag-filter-split` [⌜T⌝;⌜p⌝;⌜b⌝]⋅ THENA Auto)
   THEN RW (AddrC [2;3] (RevHypC (-1))) 0
   THEN Auto
   THEN (InstLemma `bag-summation-append` [⌜R⌝;⌜add⌝;⌜zero⌝;⌜T⌝]⋅ THENA Auto)
   THEN RWO "-1" 0
   THEN Auto
   THEN DoSubsume
   THEN Auto) }
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{}b).  f[x]  =  (\mSigma{}(x\mmember{}[x\mmember{}b|p[x]]).  f[x]  add  \mSigma{}(x\mmember{}[x\mmember{}b|\mneg{}\msubb{}p[x]]).  f[x]) 
    supposing  IsMonoid(R;add;zero)  \mwedge{}  Comm(R;add)
By
Latex:
((UnivCD  THENA  Auto)
  THEN  (InstLemma  `bag-filter-split`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}p\mkleeneclose{};\mkleeneopen{}b\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RW  (AddrC  [2;3]  (RevHypC  (-1)))  0
  THEN  Auto
  THEN  (InstLemma  `bag-summation-append`  [\mkleeneopen{}R\mkleeneclose{};\mkleeneopen{}add\mkleeneclose{};\mkleeneopen{}zero\mkleeneclose{};\mkleeneopen{}T\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RWO  "-1"  0
  THEN  Auto
  THEN  DoSubsume
  THEN  Auto)
Home
Index