Step
*
of Lemma
bag-summation-single-non-zero
∀[T,R:Type]. ∀[eq:EqDecider(T)]. ∀[add:R ⟶ R ⟶ R]. ∀[zero:R]. ∀[b:bag(T)]. ∀[f:T ⟶ R].
  ∀z:T. Σ(x∈b). f[x] = Σ(x∈[x∈b|eq x z]). f[x] ∈ R supposing ∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R))) 
  supposing IsMonoid(R;add;zero) ∧ Comm(R;add)
BY
{ ((InstLemma `bag-summation-split` []⋅
    THEN RepeatFor 2 (ParallelLast')
    THEN (D 0 THENA Auto)
    THEN PromoteHyp (-1) 2
    THEN RepeatFor 3 (ParallelLast'))
   THEN Auto
   THEN (InstHyp [⌜λ2x.eq x z⌝;⌜f⌝] (-6)⋅ THENA Auto)
   THEN Subst ⌜Σ(x∈[x∈b|¬b(eq x z)]). f[x] = zero ∈ R⌝ (-1)⋅
   THEN Auto) }
1
.....equality..... 
1. T : Type
2. eq : EqDecider(T)
3. R : Type
4. add : R ⟶ R ⟶ R
5. zero : R
6. b : bag(T)
7. ∀[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)
8. f : T ⟶ R
9. IsMonoid(R;add;zero)
10. Comm(R;add)
11. z : T
12. ∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R)))
13. Σ(x∈b). f[x] = (Σ(x∈[x∈b|eq x z]). f[x] add Σ(x∈[x∈b|¬b(eq x z)]). f[x]) ∈ R
⊢ Σ(x∈[x∈b|¬b(eq x z)]). f[x] = zero ∈ R
2
1. T : Type
2. eq : EqDecider(T)
3. R : Type
4. add : R ⟶ R ⟶ R
5. zero : R
6. b : bag(T)
7. ∀[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)
8. f : T ⟶ R
9. IsMonoid(R;add;zero)
10. Comm(R;add)
11. z : T
12. ∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R)))
13. Σ(x∈b). f[x] = (Σ(x∈[x∈b|eq x z]). f[x] add zero) ∈ R
⊢ Σ(x∈b). f[x] = Σ(x∈[x∈b|eq x z]). f[x] ∈ R
Latex:
Latex:
\mforall{}[T,R:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[add:R  {}\mrightarrow{}  R  {}\mrightarrow{}  R].  \mforall{}[zero:R].  \mforall{}[b:bag(T)].  \mforall{}[f:T  {}\mrightarrow{}  R].
    \mforall{}z:T
        \mSigma{}(x\mmember{}b).  f[x]  =  \mSigma{}(x\mmember{}[x\mmember{}b|eq  x  z]).  f[x]  supposing  \mforall{}x:T.  (x  \mdownarrow{}\mmember{}  b  {}\mRightarrow{}  ((x  =  z)  \mvee{}  (f[x]  =  zero))) 
    supposing  IsMonoid(R;add;zero)  \mwedge{}  Comm(R;add)
By
Latex:
((InstLemma  `bag-summation-split`  []\mcdot{}
    THEN  RepeatFor  2  (ParallelLast')
    THEN  (D  0  THENA  Auto)
    THEN  PromoteHyp  (-1)  2
    THEN  RepeatFor  3  (ParallelLast'))
  THEN  Auto
  THEN  (InstHyp  [\mkleeneopen{}\mlambda{}\msubtwo{}x.eq  x  z\mkleeneclose{};\mkleeneopen{}f\mkleeneclose{}]  (-6)\mcdot{}  THENA  Auto)
  THEN  Subst  \mkleeneopen{}\mSigma{}(x\mmember{}[x\mmember{}b|\mneg{}\msubb{}(eq  x  z)]).  f[x]  =  zero\mkleeneclose{}  (-1)\mcdot{}
  THEN  Auto)
Home
Index