Skip to content

Commit

Permalink
schubDecompose<-->schubertDecomposition
Browse files Browse the repository at this point in the history
Flipped roles of name and alias
  • Loading branch information
patriciajklein committed Nov 20, 2023
1 parent 9c9af14 commit 2a57e75
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 27 deletions.
4 changes: 2 additions & 2 deletions MatrixSchubert.m2
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ export{
"subwordComplex", --documented ++
"entrywiseMinRankTable", --documented ++
"entrywiseMaxRankTable", --documented ++
"schubDecompose", --documented ++
"schubertDecompose" => "schubDecompose",
"schubertDecompose", --documented ++
"schubDecompose" => "schubertDecompose",
"permSetOfASM", --documented ++
"permutationSetofASM" => "permSetOfASM",
"isIntersectionSchubIdeals", --documented ++
Expand Down
16 changes: 8 additions & 8 deletions MatrixSchubert/MatrixSchubertConstructions.m2
Original file line number Diff line number Diff line change
Expand Up @@ -553,9 +553,9 @@ monomialRank (RingElement, ZZ) := ZZ => (mon, maxIdx) -> (
--TODO: docs and tests
-------------------------------------------

schubDecompose = method()
schubertDecompose = method()

schubDecompose Ideal := List => I -> (
schubertDecompose Ideal := List => I -> (
if I == 0 then (
return {toList (1..floor sqrt numgens ring I)};
);
Expand All @@ -579,25 +579,25 @@ schubDecompose Ideal := List => I -> (
unique cycleDecomp
)

schubDecompose Matrix := List => A -> (
schubertDecompose Matrix := List => A -> (
if not(isPartialASM A) then error("The input must be a partial alternating sign matrix.");
A' := partialASMToASM A;
I := schubertDeterminantalIdeal A';
schubDecompose I
schubertDecompose I
)

-------------------------------------------
--INPUT: a partial ASM A
--OUTPUT: the smallest permutations bigger than A in Bruhat order
--TODO: docs and tests
--TODO: input validation/type checking
--NOTE: This assumes that schubDecompose is allowed to take in something other than an ASM ideal. Adjust if schubDecompose is changed.
--NOTE: This assumes that schubertDecompose is allowed to take in something other than an ASM ideal. Adjust if schubDecompose is changed.
-------------------------------------------
permSetOfASM = method()
permSetOfASM Matrix := List => A -> (
if not(isPartialASM(A)) then error("The input must be a partial alternating sign matrix.");
I := antiDiagInit A;
schubDecompose I
schubertDecompose I
)

-------------------------------------------
Expand All @@ -610,7 +610,7 @@ isIntersectionSchubIdeals = method()
isIntersectionSchubIdeals Ideal := Boolean => I -> (
isIntersection := true;
if (I == radical(I)) then {
schubDecomp := apply(schubDecompose I, i-> schubertDeterminantalIdeal(i, CoefficientRing => coefficientRing(ring I)));
schubDecomp := apply(schubertDecompose I, i-> schubertDeterminantalIdeal(i, CoefficientRing => coefficientRing(ring I)));
Q := ring schubDecomp_0;
isIntersection = sub(I,Q) == intersect apply(schubDecomp, J -> sub(J,Q));
}
Expand All @@ -629,7 +629,7 @@ isIntersectionSchubIdeals Ideal := Boolean => I -> (
isASMIdeal = method()
isASMIdeal Ideal := Boolean => (I) -> (
ASMcheck := true;
schubDecomp := schubDecompose I;
schubDecomp := schubertDecompose I;
primeComps := schubDecomp / schubertDeterminantalIdeal;
Q := ring primeComps_0;
intersectCheck := intersect(apply(primeComps, J-> sub(J,Q)));
Expand Down
20 changes: 10 additions & 10 deletions MatrixSchubert/MatrixSchubertConstructionsDOC.m2
Original file line number Diff line number Diff line change
Expand Up @@ -200,10 +200,10 @@ doc ///
antiDiagInit A
Text
Every ASM ideal can be written as the intersection of Schubert determinantal ideals.
The function @TO schubDecompose@ outputs the list of permutations that index the
The function @TO schubertDecompose@ outputs the list of permutations that index the
prime components of the ASM variety associated to A.
Example
schubDecompose I
schubertDecompose I
Text
Given a list of partial ASMs, this package also contains functions for intersecting and adding
the ASM ideals associated to the list of ASMs or partial ASMs. Every sum of ASM ideals (equivalently,
Expand Down Expand Up @@ -913,13 +913,13 @@ doc ///

doc ///
Key
schubDecompose
(schubDecompose, Ideal)
(schubDecompose, Matrix)
schubertDecompose
(schubertDecompose, Ideal)
(schubertDecompose, Matrix)
Headline
finds the decomposition of an ASM ideal into Schubert determinantal ideals
Usage
schubDecompose I
schubertDecompose I
Inputs
I:Ideal
or {\tt A} is a @TO Matrix@
Expand All @@ -932,12 +932,12 @@ doc ///
Example
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}};
J = schubertDeterminantalIdeal A;
netList schubDecompose J
netList schubertDecompose J
Text
If the ASM ideal for an ASM $A$ has not het been computed, one may also give the ASM $A$ as input.
Example
A = matrix{{0,0,0,1},{0,1,0,0},{1,-1,1,0},{0,1,0,0}};
netList schubDecompose A
netList schubertDecompose A
///

doc ///
Expand All @@ -954,7 +954,7 @@ doc ///
:List
Description
Text
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 schubDecompose.
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.
Example
A = matrix{{0,1,0,0},{0,0,1,0},{1,-1,0,1},{0,1,0,0}}
permSetOfASM A
Expand Down Expand Up @@ -1007,7 +1007,7 @@ doc ///
:Boolean
Description
Text
Every ASM ideal can be written as an intersection of Schubert determinantal ideals. Given an ideal $I$, this function first uses schubDecompose 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 schubDecompose.
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.
Example
Expand Down
14 changes: 7 additions & 7 deletions MatrixSchubert/MatrixSchubertTests.m2
Original file line number Diff line number Diff line change
Expand Up @@ -411,11 +411,11 @@ assert(entrywiseMinRankTable {I} == matrix{{1, 1, 1, 1}, {1, 2, 2, 2}, {1, 2, 3,
--entrywiseMaxRankTable--
assert(entrywiseMaxRankTable {I} == matrix{{1, 1, 1, 1}, {1, 2, 2, 2}, {1, 2, 3, 3}, {1, 2, 3, 4}})

--schubDecompose--
--schubertDecompose--
testIdealPerm = schubertDeterminantalIdeal(w);
testIdealMat = schubertDeterminantalIdeal(I);
assert(schubDecompose schubertDeterminantalIdeal w == {{1, 2, 3, 4}})
assert(schubDecompose schubertDeterminantalIdeal I == {{1, 2, 3, 4}})
assert(schubertDecompose schubertDeterminantalIdeal w == {{1, 2, 3, 4}})
assert(schubertDecompose schubertDeterminantalIdeal I == {{1, 2, 3, 4}})

--permSetOfASM--
assert(permSetOfASM I == {{1, 2, 3, 4}})
Expand Down Expand Up @@ -871,14 +871,14 @@ assert(toExternalString(F) == "{z_(1,4)*z_(2,3)*z_(2,4)*z_(3,2)*z_(3,3)*z_(3,4)*


TEST ///
--schubDecompose--
--schubertDecompose--
w = {2,1,6,3,5,4};
I = matrix{{0,0,1,0,0},{0,1,-1,1,0},{1,-1,1,0,0},{0,1,0,-1,1},{0,0,0,1,0}};
PI = matrix{{0,0,1,0,0},{0,1,-1,1,0},{1,-1,1,0,0},{0,1,0,-1,0},{0,0,0,1,0}};

assert(flatten schubDecompose schubertDeterminantalIdeal w == w)
assert(schubDecompose schubertDeterminantalIdeal I == {{3, 5, 1, 2, 4}, {5, 2, 3, 1, 4}, {4, 2, 5, 1, 3}, {3, 4, 1, 5, 2}, {4, 2, 3, 5, 1}})
assert(schubDecompose schubertDeterminantalIdeal PI == {{3, 6, 1, 2, 4, 5}, {6, 2, 3, 1, 4, 5}, {4, 2, 6, 1, 3, 5}, {3, 4, 1, 6, 2, 5}, {4, 2, 3, 6, 1, 5}})
assert(flatten schubertDecompose schubertDeterminantalIdeal w == w)
assert(schubertDecompose schubertDeterminantalIdeal I == {{3, 5, 1, 2, 4}, {5, 2, 3, 1, 4}, {4, 2, 5, 1, 3}, {3, 4, 1, 5, 2}, {4, 2, 3, 5, 1}})
assert(schubertDecompose schubertDeterminantalIdeal PI == {{3, 6, 1, 2, 4, 5}, {6, 2, 3, 1, 4, 5}, {4, 2, 6, 1, 3, 5}, {3, 4, 1, 6, 2, 5}, {4, 2, 3, 6, 1, 5}})
///

TEST ///
Expand Down

0 comments on commit 2a57e75

Please sign in to comment.