-
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
grassmann_pluecker_ideal
saved GB wrong
#4018
grassmann_pluecker_ideal
saved GB wrong
#4018
Comments
We started saving knowledge about a groebner basis in #3382. Maybe related to this? |
Good point, so either the fact that the generating set is a GB is wrong, or the GB does not match the ordering. To me, the generators look pretty unassuming (the default "easy" generators that I would expect). I don't think they form a GB. |
dim(grassmann_pluecker_ideal(2,5))
failsgrassmann_pluecker_ideal
saved GB wrong
Sorry, I do not understand the discussion, may be since I did not follow the history of this: |
@wdecker The error is exactly because the stored generating set is no GB with the stored ordering. The construction of the generating set follows the usual formula for Pluecker relations, and there are two options:
I think (1) is the case, but only because if the standard construction would result in a GB in some ordering, I would have learned it by now. |
I did not have the time to check details here. But here are a guess or rather some questions to @antonydellavecchia:
|
This does look very much like a groebner basis: julia> I = grassmann_pluecker_ideal(2,5);
julia> Icopy = ideal(gens(I));
julia> Icopy.gens.isGB
false
julia> is_groebner_basis(Icopy.gens)
true
julia> I.gens
Gröbner basis with elements
1 -> x[3]*x[5] - x[2]*x[6] + x[1]*x[8]
2 -> x[4]*x[5] - x[2]*x[7] + x[1]*x[9]
3 -> x[4]*x[6] - x[3]*x[7] + x[1]*x[10]
4 -> x[4]*x[8] - x[3]*x[9] + x[2]*x[10]
5 -> x[7]*x[8] - x[6]*x[9] + x[5]*x[10]
with respect to the ordering
degrevlex([x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10]])
julia> Icopy.gens
Gröbner basis with elements
1 -> x[3]*x[5] - x[2]*x[6] + x[1]*x[8]
2 -> x[4]*x[5] - x[2]*x[7] + x[1]*x[9]
3 -> x[4]*x[6] - x[3]*x[7] + x[1]*x[10]
4 -> x[4]*x[8] - x[3]*x[9] + x[2]*x[10]
5 -> x[7]*x[8] - x[6]*x[9] + x[5]*x[10]
with respect to the ordering
degrevlex([x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10]])
julia> dim(Icopy)
7
julia> degree(Icopy)
5 The same works for other dimensions as well. The reference in the polymake code is:
There is also code that generates variable names but that function is not straightforward to use from Oscar, for the
But these are 0-based and not 1-based as one would expect in Oscar. |
This is weird, as
|
Yes, precisely, the indices must be lex ordered. How about using p12 etc in Oscar |
There is another problem with the output of
|
@benlorenz Thx for the explanation. We will check and correct the problem. |
I tried this with Singular.jl master, so including oscar-system/Singular.jl#820, and this is not completely fixed.
The dimension is fine, but the degree should be:
If I compute the degree without computing the dimension first, I actually get an error:
This also happens without oscar-system/Singular.jl#820. |
We should change
|
I'm sorry, but I don't understand. With this change
I still get the very same error(s):
|
…d to issue oscar-system#4018) (oscar-system#4074) * change variable labeling for default grassmann pluecker ideal * Update src/Rings/mpoly-ideals.jl --------- Co-authored-by: Lars Göttgens <lars.goettgens@rwth-aachen.de> Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
I'm very happy that OSCAR has a constructor for Pluecker ideals, but the output is not very usable. For example, asking for its
dim
raises and error and asking for itsdegree
returns something wrong:The text was updated successfully, but these errors were encountered: