# RationalMaps -- rational maps between varieties

## Description

RationalMaps is a package for computing things related to maps between projective varieties.

It focuses on finding where a birational map is undefined, checking whether a map is a closed embedding, checking birationality and computing inverse maps

Mathematical background:
• A. V. Dória, S. H. Hassanzadeh, A. Simis, A characteristic free criterion of birationality, Advances in Mathematics, Volume 230, Issue 1, 1 May 2012, Pages 390-413.
• A. Simis, Cremona Transformations and some Related Algebras, Journal of Algebra, Volume 280, Issue 1, 1 October 2004, Pages 162–179
Functionality overlap with other packages:

Parametrization.m2: While the packageParametrization focuses on mostly on curves, it also includes a function invertBirationalMap which has the same functionality as inverseOfMap. On the other hand, these two functions were implemented somewhat differently and so sometimes one function can be substantially faster than the other.

Cremona.m2: The package Cremona focuses on fast probabilistic computations in general cases and deterministic computations for special kinds of maps from projective space. More precisely,
• isBirational gives a probabilisitc answer to the question of whether a map between varieties is birational. Furthermore, if the source is projective space, then degreeOfRationalMap with MathMode=>true can give a deterministic answer. In some cases, the speed of the latter is comparable with isBirationalMap with AssumeDominant=>true.
• inverseMap gives a fast computation of the inverse of a birational map if the source is projective space and the map has maximal linear rank. In some cases, even if the map has maximal linear rank, our function inverseOfMap appears to be competitive however. If you pass inverseMap a map not from projective space, then it calls a modified version invertBirationalMap from Parametrization.

## Version

This documentation describes version 0.3 of RationalMaps.

## Source code

The source code from which this documentation is derived is in the file RationalMaps.m2.

## Exports

