This is Quasidegrees.info, produced by Macaulay2, version 1.22

Quasidegrees -- a package to compute quasidegrees
*************************************************

Description
===========

Quasidegrees is a package that enables the user to construct multigraded rings
and look at the graded structure of multigraded finitely generated modules over
a polynomial ring.  The quasidegree set of a $\ZZ^d$-graded module $M$ is the
Zariski closure in $\CC^d$ of the degrees of the nonzero homogeneous components
of $M$.  This package can compute the quasidegree set of a finitely generated
module over a $\ZZ^d$-graded polynomial ring.  This package also computes the
quasidegree sets of local cohomology modules supported at the maximal
irrelevant ideal of modules over a $\ZZ^d$-graded polynomial ring.

The motivation for this package comes from $A$-hypergeometric functions and the
relation between the rank jumps of $A$-hypergeometric systems and the
quasidegree sets of non-top local cohomology modules supported at the maximal
irrelevant ideal of the associated toric ideal as described in the paper:

Laura Felicia Matusevich, Ezra Miller, and Uli Walther. Homological methods for
hypergeometric families. J. Am. Math. Soc., 18(4):919-941, 2005.

This package requires FourTiTwo, Depth,
and Polyhedra.

Caveat
======

This package is written when the ambient ring of the modules in question are
positively graded and are presented by a monomial matrix, that is, a matrix
whose entries are monomials.  This is due to the algorithms depending on
finding standard pairs of monomial ideals generated by rows of a presentation
matrix.

