This section describes intrinsics for creating zero dimensional schemes or clusters. It also discusses those functions which converts a finite set of points into the reduced zero dimensional having this support. Throughout this subsection, a lowercase p denotes a point of a scheme.
The word cluster refers to schemes that are known to be zero dimensional. In general, the intrinsic Cluster converts points to clusters while the function RationalPoints finds the points on a cluster which are rational over its base field.
Note that there are four constructors of the form Cluster(X,data) analogous to the four Scheme(X,data) constructors but which make an additional dimension test and type change before returning a cluster determined as a subscheme of X by the data of the second argument.
The reduced scheme supported at the point p, or supported at the set of points S, as a subscheme of the scheme X if given.
The set of rational points of the cluster Z. If an extension of the base field L is given as a second argument, the set of points of Z(L), those points whose coordinates lie in L, is returned.
If Z is a cluster this will determine some (not necessarily optimal) point set Z(L) in which all points of Z having coordinates in an algebraic closure of the base field lie and will return all points of Z(L).
Returns false if and only if all points in the support of the scheme X over an algebraic closure of its base field are already defined over its current base field, or all lie in the point set X(L) if the second argument L is given. This intrinsic is most useful when trying to decide whether or not to make an extension of the base field of X to reveal non-rational points. The base field of X does not need to be a finite field.
The degree of the cluster Z. If Z is reduced, this is equal to the maximum number of points in the support over Z over some extension of its base ring.
> k := FiniteField(5); > P<x,y,z> := ProjectiveSpace(k,2); > C := Scheme(P,x^3 + y^3 - z^3); > D := Scheme(P,x^2 + y^2 - z^2); > Z := Intersection(C,D); > IsCluster(Z); true > Degree(Z); 6 > RationalPoints(Z); { (1 : 0 : 1), (0 : 1 : 1) } > HasPointsOverExtension(Z); trueIf C and D were rather general, that is, if Z was reduced, then we would expect 6 points in their intersection. We cannot expect that here, but the final line above does confirm that we have not yet seen all the points of intersection. We allow Magma to compute directly over a splitting field.
> PointsOverSplittingField(Z); { (0 : 1 : 1), ($.1^14 : $.1^22 : 1), ($.1^22 : $.1^14 : 1), (1 : 0 : 1) } > L<w> := Ring(Universe($1)); > L; Finite field of size 5^2 > PointsOverSplittingField(Z); { (0 : 1 : 1), (w^14 : w^22 : 1), (w^22 : w^14 : 1), (1 : 0 : 1) }In this case we see that the support is not six points but only four.