# approximateInverseMap -- random map related to the inverse of a birational map

## Synopsis

• Usage:
approximateInverseMap phi
approximateInverseMap(phi,d)
• Inputs:
• phi, , a birational map
• d, an integer, optional, but it should be the degree of the forms defining the inverse of phi
• Optional inputs:
• CodimBsInv => ..., default value null,
• MathMode => ..., default value false, whether to ensure correctness of output
• Verbose => ..., default value true,
• Outputs:
• , a random rational map which in some sense is related to the inverse of phi (e.g., they should have the same base locus)

## Description

The algorithm is to try to construct the ideal of the base locus of the inverse by looking for the images via phi of random linear sections of the source variety. Generally, one can speed up the process by passing through the option CodimBsInv a good lower bound for the codimension of this base locus.

 i1 : P8 = ZZ/97[t_0..t_8]; i2 : phi = inverseMap rationalMap(trim(minors(2,genericMatrix(P8,3,3))+random(2,P8)),Dominant=>true) o2 = -- rational map -- ZZ source: subvariety of Proj(--[x , x , x , x , x , x , x , x , x , x ]) defined by 97 0 1 2 3 4 5 6 7 8 9 { 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 x x + 14x x x + 26x x - 2x x x x - 14x x x x + 11x x x x + 19x x x + x x - 11x x x + 38x x - 14x x x x - 11x x x + 45x x x x - 19x x x x + 14x x x + 11x x x x - 19x x x x + 21x x x x + 26x x + 19x x x + 38x x - 30x x x - 11x x x x - 11x x x + 30x x x x + 22x x x x + 11x x x x - 22x x x + 10x x x x + 11x x x x - 42x x x x - 10x x x x + 42x x x - 38x x - 37x x x + 7x x + 28x x x - 38x x - 3x x x - 29x x x - 47x x x + 36x x + 30x x x x - 22x x x - 20x x x x - 41x x x - 30x x x + 22x x x x + 20x x x x - 4x x x + 26x x x x + 41x x x x - 28x x x x + 4x x x x - 26x x x x + 12x x x x + 28x x x - 12x x x - 21x x x x - 28x x x x + 37x x x x + 21x x x x - 11x x x - 28x x x x - 21x x x x + 3x x x x + 47x x x x + 48x x x x + 2x x x x - 45x x x x - 33x x x - 38x x + 28x x x - 38x x - 21x x x + 48x x - 48x x x + 45x x x - 47x x x - 48x x + 11x x x x - 10x x x + 20x x x + 11x x x x + 42x x x + 41x x x x - 11x x x + 10x x x x - 20x x x x - 26x x x x + 28x x x x + 4x x x x + 26x x x - 12x x x - 11x x x - 42x x x x - 41x x x x - 4x x x - 28x x x x + 12x x x x + 37x x x x + 3x x x x - 21x x x - 14x x x x + 29x x x x + 11x x x x + 47x x x x - 48x x x x - 2x x x x + 45x x x + 29x x x x + 25x x x x + 33x x x x - 37x x x - 3x x x x - 47x x x + 21x x x x + 11x x x x + x x x x + 48x x x x - 45x x x x + 47x x x x - 2x x x x + 33x x x x + 47x x x x - x x x x + 7x x - 29x x x + 36x x - 11x x x + 48x x + 2x x x - 33x x x - 47x x x - 48x x + 48x x x x - 48x x x x - 48x x x x + 48x x x x + 48x x x x - 48x x x x 1 2 1 2 3 1 3 0 1 2 4 0 1 3 4 1 2 3 4 1 3 4 0 4 0 3 4 3 4 0 1 2 5 1 2 5 0 1 3 5 1 2 3 5 0 4 5 0 2 4 5 0 3 4 5 2 3 4 5 0 5 0 2 5 2 5 1 2 6 1 2 3 6 1 3 6 0 2 4 6 1 2 4 6 0 3 4 6 0 4 6 1 2 5 6 0 3 5 6 1 3 5 6 0 4 5 6 0 5 6 2 6 2 3 6 3 6 2 4 6 4 6 2 5 6 3 5 6 4 5 6 5 6 0 1 2 7 1 2 7 1 2 3 7 1 3 7 0 4 7 0 1 4 7 0 3 4 7 3 4 7 1 2 5 7 0 3 5 7 1 3 5 7 2 3 5 7 0 4 5 7 3 4 5 7 0 5 7 2 5 7 0 2 6 7 1 2 6 7 0 3 6 7 2 3 6 7 3 6 7 0 4 6 7 1 4 6 7 0 5 6 7 1 5 6 7 2 5 6 7 3 5 6 7 4 5 6 7 5 6 7 0 7 0 1 7 1 7 0 3 7 3 7 0 5 7 1 5 7 3 5 7 5 7 0 1 2 8 1 2 8 1 2 8 0 1 3 8 1 3 8 1 2 3 8 0 4 8 0 1 4 8 0 2 4 8 1 2 4 8 1 3 4 8 2 3 4 8 0 4 8 3 4 8 0 5 8 0 1 5 8 0 2 5 8 2 5 8 0 4 5 8 2 4 5 8 0 2 6 8 1 2 6 8 2 6 8 0 3 6 8 1 3 6 8 2 3 6 8 1 4 6 8 2 4 6 8 3 4 6 8 4 6 8 0 5 6 8 1 5 6 8 4 5 6 8 0 7 8 0 1 7 8 1 7 8 0 2 7 8 0 3 7 8 2 3 7 8 0 4 7 8 1 4 7 8 3 4 7 8 0 5 7 8 1 5 7 8 2 5 7 8 4 5 7 8 0 8 0 1 8 1 8 0 2 8 2 8 0 4 8 1 4 8 2 4 8 4 8 3 4 6 9 2 5 6 9 1 3 7 9 0 5 7 9 1 2 8 9 0 4 8 9 } ZZ target: Proj(--[t , t , t , t , t , t , t , t , t ]) 97 0 1 2 3 4 5 6 7 8 defining forms: { x x - x x , 5 7 4 8 x x - x x , 5 6 1 8 x x - x x , 4 6 1 7 x x - x x , 3 7 2 8 x x - x x , 3 6 0 8 x x - x x , 2 6 0 7 x x - x x , 3 4 2 5 x x - x x , 1 3 0 5 x x - x x 1 2 0 4 } o2 : RationalMap (quadratic rational map from hypersurface in PP^9 to PP^8) i3 : time psi = approximateInverseMap phi -- approximateInverseMap: step 1 of 10 -- approximateInverseMap: step 2 of 10 -- approximateInverseMap: step 3 of 10 -- approximateInverseMap: step 4 of 10 -- approximateInverseMap: step 5 of 10 -- approximateInverseMap: step 6 of 10 -- approximateInverseMap: step 7 of 10 -- approximateInverseMap: step 8 of 10 -- approximateInverseMap: step 9 of 10 -- approximateInverseMap: step 10 of 10 -- used 2.06978 seconds o3 = -- rational map -- ZZ source: Proj(--[t , t , t , t , t , t , t , t , t ]) 97 0 1 2 3 4 5 6 7 8 ZZ target: subvariety of Proj(--[x , x , x , x , x , x , x , x , x , x ]) defined by 97 0 1 2 3 4 5 6 7 8 9 { 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 x x + 14x x x + 26x x - 2x x x x - 14x x x x + 11x x x x + 19x x x + x x - 11x x x + 38x x - 14x x x x - 11x x x + 45x x x x - 19x x x x + 14x x x + 11x x x x - 19x x x x + 21x x x x + 26x x + 19x x x + 38x x - 30x x x - 11x x x x - 11x x x + 30x x x x + 22x x x x + 11x x x x - 22x x x + 10x x x x + 11x x x x - 42x x x x - 10x x x x + 42x x x - 38x x - 37x x x + 7x x + 28x x x - 38x x - 3x x x - 29x x x - 47x x x + 36x x + 30x x x x - 22x x x - 20x x x x - 41x x x - 30x x x + 22x x x x + 20x x x x - 4x x x + 26x x x x + 41x x x x - 28x x x x + 4x x x x - 26x x x x + 12x x x x + 28x x x - 12x x x - 21x x x x - 28x x x x + 37x x x x + 21x x x x - 11x x x - 28x x x x - 21x x x x + 3x x x x + 47x x x x + 48x x x x + 2x x x x - 45x x x x - 33x x x - 38x x + 28x x x - 38x x - 21x x x + 48x x - 48x x x + 45x x x - 47x x x - 48x x + 11x x x x - 10x x x + 20x x x + 11x x x x + 42x x x + 41x x x x - 11x x x + 10x x x x - 20x x x x - 26x x x x + 28x x x x + 4x x x x + 26x x x - 12x x x - 11x x x - 42x x x x - 41x x x x - 4x x x - 28x x x x + 12x x x x + 37x x x x + 3x x x x - 21x x x - 14x x x x + 29x x x x + 11x x x x + 47x x x x - 48x x x x - 2x x x x + 45x x x + 29x x x x + 25x x x x + 33x x x x - 37x x x - 3x x x x - 47x x x + 21x x x x + 11x x x x + x x x x + 48x x x x - 45x x x x + 47x x x x - 2x x x x + 33x x x x + 47x x x x - x x x x + 7x x - 29x x x + 36x x - 11x x x + 48x x + 2x x x - 33x x x - 47x x x - 48x x + 48x x x x - 48x x x x - 48x x x x + 48x x x x + 48x x x x - 48x x x x 1 2 1 2 3 1 3 0 1 2 4 0 1 3 4 1 2 3 4 1 3 4 0 4 0 3 4 3 4 0 1 2 5 1 2 5 0 1 3 5 1 2 3 5 0 4 5 0 2 4 5 0 3 4 5 2 3 4 5 0 5 0 2 5 2 5 1 2 6 1 2 3 6 1 3 6 0 2 4 6 1 2 4 6 0 3 4 6 0 4 6 1 2 5 6 0 3 5 6 1 3 5 6 0 4 5 6 0 5 6 2 6 2 3 6 3 6 2 4 6 4 6 2 5 6 3 5 6 4 5 6 5 6 0 1 2 7 1 2 7 1 2 3 7 1 3 7 0 4 7 0 1 4 7 0 3 4 7 3 4 7 1 2 5 7 0 3 5 7 1 3 5 7 2 3 5 7 0 4 5 7 3 4 5 7 0 5 7 2 5 7 0 2 6 7 1 2 6 7 0 3 6 7 2 3 6 7 3 6 7 0 4 6 7 1 4 6 7 0 5 6 7 1 5 6 7 2 5 6 7 3 5 6 7 4 5 6 7 5 6 7 0 7 0 1 7 1 7 0 3 7 3 7 0 5 7 1 5 7 3 5 7 5 7 0 1 2 8 1 2 8 1 2 8 0 1 3 8 1 3 8 1 2 3 8 0 4 8 0 1 4 8 0 2 4 8 1 2 4 8 1 3 4 8 2 3 4 8 0 4 8 3 4 8 0 5 8 0 1 5 8 0 2 5 8 2 5 8 0 4 5 8 2 4 5 8 0 2 6 8 1 2 6 8 2 6 8 0 3 6 8 1 3 6 8 2 3 6 8 1 4 6 8 2 4 6 8 3 4 6 8 4 6 8 0 5 6 8 1 5 6 8 4 5 6 8 0 7 8 0 1 7 8 1 7 8 0 2 7 8 0 3 7 8 2 3 7 8 0 4 7 8 1 4 7 8 3 4 7 8 0 5 7 8 1 5 7 8 2 5 7 8 4 5 7 8 0 8 0 1 8 1 8 0 2 8 2 8 0 4 8 1 4 8 2 4 8 4 8 3 4 6 9 2 5 6 9 1 3 7 9 0 5 7 9 1 2 8 9 0 4 8 9 } defining forms: { t t - t t , 5 7 4 8 t t - t t , 2 7 1 8 t t - t t , 5 6 3 8 t t - t t , 4 6 3 7 t t - t t , 2 6 0 8 t t - t t , 1 6 0 7 t t - t t , 2 4 1 5 t t - t t , 2 3 0 5 t t - t t , 1 3 0 4 2 2 2 2 2 2 2 2 2 t + 31t t - 25t + 7t t + 3t t + 21t + 3t t - t + 4t t + 39t t - 22t t + 14t - t t - 6t t - 41t t + 42t t + 23t t + 21t + 24t t - 8t t - 21t + 41t t + 13t t + 15t t - 22t t + 38t t - 45t - 45t t + 20t t + 44t t - 40t t - 22t t + 37t t + 22t t + 28t t + 2t 0 0 1 1 0 2 1 2 2 0 3 3 0 4 1 4 3 4 4 0 5 1 5 2 5 3 5 4 5 5 0 6 3 6 6 0 7 1 7 3 7 4 7 6 7 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 } o3 : RationalMap (quadratic rational map from PP^8 to hypersurface in PP^9) i4 : assert(phi * psi == 1 and psi * phi == 1) i5 : time psi' = approximateInverseMap(phi,CodimBsInv=>5); -- approximateInverseMap: step 1 of 3 -- approximateInverseMap: step 2 of 3 -- approximateInverseMap: step 3 of 3 -- used 1.02928 seconds o5 : RationalMap (quadratic rational map from PP^8 to hypersurface in PP^9) i6 : assert(psi == psi')

