Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Isomorphisms

Subsections

Isomorphisms with Standard Models

In this section we discuss isomorphisms between heterogeneous types -- isomorphisms between combinations of curves of type Crv, CrvCon, and CrvRat, and their parametrizations by a projective line.

The first function which we treat here is Conic, and is as much a constructor as an isomorphism. It takes an arbitrary genus zero curve C, and using the anti-canonical divisor -KC of degree 2, constructs the Riemann-Roch space. For a genus zero curve, this is a dimension 3 space of degree 2 functions, which gives a projective embedding of C in P2 as a conic. This provides the starting point to make any genus zero curve amenable to the powerful machinery for point finding and isomorphism classification of conics.

An isomorphism --- provided that one exists --- of the projective line with a conic can be described as follows. The 2-uple embedding φ: P1 -> P2 is defined by (u:v) |-> (u2:uv:v2) gives an isomorphism of P1 with the conic C0 with defining equation y2 = xz. The inverse isomorphism C0 -> P1 is defined by the maps

matrix( (x:y:z) |-> (x:y) on x ≠0, cr (x:y:z) |-> (y:z) on z ≠0, )

respectively. Since these open sets cover the conic C0, this defines an isomorphism, not just a birational map. In order to describe an isomorphism of a conic C0 with P1, it is then necessary and sufficient to give a change of variables which maps C0 = φ(P1) onto the conic C1. This matrix is called the parametrization matrix and is stored together with a conic C1 once a rational point is found.

Conic(C) : Crv -> MapSch
Given a curve of genus zero, returns a conic determined by the anti-canonical embedding of C.

Example CrvCon_ (H111E10)

We demonstrate the function Conic on the curve of Example H111E2 to find a conic model, even though we know that it admits a rational parametrization.

> P2<x,y,z> := ProjectivePlane(FiniteField(71));
> C0 := Curve(P2,(x^3 + y^2*z)^2 - x^5*z);
> C1, m := Conic(C0);
> C1;
Conic over GF(71) defined by
x^2 + 70*x*z + y^2
> m : Minimal;
(x : y : z) -> (x^3*y*z : 70*x^5 + x^4*z + 70*x^2*y^2*z : x^3*y*z + y^3*z^2)

ParametrizationMatrix(C) : CrvCon -> ModMatRngElt
This function is an optimized routine for parametrizing a conic C defined over Z or Q. It returns a 3 x 3 matrix M, which defines a parametrization of C as a projective change of variables from the 2-uple embedding of a projective line in the projective plane, i.e. for a point (x0:y0:z0) on C, the point

(x1:y1:z1) = (x0:y0:z0) M

satisfies the equation y12 = x1z1. Note that as usual in Magma the action of M is on the right, and consistently, the action of scheme maps is also on the right.


Example CrvCon_ (H111E11)

In this example we demonstrate that the parametrization matrix determines the precise change of variables to transform the conic equation into the equation y2 = xz. We begin with a singular plane curve C0 of genus zero and construct a nonsingular conic model in the plane.

> P2<x,y,z> := ProjectiveSpace(Rationals(),2);    
> C0 := Curve(P2,(x^3 + y^2*z)^2 - x^5*z);  
> C1, m := Conic(C0);
> C1;
Conic over Rational Field defined by
x^2 - x*z + y^2
The curve C1 has obvious points, such as (1 : 0 : 1), which Magma internally verifies, without having to make an explicit user call to HasRationalPoint.

