Hilbert functions of ideals of n < 9 fat points in the plane.
Let I(Z) be the ideal defining the subscheme Z
of P2, where Z is a fat point scheme
supported at any given configuration of n < 9 points where
the points are assigned multiplicities m_1, ..., m_n.
This web form prints out the hilbert function of k[x,y,z]/I(Z).
(Only m_i < 21 is allowed for this web form. You can
get results for larger m by downloading and compiling the program file
that produces the output and running it on your own computer.
A C version is at:
The script does not do a calculation involving an ideal
for some actual set of points; it applies a theorem.
Thus the result does not give experimental data; it gives the actual hilbert functions for the various configurations.
(In particular, the script does not do
a Grobner basis calculation of any kind, and so it is in
principle incredibly fast. Using it over the web can involve
Note that not every configuration can occur over every
algebraically closed field. Sometimes it depends on the characteristic.
For n=8, there are three configurations that do not occur over any field.
These are configurations 30, 45 and 96. But the input allows
you to choose these configurations. The algorithm which outputs the
hilbert function can still be run for these cases; the output shows
For n <= 2, there is only one configuration.
For n = 3, there are two, listed in the following order.
Choose configuration 1 to get 3 general points,
or choose configuration 2 for three collinear points.
For n = 4, there are three, with the following order: four general points;
three points on a line and one off;
and all four on a line.
For n = 5, there are five, ordered as follows: five general points;
three points on a line and two more general points;
four on a line and one off;
all five on a line; and
two points on each of two lines with the fifth point
where the lines meet.
For n=6, 7 or 8, visit the following sites to see the configurations.
The output given here lists the configurations in the same order
as on the pages linked to below:
The output first echos your input.
If you selected a verbosity of 0 then
the lines after that will look like:
Config 4: 1 3 6 9 12 15 18 20 22 24 26 27 28 29 30 30 30 30 30
This means for configuration 4, the value of the hilbert function
of k[x,y,z]/I(Z) in degree 0 is 1, in degree 1 it's 3, etc.,
and the output continues for each degree in turn
until the maximum value of the hilbert function
is reached; that maximum value is always \sum_i m_i(m_i+1)/2.
If your verbosity is 1 then the output also includes
a list of all curves of negative self-intersection
for the specified configuration type, the degree in which
the ideal of the fat points is first fixed component free,
and then the values of the hilbert function of the ideal I(Z)
and the quotient k[x,y,z]/I(Z) are listed in each degree
starting from the last degree for which the hilbert function of I(Z) is 0
up to a few past the first degree in which the hilbert function of
k[x,y,z]/I(Z) attains its maximum value.