Central Products in SageMath

75 Views Asked by At

I would like to compute the Central Product of two groups in SageMath. I cannot find any builtins and I'm not sure what group theory packages for Sage may exist. Is there anything out there or am I forced to roll my own? If it helps I'm only going to be considering finite groups.

1

There are 1 best solutions below

0
On

There is in general not a single central product of two groups; it depends on which central subgroups you choose in both factors, and then which isomorphism between them. Therefore it doesn't really make sense to provide a function CentralProduct(G,H) as it would be not well-defined what it does.

However, one can compute the central product as follows: suppose $A\leq G$ and $B\leq H$ are the two central subgroups, with isomorphism $\phi:A\to B$. Then compute the direct product $G\times H$, and factor out the diagonal subgroup $\{ (a, \phi(a)) \mid a\in A\}$.

So e.g. like this in GAP:

gap> G:=ExtraspecialGroup( 27, '+' );
<pc group of size 27 with 3 generators>
gap> H:=ExtraspecialGroup( 27, '-' );
<pc group of size 27 with 3 generators>
gap> A:=Center(G);
Group([ f3 ])
gap> B:=Center(H);
Group([ f3 ])
gap> phi:=IsomorphismGroups(A,B);
[ f3 ] -> [ f3 ]
gap> GH:=DirectProduct(G,H);
<pc group of size 729 with 6 generators>
gap> e1:=Embedding(GH,1);
Pcgs([ f1, f2, f3 ]) -> [ f1, f2, f3 ]
gap> e2:=Embedding(GH,2);
Pcgs([ f1, f2, f3 ]) -> [ f4, f5, f6 ]
gap> C:=Subgroup(GH, List(GeneratorsOfGroup(A), a -> e1(a)*e2(phi(a))));
Group([ f3*f6 ])
gap> cent:=GH/C;
Group([ f1, f2, f5^2, f3, f4, f5 ])
gap> Size(cent);
243
gap> Size(Center(cent));
3
gap> StructureDescription(cent/Center(cent));
"C3 x C3 x C3 x C3"