HTML conversions sometimes display errors due to content that did not convert correctly from the source. This paper uses the following packages that are not yet supported by the HTML conversion tool. Feedback on these issues are not necessary; they are known and are being worked on.

  • failed: ytableau

Authors: achieve the best HTML results from your LaTeX submissions by selecting from this list of supported packages.

License: CC BY 4.0
arXiv:2312.07393v2 [math.AG] 13 Dec 2023

The MatrixSchubert Package for Macaulay2

Ayah Almousa School of Mathematics, University of Minnesota, Minneapolis, MN, 55455 [email protected] https://sites.google.com/view/ayah-almousa Sean Grate Department of Mathematics and Statistics, Auburn University, Auburn, AL, 36849 [email protected] https://seangrate.com/ Daoji Huang School of Mathematics, University of Minnesota, Minneapolis, MN, 55455 [email protected] https://www.daojihuang.me/ Patricia Klein Department of Mathematics, Texas A &M University, College Station, TX, 77840 [email protected] https://patriciajklein.github.io/ Adam LaClair Department of Mathematics, Purdue University, West Lafayette, IN, 47907 [email protected] https://sites.google.com/view/adamlaclair/home Yuyuan Luo Department of Mathematics, Massachusetts Institute of Technology [email protected] https://www.mit.edu/~lyuyuan/  and  Joseph McDonough School of Mathematics, University of Minnesota, Minneapolis, MN, 55455 [email protected] https://jmcdonough98.github.io/
Abstract.

We introduce the MatrixSchubert package for the computer algebra system Macaulay2. This package has tools to construct and study matrix Schubert varieties and alternating sign matrix (ASM) varieties. The package also introduces tools for quickly computing homological invariants of such varieties, finding the components of an ASM variety, and checking if a union of matrix Schubert varieties is an ASM variety.

This work was begun at a Macaulay2 mini-school and workshop funded by NSF grant DMS-2302476 and hosted by the University of Minnesota. We thank the NSF for its support and the University of Minnesota for its hospitality.
PK is partially supported by NSF grant DMS-2246962.
AL was partially supported by NSF grant DMS-2100288 and by Simons Foundation Collaboration Grant for Mathematicians #580839.

1.   Introduction

Fulton [Ful92] introduced matrix Schubert varieties in the study of Schubert varieties in the complete flag variety. In that paper, Fulton showed that matrix Schubert varieties are Cohen–Macaulay and gave an attractive description of their codimension and defining equations from a combinatorial perspective. Since that time, there has been a great deal of interest in their algebraic, geometric, and combinatorial properties (see, for example, [KM05, KMY09, Hsi13, EM16, FRS16, RRR+21, PSW22, Por23, RRW23]).

More recently, Weigandt [Wei17] introduced alternating sign matrix (ASM) varieites, which generalize matrix Schubert varieties, and gave a combinatorial description of their defining equations that generalizes Fulton’s description in the case of matrix Schubert varieties (equivalently, when the ASM happens to be a permutation matrix). There are to date no combinatorial descriptions of the codimension of an ASM variety nor a combinatorial criterion to determine if it is Cohen–Macaulay or even unmixed.

The MatrixSchubert package implements many basic functions for permutations and ASMs (such as extending a partial ASM to an ASM, checking if one permutation avoids another, and finding the descent set of a permutation) as well as more complicated ones that rely on one or several theoretical results. Several such examples are described in greater detail in Sections 5 and 7.

One goal of this package is to implement core results from the past three decades on commutative algebraic aspects of Schubert calculus (particularly those found in [Ful92, KM05, Wei17, PSW22]) for the purpose of enjoying the theory that has already been developed. Another is to facilitate inquiry into the many open questions that remain, including those surrounding resolutions and Betti numbers of matrix Schubert varieties and ASM varieties, Cohen–Macaulayness of ASM varieties, and codimension of ASM varieties.

2.   Background and some basic functions

2.1   Permutations

Let Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT denote the group of permutations of n𝑛nitalic_n letters. For a permutation wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, we call the matrix that has 1111’s in the positions (i,w(i))𝑖𝑤𝑖(i,w(i))( italic_i , italic_w ( italic_i ) ) and 00’s in all other positions the permutation matrix of w𝑤witalic_w. (As a cautionary note, some authors take the convention that the matrix described here - and used throughout the package MatrixSchubert - is the permutation matrix of w1superscript𝑤1w^{-1}italic_w start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT.)

Given wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, the Rothe diagram of w𝑤witalic_w is

D(w)={(i,j):i,j[n],w(i)>j, and w1(j)>i}.𝐷𝑤conditional-set𝑖𝑗formulae-sequence𝑖𝑗delimited-[]𝑛formulae-sequence𝑤𝑖𝑗 and superscript𝑤1𝑗𝑖D(w)=\{(i,j):i,j\in[n],w(i)>j,\text{ and }w^{-1}(j)>i\}.italic_D ( italic_w ) = { ( italic_i , italic_j ) : italic_i , italic_j ∈ [ italic_n ] , italic_w ( italic_i ) > italic_j , and italic_w start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_j ) > italic_i } .

The Coxeter length of w𝑤witalic_w satisfies (w)=|D(w)|𝑤𝐷𝑤\ell(w)=|D(w)|roman_ℓ ( italic_w ) = | italic_D ( italic_w ) |. The essential set of w𝑤witalic_w is

Ess(w)={(i,j)D(w):(i+1,j),(i,j+1)D(w)},Ess𝑤conditional-set𝑖𝑗𝐷𝑤𝑖1𝑗𝑖𝑗1𝐷𝑤\operatorname{Ess}(w)=\{(i,j)\in D(w):(i+1,j),(i,j+1)\not\in D(w)\},roman_Ess ( italic_w ) = { ( italic_i , italic_j ) ∈ italic_D ( italic_w ) : ( italic_i + 1 , italic_j ) , ( italic_i , italic_j + 1 ) ∉ italic_D ( italic_w ) } ,

i.e., the maximally southeast elements of the connected components of D(w)𝐷𝑤D(w)italic_D ( italic_w ).

i1 : needsPackage "MatrixSchubert"
i2 : w = {2,1,5,4,3};
i3 : rotheDiagram w
o3 = {(1, 1), (3, 3), (3, 4), (4, 3)}
o3 : List
i4 : essentialSet w
o4 = {(1, 1), (3, 4), (4, 3)}
o4 : List

2.2   Alternating Sign Matrices

