Macaulay2 » Documentation
Packages » QuaternaryQuartics :: Hilbert scheme of 6 points in projective 3-space
next | previous | forward | backward | up | index | toc

# Hilbert scheme of 6 points in projective 3-space -- Betti table loci

In this section, we use strongly stable ideals (Borel fixed ideals), generic initial ideals, Groebner strata, and Schreyer's algorithm for computing free resolutions, to find the components in the Hilbert scheme of 6 points, of the various Batti table loci.

Let's assume for simplicity that the field $\mathbb{k}$ has characteristic zero. This is slightly too strong an assumption for what we are doing, but if the characteristic is finite but not so small, everything we say here will hold in that case too. Let $S = \mathbb{k}[x_0, \ldots, x_n]$.

We work over a large finite field, one whose characteristic is large enough so that the subtleties of Borels over finite characteristic don't appear. We use such a finite field, instead of $\mathbb{Q}$, so that the coefficients in the ideal aren't huge. This doesn't change the answers, but we need to check that afterwards.

    i1 : setRandomSeed 4332367823
     -- setting random seed to 4332367823

    o1 = 4332367823

    i2 : kk = ZZ/101

    o2 = kk

    o2 : QuotientRing

    i3 : S = kk[a,b,c,d];

## Strongly stable ideals with a given Hilbert polynomial

A strongly stable monomial ideal is a monomial ideal $J$ such that if $x_i m$ is in $J$, then $x_j m$ is in $J$, for all $j < i$. In characteristic zero, this coincides with the notion of an ideal being fixed under the Borel action of upper triangular matrices. There is a more complicated combinatorial description of Borel fixed ideals in positive characteristic, this is why we simplify here to characteristic zero.

There are only finitely many saturated Borel fixed monomial ideals of a given Hilbert polynomial (this is folklore, but D. Maclagan has a nice general paper which proves a sweeping generalization of this). Alyson Reeves gave an algorithm in her Cornell thesis to compute all of the saturated Borels, with a given Hilbert polynomial. Moore and Nagel, and separately Albarelli-Lella (arxiv 1406.6924) have papers improving this construction, and the latter have implemented a Macaulay2 package which computes these.

As our running example computation, we consider the Hilbert scheme of 6 points in $\PP^3$. Here are all of the strongly stable ideals with Hilbert polynomial $p(z) = 6$ in $\PP^3$. We use the package StronglyStableIdeals written by Albarelli and Lella.

    i4 : B6 = stronglyStableIdeals(6, S)

                        6                   2   5              2     2   4
    o4 = {ideal (b, a, c ), ideal (a, b*c, b , c ), ideal (a, b , b*c , c ),
         ------------------------------------------------------------------------
                    3     2   2    3                     2        2   4
         ideal (a, c , b*c , b c, b ), ideal (b*c, a*c, b , a*b, a , c ), ideal
         ------------------------------------------------------------------------
                2        2   3     2
         (a*c, b , a*b, a , c , b*c )}

    o4 : List

    i5 : B6 = nondegenerateBorels(6, S)

                            2        2   4                2        2   3     2
    o5 = {ideal (b*c, a*c, b , a*b, a , c ), ideal (a*c, b , a*b, a , c , b*c )}

    o5 : List

    i6 : B6/minimalBetti

                 0 1 2 3         0 1 2 3
    o6 = {total: 1 6 8 3, total: 1 6 8 3}
              0: 1 . . .      0: 1 . . .
              1: . 5 6 2      1: . 4 4 1
              2: . . . .      2: . 2 4 2
              3: . 1 2 1

    o6 : List

    i7 : matrix for J in B6 list for d to 6 list hilbertFunction(d, J)

    o7 = | 1 4 5 6 6 6 6 |
         | 1 4 6 6 6 6 6 |

                  2       7
    o7 : Matrix ZZ  <-- ZZ

Notice that each saturated Borel fixed ideal with this Hilbert polynomial has a different Hilbert function.

## Generic initial ideals

