### Navigation

- index
- modules |
- next |
- previous |
- Schemes »

# Set of homomorphisms between two proejctive schemes

For schemes \(X\) and \(Y\), this module implements the set of morphisms \(Hom(X,Y)\). This is done by `SchemeHomset_generic`.

As a special case, the Hom-sets can also represent the points of a scheme. Recall that the \(K\)-rational points of a scheme \(X\) over \(k\) can be identified with the set of morphisms \(Spec(K) \to X\). In Sage the rational points are implemented by such scheme morphisms. This is done by `SchemeHomset_points` and its subclasses.

Note

You should not create the Hom-sets manually. Instead, use the `Hom()` method that is inherited by all schemes.

AUTHORS:

- William Stein (2006): initial version.
- Volker Braun (2011-08-11): significant improvement and refactoring.
- Ben Hutz (June 2012): added support for projective ring

class `sage.schemes.projective.projective_homset.``SchemeHomset_points_abelian_variety_field`(X, Y, category=None, check=True, base=Integer Ring)

  Bases: `sage.schemes.projective.projective_homset.SchemeHomset_points_projective_field`

  Set of rational points of an abelian variety.

  INPUT:

  See `SchemeHomset_generic`.

  TESTS:

  The bug reported at trac #1785 is fixed:

      sage: K.<a> = NumberField(x^2 + x - (3^3-3))
      sage: E = EllipticCurve('37a')
      sage: X = E(K)
      sage: X
      Abelian group of points on Elliptic Curve defined by
      y^2 + y = x^3 + (-1)*x over Number Field in a with
      defining polynomial x^2 + x - 24
      sage: P = X([3,a])
      sage: P
      (3 : a : 1)
      sage: P in E
      False
      sage: P in E.base_extend(K)
      True
      sage: P in X.codomain()
      False
      sage: P in X.extended_codomain()
      True

  `base_extend`(R)

    Extend the base ring.

    This is currently not implemented except for the trivial case `R==ZZ`.

    INPUT:

    - `R` – a ring.

    EXAMPLES:

        sage: E = EllipticCurve('37a')
        sage: Hom = E.point_homset();  Hom
        Abelian group of points on Elliptic Curve defined
        by y^2 + y = x^3 - x over Rational Field
        sage: Hom.base_ring()
        Integer Ring
        sage: Hom.base_extend(QQ)
        Traceback (most recent call last):
        ...
        NotImplementedError: Abelian variety point sets are not
        implemented as modules over rings other than ZZ.

class `sage.schemes.projective.projective_homset.``SchemeHomset_points_projective_field`(X, Y, category=None, check=True, base=Integer Ring)

  Bases: `sage.schemes.generic.homset.SchemeHomset_points`

  Set of rational points of a projective variety over a field.

  INPUT:

  See `SchemeHomset_generic`.

  EXAMPLES:

      sage: from sage.schemes.projective.projective_homset import SchemeHomset_points_projective_field
      sage: SchemeHomset_points_projective_field(Spec(QQ), ProjectiveSpace(QQ,2))
      Set of rational points of Projective Space of dimension 2 over Rational Field

  `points`(B=0)

    Return some or all rational points of a projective scheme.

    INPUT:

    - \(B\) – integer (optional, default=0). The bound for the coordinates.

    OUTPUT:

    A list of points. Over a finite field, all points are returned. Over an infinite field, all points satisfying the bound are returned.

    EXAMPLES:

        sage: P1 = ProjectiveSpace(GF(2),1)
        sage: F.<a> = GF(4,'a')
        sage: P1(F).points()
        [(0 : 1), (1 : 0), (1 : 1), (a : 1), (a + 1 : 1)]

