# Modules over Basic Algebras

A module $M$ over a basic algebra $B$ is presented as a sequence of matrices, one for each generator of the algebra.

## Indecomposable Projective Modules

The indecomposable projective modules are defined from the structure of the algebra and have associated path trees that solve the homomorphism lifting problem.

### `ProjectiveModule(B, i): AlgBas, RngIntElt -> ModRng`

The $i^{th}$ projective module of the basic algebra $B$.

### `PathTree(B, i): AlgBas, RngIntElt -> ModRng`

The path tree of the $i^{th}$ projective module of the basic algebra $B$.

### `ActionGenerator(B, i): AlgBas, RngIntElt -> SeqEnum`

The sequence of matrices for the generators of the basic algebra $B$ acting on the $i^{th}$ projective module of $B$.

### `IdempotentActionGenerators(B, i): AlgBas, RngIntElt -> SeqEnum`

The sequence of matrices for the idempotent generators of the basic algebra $B$ acting on the $i^{th}$ projective module of $B$.

### `NonIdempotentActionGenerators(B, i): AlgBas, RngIntElt -> SeqEnum`

The sequence of matrices for the nonidempotent generators of the basic algebra $B$ acting on the $i^{th}$ projective module of $B$.

### `Injection(B, i, v): AlgBas, RngIntElt, ModRngElt -> AlgBasElt`

Given a vector $v$ in in the $i^{th}$ projective module of the basic algebra $B$, the function returns the image of inclusion of $v$ into $B$.

## Creation

### `AModule(B, Q): AlgBas, SeqEnum[AlgMatElt] -> ModRng`

Given a basic algebra $B$ and a sequence $Q$ of elements in a matrix algebra the function returns the $B$-module $M$ on which the generators of $B$ act by multiplication by the corresponding elements of $Q$.

### `ProjectiveModule(B, S): AlgBas, SeqEnum[RngIntElt] -> ModAlg, SeqEnum, SeqEnum`

Given a sequence $S = [s_1,s_2, ... ]$, the function returns a projective module which is the direct sum of $s_1$ copies of the first projective of the algebra $B$, $s_2$ copies of the second, etc. It also returns the sequence of inclusions and projections from and to the indecomposable projective modules.

### `IrreducibleModule(B, i): AlgBas, RngIntElt -> ModAlg`

### `SimpleModule(B, i): AlgBas, RngIntElt -> ModAlg`

The $i^{th}$ irreducible module of the algebra $B$. The module is the quotient of the $i^{th}$ projective module by its radical.

### `ZeroModule(B): AlgBas -> ModAlg`

The zero $B$-module.

### `RightRegularModule(B): AlgBas -> ModAlg`

The algebra $B$ as a right module over itself. The module is the direct sum of the projectives modules of $B$.

### `RegularRepresentation(v): AlgBasElt -> AlgMatElt`

If $v$ is an element of a basic algebra given as a vector in the underlying space, then the function computes the matrix of the action by right multiplication of the element on the algebra.

### `Restriction(M, B, xi): ModAlgBas, AlgBas, ModMatFldElt -> ModAlgBas`

If $B$ is a subalgebra of the basic algebra $A$, $\xi$ is the embedding of $B$ into $A$, and $M$ is an $A$-module, then the function returns the restriction of M to a B-module.

### `ChangeAlgebra(M, B, xi): ModAlgBas, AlgBas, Map -> ModAlgBas`

### `ChangeAlgebra(M, B, xi): ModAlgBas, AlgBas, ModMatFldElt -> ModAlgBas`

Given a module $M$ over an algebra $A$ and an algebra homomorphism $\xi$ from $B$ to $A$, the function returns the module $M$ as a $B$-module.

### `JacobsonRadical(M): ModAlg -> ModAlg`

The Jacobson radical of the module $M$.

### `Socle(M): ModAlg -> ModAlg`

The socle of the module $M$. The sum of the simple submodules of $M$.

