Nuprl Lemma : no-repeats-iff-count

[T:Type]. ∀[eq:EqDecider(T)]. ∀[L:T List].
  uiff(no_repeats(T;L);∀[x:T]. uiff(1 ≤ ||filter(eq x;L)||;||filter(eq x;L)|| 1 ∈ ℤ))


Proof




Definitions occuring in Statement :  no_repeats: no_repeats(T;l) length: ||as|| filter: filter(P;l) list: List deq: EqDecider(T) uiff: uiff(P;Q) uall: [x:A]. B[x] le: A ≤ B apply: a natural_number: $n int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a prop: deq: EqDecider(T) subtype_rel: A ⊆B so_lambda: λ2x.t[x] so_apply: x[s] 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:  Q not: ¬A top: Top le: A ≤ B less_than': less_than'(a;b) set-equal: set-equal(T;x;y) iff: ⇐⇒ Q rev_implies:  Q l_member: (x ∈ l) nat: cand: c∧ B ge: i ≥  eqof: eqof(d) int_seg: {i..j-} lelt: i ≤ j < k no_repeats: no_repeats(T;l) rev_uimplies: rev_uimplies(P;Q) guard: {T} length: ||as|| list_ind: list_ind cons: [a b] nil: [] it:
Lemmas referenced :  le_wf length_wf filter_wf5 subtype_rel_dep_function bool_wf l_member_wf subtype_rel_self set_wf decidable__le satisfiable-full-omega-tt intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf intformeq_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_eq_lemma int_formula_prop_wf less_than'_wf equal-wf-T-base no_repeats_wf no_repeats_witness uall_wf uiff_wf list_wf deq_wf set-equal-no_repeats-length cons_wf select_wf false_wf decidable__lt intformless_wf int_formula_prop_less_lemma nil_wf no_repeats_singleton no_repeats_filter length_of_cons_lemma length_of_nil_lemma member_singleton member_filter iff_wf equal_wf assert_wf less_than_wf nat_properties safe-assert-deq select_member lelt_wf not_wf nat_wf sublist_filter l_all_cons assert_functionality_wrt_uiff l_all_nil length_sublist sublist_pair decidable__equal_int equal-wf-base int_subtype_base
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut independent_pairFormation hypothesis extract_by_obid sqequalHypSubstitution isectElimination thin natural_numberEquality cumulativity hypothesisEquality applyEquality setElimination rename sqequalRule lambdaEquality setEquality independent_isectElimination because_Cache lambdaFormation dependent_functionElimination equalityTransitivity equalitySymmetry unionElimination dependent_pairFormation int_eqEquality intEquality isect_memberEquality voidElimination voidEquality computeAll productElimination independent_pairEquality axiomEquality baseClosed independent_functionElimination universeEquality addLevel impliesFunctionality productEquality dependent_set_memberEquality hyp_replacement applyLambdaEquality

Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[L:T  List].
    uiff(no\_repeats(T;L);\mforall{}[x:T].  uiff(1  \mleq{}  ||filter(eq  x;L)||;||filter(eq  x;L)||  =  1))



Date html generated: 2017_09_29-PM-06_04_09
Last ObjectModification: 2017_07_26-PM-02_53_02

Theory : decidable!equality


Home Index