This is CorrespondenceScrolls.info, produced by Macaulay2, version 1.20

CorrespondenceScrolls -- Package to compute and analyze examples of Correspondence Scrolls
******************************************************************************************

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

Correspondence Scrolls generalize rational normal scrolls and K3 Carpets, among
other familiar constuctions. Suppose that Z is a subscheme of a product of
projective spaces Z \subset P^{a_0} x .. x P^{a_{n-1}} The Correspondence
Scroll C(Z;b), where b = (b_0,..,b_{n-1}) is the subscheme of P^{N-1}
consisting set theoretically of the planes spanned by the points of the
Segre-Veronese embedding corresponding to Z.

More generally, we treat the case of a multi-homogneous subscheme Z' \subset
A^{a_0-1} x .. x A^{a_{n-1}-1}.

Authors
=======

  * David Eisenbud (see http://www.msri.org/~de ) <de@msri.org>
  * Frank-Olaf Schreyer (see http://www.math.uni-sb.de/ag/schreyer )
    <schreyer@math.uni-sb.de>
  * Alessio Sammartano (see  )

Version
=======

This documentation describes version 0.6 of CorrespondenceScrolls.

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

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

Exports
=======

  * Functions and commands
      * carpet -- ideal of a K3 carpet
      * correspondencePolynomial -- computes
        the Hilbert polynomial of a correspondence scroll
      * correspondenceScroll -- Union of planes
        joining points of rational normal curves according to a given
        correspondence
      * hankelMatrix -- matrix with constant anti-diagonal
        entries
      * irrelevantIdeal -- returns the irrelevant ideal
        of a multi-graded ring
      * multiHilbertPolynomial -- Multi-graded
        Hilbert polynomial for a product of projective spaces
      * productOfProjectiveSpaces, --
        Constructs the multi-graded ring of a product of copies of P^1 (pp is a
        synonym)
      * schemeInProduct -- multi-graded Ideal of the
        image of a map to a product of projective spaces
      * smallDiagonal -- Ideal of the small diagonal in
        (P^1)^n
  * Methods
      * "carpet(List)" -- see carpet, -- ideal of a K3 carpet
      * "correspondencePolynomial(Module,List)" -- see
        correspondencePolynomial, -- computes the
        Hilbert polynomial of a correspondence scroll
      * "correspondenceScroll(Ideal,List)" -- see correspondenceScroll,
        -- Union of planes joining points of rational
        normal curves according to a given correspondence
      * "hankelMatrix(Matrix,ZZ,ZZ)" -- see hankelMatrix,
        -- matrix with constant anti-diagonal entries
      * "hankelMatrix(Ring,RingElement,ZZ,ZZ)" -- see hankelMatrix,
        -- matrix with constant anti-diagonal entries
      * "hankelMatrix(Ring,ZZ,ZZ)" -- see hankelMatrix, --
        matrix with constant anti-diagonal entries
      * "hankelMatrix(ZZ,ZZ)" -- see hankelMatrix, --
        matrix with constant anti-diagonal entries
      * "hankelMatrix(ZZ,ZZ,String)" -- see hankelMatrix,
        -- matrix with constant anti-diagonal entries
      * "multiHilbertPolynomial(Module)" -- see multiHilbertPolynomial,
        -- Multi-graded Hilbert polynomial for a
        product of projective spaces
      * "productOfProjectiveSpaces(List)" -- see
        productOfProjectiveSpaces, -- Constructs the
        multi-graded ring of a product of copies of P^1 (pp is a synonym)
      * "productOfProjectiveSpaces(ZZ)" -- see productOfProjectiveSpaces,
        -- Constructs the multi-graded ring of a
        product of copies of P^1 (pp is a synonym)
      * "schemeInProduct(Ideal,List)" -- see schemeInProduct,
        -- multi-graded Ideal of the image of a map to a
        product of projective spaces
      * "schemeInProduct(Ideal,List,Ring)" -- see schemeInProduct,
        -- multi-graded Ideal of the image of a map to a
        product of projective spaces
      * "smallDiagonal(Ring)" -- see smallDiagonal, --
        Ideal of the small diagonal in (P^1)^n
      * "smallDiagonal(ZZ)" -- see smallDiagonal, -- Ideal
        of the small diagonal in (P^1)^n
  * Symbols
      * CoefficientField -- symbol used to define the
        ground field in many routines
      * VariableName -- symbol used to define the variable
        name in many routines

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

The object CorrespondenceScrolls, is a package (Macaulay2Doc).

carpet -- ideal of a K3 carpet
******************************

Synopsis
========

  * Usage:
        I = carpet L
  * Inputs:
      * L, a list (Macaulay2Doc),
      * CoefficientField, a ring (Macaulay2Doc), the ground field
      * VariableName, a string (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientField => ..., default value ZZ/32003
      * VariableName => ..., default value "x"
  * Outputs:
      * I, an ideal (Macaulay2Doc),

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

the K3 carpet of type b1,b2 is the correspondence scroll of type b1,b2 with
respect to the ideal Delta^2, where Delta \subset P^1 x P^1 is the ideal of the
diagonal.

+--------------------------+
|i1 : betti res carpet{1,3}|
|                          |
|            0 1 2 3       |
|o1 = total: 1 5 5 1       |
|         0: 1 . . .       |
|         1: . 3 2 .       |
|         2: . 2 3 .       |
|         3: . . . 1       |
|                          |
|o1 : BettiTally           |
+--------------------------+

See also
========

  * correspondenceScroll -- Union of planes
    joining points of rational normal curves according to a given
    correspondence

Ways to use carpet :
====================

  * "carpet(List)"

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

The object carpet, is a method function with options (Macaulay2Doc).

CoefficientField -- symbol used to define the ground field in many routines
***************************************************************************

See also
========

  * carpet -- ideal of a K3 carpet
  * correspondenceScroll -- Union of planes
    joining points of rational normal curves according to a given
    correspondence
  * hankelMatrix -- matrix with constant anti-diagonal
    entries
  * productOfProjectiveSpaces -- Constructs
    the multi-graded ring of a product of copies of P^1 (pp is a synonym)

Functions with optional argument named CoefficientField :
=========================================================

  * "carpet(...,CoefficientField=>...)" -- see carpet, -- ideal
    of a K3 carpet
  * "productOfProjectiveSpaces(...,CoefficientField=>...)" -- see
    productOfProjectiveSpaces, -- Constructs the
    multi-graded ring of a product of copies of P^1 (pp is a synonym)

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

The object CoefficientField, is a symbol (Macaulay2Doc).

correspondencePolynomial -- computes the Hilbert polynomial of a correspondence scroll
**************************************************************************************

Synopsis
========

  * Usage:
        H = correspondencePolynomial(M,L)
        H = correspondencePolynomial(M,L,VariableName =>h)
  * Inputs:
      * M, a module (Macaulay2Doc),
      * L, a list (Macaulay2Doc), of ZZ
      * VariableName, a string (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * VariableName => ..., default value "s"
  * Outputs:
      * H, a ring element (Macaulay2Doc), in QQ[h]

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

Let M be a module over a polynomial ring P =
kk[x_{0,0}..x_{0,a_0}..x_{n-1,0}..x_{n-1,a_{n-1}}] graded with degree x_{i,j} =
e_i, the i-th unit vector, and let b = {b_0..b_{n-1}} be a list of integers.
The code computes the multigraded Hilbert polynomial mH(h_0,..,h_{n-1}) and
returns H(h) = mH(b_0*h_0, .., b_{n-1}*h_{n-1}).

+-----------------------------------------------------------------------------+
|i1 : P = productOfProjectiveSpaces {1,1}                                     |
|                                                                             |
|o1 = P                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : Delta = smallDiagonal P                                                 |
|                                                                             |
|o2 = ideal(- x   x    + x   x   )                                            |
|              0,1 1,0    0,0 1,1                                             |
|                                                                             |
|o2 : Ideal of P                                                              |
+-----------------------------------------------------------------------------+
|i3 : M = P^1/(Delta^2)                                                       |
|                                                                             |
|o3 = cokernel | x_(0,1)^2x_(1,0)^2-2x_(0,0)x_(0,1)x_(1,0)x_(1,1)+x_(0,0)^2x_(|
|                                                                             |
|                            1                                                |
|o3 : P-module, quotient of P                                                 |
|-----------------------------------------------------------------------------|
|1,1)^2 |                                                                     |
+-----------------------------------------------------------------------------+
|i4 : correspondencePolynomial (M,{1,1})                                      |
|                                                                             |
|o4 = 4s                                                                      |
|                                                                             |
|o4 : QQ[s]                                                                   |
+-----------------------------------------------------------------------------+
|i5 : correspondencePolynomial (M,{2,2})                                      |
|                                                                             |
|o5 = 8s                                                                      |
|                                                                             |
|o5 : QQ[s]                                                                   |
+-----------------------------------------------------------------------------+

See also
========

  * multiHilbertPolynomial -- Multi-graded
    Hilbert polynomial for a product of projective spaces

Ways to use correspondencePolynomial :
======================================

  * "correspondencePolynomial(Module,List)"

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

The object correspondencePolynomial, is a
method function with options (Macaulay2Doc).

correspondenceScroll -- Union of planes joining points of rational normal curves according to a given correspondence
********************************************************************************************************************

Synopsis
========

  * Usage:
        G = correspondenceScroll(I,scroll)
  * Inputs:
      * I, an ideal (Macaulay2Doc), ideal of a correspondence; an
        arbitrary subscheme of (P^1)^{#scroll}
      * VariableName, a string (Macaulay2Doc), name of the
        variable to use in the output
      * scroll, a list (Macaulay2Doc), list of positive integers,
        the degrees of disjoint rational normal curves
  * Optional inputs (Macaulay2Doc),:
      * VariableName => ..., default value "x"
  * Outputs:
      * G, an ideal (Macaulay2Doc), ideal of the generalized
        scroll

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

Let L = {a_0,..a_{(m-1)}}, and let P = P^N with N = (#L-1+ sum L). Just as the
ordinary scroll S(L) is  the union of planes joining rational normal curves C_i
of degree a_i according to some chosen isomorphism among them (a (1,1,..,1)
correspondence), the generalized Scroll is the union of planes joining the
points that correspond under an arbitrary correspondence, specified by I.

Thus if I is the ideal of the small diagonal of (P^1)^m, then generalized
Scroll(I,L) is equal to S(L). If #L = 2, and I is the square of the ideal of
the diagonal, we get a K3 carpet:

+-----------------------------------------------------------------------------+
|i1 : L = {3,4}                                                               |
|                                                                             |
|o1 = {3, 4}                                                                  |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : S = productOfProjectiveSpaces(#L) --creates the multi-graded ring of    |
|                                                                             |
|o2 = S                                                                       |
|                                                                             |
|o2 : PolynomialRing                                                          |
|-----------------------------------------------------------------------------|
|(P^1)^(#L)                                                                   |
+-----------------------------------------------------------------------------+
|i3 : Delta = smallDiagonal S -- the ideal of the small diagonal of (P^1)^(#L)|
|                                                                             |
|o3 = ideal(- x   x    + x   x   )                                            |
|              0,1 1,0    0,0 1,1                                             |
|                                                                             |
|o3 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i4 : G = correspondenceScroll(Delta, L)                                      |
|                                                                             |
|             2                                                               |
|o4 = ideal (x    - x   x   , x   x    - x   x   , x   x    - x   x   ,       |
|             1,3    1,2 1,4   1,2 1,3    1,1 1,4   1,1 1,3    1,0 1,4        |
|     ------------------------------------------------------------------------|
|                                                                     2       |
|     x   x    - x   x   , x   x    - x   x   , x   x    - x   x   , x    -   |
|      0,3 1,3    0,2 1,4   0,2 1,3    0,1 1,4   0,1 1,3    0,0 1,4   1,2     |
|     ------------------------------------------------------------------------|
|                                                                             |
|     x   x   , x   x    - x   x   , x   x    - x   x   , x   x    - x   x   ,|
|      1,0 1,4   1,1 1,2    1,0 1,3   0,3 1,2    0,1 1,4   0,2 1,2    0,0 1,4 |
|     ------------------------------------------------------------------------|
|                           2                                                 |
|     x   x    - x   x   , x    - x   x   , x   x    - x   x   , x   x    -   |
|      0,1 1,2    0,0 1,3   1,1    1,0 1,2   0,3 1,1    0,0 1,4   0,2 1,1     |
|     ------------------------------------------------------------------------|
|                                                                             |
|     x   x   , x   x    - x   x   , x   x    - x   x   , x   x    - x   x   ,|
|      0,0 1,3   0,1 1,1    0,0 1,2   0,3 1,0    0,0 1,3   0,2 1,0    0,0 1,2 |
|     ------------------------------------------------------------------------|
|                           2                                     2           |
|     x   x    - x   x   , x    - x   x   , x   x    - x   x   , x    -       |
|      0,1 1,0    0,0 1,1   0,2    0,1 0,3   0,1 0,2    0,0 0,3   0,1         |
|     ------------------------------------------------------------------------|
|     x   x   )                                                               |
|      0,0 0,2                                                                |
|                                                                             |
|                ZZ                                                           |
|o4 : Ideal of -----[x   ..x   , x   ..x   ]                                  |
|              32003  0,0   0,3   1,0   1,4                                   |
+-----------------------------------------------------------------------------+
|i5 : minimalBetti G                                                          |
|                                                                             |
|            0  1  2   3  4  5 6                                              |
|o5 = total: 1 21 70 105 84 35 6                                              |
|         0: 1  .  .   .  .  . .                                              |
|         1: . 21 70 105 84 35 6                                              |
|                                                                             |
|o5 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i6 : G = correspondenceScroll(Delta^2, L)                                    |
|                                                                             |
|             2                                                          2    |
|o6 = ideal (x    - x   x   , x   x    - x   x   , x   x    - x   x   , x    -|
|             1,3    1,2 1,4   1,2 1,3    1,1 1,4   1,1 1,3    1,0 1,4   1,2  |
|     ------------------------------------------------------------------------|
|                                                                             |
|     x   x   , x   x    - x   x   , x   x    - 2x   x    + x   x   , x   x   |
|      1,0 1,4   1,1 1,2    1,0 1,3   0,3 1,2     0,2 1,3    0,1 1,4   0,2 1,2|
|     ------------------------------------------------------------------------|
|                              2                                              |
|     - 2x   x    + x   x   , x    - x   x   , x   x    - 3x   x    +         |
|         0,1 1,3    0,0 1,4   1,1    1,0 1,2   0,3 1,1     0,1 1,3           |
|     ------------------------------------------------------------------------|
|                                                                             |
|     2x   x   , x   x    - 2x   x    + x   x   , x   x    - 3x   x    +      |
|       0,0 1,4   0,2 1,1     0,1 1,2    0,0 1,3   0,3 1,0     0,1 1,2        |
|     ------------------------------------------------------------------------|
|                                                  2                          |
|     2x   x   , x   x    - 2x   x    + x   x   , x    - x   x   , x   x    - |
|       0,0 1,3   0,2 1,0     0,1 1,1    0,0 1,2   0,2    0,1 0,3   0,1 0,2   |
|     ------------------------------------------------------------------------|
|                2                                                            |
|     x   x   , x    - x   x   )                                              |
|      0,0 0,3   0,1    0,0 0,2                                               |
|                                                                             |
|                ZZ                                                           |
|o6 : Ideal of -----[x   ..x   , x   ..x   ]                                  |
|              32003  0,0   0,3   1,0   1,4                                   |
+-----------------------------------------------------------------------------+
|i7 : minimalBetti G                                                          |
|                                                                             |
|            0  1  2  3  4  5 6                                               |
|o7 = total: 1 15 35 42 35 15 1                                               |
|         0: 1  .  .  .  .  . .                                               |
|         1: . 15 35 21  .  . .                                               |
|         2: .  .  . 21 35 15 .                                               |
|         3: .  .  .  .  .  . 1                                               |
|                                                                             |
|o7 : BettiTally                                                              |
+-----------------------------------------------------------------------------+

Here is how to make the generalized scroll corresponding to a general elliptic
curve in (P^1)^3. First, the general elliptic curve, as a plane cubic through
three given points:

+-----------------------------------------------------------------------------+
|i8 : T = ZZ/32003[y_0,y_1,y_2]                                               |
|                                                                             |
|o8 = T                                                                       |
|                                                                             |
|o8 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i9 : threepoints = gens intersect(ideal(y_0,y_1),ideal(y_0,y_2),ideal(y_1,y_2|
|                                                                             |
|o9 = | y_1y_2 y_0y_2 y_0y_1 |                                                |
|                                                                             |
|             1       3                                                       |
|o9 : Matrix T  <--- T                                                        |
|-----------------------------------------------------------------------------|
|))                                                                           |
+-----------------------------------------------------------------------------+
|i10 : f = threepoints*random(source threepoints, T^{-3}); -- general cubic   |
|                                                                             |
|              1       1                                                      |
|o10 : Matrix T  <--- T                                                       |
|-----------------------------------------------------------------------------|
|through the three points                                                     |
+-----------------------------------------------------------------------------+
|i11 : L = {2,2,2}                                                            |
|                                                                             |
|o11 = {2, 2, 2}                                                              |
|                                                                             |
|o11 : List                                                                   |
+-----------------------------------------------------------------------------+
|i12 : x = symbol x;                                                          |
+-----------------------------------------------------------------------------+
|i13 : S = productOfProjectiveSpaces(#L,VariableName =>"x") --creates the     |
|                                                                             |
|o13 = S                                                                      |
|                                                                             |
|o13 : PolynomialRing                                                         |
|-----------------------------------------------------------------------------|
|multi-graded ring of (P^1)^(#L)                                              |
+-----------------------------------------------------------------------------+
|i14 : ST = (flattenRing(T**S))_0                                             |
|                                                                             |
|o14 = ST                                                                     |
|                                                                             |
|o14 : PolynomialRing                                                         |
+-----------------------------------------------------------------------------+
|i15 : irrel = irrelevantIdeal ST;                                            |
|                                                                             |
|o15 : Ideal of ST                                                            |
+-----------------------------------------------------------------------------+

Here the irrelevant ideal is the intersection of the 4 ideals of coordinates
(P^2 and the three copies of P^1). Next, define the pairs of sections on the
curve giving the three projections:

+-----------------------------------------------------------------------------+
|i16 : ff =  {{y_0,y_1},{y_0,y_2},{y_1,y_2}} -- projections from the three    |
|                                                                             |
|o16 = {{y , y }, {y , y }, {y , y }}                                         |
|         0   1     0   2     1   2                                           |
|                                                                             |
|o16 : List                                                                   |
|-----------------------------------------------------------------------------|
|points                                                                       |
+-----------------------------------------------------------------------------+
|i17 : ff =  apply(ff, f-> apply(f, p-> sub(p, ST)))                          |
|                                                                             |
|o17 = {{y , y }, {y , y }, {y , y }}                                         |
|         0   1     0   2     1   2                                           |
|                                                                             |
|o17 : List                                                                   |
+-----------------------------------------------------------------------------+

And create the equations of the incidence variety

+-----------------------------------------------------------------------------+
|i18 : D1 = det matrix{{x_(0,0),ff_0_1},{x_(0,1),ff_0_0}}                     |
|                                                                             |
|o18 = y x    - y x                                                           |
|       0 0,0    1 0,1                                                        |
|                                                                             |
|o18 : ST                                                                     |
+-----------------------------------------------------------------------------+
|i19 : D2 = det matrix{{x_(1,0),ff_1_1},{x_(1,1),ff_1_0}}                     |
|                                                                             |
|o19 = y x    - y x                                                           |
|       0 1,0    2 1,1                                                        |
|                                                                             |
|o19 : ST                                                                     |
+-----------------------------------------------------------------------------+
|i20 : D3 = det matrix{{x_(2,0),ff_2_1},{x_(2,1),ff_2_1}}                     |
|                                                                             |
|o20 = y x    - y x                                                           |
|       2 2,0    2 2,1                                                        |
|                                                                             |
|o20 : ST                                                                     |
+-----------------------------------------------------------------------------+
|i21 : J = sub(ideal f, ST)+ideal(D1,D2,D3)                                   |
|                                                                             |
|                  2             2        2                        2          |
|o21 = ideal (8570y y  - 15344y y  + 3187y y  + 12334y y y  + 4376y y  -      |
|                  0 1         0 1        0 2         0 1 2        1 2        |
|      -----------------------------------------------------------------------|
|             2          2                                                    |
|      5307y y  - 5570y y , y x    - y x   , y x    - y x   , y x    - y x   )|
|           0 2        1 2   0 0,0    1 0,1   0 1,0    2 1,1   2 2,0    2 2,1 |
|                                                                             |
|o21 : Ideal of ST                                                            |
+-----------------------------------------------------------------------------+

This must be saturated with respect to the irrelevant ideal, and then the y
variables are eliminated, to get the curve in (P^1)^3.

+---------------------------------------+
|i22 : Js = saturate(J, irrel);         |
|                                       |
|o22 : Ideal of ST                      |
+---------------------------------------+
|i23 : I = eliminate({y_0,y_1,y_2}, Js);|
|                                       |
|o23 : Ideal of ST                      |
+---------------------------------------+
|i24 : IS = (map(S,ST))I;               |
|                                       |
|o24 : Ideal of S                       |
+---------------------------------------+
|i25 : codim I                          |
|                                       |
|o25 = 1                                |
+---------------------------------------+

Finally, we compute the ideal of the generalized Scroll:

+--------------------------------------+
|i26 : g = correspondenceScroll(IS, L);|
|                                      |
|                 ZZ                   |
|o26 : Ideal of -----[x   ..x   ]      |
|               32003  0,0   2,2       |
+--------------------------------------+
|i27 : minimalBetti g                  |
|                                      |
|             0  1  2  3  4 5          |
|o27 = total: 1 19 59 72 39 8          |
|          0: 1  .  .  .  . .          |
|          1: .  3  .  .  . .          |
|          2: . 12 43 48 23 4          |
|          3: .  4 16 24 16 4          |
|                                      |
|o27 : BettiTally                      |
+--------------------------------------+

Caveat
======

The script currently uses an elimination method, but could be speeded up by
replacing that with the easy direct description of the equations that come from
the correspondence I.

See also
========

  * irrelevantIdeal -- returns the irrelevant ideal of
    a multi-graded ring
  * productOfProjectiveSpaces -- Constructs
    the multi-graded ring of a product of copies of P^1 (pp is a synonym)
  * smallDiagonal -- Ideal of the small diagonal in
    (P^1)^n

Ways to use correspondenceScroll :
==================================

  * "correspondenceScroll(Ideal,List)"

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

The object correspondenceScroll, is a method function with options (Macaulay2Doc).

hankelMatrix -- matrix with constant anti-diagonal entries
**********************************************************

Synopsis
========

  * Usage:
        m = hankelMatrix(r,p,q)
        m = hankelMatrix(R,x,p,q)
        m = hankelMatrix(R,p,q)
        m = hankelMatrix(p,q)
        m = hankelMatrix(p,q,s)
  * Inputs:
      * r, a matrix (Macaulay2Doc), matrix whose first row will
        be the entries of m
      * R, a ring (Macaulay2Doc), in this case, hankelMatrix will
        use the variables of R
      * x, a ring element (Macaulay2Doc), if present,
        hankelMatrix will use the variables of R starting with x
      * p, an integer (Macaulay2Doc), number of rows
      * q, an integer (Macaulay2Doc), number of columns
      * s, a string (Macaulay2Doc), name of the variable to use
        in the method (hankelMatrix, p,q,s)

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

A Hankel matrix (or catalecticant matrix) is a matrix with a repeated element
on each anti-diagonal, that is m_(i,j) depends only on i+j. If the matrix r is
given, then we set m_(i,j) = r_(0,i+j) if i+j<numcols r, and 0 otherwise. The
degrees of the rows of m are set to 0, and the degrees of the columns are set
to the degree of r_(0,0); thus the Hankel matrix is homogeneous iff all the
entries of the first row of r have the same degree.

If no ring or matrix is given, hankelMatrix defines a new ring S with p+q-1
variables X_i, and then calls hankelMatrix(vars S, p,q).

+--------------------------------------------------+
|i1 : p = 2;q=3;                                   |
+--------------------------------------------------+
|i3 : S = ZZ/101[x_0..x_(p+q-2)]                   |
|                                                  |
|o3 = S                                            |
|                                                  |
|o3 : PolynomialRing                               |
+--------------------------------------------------+
|i4 : hankelMatrix(vars S, p,q)                    |
|                                                  |
|o4 = | x_0 x_1 x_2 |                              |
|     | x_1 x_2 x_3 |                              |
|                                                  |
|             2       3                            |
|o4 : Matrix S  <--- S                             |
+--------------------------------------------------+
|i5 : r = vars S ** transpose vars S               |
|                                                  |
|o5 = {-1} | x_0^2  x_0x_1 x_0x_2 x_0x_3 |         |
|     {-1} | x_0x_1 x_1^2  x_1x_2 x_1x_3 |         |
|     {-1} | x_0x_2 x_1x_2 x_2^2  x_2x_3 |         |
|     {-1} | x_0x_3 x_1x_3 x_2x_3 x_3^2  |         |
|                                                  |
|             4       4                            |
|o5 : Matrix S  <--- S                             |
+--------------------------------------------------+
|i6 : hankelMatrix(r, p,q)                         |
|                                                  |
|o6 = | x_0^2  x_0x_1 x_0x_2 |                     |
|     | x_0x_1 x_0x_2 x_0x_3 |                     |
|                                                  |
|             2       3                            |
|o6 : Matrix S  <--- S                             |
+--------------------------------------------------+
|i7 : hankelMatrix(S,p,q)                          |
|                                                  |
|o7 = | x_0 x_1 x_2 |                              |
|     | x_1 x_2 x_3 |                              |
|                                                  |
|             2       3                            |
|o7 : Matrix S  <--- S                             |
+--------------------------------------------------+
|i8 : hankelMatrix(r, p,q+2)                       |
|                                                  |
|o8 = | x_0^2  x_0x_1 x_0x_2 x_0x_3 0 |            |
|     | x_0x_1 x_0x_2 x_0x_3 0      0 |            |
|                                                  |
|             2       5                            |
|o8 : Matrix S  <--- S                             |
+--------------------------------------------------+
|i9 : hankelMatrix(p,q+2)                          |
|                                                  |
|o9 = | X_0 X_1 X_2 X_3 X_4 |                      |
|     | X_1 X_2 X_3 X_4 X_5 |                      |
|                                                  |
|               ZZ          2         ZZ          5|
|o9 : Matrix (-----[X ..X ])  <--- (-----[X ..X ]) |
|             32003  0   5          32003  0   5   |
+--------------------------------------------------+

Ways to use hankelMatrix :
==========================

  * "hankelMatrix(Matrix,ZZ,ZZ)"
  * "hankelMatrix(Ring,RingElement,ZZ,ZZ)"
  * "hankelMatrix(Ring,ZZ,ZZ)"
  * "hankelMatrix(ZZ,ZZ)"
  * "hankelMatrix(ZZ,ZZ,String)"

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

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

irrelevantIdeal -- returns the irrelevant ideal of a multi-graded ring
**********************************************************************

Synopsis
========

  * Usage:
        mm = irrelevantIdeal R
  * Inputs:
      * R, a ring (Macaulay2Doc), (multi)-graded ring
  * Outputs:
      * mm, an ideal (Macaulay2Doc), irrelevant ideal of R

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

Returns the intersection of the ideals of variables in each single
multi-degree.

+-----------------------------------------------------------------------------+
|i1 : R = productOfProjectiveSpaces 3                                         |
|                                                                             |
|o1 = R                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : vars R                                                                  |
|                                                                             |
|o2 = | x_(0,0) x_(0,1) x_(1,0) x_(1,1) x_(2,0) x_(2,1) |                     |
|                                                                             |
|             1       6                                                       |
|o2 : Matrix R  <--- R                                                        |
+-----------------------------------------------------------------------------+
|i3 : (gens R)/degree                                                         |
|                                                                             |
|o3 = {{1, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 1, 0}, {0, 0, 1}, {0, 0, 1}}      |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+
|i4 : irrelevantIdeal R                                                       |
|                                                                             |
|o4 = ideal (x   x   x   , x   x   x   , x   x   x   , x   x   x   ,          |
|             0,1 1,1 2,1   0,0 1,1 2,1   0,1 1,0 2,1   0,0 1,0 2,1           |
|     ------------------------------------------------------------------------|
|     x   x   x   , x   x   x   , x   x   x   , x   x   x   )                 |
|      0,1 1,1 2,0   0,0 1,1 2,0   0,1 1,0 2,0   0,0 1,0 2,0                  |
|                                                                             |
|o4 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+

See also
========

  * productOfProjectiveSpaces -- Constructs
    the multi-graded ring of a product of copies of P^1 (pp is a synonym)

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

The object irrelevantIdeal, is a function closure (Macaulay2Doc).

multiHilbertPolynomial -- Multi-graded Hilbert polynomial for a product of projective spaces
********************************************************************************************

Synopsis
========

  * Usage:
        H = multiHilbertPolynomial M
        H = multiHilbertPolynomial (M, VariableName => "s")
  * Inputs:
      * M, a module (Macaulay2Doc), multigraded over a polynomial
        ring
      * VariableName, a string (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * VariableName => ..., default value "s"
  * Outputs:
      * H, a ring element (Macaulay2Doc), in QQ[h]

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

Let M be a module over a polynomial ring P =
kk[x_{0,0}..x_{0,a_0}..x_{n-1,0}..x_{n-1,a_{n-1}}] graded with degree x_{i,j} =
e_i, the i-th unit vector. If M = P^{m} is free, then the Hilbert polynomial is
the product of the shifted binomial coefficients binomial(a_i+m_i+t,a_i). In
general, the routine computes a free resolution of the coker of the initial
matrix of a presentation matrix, and then makes an alternating sum of the
Hilbert polynomials of the free modules in the resolution. The polynomial
returned has variables s_i (the default) or name_i if VariableName => "name" is
given.

+---------------------------------------+
|i1 : P = productOfProjectiveSpaces{1,2}|
|                                       |
|o1 = P                                 |
|                                       |
|o1 : PolynomialRing                    |
+---------------------------------------+
|i2 : M1 = P^1                          |
|                                       |
|      1                                |
|o2 = P                                 |
|                                       |
|o2 : P-module, free                    |
+---------------------------------------+
|i3 : multiHilbertPolynomial M1         |
|                                       |
|     1   2   3       1 2        3      |
|o3 = -s s  + -s s  + -s  + s  + -s  + 1|
|     2 0 1   2 0 1   2 1    0   2 1    |
|                                       |
|o3 : QQ[s ..s ]                        |
|         0   1                         |
+---------------------------------------+

Caveat
======

Because of the computation of a free resolution, this might be slow on large
examples.

See also
========

  * correspondencePolynomial -- computes the
    Hilbert polynomial of a correspondence scroll

Ways to use multiHilbertPolynomial :
====================================

  * "multiHilbertPolynomial(Module)"

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

The object multiHilbertPolynomial, is a
method function with options (Macaulay2Doc).

productOfProjectiveSpaces -- Constructs the multi-graded ring of a product of copies of P^1 (pp is a synonym)
*************************************************************************************************************

Synopsis
========

  * Usage:
        R = productOfProjectiveSpaces L
        R = productOfProjectiveSpaces n
  * Inputs:
      * L, a list (Macaulay2Doc), of positive integers, the
        dimensions of the projective spaces
      * n, an integer (Macaulay2Doc), positive integer, number of P^1
        factors
  * Optional inputs (Macaulay2Doc),:
      * CoefficientField => a ring (Macaulay2Doc), default value
        ZZ/32003, the ground field
      * VariableName => a string (Macaulay2Doc), default value
        "x", name of variable to use.
  * Outputs:
      * R, a ring (Macaulay2Doc), ZZ^n - graded

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

The variables are in 1+L_i -tuples, x_(i,0).. x_(i,L_i) with degree
{0..0,1,0..0}, the 1 being in the i-th place.

+---------------------------------------------------------------+
|i1 : R = productOfProjectiveSpaces{1,3}                        |
|                                                               |
|o1 = R                                                         |
|                                                               |
|o1 : PolynomialRing                                            |
+---------------------------------------------------------------+
|i2 : v = gens R                                                |
|                                                               |
|o2 = {x   , x   , x   , x   , x   , x   }                      |
|       0,0   0,1   1,0   1,1   1,2   1,3                       |
|                                                               |
|o2 : List                                                      |
+---------------------------------------------------------------+
|i3 : v/degree                                                  |
|                                                               |
|o3 = {{1, 0}, {1, 0}, {0, 1}, {0, 1}, {0, 1}, {0, 1}}          |
|                                                               |
|o3 : List                                                      |
+---------------------------------------------------------------+
|i4 : gens productOfProjectiveSpaces({1,1}, VariableName => "y")|
|                                                               |
|o4 = {y   , y   , y   , y   }                                  |
|       0,0   0,1   1,0   1,1                                   |
|                                                               |
|o4 : List                                                      |
+---------------------------------------------------------------+
|i5 : gens productOfProjectiveSpaces 2                          |
|                                                               |
|o5 = {x   , x   , x   , x   }                                  |
|       0,0   0,1   1,0   1,1                                   |
|                                                               |
|o5 : List                                                      |
+---------------------------------------------------------------+

Ways to use productOfProjectiveSpaces :
=======================================

  * "productOfProjectiveSpaces(List)"
  * "productOfProjectiveSpaces(ZZ)"

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

The object productOfProjectiveSpaces, is a
method function with options (Macaulay2Doc).

schemeInProduct -- multi-graded Ideal of the image of a map to a product of projective spaces
*********************************************************************************************

Synopsis
========

  * Usage:
        J = schemeInProduct(I,maps,PP)
        J = schemeInProduct(I,maps)
  * Inputs:
      * I, an ideal (Macaulay2Doc), defining the source scheme
      * maps, a list (Macaulay2Doc), list of sequences of
        polynomials each of a single degree, in I
      * PP, a ring (Macaulay2Doc), multigraded ring of the product
        of projective spaces
      * VariableName, a string (Macaulay2Doc), name of variable
        to use in constructing a ring PP if none is given
  * Optional inputs (Macaulay2Doc),:
      * VariableName => ..., default value "X"
  * Outputs:
      * J, an ideal (Macaulay2Doc), multi-graded ideal of the
        image

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

+------------------------------------------------+
|i1 : S = ZZ/101[a,b]                            |
|                                                |
|o1 = S                                          |
|                                                |
|o1 : PolynomialRing                             |
+------------------------------------------------+
|i2 : I = ideal 0_S                              |
|                                                |
|o2 = ideal 0                                    |
|                                                |
|o2 : Ideal of S                                 |
+------------------------------------------------+
|i3 : f0 = matrix"a,b"                           |
|                                                |
|o3 = | a b |                                    |
|                                                |
|             1       2                          |
|o3 : Matrix S  <--- S                           |
+------------------------------------------------+
|i4 : f1 = matrix"a,b"                           |
|                                                |
|o4 = | a b |                                    |
|                                                |
|             1       2                          |
|o4 : Matrix S  <--- S                           |
+------------------------------------------------+
|i5 : maps = {f0,f1}                             |
|                                                |
|o5 = {| a b |, | a b |}                         |
|                                                |
|o5 : List                                       |
+------------------------------------------------+
|i6 : schemeInProduct(I, maps,VariableName =>"Y")|
|                                                |
|o6 = ideal(Y   Y    - Y   Y   )                 |
|            0,1 1,0    0,0 1,1                  |
|                                                |
|               ZZ                               |
|o6 : Ideal of ---[Y   ..Y   , a..b]             |
|              101  0,0   1,1                    |
+------------------------------------------------+

See also
========

  * productOfProjectiveSpaces -- Constructs
    the multi-graded ring of a product of copies of P^1 (pp is a synonym)

Ways to use schemeInProduct :
=============================

  * "schemeInProduct(Ideal,List)"
  * "schemeInProduct(Ideal,List,Ring)"

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

The object schemeInProduct, is a method function with options (Macaulay2Doc).

smallDiagonal -- Ideal of the small diagonal in (P^1)^n
*******************************************************

Synopsis
========

  * Usage:
        I = smallDiagonal n
        I = smallDiagonal S
  * Inputs:
      * n, an integer (Macaulay2Doc), number of factors of P^1
      * S, a ring (Macaulay2Doc), ring with 2n vars, corresponding
        to (P^1)^n for some n
  * Outputs:
      * I, an ideal (Macaulay2Doc), ideal of the small diagonal

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

+-----------------------------------------------------------------------------+
|i1 : smallDiagonal 3                                                         |
|                                                                             |
|o1 = ideal (- x   x    + x   x   , - x   x    + x   x   , - x   x    +       |
|               0,1 1,0    0,0 1,1     0,1 2,0    0,0 2,1     1,1 2,0         |
|     ------------------------------------------------------------------------|
|     x   x   )                                                               |
|      1,0 2,1                                                                |
|                                                                             |
|                ZZ                                                           |
|o1 : Ideal of -----[x   ..x   ]                                              |
|              32003  0,0   2,1                                               |
+-----------------------------------------------------------------------------+
|i2 : S = productOfProjectiveSpaces 3                                         |
|                                                                             |
|o2 = S                                                                       |
|                                                                             |
|o2 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i3 : smallDiagonal S                                                         |
|                                                                             |
|o3 = ideal (- x   x    + x   x   , - x   x    + x   x   , - x   x    +       |
|               0,1 1,0    0,0 1,1     0,1 2,0    0,0 2,1     1,1 2,0         |
|     ------------------------------------------------------------------------|
|     x   x   )                                                               |
|      1,0 2,1                                                                |
|                                                                             |
|o3 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+

See also
========

  * productOfProjectiveSpaces -- Constructs
    the multi-graded ring of a product of copies of P^1 (pp is a synonym)

Ways to use smallDiagonal :
===========================

  * "smallDiagonal(Ring)"
  * "smallDiagonal(ZZ)"

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

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

VariableName -- symbol used to define the variable name in many routines
************************************************************************

See also
========

  * carpet -- ideal of a K3 carpet
  * correspondenceScroll -- Union of planes
    joining points of rational normal curves according to a given
    correspondence
  * hankelMatrix -- matrix with constant anti-diagonal
    entries
  * productOfProjectiveSpaces -- Constructs
    the multi-graded ring of a product of copies of P^1 (pp is a synonym)

Functions with optional argument named VariableName :
=====================================================

  * "carpet(...,VariableName=>...)" -- see carpet, -- ideal of a
    K3 carpet
  * "correspondencePolynomial(...,VariableName=>...)" -- see
    correspondencePolynomial, -- computes the Hilbert
    polynomial of a correspondence scroll
  * "correspondenceScroll(...,VariableName=>...)" -- see
    correspondenceScroll, -- Union of planes joining
    points of rational normal curves according to a given correspondence
  * "multiHilbertPolynomial(...,VariableName=>...)" -- see
    multiHilbertPolynomial, -- Multi-graded Hilbert
    polynomial for a product of projective spaces
  * "productOfProjectiveSpaces(...,VariableName=>...)" -- see
    productOfProjectiveSpaces, -- Constructs the
    multi-graded ring of a product of copies of P^1 (pp is a synonym)
  * "schemeInProduct(...,VariableName=>...)" -- see schemeInProduct,
    -- multi-graded Ideal of the image of a map to a product
    of projective spaces

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

The object VariableName, is a symbol (Macaulay2Doc).