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: 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 ⊆B uimplies: supposing a guard: {T} iff: ⇐⇒ Q and: P ∧ Q rev_implies:  Q implies:  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