Skip to content

Commit e27231e

Browse files
committed
Fix bug in AlgebraAsQuiverAlgebra
1 parent c433ce2 commit e27231e

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

lib/algebra.gi

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -640,8 +640,8 @@ InstallMethod ( AlgebraAsQuiverAlgebra,
640640

641641
local F, idA, C, id, centralidempotentsinA, radA, g, centralidem,
642642
factoralgebradecomp, c, temp, dimcomponents, pi, ppowerr,
643-
gens, D, idD, order, generatorinD, K, i, alghom, vertices,
644-
radAsquare, h, radAmodsquare, arrows, adjacencymatrix, j, t,
643+
gens, D, idD, order, generatorinD, K, i, alghom, KinA, findbasis,
644+
vertices, radAsquare, h, radAmodsquare, arrows, adjacencymatrix, j, t,
645645
Q, KQ, Jt, n, images, AA, AAgens, AAvertices, AAarrows, f, B,
646646
matrix, fam, b, tempx, walk, length, image, solutions,
647647
idealgens, I;
@@ -734,6 +734,7 @@ InstallMethod ( AlgebraAsQuiverAlgebra,
734734

735735
return ord;
736736
end;
737+
737738
generatorinD := Filtered(Elements(D), d -> order(d) = ppowerr - 1);
738739
K := GF(ppowerr);
739740
D := AsAlgebra(PrimeField(K), D);
@@ -743,6 +744,37 @@ InstallMethod ( AlgebraAsQuiverAlgebra,
743744
i := i + 1;
744745
until
745746
alghom <> fail or i = Length( generatorinD ) + 1;
747+
748+
KinA := List( Elements( K ){[ 2..Size( K ) ]}, a -> ImageElm( alghom, a ) );
749+
findbasis := function( V, gens )
750+
local newgens, spingens, span, basis, n, W, Wnew;
751+
752+
if Length( gens ) = 0 then
753+
return [];
754+
fi;
755+
newgens := Filtered( gens, g -> g <> Zero( g ) );
756+
if Length( newgens ) = 0 then
757+
return [];
758+
fi;
759+
spingens := List( KinA, a -> ImageElm( h, a * PreImagesRepresentative( h, newgens[ 1 ] ) ) );
760+
span := spingens;
761+
basis := [];
762+
Add( basis, newgens[ 1 ] );
763+
n := 1;
764+
W := Subspace( V, span );
765+
while Dimension( V ) > Dimension( W ) do
766+
n := n + 1;
767+
spingens := List( KinA, a -> ImageElm( h, a * PreImagesRepresentative( h, newgens[ n ] ) ) );
768+
Wnew := Subspace( V, Concatenation( span, spingens ) );
769+
if Dimension( W ) < Dimension( Wnew ) then
770+
Add( basis, newgens[ n ] );
771+
span := Concatenation( span, spingens[ n ] );
772+
fi;
773+
W := Wnew;
774+
od;
775+
776+
return basis;
777+
end;
746778
#
747779
# Finding representatives for the vertices in A.
748780
#
@@ -770,10 +802,17 @@ InstallMethod ( AlgebraAsQuiverAlgebra,
770802
adjacencymatrix := NullMat(Length(centralidem),Length(centralidem));
771803
for i in [1..Length(centralidem)] do
772804
for j in [1..Length(centralidem)] do
805+
if Size( F ) < Size( K ) then
806+
arrows[i][j] := Filtered(ImageElm(h,vertices[i])*BasisVectors(Basis(radAmodsquare))*ImageElm(h,vertices[j]), y -> y <> Zero(y));
807+
arrows[i][j] := Subspace( Range( h ), arrows[ i ][ j ] );
808+
arrows[i][j] := findbasis( arrows[i][j], BasisVectors( Basis( arrows[i][j] ) ) );
809+
arrows[i][j] := List( arrows[i][j], x -> vertices[i] * PreImagesRepresentative( h, x ) * vertices[ j ] );
810+
else
773811
arrows[i][j] := Filtered(ImageElm(h,vertices[i])*BasisVectors(Basis(radAmodsquare))*ImageElm(h,vertices[j]), y -> y <> Zero(y));
774812
arrows[i][j] := BasisVectors(Basis(Subspace(Range(h),arrows[i][j])));
775-
arrows[i][j] := List(arrows[i][j], x -> vertices[i]*PreImagesRepresentativeNC(h,x)*vertices[j]);
776-
adjacencymatrix[i][j] := Length(arrows[i][j]);
813+
arrows[i][j] := List(arrows[i][j], x -> vertices[i]*PreImagesRepresentative(h,x)*vertices[j]);
814+
fi;
815+
adjacencymatrix[i][j] := Length(arrows[i][j]);
777816
od;
778817
od;
779818
#

0 commit comments

Comments
 (0)