Transitivity( G, D )
Transitivity( G, D, operation )
Transitivity
returns the degree of transitivity of the group G on the
domain D, which must be a list of points of arbitrary type. If G
does not operate transitively on D then Transitivity
returns 0.
The degree of transitivity of the operation of G on D is the
largest k such that G operates k-fold transitively on D. We say
that G operates k-fold transitively on D if it operates
transitively on D (see IsTransitive) and the stabilizer of one point
d of D operates k-1
-fold transitively on Difference(D,[d])
.
Because the stabilizers of the points of D are conjugate this is
equivalent to saying that the stabilizer of each point d of D
operates k-1
-fold transitively on Difference(D,[d])
.
It is not allowed that D is a proper subset of a domain, i.e., D must be invariant under the operation of G.
Transitivity
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> Transitivity( g, [1..8] ); 0 gap> Transitivity( g, [1..5] ); 3 gap> sets := Combinations( [1..5], 3 );; Length( sets ); 10 # a list of all three element subsets of '[1..5]' gap> Transitivity( g, sets, OnSets ); 1
Transitivity
calls
G.operations.Transitivity( 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.Transitivity
, which
first tests whether G operates transitively on D. If so, it returns
Transitivity(Stabilizer(G,Difference(D,[D[1]]),operation)+1
;
if not, it simply returns 0. Special categories of groups overlay this
default function with more efficient functions.
GAP 3.4.4