GroupTheory
CustomGroup
create a custom group data structure
Calling Sequence
Parameters
Description
Examples
Compatibility
CustomGroup(gens, operations, customopts, sgopt, lbopt)
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 supergroup=g where g is a supergroup of the group to be constructed; constructs the given group as a subgroup of g
lbopt
(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.
symbol
name
description
default
`.`
multiply
Two-argument procedure to compute group operation
(Required)
`/`
inverse
One-argument procedure to invert element
`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
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.
with⁡GroupTheory:
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≔CustomGroup⁡1,operation_module
g1≔ < a custom group with 1 generator >
equal_modulo_6≔a,b↦irem⁡b−a,6=0
less_modulo_6≔a,b↦amod6<bmod6
g2≔CustomGroup⁡1,`.`=`+`,`/`=`-`,`=`=equal_modulo_6,`<`=less_modulo_6
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.
See Also
GroupTheory/references
GroupTheory[CayleyTableGroup]
GroupTheory[FPGroup]
GroupTheory[Group]
GroupTheory[PermutationGroup]
GroupTheory[Subgroup]
Download Help Document