|
Calling Sequence
|
|
CustomGroup(gens, operations, customopts, sgopt, lbopt)
|
|
Parameters
|
|
gens
|
-
|
set or list of custom group generators
|
operations
|
-
|
(optional) module describing group operations
|
customopts
|
-
|
(optional) equations of the form one = e, `1` = e, multiply = m, `.` = m, inverse = i, `/` = i, equals = eq, `=` = eq, less = o, `<` = o, or print = p
|
sgopt
|
-
|
(optional) equation of the form where is a supergroup of the group to be constructed; constructs the given group as a subgroup of
|
lbopt
|
-
|
(optional) equation of the form , giving labels for the generators
|
|
|
|
|
Description
|
|
•
|
The CustomGroup command creates a group given by custom operations. Generally, only operations available for all groups are available for these custom groups - there are no specialized implementations. For this reason, it is often preferable to convert the group to a permutation group or Cayley table group, using the converting calling sequences of the PermutationGroup and CayleyTableGroup commands.
|
•
|
First specify a list or set of generators, . Besides the generators there are six operations that can be given, and most properties can be given in one of two ways: by an equation that has a particular name or symbol as its left-hand side or by specifying a module that exports a symbol (in the same way as with the module that the Operations command returns). If both are given for any particular property, the equation takes precedence. These six operations are listed below.
|
symbol
|
name
|
description
|
default
|
`.`
|
multiply
|
Two-argument procedure to compute group operation
|
(Required)
|
`/`
|
inverse
|
One-argument procedure to invert element
|
(Required)
|
`1`
|
one
|
Unit element of the group
|
Obtained by multiplying the first generator by its inverse
|
`=`
|
equals
|
Two-argument procedure to test equality
|
Regular equality, `=`
|
`<`
|
less
|
Two-argument procedure to determine ordering
|
It depends - see text below
|
print
|
print
|
One-argument procedure to display elements
|
Identity map, x -> x
|
|
|
|
The multiplication and inversion procedures always need to be specified (either through the module or through appropriate equations.) If the group has at least one generator, then the unit element of the group can be computed (if no generators are specified in order to create the trivial group, the unit element is also required).
|
|
By default, Maple assumes that the multiplication procedure returns its result in a unique representation. If this is not the case, then you can supply an equality testing procedure. This may slow down some algorithms.
|
|
For some algorithms, having a well-defined ordering of the group elements is required or speeds up the computation. If the equality operation is default equality, then Maple uses the same ordering used for ordering sets for the elements of the group. Otherwise, Maple assumes that there is no well-defined ordering of the group elements. You can supply an ordering to override this. The only required property is that if two elements are equal according to the specified equality test, then the ordering does not distinguish between them.
|
|
Visualization commands such as DrawCayleyTable use the procedure supplied with print = p to convert group elements to a display format.
|
|
The option can be used to give names for the generators. These can be retrieved using the command GroupTheory[Labels].
|
•
|
One can optionally use an argument - an equation of the form - to indicate a supergroup that the given group is a subgroup of. The given generators should be members of . If no supergroup is specified or the user specifies , then Maple does not mark the resulting group as a subgroup of any particular group.
|
|
|
Examples
|
|
>
|
|
The additive group of the integers modulo can be constructed as a custom group in two ways: reducing to the range after every operation or not. We present both ways here. We also show the two ways of specifying the operations: with equations and with a module.
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
|
|
Compatibility
|
|
•
|
The GroupTheory[CustomGroup] command was introduced in Maple 17.
|
|
|
|