A more complicated example is the following (here inverseMap takes a lot of time!).

 i7 : phi = rationalMap map(P8,ZZ/97[x_0..x_11]/ideal(x_1*x_3-8*x_2*x_3+25*x_3^2-25*x_2*x_4-22*x_3*x_4+x_0*x_5+13*x_2*x_5+41*x_3*x_5-x_0*x_6+12*x_2*x_6+25*x_1*x_7+25*x_3*x_7+23*x_5*x_7-3*x_6*x_7+2*x_0*x_8+11*x_1*x_8-37*x_3*x_8-23*x_4*x_8-33*x_6*x_8+8*x_0*x_9+10*x_1*x_9-25*x_2*x_9-9*x_3*x_9+3*x_4*x_9+24*x_5*x_9-27*x_6*x_9-5*x_0*x_10+28*x_1*x_10+37*x_2*x_10+9*x_4*x_10+27*x_6*x_10-25*x_0*x_11+9*x_2*x_11+27*x_4*x_11-27*x_5*x_11,x_2^2+17*x_2*x_3-14*x_3^2-13*x_2*x_4+34*x_3*x_4+44*x_0*x_5-30*x_2*x_5+27*x_3*x_5+31*x_2*x_6-36*x_3*x_6-x_0*x_7+13*x_1*x_7+8*x_3*x_7+9*x_5*x_7+46*x_6*x_7+41*x_0*x_8-7*x_1*x_8-34*x_3*x_8-9*x_4*x_8-46*x_6*x_8-17*x_0*x_9+32*x_1*x_9-8*x_2*x_9-35*x_3*x_9-46*x_4*x_9+26*x_5*x_9+17*x_6*x_9+15*x_0*x_10+35*x_1*x_10+34*x_2*x_10+20*x_4*x_10+14*x_0*x_11+36*x_1*x_11+35*x_2*x_11-17*x_4*x_11,x_1*x_2-40*x_2*x_3+28*x_3^2-x_0*x_4+5*x_2*x_4-16*x_3*x_4+5*x_0*x_5-36*x_2*x_5+37*x_3*x_5+48*x_2*x_6-5*x_1*x_7-5*x_3*x_7+x_5*x_7+20*x_6*x_7+10*x_0*x_8+34*x_1*x_8+41*x_3*x_8-x_4*x_8+x_6*x_8+40*x_0*x_9-32*x_1*x_9+5*x_2*x_9-11*x_3*x_9-20*x_4*x_9+45*x_5*x_9-14*x_6*x_9-25*x_0*x_10+45*x_1*x_10-41*x_2*x_10-46*x_4*x_10+8*x_6*x_10-28*x_0*x_11+11*x_2*x_11+14*x_4*x_11-8*x_5*x_11),{t_4^2+t_0*t_5+t_1*t_5+35*t_2*t_5+10*t_3*t_5+25*t_4*t_5-5*t_5^2-14*t_0*t_6-14*t_1*t_6-5*t_2*t_6-13*t_4*t_6+37*t_5*t_6+22*t_6^2-31*t_3*t_7+26*t_4*t_7+12*t_5*t_7-45*t_6*t_7-46*t_3*t_8+37*t_4*t_8+28*t_5*t_8+33*t_6*t_8,t_3*t_4+4*t_0*t_5+39*t_1*t_5-40*t_2*t_5+40*t_3*t_5+26*t_4*t_5-20*t_5^2+41*t_0*t_6+36*t_1*t_6-22*t_2*t_6+36*t_4*t_6-30*t_5*t_6-13*t_6^2-25*t_3*t_7+5*t_4*t_7-35*t_5*t_7+10*t_6*t_7+11*t_3*t_8+46*t_4*t_8+29*t_5*t_8+28*t_6*t_8,t_2*t_4-5*t_0*t_5-40*t_1*t_5+12*t_2*t_5+47*t_3*t_5+37*t_4*t_5+25*t_5^2-27*t_0*t_6-22*t_1*t_6+27*t_2*t_6-23*t_4*t_6+5*t_5*t_6-13*t_6^2-39*t_3*t_7-29*t_4*t_7+9*t_5*t_7+39*t_6*t_7+36*t_3*t_8+13*t_4*t_8+26*t_5*t_8+37*t_6*t_8,t_0*t_4-t_0*t_5-8*t_1*t_5-35*t_2*t_5-10*t_3*t_5-33*t_4*t_5+5*t_5^2+15*t_0*t_6+15*t_1*t_6+5*t_2*t_6+15*t_4*t_6-38*t_5*t_6-22*t_6^2+31*t_3*t_7-25*t_4*t_7-19*t_5*t_7+47*t_6*t_7+46*t_3*t_8-36*t_4*t_8-35*t_5*t_8-31*t_6*t_8,t_2*t_3-t_0*t_5-t_1*t_5-35*t_2*t_5-10*t_3*t_5-33*t_4*t_5+5*t_5^2+14*t_0*t_6+14*t_1*t_6+5*t_2*t_6+14*t_4*t_6-31*t_5*t_6-24*t_6^2+32*t_3*t_7-25*t_4*t_7-19*t_5*t_7+47*t_6*t_7+46*t_3*t_8-36*t_4*t_8-35*t_5*t_8-31*t_6*t_8,t_1*t_3-7*t_1*t_5+t_1*t_6+t_4*t_6-7*t_5*t_6+2*t_6^2-t_3*t_7,t_0*t_3-46*t_0*t_5-39*t_1*t_5-43*t_2*t_5-41*t_3*t_5-26*t_4*t_5-28*t_5^2-35*t_0*t_6-36*t_1*t_6+20*t_2*t_6-36*t_4*t_6+9*t_5*t_6+15*t_6^2+26*t_3*t_7-5*t_4*t_7+35*t_5*t_7-10*t_6*t_7-10*t_3*t_8-46*t_4*t_8+47*t_5*t_8-25*t_6*t_8,t_2^2-46*t_1*t_4-33*t_0*t_5-45*t_1*t_5-39*t_2*t_5-39*t_3*t_5-46*t_4*t_5-29*t_5^2-48*t_0*t_6-38*t_1*t_6-30*t_2*t_6+19*t_4*t_6-44*t_5*t_6-47*t_6^2-36*t_0*t_7-46*t_1*t_7+t_2*t_7-44*t_3*t_7+48*t_4*t_7-14*t_5*t_7+4*t_6*t_7-36*t_0*t_8-46*t_1*t_8+47*t_2*t_8-34*t_3*t_8-24*t_4*t_8-12*t_5*t_8-47*t_6*t_8+47*t_7*t_8,t_1*t_2+6*t_1*t_5+5*t_0*t_6-2*t_1*t_6-t_4*t_6-t_5*t_6+5*t_0*t_7+t_1*t_7-2*t_2*t_7-7*t_5*t_7+2*t_6*t_7-2*t_1*t_8+3*t_7*t_8,t_0*t_2+t_1*t_4+5*t_0*t_5+32*t_1*t_5-20*t_2*t_5-47*t_3*t_5-37*t_4*t_5-25*t_5^2+19*t_0*t_6+22*t_1*t_6-25*t_2*t_6+25*t_4*t_6-5*t_5*t_6+13*t_6^2+5*t_0*t_7+t_1*t_7+39*t_3*t_7+28*t_4*t_7-9*t_5*t_7-39*t_6*t_7+4*t_0*t_8+t_1*t_8-36*t_3*t_8-14*t_4*t_8-26*t_5*t_8-37*t_6*t_8,t_0*t_1-39*t_1*t_4+40*t_1*t_5-37*t_0*t_6-39*t_1*t_6+19*t_4*t_6-39*t_5*t_6-38*t_0*t_7+39*t_1*t_7+19*t_2*t_7+18*t_5*t_7-19*t_6*t_7+19*t_1*t_8+20*t_7*t_8,t_0^2+12*t_1*t_4+20*t_0*t_5+27*t_1*t_5-8*t_2*t_5+37*t_3*t_5+28*t_4*t_5+30*t_5^2-46*t_0*t_6+24*t_1*t_6-40*t_2*t_6+25*t_4*t_6+16*t_5*t_6-35*t_6^2+29*t_0*t_7+12*t_1*t_7-35*t_2*t_7-8*t_3*t_7-18*t_4*t_7+42*t_5*t_7-12*t_6*t_7-6*t_0*t_8+12*t_1*t_8-15*t_3*t_8+9*t_4*t_8+20*t_5*t_8-30*t_6*t_8+4*t_7*t_8}) o7 = -- rational map -- ZZ source: Proj(--[t , t , t , t , t , t , t , t , t ]) 97 0 1 2 3 4 5 6 7 8 ZZ target: subvariety of Proj(--[x , x , x , x , x , x , x , x , x , x , x , x ]) defined by 97 0 1 2 3 4 5 6 7 8 9 10 11 { 2 x x - 8x x + 25x - 25x x - 22x x + x x + 13x x + 41x x - x x + 12x x + 25x x + 25x x + 23x x - 3x x + 2x x + 11x x - 37x x - 23x x - 33x x + 8x x + 10x x - 25x x - 9x x + 3x x + 24x x - 27x x - 5x x + 28x x + 37x x + 9x x + 27x x - 25x x + 9x x + 27x x - 27x x , 1 3 2 3 3 2 4 3 4 0 5 2 5 3 5 0 6 2 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 2 2 x + 17x x - 14x - 13x x + 34x x + 44x x - 30x x + 27x x + 31x x - 36x x - x x + 13x x + 8x x + 9x x + 46x x + 41x x - 7x x - 34x x - 9x x - 46x x - 17x x + 32x x - 8x x - 35x x - 46x x + 26x x + 17x x + 15x x + 35x x + 34x x + 20x x + 14x x + 36x x + 35x x - 17x x , 2 2 3 3 2 4 3 4 0 5 2 5 3 5 2 6 3 6 0 7 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 0 11 1 11 2 11 4 11 2 x x - 40x x + 28x - x x + 5x x - 16x x + 5x x - 36x x + 37x x + 48x x - 5x x - 5x x + x x + 20x x + 10x x + 34x x + 41x x - x x + x x + 40x x - 32x x + 5x x - 11x x - 20x x + 45x x - 14x x - 25x x + 45x x - 41x x - 46x x + 8x x - 28x x + 11x x + 14x x - 8x x 1 2 2 3 3 0 4 2 4 3 4 0 5 2 5 3 5 2 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 } defining forms: { 2 2 2 t + t t + t t + 35t t + 10t t + 25t t - 5t - 14t t - 14t t - 5t t - 13t t + 37t t + 22t - 31t t + 26t t + 12t t - 45t t - 46t t + 37t t + 28t t + 33t t , 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 3 7 4 7 5 7 6 7 3 8 4 8 5 8 6 8 2 2 t t + 4t t + 39t t - 40t t + 40t t + 26t t - 20t + 41t t + 36t t - 22t t + 36t t - 30t t - 13t - 25t t + 5t t - 35t t + 10t t + 11t t + 46t t + 29t t + 28t t , 3 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 3 7 4 7 5 7 6 7 3 8 4 8 5 8 6 8 2 2 t t - 5t t - 40t t + 12t t + 47t t + 37t t + 25t - 27t t - 22t t + 27t t - 23t t + 5t t - 13t - 39t t - 29t t + 9t t + 39t t + 36t t + 13t t + 26t t + 37t t , 2 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 3 7 4 7 5 7 6 7 3 8 4 8 5 8 6 8 2 2 t t - t t - 8t t - 35t t - 10t t - 33t t + 5t + 15t t + 15t t + 5t t + 15t t - 38t t - 22t + 31t t - 25t t - 19t t + 47t t + 46t t - 36t t - 35t t - 31t t , 0 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 3 7 4 7 5 7 6 7 3 8 4 8 5 8 6 8 2 2 t t - t t - t t - 35t t - 10t t - 33t t + 5t + 14t t + 14t t + 5t t + 14t t - 31t t - 24t + 32t t - 25t t - 19t t + 47t t + 46t t - 36t t - 35t t - 31t t , 2 3 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 3 7 4 7 5 7 6 7 3 8 4 8 5 8 6 8 2 t t - 7t t + t t + t t - 7t t + 2t - t t , 1 3 1 5 1 6 4 6 5 6 6 3 7 2 2 t t - 46t t - 39t t - 43t t - 41t t - 26t t - 28t - 35t t - 36t t + 20t t - 36t t + 9t t + 15t + 26t t - 5t t + 35t t - 10t t - 10t t - 46t t + 47t t - 25t t , 0 3 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 3 7 4 7 5 7 6 7 3 8 4 8 5 8 6 8 2 2 2 t - 46t t - 33t t - 45t t - 39t t - 39t t - 46t t - 29t - 48t t - 38t t - 30t t + 19t t - 44t t - 47t - 36t t - 46t t + t t - 44t t + 48t t - 14t t + 4t t - 36t t - 46t t + 47t t - 34t t - 24t t - 12t t - 47t t + 47t t , 2 1 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 0 7 1 7 2 7 3 7 4 7 5 7 6 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 t t + 6t t + 5t t - 2t t - t t - t t + 5t t + t t - 2t t - 7t t + 2t t - 2t t + 3t t , 1 2 1 5 0 6 1 6 4 6 5 6 0 7 1 7 2 7 5 7 6 7 1 8 7 8 2 2 t t + t t + 5t t + 32t t - 20t t - 47t t - 37t t - 25t + 19t t + 22t t - 25t t + 25t t - 5t t + 13t + 5t t + t t + 39t t + 28t t - 9t t - 39t t + 4t t + t t - 36t t - 14t t - 26t t - 37t t , 0 2 1 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 0 7 1 7 3 7 4 7 5 7 6 7 0 8 1 8 3 8 4 8 5 8 6 8 t t - 39t t + 40t t - 37t t - 39t t + 19t t - 39t t - 38t t + 39t t + 19t t + 18t t - 19t t + 19t t + 20t t , 0 1 1 4 1 5 0 6 1 6 4 6 5 6 0 7 1 7 2 7 5 7 6 7 1 8 7 8 2 2 2 t + 12t t + 20t t + 27t t - 8t t + 37t t + 28t t + 30t - 46t t + 24t t - 40t t + 25t t + 16t t - 35t + 29t t + 12t t - 35t t - 8t t - 18t t + 42t t - 12t t - 6t t + 12t t - 15t t + 9t t + 20t t - 30t t + 4t t 0 1 4 0 5 1 5 2 5 3 5 4 5 5 0 6 1 6 2 6 4 6 5 6 6 0 7 1 7 2 7 3 7 4 7 5 7 6 7 0 8 1 8 3 8 4 8 5 8 6 8 7 8 } o7 : RationalMap (quadratic rational map from PP^8 to 8-dimensional subvariety of PP^11) i8 : -- without the option 'CodimBsInv=>4', it takes about triple time time psi=approximateInverseMap(phi,CodimBsInv=>4) -- approximateInverseMap: step 1 of 3 -- approximateInverseMap: step 2 of 3 -- approximateInverseMap: step 3 of 3 -- used 5.52523 seconds o8 = -- rational map -- ZZ source: subvariety of Proj(--[x , x , x , x , x , x , x , x , x , x , x , x ]) defined by 97 0 1 2 3 4 5 6 7 8 9 10 11 { 2 x x - 8x x + 25x - 25x x - 22x x + x x + 13x x + 41x x - x x + 12x x + 25x x + 25x x + 23x x - 3x x + 2x x + 11x x - 37x x - 23x x - 33x x + 8x x + 10x x - 25x x - 9x x + 3x x + 24x x - 27x x - 5x x + 28x x + 37x x + 9x x + 27x x - 25x x + 9x x + 27x x - 27x x , 1 3 2 3 3 2 4 3 4 0 5 2 5 3 5 0 6 2 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 2 2 x + 17x x - 14x - 13x x + 34x x + 44x x - 30x x + 27x x + 31x x - 36x x - x x + 13x x + 8x x + 9x x + 46x x + 41x x - 7x x - 34x x - 9x x - 46x x - 17x x + 32x x - 8x x - 35x x - 46x x + 26x x + 17x x + 15x x + 35x x + 34x x + 20x x + 14x x + 36x x + 35x x - 17x x , 2 2 3 3 2 4 3 4 0 5 2 5 3 5 2 6 3 6 0 7 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 0 11 1 11 2 11 4 11 2 x x - 40x x + 28x - x x + 5x x - 16x x + 5x x - 36x x + 37x x + 48x x - 5x x - 5x x + x x + 20x x + 10x x + 34x x + 41x x - x x + x x + 40x x - 32x x + 5x x - 11x x - 20x x + 45x x - 14x x - 25x x + 45x x - 41x x - 46x x + 8x x - 28x x + 11x x + 14x x - 8x x 1 2 2 3 3 0 4 2 4 3 4 0 5 2 5 3 5 2 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 } ZZ target: Proj(--[t , t , t , t , t , t , t , t , t ]) 97 0 1 2 3 4 5 6 7 8 defining forms: { x x + 2x x + x x + 2x x - 4x x - 2x x + x x - 6x x - 5x x - 10x x + 25x x + 5x x - 5x x , 3 5 5 7 1 8 2 8 3 8 4 8 5 8 5 9 1 10 2 10 3 10 4 10 5 10 x x + 6x x + 2x x + 5x x - 10x x - 6x x - 46x x - 44x x - 22x x + 36x x - 25x x + 14x x + 15x x + 36x x + 36x x - 36x x , 2 5 5 7 1 8 2 8 3 8 4 8 5 8 6 8 5 9 1 10 2 10 3 10 4 10 5 10 6 10 5 11 x x + 8x x + x x + 4x x + 10x x - 25x x - 8x x + 5x x - 25x x - 20x x - 45x x + 28x x + 20x x - 25x x , 0 5 5 7 0 8 1 8 2 8 3 8 4 8 5 8 5 9 1 10 2 10 3 10 4 10 5 10 x x - 4x x + 46x x - 38x x - 43x x - 39x x - 41x x + 19x x + 40x x + 43x x - 39x x - 37x x + 3x x + 38x x - 2x x + 39x x - 11x x - 28x x + 21x x - 5x x - 10x x + x x - x x - 46x x + 2x x + x x , 3 4 2 6 3 6 3 7 5 7 6 7 1 8 2 8 3 8 4 8 5 8 6 8 1 9 2 9 3 9 4 9 5 9 1 10 2 10 3 10 4 10 5 10 6 10 1 11 2 11 5 11 x x + 17x x + 41x x - x x - 18x x + 46x x - 16x x - 36x x + 9x x - 27x x - 46x x - 44x x - 29x x - 17x x + 18x x + 45x x + 16x x + 5x x + 36x x + 39x x - 36x x - 33x x - 29x x + 26x x - 26x x - 41x x - 45x x - 36x x + 26x x , 2 4 2 6 3 6 1 7 3 7 5 7 6 7 1 8 2 8 3 8 4 8 5 8 6 8 1 9 2 9 3 9 4 9 5 9 6 9 1 10 2 10 3 10 4 10 5 10 6 10 1 11 2 11 4 11 5 11 2 x - 32x x + 42x x + 27x x - 42x x + 33x x + 33x x - 21x x - 25x x + 45x x + 23x x + 10x x - 7x x + 5x x - 7x x + 45x x + 25x x - 47x x + 4x x - 29x x + 32x x - 13x x - 47x x - 42x x - 18x x - 5x x + 44x x - 39x x - 15x x - 31x x + 15x x - 17x x - 29x x + 35x x - 17x x - 31x x , 3 0 4 0 6 2 6 3 6 0 7 2 7 3 7 5 7 6 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 3 10 4 10 5 10 6 10 0 11 1 11 2 11 3 11 5 11 x x + x x - 16x x - 10x x + 2x x + 2x x + 34x x + 22x x + 38x x + x x + 30x x - 21x x - 34x x - 21x x + 38x x + 46x x - 6x x + 12x x - 48x x + 17x x - 39x x - 44x x - 5x x - 15x x - 13x x - 20x x - 45x x + 4x x - 4x x + 10x x + 8x x + 4x x , 2 3 0 4 2 6 3 6 0 7 2 7 3 7 5 7 6 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 0 10 1 10 2 10 3 10 4 10 5 10 6 10 1 11 2 11 5 11 2 x + 36x x + x x + 7x x - 4x x - 21x x + 30x x - x x - 5x x - 29x x + 2x x - 29x x - 27x x - 5x x + 4x x + 17x x - 44x x + 18x x - 42x x + 39x x + 9x x - 13x x + 48x x - 32x x - 37x x - 4x x - 38x x + 10x x + 13x x + 12x x + 35x x + 13x x + 31x x + 30x x - 45x x - 15x x + 37x x + 44x x + 7x x + 9x x - 25x x - 45x x , 1 0 4 4 5 0 6 1 6 2 6 3 6 4 6 5 6 0 7 1 7 2 7 3 7 5 7 6 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 3 10 4 10 5 10 6 10 0 11 1 11 2 11 3 11 4 11 5 11 x x + 2x x - 5x x - 34x x - 16x x + 31x x + 29x x + 10x x - 27x x - 31x x - 17x x - 28x x + 39x x - 32x x - 7x x - 29x x - 47x x + 35x x + 38x x - 43x x - 2x x - 32x x - 43x x + 12x x - 12x x + 14x x - 47x x - 46x x - 14x x + 48x x + 12x x - 12x x + 48x x - x x - 9x x + 48x x 0 1 0 2 0 3 0 4 0 6 0 7 2 7 3 7 5 7 6 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 3 10 4 10 5 10 6 10 0 11 1 11 2 11 3 11 5 11 } o8 : RationalMap (quadratic rational map from 8-dimensional subvariety of PP^11 to PP^8) i9 : -- but... phi * psi == 1 o9 = false i10 : -- in this case we can remedy enabling the option MathMode time psi = approximateInverseMap(phi,CodimBsInv=>4,MathMode=>true) -- approximateInverseMap: step 1 of 3 -- approximateInverseMap: step 2 of 3 -- approximateInverseMap: step 3 of 3 MathMode: output certified! -- used 7.6376 seconds o10 = -- rational map -- ZZ source: subvariety of Proj(--[x , x , x , x , x , x , x , x , x , x , x , x ]) defined by 97 0 1 2 3 4 5 6 7 8 9 10 11 { 2 x x - 8x x + 25x - 25x x - 22x x + x x + 13x x + 41x x - x x + 12x x + 25x x + 25x x + 23x x - 3x x + 2x x + 11x x - 37x x - 23x x - 33x x + 8x x + 10x x - 25x x - 9x x + 3x x + 24x x - 27x x - 5x x + 28x x + 37x x + 9x x + 27x x - 25x x + 9x x + 27x x - 27x x , 1 3 2 3 3 2 4 3 4 0 5 2 5 3 5 0 6 2 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 2 2 x + 17x x - 14x - 13x x + 34x x + 44x x - 30x x + 27x x + 31x x - 36x x - x x + 13x x + 8x x + 9x x + 46x x + 41x x - 7x x - 34x x - 9x x - 46x x - 17x x + 32x x - 8x x - 35x x - 46x x + 26x x + 17x x + 15x x + 35x x + 34x x + 20x x + 14x x + 36x x + 35x x - 17x x , 2 2 3 3 2 4 3 4 0 5 2 5 3 5 2 6 3 6 0 7 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 0 11 1 11 2 11 4 11 2 x x - 40x x + 28x - x x + 5x x - 16x x + 5x x - 36x x + 37x x + 48x x - 5x x - 5x x + x x + 20x x + 10x x + 34x x + 41x x - x x + x x + 40x x - 32x x + 5x x - 11x x - 20x x + 45x x - 14x x - 25x x + 45x x - 41x x - 46x x + 8x x - 28x x + 11x x + 14x x - 8x x 1 2 2 3 3 0 4 2 4 3 4 0 5 2 5 3 5 2 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 } ZZ target: Proj(--[t , t , t , t , t , t , t , t , t ]) 97 0 1 2 3 4 5 6 7 8 defining forms: { 2 - 2x x + 6x - 24x x - 25x x + 39x x + 3x x + 46x x - 39x x - 17x x - 38x x + 24x x + 24x x + 5x x + x x - 19x x - 37x x + 12x x - 5x x - 5x x + 21x x + 42x x - 5x x + x x - x x + 2x x + 48x x - x x + 26x x - 12x x - 36x x - 18x x - 5x x - 37x x - 5x x - 9x x + 19x x , 2 3 3 2 4 3 4 0 5 2 5 3 5 0 6 2 6 3 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 3 11 4 11 5 11 - 19x x - 40x x + 19x x + 19x x - 38x x - 39x x - 37x x - 21x x + x x + 2x x - 5x x + x x - 5x x + 5x x , 2 5 3 5 1 8 2 8 3 8 5 8 6 8 5 9 1 10 2 10 3 10 5 10 6 10 5 11 - 39x x - 39x x - 38x x - 39x x + 19x x + 2x x + 19x x + 19x x + 21x x + 19x x - 19x x + x x - 39x x + 37x x + 40x x + 40x x - 5x x + 39x x - 37x x + x x - x x - x x + x x + 5x x - 5x x , 2 3 0 4 3 4 0 5 2 5 3 5 0 7 2 7 3 7 0 8 1 8 3 8 4 8 6 8 0 9 2 9 3 9 4 9 5 9 0 10 1 10 2 10 4 10 6 10 5 11 2 2 - 39x - 8x x + 25x + 19x x + 46x x - 22x x + x x - 8x x + 32x x - 39x x + x x - 38x x - 30x x - 5x x + 39x x + x x - 27x x - 27x x - 42x x + 11x x + 2x x + 22x x + 34x x + 42x x + 14x x + 8x x + 16x x + 27x x + 24x x - 11x x - 6x x + 2x x - 5x x - 10x x - 34x x - 8x x + 15x x - 25x x - 24x x - 2x x - 15x x , 1 2 3 3 0 4 2 4 3 4 0 5 2 5 3 5 4 5 0 6 1 6 2 6 3 6 4 6 5 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 2 11 4 11 5 11 2 - 39x x + 19x x + x x + 8x x - 25x - 23x x - 30x x - 21x x - 10x x - 34x x - 38x x - 7x x + 5x x + 19x x + 23x x + 21x x + 44x x - 14x x - 22x x - 5x x - 34x x - 44x x + 10x x - 44x x - 21x x - 21x x - 9x x + 14x x - 22x x + 45x x + 5x x + 20x x + 34x x + 12x x - 25x x + 20x x - 5x x + 9x x - 45x x + 25x x , 0 1 0 2 0 3 2 3 3 2 4 3 4 0 5 2 5 3 5 0 6 2 6 3 6 0 7 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 0 10 1 10 2 10 4 10 6 10 0 11 1 11 2 11 4 11 5 11 - 24x x - 25x x + 22x x + 48x x - 17x x + 24x x + 24x x + 5x x + x x + 41x x + 12x x - 5x x - 26x x + 42x x - 24x x + 37x x - x x - 35x x + 9x x + 25x x - 12x x - 36x x - 14x x - 37x x - 9x x + 14x x , 2 4 3 4 2 5 3 5 2 6 1 7 3 7 5 7 6 7 1 8 3 8 4 8 6 8 1 9 2 9 3 9 4 9 5 9 6 9 1 10 2 10 4 10 6 10 2 11 4 11 5 11 19x x + x x + 19x x + 39x x - 19x x + 37x x - 36x x - x x + 5x x - 5x x , 2 5 3 5 5 7 1 8 4 8 6 8 5 9 4 10 6 10 5 11 39x x - 19x x - 2x x + 39x x + 19x x - x x - 37x x + 37x x + x x + x x - 5x x + 5x x , 0 5 2 5 3 5 0 8 1 8 3 8 6 8 5 9 1 10 2 10 6 10 5 11 43x x - 30x x - 19x x - 40x x + 44x x - 22x x - 5x x - 43x x - 22x x - 43x x - 3x x - 19x x - 42x x - 13x x + 43x x - 26x x - 45x x + 22x x - 42x x + 3x x - 13x x - 4x x - 24x x + 13x x + 39x x - 6x x + 5x x + 42x x + 4x x + 6x x 2 4 3 4 0 5 2 5 3 5 2 6 3 6 1 7 3 7 5 7 6 7 0 8 1 8 3 8 4 8 6 8 1 9 2 9 3 9 4 9 5 9 6 9 1 10 2 10 4 10 6 10 1 11 2 11 4 11 5 11 } o10 : RationalMap (quadratic birational map from 8-dimensional subvariety of PP^11 to PP^8) i11 : assert(phi * psi == 1)

The method also accepts as input a ring map representing a rational map between projective varieties. In this case, a ring map is returned as well.

## Caveat

For the purpose of this method, the option MathMode=>true is too rigid, especially when the source of the passed map is not a projective space.