Description
Tests whether a matrix
M between Schur-functor representations is genuinely $GL_n$-equivariant by checking that $M \circ \rho_{\mathrm{src}}(E_{i,j}) = \rho_{\mathrm{tgt}}(E_{i,j}) \circ M$ for every Chevalley generator $E_{i,j}$. Since the $E_{i,j}$ ($i \neq j$) generate the strictly upper- and strictly lower-triangular parts of $\mathfrak{gl}_n$, and our matrices commute with the diagonal automatically (entries are weight-homogeneous), commutativity with all $E_{i,j}$ is equivalent to full $GL_n$-equivariance.
Action conventions: $E_{i,j}$ acts on $V = K^n$ by $x_l \mapsto \delta_{l,j}\, x_i$ (i.e. the differential operator $x_i\, \partial/\partial x_j$ on polynomials), on a Schur module $S_\lambda V$ by replacing each entry equal to $j$ with $i$ in a tableau (summed over positions, then straightened), and on a tensor product by Leibniz.
Four overloads cover the maps in this package:
- verifyEquivariant(M, mu, boxes, P) -- $M \colon S_\mu V \to \mathrm{Sym}^d V \otimes S_\lambda V$ (or $\wedge^d V$ for skew-commutative P), the inclusion produced by pieri or pieriColumn.
- verifyEquivariant(M, (lambda, mu, nu), n) -- $M \colon S_\lambda V \to S_\nu V \otimes S_\mu V$, the inclusion produced by lrMap.
- verifyEquivariant(M, mu, boxes, P, Direction => "Dual") -- $M \colon \mathrm{Sym}^d V \otimes S_\lambda V \to S_\mu V$, the projection produced by dualPieri.
- verifyEquivariant(M, (lambda, mu, nu), n, Direction => "Dual") -- $M \colon S_\nu V \otimes S_\mu V \to S_\lambda V$, the projection produced by dualLR.
i1 : P = QQ[a,b,c];
|
i2 : M = pieri({3,2,1}, {2}, P);
6 8
o2 : Matrix P <-- P
|
i3 : verifyEquivariant(M, {3,2,1}, {2}, P)
o3 = true
|
i4 : P = QQ[a,b,c]; -- verify the dual Pieri projection
|
i5 : N = dualPieri({3,2,1}, {2}, P);
8 18
o5 : Matrix QQ <-- QQ
|
i6 : verifyEquivariant(N, {3,2,1}, {2}, P, Direction => "Dual")
o6 = true
|
i7 : Q = (lrTableaux({3,2,1}, {2,1}, {2,1}))#0; -- multiplicity-2 LR inclusion
|
i8 : M = lrMap(({3,2,1}, {2,1}, {2,1}), Q, 3);
64 8
o8 : Matrix QQ <-- QQ
|
i9 : verifyEquivariant(M, ({3,2,1}, {2,1}, {2,1}), 3)
o9 = true
|