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: f a
, 
function: x:A ⟶ B[x]
, 
universe: Type
, 
equal: s = 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