Nuprl Lemma : filter-fpf-vals

∀[A:Type]. ∀[eq:EqDecider(A)]. ∀[B:A ─→ Type]. ∀[P,Q:A ─→ 𝔹]. ∀[f:x:A fp-> B[x]].
  (filter(λpL.Q[fst(pL)];fpf-vals(eq;P;f)) ~ fpf-vals(eq;λa.((P a) ∧b (Q a));f))


Proof




Definitions occuring in Statement :  fpf-vals: fpf-vals(eq;P;f),  fpf: a:A fp-> B[a],  deq: EqDecider(T),  filter: filter(P;l),  band: p ∧b q,  bool: 𝔹,  uall: ∀[x:A]. B[x],  so_apply: x[s],  pi1: fst(t),  apply: f a,  lambda: λx.A[x],  function: x:A ─→ B[x],  universe: Type,  sqequal: s ~ t
Lemmas :  remove-repeats_wf,  l_member_wf,  subtype_rel-deq,  member_wf,  equal_wf,  set_wf,  list-subtype,  list_wf,  nat_properties,  less_than_transitivity1,  less_than_irreflexivity,  ge_wf,  less_than_wf,  equal-wf-T-base,  colength_wf_list,  list-cases,  filter_nil_lemma,  zip_nil_lemma,  product_subtype_list,  spread_cons_lemma,  sq_stable__le,  le_antisymmetry_iff,  add_functionality_wrt_le,  add-associates,  add-zero,  zero-add,  le-add-cancel,  nat_wf,  decidable__le,  false_wf,  not-le-2,  condition-implies-le,  minus-add,  minus-one-mul,  add-commutes,  le_wf,  subtract_wf,  not-ge-2,  less-iff-le,  minus-minus,  add-swap,  subtype_base_sq,  set_subtype_base,  int_subtype_base,  filter_cons_lemma,  bool_wf,  eqtt_to_assert,  map_cons_lemma,  zip_cons_cons_lemma,  eqff_to_assert,  bool_cases_sqequal,  bool_subtype_base,  assert-bnot
\mforall{}[A:Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[P,Q:A  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[f:x:A  fp->  B[x]].
    (filter(\mlambda{}pL.Q[fst(pL)];fpf-vals(eq;P;f))  \msim{}  fpf-vals(eq;\mlambda{}a.((P  a)  \mwedge{}\msubb{}  (Q  a));f))



Date html generated: 2015_07_17-AM-11_09_35
Last ObjectModification: 2015_01_28-AM-07_48_07

Home Index