There are two key theorems (see Eisenbud's commutative algebra book, for an exposition) that we use here:

Theorem(Galligo, Bayer-Stillman) After a general change of coordinates, the initial ideal $J = in(g.I)$, under any term order, is Borel fixed (and hence, in characteristic zero, is strongly stable).

Theorem(Bayer-Stillman) The initial ideal $J = in(g.I)$, under graded reverse lex order, has the same depth, projective dimension and regularity as $I$. In characteristic zero, the regularity of $I$ is precisely the maximal degree of a Groebner basis generator of $g.I$.

In particular, after a general, or sufficiently random, change of coordinates, the initial ideal $J$ is saturated, Borel fixed, and has the same regularity and projective dimension as $I$.

For example, if we take a random set of points, the resulting initial ideal in graded reverse lex order is strongly stable (it is strongly stable for any order).

    i8 : I = pointsIdeal randomPoints(S, 6)

                                 2                              2   2
    o8 = ideal (a*c - 33b*c - 37c  + 48a*d + 41b*d - 12c*d - 25d , b  + 44b*c -
         ------------------------------------------------------------------------
            2                              2                   2
         17c  + 15a*d - 41b*d - 49c*d + 42d , a*b + 49b*c + 11c  - 17a*d + 17b*d
         ------------------------------------------------------------------------
                      2   2              2                              2
         + 47c*d + 47d , a  - 35b*c + 13c  - 19a*d - 20b*d + 37c*d + 18d )

    o8 : Ideal of S

    i9 : degree I

    o9 = 6

    i10 : hilbertPolynomial(I, Projective => false)

    o10 = 6

    o10 : QQ[i]

    i11 : J = monomialIdeal leadTerm I

                          2        2          2   3
    o11 = monomialIdeal (a , a*b, b , a*c, b*c , c )

    o11 : MonomialIdeal of S

    i12 : isBorel J

    o12 = true

    i13 : betti res I

                 0 1 2 3
    o13 = total: 1 4 5 2
              0: 1 . . .
              1: . 4 2 .
              2: . . 3 2

    o13 : BettiTally

## The Groebner family of an initial ideal

Given a monomial ideal $J$, and a term order (we generally always take the graded reverse lex order), we can form a parameter space of ideals having initial ideal $J$. For each minimal generator $x^\alpha$ of $J$, consider the set $x^\gamma$ of monomials of the same degree, not in $J$. For each such $\alpha$, form a polynomial

$\phantom{WWWWW} F_\alpha = x^\alpha + \sum_\gamma t_{\alpha, \gamma} x^\gamma $

Let $U = T[x_0, \ldots, x_n]$, where $T = \mathbb{k}[t_{\alpha, \gamma}]$ is the polynomial ring generated by all variables of the form $t_{\alpha, \gamma}$ as above. Let $F$ be the ideal in $U$ generated by the $F_\alpha$. $F = (F_\alpha)$ is called the Groebner family of $J$.

Any term order $>$ on the monomials of $S$, on a finite set $M$ of monomials, is given by a weight vector $w \in \mathbb{Z}^{n+1}$: for $x^\alpha, x^\beta \in M$, $x^\alpha > x^\beta$ if and only if $w \cdot \alpha > w \cdot \beta$. If we let the weight of $t_{\alpha, \gamma}$ be $w \cdot (\alpha - \gamma)$, then with this grading, $F_\alpha$ is homogeneous of weight $w \cdot \alpha$. This grading is useful for performance reasons: computing with homogeneous ideals is much more efficient than with arbitrary ideals. Additionally, we can order the variables $t_{\alpha, \gamma}$ by refining the weight degree by any term order on $T$: if the weight of $t_{\alpha, \gamma}$ is greater than $t_{\alpha', \gamma'}$ then $t_{\alpha, \gamma} > t_{\alpha', \gamma'}$ in this term order. weight.

## The Groebner stratum of an initial ideal

If we consider a minimal set of syzygies of the minimal generators $x^\alpha$ of $J$, and we apply this syzygy to the $F_\alpha$, then take the remainder upon division with the $F_\alpha$, and let $L$ be the ideal generated by all of the coefficients in $T$ of these resulting polynomials, then $L$ is called the Groebner stratum of $J$, and $F = (F_\alpha)$ is called the Groebner family of $J$.

Over $\mathbb{V}(L)$, $F$ defines a flat family all of whose fibers have initial ideal $J$, and consequently defines via representability of the Hilbert scheme, a closed subscheme of $Hilb$. These families, over all saturated monomial ideals, cover the Hilbert scheme.

    i14 : needsPackage "GroebnerStrata"

    o14 = GroebnerStrata

    o14 : Package

    i15 : J = B6_1

                       2        2   3     2
    o15 = ideal (a*c, b , a*b, a , c , b*c )

    o15 : Ideal of S

    i16 : J = ideal(a^2,a*b,b^2,a*c,b*c^2,c^3)

                  2        2          2   3
    o16 = ideal (a , a*b, b , a*c, b*c , c )

    o16 : Ideal of S

    i17 : F = groebnerFamily J

                  2                      2                      2
    o17 = ideal (a  + t b*c + t a*d + t c  + t b*d + t c*d + t d , a*b + t b*c +
                       1       3       2      4       5       6           7
          -----------------------------------------------------------------------
                     2                         2   2                         2
          t a*d + t c  + t  b*d + t  c*d + t  d , b  + t  b*c + t  a*d + t  c  +
           9       8      10       11       12          13       15       14
          -----------------------------------------------------------------------
                                2                              2
          t  b*d + t  c*d + t  d , a*c + t  b*c + t  a*d + t  c  + t  b*d +
           16       17       18           19       21       20      22
          -----------------------------------------------------------------------
                       2     2                    2       2          2         2
          t  c*d + t  d , b*c  + t  b*c*d + t  a*d  + t  c d + t  b*d  + t  c*d
           23       24            25         27        26       28        29
          -----------------------------------------------------------------------
                3   3                    2       2          2         2       3
          + t  d , c  + t  b*c*d + t  a*d  + t  c d + t  b*d  + t  c*d  + t  d )
             30          31         33        32       34        35        36

    o17 : Ideal of kk[t , t  , t , t  , t  , t , t  , t  , t  , t , t  , t , t  , t  , t , t  , t  , t  , t , t  , t , t  , t  , t  , t , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  ][a..d]
                       6   12   5   30   24   4   18   36   11   2   29   3   10   23   1   17   28   35   8   22   9   16   26   34   7   20   27   14   21   25   32   19   15   33   13   31

    i18 : U = ring F;

    i19 : T = coefficientRing U

    o19 = T

    o19 : PolynomialRing

    i20 : netList F_*

          +--------------------------------------------------------------+
          | 2                      2                      2              |
    o20 = |a  + t b*c + t a*d + t c  + t b*d + t c*d + t d               |
          |      1       3       2      4       5       6                |
          +--------------------------------------------------------------+
          |                         2                         2          |
          |a*b + t b*c + t a*d + t c  + t  b*d + t  c*d + t  d           |
          |       7       9       8      10       11       12            |
          +--------------------------------------------------------------+
          | 2                         2                         2        |
          |b  + t  b*c + t  a*d + t  c  + t  b*d + t  c*d + t  d         |
          |      13       15       14      16       17       18          |
          +--------------------------------------------------------------+
          |                            2                         2       |
          |a*c + t  b*c + t  a*d + t  c  + t  b*d + t  c*d + t  d        |
          |       19       21       20      22       23       24         |
          +--------------------------------------------------------------+
          |   2                    2       2          2         2       3|
          |b*c  + t  b*c*d + t  a*d  + t  c d + t  b*d  + t  c*d  + t  d |
          |        25         27        26       28        29        30  |
          +--------------------------------------------------------------+
          | 3                    2       2          2         2       3  |
          |c  + t  b*c*d + t  a*d  + t  c d + t  b*d  + t  c*d  + t  d   |
          |      31         33        32       34        35        36    |
          +--------------------------------------------------------------+

    i21 : L = trim groebnerStratum F;

    o21 : Ideal of T

    i22 : assert(dim L == 18)

    i23 : elapsedTime isPrime L
     -- 2.51961s elapsed

    o23 = true

## The Schreyer resolution and minimal Betti numbers

Schreyer's construction of a nonminimal free resolution starts with a Groebner basis. First, one constructs the Schreyer frame (see La Scala, Stillman). This is determined solely from the initial ideal $J$ and its minimal generators (but depends on some choices of ordering, but otherwise is combinatorial). This consists of the lead monomials of the Groebner bases of the syzygy modules of the initial ideal $J$ (in the so-called induces, or Schreyer order).

One then fills in the rest of each column of each matrix in this non minimal resolution by computing the image of the monomial, and taking its remainder with respect to all the lead terms at the previous homological degree (except the monomial we used). This gives a nonminimal free resolution, and after the frame is made, the only operations needed in the coefficient ring are subtraction and multiplication.

By linear algebra, a non minimal free resolution can be made minimal by the following process: find a non-zero scalar entry at, say, the $(i,j)$ entry of the $\partial_k : C_k \to C_{k-1}$. By column operations, make all the other entries in the $i$-th row 0, then remove the $i$-th row, and $j$-th column of this matrix, changing the two adjacent matrices in the process.

In the standard grading on $S$, the minimal free resolution will be homogeneous (with the $t$ variables all having degree 0). For each degree $d$, there is a submatrix of the map $\partial^C_i \colon C_i \to C_{i-1}$, let's call it $\rho_{i,d}$. This is a matrix defined over the base field. The ranks of these matrices determine the Betti table of the minimal free resolution of $S/I$.

Similarly, one can compute the non-minimal resolution of $F$, over the ring $T/L$. For any specialization to a point, the specialization of the complex is a non-minimal free resolution of the specialized point.

There are only two Borel fixed ideals for 6 points. Notice that in this particular case, the Hilbert function and generic initial ideal is determined by the number of quadrics in the saturated ideal: If there are 5 quadrics in the ideal, it has the first gin, and if there are 4 quadrics, it has the second gin.

This means that we can partition the entire Hilbert scheme into 2 parts: The generic initial ideal is one of these two.

Let $H$ be the Hilbert scheme of 6 points in ${\mathbb P}^3$. $H$ has one component, is rational, and has dimension 18. A general set of 6 points has regularity 2, and its free resolution is shown in the next example.

    i24 : I = pointsIdeal randomPoints(S, 6)

                                 2                              2   2
    o24 = ideal (a*c - 7b*c - 49c  + 40a*d - 42b*d + 12c*d + 28d , b  - 36b*c -
          -----------------------------------------------------------------------
             2                              2                  2
          18c  - 22a*d + 20b*d + 37c*d - 18d , a*b - 8b*c - 28c  + 6a*d + 20b*d -
          -----------------------------------------------------------------------
             2   2             2                             2
          26d , a  - 18b*c - 3c  + 15a*d - 4b*d - 21c*d + 30d )

    o24 : Ideal of S

    i25 : degree I

    o25 = 6

    i26 : radical I == I

    o26 = true

    i27 : betti res I

                 0 1 2 3
    o27 = total: 1 4 5 2
              0: 1 . . .
              1: . 4 2 .
              2: . . 3 2

    o27 : BettiTally

If an ideal $I$ has initial ideal $J$, we can construct a (nonminimal in general) free resolution of $I$ with the same Betti table as $J$. The Betti table of (the minimal free resolution of) $I$ is determined by the ranks of the degree 0 maps in this non-minimal resolution.

    i28 : (CF, H) = nonminimalMaps F;

    i29 : U = ring CF

    o29 = U

    o29 : PolynomialRing

    i30 : CF

           1      6      10      6      1
    o30 = U  <-- U  <-- U   <-- U  <-- U

          0      1      2       3      4

    o30 : ChainComplex

    i31 : betti(CF, Weights=>{1}) -- alas, it is a poor non-minimal resolution

                 0 1  2 3 4
    o31 = total: 1 6 10 6 1
              0: 1 .  . . .
              1: . 4  4 2 .
              2: . 2  5 3 1
              3: . .  1 1 .

    o31 : BettiTally

    i32 : assert isHomogeneous CF -- but it is homogeneous, as it needs to be.

    i33 : keys H

    o33 = {(3, 4), (3, 5), (4, 6), (2, 3)}

    o33 : List

    i34 : M1 = H#(2,3) -- rank is 0, 1, or 2.

    o34 = {3} | -t_8-t_14t_19      t_7t_14-t_20t_14+t_14t_19t_13
          {3} | -t_7+t_20-t_19t_13 -t_8-t_14t_19+t_7t_13-t_20t_13+t_19t_13^2
          -----------------------------------------------------------------------
          -t_2-t_20^2+t_14t_19^2    -t_8t_20+t_1t_14+t_7t_14t_19             |
          -t_1-2t_20t_19+t_19^2t_13 -t_2-t_7t_20-t_8t_19+t_1t_13+t_7t_19t_13 |

                  2      4
    o34 : Matrix T  <-- T

    i35 : M2 = H#(3,4) -- rank is 1 or 2

    o35 = {4} | -t_14
          {4} | -1
          {4} | t_8+t_14t_19-t_7t_13+t_20t_13-t_19t_13^2
          {4} | -t_7+t_20-t_19t_13
          {4} | 0
          -----------------------------------------------------------------------
          -t_8                                    |
          t_19                                    |
          t_2+t_7t_20+t_8t_19-t_1t_13-t_7t_19t_13 |
          -t_1-2t_20t_19+t_19^2t_13               |
          t_7-t_20+t_19t_13                       |

                  5      2
    o35 : Matrix T  <-- T

    i36 : M3 = H#(3,5) -- maximal rank, can ignore

    o36 = {5} | -1 t_19 -t_20 |

                  1      3
    o36 : Matrix T  <-- T

    i37 : M4 = H#(4,6) -- maximal rank, can ignore

    o37 = {6} | -1 |

                  1      1
    o37 : Matrix T  <-- T

What are the possible ranks of M1, M2? (M3, M4 are full rank). We check: M1 is rank 0 (on the relevant points of the parameter space) if and only if M2 has rank 1 (the smallest possible). So we need to check: (rank M1, rank M2) = (0, 1), (0,2), (1,1), (1,2), (2,1), (2,2)). Of these,

    i38 : ideal M1 == minors(2, M2)

    o38 = true

