### Nuprl Lemma : filter_filter2

`∀[T:Type]. ∀[P:T ⟶ 𝔹]. ∀[L:T List].  (filter(P;L) = filter2(λi.(P L[i]);L) ∈ (T List))`

Proof

Definitions occuring in Statement :  filter2: `filter2(P;L)` select: `L[n]` filter: `filter(P;l)` list: `T List` bool: `𝔹` uall: `∀[x:A]. B[x]` apply: `f a` lambda: `λx.A[x]` function: `x:A ⟶ B[x]` universe: `Type` equal: `s = t ∈ T`
Definitions unfolded in proof :  member: `t ∈ T` prop: `ℙ` uall: `∀[x:A]. B[x]` int_seg: `{i..j-}` uimplies: `b supposing a` guard: `{T}` lelt: `i ≤ j < k` and: `P ∧ Q` all: `∀x:A. B[x]` decidable: `Dec(P)` or: `P ∨ Q` satisfiable_int_formula: `satisfiable_int_formula(fmla)` exists: `∃x:A. B[x]` false: `False` implies: `P `` Q` not: `¬A` top: `Top` ge: `i ≥ j ` le: `A ≤ B` so_lambda: `λ2x.t[x]` subtype_rel: `A ⊆r B` so_apply: `x[s]` less_than: `a < b` squash: `↓T` bool: `𝔹` unit: `Unit` it: `⋅` btrue: `tt` ifthenelse: `if b then t else f fi ` uiff: `uiff(P;Q)` bfalse: `ff` true: `True` iff: `P `⇐⇒` Q` rev_implies: `P `` Q` select: `L[n]` cons: `[a / b]`
Lemmas referenced :  bool_wf equal_wf cons_wf filter2_wf select_wf int_seg_properties length_wf decidable__le satisfiable-full-omega-tt intformand_wf intformnot_wf intformle_wf itermConstant_wf itermAdd_wf itermVar_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_add_lemma int_term_value_var_lemma int_formula_prop_wf length_of_cons_lemma non_neg_length decidable__lt intformless_wf int_formula_prop_less_lemma equal-wf-T-base assert_wf bnot_wf not_wf list_induction list_wf filter_wf5 subtype_rel_dep_function l_member_wf set_wf int_seg_wf filter_nil_lemma filter2_nil_lemma nil_wf filter_cons_lemma squash_wf true_wf eqtt_to_assert cons_filter2 iff_weakening_equal uiff_transitivity eqff_to_assert assert_of_bnot select-cons-tl add-subtract-cancel
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity applyEquality functionExtensionality hypothesisEquality cumulativity cut introduction extract_by_obid hypothesis because_Cache thin hyp_replacement equalitySymmetry applyLambdaEquality sqequalHypSubstitution isectElimination lambdaEquality addEquality setElimination rename independent_isectElimination natural_numberEquality productElimination dependent_functionElimination unionElimination dependent_pairFormation int_eqEquality intEquality isect_memberEquality voidElimination voidEquality sqequalRule independent_pairFormation computeAll baseClosed isect_memberFormation setEquality lambdaFormation imageElimination independent_functionElimination equalityTransitivity equalityElimination imageMemberEquality universeEquality axiomEquality functionEquality

Latex:
\mforall{}[T:Type].  \mforall{}[P:T  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[L:T  List].    (filter(P;L)  =  filter2(\mlambda{}i.(P  L[i]);L))

Date html generated: 2017_10_01-AM-08_35_11
Last ObjectModification: 2017_07_26-PM-04_25_44

Theory : list!

Home Index