• Functions and commands
• baseLocusOfMap -- Computes base locus of a map from a projective variety to projective space
• idealOfImageOfMap -- Finds defining equations for the image of a rational map between varieties or schemes
• inverseOfMap -- Computes the inverse map of a given birational map between projective varieties. Returns an error if the map is not birational onto its image.
• isBirationalMap -- Checks if a map between projective varieties is birational.
• isBirationalOntoImage -- Checks if a map between projective varieties is birational onto its image.
• isEmbedding -- Checks whether a map of projective varieties is a closed embedding.
• isRegularMap -- Checks whether a map to projective space is regular
• isSameMap -- Checks whether two maps to projective space are really the same
• jacobianDualMatrix -- Computes the Jacobian Dual Matrix, a matrix whose kernel describing the syzygies of the inverse map.
• mapOntoImage -- Given a map of rings, correspoing to X mapping to Y, this returns the map of rings corresponding to X mapping to f(X).
• sourceInversionFactor -- Computes the the common factor among the the components of the composition of the inverse map and the original map.
• Methods
• "baseLocusOfMap(List)" -- see baseLocusOfMap -- Computes base locus of a map from a projective variety to projective space
• "baseLocusOfMap(Matrix)" -- see baseLocusOfMap -- Computes base locus of a map from a projective variety to projective space
• "baseLocusOfMap(RingMap)" -- see baseLocusOfMap -- Computes base locus of a map from a projective variety to projective space
• "idealOfImageOfMap(Ideal,Ideal,BasicList)" -- see idealOfImageOfMap -- Finds defining equations for the image of a rational map between varieties or schemes
• "idealOfImageOfMap(Ideal,Ideal,Matrix)" -- see idealOfImageOfMap -- Finds defining equations for the image of a rational map between varieties or schemes
• "idealOfImageOfMap(Ring,Ring,BasicList)" -- see idealOfImageOfMap -- Finds defining equations for the image of a rational map between varieties or schemes
• "idealOfImageOfMap(Ring,Ring,Matrix)" -- see idealOfImageOfMap -- Finds defining equations for the image of a rational map between varieties or schemes
• "idealOfImageOfMap(RingMap)" -- see idealOfImageOfMap -- Finds defining equations for the image of a rational map between varieties or schemes
• "inverseOfMap(Ideal,Ideal,BasicList)" -- see inverseOfMap -- Computes the inverse map of a given birational map between projective varieties. Returns an error if the map is not birational onto its image.
• "inverseOfMap(Ring,Ring,BasicList)" -- see inverseOfMap -- Computes the inverse map of a given birational map between projective varieties. Returns an error if the map is not birational onto its image.
• "inverseOfMap(RingMap)" -- see inverseOfMap -- Computes the inverse map of a given birational map between projective varieties. Returns an error if the map is not birational onto its image.
• "isBirationalMap(Ideal,Ideal,BasicList)" -- see isBirationalMap -- Checks if a map between projective varieties is birational.
• "isBirationalMap(Ring,Ring,BasicList)" -- see isBirationalMap -- Checks if a map between projective varieties is birational.
• "isBirationalMap(RingMap)" -- see isBirationalMap -- Checks if a map between projective varieties is birational.
• "isBirationalOntoImage(Ideal,Ideal,BasicList)" -- see isBirationalOntoImage -- Checks if a map between projective varieties is birational onto its image.
• "isBirationalOntoImage(Ring,Ring,BasicList)" -- see isBirationalOntoImage -- Checks if a map between projective varieties is birational onto its image.
• "isBirationalOntoImage(RingMap)" -- see isBirationalOntoImage -- Checks if a map between projective varieties is birational onto its image.
• "isEmbedding(Ideal,Ideal,BasicList)" -- see isEmbedding -- Checks whether a map of projective varieties is a closed embedding.
• "isEmbedding(Ring,Ring,BasicList)" -- see isEmbedding -- Checks whether a map of projective varieties is a closed embedding.
• "isEmbedding(RingMap)" -- see isEmbedding -- Checks whether a map of projective varieties is a closed embedding.
• "isRegularMap(List)" -- see isRegularMap -- Checks whether a map to projective space is regular
• "isRegularMap(Matrix)" -- see isRegularMap -- Checks whether a map to projective space is regular
• "isRegularMap(RingMap)" -- see isRegularMap -- Checks whether a map to projective space is regular
• "isSameMap(List,List)" -- see isSameMap -- Checks whether two maps to projective space are really the same
• "isSameMap(List,List,Ring)" -- see isSameMap -- Checks whether two maps to projective space are really the same
• "isSameMap(RingMap,RingMap)" -- see isSameMap -- Checks whether two maps to projective space are really the same
• "jacobianDualMatrix(Ideal,Ideal,BasicList)" -- see jacobianDualMatrix -- Computes the Jacobian Dual Matrix, a matrix whose kernel describing the syzygies of the inverse map.
• "jacobianDualMatrix(Ring,Ring,BasicList)" -- see jacobianDualMatrix -- Computes the Jacobian Dual Matrix, a matrix whose kernel describing the syzygies of the inverse map.
• "jacobianDualMatrix(RingMap)" -- see jacobianDualMatrix -- Computes the Jacobian Dual Matrix, a matrix whose kernel describing the syzygies of the inverse map.
• "mapOntoImage(Ideal,Ideal,BasicList)" -- see mapOntoImage -- Given a map of rings, correspoing to X mapping to Y, this returns the map of rings corresponding to X mapping to f(X).
• "mapOntoImage(Ring,Ring,BasicList)" -- see mapOntoImage -- Given a map of rings, correspoing to X mapping to Y, this returns the map of rings corresponding to X mapping to f(X).
• "mapOntoImage(RingMap)" -- see mapOntoImage -- Given a map of rings, correspoing to X mapping to Y, this returns the map of rings corresponding to X mapping to f(X).
• "sourceInversionFactor(RingMap)" -- see sourceInversionFactor -- Computes the the common factor among the the components of the composition of the inverse map and the original map.
• Symbols
• AssumeDominant -- If true, certain functions assume that the map from X to Y is dominant.
• CheckBirational -- If true, functions will check birationality.
• HybridLimit -- An option to control HybridStrategy
• HybridStrategy -- A strategy for inverseOfMap, isBirationalMap and isEmbedding.
• MinorsCount -- An option controlling the behavior of isBirational and inverseOfMap (and other functions which call those).
• QuickRank -- An option for computing how rank is computed
• ReesStrategy -- A strategy for inverseOfMap, isBirationalMap, and is Embedding.
• SaturateOutput -- If false, certain functions will not saturate their output.
• SaturationStrategy -- A strategy for inverseOfMap, isBirationalMap, isEmbedding.
• SimisStrategy -- A strategy for inverseOfMap, isBirationalMap and isEmbedding.

## For the programmer

The object RationalMaps is .