Nuprl Lemma : member-count-repeats2

[T:Type]
  ∀eq:EqDecider(T). ∀L:T List. ∀i:ℕ||count-repeats(L,eq)||.
    let x,n count-repeats(L,eq)[i] 
    in ||filter(λy.(eq x);L)|| ∈ ℤ


Proof




Definitions occuring in Statement :  count-repeats: count-repeats(L,eq) select: L[n] length: ||as|| filter: filter(P;l) list: List deq: EqDecider(T) int_seg: {i..j-} uall: [x:A]. B[x] all: x:A. B[x] apply: a lambda: λx.A[x] spread: spread def natural_number: $n int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] member: t ∈ T int_seg: {i..j-} uimplies: supposing a guard: {T} lelt: i ≤ j < k and: P ∧ Q decidable: Dec(P) or: P ∨ Q not: ¬A implies:  Q satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] false: False top: Top prop: less_than: a < b squash: T sq_type: SQType(T) uiff: uiff(P;Q) iff: ⇐⇒ Q ifthenelse: if then else fi  btrue: tt rev_implies:  Q bfalse: ff l_member: (x ∈ l) subtype_rel: A ⊆B le: A ≤ B less_than': less_than'(a;b) cand: c∧ B nat_plus: + nat: ge: i ≥  so_lambda: λ2x.t[x] so_apply: x[s] outl: outl(x) deq: EqDecider(T) isl: isl(x) assert: b true: True pi1: fst(t)
Lemmas referenced :  select_wf nat_plus_wf count-repeats_wf int_seg_properties length_wf decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf istype-int int_formula_prop_and_lemma istype-void int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_wf decidable__lt intformless_wf int_formula_prop_less_lemma int_seg_wf list_wf deq_wf istype-universe apply-alist-count-repeats deq-member_wf assert_wf bnot_wf not_wf l_member_wf istype-assert bool_cases subtype_base_sq bool_wf bool_subtype_base eqtt_to_assert assert-deq-member eqff_to_assert iff_transitivity iff_weakening_uiff assert_of_bnot apply-alist-no_repeats no_repeats-count-repeats1 int_seg_subtype_nat istype-false nat_plus_properties istype-less_than nat_properties equal-wf-base-T unit_wf2 union_subtype_base set_subtype_base less_than_wf int_subtype_base unit_subtype_base length_wf_nat filter_wf5 outl_wf equal_wf btrue_wf bfalse_wf nat_plus_subtype_nat subtype_rel_wf nat_wf member-count-repeats1 map-length map_wf istype-nat squash_wf true_wf map_select subtype_rel_self iff_weakening_equal
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity Error :isect_memberFormation_alt,  Error :lambdaFormation_alt,  cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin productEquality hypothesisEquality hypothesis because_Cache setElimination rename independent_isectElimination natural_numberEquality productElimination dependent_functionElimination unionElimination approximateComputation independent_functionElimination Error :dependent_pairFormation_alt,  Error :lambdaEquality_alt,  int_eqEquality Error :isect_memberEquality_alt,  voidElimination sqequalRule independent_pairFormation Error :universeIsType,  imageElimination Error :inhabitedIsType,  Error :equalityIstype,  equalityTransitivity equalitySymmetry instantiate universeEquality Error :functionIsType,  cumulativity applyEquality Error :productIsType,  hyp_replacement applyLambdaEquality unionEquality intEquality closedConclusion Error :setIsType,  Error :dependent_set_memberEquality_alt,  baseApply baseClosed sqequalBase promote_hyp imageMemberEquality

Latex:
\mforall{}[T:Type]
    \mforall{}eq:EqDecider(T).  \mforall{}L:T  List.  \mforall{}i:\mBbbN{}||count-repeats(L,eq)||.
        let  x,n  =  count-repeats(L,eq)[i] 
        in  n  =  ||filter(\mlambda{}y.(eq  y  x);L)||



Date html generated: 2019_06_20-PM-01_54_50
Last ObjectModification: 2018_11_28-PM-05_14_38

Theory : decidable!equality


Home Index