What is difference in syntax between these two GAP commands?

145 Views Asked by At

In Gap System,

1.

g:=Group( [[1,1],[0,1]] );;

2.

g:=[[1,1],[0,1]];;

As I know Group is generally a permutation group, however, finite group is also a group then it makes me confusing. As I know, finite group is a matrix, how can it be a group or permutation group?

3

There are 3 best solutions below

2
On BEST ANSWER

[[1,1],[0,1]] is typically interpreted as a $2 \times 2$ matrix in GAP. To illustrate, matrix multiplication * is defined: [[1,1],[0,1]]*[[1,1],[0,1]] returns [ [ 1, 2 ], [ 0, 1 ] ]. This object can also be treated as a list of lists.

Group( [[1,1],[0,1]] ) is the (infinite) group generated by this matrix under multiplication. The size of the group is given by Size(g) which returns infinity. In this case, [[1,1],[0,1]] is a generator of the group.

All groups are "structurally equivalent" to some permutation group (via Cayley's Theorem), but this is up to isomorphism; groups can be defined with arbitrary underlying sets (that may not involve permutations). We tend to prefer to choose easy-to-work-with sets, such as sets of integers, matrices or permutations.

If by "finite group is a matrix" you mean finite groups have finite Cayley tables, then this is true. Once you have an isomorphism between the group and a permutation group, you can relabel the elements of the Cayley table as permutations. It's not usually a useful thing to do, however.

1
On

In 2, your g is a 2 element list of two element lists. You can (and your software might) consider this a $2\times 2$ matrix. In 1 you apply an operator Group to this object. You don't specify what software you are using, but it presumably returns the group generated by g in some format.

0
On

The difference in syntax is approximately the same like between, say,

a:=Sin(0.0);

and

a:=0.0;

In the latter, one constructs an object (zero in floating-point representation) and assigns it to a variable. In the former, one constructs an object, applies a function to the constructed object and then assigns the result to a variable.

In your example, the object is a list of two lists of length two (which GAP treats as a matrix), and the function returns a cyclic group generated by this object. These group contains this matrix and all its powers, and this is why it is infinite.

Regarding the last paragraph of the question: the GAP F.A.Q. answers the question "Which skills do I need to use GAP?" and it mentions among others the necessary knowledge of the part of mathematics you would like to work on. It would be really hard to proceed with learning GAP otherwise, and I very much recommend to find and read some introductory group theory textbook. Just learning group theory by reading the GAP manual is not sufficient, since it is not written for this purpose.