A partial alternating sign matrix (partial ASM) is a matrix with entries in {1,0,1}101\{-1,0,1\}{ - 1 , 0 , 1 } so that partial sums taken along each row (and column) are all 00 or 1111. If the entries of each row (and column) sum to 1111 (in which case the matrix must be square), we call the partial ASM an ASM. The ASMs whose entries all lie in {0,1}01\{0,1\}{ 0 , 1 } are exactly the permutation matrices.

The rank function of the m×n𝑚𝑛m\times nitalic_m × italic_n partial ASM A=(Ai,j)𝐴subscript𝐴𝑖𝑗A=(A_{i,j})italic_A = ( italic_A start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) is defined by rkA(a,b)=i=1aj=1bAi,jsubscriptrk𝐴𝑎𝑏superscriptsubscript𝑖1𝑎superscriptsubscript𝑗1𝑏subscript𝐴𝑖𝑗\operatorname{rk}_{A}(a,b)=\sum_{i=1}^{a}\sum_{j=1}^{b}A_{i,j}roman_rk start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ( italic_a , italic_b ) = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT italic_A start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT for 1am1𝑎𝑚1\leq a\leq m1 ≤ italic_a ≤ italic_m, 1bn1𝑏𝑛1\leq b\leq n1 ≤ italic_b ≤ italic_n. (Note that if A𝐴Aitalic_A is not a permutation matrix, then rkA(a,b)subscriptrk𝐴𝑎𝑏\operatorname{rk}_{A}(a,b)roman_rk start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ( italic_a , italic_b ) may not be the rank of the submatrix of A𝐴Aitalic_A consisting of its first a𝑎aitalic_a rows and first b𝑏bitalic_b columns.)

Given a matrix M𝑀Mitalic_M, let M[i],[j]subscript𝑀delimited-[]𝑖delimited-[]𝑗M_{[i],[j]}italic_M start_POSTSUBSCRIPT [ italic_i ] , [ italic_j ] end_POSTSUBSCRIPT be the submatrix of M𝑀Mitalic_M consisting of the first i𝑖iitalic_i rows and j𝑗jitalic_j columns. Given an m×n𝑚𝑛m\times nitalic_m × italic_n partial ASM A𝐴Aitalic_A, we define the ASM variety of A𝐴Aitalic_A to be

XA={Mmat(m,n):rk(M[i],[j])rkA(i,j) for all (i,j)(m,n)}.subscript𝑋𝐴conditional-set𝑀mat𝑚𝑛rksubscript𝑀delimited-[]𝑖delimited-[]𝑗subscriptrk𝐴𝑖𝑗 for all 𝑖𝑗𝑚𝑛X_{A}=\{M\in\mbox{mat}(m,n):\operatorname{rk}(M_{[i],[j]})\leq\operatorname{rk% }_{A}(i,j)\text{ for all }(i,j)\leq(m,n)\}.italic_X start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT = { italic_M ∈ mat ( italic_m , italic_n ) : roman_rk ( italic_M start_POSTSUBSCRIPT [ italic_i ] , [ italic_j ] end_POSTSUBSCRIPT ) ≤ roman_rk start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ( italic_i , italic_j ) for all ( italic_i , italic_j ) ≤ ( italic_m , italic_n ) } .

If ASn𝐴subscript𝑆𝑛A\in S_{n}italic_A ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, we call Xwsubscript𝑋𝑤X_{w}italic_X start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT a matrix Schubert variety. For background on matrix Schubert varieties, including a geometric motivation for their definition and a description of their connection to Schubert varieties, see [Ful92, MS05].

We call the defining radical of XAsubscript𝑋𝐴X_{A}italic_X start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT in R=κ[z1,1,,zm,n]𝑅𝜅subscript𝑧11subscript𝑧𝑚𝑛R=\kappa[z_{1,1},\ldots,z_{m,n}]italic_R = italic_κ [ italic_z start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT , … , italic_z start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT ], κ𝜅\kappaitalic_κ an arbitrary field, an ASM ideal or, when ASn𝐴subscript𝑆𝑛A\in S_{n}italic_A ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, a Schubert determinantal ideal.

Proposition 2.1 ([Ful92, Proposition 3.3]).

For wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, Iwsubscript𝐼𝑤I_{w}italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT is prime, 𝑐𝑜𝑑𝑖𝑚(Iw)=(w)𝑐𝑜𝑑𝑖𝑚subscript𝐼𝑤normal-ℓ𝑤\mbox{codim}(I_{w})=\ell(w)codim ( italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ) = roman_ℓ ( italic_w ), R/Iw𝑅subscript𝐼𝑤R/I_{w}italic_R / italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT is Cohen–Macaulay.

The function schubertCodim w𝑤witalic_w computes the codimension of Iwsubscript𝐼𝑤I_{w}italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT (that is, the codimension of spec(R/Iw)𝑅subscript𝐼𝑤(R/I_{w})( italic_R / italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ) in spec(R)𝑅(R)( italic_R )) using [Ful92, Proposition 3.3] and the equality (w)=|D(w)|𝑤𝐷𝑤\ell(w)=|D(w)|roman_ℓ ( italic_w ) = | italic_D ( italic_w ) |. Returning to the example w=21543𝑤21543w=21543italic_w = 21543, one may compare the outcome below to the size of D(w)𝐷𝑤D(w)italic_D ( italic_w ), computed above.

i5 : schubertCodim w
o5 = 4

In [Ful92, Lemma 3.10], Fulton gave a generating set for the Schubert determinantal ideal Iwsubscript𝐼𝑤I_{w}italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT. Fix an m×n𝑚𝑛m\times nitalic_m × italic_n generic matrix Z=(zi,j)𝑍subscript𝑧𝑖𝑗Z=(z_{i,j})italic_Z = ( italic_z start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ). We write Ik(Z[i],[j])subscript𝐼𝑘subscript𝑍delimited-[]𝑖delimited-[]𝑗I_{k}(Z_{[i],[j]})italic_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_Z start_POSTSUBSCRIPT [ italic_i ] , [ italic_j ] end_POSTSUBSCRIPT ) for the ideal of R𝑅Ritalic_R generated by the k𝑘kitalic_k-minors in the submatrix Z[i],[j]subscript𝑍delimited-[]𝑖delimited-[]𝑗Z_{[i],[j]}italic_Z start_POSTSUBSCRIPT [ italic_i ] , [ italic_j ] end_POSTSUBSCRIPT of Z𝑍Zitalic_Z consisting of its first i𝑖iitalic_i rows and first j𝑗jitalic_j columns. Then

