Returns the Hartshorne-Rao Module over R with Hilbert function HRao and expected betti table. The constructions works only for many modules with diameter {\le} 3.
i1 : setRandomSeed("alpha");
|
i2 : R = ZZ/101[x_0..x_3]; |
i3 : betti res (random hartshorneRaoModule)(0,{1},R)
0 1 2 3 4
o3 = total: 1 4 6 4 1
0: 1 4 6 4 1
o3 : BettiTally
|
i4 : betti res (random hartshorneRaoModule)(0,{1,4},R)
0 1 2 3 4
o4 = total: 1 10 20 15 4
0: 1 . . . .
1: . 10 20 15 4
o4 : BettiTally
|
i5 : betti res (random hartshorneRaoModule)(0,{1,4,1},R)
0 1 2 3 4
o5 = total: 1 9 16 9 1
0: 1 . . . .
1: . 9 16 9 .
2: . . . . 1
o5 : BettiTally
|
i6 : betti res (random hartshorneRaoModule)(0,{1,4,2},R)
0 1 2 3 4
o6 = total: 1 8 12 7 2
0: 1 . . . .
1: . 8 12 3 .
2: . . . 4 2
o6 : BettiTally
|
There are the following options:
* Attempts => ... a nonnegative integer or infinity (default) that limits the maximal number of attempts for the construction of the module
* Certify => ... true or false (default) checks whether the constructed module has the expected betti Table
i7 : setRandomSeed("alpha");
|
i8 : betti res (random hartshorneRaoModule)(0,{1,3,2},R)
0 1 2 3 4
o8 = total: 1 5 9 7 2
0: 1 1 . . .
1: . 4 6 2 .
2: . . 3 5 2
o8 : BettiTally
|
i9 : expectedBetti({1,3,2,0,0,0,0},3)
0 1 2 3 4
o9 = total: 1 5 7 5 2
0: 1 1 . . .
1: . 4 6 . .
2: . . 1 5 2
o9 : BettiTally
|
i10 : null =!= (random hartshorneRaoModule)(0,{1,3,2},R)
o10 = true
|
i11 : null =!= (random hartshorneRaoModule)(0,{1,3,2},R,Certify=>true,Attempts=>1)
o11 = false
|
if Certify => true and Attempts=>infinity (the default!) are given in this example, the construction never stops.
The list HRao needs only to contain the non-zero values of the Hilbert function.
The object hartshorneRaoModule is an instance of the type RandomObject.