GAP already provides acting functions for the more commpon actions of a
group. For built-in operations such as Stabilizer special methods are
available for many of these actions.
OnPoints( pnt, g ) F
returns pnt ^ g.
This is for example the action of a permutation group on points,
or the action of a group on its elements via conjugation.
The action of a matrix group on vectors from the right is described by
both OnPoints and OnRight (see OnRight).
OnRight( pnt, g ) F
returns pnt * g.
This is for example the action of a group on its elements via right
multiplication,
or the action of a group on the cosets of a subgroup.
The action of a matrix group on vectors from the right is described by
both OnPoints (see OnPoints) and OnRight.
OnLeftInverse( pnt, g ) F
returns g -1 * pnt.
Forming the inverse is necessary to make this a proper action,
as in GAP groups always act from the right.
(OnLeftInverse is used for example in the representation of a right
coset as an external set (see External Sets), that is a right coset
Ug is an external set for the group U acting on it via
OnLeftInverse.)
OnSets( set, g ) F
Let set be a proper set (see Sorted Lists and Sets).
OnSets returns the proper set formed by the images
OnPoints( pnt, g ) of all points pnt of set.
OnSets is for example used to compute the action of a permutation group
on blocks.
(OnTuples is an action on lists that preserves the ordering of entries,
see OnTuples.)
OnTuples( tup, g ) F
Let tup be a list.
OnTuples returns the list formed by the images
OnPoints( pnt, g ) for all points pnt of tup.
(OnSets is an action on lists that additionally sorts the entries of
the result, see OnSets.)
OnPairs( tup, g ) F
is a special case of OnTuples (see OnTuples) for lists tup
of length 2.
OnSetsSets( set, g ) F
Action on sets of sets;
for the special case that the sets are pairwise disjoint,
it is possible to use OnSetsDisjointSets (see OnSetsDisjointSets).
OnSetsDisjointSets( set, g ) F
Action on sets of pairwise disjoint sets (see also OnSetsSets).
OnSetsTuples( set, g ) F
Action on sets of tuples.
OnTuplesSets( set, g ) F
Action on tuples of sets.
OnTuplesTuples( set, g ) F
Action on tuples of tuples
gap> g:=Group((1,2,3),(2,3,4));; gap> Orbit(g,1,OnPoints); [ 1, 2, 3, 4 ] gap> Orbit(g,(),OnRight); [ (), (1,2,3), (2,3,4), (1,3,2), (1,3)(2,4), (1,2)(3,4), (2,4,3), (1,4,2), (1,4,3), (1,3,4), (1,2,4), (1,4)(2,3) ] gap> Orbit(g,[1,2],OnPairs); [ [ 1, 2 ], [ 2, 3 ], [ 1, 3 ], [ 3, 1 ], [ 3, 4 ], [ 2, 1 ], [ 1, 4 ], [ 4, 1 ], [ 4, 2 ], [ 3, 2 ], [ 2, 4 ], [ 4, 3 ] ] gap> Orbit(g,[1,2],OnSets); [ [ 1, 2 ], [ 2, 3 ], [ 1, 3 ], [ 3, 4 ], [ 1, 4 ], [ 2, 4 ] ]
gap> Orbit(g,[[1,2],[3,4]],OnSetsSets); [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 1, 4 ], [ 2, 3 ] ], [ [ 1, 3 ], [ 2, 4 ] ] ] gap> Orbit(g,[[1,2],[3,4]],OnTuplesSets); [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 2, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 2, 4 ] ], [ [ 3, 4 ], [ 1, 2 ] ], [ [ 1, 4 ], [ 2, 3 ] ], [ [ 2, 4 ], [ 1, 3 ] ] ] gap> Orbit(g,[[1,2],[3,4]],OnSetsTuples); [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 1, 4 ], [ 2, 3 ] ], [ [ 1, 3 ], [ 4, 2 ] ], [ [ 2, 4 ], [ 3, 1 ] ], [ [ 2, 1 ], [ 4, 3 ] ], [ [ 3, 2 ], [ 4, 1 ] ] ] gap> Orbit(g,[[1,2],[3,4]],OnTuplesTuples); [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 2, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 4, 2 ] ], [ [ 3, 1 ], [ 2, 4 ] ], [ [ 3, 4 ], [ 1, 2 ] ], [ [ 2, 1 ], [ 4, 3 ] ], [ [ 1, 4 ], [ 2, 3 ] ], [ [ 4, 1 ], [ 3, 2 ] ], [ [ 4, 2 ], [ 1, 3 ] ], [ [ 3, 2 ], [ 4, 1 ] ], [ [ 2, 4 ], [ 3, 1 ] ], [ [ 4, 3 ], [ 2, 1 ] ] ]
OnLines( vec, g ) F
Let vec be a normed row vector, that is,
its first nonzero entry is normed to the identity of the relevant field,
OnLines returns the row vector obtained from normalizing
OnRight( vec, g ) by scalar multiplication from the left.
This action corresponds to the projective action of a matrix group
on 1-dimensional subspaces.
gap> gl:=GL(2,5);;v:=[1,0]*Z(5)^0; [ Z(5)^0, 0*Z(5) ] gap> h:=Action(gl,Orbit(gl,v,OnLines),OnLines); Group([ (2,3,5,6), (1,2,4)(3,6,5) ])
OnIndeterminates( poly, perm ) F
A permutation perm acts on the multivariate polynomial poly by permuting the indeterminates as it permutes points.
Permuted(list,perm) F
The operation Permuted can be used to implement a permutation action on a
domain:
gap> g:=Group((1,2,3),(1,2));; gap> dom:=[ "a", "b", "c" ];; gap> Orbit(g,dom,Permuted); [ [ "a", "b", "c" ], [ "c", "a", "b" ], [ "b", "a", "c" ], [ "b", "c", "a" ], [ "a", "c", "b" ], [ "c", "b", "a" ] ]
OnSubspacesByCanonicalBasis( bas, mat ) F
implements the operation of a matrix group on subspaces of a vector space. bas must be a list of (linearly independent) vectors which forms a basis of the subspace in Hermite normal form. mat is an element of the acting matrix group. The function returns a mutable matrix which gives the basis of the image of the subspace in Hermite normal form. (In other words: it triangulizes the product of bas with mat.)
If one needs an action for which no acting function is provided by the library it can be implemented via a GAP function that conforms to the syntax
actfun(omega,g)
For example one could define the following function that acts on pairs of
polynomials via OnIntereminates:
OnIndeterminatesPairs:=function(polypair,g)
return [OnIndeterminates(polypair[1],g),
OnIndeterminates(polypair[2],g)];
end;
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual