This package has been developped by Cédric Bonnafé to work with finite dimensional algebras under GAP3; it depends on the package "chevie".
Note that these programs have been mainly developed for working with Solomon descent algebras.
We start with a list of utility functions which are used in various places.
returns the list of digits of the nonnegative integer n in basis basis (in basis 10 if no second argument is given).
gap> Digits(0); Digits(3); Digits(123); Digits(123,16); [ ] [ 3 ] [ 1, 2, 3 ] [ 7, 11 ]
Does the converse of Digits
, that is, computes an integer give the
sequence of its digits (by default in basis 10; in basis basis if a
second argument is given).
gap> ByDigits([2,3,4,5]); 2345 gap> ByDigits([2,3,4,5],100); 2030405
computes the set of signed compositions of n that is, the set of tuples
of non-zero integers [i1,...ir] such that |i1| + ... + |ir| =
n. Note that Length(SignedCompositions(n)) = 2*3^(n-1)
.
gap> SignedCompositions(3); [ [ -3 ], [ -2, -1 ], [ -2, 1 ], [ -1, -2 ], [ -1, -1, -1 ], [ -1, -1, 1 ], [ -1, 1, -1 ], [ -1, 1, 1 ], [ -1, 2 ], [ 1, -2 ], [ 1, -1, -1 ], [ 1, -1, 1 ], [ 1, 1, -1 ], [ 1, 1, 1 ], [ 1, 2 ], [ 2, -1 ], [ 2, 1 ], [ 3 ] ]
Note that the compositions of n are obtained by the function
OrderedPartitions
in GAP3.
computes the set of signed partitions of n that is, the set of tuples of integers [i1,...,ir,j1,...,js] such that ik > 0, jk < 0, |i1| + ... + |ir| + |j1| + ... + |js|= n, i1 ≥ ... ≥ ir and |j1| ≥ ... ≥ |js|.
gap> SignedPartitions(3); [ [ -3 ], [ -2, -1 ], [ -1, -1, -1 ], [ 1, -2 ], [ 1, -1, -1 ], [ 1, 1, -1 ], [ 1, 1, 1 ], [ 2, -1 ], [ 2, 1 ], [ 3 ] ]
Let n be an integer and π a set of prime numbers. Write n=n1n2 where no prime factor of n2 is in π and all prime factors of n1 are in π. Then n1 is called the π-part of n and n2 the π'-part of n. This function returns the π-part of n. The set π may be given as a list of primes, or as an integer in which case the set π is taken to be the list of prime factors of that integer.
gap> PiPart(720,2); 16 gap> PiPart(720,3); 9 gap> PiPart(720,6); 144 gap> PiPart(720,[2,3]); 144
p should be a prime and z a cyclotomic number which is p-integral (that is, z times some number prime to p is a cyclotomic integer). The function returns the reduction of z mod. p, an element of some extension 𝔽pr of the prime field 𝔽p.
gap> CyclotomicModP(E(7),3); Z(3^6)^104
Let g be an element of the finite group G and π a set of prime numbers. Write g=g1g2 where g1 and g2 are both powers of g, no prime factor of the order of g2 is in π and all prime factors of the order of g1 are in π. Then g1 is called the π-component of g and g2 the π'-component of n. This function returns the π-component of g. The set π may be given as a list of primes, or as an integer in which case the set π is taken to be the list of prime factors of that integer.
Let π be a set of prime numbers. Two conjugacy classes of the finite group G are said to belong to the same π-section if the π-components (see PiComponent) of elements of the two classes are conjugate. This function returns the partition of the set of conjugacy classes of G in π-sections, represented by the list of indices of conjugacy classes of G in each part. The set π may be given as a list of primes, or as an integer in which case the set π is taken to be the list of prime factors of that integer.
gap> W:=SymmetricGroup(5); Group( (1,5), (2,5), (3,5), (4,5) ) gap> PiSections(W,2); [ [ 1, 4, 7 ], [ 2, 5 ], [ 3 ], [ 6 ] ] gap> PiSections(W,3); [ [ 1, 2, 3, 6, 7 ], [ 4, 5 ] ] gap> PiSections(W,6); [ [ 1, 7 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ] ]
Let π be a set of prime numbers. Two conjugacy classes of the finite group G are said to belong to the same π'-section if the π'-components (see PiComponent) of elements of the two classes are conjugate. This function returns the partition of the set of conjugacy classes of G in π'-sections, represented by the list of indices of conjugacy classes of G in each part. The set π may be given as a list of primes, or as an integer in which case the set π is taken to be the list of prime factors of that integer.
gap> W:=SymmetricGroup(5); Group( (1,5), (2,5), (3,5), (4,5) ) gap> PiPrimeSections(W,2); [ [ 1, 2, 3, 6 ], [ 4, 5 ], [ 7 ] ] gap> PiPrimeSections(W,3); [ [ 1, 4 ], [ 2, 5 ], [ 3 ], [ 6 ], [ 7 ] ] gap> PiPrimeSections(W,6); [ [ 1, 2, 3, 4, 5, 6 ], [ 7 ] ]
Let p be a prime. This function returns the p-rank of the finite group G, defined as the maximal rank of an elementary abelian p-subgroup of G.
gap> W:=SymmetricGroup(5); Group( (1,5), (2,5), (3,5), (4,5) ) gap> PRank(W,2); 2 gap> PRank(W,3); 1 gap> PRank(W,7); 0
Let p be a prime. This function returns the partition of the irreducible characters of G in p-blocks, represented by the list of indices of irreducibles characters in each part.
gap> W:=SymmetricGroup(5); Group( (1,5), (2,5), (3,5), (4,5) ) gap> PBlocks(W,2); [ [ 1, 2, 5, 6, 7 ], [ 3, 4 ] ] gap> PBlocks(W,3); [ [ 1, 3, 6 ], [ 2, 4, 5 ], [ 7 ] ] gap> PBlocks(W,7); [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] ]
115.12 Finite-dimensional algebras over fields
Let K be a field and let A be a K-algebra of finite dimension d. In our implementation, A must be endowed with a basis X = (xi)i ∈ I, where I={i1,...,id}. Then A is represented by a record containing
A.field
:
A.dimension
:
A.multiplication
:A.structureconstants
: the entry
A.structureconstants[k][l]
is equal to A.multiplication(k,l)
. Once the
function A.multiplication
is defined, we can obtain the field
A.structureconstants
just by asking for
FDAlgebraOps.structureconstants(A)
.
A.zero
:
A.one
:
A.basisname
:A.basisname:="X"
).
A.parameters
:
A.identification
:A.identification:=["Group algebra",G,K];
.
For convenience, the record A is often endowed with the following fields:
A.generators
:
A.basis
:
A.vectorspace
:
A.EltToVector
:A.vectorspace
(i.e. a d-tuple of elements of K).
A.VectorToElt
:A.EltToVector
.
A.type
:"Group algebra"
, or "Grothendieck ring"
...
A.operations
:FDAlgebraOps
which contains
quite a few operations applicable to finite-dimensional algebras, like the
following:
FDAlgebraOps.underlyingspace
:A.dimension
is defined, this function
constructs the underlying space of A. It endows the record A with the
fields A.basis
, A.vectorspace
, A.EltToVector
, and A.VectorToElt
.
FDAlgebraOps.structureconstants
:A.structureconstants
.
115.13 Elements of finite dimensional algebras
x.algebra
:
x.coefficients
:
x.operations
:AlgebraEltOps
defining the
operations for finite dimensional algebra elements.
115.14 Operations for elements of finite dimensional algebras
The following operations are define for elements of a finite dimensional algebra A.
Print
:A.print
is defined, it is used. Otherwise, the element xi is printed
using A.basisname
and A.parameters
: for instance, if
A.basisname:="BASISNAME"
and A.parameters:=[1..d]
, then xi is
printed as BASISNAME(i)
.
\+
:
\-
:
*
:
^
:
Coefficients(x)
:Basis(A)
.
115.15 IsAlgebraElement for finite dimensional algebras
This function retuirns true
if x is an element of a finite dimensional
algebra, false
if it is another kind of object.
gap> q:=X(Rationals);; q.name:="q";; gap> A:=PolynomialQuotientAlgebra(q^2-q-1);; gap> IsAlgebraElement(Basis(A)[1]); true gap> IsAlgebraElement(1); false
115.16 IsAbelian for finite dimensional algebras
returns true
if the algebra A is commutative and false
otherwise.
gap> q:=X(Rationals);; q.name:="q";; gap> A:=PolynomialQuotientAlgebra(q^2-q-1);; gap> IsAbelian(A); true gap> B:=SolomonAlgebra(CoxeterGroup("A",2));; gap> IsAbelian(B); false
115.17 IsAssociative for finite dimensional algebras
returns true
if the algebra A is associative and false
otherwise.
gap> q:=X(Rationals);; q.name:="q";; gap> A:=PolynomialQuotientAlgebra(q^2-q-1);; gap> IsAssociative(A); true
115.18 AlgebraHomomorphismByLinearity
AlgebraHomomorphismByLinearity(A,B[,l])
returns the linear map from A to B that sends A.basis
to the list l
(if omitted to B.basis
). If this is not an homomorphism of algebras, the
function returns an error.
gap> q:=X(Rationals);; q.name:="q";; gap> A:=PolynomialQuotientAlgebra(q^4);; gap> hom:=AlgebraHomomorphismByLinearity(A,Rationals,[1,0,0,0]); function ( element ) ... end gap> hom(A.class(q^4+q^3+1)); 1 gap> hom2:=AlgebraHomomorphismByLinearity(A,Rationals,[1,1,1,1]); Error, This is not a morphism of algebras in AlgebraHomomorphismByLinearity( A, Rationals, [ 1, 1, 1, 1 ] ) called from main loop
115.19 SubAlgebra for finite-dimensional algebras
returns the sub-algebra B of A generated by the list l. The elements of B are written as elements of A.
gap> A:=SolomonAlgebra(CoxeterGroup("B",4)); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> B:=SubAlgebra(A,[A.xbasis(23),A.xbasis(34)]); SubAlgebra(SolomonAlgebra(CoxeterGroup("B",4),Rationals), [ X(23), X(34) ]) gap> Dimension(B); 6 gap> IsAbelian(B); false gap> B.basis; [ X(1234), X(23), X(34), X(2)-X(4), X(3)+X(4), X(0) ]
returns the sub-algebra B of A of elements commuting with all the elements in the list l. The elements of B are written as elements of A.
gap> A:=SolomonAlgebra(CoxeterGroup("B",4)); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> B:=CentralizerAlgebra(A,[A.xbasis(23),A.xbasis(34)]); Centralizer(SolomonAlgebra(CoxeterGroup("B",4),Rationals), [ X(23), X(34) ]) gap> Dimension(B); 10 gap> IsAbelian(B); false
returns the center B of the algebra A. The elements of B are written as elements of A.
gap> A:=SolomonAlgebra(CoxeterGroup("B",4)); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> B:=Centre(A); Centre(SolomonAlgebra(CoxeterGroup("B",4),Rationals)) gap> Dimension(B); 8 gap> IsAbelian(B); true
If l is an element, or a list of elements of the algebra A, then
LeftIdeal(A,l)
(resp. RightIdeal(A,l)
, resp. TwoSidedIdeal(A,l)
)
returns the left (resp. right, resp. two-sided) ideal of A generated by
l. The result is a record containing the following fields:
.parent
:
.generators
:
.basis
:
.dimension
:LeftTraces(A,I)
, RightTraces(A,I)
:I
(written as a
list of traces of elements of the A.basis
).
gap> A:=SolomonAlgebra(CoxeterGroup("B",4)); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> I:=LeftIdeal(A,[A.xbasis(234)]); LeftIdeal(SolomonAlgebra(CoxeterGroup("B",4),Rationals),[ X(234) ]) gap> I.basis; [ X(234), X(23)+X(34), X(24), X(2)+X(4), X(3), X(0) ] gap> Dimension(I); 6 gap> LeftTraces(A,I); [ 6, 18, 40, 50, 42, 64, 112, 112, 100, 136, 100, 192, 224, 224, 224, 384 ]
A is a finite dimensional algebra, and I a two-sided ideal of A. The function returns the algebra A/I. It is also allowed than I be an element of A or a list of elements of A, in which case it is understood as the two-sided ideal generated by I.
If the record A is endowed with the field A.radical
(containing the
radical of A) or with the field A.Radical
(a function for computing the
radical of A), then Radical(A)
returns the radical of A (as a
two-sided ideal of A). At this time, this function is available only in
characteristic zero: it works for group algebras, Grothendiek rings,
Solomon algebras and generalized Solomon algebras.
returns (when possible) the n-th power of the two-sided ideal Radical(A)
.
returns (when possible) the Loewy length of A that is, the smallest
natural number n >= 1 such that the n-th power of the two-sided ideal
Radical(A)
vanishes.
gap> A:=SolomonAlgebra(CoxeterGroup("B",4)); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> R:=Radical(A); TwoSidedIdeal(SolomonAlgebra(CoxeterGroup("B",4),Rationals), [ X(13)-X(14), X(23)-X(34), X(2)-X(3), X(2)-X(4) ]) gap> Dimension(R); 4 gap> LoewyLength(A); 2
For certain algebras, the function CharTable
may be applied. It returns
the character table of the algebra K ⊗K A: different
ways of printing are used according to the type of the algebra. If A is a
group algebra in characteristic zero, then CharTable(A)
returns the
character table of A.group
. This function is available whenever K is of
characteristic zero for group algebras, Grothendieck rings, Solomon
algebras and generalized Solomon algebras.
gap> A:=GrothendieckRing(SymmetricGroup(4)); GrothendieckRing(Group( (1,4), (2,4), (3,4) ),Rationals) gap> CharTable(A); X.1 X.2 X.3 X.4 X.5 MU.1 1 1 2 3 3 MU.2 1 -1 . -1 1 MU.3 1 1 2 -1 -1 MU.4 1 1 -1 . . MU.5 1 -1 . 1 -1 gap> B:=SolomonAlgebra(CoxeterGroup("B",2)); SolomonAlgebra(CoxeterGroup("B",2),Rationals) gap> CharTable(B); 1 2 1 2 0 12 1 . . . 1 1 2 . . 2 1 . 2 . 0 1 4 4 8
CharacterDecomposition(A,char)
Given a list char of elements of K (indexed by A.basis
), then
CharacterDecomposition(A,char)
returns the decomposition of char into a
sum of irreducible characters of A, if possible.
gap> A:=SolomonAlgebra(CoxeterGroup("B",3)); SolomonAlgebra(CoxeterGroup("B",3),Rationals) gap> I:=LeftIdeal(A,[A.xbasis(13)]); LeftIdeal(SolomonAlgebra(CoxeterGroup("B",3),Rationals),[ X(13) ]) gap> I.basis; [ X(13), X(1), X(3), X(0) ] gap> LeftTraces(A,I); [ 4, 12, 20, 12, 32, 28, 28, 48 ] gap> CharTable(A); 1 2 1 1 2 3 2 3 3 1 2 0 123 1 . . . . . . 12 1 2 . . . . . 13 1 . 2 . . . . 23 1 . . 2 . . . 1 1 4 4 . 8 . . 2 1 2 2 4 . 4 . 0 1 6 12 8 24 24 48 gap> CharacterDecomposition(A,LeftTraces(A,I)); [ 0, 0, 1, 0, 1, 1, 1 ]
115.29 Idempotents for finite dimensional algebras
returns a complete set of orthogonal primitive idempotents of A. This is defined currently for Solomon algebras, quotient by polynomial algebras, group algebras and Grothendieck rings.
gap> A:=SolomonAlgebra(CoxeterGroup("B",2)); SolomonAlgebra(CoxeterGroup("B",2),Rationals) gap> e:=Idempotents(A); [ X(12)-1/2*X(1)-1/2*X(2)+3/8*X(0), 1/2*X(1)-1/4*X(0), 1/2*X(2)-1/4*X(0), 1/8*X(0) ] gap> Sum(e)=A.one; true gap> List(e, i-> i^2-i); [ 0*X(12), 0*X(12), 0*X(12), 0*X(12) ] gap> l:=[[1,2],[1,3],[1,4],[2,1],[2,3],[2,4],[3,1],[3,2],[3,4]];; gap> Set(List(l, i-> e[i[1]]*e[i[2]])); [ 0*X(12) ]
115.30 LeftIndecomposableProjectives
returns the list of left ideals Ae, where e runs over the list
Idempotents(A)
.
gap> A:=SolomonAlgebra(CoxeterGroup("B",3)); SolomonAlgebra(CoxeterGroup("B",3),Rationals) gap> proj:=LeftIndecomposableProjectives(A);; gap> List(proj,Dimension); [ 2, 1, 1, 1, 1, 1, 1 ]
returns the Cartan matrix of A that is, the matrix dim Hom(P,Q), where
P and Q run over the list LeftIndecomposableProjectives(A)
.
gap> A:=SolomonAlgebra(CoxeterGroup("B",4)); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> CartanMatrix(A); 1 2 1 2 1 1 3 1 2 2 3 2 3 1 2 4 3 3 3 4 2 4 4 2 4 1 0 1234 1 . . . . . . . . . . . 13 1 1 . . . . . . . . . . 23 1 . 1 . . . . . . . . . 123 . . . 1 . . . . . . . . 234 . . . . 1 . . . . . . . 2 . . . 1 1 1 . . . . . . 124 . . . . . . 1 . . . . . 134 . . . . . . . 1 . . . . 12 . . . . . . . . 1 . . . 24 . . . . . . . . . 1 . . 1 . . . . . . . . . . 1 . 0 . . . . . . . . . . . 1
115.32 PolynomialQuotientAlgebra
An example - quotient by polynomial algebras
PolynomialQuotientAlgebra(P)
Given a polynomial P with coefficients in K,
A:=PolynomialQuotientAlgebra(P)
returns the algebra A=K[X]/(P(X)). Note
that the class of a polynomial Q is printed as Class(Q)
and that A is
endowed with the field A.class
: this function sends a polynomial Q to
its image in A.
gap> q:=X(Rationals);; q.name:="q";; gap> P:=1+2*q+q^3;; gap> A:=PolynomialQuotientAlgebra(P); Rationals[q]/(q^3 + 2*q + 1) gap> x:=A.basis[3]; Class(q^2) gap> x^2; Class(-2*q^2 - q) gap> 3*x - A.one; Class(3*q^2 - 1) gap> A.class(q^6); Class(4*q^2 + 4*q + 1)
returns the group algebra K[G] of the finite group G over K. If K
is not given, then the program takes for K the field of rational numbers.
The i-th element in the list of elements of G is printed by default as
e(i)
. This function endows G with G.law containing the multiplication
table of G.
returns the image of the element x of K[G] under the augmentation morphism.
gap> G:=SL(3,2);; gap> A:=GroupAlgebra(G); GroupAlgebra(SL(3,2),Rationals) gap> A.dimension; 168 gap> A.basis[5]*A.basis[123]; e(87) gap> (A.basis[3]-A.basis[12])^2; e(55) - e(59) - e(148) + e(158) gap> Augmentation(last); 0
returns the Grothendieck ring K ⊗ Z Irr G. The i-th irreducible
ordinary character is printed as X(i)
. This function endows G with
G.tensorproducts
containing the table of tensor products of irreducible
ordinary characters of G.
115.36 Degree for elements of Grothendieck rings
returns the image of the element x of GrothendieckRing(G,K)
under the
morphism of algebras sending a character to its degree (viewed as an
element of K).
gap> G:=SymmetricGroup(4); Group( (1,4), (2,4), (3,4) ) gap> Display(CharTable(G)); 2 3 2 3 . 2 3 1 . . 1 . 1a 2a 2b 3a 4a 2P 1a 1a 1a 3a 2b 3P 1a 2a 2b 1a 4a X.1 1 1 1 1 1 X.2 1 -1 1 1 -1 X.3 2 . 2 -1 . X.4 3 -1 -1 . 1 X.5 3 1 -1 . -1 gap> A:=GrothendieckRing(G); GrothendieckRing(Group( (1,4), (2,4), (3,4) ),Rationals) gap> A.basis[4]*A.basis[5]; X(2) + X(3) + X(4) + X(5) gap> Degree(last); 9
Let (W,S) be a finite Coxeter group. If w is an element of W, let R(w)={s ∈ S | l(ws) > l(w)}. If I is a subset of S, we set YI={w ∈ W | R(w)=I}, XI={w ∈ W | R(w) ⊃ I}.
Note that XI is the set of minimal length left coset representatives of W/WI. Now, let yI=∑w ∈ YI w, xI=∑w ∈ XI w.
They are elements of the group algebra ZW of W over Z. Now, let
Σ(W) = ⊕I ⊂ S ℤ yI = ⊕I ⊂ S ℤ xI. |
returns the Solomon descent algebra of the finite Coxeter group (W,S)
over K. If S=[s1,...,sr], the element xI corresponding to the
subset I=[s1,s2,s4] of S is printed as X(124)
. Note that
A:=SolomonAlgebra(W,K)
is endowed with the following fields:
A.group
:
A.basis
:
A.xbasis
:
A.ybasis
:
A.injection
:SolomonAlgebraOps.injection(A)
.
Note that SolomonAlgebra(W,K)
endows W with the field W.solomon which
is a record containing the following fields:
W.solomon.subsets
:
W.solomon.conjugacy
:W.solomon.subsets
, of the subsets I of S such that WI lies in this
conjugacy class).
W.solomon.mackey
:
gap> W:=CoxeterGroup("B",4); CoxeterGroup("B",4) gap> A:=SolomonAlgebra(W); SolomonAlgebra(CoxeterGroup("B",4),Rationals) gap> X:=A.xbasis;; gap> X(123)*X(24); 2*X(2) + 2*X(4) gap> SolomonAlgebraOps.injection(A)(X(123)); e(1) + e(2) + e(3) + e(8) + e(19) + e(45) + e(161) + e(361) gap> W.solomon.subsets; [ [ 1, 2, 3, 4 ], [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ ] ] gap> W.solomon.conjugacy; [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7, 8 ], [ 9, 11 ], [ 10 ], [ 12 ], [ 13, 14, 15 ], [ 16 ] ]
115.39 Generalized Solomon algebras
In this subsection, we refer to the paper BH05.
If n is a non-zero natural number, we denote by Wn the Weyl group of type Bn and by W-n the Weyl group of type An-1 (isomorphic to the symmetric group of degree n). If C=[i1,...,ir] is a signed composition of n, we denote by WC the subgroup of Wn equal to WC = Wi1 x ... x Wir. This is a subgroup generated by reflections (it is not in general a parabolic subgroup of Wn). Let XC = {x ∈ WC | l(xw) ≥ l(x) ∀ w ∈ WC}. Note that XC is the set of minimal length left coset representatives of Wn/WC. Now, let xC=∑w ∈ XC w. We now define Σ'(Wn) = ⊕C ℤ xC, where C runs over the signed compositions of n. By BH05, this is a subalgebra of ZWn. Now, let YC be the set of elements of XC which are not in any other XD and let yC=∑w ∈ YC w. Then Σ'(Wn) = ⊕C ℤ yC. Moreover, the linear map θ' : Σ'(Wn) → K(Wn) defined by θ'(xC) = IndWCWn 1 is a surjective homomorphism of algebras (see BH05). We still call it the Solomon homomorphism.
115.40 GeneralizedSolomonAlgebra
GeneralizedSolomonAlgebra(n,K)
returns the generalized Solomon algebra Σ'(Wn) defined
above. If C is a signed composition of n, the element xC is printed
as X(C)
Note that A:=GeneralizedSolomonAlgebra(n,K)
is endowed with
the following fields:
A.group
:CoxeterGroup("B",n)
A.xbasis
:
A.ybasis
:
A.injection
:
Note that GeneralizedSolomonAlgebra(W,K)
endows W with the field
W.generalizedsolomon
which is a record containing the following fields:
W.generalizedsolomon.signedcompositions
:
W.generalizedsolomon.conjugacy
:[1..2*3^(n-1)]
as in the
classical Solomon algebra case).
W.generalizedsolomon.mackey
:
gap> A:=GeneralizedSolomonAlgebra(3); GeneralizedSolomonAlgebra(CoxeterGroup("B",3),Rationals) gap> W:=A.group; CoxeterGroup("B",3) gap> W.generalizedsolomon.signedcompositions; [ [ 3 ], [ -3 ], [ 1, 2 ], [ 2, 1 ], [ 2, -1 ], [ -1, 2 ], [ 1, -2 ], [ -2, 1 ], [ -1, -2 ], [ -2, -1 ], [ 1, 1, 1 ], [ 1, -1, 1 ], [ 1, 1, -1 ], [ -1, 1, 1 ], [ 1, -1, -1 ], [ -1, 1, -1 ], [ -1, -1, 1 ], [ -1, -1, -1 ] ] gap> W.generalizedsolomon.conjugacy; [ [ 1 ], [ 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ], [ 9, 10 ], [ 11 ], [ 12, 13, 14 ], [ 15, 16, 17 ], [ 18 ] ] gap> X:=A.xbasis; function ( arg ) ... end gap> X(2,1)*X(1,-2); X(1,-2)+X(1,-1,1)+X(1,1,-1)+X(1,-1,-1)
returns the image of the element x of A=SolomonAlgebra(W,K)
or
A=GeneralizedSolomonAlgebra(n,K)
in GrothendieckRing(W,K)
under Solomon
homomorphism.
gap> A:=GeneralizedSolomonAlgebra(2); GeneralizedSolomonAlgebra(CoxeterGroup("B",2),Rationals) gap> Display(CharTable(A.group)); B2 2 3 2 3 2 2 11. 1.1 .11 2. .2 2P 11. 11. 11. 11. .11 11. 1 1 1 -1 -1 1.1 2 . -2 . . .11 1 -1 1 -1 1 2. 1 1 1 1 1 .2 1 -1 1 1 -1 gap> A.basis[3]*A.basis[2]; -X(1,-1)+X(-1,1)+X(-1,-1) gap> SolomonHomomorphism(last); X(1)+2*X(2)+X(3)+X(4)+X(5)
This constructs the 0-Hecke algebra of the finite Coxeter group W.
gap> W:=CoxeterGroup("B",2); CoxeterGroup("B",2) gap> A:=ZeroHeckeAlgebra(W); ZeroHeckeAlgebra(CoxeterGroup("B",2)) gap> Radical(A); TwoSidedIdeal(ZeroHeckeAlgebra(CoxeterGroup("B",2)), [ T(21)-T(12), T(21)-T(212), T(21)-T(121), T(21)-T(1212) ])
We just present here some examples of computations with the above programs (on a usual PC: 2 GHz, 256 Mo).
Constructing the group algebra of a Weyl group of type F4 (1124 elements): 4 seconds
gap> W:=CoxeterGroup("F",4); CoxeterGroup("F",4) gap> A:=GroupAlgebra(W); GroupAlgebra(CoxeterGroup("F",4),Rationals) gap> time; 4080
Constructing the Grothendieck ring of the Weyl group of type E8 (696 729 600 elements, 112 irreducible characters): 5 seconds
gap> W:=CoxeterGroup("E",8); CoxeterGroup("E",8) gap> A:=GrothendieckRing(W); GrothendieckRing(CoxeterGroup("E",8),Rationals) gap> time; 5950
Computing with the Solomon algebra of the Weyl group of type E6
• Constructing the algebra:
• Computing the Loewy length: 1 second
• Computing the Cartan Matrix: around 12 seconds
gap> W:=CoxeterGroup("E",6); CoxeterGroup("E",6) gap> A:=SolomonAlgebra(W); SolomonAlgebra(CoxeterGroup("E",6),Rationals) gap> time; 4610 gap> LoewyLength(A); 5 gap> time; 1060 gap> CartanMatrix(A); 1 2 1 1 1 1 3 2 2 2 3 1 1 1 1 2 4 3 3 3 4 2 2 2 3 1 1 1 3 5 4 4 5 5 3 3 4 5 2 2 3 1 1 4 6 5 6 6 6 4 5 5 6 3 5 4 2 3 1 5 0 123456 1 . . . . . . . . . . . . . . . . 12345 1 1 . . . . . . . . . . . . . . . 12346 1 . 1 . . . . . . . . . . . . . . 12356 . . . 1 . . . . . . . . . . . . . 13456 . . . . 1 . . . . . . . . . . . . 1234 1 1 . . 1 1 . . . . . . . . . . . 1235 2 . 1 1 . . 1 . . . . . . . . . . 1245 1 . 1 . 1 . . 1 . . . . . . . . . 1356 . . . . . . . . 1 . . . . . . . . 123 2 1 1 . 2 1 . 1 1 1 . . . . . . . 125 1 1 1 1 . . . . . . 1 . . . . . . 134 1 1 . . 1 1 . . . . . 1 . . . . . 12 2 1 1 . 1 1 . 1 1 1 . . 1 . . . . 13 1 1 . . 1 1 . . . . . . . 1 . . . 1 1 1 . . 1 1 . . . . . 1 . . 1 . . 2345 . . . . . . . . . . . . . . . 1 . 0 . . . . . . . . . . . . . . . . 1 gap> time; 12640Previous Up
gap3-jm