Skip to content
forked from ulthiel/Champ

Computer algebra package for rational Cherednik algebras

Notifications You must be signed in to change notification settings

joschmitt/champ

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHAMP

A Cherednik Algebra Magma Package. By Ulrich Thiel, 2013–2020.

Scope

With this package you can:

  • compute in rational Cherednik algebras (see Etingof-Ginzburg)
  • compute generators and a presentation of the center of the rational Cherednik algebra at t=0 (the coordinate algebra of the Calogero-Moser space)
  • compute Poisson brackets on the center (towards symplectic leaves)
  • compute decomposition matrices of baby Verma modules and graded characters of simples for restricted rational Cherednik algebras (see Gordon).

The parameters can always be arbitrary, including generic parameters valued in polynomial rings or rational function fields. This document contains a complete overview of the functionality with many examples. The theory and algorithms are discussed in the following publications:

  • U. Thiel, CHAMP: A Cherednik Algebra Magma Package, LMS J. Comput. Math. 18 (2015), no. 1, 266–307.
  • C. Bonnafé and U. Thiel, Calogero–Moser families and cellular characters: computational aspects (with C. Bonnafé). In preparation (2020).

Contents

1. Downloading an running
2. Complex reflection groups
3. Rational Cherednik algebras
    3.1 Parameters
    3.2 Rational Cherednik algebras at t=0 and Calogero-Moser spaces
4. Restricted rational Cherednik algebras
    4.1 Representation theory
        4.1.1 Conventions
        4.1.2 Working with baby Verma modules

Downloading and running

You need a Magma version of at least 2.19 (current version is 2.25). You can then download the latest CHAMP release and start it by running ./champ. Important: for full functionality of CHAMP, you have to download the ReflectionGroups database from the release assets as well and extract it in the DB directory of CHAMP.

Alternatively, you can clone the git repository. Important: due to large binary files in the database, it is stored with Git Large File Storage. You first have to install this extension as described in the link. Then you can do a git clone https://ulthiel.github.com/champ/ as usual and this will also clone the database.

I advise to once run ./selfcheck in the directory SelfCheck. (The ReflectionGroups selfcheck will take a bit of time but if the first few are fine, the rest should be fine as well).

Complex reflection groups

Models for several complex reflection groups, their character tables, character names, models for irreducible representations, etc. is stored in the ReflectionGroups database. The data is taken from (and compatible with) J. Michel's CHEVIE package. The reason for using a database is that we need consistent labelings (of e.g. characters) that allow us to compare results with the literature. A general philosophy in CHAMP is that most objects (like groups) will have attributes (like CharacterTable) which are set by a similarly named procedure operating on the object (using the ~ operator). Usually, it is first checked whether the data exists in the database; if not, it will be computed in a consistent way.

The following examples demonstrate how to use all functions around complex reflection groups:

//Load the Weyl group B2 in a reflection representation
> W := TypeBReflectionGroup(2);
> W;
MatrixGroup(2, Rational Field)
Generators:
    [-1  2]
    [ 0  1]

    [ 1  0]
    [ 1 -1]

//The database location for this group is stored in the DBDir attribute
> W`DBDir;
ReflectionGroups/B2_CHEVIE/

//Character tables and standard character names are stored in the database.
> CharacterTable(~W);
> W`CharacterTable;
[
    ( 1, 1, 1, -1, -1 ),
    ( 2, -2, 0, 0, 0 ),
    ( 1, 1, -1, -1, 1 ),
    ( 1, 1, 1, 1, 1 ),
    ( 1, 1, -1, 1, -1 )
]
> W`CharacterNames;
[ 11., 1.1, .11, 2., .2 ] //notation for bi-partitions

//IMPORTANT: CharacterTable(W) without the ~ will use Magma's algorithm to
//compute the character table; we won't get a labeling! Hence, always use the
//procedure with the ~ operator.

//Load models for the irreducible representations. Their numbering will match
//the one from the database.
> Representations(~W);
> W`Representations[0]; //I wanted to use positive characteristic
                        //representations one day, hence the 0.

