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: DivisorGroup_generic

Special case of the group of divisors on a curve.

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

Bases: 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)                                         # needs sage.rings.real_mpfr
sage: C = Curve(y^2 - x^9 - x)                                              # needs sage.rings.real_mpfr sage.schemes
sage: DivisorGroup(C, ZZ).base_extend(QQ) is DivisorGroup(C, QQ)            # needs sage.rings.real_mpfr sage.schemes
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