# Is there a CAS that can solve a given system of equations in a finite group algebra $kG$?

MathOverflow Asked by Bernhard Boehmler on December 1, 2020

Let $$k$$ be a finite field with char$$(k)=p>0$$. Let $$G$$ be a finite group.

Consider the group algebra $$kG$$.

I would like to solve a given system of equations in $$kG$$.

Question:

Is there a computer algebra system that can solve a given system of equations in $$kG$$?

Any help is appreciated.

Thank you very much.

A partial answer in a very special case, but still possibly useful to record.

The search for idempotents in a group algebra can be simplified by using GAP's MeatAxe: https://www.gap-system.org/Manuals/doc/ref/chap69.html

For example, if $$G$$ is the dihedral group with eight elements, and $$F$$ the field with eight elements, the following code verifies that $$kG$$ is indecomposable as a $$G$$-module, which means that the only idempotents are zero and one.

G := DihedralGroup(8)
k := FiniteField(8);
cayley := Action(G, AsList(G), OnRight);
reg := PermutationGModule(cayley, k);
MTX.IsIndecomposable(reg);


More generally, if $$M$$ is a MeatAxe module, you can compute a direct sum decomposition using

MTX.Indecomposition(M)


Of course, this doesn't solve for all the idempotents---it only returns a few. You can also use

MTX.HomogeneousComponents(M)


to break the search into smaller algebras before using a more brute-force method.

Answered by John Wiltshire-Gordon on December 1, 2020

As you say you have a given system of equations, you can do this by brute-force in GAP. The following constructs a group algebra $$kG$$ in GAP -- this one constructs $$kG$$ when $$k = GF(4)$$ and $$G = C_2$$.

G := CyclicGroup(2);
k := FiniteField(4);
kG := GroupRing(k,G);


The output is then

gap> kG;
<algebra-with-one of dimension 2 over GF(2^2)>


and, as expected, one can run commands such as

gap> Size(kG);
16
gap> Elements(kG);
[ <zero> of ..., (Z(2)^0)*<identity> of ..., (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1,
(Z(2)^0)*<identity> of ...+(Z(2^2))*f1, (Z(2)^0)*<identity> of ...+(Z(2^2)^2)*f1, (Z(2^2))*<identity> of ...,
(Z(2^2))*<identity> of ...+(Z(2)^0)*f1, (Z(2^2))*<identity> of ...+(Z(2^2))*f1, (Z(2^2))*<identity> of ...+(Z(2^2)^
2)*f1, (Z(2^2)^2)*<identity> of ..., (Z(2^2)^2)*<identity> of ...+(Z(2)^0)*f1,
(Z(2^2)^2)*<identity> of ...+(Z(2^2))*f1, (Z(2^2)^2)*<identity> of ...+(Z(2^2)^2)*f1, (Z(2)^0)*f1, (Z(2^2))*f1,
(Z(2^2)^2)*f1 ]


Now to solve your given system of equations is easy by brute force.

Answered by Carl-Fredrik Nyberg Brodda on December 1, 2020