Iw=(i,j)Ess(w)Irkw(i,j)+1(Z[i],[j]),subscript𝐼𝑤subscript𝑖𝑗Ess𝑤subscript𝐼subscriptrk𝑤𝑖𝑗1subscript𝑍delimited-[]𝑖delimited-[]𝑗I_{w}=\sum_{(i,j)\in\operatorname{Ess}(w)}I_{\operatorname{rk}_{w}(i,j)+1}(Z_{% [i],[j]}),italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT ( italic_i , italic_j ) ∈ roman_Ess ( italic_w ) end_POSTSUBSCRIPT italic_I start_POSTSUBSCRIPT roman_rk start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ( italic_i , italic_j ) + 1 end_POSTSUBSCRIPT ( italic_Z start_POSTSUBSCRIPT [ italic_i ] , [ italic_j ] end_POSTSUBSCRIPT ) ,

and we call these generators the Fulton generators. There is a generalization of the Fulton generators for ASM ideals (see [Wei17, Lemma 5.9]).

The function schubertDeterminantalIdeal takes in either a permutation (as a list representing its one-line notation) or a partial ASM matrix and produces its ASM ideal via its Fulton generators (which typically do not form a minimal generating set).

i6 : v = {3,1,4,2};
i7 : schubertDeterminantalIdeal v
o7 = ideal (z   , z   , - z   z   + z   z  , - z   z   + z   z    , - z   z   + z   z   )
             1,1   1,2    1,2 2,1   1,1 2,2     1,2 3,1   1,1  3,2     2,2 3,1   2,1 3,2
             

A term order on R𝑅Ritalic_R so that the lead term of the determinant of any submatrix of Z𝑍Zitalic_Z is the product of terms along its antidiagonal is called an antidiagonal term order.

We now state a pivotal result, due to Knutson and Miller in the case of Schubert determinantal ideals. One can extend the result to ASM ideals using either using Frobenius splitting [Knu09] or a combinatorial argument [Wei17]. For full details on the latter, see [KW].

Theorem 2.2.

[KM05, Knu09, Wei17, KW] Fix a partial ASM A𝐴Aitalic_A. The Fulton generators of IAsubscript𝐼𝐴I_{A}italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT form a Gröbner basis under any antidiagonal term order <<<. Consequently, in<(IA)subscriptnormal-insubscript𝐼𝐴\operatorname{in}_{<}(I_{A})roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) is radical.

Rather than computing an ASM ideal and then afterwards computing a Gröbner basis, these theorems allow us to get an antidiagonal initial ideal directly from the permutation or ASM.

i8 : A = matrix{{0,0,1,0},{1,0,-1,1},{0,0,1,0},{0,1,0,0}};
i9 : antiDiagInit A
o9 = monomialIdeal (z   , z   , z   z    , z   z   , z   z   )
                     1,1   1,2   1,3  2,1  1,3  2,2  2,2  3,1

3.   Rank tables

The rank function rkA(i,j)subscriptrk𝐴𝑖𝑗\operatorname{rk}_{A}(i,j)roman_rk start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ( italic_i , italic_j ) of an m×n𝑚𝑛m\times nitalic_m × italic_n partial ASM used in the definition ASM ideal can be applied to all (i,j)(m,n)𝑖𝑗𝑚𝑛(i,j)\leq(m,n)( italic_i , italic_j ) ≤ ( italic_m , italic_n ). The entire function can be computed and recorded in an m×n𝑚𝑛m\times nitalic_m × italic_n matrix, implemented via the method rankTable.

i10 : M = matrix{{0,1,0},{1,-1,0}};
               2        3
o10 : Matrix ZZ  <--- ZZ
i11 : rankTable M
o11 = | 0 1 1 |
      | 1 1 1 |
               2        3
o11 : Matrix ZZ  <--- ZZ

Given any rank table that could be constructed from a partial ASM, the method rankTableToASM produces the unique partial ASM of the same size as the input having that rank table.

i12 : rankTableToASM matrix{{0,1,1},{0,1,1},{1,2,2}}
o12 = | 0 1 0 |
      | 0 0 0 |
      | 1 0 0 |
               3        3
o12 : Matrix ZZ  <--- ZZ

For the typical ASM, many different rank tables could be used to construct the same ASM variety XAsubscript𝑋𝐴X_{A}italic_X start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT. The method rankTableToASM expects the (unique) matrix with minimum possible entries, which is the one constructed in Section 2.2 (see [RR86, Lemma 1]). If the user has a non-minimal rank table (as a matrix of non-negative integers), the function rankTableFromMatrix transforms the non-minimal rank table into a minimal rank table.

i13 : rankTableFromMatrix matrix{{0,1,2},{0,4,1},{8,2,4}}
o13 = | 0 1 1 |
      | 0 1 1 |
      | 1 2 2 |
               3        3
o13 : Matrix ZZ  <--- ZZ

Among other uses, rank tables also facilitate efficient addition of ASM ideals. Every sum of ASM ideals is again an ASM ideal [Wei17, Section 3], and the rank table of the sum is the entrywise minimum of the rank tables of the ASMs appearing as summands. If A1,,Aksubscript𝐴1subscript𝐴𝑘A_{1},\ldots,A_{k}italic_A start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_A start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT are all m×n𝑚𝑛m\times nitalic_m × italic_n partial ASMs, the method schubertAdd computes the rank tables of the Aisubscript𝐴𝑖A_{i}italic_A start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT (via rankTable), takes entrywise minima (via entrywiseMinRankTable), and computes an ASM ideal from that rank table. Both the ASM and its rank table are saved in the cache of the newly computed ASM ideal.

i14 : N = matrix{{1,0,0},{0,0,1}}
o14 = | 1 0 0 |
      | 0 0 1 |
              2        3
o14 : Matrix ZZ  <--- ZZ
i15 : idealSum = schubertAdd{M,N}
o15 = ideal (z   , - z   z    + z    z   )
              1,1     1,2  2,1   1,1  2,2
o15 : Ideal of QQ[z   ..z   ]
                   1,1   2,2
i16 : peek idealSum.cache
o16 = CacheTable{ASM => | 0 1  0 0 |     }
                        | 1 -1 0 1 |
                        | 0 1  0 0 |
                        | 0 0  1 0 |
                 rankTable => | 0 1 1 1 |
                              | 1 1 1 2 |
                              | 1 2 2 3 |
                              | 1 2 3 4 |
i17 : getASM idealSum
o17 = | 0 1  0 0 |
      | 1 -1 0 1 |
      | 0 1  0 0 |
      | 0 0  1 0 |

               4        4
o17 : Matrix ZZ  <--- ZZ

4.   Pattern Avoidance

The MatrixSchubert package has functions to test pattern avoidance for permutations.

