Zulip Chat Archive

Stream: Is there code for X?

Topic: Finite product of modules is a coproduct


Chris Hughes (May 19 2023 at 15:35):

I'm looking for something saying that X -> M is the coproduct of copies of M when X is finite, i.e. I define maps into N by defining #X maps M -> N.

Eric Wieser (May 19 2023 at 15:38):

docs#inear_equiv.Pi_congr_right is close, right?

Matthew Ballard (May 19 2023 at 15:38):

docs#Module.category_theory.limits.has_finite_biproducts ?

Eric Wieser (May 19 2023 at 15:39):

Are you looking for the category_theory statement or the regular algebra one?

Chris Hughes (May 19 2023 at 15:39):

Eric Wieser said:

docs#inear_equiv.Pi_congr_right is close, right?

No, that's true in any category, the thing I want is particular to categories with biproducts. I'm trying not to import category theory, so I just want an algebraic thing.

Eric Wieser (May 19 2023 at 15:40):

docs#direct_sum.to_module is another contender, if you're willing to hand wave over pi types vs direct sums

Eric Wieser (May 19 2023 at 15:40):

And it's clones docs#dfinsupp.lsum and docs#finsupp.lsum

Chris Hughes (May 19 2023 at 15:40):

Eric Wieser said:

docs#direct_sum.to_module is another contender, if you're willing to hand wave over pi types vs direct sums

I'm not, I basically want the fact that pi-types are isomorphic to finite sums.

Eric Wieser (May 19 2023 at 15:41):

docs#dfinsupp.equiv_fun_on_fintype does the hand-wave, but annoyingly isn't linear

Chris Hughes (May 19 2023 at 15:42):

I'm shocked we don't have this.

Eric Wieser (May 19 2023 at 15:42):

I remember looking for this in the past and being shocked too

Eric Wieser (May 19 2023 at 15:42):

I also don't remember whether I then found it

Eric Wieser (May 19 2023 at 15:43):

https://github.com/leanprover-community/mathlib/pull/11744

Eric Wieser (May 19 2023 at 15:44):

That gives docs#add_monoid_hom.noncomm_pi_coprod

Eric Wieser (May 19 2023 at 15:44):

Aha! docs#linear_map.lsum

Chris Hughes (May 19 2023 at 15:45):

docs#finsupp.linear_equiv_fun_on_finite

Eric Wieser (May 19 2023 at 15:45):

linear_map.lsum : (Π i, φ i →ₗ[R] M) ≃ₗ[S] ((Π i, φ i) →ₗ[R] M) is what you want, right?

Chris Hughes (May 19 2023 at 15:46):

Yes

Eric Wieser (May 19 2023 at 15:46):

Eric Wieser said:

https://github.com/leanprover-community/mathlib/pull/11744

I found this by searching zulip for coprod copi, and then its docstrings had enough breadcrumbs to find what you wanted

Chris Hughes (May 19 2023 at 15:49):

LinearMap.lsum is a bit annoying because I don't care about S linearity, but it's not that bad

Chris Hughes (May 19 2023 at 15:52):

Now I need to define a linearMap out of R by defining a point.

Eric Wieser (May 19 2023 at 15:56):

Chris Hughes said:

LinearMap.lsum is a bit annoying because I don't care about S linearity, but it's not that bad

Setting S = nat is an easy way out, if your R isn't commutative


Last updated: Dec 20 2023 at 11:08 UTC