# spaceCurve -- Generates the ideal of a random space curve of genus g and degree d

## Synopsis

• Usage:
(random spaceCurve)(d,g,R)
• Inputs:
• d, an integer, the desired degree
• g, an integer, the desired genus
• R, , homogeneous coordinate ring of $\PP^{ 3}$
• Outputs:

## Description

Creates the ideal of a random curve of degree d and genus g via the construction of its expected Hartshorne-Rao module, which should have diameter $\le 3$. The construction is implemented for non-degenerate, linearly normal curves C of maximal rank with O_C(2) non-special, where moreover both C and its Hartshorne-Rao module have a "natural" free resolution.

There are the following options:

* Attempts => ... a nonnegative integer or infinity (default) that limits the maximal number of attempts for the construction of the curve

* Certify => ... true or false (default) checks whether the output is of correct dimension and the constructed curve is smooth and actually has the desired degree d and genus g

There are 63 possible families satisfying the four conditions above. Our method can provide random curves in 60 of these families, simultaneously proving the unirationality of each of these 60 components of the Hilbert scheme.

If there is a construction can be checked with knownUnirationalComponentOfSpaceCurves.

 i1 : setRandomSeed("alpha"); i2 : R=ZZ/20011[x_0..x_3]; i3 : d=10;g=7; i5 : betti res (J=(random spaceCurve)(d,g,R)) 0 1 2 3 o5 = total: 1 9 12 4 0: 1 . . . 1: . . . . 2: . . . . 3: . 1 . . 4: . 8 12 4 o5 : BettiTally i6 : degree J==d and genus J == g o6 = true

