M is assumed to be a Clifford module with a Morita bundle F_u, i.e., associated to a maximal isotropic subspace u.
Let G be a coherent sheaf on a hyperelliptic curve E, and N be the corresponding module over CI=P/ideal(q1,q2). Using the Tate resolution of u in a complete intersection of 2 quadrics, one can compute the graded Betti numbers of N by the rank of cohomology groups of G twisted by the Morita bundle F_u. In particular, an Ulrich module on CI corresponds to a sheaf G on E such that G \otimes F_u is an Ulrich bundle on E.
From this perspective, Eisenbud and Schreyer conjectured that it is the case when G is a general vector bundle of rank \ge 2 of suitable degree.
searchUlrich looks for a candidate G of rank 2 on E and returns a module on S supported on a CI V(q_1,q_2) \subset PP^{2g+1}.
i1 : kk=ZZ/101; |
i2 : g=2; |
i3 : rNP=randNicePencil(kk,g); |
i4 : S=rNP.qqRing; |
i5 : R=rNP.baseRing; |
i6 : qq=rNP.quadraticForm; |
i7 : qs=apply(2,i->diff(S_(2*g+2+i),qq)) 2 2 2 2 o7 = {x y + x y - z , 35x + 39x x - 40x - 13x y + 44x y + 39x y - 37x y - 30x z + 42x z + 29y z + 48y z - 44z + 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 ---------------------------------------------------------------------------------------------------------------------------- 2 x z - 43x z - 6y z + 23y z + 31z z - 38z } 0 2 1 2 0 2 1 2 1 2 2 o7 : List |
i8 : Mu1=rNP.matFactu1; 8 8 o8 : Matrix S <--- S |
i9 : Mu2=rNP.matFactu2; 8 8 o9 : Matrix S <--- S |
i10 : M=cliffordModule(Mu1,Mu2,R) o10 = CliffordModule{...6...} o10 : CliffordModule |
i11 : elapsedTime Ulr = searchUlrich(M,S); -- 1.66214 seconds elapsed |
i12 : betti res Ulr 0 1 2 o12 = total: 8 16 8 0: 8 16 8 o12 : BettiTally |
i13 : ann Ulr == ideal qs o13 = true |
searchUlrich uses the method randomLineBundle, so the ground field kk has to be finite.
The object searchUlrich is a method function.