Nuprl Lemma : bag-double-summation2

∀[R:Type]. ∀[add:R ⟶ R ⟶ R]. ∀[zero:R].
  ∀[T,A:Type]. ∀[f:T ⟶ bag(A)]. ∀[h:T ⟶ A ⟶ R]. ∀[b:bag(T)].
    (Σ(x∈b). Σ(y∈f[x]). h[x;y] = Σ(p∈⋃x∈b.bag-map(λy.<x, y>;f[x])). h[fst(p);snd(p)] ∈ R) 
  supposing IsMonoid(R;add;zero) ∧ Comm(R;add)


Proof




Definitions occuring in Statement :  bag-summation: Σ(x∈b). f[x],  bag-combine: ⋃x∈bs.f[x],  bag-map: bag-map(f;bs),  bag: bag(T),  comm: Comm(T;op),  uimplies: b supposing a,  uall: ∀[x:A]. B[x],  so_apply: x[s1;s2],  so_apply: x[s],  pi1: fst(t),  pi2: snd(t),  and: P ∧ Q,  lambda: λx.A[x],  function: x:A ⟶ B[x],  pair: <a, b>,  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: ℙ,  cand: A c∧ B,  so_lambda: λ2x.t[x],  so_apply: x[s]
Lemmas referenced :  bag-double-summation,  bag_wf,  and_wf,  monoid_p_wf,  comm_wf
Rules used in proof :  cut,  lemma_by_obid,  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  hypothesis,  sqequalHypSubstitution,  isectElimination,  thin,  hypothesisEquality,  introduction,  productElimination,  sqequalRule,  isect_memberEquality,  axiomEquality,  because_Cache,  functionEquality,  universeEquality,  independent_pairFormation,  lambdaEquality,  independent_isectElimination

Latex:
\mforall{}[R:Type].  \mforall{}[add:R  {}\mrightarrow{}  R  {}\mrightarrow{}  R].  \mforall{}[zero:R].
    \mforall{}[T,A:Type].  \mforall{}[f:T  {}\mrightarrow{}  bag(A)].  \mforall{}[h:T  {}\mrightarrow{}  A  {}\mrightarrow{}  R].  \mforall{}[b:bag(T)].
        (\mSigma{}(x\mmember{}b).  \mSigma{}(y\mmember{}f[x]).  h[x;y]  =  \mSigma{}(p\mmember{}\mcup{}x\mmember{}b.bag-map(\mlambda{}y.<x,  y>f[x])).  h[fst(p);snd(p)]) 
    supposing  IsMonoid(R;add;zero)  \mwedge{}  Comm(R;add)



Date html generated: 2016_05_15-PM-02_33_02
Last ObjectModification: 2015_12_27-AM-09_47_22

Theory : bags


Home Index