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