A permutation is called vexillary if it avoids the permutation 2143214321432143. The class of one-sided ladder determinantal ideals coincides exactly with the class of vexillary matrix Schubert varieties. The vexillary condition has a large number of equivalent definitions. We direct the reader to [KMY09, Section 3.2] for many of them. Testing if a permutation is vexillary is implemented via the isVexillary function.

i18 : w = {7,2,5,8,1,3,6,4};
i19 : isVexillary w
o19 = false
i20 : w = {1,6,9,2,4,7,3,5,8};
i21 : isVexillary w
o21 = true

A permutation w𝑤witalic_w is CDG if it avoids all eight of the following patterns:

13254,21543,214635,215364,215634,241635,315264,4261735.1325421543214635215364215634241635315264426173513254,21543,214635,215364,215634,241635,315264,4261735.13254 , 21543 , 214635 , 215364 , 215634 , 241635 , 315264 , 4261735 .

The class of CDG permutations was named in [HPW22], where a diagonal Gröbner basis was conjectured for the class (proved in [Kle]). Every CDG permutation is vexillary, and the CDG permutations form the largest named class of permutations for which a diagonal Gröbner basis of their matrix Schubert varieties is known. Testing if a permutation is CDG is implemented via the isCDG function.

i22 : w = {5,7,2,1,6,4,3};
i23 : isCDG w
o23 = false
i24 : w = {1,3,5,7,2,4,6};
i25 : isCDG w
o25 = true

We say that w𝑤witalic_w is Cartwright–Sturmfels if it avoids all of the following twelve patterns:

12543,13254,13524,13542,21543,125364,125634,215364,215634,315264,315624,315642.125431325413524135422154312536412563421536421563431526431562431564212543,13254,13524,13542,21543,125364,125634,215364,215634,315264,315624,315642.12543 , 13254 , 13524 , 13542 , 21543 , 125364 , 125634 , 215364 , 215634 , 315264 , 315624 , 315642 .

For background on the Cartwright–Sturmfels property of ideals in general, see [CDG22]. For a proof that the Cartwright-Sturmfels property is characterized by the given pattern avoidance condition, that Cartwright-Sturmfels Schubert determinantal ideals have an universal Gröbner basis, and that any initial ideal of a Cartwright-Sturmfels Schubert determinantal ideal is Cohen–Macaulay, see [CDG22, Theorem 4.6]. Every Cartwright–Sturmfels Schubert determinantal ideal is CDG.

Testing if a permutation is Cartwright-Sturmfels is implemented via the isCartwrightSturmfels functions.

i26 : w = {3,1,2,6,5,4};
i27 : isCartwrightSturmfels w;
o27 = false
i28 : w = {6,3,5,2,1,4};
i29 : isCartwrightSturmfels w
o29 = true

More generally, avoidsAllPatterns inputs a permutation and a list of patterns to avoid, and determines if the permutation avoids all of the patterns. This allows users to test conjectures related to pattern avoidance in a much more general capacity.

5.   Algorithms for Castelnuovo–Mumford regularity

Castelnuovo–Mumford regularity is a fundamental invariant in commutative algebra and algebraic geometry that in a rough sense gives a measure of the complexity of a module or sheaf.

In this package we implement (as 𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{schubertRegularity}typewriter_schubertRegularity) a purely combinatorial formula developed by Peckenik, Speyer, and Weigandt [PSW22, Theorem 1.2] for computing the Castelnuovo–Mumford regularity of S/Iw𝑆subscript𝐼𝑤S/I_{w}italic_S / italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT for arbitrary wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. We also extend the functionality of 𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{schubertRegularity}typewriter_schubertRegularity so that it can compute the Castelnuovo–Mumford regularity of the coordinate ring associated to a partial ASM by passing to the antidiagonal initial ideal, a valid strategy in light of an important theorem of Conca and Varbaro [CV20] together with Theorem 2.2. See Subsection 5.2 for a fuller explanation.

5.1   Matrix Schubert varieties

The theoretical foundation for the 𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{schubertRegularity}typewriter_schubertRegularity function is a result of Pechenik, Speyer, and Weigandt:

Theorem 5.1 ([PSW22, Theorem 1.2]).

For wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT,

reg(S/Iw)=raj(w)|D(w)|reg𝑆subscript𝐼𝑤raj𝑤𝐷𝑤\displaystyle\operatorname{reg}(S/I_{w})=\operatorname{raj}(w)-|D(w)|roman_reg ( italic_S / italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ) = roman_raj ( italic_w ) - | italic_D ( italic_w ) |

where raj(w)normal-raj𝑤\operatorname{raj}(w)roman_raj ( italic_w ) is the Rajchgot index of a permutation.

We refer the reader to [PSW22] for the definition of the Rajchgot index.

The function 𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{schubertRegularity}typewriter_schubertRegularity takes either a permutation in one-line notation (that is, as a list) or a partial ASM and returns the Castelnuovo–Mumford regularity of the associated coordinate ring. The computation of the Rajchot index of a permutation invovles determining longest subsequences of the permutation subject to certain conditions. We utilize memoization in determining these longest subsequences which leads to drastic speed improvements over Macaulay2’s built-in command 𝚛𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚛𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{regularity}typewriter_regularity. (By that, we mean that there are examples of the type we would be inclined to compute in the course of research which run reliably faster, not that we have performed any type of formal efficiency analysis. We include a couple of illustrating examples here.) The following example run on a computer with an AMD Ryzen 5 5600U processor demonstrates the extent of this speed-up.

i30 : w = {1,2,3,9,8,4,5,6,7};
i31 : I = antiDiagInit(w, CoefficientRing=>ZZ/3001);
                        ZZ
o31 : MonomialIdeal of ----[z   ..z   ]
                       3001  1,1   9,9
i32 : M = comodule I;
i33 : time regularity M
     -- used 1.41504 seconds
o33 = 6
i34 : time schubertRegularity w
     -- used 0.000181139 seconds
o34 = 6
i35 : time schubertRegularity random toList (1 .. 100)
     -- used 4.03299 seconds
o35 = 1925

5.2   ASM Varieties

The function 𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{schubertRegularity}typewriter_schubertRegularity also accepts as input a partial ASM. First, 𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚜𝚌𝚑𝚞𝚋𝚎𝚛𝚝𝚁𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{schubertRegularity}typewriter_schubertRegularity checks whether the matrix is a permutation matrix; in which case the Castelnuovo–Mumford regularity is computed via Theorem 5.1. Otherwise, the antidiagonal initial ideal of the ASM is computed, and the built-in Macaulay2 command 𝚛𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢𝚛𝚎𝚐𝚞𝚕𝚊𝚛𝚒𝚝𝚢\mathtt{regularity}typewriter_regularity is used. The Castelnuovo–Mumford regularity of the quotient by the initial ideal will coincide with the Castelnuovo–Mumford regularity of the coordinate ring corresponding to the ASM by [CV20, Corollary 2.7] since the antidiagonal initial ideal is squarefree [KM05, Wei17].

