# Magma say the size of my group is $0$

I am trying to define a group in terms of generators and relations in Magma and check its size, but Magma says the size of my group is $0$. The same code works for smaller presentaions of groups. What am I doing wrong?

Here's the code:

F<x000_0,x000_1,x000_2,x001_0,x001_1,x001_2,x010_0,x010_1,x010_2,x011_0,x011_1,x011_2,x100_0,x100_1,x100_2,x101_0,x101_1,x101_2,x110_0,x110_1,x110_2,x111_0,x111_1,x111_2> := FreeGroup(24);
G<x000_0,x000_1,x000_2,x001_0,x001_1,x001_2,x010_0,x010_1,x010_2,x011_0,x011_1,x011_2,x100_0,x100_1,x100_2,x101_0,x101_1,x101_2,x110_0,x110_1,x110_2,x111_0,x111_1,x111_2>, phi := quo<F | x000_0=x100_0,x000_1=x010_1,x000_2=x001_2,x001_0=x101_0,x001_1=x011_1,x001_2=x000_2,x010_0=x110_0,x010_1=x000_1,x010_2=x011_2,x011_0=x111_0,x011_1=x001_1,x011_2=x010_2,x100_0=x000_0,x100_1=x110_1,x100_2=x101_2,x101_0=x001_0,x101_1=x111_1,x101_2=x100_2,x110_0=x010_0,x110_1=x100_1,x110_2=x111_2,x111_0=x011_0,x111_1=x101_1,x111_2=x110_2,x000_0 * x000_1^-1 = x000_1 * x000_2^-1,x000_1 * x000_2^-1 = x000_2 * x000_0^-1,x000_2 * x000_0^-1 = x001_0 * x001_1^-1,x001_0 * x001_1^-1 = x001_1 * x001_2^-1,x001_1 * x001_2^-1 = x001_2 * x001_0^-1,x001_2 * x001_0^-1 = x010_0 * x010_1^-1,x010_0 * x010_1^-1 = x010_1 * x010_2^-1,x010_1 * x010_2^-1 = x010_2 * x010_0^-1,x010_2 * x010_0^-1 = x011_0 * x011_1^-1,x011_0 * x011_1^-1 = x011_1 * x011_2^-1,x011_1 * x011_2^-1 = x011_2 * x011_0^-1,x011_2 * x011_0^-1 = x100_0 * x100_1^-1,x100_0 * x100_1^-1 = x100_1 * x100_2^-1,x100_1 * x100_2^-1 = x100_2 * x100_0^-1,x100_2 * x100_0^-1 = x101_0 * x101_1^-1,x101_0 * x101_1^-1 = x101_1 * x101_2^-1,x101_1 * x101_2^-1 = x101_2 * x101_0^-1,x101_2 * x101_0^-1 = x110_0 * x110_1^-1,x110_0 * x110_1^-1 = x110_1 * x110_2^-1,x110_1 * x110_2^-1 = x110_2 * x110_0^-1,x110_2 * x110_0^-1 = x111_0 * x111_1^-1,x111_0 * x111_1^-1 = x111_1 * x111_2^-1,x111_1 * x111_2^-1 = x111_2 * x111_0^-1,x000_0 * x000_2^-1 = x000_1 * x000_0^-1,x000_1 * x000_0^-1 = x000_2 * x000_1^-1,x000_2 * x000_1^-1 = x001_0 * x001_2^-1,x001_0 * x001_2^-1 = x001_1 * x001_0^-1,x001_1 * x001_0^-1 = x001_2 * x001_1^-1,x001_2 * x001_1^-1 = x010_0 * x010_2^-1,x010_0 * x010_2^-1 = x010_1 * x010_0^-1,x010_1 * x010_0^-1 = x010_2 * x010_1^-1,x010_2 * x010_1^-1 = x011_0 * x011_2^-1,x011_0 * x011_2^-1 = x011_1 * x011_0^-1,x011_1 * x011_0^-1 = x011_2 * x011_1^-1,x011_2 * x011_1^-1 = x100_0 * x100_2^-1,x100_0 * x100_2^-1 = x100_1 * x100_0^-1,x100_1 * x100_0^-1 = x100_2 * x100_1^-1,x100_2 * x100_1^-1 = x101_0 * x101_2^-1,x101_0 * x101_2^-1 = x101_1 * x101_0^-1,x101_1 * x101_0^-1 = x101_2 * x101_1^-1,x101_2 * x101_1^-1 = x110_0 * x110_2^-1,x110_0 * x110_2^-1 = x110_1 * x110_0^-1,x110_1 * x110_0^-1 = x110_2 * x110_1^-1,x110_2 * x110_1^-1 = x111_0 * x111_2^-1,x111_0 * x111_2^-1 = x111_1 * x111_0^-1,x111_1 * x111_0^-1 = x111_2 * x111_1^-1>;

#G;


Explanation of these generators and relations:

As a set, the generators can be identified with $\mathbb{Z}_2^3\times\mathbb{Z}_3$.
The relations are of two types:
The first type: For each $i\in\mathbb{Z}_3$, the generators $(a,b,c,i)$ and $(d,f,e,i)$ are the same group element even if they differ in the $i$-th coordinate (counting from $0$). This is expressed by relations like x000_2=x001_2.

