Different Types of Scheme#
As discussed briefly in Section Aside: Types of Schemes, there are a number of different increasingly specialised data types for schemes. It is often useful to check whether a given scheme can be thought of as belonging to one of these more specialised classes, and if so and appropriate then actually making the type change. In this section we document a number of such type-checking and type-change intrinsics, most of which are of the form IsSpecialisedType. These intrinsics always return a boolean value. If that value is true then they may also return a new scheme of the given specialised type, although in some trivial cases this does not happen. Of course, each of the different types of scheme has its own methods of construction independently of these intrinsics.
- IsAffine(X): Sch -> BoolElt#
Returns
trueif and only if the scheme \(X\) is an affine space.
- IsProjective(X): Sch -> BoolElt#
Returns
trueif and only if the scheme \(X\) is a projective space. Projective space here includes the case of scrolls.
- IsOrdinaryProjectiveSpace(X): Sch -> BoolElt#
Returns
trueif and only if the scheme \(X\) is a projective space in the usual sense: its coordinate ring has a single grading in which all the variables have weight one.
- IsAmbient(X): Sch -> BoolElt#
Return
trueif the scheme \(X\) is an ambient space.
- IsCluster(X): Sch -> BoolElt, Clstr#
Returns
trueif and only if the scheme \(X\) is a zero-dimensional scheme (but not the empty scheme). See Section Zero-dimensional Schemes for intrinsics which apply to clusters.
- IsCurve(X): Sch -> BoolElt, Crv#
Returns
trueif and only if \(X\) is a one-dimensional scheme. See Chapter Algebraic Curves for intrinsics which apply to curves.
- IsPlaneCurve(X): Sch -> BoolElt, CrvPln#
Returns
trueif and only if \(X\) is a one-dimensional scheme defined by a single equation in a two-dimensional ambient space.
- IsConic(X): Sch -> BoolElt, CrvCon#
Returns
trueif and only if the scheme \(X\) is a curve (in the sense ofIsCurve(X)) which is nonsingular and defined by an equation of degree \(2\). See Chapter Rational Curves and Conics for intrinsics which apply to such conics.
- IsRationalCurve(X): Sch -> BoolElt, CrvRat#
Returns
trueif and only if the scheme \(X\) is a curve (in the sense ofIsCurve(X)) which has genus \(0\). See Chapter Rational Curves and Conics for intrinsics which apply to rational curves.
- IsHyperellipticCurve(X): Sch -> BoolElt, CrvHyp#
Return
trueand a hyperelliptic curve if the scheme \(X\) is trivially a hyperelliptic curve. This occurs if and only if \(X\) is already ofCrvHyptype or is defined by a non-singular Weierstrass equation in correctly weighted two-dimensional projective space. For a general scheme of typeCrv, the intrinsicIsHyperellipticin Chapter Algebraic Curves will determine whether \(X\) is isomorphic to a hyperelliptic curve and return an isomorphism to aCrvHypif so. This takes a lot more work in general. See Chapter Hyperelliptic Curves for more information on hyperelliptic curves.
- IsModularCurve(X): Sch -> BoolElt#
Return
trueif and only if the scheme \(X\) is a curve of typeCrvMod. See Chapter Modular Curves for more information on modular curves.