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.
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.
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 P
4)
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 η.
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.
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.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]