next | previous | forward | backward | up | index | toc

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

## Synopsis

• Usage:
val = isBirationalOntoImage(Pi)
val = isBirationalOntoImage(phi)
• Inputs:
• Pi, , A ring map S to R corresponding to a rational map between projective varieties
• phi, an instance of the type RationalMapping, A rational map between projective varieties
• Optional inputs:
• Verbosity => an integer, default value 1, if 0 then silence the function, if 1 then generate informative output which can be used to adjust strategies, if > 1 then generate a detailed description of the execution
• AssumeDominant => , default value false, whether to assume the provided rational map of projective varieties is dominant, if true it can speed up computation as a kernel will not be computed
• Strategy => , default value HybridStrategy, choose the strategy to use: HybridStrategy, SimisStrategy, or ReesStrategy
• HybridLimit => an integer, default value 15, within HybridStrategy, the option HybridLimit controls how often SimisStrategy and ReesStrategy are used, larger numbers means SimisStrategy will be executed longer
• MinorsLimit => an integer, default value null, how many submatrices of a variant of the Jacobian dual matrix to consider before switching to a different strategy
• QuickRank => , default value true, whether to compute rank via the package FastMinors
• Outputs:
• val, , true if the map is birational onto its image, false if otherwise

## Description

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