This is MatrixSchubert.info, produced by Macaulay2, version 1.26.06

MatrixSchubert -- matrix Schubert varieties and ASM varieties
*************************************************************

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

This package provides functions for constructing and investigating matrix
Schubert varieties. Many of the functions in this package can take as input
either a permutation in 1-line notation, or an alternating sign matrix.

Contributors
============

The following people have generously contributed code, improved existing code,
or enhanced the documentation: Shiliang Gao (see
https://sites.google.com/illinois.edu/shiliang-gao ), Pooja Joshi (see
https://www.math.tamu.edu/directory/graduate.html ), Mahrud Sayrafi (see
https://www-users.cse.umn.edu/~mahrud/ ), and Antsa Tantely Fandresena
Rakotondrafara (see https://www.clemson.edu/science/academics/departments/
mathstat/about/profiles/arakoto ). We also thank the anonymous referees for
their helpful suggestions.

References
==========

  * [CV20] Aldo Conca and Matteo Varbaro, Square-free Gröbner degenerations
    (see https://arxiv.org/abs/1805.11923 ), Inventiones mathematicae, 221(3),
    pp.713-730.
  * [Ful92] William Fulton, Flags, Schubert polynomials, degeneracy loci, and
    determinantal formulas (see
    https://sites.math.washington.edu/~billey/classes/schubert.library/fulton.
    essential.set.pdf ), Duke Math J. 65 (1992): 381-420.
  * [KM05] Allen Knutson and Ezra Miller, Gröbner geometry of Schubert
    polynomials (see https://arxiv.org/abs/math/0110058 ), Annals of
    Mathematics (2005): 1245-1318.
  * [KW21] Patricia Klein and Anna Weigandt, Bumpless pipe dreams encode
    Gröbner geometry of Schubert polynomials (see
    https://arxiv.org/abs/2108.08370 ), arxiv preprint 2108.08370.
  * [PSW24] Oliver Pechenik, David Speyer, and Anna Weigandt,
    Castelnuovo-Mumford regularity of matrix Schubert varieties (see
    https://arxiv.org/abs/2111.10681 ), Selecta Mathematica New Series 30, 66
    (2024).
  * [Wei17] Anna Weigandt, Prism tableaux for alternating sign matrix varieties
    (see https://arxiv.org/abs/1708.07236 ), arXiv preprint 1708.07236.

See also
========

  * Investigating matrix Schubert varieties
    -- basic functions for Schubert determinantal ideals
  * Investigating ASM varieties -- basic
    functions for alternating sign matrix ideals
  * Initial ideals of ASM ideals -- basic
    functions for investigating initial ideals of ASM varieties
  * Functions for investigating permutations
    -- basic functions for permutations

Authors
=======

  * Ayah Almousa (see http://sites.google.com/view/ayah-almousa )
    <aalmousa@uky.edu>
  * Sean Grate (see https://seangrate.com/ ) <sgrate@iastate.edu>
  * Daoji Huang (see https://daojihuang.me ) <daojihuang@umass.edu>
  * Patricia Klein (see https://patriciajklein.github.io/ ) <pjklein@tamu.edu>
  * Adam LaClair (see https://sites.google.com/view/adamlaclair/home )
    <alaclair2@unl.edu>
  * Yuyuan Luo (see https://yuyuan-luo.github.io/ ) <yuyuan.luo@princeton.edu>
  * Joseph McDonough (see https://jmcdonough98.github.io/ ) <mcdo1248@umn.edu>

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

Version 1.2 of this package was accepted for publication in volume 15 (see
https://msp.org/jsag/2025/15-1/ ) of Journal of Software for Algebra and
Geometry (see https://msp.org/jsag/ ) on 2025-03-19, in the article The
MatrixSchubert package for Macaulay2 (see
https://msp.org/jsag/2025/15-1/p04.xhtml ) (DOI: 10.2140/jsag.2025.15.41 (see
https://doi.org/10.2140/jsag.2025.15.41 )). That version can be obtained from
the journal (see https://msp.org/jsag/2025/15-1/jsag-v15-n1-x04-MatrixSchubert.
zip ).

Version
=======

This documentation describes version 1.2 of MatrixSchubert, released May 8,
2025.

Citation
========

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

+-----------------------------------------------------------------------------+
|@misc{MatrixSchubertSource,                                                  |
|  title = {{MatrixSchubert: functions for investigating ASM and matrix Schube|
|  author = {Ayah Almousa and Sean Grate and Daoji Huang and Patricia Klein an|
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}} |
|}                                                                            |
|                                                                             |
|@article{MatrixSchubertArticle,                                              |
|  title = {{The MatrixSchubert package for \emph{Macaulay2}}},               |
|  author = {Ayah Almousa and Sean Grate and Daoji Huang and Patricia Klein an|
|  journal = {Journal of Software for Algebra and Geometry},                  |
|  volume = {15},                                                             |
|  year = {2025},                                                             |
|}                                                                            |
|-----------------------------------------------------------------------------|
|rt varieties. Version~1.2}},                                                 |
|d Adam LaClair and Yuyuan Luo and Joseph McDonough},                         |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|d Adam LaClair and Yuyuan Luo and Joseph McDonough},                         |
+-----------------------------------------------------------------------------+

Exports
=======

  * Types
      * PipeDream -- the class representing a pipe dream
  * Functions and commands
      * antiDiagInit -- compute the (unique) antidiagonal
        initial ideal of an ASM ideal
      * ASMFullList -- lists all ASMs of a fixed size
      * ASMRandomList -- lists random ASMs of a fixed
        size
      * ASMToMonotoneTriangle -- converts an ASM
        to a monotone triangle
      * augmentedEssentialSet -- find the
        essential set and rank conditions for a partial ASM or a permutation
      * augmentedRotheDiagram -- find the Rothe
        diagram and rank table for a partial ASM or permutation
      * avoidsAllPatterns -- whether a permutation
        avoids all of the given patterns
      * cohenMacaulayASMsList -- lists all
        Cohen-Macaulay ASMs of a fixed size which are not permutation matrices
      * composePerms -- computes the composition of two
        permutations
      * descentSet -- the descent set of a permutation
      * diagLexInitNW -- Diagonal initial ideal of an ASM
        ideal with respect to lex, starting from NW corner
      * diagLexInitSE -- Diagonal initial ideal of an ASM
        ideal with respect to lex, starting from SE corner
      * diagRevLexInit -- Diagonal initial ideal of an
        ASM ideal with respect to revlex, ordering variables from NW corner
      * doubleSchubertPolynomial -- computes
        the double Schubert polynomial of a permutation
      * entrywiseMaxRankTable -- compute the
        entrywise maximum rank table of a list of ASMs
      * entrywiseMinRankTable -- compute the
        entrywise minimum rank table of a list of ASMs
      * essentialSet -- compute the essential set in the
        Rothe Diagram for a partial ASM or a permutation.
      * firstDescent -- finds the location of the first
        descent of a permutation
      * fultonGens -- compute the Fulton generators of an
        ASM ideal (for example, a Schubert determinantal ideal)
      * getASM -- get the ASM of an ideal (if it exists)
      * grothendieckPolynomial -- computes the
        Grothendieck polynomial of a permutation
      * initialIdealsList -- lists all antidiagonal
        initial ideals of ASMs of a fixed size
      * inverseOf -- to return the inverse of a permutation
        in 1-line notation.
      * isASM -- whether a matrix is an ASM
      * isASMIdeal -- whether an ideal is an ASM ideal
      * isASMUnion -- whether the union of matrix Schubert
        varieties is an ASM variety
      * isCartwrightSturmfels -- whether a
        permutation is Cartwright-Sturmfels
      * isCDG -- whether a permutation is CDG
      * isIntersectionOfSchubertDeterminantalIdeals
        -- whether an ideal is the
        intersection of Schubert determinantal ideals
      * isMinRankTable -- whether a matrix is the
        canonical rank table of some partial ASM
      * isPartialASM -- whether a matrix is a partial
        alternating sign matrix
      * isPatternAvoiding -- whether a permutation
        avoids certain patterns, e.g. $2143$-avoiding or $312$- and
        $231$-avoiding
      * isPerm -- whether a list is a permutation in 1-line
        notation
      * isSchubertCM -- whether an ASM variety is
        Cohen-Macaulay
      * isVexillary -- whether a permutation is vexillary,
        i.e. 2143-avoiding
      * KPolynomialASM -- compute the K Polynomial of an
        ASM variety
      * lastDescent -- finds the location of the last
        descent of a permutation
      * longestPerm -- to return the longest permutation of
        length n
      * monotoneTriangleToASM -- converts a
        monotone triangle to an ASM
      * nonCohenMacaulayASMsList -- lists all
        non-Cohen-Macaulay ASMs of a fixed size
      * padASM -- pad an ASM with an identity matrix
      * partialASMToASM -- extend a partial alternating
        sign matrix to an alternating sign matrix
      * permLength -- to find the length of a permutation in
        1-line notation.
      * permSetOfASM -- finds the permutation set of an
        alternating sign matrix
      * permToMatrix -- converts a permutation in 1-line
        notation into a permutation matrix
      * pipeDreams -- computes the set of reduced pipe
        dreams corresponding to a permutation
      * pipeDreamsNonReduced -- computes the set
        of all pipe dreams corresponding to a permutation
      * rajcode -- finds the Rajchgot code of a permutation
      * rajIndex -- finds the Rajchgot index of a permutation
      * rankTable -- compute a table of rank conditions that
        determines the corresponding ASM or matrix Schubert variety
      * rankTableFromMatrix -- returns the minimal
        rank table from an arbitrary integer matrix
      * rankTableToASM -- to find the a partial ASM
        associated to a given rank table
      * rotheDiagram -- find the Rothe diagram of a
        partial alternating sign matrix
      * schubertAdd -- compute the sum of ASM ideals
      * schubertCodim -- compute the codimension (i.e.,
        height) of a Schubert determinantal ideal or ASM ideal
      * schubertDecompose -- finds the decomposition
        of an ASM ideal into Schubert determinantal ideals
      * schubertDeterminantalIdeal, --
        compute an alternating sign matrix ideal (for example, a Schubert
        determinantal ideal)
      * schubertIntersect -- compute the intersection
        of ASM ideals
      * schubertPolynomial -- computes the Schubert
        polynomial of a permutation
      * schubertRegularity -- compute the
        Castelnuovo-Mumford regularity of the quotient by an ASM ideal
      * subwordComplex -- to find the subword complex
        associated to w
      * toOneLineNotation -- rewrites a transposition
        or permutation matrix in 1-line notation
  * Methods
      * "antiDiagInit(List)" -- see antiDiagInit, --
        compute the (unique) antidiagonal initial ideal of an ASM ideal
      * "antiDiagInit(Matrix)" -- see antiDiagInit, --
        compute the (unique) antidiagonal initial ideal of an ASM ideal
      * "ASMFullList(ZZ)" -- see ASMFullList, -- lists all
        ASMs of a fixed size
      * "ASMRandomList(ZZ,ZZ)" -- see ASMRandomList, --
        lists random ASMs of a fixed size
      * "ASMToMonotoneTriangle(Matrix)" -- see ASMToMonotoneTriangle,
        -- converts an ASM to a monotone triangle
      * "augmentedEssentialSet(List)" -- see augmentedEssentialSet,
        -- find the essential set and rank conditions
        for a partial ASM or a permutation
      * "augmentedEssentialSet(Matrix)" -- see augmentedEssentialSet,
        -- find the essential set and rank conditions
        for a partial ASM or a permutation
      * "augmentedRotheDiagram(List)" -- see augmentedRotheDiagram,
        -- find the Rothe diagram and rank table for a
        partial ASM or permutation
      * "augmentedRotheDiagram(Matrix)" -- see augmentedRotheDiagram,
        -- find the Rothe diagram and rank table for a
        partial ASM or permutation
      * "avoidsAllPatterns(List,List)" -- see avoidsAllPatterns,
        -- whether a permutation avoids all of the given
        patterns
      * "cohenMacaulayASMsList(ZZ)" -- see cohenMacaulayASMsList,
        -- lists all Cohen-Macaulay ASMs of a fixed size
        which are not permutation matrices
      * "composePerms(List,List)" -- see composePerms, --
        computes the composition of two permutations
      * "descentSet(List)" -- see descentSet, -- the descent
        set of a permutation
      * "diagLexInitNW(List)" -- see diagLexInitNW, --
        Diagonal initial ideal of an ASM ideal with respect to lex, starting
        from NW corner
      * "diagLexInitNW(Matrix)" -- see diagLexInitNW, --
        Diagonal initial ideal of an ASM ideal with respect to lex, starting
        from NW corner
      * "diagLexInitSE(List)" -- see diagLexInitSE, --
        Diagonal initial ideal of an ASM ideal with respect to lex, starting
        from SE corner
      * "diagLexInitSE(Matrix)" -- see diagLexInitSE, --
        Diagonal initial ideal of an ASM ideal with respect to lex, starting
        from SE corner
      * "diagRevLexInit(List)" -- see diagRevLexInit, --
        Diagonal initial ideal of an ASM ideal with respect to revlex, ordering
        variables from NW corner
      * "diagRevLexInit(Matrix)" -- see diagRevLexInit,
        -- Diagonal initial ideal of an ASM ideal with respect to revlex,
        ordering variables from NW corner
      * "doubleSchubertPolynomial(List)" -- see doubleSchubertPolynomial,
        -- computes the double Schubert polynomial of
        a permutation
      * "entrywiseMaxRankTable(List)" -- see entrywiseMaxRankTable,
        -- compute the entrywise maximum rank table of a
        list of ASMs
      * "entrywiseMinRankTable(List)" -- see entrywiseMinRankTable,
        -- compute the entrywise minimum rank table of a
        list of ASMs
      * "essentialSet(List)" -- see essentialSet, --
        compute the essential set in the Rothe Diagram for a partial ASM or a
        permutation.
      * "essentialSet(Matrix)" -- see essentialSet, --
        compute the essential set in the Rothe Diagram for a partial ASM or a
        permutation.
      * "firstDescent(List)" -- see firstDescent, -- finds
        the location of the first descent of a permutation
      * "fultonGens(List)" -- see fultonGens, -- compute the
        Fulton generators of an ASM ideal (for example, a Schubert
        determinantal ideal)
      * "fultonGens(Matrix)" -- see fultonGens, -- compute
        the Fulton generators of an ASM ideal (for example, a Schubert
        determinantal ideal)
      * "getASM(Ideal)" -- see getASM, -- get the ASM of an ideal
        (if it exists)
      * "grothendieckPolynomial(List)" -- see grothendieckPolynomial,
        -- computes the Grothendieck polynomial of a
        permutation
      * "initialIdealsList(ZZ)" -- see initialIdealsList,
        -- lists all antidiagonal initial ideals of ASMs of
        a fixed size
      * "inverseOf(List)" -- see inverseOf, -- to return the
        inverse of a permutation in 1-line notation.
      * "isASM(Matrix)" -- see isASM, -- whether a matrix is an
        ASM
      * "isASMIdeal(Ideal)" -- see isASMIdeal, -- whether an
        ideal is an ASM ideal
      * "isASMUnion(List)" -- see isASMUnion, -- whether the
        union of matrix Schubert varieties is an ASM variety
      * "isCartwrightSturmfels(List)" -- see isCartwrightSturmfels,
        -- whether a permutation is Cartwright-Sturmfels
      * "isCDG(List)" -- see isCDG, -- whether a permutation is
        CDG
      * "isIntersectionOfSchubertDeterminantalIdeals(Ideal)" -- see
        isIntersectionOfSchubertDeterminantalIdeals,
        -- whether an ideal is the
        intersection of Schubert determinantal ideals
      * "isMinRankTable(Matrix)" -- see isMinRankTable,
        -- whether a matrix is the canonical rank table of some partial ASM
      * "isPartialASM(Matrix)" -- see isPartialASM, --
        whether a matrix is a partial alternating sign matrix
      * "isPatternAvoiding(List,List)" -- see isPatternAvoiding,
        -- whether a permutation avoids certain patterns,
        e.g. $2143$-avoiding or $312$- and $231$-avoiding
      * "isPerm(List)" -- see isPerm, -- whether a list is a
        permutation in 1-line notation
      * "isSchubertCM(List)" -- see isSchubertCM, --
        whether an ASM variety is Cohen-Macaulay
      * "isSchubertCM(Matrix)" -- see isSchubertCM, --
        whether an ASM variety is Cohen-Macaulay
      * "isVexillary(List)" -- see isVexillary, -- whether a
        permutation is vexillary, i.e. 2143-avoiding
      * "KPolynomialASM(Matrix)" -- see KPolynomialASM,
        -- compute the K Polynomial of an ASM variety
      * "lastDescent(List)" -- see lastDescent, -- finds the
        location of the last descent of a permutation
      * "longestPerm(ZZ)" -- see longestPerm, -- to return
        the longest permutation of length n
      * "monotoneTriangleToASM(List)" -- see monotoneTriangleToASM,
        -- converts a monotone triangle to an ASM
      * "nonCohenMacaulayASMsList(ZZ)" -- see nonCohenMacaulayASMsList,
        -- lists all non-Cohen-Macaulay ASMs of a
        fixed size
      * "padASM(Matrix,ZZ)" -- see padASM, -- pad an ASM with an
        identity matrix
      * "partialASMToASM(Matrix)" -- see partialASMToASM,
        -- extend a partial alternating sign matrix to an
        alternating sign matrix
      * "permLength(List)" -- see permLength, -- to find the
        length of a permutation in 1-line notation.
      * "permSetOfASM(Matrix)" -- see permSetOfASM, --
        finds the permutation set of an alternating sign matrix
      * "permToMatrix(List)" -- see permToMatrix, --
        converts a permutation in 1-line notation into a permutation matrix
      * "pipeDreams(List)" -- see pipeDreams, -- computes the
        set of reduced pipe dreams corresponding to a permutation
      * "pipeDreamsNonReduced(List)" -- see pipeDreamsNonReduced,
        -- computes the set of all pipe dreams
        corresponding to a permutation
      * "rajcode(List)" -- see rajcode, -- finds the Rajchgot
        code of a permutation
      * "rajIndex(List)" -- see rajIndex, -- finds the Rajchgot
        index of a permutation
      * "rankTable(List)" -- see rankTable, -- compute a table
        of rank conditions that determines the corresponding ASM or matrix
        Schubert variety
      * "rankTable(Matrix)" -- see rankTable, -- compute a
        table of rank conditions that determines the corresponding ASM or
        matrix Schubert variety
      * "rankTableFromMatrix(Matrix)" -- see rankTableFromMatrix,
        -- returns the minimal rank table from an
        arbitrary integer matrix
      * "rankTableToASM(Matrix)" -- see rankTableToASM,
        -- to find the a partial ASM associated to a given rank table
      * "rotheDiagram(List)" -- see rotheDiagram, -- find
        the Rothe diagram of a partial alternating sign matrix
      * "rotheDiagram(Matrix)" -- see rotheDiagram, -- find
        the Rothe diagram of a partial alternating sign matrix
      * "schubertAdd(List)" -- see schubertAdd, -- compute
        the sum of ASM ideals
      * "schubertCodim(List)" -- see schubertCodim, --
        compute the codimension (i.e., height) of a Schubert determinantal
        ideal or ASM ideal
      * "schubertCodim(Matrix)" -- see schubertCodim, --
        compute the codimension (i.e., height) of a Schubert determinantal
        ideal or ASM ideal
      * "schubertDecompose(Ideal)" -- see schubertDecompose,
        -- finds the decomposition of an ASM ideal into
        Schubert determinantal ideals
      * "schubertDecompose(Matrix)" -- see schubertDecompose,
        -- finds the decomposition of an ASM ideal into
        Schubert determinantal ideals
      * "schubertDeterminantalIdeal(List)" -- see
        schubertDeterminantalIdeal, -- compute an
        alternating sign matrix ideal (for example, a Schubert determinantal
        ideal)
      * "schubertDeterminantalIdeal(Matrix)" -- see
        schubertDeterminantalIdeal, -- compute an
        alternating sign matrix ideal (for example, a Schubert determinantal
        ideal)
      * "schubertIntersect(List)" -- see schubertIntersect,
        -- compute the intersection of ASM ideals
      * "schubertPolynomial(List)" -- see schubertPolynomial,
        -- computes the Schubert polynomial of a
        permutation
      * "schubertRegularity(List)" -- see schubertRegularity,
        -- compute the Castelnuovo-Mumford regularity of
        the quotient by an ASM ideal
      * "schubertRegularity(Matrix)" -- see schubertRegularity,
        -- compute the Castelnuovo-Mumford regularity of
        the quotient by an ASM ideal
      * "subwordComplex(List)" -- see subwordComplex, --
        to find the subword complex associated to w
      * "toOneLineNotation(List,ZZ)" -- see toOneLineNotation,
        -- rewrites a transposition or permutation matrix in
        1-line notation
      * "toOneLineNotation(Matrix)" -- see toOneLineNotation,
        -- rewrites a transposition or permutation matrix in
        1-line notation

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

The object MatrixSchubert, is a package (Macaulay2Doc),
defined in MatrixSchubert.m2, with auxiliary files in
MatrixSchubert/.

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:58:0.

Investigating matrix Schubert varieties -- basic functions for Schubert determinantal ideals
********************************************************************************************

Matrix Schubert varieties were introduced by Fulton [Ful92] in the study of
Schubert varieties in the complete flag variety. Their defining ideals are
called Schubert determinantal ideals.

  * [Ful92] William Fulton, Flags, Schubert polynomials, degeneracy loci, and
    determinantal formulas (see
    https://sites.math.washington.edu/~billey/classes/schubert.library/fulton.
    essential.set.pdf ), Duke Math J. 65 (1992): 381-420.
  * [HPW22] Zachary Hamaker, Oliver Pechenik, and Anna Weigandt, Gröbner
    geometry of Schubert polynomials through ice (see
    https://arxiv.org/abs/2003.13719 ), Advances in Mathematics 398 (2022):
    108228.
  * [KM05] Allen Knutson and Ezra Miller, Gröbner geometry of Schubert
    polynomials (see https://arxiv.org/abs/math/0110058 ), Annals of
    Mathematics (2005): 1245-1318.
  * [PSW24] Oliver Pechenik, David Speyer, and Anna Weigandt,
    Castelnuovo-Mumford regularity of matrix Schubert varieties (see
    https://arxiv.org/abs/2111.10681 ), Selecta Mathematica New Series 30, 66
    (2024).

The general method for creating a Schubert determinantal Ideal is
schubertDeterminantalIdeal. The input is a
permutation in the form of a list. This package contains functions for
investigating the rank matrix (see rankTable), the Rothe diagram
(see rotheDiagram), and the essential cells (see
essentialSet) of the Rothe diagram as defined by Fulton in
[Ful92].

+-----------------------------------------------------------------------------+
|i1 : p = {2,1,6,3,5,4};                                                      |
+-----------------------------------------------------------------------------+
|i2 : rotheDiagram p                                                          |
|                                                                             |
|o2 = {(1, 1), (3, 3), (3, 4), (3, 5), (5, 4)}                                |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : essentialSet p                                                          |
|                                                                             |
|o3 = {(1, 1), (3, 5), (5, 4)}                                                |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+
|i4 : rankTable p                                                             |
|                                                                             |
|o4 = | 0 1 1 1 1 1 |                                                         |
|     | 1 2 2 2 2 2 |                                                         |
|     | 1 2 2 2 2 3 |                                                         |
|     | 1 2 3 3 3 4 |                                                         |
|     | 1 2 3 3 4 5 |                                                         |
|     | 1 2 3 4 5 6 |                                                         |
|                                                                             |
|              6       6                                                      |
|o4 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i5 : netList fultonGens p                                                    |
|                                                                             |
|     +-----------------------------------------------------------------------|
|o5 = |z                                                                      |
|     | 1,1                                                                   |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,3 2,2 3,1    1,2 2,3 3,1    1,3 2,1 3,2    1,1 2,3 3,2    1,2 2,1 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,4 2,2 3,1    1,2 2,4 3,1    1,4 2,1 3,2    1,1 2,4 3,2    1,2 2,1 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,4 2,3 3,1    1,3 2,4 3,1    1,4 2,1 3,3    1,1 2,4 3,3    1,3 2,1 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,4 2,3 3,2    1,3 2,4 3,2    1,4 2,2 3,3    1,2 2,4 3,3    1,3 2,2 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,5 2,2 3,1    1,2 2,5 3,1    1,5 2,1 3,2    1,1 2,5 3,2    1,2 2,1 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,5 2,3 3,1    1,3 2,5 3,1    1,5 2,1 3,3    1,1 2,5 3,3    1,3 2,1 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,5 2,3 3,2    1,3 2,5 3,2    1,5 2,2 3,3    1,2 2,5 3,3    1,3 2,2 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,5 2,4 3,1    1,4 2,5 3,1    1,5 2,1 3,4    1,1 2,5 3,4    1,4 2,1 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,5 2,4 3,2    1,4 2,5 3,2    1,5 2,2 3,4    1,2 2,5 3,4    1,4 2,2 |
|     +-----------------------------------------------------------------------|
|     |- z   z   z    + z   z   z    + z   z   z    - z   z   z    - z   z   z|
|     |   1,5 2,4 3,3    1,4 2,5 3,3    1,5 2,3 3,4    1,3 2,5 3,4    1,4 2,3 |
|     +-----------------------------------------------------------------------|
|     |z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z |
|     | 1,4 2,3 3,2 4,1    1,3 2,4 3,2 4,1    1,4 2,2 3,3 4,1    1,2 2,4 3,3 4|
|     +-----------------------------------------------------------------------|
|     |z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z |
|     | 1,4 2,3 3,2 5,1    1,3 2,4 3,2 5,1    1,4 2,2 3,3 5,1    1,2 2,4 3,3 5|
|     +-----------------------------------------------------------------------|
|     |z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z |
|     | 1,4 2,3 4,2 5,1    1,3 2,4 4,2 5,1    1,4 2,2 4,3 5,1    1,2 2,4 4,3 5|
|     +-----------------------------------------------------------------------|
|     |z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z |
|     | 1,4 3,3 4,2 5,1    1,3 3,4 4,2 5,1    1,4 3,2 4,3 5,1    1,2 3,4 4,3 5|
|     +-----------------------------------------------------------------------|
|     |z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z |
|     | 2,4 3,3 4,2 5,1    2,3 3,4 4,2 5,1    2,4 3,2 4,3 5,1    2,2 3,4 4,3 5|
|     +-----------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,3    1,1 2,2 3,3                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,4    1,1 2,2 3,4                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,4    1,1 2,3 3,4                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,4    1,2 2,3 3,4                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,5    1,1 2,2 3,5                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,5    1,1 2,3 3,5                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,5    1,2 2,3 3,5                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,5    1,1 2,4 3,5                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,5    1,2 2,4 3,5                                                           |
|-----------------------------------------------------------------------------|
|    + z   z   z                                                              |
|3,5    1,3 2,4 3,5                                                           |
|-----------------------------------------------------------------------------|
|   + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z  |
|,1    1,3 2,2 3,4 4,1    1,2 2,3 3,4 4,1    1,4 2,3 3,1 4,2    1,3 2,4 3,1 4,|
|-----------------------------------------------------------------------------|
|   + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z  |
|,1    1,3 2,2 3,4 5,1    1,2 2,3 3,4 5,1    1,4 2,3 3,1 5,2    1,3 2,4 3,1 5,|
|-----------------------------------------------------------------------------|
|   + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z  |
|,1    1,3 2,2 4,4 5,1    1,2 2,3 4,4 5,1    1,4 2,3 4,1 5,2    1,3 2,4 4,1 5,|
|-----------------------------------------------------------------------------|
|   + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z  |
|,1    1,3 3,2 4,4 5,1    1,2 3,3 4,4 5,1    1,4 3,3 4,1 5,2    1,3 3,4 4,1 5,|
|-----------------------------------------------------------------------------|
|   + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z  |
|,1    2,3 3,2 4,4 5,1    2,2 3,3 4,4 5,1    2,4 3,3 4,1 5,2    2,3 3,4 4,1 5,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|  + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |
|2    1,4 2,1 3,3 4,2    1,1 2,4 3,3 4,2    1,3 2,1 3,4 4,2    1,1 2,3 3,4 4,2|
|-----------------------------------------------------------------------------|
|  + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |
|2    1,4 2,1 3,3 5,2    1,1 2,4 3,3 5,2    1,3 2,1 3,4 5,2    1,1 2,3 3,4 5,2|
|-----------------------------------------------------------------------------|
|  + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |
|2    1,4 2,1 4,3 5,2    1,1 2,4 4,3 5,2    1,3 2,1 4,4 5,2    1,1 2,3 4,4 5,2|
|-----------------------------------------------------------------------------|
|  + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |
|2    1,4 3,1 4,3 5,2    1,1 3,4 4,3 5,2    1,3 3,1 4,4 5,2    1,1 3,3 4,4 5,2|
|-----------------------------------------------------------------------------|
|  + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |
|2    2,4 3,1 4,3 5,2    2,1 3,4 4,3 5,2    2,3 3,1 4,4 5,2    2,1 3,3 4,4 5,2|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
| + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    |
|    1,4 2,2 3,1 4,3    1,2 2,4 3,1 4,3    1,4 2,1 3,2 4,3    1,1 2,4 3,2 4,3 |
|-----------------------------------------------------------------------------|
| + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    |
|    1,4 2,2 3,1 5,3    1,2 2,4 3,1 5,3    1,4 2,1 3,2 5,3    1,1 2,4 3,2 5,3 |
|-----------------------------------------------------------------------------|
| + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    |
|    1,4 2,2 4,1 5,3    1,2 2,4 4,1 5,3    1,4 2,1 4,2 5,3    1,1 2,4 4,2 5,3 |
|-----------------------------------------------------------------------------|
| + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    |
|    1,4 3,2 4,1 5,3    1,2 3,4 4,1 5,3    1,4 3,1 4,2 5,3    1,1 3,4 4,2 5,3 |
|-----------------------------------------------------------------------------|
| + z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    |
|    2,4 3,2 4,1 5,3    2,2 3,4 4,1 5,3    2,4 3,1 4,2 5,3    2,1 3,4 4,2 5,3 |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|+ z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    +|
|   1,2 2,1 3,4 4,3    1,1 2,2 3,4 4,3    1,3 2,2 3,1 4,4    1,2 2,3 3,1 4,4  |
|-----------------------------------------------------------------------------|
|+ z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    +|
|   1,2 2,1 3,4 5,3    1,1 2,2 3,4 5,3    1,3 2,2 3,1 5,4    1,2 2,3 3,1 5,4  |
|-----------------------------------------------------------------------------|
|+ z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    +|
|   1,2 2,1 4,4 5,3    1,1 2,2 4,4 5,3    1,3 2,2 4,1 5,4    1,2 2,3 4,1 5,4  |
|-----------------------------------------------------------------------------|
|+ z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    +|
|   1,2 3,1 4,4 5,3    1,1 3,2 4,4 5,3    1,3 3,2 4,1 5,4    1,2 3,3 4,1 5,4  |
|-----------------------------------------------------------------------------|
|+ z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z    +|
|   2,2 3,1 4,4 5,3    2,1 3,2 4,4 5,3    2,3 3,2 4,1 5,4    2,2 3,3 4,1 5,4  |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
|                                                                          |  |
|                                                                          |  |
|--------------------------------------------------------------------------+  |
| z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |  |
|  1,3 2,1 3,2 4,4    1,1 2,3 3,2 4,4    1,2 2,1 3,3 4,4    1,1 2,2 3,3 4,4|  |
|--------------------------------------------------------------------------+  |
| z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |  |
|  1,3 2,1 3,2 5,4    1,1 2,3 3,2 5,4    1,2 2,1 3,3 5,4    1,1 2,2 3,3 5,4|  |
|--------------------------------------------------------------------------+  |
| z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |  |
|  1,3 2,1 4,2 5,4    1,1 2,3 4,2 5,4    1,2 2,1 4,3 5,4    1,1 2,2 4,3 5,4|  |
|--------------------------------------------------------------------------+  |
| z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |  |
|  1,3 3,1 4,2 5,4    1,1 3,3 4,2 5,4    1,2 3,1 4,3 5,4    1,1 3,2 4,3 5,4|  |
|--------------------------------------------------------------------------+  |
| z   z   z   z    - z   z   z   z    - z   z   z   z    + z   z   z   z   |  |
|  2,3 3,1 4,2 5,4    2,1 3,3 4,2 5,4    2,2 3,1 4,3 5,4    2,1 3,2 4,3 5,4|  |
|--------------------------------------------------------------------------+  |
+-----------------------------------------------------------------------------+

The default presentation given by schubertDeterminantalIdeal,
is given by the Fulton generators of the ideal. In
order to access a minimal generating set, use trim (Macaulay2Doc).

+--------------------------------------+
|i6 : I = schubertDeterminantalIdeal p;|
|                                      |
|o6 : Ideal of QQ[z   ..z   ]          |
|                  1,1   6,6           |
+--------------------------------------+
|i7 : numgens I                        |
|                                      |
|o7 = 16                               |
+--------------------------------------+
|i8 : numgens (trim I)                 |
|                                      |
|o8 = 14                               |
+--------------------------------------+

After creating a Schubert determinantal ideal, the permutation associated to it
is stored in its cache table under the key ASM. One can also access the
permutation matrix directly using getASM.

+-----------------------------------------------------------------------------+
|i9 : peek I.cache                                                            |
|                                                                             |
|o9 = CacheTable{ASM => | 0 1 0 0 0 0 |                                       |
|                       | 1 0 0 0 0 0 |                                       |
|                       | 0 0 0 0 0 1 |                                       |
|                       | 0 0 1 0 0 0 |                                       |
|                       | 0 0 0 0 1 0 |                                       |
|                       | 0 0 0 1 0 0 |                                       |
|                module => image | z_(1,1)                                    |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,3)z_(2,2)z_(3,1)+z_(1,2)z_(2,3)z_(3,1)+z_(1,3)z_(2,1)z_(3,2)-z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,3)z_(3,2)-z_(1,2)z_(2,1)z_(3,3)+z_(1,1)z_(2,2)z_(3,3)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,4)z_(2,2)z_(3,1)+z_(1,2)z_(2,4)z_(3,1)+z_(1,4)z_(2,1)z_(3,2)-z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,4)z_(3,2)-z_(1,2)z_(2,1)z_(3,4)+z_(1,1)z_(2,2)z_(3,4)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,4)z_(2,3)z_(3,1)+z_(1,3)z_(2,4)z_(3,1)+z_(1,4)z_(2,1)z_(3,3)-z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,4)z_(3,3)-z_(1,3)z_(2,1)z_(3,4)+z_(1,1)z_(2,3)z_(3,4)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,4)z_(2,3)z_(3,2)+z_(1,3)z_(2,4)z_(3,2)+z_(1,4)z_(2,2)z_(3,3)-z_(1,2)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,4)z_(3,3)-z_(1,3)z_(2,2)z_(3,4)+z_(1,2)z_(2,3)z_(3,4)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,5)z_(2,2)z_(3,1)+z_(1,2)z_(2,5)z_(3,1)+z_(1,5)z_(2,1)z_(3,2)-z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,5)z_(3,2)-z_(1,2)z_(2,1)z_(3,5)+z_(1,1)z_(2,2)z_(3,5)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,5)z_(2,3)z_(3,1)+z_(1,3)z_(2,5)z_(3,1)+z_(1,5)z_(2,1)z_(3,3)-z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,5)z_(3,3)-z_(1,3)z_(2,1)z_(3,5)+z_(1,1)z_(2,3)z_(3,5)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,5)z_(2,3)z_(3,2)+z_(1,3)z_(2,5)z_(3,2)+z_(1,5)z_(2,2)z_(3,3)-z_(1,2)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,5)z_(3,3)-z_(1,3)z_(2,2)z_(3,5)+z_(1,2)z_(2,3)z_(3,5)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,5)z_(2,4)z_(3,1)+z_(1,4)z_(2,5)z_(3,1)+z_(1,5)z_(2,1)z_(3,4)-z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,5)z_(3,4)-z_(1,4)z_(2,1)z_(3,5)+z_(1,1)z_(2,4)z_(3,5)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,5)z_(2,4)z_(3,2)+z_(1,4)z_(2,5)z_(3,2)+z_(1,5)z_(2,2)z_(3,4)-z_(1,2)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,5)z_(3,4)-z_(1,4)z_(2,2)z_(3,5)+z_(1,2)z_(2,4)z_(3,5)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,5)z_(2,4)z_(3,3)+z_(1,4)z_(2,5)z_(3,3)+z_(1,5)z_(2,3)z_(3,4)-z_(1,3)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,5)z_(3,4)-z_(1,4)z_(2,3)z_(3,5)+z_(1,3)z_(2,4)z_(3,5)                      |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(1,4)z_(2,3)z_(3,2)z_(4,1)-z_(1,3)z_(2,4)z_(3,2)z_(4,1)-z_(1,4)z_(2,2)z_(3,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3)z_(4,1)+z_(1,2)z_(2,4)z_(3,3)z_(4,1)+z_(1,3)z_(2,2)z_(3,4)z_(4,1)-z_(1,2)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(2,3)z_(3,4)z_(4,1)-z_(1,4)z_(2,3)z_(3,1)z_(4,2)+z_(1,3)z_(2,4)z_(3,1)z_(4,2|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|)+z_(1,4)z_(2,1)z_(3,3)z_(4,2)-z_(1,1)z_(2,4)z_(3,3)z_(4,2)-z_(1,3)z_(2,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3,4)z_(4,2)+z_(1,1)z_(2,3)z_(3,4)z_(4,2)+z_(1,4)z_(2,2)z_(3,1)z_(4,3)-z_(1,2)|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(2,4)z_(3,1)z_(4,3)-z_(1,4)z_(2,1)z_(3,2)z_(4,3)+z_(1,1)z_(2,4)z_(3,2)z_(4,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3)+z_(1,2)z_(2,1)z_(3,4)z_(4,3)-z_(1,1)z_(2,2)z_(3,4)z_(4,3)-z_(1,3)z_(2,2)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(3,1)z_(4,4)+z_(1,2)z_(2,3)z_(3,1)z_(4,4)+z_(1,3)z_(2,1)z_(3,2)z_(4,4)-z_(1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|1)z_(2,3)z_(3,2)z_(4,4)-z_(1,2)z_(2,1)z_(3,3)z_(4,4)+z_(1,1)z_(2,2)z_(3,3)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|4,4) z_(1,4)z_(2,3)z_(3,2)z_(5,1)-z_(1,3)z_(2,4)z_(3,2)z_(5,1)-z_(1,4)z_(2,2)|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(3,3)z_(5,1)+z_(1,2)z_(2,4)z_(3,3)z_(5,1)+z_(1,3)z_(2,2)z_(3,4)z_(5,1)-z_(1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|,2)z_(2,3)z_(3,4)z_(5,1)-z_(1,4)z_(2,3)z_(3,1)z_(5,2)+z_(1,3)z_(2,4)z_(3,1)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(5,2)+z_(1,4)z_(2,1)z_(3,3)z_(5,2)-z_(1,1)z_(2,4)z_(3,3)z_(5,2)-z_(1,3)z_(2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|1)z_(3,4)z_(5,2)+z_(1,1)z_(2,3)z_(3,4)z_(5,2)+z_(1,4)z_(2,2)z_(3,1)z_(5,3)-z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(1,2)z_(2,4)z_(3,1)z_(5,3)-z_(1,4)z_(2,1)z_(3,2)z_(5,3)+z_(1,1)z_(2,4)z_(3,2|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|)z_(5,3)+z_(1,2)z_(2,1)z_(3,4)z_(5,3)-z_(1,1)z_(2,2)z_(3,4)z_(5,3)-z_(1,3)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2,2)z_(3,1)z_(5,4)+z_(1,2)z_(2,3)z_(3,1)z_(5,4)+z_(1,3)z_(2,1)z_(3,2)z_(5,4)-|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(1,1)z_(2,3)z_(3,2)z_(5,4)-z_(1,2)z_(2,1)z_(3,3)z_(5,4)+z_(1,1)z_(2,2)z_(3,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3)z_(5,4) z_(1,4)z_(2,3)z_(4,2)z_(5,1)-z_(1,3)z_(2,4)z_(4,2)z_(5,1)-z_(1,4)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(2,2)z_(4,3)z_(5,1)+z_(1,2)z_(2,4)z_(4,3)z_(5,1)+z_(1,3)z_(2,2)z_(4,4)z_(5,1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|)-z_(1,2)z_(2,3)z_(4,4)z_(5,1)-z_(1,4)z_(2,3)z_(4,1)z_(5,2)+z_(1,3)z_(2,4)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|4,1)z_(5,2)+z_(1,4)z_(2,1)z_(4,3)z_(5,2)-z_(1,1)z_(2,4)z_(4,3)z_(5,2)-z_(1,3)|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(2,1)z_(4,4)z_(5,2)+z_(1,1)z_(2,3)z_(4,4)z_(5,2)+z_(1,4)z_(2,2)z_(4,1)z_(5,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3)-z_(1,2)z_(2,4)z_(4,1)z_(5,3)-z_(1,4)z_(2,1)z_(4,2)z_(5,3)+z_(1,1)z_(2,4)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(4,2)z_(5,3)+z_(1,2)z_(2,1)z_(4,4)z_(5,3)-z_(1,1)z_(2,2)z_(4,4)z_(5,3)-z_(1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3)z_(2,2)z_(4,1)z_(5,4)+z_(1,2)z_(2,3)z_(4,1)z_(5,4)+z_(1,3)z_(2,1)z_(4,2)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|5,4)-z_(1,1)z_(2,3)z_(4,2)z_(5,4)-z_(1,2)z_(2,1)z_(4,3)z_(5,4)+z_(1,1)z_(2,2)|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(4,3)z_(5,4) z_(1,4)z_(3,3)z_(4,2)z_(5,1)-z_(1,3)z_(3,4)z_(4,2)z_(5,1)-z_(1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|,4)z_(3,2)z_(4,3)z_(5,1)+z_(1,2)z_(3,4)z_(4,3)z_(5,1)+z_(1,3)z_(3,2)z_(4,4)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(5,1)-z_(1,2)z_(3,3)z_(4,4)z_(5,1)-z_(1,4)z_(3,3)z_(4,1)z_(5,2)+z_(1,3)z_(3,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|4)z_(4,1)z_(5,2)+z_(1,4)z_(3,1)z_(4,3)z_(5,2)-z_(1,1)z_(3,4)z_(4,3)z_(5,2)-z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(1,3)z_(3,1)z_(4,4)z_(5,2)+z_(1,1)z_(3,3)z_(4,4)z_(5,2)+z_(1,4)z_(3,2)z_(4,1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|)z_(5,3)-z_(1,2)z_(3,4)z_(4,1)z_(5,3)-z_(1,4)z_(3,1)z_(4,2)z_(5,3)+z_(1,1)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|3,4)z_(4,2)z_(5,3)+z_(1,2)z_(3,1)z_(4,4)z_(5,3)-z_(1,1)z_(3,2)z_(4,4)z_(5,3)-|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(1,3)z_(3,2)z_(4,1)z_(5,4)+z_(1,2)z_(3,3)z_(4,1)z_(5,4)+z_(1,3)z_(3,1)z_(4,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2)z_(5,4)-z_(1,1)z_(3,3)z_(4,2)z_(5,4)-z_(1,2)z_(3,1)z_(4,3)z_(5,4)+z_(1,1)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(3,2)z_(4,3)z_(5,4) z_(2,4)z_(3,3)z_(4,2)z_(5,1)-z_(2,3)z_(3,4)z_(4,2)z_(5,1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|)-z_(2,4)z_(3,2)z_(4,3)z_(5,1)+z_(2,2)z_(3,4)z_(4,3)z_(5,1)+z_(2,3)z_(3,2)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|4,4)z_(5,1)-z_(2,2)z_(3,3)z_(4,4)z_(5,1)-z_(2,4)z_(3,3)z_(4,1)z_(5,2)+z_(2,3)|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(3,4)z_(4,1)z_(5,2)+z_(2,4)z_(3,1)z_(4,3)z_(5,2)-z_(2,1)z_(3,4)z_(4,3)z_(5,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2)-z_(2,3)z_(3,1)z_(4,4)z_(5,2)+z_(2,1)z_(3,3)z_(4,4)z_(5,2)+z_(2,4)z_(3,2)z |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|_(4,1)z_(5,3)-z_(2,2)z_(3,4)z_(4,1)z_(5,3)-z_(2,4)z_(3,1)z_(4,2)z_(5,3)+z_(2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|1)z_(3,4)z_(4,2)z_(5,3)+z_(2,2)z_(3,1)z_(4,4)z_(5,3)-z_(2,1)z_(3,2)z_(4,4)z_(|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|5,3)-z_(2,3)z_(3,2)z_(4,1)z_(5,4)+z_(2,2)z_(3,3)z_(4,1)z_(5,4)+z_(2,3)z_(3,1)|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|z_(4,2)z_(5,4)-z_(2,1)z_(3,3)z_(4,2)z_(5,4)-z_(2,2)z_(3,1)z_(4,3)z_(5,4)+z_(2|
|-----------------------------------------------------------------------------|
|                          }                                                  |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|,1)z_(3,2)z_(4,3)z_(5,4) |                                                   |
+-----------------------------------------------------------------------------+
|i10 : getASM I                                                               |
|                                                                             |
|o10 = | 0 1 0 0 0 0 |                                                        |
|      | 1 0 0 0 0 0 |                                                        |
|      | 0 0 0 0 0 1 |                                                        |
|      | 0 0 1 0 0 0 |                                                        |
|      | 0 0 0 0 1 0 |                                                        |
|      | 0 0 0 1 0 0 |                                                        |
|                                                                             |
|               6       6                                                     |
|o10 : Matrix ZZ  <-- ZZ                                                      |
+-----------------------------------------------------------------------------+