Therefore the following cannot happen: (0, 2), (1, 1), (2, 1). Therefore the possible ranks are: (0, 1), (1,2), (2,2). The last one means there is maximal cancellation: this happens for an open set of the Hilbert scheme of 6 points. (0,1) means: no cancellation, whereas (1,2) means

$\phantom{WWWW} \begin{matrix} &0&1&2&3\\ \text{total:}&1&6&8&3\\ \text{0:}&1&\text{.}&\text{.}&\text{.}\\ \text{1:}&\text{.}&4&4&1\\ \text{2:}&\text{.}&2&4&2\\ \end{matrix},\quad \begin{matrix} &0&1&2&3\\ \text{total:}&1&5&6&2\\ \text{0:}&1&\text{.}&\text{.}&\text{.}\\ \text{1:}&\text{.}&4&3&\text{.}\\ \text{2:}&\text{.}&1&3&2\\ \end{matrix},\quad \begin{matrix} &0&1&2&3\\ \text{total:}&1&4&5&2\\ \text{0:}&1&\text{.}&\text{.}&\text{.}\\ \text{1:}&\text{.}&4&2&\text{.}\\ \text{2:}&\text{.}&\text{.}&3&2\\ \end{matrix} $

We now compute the locus in $V(L)$ where the Betti diagram has no cancellation. This is a closed subscheme of $V(L)$, which is a closed subscheme of the Hilbert scheme. Notice that there are two components.

    i39 : L441 = trim(L + ideal M1);

    o39 : Ideal of T

    i40 : elapsedTime compsL441 = decompose L441;
     -- 1.25641s elapsed

    i41 : #compsL441

    o41 = 2

    i42 : compsL441/dim -- two components, of dimensions 14 and 16.

    o42 = {16, 14}

    o42 : List

    i43 : compsL441/dim == {16, 14}

    o43 = true

Both components are rational, and here are random points, one on each component:

    i44 : pta = randomPointOnRationalVariety compsL441_0

    o44 = | 32 -41 22 15 22 -46 43 42 -27 -27 -13 10 -24 19 -25 48 31 10 41 49 39
          -----------------------------------------------------------------------
          -28 -29 -10 -48 5 15 18 45 19 49 37 -32 34 26 -50 |

                   1       36
    o44 : Matrix kk  <-- kk

    i45 : Fa = sub(F, (vars S) | pta)

                  2              2                              2
    o45 = ideal (a  - 25b*c - 27c  + 10a*d - 46b*d + 22c*d + 32d , a*b - 48b*c +
          -----------------------------------------------------------------------
             2                              2   2              2
          41c  + 39a*d - 24b*d - 27c*d - 41d , b  + 26b*c + 18c  - 32a*d - 28b*d
          -----------------------------------------------------------------------
                       2                  2                              2     2
          + 48c*d + 43d , a*c + 37b*c + 5c  + 45a*d + 49b*d + 19c*d + 22d , b*c
          -----------------------------------------------------------------------
                         2         2        2        2      3   3
          + 19b*c*d - 29c d + 15a*d  + 31b*d  - 13c*d  + 15d , c  - 50b*c*d +
          -----------------------------------------------------------------------
             2         2        2        2      3
          49c d + 34a*d  - 10b*d  + 10c*d  + 42d )

    o45 : Ideal of S

    i46 : betti res Fa

                 0 1 2 3
    o46 = total: 1 6 8 3
              0: 1 . . .
              1: . 4 4 1
              2: . 2 4 2

    o46 : BettiTally

    i47 : netList decompose Fa -- this one is 5 points on a plane, and another point

          +----------------------------------------------------------------------------------------------+
    o47 = |ideal (c + 45d, b - 34d, a - 35d)                                                             |
          +----------------------------------------------------------------------------------------------+
          |ideal (c + 18d, b - 12d, a + 47d)                                                             |
          +----------------------------------------------------------------------------------------------+
          |                                   2                      2   2      2                      2 |
          |ideal (a + 37b + 5c - 4d, b*c - 13c  + 45b*d - 28c*d - 29d , b  - 48c  - 14b*d + 27c*d - 38d )|
          +----------------------------------------------------------------------------------------------+

    i48 : CFa = minimalPrimes Fa

    o48 = {ideal (c + 45d, b - 34d, a - 35d), ideal (c + 18d, b - 12d, a + 47d),
          -----------------------------------------------------------------------
                                             2                      2   2      2
          ideal (a + 37b + 5c - 4d, b*c - 13c  + 45b*d - 28c*d - 29d , b  - 48c
          -----------------------------------------------------------------------
                               2
          - 14b*d + 27c*d - 38d )}

    o48 : List

    i49 : lin = CFa_1_0 -- a linear form, defining a plane.

    o49 = c + 18d

    o49 : S

    i50 : CFa/degree

    o50 = {1, 1, 4}

    o50 : List

    i51 : CFa/(I -> lin % I == 0) -- so 5 points on the plane.

    o51 = {false, true, false}

    o51 : List

    i52 : degree(Fa : (Fa : lin))  -- somewhat simpler(?) way to see the ideal of the 5 points

    o52 = 1

    i53 : ptb = randomPointOnRationalVariety compsL441_1

    o53 = | -31 -3 -29 -17 -21 5 -32 33 -24 2 26 -26 -45 -4 16 -22 2 -37 16 -23
          -----------------------------------------------------------------------
          -42 19 -29 21 7 2 17 9 -15 -9 -47 -13 0 38 47 21 |

                   1       36
    o53 : Matrix kk  <-- kk

    i54 : Fb = sub(F, (vars S) | ptb)

                  2             2                             2
    o54 = ideal (a  + 16b*c + 2c  - 26a*d + 5b*d - 29c*d - 31d , a*b + 7b*c +
          -----------------------------------------------------------------------
             2                             2   2             2
          16c  - 42a*d - 45b*d - 24c*d - 3d , b  + 47b*c + 9c  + 19b*d - 22c*d -
          -----------------------------------------------------------------------
             2                  2                             2     2
          32d , a*c - 13b*c + 2c  - 15a*d - 23b*d - 4c*d - 21d , b*c  - 9b*c*d -
          -----------------------------------------------------------------------
             2         2       2        2      3   3                2         2
          29c d + 17a*d  + 2b*d  + 26c*d  - 17d , c  + 21b*c*d - 47c d + 38a*d  +
          -----------------------------------------------------------------------
               2        2      3
          21b*d  - 37c*d  + 33d )

    o54 : Ideal of S

    i55 : betti res Fb

                 0 1 2 3
    o55 = total: 1 6 8 3
              0: 1 . . .
              1: . 4 4 1
              2: . 2 4 2

    o55 : BettiTally

    i56 : netList decompose Fb --

          +---------------------------------------------------------------+
    o56 = |ideal (c - 17d, b - 26d, a - 49d)                              |
          +---------------------------------------------------------------+
          |                                     3      2         2      3 |
          |ideal (b + 39c - 21d, a + 4c - 27d, c  + 43c d + 39c*d  - 15d )|
          +---------------------------------------------------------------+
          |                                    2             2            |
          |ideal (b + 8c + 40d, a + 5c - 33d, c  + 4c*d + 45d )           |
          +---------------------------------------------------------------+

    i57 : netList for x in subsets(decompose Fb, 3) list intersect(x#0, x#1, x#2)

          +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
          |                       2                             2   2             2                      2                  2                             2   2             2                             2   3                2         2        2        2      3     2               2         2       2        2      3 |
    o57 = |ideal (a*c - 13b*c + 2c  - 15a*d - 23b*d - 4c*d - 21d , b  + 47b*c + 9c  + 19b*d - 22c*d - 32d , a*b + 7b*c + 16c  - 42a*d - 45b*d - 24c*d - 3d , a  + 16b*c + 2c  - 26a*d + 5b*d - 29c*d - 31d , c  + 21b*c*d - 47c d + 38a*d  + 21b*d  - 37c*d  + 33d , b*c  - 9b*c*d - 29c d + 17a*d  + 2b*d  + 26c*d  - 17d )|
          +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

    i58 : pt0 = randomPointOnRationalVariety(compsL441_0)

    o58 = | 49 0 -30 -36 -1 0 -9 17 37 29 34 13 19 8 -10 -47 21 -24 -44 42 9 46
          -----------------------------------------------------------------------
          15 -29 35 -40 18 -22 -21 -42 39 -2 -33 -23 -13 -18 |

                   1       36
    o58 : Matrix kk  <-- kk

    i59 : pt1 = randomPointOnRationalVariety(compsL441_1)

    o59 = | -5 -40 -6 3 -28 -8 -25 15 15 29 26 -37 11 -14 31 14 1 -50 43 37 5 50
          -----------------------------------------------------------------------
          10 3 -3 -35 -18 32 -7 -15 33 46 0 21 -49 3 |

                   1       36
    o59 : Matrix kk  <-- kk

We compute the ideal of the corresponding zero dimensional scheme with length 6, corresponding to the points pt0, pt1 in Hilb.

    i60 : I0 = sub(sub(F, (vars ring F) | sub(pt0, ring F)), S)

                  2              2                      2                   2
    o60 = ideal (a  - 10b*c + 29c  + 13a*d - 30c*d + 49d , a*b + 35b*c - 44c  +
          -----------------------------------------------------------------------
                                 2              2                             2
          9a*d + 19b*d + 37c*d, b  - 13b*c - 22c  - 33a*d + 46b*d - 47c*d - 9d ,
          -----------------------------------------------------------------------
                          2                           2     2                2
          a*c - 2b*c - 40c  - 21a*d + 42b*d + 8c*d - d , b*c  - 42b*c*d + 15c d +
          -----------------------------------------------------------------------
               2        2        2      3   3                2         2        2
          18a*d  + 21b*d  + 34c*d  - 36d , c  - 18b*c*d + 39c d - 23a*d  - 29b*d
          -----------------------------------------------------------------------
                 2      3
          - 24c*d  + 17d )

    o60 : Ideal of S

    i61 : I1 = sub(sub(F, (vars ring F) | sub(pt1, ring F)), S)

                  2              2                           2                  2
    o61 = ideal (a  + 31b*c + 29c  - 37a*d - 8b*d - 6c*d - 5d , a*b - 3b*c + 43c
          -----------------------------------------------------------------------
                                      2   2              2
          + 5a*d + 11b*d + 15c*d - 40d , b  - 49b*c + 32c  + 50b*d + 14c*d -
          -----------------------------------------------------------------------
             2                   2                             2     2
          25d , a*c + 46b*c - 35c  - 7a*d + 37b*d - 14c*d - 28d , b*c  - 15b*c*d
          -----------------------------------------------------------------------
               2         2      2        2     3   3               2         2
          + 10c d - 18a*d  + b*d  + 26c*d  + 3d , c  + 3b*c*d + 33c d + 21a*d  +
          -----------------------------------------------------------------------
              2        2      3
          3b*d  - 50c*d  + 15d )

    o61 : Ideal of S

    i62 : betti res I0

                 0 1 2 3
    o62 = total: 1 6 8 3
              0: 1 . . .
              1: . 4 4 1
              2: . 2 4 2

    o62 : BettiTally

    i63 : betti res I1

                 0 1 2 3
    o63 = total: 1 6 8 3
              0: 1 . . .
              1: . 4 4 1
              2: . 2 4 2

    o63 : BettiTally

    i64 : netList decompose I0

          +---------------------------------------------------+
    o64 = |ideal (c - 21d, b - 26d, a - 50d)                  |
          +---------------------------------------------------+
          |ideal (c - 49d, b - 33d, a - 30d)                  |
          +---------------------------------------------------+
          |ideal (c + 41d, b + 33d, a - 35d)                  |
          +---------------------------------------------------+
          |ideal (c + d, b + 40d, a - 5d)                     |
          +---------------------------------------------------+
          |                                    2            2 |
          |ideal (b + c - 47d, a - 38c - 17d, c  + 4c*d - 8d )|
          +---------------------------------------------------+

    i65 : netList decompose I1

          +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
          |                        2                             2   2              2                      2                  2                             2   2              2                           2   3               2         2       2        2      3     2                2         2      2        2     3 |
    o65 = |ideal (a*c + 46b*c - 35c  - 7a*d + 37b*d - 14c*d - 28d , b  - 49b*c + 32c  + 50b*d + 14c*d - 25d , a*b - 3b*c + 43c  + 5a*d + 11b*d + 15c*d - 40d , a  + 31b*c + 29c  - 37a*d - 8b*d - 6c*d - 5d , c  + 3b*c*d + 33c d + 21a*d  + 3b*d  - 50c*d  + 15d , b*c  - 15b*c*d + 10c d - 18a*d  + b*d  + 26c*d  + 3d )|
          +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

    i66 : L430 = (trim minors(2, M1)) + groebnerStratum F;

    o66 : Ideal of T

    i67 : C = res(I, FastNonminimal => true)

           1      4      5      2
    o67 = S  <-- S  <-- S  <-- S  <-- 0

          0      1      2      3      4

    o67 : ChainComplex

    i68 : betti C

                 0 1 2 3
    o68 = total: 1 4 5 2
              0: 1 . . .
              1: . 4 2 .
              2: . . 3 2

    o68 : BettiTally

    i69 : m1 = submatrixByDegrees(C.dd_2, {3}, {3})

    o69 = 0

                        2
    o69 : Matrix 0 <-- S

    i70 : m2 = submatrixByDegrees(C.dd_3, {4}, {4})

    o70 = 0

                  3
    o70 : Matrix S  <-- 0

In this example, m1 and m2 both have full rank, and therefore we can cancel adjacent numbers to get a minimal resolution (it must be minimal, as by homogeneity, there are no non-zero elements of degree 0 in the resulting resolution.

    i71 : minimalBetti I

                 0 1 2 3
    o71 = total: 1 4 5 2
              0: 1 . . .
              1: . 4 2 .
              2: . . 3 2

    o71 : BettiTally

Schreyer's algorithm implies that if we have a Groebner basis of an ideal with gin $B$, then we can construct a nonminimal resolution of $S/I$ whose Betti table matches that of $B$. This will be nonminimal, therefore can be pruned to a free resolution by taking any non-zero scalars that appear as entries in the resolution, and performing linear algebra to remove that entry, its row and column, and the corresponding column in the previous matrix then we still have a free resolution. Continuing in this way, we obtain a minimal resolution.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/QuaternaryQuartics/Appendix2.m2:304:0.