Can GAP determine whether a local algebra is Frobenius?

71 Views Asked by At

Let $A$ be a local(not necessarily commutative) finite dimensional algebra over a (finite if it helps) field $K$. Is there a way to check with GAP (without using QPA as we do not know quiver and relations for A in general) to quickly check whether $A$ is a Frobenius algebra? Note that this is equivalent to the condition that the vector space dimension of the socle of the regular module $A$ is one-dimensional.

A concrete situation I have in mind is this: Let $B$ be the algebra $K[x_1,...,x_n]/(x^i_^2)$ (which is the group algebra of the elementary abelian 2-groups when the characteristic of $K$ is 2) and $A$ a subalgebra with identity generated by some elements of $B$ of positive degree. $B$ could also be another group algebra of a $p$-group such as the quaternions.

Here is a concrete example (constructes using QPA, so you have to do LoadPackage("qpa") first in GAP):

Q:=Quiver(1,[[1,1,"x"],[1,1,"y"],[1,1,"z"]]);KQ:=PathAlgebra(GF(3),Q);AssignGeneratorVariables(KQ);rel:=[x*y-y*x,y*z-z*y,x*z-z*x,x^2,y^2,z^2];B:=KQ/rel;Dimension(B);

gens:=GeneratorsOfAlgebra(B);e:=gens[2];x:=gens[3];y:=gens[4];z:=gens[5];

A:=Subalgebra(B,[e,x+y+z,x*y,x*y*z]);O:=Basis(A);Dimension(A);
1

There are 1 best solutions below

7
On

The MeatAxe works for finite dimensional modules of associative algebras, given by matrices for algebra generators, describing the action on the module.

Build matrices for the regular module (by mapping basis elements with algebra generators, and decomposing the result in the basis), and make a MeatAxe module from it.

mats:=List(GeneratorsOfAlgebra(A),x->List(O,y->Coefficients(O,y*x)));
mo:=GModuleByMats(mats,GF(3));

When we `calculate the socle, it is of dimension 2. Thus by your theorem the algebra is not Frobenius.

gap> bas:=MTX.BasisSocle(mo);
[ [ 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3), Z(3)^0 ],
  [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3)^0, 0*Z(3) ] ]

(Of course one could do a shortcut in the code and stop as soon as it is known the socle is of dimension >1)

These vectors are in relation to the basis O that was chosen, so corresponding algebra elements are:

gap> List(bas,x->x*O);
[ [(Z(3)^0)*x*y+(Z(3)^0)*x*z+(Z(3)^0)*y*z], [(Z(3)^0)*x*y*z] ]