Basic Attributes of Schemes

These intrinsics report on basic features of the ambient space of a scheme or the equations defining a scheme. In many cases they simply call the corresponding function of the ambient space; the intrinsic BaseRing() is an example. The first set of these functions consists of those that only make reference to the ambient space, while the second set is concerned with the defining equations of the scheme.

Contents

Functions of the Ambient Space

AmbientSpace(X) : Sch -> Sch
Ambient(X) : Sch -> Sch
The ambient space containing the scheme X.
IdenticalAmbientSpace(X,Y) : Sch, Sch -> BoolElt
Returns whether schemes X and Y lie in the same ambient space.
SuperScheme(X) : Sch -> Sch
The scheme X was created as a subscheme of.
BaseRing(X) : Sch -> Rng
CoefficientRing(X) : Sch -> Fld
The base ring of the scheme X.
HasGCD(X) : Sch -> BoolElt
Returns whether GCDs be computed for multivariate polynomials over the base ring of scheme X.
HasGroebnerBasis(X) : Sch -> BoolElt
Returns whether Groebner bases be computed for multivariate polynomial ideals over the base ring of scheme X.
HasResultant(X) : Sch -> BoolElt
Returns whether resultants be computed for multivariate polynomials over the base ring of scheme X.
BaseField(X) : Sch -> Fld
CoefficientField(X) : Sch -> Fld
The base ring of the scheme X if it is a field, otherwise an error.
IsAffine(X) : Sch -> BoolElt
Returns true if and only if the ambient space of the scheme X is affine.
IsProjective(X) : Sch -> BoolElt
Returns true if and only if the ambient space of the scheme X is projective.
IsOrdinaryProjective(X) : Sch -> BoolElt
Returns true if and only if the ambient space of the scheme X is an ordinary projective space, that is, its coordinate ring is generated in degree 1 with respect to the grading on the space.
IsPlanar(X) : Sch -> BoolElt
Return true if the ambient of the scheme X is 2-dimensional.
IsSaturated(X) : Sch -> BoolElt
Returns true if and only if the current defining ideal of the scheme X, as returned by DefiningIdeal(X) is saturated (see Section Constructing Schemes).

Functions of the Equations

There are many ways to recover the equations which define a scheme. The standard method is to use the DefiningPolynomials function (or its singular versions) since it does not involve ideal theory overheads and certainly will not call any Gröbner basis functions.

DefiningPolynomials(X) : Sch -> SeqEnum
Polynomials(X) : Sch -> SeqEnum
DefiningEquations(X) : Sch -> SeqEnum
Equations(X) : Sch -> SeqEnum
The defining polynomials for the ideal of the scheme X.
DefiningPolynomial(X) : Sch -> RngMPolElt
Polynomial(X) : Sch -> RngMPolElt
DefiningEquation(X) : Sch -> RngMPolElt
Equation(X) : Sch -> RngMPolElt
The defining polynomial of the scheme X if it is a hypersurface. If X is not a hypersurface, an error is reported.
DefiningIdeal(X) : Sch -> RngMPol
Ideal(X) : Sch -> RngMPol
The ideal of a multivariate polynomial ring defining the scheme X.
CoordinateRing(X) : Sch -> RngMPol
The quotient of the coordinate ring of the ambient space of the scheme X by the ideal of X.
Curve(X) : Sch -> Crv
The smallest scheme in the inclusion chain above the scheme X which is a curve.
GroebnerBasis(X) : Sch -> SeqEnum
Return a sequence containing the polynomials of a Gröbner basis of the defining ideal of the scheme X. Note that the defining polynomials of X will not be changed, but that the basis of the ideal of X will be updated with the Gröbner basis as is the standard in the multivariate polynomial ring module.
MinimalBasis(X) : Sch -> [ RngMPolElt ]
Return a minimal basis of the defining ideal of the scheme X, that is, a sequence of polynomials for which no proper subsequence forms a basis of the ideal of X. Note that the defining polynomials of X will not be changed. This is the best human readable basis that Magma can supply.
IsHypersurface(X) : Sch -> BoolElt, RngMPolElt
Returns true if and only if the scheme X is definable by a single polynomial. This function will perform a GCD calculation to simplify multiple defining polynomials if possible. The polynomial is returned as a second value.
NoCommonComponent(X,Y) : Sch, Sch -> BoolElt
Returns whether hypersurfaces X and Y lying in the same ambient space have a common irreducible component.
CommonComponent(X,Y) : Sch, Sch -> Sch
For hypersurfaces X and Y lying in the same ambient space, returns the (possibly empty) maximal hypersurface lying in the intersection. This is simply computed as the hypersurface defined by the GCD of the defining polynomials of X and Y.
JacobianIdeal(X) : Sch -> RngMPol
The ideal of partial derivatives of the polynomials which define the scheme X. See comment below about MinimalBasis.
JacobianMatrix(X) : Sch -> ModMatRngElt
The matrix (∂fi/∂xj) of partial derivatives of the defining polynomials of the scheme X. Note that this can use the MinimalBasis instead of the DefiningEquations if the former has fewer elements. (One can directly call JacobianMatrix on the sequence of polynomials given by DefiningEquations, if that is desired).
HessianMatrix(X) : Sch -> ModMatRngElt
The hessian matrix (∂2f/∂xi ∂xj) of the hypersurface X where f is the polynomial which defines X.
X eq Y : Sch,Sch -> BoolElt
Returns true if the schemes X and Y have the same types, ambients and ideals. If Gröbner basis calculations are not available this question may not be able to be decided. If X and Y are projective then they are saturated before ideal equality is tested for.
IsSubscheme(X, Y) : Sch,Sch -> BoolElt
Returns true if and only if the scheme X is contained, scheme-theoretically, in the scheme Y. A Gröbner basis calculation checks the reverse inclusion of the corresponding ideals. If X and Y are projective, then X is saturated before the test for inclusion.
IsLinear(X) : Sch -> BoolElt
Return true if the scheme X is defined by linear equations, possibly after taking a Gröbner basis.

Example Scheme_scheme-equality (H119E14)

In this example we first create some schemes and then test them for inclusions and equality.
> P<u,v,w> := ProjectiveSpace(GF(11),2);
> C := Scheme(P,u^2 + u*w + 6*v^2);
> Z := Scheme(C,[u,v]);
> IsSubscheme(Z,C);
true
Now we will make another scheme which has the same polynomials as C but which is written in disguise. While the disguise in this case is simply to multiply the polynomial by 2 --- the rather-too-obvious false nose and eyebrows among polynomials --- the point is to note that the equality test in Magma is not fooled. The equality test identifies that the underlying defining ideals are the same and returns true.
> D := Scheme(P,2*u^2 + 2*u*w + v^2);
> D eq C;
true
> IsSubscheme(C,D) and IsSubscheme(D,C);
true
> DefiningIdeal(D) eq DefiningIdeal(C);
true
> DefiningPolynomial(D) eq DefiningPolynomial(C);
false
As we see in the final line above, checking the equality of ideals corresponds to the natural interpretation of equality.

There are a couple of caveats to this lesson, however. For instance, it is necessary, that the ideals to be comparable, i.e. the schemes must be embedded in the same ambient space.

> X<r,s,t> := ProjectiveSpace(GF(11),2);
> E := Scheme(P,r^2 + r*s + 6*t^2);
> E eq C;
false
V2.28, 13 July 2023