AUTHORS:
Bases: sage.structure.element.Element
Bases: sage.schemes.generic.morphism.PyMorphism
A scheme morphism
Assuming that self and other are open immersions with the same domain, return scheme obtained by gluing along the images.
EXAMPLES: We construct a scheme isomorphic to the projective line
over by gluing two copies of
minus a point.
sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: S.<xbar, ybar> = R.quotient(x*y - 1)
sage: Rx = PolynomialRing(QQ, 'x')
sage: i1 = Rx.hom([xbar])
sage: Ry = PolynomialRing(QQ, 'y')
sage: i2 = Ry.hom([ybar])
sage: Sch = Schemes()
sage: f1 = Sch(i1)
sage: f2 = Sch(i2)
Now f1 and f2 have the same domain, which is a
minus a point. We glue along the domain:
sage: P1 = f1.glue_along_domains(f2)
sage: P1
Scheme obtained by gluing X and Y along U, where
X: Spectrum of Univariate Polynomial Ring in x over Rational Field
Y: Spectrum of Univariate Polynomial Ring in y over Rational Field
U: Spectrum of Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (x*y - 1)
sage: a, b = P1.gluing_maps()
sage: a
Affine Scheme morphism:
From: Spectrum of Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (x*y - 1)
To: Spectrum of Univariate Polynomial Ring in x over Rational Field
Defn: Ring morphism:
From: Univariate Polynomial Ring in x over Rational Field
To: Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (x*y - 1)
Defn: x |--> xbar
sage: b
Affine Scheme morphism:
From: Spectrum of Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (x*y - 1)
To: Spectrum of Univariate Polynomial Ring in y over Rational Field
Defn: Ring morphism:
From: Univariate Polynomial Ring in y over Rational Field
To: Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (x*y - 1)
Defn: y |--> ybar
Bases: sage.structure.element.AdditiveGroupElement, sage.schemes.generic.morphism.SchemeMorphism_projective_coordinates_field
Bases: sage.schemes.generic.morphism.SchemeMorphism_coordinates
A morphism determined by giving coordinates in a ring.
INPUT:
EXAMPLES:
sage: A = AffineSpace(2, QQ)
sage: A(1,2)
(1, 2)
Bases: sage.schemes.generic.morphism.SchemeMorphism
Bases: sage.schemes.generic.morphism.SchemeMorphism
Return the identity morphism from X to itself.
EXAMPLES:
sage: X = Spec(ZZ)
sage: X.identity_morphism()
Scheme endomorphism of Spectrum of Integer Ring
Defn: Identity map
Bases: sage.schemes.generic.morphism.SchemeMorphism
A morphism of schemes determined by rational functions that define what the morphism does on points in the ambient space.
EXAMPLES: An example involving the affine plane:
sage: R.<x,y> = QQ[]
sage: A2 = AffineSpace(R)
sage: H = A2.Hom(A2)
sage: f = H([x-y, x*y])
sage: f([0,1])
(-1, 0)
An example involving the projective line:
sage: R.<x,y> = QQ[]
sage: P1 = ProjectiveSpace(R)
sage: H = P1.Hom(P1)
sage: f = H([x^2+y^2,x*y])
sage: f([0,1])
(1 : 0)
Some checks are performed to make sure the given polynomials define a morphism:
sage: R.<x,y> = QQ[]
sage: P1 = ProjectiveSpace(R)
sage: H = P1.Hom(P1)
sage: f = H([x^2, x*y])
Traceback (most recent call last):
...
ValueError: polys (=[x^2, x*y]) must not have common factors
sage: f = H([exp(x),exp(y)])
Traceback (most recent call last):
...
TypeError: polys (=[e^x, e^y]) must be elements of Multivariate Polynomial Ring in x, y over Rational Field
Return the immutable sequence of polynomials that defines this scheme morphism.
EXAMPLES:
sage: R.<x,y> = QQ[]
sage: A.<x,y> = AffineSpace(R)
sage: H = A.Hom(A)
sage: H([x^3+y, 1-x-y]).defining_polynomials()
[x^3 + y, -x - y + 1]
Bases: sage.schemes.generic.morphism.SchemeMorphism_on_points
A morphism of schemes determined by rational functions that define what the morphism does on points in the ambient affine space.
EXAMPLES:
sage: RA.<x,y> = QQ[]
sage: A2 = AffineSpace(RA)
sage: RP.<u,v,w> = QQ[]
sage: P2 = ProjectiveSpace(RP)
sage: H = A2.Hom(P2)
sage: f = H([x, y, 1])
sage: f
Scheme morphism:
From: Affine Space of dimension 2 over Rational Field
To: Projective Space of dimension 2 over Rational Field
Defn: Defined on coordinates by sending (x, y) to
(x : y : 1)
Bases: sage.schemes.generic.morphism.SchemeMorphism_on_points
A morphism of schemes determined by rational functions that define what the morphism does on points in the ambient projective space.
EXAMPLES:
sage: R.<x,y> = QQ[]
sage: P1 = ProjectiveSpace(R)
sage: H = P1.Hom(P1)
sage: H([y,2*x])
Scheme endomorphism of Projective Space of dimension 1 over Rational Field
Defn: Defined on coordinates by sending (x : y) to
(y : 2*x)
An example of a morphism between projective plane curves (see #10297):
sage: P2.<x,y,z> = ProjectiveSpace(QQ,2)
sage: f = x^3+y^3+60*z^3
sage: g = y^2*z-( x^3 - 6400*z^3/3)
sage: C = Curve(f)
sage: E = Curve(g)
sage: xbar,ybar,zbar = C.coordinate_ring().gens()
sage: H = C.Hom(E)
sage: H([zbar,xbar-ybar,-(xbar+ybar)/80])
Scheme morphism:
From: Projective Curve over Rational Field defined by x^3 + y^3 + 60*z^3
To: Projective Curve over Rational Field defined by -x^3 + y^2*z + 6400/3*z^3
Defn: Defined on coordinates by sending (x : y : z) to
(zbar : xbar - ybar : -1/80*xbar - 1/80*ybar)
We illustrate some error checking:
sage: R.<x,y> = QQ[]
sage: P1 = ProjectiveSpace(R)
sage: H = P1.Hom(P1)
sage: f = H([x-y, x*y])
Traceback (most recent call last):
...
ValueError: polys (=[x - y, x*y]) must be of the same degree
sage: H([x-1, x*y+x])
Traceback (most recent call last):
...
ValueError: polys (=[x - 1, x*y + x]) must be homogeneous
sage: H([exp(x),exp(y)])
Traceback (most recent call last):
...
TypeError: polys (=[e^x, e^y]) must be elements of Multivariate Polynomial Ring in x, y over Rational Field
Bases: sage.schemes.generic.morphism.SchemeMorphism_on_points
Construct a morphism determined by action on points.
Warning
You should not create objects of this class directly.
INPUT:
OUPUT:
TESTS:
sage: fan = FaceFan(lattice_polytope.octahedron(2))
sage: P1xP1 = ToricVariety(fan)
sage: P1xP1.inject_variables()
Defining z0, z1, z2, z3
sage: P1 = P1xP1.subscheme(z0-z2)
sage: H = P1xP1.Hom(P1)
sage: import sage.schemes.generic.morphism as MOR
sage: MOR.SchemeMorphism_on_points_toric_variety(H, [z0,z1,z0,z3])
Scheme morphism:
From: 2-d toric variety covered by 4 affine patches
To: Closed subscheme of 2-d toric variety
covered by 4 affine patches defined by:
z0 - z2
Defn: Defined on coordinates by sending
[z0 : z1 : z2 : z3] to [z0 : z1 : z0 : z3]
Bases: sage.schemes.generic.morphism.SchemeMorphism_projective_coordinates_ring
A morphism determined by giving coordinates in a field.
INPUT:
EXAMPLES:
sage: P = ProjectiveSpace(3, RR)
sage: P(2,3,4,5)
(0.400000000000000 : 0.600000000000000 : 0.800000000000000 : 1.00000000000000)
sage: P = ProjectiveSpace(3, QQ)
sage: P(0,0,0,0)
Traceback (most recent call last):
...
ValueError: [0, 0, 0, 0] does not define a valid point since all entries are 0
Bases: sage.schemes.generic.morphism.SchemeMorphism_coordinates
A morphism determined by giving coordinates in a ring (how?).
Bases: sage.schemes.generic.morphism.SchemeMorphism
A morphism of spectrums of rings
EXAMPLES:
sage: R.<x> = PolynomialRing(QQ)
sage: phi = R.hom([QQ(7)]); phi
Ring morphism:
From: Univariate Polynomial Ring in x over Rational Field
To: Rational Field
Defn: x |--> 7
sage: X = Spec(QQ); Y = Spec(R)
sage: f = X.hom(phi); f
Affine Scheme morphism:
From: Spectrum of Rational Field
To: Spectrum of Univariate Polynomial Ring in x over Rational Field
Defn: Ring morphism:
From: Univariate Polynomial Ring in x over Rational Field
To: Rational Field
Defn: x |--> 7
sage: f.ring_homomorphism()
Ring morphism:
From: Univariate Polynomial Ring in x over Rational Field
To: Rational Field
Defn: x |--> 7
Bases: sage.schemes.generic.morphism.SchemeMorphism_coordinates
Construct a morphism determined by giving coordinates in a field.
Warning
You should not create objects of this class directly.
INPUT:
OUTPUT:
TESTS:
sage: fan = FaceFan(lattice_polytope.octahedron(2))
sage: P1xP1 = ToricVariety(fan)
sage: P1xP1(1,2,3,4)
[1 : 2 : 3 : 4]
Return True if f is a scheme morphism or a point on an elliptic curve.
EXAMPLES:
sage: R.<x,y> = QQ[]; A.<x,y> = AffineSpace(R); H = A.Hom(A)
sage: f = H([y,x^2+y])
sage: sage.schemes.generic.morphism.is_SchemeMorphism(f)
True