gap icon indicating copy to clipboard operation
gap copied to clipboard

FIX: wreath product with trivial group contains trivial generators

Open FriedrichRober opened this issue 1 year ago • 4 comments

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), () ])

FriedrichRober avatar Oct 24 '24 15:10 FriedrichRober

ping @FriedrichRober

fingolfin avatar Oct 28 '24 22:10 fingolfin

@FriedrichRober last call for GAP 4.14 ...

fingolfin avatar Nov 07 '24 23:11 fingolfin

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 avatar Nov 08 '24 08:11 FriedrichRober

@FriedrichRober it would be nice to get this merged eventually. Maybe you can react to the code comments I left back then?

fingolfin avatar Mar 28 '25 08:03 fingolfin

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 :-(

fingolfin avatar Jun 24 '25 13:06 fingolfin

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 := [  ] )

fingolfin avatar Jun 24 '25 13:06 fingolfin

Fix in PR #6019

fingolfin avatar Jun 24 '25 14:06 fingolfin