@@ -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