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 satifying 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 |
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 |
The object spaceCurve is an object of class RandomObject.