Nuprl Lemma : bag-filter-map2

[T,A:Type]. ∀[f:A ⟶ T]. ∀[p:T ⟶ 𝔹]. ∀[as:bag(A)].
  ([x∈bag-map(f;as)|p[x]] bag-map(f;[x∈as|p[f x]]) ∈ bag({x:T| ↑p[x]} ))


Proof




Definitions occuring in Statement :  bag-filter: [x∈b|p[x]] bag-map: bag-map(f;bs) bag: bag(T) assert: b bool: 𝔹 uall: [x:A]. B[x] so_apply: x[s] set: {x:A| B[x]}  apply: a function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T so_lambda: λ2x.t[x] so_apply: x[s] prop: squash: T exists: x:A. B[x]
Lemmas referenced :  bag-filter-map bag-map_wf assert_wf bag_to_squash_list istype-assert bag-filter_wf bag_wf bool_wf istype-universe
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt introduction cut sqequalRule extract_by_obid sqequalHypSubstitution isectElimination thin Error :memTop,  hypothesis setEquality hypothesisEquality applyEquality imageElimination productElimination promote_hyp rename functionExtensionality_alt setElimination dependent_set_memberEquality_alt setIsType because_Cache lambdaEquality_alt universeIsType isect_memberEquality_alt axiomEquality isectIsTypeImplies inhabitedIsType functionIsType instantiate universeEquality

Latex:
\mforall{}[T,A:Type].  \mforall{}[f:A  {}\mrightarrow{}  T].  \mforall{}[p:T  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[as:bag(A)].
    ([x\mmember{}bag-map(f;as)|p[x]]  =  bag-map(f;[x\mmember{}as|p[f  x]]))



Date html generated: 2020_05_20-AM-08_01_31
Last ObjectModification: 2019_12_31-PM-07_06_26

Theory : bags


Home Index