Advanced Examples

This section contains examples of the use of the scheme machinery that are broader than those brief illustrations of intrinsics in the main text. They show how these functions can be used in collaboration with one another to build computer experiments which back up mathematical intuition.

Contents

A Pair of Twisted Cubics

This example constructs a cluster as the intersection of two twisted cubics in space. It uses a pair of curves whose equations are very closely related. Their union admits an automorphism which interchanges the two curves, fixing the cluster.

Example Scheme_twisted-cubics (H119E81)

We start by making the two twisted cubics, C1 and C2, as the minors of a pair of 2 x 3 matrices. It is clear straight away that these curves are closely related; it is a shame that we lose the "format" of the equations, in fact. On the other hand, if one tries to make other interesting examples by such tricks, one does not automatically come up with something so slick (and Gorenstein).
> k := Rationals();
> P<x,y,z,t> := ProjectiveSpace(k,3);
> M1 := Matrix(CoordinateRing(P),2,3,[y,t,x,t,x,z]);
> M2 := Matrix(CoordinateRing(P),2,3,[y,x,t,x,t,z]);
> C1 := Scheme(P,Minors(M1,2));
> C2 := Scheme(P,Minors(M2,2));
> Z := Intersection(C1,C2);
> MinimalBasis(Z);
[
    x*t - y*z,
    x*z - t^2,
    x*y - t^2,
    -x^2 + z*t,
    -x^2 + y*t
]
Anyone knowing about Pfaffians can have fun trying to realise these equations as the five maximal Pfaffians of a skew-symmetric 5 x 5 matrix. Although this example is a bit degenerate, it is reasonable to think of it as a hyperplane section of an elliptic curve of degree 5 (living in P4) so the ideal of equations will be Gorenstein. Given the Buchsbaum--Eisenbud structure theorem for Gorenstein codimension 3 rings, we are not surprised to see this Pfaffian format. In this example we will settle for confirming that this scheme Z is a cluster of degree 5 and finding its support.
> IsCluster(Z);
true
> Degree(Z);
5
> IsReduced(Z);
true
> RationalPoints(Z);
{@ (1 : 1 : 1 : 1), (0 : 0 : 1 : 0), (0 : 1 : 0 : 0) @}
> HasPointsOverExtension(Z);
true
As expected, the scheme Z is zero-dimensional and has degree 5. Since it is reduced, its support will comprise five separate points over some extension of the base field. We locate these points by hand by considering the Gröbner basis of the ideal of Z. The last element of a lexicographical Gröbner basis usually suggests a field extension that is relevant to the scheme. So we extend the base field by roots of this polynomial and look for the support over that field.
> GB := GroebnerBasis(ChangeOrder(Ideal(Z),"lex"));
> GB[#GB];
z^3*t - t^4
> L<w> := ext< k | U.1^2 + U.1 + 1 > where U is PolynomialRing(k);
> RationalPoints(Z,L);
{@ (w : -w - 1 : -w - 1 : 1), (-w - 1 : w : w : 1),
(1 : 1 : 1 : 1), (0 : 1 : 0 : 0), (0 : 0 : 1 : 0) @}
> HasPointsOverExtension(Z,L);
false
The final line confirms that we have found all the points of Z. That was already clear since Z has degree 5 and we see five points, but in other cases, especially when the cluster is not reduced, it might not be so obvious.

Now we look at the union of the two twisted cubics.

> C := Union(C1,C2);
> C;
Scheme over Rational Field defined by
x^3 - x*y*t - x*z*t + t^3
-x*t + y*z
This curve C is a 2, 3 complete intersection, numerology that is familiar from canonical curves of genus 4. We already know that C is not such a curve since it has two components. Indeed, we already know that these components are nonsingular and meet in five points. Clearly these points must be singular points of C.
> SC := SingularPointsOverSplittingField(C);
> SC;
{ (1 : 1 : 1 : 1), (-r2 - 1 : r2 : r2 : 1), (0 : 0 : 1 : 0),
(-r1 - 1 : r1 : r1 : 1), (0 : 1 : 0 : 0) }
> Ring(Universe(SC));
Algebraically closed field with 2 variables
Defining relations:
[
    r2^2 + r2 + 1,
    r1^2 + r1 + 1
]
Magma has automatic Gröbner basis based machinery for working in the algebraic closure of the rationals (the so-called D5 method). Here we see it in action. The roots that we made explicitly when computing with Z are the new symbols r1 and r2 --- they are the two conjugate roots of the quadratic equation list as the `Defining relations'. Since r1not= r2, we see that the singular points really are the points of Z as expected.

From the definition of the matrices M1 and M2 we can see that the union and intersection of C1 and C2 should be invariant under the automorphism of P which exchanges x and t. We realise that automorphism here and confirm what we expect by comparing various ideals.

> phi := iso< P -> P | [t,y,z,x],[t,y,z,x] >;
> IsAutomorphism(phi);
true
> Ideal(C2) eq Ideal(phi(C1));
true
> Z eq phi(Z);
true
> Ideal(Z) eq Ideal(phi(Z));
true
Note that the basic equality test `eq' for schemes returns true in the penultimate line, even though the two arguments were created independently.

The five points of Z obviously have (Sym)5 as their permutation group (or (Sym)2 x (Sym)3 over the rationals). How much of that is realised by automorphisms of the union C? We try to realise some elements of this symmetric group.

> S5 := SymmetricGroup(5);
> QL := RationalPoints(Z,L);
> rho := S5 ! [ Index(QL,phi(p)) : p in QL ];
> rho;
(1, 2)
Of course, this permutation is simply the action of the Galois group of L.
> GaloisGroup(L);
Permutation group acting on a set of cardinality 2
    (1, 2)
We make another automorphism: using C explicitly in the constructor ensures that the image of the map is contained in C.
> psi := iso< C -> C | [x,z,y,t],[x,z,y,t] >;
> eta := S5 ! [ Index(QL,psi(p)) : p in QL ];
> eta;
(4, 5)
> G := sub< S5 | rho,eta >;
> #G;
4
Since these two permutations commute and the small collection of five points is already partitioned by a Galois group action, this example is too simple to use Magma's substantial group theory machinery. But one can imagine at this stage finding complicated elements of G and realising them by compositions of the easily recognised automorphisms ρ and η.

Curves in Space

In this example, we construct something that we know is an elliptic curve in space. The point is to realise that within Magma by making a new curve of the right type and understanding the translation between the two types, at least to some degree. Something very similar would also works for the canonical models of curves of genus 4, although one has to take care handling the image of the natural projection.

Example Scheme_curves-in-space (H119E82)

The first thing to do is to make a curve in space and to choose a nonsingular rational point on that curve. The question of whether or not a rational point is part of the input or part of the algorithm is always tricky since finding good points is often the heart of a problem. That is certainly the case here, so we do not pretend that this is a particularly powerful example.
> P<x,y,z,t> := ProjectiveSpace(Rationals(),3);
> X := Scheme(P,[x*y-z*t,x^2 + 2*z^2 - y*t]);
> Dimension(X);
1
> IsNonsingular(X);
true
> p := X ! [0,1,0,0];
Next we simply project from this given point p.
> Y,pr,q := ProjectionFromNonsingularPoint(X,p);
> bool,C := IsCurve(Y);
> bool;
true
> q := C ! q;
> q;
(0 : 1 : 0)
> Degree(C);
3
> IsNonsingular(C);
true
> P2<a,b,c> := Ambient(C);
> C;
Curve over Rational Field defined by
a^3 + 2*a*b^2 - b*c^2
Since there was a conic (two, in fact) among the equations of the scheme X, the projection from p is necessarily birational to a plane curve. And since p is a nonsingular point, it has a definite rational image point on the projection which is called q above. Since we know that X has genus 1 (as an external fact) and that the projection is birational we already know that the image curve C is the plane elliptic curve we desire. (It is interesting to try this calculation with a curve of higher genus, like the canonical model of a curve of genus 4.)

But we have made no effort to find a good model for C. At this point we can use Magma intrinsics to find a better model for C since we have the rational point q lying on C.

> EllipticCurve(C,q);
Elliptic Curve defined by y^2 = x^3 + 32*x over Rational Field
Mapping from: Crv: C to Elliptic Curve defined by y^2 = x^3 + 32*x over
Rational Field given by a rule
Mapping from: Elliptic Curve defined by y^2 = x^3 + 32*x over Rational Field to
Crv: C given by a rule
The result is a very nice model of an elliptic curve in Weierstraß form. The mapping types returned by this function are not yet fully integrated Scheme maps. But this will be added to Magma in due course, after which computations can be done on the good elliptic model and related to the original scheme X.
V2.28, 13 July 2023