Nuprl Lemma : bag-count-bag-lub

[T:Type]. ∀[eq:EqDecider(T)]. ∀[as,bs:bag(T)]. ∀[x:T].  ((#x in bag-lub(eq;as;bs)) imax((#x in as);(#x in bs)) ∈ ℤ)


Proof




Definitions occuring in Statement :  bag-lub: bag-lub(eq;b1;b2) bag-count: (#x in bs) bag: bag(T) deq: EqDecider(T) imax: imax(a;b) uall: [x:A]. B[x] int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T bag-lub: bag-lub(eq;b1;b2) nat: subtype_rel: A ⊆B all: x:A. B[x] implies:  Q guard: {T} ge: i ≥  decidable: Dec(P) or: P ∨ Q uimplies: supposing a satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] false: False not: ¬A top: Top and: P ∧ Q prop: so_lambda: λ2x.t[x] so_apply: x[s] deq: EqDecider(T) cand: c∧ B uiff: uiff(P;Q) bag-member: x ↓∈ bs squash: T eqof: eqof(d) rev_uimplies: rev_uimplies(P;Q) true: True iff: ⇐⇒ Q rev_implies:  Q sq_type: SQType(T) ifthenelse: if then else fi  btrue: tt bfalse: ff le_int: i ≤j lt_int: i <j bnot: ¬bb assert: b bool: 𝔹 unit: Unit it: sq_or: a ↓∨ b sq_stable: SqStable(P) single-bag: {x} bag-sum: bag-sum(ba;x.f[x]) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] empty-bag: {}
Lemmas referenced :  bag_wf deq_wf bag-rep_wf imax_wf bag-count_wf imax_nat nat_wf nat_properties 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 equal_wf le_wf list-subtype-bag bag-to-set_wf bag-append_wf decidable__bag-member decidable-equal-deq bag-count-combine bag-sum-count bag-sum_wf bag-extensionality-no-repeats bag-filter_wf subtype_rel_bag assert_wf single-bag_wf bag-single-no-repeats bag-member-single bag-member_wf bag-no-repeats-filter no-repeats-bag-to-set bag-member-filter safe-assert-deq squash_wf true_wf bag-filter-equal le_int_wf assert_of_le_int assert_functionality_wrt_uiff ifthenelse_wf bag-count-rep bnot_wf eqof_wf not_wf bool_cases subtype_base_sq bool_wf bool_subtype_base eqtt_to_assert eqff_to_assert iff_transitivity iff_weakening_uiff assert_of_bnot iff_weakening_equal bool_cases_sqequal member-bag-to-set bag-member-append sq_stable__le imax_ub bag-member-count or_wf list_accum_cons_lemma list_accum_nil_lemma decidable__equal_int itermAdd_wf int_term_value_add_lemma assert-bnot add_functionality_wrt_eq bag-filter-is-empty false_wf and_wf imax-idempotent bag-count-is-zero
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut hypothesis hypothesisEquality sqequalRule sqequalHypSubstitution isect_memberEquality isectElimination thin axiomEquality because_Cache extract_by_obid cumulativity universeEquality lambdaEquality dependent_set_memberEquality applyEquality setElimination rename lambdaFormation equalityTransitivity equalitySymmetry applyLambdaEquality dependent_functionElimination natural_numberEquality unionElimination independent_isectElimination dependent_pairFormation int_eqEquality intEquality voidElimination voidEquality independent_pairFormation computeAll independent_functionElimination hyp_replacement setEquality productElimination imageElimination imageMemberEquality baseClosed instantiate impliesFunctionality promote_hyp equalityElimination addLevel orFunctionality inlFormation inrFormation

Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[as,bs:bag(T)].  \mforall{}[x:T].
    ((\#x  in  bag-lub(eq;as;bs))  =  imax((\#x  in  as);(\#x  in  bs)))



Date html generated: 2018_05_21-PM-09_52_28
Last ObjectModification: 2017_07_26-PM-06_31_50

Theory : bags_2


Home Index