Blocks( G, D, seed )
Blocks( G, D, seed, operation )
In this form Blocks
returns a block system of the domain D, which may
be a list of points of arbitrary type, under the group G, such that the
points in the list seed all lie in the same block. If no such
nontrivial block system exists, Blocks
returns [ D ]
. G must
operate transitively on D, otherwise an error is signalled.
Blocks( G, D )
Blocks( G, D, operation )
In this form Blocks
returns a minimal block system of the domain D,
which may be a list of points of arbitrary type, under the group G. If
no nontrivial block system exists, Blocks
returns [ D ]
. G must
operate transitively on D, otherwise an error is signalled.
A block system B is a list of blocks with the following properties.
Each block b of B is a subset of D. The blocks are pairwise
disjoint. The union of blocks is D. The image of each block under
each element g of G is as a set equal to some block of the block
system. Note that this implies that all blocks contain the same number
of elements as G operates transitive on D. Put differently a block
system B of D is a partition of D such that G operates with
OnSets
(see Other Operations) on B. The block system that consists
of only singleton sets and the block system consisting only of D are
called trivial. A block system B is called minimal if there is no
nontrivial block system whose blocks are all subsets of the blocks of B
and whose number of blocks is larger than the number of blocks of B.
Blocks
accepts a function operation of two arguments d and g as
optional third, resp. fourth, 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> Blocks( g, [1..5] ); [ [ 1 .. 5 ] ] gap> Blocks( g, Orbit( g, [1,2], OnPairs ), OnPairs ); [ [ [ 1, 2 ], [ 3, 2 ], [ 4, 2 ], [ 5, 2 ] ], [ [ 1, 3 ], [ 2, 3 ], [ 4, 3 ], [ 5, 3 ] ], [ [ 1, 4 ], [ 2, 4 ], [ 3, 4 ], [ 5, 4 ] ], [ [ 1, 5 ], [ 2, 5 ], [ 3, 5 ], [ 4, 5 ] ], [ [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 5, 1 ] ] ]
Blocks
calls
G.operations.Blocks( G, D, seed, operation )
and returns the value. If no seed was given as argument to Blocks
it
passes the empty list. Note that the fourth argument is not optional for
functions called this way.
The default function called this way is GroupOps.Blocks
, which computes
a permutation group P that operates on [1..Length(D)]
in the same
way that G operates on D (see Operation) and leaves it to this
permutation group to find the blocks. This of course works only because
Operations of Permutation Groups).
GAP 3.4.4