Operation( G, D )
Operation( G, D, operation )
Operation
returns a permutation group with the same number of
generators as G, such that each generator of the permutation group
operates on the set [1..Length(D)]
in the same way that the
corresponding generator of the group G operates on the domain D,
which may be a list of arbitrary type.
It is not allowed that D is a proper subset of a domain, i.e., D must be invariant under the element g.
Operation
accepts a function operation of two arguments d and g
as optional third argument, which specifies how the elements of G
operate (see Other Operations).
The function OperationHomomorphism
(see OperationHomomorphism) can be
used to compute the homomorphism that maps G onto the new permutation
group. Of course if you are only interested in mapping single elements
of G into the new permutation group you may also use Permutation
(see
Permutation).
gap> g := Group( (1,2,3)(6,7), (3,4,5)(7,8) );; gap> Operation( g, [1..5] ); Group( (1,2,3), (3,4,5) ) gap> Operation( g, Orbit( g, [1,6], OnPairs ), OnPairs ); Group( ( 1, 2, 3, 5, 8,12)( 4, 7, 9)( 6,10)(11,14), ( 2, 4)( 3, 6,11) ( 5, 9)( 7,10,13,12,15,14) )
Operation
calls
G.operations.Operation( G, D, operation )
and returns the value. Note that the third argument is not optional for
functions called this way.
The default function called this way is GroupOps.Operation
, which
simply applies each generator of G to all the points of D, finds the
position of the image in D, and finally applies PermList
(see
PermList) to the list of those positions. Actually this is not quite
true. Because finding the position on an image in a sorted list is so
much faster than finding it in D, GroupElementsOps.Operation
first
sorts a copy of D and remembers how it had to rearrange the elements of
D to achieve this. Special categories of groups overlay this default
function with more efficient functions.
GAP 3.4.4