Scheme obtained by gluing two other schemes#

class sage.schemes.generic.glue.GluedScheme(f, g, check=True)[source]#

Bases: Scheme

INPUT:

  • f – open immersion from a scheme \(U\) to a scheme \(X\)

  • g – open immersion from \(U\) to a scheme \(Y\)

OUTPUT: The scheme obtained by gluing \(X\) and \(Y\) along the open set \(U\).

Note

Checking that \(f\) and \(g\) are open immersions is not implemented.

EXAMPLES:

sage: R.<x, y> = QQ[]
sage: S.<xbar, ybar> = R.quotient(x * y - 1)
sage: Rx = QQ["x"]
sage: Ry = QQ["y"]
sage: phi_x = Rx.hom([xbar])
sage: phi_y = Ry.hom([ybar])
sage: Sx = Schemes()(phi_x)
sage: Sy = Schemes()(phi_y)
sage: Sx.glue_along_domains(Sy)
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)
>>> from sage.all import *
>>> R = QQ['x, y']; (x, y,) = R._first_ngens(2)
>>> S = R.quotient(x * y - Integer(1), names=('xbar', 'ybar',)); (xbar, ybar,) = S._first_ngens(2)
>>> Rx = QQ["x"]
>>> Ry = QQ["y"]
>>> phi_x = Rx.hom([xbar])
>>> phi_y = Ry.hom([ybar])
>>> Sx = Schemes()(phi_x)
>>> Sy = Schemes()(phi_y)
>>> Sx.glue_along_domains(Sy)
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)
gluing_maps()[source]#

Return the gluing maps of this glued scheme, i.e. the maps \(f\) and \(g\).

EXAMPLES:

sage: R.<x, y> = QQ[]
sage: S.<xbar, ybar> = R.quotient(x * y - 1)
sage: Rx = QQ["x"]
sage: Ry = QQ["y"]
sage: phi_x = Rx.hom([xbar])
sage: phi_y = Ry.hom([ybar])
sage: Sx = Schemes()(phi_x)
sage: Sy = Schemes()(phi_y)
sage: Sxy = Sx.glue_along_domains(Sy)
sage: Sxy.gluing_maps() == (Sx, Sy)
True
>>> from sage.all import *
>>> R = QQ['x, y']; (x, y,) = R._first_ngens(2)
>>> S = R.quotient(x * y - Integer(1), names=('xbar', 'ybar',)); (xbar, ybar,) = S._first_ngens(2)
>>> Rx = QQ["x"]
>>> Ry = QQ["y"]
>>> phi_x = Rx.hom([xbar])
>>> phi_y = Ry.hom([ybar])
>>> Sx = Schemes()(phi_x)
>>> Sy = Schemes()(phi_y)
>>> Sxy = Sx.glue_along_domains(Sy)
>>> Sxy.gluing_maps() == (Sx, Sy)
True