36.2 Schemes

Module: sage.schemes.generic.scheme

Schemes

Author Log:

Module-level Functions

is_AffineScheme( x)

Return True if $ x$ is an affine scheme.

sage: is_AffineScheme(5)
False
sage: E = Spec(QQ)
sage: is_AffineScheme(E)
True

is_Scheme( x)

Return True if $ x$ is a scheme.

sage: is_Scheme(5)
False
sage: X = Spec(QQ)
sage: is_Scheme(X)
True

Class: AffineScheme

class AffineScheme
An abstract affine scheme.

Functions: hom

hom( self, x, [Y=None])

Return the scheme morphism from self to Y defined by x.

If Y is not given, try to determine from context.

We construct the inclusion from $ \Spec (\mathbf{Q})$ into $ \Spec (\mathbf{Z})$ induced by the inclusion from $ \mathbf{Z}$ into $ \mathbf{Q}$ .

sage: X = Spec(QQ)
sage: X.hom(ZZ.hom(QQ))
Affine Scheme morphism:
  From: Spectrum of Rational Field
  To:   Spectrum of Integer Ring
  Defn: Ring Coercion morphism:
          From: Integer Ring
          To:   Rational Field

Class: Scheme

class Scheme
A scheme.
Scheme( self, X)

Functions: base_extend,$ \,$ base_morphism,$ \,$ base_ring,$ \,$ base_scheme,$ \,$ category,$ \,$ coordinate_ring,$ \,$ count_points,$ \,$ dimension,$ \,$ hom,$ \,$ identity_morphism,$ \,$ point,$ \,$ point_homset,$ \,$ point_set,$ \,$ structure_morphism,$ \,$ zeta_series

base_extend( self, Y)

Y is either a scheme in the same category as self or a ring.

coordinate_ring( self)

Return the coordinate ring of this scheme, if defined. Otherwise raise a ValueError.

count_points( self, n)

Count points over $ \mathbf{F}_q, \ldots, \mathbf{F}_{q^n}$ on a scheme over a finite field $ \mathbf{F}_q$ .

NOTE: This is currently only implemented for curves over prime order finite fields.

sage: P.<x> = PolynomialRing(GF(3))
sage: C = HyperellipticCurve(x^3+x^2+1)
sage: C.count_points(4)
[6, 12, 18, 96]
sage: C.base_extend(GF(9,'a')).count_points(2)
Traceback (most recent call last):
...
NotImplementedError: Point counting only implemented for schemes over prime
fields

dimension( self)

Return the relative dimension of this scheme over its base.

hom( self, x, [Y=None])

Return the scheme morphism from self to Y defined by x. If x is a scheme, try to determine a natural map to x.

If Y is not given, try to determine Y from context.

point_set( self, S)

Return the set of S-valued points of this scheme.

structure_morphism( self)

Same as self.base_morphism().

zeta_series( self, n, t)

Compute a power series approximation to the zeta function of a scheme over a finite field.

Input:

n
- the number of terms of the power series to compute
t
- the variable which the series should be returned

Output: A power series approximating the zeta function of self

sage: P.<x> = PolynomialRing(GF(3))
sage: C = HyperellipticCurve(x^3+x^2+1)
sage: R.<t> = PowerSeriesRing(Integers())
sage: C.zeta_series(4,t)
1 + 6*t + 24*t^2 + 78*t^3 + 240*t^4 + O(t^5)
sage: (1+2*t+3*t^2)/(1-t)/(1-3*t) + O(t^5)
1 + 6*t + 24*t^2 + 78*t^3 + 240*t^4 + O(t^5)

Note that this function depends on count_points, which is only defined for prime order fields:

sage: C.base_extend(GF(9,'a')).zeta_series(4,t)
Traceback (most recent call last):
...
NotImplementedError: Point counting only implemented for schemes over prime
fields

Special Functions: __add__,$ \,$ __call__,$ \,$ __cmp__,$ \,$ __div__,$ \,$ __init__,$ \,$ _Hom_,$ \,$ _homset_class,$ \,$ _point_class,$ \,$ _point_morphism_class

__call__( self)

If S is a ring or scheme, return the set $ X(S)$ of $ S$ -valued points on $ X$ . If $ S$ is a list or tuple or just the coordinates, return a point in $ X(T)$ , where $ T$ is the base scheme of self.

sage: A = AffineSpace(2, QQ)

We create some point sets:

sage: A(QQ)
Set of Rational Points of Affine Space of dimension 2 over Rational Field  

sage: A(RR)
Set of Rational Points of Affine Space of dimension 2 over Real Field with
53 bits of precision

Space of dimension 2 over Rational Field

sage: R.<x> = PolynomialRing(QQ)
sage: A(NumberField(x^2+1, 'a'))
Set of Rational Points of Affine Space of dimension 2 over Number Field in
a with defining polynomial x^2 + 1
sage: A(GF(7))
Traceback (most recent call last):
...
ValueError: No natural map from the base ring (=Rational Field) to S
(=Finite Field of size 7)

We create some points:

sage: A(QQ)([1,0])
(1, 0)

We create the same point by giving the coordinates of the point directly.

sage: A( 1,0 )
(1, 0)

__div__( self, Y)

Return the base extension of self to Y.

sage: A = AffineSpace(3, ZZ)
sage: A
Affine Space of dimension 3 over Integer Ring
sage: A/QQ
Affine Space of dimension 3 over Rational Field
sage: A/GF(7)
Affine Space of dimension 3 over Finite Field of size 7

_Hom_( self, Y, [cat=None], [check=True])

Return the set of scheme morphisms from self to Y.

See About this document... for information on suggesting changes.