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

isBirationalOntoImage -- whether a map between projective varieties is birational onto its image



The function isBirationalOntoImage computes whether $f : X \to Y$ is birational onto its image. It is essentially a combination of mapOntoImage with isBirationalOntoImage. Setting option AssumeDominant to true will cause the function to assume that the kernel of the associated ring map is zero (default value is false). The source must be a variety; its defining ideal must be prime. In the following example, the map is not birational, but it is birational onto its image.

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

o3 : RingMap R <--- S
i4 : isBirationalOntoImage(Pi, Verbosity=>0)

o4 = true
i5 : isBirationalMap(Pi,  Verbosity=>0)

o5 = false

Sub-Hankel matrices (matrices whose ascending skew-diagonal entries are constant) have homaloidal determinants (the associated partial derivatives define a Cremona map). For more discussion see:

  • Mostafazadehfard, Maral; Simis, Aron. Homaloidal determinants. J. Algebra 450 (2016), 59--101.

Consider the following example illustrating this.

i6 : A = QQ[z_0..z_6];
i7 : H=map(A^4,4,(i,j)->A_(i+j));

             4       4
o7 : Matrix A  <--- A
i8 : SH=sub(H,{z_5=>0,z_6=>0})

o8 = | z_0 z_1 z_2 z_3 |
     | z_1 z_2 z_3 z_4 |
     | z_2 z_3 z_4 0   |
     | z_3 z_4 0   0   |

             4       4
o8 : Matrix A  <--- A
i9 : sh=map(A, A, transpose jacobian ideal det SH );

o9 : RingMap A <--- A
i10 : isBirationalOntoImage(sh, Verbosity=>0)

o10 = false
i11 : B=QQ[t_0..t_4];
i12 : li=map(B,A,matrix{{t_0..t_4,0,0}});

o12 : RingMap B <--- A
i13 : phi=li*sh;

o13 : RingMap B <--- A
i14 : isBirationalOntoImage(phi, HybridLimit=>2)
isBirationalOntoImageSimis: 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.

o14 = true

See also

Ways to use isBirationalOntoImage :

For the programmer

The object isBirationalOntoImage is a method function with options.