This package also contains methods for investigating antidiagonal initial
ideals (see antiDiagInit) of Schubert determinantal ideals and
their associated Stanley-Reisner complexes, which are a kind of subword complex
(see subwordComplex). Subword complexes were introduced in
[KM05] in the study of antidiagonal initial ideal of Schubert determinantal
ideals and their relation to Schubert polynomials.

+-----------------------------------------------------------------------------+
|i11 : antiDiagInit p                                                         |
|                                                                             |
|o11 = monomialIdeal (z   , z   z   z   , z   z   z   , z   z   z   ,         |
|                      1,1   1,3 2,2 3,1   1,4 2,2 3,1   1,5 2,2 3,1          |
|      -----------------------------------------------------------------------|
|      z   z   z   , z   z   z   , z   z   z   , z   z   z   , z   z   z   ,  |
|       1,4 2,3 3,1   1,5 2,3 3,1   1,5 2,4 3,1   1,4 2,3 3,2   1,5 2,3 3,2   |
|      -----------------------------------------------------------------------|
|      z   z   z   , z   z   z   , z   z   z   z   , z   z   z   z   ,        |
|       1,5 2,4 3,2   1,5 2,4 3,3   1,4 2,3 4,2 5,1   1,4 3,3 4,2 5,1         |
|      -----------------------------------------------------------------------|
|      z   z   z   z   )                                                      |
|       2,4 3,3 4,2 5,1                                                       |
|                                                                             |
|o11 : MonomialIdeal of QQ[z   ..z   ]                                        |
|                           1,1   6,6                                         |
+-----------------------------------------------------------------------------+
|i12 : subwordComplex p                                                       |
|                                                                             |
|o12 = simplicialComplex |                                                    |
|                                                                             |
|o12 : SimplicialComplex                                                      |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,3)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,5)z_(1,6)z_(2,1)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,5)z_(2,6)z_(3,2)z_(3,3)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,5)z_(2,6)z_(3,2)z_(3,3)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,5)z_(2,6)z_(3,3)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,2)z_(2,4)z_(2,5)z_(2,6)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,5)z_(2,6)z_(3,2)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,4)z_(2,5)z_(2,6)z_(3,4)|
|-----------------------------------------------------------------------------|
|z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,2)z_(2,4)z_(2,5)z_(2,6)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,5)z_(2,6)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,5)z_(2,6)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,1)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,4)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,5)z_(2,6)z_(3,1)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,2)z_(2,4)z_(2,5)z_(2,6)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,5)z_(2,6)z_(3,2)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,5)z_(2,6)z_(3,3)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6)              |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(1,6)z_(2,1)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(2,6)|
|-----------------------------------------------------------------------------|
|z_(3,4)z_(3,5)z_(3,6)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(4,6)z_(5,2)z_(5,3)|
|-----------------------------------------------------------------------------|
|z_(5,4)z_(5,5)z_(5,6)z_(6,1)z_(6,2)z_(6,3)z_(6,4)z_(6,5)z_(6,6) |            |
+-----------------------------------------------------------------------------+

