Nuprl Lemma : bag-sum-count

[A,B:Type]. ∀[f:B ⟶ bag(A)]. ∀[eq:EqDecider(A)]. ∀[bb:bag(B)]. ∀[z:A].
  (bag-sum(bb;b.(#z in f[b])) bag-sum([b∈bb|1 ≤(#z in f[b])];b.(#z in f[b])))


Proof




Definitions occuring in Statement :  bag-count: (#x in bs) bag-sum: bag-sum(ba;x.f[x]) bag-filter: [x∈b|p[x]] bag: bag(T) deq: EqDecider(T) le_int: i ≤j uall: [x:A]. B[x] so_apply: x[s] function: x:A ⟶ B[x] natural_number: $n universe: Type sqequal: t
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a bag: bag(T) quotient: x,y:A//B[x; y] and: P ∧ Q all: x:A. B[x] implies:  Q so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] prop: so_lambda: λ2x.t[x] so_apply: x[s] subtype_rel: A ⊆B sq_type: SQType(T) guard: {T} bag-filter: [x∈b|p[x]] bag-sum: bag-sum(ba;x.f[x]) nat: false: False ge: i ≥  satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] not: ¬A top: Top int_seg: {i..j-} lelt: i ≤ j < k decidable: Dec(P) or: P ∨ Q le: A ≤ B less_than': less_than'(a;b) less_than: a < b squash: T cons: [a b] assert: b ifthenelse: if then else fi  bfalse: ff iff: ⇐⇒ Q uiff: uiff(P;Q) rev_implies:  Q int_iseg: {i...j} cand: c∧ B bool: 𝔹 unit: Unit it: btrue: tt bnot: ¬bb
Lemmas referenced :  subtype_base_sq int_subtype_base list_wf quotient-member-eq permutation_wf permutation-equiv equal_wf bag-sum_wf bag-count_wf assert_wf le_int_wf bag-filter_wf list-subtype-bag equal-wf-base bag_wf deq_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 le_wf length_wf int_seg_wf int_seg_properties decidable__le subtract_wf intformnot_wf itermSubtract_wf int_formula_prop_not_lemma int_term_value_subtract_lemma decidable__equal_int int_seg_subtype false_wf intformeq_wf int_formula_prop_eq_lemma non_neg_length decidable__lt lelt_wf decidable__assert null_wf3 subtype_rel_list top_wf list-cases list_accum_nil_lemma filter_nil_lemma product_subtype_list null_cons_lemma last-lemma-sq pos_length iff_transitivity not_wf equal-wf-T-base bnot_wf assert_of_null iff_weakening_uiff assert_of_bnot firstn_wf length_firstn itermAdd_wf int_term_value_add_lemma nat_wf length_wf_nat cons_wf last_wf nil_wf filter_wf5 l_member_wf list_accum_cons_lemma filter_cons_lemma bool_wf eqtt_to_assert assert_of_le_int eqff_to_assert bool_cases_sqequal bool_subtype_base assert-bnot list_accum_append filter_append set_subtype_base
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin instantiate extract_by_obid sqequalHypSubstitution isectElimination cumulativity intEquality independent_isectElimination hypothesis pointwiseFunctionalityForEquality sqequalRule pertypeElimination productElimination equalityTransitivity equalitySymmetry hypothesisEquality lambdaFormation because_Cache rename lambdaEquality dependent_functionElimination independent_functionElimination hyp_replacement applyLambdaEquality applyEquality functionExtensionality setEquality natural_numberEquality setElimination productEquality sqequalAxiom isect_memberEquality functionEquality universeEquality intWeakElimination dependent_pairFormation int_eqEquality voidElimination voidEquality independent_pairFormation computeAll axiomEquality unionElimination hypothesis_subsumption dependent_set_memberEquality imageElimination promote_hyp baseClosed impliesFunctionality addEquality equalityElimination

Latex:
\mforall{}[A,B:Type].  \mforall{}[f:B  {}\mrightarrow{}  bag(A)].  \mforall{}[eq:EqDecider(A)].  \mforall{}[bb:bag(B)].  \mforall{}[z:A].
    (bag-sum(bb;b.(\#z  in  f[b]))  \msim{}  bag-sum([b\mmember{}bb|1  \mleq{}z  (\#z  in  f[b])];b.(\#z  in  f[b])))



Date html generated: 2018_05_21-PM-09_46_19
Last ObjectModification: 2017_07_26-PM-06_29_59

Theory : bags_2


Home Index