-
Notifications
You must be signed in to change notification settings - Fork 120
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
Tweak vector_space(K, polynomials)
a bit more
#3727
Conversation
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.
Fine by me :-)
@fieker is this OK with you (you wrote the function originally I think) |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #3727 +/- ##
==========================================
+ Coverage 81.35% 81.37% +0.01%
==========================================
Files 577 579 +2
Lines 78651 78750 +99
==========================================
+ Hits 63990 64084 +94
- Misses 14661 14666 +5
|
Return a `K`-vector space `V` and an epimorphism from `V` onto the `K`-vector | ||
Return a `K`-vector space `V` and an isomorphism from `V` to the `K`-vector |
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.
Caution: You should not change the (user-visible) behaviour of vector_space(Field, Polys) without looking at the other functions vector_space(Field, something), like vector_space(Field, MPolyQuoLocRing).
This needs to be consistent in behaviour!!! You are only tweaking one function here.
The main application is to pass from a zero-dimensional quotient ring R/I or slice of a graded ring R_d, which of course happens to carry the structure of a finite dimensional vector space, to an object of type vector space by using a monomial basis of the vector space. However, if this family of functions is provided to the user, it must be consistent in all instances.
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.
P.S.: I am not against the change per se.
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.
I'm sorry, but I don't understand what should change here.
This is editing the doc string of the function vector_space(::Field, ::Vector{<:MPolyRingElem})
. The other vector_space
functions that seem related are:
vector_space(K::Field, Q::MPolyQuoRing)
vector_space(kk::Field, W::Oscar.MPolyQuoLocRing{<:Field, <:FieldElem, <:MPolyRing, <:MPolyRingElem, <:Oscar.MPolyComplementOfKPointIdeal}; ordering)
vector_space(kk::Field, W::Oscar.MPolyQuoLocRing; ordering)
Neither of them is documented. Looking at the implementation, I assume that all of them return an isomorphic vector space and not just one that maps surjectively onto the quotient ring. If this assumption is correct, then this pull request will actually increase consistency.
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.
Sorry, I abused "changes requested" to buy the time for checking myself that everything is consistent. I should have sent an e-mail instead.
I am now convinced that this does not break anything and does not cause anything inconsistent.
Return a `K`-vector space `V` and an epimorphism from `V` onto the `K`-vector | ||
Return a `K`-vector space `V` and an isomorphism from `V` to the `K`-vector |
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.
Sorry, I abused "changes requested" to buy the time for checking myself that everything is consistent. I should have sent an e-mail instead.
I am now convinced that this does not break anything and does not cause anything inconsistent.
It seems I levelled up and gained the power to merge to master :) |
Backport requires #3717. |
Adjust output dimension in `vector_space(field, polynomials)` (cherry picked from commit 46fcbba)
As discussed in #3717 (comment). Let's see whether something breaks. I have the impression this function is only called at one place in the code base.