//Fake degrees (graded W-character of the coinvariant algebra)
> FakeDegrees(~W);
> W`FakeDegrees;
[
  q^2,
  q^3 + q,
  q^4,
  1,
  q^2
]

//Other types of reflection groups (with connection to data from the database
//and/or natural choices) can be created with the following functions:
//ExceptionalComplexReflectionGroup, SymmetricReflectionGroup,
//TypeBReflectionGroup, TypeDReflectionGroup, DihedralReflectionGroup,
//CyclicReflectionGroup, ImprimitiveReflectionGroup.
//
//You can also load some special models directly from the database as in the
//following example which loads a particular model of B2 used by Bonnafé-
//Rouquier in some computation
> W := CHAMP_GetFromDB("ReflectionGroups/B2_BR", "GrpMat");
> W;
MatrixGroup(2, Rational Field)
Generators:
    [0 1]
    [1 0]

    [-1  0]
    [ 0  1]

Rational Cherednik algebras

It's best to begin with an example straightaway.

//Create the rational Cherednik algebra for t and c generic (valued in a
//polynomial ring)
> W := TypeBReflectionGroup(2); //Weyl group of type B2 as above
> H := RationalCherednikAlgebra(W : Type:="EG"); //I will explain the EG below
Rational Cherednik algebra
Generators:
    w1, w2, y1, y2, x1, x2
Generator degrees:
    0, 0, -1, -1, 1, 1
Base ring:
    Polynomial ring of rank 3 over Rational Field
    Order: Lexicographical
    Variables: t, c1, c2
Group:
    MatrixGroup(2, Rational Field) of order 2^3
    Generators:
    [-1  2]
    [ 0  1]

    [ 1  0]
    [ 1 -1]
t-parameter:
    t
c-parameter:
    Mapping from: { 1 .. 2 } to Polynomial ring of rank 3 over Rational Field
    <1, c1>
    <2, c2>

//There is quite a bit to discuss now but let's start playing directly.
//As you can see in the output, there are generators w1, w2, y1, y2, x1, x2.
//These refer to the generators of the group (the w's), the basis of the space
//W is acting on (the y's) and its dual space (the x's). You can access the i-th
//generator in this numbering with H.i.
> H.3;
[1 0]
[0 1]*(y1)

//As a module, the Cherednik algebra is the group ring of W with coefficients
//in R[V \oplus V^*], where R is the base ring of the parameters. This is how
//algebra elements are represented also in CHAMP. Let's do some arithmetic.
> H.5*H.2;
[ 1  0]
[ 1 -1]*(x1 + x2)
> H.5*H.3;
[-1  0]
[-1  1]*(c2)
+
[-1  2]
[ 0  1]*(c1)
+
[1 0]
[0 1]*(y1*x1 + t)

//IMPORTANT: In Magma, matrices are acting from the *right* on vectors. Hence,
//to keep everything consistent, I have implemented the *opposite* of the
//rational Cherednik alebra as usually written on paper. This may be a bit
//confusing, but in the end it's less confusing than trying to make artifically
//make Magma act on the left.

Parameters

This topic is a bit technical but important. There are two kinds of parameters involved in the relations for the rational Cherednik algebra: a t-parameter and a c-parameter. Let's take a commutative ring R as base ring. The t-parameter is some fixed element of R; the c-parameter is a function c:Refl(W)/W -> R from the conjugacy classes of reflections of W to R. For example, we can let R be a polynomial ring K[t,c1,...,cr] and define the parameters t and c in the obvious way. In this case we say the parameters are generic. If I is an ideal of R, we can also consider R/I as new base ring and get parameters with are generic for the subscheme defined by I. For example, we could take a polynomial ring R=K[t,c] and set c(s)=c for all c. This would be the generic equal parameter case.

For the construction of the rational Cherednik algebra in CHAMP you can take as base ring R any K-algebra that can be defined in Magma, where K is the base field of the reflection group W, and as parameters you can take any t and maps c with values in R. In particular, you can work with generic parameters, generic parameters on a, say, hyperplane, or special parameters taking values in your base field K. You have complete freedom.

Ginzburg-Guay-Opdam-Rouquier considered a Fourier transform on the c-parameter space which makes some expressions in the parameters much simpler (such as equations for the Calogero-Moser hyperplanes). I will refer to these as k-parameters. While the c-parameters by Etingof-Ginzburg are indexed by conjugacy classes of reflections, the k-parameters have a double index: the first indexes an orbit [H] of reflection hyperplanes, the second is an index between 0 and |WH|-1, where WH is the stabilizer of a representative of [H]. Of course, in the end the number of parameters is the same. By default, CHAMP uses k-parameters.

The following examples should make all of the above discussion clear.

//First, some shortcuts for creating generic rational Cherednik algebras:
> W:=TypeBReflectionGroup(2);
> H:=RationalCherednikAlgebra(W); //generic t and generic k-parameter
> H:=RationalCherednikAlgebra(W : Type:="EG"); //generic t and generic c
> H:=RationalCherednikAlgebra(W,0); //t=0 and generic k-parameter
> H:=RationalCherednikAlgebra(W,0 : Type:="EG"); //t=0 and generic c

//Now, let's have a closer look at parameters. Let's create a generic
//c-parameter.
> CherednikParameter(W : Type:="EG");
Mapping from: { 1 .. 2 } to Polynomial ring of rank 2 over Rational Field
    <1, c1>
    <2, c2>

//This is a map from (labels of) conjugacy classes of reflections of W to the
//polynomial ring in that many variables. Representatives of the conjugacy
//classes of reflections can be obtained as follows:
> W`ReflectionClasses;
[
    [-1  2]
    [ 0  1],

    [ 1  0]
    [ 1 -1]
]

