Macaulay2 » Documentation
Packages » PencilsOfQuadrics :: searchUlrich
next | previous | forward | backward | up | index | toc

searchUlrich -- searching an Ulrich module of smallest possible rank

Synopsis

Description

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                             
o7 = {x y  + x y  - z , 35x  + 39x x  - 40x  - 13x y  + 44x y  + 39x y  -
       0 0    1 1    1     0      0 1      1      0 0      1 0      0 1  
     ------------------------------------------------------------------------
                                                     2                  
     37x y  - 30x z  + 42x z  + 29y z  + 48y z  - 44z  + x z  - 43x z  -
        1 1      0 1      1 1      0 1      1 1      1    0 2      1 2  
     ------------------------------------------------------------------------
                                  2
     6y z  + 23y z  + 31z z  - 38z }
       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.7234 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

Caveat

searchUlrich uses the method randomLineBundle, so the ground field kk has to be finite.

See also

Ways to use searchUlrich :

For the programmer

The object searchUlrich is a method function.