next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
EquivariantGB :: EquivariantGB

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


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 = ℚ[xi,yi  | i,j∈ℤ≥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 xiyj - xjyi.



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/.


  • 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
    • degree(Shift) (missing documentation)
    • deleteMin(PriorityQueue), see deleteMin -- deletes the minimum element of the queue
    • insert(PriorityQueue,Thing) -- insert a new element into the queue
    • length(PriorityQueue) -- returns the number of elements in the queue
    • max(Shift) (missing documentation)
    • mergePQ(PriorityQueue,PriorityQueue), see mergePQ -- merges two queues
    • min(PriorityQueue) -- return the minimum element of the queue
    • net(Shift) (missing documentation)
    • pop(PriorityQueue), see pop -- returns the minimum element of the queue and deletes it
    • Shift * Number (missing documentation)
    • Shift * RingElement (missing documentation)
    • Shift * Shift (missing documentation)
    • Shift == Shift (missing documentation)
    • Shift ? Shift (missing documentation)
    • shift(Shift) (missing documentation)
    • width(Shift) (missing documentation)
  • Symbols