[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Basic Algebras

In the implementation the algebra is given as the sequence of projective modules P_1, ..., P_s together with a path tree for each module. The projective module consists of a matrix for each generator a_1, a_2, ..., a_t giving the action of the generator on the vector space of the module. The basis b_1, b_2, ..., b_n for the vector space of P_i is chosen so that each basis element is the image of a basis element of lower index under multiplication by a nonidempotent generator of A. The structure of the basis is recorded in the path tree which is a sequence [<1, i>, <j, k>, ... ] of 2-tuples of length n = Dimension(P_i). The first entry <1, i> indicates that b_1 = b_1 * a_i where a_i is the primitive idempotent in the algebra A such that P_i = A.a_i. Similarly, if entry number k in the path tree is < u, v > then b_k = b_u * a_v where v > s if k > 1.

Subsections

Creation

BasicAlgebra(Q) : SeqEnum[Tup] -> AlgBas
Given a sequence [Q_i, ..., Q_s] of 2-tuples such that each Q_i = M_i, T_i consisting of a module for a matrix algebra M_i and a path tree T_i for M_i, the function creates the basic algebra whose projective modules are the first entries M_1, ..., M_s and the path trees are the corresponding second entries.
BasicAlgebra(G, k) : GrpPerm, FldFin -> AlgBas
BasicAlgebra(G, k) : GrpPC, FldFin -> AlgBas
Given a finite p-group G and a field k of characteristic p, returns the group algebra kG in the form of a basic algebra.
BasicAlgebra(FA, N, LR, R) : AlgFP, RngIntElt, SeqEnum, SeqEnum -> AlgBas
Creates a basic algebra from a minimal set of relations. The input is a free algebra F, the number s of idempotents in the basic algebra, a sequence L = [ell_1, ell_2, ..., ell_(t - s)] of the right and left idempotents corresponding to the nonidempotent generators of the algebra and a list R of relations. If the free algebra F is generated by elements a_1, ..., a_t, the function assumes that a_1, ..., a_s are the mutually orthogonal primitive idempotents and it creates all of the appropriate relations including a_1 + ... + a_s = 1. The nonidempotent generators are then a_(s + 1), ..., a_t. So ell_k = < i, j > for i, j <= s means that a_(s + k) = a_i * a_(s + k) * a_j. Each of the relations in R is given as a linear combination of words in the nonidempotent generators a_(s + 1), ..., a_t in F.
TensorProduct(A, B) : AlgBas, AlgBas-> AlgBas
The tensor product of the basic algebras A and B.

Access Functions

NumberOfProjectives(A) : AlgBas -> RngIntElt
The number of nonisomorphic indecomposable projective modules in the basic algebra A.
B . i : AlgBas, RngIntElt -> AlgBasElt
The i^(th) element in the standard basis for the underlying vector space of the algebra B.
BaseRing(B) : AlgBas -> Rng
CoefficientRing(B) : AlgBas -> Rng
Given an algebra B over a field k the function returns k.
VectorSpace(B) : AlgBas -> ModTupFld
KSpace(B) : AlgBas -> ModTupFld
The underlying k-vector space of the algebra B. The space is the direct sum of the underlying vector space of the indecomposable projective modules.
Dimension(B) : AlgBas -> RngIntElt
The dimension of the underlying vector space of the algebra B.
Basis(B) : AlgBas -> SeqEnum
A basis of the underlying vector space of the algebra B.
Generators(B) : AlgBas -> SeqEnum
The generators of the algebra A as a sequence of elements in the underlying vector space of the algebra B.

IdempotentGenerators(B) : AlgBas -> SeqEnum
The sequence of mutually orthogonal idempotent generators of the basic algebra B as elements in the underlying vector space of B.
IdempotentPositions(B) : AlgBas -> SeqEnum
The sequence N = [n_1, ..., n_s] such that B.n_1, ..., B.n_s are the mutually orthogonal idempotent generators of the algebra B.
NonIdempotentGenerators(B) : AlgBas -> SeqEnum
The sequence of nonidempotent generators of the basic algebra B as elements in the underlying vector space of the algebra B.
Random(B) : AlgBas -> AlgBasElt
A random element of the algebra B as an element of the underlying vector space of B.
NumberOfGenerators(B) : AlgBas -> RngIntElt
Ngens(B) : AlgBas -> RngIntElt
The number of generators (idempotent and nonidempotent) generators of the basic algebra B.
DimensionsOfProjectiveModules(B) : AlgBas -> SeqEnum
The sequence of the dimensions of the projective modules of the basic algebra B.
DimensionsOfInjectiveModules(B) : AlgBas -> SeqEnum
The sequence of the dimensions of the injective modules of the basic algebra B.

Elementary Operations

a + b : AlgBasElt, AlgBasElt -> AlgBasElt
The sum of the two elements a and b.
a * b : AlgBasElt, AlgBasElt -> AlgBasElt
The product of the two elements a and b.
a ^ n : AlgBasElt, RngIntElt -> AlgBasElt
The n^(th) power of the element a.

Example AlgBas_BasicAlgebras (H81E1)

> ff := GF(7);
> FF:= FreeMonoid(6);
> FA<e1,e2,e3,a,b,c> := FreeAlgebra(ff,FF);
> rrr := [a*b*a*b*a*b];
> D := BasicAlgebra(FA,3,[<1,2>,<2,1>,<2,3>],rrr);
> D;
Basic algebra of dimension 21 over GF(7)
Number of projective modules: 3
Number of generators: 6

> DimensionsOfProjectiveModules(D);
[ 9, 11, 1 ]
> DimensionsOfInjectiveModules(D);
[ 6, 7, 8 ]

So we can see that the algebra is not self-injective.

Now we can check the nilpotence degree of the radical of cs D. The radical of cs{D} is generated by the nonidempotent generators.

> S := NonIdempotentGenerators(D);
> S;
[ (0 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 1 0 0 0 0 0 
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) ]
> S2 := [x*y:x in S,y in S|x*y ne 0];
> #S2;
3
> S3 := [x*y:x in S2,y in S|x*y ne 0];
> #S3;
3
> S4 := [x*y:x in S3,y in S|x*y ne 0];
> #S4;
3
> S5 := [x*y:x in S4,y in S|x*y ne 0];
> #S5;
3
> S6 := [x*y:x in S5,y in S|x*y ne 0];
> #S6;
2
> S7 := [x*y:x in S6,y in S|x*y ne 0];
> #S7;
1
> S8 := [x*y:x in S7,y in S|x*y ne 0];
> #S8;
0
> FF := FreeMonoid(4);
> FA<e1,e2,a,b> := FreeAlgebra(GF(3),FF);
> MM:= [e1 +e2 - FA!1, a*b*a, b*a*b];
> BS3 := BasicAlgebra(FA, 2, [<1,2>,<2,1>],MM);
> 
> BS3;
Basic algebra of dimension 6 over GF(3)
Number of projective modules: 2
Number of generators: 4
> DimensionsOfProjectiveModules(BS3);
[ 3, 3 ]
Next we create the basic algebra for the cyclic group of order 3.

> gg := CyclicGroup(3);
> BC3 := BasicAlgebra(gg,GF(3));
> 
> BC3;
Basic algebra of dimension 3 over GF(3)
Number of projective modules: 1
Number of generators: 2

We create the basic algebra for the direct product C_3 x S_3.

> A := TensorProduct(BS3,BC3);
> A;
Basic algebra of dimension 18 over GF(3)
Number of projective modules: 2
Number of generators: 6
> 
> DimensionsOfProjectiveModules(A);
[ 9, 9 ]
Note that the matrices are sparse so we will define them by specifying the nonzero rows.

> ff := GF(2);
> MM6 := MatrixAlgebra(ff,6);
> e11 := MM6!0;
> e12 := MM6!0;
> VV6 := VectorSpace(GF(2),6);
> BB6 := Basis(VV6);
> e11[1]  := BB6[1];
> e11[3]  := BB6[3];
> e11[4]  := BB6[4];
> e11[6]  := BB6[6];
> e12[2]  := BB6[2];
> e12[5]  := BB6[5];
> a1 := MM6!0;
> b1 := MM6!0;
> c1 := MM6!0;
> d1 := MM6!0;
> a1[1] := BB6[2];
> b1[1] := BB6[3];
> c1[2] := BB6[4];
> a1[3] := BB6[5];
> b1[4] := BB6[6];
> c1[5] := BB6[6];
> A1 := sub< MM6 | [e11, e12, a1, b1, c1, d1] >;
> T1 := [ <1,1>, <1,3>, <1,4>, <2,5>, <3,3>, <4,4>];
> 
> VV5 := VectorSpace(ff,5);
> BB5 := Basis(VV5);
> MM5 := MatrixAlgebra(ff,5);
> e21 := MM5!0;
> e22 := MM5!0;
> e22[1]  := BB5[1];
> e22[3]  := BB5[3];
> e22[5]  := BB5[5];
> e21[2]  := BB5[2];
> e21[4]  := BB5[4];
> a2 := MM5!0;
> b2 := MM5!0;
> c2 := MM5!0;
> d2 := MM5!0;
> f2 := MM5!0;
> g2 := MM5!0;
> c2[1] := BB5[2];
> d2[1] := BB5[3];
> b2[2] := BB5[4];
> d2[3] := BB5[5];
> a2[4] := BB5[5];
> A2 := sub< MM5 | [e21, e22, a2, b2, c2, d2] >;
> T2 := [<1,2>, <1,5>, <1,6>, <2,4>, <3,6>];
> 
> C := BasicAlgebra( [<A1, T1>, <A2, T2>] );
> C;
Basic algebra of dimension 11 over GF(2)
Number of projective modules: 2
Number of generators: 6
> DimensionsOfProjectiveModules(C);
[ 6, 5 ]
> DimensionsOfInjectiveModules(C);
[ 6, 5 ]

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]