Skip to content

Msolve Package -- msolveLeadMonomials -- returns 0 ideal when it should return the unit ideal over a finite field (works correctly over Q) #3947

@Martin-Helmer

Description

@Martin-Helmer

@antonleykin : When working over a finite field it seems that while msolveGB and msolveEliminate handle the unit ideal correctly, msolveLeadMonomials does not. This seems to actually be an msolve issue, so perhaps we should just report it to them?

Below is an example:
restart
needsPackage "Msolve"
R=ZZ/27457[x..z]
I=ideal(x^2+y^2-1, x+y,z^2-y+x, x^3-y+z)
groebnerBasis I
--works correctly
msolveGB I
eliminate(x,I)
--also works correctly
msolveEliminate(x,I)
leadTerm I
--does NOT work correctly
msolveLeadMonomials I

This happens over any finite field, but does not happen over Q. Over Q msolveLeadMonomials gives the correct output.

On closer examination this seems to be an msolve issue, namely if one runs
needsPackage "Msolve"
R=QQ[x..z]
I=ideal(x^2+y^2-1, x+y,z^2-y+x, x^3-y+z)
msolveLeadMonomials(I,Verbosity=>2)

the output file from msolve is:
#Leading ideal data
#---
#field characteristic: 0
#variable order: p_0, p_1, p_2
#monomial order: graded reverse lexicographical
#length of basis: 1 element
#---
[1
]:
While

needsPackage "Msolve"
R=ZZ/1073741827[x..z]
I=ideal(x^2+y^2-1, x+y,z^2-y+x, x^3-y+z)
msolveLeadMonomials(I,Verbosity=>2)

gives msolve output

#Leading ideal data
#---
#field characteristic: 1073741827
#variable order: p_0, p_1, p_2
#monomial order: graded reverse lexicographical
#length of basis: 1 element
#---
[]:

Note msolve doesn't actually say the ideal is generated by 0, but rather gives an empty generating set while saying the basis has length 1. I belive for the actual 0 ideal they also return an empty generating set which is likley why we are parsing this as the 0 ideal.

Msolve's printed verbose output clearly recognizes the ideal corresponds to an empty variety in both cases... i.e. it prints

"Grobner basis has a single element
No solution"

In both cases, but just records the lead monomials wrongly over a finite field. For the regular GB we again get the right thing
needsPackage "Msolve";
R=ZZ/1073741827[x..z];
I=ideal(x^2+y^2-1, x+y,z^2-y+x, x^3-y+z);
msolveGB(I,Verbosity=>2);
gives output file

#Reduced Groebner basis data
#---
#field characteristic: 1073741827
#variable order: p_0, p_1, p_2
#monomial order: graded reverse lexicographical
#length of basis: 1 element
#---
[1]:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions