Generalize the universal polynomial ring
Hi! The idea of the universal polynomial ring naturally extends to other rings like Laurent-polynomial rings. So, it would be nice if there were a more "generic" implementation, let's call it "universal ring", which makes any ring with a fixed number of generators, like a polynomial ring or a Laurent-polynomial ring, into a corresponding ring with an extendable number of generators. This universal ring can then replace the current implementation of universal polynomial rings. Of corse some methods would need to be implemented specifically for the universal ring of Laurent-polynomials but I think most of the methods could be implemented in a generic way for all universal rings.
I'm asking for this because I'd like to implement generic cyclotomic rings, which are used in GenericCharacterTables.jl, with a fixed number of generators and then make them into a "universal" version with this new universal ring.
I haven't had a very close look into the code yet but I think this shouldn't be too hard and I should be able to implement this universal ring. What do you think about this?
Ok, apparently there is no multivariate Laurent polynomial ring in AA. But I think there should be other examples for which this universal ring could be useful.
Actually we do have LaurentMPolyRing, see also https://nemocas.github.io/AbstractAlgebra.jl/dev/laurent_mpolynomial/
No objections. I don't like "universal" in this context though, but I don't know any shorter name. "Polynomial ring with countably many indeterminates" would be better, but it is quite a mouthful.
I think "universal" is justified in so far as this is the meaning of "universal" from category theory: the "universal polynomial ring" over a coefficient ring $k$ is a colimit / direct limit.
And I think this is also the case when wrapping (multivariate) Laurent and Puiseux rings, or also @SoongNoonien own rings -- I guess what they all share is that they are "finitely generated" algebras, and there is a nice set of "generators" which can be extended in a globally "compatible" way, so that we can form a limit.
Actually perhaps "parametrized" is a better name than "generated"; for e.g. if one thinks about Puiseux rings for example, then $x^{\frac{3}{7}}$ somehow appears in the ring "generated" by $x$.