Divisor groups

AUTHORS:

  • David Kohel (2006): Initial version
  • Volker Braun (2010-07-16): Documentation, doctests, coercion fixes, bugfixes.
sage.schemes.generic.divisor_group.DivisorGroup(scheme, base_ring=None)

Return the group of divisors on the scheme.

INPUT:

  • scheme – a scheme.
  • base_ring – usually either \(\ZZ\) (default) or \(\QQ\). The coefficient ring of the divisors. Not to be confused with the base ring of the scheme!

OUTPUT:

An instance of DivisorGroup_generic.

EXAMPLES:

sage: from sage.schemes.generic.divisor_group import DivisorGroup
sage: DivisorGroup(Spec(ZZ))
Group of ZZ-Divisors on Spectrum of Integer Ring
sage: DivisorGroup(Spec(ZZ), base_ring=QQ)
Group of QQ-Divisors on Spectrum of Integer Ring
class sage.schemes.generic.divisor_group.DivisorGroup_curve(scheme, base_ring)

Bases: sage.schemes.generic.divisor_group.DivisorGroup_generic

Special case of the group of divisors on a curve.

class sage.schemes.generic.divisor_group.DivisorGroup_generic(scheme, base_ring)

Bases: sage.structure.formal_sum.FormalSums

The divisor group on a variety.

base_extend(R)

EXAMPLES:

sage: from sage.schemes.generic.divisor_group import DivisorGroup
sage: DivisorGroup(Spec(ZZ),ZZ).base_extend(QQ)
Group of QQ-Divisors on Spectrum of Integer Ring
sage: DivisorGroup(Spec(ZZ),ZZ).base_extend(GF(7))
Group of (Finite Field of size 7)-Divisors on Spectrum of Integer Ring

Divisor groups are unique:

sage: A.<x, y> = AffineSpace(2, CC)
sage: C = Curve(y^2 - x^9 - x)
sage: DivisorGroup(C,ZZ).base_extend(QQ) is DivisorGroup(C,QQ)
True
scheme()

Return the scheme supporting the divisors.

EXAMPLES:

sage: from sage.schemes.generic.divisor_group import DivisorGroup
sage: Div = DivisorGroup(Spec(ZZ))   # indirect test
sage: Div.scheme()
Spectrum of Integer Ring
sage.schemes.generic.divisor_group.is_DivisorGroup(x)

Return whether x is a DivisorGroup_generic.

INPUT:

  • x – anything.

OUTPUT:

True or False.

EXAMPLES:

sage: from sage.schemes.generic.divisor_group import is_DivisorGroup, DivisorGroup
sage: Div = DivisorGroup(Spec(ZZ), base_ring=QQ)
sage: is_DivisorGroup(Div)
True
sage: is_DivisorGroup('not a divisor')
False