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] filter: filter(P;l) deq: EqDecider(T) band: p ∧b q bool: 𝔹 uall: [x:A]. B[x] so_apply: x[s] pi1: fst(t) apply: a lambda: λx.A[x] function: x:A ⟶ B[x] universe: Type sqequal: t
Definitions unfolded in proof :  member: t ∈ T uall: [x:A]. B[x] so_lambda: λ2x.t[x] so_apply: x[s] fpf-vals: fpf-vals(eq;P;f) fpf: a:A fp-> B[a] let: let pi1: fst(t) pi2: snd(t) prop: subtype_rel: A ⊆B uimplies: supposing a all: x:A. B[x] implies:  Q nat: false: False ge: i ≥  satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] not: ¬A top: Top and: P ∧ Q guard: {T} or: P ∨ Q cons: [a b] colength: colength(L) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] decidable: Dec(P) nil: [] it: sq_type: SQType(T) less_than: a < b squash: T less_than': less_than'(a;b) bool: 𝔹 unit: Unit btrue: tt uiff: uiff(P;Q) ifthenelse: if then else fi  band: p ∧b q bfalse: ff bnot: ¬bb assert: b
Lemmas referenced :  fpf_wf bool_wf deq_wf remove-repeats_wf l_member_wf strong-subtype-deq-subtype strong-subtype-set2 list-subtype list_wf equal_wf nat_properties satisfiable-full-omega-tt intformand_wf intformle_wf itermConstant_wf itermVar_wf intformless_wf int_formula_prop_and_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_formula_prop_wf ge_wf less_than_wf equal-wf-T-base nat_wf colength_wf_list less_than_transitivity1 less_than_irreflexivity set_wf list-cases filter_nil_lemma zip_nil_lemma product_subtype_list spread_cons_lemma intformeq_wf itermAdd_wf int_formula_prop_eq_lemma int_term_value_add_lemma decidable__le intformnot_wf int_formula_prop_not_lemma le_wf subtract_wf itermSubtract_wf int_term_value_subtract_lemma subtype_base_sq set_subtype_base int_subtype_base decidable__equal_int filter_cons_lemma eqtt_to_assert map_cons_lemma zip_cons_cons_lemma eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin cumulativity hypothesisEquality sqequalRule lambdaEquality applyEquality functionExtensionality hypothesis because_Cache functionEquality universeEquality isect_memberFormation sqequalAxiom isect_memberEquality productElimination setEquality independent_isectElimination equalityTransitivity equalitySymmetry lambdaFormation dependent_functionElimination independent_functionElimination setElimination rename intWeakElimination natural_numberEquality dependent_pairFormation int_eqEquality intEquality voidElimination voidEquality independent_pairFormation computeAll unionElimination promote_hyp hypothesis_subsumption applyLambdaEquality dependent_set_memberEquality addEquality baseClosed instantiate imageElimination equalityElimination

Latex:
\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: 2018_05_21-PM-09_25_55
Last ObjectModification: 2018_02_09-AM-10_21_33

Theory : finite!partial!functions


Home Index