The second type: For each $i\in\mathbb{Z}_3\setminus\{0\}$, I want to say that the ratio between $(a,b,c,j)$ and $(a,b,c,i+j)$ does not depend on $(a,b,c,j)$, but only on $i$. This is expressed by relations like x100_1 * x100_0^-1 = x100_2 * x100_1^-1.

EDIT: If I kill one generator, for example, $x000_0$, then Magma says I get a group of order $3$.

• I'd also appreciate if anyone can check if it happens when you run my code on your system. I'm using the Online Magma Calculator. – Alex Jun 12 '13 at 15:02
• Are you looking for a free group (s)? – mrs Jun 12 '13 at 15:03
• @BabakS.: I'm looking for finite groups. I want to get $A_4$, and I want to check if I added enough relations. I know I can get $A_4$ by adding (possibly zero) relations to the ones specified there, and I would like to look at the multiplication table in terms of my generators. – Alex Jun 12 '13 at 15:06
• @Alex It seems that $0=\infty$ for Magma (?) E.g. "G<a, b>:=Group< a,b| ab,ba>; #G;" gives $0$ (your presentation has the same type of relations), whereas "G<a, b>:=Group< a,b| ab,ba,a^2 >; #G;" gives $2$. – Start wearing purple Jun 12 '13 at 15:08
• @Alex If you're interested in how the generators give $A_4$, I'm not sure that Magma is going to be a great help to you. The fact that you write 24 generators but know that you actually have 12 is already obscuring much of the structure - I would briskly encourage parsing your relations quite a bit 'by hand' before you hand them over. – Steven Stadnicki Jun 12 '13 at 15:29

The group you've given is still infinite, at least at first glance. You've written the relations that specify the invariance of cross-ratios, but nothing that describes powers of individual generators — as far as I can see (and presumably, as far as Magma can see), even $x_{000,0}$ by itself is enough to give an infinite cyclic group because none of the relations you've provided suggest any means of reducing, e.g., $x_{000,0}^5$.

As I mentioned in a comment, if you're interested in how this (presumably 3d cubic of some nature) symmetry group actually generates $A_4$, I would strongly recommend using the knowledge you already have of the generators (e.g., the fact that there are only 12, not 24) to determine more relations among the group 'by hand' before you hand it over to the software, because Magma will likely have a hard time in explaining to you precisely how it derives its result, so all you'll have is the result itself.

GAP confirms that the group is infinite. As @StevenStadnicki already mentioned, orders of generators are missing, and they can not be inferred from other relations. The GAP code to check this is

F:=FreeGroup("a","b","c","d","e","f","g","h","i","j","k","l",
"m","n","o","p","q","r","s","t","u","v","w","x");
AssignGeneratorVariables(F);
rels:="a=m,b=h,c=f,d=p,e=k,f=c,g=s,h=b,i=l,j=v,k=e,l=i,m=a,n=t,
o=r,p=d,q=w,r=o,s=g,t=n,u=x,v=j,w=q,x=u,a * b^-1 = b * c^-1,
b * c^-1 = c * a^-1,c * a^-1 = d * e^-1,d * e^-1 = e * f^-1,
e * f^-1 = f * d^-1,f * d^-1 = g * h^-1,g * h^-1 = h * i^-1,
h * i^-1 = i * g^-1,i * g^-1 = j * k^-1,j * k^-1 = k * l^-1,
k * l^-1 = l * j^-1,l * j^-1 = m * n^-1,m * n^-1 = n * o^-1,
n * o^-1 = o * m^-1,o * m^-1 = p * q^-1,p * q^-1 = q * r^-1,
q * r^-1 = r * p^-1,r * p^-1 = s * t^-1,s * t^-1 = t * u^-1,
t * u^-1 = u * s^-1,u * s^-1 = v * w^-1,v * w^-1 = w * x^-1,
w * x^-1 = x * v^-1,a * c^-1 = b * a^-1,b * a^-1 = c * b^-1,
c * b^-1 = d * f^-1,d * f^-1 = e * d^-1,e * d^-1 = f * e^-1,
f * e^-1 = g * i^-1,g * i^-1 = h * g^-1,h * g^-1 = i * h^-1,
i * h^-1 = j * l^-1,j * l^-1 = k * j^-1,k * j^-1 = l * k^-1,
l * k^-1 = m * o^-1,m * o^-1 = n * m^-1,n * m^-1 = o * n^-1,
o * n^-1 = p * r^-1,p * r^-1 = q * p^-1,q * p^-1 = r * q^-1,
r * q^-1 = s * u^-1,s * u^-1 = t * s^-1,t * s^-1 = u * t^-1,
u * t^-1 = v * x^-1,v * x^-1 = w * v^-1,w * v^-1 = x * w^-1";
r:=ParseRelators(GeneratorsOfGroup(F),rels);
G:=F/r;
Size(G);


and I am posting it here as an answer, since I can not fit it into a comment. Actually, the code above is not how I would normally create such a group - I've used ParseRelators only to simplify the task of converting your Magma code into GAP, and ParseRelators requires one-letter generator names. Otherwise, there would be no problem to support names of generators like in your example:

gap> F:=FreeGroup("x000_0","x000_1");
<free group on the generators [ x000_0, x000_1 ]>
gap> AssignGeneratorVariables(F);
#I  Assigned the global variables [ x000_0, x000_1 ]
gap> G:=F/[x000_0^2,x000_1^2,Comm(x000_0,x000_1)];
<fp group on the generators [ x000_0, x000_1 ]>
gap> Size(G);
4