Skip to content

Commit 4ed30e8

Browse files
authored
fix a bug in AlgebraHomomorphismByImages (#5947)
1 parent 9815a41 commit 4ed30e8

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

lib/alghom.gi

+5-4
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ InstallMethod( AlgebraGeneralMappingByImages,
6666
filter,
6767
i,basic;
6868

69-
# Handle the case that `gens' is a basis or empty.
69+
# Handle the case that `gens' is empty.
7070
# We can form a left module general mapping directly.
71-
if IsBasis( gens ) or IsEmpty( gens ) then
71+
if IsEmpty( gens ) then
7272

7373
map:= LeftModuleGeneralMappingByImages( S, R, gens, imgs );
7474
SetIsAlgebraGeneralMapping( map, true );
@@ -327,6 +327,7 @@ InstallMethod( AsLeftModuleGeneralMappingByImages,
327327
A:=MappingGeneratorsImages(alg_gen_map);
328328
origgenerators := A[1];
329329
origgenimages := A[2];
330+
A:= Source( alg_gen_map );
330331

331332
if IsBasis( origgenerators ) then
332333

@@ -338,8 +339,6 @@ InstallMethod( AsLeftModuleGeneralMappingByImages,
338339
generators := ShallowCopy( origgenerators );
339340
genimages := ShallowCopy( origgenimages );
340341

341-
A:= Source( alg_gen_map );
342-
343342
left:= not ( ( HasIsAssociative( A ) and IsAssociative( A ) )
344343
or ( HasIsLieAlgebra( A ) and IsLieAlgebra( A ) ) );
345344

@@ -402,6 +401,8 @@ InstallMethod( AsLeftModuleGeneralMappingByImages,
402401
# pairs we obtain below, but rather only those that are not linearly
403402
# dependent on the already known pairs.
404403
len := Length( generators );
404+
generators:= ShallowCopy( generators );
405+
genimages:= ShallowCopy( genimages );
405406
for i in [ 1 .. len ] do
406407
for j in [ 1 .. len ] do
407408
Add( generators, generators[i] * generators[j] );

tst/testinstall/alghom.tst

+16
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,20 @@ gap> Q:=R/id;
101101
<ring with 1 generator>
102102
gap> Elements(Q);
103103
[ 0*q1, q1, 2*q1, 3*q1, 4*q1, 5*q1, 6*q1, -q1 ]
104+
105+
# bugfix
106+
gap> A:= Rationals;; b:= Basis( A );;
107+
gap> b = [ 1 ];
108+
true
109+
gap> AlgebraHomomorphismByImages( A, A, [ 1 ], [ 2 ] );
110+
fail
111+
gap> AlgebraHomomorphismByImages( A, A, b, [ 2 ] );
112+
fail
113+
gap> map:= AlgebraHomomorphismByImages( A, A, b, [ 1 ] );;
114+
gap> IsAlgebraGeneralMappingByImagesDefaultRep( map );
115+
true
116+
gap> IsLinearGeneralMappingByImagesDefaultRep( map );
117+
false
118+
119+
#
104120
gap> STOP_TEST("alghom.tst");

0 commit comments

Comments
 (0)