i36 : A = matrix{{0,0,1,0},{0,1,-1,1},{1,-1,1,0},{0,1,0,0}};
              4        4
o36 : Matrix ZZ  <--- ZZ
i37 : time regularity comodule schubertDeterminantalIdeal A
     -- used 0.00968312 seconds
o37 = 1
i38 : time schubertRegularity A
     -- used 0.0100184 seconds

o38 = 1
i39 : B = matrix{{1,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,0,0,0,1,0,0},{0,0,1,0,0,-1,1,0},{0,0,0,1,-1,1,0,0},
         {0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,1}};
              8        8
o39 : Matrix ZZ  <--- ZZ
i40 : time regularity comodule schubertDeterminantalIdeal B
     -- used 1.01169 seconds
o40 = 8
i41 : time schubertRegularity B
     -- used 0.08511 seconds
o41 = 8

We are a little bit disappointed that, as we see above with the ASM A𝐴Aitalic_A, the command schubertRegularity is sometimes slower than the already-available regularity command applied to an ASM ideal. However, as we see above with the ASM B𝐵Bitalic_B, schubertRegularity can be a meaningful improvement over regularity in other cases.111We expect that the issue is that we are for some reason describing the sets of rows and columns whose minors define the ASM ideal (or its antidiagonal initial ideal) less efficiently than the minors command does. This explanation is compatible with our experience that antiDiagInit is typically slower than schubertDeterminantalIdeal for dominant permutations, i.e., permutations indexing Schubert determinantal ideals that are already monomial ideals. As a rule of thumb, we recommend schubertRegularity for ASM ideals with more generators of higher degrees and regularity for ASM ideals with fewer generators or generators in lower degrees.

6.   Schubert and Grothendieck polynomials

The MatrixSchubert package provides functions to compute Schubert, double Schubert, and Grothendieck polynomials for permutations. We give a brief overview of how these families of polynomials are constructed, and refer the reader to [KM05] for a more detailed (and somewhat more general) treatment. Let 𝐱={x1,,xn}𝐱subscript𝑥1subscript𝑥𝑛\mathbf{x}=\{x_{1},\ldots,x_{n}\}bold_x = { italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT }, and let S𝑆Sitalic_S denote the polynomial ring in 𝐱𝐱\mathbf{x}bold_x over the field κ𝜅\kappaitalic_κ. Let isubscript𝑖\partial_{i}∂ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT be the i𝑖iitalic_i’th divided difference operator, which sends fS𝑓𝑆f\in Sitalic_f ∈ italic_S to

i(f)=f(x1,,xn)f(x1,..,xi+1,xi,..,xn)xixi+1.\partial_{i}(f)=\frac{f(x_{1},\ldots,x_{n})-f(x_{1},..,x_{i+1},x_{i},..,x_{n})% }{x_{i}-x_{i+1}}.∂ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_f ) = divide start_ARG italic_f ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) - italic_f ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , . . , italic_x start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , . . , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_ARG start_ARG italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT end_ARG .

It is not obvious that i(f)Ssubscript𝑖𝑓𝑆\partial_{i}(f)\in S∂ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_f ) ∈ italic_S, but it is true. Let w0=nn1321subscript𝑤0𝑛𝑛1321w_{0}=nn-1\cdots 321italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_n italic_n - 1 ⋯ 321, i.e., the longest word in Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. For wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, the Schubert polynomial 𝔖wsubscript𝔖𝑤\mathfrak{S}_{w}fraktur_S start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT is defined recursively as follows:

𝔖w0(𝐱)=i=1nxini[𝐱]and𝔖wsi(𝐱)=i𝔖w(𝐱)formulae-sequencesubscript𝔖subscript𝑤0𝐱superscriptsubscriptproduct𝑖1𝑛superscriptsubscript𝑥𝑖𝑛𝑖delimited-[]𝐱andsubscript𝔖𝑤subscript𝑠𝑖𝐱subscript𝑖subscript𝔖𝑤𝐱\mathfrak{S}_{w_{0}}(\mathbf{x})=\prod_{i=1}^{n}x_{i}^{n-i}\in\mathbb{Z}[% \mathbf{x}]\qquad\text{and}\qquad\mathfrak{S}_{ws_{i}}(\mathbf{x})=\partial_{i% }\mathfrak{S}_{w}(\mathbf{x})fraktur_S start_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_x ) = ∏ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - italic_i end_POSTSUPERSCRIPT ∈ blackboard_Z [ bold_x ] and fraktur_S start_POSTSUBSCRIPT italic_w italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_x ) = ∂ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT fraktur_S start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ( bold_x )

where sisubscript𝑠𝑖s_{i}italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is a right descent of w𝑤witalic_w (i.e., w(i)>w(i+1)𝑤𝑖𝑤𝑖1w(i)>w(i+1)italic_w ( italic_i ) > italic_w ( italic_i + 1 )). The double Schubert polynomial 𝔖w(𝐱,𝐲)subscript𝔖𝑤𝐱𝐲\mathfrak{S}_{w}(\mathbf{x},\mathbf{y})fraktur_S start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ( bold_x , bold_y ) is defined using the same recursion, but with initial condition 𝔖w0(𝐱,𝐲)=i+jn(xiyj)[𝐲][𝐱]subscript𝔖subscript𝑤0𝐱𝐲subscriptproduct𝑖𝑗𝑛subscript𝑥𝑖subscript𝑦𝑗delimited-[]𝐲delimited-[]𝐱\mathfrak{S}_{w_{0}}(\mathbf{x},\mathbf{y})=\prod_{i+j\leq n}(x_{i}-y_{j})\in% \mathbb{Z}[\mathbf{y}][\mathbf{x}]fraktur_S start_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_x , bold_y ) = ∏ start_POSTSUBSCRIPT italic_i + italic_j ≤ italic_n end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) ∈ blackboard_Z [ bold_y ] [ bold_x ]. Finally, the Grothendieck polynomial 𝒢w(𝐱)subscript𝒢𝑤𝐱\mathcal{G}_{w}(\mathbf{x})caligraphic_G start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ( bold_x ) is defined by the recursion

