IsPrimitive( G, D )
IsPrimitive( G, D, operation )
IsPrimitive returns true if the group G operates primitively on the
domain D, which may be a list of points of arbitrary type, and false
otherwise.
A group G operates primitively on a domain D if and only if D operates transitively (see IsTransitive) and has only the trivial block systems (see Blocks).
IsPrimitive accepts a function operation of two arguments d and g
as optional third argument, which specifies how the elements of G
operate (see Other Operations).
gap> g := Group( (1,2,3)(6,7), (3,4,5)(7,8) );;
gap> IsPrimitive( g, [1..5] );
true
gap> IsPrimitive( g, Orbit( g, [1,2], OnPairs ), OnPairs );
false
IsPrimitive calls
G.operations.IsPrimitive( G, D, operation )
and returns the value. Note that the third argument is not optional for
functions called this way.
The default function called this way is GroupOps.IsPrimitive, which
simply calls Blocks( G, D, operation ) and tests whether the
returned block system is [ D ]. This function is seldom overlaid,
because all the important work is done in Blocks.
GAP 3.4.4