//Let's construct the rational Cherednik algebra of W over the rational numbers
//with t=0 and a c-parameter with values c(1) = -1 and c(2) = 1:
> c := map<{1,2} -> Rationals() | [<1,-1>, <2,1>] >;
> H:=RationalCherednikAlgebra(W,0,c);

//Let's create a c-parameter which is generic for the hyperplane c_1 - c_2
//(this is the generic equal parameter case):
> c := CherednikParameter(W : Type:="EG");
> R:=Codomain(c);
> cH:=SpecializeCherednikParameterInHyperplane(c, R.1-R.2);
> cH;
Mapping from: { 1 .. 2 } to Multivariate rational function field of rank 1 over
Rational Field
    <1, c2>
    <2, c2>
> H := RationalCherednikAlgebra(W,0,cH);

//You can create a generic *rational* c-parameter as follows:
> CherednikParameter(W : Type:="EG", Rational:=true);
Mapping from: { 1 .. 2 } to Multivariate rational function field of rank 2 over
Rational Field
    <1, c1>
    <2, c2>

//Now, let's look at k-parameters (the default):
> k:=CherednikParameter(W);
> k;
Mapping from: { 1 .. 2 } to Polynomial ring of rank 2 over Rational Field
    <1, 2*k1_1>
    <2, 2*k2_1>

