From 7669b72dc951ea3d67bfb2e6e225ab92da5c5242 Mon Sep 17 00:00:00 2001 From: patriciajklein <53194763+patriciajklein@users.noreply.github.com> Date: Tue, 31 Oct 2023 15:41:22 +0100 Subject: [PATCH] changed diagRevLexInit doc To specify which variable is worst rather than least worst, as it were --- MatrixSchubert/#permutationMethodsDOC.m2# | 623 ++++++++++++++++++ .../MatrixSchubertConstructionsDOC.m2 | 2 +- 2 files changed, 624 insertions(+), 1 deletion(-) create mode 100644 MatrixSchubert/#permutationMethodsDOC.m2# diff --git a/MatrixSchubert/#permutationMethodsDOC.m2# b/MatrixSchubert/#permutationMethodsDOC.m2# new file mode 100644 index 0000000..7aeba60 --- /dev/null +++ b/MatrixSchubert/#permutationMethodsDOC.m2# @@ -0,0 +1,623 @@ +doc /// + Key + isPerm + (isPerm, List) + Headline + whether a list is a permutation in 1-line notation + Usage + isPerm w + Inputs + w:List + Description + Text + Given a list of length $n$, checks if the entries of the permutation are the integers from 1 to $n$. + Example + w = {5,3,4,6,1,2} + isPerm(w) + + v = {4,3,2} + isPerm v +/// + +doc /// + Key + permToMatrix + (permToMatrix, List) + Headline + converts a permutation in 1-line notation into a permutation matrix + Usage + permToMatrix w + Inputs + w:List + Description + Text + Given a permutation in 1-line notation, produces the permutation matrix with 1's in location $(i,w_i)$. + Example + w = {7,2,5,8,1,3,6,4} + permToMatrix w + + v = {1,6,9,2,4,7,3,5,8} + permToMatrix v +/// + +doc /// + Key + lastDescent + (lastDescent, List) + Headline + finds the location of the last descent of a permutation + Usage + lastDescent w + Inputs + w:List + Description + Text + 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) String + algorithm "PipeDream" also available + Description + Text + Given a permutation in 1-line notation, finds its Grothenieck polynomial. Two algorithms are impliemented: DividedDifference (which is the default) and PipeDream. + + Example + w = {2,1,4,3} + time grothendieckPoly w + time grothendieckPoly (w,Algorithm=>"PipeDream") + +/// + +doc /// + Key + schubertPoly + (schubertPoly, List) + [schubertPoly, Algorithm] + Headline + computes the Schubert polynomial of a permutation + Usage + schubertPoly w + Inputs + w:List + Algorithm => String + algorithm "Transition" also available + Description + Text + Given a permutation in 1-line notation, finds its (single) Schubert polynomial. Two algorithms are impliemented: DividedDifference (which is the default) and Transition + (which makes use of the transition equations for Schubert polynomials). + + Example + w = {2,1,5,4,3} + schubertPoly w + schubertPoly (w,Algorithm=>"Transition") +/// + +doc /// + Key + doubleSchubertPoly + (doubleSchubertPoly, List) + Headline + computes the double Schubert polynomial of a permutation + Usage + doubleSchubertPoly w + Inputs + w:List + Description + Text + Given a permutation in 1-line notation, finds its double Schubert polynomial. This is implemented via the transition equations for double Schubert polynomials. + Example + w = {2,1,5,4,3} + doubleSchubertPoly w +/// +-* +doc /// + Key + dividedDifference + (dividedDifference, RingElement, ZZ) + [dividedDifference, Operator] + Operator + Headline + the divided Difference operator of a polynomial + Usage + dividedDifference(f,n) + Inputs + f:RingElement + a polynomial in $n$ variables + n:ZZ + Operator => + Description + Text + This is a stub +/// +*- + +doc /// + Key + pipeDreams + (pipeDreams, List) + Headline + computes the set of reduced pipe dreams corresponding to a permutation + Usage + pipeDreams w + Inputs + w:List + Description + Text + 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). + Example + w = {2,1,4,3,6,5}; + netList (pipeDreams w)_0 + SeeAlso + "pipeDreamsNonReduced" +/// + +doc /// + Key + pipeDreamsNonReduced + (pipeDreamsNonReduced, List) + Headline + computes the set of all pipe dreams corresponding to a permutation + Usage + pipeDreams w + Inputs + w:List + Description + Text + 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. + Example + w = {2,1,4,3,6,5}; + netList (pipeDreamsNonReduced w)_1 + SeeAlso + "pipeDreams" +/// + +doc /// + Key + netPD + (netPD, List) + Headline + printing utility for pipe dreams + Usage + netPD(P) + Inputs + P:List + Outputs + :List + Description + Text + Given a pipe dream, print it in a more readable format. + Example + P = (pipeDreams {1,4,3,2})_0 + netPD P +/// + +doc /// + Key + ASMToMonotoneTriangle + (ASMToMonotoneTriangle, Matrix) + Headline + converts an ASM to a monotone triangle + Usage + ASMToMonotoneTriangle A + Inputs + A:Matrix + Outputs + :List + Description + Text + 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,\hdots,T_n)$ corresponding to $A$ is given by $T_m = \sum_{i=1}^m A_m $, where $A_m$ denotes the $m$th row of $A$. + See [HR] for more details. + + @UL {{"[HR]: Z. Hamaker and V. Reiner, \"Weak Order and Descents for Monotone Triangles\" (see ", arXiv "1809.10571", ")."},}@ + Example + 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,1,0,-1,1,0},{0,0,0,1,0,0}} + netList ASMToMonotoneTriangle A +/// + +doc /// + Key + MonotoneTriangleToASM + (MonotoneTriangleToASM, List) + Headline + converts a monotone triangle to an ASM + Usage + MonotoneTriangleToASM M + Inputs + M:List + Outputs + :Matrix + Description + Text + Converts an monotone triangle to an alternating sign matrix (ASM) according to the bijection described in [HR]. + More precisely, suppose $T=(T_0,\hdots,T_n)$ is an ASM. + 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$. + See [HR] for more details. + + @UL {{"[HR]: Z. Hamaker and V. Reiner, \"Weak Order and Descents for Monotone Triangles\" (see ", arXiv "1809.10571", ")."},}@ + Example + M = {{}, {2}, {2, 4}, {1, 3, 6}, {1, 3, 4, 6}, {1, 2, 3, 5, 6}, {1, 2, 3, 4, 5, 6}} + MonotoneTriangleToASM M +/// diff --git a/MatrixSchubert/MatrixSchubertConstructionsDOC.m2 b/MatrixSchubert/MatrixSchubertConstructionsDOC.m2 index 6fd8293..6525a98 100644 --- a/MatrixSchubert/MatrixSchubertConstructionsDOC.m2 +++ b/MatrixSchubert/MatrixSchubertConstructionsDOC.m2 @@ -818,7 +818,7 @@ doc /// Description Text 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 reading from left-to-right and top-to-bottom (starting in the northwest corner). + 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. Example