# Ideals of commutative Frobenius algebras

Given a finite dimensional commutative (connected=local) Frobenius algebra $$A$$ over a field $$K$$.

Question 1: Does $$A$$ have only finitely many ideals? (the answer should be no in the non-commutative case, but Im not sure about the commutative case)

Question 2: In case the poset of ideals of two such algebras $$A_1$$ and $$A_2$$ are isomorphic, are $$A_1$$ and $$A_2$$ isomorphic in case they have the same vector space dimension?

Question 3:Is there a way to obtain the ideal lattice of a finite dimensional algebra via QPA? (Im not sure whether there is a good method to check whether one module is a submodule of another one (not up to isomorphism))

Question 1: Let $$A=k[x,y]/\langle x^3, y^3\rangle$$. A $$k$$-basis for $$A$$ is $$\{1,x,y,x^2,xy,y^2,x^2y,xy^2, x^2y^2\}$$. Let $$I_q = \langle x^2y + qxy^2\rangle$$, and a $$k$$-basis for $$I_q$$ is $$\{ x^2y + qxy^2, x^2y^2\}$$. Hence all the ideal $$I_q$$ are different, and if the field $$k$$ is infinite, there exists infinite many ideals.

Question 2: Don't know.

Question 3: For an infinite field the above example shows that there are infinitely many ideals, so I assume a finite field. Define the following algebra in QPA:

Q := Quiver( 1, [ [ 1, 1, "a" ], [ 1, 1, "b" ] ] );
KQ := PathAlgebra( GF(5), Q );
AssignGeneratorVariables( KQ );
relations := [ a^3, a * b - b * a, b^3 ];
A:= KQ / relations;
M := AlgebraAsModuleOverEnvelopingAlgebra( A );


Finding all the submodules of $$A$$ as a bimodules, that is, all ideals in $$A$$.

test := AllSubmodulesOfModule( M );


Say we want to check which $$3$$ dimensional modules the first $$2$$ dimensional module is contained in. Then we can do the following:

#
# Creating a vectorspace of the image of a homomorphism
#
f := test[ 3 ][ 1 ];
Imf := List( BasisVectors( Basis( Source( f ) ) ), m -> ImageElm( f, m )![ 1 ]![ 1 ] );
Imf := List( Imf, b -> Flat( b ) );
#
# Creating all the vectorspaces for the 3 dimensional submodules
#
dim3submodules := [ ];
for g in test[ 4 ] do
Img := List( BasisVectors( Basis( Source( g ) ) ), m -> ImageElm( g, m )![ 1 ]![ 1 ] );
Img := List( Img, b -> Flat( b ) );
Add( dim3submodules, Subspace( GF(5)^9, Img ) );
od;
#
# Checking which ones contains Imf
#
List( dim3submodules, V -> ForAll( Imf, m -> m in V ) );


The output looks like this from the last line:

gap> List( dim3submodules, V -> ForAll( Imf, m -> m in V ) );
[ true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false,
false, false, false, false, false, false, false, false, false, false, false, false ]