Step
*
of Lemma
bag-summation-single-non-zero-no-repeats
∀[T,R:Type]. ∀[eq:EqDecider(T)]. ∀[add:R ⟶ R ⟶ R]. ∀[zero:R]. ∀[b:bag(T)]. ∀[f:T ⟶ R].
  ∀z:T
    (Σ(x∈b). f[x] = f[z] ∈ R) supposing 
       ((bag-no-repeats(T;b) ∧ z ↓∈ b) and 
       (∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R))))) 
  supposing IsMonoid(R;add;zero) ∧ Comm(R;add)
BY
{ (InstLemma `bag-summation-single-non-zero` []⋅
   THEN RepeatFor 10 (ParallelLast')
   THEN Auto
   THEN RWO "-3" 0
   THEN Auto
   THEN Subst ⌜[x∈b|eq x z] = {z} ∈ bag(T)⌝ 0⋅
   THEN Auto
   THEN BLemma `bag-extensionality-no-repeats`
   THEN Auto) }
1
1. T : Type
2. R : Type
3. eq : EqDecider(T)
4. add : R ⟶ R ⟶ R
5. zero : R
6. b : bag(T)
7. f : T ⟶ R
8. IsMonoid(R;add;zero)
9. Comm(R;add)
10. z : T
11. ∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R)))
12. Σ(x∈b). f[x] = Σ(x∈[x∈b|eq x z]). f[x] ∈ R
13. bag-no-repeats(T;b)
14. z ↓∈ b
⊢ bag-no-repeats(T;[x∈b|eq x z])
2
1. T : Type
2. R : Type
3. eq : EqDecider(T)
4. add : R ⟶ R ⟶ R
5. zero : R
6. b : bag(T)
7. f : T ⟶ R
8. IsMonoid(R;add;zero)
9. Comm(R;add)
10. z : T
11. ∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R)))
12. Σ(x∈b). f[x] = Σ(x∈[x∈b|eq x z]). f[x] ∈ R
13. bag-no-repeats(T;b)
14. z ↓∈ b
15. x : T
16. x ↓∈ [x∈b|eq x z]
⊢ x = z ∈ T
3
1. T : Type
2. R : Type
3. eq : EqDecider(T)
4. add : R ⟶ R ⟶ R
5. zero : R
6. b : bag(T)
7. f : T ⟶ R
8. IsMonoid(R;add;zero)
9. Comm(R;add)
10. z : T
11. ∀x:T. (x ↓∈ b 
⇒ ((x = z ∈ T) ∨ (f[x] = zero ∈ R)))
12. Σ(x∈b). f[x] = Σ(x∈[x∈b|eq x z]). f[x] ∈ R
13. bag-no-repeats(T;b)
14. z ↓∈ b
15. x : T
16. x ↓∈ {z}
⊢ x ↓∈ [x∈b|eq x z]
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]  =  f[z])  supposing 
              ((bag-no-repeats(T;b)  \mwedge{}  z  \mdownarrow{}\mmember{}  b)  and 
              (\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-single-non-zero`  []\mcdot{}
  THEN  RepeatFor  10  (ParallelLast')
  THEN  Auto
  THEN  RWO  "-3"  0
  THEN  Auto
  THEN  Subst  \mkleeneopen{}[x\mmember{}b|eq  x  z]  =  \{z\}\mkleeneclose{}  0\mcdot{}
  THEN  Auto
  THEN  BLemma  `bag-extensionality-no-repeats`
  THEN  Auto)
Home
Index