# Use GAP to define finite Clifford group

I am studying the computer algebra system GAP to do some calculations about Clifford group, which is defined (cf. Lawson and Michelsohn, Spin Geometry, Princeton 1989) as followings Definition. Let's denote this group by $$F_n$$, in accordance with the number of generators $$e_1, e_2, \ldots, e_n$$. The group can be given $$F_n = \, <\;e_1, e_2, \ldots, e_n \,:\; e_j^2 = -1, e_j e_k = - e_k e_j \quad \text{for } k \ne j; 1\leq j, k \leq n \;>.$$

Thus we can calculate the order of this group, it is equal to $$2^{n+1}$$. Given a number $$n$$, for example, $$n=3 \text{ or }4$$, I want to identify these groups with the groups listed in the Small Group Library with precise ID number.

I want to know how to define this group $$F_n$$ in GAP, I tried like followings but failed Define $$F_3$$

My questions are

1. How to modify the codes in my definition to get a correct one? I think the main problem is $$e_j^2=-1$$.
2. Once we can define this group, how do we identify the group with the group in Small Group Library?
3. Since GAP can handle group whose order is less than about 2000. For the Clifford group case, this means I can work up to $$n=8$$ when the group order is $$2^9=512$$. The Small Group Library does not have group of order $$1024$$, and group of order $$2^{11}$$ and beyond are also not handles. How to deal with those $$n \geq 9$$ situations?

Many thanks.

• I think GAP does not like the "-1" terms, as it is not explicitly a word in terms of the generators. – Josh B. May 4 '19 at 13:20
• Yes. As a beginner of myself, it is amazing to see how this system deals with finite groups. – yz luan May 5 '19 at 7:20

If you look at the definition, you'll note that they use "-1" as an extra generator that is central and of order 2. In GAP you can't call it that way, thus lets call it m. Then we can define the group:

gap> f:=FreeGroup("e1","e2","e3","m");
<free group on the generators [ e1, e2, e3, m ]>
gap> AssignGeneratorVariables(f);
#I  Assigned the global variables [ e1, e2, e3, m ]
gap> rels:=[Comm(e1,m),Comm(e2,m),Comm(e3,m),e1^2/m,e2^2/m,e3^2/m,
> e1*e2/(m*e2*e1),e1*e3/(m*e3*e1),e2*e3/(m*e3*e2)];;
gap> g:=f/rels;
<fp group on the generators [ e1, e2, e3, m ]>
gap> Size(g);
16


You can use IdGroup(g) to identify the group in the small groups library.

Your third question does not really make sense, as identification numbers are only defined as far as the library is concerned. The easiest way to specify the group in a portable way would be to use the presentation.

• Thank you very much. That is really what I want. This group is really the SmallGroup(16,12). My friend and I construct a group isomorphism and verified this. So exciting! – yz luan May 4 '19 at 19:17