Author
======

  * Roberto Barrera (see http://www.math.tamu.edu/~rbarrera/ )
    <rbarrera@math.tamu.edu>

Certification a gold star
=========================

Version 1.0 of this package was accepted for publication in volume 9 (see
https://msp.org/jsag/2019/9-1/ ) of The Journal of Software for Algebra and
Geometry (see http://j-sag.org/ ) on 26 February 2019, in the article Computing
quasidegrees of A-graded modules (see https://msp.org/jsag/2019/9-1/p04.xhtml
). That version can be obtained from the journal (see
https://msp.org/jsag/2019/9-1/jsag-v9-n1-x04-Quasidegrees.m2 ) or from the
Macaulay2 source code repository (see
http://github.com/Macaulay2/M2/blob/d76252d2c8d38f0ec55212eb458869503b1f0312/M2
/Macaulay2/packages/Quasidegrees.m2 ).

Version
=======

This documentation describes version 1.0 of Quasidegrees.

Source code
===========

The source code from which this documentation is derived is in the file
Quasidegrees.m2 (see common/share/Macaulay2/Quasidegrees.m2 ).

Exports
=======

  * Functions and commands
      * exceptionalSet -- returns the exceptional set of
        a matrix
      * makeGradedRing -- makes a polynomial ring graded
        by a matrix
      * quasidegrees -- compute the quasidegree set of a
        module
      * quasidegreesAsVariables -- represents
        the quasidegree set in variables
      * quasidegreesLocalCohomology, --
        returns the quasidegree sets of local cohomology modules
      * removeRedundancy -- removes redundancies from
        a list of planes
      * toGradedRing -- grade a polynomial ring by a
        matrix
      * toricIdeal -- returns a toric ideal
  * Methods
      * "exceptionalSet(Matrix)" -- see exceptionalSet,
        -- returns the exceptional set of a matrix
      * "makeGradedRing(Matrix,Symbol)" -- see makeGradedRing,
        -- makes a polynomial ring graded by a matrix
      * "quasidegrees(Ideal)" -- see quasidegrees, --
        compute the quasidegree set of a module
      * "quasidegrees(Module)" -- see quasidegrees, --
        compute the quasidegree set of a module
      * "quasidegreesAsVariables(Ideal)" -- see quasidegreesAsVariables,
        -- represents the quasidegree set in variables
      * "quasidegreesAsVariables(Module)" -- see quasidegreesAsVariables,
        -- represents the quasidegree set in variables
      * "quasidegreesLocalCohomology(Ideal)" -- see
        quasidegreesLocalCohomology, -- returns
        the quasidegree sets of local cohomology modules
      * "quasidegreesLocalCohomology(Module)" -- see
        quasidegreesLocalCohomology, -- returns
        the quasidegree sets of local cohomology modules
      * "quasidegreesLocalCohomology(ZZ,Ideal)" -- see
        quasidegreesLocalCohomology, -- returns
        the quasidegree sets of local cohomology modules
      * "quasidegreesLocalCohomology(ZZ,Module)" -- see
        quasidegreesLocalCohomology, -- returns
        the quasidegree sets of local cohomology modules
      * "removeRedundancy(List)" -- see removeRedundancy,
        -- removes redundancies from a list of planes
      * "toGradedRing(Matrix,PolynomialRing)" -- see toGradedRing,
        -- grade a polynomial ring by a matrix
      * "toricIdeal(Matrix,Ring)" -- see toricIdeal, --
        returns a toric ideal

For the programmer
==================

The object Quasidegrees, is a package (Macaulay2Doc).

exceptionalSet -- returns the exceptional set of a matrix
*********************************************************

Synopsis
========

  * Usage:
        exceptionalSet A
  * Inputs:
      * A, a $d\times n$ integer matrix
  * Outputs:
      * a list (Macaulay2Doc), a list that indexes the exceptional
        parameters of $A$

Description
===========

This method takes a $d\times n$ integer matrix $A$ and computes the exceptional
parameters of $A$.  The exceptional parameters of $A$ are the $\beta\in\CC^d$
such that the rank of the hypergeometric system $H_\beta(A)$ does not take the
expected value.  The exceptional parameters of $A$ are indexed by a list of
pairs $(v,F)$ where $v$ is a vector and $F$ is a list of vectors.  The pair
$(v,F)$ represents the plane $v+span_\CC F$.  The set of exceptional parameters
of $A$ is the union of all such planes given by the pairs $(v,F)$.

+---------------------------------------------------------+
|i1 : A=matrix{{1,1,1,1},{0,1,5,11}}                      |
|                                                         |
|o1 = | 1 1 1 1  |                                        |
|     | 0 1 5 11 |                                        |
|                                                         |
|              2        4                                 |
|o1 : Matrix ZZ  <--- ZZ                                  |
+---------------------------------------------------------+
|i2 : exceptionalSet A                                    |
|                                                         |
|o2 = {{| 2 |, {}}, {| 3 |, {}}, {| 3 |, {}}, {| 4 |, {}}}|
|       | 4 |        | 4 |        | 9 |        | 9 |      |
|                                                         |
|o2 : List                                                |
+---------------------------------------------------------+

Thus, when $\beta$=(4,9), (3,9), (2,4), or (3,4), the rank of the
hypergeometric system $H_\beta(A)$ is higher than expected.

Ways to use exceptionalSet :
============================

  * "exceptionalSet(Matrix)"

For the programmer
==================

The object exceptionalSet, is a method function (Macaulay2Doc).

makeGradedRing -- makes a polynomial ring graded by a matrix
************************************************************

Synopsis
========

  * Usage:
        makeGradedRing A
  * Inputs:
      * A, a d x n integer matrix
      * x, the variable of the multigraded polynomial ring
  * Outputs:
      * a polynomial ring (Macaulay2Doc), a multigraded
        polynomial ring in n variables

Description
===========

This method takes a $d\times n$ integer matrix $A$ and makes the polynomial
ring $\QQ[x_0,..,x_{n-1}]$ with the degree of the i-th variable being the i-th
column of $A$.

+-----------------------------------------------------+
|i1 : A = matrix{{1,1,1,1,1},{0,0,1,1,0},{0,1,1,0,-2}}|
|                                                     |
|o1 = | 1 1 1 1 1  |                                  |
|     | 0 0 1 1 0  |                                  |
|     | 0 1 1 0 -2 |                                  |
|                                                     |
|              3        5                             |
|o1 : Matrix ZZ  <--- ZZ                              |
+-----------------------------------------------------+
|i2 : R = makeGradedRing(A,t)                         |
|                                                     |
|o2 = R                                               |
|                                                     |
|o2 : PolynomialRing                                  |
+-----------------------------------------------------+

We can see that $R$ is graded by the columns of $A$

+------------------------------------------------------------------------+
|i3 : describe R                                                         |
|                                                                        |
|o3 = QQ[t ..t , Degrees => {{1}, {1}, {1}, {1}, {1 }}, Heft => {1, 2:0}]|
|         0   4              {0}  {0}  {1}  {1}  {0 }                    |
|                            {0}  {1}  {1}  {0}  {-2}                    |
+------------------------------------------------------------------------+

Ways to use makeGradedRing :
============================

  * "makeGradedRing(Matrix,Symbol)"

For the programmer
==================

The object makeGradedRing, is a method function (Macaulay2Doc).

quasidegrees -- compute the quasidegree set of a module
*******************************************************

Synopsis
========

  * Usage:
        quasidegrees I
        quasidegrees M
  * Inputs:
      * I, an ideal (Macaulay2Doc),
      * M, a module (Macaulay2Doc), a finitely generated module
  * Outputs:
      * a list (Macaulay2Doc), a list that indexes the quasidegrees
        of M

Description
===========

The method quasidegrees takes a finitely generated module $M$ over the

polynomial ring that is presented by a monomial matrix and computes the

quasidegree set of $M$.  The quasidegrees of $M$ are indexed by a list of pairs

$(v,F)$ where $v$ is a vector and $F$ is a list of vectors f ,...,f .  The pair
                                                            1      l
$(v,F)$ indexes the plane $v+span_\CCF$.  The quasidegree set of M is the union
of all such planes that the pairs (v,F) index.

If the input is an ideal $I$, then quasidegrees executes for the module $R/I$
where $R$ is the ring of $I$.

The following example computes the quasidegree set of $\QQ[x,y]/<x^2,y^2>$
under the standard $\ZZ^2$-grading.

+-----------------------------------------------------+
|i1 : A = matrix{{1,0},{0,1}}                         |
|                                                     |
|o1 = | 1 0 |                                         |
|     | 0 1 |                                         |
|                                                     |
|              2        2                             |
|o1 : Matrix ZZ  <--- ZZ                              |
+-----------------------------------------------------+
|i2 : R = QQ[x,y, Degrees => entries transpose A]     |
|                                                     |
|o2 = R                                               |
|                                                     |
|o2 : PolynomialRing                                  |
+-----------------------------------------------------+
|i3 : I = ideal(x^2,y^2)                              |
|                                                     |
|             2   2                                   |
|o3 = ideal (x , y )                                  |
|                                                     |
|o3 : Ideal of R                                      |
+-----------------------------------------------------+
|i4 : M = R^1/I                                       |
|                                                     |
|o4 = cokernel | x2 y2 |                              |
|                                                     |
|                            1                        |
|o4 : R-module, quotient of R                         |
+-----------------------------------------------------+
|i5 : quasidegrees M                                  |
|                                                     |
|o5 = {{0, {}}, {| 0 |, {}}, {| 1 |, {}}, {| 1 |, {}}}|
|                | 1 |        | 0 |        | 1 |      |
|                                                     |
|o5 : List                                            |
+-----------------------------------------------------+

The quasidegree set is given to be the points (0,1), (1,0), (1,1), and (0,0).

The next example takes $R$ computes the quasidegrees of the above module after
twisting $R$ by multidegree (3,2).

+---------------------------------------------------------+
|i6 : R = R^{{-3,-2}}                                     |
|                                                         |
|               1                                         |
|o6 = (QQ[x..y])                                          |
|                                                         |
|o6 : QQ[x..y]-module, free, degrees {{3, 2}}             |
+---------------------------------------------------------+
|i7 : M = R^1/I                                           |
|                                                         |
|o7 = cokernel {3, 2} | x2 y2 |                           |
|                                                         |
|                                            1            |
|o7 : QQ[x..y]-module, quotient of (QQ[x..y])             |
+---------------------------------------------------------+
|i8 : quasidegrees M                                      |
|                                                         |
|o8 = {{| 3 |, {}}, {| 3 |, {}}, {| 4 |, {}}, {| 4 |, {}}}|
|       | 3 |        | 2 |        | 2 |        | 3 |      |
|                                                         |
|o8 : List                                                |
+---------------------------------------------------------+

The following demonstrates a quasidegree set that is not a finite number of
points.

+----------------------------------------------+
|i9 : A = matrix{{1,0},{0,1}}                  |
|                                              |
|o9 = | 1 0 |                                  |
|     | 0 1 |                                  |
|                                              |
|              2        2                      |
|o9 : Matrix ZZ  <--- ZZ                       |
+----------------------------------------------+
|i10 : R = QQ[x,y]                             |
|                                              |
|o10 = R                                       |
|                                              |
|o10 : PolynomialRing                          |
+----------------------------------------------+
|i11 : R = toGradedRing(A,R)                   |
|                                              |
|o11 = R                                       |
|                                              |
|o11 : PolynomialRing                          |
+----------------------------------------------+
|i12 : I = ideal(x^2*y,y^2)                    |
|                                              |
|              2    2                          |
|o12 = ideal (x y, y )                         |
|                                              |
|o12 : Ideal of R                              |
+----------------------------------------------+
|i13 : M=R^1/I                                 |
|                                              |
|o13 = cokernel | x2y y2 |                     |
|                                              |
|                             1                |
|o13 : R-module, quotient of R                 |
+----------------------------------------------+
|i14 : quasidegrees M                          |
|                                              |
|o14 = {{| 1 |, {}}, {| 0 |, {}}, {0, {| 1 |}}}|
|        | 1 |        | 1 |            | 0 |   |
|                                              |
|o14 : List                                    |
+----------------------------------------------+

In the above example, the quasidegree set of the module M consists of the
points (1,1) and (0,1) along with the parameterized line (1,0)$\bullet t$.

Ways to use quasidegrees :
==========================

  * "quasidegrees(Ideal)"
  * "quasidegrees(Module)"

For the programmer
==================

The object quasidegrees, is a method function (Macaulay2Doc).

quasidegreesAsVariables -- represents the quasidegree set in variables
**********************************************************************

Synopsis
========

  * Usage:
        quasidegreesAsVariables(I)
        quasidegreesAsVariables(M)
  * Inputs:
      * I, an ideal (Macaulay2Doc),
      * M, a module (Macaulay2Doc), a finitely generated module
  * Outputs:
      * a list (Macaulay2Doc), a list that indexes the quasidegrees
        of M as variables

Description
===========

Given a finitely generated module over a $\ZZ^d$-graded polynomial ring $R$,
quasidegreesAsVariables gives a representation of the quasidegree set of $M$
using the variables of $R$. This method captures the plane arrangement of the
quasidegree set of the module.

If the input is an ideal $I$, then quasidegreesAsVariables executes for the
module $R/I$ where $R$ is the ring of $I$.

A synonym for this function is qav.

+---------------------------------------------+
|i1 : R = QQ[x,y,Degrees=>{{1,0},{0,1}}]      |
|                                             |
|o1 = R                                       |
|                                             |
|o1 : PolynomialRing                          |
+---------------------------------------------+
|i2 : I = ideal(x^2*y,x*y^2,y^3)              |
|                                             |
|             2      2   3                    |
|o2 = ideal (x y, x*y , y )                   |
|                                             |
|o2 : Ideal of R                              |
+---------------------------------------------+
|i3 : M = R^1/I                               |
|                                             |
|o3 = cokernel | x2y xy2 y3 |                 |
|                                             |
|                            1                |
|o3 : R-module, quotient of R                 |
+---------------------------------------------+
|i4 : quasidegreesAsVariables M               |
|                                             |
|                                      2      |
|o4 = {{1, {x}}, {y, {}}, {x*y, {}}, {y , {}}}|
|                                             |
|o4 : List                                    |
+---------------------------------------------+

In the above example, the first element in the list \{1,\{x\}\} corresponds to
a line in the $x$ direction with no shift.  The element \{y,\{\}\} corresponds
to a point shifted in the direction of the degree of $y$, the element
\{x*y,\{\}\} corresponds to a point shifted in the direction of the degree
$xy$, and the element \{y^2,\{\}\} corresponds to a point shifted in the
direction of the degree of $y^2$.

The next example has a 2 dimensional quasidegree set.

+---------------------------------------------------+
|i5 : R=QQ[x,y,z,Degrees=>{{1,0,0},{0,1,0},{0,0,1}}]|
|                                                   |
|o5 = R                                             |
|                                                   |
|o5 : PolynomialRing                                |
+---------------------------------------------------+
|i6 : I=ideal(y)                                    |
|                                                   |
|o6 = ideal y                                       |
|                                                   |
|o6 : Ideal of R                                    |
+---------------------------------------------------+
|i7 : M=R^1/I                                       |
|                                                   |
|o7 = cokernel | y |                                |
|                                                   |
|                            1                      |
|o7 : R-module, quotient of R                       |
+---------------------------------------------------+
|i8 : quasidegreesAsVariables M                     |
|                                                   |
|o8 = {{1, {x, z}}}                                 |
|                                                   |
|o8 : List                                          |
+---------------------------------------------------+

The quasidegree set of $\QQ[x,y,z]/<y>$ with the standard $\ZZ^3$-grading is
the (unshifted) $xz$-plane.

Ways to use quasidegreesAsVariables :
=====================================

  * "quasidegreesAsVariables(Ideal)"
  * "quasidegreesAsVariables(Module)"

For the programmer
==================

The object quasidegreesAsVariables, is a
method function (Macaulay2Doc).

quasidegreesLocalCohomology -- returns the quasidegree sets of local cohomology modules
***************************************************************************************

Synopsis
========

  * Usage:
        quasidegreesLocalCohomology(I)
        quasidegreesLocalCohomology(M)
        quasidegreesLocalCohomology(i,I)
        quasidegreesLocalCohomology(i,M)
  * Inputs:
      * i, an integer (Macaulay2Doc), the cohomological degree to be
        computed
      * I, an ideal (Macaulay2Doc), an ideal in a multigraded
        polynomial ring
      * M, a module (Macaulay2Doc), a module over a multigraded
        polynomial ring
  * Outputs:
      * a list (Macaulay2Doc), that represents the quasidegree set
        of local cohomology modules

Description
===========

The input for this method is a  module $M$ over a multigraded polynomial ring
whose local cohomology modules can be presented by monomial matrices.  If an
integer $i$ is also included in the input, quasidegreesLocalCohomology(i,M)
computes the quasidegree set of the $i-th$ local cohomology module, supported
at the maximal irrelevant ideal, of $M$.  If an integer is excluded from the
input, then quasidegreesLocalCohomology(M) computes the quasidegree set of
$H_{\mathbf m}^0(M)\oplus\cdots\oplus H_{\mathbf m}^{d-1}(M)$. The quasidegrees
of local cohomology are indexed by a list of pairs $(v,F)$ where $v$ is a
vector and $F$ is a list of vectors.  The pair $(v,F)$ indexes the plane
$v+span_\CCF$.  The quasidegree set of the local cohomology modules is the
union of all such planes that the pairs $(v,F)$ index.

If the input is an ideal $I$ in a multigraded polynomial ring $R$, then the
method executes for the module $R/I$ where $R$ is the ring of $I$.

A synonym for this function is qlc.

The first example computes the quasidegree set of $H_{\mathbf m}^0(R/I)\oplus
H_{\mathbf m}^1(R/I)$ where $I$ is the toric ideal associated to the matrix
$A$.

+---------------------------------------------------------+
|i1 : A = matrix{{1,1,1,1},{0,1,5,11}}                    |
|                                                         |
|o1 = | 1 1 1 1  |                                        |
|     | 0 1 5 11 |                                        |
|                                                         |
|              2        4                                 |
|o1 : Matrix ZZ  <--- ZZ                                  |
+---------------------------------------------------------+
|i2 : R = QQ[a..d]                                        |
|                                                         |
|o2 = R                                                   |
|                                                         |
|o2 : PolynomialRing                                      |
+---------------------------------------------------------+
|i3 : R = toGradedRing(A,R)                               |
|                                                         |
|o3 = R                                                   |
|                                                         |
|o3 : PolynomialRing                                      |
+---------------------------------------------------------+
|i4 : I = toricIdeal(A,R)                                 |
|                                                         |
|               2    2    5    3 2   2 3    4    5    4   |
|o4 = ideal (b*c  - a d, c  - b d , a c  - b d, b  - a c) |
|                                                         |
|o4 : Ideal of R                                          |
+---------------------------------------------------------+
|i5 : M = R^1/I                                           |
|                                                         |
|o5 = cokernel | bc2-a2d c5-b3d2 a2c3-b4d b5-a4c |        |
|                                                         |
|                            1                            |
|o5 : R-module, quotient of R                             |
+---------------------------------------------------------+
|i6 : quasidegreesLocalCohomology M                       |
|                                                         |
|o6 = {{| 2 |, {}}, {| 3 |, {}}, {| 3 |, {}}, {| 4 |, {}}}|
|       | 4 |        | 4 |        | 9 |        | 9 |      |
|                                                         |
|o6 : List                                                |
+---------------------------------------------------------+

The above example gives that the quasidegrees of the non-top local cohomology
of $M$ are (4,9), (3,9), (2,4), and (3,4).  We can see that these all come from
the first local cohomology module.

+---------------------------------------------------------+
|i7 : quasidegreesLocalCohomology(1,M)                    |
|                                                         |
|o7 = {{| 2 |, {}}, {| 3 |, {}}, {| 3 |, {}}, {| 4 |, {}}}|
|       | 4 |        | 4 |        | 9 |        | 9 |      |
|                                                         |
|o7 : List                                                |
+---------------------------------------------------------+

The next example shows a module whose quasidegree set of its second local
cohomology module at the irrelevant ideal, is a line.

+----------------------------------------------------------+
|i8 : A = matrix{{1,1,1,1,1},{0,0,1,1,0},{0,1,1,0,-2}}     |
|                                                          |
|o8 = | 1 1 1 1 1  |                                       |
|     | 0 0 1 1 0  |                                       |
|     | 0 1 1 0 -2 |                                       |
|                                                          |
|              3        5                                  |
|o8 : Matrix ZZ  <--- ZZ                                   |
+----------------------------------------------------------+
|i9 : R = QQ[a..e]                                         |
|                                                          |
|o9 = R                                                    |
|                                                          |
|o9 : PolynomialRing                                       |
+----------------------------------------------------------+
|i10 : R = toGradedRing(A,R)                               |
|                                                          |
|o10 = R                                                   |
|                                                          |
|o10 : PolynomialRing                                      |
+----------------------------------------------------------+
|i11 : I = toricIdeal(A,R)                                 |
|                                                          |
|                           2    2    2            3    2  |
|o11 = ideal (a*c - b*d, a*d  - c e, a d - b*c*e, a  - b e)|
|                                                          |
|o11 : Ideal of R                                          |
+----------------------------------------------------------+
|i12 : M = R^1/I                                           |
|                                                          |
|o12 = cokernel | ac-bd ad2-c2e a2d-bce a3-b2e |           |
|                                                          |
|                             1                            |
|o12 : R-module, quotient of R                             |
+----------------------------------------------------------+
|i13 : quasidegreesLocalCohomology(2,M)                    |
|                                                          |
|o13 = {{| 0 |, {|  1 |}}}                                 |
|        | 0 |   |  0 |                                    |
|        | 1 |   | -2 |                                    |
|                                                          |
|o13 : List                                                |
+----------------------------------------------------------+

The above example gives that the quasidegrees of the second local cohomology
module of $M$ at the irrelevant ideal is the complex parameterized line
(0,0,1)+$t\bullet$(1,0,-2).

Ways to use quasidegreesLocalCohomology :
=========================================

  * "quasidegreesLocalCohomology(Ideal)"
  * "quasidegreesLocalCohomology(Module)"
  * "quasidegreesLocalCohomology(ZZ,Ideal)"
  * "quasidegreesLocalCohomology(ZZ,Module)"

For the programmer
==================

The object quasidegreesLocalCohomology, is a
method function (Macaulay2Doc).

removeRedundancy -- removes redundancies from a list of planes
**************************************************************

Synopsis
========

  * Usage:
        removeRedundancy L
  * Inputs:
      * L, of pairs indexing affine planes
  * Outputs:
      * a list (Macaulay2Doc), with no redundancies in L.

Description
===========

The method takes a list of pairs that indexes planes and removes redundancies
in the list.  By a redundancy, we mean when one plane in the list is contained
in another plane.

+----------------------------------------+
|i1 : R = QQ[x,y,z]                      |
|                                        |
|o1 = R                                  |
|                                        |
|o1 : PolynomialRing                     |
+----------------------------------------+
|i2 : I = ideal(x*y,y*z)                 |
|                                        |
|o2 = ideal (x*y, y*z)                   |
|                                        |
|o2 : Ideal of R                         |
+----------------------------------------+
|i3 : Q = quasidegrees(R^1/I)            |
|                                        |
|o3 = {{0, {| 1 |}}, {0, {| 1 |, | 1 |}}}|
|                                        |
|o3 : List                               |
+----------------------------------------+

The two pairs in Q each correspond to the complex plane so there is a
redundancy.

+--------------------------+
|i4 : removeRedundancy Q   |
|                          |
|o4 = {{0, {| 1 |, | 1 |}}}|
|                          |
|o4 : List                 |
+--------------------------+

Ways to use removeRedundancy :
==============================

  * "removeRedundancy(List)"

For the programmer
==================

The object removeRedundancy, is a method function (Macaulay2Doc).

toGradedRing -- grade a polynomial ring by a matrix
***************************************************

Synopsis
========

  * Usage:
        toGradedRing(A,R)
  * Inputs:
      * A, a matrix (Macaulay2Doc), a d x n integer matrix
      * R, a polynomial ring (Macaulay2Doc), a polynomial
        ring in n variables
  * Outputs:
      * a polynomial ring (Macaulay2Doc), a polynomial
        ring graded by the columns of A

Description
===========

This method takes a polynomial ring $R$ in $n$ variables and a $d\times n$
matrix $A$ and grades $R$ by assigning the i-th variable of $R$ to have degree
being the i-th column of $A$.

+----------------------------------------------------------------------+
|i1 : A=matrix{{1,1,1,1,1},{0,0,1,1,0},{0,1,1,0,-2}}                   |
|                                                                      |
|o1 = | 1 1 1 1 1  |                                                   |
|     | 0 0 1 1 0  |                                                   |
|     | 0 1 1 0 -2 |                                                   |
|                                                                      |
|              3        5                                              |
|o1 : Matrix ZZ  <--- ZZ                                               |
+----------------------------------------------------------------------+
|i2 : R=QQ[a..e]                                                       |
|                                                                      |
|o2 = R                                                                |
|                                                                      |
|o2 : PolynomialRing                                                   |
+----------------------------------------------------------------------+
|i3 : S=toGradedRing(A,R)                                              |
|                                                                      |
|o3 = S                                                                |
|                                                                      |
|o3 : PolynomialRing                                                   |
+----------------------------------------------------------------------+
|i4 : describe S                                                       |
|                                                                      |
|o4 = QQ[a..e, Degrees => {{1}, {1}, {1}, {1}, {1 }}, Heft => {1, 2:0}]|
|                          {0}  {0}  {1}  {1}  {0 }                    |
|                          {0}  {1}  {1}  {0}  {-2}                    |
+----------------------------------------------------------------------+

Ways to use toGradedRing :
==========================

  * "toGradedRing(Matrix,PolynomialRing)"

For the programmer
==================

The object toGradedRing, is a method function (Macaulay2Doc).

toricIdeal -- returns a toric ideal
***********************************

Synopsis
========

  * Usage:
        toricIdeal(A,R)
  * Inputs:
      * A, a matrix (Macaulay2Doc), a d x n integer matrix
      * R, a ring (Macaulay2Doc), a polynomial ring in n variables
  * Outputs:
      * an ideal (Macaulay2Doc), the toric ideal associated to A
        in R

Description
===========

Given a $d\times n$ See Matrix (Macaulay2Doc), A and a polynomial ring
in $n$ variables $R$, this method returns the toric ideal associated to $A$ in
$R$.  To do this, toricIdeal saturates the lattice basis ideal of the kernel of
$A$ with respect to the product of the variables of $R$.

+-----------------------------------------------------------------------------+
|i1 : A=matrix{{1,1,1,1,1,1},{1,2,1,2,3,0},{0,2,2,0,1,1}}                     |
|                                                                             |
|o1 = | 1 1 1 1 1 1 |                                                         |
|     | 1 2 1 2 3 0 |                                                         |
|     | 0 2 2 0 1 1 |                                                         |
|                                                                             |
|              3        6                                                     |
|o1 : Matrix ZZ  <--- ZZ                                                      |
+-----------------------------------------------------------------------------+
|i2 : R=QQ[a..f]                                                              |
|                                                                             |
|o2 = R                                                                       |
|                                                                             |
|o2 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i3 : toricIdeal(A,R)                                                         |
|                                                                             |
|                                   3     3      2     2      2         2     |
|o3 = ideal (c*d - e*f, a*b - e*f, c e - b f, a*c e - b d*f, a c*e - b*d f,   |
|     ------------------------------------------------------------------------|
|      3     3      3    2 2   2 2        2   3     2 2     3    2 2   2 2    |
|     a e - d f, b*d  - a e , b d  - a*c*e , b d - c e , a*c  - b f , a c  -  |
|     ------------------------------------------------------------------------|
|          2   3     2 2                                                      |
|     b*d*f , a c - d f )                                                     |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+

+---------------------------------------------------------+
|i4 : A=matrix{{1,1,1,1,1},{0,0,1,1,0},{0,1,1,0,-2}}      |
|                                                         |
|o4 = | 1 1 1 1 1  |                                      |
|     | 0 0 1 1 0  |                                      |
|     | 0 1 1 0 -2 |                                      |
|                                                         |
|              3        5                                 |
|o4 : Matrix ZZ  <--- ZZ                                  |
+---------------------------------------------------------+
|i5 : R=toGradedRing(A,QQ[a..e])                          |
|                                                         |
|o5 = R                                                   |
|                                                         |
|o5 : PolynomialRing                                      |
+---------------------------------------------------------+
|i6 : toricIdeal(A,R)                                     |
|                                                         |
|                          2    2    2            3    2  |
|o6 = ideal (a*c - b*d, a*d  - c e, a d - b*c*e, a  - b e)|
|                                                         |
|o6 : Ideal of R                                          |
+---------------------------------------------------------+

Ways to use toricIdeal :
========================

  * "toricIdeal(Matrix,Ring)"

For the programmer
==================

The object toricIdeal, is a method function (Macaulay2Doc).