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: b 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: s = t ∈ T
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  uimplies: b supposing a,  product-deq: product-deq(A;B;a;b),  implies: P ⇒ 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: A c∧ B,  uiff: uiff(P;Q),  bag-member: x ↓∈ bs,  squash: ↓T,  prop: ℙ,  top: Top,  exists: ∃x:A. B[x],  subtype_rel: A ⊆r B,  true: True,  inject: Inj(A;B;f),  guard: {T},  iff: P ⇐⇒ Q,  rev_implies: P ⇐ 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