# EquivariantGB -- a package for computing equivariant Gröbner bases

## Description

EquivariantGB is a package for computing in polynomial rings with an infinite number of variables, but with an action of the infinite symmetric group. Alternatively such a ring can be considered as the limit of a family of rings with symmetric action. A representation of such a ring can be created using the method buildERing.

For example consider the ring R = $\mathbb{Q}[x_i,y_i \mid i,j\in \mathbb{Z}_{\geq 0}]$, the coordinate ring of 2 by infinite matrices. The infinite symmetric group acts by permuting columns.

 i1 : R = buildERing({symbol x,symbol y},{1,1},QQ,4) o1 = R o1 : PolynomialRing i2 : vars R o2 = | x_3 x_2 x_1 x_0 y_3 y_2 y_1 y_0 | 1 8 o2 : Matrix R <--- R

Here the output ring stores only a truncation of the set of variables, with indices from 0 to 3, but this bound will be adjusted as necessary in the computations.

We now consider ideals of R that are closed under the symmetric group action. For example, let I be the set of vanishing equations of the rank 1 matrices. I is generated by all 2 by 2 minors $x_iy_j - x_jy_i$.

• Chris Hillar
• Robert Krone
• Anton Leykin

## Version

This documentation describes version 0.2 of EquivariantGB.

## Source code

The source code from which this documentation is derived is in the file EquivariantGB.m2. The auxiliary files accompanying it are in the directory EquivariantGB/.

## Exports

• Types
• PriorityQueue -- an efficient mutable priority queue implementation
• Shift (missing documentation)
• Functions and commands
• buildEMonomialMap -- builds an equivariant ring map
• buildERing -- creates a ring to be used with other functions in the EquivariantGB package
• deleteMin -- deletes the minimum element of the queue
• egb -- computes equivariant Gröbner bases
• egbToric -- computes the kernel of an equivariant monomial map
• exponentMatrix -- puts the exponent of a monomial into matrix form
• incOrbit -- the increasing map orbit of an element
• mergePQ -- merges two queues
• pop -- returns the minimum element of the queue and deletes it
• priorityQueue -- create a new PriorityQueue
• reduce -- computes an equivariant normal form
• shift (missing documentation)
• Methods
• "buildEMonomialMap(Ring,Ring,List)" -- see buildEMonomialMap -- builds an equivariant ring map
• "buildERing(List,List,Ring,ZZ)" -- see buildERing -- creates a ring to be used with other functions in the EquivariantGB package
• buildERing(Ring,ZZ) -- creates a ERing from existing ERing
• "deleteMin(PriorityQueue)" -- see deleteMin -- deletes the minimum element of the queue
• "egb(List)" -- see egb -- computes equivariant Gröbner bases
• "egbToric(RingMap)" -- see egbToric -- computes the kernel of an equivariant monomial map
• "exponentMatrix(RingElement)" -- see exponentMatrix -- puts the exponent of a monomial into matrix form
• "incOrbit(List,ZZ)" -- see incOrbit -- the increasing map orbit of an element
• "incOrbit(RingElement,ZZ)" -- see incOrbit -- the increasing map orbit of an element
• insert(PriorityQueue,Thing) -- insert a new element into the queue
• length(PriorityQueue) -- returns the number of elements in the queue
• "mergePQ(PriorityQueue,PriorityQueue)" -- see mergePQ -- merges two queues
• min(PriorityQueue) -- return the minimum element of the queue
• "pop(PriorityQueue)" -- see pop -- returns the minimum element of the queue and deletes it
• "priorityQueue(List)" -- see priorityQueue -- create a new PriorityQueue
• "reduce(RingElement,List)" -- see reduce -- computes an equivariant normal form
• Symbols

## For the programmer

The object EquivariantGB is .