## Access Functions

### `Algebra(M): ModAlg -> AlgBas`

Given a module $M$ over a basic algebra $B$, the function returns $B$.

### `Dimension(M): ModAlg -> RngIntElt`

The dimension of the module $M$ over its base ring.

### `Action(M): ModAlg -> AlgMat`

The matrix algebra of the action of the algebra of $M$ on $M$.

### `IsomorphismTypesOfRadicalLayers(M): ModAlgBas -> SeqEnum`

Given a module $M$ over a basic algebra, returns the sequence of isomorphism types of simple composition factors in each layer of the radical filtration of $M$.

### `IsomorphismTypesOfSocleLayers(M): ModAlgBas -> SeqEnum`

Given a module $M$ over a basic algebra, returns a sequence of isomorphism types of simple composition factors in each socle layer with reversed order, *i. e.* isomorphism types of the socle of $M$ will appear last.

### `IsomorphismTypesOfBasicAlgebraSequence(S): SeqEnum -> SeqEnum`

Given a sequence of irreducible modules $S$ for a basic algebra $A$, return a sequence of isomorphism types comparing with the simple modules of $A$.

### `Example: Restriction To Center (ex-6be5c5)`

We show the restriction of a module over an algebra $A$ to a subalgebra of $A$.

```magma
> G := SmallGroup(32,7);
> A := BasicAlgebra(G);
> C, mu := Center(A);
> X := RightRegularModule(A);
> Z := JacobsonRadical(X);
> L := Restriction(Z,C,mu);
> L;
AModule L of dimension 31 over GF(2)
> A eq Algebra(L);
True
> IndecomposableSummands(L);
[
    AModule of dimension 1 over GF(2),
    AModule of dimension 30 over GF(2)
]
> Dimension(Socle(L));
16

```

Next we show how to pull back modules along a quotient map. We use the same algebra $A$.

```magma
> U := ideal<A|[A.13 +A.17]>;
> Q, theta := quo<A|U>;
> X := ProjectiveModule(Q,1);
> Y := ChangeAlgebras(X,A,theta);
> Y;
AModule Y of dimension 16 over GF(2)

```

### `Example: ChangeAlgebras 2 (ex-5bc3d0)`

Here is another example of pulling back a module along a quotient map. This one involves algebras with more than one idempotent.

```magma
> load m11;
Loading "/usr/local/dmagma/libs/pergps/m11"
M11 - Mathieu group on 11 letters - degree 11
Order 7 920 = 2^4 * 3^2 * 5 * 11;  Base 1,2,3,4
Group: G
> A:= BasicAlgebraOfPrincipalBlock(G,GF(2));
> A;
Basic algebra of dimension 22 over GF(2)
Number of projective modules: 3
Number of generators: 9
> DimensionsOfProjectiveModules(A);
[ 8, 8, 6 ]
> I := ideal<A|[A.9]>;
> B, mu := quo<A|I>;
> B;
Basic algebra of dimension 6 over GF(2)
Number of projective modules: 2
Number of generators: 5
> P := ProjectiveModule(B,1);
> P;
AModule P of dimension 3 over GF(2)
> Q := ChangeAlgebras(P,A,mu);
> Algebra(Q) eq A;
true

```

### `Example: Radical Layers (ex-e824ff)`

In this example, we investigate the structure of the projective modules of a basic algebra.

```magma
> G := PSL(3,3);
> N := Normalizer(G,Sylow(G,2));
> A := BasicAlgebraOfHeckeAlgebra(G,N,GF(2));
> DimensionsOfProjectiveModules(A);
[ 1, 2, 3, 9, 9, 1, 1, 1, 1 ]
> IsomorphismTypesOfRadicalLayers(ProjectiveModule(A,4));
[
    [ 4 ],
    [ 2, 3, 4, 5 ],
    [ 4, 4, 5 ],
    [ 5 ]
]
> IsomorphismTypesOfSocleLayers(ProjectiveModule(A,4));
[
    [ 4 ],
    [ 3, 4, 5 ],
    [ 2, 4, 5 ],
    [ 4, 5 ]
]

```

