### Nuprl Lemma : bag-mapfilter-combine

`∀[A,B,C:Type]. ∀[b:bag(A)]. ∀[f:A ⟶ bag(B)]. ∀[P:B ⟶ 𝔹]. ∀[g:{x:B| ↑P[x]}  ⟶ C].`
`  (bag-mapfilter(g;P;⋃x∈b.f[x]) = ⋃x∈b.bag-mapfilter(g;P;f[x]) ∈ bag(C))`

Proof

Definitions occuring in Statement :  bag-combine: `⋃x∈bs.f[x]` bag-mapfilter: `bag-mapfilter(f;P;bs)` bag: `bag(T)` assert: `↑b` bool: `𝔹` uall: `∀[x:A]. B[x]` so_apply: `x[s]` set: `{x:A| B[x]} ` function: `x:A ⟶ B[x]` universe: `Type` equal: `s = t ∈ T`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` bag-mapfilter: `bag-mapfilter(f;P;bs)` so_apply: `x[s]` prop: `ℙ` so_lambda: `λ2x.t[x]` true: `True` squash: `↓T` subtype_rel: `A ⊆r B` uimplies: `b supposing a` guard: `{T}` iff: `P `⇐⇒` Q` and: `P ∧ Q` rev_implies: `P `` Q` implies: `P `` Q`
Lemmas referenced :  assert_wf bool_wf bag_wf set_wf bag-combine_wf bag-map_wf bag-filter_wf equal_wf squash_wf true_wf bag-filter-combine2 iff_weakening_equal bag-map-combine
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut sqequalRule hypothesis functionEquality setEquality cumulativity hypothesisEquality extract_by_obid sqequalHypSubstitution isectElimination thin applyEquality functionExtensionality isect_memberEquality axiomEquality because_Cache universeEquality lambdaEquality natural_numberEquality imageElimination equalityTransitivity equalitySymmetry imageMemberEquality baseClosed independent_isectElimination productElimination independent_functionElimination

Latex:
\mforall{}[A,B,C:Type].  \mforall{}[b:bag(A)].  \mforall{}[f:A  {}\mrightarrow{}  bag(B)].  \mforall{}[P:B  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[g:\{x:B|  \muparrow{}P[x]\}    {}\mrightarrow{}  C].
(bag-mapfilter(g;P;\mcup{}x\mmember{}b.f[x])  =  \mcup{}x\mmember{}b.bag-mapfilter(g;P;f[x]))

Date html generated: 2017_10_01-AM-08_58_19
Last ObjectModification: 2017_07_26-PM-04_40_18

Theory : bags

Home Index