> ParametrizationMatrix(C1);
[1 0 1]
[0 1 0]
[0 0 1]
> Evaluate(DefiningPolynomial(C1),[x,y,x+z]);
-x*z + y^2
We note that as is standard in Magma the action of matrices, as with maps of schemes, is a right action on coordinates (x : y : z).
Parametrization(C) : CrvCon -> MapSch
Parametrization(C, P) : CrvCon, Crv -> MapSch
Parametrization(C, p) : Crv, Pt -> MapSch
Parametrization(C, p) : Crv, PlcCrvElt -> MapSch
Parametrization(C, p, P) : CrvCon, Pt, Crv -> MapSch
Parametrization(C, p, P) : CrvRat, Pt, Crv -> MapSch
Parametrization(C, p, P) : CrvCon, PlcCrvElt, Crv -> MapSch
Parametrization(C, p, P) : CrvRat, PlcCrvElt, Crv -> MapSch
ParametrizeOrdinaryCurve(C) : Crv -> MapSch
ParametrizeOrdinaryCurve(C, p) : Crv, Pt -> MapSch
ParametrizeOrdinaryCurve(C, p) : Crv, PlcCrvElt -> MapSch
ParametrizeOrdinaryCurve(C, p, I) : Crv, Pt, RngMPol -> MapSch
ParametrizeOrdinaryCurve(C, p, I) : Crv, PlcCrvElt, RngMPol -> MapSch
ParametrizeRationalNormalCurve(C) : Crv -> MapSch
These functions are as above (see Parametrization), but use different algorithms.

When C is a plane curve with only ordinary singularities (see subsection Ordinary Plane Curves), a slightly different procedure is followed that relies less on the general function field machinery and tends to be faster and can produce nicer parametrizations. The variants ParametrizeOrdinaryCurve allow direct calls to these more specialised procedures. The I argument is the adjoint ideal of C (loc. cit.), which may be passed in if already computed.

The final function listed is slightly different. It applies only to rational normal curves, ie non-singular rational curves of degree d in ordinary d-dimensional projective space for d ≥1. For the sake of speed, the irreducibility of C is not checked. The function uses adjoint maps to find either a line or conic parametrization of C: if d is odd, an isomorphism from the projective line to C is returned, and if d is even an isomorphism from a plane conic is returned. The method uses no function field machinery and can be much faster than the general function.


Example CrvCon_RationalParametrization (H111E12)

In this example we show how to parametrize a projective rational curve with a map from the one-dimensional projective space. First we construct a singular plane curve and verify that it has geometric genus zero.

> k := FiniteField(101);
> P2<x,y,z> := ProjectiveSpace(k,2);
> f := x^7 + 3*x^3*y^2*z^2 + 5*y^4*z^3;
> C := Curve(P2,f);            
> Genus(C);
0
In order to parametrize the curve, we need to find a nonsingular point on the curve C, or at least a point of C over which there exists a unique degree one place --- geometrically such a point is one at which C has a cusp. In order to find such a point we can call the intrinsic RationalPoints(C) which, over a finite field, returns an indexed set all points rational points of C over its base field. Having done so in the background, we demonstrate that the particular point (2 : 33 : 1) is such a nonsingular rational point.

> p := C![2,33,1];
> p;
(2 : 33 : 1)
> IsNonsingular(C,p);
true
The parametrization function takes a projective line as the third argument, which will be used as the domain of the parametrization map.

> P1<u,v> := ProjectiveSpace(k,1);
> phi := Parametrization(C, Place(p), Curve(P1));
> phi;
Mapping from: Prj: P1 to Prj: P2
with equations : 2*u^7 + 5*u^6*v + 81*u^5*v^2 + 80*u^4*v^3 + 13*u^3*v^4
33*u^7 + 88*u^6*v + 90*u^5*v^2 + 73*u^4*v^3 + 25*u^3*v^4 +
    83*u^2*v^5 + 72*u*v^6 + 24*v^7
u^7
Finally we confirm that the map really does parametrize the curve C. Note that the map is normalized so that the point at infinity on the projective line P1 maps to the prescribed point p.

> Image(phi);   
Scheme over GF(101) defined by
x^7 + 3*x^3*y^2*z^2 + 5*y^4*z^3
> Image(phi) eq C;
false
> DefiningIdeal(Image(phi)) eq DefiningIdeal(C);
true
> phi(P1![1,0]);
(2 : 33 : 1)

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]
                       

Version: V2.16 of Mon Nov 16 15:04:45 EST 2009

Valid HTML 4.01! Valid CSS!