//The labeling of orbits of reflection hyperplanes is consistent with what is
//stored in
> W`ReflectionLibrary;
//This is an array indexed by orbits of reflection hyperplanes. Each entry is
//again an array indexed by reflection hyperplanes in this orbit. The entries
//of this array are the reflections for the corresponding hyperplane.
//You can work with k-parameters exactly as with the c-parameters above.

Rational Cherednik algebras at t=0 and Calogero-Moser spaces

The rational Cherednik algebra Ht=0,c has a big center Zc: it is a Poisson deformation of the symplectic singularity (V ⊕ V*)/W, where W acts on V. The associated variety is called the Calogero-Moser space of W at parameter c. CHAMP can compute algebra generators of Zc and also a presentation of this algebra (the former works even for large groups like F4, the latter involves rather complicated invariant theory computations which are even for small dihedral groups too much; but you can still get some ideas).

The ReflectionGroups database contains generators of Z0 (undeformed case) and Zk (k generic) for several cases. Some of the elements are extremely large (for G11 there is one taking up >100MB compressed and >500MB uncompressed)! By default, all functions check the database first and load the data from there if available.

> W := TypeBReflectionGroup(2);
> H := RationalCherednikAlgebra(W,0);
> CenterGenerators(H); //this needs generic parameters!
[*
    [1 0]
    [0 1]*(y1^2 - 2*y1*y2 + 2*y2^2),
    [-1  0]
    [-1  1]*(k2_1)
    +
    [-1  2]
    [ 0  1]*(k1_1)
    +
    [ 1  0]
    [ 1 -1]*(k2_1)
    +
    [1 0]
    [0 1]*(y1*x1 + y2*x2)
    +
    [ 1 -2]
    [ 0 -1]*(k1_1),
    [1 0]
    [0 1]*(x1^2 + x1*x2 + 1/2*x2^2),
    [1 0]
    [0 1]*(y1^4 - 4*y1^3*y2 + 6*y1^2*y2^2 - 4*y1*y2^3 + 2*y2^4),
    [-1  0]
    [-1  1]*(k2_1*y1^2 - 4*k2_1*y1*y2 + 4*k2_1*y2^2)
    +
    [-1  2]
    [ 0  1]*(k1_1*y1^2 - 2*k1_1*y1*y2)
    +
    [ 1  0]
    [ 1 -1]*(k2_1*y1^2)
    +
    [1 0]
    [0 1]*(y1^3*x1 - 4*y1^2*y2*x1 - y1^2*y2*x2 + 4*y1*y2^2*x1 + 2*y1*y2^2*x2)
    +
    [ 1 -2]
    [ 0 -1]*(-k1_1*y1^2 + 2*k1_1*y1*y2),
    [-1  2]
    [ 0  1]*(-2*k1_1*y2*x1 - 2*k1_1*y2*x2)
    +
    [ 1 -2]
    [ 1 -1]*(-2*k1_1*k2_1)
    +
    [1 0]
    [0 1]*(y1^2*x1^2 + y1^2*x1*x2 + 1/2*y1^2*x2^2 - 4*y1*y2*x1^2 - 4*y1*y2*x1*x2
    - y1*y2*x2^2 + 4*y2^2*x1^2 + 4*y2^2*x1*x2 + y2^2*x2^2)
    +
    [-1  0]
    [ 0 -1]*(-2*k1_1^2)
    +
    [ 1 -2]
    [ 0 -1]*(-2*k1_1*y1*x1 + 2*k1_1*y2*x1)
    +
    [-1  2]
    [-1  1]*(-2*k1_1*k2_1),
    [-1  0]
    [-1  1]*(k2_1*x1^2 + k2_1*x1*x2 + 1/4*k2_1*x2^2)
    +
    [-1  2]
    [ 0  1]*(k1_1*x1^2 + 3/2*k1_1*x1*x2 + 3/4*k1_1*x2^2)
    +
    [ 1  0]
    [ 1 -1]*(1/4*k2_1*x2^2)
    +
    [1 0]
    [0 1]*(y1*x1^3 + 3/2*y1*x1^2*x2 + 3/4*y1*x1*x2^2 + 1/4*y2*x2^3)
    +
    [ 1 -2]
    [ 0 -1]*(k1_1*x1^2 + 1/2*k1_1*x1*x2 + 1/4*k1_1*x2^2),
    [1 0]
    [0 1]*(x1^4 + 2*x1^3*x2 + 3/2*x1^2*x2^2 + 1/2*x1*x2^3 + 1/8*x2^4)
*]
> #CenterGenerators(H);
8
//The computation of the center generators inductively deforms fundamental
//invariants of Z_0 = K[V \oplus V^*]^W. You can compute and acccess these
//fundamental invariants as follows:
> SymplecticDoublingFundamentalInvariants(W);
[
    y1^2 - 2*y1*y2 + 2*y2^2,
    y1*x1 + y2*x2,
    x1^2 + x1*x2 + 1/2*x2^2,
    y1^4 - 4*y1^3*y2 + 6*y1^2*y2^2 - 4*y1*y2^3 + 2*y2^4,
    y1^3*x1 - 4*y1^2*y2*x1 - y1^2*y2*x2 + 4*y1*y2^2*x1 + 2*y1*y2^2*x2,
    y1^2*x1^2 + y1^2*x1*x2 + 1/2*y1^2*x2^2 - 4*y1*y2*x1^2 - 4*y1*y2*x1*x2 -
        y1*y2*x2^2 + 4*y2^2*x1^2 + 4*y2^2*x1*x2 + y2^2*x2^2,
    y1*x1^3 + 3/2*y1*x1^2*x2 + 3/4*y1*x1*x2^2 + 1/4*y2*x2^3,
    x1^4 + 2*x1^3*x2 + 3/2*x1^2*x2^2 + 1/2*x1*x2^3 + 1/8*x2^4
]
//The deformation of an element of Z_0 to an element of Z_c is done with the
//function TruncationInverse which you can also call directly if you are only
//interested in special elements:
> TruncationInverse(H, W`SymplecticDoublingFundamentalInvariants[1]);
[1 0]
[0 1]*(y1^2 - 2*y1*y2 + 2*y2^2)
//On V \oplus V^* we have a natural N^2-grading. We are especially interested in
//algebra generators of N^2-degree (d,d), i.e. of Z-degree 0.
> [ Bidegree(f) : f in W`SymplecticDoublingFundamentalInvariants ];
[ <2, 0>, <1, 1>, <0, 2>, <4, 0>, <3, 1>, <2, 2>, <1, 3>, <0, 4> ]
//We see there are only 2 generators of Z-degree 0.
//You can also directly compute only the degree-0 generators of Z_c as follows
> CenterGeneratorsOfDegreeZero(H);
[*
    [-1  0]
    [-1  1]*(k2_1)
    +
    [-1  2]
    [ 0  1]*(k1_1)
    +
    [ 1  0]
    [ 1 -1]*(k2_1)
    +
    [1 0]
    [0 1]*(y1*x1 + y2*x2)
    +
    [ 1 -2]
    [ 0 -1]*(k1_1),
    [-1  2]
    [ 0  1]*(-2*k1_1*y2*x1 - 2*k1_1*y2*x2)
    +
    [ 1 -2]
    [ 1 -1]*(-2*k1_1*k2_1)
    +
    [1 0]
    [0 1]*(y1^2*x1^2 + y1^2*x1*x2 + 1/2*y1^2*x2^2 - 4*y1*y2*x1^2 - 4*y1*y2*x1*x2
    - y1*y2*x2^2 + 4*y2^2*x1^2 + 4*y2^2*x1*x2 + y2^2*x2^2)
    +
    [-1  0]
    [ 0 -1]*(-2*k1_1^2)
    +
    [ 1 -2]
    [ 0 -1]*(-2*k1_1*y1*x1 + 2*k1_1*y2*x1)
    +
    [-1  2]
    [-1  1]*(-2*k1_1*k2_1)
*]
//We can even compute a presentation of the center of H
> CenterPresentation(H);
[
    3*z1^2*z3 - z1*z2^2 - z1*z6 + 2*k1_1^2*z1 + z2*z5 - 2*z3*z4,
    -4*z1*z2*z3 + 2*z1*z7 + z2^3 + 2*z2*z6 - 4*k2_1^2*z2 - z3*z5,
    2*z1*z8 + z2^2*z3 - 2*z2*z7 - z3*z6 + 2*k1_1^2*z3,
    8*z1^3*z3 - 3*z1^2*z2^2 - 4*z1^2*z6 + (4*k1_1^2 + 8*k2_1^2)*z1^2 +
        2*z1*z2*z5 - 8*z1*z3*z4 + 4*z1*z3*z8 + 2*z2^2*z3^2 + 2*z2^2*z4 -
        4*z2*z3*z7 - 2*z3^2*z6 + 4*k1_1^2*z3^2 + 4*z4*z6 - 8*k2_1^2*z4 - z5^2,
    -7*z1^2*z2*z3 + 6*z1^2*z7 + z1*z2^3 + 3*z1*z2*z6 + (2*k1_1^2 -
        4*k2_1^2)*z1*z2 + 2*z2*z3*z4 - 4*z4*z7 - z5*z6 + 2*k1_1^2*z5,
    8*z1^2*z3^2 - 8*z1^2*z8 - 10*z1*z2^2*z3 + 6*z1*z2*z7 + (8*k1_1^2 -
        4*k2_1^2)*z1*z3 + 2*z2^4 + 3*z2^2*z6 + (-6*k1_1^2 - 8*k2_1^2)*z2^2 +
        z2*z3*z5 - 8*z3^2*z4 + 8*z4*z8 - 2*z5*z7 + (-4*k1_1^2 + 4*k2_1^2)*z6 +
        8*k1_1^4 - 8*k1_1^2*k2_1^2,
    -6*z1^2*z3^2 + 10*z1^2*z8 + 8*z1*z2^2*z3 - 8*z1*z2*z7 - z2^4 - 2*z2^2*z6 +
        (4*k1_1^2 + 4*k2_1^2)*z2^2 + 4*z3^2*z4 - 4*z4*z8 - z6^2 + 4*k1_1^2*z6 -
        4*k1_1^4,
    -4*z1*z2*z3^2 + 2*z1*z2*z8 + 4*z1*z3*z7 + 3*z2^3*z3 - 4*z2^2*z7 + z2*z3*z6 +
        (-2*k1_1^2 - 4*k2_1^2)*z2*z3 - 2*z3^2*z5 + 2*z5*z8 - 2*z6*z7 +
        4*k1_1^2*z7,
    -4*z1*z3^3 + 4*z1*z3*z8 - 2*z2^2*z3^2 - 2*z2^2*z8 + 8*z2*z3*z7 + 4*z3^2*z6 -
        4*k2_1^2*z3^2 - 4*z6*z8 - 4*z7^2 + 8*k2_1^2*z8
]
//Poisson brackets of elements of Z_c can be computed as well
> PoissonBracket(H.5,H.3);
[-1  0]
[-1  1]*(2*k2_1)
+
[-1  2]
[ 0  1]*(2*k1_1)
+
[1 0]
[0 1]*(1)

Restricted rational Cherednik algebras

The restricted rational Cherednik algebra is an important finite-dimensional quotient of the rational Cherednik algebra at t=0. See the paper by Gordon or my paper. Computation in the restricted algebra can be done in CHAMP in the same way as with the uncrestricted algebra.

> W := TypeBReflectionGroup(2);
> H := RestrictedRationalCherednikAlgebra(W); //generic k-parameter
> H;
Restricted rational Cherednik algebra
Generators:
    w1, w2, y1, y2, x1, x2
Generator degrees:
    0, 0, -1, -1, 1, 1
Base ring:
    Multivariate rational function field of rank 2 over Rational Field
    Variables: k1_1, k2_1
Group:
    MatrixGroup(2, Rational Field) of order 2^3
    Generators:
    [-1  2]
    [ 0  1]

    [ 1  0]
    [ 1 -1]
c-parameter:
    Mapping from: { 1 .. 2 } to Multivariate rational function field of rank 2
    over Rational Field
    <1, 2*k1_1>
    <2, 2*k2_1>
> H.5*H.2;
[ 1  0]
[ 1 -1]*(x1 + x2)

//You can convert H into a matrix algebra
> A:=MatrixAlgebra(H);
> A;
Matrix Algebra of degree 512 with 6 generators over Multivariate rational
function field of rank 2 over Rational Field

//We compute the Jacobson radical for the equal parameter case k=[1,1]:
> k := CherednikParameter(W,[1,1]);
> H := RestrictedRationalCherednikAlgebra(W,k);
> A := MatrixAlgebra(H);
> time J := JacobsonRadical(A); J;
Time: 182.370
Matrix Algebra [ideal of A] of degree 512 and dimension 346 over Rational Field

Representation theory

In CHAMP you can compute baby Verma modules for restricted rational Cherednik algebras (as defined by Gordon). Using modular lifting techniques I introduced in my paper you can compute the heads of baby Verma modules (which then give all the simples of the restricted rational Cherednik algebra) as graded modules (also giving the graded W-character) and the (graded) decomposition matrix of Verma modules into simples. It works surprisingly well even in huge and complicated examples, and for generic parameters as well.

Conventions

Let W be a complex reflection group acting on a vector space V over a field K. Let K[V] be the symmetric algebra of V*. In the (restricted) rational Cherednik algebra I am putting V* in degree +1, V in degree -1, and W in degree 0. This yields a triangular decomposition H = H- ⊗ KW ⊗ H+. The baby Verma module Δ(λ) of an irreducible W-module λ is obtained by inflating λ to a (H- ⊗ KW)-module (i.e. V acting trivial) and then inducing it to an H-module. So, as a vector space, Δ(λ) = K[V]W ⊗ λ, where K[V]W is the coinvariant algebra. With my grading convention, Δ(λ) lives in positive degree.

Note that there are two choices: 1) to put V* in degree +1; 2) to inflate λ to a (H^- ⊗ KW)-module. You could also put V* in degree -1 and/or inflate λ to an (H+ ⊗ KW)-module. Here is an overview of what is used in the literature:

Paper deg V* Δ(λ)
CHAMP +1 H ⊗H- λ = K[V]W ⊗ λ
Bonnafé-Roquier +1 H ⊗H- λ = K[V]W ⊗ λ
Bellamy-Thiel -1 H ⊗H+ λ = K[V]W ⊗ λ
Gordon -1 H ⊗H- λ = K[V*]W ⊗ λ

So, CHAMP and Bonnafé-Rouquier use the same conventions. The difference between Bonnafé-Roquier and Bellamy-Thiel is only an opposite grading on the Δ(λ) (up to the grading the modules are the same!). To make this more precise, consider a ℤ-graded algebra A with triangular decomposition, i.e. a triple (Al, A0, Ar) of graded subalgebras such that the multiplication map Al ⊗ A0 ⊗ Ar → A is an isomorphism of vector spaces, and moreover the following holds: A0 is in degree 0, and Al is either in positive or in negative degree, and Ar is in the opposite degree of Al. In any case one can define the standard module Δ(λ) = A ⊗Ar λ. The inflation is always through the right part of the decomposition, so it is up to the grading independent of the aforementioned choice. In Bellamy-Thiel we assumed that Al is in negative degree, Bonnafé-Rouquier assume that it is in positive degree. But we both assume that Al = K[V]W. The Bonnafé-Rouquier assumption is nicer in the sense that the standard modules live in positive degree, which seems more natural (but it doesn't make much of a difference as explained). Only in Gordon the parts of the triangular decomposition are opposite, i.e. Al = K[V*]W.

Working with baby Verma modules

> W := TypeBReflectionGroup(2);
> Representations(~W);
> W`CharacterNames;
[ 11., 1.1, .11, 2., .2 ]

//Construct rational Cherednik algebra for W and generic GGOR parameter
> H:=RestrictedRationalCherednikAlgebra(W);

//We compute the baby Verma module for the W-representation the 2-dimensional
//representation 1.1:
> rho := W`Representations[0][2];
> M:=VermaModule(H, rho);
Graded module of dimension 16 over an algebra with generator degrees [ 0, 0, -1,
-1, 1, 1 ] over Multivariate rational function field of rank 2 over Rational
Field.

//I have implemented an own structure for garded modules that is used.
//Recall that as a vector space, M is isomorphic to K[V]_W \otimes \lambda.
//For each algebra generator of H (in this case w1, w2, y1, y2, x1, x2)
//the action is encoded by a matrix. The chosen basis for the coinvariant
//algebra can be viewed with
> W`CoinvariantAlgebra`Basis;
{@
    1,
    x2,
    x1,
    x2^2,
    x1*x2,
    x2^3,
    x1*x2^2,
    x1*x2^3
@}
//and the matrices of the generator actions can be viewed with
> M`Matrices;
[
    Sparse matrix with 16 rows and 16 columns over Multivariate rational
    function field of rank 2 over Rational Field,
    Sparse matrix with 16 rows and 16 columns over Multivariate rational
    function field of rank 2 over Rational Field,
    Sparse matrix with 16 rows and 16 columns over Multivariate rational
    function field of rank 2 over Rational Field,
    Sparse matrix with 16 rows and 16 columns over Multivariate rational
    function field of rank 2 over Rational Field,
    Sparse matrix with 16 rows and 16 columns over Multivariate rational
    function field of rank 2 over Rational Field,
    Sparse matrix with 16 rows and 16 columns over Multivariate rational
    function field of rank 2 over Rational Field
]
//So, the action of y1 is:
> Matrix(M`Matrices[3]);
[0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[-4*k1_1   4*k1_1   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[0   4*k1_1   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[2*k1_1 - 2*k2_1   -2*k1_1   0   0   0   0   0   0   0   0   0   0   0   0   0
    0]
[-4*k2_1   -2*k1_1 + 2*k2_1   0   0   0   0   0   0   0   0   0   0   0   0   0
    0]
[0   0   -4*k1_1   4*k1_1   0   0   0   0   0   0   0   0   0   0   0   0]
[0   0   0   4*k1_1   0   0   0   0   0   0   0   0   0   0   0   0]
[0   0   2*k1_1 - 2*k2_1   -2*k1_1   0   0   0   0   0   0   0   0   0   0   0
    0]
[0   0   -4*k2_1   -2*k1_1 + 2*k2_1   0   0   0   0   0   0   0   0   0   0   0
    0]
[0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0]
[0   0   0   0   0   0   -2*k1_1 - 2*k2_1   2*k1_1   -4*k1_1   4*k1_1   0   0
    0   0   0   0]
[0   0   0   0   0   0   -4*k2_1   2*k1_1 + 2*k2_1   0   4*k1_1   0   0   0   0
    0   0]
[0   0   0   0   0   0   0   0   0   0   -2*k1_1 - 2*k2_1   2*k1_1   -4*k1_1
    4*k1_1   0   0]
[0   0   0   0   0   0   0   0   0   0   -4*k2_1   2*k1_1 + 2*k2_1   0   4*k1_1
    0   0]
//The degrees of the basis vectors of M are:
> M`RowDegrees;
[ 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4 ]

//Let's check if M is really a module for H (check all defining relations):
> IsModule(H,M);
true

//Let's compute a basis of the submodule of M spanned by the 16-th basis
//vector of M (which is x1*x2^3 \otimes e2), where e2 is the second basis
//vector of the W-representation rho):
> Spin(M, M.16);
[*
    (0   0   0   0   0   0   1   0   (2*k1_1^2 + 2*k1_1*k2_1)/(k1_1^2 + k2_1^2)
    -2*k1_1*k2_1/(k1_1^2 + k2_1^2)   0   0   0   0   0   0),
    (0   0   0   0   0   0   0   1   4*k1_1*k2_1/(k1_1^2 + k2_1^2)   (2*k1_1^2 -
    2*k1_1*k2_1)/(k1_1^2 + k2_1^2)   0   0   0   0   0   0),
    (0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0),
    (0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0),
    (0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0),
    (0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0),
    (0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0),
    (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1)
*]
//Hence, M.16 spans a non-trivial submodule.

//Let's try to compute the head of M. This will use my modular technique
//described in the CHAMP paper: specialize parameters, reduce to a finite field,
//use the MeatAxe, and lift everything back. This methods does not have to work,
//but it works surprisingly often. It's impossible to predict, however.
> res,L,J,P:=HeadOfLocalModule(M);
//The computation was successful. L is the head and J the radical of M.
//P describes the finite field specialization that was used.
//The function HeadOfLocalModule has many parameters to fine-tune the
//computation.
> L;
Graded module of dimension 8 over an algebra with generator degrees [ 0, 0, -1,
-1, 1, 1 ] over Multivariate rational function field of rank 2 over Rational
Field.
> L`Matrices[3];
[0   0   0   0   0   0   0   0]
[0   0   0   0   0   0   0   0]
[-4*k1_1   4*k1_1   0   0   0   0   0   0]
[0   4*k1_1   0   0   0   0   0   0]
[2*k1_1 - 2*k2_1   -2*k1_1   0   0   0   0   0   0]
[-4*k2_1   -2*k1_1 + 2*k2_1   0   0   0   0   0   0]
[0   0   2*k1_1 - 2*k2_1   -2*k1_1   0   0   0   0]
[0   0   -4*k2_1   -2*k1_1 + 2*k2_1   0   0   0   0]
> IsModule(H,L);
true

//Let's compute the Poincaré series and the graded W-character of L:
> PoincareSeries(L);
2 + 4*t + 2*t^2
> GradedCharacter(H,L);
(      t t^2 + 1       t       t       t)
//Hence, L = t*(11.) + (t^2+1)*(1.1) + t*(.11) + t*(2.) + t*(.2)
//Note that in degree 0 of L there's a unique W-module, namely the 1.1=rho that
//we started with. This is a general fact and can be used to identify simple
//modules.
> IdentifyModule(H,L);
2   //the second irreducible W-module, i.e. 1.1=rho

//The graded characters of baby Vermas can be computed directly by a formual
//involving the fake degrees (this is independent of the parameters):
> GradedCharactersOfVermas(H);
[1   q^3 + q   q^2   q^2   q^4]
[q^3 + q   q^4 + 2*q^2 + 1   q^3 + q   q^3 + q   q^3 + q]
[q^2   q^3 + q   1   q^4   q^2]
[q^2   q^3 + q   q^4   1   q^2]
[q^4   q^3 + q   q^2   q^2   1]

About

Computer algebra package for rational Cherednik algebras

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • M 55.4%
  • MATLAB 42.9%
  • GAP 0.6%
  • CSS 0.4%
  • Shell 0.4%
  • Mathematica 0.2%
  • Objective-C 0.1%