# schurResolution -- Compute an approximate'' equivariant resolution of a module.

## Synopsis

• Usage:
resol = schurResolution(rep,M,lS)
resol = schurResolution(rep,M)
• Inputs:
• rep, , element of a SchurRing
• M, a list, list of representations, corresponding to the homogeneous components of a module M.
• lS, a list, list of representations, corresponding to the homogeneous components of a polynomial ring S.
• Optional inputs:
• DegreeLimit => ..., default value 0, Specifies the maximal degree of syzygies to be computed
• SyzygyLimit => ..., default value 0, Specifies the number of syzygy modules to be computed
• Outputs:

## Description

Given a representation rep of a (product of) general linear or symmetric group(s) G, we consider the symmetric algebra S = Sym(rep) and an S-module M which is also a G-module in such a way that the S-module structure on M respects the G-action. More generally, S can be any graded ring, of which one inputs only finitely many homogeneous components as a list lS of characters of G. The main reason why we allow this generality is because most of the time it is computationally expensive to calculate the symmetric powers of the representation rep, so we give the user the option to compute these symmetric powers by different methods and use the results as input for the schurResolution routine.

We are interested in computing an equivariant resolution of M. This depends on both the G- and S-module structure of M in general, but in many examples that occur in practice, it turns out that the differentials in the resolution have maximal rank among all G-module homomorphisms between the free modules in the resolution. We will therefore assume that this is the case for the module M that we are trying to resolve, and thus disregard its S-module structure.

More precisely, the assumptions that we make about M are as follows: M is a graded S-module, with M_i = 0 for i<0, where the grading on S is standard, given by setting the degrees of the elements of rep equal to 1. Since we assumed that the G-structure of M determines the syzygies, all the relevant information is concentrated in finitely many homogeneous components of M (namely up to reg(M)+pd(M), the sum of the regularity and the projective dimension of M). We will thus assume that M is given as a list of G-representations, corresponding to (a subset of) the relevant homogeneous components. The function schurResolution takes as inputs the representation rep, the module M, and as optional arguments a DegreeLimit d, and a SyzygyLimit c. The ring S itself can occur as input data, being described as a list of G-representations, just like M. The routine outputs the generators of degree at most d of the first c+1 syzygy modules (from 0 to c). They are listed as a sequence of pairs, consisting of the degree of the generators of the syzygy modules together with the characters of the G-representations they correspond to. If the syzygy bound c is not given, then all syzygy modules are computed. If the degree bound d is not given, then it is assumed to be equal to the largest degree among the homogeneous components of M in the input, i.e. one less than the length of the List M.

The example below computes the resolution of the quadratic Veronese surface in P^5.

 i1 : S = schurRing(QQ,s,3) o1 = S o1 : SchurRing i2 : rep = s_{2} o2 = s 2 o2 : S i3 : M = {1_S,s_{2},s_{4},s_{6},s_{8},s_{10},s_{12}} o3 = {s , s , s , s , s , s , s } () 2 4 6 8 10 12 o3 : List i4 : schurResolution(rep,M) o4 = {{(0, s )}, {(2, s )}, {(3, s )}, {(4, s )}} () 2,2 3,2,1 3,3,2 o4 : List

Next, we compute the syzygies of degree at most 7 in the resolution of the cubic Veronese embedding of P^2.

 i5 : rep = s_{3} o5 = s 3 o5 : S i6 : M = {1_S,s_{3},s_{6},s_{9},s_{12},s_{15},s_{18},s_{21},s_{24},s_{27}} o6 = {s , s , s , s , s , s , s , s , s , s } () 3 6 9 12 15 18 21 24 27 o6 : List i7 : d = 7 o7 = 7 i8 : schurResolution(rep,M,DegreeLimit => d) o8 = {{(0, s )}, {(2, s )}, {(3, s + s + s + s )}, {(4, () 4,2 6,2,1 5,4 5,3,1 4,3,2 ------------------------------------------------------------------------ s + s + s + s + s + s + s )}, {(5, 7,4,1 7,3,2 6,5,1 6,4,2 6,3,3 5,5,2 5,4,3 ------------------------------------------------------------------------ s + s + s + s + s + s + s )}, {(6, 8,5,2 8,4,3 7,6,2 7,5,3 7,4,4 6,6,3 6,5,4 ------------------------------------------------------------------------ s + s + s + s )}, {(7, s )}} 9,5,4 8,7,3 8,6,4 7,6,5 9,7,5 o8 : List

We can compute the resolution of the ideal of 2\times 2 minors of a 3\times 4 matrix, which corresponds to the Segre embedding of P^2\times P^3:

 i9 : T = schurRing(S,t,4) o9 = T o9 : SchurRing i10 : rep = s_1 * t_1 o10 = s t 1 1 o10 : T i11 : M = {1_T} | apply(splice{1..8},i -> s_i * t_i) o11 = {t , s t , s t , s t , s t , s t , s t , s t , s t } () 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 o11 : List i12 : schurResolution(rep,M) o12 = {{(0, t )}, {(2, s t )}, {(3, s t + s t )}, {(4, () 1,1 1,1 1,1,1 2,1 2,1 1,1,1 ----------------------------------------------------------------------- s t + s t )}, {(5, s t ), (6, 2,1,1 2,1,1 3,1 1,1,1,1 3,1,1 2,1,1,1 ----------------------------------------------------------------------- s t )}, {(7, s t )}, {(8, s t )}} 2,2,2 2,2,2 3,2,2 2,2,2,1 3,3,2 2,2,2,2 o12 : List

The following example computes the equivariant resolution of the residue field of a polynomial ring in n=5 variables, with respect to the action of the symmetric group S_n.

 i13 : n = 5; i14 : S = schurRing(QQ,s,n,GroupActing => "Sn"); i15 : rep = s_n + s_{n-1,1}; i16 : M = {s_n} o16 = {s } 5 o16 : List i17 : schurResolution(rep,M,DegreeLimit => n) o17 = {{(0, s )}, {(1, s + s )}, {(2, s + s )}, {(3, s + 5 5 4,1 4,1 3,1,1 3,1,1 ----------------------------------------------------------------------- s )}, {(4, s + s )}, {(5, s )}} 2,1,1,1 2,1,1,1 1,1,1,1,1 1,1,1,1,1 o17 : List

Generalizing this, we can compute the equivariant resolution of the quotient of the polynomial ring in n=5 variables by the ideal of square-free monomials of degree two, with respect to the action of the symmetric group S_n.

 i18 : M = {s_n} | splice{n:rep}; i19 : schurResolution(rep,M) o19 = {{(0, s )}, {(2, s + s + s )}, {(3, s + s + s + 5 5 4,1 3,2 4,1 3,2 3,1,1 ----------------------------------------------------------------------- s )}, {(4, s + s + s )}, {(5, s )}} 2,2,1 3,1,1 2,2,1 2,1,1,1 2,1,1,1 o19 : List

## Ways to use schurResolution :

• "schurResolution(RingElement,List)"
• "schurResolution(RingElement,List,List)"

## For the programmer

The object schurResolution is .