# Defining the Weyl group of type $D_n$ as a subgroup of Weyl group of type $B_n$ in GAP

I am looking to define the Weyl group of type $$D_n$$ as a subgroup of Weyl group of type $$B_n$$ in the software GAP. In general, one can define these groups separately. For example, let's say G:=CoxeterGroup("B",4) and H:=CoxeterGroup("D",4) defines the Weyl group of type $$B_4$$ and $$D_4$$ respectively. Under this definition, I assume that $$H$$ is not recognized as a normal subgroup of $$G$$.

The main thing I want to achieve is to visualize the conjugacy classes in these groups. For example: cc:=ConjugacyClasses(H); will return the list of conjugacy classes in $$H$$. Now, a command as: ConjugacyClass(G,cc[1]); is not making sense here although theoretically it makes sense. I hope I have been able to explain the problem properly. Thank you in advance for any kind of help.

• CoxeterGroup is not a command of GAP4. Are you using any package? Which ones? Jan 1, 2022 at 22:24
• I am using GAP 3 which has CHEVIE as a package. I couldn't get a way to work with CHEVIE in Gap 4. These are finite imprimitive complex reflection groups which are defined in CHEVIE.
– Riju
Jan 2, 2022 at 10:00

GAP3 is a 20 year old version of the system, but it is easy to create the Coxeter/Weyl groups in GAP4 from the presentation. (The next release of GAP4 also will contain a function WeylGroupFp that does this directly.)

Basically, two different finitely presented groups do not have any connection. You will have to create the second group thus as a subgroup of the first.

f:=FreeGroup("a","b","c","d");
rels:=ParseRelators(f,"a2,b2,c2,d2,(ab)4,[a,c],[a,d],(bc)3,[b,d],(cd)3");
g:=f/rels;


We now could look for normal subgroups of the right order, but (if I recall correctly), the $$D_n$$ in $$B_n$$ is generated by the generators $$2,\ldots,n$$ and a conjugate of the second by the inverse of the first.

u:=SubgroupNC(g,[g.2,g.2^(g.1^-1),g.3,g.4]);


(The ordering here gives the generators in correspondence to the $$D_4$$ presentation.)

We verify that the subgroup is D_4:

isofp:=IsomorphismFpGroupByGenerators(u,GeneratorsOfGroup(u));
RelatorsOfFpGroup(Range(isofp));
# returns:
[ F1^2, F2^2, F3^2, F4^2, (F4*F1)^2, (F2*F1)^2, (F4*F2)^2, (F3*F1)^3,  (F4*F3)^3, (F3*F2)^3 ]


Thus now you have $$D_4$$ as a subgroup of $$B_4$$.