𝒢w0(𝐱)=i=1nxiniand𝒢wsi(𝐱)=i(𝒢w(𝐱)xi+1𝒢w(𝐱))formulae-sequencesubscript𝒢subscript𝑤0𝐱superscriptsubscriptproduct𝑖1𝑛superscriptsubscript𝑥𝑖𝑛𝑖andsubscript𝒢𝑤subscript𝑠𝑖𝐱subscript𝑖subscript𝒢𝑤𝐱subscript𝑥𝑖1subscript𝒢𝑤𝐱\mathcal{G}_{w_{0}}(\mathbf{x})=\prod_{i=1}^{n}x_{i}^{n-i}\qquad\text{and}% \qquad\mathcal{G}_{ws_{i}}(\mathbf{x})=\partial_{i}(\mathcal{G}_{w}(\mathbf{x}% )-x_{i+1}\mathcal{G}_{w}(\mathbf{x}))caligraphic_G start_POSTSUBSCRIPT italic_w start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_x ) = ∏ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - italic_i end_POSTSUPERSCRIPT and caligraphic_G start_POSTSUBSCRIPT italic_w italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_x ) = ∂ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( caligraphic_G start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ( bold_x ) - italic_x start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT caligraphic_G start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ( bold_x ) )

where sisubscript𝑠𝑖s_{i}italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is a right descent of w𝑤witalic_w. Computing these polynomials for a permutation wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT given in one-line notation is implemented via the schubertPolynomial, doubleSchubertPolynomialnomial, and grothendieckPolynomial functions respectively.

i42 : w = {2,1,4,3};
i43 : schubertPolynomial w
       2
o43 = x  + x x  + x x
       1    1 2    1 3
o43 : QQ[x ..x ]
          1   4
i44 : doubleSchubertPolynomialnomial w
       2                                        2
o44 = x  + x x  + x x  - 2x y  - x y  - x y  + y  - x y  + y y  - x y  + y y
       1    1 2    1 3     1 1    2 1    3 1    1    1 2    1 2    1 3    1 3
o44 : QQ[x ..x , y ..y ]
          1   4   1   4
i45 : grothendieckPolynomial w
       2        2      2               2
o45 = 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
o45 : QQ[x ..x ]
          1   4

The default options for computing Schubert, double Schubert, and Grothendieck polynomials use the definitions by divided difference operators, where we deterministically pick one reduced word for each w𝑤witalic_w to apply the divided difference operators. For Schubert polynomials, we also provide the option Algorithm=>"Transition" that computes Schubert polynomials via transition equations; see, e.g., [W21]. For Grothendieck polynomials, we provide three different implementations: "DividedDifference", "Degree", and "PipeDream". The "Degree" option computes the twisted K𝐾Kitalic_K-polynomials of the matrix Schubert variety and should not be used for any practical implementation. The "PipeDream" option computes Grothendieck polynomials by the pipe dream formula. We provide these different options for any users who are interested in comparing efficiency of the different algorithms.

7.   Studying ASM varieties via initial ideals

Rank functions induce a lattice structure on the set of n×n𝑛𝑛n\times nitalic_n × italic_n ASMs defined by AB𝐴𝐵A\geq Bitalic_A ≥ italic_B if and only if rkA(i,j)rkB(i,j)subscriptrk𝐴𝑖𝑗subscriptrk𝐵𝑖𝑗\operatorname{rk}_{A}(i,j)\leq\operatorname{rk}_{B}(i,j)roman_rk start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ( italic_i , italic_j ) ≤ roman_rk start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ( italic_i , italic_j ) for all i,j[n]𝑖𝑗delimited-[]𝑛i,j\in[n]italic_i , italic_j ∈ [ italic_n ]. The restriction of this partial order to Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT recovers (strong) Bruhat order on Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. Define

perm(A)={wSn:wA, and, if wvA for some vSn, then w=v}.perm𝐴conditional-set𝑤subscript𝑆𝑛formulae-sequence𝑤𝐴 and, if 𝑤𝑣𝐴 for some vSn, then 𝑤𝑣\text{perm}(A)=\{w\in S_{n}:w\geq A,\text{ and, if }w\geq v\geq A\mbox{ for % some $v\in S_{n}$, then }w=v\}.perm ( italic_A ) = { italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT : italic_w ≥ italic_A , and, if italic_w ≥ italic_v ≥ italic_A for some italic_v ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , then italic_w = italic_v } .
Proposition 7.1.

[Wei17, Proposition 5.4],[KW, Lemma 2.6] If A𝐴Aitalic_A is an ASM and <<< is an antidiagonal term order, then

IA=w𝑝𝑒𝑟𝑚(A)Iw and in<(IA)=w𝑝𝑒𝑟𝑚(A)in<(Iw).subscript𝐼𝐴subscript𝑤𝑝𝑒𝑟𝑚𝐴subscript𝐼𝑤 and subscriptinsubscript𝐼𝐴subscript𝑤𝑝𝑒𝑟𝑚𝐴subscriptinsubscript𝐼𝑤I_{A}=\bigcap_{w\in\text{perm}(A)}I_{w}\mbox{ \hskip 56.9055pt and \hskip 56.9% 055pt}\operatorname{in}_{<}(I_{A})=\bigcap_{w\in\text{perm}(A)}\operatorname{% in}_{<}(I_{w}).italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT = ⋂ start_POSTSUBSCRIPT italic_w ∈ perm ( italic_A ) end_POSTSUBSCRIPT italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT and roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) = ⋂ start_POSTSUBSCRIPT italic_w ∈ perm ( italic_A ) end_POSTSUBSCRIPT roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ) .

By combining Knutson and Miller’s [KM05, Theorem B] with Bergeron and Billey’s [BB93, Theorem 3.7], one may construct a reduced word for wSn𝑤subscript𝑆𝑛w\in S_{n}italic_w ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT from the indices of the variables generating any minimal prime of in<(Iw)subscriptinsubscript𝐼𝑤\operatorname{in}_{<}(I_{w})roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT ).

It is of independent combinatorial interest to understand the lattice of ASMs. The function permSetOfASM takes in an ASM A𝐴Aitalic_A and computes perm(A)perm𝐴\text{perm}(A)perm ( italic_A ) by decomposing the antidiagonal initial ideal of IAsubscript𝐼𝐴I_{A}italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT and reading a reduced word from each of the primes appearing in the decomposition. The set of distinct permutations encountered comprises perm(A)perm𝐴\text{perm}(A)perm ( italic_A ) and therefore also indexes the components in a prime decomposition of IAsubscript𝐼𝐴I_{A}italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT.

i46 : A = matrix{{0,1,0},{1,-1,1},{0,1,0}};
i47 : permSetOfASM A
o47 = {{3, 1, 2}, {2, 3, 1}}

