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