Skip to content

Project: Invariants

Federico Galetto edited this page Jan 23, 2022 · 10 revisions
  • Potential advisor/consultant(s): Federico Galetto
  • Goal: improve the functionality and performance of the InvariantRing package
  • Current status: available
  • Macaulay2 skill level: Intermediate
  • Mathematical experience: Advanced undergraduate
  • Reason(s) to participate: maintain a package, learn some invariant theory

Project Description

The goal of the InvariantRing package is to allow computations of invariants of linearly reductive groups in Macaulay2. Here is a brief version history:

  • 1.1.0: the first version of this package was developed by Thomas Hawes. It focused on computing primary and secondary invariants of finite groups.
  • 2.0: this version was developed by L. Ferraro, F. Galetto, F. Gandini, H. Huang, M. Mastroeni, and X. Ni at the virtual 2020 Cleveland workshop. It introduces types for different group actions as well as rings of invariants. It also contains new functionality for invariants of finite groups, diagonal actions (tori/abelian groups), and linearly reductive groups. The code from version 1.1.0 has been updated to work with the new types.

To-do list

  • Review the package for possible performance improvements. Version 2.0 introduced improvements to previous code (e.g. generation of finite groups via Schreier graphs). However there is also a lot of new code. Some computations are known to be slow but it would be worth looking for ways to speed up existing code where possible.
  • Reynolds operators via Lie algebras. The Reynolds operator projects from a polynomial ring R to the invariant ring RG for a group G. When G is finite, the Reynolds operator is simply the average of the action over all group elements. When G is infinite but linearly reductive, the Reynolds operator still exists and can be obtained via the action of some elements from the Lie algebra of G (see §4.5.2 in Derksen-Kemper). Implementing Reynolds operators in general may be difficult and possibly not worth the effort. Currently implemented algorithms go as follows: 1) compute generators the Hilbert ideal of the action (the ideal generated by all the invariant polynomials) using Gröbner bases; 2) compute invariants using Gröbner bases and linear algebra. The Gröbner bases computations in step 1 are much more costly than those in step 2, to the point than often times step 1 does not end in a reasonable amount of time. Replacing step 2 with the Reynolds operator would not solve the computational difficulty of step 1. Having said that, it would still be interesting, at least from a pedagogical perspective, to implement the Reynolds operator at least in some special cases. One could imagine doing this in a such a way that the user can "bring their own" Reynolds operator for a particular group action and pass it as an optional argument for currently existing methods.
  • Cayley's omega process. This is an alternative method for computing the Reynolds operator that works for general and special linear groups (see §4.5.3 in Derksen-Kemper).
  • Optimal homogeneous systems of parameters. The first version of the package implemented an algorithm of Kemper to find primary invariants of a finite group action that form an optimal hsop (optimal meaning that it will minimize the number of secondary invariants). The algorithm was implemented with the group action in mind but it is applicable more generally to affine algebras. Version 2.0 added a method to present a ring of invariants as an affine algebra. Therefore it might be interesting to reimplement Kemper's optimal hsop algorithm for affine algebras. Note that this is essentially another way of constructing a Noether normalization, so this could reasonably be its own package (it might also be worth looking for any existing Noether normalization code in other packages).
  • Fast computation of secondary invariants. The original invariants project mentioned a paper by Simon King on fast computation of secondary invariants. We should first determine if King's ideas already appear in the algorithms in the book by Derksen and Kemper. If so, this is probably already implemented; if not, it is worth looking further into King's work and possibly implementations. The old project page had the following comments:

When integral closure is fast, that will be applicable here. Wolfram Decker says: Please note that Simon King has worked very hard to improve the Singular version of the project (originally written by one of my students). So the reference to his ideas should be there.

Examples

References (that describe the math and/or algorithms)

Clone this wiki locally