Nuprl Lemma : bag-partitions-assoc

[T:Type]
  ∀[eq:EqDecider(T)]. ∀[bs:bag(T)].
    (⋃x∈bag-partitions(eq;bs).bag-map(λy.<fst(x), y>;bag-partitions(eq;snd(x)))
    bag-map(λ2p.<fst(snd(p)), snd(snd(p)), fst(p)>;⋃x∈bag-partitions(eq;bs).bag-map(λy.<snd(x), y>;bag-partitions(eq;f\000Cst(x))))
    ∈ bag(bag(T) × bag(T) × bag(T))) 
  supposing valueall-type(T)


Proof




Definitions occuring in Statement :  bag-partitions: bag-partitions(eq;bs) bag-combine: x∈bs.f[x] bag-map: bag-map(f;bs) bag: bag(T) deq: EqDecider(T) valueall-type: valueall-type(T) uimplies: supposing a uall: [x:A]. B[x] so_lambda: λ2x.t[x] pi1: fst(t) pi2: snd(t) lambda: λx.A[x] pair: <a, b> product: x:A × B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a product-deq: product-deq(A;B;a;b) implies:  Q all: x:A. B[x] so_lambda: λ2x.t[x] so_apply: x[s] pi1: fst(t) pi2: snd(t) and: P ∧ Q cand: c∧ B uiff: uiff(P;Q) bag-member: x ↓∈ bs squash: T prop: top: Top exists: x:A. B[x] subtype_rel: A ⊆B true: True inject: Inj(A;B;f) guard: {T} iff: ⇐⇒ Q rev_implies:  Q rev_uimplies: rev_uimplies(P;Q)
Lemmas referenced :  product-deq_wf bag_wf bag-deq_wf deq_wf valueall-type_wf bag-extensionality-no-repeats decidable__equal_product decidable__equal_bag decidable-equal-deq bag-combine_wf bag-partitions_wf bag-map_wf bag-member_wf bag-combine-no-repeats pi1_wf_top pi2_wf bag-member-map bag-member-partitions and_wf equal_wf subtype_rel_product top_wf bag-append_wf squash_wf true_wf bag-map-no-repeats no-repeats-bag-partitions bag-member-combine bag-append-assoc iff_weakening_equal bag-member-subtype exists_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut extract_by_obid sqequalHypSubstitution isectElimination thin cumulativity hypothesisEquality hypothesis productEquality comment sqequalRule isect_memberEquality axiomEquality because_Cache equalityTransitivity equalitySymmetry universeEquality independent_functionElimination lambdaFormation lambdaEquality dependent_functionElimination independent_isectElimination independent_pairEquality productElimination independent_pairFormation imageElimination imageMemberEquality baseClosed voidElimination voidEquality hyp_replacement applyLambdaEquality dependent_set_memberEquality setElimination rename applyEquality natural_numberEquality dependent_pairFormation addLevel existsFunctionality andLevelFunctionality

Latex:
\mforall{}[T:Type]
    \mforall{}[eq:EqDecider(T)].  \mforall{}[bs:bag(T)].
        (\mcup{}x\mmember{}bag-partitions(eq;bs).bag-map(\mlambda{}y.<fst(x),  y>bag-partitions(eq;snd(x)))
        =  bag-map(\mlambda{}\msubtwo{}p.<fst(snd(p)),  snd(snd(p)),  fst(p)>
            \mcup{}x\mmember{}bag-partitions(eq;bs).bag-map(\mlambda{}y.<snd(x),  y>bag-partitions(eq;fst(x))))) 
    supposing  valueall-type(T)



Date html generated: 2018_05_21-PM-09_49_50
Last ObjectModification: 2017_07_26-PM-06_31_17

Theory : bags_2


Home Index