FIX: wreath product with trivial group contains trivial generators
Generators of wreath products should not contain the identity element, unless the group is trivial.
Text for release notes
see title
Further details
gap> WreathProduct(SymmetricGroup(3), Group( () ));
Group([ (1,2,3), (1,2), () ])
ping @FriedrichRober
@FriedrichRober last call for GAP 4.14 ...
Oh my sincere apologies, I was swallowed in other work and forgot about it.
In how far is this a bug that needs "fixing"? I mean, it seems unhelpful and redundant, but not wrong as such?
You are right. I thought it was breaking something in my package WPE, but actually the bug was hidden somewhere else. Nevertheless, I already have put some work into it, so I wanted to finish cleaning up the redundant generators.
This being said, if it doesn’t make it into 4.14, it’s not a huge deal, since it isn’t a breaking bug. I will try to make it in time though.
@FriedrichRober it would be nice to get this merged eventually. Maybe you can react to the code comments I left back then?
Unfortunately the changes in here broke the WPE 0.8 test suite:
gap> ReadPackage("WPE","tst/testCentraliser.g");;
gap> K := Group([ () ]);;
gap> H := Group([ (1,2,3,4,5,6,7), (6,7,8) ]);;
gap> G := WreathProduct(K, H);;
gap> # Element 1
gap> g := (2,6,4,5,7,8,3);;
gap> Cgens := [ (2,6,4,5,7,8,3) ];;
gap> TestCentraliser(G, g, Cgens);
Error, List Element: <list>[1] must have an assigned value in
restPerm := RESTRICTED_PERM( f, info.components[i], testDecomposition )
; at /Users/mhorn/Projekte/GAP/gap/lib/gprdperm.gi:945 called from
ListWreathProductElementNC( G, x, testDecomposition ) at /Users/mhorn/Projekte/GAP/gap/lib/gprd.gi:915 called from
ListWreathProductElement( G, g ) at /Users/mhorn/Projekte/GAP/gap/pkg/wpe/gap/Operations.gi:115 called from
oper( super, sub ) at /Users/mhorn/Projekte/GAP/gap/lib/domain.gd:452 called from
Centraliser( G, g ) at /Users/mhorn/Projekte/GAP/gap/pkg/wpe/tst/testCentraliser.g:3 called from
<function "TestCentraliser">( <arguments> )
called from read-eval loop at *stdin*:9
type 'quit;' to quit to outer loop
The WPE repository contains additional changes which are not in a release but they make no difference. I'll give it a quick poke, if I can see a fix for GAP and/or WPE I'll implement it, otherwise I'll have to revert this :-(
Before this PR:
gap> K := Group([ () ]);;
gap> H := Group([ (1,2,3,4,5,6,7), (6,7,8) ]);;
gap> G := WreathProduct(K, H);;
gap> info := WreathProductInfo(G);
rec( I := Group([ (1,2,3,4,5,6,7), (6,7,8) ]), alpha := IdentityMapping( Group([ (1,2,3,4,5,6,7), (6,7,8) ]) ),
base := Group(()), basegens := [ (), (), (), (), (), (), (), () ],
components := [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ], [ 8 ] ], degI := 8,
domI := [ 1, 2, 3, 4, 5, 6, 7, 8 ],
embeddingType := <Type: (GeneralMappingsFamily, [ IsComponentObjectRep, IsAttributeStoringRep, CanEasilyCompareE\
lements, ... ]), data: fail>, embeddings := [ ], groups := [ Group(()), Group([ (1,2,3,4,5,6,7), (6,7,8) ]) ],
hgens := [ (1,2,3,4,5,6,7), (6,7,8) ], permimpr := true,
perms := [ (), (1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8) ] )
After this PR:
gap> info := WreathProductInfo(G);
rec( I := Group([ (1,2,3,4,5,6,7), (6,7,8) ]), alpha := IdentityMapping( Group([ (1,2,3,4,5,6,7), (6,7,8) ]) ),
base := Group(()), basegens := [ () ], components := [ ], degI := 8, domI := [ 1, 2, 3, 4, 5, 6, 7, 8 ],
embeddingType := <Type: (GeneralMappingsFamily, [ IsComponentObjectRep, IsAttributeStoringRep, CanEasilyCompareE\
lements, ... ]), data: fail>, embeddings := [ ], groups := [ Group(()), Group([ (1,2,3,4,5,6,7), (6,7,8) ]) ],
hgens := [ (1,2,3,4,5,6,7), (6,7,8) ], permimpr := true, perms := [ ] )
Fix in PR #6019