Nuprl Lemma : remove-repeats-fun-map2

[A,B:Type]. ∀[eq:EqDecider(B)]. ∀[L:A List]. ∀[f:{a:A| (a ∈ L)}  ⟶ B].
  (map(f;remove-repeats-fun(eq;f;L)) remove-repeats(eq;map(f;L)) ∈ (B List))


Proof




Definitions occuring in Statement :  remove-repeats-fun: remove-repeats-fun(eq;f;L) remove-repeats: remove-repeats(eq;L) l_member: (x ∈ l) map: map(f;as) list: List deq: EqDecider(T) uall: [x:A]. B[x] set: {x:A| B[x]}  function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T all: x:A. B[x] nat: implies:  Q false: False ge: i ≥  uimplies: supposing a not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] top: Top and: P ∧ Q prop: subtype_rel: A ⊆B or: P ∨ Q remove-repeats-fun: remove-repeats-fun(eq;f;L) so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] cons: [a b] colength: colength(L) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] guard: {T} decidable: Dec(P) nil: [] it: so_lambda: λ2x.t[x] so_apply: x[s] sq_type: SQType(T) less_than: a < b squash: T less_than': less_than'(a;b) iff: ⇐⇒ Q rev_implies:  Q compose: g deq: EqDecider(T) true: True
Lemmas referenced :  nat_properties full-omega-unsat 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 l_member_wf equal-wf-T-base nat_wf colength_wf_list int_subtype_base list-cases list_ind_nil_lemma map_nil_lemma remove_repeats_nil_lemma nil_wf 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 equal_wf subtract_wf itermSubtract_wf int_term_value_subtract_lemma subtype_base_sq set_subtype_base decidable__equal_int list_ind_cons_lemma map_cons_lemma remove_repeats_cons_lemma cons_wf cons_member filter-map map_wf filter_wf5 remove-repeats-fun_wf list-set-type subtype_rel_list_set bnot_wf list_wf deq_wf subtype_rel_dep_function subtype_rel_sets set_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin lambdaFormation extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality hypothesis setElimination rename intWeakElimination natural_numberEquality independent_isectElimination approximateComputation independent_functionElimination dependent_pairFormation lambdaEquality int_eqEquality intEquality dependent_functionElimination isect_memberEquality voidElimination voidEquality sqequalRule independent_pairFormation axiomEquality functionEquality setEquality applyEquality because_Cache unionElimination promote_hyp hypothesis_subsumption productElimination equalityTransitivity equalitySymmetry applyLambdaEquality dependent_set_memberEquality addEquality baseClosed instantiate cumulativity imageElimination functionExtensionality inlFormation inrFormation imageMemberEquality universeEquality

Latex:
\mforall{}[A,B:Type].  \mforall{}[eq:EqDecider(B)].  \mforall{}[L:A  List].  \mforall{}[f:\{a:A|  (a  \mmember{}  L)\}    {}\mrightarrow{}  B].
    (map(f;remove-repeats-fun(eq;f;L))  =  remove-repeats(eq;map(f;L)))



Date html generated: 2018_05_21-PM-00_51_19
Last ObjectModification: 2018_05_19-AM-06_41_07

Theory : decidable!equality


Home Index