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.
- 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.
- 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.