The syntax which is used by the operations for group actions is quite
flexible. For example we can call the operation Orbits for the orbits
of the group G on the domain Omega in the following ways:
Orbits(G,Omega[,actfun])
The acting function actfun is optional. If it is not given, the built-in
action OnPoints (which defines an action via the caret operator ^) is
used as a default.
The second version permits to implement an action induced by a homomorphism: If H acts on Omega via m and j:G® H is a homomorphism, G acts on Omega via m¢(w,g) = m(w,gj):
Orbits(G,Omega,gens,acts[,actfun])
Here gens must be a set of generators of G and acts the images of
gens under a homomorphism j:G® H.
actfun is the acting function for H, the call
to ExampleActionFunction implements the induced action of G.
Again, the acting function actfun is optional and OnPoints is used as a
default.
The advantage of this notation is that GAP does not need to construct this homomorphism j and the range group H as GAP objects. (If a small group G acts via complicated objects acts this otherwise could lead to performance problems.)
GAP does not test whether the mapping gens ®acts actually induces a homomorphism and the results are unpredictable if this is not the case.
Orbits(extset) A
A third variant is to call the operation with an external set (which then provides G, Omega and actfun. You will find more about external sets in section External Sets.
For operations like Stabilizer of course the domain must be replaced by an
element of Omega which is to be acted on.
GAP 4 manual