Zulip Chat Archive
Stream: general
Topic: polynomials over R-modules
Bolton Bailey (Mar 19 2022 at 21:07):
I was trying to formalize a slide from a presentation and I came to the concept of "A (multivariable) polynomial over an R-module". Mathlib says that mv_polynomial
s are defined over rings. I guess you could define a polynomial over an R-module and evaluate it for values of R, though you just wouldn't be able to multiply such polynomials. Would it be reasonable to change the definition of mv_polynomial
to allow this?
Johan Commelin (Mar 19 2022 at 21:11):
Yeah, I guess that's certainly possible.
Adam Topaz (Mar 19 2022 at 21:25):
You can also take polynomials over the tensor algebra of your module.
Eric Wieser (Mar 19 2022 at 21:54):
This is referring to polynomials that evaluate as u + x • v + x^2 • w + ...
?
Junyan Xu (Mar 19 2022 at 21:54):
try using the tensor product of the mv_polynomial over the ring with the module?
Antoine Chambert-Loir (Jun 07 2023 at 14:56):
Adam Topaz said:
You can also take polynomials over the tensor algebra of your module.
But that would force you to view the “polynomial module” inside a big polynomial ring (the grade 1 part under the natural graduation), which is not really convenient.
Antoine Chambert-Loir (Jun 07 2023 at 14:57):
Junyan Xu said:
try using the tensor product of the mv_polynomial over the ring with the module?
As a module, this is exactly that, but it has a tensor product which hides its “free” nature
(\sigma \to_0 \nat) \to_0 M
.
Kevin Buzzard (Jun 07 2023 at 16:56):
Kevin Buzzard (Jun 07 2023 at 16:57):
Oh we really do demand CommSemiring
. One could imagine weakening this to AddCommMonoid
initially, and then either going down the ring route or the module route.
Eric Wieser (Jun 08 2023 at 01:18):
I'm struggling to imagine that, because there wouldn't be any multiplication and so you just have finsupp
Eric Wieser (Jun 08 2023 at 01:20):
I guess the point is that there's no finsupp.eval
Antoine Chambert-Loir (Jun 16 2023 at 17:09):
You would have a multiplication from MvPolynomial
of anything that has an action on your module.
Eric Wieser (Jun 16 2023 at 22:31):
Can you write the type of that out in pseudocode?
Kevin Buzzard (Jun 16 2023 at 22:37):
If M is an R-module then M[[X]] is an R[[X]]-module and M[[sigma]] is an R[[sigma]] module
Eric Wieser (Jun 17 2023 at 03:11):
Set M = R[X]
and now you have that R[X][X]
is an R[X]
module in two incompatible ways...
Kevin Buzzard (Jun 17 2023 at 07:51):
Yes. That's a maths fact
Kevin Buzzard (Jun 17 2023 at 07:52):
That would be exactly why we wouldn't call both variables X
Antoine Chambert-Loir (Jun 17 2023 at 09:35):
I thought Bourbaki would have defined that, but they didn't go that far, except for a definition of M[X] (Algebra, chapter 4) using tensor product. I used that in Lean, when I formalized coefficients of a “polynomial map” between two modules, but that's awkward.
Last updated: Dec 20 2023 at 11:08 UTC