6

Denote by $A_4$ the alternating group on $4$ letters, and by $\pi: A_4 \rightarrow \mathbb Z/3$ a quotient. What is the best/easiest/proper way to construct the amalgamated product $$ \{ (x,y) \in A_4 \times A_4: \pi(x) = \pi(y) \} \qquad ? $$ in the computer algebra system MAGMA as well as GAP? I did look over the respectively manual and did not see an explicit reference.

Many thanks for your help!

EDIT: My question is really about using magma and gap to construct amalgamated products; the explicit example about is meant to be a concrete illustration for what I have in mind.

uhoh
  • 1,967
mathflow
  • 317
  • That example is the just the subgroup $\langle (1,2,3)(5,6,7),(1,2)(3,4),(5,6)(7,8) \rangle$ of $S_8$ of order $48$. – Derek Holt Jun 14 '25 at 15:09
  • Thanks @holt! What I really want to learn is the magma/gap construction; this example is just for illustration. I have edited my post to clarify my question. – mathflow Jun 14 '25 at 16:05
  • Not at a computer, but one approach would be to form the homomorphism $A_4\rightarrow C_3$, then take the product homomorphism from $A_4\times A_4$ to $C_3\times C_3$, then take the pre image of the diagonal subgroup. – Steve D Jun 14 '25 at 17:19

2 Answers2

6

I think the Magma functino below does what you want.

AmalDP := function(G,pi)
/* phi is a group homomorphism with domain G. 
 * Return { (x,y) in G x G | pi(x) = pi(y) }
 */
  H := Image(pi);
  K := Kernel(pi);
  GG, i := DirectProduct(G,G);
  return sub< GG | K @ i[1], K @ i[2],
      [(g @@ pi @ i[1]) * (g @@ pi @ i[2]) : g in Generators(H)] >;
end function;
Derek Holt
  • 96,726
6

What you call an "amalgamated product" to me is not that, but rather a "subdirect product" (see Wikipedia or EoM). To me, an amalgamated product of two groups $G$ and $H$ would be a quotient of the free product of $G$ with $H$. (This is a special case of an amalgam of groups.)

Anyway, the group you are asking about can hence be constructed in GAP using the function SubdirectProduct. In your specific example:

gap> G:=AlternatingGroup(4);
Alt( [ 1 .. 4 ] )
gap> pi:=MaximalAbelianQuotient(G);
[ (1,2,3), (2,3,4) ] -> [ f1, f1^2 ]
gap> Size(Image(pi));
3
gap> H:=SubdirectProduct(G,G,pi,pi);
Group([ (1,2,3)(6,8,7), (2,3,4)(6,7,8), (5,8)(6,7), (5,6)(7,8) ])
gap> StructureDescription(H);
"(C2 x C2 x C2 x C2) : C3"
gap> Size(H);
48
Max Horn
  • 2,306