Nuprl Lemma : bag-extensionality

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


Proof




Definitions occuring in Statement :  bag-count: (#x in bs) bag: bag(T) deq: EqDecider(T) uiff: uiff(P;Q) uall: [x:A]. B[x] all: x:A. B[x] 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 all: x:A. B[x] squash: T prop: true: True subtype_rel: A ⊆B nat: guard: {T} iff: ⇐⇒ Q rev_implies:  Q implies:  Q bag: bag(T) quotient: x,y:A//B[x; y] so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] istype: istype(T) so_lambda: λ2x.t[x] so_apply: x[s] bag-size: #(bs) eqof: eqof(d) bag-filter: [x∈b|p[x]] deq: EqDecider(T)
Lemmas referenced :  equal_wf squash_wf true_wf istype-universe bag-count_wf bag_wf deq_wf nat_wf subtype_rel_self iff_weakening_equal list_wf permutation_wf permutation_weakening quotient-member-eq permutation-equiv list-subtype-bag istype-int set_subtype_base le_wf int_subtype_base permutation-iff-count filter_functionality eta_conv bool_wf length_wf filter_wf5 subtype_rel_dep_function l_member_wf bag-count-sqequal
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt introduction cut independent_pairFormation lambdaFormation_alt applyEquality thin lambdaEquality_alt sqequalHypSubstitution imageElimination extract_by_obid isectElimination hypothesisEquality equalityTransitivity hypothesis equalitySymmetry universeIsType inhabitedIsType universeEquality intEquality natural_numberEquality sqequalRule imageMemberEquality baseClosed setElimination rename because_Cache instantiate independent_isectElimination productElimination independent_functionElimination dependent_functionElimination axiomEquality functionIsTypeImplies equalityIsType1 promote_hyp pointwiseFunctionality pertypeElimination productIsType equalityIsType4 functionIsType closedConclusion independent_pairEquality isect_memberEquality_alt hyp_replacement setEquality setIsType

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



Date html generated: 2019_10_16-AM-11_30_35
Last ObjectModification: 2018_10_11-PM-07_08_11

Theory : bags_2


Home Index