This is MultiprojectiveVarieties.info, produced by Macaulay2, version 1.25.11

MultiprojectiveVarieties -- Multi-projective varieties and multi-rational maps
******************************************************************************

Description
===========

This is a package for handling multi-projective varieties, that is, closed
subvarieties of products of projective spaces, and rational maps between them.
This extends the package Cremona, which treats
rational maps (Cremona), from multi-projective varieties to
standard projective varieties, $X\subseteq
\mathbb{P}^{k_1}\times\mathbb{P}^{k_2}\times\cdots\times\mathbb{P}^{k_n}\
dashrightarrow Y\subseteq\mathbb{P}^N$.

References
==========

ArXiv preprint: Computations with rational maps between multi-projective
varieties (see https://arxiv.org/abs/2101.04503 ).

Author
======

  * Giovanni Staglianò <giovannistagliano@gmail.com>

Certification a gold star
=========================

Version 2.3 of this package was accepted for publication in volume 11 (see
https://msp.org/jsag/2021/11-1/ ) of The Journal of Software for Algebra and
Geometry (see https://msp.org/jsag/ ) on 31 August 2021, in the article
Computations with rational maps between multi-projective varieties (see
https://msp.org/jsag/2021/11-1/p14.xhtml ) (DOI: 10.2140/jsag.2021.11.143 (see
https://doi.org/10.2140/jsag.2021.11.143 )). That version can be obtained from
the journal (see https://msp.org/jsag/2021/11-1/jsag-v11-n1-x14-
MultiprojectiveVarieties.m2 ).

Version
=======

This documentation describes version 2.7.1 of MultiprojectiveVarieties,
released April 18, 2023.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{MultiprojectiveVarietiesSource,                                        |
|  title = {{MultiprojectiveVarieties: multi-projective varieties and multi-ra|
|  author = {Giovanni Staglian{\`o}},                                         |
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}} |
|}                                                                            |
|                                                                             |
|@article{MultiprojectiveVarietiesArticle,                                    |
|  title = {{Computations with rational maps between multi-projective varietie|
|  author = {Giovanni Staglian{\`o}},                                         |
|  journal = {The Journal of Software for Algebra and Geometry},              |
|  volume = {11},                                                             |
|  year = {2021},                                                             |
|}                                                                            |
|-----------------------------------------------------------------------------|
|tional maps. Version~2.7.1}},                                                |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|s}},                                                                         |
+-----------------------------------------------------------------------------+

Exports
=======

  * Types
      * EmbeddedProjectiveVariety -- the
        class of all embedded projective varieties
      * GrassmannianVariety -- the class of all
        Grassmannians of linear subspaces of projective spaces
      * MultiprojectiveVariety -- the class of
        all multi-projective varieties
      * MultirationalMap -- the class of all
        multi-rational maps
      * RAT -- the hom-sets of rational maps between two
        multi-projective varieties
      * WeightedProjectiveVariety -- the
        class of all weighted projective varieties
      * WeightedRationalMap -- the class of all
        weighted-rational maps
  * Functions and commands
      * ∏ -- product of multi-projective varieties
      * ⋂ -- intersection of multi-projective varieties
      * ⋃ -- union of multi-projective varieties
      * ambientVariety -- the ambient variety of a
        projective subvariety
      * baseLocus -- the base locus of a multi-rational map
      * coneOfLines -- cone of lines on a subvariety
        passing through a point
      * cycleClass -- determine the expression of the class
        of a cycle as a linear combination of Schubert classes
      * degreeSequence -- the (multi)-degree sequence of
        a (multi)-rational map
      * "sumUp" -- see EmbeddedProjectiveVariety !,
        -- print a more detailed description of an
        embedded projective variety
      * fiberProduct -- fiber product of multi-projective
        varieties
      * GG -- the Grassmannian of k-dimensional linear subspaces of
        an n-dimensional projective space
      * inverse2 -- inverse of a birational map using a faster
        algorithm for a special class of maps
      * linearlyNormalEmbedding -- get the
        linearly normal embedding
      * linearSpan -- the linear span of an embedded
        projective variety
      * multirationalMap -- the multi-rational map
        defined by a list of rational maps
      * projectionMaps -- projections of a
        multi-projective variety
      * projections -- projections of a multi-projective
        variety
      * projectiveVariety -- the closed
        multi-projective subvariety defined by a multi-homogeneous ideal
      * schubertCycle -- take a random Schubert cycle
      * sectionalGenus -- the sectional genus of an
        embedded projective variety
      * segreEmbedding -- the Segre embedding of the
        variety
      * tangentSpace -- tangent space to a projective
        variety at a point
      * toRationalMap -- convert a multi-rational map
        consisting of a single rational map to a standard rational map
  * Methods
      * "∏(List)" -- see ∏, -- product of multi-projective varieties
      * "⋂(List)" -- see ⋂, -- intersection of multi-projective
        varieties
      * "⋃(List)" -- see ⋃, -- union of multi-projective varieties
      * ambient(MultiprojectiveVariety)
        -- the ambient multi-projective
        space of the variety
      * "ambientVariety(MultiprojectiveVariety)" -- see ambientVariety,
        -- the ambient variety of a projective subvariety
      * "baseLocus(MultirationalMap)" -- see baseLocus, -- the
        base locus of a multi-rational map
      * "baseLocus(RationalMap)" -- see baseLocus, -- the base
        locus of a multi-rational map
      * check(MultirationalMap) -- check
        that a multi-rational map is well-defined
      * chowForm(EmbeddedProjectiveVariety)
        -- chow forms of a projective
        variety
      * clean(MultirationalMap) -- clean
        the internal information of a multi-rational map
      * "clean(RationalMap)" -- see clean(MultirationalMap),
        -- clean the internal information of a
        multi-rational map
      * codim(MultiprojectiveVariety),
        -- the codimension of the variety
      * coefficientRing(MultiprojectiveVariety)
        -- the coefficient ring of
        the variety
      * coefficientRing(MultirationalMap)
        -- the coefficient ring of a
        multi-rational map
      * "coneOfLines(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)" --
        see coneOfLines, -- cone of lines on a subvariety
        passing through a point
      * conormalVariety(EmbeddedProjectiveVariety)
        -- the conormal variety
        of a projective variety
      * "cycleClass(EmbeddedProjectiveVariety)" -- see cycleClass,
        -- determine the expression of the class of a cycle as a
        linear combination of Schubert classes
      * decompose(MultiprojectiveVariety)
        -- irreducible components of a
        variety
      * degree(MultiprojectiveVariety)
        -- the degree of the variety
      * degree(MultirationalMap) -- degree
        of a multi-rational map
      * "degreeMap(MultirationalMap)" -- see degree(MultirationalMap),
        -- degree of a multi-rational map
      * degree(MultirationalMap,Option)
        -- degree of a multi-rational
        map using a probabilistic approach
      * degrees(MultiprojectiveVariety)
        -- degrees for the minimal
        generators
      * "degreeSequence(MultirationalMap)" -- see degreeSequence,
        -- the (multi)-degree sequence of a (multi)-rational
        map
      * "degreeSequence(RationalMap)" -- see degreeSequence,
        -- the (multi)-degree sequence of a (multi)-rational
        map
      * "? MultiprojectiveVariety" -- see
        describe(MultiprojectiveVariety),
        -- describe a multi-projective variety
      * describe(MultiprojectiveVariety)
        -- describe a multi-projective
        variety
      * "? MultirationalMap" -- see describe(MultirationalMap),
        -- describe a multi-rational map
      * describe(MultirationalMap), --
        describe a multi-rational map
      * dim(MultiprojectiveVariety), --
        the dimension of the variety
      * dual(EmbeddedProjectiveVariety)
        -- the variety projectively dual
        to an embedded projective variety
      * EmbeddedProjectiveVariety !, --
        print a more detailed description of an embedded projective variety
      * "sumUp(EmbeddedProjectiveVariety)" -- see
        EmbeddedProjectiveVariety !, -- print a
        more detailed description of an embedded projective variety
      * EmbeddedProjectiveVariety ++ EmbeddedProjectiveVariety
        -- join of
        projective varieties
      * "EmbeddedProjectiveVariety <=== EmbeddedProjectiveVariety" -- see
        EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety,
        -- try to
        find an isomorphism between two projective varieties
      * EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety
        -- try to
        find an isomorphism between two projective varieties
      * entries(MultirationalMap) -- list
        the defining polynomials of a rational map
      * euler(MultiprojectiveVariety),
        -- topological Euler characteristic of a (smooth) multi-projective
        variety
      * factor(MultirationalMap) -- the
        list of rational maps defining a multi-rational map
      * "Fano(EmbeddedProjectiveVariety)" -- see
        Fano(ZZ,EmbeddedProjectiveVariety),
        -- Fano scheme of a
        projective variety
      * Fano(ZZ,EmbeddedProjectiveVariety)
        -- Fano scheme of a
        projective variety
      * "fiberProduct(RationalMap,RationalMap)" -- see fiberProduct,
        -- fiber product of multi-projective varieties
      * forceImage(MultirationalMap,MultiprojectiveVariety)
        -- declare
        which is the image of a multi-rational map
      * "forceImage(MultirationalMap,ZZ)" -- see
        forceImage(MultirationalMap,MultiprojectiveVariety),
        -- declare
        which is the image of a multi-rational map
      * "GG(EmbeddedProjectiveVariety)" -- see GG, -- the
        Grassmannian of k-dimensional linear subspaces of an n-dimensional
        projective space
      * "GG(Ring)" -- see GG, -- the Grassmannian of k-dimensional
        linear subspaces of an n-dimensional projective space
      * "GG(Ring,ZZ,ZZ)" -- see GG, -- the Grassmannian of
        k-dimensional linear subspaces of an n-dimensional projective space
      * "GG(ZZ,EmbeddedProjectiveVariety)" -- see GG, -- the
        Grassmannian of k-dimensional linear subspaces of an n-dimensional
        projective space
      * "GG(ZZ,ZZ)" -- see GG, -- the Grassmannian of k-dimensional
        linear subspaces of an n-dimensional projective space
      * GG(ZZ,MultirationalMap), --
        induced automorphism of the Grassmannian
      * "GG(ZZ,RationalMap)" -- see GG(ZZ,MultirationalMap),
        -- induced automorphism of the
        Grassmannian
      * graph(MultirationalMap) -- the
        graph of a multi-rational map
      * hilbertPolynomial(EmbeddedProjectiveVariety)
        -- the Hilbert
        polynomial of the variety
      * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
        -- get the
        hom-set of rational maps between two multi-projective varieties
      * "Hom(MultiprojectiveVariety,Nothing)" -- see
        Hom(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the
        hom-set of rational maps between two multi-projective varieties
      * "Hom(MultiprojectiveVariety,Symbol)" -- see
        Hom(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the
        hom-set of rational maps between two multi-projective varieties
      * "Hom(Nothing,MultiprojectiveVariety)" -- see
        Hom(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the
        hom-set of rational maps between two multi-projective varieties
      * "Hom(Nothing,Nothing)" -- see
        Hom(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the
        hom-set of rational maps between two multi-projective varieties
      * "Hom(Nothing,Symbol)" -- see
        Hom(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the
        hom-set of rational maps between two multi-projective varieties
      * ideal(MultiprojectiveVariety),
        -- the defining ideal of the variety
      * image(MultirationalMap) -- image of
        a multi-rational map
      * inverse(MultirationalMap), --
        inverse of a birational map
      * "inverse2(MultirationalMap)" -- see inverse2, --
        inverse of a birational map using a faster algorithm for a special
        class of maps
      * isIsomorphism(MultirationalMap)
        -- whether a birational map is an
        isomorphism
      * isMember(MultirationalMap,RAT)
        -- test membership in a hom-set
        of rational maps
      * isMorphism(MultirationalMap),
        -- whether a multi-rational map is a morphism
      * isSubset(MultiprojectiveVariety,MultiprojectiveVariety),
        --
        whether one variety is a subvariety of another
      * isWellDefined(MultirationalMap)
        -- whether a multi-rational map is
        well-defined
      * "linearlyNormalEmbedding(EmbeddedProjectiveVariety)" -- see
        linearlyNormalEmbedding, -- get the linearly
        normal embedding
      * "linearSpan(EmbeddedProjectiveVariety)" -- see linearSpan,
        -- the linear span of an embedded projective variety
      * "linearSpan(List)" -- see linearSpan, -- the linear
        span of an embedded projective variety
      * multidegree(MultiprojectiveVariety)
        -- the multidegree of the
        variety
      * multidegree(MultirationalMap),
        -- projective degrees of a multi-rational map
      * "projectiveDegrees(MultirationalMap)" -- see
        multidegree(MultirationalMap), --
        projective degrees of a multi-rational map
      * multidegree(ZZ,MultirationalMap)
        -- i-th projective degree of a
        multi-rational map using a probabilistic approach
      * MultiprojectiveVariety % MultiprojectiveVariety
        -- subvariety of a
        projective variety
      * MultiprojectiveVariety * MultiprojectiveVariety
        -- intersection of
        two multi-projective varieties
      * MultiprojectiveVariety ** MultiprojectiveVariety
        -- product of two
        multi-projective varieties
      * MultiprojectiveVariety ** Ring
        -- change the coefficient ring of a multi-projective variety
      * MultiprojectiveVariety + MultiprojectiveVariety
        -- union of two
        multi-projective varieties
      * MultiprojectiveVariety == MultiprojectiveVariety
        -- equality of
        multi-projective varieties
      * MultiprojectiveVariety \ MultiprojectiveVariety
        -- difference of
        multi-projective varieties
      * MultiprojectiveVariety \\ MultiprojectiveVariety
        -- difference of
        multi-projective varieties
      * MultiprojectiveVariety ^ ZZ, --
        power of a multi-projective variety
      * "multirationalMap(List)" -- see multirationalMap,
        -- the multi-rational map defined by a list of
        rational maps
      * "multirationalMap(List,MultiprojectiveVariety)" -- see
        multirationalMap, -- the multi-rational map defined
        by a list of rational maps
      * "compose(MultirationalMap,MultirationalMap)" -- see
        MultirationalMap * MultirationalMap,
        -- composition of multi-rational maps
      * MultirationalMap * MultirationalMap
        -- composition of multi-rational maps
      * "MultirationalMap * RationalMap" -- see MultirationalMap * MultirationalMap,
        -- composition
        of multi-rational maps
      * "MultirationalMap ^ ZZ" -- see MultirationalMap * MultirationalMap,
        -- composition
        of multi-rational maps
      * "RationalMap * MultirationalMap" -- see MultirationalMap * MultirationalMap,
        -- composition
        of multi-rational maps
      * MultirationalMap ** Ring -- change
        the coefficient ring of a multi-rational map
      * "MultiprojectiveVariety << MultiprojectiveVariety" -- see
        MultirationalMap << MultiprojectiveVariety,
        -- force the change of the target in a
        multi-rational map
      * MultirationalMap << MultiprojectiveVariety
        -- force the change of the target in a
        multi-rational map
      * MultirationalMap <==> MultirationalMap
        -- equality of multi-rational maps with checks on
        internal data
      * MultirationalMap == MultirationalMap
        -- equality of multi-rational maps
      * "MultirationalMap == RationalMap" -- see MultirationalMap == MultirationalMap,
        -- equality of
        multi-rational maps
      * "MultirationalMap == ZZ" -- see MultirationalMap == MultirationalMap,
        -- equality of
        multi-rational maps
      * "RationalMap == MultirationalMap" -- see MultirationalMap == MultirationalMap,
        -- equality of
        multi-rational maps
      * "ZZ == MultirationalMap" -- see MultirationalMap == MultirationalMap,
        -- equality of
        multi-rational maps
      * "MultirationalMap ^*" -- see MultirationalMap ^** MultiprojectiveVariety,
        -- inverse image via a multi-rational map
      * MultirationalMap ^** MultiprojectiveVariety
        -- inverse image via a multi-rational
        map
      * "RationalMap ^** EmbeddedProjectiveVariety" -- see
        MultirationalMap ^** MultiprojectiveVariety,
        -- inverse image via a multi-rational map
      * "MultirationalMap | List" -- see MultirationalMap | MultiprojectiveVariety,
        --
        restriction of a multi-rational map
      * MultirationalMap | MultiprojectiveVariety
        -- restriction of a multi-rational map
      * "RationalMap | MultiprojectiveVariety" -- see MultirationalMap | MultiprojectiveVariety,
        --
        restriction of a multi-rational map
      * MultirationalMap | MultirationalMap
        -- product of multi-rational maps
      * "MultirationalMap | RationalMap" -- see MultirationalMap | MultirationalMap,
        -- product of
        multi-rational maps
      * "RationalMap | MultirationalMap" -- see MultirationalMap | MultirationalMap,
        -- product of
        multi-rational maps
      * "RationalMap | RationalMap" -- see MultirationalMap | MultirationalMap,
        -- product of
        multi-rational maps
      * "MultirationalMap || List" -- see MultirationalMap || MultiprojectiveVariety,
        --
        restriction of a multi-rational map
      * MultirationalMap || MultiprojectiveVariety
        -- restriction of a multi-rational map
      * "RationalMap || MultiprojectiveVariety" -- see MultirationalMap || MultiprojectiveVariety,
        -- restriction of a multi-rational map
      * MultirationalMap || MultirationalMap
        -- product of multi-rational maps
      * "MultirationalMap || RationalMap" -- see MultirationalMap || MultirationalMap,
        -- product of
        multi-rational maps
      * "RationalMap || MultirationalMap" -- see MultirationalMap || MultirationalMap,
        -- product of
        multi-rational maps
      * "RationalMap || RationalMap" -- see MultirationalMap || MultirationalMap,
        -- product of
        multi-rational maps
      * MultirationalMap MultiprojectiveVariety
        -- direct image via a multi-rational map
      * "RationalMap MultiprojectiveVariety" -- see MultirationalMap MultiprojectiveVariety,
        --
        direct image via a multi-rational map
      * multirationalMap(MultiprojectiveVariety)
        -- identity map
      * "ZZ _ MultiprojectiveVariety" -- see
        multirationalMap(MultiprojectiveVariety),
        -- identity map
      * multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the natural inclusion
      * "rationalMap(MultiprojectiveVariety,MultiprojectiveVariety)" -- see
        multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
        -- get the natural inclusion
      * multirationalMap(MultirationalMap,MultiprojectiveVariety),
        --
        change the target of a multi-rational map
      * "rationalMap(MultirationalMap,MultiprojectiveVariety)" -- see
        multirationalMap(MultirationalMap,MultiprojectiveVariety),
        --
        change the target of a multi-rational map
      * parametrize(MultiprojectiveVariety)
        -- try to get a
        parametrization of a multi-projective variety
      * permute(MultiprojectiveVariety,List)
        -- permute the factors of
        the ambient multi-projective space
      * "|- MultiprojectiveVariety" -- see point(MultiprojectiveVariety),
        -- pick a random rational point on a
        multi-projective variety
      * point(MultiprojectiveVariety),
        -- pick a random rational point on a multi-projective variety
      * "projectionMaps(MultiprojectiveVariety)" -- see projectionMaps,
        -- projections of a multi-projective variety
      * projectionMaps(MultirationalMap)
        -- get the compositions of the
        multi-rational map with the projections of the target
      * "projections(MultiprojectiveVariety)" -- see projections,
        -- projections of a multi-projective variety
      * "projectiveVariety(Ideal)" -- see projectiveVariety,
        -- the closed multi-projective subvariety defined by
        a multi-homogeneous ideal
      * "projectiveVariety(Matrix)" -- see projectiveVariety,
        -- the closed multi-projective subvariety defined by
        a multi-homogeneous ideal
      * "projectiveVariety(Ring)" -- see projectiveVariety,
        -- the closed multi-projective subvariety defined by
        a multi-homogeneous ideal
      * "projectiveVariety(RingElement)" -- see projectiveVariety,
        -- the closed multi-projective subvariety defined by
        a multi-homogeneous ideal
      * projectiveVariety(List,List,Ring)
        -- the Segre-Veronese
        variety
      * "projectiveVariety(ZZ,ZZ,Ring)" -- see
        projectiveVariety(List,List,Ring),
        -- the Segre-Veronese
        variety
      * projectiveVariety(List,Ring),
        -- product of projective spaces
      * "projectiveVariety(ZZ,Ring)" -- see projectiveVariety(List,Ring),
        -- product of projective spaces
      * projectiveVariety(MultidimensionalMatrix)
        -- the multi-projective
        variety defined by a multi-dimensional matrix
      * random(List,MultiprojectiveVariety)
        -- get a random hypersurface
        of given multi-degree containing a multi-projective variety
      * "random(ZZ,MultiprojectiveVariety)" -- see
        random(List,MultiprojectiveVariety),
        -- get a random hypersurface
        of given multi-degree containing a multi-projective variety
      * random(MultiprojectiveVariety)
        -- apply a random automorphism of
        the ambient multi-projective space
      * RAT List -- define a multi-rational map
      * RAT MultiprojectiveVariety, --
        rational map defined by a linear system of hypersurfaces through a
        variety
      * "RAT Sequence" -- see RAT MultiprojectiveVariety,
        -- rational map defined by a linear system of
        hypersurfaces through a variety
      * RAT Tally -- rational map defined by an effective
        divisor
      * rationalMap(List,MultiprojectiveVariety)
        -- the multi-rational
        map defined by a list of rational maps
      * "rationalMap(MultirationalMap)" -- see
        rationalMap(List,MultiprojectiveVariety),
        -- the multi-rational
        map defined by a list of rational maps
      * "rationalMap(EmbeddedProjectiveVariety,Tally,ZZ)" -- see
        rationalMap(MultiprojectiveVariety,Tally),
        -- rational map
        defined by an effective divisor
      * rationalMap(MultiprojectiveVariety,Tally)
        -- rational map
        defined by an effective divisor
      * "rationalMap(MultiprojectiveVariety,Tally,List)" -- see
        rationalMap(MultiprojectiveVariety,Tally),
        -- rational map
        defined by an effective divisor
      * ring(MultiprojectiveVariety),
        -- the coordinate ring of the variety
      * "schubertCycle(VisibleList,GrassmannianVariety)" -- see
        schubertCycle, -- take a random Schubert cycle
      * "sectionalGenus(EmbeddedProjectiveVariety)" -- see
        sectionalGenus, -- the sectional genus of an embedded
        projective variety
      * segre(MultiprojectiveVariety),
        -- the Segre embedding of the variety
      * segre(MultirationalMap) -- the
        composition of a multi-rational map with the Segre embedding of the
        target
      * "segreEmbedding(MultiprojectiveVariety)" -- see segreEmbedding,
        -- the Segre embedding of the variety
      * shape(MultiprojectiveVariety),
        -- shape of the ambient multi-projective space of a multi-projective
        variety
      * "multirationalMap(RationalMap)" -- see shortcuts, --
        Some convenient shortcuts for multi-rational maps consisting of a
        single rational map
      * "rationalMap(MultiprojectiveVariety)" -- see shortcuts,
        -- Some convenient shortcuts for multi-rational maps
        consisting of a single rational map
      * "rationalMap(MultiprojectiveVariety,List)" -- see shortcuts,
        -- Some convenient shortcuts for multi-rational maps
        consisting of a single rational map
      * "rationalMap(MultiprojectiveVariety,ZZ)" -- see shortcuts,
        -- Some convenient shortcuts for multi-rational maps
        consisting of a single rational map
      * "rationalMap(MultiprojectiveVariety,ZZ,ZZ)" -- see shortcuts,
        -- Some convenient shortcuts for multi-rational maps
        consisting of a single rational map
      * show(MultirationalMap) -- display a
        multi-rational map
      * "show(RationalMap)" -- see show(MultirationalMap),
        -- display a multi-rational map
      * singularLocus(MultiprojectiveVariety)
        -- the singular locus of the
        variety
      * source(MultirationalMap) -- the
        source for a multi-rational map
      * super(MultirationalMap) -- get the
        multi-rational map whose target is a product of projective spaces
      * support(MultiprojectiveVariety)
        -- support of a multi-projective
        variety
      * tangentialChowForm(EmbeddedProjectiveVariety,ZZ)
        -- higher Chow
        forms of a projective variety
      * "tangentSpace(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)" --
        see tangentSpace, -- tangent space to a projective
        variety at a point
      * target(MultirationalMap) -- the
        target for a multi-rational map
      * "toRationalMap(MultirationalMap)" -- see toRationalMap,
        -- convert a multi-rational map consisting of a single
        rational map to a standard rational map
      * trim(MultirationalMap) -- trim the
        target of a multi-rational map
      * "trim(RationalMap)" -- see trim(MultirationalMap),
        -- trim the target of a multi-rational map
      * variety(EmbeddedProjectiveVariety)
        -- convert an embedded
        projective variety into a built-in projective variety
  * Symbols
      * Saturate -- whether to compute the multi-saturation of
        the ideal (intended for internal use only)
  * Other things
      * PP -- product of projective
        spaces

For the programmer
==================

The object MultiprojectiveVarieties, is a package (Macaulay2Doc),
defined in MultiprojectiveVarieties.m2.

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2443:0.

MultiprojectiveVariety -- the class of all multi-projective varieties
*********************************************************************

Description
===========

A multi-projective variety is a closed subvariety of a product of projective
spaces $\mathbb{P}^{k_1}\times\mathbb{P}^{k_2}\times\cdots\times\mathbb{P}^{k_n
}$. This is actually the class of all closed subschemes of products of
projective spaces.

Types of multi-projective variety:
==================================

  * EmbeddedProjectiveVariety -- the class of
    all embedded projective varieties
  * WeightedProjectiveVariety -- the class of
    all weighted projective varieties

Functions and methods returning a multi-projective variety:
===========================================================

  * ambientVariety -- the ambient variety of a
    projective subvariety
  * baseLocus -- the base locus of a multi-rational map
  * fiberProduct -- fiber product of multi-projective
    varieties
  * projectiveVariety -- the closed multi-projective
    subvariety defined by a multi-homogeneous ideal

Methods that use a multi-projective variety:
============================================

  * ambient(MultiprojectiveVariety),
    -- the ambient multi-projective space of the variety
  * "ambientVariety(MultiprojectiveVariety)" -- see ambientVariety,
    -- the ambient variety of a projective subvariety
  * codim(MultiprojectiveVariety), --
    the codimension of the variety
  * coefficientRing(MultiprojectiveVariety)
    -- the coefficient ring of the
    variety
  * decompose(MultiprojectiveVariety)
    -- irreducible components of a
    variety
  * degree(MultiprojectiveVariety),
    -- the degree of the variety
  * degrees(MultiprojectiveVariety),
    -- degrees for the minimal generators
  * "? MultiprojectiveVariety" -- see describe(MultiprojectiveVariety),
    -- describe a multi-projective
    variety
  * describe(MultiprojectiveVariety)
    -- describe a multi-projective
    variety
  * dim(MultiprojectiveVariety) -- the
    dimension of the variety
  * euler(MultiprojectiveVariety), --
    topological Euler characteristic of a (smooth) multi-projective variety
  * forceImage(MultirationalMap,MultiprojectiveVariety)
    -- declare which
    is the image of a multi-rational map
  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * "Hom(MultiprojectiveVariety,Nothing)" -- see
    Hom(MultiprojectiveVariety,MultiprojectiveVariety),
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * "Hom(MultiprojectiveVariety,Symbol)" -- see
    Hom(MultiprojectiveVariety,MultiprojectiveVariety),
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * "Hom(Nothing,MultiprojectiveVariety)" -- see
    Hom(MultiprojectiveVariety,MultiprojectiveVariety),
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * ideal(MultiprojectiveVariety), --
    the defining ideal of the variety
  * isSubset(MultiprojectiveVariety,MultiprojectiveVariety)
    -- whether
    one variety is a subvariety of another
  * multidegree(MultiprojectiveVariety)
    -- the multidegree of the variety
  * MultiprojectiveVariety % MultiprojectiveVariety
    -- subvariety of a
    projective variety
  * MultiprojectiveVariety * MultiprojectiveVariety
    -- intersection of two
    multi-projective varieties
  * MultiprojectiveVariety ** MultiprojectiveVariety
    -- product of two
    multi-projective varieties
  * MultiprojectiveVariety ** Ring,
    -- change the coefficient ring of a multi-projective variety
  * MultiprojectiveVariety + MultiprojectiveVariety
    -- union of two
    multi-projective varieties
  * MultiprojectiveVariety == MultiprojectiveVariety
    -- equality of
    multi-projective varieties
  * MultiprojectiveVariety \ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
  * MultiprojectiveVariety \\ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
  * MultiprojectiveVariety ^ ZZ -- power of
    a multi-projective variety
  * "multirationalMap(List,MultiprojectiveVariety)" -- see
    multirationalMap, -- the multi-rational map defined by a
    list of rational maps
  * "MultiprojectiveVariety << MultiprojectiveVariety" -- see
    MultirationalMap << MultiprojectiveVariety,
    -- force the change of the target in a
    multi-rational map
  * MultirationalMap << MultiprojectiveVariety
    -- force the change of the target in a
    multi-rational map
  * MultirationalMap ^** MultiprojectiveVariety
    -- inverse image via a multi-rational map
  * MultirationalMap | MultiprojectiveVariety
    -- restriction of a multi-rational map
  * "RationalMap | MultiprojectiveVariety" -- see MultirationalMap | MultiprojectiveVariety,
    --
    restriction of a multi-rational map
  * MultirationalMap || MultiprojectiveVariety
    -- restriction of a multi-rational map
  * "RationalMap || MultiprojectiveVariety" -- see MultirationalMap || MultiprojectiveVariety,
    --
    restriction of a multi-rational map
  * MultirationalMap MultiprojectiveVariety
    -- direct image via a multi-rational map
  * "RationalMap MultiprojectiveVariety" -- see MultirationalMap MultiprojectiveVariety,
    -- direct
    image via a multi-rational map
  * multirationalMap(MultiprojectiveVariety)
    -- identity map
  * "ZZ _ MultiprojectiveVariety" -- see
    multirationalMap(MultiprojectiveVariety),
    -- identity map
  * multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
    --
    get the natural inclusion
  * "rationalMap(MultiprojectiveVariety,MultiprojectiveVariety)" -- see
    multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
    --
    get the natural inclusion
  * multirationalMap(MultirationalMap,MultiprojectiveVariety)
    -- change
    the target of a multi-rational map
  * "rationalMap(MultirationalMap,MultiprojectiveVariety)" -- see
    multirationalMap(MultirationalMap,MultiprojectiveVariety),
    -- change
    the target of a multi-rational map
  * parametrize(MultiprojectiveVariety)
    -- try to get a parametrization of
    a multi-projective variety
  * permute(MultiprojectiveVariety,List)
    -- permute the factors of the
    ambient multi-projective space
  * "|- MultiprojectiveVariety" -- see point(MultiprojectiveVariety),
    -- pick a random rational point on a
    multi-projective variety
  * point(MultiprojectiveVariety), --
    pick a random rational point on a multi-projective variety
  * "projectionMaps(MultiprojectiveVariety)" -- see projectionMaps,
    -- projections of a multi-projective variety
  * "projections(MultiprojectiveVariety)" -- see projections,
    -- projections of a multi-projective variety
  * random(List,MultiprojectiveVariety)
    -- get a random hypersurface of
    given multi-degree containing a multi-projective variety
  * "random(ZZ,MultiprojectiveVariety)" -- see
    random(List,MultiprojectiveVariety),
    -- get a random hypersurface of
    given multi-degree containing a multi-projective variety
  * random(MultiprojectiveVariety),
    -- apply a random automorphism of the ambient multi-projective space
  * RAT MultiprojectiveVariety -- rational
    map defined by a linear system of hypersurfaces through a variety
  * rationalMap(List,MultiprojectiveVariety)
    -- the multi-rational map
    defined by a list of rational maps
  * rationalMap(MultiprojectiveVariety,Tally)
    -- rational map defined by
    an effective divisor
  * "rationalMap(MultiprojectiveVariety,Tally,List)" -- see
    rationalMap(MultiprojectiveVariety,Tally),
    -- rational map defined by
    an effective divisor
  * ring(MultiprojectiveVariety), --
    the coordinate ring of the variety
  * segre(MultiprojectiveVariety), --
    the Segre embedding of the variety
  * "segreEmbedding(MultiprojectiveVariety)" -- see segreEmbedding,
    -- the Segre embedding of the variety
  * shape(MultiprojectiveVariety), --
    shape of the ambient multi-projective space of a multi-projective variety
  * "rationalMap(MultiprojectiveVariety)" -- see shortcuts, --
    Some convenient shortcuts for multi-rational maps consisting of a single
    rational map
  * "rationalMap(MultiprojectiveVariety,List)" -- see shortcuts,
    -- Some convenient shortcuts for multi-rational maps consisting
    of a single rational map
  * "rationalMap(MultiprojectiveVariety,ZZ)" -- see shortcuts,
    -- Some convenient shortcuts for multi-rational maps consisting of a single
    rational map
  * "rationalMap(MultiprojectiveVariety,ZZ,ZZ)" -- see shortcuts,
    -- Some convenient shortcuts for multi-rational maps consisting
    of a single rational map
  * singularLocus(MultiprojectiveVariety)
    -- the singular locus of the
    variety
  * support(MultiprojectiveVariety),
    -- support of a multi-projective variety

For the programmer
==================

The object MultiprojectiveVariety, is a
type (Macaulay2Doc), with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2451:0.

projectiveVariety -- the closed multi-projective subvariety defined by a multi-homogeneous ideal
************************************************************************************************

  * Usage:
        projectiveVariety I
  * Inputs:
      * I, an ideal (Macaulay2Doc), a homogeneous ideal in a
        polynomial ring $R$ with the $\mathbb{Z}^n$-grading where the degree of
        each variable is a standard basis vector, that is, $R$ is the
        homogeneous coordinate ring of a product of $n$ projective spaces
        $\mathbb{P}^{k_1}\times\mathbb{P}^{k_2}\times\cdots\times\mathbb{P}^{k_
        n}$
  * Optional inputs (Macaulay2Doc),:
      * MinimalGenerators,
        =>
        ..., default value true, whether to trim the ideal (intended for
        internal use only)
      * Saturate, => ..., default value true, whether to
        compute the multi-saturation of the ideal (intended for internal use
        only)
  * Outputs:
      * a multi-projective variety, the
        projective subvariety of
        $\mathbb{P}^{k_1}\times\mathbb{P}^{k_2}\times\cdots\times\mathbb{P}^{k_
        n}$ defined by $I$

Description
===========

Equivalently, one can give as input the coordinate ring of the projective
variety, that is, the quotient of $R$ by (the multisaturation of) $I$.

In the example, we take a complete intersection
$X\subset\mathbb{P}^{2}\times\mathbb{P}^{3}\times\mathbb{P}^{1}$ of two
hypersurfaces of multidegrees $(2,1,0)$ and $(1,0,1)$.

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/333331;                                                          |
+-----------------------------------------------------------------------------+
|i2 : R = K[x_0..x_2,y_0..y_3,z_0,z_1,Degrees=>{3:{1,0,0},4:{0,1,0},2:{0,0,1  |
|-----------------------------------------------------------------------------|
|}}];                                                                         |
+-----------------------------------------------------------------------------+
|i3 : I = ideal(random({2,1,0},R),random({1,0,1},R))                          |
|                                                                             |
|                    2                         2                              |
|o3 = ideal (- 34043x y  + 74106x x y  + 52821x y  - 47435x x y  +            |
|                    0 0         0 1 0         1 0         0 2 0              |
|     ------------------------------------------------------------------------|
|                          2           2                          2           |
|     123091x x y  - 66080x y  + 91969x y  - 54528x x y  + 106535x y  -       |
|            1 2 0         2 0         0 1         0 1 1          1 1         |
|     ------------------------------------------------------------------------|
|                                         2           2                       |
|     35766x x y  + 120182x x y  + 159079x y  + 69319x y  - 62743x x y  +     |
|           0 2 1          1 2 1          2 1         0 2         0 1 2       |
|     ------------------------------------------------------------------------|
|            2                                      2           2             |
|     136098x y  - 66116x x y  - 96699x x y  + 9398x y  + 92232x y  +         |
|            1 2         0 2 2         1 2 2        2 2         0 3           |
|     ------------------------------------------------------------------------|
|                          2                                       2          |
|     54291x x y  + 155574x y  + 45133x x y  - 77273x x y  - 25242x y ,       |
|           0 1 3          1 3         0 2 3         1 2 3         2 3        |
|     ------------------------------------------------------------------------|
|     86018x z  - 125857x z  + 130921x z  - 106029x z  + 5398x z  - 35792x z )|
|           0 0          1 0          2 0          0 1        1 1         2 1 |
|                                                                             |
|o3 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i4 : X = projectiveVariety I                                                 |
|                                                                             |
|o4 = X                                                                       |
|                                                                             |
|o4 : ProjectiveVariety, 4-dimensional subvariety of PP^2 x PP^3 x PP^1       |
+-----------------------------------------------------------------------------+
|i5 : ? X -- short description                                                |
|                                                                             |
|o5 = 4-dimensional subvariety of PP^2 x PP^3 x PP^1 cut out by 2             |
|     hypersurfaces of multi-degrees (1,0,1)^1 (2,1,0)^1                      |
+-----------------------------------------------------------------------------+
|i6 : describe X -- long description                                          |
|                                                                             |
|o6 = ambient:.............. PP^2 x PP^3 x PP^1                               |
|     dim:.................. 4                                                |
|     codim:................ 2                                                |
|     degree:............... 34                                               |
|     multidegree:.......... 2*T_0^2+T_0*T_1+2*T_0*T_2+T_1*T_2                |
|     generators:........... (1,0,1)^1 (2,1,0)^1                              |
|     purity:............... true                                             |
|     dim sing. l.:......... -1                                               |
|     Segre embedding:...... map to PP^19 ⊂ PP^23                             |
+-----------------------------------------------------------------------------+

Below, we calculate the image of $X$ via the Segre embedding of
$\mathbb{P}^{2}\times\mathbb{P}^{3}\times\mathbb{P}^{1}$ in $\mathbb{P}^{23}$;
thus we get a projective variety isomorphic to $X$ and embedded in a single
projective space $\mathbb{P}^{19}=<X>\subset\mathbb{P}^{23}$.

+-----------------------------------------------------------------------+
|i7 : s = segreEmbedding X;                                             |
|                                                                       |
|o7 : MultirationalMap (rational map from X to PP^19)                   |
+-----------------------------------------------------------------------+
|i8 : X' = image s                                                      |
|                                                                       |
|o8 = X'                                                                |
|                                                                       |
|o8 : ProjectiveVariety, 4-dimensional subvariety of PP^19              |
+-----------------------------------------------------------------------+
|i9 : (dim X', codim X', degree X')                                     |
|                                                                       |
|o9 = (4, 15, 34)                                                       |
|                                                                       |
|o9 : Sequence                                                          |
+-----------------------------------------------------------------------+
|i10 : ? X'                                                             |
|                                                                       |
|o10 = 4-dimensional subvariety of PP^19 cut out by 102 hypersurfaces of|
|      degree 2                                                         |
+-----------------------------------------------------------------------+

See also
========

  * segreEmbedding(MultiprojectiveVariety) -- the Segre
    embedding of the variety
  * dim(MultiprojectiveVariety) -- the
    dimension of the variety
  * codim(MultiprojectiveVariety), --
    the codimension of the variety
  * degree(MultiprojectiveVariety),
    -- the degree of the variety
  * singularLocus(MultiprojectiveVariety)
    -- the singular locus of the
    variety
  * point(MultiprojectiveVariety), --
    pick a random rational point on a multi-projective variety

Ways to use projectiveVariety:
==============================

  * "projectiveVariety(Ideal)"
  * "projectiveVariety(Matrix)"
  * "projectiveVariety(Ring)"
  * "projectiveVariety(RingElement)"
  * projectiveVariety(List,List,Ring)
    -- the Segre-Veronese variety
  * "projectiveVariety(ZZ,ZZ,Ring)" -- see
    projectiveVariety(List,List,Ring),
    -- the Segre-Veronese variety
  * projectiveVariety(List,Ring), --
    product of projective spaces
  * "projectiveVariety(ZZ,Ring)" -- see projectiveVariety(List,Ring),
    -- product of projective spaces
  * projectiveVariety(MultidimensionalMatrix)
    -- the multi-projective
    variety defined by a multi-dimensional matrix

For the programmer
==================

The object projectiveVariety, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2510:0.

projectiveVariety(List,Ring) -- product of projective spaces
************************************************************

  * Function: projectiveVariety,
  * Usage:
        projectiveVariety(n,K)
        PP_K^n
  * Inputs:
      * n, a list (Macaulay2Doc), a list of non-negative integers
        $n=\{n_1,n_2,\ldots,n_r\}$
      * K, a ring (Macaulay2Doc), a field
  * Optional inputs (Macaulay2Doc),:
      * MinimalGenerators,
        =>
        ..., default value true, whether to trim the ideal (intended for
        internal use only)
      * Saturate, => ..., default value true, whether to
        compute the multi-saturation of the ideal (intended for internal use
        only)
  * Outputs:
      * a multi-projective variety, the product
        of projective spaces $\mathbb{P}^{n_1}\times\mathbb{P}^{n_2}\times\
        cdots\times\mathbb{P}^{n_r}$ over $K$

Description
===========

+-------------------------------------------------+
|i1 : projectiveVariety({2,1,3},ZZ/33331);        |
|                                                 |
|o1 : ProjectiveVariety, PP^2 x PP^1 x PP^3       |
+-------------------------------------------------+
|i2 : PP_(ZZ/33331)^{2,1,3};                      |
|                                                 |
|o2 : ProjectiveVariety, PP^2 x PP^1 x PP^3       |
+-------------------------------------------------+
|i3 : PP_QQ^{1,1,1,1};                            |
|                                                 |
|o3 : ProjectiveVariety, PP^1 x PP^1 x PP^1 x PP^1|
+-------------------------------------------------+
|i4 : PP_QQ^{};                                   |
|                                                 |
|o4 : ProjectiveVariety, empty scheme             |
+-------------------------------------------------+

See also
========

  * projectiveVariety(List,List,Ring)
    -- the Segre-Veronese variety

Ways to use this method:
========================

  * projectiveVariety(List,Ring), --
    product of projective spaces
  * "projectiveVariety(ZZ,Ring)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2519:0.

projectiveVariety(List,List,Ring) -- the Segre-Veronese variety
***************************************************************

  * Function: projectiveVariety,
  * Usage:
        projectiveVariety(n,d,K)
        PP_K^(n,d)
  * Inputs:
      * n, a list (Macaulay2Doc), a list of $r$ non-negative
        integers $n=\{n_1,n_2,\ldots,n_r\}$
      * d, a list (Macaulay2Doc), a list of $r$ degrees
        $d=\{d_1,d_2,\ldots,d_r\}$
      * K, a ring (Macaulay2Doc), a field
  * Optional inputs (Macaulay2Doc),:
      * MinimalGenerators,
        =>
        ..., default value true, whether to trim the ideal (intended for
        internal use only)
      * Saturate, => ..., default value true, whether to
        compute the multi-saturation of the ideal (intended for internal use
        only)
  * Outputs:
      * a multi-projective variety, the
        Segre-Veronese variety
        $\nu_{d_1}(\mathbb{P}^{n_1})\times\nu_{d_2}(\mathbb{P}^{n_2})\times\
        cdots\times\nu_{d_r}(\mathbb{P}^{n_r})$ over $K$

Description
===========

+----------------------------------------------------------------------+
|i1 : X = projectiveVariety({2,1,3},{3,4,2},ZZ/33331);                 |
|                                                                      |
|o1 : ProjectiveVariety, 6-dimensional subvariety of PP^9 x PP^4 x PP^9|
+----------------------------------------------------------------------+
|i2 : X = PP_(ZZ/33331)^({2,1,3},{3,4,2});                             |
|                                                                      |
|o2 : ProjectiveVariety, 6-dimensional subvariety of PP^9 x PP^4 x PP^9|
+----------------------------------------------------------------------+
|i3 : parametrize X;                                                   |
|                                                                      |
|o3 : MultirationalMap (rational map from PP^6 to X)                   |
+----------------------------------------------------------------------+

See also
========

  * projectiveVariety(List,Ring), --
    product of projective spaces

Ways to use this method:
========================

  * projectiveVariety(List,List,Ring)
    -- the Segre-Veronese variety
  * "projectiveVariety(ZZ,ZZ,Ring)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2531:0.

projectiveVariety(MultidimensionalMatrix) -- the multi-projective variety defined by a multi-dimensional matrix
***************************************************************************************************************

  * Function: projectiveVariety,
  * Usage:
        projectiveVariety A
  * Inputs:
      * A, a multidimensional matrix (SparseResultants),
        an $n$-dimensional matrix of
        shape $(k_1+1)\times\cdots\times (k_n+1)$
  * Optional inputs (Macaulay2Doc),:
      * MinimalGenerators,
        =>
        ..., default value true, whether to trim the ideal (intended for
        internal use only)
      * Saturate, => ..., default value true, whether to
        compute the multi-saturation of the ideal (intended for internal use
        only)
  * Outputs:
      * a multi-projective variety, the
        corresponding hypersurface of multi-degree $(1,\ldots,1)$ on the
        product of projective spaces
        $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n}$

Description
===========

In particular, we have det (SparseResultants),
A != 0 if and only
if dim, singularLocus,
(projectiveVariety A) == -1.

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/33331;                                                           |
+-----------------------------------------------------------------------------+
|i2 : A = randomMultidimensionalMatrix({2,2,3},CoefficientRing=>K)            |
|                                                                             |
|o2 = {{{-456, -6898, 3783}, {-6635, 8570, 16659}}, {{8444, -9579, 5071},     |
|     ------------------------------------------------------------------------|
|     {-7531, -10808, 5864}}}                                                 |
|                                                                             |
|o2 : 3-dimensional matrix of shape 2 x 2 x 3 over K                          |
+-----------------------------------------------------------------------------+
|i3 : det A                                                                   |
|                                                                             |
|o3 = -12772                                                                  |
|                                                                             |
|o3 : K                                                                       |
+-----------------------------------------------------------------------------+
|i4 : X = projectiveVariety A;                                                |
|                                                                             |
|o4 : ProjectiveVariety, hypersurface in PP^1 x PP^1 x PP^2                   |
+-----------------------------------------------------------------------------+
|i5 : dim singularLocus X                                                     |
|                                                                             |
|o5 = -1                                                                      |
+-----------------------------------------------------------------------------+
|i6 : B = multidimensionalMatrix {{{9492_K, 13628, -9292}, {9311, -5201, -1643|
|                                                                             |
|o6 = {{{9492, 13628, -9292}, {9311, -5201, -16439}}, {{11828, -16301, 8162}, |
|     ------------------------------------------------------------------------|
|     {15287, 8345, -2094}}}                                                  |
|                                                                             |
|o6 : 3-dimensional matrix of shape 2 x 2 x 3 over K                          |
|-----------------------------------------------------------------------------|
|9}}, {{11828, -16301, 8162}, {15287, 8345, -2094}}}                          |
+-----------------------------------------------------------------------------+
|i7 : det B                                                                   |
|                                                                             |
|o7 = 0                                                                       |
|                                                                             |
|o7 : K                                                                       |
+-----------------------------------------------------------------------------+
|i8 : Y = projectiveVariety B;                                                |
|                                                                             |
|o8 : ProjectiveVariety, hypersurface in PP^1 x PP^1 x PP^2                   |
+-----------------------------------------------------------------------------+
|i9 : dim singularLocus Y                                                     |
|                                                                             |
|o9 = 0                                                                       |
+-----------------------------------------------------------------------------+

See also
========

  * determinant(MultidimensionalMatrix) (SparseResultants),
    --
    hyperdeterminant of a multidimensional matrix
  * singularLocus(MultiprojectiveVariety)
    -- the singular locus of the
    variety

Ways to use this method:
========================

  * projectiveVariety(MultidimensionalMatrix)
    -- the multi-projective
    variety defined by a multi-dimensional matrix
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3412:0.

MultirationalMap -- the class of all multi-rational maps
********************************************************

Description
===========

A multi-rational map is a rational map between multi-projective varieties,
$$\Phi:X\subseteq
\mathbb{P}^{r_1}\times\mathbb{P}^{r_2}\times\cdots\times\mathbb{P}^{r_n}\
dashrightarrow Y \subseteq
\mathbb{P}^{s_1}\times\mathbb{P}^{s_2}\times\cdots\times\mathbb{P}^{s_m}
.$$Thus, it can be represented by an ordered list (Macaulay2Doc), of
rational maps (Cremona),$$\Phi_i = (\Phi:X\dashrightarrow
Y)\circ(pr_i:Y\to Y_i\subseteq\mathbb{P}^{s_i}) ,$$for $i=1,\ldots,m$. The maps
$\Phi_i:X\dashrightarrow Y_i\subseteq\mathbb{P}^{s_i}$, since the target $Y_i$
is a standard projective variety, are implemented with the class
RationalMap (Cremona), (more properly, when $n>1$ the class of such
maps is called MultihomogeneousRationalMap). Recall that the main constructor
for the class RationalMap (Cremona), (as well as for the
class MultihomogeneousRationalMap) is the method rationalMap (Cremona).

The constructor for the class of multi-rational maps is multirationalMap,
which can often be abbreviated to rationalMap,
(see also shortcuts).
It takes as input the list of maps $\{\Phi_1:X\dashrightarrow
Y_1,\ldots,\Phi_m:X\dashrightarrow Y_m\}$, together with the variety $Y$, and
returns the map $\Phi:X\dashrightarrow Y$.

Types of multi-rational map:
============================

  * WeightedRationalMap -- the class of all
    weighted-rational maps

Functions and methods returning a multi-rational map:
=====================================================

  * inverse2 -- inverse of a birational map using a faster
    algorithm for a special class of maps
  * multirationalMap -- the multi-rational map defined
    by a list of rational maps
  * "compose(MultirationalMap,MultirationalMap)" -- see MultirationalMap * MultirationalMap,
    -- composition
    of multi-rational maps

Methods that use a multi-rational map:
======================================

  * "baseLocus(MultirationalMap)" -- see baseLocus, -- the
    base locus of a multi-rational map
  * check(MultirationalMap) -- check that a
    multi-rational map is well-defined
  * clean(MultirationalMap) -- clean the
    internal information of a multi-rational map
  * coefficientRing(MultirationalMap)
    -- the coefficient ring of a
    multi-rational map
  * degree(MultirationalMap) -- degree of
    a multi-rational map
  * "degreeMap(MultirationalMap)" -- see degree(MultirationalMap),
    -- degree of a multi-rational map
  * degree(MultirationalMap,Option)
    -- degree of a multi-rational map
    using a probabilistic approach
  * "degreeSequence(MultirationalMap)" -- see degreeSequence,
    -- the (multi)-degree sequence of a (multi)-rational map
  * "? MultirationalMap" -- see describe(MultirationalMap),
    -- describe a multi-rational map
  * describe(MultirationalMap), --
    describe a multi-rational map
  * entries(MultirationalMap) -- list the
    defining polynomials of a rational map
  * factor(MultirationalMap) -- the list
    of rational maps defining a multi-rational map
  * forceImage(MultirationalMap,MultiprojectiveVariety)
    -- declare which
    is the image of a multi-rational map
  * "forceImage(MultirationalMap,ZZ)" -- see
    forceImage(MultirationalMap,MultiprojectiveVariety),
    -- declare which
    is the image of a multi-rational map
  * GG(ZZ,MultirationalMap) -- induced
    automorphism of the Grassmannian
  * graph(MultirationalMap) -- the graph of
    a multi-rational map
  * image(MultirationalMap) -- image of a
    multi-rational map
  * inverse(MultirationalMap) -- inverse
    of a birational map
  * "inverse2(MultirationalMap)" -- see inverse2, -- inverse of
    a birational map using a faster algorithm for a special class of maps
  * isIsomorphism(MultirationalMap),
    -- whether a birational map is an isomorphism
  * isMember(MultirationalMap,RAT),
    -- test membership in a hom-set of rational maps
  * isMorphism(MultirationalMap), --
    whether a multi-rational map is a morphism
  * isWellDefined(MultirationalMap),
    -- whether a multi-rational map is well-defined
  * multidegree(MultirationalMap), --
    projective degrees of a multi-rational map
  * "projectiveDegrees(MultirationalMap)" -- see
    multidegree(MultirationalMap), --
    projective degrees of a multi-rational map
  * multidegree(ZZ,MultirationalMap)
    -- i-th projective degree of a
    multi-rational map using a probabilistic approach
  * MultirationalMap * MultirationalMap
    -- composition of multi-rational maps
  * "MultirationalMap * RationalMap" -- see MultirationalMap * MultirationalMap,
    -- composition of
    multi-rational maps
  * "MultirationalMap ^ ZZ" -- see MultirationalMap * MultirationalMap,
    -- composition of multi-rational
    maps
  * "RationalMap * MultirationalMap" -- see MultirationalMap * MultirationalMap,
    -- composition of
    multi-rational maps
  * MultirationalMap ** Ring -- change the
    coefficient ring of a multi-rational map
  * MultirationalMap << MultiprojectiveVariety
    -- force the change of the target in a
    multi-rational map
  * MultirationalMap <==> MultirationalMap
    -- equality of multi-rational maps with checks on
    internal data
  * MultirationalMap == MultirationalMap
    -- equality of multi-rational maps
  * "MultirationalMap == RationalMap" -- see MultirationalMap == MultirationalMap,
    -- equality of
    multi-rational maps
  * "MultirationalMap == ZZ" -- see MultirationalMap == MultirationalMap,
    -- equality of multi-rational maps
  * "RationalMap == MultirationalMap" -- see MultirationalMap == MultirationalMap,
    -- equality of
    multi-rational maps
  * "ZZ == MultirationalMap" -- see MultirationalMap == MultirationalMap,
    -- equality of multi-rational maps
  * "MultirationalMap ^*" -- see MultirationalMap ^** MultiprojectiveVariety,
    --
    inverse image via a multi-rational map
  * MultirationalMap ^** MultiprojectiveVariety
    -- inverse image via a multi-rational map
  * "MultirationalMap | List" -- see MultirationalMap | MultiprojectiveVariety,
    --
    restriction of a multi-rational map
  * MultirationalMap | MultiprojectiveVariety
    -- restriction of a multi-rational map
  * MultirationalMap | MultirationalMap
    -- product of multi-rational maps
  * "MultirationalMap | RationalMap" -- see MultirationalMap | MultirationalMap,
    -- product of
    multi-rational maps
  * "RationalMap | MultirationalMap" -- see MultirationalMap | MultirationalMap,
    -- product of
    multi-rational maps
  * "MultirationalMap || List" -- see MultirationalMap || MultiprojectiveVariety,
    --
    restriction of a multi-rational map
  * MultirationalMap || MultiprojectiveVariety
    -- restriction of a multi-rational map
  * MultirationalMap || MultirationalMap
    -- product of multi-rational maps
  * "MultirationalMap || RationalMap" -- see MultirationalMap || MultirationalMap,
    -- product of
    multi-rational maps
  * "RationalMap || MultirationalMap" -- see MultirationalMap || MultirationalMap,
    -- product of
    multi-rational maps
  * MultirationalMap MultiprojectiveVariety
    -- direct image via a multi-rational map
  * multirationalMap(MultirationalMap,MultiprojectiveVariety)
    -- change
    the target of a multi-rational map
  * "rationalMap(MultirationalMap,MultiprojectiveVariety)" -- see
    multirationalMap(MultirationalMap,MultiprojectiveVariety),
    -- change
    the target of a multi-rational map
  * projectionMaps(MultirationalMap)
    -- get the compositions of the
    multi-rational map with the projections of the target
  * "rationalMap(MultirationalMap)" -- see
    rationalMap(List,MultiprojectiveVariety),
    -- the multi-rational map
    defined by a list of rational maps
  * segre(MultirationalMap) -- the
    composition of a multi-rational map with the Segre embedding of the target
  * show(MultirationalMap) -- display a
    multi-rational map
  * source(MultirationalMap) -- the source
    for a multi-rational map
  * super(MultirationalMap) -- get the
    multi-rational map whose target is a product of projective spaces
  * target(MultirationalMap) -- the target
    for a multi-rational map
  * "toRationalMap(MultirationalMap)" -- see toRationalMap,
    -- convert a multi-rational map consisting of a single
    rational map to a standard rational map
  * trim(MultirationalMap) -- trim the
    target of a multi-rational map

For the programmer
==================

The object MultirationalMap, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2875:0.

multirationalMap -- the multi-rational map defined by a list of rational maps
*****************************************************************************

  * Usage:
        multirationalMap Phi
        multirationalMap(Phi,Y)
  * Inputs:
      * Phi, a list (Macaulay2Doc), of rational maps (Cremona),
        $\{\Phi_1:X\dashrightarrow
        Y_1\subseteq\mathbb{P}^{s_1},\ldots,\Phi_m:X\dashrightarrow
        Y_m\subseteq\mathbb{P}^{s_m}\}$, all having the same source (Cremona),
        $X\subseteq
        \mathbb{P}^{r_1}\times\mathbb{P}^{r_2}\times\cdots\times\mathbb{P}^{r_n
        }$
      * Y, a multi-projective variety, $Y
        \subseteq \mathbb{P}^{s_1}\times\mathbb{P}^{s_2}\times\cdots\times\
        mathbb{P}^{s_m}$ (if omitted, then the product,
        $Y_1\times\cdots
        \times Y_m$ is taken)
  * Outputs:
      * a multi-rational map, the unique rational map
        $\Phi:X\subseteq \mathbb{P}^{r_1}\times\mathbb{P}^{r_2}\times\cdots\
        times\mathbb{P}^{r_n}\dashrightarrow Y \subseteq
        \mathbb{P}^{s_1}\times\mathbb{P}^{s_2}\times\cdots\times\mathbb{P}^{s_m
        }$ such that $pr_i\circ\Phi = \Phi_i$, where $pr_i:Y\subseteq
        \mathbb{P}^{s_1}\times\mathbb{P}^{s_2}\times\cdots\times\mathbb{P}^{s_m
        } \to Y_i\subseteq \mathbb{P}^{s_i}$ denotes the i-th projection

Description
===========

+-----------------------------------------------------------------------------+
|i1 : R = ring PP_(ZZ/65521)^{2,1};                                           |
+-----------------------------------------------------------------------------+
|i2 : f = rationalMap for i to 3 list random({1,1},R);                        |
|                                                                             |
|o2 : MultihomogeneousRationalMap (rational map from PP^2 x PP^1 to PP^3)     |
+-----------------------------------------------------------------------------+
|i3 : g = rationalMap(for i to 4 list random({0,1},R),Dominant=>true);        |
|                                                                             |
|o3 : MultihomogeneousRationalMap (dominant rational map from PP^2 x PP^1 to  |
|-----------------------------------------------------------------------------|
|curve in PP^4)                                                               |
+-----------------------------------------------------------------------------+
|i4 : h = rationalMap for i to 2 list random({1,0},R);                        |
|                                                                             |
|o4 : MultihomogeneousRationalMap (rational map from PP^2 x PP^1 to PP^2)     |
+-----------------------------------------------------------------------------+
|i5 : Phi = multirationalMap {f,g,h}                                          |
|                                                                             |
|o5 = Phi                                                                     |
|                                                                             |
|o5 : MultirationalMap (rational map from PP^2 x PP^1 to 6-dimensional        |
|-----------------------------------------------------------------------------|
|subvariety of PP^3 x PP^4 x PP^2)                                            |
+-----------------------------------------------------------------------------+
|i6 : describe Phi -- long description                                        |
|                                                                             |
|o6 = multi-rational map consisting of 3 rational maps                        |
|     source variety: PP^2 x PP^1                                             |
|     target variety: 6-dimensional subvariety of PP^3 x PP^4 x PP^2 cut      |
|     base locus: empty subscheme of PP^2 x PP^1                              |
|     dominance: false                                                        |
|     image: threefold in PP^3 x PP^4 x PP^2 cut out by 14 hypersurfaces      |
|     multidegree: {3, 6, 12, 24}                                             |
|     degree: 1                                                               |
|     degree sequence (map 1/3): [(1,1)]                                      |
|     degree sequence (map 2/3): [(0,1)]                                      |
|     degree sequence (map 3/3): [(1,0)]                                      |
|     coefficient ring: ZZ/65521                                              |
|-----------------------------------------------------------------------------|
|out by 3 hypersurfaces of multi-degree (0,1,0)                               |
|                                                                             |
|                                                                             |
|of multi-degrees (0,1,0)^3 (1,0,2)^4 (1,1,1)^6 (1,3,0)^1                     |
+-----------------------------------------------------------------------------+
|i7 : ? Phi -- short description                                              |
|                                                                             |
|o7 = multi-rational map consisting of 3 rational maps                        |
|     source variety: PP^2 x PP^1                                             |
|     target variety: 6-dimensional subvariety of PP^3 x PP^4 x PP^2 cut      |
|     base locus: empty subscheme of PP^2 x PP^1                              |
|     dominance: false                                                        |
|     image: threefold in PP^3 x PP^4 x PP^2 cut out by 14 hypersurfaces      |
|     multidegree: {3, 6, 12, 24}                                             |
|     degree: 1                                                               |
|-----------------------------------------------------------------------------|
|out by 3 hypersurfaces of multi-degree (0,1,0)                               |
|                                                                             |
|                                                                             |
|of multi-degrees (0,1,0)^3 (1,0,2)^4 (1,1,1)^6 (1,3,0)^1                     |
+-----------------------------------------------------------------------------+
|i8 : X = projectiveVariety R;                                                |
|                                                                             |
|o8 : ProjectiveVariety, PP^2 x PP^1                                          |
+-----------------------------------------------------------------------------+
|i9 : Phi;                                                                    |
|                                                                             |
|o9 : MultirationalMap (morphism from X to 6-dimensional subvariety of PP^3 x |
|-----------------------------------------------------------------------------|
|PP^4 x PP^2)                                                                 |
+-----------------------------------------------------------------------------+
|i10 : Y = target Phi;                                                        |
|                                                                             |
|o10 : ProjectiveVariety, 6-dimensional subvariety of PP^3 x PP^4 x PP^2      |
+-----------------------------------------------------------------------------+
|i11 : Phi;                                                                   |
|                                                                             |
|o11 : MultirationalMap (morphism from X to Y)                                |
+-----------------------------------------------------------------------------+
|i12 : Z = (image multirationalMap {f,g}) ** target h;                        |
|                                                                             |
|o12 : ProjectiveVariety, 5-dimensional subvariety of PP^3 x PP^4 x PP^2      |
+-----------------------------------------------------------------------------+
|i13 : Psi = multirationalMap({f,g,h},Z)                                      |
|                                                                             |
|o13 = Psi                                                                    |
|                                                                             |
|o13 : MultirationalMap (rational map from X to Z)                            |
+-----------------------------------------------------------------------------+
|i14 : assert(image Psi == image Phi)                                         |
+-----------------------------------------------------------------------------+

Caveat
======

Be careful when you pass the target Y as input, because it must be compatible
with the maps but for efficiency reasons a full check is not done
automatically. See check(MultirationalMap).

See also
========

  * rationalMap(List,MultiprojectiveVariety)
    -- the multi-rational map
    defined by a list of rational maps
  * graph(MultirationalMap) -- the graph of
    a multi-rational map
  * image(MultirationalMap) -- image of a
    multi-rational map
  * baseLocus(MultirationalMap) -- the base locus of a
    multi-rational map
  * inverse(MultirationalMap) -- inverse
    of a birational map
  * shortcuts -- Some convenient shortcuts for multi-rational
    maps consisting of a single rational map
  * rationalMap (Cremona) -- makes a rational map
  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties

Ways to use multirationalMap:
=============================

  * "multirationalMap(List)"
  * "multirationalMap(List,MultiprojectiveVariety)"
  * multirationalMap(MultiprojectiveVariety)
    -- identity map
  * multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
    --
    get the natural inclusion
  * multirationalMap(MultirationalMap,MultiprojectiveVariety)
    -- change
    the target of a multi-rational map
  * "multirationalMap(RationalMap)" -- see shortcuts, -- Some
    convenient shortcuts for multi-rational maps consisting of a single
    rational map

For the programmer
==================

The object multirationalMap, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2918:0.

rationalMap(List,MultiprojectiveVariety) -- the multi-rational map defined by a list of rational maps
*****************************************************************************************************

  * Function: rationalMap (Cremona),
  * Usage:
        rationalMap Phi
        rationalMap(Phi,Y)
  * Inputs:
      * Phi, a list (Macaulay2Doc), whose elements are either
        rational maps (Cremona), or representatives of them (e.g.,
        see row matrices (Macaulay2Doc), or ring maps (Macaulay2Doc))
      * Y, a multi-projective variety, optional
  * Optional inputs (Macaulay2Doc),:
      * Dominant (Cremona), => ..., default value null,
  * Outputs:
      * a multi-rational map, the same as
        multirationalMap,(Phi,Y), or multirationalMap,
        Phi (if Y is not specified)

See also
========

  * multirationalMap -- the multi-rational map defined
    by a list of rational maps
  * rationalMap (Cremona) -- makes a rational map
  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties

Ways to use this method:
========================

  * rationalMap(List,MultiprojectiveVariety)
    -- the multi-rational map
    defined by a list of rational maps
  * "rationalMap(MultirationalMap)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2928:0.

∏ -- product of multi-projective varieties
******************************************

  * Usage:
        ∏ {X,Y,Z,...}
  * Inputs:
      * a list (Macaulay2Doc), {X,Y,Z,...} of multi-projective varieties,
  * Outputs:
      * a multi-projective variety, the product
        $X\times Y \times Z\times \cdots$

Description
===========

+-----------------------------------------------------------------+
|i1 : K = ZZ/33331;                                               |
+-----------------------------------------------------------------+
|i2 : X = PP_K^(2,2);                                             |
|                                                                 |
|o2 : ProjectiveVariety, surface in PP^5                          |
+-----------------------------------------------------------------+
|i3 : Y = PP_K^({1,1,1},{2,3,1});                                 |
|                                                                 |
|o3 : ProjectiveVariety, threefold in PP^2 x PP^3 x PP^1          |
+-----------------------------------------------------------------+
|i4 : Z = PP_K^(1,4);                                             |
|                                                                 |
|o4 : ProjectiveVariety, curve in PP^4                            |
+-----------------------------------------------------------------+
|i5 : ∏ {X,Y,Z};                                                  |
|                                                                 |
|o5 : ProjectiveVariety, X x Y x Z                                |
+-----------------------------------------------------------------+
|i6 : assert(oo == ∏ {X ** Y,Z} and ∏ {X ** Y,Z} == ∏ {X, Y ** Z})|
+-----------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety ** MultiprojectiveVariety
    -- product of two
    multi-projective varieties

Ways to use ∏:
==============

  * "∏(List)"

For the programmer
==================

The object ∏, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2709:0.

⋂ -- intersection of multi-projective varieties
***********************************************

  * Usage:
        ⋂ {X,Y,Z,...}
  * Inputs:
      * a list (Macaulay2Doc), {X,Y,Z,...} of multi-projective varieties,
  * Outputs:
      * a multi-projective variety, the
        intersection $X\cap Y \cap Z\cap \cdots$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/33331;                                                           |
+-----------------------------------------------------------------------------+
|i2 : p = point PP_K^({1,2},{1,1});                                           |
|                                                                             |
|o2 : ProjectiveVariety, a point in PP^1 x PP^2                               |
+-----------------------------------------------------------------------------+
|i3 : X = random({1,1},p);                                                    |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^1 x PP^2                               |
+-----------------------------------------------------------------------------+
|i4 : Y = random({2,1},p);                                                    |
|                                                                             |
|o4 : ProjectiveVariety, surface in PP^1 x PP^2                               |
+-----------------------------------------------------------------------------+
|i5 : Z = random({2,2},p);                                                    |
|                                                                             |
|o5 : ProjectiveVariety, surface in PP^1 x PP^2                               |
+-----------------------------------------------------------------------------+
|i6 : ⋂ {X,Y,Z}                                                               |
|                                                                             |
|o6 = 0-dimensional subvariety of PP^1 x PP^2 cut out by 10 hypersurfaces of  |
|                                                                             |
|o6 : ProjectiveVariety, 0-dimensional subvariety of PP^1 x PP^2              |
|-----------------------------------------------------------------------------|
|multi-degrees (0,3)^2 (0,4)^1 (1,1)^1 (1,2)^1 (1,3)^1 (2,1)^1 (2,2)^1 (5,1)^1|
|-----------------------------------------------------------------------------|
|(8,0)^1                                                                      |
+-----------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety * MultiprojectiveVariety
    -- intersection of two
    multi-projective varieties

Ways to use ⋂:
==============

  * "⋂(List)"

For the programmer
==================

The object ⋂, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2749:0.

⋃ -- union of multi-projective varieties
****************************************

  * Usage:
        ⋃ {X,Y,Z,...}
  * Inputs:
      * a list (Macaulay2Doc), {X,Y,Z,...} of multi-projective varieties,
  * Outputs:
      * a multi-projective variety, the union
        $X\cup Y \cup Z\cup \cdots$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/33331;                                                           |
+-----------------------------------------------------------------------------+
|i2 : L = for i to 9 list point PP_K^({1,2,2},{1,1,3});                       |
+-----------------------------------------------------------------------------+
|i3 : ⋃ L                                                                     |
|                                                                             |
|o3 = 0-dimensional subvariety of PP^1 x PP^2 x PP^9 cut out by 94            |
|                                                                             |
|o3 : ProjectiveVariety, 0-dimensional subvariety of PP^1 x PP^2 x            |
|-----------------------------------------------------------------------------|
|hypersurfaces of multi-degrees (0,0,2)^45 (0,1,1)^20 (0,4,0)^5 (1,0,1)^10    |
|                                                                             |
|PP^9                                                                         |
|-----------------------------------------------------------------------------|
|(1,2,0)^2 (1,3,0)^4 (2,2,0)^4 (3,1,0)^2 (4,1,0)^1 (10,0,0)^1                 |
+-----------------------------------------------------------------------------+
|i4 : degree oo                                                               |
|                                                                             |
|o4 = 10                                                                      |
+-----------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety + MultiprojectiveVariety
    -- union of two
    multi-projective varieties

Ways to use ⋃:
==============

  * "⋃(List)"

For the programmer
==================

The object ⋃, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2775:0.

ambient(MultiprojectiveVariety) -- the ambient multi-projective space of the variety
************************************************************************************

  * Function: ambient (Macaulay2Doc),
  * Usage:
        ambient X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the product
        of the projective spaces where $X$ is embedded

Description
===========

+-------------------------------------------------------+
|i1 : X = PP_QQ^({1,1,1},{2,1,3});                      |
|                                                       |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^1 x PP^3|
+-------------------------------------------------------+
|i2 : ambient X;                                        |
|                                                       |
|o2 : ProjectiveVariety, PP^2 x PP^1 x PP^3             |
+-------------------------------------------------------+

Ways to use this method:
========================

  * ambient(MultiprojectiveVariety),
    -- the ambient multi-projective space of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2611:0.

ambientVariety -- the ambient variety of a projective subvariety
****************************************************************

  * Usage:
        ambientVariety X
  * Inputs:
      * X, a multi-projective variety, a
        subvariety, of another
        variety, Y
  * Outputs:
      * a multi-projective variety, the ambient
        variety Y

Description
===========

+--------------------------------------------------------------------------+
|i1 : X = point PP_(ZZ/65521)^3;                                           |
|                                                                          |
|o1 : ProjectiveVariety, a point in PP^3                                   |
+--------------------------------------------------------------------------+
|i2 : Y = random({1},X);                                                   |
|                                                                          |
|o2 : ProjectiveVariety, surface in PP^3                                   |
+--------------------------------------------------------------------------+
|i3 : X % Y                                                                |
|                                                                          |
|o3 = X                                                                    |
|                                                                          |
|o3 : ProjectiveVariety, a point in PP^3 (subvariety of codimension 2 in Y)|
+--------------------------------------------------------------------------+
|i4 : ambientVariety X                                                     |
|                                                                          |
|o4 = Y                                                                    |
|                                                                          |
|o4 : ProjectiveVariety, surface in PP^3                                   |
+--------------------------------------------------------------------------+
|i5 : ambient X                                                            |
|                                                                          |
|o5 = PP^3                                                                 |
|                                                                          |
|o5 : ProjectiveVariety, PP^3                                              |
+--------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety % MultiprojectiveVariety
    -- subvariety of a
    projective variety
  * ambient(MultiprojectiveVariety),
    -- the ambient multi-projective space of the variety

Ways to use ambientVariety:
===========================

  * "ambientVariety(MultiprojectiveVariety)"

For the programmer
==================

The object ambientVariety, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3988:0.

baseLocus -- the base locus of a multi-rational map
***************************************************

  * Usage:
        baseLocus Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a multi-projective variety, the base
        locus of Phi, that is, the locus where it is not defined

Description
===========

+-----------------------------------------------------------------------------+
|i1 : t = gens ring PP_(ZZ/33331)^5;                                          |
+-----------------------------------------------------------------------------+
|i2 : Phi = rationalMap {rationalMap {t_0,t_1,t_2},rationalMap {t_3,t_4,t_5}};|
|                                                                             |
|o2 : MultirationalMap (rational map from PP^5 to PP^2 x PP^2)                |
+-----------------------------------------------------------------------------+
|i3 : X = baseLocus Phi;                                                      |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^5                                      |
+-----------------------------------------------------------------------------+
|i4 : describe X                                                              |
|                                                                             |
|o4 = ambient:.............. PP^5                                             |
|     dim:.................. 2                                                |
|     codim:................ 3                                                |
|     degree:............... 2                                                |
|     generators:........... 2^9                                              |
|     purity:............... true                                             |
|     dim sing. l.:......... -1                                               |
+-----------------------------------------------------------------------------+
|i5 : Psi = inverse(Phi|random(3,baseLocus Phi));                             |
|                                                                             |
|o5 : MultirationalMap (birational map from PP^2 x PP^2 to hypersurface in    |
|-----------------------------------------------------------------------------|
|PP^5)                                                                        |
+-----------------------------------------------------------------------------+
|i6 : Y = baseLocus Psi;                                                      |
|                                                                             |
|o6 : ProjectiveVariety, surface in PP^2 x PP^2                               |
+-----------------------------------------------------------------------------+
|i7 : describe Y                                                              |
|                                                                             |
|o7 = ambient:.............. PP^2 x PP^2                                      |
|     dim:.................. 2                                                |
|     codim:................ 2                                                |
|     degree:............... 14                                               |
|     multidegree:.......... 2*T_0^2+5*T_0*T_1+2*T_1^2                        |
|     generators:........... (1,2)^1 (2,1)^1                                  |
|     purity:............... true                                             |
|     dim sing. l.:......... -1                                               |
|     Segre embedding:...... map to PP^8                                      |
+-----------------------------------------------------------------------------+

See also
========

  * isMorphism(MultirationalMap), --
    whether a multi-rational map is a morphism
  * ideal(RationalMap) (Cremona) -- base locus of
    a rational map

Ways to use baseLocus:
======================

  * "baseLocus(MultirationalMap)"
  * "baseLocus(RationalMap)"

For the programmer
==================

The object baseLocus, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3393:0.

check(MultirationalMap) -- check that a multi-rational map is well-defined
**************************************************************************

  * Function: check (Macaulay2Doc),
  * Usage:
        check Phi
  * Inputs:
      * a multi-rational map,
  * Optional inputs (Macaulay2Doc),:
      * UserMode (Macaulay2Doc), => ..., default value null,
      * Verbose (Macaulay2Doc), => ..., default value false,
  * Outputs:
      * a multi-rational map, the same object passed
        as input, but an error is thrown if the target of the map is not
        compatible.

Description
===========

+-------------------------------------------------------------------------+
|i1 : f = rationalMap ideal PP_(ZZ/65521)^(1,4);                          |
|                                                                         |
|o1 : RationalMap (quadratic rational map from PP^4 to PP^5)              |
+-------------------------------------------------------------------------+
|i2 : Phi = rationalMap {f}                                               |
|                                                                         |
|o2 = Phi                                                                 |
|                                                                         |
|o2 : MultirationalMap (rational map from PP^4 to PP^5)                   |
+-------------------------------------------------------------------------+
|i3 : check Phi                                                           |
|                                                                         |
|o3 = Phi                                                                 |
|                                                                         |
|o3 : MultirationalMap (rational map from PP^4 to PP^5)                   |
+-------------------------------------------------------------------------+
|i4 : Y = image Phi                                                       |
|                                                                         |
|o4 = Y                                                                   |
|                                                                         |
|o4 : ProjectiveVariety, hypersurface in PP^5                             |
+-------------------------------------------------------------------------+
|i5 : Psi = rationalMap({f},Y)                                            |
|                                                                         |
|o5 = Psi                                                                 |
|                                                                         |
|o5 : MultirationalMap (rational map from PP^4 to Y)                      |
+-------------------------------------------------------------------------+
|i6 : check Psi                                                           |
|                                                                         |
|o6 = Psi                                                                 |
|                                                                         |
|o6 : MultirationalMap (rational map from PP^4 to Y)                      |
+-------------------------------------------------------------------------+
|i7 : p = point Y;                                                        |
|                                                                         |
|o7 : ProjectiveVariety, a point in PP^5                                  |
+-------------------------------------------------------------------------+
|i8 : Eta = rationalMap({f},p);                                           |
|                                                                         |
|o8 : MultirationalMap (rational map from PP^4 to p)                      |
+-------------------------------------------------------------------------+
|i9 : stopIfError = false;                                                |
+-------------------------------------------------------------------------+
|i10 : check Eta                                                          |
|stdio:10:5:(3): error: the target variety is not compatible with the maps|
+-------------------------------------------------------------------------+

See also
========

  * isWellDefined(MultirationalMap),
    -- whether a multi-rational map is well-defined

Ways to use this method:
========================

  * check(MultirationalMap) -- check that a
    multi-rational map is well-defined
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2947:0.

chowForm(EmbeddedProjectiveVariety) -- chow forms of a projective variety
*************************************************************************

  * Function: chowForm (Resultants),
  * Usage:
        chowForm X
  * Inputs:
      * X, an embedded projective variety,
  * Optional inputs (Macaulay2Doc),:
      * AffineChartGrass (Resultants), => ..., default
        value true,
      * AffineChartProj (Resultants), => ..., default
        value true,
      * Duality (Resultants), => ..., default value null,
      * Variable (Resultants),
        => ..., default value null,
  * Outputs:
      * an embedded projective variety, the
        subvariety of the appropriate Grassmannian,
        defined by chowForm (Resultants), ideal,
        X

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/65521)[2,1];                                                 |
|                                                                             |
|o1 : ProjectiveVariety, surface in PP^4                                      |
+-----------------------------------------------------------------------------+
|i2 : chowForm X                                                              |
|                                                                             |
|o2 = 5-dimensional subvariety of PP^9 cut out by                             |
|                                                                             |
|o2 : ProjectiveVariety, 5-dimensional subvariety                             |
|-----------------------------------------------------------------------------|
|6 hypersurfaces of degrees 2^5 3^1                                           |
|                                                                             |
|of PP^9 (subvariety of codimension 1 in GG(1,4) ⊂ PP^9)                      |
+-----------------------------------------------------------------------------+
|i3 : ambientVariety oo                                                       |
|                                                                             |
|o3 = GG(1,4) ⊂ PP^9                                                          |
|                                                                             |
|o3 : ProjectiveVariety, GG(1,4)                                              |
+-----------------------------------------------------------------------------+

See also
========

  * tangentialChowForm(EmbeddedProjectiveVariety,ZZ)
    -- higher Chow
    forms of a projective variety

Ways to use this method:
========================

  * chowForm(EmbeddedProjectiveVariety)
    -- chow forms of a projective
    variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3940:0.

clean(MultirationalMap) -- clean the internal information of a multi-rational map
*********************************************************************************

  * Function: clean (Macaulay2Doc),
  * Usage:
        clean Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a multi-rational map, which is identical to
        Phi, but new to the system

Description
===========

This is only useful for comparing computation times for various algorithms.

+------------------------------------------------------+
|i1 : Phi = 1_(PP_QQ^2);                               |
|                                                      |
|o1 : MultirationalMap (automorphism of PP^2)          |
+------------------------------------------------------+
|i2 : Psi = clean Phi;                                 |
|                                                      |
|o2 : MultirationalMap (rational map from PP^2 to PP^2)|
+------------------------------------------------------+
|i3 : Phi == Psi                                       |
|                                                      |
|o3 = true                                             |
+------------------------------------------------------+
|i4 : Phi === Psi                                      |
|                                                      |
|o4 = false                                            |
+------------------------------------------------------+

Ways to use this method:
========================

  * clean(MultirationalMap) -- clean the
    internal information of a multi-rational map
  * "clean(RationalMap)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3662:0.

codim(MultiprojectiveVariety) -- the codimension of the variety
***************************************************************

  * Function: codim (Macaulay2Doc),
  * Usage:
        codim X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * an integer (Macaulay2Doc), the codimension of $X$

Description
===========

+------------------------------------------------+
|i1 : X = PP_QQ^({2,1},{1,3});                   |
|                                                |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^3|
+------------------------------------------------+
|i2 : codim X                                    |
|                                                |
|o2 = 2                                          |
+------------------------------------------------+

See also
========

  * dim(MultiprojectiveVariety) -- the
    dimension of the variety

Ways to use this method:
========================

  * codim(MultiprojectiveVariety), --
    the codimension of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2547:0.

coefficientRing(MultiprojectiveVariety) -- the coefficient ring of the variety
******************************************************************************

  * Function: coefficientRing (Macaulay2Doc),
  * Usage:
        coefficientRing X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a ring (Macaulay2Doc), the coefficient ring of $X$

Description
===========

+------------------------------------------------+
|i1 : X = PP_QQ^({2,1},{1,3});                   |
|                                                |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^3|
+------------------------------------------------+
|i2 : coefficientRing X                          |
|                                                |
|o2 = QQ                                         |
|                                                |
|o2 : Ring                                       |
+------------------------------------------------+

See also
========

  * ring(MultiprojectiveVariety), --
    the coordinate ring of the variety
  * MultiprojectiveVariety ** Ring,
    -- change the coefficient ring of a multi-projective variety

Ways to use this method:
========================

  * coefficientRing(MultiprojectiveVariety)
    -- the coefficient ring of the
    variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2571:0.

coefficientRing(MultirationalMap) -- the coefficient ring of a multi-rational map
*********************************************************************************

  * Function: coefficientRing (Macaulay2Doc),
  * Usage:
        coefficientRing Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a ring (Macaulay2Doc), the coefficient ring of Phi

See also
========

  * coefficientRing(MultiprojectiveVariety)
    -- the coefficient ring of the
    variety
  * MultirationalMap ** Ring -- change the
    coefficient ring of a multi-rational map

Ways to use this method:
========================

  * coefficientRing(MultirationalMap)
    -- the coefficient ring of a
    multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3029:0.

coneOfLines -- cone of lines on a subvariety passing through a point
********************************************************************

  * Usage:
        coneOfLines(X,p)
        coneOfLines(p,X)
  * Inputs:
      * X, an embedded projective variety, a
        subvariety of $\mathbb{P}^n$
      * p, an embedded projective variety, a
        point on $X$
  * Outputs:
      * an embedded projective variety, the
        subscheme of $\mathbb{P}^n$ consisting of the union of all lines
        contained in $X$ and passing through $p$

Description
===========

In the example below we compute the cone of lines passing through the generic
point of a smooth del Pezzo fourfold in $\mathbb{P}^7$.

+-----------------------------------------------------------------------------+
|i1 : K := frac(QQ[a,b,c,d,e]); t = gens ring PP_K^4; phi = rationalMap       |
|                                                                             |
|o3 : MultirationalMap (rational map from PP^4 to PP^7)                       |
|-----------------------------------------------------------------------------|
|{minors(2,matrix{{t_0,t_1,t_2},{t_1,t_2,t_3}}) + t_4};                       |
+-----------------------------------------------------------------------------+
|i4 : X = image phi;                                                          |
|                                                                             |
|o4 : ProjectiveVariety, 4-dimensional subvariety of PP^7                     |
+-----------------------------------------------------------------------------+
|i5 : ideal X                                                                 |
|                                                                             |
|             2                                     2                         |
|o5 = ideal (y  - y y  + y y , y y  - y y  + y y , y  - y y  + y y , y y  -   |
|             5    4 6    2 7   4 5    3 6    1 7   4    3 5    0 7   2 4     |
|     ------------------------------------------------------------------------|
|     y y  + y y , y y  - y y  + y y )                                        |
|      1 5    0 6   2 3    1 4    0 5                                         |
|                                                                             |
|o5 : Ideal of frac(QQ[a..e])[y ..y ]                                         |
|                              0   7                                          |
+-----------------------------------------------------------------------------+
|i6 : p := projectiveVariety minors(2,(vars K)||(vars ring PP_K^4))           |
|                                                                             |
|o6 = point of coordinates [a/e, b/e, c/e, d/e, 1]                            |
|                                                                             |
|o6 : ProjectiveVariety, a point in PP^4                                      |
+-----------------------------------------------------------------------------+
|i7 : coneOfLines(X,phi p)                                                    |
|                                                                             |
|o7 = surface in PP^7 cut out by 6 hypersurfaces of degrees 1^3 2^3           |
|                                                                             |
|o7 : ProjectiveVariety, surface in PP^7                                      |
+-----------------------------------------------------------------------------+
|i8 : ideal oo                                                                |
|                                                                             |
|                                          2                                  |
|                 d      2c      b      - c  + b*d          d      c      b   |
|o8 = ideal (y  - -*y  + --*y  - -*y  + ----------*y , y  - -*y  + -*y  + -*y |
|             2   e  4    e  5   e  6        2      7   1   e  3   e  4   e  5|
|                                           e                                 |
|     ------------------------------------------------------------------------|
|                                                            2                |
|       a      - b*c + a*d          c      2b      a      - b  + a*c      2   |
|     - -*y  + -----------*y , y  - -*y  + --*y  - -*y  + ----------*y , y  - |
|       e  6         2      7   0   e  3    e  4   e  5        2      7   5   |
|                   e                                         e               |
|     ------------------------------------------------------------------------|
|                                         2                                   |
|            d        2c        b        c  - b*d  2                d         |
|     y y  + -*y y  - --*y y  + -*y y  + --------*y , y y  - y y  + -*y y  -  |
|      4 6   e  4 7    e  5 7   e  6 7       2     7   4 5    3 6   e  3 7    |
|                                           e                                 |
|     ------------------------------------------------------------------------|
|                                                                             |
|     c        b        a        b*c - a*d  2   2          c        2b        |
|     -*y y  - -*y y  + -*y y  + ---------*y , y  - y y  + -*y y  - --*y y  + |
|     e  4 7   e  5 7   e  6 7        2     7   4    3 5   e  3 7    e  4 7   |
|                                    e                                        |
|     ------------------------------------------------------------------------|
|               2                                                             |
|     a        b  - a*c  2                                                    |
|     -*y y  + --------*y )                                                   |
|     e  5 7       2     7                                                    |
|                 e                                                           |
|                                                                             |
|o8 : Ideal of frac(QQ[a..e])[y ..y ]                                         |
|                              0   7                                          |
+-----------------------------------------------------------------------------+

See also
========

  * tangentCone(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety) (missing
    documentation)

Ways to use coneOfLines:
========================

  * "coneOfLines(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)"

For the programmer
==================

The object coneOfLines, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3828:0.

conormalVariety(EmbeddedProjectiveVariety) -- the conormal variety of a projective variety
******************************************************************************************

  * Function: conormalVariety (Resultants),
  * Usage:
        conormalVariety X
  * Inputs:
      * X, an embedded projective variety,
  * Optional inputs (Macaulay2Doc),:
      * SingularLocus (Resultants), => ..., default value
        null,
      * Strategy (Resultants),
        => ..., default value "Saturate",
      * Variable (Resultants),
        => ..., default value null,
  * Outputs:
      * a multi-projective variety, the conormal
        variety of $X$

Description
===========

+---------------------------------------------------------------+
|i1 : X = PP_QQ^(2,2);                                          |
|                                                               |
|o1 : ProjectiveVariety, surface in PP^5                        |
+---------------------------------------------------------------+
|i2 : C = conormalVariety X;                                    |
|                                                               |
|o2 : ProjectiveVariety, 4-dimensional subvariety of PP^5 x PP^5|
+---------------------------------------------------------------+
|i3 : p2 = multirationalMap last projections C;                 |
|                                                               |
|o3 : MultirationalMap (rational map from C to PP^5)            |
+---------------------------------------------------------------+
|i4 : image p2 == dual X                                        |
|                                                               |
|o4 = true                                                      |
+---------------------------------------------------------------+

See also
========

  * dual(EmbeddedProjectiveVariety),
    -- the variety projectively dual to an embedded projective variety

Ways to use this method:
========================

  * conormalVariety(EmbeddedProjectiveVariety)
    -- the conormal variety of
    a projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3952:0.

cycleClass -- determine the expression of the class of a cycle as a linear combination of Schubert classes
**********************************************************************************************************

  * Usage:
        cycleClass C
  * Inputs:
      * C, an embedded projective variety, a
        subvariety, of
        GG,$(k, n)$ representing a cycle of pure codimension $m$ in
        the Grassmannian of $k$-dimensional subspaces of $\mathbb{P}^n$
  * Outputs:
      * a ring element (Macaulay2Doc), the expression of the
        class of the cycle as a linear combination of Schubert classes

Description
===========

For the general theory on Chow rings of Grassmannians, see e.g. the book 3264 &
All That - Intersection Theory in Algebraic Geometry (see
https://scholar.harvard.edu/files/joeharris/files/000-final-3264.pdf ), by D.
Eisenbud and J. Harris.

+-----------------------------------------------------------------------------+
|i1 : G = GG(ZZ/33331,2,5);                                                   |
|                                                                             |
|o1 : ProjectiveVariety, GG(2,5)                                              |
+-----------------------------------------------------------------------------+
|i2 : C = schubertCycle({3,2,1},G);                                           |
|                                                                             |
|o2 : ProjectiveVariety, threefold in PP^19 (subvariety of codimension 6 in G)|
+-----------------------------------------------------------------------------+
|i3 : cycleClass C                                                            |
|                                                                             |
|o3 = s                                                                       |
|      3,2,1                                                                  |
|                                                                             |
|o3 : ZZ[s     , s     , s     ]                                              |
|         3,3,0   3,2,1   2,2,2                                               |
+-----------------------------------------------------------------------------+
|i4 : C' = C + schubertCycle({2,2,2},G);                                      |
|                                                                             |
|o4 : ProjectiveVariety, threefold in PP^19 (subvariety of codimension 6 in G)|
+-----------------------------------------------------------------------------+
|i5 : cycleClass C'                                                           |
|                                                                             |
|o5 = s      + s                                                              |
|      3,2,1    2,2,2                                                         |
|                                                                             |
|o5 : ZZ[s     , s     , s     ]                                              |
|         3,3,0   3,2,1   2,2,2                                               |
+-----------------------------------------------------------------------------+

See also
========

  * schubertCycle -- take a random Schubert cycle

Ways to use cycleClass:
=======================

  * "cycleClass(EmbeddedProjectiveVariety)"

For the programmer
==================

The object cycleClass, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4022:0.

decompose(MultiprojectiveVariety) -- irreducible components of a variety
************************************************************************

  * Function: decompose (Macaulay2Doc),
  * Usage:
        decompose X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a list (Macaulay2Doc), the list of multi-projective varieties,
        defined by the minimal associated
        primes of the ideal, of X

Description
===========

This calculation is performed using the function decompose(Ideal) (missing
documentation).

+-----------------------------------------------------------------------------+
|i1 : C = PP_(ZZ/100003)^(1,4);                                               |
|                                                                             |
|o1 : ProjectiveVariety, curve in PP^4                                        |
+-----------------------------------------------------------------------------+
|i2 : L = linearSpan sum{point C,point C}, L' = linearSpan sum{point C,point  |
|-----------------------------------------------------------------------------|
|ambient C};                                                                  |
+-----------------------------------------------------------------------------+
|i3 : X = ⋃ {C,L,L'};                                                         |
|                                                                             |
|o3 : ProjectiveVariety, curve in PP^4                                        |
+-----------------------------------------------------------------------------+
|i4 : D = decompose X                                                         |
|                                                                             |
|o4 = {curve in PP^4 cut out by 3 hypersurfaces of degree 1, curve in PP^4 cut|
|     ------------------------------------------------------------------------|
|     out by 3 hypersurfaces of degree 1, curve in PP^4 cut out by 6          |
|     ------------------------------------------------------------------------|
|     hypersurfaces of degree 2}                                              |
|                                                                             |
|o4 : List                                                                    |
+-----------------------------------------------------------------------------+
|i5 : assert(X == ⋃ D)                                                        |
+-----------------------------------------------------------------------------+

See also
========

  * support(MultiprojectiveVariety),
    -- support of a multi-projective variety
  * topComponents(MultiprojectiveVariety) (missing documentation)
  * decompose(Ideal) (missing documentation)

Ways to use this method:
========================

  * decompose(MultiprojectiveVariety)
    -- irreducible components of a
    variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3850:0.

degree(MultiprojectiveVariety) -- the degree of the variety
***********************************************************

  * Function: degree (Macaulay2Doc),
  * Usage:
        degree X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * an integer (Macaulay2Doc), the degree of the image of $X$ via
        the Segre embedding of the ambient,
        of $X$

Description
===========

+------------------------------------------------+
|i1 : X = PP_QQ^({2,1},{1,3});                   |
|                                                |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^3|
+------------------------------------------------+
|i2 : degree X                                   |
|                                                |
|o2 = 9                                          |
+------------------------------------------------+

See also
========

  * multidegree(MultiprojectiveVariety)
    -- the multidegree of the variety
  * segreEmbedding(MultiprojectiveVariety) -- the Segre
    embedding of the variety

Ways to use this method:
========================

  * degree(MultiprojectiveVariety),
    -- the degree of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2579:0.

degree(MultirationalMap) -- degree of a multi-rational map
**********************************************************

  * Function: degree (Macaulay2Doc),
  * Usage:
        degree Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * an integer (Macaulay2Doc), the degree of Phi. So this value
        is 1 if and only if the map is birational onto its image.

Description
===========

This is just a shortcut for (last multidegree Phi)/(degree image Phi).

+-----------------------------------------------------------------------------+
|i1 : ZZ/300007[x_0..x_3], f = rationalMap {x_2^2-x_1*x_3, x_1*x_2-x_0*x_3,   |
|-----------------------------------------------------------------------------|
|x_1^2-x_0*x_2}, g = rationalMap {x_1^2-x_0*x_2, x_0*x_3, x_1*x_3, x_2*x_3,   |
|-----------------------------------------------------------------------------|
|x_3^2};                                                                      |
+-----------------------------------------------------------------------------+
|i2 : Phi = last graph rationalMap {f,g};                                     |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^3 x PP^2 x PP^4 to  |
|-----------------------------------------------------------------------------|
|PP^2 x PP^4)                                                                 |
+-----------------------------------------------------------------------------+
|i3 : time degree Phi                                                         |
| -- used 0.632974s (cpu); 0.500005s (thread); 0s (gc)                        |
|                                                                             |
|o3 = 1                                                                       |
+-----------------------------------------------------------------------------+

See also
========

  * degree(MultirationalMap,Option)
    -- degree of a multi-rational map
    using a probabilistic approach
  * degree(RationalMap) (Cremona) -- degree of a
    rational map
  * multidegree(MultirationalMap), --
    projective degrees of a multi-rational map
  * degreeMap(RationalMap) (Cremona), --
    degree of a rational map

Ways to use this method:
========================

  * degree(MultirationalMap) -- degree of
    a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3253:0.

degree(MultirationalMap,Option) -- degree of a multi-rational map using a probabilistic approach
************************************************************************************************

  * Function: degree (Macaulay2Doc),
  * Usage:
        degree(Phi,Strategy=>"random point")
        degree(Phi,Strategy=>"0-th projective degree")
  * Inputs:
      * Phi, a multi-rational map,
      * Strategy, an option (Macaulay2Doc),
  * Outputs:
      * an integer (Macaulay2Doc), the degree of Phi. So this value
        is 1 if and only if (with high probability) the map is birational onto
        its image.

Description
===========

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/33331[x_0..x_4];                                                 |
+-----------------------------------------------------------------------------+
|i2 : Phi = (last graph multirationalMap rationalMap transpose                |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^4 x                 |
|-----------------------------------------------------------------------------|
| jacobian(-x_2^3+2*x_1*x_2*x_3-x_0*x_3^2-x_1^2*x_4+x_0*x_2*x_4))||           |
|                                                                             |
|PP^4 to hypersurface in PP^4)                                                |
|-----------------------------------------------------------------------------|
|projectiveVariety ideal(random(2,R));                                        |
+-----------------------------------------------------------------------------+
|i3 : ? Phi                                                                   |
|                                                                             |
|o3 = multi-rational map consisting of one single rational map                |
|     source variety: threefold in PP^4 x PP^4 cut out by 13 hypersurfaces of |
|     target variety: hypersurface in PP^4 defined by a form of degree 2      |
|     ------------------------------------------------------------------------|
|     multi-degrees (0,2)^1 (1,1)^3 (2,1)^8 (4,0)^1                           |
+-----------------------------------------------------------------------------+
|i4 : time degree(Phi,Strategy=>"random point")                               |
| -- used 4.06235s (cpu); 3.2889s (thread); 0s (gc)                           |
|                                                                             |
|o4 = 2                                                                       |
+-----------------------------------------------------------------------------+
|i5 : time degree(Phi,Strategy=>"0-th projective degree")                     |
| -- used 0.400808s (cpu); 0.353648s (thread); 0s (gc)                        |
|                                                                             |
|o5 = 2                                                                       |
+-----------------------------------------------------------------------------+
|i6 : time degree Phi                                                         |
| -- used 0.453101s (cpu); 0.361452s (thread); 0s (gc)                        |
|                                                                             |
|o6 = 2                                                                       |
+-----------------------------------------------------------------------------+

Note, as in the example above, that calculation times may vary depending on the
strategy used.

See also
========

  * degree(MultirationalMap) -- degree of
    a multi-rational map
  * degreeMap(RationalMap) (Cremona), --
    degree of a rational map
  * multidegree(ZZ,MultirationalMap)
    -- i-th projective degree of a
    multi-rational map using a probabilistic approach
  * point(MultiprojectiveVariety), --
    pick a random rational point on a multi-projective variety
  * MultirationalMap ^*,
    -- inverse image via a multi-rational map

Ways to use this method:
========================

  * degree(MultirationalMap,Option)
    -- degree of a multi-rational map
    using a probabilistic approach
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3238:0.

degrees(MultiprojectiveVariety) -- degrees for the minimal generators
*********************************************************************

  * Function: degrees (Macaulay2Doc),
  * Usage:
        degrees X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a list (Macaulay2Doc), the list of multi-degrees for the
        minimal generators of the ideal,
        of X

Description
===========

+---------------------------------------------------------------------------+
|i1 : X = ⋃ for i to 10 list point PP_(ZZ/33331)^{2,3};                     |
|                                                                           |
|o1 : ProjectiveVariety, 0-dimensional subvariety of PP^2 x PP^3            |
+---------------------------------------------------------------------------+
|i2 : ? X                                                                   |
|                                                                           |
|o2 = 0-dimensional subvariety of PP^2 x PP^3 cut out by 39 hypersurfaces of|
|     multi-degrees (0,3)^9 (1,1)^1 (1,2)^15 (2,1)^10 (4,0)^4               |
+---------------------------------------------------------------------------+
|i3 : degrees X                                                             |
|                                                                           |
|o3 = {({0, 3}, 9), ({1, 1}, 1), ({1, 2}, 15), ({2, 1}, 10), ({4, 0}, 4)}   |
|                                                                           |
|o3 : List                                                                  |
+---------------------------------------------------------------------------+

Ways to use this method:
========================

  * degrees(MultiprojectiveVariety),
    -- degrees for the minimal generators
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3857:0.

degreeSequence -- the (multi)-degree sequence of a (multi)-rational map
***********************************************************************

  * Usage:
        degreeSequence Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a list (Macaulay2Doc), the list of the degree sequences for
        the rational maps returned by factor,
        Phi.

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = inverse first graph last graph rationalMap PP_(ZZ/33331)^(1,      |
|                                                                             |
|o1 : MultirationalMap (birational map from threefold in PP^3 x PP^2 to       |
|-----------------------------------------------------------------------------|
|3);                                                                          |
|                                                                             |
|threefold in PP^3 x PP^2 x PP^2)                                             |
+-----------------------------------------------------------------------------+
|i2 : degreeSequence Phi                                                      |
|                                                                             |
|o2 = {[(1, 0)], [(0, 1), (2, 0)], [(0, 1), (2, 0)]}                          |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+

References
==========

Cremona transformations and some related algebras (see
https://www.sciencedirect.com/science/article/pii/S0021869304001930 ), by A.
Simis.

See also
========

  * factor(MultirationalMap) -- the list
    of rational maps defining a multi-rational map

Ways to use degreeSequence:
===========================

  * "degreeSequence(MultirationalMap)"
  * "degreeSequence(RationalMap)"

For the programmer
==================

The object degreeSequence, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3604:0.

describe(MultiprojectiveVariety) -- describe a multi-projective variety
***********************************************************************

  * Function: describe (Macaulay2Doc),
  * Usage:
        describe X
        ? X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a description of X

Description
===========

? X is a lite version of describe X.

+---------------------------------------------------------------------------+
|i1 : X = source graph rationalMap PP_(ZZ/65521)^(1,3);                     |
|                                                                           |
|o1 : ProjectiveVariety, threefold in PP^3 x PP^2                           |
+---------------------------------------------------------------------------+
|i2 : ? X                                                                   |
|                                                                           |
|o2 = threefold in PP^3 x PP^2 cut out by 2 hypersurfaces of multi-degree   |
|     (1,1)                                                                 |
+---------------------------------------------------------------------------+
|i3 : describe X                                                            |
|                                                                           |
|o3 = ambient:.............. PP^3 x PP^2                                    |
|     dim:.................. 3                                              |
|     codim:................ 2                                              |
|     degree:............... 10                                             |
|     multidegree:.......... T_0^2+2*T_0*T_1+T_1^2                          |
|     generators:........... (1,1)^2                                        |
|     purity:............... true                                           |
|     dim sing. l.:......... -1                                             |
|     Segre embedding:...... map to PP^9 ⊂ PP^11                            |
+---------------------------------------------------------------------------+
|i4 : ? image segre X                                                       |
|                                                                           |
|o4 = 3-dimensional variety of degree 10 in PP^9 cut out by 18 hypersurfaces|
|     of degree 2                                                           |
+---------------------------------------------------------------------------+

See also
========

  * describe(MultirationalMap), --
    describe a multi-rational map

Ways to use this method:
========================

  * describe(MultiprojectiveVariety)
    -- describe a multi-projective
    variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3636:0.

describe(MultirationalMap) -- describe a multi-rational map
***********************************************************

  * Function: describe (Macaulay2Doc),
  * Usage:
        describe Phi
        ? Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a description of Phi

Description
===========

? Phi is a lite version of describe Phi. The latter has a different behavior
than describe(RationalMap) (Cremona), since it
performs computations.

+-----------------------------------------------------------------------------+
|i1 : Phi = multirationalMap graph rationalMap PP_(ZZ/65521)^(1,4);           |
|                                                                             |
|o1 : MultirationalMap (rational map from 4-dimensional subvariety of PP^4 x  |
|-----------------------------------------------------------------------------|
|PP^5 to PP^4 x PP^5)                                                         |
+-----------------------------------------------------------------------------+
|i2 : time ? Phi                                                              |
| -- used 0.000610229s (cpu); 0.00020397s (thread); 0s (gc)                   |
|                                                                             |
|o2 = multi-rational map consisting of 2 rational maps                        |
|     source variety: 4-dimensional subvariety of PP^4 x PP^5 cut out by 9    |
|     target variety: PP^4 x PP^5                                             |
|     ------------------------------------------------------------------------|
|     hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                          |
+-----------------------------------------------------------------------------+
|i3 : image Phi;                                                              |
|                                                                             |
|o3 : ProjectiveVariety, 4-dimensional subvariety of PP^4 x PP^5              |
+-----------------------------------------------------------------------------+
|i4 : time ? Phi                                                              |
| -- used 0.000999996s (cpu); 0.00033238s (thread); 0s (gc)                   |
|                                                                             |
|o4 = multi-rational map consisting of 2 rational maps                        |
|     source variety: 4-dimensional subvariety of PP^4 x PP^5 cut             |
|     target variety: PP^4 x PP^5                                             |
|     dominance: false                                                        |
|     image: 4-dimensional subvariety of PP^4 x PP^5 cut out by 9             |
|-----------------------------------------------------------------------------|
|out by 9 hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                      |
|                                                                             |
|                                                                             |
|hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                               |
+-----------------------------------------------------------------------------+
|i5 : time describe Phi                                                       |
| -- used 1.61417s (cpu); 1.33847s (thread); 0s (gc)                          |
|                                                                             |
|o5 = multi-rational map consisting of 2 rational maps                        |
|     source variety: 4-dimensional subvariety of PP^4 x PP^5 cut             |
|     target variety: PP^4 x PP^5                                             |
|     base locus: empty subscheme of PP^4 x PP^5                              |
|     dominance: false                                                        |
|     image: 4-dimensional subvariety of PP^4 x PP^5 cut out by 9             |
|     multidegree: {51, 51, 51, 51, 51}                                       |
|     degree: 1                                                               |
|     degree sequence (map 1/2): [(1,0), (0,2)]                               |
|     degree sequence (map 2/2): [(0,1), (2,0)]                               |
|     coefficient ring: ZZ/65521                                              |
|-----------------------------------------------------------------------------|
|out by 9 hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                      |
|                                                                             |
|                                                                             |
|                                                                             |
|hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                               |
+-----------------------------------------------------------------------------+
|i6 : time ? Phi                                                              |
| -- used 0.000378747s (cpu); 0.000517185s (thread); 0s (gc)                  |
|                                                                             |
|o6 = multi-rational map consisting of 2 rational maps                        |
|     source variety: 4-dimensional subvariety of PP^4 x PP^5 cut             |
|     target variety: PP^4 x PP^5                                             |
|     base locus: empty subscheme of PP^4 x PP^5                              |
|     dominance: false                                                        |
|     image: 4-dimensional subvariety of PP^4 x PP^5 cut out by 9             |
|     multidegree: {51, 51, 51, 51, 51}                                       |
|     degree: 1                                                               |
|-----------------------------------------------------------------------------|
|out by 9 hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                      |
|                                                                             |
|                                                                             |
|                                                                             |
|hypersurfaces of multi-degrees (0,2)^1 (1,1)^8                               |
+-----------------------------------------------------------------------------+

See also
========

  * describe(MultiprojectiveVariety)
    -- describe a multi-projective
    variety
  * show(MultirationalMap) -- display a
    multi-rational map

Ways to use this method:
========================

  * describe(MultirationalMap), --
    describe a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3621:0.

dim(MultiprojectiveVariety) -- the dimension of the variety
***********************************************************

  * Function: dim (Macaulay2Doc),
  * Usage:
        dim X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * an integer (Macaulay2Doc), the dimension of $X$

Description
===========

+------------------------------------------------+
|i1 : X = PP_QQ^({2,1},{1,3});                   |
|                                                |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^3|
+------------------------------------------------+
|i2 : dim X                                      |
|                                                |
|o2 = 3                                          |
+------------------------------------------------+

See also
========

  * codim(MultiprojectiveVariety), --
    the codimension of the variety

Ways to use this method:
========================

  * dim(MultiprojectiveVariety) -- the
    dimension of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2539:0.

dual(EmbeddedProjectiveVariety) -- the variety projectively dual to an embedded projective variety
**************************************************************************************************

  * Function: dual (Macaulay2Doc),
  * Usage:
        dual X
  * Inputs:
      * X, an embedded projective variety,
  * Outputs:
      * an embedded projective variety, which
        is projectively dual to $X$

Description
===========

+--------------------------------------------+
|i1 : X = PP_QQ^(2,2);                       |
|                                            |
|o1 : ProjectiveVariety, surface in PP^5     |
+--------------------------------------------+
|i2 : X' = dual X;                           |
|                                            |
|o2 : ProjectiveVariety, hypersurface in PP^5|
+--------------------------------------------+
|i3 : describe X'                            |
|                                            |
|o3 = ambient:.............. PP^5            |
|     dim:.................. 4               |
|     codim:................ 1               |
|     degree:............... 3               |
|     generators:........... 3^1             |
|     purity:............... true            |
|     dim sing. l.:......... 2               |
|     gens sing. l.:........ 2^6             |
+--------------------------------------------+
|i4 : assert(dual X' == X)                   |
+--------------------------------------------+

See also
========

  * conormalVariety(EmbeddedProjectiveVariety)
    -- the conormal variety of
    a projective variety
  * dualVariety (Resultants) -- projective dual variety
  * tangentSpace -- tangent space to a projective variety
    at a point

Ways to use this method:
========================

  * dual(EmbeddedProjectiveVariety),
    -- the variety projectively dual to an embedded projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3762:0.

EmbeddedProjectiveVariety -- the class of all embedded projective varieties
***************************************************************************

Description
===========

The embedded projective varieties are exactly the multi-projective varieties,
embedded in a single projective space; so
that $X$ is an embedded projective variety if and only if # See shape,
X == 1.

+---------------------------------------+
|i1 : X = PP_QQ^(2,2);                  |
|                                       |
|o1 : ProjectiveVariety, surface in PP^5|
+---------------------------------------+
|i2 : class X                           |
|                                       |
|o2 = EmbeddedProjectiveVariety         |
|                                       |
|o2 : Type                              |
+---------------------------------------+
|i3 : Y = X ** X;                       |
|                                       |
|o3 : ProjectiveVariety, X x X          |
+---------------------------------------+
|i4 : class Y                           |
|                                       |
|o4 = MultiprojectiveVariety            |
|                                       |
|o4 : Type                              |
+---------------------------------------+

See also
========

  * MultiprojectiveVariety -- the class of all
    multi-projective varieties
  * WeightedProjectiveVariety -- the class of
    all weighted projective varieties
  * ambient(MultiprojectiveVariety),
    -- the ambient multi-projective space of the variety
  * shape(MultiprojectiveVariety), --
    shape of the ambient multi-projective space of a multi-projective variety

Types of embedded projective variety:
=====================================

  * GrassmannianVariety -- the class of all
    Grassmannians of linear subspaces of projective spaces

Functions and methods returning an embedded projective variety:
===============================================================

  * coneOfLines -- cone of lines on a subvariety passing
    through a point

Methods that use an embedded projective variety:
================================================

  * chowForm(EmbeddedProjectiveVariety)
    -- chow forms of a projective
    variety
  * "coneOfLines(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)" -- see
    coneOfLines, -- cone of lines on a subvariety passing
    through a point
  * conormalVariety(EmbeddedProjectiveVariety)
    -- the conormal variety of
    a projective variety
  * "cycleClass(EmbeddedProjectiveVariety)" -- see cycleClass,
    -- determine the expression of the class of a cycle as a linear
    combination of Schubert classes
  * dual(EmbeddedProjectiveVariety),
    -- the variety projectively dual to an embedded projective variety
  * EmbeddedProjectiveVariety ! -- print a
    more detailed description of an embedded projective variety
  * "sumUp(EmbeddedProjectiveVariety)" -- see EmbeddedProjectiveVariety !,
    -- print a more detailed description of an
    embedded projective variety
  * EmbeddedProjectiveVariety ++ EmbeddedProjectiveVariety
    -- join of
    projective varieties
  * "EmbeddedProjectiveVariety <=== EmbeddedProjectiveVariety" -- see
    EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety,
    -- try to find an
    isomorphism between two projective varieties
  * EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety
    -- try to find an
    isomorphism between two projective varieties
  * "Fano(EmbeddedProjectiveVariety)" -- see
    Fano(ZZ,EmbeddedProjectiveVariety),
    -- Fano scheme of a projective
    variety
  * Fano(ZZ,EmbeddedProjectiveVariety)
    -- Fano scheme of a projective
    variety
  * "GG(EmbeddedProjectiveVariety)" -- see GG, -- the Grassmannian of
    k-dimensional linear subspaces of an n-dimensional projective space
  * "GG(ZZ,EmbeddedProjectiveVariety)" -- see GG, -- the Grassmannian
    of k-dimensional linear subspaces of an n-dimensional projective space
  * hilbertPolynomial(EmbeddedProjectiveVariety)
    -- the Hilbert polynomial
    of the variety
  * "linearlyNormalEmbedding(EmbeddedProjectiveVariety)" -- see
    linearlyNormalEmbedding, -- get the linearly
    normal embedding
  * "linearSpan(EmbeddedProjectiveVariety)" -- see linearSpan,
    -- the linear span of an embedded projective variety
  * "RationalMap ^** EmbeddedProjectiveVariety" -- see MultirationalMap ^** MultiprojectiveVariety,
    -- inverse image via a multi-rational map
  * "rationalMap(EmbeddedProjectiveVariety,Tally,ZZ)" -- see
    rationalMap(MultiprojectiveVariety,Tally),
    -- rational map defined by
    an effective divisor
  * "sectionalGenus(EmbeddedProjectiveVariety)" -- see sectionalGenus,
    -- the sectional genus of an embedded projective variety
  * tangentialChowForm(EmbeddedProjectiveVariety,ZZ)
    -- higher Chow
    forms of a projective variety
  * "tangentSpace(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)" -- see
    tangentSpace, -- tangent space to a projective variety
    at a point
  * variety(EmbeddedProjectiveVariety)
    -- convert an embedded projective
    variety into a built-in projective variety

For the programmer
==================

The object EmbeddedProjectiveVariety, is a
type (Macaulay2Doc), with ancestor classes
MultiprojectiveVariety, < MutableHashTable (Macaulay2Doc)
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2461:0.

EmbeddedProjectiveVariety ! -- print a more detailed description of an embedded projective variety
**************************************************************************************************

  * Operator: ! (Macaulay2Doc),
  * Usage:
        X!
        sumUp X
  * Inputs:
      * X, an embedded projective variety,

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/333331; K[t_0..t_5];                                             |
+-----------------------------------------------------------------------------+
|i3 : X = projectiveVariety ideal(t_4^2-t_3*t_5,t_2*t_4-t_1*t_5,t_2*t_3-t_1*t_|
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^5                                      |
|-----------------------------------------------------------------------------|
|4,t_2^2-t_0*t_5,t_1*t_2-t_0*t_4,t_1^2-t_0*t_3);                              |
+-----------------------------------------------------------------------------+
|i4 : X!                                                                      |
|dim:.................. 2                                                     |
|codim:................ 3                                                     |
|degree:............... 4                                                     |
|sectional genus:...... 0                                                     |
|generators:........... 2^6                                                   |
|degree associated map: 1                                                     |
|linear normality:..... true                                                  |
|connected components:. 1                                                     |
|purity:............... true                                                  |
|dim sing. l.:......... -1                                                    |
|*** This is the Veronese surface in P^5 ***                                  |
|*** This is the base locus of a special Cremona transformation of PP^5 ***   |
+-----------------------------------------------------------------------------+
|i5 : K[x_0..x_7];                                                            |
+-----------------------------------------------------------------------------+
|i6 : X = projectiveVariety ideal(x_5*x_6-x_4*x_7,x_4*x_6-x_3*x_7,x_2*x_6-x_1*|
|                                                                             |
|o6 : ProjectiveVariety, threefold in PP^7                                    |
|-----------------------------------------------------------------------------|
|x_7,x_1*x_6-x_0*x_7,x_4^2-x_3*x_5,x_2*x_4-x_1*x_5,x_1*x_4-x_0*x_5,x_2*x_3-x_0|
|-----------------------------------------------------------------------------|
|*x_5,x_1*x_3-x_0*x_4,x_1^2-x_0*x_2);                                         |
+-----------------------------------------------------------------------------+
|i7 : X!                                                                      |
|dim:.................. 3                                                     |
|codim:................ 4                                                     |
|degree:............... 5                                                     |
|sectional genus:...... 0                                                     |
|generators:........... 2^10                                                  |
|degree associated map: 0                                                     |
|linear normality:..... true                                                  |
|connected components:. 1                                                     |
|purity:............... true                                                  |
|dim sing. l.:......... -1                                                    |
|*** This is a rational normal scroll of dimension 3 and degree 5 in PP^7 *** |
+-----------------------------------------------------------------------------+
|i8 : (random({2},X))!                                                        |
|dim:.................. 6                                                     |
|codim:................ 1                                                     |
|degree:............... 2                                                     |
|sectional genus:...... 0                                                     |
|generators:........... 2^1                                                   |
|linear normality:..... true                                                  |
|connected components:. 1                                                     |
|purity:............... true                                                  |
|dim sing. l.:......... -1                                                    |
|*** This is a smooth hypersurface of degree 2 in PP^7 ***                    |
+-----------------------------------------------------------------------------+
|i9 : (random({{2},{2}},X))!                                                  |
|dim:.................. 5                                                     |
|codim:................ 2                                                     |
|degree:............... 4                                                     |
|sectional genus:...... 1                                                     |
|generators:........... 2^2                                                   |
|linear normality:..... true                                                  |
|connected components:. 1                                                     |
|purity:............... true                                                  |
|dim sing. l.:......... 0                                                     |
|degree sing. l.:...... 4                                                     |
|gens. sing. l.:....... 1^4 2^6                                               |
|*** This is a factorial complete intersection of type (2,2) in PP^7 ***      |
+-----------------------------------------------------------------------------+

See also
========

  * describe(MultiprojectiveVariety)
    -- describe a multi-projective
    variety
  * ? MultiprojectiveVariety, --
    describe a multi-projective variety

Ways to use this method:
========================

  * EmbeddedProjectiveVariety ! -- print a
    more detailed description of an embedded projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3653:0.

EmbeddedProjectiveVariety ++ EmbeddedProjectiveVariety -- join of projective varieties
**************************************************************************************

  * Operator: ++ (Macaulay2Doc),
  * Usage:
        X ++ Y
  * Inputs:
      * X, an embedded projective variety,
      * Y, an embedded projective variety, in
        the same ambient projective space of $X$
  * Outputs:
      * an embedded projective variety, the
        join of $X$ and $Y$, that is, the closure of the union of lines of the
        form $\langle p,q\rangle$, with $p\in X$, $q\in Y$, and $p\neq q$

Description
===========

+---------------------------------------------------------------------+
|i1 : K = ZZ/333331;                                                  |
+---------------------------------------------------------------------+
|i2 : C = PP_K^(1,5); -- rational normal quintic curve                |
|                                                                     |
|o2 : ProjectiveVariety, curve in PP^5                                |
+---------------------------------------------------------------------+
|i3 : L = linearSpan {point ambient C,point ambient C}; -- random line|
|                                                                     |
|o3 : ProjectiveVariety, curve in PP^5                                |
+---------------------------------------------------------------------+
|i4 : C ++ L                                                          |
|                                                                     |
|o4 = threefold in PP^5 cut out by 5 hypersurfaces of degrees 3^4 4^1 |
|                                                                     |
|o4 : ProjectiveVariety, threefold in PP^5                            |
+---------------------------------------------------------------------+
|i5 : C ++ C                                                          |
|                                                                     |
|o5 = threefold in PP^5 cut out by 4 hypersurfaces of degree 3        |
|                                                                     |
|o5 : ProjectiveVariety, threefold in PP^5                            |
+---------------------------------------------------------------------+
|i6 : (point C) ++ (point C) ++ (point C)                             |
|                                                                     |
|o6 = surface in PP^5 cut out by 3 hypersurfaces of degree 1          |
|                                                                     |
|o6 : ProjectiveVariety, surface in PP^5                              |
+---------------------------------------------------------------------+

Ways to use this method:
========================

  * EmbeddedProjectiveVariety ++ EmbeddedProjectiveVariety
    -- join of
    projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3917:0.

EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety -- try to find an isomorphism between two projective varieties
***********************************************************************************************************************

  * Operator: ===> (Macaulay2Doc),
  * Usage:
        X ===> Y
        Y <=== X
  * Inputs:
      * X, an embedded projective variety,
      * Y, an embedded projective variety,
        projectively equivalent to X
  * Outputs:
      * a multi-rational map, an isomorphism of the
        ambient spaces that sends X to Y (or an error if it fails)

Description
===========

This recursively tries to find an isomorphism between the base loci of the
parameterizations.

In the following example, $X$ and $Y$ are two random rational normal curves of
degree 6 in $\mathbb{P}^6\subset\mathbb{P}^8$, and $V$ (resp., $W$) is a random
complete intersection of type (2,1) containing $X$ (resp., $Y$).

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/10000019;                                                        |
+-----------------------------------------------------------------------------+
|i2 : (M,N) = (apply(9,i -> random(1,ring PP_K^8)), apply(9,i -> random(1,ring|
|-----------------------------------------------------------------------------|
|PP_K^8)));                                                                   |
+-----------------------------------------------------------------------------+
|i3 : X = projectiveVariety(minors(2,matrix{take(M,6),take(M,{1,6})}) + ideal |
|                                                                             |
|o3 : ProjectiveVariety, curve in PP^8                                        |
|-----------------------------------------------------------------------------|
|take(M,-2));                                                                 |
+-----------------------------------------------------------------------------+
|i4 : Y = projectiveVariety(minors(2,matrix{take(N,6),take(N,{1,6})}) + ideal |
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^8                                        |
|-----------------------------------------------------------------------------|
|take(N,-2));                                                                 |
+-----------------------------------------------------------------------------+
|i5 : ? X                                                                     |
|                                                                             |
|o5 = curve in PP^8 cut out by 17 hypersurfaces of degrees 1^2 2^15           |
+-----------------------------------------------------------------------------+
|i6 : time f = X ===> Y;                                                      |
| -- used 2.95953s (cpu); 2.17377s (thread); 0s (gc)                          |
|                                                                             |
|o6 : MultirationalMap (automorphism of PP^8)                                 |
+-----------------------------------------------------------------------------+
|i7 : f X                                                                     |
|                                                                             |
|o7 = Y                                                                       |
|                                                                             |
|o7 : ProjectiveVariety, curve in PP^8                                        |
+-----------------------------------------------------------------------------+
|i8 : f^* Y                                                                   |
|                                                                             |
|o8 = X                                                                       |
|                                                                             |
|o8 : ProjectiveVariety, curve in PP^8                                        |
+-----------------------------------------------------------------------------+
|i9 : V = random({{2},{1}},X);                                                |
|                                                                             |
|o9 : ProjectiveVariety, 6-dimensional subvariety of PP^8                     |
+-----------------------------------------------------------------------------+
|i10 : W = random({{2},{1}},Y);                                               |
|                                                                             |
|o10 : ProjectiveVariety, 6-dimensional subvariety of PP^8                    |
+-----------------------------------------------------------------------------+
|i11 : time g = V ===> W;                                                     |
| -- used 3.27696s (cpu); 2.40517s (thread); 0s (gc)                          |
|                                                                             |
|o11 : MultirationalMap (automorphism of PP^8)                                |
+-----------------------------------------------------------------------------+
|i12 : g||W                                                                   |
|                                                                             |
|o12 = multi-rational map consisting of one single rational map               |
|      source variety: 6-dimensional subvariety of PP^8 cut out by 2          |
|      target variety: 6-dimensional subvariety of PP^8 cut out by 2          |
|                                                                             |
|o12 : MultirationalMap (rational map from V to W)                            |
|-----------------------------------------------------------------------------|
|hypersurfaces of degrees 1^1 2^1                                             |
|hypersurfaces of degrees 1^1 2^1                                             |
+-----------------------------------------------------------------------------+

In the next example, $Z\subset\mathbb{P}^9$ is a random (smooth) del Pezzo
sixfold, hence projectively equivalent to $\mathbb{G}(1,4)$.

+-----------------------------------------------------------------------------+
|i13 : A = matrix pack(5,for i to 24 list random(1,ring PP_K^9)); A = A - tran|
|                                                                             |
|                        5                5                                   |
|o13 : Matrix (K[x ..x ])  <-- (K[x ..x ])                                    |
|                 0   9            0   9                                      |
|                                                                             |
|o14 = | 0                                                                    |
|      | 4699078x_0-1746876x_1-380897x_2+1422530x_3+4811841x_4-3896862x_5-3722|
|      | 27066x_0+3423234x_1+230399x_2+2782180x_3+309050x_4-1114049x_5+2286765|
|      | -3001071x_0+3626292x_1+3927398x_2-4508287x_3-1613351x_4-1776043x_5+12|
|      | -1128116x_0+2410838x_1+4011204x_2-1473177x_3+2441342x_4-4718496x_5+42|
|      -----------------------------------------------------------------------|
|                                                                             |
|      785x_6-3815668x_7-3313914x_8-4758195x_9                                |
|      x_6-2212565x_7-74241x_8-860866x_9                                      |
|      19497x_6-2150772x_7+2179139x_8-692400x_9                               |
|      95767x_6+1349994x_7-3469596x_8-4256627x_9                              |
|      -----------------------------------------------------------------------|
|      -4699078x_0+1746876x_1+380897x_2-1422530x_3-4811841x_4+3896862x_       |
|      0                                                                      |
|      -4775990x_0-1733951x_1+2685339x_2-101690x_3-1299785x_4-3383627x_       |
|      -301724x_0+3056350x_1-4261084x_2+1869785x_3-1725095x_4+4002080x_       |
|      2255774x_0+152589x_1-2805551x_2-411254x_3+2029789x_4-2013016x_5-       |
|      -----------------------------------------------------------------------|
|      5+3722785x_6+3815668x_7+3313914x_8+4758195x_9                          |
|                                                                             |
|      5+1688069x_6+4817905x_7-2628713x_8-4634439x_9                          |
|      5+3630364x_6+522185x_7+3993769x_8+117133x_9                            |
|      421034x_6+4901792x_7-4988209x_8+494257x_9                              |
|      -----------------------------------------------------------------------|
|      -27066x_0-3423234x_1-230399x_2-2782180x_3-309050x_4+1114049x_5-        |
|      4775990x_0+1733951x_1-2685339x_2+101690x_3+1299785x_4+3383627x_        |
|      0                                                                      |
|      4824428x_0-260873x_1-3590724x_2-438108x_3+4564938x_4-837765x_5-        |
|      1232609x_0+3795926x_1+3890630x_2-3831039x_3-1495247x_4-1456108x        |
|      -----------------------------------------------------------------------|
|      2286765x_6+2212565x_7+74241x_8+860866x_9                               |
|      5-1688069x_6-4817905x_7+2628713x_8+4634439x_9                          |
|                                                                             |
|      4403511x_6+1089387x_7+1483485x_8-4660338x_9                            |
|      _5+976817x_6-2292406x_7+4444574x_8-4380563x_9                          |
|      -----------------------------------------------------------------------|
|      3001071x_0-3626292x_1-3927398x_2+4508287x_3+1613351x_4+1776043x_       |
|      301724x_0-3056350x_1+4261084x_2-1869785x_3+1725095x_4-4002080x_5       |
|      -4824428x_0+260873x_1+3590724x_2+438108x_3-4564938x_4+837765x_5+       |
|      0                                                                      |
|      1260139x_0-2367455x_1+2074452x_2-1540641x_3-2096244x_4-604376x_5       |
|      -----------------------------------------------------------------------|
|      5-1219497x_6+2150772x_7-2179139x_8+692400x_9                           |
|      -3630364x_6-522185x_7-3993769x_8-117133x_9                             |
|      4403511x_6-1089387x_7-1483485x_8+4660338x_9                            |
|                                                                             |
|      -115065x_6-2900230x_7-1708776x_8+3939426x_9                            |
|      -----------------------------------------------------------------------|
|      1128116x_0-2410838x_1-4011204x_2+1473177x_3-2441342x_4+4718496x_5      |
|      -2255774x_0-152589x_1+2805551x_2+411254x_3-2029789x_4+2013016x_5+      |
|      -1232609x_0-3795926x_1-3890630x_2+3831039x_3+1495247x_4+1456108x_      |
|      -1260139x_0+2367455x_1-2074452x_2+1540641x_3+2096244x_4+604376x_5      |
|      0                                                                      |
|      -----------------------------------------------------------------------|
|      -4295767x_6-1349994x_7+3469596x_8+4256627x_9 |                         |
|      421034x_6-4901792x_7+4988209x_8-494257x_9    |                         |
|      5-976817x_6+2292406x_7-4444574x_8+4380563x_9 |                         |
|      +115065x_6+2900230x_7+1708776x_8-3939426x_9  |                         |
|                                                   |                         |
|                                                                             |
|                        5                5                                   |
|o14 : Matrix (K[x ..x ])  <-- (K[x ..x ])                                    |
|                 0   9            0   9                                      |
|-----------------------------------------------------------------------------|
|spose A                                                                      |
+-----------------------------------------------------------------------------+
|i15 : Z = projectiveVariety pfaffians(4,A);                                  |
|                                                                             |
|o15 : ProjectiveVariety, 6-dimensional subvariety of PP^9                    |
+-----------------------------------------------------------------------------+
|i16 : ? Z                                                                    |
|                                                                             |
|o16 = 6-dimensional subvariety of PP^9 cut out by 5 hypersurfaces of degree 2|
+-----------------------------------------------------------------------------+
|i17 : time h = Z ===> GG_K(1,4)                                              |
| -- used 8.19166s (cpu); 6.33281s (thread); 0s (gc)                          |
|                                                                             |
|o17 = h                                                                      |
|                                                                             |
|o17 : MultirationalMap (isomorphism from PP^9 to PP^9)                       |
+-----------------------------------------------------------------------------+
|i18 : h || GG_K(1,4)                                                         |
|                                                                             |
|o18 = multi-rational map consisting of one single rational map               |
|      source variety: 6-dimensional subvariety of PP^9 cut out by 5          |
|      target variety: GG(1,4) ⊂ PP^9                                         |
|                                                                             |
|o18 : MultirationalMap (rational map from Z to GG(1,4))                      |
|-----------------------------------------------------------------------------|
|hypersurfaces of degree 2                                                    |
+-----------------------------------------------------------------------------+
|i19 : show oo                                                                |
|                                                                             |
|o19 = -- multi-rational map --                                               |
|      source: subvariety of Proj(K[x , x , x , x , x , x , x , x , x , x ]) d|
|                                    0   1   2   3   4   5   6   7   8   9    |
|              {                                                              |
|                              2                                              |
|               x x  + 1177025x  - 1095541x x  - 2449657x x  - 3243503x x  - 1|
|                1 2           2           0 3           1 3           2 3    |
|                                                                             |
|                              2                                              |
|               x x  + 4570442x  - 95455x x  + 4540866x x  - 3666920x x  - 223|
|                0 2           2         0 3           1 3           2 3      |
|                                                                             |
|                2           2                                                |
|               x  - 4983412x  + 4394308x x  + 2815203x x  - 331579x x  + 2764|
|                1           2           0 3           1 3          2 3       |
|                                                                             |
|                              2                                              |
|               x x  + 4945366x  + 122400x x  + 4613283x x  + 3607605x x  - 37|
|                0 1           2          0 3           1 3           2 3     |
|                                                                             |
|                2           2                                                |
|               x  - 2084490x  + 3965062x x  + 3920717x x  - 748684x x  - 3601|
|                0           2           0 3           1 3          2 3       |
|              }                                                              |
|      target: subvariety of Proj(K[x   , x   , x   , x   , x   , x   , x   , |
|                                    0,1   0,2   1,2   0,3   1,3   2,3   0,4  |
|              {                                                              |
|               x   x    - x   x    + x   x   ,                               |
|                2,3 1,4    1,3 2,4    1,2 3,4                                |
|                                                                             |
|               x   x    - x   x    + x   x   ,                               |
|                2,3 0,4    0,3 2,4    0,2 3,4                                |
|                                                                             |
|               x   x    - x   x    + x   x   ,                               |
|                1,3 0,4    0,3 1,4    0,1 3,4                                |
|                                                                             |
|               x   x    - x   x    + x   x   ,                               |
|                1,2 0,4    0,2 1,4    0,1 2,4                                |
|                                                                             |
|               x   x    - x   x    + x   x                                   |
|                1,2 0,3    0,2 1,3    0,1 2,3                                |
|              }                                                              |
|      -- rational map 1/1 --                                                 |
|      map 1/1, one of its representatives:                                   |
|      {                                                                      |
|       - 4955130x  - 2830792x  + 1376806x  + 4129359x  + 4511300x  - 4710574x|
|                 0           1           2           3           4           |
|                                                                             |
|       - 2350531x  + 647071x  - 2010797x  - 1679088x  - 1605354x  + 245004x  |
|                 0          1           2           3           4          5 |
|                                                                             |
|       - 2105465x  + 2212889x  + 2560271x  + 546146x  + 1007583x  - 3570671x |
|                 0           1           2          3           4           5|
|                                                                             |
|       613134x  + 3423965x  - 2992038x  - 1116142x  - 1947368x  - 1631649x  +|
|              0           1           2           3           4           5  |
|                                                                             |
|       - 853563x  + 2955972x  + 1107025x  + 4901955x  - 4405095x  + 768881x  |
|                0           1           2           3           4          5 |
|                                                                             |
|       - 1429409x  + 4258621x  - 134232x  - 2023131x  - 4008192x  + 2021415x |
|                 0           1          2           3           4           5|
|                                                                             |
|       668204x  + 314424x  - 3430507x  - 2810996x  + 3883757x  + 1562229x  - |
|              0          1           2           3           4           5   |
|                                                                             |
|       409606x  - 1564530x  + 4411376x  - 3966210x  + 2237618x  + 474772x  - |
|              0           1           2           3           4          5   |
|                                                                             |
|       - 4005338x  + 4473865x  + 514745x  + 2120182x  + 2345402x  - 417906x  |
|                 0           1          2           3           4          5 |
|                                                                             |
|       - 4867678x  + 3796787x  - 1874516x  + 4528024x  - 1592517x  + 4922242x|
|                 0           1           2           3           4           |
|      }                                                                      |
|-----------------------------------------------------------------------------|
|efined by                                                                    |
|                                                                             |
|                                                                             |
|       2                                                                     |
|061060x  - 2783252x x  - 3274449x x  + 3386662x x  + 4880814x x  + 3733032x  |
|       3           0 4           1 4           2 4           3 4             |
|                                                                             |
|     2                                                                 2     |
|6818x  - 2988265x x  + 2811128x x  + 1843189x x  + 2468602x x  + 90348x  -   |
|     3           0 4           1 4           2 4           3 4         4     |
|                                                                             |
|    2                                                                  2     |
|751x  - 2805962x x  + 668466x x  - 2554152x x  + 4279022x x  - 2965749x  -   |
|    3           0 4          1 4           2 4           3 4           4     |
|                                                                             |
|      2                                                                  2   |
|97186x  + 880351x x  - 4741277x x  - 1205877x x  + 3486734x x  + 2898287x    |
|      3          0 4           1 4           2 4           3 4           4   |
|                                                                             |
|    2                                                                  2     |
|351x  - 4434745x x  + 2429080x x  + 4533987x x  - 3525867x x  + 316102x  -   |
|    3           0 4           1 4           2 4           3 4          4     |
|                                                                             |
|x   , x   , x   ]) defined by                                                |
| 1,4   2,4   3,4                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|  + 2905466x  - 4890882x  - 215730x  + 3759197x ,                            |
|5           6           7          8           9                             |
|                                                                             |
|- 1952375x  + 4032072x  + 4274163x  - 3460346x ,                             |
|          6           7           8           9                              |
|                                                                             |
| + 2251582x  - 1355141x  - 188875x  + 87464x ,                               |
|           6           7          8         9                                |
|                                                                             |
| 1335061x  + 4143364x  + 259754x  + 3440927x ,                               |
|         6           7          8           9                                |
|                                                                             |
|- 121812x  + 1770730x  + 558569x  + 3067493x ,                               |
|         6           7          8           9                                |
|                                                                             |
| + 257400x  + 3674927x  + 4256589x  + 784860x ,                              |
|          6           7           8          9                               |
|                                                                             |
|3244720x  + 1895569x  + 3350914x  + 1627251x ,                               |
|        6           7           8           9                                |
|                                                                             |
|2750700x  + 1022834x  - 98736x  + 2004957x ,                                 |
|        6           7         8           9                                  |
|                                                                             |
|+ 2386551x  - 754907x  - 2731424x  + 4928807x ,                              |
|          6          7           8           9                               |
|                                                                             |
|  - 408054x  - 4897063x  + 4835457x  - 3641859x                              |
|5          6           7           8           9                             |
|-----------------------------------------------------------------------------|
|2                                                                            |
|  + 1640949x x  - 329156x x  - 2083947x x  - 2312431x x  - 1936834x          |
|4           0 5          1 5           2 5           3 5           4         |
|                                                                             |
|                                                                             |
|899258x x  - 4198922x x  + 2215739x x  - 1414418x x  - 4001772x x  +         |
|       0 5           1 5           2 5           3 5           4 5           |
|                                                                             |
|                                                                             |
|1508144x x  - 1365547x x  + 4996438x x  - 3145140x x  + 1783510x x           |
|        0 5           1 5           2 5           3 5           4 5          |
|                                                                             |
|                                                                             |
|+ 3006671x x  + 3243145x x  - 1623964x x  + 4521923x x  + 4756659x x         |
|          0 5           1 5           2 5           3 5           4          |
|                                                                             |
|                                                                             |
|989703x x  + 2718669x x  - 2734172x x  - 926135x x  + 1668848x x  -          |
|       0 5           1 5           2 5          3 5           4 5            |
|-----------------------------------------------------------------------------|
|             2                                                               |
|x  + 1149240x  - 4060388x x  - 3611959x x  + 3508392x x  - 537860x           |
| 5           5           0 6           1 6           2 6          3          |
|                                                                             |
|         2                                                                   |
| 1783295x  - 1769084x x  + 4558141x x  - 1508432x x  - 81167x x  -           |
|         5           0 6           1 6           2 6         3 6             |
|                                                                             |
|          2                                                                  |
|+ 2519033x  + 3099034x x  + 4073779x x  - 385562x x  + 2573406x x            |
|          5           0 6           1 6          2 6           3 6           |
|                                                                             |
|            2                                                                |
|  - 4484352x  - 3236288x x  - 695220x x  + 970619x x  - 3098637x x           |
|5           5           0 6          1 6          2 6           3 6          |
|                                                                             |
|        2                                                                    |
|3637865x  + 2187085x x  - 1706603x x  + 1210817x x  + 993302x x  -           |
|        5           0 6           1 6           2 6          3 6             |
|-----------------------------------------------------------------------------|
|                                         2                                   |
|x  - 4281865x x  - 4451400x x  + 2528307x  - 4230765x x  - 2408221x          |
| 6           4 6           5 6           6           0 7                     |
|                                                                             |
|                                   2                                         |
|625040x x  + 2937038x x  + 4090836x  + 3729984x x  + 4292910x x  -           |
|       4 6           5 6           6           0 7           1 7             |
|                                                                             |
|                                      2                                      |
|+ 3053509x x  - 1162366x x  + 4302327x  + 117773x x  + 1743374x x            |
|          4 6           5 6           6          0 7           1 7           |
|                                                                             |
|                                       2                                     |
| - 2898498x x  - 3885949x x  + 1379926x  + 452843x x  - 602246x x            |
|           4 6           5 6           6          0 7          1 7           |
|                                                                             |
|                                    2                                        |
|3101990x x  - 1214647x x  + 4207879x  + 1139881x x  + 1251151x x  +          |
|        4 6           5 6           6           0 7           1 7            |
|-----------------------------------------------------------------------------|
|                                                                             |
| x  - 1286535x x  - 4336603x x  - 4220128x x  + 749283x x  + 3981741x        |
|1 7           2 7           3 7           4 7          5 7                   |
|                                                                             |
|                                                                             |
|1067772x x  - 2704646x x  - 4942689x x  - 3684702x x  + 2267021x x  +        |
|        2 7           3 7           4 7           5 7           6 7          |
|                                                                             |
|                                                                             |
|+ 2462036x x  - 4097671x x  - 1750639x x  - 418086x x  - 369814x x  -        |
|          2 7           3 7           4 7          5 7          6 7          |
|                                                                             |
|                                                                             |
|- 2706941x x  - 290203x x  - 1724577x x  + 123395x x  + 583922x x  +         |
|          2 7          3 7           4 7          5 7          6 7           |
|                                                                             |
|                                                                             |
| 1168855x x  - 912010x x  - 3811666x x  - 3437312x x  + 1947189x x  +        |
|         2 7          3 7           4 7           5 7           6 7          |
|-----------------------------------------------------------------------------|
|              2                                                              |
| x  + 3038844x  + 4740906x x  + 4843505x x  - 3886471x x  + 696812x          |
|6 7           7           0 8           1 8           2 8                    |
|                                                                             |
|         2                                                                   |
| 1087738x  - 2739302x x  + 1562924x x  - 2847121x x  - 4121261x x            |
|         7           0 8           1 8           2 8           3 8           |
|                                                                             |
|         2                                                                   |
| 1611145x  - 1066092x x  + 1462981x x  - 897233x x  - 4918316x x  -          |
|         7           0 8           1 8          2 8           3 8            |
|                                                                             |
|       2                                                                     |
|115646x  + 2172520x x  + 1125647x x  - 2817246x x  + 4180857x x  -           |
|       7           0 8           1 8           2 8           3 8             |
|                                                                             |
|         2                                                                   |
| 4881584x  - 4659830x x  + 3854863x x  + 701591x x  + 3308028x x  +          |
|         7           0 8           1 8          2 8           3 8            |
|-----------------------------------------------------------------------------|
|                                                                             |
| x  - 4988346x x  + 2077593x x  - 2859698x x  - 1518929x                     |
|3 8           4 8           5 8           6 8                                |
|                                                                             |
|                                                                             |
|+ 2174897x x  + 90757x x  - 2407863x x  - 2324974x x  -                      |
|          4 8         5 8           6 8           7 8                        |
|                                                                             |
|                                                                             |
| 442190x x  + 1847233x x  + 3694786x x  + 1873500x x  +                      |
|        4 8           5 8           6 8           7 8                        |
|                                                                             |
|                                                                             |
|3227735x x  - 2538539x x  - 1811940x x  - 3865917x x  -                      |
|        4 8           5 8           6 8           7 8                        |
|                                                                             |
|                                                                             |
| 2182166x x  + 3628590x x  + 1667603x x  - 1656132x x  -                     |
|         4 8           5 8           6 8           7 8                       |
|-----------------------------------------------------------------------------|
|              2                                                              |
| x  - 3232058x  + 3121313x x  - 4756567x x  - 3127167x x  - 1627093x x  + 261|
|7 8           8           0 9           1 9           2 9           3 9      |
|                                                                             |
|       2                                                                     |
|174089x  + 4436267x x  + 487180x x  - 4151396x x  - 1383729x x  + 773635x x  |
|       8           0 9          1 9           2 9           3 9          4 9 |
|                                                                             |
|       2                                                                     |
|747368x  + 3942073x x  + 1611533x x  - 1063893x x  + 3564330x x  - 1700115x x|
|       8           0 9           1 9           2 9           3 9           4 |
|                                                                             |
|        2                                                                    |
|3160054x  - 738144x x  + 2508981x x  + 2624313x x  + 2088816x x  + 2135052x x|
|        8          0 9           1 9           2 9           3 9           4 |
|                                                                             |
|         2                                                                   |
| 4157810x  - 2253747x x  - 1789013x x  + 3891052x x  - 4072307x x  - 3350837x|
|         8           0 9           1 9           2 9           3 9           |
|-----------------------------------------------------------------------------|
|                                                                         2   |
|1828x x  + 4968424x x  - 64090x x  + 2180367x x  + 2238599x x  + 2439061x ,  |
|     4 9           5 9         6 9           7 9           8 9           9   |
|                                                                             |
|                                                                  2          |
|+ 3984741x x  + 3303811x x  - 4267053x x  - 4832450x x  - 4362709x ,         |
|          5 9           6 9           7 9           8 9           9          |
|                                                                             |
|                                                                  2          |
|  - 410720x x  + 2237535x x  + 316734x x  - 4299028x x  - 1057166x ,         |
|9          5 9           6 9          7 9           8 9           9          |
|                                                                             |
|                                                               2             |
|  + 140567x x  - 3482168x x  + 3607342x x  - 205597x x  - 3307x ,            |
|9          5 9           6 9           7 9          8 9        9             |
|                                                                             |
|                                                                     2       |
| x  + 4382093x x  + 348517x x  - 3484961x x  + 1064900x x  - 2493096x        |
|4 9           5 9          6 9           7 9           8 9           9       |
+-----------------------------------------------------------------------------+

See also
========

  * parametrize(MultiprojectiveVariety)
    -- try to get a parametrization of
    a multi-projective variety

Ways to use this method:
========================

  * EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety
    -- try to find an
    isomorphism between two projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3887:0.

entries(MultirationalMap) -- list the defining polynomials of a rational map
****************************************************************************

  * Function: entries (Macaulay2Doc),
  * Usage:
        entries Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a list (Macaulay2Doc), a doubly nested list of the defining
        polynomials of the map Phi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = inverse first graph segreEmbedding PP_(ZZ/13)^{1,2,1};            |
|                                                                             |
|o1 : MultirationalMap (birational map from PP^1 x PP^2 x PP^1 to 4-          |
|-----------------------------------------------------------------------------|
|dimensional subvariety of PP^1 x PP^2 x PP^1 x PP^11)                        |
+-----------------------------------------------------------------------------+
|i2 : entries Phi                                                             |
|                                                                             |
|o2 = {{x0 , x0 }, {x1 , x1 , x1 }, {x2 , x2 }, {x0 x1 x2 , x0 x1 x2 ,        |
|         0    1      0    1    2      0    1      0  0  0    0  0  1         |
|     ------------------------------------------------------------------------|
|     x0 x1 x2 , x0 x1 x2 , x0 x1 x2 , x0 x1 x2 , x0 x1 x2 , x0 x1 x2 ,       |
|       0  1  0    0  1  1    0  2  0    0  2  1    1  0  0    1  0  1        |
|     ------------------------------------------------------------------------|
|     x0 x1 x2 , x0 x1 x2 , x0 x1 x2 , x0 x1 x2 }}                            |
|       1  1  0    1  1  1    1  2  0    1  2  1                              |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+

See also
========

  * source(MultirationalMap) -- the source
    for a multi-rational map
  * target(MultirationalMap) -- the target
    for a multi-rational map
  * entries(RationalMap) (Cremona) -- the
    entries of the matrix associated to a rational map

Ways to use this method:
========================

  * entries(MultirationalMap) -- list the
    defining polynomials of a rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2997:0.

euler(MultiprojectiveVariety) -- topological Euler characteristic of a (smooth) multi-projective variety
********************************************************************************************************

  * Function: euler (Macaulay2Doc),
  * Usage:
        euler X
        euler(X,Verify=>b)
  * Inputs:
      * X, a multi-projective variety, which is
        assumed to be smooth, and b is a boolean value (Macaulay2Doc),
        that is, true or false (the default value is
        true)
  * Outputs:
      * an integer (Macaulay2Doc), the topological Euler
        characteristics of the variety X, generally calculated as
        EulerCharacteristic (Cremona),(ideal X,Certify=>b)

Description
===========

+-----------------------------------------+
|i1 : X = PP_QQ^(2,2); -- Veronese surface|
|                                         |
|o1 : ProjectiveVariety, surface in PP^5  |
+-----------------------------------------+
|i2 : euler X                             |
|                                         |
|o2 = 3                                   |
+-----------------------------------------+
|i3 : X4 = X^4;                           |
|                                         |
|o3 : ProjectiveVariety, X x X x X x X    |
+-----------------------------------------+
|i4 : euler X4                            |
|                                         |
|o4 = 81                                  |
+-----------------------------------------+

See also
========

  * EulerCharacteristic (Cremona) -- topological
    Euler characteristic of a (smooth) projective variety
  * euler(ProjectiveVariety) (Varieties), --
    topological Euler characteristic of a (smooth) projective variety

Ways to use this method:
========================

  * euler(MultiprojectiveVariety), --
    topological Euler characteristic of a (smooth) multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2869:0.

factor(MultirationalMap) -- the list of rational maps defining a multi-rational map
***********************************************************************************

  * Function: factor (Macaulay2Doc),
  * Usage:
        factor Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * the list (Macaulay2Doc), of rational maps (Cremona),
        defining Phi

Description
===========

This function is intended for internal use. Use the projectionMaps,
function instead.

+---------------------------------------------------------------------------+
|i1 : ZZ/33331[t_0..t_2,u_0..u_1,Degrees=>{3:{1,0},2:{0,1}}];               |
+---------------------------------------------------------------------------+
|i2 : f0 = rationalMap {t_0,t_1,t_2}                                        |
|                                                                           |
|o2 = -- rational map --                                                    |
|                    ZZ                        ZZ                           |
|     source: Proj(-----[t , t , t ]) x Proj(-----[u , u ])                 |
|                  33331  0   1   2          33331  0   1                   |
|                    ZZ                                                     |
|     target: Proj(-----[x , x , x ])                                       |
|                  33331  0   1   2                                         |
|     defining forms: {                                                     |
|                      t ,                                                  |
|                       0                                                   |
|                                                                           |
|                      t ,                                                  |
|                       1                                                   |
|                                                                           |
|                      t                                                    |
|                       2                                                   |
|                     }                                                     |
|                                                                           |
|o2 : MultihomogeneousRationalMap (rational map from PP^2 x PP^1 to PP^2)   |
+---------------------------------------------------------------------------+
|i3 : f1 = rationalMap {u_0,u_1}                                            |
|                                                                           |
|o3 = -- rational map --                                                    |
|                    ZZ                        ZZ                           |
|     source: Proj(-----[t , t , t ]) x Proj(-----[u , u ])                 |
|                  33331  0   1   2          33331  0   1                   |
|                    ZZ                                                     |
|     target: Proj(-----[x , x ])                                           |
|                  33331  0   1                                             |
|     defining forms: {                                                     |
|                      u ,                                                  |
|                       0                                                   |
|                                                                           |
|                      u                                                    |
|                       1                                                   |
|                     }                                                     |
|                                                                           |
|o3 : MultihomogeneousRationalMap (rational map from PP^2 x PP^1 to PP^1)   |
+---------------------------------------------------------------------------+
|i4 : f2 = rationalMap {t_0*u_1,t_1*u_0}                                    |
|                                                                           |
|o4 = -- rational map --                                                    |
|                    ZZ                        ZZ                           |
|     source: Proj(-----[t , t , t ]) x Proj(-----[u , u ])                 |
|                  33331  0   1   2          33331  0   1                   |
|                    ZZ                                                     |
|     target: Proj(-----[x , x ])                                           |
|                  33331  0   1                                             |
|     defining forms: {                                                     |
|                      t u ,                                                |
|                       0 1                                                 |
|                                                                           |
|                      t u                                                  |
|                       1 0                                                 |
|                     }                                                     |
|                                                                           |
|o4 : MultihomogeneousRationalMap (rational map from PP^2 x PP^1 to PP^1)   |
+---------------------------------------------------------------------------+
|i5 : Phi = rationalMap {f0,f1,f2};                                         |
|                                                                           |
|o5 : MultirationalMap (rational map from PP^2 x PP^1 to PP^2 x PP^1 x PP^1)|
+---------------------------------------------------------------------------+
|i6 : assert(factor Phi === {f0,f1,f2})                                     |
+---------------------------------------------------------------------------+

See also
========

  * target(MultirationalMap) -- the target
    for a multi-rational map
  * source(MultirationalMap) -- the source
    for a multi-rational map
  * projectionMaps(MultirationalMap)
    -- get the compositions of the
    multi-rational map with the projections of the target

Ways to use this method:
========================

  * factor(MultirationalMap) -- the list
    of rational maps defining a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3012:0.

Fano(ZZ,EmbeddedProjectiveVariety) -- Fano scheme of a projective variety
*************************************************************************

  * Function: Fano (Macaulay2Doc),
  * Usage:
        Fano(k,X)
        Fano(k,X,AffineChartGrass=>...)
        Fano X
        Fano(X,AffineChartGrass=>...)
  * Inputs:
      * k, an integer (Macaulay2Doc), optional with default value
        equal to $\mathrm{dim}(X)$
      * X, an embedded projective variety,
  * Outputs:
      * an embedded projective variety, the
        subvariety of the Grassmannian,
        $\mathbb{G}(k,\mathrm{ambient}(X))$ that parametrizes the $k$-planes
        lying on $X$

Description
===========

This function is based internally on the function plucker (Resultants),
provided by the package Resultants.
In particular, note that by default the computation is done
on a randomly chosen affine chart on the Grassmannian. To change this behavior,
you can use the AffineChartGrass (Resultants), option.

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/33331;                                                           |
+-----------------------------------------------------------------------------+
|i2 : L = linearSpan {point PP_K^4,point PP_K^4}; -- a line in P^4            |
|                                                                             |
|o2 : ProjectiveVariety, curve in PP^4                                        |
+-----------------------------------------------------------------------------+
|i3 : p := Fano L                                                             |
|                                                                             |
|o3 = point of coordinates [12627, 14941, 11188, -4847, 15437, 16492,         |
|                                                                             |
|o3 : ProjectiveVariety, a point in PP^9 (subvariety of codimension 6         |
|-----------------------------------------------------------------------------|
|13501, 8759, 6817, 1]                                                        |
|                                                                             |
|in GG(1,4) ⊂ PP^9)                                                           |
+-----------------------------------------------------------------------------+
|i4 : Fano p                                                                  |
|                                                                             |
|o4 = curve in PP^4 cut out by 3 hypersurfaces of degree 1                    |
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^4                                        |
+-----------------------------------------------------------------------------+
|i5 : assert(Fano p == L)                                                     |
+-----------------------------------------------------------------------------+

If the input is a subvariety,
$Y\subset\mathbb{G}(k,\mathbb{P}^n)$, then the output
is the variety $W\subset\mathbb{P}^n$ swept out by the linear spaces
corresponding to points of $Y$. As an example, we now compute a surface scroll
$W\subset\mathbb{P}^4$ over an elliptic curve
$Y\subset\mathbb{G}(1,\mathbb{P}^4)$.

+--------------------------------------------------------------------------+
|i6 : G = GG_K(1,4);                                                       |
|                                                                          |
|o6 : ProjectiveVariety, GG(1,4)                                           |
+--------------------------------------------------------------------------+
|i7 : Y := (G * random({{1},{1},{1},{1},{1}},0_G)) % G -- an elliptic curve|
|                                                                          |
|o7 = curve in PP^9 cut out by 10 hypersurfaces of degrees 1^5 2^5         |
|                                                                          |
|o7 : ProjectiveVariety, curve in PP^9 (subvariety of codimension 5 in G)  |
+--------------------------------------------------------------------------+
|i8 : W = Fano Y; -- surface swept out by the lines of Y                   |
|                                                                          |
|o8 : ProjectiveVariety, surface in PP^4                                   |
+--------------------------------------------------------------------------+

We can recover the subvariety $Y\subset\mathbb{G}(k,\mathbb{P}^n)$ by computing
the Fano variety of $k$-planes contained in $W$.

+------------------------------------------------------------------------+
|i9 : Fano(1,W) -- variety of lines contained in W                       |
|                                                                        |
|o9 = curve in PP^9 cut out by 10 hypersurfaces of degrees 1^5 2^5       |
|                                                                        |
|o9 : ProjectiveVariety, curve in PP^9 (subvariety of codimension 5 in G)|
+------------------------------------------------------------------------+
|i10 : assert(oo == Y)                                                   |
+------------------------------------------------------------------------+

See also
========

  * plucker(Ideal) (Resultants) -- get the Plücker coordinates
    of a linear subspace
  * Fano(ZZ,Ideal) (Macaulay2Doc) -- compute the ideal of a Fano
    scheme in the Grassmannian
  * MultiprojectiveVariety % MultiprojectiveVariety
    -- subvariety of a
    projective variety

Ways to use this method:
========================

  * "Fano(EmbeddedProjectiveVariety)"
  * Fano(ZZ,EmbeddedProjectiveVariety)
    -- Fano scheme of a projective
    variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3979:0.

fiberProduct -- fiber product of multi-projective varieties
***********************************************************

  * Usage:
        fiberProduct(phi,psi)
  * Inputs:
      * phi, a morphism (Cremona), $X\to Z$ (that is, a
        rational map (Cremona), that is everywhere defined)
      * psi, another morphism (Cremona), $Y\to Z$, with the
        same target $Z$
  * Outputs:
      * a multi-projective variety, the fiber
        product $X\times_{Z} Y$

Description
===========

The natural morphisms $X\times_{Z} Y\to X$ and $X\times_{Z} Y\to Y$ can be
easily obtained using projections, and
multirationalMap.

As an example, we calculate the fiber product of the blowing up
$\phi:Bl_{C}(\mathbb{P}^3)\to\mathbb{P}^3$ of $\mathbb{P}^3$ along a twisted
cubic curve $C\subset\mathbb{P}^3$ and the inclusion $\psi:L\to \PP^3$ of a
secant line $L\subset\mathbb{P}^3$ to $C$.

+-----------------------------------------------------------------------------+
|i1 : ringP3 = ZZ/33331[a..d]; C =                                            |
|                                                                             |
|              2                                                              |
|o2 = (ideal (c  - b*d, b*c - a*d,                                            |
|                                                                             |
|o2 : Sequence                                                                |
|-----------------------------------------------------------------------------|
|ideal(c^2-b*d,b*c-a*d,b^2-a*c), L = ideal(b+c+d,a-d)                         |
|                                                                             |
| 2                                                                           |
|b  - a*c), ideal (b + c + d, a - d))                                         |
+-----------------------------------------------------------------------------+
|i3 : phi = first graph rationalMap C;                                        |
|                                                                             |
|o3 : MultihomogeneousRationalMap (birational map from threefold in PP^3 x    |
|-----------------------------------------------------------------------------|
|PP^2 to PP^3)                                                                |
+-----------------------------------------------------------------------------+
|i4 : psi = parametrize L;                                                    |
|                                                                             |
|o4 : RationalMap (linear rational map from PP^1 to PP^3)                     |
+-----------------------------------------------------------------------------+
|i5 : F = fiberProduct(phi,psi);                                              |
|                                                                             |
|o5 : ProjectiveVariety, curve in PP^3 x PP^2 x PP^1                          |
+-----------------------------------------------------------------------------+
|i6 : describe F                                                              |
|                                                                             |
|o6 = ambient:.............. PP^3 x PP^2 x PP^1                               |
|     dim:.................. 1                                                |
|     codim:................ 5                                                |
|     degree:............... 4                                                |
|     multidegree:.......... T_0^3*T_1^2+2*T_0^3*T_1*T_2+T_0^2*T_1^2*T_2      |
|     generators:........... (0,1,1)^2 (0,2,0)^1 (1,0,0)^2 (1,0,1)^1 (1,1,0)^2|
|     purity:............... true                                             |
|     dim sing. l.:......... 0                                                |
|     gens sing. l.:........ (0,0,2)^1 (0,1,0)^2 (1,0,0)^2 (1,0,1)^2 (2,0,0)^1|
|     Segre embedding:...... map to PP^4 ⊂ PP^23                              |
+-----------------------------------------------------------------------------+
|i7 : p = projections F;                                                      |
+-----------------------------------------------------------------------------+
|i8 : -- first natural morphism                                               |
|     phi' = check rationalMap({p_0,p_1},projectiveVariety source phi);       |
|                                                                             |
|o8 : MultirationalMap (rational map from F to threefold in PP^3 x PP^2)      |
+-----------------------------------------------------------------------------+
|i9 : -- second natural morphism                                              |
|     psi' = check rationalMap({p_2},projectiveVariety source psi);           |
|                                                                             |
|o9 : MultirationalMap (rational map from F to PP^1)                          |
+-----------------------------------------------------------------------------+
|i10 : assert(phi' * phi == psi' * psi)                                       |
+-----------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety ** MultiprojectiveVariety
    -- product of two
    multi-projective varieties
  * MultirationalMap ^** MultiprojectiveVariety
    -- inverse image via a multi-rational map

Ways to use fiberProduct:
=========================

  * "fiberProduct(RationalMap,RationalMap)"

For the programmer
==================

The object fiberProduct, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2853:0.

forceImage(MultirationalMap,MultiprojectiveVariety) -- declare which is the image of a multi-rational map
*********************************************************************************************************

  * Function: forceImage (Cremona),
  * Usage:
        forceImage(Phi,Y)
  * Inputs:
      * Phi, a multi-rational map,
      * Y, a multi-projective variety,
  * Outputs:
      * null (Macaulay2Doc)

Description
===========

This method allows to inform the system about the image of a given
multi-rational map without performing any computation. In particular, this can
be used to declare that a rational map is dominant.

+-----------------------------------------------------------------------------+
|i1 : Phi = rationalMap {minors(3,(PP_(ZZ/65521)([6],2)).matrix)};            |
|                                                                             |
|o1 : MultirationalMap (rational map from PP^6 to PP^9)                       |
+-----------------------------------------------------------------------------+
|i2 : Y = image(Phi,2)                                                        |
|                                                                             |
|o2 = Y                                                                       |
|                                                                             |
|o2 : ProjectiveVariety, 6-dimensional subvariety of PP^9                     |
+-----------------------------------------------------------------------------+
|i3 : forceImage(Phi,Y)                                                       |
+-----------------------------------------------------------------------------+
|i4 : image Phi                                                               |
|                                                                             |
|o4 = Y                                                                       |
|                                                                             |
|o4 : ProjectiveVariety, 6-dimensional subvariety of PP^9                     |
+-----------------------------------------------------------------------------+
|i5 : Psi = rationalMap({minors(3,(PP_(ZZ/65521)([6],2)).matrix)},Dominant=>2 |
|                                                                             |
|o5 : MultirationalMap (rational map from PP^6 to 6-dimensional subvariety of |
|-----------------------------------------------------------------------------|
|);                                                                           |
|                                                                             |
| PP^9)                                                                       |
+-----------------------------------------------------------------------------+
|i6 : forceImage(Psi,target Psi)                                              |
+-----------------------------------------------------------------------------+
|i7 : Psi;                                                                    |
|                                                                             |
|o7 : MultirationalMap (dominant rational map from PP^6 to 6-dimensional      |
|-----------------------------------------------------------------------------|
|subvariety of PP^9)                                                          |
+-----------------------------------------------------------------------------+

Caveat
======

If the declaration is false, nonsensical answers may result.

See also
========

  * image(MultirationalMap) -- image of a
    multi-rational map
  * forceImage(RationalMap,Ideal) (Cremona) -- declare which
    is the image of a rational map

Ways to use this method:
========================

  * forceImage(MultirationalMap,MultiprojectiveVariety)
    -- declare which
    is the image of a multi-rational map
  * "forceImage(MultirationalMap,ZZ)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4051:0.

GG -- the Grassmannian of k-dimensional linear subspaces of an n-dimensional projective space
*********************************************************************************************

  * Usage:
        GG(k,PP_K^n)
        GG_K(k,n)
        GG Grass(k,n,K,Variable=>"x")
  * Inputs:
      * k, an integer (Macaulay2Doc),
      * P, an embedded projective variety, a
        projective space of dimension $n$
  * Outputs:
      * a Grassmannian variety, which parametrizes
        the $k$-dimensional subspaces of $\mathbb{P}^n$

Description
===========

+---------------------------------+
|i1 : GG(2,PP_QQ^5)               |
|                                 |
|o1 = GG(2,5) ⊂ PP^19             |
|                                 |
|o1 : ProjectiveVariety, GG(2,5)  |
+---------------------------------+
|i2 : describe oo                 |
|                                 |
|o2 = ambient:.............. PP^19|
|     dim:.................. 9    |
|     codim:................ 10   |
|     degree:............... 42   |
|     generators:........... 2^35 |
|     purity:............... true |
|     dim sing. l.:......... -1   |
+---------------------------------+

See also
========

  * GG(ZZ,MultirationalMap) -- induced
    automorphism of the Grassmannian

Ways to use GG:
===============

  * "GG(EmbeddedProjectiveVariety)"
  * "GG(Ring)"
  * "GG(Ring,ZZ,ZZ)"
  * "GG(ZZ,EmbeddedProjectiveVariety)"
  * "GG(ZZ,ZZ)"
  * GG(ZZ,MultirationalMap) -- induced
    automorphism of the Grassmannian
  * "GG(ZZ,RationalMap)" -- see GG(ZZ,MultirationalMap),
    -- induced automorphism of the Grassmannian

For the programmer
==================

The object GG, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4004:0.

GG(ZZ,MultirationalMap) -- induced automorphism of the Grassmannian
*******************************************************************

  * Function: GG,
  * Usage:
        GG(k,f)
  * Inputs:
      * k, an integer (Macaulay2Doc), to indicate the Grassmannian
        GG,$(k,n)$ of $k$-dimensional subspaces of $\mathbb{P}^n$
      * f, a multi-rational map, an automorphism of
        $\mathbb{P}^n$
  * Outputs:
      * a multi-rational map, the induced automorphism
        of GG,$(k,n)$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/33331;                                                           |
+-----------------------------------------------------------------------------+
|i2 : f = random 1_(PP_K^4);                                                  |
|                                                                             |
|o2 : MultirationalMap (rational map from PP^4 to PP^4)                       |
+-----------------------------------------------------------------------------+
|i3 : show f                                                                  |
|                                                                             |
|o3 = -- multi-rational map --                                                |
|     source: Proj(K[x , x , x , x , x ])                                     |
|                     0   1   2   3   4                                       |
|     target: Proj(K[x , x , x , x , x ])                                     |
|                     0   1   2   3   4                                       |
|     -- rational map 1/1 --                                                  |
|     map 1/1, one of its representatives:                                    |
|     {                                                                       |
|      2077x  - 13092x  - 5710x  + 1541x  + 4659x ,                           |
|           0         1        2        3        4                            |
|                                                                             |
|      3214x  + 224x  - 8173x  - 8255x  + 10939x ,                            |
|           0       1        2        3         4                             |
|                                                                             |
|      - 8079x  + 1983x  + 2828x  + 11984x  + 3141x ,                         |
|             0        1        2         3        4                          |
|                                                                             |
|      - 209x  - 5685x  - 5403x  + 8625x  + 10589x ,                          |
|            0        1        2        3         4                           |
|                                                                             |
|      - 10931x  + 12499x  - 1748x  + 2880x  + 11558x                         |
|              0         1        2        3         4                        |
|     }                                                                       |
+-----------------------------------------------------------------------------+
|i4 : F = GG(1,f);                                                            |
|                                                                             |
|o4 : MultirationalMap (rational map from GG(1,4) to GG(1,4))                 |
+-----------------------------------------------------------------------------+
|i5 : show F                                                                  |
|                                                                             |
|o5 = -- multi-rational map --                                                |
|     source: subvariety of Proj(K[x   , x   , x   , x   , x   , x   , x      |
|                                   0,1   0,2   1,2   0,3   1,3   2,3   0     |
|             {                                                               |
|              x   x    - x   x    + x   x   ,                                |
|               2,3 1,4    1,3 2,4    1,2 3,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x   ,                                |
|               2,3 0,4    0,3 2,4    0,2 3,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x   ,                                |
|               1,3 0,4    0,3 1,4    0,1 3,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x   ,                                |
|               1,2 0,4    0,2 1,4    0,1 2,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x                                    |
|               1,2 0,3    0,2 1,3    0,1 2,3                                 |
|             }                                                               |
|     target: subvariety of Proj(K[x   , x   , x   , x   , x   , x   , x      |
|                                   0,1   0,2   1,2   0,3   1,3   2,3   0     |
|             {                                                               |
|              x   x    - x   x    + x   x   ,                                |
|               2,3 1,4    1,3 2,4    1,2 3,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x   ,                                |
|               2,3 0,4    0,3 2,4    0,2 3,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x   ,                                |
|               1,3 0,4    0,3 1,4    0,1 3,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x   ,                                |
|               1,2 0,4    0,2 1,4    0,1 2,4                                 |
|                                                                             |
|              x   x    - x   x    + x   x                                    |
|               1,2 0,3    0,2 1,3    0,1 2,3                                 |
|             }                                                               |
|     -- rational map 1/1 --                                                  |
|     map 1/1, one of its representatives:                                    |
|     {                                                                       |
|      12580x    + 10048x    - 12463x    + 44x    + 3484x    + 1491x    +     |
|            0,1         0,2         1,2      0,3        1,3        2,3       |
|                                                                             |
|      7973x    + 6514x    - 3045x    + 9787x    + 5138x    + 8316x    +      |
|           0,1        0,2        1,2        0,3        1,3        2,3        |
|                                                                             |
|      - 16368x    - 11127x    + 8376x    - 10874x    - 11251x    - 5314x     |
|              0,1         0,2        1,2         0,3         1,3             |
|                                                                             |
|      - 11657x    - 16289x    + 10738x    + 4137x    + 1460x    + 7741x      |
|              0,1         0,2         1,2        0,3        1,3        2     |
|                                                                             |
|      7283x    - 8067x    - 10447x    - 2725x    - 825x    - 1947x    -      |
|           0,1        0,2         1,2        0,3       1,3        2,3        |
|                                                                             |
|      13472x    + 11652x    - 3260x    - 14754x    + 5048x    + 13958x       |
|            0,1         0,2        1,2         0,3        1,3         2,     |
|                                                                             |
|      10236x    + 15436x    - 5962x    - 5304x    - 3240x    + 14571x        |
|            0,1         0,2        1,2        0,3        1,3         2,3     |
|                                                                             |
|      - 10019x    + 2884x    + 3232x    + 15245x    - 1700x    - 3971x       |
|              0,1        0,2        1,2         0,3        1,3        2,     |
|                                                                             |
|      - 8799x    + 4779x    - 16172x    + 3792x    + 12937x    - 5291x       |
|             0,1        0,2         1,2        0,3         1,3        2,     |
|                                                                             |
|      7107x    + 1030x    + 8233x    - 15486x    + 14631x    + 15825x        |
|           0,1        0,2        1,2         0,3         1,3         2,3     |
|     }                                                                       |
|-----------------------------------------------------------------------------|
|  , x   , x   , x   ]) defined by                                            |
|,4   1,4   2,4   3,4                                                         |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|  , x   , x   , x   ]) defined by                                            |
|,4   1,4   2,4   3,4                                                         |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| 13485x    - 436x    + 14609x    - 12416x   ,                                |
|       0,4       1,4         2,4         3,4                                 |
|                                                                             |
|343x    + 2372x    - 12939x    + 3255x   ,                                   |
|    0,4        1,4         2,4        3,4                                    |
|                                                                             |
|    + 11581x    + 10077x    - 10847x    + 410x   ,                           |
|2,3         0,4         1,4         2,4       3,4                            |
|                                                                             |
|   + 2025x    + 14042x    + 6916x    - 1230x   ,                             |
|,3        0,4         1,4        2,4        3,4                              |
|                                                                             |
|11493x    - 1996x    - 9067x    - 7127x   ,                                  |
|      0,4        1,4        2,4        3,4                                   |
|                                                                             |
|  + 1995x    - 9374x    - 13533x    + 14437x   ,                             |
|3        0,4        1,4         2,4         3,4                              |
|                                                                             |
| + 5407x    + 1820x    + 10368x    - 6734x   ,                               |
|        0,4        1,4         2,4        3,4                                |
|                                                                             |
|  - 741x    - 13625x    - 14102x    + 8838x   ,                              |
|3       0,4         1,4         2,4        3,4                               |
|                                                                             |
|  - 13610x    - 7655x    + 12497x    + 7388x   ,                             |
|3         0,4        1,4         2,4        3,4                              |
|                                                                             |
| + 7337x    - 6339x    - 8044x    - 3726x                                    |
|        0,4        1,4        2,4        3,4                                 |
+-----------------------------------------------------------------------------+
|i6 : assert(F^-1 == GG(1,f^-1))                                              |
+-----------------------------------------------------------------------------+

See also
========

  * GG -- the Grassmannian of k-dimensional linear subspaces of an
    n-dimensional projective space

Ways to use this method:
========================

  * GG(ZZ,MultirationalMap) -- induced
    automorphism of the Grassmannian
  * "GG(ZZ,RationalMap)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4013:0.

graph(MultirationalMap) -- the graph of a multi-rational map
************************************************************

  * Function: graph (Cremona),
  * Usage:
        graph Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Optional inputs (Macaulay2Doc),:
      * BlowUpStrategy (Cremona), => ..., default value
        "Eliminate",
  * Outputs:
      * a multi-rational map, the first projection
        from the graph of Phi
      * a multi-rational map, the second projection
        from the graph of Phi

Description
===========

The equalities (first graph Phi) * Phi == last graph Phi and (first graph
Phi)^-1 * (last graph Phi) == Phi are always satisfied.

+-----------------------------------------------------------------------------+
|i1 : Phi = rationalMap(PP_(ZZ/333331)^(1,4),Dominant=>true)                  |
|                                                                             |
|o1 = Phi                                                                     |
|                                                                             |
|o1 : MultirationalMap (dominant rational map from PP^4 to hypersurface in    |
|-----------------------------------------------------------------------------|
|PP^5)                                                                        |
+-----------------------------------------------------------------------------+
|i2 : time (Phi1,Phi2) = graph Phi                                            |
| -- used 0.032749s (cpu); 0.0325833s (thread); 0s (gc)                       |
|                                                                             |
|o2 = (Phi1, Phi2)                                                            |
|                                                                             |
|o2 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i3 : Phi1;                                                                   |
|                                                                             |
|o3 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x|
|-----------------------------------------------------------------------------|
|PP^5 to PP^4)                                                                |
+-----------------------------------------------------------------------------+
|i4 : Phi2;                                                                   |
|                                                                             |
|o4 : MultirationalMap (dominant rational map from 4-dimensional subvariety of|
|-----------------------------------------------------------------------------|
|PP^4 x PP^5 to hypersurface in PP^5)                                         |
+-----------------------------------------------------------------------------+
|i5 : time (Phi21,Phi22) = graph Phi2                                         |
| -- used 0.0489552s (cpu); 0.0486568s (thread); 0s (gc)                      |
|                                                                             |
|o5 = (Phi21, Phi22)                                                          |
|                                                                             |
|o5 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i6 : Phi21;                                                                  |
|                                                                             |
|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 : Phi22;                                                                  |
|                                                                             |
|o7 : MultirationalMap (dominant rational map from 4-dimensional subvariety of|
|-----------------------------------------------------------------------------|
|PP^4 x PP^5 x PP^5 to hypersurface in PP^5)                                  |
+-----------------------------------------------------------------------------+
|i8 : time (Phi211,Phi212) = graph Phi21                                      |
| -- used 0.229613s (cpu); 0.189055s (thread); 0s (gc)                        |
|                                                                             |
|o8 = (Phi211, Phi212)                                                        |
|                                                                             |
|o8 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i9 : Phi211;                                                                 |
|                                                                             |
|o9 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x|
|-----------------------------------------------------------------------------|
|PP^5 x PP^5 x PP^4 x PP^5 to 4-dimensional subvariety of PP^4 x PP^5 x PP^5) |
+-----------------------------------------------------------------------------+
|i10 : Phi212;                                                                |
|                                                                             |
|o10 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 |
|-----------------------------------------------------------------------------|
|x PP^5 x PP^5 x PP^4 x PP^5 to 4-dimensional subvariety of PP^4 x PP^5)      |
+-----------------------------------------------------------------------------+
|i11 : assert(                                                                |
|      source Phi1 == source Phi2 and target Phi1 == source Phi and target Phi|
|      source Phi21 == source Phi22 and target Phi21 == source Phi2 and target|
|      source Phi211 == source Phi212 and target Phi211 == source Phi21 and ta|
|-----------------------------------------------------------------------------|
|2 == target Phi and                                                          |
| Phi22 == target Phi2 and                                                    |
|rget Phi212 == target Phi21)                                                 |
+-----------------------------------------------------------------------------+
|i12 : assert(Phi1 * Phi == Phi2 and Phi21 * Phi2 == Phi22 and Phi211 * Phi21 |
|-----------------------------------------------------------------------------|
|== Phi212)                                                                   |
+-----------------------------------------------------------------------------+

See also
========

  * graph(RationalMap) (Cremona) -- closure of the graph of a
    rational map
  * MultirationalMap * MultirationalMap
    -- composition of multi-rational maps
  * MultirationalMap == MultirationalMap
    -- equality of multi-rational maps
  * inverse(MultirationalMap) -- inverse
    of a birational map

Ways to use this method:
========================

  * graph(MultirationalMap) -- the graph of
    a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3147:0.

GrassmannianVariety -- the class of all Grassmannians of linear subspaces of projective spaces
**********************************************************************************************

Description
===========

Objects of this type are created by GG.

See also
========

  * GG -- the Grassmannian of k-dimensional linear subspaces of an
    n-dimensional projective space
  * GG(ZZ,MultirationalMap) -- induced
    automorphism of the Grassmannian
  * schubertCycle -- take a random Schubert cycle
  * cycleClass -- determine the expression of the class of a
    cycle as a linear combination of Schubert classes
  * Fano(ZZ,EmbeddedProjectiveVariety)
    -- Fano scheme of a projective
    variety
  * tangentialChowForm(EmbeddedProjectiveVariety,ZZ)
    -- higher Chow
    forms of a projective variety

Methods that use a Grassmannian variety:
========================================

  * "schubertCycle(VisibleList,GrassmannianVariety)" -- see
    schubertCycle, -- take a random Schubert cycle

For the programmer
==================

The object GrassmannianVariety, is a type (Macaulay2Doc),
with ancestor classes EmbeddedProjectiveVariety,
< MultiprojectiveVariety
< MutableHashTable (Macaulay2Doc)
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3993:0.

hilbertPolynomial(EmbeddedProjectiveVariety) -- the Hilbert polynomial of the variety
*************************************************************************************

  * Function: hilbertPolynomial (Macaulay2Doc),
  * Usage:
        hilbertPolynomial X
  * Inputs:
      * X, an embedded projective variety,
  * Optional inputs (Macaulay2Doc),:
      * Projective (Macaulay2Doc),
        => ..., default value true,
  * Outputs:
      * a projective Hilbert polynomial (Macaulay2Doc),
        the Hilbert polynomial of X
        (calculated as hilbertPolynomial ideal (Macaulay2Doc),
        X)

Description
===========

+-------------------------------------------+
|i1 : X = PP_QQ^(2,3);                      |
|                                           |
|o1 : ProjectiveVariety, surface in PP^9    |
+-------------------------------------------+
|i2 : hilbertPolynomial X                   |
|                                           |
|o2 = P  - 9*P  + 9*P                       |
|      0      1      2                      |
|                                           |
|o2 : ProjectiveHilbertPolynomial           |
+-------------------------------------------+
|i3 : hilbertPolynomial(X,Projective=>false)|
|                                           |
|     9 2   9                               |
|o3 = -i  + -i + 1                          |
|     2     2                               |
|                                           |
|o3 : QQ[i]                                 |
+-------------------------------------------+

See also
========

  * hilbertPolynomial(Ideal) (Macaulay2Doc),
    -- compute the Hilbert polynomial of the quotient of the ambient ring by
    the ideal

Ways to use this method:
========================

  * hilbertPolynomial(EmbeddedProjectiveVariety)
    -- the Hilbert polynomial
    of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2587:0.

Hom(MultiprojectiveVariety,MultiprojectiveVariety) -- get the hom-set of rational maps between two multi-projective varieties
*****************************************************************************************************************************

  * Function: Hom (Macaulay2Doc),
  * Usage:
        Hom(X,Y)
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Optional inputs (Macaulay2Doc),:
      * DegreeLimit (Macaulay2Doc), => ..., default value null,
      * MinimalGenerators (Macaulay2Doc), => ..., default value true,
      * Strategy (Macaulay2Doc), => ..., default value null,
  * Outputs:
      * a hom-set, the hom-set of rational maps,
        from X to Y

Description
===========

+----------------------------------------------------------------------------+
|i1 : K = ZZ/3;                                                              |
+----------------------------------------------------------------------------+
|i2 : X = random({1,1},0_(PP_K^{1,1}));                                      |
|                                                                            |
|o2 : ProjectiveVariety, curve in PP^1 x PP^1                                |
+----------------------------------------------------------------------------+
|i3 : Y = PP_K^{2,1,3};                                                      |
|                                                                            |
|o3 : ProjectiveVariety, PP^2 x PP^1 x PP^3                                  |
+----------------------------------------------------------------------------+
|i4 : Hom(X,Y)                                                               |
|                                                                            |
|o4 = Hom-set of rational maps                                               |
|     from curve in PP^1 x PP^1 defined by a multi-form of multi-degree (1,1)|
|     to PP^2 x PP^1 x PP^3                                                  |
|                                                                            |
|o4 : Hom(X,Y)                                                               |
+----------------------------------------------------------------------------+

Some or all of the arguments may be omitted.

+----------------------------------------------------------------------------+
|i5 : Hom(X,)                                                                |
|                                                                            |
|o5 = Class of rational maps                                                 |
|     from curve in PP^1 x PP^1 defined by a multi-form of multi-degree (1,1)|
|     to any variety                                                         |
|                                                                            |
|o5 : Hom(X,*)                                                               |
+----------------------------------------------------------------------------+
|i6 : Hom(,Y)                                                                |
|                                                                            |
|o6 = Class of rational maps                                                 |
|     from any variety                                                       |
|     to PP^2 x PP^1 x PP^3                                                  |
|                                                                            |
|o6 : Hom(*,Y)                                                               |
+----------------------------------------------------------------------------+
|i7 : Hom(,)                                                                 |
|                                                                            |
|o7 = Class of rational maps                                                 |
|     from any variety                                                       |
|     to any variety                                                         |
|                                                                            |
|o7 : Hom(*,*)                                                               |
+----------------------------------------------------------------------------+

We can also form hom-sets of dominant rational maps.

+----------------------------------------------------------------------------+
|i8 : Hom(X,Dominant)                                                        |
|                                                                            |
|o8 = Class of dominant rational maps                                        |
|     from curve in PP^1 x PP^1 defined by a multi-form of multi-degree (1,1)|
|     to any variety                                                         |
|                                                                            |
|o8 : Hom(X,*,Dominant)                                                      |
+----------------------------------------------------------------------------+
|i9 : Hom(,Dominant)                                                         |
|                                                                            |
|o9 = Class of dominant rational maps                                        |
|     from any variety                                                       |
|     to any variety                                                         |
|                                                                            |
|o9 : Hom(*,*,Dominant)                                                      |
+----------------------------------------------------------------------------+

See also
========

  * RAT List -- define a multi-rational map

Ways to use this method:
========================

  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * "Hom(MultiprojectiveVariety,Nothing)"
  * "Hom(MultiprojectiveVariety,Symbol)"
  * "Hom(Nothing,MultiprojectiveVariety)"
  * "Hom(Nothing,Nothing)"
  * "Hom(Nothing,Symbol)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4077:0.

ideal(MultiprojectiveVariety) -- the defining ideal of the variety
******************************************************************

  * Function: ideal (Macaulay2Doc),
  * Usage:
        ideal X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * an ideal (Macaulay2Doc), the defining ideal of $X$

Description
===========

+--------------------------------------------------------+
|i1 : X = PP_QQ^({2,1},{1,3});                           |
|                                                        |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^3        |
+--------------------------------------------------------+
|i2 : ideal X                                            |
|                                                        |
|              2                              2          |
|o2 = ideal (x1  - x1 x1 , x1 x1  - x1 x1 , x1  - x1 x1 )|
|              2     1  3    1  2     0  3    1     0  2 |
|                                                        |
|o2 : Ideal of QQ[x0 ..x0 , x1 ..x1 ]                    |
|                   0    2    0    3                     |
+--------------------------------------------------------+

See also
========

  * ring(MultiprojectiveVariety), --
    the coordinate ring of the variety

Ways to use this method:
========================

  * ideal(MultiprojectiveVariety), --
    the defining ideal of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2555:0.

image(MultirationalMap) -- image of a multi-rational map
********************************************************

  * Function: image (Macaulay2Doc),
  * Usage:
        image Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a multi-projective variety, the (closure
        of the) image of Phi

Description
===========

Note that, instead, the image (Cremona), of a
standard rational map (Cremona), is the defining ideal of the
image (this is done mainly for efficiency reasons).

+-----------------------------------------------------------------------------+
|i1 : ZZ/65521[x_0..x_4];                                                     |
+-----------------------------------------------------------------------------+
|i2 : f = rationalMap {x_2^2-x_1*x_3, x_1*x_2-x_0*x_3, x_1^2-x_0*x_2, x_0*x_4,|
|                                                                             |
|o2 : RationalMap (quadratic rational map from PP^4 to PP^7)                  |
|-----------------------------------------------------------------------------|
|x_1*x_4, x_2*x_4, x_3*x_4, x_4^2};                                           |
+-----------------------------------------------------------------------------+
|i3 : g = rationalMap {-x_3^2+x_2*x_4, 2*x_2*x_3-2*x_1*x_4, -3*x_2^2+2*x_1*x_3|
|                                                                             |
|o3 : RationalMap (quadratic rational map from PP^4 to PP^4)                  |
|-----------------------------------------------------------------------------|
|+x_0*x_4, 2*x_1*x_2-2*x_0*x_3, -x_1^2+x_0*x_2};                              |
+-----------------------------------------------------------------------------+
|i4 : Phi = rationalMap {f,g};                                                |
|                                                                             |
|o4 : MultirationalMap (rational map from PP^4 to PP^7 x PP^4)                |
+-----------------------------------------------------------------------------+
|i5 : time Z = image Phi;                                                     |
| -- used 0.139807s (cpu); 0.139613s (thread); 0s (gc)                        |
|                                                                             |
|o5 : ProjectiveVariety, 4-dimensional subvariety of PP^7 x PP^4              |
+-----------------------------------------------------------------------------+
|i6 : dim Z, degree Z, degrees Z                                              |
|                                                                             |
|o6 = (4, 151, {({1, 1}, 4), ({1, 2}, 3), ({2, 0}, 5), ({2, 1}, 13)})         |
|                                                                             |
|o6 : Sequence                                                                |
+-----------------------------------------------------------------------------+

Alternatively, the calculation can be performed using the Segre embedding as
follows:

+-----------------------------------------------------------------------------+
|i7 : time Z' = projectiveVariety (map segre target Phi) image(segre          |
| -- used 7.08198s (cpu); 3.68452s (thread); 0s (gc)                          |
|                                                                             |
|o7 : ProjectiveVariety, 4-dimensional subvariety of PP^7 x PP^4              |
|-----------------------------------------------------------------------------|
|Phi,"F4");                                                                   |
+-----------------------------------------------------------------------------+
|i8 : assert(Z == Z')                                                         |
+-----------------------------------------------------------------------------+

See also
========

  * MultirationalMap MultiprojectiveVariety
    -- direct image via a multi-rational map
  * image(RationalMap) (Cremona) -- closure
    of the image of a rational map
  * segre(MultirationalMap) -- the
    composition of a multi-rational map with the Segre embedding of the target

Ways to use this method:
========================

  * image(MultirationalMap) -- image of a
    multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3049:0.

inverse(MultirationalMap) -- inverse of a birational map
********************************************************

  * Function: inverse (Macaulay2Doc),
  * Usage:
        inverse Phi
        Phi^-1
        inverse(Phi,Verify=>true)
        inverse(Phi,Verify=>false)
  * Inputs:
      * Phi, a multi-rational map, a birational map
  * Outputs:
      * a multi-rational map, the inverse map of Phi

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 == See 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.066059s (cpu); 0.0654771s (thread); 0s (gc)                       |
|                                                                             |
|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.174169s (cpu); 0.123943s (thread); 0s (gc)                        |
|                                                                             |
|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.484984s (cpu); 0.394851s (thread); 0s (gc)                        |
|                                                                             |
|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 (see https://arxiv.org/abs/2101.04503 ).

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
========

  * graph(MultirationalMap) -- the graph of
    a multi-rational map
  * MultirationalMap * MultirationalMap
    -- composition of multi-rational maps
  * MultirationalMap == MultirationalMap
    -- equality of multi-rational maps
  * degree(MultirationalMap) -- degree of
    a multi-rational map
  * image(MultirationalMap) -- image of a
    multi-rational map
  * inverse(RationalMap) (Cremona) -- inverse
    of a birational map
  * inverse2 -- inverse of a birational map using a faster
    algorithm for a special class of maps

Ways to use this method:
========================

  * inverse(MultirationalMap) -- inverse
    of a birational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3340:0.

inverse2 -- inverse of a birational map using a faster algorithm for a special class of maps
********************************************************************************************

  * Usage:
        inverse2 Phi
        inverse2(Phi,Verify=>true)
        inverse2(Phi,Verify=>false)
  * Inputs:
      * Phi, a multi-rational map, a birational map of
        so-called multi-linear type
  * Outputs:
      * a multi-rational map, the inverse map of Phi

Description
===========

This assumes that the graph, of the input
map Phi is defined by a simplified system of equations, which may not be true.
If the option Verify is set to true, which is the default choice, then it is
verified that the left and right composition of Phi with the returned map is
the identity, throwing an error if this is not the case.

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/10000019;                                                        |
+-----------------------------------------------------------------------------+
|i2 : -- map defined by the cubics through the secant variety to the rational |
|     Phi = multirationalMap rationalMap(ring PP_K^6,ring GG_K(2,4),gens ideal|
|                                                                             |
|o2 : MultirationalMap (rational map from PP^6 to GG(2,4))                    |
|-----------------------------------------------------------------------------|
|normal curve of degree 6                                                     |
| PP_K([6],2));                                                               |
+-----------------------------------------------------------------------------+
|i3 : time Psi = inverse2 Phi;                                                |
| -- used 0.439474s (cpu); 0.392572s (thread); 0s (gc)                        |
|                                                                             |
|o3 : MultirationalMap (birational map from GG(2,4) to PP^6)                  |
+-----------------------------------------------------------------------------+
|i4 : assert(Phi * Psi == 1)                                                  |
+-----------------------------------------------------------------------------+
|i5 : Phi' = Phi || Phi;                                                      |
|                                                                             |
|o5 : MultirationalMap (rational map from PP^6 x PP^6 to GG(2,4) x GG(2,4))   |
+-----------------------------------------------------------------------------+
|i6 : time Psi' = inverse2 Phi';                                              |
| -- used 1.75979s (cpu); 1.43137s (thread); 0s (gc)                          |
|                                                                             |
|o6 : MultirationalMap (birational map from GG(2,4) x GG(2,4) to PP^6 x PP^6) |
+-----------------------------------------------------------------------------+
|i7 : assert(Phi' * Psi' == 1)                                                |
+-----------------------------------------------------------------------------+

See also
========

  * inverse(MultirationalMap) -- inverse
    of a birational map
  * MultirationalMap <==> MultirationalMap
    -- equality of multi-rational maps with checks on
    internal data

Ways to use inverse2:
=====================

  * "inverse2(MultirationalMap)"

For the programmer
==================

The object inverse2, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3360:0.

isIsomorphism(MultirationalMap) -- whether a birational map is an isomorphism
*****************************************************************************

  * Function: isIsomorphism (Macaulay2Doc),
  * Usage:
        isIsomorphism Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether Phi is an
        isomorphism

Description
===========

+-----------------------------------------------------------------------------+
|i1 : -- map defined by the quadrics through a twisted cubic curve            |
|     ZZ/33331[a..d]; f = rationalMap {c^2-b*d,b*c-a*d,b^2-a*c};              |
|                                                                             |
|o2 : RationalMap (quadratic rational map from PP^3 to PP^2)                  |
+-----------------------------------------------------------------------------+
|i3 : Phi = rationalMap {f,f};                                                |
|                                                                             |
|o3 : MultirationalMap (rational map from PP^3 to PP^2 x PP^2)                |
+-----------------------------------------------------------------------------+
|i4 : time isIsomorphism Phi                                                  |
| -- used 0.000658408s (cpu); 9.668e-06s (thread); 0s (gc)                    |
|                                                                             |
|o4 = false                                                                   |
+-----------------------------------------------------------------------------+
|i5 : Psi = first graph Phi;                                                  |
|                                                                             |
|o5 : MultirationalMap (birational map from threefold in PP^3 x PP^2 x PP^2 to|
|-----------------------------------------------------------------------------|
|PP^3)                                                                        |
+-----------------------------------------------------------------------------+
|i6 : time isIsomorphism Psi                                                  |
| -- used 0.322583s (cpu); 0.222514s (thread); 0s (gc)                        |
|                                                                             |
|o6 = false                                                                   |
+-----------------------------------------------------------------------------+
|i7 : Eta = first graph Psi;                                                  |
|                                                                             |
|o7 : MultirationalMap (birational map from threefold in PP^3 x PP^2 x PP^2 x |
|-----------------------------------------------------------------------------|
|PP^3 to threefold in PP^3 x PP^2 x PP^2)                                     |
+-----------------------------------------------------------------------------+
|i8 : time isIsomorphism Eta                                                  |
| -- used 1.51624s (cpu); 1.05663s (thread); 0s (gc)                          |
|                                                                             |
|o8 = true                                                                    |
+-----------------------------------------------------------------------------+
|i9 : assert(o8 and (not o6) and (not o4))                                    |
+-----------------------------------------------------------------------------+

See also
========

  * inverse(MultirationalMap) -- inverse
    of a birational map
  * isMorphism(MultirationalMap), --
    whether a multi-rational map is a morphism

Ways to use this method:
========================

  * isIsomorphism(MultirationalMap),
    -- whether a birational map is an isomorphism
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3378:0.

isMember(MultirationalMap,RAT) -- test membership in a hom-set of rational maps
*******************************************************************************

  * Function: isMember (Macaulay2Doc),
  * Usage:
        member(Phi,H)
  * Inputs:
      * Phi, a multi-rational map,
      * H, a hom-set,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether Phi is in the
        hom-set H

Description
===========

+-------------------------------------------------------------+
|i1 : s = segreEmbedding PP_(ZZ/13)^{1,2};                    |
|                                                             |
|o1 : MultirationalMap (rational map from PP^1 x PP^2 to PP^5)|
+-------------------------------------------------------------+
|i2 : (X,Y) = (source s,target s);                            |
+-------------------------------------------------------------+
|i3 : member(s,Hom(X,Y))                                      |
|                                                             |
|o3 = true                                                    |
+-------------------------------------------------------------+
|i4 : member(s,Hom(X ** X,Y))                                 |
|                                                             |
|o4 = false                                                   |
+-------------------------------------------------------------+
|i5 : member(s,Hom(X,))                                       |
|                                                             |
|o5 = true                                                    |
+-------------------------------------------------------------+
|i6 : member(s,Hom(,))                                        |
|                                                             |
|o6 = true                                                    |
+-------------------------------------------------------------+
|i7 : assert(o3 and (not o4) and o5 and o6)                   |
+-------------------------------------------------------------+

See also
========

  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties

Ways to use this method:
========================

  * isMember(MultirationalMap,RAT),
    -- test membership in a hom-set of rational maps
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4150:0.

isMorphism(MultirationalMap) -- whether a multi-rational map is a morphism
**************************************************************************

  * Function: isMorphism (Cremona),
  * Usage:
        isMorphism Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether Phi is a
        morphism (i.e., everywhere defined)

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/300007[a..e], f = first graph rationalMap                            |
|-----------------------------------------------------------------------------|
|ideal(c^2-b*d,b*c-a*d,b^2-a*c,e), g = rationalMap submatrix(matrix f,{0..2});|
+-----------------------------------------------------------------------------+
|i2 : Phi = rationalMap {f,g};                                                |
|                                                                             |
|o2 : MultirationalMap (rational map from 4-dimensional subvariety of PP^4 x  |
|-----------------------------------------------------------------------------|
|PP^7 to PP^4 x PP^2)                                                         |
+-----------------------------------------------------------------------------+
|i3 : time isMorphism Phi                                                     |
| -- used 0.388349s (cpu); 0.308538s (thread); 0s (gc)                        |
|                                                                             |
|o3 = false                                                                   |
+-----------------------------------------------------------------------------+
|i4 : time Psi = first graph Phi;                                             |
| -- used 0.0787749s (cpu); 0.0789888s (thread); 0s (gc)                      |
|                                                                             |
|o4 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x|
|-----------------------------------------------------------------------------|
|PP^7 x PP^4 x PP^2 to 4-dimensional subvariety of PP^4 x PP^7)               |
+-----------------------------------------------------------------------------+
|i5 : time isMorphism Psi                                                     |
| -- used 4.59857s (cpu); 3.93929s (thread); 0s (gc)                          |
|                                                                             |
|o5 = true                                                                    |
+-----------------------------------------------------------------------------+
|i6 : assert((not o3) and o5)                                                 |
+-----------------------------------------------------------------------------+

See also
========

  * isIsomorphism(MultirationalMap),
    -- whether a birational map is an isomorphism
  * isMorphism(RationalMap) (Cremona) -- whether a rational
    map is a morphism

Ways to use this method:
========================

  * isMorphism(MultirationalMap), --
    whether a multi-rational map is a morphism
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3270:0.

isSubset(MultiprojectiveVariety,MultiprojectiveVariety) -- whether one variety is a subvariety of another
*********************************************************************************************************

  * Function: isSubset (Macaulay2Doc),
  * Usage:
        isSubset(X,Y)
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether X is contained
        in Y

Description
===========

+---------------------------------------+
|i1 : Y = PP_(ZZ/33331)^(2,2);          |
|                                       |
|o1 : ProjectiveVariety, surface in PP^5|
+---------------------------------------+
|i2 : X = point Y;                      |
|                                       |
|o2 : ProjectiveVariety, a point in PP^5|
+---------------------------------------+
|i3 : isSubset(X,Y)                     |
|                                       |
|o3 = true                              |
+---------------------------------------+
|i4 : isSubset(Y,X)                     |
|                                       |
|o4 = false                             |
+---------------------------------------+

Ways to use this method:
========================

  * isSubset(MultiprojectiveVariety,MultiprojectiveVariety)
    -- whether
    one variety is a subvariety of another
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2682:0.

isWellDefined(MultirationalMap) -- whether a multi-rational map is well-defined
*******************************************************************************

  * Function: isWellDefined (Macaulay2Doc),
  * Usage:
        isWellDefined Phi
  * Inputs:
      * a multi-rational map,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether Phi is a
        well-defined map

Description
===========

+-----------------------------------------------------------+
|i1 : f = rationalMap ideal PP_(ZZ/65521)^(1,4);            |
|                                                           |
|o1 : RationalMap (quadratic rational map from PP^4 to PP^5)|
+-----------------------------------------------------------+
|i2 : Phi = rationalMap {f}                                 |
|                                                           |
|o2 = Phi                                                   |
|                                                           |
|o2 : MultirationalMap (rational map from PP^4 to PP^5)     |
+-----------------------------------------------------------+
|i3 : isWellDefined Phi                                     |
|                                                           |
|o3 = true                                                  |
+-----------------------------------------------------------+
|i4 : Y = image Phi                                         |
|                                                           |
|o4 = Y                                                     |
|                                                           |
|o4 : ProjectiveVariety, hypersurface in PP^5               |
+-----------------------------------------------------------+
|i5 : Psi = rationalMap({f},Y)                              |
|                                                           |
|o5 = Psi                                                   |
|                                                           |
|o5 : MultirationalMap (rational map from PP^4 to Y)        |
+-----------------------------------------------------------+
|i6 : isWellDefined Psi                                     |
|                                                           |
|o6 = true                                                  |
+-----------------------------------------------------------+
|i7 : p = point Y;                                          |
|                                                           |
|o7 : ProjectiveVariety, a point in PP^5                    |
+-----------------------------------------------------------+
|i8 : Eta = rationalMap({f},p);                             |
|                                                           |
|o8 : MultirationalMap (rational map from PP^4 to p)        |
+-----------------------------------------------------------+
|i9 : isWellDefined Eta                                     |
|                                                           |
|o9 = false                                                 |
+-----------------------------------------------------------+

See also
========

  * check(MultirationalMap) -- check that a
    multi-rational map is well-defined

Ways to use this method:
========================

  * isWellDefined(MultirationalMap),
    -- whether a multi-rational map is well-defined
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2965:0.

linearlyNormalEmbedding -- get the linearly normal embedding
************************************************************

  * Usage:
        linearlyNormalEmbedding X
  * Inputs:
      * X, an embedded projective variety,
  * Outputs:
      * an isomorphism, from X to a linearly normal
        variety, whose inverse is a linear projection

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/333331;                                                          |
+-----------------------------------------------------------------------------+
|i2 : X = PP_K^(1,7); -- rational normal curve of degree 7                    |
|                                                                             |
|o2 : ProjectiveVariety, curve in PP^7                                        |
+-----------------------------------------------------------------------------+
|i3 : time f = linearlyNormalEmbedding X;                                     |
| -- used 0.0820569s (cpu); 0.048486s (thread); 0s (gc)                       |
|                                                                             |
|o3 : MultirationalMap (automorphism of X)                                    |
+-----------------------------------------------------------------------------+
|i4 : Y = (rationalMap {for i to 3 list random(1,ring ambient X)}) X; -- an   |
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^3                                        |
|-----------------------------------------------------------------------------|
|isomorphic projection of X in PP^3                                           |
+-----------------------------------------------------------------------------+
|i5 : time g = linearlyNormalEmbedding Y;                                     |
| -- used 0.723805s (cpu); 0.588706s (thread); 0s (gc)                        |
|                                                                             |
|o5 : MultirationalMap (birational map from Y to curve in PP^7)               |
+-----------------------------------------------------------------------------+
|i6 : assert(isIsomorphism g)                                                 |
+-----------------------------------------------------------------------------+
|i7 : describe g                                                              |
|                                                                             |
|o7 = multi-rational map consisting of one single rational map                |
|     source variety: curve in PP^3 cut out by 6 hypersurfaces of degree 4    |
|     target variety: curve in PP^7 cut out by 21 hypersurfaces of degree 2   |
|     base locus: empty subscheme of PP^3                                     |
|     dominance: true                                                         |
|     multidegree: {7, 7}                                                     |
|     degree: 1                                                               |
|     degree sequence (map 1/1): [3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]|
|     coefficient ring: K                                                     |
+-----------------------------------------------------------------------------+

Caveat
======

This is an experimental function.

Ways to use linearlyNormalEmbedding:
====================================

  * "linearlyNormalEmbedding(EmbeddedProjectiveVariety)"

For the programmer
==================

The object linearlyNormalEmbedding, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3777:0.

linearSpan -- the linear span of an embedded projective variety
***************************************************************

  * Usage:
        linearSpan X
  * Inputs:
      * X, an embedded projective variety,
        (resp., a list of embedded projective varieties)
  * Outputs:
      * an embedded projective variety, the
        linear span of X (resp., of the union, of the members of X)

Description
===========

+-----------------------------------------------------------------------------+
|i1 : P = PP_(ZZ/333331)^7;                                                   |
|                                                                             |
|o1 : ProjectiveVariety, PP^7                                                 |
+-----------------------------------------------------------------------------+
|i2 : S = apply(3,i -> point P)                                               |
|                                                                             |
|o2 = {point of coordinates [8820, -164513, 57316, -59809, -48193, -56352,    |
|     ------------------------------------------------------------------------|
|     -4010, 1], point of coordinates [52657, 80278, 91192, -134371, 89048,   |
|     ------------------------------------------------------------------------|
|     94196, 149823, 1], point of coordinates [57356, -101469, 57168, 19678,  |
|     ------------------------------------------------------------------------|
|     -41460, -89441, 75395, 1]}                                              |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : L = linearSpan ⋃ S;                                                     |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^7                                      |
+-----------------------------------------------------------------------------+
|i4 : assert(L == linearSpan S)                                               |
+-----------------------------------------------------------------------------+
|i5 : assert(dim L == 2 and degree L == 1)                                    |
+-----------------------------------------------------------------------------+

Ways to use linearSpan:
=======================

  * "linearSpan(EmbeddedProjectiveVariety)"
  * "linearSpan(List)"

For the programmer
==================

The object linearSpan, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3789:0.

multidegree(MultiprojectiveVariety) -- the multidegree of the variety
*********************************************************************

  * Function: multidegree (Macaulay2Doc),
  * Usage:
        multidegree X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * the multi-degree of the defining ideal of $X$

Description
===========

+---------------------------------------------------------+
|i1 : X = random({{1,1},{2,1}},point PP_(ZZ/33331)^{2,2});|
|                                                         |
|o1 : ProjectiveVariety, surface in PP^2 x PP^2           |
+---------------------------------------------------------+
|i2 : multidegree X                                       |
|                                                         |
|       2            2                                    |
|o2 = 2T  + 3T T  + T                                     |
|       0     0 1    1                                    |
|                                                         |
|o2 : ZZ[T ..T ]                                          |
|         0   1                                           |
+---------------------------------------------------------+

See also
========

  * degree(MultiprojectiveVariety),
    -- the degree of the variety
  * multidegree(Ideal) (Macaulay2Doc) -- multidegree

Ways to use this method:
========================

  * multidegree(MultiprojectiveVariety)
    -- the multidegree of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2619:0.

multidegree(MultirationalMap) -- projective degrees of a multi-rational map
***************************************************************************

  * Function: multidegree (Macaulay2Doc),
  * Usage:
        multidegree Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a list (Macaulay2Doc), the list of projective degrees of
        Phi

Description
===========

This calculates the multidegree,
of the graph, and converts it to the list of
projective degrees.

+-----------------------------------------------------------------------------+
|i1 : ZZ/300007[x_0..x_3], f = rationalMap {x_2^2-x_1*x_3, x_1*x_2-x_0*x_3,   |
|-----------------------------------------------------------------------------|
|x_1^2-x_0*x_2}, g = rationalMap {x_1^2-x_0*x_2, x_0*x_3, x_1*x_3, x_2*x_3,   |
|-----------------------------------------------------------------------------|
|x_3^2};                                                                      |
+-----------------------------------------------------------------------------+
|i2 : Phi = last graph rationalMap {f,g};                                     |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^3 x PP^2 x PP^4 to  |
|-----------------------------------------------------------------------------|
|PP^2 x PP^4)                                                                 |
+-----------------------------------------------------------------------------+
|i3 : time multidegree Phi                                                    |
| -- used 0.541503s (cpu); 0.448072s (thread); 0s (gc)                        |
|                                                                             |
|o3 = {66, 46, 31, 20}                                                        |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+
|i4 : (degree source Phi,degree image Phi)                                    |
|                                                                             |
|o4 = (66, 20)                                                                |
|                                                                             |
|o4 : Sequence                                                                |
+-----------------------------------------------------------------------------+

References
==========

ArXiv preprint: Computations with rational maps between multi-projective
varieties (see https://arxiv.org/abs/2101.04503 ).

See also
========

  * multidegree(ZZ,MultirationalMap)
    -- i-th projective degree of a
    multi-rational map using a probabilistic approach
  * multidegree(RationalMap) (Cremona), --
    projective degrees of a rational map
  * degree(MultirationalMap) -- degree of
    a multi-rational map
  * projectiveDegrees(RationalMap) (Cremona)
    -- projective degrees of a
    rational map

Ways to use this method:
========================

  * multidegree(MultirationalMap), --
    projective degrees of a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3220:0.

multidegree(ZZ,MultirationalMap) -- i-th projective degree of a multi-rational map using a probabilistic approach
*****************************************************************************************************************

  * Function: multidegree (Macaulay2Doc),
  * Usage:
        multidegree(i,Phi)
  * Inputs:
      * i, an integer (Macaulay2Doc),
      * Phi, a multi-rational map,
  * Outputs:
      * an integer (Macaulay2Doc), the $i$-th projective degree of
        Phi

Description
===========

This is calculated by means of the inverse image of an appropriate random
subvariety of the target.

+-----------------------------------------------------------------------------+
|i1 : Phi = last graph rationalMap PP_(ZZ/300007)^(1,4);                      |
|                                                                             |
|o1 : MultirationalMap (rational map from 4-dimensional subvariety of PP^4 x  |
|-----------------------------------------------------------------------------|
|PP^5 to PP^5)                                                                |
+-----------------------------------------------------------------------------+
|i2 : for i in {4,3,2,1,0} list time multidegree(i,Phi)                       |
| -- used 0.00200076s (cpu); 0.00159817s (thread); 0s (gc)                    |
| -- used 0.219872s (cpu); 0.188105s (thread); 0s (gc)                        |
| -- used 0.247427s (cpu); 0.218018s (thread); 0s (gc)                        |
| -- used 0.228301s (cpu); 0.184231s (thread); 0s (gc)                        |
| -- used 0.188982s (cpu); 0.145845s (thread); 0s (gc)                        |
|                                                                             |
|o2 = {51, 28, 14, 6, 2}                                                      |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : time assert(oo == multidegree Phi)                                      |
| -- used 0.14136s (cpu); 0.0944657s (thread); 0s (gc)                        |
+-----------------------------------------------------------------------------+

References
==========

ArXiv preprint: Computations with rational maps between multi-projective
varieties (see https://arxiv.org/abs/2101.04503 ).

See also
========

  * multidegree(MultirationalMap), --
    projective degrees of a multi-rational map
  * projectiveDegrees(RationalMap) (Cremona)
    -- projective degrees of a
    rational map
  * degree(MultirationalMap,Option)
    -- degree of a multi-rational map
    using a probabilistic approach
  * MultirationalMap ^*,
    -- inverse image via a multi-rational map

Ways to use this method:
========================

  * multidegree(ZZ,MultirationalMap)
    -- i-th projective degree of a
    multi-rational map using a probabilistic approach
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3203:0.

MultiprojectiveVariety % MultiprojectiveVariety -- subvariety of a projective variety
*************************************************************************************

  * Operator: % (Macaulay2Doc),
  * Usage:
        X % Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety, which
        contains $X$
  * Outputs:
      * a multi-projective variety, the same
        variety $X$ thought of as a subvariety of $Y$

Description
===========

+--------------------------------------------------------------------------+
|i1 : Y = GG(ZZ/33331,1,4);                                                |
|                                                                          |
|o1 : ProjectiveVariety, GG(1,4)                                           |
+--------------------------------------------------------------------------+
|i2 : p = point Y                                                          |
|                                                                          |
|o2 = p                                                                    |
|                                                                          |
|o2 : ProjectiveVariety, a point in PP^9                                   |
+--------------------------------------------------------------------------+
|i3 : p % Y                                                                |
|                                                                          |
|o3 = p                                                                    |
|                                                                          |
|o3 : ProjectiveVariety, a point in PP^9 (subvariety of codimension 6 in Y)|
+--------------------------------------------------------------------------+
|i4 : Fano p                                                               |
|                                                                          |
|o4 = curve in PP^4 cut out by 3 hypersurfaces of degree 1                 |
|                                                                          |
|o4 : ProjectiveVariety, curve in PP^4                                     |
+--------------------------------------------------------------------------+

See also
========

  * ambientVariety -- the ambient variety of a
    projective subvariety
  * Fano(EmbeddedProjectiveVariety)
    -- Fano scheme of a projective
    variety

Ways to use this method:
========================

  * MultiprojectiveVariety % MultiprojectiveVariety
    -- subvariety of a
    projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3962:0.

MultiprojectiveVariety * MultiprojectiveVariety -- intersection of two multi-projective varieties
*************************************************************************************************

  * Operator: * (Macaulay2Doc),
  * Usage:
        X * Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the
        intersection of X and Y, that is, the projective variety defined by the
        sum of the corresponding ideals

Description
===========

+-----------------------------------------------------------------------------+
|i1 : O = 0_(PP_(ZZ/101)^{2,1});                                              |
|                                                                             |
|o1 : ProjectiveVariety, empty subscheme of PP^2 x PP^1                       |
+-----------------------------------------------------------------------------+
|i2 : X = random({2,1},O);                                                    |
|                                                                             |
|o2 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i3 : Y = random({1,1},O);                                                    |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i4 : X * Y                                                                   |
|                                                                             |
|o4 = curve in PP^2 x PP^1 cut out by 3 hypersurfaces of multi-degrees (1,1)^1|
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^2 x PP^1                                 |
|-----------------------------------------------------------------------------|
|(2,1)^1 (3,0)^1                                                              |
+-----------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety + MultiprojectiveVariety
    -- union of two
    multi-projective varieties
  * Ideal + Ideal (Macaulay2Doc) -- sum of ideals
  * ⋂(List) -- intersection of multi-projective varieties

Ways to use this method:
========================

  * MultiprojectiveVariety * MultiprojectiveVariety
    -- intersection of two
    multi-projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2736:0.

MultiprojectiveVariety ** MultiprojectiveVariety -- product of two multi-projective varieties
*********************************************************************************************

  * Operator: ** (Macaulay2Doc),
  * Usage:
        X ** Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the product
        of X and Y

Description
===========

+-----------------------------------------------------------------------------+
|i1 : PP(ZZ/101);                                                             |
|-- the ring ZZ/101 is set to be the default coefficient ring; now PP may be  |
|-----------------------------------------------------------------------------|
|used as an abbreviation for PP_ZZ/101                                        |
+-----------------------------------------------------------------------------+
|i2 : X = projectiveVariety ideal(random({2,1},ring                           |
|                                                                             |
|o2 : ProjectiveVariety, curve in PP^2 x PP^1                                 |
|-----------------------------------------------------------------------------|
|PP^{2,1}),random({1,1},ring PP^{2,1}));                                      |
+-----------------------------------------------------------------------------+
|i3 : Y = projectiveVariety ideal random({1,1,1},ring PP^{1,2,1});            |
|                                                                             |
|o3 : ProjectiveVariety, hypersurface in PP^1 x PP^2 x PP^1                   |
+-----------------------------------------------------------------------------+
|i4 : X ** Y                                                                  |
|                                                                             |
|o4 = 4-dimensional subvariety of PP^2 x PP^1 x PP^1 x PP^2 x PP^1 cut out by |
|                                                                             |
|o4 : ProjectiveVariety, X x Y                                                |
|-----------------------------------------------------------------------------|
|4 hypersurfaces of multi-degrees (0,0,1,1,1)^1 (1,1,0,0,0)^1 (2,1,0,0,0)^1   |
|-----------------------------------------------------------------------------|
|(3,0,0,0,0)^1                                                                |
+-----------------------------------------------------------------------------+

See also
========

  * fiberProduct -- fiber product of multi-projective
    varieties
  * MultiprojectiveVariety ^ ZZ -- power of
    a multi-projective variety
  * ∏(List) -- product of multi-projective varieties

Ways to use this method:
========================

  * MultiprojectiveVariety ** MultiprojectiveVariety
    -- product of two
    multi-projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2696:0.

MultiprojectiveVariety ** Ring -- change the coefficient ring of a multi-projective variety
*******************************************************************************************

  * Operator: ** (Macaulay2Doc),
  * Usage:
        X ** K
  * Inputs:
      * X, a multi-projective variety, defined
        over a coefficient ring F
      * K, a ring (Macaulay2Doc), the new coefficient ring (which
        must be a field)
  * Outputs:
      * a multi-projective variety, a
        multi-projective variety defined over K, obtained by coercing the
        coefficients of the multi-forms defining X into K

Description
===========

It is necessary that all multi-forms in the old coefficient ring F can be
automatically coerced into the new coefficient ring K.

+-----------------------------------------------------------------------------+
|i1 : use ring PP_QQ^{2,3};                                                   |
+-----------------------------------------------------------------------------+
|i2 : X = projectiveVariety ideal(x1_2^2-x1_1*x1_3,x1_1*x1_2-x1_0*x1_3,x1_1^2-|
|                                                                             |
|o2 : ProjectiveVariety, surface in PP^2 x PP^3                               |
|-----------------------------------------------------------------------------|
|x1_0*x1_2,x0_1^2-x0_0*x0_2);                                                 |
+-----------------------------------------------------------------------------+
|i3 : ideal X                                                                 |
|                                                                             |
|              2                              2             2                 |
|o3 = ideal (x1  - x1 x1 , x1 x1  - x1 x1 , x1  - x1 x1 , x0  - x0 x0 )       |
|              2     1  3    1  2     0  3    1     0  2    1     0  2        |
|                                                                             |
|o3 : Ideal of QQ[x0 ..x0 , x1 ..x1 ]                                         |
|                   0    2    0    3                                          |
+-----------------------------------------------------------------------------+
|i4 : K = ZZ/65521;                                                           |
+-----------------------------------------------------------------------------+
|i5 : X' = X ** K;                                                            |
|                                                                             |
|o5 : ProjectiveVariety, surface in PP^2 x PP^3                               |
+-----------------------------------------------------------------------------+
|i6 : ideal X'                                                                |
|                                                                             |
|              2                              2             2                 |
|o6 = ideal (x1  - x1 x1 , x1 x1  - x1 x1 , x1  - x1 x1 , x0  - x0 x0 )       |
|              2     1  3    1  2     0  3    1     0  2    1     0  2        |
|                                                                             |
|o6 : Ideal of K[x0 ..x0 , x1 ..x1 ]                                          |
|                  0    2    0    3                                           |
+-----------------------------------------------------------------------------+

See also
========

  * coefficientRing(MultiprojectiveVariety)
    -- the coefficient ring of the
    variety
  * MultirationalMap ** Ring -- change the
    coefficient ring of a multi-rational map

Ways to use this method:
========================

  * MultiprojectiveVariety ** Ring,
    -- change the coefficient ring of a multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3697:0.

MultiprojectiveVariety + MultiprojectiveVariety -- union of two multi-projective varieties
******************************************************************************************

  * Operator: + (Macaulay2Doc),
  * Usage:
        X + Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the union of
        X and Y, that is, the projective variety defined by the intersection of
        the corresponding ideals

Description
===========

+------------------------------------------------------+
|i1 : O = 0_(PP_(ZZ/101)^{2,1});                       |
|                                                      |
|o1 : ProjectiveVariety, empty subscheme of PP^2 x PP^1|
+------------------------------------------------------+
|i2 : X = random({2,1},O);                             |
|                                                      |
|o2 : ProjectiveVariety, surface in PP^2 x PP^1        |
+------------------------------------------------------+
|i3 : Y = random({1,1},O);                             |
|                                                      |
|o3 : ProjectiveVariety, surface in PP^2 x PP^1        |
+------------------------------------------------------+
|i4 : Z = X + Y;                                       |
|                                                      |
|o4 : ProjectiveVariety, surface in PP^2 x PP^1        |
+------------------------------------------------------+
|i5 : assert(Z \ X == Y and Z \ Y == X)                |
+------------------------------------------------------+

See also
========

  * MultiprojectiveVariety \ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
  * MultiprojectiveVariety * MultiprojectiveVariety
    -- intersection of two
    multi-projective varieties
  * intersect(List) (Macaulay2Doc) -- compute an intersection
  * ⋃(List) -- union of multi-projective varieties

Ways to use this method:
========================

  * MultiprojectiveVariety + MultiprojectiveVariety
    -- union of two
    multi-projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2764:0.

MultiprojectiveVariety == MultiprojectiveVariety -- equality of multi-projective varieties
******************************************************************************************

  * Operator: == (Macaulay2Doc),
  * Usage:
        X == Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether X and Y are the
        same variety

Description
===========

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/101[x_0,x_1,x_2,y_0,y_1,Degrees=>{3:{1,0},2:{0,1}}];             |
+-----------------------------------------------------------------------------+
|i2 : (I,J) = (ideal(y_0-26*y_1,x_0*y_1+36*x_1*y_1-40*x_2*y_1),ideal(x_0*y_1+ |
|-----------------------------------------------------------------------------|
|36*x_1*y_1-40*x_2*y_1,x_2*y_0-26*x_2*y_1,x_1*y_0-26*x_1*y_1,x_0*y_0+27*x_1*y_|
|-----------------------------------------------------------------------------|
|1-30*x_2*y_1));                                                              |
+-----------------------------------------------------------------------------+
|i3 : I == J                                                                  |
|                                                                             |
|o3 = false                                                                   |
+-----------------------------------------------------------------------------+
|i4 : X = projectiveVariety I                                                 |
|                                                                             |
|o4 = X                                                                       |
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^2 x PP^1                                 |
+-----------------------------------------------------------------------------+
|i5 : Y = projectiveVariety J                                                 |
|                                                                             |
|o5 = Y                                                                       |
|                                                                             |
|o5 : ProjectiveVariety, curve in PP^2 x PP^1                                 |
+-----------------------------------------------------------------------------+
|i6 : X == Y                                                                  |
|                                                                             |
|o6 = true                                                                    |
+-----------------------------------------------------------------------------+

Ways to use this method:
========================

  * MultiprojectiveVariety == MultiprojectiveVariety
    -- equality of
    multi-projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2669:0.

MultiprojectiveVariety \ MultiprojectiveVariety -- difference of multi-projective varieties
*******************************************************************************************

  * Operator: \ (Macaulay2Doc),
  * Usage:
        X \ Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the variety
        defined by the colon ideal ideal X : ideal Y

Description
===========

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/101[x_0,x_1,x_2,y_0,y_1,Degrees=>{3:{1,0},2:{0,1}}];             |
+-----------------------------------------------------------------------------+
|i2 : X = projectiveVariety ideal(x_0^3*y_0+2*x_0^2*x_1*y_0+2*x_0*x_1^2*y_0+x_|
|                                                                             |
|o2 : ProjectiveVariety, surface in PP^2 x PP^1                               |
|-----------------------------------------------------------------------------|
|1^3*y_0+2*x_0^2*x_2*y_0+3*x_0*x_1*x_2*y_0+2*x_1^2*x_2*y_0+2*x_0*x_2^2*y_0+2*x|
|-----------------------------------------------------------------------------|
|_1*x_2^2*y_0+x_2^3*y_0+x_0^3*y_1+2*x_0^2*x_1*y_1+2*x_0*x_1^2*y_1+x_1^3*y_1+2*|
|-----------------------------------------------------------------------------|
|x_0^2*x_2*y_1+3*x_0*x_1*x_2*y_1+2*x_1^2*x_2*y_1+2*x_0*x_2^2*y_1+2*x_1*x_2^2*y|
|-----------------------------------------------------------------------------|
|_1+x_2^3*y_1);                                                               |
+-----------------------------------------------------------------------------+
|i3 : Y = projectiveVariety ideal(x_0*y_0+x_1*y_0+x_2*y_0+x_0*y_1+x_1*y_1+x_2*|
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^2 x PP^1                               |
|-----------------------------------------------------------------------------|
|y_1);                                                                        |
+-----------------------------------------------------------------------------+
|i4 : Z = X \ Y;                                                              |
|                                                                             |
|o4 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i5 : assert(Z + Y == X and X \ Z == Y)                                       |
+-----------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety \\ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
  * MultiprojectiveVariety + MultiprojectiveVariety
    -- union of two
    multi-projective varieties
  * quotient(Ideal,Ideal) (missing documentation)

Ways to use this method:
========================

  * MultiprojectiveVariety \ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2790:0.

MultiprojectiveVariety \\ MultiprojectiveVariety -- difference of multi-projective varieties
********************************************************************************************

  * Operator: \\ (Macaulay2Doc),
  * Usage:
        X \\ Y
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the variety
        defined by the saturation ideal saturate(ideal X,ideal Y)

Description
===========

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/101[x_0,x_1,x_2,y_0,y_1,Degrees=>{3:{1,0},2:{0,1}}];             |
+-----------------------------------------------------------------------------+
|i2 : X = projectiveVariety ideal(x_0^3*y_0^2+2*x_0^2*x_1*y_0^2+2*x_0*x_1^2*y_|
|                                                                             |
|o2 : ProjectiveVariety, surface in PP^2 x PP^1                               |
|-----------------------------------------------------------------------------|
|0^2+x_1^3*y_0^2+2*x_0^2*x_2*y_0^2+3*x_0*x_1*x_2*y_0^2+2*x_1^2*x_2*y_0^2+2*x_0|
|-----------------------------------------------------------------------------|
|*x_2^2*y_0^2+2*x_1*x_2^2*y_0^2+x_2^3*y_0^2+2*x_0^3*y_0*y_1+4*x_0^2*x_1*y_0*y_|
|-----------------------------------------------------------------------------|
|1+4*x_0*x_1^2*y_0*y_1+2*x_1^3*y_0*y_1+4*x_0^2*x_2*y_0*y_1+6*x_0*x_1*x_2*y_0*y|
|-----------------------------------------------------------------------------|
|_1+4*x_1^2*x_2*y_0*y_1+4*x_0*x_2^2*y_0*y_1+4*x_1*x_2^2*y_0*y_1+2*x_2^3*y_0*y_|
|-----------------------------------------------------------------------------|
|1+x_0^3*y_1^2+2*x_0^2*x_1*y_1^2+2*x_0*x_1^2*y_1^2+x_1^3*y_1^2+2*x_0^2*x_2*y_1|
|-----------------------------------------------------------------------------|
|^2+3*x_0*x_1*x_2*y_1^2+2*x_1^2*x_2*y_1^2+2*x_0*x_2^2*y_1^2+2*x_1*x_2^2*y_1^2+|
|-----------------------------------------------------------------------------|
|x_2^3*y_1^2);                                                                |
+-----------------------------------------------------------------------------+
|i3 : Y = projectiveVariety ideal(x_0*y_0+x_1*y_0+x_2*y_0+x_0*y_1+x_1*y_1+x_2*|
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^2 x PP^1                               |
|-----------------------------------------------------------------------------|
|y_1);                                                                        |
+-----------------------------------------------------------------------------+
|i4 : Z = X \\ Y;                                                             |
|                                                                             |
|o4 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i5 : assert(Z == (X \ Y) \ Y)                                                |
+-----------------------------------------------------------------------------+

See also
========

  * MultiprojectiveVariety \ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
  * MultiprojectiveVariety + MultiprojectiveVariety
    -- union of two
    multi-projective varieties
  * quotient(Ideal,Ideal) (missing documentation)

Ways to use this method:
========================

  * MultiprojectiveVariety \\ MultiprojectiveVariety
    -- difference of
    multi-projective varieties
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2805:0.

MultiprojectiveVariety ^ ZZ -- power of a multi-projective variety
******************************************************************

  * Operator: ^ (Macaulay2Doc),
  * Usage:
        X^n
  * Inputs:
      * X, a multi-projective variety,
      * n, an integer (Macaulay2Doc),
  * Outputs:
      * a multi-projective variety, the product
        of $n$ copies of $X$

Description
===========

+-----------------------------------------+
|i1 : X = PP_(ZZ/33331)^(1,3);            |
|                                         |
|o1 : ProjectiveVariety, curve in PP^3    |
+-----------------------------------------+
|i2 : X^2;                                |
|                                         |
|o2 : ProjectiveVariety, X x X            |
+-----------------------------------------+
|i3 : X^3;                                |
|                                         |
|o3 : ProjectiveVariety, X x X x X        |
+-----------------------------------------+
|i4 : X^5;                                |
|                                         |
|o4 : ProjectiveVariety, X x X x X x X x X|
+-----------------------------------------+
|i5 : assert(X^3 == X^2 ** X)             |
+-----------------------------------------+
|i6 : assert(X^5 == X^3 ** X^2)           |
+-----------------------------------------+

See also
========

  * MultiprojectiveVariety ** MultiprojectiveVariety
    -- product of two
    multi-projective varieties

Ways to use this method:
========================

  * MultiprojectiveVariety ^ ZZ -- power of
    a multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2722:0.

MultirationalMap * MultirationalMap -- composition of multi-rational maps
*************************************************************************

  * Operator: * (Macaulay2Doc),
  * Usage:
        Phi * Psi
        compose(Phi,Psi)
  * Inputs:
      * Phi, a multi-rational map, $X \dashrightarrow
        Y$
      * Psi, a multi-rational map, $Y \dashrightarrow
        Z$
  * Outputs:
      * a multi-rational map, $X \dashrightarrow Z$,
        the composition of Phi and Psi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/65521[x_0..x_4];                                                     |
+-----------------------------------------------------------------------------+
|i2 : Psi = last graph rationalMap(projectiveVariety ideal(x_4,x_2^2-x_1*x_3,x|
|                                                                             |
|o2 : MultirationalMap (dominant rational map from 4-dimensional subvariety of|
|-----------------------------------------------------------------------------|
|_1*x_2-x_0*x_3,x_1^2-x_0*x_2),Dominant=>true);                               |
|                                                                             |
| PP^4 x PP^7 to 4-dimensional subvariety of PP^7)                            |
+-----------------------------------------------------------------------------+
|i3 : Phi = first graph Psi;                                                  |
|                                                                             |
|o3 : MultirationalMap (birational map from 4-dimensional subvariety of PP^4 x|
|-----------------------------------------------------------------------------|
|PP^7 x PP^7 to 4-dimensional subvariety of PP^4 x PP^7)                      |
+-----------------------------------------------------------------------------+
|i4 : Eta = Phi * Psi;                                                        |
|                                                                             |
|o4 : MultirationalMap (dominant rational map from 4-dimensional subvariety of|
|-----------------------------------------------------------------------------|
|PP^4 x PP^7 x PP^7 to 4-dimensional subvariety of PP^7)                      |
+-----------------------------------------------------------------------------+
|i5 : assert(Eta == last graph Psi);                                          |
+-----------------------------------------------------------------------------+

See also
========

  * RationalMap * RationalMap (Cremona), --
    composition of rational maps

Ways to use this method:
========================

  * MultirationalMap * MultirationalMap
    -- composition of multi-rational maps
  * "MultirationalMap * RationalMap"
  * "RationalMap * MultirationalMap"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3165:0.

MultirationalMap ** Ring -- change the coefficient ring of a multi-rational map
*******************************************************************************

  * Operator: ** (Macaulay2Doc),
  * Usage:
        Phi ** K
  * Inputs:
      * Phi, a multi-rational map, defined over a
        coefficient ring F
      * K, a ring (Macaulay2Doc), the new coefficient ring (which
        must be a field)
  * Outputs:
      * a multi-rational map, a multi-rational map
        defined over K, obtained by coercing the coefficients of the
        multi-forms defining Phi into K

Description
===========

It is necessary that all multi-forms in the old coefficient ring F can be
automatically coerced into the new coefficient ring K.

+-----------------------------------------------------------------------------+
|i1 : Phi = inverse first graph rationalMap PP_QQ^(2,2);                      |
|                                                                             |
|o1 : MultirationalMap (birational map from PP^5 to 5-dimensional subvariety  |
|-----------------------------------------------------------------------------|
|of PP^5 x PP^5)                                                              |
+-----------------------------------------------------------------------------+
|i2 : describe Phi                                                            |
|                                                                             |
|o2 = multi-rational map consisting of 2 rational maps                        |
|     source variety: PP^5                                                    |
|     target variety: 5-dimensional subvariety of PP^5 x PP^5 cut out by 8    |
|     base locus: surface in PP^5 cut out by 6 hypersurfaces of degree 2      |
|     dominance: true                                                         |
|     multidegree: {1, 3, 9, 23, 51, 102}                                     |
|     degree: 1                                                               |
|     degree sequence (map 1/2): [1]                                          |
|     degree sequence (map 2/2): [2]                                          |
|     coefficient ring: QQ                                                    |
|-----------------------------------------------------------------------------|
|hypersurfaces of multi-degree (1,1)                                          |
+-----------------------------------------------------------------------------+
|i3 : K = ZZ/65521;                                                           |
+-----------------------------------------------------------------------------+
|i4 : Phi' = Phi ** K;                                                        |
|                                                                             |
|o4 : MultirationalMap (birational map from PP^5 to 5-dimensional subvariety  |
|-----------------------------------------------------------------------------|
|of PP^5 x PP^5)                                                              |
+-----------------------------------------------------------------------------+
|i5 : describe Phi'                                                           |
|                                                                             |
|o5 = multi-rational map consisting of 2 rational maps                        |
|     source variety: PP^5                                                    |
|     target variety: 5-dimensional subvariety of PP^5 x PP^5 cut out by 8    |
|     base locus: surface in PP^5 cut out by 6 hypersurfaces of degree 2      |
|     dominance: true                                                         |
|     multidegree: {1, 3, 9, 23, 51, 102}                                     |
|     degree: 1                                                               |
|     degree sequence (map 1/2): [1]                                          |
|     degree sequence (map 2/2): [2]                                          |
|     coefficient ring: K                                                     |
|-----------------------------------------------------------------------------|
|hypersurfaces of multi-degree (1,1)                                          |
+-----------------------------------------------------------------------------+
|i6 : Phi'' = Phi ** frac(K[t]);                                              |
|                                                                             |
|o6 : MultirationalMap (birational map from PP^5 to 5-dimensional subvariety  |
|-----------------------------------------------------------------------------|
|of PP^5 x PP^5)                                                              |
+-----------------------------------------------------------------------------+
|i7 : describe Phi''                                                          |
|                                                                             |
|o7 = multi-rational map consisting of 2 rational maps                        |
|     source variety: PP^5                                                    |
|     target variety: 5-dimensional subvariety of PP^5 x PP^5 cut out by 8    |
|     base locus: surface in PP^5 cut out by 6 hypersurfaces of degree 2      |
|     dominance: true                                                         |
|     multidegree: {1, 3, 9, 23, 51, 102}                                     |
|     degree: 1                                                               |
|     degree sequence (map 1/2): [1]                                          |
|     degree sequence (map 2/2): [2]                                          |
|     coefficient ring: frac(K[t])                                            |
|-----------------------------------------------------------------------------|
|hypersurfaces of multi-degree (1,1)                                          |
+-----------------------------------------------------------------------------+

See also
========

  * coefficientRing(MultirationalMap)
    -- the coefficient ring of a
    multi-rational map
  * RationalMap ** Ring (Cremona) -- change the
    coefficient ring of a rational map
  * MultiprojectiveVariety ** Ring,
    -- change the coefficient ring of a multi-projective variety

Ways to use this method:
========================

  * MultirationalMap ** Ring -- change the
    coefficient ring of a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3680:0.

MultirationalMap << MultiprojectiveVariety -- force the change of the target in a multi-rational map
****************************************************************************************************

  * Operator: << (Macaulay2Doc),
  * Usage:
        Phi << Y
  * Inputs:
      * Phi, a multi-rational map, whose image is a
        subvariety $X\subseteq\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n
        }$
      * Y, a multi-projective variety, a
        subvariety of $\mathbb{P}^{l_1}\times\cdots\times\mathbb{P}^{l_n}$ with
        $k_i\leq l_i$ for $i=1,\ldots,n$
  * Outputs:
      * a multi-rational map, the composition of Phi
        with an inclusion of $X$ into $Y$ (if this is possible and easy,
        otherwise an error is generated)

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = parametrize PP_(ZZ/65521)^({1,3},{2,1});                          |
|                                                                             |
|o1 : MultirationalMap (rational map from PP^4 to hypersurface in PP^2 x PP^3)|
+-----------------------------------------------------------------------------+
|i2 : X = image Phi;                                                          |
|                                                                             |
|o2 : ProjectiveVariety, hypersurface in PP^2 x PP^3                          |
+-----------------------------------------------------------------------------+
|i3 : describe X                                                              |
|                                                                             |
|o3 = ambient:.............. PP^2 x PP^3                                      |
|     dim:.................. 4                                                |
|     codim:................ 1                                                |
|     degree:............... 8                                                |
|     multidegree:.......... 2*T_0                                            |
|     generators:........... (2,0)^1                                          |
|     purity:............... true                                             |
|     dim sing. l.:......... -1                                               |
|     Segre embedding:...... map to PP^11                                     |
+-----------------------------------------------------------------------------+
|i4 : Y = PP^{3,5};                                                           |
|                                                                             |
|o4 : ProjectiveVariety, PP^3 x PP^5                                          |
+-----------------------------------------------------------------------------+
|i5 : Psi = Phi << Y;                                                         |
|                                                                             |
|o5 : MultirationalMap (rational map from PP^4 to Y)                          |
+-----------------------------------------------------------------------------+
|i6 : describe image Psi                                                      |
|                                                                             |
|o6 = ambient:.............. PP^3 x PP^5                                      |
|     dim:.................. 4                                                |
|     codim:................ 4                                                |
|     degree:............... 8                                                |
|     multidegree:.......... 2*T_0^2*T_1^2                                    |
|     generators:........... (0,1)^2 (1,0)^1 (2,0)^1                          |
|     purity:............... true                                             |
|     dim sing. l.:......... -1                                               |
|     Segre embedding:...... map to PP^11 ⊂ PP^23                             |
+-----------------------------------------------------------------------------+

The inclusion $j:X\to Y$ such that Phi * j == Psi can be obtained as follows:

+------------------------------------------------+
|i7 : j = X << Y;                                |
|                                                |
|o7 : MultirationalMap (rational map from X to Y)|
+------------------------------------------------+
|i8 : assert(Phi * j == Psi and j == (1_X << Y)) |
+------------------------------------------------+

See also
========

  * multirationalMap(MultirationalMap,MultiprojectiveVariety)
    -- change
    the target of a multi-rational map

Ways to use this method:
========================

  * "MultiprojectiveVariety << MultiprojectiveVariety"
  * MultirationalMap << MultiprojectiveVariety
    -- force the change of the target in a
    multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3906:0.

MultirationalMap <==> MultirationalMap -- equality of multi-rational maps with checks on internal data
******************************************************************************************************

  * Operator: <==> (Macaulay2Doc),
  * Usage:
        Phi <==> Psi
  * Inputs:
      * Phi, a multi-rational map,
      * Psi, a multi-rational map,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether Phi and Psi are
        the same multi-rational map, by throwing an error if an inconsistency
        of the internal data is detected.

Description
===========

For example, if you have calculated the degree of the two maps before, it will
be checked that it is the same for both.

See also
========

  * MultirationalMap == MultirationalMap
    -- equality of multi-rational maps

Ways to use this method:
========================

  * MultirationalMap <==> MultirationalMap
    -- equality of multi-rational maps with checks on
    internal data
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3188:0.

MultirationalMap == MultirationalMap -- equality of multi-rational maps
***********************************************************************

  * Operator: == (Macaulay2Doc),
  * Usage:
        Phi == Psi
  * Inputs:
      * Phi, a multi-rational map,
      * Psi, a multi-rational map,
  * Outputs:
      * a Boolean value (Macaulay2Doc), whether Phi and Psi are
        the same multi-rational map

See also
========

  * RationalMap == RationalMap (Cremona), --
    equality of rational maps
  * MultirationalMap <==> MultirationalMap
    -- equality of multi-rational maps with checks on
    internal data

Ways to use this method:
========================

  * MultirationalMap == MultirationalMap
    -- equality of multi-rational maps
  * "MultirationalMap == RationalMap"
  * "MultirationalMap == ZZ"
  * "RationalMap == MultirationalMap"
  * "ZZ == MultirationalMap"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3176:0.

MultirationalMap ^** MultiprojectiveVariety -- inverse image via a multi-rational map
*************************************************************************************

  * Operator: ^** (Macaulay2Doc),
  * Usage:
        Phi^** Y
        Phi^* Y
  * Inputs:
      * Phi, a multi-rational map,
      * Y, a multi-projective variety, a
        subvariety of the ambient multi-projective space of the target,
        of Phi
  * Outputs:
      * a multi-projective variety, the (closure
        of the) inverse image of Y via Phi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/300007[x_0..x_3], f = rationalMap {x_2^2-x_1*x_3, x_1*x_2-x_0*x_3,   |
|-----------------------------------------------------------------------------|
|x_1^2-x_0*x_2}, g = rationalMap {x_1^2-x_0*x_2, x_0*x_3, x_1*x_3, x_2*x_3,   |
|-----------------------------------------------------------------------------|
|x_3^2};                                                                      |
+-----------------------------------------------------------------------------+
|i2 : Phi = last graph rationalMap {f,g};                                     |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^3 x PP^2 x PP^4 to  |
|-----------------------------------------------------------------------------|
|PP^2 x PP^4)                                                                 |
+-----------------------------------------------------------------------------+
|i3 : Y = projectiveVariety ideal(random({1,1},ring target Phi),              |
|                                                                             |
|o3 : ProjectiveVariety, 4-dimensional subvariety of PP^2 x PP^4              |
|-----------------------------------------------------------------------------|
|random({1,1},ring target Phi));                                              |
+-----------------------------------------------------------------------------+
|i4 : time X = Phi^* Y;                                                       |
| -- used 5.96479s (cpu); 4.88538s (thread); 0s (gc)                          |
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^3 x PP^2 x PP^4 (subvariety of           |
|-----------------------------------------------------------------------------|
|codimension 2 in threefold in PP^3 x PP^2 x PP^4 cut out by 12 hypersurfaces |
|-----------------------------------------------------------------------------|
|of multi-degrees (0,0,2)^1 (0,1,1)^2 (1,0,1)^7 (1,1,0)^2 )                   |
+-----------------------------------------------------------------------------+
|i5 : dim X, degree X, degrees X                                              |
|                                                                             |
|o5 = (1, 31, {({0, 0, 2}, 1), ({0, 0, 3}, 4), ({0, 1, 1}, 4), ({0, 4, 1}, 1),|
|     ------------------------------------------------------------------------|
|     ({0, 8, 0}, 1), ({1, 0, 1}, 7), ({1, 0, 2}, 4), ({1, 1, 0}, 2), ({1, 2, |
|     ------------------------------------------------------------------------|
|     0}, 1), ({1, 4, 0}, 1), ({2, 0, 1}, 2), ({2, 1, 0}, 2), ({3, 0, 1}, 2), |
|     ------------------------------------------------------------------------|
|     ({3, 1, 0}, 1), ({4, 0, 0}, 4)})                                        |
|                                                                             |
|o5 : Sequence                                                                |
+-----------------------------------------------------------------------------+

See also
========

  * MultirationalMap MultiprojectiveVariety
    -- direct image via a multi-rational map
  * RationalMap ^* (Cremona) -- inverse image
    via a rational map
  * MultirationalMap || MultiprojectiveVariety
    -- restriction of a multi-rational map

Ways to use this method:
========================

  * MultirationalMap ^** MultiprojectiveVariety
    -- inverse image via a multi-rational map
  * "RationalMap ^** EmbeddedProjectiveVariety"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3084:0.

MultirationalMap | MultiprojectiveVariety -- restriction of a multi-rational map
********************************************************************************

  * Operator: | (Macaulay2Doc),
  * Usage:
        Phi | Z
  * Inputs:
      * Phi, a multi-rational map, $\Phi:X
        \dashrightarrow Y$
      * Z, a multi-projective variety, a
        subvariety of $X$
  * Outputs:
      * a multi-rational map, the restriction of
        $\Phi$ to $Z$, $\phi|_{Z}: Z \dashrightarrow Y$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/33331[x_0..x_3], f = rationalMap                                     |
|-----------------------------------------------------------------------------|
|{x_2^2-x_1*x_3,x_1*x_2-x_0*x_3,x_1^2-x_0*x_2}, g = rationalMap               |
|-----------------------------------------------------------------------------|
|{x_2^2-x_1*x_3,x_1*x_2-x_0*x_3};                                             |
+-----------------------------------------------------------------------------+
|i2 : Phi = last graph rationalMap {f,g};                                     |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^3 x PP^2 x PP^1 to  |
|-----------------------------------------------------------------------------|
|PP^2 x PP^1)                                                                 |
+-----------------------------------------------------------------------------+
|i3 : Z = (source Phi) * projectiveVariety ideal random({1,1,2},ring ambient  |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^3 x PP^2 x PP^1                        |
|-----------------------------------------------------------------------------|
|source Phi);                                                                 |
+-----------------------------------------------------------------------------+
|i4 : Phi' = Phi|Z;                                                           |
|                                                                             |
|o4 : MultirationalMap (rational map from Z to PP^2 x PP^1)                   |
+-----------------------------------------------------------------------------+
|i5 : source Phi'                                                             |
|                                                                             |
|o5 = Z                                                                       |
|                                                                             |
|o5 : ProjectiveVariety, surface in PP^3 x PP^2 x PP^1                        |
+-----------------------------------------------------------------------------+
|i6 : assert(image Phi' == Phi Z)                                             |
+-----------------------------------------------------------------------------+

The following is a shortcut to take restrictions on random hypersurfaces as
above.

+-----------------------------------------------------------------------------+
|i7 : Phi|{1,1,2};                                                            |
|                                                                             |
|o7 : MultirationalMap (rational map from surface in PP^3 x PP^2 x PP^1 to    |
|-----------------------------------------------------------------------------|
|PP^2 x PP^1)                                                                 |
+-----------------------------------------------------------------------------+

See also
========

  * MultirationalMap || MultiprojectiveVariety
    -- restriction of a multi-rational map
  * RationalMap | Ideal (Cremona) -- restriction of
    a rational map
  * MultiprojectiveVariety * MultiprojectiveVariety
    -- intersection of two
    multi-projective varieties

Ways to use this method:
========================

  * "MultirationalMap | List"
  * MultirationalMap | MultiprojectiveVariety
    -- restriction of a multi-rational map
  * "RationalMap | MultiprojectiveVariety"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3430:0.

MultirationalMap | MultirationalMap -- product of multi-rational maps
*********************************************************************

  * Operator: | (Macaulay2Doc),
  * Usage:
        Phi | Psi
  * Inputs:
      * Phi, a multi-rational map, $\Phi:X
        \dashrightarrow Y$
      * Psi, a multi-rational map, $\Psi:X
        \dashrightarrow Z$
  * Outputs:
      * a multi-rational map, the rational map $X
        \dashrightarrow Y\times Z$ defined by $p\mapsto (\Phi(p),\Psi(p))$; in
        other words, it is the map defined by the join (Macaulay2Doc),
        of factor,
        Phi with factor,
        Psi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = rationalMap({veronese(1,2,ZZ/33331)},Dominant=>true);             |
|                                                                             |
|o1 : MultirationalMap (dominant rational map from PP^1 to curve in PP^2)     |
+-----------------------------------------------------------------------------+
|i2 : Psi = rationalMap {veronese(1,3,ZZ/33331)};                             |
|                                                                             |
|o2 : MultirationalMap (rational map from PP^1 to PP^3)                       |
+-----------------------------------------------------------------------------+
|i3 : (X,Y,Z) = (source Phi,target Phi,target Psi);                           |
+-----------------------------------------------------------------------------+
|i4 : Eta = Phi | Psi;                                                        |
|                                                                             |
|o4 : MultirationalMap (rational map from X to Y x Z)                         |
+-----------------------------------------------------------------------------+
|i5 : Eta | Phi;                                                              |
|                                                                             |
|o5 : MultirationalMap (rational map from X to Y x Z x Y)                     |
+-----------------------------------------------------------------------------+
|i6 : Phi | Psi | Eta;                                                        |
|                                                                             |
|o6 : MultirationalMap (rational map from X to Y x Z x Y x Z)                 |
+-----------------------------------------------------------------------------+
|i7 : super oo;                                                               |
|                                                                             |
|o7 : MultirationalMap (rational map from X to PP^2 x PP^3 x PP^2 x PP^3)     |
+-----------------------------------------------------------------------------+
|i8 : rationalMap(oo,image oo);                                               |
|                                                                             |
|o8 : MultirationalMap (dominant rational map from X to curve in PP^2 x PP^3 x|
|-----------------------------------------------------------------------------|
|PP^2 x PP^3)                                                                 |
+-----------------------------------------------------------------------------+

See also
========

  * MultirationalMap || MultirationalMap
    -- product of multi-rational maps
  * List | List (Macaulay2Doc) -- join lists, sequences or
    arrays
  * factor(MultirationalMap) -- the list
    of rational maps defining a multi-rational map
  * MultiprojectiveVariety * MultiprojectiveVariety
    -- intersection of two
    multi-projective varieties
  * super(MultirationalMap) -- get the
    multi-rational map whose target is a product of projective spaces

Ways to use this method:
========================

  * MultirationalMap | MultirationalMap
    -- product of multi-rational maps
  * "MultirationalMap | RationalMap"
  * "RationalMap | MultirationalMap"
  * "RationalMap | RationalMap"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3467:0.

MultirationalMap || MultiprojectiveVariety -- restriction of a multi-rational map
*********************************************************************************

  * Operator: || (Macaulay2Doc),
  * Usage:
        Phi || Z
  * Inputs:
      * Phi, a multi-rational map, $\Phi:X
        \dashrightarrow Y$
      * Z, a multi-projective variety, a
        subvariety of $Y$
  * Outputs:
      * a multi-rational map, the restriction of
        $\Phi$ to ${\Phi}^{(-1)} Z$, ${{\Phi}|}_{{\Phi}^{(-1)} Z}:
        {\Phi}^{(-1)} Z \dashrightarrow Z$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/33331[x_0..x_3], f = rationalMap                                     |
|-----------------------------------------------------------------------------|
|{x_2^2-x_1*x_3,x_1*x_2-x_0*x_3,x_1^2-x_0*x_2}, g = rationalMap               |
|-----------------------------------------------------------------------------|
|{x_2^2-x_1*x_3,x_1*x_2-x_0*x_3};                                             |
+-----------------------------------------------------------------------------+
|i2 : Phi = last graph rationalMap {f,g};                                     |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^3 x PP^2 x PP^1 to  |
|-----------------------------------------------------------------------------|
|PP^2 x PP^1)                                                                 |
+-----------------------------------------------------------------------------+
|i3 : Z = projectiveVariety ideal random({1,2},ring target Phi);              |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i4 : Phi' = Phi||Z;                                                          |
|                                                                             |
|o4 : MultirationalMap (rational map from surface in PP^3 x PP^2 x PP^1 to Z) |
+-----------------------------------------------------------------------------+
|i5 : target Phi'                                                             |
|                                                                             |
|o5 = Z                                                                       |
|                                                                             |
|o5 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i6 : assert(source Phi' == Phi^* Z)                                          |
+-----------------------------------------------------------------------------+

The following is a shortcut to take restrictions on random hypersurfaces as
above.

+-----------------------------------------------------------------------------+
|i7 : Phi||{1,2};                                                             |
|                                                                             |
|o7 : MultirationalMap (rational map from surface in PP^3 x PP^2 x PP^1 to    |
|-----------------------------------------------------------------------------|
|surface in PP^2 x PP^1)                                                      |
+-----------------------------------------------------------------------------+

See also
========

  * MultirationalMap | MultiprojectiveVariety
    -- restriction of a multi-rational map
  * RationalMap || Ideal (Cremona) -- restriction
    of a rational map
  * MultirationalMap ^*,
    -- inverse image via a multi-rational map

Ways to use this method:
========================

  * "MultirationalMap || List"
  * MultirationalMap || MultiprojectiveVariety
    -- restriction of a multi-rational map
  * "RationalMap || MultiprojectiveVariety"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3449:0.

MultirationalMap || MultirationalMap -- product of multi-rational maps
**********************************************************************

  * Operator: || (Macaulay2Doc),
  * Usage:
        Phi || Psi
  * Inputs:
      * Phi, a multi-rational map, $\Phi:X
        \dashrightarrow Y$
      * Psi, a multi-rational map, $\Psi:Z
        \dashrightarrow W$
  * Outputs:
      * a multi-rational map, the rational map
        $\Phi\times\Psi:X\times Z \dashrightarrow Y\times W$ defined by
        $\Phi\times\Psi(p,q) = (\Phi(p),\Psi(q))$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = rationalMap({veronese(1,4,ZZ/33331)},Dominant=>true);             |
|                                                                             |
|o1 : MultirationalMap (dominant rational map from PP^1 to curve in PP^4)     |
+-----------------------------------------------------------------------------+
|i2 : Psi = last graph rationalMap PP_(ZZ/33331)^(1,3);                       |
|                                                                             |
|o2 : MultirationalMap (rational map from threefold in PP^3 x PP^2 to PP^2)   |
+-----------------------------------------------------------------------------+
|i3 : (X,Y,Z,W) = (source Phi,target Phi,source Psi,target Psi);              |
+-----------------------------------------------------------------------------+
|i4 : Eta = Phi || Psi;                                                       |
|                                                                             |
|o4 : MultirationalMap (rational map from X x Z to Y x W)                     |
+-----------------------------------------------------------------------------+
|i5 : Psi || Eta;                                                             |
|                                                                             |
|o5 : MultirationalMap (rational map from Z x X x Z to W x Y x W)             |
+-----------------------------------------------------------------------------+
|i6 : Psi || Eta || Phi;                                                      |
|                                                                             |
|o6 : MultirationalMap (rational map from Z x X x Z x X to W x Y x W x Y)     |
+-----------------------------------------------------------------------------+
|i7 : assert(oo == (Psi || Eta) || Phi and (Psi || Eta) || Phi == Psi || (Eta |
|-----------------------------------------------------------------------------|
||| Phi))                                                                     |
+-----------------------------------------------------------------------------+

See also
========

  * MultirationalMap | MultirationalMap
    -- product of multi-rational maps

Ways to use this method:
========================

  * MultirationalMap || MultirationalMap
    -- product of multi-rational maps
  * "MultirationalMap || RationalMap"
  * "RationalMap || MultirationalMap"
  * "RationalMap || RationalMap"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3484:0.

MultirationalMap MultiprojectiveVariety -- direct image via a multi-rational map
********************************************************************************

  * Operator: SPACE (Macaulay2Doc),
  * Usage:
        Phi X
  * Inputs:
      * Phi, a multi-rational map,
      * X, a multi-projective variety, a
        subvariety of the source, of Phi
  * Outputs:
      * a multi-projective variety, the (closure
        of the) direct image of X via Phi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/65521[x_0..x_4];                                                     |
+-----------------------------------------------------------------------------+
|i2 : f = last graph rationalMap {x_2^2-x_1*x_3, x_1*x_2-x_0*x_3, x_1^2-x_0*x_|
|                                                                             |
|o2 : MultihomogeneousRationalMap (rational map from 4-dimensional subvariety |
|-----------------------------------------------------------------------------|
|2, x_0*x_4, x_1*x_4, x_2*x_4, x_3*x_4, x_4^2};                               |
|                                                                             |
|of PP^4 x PP^7 to PP^7)                                                      |
+-----------------------------------------------------------------------------+
|i3 : Phi = rationalMap {f,f};                                                |
|                                                                             |
|o3 : MultirationalMap (rational map from 4-dimensional subvariety of PP^4 x  |
|-----------------------------------------------------------------------------|
|PP^7 to PP^7 x PP^7)                                                         |
+-----------------------------------------------------------------------------+
|i4 : Z = source Phi;                                                         |
|                                                                             |
|o4 : ProjectiveVariety, 4-dimensional subvariety of PP^4 x PP^7              |
+-----------------------------------------------------------------------------+
|i5 : time Phi Z;                                                             |
| -- used 0.120864s (cpu); 0.120875s (thread); 0s (gc)                        |
|                                                                             |
|o5 : ProjectiveVariety, 4-dimensional subvariety of PP^7 x PP^7              |
+-----------------------------------------------------------------------------+
|i6 : dim oo, degree oo, degrees oo                                           |
|                                                                             |
|o6 = (4, 80, {({0, 2}, 5), ({1, 1}, 33), ({2, 0}, 5)})                       |
|                                                                             |
|o6 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i7 : time Phi (point Z + point Z + point Z)                                  |
| -- used 2.11783s (cpu); 1.69778s (thread); 0s (gc)                          |
|                                                                             |
|o7 = 0-dimensional subvariety of PP^7 x PP^7 cut out by 22 hypersurfaces of  |
|                                                                             |
|o7 : ProjectiveVariety, 0-dimensional subvariety of PP^7 x PP^7              |
|-----------------------------------------------------------------------------|
|multi-degrees (0,1)^5 (0,2)^3 (1,0)^5 (1,1)^6 (2,0)^3                        |
+-----------------------------------------------------------------------------+
|i8 : dim oo, degree oo, degrees oo                                           |
|                                                                             |
|o8 = (0, 3, {({0, 1}, 5), ({0, 2}, 3), ({1, 0}, 5), ({1, 1}, 6), ({2, 0},    |
|     ------------------------------------------------------------------------|
|     3)})                                                                    |
|                                                                             |
|o8 : Sequence                                                                |
+-----------------------------------------------------------------------------+

See also
========

  * image(MultirationalMap) -- image of a
    multi-rational map
  * MultirationalMap ^*,
    -- inverse image via a multi-rational map
  * RationalMap Ideal (Cremona) -- direct image via a
    rational map

Ways to use this method:
========================

  * MultirationalMap MultiprojectiveVariety
    -- direct image via a multi-rational map
  * "RationalMap MultiprojectiveVariety"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3066:0.

multirationalMap(MultiprojectiveVariety) -- identity map
********************************************************

  * Function: multirationalMap,
  * Usage:
        1_X
        multirationalMap X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a multi-rational map, the identity map on X

Description
===========

+------------------------------------------+
|i1 : X = PP_QQ^{2,3,1};                   |
|                                          |
|o1 : ProjectiveVariety, PP^2 x PP^3 x PP^1|
+------------------------------------------+
|i2 : 1_X;                                 |
|                                          |
|o2 : MultirationalMap (automorphism of X) |
+------------------------------------------+

The command 0_X returns instead the empty subscheme of X.

+-------------------------------------------------------------+
|i3 : 0_X;                                                    |
|                                                             |
|o3 : ProjectiveVariety, empty subscheme of PP^2 x PP^3 x PP^1|
+-------------------------------------------------------------+

See also
========

  * multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
    --
    get the natural inclusion

Ways to use this method:
========================

  * multirationalMap(MultiprojectiveVariety)
    -- identity map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3282:0.

multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety) -- get the natural inclusion
********************************************************************************************

  * Function: multirationalMap,
  * Usage:
        rationalMap(X,Y)
        multirationalMap(X,Y)
  * Inputs:
      * X, a multi-projective variety,
      * Y, a multi-projective variety, with
        $X\subseteq Y$ (after identifying the ambient spaces)
  * Outputs:
      * a multi-rational map, the natural inclusion of
        $X$ into $Y$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/101[a_0,a_1,b_0..b_2,Degrees=>{2:{1,0},3:{0,1}}], S =            |
|                                                                             |
|o1 = (R, S)                                                                  |
|                                                                             |
|o1 : Sequence                                                                |
|-----------------------------------------------------------------------------|
|ZZ/101[c_0,c_1,d_0..d_2,Degrees=>{2:{1,0},3:{0,1}}]                          |
+-----------------------------------------------------------------------------+
|i2 : I = ideal (random({0,1},R),random({1,1},R)), J = sub(I,vars S)          |
|                                                                             |
|o2 = (ideal (24b  - 36b  - 30b , - 29a b  - 10a b  + 19a b  - 29a b  + 19a b |
|                0      1      2       0 0      1 0      0 1      1 1      0 2|
|     ------------------------------------------------------------------------|
|     - 8a b ), ideal (24d  - 36d  - 30d , - 29c d  - 10c d  + 19c d  - 29c d |
|         1 2             0      1      2       0 0      1 0      0 1      1 1|
|     ------------------------------------------------------------------------|
|     + 19c d  - 8c d ))                                                      |
|          0 2     1 2                                                        |
|                                                                             |
|o2 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i3 : X = projectiveVariety I, Y = projectiveVariety J                        |
|                                                                             |
|o3 = (X, Y)                                                                  |
|                                                                             |
|o3 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i4 : rationalMap(X,ambient X);                                               |
|                                                                             |
|o4 : MultirationalMap (morphism from X to PP^1 x PP^2)                       |
+-----------------------------------------------------------------------------+
|i5 : rationalMap(X,Y);                                                       |
|                                                                             |
|o5 : MultirationalMap (morphism from X to Y)                                 |
+-----------------------------------------------------------------------------+
|i6 : stopIfError = false;                                                    |
+-----------------------------------------------------------------------------+
|i7 : rationalMap(ambient X,X)                                                |
|stdio:7:11:(3): error: not able to define a natural map between the two      |
|-----------------------------------------------------------------------------|
|varieties                                                                    |
+-----------------------------------------------------------------------------+

See also
========

  * ZZ _ MultiprojectiveVariety
    -- identity map

Ways to use this method:
========================

  * multirationalMap(MultiprojectiveVariety,MultiprojectiveVariety),
    --
    get the natural inclusion
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3299:0.

multirationalMap(MultirationalMap,MultiprojectiveVariety) -- change the target of a multi-rational map
******************************************************************************************************

  * Function: multirationalMap,
  * Usage:
        rationalMap(Phi,Y)
        multirationalMap(Phi,Y)
        check rationalMap(Phi,Y)
  * Inputs:
      * Phi, a multi-rational map,
      * Y, a multi-projective variety, which
        must be compatible with Phi
  * Outputs:
      * a multi-rational map, defined in the same way
        as Phi but with Y as target

Description
===========

+---------------------------------------------------------------+
|i1 : Phi = rationalMap {super specialQuadraticTransformation 1}|
|                                                               |
|o1 = Phi                                                       |
|                                                               |
|o1 : MultirationalMap (rational map from PP^7 to PP^8)         |
+---------------------------------------------------------------+
|i2 : Y = image Phi                                             |
|                                                               |
|o2 = Y                                                         |
|                                                               |
|o2 : ProjectiveVariety, hypersurface in PP^8                   |
+---------------------------------------------------------------+
|i3 : Psi = rationalMap(Phi,Y)                                  |
|                                                               |
|o3 = Psi                                                       |
|                                                               |
|o3 : MultirationalMap (dominant rational map from PP^7 to Y)   |
+---------------------------------------------------------------+

See also
========

  * check(MultirationalMap) -- check that a
    multi-rational map is well-defined
  * MultirationalMap << MultiprojectiveVariety
    -- force the change of the target in a
    multi-rational map

Ways to use this method:
========================

  * multirationalMap(MultirationalMap,MultiprojectiveVariety)
    -- change
    the target of a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3313:0.

parametrize(MultiprojectiveVariety) -- try to get a parametrization of a multi-projective variety
*************************************************************************************************

  * Function: parametrize (Cremona),
  * Usage:
        parametrize X
  * Inputs:
      * X, a multi-projective variety, a
        rational $k$-dimensional subvariety of
        $\mathbb{P}^{r_1}\times\cdots\times\mathbb{P}^{r_n}$
  * Outputs:
      * a multi-rational map, a birational map from
        $\mathbb{P}^k$ to $X$ (or an error if it fails)

Description
===========

Currently, this function works in particular for linear varieties, quadrics,
varieties of minimal degree, Grassmannians, Severi varieties, del Pezzo
fivefolds, and some types of Fano fourfolds.

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/65521;                                                           |
+-----------------------------------------------------------------------------+
|i2 : X = PP_K^{2,4,1,3};                                                     |
|                                                                             |
|o2 : ProjectiveVariety, PP^2 x PP^4 x PP^1 x PP^3                            |
+-----------------------------------------------------------------------------+
|i3 : f = parametrize X;                                                      |
|                                                                             |
|o3 : MultirationalMap (rational map from PP^10 to X)                         |
+-----------------------------------------------------------------------------+
|i4 : Y = random({{1,0,0,0},{0,1,0,0},{0,1,0,0},{0,0,0,1}},0_X);              |
|                                                                             |
|o4 : ProjectiveVariety, 6-dimensional subvariety of PP^2 x PP^4 x PP^1 x PP^3|
+-----------------------------------------------------------------------------+
|i5 : g = parametrize Y;                                                      |
|                                                                             |
|o5 : MultirationalMap (rational map from PP^6 to Y)                          |
+-----------------------------------------------------------------------------+
|i6 : Z = random({{1,1,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1},{0,0,0,1}},0_X);    |
|                                                                             |
|o6 : ProjectiveVariety, 5-dimensional subvariety of PP^2 x PP^4 x PP^1 x PP^3|
+-----------------------------------------------------------------------------+
|i7 : h = parametrize Z;                                                      |
|                                                                             |
|o7 : MultirationalMap (rational map from PP^5 to Z)                          |
+-----------------------------------------------------------------------------+
|i8 : describe h                                                              |
|                                                                             |
|o8 = multi-rational map consisting of 4 rational maps                        |
|     source variety: PP^5                                                    |
|     target variety: 5-dimensional subvariety of PP^2 x PP^4 x PP^1 x PP^3   |
|     base locus: threefold in PP^5 cut out by 6 hypersurfaces of degrees 2^  |
|     dominance: true                                                         |
|     multidegree: {1, 6, 15, 31, 50, 50}                                     |
|     degree: 1                                                               |
|     degree sequence (map 1/4): [2]                                          |
|     degree sequence (map 2/4): [2]                                          |
|     degree sequence (map 3/4): [0]                                          |
|     degree sequence (map 4/4): [2]                                          |
|     coefficient ring: K                                                     |
|-----------------------------------------------------------------------------|
|cut out by 5 hypersurfaces of multi-degrees (0,0,0,1)^2 (0,0,1,0)^1          |
|1 4^5                                                                        |
|-----------------------------------------------------------------------------|
|(0,1,0,0)^1 (1,1,0,0)^1                                                      |
+-----------------------------------------------------------------------------+
|i9 : describe inverse h                                                      |
|                                                                             |
|o9 = multi-rational map consisting of one single rational map                |
|     source variety: 5-dimensional subvariety of PP^2 x PP^4 x PP^1 x        |
|     target variety: PP^5                                                    |
|     base locus: threefold in PP^2 x PP^4 x PP^1 x PP^3 cut out by 23        |
|     dominance: true                                                         |
|     multidegree: {50, 50, 31, 15, 6, 1}                                     |
|     degree: 1                                                               |
|     degree sequence (map 1/1): [(1,1,0,1)]                                  |
|     coefficient ring: K                                                     |
|-----------------------------------------------------------------------------|
|PP^3 cut out by 5 hypersurfaces of multi-degrees (0,0,0,1)^2 (0,0,1,0)^1 (0,1|
|                                                                             |
|hypersurfaces of multi-degrees (0,0,0,1)^2 (0,0,1,0)^1 (0,1,0,0)^1 (0,1,0,2)^|
|-----------------------------------------------------------------------------|
|,0,0)^1 (1,1,0,0)^1                                                          |
|                                                                             |
|1 (0,2,0,1)^3 (1,0,0,2)^1 (1,1,0,0)^1 (1,1,0,1)^6 (1,2,0,0)^3 (2,0,0,1)^2    |
|-----------------------------------------------------------------------------|
|(2,1,0,0)^2                                                                  |
+-----------------------------------------------------------------------------+
|i10 : A = matrix pack(5,for i to 24 list random(1,ring PP_K^8)), A = A -     |
|-----------------------------------------------------------------------------|
|transpose A;                                                                 |
+-----------------------------------------------------------------------------+
|i11 : W = projectiveVariety pfaffians(4,A);                                  |
|                                                                             |
|o11 : ProjectiveVariety, 5-dimensional subvariety of PP^8                    |
+-----------------------------------------------------------------------------+
|i12 : parametrize W                                                          |
|                                                                             |
|o12 = multi-rational map consisting of one single rational map               |
|      source variety: PP^5                                                   |
|      target variety: 5-dimensional subvariety of PP^8 cut out by 5          |
|      dominance: true                                                        |
|      degree: 1                                                              |
|                                                                             |
|o12 : MultirationalMap (birational map from PP^5 to W)                       |
|-----------------------------------------------------------------------------|
|hypersurfaces of degree 2                                                    |
+-----------------------------------------------------------------------------+
|i13 : parametrize (W ** (point W))                                           |
|                                                                             |
|o13 = multi-rational map consisting of 2 rational                            |
|      source variety: PP^5                                                   |
|      target variety: 5-dimensional subvariety of                            |
|                                                                             |
|o13 : MultirationalMap (rational map from PP^5 to                            |
|-----------------------------------------------------------------------------|
|maps                                                                         |
|                                                                             |
|PP^8 x PP^8 cut out by 13 hypersurfaces of multi-degrees (0,1)^8 (2,0)^5     |
|                                                                             |
|5-dimensional subvariety of PP^8 x PP^8)                                     |
+-----------------------------------------------------------------------------+

See also
========

  * inverse(MultirationalMap) -- inverse
    of a birational map
  * EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety
    -- try to find an
    isomorphism between two projective varieties

Ways to use this method:
========================

  * parametrize(MultiprojectiveVariety)
    -- try to get a parametrization of
    a multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3119:0.

permute(MultiprojectiveVariety,List) -- permute the factors of the ambient multi-projective space
*************************************************************************************************

  * Function: permute (SparseResultants),
  * Usage:
        permute(X,s)
  * Inputs:
      * X, a multi-projective variety, a
        subvariety of $\mathbb{P}^{k_0}\times\mathbb{P}^{k_1}\times\cdots\times
        \mathbb{P}^{k_{n}}$
      * s, a list (Macaulay2Doc), a permutation of the set
        $\{0,1,\ldots,n\}$
  * Outputs:
      * a multi-rational map, an isomorphism from $X$
        to a subvariety of $\mathbb{P}^{k_{s(0)}}\times\mathbb{P}^{k_{s(1)}}\
        times\cdots\times\mathbb{P}^{k_{s(n)}}$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/33331)^{2,3,1};                                              |
|                                                                             |
|o1 : ProjectiveVariety, PP^2 x PP^3 x PP^1                                   |
+-----------------------------------------------------------------------------+
|i2 : f = permute(X,{1,0,2});                                                 |
|                                                                             |
|o2 : MultirationalMap (rational map from X to PP^3 x PP^2 x PP^1)            |
+-----------------------------------------------------------------------------+
|i3 : assert isIsomorphism f                                                  |
+-----------------------------------------------------------------------------+
|i4 : Y = random({0,1,1},0_X);                                                |
|                                                                             |
|o4 : ProjectiveVariety, hypersurface in PP^2 x PP^3 x PP^1                   |
+-----------------------------------------------------------------------------+
|i5 : g = permute(Y,{2,0,1});                                                 |
|                                                                             |
|o5 : MultirationalMap (rational map from Y to hypersurface in PP^1 x PP^2 x  |
|-----------------------------------------------------------------------------|
|PP^3)                                                                        |
+-----------------------------------------------------------------------------+
|i6 : assert isIsomorphism g                                                  |
+-----------------------------------------------------------------------------+

See also
========

  * permute(MultidimensionalMatrix,List) (SparseResultants), --
    permute the dimensions of a multidimensional matrix

Ways to use this method:
========================

  * permute(MultiprojectiveVariety,List)
    -- permute the factors of the
    ambient multi-projective space
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3567:0.

point(MultiprojectiveVariety) -- pick a random rational point on a multi-projective variety
*******************************************************************************************

  * Function: point (Cremona),
  * Usage:
        point X
  * Inputs:
      * X, a multi-projective variety, defined
        over a finite field
  * Outputs:
      * a multi-projective variety, a random
        rational point on $X$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/1000003;                                                         |
+-----------------------------------------------------------------------------+
|i2 : X = PP_K^({1,1,2},{3,2,3});                                             |
|                                                                             |
|o2 : ProjectiveVariety, 4-dimensional subvariety of PP^3 x PP^2 x PP^9       |
+-----------------------------------------------------------------------------+
|i3 : time p := point X                                                       |
| -- used 0.0219064s (cpu); 0.0217344s (thread); 0s (gc)                      |
|                                                                             |
|o3 = point of coordinates ([421369, 39917, -212481, 1],[-128795, -176966,    |
|                                                                             |
|o3 : ProjectiveVariety, a point in PP^3 x PP^2 x PP^9                        |
|-----------------------------------------------------------------------------|
|1],[3870, -390108, -496127, -308581, 46649, 164926, -446111, 48038, 415309,  |
|-----------------------------------------------------------------------------|
|1])                                                                          |
+-----------------------------------------------------------------------------+
|i4 : Y = random({2,1,2},X);                                                  |
|                                                                             |
|o4 : ProjectiveVariety, hypersurface in PP^3 x PP^2 x PP^9                   |
+-----------------------------------------------------------------------------+
|i5 : time q = point Y                                                        |
| -- used 1.82011s (cpu); 1.23933s (thread); 0s (gc)                          |
|                                                                             |
|o5 = q                                                                       |
|                                                                             |
|o5 : ProjectiveVariety, a point in PP^3 x PP^2 x PP^9                        |
+-----------------------------------------------------------------------------+
|i6 : assert(isSubset(p,X) and isSubset(q,Y))                                 |
+-----------------------------------------------------------------------------+

The list of homogeneous coordinates can be obtained with the operator |-.

+-----------------------------------------------------------------------------+
|i7 : |- p                                                                    |
|                                                                             |
|o7 = ([421369, 39917, -212481, 1], [-128795, -176966, 1], [3870, -390108,    |
|     ------------------------------------------------------------------------|
|     -496127, -308581, 46649, 164926, -446111, 48038, 415309, 1])            |
|                                                                             |
|o7 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i8 : |- q                                                                    |
|                                                                             |
|o8 = ([158712, 271608, 202519, 1], [-411495, 350529, 1], [499681, 293896,    |
|     ------------------------------------------------------------------------|
|     -144543, 481344, 258084, 405184, -259486, -147014, 37168, 1])           |
|                                                                             |
|o8 : Sequence                                                                |
+-----------------------------------------------------------------------------+

See also
========

  * point (Cremona) -- pick a random rational point on a
    projective variety
  * randomKRationalPoint (Macaulay2Doc) -- pick a
    random K rational point on the scheme X defined by I

Ways to use this method:
========================

  * point(MultiprojectiveVariety), --
    pick a random rational point on a multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2646:0.

projectionMaps -- projections of a multi-projective variety
***********************************************************

  * Usage:
        projectionMaps X
  * Inputs:
      * X, a multi-projective variety, a
        subvariety of $\mathbb{P}^{k_1}\times\mathbb{P}^{k_2}\times\cdots\times
        \mathbb{P}^{k_n}$
  * Outputs:
      * the list of the projections $X\to \mathbb{P}^{k_i}$, for $i=1,\ldots,n$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = random({{1,1},{1,1}},0_(PP_(ZZ/101)^{3,1}));                        |
|                                                                             |
|o1 : ProjectiveVariety, surface in PP^3 x PP^1                               |
+-----------------------------------------------------------------------------+
|i2 : p = projectionMaps X;                                                   |
+-----------------------------------------------------------------------------+
|i3 : p_0                                                                     |
|                                                                             |
|o3 = multi-rational map consisting of one single rational map                |
|     source variety: surface in PP^3 x PP^1 cut out by 3 hypersurfaces of    |
|     target variety: surface in PP^3 defined by a form of degree 2           |
|     dominance: true                                                         |
|                                                                             |
|o3 : MultirationalMap (dominant rational map from X to surface in PP^3)      |
|-----------------------------------------------------------------------------|
|multi-degrees (1,1)^2 (2,0)^1                                                |
+-----------------------------------------------------------------------------+
|i4 : p_1                                                                     |
|                                                                             |
|o4 = multi-rational map consisting of one single rational map                |
|     source variety: surface in PP^3 x PP^1 cut out by 3 hypersurfaces of    |
|     target variety: PP^1                                                    |
|     dominance: true                                                         |
|                                                                             |
|o4 : MultirationalMap (dominant rational map from X to PP^1)                 |
|-----------------------------------------------------------------------------|
|multi-degrees (1,1)^2 (2,0)^1                                                |
+-----------------------------------------------------------------------------+

See also
========

  * projections -- projections of a multi-projective
    variety

Ways to use projectionMaps:
===========================

  * "projectionMaps(MultiprojectiveVariety)"
  * projectionMaps(MultirationalMap)
    -- get the compositions of the
    multi-rational map with the projections of the target

For the programmer
==================

The object projectionMaps, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2604:0.

projectionMaps(MultirationalMap) -- get the compositions of the multi-rational map with the projections of the target
*********************************************************************************************************************

  * Function: projectionMaps,
  * Usage:
        projectionMaps Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * the list (Macaulay2Doc), of rational maps,
        obtained by composing the map with the
        projections, of the target

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = inverse first graph rationalMap PP_(ZZ/33331)^(1,4);              |
|                                                                             |
|o1 : MultirationalMap (birational map from PP^4 to 4-dimensional subvariety  |
|-----------------------------------------------------------------------------|
|of PP^4 x PP^5)                                                              |
+-----------------------------------------------------------------------------+
|i2 : p = projectionMaps Phi;                                                 |
+-----------------------------------------------------------------------------+
|i3 : p_0                                                                     |
|                                                                             |
|o3 = multi-rational map consisting of one single rational map                |
|     source variety: PP^4                                                    |
|     target variety: PP^4                                                    |
|                                                                             |
|o3 : MultirationalMap (rational map from PP^4 to PP^4)                       |
+-----------------------------------------------------------------------------+
|i4 : p_1                                                                     |
|                                                                             |
|o4 = multi-rational map consisting of one single rational map                |
|     source variety: PP^4                                                    |
|     target variety: PP^5                                                    |
|                                                                             |
|o4 : MultirationalMap (rational map from PP^4 to PP^5)                       |
+-----------------------------------------------------------------------------+

See also
========

  * factor(MultirationalMap) -- the list
    of rational maps defining a multi-rational map

Ways to use this method:
========================

  * projectionMaps(MultirationalMap)
    -- get the compositions of the
    multi-rational map with the projections of the target
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3021:0.

projections -- projections of a multi-projective variety
********************************************************

  * Usage:
        projections X
  * Inputs:
      * X, a multi-projective variety, a
        subvariety of $\mathbb{P}^{k_1}\times\mathbb{P}^{k_2}\times\cdots\times
        \mathbb{P}^{k_n}$
  * Outputs:
      * the list of the projections $X\to \mathbb{P}^{k_i}$, for $i=1,\ldots,n$

Description
===========

This function is intended for internal use. Use the projectionMaps,
function instead.

+-----------------------------------------------------------------------------+
|i1 : X = projectiveVariety(ZZ/101[x_0..x_3]) **                              |
|                                                                             |
|o1 : ProjectiveVariety, PP^3 x PP^2                                          |
|-----------------------------------------------------------------------------|
|projectiveVariety(ZZ/101[y_0..y_2]);                                         |
+-----------------------------------------------------------------------------+
|i2 : projections X                                                           |
|                                                                             |
|o2 = {-- rational map --                                              ,      |
|                    ZZ                              ZZ                       |
|      source: Proj(---[x0 , x0 , x0 , x0 ]) x Proj(---[x1 , x1 , x1 ])       |
|                   101   0    1    2    3          101   0    1    2         |
|                    ZZ                                                       |
|      target: Proj(---[x , x , x , x ])                                      |
|                   101  0   1   2   3                                        |
|      defining forms: {                                                      |
|                       x0 ,                                                  |
|                         0                                                   |
|                                                                             |
|                       x0 ,                                                  |
|                         1                                                   |
|                                                                             |
|                       x0 ,                                                  |
|                         2                                                   |
|                                                                             |
|                       x0                                                    |
|                         3                                                   |
|                      }                                                      |
|     ------------------------------------------------------------------------|
|     -- rational map --                                              }       |
|                   ZZ                              ZZ                        |
|     source: Proj(---[x0 , x0 , x0 , x0 ]) x Proj(---[x1 , x1 , x1 ])        |
|                  101   0    1    2    3          101   0    1    2          |
|                   ZZ                                                        |
|     target: Proj(---[y , y , y ])                                           |
|                  101  0   1   2                                             |
|     defining forms: {                                                       |
|                      x1 ,                                                   |
|                        0                                                    |
|                                                                             |
|                      x1 ,                                                   |
|                        1                                                    |
|                                                                             |
|                      x1                                                     |
|                        2                                                    |
|                     }                                                       |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+

See also
========

  * projectionMaps -- projections of a multi-projective
    variety

Ways to use projections:
========================

  * "projections(MultiprojectiveVariety)"

For the programmer
==================

The object projections, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2596:0.

projectiveVariety(...,MinimalGenerators=>...) -- whether to trim the ideal (intended for internal use only)
***********************************************************************************************************

  * Usage:
        projectiveVariety(I,MinimalGenerators=>false)

Description
===========

Use this option only in the case you know that the ideal I is already trimmed.

See also
========

  * projectiveVariety -- the closed multi-projective
    subvariety defined by a multi-homogeneous ideal
  * projectiveVariety(...,Saturate=>...) -- whether to compute
    the multi-saturation of the ideal (intended for internal use only)

Functions with optional argument named MinimalGenerators:
=========================================================

  * "canonicalBundle(...,MinimalGenerators=>...)" -- see canonicalBundle (Varieties),
    -- the canonical bundle of a projective variety
  * "compose(Module,Module,Module,MinimalGenerators=>...)" -- see
    compose (Macaulay2Doc), -- composition as a pairing on Hom-modules
  * "cotangentSheaf(...,MinimalGenerators=>...)" -- see cotangentSheaf (Varieties),
    -- cotangent sheaf of a projective variety
  * decompose(Ideal,MinimalGenerators=>...) (missing documentation)
  * dual(SheafMap,MinimalGenerators=>...) (missing documentation)
  * "End(...,MinimalGenerators=>...)" -- see End (Macaulay2Doc), --
    module of endomorphisms
  * "Hom(...,MinimalGenerators=>...)" -- see Hom (Macaulay2Doc), --
    module of homomorphisms
  * "homomorphism'(...,MinimalGenerators=>...)" -- see homomorphism' (Macaulay2Doc),
    -- get the element of Hom from a homomorphism
  * idealSheaf(...,MinimalGenerators=>...) (missing documentation)
  * "intersect(Ideal,Ideal,MinimalGenerators=>...)" -- see
    intersect(Ideal,Ideal) (Macaulay2Doc), --
    compute an intersection of a sequence of ideals or modules
  * "intersect(Module,Module,MinimalGenerators=>...)" -- see
    intersect(Ideal,Ideal) (Macaulay2Doc), --
    compute an intersection of a sequence of ideals or modules
  * projectiveVariety(...,MinimalGenerators=>...)
    -- whether
    to trim the ideal (intended for internal use only)
  * quotient'(...,MinimalGenerators=>...) (missing documentation)
  * "quotient(...,MinimalGenerators=>...)" -- see
    quotient(Module,Module) (Saturation), --
    ideal or submodule quotient
  * "saturate(...,MinimalGenerators=>...)" -- see saturate (Saturation),
    -- saturation of ideal or submodule
  * sheafExt(ZZ,CoherentSheaf,CoherentSheaf,MinimalGenerators=>...) (missing
    documentation)
  * sheafExt(ZZ,CoherentSheaf,SheafOfRings,MinimalGenerators=>...) (missing
    documentation)
  * sheafExt(ZZ,SheafOfRings,CoherentSheaf,MinimalGenerators=>...) (missing
    documentation)
  * sheafExt(ZZ,SheafOfRings,SheafOfRings,MinimalGenerators=>...) (missing
    documentation)
  * "sheafHom(...,MinimalGenerators=>...)" -- see sheafHom (Varieties),
    -- sheaf Hom
  * "tangentSheaf(...,MinimalGenerators=>...)" -- see tangentSheaf (Varieties),
    -- tangent sheaf of a projective variety
  * "truncate(List,Matrix,MinimalGenerators=>...)" -- see
    truncate(List,Matrix) (Truncations), --
    truncation of a map of free modules
  * "truncate(ZZ,Matrix,MinimalGenerators=>...)" -- see
    truncate(List,Matrix) (Truncations), --
    truncation of a map of free modules
  * "truncate(List,Ideal,MinimalGenerators=>...)" -- see
    truncate(List,Module) (Truncations), --
    truncation of the graded ring, ideal or module at a specified degree or set
    of degrees
  * "truncate(List,Module,MinimalGenerators=>...)" -- see
    truncate(List,Module) (Truncations), --
    truncation of the graded ring, ideal or module at a specified degree or set
    of degrees
  * "truncate(List,Ring,MinimalGenerators=>...)" -- see
    truncate(List,Module) (Truncations), --
    truncation of the graded ring, ideal or module at a specified degree or set
    of degrees
  * "truncate(ZZ,Ideal,MinimalGenerators=>...)" -- see
    truncate(List,Module) (Truncations), --
    truncation of the graded ring, ideal or module at a specified degree or set
    of degrees
  * "truncate(ZZ,Module,MinimalGenerators=>...)" -- see
    truncate(List,Module) (Truncations), --
    truncation of the graded ring, ideal or module at a specified degree or set
    of degrees
  * "truncate(ZZ,Ring,MinimalGenerators=>...)" -- see
    truncate(List,Module) (Truncations), --
    truncation of the graded ring, ideal or module at a specified degree or set
    of degrees

Further information
===================

  * Default value: true (Macaulay2Doc),
  * Function: projectiveVariety, -- the closed
    multi-projective subvariety defined by a multi-homogeneous ideal
  * Option key: MinimalGenerators (Macaulay2Doc), --
    whether to compute minimal generators and return a trimmed set of
    generators
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2487:0.

random(List,MultiprojectiveVariety) -- get a random hypersurface of given multi-degree containing a multi-projective variety
****************************************************************************************************************************

  * Function: random (Macaulay2Doc),
  * Usage:
        random(d,X)
  * Inputs:
      * d, a list (Macaulay2Doc), a list of $n$ nonnegative
        integers
      * X, a multi-projective variety, a
        subvariety of $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n}$
  * Optional inputs (Macaulay2Doc),:
      * Density (Macaulay2Doc), => ...,
        default value 1,
      * Height (Macaulay2Doc), => ..., default
        value 10,
      * MaximalRank (Macaulay2Doc), => ...,
        default value false,
      * UpperTriangular (Macaulay2Doc), =>
        ..., default value false,
  * Outputs:
      * a multi-projective variety, a random
        hypersurface in $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n}$ of
        multi-degree $d$ containing $X$

Description
===========

More generally, if d is a list of multi-degrees, then the output is the
intersection of the hypersurfaces random(d_i,X).

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/65521)^(1,3); -- twisted cubic curve                         |
|                                                                             |
|o1 : ProjectiveVariety, curve in PP^3                                        |
+-----------------------------------------------------------------------------+
|i2 : random({2},X);                                                          |
|                                                                             |
|o2 : ProjectiveVariety, surface in PP^3                                      |
+-----------------------------------------------------------------------------+
|i3 : ideal oo                                                                |
|                                                                             |
|            2                         2                                      |
|o3 = ideal(y  - y y  - 68y y  - 20741y  + 68y y  + 20741y y )                |
|            1    0 2      1 2         2      0 3         1 3                 |
|                                                                             |
|                ZZ                                                           |
|o3 : Ideal of -----[y ..y ]                                                  |
|              65521  0   3                                                   |
+-----------------------------------------------------------------------------+
|i4 : random({{2},{2}},X);                                                    |
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^3                                        |
+-----------------------------------------------------------------------------+
|i5 : ideal oo                                                                |
|                                                                             |
|                         2                      2                2           |
|o5 = ideal (y y  + 21021y  - y y  - 21021y y , y  - y y  + 29086y  -         |
|             1 2         2    0 3         1 3   1    0 2         2           |
|     ------------------------------------------------------------------------|
|     29086y y )                                                              |
|           1 3                                                               |
|                                                                             |
|                ZZ                                                           |
|o5 : Ideal of -----[y ..y ]                                                  |
|              65521  0   3                                                   |
+-----------------------------------------------------------------------------+
|i6 : X = X^2;                                                                |
|                                                                             |
|o6 : ProjectiveVariety, X x X                                                |
+-----------------------------------------------------------------------------+
|i7 : random({1,2},X);                                                        |
|                                                                             |
|o7 : ProjectiveVariety, hypersurface in PP^3 x PP^3                          |
+-----------------------------------------------------------------------------+
|i8 : ideal oo                                                                |
|                                                                             |
|                2             2             2            2                   |
|o8 = ideal(x0 x1  + 29294x0 x1  + 16820x0 x1  + 1316x0 x1  - x0 x1 x1  -     |
|             0  1          1  1          2  1         3  1     0  0  2       |
|     ------------------------------------------------------------------------|
|                                                                             |
|     29294x0 x1 x1  - 16820x0 x1 x1  - 1316x0 x1 x1  - 3472x0 x1 x1  -       |
|            1  0  2          2  0  2         3  0  2         0  1  2         |
|     ------------------------------------------------------------------------|
|                                                                 2           |
|     29829x0 x1 x1  + 2976x0 x1 x1  - 23867x0 x1 x1  - 32075x0 x1  +         |
|            1  1  2         2  1  2          3  1  2          0  2           |
|     ------------------------------------------------------------------------|
|               2            2             2                                  |
|     17896x0 x1  - 7591x0 x1  - 19385x0 x1  + 3472x0 x1 x1  + 29829x0 x1 x1  |
|            1  2         2  2          3  2         0  0  3          1  0  3 |
|     ------------------------------------------------------------------------|
|     - 2976x0 x1 x1  + 23867x0 x1 x1  + 32075x0 x1 x1  - 17896x0 x1 x1  +    |
|             2  0  3          3  0  3          0  1  3          1  1  3      |
|     ------------------------------------------------------------------------|
|     7591x0 x1 x1  + 19385x0 x1 x1 )                                         |
|           2  1  3          3  1  3                                          |
|                                                                             |
|                ZZ                                                           |
|o8 : Ideal of -----[x0 ..x0 , x1 ..x1 ]                                      |
|              65521   0    3    0    3                                       |
+-----------------------------------------------------------------------------+
|i9 : random({{1,2},{1,2},{2,0}},X);                                          |
|                                                                             |
|o9 : ProjectiveVariety, threefold in PP^3 x PP^3                             |
+-----------------------------------------------------------------------------+
|i10 : degrees oo                                                             |
|                                                                             |
|o10 = {({1, 2}, 2), ({2, 0}, 1)}                                             |
|                                                                             |
|o10 : List                                                                   |
+-----------------------------------------------------------------------------+

See also
========

  * random(MultiprojectiveVariety),
    -- apply a random automorphism of the ambient multi-projective space

Ways to use this method:
========================

  * random(List,MultiprojectiveVariety)
    -- get a random hypersurface of
    given multi-degree containing a multi-projective variety
  * "random(ZZ,MultiprojectiveVariety)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3537:0.

random(MultiprojectiveVariety) -- apply a random automorphism of the ambient multi-projective space
***************************************************************************************************

  * Function: random (Macaulay2Doc),
  * Usage:
        random X
  * Inputs:
      * X, a multi-projective variety, a
        subvariety of $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n}$
  * Optional inputs (Macaulay2Doc),:
      * Density (Macaulay2Doc), => ...,
        default value 1,
      * Height (Macaulay2Doc), => ..., default
        value 10,
      * MaximalRank (Macaulay2Doc), => ...,
        default value false,
      * UpperTriangular (Macaulay2Doc), =>
        ..., default value false,
  * Outputs:
      * a multi-projective variety, the image of
        $X$ under the action of a random element of
        $\mathrm{Aut}(\mathbb{P}^{k_1})\times\cdots\times\mathrm{Aut}(\mathbb{P
        }^{k_n})$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/65521;                                                           |
+-----------------------------------------------------------------------------+
|i2 : X = PP_K^({1,1},{2,3});                                                 |
|                                                                             |
|o2 : ProjectiveVariety, surface in PP^2 x PP^3                               |
+-----------------------------------------------------------------------------+
|i3 : ideal X                                                                 |
|                                                                             |
|              2                              2             2                 |
|o3 = ideal (x1  - x1 x1 , x1 x1  - x1 x1 , x1  - x1 x1 , x0  - x0 x0 )       |
|              2     1  3    1  2     0  3    1     0  2    1     0  2        |
|                                                                             |
|o3 : Ideal of K[x0 ..x0 , x1 ..x1 ]                                          |
|                  0    2    0    3                                           |
+-----------------------------------------------------------------------------+
|i4 : Y = random X;                                                           |
|                                                                             |
|o4 : ProjectiveVariety, surface in PP^2 x PP^3                               |
+-----------------------------------------------------------------------------+
|i5 : ideal Y                                                                 |
|                                                                             |
|              2                                    2                         |
|o5 = ideal (x1  + 20603x1 x1  - 6053x1 x1  + 6350x1  - 2214x1 x1  -          |
|              1          0  2         1  2         2         0  3            |
|     ------------------------------------------------------------------------|
|                                        2                                    |
|     25885x1 x1  + 10120x1 x1  - 10487x1 , x1 x1  + 32257x1 x1  + 14135x1 x1 |
|            1  3          2  3          3    0  1          0  2          1  2|
|     ------------------------------------------------------------------------|
|             2                                                    2    2     |
|     + 9059x1  - 14139x1 x1  - 18793x1 x1  + 10289x1 x1  + 21002x1 , x1  -   |
|             2          0  3          1  3          2  3          3    0     |
|     ------------------------------------------------------------------------|
|                                      2                                      |
|     14850x1 x1  - 1416x1 x1  - 4590x1  - 29865x1 x1  + 2365x1 x1  +         |
|            0  2         1  2         2          0  3         1  3           |
|     ------------------------------------------------------------------------|
|                         2    2                      2                       |
|     2855x1 x1  - 16986x1 , x0  - 9730x0 x0  - 2767x0  - 29185x0 x0  -       |
|           2  3          3    0         0  1         1          0  2         |
|     ------------------------------------------------------------------------|
|                          2                                                  |
|     15865x0 x0  + 11692x0 )                                                 |
|            1  2          2                                                  |
|                                                                             |
|o5 : Ideal of K[x0 ..x0 , x1 ..x1 ]                                          |
|                  0    2    0    3                                           |
+-----------------------------------------------------------------------------+

See also
========

  * random(List,MultiprojectiveVariety)
    -- get a random hypersurface of
    given multi-degree containing a multi-projective variety
  * permute(MultiprojectiveVariety,List)
    -- permute the factors of the
    ambient multi-projective space
  * EmbeddedProjectiveVariety ===> EmbeddedProjectiveVariety
    -- try to find an
    isomorphism between two projective varieties

Ways to use this method:
========================

  * random(MultiprojectiveVariety),
    -- apply a random automorphism of the ambient multi-projective space
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3551:0.

RAT -- the hom-sets of rational maps between two multi-projective varieties
***************************************************************************

Description
===========

Objects of this type are created by Hom.

See also
========

  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * RAT List -- define a multi-rational map

Methods that use a hom-set:
===========================

  * isMember(MultirationalMap,RAT),
    -- test membership in a hom-set of rational maps
  * RAT List -- define a multi-rational map
  * RAT MultiprojectiveVariety -- rational
    map defined by a linear system of hypersurfaces through a variety
  * "RAT Sequence" -- see RAT MultiprojectiveVariety,
    -- rational map defined by a linear system of
    hypersurfaces through a variety
  * RAT Tally -- rational map defined by an effective divisor

For the programmer
==================

The object RAT, is a type (Macaulay2Doc), with ancestor
classes HashTable (Macaulay2Doc), < Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4056:0.

RAT List -- define a multi-rational map
***************************************

  * Operator: SPACE (Macaulay2Doc),
  * Usage:
        H {F1,F2,...}
        check H {F1,F2,...}
  * Inputs:
      * H, a hom-set, the hom-set of rational maps between two
        multi-projective varieties, X and Y
      * F, a list (Macaulay2Doc), a list of homogeneous row
        matrices over the ring of X of lengths compatible with the shape,
        of Y (these matrices can be replaced
        by the lists of their entries)
  * Outputs:
      * a multi-rational map, the map from X to Y
        defined on coordinates by sending a point p to the point
        (F1(p),F2(p),...)

Description
===========

This is a more controlled way of constructing rational maps than just using the
multirationalMap, function.

+-----------------------------------------------------------------------------+
|i1 : R = ring PP_(ZZ/3)^{1,2};                                               |
+-----------------------------------------------------------------------------+
|i2 : F = {apply(2,i -> random({1,1},R)), apply(4,i -> random({0,1},R)), apply|
|                                                                             |
|o2 = {{- x0 x1  + x0 x1 , x0 x1  + x0 x1  + x0 x1  + x0 x1 }, {- x1  - x1  - |
|           1  0     0  1    0  0     1  0     0  2     1  2        0     1   |
|     ------------------------------------------------------------------------|
|     x1 , - x1  - x1 , - x1  + x1  - x1 , x1  - x1  - x1 }, {-x0 , - x0  -   |
|       2      0     2      0     1     2    0     1     2       0      0     |
|     ------------------------------------------------------------------------|
|     x0 , x0  + x0 }}                                                        |
|       1    0     1                                                          |
|                                                                             |
|o2 : List                                                                    |
|-----------------------------------------------------------------------------|
|(3,i -> random({1,0},R))}                                                    |
+-----------------------------------------------------------------------------+
|i3 : H = Hom(PP_(ZZ/3)^{1,2},PP_(ZZ/3)^{1,3,2})                              |
|                                                                             |
|o3 = H                                                                       |
|                                                                             |
|o3 : Hom(PP^1 x PP^2,PP^1 x PP^3 x PP^2)                                     |
+-----------------------------------------------------------------------------+
|i4 : f = H F;                                                                |
|                                                                             |
|o4 : MultirationalMap (rational map from PP^1 x PP^2 to PP^1 x PP^3 x PP^2)  |
+-----------------------------------------------------------------------------+
|i5 : show f                                                                  |
|                                                                             |
|o5 = -- multi-rational map --                                                |
|                  ZZ                   ZZ                                    |
|     source: Proj(--[x0 , x0 ]) x Proj(--[x1 , x1 , x1 ])                    |
|                   3   0    1           3   0    1    2                      |
|                  ZZ                   ZZ                             ZZ     |
|     target: Proj(--[x0 , x0 ]) x Proj(--[x1 , x1 , x1 , x1 ]) x Proj(--[x2 ,|
|                   3   0    1           3   0    1    2    3           3   0 |
|     -- rational map 1/3 --                                                  |
|     map 1/3, one of its representatives:                                    |
|     {                                                                       |
|      - x0 x1  + x0 x1 ,                                                     |
|          1  0     0  1                                                      |
|                                                                             |
|      x0 x1  + x0 x1  + x0 x1  + x0 x1                                       |
|        0  0     1  0     0  2     1  2                                      |
|     }                                                                       |
|     -- rational map 2/3 --                                                  |
|     map 2/3, one of its representatives:                                    |
|     {                                                                       |
|      - x1  - x1  - x1 ,                                                     |
|          0     1     2                                                      |
|                                                                             |
|      - x1  - x1 ,                                                           |
|          0     2                                                            |
|                                                                             |
|      - x1  + x1  - x1 ,                                                     |
|          0     1     2                                                      |
|                                                                             |
|      x1  - x1  - x1                                                         |
|        0     1     2                                                        |
|     }                                                                       |
|     -- rational map 3/3 --                                                  |
|     map 3/3, one of its representatives:                                    |
|     {                                                                       |
|      -x0 ,                                                                  |
|         0                                                                   |
|                                                                             |
|      - x0  - x0 ,                                                           |
|          0     1                                                            |
|                                                                             |
|      x0  + x0                                                               |
|        0     1                                                              |
|     }                                                                       |
|-----------------------------------------------------------------------------|
|x2 , x2 ])                                                                   |
|  1    2                                                                     |
+-----------------------------------------------------------------------------+

The following equality is satisfied for every rational map,
f.

+------------------------------------------------------+
|i6 : assert( f == (Hom(source f,target f)) entries f )|
+------------------------------------------------------+

Here it is shown how to make a dominant rational map.

+-----------------------------------------------------------------------------+
|i7 : H' = Hom(PP_(ZZ/3)^{1,2},Dominant);                                     |
|                                                                             |
|o7 : Hom(PP^1 x PP^2,*,Dominant)                                             |
+-----------------------------------------------------------------------------+
|i8 : H' F                                                                    |
|                                                                             |
|o8 = multi-rational map consisting of 3 rational maps                        |
|     source variety: PP^1 x PP^2                                             |
|     target variety: threefold in PP^1 x PP^3 x PP^2 cut                     |
|     dominance: true                                                         |
|                                                                             |
|o8 : MultirationalMap (dominant rational map from PP^1 x                     |
|-----------------------------------------------------------------------------|
|out by 3 hypersurfaces of multi-degrees (0,0,1)^1 (0,1,0)^1 (1,1,1)^1        |
|                                                                             |
|                                                                             |
|PP^2 to threefold in PP^1 x PP^3 x PP^2)                                     |
+-----------------------------------------------------------------------------+
|i9 : assert(image oo == target oo)                                           |
+-----------------------------------------------------------------------------+

See also
========

  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * RAT MultiprojectiveVariety -- rational
    map defined by a linear system of hypersurfaces through a variety
  * RAT Tally -- rational map defined by an effective divisor
  * entries(MultirationalMap) -- list the
    defining polynomials of a rational map

Ways to use this method:
========================

  * RAT List -- define a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4097:0.

RAT MultiprojectiveVariety -- rational map defined by a linear system of hypersurfaces through a variety
********************************************************************************************************

  * Operator: SPACE (Macaulay2Doc),
  * Usage:
        H(Z,d,m)
        H(Z,d)
        H(Z)
  * Inputs:
      * a hom-set, the hom-set of rational maps between two
        varieties X and Y
      * Z, a multi-projective variety, a
        subvariety, of $X$; d
        is a (multi-)degree and e is a multiplicity (by default, e=1 and d is
        the maximum degree of the generators)
  * Outputs:
      * a multi-rational map, the map
        $X\dashrightarrow Y$ defined by the linear system of hypersurfaces of
        degree $d$ having points of multiplicity $e$ along $Z$

Description
===========

This is another way of calling the method
(rationalMap,MultiprojectiveVariety,List,ZZ).

+-----------------------------------------------------------------------------+
|i1 : X = random(3,0_(PP_(ZZ/17)^2));                                         |
|                                                                             |
|o1 : ProjectiveVariety, curve in PP^2                                        |
+-----------------------------------------------------------------------------+
|i2 : Y = PP_(ZZ/17)^4;                                                       |
|                                                                             |
|o2 : ProjectiveVariety, PP^4                                                 |
+-----------------------------------------------------------------------------+
|i3 : H = Hom(X,Y);                                                           |
|                                                                             |
|o3 : Hom(X,Y)                                                                |
+-----------------------------------------------------------------------------+
|i4 : Z = point X + point X;                                                  |
|                                                                             |
|o4 : ProjectiveVariety, 0-dimensional subvariety of PP^2                     |
+-----------------------------------------------------------------------------+
|i5 : H(Z,3,2) -- map defined by the cubics with double points along Z        |
|                                                                             |
|o5 = multi-rational map consisting of one single rational map                |
|     source variety: curve in PP^2 defined by a form of degree 3             |
|     target variety: PP^4                                                    |
|                                                                             |
|o5 : MultirationalMap (rational map from X to Y)                             |
+-----------------------------------------------------------------------------+
|i6 : show oo                                                                 |
|                                                                             |
|o6 = -- multi-rational map --                                                |
|                                ZZ                                           |
|     source: subvariety of Proj(--[x , x , x ]) defined by                   |
|                                17  0   1   2                                |
|             {                                                               |
|               3     2         2     3     2                 2         2     |
|              x  - 3x x  - 7x x  - 7x  - 4x x  - 7x x x  - 5x x  + 6x x  -   |
|               0     0 1     0 1     1     0 2     0 1 2     1 2     0 2     |
|             }                                                               |
|                  ZZ                                                         |
|     target: Proj(--[x , x , x , x , x ])                                    |
|                  17  0   1   2   3   4                                      |
|     -- rational map 1/1 --                                                  |
|     map 1/1, one of its representatives:                                    |
|     {                                                                       |
|       2         2     2                   2                                 |
|      x x  + 7x x  - 5x x  + 3x x x  - 3x x ,                                |
|       0 1     0 1     0 2     0 1 2     0 2                                 |
|                                                                             |
|         2     3               2         2                                   |
|      x x  + 7x  - 5x x x  + 3x x  - 3x x ,                                  |
|       0 1     1     0 1 2     1 2     1 2                                   |
|                                                                             |
|                 2         2       2     3                                   |
|      x x x  + 7x x  - 5x x  + 3x x  - 3x ,                                  |
|       0 1 2     1 2     0 2     1 2     2                                   |
|                                                                             |
|       2       3               2         2                                   |
|      x x  + 3x  + 3x x x  - 4x x  - 6x x ,                                  |
|       0 1     1     0 1 2     1 2     1 2                                   |
|                                                                             |
|       2       2         2       2     3                                     |
|      x x  + 3x x  + 3x x  - 4x x  - 6x                                      |
|       0 2     1 2     0 2     1 2     2                                     |
|     }                                                                       |
|-----------------------------------------------------------------------------|
|    2     3                                                                  |
|4x x  - 7x                                                                   |
|  1 2     2                                                                  |
+-----------------------------------------------------------------------------+

As always, you can invoke the functions check,
and isWellDefined,
to check if the map is valid.

+------------------------------------------------------------------+
|i7 : X = PP_(ZZ/17)^{1,1};                                        |
|                                                                  |
|o7 : ProjectiveVariety, PP^1 x PP^1                               |
+------------------------------------------------------------------+
|i8 : H = Hom(X,image segreEmbedding X);                           |
|                                                                  |
|o8 : Hom(X,surface in PP^3)                                       |
+------------------------------------------------------------------+
|i9 : check H(0_X,{1,1}) -- Segre embedding of X                   |
|                                                                  |
|o9 = multi-rational map consisting of one single rational map     |
|     source variety: PP^1 x PP^1                                  |
|     target variety: surface in PP^3 defined by a form of degree 2|
|                                                                  |
|o9 : MultirationalMap (rational map from X to surface in PP^3)    |
+------------------------------------------------------------------+
|i10 : show oo                                                     |
|                                                                  |
|o10 = -- multi-rational map --                                    |
|                   ZZ                   ZZ                        |
|      source: Proj(--[x0 , x0 ]) x Proj(--[x1 , x1 ])             |
|                   17   0    1          17   0    1               |
|                                 ZZ                               |
|      target: subvariety of Proj(--[t , t , t , t ]) defined by   |
|                                 17  0   1   2   3                |
|              {                                                   |
|               t t  - t t                                         |
|                1 2    0 3                                        |
|              }                                                   |
|      -- rational map 1/1 --                                      |
|      map 1/1, one of its representatives:                        |
|      {                                                           |
|       x0 x1 ,                                                    |
|         0  0                                                     |
|                                                                  |
|       x0 x1 ,                                                    |
|         0  1                                                     |
|                                                                  |
|       x0 x1 ,                                                    |
|         1  0                                                     |
|                                                                  |
|       x0 x1                                                      |
|         1  1                                                     |
|      }                                                           |
+------------------------------------------------------------------+

See also
========

  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * shortcuts -- Some convenient shortcuts for multi-rational
    maps consisting of a single rational map
  * rationalMap(Ideal,ZZ,ZZ) (Cremona),
    -- makes a rational map from an ideal

Ways to use this method:
========================

  * RAT MultiprojectiveVariety -- rational
    map defined by a linear system of hypersurfaces through a variety
  * "RAT Sequence"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4136:0.

RAT Tally -- rational map defined by an effective divisor
*********************************************************

  * Operator: SPACE (Macaulay2Doc),
  * Usage:
        H D
        check H D
  * Inputs:
      * H, a hom-set, the hom-set of rational maps between two
        varieties X and Y
      * D, a tally (Macaulay2Doc), a multiset of pure codimension
        1 subschemes, of
        $X$ with no embedded components; so that D is interpreted as an
        effective divisor on $X$
  * Outputs:
      * a multi-rational map, the rational map defined
        by the complete linear system $|D|$

Description
===========

This is another way of calling rationalMap(MultiprojectiveVariety,Tally).

+-----------------------------------------------------------------+
|i1 : X = random(3,0_(PP_(ZZ/5)^2));                              |
|                                                                 |
|o1 : ProjectiveVariety, curve in PP^2                            |
+-----------------------------------------------------------------+
|i2 : Y = PP_(ZZ/5)^4;                                            |
|                                                                 |
|o2 : ProjectiveVariety, PP^4                                     |
+-----------------------------------------------------------------+
|i3 : H = Hom(X,Y);                                               |
|                                                                 |
|o3 : Hom(X,Y)                                                    |
+-----------------------------------------------------------------+
|i4 : D = tally toList(5:point X)                                 |
|                                                                 |
|o4 = Tally{point of coordinates [1, -1, 1] => 5}                 |
|                                                                 |
|o4 : Tally                                                       |
+-----------------------------------------------------------------+
|i5 : H D                                                         |
|                                                                 |
|o5 = multi-rational map consisting of one single rational map    |
|     source variety: curve in PP^2 defined by a form of degree 3 |
|     target variety: PP^4                                        |
|                                                                 |
|o5 : MultirationalMap (rational map from X to Y)                 |
+-----------------------------------------------------------------+
|i6 : show oo                                                     |
|                                                                 |
|o6 = -- multi-rational map --                                    |
|                                ZZ                               |
|     source: subvariety of Proj(--[x , x , x ]) defined by       |
|                                 5  0   1   2                    |
|             {                                                   |
|               3      2    3     2       2        2      2    3  |
|              x  + x x  + x  + 2x x  - 2x x  - x x  + x x  + x   |
|               0    0 1    1     0 2     1 2    0 2    1 2    2  |
|             }                                                   |
|                  ZZ                                             |
|     target: Proj(--[x , x , x , x , x ])                        |
|                   5  0   1   2   3   4                          |
|     -- rational map 1/1 --                                      |
|     map 1/1, one of its representatives:                        |
|     {                                                           |
|       2 2         2 2    3 2    2 3     2 3       4      4    5 |
|      x x x  - 2x x x  - x x  + x x  + 2x x  + 2x x  - x x  - x ,|
|       0 1 2     0 1 2    1 2    0 2     1 2     0 2    1 2    2 |
|                                                                 |
|         3      2   2    3 2         3      4                    |
|      x x x  + x x x  - x x  - 2x x x  + x x ,                   |
|       0 1 2    0 1 2    1 2     0 1 2    1 2                    |
|                                                                 |
|         2 2    2 3    2 3       4    5                          |
|      x x x  + x x  - x x  - 2x x  + x ,                         |
|       0 1 2    0 2    1 2     0 2    2                          |
|                                                                 |
|       2 2      4       2   2    3 2        3       4            |
|      x x x  + x x  + 2x x x  - x x  - x x x  + 2x x ,           |
|       0 1 2    1 2     0 1 2    1 2    0 1 2     1 2            |
|                                                                 |
|       2   2    3 2     2 3    2 3      4     5                  |
|      x x x  + x x  + 2x x  - x x  - x x  + 2x                   |
|       0 1 2    1 2     0 2    1 2    0 2     2                  |
|     }                                                           |
+-----------------------------------------------------------------+

See also
========

  * Hom(MultiprojectiveVariety,MultiprojectiveVariety)
    -- get the
    hom-set of rational maps between two multi-projective varieties
  * rationalMap(MultiprojectiveVariety,Tally)
    -- rational map defined by
    an effective divisor
  * RAT MultiprojectiveVariety -- rational
    map defined by a linear system of hypersurfaces through a variety

Ways to use this method:
========================

  * RAT Tally -- rational map defined by an effective divisor
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4113:0.

rationalMap(MultiprojectiveVariety,Tally) -- rational map defined by an effective divisor
*****************************************************************************************

  * Function: rationalMap (Cremona),
  * Usage:
        rationalMap(X,D)
  * Inputs:
      * X, a multi-projective variety,
      * D, a tally (Macaulay2Doc), a multiset of pure codimension
        1 subschemes, of
        $X$ with no embedded components; so that D is interpreted as an
        effective divisor on $X$
  * Optional inputs (Macaulay2Doc),:
      * Dominant (Cremona), => ..., default value null,
  * Outputs:
      * a multi-rational map, the rational map defined
        by the complete linear system $|D|$

Description
===========

In the example below, we take a smooth complete intersection
$X\subset\mathbb{P}^5$ of three quadrics containing a conic
$C\subset\mathbb{P}^5$. Then we calculate the map defined by the linear system
$|2H+C|$, where $H$ is the hyperplane section class of $X$.

+------------------------------------------------------+
|i1 : P5 = PP_(ZZ/65521)^5;                            |
|                                                      |
|o1 : ProjectiveVariety, PP^5                          |
+------------------------------------------------------+
|i2 : C = random({{2},3:{1}},0_P5);                    |
|                                                      |
|o2 : ProjectiveVariety, curve in PP^5                 |
+------------------------------------------------------+
|i3 : X = random({3:{2}},C);                           |
|                                                      |
|o3 : ProjectiveVariety, surface in PP^5               |
+------------------------------------------------------+
|i4 : H = random(1,0_X); -- it's interpreted as X * H  |
|                                                      |
|o4 : ProjectiveVariety, hypersurface in PP^5          |
+------------------------------------------------------+
|i5 : D = tally {H, H, C}                              |
|                                                      |
|o5 = Tally{C => 1}                                    |
|           H => 2                                     |
|                                                      |
|o5 : Tally                                            |
+------------------------------------------------------+
|i6 : phi = rationalMap(X,D)                           |
|                                                      |
|o6 = phi                                              |
|                                                      |
|o6 : MultirationalMap (rational map from X to PP^20)  |
+------------------------------------------------------+
|i7 : assert(phi == rationalMap(X,tally {X*H, X*H, C}))|
+------------------------------------------------------+

This function is based internally on the function
rationalMap(Ring,Tally) (Cremona), provided by
the package Cremona.

See also
========

  * rationalMap(Ring,Tally) (Cremona), --
    rational map defined by an effective divisor

Ways to use this method:
========================

  * "rationalMap(EmbeddedProjectiveVariety,Tally,ZZ)"
  * rationalMap(MultiprojectiveVariety,Tally)
    -- rational map defined by
    an effective divisor
  * "rationalMap(MultiprojectiveVariety,Tally,List)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4041:0.

ring(MultiprojectiveVariety) -- the coordinate ring of the variety
******************************************************************

  * Function: ring (Macaulay2Doc),
  * Usage:
        ring X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a ring (Macaulay2Doc), the coordinate ring of $X$

Description
===========

+--------------------------------------------------+
|i1 : X = PP_QQ^({2,1},{1,3});                     |
|                                                  |
|o1 : ProjectiveVariety, threefold in PP^2 x PP^3  |
+--------------------------------------------------+
|i2 : ring X                                       |
|                                                  |
|                 QQ[x0 ..x0 , x1 ..x1 ]           |
|                      0    2    0    3            |
|o2 = ---------------------------------------------|
|        2                              2          |
|     (x1  - x1 x1 , x1 x1  - x1 x1 , x1  - x1 x1 )|
|        2     1  3    1  2     0  3    1     0  2 |
|                                                  |
|o2 : QuotientRing                                 |
+--------------------------------------------------+

See also
========

  * ideal(MultiprojectiveVariety), --
    the defining ideal of the variety
  * coefficientRing(MultiprojectiveVariety)
    -- the coefficient ring of the
    variety

Ways to use this method:
========================

  * ring(MultiprojectiveVariety), --
    the coordinate ring of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2563:0.

Saturate -- whether to compute the multi-saturation of the ideal (intended for internal use only)
*************************************************************************************************

  * Usage:
        projectiveVariety(I,Saturate=>false)

Description
===========

Use this option only in the case you know that the ideal I is already
multi-saturated, otherwise nonsensical answers may result.

See also
========

  * projectiveVariety -- the closed multi-projective
    subvariety defined by a multi-homogeneous ideal
  * projectiveVariety(...,MinimalGenerators=>...)
    -- whether
    to trim the ideal (intended for internal use only)

Functions with optional argument named Saturate:
================================================

  * "projectiveVariety(...,Saturate=>...)"

For the programmer
==================

The object Saturate, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2481:0.

schubertCycle -- take a random Schubert cycle
*********************************************

  * Usage:
        schubertCycle(a,G)
  * Inputs:
      * a, a visible list (Macaulay2Doc), a list of integers
        $a = (a_0,\ldots,a_k)$ with $n-k\geq a_0 \geq \cdots \geq a_k \geq 0$
      * G, a Grassmannian variety, which
        parametrizes the $k$-dimensional subspaces of $\mathbb{P}^n$
  * Optional inputs (Macaulay2Doc),:
      * Standard => ..., default value false
  * Outputs:
      * an embedded projective variety, the
        Schubert cycle $\Sigma_a(\mathcal P)\subset\mathbb{G}(k,n)$ associated
        to a random complete flag $\mathcal P$ of nested projective subspace
        $\emptyset\subset P_0\subset \cdots \subset P_{n-1} \subset P_{n} =
        \mathbb{P}^n$ with $dim(P_i)=i$

Description
===========

For the general theory, see e.g. the book 3264 & All That - Intersection Theory
in Algebraic Geometry (see
https://scholar.harvard.edu/files/joeharris/files/000-final-3264.pdf ), by D.
Eisenbud and J. Harris.

+-----------------------------------------------------------------------------+
|i1 : G = GG(ZZ/33331,1,5);                                                   |
|                                                                             |
|o1 : ProjectiveVariety, GG(1,5)                                              |
+-----------------------------------------------------------------------------+
|i2 : S = schubertCycle({2,1},G)                                              |
|                                                                             |
|o2 = S                                                                       |
|                                                                             |
|o2 : ProjectiveVariety, 5-dimensional subvariety of PP^14 (subvariety of     |
|-----------------------------------------------------------------------------|
|codimension 3 in G)                                                          |
+-----------------------------------------------------------------------------+
|i3 : cycleClass S                                                            |
|                                                                             |
|o3 = s                                                                       |
|      2,1                                                                    |
|                                                                             |
|o3 : ZZ[s   , s   ]                                                          |
|         3,0   2,1                                                           |
+-----------------------------------------------------------------------------+

See also
========

  * cycleClass -- determine the expression of the class of a
    cycle as a linear combination of Schubert classes

Ways to use schubertCycle:
==========================

  * "schubertCycle(VisibleList,GrassmannianVariety)"

For the programmer
==================

The object schubertCycle, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:4031:0.

sectionalGenus -- the sectional genus of an embedded projective variety
***********************************************************************

  * Usage:
        sectionalGenus X
  * Inputs:
      * X, an embedded projective variety, a
        positive dimensional variety
  * Outputs:
      * an integer (Macaulay2Doc), the sectional arithmetic genus of
        X

Description
===========

+-----------------------------------------+
|i1 : X = PP_QQ^(3,2);                    |
|                                         |
|o1 : ProjectiveVariety, threefold in PP^9|
+-----------------------------------------+
|i2 : sectionalGenus X                    |
|                                         |
|o2 = 1                                   |
+-----------------------------------------+

See also
========

  * genera(ProjectiveVariety) (Varieties)

Ways to use sectionalGenus:
===========================

  * "sectionalGenus(EmbeddedProjectiveVariety)"

For the programmer
==================

The object sectionalGenus, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3837:0.

segre(MultiprojectiveVariety) -- the Segre embedding of the variety
*******************************************************************

  * Function: segre (Cremona),
  * Usage:
        segre X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a rational map (Cremona), the map returned by
        segre (Cremona), ring,
        $X$

Description
===========

This function is intended for internal use. Use the segreEmbedding,
function instead.

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/3331)^({2,1,1},{2,1,3});                                     |
|                                                                             |
|o1 : ProjectiveVariety, 4-dimensional subvariety of PP^5 x PP^1 x PP^3       |
+-----------------------------------------------------------------------------+
|i2 : segre X                                                                 |
|                                                                             |
|o2 = -- rational map --                                                      |
|                                 ZZ                                          |
|     source: subvariety of Proj(----[x0 , x0 ,                               |
|                                3331   0    1                                |
|             {                                                               |
|                2                                                            |
|              x2  - x2 x2 ,                                                  |
|                2     1  3                                                   |
|                                                                             |
|              x2 x2  - x2 x2 ,                                               |
|                1  2     0  3                                                |
|                                                                             |
|                2                                                            |
|              x2  - x2 x2 ,                                                  |
|                1     0  2                                                   |
|                                                                             |
|                2                                                            |
|              x0  - x0 x0 ,                                                  |
|                4     3  5                                                   |
|                                                                             |
|              x0 x0  - x0 x0 ,                                               |
|                2  4     1  5                                                |
|                                                                             |
|              x0 x0  - x0 x0 ,                                               |
|                2  3     1  4                                                |
|                                                                             |
|                2                                                            |
|              x0  - x0 x0 ,                                                  |
|                2     0  5                                                   |
|                                                                             |
|              x0 x0  - x0 x0 ,                                               |
|                1  2     0  4                                                |
|                                                                             |
|                2                                                            |
|              x0  - x0 x0                                                    |
|                1     0  3                                                   |
|             }                                                               |
|                   ZZ                                                        |
|     target: Proj(----[t , t , t , t , t , t ,                               |
|                  3331  0   1   2   3   4   5                                |
|     defining forms: {                                                       |
|                      x0 x1 x2 ,                                             |
|                        0  0  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  0  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  0  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  0  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  1  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  1  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  1  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        0  1  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  0  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  0  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  0  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  0  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  1  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  1  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  1  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        1  1  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  0  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  0  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  0  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  0  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  1  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  1  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  1  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        2  1  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  0  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  0  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  0  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  0  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  1  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  1  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  1  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        3  1  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  0  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  0  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  0  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  0  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  1  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  1  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  1  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        4  1  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  0  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  0  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  0  2                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  0  3                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  1  0                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  1  1                                              |
|                                                                             |
|                      x0 x1 x2 ,                                             |
|                        5  1  2                                              |
|                                                                             |
|                      x0 x1 x2                                               |
|                        5  1  3                                              |
|                     }                                                       |
|                                                                             |
|o2 : MultihomogeneousRationalMap (rational map                               |
|-----------------------------------------------------------------------------|
|                             ZZ                     ZZ                       |
|x0 , x0 , x0 , x0 ]) x Proj(----[x1 , x1 ]) x Proj(----[x2 , x2 , x2 ,       |
|  2    3    4    5          3331   0    1          3331   0    1    2        |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|t , t , t , t , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  ,       |
| 6   7   8   9   10   11   12   13   14   15   16   17   18   19   20        |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|from 4-dimensional subvariety of PP^5 x PP^1 x PP^3 to PP^47)                |
|-----------------------------------------------------------------------------|
|x2 ]) defined by                                                             |
|  3                                                                          |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  ,   |
| 21   22   23   24   25   26   27   28   29   30   31   32   33   34   35    |
|-----------------------------------------------------------------------------|
|t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  , t  ])                 |
| 36   37   38   39   40   41   42   43   44   45   46   47                   |
+-----------------------------------------------------------------------------+

See also
========

  * segreEmbedding(MultiprojectiveVariety) -- the Segre
    embedding of the variety
  * segre (Cremona) -- Segre embedding

Ways to use this method:
========================

  * segre(MultiprojectiveVariety), --
    the Segre embedding of the variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2628:0.

segre(MultirationalMap) -- the composition of a multi-rational map with the Segre embedding of the target
*********************************************************************************************************

  * Function: segre (Cremona),
  * Usage:
        segre Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a rational map (Cremona), the composition of the
        multi-rational map Phi with the Segre embedding,
        of the target, of Phi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : ZZ/65521[x_0..x_4];                                                     |
+-----------------------------------------------------------------------------+
|i2 : f = rationalMap({x_3^2-x_2*x_4,x_2*x_3-x_1*x_4,x_1*x_3-x_0*x_4,x_2^2-x_ |
|                                                                             |
|o2 : RationalMap (quadratic dominant rational map from PP^4 to hypersurface  |
|-----------------------------------------------------------------------------|
|0*x_4,x_1*x_2-x_0*x_3,x_1^2-x_0*x_2},Dominant=>true);                        |
|                                                                             |
|in PP^5)                                                                     |
+-----------------------------------------------------------------------------+
|i3 : g = rationalMap {x_3^2-x_2*x_4,x_2*x_3-x_1*x_4,x_1*x_3-x_0*x_4,x_2^2-x_0|
|                                                                             |
|o3 : RationalMap (quadratic rational map from PP^4 to PP^4)                  |
|-----------------------------------------------------------------------------|
|*x_4,x_1*x_2-x_0*x_3};                                                       |
+-----------------------------------------------------------------------------+
|i4 : h = rationalMap {-x_3^2+x_2*x_4,2*x_2*x_3-2*x_1*x_4,-3*x_2^2+2*x_1*x_3+x|
|                                                                             |
|o4 : RationalMap (quadratic rational map from PP^4 to PP^4)                  |
|-----------------------------------------------------------------------------|
|_0*x_4, 2*x_1*x_2-2*x_0*x_3,-x_1^2+x_0*x_2};                                 |
+-----------------------------------------------------------------------------+
|i5 : Phi = rationalMap {f,g,h};                                              |
|                                                                             |
|o5 : MultirationalMap (rational map from PP^4 to hypersurface in PP^5 x PP^4 |
|-----------------------------------------------------------------------------|
|x PP^4)                                                                      |
+-----------------------------------------------------------------------------+
|i6 : time segre Phi;                                                         |
| -- used 0.865571s (cpu); 0.716791s (thread); 0s (gc)                        |
|                                                                             |
|o6 : RationalMap (rational map from PP^4 to PP^149)                          |
+-----------------------------------------------------------------------------+
|i7 : describe segre Phi                                                      |
|                                                                             |
|o7 = rational map defined by forms of degree 6                               |
|     source variety: PP^4                                                    |
|     target variety: PP^149                                                  |
|     coefficient ring: ZZ/65521                                              |
+-----------------------------------------------------------------------------+

See also
========

  * segreEmbedding(MultiprojectiveVariety) -- the Segre
    embedding of the variety

Ways to use this method:
========================

  * segre(MultirationalMap) -- the
    composition of a multi-rational map with the Segre embedding of the target
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3098:0.

segreEmbedding -- the Segre embedding of the variety
****************************************************

  * Usage:
        segreEmbedding X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a multi-rational map, the Segre embedding of X
        (calculated through segre (Cremona), ring,
        $X$)

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/3331)^({2,1,1},{2,1,3});                                     |
|                                                                             |
|o1 : ProjectiveVariety, 4-dimensional subvariety of PP^5 x PP^1 x PP^3       |
+-----------------------------------------------------------------------------+
|i2 : segreEmbedding X                                                        |
|                                                                             |
|o2 = multi-rational map consisting of one single rational map                |
|     source variety: 4-dimensional subvariety of PP^5 x PP^1 x PP^3 cut out  |
|     target variety: PP^47                                                   |
|                                                                             |
|o2 : MultirationalMap (rational map from X to PP^47)                         |
|-----------------------------------------------------------------------------|
|by 9 hypersurfaces of multi-degrees (0,0,2)^3 (2,0,0)^6                      |
+-----------------------------------------------------------------------------+

See also
========

  * segre (Cremona) -- Segre embedding
  * segre(MultirationalMap) -- the
    composition of a multi-rational map with the Segre embedding of the target

Ways to use segreEmbedding:
===========================

  * "segreEmbedding(MultiprojectiveVariety)"

For the programmer
==================

The object segreEmbedding, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2636:0.

shape(MultiprojectiveVariety) -- shape of the ambient multi-projective space of a multi-projective variety
**********************************************************************************************************

  * Function: shape (SparseResultants),
  * Usage:
        shape X
  * Inputs:
      * M, a multi-projective variety, a
        subvariety of $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_{n}}$
  * Outputs:
      * a list (Macaulay2Doc), the list of integers $\{k_1, \ldots,
        k_n\}$

Description
===========

+-----------------------------------------------------+
|i1 : X = PP_(ZZ/65521)^{2,3,1};                      |
|                                                     |
|o1 : ProjectiveVariety, PP^2 x PP^3 x PP^1           |
+-----------------------------------------------------+
|i2 : shape X                                         |
|                                                     |
|o2 = {2, 3, 1}                                       |
|                                                     |
|o2 : List                                            |
+-----------------------------------------------------+
|i3 : p = point X;                                    |
|                                                     |
|o3 : ProjectiveVariety, a point in PP^2 x PP^3 x PP^1|
+-----------------------------------------------------+
|i4 : shape p                                         |
|                                                     |
|o4 = {2, 3, 1}                                       |
|                                                     |
|o4 : List                                            |
+-----------------------------------------------------+

See also
========

  * shape(MultidimensionalMatrix) (SparseResultants) -- shape of a
    multidimensional matrix

Ways to use this method:
========================

  * shape(MultiprojectiveVariety), --
    shape of the ambient multi-projective space of a multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3580:0.

shortcuts -- Some convenient shortcuts for multi-rational maps consisting of a single rational map
**************************************************************************************************

  * Usage:
        rationalMap X <==> multirationalMap {rationalMap ideal X}
        rationalMap(X,a) <==> multirationalMap {rationalMap(ideal X,a)}
        rationalMap(X,a,b) <==> multirationalMap {rationalMap(ideal X,a,b)}
        multirationalMap f <==> multirationalMap {f}
  * Inputs:
      * X, a multi-projective variety,
      * a, an integer (Macaulay2Doc), or a list (Macaulay2Doc),
        of integers
      * b, an integer (Macaulay2Doc),
      * f, a rational map (Cremona),
+-----------------------------------------------------------------+
|i1 : X = PP_QQ^(1,3);                                            |
|                                                                 |
|o1 : ProjectiveVariety, curve in PP^3                            |
+-----------------------------------------------------------------+
|i2 : a = 4, b = 2;                                               |
+-----------------------------------------------------------------+
|i3 : phi = rationalMap X;                                        |
|                                                                 |
|o3 : MultirationalMap (rational map from PP^3 to PP^2)           |
+-----------------------------------------------------------------+
|i4 : assert(phi <==> multirationalMap {rationalMap ideal X})     |
+-----------------------------------------------------------------+
|i5 : phi = rationalMap(X,a);                                     |
|                                                                 |
|o5 : MultirationalMap (rational map from PP^3 to PP^21)          |
+-----------------------------------------------------------------+
|i6 : assert(phi <==> multirationalMap {rationalMap(ideal X,a)})  |
+-----------------------------------------------------------------+
|i7 : phi = rationalMap(X,a,b);                                   |
|                                                                 |
|o7 : MultirationalMap (rational map from PP^3 to PP^5)           |
+-----------------------------------------------------------------+
|i8 : assert(phi <==> multirationalMap {rationalMap(ideal X,a,b)})|
+-----------------------------------------------------------------+

If you want to consider $X$ as a subvariety of another multi-projective variety
$Y$, you may use the command X_Y. For instance, rationalMap(X_Y,a) returns the
rational map from $Y$ defined by a basis of the linear system
$|H^0(Y,\mathcal{I}_{X\subseteq Y}(a))|$ (basically, this is equivalent to
trim((rationalMap(X,a))|Y)).

+-----------------------------------------------------+
|i9 : Y = random(3,X);                                |
|                                                     |
|o9 : ProjectiveVariety, surface in PP^3              |
+-----------------------------------------------------+
|i10 : rationalMap(X_Y,a);                            |
|                                                     |
|o10 : MultirationalMap (rational map from Y to PP^17)|
+-----------------------------------------------------+
|i11 : rationalMap X_Y;                               |
|                                                     |
|o11 : MultirationalMap (rational map from Y to PP^2) |
+-----------------------------------------------------+

See also
========

  * rationalMap(Ideal) (Cremona), --
    makes a rational map from an ideal
  * rationalMap(Ideal,ZZ) (Cremona), --
    makes a rational map from an ideal
  * rationalMap(Ideal,ZZ,ZZ) (Cremona),
    -- makes a rational map from an ideal
  * MultirationalMap <==> MultirationalMap
    -- equality of multi-rational maps with checks on
    internal data
  * toRationalMap -- convert a multi-rational map
    consisting of a single rational map to a standard rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3725:0.

show(MultirationalMap) -- display a multi-rational map
******************************************************

  * Function: show (Macaulay2Doc),
  * Usage:
        show Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a net (Macaulay2Doc), a net of Phi

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = inverse first graph last graph rationalMap PP_(ZZ/33331)^(1,      |
|                                                                             |
|o1 = Phi                                                                     |
|                                                                             |
|o1 : MultirationalMap (birational map from threefold in PP^3 x PP^2 to       |
|-----------------------------------------------------------------------------|
|3)                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|threefold in PP^3 x PP^2 x PP^2)                                             |
+-----------------------------------------------------------------------------+
|i2 : time describe Phi                                                       |
| -- used 0.223684s (cpu); 0.172399s (thread); 0s (gc)                        |
|                                                                             |
|o2 = multi-rational map consisting of 3 rational maps                        |
|     source variety: threefold in PP^3 x PP^2 cut out by                     |
|     target variety: threefold in PP^3 x PP^2 x PP^2 cut                     |
|     base locus: empty subscheme of PP^3 x PP^2                              |
|     dominance: true                                                         |
|     multidegree: {10, 14, 19, 25}                                           |
|     degree: 1                                                               |
|     degree sequence (map 1/3): [(1,0)]                                      |
|     degree sequence (map 2/3): [(0,1), (2,0)]                               |
|     degree sequence (map 3/3): [(0,1), (2,0)]                               |
|     coefficient ring: ZZ/33331                                              |
|-----------------------------------------------------------------------------|
|2 hypersurfaces of multi-degree (1,1)                                        |
|out by 7 hypersurfaces of multi-degrees (0,1,1)^3 (1,0,1)^2 (1,1,0)^2        |
+-----------------------------------------------------------------------------+
|i3 : show Phi                                                                |
|                                                                             |
|o3 = -- multi-rational map --                                                |
|                                  ZZ                                ZZ       |
|     source: subvariety of Proj(-----[x0 , x0 , x0 , x0 ]) x Proj(-----[x1 , |
|                                33331   0    1    2    3          33331   0  |
|             {                                                               |
|              x0 x1  - x0 x1  + x0 x1 ,                                      |
|                1  0     2  1     3  2                                       |
|                                                                             |
|              x0 x1  - x0 x1  + x0 x1                                        |
|                0  0     1  1     2  2                                       |
|             }                                                               |
|                                  ZZ                                ZZ       |
|     target: subvariety of Proj(-----[x0 , x0 , x0 , x0 ]) x Proj(-----[x1 , |
|                                33331   0    1    2    3          33331   0  |
|             {                                                               |
|              x1 x2  - x1 x2 ,                                               |
|                2  1     1  2                                                |
|                                                                             |
|              x1 x2  - x1 x2 ,                                               |
|                2  0     0  2                                                |
|                                                                             |
|              x1 x2  - x1 x2 ,                                               |
|                1  0     0  1                                                |
|                                                                             |
|              x0 x2  - x0 x2  + x0 x2 ,                                      |
|                1  0     2  1     3  2                                       |
|                                                                             |
|              x0 x2  - x0 x2  + x0 x2 ,                                      |
|                0  0     1  1     2  2                                       |
|                                                                             |
|              x0 x1  - x0 x1  + x0 x1 ,                                      |
|                1  0     2  1     3  2                                       |
|                                                                             |
|              x0 x1  - x0 x1  + x0 x1                                        |
|                0  0     1  1     2  2                                       |
|             }                                                               |
|     -- rational map 1/3 --                                                  |
|     map 1/3, unique representative:                                         |
|     {                                                                       |
|      x0 ,                                                                   |
|        0                                                                    |
|                                                                             |
|      x0 ,                                                                   |
|        1                                                                    |
|                                                                             |
|      x0 ,                                                                   |
|        2                                                                    |
|                                                                             |
|      x0                                                                     |
|        3                                                                    |
|     }                                                                       |
|     -- rational map 2/3 --                                                  |
|     map 2/3, representative 1/2:                                            |
|     {                                                                       |
|      x1 ,                                                                   |
|        0                                                                    |
|                                                                             |
|      x1 ,                                                                   |
|        1                                                                    |
|                                                                             |
|      x1                                                                     |
|        2                                                                    |
|     }                                                                       |
|     map 2/3, representative 2/2:                                            |
|     {                                                                       |
|        2                                                                    |
|      x0  - x0 x0 ,                                                          |
|        2     1  3                                                           |
|                                                                             |
|      x0 x0  - x0 x0 ,                                                       |
|        1  2     0  3                                                        |
|                                                                             |
|        2                                                                    |
|      x0  - x0 x0                                                            |
|        1     0  2                                                           |
|     }                                                                       |
|     -- rational map 3/3 --                                                  |
|     map 3/3, representative 1/2:                                            |
|     {                                                                       |
|      x1 ,                                                                   |
|        0                                                                    |
|                                                                             |
|      x1 ,                                                                   |
|        1                                                                    |
|                                                                             |
|      x1                                                                     |
|        2                                                                    |
|     }                                                                       |
|     map 3/3, representative 2/2:                                            |
|     {                                                                       |
|        2                                                                    |
|      x0  - x0 x0 ,                                                          |
|        2     1  3                                                           |
|                                                                             |
|      x0 x0  - x0 x0 ,                                                       |
|        1  2     0  3                                                        |
|                                                                             |
|        2                                                                    |
|      x0  - x0 x0                                                            |
|        1     0  2                                                           |
|     }                                                                       |
|-----------------------------------------------------------------------------|
|x1 , x1 ]) defined by                                                        |
|  1    2                                                                     |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                    ZZ                                                       |
|x1 , x1 ]) x Proj(-----[x2 , x2 , x2 ]) defined by                           |
|  1    2          33331   0    1    2                                        |
+-----------------------------------------------------------------------------+

See also
========

  * describe(MultirationalMap), --
    describe a multi-rational map

Ways to use this method:
========================

  * show(MultirationalMap) -- display a
    multi-rational map
  * "show(RationalMap)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3592:0.

singularLocus(MultiprojectiveVariety) -- the singular locus of the variety
**************************************************************************

  * Function: singularLocus (Macaulay2Doc),
  * Usage:
        singularLocus X
  * Inputs:
      * X, a multi-projective variety, which is
        assumed to be equidimensional
  * Outputs:
      * a multi-projective variety, the singular
        locus of $X$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = random({2,1},point PP_(ZZ/101)^{2,1});                              |
|                                                                             |
|o1 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i2 : singularLocus X                                                         |
|                                                                             |
|o2 = empty subscheme of PP^2 x PP^1                                          |
|                                                                             |
|o2 : ProjectiveVariety, empty subscheme of PP^2 x PP^1                       |
+-----------------------------------------------------------------------------+
|i3 : Y = X + random({1,1},0_X);                                              |
|                                                                             |
|o3 : ProjectiveVariety, surface in PP^2 x PP^1                               |
+-----------------------------------------------------------------------------+
|i4 : singularLocus Y                                                         |
|                                                                             |
|o4 = curve in PP^2 x PP^1 cut out by 3 hypersurfaces of multi-degrees (1,1)^1|
|                                                                             |
|o4 : ProjectiveVariety, curve in PP^2 x PP^1                                 |
|-----------------------------------------------------------------------------|
|(2,1)^1 (3,0)^1                                                              |
+-----------------------------------------------------------------------------+

Ways to use this method:
========================

  * singularLocus(MultiprojectiveVariety)
    -- the singular locus of the
    variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2653:0.

source(MultirationalMap) -- the source for a multi-rational map
***************************************************************

  * Function: source (Macaulay2Doc),
  * Usage:
        source Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a multi-projective variety, the source
        of Phi

Description
===========

Note that, instead, the source (Cremona), of a
standard rational map (Cremona), is the coordinate ring of
the source variety (this is done mainly for efficiency reasons).

See also
========

  * target(MultirationalMap) -- the target
    for a multi-rational map
  * entries(MultirationalMap) -- list the
    defining polynomials of a rational map

Ways to use this method:
========================

  * source(MultirationalMap) -- the source
    for a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2987:0.

super(MultirationalMap) -- get the multi-rational map whose target is a product of projective spaces
****************************************************************************************************

  * Function: super (Macaulay2Doc),
  * Usage:
        super Phi
  * Inputs:
      * Phi, a multi-rational map, whose target is a
        subvariety $Y\subseteq\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n
        }$
  * Outputs:
      * a multi-rational map, the composition of Phi
        with the inclusion of $Y$ into
        $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n}$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Phi = rationalMap{rationalMap(veronese(1,2,ZZ/33331),Dominant=>true),   |
|                                                                             |
|o1 : MultirationalMap (rational map from PP^1 to surface in PP^2 x PP^3)     |
|-----------------------------------------------------------------------------|
|rationalMap(veronese(1,3,ZZ/33331),Dominant=>true)};                         |
+-----------------------------------------------------------------------------+
|i2 : super Phi;                                                              |
|                                                                             |
|o2 : MultirationalMap (rational map from PP^1 to PP^2 x PP^3)                |
+-----------------------------------------------------------------------------+
|i3 : Psi = rationalMap(Phi,image Phi);                                       |
|                                                                             |
|o3 : MultirationalMap (dominant rational map from PP^1 to curve in PP^2 x    |
|-----------------------------------------------------------------------------|
|PP^3)                                                                        |
+-----------------------------------------------------------------------------+
|i4 : super Psi == super Phi                                                  |
|                                                                             |
|o4 = true                                                                    |
+-----------------------------------------------------------------------------+

See also
========

  * target(MultirationalMap) -- the target
    for a multi-rational map
  * ambient(MultiprojectiveVariety),
    -- the ambient multi-projective space of the variety
  * super(RationalMap) (Cremona) -- get the
    rational map whose target is a projective space

Ways to use this method:
========================

  * super(MultirationalMap) -- get the
    multi-rational map whose target is a product of projective spaces
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3497:0.

support(MultiprojectiveVariety) -- support of a multi-projective variety
************************************************************************

  * Function: support (Macaulay2Doc),
  * Usage:
        support X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the support
        of X, that is, the projective variety defined by the radical (MinimalPrimes),
        of the defining ideal,
        of X

Description
===========

+-------------------------------------+
|i1 : K = ZZ/65521;                   |
+-------------------------------------+
|i2 : X = 2 * PP_K^(1,3);             |
|                                     |
|o2 : ProjectiveVariety, curve in PP^3|
+-------------------------------------+
|i3 : degree X, sectionalGenus X      |
|                                     |
|o3 = (9, 8)                          |
|                                     |
|o3 : Sequence                        |
+-------------------------------------+
|i4 : X' = support X;                 |
|                                     |
|o4 : ProjectiveVariety, curve in PP^3|
+-------------------------------------+
|i5 : degree X', sectionalGenus X'    |
|                                     |
|o5 = (3, 0)                          |
|                                     |
|o5 : Sequence                        |
+-------------------------------------+
|i6 : assert(X \ X' == X')            |
+-------------------------------------+

See also
========

  * decompose(MultiprojectiveVariety)
    -- irreducible components of a
    variety
  * radical(Ideal) (MinimalPrimes) -- the radical of an ideal

Ways to use this method:
========================

  * support(MultiprojectiveVariety),
    -- support of a multi-projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2818:0.

tangentCone(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety) -- tangent cone to a projective variety at a point
*******************************************************************************************************************

  * Function: tangentCone (TangentCone),
  * Usage:
        tangentCone(X,p)
        tangentCone(p,X)
  * Inputs:
      * X, an embedded projective variety,
      * p, an embedded projective variety, a
        point on $X$
  * Optional inputs (Macaulay2Doc),:
      * Strategy (missing documentation) => ..., default value Local,
  * Outputs:
      * an embedded projective variety, the
        embedded tangent cone $C_p(X)$ to $X$ at the point $p$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : Y = random(3,0_(PP_(ZZ/333331)^6)), q = point Y, j = parametrize        |
|-----------------------------------------------------------------------------|
|tangentSpace(Y,q);                                                           |
+-----------------------------------------------------------------------------+
|i2 : (X, p) = (j^* Y, j^* q);                                                |
+-----------------------------------------------------------------------------+
|i3 : C = tangentCone(X,p);                                                   |
|                                                                             |
|o3 : ProjectiveVariety, hypersurface in PP^5                                 |
+-----------------------------------------------------------------------------+
|i4 : describe C                                                              |
|                                                                             |
|o4 = ambient:.............. PP^5                                             |
|     dim:.................. 4                                                |
|     codim:................ 1                                                |
|     degree:............... 2                                                |
|     generators:........... 2^1                                              |
|     purity:............... true                                             |
|     dim sing. l.:......... 0                                                |
|     gens sing. l.:........ 1^5                                              |
+-----------------------------------------------------------------------------+
|i5 : assert(isSubset(C,tangentSpace(X,p)) and coneOfLines(C,p) == C)         |
+-----------------------------------------------------------------------------+

See also
========

  * tangentSpace(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)
    -- tangent space to a projective variety at a point
  * tangentCone(Ideal) (TangentCone)
  * coneOfLines -- cone of lines on a subvariety passing
    through a point
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3817:0.

tangentialChowForm(EmbeddedProjectiveVariety,ZZ) -- higher Chow forms of a projective variety
*********************************************************************************************

  * Function: tangentialChowForm (Resultants),
  * Usage:
        tangentialChowForm(X,s)
  * Inputs:
      * X, an embedded projective variety,
      * s, an integer (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * AffineChartGrass (Resultants), => ..., default
        value true,
      * AffineChartProj (Resultants), => ..., default
        value true,
      * AssumeOrdinary (Resultants), => ..., default value
        null,
      * Duality (Resultants), => ..., default value null,
      * SingularLocus (Resultants), => ..., default value
        null,
      * Variable (Resultants),
        => ..., default value null,
  * Outputs:
      * an embedded projective variety, the
        subvariety of the appropriate Grassmannian,
        defined by tangentialChowForm (Resultants),
        (see ideal,
        X,s)

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/65521)[2,1];                                                 |
|                                                                             |
|o1 : ProjectiveVariety, surface in PP^4                                      |
+-----------------------------------------------------------------------------+
|i2 : tangentialChowForm(X,1)                                                 |
|                                                                             |
|o2 = 5-dimensional subvariety of PP^9 cut out by                             |
|                                                                             |
|o2 : ProjectiveVariety, 5-dimensional subvariety                             |
|-----------------------------------------------------------------------------|
|6 hypersurfaces of degrees 2^5 4^1                                           |
|                                                                             |
|of PP^9 (subvariety of codimension 1 in GG(2,4) ⊂ PP^9)                      |
+-----------------------------------------------------------------------------+
|i3 : ambientVariety oo                                                       |
|                                                                             |
|o3 = GG(2,4) ⊂ PP^9                                                          |
|                                                                             |
|o3 : ProjectiveVariety, GG(2,4)                                              |
+-----------------------------------------------------------------------------+

See also
========

  * chowForm(EmbeddedProjectiveVariety)
    -- chow forms of a projective
    variety

Ways to use this method:
========================

  * tangentialChowForm(EmbeddedProjectiveVariety,ZZ)
    -- higher Chow
    forms of a projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3928:0.

tangentSpace -- tangent space to a projective variety at a point
****************************************************************

  * Usage:
        tangentSpace(X,p)
        tangentSpace(p,X)
  * Inputs:
      * X, an embedded projective variety,
      * p, an embedded projective variety, a
        point on $X$
  * Outputs:
      * an embedded projective variety, the
        embedded tangent space $T_p(X)$ to $X$ at the point $p$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : X = PP_(ZZ/333331)^(3,2);                                               |
|                                                                             |
|o1 : ProjectiveVariety, threefold in PP^9                                    |
+-----------------------------------------------------------------------------+
|i2 : p := point X                                                            |
|                                                                             |
|o2 = point of coordinates [-63251, 140212, 25299, -105446, -91880, -117577,  |
|                                                                             |
|o2 : ProjectiveVariety, a point in PP^9                                      |
|-----------------------------------------------------------------------------|
|129587, 38839, 41433, 1]                                                     |
+-----------------------------------------------------------------------------+
|i3 : tangentSpace(X,p)                                                       |
|                                                                             |
|o3 = threefold in PP^9 cut out by 6 hypersurfaces of degree 1                |
|                                                                             |
|o3 : ProjectiveVariety, threefold in PP^9                                    |
+-----------------------------------------------------------------------------+

See also
========

  * tangentCone(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety) (missing
    documentation)
  * singularLocus(MultiprojectiveVariety)
    -- the singular locus of the
    variety
  * dual(EmbeddedProjectiveVariety),
    -- the variety projectively dual to an embedded projective variety
  * point(MultiprojectiveVariety), --
    pick a random rational point on a multi-projective variety

Ways to use tangentSpace:
=========================

  * "tangentSpace(EmbeddedProjectiveVariety,EmbeddedProjectiveVariety)"

For the programmer
==================

The object tangentSpace, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3801:0.

target(MultirationalMap) -- the target for a multi-rational map
***************************************************************

  * Function: target (Macaulay2Doc),
  * Usage:
        target Phi
  * Inputs:
      * Phi, a multi-rational map,
  * Outputs:
      * a multi-projective variety, the target
        of Phi

Description
===========

Note that, instead, the target (Cremona), of a
standard rational map (Cremona), is the coordinate ring of
the target variety (this is done mainly for efficiency reasons).

See also
========

  * source(MultirationalMap) -- the source
    for a multi-rational map
  * entries(MultirationalMap) -- list the
    defining polynomials of a rational map

Ways to use this method:
========================

  * target(MultirationalMap) -- the target
    for a multi-rational map
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2976:0.

topComponents(MultiprojectiveVariety) -- union of the top dimensional components of a multi-projective variety
**************************************************************************************************************

  * Function: topComponents (PrimaryDecomposition),
  * Usage:
        top X
  * Inputs:
      * X, a multi-projective variety,
  * Outputs:
      * a multi-projective variety, the union of
        the top dimensional components of X

Description
===========

+-------------------------------------------------------------------+
|i1 : K = ZZ/65521;                                                 |
+-------------------------------------------------------------------+
|i2 : X = (linearSpan {point PP_K^4,point PP_K^4}) + (point PP_K^4);|
|                                                                   |
|o2 : ProjectiveVariety, curve in PP^4                              |
+-------------------------------------------------------------------+
|i3 : top X                                                         |
|                                                                   |
|o3 = curve in PP^4 cut out by 3 hypersurfaces of degree 1          |
|                                                                   |
|o3 : ProjectiveVariety, curve in PP^4                              |
+-------------------------------------------------------------------+
|i4 : assert(top top X === top X)                                   |
+-------------------------------------------------------------------+

See also
========

  * decompose(MultiprojectiveVariety)
    -- irreducible components of a
    variety
  * topComponents(Ideal) (PrimaryDecomposition) -- compute
    top dimensional component of an ideal or module
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2829:0.

toRationalMap -- convert a multi-rational map consisting of a single rational map to a standard rational map
************************************************************************************************************

  * Usage:
        toRationalMap Phi
  * Inputs:
      * Phi, a multi-rational map, whose target is an
        embedded projective variety,
  * Outputs:
      * a rational map (Cremona), which is mathematically
        equal to Phi but represented as an object of the class
        RationalMap (Cremona),

Description
===========

This is useful when you need to use tools from the package Cremona.

+-----------------------------------------------------------------------------+
|i1 : Phi = rationalMap(PP_QQ^(1,4),Dominant=>true);                          |
|                                                                             |
|o1 : MultirationalMap (dominant rational map from PP^4 to hypersurface in    |
|-----------------------------------------------------------------------------|
|PP^5)                                                                        |
+-----------------------------------------------------------------------------+
|i2 : class Phi                                                               |
|                                                                             |
|o2 = MultirationalMap                                                        |
|                                                                             |
|o2 : Type                                                                    |
+-----------------------------------------------------------------------------+
|i3 : f = toRationalMap Phi;                                                  |
|                                                                             |
|o3 : RationalMap (quadratic dominant rational map from PP^4 to hypersurface  |
|-----------------------------------------------------------------------------|
|in PP^5)                                                                     |
+-----------------------------------------------------------------------------+
|i4 : class f                                                                 |
|                                                                             |
|o4 = RationalMap                                                             |
|                                                                             |
|o4 : Type                                                                    |
+-----------------------------------------------------------------------------+
|i5 : assert(Phi == f and Phi =!= f)                                          |
+-----------------------------------------------------------------------------+

See also
========

  * multirationalMap(RationalMap) -- Some convenient
    shortcuts for multi-rational maps consisting of a single rational map

Ways to use toRationalMap:
==========================

  * "toRationalMap(MultirationalMap)"

For the programmer
==================

The object toRationalMap, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3740:0.

trim(MultirationalMap) -- trim the target of a multi-rational map
*****************************************************************

  * Function: trim (Macaulay2Doc),
  * Usage:
        trim Phi
  * Inputs:
      * Phi, a multi-rational map, from a
        multi-projective variety, $X$ to
        $\mathbb{P}^{k_1}\times\cdots\times\mathbb{P}^{k_n}$
  * Optional inputs (Macaulay2Doc),:
      * Strategy (Macaulay2Doc), => ..., default value null,
  * Outputs:
      * a multi-rational map, from $X$ to
        $\mathbb{P}^{s_1}\times\cdots\times\mathbb{P}^{s_n}$, with $s_i\leq
        k_i$, which is isomorphic to the original map, but whose image is not
        contained in any hypersurface of multidegree $(d_1,\ldots,d_n)$ with
        $\sum_{i=1}^n d_i = 1$

Description
===========

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/33331; C = PP_K^(1,4); -- rational normal quartic curve          |
|                                                                             |
|o2 : ProjectiveVariety, curve in PP^4                                        |
+-----------------------------------------------------------------------------+
|i3 : Phi = rationalMap C; -- map defined by the quadrics through C           |
|                                                                             |
|o3 : MultirationalMap (rational map from PP^4 to PP^5)                       |
+-----------------------------------------------------------------------------+
|i4 : Q = random(2,C); -- random quadric hypersurface through C               |
|                                                                             |
|o4 : ProjectiveVariety, hypersurface in PP^4                                 |
+-----------------------------------------------------------------------------+
|i5 : Phi = Phi|Q;                                                            |
|                                                                             |
|o5 : MultirationalMap (rational map from Q to PP^5)                          |
+-----------------------------------------------------------------------------+
|i6 : image Phi                                                               |
|                                                                             |
|o6 = threefold in PP^5 cut out by 2 hypersurfaces of degrees 1^1 2^1         |
|                                                                             |
|o6 : ProjectiveVariety, threefold in PP^5                                    |
+-----------------------------------------------------------------------------+
|i7 : Psi = trim Phi;                                                         |
|                                                                             |
|o7 : MultirationalMap (rational map from Q to PP^4)                          |
+-----------------------------------------------------------------------------+
|i8 : image Psi                                                               |
|                                                                             |
|o8 = hypersurface in PP^4 defined by a form of degree 2                      |
|                                                                             |
|o8 : ProjectiveVariety, hypersurface in PP^4                                 |
+-----------------------------------------------------------------------------+
|i9 : Phi || Phi || Psi;                                                      |
|                                                                             |
|o9 : MultirationalMap (rational map from Q x Q x Q to PP^5 x PP^5 x PP^4)    |
+-----------------------------------------------------------------------------+
|i10 : image oo                                                               |
|                                                                             |
|o10 = 9-dimensional subvariety of PP^5 x PP^5 x PP^4                         |
|                                                                             |
|o10 : ProjectiveVariety, 9-dimensional subvariety of                         |
|-----------------------------------------------------------------------------|
|cut out by 5 hypersurfaces of multi-degrees (0,0,2)^1 (0,1,0)^1 (0,2,0)^1    |
|                                                                             |
|PP^5 x PP^5 x PP^4                                                           |
|-----------------------------------------------------------------------------|
|(1,0,0)^1 (2,0,0)^1                                                          |
+-----------------------------------------------------------------------------+
|i11 : trim (Phi || Phi || Psi);                                              |
|                                                                             |
|o11 : MultirationalMap (rational map from Q x Q x Q to PP^4 x PP^4 x PP^4)   |
+-----------------------------------------------------------------------------+
|i12 : image oo                                                               |
|                                                                             |
|o12 = 9-dimensional subvariety of PP^4 x PP^4 x PP^4                         |
|                                                                             |
|o12 : ProjectiveVariety, 9-dimensional subvariety of                         |
|-----------------------------------------------------------------------------|
|cut out by 3 hypersurfaces of multi-degrees (0,0,2)^1 (0,2,0)^1 (2,0,0)^1    |
|                                                                             |
|PP^4 x PP^4 x PP^4                                                           |
+-----------------------------------------------------------------------------+

Ways to use this method:
========================

  * trim(MultirationalMap) -- trim the
    target of a multi-rational map
  * "trim(RationalMap)"
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3516:0.

variety(EmbeddedProjectiveVariety) -- convert an embedded projective variety into a built-in projective variety
***************************************************************************************************************

  * Function: variety (Varieties),
  * Usage:
        variety X
  * Inputs:
      * X, an embedded projective variety,
  * Outputs:
      * a projective variety (Varieties), which is
        mathematically equal to X

Description
===========

+---------------------------------------+
|i1 : X = PP_QQ^(2,2);                  |
|                                       |
|o1 : ProjectiveVariety, surface in PP^5|
+---------------------------------------+
|i2 : class X                           |
|                                       |
|o2 = EmbeddedProjectiveVariety         |
|                                       |
|o2 : Type                              |
+---------------------------------------+
|i3 : X' = variety X;                   |
+---------------------------------------+
|i4 : class X'                          |
|                                       |
|o4 = ProjectiveVariety                 |
|                                       |
|o4 : Type                              |
+---------------------------------------+
|i5 : assert(ring X === ring X')        |
+---------------------------------------+

Ways to use this method:
========================

  * variety(EmbeddedProjectiveVariety)
    -- convert an embedded projective
    variety into a built-in projective variety
-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:3753:0.

WeightedProjectiveVariety -- the class of all weighted projective varieties
***************************************************************************

Description
===========

Weighted projective varieties can be constructed using the function
projectiveVariety, just like multi- and embedded projective
varieties.

+-----------------------------------------------------------------------------+
|i1 : R = QQ[u,v,w,x,y,z,Degrees=>{{2},{1},{3},{1},{7},{5}}]/ideal((3/2)*u+6*v|
|-----------------------------------------------------------------------------|
|^2+v*x+4*x^2,(3/2)*u*v+(4/5)*v^3+w+(3/2)*u*x+(3/7)*v^2*x+3*v*x^2+(5/6)*x^3); |
+-----------------------------------------------------------------------------+
|i2 : projectiveVariety R                                                     |
|                                                                             |
|o2 = threefold in PP(2,1,3,1,7,5) cut out by 2 hypersurfaces of degrees 2^1  |
|                                                                             |
|o2 : ProjectiveVariety, threefold in PP(2,1,3,1,7,5)                         |
|-----------------------------------------------------------------------------|
|3^1                                                                          |
+-----------------------------------------------------------------------------+
|i3 : describe oo                                                             |
|                                                                             |
|o3 = ambient:.............. PP(2,1,3,1,7,5)                                  |
|     dim:.................. 3                                                |
|     codim:................ 2                                                |
|     degree:............... 6                                                |
|     generators:........... 2^1 3^1                                          |
|     purity:............... true                                             |
|     dim sing. l.:......... -1                                               |
+-----------------------------------------------------------------------------+

Here is a shortcut to construct weighted projective spaces:

+-----------------------------------------------------------------------------+
|i4 : K = ZZ/65521;                                                           |
+-----------------------------------------------------------------------------+
|i5 : PP_K(2,1,3,1,7,5)                                                       |
|warning: clearing value of symbol x to allow access to subscripted           |
|       : debug with expression   debug 9868   or with command line           |
|                                                                             |
|o5 = PP(2,1,3,1,7,5)                                                         |
|                                                                             |
|o5 : ProjectiveVariety, PP(2,1,3,1,7,5)                                      |
|-----------------------------------------------------------------------------|
|variables based on it                                                        |
|option   --debug 9868                                                        |
+-----------------------------------------------------------------------------+

Caveat
======

This class is currently experimental and under development.

See also
========

  * WeightedRationalMap -- the class of all
    weighted-rational maps
  * MultiprojectiveVariety -- the class of all
    multi-projective varieties
  * EmbeddedProjectiveVariety -- the class of
    all embedded projective varieties

For the programmer
==================

The object WeightedProjectiveVariety, is a
type (Macaulay2Doc), with ancestor classes
MultiprojectiveVariety, < MutableHashTable (Macaulay2Doc)
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2475:0.

WeightedRationalMap -- the class of all weighted-rational maps
**************************************************************

Description
===========

A weighted-rational map is a rational map between weighted-projective varieties.
It can be defined using the functions
rationalMap (Cremona), and multirationalMap,
just like (multi-)rational maps.

+-----------------------------------------------------------------------------+
|i1 : K = ZZ/65521;                                                           |
+-----------------------------------------------------------------------------+
|i2 : X = PP_K(1,1,3);                                                        |
|                                                                             |
|o2 : ProjectiveVariety, PP(1,1,3)                                            |
+-----------------------------------------------------------------------------+
|i3 : Y = PP_K(4,5);                                                          |
|                                                                             |
|o3 : ProjectiveVariety, PP(4,5)                                              |
+-----------------------------------------------------------------------------+
|i4 : f = rationalMap(ring X,ring Y,{random(4,ring X),random(5,ring X)})      |
|                                                                             |
|o4 = -- rational map --                                                      |
|     source: Proj(K[p , p , p ],Degrees=>{{1}, {1}, {3}})                    |
|                     0   1   2                                               |
|     target: Proj(K[p , p ],Degrees=>{{4}, {5}})                             |
|                     0   1                                                   |
|     defining forms: {                                                       |
|                              4         3           2 2           3         4|
|                      - 32646p  - 28377p p  + 26433p p  - 29566p p  + 26696p |
|                              0         0 1         0 1         0 1         1|
|                                                                             |
|                            5        4           3 2         2 3           4 |
|                      16659p  + 8444p p  - 11230p p  - 22394p p  + 23752p p  |
|                            0        0 1         0 1         0 1         0 1 |
|                     }                                                       |
|                                                                             |
|o4 : WeightedHomogeneousRationalMap (rational map from PP(1,1,3) to PP(4,5)) |
|-----------------------------------------------------------------------------|
| + 3783p p  + 8570p p ,                                                      |
|        0 2        1 2                                                       |
|                                                                             |
|       5        2                         2                                  |
|+ 5071p  - 8214p p  - 30100p p p  + 25800p p                                 |
|       1        0 2         0 1 2         1 2                                |
+-----------------------------------------------------------------------------+
|i5 : F = multirationalMap f;                                                 |
|                                                                             |
|o5 : WeightedRationalMap (rational map from X to Y)                          |
+-----------------------------------------------------------------------------+

Note that rationalMap(RingMap) and rationalMap(Matrix) return a raw type of
rational map (just like it happens with the multi-rational maps). You can
always apply multirationalMap to the output and convert to the raw type using
toRationalMap. Alternatively, you can proceed as follows:

+-----------------------------------------------------------------------------+
|i6 : M = matrix f                                                            |
|                                                                             |
|o6 = | -32646p_0^4-28377p_0^3p_1+26433p_0^2p_1^2-29566p_0p_1^3+26696p_1^4+   |
|     ------------------------------------------------------------------------|
|     3783p_0p_2+8570p_1p_2 16659p_0^5+8444p_0^4p_1-11230p_0^3p_1^2-22394p_0^ |
|     ------------------------------------------------------------------------|
|     2p_1^3+23752p_0p_1^4+5071p_1^5-8214p_0^2p_2-30100p_0p_1p_2+25800p_1^2p_2|
|     ------------------------------------------------------------------------|
|     |                                                                       |
|                                                                             |
|                       1                2                                    |
|o6 : Matrix (K[p ..p ])  <-- (K[p ..p ])                                     |
|                0   2            0   2                                       |
+-----------------------------------------------------------------------------+
|i7 : rationalMap {M}                                                         |
|                                                                             |
|o7 = multi-rational map consisting of one single rational map                |
|     source variety: PP(1,1,3)                                               |
|     target variety: PP(4,5)                                                 |
|                                                                             |
|o7 : WeightedRationalMap (rational map from X to PP(4,5))                    |
+-----------------------------------------------------------------------------+
|i8 : rationalMap {f}                                                         |
|                                                                             |
|o8 = F                                                                       |
|                                                                             |
|o8 : WeightedRationalMap (rational map from X to Y)                          |
+-----------------------------------------------------------------------------+

Caveat
======

This class is currently experimental and under development.

See also
========

  * WeightedProjectiveVariety -- the class of
    all weighted projective varieties
  * MultirationalMap -- the class of all
    multi-rational maps

For the programmer
==================

The object WeightedRationalMap, is a type (Macaulay2Doc),
with ancestor classes MultirationalMap,
< MutableHashTable (Macaulay2Doc) <
HashTable (Macaulay2Doc) < Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in MultiprojectiveVarieties.m2:2892:0.