class `sage.schemes.projective.projective_homset.``SchemeHomset_points_projective_ring`(X, Y, category=None, check=True, base=Integer Ring)

  Bases: `sage.schemes.generic.homset.SchemeHomset_points`

  Set of rational points of a projective variety over a commutative ring.

  INPUT:

  See `SchemeHomset_generic`.

  EXAMPLES:

      sage: from sage.schemes.projective.projective_homset import SchemeHomset_points_projective_ring
      sage: SchemeHomset_points_projective_ring(Spec(ZZ), ProjectiveSpace(ZZ,2))
      Set of rational points of Projective Space of dimension 2 over Integer Ring

  `points`(B=0)

    Return some or all rational points of a projective scheme.

    INPUT:

    - \(B\) – integer (optional, default=0). The bound for the coordinates.

    EXAMPLES:

        sage: from sage.schemes.projective.projective_homset import SchemeHomset_points_projective_ring
        sage: H = SchemeHomset_points_projective_ring(Spec(ZZ), ProjectiveSpace(ZZ,2))
        sage: H.points(3)
        [(0 : 0 : 1), (0 : 1 : -3), (0 : 1 : -2), (0 : 1 : -1), (0 : 1 : 0), (0
        : 1 : 1), (0 : 1 : 2), (0 : 1 : 3), (0 : 2 : -3), (0 : 2 : -1), (0 : 2 :
        1), (0 : 2 : 3), (0 : 3 : -2), (0 : 3 : -1), (0 : 3 : 1), (0 : 3 : 2),
        (1 : -3 : -3), (1 : -3 : -2), (1 : -3 : -1), (1 : -3 : 0), (1 : -3 : 1),
        (1 : -3 : 2), (1 : -3 : 3), (1 : -2 : -3), (1 : -2 : -2), (1 : -2 : -1),
        (1 : -2 : 0), (1 : -2 : 1), (1 : -2 : 2), (1 : -2 : 3), (1 : -1 : -3),
        (1 : -1 : -2), (1 : -1 : -1), (1 : -1 : 0), (1 : -1 : 1), (1 : -1 : 2),
        (1 : -1 : 3), (1 : 0 : -3), (1 : 0 : -2), (1 : 0 : -1), (1 : 0 : 0), (1
        : 0 : 1), (1 : 0 : 2), (1 : 0 : 3), (1 : 1 : -3), (1 : 1 : -2), (1 : 1 :
        -1), (1 : 1 : 0), (1 : 1 : 1), (1 : 1 : 2), (1 : 1 : 3), (1 : 2 : -3),
        (1 : 2 : -2), (1 : 2 : -1), (1 : 2 : 0), (1 : 2 : 1), (1 : 2 : 2), (1 :
        2 : 3), (1 : 3 : -3), (1 : 3 : -2), (1 : 3 : -1), (1 : 3 : 0), (1 : 3 :
        1), (1 : 3 : 2), (1 : 3 : 3), (2 : -3 : -3), (2 : -3 : -2), (2 : -3 :
        -1), (2 : -3 : 0), (2 : -3 : 1), (2 : -3 : 2), (2 : -3 : 3), (2 : -2 :
        -3), (2 : -2 : -1), (2 : -2 : 1), (2 : -2 : 3), (2 : -1 : -3), (2 : -1 :
        -2), (2 : -1 : -1), (2 : -1 : 0), (2 : -1 : 1), (2 : -1 : 2), (2 : -1 :
        3), (2 : 0 : -3), (2 : 0 : -1), (2 : 0 : 1), (2 : 0 : 3), (2 : 1 : -3),
        (2 : 1 : -2), (2 : 1 : -1), (2 : 1 : 0), (2 : 1 : 1), (2 : 1 : 2), (2 :
        1 : 3), (2 : 2 : -3), (2 : 2 : -1), (2 : 2 : 1), (2 : 2 : 3), (2 : 3 :
        -3), (2 : 3 : -2), (2 : 3 : -1), (2 : 3 : 0), (2 : 3 : 1), (2 : 3 : 2),
        (2 : 3 : 3), (3 : -3 : -2), (3 : -3 : -1), (3 : -3 : 1), (3 : -3 : 2),
        (3 : -2 : -3), (3 : -2 : -2), (3 : -2 : -1), (3 : -2 : 0), (3 : -2 : 1),
        (3 : -2 : 2), (3 : -2 : 3), (3 : -1 : -3), (3 : -1 : -2), (3 : -1 : -1),
        (3 : -1 : 0), (3 : -1 : 1), (3 : -1 : 2), (3 : -1 : 3), (3 : 0 : -2), (3
        : 0 : -1), (3 : 0 : 1), (3 : 0 : 2), (3 : 1 : -3), (3 : 1 : -2), (3 : 1
        : -1), (3 : 1 : 0), (3 : 1 : 1), (3 : 1 : 2), (3 : 1 : 3), (3 : 2 : -3),
        (3 : 2 : -2), (3 : 2 : -1), (3 : 2 : 0), (3 : 2 : 1), (3 : 2 : 2), (3 :
        2 : 3), (3 : 3 : -2), (3 : 3 : -1), (3 : 3 : 1), (3 : 3 : 2)]

### Navigation

- index
- modules |
- next |
- previous |
- Schemes »