Given a list of permutations, this package also contains functions for
intersecting (see schubertIntersect) and adding (see
schubertAdd) the Schubert determinantal ideals associated to the
list of permutations.

+-----------------------------------------------------------------------------+
|i13 : L = {{3,1,5,4,2},{2,5,3,4,1}} -- a list of 2 permutations              |
|                                                                             |
|o13 = {{3, 1, 5, 4, 2}, {2, 5, 3, 4, 1}}                                     |
|                                                                             |
|o13 : List                                                                   |
+-----------------------------------------------------------------------------+
|i14 : schubertAdd L                                                          |
|                                                                             |
|o14 = ideal (z   , z   , - z   z    + z   z   , - z   z    + z   z   , -     |
|              1,1   1,2     1,2 2,1    1,1 2,2     1,3 2,1    1,1 2,3        |
|      -----------------------------------------------------------------------|
|      z   z    + z   z   , - z   z    + z   z   , - z   z    + z   z   , -   |
|       1,3 2,2    1,2 2,3     1,4 2,1    1,1 2,4     1,4 2,2    1,2 2,4      |
|      -----------------------------------------------------------------------|
|      z   z    + z   z   , z   , z   , z   )                                 |
|       1,4 2,3    1,3 2,4   2,1   3,1   4,1                                  |
|                                                                             |
|o14 : Ideal of QQ[z   ..z   ]                                                |
|                   1,1   5,5                                                 |
+-----------------------------------------------------------------------------+
|i15 : schubertIntersect L                                                    |
|                                                                             |
|                                                                             |
|o15 = ideal (z   , z   z    - z   z   , z   z    - z   z   , z   z   ,       |
|              1,1   3,2 4,1    3,1 4,2   2,2 4,1    2,1 4,2   1,2 4,1        |
|      -----------------------------------------------------------------------|
|                                                                             |
|      z   z    - z   z   , z   z   , z   z   , z   z   z    - z   z   z    - |
|       2,2 3,1    2,1 3,2   1,2 3,1   1,2 2,1   1,4 2,3 3,2    1,3 2,4 3,2   |
|      -----------------------------------------------------------------------|
|                                                                             |
|      z   z   z    + z   z   z    + z   z   z    - z   z   z   , z   z   z   |
|       1,4 2,2 3,3    1,2 2,4 3,3    1,3 2,2 3,4    1,2 2,3 3,4   1,4 2,3 3,1|
|      -----------------------------------------------------------------------|
|                                                                             |
|      - z   z   z    - z   z   z    + z   z   z   , z   z   z    -           |
|         1,3 2,4 3,1    1,4 2,1 3,3    1,3 2,1 3,4   1,2 1,4 2,3             |
|      -----------------------------------------------------------------------|
|                                    2                        2               |
|      z   z   z   , z   z   z    - z   z   , z   z   z    - z   z   )        |
|       1,2 1,3 2,4   1,2 1,4 2,2    1,2 2,4   1,2 1,3 2,2    1,2 2,3         |
|                                                                             |
|o15 : Ideal of QQ[z   ..z   ]                                                |
|                   1,1   5,5                                                 |
+-----------------------------------------------------------------------------+

Finally, this package contains functions for investigating homological
invariants of matrix Schubert varieties efficiently through combinatorial
algorithms produced in [PSW24] via schubertRegularity,
see schubertCodim.

+-----------------------------------------------------------+
|i16 : time schubertRegularity p                            |
| -- used 0.000327569s (cpu); 0.000328209s (thread); 0s (gc)|
|                                                           |
|o16 = 5                                                    |
+-----------------------------------------------------------+
|i17 : time regularity comodule I                           |
| -- used 0.0243327s (cpu); 0.0243368s (thread); 0s (gc)    |
|                                                           |
|o17 = 5                                                    |
+-----------------------------------------------------------+

Functions for investigating matrix Schubert varieties
=====================================================

  * antiDiagInit(List) -- compute the (unique)
    antidiagonal initial ideal of an ASM ideal
  * rankTable(List) -- compute a table of rank conditions
    that determines the corresponding ASM or matrix Schubert variety
  * rotheDiagram(List) -- find the Rothe diagram of a
    partial alternating sign matrix
  * augmentedRotheDiagram(List) -- find the Rothe
    diagram and rank table for a partial ASM or permutation
  * essentialSet(List) -- compute the essential set in the
    Rothe Diagram for a partial ASM or a permutation.
  * augmentedEssentialSet(List) -- find the
    essential set and rank conditions for a partial ASM or a permutation
  * schubertDeterminantalIdeal(List), --
    compute an alternating sign matrix ideal (for example, a Schubert
    determinantal ideal)
  * fultonGens(List) -- compute the Fulton generators of an
    ASM ideal (for example, a Schubert determinantal ideal)
  * subwordComplex(List) -- to find the subword complex
    associated to w
  * schubertIntersect(List) -- compute the
    intersection of ASM ideals
  * schubertAdd(List) -- compute the sum of ASM ideals
  * schubertRegularity(List) -- compute the
    Castelnuovo-Mumford regularity of the quotient by an ASM ideal
  * schubertCodim(List) -- compute the codimension (i.e.,
    height) of a Schubert determinantal ideal or ASM ideal
-------------------------------------------------------------------------------

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:157:0.

Investigating ASM varieties -- basic functions for alternating sign matrix ideals
*********************************************************************************

Alternating sign matrix (ASM) varieties were introduced by Weigandt [Wei17].
ASM varieties generalize matrix Schubert varieties. This package contains
functions for investigating ASM varieties and their defining ideals.

  * [CV20] Aldo Conca and Matteo Varbaro, Square-free Gröbner degenerations
    (see https://arxiv.org/abs/1805.11923 ), Inventiones mathematicae, 221(3),
    pp.713-730.
  * [Wei17] Anna Weigandt, Prism tableaux for alternating sign matrix varieties
    (see https://arxiv.org/abs/1708.07236 ), arXiv preprint 1708.07236.

The general method for defining the ideal of an ASM variety is
schubertDeterminantalIdeal. The input can be an
alternating sign matrix or a partial alternating sign matrix. This package
contains functions for checking if a matrix is a partial ASM, extending a
partial ASM to an ASM, and computing the rank matrix for an ASM.

+-------------------------------------------------------------------+
|i1 : A = matrix{{0,0,0},{0,1,0},{1,-1,0}} --Example 3.15 in [Wei17]|
|                                                                   |
|o1 = | 0 0  0 |                                                    |
|     | 0 1  0 |                                                    |
|     | 1 -1 0 |                                                    |
|                                                                   |
|              3       3                                            |
|o1 : Matrix ZZ  <-- ZZ                                             |
+-------------------------------------------------------------------+
|i2 : isPartialASM A                                                |
|                                                                   |
|o2 = true                                                          |
+-------------------------------------------------------------------+
|i3 : A' = partialASMToASM A                                        |
|                                                                   |
|o3 = | 0 0  0 1 0 |                                                |
|     | 0 1  0 0 0 |                                                |
|     | 1 -1 0 0 1 |                                                |
|     | 0 1  0 0 0 |                                                |
|     | 0 0  1 0 0 |                                                |
|                                                                   |
|              5       5                                            |
|o3 : Matrix ZZ  <-- ZZ                                             |
+-------------------------------------------------------------------+

This package contains functions for investigating the rank matrix (see
rankTable), the Rothe diagram (see rotheDiagram),
and the essential cells (see essentialSet) of the Rothe
diagram of a partial ASM as defined by Fulton in [Ful92] and Weigandt in
[Wei17].

+-----------------------------------------------------+
|i4 : rotheDiagram A                                  |
|                                                     |
|o4 = {(1, 1), (1, 2), (1, 3), (2, 1), (3, 2), (3, 3)}|
|                                                     |
|o4 : List                                            |
+-----------------------------------------------------+
|i5 : essentialSet A                                  |
|                                                     |
|o5 = {(1, 3), (2, 1), (3, 3)}                        |
|                                                     |
|o5 : List                                            |
+-----------------------------------------------------+
|i6 : rankTable A                                     |
|                                                     |
|o6 = | 0 0 0 |                                       |
|     | 0 1 1 |                                       |
|     | 1 1 1 |                                       |
|                                                     |
|              3       3                              |
|o6 : Matrix ZZ  <-- ZZ                               |
+-----------------------------------------------------+
|i7 : netList fultonGens A                            |
|                                                     |
|     +---------------------+                         |
|o7 = |z                    |                         |
|     | 1,1                 |                         |
|     +---------------------+                         |
|     |z                    |                         |
|     | 1,2                 |                         |
|     +---------------------+                         |
|     |z                    |                         |
|     | 1,3                 |                         |
|     +---------------------+                         |
|     |z                    |                         |
|     | 2,1                 |                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   1,2 2,1    1,1 2,2|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   1,2 3,1    1,1 3,2|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   2,2 3,1    2,1 3,2|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   1,3 2,1    1,1 2,3|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   1,3 3,1    1,1 3,3|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   2,3 3,1    2,1 3,3|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   1,3 2,2    1,2 2,3|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   1,3 3,2    1,2 3,3|                         |
|     +---------------------+                         |
|     |- z   z    + z   z   |                         |
|     |   2,3 3,2    2,2 3,3|                         |
|     +---------------------+                         |
+-----------------------------------------------------+

The default presentation given by schubertDeterminantalIdeal,
is given by the Fulton generators of the ideal. In
order to access a minimal generating set, use trim (Macaulay2Doc).

+--------------------------------------+
|i8 : I = schubertDeterminantalIdeal A;|
|                                      |
|o8 : Ideal of QQ[z   ..z   ]          |
|                  1,1   3,3           |
+--------------------------------------+
|i9 : numgens I                        |
|                                      |
|o9 = 13                               |
+--------------------------------------+
|i10 : numgens (trim I)                |
|                                      |
|o10 = 7                               |
+--------------------------------------+

After creating an ASM ideal, the corresponding ASM is stored in the cache
table.

+-----------------------------------------------------------------------------+
|i11 : peek I.cache                                                           |
|                                                                             |
|o11 = CacheTable{ASM => | 0 0  0 |                                           |
|                        | 0 1  0 |                                           |
|                        | 1 -1 0 |                                           |
|                 module => image | z_(1,1) z_(1,2) z_(1,3) z_(2,1)           |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,2)z_(2,1)+z_(1,1)z_(2,2) -z_(1,2)z_(3,1)+z_(1,1)z_(3,2)                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(2,2)z_(3,1)+z_(2,1)z_(3,2) -z_(1,3)z_(2,1)+z_(1,1)z_(2,3)                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,3)z_(3,1)+z_(1,1)z_(3,3) -z_(2,3)z_(3,1)+z_(2,1)z_(3,3)                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|-z_(1,3)z_(2,2)+z_(1,2)z_(2,3) -z_(1,3)z_(3,2)+z_(1,2)z_(3,3)                |
|-----------------------------------------------------------------------------|
|                                }                                            |
|                                                                             |
|                                                                             |
|-z_(2,3)z_(3,2)+z_(2,2)z_(3,3) |                                             |
+-----------------------------------------------------------------------------+

This package also contains methods for investigating or using initial ideals of
ASM ideals, for instance via antiDiagInit.

+--------------------------------------------------------------------------+
|i12 : antiDiagInit A                                                      |
|                                                                          |
|o12 = monomialIdeal (z   , z   , z   , z   , z   z   , z   z   , z   z   )|
|                      1,1   1,2   1,3   2,1   2,2 3,1   2,3 3,1   2,3 3,2 |
|                                                                          |
|o12 : MonomialIdeal of QQ[z   ..z   ]                                     |
|                           1,1   3,3                                      |
+--------------------------------------------------------------------------+

Every ASM ideal can be written as the intersection of Schubert determinantal
ideals. The function schubertDecompose, outputs the
list of permutations that index the prime components of the ASM variety
associated to A.

+----------------------------------------+
|i13 : schubertDecompose I               |
|                                        |
|o13 = {{4, 5, 1, 2, 3}, {4, 2, 5, 1, 3}}|
|                                        |
|o13 : List                              |
+----------------------------------------+

Given a list of partial ASMs, this package also contains functions for
intersecting (see schubertIntersect) and adding (see
schubertAdd) the ASM ideals associated to the list of ASMs or
partial ASMs. Every sum of ASM ideals (equivalently, of ideals defined by
partial ASMs) is again an ASM ideal.  The function schubertAdd,
automatically stores the ASM associated to this new ideal in its
cache table.

+-----------------------------------------------------------------------------+
|i14 : B = matrix{{0,1,0,0,0},{0,0,0,1,0},{1,-1,1,0,0},{0,0,0,0,1},{0,1,0,0,0 |
|                                                                             |
|o14 = | 0 1  0 0 0 |                                                         |
|      | 0 0  0 1 0 |                                                         |
|      | 1 -1 1 0 0 |                                                         |
|      | 0 0  0 0 1 |                                                         |
|      | 0 1  0 0 0 |                                                         |
|                                                                             |
|               5       5                                                     |
|o14 : Matrix ZZ  <-- ZZ                                                      |
|-----------------------------------------------------------------------------|
|}}                                                                           |
+-----------------------------------------------------------------------------+
|i15 : L = {A, B} -- a list of 2 partial ASMs                                 |
|                                                                             |
|o15 = {| 0 0  0 |, | 0 1  0 0 0 |}                                           |
|       | 0 1  0 |  | 0 0  0 1 0 |                                            |
|       | 1 -1 0 |  | 1 -1 1 0 0 |                                            |
|                   | 0 0  0 0 1 |                                            |
|                   | 0 1  0 0 0 |                                            |
|                                                                             |
|o15 : List                                                                   |
+-----------------------------------------------------------------------------+
|i16 : J = schubertAdd L                                                      |
|                                                                             |
|o16 = ideal (z   , z   , z   , z   , - z   z    + z   z   , - z   z    +     |
|              1,1   1,2   1,3   2,1     1,2 2,1    1,1 2,2     1,2 3,1       |
|      -----------------------------------------------------------------------|
|      z   z   , - z   z    + z   z   , - z   z    + z   z   , - z   z    +   |
|       1,1 3,2     2,2 3,1    2,1 3,2     1,3 2,1    1,1 2,3     1,3 3,1     |
|      -----------------------------------------------------------------------|
|      z   z   , - z   z    + z   z   , - z   z    + z   z   , - z   z    +   |
|       1,1 3,3     2,3 3,1    2,1 3,3     1,3 2,2    1,2 2,3     1,3 3,2     |
|      -----------------------------------------------------------------------|
|      z   z   , - z   z    + z   z   , - z   z    + z   z   , - z   z    +   |
|       1,2 3,3     2,3 3,2    2,2 3,3     1,2 4,1    1,1 4,2     2,2 4,1     |
|      -----------------------------------------------------------------------|
|      z   z   , - z   z    + z   z   )                                       |
|       2,1 4,2     3,2 4,1    3,1 4,2                                        |
|                                                                             |
|o16 : Ideal of QQ[z   ..z   ]                                                |
|                   1,1   5,5                                                 |
+-----------------------------------------------------------------------------+
|i17 : peek J.cache                                                           |
|                                                                             |
|o17 = CacheTable{ASM => | 0 0  0 1 0 |     }                                 |
|                        | 0 1  0 0 0 |                                       |
|                        | 1 -1 0 0 1 |                                       |
|                        | 0 0  1 0 0 |                                       |
|                        | 0 1  0 0 0 |                                       |
|                 rankTable => | 0 0 0 1 1 |                                  |
|                              | 0 1 1 2 2 |                                  |
|                              | 1 1 1 2 3 |                                  |
|                              | 1 1 2 3 4 |                                  |
|                              | 1 2 3 4 5 |                                  |
+-----------------------------------------------------------------------------+
|i18 : K = schubertIntersect L                                                |
|                                                                             |
|o18 = ideal (z   , z   , z   z   , z   z   , z   z   , z   z    - z   z   ,  |
|              2,1   1,1   1,2 4,1   2,2 3,1   1,2 3,1   1,3 2,2    1,2 2,3   |
|      -----------------------------------------------------------------------|
|      z   z   z    - z   z   z    - z   z   z   , z   z   z    -             |
|       2,3 3,2 4,1    2,2 3,3 4,1    2,3 3,1 4,2   1,3 3,2 4,1               |
|      -----------------------------------------------------------------------|
|      z   z   z   )                                                          |
|       1,3 3,1 4,2                                                           |
|                                                                             |
|o18 : Ideal of QQ[z   ..z   ]                                                |
|                   1,1   5,5                                                 |
+-----------------------------------------------------------------------------+

Although every ASM ideal is an intersection of Schubert determinantal ideals,
many intersections of Schubert determinantal ideals are not ASM ideals.  The
function isASMIdeal, determines whether or not an ideal is
the ASM ideal of any ASM. If it is, the ASM is stored in its cache table and is
accessible via getASM.

+---------------------------------------------------+
|i19 : isASMIdeal K                                 |
|                                                   |
|o19 = false                                        |
+---------------------------------------------------+
|i20 : K' = schubertIntersect {{3, 1, 2}, {2, 3, 1}}|
|                                                   |
|o20 = ideal (z   , z   z   )                       |
|              1,1   1,2 2,1                        |
|                                                   |
|o20 : Ideal of QQ[z   ..z   ]                      |
|                   1,1   3,3                       |
+---------------------------------------------------+
|i21 : isASMIdeal K'                                |
|                                                   |
|o21 = true                                         |
+---------------------------------------------------+
|i22 : getASM K'                                    |
|                                                   |
|o22 = | 0 1  0 |                                   |
|      | 1 -1 1 |                                   |
|      | 0 1  0 |                                   |
|                                                   |
|               3       3                           |
|o22 : Matrix ZZ  <-- ZZ                            |
+---------------------------------------------------+

Additionally, this package facilitates investigating homological invariants of
ASM ideals such as regularity (see schubertRegularity)
and codimension (see schubertCodim). efficiently by computing
the associated invariants for their antidiagonal initial ideals, which are
known to be squarefree by [Wei17]. Therefore the extremal Betti numbers (which
encode regularity, depth, and projective dimension) of ASM ideals coincide with
those of their antidiagonal initial ideals by [CV20].

+-----------------------------------------------------------+
|i23 : time schubertRegularity B                            |
| -- used 0.0837533s (cpu); 0.042686s (thread); 0s (gc)     |
|                                                           |
|o23 = 1                                                    |
+-----------------------------------------------------------+
|i24 : time regularity comodule schubertDeterminantalIdeal B|
| -- used 0.0185123s (cpu); 0.0185174s (thread); 0s (gc)    |
|                                                           |
|o24 = 1                                                    |
+-----------------------------------------------------------+

Functions for investigating ASM varieties
=========================================

  * isPartialASM(Matrix) -- whether a matrix is a partial
    alternating sign matrix
  * partialASMToASM(Matrix) -- extend a partial
    alternating sign matrix to an alternating sign matrix
  * rankTable(Matrix) -- compute a table of rank conditions
    that determines the corresponding ASM or matrix Schubert variety
  * rankTableFromMatrix(Matrix) -- returns the
    minimal rank table from an arbitrary integer matrix
  * rankTableToASM(Matrix) -- to find the a partial ASM
    associated to a given rank table
  * isASMIdeal(Ideal) -- whether an ideal is an ASM ideal
  * isASM(Matrix) -- whether a matrix is an ASM
  * isASMUnion(List) -- whether the union of matrix Schubert
    varieties is an ASM variety
  * rotheDiagram(Matrix) -- find the Rothe diagram of a
    partial alternating sign matrix
  * augmentedRotheDiagram(Matrix) -- find the
    Rothe diagram and rank table for a partial ASM or permutation
  * essentialSet(Matrix) -- compute the essential set in
    the Rothe Diagram for a partial ASM or a permutation.
  * augmentedEssentialSet(Matrix) -- find the
    essential set and rank conditions for a partial ASM or a permutation
  * schubertDeterminantalIdeal(Matrix), --
    compute an alternating sign matrix ideal (for example, a Schubert
    determinantal ideal)
  * fultonGens(Matrix) -- compute the Fulton generators of
    an ASM ideal (for example, a Schubert determinantal ideal)
  * schubertIntersect(List) -- compute the
    intersection of ASM ideals
  * schubertAdd(List) -- compute the sum of ASM ideals
  * schubertRegularity(Matrix) -- compute the
    Castelnuovo-Mumford regularity of the quotient by an ASM ideal
  * schubertCodim(Matrix) -- compute the codimension
    (i.e., height) of a Schubert determinantal ideal or ASM ideal
  * permSetOfASM(Matrix) -- finds the permutation set of
    an alternating sign matrix
  * toOneLineNotation(Matrix) -- rewrites a
    transposition or permutation matrix in 1-line notation

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:308:0.

