Nuprl Lemma : member-mapfilter-univ

∀[T:Type]
  ∀L:T List. ∀P:{x:T| (x ∈ L)}  ⟶ 𝔹.
    ∀[T':Type]
      ∀f:{x:T| (x ∈ L) c∧ (↑(P x))}  ⟶ T'. ∀x:T'.
        ((x ∈ mapfilter(f;P;L)) ⇐⇒ ∃y:T. ((y ∈ L) ∧ ((↑(P y)) c∧ (x = (f y) ∈ T'))))


Proof




Definitions occuring in Statement :  mapfilter: mapfilter(f;P;L),  l_member: (x ∈ l),  list: T List,  assert: ↑b,  bool: 𝔹,  uall: ∀[x:A]. B[x],  cand: A c∧ B,  all: ∀x:A. B[x],  exists: ∃x:A. B[x],  iff: P ⇐⇒ Q,  and: P ∧ Q,  set: {x:A| B[x]} ,  apply: f a,  function: x:A ⟶ B[x],  universe: Type,  equal: s = t ∈ T
Definitions unfolded in proof :  guard: {T},  cand: A c∧ B,  prop: ℙ,  member: t ∈ T,  all: ∀x:A. B[x],  uall: ∀[x:A]. B[x],  rev_implies: P ⇐ Q,  implies: P ⇒ Q,  and: P ∧ Q,  iff: P ⇐⇒ Q,  exists: ∃x:A. B[x],  so_lambda: λ2x.t[x],  so_apply: x[s],  mapfilter: mapfilter(f;P;L),  subtype_rel: A ⊆r B,  uimplies: b supposing a
Lemmas referenced :  istype-universe,  list_wf,  bool_wf,  list-subtype,  assert_wf,  istype-assert,  l_member_wf,  member_map_filter,  l_member-settype,  map_wf,  filter_type,  subtype_rel_list
Rules used in proof :  universeEquality,  instantiate,  inhabitedIsType,  setIsType,  functionIsType,  because_Cache,  universeIsType,  productIsType,  sqequalRule,  independent_pairFormation,  dependent_set_memberEquality_alt,  rename,  setElimination,  applyEquality,  functionExtensionality,  dependent_functionElimination,  hypothesis,  hypothesisEquality,  setEquality,  thin,  isectElimination,  sqequalHypSubstitution,  extract_by_obid,  introduction,  cut,  lambdaFormation_alt,  isect_memberFormation_alt,  sqequalReflexivity,  computationStep,  sqequalTransitivity,  sqequalSubstitution,  productElimination,  independent_functionElimination,  dependent_pairFormation_alt,  lambdaEquality_alt,  equalityIstype,  productEquality,  equalityIsType1,  equalityTransitivity,  equalitySymmetry,  independent_isectElimination,  cumulativity

Latex:
\mforall{}[T:Type]
    \mforall{}L:T  List.  \mforall{}P:\{x:T|  (x  \mmember{}  L)\}    {}\mrightarrow{}  \mBbbB{}.
        \mforall{}[T':Type]
            \mforall{}f:\{x:T|  (x  \mmember{}  L)  c\mwedge{}  (\muparrow{}(P  x))\}    {}\mrightarrow{}  T'.  \mforall{}x:T'.
                ((x  \mmember{}  mapfilter(f;P;L))  \mLeftarrow{}{}\mRightarrow{}  \mexists{}y:T.  ((y  \mmember{}  L)  \mwedge{}  ((\muparrow{}(P  y))  c\mwedge{}  (x  =  (f  y)))))



Date html generated: 2019_10_15-AM-10_21_57
Last ObjectModification: 2019_08_05-PM-02_08_39

Theory : list_1


Home Index