Nuprl Lemma : bag-summation-zero

`∀[T,R:Type]. ∀[add:R ⟶ R ⟶ R]. ∀[zero:R]. ∀[b:bag(T)].`
`  Σ(x∈b). zero = zero ∈ R supposing IsMonoid(R;add;zero) ∧ Comm(R;add)`

Proof

Definitions occuring in Statement :  bag-summation: `Σ(x∈b). f[x]` bag: `bag(T)` comm: `Comm(T;op)` uimplies: `b supposing a` uall: `∀[x:A]. B[x]` and: `P ∧ Q` function: `x:A ⟶ B[x]` universe: `Type` equal: `s = t ∈ T` monoid_p: `IsMonoid(T;op;id)`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` uimplies: `b supposing a` and: `P ∧ Q` prop: `ℙ` bag: `bag(T)` quotient: `x,y:A//B[x; y]` all: `∀x:A. B[x]` implies: `P `` Q` bag-summation: `Σ(x∈b). f[x]` bag-accum: `bag-accum(v,x.f[v; x];init;bs)` so_lambda: `λ2x.t[x]` subtype_rel: `A ⊆r B` top: `Top` so_lambda: `λ2x y.t[x; y]` so_apply: `x[s1;s2]` so_apply: `x[s]` squash: `↓T` monoid_p: `IsMonoid(T;op;id)` assoc: `Assoc(T;op)` ident: `Ident(T;op;id)` infix_ap: `x f y` true: `True`
Lemmas referenced :  monoid_p_wf comm_wf bag_wf list_wf permutation_wf equal_wf equal-wf-base list_induction list_accum_wf top_wf subtype_rel_list list_accum_nil_lemma list_accum_cons_lemma squash_wf true_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut sqequalHypSubstitution productElimination thin hypothesis productEquality extract_by_obid isectElimination cumulativity hypothesisEquality functionExtensionality applyEquality sqequalRule isect_memberEquality axiomEquality because_Cache equalityTransitivity equalitySymmetry functionEquality universeEquality pointwiseFunctionalityForEquality pertypeElimination lambdaFormation rename dependent_functionElimination independent_functionElimination lambdaEquality independent_isectElimination voidElimination voidEquality addLevel hyp_replacement imageElimination imageMemberEquality baseClosed natural_numberEquality levelHypothesis

Latex:
\mforall{}[T,R:Type].  \mforall{}[add:R  {}\mrightarrow{}  R  {}\mrightarrow{}  R].  \mforall{}[zero:R].  \mforall{}[b:bag(T)].