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

getGraph -- compute the graph of the bi-dominant Gorenstein linkage correspondences.

Synopsis

Description

We say that two Hilbert schemes Hd and He of reduced points in P3 have a dominant Gorenstein linkage correspondence if the etale cover HCG=XuY of the Hilbert scheme HCG of cones over arithmetically Gorenstein sets of d+e points dominates Hd and He. Let G be the graph whose vertices are natural numbers, and whose edges are dominant Gorenstein linkage correspondences. We compute the edges of G. For details, see Twenty Points in P^3.

There are precisely 4 nontrivial connected components of G: 1,...,33,37,38, 34,36, 35 and 44,45,46,47, with edges including loops as given below. In particular, we conclude that d general points of degree d with 1 ≤d ≤33, or with d = 37 or d = 38, are glicci.

The following sequence records the graph that could be produced by running the programs in the this package, and places it into the file "bidominanceGraph.dot"

i1 : G={(1, 1), (2, 1), (2, 2), (2, 2), (3, 1), (3, 3), (3, 2), (4, 1), (4, 4),(5, 3), (6, 2), (6, 5), (6, 6),
        (7, 1), (7, 5), (7, 6), (7, 7), (8, 4), (8, 8), (8, 5), (8, 6), (9, 4), (9, 9), (9, 5), (10, 4), (10, 10),
        (11, 3), (11, 9), (12, 8), (13, 7), (14, 6), (14, 13), (14, 14), (15, 12), (15, 13), (15, 14), (15, 15),
        (16, 11), (16, 12), (16, 13), (16, 14), (17, 10), (17, 11), (17, 12), (17, 13), (18, 10), (18, 18), (18, 11), (18, 12),
        (19, 10), (19, 19), (19, 11), (20, 10), (20, 20), (21, 9), (21, 19), (22, 18), (23, 17), (24, 16), (25, 15), (26, 25),
        (26, 26), (27, 24), (27, 25), (27, 26), (27, 27), (28, 24), (28, 25), (28, 26), (28, 27), (29, 23), (29, 24), (29, 25),
        (29, 26), (30, 23), (30, 24), (30, 25), (31, 23), (31, 24), (32, 32), (32, 23), (33, 33), (33, 22), (34, 34),
        (35, 35), (36, 34), (37, 33), (38, 32), (45, 44), (45, 45), (46, 44), (46, 45), (47, 44)};

We do not compute the table during the installation because this takes more than 48 minutes (on a certain MacBook pro). The function getGraph prints some timings and intermediate results. A lot of time is used for the last edge (47, 44), which used 28 minutes.

The following h-vectors occur for bi-dominant correspondences:

i2 : listOfhVectors={{1, 1}, {1, 1, 1}, {1, 1, 1, 1}, {1, 2, 1}, {1, 2, 2, 1}, {1, 3, 1}, {1, 3, 3, 1},
        {1, 3, 3, 3, 1}, {1, 3, 4, 3, 1}, {1, 3, 5, 3, 1}, {1, 3, 6, 3, 1}, {1, 3, 4, 4, 3, 1}, {1, 3, 5, 5, 3, 1},
        {1, 3, 6, 6, 3, 1}, {1, 3, 6, 7, 6, 3, 1}, {1, 3, 6, 8, 6, 3, 1}, {1, 3, 6, 9, 6, 3, 1}, {1, 3, 6, 10, 6, 3, 1},
        {1, 3, 6, 8, 8, 6, 3, 1}, {1, 3, 6, 9, 9, 6, 3, 1}, {1, 3, 6, 10, 10, 6, 3, 1}, {1, 3, 6, 10, 11, 10, 6, 3, 1},
        {1, 3, 6, 10, 12, 10, 6, 3, 1}, {1, 3, 6, 10, 13, 10, 6, 3, 1}, {1, 3, 6, 10, 14, 10, 6, 3, 1}, {1, 3, 6, 10, 15, 10, 6, 3, 1},
        {1, 3, 6, 10, 12, 12, 10, 6, 3, 1}, {1, 3, 6, 10, 13, 13, 10, 6, 3, 1}, {1, 3, 6, 10, 14, 14, 10, 6, 3, 1},
        {1, 3, 6, 10, 15, 15, 10, 6, 3, 1}, {1, 3, 6, 10, 15, 19, 15, 10, 6, 3, 1}, {1, 3, 6, 10, 15, 20, 15, 10, 6, 3, 1},
        {1, 3, 6, 10, 15, 21, 15, 10, 6, 3, 1}};
i3 : #listOfhVectors

o3 = 33
i4 : apply(listOfhVectors,hV->sum hV)

o4 = {2, 3, 4, 4, 6, 5, 8, 11, 12, 13, 14, 16, 18, 20, 27, 28, 29, 30, 36,
     ------------------------------------------------------------------------
     38, 40, 51, 52, 53, 54, 55, 64, 66, 68, 70, 89, 90, 91}

o4 : List

To illustrate, we run the program with b=1:

i5 : S=ZZ/10009[x_0..x_3]

o5 = S

o5 : PolynomialRing
i6 : G=getGraph(S,1)
     -- used 0.00612119 seconds
((1, {1, 1}, 1), true)
     -- used 0.00655445 seconds
((2, {1, 1, 1}, 1), true)
     -- used 0.00644644 seconds
((2, {1, 1, 1, 1}, 2), true)
     -- used 0.00622277 seconds
((2, {1, 2, 1}, 2), true)
     -- used 0.00699182 seconds
((3, {1, 2, 1}, 1), true)
     -- used 0.00766426 seconds
((3, {1, 2, 2, 1}, 3), true)
     -- used 0.0255136 seconds
((3, {1, 3, 1}, 2), true)
     -- used 0.0135536 seconds
((4, {1, 3, 1}, 1), true)
     -- used 0.00936391 seconds
((4, {1, 3, 3, 1}, 4), true)
     -- used 0.00869416 seconds
((5, {1, 3, 3, 1}, 3), true)
     -- used 0.00760605 seconds
((6, {1, 3, 3, 1}, 2), true)
     -- used 0.00662558 seconds
((7, {1, 3, 3, 1}, 1), true)

o6 = {(1, 1), (2, 1), (2, 2), (2, 2), (3, 1), (3, 3), (3, 2), (4, 1), (4, 4),
     ------------------------------------------------------------------------
     (5, 3), (6, 2), (7, 1)}

o6 : List

Ways to use getGraph :

  • getGraph(List)
  • getGraph(Ring,ZZ)