38.2 Basic Actions

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
    February 2000