This class builds on the projective space class and its point and morphism classes.
Products of projective spaces of varying dimension are convenient ambient spaces for complete intersections. Group actions on them, and the interplay with representation theory, provide many interesting examples of algebraic varieties.
EXAMPLES:
We construct products projective spaces of various dimensions over the same ring.:
sage: P1 = ProjectiveSpace(ZZ,1,'x')
sage: P2 = ProjectiveSpace(ZZ,2,'y')
sage: ProductProjectiveSpaces([P1,P2])
Product of projective spaces P^1 x P^2 over Integer Ring
We can also construct the product by specifying the dimensions and the base ring:
sage: ProductProjectiveSpaces([1,2,3],QQ,'z')
Product of projective spaces P^1 x P^2 x P^3 over Rational Field
sage: P2xP2 = ProductProjectiveSpaces([2, 2], QQ, names=['x', 'y'])
sage: P2xP2.coordinate_ring().inject_variables()
Defining x0, x1, x2, y0, y1, y2
Returns the cartesian product of projective spaces. Can input either a list of projective spaces over the same base ring or the list of dimensions, the base ring, and the variable names.
INPUT:
EXAMPLES:
sage: P1 = ProjectiveSpace(QQ,2,'x')
sage: P2 = ProjectiveSpace(QQ,3,'y')
sage: ProductProjectiveSpaces([P1,P2])
Product of projective spaces P^2 x P^3 over Rational Field
sage: ProductProjectiveSpaces([2,2],GF(7),'y')
Product of projective spaces P^2 x P^2 over Finite Field of size 7
sage: P1 = ProjectiveSpace(ZZ,2,'x')
sage: P2 = ProjectiveSpace(QQ,3,'y')
sage: ProductProjectiveSpaces([P1,P2])
Traceback (most recent call last):
...
AttributeError: Components must be over the same base ring
Bases: sage.schemes.generic.ambient_space.AmbientSpace
Cartesian product of projective spaces .
EXAMPLES:
sage: P.<x0,x1,x2,x3,x4> = ProductProjectiveSpaces([1,2],QQ); P
Product of projective spaces P^1 x P^2 over Rational Field
sage: P.coordinate_ring()
Multivariate Polynomial Ring in x0, x1, x2, x3, x4 over Rational Field
sage: P[0]
Projective Space of dimension 1 over Rational Field
sage: P[1]
Projective Space of dimension 2 over Rational Field
sage: Q = P(6,3,2,2,2); Q
(2 : 1 , 1 : 1 : 1)
sage: Q[0]
(2 : 1)
sage: H = Hom(P,P)
sage: f = H([x0^2*x3,x2*x1^2,x2^2,2*x3^2,x4^2])
sage: f(Q)
(4 : 1 , 1 : 2 : 1)
Return the affine patch of this projective space product
where I is a multi-index.
INPUT:
OUTPUT:
EXAMPLES:
sage: PP = ProductProjectiveSpaces([2,2,2], ZZ, 'x')
sage: phi = PP.affine_patch([0,1,2], True)
sage: phi.domain()
Affine Space of dimension 6 over Integer Ring
sage: phi
Scheme morphism:
From: Affine Space of dimension 6 over Integer Ring
To: Product of projective spaces P^2 x P^2 x P^2 over Integer Ring
Defn: Defined on coordinates by sending (x0, x1, x2, x3, x4, x5) to
(1 : x0 : x1 , x2 : 1 : x3 , x4 : x5 : 1)
Return a product of projective spaces over a ring and otherwise the same as self.
INPUT:
OUTPUT:
product of projective spaces over R
Note
There is no need to have any relation between and the base ring
of self, if you want to have such a relation, use
self.base_extend(R) instead.
EXAMPLES:
sage: T.<x,y,z,u,v,w> = ProductProjectiveSpaces([2,2],QQ)
sage: T.change_ring(GF(17))
Product of projective spaces P^2 x P^2 over Finite Field of size 17
Return the absolute dimension of the product of projective spaces.
OUTPUT:
a positive integer.
EXAMPLES:
sage: T.<x,y,z,u,v,w> = ProductProjectiveSpaces([2,2],GF(17))
sage: T.dimension_absolute()
4
sage: T.dimension()
4
Return the absolute dimension of the product of projective spaces.
OUTPUT:
a positive integer.
EXAMPLES:
sage: T.<x,y,z,u,v,w> = ProductProjectiveSpaces([2,2],GF(17))
sage: T.dimension_absolute()
4
sage: T.dimension()
4
Return the absolute dimension of the product of projective spaces.
OUTPUT:
a list of positive integers.
EXAMPLES:
sage: T.<x,y,z,u,v,w> = ProductProjectiveSpaces([2,2],GF(17))
sage: T.dimension_absolute_components()
[2, 2]
sage: T.dimension_components()
[2, 2]
Return the absolute dimension of the product of projective spaces.
OUTPUT:
a list of positive integers.
EXAMPLES:
sage: T.<x,y,z,u,v,w> = ProductProjectiveSpaces([2,2],GF(17))
sage: T.dimension_absolute_components()
[2, 2]
sage: T.dimension_components()
[2, 2]
Return the relative dimension of the product of projective spaces.
OUTPUT:
a positive integer.
EXAMPLES:
sage: T.<a,x,y,z,u,v,w> = ProductProjectiveSpaces([3,2],QQ)
sage: T.dimension_relative()
5
Return the relative dimension of the product of projective spaces.
OUTPUT:
a list of positive integers.
EXAMPLES:
sage: T.<a,x,y,z,u,v,w> = ProductProjectiveSpaces([3,2],QQ)
sage: T.dimension_relative_components()
[3, 2]
Returns the number of generators of self, i.e., the number of variables in the coordinate ring of self
OUTPUT:
an integer.
EXAMPLES:
sage: T = ProductProjectiveSpaces([1,1,1],GF(5),'x')
sage: T.ngens()
6
Returns the number of components of self.
OUTPUT:
an integer.
EXAMPLES:
sage: T = ProductProjectiveSpaces([1,1,1],GF(5),'x')
sage: T.num_components()
3
Return the Segre embedding of self into the appropriate projective space.
INPUT:
this is constructed if it is not given.
var – string, variable name of the image projective space, default (optional)
OUTPUT:
Hom – from self to the appropriate subscheme of projective space
Todo
Cartesian products with more than two components
EXAMPLES:
sage: X.<y0,y1,y2,y3,y4,y5> = ProductProjectiveSpaces(ZZ,[2,2])
sage: phi = X.segre_embedding(); phi
Scheme morphism:
From: Product of projective spaces P^2 x P^2 over Integer Ring
To: Closed subscheme of Projective Space of dimension 8 over Integer Ring defined by:
-u5*u7 + u4*u8,
-u5*u6 + u3*u8,
-u4*u6 + u3*u7,
-u2*u7 + u1*u8,
-u2*u4 + u1*u5,
-u2*u6 + u0*u8,
-u1*u6 + u0*u7,
-u2*u3 + u0*u5,
-u1*u3 + u0*u4
Defn: Defined by sending (y0 : y1 : y2 , y3 : y4 : y5) to
(y0*y3 : y0*y4 : y0*y5 : y1*y3 : y1*y4 : y1*y5 : y2*y3 : y2*y4 : y2*y5).
::
sage: T = ProductProjectiveSpaces([1,2],CC,'z')
sage: T.segre_embedding()
Scheme morphism:
From: Product of projective spaces P^1 x P^2 over Complex Field with 53 bits of precision
To: Closed subscheme of Projective Space of dimension 5 over Complex Field with 53 bits of precision defined by:
-u2*u4 + u1*u5,
-u2*u3 + u0*u5,
-u1*u3 + u0*u4
Defn: Defined by sending (z0 : z1 , z2 : z3 : z4) to
(z0*z2 : z0*z3 : z0*z4 : z1*z2 : z1*z3 : z1*z4).
Return the closed subscheme defined by X.
INPUT:
OUTPUT:
AlgebraicScheme_subscheme_projective_cartesian_product
EXAMPLES:
sage: P.<x,y,z,w> = ProductProjectiveSpaces([1,1],GF(5))
sage: X = P.subscheme([x-y,z-w]);X
Closed subscheme of Product of projective spaces P^1 x P^1 over Finite Field of size 5 defined by:
x - y,
z - w
sage: X.defining_polynomials ()
[x - y, z - w]
sage: I = X.defining_ideal(); I
Ideal (x - y, z - w) of Multivariate Polynomial Ring in x, y, z, w over
Finite Field of size 5
sage: X.dimension()
0
sage: X.base_ring()
Finite Field of size 5
sage: X.base_scheme()
Spectrum of Finite Field of size 5
sage: X.structure_morphism()
Scheme morphism:
From: Closed subscheme of Product of projective spaces P^1 x P^1 over Finite Field of size 5 defined by:
x - y,
z - w
To: Spectrum of Finite Field of size 5
Defn: Structure map
Return True if is a product of projective spaces, i.e., an ambient space
, where
is a ring and
are integers.
OUTPUT:
Boolean
EXAMPLES:
sage: is_ProductProjectiveSpaces(ProjectiveSpace(5, names='x'))
False
sage: is_ProductProjectiveSpaces(ProductProjectiveSpaces([1,2,3], ZZ, 'x'))
True