# hartshorneRaoModule -- Compute a random Hartshorne-Rao module

## Synopsis

• Usage:
(random hartshorneRaoModule)(e,HRao,R)
• Inputs:
• e, an integer, smallest degree of the Hartshorne-Rao module
• HRao, a list, desired dimensions of $H^1(\PP^3,I_C(n))$
• R, , coordinate ring of $\PP^{ 3}$
• Outputs:
• ,

## Description

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.

## Caveat

The list HRao needs only to contain the non-zero values of the Hilbert function.