We verify that the Hilbert scheme has (at least) 60 components consisting of smooth non-degenerate curves with $h^1 O_C(2)=0$. The degree d, genus g and Brill-Noether number $\rho$ of these families and the generic Betti tables are given below.

 i7 : setRandomSeed("alpha"); i8 : kk=ZZ/20011; i9 : R=kk[x_0..x_3]; i10 : L=flatten apply(toList(0..40),g->apply(toList(3..30),d->(d,g))); i11 : halpenBound = d ->(d/2-1)^2; i12 : L = select(L,(d,g) -> g <= halpenBound d and knownUnirationalComponentOfSpaceCurves(d,g)); i13 : #L o13 = 60 i14 : hashTable apply(L,(d,g) -> ( J = (random spaceCurve)(d,g,R); assert (degree J == d and genus J == g); (d,g) => g-4*(g+3-d) => betti res J)) / 0 1 2\ o14 = HashTable{(3, 0) => 0 => |total: 1 3 2| } | 0: 1 . .| \ 1: . 3 2/ / 0 1 2 3\ (4, 0) => 4 => |total: 1 4 4 1| | 0: 1 . . .| | 1: . 1 . .| \ 2: . 3 4 1/ / 0 1 2\ (4, 1) => 1 => |total: 1 2 1| | 0: 1 . .| | 1: . 2 .| \ 2: . . 1/ / 0 1 2 3\ (5, 1) => 5 => |total: 1 5 5 1| | 0: 1 . . .| | 1: . . . .| \ 2: . 5 5 1/ / 0 1 2\ (5, 2) => 2 => |total: 1 3 2| | 0: 1 . .| | 1: . 1 .| \ 2: . 2 2/ / 0 1 2 3\ (6, 0) => 12 => |total: 1 7 9 3| | 0: 1 . . .| | 1: . . . .| | 2: . 1 . .| \ 3: . 6 9 3/ / 0 1 2 3\ (6, 1) => 9 => |total: 1 5 6 2| | 0: 1 . . .| | 1: . . . .| | 2: . 2 . .| \ 3: . 3 6 2/ / 0 1 2\ (6, 3) => 3 => |total: 1 4 3| | 0: 1 . .| | 1: . . .| \ 2: . 4 3/ / 0 1 2\ (6, 4) => 0 => |total: 1 2 1| | 0: 1 . .| | 1: . 1 .| | 2: . 1 .| \ 3: . . 1/ / 0 1 2 3\ (7, 0) => 16 => |total: 1 6 7 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 6 4 .| \ 4: . . 3 2/ / 0 1 2 3\ (7, 1) => 13 => |total: 1 7 7 1| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 7 7 .| \ 4: . . . 1/ / 0 1 2 3\ (7, 2) => 10 => |total: 1 8 10 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| \ 3: . 8 10 3/ / 0 1 2 3\ (7, 4) => 4 => |total: 1 4 4 1| | 0: 1 . . .| | 1: . . . .| | 2: . 2 . .| \ 3: . 2 4 1/ / 0 1 2\ (7, 5) => 1 => |total: 1 3 2| | 0: 1 . .| | 1: . . .| | 2: . 3 1| \ 3: . . 1/ / 0 1 2\ (7, 6) => -2 => |total: 1 3 2| | 0: 1 . .| | 1: . 1 .| | 2: . . .| \ 3: . 2 2/ / 0 1 2 3\ (8, 2) => 14 => |total: 1 5 7 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 4 . .| \ 4: . 1 7 3/ / 0 1 2 3\ (8, 3) => 11 => |total: 1 5 6 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 5 2 .| \ 4: . . 4 2/ / 0 1 2 3\ (8, 4) => 8 => |total: 1 6 6 1| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 6 5 .| \ 4: . . 1 1/ / 0 1 2 3\ (8, 5) => 5 => |total: 1 7 8 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| \ 3: . 7 8 2/ / 0 1 2 3\ (8, 6) => 2 => |total: 1 5 5 1| | 0: 1 . . .| | 1: . . . .| | 2: . 1 . .| \ 3: . 4 5 1/ / 0 1 2\ (8, 7) => -1 => |total: 1 3 2| | 0: 1 . .| | 1: . . .| | 2: . 2 .| \ 3: . 1 2/ / 0 1 2 3\ (9, 2) => 18 => |total: 1 12 17 6| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| \ 4: . 12 17 6/ / 0 1 2 3\ (9, 3) => 15 => |total: 1 10 14 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 1 . .| \ 4: . 9 14 5/ / 0 1 2 3\ (9, 4) => 12 => |total: 1 8 11 4| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 2 . .| \ 4: . 6 11 4/ / 0 1 2 3\ (9, 5) => 9 => |total: 1 6 8 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 3 . .| \ 4: . 3 8 3/ / 0 1 2 3\ (9, 6) => 6 => |total: 1 4 5 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 4 . .| \ 4: . . 5 2/ / 0 1 2 3\ (9, 8) => 0 => |total: 1 6 6 1| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| \ 3: . 6 6 1/ / 0 1 2\ (9, 9) => -3 => |total: 1 4 3| | 0: 1 . .| | 1: . . .| | 2: . 1 .| \ 3: . 3 3/ / 0 1 2 3\ (10, 6) => 10 => |total: 1 11 15 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| \ 4: . 11 15 5/ / 0 1 2 3\ (10, 7) => 7 => |total: 1 9 12 4| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 1 . .| \ 4: . 8 12 4/ / 0 1 2 3\ (10, 8) => 4 => |total: 1 7 9 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 2 . .| \ 4: . 5 9 3/ / 0 1 2 3\ (10, 9) => 1 => |total: 1 5 6 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 3 . .| \ 4: . 2 6 2/ / 0 1 2\ (10, 11) => -5 => |total: 1 5 4| | 0: 1 . .| | 1: . . .| | 2: . . .| \ 3: . 5 4/ / 0 1 2 3\ (11, 8) => 8 => |total: 1 8 9 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 8 7 .| \ 5: . . 2 2/ / 0 1 2 3\ (11, 9) => 5 => |total: 1 9 10 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 9 10 1| \ 5: . . . 1/ / 0 1 2 3\ (11, 10) => 2 => |total: 1 10 13 4| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| \ 4: . 10 13 4/ / 0 1 2 3\ (11, 11) => -1 => |total: 1 8 10 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 1 . .| \ 4: . 7 10 3/ / 0 1 2 3\ (11, 13) => -7 => |total: 1 4 4 1| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 3 . .| \ 4: . 1 4 1/ / 0 1 2 3\ (12, 9) => 9 => |total: 1 8 12 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 4 . .| \ 5: . 4 12 5/ / 0 1 2 3\ (12, 10) => 6 => |total: 1 6 9 4| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 5 . .| \ 5: . 1 9 4/ / 0 1 2 3\ (12, 11) => 3 => |total: 1 6 8 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 6 2 .| \ 5: . . 6 3/ / 0 1 2 3\ (12, 12) => 0 => |total: 1 7 8 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 7 5 .| \ 5: . . 3 2/ / 0 1 2 3\ (12, 13) => -3 => |total: 1 8 8 1| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 8 8 .| \ 5: . . . 1/ / 0 1 2 3\ (12, 14) => -6 => |total: 1 9 11 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| \ 4: . 9 11 3/ / 0 1 2 3\ (12, 15) => -9 => |total: 1 7 8 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . 1 . .| \ 4: . 6 8 2/ / 0 1 2 3\ (13, 12) => 4 => |total: 1 11 16 6| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 2 . .| \ 5: . 9 16 6/ / 0 1 2 3\ (13, 13) => 1 => |total: 1 9 13 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 3 . .| \ 5: . 6 13 5/ / 0 1 2 3\ (13, 14) => -2 => |total: 1 7 10 4| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 4 . .| \ 5: . 3 10 4/ / 0 1 2 3\ (13, 15) => -5 => |total: 1 5 7 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 5 . .| \ 5: . . 7 3/ / 0 1 2 3\ (13, 16) => -8 => |total: 1 6 7 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 6 3 .| \ 5: . . 4 2/ / 0 1 2 3\ (13, 17) => -11 => |total: 1 7 7 1| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 7 6 .| \ 5: . . 1 1/ / 0 1 2 3\ (14, 15) => -1 => |total: 1 14 20 7| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . . . .| \ 5: . 14 20 7/ / 0 1 2 3\ (14, 16) => -4 => |total: 1 12 17 6| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 1 . .| \ 5: . 11 17 6/ / 0 1 2 3\ (14, 17) => -7 => |total: 1 10 14 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 2 . .| \ 5: . 8 14 5/ / 0 1 2 3\ (14, 18) => -10 => |total: 1 8 11 4| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 3 . .| \ 5: . 5 11 4/ / 0 1 2 3\ (14, 19) => -13 => |total: 1 6 8 3| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 4 . .| \ 5: . 2 8 3/ / 0 1 2 3\ (15, 20) => -12 => |total: 1 13 18 6| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . . . .| \ 5: . 13 18 6/ / 0 1 2 3\ (15, 21) => -15 => |total: 1 11 15 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . 1 . .| \ 5: . 10 15 5/ / 0 1 2 3\ (16, 23) => -17 => |total: 1 10 11 2| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . . . .| | 5: . 10 10 .| \ 6: . . 1 2/ / 0 1 2 3\ (17, 25) => -19 => |total: 1 7 11 5| | 0: 1 . . .| | 1: . . . .| | 2: . . . .| | 3: . . . .| | 4: . . . .| | 5: . 6 . .| \ 6: . 1 11 5/ o14 : HashTable