padASM -- pad an ASM with an identity matrix
********************************************

  * Usage:
        padASM(A, n)
  * Inputs:
      * A, a matrix (Macaulay2Doc),
      * n, an integer (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Given an alternating sign matrix, pads the ASM pads an ASM with a block of an
$n\times n$ identity matrix to the bottom right of the original ASM.

+-------------------------------------------------------------------------+
|i1 : A = matrix{{0, 0, 1, 0}, {1, 0, 0, 0}, {0, 1, -1, 1}, {0, 0, 1, 0}};|
|                                                                         |
|              4       4                                                  |
|o1 : Matrix ZZ  <-- ZZ                                                   |
+-------------------------------------------------------------------------+
|i2 : padASM(A,3)                                                         |
|                                                                         |
|o2 = | 0 0 1  0 0 0 0 |                                                  |
|     | 1 0 0  0 0 0 0 |                                                  |
|     | 0 1 -1 1 0 0 0 |                                                  |
|     | 0 0 1  0 0 0 0 |                                                  |
|     | 0 0 0  0 1 0 0 |                                                  |
|     | 0 0 0  0 0 1 0 |                                                  |
|     | 0 0 0  0 0 0 1 |                                                  |
|                                                                         |
|              7       7                                                  |
|o2 : Matrix ZZ  <-- ZZ                                                   |
+-------------------------------------------------------------------------+

Ways to use padASM:
===================

  * "padASM(Matrix,ZZ)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:558:0.

isPartialASM -- whether a matrix is a partial alternating sign matrix
*********************************************************************

  * Usage:
        isPartialASM M
  * Inputs:
      * M, a matrix (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given an integer matrix, checks that the matrix is a partial alternating sign
matrix. A partial alternating sign matrix is a matrix with entries in
$\{-1,0,1\}$ such that:

- The nonzero entries in each row and column alternate in sign,

- The first nonzero entry of any row or column (if there is one) is $1$.

+-----------------------------------------------------------------------------+
|i1 : M = matrix{{0,0,1,0,0,0,0,0},{1,0,1,0,1,0,0,0},{0,0,0,1,-1,0,0,1},{0,0,1|
|                                                                             |
|o1 = | 0 0 1  0  0  0 0 0 |                                                  |
|     | 1 0 1  0  1  0 0 0 |                                                  |
|     | 0 0 0  1  -1 0 0 1 |                                                  |
|     | 0 0 1  -1 1  0 0 0 |                                                  |
|     | 0 0 0  0  0  0 1 0 |                                                  |
|     | 0 0 0  0  0  1 0 0 |                                                  |
|     | 0 1 -1 1  0  0 0 0 |                                                  |
|     | 0 0 1  0  0  0 0 0 |                                                  |
|                                                                             |
|              8       8                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|,-1,1,0,0,0},{0,0,0,0,0,0,1,0},{0,0,0,0,0,1,0,0},{0,1,-1,1,0,0,0,0},{0,0,1,0,|
|-----------------------------------------------------------------------------|
|0,0,0,0}}                                                                    |
+-----------------------------------------------------------------------------+
|i2 : isPartialASM M                                                          |
|                                                                             |
|o2 = false                                                                   |
+-----------------------------------------------------------------------------+
|i3 : N = matrix{{0,-1,0,1,1},{1,-1,1,-1,1},{0,1,1,0,-1},{1,1,-1,1,-1},{-1,1,0|
|                                                                             |
|o3 = | 0  -1 0  1  1  |                                                      |
|     | 1  -1 1  -1 1  |                                                      |
|     | 0  1  1  0  -1 |                                                      |
|     | 1  1  -1 1  -1 |                                                      |
|     | -1 1  0  0  1  |                                                      |
|                                                                             |
|              5       5                                                      |
|o3 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|,0,1}}                                                                       |
+-----------------------------------------------------------------------------+
|i4 : isPartialASM N                                                          |
|                                                                             |
|o4 = false                                                                   |
+-----------------------------------------------------------------------------+

Ways to use isPartialASM:
=========================

  * "isPartialASM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:584:0.

partialASMToASM -- extend a partial alternating sign matrix to an alternating sign matrix
*****************************************************************************************

  * Usage:
        partialASMToASM A
  * Inputs:
      * A, a matrix (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Given a partial alternating sign matrix, returns the unique smallest
alternating sign matrix with the same essential set and same rank conditions at
each element of the essential set.

+-----------------------------------------+
|i1 : A = matrix{{0,1,0},{1,-1,0},{0,0,0}}|
|                                         |
|o1 = | 0 1  0 |                          |
|     | 1 -1 0 |                          |
|     | 0 0  0 |                          |
|                                         |
|              3       3                  |
|o1 : Matrix ZZ  <-- ZZ                   |
+-----------------------------------------+
|i2 : partialASMToASM(A)                  |
|                                         |
|o2 = | 0 1  0 0 0 |                      |
|     | 1 -1 0 1 0 |                      |
|     | 0 0  0 0 1 |                      |
|     | 0 1  0 0 0 |                      |
|     | 0 0  1 0 0 |                      |
|                                         |
|              5       5                  |
|o2 : Matrix ZZ  <-- ZZ                   |
+-----------------------------------------+

Ways to use partialASMToASM:
============================

  * "partialASMToASM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:606:0.

rankTable -- compute a table of rank conditions that determines the corresponding ASM or matrix Schubert variety
****************************************************************************************************************

  * Usage:
        rankTable w
        rankTable A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Given an alternating sign matrix or a permutation in 1-line notation, outputs
the matrix of rank conditions associated to that alternating sign matrix or
permutation.

+----------------------------------------------------------------+
|i1 : rankTable({1,3,2})                                         |
|                                                                |
|o1 = | 1 1 1 |                                                  |
|     | 1 1 2 |                                                  |
|     | 1 2 3 |                                                  |
|                                                                |
|              3       3                                         |
|o1 : Matrix ZZ  <-- ZZ                                          |
+----------------------------------------------------------------+
|i2 : rankTable(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}})|
|                                                                |
|o2 = | 0 0 0 1 |                                                |
|     | 0 1 1 2 |                                                |
|     | 1 1 2 3 |                                                |
|     | 1 2 3 4 |                                                |
|                                                                |
|              4       4                                         |
|o2 : Matrix ZZ  <-- ZZ                                          |
+----------------------------------------------------------------+

Ways to use rankTable:
======================

  * "rankTable(List)"
  * "rankTable(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:671:0.

rotheDiagram -- find the Rothe diagram of a partial alternating sign matrix
***************************************************************************

  * Usage:
        rotheDiagram w
        rotheDiagram A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Given a permutation in 1-line notation or a partial alternating sign matrix
returns the Rothe diagram.

+-----------------------------------------------------+
|i1 : w = {2,5,4,1,3}                                 |
|                                                     |
|o1 = {2, 5, 4, 1, 3}                                 |
|                                                     |
|o1 : List                                            |
+-----------------------------------------------------+
|i2 : rotheDiagram w                                  |
|                                                     |
|o2 = {(1, 1), (2, 1), (2, 3), (2, 4), (3, 1), (3, 3)}|
|                                                     |
|o2 : List                                            |
+-----------------------------------------------------+
|i3 : A = matrix{{0,1,0},{1,-1,0},{0,0,0}}            |
|                                                     |
|o3 = | 0 1  0 |                                      |
|     | 1 -1 0 |                                      |
|     | 0 0  0 |                                      |
|                                                     |
|              3       3                              |
|o3 : Matrix ZZ  <-- ZZ                               |
+-----------------------------------------------------+
|i4 : rotheDiagram A                                  |
|                                                     |
|o4 = {(1, 1), (2, 2), (2, 3), (3, 2), (3, 3)}        |
|                                                     |
|o4 : List                                            |
+-----------------------------------------------------+

Ways to use rotheDiagram:
=========================

  * "rotheDiagram(List)"
  * "rotheDiagram(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:698:0.

augmentedRotheDiagram -- find the Rothe diagram and rank table for a partial ASM or permutation
***********************************************************************************************

  * Usage:
        augmentedRotheDiagram w
        augmentedRotheDiagram A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Given a permutation in 1-line notation or a partial alternating sign matrix
returns the Rothe diagram (as a list) with the rank conditions at each diagram
box.

+-----------------------------------------------------------------------------+
|i1 : w = {2,5,4,1,3}                                                         |
|                                                                             |
|o1 = {2, 5, 4, 1, 3}                                                         |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : augmentedRotheDiagram(w)                                                |
|                                                                             |
|o2 = {((1, 1), 0), ((2, 1), 0), ((2, 3), 1), ((2, 4), 1), ((3, 1), 0), ((3,  |
|     ------------------------------------------------------------------------|
|     3), 1)}                                                                 |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : A = matrix{{0,1,0},{1,-1,0},{0,0,0}}                                    |
|                                                                             |
|o3 = | 0 1  0 |                                                              |
|     | 1 -1 0 |                                                              |
|     | 0 0  0 |                                                              |
|                                                                             |
|              3       3                                                      |
|o3 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i4 : augmentedRotheDiagram(A)                                                |
|                                                                             |
|o4 = {((1, 1), 0), ((2, 2), 1), ((2, 3), 1), ((3, 2), 1), ((3, 3), 1)}       |
|                                                                             |
|o4 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use augmentedRotheDiagram:
==================================

  * "augmentedRotheDiagram(List)"
  * "augmentedRotheDiagram(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:723:0.

essentialSet -- compute the essential set in the Rothe Diagram for a partial ASM or a permutation.
**************************************************************************************************

  * Usage:
        essentialSet w
        essentialSet A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Given an alternating sign matrix or a permutation in 1-line notation, outputs
Fulton's essential set, i.e., the maximally southeast elements of the Rothe
diagram of that alternating sign matrix or permutation.

+-------------------------------------------------------------------+
|i1 : essentialSet({1,3,2})                                         |
|                                                                   |
|o1 = {(2, 2)}                                                      |
|                                                                   |
|o1 : List                                                          |
+-------------------------------------------------------------------+
|i2 : essentialSet(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}})|
|                                                                   |
|o2 = {(1, 3), (2, 1), (3, 2)}                                      |
|                                                                   |
|o2 : List                                                          |
+-------------------------------------------------------------------+

Ways to use essentialSet:
=========================

  * "essentialSet(List)"
  * "essentialSet(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:747:0.

augmentedEssentialSet -- find the essential set and rank conditions for a partial ASM or a permutation
******************************************************************************************************

  * Usage:
        augmentedEssentialSet w
        augmentedEssentialSet A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Given a permutation in 1-line notation or a partial alternating sign matrix,
returns the essential set together with the rank condition at each element of
the set.

+--------------------------------------------+
|i1 : w = {2,5,4,1,3}                        |
|                                            |
|o1 = {2, 5, 4, 1, 3}                        |
|                                            |
|o1 : List                                   |
+--------------------------------------------+
|i2 : augmentedEssentialSet w                |
|                                            |
|o2 = {((2, 4), 1), ((3, 1), 0), ((3, 3), 1)}|
|                                            |
|o2 : List                                   |
+--------------------------------------------+
|i3 : A = matrix{{0,1,0},{1,-1,0},{0,0,0}}   |
|                                            |
|o3 = | 0 1  0 |                             |
|     | 1 -1 0 |                             |
|     | 0 0  0 |                             |
|                                            |
|              3       3                     |
|o3 : Matrix ZZ  <-- ZZ                      |
+--------------------------------------------+
|i4 : augmentedEssentialSet A                |
|                                            |
|o4 = {((1, 1), 0), ((3, 3), 1)}             |
|                                            |
|o4 : List                                   |
+--------------------------------------------+

Ways to use augmentedEssentialSet:
==================================

  * "augmentedEssentialSet(List)"
  * "augmentedEssentialSet(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:772:0.

schubertDeterminantalIdeal -- compute an alternating sign matrix ideal (for example, a Schubert determinantal ideal)
********************************************************************************************************************

  * Usage:
        schubertDeterminantalIdeal w
        schubertDeterminantalIdeal A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => ..., default value QQ
      * Variable => ..., default value z
  * Outputs:
      * an ideal (Macaulay2Doc),

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

Given a permutation in 1-line notation or, more generally, a partial
alternating sign matrix, outputs the associated alternating sign matrix ideal
(which is called a Schubert determinantal ideal in the case of a permutation).
(The convention throughout this package is that the permutation matrix of a
permutation $w$ has 1's in positions $(i,w(i))$.)

This function computes over the coefficient field of rational numbers unless an
alternative is specified.

+-----------------------------------------------------------------------------+
|i1 : schubertDeterminantalIdeal({1,3,2},CoefficientRing=>ZZ/3001)            |
|                                                                             |
|o1 = ideal(- z   z    + z   z   )                                            |
|              1,2 2,1    1,1 2,2                                             |
|                                                                             |
|               ZZ                                                            |
|o1 : Ideal of ----[z   ..z   ]                                               |
|              3001  1,1   3,3                                                |
+-----------------------------------------------------------------------------+
|i2 : schubertDeterminantalIdeal(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,|
|                                                                             |
|o2 = ideal (y   , y   , y   , y   , - y   y    + y   y   , - y   y    +      |
|             1,1   1,2   1,3   2,1     1,2 2,1    1,1 2,2     1,2 3,1        |
|     ------------------------------------------------------------------------|
|     y   y   , - y   y    + y   y   )                                        |
|      1,1 3,2     2,2 3,1    2,1 3,2                                         |
|                                                                             |
|o2 : Ideal of QQ[y   ..y   ]                                                 |
|                  1,1   4,4                                                  |
|-----------------------------------------------------------------------------|
|0}}, Variable => y)                                                          |
+-----------------------------------------------------------------------------+

Ways to use schubertDeterminantalIdeal:
=======================================

  * "schubertDeterminantalIdeal(List)"
  * "schubertDeterminantalIdeal(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:801:0.

fultonGens -- compute the Fulton generators of an ASM ideal (for example, a Schubert determinantal ideal)
*********************************************************************************************************

  * Usage:
        fultonGens w
        fultongens A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => a ring (Macaulay2Doc), default value QQ
      * Variable => a symbol (Macaulay2Doc), default value z
  * Outputs:
      * a list (Macaulay2Doc),

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

Given a partial alternating sign matrix or permutation in 1-line notation,
returns the list of Fulton generators for the corresponding Schubert
determinantal ideal or, more generally, ASM ideal.

+------------------------------------------------------------------------+
|i1 : netList fultonGens({2,5,4,1,3}, CoefficientRing => ZZ/101)         |
|                                                                        |
|     +---------------------+                                            |
|o1 = |- z   z    + z   z   |                                            |
|     |   1,2 2,1    1,1 2,2|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,3 2,1    1,1 2,3|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,3 2,2    1,2 2,3|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,4 2,1    1,1 2,4|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,4 2,2    1,2 2,4|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,4 2,3    1,3 2,4|                                            |
|     +---------------------+                                            |
|     |z                    |                                            |
|     | 1,1                 |                                            |
|     +---------------------+                                            |
|     |z                    |                                            |
|     | 2,1                 |                                            |
|     +---------------------+                                            |
|     |z                    |                                            |
|     | 3,1                 |                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,2 3,1    1,1 3,2|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   2,2 3,1    2,1 3,2|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,3 3,1    1,1 3,3|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   2,3 3,1    2,1 3,3|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   1,3 3,2    1,2 3,3|                                            |
|     +---------------------+                                            |
|     |- z   z    + z   z   |                                            |
|     |   2,3 3,2    2,2 3,3|                                            |
|     +---------------------+                                            |
+------------------------------------------------------------------------+
|i2 : netList fultonGens(matrix{{0,1,0},{1,-1,1},{0,1,0}}, Variable => a)|
|                                                                        |
|     +---------------------+                                            |
|o2 = |a                    |                                            |
|     | 1,1                 |                                            |
|     +---------------------+                                            |
|     |- a   a    + a   a   |                                            |
|     |   1,2 2,1    1,1 2,2|                                            |
|     +---------------------+                                            |
+------------------------------------------------------------------------+

Ways to use fultonGens:
=======================

  * "fultonGens(List)"
  * "fultonGens(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:829:0.

entrywiseMinRankTable -- compute the entrywise minimum rank table of a list of ASMs
***********************************************************************************

  * Usage:
        entrywiseMinRankTable(L)
  * Inputs:
      * L, a list (Macaulay2Doc), of ASMs of equal size
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Computes the rank tables of a list of ASMs, then returns the entrywise minimum.

+----------------------------------------------+
|i1 : L = {{4,3,1,2},{2,4,3,1}} / permToMatrix;|
+----------------------------------------------+
|i2 : entrywiseMinRankTable L                  |
|                                              |
|o2 = | 0 0 0 1 |                              |
|     | 0 0 1 2 |                              |
|     | 0 1 2 3 |                              |
|     | 1 2 3 4 |                              |
|                                              |
|              4       4                       |
|o2 : Matrix ZZ  <-- ZZ                        |
+----------------------------------------------+

Ways to use entrywiseMinRankTable:
==================================

  * "entrywiseMinRankTable(List)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:963:0.

entrywiseMaxRankTable -- compute the entrywise maximum rank table of a list of ASMs
***********************************************************************************

  * Usage:
        entrywiseMaxRankTable L
  * Inputs:
      * L, a list (Macaulay2Doc), of ASMs of equal size
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Computes the rank tables of a list of ASMs, then returns the entrywise maximum.

+----------------------------------------------+
|i1 : L = {{4,3,1,2},{2,4,3,1}} / permToMatrix;|
+----------------------------------------------+
|i2 : entrywiseMaxRankTable L                  |
|                                              |
|o2 = | 0 1 1 1 |                              |
|     | 0 1 1 2 |                              |
|     | 1 1 2 3 |                              |
|     | 1 2 3 4 |                              |
|                                              |
|              4       4                       |
|o2 : Matrix ZZ  <-- ZZ                        |
+----------------------------------------------+

Ways to use entrywiseMaxRankTable:
==================================

  * "entrywiseMaxRankTable(List)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:984:0.

schubertDecompose -- finds the decomposition of an ASM ideal into Schubert determinantal ideals
***********************************************************************************************

  * Usage:
        schubertDecompose I
  * Inputs:
      * I, an ideal (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Given an ASM ideal $I_A$, it can be decomposed into Schubert determinantal
ideals as $I_A = I_{w_1} \cap ... \cap I_{w_k}$, where the $w_i$ are
permutations. As output, each element in the list is the permutation associated
to a prime component in the Schubert decomposition of the antidiagonal initial
ideal of $I$.

+-----------------------------------------------------------------------------+
|i1 : A = matrix{{0,0,1,0,0},{1,0,0,0,0},{0,1,-1,1,0},{0,0,0,0,1},{0,0,1,0,0  |
|                                                                             |
|              5       5                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|}};                                                                          |
+-----------------------------------------------------------------------------+
|i2 : J = schubertDeterminantalIdeal A;                                       |
|                                                                             |
|o2 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   5,5                                                  |
+-----------------------------------------------------------------------------+
|i3 : netList schubertDecompose J                                             |
|                                                                             |
|     +-+-+-+-+-+                                                             |
|o3 = |4|1|2|5|3|                                                             |
|     +-+-+-+-+-+                                                             |
|     |3|1|4|5|2|                                                             |
|     +-+-+-+-+-+                                                             |
+-----------------------------------------------------------------------------+

If the ASM ideal for an ASM $A$ has not het been computed, one may also give
the ASM $A$ as input.

+----------------------------------------------------------+
|i4 : A = matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}};|
|                                                          |
|              4       4                                   |
|o4 : Matrix ZZ  <-- ZZ                                    |
+----------------------------------------------------------+
|i5 : netList schubertDecompose A                          |
|                                                          |
|     +-+-+-+-+                                            |
|o5 = |4|3|1|2|                                            |
|     +-+-+-+-+                                            |
|     |4|2|3|1|                                            |
|     +-+-+-+-+                                            |
+----------------------------------------------------------+

Ways to use schubertDecompose:
==============================

  * "schubertDecompose(Ideal)"
  * "schubertDecompose(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1014:0.

permSetOfASM -- finds the permutation set of an alternating sign matrix
***********************************************************************

  * Usage:
        permSetOfASM A
  * Inputs:
      * A, a matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Given an alternating sign matrix $A$, this routine computes Perm$(A) = \{w \in
S_n \mid A \leq w$, and $v \in S_n$ with $A \leq v \leq w$ implies $ v=w\}$
(where $\leq$ is in (strong) Bruhat order).  This computation is performed by
taking the antidiagonal initial ideal determined by $A$ and extracting the
permutations indexing its components via schubertDecompose.

+---------------------------------------------------------+
|i1 : A = matrix{{0,1,0,0},{0,0,1,0},{1,-1,0,1},{0,1,0,0}}|
|                                                         |
|o1 = | 0 1  0 0 |                                        |
|     | 0 0  1 0 |                                        |
|     | 1 -1 0 1 |                                        |
|     | 0 1  0 0 |                                        |
|                                                         |
|              4       4                                  |
|o1 : Matrix ZZ  <-- ZZ                                   |
+---------------------------------------------------------+
|i2 : permSetOfASM A                                      |
|                                                         |
|o2 = {{3, 4, 1, 2}, {2, 3, 4, 1}}                        |
|                                                         |
|o2 : List                                                |
+---------------------------------------------------------+

Ways to use permSetOfASM:
=========================

  * "permSetOfASM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1034:0.

