|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
This subsection contains tests for several important properties of coherent
sheaves. It contains an isomorphism test that, combined with DivisorToSheaf,
can be used as a test for linear equivalence of Cartier divisors.
IsLocallyFree(S) : ShfCoh -> BoolElt, RngIntElt
S is a sheaf on ordinary projective scheme X. Returns whether S is a locally
free sheaf on X and, if so, also returns its rank.
The assumption here, which again is not checked, is that X is equidimensional
(all of its primary components have the same dimension), locally Cohen-Macaulay
and connected. The last is to guarantee that S has the same rank everywhere if
it is locally free.
The equidimensional and locally Cohen-Macaulay assumptions are in order that
we can use cohomological duality and Serre's criterion over a Noether normalisation
R0 for the coordinate ring of X. The assumptions and standard flatness properties
mean that S is locally free over X iff it is locally free as a sheaf over
P0 = Proj(R0), which is just a full projective space. Serre's criterion (see
[Ser55]) says that the latter is true iff all intermediate cohomology
rings Hi(P0, S(q)) vanish for q ll 0. If Mmax is the maximal graded
module of S, this translates to all intermediate Ext(Mmax, R0) R0-modules
being finite length, which in turn translates to the dual complex to the
minimal free resolution of Mmax as an R0-module having finite-length homology
groups at all intermediate places. Rather than actually computing homology modules,
we can further translate this condition into a number of equality tests for Hilbert
polynomials of cokernels of the maps between free modules in the dual complex. This
gives the final algorithm used here, which seems to be fairly fast and efficient in
practise.
IsIsomorphicWithTwist(S,T) : ShfCoh, ShfCoh -> BoolElt, RngIntElt, ShfHom
For S and T coherent sheaves on the same base scheme X, returns whether
S is isomorphic to T or (for the second intrinsic) to a Serre twist T(d)
of T. In either case, an isomorphism returns, if one exists and for the
second intrinsic,the twist d is also returned as the second return value (so
the isomorphism is between S and T(d)).
For the implementation, we first do a quick Hilbert polynomial check and then a
Betti number check for the maximal modules Mmax and Nmax of S and T.
This gives necessary conditions for an isomorphism and the possible d in the
"with twist" case. Then we look for an isomorphism in the finite dimensional space
of homomorphisms between Mmax and Nmax. We could have chosen to work
with the homomorphisms between the truncated modules with gradings ≥N for
some N greater than or equal to the regularity of any defining modules for
the two sheaves, but these have much larger presentations in general so the
computation of homomorphisms is slower.
To look for isomorphisms, we look at the "zero degree" subblocks of the matrices
giving a basis to the space of all homomorphisms. This reduces the problem to
determining whether there is an invertible matrix in a space of n x n matrices
over the base field. This is a known difficult problem in general and currently our
implementation is rather weak at this point. We hope to improve it for future
releases.
S is a sheaf on ordinary projective scheme X. Returns whether the maximal
graded module Mmax of S is a Cohen-Macaulay module over the coordinate ring
of X.
X is called arithmetically Cohen-Macaulay iff its coordinate ring is
a Cohen-Macaulay ring. This is then true iff its coordinate ring is equal to
the maximal module of OX and the intrinsic returns true for OX.
This is a fairly straightforward computation once Mmax has been determined.
If we already know the structure of Mmax as a module over a Noether
normalisation of the coordinate ring of X, it is an immediate freeness
check. Otherwise it is a straightforward depth calculation from a minimal
free resolution of Mmax as a graded module over the coordinate ring of
the ambient of X.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|