**Groups and Cosets**

**James F. Hurley**

**Copyright © 2001 by James F. Hurley, Department of Mathematics, University of Connecticut, Unit 3009, Storrs CT 06269-3009. All rights reserved.
**

**1. Basic environment and commands. **
As a
*computer-algebra system*
(CAS), Maple is designed to carry out symbolic calculations according to mathematical laws of algebraic manipulation. In particular, Maple can carry out computations that arise in groups Ñ the simplest abstract algebraic systems. This worksheet illustrates that.

The package for group theory is
group
. As with any package, you invoke it by the
with
command. The second command below defines the symmetric group
of degree 3 as the group generated by the transposition
*g*
= ( 2 3 ) and the 3-cycle
*f*
= ( 1 2 3 ).

`> `
**with(group):
S_3 := permgroup( 3, {g = [[2, 3]], f = [[1, 2, 3]]} );
**

Perhaps the simplest thing to ask about this group is, what is its order?

`> `
**grouporder(S_3);**

Maple can also calculate the center of
:

`> `
**center(S_3);**

Recall that the center of
consists just of the identity. Maple thus represents the subgroup consisting only of that element as a the group generated by the empty set. Maple can also determine whether a permutation group is abelian, although to get it to do so in the current worksheet it was necessary to list the generators rather than just ask whether the group
is abelian.

`> `
**isabelian(permgroup( 3, {[[2, 3]], [[1, 2, 3]]} ));**

`> `
**isabelian(S_3);**

Error, (in convert/plist) unevaluated array index in assignment

By contrast, to the question of whether the cyclic subgroup <
*f*
> is abelian, Maple gives a different answer.

`> `
**isabelian(permgroup( 3, {[[1, 2, 3]]} ));**

You may wonder whether Maple can handle more general groups than permutation groups, but as we will see shortly a theorem of Cayley makes that unnecessary.

**
2. Cosets.**
Maple can determine the right cosets of a subgroup

`> `
**with(group):
G := permgroup( 3, {[[2, 3]], [[1, 2, 3]]} );
H := permgroup( 3, {[[2, 3]]} );
cosets(G, H);**

Observe that Maple does
*not*
list the cosets by displaying rosters of their elements, but rather by listing a complete set of
*coset representatives*
: the identity, which of course belongs to
*H*
, the representative ( 1 2 ) of the right coset
*H*
( 1 2 ) = {( 1 2 ), ( 2 3 )( 1 2 ) = ( 1 3 2 )}, and finally the representative ( 1 3 ) of the right coset
*H*
(1 3 ) = {( 1 3 ), ( 2 3 ) ( 1 3 ) = ( 1 2 3 ) }.