isASMIdeal -- whether an ideal is an ASM ideal
**********************************************

  * Usage:
        isASMIdeal I
  * Inputs:
      * I, an ideal (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Every ASM ideal can be written as an intersection of Schubert determinantal
ideals.  Given an ideal $I$, this function first uses schubertDecompose to find
the set of permutations that must index the minimal primes of $I$ if indeed $I$
is an ASM ideal. Then $I$ is an ASM ideal if and only if $I=I_A$ for the ASM
$A$ whose rank table is the determined by taking entrywise maxima (using
entrywiseMaxRankTable) in the rank tables of the permutations found by
schubertDecompose.

When this function returns true, it also stores the ASM $A$ so that $I=I_A$.
The matrix $A$ can then be accessed using getASM.

+----------------------------------------------------------+
|i1 : I1=schubertDeterminantalIdeal {3,4,1,2};             |
|                                                          |
|o1 : Ideal of QQ[z   ..z   ]                              |
|                  1,1   4,4                               |
+----------------------------------------------------------+
|i2 : I2=sub(schubertDeterminantalIdeal {3,2,4,1},ring I1);|
|                                                          |
|o2 : Ideal of QQ[z   ..z   ]                              |
|                  1,1   4,4                               |
+----------------------------------------------------------+
|i3 : I = intersect(I1,I2);                                |
|                                                          |
|o3 : Ideal of QQ[z   ..z   ]                              |
|                  1,1   4,4                               |
+----------------------------------------------------------+
|i4 : isASMIdeal I                                         |
|                                                          |
|o4 = true                                                 |
+----------------------------------------------------------+

Ways to use isASMIdeal:
=======================

  * "isASMIdeal(Ideal)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1091:0.

isASM -- whether a matrix is an ASM
***********************************

  * Usage:
        isASM M
  * Inputs:
      * M, a matrix (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Returns true if the given matrix is an ASM, and false otherwise.

+------------------------------------------------------------------------+
|i1 : M = matrix{{0, 0, 1, 0}, {1, 0, 0, 0}, {0, 1, -1, 1}, {0, 0, 1, 0}}|
|                                                                        |
|o1 = | 0 0 1  0 |                                                       |
|     | 1 0 0  0 |                                                       |
|     | 0 1 -1 1 |                                                       |
|     | 0 0 1  0 |                                                       |
|                                                                        |
|              4       4                                                 |
|o1 : Matrix ZZ  <-- ZZ                                                  |
+------------------------------------------------------------------------+
|i2 : isASM M                                                            |
|                                                                        |
|o2 = true                                                               |
+------------------------------------------------------------------------+

Ways to use isASM:
==================

  * "isASM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1111:0.

isASMUnion -- whether the union of matrix Schubert varieties is an ASM variety
******************************************************************************

  * Usage:
        isASMUnion L
  * Inputs:
      * L, a list (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given a list of permutations in 1-line notation, check whether the union of
their matrix Schubert varieties is an ASM variety. This function uses
entrywiseMaxRankTable to construct the rank table that is the entrywise maximum
of the rank tables of the input permutations. It then constructs an ASM $A$
from that rank table and uses permSetOfASM to check if the permutation set of
$A$ is equal to the input list of permutations.

If the union of the matrix Schubert varieties of the input list of permutations
is an ASM variety, it must be the ASM variety considered by this algorithm.

+-------------------------------------------------------+
|i1 : isASMUnion {{2,1,3},{1,3,2}} -- false             |
|                                                       |
|o1 = false                                             |
+-------------------------------------------------------+
|i2 : isASMUnion {{4,1,3,2},{3,4,1,2},{2,4,3,1}} -- true|
|                                                       |
|o2 = true                                              |
+-------------------------------------------------------+

Ways to use isASMUnion:
=======================

  * "isASMUnion(List)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1133:0.

getASM -- get the ASM of an ideal (if it exists)
************************************************

  * Usage:
        getASM I
  * Inputs:
      * I, an ideal (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Given an ideal $I$, gets the ASM $A$ so that $I=I_A$, if such an ASM $A$
exists. If the ASM $A$ has already been computed and stored in the cache of I
using isASMIdeal, then this function produces $A$ immediately. Otherwise, an
attempt will be made to compute the ASM. Once the ASM is computed, it is stored
in the cache of $I$.

+-----------------------------------------------------------------------------+
|i1 : A = matrix{{0,0,1,0,0},{1,0,0,0,0},{0,1,-1,1,0},{0,0,0,0,1},{0,0,1,0,0  |
|                                                                             |
|              5       5                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|}};                                                                          |
+-----------------------------------------------------------------------------+
|i2 : I = schubertDeterminantalIdeal A;                                       |
|                                                                             |
|o2 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   5,5                                                  |
+-----------------------------------------------------------------------------+
|i3 : getASM I                                                                |
|                                                                             |
|o3 = | 0 0 1  0 0 |                                                          |
|     | 1 0 0  0 0 |                                                          |
|     | 0 1 -1 1 0 |                                                          |
|     | 0 0 0  0 1 |                                                          |
|     | 0 0 1  0 0 |                                                          |
|                                                                             |
|              5       5                                                      |
|o3 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+

Ways to use getASM:
===================

  * "getASM(Ideal)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1155:0.

isMinRankTable -- whether a matrix is the canonical rank table of some partial ASM
**********************************************************************************

  * Usage:
        isMinRankTable T
  * Inputs:
      * T, a matrix (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Checks whether T is a the canonical rank table of some partial ASM.  These are
the rank tables that are constructed in Section 1 of [Wei] and from which the
partial ASM can be determined using equation (21) of the same paper.

  * [Wei]: Weigandt, Prism tableaux for alternating sign matrix varieties (see
    arXiv:1708.07236 (see https://arxiv.org/abs/1708.07236 )).

+-----------------------------------------------------------------+
|i1 : T = matrix {{0,1,1},{1,1,2},{1,2,3}}                        |
|                                                                 |
|o1 = | 0 1 1 |                                                   |
|     | 1 1 2 |                                                   |
|     | 1 2 3 |                                                   |
|                                                                 |
|              3       3                                          |
|o1 : Matrix ZZ  <-- ZZ                                           |
+-----------------------------------------------------------------+
|i2 : isMinRankTable T                                            |
|                                                                 |
|o2 = true                                                        |
+-----------------------------------------------------------------+
|i3 : U = matrix {{1,1,1,1,1},{1,2,2,2,2},{1,2,2,2,3},{1,2,2,3,3}}|
|                                                                 |
|o3 = | 1 1 1 1 1 |                                               |
|     | 1 2 2 2 2 |                                               |
|     | 1 2 2 2 3 |                                               |
|     | 1 2 2 3 3 |                                               |
|                                                                 |
|              4       5                                          |
|o3 : Matrix ZZ  <-- ZZ                                           |
+-----------------------------------------------------------------+
|i4 : isMinRankTable U                                            |
|                                                                 |
|o4 = true                                                        |
+-----------------------------------------------------------------+

Ways to use isMinRankTable:
===========================

  * "isMinRankTable(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1181:0.

rankTableToASM -- to find the a partial ASM associated to a given rank table
****************************************************************************

  * Usage:
        rankTableToASM T
  * Inputs:
      * T, a matrix (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Given a matrix that is a valid minimal rank table, returns the unique partial
ASM of the same size associated to it. This algorithm follows

  * [Wei, Equation (21)]: Weigandt, Prism tableaux for alternating sign matrix
    varieties (see arXiv:1708.07236 (see https://arxiv.org/abs/1708.07236 )).

+-----------------------------------------------------------------------------+
|i1 : T = matrix {{0,0,1,1},{0,1,1,2},{1,2,2,3},{1,2,3,4}}                    |
|                                                                             |
|o1 = | 0 0 1 1 |                                                             |
|     | 0 1 1 2 |                                                             |
|     | 1 2 2 3 |                                                             |
|     | 1 2 3 4 |                                                             |
|                                                                             |
|              4       4                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i2 : rankTableToASM T                                                        |
|                                                                             |
|o2 = | 0 0 1  0 |                                                            |
|     | 0 1 -1 1 |                                                            |
|     | 1 0 0  0 |                                                            |
|     | 0 0 1  0 |                                                            |
|                                                                             |
|              4       4                                                      |
|o2 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i3 : U = matrix {{0,0,1,1,1},{1,1,1,2,2},{1,2,2,3,3},{1,2,3,4,4},{1,2,3,4,5}}|
|                                                                             |
|o3 = | 0 0 1 1 1 |                                                           |
|     | 1 1 1 2 2 |                                                           |
|     | 1 2 2 3 3 |                                                           |
|     | 1 2 3 4 4 |                                                           |
|     | 1 2 3 4 5 |                                                           |
|                                                                             |
|              5       5                                                      |
|o3 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i4 : rankTableToASM U                                                        |
|                                                                             |
|o4 = | 0 0 1  0 0 |                                                          |
|     | 1 0 -1 1 0 |                                                          |
|     | 0 1 0  0 0 |                                                          |
|     | 0 0 1  0 0 |                                                          |
|     | 0 0 0  0 1 |                                                          |
|                                                                             |
|              5       5                                                      |
|o4 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+

Ways to use rankTableToASM:
===========================

  * "rankTableToASM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1206:0.

rankTableFromMatrix -- returns the minimal rank table from an arbitrary integer matrix
**************************************************************************************

  * Usage:
        rankTableFromMatrix M
  * Inputs:
      * M, a matrix (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Given an integer matrix (viewed as rank conditions to be imposed on a generic
matrix), returns the unique integer matrix that both defines the same ideal of
minors and also is the minimal rank table of some ASM.  See Section 1 and
Equation (21) of

  * [Wei]: Weigandt, Prism tableaux for alternating sign matrix varieties (see
    arXiv:1708.07236 (see https://arxiv.org/abs/1708.07236 )).

+-----------------------------------------------+
|i1 : M = matrix {{1,0,0},{0,23,24},{23,24,25}};|
|                                               |
|              3       3                        |
|o1 : Matrix ZZ  <-- ZZ                         |
+-----------------------------------------------+
|i2 : rankTableFromMatrix M                     |
|                                               |
|o2 = | 0 0 0 |                                 |
|     | 0 1 1 |                                 |
|     | 1 2 2 |                                 |
|                                               |
|              3       3                        |
|o2 : Matrix ZZ  <-- ZZ                         |
+-----------------------------------------------+
|i3 : N = matrix{{0,3,4},{1,1,1}};              |
|                                               |
|              2       3                        |
|o3 : Matrix ZZ  <-- ZZ                         |
+-----------------------------------------------+
|i4 : rankTableFromMatrix N                     |
|                                               |
|o4 = | 0 1 1 |                                 |
|     | 1 1 1 |                                 |
|                                               |
|              2       3                        |
|o4 : Matrix ZZ  <-- ZZ                         |
+-----------------------------------------------+

Ways to use rankTableFromMatrix:
================================

  * "rankTableFromMatrix(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1231:0.

schubertIntersect -- compute the intersection of ASM ideals
***********************************************************

  * Usage:
        schubertIntersect L
  * Inputs:
      * L, a list (Macaulay2Doc), of ASMs or permutations in 1-line
        notation
  * Outputs:
      * an ideal (Macaulay2Doc),

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

Given a list of ASMs or permutations in 1-line notation, compute the
intersection of the corresponding Schubert determinantal ideals.

+-----------------------------------------------------------------------------+
|i1 : schubertIntersect {{3,2,1,4}, {2,1,4,3}}                                |
|                                                                             |
|                                                             2               |
|o1 = ideal (z   , z   z   z   z    - z   z   z   z    - z   z   z    +       |
|             1,1   1,3 2,1 2,2 3,1    1,2 2,1 2,3 3,1    1,3 2,1 3,2         |
|     ------------------------------------------------------------------------|
|          2                            2                                     |
|     z   z   z   , z   z   z   z    - z   z   z    - z   z   z   z    +      |
|      1,2 2,1 3,3   1,2 1,3 2,2 3,1    1,2 2,3 3,1    1,2 1,3 2,1 3,2        |
|     ------------------------------------------------------------------------|
|      2                                                                      |
|     z   z   z   )                                                           |
|      1,2 2,1 3,3                                                            |
|                                                                             |
|o1 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   4,4                                                  |
+-----------------------------------------------------------------------------+
|i2 : schubertIntersect {matrix {{0,1,0},{1,-1,1},{0,1,0}}, {3,2,1}}          |
|                                                                             |
|o2 = ideal (z   , z   z   )                                                  |
|             1,1   1,2 2,1                                                   |
|                                                                             |
|o2 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   3,3                                                  |
+-----------------------------------------------------------------------------+

Ways to use schubertIntersect:
==============================

  * "schubertIntersect(List)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1252:0.

schubertAdd -- compute the sum of ASM ideals
********************************************

  * Usage:
        schubertAdd L
  * Inputs:
      * L, a list (Macaulay2Doc), of ASMs or permutations in 1-line
        notation
  * Outputs:
      * an ideal (Macaulay2Doc),

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

Given a list of ASMs or permutations in 1-line notation, compute the sum of the
corresponding Schubert determinantal (or ASM) ideals

An arbitrary (finite) sum of partial ASM ideals is again a partial ASM ideal.
See

  * [Wei, Section 3.5]: Weigandt, Prism tableaux for alternating sign matrix
    varieties (see arXiv:1708.07236 (see https://arxiv.org/abs/1708.07236 )).
  * [KW, Lemma 2.6]: Klein and Weigandt, Bumpless pipe dreams encode Gröbner
    geometry of Schubert polynomials (see arXiv:2108.08370 (see
    https://arxiv.org/abs/2108.08370 )).

The canonical rank table of the sum will be entrywise minimum of the rank
tables of the summands.  This function computes the sum of ASM ideals by
computing the individual rank tables, using entrywiseMinRankTable to find the
entrywise minimum, and then constructing the partial ASM from that rank table.

+-----------------------------------------------------------------------------+
|i1 : schubertAdd {{3,2,1,4}, {2,1,4,3}}                                      |
|                                                                             |
|o1 = ideal (z   , z   , z   , - z   z   z    + z   z   z    + z   z   z    - |
|             1,1   1,2   2,1     1,3 2,2 3,1    1,2 2,3 3,1    1,3 2,1 3,2   |
|     ------------------------------------------------------------------------|
|     z   z   z    - z   z   z    + z   z   z   )                             |
|      1,1 2,3 3,2    1,2 2,1 3,3    1,1 2,2 3,3                              |
|                                                                             |
|o1 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   4,4                                                  |
+-----------------------------------------------------------------------------+
|i2 : schubertAdd {matrix {{0,1,0},{1,-1,1},{0,1,0}}, {3,2,1}}                |
|                                                                             |
|o2 = ideal (z   , z   , z   )                                                |
|             1,1   1,2   2,1                                                 |
|                                                                             |
|o2 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   3,3                                                  |
+-----------------------------------------------------------------------------+

Ways to use schubertAdd:
========================

  * "schubertAdd(List)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1282:0.

ASMToMonotoneTriangle -- converts an ASM to a monotone triangle
***************************************************************

  * Usage:
        ASMToMonotoneTriangle A
  * Inputs:
      * A, a matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Converts an alternating sign matrix (ASM) to a monotone triangle according to
the bijection described in [HR]. More precisely, suppose $A$ is an ASM. The
unique monotone triangle $T=(T_0,\ldots,T_n)$ corresponding to $A$ has the
property that $T_m$ is the (ordered) set of column indices in which
$\sum_{i=1}^m A_m $ has an entry of $1$, where $A_m$ denotes the $m$th row of
$A$. See [HR] for more details.

  * [HR]: Z. Hamaker and V. Reiner, "Weak Order and Descents for Monotone
    Triangles" (see arXiv:1809.10571 (see https://arxiv.org/abs/1809.10571 )).
+-----------------------------------------------------------------------------+
|i1 : A = matrix{{0,1,0,0,0,0},{0,0,0,1,0,0},{1,-1,1,-1,0,1},{0,0,0,1,0,0},{0,|
|                                                                             |
|o1 = | 0 1  0 0  0 0 |                                                       |
|     | 0 0  0 1  0 0 |                                                       |
|     | 1 -1 1 -1 0 1 |                                                       |
|     | 0 0  0 1  0 0 |                                                       |
|     | 0 1  0 -1 1 0 |                                                       |
|     | 0 0  0 1  0 0 |                                                       |
|                                                                             |
|              6       6                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|1,0,-1,1,0},{0,0,0,1,0,0}}                                                   |
+-----------------------------------------------------------------------------+
|i2 : netList ASMToMonotoneTriangle A                                         |
|                                                                             |
|     +-+-+-+-+-+-+                                                           |
|o2 = | | | | | | |                                                           |
|     +-+-+-+-+-+-+                                                           |
|     |2| | | | | |                                                           |
|     +-+-+-+-+-+-+                                                           |
|     |2|4| | | | |                                                           |
|     +-+-+-+-+-+-+                                                           |
|     |1|3|6| | | |                                                           |
|     +-+-+-+-+-+-+                                                           |
|     |1|3|4|6| | |                                                           |
|     +-+-+-+-+-+-+                                                           |
|     |1|2|3|5|6| |                                                           |
|     +-+-+-+-+-+-+                                                           |
|     |1|2|3|4|5|6|                                                           |
|     +-+-+-+-+-+-+                                                           |
+-----------------------------------------------------------------------------+

Ways to use ASMToMonotoneTriangle:
==================================

  * "ASMToMonotoneTriangle(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:612:0.

monotoneTriangleToASM -- converts a monotone triangle to an ASM
***************************************************************

  * Usage:
        monotoneTriangleToASM M
  * Inputs:
      * M, a list (Macaulay2Doc),
  * Outputs:
      * a matrix (Macaulay2Doc),

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

Converts an monotone triangle to an alternating sign matrix (ASM) according to
the bijection described in [HR]. More precisely, suppose $T=(T_0,\ldots,T_n)$
is a monotone triangle. The unique ASM $A$ corresponding to $T$ is given by
$A_m = \mathbb{1}_{T_m} - \mathbb{1}_{T_{m-1}}$, where $A_m$ denotes the $m$th
row of $A$ and $\mathbb{1}_{T_i}$ is the is a vector of length $n$ whose
entries are $1$ in the positions whose indices appear in $T_i$ and $0$
otherwise. See [HR] for more details.

This function does not check that what you've given it is actually a monotone
triangle before attempting to convert to an ASM.

  * [HR]: Z. Hamaker and V. Reiner, "Weak Order and Descents for Monotone
    Triangles" (see arXiv:1809.10571 (see https://arxiv.org/abs/1809.10571 )).
+-----------------------------------------------------------------------------+
|i1 : M = {{}, {2}, {2, 4}, {1, 3, 6}, {1, 3, 4, 6}, {1, 2, 3, 5, 6}, {1, 2, 3|
|                                                                             |
|o1 = {{}, {2}, {2, 4}, {1, 3, 6}, {1, 3, 4, 6}, {1, 2, 3, 5, 6}, {1, 2, 3, 4,|
|     ------------------------------------------------------------------------|
|     5, 6}}                                                                  |
|                                                                             |
|o1 : List                                                                    |
|-----------------------------------------------------------------------------|
|, 4, 5, 6}}                                                                  |
+-----------------------------------------------------------------------------+
|i2 : monotoneTriangleToASM M                                                 |
|                                                                             |
|o2 = | 0 1  0 0  0 0 |                                                       |
|     | 0 0  0 1  0 0 |                                                       |
|     | 1 -1 1 -1 0 1 |                                                       |
|     | 0 0  0 1  0 0 |                                                       |
|     | 0 1  0 -1 1 0 |                                                       |
|     | 0 0  0 1  0 0 |                                                       |
|                                                                             |
|              6       6                                                      |
|o2 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+

Ways to use monotoneTriangleToASM:
==================================

  * "monotoneTriangleToASM(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:640:0.

ASMFullList -- lists all ASMs of a fixed size
*********************************************

  * Usage:
        ASMFullList n
  * Inputs:
      * n, an integer (Macaulay2Doc),

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

For $1 \leq n \leq 7$, outputs the full list of $n \times n$ alternating sign
matrices, including permutation matrices.

+-----------------------------------------------------------------------------+
|i1 : ASMFullList(3)                                                          |
|                                                                             |
|o1 = {| 1 0 0 |, | 0 1 0 |, | 1 0 0 |, | 0 1  0 |, | 0 0 1 |, | 0 1 0 |, | 0 |
|      | 0 1 0 |  | 1 0 0 |  | 0 0 1 |  | 1 -1 1 |  | 1 0 0 |  | 0 0 1 |  | 0 |
|      | 0 0 1 |  | 0 0 1 |  | 0 1 0 |  | 0 1  0 |  | 0 1 0 |  | 1 0 0 |  | 1 |
|     ------------------------------------------------------------------------|
|     0 1 |}                                                                  |
|     1 0 |                                                                   |
|     0 0 |                                                                   |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use ASMFullList:
========================

  * "ASMFullList(ZZ)"

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

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

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

The source of this document is in MatrixSchubert/ASM_ListsDOC.m2:18:0.

ASMRandomList -- lists random ASMs of a fixed size
**************************************************

  * Usage:
        ASMRandomList(n,m)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * m, an integer (Macaulay2Doc),

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

For $1 \leq n \leq 7$, this function lists $m$ random $n\times n$ alternating
sign matrices.

+---------------------------------------------+
|i1 : ASMRandomList(4,3)                      |
|                                             |
|o1 = {| 0 1  0 0 |, | 0 1 0 0 |, | 1 0 0 0 |}|
|      | 0 0  1 0 |  | 1 0 0 0 |  | 0 1 0 0 | |
|      | 1 -1 0 1 |  | 0 0 1 0 |  | 0 0 0 1 | |
|      | 0 1  0 0 |  | 0 0 0 1 |  | 0 0 1 0 | |
|                                             |
|o1 : List                                    |
+---------------------------------------------+

Ways to use ASMRandomList:
==========================

  * "ASMRandomList(ZZ,ZZ)"

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

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

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

The source of this document is in MatrixSchubert/ASM_ListsDOC.m2:36:0.

cohenMacaulayASMsList -- lists all Cohen-Macaulay ASMs of a fixed size which are not permutation matrices
*********************************************************************************************************

  * Usage:
        cohenMacaulayASMsList n
  * Inputs:
      * n, an integer (Macaulay2Doc),

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

For $1 \leq n \leq 6$, this function lists all $n\times n$ alternating sign
matrices $A$ which are not permutation matrices such that the corresponding ASM
variety is Cohen-Macaulay. By a theorem of Fulton [Ful92], permutation matrices
always have Cohen-Macaulay Schubert determinantal ideals.

  * [Ful92] William Fulton, Flags, Schubert polynomials, degeneracy loci, and
    determinantal formulas (see
    https://sites.math.washington.edu/~billey/classes/schubert.library/fulton.
    essential.set.pdf ) , Duke Math J. 65 (1992): 381-420.
+-----------------------------------------------------------------------------+
|i1 : cohenMacaulayASMsList(4)                                                |
|                                                                             |
|o1 = {| 0 1  0 0 |, | 1 0 0  0 |, | 0 1  0  0 |, | 0 0 1  0 |, | 0 1 0  0 |, |
|      | 1 -1 1 0 |  | 0 0 1  0 |  | 1 -1 1  0 |  | 1 0 0  0 |  | 0 0 1  0 |  |
|      | 0 1  0 0 |  | 0 1 -1 1 |  | 0 1  -1 1 |  | 0 1 -1 1 |  | 1 0 -1 1 |  |
|      | 0 0  0 1 |  | 0 0 1  0 |  | 0 0  1  0 |  | 0 0 1  0 |  | 0 0 1  0 |  |
|     ------------------------------------------------------------------------|
|     | 0 0 1  0 |, | 0 1  0 0 |, | 0 0 1  0 |, | 0 1  0 0 |, | 0 0  1 0 |, | |
|     | 0 1 0  0 |  | 1 -1 0 1 |  | 0 1 -1 1 |  | 1 -1 1 0 |  | 0 1  0 0 |  | |
|     | 1 0 -1 1 |  | 0 1  0 0 |  | 1 0 0  0 |  | 0 0  0 1 |  | 1 -1 0 1 |  | |
|     | 0 0 1  0 |  | 0 0  1 0 |  | 0 0 1  0 |  | 0 1  0 0 |  | 0 1  0 0 |  | |
|     ------------------------------------------------------------------------|
|     0 1  0 0 |, | 0 0 1  0 |, | 0 1  0 0 |, | 0 0  0 1 |, | 0 0 1  0 |}     |
|     1 -1 0 1 |  | 1 0 -1 1 |  | 0 0  0 1 |  | 0 1  0 0 |  | 0 1 -1 1 |      |
|     0 0  1 0 |  | 0 0 1  0 |  | 1 -1 1 0 |  | 1 -1 1 0 |  | 0 0 1  0 |      |
|     0 1  0 0 |  | 0 1 0  0 |  | 0 1  0 0 |  | 0 1  0 0 |  | 1 0 0  0 |      |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use cohenMacaulayASMsList:
==================================

  * "cohenMacaulayASMsList(ZZ)"

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

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

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

The source of this document is in MatrixSchubert/ASM_ListsDOC.m2:62:0.

nonCohenMacaulayASMsList -- lists all non-Cohen-Macaulay ASMs of a fixed size
*****************************************************************************

  * Usage:
        nonCohenMacaulayASMsList n
  * Inputs:
      * n, an integer (Macaulay2Doc),

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

For $1 \leq n \leq 6$, this function lists all ASMs of size $n$ such that the
corresponding ASM variety is not Cohen-Macaulay.

+--------------------------------+
|i1 : nonCohenMacaulayASMsList(3)|
|                                |
|o1 = {}                         |
|                                |
|o1 : List                       |
+--------------------------------+

Ways to use nonCohenMacaulayASMsList:
=====================================

  * "nonCohenMacaulayASMsList(ZZ)"

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

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

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

The source of this document is in MatrixSchubert/ASM_ListsDOC.m2:80:0.

isIntersectionOfSchubertDeterminantalIdeals -- whether an ideal is the intersection of Schubert determinantal ideals
********************************************************************************************************************

  * Usage:
        isIntersectionOfSchubertDeterminantalIdeals I
  * Inputs:
      * I, an ideal (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Checks if the input ideal $I$ can be written as $I = I_{w_1} \cap ... \cap
I_{w_k}$, where each $I_{w_i}$ is a Schubert determinantal ideal.

This function computes the antidiagonal initial ideal of $I$ (using the default
term order in Macaulay2, which is antidiagonal), finds the primes in the
decomposition of $I$, reads a permutation from each such prime, and checks if
$I$ is the intersection of the Schubert determinantal ideals of those
permutations.

The following theorems combine to guarantee that, if $I$ can be written as the
intersection of Schubert determinantal ideals, it is exactly the intersection
of the Schubert determinantal ideals found by the algorithm described above.

  * [KM05, Theorem B]: Knutson and Miller, Gröbner geometry of Schubert
    polynomials (see arXiv:0110058 (see https://arxiv.org/abs/0110058 )).
  * [Wei, Proposition 5.4]: Weigandt, Prism tableaux for alternating sign
    matrix varieties (see arXiv:1708.07236 (see
    https://arxiv.org/abs/1708.07236 )).
  * [BB93, Theorem 3.7]: Bergeron and Billey, RC-graphs and Schubert
    polynomials.

+-----------------------------------------------------------------------------+
|i1 : A = matrix{{0,0,1,0,0},{1,0,0,0,0},{0,1,-1,1,0},{0,0,0,0,1},{0,0,1,0,0  |
|                                                                             |
|              5       5                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|}};                                                                          |
+-----------------------------------------------------------------------------+
|i2 : J = schubertDeterminantalIdeal A;                                       |
|                                                                             |
|o2 : Ideal of QQ[z   ..z   ]                                                 |
|                  1,1   5,5                                                  |
+-----------------------------------------------------------------------------+
|i3 : isIntersectionOfSchubertDeterminantalIdeals J                           |
|                                                                             |
|o3 = true                                                                    |
+-----------------------------------------------------------------------------+

Ways to use isIntersectionOfSchubertDeterminantalIdeals:
========================================================

  * "isIntersectionOfSchubertDeterminantalIdeals(Ideal)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:1067:0.

isSchubertCM -- whether an ASM variety is Cohen-Macaulay
********************************************************

  * Usage:
        isSchubertCM A
        isSchubertCM w
  * Inputs:
      * A, a matrix (Macaulay2Doc), or w is a List (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given an alternating sign matrix $A$ (resp. permutation $w$), checks whether
$R/I_A$ (resp. $R/I_w$) is Cohen-Macaulay. If the input is a permutation $w$,
the output is always true since $I_w$ is a Schubert determinantal ideal, and a
theorem of Fulton says $R/I_w$ is always Cohen-Macaulay.

+-----------------------------------------------------------------------------+
|i1 : A = matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}}                    |
|                                                                             |
|o1 = | 0 0  0 1 |                                                            |
|     | 0 1  0 0 |                                                            |
|     | 1 -1 1 0 |                                                            |
|     | 0 1  0 0 |                                                            |
|                                                                             |
|              4       4                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i2 : isSchubertCM A                                                          |
|                                                                             |
|o2 = true                                                                    |
+-----------------------------------------------------------------------------+
|i3 : w = {1,3,2}                                                             |
|                                                                             |
|o3 = {1, 3, 2}                                                               |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+
|i4 : isSchubertCM w                                                          |
|We know from a theorem of Fulton that the quotient by any Schubert           |
|                                                                             |
|o4 = true                                                                    |
|-----------------------------------------------------------------------------|
|determinantal ideal is actually Cohen--Macaulay!                             |
+-----------------------------------------------------------------------------+

Ways to use isSchubertCM:
=========================

  * "isSchubertCM(List)"
  * "isSchubertCM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertInvariantsDOC.m2:87:0.

KPolynomialASM -- compute the K Polynomial of an ASM variety
************************************************************

  * Usage:
        KPolynomialASM A
  * Inputs:
      * A, a matrix (Macaulay2Doc),

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

Given a partial ASM $A$, compute the K-polynomial of its corresponding Ideal,
defined as the numerator of its Hilbert series. The multidegree variables are
indexed along rows.

+-----------------------------------------------------------------------------+
|i1 : A = matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}};                   |
|                                                                             |
|              4       4                                                      |
|o1 : Matrix ZZ  <-- ZZ                                                       |
+-----------------------------------------------------------------------------+
|i2 : KPolynomialASM A                                                        |
|                                                                             |
|                      2                   3     2                2      3    |
|o2 = 1 - 3T  - T  + 3T  + 3T T  - T T  - T  - 3T T  + 3T T T  + T T  + T T  -|
|           0    1     0     0 1    1 2    0     0 1     0 1 2    1 2    0 1  |
|     ------------------------------------------------------------------------|
|       2           2      3         2 2      3 2                             |
|     3T T T  - 3T T T  + T T T  + 3T T T  - T T T                            |
|       0 1 2     0 1 2    0 1 2     0 1 2    0 1 2                           |
|                                                                             |
|o2 : ZZ[T ..T ]                                                              |
|         0   3                                                               |
+-----------------------------------------------------------------------------+

Ways to use KPolynomialASM:
===========================

  * "KPolynomialASM(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertInvariantsDOC.m2:107:0.

schubertCodim -- compute the codimension (i.e., height) of a Schubert determinantal ideal or ASM ideal
******************************************************************************************************

  * Usage:
        schubertCodim w
        schubertCodim A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),

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

Given a partial alternating sign matrix or a permutation in 1-line notation,
outputs the codimension of the corresponding alternating sign matrix ideal or
Schubert determinantal ideal.

+-------------------------------------------------------------------+
|i1 : schubertCodim matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}}|
|                                                                   |
|o1 = 5                                                             |
+-------------------------------------------------------------------+
|i2 : schubertCodim {1,3,2}                                         |
|                                                                   |
|o2 = 1                                                             |
+-------------------------------------------------------------------+

Ways to use schubertCodim:
==========================

  * "schubertCodim(List)"
  * "schubertCodim(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertInvariantsDOC.m2:57:0.

schubertRegularity -- compute the Castelnuovo-Mumford regularity of the quotient by an ASM ideal
************************************************************************************************

  * Usage:
        schubertRegularity w
        schubertRegularity A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),

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

Given a partial alternating sign matrix or a permutation in 1-line notation,
computes the Castelnuovo-Mumford regularity of the quotient by the
corresponding alternating sign matrix ideal or Schubert determinantal ideal.
In the case of a permutation in 1-line notation, computes the
Castelnuovo-Mumford regularity of the corresponding Schubert determinantal
ideal by implementing Theorem 1.1 of

  * Oliver Pechenik, David Speyer, and Anna Weigandt, Castelnuovo-Mumford
    regularity of matrix Schubert varieties, arXiv:2111.10681 (see
    https://arxiv.org/abs/2111.10681 ), Selecta Mathematica New Series 30, 66
    (2024).

In the case of a partial permutation, computes the regularity using the
antidiagonal initial ideal, a valid strategy in light of

  * Aldo Conca and Matteo Varbaro, Square-free Gröbner degenerations,
    arXiv:1805.11923 (see https://arxiv.org/abs/1805.11923 ), Invent. Math. 221
    (2020), no. 3, 713–730.

+-----------------------------------------------------------------------------+
|i1 : w = {2,3,5,1,4}                                                         |
|                                                                             |
|o1 = {2, 3, 5, 1, 4}                                                         |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : schubertRegularity w                                                    |
|                                                                             |
|o2 = 2                                                                       |
+-----------------------------------------------------------------------------+
|i3 : A = matrix{{0,0,1,0,0},{1,0,0,0,0},{0,1,-1,1,0},{0,0,0,0,1},{0,0,1,0,0  |
|                                                                             |
|              5       5                                                      |
|o3 : Matrix ZZ  <-- ZZ                                                       |
|-----------------------------------------------------------------------------|
|}};                                                                          |
+-----------------------------------------------------------------------------+
|i4 : schubertRegularity A                                                    |
|                                                                             |
|o4 = 2                                                                       |
+-----------------------------------------------------------------------------+

Ways to use schubertRegularity:
===============================

  * "schubertRegularity(List)"
  * "schubertRegularity(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertInvariantsDOC.m2:35:0.

Initial ideals of ASM ideals -- basic functions for investigating initial ideals of ASM varieties
*************************************************************************************************

By work of Knutson and Miller [KM05], Weigandt [Wei17], and Knutson [Knu09] the
Fulton generators of an ASM ideal form a Gröbner basis with respect to any
antidiagonal term order. However,  Gröbner bases for ASM ideals with respect to
other term orders, including diagonal ones, remain largely mysterious.

  * [BB93] Nantel Bergeron and Sara Billey, RC-graphs and Schubert polynomials
    (see https://projecteuclid.org/journals/experimental-mathematics/volume-2/
    issue-4/RC-graphs-and-Schubert-polynomials/em/1048516036.full ),
    Experiment. Math.2(1993), no.4, 257–269.
  * [CV20] Aldo Conca and Matteo Varbaro, Square-free Gröbner degenerations
    (see https://arxiv.org/abs/1805.11923 ), Inventiones mathematicae, 221(3),
    pp.713-730.
  * [HPW22] Zachary Hamaker, Oliver Pechenik, and Anna Weigandt, Gröbner
    geometry of Schubert polynomials through ice (see
    https://arxiv.org/abs/2003.13719 ), Advances in Mathematics 398 (2022):
    108228.
  * [Kle23] Patricia Klein, Diagonal degenerations of matrix Schubert varieties
    (see https://arxiv.org/abs/2008.01717 ), Algebraic Combinatorics 6 (2023)
    no. 4, 1073-1094.
  * [Knu09] Allen Knutson, Frobenius splitting, point-counting, and
    degeneration (see https://arxiv.org/abs/0911.4941 ), arxiv preprint
    0911.4941.
  * [KM05] Allen Knutson and Ezra Miller, Gröbner geometry of Schubert
    polynomials (see https://arxiv.org/abs/math/0110058 ), Annals of
    Mathematics (2005): 1245-1318.
  * [KMY09] Allen Knutson, Ezra Miller, and Alexander Yong Gröbner geometry of
    vertex decompositions and of flagged tableaux (see
    https://arxiv.org/abs/math/0502144 ), J. Reine Angew. Math.630(2009), 1-31.
  * [KW21] Patricia Klein and Anna Weigandt, Bumpless pipe dreams encode
    Gröbner geometry of Schubert polynomials (see
    https://arxiv.org/abs/2108.08370 ), arxiv preprint 2108.08370.
  * [Wei17] Anna Weigandt, Prism tableaux for alternating sign matrix varieties
    (see https://arxiv.org/abs/1708.07236 ), arXiv preprint 1708.07236.

Given a permutation or a partial ASM, one may compute its antidiagonal initial
ideal via antiDiagInit. By [KM05] and [Wei17] or [Knu09],
the Fulton generators form a Gröbner basis for any ASM ideal with respect to
any antidiagonal term order.

+--------------------------------------------------+
|i1 : w = {2,4,5,1,3};                             |
+--------------------------------------------------+
|i2 : I = schubertDeterminantalIdeal w;            |
|                                                  |
|o2 : Ideal of QQ[z   ..z   ]                      |
|                  1,1   5,5                       |
+--------------------------------------------------+
|i3 : inI = antiDiagInit w;                        |
|                                                  |
|o3 : MonomialIdeal of QQ[z   ..z   ]              |
|                          1,1   5,5               |
+--------------------------------------------------+
|i4 : (netList sort inI_*, netList sort (trim I)_*)|
|                                                  |
|      +--------+  +-------------------+           |
|o4 = (|z       |, |z                  |)          |
|      | 3,1    |  | 3,1               |           |
|      +--------+  +-------------------+           |
|      |z       |  |z                  |           |
|      | 2,1    |  | 2,1               |           |
|      +--------+  +-------------------+           |
|      |z       |  |z                  |           |
|      | 1,1    |  | 1,1               |           |
|      +--------+  +-------------------+           |
|      |z   z   |  |z   z    - z   z   |           |
|      | 2,3 3,2|  | 2,3 3,2    2,2 3,3|           |
|      +--------+  +-------------------+           |
|      |z   z   |  |z   z    - z   z   |           |
|      | 1,3 3,2|  | 1,3 3,2    1,2 3,3|           |
|      +--------+  +-------------------+           |
|      |z   z   |  |z   z    - z   z   |           |
|      | 1,3 2,2|  | 1,3 2,2    1,2 2,3|           |
|      +--------+  +-------------------+           |
|                                                  |
|o4 : Sequence                                     |
+--------------------------------------------------+

By work of Conca and Varbaro [CV21], we know that the extremal Betti numbers
(which encode regularity and projective dimension) of an ASM ideal and its
antidiagonal initial ideal must coincide because the antidiagonal initial ideal
is squarefree. For this running example, all of the Betti numbers coincide (not
just the extremal ones).

+-------------------------------------------------+
|i5 : (betti res I, betti res inI)                |
|                                                 |
|             0 1  2  3 4 5         0 1  2  3 4 5 |
|o5 = (total: 1 6 14 16 9 2, total: 1 6 14 16 9 2)|
|          0: 1 3  3  1 . .      0: 1 3  3  1 . . |
|          1: . 3 11 15 9 2      1: . 3 11 15 9 2 |
|                                                 |
|o5 : Sequence                                    |
+-------------------------------------------------+

By work of Knutson and Miller [KM05], building off of work of Bergeron and
Billey [BB93], the prime components of the antidiagonal initial ideal of a
Schubert determinantal ideal for a permutation w are in bijection with the pipe
dreams (see PipeDream) associated to w.  See [BB93] for a
detailed description of pipe dreams, there called RC-graphs.

+----------------------------------------+
|i6 : # pipeDreams w == # (decompose inI)|
|                                        |
|o6 = true                               |
+----------------------------------------+

To read off an associated prime of the antidiagonal initial ideal from a pipe
dream, one reads off the + tiles from the grid. When there is a + in location
$(i,j)$, then $z_{i,j}$ is a generator of the associated prime in question.

+-------------------------------------------------+
|i7 : (pipeDreams w)_0                            |
|                                                 |
|o7 = +/+//                                       |
|     +/+//                                       |
|     +////                                       |
|     /////                                       |
|     /////                                       |
|                                                 |
|o7 : PipeDream                                   |
+-------------------------------------------------+
|i8 : (decompose inI)_0                           |
|                                                 |
|o8 = monomialIdeal (z   , z   , z   , z   , z   )|
|                     1,1   1,3   2,1   2,3   3,1 |
|                                                 |
|o8 : MonomialIdeal of QQ[z   ..z   ]             |
|                          1,1   5,5              |
+-------------------------------------------------+

Initial ideals of Schubert determinantal ideals and ASM ideals under diagonal
term orders are must less well understood. They have been studied in
[KMY09],[HPW22], [Kle23], and  [KW21]. This package provides functionality for
investigating three diagonal term orders: One which uses lex and orders the
variables reading right-to-left across rows starting from the southeast corner
diagLexInitSE, one which uses lex and orders the
variables reading left-to-right across rows starting from the northwest corner
diagLexInitNW, and one which uses revlex and orders the
variables smallest to largest reading left-to-right across rows starting from
the southwest corner diagRevLexInit.

Two diagonal term orders may give two distinct initial ideals.

+-----------------------------------------------------------------------------+
|i9 : v = {2,1,4,3,6,5}                                                       |
|                                                                             |
|o9 = {2, 1, 4, 3, 6, 5}                                                      |
|                                                                             |
|o9 : List                                                                    |
+-----------------------------------------------------------------------------+
|i10 : diagLexInitSE v                                                        |
|                                                                             |
|                                                                             |
|o10 = monomialIdeal (z   z   z   z   z   z   , z   z   z   z   z   ,         |
|                      5,5 4,3 3,4 3,2 2,1 1,3   5,5 4,3 3,4 2,1 1,2          |
|      -----------------------------------------------------------------------|
|                                         2                                   |
|      z   z   z   , z   z   z   z   z   z   , z   )                          |
|       3,3 2,1 1,2   5,5 4,3 3,4 3,1 2,3 1,2   1,1                           |
|                                                                             |
|o10 : MonomialIdeal of QQ[z   , z   , z   , z   , z   , z   , z   , z   , z  |
|                           6,6   6,5   6,4   6,3   6,2   6,1   5,6   5,5   5,|
|-----------------------------------------------------------------------------|
| , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   ,   |
|4   5,3   5,2   5,1   4,6   4,5   4,4   4,3   4,2   4,1   3,6   3,5   3,4    |
|-----------------------------------------------------------------------------|
|z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   ,|
| 3,3   3,2   3,1   2,6   2,5   2,4   2,3   2,2   2,1   1,6   1,5   1,4   1,3 |
|-----------------------------------------------------------------------------|
|z   , z   ]                                                                  |
| 1,2   1,1                                                                   |
+-----------------------------------------------------------------------------+
|i11 : netList (decompose oo)                                                 |
|                                                                             |
|      +--------------------------------+                                     |
|o11 = |monomialIdeal (z   , z   , z   )|                                     |
|      |                5,5   3,3   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                4,3   3,3   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                3,4   3,3   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                5,5   2,1   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                4,3   2,1   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                3,4   2,1   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                3,1   2,1   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                2,3   2,1   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                5,5   1,2   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                4,3   1,2   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                3,4   1,2   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                3,2   1,2   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                2,1   1,2   1,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,3   1,2   1,1 |                                     |
|      +--------------------------------+                                     |
+-----------------------------------------------------------------------------+
|i12 : diagLexInitNW v                                                        |
|                                                                             |
|                                                                             |
|o12 = monomialIdeal (z   , z   z   z   , z   z   z   z   z   ,               |
|                      1,1   1,2 2,1 3,3   1,2 2,1 3,4 4,3 5,5                |
|      -----------------------------------------------------------------------|
|                                     2                                       |
|      z   z   z   z   z   z   , z   z   z   z   z   z   )                    |
|       1,2 2,3 3,1 3,4 4,3 5,5   1,3 2,1 3,2 3,4 4,3 5,5                     |
|                                                                             |
|o12 : MonomialIdeal of QQ[z   ..z   ]                                        |
|                           1,1   6,6                                         |
+-----------------------------------------------------------------------------+
|i13 : netList (decompose oo)                                                 |
|                                                                             |
|      +--------------------------------+                                     |
|o13 = |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   1,2   1,3 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   1,2   2,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   2,1   2,3 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   2,1   3,1 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   1,2   3,2 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   1,2   3,4 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   2,1   3,4 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   3,3   3,4 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   1,2   4,3 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   2,1   4,3 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   3,3   4,3 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   1,2   5,5 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   2,1   5,5 |                                     |
|      +--------------------------------+                                     |
|      |monomialIdeal (z   , z   , z   )|                                     |
|      |                1,1   3,3   5,5 |                                     |
|      +--------------------------------+                                     |
+-----------------------------------------------------------------------------+

In this example, see diagRevLexInit, and diagLexInitSE,
give the same initial ideal. It is unknown if this is the case
in general.

+-----------------------------------------------------------------------------+
|i14 : diagRevLexInit v                                                       |
|                                                                             |
|                                                                             |
|o14 = monomialIdeal (z   , z   z   z   , z   z   z   z   z   ,               |
|                      1,1   1,2 2,1 3,3   1,2 2,1 3,4 4,3 5,5                |
|      -----------------------------------------------------------------------|
|                                 2                                           |
|      z   z   z   z   z   z   , z   z   z   z   z   z   )                    |
|       1,3 2,1 3,4 3,2 4,3 5,5   1,2 2,3 3,4 3,1 4,3 5,5                     |
|                                                                             |
|o14 : MonomialIdeal of QQ[z   , z   , z   , z   , z   , z   , z   , z   , z  |
|                           1,6   1,5   1,4   1,3   1,2   1,1   2,6   2,5   2,|
|-----------------------------------------------------------------------------|
| , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   ,   |
|4   2,3   2,2   2,1   3,6   3,5   3,4   3,3   3,2   3,1   4,6   4,5   4,4    |
|-----------------------------------------------------------------------------|
|z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   , z   ,|
| 4,3   4,2   4,1   5,6   5,5   5,4   5,3   5,2   5,1   6,6   6,5   6,4   6,3 |
|-----------------------------------------------------------------------------|
|z   , z   ]                                                                  |
| 6,2   6,1                                                                   |
+-----------------------------------------------------------------------------+

Functions for studying initial ideals of ASM ideals
===================================================

  * antiDiagInit(Matrix) -- compute the (unique)
    antidiagonal initial ideal of an ASM ideal
  * diagLexInitSE(Matrix) -- Diagonal initial ideal of an
    ASM ideal with respect to lex, starting from SE corner
  * diagLexInitNW(Matrix) -- Diagonal initial ideal of an
    ASM ideal with respect to lex, starting from NW corner
  * diagRevLexInit(Matrix) -- Diagonal initial ideal of
    an ASM ideal with respect to revlex, ordering variables from NW corner
  * pipeDreams(List) -- computes the set of reduced pipe
    dreams corresponding to a permutation

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:416:0.

antiDiagInit -- compute the (unique) antidiagonal initial ideal of an ASM ideal
*******************************************************************************

  * Usage:
        antiDiagInit w
        antiDiagInit A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => a ring (Macaulay2Doc), default value QQ
      * Variable => a symbol (Macaulay2Doc), default value z
  * Outputs:
      * a monomial ideal (Macaulay2Doc),

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

Let $Z = (z_{i,j})$ be a generic matrix and $R=k[Z]$ a polynomial ring in the
entries of $Z$ over the field $k$.  We call a term order on $R$ antidiagonal if
the lead term of the determinant of each submatrix $Z'$ of $Z$ is the product
of terms along the antidiagonal of $Z'$.

This method computes the antidiagonal initial ideal of an ASM ideal by directly
forming the ideal of the lead terms of the Fulton generators.

  * [KM05]: Knutson and Miller, Gröbner geometry of Schubert polynomials (see
    arXiv:0110058 (see https://arxiv.org/abs/0110058 )).

tells us that the Fulton generators of each Schubert determinantal ideal form a
Gröbner basis.  For an extension to ASM ideals, see

  * [KW]: Klein and Weigandt, Bumpless pipe dreams encode Gröbner geometry of
    Schubert polynomials (see arXiv:2108.08370 (see
    https://arxiv.org/abs/2108.08370 )).
  * [Wei]: Weigandt, Prism tableaux for alternating sign matrix varieties (see
    arXiv:1708.07236 (see https://arxiv.org/abs/1708.07236 )).
  * [Knu]: Knutson, Frobenius splitting, point-counting, and degeneration (see
    arXiv:0911.4941 (see https://arxiv.org/abs/0911.4941 )).

This function computes over the coefficient field of rational numbers unless an
alternative is specified.

+-----------------------------------------------------------------------------+
|i1 : antiDiagInit({1,3,2},CoefficientRing=>ZZ/3001)                          |
|                                                                             |
|o1 = monomialIdeal(z   z   )                                                 |
|                    1,2 2,1                                                  |
|                                                                             |
|                       ZZ                                                    |
|o1 : MonomialIdeal of ----[z   ..z   ]                                       |
|                      3001  1,1   3,3                                        |
+-----------------------------------------------------------------------------+
|i2 : antiDiagInit(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}}, Variable |
|                                                                             |
|o2 = monomialIdeal (t   , t   , t   , t   , t   t   )                        |
|                     1,1   1,2   1,3   2,1   2,2 3,1                         |
|                                                                             |
|o2 : MonomialIdeal of QQ[t   ..t   ]                                         |
|                          1,1   4,4                                          |
|-----------------------------------------------------------------------------|
|=> t)                                                                        |
+-----------------------------------------------------------------------------+

Ways to use antiDiagInit:
=========================

  * "antiDiagInit(List)"
  * "antiDiagInit(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:648:0.

diagLexInitSE -- Diagonal initial ideal of an ASM ideal with respect to lex, starting from SE corner
****************************************************************************************************

  * Usage:
        diagLexInitSE w
        diagLexInitSE A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => a ring (Macaulay2Doc), default value QQ
      * Variable => a symbol (Macaulay2Doc), default value z
  * Outputs:
      * a monomial ideal (Macaulay2Doc),

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

Given a partial alternating sign matrix or a permutation in 1-line notation,
return the diagonal initial ideal of the corresponding ASM ideal or Schubert
determinantal ideal with respect to lexicographic order, where the variables
are ordered reading from right to left and bottom-to-top (starting in the
southeast corner).

This function computes over the coefficient field of rational numbers unless an
alternative is specified.

+-----------------------------------------------------------------------------+
|i1 : diagLexInitSE({1,3,2},CoefficientRing=>ZZ/3001)                         |
|                                                                             |
|o1 = monomialIdeal(z   z   )                                                 |
|                    2,2 1,1                                                  |
|                                                                             |
|                       ZZ                                                    |
|o1 : MonomialIdeal of ----[z   , z   , z   , z   , z   , z   , z   , z   ,   |
|                      3001  3,3   3,2   3,1   2,3   2,2   2,1   1,3   1,2    |
|-----------------------------------------------------------------------------|
|z   ]                                                                        |
| 1,1                                                                         |
+-----------------------------------------------------------------------------+
|i2 : diagLexInitSE(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}}, Variable|
|                                                                             |
|o2 = monomialIdeal (c   c   , c   , c   , c   , c   )                        |
|                     3,1 2,2   2,1   1,3   1,2   1,1                         |
|                                                                             |
|o2 : MonomialIdeal of QQ[c   , c   , c   , c   , c   , c   , c   , c   , c   |
|                          4,4   4,3   4,2   4,1   3,4   3,3   3,2   3,1   2,4|
|-----------------------------------------------------------------------------|
| => c)                                                                       |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|, c   , c   , c   , c   , c   , c   , c   ]                                  |
|   2,3   2,2   2,1   1,4   1,3   1,2   1,1                                   |
+-----------------------------------------------------------------------------+

Ways to use diagLexInitSE:
==========================

  * "diagLexInitSE(List)"
  * "diagLexInitSE(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:859:0.

diagLexInitNW -- Diagonal initial ideal of an ASM ideal with respect to lex, starting from NW corner
****************************************************************************************************

  * Usage:
        diagLexInitNW w
        diagLexInitNW A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => a ring (Macaulay2Doc), default value QQ
      * Variable => a symbol (Macaulay2Doc), default value z
  * Outputs:
      * a monomial ideal (Macaulay2Doc),

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

Given a partial alternating sign matrix or a permutation in 1-line notation,
returns the diagonal initial ideal of the corresponding ASM ideal or Schubert
determinantal ideal with respect to lexicographic order, where the variables
are ordered reading from left-to-right and top-to-bottom (starting in the
northwest corner).

This function computes over the coefficient field of rational numbers unless an
alternative is specified.

+--------------------------------------------------------------------+
|i1 : diagLexInitNW({1,3,2},CoefficientRing=>ZZ/3001)                |
|                                                                    |
|o1 = monomialIdeal(z   z   )                                        |
|                    1,1 2,2                                         |
|                                                                    |
|                       ZZ                                           |
|o1 : MonomialIdeal of ----[z   ..z   ]                              |
|                      3001  1,1   3,3                               |
+--------------------------------------------------------------------+
|i2 : diagLexInitNW(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}})|
|                                                                    |
|o2 = monomialIdeal (z   , z   , z   , z   , z   z   )               |
|                     1,1   1,2   1,3   2,1   2,2 3,1                |
|                                                                    |
|o2 : MonomialIdeal of QQ[z   ..z   ]                                |
|                          1,1   4,4                                 |
+--------------------------------------------------------------------+

Ways to use diagLexInitNW:
==========================

  * "diagLexInitNW(List)"
  * "diagLexInitNW(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:890:0.

diagRevLexInit -- Diagonal initial ideal of an ASM ideal with respect to revlex, ordering variables from NW corner
******************************************************************************************************************

  * Usage:
        diagRevLexInit w
        diagRevLexInit A
  * Inputs:
      * w, a list (Macaulay2Doc), or A is a Matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => a ring (Macaulay2Doc), default value QQ
      * Variable => a symbol (Macaulay2Doc), default value z
  * Outputs:
      * a monomial ideal (Macaulay2Doc),

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

Given a partial alternating sign matrix or a permutation in 1-line notation,
return the diagonal initial ideal of the corresponding ASM ideal or Schubert
determinantal ideal with respect to reverse lexicographic order, where the
variables are ordered smallest to largest by reading from rows left-to-right
and ordering rows from bottom-to-top (starting in the southwest corner).

This function computes over the coefficient field of rational numbers unless an
alternative is specified.

+-----------------------------------------------------------------------------+
|i1 : diagRevLexInit({1,3,2},CoefficientRing=>ZZ/3001)                        |
|                                                                             |
|o1 = monomialIdeal(z   z   )                                                 |
|                    1,1 2,2                                                  |
|                                                                             |
|o1 : MonomialIdeal of QQ[z   , z   , z   , z   , z   , z   , z   , z   ,     |
|                          1,3   1,2   1,1   2,3   2,2   2,1   3,3   3,2      |
|-----------------------------------------------------------------------------|
|z   ]                                                                        |
| 3,1                                                                         |
+-----------------------------------------------------------------------------+
|i2 : diagRevLexInit(matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}})        |
|                                                                             |
|o2 = monomialIdeal (z   , z   , z   , z   , z   z   )                        |
|                     1,3   1,2   1,1   2,1   2,2 3,1                         |
|                                                                             |
|o2 : MonomialIdeal of QQ[z   , z   , z   , z   , z   , z   , z   , z   ,     |
|                          1,4   1,3   1,2   1,1   2,4   2,3   2,2   2,1      |
|-----------------------------------------------------------------------------|
|z   , z   , z   , z   , z   , z   , z   , z   ]                              |
| 3,4   3,3   3,2   3,1   4,4   4,3   4,2   4,1                               |
+-----------------------------------------------------------------------------+

Ways to use diagRevLexInit:
===========================

  * "diagRevLexInit(List)"
  * "diagRevLexInit(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:923:0.

subwordComplex -- to find the subword complex associated to w
*************************************************************

  * Usage:
        subwordComplex w
  * Inputs:
      * w, a list (Macaulay2Doc),
  * Outputs:
      * an abstract simplicial complex (SimplicialComplexes),

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

Given a permutation in 1-line notation, compute the subword complex associated
to w (that is, the Stanley-Reisner complex of antiDiagInit).

+-----------------------------------------------------------------------------+
|i1 : subwordComplex({2,5,4,1,3})                                             |
|                                                                             |
|o1 = simplicialComplex | z_(1,2)z_(1,5)z_(2,2)z_(2,4)z_(2,5)z_(3,2)z_(3,3)z_(|
|                                                                             |
|o1 : SimplicialComplex                                                       |
|-----------------------------------------------------------------------------|
|3,4)z_(3,5)z_(4,1)z_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(5,1)z_(5,2)z_(5,3)z_(5,4)z_(|
|-----------------------------------------------------------------------------|
|5,5) z_(1,2)z_(1,4)z_(1,5)z_(2,4)z_(2,5)z_(3,2)z_(3,3)z_(3,4)z_(3,5)z_(4,1)z |
|-----------------------------------------------------------------------------|
|_(4,2)z_(4,3)z_(4,4)z_(4,5)z_(5,1)z_(5,2)z_(5,3)z_(5,4)z_(5,5)               |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,5)z_(2,2)z_(2,3)z_(2,4)z_(2,5)z_(3,3)z_(3,4)z_(3,5)z_(4,1)z_(4,2)|
|-----------------------------------------------------------------------------|
|z_(4,3)z_(4,4)z_(4,5)z_(5,1)z_(5,2)z_(5,3)z_(5,4)z_(5,5)                     |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,5)z_(2,3)z_(2,4)z_(2,5)z_(3,3)z_(3,4)z_(3,5)z_(4,1)z_(4,2)|
|-----------------------------------------------------------------------------|
|z_(4,3)z_(4,4)z_(4,5)z_(5,1)z_(5,2)z_(5,3)z_(5,4)z_(5,5)                     |
|-----------------------------------------------------------------------------|
|z_(1,2)z_(1,3)z_(1,4)z_(1,5)z_(2,4)z_(2,5)z_(3,3)z_(3,4)z_(3,5)z_(4,1)z_(4,2)|
|-----------------------------------------------------------------------------|
|z_(4,3)z_(4,4)z_(4,5)z_(5,1)z_(5,2)z_(5,3)z_(5,4)z_(5,5) |                   |
+-----------------------------------------------------------------------------+

Ways to use subwordComplex:
===========================

  * "subwordComplex(List)"

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

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

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:942:0.

initialIdealsList -- lists all antidiagonal initial ideals of ASMs of a fixed size
**********************************************************************************

  * Usage:
        initialIdealsList n
  * Inputs:
      * n, an integer (Macaulay2Doc),

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

For $3 \leq n \leq 6$, this function lists all antidiagonal initial ideals for
ASMs of size $n$.

+-----------------------------------------------------------------------------+
|i1 : initialIdealsList 3                                                     |
|                                                                             |
|o1 = {ideal 0, monomialIdeal z   , monomialIdeal(z   z   ), monomialIdeal    |
|                              1,1                 1,2 2,1                    |
|     ------------------------------------------------------------------------|
|     (z   , z   z   ), monomialIdeal (z   , z   ), monomialIdeal (z   ,      |
|       1,1   1,2 2,1                   1,1   1,2                   1,1       |
|     ------------------------------------------------------------------------|
|     z   ), monomialIdeal (z   , z   , z   )}                                |
|      2,1                   1,1   1,2   2,1                                  |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use initialIdealsList:
==============================

  * "initialIdealsList(ZZ)"

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

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

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

The source of this document is in MatrixSchubert/ASM_ListsDOC.m2:97:0.

Functions for investigating permutations -- basic functions for permutations
****************************************************************************

This package provides significantly expanded functionality for studying
permutations in Macaulay2.

  * [HPW22] Aldo Conca, Emanuela De Negri, and Elisa Gorla, Radical generic
    initial ideals (see https://arxiv.org/abs/2108.10115 ), Vietnam J.
    Math.50(2022), no.3, 807–827.
  * [HPW22] Zachary Hamaker, Oliver Pechenik, and Anna Weigandt, Gröbner
    geometry of Schubert polynomials through ice (see
    https://arxiv.org/abs/2003.13719 ), Advances in Mathematics 398 (2022):
    108228.
  * [Kle23] Patricia Klein, Diagonal degenerations of matrix Schubert varieties
    (see https://arxiv.org/abs/2008.01717 ), Algebraic Combinatorics 6 (2023)
    no. 4, 1073-1094.
  * [KW21] Patricia Klein and Anna Weigandt, Bumpless pipe dreams encode
    Gröbner geometry of Schubert polynomials (see
    https://arxiv.org/abs/2108.08370 ), arxiv preprint 2108.08370.
  * [KM05] Allen Knutson and Ezra Miller, Gröbner geometry of Schubert
    polynomials (see https://arxiv.org/abs/math/0110058 ), Annals of
    Mathematics (2005): 1245-1318.
  * [KMY09] Allen Knutson, Ezra Miller, and Alexander Yong Gröbner geometry of
    vertex decompositions and of flagged tableaux (see
    https://arxiv.org/abs/math/0502144 ), J. Reine Angew. Math.630(2009), 1-31.
  * [Wei17] Anna Weigandt, Prism tableaux for alternating sign matrix varieties
    (see https://arxiv.org/abs/1708.07236 ), arXiv preprint 1708.07236.

Given a permutation as a list of integers, one can check if it is indeed a
permutation, what its descent set is, what its inverse is, and the Coxeter
length of the permutation.

+---------------------------------------------------+
|i1 : v = {2,1,6,3,5,4};                            |
+---------------------------------------------------+
|i2 : isPerm v --checks if v is indeed a permutation|
|                                                   |
|o2 = true                                          |
+---------------------------------------------------+
|i3 : lastDescent v                                 |
|                                                   |
|o3 = 5                                             |
+---------------------------------------------------+
|i4 : firstDescent v                                |
|                                                   |
|o4 = 1                                             |
+---------------------------------------------------+
|i5 : inverseOf v                                   |
|                                                   |
|o5 = {2, 1, 4, 6, 5, 3}                            |
|                                                   |
|o5 : List                                          |
+---------------------------------------------------+

This package also allows one to quickly compute certain combinatorial
polynomials associated to a permutation, such as the (double) Schubert
polynomial and the Grothendieck polynomial.

+-----------------------------------------------------------------------------+
|i6 : u = {3,1,4,2}                                                           |
|                                                                             |
|o6 = {3, 1, 4, 2}                                                            |
|                                                                             |
|o6 : List                                                                    |
+-----------------------------------------------------------------------------+
|i7 : schubertPolynomial u                                                    |
|                                                                             |
|      2      2                                                               |
|o7 = x x  + x x                                                              |
|      1 2    1 3                                                             |
|                                                                             |
|o7 : QQ[x ..x ]                                                              |
|         1   4                                                               |
+-----------------------------------------------------------------------------+
|i8 : doubleSchubertPolynomial u                                              |
|                                                                             |
|      2      2      2                          2    2                        |
|o8 = x x  + x x  - x y  - x x y  - x x y  + x y  - x y  - x x y  - x x y  +  |
|      1 2    1 3    1 1    1 2 1    1 3 1    1 1    1 2    1 2 2    1 3 2    |
|     ------------------------------------------------------------------------|
|                                  2        2      2                          |
|     2x y y  + x y y  + x y y  - y y  + x y  - y y                           |
|       1 1 2    2 1 2    3 1 2    1 2    1 2    1 2                          |
|                                                                             |
|o8 : QQ[x ..x , y ..y ]                                                      |
|         1   4   1   4                                                       |
+-----------------------------------------------------------------------------+
|i9 : grothendieckPolynomial u                                                |
|                                                                             |
|        2        2      2                                                    |
|o9 = - x x x  + x x  + x x                                                   |
|        1 2 3    1 2    1 3                                                  |
|                                                                             |
|o9 : QQ[x ..x ]                                                              |
|         1   4                                                               |
+-----------------------------------------------------------------------------+

Moreover, this package contains functionality for checking whether a
permutation avoids a set of patterns. For instance, see isCDG, checks
whether a permutation is CDG; see isVexillary, checks whether a
permutation is 2143-avoiding; and isCartwrightSturmfels,
checks whether a permutation is Cartwright-Sturmfels.

+------------------------------------+
|i10 : w = {1,2,3,9,8,4,5,6,7};      |
+------------------------------------+
|i11 : isPatternAvoiding(w,{4,1,2,3})|
|                                    |
|o11 = false                         |
+------------------------------------+
|i12 : isVexillary w                 |
|                                    |
|o12 = true                          |
+------------------------------------+
|i13 : isCartwrightSturmfels w       |
|                                    |
|o13 = false                         |
+------------------------------------+
|i14 : isCDG w                       |
|                                    |
|o14 = true                          |
+------------------------------------+

Finally, this package contains functionality for studying both reduced and
nonreduced pipe dreams of a permutation.

+--------------------------------------------------------------------------+
|i15 : decompose antiDiagInit u                                            |
|                                                                          |
|o15 = {monomialIdeal (z   , z   , z   ), monomialIdeal (z   , z   , z   )}|
|                       1,1   1,2   2,2                   1,1   1,2   3,1  |
|                                                                          |
|o15 : List                                                                |
+--------------------------------------------------------------------------+
|i16 : pipeDreams u                                                        |
|                                                                          |
|o16 = {++//, ++//}                                                        |
|       /+//  ////                                                         |
|       ////  +///                                                         |
|       ////  ////                                                         |
|                                                                          |
|o16 : List                                                                |
+--------------------------------------------------------------------------+
|i17 : pipeDreamsNonReduced u                                              |
|                                                                          |
|o17 = {++//, ++//, ++//}                                                  |
|       /+//  /+//  ////                                                   |
|       ////  +///  +///                                                   |
|       ////  ////  ////                                                   |
|                                                                          |
|o17 : List                                                                |
+--------------------------------------------------------------------------+

Functions for studying permutations
===================================

  * isPerm(List) -- whether a list is a permutation in 1-line
    notation
  * permToMatrix(List) -- converts a permutation in 1-line
    notation into a permutation matrix
  * lastDescent(List) -- finds the location of the last
    descent of a permutation
  * firstDescent(List) -- finds the location of the first
    descent of a permutation
  * permLength(List) -- to find the length of a permutation
    in 1-line notation.
  * inverseOf(List) -- to return the inverse of a permutation
    in 1-line notation.
  * longestPerm(ZZ) -- to return the longest permutation of
    length n
  * toOneLineNotation(List,ZZ) -- rewrites a
    transposition or permutation matrix in 1-line notation
  * composePerms(List,List) -- computes the composition of
    two permutations
  * isPatternAvoiding(List,List) -- whether a
    permutation avoids certain patterns, e.g. $2143$-avoiding or $312$- and
    $231$-avoiding
  * isVexillary(List) -- whether a permutation is
    vexillary, i.e. 2143-avoiding
  * avoidsAllPatterns(List,List) -- whether a
    permutation avoids all of the given patterns
  * isCartwrightSturmfels(List) -- whether a
    permutation is Cartwright-Sturmfels
  * isCDG(List) -- whether a permutation is CDG
  * rajcode(List) -- finds the Rajchgot code of a permutation
  * rajIndex(List) -- finds the Rajchgot index of a
    permutation
  * grothendieckPolynomial(List) -- computes the
    Grothendieck polynomial of a permutation
  * schubertPolynomial(List) -- computes the
    Schubert polynomial of a permutation
  * doubleSchubertPolynomial(List) -- computes
    the double Schubert polynomial of a permutation
  * pipeDreams(List) -- computes the set of reduced pipe
    dreams corresponding to a permutation
  * pipeDreamsNonReduced(List) -- computes the set
    of all pipe dreams corresponding to a permutation

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

The source of this document is in
MatrixSchubert/MatrixSchubertConstructionsDOC.m2:536:0.

isPerm -- whether a list is a permutation in 1-line notation
************************************************************

  * Usage:
        isPerm w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a list of length $n$, checks if the entries of the permutation are the
integers from 1 to $n$.

+-----------------------+
|i1 : w = {5,3,4,6,1,2} |
|                       |
|o1 = {5, 3, 4, 6, 1, 2}|
|                       |
|o1 : List              |
+-----------------------+
|i2 : isPerm w          |
|                       |
|o2 = true              |
+-----------------------+
|i3 : v = {4,3,2}       |
|                       |
|o3 = {4, 3, 2}         |
|                       |
|o3 : List              |
+-----------------------+
|i4 : isPerm v          |
|                       |
|o4 = false             |
+-----------------------+

Ways to use isPerm:
===================

  * "isPerm(List)"

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

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

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

The source of this document is in MatrixSchubert/permutationMethodsDOC.m2:21:0.

permToMatrix -- converts a permutation in 1-line notation into a permutation matrix
***********************************************************************************

  * Usage:
        permToMatrix w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation, produces the permutation matrix with
1's in location $(i,w_i)$.

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : permToMatrix w             |
|                                |
|o2 = | 0 0 0 0 0 0 1 0 |        |
|     | 0 1 0 0 0 0 0 0 |        |
|     | 0 0 0 0 1 0 0 0 |        |
|     | 0 0 0 0 0 0 0 1 |        |
|     | 1 0 0 0 0 0 0 0 |        |
|     | 0 0 1 0 0 0 0 0 |        |
|     | 0 0 0 0 0 1 0 0 |        |
|     | 0 0 0 1 0 0 0 0 |        |
|                                |
|              8       8         |
|o2 : Matrix ZZ  <-- ZZ          |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : permToMatrix v             |
|                                |
|o4 = | 1 0 0 0 0 0 0 0 0 |      |
|     | 0 0 0 0 0 1 0 0 0 |      |
|     | 0 0 0 0 0 0 0 0 1 |      |
|     | 0 1 0 0 0 0 0 0 0 |      |
|     | 0 0 0 1 0 0 0 0 0 |      |
|     | 0 0 0 0 0 0 1 0 0 |      |
|     | 0 0 1 0 0 0 0 0 0 |      |
|     | 0 0 0 0 1 0 0 0 0 |      |
|     | 0 0 0 0 0 0 0 1 0 |      |
|                                |
|              9       9         |
|o4 : Matrix ZZ  <-- ZZ          |
+--------------------------------+

Ways to use permToMatrix:
=========================

  * "permToMatrix(List)"

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

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

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

The source of this document is in MatrixSchubert/permutationMethodsDOC.m2:42:0.

lastDescent -- finds the location of the last descent of a permutation
**********************************************************************

  * Usage:
        lastDescent w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a non-identity permutation in 1-line notation, finds the location of its
last descent, i.e., the greatest $i$ so that $w_{i+1}<w_i$.

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : lastDescent w              |
|                                |
|o2 = 7                          |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : lastDescent v              |
|                                |
|o4 = 6                          |
+--------------------------------+

Ways to use lastDescent:
========================

  * "lastDescent(List)"

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

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

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

The source of this document is in MatrixSchubert/permutationMethodsDOC.m2:63:0.

firstDescent -- finds the location of the first descent of a permutation
************************************************************************

  * Usage:
        firstDescent w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a non-identity permutation in 1-line notation, finds the location of its
first descent, i.e., the least $i$ so that $w_{i+1}<w_i$.

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : firstDescent w             |
|                                |
|o2 = 1                          |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : firstDescent v             |
|                                |
|o4 = 3                          |
+--------------------------------+

Ways to use firstDescent:
=========================

  * "firstDescent(List)"

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

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

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

The source of this document is in MatrixSchubert/permutationMethodsDOC.m2:84:0.

descentSet -- the descent set of a permutation
**********************************************

  * Usage:
        descentSet w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation, lists the location of its descents,
i.e., the least $i$ so that $w_{i+1}<w_i$.

+-----------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}   |
|                             |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}|
|                             |
|o1 : List                    |
+-----------------------------+
|i2 : descentSet w            |
|                             |
|o2 = {1, 4, 7}               |
|                             |
|o2 : List                    |
+-----------------------------+

Ways to use descentSet:
=======================

  * "descentSet(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:102:0.

permLength -- to find the length of a permutation in 1-line notation.
*********************************************************************

  * Usage:
        permLength w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation returns the Coxeter length of the
permutation.

+--------------------+
|i1 : w = {2,5,4,1,3}|
|                    |
|o1 = {2, 5, 4, 1, 3}|
|                    |
|o1 : List           |
+--------------------+
|i2 : permLength w   |
|                    |
|o2 = 6              |
+--------------------+

Ways to use permLength:
=======================

  * "permLength(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:122:0.

inverseOf -- to return the inverse of a permutation in 1-line notation.
***********************************************************************

  * Usage:
        inverseOf w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation returns the inverse of the permutation
in 1-line notation.

+--------------------+
|i1 : w = {2,5,4,1,3}|
|                    |
|o1 = {2, 5, 4, 1, 3}|
|                    |
|o1 : List           |
+--------------------+
|i2 : inverseOf w    |
|                    |
|o2 = {4, 1, 5, 3, 2}|
|                    |
|o2 : List           |
+--------------------+

Ways to use inverseOf:
======================

  * "inverseOf(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:140:0.

longestPerm -- to return the longest permutation of length n
************************************************************

  * Usage:
        longestPerm n
  * Inputs:
      * n, an integer (Macaulay2Doc),

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

Given an integer $n$, returns the permutation $\{n,n-1,...2,1\}$.

+--------------------------+
|i1 : longestPerm 7        |
|                          |
|o1 = {7, 6, 5, 4, 3, 2, 1}|
|                          |
|o1 : List                 |
+--------------------------+

Ways to use longestPerm:
========================

  * "longestPerm(ZZ)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:157:0.

toOneLineNotation -- rewrites a transposition or permutation matrix in 1-line notation
**************************************************************************************

  * Usage:
        toOneLineNotation(perm, maxIdx)
        toOneLineNotation(A)
  * Inputs:
      * perm, a list (Macaulay2Doc),
      * maxIdx, an integer (Macaulay2Doc),
      * A, a matrix (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Converts a permutation matrix or list of transpositions $(a,b)$ to 1-line
notation. maxIdx is the $n$ for which to regard perm as an element of $S_n$,
the symmetric group on $n$ letters.

+------------------------------------+
|i1 : perm = {2,4}                   |
|                                    |
|o1 = {2, 4}                         |
|                                    |
|o1 : List                           |
+------------------------------------+
|i2 : maxIdx = 5                     |
|                                    |
|o2 = 5                              |
+------------------------------------+
|i3 : toOneLineNotation(perm, maxIdx)|
|                                    |
|o3 = {1, 4, 3, 2, 5}                |
|                                    |
|o3 : List                           |
+------------------------------------+
+-------------------------------------------------------+
|i4 : toOneLineNotation(matrix{{0,1,0},{1,0,0},{0,0,1}})|
|                                                       |
|o4 = {2, 1, 3}                                         |
|                                                       |
|o4 : List                                              |
+-------------------------------------------------------+

Ways to use toOneLineNotation:
==============================

  * "toOneLineNotation(List,ZZ)"
  * "toOneLineNotation(Matrix)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:203:0.

composePerms -- computes the composition of two permutations
************************************************************

  * Usage:
        composePerms(u,v)
  * Inputs:
      * u, a list (Macaulay2Doc),
      * v, a list (Macaulay2Doc),
  * Outputs:
      * a list (Macaulay2Doc),

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

Computes the composition of two permutations, $u$ and $v$, as $u*v$. Note that
the permutations must be written as a list in 1-line notation and must both be
permutations of (the same) $n$ letters.

+----------------------+
|i1 : u = {2,3,4,1}    |
|                      |
|o1 = {2, 3, 4, 1}     |
|                      |
|o1 : List             |
+----------------------+
|i2 : v = {4,3,2,1}    |
|                      |
|o2 = {4, 3, 2, 1}     |
|                      |
|o2 : List             |
+----------------------+
|i3 : composePerms(u,v)|
|                      |
|o3 = {1, 4, 3, 2}     |
|                      |
|o3 : List             |
+----------------------+
|i4 : u = {1,2,3,4,5}  |
|                      |
|o4 = {1, 2, 3, 4, 5}  |
|                      |
|o4 : List             |
+----------------------+
|i5 : v = {3,5,2,1,4}  |
|                      |
|o5 = {3, 5, 2, 1, 4}  |
|                      |
|o5 : List             |
+----------------------+
|i6 : composePerms(u,v)|
|                      |
|o6 = {3, 5, 2, 1, 4}  |
|                      |
|o6 : List             |
+----------------------+
|i7 : u = {3,5,2,1,4}  |
|                      |
|o7 = {3, 5, 2, 1, 4}  |
|                      |
|o7 : List             |
+----------------------+
|i8 : v = {1,2,3,4,5}  |
|                      |
|o8 = {1, 2, 3, 4, 5}  |
|                      |
|o8 : List             |
+----------------------+
|i9 : composePerms(u,v)|
|                      |
|o9 = {3, 5, 2, 1, 4}  |
|                      |
|o9 : List             |
+----------------------+

Ways to use composePerms:
=========================

  * "composePerms(List,List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:234:0.

isPatternAvoiding -- whether a permutation avoids certain patterns, e.g. $2143$-avoiding or $312$- and $231$-avoiding
*********************************************************************************************************************

  * Usage:
        isPatternAvoiding(w, pattern)
  * Inputs:
      * w, a list (Macaulay2Doc),
      * pattern, a list (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given a permutation, checks if the permutation is pattern-avoiding, e.g.
$2143$-avoiding or $1432$-avoiding. For example, a permutation $w$ is
$2143$-avoiding if there does not exist indices $i < j < k < l$ such that $w_j
< w_i < w_l < w_k$.

+---------------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4};            |
+---------------------------------------+
|i2 : pattern2143 = {2,1,4,3};          |
+---------------------------------------+
|i3 : isPatternAvoiding(w, pattern2143) |
|                                       |
|o3 = false                             |
+---------------------------------------+
|i4 : v = {2,3,7,1,5,8,4,6};            |
+---------------------------------------+
|i5 : pattern1432 = {1,4,3,2};          |
+---------------------------------------+
|i6 : isPatternAvoiding(v, pattern1432) |
|                                       |
|o6 = false                             |
+---------------------------------------+
|i7 : isPatternAvoiding({3,1,2},{3,1,2})|
|                                       |
|o7 = false                             |
+---------------------------------------+

Ways to use isPatternAvoiding:
==============================

  * "isPatternAvoiding(List,List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:265:0.

isVexillary -- whether a permutation is vexillary, i.e. 2143-avoiding
*********************************************************************

  * Usage:
        isVexillary w
  * Inputs:
      * w, a list (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given a permutation in 1-line notation, checks if the permutation is vexillary,
i.e. $2143$-avoiding. A permutation $w$ is $2143$-avoiding if there do not
exist indices $i < j < k < l$ such that $w_j < w_i < w_l < w_k$.

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : isVexillary w              |
|                                |
|o2 = false                      |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : isVexillary v              |
|                                |
|o4 = true                       |
+--------------------------------+

Ways to use isVexillary:
========================

  * "isVexillary(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:291:0.

avoidsAllPatterns -- whether a permutation avoids all of the given patterns
***************************************************************************

  * Usage:
        avoidsAllPatterns(perm, patterns)
  * Inputs:
      * perm, a list (Macaulay2Doc),
      * patterns, a list (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given a permutation in one-line notation, and a list of patterns checks if the
permutation avoids every pattern.

+-------------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}           |
|                                     |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}        |
|                                     |
|o1 : List                            |
+-------------------------------------+
|i2 : patterns = {{2,1,4,3},{1,4,3,2}}|
|                                     |
|o2 = {{2, 1, 4, 3}, {1, 4, 3, 2}}    |
|                                     |
|o2 : List                            |
+-------------------------------------+
|i3 : avoidsAllPatterns(w,patterns)   |
|                                     |
|o3 = false                           |
+-------------------------------------+

Ways to use avoidsAllPatterns:
==============================

  * "avoidsAllPatterns(List,List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:313:0.

isCartwrightSturmfels -- whether a permutation is Cartwright-Sturmfels
**********************************************************************

  * Usage:
        isCartwrightSturmfels w
  * Inputs:
      * w, a list (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given a permutation in 1-line notation, checks if the permutation is
Cartwright-Sturmfels.  By [CDG22], the matrix Schubert variety $X_w$ is
Cartwright-Sturmfels if and only if $w$ avoids all of the patterns $\{12543,
13254, 13524, 13542, 21543, 125364, 125634, 215364, 215634, 315264, 315624,
315642\}$.

  * [CDG22] A. Conca, E. De Negri, and E. Gorla, Radical generic initial ideals
    (see https://arxiv.org/abs/2108.10115 ), Vietnam J. Math. 50 (2022), no. 3,
    807-827.

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : isCartwrightSturmfels w    |
|                                |
|o2 = false                      |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : isCartwrightSturmfels v    |
|                                |
|o4 = false                      |
+--------------------------------+

Ways to use isCartwrightSturmfels:
==================================

  * "isCartwrightSturmfels(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:345:0.

isCDG -- whether a permutation is CDG
*************************************

  * Usage:
        isCDG(perm)
  * Inputs:
      * perm, a list (Macaulay2Doc),
  * Outputs:
      * a Boolean value (Macaulay2Doc),

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

Given a permutation in 1-line notation, checks if the permutation is CDG.  We
say that a permutation $w$ is CDG if a certain modification (see [Kle23] for
precise description) of the Fulton generators of the Schubert determinantal
ideal $I_w$ form a diagonal Gröbner basis.  By [Kle23], $w$ is CDG if and only
if $w$ avoids all of the patterns $\{13254, 21543, 214635, 215364, 215634,
241635, 315264, 4261735\}$.

  * [Kle23] P. Klein, Diagonal degenerations of matrix Schubert varieties (see
    https://arxiv.org/abs/2008.01717 ), Algebr. Comb. 6 (2023), no. 4,
    1073-1094.

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : isCDG w                    |
|                                |
|o2 = true                       |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : isCDG v                    |
|                                |
|o4 = true                       |
+--------------------------------+

Ways to use isCDG:
==================

  * "isCDG(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:378:0.

rajcode -- finds the Rajchgot code of a permutation
***************************************************

  * Usage:
        rajcode w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation, finds its Rajchgot code, as defined in
[PSW].

  * [PWS]: O. Pechenik, A. Weigandt, and D. Speyer, "Castlenuovo--Mumford
    regularity of matrix Schubert varieties" (see arXiv:2111.10681 (see
    https://arxiv.org/abs/2111.10681 )).

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : rajcode w                  |
|                                |
|o2 = {6, 4, 4, 4, 1, 1, 1, 0}   |
|                                |
|o2 : List                       |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : rajcode v                  |
|                                |
|o4 = {4, 5, 6, 2, 2, 2, 0, 0, 0}|
|                                |
|o4 : List                       |
+--------------------------------+

Ways to use rajcode:
====================

  * "rajcode(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:402:0.

rajIndex -- finds the Rajchgot index of a permutation
*****************************************************

  * Usage:
        rajIndex w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation, finds its Rajchgot index, as defined in
[PSW].

  * [PWS]: O. Pechenik, A. Weigandt, and D. Speyer, "Castlenuovo--Mumford
    regularity of matrix Schubert varieties" (see arXiv:2111.10681 (see
    https://arxiv.org/abs/2111.10681 )).

+--------------------------------+
|i1 : w = {7,2,5,8,1,3,6,4}      |
|                                |
|o1 = {7, 2, 5, 8, 1, 3, 6, 4}   |
|                                |
|o1 : List                       |
+--------------------------------+
|i2 : rajIndex w                 |
|                                |
|o2 = 21                         |
+--------------------------------+
|i3 : v = {1,6,9,2,4,7,3,5,8}    |
|                                |
|o3 = {1, 6, 9, 2, 4, 7, 3, 5, 8}|
|                                |
|o3 : List                       |
+--------------------------------+
|i4 : rajIndex v                 |
|                                |
|o4 = 21                         |
+--------------------------------+

Ways to use rajIndex:
=====================

  * "rajIndex(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:426:0.

grothendieckPolynomial -- computes the Grothendieck polynomial of a permutation
*******************************************************************************

  * Usage:
        grothendieckPolynomial w
  * Inputs:
      * w, a list (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * Algorithm => a string (Macaulay2Doc), default value
        "DividedDifference", algorithm "PipeDream" also available

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

Given a permutation in 1-line notation, finds its Grothendieck polynomial.  Two
algorithms are implemented: DividedDifference (which is the default) and
PipeDream.

+-----------------------------------------------------------+
|i1 : w = {2,1,4,3}                                         |
|                                                           |
|o1 = {2, 1, 4, 3}                                          |
|                                                           |
|o1 : List                                                  |
+-----------------------------------------------------------+
|i2 : time grothendieckPolynomial w                         |
| -- used 0.00496906s (cpu); 0.00496772s (thread); 0s (gc)  |
|                                                           |
|      2        2      2               2                    |
|o2 = x x x  - x x  - x x  - x x x  + x  + x x  + x x       |
|      1 2 3    1 2    1 3    1 2 3    1    1 2    1 3      |
|                                                           |
|o2 : QQ[x ..x ]                                            |
|         1   4                                             |
+-----------------------------------------------------------+
|i3 : time grothendieckPolynomial (w,Algorithm=>"PipeDream")|
| -- used 0.00277161s (cpu); 0.00277203s (thread); 0s (gc)  |
|                                                           |
|      2        2      2               2                    |
|o3 = x x x  - x x  - x x  - x x x  + x  + x x  + x x       |
|      1 2 3    1 2    1 3    1 2 3    1    1 2    1 3      |
|                                                           |
|o3 : QQ[x ..x ]                                            |
|         1   4                                             |
+-----------------------------------------------------------+

Ways to use grothendieckPolynomial:
===================================

  * "grothendieckPolynomial(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:455:0.

schubertPolynomial -- computes the Schubert polynomial of a permutation
***********************************************************************

  * Usage:
        schubertPolynomial w
  * Inputs:
      * w, a list (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * Algorithm => a string (Macaulay2Doc), default value
        "DividedDifference", algorithm "Transition" also available

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

Given a permutation in 1-line notation, finds its (single) Schubert polynomial.
Two algorithms are implemented: DividedDifference (which is the default) and
Transition (which makes use of the transition equations for Schubert
polynomials).

+-----------------------------------------------------------------------------+
|i1 : w = {2,1,5,4,3}                                                         |
|                                                                             |
|o1 = {2, 1, 5, 4, 3}                                                         |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : schubertPolynomial w                                                    |
|                                                                             |
|      3      2 2    3       2          2      2 2        2    3      2       |
|o2 = x x  + x x  + x x  + 2x x x  + x x x  + x x  + x x x  + x x  + x x x  + |
|      1 2    1 2    1 3     1 2 3    1 2 3    1 3    1 2 3    1 4    1 2 4   |
|     ------------------------------------------------------------------------|
|        2      2                     2                                       |
|     x x x  + x x x  + x x x x  + x x x                                      |
|      1 2 4    1 3 4    1 2 3 4    1 3 4                                     |
|                                                                             |
|o2 : QQ[x ..x ]                                                              |
|         1   5                                                               |
+-----------------------------------------------------------------------------+
|i3 : schubertPolynomial (w,Algorithm=>"Transition")                          |
|                                                                             |
|      3      2 2    3       2          2      2 2        2    3      2       |
|o3 = x x  + x x  + x x  + 2x x x  + x x x  + x x  + x x x  + x x  + x x x  + |
|      1 2    1 2    1 3     1 2 3    1 2 3    1 3    1 2 3    1 4    1 2 4   |
|     ------------------------------------------------------------------------|
|        2      2                     2                                       |
|     x x x  + x x x  + x x x x  + x x x                                      |
|      1 2 4    1 3 4    1 2 3 4    1 3 4                                     |
|                                                                             |
|o3 : QQ[x ..x ]                                                              |
|         1   5                                                               |
+-----------------------------------------------------------------------------+

Ways to use schubertPolynomial:
===============================

  * "schubertPolynomial(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:479:0.

doubleSchubertPolynomial -- computes the double Schubert polynomial of a permutation
************************************************************************************

  * Usage:
        doubleSchubertPolynomial w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in 1-line notation, finds its double Schubert polynomial.
This is implemented via the transition equations for double Schubert
polynomials.

+-----------------------------------------------------------------------------+
|i1 : w = {2,1,5,4,3}                                                         |
|                                                                             |
|o1 = {2, 1, 5, 4, 3}                                                         |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : doubleSchubertPolynomial w                                              |
|                                                                             |
|      3      2 2    3       2          2      2 2        2    3      2       |
|o2 = x x  + x x  + x x  + 2x x x  + x x x  + x x  + x x x  + x x  + x x x  + |
|      1 2    1 2    1 3     1 2 3    1 2 3    1 3    1 2 3    1 4    1 2 4   |
|     ------------------------------------------------------------------------|
|        2      2                     2      3       2           2       2    |
|     x x x  + x x x  + x x x x  + x x x  - x y  - 3x x y  - 2x x y  - 3x x y |
|      1 2 4    1 3 4    1 2 3 4    1 3 4    1 1     1 2 1     1 2 1     1 3 1|
|     ------------------------------------------------------------------------|
|                    2           2        2       2                    2      |
|     - 4x x x y  - x x y  - 2x x y  - x x y  - 2x x y  - 2x x x y  - x x y  -|
|         1 2 3 1    2 3 1     1 3 1    2 3 1     1 4 1     1 2 4 1    2 4 1  |
|     ------------------------------------------------------------------------|
|                             2         2 2         2    2 2         2        |
|     2x x x y  - x x x y  - x x y  + 2x y  + 3x x y  + x y  + 3x x y  +      |
|       1 3 4 1    2 3 4 1    3 4 1     1 1     1 2 1    2 1     1 3 1        |
|     ------------------------------------------------------------------------|
|           2    2 2        2        2        2      3      3      3    3     |
|     2x x y  + x y  + x x y  + x x y  + x x y  - x y  - x y  - x y  - x y  - |
|       2 3 1    3 1    1 4 1    2 4 1    3 4 1    1 1    2 1    3 1    1 2   |
|     ------------------------------------------------------------------------|
|       2          2       2                      2      2                    |
|     2x x y  - x x y  - 2x x y  - 2x x x y  - x x y  - x x y  - x x x y  -   |
|       1 2 2    1 2 2     1 3 2     1 2 3 2    1 3 2    1 4 2    1 2 4 2     |
|     ------------------------------------------------------------------------|
|                  2                    2                                2    |
|     x x x y  + 3x y y  + 4x x y y  + x y y  + 4x x y y  + 2x x y y  + x y y |
|      1 3 4 2     1 1 2     1 2 1 2    2 1 2     1 3 1 2     2 3 1 2    3 1 2|
|     ------------------------------------------------------------------------|
|                                             2         2         2        2  |
|     + 2x x y y  + x x y y  + x x y y  - 3x y y  - 2x y y  - 2x y y  - x y y |
|         1 4 1 2    2 4 1 2    3 4 1 2     1 1 2     2 1 2     3 1 2    4 1 2|
|     ------------------------------------------------------------------------|
|        3      2 2        2        2         2        2        2    2 2      |
|     + y y  + x y  + x x y  + x x y  - 2x y y  - x y y  - x y y  + y y  -    |
|        1 2    1 2    1 2 2    1 3 2     1 1 2    2 1 2    3 1 2    1 2      |
|     ------------------------------------------------------------------------|
|      3       2          2       2                      2      2             |
|     x y  - 2x x y  - x x y  - 2x x y  - 2x x x y  - x x y  - x x y  -       |
|      1 3     1 2 3    1 2 3     1 3 3     1 2 3 3    1 3 3    1 4 3         |
|     ------------------------------------------------------------------------|
|                             2                    2                          |
|     x x x y  - x x x y  + 3x y y  + 4x x y y  + x y y  + 4x x y y  +        |
|      1 2 4 3    1 3 4 3     1 1 3     1 2 1 3    2 1 3     1 3 1 3          |
|     ------------------------------------------------------------------------|
|                  2                                             2         2  |
|     2x x y y  + x y y  + 2x x y y  + x x y y  + x x y y  - 3x y y  - 2x y y |
|       2 3 1 3    3 1 3     1 4 1 3    2 4 1 3    3 4 1 3     1 1 3     2 1 3|
|     ------------------------------------------------------------------------|
|           2        2      3       2                                         |
|     - 2x y y  - x y y  + y y  + 2x y y  + 2x x y y  + 2x x y y  + x x y y  -|
|         3 1 3    4 1 3    1 3     1 2 3     1 2 2 3     1 3 2 3    1 4 2 3  |
|     ------------------------------------------------------------------------|
|                                                      2          2        2  |
|     4x y y y  - 2x y y y  - 2x y y y  - x y y y  + 2y y y  - x y y  + y y y |
|       1 1 2 3     2 1 2 3     3 1 2 3    4 1 2 3     1 2 3    1 2 3    1 2 3|
|     ------------------------------------------------------------------------|
|        2 2        2        2         2        2        2    2 2        2    |
|     + x y  + x x y  + x x y  - 2x y y  - x y y  - x y y  + y y  - x y y  +  |
|        1 3    1 2 3    1 3 3     1 1 3    2 1 3    3 1 3    1 3    1 2 3    |
|     ------------------------------------------------------------------------|
|          2    2        2                   2                                |
|     y y y  - x x y  - x x y  - x x x y  - x x y  - x x x y  - x x x y  +    |
|      1 2 3    1 2 4    1 3 4    1 2 3 4    1 4 4    1 2 4 4    1 3 4 4      |
|     ------------------------------------------------------------------------|
|      2                                                                      |
|     x y y  + 2x x y y  + 2x x y y  + x x y y  + 2x x y y  + x x y y  +      |
|      1 1 4     1 2 1 4     1 3 1 4    2 3 1 4     1 4 1 4    2 4 1 4        |
|     ------------------------------------------------------------------------|
|                    2        2        2        2      3      2               |
|     x x y y  - 2x y y  - x y y  - x y y  - x y y  + y y  + x y y  + x x y y |
|      3 4 1 4     1 1 4    2 1 4    3 1 4    4 1 4    1 4    1 2 4    1 2 2 4|
|     ------------------------------------------------------------------------|
|                                                                             |
|     + x x y y  + x x y y  - 2x y y y  - x y y y  - x y y y  - x y y y  +    |
|        1 3 2 4    1 4 2 4     1 1 2 4    2 1 2 4    3 1 2 4    4 1 2 4      |
|     ------------------------------------------------------------------------|
|      2          2        2      2                                           |
|     y y y  - x y y  + y y y  + x y y  + x x y y  + x x y y  + x x y y  -    |
|      1 2 4    1 2 4    1 2 4    1 3 4    1 2 3 4    1 3 3 4    1 4 3 4      |
|     ------------------------------------------------------------------------|
|                                                   2                         |
|     2x y y y  - x y y y  - x y y y  - x y y y  + y y y  - x y y y  +        |
|       1 1 3 4    2 1 3 4    3 1 3 4    4 1 3 4    1 3 4    1 2 3 4          |
|     ------------------------------------------------------------------------|
|                   2        2                                                |
|     y y y y  - x y y  + y y y                                               |
|      1 2 3 4    1 3 4    1 3 4                                              |
|                                                                             |
|o2 : QQ[x ..x , y ..y ]                                                      |
|         1   5   1   5                                                       |
+-----------------------------------------------------------------------------+

Ways to use doubleSchubertPolynomial:
=====================================

  * "doubleSchubertPolynomial(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:497:0.

PipeDream -- the class representing a pipe dream
************************************************

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

A pipe dream is stored as a square array containing "+" and "/" symbols. The
"+" symbols are interpreted as crossing tiles and the "/" are interpreted as
bump tiles. Starting on the left edge, the path starting at row $i$ will end at
column $w_i$.

+------------------------------------------------------------+
|i1 : L = {{"+", "/", "/"}, {"+", "/", "/"}, {"/", "/", "/"}}|
|                                                            |
|o1 = {{+, /, /}, {+, /, /}, {/, /, /}}                      |
|                                                            |
|o1 : List                                                   |
+------------------------------------------------------------+
|i2 : D = PipeDream L                                        |
|                                                            |
|o2 = +//                                                    |
|     +//                                                    |
|     ///                                                    |
|                                                            |
|o2 : PipeDream                                              |
+------------------------------------------------------------+
|i3 : L == toList D                                          |
|                                                            |
|o3 = true                                                   |
+------------------------------------------------------------+

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

The object PipeDream, is a self initializing type (Macaulay2Doc),
with ancestor classes BasicList (Macaulay2Doc),
< Thing (Macaulay2Doc).

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:546:0.

pipeDreams -- computes the set of reduced pipe dreams corresponding to a permutation
************************************************************************************

  * Usage:
        pipeDreams w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in one line notation, finds the set of reduced pipe dreams.
Each element of the output is a square array containing "+" and "/" symbols.
The "+" symbols are interpreted as crossing tiles and the "/" are interpreted
as bump tiles. Starting on the left edge, the path starting at row $i$ will end
at column $w_i$. This function only returns reduced pipe dreams (i.e. pipe
dreams for which each pair of pipes crosses at most once).

+-----------------------+
|i1 : w = {2,1,4,3,6,5};|
+-----------------------+
|i2 : (pipeDreams w)_0  |
|                       |
|o2 = +/+/+/            |
|     //////            |
|     //////            |
|     //////            |
|     //////            |
|     //////            |
|                       |
|o2 : PipeDream         |
+-----------------------+

See also
========

  * pipeDreamsNonReduced -- computes the set of
    all pipe dreams corresponding to a permutation

Ways to use pipeDreams:
=======================

  * "pipeDreams(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:566:0.

pipeDreamsNonReduced -- computes the set of all pipe dreams corresponding to a permutation
******************************************************************************************

  * Usage:
        pipeDreams w
  * Inputs:
      * w, a list (Macaulay2Doc),

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

Given a permutation in one line notation, finds the set of  pipe dreams. Each
element of the output is a square array containing "+" and "/" symbols. The "+"
symbols are interpreted as crossing tiles and the "/" are interpreted as bump
tiles. Starting on the left edge, the path starting at row $i$ will end at
column $w_i$. This function returns all pipe dreams of w, including those
containing pairs of pipes that cross more than once.

+-------------------------------+
|i1 : w = {2,1,4,3,6,5};        |
+-------------------------------+
|i2 : (pipeDreamsNonReduced w)_1|
|                               |
|o2 = +/+/+/                    |
|     /+////                    |
|     //////                    |
|     //////                    |
|     //////                    |
|     //////                    |
|                               |
|o2 : PipeDream                 |
+-------------------------------+

See also
========

  * pipeDreams -- computes the set of reduced pipe dreams
    corresponding to a permutation

Ways to use pipeDreamsNonReduced:
=================================

  * "pipeDreamsNonReduced(List)"

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

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

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

The source of this document is in
MatrixSchubert/permutationMethodsDOC.m2:586:0.