The function schubertDecompose takes in an ideal, computes its initial ideal by the default term order in Macaulay2 (which is antidiagonal) and, from the minimal primes of that ideal, finds and returns the set of permutations with at least one reduced word given by the set of generators of one of those minimal primes. The primary use of this function is on an ideal the user knows to be an ASM ideal IAsubscript𝐼𝐴I_{A}italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT (such as one arising directly from the matrix A𝐴Aitalic_A or as a sum of other ASM ideals), in which case the output will be perm(A)perm𝐴\text{perm}(A)perm ( italic_A ).

i48 : schubertDecompose schubertDeterminantalIdeal A
o48 = {{3, 1, 2}, {2, 3, 1}}

If the user has an ideal and is unsure if that ideal is an ASM ideal, they may use the function isASMIdeal, which takes in an ideal I𝐼Iitalic_I and first applies schubertDecompose. It then takes entrywise maxima (using entrywiseMaxRankTable) among the rank tables of the permutations found from schubertDecompose. Using rankTableToASM, it constructs the partial ASM A𝐴Aitalic_A whose ASM ideal is determined by that rank table. Finally, isASMIdeal returns a boolean indicating if IAsubscript𝐼𝐴I_{A}italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT is equal to the input ideal. In case it is, isASMIdeal caches the partial ASM A𝐴Aitalic_A so that I=IA𝐼subscript𝐼𝐴I=I_{A}italic_I = italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT. The ASM A𝐴Aitalic_A may then be retrieved via getASM.

i49 : I1 = schubertDeterminantalIdeal {3,4,1,2};
o49 : Ideal of QQ[z   ..z   ]
                   1,1   4,4
i50 : I2 = sub(schubertDeterminantalIdeal {3,2,4,1},ring I1);
o50 : Ideal of QQ[z   ..z   ]
                   1,1   4,4
i51 : I = intersect(I1,I2);
o51 : Ideal of QQ[z   ..z   ]
                   1,1   4,4
i52 : isASMIdeal I
o52 = true
i53 : A = getASM I
o53 = | 0 0  1 0 |
      | 0 1  0 0 |
      | 1 -1 0 1 |
      | 0 1  0 0 |

The antidiagonal initial ideal of an ASM ideal can be used for additional computations in light of recent and impactful results of Conca and Varbaro [CV20]. Fix a partial ASM A𝐴Aitalic_A and antidiagonal term order <<<. A result from [CV20] closely related to that discussed in the section on Castelnuovo–Mumford regulartiy states that R/IA𝑅subscript𝐼𝐴R/I_{A}italic_R / italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT is Cohen–Macaulay if and only if R/in<(IA)𝑅subscriptinsubscript𝐼𝐴R/\operatorname{in}_{<}(I_{A})italic_R / roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) is Cohen–Macaulay (which again uses that in<(IA)subscriptinsubscript𝐼𝐴\operatorname{in}_{<}(I_{A})roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) is radical). The function isSchubertCM assesses Cohen–Macaulayness of R/IA𝑅subscript𝐼𝐴R/I_{A}italic_R / italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT by checking pdim(in<(IA))==codim(in<(IA))\operatorname{pdim}(\operatorname{in}_{<}(I_{A}))==\operatorname{codim}(% \operatorname{in}_{<}(I_{A}))roman_pdim ( roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) ) = = roman_codim ( roman_in start_POSTSUBSCRIPT < end_POSTSUBSCRIPT ( italic_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ) ).

We continue from the example above and then consider a familiar non-Cohen–Macaulay variety.

i54 : isSchubertCM A
o54 = true
i55 : B = matrix{{0,0,1,0,0},{0,0,0,1,0},{1,0,-1,0,1},{0,1,0,0,0},{0,0,1,0,0}};
                 5        5
o55 : Matrix ZZ  <--- ZZ
i56 : trim schubertDeterminantalIdeal B
o56 = ideal (z   , z   , z   , z   , z   z   , z   z   , z   z   , z   z   )
              2,2   2,1   1,2   1,1   2,3 3,2   1,3 3,2   2,3 3,1   1,3 3,1
i57 : isSchubertCM B
o57 = false

The Stanley–Reisner complexes of antidiagonal initial ideals of ASM ideals are of independent interest. Knutson and Miller [KM05] introduced subword complexes, of which Stanley–Reisner complexes of antidiagonal initial ideals of Schubert determinantal ideals are the motivating example. Given a permutation w𝑤witalic_w, the method subwordComplex produces the Stanley–Reisner complex of the antidiagonal initial ideal of Iwsubscript𝐼𝑤I_{w}italic_I start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT.

i58 : w = {2,1,4,3};

i59 : netList facets subwordComplex w

       +--------------------------------------------------------+
o59 =  |z   z   z   z   z   z   z   z   z   z   z   z   z   z   |
       | 1,2 1,4 2,1 2,2 2,3 2,4 3,1 3,2 3,3 3,4 4,1 4,2 4,3 4,4|
       +--------------------------------------------------------+
       |z   z   z   z   z   z   z   z   z   z   z   z   z   z   |
       | 1,2 1,3 1,4 2,1 2,3 2,4 3,1 3,2 3,3 3,4 4,1 4,2 4,3 4,4|
       +--------------------------------------------------------+
       |z   z   z   z   z   z   z   z   z   z   z   z   z   z   |
       | 1,2 1,3 1,4 2,1 2,2 2,3 2,4 3,2 3,3 3,4 4,1 4,2 4,3 4,4|
       +--------------------------------------------------------+
i60 : v = {2,1,6,3,5,4};
i61 : # facets subwordComplex v
o61 = 35

Moreover, Knutson and Miller [KM05] showed that the prime components of the antidiagonal initial ideal of Schubert determinantal ideals are indexed by combinatorial objects called pipe dreams (by [KM05], now adopted as standard terminology in the literature) or RC-graphs (by [BB93], to which we refer the reader for background).

In particular, to read off an associated prime of the antidiagonal initial ideal from a pipe dream, one simply needs to read off the locations of the +++ tiles in the pipe dream. This package provides the class PipeDream to display and manipulate pipe dreams.


i62 : u = {2,1,4,3,6,5};

i63 : (pipeDreams u)_0

o63 = +/+/+/
      //////
      //////
      //////
      //////
      //////

o63 : PipeDream

i64 : (decompose antiDiagInit u)_0

o64 = monomialIdeal (z   , z   , z   )
                     1,1   1,3   1,5

o64 : MonomialIdeal of QQ[z   ..z   ]
                          1,1   6,6

