# Ambient spaces¶

class sage.schemes.generic.ambient_space.AmbientSpace(n, R=Integer Ring)

Base class for ambient spaces over a ring.

INPUT:

• n - dimension

• R - ring

ambient_space()

Return the ambient space of the scheme self, in this case self itself.

EXAMPLES:

sage: P = ProjectiveSpace(4, ZZ)
sage: P.ambient_space() is P
True

sage: A = AffineSpace(2, GF(3))
sage: A.ambient_space()
Affine Space of dimension 2 over Finite Field of size 3

base_extend(R)

Return the natural extension of self over R.

INPUT:

• R – a commutative ring, such that there is a natural map from the base ring of self to R.

OUTPUT:

• an ambient space over R of the same structure as self.

Note

A ValueError is raised if there is no such natural map. If you need to drop this condition, use self.change_ring(R).

EXAMPLES:

sage: P.<x, y, z> = ProjectiveSpace(2, ZZ)
sage: PQ = P.base_extend(QQ); PQ
Projective Space of dimension 2 over Rational Field
sage: PQ.base_extend(GF(5))
Traceback (most recent call last):
...
ValueError: no natural map from the base ring (=Rational Field)
to R (=Finite Field of size 5)!

change_ring(R)

Return an ambient space over ring $$R$$ and otherwise the same as self.

INPUT:

• R – commutative ring

OUTPUT:

• ambient space over R

Note

There is no need to have any relation between $$R$$ and the base ring of self, if you want to have such a relation, use self.base_extend(R) instead.

defining_polynomials()

Return the defining polynomials of the scheme self. Since self is an ambient space, this is an empty list.

EXAMPLES:

sage: ProjectiveSpace(2, QQ).defining_polynomials()
()
sage: AffineSpace(0, ZZ).defining_polynomials()
()

dimension()

Return the absolute dimension of this scheme.

EXAMPLES:

sage: A2Q = AffineSpace(2, QQ)
sage: A2Q.dimension_absolute()
2
sage: A2Q.dimension()
2
sage: A2Z = AffineSpace(2, ZZ)
sage: A2Z.dimension_absolute()
3
sage: A2Z.dimension()
3

dimension_absolute()

Return the absolute dimension of this scheme.

EXAMPLES:

sage: A2Q = AffineSpace(2, QQ)
sage: A2Q.dimension_absolute()
2
sage: A2Q.dimension()
2
sage: A2Z = AffineSpace(2, ZZ)
sage: A2Z.dimension_absolute()
3
sage: A2Z.dimension()
3

dimension_relative()

Return the relative dimension of this scheme over its base.

EXAMPLES:

sage: A2Q = AffineSpace(2, QQ)
sage: A2Q.dimension_relative()
2
sage: A2Z = AffineSpace(2, ZZ)
sage: A2Z.dimension_relative()
2

gen(n=0)

Return the $$n$$-th generator of the coordinate ring of the scheme self.

EXAMPLES:

sage: P.<x, y, z> = ProjectiveSpace(2, ZZ)
sage: P.gen(1)
y

gens()

Return the generators of the coordinate ring of the scheme self.

EXAMPLES:

sage: AffineSpace(0, QQ).gens()
()

sage: P.<x, y, z> = ProjectiveSpace(2, GF(5))
sage: P.gens()
(x, y, z)

is_projective()

Return whether this ambient space is projective n-space.

EXAMPLES:

sage: AffineSpace(3,QQ).is_projective()
False
sage: ProjectiveSpace(3,QQ).is_projective()
True

ngens()

Return the number of generators of the coordinate ring of the scheme self.

EXAMPLES:

sage: AffineSpace(0, QQ).ngens()
0

sage: ProjectiveSpace(50, ZZ).ngens()
51

sage.schemes.generic.ambient_space.is_AmbientSpace(x)

Return True if $$x$$ is an ambient space.

EXAMPLES:

sage: from sage.schemes.generic.ambient_space import is_AmbientSpace
sage: is_AmbientSpace(ProjectiveSpace(3, ZZ))
True
sage: is_AmbientSpace(AffineSpace(2, QQ))
True
sage: P.<x, y, z> = ProjectiveSpace(2, ZZ)
sage: is_AmbientSpace(P.subscheme([x+y+z]))
False