Skip to content
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

Macaulay matrix for Sequence Multivariate Polynomials #39511

Open
wants to merge 10 commits into
base: develop
Choose a base branch
from

Conversation

MercedesHaiech
Copy link
Contributor

We implemented the Macaulay matrix for Sequence of multivariate polynomials

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

@MercedesHaiech MercedesHaiech added the sd128 tickets of Sage Days 128 Le Teich label Feb 13, 2025
Xavier Caruso and others added 2 commits February 13, 2025 15:20
Copy link

github-actions bot commented Feb 13, 2025

Documentation preview for this PR (built with commit a2ac5ac; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@vneiger
Copy link
Contributor

vneiger commented Feb 15, 2025

Thanks for this nice addition! I will review soon.

A first (too long) note on a non-programming-related point, but following our discussion concerning what reference to show for Macaulay matrices. The Macaulay 1902 paper that you refer to in your method's documentation may look like a sufficient reference by itself. Another reference, similar but maybe more to the point concerning the construction of the matrices, could be the chapter I of the book with SageMath reference [Mac1916] (F.S. Macaulay, The algebraic theory of modular systems, 1916, chapter I available here). As we discussed, picking a more recent presentation of these matrices could have some advantage, for example one that would also cover non-homogeneous polynomials... but finding "the right" reference is tricky (among others, because putting a 21th century reference for something already described more than 100 years before seems somewhat odd). The reference you introduced (Bardet & Faugère & Salvy, 2015) in fact refers directly to Macaulay's 1902 paper you listed: It is classical that the computation of Gröbner bases can be performed by linear algebra on a large matrix that has been described precisely by Macaulay (1902). A suggestion could be Lazard's 1983 paper "Gröbner bases, Gaussian elimination and resolution of systems of algebraic equations", which defines the Macaulay matrix for non-homogeneous polynomials in section 2; another suggestion (my preference, I think) could be to put no reference other than Macaulay 1902/1916.

@@ -420,6 +420,10 @@ REFERENCES:
.. [Baer2020] Christian Bär. *The Faddeev-LeVerrier algorithm and the Pfaffian*.
:arxiv:`2008.04247`, 2020.

.. [BFS2015] M. Bardet, J-C. Faugère, B. Salvy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Depending on the decision for the suggestion about references, this might have to be removed for the moment (to avoid a reference that is currently not being referred to in Sage).

@vneiger
Copy link
Contributor

vneiger commented Feb 15, 2025

Mentioning this to @robinkouba who might have some comments since he recently dealt with Macaulay matrices in SageMath.

add reference for macaulay matrix

Co-authored-by: Vincent Neiger <[email protected]>
when ``False``, only return the Macaulay matrix
when ``True``, return the Macaulay matrix and two list,
the first one is the list of monomials corresponding
to the lines of the matrix,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
to the lines of the matrix,
to the rows of the matrix,

the second one is a list of tuples, each tuple is the
data of a monomial and a polynomial of the system.
the product of the elements of a given tuple is the equation
describing each line of the matrix

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
describing each line of the matrix
describing each row of the matrix

@robinkouba
Copy link

I think it would be great to add an option for ordering the columns and rows.

For the columns, this is straightforward: one can simply provide a monomial order as input, possibly along with a choice between increasing or decreasing order.

For the rows, the situation is more complex since they are indexed by elements of the form (m,i), where m is a monomial and i indexes the polynomials in the input. This indexing corresponds to monomials in a free K[x1​,…,xn​]-module, so perhaps an ordering could also be provided as input, but I think sagemath currently does not have monomial orderings for modules. At least, providing the choice between position over term and term over position could be easy to implement (the current ordering seems to correspond to position over term).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: commutative algebra s: needs review sd128 tickets of Sage Days 128 Le Teich
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants