-
Couldn't load subscription status.
- Fork 71
Embed for multivariate polynomial rings #2192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2192 +/- ##
==========================================
- Coverage 87.95% 87.95% -0.01%
==========================================
Files 127 127
Lines 31791 31790 -1
==========================================
- Hits 27961 27960 -1
Misses 3830 3830 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Nothing against this functionality, but this should not be exported. Also please give it a more obscure name, so that we do not accidentally make it available. Maybe |
|
Why shouldn't it be exported? I think that this can be useful elsewhere. And I'm not sure if functions with obscure names should be part of an interface specification. |
|
The embedding is not canonical/natural and people should use |
| Return the evaluation of the natural embedding of `parent(p)` into `R` at `p`. | ||
| This effectively replaces the $i$-th variable of `parent(p)` in `p` by the | ||
| $i$-th variable of `R`. For this to work, `R` needs to have at least as many | ||
| variables as `parent(p)`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Return the evaluation of the natural embedding of `parent(p)` into `R` at `p`. | |
| This effectively replaces the $i$-th variable of `parent(p)` in `p` by the | |
| $i$-th variable of `R`. For this to work, `R` needs to have at least as many | |
| variables as `parent(p)`. | |
| Return an element of `R` which is obtained from `p` by mapping the $i$-th variable | |
| of `parent(p)` to the $i$-th variable of `R`. | |
| For this to work, `R` needs to have at least as many variables as `parent(p)`. |
|
Ok, I see. Using the |
|
Is the plan to do this in OSCAR? The hom stuff does not exist in AbstractAlgebra. If the question does not make sense, I probably misunderstood the plan. |
|
The plan is to do this in AbstractAlgebra. I'll try to explain the idea a bit more clearly. Basically, one needs to be able to increase the number of generators and map elements to rings with more generators. There a various ways to implement this. The problem I see with the hom stuff from OSCAR is that I'm not working with two fixed rings. I can happen that, for example, there are three rings involved, one with two generators, one with three and one with four. With the hom stuff I would need two morphisms to map all elements to the ring with four generators. The possible number of involved rings is not bounded. So, to make this work with |
|
Ah but for the And the "embedding" you apply strictly maps generators 1 to 4 of A to generators 1 to 4 of C. We can't really afford to keep upgrade "maps" around here either. Where would they even be stored? So here you really want a dedicated function (which then can be overloaded for the various types and also for optimization purposes) which "upgrades" an element this way... Maybe the old name |
Yes, I want to add rings. When one calls
|
This is a follow up to #2182 (the diff to #2182 shouldn't be breaking). In my quest to resolve #2172 I'm trying to make the universal polynomial ring as independent from multivariate polynomial rings as possible. This PR introduces a new function
embedwhich maps multivariate polynomials into multivariate polynomials rings with more variables. This function should then be part of the ring interface for rings which are subject to the new universal ring.The name
embedis of course debatable.In another follow up PR I'd like to introduce a new function called
replace_gens(or similar) which takes a multivariate polynomial ring and a list of symbols and returns a new multivariate polynomial ring with the same properties (coefficient ring, ordering, etc.) but a different set of generators. With this function the universal polynomial ring should be independent of multivariate polynomial rings.