next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Divisor :: Divisor

Divisor -- a package for computations with divisors

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).

The first thing it does is introduce 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 given 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.

Authors

Version

This documentation describes version 0.2 of Divisor.

Source code

The source code from which this documentation is derived is in the file Divisor.m2.

Exports

  • Types
  • Functions and commands
    • applyToCoefficients -- apply a function to the coefficients of a divisor
    • baseLocus -- compute the locus where a graded module (or O(D) of a Weil divisor) is not globally generated
    • canonicalDivisor -- compute a canonical divisor of a ring
    • cleanSupport -- removes primes with coefficient zero from a divisor
    • divisor -- constructor for (Weil/Q/R)-divisors
    • dualize -- finds an ideal or module isomorphic to Hom(M, R)
    • embedAsIdeal -- embed a module as an ideal of a ring
    • findElementOfDegree -- find an element of a specified degree
    • gbs -- get the list of Groebner bases corresponding to the height-one primes in the support of a divisor
    • getLinearDiophantineSolution -- find a solution of the linear Diophantine equation Ax = b
    • getPrimeCount -- get the number of height-one primes in the support of the divisor
    • getPrimeDivisors -- get the list of prime divisors of a given divisor
    • idealPower -- compute the ideal generated by the generators of the given ideal raised to a power
    • isCartier -- whether a Weil divisor is Cartier
    • isDomain -- whether a ring is a domain
    • isEffective -- whether a divisor is effective
    • isLinearEquivalent -- whether two Weil divisors are linearly equivalent
    • isPrincipal -- whether a Weil divisor is globally principal
    • isQCartier -- whether m times a divisor is Cartier for any m from 1 to a fixed positive integer n1.
    • isQLinearEquivalent -- whether two rational divisors are linearly equivalent
    • isReduced -- whether a divisor is reduced
    • isReflexive -- whether an ideal or module is reflexive
    • isSmooth -- whether R mod the given ideal is regular
    • isSNC -- whether the divisor is simple normal crossings
    • isVeryAmple -- whether a divisor is very ample.
    • isWeilDivisor -- whether a rational/real divisor is a really Weil divisor
    • isZeroDivisor -- whether the divisor is the zero divisor
    • mapToProjectiveSpace -- compute the map to projective space associated with the global sections of a Cartier divisor
    • nonCartierLocus -- the non-Cartier locus of a Weil divisor
    • negativePart, see positivePart -- get the effective part or anti-effective part of a given divisor
    • positivePart -- get the effective part or anti-effective part of a given divisor
    • primes -- get the list of height-one primes in the support of a divisor
    • pullback -- pullback a divisor under a ring map
    • ramificationDivisor -- compute the ramification divisor of a finite inclusion of normal domains
    • reflexify -- calculate the double dual of an ideal or module Hom(Hom(M, R), R)
    • reflexivePower -- computes a reflexive power of an ideal in a normal domain
    • toQWeilDivisor -- create a Q-Weil divisor from a Weil divisor
    • torsionSubmodule -- create the torsion submodule of a given module
    • toRWeilDivisor -- create a R-divisor from a Q or Weil divisor
    • toWeilDivisor -- create a Weil divisor from a Q or R-divisor
    • zeroDivisor -- constructs the zero Weil divisor for the given ring
  • Methods
    • applyToCoefficients(BasicDivisor,Function), see applyToCoefficients -- apply a function to the coefficients of a divisor
    • baseLocus(WeilDivisor), see baseLocus -- compute the locus where a graded module (or O(D) of a Weil divisor) is not globally generated
    • - BasicDivisor, see BasicDivisor + BasicDivisor -- add or subtract two divisors, or negate a divisor
    • BasicDivisor + BasicDivisor -- add or subtract two divisors, or negate a divisor
    • BasicDivisor - BasicDivisor, see BasicDivisor + BasicDivisor -- add or subtract two divisors, or negate a divisor
    • ceiling(RWeilDivisor) -- produce a WeilDivisor whose coefficients are ceilings or floors of the given divisor
    • floor(RWeilDivisor), see ceiling(RWeilDivisor) -- produce a WeilDivisor whose coefficients are ceilings or floors of the given divisor
    • cleanSupport(BasicDivisor), see cleanSupport -- removes primes with coefficient zero from a divisor
    • coefficient(BasicList,BasicDivisor) -- get the coefficient of a given ideal for a fixed divisor
    • coefficient(Ideal,BasicDivisor) -- get the coefficient of a given ideal for a fixed divisor
    • coefficients(BasicDivisor) -- get the list of coefficients of a divisor
    • gbs(BasicDivisor), see gbs -- get the list of Groebner bases corresponding to the height-one primes in the support of a divisor
    • getPrimeCount(BasicDivisor), see getPrimeCount -- get the number of height-one primes in the support of the divisor
    • getPrimeDivisors(BasicDivisor), see getPrimeDivisors -- get the list of prime divisors of a given divisor
    • ideal(QWeilDivisor), see ideal(RWeilDivisor) -- calculate the corresponding module of a given divisor and represent it as an ideal
    • ideal(RWeilDivisor) -- calculate the corresponding module of a given divisor and represent it as an ideal
    • ideal(WeilDivisor), see ideal(RWeilDivisor) -- calculate the corresponding module of a given divisor and represent it as an ideal
    • isCartier(WeilDivisor), see isCartier -- whether a Weil divisor is Cartier
    • isEffective(BasicDivisor), see isEffective -- whether a divisor is effective
    • isHomogeneous(BasicDivisor) -- whether the divisor is graded (homogeneous)
    • isLinearEquivalent(WeilDivisor,WeilDivisor), see isLinearEquivalent -- whether two Weil divisors are linearly equivalent
    • isPrime(BasicDivisor) -- whether a divisor is prime
    • isPrincipal(WeilDivisor), see isPrincipal -- whether a Weil divisor is globally principal
    • isQCartier(ZZ,QWeilDivisor), see isQCartier -- whether m times a divisor is Cartier for any m from 1 to a fixed positive integer n1.
    • isQCartier(ZZ,WeilDivisor), see isQCartier -- whether m times a divisor is Cartier for any m from 1 to a fixed positive integer n1.
    • isQLinearEquivalent(QWeilDivisor,QWeilDivisor), see isQLinearEquivalent -- whether two rational divisors are linearly equivalent
    • isReduced(BasicDivisor), see isReduced -- whether a divisor is reduced
    • isSNC(BasicDivisor), see isSNC -- whether the divisor is simple normal crossings
    • isVeryAmple(WeilDivisor), see isVeryAmple -- whether a divisor is very ample.
    • isWeilDivisor(RWeilDivisor), see isWeilDivisor -- whether a rational/real divisor is a really Weil divisor
    • isWellDefined(BasicDivisor) -- whether a divisor is valid
    • isZeroDivisor(BasicDivisor), see isZeroDivisor -- whether the divisor is the zero divisor
    • mapToProjectiveSpace(WeilDivisor), see mapToProjectiveSpace -- compute the map to projective space associated with the global sections of a Cartier divisor
    • net(BasicDivisor) (missing documentation)
    • nonCartierLocus(WeilDivisor), see nonCartierLocus -- the non-Cartier locus of a Weil divisor
    • Number * BasicDivisor -- multiply a divisor a number
    • QQ * RWeilDivisor, see Number * BasicDivisor -- multiply a divisor a number
    • QQ * WeilDivisor, see Number * BasicDivisor -- multiply a divisor a number
    • RR * QWeilDivisor, see Number * BasicDivisor -- multiply a divisor a number
    • RR * RWeilDivisor, see Number * BasicDivisor -- multiply a divisor a number
    • OO RWeilDivisor -- calculate the corresponding module of a given divisor
    • negativePart(RWeilDivisor), see positivePart -- get the effective part or anti-effective part of a given divisor
    • positivePart(RWeilDivisor), see positivePart -- get the effective part or anti-effective part of a given divisor
    • primes(BasicDivisor), see primes -- get the list of height-one primes in the support of a divisor
    • pullback(RingMap,RWeilDivisor), see pullback -- pullback a divisor under a ring map
    • ring(BasicDivisor) -- get the ambient ring of a divisor
    • RWeilDivisor == RWeilDivisor -- whether two divisors are equal
    • toQWeilDivisor(QWeilDivisor), see toQWeilDivisor -- create a Q-Weil divisor from a Weil divisor
    • toQWeilDivisor(WeilDivisor), see toQWeilDivisor -- create a Q-Weil divisor from a Weil divisor
    • toRWeilDivisor(QWeilDivisor), see toRWeilDivisor -- create a R-divisor from a Q or Weil divisor
    • toRWeilDivisor(RWeilDivisor), see toRWeilDivisor -- create a R-divisor from a Q or Weil divisor
    • toRWeilDivisor(WeilDivisor), see toRWeilDivisor -- create a R-divisor from a Q or Weil divisor
    • toWeilDivisor(RWeilDivisor), see toWeilDivisor -- create a Weil divisor from a Q or R-divisor
    • trim(BasicDivisor) -- trims the ideals displayed to the user and removes primes with coefficient zero
  • Symbols
    • AmbRing -- an option used to tell divisor construction that a particular ambient ring is expected.
    • CoeffType -- an option used to tell divisor construction that a particular type of coefficients are expected.
    • IdealStrategy -- a valid value for the Strategy option in dualize
    • ModuleStrategy, see IdealStrategy -- a valid value for the Strategy option in dualize
    • NoStrategy, see IdealStrategy -- a valid value for the Strategy option in dualize
    • IsGraded -- an option used by numerous functions which tells it to treat the divisors as if we were working on the Proj of the ambient ring.
    • KnownCartier -- an option used to specify to certain functions that we know that the divisor is Cartier
    • KnownDomain -- an option used to specify to certain functions that we know that the ring is a domain
    • MTries -- an option used by embedAsIdeal how many times to try embedding the module as an ideal in a random way.
    • Primes -- a value for the option Strategy for the pullback method
    • ReturnMap -- an option for embedAsIdeal
    • Section -- an option used in a number of functions
    • Sheaves -- a value for the option Strategy for the pullback method
    • Unsafe -- an option used to tell functions whether not to do checks.