create a custom group data structure
CustomGroup(gens, operations, customopts, sgopt, lbopt)
set or list of custom group generators
(optional) module describing group operations
(optional) equations of the form one = e, `1` = e, multiply = m, `.` = m, inverse = i, `/` = i, equals = eq, `=` = eq, less = o, `<` = o, or print = p
(optional) equation of the form supergroup=g where g is a supergroup of the group to be constructed; constructs the given group as a subgroup of g
(optional) equation of the form labels=lst, giving labels for the generators
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, gens. 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 operations 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.
Two-argument procedure to compute group operation
One-argument procedure to invert element
Unit element of the group
Obtained by multiplying the first generator by its inverse
Two-argument procedure to test equality
Regular equality, `=`
Two-argument procedure to determine ordering
It depends - see text below
One-argument procedure to display elements
Identity map, x -> x
The multiplication and inversion procedures always need to be specified (either through the operations 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 labels option can be used to give names for the generators. These can be retrieved using the command GroupTheory[Labels].
One can optionally use an sgopt argument - an equation of the form supergroup=g - to indicate a supergroup that the given group is a subgroup of. The given generators should be members of g. If no supergroup is specified or the user specifies supergroup=undefined, then Maple does not mark the resulting group as a subgroup of any particular group.
The additive group of the integers modulo 6 can be constructed as a custom group in two ways: reducing to the range 0..5 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.
operation_module ≔ module_export⁡`.` ≔ a,b→a+bmod6;_export⁡`/` ≔ a→−amod6end module
operation_module ≔ moduleexport`.`,`/`;end module
g1≔ < a custom group with 1 generator >
g2≔ < a custom group with 1 generator >
The GroupTheory[CustomGroup] command was introduced in Maple 17.
For more information on Maple 17 changes, see Updates in Maple 17.
Download Help Document
What kind of issue would you like to report? (Optional)