Description
Divisor is a package for working with (Q/R)-Weil divisors on
normal affine and projective varieties (equivalently, on commutative, normal and graded rings).
This package introduces a type
WeilDivisor which lets the user work with Weil divisors similar to the way one might in algebraic geometry. We highlight a few important functions below.
Useful functions:
- isCartier or isQCartier can let you determine if a divisor is Cartier or if a power is Cartier.
- isVeryAmple lets you check if a divisor is very ample.
- baseLocus lets you compute the base locus of the complete linear system corresponding to a divisor on a projective variety.
- mapToProjectiveSpace returns the map to projective space determined by the complete linear system determined by the divisor.
- canonicalDivisor lets you compute the canonical divisor on some affine or projective variety.
- ramificationDivisor lets you compute the relative canonical divisor of a finite map varieties.
This package also includes some functions for interacting with ideals and modules which might be independently useful.
- embedAsIdeal embeds a rank one module as an ideal.
- reflexify computes the reflexification, Hom(Hom(M, R), R) of a module M or ideal.
- reflexivePower computes the reflexification of a power of an ideal quickly.
- torsionSubmodule find the torsion submodule of a module.
We emphasize once more that the functions in this package might produce unexpected results on non-normal rings.
Acknowledgements:The authors would like to thank Tommaso de Fernex, David Eisenbud, Daniel Grayson, Anurag Singh, Greg Smith, Mike Stillman and the referee for useful conversations and comments on the development of this package.