So we see that, unlike a group algebra, a Hecke algebra can have indecomposable projective modules whose socles are not simple.

## Predicates

The following functions return a boolean value.

### `IsSemisimple(M): ModAlg -> BoolElt, SeqEnum`

Returns `true` if the module $M$ is a semisimple module and `false` otherwise. If `true`, then the function also returns a list of the ranks of the primitive idempotents of the algebra. This is also a list of the multiplicities of the simple modules of the algebra as composition factors in a composition series for the module.

### `IsProjective(M): ModAlg -> BoolElt, SeqEnum`

Returns `true` if the module $M$ is projective. The function also returns a sequence of multiplicities of the standard projective modules as direct summands of the projective cover of $M$.

### `IsInjective(M): ModAlg -> BoolElt, SeqEnum`

Returns `true` if the module $M$ is injective. The function also returns a sequence of multiplicities of the standard injective modules as direct summands of the injective hull of $M$.

## Elementary Operations

### `m * b: ModAlgElt, AlgBasElt -> ModAlgElt`

Given an element $b$ in a basic algebra $B$ and an element $m$ in a module $M$ over $B$, $m*b$ is the product.

### `Example: A Modules (ex-bb4604)`

We obtain the dimensions of the radical layers of the group algebra of an extra special group of order 243 over a field of characteristic 3.

```magma
> G := ExtraSpecialGroup(3,2);
> G;
Permutation group G acting on a set of cardinality 243
> ff := GF(3);
> A := BasicAlgebra(G,ff);
> A;
Basic algebra of dimension 243 over GF(3)
Number of projective modules: 1
Number of generators: 6
> P := ProjectiveModule(A,1);
> P;
AModule P of dimension 243 over GF(3)
> R := JacobsonRadical(P);
> R;
AModule R of dimension 242 over GF(3)
> while Dimension(R) ne 0 do
>     T := JacobsonRadical(R);
>     print Dimension(R) - Dimension(T);
>     R := T;
> end while;
4
11
20
30
36
39
36
30
20
11
4
1

```

### `Example: AModules 2 (ex-2f301a)`

We consider the mod-2 group algebra of an extraspecial group of order 128, and construct the module induced from the trivial module on the subgroups of order 4 generated by the first generator of the group.

```magma
> G := ExtraSpecialGroup(2,3);
> G;
Permutation group G acting on a set of cardinality 128
> F := GF(2);
> A := BasicAlgebra(G,F);
> A;
Basic algebra of dimension 128 over GF(2)
Number of projective modules: 1
Number of generators: 8
> A.1;
(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 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 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)

```

Note that `A.1` is the unique idempotent (identity element) in the group algebra, whereas `A.2` is `G.1 - 1` where `G.1` is the first generator of the group.

```magma
> A.2;
(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 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 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)
> g := A.1+A.2;

```

Now we check the order of `g`.

```magma
> g^2;
(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 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 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)
> g^4;
(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 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 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)
> g^4 eq A!1;
true

```

So `g` has order 4.

```magma
> P := ProjectiveModule(A,1);
> P;
AModule P of dimension 128 over GF(2)

```

Note that `P` is generated by `P.1` which corresponds to the identity element of `A` if we think of `P` as the algebra `A` as a module over itself. Now we create the induced module as the submodule generated by $(\hbox{\tt g}-1)^3$, since $(\hbox{\tt g}-1)^4 = 0$.

```magma
> U := sub<P|P.1*A.6>;
> U;
AModule U of dimension 32 over GF(2)

```

Because the dimension is a quarter of the order of the group we can be sure that we have the right thing by just checking that `U` is generated by a `g` fixed point.

```magma
> U.1*g eq U.1;
true

```
