[Up] [Previous] [Next] [Index]
# 6 Automorphism groups and isomorphism testing for block designs

### Sections

- Computing automorphism groups
- Testing isomorphism

The functions in this chapter depend on nauty via the GRAPE package,
which must be fully installed in order for these functions to work.

`AutGroupBlockDesign( `

`D`` )`

This function returns the automorphism group of the block design `D`.
The **automorphism group** `Aut(``D`) of `D` is the group consisting of
all the permutations of the points `{1,...,`

`D``.v`

} which preserve
the block-multiset of `D`.

This function is not yet implemented for non-binary block designs.

This function can also be called via `AutomorphismGroup(`

`D``)`

.

gap> D:=PGPointFlatBlockDesign(2,3,1);; # projective plane of order 3
gap> Size(AutGroupBlockDesign(D));
5616

`IsIsomorphicBlockDesign( `

`D1``, `

`D2`` )`

This boolean function returns `true`

if and only if block designs
`D1` and `D2` are **isomorphic**, that is, there is a bijection from the
point-set of `D1` to that of `D2` which maps the block-multiset of `D1`
to that of `D2`.

This function is not yet implemented for non-binary block designs.

For pairwise isomorphism testing for three or more binary block designs,
see BlockDesignIsomorphismClassRepresentatives.

gap> D1:=BlockDesign(3,[[1],[1,2,3],[2]]);;
gap> D2:=BlockDesign(3,[[1],[1,2,3],[3]]);;
gap> IsIsomorphicBlockDesign(D1,D2);
true
gap> D3:=BlockDesign(4,[[1],[1,2,3],[3]]);;
gap> IsIsomorphicBlockDesign(D2,D3);
false
gap> # block designs with different numbers of points are not isomorphic

`BlockDesignIsomorphismClassRepresentatives( `

`L`` )`

Given a list `L` of binary block designs, this function returns a list
consisting of pairwise non-isomorphic elements of `L`, representing all
the isomorphism classes of elements of `L`. The order of the elements
in the returned list may differ from their order in `L`.

gap> D1:=BlockDesign(3,[[1],[1,2,3],[2]]);;
gap> D2:=BlockDesign(3,[[1],[1,2,3],[3]]);;
gap> D3:=BlockDesign(4,[[1],[1,2,3],[3]]);;
gap> BlockDesignIsomorphismClassRepresentatives([D1,D2,D3]);
[ rec( isBlockDesign := true, v := 4, blocks := [ [ 1 ], [ 1, 2, 3 ], [ 3 ] ],
isBinary := true ),
rec( isBlockDesign := true, v := 3, blocks := [ [ 1 ], [ 1, 2, 3 ], [ 2 ] ],
isBinary := true ) ]

[Up] [Previous] [Next] [Index]

design manual

November 2011