The generator z1,1subscript𝑧11z_{1,1}italic_z start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT corresponds to the +++ tile in location (1,1)11(1,1)( 1 , 1 ) of the given pipe dream, the generator z1,3subscript𝑧13z_{1,3}italic_z start_POSTSUBSCRIPT 1 , 3 end_POSTSUBSCRIPT to the +++ tile in location (1,3)13(1,3)( 1 , 3 ), and the generator z1,5subscript𝑧15z_{1,5}italic_z start_POSTSUBSCRIPT 1 , 5 end_POSTSUBSCRIPT to the +++ tile in location (1,5)15(1,5)( 1 , 5 ).

To compare the Macaulay2 drawing of a pipe dream with those in [KM05] and subsequent literature, + is interpreted as a cross tile, and / is interpreted as an elbow tile.

Refer to caption
Figure 1. One pipe dream for w=214365𝑤214365w=214365italic_w = 214365. + is interpreted as a cross tile, and / is interpreted as an elbow tile, and entries below the main antidiagonal are ignored, as is standard.

8.   Some diagonal term orders

Knutson and Miller’s [KM05] result that every antidiagonal term order determines the same initial ideal of a given Schubert determinantal ideal has been used heavily throughout the MatrixSchubert package. By contrast, different diagonal term orders can yield different initial ideals. The various diagonal initial ideals of Schubert determinantal ideals are a topic of active research. Given a permutation in one-line notation or a partial ASM, the functions diagLexInitSE, diagLexInitNW, diagRevLexInit will each produce an initial ideal under a distinct diagonal term order.

Precisely, diagLexInitSE is the lexicographic order for which zn,nsubscript𝑧𝑛𝑛z_{n,n}italic_z start_POSTSUBSCRIPT italic_n , italic_n end_POSTSUBSCRIPT is largest and the remaining variables are ordered by reading left across the bottom row, then right to left across row n1𝑛1n-1italic_n - 1, and so on until arriving finally at z1,1subscript𝑧11z_{1,1}italic_z start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT, the smallest variable. diagLexInitNW is the lexicographic order for which z1,1subscript𝑧11z_{1,1}italic_z start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT is largest and the remaining variables are ordered by reading right across the top row, then left to right across row 2222, and so on until arriving finally at zn,nsubscript𝑧𝑛𝑛z_{n,n}italic_z start_POSTSUBSCRIPT italic_n , italic_n end_POSTSUBSCRIPT, the smallest variable. And diagRevLexInit is the reverse lexicographic order where zn,1subscript𝑧𝑛1z_{n,1}italic_z start_POSTSUBSCRIPT italic_n , 1 end_POSTSUBSCRIPT is the smallest (or most penalized) variable followed by the variables encountered reading left to right along the bottom row, then left to right along row n1𝑛1n-1italic_n - 1 and so on until arriving at z1,nsubscript𝑧1𝑛z_{1,n}italic_z start_POSTSUBSCRIPT 1 , italic_n end_POSTSUBSCRIPT.

The example w=214365𝑤214365w=214365italic_w = 214365, taken from [KW], is the smallest example of which the authors are aware of a permutation with different initial ideals for different diagonal term orders. The authors are unaware of any examples for which diagLexInitSE and diagRevLexInit produce different initial ideals. In the example below, the Macaulay2 output recording the ambient rings of the initial ideals has been omitted for brevity.

i65 : w = {2,1,4,3,6,5}
o65 = {2, 1, 4, 3, 6, 5}
o65 : List
i66 : diagLexInitSE w
                                                                 2
o66 = 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
                                        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
i67 : diagLexInitNW w

o67 = 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
i68 : diagRevLexInit w
                                                                 2
o68 = 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
                                        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

9.   Available Examples of ASMs

For the convenience of the user, we provide a complete list of ASMs up to ASM(7). It can be accessed as ASMFullList n for any 1n71𝑛71\leq n\leq 71 ≤ italic_n ≤ 7, which returns a list of objects of type Matrix. To access a list of m𝑚mitalic_m random examples of ASMs of size n𝑛nitalic_n, ASMRandomList(n,m) returns a random length-m𝑚mitalic_m list of ASMs which are size n𝑛nitalic_n, presented as Matrix objects.

i69 : ASMRandomList(5,4)

o69 = {| 1 0 0 0  0 |, | 0 0 0 1  0 |, | 0 0  0 1  0 |, | 0 0 0  0 1 |}
       | 0 0 1 0  0 |  | 1 0 0 -1 1 |  | 0 1  0 -1 1 |  | 0 0 1  0 0 |
       | 0 0 0 1  0 |  | 0 1 0 0  0 |  | 1 -1 1 0  0 |  | 1 0 0  0 0 |
       | 0 1 0 -1 1 |  | 0 0 0 1  0 |  | 0 0  0 1  0 |  | 0 1 -1 1 0 |
       | 0 0 0 1  0 |  | 0 0 1 0  0 |  | 0 1  0 0  0 |  | 0 0 1  0 0 |

Additionally, for n6𝑛6n\leq 6italic_n ≤ 6, lists of non-permutation ASMs that define an arithmetically Cohen–Macaulay variety, ASMs that do not define an arithmetically Cohen–Macaulay variety, and antidiagonal initial ideals of ASMs are provided, and can be accessed with cohenMacaulayASMsList n, nonCohenMacaulayASMsList n, and initialIdealsList n, respectively.

It is well known that there are 429429429429 5×5555\times 55 × 5 ASMs, of which 5!55!5 ! are permutation matrices. Each non-permutation 5×5555\times 55 × 5 ASM is on exactly one of the lists cohenMacaulayASMsList 5 or nonCohenMacaulayASMsList 5.

i70 : CM = cohenMacaulayASMsList 5;
i71 : NCM =  nonCohenMacaulayASMsList 5;
i72 : #CM+#NCM+5! == 429
o72 = true
i73 : #ASMFullList 5
o73 = 429

10.   Acknowledgements

The authors thank Shiliang Gao, Pooja Joshi, and Antsa Tantely Fandresena Rakotondrafara, contributors to the MatrixSchubert package who provided code, improved existing code, or enhanced documentation. They also thank Anton Leykin, Mike Stillman and Gregory Smith, who answered countless questions both during the Macaulay2 workshop, where this package was begun, and after. They thank Mahrud Sayrafi for his helpful code review and for implementing the PipeDream class. The authors thank Anna Weigandt and Jonathan Montaño for helpful conversations. Finally, the authors would also like to thank Christine Berkesch, Michael Perlman, and Mahrud Sayrafi for co-organizing the workshop with the first author where this project began.

References