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).
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
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) )
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
simply applies each generator of G to all the points of D, finds the
position of the image in D, and finally applies
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,
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.
Previous Up Top Next