next | previous | forward | backward | up | top | index | toc | Macaulay2 website
MultiprojectiveVarieties :: inverse(MultirationalMap)

inverse(MultirationalMap) -- inverse of a birational map

Synopsis

Description

This function applies a general algorithm to calculate the inverse map passing through the computation of the graph. Note that by default the option Verify is set to true, which means that the birationality of the map is verified using degree Phi == 1 and image Phi == target Phi.

i1 : -- map defined by the quadrics through a rational normal quartic curve
     Phi = rationalMap PP_(ZZ/65521)^(1,4);

o1 : MultirationalMap (rational map from PP^4 to PP^5)
i2 : -- we see Phi as a dominant map
     Phi = rationalMap(Phi,image Phi);

o2 : MultirationalMap (dominant rational map from PP^4 to hypersurface in PP^5)
i3 : time inverse Phi;
     -- used 0.0741459 seconds

o3 : MultirationalMap (birational map from hypersurface in PP^5 to PP^4)
i4 : Psi = last graph Phi;

o4 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x PP^5 to hypersurface in PP^5)
i5 : time inverse Psi;
     -- used 0.173488 seconds

o5 : MultirationalMap (birational map from hypersurface in PP^5 to 4-dimensional subvariety of PP^4 x PP^5)
i6 : Eta = first graph Psi;

o6 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x PP^5 x PP^5 to 4-dimensional subvariety of PP^4 x PP^5)
i7 : time inverse Eta;
     -- used 0.507742 seconds

o7 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x PP^5 to 4-dimensional subvariety of PP^4 x PP^5 x PP^5)
i8 : assert(Phi * Phi^-1 == 1 and Phi^-1 * Phi == 1)
i9 : assert(Psi * Psi^-1 == 1 and Psi^-1 * Psi == 1)
i10 : assert(Eta * Eta^-1 == 1 and Eta^-1 * Eta == 1)

References

ArXiv preprint: Computations with rational maps between multi-projective varieties.

Caveat

If the option Verify is set to false (which is preferable for efficiency), then no test is done to check that the map is birational, and if not then often the error is not thrown at all and a nonsense answer is returned.

See also