38.6 The Permutation Image of an Actions

If G acts on a domain Omega, an enumeration of Omega yields a homomorphism of G into the symmetric group on {1,¼,|Omega |}. In GAP, the enumeration of the domain Omega is provided by the Enumerator of Omega (see Enumerator) which of course is Omega itself if it is a list.

  • ActionHomomorphism( G, Omega[, gens, acts][, act][, "surjective"] ) O
  • ActionHomomorphism( xset[, "surjective"] ) A
  • ActionHomomorphism( action ) A

    computes a homomorphism from G into the symmetric group on |Omega | points that gives the permutation action of G on Omega.

    By default the homomorphism returned by ActionHomomorphism is not necessarily surjective (its Range is the full symmetric group) to avoid unnecessary computation of the image. If the optional string argument "surjective" is given, a surjective homomorphism is created.

    The third version (which is supported only for GAP3 compatibility) returns the action homomorphism that belongs to the image obtained via Action (see Action).

    (See Section Basic Actions for information about specific actions.)

    gap> g:=Group((1,2,3),(1,2));;
    gap> hom:=ActionHomomorphism(g,Arrangements([1..4],3),OnTuples);
    <action homomorphism>
    gap> Image(hom);
    Group(
      [(1,9,13)(2,10,14)(3,7,15)(4,8,16)(5,12,17)(6,11,18)(19,22,23)(20,21,24),
      (1,7)(2,8)(3,9)(4,10)(5,11)(6,12)(13,15)(14,16)(17,18)(19,21)(20,22)(23,24)])
    gap> Size(Range(hom));Size(Image(hom));
    620448401733239439360000
    6
    gap> hom:=ActionHomomorphism(g,Arrangements([1..4],3),OnTuples,
    > "surjective");;
    gap> Size(Range(hom));
    6
    

    When acting on a domain, the operation PositionCanonical is used to determine the position of elements in the domain. This can be used to act on a domain given by a list of representatives for which PositionCanonical is implemented, for example a RightTransversal (see RightTransversal).

  • Action( G, Omega[gens, acts][, act] ) O
  • Action( xset ) A

    returns the Image group of ActionHomomorphism called with the same parameters.

    (See Section Basic Actions for information about specific actions.) The following code shows for example how to create the regular action of a group:

    gap> g:=Group((1,2,3),(1,2));;
    gap> Action(g,AsList(g),OnRight);
    Group([ (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ])
    

  • SparseActionHomomorphism( G, Omega, start[, gens, acts][, act] ) O
  • SortedSparseActionHomomorphism( G, Omega, start[, gens, acts][, act] ) O

    SparseActionHomomorphism computes the ActionHomomorphism(G,dom[,gens,acts][,act]), where dom is the union of the orbits Orbit(G,pnt[,gens,acts][,act]) for all points pnt from start. If G acts on a very large domain Omega not surjectively this may yield a permutation image of substantially smarre degree than by action on Omega.

    The operation SparseActionHomomorphism will only use = comparisons of points in the orbit. Therefore it can be used even if no good < comparison method exists. However the image group will depend on the generators gens of G.

    The operation SortedSparseActionHomomorphism in contrast will sort the orbit and thus produce an image group which is not dependent on these generators.

    gap> h:=Group(Z(3)*[[[1,1],[0,1]]]);                             
    Group( [ [ [ Z(3), Z(3) ], [ 0*Z(3), Z(3) ] ] ] )
    gap> hom:=ActionHomomorphism(h,GF(3)^2,OnRight);;                     
    gap> Image(hom);
    Group( [ (2,3)(4,9,6,7,5,8) ] )
    gap> hom:=SparseActionHomomorphism(h,[Z(3)*[1,0]],OnRight);;
    gap> Image(hom);
    Group( [ (1,2,3,4,5,6) ] )
    

    For an action homomorphism, the operation UnderlyingExternalSet (see UnderlyingExternalSet) will return the external set on Omega which affords the action.

    [Top] [Previous] [Up] [Next] [Index]

    GAP 4 manual
    February 2000