next | previous | forward | backward | up | top | index | toc | Macaulay2 website
RationalMaps :: isBirationalMap

isBirationalMap -- Checks if a map between projective varieties is birational.



This checks if a map between projective varieties is birational. There are a number of ways to call this. A simple one is to pass the function a map between two graded rings. In this case, the variables should be sent to elements of a single fixed degree. The option AssumeDominant being true will cause the function to assume that the kernel of the associated ring map is zero (default value is false). The target and source must be varieties, in particular their defining ideals must be prime. Let's check that the plane quadratic cremona transformation is birational.

i1 : R=QQ[x,y,z];
i2 : S=QQ[a,b,c];
i3 : Pi = map(R, S, {x*y, x*z, y*z});

o3 : RingMap R <--- S
i4 : isBirationalMap(Pi, Verbose=>false, Strategy=>SimisStrategy )

o4 = true

We can also verify that a cover of $P^1$ by an elliptic curve is not birational.

i5 : R=QQ[x,y,z]/(x^3+y^3-z^3);
i6 : S=QQ[s,t];
i7 : Pi = map(R, S, {x, y-z});

o7 : RingMap R <--- S
i8 : isBirationalMap(Pi, Verbose=>false)

o8 = false

Note the Frobenius map is not birational.

i9 : R = ZZ/5[x,y,z]/(x^3+y^3-z^3);
i10 : S = ZZ/5[a,b,c]/(a^3+b^3-b^3);
i11 : h = map(R, S, {x^5, y^5, z^5});

o11 : RingMap R <--- S
i12 : isBirationalMap(h, Strategy=>SaturationStrategy)
isBirationalMap: About to find the image of the map.  If you know the image, 
        you may want to use the AssumeDominant option if this is slow.
isBirationalMap: Found the image of the map.
Starting isBirationalOntoImage
isBirationalOntoImageRees:  About to compute the Jacobian Dual Matrix,
if it is slow, run again and  set Strategy=>HybridStrategy or SimisStrategy.
isBirationalOntoImageRees: computed Jacobian Dual Matrix- barJD
Jacobain dual matrix has  3 columns  and   0 rows.
isBirationalOntoImageRees: is computing the rank of the  Jacobian Dual Matrix- barJD

o12 = false


Also see the very fast probabilisitc birationality checking of the Cremona package: isBirational

See also

Ways to use isBirationalMap :

For the programmer

The object isBirationalMap is a method function with options.