Nuprl Lemma : sub-bag-iff

[T:Type]. ∀eq:EqDecider(T). ∀as,bs:bag(T).  (sub-bag(T;as;bs) ⇐⇒ ∀x:T. ((#x in as) ≤ (#x in bs)))


Proof




Definitions occuring in Statement :  bag-count: (#x in bs) sub-bag: sub-bag(T;as;bs) bag: bag(T) deq: EqDecider(T) uall: [x:A]. B[x] le: A ≤ B all: x:A. B[x] iff: ⇐⇒ Q universe: Type
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q member: t ∈ T le: A ≤ B uimplies: supposing a prop: rev_implies:  Q subtype_rel: A ⊆B sub-bag: sub-bag(T;as;bs) exists: x:A. B[x] squash: T true: True guard: {T} decidable: Dec(P) or: P ∨ Q false: False nat: ge: i ≥  not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) top: Top uiff: uiff(P;Q) so_lambda: λ2x.t[x] so_apply: x[s] bool: 𝔹 unit: Unit it: btrue: tt ifthenelse: if then else fi  bfalse: ff bag: bag(T) quotient: x,y:A//B[x; y] bag-filter: [x∈b|p[x]] bag-size: #(bs) bag-map: bag-map(f;bs) bag-union: bag-union(bbs) concat: concat(ll) cons: [a b] less_than': less_than'(a;b) colength: colength(L) nil: [] sq_type: SQType(T) less_than: a < b so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] deq: EqDecider(T) istype: istype(T) eqof: eqof(d) cons-bag: x.b bnot: ¬bb assert: b append: as bs so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] l_all: (∀x∈L.P[x]) rev_uimplies: rev_uimplies(P;Q) sq_or: a ↓∨ b sq_stable: SqStable(P) bag-member: x ↓∈ bs
Lemmas referenced :  le_witness_for_triv istype-universe sub-bag_wf le_wf bag-count_wf bag_wf deq_wf equal_wf squash_wf true_wf istype-int bag-count-append subtype_rel_self iff_weakening_equal decidable__le nat_properties full-omega-unsat intformand_wf intformle_wf itermConstant_wf itermVar_wf intformnot_wf itermAdd_wf int_formula_prop_and_lemma istype-void int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_not_lemma int_term_value_add_lemma int_formula_prop_wf subtract_wf subtract_nat_wf subtract-is-int-iff itermSubtract_wf intformeq_wf int_term_value_subtract_lemma int_formula_prop_eq_lemma false_wf repn_wf list-subtype-bag nat_wf bag-union_wf bag-map_wf bag-to-set_wf set_subtype_base int_subtype_base member-bag-to-set count-bag-to-set ifthenelse_wf lt_int_wf bag-member_wf list_wf permutation_wf permutation_weakening bag-count-sqequal intformless_wf int_formula_prop_less_lemma ge_wf less_than_wf list-cases filter_nil_lemma map_nil_lemma length_of_nil_lemma reduce_nil_lemma product_subtype_list colength-cons-not-zero colength_wf_list istype-false subtract-1-ge-0 subtype_base_sq spread_cons_lemma decidable__equal_int filter_cons_lemma map_cons_lemma length_wf filter_wf5 l_member_wf nil_wf assert_wf bnot_wf eqof_wf not_wf bool_cases bool_wf bool_subtype_base eqtt_to_assert assert_of_lt_int eqff_to_assert iff_transitivity iff_weakening_uiff assert_of_bnot non_neg_length length_wf_nat safe-assert-deq length_of_cons_lemma bool_cases_sqequal assert-bnot concat-cons filter_append_sq cons-bag_wf append_wf subtype_rel_list concat_wf map_wf add-is-int-iff filter_is_nil list_ind_nil_lemma int_seg_wf length-repn select-repn append-nil top_wf filter_trivial l_all_iff strong-subtype-deq-subtype strong-subtype-set2 bag-member-cons sq_stable__bag-member set_wf permutation-length permutation_functionality_wrt_permutation filter_functionality_wrt_permutation bag-append_wf bag-extensionality
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt independent_pairFormation introduction cut extract_by_obid sqequalHypSubstitution isectElimination thin productElimination equalityTransitivity hypothesis equalitySymmetry independent_isectElimination hypothesisEquality universeIsType sqequalRule functionIsType applyEquality because_Cache inhabitedIsType universeEquality hyp_replacement applyLambdaEquality lambdaEquality_alt imageElimination natural_numberEquality imageMemberEquality baseClosed instantiate independent_functionElimination dependent_functionElimination unionElimination setElimination rename approximateComputation dependent_pairFormation_alt int_eqEquality isect_memberEquality_alt voidElimination dependent_set_memberEquality_alt pointwiseFunctionality promote_hyp baseApply closedConclusion equalityIsType1 setEquality setIsType equalityIsType4 intEquality equalityElimination productIsType isectIsType pertypeElimination intWeakElimination axiomEquality functionIsTypeImplies hypothesis_subsumption voidEquality cumulativity addEquality axiomSqEquality inrFormation_alt

Latex:
\mforall{}[T:Type].  \mforall{}eq:EqDecider(T).  \mforall{}as,bs:bag(T).    (sub-bag(T;as;bs)  \mLeftarrow{}{}\mRightarrow{}  \mforall{}x:T.  ((\#x  in  as)  \mleq{}  (\#x  in  bs)))



Date html generated: 2019_10_16-AM-11_32_49
Last ObjectModification: 2018_10_11-PM-10_24_35

Theory : bags_2


Home Index