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

isBirationalOntoImage -- Checks if a map between projective varieties is birational onto its image.



This checks whether $f : X \to Y$ is birational onto its image. We do this by computing the image and then calling isBirationalOntoImage. 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 source must be a variety, in particular its defining ideals 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, Verbose=>false)

o4 = true
i5 : isBirationalMap(Pi,  Verbose=>false)

o5 = false

Sub-Hankel matrices have homaloidal determinants.

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, Verbose=>false)

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)
Starting isBirationalOntoImage
Starting inverseOfMapOntoImageSimis(SimisStrategy or HybridStrategy)
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.
isBirationalOntoImageSimis: Found the image of the map.
isBirationalOntoImageSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 1}.
isBirationalOntoImageSimis: Found Jacobian dual matrix (or a weak form of it), it has  5 columns  and about  6 rows.
isBirationalOntoImageSimis: is computing the rank of the  Jacobian Dual Matrix- barJD
isRankAtLeast: Going to single threaded version.
getSubmatrixOfRank: Trying to find a submatrix of rank at least: 4 with attempts = 3.  DetStrategy=>Rank
internalChooseMinor: Choosing GRevLexSmallestTerm
internalChooseMinor: Choosing GRevLexSmallestTerm
internalChooseMinor: Choosing GRevLexSmallestTerm
getSubmatrixOfRank: found one, in 3 attempts

o14 = true

See also

Ways to use isBirationalOntoImage :

For the programmer

The object isBirationalOntoImage is a method function with options.